projen 0.99.78 → 0.99.80

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 (147) hide show
  1. package/.jsii +298 -176
  2. package/lib/ai-instructions.js +2 -2
  3. package/lib/awscdk/auto-discover.js +6 -6
  4. package/lib/awscdk/awscdk-app-java.js +1 -1
  5. package/lib/awscdk/awscdk-app-py.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +1 -1
  7. package/lib/awscdk/awscdk-construct.js +2 -2
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps-py.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +4 -4
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/build/build-workflow.js +1 -1
  18. package/lib/cdk/auto-discover-base.js +2 -2
  19. package/lib/cdk/construct-lib.js +1 -1
  20. package/lib/cdk/integration-test-base.js +1 -1
  21. package/lib/cdk/jsii-build.d.ts +43 -0
  22. package/lib/cdk/jsii-build.js +63 -12
  23. package/lib/cdk/jsii-docgen.js +1 -1
  24. package/lib/cdk/jsii-project.js +1 -1
  25. package/lib/cdk8s/auto-discover.js +2 -2
  26. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  27. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  28. package/lib/cdk8s/cdk8s-construct.js +1 -1
  29. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  30. package/lib/cdk8s/cdk8s-deps.js +1 -1
  31. package/lib/cdk8s/integration-test.js +1 -1
  32. package/lib/cdktf/cdktf-construct.js +1 -1
  33. package/lib/circleci/circleci.js +1 -1
  34. package/lib/component.js +1 -1
  35. package/lib/dependencies.js +1 -1
  36. package/lib/dev-env.js +1 -1
  37. package/lib/docker-compose/docker-compose-service.js +1 -1
  38. package/lib/docker-compose/docker-compose.js +1 -1
  39. package/lib/file.d.ts +5 -1
  40. package/lib/file.js +5 -5
  41. package/lib/gitattributes.js +1 -1
  42. package/lib/github/actions-provider.js +1 -1
  43. package/lib/github/auto-approve.js +1 -1
  44. package/lib/github/auto-merge.js +1 -1
  45. package/lib/github/auto-queue.js +1 -1
  46. package/lib/github/dependabot.js +1 -1
  47. package/lib/github/dependency-review.js +1 -1
  48. package/lib/github/github-credentials.js +1 -1
  49. package/lib/github/github-project.js +1 -1
  50. package/lib/github/github.js +1 -1
  51. package/lib/github/merge-queue.js +1 -1
  52. package/lib/github/mergify.js +1 -1
  53. package/lib/github/pr-template.js +1 -1
  54. package/lib/github/pull-request-backport.js +1 -1
  55. package/lib/github/pull-request-lint.js +1 -1
  56. package/lib/github/stale.js +1 -1
  57. package/lib/github/task-workflow-job.js +1 -1
  58. package/lib/github/task-workflow.js +1 -1
  59. package/lib/github/workflow-actions.js +1 -1
  60. package/lib/github/workflow-jobs.js +1 -1
  61. package/lib/github/workflow-steps.js +1 -1
  62. package/lib/github/workflows.js +1 -1
  63. package/lib/gitlab/configuration.js +1 -1
  64. package/lib/gitlab/gitlab-configuration.js +1 -1
  65. package/lib/gitlab/nested-configuration.js +1 -1
  66. package/lib/gitpod.js +1 -1
  67. package/lib/ignore-file.js +1 -1
  68. package/lib/ini.js +1 -1
  69. package/lib/java/java-project.js +1 -1
  70. package/lib/java/junit.js +1 -1
  71. package/lib/java/maven-compile.js +1 -1
  72. package/lib/java/maven-packaging.js +1 -1
  73. package/lib/java/maven-sample.js +1 -1
  74. package/lib/java/pom.js +2 -2
  75. package/lib/java/projenrc.js +1 -1
  76. package/lib/javascript/biome/biome.js +1 -1
  77. package/lib/javascript/bundler.js +1 -1
  78. package/lib/javascript/eslint.js +1 -1
  79. package/lib/javascript/jest.js +4 -4
  80. package/lib/javascript/license-checker.js +1 -1
  81. package/lib/javascript/node-package.js +3 -2
  82. package/lib/javascript/node-project.d.ts +1 -0
  83. package/lib/javascript/node-project.js +4 -3
  84. package/lib/javascript/npm-config.js +1 -1
  85. package/lib/javascript/prettier.js +1 -1
  86. package/lib/javascript/projenrc.js +1 -1
  87. package/lib/javascript/typescript-config.d.ts +11 -0
  88. package/lib/javascript/typescript-config.js +3 -3
  89. package/lib/javascript/upgrade-dependencies.js +2 -2
  90. package/lib/javascript/yarnrc.js +1 -1
  91. package/lib/json-patch.js +1 -1
  92. package/lib/json.d.ts +9 -1
  93. package/lib/json.js +26 -12
  94. package/lib/license.js +1 -1
  95. package/lib/logger.js +1 -1
  96. package/lib/makefile.js +1 -1
  97. package/lib/object-file.js +1 -1
  98. package/lib/project-build.js +1 -1
  99. package/lib/project-tree.js +1 -1
  100. package/lib/project.js +1 -1
  101. package/lib/projects.js +1 -1
  102. package/lib/projenrc-json.js +2 -2
  103. package/lib/projenrc.js +1 -1
  104. package/lib/python/pip.js +1 -1
  105. package/lib/python/poetry.js +2 -2
  106. package/lib/python/projenrc.js +1 -1
  107. package/lib/python/pyproject-toml-file.js +1 -1
  108. package/lib/python/pytest-sample.js +1 -1
  109. package/lib/python/pytest.js +1 -1
  110. package/lib/python/python-project.js +1 -1
  111. package/lib/python/python-sample.js +1 -1
  112. package/lib/python/requirements-file.js +1 -1
  113. package/lib/python/setuppy.js +1 -1
  114. package/lib/python/setuptools.js +1 -1
  115. package/lib/python/uv.js +1 -1
  116. package/lib/python/venv.js +1 -1
  117. package/lib/readme.js +1 -1
  118. package/lib/release/publisher.js +1 -1
  119. package/lib/release/release-trigger.js +1 -1
  120. package/lib/release/release.js +1 -1
  121. package/lib/renovatebot.js +1 -1
  122. package/lib/sample-file.js +2 -2
  123. package/lib/semver.js +1 -1
  124. package/lib/source-code.js +1 -1
  125. package/lib/task-runtime.js +1 -1
  126. package/lib/task.js +1 -1
  127. package/lib/tasks.js +1 -1
  128. package/lib/testing.js +1 -1
  129. package/lib/textfile.js +1 -1
  130. package/lib/toml.js +1 -1
  131. package/lib/typescript/projenrc-ts.js +1 -1
  132. package/lib/typescript/projenrc.js +1 -1
  133. package/lib/typescript/typescript-typedoc.js +1 -1
  134. package/lib/typescript/typescript.js +6 -6
  135. package/lib/version.js +2 -2
  136. package/lib/vscode/devcontainer.js +1 -1
  137. package/lib/vscode/extensions.js +1 -1
  138. package/lib/vscode/launch-config.js +1 -1
  139. package/lib/vscode/settings.js +1 -1
  140. package/lib/vscode/vscode.js +1 -1
  141. package/lib/web/next.js +3 -3
  142. package/lib/web/postcss.js +1 -1
  143. package/lib/web/react.js +4 -4
  144. package/lib/web/tailwind.js +1 -1
  145. package/lib/xmlfile.js +1 -1
  146. package/lib/yaml.js +1 -1
  147. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.JsiiBuild = void 0;
4
+ exports.JsiiBuild = exports.ValidateTsconfig = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const consts_1 = require("./consts");
7
7
  const jsii_docgen_1 = require("./jsii-docgen");
@@ -14,6 +14,28 @@ const runner_options_1 = require("../runner-options");
14
14
  const typescript_1 = require("../typescript");
15
15
  const REPO_TEMP_DIRECTORY = ".repo";
16
16
  const BUILD_ARTIFACT_OLD_DIR = "dist.old";
17
+ /**
18
+ * Level of tsconfig validation jsii should perform.
19
+ */
20
+ var ValidateTsconfig;
21
+ (function (ValidateTsconfig) {
22
+ /**
23
+ * Validates against a strict rule set designed for widespread support and backwards-compatibility.
24
+ */
25
+ ValidateTsconfig["STRICT"] = "strict";
26
+ /**
27
+ * Enforces a tsconfig as if it were generated by jsii.
28
+ */
29
+ ValidateTsconfig["GENERATED"] = "generated";
30
+ /**
31
+ * Only reject options known to be incompatible with jsii.
32
+ */
33
+ ValidateTsconfig["MINIMAL"] = "minimal";
34
+ /**
35
+ * Disables all config validation. Use at your own risk.
36
+ */
37
+ ValidateTsconfig["OFF"] = "off";
38
+ })(ValidateTsconfig || (exports.ValidateTsconfig = ValidateTsconfig = {}));
17
39
  /**
18
40
  * A mixin that adds jsii compilation, multi-language packaging, and publishing
19
41
  * capabilities to any TypeScript project.
@@ -57,7 +79,9 @@ class JsiiBuild {
57
79
  jsiiFlags.push("--compress-assembly");
58
80
  }
59
81
  const compatIgnore = options.compatIgnore ?? ".compatignore";
60
- project.addFields({ stability: options.stability ?? "stable" });
82
+ project.addFields({
83
+ stability: options.stability ?? project.package.manifest.stability ?? "stable",
84
+ });
61
85
  if (options.stability === "deprecated") {
62
86
  project.addFields({ deprecated: true });
63
87
  }
@@ -92,13 +116,31 @@ class JsiiBuild {
92
116
  const jsii = {
93
117
  outdir: project.artifactsDirectory,
94
118
  targets,
95
- tsc: {
119
+ };
120
+ // jsii compiles against an explicitly provided tsconfig, falling back to
121
+ // the project's own tsconfig when one is not injected. When neither is
122
+ // available (e.g. `disableTsconfig`), let jsii generate one from tsc settings.
123
+ const tsconfig = options.tsconfig ?? project.tsconfig;
124
+ if (tsconfig) {
125
+ // @ts-ignore jsii uses JSON.parse() and cannot handle comments
126
+ tsconfig.file.configureComments(false);
127
+ jsii.tsconfig = tsconfig.fileName;
128
+ jsii.validateTsconfig =
129
+ options.validateTsconfig ?? ValidateTsconfig.STRICT;
130
+ if (options.excludeTypescript) {
131
+ for (const pattern of options.excludeTypescript) {
132
+ tsconfig.addExclude(pattern);
133
+ }
134
+ }
135
+ }
136
+ else {
137
+ jsii.tsc = {
96
138
  outDir: libdir,
97
139
  rootDir: srcdir,
98
- },
99
- };
100
- if (options.excludeTypescript) {
101
- jsii.excludeTypescript = options.excludeTypescript;
140
+ };
141
+ if (options.excludeTypescript) {
142
+ jsii.excludeTypescript = options.excludeTypescript;
143
+ }
102
144
  }
103
145
  project.addFields({ jsii });
104
146
  const extraJobOptions = this.extraJobOptions;
@@ -108,7 +150,10 @@ class JsiiBuild {
108
150
  npmTokenSecret: project.package.npmTokenSecret,
109
151
  npmProvenance: project.package.npmProvenance,
110
152
  codeArtifactOptions: options.codeArtifactOptions,
111
- trustedPublishing: options.npmTrustedPublishing ?? false,
153
+ trustedPublishing: options.npmTrustedPublishing ??
154
+ //@ts-ignore
155
+ project.options.npmTrustedPublishing ??
156
+ false,
112
157
  };
113
158
  this.addTargetToBuild(project, packageJsTask, "js", extraJobOptions);
114
159
  this.addTargetToRelease(project, packageJsTask, "js", npmjs);
@@ -163,7 +208,10 @@ class JsiiBuild {
163
208
  const jsiiVersion = options.jsiiVersion ?? "~5.9.0";
164
209
  const jsiiSuffix = jsiiVersion === "*" ? "" : `@${jsiiVersion}`;
165
210
  project.addDevDeps(`jsii${jsiiSuffix}`, `jsii-rosetta${jsiiSuffix}`, "jsii-diff", "jsii-pacmak");
166
- project.gitignore.exclude(".jsii", "tsconfig.json");
211
+ project.gitignore.exclude(".jsii");
212
+ if (!tsconfig) {
213
+ project.gitignore.exclude("tsconfig.json");
214
+ }
167
215
  project.npmignore?.include(".jsii");
168
216
  if (options.docgen ?? true) {
169
217
  // If jsiiVersion is "*", don't specify anything so the user can manage.
@@ -222,7 +270,10 @@ class JsiiBuild {
222
270
  },
223
271
  tools: {
224
272
  node: {
225
- version: this.options.workflowNodeVersion ?? "lts/*",
273
+ version: this.options.workflowNodeVersion ??
274
+ // @ts-ignore
275
+ project.nodeVersion ??
276
+ "lts/*",
226
277
  },
227
278
  ...pacmak.publishTools,
228
279
  },
@@ -308,7 +359,7 @@ class JsiiBuild {
308
359
  }
309
360
  exports.JsiiBuild = JsiiBuild;
310
361
  _a = JSII_RTTI_SYMBOL_1;
311
- JsiiBuild[_a] = { fqn: "projen.cdk.JsiiBuild", version: "0.99.78" };
362
+ JsiiBuild[_a] = { fqn: "projen.cdk.JsiiBuild", version: "0.99.80" };
312
363
  const publishTo = {
313
364
  js: "publishToNpm",
314
365
  java: "publishToMaven",
@@ -316,4 +367,4 @@ const publishTo = {
316
367
  dotnet: "publishToNuget",
317
368
  go: "publishToGo",
318
369
  };
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvanNpaS1idWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLHFDQUEwQztBQUMxQywrQ0FBMkM7QUFPM0Msb0RBR2lDO0FBQ2pDLDZEQUF5RDtBQUV6RCwrREFBMEQ7QUFDMUQsOENBQW1EO0FBQ25ELDZDQUFpRDtBQU1qRCxzREFBMEQ7QUFDMUQsOENBQWtEO0FBRWxELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBQ3BDLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBK0kxQzs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxTQUFTO0lBSXBCLFlBQ0UsVUFBNEIsRUFBRSxFQUM5QixlQUF5QztRQUV6QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBaUIsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsU0FBcUI7UUFDbkMsT0FBTyxTQUFTLFlBQVksOEJBQWlCLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLE9BQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUU5QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRXJELE1BQU0sZ0JBQWdCLEdBQUcsT0FB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QUFRLENBQUMsRUFBRTtTQUM1RCxFQUNEO1lBQ0UsSUFBSSxFQUFFLFdBQVcsTUFBTSxXQUFXO1lBQ2xDLEdBQUcsRUFBRSxNQUFNLE9BQU8sSUFBSSxPQUFPLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO1NBQ2pGLENBQ0YsQ0FBQztRQUVGLE9BQU87WUFDTCxZQUFZLEVBQUUsdUJBQWMsQ0FBQyxNQUFNLENBQUM7WUFDcEMsY0FBYztZQUNkLGNBQWM7U0FDZixDQUFDO0lBQ0osQ0FBQzs7QUFqWEgsOEJBa1hDOzs7QUFZRCxNQUFNLFNBQVMsR0FBb0I7SUFDakMsRUFBRSxFQUFFLGNBQWM7SUFDbEIsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixNQUFNLEVBQUUsZUFBZTtJQUN2QixNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hCLEVBQUUsRUFBRSxhQUFhO0NBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QsIElNaXhpbiB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgdHlwZSB7IFRhc2sgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB0eXBlIHsgSnNpaVBhY21ha1RhcmdldCB9IGZyb20gXCIuL2NvbnN0c1wiO1xuaW1wb3J0IHsgSlNJSV9UT09MQ0hBSU4gfSBmcm9tIFwiLi9jb25zdHNcIjtcbmltcG9ydCB7IEpzaWlEb2NnZW4gfSBmcm9tIFwiLi9qc2lpLWRvY2dlblwiO1xuaW1wb3J0IHR5cGUge1xuICBKc2lpRG90TmV0VGFyZ2V0LFxuICBKc2lpR29UYXJnZXQsXG4gIEpzaWlKYXZhVGFyZ2V0LFxuICBKc2lpUHl0aG9uVGFyZ2V0LFxufSBmcm9tIFwiLi9qc2lpLXByb2plY3RcIjtcbmltcG9ydCB7XG4gIFBVTExfUkVRVUVTVF9SRUYsXG4gIFBVTExfUkVRVUVTVF9SRVBPU0lUT1JZLFxufSBmcm9tIFwiLi4vYnVpbGQvcHJpdmF0ZS9jb25zdHNcIjtcbmltcG9ydCB7IFdvcmtmbG93U3RlcHMgfSBmcm9tIFwiLi4vZ2l0aHViL3dvcmtmbG93LXN0ZXBzXCI7XG5pbXBvcnQgdHlwZSB7IEpvYiwgU3RlcCwgVG9vbHMgfSBmcm9tIFwiLi4vZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiB9IGZyb20gXCIuLi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQgeyBOb2RlUGFja2FnZU1hbmFnZXIgfSBmcm9tIFwiLi4vamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgaXNZYXJuQmVycnkgfSBmcm9tIFwiLi4vamF2YXNjcmlwdC91dGlsXCI7XG5pbXBvcnQgdHlwZSB7XG4gIENvbW1vblB1Ymxpc2hPcHRpb25zLFxuICBOcG1QdWJsaXNoT3B0aW9ucyxcbiAgUHVibGlzaGVyLFxufSBmcm9tIFwiLi4vcmVsZWFzZVwiO1xuaW1wb3J0IHsgZmlsdGVyZWRSdW5zT25PcHRpb25zIH0gZnJvbSBcIi4uL3J1bm5lci1vcHRpb25zXCI7XG5pbXBvcnQgeyBUeXBlU2NyaXB0UHJvamVjdCB9IGZyb20gXCIuLi90eXBlc2NyaXB0XCI7XG5cbmNvbnN0IFJFUE9fVEVNUF9ESVJFQ1RPUlkgPSBcIi5yZXBvXCI7XG5jb25zdCBCVUlMRF9BUlRJRkFDVF9PTERfRElSID0gXCJkaXN0Lm9sZFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBKc2lpQnVpbGRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpzaWlCdWlsZE9wdGlvbnMge1xuICAvKipcbiAgICogUHVibGlzaCB0byBtYXZlblxuICAgKiBAZGVmYXVsdCAtIG5vIHB1Ymxpc2hpbmdcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hUb01hdmVuPzogSnNpaUphdmFUYXJnZXQ7XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggdG8gcHlwaVxuICAgKiBAZGVmYXVsdCAtIG5vIHB1Ymxpc2hpbmdcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hUb1B5cGk/OiBKc2lpUHl0aG9uVGFyZ2V0O1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoIEdvIGJpbmRpbmdzIHRvIGEgZ2l0IHJlcG9zaXRvcnkuXG4gICAqIEBkZWZhdWx0IC0gbm8gcHVibGlzaGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaFRvR28/OiBKc2lpR29UYXJnZXQ7XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggdG8gTnVHZXRcbiAgICogQGRlZmF1bHQgLSBubyBwdWJsaXNoaW5nXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9OdWdldD86IEpzaWlEb3ROZXRUYXJnZXQ7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgcnVuIEFQSSBjb21wYXRpYmlsaXR5IHRlc3QgYWdhaW5zdCB0aGUgbGF0ZXN0IHZlcnNpb24gcHVibGlzaGVkIHRvIG5wbSBhZnRlciBjb21waWxhdGlvbi5cbiAgICpcbiAgICogLSBZb3UgY2FuIG1hbnVhbGx5IHJ1biBjb21wYXRpYmlsaXR5IHRlc3RzIHVzaW5nIGB5YXJuIGNvbXBhdGAgaWYgdGhpcyBmZWF0dXJlIGlzIGRpc2FibGVkLlxuICAgKiAtIFlvdSBjYW4gaWdub3JlIGNvbXBhdGliaWxpdHkgZmFpbHVyZXMgYnkgYWRkaW5nIGxpbmVzIHRvIGEgXCIuY29tcGF0aWdub3JlXCIgZmlsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBhdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGlnbm9yZSBmaWxlIGZvciBBUEkgY29tcGF0aWJpbGl0eSB0ZXN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCIuY29tcGF0aWdub3JlXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBhdElnbm9yZT86IHN0cmluZztcblxuICAvKipcbiAgICogQWNjZXB0cyBhIGxpc3Qgb2YgZ2xvYiBwYXR0ZXJucy4gRmlsZXMgbWF0Y2hpbmcgYW55IG9mIHRob3NlIHBhdHRlcm5zIHdpbGwgYmUgZXhjbHVkZWQgZnJvbSB0aGUgVHlwZVNjcmlwdCBjb21waWxlciBpbnB1dC5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwganNpaSB3aWxsIGluY2x1ZGUgYWxsICoudHMgZmlsZXMgKGV4Y2VwdCAuZC50cyBmaWxlcykgaW4gdGhlIFR5cGVTY3JpcHQgY29tcGlsZXIgaW5wdXQuXG4gICAqIFRoaXMgY2FuIGJlIHByb2JsZW1hdGljIGZvciBleGFtcGxlIHdoZW4gdGhlIHBhY2thZ2UncyBidWlsZCBvciB0ZXN0IHByb2NlZHVyZSBnZW5lcmF0ZXMgLnRzIGZpbGVzXG4gICAqIHRoYXQgY2Fubm90IGJlIGNvbXBpbGVkIHdpdGgganNpaSdzIGNvbXBpbGVyIHNldHRpbmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZVR5cGVzY3JpcHQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRmlsZSBwYXRoIGZvciBnZW5lcmF0ZWQgZG9jcy5cbiAgICogQGRlZmF1bHQgXCJBUEkubWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgZG9jZ2VuRmlsZVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVtaXQgYSBjb21wcmVzc2VkIHZlcnNpb24gb2YgdGhlIGFzc2VtYmx5XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjb21wcmVzc0Fzc2VtYmx5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUganNpaSBjb21waWxlciB0byB1c2UuXG4gICAqXG4gICAqIFNldCB0byBcIipcIiBpZiB5b3Ugd2FudCB0byBtYW51YWxseSBtYW5hZ2UgdGhlIHZlcnNpb24gb2YganNpaSBpbiB5b3VyXG4gICAqIHByb2plY3QgYnkgbWFuYWdpbmcgdXBkYXRlcyB0byBgcGFja2FnZS5qc29uYCBvbiB5b3VyIG93bi5cbiAgICpcbiAgICogTk9URTogVGhlIGpzaWkgY29tcGlsZXIgcmVsZWFzZXMgc2luY2UgNS4wLjAgYXJlIG5vdCBzZW1hbnRpY2FsbHkgdmVyc2lvbmVkXG4gICAqIGFuZCBzaG91bGQgcmVtYWluIG9uIHRoZSBzYW1lIG1pbm9yLCBzbyB3ZSByZWNvbW1lbmQgdXNpbmcgYSBgfmAgZGVwZW5kZW5jeVxuICAgKiAoZS5nLiBgfjUuMC4wYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwifjUuOS4wXCJcbiAgICogQHBqbmV3IFwifjUuOS4wXCJcbiAgICovXG4gIHJlYWRvbmx5IGpzaWlWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhYmlsaXR5IG9mIHRoZSBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInN0YWJsZVwiXG4gICAqL1xuICByZWFkb25seSBzdGFiaWxpdHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgTWFya0Rvd24gZmlsZSBkZXNjcmliaW5nIHRoZSBqc2lpIEFQSS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9jZ2VuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBwdWJsaXNoIHRvIG5wbS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVRvTnBtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgdHJ1c3RlZCBwdWJsaXNoaW5nIGZvciBucG0uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBucG1UcnVzdGVkUHVibGlzaGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHB1Ymxpc2hpbmcgbnBtIHBhY2thZ2UgdG8gQVdTIENvZGVBcnRpZmFjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGNvZGVBcnRpZmFjdE9wdGlvbnM/OiBOcG1QdWJsaXNoT3B0aW9uc1tcImNvZGVBcnRpZmFjdE9wdGlvbnNcIl07XG5cbiAgLyoqXG4gICAqIFJlbGF0aXZlIHBhdGggb2YgdGhlIHBhY2thZ2Ugd2l0aGluIHRoZSByZXBvc2l0b3J5LlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWQgaW4gbW9ub3JlcG8gc2V0dXBzIHdoZXJlIHRoZSBwYWNrYWdlIGlzIG5vdCBhdCB0aGUgcm9vdC5cbiAgICogUGFja2FnaW5nIHN0ZXBzIHdpbGwgZXh0cmFjdCBidWlsZCBhcnRpZmFjdHMgaW50byB0aGlzIHN1YmRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCIuXCIgLSByb290IG9mIHRoZSByZXBvc2l0b3J5XG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBub2RlIHZlcnNpb24gdG8gdXNlIGluIHBhY2thZ2luZyB3b3JrZmxvd3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibHRzLypcIlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOb2RlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdGVwcyB0byBydW4gYmVmb3JlIHBhY2thZ2luZyBpbiB3b3JrZmxvd3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0Jvb3RzdHJhcFN0ZXBzPzogQXJyYXk8U3RlcD47XG59XG5cbi8qKlxuICogQSBtaXhpbiB0aGF0IGFkZHMganNpaSBjb21waWxhdGlvbiwgbXVsdGktbGFuZ3VhZ2UgcGFja2FnaW5nLCBhbmQgcHVibGlzaGluZ1xuICogY2FwYWJpbGl0aWVzIHRvIGFueSBUeXBlU2NyaXB0IHByb2plY3QuXG4gKlxuICogVGhpcyBpbXBsZW1lbnRzIHRoZSBjb25zdHJ1Y3RzIGBJTWl4aW5gIGludGVyZmFjZSBhbmQgaXMgYXBwbGllZCB1c2luZyB0aGVcbiAqIGAud2l0aCgpYCBtZXRob2Qgb24gYW55IGNvbnN0cnVjdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcHJvamVjdCA9IG5ldyBUeXBlU2NyaXB0UHJvamVjdCh7IGRpc2FibGVUc2NvbmZpZzogdHJ1ZSwgLi4uIH0pO1xuICogcHJvamVjdC53aXRoKG5ldyBKc2lpQnVpbGQoe1xuICogICBqc2lpVmVyc2lvbjogJ341LjkuMCcsXG4gKiAgIHB1Ymxpc2hUb01hdmVuOiB7IC4uLiB9LFxuICogfSkpO1xuICovXG5leHBvcnQgY2xhc3MgSnNpaUJ1aWxkIGltcGxlbWVudHMgSU1peGluIHtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBKc2lpQnVpbGRPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4dHJhSm9iT3B0aW9uczogUGFydGlhbDxKb2I+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdGlvbnM6IEpzaWlCdWlsZE9wdGlvbnMgPSB7fSxcbiAgICBleHRyYUpvYk9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLmV4dHJhSm9iT3B0aW9ucyA9IChleHRyYUpvYk9wdGlvbnMgPz8ge30pIGFzIFBhcnRpYWw8Sm9iPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbnN0cnVjdCBpcyBhIFR5cGVTY3JpcHRQcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIHN1cHBvcnRzKGNvbnN0cnVjdDogSUNvbnN0cnVjdCk6IGNvbnN0cnVjdCBpcyBUeXBlU2NyaXB0UHJvamVjdCB7XG4gICAgcmV0dXJuIGNvbnN0cnVjdCBpbnN0YW5jZW9mIFR5cGVTY3JpcHRQcm9qZWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMganNpaSBjb25maWd1cmF0aW9uIHRvIHRoZSB0YXJnZXQgVHlwZVNjcmlwdFByb2plY3QuXG4gICAqL1xuICBwdWJsaWMgYXBwbHlUbyhwcm9qZWN0OiBJQ29uc3RydWN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN1cHBvcnRzKHByb2plY3QpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zIH07XG4gICAgY29uc3Qgc3JjZGlyID0gcHJvamVjdC5zcmNkaXI7XG4gICAgY29uc3QgbGliZGlyID0gcHJvamVjdC5saWJkaXI7XG5cbiAgICBwcm9qZWN0LmFkZEZpZWxkcyh7IHR5cGVzOiBgJHtsaWJkaXJ9L2luZGV4LmQudHNgIH0pO1xuXG4gICAgY29uc3QgY29tcHJlc3NBc3NlbWJseSA9IG9wdGlvbnMuY29tcHJlc3NBc3NlbWJseSA/PyBmYWxzZTtcblxuICAgIC8vIHRoaXMgaXMgYW4gdW5oZWxwZnVsIHdhcm5pbmdcbiAgICBjb25zdCBqc2lpRmxhZ3MgPSBbXCItLXNpbGVuY2Utd2FybmluZ3M9cmVzZXJ2ZWQtd29yZFwiXTtcbiAgICBpZiAoY29tcHJlc3NBc3NlbWJseSkge1xuICAgICAganNpaUZsYWdzLnB1c2goXCItLWNvbXByZXNzLWFzc2VtYmx5XCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBhdElnbm9yZSA9IG9wdGlvbnMuY29tcGF0SWdub3JlID8/IFwiLmNvbXBhdGlnbm9yZVwiO1xuXG4gICAgcHJvamVjdC5hZGRGaWVsZHMoeyBzdGFiaWxpdHk6IG9wdGlvbnMuc3RhYmlsaXR5ID8/IFwic3RhYmxlXCIgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5zdGFiaWxpdHkgPT09IFwiZGVwcmVjYXRlZFwiKSB7XG4gICAgICBwcm9qZWN0LmFkZEZpZWxkcyh7IGRlcHJlY2F0ZWQ6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgcHJvamVjdC5jb21waWxlVGFzay5yZXNldChbXCJqc2lpXCIsIC4uLmpzaWlGbGFnc10uam9pbihcIiBcIikpO1xuICAgIHByb2plY3Qud2F0Y2hUYXNrLnJlc2V0KFtcImpzaWlcIiwgXCItd1wiLCAuLi5qc2lpRmxhZ3NdLmpvaW4oXCIgXCIpKTtcblxuICAgIGNvbnN0IGNvbXBhdFRhc2sgPSBwcm9qZWN0LmFkZFRhc2soXCJjb21wYXRcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiUGVyZm9ybSBBUEkgY29tcGF0aWJpbGl0eSBjaGVjayBhZ2FpbnN0IGxhdGVzdCB2ZXJzaW9uXCIsXG4gICAgICBleGVjOiBganNpaS1kaWZmIG5wbTokKG5vZGUgLXAgXCJyZXF1aXJlKFxcJy4vcGFja2FnZS5qc29uXFwnKS5uYW1lXCIpIC1rIC0taWdub3JlLWZpbGUgJHtjb21wYXRJZ25vcmV9IHx8IChlY2hvIFwiXFxuVU5FWFBFQ1RFRCBCUkVBS0lORyBDSEFOR0VTOiBhZGQga2V5cyBzdWNoIGFzIFxcJ3JlbW92ZWQ6Y29uc3RydWN0cy5Ob2RlLm9mXFwnIHRvICR7Y29tcGF0SWdub3JlfSB0byBza2lwLlxcblwiICYmIGV4aXQgMSlgLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuY29tcGF0ID8/IGZhbHNlKSB7XG4gICAgICBwcm9qZWN0LmNvbXBpbGVUYXNrLnNwYXduKGNvbXBhdFRhc2spO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIG5ldyBwYWNrYWdlOmFsbCB0YXNrLCBpdCB3aWxsIGJlIGZpbGxlZCB3aXRoIGxhbmd1YWdlIHRhcmdldHMgbGF0ZXJcbiAgICBjb25zdCBwYWNrYWdlQWxsVGFzayA9IHByb2plY3QuYWRkVGFzayhcInBhY2thZ2UtYWxsXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlBhY2thZ2VzIGFydGlmYWN0cyBmb3IgYWxsIHRhcmdldCBsYW5ndWFnZXNcIixcbiAgICB9KTtcblxuICAgIC8vIGluIGpzaWkgd2UgY29uc2lkZXIgdGhlIGVudGlyZSByZXBvIChwb3N0IGJ1aWxkKSBhcyB0aGUgYnVpbGQgYXJ0aWZhY3RcbiAgICAvLyB3aGljaCBpcyB0aGVuIHVzZWQgdG8gY3JlYXRlIHRoZSBsYW5ndWFnZSBiaW5kaW5ncyBpbiBzZXBhcmF0ZSBqb2JzLlxuICAgIGNvbnN0IHBhY2thZ2VKc1Rhc2sgPSB0aGlzLmFkZFBhY2thZ2luZ1Rhc2socHJvamVjdCwgcGFja2FnZUFsbFRhc2ssIFwianNcIik7XG5cbiAgICAvLyBXaGVuIHJ1bm5pbmcgaW5zaWRlIENJIHdlIGluaXRpYWxseSBvbmx5IHBhY2thZ2UganMuIE90aGVyIHRhcmdldHMgYXJlIHBhY2thZ2VkIGluIHNlcGFyYXRlIGpvYnMuXG4gICAgLy8gT3V0c2lkZSBvZiBDSSAoaS5lIGxvY2FsbHkpIHdlIHNpbXBseSBwYWNrYWdlIGFsbCB0YXJnZXRzLlxuICAgIHByb2plY3QucGFja2FnZVRhc2sucmVzZXQoKTtcbiAgICBwcm9qZWN0LnBhY2thZ2VUYXNrLnNwYXduKHBhY2thZ2VKc1Rhc2ssIHtcbiAgICAgIC8vIE9ubHkgcnVuIGluIENJXG4gICAgICBjb25kaXRpb246IGBub2RlIC1lIFwiaWYgKCFwcm9jZXNzLmVudi5DSSkgcHJvY2Vzcy5leGl0KDEpXCJgLFxuICAgIH0pO1xuICAgIHByb2plY3QucGFja2FnZVRhc2suc3Bhd24ocGFja2FnZUFsbFRhc2ssIHtcbiAgICAgIC8vIERvbid0IHJ1biBpbiBDSVxuICAgICAgY29uZGl0aW9uOiBgbm9kZSAtZSBcImlmIChwcm9jZXNzLmVudi5DSSkgcHJvY2Vzcy5leGl0KDEpXCJgLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdGFyZ2V0czogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gICAgY29uc3QganNpaTogYW55ID0ge1xuICAgICAgb3V0ZGlyOiBwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgIHRhcmdldHMsXG4gICAgICB0c2M6IHtcbiAgICAgICAgb3V0RGlyOiBsaWJkaXIsXG4gICAgICAgIHJvb3REaXI6IHNyY2RpcixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVUeXBlc2NyaXB0KSB7XG4gICAgICBqc2lpLmV4Y2x1ZGVUeXBlc2NyaXB0ID0gb3B0aW9ucy5leGNsdWRlVHlwZXNjcmlwdDtcbiAgICB9XG5cbiAgICBwcm9qZWN0LmFkZEZpZWxkcyh7IGpzaWkgfSk7XG5cbiAgICBjb25zdCBleHRyYUpvYk9wdGlvbnM6IFBhcnRpYWw8Sm9iPiA9IHRoaXMuZXh0cmFKb2JPcHRpb25zO1xuXG4gICAgaWYgKG9wdGlvbnMucmVsZWFzZVRvTnBtICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgbnBtanM6IE5wbVB1Ymxpc2hPcHRpb25zID0ge1xuICAgICAgICByZWdpc3RyeTogcHJvamVjdC5wYWNrYWdlLm5wbVJlZ2lzdHJ5LFxuICAgICAgICBucG1Ub2tlblNlY3JldDogcHJvamVjdC5wYWNrYWdlLm5wbVRva2VuU2VjcmV0LFxuICAgICAgICBucG1Qcm92ZW5hbmNlOiBwcm9qZWN0LnBhY2thZ2UubnBtUHJvdmVuYW5jZSxcbiAgICAgICAgY29kZUFydGlmYWN0T3B0aW9uczogb3B0aW9ucy5jb2RlQXJ0aWZhY3RPcHRpb25zLFxuICAgICAgICB0cnVzdGVkUHVibGlzaGluZzogb3B0aW9ucy5ucG1UcnVzdGVkUHVibGlzaGluZyA/PyBmYWxzZSxcbiAgICAgIH07XG4gICAgICB0aGlzLmFkZFRhcmdldFRvQnVpbGQocHJvamVjdCwgcGFja2FnZUpzVGFzaywgXCJqc1wiLCBleHRyYUpvYk9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb1JlbGVhc2UocHJvamVjdCwgcGFja2FnZUpzVGFzaywgXCJqc1wiLCBucG1qcyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF2ZW4gPSBvcHRpb25zLnB1Ymxpc2hUb01hdmVuO1xuICAgIGlmIChtYXZlbikge1xuICAgICAgdGFyZ2V0cy5qYXZhID0ge1xuICAgICAgICBwYWNrYWdlOiBtYXZlbi5qYXZhUGFja2FnZSxcbiAgICAgICAgbWF2ZW46IHtcbiAgICAgICAgICBncm91cElkOiBtYXZlbi5tYXZlbkdyb3VwSWQsXG4gICAgICAgICAgYXJ0aWZhY3RJZDogbWF2ZW4ubWF2ZW5BcnRpZmFjdElkLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgdGFzayA9IHRoaXMuYWRkUGFja2FnaW5nVGFzayhwcm9qZWN0LCBwYWNrYWdlQWxsVGFzaywgXCJqYXZhXCIpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb0J1aWxkKHByb2plY3QsIHRhc2ssIFwiamF2YVwiLCBleHRyYUpvYk9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb1JlbGVhc2UocHJvamVjdCwgdGFzaywgXCJqYXZhXCIsIG1hdmVuKTtcbiAgICB9XG5cbiAgICBjb25zdCBweXBpID0gb3B0aW9ucy5wdWJsaXNoVG9QeXBpO1xuICAgIGlmIChweXBpKSB7XG4gICAgICB0YXJnZXRzLnB5dGhvbiA9IHtcbiAgICAgICAgZGlzdE5hbWU6IHB5cGkuZGlzdE5hbWUsXG4gICAgICAgIG1vZHVsZTogcHlwaS5tb2R1bGUsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCB0YXNrID0gdGhpcy5hZGRQYWNrYWdpbmdUYXNrKHByb2plY3QsIHBhY2thZ2VBbGxUYXNrLCBcInB5dGhvblwiKTtcbiAgICAgIHRoaXMuYWRkVGFyZ2V0VG9CdWlsZChwcm9qZWN0LCB0YXNrLCBcInB5dGhvblwiLCBleHRyYUpvYk9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb1JlbGVhc2UocHJvamVjdCwgdGFzaywgXCJweXRob25cIiwgcHlwaSk7XG4gICAgfVxuXG4gICAgY29uc3QgbnVnZXQgPSBvcHRpb25zLnB1Ymxpc2hUb051Z2V0O1xuICAgIGlmIChudWdldCkge1xuICAgICAgdGFyZ2V0cy5kb3RuZXQgPSB7XG4gICAgICAgIG5hbWVzcGFjZTogbnVnZXQuZG90TmV0TmFtZXNwYWNlLFxuICAgICAgICBwYWNrYWdlSWQ6IG51Z2V0LnBhY2thZ2VJZCxcbiAgICAgICAgaWNvblVybDogbnVnZXQuaWNvblVybCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhc2sgPSB0aGlzLmFkZFBhY2thZ2luZ1Rhc2socHJvamVjdCwgcGFja2FnZUFsbFRhc2ssIFwiZG90bmV0XCIpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb0J1aWxkKHByb2plY3QsIHRhc2ssIFwiZG90bmV0XCIsIGV4dHJhSm9iT3B0aW9ucyk7XG4gICAgICB0aGlzLmFkZFRhcmdldFRvUmVsZWFzZShwcm9qZWN0LCB0YXNrLCBcImRvdG5ldFwiLCBudWdldCk7XG4gICAgfVxuXG4gICAgY29uc3QgZ29sYW5nID0gb3B0aW9ucy5wdWJsaXNoVG9HbztcbiAgICBpZiAoZ29sYW5nKSB7XG4gICAgICB0YXJnZXRzLmdvID0ge1xuICAgICAgICBtb2R1bGVOYW1lOiBnb2xhbmcubW9kdWxlTmFtZSxcbiAgICAgICAgcGFja2FnZU5hbWU6IGdvbGFuZy5wYWNrYWdlTmFtZSxcbiAgICAgICAgdmVyc2lvblN1ZmZpeDogZ29sYW5nLnZlcnNpb25TdWZmaXgsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCB0YXNrID0gdGhpcy5hZGRQYWNrYWdpbmdUYXNrKHByb2plY3QsIHBhY2thZ2VBbGxUYXNrLCBcImdvXCIpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb0J1aWxkKHByb2plY3QsIHRhc2ssIFwiZ29cIiwgZXh0cmFKb2JPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkVGFyZ2V0VG9SZWxlYXNlKHByb2plY3QsIHRhc2ssIFwiZ29cIiwgZ29sYW5nKTtcbiAgICB9XG5cbiAgICAvLyBJZiBqc2lpVmVyc2lvbiBpcyBcIipcIiwgZG9uJ3Qgc3BlY2lmeSBhbnl0aGluZyBzbyB0aGUgdXNlciBjYW4gbWFuYWdlLlxuICAgIC8vIE90aGVyd2lzZSwgdXNlIGBqc2lpVmVyc2lvbmBcbiAgICBjb25zdCBqc2lpVmVyc2lvbiA9IG9wdGlvbnMuanNpaVZlcnNpb24gPz8gXCJ+NS45LjBcIjtcbiAgICBjb25zdCBqc2lpU3VmZml4ID0ganNpaVZlcnNpb24gPT09IFwiKlwiID8gXCJcIiA6IGBAJHtqc2lpVmVyc2lvbn1gO1xuICAgIHByb2plY3QuYWRkRGV2RGVwcyhcbiAgICAgIGBqc2lpJHtqc2lpU3VmZml4fWAsXG4gICAgICBganNpaS1yb3NldHRhJHtqc2lpU3VmZml4fWAsXG4gICAgICBcImpzaWktZGlmZlwiLFxuICAgICAgXCJqc2lpLXBhY21ha1wiLFxuICAgICk7XG5cbiAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKFwiLmpzaWlcIiwgXCJ0c2NvbmZpZy5qc29uXCIpO1xuICAgIHByb2plY3QubnBtaWdub3JlPy5pbmNsdWRlKFwiLmpzaWlcIik7XG5cbiAgICBpZiAob3B0aW9ucy5kb2NnZW4gPz8gdHJ1ZSkge1xuICAgICAgLy8gSWYganNpaVZlcnNpb24gaXMgXCIqXCIsIGRvbid0IHNwZWNpZnkgYW55dGhpbmcgc28gdGhlIHVzZXIgY2FuIG1hbmFnZS5cbiAgICAgIC8vIE90aGVyd2lzZSB1c2UgYSB2ZXJzaW9uIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIGFsbCBzdXBwb3J0ZWQganNpaSByZWxlYXNlcy5cbiAgICAgIGNvbnN0IGRvY2dlblZlcnNpb24gPSBvcHRpb25zLmpzaWlWZXJzaW9uID09PSBcIipcIiA/IFwiKlwiIDogXCJeMTAuNS4wXCI7XG4gICAgICBuZXcgSnNpaURvY2dlbihwcm9qZWN0LCB7XG4gICAgICAgIHZlcnNpb246IGRvY2dlblZlcnNpb24sXG4gICAgICAgIGZpbGVQYXRoOiBvcHRpb25zLmRvY2dlbkZpbGVQYXRoLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8ganNpaSB1cGRhdGVzIC5ucG1pZ25vcmUsIHNvIHdlIG1ha2UgaXQgd3JpdGFibGVcbiAgICBpZiAocHJvamVjdC5ucG1pZ25vcmUpIHtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLnJlYWRvbmx5ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB0YXJnZXQgbGFuZ3VhZ2UgdG8gdGhlIHJlbGVhc2Ugd29ya2Zsb3cuXG4gICAqL1xuICBwcml2YXRlIGFkZFRhcmdldFRvUmVsZWFzZShcbiAgICBwcm9qZWN0OiBUeXBlU2NyaXB0UHJvamVjdCxcbiAgICBwYWNrVGFzazogVGFzayxcbiAgICBsYW5ndWFnZTogSnNpaVBhY21ha1RhcmdldCxcbiAgICB0YXJnZXQ6XG4gICAgICB8IEpzaWlQeXRob25UYXJnZXRcbiAgICAgIHwgSnNpaURvdE5ldFRhcmdldFxuICAgICAgfCBKc2lpR29UYXJnZXRcbiAgICAgIHwgSnNpaUphdmFUYXJnZXRcbiAgICAgIHwgTnBtUHVibGlzaE9wdGlvbnMsXG4gICkge1xuICAgIGlmICghcHJvamVjdC5yZWxlYXNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFjbWFrID0gdGhpcy5wYWNtYWtGb3JMYW5ndWFnZShwcm9qZWN0LCBsYW5ndWFnZSwgcGFja1Rhc2spO1xuICAgIGNvbnN0IHByZVB1Ymxpc2hTdGVwcyA9IFtcbiAgICAgIC4uLnBhY21hay5ib290c3RyYXBTdGVwcyxcbiAgICAgIFdvcmtmbG93U3RlcHMuY2hlY2tvdXQoe1xuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgcGF0aDogUkVQT19URU1QX0RJUkVDVE9SWSxcbiAgICAgICAgICAuLi4ocHJvamVjdC5naXRodWI/LmRvd25sb2FkTGZzID8geyBsZnM6IHRydWUgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLi4ucGFjbWFrLnBhY2thZ2luZ1N0ZXBzLFxuICAgIF07XG4gICAgY29uc3QgY29tbW9uUHVibGlzaE9wdGlvbnM6IENvbW1vblB1Ymxpc2hPcHRpb25zID0ge1xuICAgICAgcHVibGlzaFRvb2xzOiBwYWNtYWsucHVibGlzaFRvb2xzLFxuICAgICAgcHJlUHVibGlzaFN0ZXBzLFxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVyOiBQdWJsaXNoVG8gPSBwdWJsaXNoVG9bbGFuZ3VhZ2VdO1xuICAgIHByb2plY3QucmVsZWFzZT8ucHVibGlzaGVyW2hhbmRsZXJdKHtcbiAgICAgIC4uLmNvbW1vblB1Ymxpc2hPcHRpb25zLFxuICAgICAgLi4udGFyZ2V0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB0YXJnZXQgbGFuZ3VhZ2UgdG8gdGhlIGJ1aWxkIHdvcmtmbG93LlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRUYXJnZXRUb0J1aWxkKFxuICAgIHByb2plY3Q6IFR5cGVTY3JpcHRQcm9qZWN0LFxuICAgIHBhY2tUYXNrOiBUYXNrLFxuICAgIGxhbmd1YWdlOiBKc2lpUGFjbWFrVGFyZ2V0LFxuICAgIGV4dHJhSm9iT3B0aW9uczogUGFydGlhbDxKb2I+LFxuICApIHtcbiAgICBpZiAoIXByb2plY3QuYnVpbGRXb3JrZmxvdykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYWNtYWsgPSB0aGlzLnBhY21ha0Zvckxhbmd1YWdlKHByb2plY3QsIGxhbmd1YWdlLCBwYWNrVGFzayk7XG5cbiAgICBwcm9qZWN0LmJ1aWxkV29ya2Zsb3cuYWRkUG9zdEJ1aWxkSm9iKGBwYWNrYWdlLSR7bGFuZ3VhZ2V9YCwge1xuICAgICAgLi4uZmlsdGVyZWRSdW5zT25PcHRpb25zKFxuICAgICAgICBleHRyYUpvYk9wdGlvbnMucnVuc09uLFxuICAgICAgICBleHRyYUpvYk9wdGlvbnMucnVuc09uR3JvdXAsXG4gICAgICApLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgIH0sXG4gICAgICB0b29sczoge1xuICAgICAgICBub2RlOiB7XG4gICAgICAgICAgdmVyc2lvbjogdGhpcy5vcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb24gPz8gXCJsdHMvKlwiLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wYWNtYWsucHVibGlzaFRvb2xzLFxuICAgICAgfSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIC4uLnBhY21hay5ib290c3RyYXBTdGVwcyxcbiAgICAgICAgV29ya2Zsb3dTdGVwcy5jaGVja291dCh7XG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgcGF0aDogUkVQT19URU1QX0RJUkVDVE9SWSxcbiAgICAgICAgICAgIHJlZjogUFVMTF9SRVFVRVNUX1JFRixcbiAgICAgICAgICAgIHJlcG9zaXRvcnk6IFBVTExfUkVRVUVTVF9SRVBPU0lUT1JZLFxuICAgICAgICAgICAgLi4uKHByb2plY3QuZ2l0aHViPy5kb3dubG9hZExmcyA/IHsgbGZzOiB0cnVlIH0gOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnBhY21hay5wYWNrYWdpbmdTdGVwcyxcbiAgICAgIF0sXG4gICAgICAuLi5leHRyYUpvYk9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZFBhY2thZ2luZ1Rhc2soXG4gICAgcHJvamVjdDogVHlwZVNjcmlwdFByb2plY3QsXG4gICAgcGFja2FnZUFsbFRhc2s6IFRhc2ssXG4gICAgbGFuZ3VhZ2U6IEpzaWlQYWNtYWtUYXJnZXQsXG4gICk6IFRhc2sge1xuICAgIGNvbnN0IHBhY2thZ2VUYXJnZXRUYXNrID0gcHJvamVjdC50YXNrcy5hZGRUYXNrKGBwYWNrYWdlOiR7bGFuZ3VhZ2V9YCwge1xuICAgICAgZGVzY3JpcHRpb246IGBDcmVhdGUgJHtsYW5ndWFnZX0gbGFuZ3VhZ2UgYmluZGluZ3NgLFxuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1hbmRQYXJ0cyA9IFtcImpzaWktcGFjbWFrXCIsIFwiLXZcIl07XG5cbiAgICBpZiAocHJvamVjdC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTSkge1xuICAgICAgY29tbWFuZFBhcnRzLnB1c2goJy0tcGFjay1jb21tYW5kIFwicG5wbSBwYWNrXCInKTtcbiAgICB9XG5cbiAgICBjb21tYW5kUGFydHMucHVzaChgLS10YXJnZXQgJHtsYW5ndWFnZX1gKTtcblxuICAgIHBhY2thZ2VUYXJnZXRUYXNrLmV4ZWMoY29tbWFuZFBhcnRzLmpvaW4oXCIgXCIpKTtcblxuICAgIHBhY2thZ2VBbGxUYXNrLnNwYXduKHBhY2thZ2VUYXJnZXRUYXNrKTtcbiAgICByZXR1cm4gcGFja2FnZVRhcmdldFRhc2s7XG4gIH1cblxuICBwcml2YXRlIHBhY21ha0Zvckxhbmd1YWdlKFxuICAgIHByb2plY3Q6IFR5cGVTY3JpcHRQcm9qZWN0LFxuICAgIHRhcmdldDogSnNpaVBhY21ha1RhcmdldCxcbiAgICBwYWNrVGFzazogVGFzayxcbiAgKToge1xuICAgIHB1Ymxpc2hUb29sczogVG9vbHM7XG4gICAgYm9vdHN0cmFwU3RlcHM6IEFycmF5PFN0ZXA+O1xuICAgIHBhY2thZ2luZ1N0ZXBzOiBBcnJheTxTdGVwPjtcbiAgfSB7XG4gICAgY29uc3QgYm9vdHN0cmFwU3RlcHM6IEFycmF5PFN0ZXA+ID0gW107XG4gICAgY29uc3QgcGFja2FnaW5nU3RlcHM6IEFycmF5PFN0ZXA+ID0gW107XG5cbiAgICAvLyBHZW5lcmljIGJvb3RzdHJhcHBpbmcgZm9yIGFsbCB0YXJnZXQgbGFuZ3VhZ2VzXG4gICAgYm9vdHN0cmFwU3RlcHMucHVzaCguLi4odGhpcy5vcHRpb25zLndvcmtmbG93Qm9vdHN0cmFwU3RlcHMgPz8gW10pKTtcbiAgICBpZiAocHJvamVjdC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTSkge1xuICAgICAgYm9vdHN0cmFwU3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgcG5wbVwiLFxuICAgICAgICB1c2VzOiBcInBucG0vYWN0aW9uLXNldHVwQHY1XCIsXG4gICAgICAgIHdpdGg6IHsgdmVyc2lvbjogcHJvamVjdC5wYWNrYWdlLnBucG1WZXJzaW9uIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlciA9PT0gTm9kZVBhY2thZ2VNYW5hZ2VyLkJVTikge1xuICAgICAgYm9vdHN0cmFwU3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgYnVuXCIsXG4gICAgICAgIHVzZXM6IFwib3Zlbi1zaC9zZXR1cC1idW5AdjJcIixcbiAgICAgICAgd2l0aDogeyBcImJ1bi12ZXJzaW9uXCI6IHByb2plY3QucGFja2FnZS5idW5WZXJzaW9uIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzWWFybkJlcnJ5KHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlcikpIHtcbiAgICAgIGJvb3RzdHJhcFN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiBcIkVuYWJsZSBjb3JlcGFja1wiLFxuICAgICAgICBydW46IFwiY29yZXBhY2sgZW5hYmxlXCIsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCB3b3JrRGlyID0gdGhpcy5vcHRpb25zLndvcmtzcGFjZURpcmVjdG9yeVxuICAgICAgPyBgJHtSRVBPX1RFTVBfRElSRUNUT1JZfS8ke3RoaXMub3B0aW9ucy53b3Jrc3BhY2VEaXJlY3Rvcnl9YFxuICAgICAgOiBSRVBPX1RFTVBfRElSRUNUT1JZO1xuXG4gICAgLy8gSW5zdGFsbGF0aW9uIHN0ZXBzIGJlZm9yZSBwYWNrYWdpbmcsIGJ1dCBhZnRlciBjaGVja291dFxuICAgIHBhY2thZ2luZ1N0ZXBzLnB1c2goXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiSW5zdGFsbCBEZXBlbmRlbmNpZXNcIixcbiAgICAgICAgcnVuOiBgY2QgJHtSRVBPX1RFTVBfRElSRUNUT1JZfSAmJiAke3Byb2plY3QucGFja2FnZS5pbnN0YWxsQ29tbWFuZH1gLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJFeHRyYWN0IGJ1aWxkIGFydGlmYWN0XCIsXG4gICAgICAgIHJ1bjogYHRhciAtLXN0cmlwLWNvbXBvbmVudHM9MSAteHp2ZiAke3Byb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5fS9qcy8qLnRneiAtQyAke3dvcmtEaXJ9YCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGBNb3ZlIGJ1aWxkIGFydGlmYWN0IG91dCBvZiB0aGUgd2F5YCxcbiAgICAgICAgcnVuOiBgbXYgJHtwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX0gJHtCVUlMRF9BUlRJRkFDVF9PTERfRElSfWAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBgQ3JlYXRlICR7dGFyZ2V0fSBhcnRpZmFjdGAsXG4gICAgICAgIHJ1bjogYGNkICR7d29ya0Rpcn0gJiYgJHtwcm9qZWN0LnJ1blRhc2tDb21tYW5kKHBhY2tUYXNrKX1gLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogYENvbGxlY3QgJHt0YXJnZXR9IGFydGlmYWN0YCxcbiAgICAgICAgcnVuOiBgbXYgJHt3b3JrRGlyfS8ke3Byb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5fSAke3Byb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5fWAsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHVibGlzaFRvb2xzOiBKU0lJX1RPT0xDSEFJTlt0YXJnZXRdLFxuICAgICAgYm9vdHN0cmFwU3RlcHMsXG4gICAgICBwYWNrYWdpbmdTdGVwcyxcbiAgICB9O1xuICB9XG59XG5cbnR5cGUgUHVibGlzaFRvID0ga2V5b2YgUHVibGlzaGVyICZcbiAgKFxuICAgIHwgXCJwdWJsaXNoVG9OcG1cIlxuICAgIHwgXCJwdWJsaXNoVG9NYXZlblwiXG4gICAgfCBcInB1Ymxpc2hUb1B5UGlcIlxuICAgIHwgXCJwdWJsaXNoVG9OdWdldFwiXG4gICAgfCBcInB1Ymxpc2hUb0dvXCJcbiAgKTtcblxudHlwZSBQdWJsaXNoVG9UYXJnZXQgPSB7IFtLIGluIEpzaWlQYWNtYWtUYXJnZXRdOiBQdWJsaXNoVG8gfTtcbmNvbnN0IHB1Ymxpc2hUbzogUHVibGlzaFRvVGFyZ2V0ID0ge1xuICBqczogXCJwdWJsaXNoVG9OcG1cIixcbiAgamF2YTogXCJwdWJsaXNoVG9NYXZlblwiLFxuICBweXRob246IFwicHVibGlzaFRvUHlQaVwiLFxuICBkb3RuZXQ6IFwicHVibGlzaFRvTnVnZXRcIixcbiAgZ286IFwicHVibGlzaFRvR29cIixcbn07XG4iXX0=
370
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvanNpaS1idWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLHFDQUEwQztBQUMxQywrQ0FBMkM7QUFPM0Msb0RBR2lDO0FBQ2pDLDZEQUF5RDtBQUV6RCwrREFBMEQ7QUFDMUQsOENBQW1EO0FBRW5ELDZDQUFpRDtBQU1qRCxzREFBMEQ7QUFDMUQsOENBQWtEO0FBRWxELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBQ3BDLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBRTFDOztHQUVHO0FBQ0gsSUFBWSxnQkFvQlg7QUFwQkQsV0FBWSxnQkFBZ0I7SUFDMUI7O09BRUc7SUFDSCxxQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILDJDQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsdUNBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwrQkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQXBCVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixRQW9CM0I7QUFzS0Q7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEsU0FBUztJQUlwQixZQUNFLFVBQTRCLEVBQUUsRUFDOUIsZUFBeUM7UUFFekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQWlCLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLFNBQXFCO1FBQ25DLE9BQU8sU0FBUyxZQUFZLDhCQUFpQixDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxPQUFtQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsRUFBRSxHQUFH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QU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7U0FDNUQsRUFDRDtZQUNFLElBQUksRUFBRSxXQUFXLE1BQU0sV0FBVztZQUNsQyxHQUFHLEVBQUUsTUFBTSxPQUFPLElBQUksT0FBTyxDQUFDLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtTQUNqRixDQUNGLENBQUM7UUFFRixPQUFPO1lBQ0wsWUFBWSxFQUFFLHVCQUFjLENBQUMsTUFBTSxDQUFDO1lBQ3BDLGNBQWM7WUFDZCxjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7O0FBalpILDhCQWtaQzs7O0FBWUQsTUFBTSxTQUFTLEdBQW9CO0lBQ2pDLEVBQUUsRUFBRSxjQUFjO0lBQ2xCLElBQUksRUFBRSxnQkFBZ0I7SUFDdEIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsTUFBTSxFQUFFLGdCQUFnQjtJQUN4QixFQUFFLEVBQUUsYUFBYTtDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0LCBJTWl4aW4gfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgdHlwZSB7IEpzaWlQYWNtYWtUYXJnZXQgfSBmcm9tIFwiLi9jb25zdHNcIjtcbmltcG9ydCB7IEpTSUlfVE9PTENIQUlOIH0gZnJvbSBcIi4vY29uc3RzXCI7XG5pbXBvcnQgeyBKc2lpRG9jZ2VuIH0gZnJvbSBcIi4vanNpaS1kb2NnZW5cIjtcbmltcG9ydCB0eXBlIHtcbiAgSnNpaURvdE5ldFRhcmdldCxcbiAgSnNpaUdvVGFyZ2V0LFxuICBKc2lpSmF2YVRhcmdldCxcbiAgSnNpaVB5dGhvblRhcmdldCxcbn0gZnJvbSBcIi4vanNpaS1wcm9qZWN0XCI7XG5pbXBvcnQge1xuICBQVUxMX1JFUVVFU1RfUkVGLFxuICBQVUxMX1JFUVVFU1RfUkVQT1NJVE9SWSxcbn0gZnJvbSBcIi4uL2J1aWxkL3ByaXZhdGUvY29uc3RzXCI7XG5pbXBvcnQgeyBXb3JrZmxvd1N0ZXBzIH0gZnJvbSBcIi4uL2dpdGh1Yi93b3JrZmxvdy1zdGVwc1wiO1xuaW1wb3J0IHR5cGUgeyBKb2IsIFN0ZXAsIFRvb2xzIH0gZnJvbSBcIi4uL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24gfSBmcm9tIFwiLi4vZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyIH0gZnJvbSBcIi4uL2phdmFzY3JpcHRcIjtcbmltcG9ydCB0eXBlIHsgVHlwZXNjcmlwdENvbmZpZyB9IGZyb20gXCIuLi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBpc1lhcm5CZXJyeSB9IGZyb20gXCIuLi9qYXZhc2NyaXB0L3V0aWxcIjtcbmltcG9ydCB0eXBlIHtcbiAgQ29tbW9uUHVibGlzaE9wdGlvbnMsXG4gIE5wbVB1Ymxpc2hPcHRpb25zLFxuICBQdWJsaXNoZXIsXG59IGZyb20gXCIuLi9yZWxlYXNlXCI7XG5pbXBvcnQgeyBmaWx0ZXJlZFJ1bnNPbk9wdGlvbnMgfSBmcm9tIFwiLi4vcnVubmVyLW9wdGlvbnNcIjtcbmltcG9ydCB7IFR5cGVTY3JpcHRQcm9qZWN0IH0gZnJvbSBcIi4uL3R5cGVzY3JpcHRcIjtcblxuY29uc3QgUkVQT19URU1QX0RJUkVDVE9SWSA9IFwiLnJlcG9cIjtcbmNvbnN0IEJVSUxEX0FSVElGQUNUX09MRF9ESVIgPSBcImRpc3Qub2xkXCI7XG5cbi8qKlxuICogTGV2ZWwgb2YgdHNjb25maWcgdmFsaWRhdGlvbiBqc2lpIHNob3VsZCBwZXJmb3JtLlxuICovXG5leHBvcnQgZW51bSBWYWxpZGF0ZVRzY29uZmlnIHtcbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhZ2FpbnN0IGEgc3RyaWN0IHJ1bGUgc2V0IGRlc2lnbmVkIGZvciB3aWRlc3ByZWFkIHN1cHBvcnQgYW5kIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LlxuICAgKi9cbiAgU1RSSUNUID0gXCJzdHJpY3RcIixcblxuICAvKipcbiAgICogRW5mb3JjZXMgYSB0c2NvbmZpZyBhcyBpZiBpdCB3ZXJlIGdlbmVyYXRlZCBieSBqc2lpLlxuICAgKi9cbiAgR0VORVJBVEVEID0gXCJnZW5lcmF0ZWRcIixcblxuICAvKipcbiAgICogT25seSByZWplY3Qgb3B0aW9ucyBrbm93biB0byBiZSBpbmNvbXBhdGlibGUgd2l0aCBqc2lpLlxuICAgKi9cbiAgTUlOSU1BTCA9IFwibWluaW1hbFwiLFxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhbGwgY29uZmlnIHZhbGlkYXRpb24uIFVzZSBhdCB5b3VyIG93biByaXNrLlxuICAgKi9cbiAgT0ZGID0gXCJvZmZcIixcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgSnNpaUJ1aWxkYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc2lpQnVpbGRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFB1Ymxpc2ggdG8gbWF2ZW5cbiAgICogQGRlZmF1bHQgLSBubyBwdWJsaXNoaW5nXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9NYXZlbj86IEpzaWlKYXZhVGFyZ2V0O1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoIHRvIHB5cGlcbiAgICogQGRlZmF1bHQgLSBubyBwdWJsaXNoaW5nXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9QeXBpPzogSnNpaVB5dGhvblRhcmdldDtcblxuICAvKipcbiAgICogUHVibGlzaCBHbyBiaW5kaW5ncyB0byBhIGdpdCByZXBvc2l0b3J5LlxuICAgKiBAZGVmYXVsdCAtIG5vIHB1Ymxpc2hpbmdcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hUb0dvPzogSnNpaUdvVGFyZ2V0O1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoIHRvIE51R2V0XG4gICAqIEBkZWZhdWx0IC0gbm8gcHVibGlzaGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaFRvTnVnZXQ/OiBKc2lpRG90TmV0VGFyZ2V0O1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHJ1biBBUEkgY29tcGF0aWJpbGl0eSB0ZXN0IGFnYWluc3QgdGhlIGxhdGVzdCB2ZXJzaW9uIHB1Ymxpc2hlZCB0byBucG0gYWZ0ZXIgY29tcGlsYXRpb24uXG4gICAqXG4gICAqIC0gWW91IGNhbiBtYW51YWxseSBydW4gY29tcGF0aWJpbGl0eSB0ZXN0cyB1c2luZyBgeWFybiBjb21wYXRgIGlmIHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZC5cbiAgICogLSBZb3UgY2FuIGlnbm9yZSBjb21wYXRpYmlsaXR5IGZhaWx1cmVzIGJ5IGFkZGluZyBsaW5lcyB0byBhIFwiLmNvbXBhdGlnbm9yZVwiIGZpbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjb21wYXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBpZ25vcmUgZmlsZSBmb3IgQVBJIGNvbXBhdGliaWxpdHkgdGVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiLmNvbXBhdGlnbm9yZVwiXG4gICAqL1xuICByZWFkb25seSBjb21wYXRJZ25vcmU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgYSBsaXN0IG9mIGdsb2IgcGF0dGVybnMuIEZpbGVzIG1hdGNoaW5nIGFueSBvZiB0aG9zZSBwYXR0ZXJucyB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIFR5cGVTY3JpcHQgY29tcGlsZXIgaW5wdXQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGpzaWkgd2lsbCBpbmNsdWRlIGFsbCAqLnRzIGZpbGVzIChleGNlcHQgLmQudHMgZmlsZXMpIGluIHRoZSBUeXBlU2NyaXB0IGNvbXBpbGVyIGlucHV0LlxuICAgKiBUaGlzIGNhbiBiZSBwcm9ibGVtYXRpYyBmb3IgZXhhbXBsZSB3aGVuIHRoZSBwYWNrYWdlJ3MgYnVpbGQgb3IgdGVzdCBwcm9jZWR1cmUgZ2VuZXJhdGVzIC50cyBmaWxlc1xuICAgKiB0aGF0IGNhbm5vdCBiZSBjb21waWxlZCB3aXRoIGpzaWkncyBjb21waWxlciBzZXR0aW5ncy5cbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGVUeXBlc2NyaXB0Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEZpbGUgcGF0aCBmb3IgZ2VuZXJhdGVkIGRvY3MuXG4gICAqIEBkZWZhdWx0IFwiQVBJLm1kXCJcbiAgICovXG4gIHJlYWRvbmx5IGRvY2dlbkZpbGVQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbWl0IGEgY29tcHJlc3NlZCB2ZXJzaW9uIG9mIHRoZSBhc3NlbWJseVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHJlc3NBc3NlbWJseT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgdGhlIGpzaWkgY29tcGlsZXIgdG8gdXNlLlxuICAgKlxuICAgKiBTZXQgdG8gXCIqXCIgaWYgeW91IHdhbnQgdG8gbWFudWFsbHkgbWFuYWdlIHRoZSB2ZXJzaW9uIG9mIGpzaWkgaW4geW91clxuICAgKiBwcm9qZWN0IGJ5IG1hbmFnaW5nIHVwZGF0ZXMgdG8gYHBhY2thZ2UuanNvbmAgb24geW91ciBvd24uXG4gICAqXG4gICAqIE5PVEU6IFRoZSBqc2lpIGNvbXBpbGVyIHJlbGVhc2VzIHNpbmNlIDUuMC4wIGFyZSBub3Qgc2VtYW50aWNhbGx5IHZlcnNpb25lZFxuICAgKiBhbmQgc2hvdWxkIHJlbWFpbiBvbiB0aGUgc2FtZSBtaW5vciwgc28gd2UgcmVjb21tZW5kIHVzaW5nIGEgYH5gIGRlcGVuZGVuY3lcbiAgICogKGUuZy4gYH41LjAuMGApLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIn41LjkuMFwiXG4gICAqIEBwam5ldyBcIn41LjkuMFwiXG4gICAqL1xuICByZWFkb25seSBqc2lpVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YWJpbGl0eSBvZiB0aGUgcGFja2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJzdGFibGVcIlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhYmlsaXR5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIE1hcmtEb3duIGZpbGUgZGVzY3JpYmluZyB0aGUganNpaSBBUEkuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2dlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHVibGlzaCB0byBucG0uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VUb05wbT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIHRydXN0ZWQgcHVibGlzaGluZyBmb3IgbnBtLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbnBtVHJ1c3RlZFB1Ymxpc2hpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBwdWJsaXNoaW5nIG5wbSBwYWNrYWdlIHRvIEFXUyBDb2RlQXJ0aWZhY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBjb2RlQXJ0aWZhY3RPcHRpb25zPzogTnBtUHVibGlzaE9wdGlvbnNbXCJjb2RlQXJ0aWZhY3RPcHRpb25zXCJdO1xuXG4gIC8qKlxuICAgKiBSZWxhdGl2ZSBwYXRoIG9mIHRoZSBwYWNrYWdlIHdpdGhpbiB0aGUgcmVwb3NpdG9yeS5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VkIGluIG1vbm9yZXBvIHNldHVwcyB3aGVyZSB0aGUgcGFja2FnZSBpcyBub3QgYXQgdGhlIHJvb3QuXG4gICAqIFBhY2thZ2luZyBzdGVwcyB3aWxsIGV4dHJhY3QgYnVpbGQgYXJ0aWZhY3RzIGludG8gdGhpcyBzdWJkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiLlwiIC0gcm9vdCBvZiB0aGUgcmVwb3NpdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya3NwYWNlRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbm9kZSB2ZXJzaW9uIHRvIHVzZSBpbiBwYWNrYWdpbmcgd29ya2Zsb3dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImx0cy8qXCJcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93Tm9kZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgc3RlcHMgdG8gcnVuIGJlZm9yZSBwYWNrYWdpbmcgaW4gd29ya2Zsb3dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dCb290c3RyYXBTdGVwcz86IEFycmF5PFN0ZXA+O1xuXG4gIC8qKlxuICAgKiBMZXZlbCBvZiB0c2NvbmZpZyB2YWxpZGF0aW9uIGpzaWkgc2hvdWxkIHBlcmZvcm0gb24gdGhlIHVzZXItcHJvdmlkZWQgdHNjb25maWcuXG4gICAqXG4gICAqIE9ubHkgcmVsZXZhbnQgd2hlbiB0aGUgcHJvamVjdCBzeW50aGVzaXplcyBpdHMgb3duIHRzY29uZmlnXG4gICAqIChpLmUuIGBkaXNhYmxlVHNjb25maWdgIGlzIG5vdCBzZXQgb24gdGhlIFR5cGVTY3JpcHRQcm9qZWN0KS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2F3cy5naXRodWIuaW8vanNpaS91c2VyLWd1aWRlcy9saWItYXV0aG9yL2NvbmZpZ3VyYXRpb24vI3ZhbGlkYXRldHNjb25maWdcbiAgICogQGRlZmF1bHQgVmFsaWRhdGVUc2NvbmZpZy5TVFJJQ1RcbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRlVHNjb25maWc/OiBWYWxpZGF0ZVRzY29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgVHlwZXNjcmlwdENvbmZpZyB0aGF0IGpzaWkgY29tcGlsZXMgYWdhaW5zdC5cbiAgICpcbiAgICogUHJvdmlkZSBhIGRlZGljYXRlZCBjb25maWcgKGUuZy4gb25lIG5hbWVkIGB0c2NvbmZpZy5qc2lpLmpzb25gKSB0byBrZWVwXG4gICAqIGpzaWkgY29tcGlsYXRpb24gc2VwYXJhdGUgZnJvbSB0aGUgcHJvamVjdCdzIGVkaXRvci1mYWNpbmcgYHRzY29uZmlnLmpzb25gLlxuICAgKiBqc2lpIHJlcXVpcmVzIGEgY29tbWVudC1mcmVlLCBzdHJpY3QtdmFsaWQgY29uZmlnLCBzbyBgSnNpaUJ1aWxkYCBkaXNhYmxlc1xuICAgKiBjb21tZW50cyBvbiB3aGljaGV2ZXIgY29uZmlnIGl0IGlzIGdpdmVuLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBwcm9qZWN0J3MgdHNjb25maWcgKGkuZS4gYHByb2plY3QudHNjb25maWdgKVxuICAgKi9cbiAgcmVhZG9ubHkgdHNjb25maWc/OiBUeXBlc2NyaXB0Q29uZmlnO1xufVxuXG4vKipcbiAqIEEgbWl4aW4gdGhhdCBhZGRzIGpzaWkgY29tcGlsYXRpb24sIG11bHRpLWxhbmd1YWdlIHBhY2thZ2luZywgYW5kIHB1Ymxpc2hpbmdcbiAqIGNhcGFiaWxpdGllcyB0byBhbnkgVHlwZVNjcmlwdCBwcm9qZWN0LlxuICpcbiAqIFRoaXMgaW1wbGVtZW50cyB0aGUgY29uc3RydWN0cyBgSU1peGluYCBpbnRlcmZhY2UgYW5kIGlzIGFwcGxpZWQgdXNpbmcgdGhlXG4gKiBgLndpdGgoKWAgbWV0aG9kIG9uIGFueSBjb25zdHJ1Y3QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHByb2plY3QgPSBuZXcgVHlwZVNjcmlwdFByb2plY3QoeyBkaXNhYmxlVHNjb25maWc6IHRydWUsIC4uLiB9KTtcbiAqIHByb2plY3Qud2l0aChuZXcgSnNpaUJ1aWxkKHtcbiAqICAganNpaVZlcnNpb246ICd+NS45LjAnLFxuICogICBwdWJsaXNoVG9NYXZlbjogeyAuLi4gfSxcbiAqIH0pKTtcbiAqL1xuZXhwb3J0IGNsYXNzIEpzaWlCdWlsZCBpbXBsZW1lbnRzIElNaXhpbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogSnNpaUJ1aWxkT3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBleHRyYUpvYk9wdGlvbnM6IFBhcnRpYWw8Sm9iPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBvcHRpb25zOiBKc2lpQnVpbGRPcHRpb25zID0ge30sXG4gICAgZXh0cmFKb2JPcHRpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICkge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5leHRyYUpvYk9wdGlvbnMgPSAoZXh0cmFKb2JPcHRpb25zID8/IHt9KSBhcyBQYXJ0aWFsPEpvYj47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjb25zdHJ1Y3QgaXMgYSBUeXBlU2NyaXB0UHJvamVjdC5cbiAgICovXG4gIHB1YmxpYyBzdXBwb3J0cyhjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QpOiBjb25zdHJ1Y3QgaXMgVHlwZVNjcmlwdFByb2plY3Qge1xuICAgIHJldHVybiBjb25zdHJ1Y3QgaW5zdGFuY2VvZiBUeXBlU2NyaXB0UHJvamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGpzaWkgY29uZmlndXJhdGlvbiB0byB0aGUgdGFyZ2V0IFR5cGVTY3JpcHRQcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIGFwcGx5VG8ocHJvamVjdDogSUNvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdXBwb3J0cyhwcm9qZWN0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucyB9O1xuICAgIGNvbnN0IHNyY2RpciA9IHByb2plY3Quc3JjZGlyO1xuICAgIGNvbnN0IGxpYmRpciA9IHByb2plY3QubGliZGlyO1xuXG4gICAgcHJvamVjdC5hZGRGaWVsZHMoeyB0eXBlczogYCR7bGliZGlyfS9pbmRleC5kLnRzYCB9KTtcblxuICAgIGNvbnN0IGNvbXByZXNzQXNzZW1ibHkgPSBvcHRpb25zLmNvbXByZXNzQXNzZW1ibHkgPz8gZmFsc2U7XG5cbiAgICAvLyB0aGlzIGlzIGFuIHVuaGVscGZ1bCB3YXJuaW5nXG4gICAgY29uc3QganNpaUZsYWdzID0gW1wiLS1zaWxlbmNlLXdhcm5pbmdzPXJlc2VydmVkLXdvcmRcIl07XG4gICAgaWYgKGNvbXByZXNzQXNzZW1ibHkpIHtcbiAgICAgIGpzaWlGbGFncy5wdXNoKFwiLS1jb21wcmVzcy1hc3NlbWJseVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wYXRJZ25vcmUgPSBvcHRpb25zLmNvbXBhdElnbm9yZSA/PyBcIi5jb21wYXRpZ25vcmVcIjtcblxuICAgIHByb2plY3QuYWRkRmllbGRzKHtcbiAgICAgIHN0YWJpbGl0eTpcbiAgICAgICAgb3B0aW9ucy5zdGFiaWxpdHkgPz8gcHJvamVjdC5wYWNrYWdlLm1hbmlmZXN0LnN0YWJpbGl0eSA/PyBcInN0YWJsZVwiLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuc3RhYmlsaXR5ID09PSBcImRlcHJlY2F0ZWRcIikge1xuICAgICAgcHJvamVjdC5hZGRGaWVsZHMoeyBkZXByZWNhdGVkOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHByb2plY3QuY29tcGlsZVRhc2sucmVzZXQoW1wianNpaVwiLCAuLi5qc2lpRmxhZ3NdLmpvaW4oXCIgXCIpKTtcbiAgICBwcm9qZWN0LndhdGNoVGFzay5yZXNldChbXCJqc2lpXCIsIFwiLXdcIiwgLi4uanNpaUZsYWdzXS5qb2luKFwiIFwiKSk7XG5cbiAgICBjb25zdCBjb21wYXRUYXNrID0gcHJvamVjdC5hZGRUYXNrKFwiY29tcGF0XCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlBlcmZvcm0gQVBJIGNvbXBhdGliaWxpdHkgY2hlY2sgYWdhaW5zdCBsYXRlc3QgdmVyc2lvblwiLFxuICAgICAgZXhlYzogYGpzaWktZGlmZiBucG06JChub2RlIC1wIFwicmVxdWlyZShcXCcuL3BhY2thZ2UuanNvblxcJykubmFtZVwiKSAtayAtLWlnbm9yZS1maWxlICR7Y29tcGF0SWdub3JlfSB8fCAoZWNobyBcIlxcblVORVhQRUNURUQgQlJFQUtJTkcgQ0hBTkdFUzogYWRkIGtleXMgc3VjaCBhcyBcXCdyZW1vdmVkOmNvbnN0cnVjdHMuTm9kZS5vZlxcJyB0byAke2NvbXBhdElnbm9yZX0gdG8gc2tpcC5cXG5cIiAmJiBleGl0IDEpYCxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zLmNvbXBhdCA/PyBmYWxzZSkge1xuICAgICAgcHJvamVjdC5jb21waWxlVGFzay5zcGF3bihjb21wYXRUYXNrKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBuZXcgcGFja2FnZTphbGwgdGFzaywgaXQgd2lsbCBiZSBmaWxsZWQgd2l0aCBsYW5ndWFnZSB0YXJnZXRzIGxhdGVyXG4gICAgY29uc3QgcGFja2FnZUFsbFRhc2sgPSBwcm9qZWN0LmFkZFRhc2soXCJwYWNrYWdlLWFsbFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJQYWNrYWdlcyBhcnRpZmFjdHMgZm9yIGFsbCB0YXJnZXQgbGFuZ3VhZ2VzXCIsXG4gICAgfSk7XG5cbiAgICAvLyBpbiBqc2lpIHdlIGNvbnNpZGVyIHRoZSBlbnRpcmUgcmVwbyAocG9zdCBidWlsZCkgYXMgdGhlIGJ1aWxkIGFydGlmYWN0XG4gICAgLy8gd2hpY2ggaXMgdGhlbiB1c2VkIHRvIGNyZWF0ZSB0aGUgbGFuZ3VhZ2UgYmluZGluZ3MgaW4gc2VwYXJhdGUgam9icy5cbiAgICBjb25zdCBwYWNrYWdlSnNUYXNrID0gdGhpcy5hZGRQYWNrYWdpbmdUYXNrKHByb2plY3QsIHBhY2thZ2VBbGxUYXNrLCBcImpzXCIpO1xuXG4gICAgLy8gV2hlbiBydW5uaW5nIGluc2lkZSBDSSB3ZSBpbml0aWFsbHkgb25seSBwYWNrYWdlIGpzLiBPdGhlciB0YXJnZXRzIGFyZSBwYWNrYWdlZCBpbiBzZXBhcmF0ZSBqb2JzLlxuICAgIC8vIE91dHNpZGUgb2YgQ0kgKGkuZSBsb2NhbGx5KSB3ZSBzaW1wbHkgcGFja2FnZSBhbGwgdGFyZ2V0cy5cbiAgICBwcm9qZWN0LnBhY2thZ2VUYXNrLnJlc2V0KCk7XG4gICAgcHJvamVjdC5wYWNrYWdlVGFzay5zcGF3bihwYWNrYWdlSnNUYXNrLCB7XG4gICAgICAvLyBPbmx5IHJ1biBpbiBDSVxuICAgICAgY29uZGl0aW9uOiBgbm9kZSAtZSBcImlmICghcHJvY2Vzcy5lbnYuQ0kpIHByb2Nlc3MuZXhpdCgxKVwiYCxcbiAgICB9KTtcbiAgICBwcm9qZWN0LnBhY2thZ2VUYXNrLnNwYXduKHBhY2thZ2VBbGxUYXNrLCB7XG4gICAgICAvLyBEb24ndCBydW4gaW4gQ0lcbiAgICAgIGNvbmRpdGlvbjogYG5vZGUgLWUgXCJpZiAocHJvY2Vzcy5lbnYuQ0kpIHByb2Nlc3MuZXhpdCgxKVwiYCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHRhcmdldHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICAgIGNvbnN0IGpzaWk6IGFueSA9IHtcbiAgICAgIG91dGRpcjogcHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICB0YXJnZXRzLFxuICAgIH07XG5cbiAgICAvLyBqc2lpIGNvbXBpbGVzIGFnYWluc3QgYW4gZXhwbGljaXRseSBwcm92aWRlZCB0c2NvbmZpZywgZmFsbGluZyBiYWNrIHRvXG4gICAgLy8gdGhlIHByb2plY3QncyBvd24gdHNjb25maWcgd2hlbiBvbmUgaXMgbm90IGluamVjdGVkLiBXaGVuIG5laXRoZXIgaXNcbiAgICAvLyBhdmFpbGFibGUgKGUuZy4gYGRpc2FibGVUc2NvbmZpZ2ApLCBsZXQganNpaSBnZW5lcmF0ZSBvbmUgZnJvbSB0c2Mgc2V0dGluZ3MuXG4gICAgY29uc3QgdHNjb25maWcgPSBvcHRpb25zLnRzY29uZmlnID8/IHByb2plY3QudHNjb25maWc7XG4gICAgaWYgKHRzY29uZmlnKSB7XG4gICAgICAvLyBAdHMtaWdub3JlIGpzaWkgdXNlcyBKU09OLnBhcnNlKCkgYW5kIGNhbm5vdCBoYW5kbGUgY29tbWVudHNcbiAgICAgIHRzY29uZmlnLmZpbGUuY29uZmlndXJlQ29tbWVudHMoZmFsc2UpO1xuICAgICAganNpaS50c2NvbmZpZyA9IHRzY29uZmlnLmZpbGVOYW1lO1xuICAgICAganNpaS52YWxpZGF0ZVRzY29uZmlnID1cbiAgICAgICAgb3B0aW9ucy52YWxpZGF0ZVRzY29uZmlnID8/IFZhbGlkYXRlVHNjb25maWcuU1RSSUNUO1xuXG4gICAgICBpZiAob3B0aW9ucy5leGNsdWRlVHlwZXNjcmlwdCkge1xuICAgICAgICBmb3IgKGNvbnN0IHBhdHRlcm4gb2Ygb3B0aW9ucy5leGNsdWRlVHlwZXNjcmlwdCkge1xuICAgICAgICAgIHRzY29uZmlnLmFkZEV4Y2x1ZGUocGF0dGVybik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAganNpaS50c2MgPSB7XG4gICAgICAgIG91dERpcjogbGliZGlyLFxuICAgICAgICByb290RGlyOiBzcmNkaXIsXG4gICAgICB9O1xuICAgICAgaWYgKG9wdGlvbnMuZXhjbHVkZVR5cGVzY3JpcHQpIHtcbiAgICAgICAganNpaS5leGNsdWRlVHlwZXNjcmlwdCA9IG9wdGlvbnMuZXhjbHVkZVR5cGVzY3JpcHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvamVjdC5hZGRGaWVsZHMoeyBqc2lpIH0pO1xuXG4gICAgY29uc3QgZXh0cmFKb2JPcHRpb25zOiBQYXJ0aWFsPEpvYj4gPSB0aGlzLmV4dHJhSm9iT3B0aW9ucztcblxuICAgIGlmIChvcHRpb25zLnJlbGVhc2VUb05wbSAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IG5wbWpzOiBOcG1QdWJsaXNoT3B0aW9ucyA9IHtcbiAgICAgICAgcmVnaXN0cnk6IHByb2plY3QucGFja2FnZS5ucG1SZWdpc3RyeSxcbiAgICAgICAgbnBtVG9rZW5TZWNyZXQ6IHByb2plY3QucGFja2FnZS5ucG1Ub2tlblNlY3JldCxcbiAgICAgICAgbnBtUHJvdmVuYW5jZTogcHJvamVjdC5wYWNrYWdlLm5wbVByb3ZlbmFuY2UsXG4gICAgICAgIGNvZGVBcnRpZmFjdE9wdGlvbnM6IG9wdGlvbnMuY29kZUFydGlmYWN0T3B0aW9ucyxcbiAgICAgICAgdHJ1c3RlZFB1Ymxpc2hpbmc6XG4gICAgICAgICAgb3B0aW9ucy5ucG1UcnVzdGVkUHVibGlzaGluZyA/P1xuICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgIHByb2plY3Qub3B0aW9ucy5ucG1UcnVzdGVkUHVibGlzaGluZyA/P1xuICAgICAgICAgIGZhbHNlLFxuICAgICAgfTtcbiAgICAgIHRoaXMuYWRkVGFyZ2V0VG9CdWlsZChwcm9qZWN0LCBwYWNrYWdlSnNUYXNrLCBcImpzXCIsIGV4dHJhSm9iT3B0aW9ucyk7XG4gICAgICB0aGlzLmFkZFRhcmdldFRvUmVsZWFzZShwcm9qZWN0LCBwYWNrYWdlSnNUYXNrLCBcImpzXCIsIG5wbWpzKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXZlbiA9IG9wdGlvbnMucHVibGlzaFRvTWF2ZW47XG4gICAgaWYgKG1hdmVuKSB7XG4gICAgICB0YXJnZXRzLmphdmEgPSB7XG4gICAgICAgIHBhY2thZ2U6IG1hdmVuLmphdmFQYWNrYWdlLFxuICAgICAgICBtYXZlbjoge1xuICAgICAgICAgIGdyb3VwSWQ6IG1hdmVuLm1hdmVuR3JvdXBJZCxcbiAgICAgICAgICBhcnRpZmFjdElkOiBtYXZlbi5tYXZlbkFydGlmYWN0SWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCB0YXNrID0gdGhpcy5hZGRQYWNrYWdpbmdUYXNrKHByb2plY3QsIHBhY2thZ2VBbGxUYXNrLCBcImphdmFcIik7XG4gICAgICB0aGlzLmFkZFRhcmdldFRvQnVpbGQocHJvamVjdCwgdGFzaywgXCJqYXZhXCIsIGV4dHJhSm9iT3B0aW9ucyk7XG4gICAgICB0aGlzLmFkZFRhcmdldFRvUmVsZWFzZShwcm9qZWN0LCB0YXNrLCBcImphdmFcIiwgbWF2ZW4pO1xuICAgIH1cblxuICAgIGNvbnN0IHB5cGkgPSBvcHRpb25zLnB1Ymxpc2hUb1B5cGk7XG4gICAgaWYgKHB5cGkpIHtcbiAgICAgIHRhcmdldHMucHl0aG9uID0ge1xuICAgICAgICBkaXN0TmFtZTogcHlwaS5kaXN0TmFtZSxcbiAgICAgICAgbW9kdWxlOiBweXBpLm1vZHVsZSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhc2sgPSB0aGlzLmFkZFBhY2thZ2luZ1Rhc2socHJvamVjdCwgcGFja2FnZUFsbFRhc2ssIFwicHl0aG9uXCIpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb0J1aWxkKHByb2plY3QsIHRhc2ssIFwicHl0aG9uXCIsIGV4dHJhSm9iT3B0aW9ucyk7XG4gICAgICB0aGlzLmFkZFRhcmdldFRvUmVsZWFzZShwcm9qZWN0LCB0YXNrLCBcInB5dGhvblwiLCBweXBpKTtcbiAgICB9XG5cbiAgICBjb25zdCBudWdldCA9IG9wdGlvbnMucHVibGlzaFRvTnVnZXQ7XG4gICAgaWYgKG51Z2V0KSB7XG4gICAgICB0YXJnZXRzLmRvdG5ldCA9IHtcbiAgICAgICAgbmFtZXNwYWNlOiBudWdldC5kb3ROZXROYW1lc3BhY2UsXG4gICAgICAgIHBhY2thZ2VJZDogbnVnZXQucGFja2FnZUlkLFxuICAgICAgICBpY29uVXJsOiBudWdldC5pY29uVXJsLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgdGFzayA9IHRoaXMuYWRkUGFja2FnaW5nVGFzayhwcm9qZWN0LCBwYWNrYWdlQWxsVGFzaywgXCJkb3RuZXRcIik7XG4gICAgICB0aGlzLmFkZFRhcmdldFRvQnVpbGQocHJvamVjdCwgdGFzaywgXCJkb3RuZXRcIiwgZXh0cmFKb2JPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkVGFyZ2V0VG9SZWxlYXNlKHByb2plY3QsIHRhc2ssIFwiZG90bmV0XCIsIG51Z2V0KTtcbiAgICB9XG5cbiAgICBjb25zdCBnb2xhbmcgPSBvcHRpb25zLnB1Ymxpc2hUb0dvO1xuICAgIGlmIChnb2xhbmcpIHtcbiAgICAgIHRhcmdldHMuZ28gPSB7XG4gICAgICAgIG1vZHVsZU5hbWU6IGdvbGFuZy5tb2R1bGVOYW1lLFxuICAgICAgICBwYWNrYWdlTmFtZTogZ29sYW5nLnBhY2thZ2VOYW1lLFxuICAgICAgICB2ZXJzaW9uU3VmZml4OiBnb2xhbmcudmVyc2lvblN1ZmZpeCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhc2sgPSB0aGlzLmFkZFBhY2thZ2luZ1Rhc2socHJvamVjdCwgcGFja2FnZUFsbFRhc2ssIFwiZ29cIik7XG4gICAgICB0aGlzLmFkZFRhcmdldFRvQnVpbGQocHJvamVjdCwgdGFzaywgXCJnb1wiLCBleHRyYUpvYk9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb1JlbGVhc2UocHJvamVjdCwgdGFzaywgXCJnb1wiLCBnb2xhbmcpO1xuICAgIH1cblxuICAgIC8vIElmIGpzaWlWZXJzaW9uIGlzIFwiKlwiLCBkb24ndCBzcGVjaWZ5IGFueXRoaW5nIHNvIHRoZSB1c2VyIGNhbiBtYW5hZ2UuXG4gICAgLy8gT3RoZXJ3aXNlLCB1c2UgYGpzaWlWZXJzaW9uYFxuICAgIGNvbnN0IGpzaWlWZXJzaW9uID0gb3B0aW9ucy5qc2lpVmVyc2lvbiA/PyBcIn41LjkuMFwiO1xuICAgIGNvbnN0IGpzaWlTdWZmaXggPSBqc2lpVmVyc2lvbiA9PT0gXCIqXCIgPyBcIlwiIDogYEAke2pzaWlWZXJzaW9ufWA7XG4gICAgcHJvamVjdC5hZGREZXZEZXBzKFxuICAgICAgYGpzaWkke2pzaWlTdWZmaXh9YCxcbiAgICAgIGBqc2lpLXJvc2V0dGEke2pzaWlTdWZmaXh9YCxcbiAgICAgIFwianNpaS1kaWZmXCIsXG4gICAgICBcImpzaWktcGFjbWFrXCIsXG4gICAgKTtcblxuICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoXCIuanNpaVwiKTtcbiAgICBpZiAoIXRzY29uZmlnKSB7XG4gICAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKFwidHNjb25maWcuanNvblwiKTtcbiAgICB9XG4gICAgcHJvamVjdC5ucG1pZ25vcmU/LmluY2x1ZGUoXCIuanNpaVwiKTtcblxuICAgIGlmIChvcHRpb25zLmRvY2dlbiA/PyB0cnVlKSB7XG4gICAgICAvLyBJZiBqc2lpVmVyc2lvbiBpcyBcIipcIiwgZG9uJ3Qgc3BlY2lmeSBhbnl0aGluZyBzbyB0aGUgdXNlciBjYW4gbWFuYWdlLlxuICAgICAgLy8gT3RoZXJ3aXNlIHVzZSBhIHZlcnNpb24gdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggYWxsIHN1cHBvcnRlZCBqc2lpIHJlbGVhc2VzLlxuICAgICAgY29uc3QgZG9jZ2VuVmVyc2lvbiA9IG9wdGlvbnMuanNpaVZlcnNpb24gPT09IFwiKlwiID8gXCIqXCIgOiBcIl4xMC41LjBcIjtcbiAgICAgIG5ldyBKc2lpRG9jZ2VuKHByb2plY3QsIHtcbiAgICAgICAgdmVyc2lvbjogZG9jZ2VuVmVyc2lvbixcbiAgICAgICAgZmlsZVBhdGg6IG9wdGlvbnMuZG9jZ2VuRmlsZVBhdGgsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBqc2lpIHVwZGF0ZXMgLm5wbWlnbm9yZSwgc28gd2UgbWFrZSBpdCB3cml0YWJsZVxuICAgIGlmIChwcm9qZWN0Lm5wbWlnbm9yZSkge1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUucmVhZG9ubHkgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRhcmdldCBsYW5ndWFnZSB0byB0aGUgcmVsZWFzZSB3b3JrZmxvdy5cbiAgICovXG4gIHByaXZhdGUgYWRkVGFyZ2V0VG9SZWxlYXNlKFxuICAgIHByb2plY3Q6IFR5cGVTY3JpcHRQcm9qZWN0LFxuICAgIHBhY2tUYXNrOiBUYXNrLFxuICAgIGxhbmd1YWdlOiBKc2lpUGFjbWFrVGFyZ2V0LFxuICAgIHRhcmdldDpcbiAgICAgIHwgSnNpaVB5dGhvblRhcmdldFxuICAgICAgfCBKc2lpRG90TmV0VGFyZ2V0XG4gICAgICB8IEpzaWlHb1RhcmdldFxuICAgICAgfCBKc2lpSmF2YVRhcmdldFxuICAgICAgfCBOcG1QdWJsaXNoT3B0aW9ucyxcbiAgKSB7XG4gICAgaWYgKCFwcm9qZWN0LnJlbGVhc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYWNtYWsgPSB0aGlzLnBhY21ha0Zvckxhbmd1YWdlKHByb2plY3QsIGxhbmd1YWdlLCBwYWNrVGFzayk7XG4gICAgY29uc3QgcHJlUHVibGlzaFN0ZXBzID0gW1xuICAgICAgLi4ucGFjbWFrLmJvb3RzdHJhcFN0ZXBzLFxuICAgICAgV29ya2Zsb3dTdGVwcy5jaGVja291dCh7XG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBwYXRoOiBSRVBPX1RFTVBfRElSRUNUT1JZLFxuICAgICAgICAgIC4uLihwcm9qZWN0LmdpdGh1Yj8uZG93bmxvYWRMZnMgPyB7IGxmczogdHJ1ZSB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICAuLi5wYWNtYWsucGFja2FnaW5nU3RlcHMsXG4gICAgXTtcbiAgICBjb25zdCBjb21tb25QdWJsaXNoT3B0aW9uczogQ29tbW9uUHVibGlzaE9wdGlvbnMgPSB7XG4gICAgICBwdWJsaXNoVG9vbHM6IHBhY21hay5wdWJsaXNoVG9vbHMsXG4gICAgICBwcmVQdWJsaXNoU3RlcHMsXG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZXI6IFB1Ymxpc2hUbyA9IHB1Ymxpc2hUb1tsYW5ndWFnZV07XG4gICAgcHJvamVjdC5yZWxlYXNlPy5wdWJsaXNoZXJbaGFuZGxlcl0oe1xuICAgICAgLi4uY29tbW9uUHVibGlzaE9wdGlvbnMsXG4gICAgICAuLi50YXJnZXQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRhcmdldCBsYW5ndWFnZSB0byB0aGUgYnVpbGQgd29ya2Zsb3cuXG4gICAqL1xuICBwcml2YXRlIGFkZFRhcmdldFRvQnVpbGQoXG4gICAgcHJvamVjdDogVHlwZVNjcmlwdFByb2plY3QsXG4gICAgcGFja1Rhc2s6IFRhc2ssXG4gICAgbGFuZ3VhZ2U6IEpzaWlQYWNtYWtUYXJnZXQsXG4gICAgZXh0cmFKb2JPcHRpb25zOiBQYXJ0aWFsPEpvYj4sXG4gICkge1xuICAgIGlmICghcHJvamVjdC5idWlsZFdvcmtmbG93KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBhY21hayA9IHRoaXMucGFjbWFrRm9yTGFuZ3VhZ2UocHJvamVjdCwgbGFuZ3VhZ2UsIHBhY2tUYXNrKTtcblxuICAgIHByb2plY3QuYnVpbGRXb3JrZmxvdy5hZGRQb3N0QnVpbGRKb2IoYHBhY2thZ2UtJHtsYW5ndWFnZX1gLCB7XG4gICAgICAuLi5maWx0ZXJlZFJ1bnNPbk9wdGlvbnMoXG4gICAgICAgIGV4dHJhSm9iT3B0aW9ucy5ydW5zT24sXG4gICAgICAgIGV4dHJhSm9iT3B0aW9ucy5ydW5zT25Hcm91cCxcbiAgICAgICksXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgfSxcbiAgICAgIHRvb2xzOiB7XG4gICAgICAgIG5vZGU6IHtcbiAgICAgICAgICB2ZXJzaW9uOlxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb24gPz9cbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHByb2plY3Qubm9kZVZlcnNpb24gPz9cbiAgICAgICAgICAgIFwibHRzLypcIixcbiAgICAgICAgfSxcbiAgICAgICAgLi4ucGFjbWFrLnB1Ymxpc2hUb29scyxcbiAgICAgIH0sXG4gICAgICBzdGVwczogW1xuICAgICAgICAuLi5wYWNtYWsuYm9vdHN0cmFwU3RlcHMsXG4gICAgICAgIFdvcmtmbG93U3RlcHMuY2hlY2tvdXQoe1xuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIHBhdGg6IFJFUE9fVEVNUF9ESVJFQ1RPUlksXG4gICAgICAgICAgICByZWY6IFBVTExfUkVRVUVTVF9SRUYsXG4gICAgICAgICAgICByZXBvc2l0b3J5OiBQVUxMX1JFUVVFU1RfUkVQT1NJVE9SWSxcbiAgICAgICAgICAgIC4uLihwcm9qZWN0LmdpdGh1Yj8uZG93bmxvYWRMZnMgPyB7IGxmczogdHJ1ZSB9IDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICAuLi5wYWNtYWsucGFja2FnaW5nU3RlcHMsXG4gICAgICBdLFxuICAgICAgLi4uZXh0cmFKb2JPcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRQYWNrYWdpbmdUYXNrKFxuICAgIHByb2plY3Q6IFR5cGVTY3JpcHRQcm9qZWN0LFxuICAgIHBhY2thZ2VBbGxUYXNrOiBUYXNrLFxuICAgIGxhbmd1YWdlOiBKc2lpUGFjbWFrVGFyZ2V0LFxuICApOiBUYXNrIHtcbiAgICBjb25zdCBwYWNrYWdlVGFyZ2V0VGFzayA9IHByb2plY3QudGFza3MuYWRkVGFzayhgcGFja2FnZToke2xhbmd1YWdlfWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgQ3JlYXRlICR7bGFuZ3VhZ2V9IGxhbmd1YWdlIGJpbmRpbmdzYCxcbiAgICB9KTtcbiAgICBjb25zdCBjb21tYW5kUGFydHMgPSBbXCJqc2lpLXBhY21ha1wiLCBcIi12XCJdO1xuXG4gICAgaWYgKHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlciA9PT0gTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0pIHtcbiAgICAgIGNvbW1hbmRQYXJ0cy5wdXNoKCctLXBhY2stY29tbWFuZCBcInBucG0gcGFja1wiJyk7XG4gICAgfVxuXG4gICAgY29tbWFuZFBhcnRzLnB1c2goYC0tdGFyZ2V0ICR7bGFuZ3VhZ2V9YCk7XG5cbiAgICBwYWNrYWdlVGFyZ2V0VGFzay5leGVjKGNvbW1hbmRQYXJ0cy5qb2luKFwiIFwiKSk7XG5cbiAgICBwYWNrYWdlQWxsVGFzay5zcGF3bihwYWNrYWdlVGFyZ2V0VGFzayk7XG4gICAgcmV0dXJuIHBhY2thZ2VUYXJnZXRUYXNrO1xuICB9XG5cbiAgcHJpdmF0ZSBwYWNtYWtGb3JMYW5ndWFnZShcbiAgICBwcm9qZWN0OiBUeXBlU2NyaXB0UHJvamVjdCxcbiAgICB0YXJnZXQ6IEpzaWlQYWNtYWtUYXJnZXQsXG4gICAgcGFja1Rhc2s6IFRhc2ssXG4gICk6IHtcbiAgICBwdWJsaXNoVG9vbHM6IFRvb2xzO1xuICAgIGJvb3RzdHJhcFN0ZXBzOiBBcnJheTxTdGVwPjtcbiAgICBwYWNrYWdpbmdTdGVwczogQXJyYXk8U3RlcD47XG4gIH0ge1xuICAgIGNvbnN0IGJvb3RzdHJhcFN0ZXBzOiBBcnJheTxTdGVwPiA9IFtdO1xuICAgIGNvbnN0IHBhY2thZ2luZ1N0ZXBzOiBBcnJheTxTdGVwPiA9IFtdO1xuXG4gICAgLy8gR2VuZXJpYyBib290c3RyYXBwaW5nIGZvciBhbGwgdGFyZ2V0IGxhbmd1YWdlc1xuICAgIGJvb3RzdHJhcFN0ZXBzLnB1c2goLi4uKHRoaXMub3B0aW9ucy53b3JrZmxvd0Jvb3RzdHJhcFN0ZXBzID8/IFtdKSk7XG4gICAgaWYgKHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlciA9PT0gTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0pIHtcbiAgICAgIGJvb3RzdHJhcFN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiBcIlNldHVwIHBucG1cIixcbiAgICAgICAgdXNlczogXCJwbnBtL2FjdGlvbi1zZXR1cEB2NVwiLFxuICAgICAgICB3aXRoOiB7IHZlcnNpb246IHByb2plY3QucGFja2FnZS5wbnBtVmVyc2lvbiB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChwcm9qZWN0LnBhY2thZ2UucGFja2FnZU1hbmFnZXIgPT09IE5vZGVQYWNrYWdlTWFuYWdlci5CVU4pIHtcbiAgICAgIGJvb3RzdHJhcFN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiBcIlNldHVwIGJ1blwiLFxuICAgICAgICB1c2VzOiBcIm92ZW4tc2gvc2V0dXAtYnVuQHYyXCIsXG4gICAgICAgIHdpdGg6IHsgXCJidW4tdmVyc2lvblwiOiBwcm9qZWN0LnBhY2thZ2UuYnVuVmVyc2lvbiB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChpc1lhcm5CZXJyeShwcm9qZWN0LnBhY2thZ2UucGFja2FnZU1hbmFnZXIpKSB7XG4gICAgICBib290c3RyYXBTdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogXCJFbmFibGUgY29yZXBhY2tcIixcbiAgICAgICAgcnVuOiBcImNvcmVwYWNrIGVuYWJsZVwiLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd29ya0RpciA9IHRoaXMub3B0aW9ucy53b3Jrc3BhY2VEaXJlY3RvcnlcbiAgICAgID8gYCR7UkVQT19URU1QX0RJUkVDVE9SWX0vJHt0aGlzLm9wdGlvbnMud29ya3NwYWNlRGlyZWN0b3J5fWBcbiAgICAgIDogUkVQT19URU1QX0RJUkVDVE9SWTtcblxuICAgIC8vIEluc3RhbGxhdGlvbiBzdGVwcyBiZWZvcmUgcGFja2FnaW5nLCBidXQgYWZ0ZXIgY2hlY2tvdXRcbiAgICBwYWNrYWdpbmdTdGVwcy5wdXNoKFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkluc3RhbGwgRGVwZW5kZW5jaWVzXCIsXG4gICAgICAgIHJ1bjogYGNkICR7UkVQT19URU1QX0RJUkVDVE9SWX0gJiYgJHtwcm9qZWN0LnBhY2thZ2UuaW5zdGFsbENvbW1hbmR9YCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRXh0cmFjdCBidWlsZCBhcnRpZmFjdFwiLFxuICAgICAgICBydW46IGB0YXIgLS1zdHJpcC1jb21wb25lbnRzPTEgLXh6dmYgJHtwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX0vanMvKi50Z3ogLUMgJHt3b3JrRGlyfWAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBgTW92ZSBidWlsZCBhcnRpZmFjdCBvdXQgb2YgdGhlIHdheWAsXG4gICAgICAgIHJ1bjogYG12ICR7cHJvamVjdC5hcnRpZmFjdHNEaXJlY3Rvcnl9ICR7QlVJTERfQVJUSUZBQ1RfT0xEX0RJUn1gLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogYENyZWF0ZSAke3RhcmdldH0gYXJ0aWZhY3RgLFxuICAgICAgICBydW46IGBjZCAke3dvcmtEaXJ9ICYmICR7cHJvamVjdC5ydW5UYXNrQ29tbWFuZChwYWNrVGFzayl9YCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGBDb2xsZWN0ICR7dGFyZ2V0fSBhcnRpZmFjdGAsXG4gICAgICAgIHJ1bjogYG12ICR7d29ya0Rpcn0vJHtwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX0gJHtwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX1gLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHB1Ymxpc2hUb29sczogSlNJSV9UT09MQ0hBSU5bdGFyZ2V0XSxcbiAgICAgIGJvb3RzdHJhcFN0ZXBzLFxuICAgICAgcGFja2FnaW5nU3RlcHMsXG4gICAgfTtcbiAgfVxufVxuXG50eXBlIFB1Ymxpc2hUbyA9IGtleW9mIFB1Ymxpc2hlciAmXG4gIChcbiAgICB8IFwicHVibGlzaFRvTnBtXCJcbiAgICB8IFwicHVibGlzaFRvTWF2ZW5cIlxuICAgIHwgXCJwdWJsaXNoVG9QeVBpXCJcbiAgICB8IFwicHVibGlzaFRvTnVnZXRcIlxuICAgIHwgXCJwdWJsaXNoVG9Hb1wiXG4gICk7XG5cbnR5cGUgUHVibGlzaFRvVGFyZ2V0ID0geyBbSyBpbiBKc2lpUGFjbWFrVGFyZ2V0XTogUHVibGlzaFRvIH07XG5jb25zdCBwdWJsaXNoVG86IFB1Ymxpc2hUb1RhcmdldCA9IHtcbiAganM6IFwicHVibGlzaFRvTnBtXCIsXG4gIGphdmE6IFwicHVibGlzaFRvTWF2ZW5cIixcbiAgcHl0aG9uOiBcInB1Ymxpc2hUb1B5UGlcIixcbiAgZG90bmV0OiBcInB1Ymxpc2hUb051Z2V0XCIsXG4gIGdvOiBcInB1Ymxpc2hUb0dvXCIsXG59O1xuIl19
@@ -33,5 +33,5 @@ class JsiiDocgen extends component_1.Component {
33
33
  }
34
34
  exports.JsiiDocgen = JsiiDocgen;
35
35
  _a = JSII_RTTI_SYMBOL_1;
36
- JsiiDocgen[_a] = { fqn: "projen.cdk.JsiiDocgen", version: "0.99.78" };
36
+ JsiiDocgen[_a] = { fqn: "projen.cdk.JsiiDocgen", version: "0.99.80" };
37
37
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1kb2NnZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2RrL2pzaWktZG9jZ2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsNENBQXlDO0FBQ3pDLGtEQUFpRDtBQW9CakQ7Ozs7O0dBS0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxxQkFBUztJQUN2QyxZQUFZLEtBQWlCLEVBQUUsVUFBNkIsRUFBRTtRQUM1RCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFYixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNsQyxJQUFJLEVBQUUsYUFBYTtZQUNuQixPQUFPO1lBQ1AsSUFBSSxFQUFFLDZCQUFjLENBQUMsS0FBSztTQUMzQixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQztRQUU5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDNUMsV0FBVyxFQUFFLHFDQUFxQztZQUNsRCxJQUFJLEVBQUUsa0JBQWtCLFFBQVEsRUFBRTtTQUNuQyxDQUFDLENBQUM7UUFFSCxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQzs7QUF0QkgsZ0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBKc2lpRG9jZ2VuYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpzaWlEb2NnZW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbGUgcGF0aCBmb3IgZ2VuZXJhdGVkIGRvY3MuXG4gICAqIEBkZWZhdWx0IFwiQVBJLm1kXCJcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNlbXZlciB2ZXJzaW9uIHN0cmluZyB0byBpbnN0YWxsIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBqc2lpLWRvY2dlbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJyonXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBtYXJrZG93biBmaWxlIGJhc2VkIG9uIHRoZSBqc2lpIG1hbmlmZXN0OlxuICogLSBBZGRzIGEgYGRvY2dlbmAgc2NyaXB0IHRvIHBhY2thZ2UuanNvblxuICogLSBSdW5zIGBqc2lpLWRvY2dlbmAgYWZ0ZXIgY29tcGlsYXRpb25cbiAqIC0gRW5mb3JjZXMgdGhhdCBtYXJrZG93biBmaWxlIGlzIGNoZWNrZWQgaW5cbiAqL1xuZXhwb3J0IGNsYXNzIEpzaWlEb2NnZW4gZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogSUNvbnN0cnVjdCwgb3B0aW9uczogSnNpaURvY2dlbk9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb25zLnZlcnNpb24gPz8gXCIqXCI7XG4gICAgdGhpcy5wcm9qZWN0LmRlcHMucmVxdWVzdERlcGVuZGVuY3koe1xuICAgICAgbmFtZTogXCJqc2lpLWRvY2dlblwiLFxuICAgICAgdmVyc2lvbixcbiAgICAgIHR5cGU6IERlcGVuZGVuY3lUeXBlLkJVSUxELFxuICAgIH0pO1xuXG4gICAgY29uc3QgZmlsZVBhdGggPSBvcHRpb25zLmZpbGVQYXRoID8/IFwiQVBJLm1kXCI7XG5cbiAgICBjb25zdCBkb2NnZW4gPSB0aGlzLnByb2plY3QuYWRkVGFzayhcImRvY2dlblwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJHZW5lcmF0ZSBBUEkubWQgZnJvbSAuanNpaSBtYW5pZmVzdFwiLFxuICAgICAgZXhlYzogYGpzaWktZG9jZ2VuIC1vICR7ZmlsZVBhdGh9YCxcbiAgICB9KTtcblxuICAgIC8vIHNwYXduIGRvY2dlbiBhZnRlciBjb21waWxhdGlvbiAocmVxdWlyZXMgdGhlIC5qc2lpIG1hbmlmZXN0KS5cbiAgICB0aGlzLnByb2plY3QucG9zdENvbXBpbGVUYXNrLnNwYXduKGRvY2dlbik7XG4gICAgdGhpcy5wcm9qZWN0LmdpdGlnbm9yZS5pbmNsdWRlKGAvJHtmaWxlUGF0aH1gKTtcbiAgICB0aGlzLnByb2plY3QuYW5ub3RhdGVHZW5lcmF0ZWQoYC8ke2ZpbGVQYXRofWApO1xuICB9XG59XG4iXX0=
@@ -81,7 +81,7 @@ class JsiiProject extends typescript_1.TypeScriptProject {
81
81
  }
82
82
  exports.JsiiProject = JsiiProject;
83
83
  _a = JSII_RTTI_SYMBOL_1;
84
- JsiiProject[_a] = { fqn: "projen.cdk.JsiiProject", version: "0.99.78" };
84
+ JsiiProject[_a] = { fqn: "projen.cdk.JsiiProject", version: "0.99.80" };
85
85
  function parseAuthorAddress(options) {
86
86
  let authorEmail = options.authorEmail;
87
87
  let authorUrl = options.authorUrl;
@@ -20,7 +20,7 @@ class AutoDiscover extends component_1.Component {
20
20
  }
21
21
  exports.AutoDiscover = AutoDiscover;
22
22
  _a = JSII_RTTI_SYMBOL_1;
23
- AutoDiscover[_a] = { fqn: "projen.cdk8s.AutoDiscover", version: "0.99.78" };
23
+ AutoDiscover[_a] = { fqn: "projen.cdk8s.AutoDiscover", version: "0.99.80" };
24
24
  /**
25
25
  * Discovers and creates integration tests from files in the test root.
26
26
  */
@@ -37,5 +37,5 @@ class IntegrationTestAutoDiscover extends cdk_1.IntegrationTestAutoDiscoverBase
37
37
  }
38
38
  exports.IntegrationTestAutoDiscover = IntegrationTestAutoDiscover;
39
39
  _b = JSII_RTTI_SYMBOL_1;
40
- IntegrationTestAutoDiscover[_b] = { fqn: "projen.cdk8s.IntegrationTestAutoDiscover", version: "0.99.78" };
40
+ IntegrationTestAutoDiscover[_b] = { fqn: "projen.cdk8s.IntegrationTestAutoDiscover", version: "0.99.80" };
41
41
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNjb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGs4cy9hdXRvLWRpc2NvdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseURBQXFEO0FBRXJELGdDQUF5RDtBQUN6RCw0Q0FBeUM7QUFlekM7OztHQUdHO0FBQ0gsTUFBYSxZQUFhLFNBQVEscUJBQVM7SUFDekMsWUFBWSxPQUFnQixFQUFFLE9BQTRCO1FBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksT0FBTyxDQUFDLDJCQUEyQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hELElBQUksMkJBQTJCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQzs7QUFQSCxvQ0FRQzs7O0FBU0Q7O0dBRUc7QUFDSCxNQUFhLDJCQUE0QixTQUFRLHFDQUErQjtJQUM5RSxZQUFZLE9BQWdCLEVBQUUsT0FBMkM7UUFDdkUsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV4QixLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMxQyxJQUFJLGtDQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEMsVUFBVTtnQkFDVixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7YUFDbkMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBVkgsa0VBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlZ3JhdGlvblRlc3QgfSBmcm9tIFwiLi9pbnRlZ3JhdGlvbi10ZXN0XCI7XG5pbXBvcnQgdHlwZSB7IEludGVncmF0aW9uVGVzdEF1dG9EaXNjb3ZlckJhc2VPcHRpb25zIH0gZnJvbSBcIi4uL2Nka1wiO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyQmFzZSB9IGZyb20gXCIuLi9jZGtcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYEF1dG9EaXNjb3ZlcmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0Rpc2NvdmVyT3B0aW9ucyBleHRlbmRzIEludGVncmF0aW9uVGVzdEF1dG9EaXNjb3Zlck9wdGlvbnMge1xuICAvKipcbiAgICogQXV0b21hdGljYWxseSBkaXNjb3ZlciBpbnRlZ3JhdGlvbiB0ZXN0c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXI/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEF1dG9tYXRpY2FsbHkgZGlzY292ZXJzIGFuZCBjcmVhdGVzIGBJbnRlZ3JhdGlvblRlc3RgcyBmcm9tIGVudHJ5IHBvaW50c1xuICogZm91bmQgaW4gdGhlIHRlc3QgdHJlZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dG9EaXNjb3ZlciBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IEF1dG9EaXNjb3Zlck9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGlmIChvcHRpb25zLmludGVncmF0aW9uVGVzdEF1dG9EaXNjb3ZlciA/PyB0cnVlKSB7XG4gICAgICBuZXcgSW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyKHRoaXMucHJvamVjdCwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyT3B0aW9ucyBleHRlbmRzIEludGVncmF0aW9uVGVzdEF1dG9EaXNjb3ZlckJhc2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHRzY29uZmlnIGZpbGUgdG8gdXNlIGZvciBpbnRlZ3JhdGlvbiB0ZXN0cy5cbiAgICovXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIERpc2NvdmVycyBhbmQgY3JlYXRlcyBpbnRlZ3JhdGlvbiB0ZXN0cyBmcm9tIGZpbGVzIGluIHRoZSB0ZXN0IHJvb3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXIgZXh0ZW5kcyBJbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXJCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogSW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QsIG9wdGlvbnMpO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeXBvaW50IG9mIHRoaXMuZW50cnlwb2ludHMpIHtcbiAgICAgIG5ldyBJbnRlZ3JhdGlvblRlc3QodGhpcy5wcm9qZWN0LCB7XG4gICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgIHRzY29uZmlnUGF0aDogb3B0aW9ucy50c2NvbmZpZ1BhdGgsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -50,7 +50,7 @@ class Cdk8sPythonApp extends python_project_1.PythonProject {
50
50
  }
51
51
  exports.Cdk8sPythonApp = Cdk8sPythonApp;
52
52
  _a = JSII_RTTI_SYMBOL_1;
53
- Cdk8sPythonApp[_a] = { fqn: "projen.cdk8s.Cdk8sPythonApp", version: "0.99.78" };
53
+ Cdk8sPythonApp[_a] = { fqn: "projen.cdk8s.Cdk8sPythonApp", version: "0.99.80" };
54
54
  class AppCode extends __1.Component {
55
55
  constructor(project, filename) {
56
56
  super(project);
@@ -76,7 +76,7 @@ class Cdk8sTypeScriptApp extends typescript_1.TypeScriptAppProject {
76
76
  }
77
77
  exports.Cdk8sTypeScriptApp = Cdk8sTypeScriptApp;
78
78
  _a = JSII_RTTI_SYMBOL_1;
79
- Cdk8sTypeScriptApp[_a] = { fqn: "projen.cdk8s.Cdk8sTypeScriptApp", version: "0.99.78" };
79
+ Cdk8sTypeScriptApp[_a] = { fqn: "projen.cdk8s.Cdk8sTypeScriptApp", version: "0.99.80" };
80
80
  class SampleCode extends component_1.Component {
81
81
  constructor(project) {
82
82
  super(project);
@@ -59,5 +59,5 @@ class ConstructLibraryCdk8s extends cdk_1.ConstructLibrary {
59
59
  }
60
60
  exports.ConstructLibraryCdk8s = ConstructLibraryCdk8s;
61
61
  _a = JSII_RTTI_SYMBOL_1;
62
- ConstructLibraryCdk8s[_a] = { fqn: "projen.cdk8s.ConstructLibraryCdk8s", version: "0.99.78" };
62
+ ConstructLibraryCdk8s[_a] = { fqn: "projen.cdk8s.ConstructLibraryCdk8s", version: "0.99.80" };
63
63
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrOHMtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NkazhzL2NkazhzLWNvbnN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUFpQztBQUNqQyxtREFBK0M7QUFFL0MsZ0NBQTBDO0FBMkQxQzs7Ozs7Ozs7R0FRRztBQUNILE1BQWEscUJBQXNCLFNBQVEsc0JBQWdCO0lBV3pELFlBQVksT0FBcUM7UUFDL0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksS0FBSyxDQUNiLHdEQUF3RCxPQUFPLENBQUMsWUFBWSxFQUFFLENBQy9FLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsbUJBQW1CO1lBQzdDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWTtZQUN0QixDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFL0IsTUFBTSx3QkFBd0IsR0FDNUIsWUFBWSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2xELE1BQU0seUJBQXlCLEdBQzdCLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSx3QkFBd0IsQ0FBQztRQUN4RCxNQUFNLDZCQUE2QixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQ2hELHlCQUF5QixDQUMxQixFQUFFLEtBQUssQ0FBQztRQUVULElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkRBQTZELE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUN6RixDQUFDO1FBQ0osQ0FBQztRQUVELFFBQVEsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLEtBQUssQ0FBQztnQkFDSixJQUFJLDZCQUE2QixLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLDZCQUE2QixLQUFLLEVBQUUsRUFBRSxDQUFDO29CQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7Z0JBQ3hELENBQUM7Z0JBQ0QsTUFBTTtRQUNWLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QjtZQUN2RCxDQUFDLENBQUMseUJBQXlCO1lBQzNCLENBQUMsQ0FBQyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFFcEMsSUFBSSxDQUFDLFdBQVcsQ0FDZCxjQUFjLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUN0QyxTQUFTLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FDN0IsQ0FBQztRQUVGLElBQUksNEJBQVksQ0FBQyxJQUFJLEVBQUU7WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7WUFDdkMsMkJBQTJCLEVBQUUsT0FBTyxDQUFDLDJCQUEyQixJQUFJLElBQUk7U0FDekUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF0RUgsc0RBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gXCJzZW12ZXJcIjtcbmltcG9ydCB7IEF1dG9EaXNjb3ZlciB9IGZyb20gXCIuL2F1dG8tZGlzY292ZXJcIjtcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgfSBmcm9tIFwiLi4vY2RrXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RMaWJyYXJ5IH0gZnJvbSBcIi4uL2Nka1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdExpYnJhcnlDZGs4c09wdGlvbnMgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIHRhcmdldCB2ZXJzaW9uIHRoaXMgbGlicmFyeSBpcyB0ZXN0ZWQgYWdhaW5zdC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCIxLjQuMTBcIlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGNkazhzVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb25zdHJ1Y3RzIHZlcmlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBcIjMuMy4xOTZcIlxuICAgKi9cblxuICByZWFkb25seSBjb25zdHJ1Y3RzVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlIHBpbm5lZCB2ZXJzaW9uIGluc3RlYWQgb2YgY2FyZXQgdmVyc2lvbiBmb3IgQ0RLOHMuXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIHRoaXMgdG8gcHJldmVudCB5YXJuIHRvIG1peCB2ZXJzaW9ucyBmb3IgeW91ciBDREs4cyBwYWNrYWdlIGFuZCB0byBwcmV2ZW50IGF1dG8tdXBkYXRlcy5cbiAgICogSWYgeW91IHVzZSBleHBlcmltZW50YWwgZmVhdHVyZXMgdGhpcyB3aWxsIGxldCB5b3UgZGVmaW5lIHRoZSBtb21lbnQgeW91IGluY2x1ZGUgYnJlYWtpbmcgY2hhbmdlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNkazhzVmVyc2lvblBpbm5pbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgcGlubmVkIHZlcnNpb24gaW5zdGVhZCBvZiBjYXJldCB2ZXJzaW9uIGZvciBjb25zdHJ1Y3RzLlxuICAgKlxuICAgKiBZb3UgY2FuIHVzZSB0aGlzIHRvIHByZXZlbnQgeWFybiB0byBtaXggdmVyc2lvbnMgZm9yIHlvdXIgY29uc3J1Y3RzIHBhY2thZ2UgYW5kIHRvIHByZXZlbnQgYXV0by11cGRhdGVzLlxuICAgKiBJZiB5b3UgdXNlIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyB0aGlzIHdpbGwgbGV0IHlvdSBkZWZpbmUgdGhlIG1vbWVudCB5b3UgaW5jbHVkZSBicmVha2luZyBjaGFuZ2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0c1ZlcnNpb25QaW5uaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIHBpbm5lZCB2ZXJzaW9uIGluc3RlYWQgb2YgY2FyZXQgdmVyc2lvbiBmb3IgY2RrOHMtcGx1cy0xNy5cbiAgICpcbiAgICogWW91IGNhbiB1c2UgdGhpcyB0byBwcmV2ZW50IHlhcm4gdG8gbWl4IHZlcnNpb25zIGZvciB5b3VyIENESzhzIHBhY2thZ2UgYW5kIHRvIHByZXZlbnQgYXV0by11cGRhdGVzLlxuICAgKiBJZiB5b3UgdXNlIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyB0aGlzIHdpbGwgbGV0IHlvdSBkZWZpbmUgdGhlIG1vbWVudCB5b3UgaW5jbHVkZSBicmVha2luZyBjaGFuZ2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY2RrOHNQbHVzVmVyc2lvblBpbm5pbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZHMgYW4gYGNkazhzLkludGVncmF0aW9uVGVzdGAgZm9yIGVhY2ggYC5pbnRlZy50c2AgYXBwXG4gICAqIGluIHlvdXIgdGVzdCBkaXJlY3RvcnkuIElmIHRoaXMgaXMgZGlzYWJsZWQsIHlvdSBjYW4gbWFudWFsbHkgYWRkIGFuXG4gICAqIGBjZGs4cy5BdXRvRGlzY292ZXJgIGNvbXBvbmVudCB0byB5b3VyIHByb2plY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGludGVncmF0aW9uVGVzdEF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ0RLOHMgY29uc3RydWN0IGxpYnJhcnkgcHJvamVjdFxuICpcbiAqIEEgbXVsdGktbGFuZ3VhZ2UgKGpzaWkpIGNvbnN0cnVjdCBsaWJyYXJ5IHdoaWNoIHZlbmRzIGNvbnN0cnVjdHMgZGVzaWduZWQgdG9cbiAqIHVzZSB3aXRoaW4gdGhlIENESyBmb3IgS3ViZXJuZXRlcyAoQ0RLOHMpLCB3aXRoIGEgZnJpZW5kbHkgd29ya2Zsb3cgYW5kXG4gKiBhdXRvbWF0aWMgcHVibGlzaGluZyB0byB0aGUgY29uc3RydWN0IGNhdGFsb2cuXG4gKlxuICogQHBqaWQgY2RrOHMtY29uc3RydWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBDb25zdHJ1Y3RMaWJyYXJ5Q2RrOHMgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5IHtcbiAgLyoqXG4gICAqIFRoZSBDREs4cyB2ZXJzaW9uIHRoaXMgYXBwIGlzIHVzaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNkazhzVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0cyB2ZXJzaW9uIHRoaXMgYXBwIGlzIHVzaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbnN0cnVjdHNWZXJzaW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ29uc3RydWN0TGlicmFyeUNkazhzT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgaWYgKCFvcHRpb25zLmNkazhzVmVyc2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVxdWlyZWQgZmllbGQgY2RrOHNWZXJzaW9uIGlzIG5vdCBzcGVjaWZpZWQuXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNkazhzVmVyc2lvbiA9IHNlbXZlci5wYXJzZShvcHRpb25zLmNkazhzVmVyc2lvbik7XG4gICAgaWYgKCFjZGs4c1ZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFwiY2RrOHNWZXJzaW9uXCIgY2Fubm90IGJlIHBhcnNlZCBhcyBhIHNlbXZlciB2ZXJzaW9uOiAke29wdGlvbnMuY2RrOHNWZXJzaW9ufWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY2RrOHNWZXJzaW9uID0gb3B0aW9ucy5jZGs4c1ZlcnNpb25QaW5uaW5nXG4gICAgICA/IG9wdGlvbnMuY2RrOHNWZXJzaW9uXG4gICAgICA6IGBeJHtvcHRpb25zLmNkazhzVmVyc2lvbn1gO1xuXG4gICAgY29uc3QgZGVmYXVsdENvbnN0cnVjdHNWZXJzaW9uID1cbiAgICAgIGNkazhzVmVyc2lvbi5tYWpvciA9PT0gMSA/IFwiMy4zLjE5NlwiIDogXCIxMC4wLjBcIjtcbiAgICBjb25zdCByZXNvbHZlZENvbnN0cnVjdHNWZXJzaW9uID1cbiAgICAgIG9wdGlvbnMuY29uc3RydWN0c1ZlcnNpb24gPz8gZGVmYXVsdENvbnN0cnVjdHNWZXJzaW9uO1xuICAgIGNvbnN0IHJlc29sdmVkTWFqb3JDb25zdHJ1Y3RWZXJzaW9uID0gc2VtdmVyLnBhcnNlKFxuICAgICAgcmVzb2x2ZWRDb25zdHJ1Y3RzVmVyc2lvbixcbiAgICApPy5tYWpvcjtcblxuICAgIGlmICghcmVzb2x2ZWRNYWpvckNvbnN0cnVjdFZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFwiY29uc3RydWN0c1ZlcnNpb25cIiBjYW5ub3QgYmUgcGFyc2VkIGFzIGEgc2VtdmVyIHZlcnNpb246ICR7b3B0aW9ucy5jb25zdHJ1Y3RzVmVyc2lvbn1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGNkazhzVmVyc2lvbi5tYWpvcikge1xuICAgICAgY2FzZSAxOlxuICAgICAgICBpZiAocmVzb2x2ZWRNYWpvckNvbnN0cnVjdFZlcnNpb24gIT09IDMpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJjZGs4cyAxLnggcmVxdWlyZXMgY29uc3RydWN0cyAzLnhcIik7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGlmIChyZXNvbHZlZE1ham9yQ29uc3RydWN0VmVyc2lvbiAhPT0gMTApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJjZGs4cyAyLnggcmVxdWlyZXMgY29uc3RydWN0cyAxMC54XCIpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMuY29uc3RydWN0c1ZlcnNpb24gPSBvcHRpb25zLmNvbnN0cnVjdHNWZXJzaW9uUGlubmluZ1xuICAgICAgPyByZXNvbHZlZENvbnN0cnVjdHNWZXJzaW9uXG4gICAgICA6IGBeJHtyZXNvbHZlZENvbnN0cnVjdHNWZXJzaW9ufWA7XG5cbiAgICB0aGlzLmFkZFBlZXJEZXBzKFxuICAgICAgYGNvbnN0cnVjdHNAJHt0aGlzLmNvbnN0cnVjdHNWZXJzaW9ufWAsXG4gICAgICBgY2RrOHNAJHt0aGlzLmNkazhzVmVyc2lvbn1gLFxuICAgICk7XG5cbiAgICBuZXcgQXV0b0Rpc2NvdmVyKHRoaXMsIHtcbiAgICAgIHRlc3RkaXI6IHRoaXMudGVzdGRpcixcbiAgICAgIHRzY29uZmlnUGF0aDogdGhpcy50c2NvbmZpZ0Rldi5maWxlTmFtZSxcbiAgICAgIGludGVncmF0aW9uVGVzdEF1dG9EaXNjb3Zlcjogb3B0aW9ucy5pbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXIgPz8gdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -15,5 +15,5 @@ class Cdk8sDepsPy extends cdk8s_deps_1.Cdk8sDeps {
15
15
  }
16
16
  exports.Cdk8sDepsPy = Cdk8sDepsPy;
17
17
  _a = JSII_RTTI_SYMBOL_1;
18
- Cdk8sDepsPy[_a] = { fqn: "projen.cdk8s.Cdk8sDepsPy", version: "0.99.78" };
18
+ Cdk8sDepsPy[_a] = { fqn: "projen.cdk8s.Cdk8sDepsPy", version: "0.99.80" };
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrOHMtZGVwcy1weS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGs4cy9jZGs4cy1kZXBzLXB5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsNkNBQXlDO0FBRXpDLE1BQWEsV0FBWSxTQUFRLHNCQUFTO0lBQzlCLFlBQVk7UUFDcEIsT0FBTztZQUNMLEtBQUssRUFBRSxPQUFPO1lBQ2QsVUFBVSxFQUFFLFlBQVk7WUFDeEIsU0FBUyxFQUFFLFlBQVk7U0FDeEIsQ0FBQztJQUNKLENBQUM7O0FBUEgsa0NBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENkazhzUGFja2FnZU5hbWVzIH0gZnJvbSBcIi4vY2RrOHMtZGVwc1wiO1xuaW1wb3J0IHsgQ2RrOHNEZXBzIH0gZnJvbSBcIi4vY2RrOHMtZGVwc1wiO1xuXG5leHBvcnQgY2xhc3MgQ2RrOHNEZXBzUHkgZXh0ZW5kcyBDZGs4c0RlcHMge1xuICBwcm90ZWN0ZWQgcGFja2FnZU5hbWVzKCk6IENkazhzUGFja2FnZU5hbWVzIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2RrOHM6IFwiY2RrOHNcIixcbiAgICAgIGNvbnN0cnVjdHM6IFwiY29uc3RydWN0c1wiLFxuICAgICAgY2RrOHNQbHVzOiBcImNkazhzLXBsdXNcIixcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -92,7 +92,7 @@ class Cdk8sDeps extends component_1.Component {
92
92
  }
93
93
  exports.Cdk8sDeps = Cdk8sDeps;
94
94
  _a = JSII_RTTI_SYMBOL_1;
95
- Cdk8sDeps[_a] = { fqn: "projen.cdk8s.Cdk8sDeps", version: "0.99.78" };
95
+ Cdk8sDeps[_a] = { fqn: "projen.cdk8s.Cdk8sDeps", version: "0.99.80" };
96
96
  function determineFrameworkVersion(options) {
97
97
  const ver = semver.parse(options.cdk8sVersion);
98
98
  if (!ver) {
@@ -40,5 +40,5 @@ class IntegrationTest extends cdk_1.IntegrationTestBase {
40
40
  }
41
41
  exports.IntegrationTest = IntegrationTest;
42
42
  _a = JSII_RTTI_SYMBOL_1;
43
- IntegrationTest[_a] = { fqn: "projen.cdk8s.IntegrationTest", version: "0.99.78" };
43
+ IntegrationTest[_a] = { fqn: "projen.cdk8s.IntegrationTest", version: "0.99.80" };
44
44
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tdGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGs4cy9pbnRlZ3JhdGlvbi10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0NBQWtDO0FBRWxDLGdDQUE2QztBQUM3QyxrREFBaUQ7QUFRakQ7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEseUJBQW1CO0lBQ3RELFlBQVksT0FBZ0IsRUFBRSxPQUErQjtRQUMzRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDN0IsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLDZCQUFjLENBQUMsS0FBSztTQUMzQixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQzdCLElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFLDZCQUFjLENBQUMsS0FBSztTQUMzQixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFBLFlBQUksRUFBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBQSxZQUFJLEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sR0FBRyxHQUFHLGNBQWMsT0FBTyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFdkUsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdEQsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFNUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUU1RSw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2xCLHNCQUFzQixHQUFHLFFBQVEsU0FBUyxjQUFjLENBQ3pELENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNsRSxDQUFDOztBQW5DSCwwQ0FvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGgvcG9zaXhcIjtcbmltcG9ydCB0eXBlIHsgSW50ZWdyYXRpb25UZXN0QmFzZU9wdGlvbnMgfSBmcm9tIFwiLi4vY2RrXCI7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvblRlc3RCYXNlIH0gZnJvbSBcIi4uL2Nka1wiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUgfSBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIEludGVncmF0aW9uVGVzdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVncmF0aW9uVGVzdE9wdGlvbnMgZXh0ZW5kcyBJbnRlZ3JhdGlvblRlc3RCYXNlT3B0aW9ucyB7fVxuXG4vKipcbiAqIENESzhTIGludGVncmF0aW9uIHRlc3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnRlZ3JhdGlvblRlc3QgZXh0ZW5kcyBJbnRlZ3JhdGlvblRlc3RCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogSW50ZWdyYXRpb25UZXN0T3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QsIG9wdGlvbnMpO1xuXG4gICAgcHJvamVjdC5kZXBzLnJlcXVlc3REZXBlbmRlbmN5KHtcbiAgICAgIG5hbWU6IFwiY2RrOHMtY2xpXCIsXG4gICAgICB0eXBlOiBEZXBlbmRlbmN5VHlwZS5CVUlMRCxcbiAgICB9KTtcblxuICAgIHByb2plY3QuZGVwcy5yZXF1ZXN0RGVwZW5kZW5jeSh7XG4gICAgICBuYW1lOiBcInRzLW5vZGVcIixcbiAgICAgIHR5cGU6IERlcGVuZGVuY3lUeXBlLkJVSUxELFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGVwbG95RGlyID0gam9pbih0aGlzLnRtcERpciwgXCJkZXBsb3kuY2RrLm91dFwiKTtcbiAgICBjb25zdCBhc3NlcnREaXIgPSBqb2luKHRoaXMudG1wRGlyLCBcImFzc2VydC5jZGsub3V0XCIpO1xuICAgIGNvbnN0IGFwcCA9IGB0cy1ub2RlIC1QICR7b3B0aW9ucy50c2NvbmZpZ1BhdGh9ICR7b3B0aW9ucy5lbnRyeXBvaW50fWA7XG5cbiAgICAvLyBTeW50aCwgZGVwbG95LCBhbmQgY2FwdHVyZSB0aGUgc25hcHNob3RcbiAgICB0aGlzLmRlcGxveVRhc2suZXhlYyhgcm0gLWZyICR7ZGVwbG95RGlyfWApO1xuICAgIHRoaXMuZGVwbG95VGFzay5leGVjKGBjZGs4cyBzeW50aCAtLWFwcCBcIiR7YXBwfVwiIC1vICR7ZGVwbG95RGlyfWApO1xuICAgIHRoaXMuZGVwbG95VGFzay5leGVjKGBrdWJlY3RsIGFwcGx5IC1mICR7ZGVwbG95RGlyfWApO1xuICAgIC8vIElmIGRlcGxveW1lbnQgd2FzIHN1Y2Nlc3NmdWwsIGNvcHkgdGhlIGRlcGxveSBkaXIgdG8gdGhlIGV4cGVjdGVkIGRpclxuICAgIHRoaXMuZGVwbG95VGFzay5leGVjKGBybSAtZnIgJHt0aGlzLnNuYXBzaG90RGlyfWApO1xuICAgIHRoaXMuZGVwbG95VGFzay5leGVjKGBtdiAke2RlcGxveURpcn0gJHt0aGlzLnNuYXBzaG90RGlyfWApO1xuXG4gICAgLy8gUnVuIGEgc25hcHNob3RcbiAgICB0aGlzLnNuYXBzaG90VGFzay5leGVjKGBybSAtZnIgJHt0aGlzLnNuYXBzaG90RGlyfWApO1xuICAgIHRoaXMuc25hcHNob3RUYXNrLmV4ZWMoYGNkazhzIHN5bnRoIC0tYXBwIFwiJHthcHB9XCIgLW8gJHt0aGlzLnNuYXBzaG90RGlyfWApO1xuXG4gICAgLy8gQXNzZXJ0IHRoYXQgdGhlIHNuYXBzaG90IGhhcyBub3QgY2hhbmdlZCAocnVuIGR1cmluZyB0ZXN0cylcbiAgICB0aGlzLmFzc2VydFRhc2suZXhlYyhcbiAgICAgIGBjZGs4cyBzeW50aCAtLWFwcCBcIiR7YXBwfVwiIC1vICR7YXNzZXJ0RGlyfSA+IC9kZXYvbnVsbGAsXG4gICAgKTtcbiAgICB0aGlzLmFzc2VydFRhc2suZXhlYyhgZGlmZiAke3RoaXMuc25hcHNob3REaXJ9LyAke2Fzc2VydERpcn0vYCk7XG4gIH1cbn1cbiJdfQ==
@@ -35,5 +35,5 @@ class ConstructLibraryCdktf extends cdk_1.ConstructLibrary {
35
35
  }
36
36
  exports.ConstructLibraryCdktf = ConstructLibraryCdktf;
37
37
  _a = JSII_RTTI_SYMBOL_1;
38
- ConstructLibraryCdktf[_a] = { fqn: "projen.cdktf.ConstructLibraryCdktf", version: "0.99.78" };
38
+ ConstructLibraryCdktf[_a] = { fqn: "projen.cdktf.ConstructLibraryCdktf", version: "0.99.80" };
39
39
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrdGYtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nka3RmL2Nka3RmLWNvbnN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUFpQztBQUVqQyxnQ0FBMEM7QUFpQjFDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxzQkFBZ0I7SUFDekQsWUFBWSxPQUFxQztRQUMvQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsU0FBUywwQkFBMEI7WUFDakMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvRCxJQUFJLGtCQUFrQixJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDbEUsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQztZQUVELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ2pDLE1BQU0sZ0JBQWdCLEdBQ3BCLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO1FBRTVELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7O0FBdkJILHNEQXdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNlbXZlciBmcm9tIFwic2VtdmVyXCI7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcIi4uL2Nka1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0TGlicmFyeSB9IGZyb20gXCIuLi9jZGtcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RMaWJyYXJ5Q2RrdGZPcHRpb25zIGV4dGVuZHMgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMge1xuICAvKipcbiAgICogTWluaW11bSB0YXJnZXQgdmVyc2lvbiB0aGlzIGxpYnJhcnkgaXMgdGVzdGVkIGFnYWluc3QuXG4gICAqIEBkZWZhdWx0IFwiXjAuMTMuMFwiXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrdGZWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCB2ZXJzaW9uIHRvIHVzZVxuICAgKiBAZGVmYXVsdCBcIl4xMC4zLjBcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0c1ZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ0RLVEYgY29uc3RydWN0IGxpYnJhcnkgcHJvamVjdFxuICpcbiAqIEEgbXVsdGktbGFuZ3VhZ2UgKGpzaWkpIGNvbnN0cnVjdCBsaWJyYXJ5IHdoaWNoIHZlbmRzIGNvbnN0cnVjdHMgZGVzaWduZWQgdG9cbiAqIHVzZSB3aXRoaW4gdGhlIENESyBmb3IgVGVycmFmb3JtIChDREtURiksIHdpdGggYSBmcmllbmRseSB3b3JrZmxvdyBhbmRcbiAqIGF1dG9tYXRpYyBwdWJsaXNoaW5nIHRvIHRoZSBjb25zdHJ1Y3QgY2F0YWxvZy5cbiAqXG4gKiBAcGppZCBjZGt0Zi1jb25zdHJ1Y3RcbiAqL1xuZXhwb3J0IGNsYXNzIENvbnN0cnVjdExpYnJhcnlDZGt0ZiBleHRlbmRzIENvbnN0cnVjdExpYnJhcnkge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDb25zdHJ1Y3RMaWJyYXJ5Q2RrdGZPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICBpZiAoIW9wdGlvbnMuY2RrdGZWZXJzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXF1aXJlZCBmaWVsZCBjZGt0ZlZlcnNpb24gaXMgbm90IHNwZWNpZmllZC5cIik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RGVmYXVsdENvbnN0cnVjdFZlcnNpb24oKSB7XG4gICAgICBjb25zdCBzZW12ZXJDREtURlZlcnNpb24gPSBzZW12ZXIuY29lcmNlKG9wdGlvbnMuY2RrdGZWZXJzaW9uKTtcbiAgICAgIGlmIChzZW12ZXJDREtURlZlcnNpb24gJiYgc2VtdmVyLmx0ZShzZW12ZXJDREtURlZlcnNpb24sIFwiMC41LjBcIikpIHtcbiAgICAgICAgcmV0dXJuIFwiXjMuMC4wXCI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBcIl4xMC4zLjBcIjtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXIgPSBvcHRpb25zLmNka3RmVmVyc2lvbjtcbiAgICBjb25zdCBjb25zdHJ1Y3RWZXJzaW9uID1cbiAgICAgIG9wdGlvbnMuY29uc3RydWN0c1ZlcnNpb24gPz8gZ2V0RGVmYXVsdENvbnN0cnVjdFZlcnNpb24oKTtcblxuICAgIHRoaXMuYWRkUGVlckRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RWZXJzaW9ufWAsIGBjZGt0ZkAke3Zlcn1gKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrdGZcIik7XG4gIH1cbn1cbiJdfQ==
@@ -112,7 +112,7 @@ class Circleci extends component_1.Component {
112
112
  }
113
113
  exports.Circleci = Circleci;
114
114
  _a = JSII_RTTI_SYMBOL_1;
115
- Circleci[_a] = { fqn: "projen.circleci.Circleci", version: "0.99.78" };
115
+ Circleci[_a] = { fqn: "projen.circleci.Circleci", version: "0.99.80" };
116
116
  const isObjectContainingFieldExactly = (obj, field) => {
117
117
  return Object.keys(obj).length == 1 && Object.keys(obj).includes(field);
118
118
  };
package/lib/component.js CHANGED
@@ -45,5 +45,5 @@ class Component extends constructs_1.Construct {
45
45
  }
46
46
  exports.Component = Component;
47
47
  _a = JSII_RTTI_SYMBOL_1;
48
- Component[_a] = { fqn: "projen.Component", version: "0.99.78" };
48
+ Component[_a] = { fqn: "projen.Component", version: "0.99.80" };
49
49
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDJDQUF1QztBQUV2QyxrREFJMkI7QUFFM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXNCLENBQUM7QUFDbEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDeEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzQixPQUFPLFNBQVMsTUFBTSxFQUFFLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQWEsU0FBVSxTQUFRLHNCQUFTO0lBQ3RDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFNO1FBQzlCLE9BQU8sSUFBQSx3QkFBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFJRCxZQUFZLEtBQWlCLEVBQUUsRUFBVztRQUN4QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0QsSUFBQSwyQkFBYyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUEsK0JBQWtCLEVBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYSxLQUFJLENBQUM7SUFFekI7O09BRUc7SUFDSSxVQUFVLEtBQUksQ0FBQztJQUV0Qjs7T0FFRztJQUNJLGNBQWMsS0FBSSxDQUFDOztBQWhDNUIsOEJBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiLi9wcm9qZWN0XCI7XG5pbXBvcnQge1xuICBpc0NvbXBvbmVudCxcbiAgZmluZENsb3Nlc3RQcm9qZWN0LFxuICB0YWdBc0NvbXBvbmVudCxcbn0gZnJvbSBcIi4vdXRpbC9jb25zdHJ1Y3RzXCI7XG5cbmNvbnN0IGF1dG9JZHMgPSBuZXcgV2Vha01hcDxJQ29uc3RydWN0LCBudW1iZXI+KCk7XG5jb25zdCBjb21wb25lbnRJZCA9IChzY29wZTogSUNvbnN0cnVjdCkgPT4ge1xuICBjb25zdCBuZXh0SWQgPSAoYXV0b0lkcy5nZXQoc2NvcGUpID8/IDApICsgMTtcbiAgYXV0b0lkcy5zZXQoc2NvcGUsIG5leHRJZCk7XG4gIHJldHVybiBgQXV0b0lkJHtuZXh0SWR9YDtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHByb2plY3QgY29tcG9uZW50LlxuICogQHBhcmFtIHByb2plY3RcbiAqIEBwYXJhbSBpZCBVbmlxdWUgaWQgb2YgdGhlIGNvbXBvbmVudC4gSWYgbm90IHByb3ZpZGVkLCBhbiB1bnN0YWJsZSBBdXRvSWQgaXMgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRlc3Qgd2hldGhlciB0aGUgZ2l2ZW4gY29uc3RydWN0IGlzIGEgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0NvbXBvbmVudCh4OiBhbnkpOiB4IGlzIENvbXBvbmVudCB7XG4gICAgcmV0dXJuIGlzQ29tcG9uZW50KHgpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IFByb2plY3Q7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IElDb25zdHJ1Y3QsIGlkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkIHx8IGAke25ldy50YXJnZXQubmFtZX0jJHtjb21wb25lbnRJZChzY29wZSl9YCk7XG4gICAgdGFnQXNDb21wb25lbnQodGhpcyk7XG4gICAgdGhpcy5ub2RlLmFkZE1ldGFkYXRhKFwidHlwZVwiLCBcImNvbXBvbmVudFwiKTtcbiAgICB0aGlzLm5vZGUuYWRkTWV0YWRhdGEoXCJjb25zdHJ1Y3RcIiwgbmV3LnRhcmdldC5uYW1lKTtcblxuICAgIHRoaXMucHJvamVjdCA9IGZpbmRDbG9zZXN0UHJvamVjdChzY29wZSwgbmV3LnRhcmdldC5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYmVmb3JlIHN5bnRoZXNpcy5cbiAgICovXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge31cblxuICAvKipcbiAgICogU3ludGhlc2l6ZXMgZmlsZXMgdG8gdGhlIHByb2plY3Qgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyBzeW50aGVzaXplKCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIHN5bnRoZXNpcy4gT3JkZXIgaXMgKm5vdCogZ3VhcmFudGVlZC5cbiAgICovXG4gIHB1YmxpYyBwb3N0U3ludGhlc2l6ZSgpIHt9XG59XG4iXX0=
@@ -247,7 +247,7 @@ class Dependencies extends component_1.Component {
247
247
  }
248
248
  exports.Dependencies = Dependencies;
249
249
  _a = JSII_RTTI_SYMBOL_1;
250
- Dependencies[_a] = { fqn: "projen.Dependencies", version: "0.99.78" };
250
+ Dependencies[_a] = { fqn: "projen.Dependencies", version: "0.99.80" };
251
251
  /**
252
252
  * The project-relative path of the deps manifest file.
253
253
  */
package/lib/dev-env.js CHANGED
@@ -27,5 +27,5 @@ class DevEnvironmentDockerImage {
27
27
  }
28
28
  exports.DevEnvironmentDockerImage = DevEnvironmentDockerImage;
29
29
  _a = JSII_RTTI_SYMBOL_1;
30
- DevEnvironmentDockerImage[_a] = { fqn: "projen.DevEnvironmentDockerImage", version: "0.99.78" };
30
+ DevEnvironmentDockerImage[_a] = { fqn: "projen.DevEnvironmentDockerImage", version: "0.99.80" };
31
31
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2LWVudi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXYtZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBNEJBOztHQUVHO0FBQ0gsTUFBYSx5QkFBeUI7SUFDcEM7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBYTtRQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQWtCO1FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBWUQsZ0JBQXVCLENBQUM7O0FBN0IxQiw4REE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRhc2sgfSBmcm9tIFwiLi90YXNrXCI7XG5cbi8qKlxuICogQmFzZSBvcHRpb25zIGZvciBjb25maWd1cmluZyBhIGNvbnRhaW5lci1iYXNlZCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXZFbnZpcm9ubWVudE9wdGlvbnMge1xuICAvKipcbiAgICogQSBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZSBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckltYWdlPzogRGV2RW52aXJvbm1lbnREb2NrZXJJbWFnZTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgdGFza3MgdGhhdCBzaG91bGQgYmUgcnVuIHdoZW4gdGhlIGNvbnRhaW5lciBzdGFydHMuXG4gICAqL1xuICByZWFkb25seSB0YXNrcz86IFRhc2tbXTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgcG9ydHMgdGhhdCBzaG91bGQgYmUgZXhwb3NlZCBmcm9tIHRoZSBjb250YWluZXIuXG4gICAqL1xuICByZWFkb25seSBwb3J0cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBleHRlbnNpb24gSURzIHRoYXQgc3BlY2lmeSB0aGUgZXh0ZW5zaW9ucyB0aGF0IHNob3VsZCBiZVxuICAgKiBpbnN0YWxsZWQgaW5zaWRlIHRoZSBjb250YWluZXIgd2hlbiBpdCBpcyBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdnNjb2RlRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNwZWNpZnlpbmcgdGhlIERvY2tlciBpbWFnZSBvZiB0aGUgY29udGFpbmVyLlxuICovXG5leHBvcnQgY2xhc3MgRGV2RW52aXJvbm1lbnREb2NrZXJJbWFnZSB7XG4gIC8qKlxuICAgKiBBIHB1YmxpY2x5IGF2YWlsYWJsZSBEb2NrZXIgaW1hZ2UuXG4gICAqIEBleGFtcGxlICd1YnVudHU6bGF0ZXN0J1xuICAgKiBAcGFyYW0gaW1hZ2UgYSBEb2NrZXIgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUltYWdlKGltYWdlOiBzdHJpbmcpOiBEZXZFbnZpcm9ubWVudERvY2tlckltYWdlIHtcbiAgICByZXR1cm4geyBpbWFnZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZWxhdGl2ZSBwYXRoIG9mIGEgRG9ja2VyZmlsZSB0aGF0IGRlZmluZXMgdGhlIGNvbnRhaW5lciBjb250ZW50cy5cbiAgICogQGV4YW1wbGUgJy5naXRwb2QuRG9ja2VyJ1xuICAgKiBAcGFyYW0gZG9ja2VyRmlsZSBhIHJlbGF0aXZlIHBhdGhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUZpbGUoZG9ja2VyRmlsZTogc3RyaW5nKTogRGV2RW52aXJvbm1lbnREb2NrZXJJbWFnZSB7XG4gICAgcmV0dXJuIHsgZG9ja2VyRmlsZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgcHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggb2YgYSBEb2NrZXJmaWxlIHRoYXQgZGVmaW5lcyB0aGUgY29udGFpbmVyIGNvbnRlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRvY2tlckZpbGU/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbi8qKlxuICogQWJzdHJhY3QgaW50ZXJmYWNlIGZvciBjb250YWluZXItYmFzZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLCBzdWNoIGFzXG4gKiBHaXRwb2QgYW5kIEdpdEh1YiBDb2Rlc3BhY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElEZXZFbnZpcm9ubWVudCB7XG4gIC8qKlxuICAgKiBBZGQgYSBjdXN0b20gRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUgZm9yIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBwYXJhbSBpbWFnZSBUaGUgRG9ja2VyIGltYWdlXG4gICAqL1xuICBhZGREb2NrZXJJbWFnZShpbWFnZTogRGV2RW52aXJvbm1lbnREb2NrZXJJbWFnZSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgdGFza3MgdG8gcnVuIHdoZW4gdGhlIGNvbnRhaW5lciBzdGFydHMuXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrcyBUaGUgbmV3IHRhc2tzXG4gICAqL1xuICBhZGRUYXNrcyguLi50YXNrczogVGFza1tdKTogdm9pZDtcblxuICAvKipcbiAgICogQWRkcyBwb3J0cyB0aGF0IHNob3VsZCBiZSBleHBvc2VkIChmb3J3YXJkZWQpIGZyb20gdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQHBhcmFtIHBvcnRzIFRoZSBuZXcgcG9ydHNcbiAgICovXG4gIGFkZFBvcnRzKC4uLnBvcnRzOiBzdHJpbmdbXSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsaXN0IG9mIFZTQ29kZSBleHRlbnNpb25zIHRoYXQgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkXG4gICAqIGluIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBwYXJhbSBleHRlbnNpb25zIFRoZSBleHRlbnNpb24gSURzXG4gICAqL1xuICBhZGRWc2NvZGVFeHRlbnNpb25zKC4uLmV4dGVuc2lvbnM6IHN0cmluZ1tdKTogdm9pZDtcbn1cbiJdfQ==
@@ -76,5 +76,5 @@ class DockerComposeService {
76
76
  }
77
77
  exports.DockerComposeService = DockerComposeService;
78
78
  _a = JSII_RTTI_SYMBOL_1;
79
- DockerComposeService[_a] = { fqn: "projen.DockerComposeService", version: "0.99.78" };
79
+ DockerComposeService[_a] = { fqn: "projen.DockerComposeService", version: "0.99.80" };
80
80
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWNvbXBvc2Utc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb2NrZXItY29tcG9zZS9kb2NrZXItY29tcG9zZS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EscURBQWlEO0FBa0JqRDs7R0FFRztBQUNILE1BQWEsb0JBQW9CO0lBaUUvQixZQUNFLFdBQW1CLEVBQ25CLGtCQUFtRDtRQUVuRCxJQUNFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7WUFDN0QsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQzNELENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLGFBQWEsV0FBVyw0REFBNEQsQ0FDckYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLENBQ1osYUFBcUIsRUFDckIsVUFBa0IsRUFDbEIsT0FBeUM7UUFFekMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQ2QsOEJBQWEsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FDOUQsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLElBQVksRUFBRSxLQUFhO1FBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsV0FBc0M7UUFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFNBQVMsQ0FBQyxNQUFtQztRQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLE9BQXFDO1FBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7O0FBckpILG9EQXNKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRG9ja2VyQ29tcG9zZUJ1aWxkIH0gZnJvbSBcIi4vZG9ja2VyLWNvbXBvc2VcIjtcbmltcG9ydCB7IERvY2tlckNvbXBvc2UgfSBmcm9tIFwiLi9kb2NrZXItY29tcG9zZVwiO1xuaW1wb3J0IHR5cGUgeyBJRG9ja2VyQ29tcG9zZU5ldHdvcmtCaW5kaW5nIH0gZnJvbSBcIi4vZG9ja2VyLWNvbXBvc2UtbmV0d29ya1wiO1xuaW1wb3J0IHR5cGUge1xuICBEb2NrZXJDb21wb3NlUG9ydE1hcHBpbmdPcHRpb25zLFxuICBEb2NrZXJDb21wb3NlU2VydmljZVBvcnQsXG59IGZyb20gXCIuL2RvY2tlci1jb21wb3NlLXBvcnRcIjtcbmltcG9ydCB0eXBlIHsgSURvY2tlckNvbXBvc2VWb2x1bWVCaW5kaW5nIH0gZnJvbSBcIi4vZG9ja2VyLWNvbXBvc2Utdm9sdW1lXCI7XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIHByb3ZpZGluZyB0aGUgbmFtZSBvZiBhIGRvY2tlciBjb21wb3NlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURvY2tlckNvbXBvc2VTZXJ2aWNlTmFtZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZG9ja2VyIGNvbXBvc2Ugc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBkb2NrZXItY29tcG9zZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgRG9ja2VyQ29tcG9zZVNlcnZpY2UgaW1wbGVtZW50cyBJRG9ja2VyQ29tcG9zZVNlcnZpY2VOYW1lIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRG9ja2VyIGltYWdlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGltYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEb2NrZXIgaW1hZ2UgYnVpbGQgaW5zdHJ1Y3Rpb25zLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGltYWdlQnVpbGQ/OiBEb2NrZXJDb21wb3NlQnVpbGQ7XG5cbiAgLyoqXG4gICAqIENvbW1hbmQgdG8gcnVuIGluIHRoZSBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29tbWFuZD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBFbnRyeXBvaW50IHRvIHJ1biBpbiB0aGUgY29udGFpbmVyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVudHJ5cG9pbnQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3RoZXIgc2VydmljZXMgdGhhdCB0aGlzIHNlcnZpY2UgZGVwZW5kcyBvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXBlbmRzT246IElEb2NrZXJDb21wb3NlU2VydmljZU5hbWVbXTtcblxuICAvKipcbiAgICogVm9sdW1lcyBtb3VudGVkIGluIHRoZSBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdm9sdW1lczogSURvY2tlckNvbXBvc2VWb2x1bWVCaW5kaW5nW107XG5cbiAgLyoqXG4gICAqIE5ldHdvcmtzIG1vdW50ZWQgaW4gdGhlIGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuZXR3b3JrczogSURvY2tlckNvbXBvc2VOZXR3b3JrQmluZGluZ1tdO1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoZWQgcG9ydHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcG9ydHM6IERvY2tlckNvbXBvc2VTZXJ2aWNlUG9ydFtdO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVkIGxhYmVscy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsYWJlbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBUYXJnZXQgcGxhdGZvcm1cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwbGF0Zm9ybT86IHN0cmluZztcblxuICAvKipcbiAgICogUnVuIGluIHByaXZpbGVnZWQgbW9kZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByaXZpbGVnZWQ/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNlcnZpY2VOYW1lOiBzdHJpbmcsXG4gICAgc2VydmljZURlc2NyaXB0aW9uOiBEb2NrZXJDb21wb3NlU2VydmljZURlc2NyaXB0aW9uLFxuICApIHtcbiAgICBpZiAoXG4gICAgICAoIXNlcnZpY2VEZXNjcmlwdGlvbi5pbWFnZUJ1aWxkICYmICFzZXJ2aWNlRGVzY3JpcHRpb24uaW1hZ2UpIHx8XG4gICAgICAoc2VydmljZURlc2NyaXB0aW9uLmltYWdlQnVpbGQgJiYgc2VydmljZURlc2NyaXB0aW9uLmltYWdlKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQSBzZXJ2aWNlICR7c2VydmljZU5hbWV9IHJlcXVpcmVzIGV4YWN0bHkgb25lIG9mIGEgXFxgaW1hZ2VCdWlsZFxcYCBvciBcXGBpbWFnZVxcYCBrZXlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gc2VydmljZU5hbWU7XG4gICAgdGhpcy5jb21tYW5kID0gc2VydmljZURlc2NyaXB0aW9uLmNvbW1hbmQ7XG4gICAgdGhpcy5pbWFnZSA9IHNlcnZpY2VEZXNjcmlwdGlvbi5pbWFnZTtcbiAgICB0aGlzLmltYWdlQnVpbGQgPSBzZXJ2aWNlRGVzY3JpcHRpb24uaW1hZ2VCdWlsZDtcbiAgICB0aGlzLmRlcGVuZHNPbiA9IHNlcnZpY2VEZXNjcmlwdGlvbi5kZXBlbmRzT24gPz8gW107XG4gICAgdGhpcy52b2x1bWVzID0gc2VydmljZURlc2NyaXB0aW9uLnZvbHVtZXMgPz8gW107XG4gICAgdGhpcy5uZXR3b3JrcyA9IHNlcnZpY2VEZXNjcmlwdGlvbi5uZXR3b3JrcyA/PyBbXTtcbiAgICB0aGlzLnBvcnRzID0gc2VydmljZURlc2NyaXB0aW9uLnBvcnRzID8/IFtdO1xuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBzZXJ2aWNlRGVzY3JpcHRpb24uZW52aXJvbm1lbnQgPz8ge307XG4gICAgdGhpcy5sYWJlbHMgPSBzZXJ2aWNlRGVzY3JpcHRpb24ubGFiZWxzID8/IHt9O1xuICAgIHRoaXMuZW50cnlwb2ludCA9IHNlcnZpY2VEZXNjcmlwdGlvbi5lbnRyeXBvaW50O1xuICAgIHRoaXMucGxhdGZvcm0gPSBzZXJ2aWNlRGVzY3JpcHRpb24ucGxhdGZvcm07XG4gICAgdGhpcy5wcml2aWxlZ2VkID0gc2VydmljZURlc2NyaXB0aW9uLnByaXZpbGVnZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcG9ydCBtYXBwaW5nXG4gICAqIEBwYXJhbSBwdWJsaXNoZWRQb3J0IFB1Ymxpc2hlZCBwb3J0IG51bWJlclxuICAgKiBAcGFyYW0gdGFyZ2V0UG9ydCBDb250YWluZXIncyBwb3J0IG51bWJlclxuICAgKiBAcGFyYW0gb3B0aW9ucyBQb3J0IG1hcHBpbmcgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIGFkZFBvcnQoXG4gICAgcHVibGlzaGVkUG9ydDogbnVtYmVyLFxuICAgIHRhcmdldFBvcnQ6IG51bWJlcixcbiAgICBvcHRpb25zPzogRG9ja2VyQ29tcG9zZVBvcnRNYXBwaW5nT3B0aW9ucyxcbiAgKSB7XG4gICAgdGhpcy5wb3J0cz8ucHVzaChcbiAgICAgIERvY2tlckNvbXBvc2UucG9ydE1hcHBpbmcocHVibGlzaGVkUG9ydCwgdGFyZ2V0UG9ydCwgb3B0aW9ucyksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgICogQHBhcmFtIG5hbWUgZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZVxuICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlXG4gICAqL1xuICBwdWJsaWMgYWRkRW52aXJvbm1lbnQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5lbnZpcm9ubWVudFtuYW1lXSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgdGhlIHNlcnZpY2UgZGVwZW5kIG9uIGFub3RoZXIgc2VydmljZS5cbiAgICogQHBhcmFtIHNlcnZpY2VOYW1lXG4gICAqL1xuICBwdWJsaWMgYWRkRGVwZW5kc09uKHNlcnZpY2VOYW1lOiBJRG9ja2VyQ29tcG9zZVNlcnZpY2VOYW1lKSB7XG4gICAgdGhpcy5kZXBlbmRzT24ucHVzaChzZXJ2aWNlTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdm9sdW1lIHRvIHRoZSBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gdm9sdW1lXG4gICAqL1xuICBwdWJsaWMgYWRkVm9sdW1lKHZvbHVtZTogSURvY2tlckNvbXBvc2VWb2x1bWVCaW5kaW5nKSB7XG4gICAgdGhpcy52b2x1bWVzLnB1c2godm9sdW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXR3b3JrIHRvIHRoZSBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gbmV0d29ya1xuICAgKi9cbiAgcHVibGljIGFkZE5ldHdvcmsobmV0d29yazogSURvY2tlckNvbXBvc2VOZXR3b3JrQmluZGluZykge1xuICAgIHRoaXMubmV0d29ya3MucHVzaChuZXR3b3JrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBsYWJlbFxuICAgKiBAcGFyYW0gbmFtZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgICovXG4gIHB1YmxpYyBhZGRMYWJlbChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxhYmVsc1tuYW1lXSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogRGVzY3JpcHRpb24gb2YgYSBkb2NrZXItY29tcG9zZS55bWwgc2VydmljZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDb21wb3NlU2VydmljZURlc2NyaXB0aW9uIHtcbiAgLyoqXG4gICAqIFVzZSBhIGRvY2tlciBpbWFnZS5cbiAgICogTm90ZTogWW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgYGJ1aWxkYCBvciBgaW1hZ2VgIGtleS5cbiAgICogQHNlZSBpbWFnZUJ1aWxkXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQgYSBkb2NrZXIgaW1hZ2UuXG4gICAqIE5vdGU6IFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBpbWFnZUJ1aWxkYCBvciBgaW1hZ2VgIGtleS5cbiAgICogQHNlZSBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VCdWlsZD86IERvY2tlckNvbXBvc2VCdWlsZDtcblxuICAvKipcbiAgICogUHJvdmlkZSBhIGNvbW1hbmQgdG8gdGhlIGRvY2tlciBjb250YWluZXIuXG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBjb250YWluZXIncyBkZWZhdWx0IGNvbW1hbmRcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1hbmQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRW50cnlwb2ludCB0byBydW4gaW4gdGhlIGNvbnRhaW5lci5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTmFtZXMgb2Ygb3RoZXIgc2VydmljZXMgdGhpcyBzZXJ2aWNlIGRlcGVuZHMgb24uXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVwZW5kZW5jaWVzXG4gICAqL1xuICByZWFkb25seSBkZXBlbmRzT24/OiBJRG9ja2VyQ29tcG9zZVNlcnZpY2VOYW1lW107XG5cbiAgLyoqXG4gICAqIE1vdW50IHNvbWUgdm9sdW1lcyBpbnRvIHRoZSBzZXJ2aWNlLlxuICAgKiBVc2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdG8gY3JlYXRlIHZvbHVtZXM6XG4gICAqIEBzZWUgRG9ja2VyQ29tcG9zZS5iaW5kVm9sdW1lKCkgdG8gbW91bnQgYSBob3N0IHBhdGhcbiAgICogQHNlZSBEb2NrZXJDb21wb3NlLm5hbWVkVm9sdW1lKCkgdG8gY3JlYXRlICYgbW91bnQgYSBuYW1lZCB2b2x1bWVcbiAgICovXG4gIHJlYWRvbmx5IHZvbHVtZXM/OiBJRG9ja2VyQ29tcG9zZVZvbHVtZUJpbmRpbmdbXTtcblxuICAvKipcbiAgICogQWRkIHNvbWUgbmV0d29ya3MgdG8gdGhlIHNlcnZpY2UuXG4gICAqIEBzZWUgRG9ja2VyQ29tcG9zZS5uZXR3b3JrKCkgdG8gY3JlYXRlICYgbW91bnQgYSBuYW1lZCBuZXR3b3JrXG4gICAqL1xuICByZWFkb25seSBuZXR3b3Jrcz86IElEb2NrZXJDb21wb3NlTmV0d29ya0JpbmRpbmdbXTtcblxuICAvKipcbiAgICogTWFwIHNvbWUgcG9ydHMuXG4gICAqIEBkZWZhdWx0IC0gbm8gcG9ydHMgYXJlIG1hcHBlZFxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydHM/OiBEb2NrZXJDb21wb3NlU2VydmljZVBvcnRbXTtcblxuICAvKipcbiAgICogQWRkIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICogQGRlZmF1bHQgLSBubyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEFkZCBsYWJlbHMuXG4gICAqIEBkZWZhdWx0IC0gbm8gbGFiZWxzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWxzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIEFkZCBwbGF0Zm9ybVxuICAgKiBAZGVmYXVsdCAtIG5vIHBsYXRmb3JtIGlzIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybT86IHN0cmluZztcblxuICAvKipcbiAgICogUnVuIGluIHByaXZpbGVnZWQgbW9kZVxuICAgKiBAZGVmYXVsdCAtIG5vIHByaXZpbGVnZWQgbW9kZSBmbGFnIGlzIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBwcml2aWxlZ2VkPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -129,5 +129,5 @@ class DockerCompose extends component_1.Component {
129
129
  }
130
130
  exports.DockerCompose = DockerCompose;
131
131
  _a = JSII_RTTI_SYMBOL_1;
132
- DockerCompose[_a] = { fqn: "projen.DockerCompose", version: "0.99.78" };
132
+ DockerCompose[_a] = { fqn: "projen.DockerCompose", version: "0.99.80" };
133
133
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWNvbXBvc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9ja2VyLWNvbXBvc2UvZG9ja2VyLWNvbXBvc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSwrREFBOEQ7QUFDOUQsbUVBQWtFO0FBS2xFLHFFQUFnRTtBQU9oRSw0Q0FBeUM7QUFFekMsa0NBQW1DO0FBMkJuQzs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLHFCQUFTO0lBQzFDOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFtQjtRQUNwQyxPQUFPO1lBQ0wsV0FBVztTQUNaLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUNoQixhQUFxQixFQUNyQixVQUFrQixFQUNsQixPQUF5QztRQUV6QyxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxJQUFJLDJDQUFxQixDQUFDLEdBQUcsQ0FBQztRQUVoRSxPQUFPO1lBQ0wsTUFBTSxFQUFFLFVBQVU7WUFDbEIsU0FBUyxFQUFFLGFBQWE7WUFDeEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsSUFBSSxFQUFFLE1BQU07U0FDYixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUNmLFVBQWtCLEVBQ2xCLFVBQWtCO1FBRWxCLE9BQU87WUFDTCxJQUFJLENBQUMsV0FBdUM7Z0JBQzFDLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE1BQU07b0JBQ1osTUFBTSxFQUFFLFVBQVU7b0JBQ2xCLE1BQU0sRUFBRSxVQUFVO2lCQUNuQixDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUNoQixVQUFrQixFQUNsQixVQUFrQixFQUNsQixVQUFxQyxFQUFFO1FBRXZDLE9BQU87WUFDTCxJQUFJLENBQUMsVUFBc0M7Z0JBQ3pDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBRXZELE9BQU87b0JBQ0wsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsTUFBTSxFQUFFLFVBQVU7b0JBQ2xCLE1BQU0sRUFBRSxVQUFVO2lCQUNuQixDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQ1osV0FBbUIsRUFDbkIsVUFBc0MsRUFBRTtRQUV4QyxPQUFPO1lBQ0wsSUFBSSxDQUFDLFdBQXdDO2dCQUMzQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUUxRCxPQUFPLFdBQVcsQ0FBQztZQUNyQixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFVRCxZQUFZLE9BQWdCLEVBQUUsS0FBMEI7UUFDdEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFNLENBQUMsVUFBVSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMxRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZUFBUSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsVUFBVSxFQUFFLEVBQUU7WUFDaEUsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxLQUFLLEVBQUUsYUFBYSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQzdELE1BQU0sS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVuQiwwREFBMEQ7UUFDMUQsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDOUMsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ3pFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksVUFBVSxDQUNmLFdBQW1CLEVBQ25CLFdBQTRDO1FBRTVDLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQW9CLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ3JDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILHdCQUF3QjtRQUN0QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELE9BQU8sSUFBQSwrQ0FBdUIsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RCxDQUFDOztBQXpKSCxzQ0EwSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIERvY2tlckNvbXBvc2VOZXR3b3JrQ29uZmlnLFxuICBJRG9ja2VyQ29tcG9zZU5ldHdvcmtCaW5kaW5nLFxuICBJRG9ja2VyQ29tcG9zZU5ldHdvcmtDb25maWcsXG59IGZyb20gXCIuL2RvY2tlci1jb21wb3NlLW5ldHdvcmtcIjtcbmltcG9ydCB0eXBlIHtcbiAgRG9ja2VyQ29tcG9zZVBvcnRNYXBwaW5nT3B0aW9ucyxcbiAgRG9ja2VyQ29tcG9zZVNlcnZpY2VQb3J0LFxufSBmcm9tIFwiLi9kb2NrZXItY29tcG9zZS1wb3J0XCI7XG5pbXBvcnQgeyBEb2NrZXJDb21wb3NlUHJvdG9jb2wgfSBmcm9tIFwiLi9kb2NrZXItY29tcG9zZS1wb3J0XCI7XG5pbXBvcnQgeyByZW5kZXJEb2NrZXJDb21wb3NlRmlsZSB9IGZyb20gXCIuL2RvY2tlci1jb21wb3NlLXJlbmRlclwiO1xuaW1wb3J0IHR5cGUge1xuICBEb2NrZXJDb21wb3NlU2VydmljZURlc2NyaXB0aW9uLFxuICBJRG9ja2VyQ29tcG9zZVNlcnZpY2VOYW1lLFxufSBmcm9tIFwiLi9kb2NrZXItY29tcG9zZS1zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEb2NrZXJDb21wb3NlU2VydmljZSB9IGZyb20gXCIuL2RvY2tlci1jb21wb3NlLXNlcnZpY2VcIjtcbmltcG9ydCB0eXBlIHtcbiAgRG9ja2VyQ29tcG9zZVZvbHVtZUNvbmZpZyxcbiAgRG9ja2VyQ29tcG9zZVZvbHVtZU1vdW50LFxuICBJRG9ja2VyQ29tcG9zZVZvbHVtZUJpbmRpbmcsXG4gIElEb2NrZXJDb21wb3NlVm9sdW1lQ29uZmlnLFxufSBmcm9tIFwiLi9kb2NrZXItY29tcG9zZS12b2x1bWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gXCIuLi95YW1sXCI7XG5cbi8qKlxuICogUHJvcHMgZm9yIERvY2tlckNvbXBvc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQ29tcG9zZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgbmFtZSB0byBhZGQgdG8gdGhlIGRvY2tlci1jb21wb3NlLnltbCBmaWxlbmFtZS5cbiAgICogQGV4YW1wbGUgJ215bmFtZScgeWllbGRzICdkb2NrZXItY29tcG9zZS5teW5hbWUueW1sJ1xuICAgKiBAZGVmYXVsdCAtIG5vIG5hbWUgaXMgYWRkZWRcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVTdWZmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERvY2tlciBDb21wb3NlIHNjaGVtYSB2ZXJzaW9uIGRvIGJlIHVzZWRcbiAgICogQGRlZmF1bHQgLSBubyB2ZXJzaW9uIGlzIHByb3ZpZGVkXG4gICAqIEBkZXByZWNhdGVkIC0gVGhlIHRvcCBsZXZlbCBgdmVyc2lvbmAgZmllbGQgaXMgb2Jzb2xldGUgcGVyIHRoZSBDb21wb3NlIFNwZWNpZmljYXRpb24uXG4gICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vY29tcG9zZS1zcGVjL2NvbXBvc2Utc3BlYy9ibG9iL21hc3Rlci9zcGVjLm1kI3ZlcnNpb24tYW5kLW5hbWUtdG9wLWxldmVsLWVsZW1lbnRzIENvbXBvc2UgU3BlY2lmaWNhdGlvbn1cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVtYVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNlcnZpY2UgZGVzY3JpcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZXM/OiBSZWNvcmQ8c3RyaW5nLCBEb2NrZXJDb21wb3NlU2VydmljZURlc2NyaXB0aW9uPjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBkb2NrZXItY29tcG9zZSBZQU1MIGZpbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBEb2NrZXJDb21wb3NlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIERlcGVuZHMgb24gYSBzZXJ2aWNlIG5hbWUuXG4gICAqL1xuICBzdGF0aWMgc2VydmljZU5hbWUoc2VydmljZU5hbWU6IHN0cmluZyk6IElEb2NrZXJDb21wb3NlU2VydmljZU5hbWUge1xuICAgIHJldHVybiB7XG4gICAgICBzZXJ2aWNlTmFtZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHBvcnQgbWFwcGluZy5cbiAgICogQHBhcmFtIHB1Ymxpc2hlZFBvcnQgUHVibGlzaGVkIHBvcnQgbnVtYmVyXG4gICAqIEBwYXJhbSB0YXJnZXRQb3J0IENvbnRhaW5lcidzIHBvcnQgbnVtYmVyXG4gICAqIEBwYXJhbSBvcHRpb25zIFBvcnQgbWFwcGluZyBvcHRpb25zXG4gICAqL1xuICBzdGF0aWMgcG9ydE1hcHBpbmcoXG4gICAgcHVibGlzaGVkUG9ydDogbnVtYmVyLFxuICAgIHRhcmdldFBvcnQ6IG51bWJlcixcbiAgICBvcHRpb25zPzogRG9ja2VyQ29tcG9zZVBvcnRNYXBwaW5nT3B0aW9ucyxcbiAgKTogRG9ja2VyQ29tcG9zZVNlcnZpY2VQb3J0IHtcbiAgICBjb25zdCBwcm90b2NvbCA9IG9wdGlvbnM/LnByb3RvY29sID8/IERvY2tlckNvbXBvc2VQcm90b2NvbC5UQ1A7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiB0YXJnZXRQb3J0LFxuICAgICAgcHVibGlzaGVkOiBwdWJsaXNoZWRQb3J0LFxuICAgICAgcHJvdG9jb2w6IHByb3RvY29sLFxuICAgICAgbW9kZTogXCJob3N0XCIsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBiaW5kIHZvbHVtZSB0aGF0IGJpbmRzIGEgaG9zdCBwYXRoIHRvIHRoZSB0YXJnZXQgcGF0aCBpbiB0aGUgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gc291cmNlUGF0aCBIb3N0IHBhdGggbmFtZVxuICAgKiBAcGFyYW0gdGFyZ2V0UGF0aCBUYXJnZXQgcGF0aCBuYW1lXG4gICAqL1xuICBzdGF0aWMgYmluZFZvbHVtZShcbiAgICBzb3VyY2VQYXRoOiBzdHJpbmcsXG4gICAgdGFyZ2V0UGF0aDogc3RyaW5nLFxuICApOiBJRG9ja2VyQ29tcG9zZVZvbHVtZUJpbmRpbmcge1xuICAgIHJldHVybiB7XG4gICAgICBiaW5kKF92b2x1bWVJbmZvOiBJRG9ja2VyQ29tcG9zZVZvbHVtZUNvbmZpZyk6IERvY2tlckNvbXBvc2VWb2x1bWVNb3VudCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogXCJiaW5kXCIsXG4gICAgICAgICAgc291cmNlOiBzb3VyY2VQYXRoLFxuICAgICAgICAgIHRhcmdldDogdGFyZ2V0UGF0aCxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuYW1lZCB2b2x1bWUgYW5kIG1vdW50IGl0IHRvIHRoZSB0YXJnZXQgcGF0aC4gSWYgeW91IHVzZSB0aGlzXG4gICAqIG5hbWVkIHZvbHVtZSBpbiBzZXZlcmFsIHNlcnZpY2VzLCB0aGUgdm9sdW1lIHdpbGwgYmUgc2hhcmVkLiBJbiB0aGlzXG4gICAqIGNhc2UsIHRoZSB2b2x1bWUgY29uZmlndXJhdGlvbiBvZiB0aGUgZmlyc3QtcHJvdmlkZWQgb3B0aW9ucyBhcmUgdXNlZC5cbiAgICpcbiAgICogQHBhcmFtIHZvbHVtZU5hbWUgTmFtZSBvZiB0aGUgdm9sdW1lXG4gICAqIEBwYXJhbSB0YXJnZXRQYXRoIFRhcmdldCBwYXRoXG4gICAqIEBwYXJhbSBvcHRpb25zIHZvbHVtZSBjb25maWd1cmF0aW9uIChkZWZhdWx0OiBkb2NrZXIgY29tcG9zZSBkZWZhdWx0cylcbiAgICovXG4gIHN0YXRpYyBuYW1lZFZvbHVtZShcbiAgICB2b2x1bWVOYW1lOiBzdHJpbmcsXG4gICAgdGFyZ2V0UGF0aDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IERvY2tlckNvbXBvc2VWb2x1bWVDb25maWcgPSB7fSxcbiAgKTogSURvY2tlckNvbXBvc2VWb2x1bWVCaW5kaW5nIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmluZCh2b2x1bWVJbmZvOiBJRG9ja2VyQ29tcG9zZVZvbHVtZUNvbmZpZyk6IERvY2tlckNvbXBvc2VWb2x1bWVNb3VudCB7XG4gICAgICAgIHZvbHVtZUluZm8uYWRkVm9sdW1lQ29uZmlndXJhdGlvbih2b2x1bWVOYW1lLCBvcHRpb25zKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6IFwidm9sdW1lXCIsXG4gICAgICAgICAgc291cmNlOiB2b2x1bWVOYW1lLFxuICAgICAgICAgIHRhcmdldDogdGFyZ2V0UGF0aCxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuYW1lZCBuZXR3b3JrIGFuZCBtb3VudCBpdCB0byB0aGUgdGFyZ2V0IHBhdGguIElmIHlvdSB1c2UgdGhpc1xuICAgKiBuYW1lZCBuZXR3b3JrIGluIHNldmVyYWwgc2VydmljZXMsIHRoZSBuZXR3b3JrIHdpbGwgYmUgc2hhcmVkLiBJbiB0aGlzXG4gICAqIGNhc2UsIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGZpcnN0LXByb3ZpZGVkIG9wdGlvbnMgYXJlIHVzZWQuXG4gICAqXG4gICAqIEBwYXJhbSBuZXR3b3JrTmFtZSBOYW1lIG9mIHRoZSBuZXR3b3JrXG4gICAqIEBwYXJhbSBvcHRpb25zIG5ldHdvcmsgY29uZmlndXJhdGlvblxuICAgKi9cbiAgc3RhdGljIG5ldHdvcmsoXG4gICAgbmV0d29ya05hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiBEb2NrZXJDb21wb3NlTmV0d29ya0NvbmZpZyA9IHt9LFxuICApOiBJRG9ja2VyQ29tcG9zZU5ldHdvcmtCaW5kaW5nIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmluZChuZXR3b3JrSW5mbzogSURvY2tlckNvbXBvc2VOZXR3b3JrQ29uZmlnKTogc3RyaW5nIHtcbiAgICAgICAgbmV0d29ya0luZm8uYWRkTmV0d29ya0NvbmZpZ3VyYXRpb24obmV0d29ya05hbWUsIG9wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiBuZXR3b3JrTmFtZTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgRG9ja2VyIENvbXBvc2UgZmlsZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IFlhbWxGaWxlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZXM6IFJlY29yZDxzdHJpbmcsIERvY2tlckNvbXBvc2VTZXJ2aWNlPjtcbiAgcHJpdmF0ZSByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIHByb3BzPzogRG9ja2VyQ29tcG9zZVByb3BzKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCBuYW1lU3VmZml4ID0gcHJvcHM/Lm5hbWVTdWZmaXggPyBgJHtwcm9wcyEubmFtZVN1ZmZpeH0ueW1sYCA6IFwieW1sXCI7XG4gICAgdGhpcy5maWxlID0gbmV3IFlhbWxGaWxlKHByb2plY3QsIGBkb2NrZXItY29tcG9zZS4ke25hbWVTdWZmaXh9YCwge1xuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICBvYmo6ICgpID0+IHRoaXMuX3N5bnRoZXNpemVEb2NrZXJDb21wb3NlKCksXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHM/LnNjaGVtYVZlcnNpb24gJiYgIXBhcnNlRmxvYXQocHJvcHMuc2NoZW1hVmVyc2lvbikpIHtcbiAgICAgIHRocm93IEVycm9yKFwiVmVyc2lvbiB0YWcgbmVlZHMgdG8gYmUgYSBudW1iZXJcIik7XG4gICAgfVxuICAgIHRoaXMudmVyc2lvbiA9IHByb3BzPy5zY2hlbWFWZXJzaW9uO1xuICAgIHRoaXMuc2VydmljZXMgPSB7fTtcblxuICAgIC8vIEFkZCB0aGUgc2VydmljZXMgcHJvdmlkZWQgdmlhIHRoZSBjb25zdHJ1Y3RvciBhcmd1bWVudC5cbiAgICBjb25zdCBpbml0aWFsU2VydmljZXMgPSBwcm9wcz8uc2VydmljZXMgPz8ge307XG4gICAgZm9yIChjb25zdCBbbmFtZSwgc2VydmljZURlc2NyaXB0aW9uXSBvZiBPYmplY3QuZW50cmllcyhpbml0aWFsU2VydmljZXMpKSB7XG4gICAgICB0aGlzLmFkZFNlcnZpY2UobmFtZSwgc2VydmljZURlc2NyaXB0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgc2VydmljZSB0byB0aGUgZG9ja2VyLWNvbXBvc2UgZmlsZS5cbiAgICogQHBhcmFtIHNlcnZpY2VOYW1lIG5hbWUgb2YgdGhlIHNlcnZpY2VcbiAgICogQHBhcmFtIGRlc2NyaXB0aW9uIGEgc2VydmljZSBkZXNjcmlwdGlvblxuICAgKi9cbiAgcHVibGljIGFkZFNlcnZpY2UoXG4gICAgc2VydmljZU5hbWU6IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbjogRG9ja2VyQ29tcG9zZVNlcnZpY2VEZXNjcmlwdGlvbixcbiAgKTogRG9ja2VyQ29tcG9zZVNlcnZpY2Uge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBuZXcgRG9ja2VyQ29tcG9zZVNlcnZpY2Uoc2VydmljZU5hbWUsIGRlc2NyaXB0aW9uKTtcbiAgICB0aGlzLnNlcnZpY2VzW3NlcnZpY2VOYW1lXSA9IHNlcnZpY2U7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfc3ludGhlc2l6ZURvY2tlckNvbXBvc2UoKTogb2JqZWN0IHtcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5zZXJ2aWNlcykubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEb2NrZXJDb21wb3NlIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBzZXJ2aWNlXCIpO1xuICAgIH1cblxuICAgIHJldHVybiByZW5kZXJEb2NrZXJDb21wb3NlRmlsZSh0aGlzLnNlcnZpY2VzLCB0aGlzLnZlcnNpb24pO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgYXJndW1lbnRzIGZvciBjcmVhdGluZyBhIGRvY2tlciBpbWFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDb21wb3NlQnVpbGQge1xuICAvKipcbiAgICogRG9ja2VyIGJ1aWxkIGNvbnRleHQgZGlyZWN0b3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGRvY2tlcmZpbGUgdG8gYnVpbGQgZnJvbS5cbiAgICogQGRlZmF1bHQgXCJEb2NrZXJmaWxlXCJcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlcmZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFyZ3MuXG4gICAqIEBkZWZhdWx0IC0gbm9uZSBhcmUgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGFyZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuIl19
package/lib/file.d.ts CHANGED
@@ -43,9 +43,13 @@ export declare abstract class FileBase extends Component {
43
43
  */
44
44
  readonly: boolean;
45
45
  /**
46
- * Indicates if the file should be marked as executable
46
+ * Indicates if the file should be marked as executable.
47
47
  */
48
48
  executable: boolean;
49
+ /**
50
+ * Indicates if the file will be committed.
51
+ */
52
+ readonly committed: boolean;
49
53
  /**
50
54
  * The absolute path of this file.
51
55
  */