projen 0.71.21 → 0.71.22

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 (128) hide show
  1. package/.jsii +2 -2
  2. package/lib/awscdk/auto-discover.js +5 -5
  3. package/lib/awscdk/awscdk-app-java.js +1 -1
  4. package/lib/awscdk/awscdk-app-py.js +1 -1
  5. package/lib/awscdk/awscdk-app-ts.js +1 -1
  6. package/lib/awscdk/awscdk-construct.js +2 -2
  7. package/lib/awscdk/awscdk-deps-java.js +1 -1
  8. package/lib/awscdk/awscdk-deps-js.js +1 -1
  9. package/lib/awscdk/awscdk-deps-py.js +1 -1
  10. package/lib/awscdk/awscdk-deps.js +1 -1
  11. package/lib/awscdk/cdk-config.js +1 -1
  12. package/lib/awscdk/cdk-tasks.js +1 -1
  13. package/lib/awscdk/integration-test.js +1 -1
  14. package/lib/awscdk/lambda-extension.js +1 -1
  15. package/lib/awscdk/lambda-function.js +2 -2
  16. package/lib/build/build-workflow.js +1 -1
  17. package/lib/cdk/auto-discover-base.js +2 -2
  18. package/lib/cdk/construct-lib.js +1 -1
  19. package/lib/cdk/integration-test-base.js +1 -1
  20. package/lib/cdk/jsii-docgen.js +1 -1
  21. package/lib/cdk/jsii-project.js +1 -1
  22. package/lib/cdk8s/auto-discover.js +2 -2
  23. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  24. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  25. package/lib/cdk8s/cdk8s-construct.js +1 -1
  26. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  27. package/lib/cdk8s/cdk8s-deps.js +1 -1
  28. package/lib/cdk8s/integration-test.js +1 -1
  29. package/lib/cdktf/cdktf-construct.js +1 -1
  30. package/lib/circleci/circleci.js +1 -1
  31. package/lib/component.js +1 -1
  32. package/lib/dependencies.js +1 -1
  33. package/lib/dev-env.js +1 -1
  34. package/lib/docker-compose/docker-compose-service.js +1 -1
  35. package/lib/docker-compose/docker-compose.js +1 -1
  36. package/lib/file.js +1 -1
  37. package/lib/gitattributes.js +1 -1
  38. package/lib/github/actions-provider.js +1 -1
  39. package/lib/github/auto-approve.js +1 -1
  40. package/lib/github/auto-merge.js +1 -1
  41. package/lib/github/dependabot.js +1 -1
  42. package/lib/github/github-credentials.js +1 -1
  43. package/lib/github/github-project.js +1 -1
  44. package/lib/github/github.js +1 -1
  45. package/lib/github/mergify.js +1 -1
  46. package/lib/github/pr-template.js +1 -1
  47. package/lib/github/pull-request-lint.js +1 -1
  48. package/lib/github/stale.js +1 -1
  49. package/lib/github/task-workflow.js +1 -1
  50. package/lib/github/workflow-actions.js +1 -1
  51. package/lib/github/workflow-jobs.js +1 -1
  52. package/lib/github/workflows.js +1 -1
  53. package/lib/gitlab/configuration.js +1 -1
  54. package/lib/gitlab/gitlab-configuration.js +1 -1
  55. package/lib/gitlab/nested-configuration.js +1 -1
  56. package/lib/gitpod.js +1 -1
  57. package/lib/ignore-file.js +1 -1
  58. package/lib/ini.js +1 -1
  59. package/lib/java/java-project.js +1 -1
  60. package/lib/java/junit.js +1 -1
  61. package/lib/java/maven-compile.js +1 -1
  62. package/lib/java/maven-packaging.js +1 -1
  63. package/lib/java/maven-sample.js +1 -1
  64. package/lib/java/pom.js +1 -1
  65. package/lib/java/projenrc.js +1 -1
  66. package/lib/javascript/bundler.js +1 -1
  67. package/lib/javascript/eslint.js +1 -1
  68. package/lib/javascript/jest.js +4 -4
  69. package/lib/javascript/node-package.js +1 -1
  70. package/lib/javascript/node-project.js +1 -1
  71. package/lib/javascript/npm-config.js +1 -1
  72. package/lib/javascript/prettier.js +1 -1
  73. package/lib/javascript/projenrc.js +1 -1
  74. package/lib/javascript/typescript-config.js +1 -1
  75. package/lib/javascript/upgrade-dependencies.js +2 -2
  76. package/lib/json-patch.js +1 -1
  77. package/lib/json.js +1 -1
  78. package/lib/license.js +1 -1
  79. package/lib/logger.js +1 -1
  80. package/lib/makefile.js +1 -1
  81. package/lib/object-file.js +1 -1
  82. package/lib/project-build.js +1 -1
  83. package/lib/project.js +1 -1
  84. package/lib/projects.js +1 -1
  85. package/lib/projenrc-json.js +2 -2
  86. package/lib/projenrc.js +1 -1
  87. package/lib/python/pip.js +1 -1
  88. package/lib/python/poetry.js +2 -2
  89. package/lib/python/projenrc.js +1 -1
  90. package/lib/python/pytest-sample.js +1 -1
  91. package/lib/python/pytest.js +1 -1
  92. package/lib/python/python-project.js +1 -1
  93. package/lib/python/python-sample.js +1 -1
  94. package/lib/python/requirements-file.js +1 -1
  95. package/lib/python/setuppy.js +1 -1
  96. package/lib/python/setuptools.js +1 -1
  97. package/lib/python/venv.js +1 -1
  98. package/lib/readme.js +1 -1
  99. package/lib/release/publisher.js +1 -1
  100. package/lib/release/release-trigger.js +1 -1
  101. package/lib/release/release.js +1 -1
  102. package/lib/renovatebot.js +1 -1
  103. package/lib/sample-file.js +2 -2
  104. package/lib/semver.js +1 -1
  105. package/lib/source-code.js +1 -1
  106. package/lib/task-runtime.js +1 -1
  107. package/lib/task.js +1 -1
  108. package/lib/tasks.js +1 -1
  109. package/lib/testing.js +1 -1
  110. package/lib/textfile.js +1 -1
  111. package/lib/toml.js +1 -1
  112. package/lib/typescript/projenrc-ts.js +1 -1
  113. package/lib/typescript/projenrc.js +1 -1
  114. package/lib/typescript/typescript-typedoc.js +1 -1
  115. package/lib/typescript/typescript.js +3 -3
  116. package/lib/version.js +1 -1
  117. package/lib/vscode/devcontainer.js +1 -1
  118. package/lib/vscode/extensions.js +1 -1
  119. package/lib/vscode/launch-config.js +1 -1
  120. package/lib/vscode/settings.js +1 -1
  121. package/lib/vscode/vscode.js +1 -1
  122. package/lib/web/next.js +3 -3
  123. package/lib/web/postcss.js +1 -1
  124. package/lib/web/react.js +4 -4
  125. package/lib/web/tailwind.js +1 -1
  126. package/lib/xmlfile.js +1 -1
  127. package/lib/yaml.js +1 -1
  128. package/package.json +2 -2
package/lib/gitpod.js CHANGED
@@ -240,6 +240,6 @@ class Gitpod extends component_1.Component {
240
240
  }
241
241
  }
242
242
  _a = JSII_RTTI_SYMBOL_1;
243
- Gitpod[_a] = { fqn: "projen.Gitpod", version: "0.71.21" };
243
+ Gitpod[_a] = { fqn: "projen.Gitpod", version: "0.71.22" };
244
244
  exports.Gitpod = Gitpod;
245
245
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0cG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dpdHBvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUF3QztBQVF4QyxpQ0FBa0M7QUFFbEM7O0dBRUc7QUFDSCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUM7QUFFbEM7Ozs7O0dBS0c7QUFFSDs7R0FFRztBQUNILElBQVksY0F5Qlg7QUF6QkQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gseUNBQXVCLENBQUE7SUFDdkI7O09BRUc7SUFDSCwyQ0FBeUIsQ0FBQTtJQUN6Qjs7T0FFRztJQUNILDZDQUEyQixDQUFBO0lBQzNCOztPQUVHO0lBQ0gsMkNBQXlCLENBQUE7SUFDekI7O09BRUc7SUFDSCx5Q0FBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUF6QlcsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUF5QnpCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFlBaUJYO0FBakJELFdBQVksWUFBWTtJQUN0Qjs7T0FFRztJQUNILGlDQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsNkJBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gsK0JBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gsNkJBQWEsQ0FBQTtBQUNmLENBQUMsRUFqQlcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFpQnZCO0FBMkREOztHQUVHO0FBQ0gsSUFBWSxZQW9CWDtBQXBCRCxXQUFZLFlBQVk7SUFDdEI7O09BRUc7SUFDSCw2Q0FBNkIsQ0FBQTtJQUU3Qjs7T0FFRztJQUNILDZDQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsaUNBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCxpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBcEJXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBb0J2QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxvQkFVWDtB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LHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50XCI7XG5pbXBvcnQge1xuICBJRGV2RW52aXJvbm1lbnQsXG4gIERldkVudmlyb25tZW50T3B0aW9ucyxcbiAgRGV2RW52aXJvbm1lbnREb2NrZXJJbWFnZSxcbn0gZnJvbSBcIi4vZGV2LWVudlwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3RcIjtcbmltcG9ydCB7IFRhc2sgfSBmcm9tIFwiLi90YXNrXCI7XG5pbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gXCIuL3lhbWxcIjtcblxuLyoqXG4gKiBSZWxhdGl2ZSBwYXRoIG9mIEdpdHBvZCBmaWxlIHRvIGdlbmVyYXRlXG4gKi9cbmNvbnN0IEdJVFBPRF9GSUxFID0gXCIuZ2l0cG9kLnltbFwiO1xuXG4vKipcbiAqIGh0dHBzOi8vd3d3LmdpdHBvZC5pby9kb2NzL2NvbmZpZ3VyYXRpb24vXG4gKiBodHRwczovL3d3dy5naXRwb2QuaW8vZG9jcy9jb25maWctc3RhcnQtdGFza3MvXG4gKiBodHRwczovL3d3dy5naXRwb2QuaW8vZG9jcy9wcmVidWlsZHMvI2NvbmZpZ3VyZS10aGUtZ2l0aHViLWFwcFxuICogaHR0cHM6Ly93d3cuZ2l0cG9kLmlvL2RvY3MvdnNjb2RlLWV4dGVuc2lvbnMvXG4gKi9cblxuLyoqXG4gKiBDb25maWd1cmUgaG93IHRoZSB0ZXJtaW5hbCBzaG91bGQgYmUgb3BlbmVkIHJlbGF0aXZlIHRvIHRoZSBwcmV2aW91cyB0YXNrLlxuICovXG5leHBvcnQgZW51bSBHaXRwb2RPcGVuTW9kZSB7XG4gIC8qKlxuICAgKiBPcGVucyBpbiB0aGUgc2FtZSB0YWIgZ3JvdXAgcmlnaHQgYWZ0ZXIgdGhlIHByZXZpb3VzIHRhYlxuICAgKi9cbiAgVEFCX0FGVEVSID0gXCJ0YWItYWZ0ZXJcIixcbiAgLyoqXG4gICAqIE9wZW5zIGluIHRoZSBzYW1lIHRhYiBncm91cCBsZWZ0IGJlZm9yZSB0aGUgcHJldmlvdXMgdGFiXG4gICAqL1xuICBUQUJfQkVGT1JFID0gXCJ0YWItYmVmb3JlXCIsXG4gIC8qKlxuICAgKiBTcGxpdHMgYW5kIGFkZHMgdGhlIHRlcm1pbmFsIHRvIHRoZSByaWdodFxuICAgKi9cbiAgU1BMSVRfUklHSFQgPSBcInNwbGl0LXJpZ2h0XCIsXG4gIC8qKlxuICAgKiBTcGxpdHMgYW5kIGFkZHMgdGhlIHRlcm1pbmFsIHRvIHRoZSBsZWZ0XG4gICAqL1xuICBTUExJVF9MRUZUID0gXCJzcGxpdC1sZWZ0XCIsXG4gIC8qKlxuICAgKiBTcGxpdHMgYW5kIGFkZHMgdGhlIHRlcm1pbmFsIHRvIHRoZSB0b3BcbiAgICovXG4gIFNQTElUX1RPUCA9IFwic3BsaXQtdG9wXCIsXG4gIC8qKlxuICAgKiBTcGxpdHMgYW5kIGFkZHMgdGhlIHRlcm1pbmFsIHRvIHRoZSBib3R0b21cbiAgICovXG4gIFNQTElUX0JPVFRPTSA9IFwic3BsaXQtYm90dG9tXCIsXG59XG5cbi8qKlxuICogQ29uZmlndXJlIHdoZXJlIGluIHRoZSBJREUgdGhlIHRlcm1pbmFsIHNob3VsZCBiZSBvcGVuZWQuXG4gKi9cbmV4cG9ydCBlbnVtIEdpdHBvZE9wZW5JbiB7XG4gIC8qKlxuICAgKiB0aGUgYm90dG9tIHBhbmVsIChkZWZhdWx0KVxuICAgKi9cbiAgQk9UVE9NID0gXCJib3R0b21cIixcbiAgLyoqXG4gICAqIHRoZSBsZWZ0IHBhbmVsXG4gICAqL1xuICBMRUZUID0gXCJsZWZ0XCIsXG4gIC8qKlxuICAgKiB0aGUgcmlnaHQgcGFuZWxcbiAgICovXG4gIFJJR0hUID0gXCJyaWdodFwiLFxuICAvKipcbiAgICogdGhlIG1haW4gZWRpdG9yIGFyZWFcbiAgICovXG4gIE1BSU4gPSBcIm1haW5cIixcbn1cblxuLyoqXG4gKiBDb25maWd1cmUgb3B0aW9ucyBmb3IgYSB0YXNrIHRvIGJlIHJ1biB3aGVuIG9wZW5pbmcgYSBHaXRwb2RcbiAqIHdvcmtzcGFjZSAoZS5nLiBydW5uaW5nIHRlc3RzLCBvciBzdGFydGluZyBhIGRldiBzZXJ2ZXIpLlxuICpcbiAqIFN0YXJ0IE1vZGUgICAgICAgICB8IEV4ZWN1dGlvblxuICogRnJlc2ggV29ya3NwYWNlICAgIHwgYmVmb3JlICYmIGluaXQgJiYgY29tbWFuZFxuICogUmVzdGFydCBXb3Jrc3BhY2UgIHwgYmVmb3JlICYmIGNvbW1hbmRcbiAqIFNuYXBzaG90ICAgICAgICAgICB8IGJlZm9yZSAmJiBjb21tYW5kXG4gKiBQcmVidWlsZCAgICAgICAgICAgfCBiZWZvcmUgJiYgaW5pdCAmJiBwcmVidWlsZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdHBvZFRhc2sge1xuICAvKipcbiAgICogUmVxdWlyZWQuIFRoZSBzaGVsbCBjb21tYW5kIHRvIHJ1blxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoaXMgdGFzay5cbiAgICogQGRlZmF1bHQgLSB0YXNrIG5hbWVzIGFyZSBvbWl0dGVkIHdoZW4gYmxhbmtcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFlvdSBjYW4gY29uZmlndXJlIGhvdyB0aGUgdGVybWluYWwgc2hvdWxkIGJlIG9wZW5lZCByZWxhdGl2ZSB0byB0aGUgcHJldmlvdXMgdGFzay5cbiAgICogQGRlZmF1bHQgR2l0cG9kT3Blbk1vZGUuVEFCX0FGVEVSXG4gICAqL1xuICByZWFkb25seSBvcGVuTW9kZT86IEdpdHBvZE9wZW5Nb2RlO1xuXG4gIC8qKlxuICAgKiBZb3UgY2FuIGNvbmZpZ3VyZSB3aGVyZSBpbiB0aGUgSURFIHRoZSB0ZXJtaW5hbCBzaG91bGQgYmUgb3BlbmVkXG4gICAqIEBkZWZhdWx0IEdpdHBvZE9wZW5Jbi5CT1RUT01cbiAgICovXG4gIHJlYWRvbmx5IG9wZW5Jbj86IEdpdHBvZE9wZW5JbjtcblxuICAvKipcbiAgICogSW4gY2FzZSB5b3UgbmVlZCB0byBydW4gc29tZXRoaW5nIGV2ZW4gYmVmb3JlIGluaXQsIHRoYXQgaXMgYSByZXF1aXJlbWVudCBmb3IgYm90aCBpbml0IGFuZCBjb21tYW5kLFxuICAgKiB5b3UgY2FuIHVzZSB0aGUgYmVmb3JlIHByb3BlcnR5LlxuICAgKiBAZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgYmVmb3JlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdCBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHNoZWxsIGNvbW1hbmRzIHRoYXQgc2hvdWxkIG9ubHkgYmUgZXhlY3V0ZWQgYWZ0ZXIgYSB3b3Jrc3BhY2VcbiAgICogd2FzIGZyZXNobHkgY2xvbmVkIGFuZCBuZWVkcyB0byBiZSBpbml0aWFsaXplZCBzb21laG93LiBTdWNoIHRhc2tzIGFyZSB1c3VhbGx5IGJ1aWxkcyBvciBkb3dubG9hZGluZ1xuICAgKiBkZXBlbmRlbmNpZXMuIEFueXRoaW5nIHlvdSBvbmx5IHdhbnQgdG8gZG8gb25jZSBidXQgbm90IHdoZW4geW91IHJlc3RhcnQgYSB3b3Jrc3BhY2Ugb3Igc3RhcnQgYSBzbmFwc2hvdC5cbiAgICogQGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGluaXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBwcmVidWlsZCBjb21tYW5kIHdpbGwgYmUgZXhlY3V0ZWQgZHVyaW5nIHByZWJ1aWxkcy4gSXQgaXMgbWVhbnQgdG8gcnVuIGFkZGl0aW9uYWwgbG9uZyBydW5uaW5nXG4gICAqIHByb2Nlc3NlcyB0aGF0IGNvdWxkIGJlIHVzZWZ1bCwgZS5nLiBydW5uaW5nIHRlc3Qgc3VpdGVzLlxuICAgKiBAZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgcHJlYnVpbGQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV2hhdCB0byBkbyB3aGVuIGEgc2VydmljZSBvbiBhIHBvcnQgaXMgZGV0ZWN0ZWQuXG4gKi9cbmV4cG9ydCBlbnVtIEdpdHBvZE9uT3BlbiB7XG4gIC8qKlxuICAgKiBPcGVuIGEgbmV3IGJyb3dzZXIgdGFiXG4gICAqL1xuICBPUEVOX0JST1dTRVIgPSBcIm9wZW4tYnJvd3NlclwiLFxuXG4gIC8qKlxuICAgKiBPcGVuIGEgcHJldmlldyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgSURFXG4gICAqL1xuICBPUEVOX1BSRVZJRVcgPSBcIm9wZW4tcHJldmlld1wiLFxuXG4gIC8qKlxuICAgKiBTaG93IGEgbm90aWZpY2F0aW9uIGFza2luZyB0aGUgdXNlciB3aGF0IHRvIGRvIChkZWZhdWx0KVxuICAgKi9cbiAgTk9USUZZID0gXCJub3RpZnlcIixcblxuICAvKipcbiAgICogRG8gbm90aGluZy5cbiAgICovXG4gIElHTk9SRSA9IFwiaWdub3JlXCIsXG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgcG9ydCB2aXNpYmlsaXR5IHNob3VsZCBiZSBwcml2YXRlIG9yIHB1YmxpY1xuICovXG5leHBvcnQgZW51bSBHaXRwb2RQb3J0VmlzaWJpbGl0eSB7XG4gIC8qKlxuICAgKiBBbGxvd3MgZXZlcnlvbmUgd2l0aCB0aGUgcG9ydCBVUkwgdG8gYWNjZXNzIHRoZSBwb3J0IChkZWZhdWx0KVxuICAgKi9cbiAgUFVCTElDID0gXCJwdWJsaWNcIixcblxuICAvKipcbiAgICogT25seSBhbGxvd3MgdXNlcnMgd2l0aCB3b3Jrc3BhY2UgYWNjZXNzIHRvIGFjY2VzcyB0aGUgcG9ydFxuICAgKi9cbiAgUFJJVkFURSA9IFwicHJpdmF0ZVwiLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGFuIGV4cG9zZWQgcG9ydCBvbiBHaXRwb2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRwb2RQb3J0IHtcbiAgLyoqXG4gICAqIEEgcG9ydCB0aGF0IHNob3VsZCBiZSBleHBvc2VkIChmb3J3YXJkZWQpIGZyb20gdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQGV4YW1wbGUgXCI4MDgwXCJcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoYXQgdG8gZG8gd2hlbiBhIHNlcnZpY2Ugb24gYSBwb3J0IGlzIGRldGVjdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBHaXRwb2RPbk9wZW4uTk9USUZZXG4gICAqL1xuICByZWFkb25seSBvbk9wZW4/OiBHaXRwb2RPbk9wZW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBvcnQgdmlzaWJpbGl0eSBzaG91bGQgYmUgcHJpdmF0ZSBvciBwdWJsaWMuXG4gICAqXG4gICAqIEBkZWZhdWx0IEdpdHBvZFBvcnRWaXNpYmlsaXR5LlBVQkxJQ1xuICAgKi9cbiAgcmVhZG9ubHkgdmlzaWJpbGl0eT86IEdpdHBvZFBvcnRWaXNpYmlsaXR5O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZSB0aGUgR2l0cG9kIEFwcCBmb3IgcHJlYnVpbGRzLlxuICogQ3VycmVudGx5IG9ubHkgR2l0SHViIGlzIHN1cHBvcnRlZC5cbiAqIEBzZWUgaHR0cHM6Ly93d3cuZ2l0cG9kLmlvL2RvY3MvcHJlYnVpbGRzL1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdHBvZFByZWJ1aWxkcyB7XG4gIC8qKlxuICAgKiBFbmFibGUgZm9yIHRoZSBtYXN0ZXIvZGVmYXVsdCBicmFuY2hcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbWFzdGVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGZvciBhbGwgYnJhbmNoZXMgaW4gdGhpcyByZXBvXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBicmFuY2hlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBmb3IgcHVsbCByZXF1ZXN0cyBjb21pbmcgZnJvbSB0aGlzIHJlcG9cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGZvciBwdWxsIHJlcXVlc3RzIGNvbWluZyBmcm9tIGZvcmtzXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdHNGcm9tRm9ya3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGQgYSBjaGVjayB0byBwdWxsIHJlcXVlc3RzXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFkZENoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkIGEgXCJSZXZpZXcgaW4gR2l0cG9kXCIgYnV0dG9uIGFzIGEgY29tbWVudCB0byBwdWxsIHJlcXVlc3RzXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhZGRDb21tZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkIGEgXCJSZXZpZXcgaW4gR2l0cG9kXCIgYnV0dG9uIHRvIHRoZSBwdWxsIHJlcXVlc3QncyBkZXNjcmlwdGlvblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkQmFkZ2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGQgYSBsYWJlbCBvbmNlIHRoZSBwcmVidWlsZCBpcyByZWFkeSB0byBwdWxsIHJlcXVlc3RzXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhZGRMYWJlbD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uc3RydWN0b3Igb3B0aW9ucyBmb3IgdGhlIEdpdHBvZCBjb21wb25lbnQuXG4gKlxuICogQnkgZGVmYXVsdCwgR2l0cG9kIHVzZXMgdGhlICdnaXRwb2Qvd29ya3NwYWNlLWZ1bGwnIGRvY2tlciBpbWFnZS5cbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2dpdHBvZC1pby93b3Jrc3BhY2UtaW1hZ2VzL2Jsb2IvbWFzdGVyL2Z1bGwvRG9ja2VyZmlsZVxuICpcbiAqIEJ5IGRlZmF1bHQsIGFsbCB0YXNrcyB3aWxsIGJlIHJ1biBpbiBwYXJhbGxlbC4gVG8gcnVuIHRoZSB0YXNrcyBpbiBzZXF1ZW5jZSxcbiAqIGNyZWF0ZSBhIG5ldyB0YXNrIGFuZCBzcGVjaWZ5IHRoZSBvdGhlciB0YXNrcyBhcyBzdWJ0YXNrcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRwb2RPcHRpb25zIGV4dGVuZHMgRGV2RW52aXJvbm1lbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIEdpdHBvZCdzIEdpdGh1YiBBcHAgaW50ZWdyYXRpb24gZm9yIHByZWJ1aWxkc1xuICAgKiBJZiB0aGlzIGlzIG5vdCBzZXQgYW5kIEdpdHBvZCdzIEdpdGh1YiBBcHAgaXMgaW5zdGFsbGVkLCB0aGVuIEdpdHBvZCB3aWxsIGFwcGx5XG4gICAqIHRoZXNlIGRlZmF1bHRzOiBodHRwczovL3d3dy5naXRwb2QuaW8vZG9jcy9wcmVidWlsZHMvI2NvbmZpZ3VyZS10aGUtZ2l0aHViLWFwcFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHByZWJ1aWxkcz86IEdpdHBvZFByZWJ1aWxkcztcbn1cblxuLyoqXG4gKiBUaGUgR2l0cG9kIGNvbXBvbmVudCB3aGljaCBlbWl0cyAuZ2l0cG9kLnltbFxuICovXG5leHBvcnQgY2xhc3MgR2l0cG9kIGV4dGVuZHMgQ29tcG9uZW50IGltcGxlbWVudHMgSURldkVudmlyb25tZW50IHtcbiAgcHJpdmF0ZSBkb2NrZXJJbWFnZTogRGV2RW52aXJvbm1lbnREb2NrZXJJbWFnZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBwcmVidWlsZHM6IEdpdHBvZFByZWJ1aWxkcyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSB0YXNrcyA9IG5ldyBBcnJheTxHaXRwb2RUYXNrPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBvcnRzID0gbmV3IEFycmF5PEdpdHBvZFBvcnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdnNjb2RlRXh0ZW5zaW9ucyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIERpcmVjdCBhY2Nlc3MgdG8gdGhlIGdpdHBvZCBjb25maWd1cmF0aW9uIChlc2NhcGUgaGF0Y2gpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogR2l0cG9kT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmRvY2tlckltYWdlID0gb3B0aW9ucz8uZG9ja2VySW1hZ2U7XG5cbiAgICBpZiAob3B0aW9ucz8udGFza3MpIHtcbiAgICAgIGZvciAoY29uc3QgdGFzayBvZiBvcHRpb25zLnRhc2tzKSB7XG4gICAgICAgIHRoaXMuYWRkVGFza3ModGFzayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnM/LnByZWJ1aWxkcykge1xuICAgICAgdGhpcy5hZGRQcmVidWlsZHMob3B0aW9ucy5wcmVidWlsZHMpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zPy5wb3J0cykge1xuICAgICAgdGhpcy5hZGRQb3J0cyguLi5vcHRpb25zLnBvcnRzKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucz8udnNjb2RlRXh0ZW5zaW9ucykge1xuICAgICAgdGhpcy5hZGRWc2NvZGVFeHRlbnNpb25zKC4uLm9wdGlvbnMudnNjb2RlRXh0ZW5zaW9ucyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBpbWFnZTogKCkgPT4gdGhpcy5yZW5kZXJEb2NrZXJJbWFnZSgpLFxuICAgICAgdGFza3M6IHRoaXMudGFza3MsXG4gICAgICBnaXRodWI6ICgpID0+IHRoaXMucmVuZGVyUHJlYnVpbGRzKCksXG4gICAgICBwb3J0czogdGhpcy5wb3J0cyxcbiAgICAgIHZzY29kZToge1xuICAgICAgICBleHRlbnNpb25zOiB0aGlzLnZzY29kZUV4dGVuc2lvbnMsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBuZXcgWWFtbEZpbGUodGhpcy5wcm9qZWN0LCBHSVRQT0RfRklMRSwge1xuICAgICAgb2JqOiB0aGlzLmNvbmZpZyxcbiAgICAgIG9taXRFbXB0eTogdHJ1ZSxcbiAgICAgIC8vIEdpdFBvZCBuZWVkcyB0byByZWFkIHRoZSBmaWxlIGZyb20gdGhlIHJlcG9zaXRvcnkgaW4gb3JkZXIgdG8gd29yay5cbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBjdXN0b20gRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUgZm9yIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBwYXJhbSBpbWFnZSBUaGUgRG9ja2VyIGltYWdlXG4gICAqL1xuICBwdWJsaWMgYWRkRG9ja2VySW1hZ2UoaW1hZ2U6IERldkVudmlyb25tZW50RG9ja2VySW1hZ2UpIHtcbiAgICBpZiAodGhpcy5kb2NrZXJJbWFnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZG9ja2VySW1hZ2UgY2Fubm90IGJlIHJlZGVmaW5lZC5cIik7XG4gICAgfVxuICAgIHRoaXMuZG9ja2VySW1hZ2UgPSBpbWFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGFza3MgdG8gcnVuIHdoZW4gZ2l0cG9kIHN0YXJ0cy5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgYWxsIHRhc2tzIHdpbGwgYmUgcnVuIGluIHBhcmFsbGVsLiBUbyBydW4gdGFza3MgaW4gc2VxdWVuY2UsXG4gICAqIGNyZWF0ZSBhIG5ldyBgVGFza2AgYW5kIHNwZWNpZnkgdGhlIG90aGVyIHRhc2tzIGFzIHN1YnRhc2tzLlxuICAgKlxuICAgKiBAcGFyYW0gdGFza3MgVGhlIG5ldyB0YXNrc1xuICAgKi9cbiAgcHVibGljIGFkZFRhc2tzKC4uLnRhc2tzOiBUYXNrW10pIHtcbiAgICB0aGlzLnRhc2tzLnB1c2goXG4gICAgICAuLi50YXNrcy5tYXAoKHRhc2spID0+ICh7XG4gICAgICAgIG5hbWU6IHRhc2submFtZSxcbiAgICAgICAgY29tbWFuZDogYG5weCBwcm9qZW4gJHt0YXNrLm5hbWV9YCxcbiAgICAgIH0pKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcHJlYnVpbGRzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBHaXRwb2QgQXBwXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBhZGRQcmVidWlsZHMoY29uZmlnOiBHaXRwb2RQcmVidWlsZHMpIHtcbiAgICB0aGlzLnByZWJ1aWxkcyA9IGNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB0YXNrIHdpdGggbW9yZSBncmFudWxhciBvcHRpb25zLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBhbGwgdGFza3Mgd2lsbCBiZSBydW4gaW4gcGFyYWxsZWwuIFRvIHJ1biB0YXNrcyBpbiBzZXF1ZW5jZSxcbiAgICogY3JlYXRlIGEgbmV3IGBUYXNrYCBhbmQgc2V0IHRoZSBvdGhlciB0YXNrcyBhcyBzdWJ0YXNrcy5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIHRhc2sgcGFyYW1ldGVyc1xuICAgKi9cbiAgcHVibGljIGFkZEN1c3RvbVRhc2sob3B0aW9uczogR2l0cG9kVGFzaykge1xuICAgIHRoaXMudGFza3MucHVzaCh7XG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBjb21tYW5kOiBvcHRpb25zLmNvbW1hbmQsXG4gICAgICBvcGVuTW9kZTogb3B0aW9ucy5vcGVuTW9kZSxcbiAgICAgIG9wZW5Jbjogb3B0aW9ucy5vcGVuSW4sXG4gICAgICBiZWZvcmU6IG9wdGlvbnMuYmVmb3JlLFxuICAgICAgaW5pdDogb3B0aW9ucy5pbml0LFxuICAgICAgcHJlYnVpbGQ6IG9wdGlvbnMucHJlYnVpbGQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHBvcnRzIHRoYXQgc2hvdWxkIGJlIGV4cG9zZWQgKGZvcndhcmRlZCkgZnJvbSB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBAcGFyYW0gcG9ydHMgVGhlIG5ldyBwb3J0c1xuICAgKi9cbiAgcHVibGljIGFkZFBvcnRzKC4uLnBvcnRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMucG9ydHMucHVzaCguLi5wb3J0cy5tYXAoKHBvcnQpID0+ICh7IHBvcnQ6IHBvcnQgfSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBsaXN0IG9mIFZTQ29kZSBleHRlbnNpb25zIHRoYXQgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkXG4gICAqIGluIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIFRoZXNlIG11c3QgYmUgaW4gdGhlIGZvcm1hdCBkZWZpbmVkIGluIHRoZSBPcGVuIFZTWCByZWdpc3RyeS5cbiAgICogQGV4YW1wbGUgJ3NjYWxhLWxhbmcuc2NhbGFAMC4zLjk6TzVYbWp3WTVHeiswb0RaQW1xbmVKdz09J1xuICAgKiBAc2VlIGh0dHBzOi8vd3d3LmdpdHBvZC5pby9kb2NzL3ZzY29kZS1leHRlbnNpb25zL1xuICAgKlxuICAgKiBAcGFyYW0gZXh0ZW5zaW9ucyBUaGUgZXh0ZW5zaW9uIElEc1xuICAgKi9cbiAgcHVibGljIGFkZFZzY29kZUV4dGVuc2lvbnMoLi4uZXh0ZW5zaW9uczogR2l0cG9kQ29kZUV4dGVuc2lvbklkW10pIHtcbiAgICB0aGlzLnZzY29kZUV4dGVuc2lvbnMucHVzaCguLi5leHRlbnNpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRG9ja2VySW1hZ2UoKSB7XG4gICAgaWYgKHRoaXMuZG9ja2VySW1hZ2U/LmltYWdlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kb2NrZXJJbWFnZS5pbWFnZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZG9ja2VySW1hZ2U/LmRvY2tlckZpbGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZpbGU6IHRoaXMuZG9ja2VySW1hZ2UuZG9ja2VyRmlsZSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJQcmVidWlsZHMoKSB7XG4gICAgaWYgKHRoaXMucHJlYnVpbGRzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcmVidWlsZHM6IHRoaXMucHJlYnVpbGRzLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBWUyBDb2RlIGV4dGVuc2lvbnMgYXMgZGVmaW5lZCBpbiB0aGUgT3BlbiBWU1ggcmVnaXN0cnlcbiAqIEV4YW1wbGU6IGBzY2FsYS1sYW5nLnNjYWxhQDAuMy45Ok81WG1qd1k1R3orMG9EWkFtcW5lSnc9PWBcbiAqL1xudHlwZSBHaXRwb2RDb2RlRXh0ZW5zaW9uSWQgPSBzdHJpbmc7XG4iXX0=
@@ -96,7 +96,7 @@ class IgnoreFile extends file_1.FileBase {
96
96
  }
97
97
  }
98
98
  _a = JSII_RTTI_SYMBOL_1;
99
- IgnoreFile[_a] = { fqn: "projen.IgnoreFile", version: "0.71.21" };
99
+ IgnoreFile[_a] = { fqn: "projen.IgnoreFile", version: "0.71.22" };
100
100
  exports.IgnoreFile = IgnoreFile;
101
101
  // O(n) hooray!
102
102
  function remove(arr, value) {
package/lib/ini.js CHANGED
@@ -25,6 +25,6 @@ class IniFile extends object_file_1.ObjectFile {
25
25
  }
26
26
  }
27
27
  _a = JSII_RTTI_SYMBOL_1;
28
- IniFile[_a] = { fqn: "projen.IniFile", version: "0.71.21" };
28
+ IniFile[_a] = { fqn: "projen.IniFile", version: "0.71.22" };
29
29
  exports.IniFile = IniFile;
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJCQUEyQjtBQUUzQiwrQ0FBOEQ7QUFROUQ7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSx3QkFBVTtJQUNyQyxZQUFZLE9BQWdCLEVBQUUsUUFBZ0IsRUFBRSxPQUF1QjtRQUNyRSxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRVMsaUJBQWlCLENBQUMsUUFBbUI7UUFDN0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE9BQU87WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUMsRUFBRTtZQUNGLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNmLENBQUM7Ozs7QUFoQlUsMEJBQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBJTkkgZnJvbSBcImluaVwiO1xuaW1wb3J0IHsgSVJlc29sdmVyIH0gZnJvbSBcIi4vZmlsZVwiO1xuaW1wb3J0IHsgT2JqZWN0RmlsZSwgT2JqZWN0RmlsZU9wdGlvbnMgfSBmcm9tIFwiLi9vYmplY3QtZmlsZVwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3RcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgSW5pRmlsZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5pRmlsZU9wdGlvbnMgZXh0ZW5kcyBPYmplY3RGaWxlT3B0aW9ucyB7fVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gSU5JIGZpbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmlGaWxlIGV4dGVuZHMgT2JqZWN0RmlsZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIGZpbGVQYXRoOiBzdHJpbmcsIG9wdGlvbnM6IEluaUZpbGVPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCwgZmlsZVBhdGgsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVDb250ZW50KHJlc29sdmVyOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGpzb24gPSBzdXBlci5zeW50aGVzaXplQ29udGVudChyZXNvbHZlcik7XG4gICAgaWYgKCFqc29uKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAuLi4odGhpcy5tYXJrZXIgPyBbYCMgJHt0aGlzLm1hcmtlcn1gXSA6IFtdKSxcbiAgICAgIFwiXCIsXG4gICAgICBJTkkuc3RyaW5naWZ5KEpTT04ucGFyc2UoanNvbikpLFxuICAgIF0uam9pbihcIlxcblwiKTtcbiAgfVxufVxuIl19
@@ -90,6 +90,6 @@ class JavaProject extends github_1.GitHubProject {
90
90
  }
91
91
  }
92
92
  _a = JSII_RTTI_SYMBOL_1;
93
- JavaProject[_a] = { fqn: "projen.java.JavaProject", version: "0.71.21" };
93
+ JavaProject[_a] = { fqn: "projen.java.JavaProject", version: "0.71.22" };
94
94
  exports.JavaProject = JavaProject;
95
95
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvamF2YS1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQThDO0FBQzlDLG1EQUFvRTtBQUNwRSx1REFBMEU7QUFDMUUsaURBQTZDO0FBQzdDLCtCQUF1RDtBQUN2RCx5Q0FBdUU7QUFDdkUsc0NBQWdFO0FBQ2hFLGtDQUF3RDtBQXFHeEQ7Ozs7R0FJRztBQUNILE1BQWEsV0FBWSxTQUFRLHNCQUFhO0lBK0I1QyxZQUFZLE9BQTJCO1FBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUM7UUFDOUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbEMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXZFLElBQUksSUFBQSx1QkFBZ0IsRUFBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELENBQzdELENBQUM7U0FDSDtRQUVELGlFQUFpRTtRQUNqRSxJQUNFLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDWixDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFBLGtCQUFXLEVBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUN6RDtZQUNBLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxtQkFBWSxDQUM5QixJQUFJLEVBQ0osSUFBSSxDQUFDLEdBQUcsRUFDUixPQUFPLENBQUMsbUJBQW1CLENBQzVCLENBQUM7U0FDSDtRQUVELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixJQUFJLFVBQVUsQ0FBQztRQUVsRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxhQUFLLENBQUMsSUFBSSxFQUFFO2dCQUMzQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2IsaUJBQWlCO2dCQUNqQixHQUFHLE9BQU8sQ0FBQyxZQUFZO2FBQ3hCLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtZQUMxQixJQUFJLDBCQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztTQUN2RDtRQUVELDZCQUE2QjtRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksNEJBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGdDQUFjLENBQ2pDLElBQUksRUFDSixJQUFJLENBQUMsR0FBRyxFQUNSLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FDekIsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMseURBQXlELEVBQUU7WUFDeEUsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDekQsYUFBYSxFQUFFO2dCQUNiLEtBQUssRUFBRSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDdkQ7U0FDRixDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7UUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLElBQVk7UUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLElBQVk7UUFDbkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksU0FBUyxDQUFDLElBQVksRUFBRSxVQUF5QixFQUFFO1FBQ3hELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7Ozs7QUFqSVUsa0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKdW5pdCwgSnVuaXRPcHRpb25zIH0gZnJvbSBcIi4vanVuaXRcIjtcbmltcG9ydCB7IE1hdmVuQ29tcGlsZSwgTWF2ZW5Db21waWxlT3B0aW9ucyB9IGZyb20gXCIuL21hdmVuLWNvbXBpbGVcIjtcbmltcG9ydCB7IE1hdmVuUGFja2FnaW5nLCBNYXZlblBhY2thZ2luZ09wdGlvbnMgfSBmcm9tIFwiLi9tYXZlbi1wYWNrYWdpbmdcIjtcbmltcG9ydCB7IE1hdmVuU2FtcGxlIH0gZnJvbSBcIi4vbWF2ZW4tc2FtcGxlXCI7XG5pbXBvcnQgeyBQbHVnaW5PcHRpb25zLCBQb20sIFBvbU9wdGlvbnMgfSBmcm9tIFwiLi9wb21cIjtcbmltcG9ydCB7IFByb2plbnJjIGFzIFByb2plbnJjSmF2YSwgUHJvamVucmNPcHRpb25zIH0gZnJvbSBcIi4vcHJvamVucmNcIjtcbmltcG9ydCB7IEdpdEh1YlByb2plY3QsIEdpdEh1YlByb2plY3RPcHRpb25zIH0gZnJvbSBcIi4uL2dpdGh1YlwiO1xuaW1wb3J0IHsgYW55U2VsZWN0ZWQsIG11bHRpcGxlU2VsZWN0ZWQgfSBmcm9tIFwiLi4vdXRpbFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBKYXZhUHJvamVjdGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSmF2YVByb2plY3RDb21tb25PcHRpb25zXG4gIGV4dGVuZHMgR2l0SHViUHJvamVjdE9wdGlvbnMsXG4gICAgUG9tT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBGaW5hbCBhcnRpZmFjdCBvdXRwdXQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImRpc3QvamF2YVwiXG4gICAqL1xuICByZWFkb25seSBkaXN0ZGlyPzogc3RyaW5nO1xuXG4gIC8vIC0tIGRlcGVuZGVuY2llcyAtLVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJ1bnRpbWUgZGVwZW5kZW5jaWVzIGZvciB0aGlzIHByb2plY3QuXG4gICAqXG4gICAqIERlcGVuZGVuY2llcyB1c2UgdGhlIGZvcm1hdDogYDxncm91cElkPi88YXJ0aWZhY3RJZD5APHNlbXZlcj5gXG4gICAqXG4gICAqIEFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIGNhbiBiZSBhZGRlZCB2aWEgYHByb2plY3QuYWRkRGVwZW5kZW5jeSgpYC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSBkZXBzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgdGVzdCBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgcHJvamVjdC5cbiAgICpcbiAgICogRGVwZW5kZW5jaWVzIHVzZSB0aGUgZm9ybWF0OiBgPGdyb3VwSWQ+LzxhcnRpZmFjdElkPkA8c2VtdmVyPmBcbiAgICpcbiAgICogQWRkaXRpb25hbCBkZXBlbmRlbmNpZXMgY2FuIGJlIGFkZGVkIHZpYSBgcHJvamVjdC5hZGRUZXN0RGVwZW5kZW5jeSgpYC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSB0ZXN0RGVwcz86IHN0cmluZ1tdO1xuXG4gIC8vIC0tIGNvbXBvbmVudHMgLS1cblxuICAvKipcbiAgICogSW5jbHVkZSBqdW5pdCB0ZXN0cy5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkganVuaXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBqdW5pdCBvcHRpb25zXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdHNcbiAgICovXG4gIHJlYWRvbmx5IGp1bml0T3B0aW9ucz86IEp1bml0T3B0aW9ucztcblxuICAvKipcbiAgICogUGFja2FnaW5nIG9wdGlvbnMuXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdHNcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2luZ09wdGlvbnM/OiBNYXZlblBhY2thZ2luZ09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIENvbXBpbGUgb3B0aW9ucy5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0c1xuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsZU9wdGlvbnM/OiBNYXZlbkNvbXBpbGVPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBVc2UgcHJvamVucmMgaW4gamF2YS5cbiAgICpcbiAgICogVGhpcyB3aWxsIGluc3RhbGwgYHByb2plbmAgYXMgYSBqYXZhIGRlcGVuZGVuY3kgYW5kIHdpbGwgYWRkIGEgYHN5bnRoYCB0YXNrIHdoaWNoXG4gICAqIHdpbGwgY29tcGlsZSAmIGV4ZWN1dGUgYG1haW4oKWAgZnJvbSBgc3JjL21haW4vamF2YS9wcm9qZW5yYy5qYXZhYC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVucmNKYXZhPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9ucyByZWxhdGVkIHRvIHByb2plbnJjIGluIGphdmEuXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBwcm9qZW5yY0phdmFPcHRpb25zPzogUHJvamVucmNPcHRpb25zO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBKYXZhUHJvamVjdGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSmF2YVByb2plY3RPcHRpb25zIGV4dGVuZHMgSmF2YVByb2plY3RDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEluY2x1ZGUgc2FtcGxlIGNvZGUgYW5kIHRlc3QgaWYgdGhlIHJlbGV2YW50IGRpcmVjdG9yaWVzIGRvbid0IGV4aXN0LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzYW1wbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgamF2YSBwYWNrYWdlIHRvIHVzZSBmb3IgdGhlIGNvZGUgc2FtcGxlLlxuICAgKiBAZGVmYXVsdCBcIm9yZy5hY21lXCJcbiAgICovXG4gIHJlYWRvbmx5IHNhbXBsZUphdmFQYWNrYWdlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEphdmEgcHJvamVjdC5cbiAqXG4gKiBAcGppZCBqYXZhXG4gKi9cbmV4cG9ydCBjbGFzcyBKYXZhUHJvamVjdCBleHRlbmRzIEdpdEh1YlByb2plY3Qge1xuICAvKipcbiAgICogQVBJIGZvciBtYW5hZ2luZyBgcG9tLnhtbGAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcG9tOiBQb207XG5cbiAgLyoqXG4gICAqIEpVbml0IGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBqdW5pdD86IEp1bml0O1xuXG4gIC8qKlxuICAgKiBQYWNrYWdpbmcgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhY2thZ2luZzogTWF2ZW5QYWNrYWdpbmc7XG5cbiAgLyoqXG4gICAqIENvbXBpbGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbXBpbGU6IE1hdmVuQ29tcGlsZTtcblxuICAvKipcbiAgICogUHJvamVucmMgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb2plbnJjPzogUHJvamVucmNKYXZhO1xuXG4gIC8qKlxuICAgKiBNYXZlbiBhcnRpZmFjdCBvdXRwdXQgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpc3RkaXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBKYXZhUHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuZGlzdGRpciA9IG9wdGlvbnMuZGlzdGRpciA/PyBcImRpc3QvamF2YVwiO1xuICAgIHRoaXMucG9tID0gbmV3IFBvbSh0aGlzLCBvcHRpb25zKTtcblxuICAgIGNvbnN0IHJjRmlsZVR5cGVPcHRpb25zID0gW29wdGlvbnMucHJvamVucmNKYXZhLCBvcHRpb25zLnByb2plbnJjSnNvbl07XG5cbiAgICBpZiAobXVsdGlwbGVTZWxlY3RlZChyY0ZpbGVUeXBlT3B0aW9ucykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJPbmx5IG9uZSBvZiBwcm9qZW5yY0phdmEgYW5kIHByb2plbnJjSnNvbiBjYW4gYmUgc2VsZWN0ZWQuXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCB0byBwcm9qZW5yYy5qYXZhIGlmIG5vIG90aGVyIHByb2plbnJjIHR5cGUgd2FzIGVsZWN0ZWRcbiAgICBpZiAoXG4gICAgICAhdGhpcy5wYXJlbnQgJiZcbiAgICAgIChvcHRpb25zLnByb2plbnJjSmF2YSA/PyAhYW55U2VsZWN0ZWQocmNGaWxlVHlwZU9wdGlvbnMpKVxuICAgICkge1xuICAgICAgdGhpcy5wcm9qZW5yYyA9IG5ldyBQcm9qZW5yY0phdmEoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMucG9tLFxuICAgICAgICBvcHRpb25zLnByb2plbnJjSmF2YU9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2FtcGxlSmF2YVBhY2thZ2UgPSBvcHRpb25zLnNhbXBsZUphdmFQYWNrYWdlID8/IFwib3JnLmFjbWVcIjtcblxuICAgIGlmIChvcHRpb25zLmp1bml0ID8/IHRydWUpIHtcbiAgICAgIHRoaXMuanVuaXQgPSBuZXcgSnVuaXQodGhpcywge1xuICAgICAgICBwb206IHRoaXMucG9tLFxuICAgICAgICBzYW1wbGVKYXZhUGFja2FnZSxcbiAgICAgICAgLi4ub3B0aW9ucy5qdW5pdE9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5zYW1wbGUgPz8gdHJ1ZSkge1xuICAgICAgbmV3IE1hdmVuU2FtcGxlKHRoaXMsIHsgcGFja2FnZTogc2FtcGxlSmF2YVBhY2thZ2UgfSk7XG4gICAgfVxuXG4gICAgLy8gcGxhdGZvcm0gaW5kZXBlbmRlbnQgYnVpbGRcbiAgICB0aGlzLnBvbS5hZGRQcm9wZXJ0eShcInByb2plY3QuYnVpbGQuc291cmNlRW5jb2RpbmdcIiwgXCJVVEYtOFwiKTtcblxuICAgIHRoaXMuZ2l0aWdub3JlLmV4Y2x1ZGUoXCIuY2xhc3NwYXRoXCIpO1xuICAgIHRoaXMuZ2l0aWdub3JlLmV4Y2x1ZGUoXCIucHJvamVjdFwiKTtcbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKFwiLnNldHRpbmdzXCIpO1xuXG4gICAgdGhpcy5jb21waWxlID0gbmV3IE1hdmVuQ29tcGlsZSh0aGlzLCB0aGlzLnBvbSwgb3B0aW9ucy5jb21waWxlT3B0aW9ucyk7XG4gICAgdGhpcy5wYWNrYWdpbmcgPSBuZXcgTWF2ZW5QYWNrYWdpbmcoXG4gICAgICB0aGlzLFxuICAgICAgdGhpcy5wb20sXG4gICAgICBvcHRpb25zLnBhY2thZ2luZ09wdGlvbnNcbiAgICApO1xuXG4gICAgdGhpcy5hZGRQbHVnaW4oXCJvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMvbWF2ZW4tZW5mb3JjZXItcGx1Z2luQDMuMC4wLU0zXCIsIHtcbiAgICAgIGV4ZWN1dGlvbnM6IFt7IGlkOiBcImVuZm9yY2UtbWF2ZW5cIiwgZ29hbHM6IFtcImVuZm9yY2VcIl0gfV0sXG4gICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgIHJ1bGVzOiBbeyByZXF1aXJlTWF2ZW5WZXJzaW9uOiBbeyB2ZXJzaW9uOiBcIjMuNlwiIH1dIH1dLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgZGVwIG9mIG9wdGlvbnMuZGVwcyA/PyBbXSkge1xuICAgICAgdGhpcy5hZGREZXBlbmRlbmN5KGRlcCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBkZXAgb2Ygb3B0aW9ucy50ZXN0RGVwcyA/PyBbXSkge1xuICAgICAgdGhpcy5hZGRUZXN0RGVwZW5kZW5jeShkZXApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcnVudGltZSBkZXBlbmRlbmN5LlxuICAgKlxuICAgKiBAcGFyYW0gc3BlYyBGb3JtYXQgYDxncm91cElkPi88YXJ0aWZhY3RJZD5APHNlbXZlcj5gXG4gICAqL1xuICBwdWJsaWMgYWRkRGVwZW5kZW5jeShzcGVjOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5wb20uYWRkRGVwZW5kZW5jeShzcGVjKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgdGVzdCBkZXBlbmRlbmN5LlxuICAgKlxuICAgKiBAcGFyYW0gc3BlYyBGb3JtYXQgYDxncm91cElkPi88YXJ0aWZhY3RJZD5APHNlbXZlcj5gXG4gICAqL1xuICBwdWJsaWMgYWRkVGVzdERlcGVuZGVuY3koc3BlYzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucG9tLmFkZFRlc3REZXBlbmRlbmN5KHNwZWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBidWlsZCBwbHVnaW4gdG8gdGhlIHBvbS5cbiAgICpcbiAgICogVGhlIHBsdWcgaW4gaXMgYWxzbyBhZGRlZCBhcyBhIEJVSUxEIGRlcCB0byB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHNwZWMgZGVwZW5kZW5jeSBzcGVjIChgZ3JvdXAvYXJ0aWZhY3RAdmVyc2lvbmApXG4gICAqIEBwYXJhbSBvcHRpb25zIHBsdWdpbiBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgYWRkUGx1Z2luKHNwZWM6IHN0cmluZywgb3B0aW9uczogUGx1Z2luT3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMucG9tLmFkZFBsdWdpbihzcGVjLCBvcHRpb25zKTtcbiAgfVxufVxuIl19
package/lib/java/junit.js CHANGED
@@ -39,6 +39,6 @@ class Junit extends component_1.Component {
39
39
  }
40
40
  }
41
41
  _a = JSII_RTTI_SYMBOL_1;
42
- Junit[_a] = { fqn: "projen.java.Junit", version: "0.71.21" };
42
+ Junit[_a] = { fqn: "projen.java.Junit", version: "0.71.22" };
43
43
  exports.Junit = Junit;
44
44
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianVuaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YS9qdW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUE0QjtBQUU1Qiw0Q0FBeUM7QUFFekMsZ0RBQTJDO0FBRTNDLE1BQU0sT0FBTyxHQUFHLElBQUEsV0FBSSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUF5QjVDOztHQUVHO0FBQ0gsTUFBYSxLQUFNLFNBQVEscUJBQVM7SUFDbEMsWUFBWSxPQUFnQixFQUFFLE9BQXFCO1FBQ2pELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDeEIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUM7UUFFM0MsR0FBRyxDQUFDLGlCQUFpQixDQUFDLHVDQUF1QyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQywwQ0FBMEMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUUzRSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksVUFBVSxDQUFDO1FBQzVELE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSx1QkFBUyxDQUFDLE9BQU8sRUFBRSxJQUFBLFdBQUksRUFBQyxPQUFPLEVBQUUsR0FBRyxlQUFlLENBQUMsRUFBRTtZQUN4RCxLQUFLLEVBQUU7Z0JBQ0wsYUFBYSxFQUFFO29CQUNiLFdBQVcsV0FBVyxHQUFHO29CQUN6QixFQUFFO29CQUNGLG9DQUFvQztvQkFDcEMsRUFBRTtvQkFDRix1QkFBdUI7b0JBQ3ZCLFNBQVM7b0JBQ1QsNkJBQTZCO29CQUM3QiwwQ0FBMEM7b0JBQzFDLEtBQUs7b0JBQ0wsR0FBRztpQkFDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7QUE5QlUsc0JBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFBvbSB9IGZyb20gXCIuL3BvbVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgeyBTYW1wbGVEaXIgfSBmcm9tIFwiLi4vc2FtcGxlLWZpbGVcIjtcblxuY29uc3QgVEVTVERJUiA9IGpvaW4oXCJzcmNcIiwgXCJ0ZXN0XCIsIFwiamF2YVwiKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgSnVuaXRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEp1bml0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBKYXZhIHBvbS5cbiAgICovXG4gIHJlYWRvbmx5IHBvbTogUG9tO1xuXG4gIC8qKlxuICAgKiBKdW5pdCB2ZXJzaW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiNS43LjBcIlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSmF2YSBwYWNrYWdlIGZvciB0ZXN0IHNhbXBsZS5cbiAgICogQGRlZmF1bHQgXCJvcmcuYWNtZVwiXG4gICAqL1xuICByZWFkb25seSBzYW1wbGVKYXZhUGFja2FnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbXBsZW1lbnRzIEpVbml0LWJhc2VkIHRlc3RpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBKdW5pdCBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IEp1bml0T3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgY29uc3QgcG9tID0gb3B0aW9ucy5wb207XG4gICAgY29uc3QgdmVyc2lvbiA9IG9wdGlvbnMudmVyc2lvbiA/PyBcIjUuNy4wXCI7XG5cbiAgICBwb20uYWRkVGVzdERlcGVuZGVuY3koYG9yZy5qdW5pdC5qdXBpdGVyL2p1bml0LWp1cGl0ZXItYXBpQCR7dmVyc2lvbn1gKTtcbiAgICBwb20uYWRkVGVzdERlcGVuZGVuY3koYG9yZy5qdW5pdC5qdXBpdGVyL2p1bml0LWp1cGl0ZXItZW5naW5lQCR7dmVyc2lvbn1gKTtcblxuICAgIHByb2plY3QudGVzdFRhc2suZXhlYyhcIm12biB0ZXN0XCIpO1xuXG4gICAgY29uc3QgamF2YVBhY2thZ2UgPSBvcHRpb25zLnNhbXBsZUphdmFQYWNrYWdlID8/IFwib3JnLmFjbWVcIjtcbiAgICBjb25zdCBqYXZhUGFja2FnZVBhdGggPSBqYXZhUGFja2FnZS5zcGxpdChcIi5cIik7XG4gICAgbmV3IFNhbXBsZURpcihwcm9qZWN0LCBqb2luKFRFU1RESVIsIC4uLmphdmFQYWNrYWdlUGF0aCksIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFwiTXlUZXN0LmphdmFcIjogW1xuICAgICAgICAgIGBwYWNrYWdlICR7amF2YVBhY2thZ2V9O2AsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgICBcImltcG9ydCBvcmcuanVuaXQuanVwaXRlci5hcGkuVGVzdDtcIixcbiAgICAgICAgICBcIlwiLFxuICAgICAgICAgIFwicHVibGljIGNsYXNzIE15VGVzdCB7XCIsXG4gICAgICAgICAgXCIgIEBUZXN0XCIsXG4gICAgICAgICAgXCIgIHB1YmxpYyB2b2lkIHRlc3RIZWxsbygpIHtcIixcbiAgICAgICAgICAnICAgIFN5c3RlbS5vdXQucHJpbnRsbihcIkhlbGxvLCB3b3JsZCFcIik7JyxcbiAgICAgICAgICBcIiAgfVwiLFxuICAgICAgICAgIFwifVwiLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -21,6 +21,6 @@ class MavenCompile extends component_1.Component {
21
21
  }
22
22
  }
23
23
  _a = JSII_RTTI_SYMBOL_1;
24
- MavenCompile[_a] = { fqn: "projen.java.MavenCompile", version: "0.71.21" };
24
+ MavenCompile[_a] = { fqn: "projen.java.MavenCompile", version: "0.71.22" };
25
25
  exports.MavenCompile = MavenCompile;
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4tY29tcGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhL21hdmVuLWNvbXBpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSw0Q0FBeUM7QUFzQnpDOztHQUVHO0FBQ0gsTUFBYSxZQUFhLFNBQVEscUJBQVM7SUFDekMsWUFBWSxPQUFnQixFQUFFLEdBQVEsRUFBRSxVQUErQixFQUFFO1FBQ3ZFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBDLEdBQUcsQ0FBQyxTQUFTLENBQUMsc0RBQXNELEVBQUU7WUFDcEUsYUFBYSxFQUFFO2dCQUNiLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUs7Z0JBQy9CLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUs7YUFDaEM7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Ozs7QUFkVSxvQ0FBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvbSB9IGZyb20gXCIuL3BvbVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYE1hdmVuQ29tcGlsZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF2ZW5Db21waWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTb3VyY2UgbGFuZ3VhZ2UgdmVyc2lvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgXCIxLjhcIlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYXJnZXQgSlZNIHZlcnNpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiMS44XCJcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBZGRzIHRoZSBtYXZlbi1jb21waWxlciBwbHVnaW4gdG8gYSBQT00gZmlsZSBhbmQgdGhlIGBjb21waWxlYCB0YXNrLlxuICovXG5leHBvcnQgY2xhc3MgTWF2ZW5Db21waWxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgcG9tOiBQb20sIG9wdGlvbnM6IE1hdmVuQ29tcGlsZU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShcInRhcmdldFwiKTtcblxuICAgIHBvbS5hZGRQbHVnaW4oXCJvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMvbWF2ZW4tY29tcGlsZXItcGx1Z2luQDMuOC4xXCIsIHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgc291cmNlOiBvcHRpb25zLnNvdXJjZSA/PyBcIjEuOFwiLFxuICAgICAgICB0YXJnZXQ6IG9wdGlvbnMudGFyZ2V0ID8/IFwiMS44XCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5jb21waWxlVGFzay5leGVjKFwibXZuIGNvbXBpbGVyOmNvbXBpbGVcIik7XG4gIH1cbn1cbiJdfQ==
@@ -56,6 +56,6 @@ class MavenPackaging extends component_1.Component {
56
56
  }
57
57
  }
58
58
  _a = JSII_RTTI_SYMBOL_1;
59
- MavenPackaging[_a] = { fqn: "projen.java.MavenPackaging", version: "0.71.21" };
59
+ MavenPackaging[_a] = { fqn: "projen.java.MavenPackaging", version: "0.71.22" };
60
60
  exports.MavenPackaging = MavenPackaging;
61
61
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4tcGFja2FnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvbWF2ZW4tcGFja2FnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsNENBQXlDO0FBZ0N6Qzs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLHFCQUFTO0lBTTNDLFlBQVksT0FBZ0IsRUFBRSxHQUFRLEVBQUUsVUFBaUMsRUFBRTtRQUN6RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixHQUFHLENBQUMsU0FBUyxDQUFDLGlEQUFpRCxFQUFFO1lBQy9ELGFBQWEsRUFBRTtnQkFDYixPQUFPLEVBQUU7b0JBQ1AsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFO3dCQUNSLCtCQUErQixFQUFFLElBQUk7d0JBQ3JDLDhCQUE4QixFQUFFLElBQUk7cUJBQ3JDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1lBQzNCLEdBQUcsQ0FBQyxTQUFTLENBQUMsb0RBQW9ELEVBQUU7Z0JBQ2xFLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDdkQsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO1lBQzVCLEdBQUcsQ0FBQyxTQUFTLENBQUMscURBQXFELEVBQUU7Z0JBQ25FLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELGFBQWEsRUFBRTtvQkFDYixXQUFXLEVBQUUsS0FBSztvQkFDbEIsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUU7b0JBQ3hELGlCQUFpQixFQUFFLEtBQUs7b0JBQ3hCLGtCQUFrQixFQUFFO3dCQUNsQixpQkFBaUIsRUFBRTs0QkFDakIsMEJBQTBCOzRCQUMxQiwyQkFBMkI7eUJBQzVCO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxNQUFNLEdBQUcsR0FBRztZQUNWLFVBQVUsRUFBRSxnREFBZ0Q7U0FDN0QsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUM7UUFFOUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDM0Isc0VBQXNFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FDckYsQ0FBQztRQUVGLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7O0FBNURVLHdDQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9tIH0gZnJvbSBcIi4vcG9tXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgTWF2ZW5QYWNrYWdlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXZlblBhY2thZ2luZ09wdGlvbnMge1xuICAvKipcbiAgICogSW5jbHVkZSBzb3VyY2VzIGphciBpbiBwYWNrYWdlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlcmUgdG8gcGxhY2UgdGhlIHBhY2thZ2Ugb3V0cHV0P1xuICAgKiBAZGVmYXVsdCBcImRpc3QvamF2YVwiXG4gICAqL1xuICByZWFkb25seSBkaXN0ZGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmNsdWRlIGphdmFkb2NzIGphciBpbiBwYWNrYWdlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBqYXZhZG9jcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEV4Y2x1ZGUgc291cmNlIGZpbGVzIGZyb20gZG9jcy5cbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGphdmFkb2NzRXhjbHVkZT86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZXMgYSBtYXZlbiBwcm9qZWN0IHRvIHByb2R1Y2UgYSAuamFyIGFyY2hpdmUgd2l0aCBzb3VyY2VzIGFuZCBqYXZhZG9jcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1hdmVuUGFja2FnaW5nIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgcGFja2FnZSBvdXRwdXQsIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IG91dGRpclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpc3RkaXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBwb206IFBvbSwgb3B0aW9uczogTWF2ZW5QYWNrYWdpbmdPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHBvbS5hZGRQbHVnaW4oXCJvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMvbWF2ZW4tamFyLXBsdWdpbkAzLjIuMFwiLCB7XG4gICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGFyY2hpdmU6IHtcbiAgICAgICAgICBpbmRleDogdHJ1ZSxcbiAgICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgICAgYWRkRGVmYXVsdEltcGxlbWVudGF0aW9uRW50cmllczogdHJ1ZSxcbiAgICAgICAgICAgIGFkZERlZmF1bHRTcGVjaWZpY2F0aW9uRW50cmllczogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zLnNvdXJjZXMgPz8gdHJ1ZSkge1xuICAgICAgcG9tLmFkZFBsdWdpbihcIm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1zb3VyY2UtcGx1Z2luQDMuMi4xXCIsIHtcbiAgICAgICAgZXhlY3V0aW9uczogW3sgaWQ6IFwiYXR0YWNoLXNvdXJjZXNcIiwgZ29hbHM6IFtcImphclwiXSB9XSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmphdmFkb2NzID8/IHRydWUpIHtcbiAgICAgIHBvbS5hZGRQbHVnaW4oXCJvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMvbWF2ZW4tamF2YWRvYy1wbHVnaW5AMy4yLjBcIiwge1xuICAgICAgICBleGVjdXRpb25zOiBbeyBpZDogXCJhdHRhY2gtamF2YWRvY3NcIiwgZ29hbHM6IFtcImphclwiXSB9XSxcbiAgICAgICAgY29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIGZhaWxPbkVycm9yOiBmYWxzZSxcbiAgICAgICAgICBzaG93OiBcInByb3RlY3RlZFwiLFxuICAgICAgICAgIHNvdXJjZUZpbGVFeGNsdWRlczogeyBleGNsdWRlOiBvcHRpb25zLmphdmFkb2NzRXhjbHVkZSB9LFxuICAgICAgICAgIGRldGVjdEphdmFBcGlMaW5rOiBmYWxzZSwgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzYxODg0MjY3XG4gICAgICAgICAgYWRkaXRpb25hbEpPcHRpb25zOiB7XG4gICAgICAgICAgICBhZGRpdGlvbmFsSk9wdGlvbjogW1xuICAgICAgICAgICAgICBcIi1KLVhYOitUaWVyZWRDb21waWxhdGlvblwiLFxuICAgICAgICAgICAgICBcIi1KLVhYOlRpZXJlZFN0b3BBdExldmVsPTFcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGVudiA9IHtcbiAgICAgIE1BVkVOX09QVFM6IFwiLVhYOitUaWVyZWRDb21waWxhdGlvbiAtWFg6VGllcmVkU3RvcEF0TGV2ZWw9MVwiLFxuICAgIH07XG5cbiAgICB0aGlzLmRpc3RkaXIgPSBvcHRpb25zLmRpc3RkaXIgPz8gXCJkaXN0L2phdmFcIjtcblxuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGVudikpIHtcbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5lbnYoaywgdik7XG4gICAgfVxuICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5leGVjKGBta2RpciAtcCAke3RoaXMuZGlzdGRpcn1gKTtcbiAgICB0aGlzLnByb2plY3QucGFja2FnZVRhc2suZXhlYyhcbiAgICAgIGBtdm4gZGVwbG95IC1EPWFsdERlcGxveW1lbnRSZXBvc2l0b3J5PWxvY2FsOjpkZWZhdWx0OjpmaWxlOi8vLyRQV0QvJHt0aGlzLmRpc3RkaXJ9YFxuICAgICk7XG5cbiAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKHRoaXMuZGlzdGRpcik7XG4gIH1cbn1cbiJdfQ==
@@ -29,6 +29,6 @@ class MavenSample extends component_1.Component {
29
29
  }
30
30
  }
31
31
  _a = JSII_RTTI_SYMBOL_1;
32
- MavenSample[_a] = { fqn: "projen.java.MavenSample", version: "0.71.21" };
32
+ MavenSample[_a] = { fqn: "projen.java.MavenSample", version: "0.71.22" };
33
33
  exports.MavenSample = MavenSample;
34
34
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4tc2FtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvbWF2ZW4tc2FtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTRCO0FBQzVCLDRDQUF5QztBQUV6QyxnREFBMkM7QUFTM0M7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSxxQkFBUztJQUN4QyxZQUFZLE9BQWdCLEVBQUUsT0FBMkI7UUFDdkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBSSx1QkFBUyxDQUFDLE9BQU8sRUFBRSxJQUFBLFdBQUksRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQzFELEtBQUssRUFBRTtnQkFDTCxXQUFXLEVBQUU7b0JBQ1gsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxPQUFPLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMzRCxFQUFFO29CQUNGLHFCQUFxQjtvQkFDckIsa0RBQWtEO29CQUNsRCwwQ0FBMEM7b0JBQzFDLEtBQUs7b0JBQ0wsR0FBRztpQkFDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7QUFsQlUsa0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgU2FtcGxlRGlyIH0gZnJvbSBcIi4uL3NhbXBsZS1maWxlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF2ZW5TYW1wbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFByb2plY3Qgcm9vdCBqYXZhIHBhY2thZ2UuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSmF2YSBjb2RlIHNhbXBsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1hdmVuU2FtcGxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogTWF2ZW5TYW1wbGVPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCBwa2cgPSBvcHRpb25zLnBhY2thZ2Uuc3BsaXQoXCIuXCIpO1xuICAgIG5ldyBTYW1wbGVEaXIocHJvamVjdCwgam9pbihcInNyY1wiLCBcIm1haW5cIiwgXCJqYXZhXCIsIC4uLnBrZyksIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFwiTWFpbi5qYXZhXCI6IFtcbiAgICAgICAgICAuLi4ob3B0aW9ucy5wYWNrYWdlID8gW2BwYWNrYWdlICR7b3B0aW9ucy5wYWNrYWdlfTtgXSA6IFtdKSxcbiAgICAgICAgICBcIlwiLFxuICAgICAgICAgIFwicHVibGljIGNsYXNzIE1haW4ge1wiLFxuICAgICAgICAgIFwiICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihmaW5hbCBTdHJpbmdbXSBhcmdzKSB7XCIsXG4gICAgICAgICAgJyAgICBTeXN0ZW0ub3V0LnByaW50bG4oXCJIZWxsbywgd29ybGQhXCIpOycsXG4gICAgICAgICAgXCIgIH1cIixcbiAgICAgICAgICBcIn1cIixcbiAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
package/lib/java/pom.js CHANGED
@@ -141,7 +141,7 @@ class Pom extends component_1.Component {
141
141
  }
142
142
  }
143
143
  _a = JSII_RTTI_SYMBOL_1;
144
- Pom[_a] = { fqn: "projen.java.Pom", version: "0.71.21" };
144
+ Pom[_a] = { fqn: "projen.java.Pom", version: "0.71.22" };
145
145
  exports.Pom = Pom;
146
146
  /**
147
147
  * Parses maven groupId and artifactId from a dependency name.
@@ -118,7 +118,7 @@ class Projenrc extends projenrc_1.ProjenrcFile {
118
118
  }
119
119
  }
120
120
  _a = JSII_RTTI_SYMBOL_1;
121
- Projenrc[_a] = { fqn: "projen.java.Projenrc", version: "0.71.21" };
121
+ Projenrc[_a] = { fqn: "projen.java.Projenrc", version: "0.71.22" };
122
122
  exports.Projenrc = Projenrc;
123
123
  function generateJavaOptionNames(options, jsiiManifest) {
124
124
  const optionFqns = {};
@@ -126,6 +126,6 @@ class Bundler extends component_1.Component {
126
126
  }
127
127
  }
128
128
  _a = JSII_RTTI_SYMBOL_1;
129
- Bundler[_a] = { fqn: "projen.javascript.Bundler", version: "0.71.21" };
129
+ Bundler[_a] = { fqn: "projen.javascript.Bundler", version: "0.71.22" };
130
130
  exports.Bundler = Bundler;
131
131
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L2J1bmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsaUNBQTBDO0FBQzFDLDRDQUF5QztBQUN6QyxrREFBaUQ7QUFtQ2pEOzs7R0FHRztBQUNILE1BQWEsT0FBUSxTQUFRLHFCQUFTO0lBQ3BDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVksRUFBZ0IsRUFBRSxDQUFDLENBQUMsWUFBWSxPQUFPLENBQUM7UUFDdkUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBZ0JEOztPQUVHO0lBQ0gsWUFBWSxPQUFnQixFQUFFLFVBQTBCLEVBQUU7UUFDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNoRCxXQUFXLEVBQUUsZ0JBQWdCO2FBQzlCLENBQUMsQ0FBQztZQUVI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QUNsQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU87WUFDTCxVQUFVLEVBQUUsVUFBVTtZQUN0QixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQjtRQUN4QixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtRQUN2RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYztZQUM3QixDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2xDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLDZCQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7OztBQWhKVSwwQkFBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHJlbmRlckJ1bmRsZU5hbWUgfSBmcm9tIFwiLi91dGlsXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuLi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gXCIuLi90YXNrXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYEJ1bmRsZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyB2ZXJzaW9uIHJlcXVpcmVtZW50IGZvciBgZXNidWlsZGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3BlY2lmaWMgdmVyc2lvbiAoaW1wbGllcyBsYXRlc3QpXG4gICAqL1xuICByZWFkb25seSBlc2J1aWxkVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogT3V0cHV0IGRpcmVjdG9yeSBmb3IgYWxsIGJ1bmRsZXMuXG4gICAqIEBkZWZhdWx0IFwiYXNzZXRzXCJcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0Rpcj86IHN0cmluZztcblxuICAvKipcbiAgICogSW5zdGFsbCB0aGUgYGJ1bmRsZWAgY29tbWFuZCBhcyBhIHByZS1jb21waWxlIHBoYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhZGRUb1ByZUNvbXBpbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgZmlsZSBleHRlbnNpb25zICh3aXRob3V0IGRvdCkgYW5kIGxvYWRlcnMgdG8gdXNlIGZvciB0aGlzIGZpbGUgdHlwZS5cbiAgICogTG9hZGVycyBhcmUgYXBwZW5kZWQgdG8gdGhlIGVzYnVpbGQgY29tbWFuZCBieSBgLS1sb2FkZXI6LmV4dGVuc2lvbj1sb2FkZXJgXG4gICAqL1xuICByZWFkb25seSBsb2FkZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBBZGRzIHN1cHBvcnQgZm9yIGJ1bmRsaW5nIEphdmFTY3JpcHQgYXBwbGljYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMgaW50byBhXG4gKiBzaW5nbGUgZmlsZS4gSW4gdGhlIGZ1dHVyZSwgdGhpcyB3aWxsIGFsc28gc3VwcG9ydHMgYnVuZGxpbmcgd2Vic2l0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBCdW5kbGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBCdW5kbGVyYCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggYSBwcm9qZWN0IG9yIGB1bmRlZmluZWRgIGlmXG4gICAqIHRoZXJlIGlzIG5vIEJ1bmRsZXIuXG4gICAqIEBwYXJhbSBwcm9qZWN0IFRoZSBwcm9qZWN0XG4gICAqIEByZXR1cm5zIEEgYnVuZGxlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogQnVuZGxlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNCdW5kbGVyID0gKG86IENvbXBvbmVudCk6IG8gaXMgQnVuZGxlciA9PiBvIGluc3RhbmNlb2YgQnVuZGxlcjtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNCdW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2VtYW50aWMgdmVyc2lvbiByZXF1aXJlbWVudCBmb3IgYGVzYnVpbGRgIChpZiBkZWZpbmVkKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlc2J1aWxkVmVyc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBSb290IGJ1bmRsZSBkaXJlY3RvcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVuZGxlZGlyOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfdGFzazogVGFzayB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBhZGRUb1ByZUNvbXBpbGU6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZGVycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBgQnVuZGxlcmAuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBCdW5kbGVyT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmVzYnVpbGRWZXJzaW9uID0gb3B0aW9ucy5lc2J1aWxkVmVyc2lvbjtcbiAgICB0aGlzLmJ1bmRsZWRpciA9IG9wdGlvbnMuYXNzZXRzRGlyID8/IFwiYXNzZXRzXCI7XG4gICAgdGhpcy5hZGRUb1ByZUNvbXBpbGUgPSBvcHRpb25zLmFkZFRvUHJlQ29tcGlsZSA/PyB0cnVlO1xuICAgIHRoaXMubG9hZGVycyA9IG9wdGlvbnMubG9hZGVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIG9yIGNyZWF0ZXMgdGhlIHNpbmdsZXRvbiBcImJ1bmRsZVwiIHRhc2sgb2YgdGhlIHByb2plY3QuXG4gICAqXG4gICAqIElmIHRoZSBwcm9qZWN0IGRvZXNuJ3QgaGF2ZSBhIFwiYnVuZGxlXCIgdGFzaywgaXQgd2lsbCBiZSBjcmVhdGVkIGFuZCBzcGF3bmVkXG4gICAqIGR1cmluZyB0aGUgcHJlLWNvbXBpbGUgcGhhc2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGJ1bmRsZVRhc2soKTogVGFzayB7XG4gICAgaWYgKCF0aGlzLl90YXNrKSB7XG4gICAgICB0aGlzLmFkZEJ1bmRsaW5nU3VwcG9ydCgpO1xuICAgICAgdGhpcy5fdGFzayA9IHRoaXMucHJvamVjdC50YXNrcy5hZGRUYXNrKFwiYnVuZGxlXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwiUHJlcGFyZSBhc3NldHNcIixcbiAgICAgIH0pO1xuXG4gICAgICAvLyBpbnN0YWxsIHRoZSBidW5kbGUgdGFzayBpbnRvIHRoZSBwcmUtY29tcGlsZSBwaGFzZS5cbiAgICAgIGlmICh0aGlzLmFkZFRvUHJlQ29tcGlsZSkge1xuICAgICAgICB0aGlzLnByb2plY3QucHJlQ29tcGlsZVRhc2suc3Bhd24odGhpcy5fdGFzayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3Rhc2s7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRhc2sgdG8gdGhlIHByb2plY3Qgd2hpY2ggYnVuZGxlcyBhIHNwZWNpZmljIGVudHJ5cG9pbnQgYW5kIGFsbCBvZlxuICAgKiBpdHMgZGVwZW5kZW5jaWVzIGludG8gYSBzaW5nbGUgamF2YXNjcmlwdCBvdXRwdXQgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGVudHJ5cG9pbnQgVGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIGFydGlmYWN0IHdpdGhpbiB0aGUgcHJvamVjdFxuICAgKiBAcGFyYW0gb3B0aW9ucyBCdW5kbGluZyBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgYWRkQnVuZGxlKGVudHJ5cG9pbnQ6IHN0cmluZywgb3B0aW9uczogQWRkQnVuZGxlT3B0aW9ucyk6IEJ1bmRsZSB7XG4gICAgY29uc3QgbmFtZSA9IHJlbmRlckJ1bmRsZU5hbWUoZW50cnlwb2ludCk7XG5cbiAgICBjb25zdCBvdXRkaXIgPSBwYXRoLnBvc2l4LmpvaW4odGhpcy5idW5kbGVkaXIsIG5hbWUpO1xuICAgIGNvbnN0IG91dGZpbGUgPSBwYXRoLnBvc2l4LmpvaW4ob3V0ZGlyLCBvcHRpb25zLm91dGZpbGUgPz8gXCJpbmRleC5qc1wiKTtcbiAgICBjb25zdCBhcmdzID0gW1xuICAgICAgXCJlc2J1aWxkXCIsXG4gICAgICBcIi0tYnVuZGxlXCIsXG4gICAgICBlbnRyeXBvaW50LFxuICAgICAgYC0tdGFyZ2V0PVwiJHtvcHRpb25zLnRhcmdldH1cImAsXG4gICAgICBgLS1wbGF0Zm9ybT1cIiR7b3B0aW9ucy5wbGF0Zm9ybX1cImAsXG4gICAgICBgLS1vdXRmaWxlPVwiJHtvdXRmaWxlfVwiYCxcbiAgICBdO1xuXG4gICAgY29uc3QgdHNjb25maWcgPSBvcHRpb25zLnRzY29uZmlnUGF0aCA/PyBmYWxzZTtcbiAgICBpZiAodHNjb25maWcpIHtcbiAgICAgIGFyZ3MucHVzaChgLS10c2NvbmZpZz1cIiR7dHNjb25maWd9XCJgKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHggb2Ygb3B0aW9ucy5leHRlcm5hbHMgPz8gW10pIHtcbiAgICAgIGFyZ3MucHVzaChgLS1leHRlcm5hbDoke3h9YCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlbWFwID0gb3B0aW9ucy5zb3VyY2VtYXAgPz8gZmFsc2U7XG4gICAgaWYgKHNvdXJjZW1hcCkge1xuICAgICAgYXJncy5wdXNoKFwiLS1zb3VyY2VtYXBcIik7XG4gICAgfVxuXG4gICAgY29uc3QgbG9hZGVycyA9XG4gICAgICBvcHRpb25zLmxvYWRlcnMgPz8gZmFsc2UgPyBvcHRpb25zLmxvYWRlcnMgOiB0aGlzLmxvYWRlcnMgPz8gZmFsc2U7XG4gICAgaWYgKGxvYWRlcnMpIHtcbiAgICAgIGZvciAobGV0IFtleHRlbnNpb24sIGxvYWRlcl0gb2YgT2JqZWN0LmVudHJpZXMobG9hZGVycykpIHtcbiAgICAgICAgYXJncy5wdXNoKGAtLWxvYWRlcjouJHtleHRlbnNpb259PSR7bG9hZGVyfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGJ1bmRsZVRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzayhgYnVuZGxlOiR7bmFtZX1gLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYENyZWF0ZSBhIEphdmFTY3JpcHQgYnVuZGxlIGZyb20gJHtlbnRyeXBvaW50fWAsXG4gICAgICBleGVjOiBhcmdzLmpvaW4oXCIgXCIpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5idW5kbGVUYXNrLnNwYXduKGJ1bmRsZVRhc2spO1xuXG4gICAgaWYgKG9wdGlvbnMuZXhlY3V0YWJsZSA/PyBmYWxzZSkge1xuICAgICAgYnVuZGxlVGFzay5leGVjKGBjaG1vZCAreCAke291dGZpbGV9YCk7XG4gICAgfVxuXG4gICAgbGV0IHdhdGNoVGFzaztcbiAgICBjb25zdCB3YXRjaCA9IG9wdGlvbnMud2F0Y2hUYXNrID8/IHRydWU7XG4gICAgaWYgKHdhdGNoKSB7XG4gICAgICB3YXRjaFRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzayhgYnVuZGxlOiR7bmFtZX06d2F0Y2hgLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQ29udGludW91c2x5IHVwZGF0ZSB0aGUgSmF2YVNjcmlwdCBidW5kbGUgZnJvbSAke2VudHJ5cG9pbnR9YCxcbiAgICAgICAgZXhlYzogYCR7YXJncy5qb2luKFwiIFwiKX0gLS13YXRjaGAsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYnVuZGxlVGFzazogYnVuZGxlVGFzayxcbiAgICAgIHdhdGNoVGFzazogd2F0Y2hUYXNrLFxuICAgICAgb3V0ZGlyOiBvdXRkaXIsXG4gICAgICBvdXRmaWxlOiBvdXRmaWxlLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWRkIGJ1bmRsaW5nIHN1cHBvcnQgdG8gYSBwcm9qZWN0LiBUaGlzIGlzIGNhbGxlZCBpbXBsaWNpdGx5IHdoZW5cbiAgICogYGJ1bmRsZVRhc2tgIGlzIHJlZmVyZW5jZWQgZmlyc3QuIEl0IGFkZHMgdGhlIGRlcGVuZGVuY3kgb24gYGVzYnVpbGRgLFxuICAgKiBnaXRpZ25vcmUvbnBtaWdub3JlLCBldGMuXG4gICAqL1xuICBwcml2YXRlIGFkZEJ1bmRsaW5nU3VwcG9ydCgpIHtcbiAgICBjb25zdCBpZ25vcmVFbnRyeSA9IGAvJHt0aGlzLmJ1bmRsZWRpcn0vYDtcbiAgICB0aGlzLnByb2plY3QuYWRkR2l0SWdub3JlKGlnbm9yZUVudHJ5KTtcbiAgICB0aGlzLnByb2plY3QuYWRkUGFja2FnZUlnbm9yZShgISR7aWdub3JlRW50cnl9YCk7IC8vIGluY2x1ZGUgaW4gdGFyYmFsbFxuICAgIGNvbnN0IGRlcCA9IHRoaXMuZXNidWlsZFZlcnNpb25cbiAgICAgID8gYGVzYnVpbGRAJHt0aGlzLmVzYnVpbGRWZXJzaW9ufWBcbiAgICAgIDogXCJlc2J1aWxkXCI7XG4gICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShkZXAsIERlcGVuZGVuY3lUeXBlLkJVSUxEKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZSB7XG4gIC8qKlxuICAgKiBUaGUgdGFzayB0aGF0IHByb2R1Y2VzIHRoaXMgYnVuZGxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVuZGxlVGFzazogVGFzaztcblxuICAvKipcbiAgICogVGhlIFwid2F0Y2hcIiB0YXNrIGZvciB0aGlzIGJ1bmRsZS5cbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoVGFzaz86IFRhc2s7XG5cbiAgLyoqXG4gICAqIExvY2F0aW9uIG9mIHRoZSBvdXRwdXQgZmlsZSAocmVsYXRpdmUgdG8gcHJvamVjdCByb290KS5cbiAgICovXG4gIHJlYWRvbmx5IG91dGZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogQmFzZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgb3V0cHV0IGZpbGUgKHJlbGF0aXZlIHRvIHByb2plY3Qgcm9vdCkuXG4gICAqL1xuICByZWFkb25seSBvdXRkaXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBidW5kbGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdW5kbGluZ09wdGlvbnMge1xuICAvKipcbiAgICogWW91IGNhbiBtYXJrIGEgZmlsZSBvciBhIHBhY2thZ2UgYXMgZXh0ZXJuYWwgdG8gZXhjbHVkZSBpdCBmcm9tIHlvdXIgYnVpbGQuXG4gICAqIEluc3RlYWQgb2YgYmVpbmcgYnVuZGxlZCwgdGhlIGltcG9ydCB3aWxsIGJlIHByZXNlcnZlZCAodXNpbmcgcmVxdWlyZSBmb3JcbiAgICogdGhlIGlpZmUgYW5kIGNqcyBmb3JtYXRzIGFuZCB1c2luZyBpbXBvcnQgZm9yIHRoZSBlc20gZm9ybWF0KSBhbmQgd2lsbCBiZVxuICAgKiBldmFsdWF0ZWQgYXQgcnVuIHRpbWUgaW5zdGVhZC5cbiAgICpcbiAgICogVGhpcyBoYXMgc2V2ZXJhbCB1c2VzLiBGaXJzdCBvZiBhbGwsIGl0IGNhbiBiZSB1c2VkIHRvIHRyaW0gdW5uZWNlc3NhcnlcbiAgICogY29kZSBmcm9tIHlvdXIgYnVuZGxlIGZvciBhIGNvZGUgcGF0aCB0aGF0IHlvdSBrbm93IHdpbGwgbmV2ZXIgYmUgZXhlY3V0ZWQuXG4gICAqIEZvciBleGFtcGxlLCBhIHBhY2thZ2UgbWF5IGNvbnRhaW4gY29kZSB0aGF0IG9ubHkgcnVucyBpbiBub2RlIGJ1dCB5b3Ugd2lsbFxuICAgKiBvbmx5IGJlIHVzaW5nIHRoYXQgcGFja2FnZSBpbiB0aGUgYnJvd3Nlci4gSXQgY2FuIGFsc28gYmUgdXNlZCB0byBpbXBvcnRcbiAgICogY29kZSBpbiBub2RlIGF0IHJ1biB0aW1lIGZyb20gYSBwYWNrYWdlIHRoYXQgY2Fubm90IGJlIGJ1bmRsZWQuIEZvclxuICAgKiBleGFtcGxlLCB0aGUgZnNldmVudHMgcGFja2FnZSBjb250YWlucyBhIG5hdGl2ZSBleHRlbnNpb24sIHdoaWNoIGVzYnVpbGRcbiAgICogZG9lc24ndCBzdXBwb3J0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZXJuYWxzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEluY2x1ZGUgYSBzb3VyY2UgbWFwIGluIHRoZSBidW5kbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VtYXA/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbiBhZGRpdGlvbiB0byB0aGUgYGJ1bmRsZTp4eXpgIHRhc2ssIGNyZWF0ZXMgYGJ1bmRsZTp4eXo6d2F0Y2hgIHRhc2sgd2hpY2ggd2lsbFxuICAgKiBpbnZva2UgdGhlIHNhbWUgZXNidWlsZCBjb21tYW5kIHdpdGggdGhlIGAtLXdhdGNoYCBmbGFnLiBUaGlzIGNhbiBiZSB1c2VkXG4gICAqIHRvIGNvbnRpbnVzb3VseSB3YXRjaCBmb3IgY2hhbmdlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hUYXNrPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgYWRkQnVuZGxlKClgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZEJ1bmRsZU9wdGlvbnMgZXh0ZW5kcyBCdW5kbGluZ09wdGlvbnMge1xuICAvKipcbiAgICogZXNidWlsZCB0YXJnZXQuXG4gICAqXG4gICAqIEBleGFtcGxlIFwibm9kZTEyXCJcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBlc2J1aWxkIHBsYXRmb3JtLlxuICAgKlxuICAgKiBAZXhhbXBsZSBcIm5vZGVcIlxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm06IHN0cmluZztcblxuICAvKipcbiAgICogQnVuZGxlciBvdXRwdXQgcGF0aCByZWxhdGl2ZSB0byB0aGUgYXNzZXQncyBvdXRwdXQgZGlyZWN0b3J5LlxuICAgKiBAZGVmYXVsdCBcImluZGV4LmpzXCJcbiAgICovXG4gIHJlYWRvbmx5IG91dGZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhlIG91dHB1dCBmaWxlIGFzIGV4ZWN1dGFibGUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBleGVjdXRhYmxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIHRzY29uZmlnLmpzb24gZmlsZSB0byB1c2UgZm9yIGJ1bmRsaW5nXG4gICAqIEBkZWZhdWx0IFwidHNjb25maWcuanNvblwiXG4gICAqL1xuICByZWFkb25seSB0c2NvbmZpZ1BhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hcCBvZiBmaWxlIGV4dGVuc2lvbnMgKHdpdGhvdXQgZG90KSBhbmQgbG9hZGVycyB0byB1c2UgZm9yIHRoaXMgZmlsZSB0eXBlLlxuICAgKiBMb2FkZXJzIGFyZSBhcHBlbmRlZCB0byB0aGUgZXNidWlsZCBjb21tYW5kIGJ5IGAtLWxvYWRlcjouZXh0ZW5zaW9uPWxvYWRlcmBcbiAgICovXG4gIHJlYWRvbmx5IGxvYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuIl19
@@ -310,6 +310,6 @@ class Eslint extends component_1.Component {
310
310
  }
311
311
  }
312
312
  _a = JSII_RTTI_SYMBOL_1;
313
- Eslint[_a] = { fqn: "projen.javascript.Eslint", version: "0.71.21" };
313
+ Eslint[_a] = { fqn: "projen.javascript.Eslint", version: "0.71.22" };
314
314
  exports.Eslint = Eslint;
315
315
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNsaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmFzY3JpcHQvZXNsaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQXNDO0FBRXRDLHNDQUFzQztBQUN0Qyw0Q0FBeUM7QUFFekMsa0NBQW1DO0FBRW5DLGtDQUFtQztBQXVHbkM7O0dBRUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxxQkFBUztJQUNuQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFZLEVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWSxNQUFNLENBQUM7UUFDcEUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBbUNELFlBQVksT0FBb0IsRUFBRSxPQUFzQjtRQUN0RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUE3QmpCOztXQUVHO1FBQ2EsY0FBUyxHQUFxQixFQUFFLENBQUM7UUFtQmhDLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQy9CLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBUTlDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBRTNCLE9BQU8sQ0FBQyxVQUFVLENBQ2hCLFdBQVcsRUFDWCxxQ0FBcUMsRUFDckMsOEJBQThCLEVBQzlCLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFDbkMsc0JBQXNCLENBQ3ZCLENBQUM7UUFFRixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDcEIsT0FBTyxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUM7UUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLElBQUksa0JBQVMsQ0FBQztR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QUNSLFNBQVMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekMsT0FBTztZQUNQLGlDQUFpQztZQUNqQyxHQUFHLElBQUksQ0FBQyxhQUFhO1NBQ3RCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUNaLENBQUM7SUFDSixDQUFDOzs7O0FBcFlVLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJldHRpZXIgfSBmcm9tIFwiLi9wcmV0dGllclwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgUFJPSkVOX1JDIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgTm9kZVByb2plY3QgfSBmcm9tIFwiLi4vamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgSnNvbkZpbGUgfSBmcm9tIFwiLi4vanNvblwiO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gXCIuLi90YXNrXCI7XG5pbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gXCIuLi95YW1sXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXNsaW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGB0c2NvbmZpZy5qc29uYCB3aGljaCBzaG91bGQgYmUgdXNlZCBieSBlc2xpbnQuXG4gICAqIEBkZWZhdWx0IFwiLi90c2NvbmZpZy5qc29uXCJcbiAgICovXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogRmlsZXMgb3IgZ2xvYiBwYXR0ZXJucyBvciBkaXJlY3RvcmllcyB3aXRoIHNvdXJjZSBmaWxlcyB0byBsaW50IChlLmcuIFsgXCJzcmNcIiBdKVxuICAgKi9cbiAgcmVhZG9ubHkgZGlyczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEZpbGVzIG9yIGdsb2IgcGF0dGVybnMgb3IgZGlyZWN0b3JpZXMgd2l0aCBzb3VyY2UgZmlsZXMgdGhhdCBpbmNsdWRlIHRlc3RzIGFuZCBidWlsZCB0b29sc1xuICAgKlxuICAgKiBUaGVzZSBzb3VyY2VzIGFyZSBsaW50ZWQgYnV0IG1heSBhbHNvIGltcG9ydCBwYWNrYWdlcyBmcm9tIGBkZXZEZXBlbmRlbmNpZXNgLlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgZGV2ZGlycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBGaWxlIHR5cGVzIHRoYXQgc2hvdWxkIGJlIGxpbnRlZCAoZS5nLiBbIFwiLmpzXCIsIFwiLnRzXCIgXSlcbiAgICogQGRlZmF1bHQgW1wiLnRzXCJdXG4gICAqL1xuICByZWFkb25seSBmaWxlRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGZpbGUgcGF0dGVybnMgdGhhdCBzaG91bGQgbm90IGJlIGxpbnRlZCwgdXNpbmcgdGhlIHNhbWUgc3ludGF4XG4gICAqIGFzIC5naXRpZ25vcmUgcGF0dGVybnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFsgJyouanMnLCAnKi5kLnRzJywgJ25vZGVfbW9kdWxlcy8nLCAnKi5nZW5lcmF0ZWQudHMnLCAnY292ZXJhZ2UnIF1cbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZVBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFByb2plbnJjIGZpbGUgdG8gbGludC4gVXNlIGVtcHR5IHN0cmluZyB0byBkaXNhYmxlLlxuICAgKiBAZGVmYXVsdCBQUk9KRU5fUkNcbiAgICogQGRlcHJlY2F0ZWQgcHJvdmlkZSBhcyBgZGV2ZGlyc2BcbiAgICovXG4gIHJlYWRvbmx5IGxpbnRQcm9qZW5SY0ZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB3ZSBsaW50IC5wcm9qZW5yYy5qc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBkZXByZWNhdGVkIHNldCB0byBgZmFsc2VgIHRvIHJlbW92ZSBhbnkgYXV0b21hdGljIHJ1bGVzIGFuZCBhZGQgbWFudWFsbHlcbiAgICovXG4gIHJlYWRvbmx5IGxpbnRQcm9qZW5SYz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBwcmV0dGllciBmb3IgY29kZSBmb3JtYXR0aW5nXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwcmV0dGllcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBpbXBvcnQgYWxpYXMgZm9yIG1vZHVsZSBwYXRoc1xuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzTWFwPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogRW5hYmxlIGltcG9ydCBhbGlhcyBmb3IgbW9kdWxlIHBhdGhzXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgYWxpYXNFeHRlbnNpb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFsd2F5cyB0cnkgdG8gcmVzb2x2ZSB0eXBlcyB1bmRlciBgPHJvb3Q+QHR5cGVzYCBkaXJlY3RvcnkgZXZlbiBpdCBkb2Vzbid0IGNvbnRhaW4gYW55IHNvdXJjZSBjb2RlLlxuICAgKiBUaGlzIHByZXZlbnRzIGBpbXBvcnQvbm8tdW5yZXNvbHZlZGAgZXNsaW50IGVycm9ycyB3aGVuIGltcG9ydGluZyBhIGBAdHlwZXMvKmAgbW9kdWxlIHRoYXQgd291bGQgb3RoZXJ3aXNlIHJlbWFpbiB1bnJlc29sdmVkLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0c0Fsd2F5c1RyeVR5cGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV3JpdGUgZXNsaW50IGNvbmZpZ3VyYXRpb24gYXMgWUFNTCBpbnN0ZWFkIG9mIEpTT05cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHlhbWw/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIGVzbGludCBydWxlcyBvdmVycmlkZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVzbGludE92ZXJyaWRlIHtcbiAgLyoqXG4gICAqIEZpbGVzIG9yIGZpbGUgcGF0dGVybnMgb24gd2hpY2ggdG8gYXBwbHkgdGhlIG92ZXJyaWRlXG4gICAqL1xuICByZWFkb25seSBmaWxlczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZW4gcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVzPzogeyBbcnVsZTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZGVuIHBhcnNlclxuICAgKi9cbiAgcmVhZG9ubHkgcGFyc2VyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgZXNsaW50IGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBFc2xpbnQgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2luZ2xldG9uZSBFc2xpbnQgY29tcG9uZW50IG9mIGEgcHJvamVjdCBvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm9uZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogUHJvamVjdCk6IEVzbGludCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNFc2xpbnQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBFc2xpbnQgPT4gYyBpbnN0YW5jZW9mIEVzbGludDtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNFc2xpbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIGVzbGludCBydWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBydWxlczogeyBbcnVsZTogc3RyaW5nXTogYW55W10gfTtcblxuICAvKipcbiAgICogZXNsaW50IG92ZXJyaWRlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvdmVycmlkZXM6IEVzbGludE92ZXJyaWRlW10gPSBbXTtcblxuICAvKipcbiAgICogZXNsaW50IHRhc2suXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXNsaW50VGFzazogVGFzaztcblxuICAvKipcbiAgICogRGlyZWN0IGFjY2VzcyB0byB0aGUgZXNsaW50IGNvbmZpZ3VyYXRpb24gKGVzY2FwZSBoYXRjaClcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25maWc6IGFueTtcblxuICAvKipcbiAgICogRmlsZSBwYXR0ZXJucyB0aGF0IHNob3VsZCBub3QgYmUgbGludGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWdub3JlUGF0dGVybnM6IHN0cmluZ1tdO1xuXG4gIHByaXZhdGUgX2Zvcm1hdHRpbmdSdWxlczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWxsb3dEZXZEZXBzOiBTZXQ8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGx1Z2lucyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4dGVuZHMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWxlRXh0ZW5zaW9uczogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xpbnRQYXR0ZXJuczogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZVByb2plY3Q6IE5vZGVQcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBFc2xpbnRPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLm5vZGVQcm9qZWN0ID0gcHJvamVjdDtcblxuICAgIHByb2plY3QuYWRkRGV2RGVwcyhcbiAgICAgIFwiZXNsaW50QF44XCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9lc2xpbnQtcGx1Z2luQF41XCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJAXjVcIixcbiAgICAgIFwiZXNsaW50LWltcG9ydC1yZXNvbHZlci1ub2RlXCIsXG4gICAgICBcImVzbGludC1pbXBvcnQtcmVzb2x2ZXItdHlwZXNjcmlwdFwiLFxuICAgICAgXCJlc2xpbnQtcGx1Z2luLWltcG9ydFwiXG4gICAgKTtcblxuICAgIGlmIChvcHRpb25zLmFsaWFzTWFwKSB7XG4gICAgICBwcm9qZWN0LmFkZERldkRlcHMoXCJlc2xpbnQtaW1wb3J0LXJlc29sdmVyLWFsaWFzXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbnRQcm9qZW5SYyA9IG9wdGlvbnMubGludFByb2plblJjID8/IHRydWU7XG4gICAgY29uc3QgbGludFByb2plblJjRmlsZSA9IG9wdGlvbnMubGludFByb2plblJjRmlsZSA/PyBQUk9KRU5fUkM7XG5cbiAgICBjb25zdCBkZXZkaXJzID0gb3B0aW9ucy5kZXZkaXJzID8/IFtdO1xuXG4gICAgdGhpcy5fbGludFBhdHRlcm5zID0gW1xuICAgICAgLi4ub3B0aW9ucy5kaXJzLFxuICAgICAgLi4uZGV2ZGlycyxcbiAgICAgIC4uLihsaW50UHJvamVuUmMgJiYgbGludFByb2plblJjRmlsZSA/IFtsaW50UHJvamVuUmNGaWxlXSA6IFtdKSxcbiAgICBdO1xuICAgIHRoaXMuX2ZpbGVFeHRlbnNpb25zID0gb3B0aW9ucy5maWxlRXh0ZW5zaW9ucyA/PyBbXCIudHNcIl07XG5cbiAgICB0aGlzLl9hbGxvd0RldkRlcHMgPSBuZXcgU2V0KChkZXZkaXJzID8/IFtdKS5tYXAoKGRpcikgPT4gYCoqLyR7ZGlyfS8qKmApKTtcblxuICAgIHRoaXMuZXNsaW50VGFzayA9IHByb2plY3QuYWRkVGFzayhcImVzbGludFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJSdW5zIGVzbGludCBhZ2FpbnN0IHRoZSBjb2RlYmFzZVwiLFxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlVGFzaygpO1xuXG4gICAgcHJvamVjdC50ZXN0VGFzay5zcGF3bih0aGlzLmVzbGludFRhc2spO1xuXG4gICAgLy8gZXhjbHVkZSBzb21lIGZpbGVzXG4gICAgcHJvamVjdC5ucG1pZ25vcmU/LmV4Y2x1ZGUoXCIvLmVzbGludHJjLmpzb25cIik7XG5cbiAgICB0aGlzLl9mb3JtYXR0aW5nUnVsZXMgPSB7XG4gICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R5cGVzY3JpcHQtZXNsaW50L3R5cGVzY3JpcHQtZXNsaW50L2Jsb2IvbWFzdGVyL3BhY2thZ2VzL2VzbGludC1wbHVnaW4vZG9jcy9ydWxlcy9pbmRlbnQubWRcbiAgICAgIGluZGVudDogW1wib2ZmXCJdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50XCI6IFtcImVycm9yXCIsIDJdLFxuXG4gICAgICAvLyBTdHlsZVxuICAgICAgcXVvdGVzOiBbXCJlcnJvclwiLCBcInNpbmdsZVwiLCB7IGF2b2lkRXNjYXBlOiB0cnVlIH1dLFxuICAgICAgXCJjb21tYS1kYW5nbGVcIjogW1wiZXJyb3JcIiwgXCJhbHdheXMtbXVsdGlsaW5lXCJdLCAvLyBlbnN1cmVzIGNsZWFuIGRpZmZzLCBzZWUgaHR0cHM6Ly9tZWRpdW0uY29tL0BuaWtncmFmL3doeS15b3Utc2hvdWxkLWVuZm9yY2UtZGFuZ2xpbmctY29tbWFzLWZvci1tdWx0aWxpbmUtc3RhdGVtZW50cy1kMDM0Yzk4ZTM2ZjhcbiAgICAgIFwiY29tbWEtc3BhY2luZ1wiOiBbXCJlcnJvclwiLCB7IGJlZm9yZTogZmFsc2UsIGFmdGVyOiB0cnVlIH1dLCAvLyBzcGFjZSBhZnRlciwgbm8gc3BhY2UgYmVmb3JlXG4gICAgICBcIm5vLW11bHRpLXNwYWNlc1wiOiBbXCJlcnJvclwiLCB7IGlnbm9yZUVPTENvbW1lbnRzOiBmYWxzZSB9XSwgLy8gbm8gbXVsdGkgc3BhY2VzXG4gICAgICBcImFycmF5LWJyYWNrZXQtc3BhY2luZ1wiOiBbXCJlcnJvclwiLCBcIm5ldmVyXCJdLCAvLyBbMSwgMiwgM11cbiAgICAgIFwiYXJyYXktYnJhY2tldC1uZXdsaW5lXCI6IFtcImVycm9yXCIsIFwiY29uc2lzdGVudFwiXSwgLy8gZW5mb3JjZSBjb25zaXN0ZW50IGxpbmUgYnJlYWtzIGJldHdlZW4gYnJhY2tldHNcbiAgICAgIFwib2JqZWN0LWN1cmx5LXNwYWNpbmdcIjogW1wiZXJyb3JcIiwgXCJhbHdheXNcIl0sIC8vIHsga2V5OiAndmFsdWUnIH1cbiAgICAgIFwib2JqZWN0LWN1cmx5LW5ld2xpbmVcIjogW1wiZXJyb3JcIiwgeyBtdWx0aWxpbmU6IHRydWUsIGNvbnNpc3RlbnQ6IHRydWUgfV0sIC8vIGVuZm9yY2UgY29uc2lzdGVudCBsaW5lIGJyZWFrcyBiZXR3ZWVuIGJyYWNlc1xuICAgICAgXCJvYmplY3QtcHJvcGVydHktbmV3bGluZVwiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgeyBhbGxvd0FsbFByb3BlcnRpZXNPblNhbWVMaW5lOiB0cnVlIH0sXG4gICAgICBdLCAvLyBlbmZvcmNlIFwic2FtZSBsaW5lXCIgb3IgXCJtdWx0aXBsZSBsaW5lXCIgb24gb2JqZWN0IHByb3BlcnRpZXNcbiAgICAgIFwia2V5d29yZC1zcGFjaW5nXCI6IFtcImVycm9yXCJdLCAvLyByZXF1aXJlIGEgc3BhY2UgYmVmb3JlICYgYWZ0ZXIga2V5d29yZHNcbiAgICAgIFwiYnJhY2Utc3R5bGVcIjogW1wiZXJyb3JcIiwgXCIxdGJzXCIsIHsgYWxsb3dTaW5nbGVMaW5lOiB0cnVlIH1dLCAvLyBlbmZvcmNlIG9uZSB0cnVlIGJyYWNlIHN0eWxlXG4gICAgICBcInNwYWNlLWJlZm9yZS1ibG9ja3NcIjogW1wiZXJyb3JcIl0sIC8vIHJlcXVpcmUgc3BhY2UgYmVmb3JlIGJsb2Nrc1xuICAgICAgY3VybHk6IFtcImVycm9yXCIsIFwibXVsdGktbGluZVwiLCBcImNvbnNpc3RlbnRcIl0sIC8vIHJlcXVpcmUgY3VybHkgYnJhY2VzIGZvciBtdWx0aWxpbmUgY29udHJvbCBzdGF0ZW1lbnRzXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItZGVsaW1pdGVyLXN0eWxlXCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBSZXF1aXJlIHNlbWljb2xvbnNcbiAgICAgIHNlbWk6IFtcImVycm9yXCIsIFwiYWx3YXlzXCJdLFxuXG4gICAgICAvLyBNYXggbGluZSBsZW5ndGhzXG4gICAgICBcIm1heC1sZW5cIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBjb2RlOiAxNTAsXG4gICAgICAgICAgaWdub3JlVXJsczogdHJ1ZSwgLy8gTW9zdCBjb21tb24gcmVhc29uIHRvIGRpc2FibGUgaXRcbiAgICAgICAgICBpZ25vcmVTdHJpbmdzOiB0cnVlLCAvLyBUaGVzZSBhcmUgbm90IGZhbnRhc3RpYyBidXQgbmVjZXNzYXJ5IGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgICAgIGlnbm9yZVRlbXBsYXRlTGl0ZXJhbHM6IHRydWUsXG4gICAgICAgICAgaWdub3JlQ29tbWVudHM6IHRydWUsXG4gICAgICAgICAgaWdub3JlUmVnRXhwTGl0ZXJhbHM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuXG4gICAgICAvLyBEb24ndCB1bm5lY2Vzc2FyaWx5IHF1b3RlIHByb3BlcnRpZXNcbiAgICAgIFwicXVvdGUtcHJvcHNcIjogW1wiZXJyb3JcIiwgXCJjb25zaXN0ZW50LWFzLW5lZWRlZFwiXSxcbiAgICB9O1xuXG4gICAgdGhpcy5ydWxlcyA9IHtcbiAgICAgIC8vIFJlcXVpcmUgdXNlIG9mIHRoZSBgaW1wb3J0IHsgZm9vIH0gZnJvbSAnYmFyJztgIGZvcm0gaW5zdGVhZCBvZiBgaW1wb3J0IGZvbyA9IHJlcXVpcmUoJ2JhcicpO2BcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1wiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gUmVxdWlyZSBhbGwgaW1wb3J0ZWQgZGVwZW5kZW5jaWVzIGFyZSBhY3R1YWxseSBkZWNsYXJlZCBpbiBwYWNrYWdlLmpzb25cbiAgICAgIFwiaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXCI6IFtcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICB7XG4gICAgICAgICAgLy8gT25seSBhbGxvdyBpbXBvcnRpbmcgZGV2RGVwZW5kZW5jaWVzIGZyb20gXCJkZXZkaXJzXCIuXG4gICAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiAoKSA9PiB0aGlzLnJlbmRlckRldkRlcHNBbGxvd0xpc3QoKSxcbiAgICAgICAgICBvcHRpb25hbERlcGVuZGVuY2llczogZmFsc2UsIC8vIERpc2FsbG93IGltcG9ydGluZyBvcHRpb25hbCBkZXBlbmRlbmNpZXMgKHRob3NlIHNob3VsZG4ndCBiZSBpbiB1c2UgaW4gdGhlIHByb2plY3QpXG4gICAgICAgICAgcGVlckRlcGVuZGVuY2llczogdHJ1ZSwgLy8gQWxsb3cgaW1wb3J0aW5nIHBlZXIgZGVwZW5kZW5jaWVzICh0aGF0IGFyZW4ndCBhbHNvIGRpcmVjdCBkZXBlbmRlbmNpZXMpXG4gICAgICAgIH0sXG4gICAgICBdLFxuXG4gICAgICAvLyBSZXF1aXJlIGFsbCBpbXBvcnRlZCBsaWJyYXJpZXMgYWN0dWFsbHkgcmVzb2x2ZSAoISFyZXF1aXJlZCBmb3IgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzIHRvIHdvcmshISlcbiAgICAgIFwiaW1wb3J0L25vLXVucmVzb2x2ZWRcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIFJlcXVpcmUgYW4gb3JkZXJpbmcgb24gYWxsIGltcG9ydHNcbiAgICAgIFwiaW1wb3J0L29yZGVyXCI6IFtcbiAgICAgICAgXCJ3YXJuXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBncm91cHM6IFtcImJ1aWx0aW5cIiwgXCJleHRlcm5hbFwiXSxcbiAgICAgICAgICBhbHBoYWJldGl6ZTogeyBvcmRlcjogXCJhc2NcIiwgY2FzZUluc2Vuc2l0aXZlOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuXG4gICAgICAvLyBDYW5ub3QgaW1wb3J0IGZyb20gdGhlIHNhbWUgbW9kdWxlIHR3aWNlXG4gICAgICBcIm5vLWR1cGxpY2F0ZS1pbXBvcnRzXCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBDYW5ub3Qgc2hhZG93IG5hbWVzXG4gICAgICBcIm5vLXNoYWRvd1wiOiBbXCJvZmZcIl0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3dcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIFJlcXVpcmVkIHNwYWNpbmcgaW4gcHJvcGVydHkgZGVjbGFyYXRpb25zIChjb3BpZWQgZnJvbSBUU0xpbnQsIGRlZmF1bHRzIGFyZSBnb29kKVxuICAgICAgXCJrZXktc3BhY2luZ1wiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gTm8gbXVsdGlwbGUgZW1wdHkgbGluZXNcbiAgICAgIFwibm8tbXVsdGlwbGUtZW1wdHktbGluZXNcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIE9uZSBvZiB0aGUgZWFzaWVzdCBtaXN0YWtlcyB0byBtYWtlXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1wiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgaW5zaWRlIHRyeS9jYXRjaCBibG9ja3MsIHByb21pc2VzIGFyZSAncmV0dXJuIGF3YWl0J2VkXG4gICAgICAvLyAobXVzdCBkaXNhYmxlIHRoZSBiYXNlIHJ1bGUgYXMgaXQgY2FuIHJlcG9ydCBpbmNvcnJlY3QgZXJyb3JzKVxuICAgICAgXCJuby1yZXR1cm4tYXdhaXRcIjogW1wib2ZmXCJdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcmV0dXJuLWF3YWl0XCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBVc2VsZXNzIGRpZmYgcmVzdWx0c1xuICAgICAgXCJuby10cmFpbGluZy1zcGFjZXNcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIE11c3QgdXNlIGZvby5iYXIgaW5zdGVhZCBvZiBmb29bJ2JhciddIGlmIHBvc3NpYmxlXG4gICAgICBcImRvdC1ub3RhdGlvblwiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gQXJlIHlvdSBzdXJlIHwgaXMgbm90IGEgdHlwbyBmb3IgfHwgP1xuICAgICAgXCJuby1iaXR3aXNlXCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBNZW1iZXIgb3JkZXJpbmdcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1wiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAge1xuICAgICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICAgIFwicHVibGljLXN0YXRpYy1maWVsZFwiLFxuICAgICAgICAgICAgXCJwdWJsaWMtc3RhdGljLW1ldGhvZFwiLFxuICAgICAgICAgICAgXCJwcm90ZWN0ZWQtc3RhdGljLWZpZWxkXCIsXG4gICAgICAgICAgICBcInByb3RlY3RlZC1zdGF0aWMtbWV0aG9kXCIsXG4gICAgICAgICAgICBcInByaXZhdGUtc3RhdGljLWZpZWxkXCIsXG4gICAgICAgICAgICBcInByaXZhdGUtc3RhdGljLW1ldGhvZFwiLFxuXG4gICAgICAgICAgICBcImZpZWxkXCIsXG5cbiAgICAgICAgICAgIC8vIENvbnN0cnVjdG9yc1xuICAgICAgICAgICAgXCJjb25zdHJ1Y3RvclwiLCAvLyA9IFtcInB1YmxpYy1jb25zdHJ1Y3RvclwiLCBcInByb3RlY3RlZC1jb25zdHJ1Y3RvclwiLCBcInByaXZhdGUtY29uc3RydWN0b3JcIl1cblxuICAgICAgICAgICAgLy8gTWV0aG9kc1xuICAgICAgICAgICAgXCJtZXRob2RcIixcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgLy8gT3ZlcnJpZGVzIGZvciAucHJvamVucmMuanNcbiAgICAvLyBAZGVwcmVjYXRlZFxuICAgIGlmIChsaW50UHJvamVuUmMpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgZmlsZXM6IFtsaW50UHJvamVuUmNGaWxlIHx8IFBST0pFTl9SQ10sXG4gICAgICAgICAgcnVsZXM6IHtcbiAgICAgICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1wiOiBcIm9mZlwiLFxuICAgICAgICAgICAgXCJpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcIjogXCJvZmZcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9XG5cbiAgICB0aGlzLmlnbm9yZVBhdHRlcm5zID0gb3B0aW9ucy5pZ25vcmVQYXR0ZXJucyA/PyBbXG4gICAgICBcIiouanNcIixcbiAgICAgIC8vIEBkZXByZWNhdGVkXG4gICAgICAuLi4obGludFByb2plblJjID8gW2AhJHtsaW50UHJvamVuUmNGaWxlIHx8IFBST0pFTl9SQ31gXSA6IFtdKSxcbiAgICAgIFwiKi5kLnRzXCIsXG4gICAgICBcIm5vZGVfbW9kdWxlcy9cIixcbiAgICAgIFwiKi5nZW5lcmF0ZWQudHNcIixcbiAgICAgIFwiY292ZXJhZ2VcIixcbiAgICBdO1xuXG4gICAgY29uc3QgdHNjb25maWcgPSBvcHRpb25zLnRzY29uZmlnUGF0aCA/PyBcIi4vdHNjb25maWcuanNvblwiO1xuXG4gICAgdGhpcy5hZGRQbHVnaW5zKFwiQHR5cGVzY3JpcHQtZXNsaW50XCIpO1xuICAgIHRoaXMuYWRkUGx1Z2lucyhcImltcG9ydFwiKTtcbiAgICB0aGlzLmFkZEV4dGVuZHMoXCJwbHVnaW46aW1wb3J0L3R5cGVzY3JpcHRcIik7XG5cbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGVudjoge1xuICAgICAgICBqZXN0OiB0cnVlLFxuICAgICAgICBub2RlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHJvb3Q6IHRydWUsXG4gICAgICBwbHVnaW5zOiAoKSA9PiB0aGlzLl9wbHVnaW5zLFxuICAgICAgcGFyc2VyOiBcIkB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJcIixcbiAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgZWNtYVZlcnNpb246IDIwMTgsXG4gICAgICAgIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsXG4gICAgICAgIHByb2plY3Q6IHRzY29uZmlnLFxuICAgICAgfSxcbiAgICAgIGV4dGVuZHM6ICgpID0+IHRoaXMuX2V4dGVuZHMsXG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICBcImltcG9ydC9wYXJzZXJzXCI6IHtcbiAgICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJcIjogW1wiLnRzXCIsIFwiLnRzeFwiXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbXBvcnQvcmVzb2x2ZXJcIjoge1xuICAgICAgICAgIC4uLihvcHRpb25zLmFsaWFzTWFwICYmIHtcbiAgICAgICAgICAgIGFsaWFzOiB7XG4gICAgICAgICAgICAgIG1hcDogT2JqZWN0LmVudHJpZXMob3B0aW9ucy5hbGlhc01hcCkubWFwKChbaywgdl0pID0+IFtrLCB2XSksXG4gICAgICAgICAgICAgIGV4dGVuc2lvbnM6IG9wdGlvbnMuYWxpYXNFeHRlbnNpb25zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBub2RlOiB7fSxcbiAgICAgICAgICB0eXBlc2NyaXB0OiB7XG4gICAgICAgICAgICBwcm9qZWN0OiB0c2NvbmZpZyxcbiAgICAgICAgICAgIC4uLihvcHRpb25zLnRzQWx3YXlzVHJ5VHlwZXMgIT09IGZhbHNlICYmIHsgYWx3YXlzVHJ5VHlwZXM6IHRydWUgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBpZ25vcmVQYXR0ZXJuczogdGhpcy5pZ25vcmVQYXR0ZXJucyxcbiAgICAgIHJ1bGVzOiAoKSA9PiAoeyAuLi50aGlzLl9mb3JtYXR0aW5nUnVsZXMsIC4uLnRoaXMucnVsZXMgfSksXG4gICAgICBvdmVycmlkZXM6IHRoaXMub3ZlcnJpZGVzLFxuICAgIH07XG5cbiAgICBpZiAob3B0aW9ucy55YW1sKSB7XG4gICAgICBuZXcgWWFtbEZpbGUocHJvamVjdCwgXCIuZXNsaW50cmMueW1sXCIsIHtcbiAgICAgICAgb2JqOiB0aGlzLmNvbmZpZyxcbiAgICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ldyBKc29uRmlsZShwcm9qZWN0LCBcIi5lc2xpbnRyYy5qc29uXCIsIHtcbiAgICAgICAgb2JqOiB0aGlzLmNvbmZpZyxcbiAgICAgICAgLy8gaHR0cHM6Ly9lc2xpbnQub3JnL2RvY3MvbGF0ZXN0L3VzZXItZ3VpZGUvY29uZmlndXJpbmcvY29uZmlndXJhdGlvbi1maWxlcyNjb21tZW50cy1pbi1jb25maWd1cmF0aW9uLWZpbGVzXG4gICAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgICAgYWxsb3dDb21tZW50czogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZSB1c2VyIGVuYWJsZWQgcHJldHRpZXIgZXhwbGljaXRseSBfb3JfIGlmIHRoZSBwcm9qZWN0IGhhcyBhXG4gICAgLy8gYFByZXR0aWVyYCBjb21wb25lbnQsIHdlIHNoYWxsIHR3ZWFrIG91ciBjb25maWd1cmF0aW9uIGFjY29yZGluZ2x5LlxuICAgIGlmIChvcHRpb25zLnByZXR0aWVyIHx8IFByZXR0aWVyLm9mKHByb2plY3QpKSB7XG4gICAgICB0aGlzLmVuYWJsZVByZXR0aWVyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGZpbGUsIGdsb2IgcGF0dGVybiBvciBkaXJlY3Rvcnkgd2l0aCBzb3VyY2UgZmlsZXMgdG8gbGludCAoZS5nLiBbIFwic3JjXCIgXSlcbiAgICovXG4gIHB1YmxpYyBhZGRMaW50UGF0dGVybihwYXR0ZXJuOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9saW50UGF0dGVybnMucHVzaChwYXR0ZXJuKTtcbiAgICB0aGlzLnVwZGF0ZVRhc2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gZXNsaW50IHJ1bGUuXG4gICAqL1xuICBwdWJsaWMgYWRkUnVsZXMocnVsZXM6IHsgW3J1bGU6IHN0cmluZ106IGFueSB9KSB7XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocnVsZXMpKSB7XG4gICAgICB0aGlzLnJ1bGVzW2tdID0gdjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBlc2xpbnQgcGx1Z2luXG4gICAqIEBwYXJhbSBwbHVnaW5zIFRoZSBuYW1lcyBvZiBwbHVnaW5zIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIGFkZFBsdWdpbnMoLi4ucGx1Z2luczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9wbHVnaW5zLnB1c2goLi4ucGx1Z2lucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGVzbGludCBvdmVycmlkZS5cbiAgICovXG4gIHB1YmxpYyBhZGRPdmVycmlkZShvdmVycmlkZTogRXNsaW50T3ZlcnJpZGUpIHtcbiAgICB0aGlzLm92ZXJyaWRlcy5wdXNoKG92ZXJyaWRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEbyBub3QgbGludCB0aGVzZSBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyBhZGRJZ25vcmVQYXR0ZXJuKHBhdHRlcm46IHN0cmluZykge1xuICAgIHRoaXMuaWdub3JlUGF0dGVybnMucHVzaChwYXR0ZXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGBleHRlbmRzYCBpdGVtIHRvIHRoZSBlc2xpbnQgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIGV4dGVuZExpc3QgVGhlIGxpc3Qgb2YgXCJleHRlbmRzXCIgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZEV4dGVuZHMoLi4uZXh0ZW5kTGlzdDogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9leHRlbmRzLnB1c2goLi4uZXh0ZW5kTGlzdCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZ2xvYiBmaWxlIHBhdHRlcm4gd2hpY2ggYWxsb3dzIGltcG9ydGluZyBkZXYgZGVwZW5kZW5jaWVzLlxuICAgKiBAcGFyYW0gcGF0dGVybiBnbG9iIHBhdHRlcm4uXG4gICAqL1xuICBwdWJsaWMgYWxsb3dEZXZEZXBzKHBhdHRlcm46IHN0cmluZykge1xuICAgIHRoaXMuX2FsbG93RGV2RGVwcy5hZGQocGF0dGVybik7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyBwcmV0dGllciBmb3IgY29kZSBmb3JtYXR0aW5nLlxuICAgKi9cbiAgcHJpdmF0ZSBlbmFibGVQcmV0dGllcigpIHtcbiAgICB0aGlzLm5vZGVQcm9qZWN0LmFkZERldkRlcHMoXG4gICAgICBcInByZXR0aWVyXCIsXG4gICAgICBcImVzbGludC1wbHVnaW4tcHJldHRpZXJcIixcbiAgICAgIFwiZXNsaW50LWNvbmZpZy1wcmV0dGllclwiXG4gICAgKTtcblxuICAgIHRoaXMuYWRkUGx1Z2lucyhcInByZXR0aWVyXCIpO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1J1bGVzID0ge1xuICAgICAgXCJwcmV0dGllci9wcmV0dGllclwiOiBbXCJlcnJvclwiXSxcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRFeHRlbmRzKFwicHJldHRpZXJcIiwgXCJwbHVnaW46cHJldHRpZXIvcmVjb21tZW5kZWRcIik7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckRldkRlcHNBbGxvd0xpc3QoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fYWxsb3dEZXZEZXBzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHRhc2sgd2l0aCB0aGUgY3VycmVudCBsaXN0IG9mIGxpbnQgcGF0dGVybnMgYW5kIGZpbGUgZXh0ZW5zaW9uc1xuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVUYXNrKCkge1xuICAgIHRoaXMuZXNsaW50VGFzay5yZXNldChcbiAgICAgIFtcbiAgICAgICAgXCJlc2xpbnRcIixcbiAgICAgICAgYC0tZXh0ICR7dGhpcy5fZmlsZUV4dGVuc2lvbnMuam9pbihcIixcIil9YCxcbiAgICAgICAgXCItLWZpeFwiLFxuICAgICAgICBcIi0tbm8tZXJyb3Itb24tdW5tYXRjaGVkLXBhdHRlcm5cIixcbiAgICAgICAgLi4udGhpcy5fbGludFBhdHRlcm5zLFxuICAgICAgXS5qb2luKFwiIFwiKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -26,7 +26,7 @@ class Transform {
26
26
  }
27
27
  }
28
28
  _a = JSII_RTTI_SYMBOL_1;
29
- Transform[_a] = { fqn: "projen.javascript.Transform", version: "0.71.21" };
29
+ Transform[_a] = { fqn: "projen.javascript.Transform", version: "0.71.22" };
30
30
  exports.Transform = Transform;
31
31
  class WatchPlugin {
32
32
  constructor(name, options) {
@@ -45,7 +45,7 @@ class WatchPlugin {
45
45
  }
46
46
  }
47
47
  _b = JSII_RTTI_SYMBOL_1;
48
- WatchPlugin[_b] = { fqn: "projen.javascript.WatchPlugin", version: "0.71.21" };
48
+ WatchPlugin[_b] = { fqn: "projen.javascript.WatchPlugin", version: "0.71.22" };
49
49
  exports.WatchPlugin = WatchPlugin;
50
50
  var UpdateSnapshot;
51
51
  (function (UpdateSnapshot) {
@@ -75,7 +75,7 @@ class JestReporter {
75
75
  }
76
76
  }
77
77
  _c = JSII_RTTI_SYMBOL_1;
78
- JestReporter[_c] = { fqn: "projen.javascript.JestReporter", version: "0.71.21" };
78
+ JestReporter[_c] = { fqn: "projen.javascript.JestReporter", version: "0.71.22" };
79
79
  exports.JestReporter = JestReporter;
80
80
  /**
81
81
  * Installs the following npm scripts:
@@ -258,6 +258,6 @@ class Jest extends component_1.Component {
258
258
  }
259
259
  }
260
260
  _d = JSII_RTTI_SYMBOL_1;
261
- Jest[_d] = { fqn: "projen.javascript.Jest", version: "0.71.21" };
261
+ Jest[_d] = { fqn: "projen.javascript.Jest", version: "0.71.22" };
262
262
  exports.Jest = Jest;
263
263
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L2plc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsaUNBQWlDO0FBQ2pDLDRDQUF5QztBQUN6Qyw4Q0FBNEM7QUFDNUMsa0NBQW1DO0FBR25DLE1BQU0sd0JBQXdCLEdBQUcsY0FBYyxDQUFDO0FBbWVoRCxNQUFhLFNBQVM7SUFDcEIsWUFDbUIsSUFBWSxFQUNaLE9BQWE7UUFEYixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBTTtJQUM3QixDQUFDO0lBRUo7OztPQUdHO0lBQ0ksTUFBTTtRQUNYLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Ozs7QUFmVSw4QkFBUztBQWtCdEIsTUFBYSxXQUFXO0lBQ3RCLFlBQ21CLElBQVksRUFDWixPQUFhO1FBRGIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFlBQU8sR0FBUCxPQUFPLENBQU07SUFDN0IsQ0FBQztJQUVKOzs7T0FHRztJQUNJLE1BQU07UUFDWCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNsQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDOzs7O0FBZlUsa0NBQVc7QUFxR3hCLElBQVksY0FVWDtBQVZELFdBQVksY0FBYztJQUN4Qjs7T0FFRztJQUNILG1DQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsY0FB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QUksQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLEVBQUUsRUFBRTtZQUN4RSxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtnQkFDakMsV0FBVyxFQUFFLHdCQUF3QjtnQkFDckMsSUFBSSxFQUFFLGVBQWUsY0FBYyxFQUFFO2FBQ3RDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7OztBQXBQVSxvQkFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tIFwic2VtdmVyXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gXCIuLi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBKc29uRmlsZSB9IGZyb20gXCIuLi9qc29uXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcblxuY29uc3QgREVGQVVMVF9URVNUX1JFUE9SVFNfRElSID0gXCJ0ZXN0LXJlcG9ydHNcIjtcblxuLy8gUHVsbGVkIGZyb20gaHR0cHM6Ly9qZXN0anMuaW8vZG9jcy9lbi9jb25maWd1cmF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIEplc3RDb25maWdPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoaXMgb3B0aW9uIHRlbGxzIEplc3QgdGhhdCBhbGwgaW1wb3J0ZWQgbW9kdWxlcyBpbiB5b3VyIHRlc3RzIHNob3VsZCBiZSBtb2NrZWQgYXV0b21hdGljYWxseS5cbiAgICogQWxsIG1vZHVsZXMgdXNlZCBpbiB5b3VyIHRlc3RzIHdpbGwgaGF2ZSBhIHJlcGxhY2VtZW50IGltcGxlbWVudGF0aW9uLCBrZWVwaW5nIHRoZSBBUEkgc3VyZmFjZVxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhdXRvbW9jaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIEplc3QgcnVucyBhbGwgdGVzdHMgYW5kIHByb2R1Y2VzIGFsbCBlcnJvcnMgaW50byB0aGUgY29uc29sZSB1cG9uIGNvbXBsZXRpb24uXG4gICAqIFRoZSBiYWlsIGNvbmZpZyBvcHRpb24gY2FuIGJlIHVzZWQgaGVyZSB0byBoYXZlIEplc3Qgc3RvcCBydW5uaW5nIHRlc3RzIGFmdGVyIG4gZmFpbHVyZXMuXG4gICAqIFNldHRpbmcgYmFpbCB0byB0cnVlIGlzIHRoZSBzYW1lIGFzIHNldHRpbmcgYmFpbCB0byAxLlxuICAgKiBAZGVmYXVsdCAtIDBcbiAgICovXG4gIHJlYWRvbmx5IGJhaWw/OiBib29sZWFuIHwgbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIEplc3Qgc2hvdWxkIHN0b3JlIGl0cyBjYWNoZWQgZGVwZW5kZW5jeSBpbmZvcm1hdGlvblxuICAgKiBAZGVmYXVsdCAtIFwiL3RtcC88cGF0aD5cIlxuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGVEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgY2xlYXIgbW9jayBjYWxscyBhbmQgaW5zdGFuY2VzIGJlZm9yZSBldmVyeSB0ZXN0LlxuICAgKiBFcXVpdmFsZW50IHRvIGNhbGxpbmcgamVzdC5jbGVhckFsbE1vY2tzKCkgYmVmb3JlIGVhY2ggdGVzdC5cbiAgICogVGhpcyBkb2VzIG5vdCByZW1vdmUgYW55IG1vY2sgaW1wbGVtZW50YXRpb24gdGhhdCBtYXkgaGF2ZSBiZWVuIHByb3ZpZGVkXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNsZWFyTW9ja3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY292ZXJhZ2UgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGNvbGxlY3RlZCB3aGlsZSBleGVjdXRpbmcgdGhlIHRlc3QuXG4gICAqIEJlY2F1c2UgdGhpcyByZXRyb2ZpdHMgYWxsIGV4ZWN1dGVkIGZpbGVzIHdpdGggY292ZXJhZ2UgY29sbGVjdGlvbiBzdGF0ZW1lbnRzLFxuICAgKiBpdCBtYXkgc2lnbmlmaWNhbnRseSBzbG93IGRvd24geW91ciB0ZXN0c1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjb2xsZWN0Q292ZXJhZ2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBnbG9iIHBhdHRlcm5zIGluZGljYXRpbmcgYSBzZXQgb2YgZmlsZXMgZm9yIHdoaWNoIGNvdmVyYWdlIGluZm9ybWF0aW9uIHNob3VsZCBiZSBjb2xsZWN0ZWQuXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBjb2xsZWN0Q292ZXJhZ2VGcm9tPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgSmVzdCBzaG91bGQgb3V0cHV0IGl0cyBjb3ZlcmFnZSBmaWxlcy5cbiAgICogQGRlZmF1bHQgXCJjb3ZlcmFnZVwiXG4gICAqL1xuICByZWFkb25seSBjb3ZlcmFnZURpcmVjdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgcmVnZXhwIHBhdHRlcm4gc3RyaW5ncyB0aGF0IGFyZSBtYXRjaGVkIGFnYWluc3QgYWxsIGZpbGUgcGF0aHMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgdGVzdC5cbiAgICogSWYgdGhlIGZpbGUgcGF0aCBtYXRjaGVzIGFueSBvZiB0aGUgcGF0dGVybnMsIGNvdmVyYWdlIGluZm9ybWF0aW9uIHdpbGwgYmUgc2tpcHBlZFxuICAgKiBAZGVmYXVsdCBcIi9ub2RlX21vZHVsZXMvXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvdmVyYWdlUGF0aElnbm9yZVBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGljaCBwcm92aWRlciBzaG91bGQgYmUgdXNlZCB0byBpbnN0cnVtZW50IGNvZGUgZm9yIGNvdmVyYWdlLlxuICAgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYmFiZWwgKGRlZmF1bHQpIG9yIHY4XG4gICAqIEBkZWZhdWx0IC0gXCJiYWJlbFwiXG4gICAqL1xuICByZWFkb25seSBjb3ZlcmFnZVByb3ZpZGVyPzogXCJiYWJlbFwiIHwgXCJ2OFwiO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgcmVwb3J0ZXIgbmFtZXMgdGhhdCBKZXN0IHVzZXMgd2hlbiB3cml0aW5nIGNvdmVyYWdlIHJlcG9ydHMuIEFueSBpc3RhbmJ1bCByZXBvcnRlciBjYW4gYmUgdXNlZFxuICAgKiBAZGVmYXVsdCAtIFtcImpzb25cIiwgXCJsY292XCIsIFwidGV4dFwiLCBcImNsb3ZlclwiLCBcImNvYmVydHVyYVwiXVxuICAgKi9cbiAgcmVhZG9ubHkgY292ZXJhZ2VSZXBvcnRlcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZ2xvYmFsIGNvdmVyYWdlIHRocmVzaG9sZHMuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNvbmZpZ3VyZSBtaW5pbXVtIHRocmVzaG9sZCBlbmZvcmNlbWVudFxuICAgKiBmb3IgY292ZXJhZ2UgcmVzdWx0cy4gVGhyZXNob2xkcyBjYW4gYmUgc3BlY2lmaWVkIGFzIGdsb2JhbCwgYXMgYSBnbG9iLCBhbmQgYXMgYSBkaXJlY3Rvcnkgb3IgZmlsZSBwYXRoLlxuICAgKiBJZiB0aHJlc2hvbGRzIGFyZW4ndCBtZXQsIGplc3Qgd2lsbCBmYWlsLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgY292ZXJhZ2VUaHJlc2hvbGQ/OiBDb3ZlcmFnZVRocmVzaG9sZDtcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB1c2Ugb2YgYSBjdXN0b20gZGVwZW5kZW5jeSBleHRyYWN0b3IuXG4gICAqIEl0IG11c3QgYmUgYSBub2RlIG1vZHVsZSB0aGF0IGV4cG9ydHMgYW4gb2JqZWN0IHdpdGggYW4gZXh0cmFjdCBmdW5jdGlvblxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kZW5jeUV4dHJhY3Rvcj86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb3dzIGZvciBhIGxhYmVsIHRvIGJlIHByaW50ZWQgYWxvbmdzaWRlIGEgdGVzdCB3aGlsZSBpdCBpcyBydW5uaW5nLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmcgfCBhbnk7XG5cbiAgLyoqXG4gICAqIE1ha2UgY2FsbGluZyBkZXByZWNhdGVkIEFQSXMgdGhyb3cgaGVscGZ1bCBlcnJvciBtZXNzYWdlcy4gVXNlZnVsIGZvciBlYXNpbmcgdGhlIHVwZ3JhZGUgcHJvY2Vzcy5cbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZXJyb3JPbkRlcHJlY2F0ZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUZXN0IGZpbGVzIHJ1biBpbnNpZGUgYSB2bSwgd2hpY2ggc2xvd3MgY2FsbHMgdG8gZ2xvYmFsIGNvbnRleHQgcHJvcGVydGllcyAoZS5nLiBNYXRoKS5cbiAgICogV2l0aCB0aGlzIG9wdGlvbiB5b3UgY2FuIHNwZWNpZnkgZXh0cmEgcHJvcGVydGllcyB0byBiZSBkZWZpbmVkIGluc2lkZSB0aGUgdm0gZm9yIGZhc3RlciBsb29rdXBzLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFHbG9iYWxzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRlc3QgZmlsZXMgYXJlIG5vcm1hbGx5IGlnbm9yZWQgZnJvbSBjb2xsZWN0aW5nIGNvZGUgY292ZXJhZ2UuXG4gICAqIFdpdGggdGhpcyBvcHRpb24sIHlvdSBjYW4gb3ZlcndyaXRlIHRoaXMgYmVoYXZpb3IgYW5kIGluY2x1ZGUgb3RoZXJ3aXNlIGlnbm9yZWQgZmlsZXMgaW4gY29kZSBjb3ZlcmFnZS5cbiAgICogQGRlZmF1bHQgLSBbJyddXG4gICAqL1xuICByZWFkb25seSBmb3JjZUNvdmVyYWdlTWF0Y2g/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBzZXQgb2YgZ2xvYmFsIHZhcmlhYmxlcyB0aGF0IG5lZWQgdG8gYmUgYXZhaWxhYmxlIGluIGFsbCB0ZXN0IGVudmlyb25tZW50cy5cbiAgICogQGRlZmF1bHQgLSB7fVxuICAgKi9cbiAgcmVhZG9ubHkgZ2xvYmFscz86IGFueTtcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB1c2Ugb2YgYSBjdXN0b20gZ2xvYmFsIHNldHVwIG1vZHVsZSB3aGljaCBleHBvcnRzIGFuIGFzeW5jIGZ1bmN0aW9uIHRoYXQgaXNcbiAgICogdHJpZ2dlcmVkIG9uY2UgYmVmb3JlIGFsbCB0ZXN0IHN1aXRlcy4gVGhpcyBmdW5jdGlvbiBnZXRzIEplc3QncyBnbG9iYWxDb25maWcgb2JqZWN0IGFzIGEgcGFyYW1ldGVyLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZ2xvYmFsU2V0dXA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgb3B0aW9uIGFsbG93cyB0aGUgdXNlIG9mIGEgY3VzdG9tIGdsb2JhbCB0ZWFyZG93biBtb2R1bGUgd2hpY2ggZXhwb3J0cyBhbiBhc3luYyBmdW5jdGlvbiB0aGF0IGlzXG4gICAqIHRyaWdnZXJlZCBvbmNlIGFmdGVyIGFsbCB0ZXN0IHN1aXRlcy4gVGhpcyBmdW5jdGlvbiBnZXRzIEplc3QncyBnbG9iYWxDb25maWcgb2JqZWN0IGFzIGEgcGFyYW1ldGVyLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZ2xvYmFsVGVhcmRvd24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb2YgamVzdC1oYXN0ZS1tYXAsIEplc3QncyBpbnRlcm5hbCBmaWxlIGNyYXdsZXIvY2FjaGUgc3lzdGVtLlxuICAgKiBAZGVmYXVsdCAtIHt9XG4gICAqL1xuICByZWFkb25seSBoYXN0ZT86IEhhc3RlQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgSmVzdCdzIGdsb2JhbHMgKGV4cGVjdCwgdGVzdCwgZGVzY3JpYmUsIGJlZm9yZUVhY2ggZXRjLikgaW50byB0aGUgZ2xvYmFsIGVudmlyb25tZW50LlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gZmFsc2UsIHlvdSBzaG91bGQgaW1wb3J0IGZyb20gQGplc3QvZ2xvYmFsc1xuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGluamVjdEdsb2JhbHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIG51bWJlciBsaW1pdGluZyB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgYXJlIGFsbG93ZWQgdG8gcnVuIGF0IHRoZSBzYW1lIHRpbWUgd2hlbiB1c2luZyB0ZXN0LmNvbmN1cnJlbnQuXG4gICAqIEFueSB0ZXN0IGFib3ZlIHRoaXMgbGltaXQgd2lsbCBiZSBxdWV1ZWQgYW5kIGV4ZWN1dGVkIG9uY2UgYSBzbG90IGlzIHJlbGVhc2VkLlxuICAgKiBAZGVmYXVsdCAtIDVcbiAgICovXG4gIHJlYWRvbmx5IG1heENvbmN1cnJlbmN5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHdvcmtlcnMgdGhlIHdvcmtlci1wb29sIHdpbGwgc3Bhd24gZm9yIHJ1bm5pbmcgdGVzdHMuIEluIHNpbmdsZSBydW4gbW9kZSxcbiAgICogdGhpcyBkZWZhdWx0cyB0byB0aGUgbnVtYmVyIG9mIHRoZSBjb3JlcyBhdmFpbGFibGUgb24geW91ciBtYWNoaW5lIG1pbnVzIG9uZSBmb3IgdGhlIG1haW4gdGhyZWFkXG4gICAqIEluIHdhdGNoIG1vZGUsIHRoaXMgZGVmYXVsdHMgdG8gaGFsZiBvZiB0aGUgYXZhaWxhYmxlIGNvcmVzIG9uIHlvdXIgbWFjaGluZS5cbiAgICogRm9yIGVudmlyb25tZW50cyB3aXRoIHZhcmlhYmxlIENQVXMgYXZhaWxhYmxlLCB5b3UgY2FuIHVzZSBwZXJjZW50YWdlIGJhc2VkIGNvbmZpZ3VyYXRpb246IFwibWF4V29ya2Vyc1wiOiBcIjUwJVwiXG4gICAqIEBkZWZhdWx0IC0gdGhlIG51bWJlciBvZiB0aGUgY29yZXMgYXZhaWxhYmxlIG9uIHlvdXIgbWFjaGluZSBtaW51cyBvbmUgZm9yIHRoZSBtYWluIHRocmVhZFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4V29ya2Vycz86IG51bWJlciB8IHN0cmluZztcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgZGlyZWN0b3J5IG5hbWVzIHRvIGJlIHNlYXJjaGVkIHJlY3Vyc2l2ZWx5IHVwIGZyb20gdGhlIHJlcXVpcmluZyBtb2R1bGUncyBsb2NhdGlvbi5cbiAgICogU2V0dGluZyB0aGlzIG9wdGlvbiB3aWxsIG92ZXJyaWRlIHRoZSBkZWZhdWx0LCBpZiB5b3Ugd2lzaCB0byBzdGlsbCBzZWFyY2ggbm9kZV9tb2R1bGVzIGZvciBwYWNrYWdlc1xuICAgKiBpbmNsdWRlIGl0IGFsb25nIHdpdGggYW55IG90aGVyIG9wdGlvbnM6IFtcIm5vZGVfbW9kdWxlc1wiLCBcImJvd2VyX2NvbXBvbmVudHNcIl1cbiAgICogQGRlZmF1bHQgLSBbXCJub2RlX21vZHVsZXNcIl1cbiAgICovXG4gIHJlYWRvbmx5IG1vZHVsZURpcmVjdG9yaWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGZpbGUgZXh0ZW5zaW9ucyB5b3VyIG1vZHVsZXMgdXNlLiBJZiB5b3UgcmVxdWlyZSBtb2R1bGVzIHdpdGhvdXQgc3BlY2lmeWluZyBhIGZpbGUgZXh0ZW5zaW9uLFxuICAgKiB0aGVzZSBhcmUgdGhlIGV4dGVuc2lvbnMgSmVzdCB3aWxsIGxvb2sgZm9yLCBpbiBsZWZ0LXRvLXJpZ2h0IG9yZGVyLlxuICAgKiBAZGVmYXVsdCAtIFtcImpzXCIsIFwianNvblwiLCBcImpzeFwiLCBcInRzXCIsIFwidHN4XCIsIFwibm9kZVwiXVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlRmlsZUV4dGVuc2lvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBtYXAgZnJvbSByZWd1bGFyIGV4cHJlc3Npb25zIHRvIG1vZHVsZSBuYW1lcyBvciB0byBhcnJheXMgb2YgbW9kdWxlIG5hbWVzIHRoYXQgYWxsb3cgdG8gc3R1YiBvdXRcbiAgICogcmVzb3VyY2VzLCBsaWtlIGltYWdlcyBvciBzdHlsZXMgd2l0aCBhIHNpbmdsZSBtb2R1bGUuXG4gICAqIEBkZWZhdWx0IC0gbnVsbFxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlTmFtZU1hcHBlcj86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgcmVnZXhwIHBhdHRlcm4gc3RyaW5ncyB0aGF0IGFyZSBtYXRjaGVkIGFnYWluc3QgYWxsIG1vZHVsZSBwYXRocyBiZWZvcmUgdGhvc2UgcGF0aHMgYXJlXG4gICAqIHRvIGJlIGNvbnNpZGVyZWQgJ3Zpc2libGUnIHRvIHRoZSBtb2R1bGUgbG9hZGVyLiBJZiBhIGdpdmVuIG1vZHVsZSdzIHBhdGggbWF0Y2hlcyBhbnkgb2YgdGhlIHBhdHRlcm5zLFxuICAgKiBpdCB3aWxsIG5vdCBiZSByZXF1aXJlKCktYWJsZSBpbiB0aGUgdGVzdCBlbnZpcm9ubWVudC5cbiAgICogQGRlZmF1bHQgLSBbXVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlUGF0aElnbm9yZVBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFsdGVybmF0aXZlIEFQSSB0byBzZXR0aW5nIHRoZSBOT0RFX1BBVEggZW52IHZhcmlhYmxlLCBtb2R1bGVQYXRocyBpcyBhbiBhcnJheSBvZiBhYnNvbHV0ZSBwYXRoc1xuICAgKiB0byBhZGRpdGlvbmFsIGxvY2F0aW9ucyB0byBzZWFyY2ggd2hlbiByZXNvbHZpbmcgbW9kdWxlcy4gVXNlIHRoZSA8cm9vdERpcj4gc3RyaW5nIHRva2VuIHRvIGluY2x1ZGVcbiAgICogdGhlIHBhdGggdG8geW91ciBwcm9qZWN0J3Mgcm9vdCBkaXJlY3RvcnkuIEV4YW1wbGU6IFtcIjxyb290RGlyPi9hcHAvXCJdLlxuICAgKiBAZGVmYXVsdCAtIFtdXG4gICAqL1xuICByZWFkb25seSBtb2R1bGVQYXRocz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgbm90aWZpY2F0aW9ucyBmb3IgdGVzdCByZXN1bHRzLlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBub3RpZnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgbm90aWZpY2F0aW9uIG1vZGUuIFJlcXVpcmVzIG5vdGlmeTogdHJ1ZVxuICAgKiBAZGVmYXVsdCAtIGZhaWx1cmUtY2hhbmdlXG4gICAqL1xuICByZWFkb25seSBub3RpZnlNb2RlPzpcbiAgICB8IFwiYWx3YXlzXCJcbiAgICB8IFwiZmFpbHVyZVwiXG4gICAgfCBcInN1Y2Nlc3NcIlxuICAgIHwgXCJjaGFuZ2VcIlxuICAgIHwgXCJzdWNjZXNzLWNoYW5nZVwiXG4gICAgfCBcImZhaWx1cmUtY2hhbmdlXCI7XG5cbiAgLyoqXG4gICAqIEEgcHJlc2V0IHRoYXQgaXMgdXNlZCBhcyBhIGJhc2UgZm9yIEplc3QncyBjb25maWd1cmF0aW9uLiBBIHByZXNldCBzaG91bGQgcG9pbnQgdG8gYW4gbnBtIG1vZHVsZVxuICAgKiB0aGF0IGhhcyBhIGplc3QtcHJlc2V0Lmpzb24gb3IgamVzdC1wcmVzZXQuanMgZmlsZSBhdCB0aGUgcm9vdC5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHByZXNldD86IHN0cmluZztcblxuICAvKipcbiAgICogU2V0cyB0aGUgcGF0aCB0byB0aGUgcHJldHRpZXIgbm9kZSBtb2R1bGUgdXNlZCB0byB1cGRhdGUgaW5saW5lIHNuYXBzaG90cy5cbiAgICogQGRlZmF1bHQgLSBcInByZXR0aWVyXCJcbiAgICovXG4gIHJlYWRvbmx5IHByZXR0aWVyUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiB0aGUgcHJvamVjdHMgY29uZmlndXJhdGlvbiBpcyBwcm92aWRlZCB3aXRoIGFuIGFycmF5IG9mIHBhdGhzIG9yIGdsb2IgcGF0dGVybnMsIEplc3Qgd2lsbFxuICAgKiBydW4gdGVzdHMgaW4gYWxsIG9mIHRoZSBzcGVjaWZpZWQgcHJvamVjdHMgYXQgdGhlIHNhbWUgdGltZS4gVGhpcyBpcyBncmVhdCBmb3IgbW9ub3JlcG9zIG9yXG4gICAqIHdoZW4gd29ya2luZyBvbiBtdWx0aXBsZSBwcm9qZWN0cyBhdCB0aGUgc2FtZSB0aW1lLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdHM/OiBBcnJheTxzdHJpbmcgfCB7IFtrZXk6IHN0cmluZ106IGFueSB9PjtcblxuICAvKipcbiAgICogVXNlIHRoaXMgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gYWRkIGN1c3RvbSByZXBvcnRlcnMgdG8gSmVzdC4gQSBjdXN0b20gcmVwb3J0ZXIgaXMgYSBjbGFzc1xuICAgKiB0aGF0IGltcGxlbWVudHMgb25SdW5TdGFydCwgb25UZXN0U3RhcnQsIG9uVGVzdFJlc3VsdCwgb25SdW5Db21wbGV0ZSBtZXRob2RzIHRoYXQgd2lsbCBiZVxuICAgKiBjYWxsZWQgd2hlbiBhbnkgb2YgdGhvc2UgZXZlbnRzIG9jY3Vycy5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9ydGVycz86IEplc3RSZXBvcnRlcltdO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHJlc2V0IG1vY2sgc3RhdGUgYmVmb3JlIGV2ZXJ5IHRlc3QuIEVxdWl2YWxlbnQgdG8gY2FsbGluZyBqZXN0LnJlc2V0QWxsTW9ja3MoKVxuICAgKiBiZWZvcmUgZWFjaCB0ZXN0LiBUaGlzIHdpbGwgbGVhZCB0byBhbnkgbW9ja3MgaGF2aW5nIHRoZWlyIGZha2UgaW1wbGVtZW50YXRpb25zIHJlbW92ZWQgYnV0XG4gICAqIGRvZXMgbm90IHJlc3RvcmUgdGhlaXIgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzZXRNb2Nrcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIGVhY2ggdGVzdCBmaWxlIGdldHMgaXRzIG93biBpbmRlcGVuZGVudCBtb2R1bGUgcmVnaXN0cnkuIEVuYWJsaW5nIHJlc2V0TW9kdWxlc1xuICAgKiBnb2VzIGEgc3RlcCBmdXJ0aGVyIGFuZCByZXNldHMgdGhlIG1vZHVsZSByZWdpc3RyeSBiZWZvcmUgcnVubmluZyBlYWNoIGluZGl2aWR1YWwgdGVzdC5cbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzZXRNb2R1bGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB1c2Ugb2YgYSBjdXN0b20gcmVzb2x2ZXIuXG4gICAqIGh0dHBzOi8vamVzdGpzLmlvL2RvY3MvZW4vY29uZmlndXJhdGlvbiNyZXNvbHZlci1zdHJpbmdcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHJlc3RvcmUgbW9jayBzdGF0ZSBiZWZvcmUgZXZlcnkgdGVzdC4gRXF1aXZhbGVudCB0byBjYWxsaW5nIGplc3QucmVzdG9yZUFsbE1vY2tzKClcbiAgICogYmVmb3JlIGVhY2ggdGVzdC4gVGhpcyB3aWxsIGxlYWQgdG8gYW55IG1vY2tzIGhhdmluZyB0aGVpciBmYWtlIGltcGxlbWVudGF0aW9ucyByZW1vdmVkIGFuZFxuICAgKiByZXN0b3JlcyB0aGVpciBpbml0aWFsIGltcGxlbWVudGF0aW9uLlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXN0b3JlTW9ja3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3RvcnkgdGhhdCBKZXN0IHNob3VsZCBzY2FuIGZvciB0ZXN0cyBhbmQgbW9kdWxlcyB3aXRoaW4uIElmIHlvdSBwdXQgeW91ciBKZXN0XG4gICAqIGNvbmZpZyBpbnNpZGUgeW91ciBwYWNrYWdlLmpzb24gYW5kIHdhbnQgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIGJlIHRoZSByb290IG9mIHlvdXIgcmVwbywgdGhlXG4gICAqIHZhbHVlIGZvciB0aGlzIGNvbmZpZyBwYXJhbSB3aWxsIGRlZmF1bHQgdG8gdGhlIGRpcmVjdG9yeSBvZiB0aGUgcGFja2FnZS5qc29uLlxuICAgKiBAZGVmYXVsdCAtIGRpcmVjdG9yeSBvZiB0aGUgcGFja2FnZS5qc29uXG4gICAqL1xuICByZWFkb25seSByb290RGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgcGF0aHMgdG8gZGlyZWN0b3JpZXMgdGhhdCBKZXN0IHNob3VsZCB1c2UgdG8gc2VhcmNoIGZvciBmaWxlcyBpbi5cbiAgICogQGRlZmF1bHQgLSBbXCI8cm9vdERpcj5cIl1cbiAgICovXG4gIHJlYWRvbmx5IHJvb3RzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gdXNlIGEgY3VzdG9tIHJ1bm5lciBpbnN0ZWFkIG9mIEplc3QncyBkZWZhdWx0IHRlc3QgcnVubmVyLlxuICAgKiBAZGVmYXVsdCAtIFwiamVzdC1ydW5uZXJcIlxuICAgKi9cbiAgcmVhZG9ubHkgcnVubmVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgcGF0aHMgdG8gbW9kdWxlcyB0aGF0IHJ1biBzb21lIGNvZGUgdG8gY29uZmlndXJlIG9yIHNldCB1cCB0aGUgdGVzdGluZyBlbnZpcm9ubWVudC5cbiAgICogRWFjaCBzZXR1cEZpbGUgd2lsbCBiZSBydW4gb25jZSBwZXIgdGVzdCBmaWxlLiBTaW5jZSBldmVyeSB0ZXN0IHJ1bnMgaW4gaXRzIG93biBlbnZpcm9ubWVudCxcbiAgICogdGhlc2Ugc2NyaXB0cyB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSB0ZXN0aW5nIGVudmlyb25tZW50IGltbWVkaWF0ZWx5IGJlZm9yZSBleGVjdXRpbmcgdGhlXG4gICAqIHRlc3QgY29kZSBpdHNlbGYuXG4gICAqIEBkZWZhdWx0IC0gW11cbiAgICovXG4gIHJlYWRvbmx5IHNldHVwRmlsZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhdGhzIHRvIG1vZHVsZXMgdGhhdCBydW4gc29tZSBjb2RlIHRvIGNvbmZpZ3VyZSBvciBzZXQgdXAgdGhlIHRlc3RpbmcgZnJhbWV3b3JrXG4gICAqIGJlZm9yZSBlYWNoIHRlc3QgZmlsZSBpbiB0aGUgc3VpdGUgaXMgZXhlY3V0ZWQuIFNpbmNlIHNldHVwRmlsZXMgZXhlY3V0ZXMgYmVmb3JlIHRoZSB0ZXN0XG4gICAqIGZyYW1ld29yayBpcyBpbnN0YWxsZWQgaW4gdGhlIGVudmlyb25tZW50LCB0aGlzIHNjcmlwdCBmaWxlIHByZXNlbnRzIHlvdSB0aGUgb3Bwb3J0dW5pdHkgb2ZcbiAgICogcnVubmluZyBzb21lIGNvZGUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHRlc3QgZnJhbWV3b3JrIGhhcyBiZWVuIGluc3RhbGxlZCBpbiB0aGUgZW52aXJvbm1lbnQuXG4gICAqIEBkZWZhdWx0IC0gW11cbiAgICovXG4gIHJlYWRvbmx5IHNldHVwRmlsZXNBZnRlckVudj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggYSB0ZXN0IGlzIGNvbnNpZGVyZWQgYXMgc2xvdyBhbmQgcmVwb3J0ZWQgYXMgc3VjaCBpbiB0aGUgcmVzdWx0cy5cbiAgICogQGRlZmF1bHQgLSA1XG4gICAqL1xuICByZWFkb25seSBzbG93VGVzdFRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gYSBtb2R1bGUgdGhhdCBjYW4gcmVzb2x2ZSB0ZXN0PC0+c25hcHNob3QgcGF0aC4gVGhpcyBjb25maWcgb3B0aW9uIGxldHMgeW91IGN1c3RvbWl6ZVxuICAgKiB3aGVyZSBKZXN0IHN0b3JlcyBzbmFwc2hvdCBmaWxlcyBvbiBkaXNrLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgc25hcHNob3RSZXNvbHZlcj86IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhdGhzIHRvIHNuYXBzaG90IHNlcmlhbGl6ZXIgbW9kdWxlcyBKZXN0IHNob3VsZCB1c2UgZm9yIHNuYXBzaG90IHRlc3RpbmcuXG4gICAqIEBkZWZhdWx0ID0gW11cbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90U2VyaWFsaXplcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHRlc3QgZW52aXJvbm1lbnQgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRlc3RpbmcuIFRoZSBkZWZhdWx0IGVudmlyb25tZW50IGluIEplc3QgaXMgYVxuICAgKiBicm93c2VyLWxpa2UgZW52aXJvbm1lbnQgdGhyb3VnaCBqc2RvbS4gSWYgeW91IGFyZSBidWlsZGluZyBhIG5vZGUgc2VydmljZSwgeW91IGNhbiB1c2UgdGhlIG5vZGVcbiAgICogb3B0aW9uIHRvIHVzZSBhIG5vZGUtbGlrZSBlbnZpcm9ubWVudCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCAtIFwianNkb21cIlxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdEVudmlyb25tZW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUZXN0IGVudmlyb25tZW50IG9wdGlvbnMgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgdGVzdEVudmlyb25tZW50LlxuICAgKiBUaGUgcmVsZXZhbnQgb3B0aW9ucyBkZXBlbmQgb24gdGhlIGVudmlyb25tZW50LlxuICAgKiBAZGVmYXVsdCAtIHt9XG4gICAqL1xuICByZWFkb25seSB0ZXN0RW52aXJvbm1lbnRPcHRpb25zPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgZXhpdCBjb2RlIEplc3QgcmV0dXJucyBvbiB0ZXN0IGZhaWx1cmUuXG4gICAqIEBkZWZhdWx0IC0gMVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdEZhaWx1cmVFeGl0Q29kZT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGdsb2IgcGF0dGVybnMgSmVzdCB1c2VzIHRvIGRldGVjdCB0ZXN0IGZpbGVzLiBCeSBkZWZhdWx0IGl0IGxvb2tzIGZvciAuanMsIC5qc3gsIC50cyBhbmQgLnRzeFxuICAgKiBmaWxlcyBpbnNpZGUgb2YgX190ZXN0c19fIGZvbGRlcnMsIGFzIHdlbGwgYXMgYW55IGZpbGVzIHdpdGggYSBzdWZmaXggb2YgLnRlc3Qgb3IgLnNwZWNcbiAgICogKGUuZy4gQ29tcG9uZW50LnRlc3QuanMgb3IgQ29tcG9uZW50LnNwZWMuanMpLiBJdCB3aWxsIGFsc28gZmluZCBmaWxlcyBjYWxsZWQgdGVzdC5qcyBvciBzcGVjLmpzLlxuICAgKiBAZGVmYXVsdCBbJyoqXFwvX190ZXN0c19fLyoqXFwvKi5banRdcz8oeCknLCAnKipcXC8/KCouKSsoc3BlY3x0ZXN0KS5bdGpdcz8oeCknXVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdE1hdGNoPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHJlZ2V4cCBwYXR0ZXJuIHN0cmluZ3MgdGhhdCBhcmUgbWF0Y2hlZCBhZ2FpbnN0IGFsbCB0ZXN0IHBhdGhzIGJlZm9yZSBleGVjdXRpbmcgdGhlIHRlc3QuXG4gICAqIElmIHRoZSB0ZXN0IHBhdGggbWF0Y2hlcyBhbnkgb2YgdGhlIHBhdHRlcm5zLCBpdCB3aWxsIGJlIHNraXBwZWQuXG4gICAqIEBkZWZhdWx0IC0gW1wiL25vZGVfbW9kdWxlcy9cIl1cbiAgICovXG4gIHJlYWRvbmx5IHRlc3RQYXRoSWdub3JlUGF0dGVybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHBhdHRlcm4gb3IgcGF0dGVybnMgSmVzdCB1c2VzIHRvIGRldGVjdCB0ZXN0IGZpbGVzLiBCeSBkZWZhdWx0IGl0IGxvb2tzIGZvciAuanMsIC5qc3gsIC50cyBhbmQgLnRzeFxuICAgKiBmaWxlcyBpbnNpZGUgb2YgX190ZXN0c19fIGZvbGRlcnMsIGFzIHdlbGwgYXMgYW55IGZpbGVzIHdpdGggYSBzdWZmaXggb2YgLnRlc3Qgb3IgLnNwZWNcbiAgICogKGUuZy4gQ29tcG9uZW50LnRlc3QuanMgb3IgQ29tcG9uZW50LnNwZWMuanMpLiBJdCB3aWxsIGFsc28gZmluZCBmaWxlcyBjYWxsZWQgdGVzdC5qcyBvciBzcGVjLmpzLlxuICAgKiBAZGVmYXVsdCAtICgvX190ZXN0c19fLy4qfChcXFxcLnwvKSh0ZXN0fHNwZWMpKVxcXFwuW2p0XXN4PyRcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RSZWdleD86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wdGlvbiBhbGxvd3MgdGhlIHVzZSBvZiBhIGN1c3RvbSByZXN1bHRzIHByb2Nlc3Nvci5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RSZXN1bHRzUHJvY2Vzc29yPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wdGlvbiBhbGxvd3MgdGhlIHVzZSBvZiBhIGN1c3RvbSB0ZXN0IHJ1bm5lci4gVGhlIGRlZmF1bHQgaXMgamFzbWluZTIuIEEgY3VzdG9tIHRlc3QgcnVubmVyXG4gICAqIGNhbiBiZSBwcm92aWRlZCBieSBzcGVjaWZ5aW5nIGEgcGF0aCB0byBhIHRlc3QgcnVubmVyIGltcGxlbWVudGF0aW9uLlxuICAgKiBAZGVmYXVsdCAtIFwiamFzbWluZTJcIlxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJ1bm5lcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byB1c2UgYSBjdXN0b20gc2VxdWVuY2VyIGluc3RlYWQgb2YgSmVzdCdzIGRlZmF1bHQuXG4gICAqIFNvcnQgbWF5IG9wdGlvbmFsbHkgcmV0dXJuIGEgUHJvbWlzZS5cbiAgICogQGRlZmF1bHQgLSBcIkBqZXN0L3Rlc3Qtc2VxdWVuY2VyXCJcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RTZXF1ZW5jZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgdGltZW91dCBvZiBhIHRlc3QgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBAZGVmYXVsdCAtIDUwMDBcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RUaW1lb3V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wdGlvbiBzZXRzIHRoZSBVUkwgZm9yIHRoZSBqc2RvbSBlbnZpcm9ubWVudC4gSXQgaXMgcmVmbGVjdGVkIGluIHByb3BlcnRpZXMgc3VjaCBhcyBsb2NhdGlvbi5ocmVmLlxuICAgKiBAZGVmYXVsdCAtIFwiaHR0cDovL2xvY2FsaG9zdFwiXG4gICAqL1xuICByZWFkb25seSB0ZXN0VVJMPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZXR0aW5nIHRoaXMgdmFsdWUgdG8gbGVnYWN5IG9yIGZha2UgYWxsb3dzIHRoZSB1c2Ugb2YgZmFrZSB0aW1lcnMgZm9yIGZ1bmN0aW9ucyBzdWNoIGFzIHNldFRpbWVvdXQuXG4gICAqIEZha2UgdGltZXJzIGFyZSB1c2VmdWwgd2hlbiBhIHBpZWNlIG9mIGNvZGUgc2V0cyBhIGxvbmcgdGltZW91dCB0aGF0IHdlIGRvbid0IHdhbnQgdG8gd2FpdCBmb3IgaW4gYSB0ZXN0LlxuICAgKiBAZGVmYXVsdCAtIFwicmVhbFwiXG4gICAqL1xuICByZWFkb25seSB0aW1lcnM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbWFwIGZyb20gcmVndWxhciBleHByZXNzaW9ucyB0byBwYXRocyB0byB0cmFuc2Zvcm1lcnMuIEEgdHJhbnNmb3JtZXIgaXMgYSBtb2R1bGUgdGhhdCBwcm92aWRlcyBhXG4gICAqIHN5bmNocm9ub3VzIGZ1bmN0aW9uIGZvciB0cmFuc2Zvcm1pbmcgc291cmNlIGZpbGVzLlxuICAgKiBAZGVmYXVsdCAtIHtcIlxcXFwuW2p0XXN4PyRcIjogXCJiYWJlbC1qZXN0XCJ9XG4gICAqL1xuICByZWFkb25seSB0cmFuc2Zvcm0/OiB7IFtrZXk6IHN0cmluZ106IFRyYW5zZm9ybSB9O1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiByZWdleHAgcGF0dGVybiBzdHJpbmdzIHRoYXQgYXJlIG1hdGNoZWQgYWdhaW5zdCBhbGwgc291cmNlIGZpbGUgcGF0aHMgYmVmb3JlIHRyYW5zZm9ybWF0aW9uLlxuICAgKiBJZiB0aGUgdGVzdCBwYXRoIG1hdGNoZXMgYW55IG9mIHRoZSBwYXR0ZXJucywgaXQgd2lsbCBub3QgYmUgdHJhbnNmb3JtZWQuXG4gICAqIEBkZWZhdWx0IC0gW1wiL25vZGVfbW9kdWxlcy9cIiwgXCJcXFxcLnBucFxcXFwuW15cXFxcXFwvXSskXCJdXG4gICAqL1xuICByZWFkb25seSB0cmFuc2Zvcm1JZ25vcmVQYXR0ZXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiByZWdleHAgcGF0dGVybiBzdHJpbmdzIHRoYXQgYXJlIG1hdGNoZWQgYWdhaW5zdCBhbGwgbW9kdWxlcyBiZWZvcmUgdGhlIG1vZHVsZSBsb2FkZXIgd2lsbFxuICAgKiBhdXRvbWF0aWNhbGx5IHJldHVybiBhIG1vY2sgZm9yIHRoZW0uIElmIGEgbW9kdWxlJ3MgcGF0aCBtYXRjaGVzIGFueSBvZiB0aGUgcGF0dGVybnMgaW4gdGhpcyBsaXN0LCBpdFxuICAgKiB3aWxsIG5vdCBiZSBhdXRvbWF0aWNhbGx5IG1vY2tlZCBieSB0aGUgbW9kdWxlIGxvYWRlci5cbiAgICogQGRlZmF1bHQgLSBbXVxuICAgKi9cbiAgcmVhZG9ubHkgdW5tb2NrZWRNb2R1bGVQYXRoUGF0dGVybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgZWFjaCBpbmRpdmlkdWFsIHRlc3Qgc2hvdWxkIGJlIHJlcG9ydGVkIGR1cmluZyB0aGUgcnVuLiBBbGwgZXJyb3JzIHdpbGwgYWxzb1xuICAgKiBzdGlsbCBiZSBzaG93biBvbiB0aGUgYm90dG9tIGFmdGVyIGV4ZWN1dGlvbi4gTm90ZSB0aGF0IGlmIHRoZXJlIGlzIG9ubHkgb25lIHRlc3QgZmlsZSBiZWluZyBydW5cbiAgICogaXQgd2lsbCBkZWZhdWx0IHRvIHRydWUuXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZlcmJvc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBSZWdFeHAgcGF0dGVybnMgdGhhdCBhcmUgbWF0Y2hlZCBhZ2FpbnN0IGFsbCBzb3VyY2UgZmlsZSBwYXRocyBiZWZvcmUgcmUtcnVubmluZyB0ZXN0c1xuICAgKiBpbiB3YXRjaCBtb2RlLiBJZiB0aGUgZmlsZSBwYXRoIG1hdGNoZXMgYW55IG9mIHRoZSBwYXR0ZXJucywgd2hlbiBpdCBpcyB1cGRhdGVkLCBpdCB3aWxsIG5vdCB0cmlnZ2VyXG4gICAqIGEgcmUtcnVuIG9mIHRlc3RzLlxuICAgKiBAZGVmYXVsdCAtIFtdXG4gICAqL1xuICByZWFkb25seSB3YXRjaFBhdGhJZ25vcmVQYXR0ZXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVmYXVsdCAtXG4gICAqL1xuICByZWFkb25seSB3YXRjaFBsdWdpbnM/OiBXYXRjaFBsdWdpbltdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSB3YXRjaG1hbiBmb3IgZmlsZSBjcmF3bGluZy5cbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSB3YXRjaG1hbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVzY2FwZSBoYXRjaCB0byBhbGxvdyBhbnkgdmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxPcHRpb25zPzogeyBbbmFtZTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIEVzY2FwZSBoYXRjaCB0byBhbGxvdyBhbnkgdmFsdWUgKEpTL1RTIG9ubHkpXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgYWRkaXRpb25hbE9wdGlvbnNgIGluc3RlYWQuXG4gICAqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgW25hbWU6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zZm9ybSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM/OiBhbnlcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgdG9KU09OKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFt0aGlzLm5hbWUsIHRoaXMub3B0aW9uc107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFdhdGNoUGx1Z2luIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucz86IGFueVxuICApIHt9XG5cbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyB0b0pTT04oKSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucyAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gW3RoaXMubmFtZSwgdGhpcy5vcHRpb25zXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEplc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIENvbGxlY3QgY292ZXJhZ2UuIERlcHJlY2F0ZWRcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgamVzdENvbmZpZy5jb2xsZWN0Q292ZXJhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGNvdmVyYWdlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5jbHVkZSB0aGUgYHRleHRgIGNvdmVyYWdlIHJlcG9ydGVyLCB3aGljaCBtZWFucyB0aGF0IGNvdmVyYWdlIHN1bW1hcnkgaXMgcHJpbnRlZFxuICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBqZXN0IGV4ZWN1dGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY292ZXJhZ2VUZXh0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVmaW5lcyBgdGVzdFBhdGhJZ25vcmVQYXR0ZXJuc2AgYW5kIGBjb3ZlcmFnZVBhdGhJZ25vcmVQYXR0ZXJuc2BcbiAgICogQGRlZmF1bHQgW1wiL25vZGVfbW9kdWxlcy9cIl1cbiAgICogQGRlcHJlY2F0ZWQgdXNlIGplc3RDb25maWcuY292ZXJhZ2VQYXRoSWdub3JlUGF0dGVybnMgb3IgamVzdENvbmZpZy50ZXN0UGF0aElnbm9yZVBhdHRlcm5zIHJlc3BlY3RpdmVseVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlUGF0dGVybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmVzdWx0IHByb2Nlc3Npbmcgd2l0aCBqZXN0LWp1bml0LlxuICAgKlxuICAgKiBPdXRwdXQgZGlyZWN0b3J5IGlzIGB0ZXN0LXJlcG9ydHMvYC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkganVuaXRSZXBvcnRpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcmVzZXJ2ZSB0aGUgZGVmYXVsdCBKZXN0IHJlcG9ydGVyIHdoZW4gYWRkaXRpb25hbCByZXBvcnRlcnMgYXJlIGFkZGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwcmVzZXJ2ZURlZmF1bHRSZXBvcnRlcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVwZGF0ZSBzbmFwc2hvdHMgaW4gdGFzayBcInRlc3RcIiAod2hpY2ggaXMgZXhlY3V0ZWQgaW4gdGFzayBcImJ1aWxkXCIgYW5kIGJ1aWxkIHdvcmtmbG93cyksXG4gICAqIG9yIGNyZWF0ZSBhIHNlcGFyYXRlIHRhc2sgXCJ0ZXN0OnVwZGF0ZVwiIGZvciB1cGRhdGluZyBzbmFwc2hvdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQUxXQVlTXG4gICAqL1xuICByZWFkb25seSB1cGRhdGVTbmFwc2hvdD86IFVwZGF0ZVNuYXBzaG90O1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiBqZXN0IHRvIHVzZS5cbiAgICpcbiAgICogTm90ZSB0aGF0IHNhbWUgdmVyc2lvbiBpcyB1c2VkIGFzIHZlcnNpb24gb2YgYEB0eXBlcy9qZXN0YCBhbmQgYHRzLWplc3RgIChpZiBUeXBlc2NyaXB0IGluIHVzZSksIHNvIGdpdmVuIHZlcnNpb24gc2hvdWxkIHdvcmsgYWxzbyBmb3IgdGhvc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaW5zdGFsbHMgdGhlIGxhdGVzdCBqZXN0IHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IGplc3RWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIEpTT04gY29uZmlnIGZpbGUgZm9yIEplc3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzZXBhcmF0ZSBjb25maWcgZmlsZSwgamVzdCBzZXR0aW5ncyBhcmUgc3RvcmVkIGluIHBhY2thZ2UuanNvblxuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlnRmlsZVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEplc3QgY29uZmlndXJhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IGplc3QgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgamVzdENvbmZpZz86IEplc3RDb25maWdPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgSmVzdCBDTEkgaW52b2NhdGlvblxuICAgKiBAZGVmYXVsdCAtIG5vIGV4dHJhIG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhQ2xpT3B0aW9ucz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvdmVyYWdlVGhyZXNob2xkIHtcbiAgcmVhZG9ubHkgYnJhbmNoZXM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGZ1bmN0aW9ucz86IG51bWJlcjtcbiAgcmVhZG9ubHkgbGluZXM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHN0YXRlbWVudHM/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIFVwZGF0ZVNuYXBzaG90IHtcbiAgLyoqXG4gICAqIEFsd2F5cyB1cGRhdGUgc25hcHNob3RzIGluIFwidGVzdFwiIHRhc2suXG4gICAqL1xuICBBTFdBWVMgPSBcImFsd2F5c1wiLFxuXG4gIC8qKlxuICAgKiBOZXZlciB1cGRhdGUgc25hcHNob3RzIGluIFwidGVzdFwiIHRhc2sgYW5kIGNyZWF0ZSBhIHNlcGFyYXRlIFwidGVzdDp1cGRhdGVcIiB0YXNrLlxuICAgKi9cbiAgTkVWRVIgPSBcIm5ldmVyXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzdGVDb25maWcge1xuICByZWFkb25seSBjb21wdXRlU2hhMT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRlZmF1bHRQbGF0Zm9ybT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgaGFzdGVJbXBsTW9kdWxlUGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgcGxhdGZvcm1zPzogQXJyYXk8c3RyaW5nPjtcbiAgcmVhZG9ubHkgdGhyb3dPbk1vZHVsZUNvbGxpc2lvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBKZXN0UmVwb3J0ZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBuYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICApIHt9XG5cbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyB0b0pTT04oKTogYW55IHtcbiAgICBpZiAodGhpcy5vcHRpb25zID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLm5hbWU7XG4gICAgfVxuICAgIHJldHVybiBbdGhpcy5uYW1lLCB0aGlzLm9wdGlvbnNdO1xuICB9XG59XG5cbi8qKlxuICogSW5zdGFsbHMgdGhlIGZvbGxvd2luZyBucG0gc2NyaXB0czpcbiAqXG4gKiAtIGB0ZXN0YCwgaW50ZW5kZWQgZm9yIHRlc3RpbmcgbG9jYWxseSBhbmQgaW4gQ0kuIFdpbGwgdXBkYXRlIHNuYXBzaG90cyB1bmxlc3MgYHVwZGF0ZVNuYXBzaG90OiBVcGRhdGVTbmFwc2hvdDogTkVWRVJgIGlzIHNldC5cbiAqIC0gYHRlc3Q6d2F0Y2hgLCBpbnRlbmRlZCBmb3IgYXV0b21hdGljYWxseSByZXJ1bm5pbmcgdGVzdHMgd2hlbiBmaWxlcyBjaGFuZ2UuXG4gKiAtIGB0ZXN0OnVwZGF0ZWAsIGludGVuZGVkIGZvciB0ZXN0aW5nIGxvY2FsbHkgYW5kIHVwZGF0aW5nIHNuYXBzaG90cyB0byBtYXRjaCB0aGUgbGF0ZXN0IHVuaXQgdW5kZXIgdGVzdC4gT25seSBhdmFpbGFibGUgd2hlbiBgdXBkYXRlU25hcHNob3Q6IFVwZGF0ZVNuYXBzaG90OiBORVZFUmAuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgSmVzdCBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzaW5nbGV0b25lIEplc3QgY29tcG9uZW50IG9mIGEgcHJvamVjdCBvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm9uZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogUHJvamVjdCk6IEplc3QgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzSmVzdCA9IChjOiBDb21wb25lbnQpOiBjIGlzIEplc3QgPT4gYyBpbnN0YW5jZW9mIEplc3Q7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzSmVzdCk7XG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIGhhdGNoLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlnOiBhbnk7XG5cbiAgLyoqXG4gICAqIEplc3QgdmVyc2lvbiwgaW5jbHVkaW5nIGBAYCBzeW1ib2wsIGxpa2UgYEBeMjlgXG4gICAqL1xuICByZWFkb25seSBqZXN0VmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBKZXN0IGNvbmZpZyBmaWxlLiBgdW5kZWZpbmVkYCBpZiBzZXR0aW5ncyBhcmUgd3JpdHRlbiB0byBgcGFja2FnZS5qc29uYFxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZT86IEpzb25GaWxlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGVzdE1hdGNoOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBpZ25vcmVQYXR0ZXJuczogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hJZ25vcmVQYXR0ZXJuczogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgY292ZXJhZ2VSZXBvcnRlcnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcG9ydGVyczogSmVzdFJlcG9ydGVyW107XG4gIHByaXZhdGUgcmVhZG9ubHkgamVzdENvbmZpZz86IEplc3RDb25maWdPcHRpb25zICYge1xuICAgIHJlYWRvbmx5IGFkZGl0aW9uYWxPcHRpb25zOiB1bmRlZmluZWQ7XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBleHRyYUNsaU9wdGlvbnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIF9zbmFwc2hvdFJlc29sdmVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM6IEplc3RPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8vIGhhcmQgZGVwcmVjYXRpb25cbiAgICBpZiAoKG9wdGlvbnMgYXMgYW55KS50eXBlc2NyaXB0Q29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdcImplc3RPcHRpb25zLnR5cGVzY3JpcHRDb25maWdcIiBpcyBkZXByZWNhdGVkLiBVc2UgXCJ0eXBlc2NyaXB0UHJvamVjdC50c2NvbmZpZ0RldlwiIGluc3RlYWQnXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEplc3Qgc25hcHNob3QgZmlsZXMgYXJlIGdlbmVyYXRlZCBmaWxlcyFcbiAgICBwcm9qZWN0LnJvb3QuYW5ub3RhdGVHZW5lcmF0ZWQoXCIqLnNuYXBcIik7XG4gICAgdGhpcy5qZXN0VmVyc2lvbiA9IG9wdGlvbnMuamVzdFZlcnNpb24gPyBgQCR7b3B0aW9ucy5qZXN0VmVyc2lvbn1gIDogXCJcIjtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoYGplc3Qke3RoaXMuamVzdFZlcnNpb259YCk7XG5cbiAgICB0aGlzLmplc3RDb25maWcgPSB7XG4gICAgICAuLi5vcHRpb25zLmplc3RDb25maWcsXG4gICAgICBhZGRpdGlvbmFsT3B0aW9uczogdW5kZWZpbmVkLFxuICAgICAgLi4ub3B0aW9ucy5qZXN0Q29uZmlnPy5hZGRpdGlvbmFsT3B0aW9ucyxcbiAgICB9O1xuICAgIHRoaXMuZXh0cmFDbGlPcHRpb25zID0gb3B0aW9ucy5leHRyYUNsaU9wdGlvbnMgPz8gW107XG5cbiAgICB0aGlzLmlnbm9yZVBhdHRlcm5zID0gdGhpcy5qZXN0Q29uZmlnPy50ZXN0UGF0aElnbm9yZVBhdHRlcm5zID8/XG4gICAgICBvcHRpb25zLmlnbm9yZVBhdHRlcm5zID8/IFtcIi9ub2RlX21vZHVsZXMvXCJdO1xuICAgIHRoaXMud2F0Y2hJZ25vcmVQYXR0ZXJucyA9IHRoaXMuamVzdENvbmZpZz8ud2F0Y2hQYXRoSWdub3JlUGF0dGVybnMgPz8gW1xuICAgICAgXCIvbm9kZV9tb2R1bGVzL1wiLFxuICAgIF07XG4gICAgdGhpcy5jb3ZlcmFnZVJlcG9ydGVycyA9IHRoaXMuamVzdENvbmZpZz8uY292ZXJhZ2VSZXBvcnRlcnMgPz8gW1xuICAgICAgXCJqc29uXCIsXG4gICAgICBcImxjb3ZcIixcbiAgICAgIFwiY2xvdmVyXCIsXG4gICAgICBcImNvYmVydHVyYVwiLFxuICAgIF07XG4gICAgdGhpcy50ZXN0TWF0Y2ggPSB0aGlzLmplc3RDb25maWc/LnRlc3RNYXRjaCA/PyBbXG4gICAgICBcIioqL19fdGVzdHNfXy8qKi8qLltqdF1zPyh4KVwiLFxuICAgICAgXCIqKi8/KCouKSsoc3BlY3x0ZXN0KS5bdGpdcz8oeClcIixcbiAgICBdO1xuXG4gICAgY29uc3QgY292ZXJhZ2VEaXJlY3RvcnkgPSB0aGlzLmplc3RDb25maWc/LmNvdmVyYWdlRGlyZWN0b3J5ID8/IFwiY292ZXJhZ2VcIjtcblxuICAgIHRoaXMucmVwb3J0ZXJzID0gW107XG5cbiAgICBpZiAob3B0aW9ucy5wcmVzZXJ2ZURlZmF1bHRSZXBvcnRlcnMgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5yZXBvcnRlcnMudW5zaGlmdChuZXcgSmVzdFJlcG9ydGVyKFwiZGVmYXVsdFwiKSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAuLi50aGlzLmplc3RDb25maWcsXG4gICAgICBjbGVhck1vY2tzOiB0aGlzLmplc3RDb25maWc/LmNsZWFyTW9ja3MgPz8gdHJ1ZSxcbiAgICAgIGNvbGxlY3RDb3ZlcmFnZTpcbiAgICAgICAgb3B0aW9ucy5jb3ZlcmFnZSA/PyB0aGlzLmplc3RDb25maWc/LmNvbGxlY3RDb3ZlcmFnZSA/PyB0cnVlLFxuICAgICAgY292ZXJhZ2VSZXBvcnRlcnM6IHRoaXMuY292ZXJhZ2VSZXBvcnRlcnMsXG4gICAgICBjb3ZlcmFnZURpcmVjdG9yeTogY292ZXJhZ2VEaXJlY3RvcnksXG4gICAgICBjb3ZlcmFnZVBhdGhJZ25vcmVQYXR0ZXJuczpcbiAgICAgICAgdGhpcy5qZXN0Q29uZmlnPy5jb3ZlcmFnZVBhdGhJZ25vcmVQYXR0ZXJucyA/PyB0aGlzLmlnbm9yZVBhdHRlcm5zLFxuICAgICAgdGVzdFBhdGhJZ25vcmVQYXR0ZXJuczogdGhpcy5pZ25vcmVQYXR0ZXJucyxcbiAgICAgIHdhdGNoUGF0aElnbm9yZVBhdHRlcm5zOiB0aGlzLndhdGNoSWdub3JlUGF0dGVybnMsXG4gICAgICB0ZXN0TWF0Y2g6IHRoaXMudGVzdE1hdGNoLFxuICAgICAgcmVwb3J0ZXJzOiB0aGlzLnJlcG9ydGVycyxcbiAgICAgIHNuYXBzaG90UmVzb2x2ZXI6ICgoKSA9PiB0aGlzLl9zbmFwc2hvdFJlc29sdmVyKSBhcyBhbnksXG4gICAgfSBzYXRpc2ZpZXMgSmVzdENvbmZpZ09wdGlvbnM7XG5cbiAgICBpZiAob3B0aW9ucy5qdW5pdFJlcG9ydGluZyA/PyB0cnVlKSB7XG4gICAgICBjb25zdCByZXBvcnRzRGlyID0gREVGQVVMVF9URVNUX1JFUE9SVFNfRElSO1xuXG4gICAgICB0aGlzLmFkZFJlcG9ydGVyKFxuICAgICAgICBuZXcgSmVzdFJlcG9ydGVyKFwiamVzdC1qdW5pdFwiLCB7IG91dHB1dERpcmVjdG9yeTogcmVwb3J0c0RpciB9KVxuICAgICAgKTtcblxuICAgICAgcHJvamVjdC5hZGREZXZEZXBzKFwiamVzdC1qdW5pdEBeMTVcIik7XG5cbiAgICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoXG4gICAgICAgIFwiIyBqZXN0LWp1bml0IGFydGlmYWN0c1wiLFxuICAgICAgICBgLyR7cmVwb3J0c0Rpcn0vYCxcbiAgICAgICAgXCJqdW5pdC54bWxcIlxuICAgICAgKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlPy5leGNsdWRlKFxuICAgICAgICBcIiMgamVzdC1qdW5pdCBhcnRpZmFjdHNcIixcbiAgICAgICAgYC8ke3JlcG9ydHNEaXJ9L2AsXG4gICAgICAgIFwianVuaXQueG1sXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuamVzdENvbmZpZz8ucmVwb3J0ZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IHJlcG9ydGVyIG9mIHRoaXMuamVzdENvbmZpZy5yZXBvcnRlcnMpIHtcbiAgICAgICAgdGhpcy5hZGRSZXBvcnRlcihyZXBvcnRlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuamVzdENvbmZpZz8uY292ZXJhZ2VUaHJlc2hvbGQpIHtcbiAgICAgIHRoaXMuY29uZmlnLmNvdmVyYWdlVGhyZXNob2xkID0ge1xuICAgICAgICBnbG9iYWw6IHRoaXMuamVzdENvbmZpZz8uY292ZXJhZ2VUaHJlc2hvbGQsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlndXJlVGVzdENvbW1hbmQob3B0aW9ucy51cGRhdGVTbmFwc2hvdCA/PyBVcGRhdGVTbmFwc2hvdC5BTFdBWVMpO1xuXG4gICAgaWYgKG9wdGlvbnMuY29uZmlnRmlsZVBhdGgpIHtcbiAgICAgIHRoaXMuZmlsZSA9IG5ldyBKc29uRmlsZShwcm9qZWN0LCBvcHRpb25zLmNvbmZpZ0ZpbGVQYXRoLCB7XG4gICAgICAgIG9iajogdGhpcy5jb25maWcsXG4gICAgICB9KTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlPy5hZGRQYXR0ZXJucyhgLyR7dGhpcy5maWxlLnBhdGh9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb2plY3QuYWRkRmllbGRzKHsgamVzdDogdGhpcy5jb25maWcgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgY292ZXJhZ2VEaXJlY3RvcnlQYXRoID0gcGF0aC5wb3NpeC5qb2luKFwiL1wiLCBjb3ZlcmFnZURpcmVjdG9yeSwgXCIvXCIpO1xuICAgIHByb2plY3QubnBtaWdub3JlPy5leGNsdWRlKGNvdmVyYWdlRGlyZWN0b3J5UGF0aCk7XG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShjb3ZlcmFnZURpcmVjdG9yeVBhdGgpO1xuXG4gICAgaWYgKG9wdGlvbnMuY292ZXJhZ2VUZXh0ID8/IHRydWUpIHtcbiAgICAgIHRoaXMuY292ZXJhZ2VSZXBvcnRlcnMucHVzaChcInRleHRcIik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB0ZXN0IG1hdGNoIHBhdHRlcm4uXG4gICAqIEBwYXJhbSBwYXR0ZXJuIGdsb2IgcGF0dGVybiB0byBtYXRjaCBmb3IgdGVzdHNcbiAgICovXG4gIHB1YmxpYyBhZGRUZXN0TWF0Y2gocGF0dGVybjogc3RyaW5nKSB7XG4gICAgdGhpcy50ZXN0TWF0Y2gucHVzaChwYXR0ZXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgd2F0Y2ggaWdub3JlIHBhdHRlcm4uXG4gICAqIEBwYXJhbSBwYXR0ZXJuIFRoZSBwYXR0ZXJuIChyZWd1bGFyIGV4cHJlc3Npb24pLlxuICAgKi9cbiAgcHVibGljIGFkZFdhdGNoSWdub3JlUGF0dGVybihwYXR0ZXJuOiBzdHJpbmcpIHtcbiAgICB0aGlzLndhdGNoSWdub3JlUGF0dGVybnMucHVzaChwYXR0ZXJuKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRJZ25vcmVQYXR0ZXJuKHBhdHRlcm46IHN0cmluZykge1xuICAgIHRoaXMuaWdub3JlUGF0dGVybnMucHVzaChwYXR0ZXJuKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRSZXBvcnRlcihyZXBvcnRlcjogSmVzdFJlcG9ydGVyKSB7XG4gICAgdGhpcy5yZXBvcnRlcnMucHVzaChyZXBvcnRlcik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGEgc2V0dXAgZmlsZSB0byBKZXN0J3Mgc2V0dXBGaWxlcyBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gZmlsZSBGaWxlIHBhdGggdG8gc2V0dXAgZmlsZVxuICAgKi9cbiAgcHVibGljIGFkZFNldHVwRmlsZShmaWxlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnNldHVwRmlsZXMpIHtcbiAgICAgIHRoaXMuY29uZmlnLnNldHVwRmlsZXMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5jb25maWcuc2V0dXBGaWxlcy5wdXNoKGZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBhIHNldHVwIGZpbGUgdG8gSmVzdCdzIHNldHVwRmlsZXNBZnRlckVudiBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gZmlsZSBGaWxlIHBhdGggdG8gc2V0dXAgZmlsZVxuICAgKi9cbiAgcHVibGljIGFkZFNldHVwRmlsZUFmdGVyRW52KGZpbGU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5jb25maWcuc2V0dXBGaWxlc0FmdGVyRW52KSB7XG4gICAgICB0aGlzLmNvbmZpZy5zZXR1cEZpbGVzQWZ0ZXJFbnYgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5jb25maWcuc2V0dXBGaWxlc0FmdGVyRW52LnB1c2goZmlsZSk7XG4gIH1cblxuICBwdWJsaWMgYWRkU25hcHNob3RSZXNvbHZlcihmaWxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zbmFwc2hvdFJlc29sdmVyID0gZmlsZTtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlVGVzdENvbW1hbmQodXBkYXRlU25hcHNob3Q6IFVwZGF0ZVNuYXBzaG90KSB7XG4gICAgY29uc3QgamVzdE9wdHMgPSBbXCItLXBhc3NXaXRoTm9UZXN0c1wiLCAuLi50aGlzLmV4dHJhQ2xpT3B0aW9uc107XG4gICAgY29uc3QgamVzdENvbmZpZ09wdHMgPVxuICAgICAgdGhpcy5maWxlICYmIHRoaXMuZmlsZS5wYXRoICE9IFwiamVzdC5jb25maWcuanNvblwiXG4gICAgICAgID8gYCAtYyAke3RoaXMuZmlsZS5wYXRofWBcbiAgICAgICAgOiBcIlwiO1xuXG4gICAgLy8gYXMgcmVjb21tZW5kZWQgaW4gdGhlIGplc3QgZG9jcywgbm9kZSA+IDE0IG1heSB1c2UgbmF0aXZlIHY4IGNvdmVyYWdlIGNvbGxlY3Rpb25cbiAgICAvLyBodHRwczovL2plc3Rqcy5pby9kb2NzL2VuL2NsaSMtLWNvdmVyYWdlcHJvdmlkZXJwcm92aWRlclxuICAgIGlmIChcbiAgICAgIHRoaXMucHJvamVjdCBpbnN0YW5jZW9mIE5vZGVQcm9qZWN0ICYmXG4gICAgICB0aGlzLnByb2plY3QucGFja2FnZS5taW5Ob2RlVmVyc2lvbiAmJlxuICAgICAgc2VtdmVyLmd0ZSh0aGlzLnByb2plY3QucGFja2FnZS5taW5Ob2RlVmVyc2lvbiwgXCIxNC4wLjBcIilcbiAgICApIHtcbiAgICAgIGplc3RPcHRzLnB1c2goXCItLWNvdmVyYWdlUHJvdmlkZXI9djhcIik7XG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZVNuYXBzaG90ID09PSBVcGRhdGVTbmFwc2hvdC5BTFdBWVMpIHtcbiAgICAgIGplc3RPcHRzLnB1c2goXCItLXVwZGF0ZVNuYXBzaG90XCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBqZXN0T3B0cy5wdXNoKFwiLS1jaVwiKTsgLy8gdG8gcHJldmVudCBhY2NlcHRpbmcgbmV3IHNuYXBzaG90c1xuXG4gICAgICBjb25zdCB0ZXN0VXBkYXRlID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoXCJ0ZXN0OnVwZGF0ZVwiKTtcbiAgICAgIGlmICghdGVzdFVwZGF0ZSkge1xuICAgICAgICB0aGlzLnByb2plY3QuYWRkVGFzayhcInRlc3Q6dXBkYXRlXCIsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogXCJVcGRhdGUgamVzdCBzbmFwc2hvdHNcIixcbiAgICAgICAgICBleGVjOiBgamVzdCAtLXVwZGF0ZVNuYXBzaG90ICR7amVzdE9wdHMuam9pbihcIiBcIil9JHtqZXN0Q29uZmlnT3B0c31gLFxuICAgICAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnByb2plY3QudGVzdFRhc2suZXhlYyhgamVzdCAke2plc3RPcHRzLmpvaW4oXCIgXCIpfSR7amVzdENvbmZpZ09wdHN9YCwge1xuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZXN0V2F0Y2ggPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChcInRlc3Q6d2F0Y2hcIik7XG4gICAgaWYgKCF0ZXN0V2F0Y2gpIHtcbiAgICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKFwidGVzdDp3YXRjaFwiLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlJ1biBqZXN0IGluIHdhdGNoIG1vZGVcIixcbiAgICAgICAgZXhlYzogYGplc3QgLS13YXRjaCR7amVzdENvbmZpZ09wdHN9YCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -820,7 +820,7 @@ class NodePackage extends component_1.Component {
820
820
  }
821
821
  }
822
822
  _a = JSII_RTTI_SYMBOL_1;
823
- NodePackage[_a] = { fqn: "projen.javascript.NodePackage", version: "0.71.21" };
823
+ NodePackage[_a] = { fqn: "projen.javascript.NodePackage", version: "0.71.22" };
824
824
  exports.NodePackage = NodePackage;
825
825
  /**
826
826
  * The node package manager to use.