projen 0.36.8 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/.jsii +16703 -16599
  2. package/API.md +7136 -7066
  3. package/README.md +9 -9
  4. package/lib/awscdk/auto-discover.js +1 -1
  5. package/lib/{awscdk-app-ts.d.ts → awscdk/awscdk-app-ts.d.ts} +4 -3
  6. package/lib/awscdk/awscdk-app-ts.js +189 -0
  7. package/lib/{awscdk-construct.d.ts → awscdk/awscdk-construct.d.ts} +2 -2
  8. package/lib/awscdk/awscdk-construct.js +121 -0
  9. package/lib/awscdk/cdk-config.js +1 -1
  10. package/lib/awscdk/cdk-tasks.d.ts +1 -1
  11. package/lib/awscdk/cdk-tasks.js +2 -2
  12. package/lib/awscdk/index.d.ts +5 -3
  13. package/lib/awscdk/index.js +6 -4
  14. package/lib/awscdk/integration-test.d.ts +1 -1
  15. package/lib/awscdk/integration-test.js +2 -2
  16. package/lib/awscdk/java-app.js +1 -1
  17. package/lib/awscdk/lambda-function.d.ts +1 -1
  18. package/lib/awscdk/lambda-function.js +6 -7
  19. package/lib/{tasks/builtin-example.task.d.ts → builtin-example.task.d.ts} +0 -0
  20. package/lib/builtin-example.task.js +4 -0
  21. package/lib/{construct-lib.d.ts → cdk/construct-lib.d.ts} +0 -0
  22. package/lib/cdk/construct-lib.js +30 -0
  23. package/lib/cdk/index.d.ts +3 -0
  24. package/lib/{json → cdk}/index.js +4 -2
  25. package/lib/cdk/jsii-docgen.d.ts +12 -0
  26. package/lib/cdk/jsii-docgen.js +29 -0
  27. package/lib/{jsii-project.d.ts → cdk/jsii-project.d.ts} +4 -3
  28. package/lib/cdk/jsii-project.js +188 -0
  29. package/lib/{cdk8s-app-ts.d.ts → cdk8s/cdk8s-app-ts.d.ts} +1 -1
  30. package/lib/cdk8s/cdk8s-app-ts.js +134 -0
  31. package/lib/{cdk8s-construct.d.ts → cdk8s/cdk8s-construct.d.ts} +1 -1
  32. package/lib/{cdk8s-construct.js → cdk8s/cdk8s-construct.js} +4 -4
  33. package/lib/cdk8s/index.d.ts +2 -0
  34. package/lib/{deps → cdk8s}/index.js +3 -3
  35. package/lib/{cdktf-construct.d.ts → cdktf/cdktf-construct.d.ts} +1 -1
  36. package/lib/{cdktf-construct.js → cdktf/cdktf-construct.js} +4 -4
  37. package/lib/cdktf/index.d.ts +1 -0
  38. package/lib/{git → cdktf}/index.js +2 -2
  39. package/lib/cli/index.js +5 -5
  40. package/lib/cli/synth.d.ts +1 -1
  41. package/lib/cli/synth.js +1 -1
  42. package/lib/cli/tasks.d.ts +1 -1
  43. package/lib/cli/tasks.js +1 -1
  44. package/lib/component.js +1 -1
  45. package/lib/{deps/dependencies.d.ts → dependencies.d.ts} +101 -3
  46. package/lib/dependencies.js +206 -0
  47. package/lib/dev-env.d.ts +1 -1
  48. package/lib/dev-env.js +2 -2
  49. package/lib/docker-compose.js +2 -2
  50. package/lib/file.js +1 -1
  51. package/lib/{git/gitattributes.d.ts → gitattributes.d.ts} +2 -2
  52. package/lib/gitattributes.js +62 -0
  53. package/lib/github/auto-approve.js +1 -1
  54. package/lib/github/auto-merge.js +1 -1
  55. package/lib/github/dependabot.js +1 -1
  56. package/lib/github/github-project.d.ts +193 -0
  57. package/lib/github/github-project.js +70 -0
  58. package/lib/github/github.js +1 -1
  59. package/lib/github/index.d.ts +1 -0
  60. package/lib/github/index.js +2 -1
  61. package/lib/github/mergify.js +1 -1
  62. package/lib/github/pr-template.js +1 -1
  63. package/lib/github/pull-request-lint.js +1 -1
  64. package/lib/github/stale.js +1 -1
  65. package/lib/github/task-workflow.d.ts +1 -1
  66. package/lib/github/task-workflow.js +2 -2
  67. package/lib/github/workflows.js +1 -1
  68. package/lib/gitpod.d.ts +1 -1
  69. package/lib/gitpod.js +2 -2
  70. package/lib/ignore-file.js +1 -1
  71. package/lib/index.d.ts +12 -20
  72. package/lib/index.js +13 -21
  73. package/lib/ini.js +1 -1
  74. package/lib/java/java-project.d.ts +2 -2
  75. package/lib/java/java-project.js +4 -4
  76. package/lib/java/junit.js +1 -1
  77. package/lib/java/maven-compile.js +1 -1
  78. package/lib/java/maven-packaging.js +1 -1
  79. package/lib/java/maven-sample.js +1 -1
  80. package/lib/java/pom.d.ts +1 -1
  81. package/lib/java/pom.js +12 -12
  82. package/lib/java/projenrc.js +4 -4
  83. package/lib/javascript/bundler.d.ts +1 -1
  84. package/lib/javascript/bundler.js +4 -4
  85. package/lib/{eslint.d.ts → javascript/eslint.d.ts} +3 -3
  86. package/lib/javascript/eslint.js +261 -0
  87. package/lib/javascript/index.d.ts +8 -2
  88. package/lib/javascript/index.js +9 -3
  89. package/lib/{jest.d.ts → javascript/jest.d.ts} +1 -1
  90. package/lib/{jest.js → javascript/jest.js} +3 -3
  91. package/lib/{node-package.d.ts → javascript/node-package.d.ts} +2 -2
  92. package/lib/javascript/node-package.js +683 -0
  93. package/lib/{node-project.d.ts → javascript/node-project.d.ts} +9 -8
  94. package/lib/javascript/node-project.js +541 -0
  95. package/lib/javascript/npm-config.d.ts +1 -1
  96. package/lib/javascript/npm-config.js +2 -2
  97. package/lib/javascript/projenrc.js +3 -3
  98. package/lib/{typescript-config.d.ts → javascript/typescript-config.d.ts} +2 -2
  99. package/lib/{typescript-config.js → javascript/typescript-config.js} +3 -3
  100. package/lib/{upgrade-dependencies.d.ts → javascript/upgrade-dependencies.d.ts} +3 -3
  101. package/lib/javascript/upgrade-dependencies.js +328 -0
  102. package/lib/json.js +1 -1
  103. package/lib/license.js +1 -1
  104. package/lib/logger.js +1 -1
  105. package/lib/makefile.js +1 -1
  106. package/lib/object-file.js +1 -1
  107. package/lib/project-build.d.ts +1 -1
  108. package/lib/project-build.js +2 -2
  109. package/lib/project.d.ts +5 -198
  110. package/lib/project.js +14 -78
  111. package/lib/projects.js +1 -1
  112. package/lib/{json/projenrc.d.ts → projenrc-json.d.ts} +2 -2
  113. package/lib/{json/projenrc.js → projenrc-json.js} +4 -4
  114. package/lib/python/pip.d.ts +1 -1
  115. package/lib/python/pip.js +9 -9
  116. package/lib/python/poetry.d.ts +1 -1
  117. package/lib/python/poetry.js +10 -10
  118. package/lib/python/projenrc.js +4 -4
  119. package/lib/python/pytest.js +1 -1
  120. package/lib/python/python-deps.d.ts +2 -2
  121. package/lib/python/python-deps.js +1 -1
  122. package/lib/python/python-packaging.d.ts +1 -1
  123. package/lib/python/python-packaging.js +1 -1
  124. package/lib/python/python-project.d.ts +1 -1
  125. package/lib/python/python-project.js +4 -3
  126. package/lib/python/python-sample.js +1 -1
  127. package/lib/python/requirements-file.js +4 -4
  128. package/lib/python/setuppy.js +1 -1
  129. package/lib/python/setuptools.d.ts +1 -1
  130. package/lib/python/setuptools.js +2 -2
  131. package/lib/python/venv.js +1 -1
  132. package/lib/readme.js +1 -1
  133. package/lib/release/publisher.d.ts +1 -1
  134. package/lib/release/publisher.js +3 -3
  135. package/lib/release/release-trigger.js +1 -1
  136. package/lib/release/release.d.ts +2 -2
  137. package/lib/release/release.js +2 -2
  138. package/lib/{json/run-projenrc.task.d.ts → run-projenrc-json.task.d.ts} +0 -0
  139. package/lib/run-projenrc-json.task.js +31 -0
  140. package/lib/sample-file.js +2 -2
  141. package/lib/semver.js +1 -1
  142. package/lib/source-code.js +1 -1
  143. package/lib/{tasks/model.d.ts → task-model.d.ts} +0 -0
  144. package/lib/task-model.js +3 -0
  145. package/lib/{tasks/runtime.d.ts → task-runtime.d.ts} +1 -1
  146. package/lib/task-runtime.js +272 -0
  147. package/lib/{tasks/task.d.ts → task.d.ts} +1 -1
  148. package/lib/task.js +195 -0
  149. package/lib/{tasks/tasks.d.ts → tasks.d.ts} +2 -2
  150. package/lib/tasks.js +129 -0
  151. package/lib/textfile.js +1 -1
  152. package/lib/toml.js +1 -1
  153. package/lib/typescript/index.d.ts +2 -0
  154. package/lib/typescript/index.js +3 -1
  155. package/lib/typescript/projenrc.js +1 -1
  156. package/lib/typescript/typescript-typedoc.d.ts +12 -0
  157. package/lib/typescript/typescript-typedoc.js +28 -0
  158. package/lib/{typescript.d.ts → typescript/typescript.d.ts} +3 -5
  159. package/lib/typescript/typescript.js +281 -0
  160. package/lib/util/synth.d.ts +2 -2
  161. package/lib/util/synth.js +3 -3
  162. package/lib/version.d.ts +1 -1
  163. package/lib/version.js +2 -2
  164. package/lib/vscode/devcontainer.d.ts +1 -1
  165. package/lib/vscode/devcontainer.js +2 -2
  166. package/lib/vscode/launch-config.js +1 -1
  167. package/lib/vscode/vscode.js +1 -1
  168. package/lib/web/next.d.ts +1 -1
  169. package/lib/web/next.js +8 -9
  170. package/lib/web/postcss.d.ts +1 -1
  171. package/lib/web/postcss.js +2 -2
  172. package/lib/web/react.d.ts +1 -1
  173. package/lib/web/react.js +9 -10
  174. package/lib/web/tailwind.d.ts +1 -1
  175. package/lib/web/tailwind.js +2 -2
  176. package/lib/xmlfile.js +1 -1
  177. package/lib/yaml.js +1 -1
  178. package/package.json +3 -1
  179. package/lib/awscdk-app-ts.js +0 -188
  180. package/lib/awscdk-construct.js +0 -121
  181. package/lib/cdk8s-app-ts.js +0 -134
  182. package/lib/construct-lib.js +0 -30
  183. package/lib/deps/dependencies.js +0 -192
  184. package/lib/deps/index.d.ts +0 -2
  185. package/lib/deps/model.d.ts +0 -99
  186. package/lib/deps/model.js +0 -18
  187. package/lib/eslint.js +0 -261
  188. package/lib/git/gitattributes.js +0 -62
  189. package/lib/git/index.d.ts +0 -1
  190. package/lib/jsii-docgen.d.ts +0 -10
  191. package/lib/jsii-docgen.js +0 -23
  192. package/lib/jsii-project.js +0 -187
  193. package/lib/json/index.d.ts +0 -1
  194. package/lib/json/run-projenrc.task.js +0 -31
  195. package/lib/node-package.js +0 -683
  196. package/lib/node-project.js +0 -540
  197. package/lib/tasks/builtin-example.task.js +0 -4
  198. package/lib/tasks/index.d.ts +0 -4
  199. package/lib/tasks/index.js +0 -17
  200. package/lib/tasks/model.js +0 -3
  201. package/lib/tasks/runtime.js +0 -272
  202. package/lib/tasks/task.js +0 -195
  203. package/lib/tasks/tasks.js +0 -129
  204. package/lib/typescript-typedoc.d.ts +0 -7
  205. package/lib/typescript-typedoc.js +0 -19
  206. package/lib/typescript.js +0 -284
  207. package/lib/upgrade-dependencies.js +0 -328
package/lib/util/synth.js CHANGED
@@ -6,12 +6,12 @@ const os = require("os");
6
6
  const path = require("path");
7
7
  const fs = require("fs-extra");
8
8
  const glob_1 = require("glob");
9
+ const github_1 = require("../github");
9
10
  const logging = require("../logging");
10
- const project_1 = require("../project");
11
11
  const util_1 = require("../util");
12
12
  const PROJEN_CLI = require.resolve('../../lib/cli/index.js');
13
13
  logging.disable(); // no logging during tests
14
- class TestProject extends project_1.GitHubProject {
14
+ class TestProject extends github_1.GitHubProject {
15
15
  constructor(options = {}) {
16
16
  super({
17
17
  name: 'my-project',
@@ -187,4 +187,4 @@ function sanitizeOutput(dir) {
187
187
  fs.writeJsonSync(depsPath, deps);
188
188
  }
189
189
  exports.sanitizeOutput = sanitizeOutput;
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zeW50aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvQ0FBb0M7QUFDcEMseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsK0JBQTRCO0FBRTVCLHNDQUFzQztBQUN0Qyx3Q0FBaUU7QUFFakUsa0NBQStCO0FBRS9CLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUU3RCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQywwQkFBMEI7QUFFN0MsTUFBYSxXQUFZLFNBQVEsdUJBQWE7SUFDNUMsWUFBWSxVQUE4QyxFQUFFO1FBQzFELEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxZQUFZO1lBQ2xCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSw4Q0FBOEM7SUFDdkMsY0FBYyxDQUFDLElBQVU7UUFDOUIsT0FBTyxVQUFVLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsY0FBYztRQUNaLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRjtBQWxCRCxrQ0FrQkM7QUFFRCxTQUFnQixhQUFhLENBQUMsT0FBZSxFQUFFLE9BQWlCLEVBQUU7SUFDaEUsTUFBTSxPQUFPLEdBQUc7UUFDZCxPQUFPLENBQUMsUUFBUTtRQUNoQixVQUFVO1FBQ1YsR0FBRyxJQUFJO0tBQ1IsQ0FBQztJQUVGLE9BQU8sV0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFB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IGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBnbG9iIH0gZnJvbSAnZ2xvYic7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vJztcbmltcG9ydCAqIGFzIGxvZ2dpbmcgZnJvbSAnLi4vbG9nZ2luZyc7XG5pbXBvcnQgeyBHaXRIdWJQcm9qZWN0LCBHaXRIdWJQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICcuLi91dGlsJztcblxuY29uc3QgUFJPSkVOX0NMSSA9IHJlcXVpcmUucmVzb2x2ZSgnLi4vLi4vbGliL2NsaS9pbmRleC5qcycpO1xuXG5sb2dnaW5nLmRpc2FibGUoKTsgLy8gbm8gbG9nZ2luZyBkdXJpbmcgdGVzdHNcblxuZXhwb3J0IGNsYXNzIFRlc3RQcm9qZWN0IGV4dGVuZHMgR2l0SHViUHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9taXQ8R2l0SHViUHJvamVjdE9wdGlvbnMsICduYW1lJz4gPSB7fSkge1xuICAgIHN1cGVyKHtcbiAgICAgIG5hbWU6ICdteS1wcm9qZWN0JyxcbiAgICAgIGNsb2JiZXI6IGZhbHNlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIG92ZXJyaWRlIHJ1blRhc2tDb21tYW5kIGluIHRlc3RzIHNpbmNlIHRoZSBkZWZhdWx0IGluY2x1ZGVzIHRoZSB2ZXJzaW9uXG4gIC8vIG51bWJlciBhbmQgdGhhdCB3aWxsIGJyZWFrIHJlZ3Jlc2lvbiB0ZXN0cy5cbiAgcHVibGljIHJ1blRhc2tDb21tYW5kKHRhc2s6IFRhc2spIHtcbiAgICByZXR1cm4gYHByb2plbiAke3Rhc2submFtZX1gO1xuICB9XG5cbiAgcG9zdFN5bnRoZXNpemUoKSB7XG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4odGhpcy5vdXRkaXIsICcucG9zdHN5bnRoJyksICcjIHBvc3RzeW50aCcpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGVjUHJvamVuQ0xJKHdvcmtkaXI6IHN0cmluZywgYXJnczogc3RyaW5nW10gPSBbXSkge1xuICBjb25zdCBjb21tYW5kID0gW1xuICAgIHByb2Nlc3MuZXhlY1BhdGgsXG4gICAgUFJPSkVOX0NMSSxcbiAgICAuLi5hcmdzLFxuICBdO1xuXG4gIHJldHVybiBleGVjKGNvbW1hbmQubWFwKHggPT4gYFwiJHt4fVwiYCkuam9pbignICcpLCB7IGN3ZDogd29ya2RpciB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTeW50aE91dHB1dCB7XG4gIFtmaWxlUGF0aDogc3RyaW5nXTogYW55O1xufVxuXG5jb25zdCBhdXRvUmVtb3ZlID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbi8vIEhvb2sgdG8gYXV0b21hdGljYWxseSByZW1vdmUgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHdpdGhvdXQgbmVlZGluZyBlYWNoXG4vLyBwbGFjZSB0byBhY3R1YWxseSBoYW5kbGUgdGhpcyBzcGVjaWZpY2FsbHkuXG5hZnRlckFsbCgoZG9uZSkgPT4ge1xuICAvLyBBcnJheS5mcm9tIHVzZWQgdG8gZ2V0IGEgY29weSwgc28gd2UgY2FuIHNhZmVseSByZW1vdmUgZnJvbSB0aGUgc2V0XG4gIGZvciAoY29uc3QgZGlyIG9mIEFycmF5LmZyb20oYXV0b1JlbW92ZSkpIHtcbiAgICB0cnkge1xuICAgICAgLy8gTm90ZSAtIGZzLWV4dHJhLnJlbW92ZVN5bmMgaXMgaWRlbXBvdGVudCwgc28gd2UncmUgc2FmZSBpZiB0aGVcbiAgICAgIC8vIGRpcmVjdG9yeSBoYXMgYWxyZWFkeSBiZWVuIGNsZWFuZWQgdXAgYmVmb3JlIHdlIGdldCB0aGVyZSFcbiAgICAgIGZzLnJlbW92ZVN5bmMoZGlyKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBkb25lLmZhaWwoZSk7XG4gICAgfVxuICAgIGF1dG9SZW1vdmUuZGVsZXRlKGRpcik7XG4gIH1cbiAgZG9uZSgpO1xufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBta2R0ZW1wKCkge1xuICBjb25zdCB0bXBkaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdwcm9qZW4tdGVzdC0nKSk7XG4gIGF1dG9SZW1vdmUuYWRkKHRtcGRpcik7XG4gIHJldHVybiB0bXBkaXI7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHNuYXBzaG90IG9mIHRoZSBmaWxlcyBnZW5lcmF0ZWQgYnkgYSBwcm9qZWN0LiBJZ25vcmVzIGFueSBub24tdGV4dFxuICogZmlsZXMgc28gdGhhdCB0aGUgc25hcHNob3RzIGFyZSBodW1hbiByZWFkYWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN5bnRoU25hcHNob3QocHJvamVjdDogUHJvamVjdCk6IGFueSB7XG4gIC8vIGRlZmVuc2l2ZTogdmVyaWZ5IHRoYXQgXCJvdXRkaXJcIiBpcyBhY3R1YWxseSBpbiBhIHRlbXBvcmFyeSBkaXJlY3RvcnlcbiAgaWYgKCFwYXRoLnJlc29sdmUocHJvamVjdC5vdXRkaXIpLnN0YXJ0c1dpdGgob3MudG1wZGlyKCkpICYmICFwcm9qZWN0Lm91dGRpci5pbmNsdWRlcygncHJvamVjdC10ZW1wLWRpcicpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUcnlpbmcgdG8gY2FwdHVyZSBhIHNuYXBzaG90IG9mIGEgcHJvamVjdCBvdXRzaWRlIG9mIHRtcGRpciwgd2hpY2ggaW1wbGllcyB0aGlzIHRlc3QgbWlnaHQgY29ycnVwdCBhbiBleGlzdGluZyBwcm9qZWN0Jyk7XG4gIH1cblxuICBjb25zdCBzeW50aGVkID0gU3ltYm9sLmZvcignc3ludGhlZCcpO1xuICBpZiAoc3ludGhlZCBpbiBwcm9qZWN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdkdXBsaWNhdGUgc3ludGgoKScpO1xuICB9XG5cbiAgKHByb2plY3QgYXMgYW55KVtzeW50aGVkXSA9IHRydWU7XG5cbiAgY29uc3QgRU5WX1BST0pFTl9ESVNBQkxFX1BPU1QgPSBwcm9jZXNzLmVudi5QUk9KRU5fRElTQUJMRV9QT1NUO1xuICB0cnkge1xuICAgIHByb2Nlc3MuZW52LlBST0pFTl9ESVNBQkxFX1BPU1QgPSAndHJ1ZSc7XG4gICAgcHJvamVjdC5zeW50aCgpO1xuICAgIGNvbnN0IGlnbm9yZUV4dHMgPSBbJ3BuZycsICdpY28nXTtcbiAgICByZXR1cm4gZGlyZWN0b3J5U25hcHNob3QocHJvamVjdC5vdXRkaXIsIHsgZXhjbHVkZUdsb2JzOiBpZ25vcmVFeHRzLm1hcChleHQgPT4gYCoqLyouJHtleHR9YCkgfSk7XG4gIH0gZmluYWxseSB7XG4gICAgZnMucmVtb3ZlU3luYyhwcm9qZWN0Lm91dGRpcik7XG5cbiAgICAvLyB2YWx1ZXMgYXNzaWduZWQgdG8gcHJvY2Vzcy5lbnYuWFlaIGFyZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBzdHJpbmdzXG4gICAgaWYgKEVOVl9QUk9KRU5fRElTQUJMRV9QT1NUID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBwcm9jZXNzLmVudi5QUk9KRU5fRElTQUJMRV9QT1NUO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9jZXNzLmVudi5QUk9KRU5fRElTQUJMRV9QT1NUID0gRU5WX1BST0pFTl9ESVNBQkxFX1BPU1Q7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzeW50aFNuYXBzaG90V2l0aFBvc3QocHJvamVjdDogUHJvamVjdCkge1xuICB0cnkge1xuICAgIHByb2plY3Quc3ludGgoKTtcbiAgICByZXR1cm4gZGlyZWN0b3J5U25hcHNob3QocHJvamVjdC5vdXRkaXIpO1xuICB9IGZpbmFsbHkge1xuICAgIGZzLnJlbW92ZVN5bmMocHJvamVjdC5vdXRkaXIpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0b3J5U25hcHNob3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIEdsb2JzIG9mIGZpbGVzIHRvIGV4Y2x1ZGUuXG4gICAqIEBkZWZhdWx0IFtdIGluY2x1ZGUgYWxsIGZpbGVzXG4gICAqL1xuICByZWFkb25seSBleGNsdWRlR2xvYnM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpcmVjdG9yeVNuYXBzaG90KHJvb3Q6IHN0cmluZywgb3B0aW9uczogRGlyZWN0b3J5U25hcHNob3RPcHRpb25zID0ge30pIHtcbiAgY29uc3Qgb3V0cHV0OiBTeW50aE91dHB1dCA9IHt9O1xuXG4gIGNvbnN0IGZpbGVzID0gZ2xvYi5zeW5jKCcqKicsIHtcbiAgICBpZ25vcmU6IFsnLmdpdC8qKicsIC4uLihvcHRpb25zLmV4Y2x1ZGVHbG9icyA/PyBbXSldLFxuICAgIGN3ZDogcm9vdCxcbiAgICBub2RpcjogdHJ1ZSxcbiAgICBkb3Q6IHRydWUsXG4gIH0pOyAvLyByZXR1cm5zIHJlbGF0aXZlIGZpbGUgcGF0aHMgd2l0aCBQT1NJWCBzZXBhcmF0b3JzXG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4ocm9vdCwgZmlsZSk7XG5cbiAgICBsZXQgY29udGVudDtcbiAgICBpZiAocGF0aC5leHRuYW1lKGZpbGVQYXRoKSA9PT0gJy5qc29uJykge1xuICAgICAgY29udGVudCA9IGZzLnJlYWRKc29uU3luYyhmaWxlUGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGYtOCcpO1xuICAgIH1cblxuICAgIG91dHB1dFtmaWxlXSA9IGNvbnRlbnQ7XG4gIH1cblxuICByZXR1cm4gb3V0cHV0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFByb2plY3REaXIoY29kZTogKHdvcmtkaXI6IHN0cmluZykgPT4gdm9pZCwgb3B0aW9uczogeyBnaXQ/OiBib29sZWFuOyBjaGRpcj86IGJvb2xlYW4gfSA9IHt9KSB7XG4gIGNvbnN0IG9yaWdEaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICBjb25zdCBvdXRkaXIgPSBta2R0ZW1wKCk7XG4gIHRyeSB7XG4gICAgLy8gY3JlYXRlIHByb2plY3QgdW5kZXIgXCJteS1wcm9qZWN0XCIgc28gdGhhdCBiYXNlZGlyIGlzIGRldGVybWluaXN0aWNcbiAgICBjb25zdCBwcm9qZWN0ZGlyID0gcGF0aC5qb2luKG91dGRpciwgJ215LXByb2plY3QnKTtcbiAgICBmcy5ta2RpclN5bmMocHJvamVjdGRpcik7XG5cbiAgICBjb25zdCBzaGVsbCA9IChjb21tYW5kOiBzdHJpbmcpID0+IGNwLmV4ZWNTeW5jKGNvbW1hbmQsIHsgY3dkOiBwcm9qZWN0ZGlyIH0pO1xuICAgIGlmIChvcHRpb25zLmdpdCA/PyB0cnVlKSB7XG4gICAgICBzaGVsbCgnZ2l0IGluaXQnKTtcbiAgICAgIHNoZWxsKCdnaXQgcmVtb3RlIGFkZCBvcmlnaW4gZ2l0QGJvb20uY29tOmZvby9iYXIuZ2l0Jyk7XG4gICAgICBzaGVsbCgnZ2l0IGNvbmZpZyB1c2VyLm5hbWUgXCJNeSBVc2VyIE5hbWVcIicpO1xuICAgICAgc2hlbGwoJ2dpdCBjb25maWcgdXNlci5lbWFpbCBcIm15QHVzZXIuZW1haWwuY29tXCInKTtcbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52LkNJKSB7XG4gICAgICAvLyBpZiBcImdpdFwiIGlzIHNldCB0byBcImZhbHNlXCIsIHdlIHN0aWxsIHdhbnQgdG8gbWFrZSBzdXJlIGdsb2JhbCB1c2VyIGlzIGRlZmluZWRcbiAgICAgIC8vIChyZWxldmFudCBpbiBDSSBjb250ZXh0KVxuICAgICAgc2hlbGwoJ2dpdCBjb25maWcgdXNlci5uYW1lIHx8IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiTXkgVXNlciBOYW1lXCInKTtcbiAgICAgIHNoZWxsKCdnaXQgY29uZmlnIHVzZXIuZW1haWwgfHwgZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsIFwibXlAdXNlci5lbWFpbC5jb21cIicpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmNoZGlyID8/IGZhbHNlKSB7XG4gICAgICBwcm9jZXNzLmNoZGlyKHByb2plY3RkaXIpO1xuICAgIH1cblxuICAgIGNvZGUocHJvamVjdGRpcik7XG4gIH0gZmluYWxseSB7XG4gICAgcHJvY2Vzcy5jaGRpcihvcmlnRGlyKTtcbiAgICBmcy5yZW1vdmVTeW5jKG91dGRpcik7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFueSBub24tZGV0ZXJtaW5pc3RpYyBhc3BlY3RzIGZyb20gdGhlIHN5bnRoZXNpemVkIG91dHB1dC5cbiAqIEBwYXJhbSBkaXIgVGhlIG91dHB1dCBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZU91dHB1dChkaXI6IHN0cmluZykge1xuICBjb25zdCBmaWxlcGF0aCA9IHBhdGguam9pbihkaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgY29uc3QgcGtnID0gZnMucmVhZEpzb25TeW5jKGZpbGVwYXRoKTtcbiAgY29uc3QgcHJldiA9IHBrZy5kZXZEZXBlbmRlbmNpZXMucHJvamVuO1xuICBpZiAoIXByZXYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGluZyBcIiR7ZmlsZXBhdGh9XCIgdG8gaW5jbHVkZSBhIGRldkRlcGVuZGVuY3kgb24gXCJwcm9qZW5cImApO1xuICB9XG5cbiAgLy8gcmVwbGFjZSB0aGUgY3VycmVudCBwcm9qZW4gdmVyc2lvbiB3aXRoIDk5OS45OTkuOTk5IGZvciBkZXRlcm1pbmlzdGljIG91dHB1dC5cbiAgLy8gdGhpcyB3aWxsIHByZXNlcnZlIGFueSBzZW1hbnRpYyB2ZXJzaW9uIHJlcXVpcmVtZW50cyAoZS5nLiBcIl5cIiwgXCJ+XCIsIGV0YykuXG4gIHBrZy5kZXZEZXBlbmRlbmNpZXMucHJvamVuID0gcHJldi5yZXBsYWNlKC9cXGQrXFwuXFxkK1xcLlxcZCsvLCAnOTk5Ljk5OS45OTknKTtcbiAgZnMud3JpdGVKc29uU3luYyhmaWxlcGF0aCwgcGtnKTtcblxuICAvLyB3ZSB3aWxsIGFsc28gcGF0Y2ggZGVwcy5qc29uIHNvIHRoYXQgYWxsIHByb2plbiBkZXBzIHdpbGwgYmUgc2V0IHRvIDk5OS45OTkuOTk5XG4gIGNvbnN0IGRlcHNQYXRoID0gcGF0aC5qb2luKGRpciwgJy5wcm9qZW4nLCAnZGVwcy5qc29uJyk7XG4gIGNvbnN0IGRlcHMgPSBmcy5yZWFkSnNvblN5bmMoZGVwc1BhdGgpO1xuICBmb3IgKGNvbnN0IGRlcCBvZiBkZXBzLmRlcGVuZGVuY2llcykge1xuICAgIGlmIChkZXAubmFtZSA9PT0gJ3Byb2plbicgJiYgZGVwLnZlcnNpb24pIHtcbiAgICAgIGRlcC52ZXJzaW9uID0gZGVwLnZlcnNpb24ucmVwbGFjZSgvXFxkK1xcLlxcZCtcXC5cXGQrLywgJzk5OS45OTkuOTk5Jyk7XG4gICAgfVxuICB9XG4gIGZzLmNobW9kU3luYyhkZXBzUGF0aCwgJzc3NycpO1xuICBmcy53cml0ZUpzb25TeW5jKGRlcHNQYXRoLCBkZXBzKTtcbn1cbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zeW50aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvQ0FBb0M7QUFDcEMseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsK0JBQTRCO0FBRTVCLHNDQUFnRTtBQUNoRSxzQ0FBc0M7QUFFdEMsa0NBQStCO0FBRS9CLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUU3RCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQywwQkFBMEI7QUFFN0MsTUFBYSxXQUFZLFNBQVEsc0JBQWE7SUFDNUMsWUFBWSxVQUE4QyxFQUFFO1FBQzFELEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxZQUFZO1lBQ2xCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSw4Q0FBOEM7SUFDdkMsY0FBYyxDQUFDLElBQVU7UUFDOUIsT0FBTyxVQUFVLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsY0FBYztRQUNaLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRjtBQWxCRCxrQ0FrQkM7QUFFRCxTQUFnQixhQUFhLENBQUMsT0FBZSxFQUFFLE9BQWlCLEVBQUU7SUFDaEUsTUFBTSxPQUFPLEdBQUc7UUFDZCxPQUFPLENBQUMsUUFBUTtRQUNoQixVQUFVO1FBQ1YsR0FBRyxJQUFJO0tBQ1IsQ0FBQztJQUVGLE9BQU8sV0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFB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IGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBnbG9iIH0gZnJvbSAnZ2xvYic7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vJztcbmltcG9ydCB7IEdpdEh1YlByb2plY3QsIEdpdEh1YlByb2plY3RPcHRpb25zIH0gZnJvbSAnLi4vZ2l0aHViJztcbmltcG9ydCAqIGFzIGxvZ2dpbmcgZnJvbSAnLi4vbG9nZ2luZyc7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdGFzayc7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmNvbnN0IFBST0pFTl9DTEkgPSByZXF1aXJlLnJlc29sdmUoJy4uLy4uL2xpYi9jbGkvaW5kZXguanMnKTtcblxubG9nZ2luZy5kaXNhYmxlKCk7IC8vIG5vIGxvZ2dpbmcgZHVyaW5nIHRlc3RzXG5cbmV4cG9ydCBjbGFzcyBUZXN0UHJvamVjdCBleHRlbmRzIEdpdEh1YlByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBPbWl0PEdpdEh1YlByb2plY3RPcHRpb25zLCAnbmFtZSc+ID0ge30pIHtcbiAgICBzdXBlcih7XG4gICAgICBuYW1lOiAnbXktcHJvamVjdCcsXG4gICAgICBjbG9iYmVyOiBmYWxzZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvLyBvdmVycmlkZSBydW5UYXNrQ29tbWFuZCBpbiB0ZXN0cyBzaW5jZSB0aGUgZGVmYXVsdCBpbmNsdWRlcyB0aGUgdmVyc2lvblxuICAvLyBudW1iZXIgYW5kIHRoYXQgd2lsbCBicmVhayByZWdyZXNpb24gdGVzdHMuXG4gIHB1YmxpYyBydW5UYXNrQ29tbWFuZCh0YXNrOiBUYXNrKSB7XG4gICAgcmV0dXJuIGBwcm9qZW4gJHt0YXNrLm5hbWV9YDtcbiAgfVxuXG4gIHBvc3RTeW50aGVzaXplKCkge1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHRoaXMub3V0ZGlyLCAnLnBvc3RzeW50aCcpLCAnIyBwb3N0c3ludGgnKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhlY1Byb2plbkNMSSh3b3JrZGlyOiBzdHJpbmcsIGFyZ3M6IHN0cmluZ1tdID0gW10pIHtcbiAgY29uc3QgY29tbWFuZCA9IFtcbiAgICBwcm9jZXNzLmV4ZWNQYXRoLFxuICAgIFBST0pFTl9DTEksXG4gICAgLi4uYXJncyxcbiAgXTtcblxuICByZXR1cm4gZXhlYyhjb21tYW5kLm1hcCh4ID0+IGBcIiR7eH1cImApLmpvaW4oJyAnKSwgeyBjd2Q6IHdvcmtkaXIgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGhPdXRwdXQge1xuICBbZmlsZVBhdGg6IHN0cmluZ106IGFueTtcbn1cblxuY29uc3QgYXV0b1JlbW92ZSA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4vLyBIb29rIHRvIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRlbXBvcmFyeSBkaXJlY3RvcmllcyB3aXRob3V0IG5lZWRpbmcgZWFjaFxuLy8gcGxhY2UgdG8gYWN0dWFsbHkgaGFuZGxlIHRoaXMgc3BlY2lmaWNhbGx5LlxuYWZ0ZXJBbGwoKGRvbmUpID0+IHtcbiAgLy8gQXJyYXkuZnJvbSB1c2VkIHRvIGdldCBhIGNvcHksIHNvIHdlIGNhbiBzYWZlbHkgcmVtb3ZlIGZyb20gdGhlIHNldFxuICBmb3IgKGNvbnN0IGRpciBvZiBBcnJheS5mcm9tKGF1dG9SZW1vdmUpKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIE5vdGUgLSBmcy1leHRyYS5yZW1vdmVTeW5jIGlzIGlkZW1wb3RlbnQsIHNvIHdlJ3JlIHNhZmUgaWYgdGhlXG4gICAgICAvLyBkaXJlY3RvcnkgaGFzIGFscmVhZHkgYmVlbiBjbGVhbmVkIHVwIGJlZm9yZSB3ZSBnZXQgdGhlcmUhXG4gICAgICBmcy5yZW1vdmVTeW5jKGRpcik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZG9uZS5mYWlsKGUpO1xuICAgIH1cbiAgICBhdXRvUmVtb3ZlLmRlbGV0ZShkaXIpO1xuICB9XG4gIGRvbmUoKTtcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gbWtkdGVtcCgpIHtcbiAgY29uc3QgdG1wZGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAncHJvamVuLXRlc3QtJykpO1xuICBhdXRvUmVtb3ZlLmFkZCh0bXBkaXIpO1xuICByZXR1cm4gdG1wZGlyO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzbmFwc2hvdCBvZiB0aGUgZmlsZXMgZ2VuZXJhdGVkIGJ5IGEgcHJvamVjdC4gSWdub3JlcyBhbnkgbm9uLXRleHRcbiAqIGZpbGVzIHNvIHRoYXQgdGhlIHNuYXBzaG90cyBhcmUgaHVtYW4gcmVhZGFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzeW50aFNuYXBzaG90KHByb2plY3Q6IFByb2plY3QpOiBhbnkge1xuICAvLyBkZWZlbnNpdmU6IHZlcmlmeSB0aGF0IFwib3V0ZGlyXCIgaXMgYWN0dWFsbHkgaW4gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gIGlmICghcGF0aC5yZXNvbHZlKHByb2plY3Qub3V0ZGlyKS5zdGFydHNXaXRoKG9zLnRtcGRpcigpKSAmJiAhcHJvamVjdC5vdXRkaXIuaW5jbHVkZXMoJ3Byb2plY3QtdGVtcC1kaXInKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVHJ5aW5nIHRvIGNhcHR1cmUgYSBzbmFwc2hvdCBvZiBhIHByb2plY3Qgb3V0c2lkZSBvZiB0bXBkaXIsIHdoaWNoIGltcGxpZXMgdGhpcyB0ZXN0IG1pZ2h0IGNvcnJ1cHQgYW4gZXhpc3RpbmcgcHJvamVjdCcpO1xuICB9XG5cbiAgY29uc3Qgc3ludGhlZCA9IFN5bWJvbC5mb3IoJ3N5bnRoZWQnKTtcbiAgaWYgKHN5bnRoZWQgaW4gcHJvamVjdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignZHVwbGljYXRlIHN5bnRoKCknKTtcbiAgfVxuXG4gIChwcm9qZWN0IGFzIGFueSlbc3ludGhlZF0gPSB0cnVlO1xuXG4gIGNvbnN0IEVOVl9QUk9KRU5fRElTQUJMRV9QT1NUID0gcHJvY2Vzcy5lbnYuUFJPSkVOX0RJU0FCTEVfUE9TVDtcbiAgdHJ5IHtcbiAgICBwcm9jZXNzLmVudi5QUk9KRU5fRElTQUJMRV9QT1NUID0gJ3RydWUnO1xuICAgIHByb2plY3Quc3ludGgoKTtcbiAgICBjb25zdCBpZ25vcmVFeHRzID0gWydwbmcnLCAnaWNvJ107XG4gICAgcmV0dXJuIGRpcmVjdG9yeVNuYXBzaG90KHByb2plY3Qub3V0ZGlyLCB7IGV4Y2x1ZGVHbG9iczogaWdub3JlRXh0cy5tYXAoZXh0ID0+IGAqKi8qLiR7ZXh0fWApIH0pO1xuICB9IGZpbmFsbHkge1xuICAgIGZzLnJlbW92ZVN5bmMocHJvamVjdC5vdXRkaXIpO1xuXG4gICAgLy8gdmFsdWVzIGFzc2lnbmVkIHRvIHByb2Nlc3MuZW52LlhZWiBhcmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gc3RyaW5nc1xuICAgIGlmIChFTlZfUFJPSkVOX0RJU0FCTEVfUE9TVCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWxldGUgcHJvY2Vzcy5lbnYuUFJPSkVOX0RJU0FCTEVfUE9TVDtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvY2Vzcy5lbnYuUFJPSkVOX0RJU0FCTEVfUE9TVCA9IEVOVl9QUk9KRU5fRElTQUJMRV9QT1NUO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3ludGhTbmFwc2hvdFdpdGhQb3N0KHByb2plY3Q6IFByb2plY3QpIHtcbiAgdHJ5IHtcbiAgICBwcm9qZWN0LnN5bnRoKCk7XG4gICAgcmV0dXJuIGRpcmVjdG9yeVNuYXBzaG90KHByb2plY3Qub3V0ZGlyKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBmcy5yZW1vdmVTeW5jKHByb2plY3Qub3V0ZGlyKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeVNuYXBzaG90T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHbG9icyBvZiBmaWxlcyB0byBleGNsdWRlLlxuICAgKiBAZGVmYXVsdCBbXSBpbmNsdWRlIGFsbCBmaWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZUdsb2JzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXJlY3RvcnlTbmFwc2hvdChyb290OiBzdHJpbmcsIG9wdGlvbnM6IERpcmVjdG9yeVNuYXBzaG90T3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IG91dHB1dDogU3ludGhPdXRwdXQgPSB7fTtcblxuICBjb25zdCBmaWxlcyA9IGdsb2Iuc3luYygnKionLCB7XG4gICAgaWdub3JlOiBbJy5naXQvKionLCAuLi4ob3B0aW9ucy5leGNsdWRlR2xvYnMgPz8gW10pXSxcbiAgICBjd2Q6IHJvb3QsXG4gICAgbm9kaXI6IHRydWUsXG4gICAgZG90OiB0cnVlLFxuICB9KTsgLy8gcmV0dXJucyByZWxhdGl2ZSBmaWxlIHBhdGhzIHdpdGggUE9TSVggc2VwYXJhdG9yc1xuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHJvb3QsIGZpbGUpO1xuXG4gICAgbGV0IGNvbnRlbnQ7XG4gICAgaWYgKHBhdGguZXh0bmFtZShmaWxlUGF0aCkgPT09ICcuanNvbicpIHtcbiAgICAgIGNvbnRlbnQgPSBmcy5yZWFkSnNvblN5bmMoZmlsZVBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmLTgnKTtcbiAgICB9XG5cbiAgICBvdXRwdXRbZmlsZV0gPSBjb250ZW50O1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhQcm9qZWN0RGlyKGNvZGU6ICh3b3JrZGlyOiBzdHJpbmcpID0+IHZvaWQsIG9wdGlvbnM6IHsgZ2l0PzogYm9vbGVhbjsgY2hkaXI/OiBib29sZWFuIH0gPSB7fSkge1xuICBjb25zdCBvcmlnRGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3Qgb3V0ZGlyID0gbWtkdGVtcCgpO1xuICB0cnkge1xuICAgIC8vIGNyZWF0ZSBwcm9qZWN0IHVuZGVyIFwibXktcHJvamVjdFwiIHNvIHRoYXQgYmFzZWRpciBpcyBkZXRlcm1pbmlzdGljXG4gICAgY29uc3QgcHJvamVjdGRpciA9IHBhdGguam9pbihvdXRkaXIsICdteS1wcm9qZWN0Jyk7XG4gICAgZnMubWtkaXJTeW5jKHByb2plY3RkaXIpO1xuXG4gICAgY29uc3Qgc2hlbGwgPSAoY29tbWFuZDogc3RyaW5nKSA9PiBjcC5leGVjU3luYyhjb21tYW5kLCB7IGN3ZDogcHJvamVjdGRpciB9KTtcbiAgICBpZiAob3B0aW9ucy5naXQgPz8gdHJ1ZSkge1xuICAgICAgc2hlbGwoJ2dpdCBpbml0Jyk7XG4gICAgICBzaGVsbCgnZ2l0IHJlbW90ZSBhZGQgb3JpZ2luIGdpdEBib29tLmNvbTpmb28vYmFyLmdpdCcpO1xuICAgICAgc2hlbGwoJ2dpdCBjb25maWcgdXNlci5uYW1lIFwiTXkgVXNlciBOYW1lXCInKTtcbiAgICAgIHNoZWxsKCdnaXQgY29uZmlnIHVzZXIuZW1haWwgXCJteUB1c2VyLmVtYWlsLmNvbVwiJyk7XG4gICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5DSSkge1xuICAgICAgLy8gaWYgXCJnaXRcIiBpcyBzZXQgdG8gXCJmYWxzZVwiLCB3ZSBzdGlsbCB3YW50IHRvIG1ha2Ugc3VyZSBnbG9iYWwgdXNlciBpcyBkZWZpbmVkXG4gICAgICAvLyAocmVsZXZhbnQgaW4gQ0kgY29udGV4dClcbiAgICAgIHNoZWxsKCdnaXQgY29uZmlnIHVzZXIubmFtZSB8fCBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSBcIk15IFVzZXIgTmFtZVwiJyk7XG4gICAgICBzaGVsbCgnZ2l0IGNvbmZpZyB1c2VyLmVtYWlsIHx8IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCBcIm15QHVzZXIuZW1haWwuY29tXCInKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5jaGRpciA/PyBmYWxzZSkge1xuICAgICAgcHJvY2Vzcy5jaGRpcihwcm9qZWN0ZGlyKTtcbiAgICB9XG5cbiAgICBjb2RlKHByb2plY3RkaXIpO1xuICB9IGZpbmFsbHkge1xuICAgIHByb2Nlc3MuY2hkaXIob3JpZ0Rpcik7XG4gICAgZnMucmVtb3ZlU3luYyhvdXRkaXIpO1xuICB9XG59XG5cbi8qKlxuICogUmVtb3ZlcyBhbnkgbm9uLWRldGVybWluaXN0aWMgYXNwZWN0cyBmcm9tIHRoZSBzeW50aGVzaXplZCBvdXRwdXQuXG4gKiBAcGFyYW0gZGlyIFRoZSBvdXRwdXQgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVPdXRwdXQoZGlyOiBzdHJpbmcpIHtcbiAgY29uc3QgZmlsZXBhdGggPSBwYXRoLmpvaW4oZGlyLCAncGFja2FnZS5qc29uJyk7XG4gIGNvbnN0IHBrZyA9IGZzLnJlYWRKc29uU3luYyhmaWxlcGF0aCk7XG4gIGNvbnN0IHByZXYgPSBwa2cuZGV2RGVwZW5kZW5jaWVzLnByb2plbjtcbiAgaWYgKCFwcmV2KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RpbmcgXCIke2ZpbGVwYXRofVwiIHRvIGluY2x1ZGUgYSBkZXZEZXBlbmRlbmN5IG9uIFwicHJvamVuXCJgKTtcbiAgfVxuXG4gIC8vIHJlcGxhY2UgdGhlIGN1cnJlbnQgcHJvamVuIHZlcnNpb24gd2l0aCA5OTkuOTk5Ljk5OSBmb3IgZGV0ZXJtaW5pc3RpYyBvdXRwdXQuXG4gIC8vIHRoaXMgd2lsbCBwcmVzZXJ2ZSBhbnkgc2VtYW50aWMgdmVyc2lvbiByZXF1aXJlbWVudHMgKGUuZy4gXCJeXCIsIFwiflwiLCBldGMpLlxuICBwa2cuZGV2RGVwZW5kZW5jaWVzLnByb2plbiA9IHByZXYucmVwbGFjZSgvXFxkK1xcLlxcZCtcXC5cXGQrLywgJzk5OS45OTkuOTk5Jyk7XG4gIGZzLndyaXRlSnNvblN5bmMoZmlsZXBhdGgsIHBrZyk7XG5cbiAgLy8gd2Ugd2lsbCBhbHNvIHBhdGNoIGRlcHMuanNvbiBzbyB0aGF0IGFsbCBwcm9qZW4gZGVwcyB3aWxsIGJlIHNldCB0byA5OTkuOTk5Ljk5OVxuICBjb25zdCBkZXBzUGF0aCA9IHBhdGguam9pbihkaXIsICcucHJvamVuJywgJ2RlcHMuanNvbicpO1xuICBjb25zdCBkZXBzID0gZnMucmVhZEpzb25TeW5jKGRlcHNQYXRoKTtcbiAgZm9yIChjb25zdCBkZXAgb2YgZGVwcy5kZXBlbmRlbmNpZXMpIHtcbiAgICBpZiAoZGVwLm5hbWUgPT09ICdwcm9qZW4nICYmIGRlcC52ZXJzaW9uKSB7XG4gICAgICBkZXAudmVyc2lvbiA9IGRlcC52ZXJzaW9uLnJlcGxhY2UoL1xcZCtcXC5cXGQrXFwuXFxkKy8sICc5OTkuOTk5Ljk5OScpO1xuICAgIH1cbiAgfVxuICBmcy5jaG1vZFN5bmMoZGVwc1BhdGgsICc3NzcnKTtcbiAgZnMud3JpdGVKc29uU3luYyhkZXBzUGF0aCwgZGVwcyk7XG59XG4iXX0=
package/lib/version.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Component } from './component';
2
2
  import { Project } from './project';
3
- import { Task } from './tasks';
3
+ import { Task } from './task';
4
4
  /**
5
5
  * (experimental) Options for `Version`.
6
6
  *
package/lib/version.js CHANGED
@@ -52,9 +52,9 @@ class Version extends component_1.Component {
52
52
  }
53
53
  exports.Version = Version;
54
54
  _a = JSII_RTTI_SYMBOL_1;
55
- Version[_a] = { fqn: "projen.Version", version: "0.36.8" };
55
+ Version[_a] = { fqn: "projen.Version", version: "0.37.0" };
56
56
  /**
57
57
  * @experimental
58
58
  */
59
59
  Version.STANDARD_VERSION = 'standard-version@^9';
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTZCO0FBQzdCLDJDQUF3Qzs7OztBQWdCeEMsTUFBYSxPQUFRLFNBQVEscUJBQVM7Ozs7SUFlcEMsWUFBWSxPQUFnQixFQUFFLE9BQXVCO1FBQ25ELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxjQUFjLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDO1FBRTNDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBRWxELDJFQUEyRTtRQUMzRSwwRUFBMEU7UUFDMUUsc0NBQXNDO1FBQ3RDLE1BQU0sdUJBQXVCLEdBQUcsb0RBQW9ELENBQUM7UUFFckYsTUFBTSxhQUFhLEdBQUcsWUFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckYsTUFBTSxRQUFRLEdBQUcsWUFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sY0FBYyxHQUFHLFlBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXZGLE1BQU0sR0FBRyxHQUFHO1lBQ1YsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixTQUFTLEVBQUUsYUFBYTtZQUN4QixRQUFRLEVBQUUsUUFBUTtZQUNsQixVQUFVLEVBQUUsY0FBYztZQUMxQiwrQ0FBK0M7WUFDL0MsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7U0FDM0QsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDdEMsV0FBVyxFQUFFLHVFQUF1RTtZQUNwRixTQUFTLEVBQUUsdUJBQXVCO1lBQ2xDLEdBQUcsRUFBRSxHQUFHO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQzFDLFdBQVcsRUFBRSwyQkFBMkI7WUFDeEMsR0FBRyxFQUFFLEdBQUc7U0FDVCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRWpELE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDOztBQTdESCwwQkE4REM7Ozs7OztBQTdEd0Isd0JBQWdCLEdBQUcscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb3NpeCB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4vcHJvamVjdCc7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi90YXNrcyc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdmVyc2lvbklucHV0RmlsZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhcnRpZmFjdHNEaXJlY3Rvcnk6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHZlcnNpb25yY09wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgY2xhc3MgVmVyc2lvbiBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1RBTkRBUkRfVkVSU0lPTiA9ICdzdGFuZGFyZC12ZXJzaW9uQF45JztcblxuICBwdWJsaWMgcmVhZG9ubHkgYnVtcFRhc2s6IFRhc2s7XG4gIHB1YmxpYyByZWFkb25seSB1bmJ1bXBUYXNrOiBUYXNrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlbG9nRmlsZU5hbWU6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uRmlsZU5hbWU6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgcmVsZWFzZVRhZ0ZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogVmVyc2lvbk9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuY2hhbmdlbG9nRmlsZU5hbWUgPSAnY2hhbmdlbG9nLm1kJztcbiAgICB0aGlzLnZlcnNpb25GaWxlTmFtZSA9ICd2ZXJzaW9uLnR4dCc7XG4gICAgdGhpcy5yZWxlYXNlVGFnRmlsZU5hbWUgPSAncmVsZWFzZXRhZy50eHQnO1xuXG4gICAgY29uc3QgdmVyc2lvbklucHV0RmlsZSA9IG9wdGlvbnMudmVyc2lvbklucHV0RmlsZTtcblxuICAgIC8vIHRoaXMgY29tbWFuZCBkZXRlcm1pbmVzIGlmIHRoZXJlIHdlcmUgYW55IGNoYW5nZXMgc2luY2UgdGhlIGxhc3QgcmVsZWFzZVxuICAgIC8vICh0aGUgdG9wLW1vc3QgY29tbWl0IGlzIG5vdCBhIGJ1bXApLiBpdCBpcyB1c2VkIGFzIGEgY29uZGl0aW9uIGZvciBib3RoXG4gICAgLy8gdGhlIGBidW1wYCBhbmQgdGhlIGByZWxlYXNlYCB0YXNrcy5cbiAgICBjb25zdCBjaGFuZ2VzU2luY2VMYXN0UmVsZWFzZSA9ICchIGdpdCBsb2cgLS1vbmVsaW5lIC0xIHwgZ3JlcCAtcSBcImNob3JlKHJlbGVhc2UpOlwiJztcblxuICAgIGNvbnN0IGNoYW5nZWxvZ0ZpbGUgPSBwb3NpeC5qb2luKG9wdGlvbnMuYXJ0aWZhY3RzRGlyZWN0b3J5LCB0aGlzLmNoYW5nZWxvZ0ZpbGVOYW1lKTtcbiAgICBjb25zdCBidW1wRmlsZSA9IHBvc2l4LmpvaW4ob3B0aW9ucy5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMudmVyc2lvbkZpbGVOYW1lKTtcbiAgICBjb25zdCByZWxlYXNlVGFnRmlsZSA9IHBvc2l4LmpvaW4ob3B0aW9ucy5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMucmVsZWFzZVRhZ0ZpbGVOYW1lKTtcblxuICAgIGNvbnN0IGVudiA9IHtcbiAgICAgIE9VVEZJTEU6IHZlcnNpb25JbnB1dEZpbGUsXG4gICAgICBDSEFOR0VMT0c6IGNoYW5nZWxvZ0ZpbGUsXG4gICAgICBCVU1QRklMRTogYnVtcEZpbGUsXG4gICAgICBSRUxFQVNFVEFHOiByZWxlYXNlVGFnRmlsZSxcbiAgICAgIC8vIGRvZXNuJ3Qgd29yayBpZiBjdXN0b20gY29uZmlndXJhdGlvbiBpcyBsb25nXG4gICAgICBWRVJTSU9OUkNPUFRJT05TOiBKU09OLnN0cmluZ2lmeShvcHRpb25zLnZlcnNpb25yY09wdGlvbnMpLFxuICAgIH07XG5cbiAgICB0aGlzLmJ1bXBUYXNrID0gcHJvamVjdC5hZGRUYXNrKCdidW1wJywge1xuICAgICAgZGVzY3JpcHRpb246ICdCdW1wcyB2ZXJzaW9uIGJhc2VkIG9uIGxhdGVzdCBnaXQgdGFnIGFuZCBnZW5lcmF0ZXMgYSBjaGFuZ2Vsb2cgZW50cnknLFxuICAgICAgY29uZGl0aW9uOiBjaGFuZ2VzU2luY2VMYXN0UmVsZWFzZSxcbiAgICAgIGVudjogZW52LFxuICAgIH0pO1xuXG4gICAgdGhpcy5idW1wVGFzay5idWlsdGluKCdyZWxlYXNlL2J1bXAtdmVyc2lvbicpO1xuXG4gICAgdGhpcy51bmJ1bXBUYXNrID0gcHJvamVjdC5hZGRUYXNrKCd1bmJ1bXAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1Jlc3RvcmVzIHZlcnNpb24gdG8gMC4wLjAnLFxuICAgICAgZW52OiBlbnYsXG4gICAgfSk7XG5cbiAgICB0aGlzLnVuYnVtcFRhc2suYnVpbHRpbigncmVsZWFzZS9yZXNldC12ZXJzaW9uJyk7XG5cbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZShgLyR7Y2hhbmdlbG9nRmlsZX1gKTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZShgLyR7YnVtcEZpbGV9YCk7XG4gICAgcHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKGAvJHtjaGFuZ2Vsb2dGaWxlfWApO1xuICAgIHByb2plY3QuYWRkUGFja2FnZUlnbm9yZShgLyR7YnVtcEZpbGV9YCk7XG4gIH1cbn1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTZCO0FBQzdCLDJDQUF3Qzs7OztBQWdCeEMsTUFBYSxPQUFRLFNBQVEscUJBQVM7Ozs7SUFlcEMsWUFBWSxPQUFnQixFQUFFLE9BQXVCO1FBQ25ELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxjQUFjLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDO1FBRTNDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBRWxELDJFQUEyRTtRQUMzRSwwRUFBMEU7UUFDMUUsc0NBQXNDO1FBQ3RDLE1BQU0sdUJBQXVCLEdBQUcsb0RBQW9ELENBQUM7UUFFckYsTUFBTSxhQUFhLEdBQUcsWUFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckYsTUFBTSxRQUFRLEdBQUcsWUFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sY0FBYyxHQUFHLFlBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXZGLE1BQU0sR0FBRyxHQUFHO1lBQ1YsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixTQUFTLEVBQUUsYUFBYTtZQUN4QixRQUFRLEVBQUUsUUFBUTtZQUNsQixVQUFVLEVBQUUsY0FBYztZQUMxQiwrQ0FBK0M7WUFDL0MsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7U0FDM0QsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDdEMsV0FBVyxFQUFFLHVFQUF1RTtZQUNwRixTQUFTLEVBQUUsdUJBQXVCO1lBQ2xDLEdBQUcsRUFBRSxHQUFHO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQzFDLFdBQVcsRUFBRSwyQkFBMkI7WUFDeEMsR0FBRyxFQUFFLEdBQUc7U0FDVCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRWpELE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDOztBQTdESCwwQkE4REM7Ozs7OztBQTdEd0Isd0JBQWdCLEdBQUcscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb3NpeCB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4vcHJvamVjdCc7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi90YXNrJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFZlcnNpb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB2ZXJzaW9uSW5wdXRGaWxlOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFydGlmYWN0c0RpcmVjdG9yeTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdmVyc2lvbnJjT3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBjbGFzcyBWZXJzaW9uIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVEFOREFSRF9WRVJTSU9OID0gJ3N0YW5kYXJkLXZlcnNpb25AXjknO1xuXG4gIHB1YmxpYyByZWFkb25seSBidW1wVGFzazogVGFzaztcbiAgcHVibGljIHJlYWRvbmx5IHVuYnVtcFRhc2s6IFRhc2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2Vsb2dGaWxlTmFtZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb25GaWxlTmFtZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSByZWxlYXNlVGFnRmlsZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBWZXJzaW9uT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5jaGFuZ2Vsb2dGaWxlTmFtZSA9ICdjaGFuZ2Vsb2cubWQnO1xuICAgIHRoaXMudmVyc2lvbkZpbGVOYW1lID0gJ3ZlcnNpb24udHh0JztcbiAgICB0aGlzLnJlbGVhc2VUYWdGaWxlTmFtZSA9ICdyZWxlYXNldGFnLnR4dCc7XG5cbiAgICBjb25zdCB2ZXJzaW9uSW5wdXRGaWxlID0gb3B0aW9ucy52ZXJzaW9uSW5wdXRGaWxlO1xuXG4gICAgLy8gdGhpcyBjb21tYW5kIGRldGVybWluZXMgaWYgdGhlcmUgd2VyZSBhbnkgY2hhbmdlcyBzaW5jZSB0aGUgbGFzdCByZWxlYXNlXG4gICAgLy8gKHRoZSB0b3AtbW9zdCBjb21taXQgaXMgbm90IGEgYnVtcCkuIGl0IGlzIHVzZWQgYXMgYSBjb25kaXRpb24gZm9yIGJvdGhcbiAgICAvLyB0aGUgYGJ1bXBgIGFuZCB0aGUgYHJlbGVhc2VgIHRhc2tzLlxuICAgIGNvbnN0IGNoYW5nZXNTaW5jZUxhc3RSZWxlYXNlID0gJyEgZ2l0IGxvZyAtLW9uZWxpbmUgLTEgfCBncmVwIC1xIFwiY2hvcmUocmVsZWFzZSk6XCInO1xuXG4gICAgY29uc3QgY2hhbmdlbG9nRmlsZSA9IHBvc2l4LmpvaW4ob3B0aW9ucy5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMuY2hhbmdlbG9nRmlsZU5hbWUpO1xuICAgIGNvbnN0IGJ1bXBGaWxlID0gcG9zaXguam9pbihvcHRpb25zLmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy52ZXJzaW9uRmlsZU5hbWUpO1xuICAgIGNvbnN0IHJlbGVhc2VUYWdGaWxlID0gcG9zaXguam9pbihvcHRpb25zLmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy5yZWxlYXNlVGFnRmlsZU5hbWUpO1xuXG4gICAgY29uc3QgZW52ID0ge1xuICAgICAgT1VURklMRTogdmVyc2lvbklucHV0RmlsZSxcbiAgICAgIENIQU5HRUxPRzogY2hhbmdlbG9nRmlsZSxcbiAgICAgIEJVTVBGSUxFOiBidW1wRmlsZSxcbiAgICAgIFJFTEVBU0VUQUc6IHJlbGVhc2VUYWdGaWxlLFxuICAgICAgLy8gZG9lc24ndCB3b3JrIGlmIGN1c3RvbSBjb25maWd1cmF0aW9uIGlzIGxvbmdcbiAgICAgIFZFUlNJT05SQ09QVElPTlM6IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMudmVyc2lvbnJjT3B0aW9ucyksXG4gICAgfTtcblxuICAgIHRoaXMuYnVtcFRhc2sgPSBwcm9qZWN0LmFkZFRhc2soJ2J1bXAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0J1bXBzIHZlcnNpb24gYmFzZWQgb24gbGF0ZXN0IGdpdCB0YWcgYW5kIGdlbmVyYXRlcyBhIGNoYW5nZWxvZyBlbnRyeScsXG4gICAgICBjb25kaXRpb246IGNoYW5nZXNTaW5jZUxhc3RSZWxlYXNlLFxuICAgICAgZW52OiBlbnYsXG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1bXBUYXNrLmJ1aWx0aW4oJ3JlbGVhc2UvYnVtcC12ZXJzaW9uJyk7XG5cbiAgICB0aGlzLnVuYnVtcFRhc2sgPSBwcm9qZWN0LmFkZFRhc2soJ3VuYnVtcCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUmVzdG9yZXMgdmVyc2lvbiB0byAwLjAuMCcsXG4gICAgICBlbnY6IGVudixcbiAgICB9KTtcblxuICAgIHRoaXMudW5idW1wVGFzay5idWlsdGluKCdyZWxlYXNlL3Jlc2V0LXZlcnNpb24nKTtcblxuICAgIHByb2plY3QuYWRkR2l0SWdub3JlKGAvJHtjaGFuZ2Vsb2dGaWxlfWApO1xuICAgIHByb2plY3QuYWRkR2l0SWdub3JlKGAvJHtidW1wRmlsZX1gKTtcbiAgICBwcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke2NoYW5nZWxvZ0ZpbGV9YCk7XG4gICAgcHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKGAvJHtidW1wRmlsZX1gKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { Component } from '../component';
2
2
  import { DevEnvironmentDockerImage, DevEnvironmentOptions, IDevEnvironment } from '../dev-env';
3
3
  import { Project } from '../project';
4
- import { Task } from '../tasks';
4
+ import { Task } from '../task';
5
5
  /**
6
6
  * (experimental) Constructor options for the DevContainer component.
7
7
  *
@@ -100,5 +100,5 @@ class DevContainer extends component_1.Component {
100
100
  }
101
101
  exports.DevContainer = DevContainer;
102
102
  _a = JSII_RTTI_SYMBOL_1;
103
- DevContainer[_a] = { fqn: "projen.vscode.DevContainer", version: "0.36.8" };
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2Y29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZzY29kZS9kZXZjb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBeUM7QUFFekMsa0NBQW1DO0FBSW5DOztJQUVJO0FBQ0osTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQzs7Ozs7Ozs7O0FBTS9DLE1BQWEsWUFBYSxTQUFRLHFCQUFTOzs7O0lBU3pDLFlBQVksT0FBZ0IsRUFBRSxVQUErQixFQUFFO1FBQzdELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxLQUFLLEVBQVEsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxDQUFDO1FBRXhDLElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssRUFBRTtZQUNsQixLQUFLLE1BQU0sSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckI7U0FDRjtRQUNELElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZ0JBQWdCLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osS0FBSyxFQUFFLEdBQUcsRUFBRSx3QkFBQyxJQUFJLENBQUMsV0FBVywwQ0FBRSxLQUFLLEdBQUE7WUFDcEMsS0FBSyxFQUFFO2dCQUNMLFVBQVUsRUFBRSxHQUFHLEVBQUUsd0JBQUMsSUFBSSxDQUFDLFdBQVcsMENBQUUsVUFBVSxHQUFBO2FBQy9DO1lBQ0QsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMzQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDeEIsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDbEMsQ0FBQztRQUVGLElBQUksZUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RixDQUFDOzs7Ozs7SUFFTSxjQUFjLENBQUMsS0FBZ0M7UUFDcEQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNyRDtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7Ozs7Ozs7OztJQUdNLFFBQVEsQ0FBQyxHQUFHLEtBQWE7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7Ozs7O0lBR00sUUFBUSxDQUFDLEdBQUcsS0FBZTtRQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7Ozs7SUFHTSxtQkFBbUIsQ0FBQyxHQUFHLFVBQW9CO1FBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNyQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNyRjthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDOztBQXZFSCxvQ0F3RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV2RW52aXJvbm1lbnREb2NrZXJJbWFnZSwgRGV2RW52aXJvbm1lbnRPcHRpb25zLCBJRGV2RW52aXJvbm1lbnQgfSBmcm9tICcuLi9kZXYtZW52JztcbmltcG9ydCB7IEpzb25GaWxlIH0gZnJvbSAnLi4vanNvbic7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vcHJvamVjdCc7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdGFza3MnO1xuXG4vKipcbiAgKiBSZWxhdGl2ZSBwYXRoIG9mIGRldmNvbnRhaW5lciBmaWxlIHRvIGdlbmVyYXRlXG4gICovXG5jb25zdCBERVZDT05UQUlORVJfRklMRSA9ICcuZGV2Y29udGFpbmVyLmpzb24nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBEZXZDb250YWluZXJPcHRpb25zIGV4dGVuZHMgRGV2RW52aXJvbm1lbnRPcHRpb25zIHt9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBEZXZDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnQgaW1wbGVtZW50cyBJRGV2RW52aXJvbm1lbnQge1xuICBwcml2YXRlIGRvY2tlckltYWdlOiBEZXZFbnZpcm9ubWVudERvY2tlckltYWdlIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IHBvc3RDcmVhdGVUYXNrczogVGFza1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHBvcnRzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSB2c2NvZGVFeHRlbnNpb25zOiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogRGV2Q29udGFpbmVyT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLnBvc3RDcmVhdGVUYXNrcyA9IG5ldyBBcnJheTxUYXNrPigpO1xuICAgIHRoaXMucG9ydHMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIHRoaXMudnNjb2RlRXh0ZW5zaW9ucyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICB0aGlzLmRvY2tlckltYWdlID0gb3B0aW9ucz8uZG9ja2VySW1hZ2U7XG5cbiAgICBpZiAob3B0aW9ucz8udGFza3MpIHtcbiAgICAgIGZvciAoY29uc3QgdGFzayBvZiBvcHRpb25zLnRhc2tzKSB7XG4gICAgICAgIHRoaXMuYWRkVGFza3ModGFzayk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvcHRpb25zPy5wb3J0cykge1xuICAgICAgdGhpcy5hZGRQb3J0cyguLi5vcHRpb25zLnBvcnRzKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnM/LnZzY29kZUV4dGVuc2lvbnMpIHtcbiAgICAgIHRoaXMuYWRkVnNjb2RlRXh0ZW5zaW9ucyguLi5vcHRpb25zLnZzY29kZUV4dGVuc2lvbnMpO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgaW1hZ2U6ICgpID0+IHRoaXMuZG9ja2VySW1hZ2U/LmltYWdlLFxuICAgICAgYnVpbGQ6IHtcbiAgICAgICAgZG9ja2VyZmlsZTogKCkgPT4gdGhpcy5kb2NrZXJJbWFnZT8uZG9ja2VyRmlsZSxcbiAgICAgIH0sXG4gICAgICBwb3N0Q3JlYXRlQ29tbWFuZDogKCkgPT4gdGhpcy5yZW5kZXJUYXNrcygpLFxuICAgICAgZm9yd2FyZFBvcnRzOiB0aGlzLnBvcnRzLFxuICAgICAgZXh0ZW5zaW9uczogdGhpcy52c2NvZGVFeHRlbnNpb25zLFxuICAgIH07XG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcy5wcm9qZWN0LCBERVZDT05UQUlORVJfRklMRSwgeyBvYmo6IHRoaXMuY29uZmlnLCBvbWl0RW1wdHk6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkRG9ja2VySW1hZ2UoaW1hZ2U6IERldkVudmlyb25tZW50RG9ja2VySW1hZ2UpIHtcbiAgICBpZiAodGhpcy5kb2NrZXJJbWFnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkb2NrZXJJbWFnZSBjYW5ub3QgYmUgcmVkZWZpbmVkLicpO1xuICAgIH1cbiAgICB0aGlzLmRvY2tlckltYWdlID0gaW1hZ2U7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGRUYXNrcyguLi50YXNrczogVGFza1tdKSB7XG4gICAgdGhpcy5wb3N0Q3JlYXRlVGFza3MucHVzaCguLi50YXNrcyk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZFBvcnRzKC4uLnBvcnRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMucG9ydHMucHVzaCguLi5wb3J0cyk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkVnNjb2RlRXh0ZW5zaW9ucyguLi5leHRlbnNpb25zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudnNjb2RlRXh0ZW5zaW9ucy5wdXNoKC4uLmV4dGVuc2lvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJUYXNrcygpIHtcbiAgICBpZiAodGhpcy5wb3N0Q3JlYXRlVGFza3MubGVuZ3RoICE9PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5wb3N0Q3JlYXRlVGFza3MubWFwKHRhc2sgPT4gYCggbnB4IHByb2plbiAke3Rhc2submFtZX0gKWApLmpvaW4oJyAmJiAnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
103
+ DevContainer[_a] = { fqn: "projen.vscode.DevContainer", version: "0.37.0" };
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2Y29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZzY29kZS9kZXZjb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBeUM7QUFFekMsa0NBQW1DO0FBSW5DOztJQUVJO0FBQ0osTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQzs7Ozs7Ozs7O0FBTS9DLE1BQWEsWUFBYSxTQUFRLHFCQUFTOzs7O0lBU3pDLFlBQVksT0FBZ0IsRUFBRSxVQUErQixFQUFFO1FBQzdELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxLQUFLLEVBQVEsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxDQUFDO1FBRXhDLElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssRUFBRTtZQUNsQixLQUFLLE1BQU0sSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckI7U0FDRjtRQUNELElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZ0JBQWdCLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osS0FBSyxFQUFFLEdBQUcsRUFBRSx3QkFBQyxJQUFJLENBQUMsV0FBVywwQ0FBRSxLQUFLLEdBQUE7WUFDcEMsS0FBSyxFQUFFO2dCQUNMLFVBQVUsRUFBRSxHQUFHLEVBQUUsd0JBQUMsSUFBSSxDQUFDLFdBQVcsMENBQUUsVUFBVSxHQUFBO2FBQy9DO1lBQ0QsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMzQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDeEIsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDbEMsQ0FBQztRQUVGLElBQUksZUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RixDQUFDOzs7Ozs7SUFFTSxjQUFjLENBQUMsS0FBZ0M7UUFDcEQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNyRDtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7Ozs7Ozs7OztJQUdNLFFBQVEsQ0FBQyxHQUFHLEtBQWE7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7Ozs7O0lBR00sUUFBUSxDQUFDLEdBQUcsS0FBZTtRQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7Ozs7SUFHTSxtQkFBbUIsQ0FBQyxHQUFHLFVBQW9CO1FBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNyQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNyRjthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDOztBQXZFSCxvQ0F3RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV2RW52aXJvbm1lbnREb2NrZXJJbWFnZSwgRGV2RW52aXJvbm1lbnRPcHRpb25zLCBJRGV2RW52aXJvbm1lbnQgfSBmcm9tICcuLi9kZXYtZW52JztcbmltcG9ydCB7IEpzb25GaWxlIH0gZnJvbSAnLi4vanNvbic7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vcHJvamVjdCc7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdGFzayc7XG5cbi8qKlxuICAqIFJlbGF0aXZlIHBhdGggb2YgZGV2Y29udGFpbmVyIGZpbGUgdG8gZ2VuZXJhdGVcbiAgKi9cbmNvbnN0IERFVkNPTlRBSU5FUl9GSUxFID0gJy5kZXZjb250YWluZXIuanNvbic7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIERldkNvbnRhaW5lck9wdGlvbnMgZXh0ZW5kcyBEZXZFbnZpcm9ubWVudE9wdGlvbnMge31cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIERldkNvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudCBpbXBsZW1lbnRzIElEZXZFbnZpcm9ubWVudCB7XG4gIHByaXZhdGUgZG9ja2VySW1hZ2U6IERldkVudmlyb25tZW50RG9ja2VySW1hZ2UgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgcG9zdENyZWF0ZVRhc2tzOiBUYXNrW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcG9ydHM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHZzY29kZUV4dGVuc2lvbnM6IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjb25maWc6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBEZXZDb250YWluZXJPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMucG9zdENyZWF0ZVRhc2tzID0gbmV3IEFycmF5PFRhc2s+KCk7XG4gICAgdGhpcy5wb3J0cyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgdGhpcy52c2NvZGVFeHRlbnNpb25zID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIHRoaXMuZG9ja2VySW1hZ2UgPSBvcHRpb25zPy5kb2NrZXJJbWFnZTtcblxuICAgIGlmIChvcHRpb25zPy50YXNrcykge1xuICAgICAgZm9yIChjb25zdCB0YXNrIG9mIG9wdGlvbnMudGFza3MpIHtcbiAgICAgICAgdGhpcy5hZGRUYXNrcyh0YXNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG9wdGlvbnM/LnBvcnRzKSB7XG4gICAgICB0aGlzLmFkZFBvcnRzKC4uLm9wdGlvbnMucG9ydHMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucz8udnNjb2RlRXh0ZW5zaW9ucykge1xuICAgICAgdGhpcy5hZGRWc2NvZGVFeHRlbnNpb25zKC4uLm9wdGlvbnMudnNjb2RlRXh0ZW5zaW9ucyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBpbWFnZTogKCkgPT4gdGhpcy5kb2NrZXJJbWFnZT8uaW1hZ2UsXG4gICAgICBidWlsZDoge1xuICAgICAgICBkb2NrZXJmaWxlOiAoKSA9PiB0aGlzLmRvY2tlckltYWdlPy5kb2NrZXJGaWxlLFxuICAgICAgfSxcbiAgICAgIHBvc3RDcmVhdGVDb21tYW5kOiAoKSA9PiB0aGlzLnJlbmRlclRhc2tzKCksXG4gICAgICBmb3J3YXJkUG9ydHM6IHRoaXMucG9ydHMsXG4gICAgICBleHRlbnNpb25zOiB0aGlzLnZzY29kZUV4dGVuc2lvbnMsXG4gICAgfTtcblxuICAgIG5ldyBKc29uRmlsZSh0aGlzLnByb2plY3QsIERFVkNPTlRBSU5FUl9GSUxFLCB7IG9iajogdGhpcy5jb25maWcsIG9taXRFbXB0eTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGREb2NrZXJJbWFnZShpbWFnZTogRGV2RW52aXJvbm1lbnREb2NrZXJJbWFnZSkge1xuICAgIGlmICh0aGlzLmRvY2tlckltYWdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2RvY2tlckltYWdlIGNhbm5vdCBiZSByZWRlZmluZWQuJyk7XG4gICAgfVxuICAgIHRoaXMuZG9ja2VySW1hZ2UgPSBpbWFnZTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZFRhc2tzKC4uLnRhc2tzOiBUYXNrW10pIHtcbiAgICB0aGlzLnBvc3RDcmVhdGVUYXNrcy5wdXNoKC4uLnRhc2tzKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkUG9ydHMoLi4ucG9ydHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5wb3J0cy5wdXNoKC4uLnBvcnRzKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGRWc2NvZGVFeHRlbnNpb25zKC4uLmV4dGVuc2lvbnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy52c2NvZGVFeHRlbnNpb25zLnB1c2goLi4uZXh0ZW5zaW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclRhc2tzKCkge1xuICAgIGlmICh0aGlzLnBvc3RDcmVhdGVUYXNrcy5sZW5ndGggIT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLnBvc3RDcmVhdGVUYXNrcy5tYXAodGFzayA9PiBgKCBucHggcHJvamVuICR7dGFzay5uYW1lfSApYCkuam9pbignICYmICcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -47,5 +47,5 @@ class VsCodeLaunchConfig extends component_1.Component {
47
47
  }
48
48
  exports.VsCodeLaunchConfig = VsCodeLaunchConfig;
49
49
  _a = JSII_RTTI_SYMBOL_1;
50
- VsCodeLaunchConfig[_a] = { fqn: "projen.vscode.VsCodeLaunchConfig", version: "0.36.8" };
50
+ VsCodeLaunchConfig[_a] = { fqn: "projen.vscode.VsCodeLaunchConfig", version: "0.37.0" };
51
51
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92c2NvZGUvbGF1bmNoLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUF5QztBQUN6QyxrQ0FBbUM7Ozs7OztBQUluQyxJQUFZLHNCQUlYO0FBSkQsV0FBWSxzQkFBc0I7SUFDaEMsa0RBQXdCLENBQUE7SUFDeEIsaUZBQXVELENBQUE7SUFDdkQsc0VBQTRDLENBQUE7QUFDOUMsQ0FBQyxFQUpXLHNCQUFzQixHQUF0Qiw4QkFBc0IsS0FBdEIsOEJBQXNCLFFBSWpDOzs7Ozs7QUFvQ0QsTUFBYSxrQkFBbUIsU0FBUSxxQkFBUzs7OztJQUcvQyxZQUFZLE1BQWM7UUFDeEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsT0FBTyxFQUFFLE9BQU87WUFDaEIsY0FBYyxFQUFFLEVBQUU7U0FDbkIsQ0FBQztRQUVGLElBQUksZUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUU7WUFDbEQsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7Ozs7SUFHTSxnQkFBZ0IsQ0FBQyxHQUFtQztRQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7QUFuQkgsZ0RBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IEpzb25GaWxlIH0gZnJvbSAnLi4vanNvbic7XG5pbXBvcnQgeyBWc0NvZGUgfSBmcm9tICcuL3ZzY29kZSc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBlbnVtIEludGVybmFsQ29uc29sZU9wdGlvbnMge1xuICBORVZFUl9PUEVOID0gJ25ldmVyT3BlbicsXG4gIE9QRU5fT05fRklSU1RfU0VTU0lPTl9TVEFSVCA9ICdvcGVuT25GaXJzdFNlc3Npb25TdGFydCcsXG4gIE9QRU5fT05fU0VTU0lPTl9TVEFSVCA9ICdvcGVuT25TZXNzaW9uU3RhcnQnLFxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFByZXNlbnRhdGlvbiB7XG4gIHJlYWRvbmx5IGhpZGRlbjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZ3JvdXA6IHN0cmluZztcbiAgcmVhZG9ubHkgb3JkZXI6IG51bWJlcjtcbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJSZWFkeUFjdGlvbiB7XG4gIHJlYWRvbmx5IGFjdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBwYXR0ZXJuPzogc3RyaW5nO1xuICByZWFkb25seSB1cmlGb3JtYXQ/OiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFZzQ29kZUxhdW5jaENvbmZpZ3VyYXRpb25FbnRyeSB7XG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdDogc3RyaW5nO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFyZ3M/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZGVidWdTZXJ2ZXI/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGludGVybmFsQ29uc29sZU9wdGlvbnM/OiBJbnRlcm5hbENvbnNvbGVPcHRpb25zO1xuICByZWFkb25seSBydW50aW1lQXJncz86IHN0cmluZ1tdO1xuICByZWFkb25seSBwb3N0RGVidWdUYXNrPzogc3RyaW5nO1xuICByZWFkb25seSBwcmVMYXVuY2hUYXNrPzogc3RyaW5nO1xuICByZWFkb25seSBwcmVzZW50YXRpb24/OiBQcmVzZW50YXRpb247XG4gIHJlYWRvbmx5IHByb2dyYW0/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlcnZlclJlYWR5QWN0aW9uPzogU2VydmVyUmVhZHlBY3Rpb247XG4gIHJlYWRvbmx5IHNraXBGaWxlcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBvdXRGaWxlcz86IHN0cmluZ1tdO1xuICByZWFkb25seSB1cmw/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdlYlJvb3Q/OiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBWc0NvZGVMYXVuY2hDb25maWcgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnQ6IFZzQ29kZUxhdW5jaENvbmZpZ3VyYXRpb247XG5cbiAgY29uc3RydWN0b3IodnNjb2RlOiBWc0NvZGUpIHtcbiAgICBzdXBlcih2c2NvZGUucHJvamVjdCk7XG5cbiAgICB0aGlzLmNvbnRlbnQgPSB7XG4gICAgICB2ZXJzaW9uOiAnMC4yLjAnLFxuICAgICAgY29uZmlndXJhdGlvbnM6IFtdLFxuICAgIH07XG5cbiAgICBuZXcgSnNvbkZpbGUodnNjb2RlLnByb2plY3QsICcudnNjb2RlL2xhdW5jaC5qc29uJywge1xuICAgICAgb2JqOiB0aGlzLmNvbnRlbnQsXG4gICAgfSk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZENvbmZpZ3VyYXRpb24oY2ZnOiBWc0NvZGVMYXVuY2hDb25maWd1cmF0aW9uRW50cnkpIHtcbiAgICB0aGlzLmNvbnRlbnQuY29uZmlndXJhdGlvbnMucHVzaChjZmcpO1xuICB9XG59XG5cbmludGVyZmFjZSBWc0NvZGVMYXVuY2hDb25maWd1cmF0aW9uIHtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBjb25maWd1cmF0aW9uczogVnNDb2RlTGF1bmNoQ29uZmlndXJhdGlvbkVudHJ5W107XG59XG4iXX0=
@@ -27,5 +27,5 @@ class VsCode extends component_1.Component {
27
27
  }
28
28
  exports.VsCode = VsCode;
29
29
  _a = JSII_RTTI_SYMBOL_1;
30
- VsCode[_a] = { fqn: "projen.vscode.VsCode", version: "0.36.8" };
30
+ VsCode[_a] = { fqn: "projen.vscode.VsCode", version: "0.37.0" };
31
31
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnNjb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZzY29kZS92c2NvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBeUM7QUFFekMsbURBQXFEOzs7O0FBRXJELE1BQWEsTUFBTyxTQUFRLHFCQUFTOzs7O0lBR25DLFlBQVksT0FBZ0I7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Ozs7SUFFRCxJQUFXLG1CQUFtQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksa0NBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7QUFiSCx3QkFjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vcHJvamVjdCc7XG5pbXBvcnQgeyBWc0NvZGVMYXVuY2hDb25maWcgfSBmcm9tICcuL2xhdW5jaC1jb25maWcnO1xuXG5leHBvcnQgY2xhc3MgVnNDb2RlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBfbGF1bmNoQ29uZmlnPzogVnNDb2RlTGF1bmNoQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGF1bmNoQ29uZmlndXJhdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuX2xhdW5jaENvbmZpZykge1xuICAgICAgdGhpcy5fbGF1bmNoQ29uZmlnID0gbmV3IFZzQ29kZUxhdW5jaENvbmZpZyh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbGF1bmNoQ29uZmlnO1xuICB9XG59XG4iXX0=
package/lib/web/next.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Component } from '../component';
2
- import { NodeProject, NodeProjectOptions } from '../node-project';
2
+ import { NodeProject, NodeProjectOptions } from '../javascript';
3
3
  import { TypeScriptAppProject, TypeScriptProjectOptions } from '../typescript';
4
4
  /**
5
5
  * @experimental
package/lib/web/next.js CHANGED
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.NextComponent = exports.NextJsTypeScriptProject = exports.NextJsProject = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const component_1 = require("../component");
7
- const node_project_1 = require("../node-project");
7
+ const javascript_1 = require("../javascript");
8
8
  const sample_file_1 = require("../sample-file");
9
9
  const typescript_1 = require("../typescript");
10
- const typescript_config_1 = require("../typescript-config");
11
10
  const util_1 = require("../util");
12
11
  const postcss_1 = require("./postcss");
13
12
  /**
@@ -16,7 +15,7 @@ const postcss_1 = require("./postcss");
16
15
  * @experimental
17
16
  * @pjid nextjs
18
17
  */
19
- class NextJsProject extends node_project_1.NodeProject {
18
+ class NextJsProject extends javascript_1.NodeProject {
20
19
  /**
21
20
  * @experimental
22
21
  */
@@ -44,7 +43,7 @@ class NextJsProject extends node_project_1.NodeProject {
44
43
  }
45
44
  exports.NextJsProject = NextJsProject;
46
45
  _a = JSII_RTTI_SYMBOL_1;
47
- NextJsProject[_a] = { fqn: "projen.web.NextJsProject", version: "0.36.8" };
46
+ NextJsProject[_a] = { fqn: "projen.web.NextJsProject", version: "0.37.0" };
48
47
  /**
49
48
  * (experimental) Next.js project with TypeScript.
50
49
  *
@@ -68,10 +67,10 @@ class NextJsTypeScriptProject extends typescript_1.TypeScriptAppProject {
68
67
  // required by Next.js
69
68
  esModuleInterop: true,
70
69
  module: 'esnext',
71
- moduleResolution: typescript_config_1.TypeScriptModuleResolution.NODE,
70
+ moduleResolution: javascript_1.TypeScriptModuleResolution.NODE,
72
71
  isolatedModules: true,
73
72
  resolveJsonModule: true,
74
- jsx: typescript_config_1.TypeScriptJsxMode.PRESERVE,
73
+ jsx: javascript_1.TypeScriptJsxMode.PRESERVE,
75
74
  // recommended by Next.js
76
75
  allowJs: true,
77
76
  skipLibCheck: true,
@@ -106,7 +105,7 @@ class NextJsTypeScriptProject extends typescript_1.TypeScriptAppProject {
106
105
  }
107
106
  exports.NextJsTypeScriptProject = NextJsTypeScriptProject;
108
107
  _b = JSII_RTTI_SYMBOL_1;
109
- NextJsTypeScriptProject[_b] = { fqn: "projen.web.NextJsTypeScriptProject", version: "0.36.8" };
108
+ NextJsTypeScriptProject[_b] = { fqn: "projen.web.NextJsTypeScriptProject", version: "0.37.0" };
110
109
  /**
111
110
  * @experimental
112
111
  */
@@ -150,7 +149,7 @@ class NextComponent extends component_1.Component {
150
149
  }
151
150
  exports.NextComponent = NextComponent;
152
151
  _c = JSII_RTTI_SYMBOL_1;
153
- NextComponent[_c] = { fqn: "projen.web.NextComponent", version: "0.36.8" };
152
+ NextComponent[_c] = { fqn: "projen.web.NextComponent", version: "0.37.0" };
154
153
  class NextSampleCode extends component_1.Component {
155
154
  constructor(project, options) {
156
155
  var _d;
@@ -401,4 +400,4 @@ class NextSampleCode extends component_1.Component {
401
400
  });
402
401
  }
403
402
  }
404
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93ZWIvbmV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUF5QztBQUN6QyxrREFBa0U7QUFDbEUsZ0RBQXVEO0FBQ3ZELDhDQUErRTtBQUMvRSw0REFBcUY7QUFDckYsa0NBQW9DO0FBQ3BDLHVDQUFvQzs7Ozs7OztBQXFCcEMsTUFBYSxhQUFjLFNBQVEsMEJBQVc7Ozs7SUFVNUMsWUFBWSxPQUE2Qjs7UUFDdkMsS0FBSyxDQUFDO1lBQ0osSUFBSSxFQUFFLEtBQUs7WUFDWCxjQUFjLEVBQUUsU0FBUztZQUN6QixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxTQUFHLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLE9BQU8sQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxTQUFHLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLFFBQVEsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxTQUFHLE9BQU8sQ0FBQyxRQUFRLG1DQUFJLElBQUksQ0FBQztRQUV6QyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUV4RSwrRkFBK0Y7UUFDL0YsVUFBSSxPQUFPLENBQUMsVUFBVSxtQ0FBSSxJQUFJLEVBQUU7WUFDOUIsSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFO2dCQUN2QixPQUFPLEVBQUUsSUFBSTtnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3hCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7QUFoQ0gsc0NBaUNDOzs7Ozs7Ozs7QUFHRCxNQUFhLHVCQUF3QixTQUFRLGlDQUFvQjs7OztJQVUv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LEVBQUU7Z0JBQ0wsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQzlDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSx1QkFBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3JDLEtBQUssRUFBRTtnQkFDTCxZQUFZLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDbkM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLHdCQUFVLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRTtZQUN2QyxRQUFRLEVBQUU7Z0JBQ1IsZ0NBQWdDO2dCQUNoQyw2Q0FBNkM7Z0JBQzdDLG1EQUFtRDtnQkFDbkQseUNBQXlDO2dCQUN6QyxnRkFBZ0Y7Z0JBQ2hGLEVBQUU7YUFDSCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9kZVByb2plY3QsIE5vZGVQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4uL25vZGUtcHJvamVjdCc7XG5pbXBvcnQgeyBTYW1wbGVEaXIsIFNhbXBsZUZpbGUgfSBmcm9tICcuLi9zYW1wbGUtZmlsZSc7XG5pbXBvcnQgeyBUeXBlU2NyaXB0QXBwUHJvamVjdCwgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBUeXBlU2NyaXB0SnN4TW9kZSwgVHlwZVNjcmlwdE1vZHVsZVJlc29sdXRpb24gfSBmcm9tICcuLi90eXBlc2NyaXB0LWNvbmZpZyc7XG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IFBvc3RDc3MgfSBmcm9tICcuL3Bvc3Rjc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRKc0NvbW1vblByb2plY3RPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXNzZXRzZGlyPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0YWlsd2luZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dEpzVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIGV4dGVuZHMgTmV4dEpzQ29tbW9uUHJvamVjdE9wdGlvbnMsIFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyB7IH1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0SnNQcm9qZWN0T3B0aW9ucyBleHRlbmRzIE5leHRKc0NvbW1vblByb2plY3RPcHRpb25zLCBOb2RlUHJvamVjdE9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc3JjZGlyPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNhbXBsZUNvZGU/OiBib29sZWFuO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIE5leHRKc1Byb2plY3QgZXh0ZW5kcyBOb2RlUHJvamVjdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHNyY2Rpcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBhc3NldHNkaXI6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgdGFpbHdpbmQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTmV4dEpzUHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICBqZXN0OiBmYWxzZSxcbiAgICAgIG1pbk5vZGVWZXJzaW9uOiAnMTIuMTMuMCcsIC8vIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaW5zdGFsbGF0aW9uXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zcmNkaXIgPSBvcHRpb25zLnNyY2RpciA/PyAncGFnZXMnO1xuICAgIHRoaXMuYXNzZXRzZGlyID0gb3B0aW9ucy5hc3NldHNkaXIgPz8gJ3B1YmxpYyc7XG4gICAgdGhpcy50YWlsd2luZCA9IG9wdGlvbnMudGFpbHdpbmQgPz8gdHJ1ZTtcblxuICAgIG5ldyBOZXh0Q29tcG9uZW50KHRoaXMsIHsgdHlwZXNjcmlwdDogZmFsc2UsIHRhaWx3aW5kOiB0aGlzLnRhaWx3aW5kIH0pO1xuXG4gICAgLy8gZ2VuZXJhdGUgc2FtcGxlIGNvZGUgaW4gYHBhZ2VzYCBhbmQgYHB1YmxpY2AgaWYgdGhlc2UgZGlyZWN0b3JpZXMgYXJlIGVtcHR5IG9yIG5vbi1leGlzdGVudC5cbiAgICBpZiAob3B0aW9ucy5zYW1wbGVDb2RlID8/IHRydWUpIHtcbiAgICAgIG5ldyBOZXh0U2FtcGxlQ29kZSh0aGlzLCB7XG4gICAgICAgIGZpbGVFeHQ6ICdqcycsXG4gICAgICAgIHNyY2RpcjogdGhpcy5zcmNkaXIsXG4gICAgICAgIGFzc2V0c2RpcjogdGhpcy5hc3NldHNkaXIsXG4gICAgICAgIHRhaWx3aW5kOiB0aGlzLnRhaWx3aW5kLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgTmV4dEpzVHlwZVNjcmlwdFByb2plY3QgZXh0ZW5kcyBUeXBlU2NyaXB0QXBwUHJvamVjdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHNyY2Rpcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBhc3NldHNkaXI6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgdGFpbHdpbmQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTmV4dEpzVHlwZVNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgICBzcmNkaXI6ICdwYWdlcycsXG4gICAgICBlc2xpbnQ6IGZhbHNlLFxuICAgICAgbWluTm9kZVZlcnNpb246ICcxMi4xMy4wJywgLy8gaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9pbnN0YWxsYXRpb25cbiAgICAgIGplc3Q6IGZhbHNlLFxuICAgICAgdHNjb25maWc6IHtcbiAgICAgICAgaW5jbHVkZTogWycqKi8qLnRzJywgJyoqLyoudHN4J10sXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIC8vIHJlcXVpcmVkIGJ5IE5leHQuanNcbiAgICAgICAgICBlc01vZHVsZUludGVyb3A6IHRydWUsXG4gICAgICAgICAgbW9kdWxlOiAnZXNuZXh0JyxcbiAgICAgICAgICBtb2R1bGVSZXNvbHV0aW9uOiBUeXBlU2NyaXB0TW9kdWxlUmVzb2x1dGlvbi5OT0RFLFxuICAgICAgICAgIGlzb2xhdGVkTW9kdWxlczogdHJ1ZSxcbiAgICAgICAgICByZXNvbHZlSnNvbk1vZHVsZTogdHJ1ZSxcbiAgICAgICAgICBqc3g6IFR5cGVTY3JpcHRKc3hNb2RlLlBSRVNFUlZFLFxuXG4gICAgICAgICAgLy8gcmVjb21tZW5kZWQgYnkgTmV4dC5qc1xuICAgICAgICAgIGFsbG93SnM6IHRydWUsXG4gICAgICAgICAgc2tpcExpYkNoZWNrOiB0cnVlLFxuICAgICAgICAgIGZvcmNlQ29uc2lzdGVudENhc2luZ0luRmlsZU5hbWVzOiB0cnVlLFxuICAgICAgICAgIG5vRW1pdDogdHJ1ZSxcbiAgICAgICAgICBsaWI6IFsnZG9tJywgJ2RvbS5pdGVyYWJsZScsICdlc25leHQnXSxcbiAgICAgICAgICBzdHJpY3Q6IGZhbHNlLFxuICAgICAgICAgIHRhcmdldDogJ2VzNScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBuZXZlciBnZW5lcmF0ZSBkZWZhdWx0IFR5cGVTY3JpcHQgc2FtcGxlIGNvZGUsIHNpbmNlIHRoaXMgY2xhc3MgcHJvdmlkZXMgaXRzIG93blxuICAgIHN1cGVyKGRlZXBNZXJnZShbZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMsIHsgc2FtcGxlQ29kZTogZmFsc2UgfV0pIGFzIFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyk7XG5cbiAgICB0aGlzLnNyY2RpciA9IG9wdGlvbnMuc3JjZGlyID8/ICdwYWdlcyc7XG4gICAgdGhpcy5hc3NldHNkaXIgPSBvcHRpb25zLmFzc2V0c2RpciA/PyAncHVibGljJztcbiAgICB0aGlzLnRhaWx3aW5kID0gb3B0aW9ucy50YWlsd2luZCA/PyB0cnVlO1xuXG4gICAgbmV3IE5leHRDb21wb25lbnQodGhpcywgeyB0eXBlc2NyaXB0OiB0cnVlLCB0YWlsd2luZDogdGhpcy50YWlsd2luZCB9KTtcblxuICAgIC8vICduZXh0IGJ1aWxkJyBjb21tYW5kIGZhaWxzIGlmIHRzY29uZmlnLmpzb24gaXMgaW1tdXRhYmxlXG4gICAgaWYgKHRoaXMudHNjb25maWcpIHtcbiAgICAgIHRoaXMudHNjb25maWcuZmlsZS5yZWFkb25seSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGdlbmVyYXRlIHNhbXBsZSBjb2RlIGluIGBwYWdlc2AgYW5kIGBwdWJsaWNgIGlmIHRoZXNlIGRpcmVjdG9yaWVzIGFyZSBlbXB0eSBvciBub24tZXhpc3RlbnQuXG4gICAgaWYgKG9wdGlvbnMuc2FtcGxlQ29kZSA/PyB0cnVlKSB7XG4gICAgICBuZXcgTmV4dFNhbXBsZUNvZGUodGhpcywge1xuICAgICAgICBmaWxlRXh0OiAndHN4JyxcbiAgICAgICAgc3JjZGlyOiB0aGlzLnNyY2RpcixcbiAgICAgICAgYXNzZXRzZGlyOiB0aGlzLmFzc2V0c2RpcixcbiAgICAgICAgdGFpbHdpbmQ6IHRoaXMudGFpbHdpbmQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0Q29tcG9uZW50T3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdHlwZXNjcmlwdD86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdGFpbHdpbmQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgTmV4dENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZXNjcmlwdDogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWlsd2luZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogTmV4dENvbXBvbmVudE9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMudHlwZXNjcmlwdCA9IG9wdGlvbnMudHlwZXNjcmlwdCA/PyBmYWxzZTtcbiAgICB0aGlzLnRhaWx3aW5kID0gb3B0aW9ucy50YWlsd2luZCA/PyB0cnVlO1xuXG4gICAgcHJvamVjdC5hZGREZXBzKCduZXh0JywgJ3JlYWN0JywgJ3JlYWN0LWRvbScpO1xuICAgIGlmICh0aGlzLnR5cGVzY3JpcHQpIHtcbiAgICAgIHByb2plY3QuYWRkRGV2RGVwcygnQHR5cGVzL3JlYWN0JywgJ0B0eXBlcy9yZWFjdC1kb20nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGFpbHdpbmQpIHtcbiAgICAgIG5ldyBQb3N0Q3NzKHByb2plY3QsIHsgdGFpbHdpbmQ6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgLy8gTmV4dEpTIENMSSBjb21tYW5kcywgc2VlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL2NsaVxuICAgIHByb2plY3QuYWRkVGFzaygnZGV2Jywge1xuICAgICAgZGVzY3JpcHRpb246ICdTdGFydHMgdGhlIE5leHQuanMgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZScsXG4gICAgICBleGVjOiAnbmV4dCBkZXYnLFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5jb21waWxlVGFzay5leGVjKCduZXh0IGJ1aWxkJyk7XG5cbiAgICBwcm9qZWN0LmFkZFRhc2soJ2V4cG9ydCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRXhwb3J0cyB0aGUgYXBwbGljYXRpb24gZm9yIHByb2R1Y3Rpb24gZGVwbG95bWVudCcsXG4gICAgICBleGVjOiAnbmV4dCBleHBvcnQnLFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5hZGRUYXNrKCdzZXJ2ZXInLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0cyB0aGUgTmV4dC5qcyBhcHBsaWNhdGlvbiBpbiBwcm9kdWN0aW9uIG1vZGUnLFxuICAgICAgZXhlYzogJ25leHQgc3RhcnQnLFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5hZGRUYXNrKCd0ZWxlbWV0cnknLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0NoZWNrcyB0aGUgc3RhdHVzIG9mIE5leHQuanMgdGVsZW1ldHJ5IGNvbGxlY3Rpb24nLFxuICAgICAgZXhlYzogJ25leHQgdGVsZW1ldHJ5JyxcbiAgICB9KTtcblxuICAgIHByb2plY3QubnBtaWdub3JlPy5leGNsdWRlKCcjIE5leHQuanMnLCAnLy5uZXh0LycpO1xuICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoJyMgTmV4dC5qcycsICcvLm5leHQvJyk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIE5leHRTYW1wbGVDb2RlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBGaWxlIGV4dGVuc2lvbiBmb3Igc2FtcGxlIGphdmFzY3JpcHQgY29kZSB0byBiZSBzYXZlZCBhcy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJqc1wiXG4gICAqL1xuICByZWFkb25seSBmaWxlRXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IGluIHdoaWNoIE5leHQuanMgcGFnZXMgYXJlIGRlY2xhcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3JjZGlyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggYXBwIGFzc2V0cyByZXNpZGUuXG4gICAqL1xuICByZWFkb25seSBhc3NldHNkaXI6IHN0cmluZztcblxuICAvKipcbiAgICogU2V0dXAgVGFpbHdpbmQgYXMgYSBQb3N0Q1NTIHBsdWdpbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhaWx3aW5kOiBib29sZWFuO1xufVxuXG5jbGFzcyBOZXh0U2FtcGxlQ29kZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZUV4dDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHNyY2Rpcjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0c2Rpcjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHRhaWx3aW5kOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBOZXh0U2FtcGxlQ29kZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuZmlsZUV4dCA9IG9wdGlvbnMuZmlsZUV4dCA/PyAnanMnO1xuICAgIHRoaXMuc3JjZGlyID0gb3B0aW9ucy5zcmNkaXI7XG4gICAgdGhpcy5hc3NldHNkaXIgPSBvcHRpb25zLmFzc2V0c2RpcjtcbiAgICB0aGlzLnRhaWx3aW5kID0gb3B0aW9ucy50YWlsd2luZDtcblxuICAgIGNvbnN0IGluZGV4SnMgPSBbXG4gICAgICAnaW1wb3J0IEhlYWQgZnJvbSBcIm5leHQvaGVhZFwiJyxcbiAgICAgICcnLFxuICAgICAgJ2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEhvbWUoKSB7JyxcbiAgICAgICcgIHJldHVybiAoJyxcbiAgICAgICcgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj4nLFxuICAgICAgJyAgICAgIDxIZWFkPicsXG4gICAgICAnICAgICAgICA8dGl0bGU+Q3JlYXRlIE5leHQgQXBwPC90aXRsZT4nLFxuICAgICAgJyAgICAgIDwvSGVhZD4nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgPG1haW4+JyxcbiAgICAgICcgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0aXRsZVwiPicsXG4gICAgICAnICAgICAgICAgIFdlbGNvbWUgdG8gPGEgaHJlZj1cImh0dHBzOi8vbmV4dGpzLm9yZ1wiPk5leHQuanMhPC9hPicsXG4gICAgICAnICAgICAgICA8L2gxPicsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIDxwIGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+JyxcbiAgICAgICcgICAgICAgICAgR2V0IHN0YXJ0ZWQgYnkgZWRpdGluZyA8Y29kZT5wYWdlcy9pbmRleC5qczwvY29kZT4nLFxuICAgICAgJyAgICAgICAgPC9wPicsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZFwiPicsXG4gICAgICAnICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL25leHRqcy5vcmcvZG9jc1wiIGNsYXNzTmFtZT1cImNhcmRcIj4nLFxuICAgICAgJyAgICAgICAgICAgIDxoMz5Eb2N1bWVudGF0aW9uICZyYXJyOzwvaDM+JyxcbiAgICAgICcgICAgICAgICAgICA8cD5GaW5kIGluLWRlcHRoIGluZm9ybWF0aW9uIGFib3V0IE5leHQuanMgZmVhdHVyZXMgYW5kIEFQSS48L3A+JyxcbiAgICAgICcgICAgICAgICAgPC9hPicsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vbmV4dGpzLm9yZy9sZWFyblwiIGNsYXNzTmFtZT1cImNhcmRcIj4nLFxuICAgICAgJyAgICAgICAgICAgIDxoMz5MZWFybiAmcmFycjs8L2gzPicsXG4gICAgICAnICAgICAgICAgICAgPHA+TGVhcm4gYWJvdXQgTmV4dC5qcyBpbiBhbiBpbnRlcmFjdGl2ZSBjb3Vyc2Ugd2l0aCBxdWl6emVzITwvcD4nLFxuICAgICAgJyAgICAgICAgICA8L2E+JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgICA8YScsXG4gICAgICAnICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy90cmVlL21hc3Rlci9leGFtcGxlc1wiJyxcbiAgICAgICcgICAgICAgICAgICBjbGFzc05hbWU9XCJjYXJkXCInLFxuICAgICAgJyAgICAgICAgICA+JyxcbiAgICAgICcgICAgICAgICAgICA8aDM+RXhhbXBsZXMgJnJhcnI7PC9oMz4nLFxuICAgICAgJyAgICAgICAgICAgIDxwPkRpc2NvdmVyIGFuZCBkZXBsb3kgYm9pbGVycGxhdGUgZXhhbXBsZSBOZXh0LmpzIHByb2plY3RzLjwvcD4nLFxuICAgICAgJyAgICAgICAgICA8L2E+JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgICA8YScsXG4gICAgICAnICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vdmVyY2VsLmNvbS9pbXBvcnQ/ZmlsdGVyPW5leHQuanMmdXRtX3NvdXJjZT1jcmVhdGUtbmV4dC1hcHAmdXRtX21lZGl1bT1kZWZhdWx0LXRlbXBsYXRlJnV0bV9jYW1wYWlnbj1jcmVhdGUtbmV4dC1hcHBcIicsXG4gICAgICAnICAgICAgICAgICAgY2xhc3NOYW1lPVwiY2FyZFwiJyxcbiAgICAgICcgICAgICAgICAgPicsXG4gICAgICAnICAgICAgICAgICAgPGgzPkRlcGxveSAmcmFycjs8L2gzPicsXG4gICAgICAnICAgICAgICAgICAgPHA+JyxcbiAgICAgICcgICAgICAgICAgICAgIEluc3RhbnRseSBkZXBsb3kgeW91ciBOZXh0LmpzIHNpdGUgdG8gYSBwdWJsaWMgVVJMIHdpdGggVmVyY2VsLicsXG4gICAgICAnICAgICAgICAgICAgPC9wPicsXG4gICAgICAnICAgICAgICAgIDwvYT4nLFxuICAgICAgJyAgICAgICAgPC9kaXY+JyxcbiAgICAgICcgICAgICA8L21haW4+JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgIDxmb290ZXI+JyxcbiAgICAgICcgICAgICAgIDxhJyxcbiAgICAgICcgICAgICAgICAgaHJlZj1cImh0dHBzOi8vdmVyY2VsLmNvbT91dG1fc291cmNlPWNyZWF0ZS1uZXh0LWFwcCZ1dG1fbWVkaXVtPWRlZmF1bHQtdGVtcGxhdGUmdXRtX2NhbXBhaWduPWNyZWF0ZS1uZXh0LWFwcFwiJyxcbiAgICAgICcgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCInLFxuICAgICAgJyAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCInLFxuICAgICAgJyAgICAgICAgPicsXG4gICAgICAnICAgICAgICAgIFBvd2VyZWQgYnkgVmVyY2VsJyxcbiAgICAgICcgICAgICAgICAgPGltZyBzcmM9XCIvdmVyY2VsLnN2Z1wiIGFsdD1cIlZlcmNlbCBMb2dvXCIgY2xhc3NOYW1lPVwibG9nb1wiIC8+JyxcbiAgICAgICcgICAgICAgIDwvYT4nLFxuICAgICAgJyAgICAgIDwvZm9vdGVyPicsXG4gICAgICAnJyxcbiAgICAgICcgICAgICA8c3R5bGUganN4PntgJyxcbiAgICAgICcgICAgICAgIC5jb250YWluZXIgeycsXG4gICAgICAnICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOycsXG4gICAgICAnICAgICAgICAgIHBhZGRpbmc6IDAgMC41cmVtOycsXG4gICAgICAnICAgICAgICAgIGRpc3BsYXk6IGZsZXg7JyxcbiAgICAgICcgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsnLFxuICAgICAgJyAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsnLFxuICAgICAgJyAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgbWFpbiB7JyxcbiAgICAgICcgICAgICAgICAgcGFkZGluZzogNXJlbSAwOycsXG4gICAgICAnICAgICAgICAgIGZsZXg6IDE7JyxcbiAgICAgICcgICAgICAgICAgZGlzcGxheTogZmxleDsnLFxuICAgICAgJyAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOycsXG4gICAgICAnICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOycsXG4gICAgICAnICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICBmb290ZXIgeycsXG4gICAgICAnICAgICAgICAgIHdpZHRoOiAxMDAlOycsXG4gICAgICAnICAgICAgICAgIGhlaWdodDogMTAwcHg7JyxcbiAgICAgICcgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlYWVhZWE7JyxcbiAgICAgICcgICAgICAgICAgZGlzcGxheTogZmxleDsnLFxuICAgICAgJyAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsnLFxuICAgICAgJyAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgZm9vdGVyIGltZyB7JyxcbiAgICAgICcgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIGZvb3RlciBhIHsnLFxuICAgICAgJyAgICAgICAgICBkaXNwbGF5OiBmbGV4OycsXG4gICAgICAnICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOycsXG4gICAgICAnICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICBhIHsnLFxuICAgICAgJyAgICAgICAgICBjb2xvcjogaW5oZXJpdDsnLFxuICAgICAgJyAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAudGl0bGUgYSB7JyxcbiAgICAgICcgICAgICAgICAgY29sb3I6ICMwMDcwZjM7JyxcbiAgICAgICcgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgLnRpdGxlIGE6aG92ZXIsJyxcbiAgICAgICcgICAgICAgIC50aXRsZSBhOmZvY3VzLCcsXG4gICAgICAnICAgICAgICAudGl0bGUgYTphY3RpdmUgeycsXG4gICAgICAnICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgLnRpdGxlIHsnLFxuICAgICAgJyAgICAgICAgICBtYXJnaW46IDA7JyxcbiAgICAgICcgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7JyxcbiAgICAgICcgICAgICAgICAgZm9udC1zaXplOiA0cmVtOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgLnRpdGxlLCcsXG4gICAgICAnICAgICAgICAuZGVzY3JpcHRpb24geycsXG4gICAgICAnICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIC5kZXNjcmlwdGlvbiB7JyxcbiAgICAgICcgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsnLFxuICAgICAgJyAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIGNvZGUgeycsXG4gICAgICAnICAgICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7JyxcbiAgICAgICcgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OycsXG4gICAgICAnICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW07JyxcbiAgICAgICcgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07JyxcbiAgICAgICcgICAgICAgICAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIEx1Y2lkYSBDb25zb2xlLCBMaWJlcmF0aW9uIE1vbm8sJyxcbiAgICAgICcgICAgICAgICAgICBEZWphVnUgU2FucyBNb25vLCBCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8sIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAuZ3JpZCB7JyxcbiAgICAgICcgICAgICAgICAgZGlzcGxheTogZmxleDsnLFxuICAgICAgJyAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOycsXG4gICAgICAnICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOycsXG4gICAgICAnICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsnLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAgIG1heC13aWR0aDogODAwcHg7JyxcbiAgICAgICcgICAgICAgICAgbWFyZ2luLXRvcDogM3JlbTsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIC5jYXJkIHsnLFxuICAgICAgJyAgICAgICAgICBtYXJnaW46IDFyZW07JyxcbiAgICAgICcgICAgICAgICAgZmxleC1iYXNpczogNDUlOycsXG4gICAgICAnICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTsnLFxuICAgICAgJyAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OycsXG4gICAgICAnICAgICAgICAgIGNvbG9yOiBpbmhlcml0OycsXG4gICAgICAnICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsnLFxuICAgICAgJyAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWFlYWVhOycsXG4gICAgICAnICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7JyxcbiAgICAgICcgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAuY2FyZDpob3ZlciwnLFxuICAgICAgJyAgICAgICAgLmNhcmQ6Zm9jdXMsJyxcbiAgICAgICcgICAgICAgIC5jYXJkOmFjdGl2ZSB7JyxcbiAgICAgICcgICAgICAgICAgY29sb3I6ICMwMDcwZjM7JyxcbiAgICAgICcgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDA3MGYzOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgLmNhcmQgaDMgeycsXG4gICAgICAnICAgICAgICAgIG1hcmdpbjogMCAwIDFyZW0gMDsnLFxuICAgICAgJyAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIC5jYXJkIHAgeycsXG4gICAgICAnICAgICAgICAgIG1hcmdpbjogMDsnLFxuICAgICAgJyAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07JyxcbiAgICAgICcgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIC5sb2dvIHsnLFxuICAgICAgJyAgICAgICAgICBoZWlnaHQ6IDFlbTsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgeycsXG4gICAgICAnICAgICAgICAgIC5ncmlkIHsnLFxuICAgICAgJyAgICAgICAgICAgIHdpZHRoOiAxMDAlOycsXG4gICAgICAnICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsnLFxuICAgICAgJyAgICAgICAgICB9JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJyAgICAgIGB9PC9zdHlsZT4nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgPHN0eWxlIGpzeCBnbG9iYWw+e2AnLFxuICAgICAgJyAgICAgICAgaHRtbCwnLFxuICAgICAgJyAgICAgICAgYm9keSB7JyxcbiAgICAgICcgICAgICAgICAgcGFkZGluZzogMDsnLFxuICAgICAgJyAgICAgICAgICBtYXJnaW46IDA7JyxcbiAgICAgICcgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgU2Vnb2UgVUksIFJvYm90bywnLFxuICAgICAgJyAgICAgICAgICAgIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsIEZpcmEgU2FucywgRHJvaWQgU2FucywgSGVsdmV0aWNhIE5ldWUsJyxcbiAgICAgICcgICAgICAgICAgICBzYW5zLXNlcmlmOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgKiB7JyxcbiAgICAgICcgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnICAgICAgYH08L3N0eWxlPicsXG4gICAgICAnICAgIDwvZGl2PicsXG4gICAgICAnICApJyxcbiAgICAgICd9JyxcbiAgICAgICcnLFxuICAgIF07XG5cbiAgICBpZiAodGhpcy50YWlsd2luZCkge1xuICAgICAgaW5kZXhKcy51bnNoaWZ0KCdpbXBvcnQgXCJ0YWlsd2luZGNzcy90YWlsd2luZC5jc3NcIicpO1xuICAgIH1cblxuICAgIGNvbnN0IHZlcmNlbFN2ZyA9IFtcbiAgICAgICc8c3ZnIHdpZHRoPVwiMjgzXCIgaGVpZ2h0PVwiNjRcIiB2aWV3Qm94PVwiMCAwIDI4MyA2NFwiIGZpbGw9XCJub25lXCIgJyxcbiAgICAgICcgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPicsXG4gICAgICAnICAgIDxwYXRoIGQ9XCJNMTQxLjA0IDE2Yy0xMS4wNCAwLTE5IDcuMi0xOSAxOHM4Ljk2IDE4IDIwIDE4YzYuNjcgMCAxMi41NS0yLjY0IDE2LjE5LTcuMDlsLTcuNjUtNC40MmMtMi4wMiAyLjIxLTUuMDkgMy41LTguNTQgMy41LTQuNzkgMC04Ljg2LTIuNS0xMC4zNy02LjVoMjguMDJjLjIyLTEuMTIuMzUtMi4yOC4zNS0zLjUgMC0xMC43OS03Ljk2LTE3Ljk5LTE5LTE3Ljk5em0tOS40NiAxNC41YzEuMjUtMy45OSA0LjY3LTYuNSA5LjQ1LTYuNSA0Ljc5IDAgOC4yMSAyLjUxIDkuNDUgNi41aC0xOC45ek0yNDguNzIgMTZjLTExLjA0IDAtMTkgNy4yLTE5IDE4czguOTYgMTggMjAgMThjNi42NyAwIDEyLjU1LTIuNjQgMTYuMTktNy4wOWwtNy42NS00LjQyYy0yLjAyIDIuMjEtNS4wOSAzLjUtOC41NCAzLjUtNC43OSAwLTguODYtMi41LTEwLjM3LTYuNWgyOC4wMmMuMjItMS4xMi4zNS0yLjI4LjM1LTMuNSAwLTEwLjc5LTcuOTYtMTcuOTktMTktMTcuOTl6bS05LjQ1IDE0LjVjMS4yNS0zLjk5IDQuNjctNi41IDkuNDUtNi41IDQuNzkgMCA4LjIxIDIuNTEgOS40NSA2LjVoLTE4Ljl6TTIwMC4yNCAzNGMwIDYgMy45MiAxMCAxMCAxMCA0LjEyIDAgNy4yMS0xLjg3IDguOC00LjkybDcuNjggNC40M2MtMy4xOCA1LjMtOS4xNCA4LjQ5LTE2LjQ4IDguNDktMTEuMDUgMC0xOS03LjItMTktMThzNy45Ni0xOCAxOS0xOGM3LjM0IDAgMTMuMjkgMy4xOSAxNi40OCA4LjQ5bC03LjY4IDQuNDNjLTEuNTktMy4wNS00LjY4LTQuOTItOC44LTQuOTItNi4wNyAwLTEwIDQtMTAgMTB6bTgyLjQ4LTI5djQ2aC05VjVoOXpNMzYuOTUgMEw3My45IDY0SDBMMzYuOTUgMHptOTIuMzggNWwtMjcuNzEgNDhMNzMuOTEgNUg4NC4zbDE3LjMyIDMwIDE3LjMyLTMwaDEwLjM5em01OC45MSAxMnY5LjY5Yy0xLS4yOS0yLjA2LS40OS0zLjItLjQ5LTUuODEgMC0xMCA0LTEwIDEwVjUxaC05VjE3aDl2OS4yYzAtNS4wOCA1LjkxLTkuMiAxMy4yLTkuMnpcIiBmaWxsPVwiIzAwMFwiLz4nLFxuICAgICAgJzwvc3ZnPicsXG4gICAgXTtcblxuICAgIG5ldyBTYW1wbGVEaXIocHJvamVjdCwgdGhpcy5zcmNkaXIsIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFsnaW5kZXguJyArIHRoaXMuZmlsZUV4dF06IGluZGV4SnMuam9pbignXFxuJyksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgbmV3IFNhbXBsZURpcihwcm9qZWN0LCB0aGlzLmFzc2V0c2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgJ3ZlcmNlbC5zdmcnOiB2ZXJjZWxTdmcuam9pbignXFxuJyksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgJ25leHQtZW52LmQudHMnLCB7XG4gICAgICBjb250ZW50czogW1xuICAgICAgICAnLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJuZXh0XCIgLz4nLFxuICAgICAgICAnLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJuZXh0L3R5cGVzL2dsb2JhbFwiIC8+JyxcbiAgICAgICAgJy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibmV4dC9pbWFnZS10eXBlcy9nbG9iYWxcIiAvPicsXG4gICAgICAgICcvLyBOT1RFOiBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBlZGl0ZWQnLFxuICAgICAgICAnLy8gc2VlIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2Jhc2ljLWZlYXR1cmVzL3R5cGVzY3JpcHQgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyxcbiAgICAgICAgJycsXG4gICAgICBdLmpvaW4oJ1xcbicpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
403
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93ZWIvbmV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUF5QztBQUN6Qyw4Q0FBK0c7QUFDL0csZ0RBQXVEO0FBQ3ZELDhDQUErRTtBQUMvRSxrQ0FBb0M7QUFDcEMsdUNBQW9DOzs7Ozs7O0FBcUJwQyxNQUFhLGFBQWMsU0FBUSx3QkFBVzs7OztJQVU1QyxZQUFZLE9BQTZCOztRQUN2QyxLQUFLLENBQUM7WUFDSixJQUFJLEVBQUUsS0FBSztZQUNYLGNBQWMsRUFBRSxTQUFTO1lBQ3pCLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLFNBQUcsT0FBTyxDQUFDLE1BQU0sbUNBQUksT0FBTyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLFNBQUcsT0FBTyxDQUFDLFNBQVMsbUNBQUksUUFBUSxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLFNBQUcsT0FBTyxDQUFDLFFBQVEsbUNBQUksSUFBSSxDQUFDO1FBRXpDLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLCtGQUErRjtRQUMvRixVQUFJLE9BQU8sQ0FBQyxVQUFVLG1DQUFJLElBQUksRUFBRTtZQUM5QixJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZCLE9BQU8sRUFBRSxJQUFJO2dCQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDeEIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQWhDSCxzQ0FpQ0M7Ozs7Ozs7OztBQUdELE1BQWEsdUJBQXdCLFNBQVEsaUNBQW9COzs7O0lBVS9ELFlBQVksT0FBdUM7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QUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDOUM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLHVCQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDckMsS0FBSyxFQUFFO2dCQUNMLFlBQVksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNuQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksd0JBQVUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFO1lBQ3ZDLFFBQVEsRUFBRTtnQkFDUixnQ0FBZ0M7Z0JBQ2hDLDZDQUE2QztnQkFDN0MsbURBQW1EO2dCQUNuRCx5Q0FBeUM7Z0JBQ3pDLGdGQUFnRjtnQkFDaEYsRUFBRTthQUNILENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCwgTm9kZVByb2plY3RPcHRpb25zLCBUeXBlU2NyaXB0SnN4TW9kZSwgVHlwZVNjcmlwdE1vZHVsZVJlc29sdXRpb24gfSBmcm9tICcuLi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IFNhbXBsZURpciwgU2FtcGxlRmlsZSB9IGZyb20gJy4uL3NhbXBsZS1maWxlJztcbmltcG9ydCB7IFR5cGVTY3JpcHRBcHBQcm9qZWN0LCBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgfSBmcm9tICcuLi90eXBlc2NyaXB0JztcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgUG9zdENzcyB9IGZyb20gJy4vcG9zdGNzcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dEpzQ29tbW9uUHJvamVjdE9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhc3NldHNkaXI/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRhaWx3aW5kPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0SnNUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBOZXh0SnNDb21tb25Qcm9qZWN0T3B0aW9ucywgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIHsgfVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRKc1Byb2plY3RPcHRpb25zIGV4dGVuZHMgTmV4dEpzQ29tbW9uUHJvamVjdE9wdGlvbnMsIE5vZGVQcm9qZWN0T3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzcmNkaXI/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc2FtcGxlQ29kZT86IGJvb2xlYW47XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgTmV4dEpzUHJvamVjdCBleHRlbmRzIE5vZGVQcm9qZWN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgc3JjZGlyOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGFzc2V0c2Rpcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSB0YWlsd2luZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBOZXh0SnNQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIGplc3Q6IGZhbHNlLFxuICAgICAgbWluTm9kZVZlcnNpb246ICcxMi4xMy4wJywgLy8gaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9pbnN0YWxsYXRpb25cbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICB0aGlzLnNyY2RpciA9IG9wdGlvbnMuc3JjZGlyID8/ICdwYWdlcyc7XG4gICAgdGhpcy5hc3NldHNkaXIgPSBvcHRpb25zLmFzc2V0c2RpciA/PyAncHVibGljJztcbiAgICB0aGlzLnRhaWx3aW5kID0gb3B0aW9ucy50YWlsd2luZCA/PyB0cnVlO1xuXG4gICAgbmV3IE5leHRDb21wb25lbnQodGhpcywgeyB0eXBlc2NyaXB0OiBmYWxzZSwgdGFpbHdpbmQ6IHRoaXMudGFpbHdpbmQgfSk7XG5cbiAgICAvLyBnZW5lcmF0ZSBzYW1wbGUgY29kZSBpbiBgcGFnZXNgIGFuZCBgcHVibGljYCBpZiB0aGVzZSBkaXJlY3RvcmllcyBhcmUgZW1wdHkgb3Igbm9uLWV4aXN0ZW50LlxuICAgIGlmIChvcHRpb25zLnNhbXBsZUNvZGUgPz8gdHJ1ZSkge1xuICAgICAgbmV3IE5leHRTYW1wbGVDb2RlKHRoaXMsIHtcbiAgICAgICAgZmlsZUV4dDogJ2pzJyxcbiAgICAgICAgc3JjZGlyOiB0aGlzLnNyY2RpcixcbiAgICAgICAgYXNzZXRzZGlyOiB0aGlzLmFzc2V0c2RpcixcbiAgICAgICAgdGFpbHdpbmQ6IHRoaXMudGFpbHdpbmQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBOZXh0SnNUeXBlU2NyaXB0UHJvamVjdCBleHRlbmRzIFR5cGVTY3JpcHRBcHBQcm9qZWN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgc3JjZGlyOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGFzc2V0c2Rpcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSB0YWlsd2luZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBOZXh0SnNUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgICAgIHNyY2RpcjogJ3BhZ2VzJyxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICBtaW5Ob2RlVmVyc2lvbjogJzEyLjEzLjAnLCAvLyBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2luc3RhbGxhdGlvblxuICAgICAgamVzdDogZmFsc2UsXG4gICAgICB0c2NvbmZpZzoge1xuICAgICAgICBpbmNsdWRlOiBbJyoqLyoudHMnLCAnKiovKi50c3gnXSxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgLy8gcmVxdWlyZWQgYnkgTmV4dC5qc1xuICAgICAgICAgIGVzTW9kdWxlSW50ZXJvcDogdHJ1ZSxcbiAgICAgICAgICBtb2R1bGU6ICdlc25leHQnLFxuICAgICAgICAgIG1vZHVsZVJlc29sdXRpb246IFR5cGVTY3JpcHRNb2R1bGVSZXNvbHV0aW9uLk5PREUsXG4gICAgICAgICAgaXNvbGF0ZWRNb2R1bGVzOiB0cnVlLFxuICAgICAgICAgIHJlc29sdmVKc29uTW9kdWxlOiB0cnVlLFxuICAgICAgICAgIGpzeDogVHlwZVNjcmlwdEpzeE1vZGUuUFJFU0VSVkUsXG5cbiAgICAgICAgICAvLyByZWNvbW1lbmRlZCBieSBOZXh0LmpzXG4gICAgICAgICAgYWxsb3dKczogdHJ1ZSxcbiAgICAgICAgICBza2lwTGliQ2hlY2s6IHRydWUsXG4gICAgICAgICAgZm9yY2VDb25zaXN0ZW50Q2FzaW5nSW5GaWxlTmFtZXM6IHRydWUsXG4gICAgICAgICAgbm9FbWl0OiB0cnVlLFxuICAgICAgICAgIGxpYjogWydkb20nLCAnZG9tLml0ZXJhYmxlJywgJ2VzbmV4dCddLFxuICAgICAgICAgIHN0cmljdDogZmFsc2UsXG4gICAgICAgICAgdGFyZ2V0OiAnZXM1JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIG5ldmVyIGdlbmVyYXRlIGRlZmF1bHQgVHlwZVNjcmlwdCBzYW1wbGUgY29kZSwgc2luY2UgdGhpcyBjbGFzcyBwcm92aWRlcyBpdHMgb3duXG4gICAgc3VwZXIoZGVlcE1lcmdlKFtkZWZhdWx0T3B0aW9ucywgb3B0aW9ucywgeyBzYW1wbGVDb2RlOiBmYWxzZSB9XSkgYXMgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zKTtcblxuICAgIHRoaXMuc3JjZGlyID0gb3B0aW9ucy5zcmNkaXIgPz8gJ3BhZ2VzJztcbiAgICB0aGlzLmFzc2V0c2RpciA9IG9wdGlvbnMuYXNzZXRzZGlyID8/ICdwdWJsaWMnO1xuICAgIHRoaXMudGFpbHdpbmQgPSBvcHRpb25zLnRhaWx3aW5kID8/IHRydWU7XG5cbiAgICBuZXcgTmV4dENvbXBvbmVudCh0aGlzLCB7IHR5cGVzY3JpcHQ6IHRydWUsIHRhaWx3aW5kOiB0aGlzLnRhaWx3aW5kIH0pO1xuXG4gICAgLy8gJ25leHQgYnVpbGQnIGNvbW1hbmQgZmFpbHMgaWYgdHNjb25maWcuanNvbiBpcyBpbW11dGFibGVcbiAgICBpZiAodGhpcy50c2NvbmZpZykge1xuICAgICAgdGhpcy50c2NvbmZpZy5maWxlLnJlYWRvbmx5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gZ2VuZXJhdGUgc2FtcGxlIGNvZGUgaW4gYHBhZ2VzYCBhbmQgYHB1YmxpY2AgaWYgdGhlc2UgZGlyZWN0b3JpZXMgYXJlIGVtcHR5IG9yIG5vbi1leGlzdGVudC5cbiAgICBpZiAob3B0aW9ucy5zYW1wbGVDb2RlID8/IHRydWUpIHtcbiAgICAgIG5ldyBOZXh0U2FtcGxlQ29kZSh0aGlzLCB7XG4gICAgICAgIGZpbGVFeHQ6ICd0c3gnLFxuICAgICAgICBzcmNkaXI6IHRoaXMuc3JjZGlyLFxuICAgICAgICBhc3NldHNkaXI6IHRoaXMuYXNzZXRzZGlyLFxuICAgICAgICB0YWlsd2luZDogdGhpcy50YWlsd2luZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRDb21wb25lbnRPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0eXBlc2NyaXB0PzogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0YWlsd2luZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBOZXh0Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0eXBlc2NyaXB0OiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHRhaWx3aW5kOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBOZXh0Q29tcG9uZW50T3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy50eXBlc2NyaXB0ID0gb3B0aW9ucy50eXBlc2NyaXB0ID8/IGZhbHNlO1xuICAgIHRoaXMudGFpbHdpbmQgPSBvcHRpb25zLnRhaWx3aW5kID8/IHRydWU7XG5cbiAgICBwcm9qZWN0LmFkZERlcHMoJ25leHQnLCAncmVhY3QnLCAncmVhY3QtZG9tJyk7XG4gICAgaWYgKHRoaXMudHlwZXNjcmlwdCkge1xuICAgICAgcHJvamVjdC5hZGREZXZEZXBzKCdAdHlwZXMvcmVhY3QnLCAnQHR5cGVzL3JlYWN0LWRvbScpO1xuICAgIH1cbiAgICBpZiAodGhpcy50YWlsd2luZCkge1xuICAgICAgbmV3IFBvc3RDc3MocHJvamVjdCwgeyB0YWlsd2luZDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICAvLyBOZXh0SlMgQ0xJIGNvbW1hbmRzLCBzZWU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvY2xpXG4gICAgcHJvamVjdC5hZGRUYXNrKCdkZXYnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0cyB0aGUgTmV4dC5qcyBhcHBsaWNhdGlvbiBpbiBkZXZlbG9wbWVudCBtb2RlJyxcbiAgICAgIGV4ZWM6ICduZXh0IGRldicsXG4gICAgfSk7XG5cbiAgICBwcm9qZWN0LmNvbXBpbGVUYXNrLmV4ZWMoJ25leHQgYnVpbGQnKTtcblxuICAgIHByb2plY3QuYWRkVGFzaygnZXhwb3J0Jywge1xuICAgICAgZGVzY3JpcHRpb246ICdFeHBvcnRzIHRoZSBhcHBsaWNhdGlvbiBmb3IgcHJvZHVjdGlvbiBkZXBsb3ltZW50JyxcbiAgICAgIGV4ZWM6ICduZXh0IGV4cG9ydCcsXG4gICAgfSk7XG5cbiAgICBwcm9qZWN0LmFkZFRhc2soJ3NlcnZlcicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRzIHRoZSBOZXh0LmpzIGFwcGxpY2F0aW9uIGluIHByb2R1Y3Rpb24gbW9kZScsXG4gICAgICBleGVjOiAnbmV4dCBzdGFydCcsXG4gICAgfSk7XG5cbiAgICBwcm9qZWN0LmFkZFRhc2soJ3RlbGVtZXRyeScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ2hlY2tzIHRoZSBzdGF0dXMgb2YgTmV4dC5qcyB0ZWxlbWV0cnkgY29sbGVjdGlvbicsXG4gICAgICBleGVjOiAnbmV4dCB0ZWxlbWV0cnknLFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5ucG1pZ25vcmU/LmV4Y2x1ZGUoJyMgTmV4dC5qcycsICcvLm5leHQvJyk7XG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZSgnIyBOZXh0LmpzJywgJy8ubmV4dC8nKTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgTmV4dFNhbXBsZUNvZGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbGUgZXh0ZW5zaW9uIGZvciBzYW1wbGUgamF2YXNjcmlwdCBjb2RlIHRvIGJlIHNhdmVkIGFzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImpzXCJcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVFeHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggTmV4dC5qcyBwYWdlcyBhcmUgZGVjbGFyZWQuXG4gICAqL1xuICByZWFkb25seSBzcmNkaXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSBpbiB3aGljaCBhcHAgYXNzZXRzIHJlc2lkZS5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c2Rpcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZXR1cCBUYWlsd2luZCBhcyBhIFBvc3RDU1MgcGx1Z2luLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFpbHdpbmQ6IGJvb2xlYW47XG59XG5cbmNsYXNzIE5leHRTYW1wbGVDb2RlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWxlRXh0OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3JjZGlyOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzZXRzZGlyOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFpbHdpbmQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM6IE5leHRTYW1wbGVDb2RlT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5maWxlRXh0ID0gb3B0aW9ucy5maWxlRXh0ID8/ICdqcyc7XG4gICAgdGhpcy5zcmNkaXIgPSBvcHRpb25zLnNyY2RpcjtcbiAgICB0aGlzLmFzc2V0c2RpciA9IG9wdGlvbnMuYXNzZXRzZGlyO1xuICAgIHRoaXMudGFpbHdpbmQgPSBvcHRpb25zLnRhaWx3aW5kO1xuXG4gICAgY29uc3QgaW5kZXhKcyA9IFtcbiAgICAgICdpbXBvcnQgSGVhZCBmcm9tIFwibmV4dC9oZWFkXCInLFxuICAgICAgJycsXG4gICAgICAnZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSG9tZSgpIHsnLFxuICAgICAgJyAgcmV0dXJuICgnLFxuICAgICAgJyAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPicsXG4gICAgICAnICAgICAgPEhlYWQ+JyxcbiAgICAgICcgICAgICAgIDx0aXRsZT5DcmVhdGUgTmV4dCBBcHA8L3RpdGxlPicsXG4gICAgICAnICAgICAgPC9IZWFkPicsXG4gICAgICAnJyxcbiAgICAgICcgICAgICA8bWFpbj4nLFxuICAgICAgJyAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRpdGxlXCI+JyxcbiAgICAgICcgICAgICAgICAgV2VsY29tZSB0byA8YSBocmVmPVwiaHR0cHM6Ly9uZXh0anMub3JnXCI+TmV4dC5qcyE8L2E+JyxcbiAgICAgICcgICAgICAgIDwvaDE+JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgPHAgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj4nLFxuICAgICAgJyAgICAgICAgICBHZXQgc3RhcnRlZCBieSBlZGl0aW5nIDxjb2RlPnBhZ2VzL2luZGV4LmpzPC9jb2RlPicsXG4gICAgICAnICAgICAgICA8L3A+JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkXCI+JyxcbiAgICAgICcgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzXCIgY2xhc3NOYW1lPVwiY2FyZFwiPicsXG4gICAgICAnICAgICAgICAgICAgPGgzPkRvY3VtZW50YXRpb24gJnJhcnI7PC9oMz4nLFxuICAgICAgJyAgICAgICAgICAgIDxwPkZpbmQgaW4tZGVwdGggaW5mb3JtYXRpb24gYWJvdXQgTmV4dC5qcyBmZWF0dXJlcyBhbmQgQVBJLjwvcD4nLFxuICAgICAgJyAgICAgICAgICA8L2E+JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9uZXh0anMub3JnL2xlYXJuXCIgY2xhc3NOYW1lPVwiY2FyZFwiPicsXG4gICAgICAnICAgICAgICAgICAgPGgzPkxlYXJuICZyYXJyOzwvaDM+JyxcbiAgICAgICcgICAgICAgICAgICA8cD5MZWFybiBhYm91dCBOZXh0LmpzIGluIGFuIGludGVyYWN0aXZlIGNvdXJzZSB3aXRoIHF1aXp6ZXMhPC9wPicsXG4gICAgICAnICAgICAgICAgIDwvYT4nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAgIDxhJyxcbiAgICAgICcgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL3RyZWUvbWFzdGVyL2V4YW1wbGVzXCInLFxuICAgICAgJyAgICAgICAgICAgIGNsYXNzTmFtZT1cImNhcmRcIicsXG4gICAgICAnICAgICAgICAgID4nLFxuICAgICAgJyAgICAgICAgICAgIDxoMz5FeGFtcGxlcyAmcmFycjs8L2gzPicsXG4gICAgICAnICAgICAgICAgICAgPHA+RGlzY292ZXIgYW5kIGRlcGxveSBib2lsZXJwbGF0ZSBleGFtcGxlIE5leHQuanMgcHJvamVjdHMuPC9wPicsXG4gICAgICAnICAgICAgICAgIDwvYT4nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAgIDxhJyxcbiAgICAgICcgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly92ZXJjZWwuY29tL2ltcG9ydD9maWx0ZXI9bmV4dC5qcyZ1dG1fc291cmNlPWNyZWF0ZS1uZXh0LWFwcCZ1dG1fbWVkaXVtPWRlZmF1bHQtdGVtcGxhdGUmdXRtX2NhbXBhaWduPWNyZWF0ZS1uZXh0LWFwcFwiJyxcbiAgICAgICcgICAgICAgICAgICBjbGFzc05hbWU9XCJjYXJkXCInLFxuICAgICAgJyAgICAgICAgICA+JyxcbiAgICAgICcgICAgICAgICAgICA8aDM+RGVwbG95ICZyYXJyOzwvaDM+JyxcbiAgICAgICcgICAgICAgICAgICA8cD4nLFxuICAgICAgJyAgICAgICAgICAgICAgSW5zdGFudGx5IGRlcGxveSB5b3VyIE5leHQuanMgc2l0ZSB0byBhIHB1YmxpYyBVUkwgd2l0aCBWZXJjZWwuJyxcbiAgICAgICcgICAgICAgICAgICA8L3A+JyxcbiAgICAgICcgICAgICAgICAgPC9hPicsXG4gICAgICAnICAgICAgICA8L2Rpdj4nLFxuICAgICAgJyAgICAgIDwvbWFpbj4nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgPGZvb3Rlcj4nLFxuICAgICAgJyAgICAgICAgPGEnLFxuICAgICAgJyAgICAgICAgICBocmVmPVwiaHR0cHM6Ly92ZXJjZWwuY29tP3V0bV9zb3VyY2U9Y3JlYXRlLW5leHQtYXBwJnV0bV9tZWRpdW09ZGVmYXVsdC10ZW1wbGF0ZSZ1dG1fY2FtcGFpZ249Y3JlYXRlLW5leHQtYXBwXCInLFxuICAgICAgJyAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIicsXG4gICAgICAnICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIicsXG4gICAgICAnICAgICAgICA+JyxcbiAgICAgICcgICAgICAgICAgUG93ZXJlZCBieSBWZXJjZWwnLFxuICAgICAgJyAgICAgICAgICA8aW1nIHNyYz1cIi92ZXJjZWwuc3ZnXCIgYWx0PVwiVmVyY2VsIExvZ29cIiBjbGFzc05hbWU9XCJsb2dvXCIgLz4nLFxuICAgICAgJyAgICAgICAgPC9hPicsXG4gICAgICAnICAgICAgPC9mb290ZXI+JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgIDxzdHlsZSBqc3g+e2AnLFxuICAgICAgJyAgICAgICAgLmNvbnRhaW5lciB7JyxcbiAgICAgICcgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7JyxcbiAgICAgICcgICAgICAgICAgcGFkZGluZzogMCAwLjVyZW07JyxcbiAgICAgICcgICAgICAgICAgZGlzcGxheTogZmxleDsnLFxuICAgICAgJyAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOycsXG4gICAgICAnICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOycsXG4gICAgICAnICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICBtYWluIHsnLFxuICAgICAgJyAgICAgICAgICBwYWRkaW5nOiA1cmVtIDA7JyxcbiAgICAgICcgICAgICAgICAgZmxleDogMTsnLFxuICAgICAgJyAgICAgICAgICBkaXNwbGF5OiBmbGV4OycsXG4gICAgICAnICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47JyxcbiAgICAgICcgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7JyxcbiAgICAgICcgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIGZvb3RlciB7JyxcbiAgICAgICcgICAgICAgICAgd2lkdGg6IDEwMCU7JyxcbiAgICAgICcgICAgICAgICAgaGVpZ2h0OiAxMDBweDsnLFxuICAgICAgJyAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VhZWFlYTsnLFxuICAgICAgJyAgICAgICAgICBkaXNwbGF5OiBmbGV4OycsXG4gICAgICAnICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOycsXG4gICAgICAnICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICBmb290ZXIgaW1nIHsnLFxuICAgICAgJyAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgZm9vdGVyIGEgeycsXG4gICAgICAnICAgICAgICAgIGRpc3BsYXk6IGZsZXg7JyxcbiAgICAgICcgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7JyxcbiAgICAgICcgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIGEgeycsXG4gICAgICAnICAgICAgICAgIGNvbG9yOiBpbmhlcml0OycsXG4gICAgICAnICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIC50aXRsZSBhIHsnLFxuICAgICAgJyAgICAgICAgICBjb2xvcjogIzAwNzBmMzsnLFxuICAgICAgJyAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAudGl0bGUgYTpob3ZlciwnLFxuICAgICAgJyAgICAgICAgLnRpdGxlIGE6Zm9jdXMsJyxcbiAgICAgICcgICAgICAgIC50aXRsZSBhOmFjdGl2ZSB7JyxcbiAgICAgICcgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAudGl0bGUgeycsXG4gICAgICAnICAgICAgICAgIG1hcmdpbjogMDsnLFxuICAgICAgJyAgICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsnLFxuICAgICAgJyAgICAgICAgICBmb250LXNpemU6IDRyZW07JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAudGl0bGUsJyxcbiAgICAgICcgICAgICAgIC5kZXNjcmlwdGlvbiB7JyxcbiAgICAgICcgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgLmRlc2NyaXB0aW9uIHsnLFxuICAgICAgJyAgICAgICAgICBsaW5lLWhlaWdodDogMS41OycsXG4gICAgICAnICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgY29kZSB7JyxcbiAgICAgICcgICAgICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTsnLFxuICAgICAgJyAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7JyxcbiAgICAgICcgICAgICAgICAgcGFkZGluZzogMC43NXJlbTsnLFxuICAgICAgJyAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsnLFxuICAgICAgJyAgICAgICAgICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgTHVjaWRhIENvbnNvbGUsIExpYmVyYXRpb24gTW9ubywnLFxuICAgICAgJyAgICAgICAgICAgIERlamFWdSBTYW5zIE1vbm8sIEJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIC5ncmlkIHsnLFxuICAgICAgJyAgICAgICAgICBkaXNwbGF5OiBmbGV4OycsXG4gICAgICAnICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7JyxcbiAgICAgICcgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7JyxcbiAgICAgICcgICAgICAgICAgZmxleC13cmFwOiB3cmFwOycsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsnLFxuICAgICAgJyAgICAgICAgICBtYXJnaW4tdG9wOiAzcmVtOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgLmNhcmQgeycsXG4gICAgICAnICAgICAgICAgIG1hcmdpbjogMXJlbTsnLFxuICAgICAgJyAgICAgICAgICBmbGV4LWJhc2lzOiA0NSU7JyxcbiAgICAgICcgICAgICAgICAgcGFkZGluZzogMS41cmVtOycsXG4gICAgICAnICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7JyxcbiAgICAgICcgICAgICAgICAgY29sb3I6IGluaGVyaXQ7JyxcbiAgICAgICcgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOycsXG4gICAgICAnICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYWVhZWE7JyxcbiAgICAgICcgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsnLFxuICAgICAgJyAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsnLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnJyxcbiAgICAgICcgICAgICAgIC5jYXJkOmhvdmVyLCcsXG4gICAgICAnICAgICAgICAuY2FyZDpmb2N1cywnLFxuICAgICAgJyAgICAgICAgLmNhcmQ6YWN0aXZlIHsnLFxuICAgICAgJyAgICAgICAgICBjb2xvcjogIzAwNzBmMzsnLFxuICAgICAgJyAgICAgICAgICBib3JkZXItY29sb3I6ICMwMDcwZjM7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAuY2FyZCBoMyB7JyxcbiAgICAgICcgICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbSAwOycsXG4gICAgICAnICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgLmNhcmQgcCB7JyxcbiAgICAgICcgICAgICAgICAgbWFyZ2luOiAwOycsXG4gICAgICAnICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsnLFxuICAgICAgJyAgICAgICAgICBsaW5lLWhlaWdodDogMS41OycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgLmxvZ28geycsXG4gICAgICAnICAgICAgICAgIGhlaWdodDogMWVtOycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcnLFxuICAgICAgJyAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7JyxcbiAgICAgICcgICAgICAgICAgLmdyaWQgeycsXG4gICAgICAnICAgICAgICAgICAgd2lkdGg6IDEwMCU7JyxcbiAgICAgICcgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOycsXG4gICAgICAnICAgICAgICAgIH0nLFxuICAgICAgJyAgICAgICAgfScsXG4gICAgICAnICAgICAgYH08L3N0eWxlPicsXG4gICAgICAnJyxcbiAgICAgICcgICAgICA8c3R5bGUganN4IGdsb2JhbD57YCcsXG4gICAgICAnICAgICAgICBodG1sLCcsXG4gICAgICAnICAgICAgICBib2R5IHsnLFxuICAgICAgJyAgICAgICAgICBwYWRkaW5nOiAwOycsXG4gICAgICAnICAgICAgICAgIG1hcmdpbjogMDsnLFxuICAgICAgJyAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBTZWdvZSBVSSwgUm9ib3RvLCcsXG4gICAgICAnICAgICAgICAgICAgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgRmlyYSBTYW5zLCBEcm9pZCBTYW5zLCBIZWx2ZXRpY2EgTmV1ZSwnLFxuICAgICAgJyAgICAgICAgICAgIHNhbnMtc2VyaWY7JyxcbiAgICAgICcgICAgICAgIH0nLFxuICAgICAgJycsXG4gICAgICAnICAgICAgICAqIHsnLFxuICAgICAgJyAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OycsXG4gICAgICAnICAgICAgICB9JyxcbiAgICAgICcgICAgICBgfTwvc3R5bGU+JyxcbiAgICAgICcgICAgPC9kaXY+JyxcbiAgICAgICcgICknLFxuICAgICAgJ30nLFxuICAgICAgJycsXG4gICAgXTtcblxuICAgIGlmICh0aGlzLnRhaWx3aW5kKSB7XG4gICAgICBpbmRleEpzLnVuc2hpZnQoJ2ltcG9ydCBcInRhaWx3aW5kY3NzL3RhaWx3aW5kLmNzc1wiJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdmVyY2VsU3ZnID0gW1xuICAgICAgJzxzdmcgd2lkdGg9XCIyODNcIiBoZWlnaHQ9XCI2NFwiIHZpZXdCb3g9XCIwIDAgMjgzIDY0XCIgZmlsbD1cIm5vbmVcIiAnLFxuICAgICAgJyAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+JyxcbiAgICAgICcgICAgPHBhdGggZD1cIk0xNDEuMDQgMTZjLTExLjA0IDAtMTkgNy4yLTE5IDE4czguOTYgMTggMjAgMThjNi42NyAwIDEyLjU1LTIuNjQgMTYuMTktNy4wOWwtNy42NS00LjQyYy0yLjAyIDIuMjEtNS4wOSAzLjUtOC41NCAzLjUtNC43OSAwLTguODYtMi41LTEwLjM3LTYuNWgyOC4wMmMuMjItMS4xMi4zNS0yLjI4LjM1LTMuNSAwLTEwLjc5LTcuOTYtMTcuOTktMTktMTcuOTl6bS05LjQ2IDE0LjVjMS4yNS0zLjk5IDQuNjctNi41IDkuNDUtNi41IDQuNzkgMCA4LjIxIDIuNTEgOS40NSA2LjVoLTE4Ljl6TTI0OC43MiAxNmMtMTEuMDQgMC0xOSA3LjItMTkgMThzOC45NiAxOCAyMCAxOGM2LjY3IDAgMTIuNTUtMi42NCAxNi4xOS03LjA5bC03LjY1LTQuNDJjLTIuMDIgMi4yMS01LjA5IDMuNS04LjU0IDMuNS00Ljc5IDAtOC44Ni0yLjUtMTAuMzctNi41aDI4LjAyYy4yMi0xLjEyLjM1LTIuMjguMzUtMy41IDAtMTAuNzktNy45Ni0xNy45OS0xOS0xNy45OXptLTkuNDUgMTQuNWMxLjI1LTMuOTkgNC42Ny02LjUgOS40NS02LjUgNC43OSAwIDguMjEgMi41MSA5LjQ1IDYuNWgtMTguOXpNMjAwLjI0IDM0YzAgNiAzLjkyIDEwIDEwIDEwIDQuMTIgMCA3LjIxLTEuODcgOC44LTQuOTJsNy42OCA0LjQzYy0zLjE4IDUuMy05LjE0IDguNDktMTYuNDggOC40OS0xMS4wNSAwLTE5LTcuMi0xOS0xOHM3Ljk2LTE4IDE5LTE4YzcuMzQgMCAxMy4yOSAzLjE5IDE2LjQ4IDguNDlsLTcuNjggNC40M2MtMS41OS0zLjA1LTQuNjgtNC45Mi04LjgtNC45Mi02LjA3IDAtMTAgNC0xMCAxMHptODIuNDgtMjl2NDZoLTlWNWg5ek0zNi45NSAwTDczLjkgNjRIMEwzNi45NSAwem05Mi4zOCA1bC0yNy43MSA0OEw3My45MSA1SDg0LjNsMTcuMzIgMzAgMTcuMzItMzBoMTAuMzl6bTU4LjkxIDEydjkuNjljLTEtLjI5LTIuMDYtLjQ5LTMuMi0uNDktNS44MSAwLTEwIDQtMTAgMTBWNTFoLTlWMTdoOXY5LjJjMC01LjA4IDUuOTEtOS4yIDEzLjItOS4yelwiIGZpbGw9XCIjMDAwXCIvPicsXG4gICAgICAnPC9zdmc+JyxcbiAgICBdO1xuXG4gICAgbmV3IFNhbXBsZURpcihwcm9qZWN0LCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgWydpbmRleC4nICsgdGhpcy5maWxlRXh0XTogaW5kZXhKcy5qb2luKCdcXG4nKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHByb2plY3QsIHRoaXMuYXNzZXRzZGlyLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICAndmVyY2VsLnN2Zyc6IHZlcmNlbFN2Zy5qb2luKCdcXG4nKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBuZXcgU2FtcGxlRmlsZShwcm9qZWN0LCAnbmV4dC1lbnYuZC50cycsIHtcbiAgICAgIGNvbnRlbnRzOiBbXG4gICAgICAgICcvLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm5leHRcIiAvPicsXG4gICAgICAgICcvLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm5leHQvdHlwZXMvZ2xvYmFsXCIgLz4nLFxuICAgICAgICAnLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJuZXh0L2ltYWdlLXR5cGVzL2dsb2JhbFwiIC8+JyxcbiAgICAgICAgJy8vIE5PVEU6IFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGVkaXRlZCcsXG4gICAgICAgICcvLyBzZWUgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYmFzaWMtZmVhdHVyZXMvdHlwZXNjcmlwdCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nLFxuICAgICAgICAnJyxcbiAgICAgIF0uam9pbignXFxuJyksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
+ import { NodeProject } from '../javascript';
1
2
  import { JsonFile } from '../json';
2
- import { NodeProject } from '../node-project';
3
3
  import { TailwindConfig, TailwindConfigOptions } from './tailwind';
4
4
  /**
5
5
  * @experimental
@@ -31,5 +31,5 @@ class PostCss {
31
31
  }
32
32
  exports.PostCss = PostCss;
33
33
  _a = JSII_RTTI_SYMBOL_1;
34
- PostCss[_a] = { fqn: "projen.web.PostCss", version: "0.36.8" };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGNzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93ZWIvcG9zdGNzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtDQUFtQztBQUVuQyx5Q0FBbUU7Ozs7OztBQWNuRSxNQUFhLE9BQU87Ozs7SUFLbEIsWUFBWSxPQUFvQixFQUFFLE9BQXdCOztRQUN4RCxJQUFJLENBQUMsUUFBUSxTQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLG1DQUFJLHFCQUFxQixDQUFDO1FBRTNELE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFM0IsTUFBTSxNQUFNLEdBQTJCLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXZELFVBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFFBQVEsbUNBQUksSUFBSSxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlCQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxlQUFlLENBQUMsQ0FBQztZQUN0RSxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztTQUNoRDtRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxlQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRWpGLE1BQUEsT0FBTyxDQUFDLFNBQVMsMENBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO0lBQ2xELENBQUM7O0FBdEJILDBCQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpzb25GaWxlIH0gZnJvbSAnLi4vanNvbic7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gJy4uL25vZGUtcHJvamVjdCc7XG5pbXBvcnQgeyBUYWlsd2luZENvbmZpZywgVGFpbHdpbmRDb25maWdPcHRpb25zIH0gZnJvbSAnLi90YWlsd2luZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdENzc09wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZmlsZU5hbWU/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdGFpbHdpbmQ/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0YWlsd2luZE9wdGlvbnM/OiBUYWlsd2luZENvbmZpZ09wdGlvbnM7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgUG9zdENzcyB7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZTogSnNvbkZpbGU7XG4gIHB1YmxpYyByZWFkb25seSB0YWlsd2luZD86IFRhaWx3aW5kQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zPzogUG9zdENzc09wdGlvbnMpIHtcbiAgICB0aGlzLmZpbGVOYW1lID0gb3B0aW9ucz8uZmlsZU5hbWUgPz8gJ3Bvc3Rjc3MuY29uZmlnLmpzb24nO1xuXG4gICAgcHJvamVjdC5hZGREZXBzKCdwb3N0Y3NzJyk7XG5cbiAgICBjb25zdCBjb25maWc6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7IHBsdWdpbnM6IHt9IH07XG5cbiAgICBpZiAob3B0aW9ucz8udGFpbHdpbmQgPz8gdHJ1ZSkge1xuICAgICAgY29uZmlnLnBsdWdpbnMudGFpbHdpbmRjc3MgPSB7fTtcbiAgICAgIGNvbmZpZy5wbHVnaW5zLmF1dG9wcmVmaXhlciA9IHt9O1xuICAgICAgdGhpcy50YWlsd2luZCA9IG5ldyBUYWlsd2luZENvbmZpZyhwcm9qZWN0LCBvcHRpb25zPy50YWlsd2luZE9wdGlvbnMpO1xuICAgICAgcHJvamVjdC5hZGREZXBzKCd0YWlsd2luZGNzcycsICdhdXRvcHJlZml4ZXInKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbGUgPSBuZXcgSnNvbkZpbGUocHJvamVjdCwgdGhpcy5maWxlTmFtZSwgeyBvYmo6IGNvbmZpZywgbWFya2VyOiBmYWxzZSB9KTtcblxuICAgIHByb2plY3QubnBtaWdub3JlPy5leGNsdWRlKGAvJHt0aGlzLmZpbGVOYW1lfWApO1xuICB9XG59XG4iXX0=
34
+ PostCss[_a] = { fqn: "projen.web.PostCss", version: "0.37.0" };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGNzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93ZWIvcG9zdGNzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGtDQUFtQztBQUNuQyx5Q0FBbUU7Ozs7OztBQWNuRSxNQUFhLE9BQU87Ozs7SUFLbEIsWUFBWSxPQUFvQixFQUFFLE9BQXdCOztRQUN4RCxJQUFJLENBQUMsUUFBUSxTQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLG1DQUFJLHFCQUFxQixDQUFDO1FBRTNELE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFM0IsTUFBTSxNQUFNLEdBQTJCLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXZELFVBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFFBQVEsbUNBQUksSUFBSSxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlCQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxlQUFlLENBQUMsQ0FBQztZQUN0RSxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztTQUNoRDtRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxlQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRWpGLE1BQUEsT0FBTyxDQUFDLFNBQVMsMENBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO0lBQ2xELENBQUM7O0FBdEJILDBCQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAnLi4vamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBKc29uRmlsZSB9IGZyb20gJy4uL2pzb24nO1xuaW1wb3J0IHsgVGFpbHdpbmRDb25maWcsIFRhaWx3aW5kQ29uZmlnT3B0aW9ucyB9IGZyb20gJy4vdGFpbHdpbmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RDc3NPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZpbGVOYW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRhaWx3aW5kPzogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdGFpbHdpbmRPcHRpb25zPzogVGFpbHdpbmRDb25maWdPcHRpb25zO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIFBvc3RDc3Mge1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IEpzb25GaWxlO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFpbHdpbmQ/OiBUYWlsd2luZENvbmZpZztcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9ucz86IFBvc3RDc3NPcHRpb25zKSB7XG4gICAgdGhpcy5maWxlTmFtZSA9IG9wdGlvbnM/LmZpbGVOYW1lID8/ICdwb3N0Y3NzLmNvbmZpZy5qc29uJztcblxuICAgIHByb2plY3QuYWRkRGVwcygncG9zdGNzcycpO1xuXG4gICAgY29uc3QgY29uZmlnOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0geyBwbHVnaW5zOiB7fSB9O1xuXG4gICAgaWYgKG9wdGlvbnM/LnRhaWx3aW5kID8/IHRydWUpIHtcbiAgICAgIGNvbmZpZy5wbHVnaW5zLnRhaWx3aW5kY3NzID0ge307XG4gICAgICBjb25maWcucGx1Z2lucy5hdXRvcHJlZml4ZXIgPSB7fTtcbiAgICAgIHRoaXMudGFpbHdpbmQgPSBuZXcgVGFpbHdpbmRDb25maWcocHJvamVjdCwgb3B0aW9ucz8udGFpbHdpbmRPcHRpb25zKTtcbiAgICAgIHByb2plY3QuYWRkRGVwcygndGFpbHdpbmRjc3MnLCAnYXV0b3ByZWZpeGVyJyk7XG4gICAgfVxuXG4gICAgdGhpcy5maWxlID0gbmV3IEpzb25GaWxlKHByb2plY3QsIHRoaXMuZmlsZU5hbWUsIHsgb2JqOiBjb25maWcsIG1hcmtlcjogZmFsc2UgfSk7XG5cbiAgICBwcm9qZWN0Lm5wbWlnbm9yZT8uZXhjbHVkZShgLyR7dGhpcy5maWxlTmFtZX1gKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { Component } from '../component';
2
2
  import { FileBase, FileBaseOptions, IResolver } from '../file';
3
- import { NodeProject, NodeProjectOptions } from '../node-project';
3
+ import { NodeProject, NodeProjectOptions } from '../javascript';
4
4
  import { TypeScriptAppProject, TypeScriptProjectOptions } from '../typescript';
5
5
  /**
6
6
  * @experimental