projen 0.71.62 → 0.71.63

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 (131) hide show
  1. package/.jsii +233 -163
  2. package/docs/api/API.md +17 -1
  3. package/lib/awscdk/auto-discover.js +5 -5
  4. package/lib/awscdk/awscdk-app-java.js +1 -1
  5. package/lib/awscdk/awscdk-app-py.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +1 -1
  7. package/lib/awscdk/awscdk-construct.js +2 -2
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps-py.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +1 -1
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/build/build-workflow.js +1 -1
  18. package/lib/cdk/auto-discover-base.js +2 -2
  19. package/lib/cdk/construct-lib.js +1 -1
  20. package/lib/cdk/integration-test-base.js +1 -1
  21. package/lib/cdk/jsii-docgen.js +1 -1
  22. package/lib/cdk/jsii-project.js +1 -1
  23. package/lib/cdk8s/auto-discover.js +2 -2
  24. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  25. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  26. package/lib/cdk8s/cdk8s-construct.js +1 -1
  27. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  28. package/lib/cdk8s/cdk8s-deps.js +1 -1
  29. package/lib/cdk8s/integration-test.js +1 -1
  30. package/lib/cdktf/cdktf-construct.js +1 -1
  31. package/lib/circleci/circleci.js +1 -1
  32. package/lib/component.js +1 -1
  33. package/lib/dependencies.js +1 -1
  34. package/lib/dev-env.js +1 -1
  35. package/lib/docker-compose/docker-compose-service.js +1 -1
  36. package/lib/docker-compose/docker-compose.js +1 -1
  37. package/lib/file.js +1 -1
  38. package/lib/gitattributes.js +1 -1
  39. package/lib/github/actions-provider.js +1 -1
  40. package/lib/github/auto-approve.js +1 -1
  41. package/lib/github/auto-merge.js +1 -1
  42. package/lib/github/dependabot.js +1 -1
  43. package/lib/github/github-credentials.js +1 -1
  44. package/lib/github/github-project.js +1 -1
  45. package/lib/github/github.js +1 -1
  46. package/lib/github/mergify.js +1 -1
  47. package/lib/github/pr-template.js +1 -1
  48. package/lib/github/pull-request-lint.js +1 -1
  49. package/lib/github/stale.js +1 -1
  50. package/lib/github/task-workflow.js +1 -1
  51. package/lib/github/workflow-actions.js +1 -1
  52. package/lib/github/workflow-jobs.js +1 -1
  53. package/lib/github/workflows.js +1 -1
  54. package/lib/gitlab/configuration-model.d.ts +13 -1
  55. package/lib/gitlab/configuration-model.js +1 -1
  56. package/lib/gitlab/configuration.js +1 -1
  57. package/lib/gitlab/gitlab-configuration.js +1 -1
  58. package/lib/gitlab/nested-configuration.js +1 -1
  59. package/lib/gitpod.js +1 -1
  60. package/lib/ignore-file.js +1 -1
  61. package/lib/ini.js +1 -1
  62. package/lib/java/java-project.js +1 -1
  63. package/lib/java/junit.js +1 -1
  64. package/lib/java/maven-compile.js +1 -1
  65. package/lib/java/maven-packaging.js +1 -1
  66. package/lib/java/maven-sample.js +1 -1
  67. package/lib/java/pom.js +1 -1
  68. package/lib/java/projenrc.js +1 -1
  69. package/lib/javascript/bundler.js +1 -1
  70. package/lib/javascript/eslint.js +1 -1
  71. package/lib/javascript/jest.js +4 -4
  72. package/lib/javascript/node-package.js +1 -1
  73. package/lib/javascript/node-project.js +1 -1
  74. package/lib/javascript/npm-config.js +1 -1
  75. package/lib/javascript/prettier.js +1 -1
  76. package/lib/javascript/projenrc.js +1 -1
  77. package/lib/javascript/typescript-config.js +2 -2
  78. package/lib/javascript/upgrade-dependencies.js +2 -2
  79. package/lib/json-patch.js +1 -1
  80. package/lib/json.js +1 -1
  81. package/lib/license.js +1 -1
  82. package/lib/logger.js +1 -1
  83. package/lib/makefile.js +1 -1
  84. package/lib/object-file.js +1 -1
  85. package/lib/project-build.js +1 -1
  86. package/lib/project.js +1 -1
  87. package/lib/projects.js +1 -1
  88. package/lib/projenrc-json.js +2 -2
  89. package/lib/projenrc.js +1 -1
  90. package/lib/python/pip.js +1 -1
  91. package/lib/python/poetry.js +2 -2
  92. package/lib/python/projenrc.js +1 -1
  93. package/lib/python/pytest-sample.js +1 -1
  94. package/lib/python/pytest.js +1 -1
  95. package/lib/python/python-project.js +1 -1
  96. package/lib/python/python-sample.js +1 -1
  97. package/lib/python/requirements-file.js +1 -1
  98. package/lib/python/setuppy.js +1 -1
  99. package/lib/python/setuptools.js +1 -1
  100. package/lib/python/venv.js +1 -1
  101. package/lib/readme.js +1 -1
  102. package/lib/release/publisher.js +1 -1
  103. package/lib/release/release-trigger.js +1 -1
  104. package/lib/release/release.js +1 -1
  105. package/lib/renovatebot.js +1 -1
  106. package/lib/sample-file.js +2 -2
  107. package/lib/semver.js +1 -1
  108. package/lib/source-code.js +1 -1
  109. package/lib/task-runtime.js +1 -1
  110. package/lib/task.js +1 -1
  111. package/lib/tasks.js +1 -1
  112. package/lib/testing.js +1 -1
  113. package/lib/textfile.js +1 -1
  114. package/lib/toml.js +1 -1
  115. package/lib/typescript/projenrc-ts.js +1 -1
  116. package/lib/typescript/projenrc.js +1 -1
  117. package/lib/typescript/typescript-typedoc.js +1 -1
  118. package/lib/typescript/typescript.js +3 -3
  119. package/lib/version.js +1 -1
  120. package/lib/vscode/devcontainer.js +1 -1
  121. package/lib/vscode/extensions.js +1 -1
  122. package/lib/vscode/launch-config.js +1 -1
  123. package/lib/vscode/settings.js +1 -1
  124. package/lib/vscode/vscode.js +1 -1
  125. package/lib/web/next.js +3 -3
  126. package/lib/web/postcss.js +1 -1
  127. package/lib/web/react.js +4 -4
  128. package/lib/web/tailwind.js +1 -1
  129. package/lib/xmlfile.js +1 -1
  130. package/lib/yaml.js +1 -1
  131. package/package.json +1 -1
@@ -87,18 +87,30 @@ export interface Artifacts {
87
87
  /** Configure when artifacts are uploaded depended on job status.*/
88
88
  readonly when?: CacheWhen;
89
89
  }
90
+ /**
91
+ * Code coverage report interface
92
+ * @link https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscoverage_report
93
+ */
94
+ export interface CoverageReport {
95
+ readonly coverageFormat: string;
96
+ readonly path: string;
97
+ }
90
98
  /**
91
99
  * Reports will be uploaded as artifacts, and often displayed in the Gitlab UI, such as in
92
100
  * Merge Requests.
93
101
  * @see https://docs.gitlab.com/ee/ci/yaml/#artifactsreports
94
102
  */
95
103
  export interface Reports {
96
- /** Path for file(s) that should be parsed as Cobertura XML coverage report*/
104
+ /** Path for file(s) that should be parsed as Cobertura XML coverage report
105
+ * @deprecated per {@link https://docs.gitlab.com/ee/update/deprecations.html#artifactsreportscobertura-keyword} use {@link coverageReport} instead
106
+ */
97
107
  readonly cobertura?: string[];
98
108
  /** Path to file or list of files with code quality report(s) (such as Code Climate).*/
99
109
  readonly codequality?: string[];
100
110
  /** Path to file or list of files with Container scanning vulnerabilities report(s).*/
101
111
  readonly containerScanning?: string[];
112
+ /** Code coverage report information */
113
+ readonly coverageReport?: CoverageReport;
102
114
  /** Path to file or list of files with DAST vulnerabilities report(s).*/
103
115
  readonly dast?: string[];
104
116
  /** Path to file or list of files with Dependency scanning vulnerabilities report(s).*/
@@ -115,4 +115,4 @@ var WorkflowWhen;
115
115
  WorkflowWhen["ALWAYS"] = "always";
116
116
  WorkflowWhen["NEVER"] = "never";
117
117
  })(WorkflowWhen = exports.WorkflowWhen || (exports.WorkflowWhen = {}));
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRsYWIvY29uZmlndXJhdGlvbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkNBQTJDO0FBQzNDLDhHQUE4RztBQUM5RyxpRUFBaUU7OztBQWtDakU7OztHQUdHO0FBQ0gsSUFBWSxXQU9YO0FBUEQsV0FBWSxXQUFXO0lBQ3JCLG1HQUFtRztJQUNuRyw0QkFBYSxDQUFBO0lBQ2IsbUdBQW1HO0lBQ25HLDRCQUFhLENBQUE7SUFDYiwyR0FBMkc7SUFDM0csc0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVBXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBT3RCO0FBRUQ7OztHQUdHO0FBQ0gsSUFBWSxTQU9YO0FBUEQsV0FBWSxTQUFTO0lBQ25CLGlEQUFpRDtJQUNqRCw4QkFBaUIsQ0FBQTtJQUNqQixnREFBZ0Q7SUFDaEQsc0NBQXlCLENBQUE7SUFDekIseUVBQXlFO0lBQ3pFLHNDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFQVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU9wQjtBQXdMRDs7O0dBR0c7QUFDSCxJQUFZLE9BT1g7QUFQRCxXQUFZLE9BQU87SUFDakIsNEJBQWlCLENBQUE7SUFDakIsOEJBQW1CLENBQUE7SUFDbkIsNEJBQWlCLENBQUE7SUFDakIsMEJBQWUsQ0FBQTtJQUNmLG9DQUF5QixDQUFBO0lBQ3pCLG9DQUF5QixDQUFBO0FBQzNCLENBQUMsRUFQVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFPbEI7QUF5RkQ7Ozs7R0FJRztBQUNILElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNoQiw2QkFBbUIsQ0FBQTtJQUNuQix5QkFBZSxDQUFBO0lBQ2YsdUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxNQUFNLEdBQU4sY0FBTSxLQUFOLGNBQU0sUUFJakI7QUFFRDs7O0dBR0c7QUFDSCxJQUFZLGNBTVg7QUFORCxXQUFZLGNBQWM7SUFDeEIsNkNBQTJCLENBQUE7SUFDM0IsaUNBQWUsQ0FBQTtJQUNmLDJDQUF5QixDQUFBO0lBQ3pCLHFDQUFtQixDQUFBO0lBQ25CLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQU16QjtBQXlCRDs7R0FFRztBQUNILElBQVksY0FFWDtBQUZELFdBQVksY0FBYztJQUN4QixtQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBRlcsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFFekI7QUFlRCxJQUFZLGNBV1g7QUFYRCxXQUFZLGNBQWM7SUFDeEIsK0NBQTZCLENBQUE7SUFDN0IseUNBQXVCLENBQUE7SUFDdkIsaURBQStCLENBQUE7SUFDL0IsaUNBQWUsQ0FBQTtJQUNmLGlDQUFlLENBQUE7SUFDZixpREFBK0IsQ0FBQTtJQUMvQixpQ0FBZSxDQUFBO0lBQ2YsdUNBQXFCLENBQUE7SUFDckIsK0JBQWEsQ0FBQTtJQUNiLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFYVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQVd6QjtBQStERDs7R0FFRztBQUNILElBQVksUUFLWDtBQUxELFdBQVksUUFBUTtJQUNsQiwyQkFBZSxDQUFBO0lBQ2YsMkJBQWUsQ0FBQTtJQUNmLCtCQUFtQixDQUFBO0lBQ25CLCtCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUtuQjtBQXVFRDs7OztHQUlHO0FBQ0gsSUFBWSxRQUVYO0FBRkQsV0FBWSxRQUFRO0lBQ2xCLDZCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFGVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUVuQjtBQXVDRDs7OztHQUlHO0FBQ0gsSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLGlDQUFpQixDQUFBO0lBQ2pCLCtCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBR3ZCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sL1xuLy8gU2NoZW1hIGZyb206IGh0dHBzOi8vZ2l0bGFiLmNvbS9naXRsYWItb3JnL2dpdGxhYi8tL3Jhdy9tYXN0ZXIvYXBwL2Fzc2V0cy9qYXZhc2NyaXB0cy9lZGl0b3Ivc2NoZW1hL2NpLmpzb25cbi8vIEluaXRpYWwgVHlwZVNjcmlwdCBJbnRlcmZhY2VzIGZyb206IGh0dHBzOi8vYXBwLnF1aWNrdHlwZS5pby8jXG5cbi8qKlxuICogQ2FjaGUgRGVmaW5pdGlvbi5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jY2FjaGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWNoZSB7XG4gIC8qKiBEZWZpbmVzIHdoaWNoIGZpbGVzIG9yIGRpcmVjdG9yaWVzIHRvIGNhY2hlLiAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdO1xuXG4gIC8qKiBVc2VkIHRoZSB0byBnaXZlIGVhY2ggY2FjaGUgYSB1bmlxdWUgaWRlbnRpZnlpbmcga2V5LiBBbGwgam9icyB0aGF0IHVzZSB0aGUgc2FtZSBjYWNoZSBrZXkgdXNlIHRoZSBzYW1lIGNhY2hlLiAqL1xuICByZWFkb25seSBrZXk/OiBzdHJpbmcgfCBDYWNoZUtleUZpbGVzO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSBhbGwgZmlsZXMgdGhhdCBhcmUgdW50cmFja2VkIGluIHlvdXIgR2l0IHJlcG9zaXRvcnkgd2lsbCBiZSBjYWNoZWQuICovXG4gIHJlYWRvbmx5IHVudHJhY2tlZD86IGJvb2xlYW47XG5cbiAgLyoqIERlZmluZXMgdGhlIHVwbG9hZCBhbmQgZG93bmxvYWQgYmVoYXZpb3VyIG9mIHRoZSBjYWNoZS4gKi9cbiAgcmVhZG9ubHkgcG9saWN5PzogQ2FjaGVQb2xpY3k7XG5cbiAgLyoqIERlZmluZXMgd2hlbiB0byBzYXZlIHRoZSBjYWNoZSwgYmFzZWQgb24gdGhlIHN0YXR1cyBvZiB0aGUgam9iIChEZWZhdWx0OiBKb2IgU3VjY2VzcykuICovXG4gIHJlYWRvbmx5IHdoZW4/OiBDYWNoZVdoZW47XG59XG5cbi8qKlxuICogVXNlIHRoaXMgY29uc3RydWN0IHRvIGdlbmVyYXRlIGEgbmV3IGtleSB3aGVuIG9uZSBvciB0d28gc3BlY2lmaWMgZmlsZXMgY2hhbmdlLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNjYWNoZWtleWZpbGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGVLZXlGaWxlcyB7XG4gIC8qKiBUaGUgZmlsZXMgdGhhdCBhcmUgY2hlY2tlZCBhZ2FpbnN0LiBJZiB0aGUgU0hBIGNoZWNrc3VtIGNoYW5nZXMsIHRoZSBjYWNoZSBiZWNvbWVzIGludmFsaWQuICovXG4gIHJlYWRvbmx5IGZpbGVzOiBzdHJpbmdbXTtcbiAgLyoqIEFkZHMgYSBjdXN0b20gcHJlZml4IHRvIHRoZSBjaGVja3N1bXMgY29tcHV0ZWQuICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmUgdGhlIHVwbG9hZCBhbmQgZG93bmxvYWQgYmVoYXZpb3VyIG9mIGEgY2FjaGUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2NhY2hlcG9saWN5XG4gKi9cbmV4cG9ydCBlbnVtIENhY2hlUG9saWN5IHtcbiAgLyoqIE9ubHkgZG93bmxvYWQgdGhlIGNhY2hlIHdoZW4gdGhlIGpvYiBzdGFydHMsIGJ1dCBuZXZlciB1cGxvYWQgY2hhbmdlcyB3aGVuIHRoZSBqb2IgZmluaXNoZXMuICovXG4gIFBVTEwgPSBcInB1bGxcIixcbiAgLyoqIE9ubHkgdXBsb2FkIGEgY2FjaGUgd2hlbiB0aGUgam9iIGZpbmlzaGVzLCBidXQgbmV2ZXIgZG93bmxvYWQgdGhlIGNhY2hlIHdoZW4gdGhlIGpvYiBzdGFydHMuICovXG4gIFBVU0ggPSBcInB1c2hcIixcbiAgLyoqIFRoZSBqb2IgZG93bmxvYWRzIHRoZSBjYWNoZSB3aGVuIHRoZSBqb2Igc3RhcnRzLCBhbmQgdXBsb2FkcyBjaGFuZ2VzIHRvIHRoZSBjYWNoZSB3aGVuIHRoZSBqb2IgZW5kcy4gKi9cbiAgUFVMTF9QVVNIID0gXCJwdWxsLXB1c2hcIixcbn1cblxuLyoqXG4gKiBDb25maWd1cmUgd2hlbiBhcnRpZmFjdHMgYXJlIHVwbG9hZGVkIGRlcGVuZGVkIG9uIGpvYiBzdGF0dXMuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2NhY2hld2hlblxuICovXG5leHBvcnQgZW51bSBDYWNoZVdoZW4ge1xuICAvKiogVXBsb2FkIGFydGlmYWN0cyByZWdhcmRsZXNzIG9mIGpvYiBzdGF0dXMuICovXG4gIEFMV0FZUyA9IFwiYWx3YXlzXCIsXG4gIC8qKiBVcGxvYWQgYXJ0aWZhY3RzIG9ubHkgd2hlbiB0aGUgam9iIGZhaWxzLiAqL1xuICBPTl9GQUlMVVJFID0gXCJvbl9mYWlsdXJlXCIsXG4gIC8qKiBVcGxvYWQgYXJ0aWZhY3RzIG9ubHkgd2hlbiB0aGUgam9iIHN1Y2NlZWRzICh0aGlzIGlzIHRoZSBkZWZhdWx0KS4gKi9cbiAgT05fU1VDQ0VTUyA9IFwib25fc3VjY2Vzc1wiLFxufVxuXG4vKipcbiAqIERlZmF1bHQgc2V0dGluZ3MgZm9yIHRoZSBDSSBDb25maWd1cmF0aW9uLiBKb2JzIHRoYXQgZG8gbm90IGRlZmluZSBvbmUgb3IgbW9yZSBvZiB0aGUgbGlzdGVkIGtleXdvcmRzIHVzZSB0aGUgdmFsdWUgZGVmaW5lZCBpbiB0aGUgZGVmYXVsdCBzZWN0aW9uLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNkZWZhdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdCB7XG4gIC8qIERlZmluZXMgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmFmdGVyKiBhbGwgam9icy4gQ2FuIGJlIG92ZXJyaWRlbiBieSB0aGUgam9iIGxldmVsIGBhZnRlclNjcmlwdC4gKi9cbiAgcmVhZG9ubHkgYWZ0ZXJTY3JpcHQ/OiBzdHJpbmdbXTtcbiAgLyogTGlzdCBvZiBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhhdCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIGpvYiBpZiBpdCBzdWNjZWVkcy4gQXJ0aWZhY3RzIGFyZSBzZW50IHRvIEdpdGxhYiB3aGVyZSB0aGV5IGNhbiBiZSBkb3dubG9hZGVkLiAqL1xuICByZWFkb25seSBhcnRpZmFjdHM/OiBBcnRpZmFjdHM7XG4gIC8qIERlZmluZXMgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmJlZm9yZSogYWxsIGpvYnMuIENhbiBiZSBvdmVycmlkZW4gYnkgdGhlIGpvYiBsZXZlbCBgYWZ0ZXJTY3JpcHRgLiAqL1xuICByZWFkb25seSBiZWZvcmVTY3JpcHQ/OiBzdHJpbmdbXTtcbiAgLyogQSBsaXN0IG9mIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0byBjYWNoZSBiZXR3ZWVuIGpvYnMuIFlvdSBjYW4gb25seSB1c2UgcGF0aHMgdGhhdCBhcmUgaW4gdGhlIGxvY2FsIHdvcmtpbmcgY29weS4gKi9cbiAgcmVhZG9ubHkgY2FjaGU/OiBDYWNoZTtcbiAgLyogU3BlY2lmaWVzIHRoZSBkZWZhdWx0IGRvY2tlciBpbWFnZSB0byB1c2UgZ2xvYmFsbHkgZm9yIGFsbCBqb2JzLiAqL1xuICByZWFkb25seSBpbWFnZT86IEltYWdlO1xuICAvKiBJZiBhIGpvYiBzaG91bGQgYmUgY2FuY2VsZWQgd2hlbiBhIG5ld2VyIHBpcGVsaW5lIHN0YXJ0cyBiZWZvcmUgdGhlIGpvYiBjb21wbGV0ZXMgKERlZmF1bHQ6IGZhbHNlKS4qL1xuICByZWFkb25seSBpbnRlcnJ1cHRpYmxlPzogYm9vbGVhbjtcbiAgLyogSG93IG1hbnkgdGltZXMgYSBqb2IgaXMgcmV0cmllZCBpZiBpdCBmYWlscy4gSWYgbm90IGRlZmluZWQsIGRlZmF1bHRzIHRvIDAgYW5kIGpvYnMgZG8gbm90IHJldHJ5LiAqL1xuICByZWFkb25seSByZXRyeT86IFJldHJ5O1xuICAvKiBBZGRpdGlvbmFsIERvY2tlciBpbWFnZXMgdG8gcnVuIHNjcmlwdHMgaW4uIFRoZSBzZXJ2aWNlIGltYWdlIGlzIGxpbmtlZCB0byB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGluIHRoZSAgaW1hZ2UgcGFyYW1ldGVyLiAqL1xuICByZWFkb25seSBzZXJ2aWNlcz86IFNlcnZpY2VbXTtcbiAgLyogVXNlZCB0byBzZWxlY3QgYSBzcGVjaWZpYyBydW5uZXIgZnJvbSB0aGUgbGlzdCBvZiBhbGwgcnVubmVycyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoZSBwcm9qZWN0LiAqL1xuICByZWFkb25seSB0YWdzPzogc3RyaW5nW107XG4gIC8qIEEgZGVmYXVsdCB0aW1lb3V0IGpvYiB3cml0dGVuIGluIG5hdHVyYWwgbGFuZ3VhZ2UgKEV4LiBvbmUgaG91ciwgMzYwMCBzZWNvbmRzLCA2MCBtaW51dGVzKS4gKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBVc2VkIHRvIHNwZWNpZnkgYSBsaXN0IG9mIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0aGF0IHNob3VsZCBiZSBhdHRhY2hlZCB0byB0aGUgam9iIGlmIGl0XG4gKiBzdWNjZWVkcy4gQXJ0aWZhY3RzIGFyZSBzZW50IHRvIEdpdGxhYiB3aGVyZSB0aGV5IGNhbiBiZSBkb3dubG9hZGVkLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNhcnRpZmFjdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpZmFjdHMge1xuICAvKiogQSBsaXN0IG9mIHBhdGhzIHRvIGZpbGVzL2ZvbGRlcnMgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgaW4gdGhlIGFydGlmYWN0LiAqL1xuICByZWFkb25seSBleGNsdWRlPzogc3RyaW5nW107XG4gIC8qKiBIb3cgbG9uZyBhcnRpZmFjdHMgc2hvdWxkIGJlIGtlcHQuIFRoZXkgYXJlIHNhdmVkIDMwIGRheXMgYnkgZGVmYXVsdC4gQXJ0aWZhY3RzIHRoYXQgaGF2ZSBleHBpcmVkIGFyZSByZW1vdmVkIHBlcmlvZGljYWxseSB2aWEgY3JvbiBqb2IuIFN1cHBvcnRzIGEgd2lkZSB2YXJpZXR5IG9mIGZvcm1hdHMsIGUuZy4gJzEgd2VlaycsICczIG1pbnMgNCBzZWMnLCAnMiBocnMgMjAgbWluJywgJzJoMjBtaW4nLCAnNiBtb3MgMSBkYXknLCAnNDcgeXJzIDYgbW9zIGFuZCA0ZCcsICczIHdlZWtzIGFuZCAyIGRheXMnLiAqL1xuICByZWFkb25seSBleHBpcmVJbj86IHN0cmluZztcbiAgLyoqIENhbiBiZSB1c2VkIHRvIGV4cG9zZSBqb2IgYXJ0aWZhY3RzIGluIHRoZSBtZXJnZSByZXF1ZXN0IFVJLiBHaXRMYWIgd2lsbCBhZGQgYSBsaW5rIDxleHBvc2VfYXM+IHRvIHRoZSByZWxldmFudCBtZXJnZSByZXF1ZXN0IHRoYXQgcG9pbnRzIHRvIHRoZSBhcnRpZmFjdC4gKi9cbiAgcmVhZG9ubHkgZXhwb3NlQXM/OiBzdHJpbmc7XG4gIC8qKiBOYW1lIGZvciB0aGUgYXJjaGl2ZSBjcmVhdGVkIG9uIGpvYiBzdWNjZXNzLiBDYW4gdXNlIHZhcmlhYmxlcyBpbiB0aGUgbmFtZSwgZS5nLiAnJENJX0pPQl9OQU1FJyAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICAvKiogQSBsaXN0IG9mIHBhdGhzIHRvIGZpbGVzL2ZvbGRlcnMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIGFydGlmYWN0LiAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdO1xuICAvKiogUmVwb3J0cyB3aWxsIGJlIHVwbG9hZGVkIGFzIGFydGlmYWN0cywgYW5kIG9mdGVuIGRpc3BsYXllZCBpbiB0aGUgR2l0bGFiIFVJLCBzdWNoIGFzIGluIE1lcmdlIFJlcXVlc3RzLiovXG4gIHJlYWRvbmx5IHJlcG9ydHM/OiBSZXBvcnRzO1xuICAvKiogV2hldGhlciB0byBhZGQgYWxsIHVudHJhY2tlZCBmaWxlcyAoYWxvbmcgd2l0aCAnYXJ0aWZhY3RzLnBhdGhzJykgdG8gdGhlIGFydGlmYWN0LiovXG4gIHJlYWRvbmx5IHVudHJhY2tlZD86IGJvb2xlYW47XG4gIC8qKiBDb25maWd1cmUgd2hlbiBhcnRpZmFjdHMgYXJlIHVwbG9hZGVkIGRlcGVuZGVkIG9uIGpvYiBzdGF0dXMuKi9cbiAgcmVhZG9ubHkgd2hlbj86IENhY2hlV2hlbjtcbn1cblxuLyoqXG4gKiBSZXBvcnRzIHdpbGwgYmUgdXBsb2FkZWQgYXMgYXJ0aWZhY3RzLCBhbmQgb2Z0ZW4gZGlzcGxheWVkIGluIHRoZSBHaXRsYWIgVUksIHN1Y2ggYXMgaW5cbiAqIE1lcmdlIFJlcXVlc3RzLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNhcnRpZmFjdHNyZXBvcnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0cyB7XG4gIC8qKiBQYXRoIGZvciBmaWxlKHMpIHRoYXQgc2hvdWxkIGJlIHBhcnNlZCBhcyBDb2JlcnR1cmEgWE1MIGNvdmVyYWdlIHJlcG9ydCovXG4gIHJlYWRvbmx5IGNvYmVydHVyYT86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBjb2RlIHF1YWxpdHkgcmVwb3J0KHMpIChzdWNoIGFzIENvZGUgQ2xpbWF0ZSkuKi9cbiAgcmVhZG9ubHkgY29kZXF1YWxpdHk/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggQ29udGFpbmVyIHNjYW5uaW5nIHZ1bG5lcmFiaWxpdGllcyByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyU2Nhbm5pbmc/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggREFTVCB2dWxuZXJhYmlsaXRpZXMgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IGRhc3Q/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggRGVwZW5kZW5jeSBzY2FubmluZyB2dWxuZXJhYmlsaXRpZXMgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY3lTY2FubmluZz86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgY29udGFpbmluZyBydW50aW1lLWNyZWF0ZWQgdmFyaWFibGVzIGZvciB0aGlzIGpvYi4qL1xuICByZWFkb25seSBkb3RlbnY/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggZm9yIGZpbGUocykgdGhhdCBzaG91bGQgYmUgcGFyc2VkIGFzIEpVbml0IFhNTCByZXN1bHQqL1xuICByZWFkb25seSBqdW5pdD86IHN0cmluZ1tdO1xuICAvKiogRGVwcmVjYXRlZCBpbiAxMi44OiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIGxpY2Vuc2UgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IGxpY2Vuc2VNYW5hZ2VtZW50Pzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIGxpY2Vuc2UgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IGxpY2Vuc2VTY2FubmluZz86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgY29udGFpbmluZyBjb2RlIGludGVsbGlnZW5jZSAoTGFuZ3VhZ2UgU2VydmVyIEluZGV4IEZvcm1hdCkuKi9cbiAgcmVhZG9ubHkgbHNpZj86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBjdXN0b20gbWV0cmljcyByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgbWV0cmljcz86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBwZXJmb3JtYW5jZSBtZXRyaWNzIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBwZXJmb3JtYW5jZT86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCByZXF1aXJlbWVudHMgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IHJlcXVpcmVtZW50cz86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBTQVNUIHZ1bG5lcmFiaWxpdGllcyByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgc2FzdD86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBzZWNyZXQgZGV0ZWN0aW9uIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBzZWNyZXREZXRlY3Rpb24/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggdGVycmFmb3JtIHBsYW4ocykuKi9cbiAgcmVhZG9ubHkgdGVycmFmb3JtPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkb2NrZXIgaW1hZ2UgdG8gdXNlIGZvciB0aGUgam9iIG9yIGdsb2JhbGx5IGZvciBhbGwgam9icy4gSm9iIGNvbmZpZ3VyYXRpb25cbiAqIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBnbG9iYWwgc2V0dGluZy4gUmVxdWlyZXMgYSBjZXJ0YWluIGtpbmQgb2YgR2l0bGFiIHJ1bm5lciBleGVjdXRvci5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jaW1hZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZSB7XG4gIC8qKiBDb21tYW5kIG9yIHNjcmlwdCB0aGF0IHNob3VsZCBiZSBleGVjdXRlZCBhcyB0aGUgY29udGFpbmVyJ3MgZW50cnlwb2ludC4gSXQgd2lsbCBiZSB0cmFuc2xhdGVkIHRvIERvY2tlcidzIC0tZW50cnlwb2ludCBvcHRpb24gd2hpbGUgY3JlYXRpbmcgdGhlIGNvbnRhaW5lci4gVGhlIHN5bnRheCBpcyBzaW1pbGFyIHRvIERvY2tlcmZpbGUncyBFTlRSWVBPSU5UIGRpcmVjdGl2ZSwgd2hlcmUgZWFjaCBzaGVsbCB0b2tlbiBpcyBhIHNlcGFyYXRlIHN0cmluZyBpbiB0aGUgYXJyYXkuKi9cbiAgcmVhZG9ubHkgZW50cnlwb2ludD86IGFueVtdO1xuICAvKiogRnVsbCBuYW1lIG9mIHRoZSBpbWFnZSB0aGF0IHNob3VsZCBiZSB1c2VkLiBJdCBzaG91bGQgY29udGFpbiB0aGUgUmVnaXN0cnkgcGFydCBpZiBuZWVkZWQuKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEhvdyBtYW55IHRpbWVzIGEgam9iIGlzIHJldHJpZWQgaWYgaXQgZmFpbHMuIElmIG5vdCBkZWZpbmVkLCBkZWZhdWx0cyB0byAwIGFuZCBqb2JzIGRvIG5vdCByZXRyeS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jcmV0cnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeSB7XG4gIC8qKiAwIChkZWZhdWx0KSwgMSwgb3IgMi4qL1xuICByZWFkb25seSBtYXg/OiBudW1iZXI7XG4gIC8qKiBFaXRoZXIgYSBzaW5nbGUgb3IgYXJyYXkgb2YgZXJyb3IgdHlwZXMgdG8gdHJpZ2dlciBqb2IgcmV0cnkuKi9cbiAgcmVhZG9ubHkgd2hlbj86IGFueTtcbn1cblxuLyoqXG4gKiBVc2VkIHRvIHNwZWNpZnkgYW4gYWRkaXRpb25hbCBEb2NrZXIgaW1hZ2UgdG8gcnVuIHNjcmlwdHMgaW4uIFRoZSBzZXJ2aWNlIGltYWdlIGlzIGxpbmtlZCB0byB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGluIHRoZSBARGVmYXVsdCBpbWFnZSBrZXl3b3JkLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNzZXJ2aWNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2Uge1xuICAvKiogQWRkaXRpb25hbCBhbGlhcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgc2VydmljZSBmcm9tIHRoZSBqb2IncyBjb250YWluZXIuIFJlYWQgQWNjZXNzaW5nIHRoZSBzZXJ2aWNlcyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuICByZWFkb25seSBhbGlhcz86IHN0cmluZztcbiAgLyoqIENvbW1hbmQgb3Igc2NyaXB0IHRoYXQgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIGNvbnRhaW5lcidzIGNvbW1hbmQuIEl0IHdpbGwgYmUgdHJhbnNsYXRlZCB0byBhcmd1bWVudHMgcGFzc2VkIHRvIERvY2tlciBhZnRlciB0aGUgaW1hZ2UncyBuYW1lLiBUaGUgc3ludGF4IGlzIHNpbWlsYXIgdG8gRG9ja2VyZmlsZSdzIENNRCBkaXJlY3RpdmUsIHdoZXJlIGVhY2ggc2hlbGwgdG9rZW4gaXMgYSBzZXBhcmF0ZSBzdHJpbmcgaW4gdGhlIGFycmF5LiovXG4gIHJlYWRvbmx5IGNvbW1hbmQ/OiBzdHJpbmdbXTtcbiAgLyoqIENvbW1hbmQgb3Igc2NyaXB0IHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIGFzIHRoZSBjb250YWluZXIncyBlbnRyeXBvaW50LiBJdCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gRG9ja2VyJ3MgLS1lbnRyeXBvaW50IG9wdGlvbiB3aGlsZSBjcmVhdGluZyB0aGUgY29udGFpbmVyLiBUaGUgc3ludGF4IGlzIHNpbWlsYXIgdG8gRG9ja2VyZmlsZSdzIEVOVFJZUE9JTlQgZGlyZWN0aXZlLCB3aGVyZSBlYWNoIHNoZWxsIHRva2VuIGlzIGEgc2VwYXJhdGUgc3RyaW5nIGluIHRoZSBhcnJheS4qL1xuICByZWFkb25seSBlbnRyeXBvaW50Pzogc3RyaW5nW107XG4gIC8qKiBGdWxsIG5hbWUgb2YgdGhlIGltYWdlIHRoYXQgc2hvdWxkIGJlIHVzZWQuIEl0IHNob3VsZCBjb250YWluIHRoZSBSZWdpc3RyeSBwYXJ0IGlmIG5lZWRlZC4qL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gaW5jbHVkZWQgWUFNTCBmaWxlLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNpbmNsdWRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jbHVkZSB7XG4gIC8qKiBSZWxhdGl2ZSBwYXRoIGZyb20gbG9jYWwgcmVwb3NpdG9yeSByb290IChgL2ApIHRvIHRoZSBgeWFtbGAvYHltbGAgZmlsZSB0ZW1wbGF0ZS4gVGhlIGZpbGUgbXVzdCBiZSBvbiB0aGUgc2FtZSBicmFuY2gsIGFuZCBkb2VzIG5vdCB3b3JrIGFjcm9zcyBnaXQgc3VibW9kdWxlcy4qL1xuICByZWFkb25seSBsb2NhbD86IHN0cmluZztcbiAgLyoqUnVsZXMgYWxsb3dzIGZvciBhbiBhcnJheSBvZiBpbmRpdmlkdWFsIHJ1bGUgb2JqZWN0cyB0byBiZSBldmFsdWF0ZWQgaW4gb3JkZXIsIHVudGlsIG9uZSBtYXRjaGVzIGFuZCBkeW5hbWljYWxseSBwcm92aWRlcyBhdHRyaWJ1dGVzIHRvIHRoZSBqb2IuICovXG4gIHJlYWRvbmx5IHJ1bGVzPzogSW5jbHVkZVJ1bGVbXTtcbiAgLyoqIEZpbGVzIGZyb20gYW5vdGhlciBwcml2YXRlIHByb2plY3Qgb24gdGhlIHNhbWUgR2l0TGFiIGluc3RhbmNlLiBZb3UgY2FuIHVzZSBgZmlsZWAgaW4gY29tYmluYXRpb24gd2l0aCBgcHJvamVjdGAgb25seS4gKi9cbiAgcmVhZG9ubHkgZmlsZT86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byB0aGUgcHJvamVjdCwgZS5nLiBgZ3JvdXAvcHJvamVjdGAsIG9yIGBncm91cC9zdWItZ3JvdXAvcHJvamVjdGAuKi9cbiAgcmVhZG9ubHkgcHJvamVjdD86IHN0cmluZztcbiAgLyoqIEJyYW5jaC9UYWcvQ29tbWl0LWhhc2ggZm9yIHRoZSB0YXJnZXQgcHJvamVjdC4qL1xuICByZWFkb25seSByZWY/OiBzdHJpbmc7XG4gIC8qKiBVc2UgYSBgLmdpdGxhYi1jaS55bWxgIHRlbXBsYXRlIGFzIGEgYmFzZSwgZS5nLiBgTm9kZWpzLmdpdGxhYi1jaS55bWxgLiovXG4gIHJlYWRvbmx5IHRlbXBsYXRlPzogc3RyaW5nO1xuICAvKiogVVJMIHRvIGEgYHlhbWxgL2B5bWxgIHRlbXBsYXRlIGZpbGUgdXNpbmcgSFRUUC9IVFRQUy4qL1xuICByZWFkb25seSByZW1vdGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUnVsZXMgYWxsb3dzIGZvciBhbiBhcnJheSBvZiBpbmRpdmlkdWFsIHJ1bGUgb2JqZWN0cyB0byBiZSBldmFsdWF0ZWQgaW4gb3JkZXIsIHVudGlsIG9uZVxuICogbWF0Y2hlcyBhbmQgZHluYW1pY2FsbHkgcHJvdmlkZXMgYXR0cmlidXRlcyB0byB0aGUgam9iLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sL2luY2x1ZGVzLmh0bWwjdXNlLXJ1bGVzLXdpdGgtaW5jbHVkZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2x1ZGVSdWxlIHtcbiAgLyogV2hldGhlciBhIHBpcGVsaW5lIHNob3VsZCBjb250aW51ZSBydW5uaW5nIHdoZW4gYSBqb2IgZmFpbHMuICovXG4gIHJlYWRvbmx5IGFsbG93RmFpbHVyZT86IGJvb2xlYW4gfCBBbGxvd0ZhaWx1cmU7XG4gIC8qIFNwZWNpZnkgd2hlbiB0byBhZGQgYSBqb2IgdG8gYSBwaXBlbGluZSBieSBjaGVja2luZyBmb3IgY2hhbmdlcyB0byBzcGVjaWZpYyBmaWxlcy4gKi9cbiAgcmVhZG9ubHkgY2hhbmdlcz86IHN0cmluZ1tdO1xuICAvKiBSdW4gYSBqb2Igd2hlbiBjZXJ0YWluIGZpbGVzIGV4aXN0IGluIHRoZSByZXBvc2l0b3J5LiAqL1xuICByZWFkb25seSBleGlzdHM/OiBzdHJpbmdbXTtcbiAgLyogQ2xhdXNlcyB0byBzcGVjaWZ5IHdoZW4gdG8gYWRkIGEgam9iIHRvIGEgcGlwZWxpbmUuKi9cbiAgcmVhZG9ubHkgaWY/OiBzdHJpbmc7XG4gIC8qIEV4ZWN1dGUgc2NyaXB0cyBhZnRlciBhIHdhaXRpbmcgcGVyaW9kIHdyaXR0ZW4gaW4gbmF0dXJhbCBsYW5ndWFnZSAoRXguIG9uZSBob3VyLCAzNjAwIHNlY29uZHMsIDYwIG1pbnV0ZXMpLiAqL1xuICByZWFkb25seSBzdGFydEluPzogc3RyaW5nO1xuICAvKiBVc2UgdmFyaWFibGVzIGluIHJ1bGVzIHRvIGRlZmluZSB2YXJpYWJsZXMgZm9yIHNwZWNpZmljIGNvbmRpdGlvbnMuICovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZz47XG4gIC8qIENvbmRpdGlvbnMgZm9yIHdoZW4gdG8gcnVuIHRoZSBqb2IuIERlZmF1bHRzIHRvICdvbl9zdWNjZXNzJyAqL1xuICByZWFkb25seSB3aGVuPzogSm9iV2hlbjtcbn1cblxuLyoqXG4gKiBFeGl0IGNvZGUgdGhhdCBhcmUgbm90IGNvbnNpZGVyZWQgZmFpbHVyZS4gVGhlIGpvYiBmYWlscyBmb3IgYW55IG90aGVyIGV4aXQgY29kZS5cbiAqIFlvdSBjYW4gbGlzdCB3aGljaCBleGl0IGNvZGVzIGFyZSBub3QgY29uc2lkZXJlZCBmYWlsdXJlcy4gVGhlIGpvYiBmYWlscyBmb3IgYW55IG90aGVyXG4gKiBleGl0IGNvZGUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2FsbG93X2ZhaWx1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGxvd0ZhaWx1cmUge1xuICByZWFkb25seSBleGl0Q29kZXM6IG51bWJlcltdIHwgbnVtYmVyO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgY29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN3aGVuXG4gKi9cbmV4cG9ydCBlbnVtIEpvYldoZW4ge1xuICBBTFdBWVMgPSBcImFsd2F5c1wiLFxuICBERUxBWUVEID0gXCJkZWxheWVkXCIsXG4gIE1BTlVBTCA9IFwibWFudWFsXCIsXG4gIE5FVkVSID0gXCJuZXZlclwiLFxuICBPTl9GQUlMVVJFID0gXCJvbl9mYWlsdXJlXCIsXG4gIE9OX1NVQ0NFU1MgPSBcIm9uX3N1Y2Nlc3NcIixcbn1cblxuLyoqXG4gKiBKb2JzIGFyZSB0aGUgbW9zdCBmdW5kYW1lbnRhbCBlbGVtZW50IG9mIGEgLmdpdGxhYi1jaS55bWwgZmlsZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kvam9icy9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2Ige1xuICAvKiBEZWZpbmVzIHNjcmlwdHMgdGhhdCBzaG91bGQgcnVuICphZnRlciogdGhlIGpvYi4gKi9cbiAgcmVhZG9ubHkgYWZ0ZXJTY3JpcHQ/OiBzdHJpbmdbXTtcbiAgLyoqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIHBpcGVsaW5lIHRvIGNvbnRpbnVlIHJ1bm5pbmcgb24gam9iIGZhaWx1cmUgKERlZmF1bHQ6IGZhbHNlKS4gKi9cbiAgcmVhZG9ubHkgYWxsb3dGYWlsdXJlPzogYm9vbGVhbiB8IEFsbG93RmFpbHVyZTtcbiAgLyogQSBsaXN0IG9mIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0aGF0IHNob3VsZCBiZSBhdHRhY2hlZCB0byB0aGUgam9iIGlmIGl0IHN1Y2NlZWRzLiBBcnRpZmFjdHMgYXJlIHNlbnQgdG8gR2l0bGFiIHdoZXJlIHRoZXkgY2FuIGJlIGRvd25sb2FkZWQuICovXG4gIHJlYWRvbmx5IGFydGlmYWN0cz86IEFydGlmYWN0cztcbiAgLyogRGVmaW5lcyBzY3JpcHRzIHRoYXQgc2hvdWxkIHJ1biAqYmVmb3JlKiB0aGUgam9iLiAqL1xuICByZWFkb25seSBiZWZvcmVTY3JpcHQ/OiBzdHJpbmdbXTtcbiAgLyogQSBsaXN0IG9mIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0byBjYWNoZSBiZXR3ZWVuIGpvYnMuIFlvdSBjYW4gb25seSB1c2UgcGF0aHMgdGhhdCBhcmUgaW4gdGhlIGxvY2FsIHdvcmtpbmcgY29weS4gKi9cbiAgcmVhZG9ubHkgY2FjaGU/OiBDYWNoZTtcbiAgLyoqIE11c3QgYmUgYSByZWd1bGFyIGV4cHJlc3Npb24sIG9wdGlvbmFsbHkgYnV0IHJlY29tbWVuZGVkIHRvIGJlIHF1b3RlZCwgYW5kIG11c3QgYmUgc3Vycm91bmRlZCB3aXRoICcvJy4gRXhhbXBsZTogJy9Db2RlIGNvdmVyYWdlOiBcXGQrXFwuXFxkKy8nKi9cbiAgcmVhZG9ubHkgY292ZXJhZ2U/OiBzdHJpbmc7XG4gIC8qKiBTcGVjaWZ5IGEgbGlzdCBvZiBqb2IgbmFtZXMgZnJvbSBlYXJsaWVyIHN0YWdlcyBmcm9tIHdoaWNoIGFydGlmYWN0cyBzaG91bGQgYmUgbG9hZGVkLiBCeSBkZWZhdWx0LCBhbGwgcHJldmlvdXMgYXJ0aWZhY3RzIGFyZSBwYXNzZWQuIFVzZSBhbiBlbXB0eSBhcnJheSB0byBza2lwIGRvd25sb2FkaW5nIGFydGlmYWN0cy4qL1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgLyoqIFVzZWQgdG8gYXNzb2NpYXRlIGVudmlyb25tZW50IG1ldGFkYXRhIHdpdGggYSBkZXBsb3kuIEVudmlyb25tZW50IGNhbiBoYXZlIGEgbmFtZSBhbmQgVVJMIGF0dGFjaGVkIHRvIGl0LCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgdW5kZXIgL2Vudmlyb25tZW50cyB1bmRlciB0aGUgcHJvamVjdC4qL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IEVudmlyb25tZW50IHwgc3RyaW5nO1xuICAvKiogSm9iIHdpbGwgcnVuICpleGNlcHQqIGZvciB3aGVuIHRoZXNlIGZpbHRlcmluZyBvcHRpb25zIG1hdGNoLiovXG4gIHJlYWRvbmx5IGV4Y2VwdD86IHN0cmluZ1tdIHwgRmlsdGVyO1xuICAvKiogVGhlIG5hbWUgb2Ygb25lIG9yIG1vcmUgam9icyB0byBpbmhlcml0IGNvbmZpZ3VyYXRpb24gZnJvbS4qL1xuICByZWFkb25seSBleHRlbmRzPzogc3RyaW5nW107XG4gIC8qIFNwZWNpZmllcyB0aGUgZGVmYXVsdCBkb2NrZXIgaW1hZ2UgdG8gdXNlZCBmb3IgdGhlIGpvYi4gKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBJbWFnZTtcbiAgLyoqIENvbnRyb2xzIGluaGVyaXRhbmNlIG9mIGdsb2JhbGx5LWRlZmluZWQgZGVmYXVsdHMgYW5kIHZhcmlhYmxlcy4gQm9vbGVhbiB2YWx1ZXMgY29udHJvbCBpbmhlcml0YW5jZSBvZiBhbGwgZGVmYXVsdDogb3IgdmFyaWFibGVzOiBrZXl3b3Jkcy4gVG8gaW5oZXJpdCBvbmx5IGEgc3Vic2V0IG9mIGRlZmF1bHQ6IG9yIHZhcmlhYmxlczoga2V5d29yZHMsIHNwZWNpZnkgd2hhdCB5b3Ugd2lzaCB0byBpbmhlcml0LiBBbnl0aGluZyBub3QgbGlzdGVkIGlzIG5vdCBpbmhlcml0ZWQuKi9cbiAgcmVhZG9ubHkgaW5oZXJpdD86IEluaGVyaXQ7XG4gIC8qIElmIGEgam9iIHNob3VsZCBiZSBjYW5jZWxlZCB3aGVuIGEgbmV3ZXIgcGlwZWxpbmUgc3RhcnRzIGJlZm9yZSB0aGUgam9iIGNvbXBsZXRlcyAoRGVmYXVsdDogZmFsc2UpLiovXG4gIHJlYWRvbmx5IGludGVycnVwdGlibGU/OiBib29sZWFuO1xuICAvKiogVGhlIGxpc3Qgb2Ygam9icyBpbiBwcmV2aW91cyBzdGFnZXMgd2hvc2Ugc29sZSBjb21wbGV0aW9uIGlzIG5lZWRlZCB0byBzdGFydCB0aGUgY3VycmVudCBqb2IuKi9cbiAgcmVhZG9ubHkgbmVlZHM/OiBBcnJheTxOZWVkIHwgc3RyaW5nPjtcbiAgLyoqIEpvYiB3aWxsIHJ1biAqb25seSogd2hlbiB0aGVzZSBmaWx0ZXJpbmcgb3B0aW9ucyBtYXRjaC4qL1xuICByZWFkb25seSBvbmx5Pzogc3RyaW5nW10gfCBGaWx0ZXI7XG4gIC8qKiBQYXJhbGxlbCB3aWxsIHNwbGl0IHVwIGEgc2luZ2xlIGpvYiBpbnRvIHNldmVyYWwsIGFuZCBwcm92aWRlIGBDSV9OT0RFX0lOREVYYCBhbmQgYENJX05PREVfVE9UQUxgIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgdGhlIHJ1bm5pbmcgam9icy4qL1xuICByZWFkb25seSBwYXJhbGxlbD86IFBhcmFsbGVsIHwgbnVtYmVyO1xuICAvKiogSW5kaWNhdGVzIHRoYXQgdGhlIGpvYiBjcmVhdGVzIGEgUmVsZWFzZS4qL1xuICByZWFkb25seSByZWxlYXNlPzogUmVsZWFzZTtcbiAgLyoqIExpbWl0IGpvYiBjb25jdXJyZW5jeS4gQ2FuIGJlIHVzZWQgdG8gZW5zdXJlIHRoYXQgdGhlIFJ1bm5lciB3aWxsIG5vdCBydW4gY2VydGFpbiBqb2JzIHNpbXVsdGFuZW91c2x5LiovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXA/OiBzdHJpbmc7XG4gIC8qIEhvdyBtYW55IHRpbWVzIGEgam9iIGlzIHJldHJpZWQgaWYgaXQgZmFpbHMuIElmIG5vdCBkZWZpbmVkLCBkZWZhdWx0cyB0byAwIGFuZCBqb2JzIGRvIG5vdCByZXRyeS4gKi9cbiAgcmVhZG9ubHkgcmV0cnk/OiBSZXRyeTtcbiAgLyoqUnVsZXMgYWxsb3dzIGZvciBhbiBhcnJheSBvZiBpbmRpdmlkdWFsIHJ1bGUgb2JqZWN0cyB0byBiZSBldmFsdWF0ZWQgaW4gb3JkZXIsIHVudGlsIG9uZSBtYXRjaGVzIGFuZCBkeW5hbWljYWxseSBwcm92aWRlcyBhdHRyaWJ1dGVzIHRvIHRoZSBqb2IuICovXG4gIHJlYWRvbmx5IHJ1bGVzPzogSW5jbHVkZVJ1bGVbXTtcbiAgLyoqIFNoZWxsIHNjcmlwdHMgZXhlY3V0ZWQgYnkgdGhlIFJ1bm5lci4gVGhlIG9ubHkgcmVxdWlyZWQgcHJvcGVydHkgb2Ygam9icy4gQmUgY2FyZWZ1bCB3aXRoIHNwZWNpYWwgY2hhcmFjdGVycyAoZS5nLiBgOmAsIGB7YCwgYH1gLCBgJmApIGFuZCB1c2Ugc2luZ2xlIG9yIGRvdWJsZSBxdW90ZXMgdG8gYXZvaWQgaXNzdWVzLiovXG4gIHJlYWRvbmx5IHNjcmlwdD86IHN0cmluZ1tdO1xuICAvKiogQ0kvQ0Qgc2VjcmV0cyAqL1xuICByZWFkb25seSBzZWNyZXRzPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgU2VjcmV0Pj47XG4gIC8qIEFkZGl0aW9uYWwgRG9ja2VyIGltYWdlcyB0byBydW4gc2NyaXB0cyBpbi4gVGhlIHNlcnZpY2UgaW1hZ2UgaXMgbGlua2VkIHRvIHRoZSBpbWFnZSBzcGVjaWZpZWQgaW4gdGhlICBpbWFnZSBwYXJhbWV0ZXIuICovXG4gIHJlYWRvbmx5IHNlcnZpY2VzPzogU2VydmljZVtdO1xuICAvKiogRGVmaW5lIHdoYXQgc3RhZ2UgdGhlIGpvYiB3aWxsIHJ1biBpbi4qL1xuICByZWFkb25seSBzdGFnZT86IHN0cmluZztcbiAgLyogRXhlY3V0ZSBzY3JpcHRzIGFmdGVyIGEgd2FpdGluZyBwZXJpb2Qgd3JpdHRlbiBpbiBuYXR1cmFsIGxhbmd1YWdlIChFeC4gb25lIGhvdXIsIDM2MDAgc2Vjb25kcywgNjAgbWludXRlcykuICovXG4gIHJlYWRvbmx5IHN0YXJ0SW4/OiBzdHJpbmc7XG4gIC8qIFVzZWQgdG8gc2VsZWN0IGEgc3BlY2lmaWMgcnVubmVyIGZyb20gdGhlIGxpc3Qgb2YgYWxsIHJ1bm5lcnMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB0aGUgcHJvamVjdC4gKi9cbiAgcmVhZG9ubHkgdGFncz86IHN0cmluZ1tdO1xuICAvKiBBIGRlZmF1bHQgdGltZW91dCBqb2Igd3JpdHRlbiBpbiBuYXR1cmFsIGxhbmd1YWdlIChFeC4gb25lIGhvdXIsIDM2MDAgc2Vjb25kcywgNjAgbWludXRlcykuICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBzdHJpbmc7XG4gIC8qKiBUcmlnZ2VyIGFsbG93cyB5b3UgdG8gZGVmaW5lIGRvd25zdHJlYW0gcGlwZWxpbmUgdHJpZ2dlci4gV2hlbiBhIGpvYiBjcmVhdGVkIGZyb20gdHJpZ2dlciBkZWZpbml0aW9uIGlzIHN0YXJ0ZWQgYnkgR2l0TGFiLCBhIGRvd25zdHJlYW0gcGlwZWxpbmUgZ2V0cyBjcmVhdGVkLiBSZWFkIG1vcmU6IGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvUkVBRE1FLmh0bWwjdHJpZ2dlciovXG4gIHJlYWRvbmx5IHRyaWdnZXI/OiBUcmlnZ2VyIHwgc3RyaW5nO1xuICAvKiogQ29uZmlndXJhYmxlIHZhbHVlcyB0aGF0IGFyZSBwYXNzZWQgdG8gdGhlIEpvYi4gKi9cbiAgcmVhZG9ubHkgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nPjtcbiAgLyoqIERlc2NyaWJlcyB0aGUgY29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnLiAqL1xuICByZWFkb25seSB3aGVuPzogSm9iV2hlbjtcbn1cblxuLyoqXG4gKiBUaGUgZW52aXJvbm1lbnQgdGhhdCBhIGpvYiBkZXBsb3lzIHRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50IHtcbiAgLyoqIFNwZWNpZmllcyB3aGF0IHRoaXMgam9iIHdpbGwgZG8uICdzdGFydCcgKGRlZmF1bHQpIGluZGljYXRlcyB0aGUgam9iIHdpbGwgc3RhcnQgdGhlIGRlcGxveW1lbnQuICdwcmVwYXJlJyBpbmRpY2F0ZXMgdGhpcyB3aWxsIG5vdCBhZmZlY3QgdGhlIGRlcGxveW1lbnQuICdzdG9wJyBpbmRpY2F0ZXMgdGhpcyB3aWxsIHN0b3AgdGhlIGRlcGxveW1lbnQuKi9cbiAgcmVhZG9ubHkgYWN0aW9uPzogQWN0aW9uO1xuICAvKiogVGhlIGFtb3VudCBvZiB0aW1lIGl0IHNob3VsZCB0YWtlIGJlZm9yZSBHaXRsYWIgd2lsbCBhdXRvbWF0aWNhbGx5IHN0b3AgdGhlIGVudmlyb25tZW50LiBTdXBwb3J0cyBhIHdpZGUgdmFyaWV0eSBvZiBmb3JtYXRzLCBlLmcuICcxIHdlZWsnLCAnMyBtaW5zIDQgc2VjJywgJzIgaHJzIDIwIG1pbicsICcyaDIwbWluJywgJzYgbW9zIDEgZGF5JywgJzQ3IHlycyA2IG1vcyBhbmQgNGQnLCAnMyB3ZWVrcyBhbmQgMiBkYXlzJy4qL1xuICByZWFkb25seSBhdXRvU3RvcEluPzogc3RyaW5nO1xuICAvKiogRXhwbGljaXRseSBzcGVjaWZpZXMgdGhlIHRpZXIgb2YgdGhlIGRlcGxveW1lbnQgZW52aXJvbm1lbnQgaWYgbm9uLXN0YW5kYXJkIGVudmlyb25tZW50IG5hbWUgaXMgdXNlZC4qL1xuICByZWFkb25seSBkZXBsb3ltZW50VGllcj86IERlcGxveW1lbnRUaWVyO1xuICAvKiogVXNlZCB0byBjb25maWd1cmUgdGhlIGt1YmVybmV0ZXMgZGVwbG95bWVudCBmb3IgdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBmb3Iga3ViZXJuZXRlcyBjbHVzdGVycyB0aGF0IGFyZSBtYW5hZ2VkIGJ5IEdpdGxhYi4qL1xuICByZWFkb25seSBrdWJlcm5ldGVzPzogS3ViZXJuZXRlc0NvbmZpZztcbiAgLyoqIFRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCwgZS5nLiAncWEnLCAnc3RhZ2luZycsICdwcm9kdWN0aW9uJy4qL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgbmFtZSBvZiBhIGpvYiB0byBleGVjdXRlIHdoZW4gdGhlIGVudmlyb25tZW50IGlzIGFib3V0IHRvIGJlIHN0b3BwZWQuKi9cbiAgcmVhZG9ubHkgb25TdG9wPzogc3RyaW5nO1xuICAvKiogV2hlbiBzZXQsIHRoaXMgd2lsbCBleHBvc2UgYnV0dG9ucyBpbiB2YXJpb3VzIHBsYWNlcyBmb3IgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgaW4gR2l0bGFiLCB0aGF0IHdpbGwgdGFrZSB5b3UgdG8gdGhlIGRlZmluZWQgVVJMLiovXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgd2hhdCB0aGlzIGpvYiB3aWxsIGRvLiAnc3RhcnQnIChkZWZhdWx0KSBpbmRpY2F0ZXMgdGhlIGpvYiB3aWxsIHN0YXJ0IHRoZVxuICogZGVwbG95bWVudC4gJ3ByZXBhcmUnIGluZGljYXRlcyB0aGlzIHdpbGwgbm90IGFmZmVjdCB0aGUgZGVwbG95bWVudC4gJ3N0b3AnIGluZGljYXRlc1xuICogdGhpcyB3aWxsIHN0b3AgdGhlIGRlcGxveW1lbnQuXG4gKi9cbmV4cG9ydCBlbnVtIEFjdGlvbiB7XG4gIFBSRVBBUkUgPSBcInByZXBhcmVcIixcbiAgU1RBUlQgPSBcInN0YXJ0XCIsXG4gIFNUT1AgPSBcInN0b3BcIixcbn1cblxuLyoqXG4gKiBFeHBsaWNpdGx5IHNwZWNpZmllcyB0aGUgdGllciBvZiB0aGUgZGVwbG95bWVudCBlbnZpcm9ubWVudCBpZiBub24tc3RhbmRhcmQgZW52aXJvbm1lbnRcbiAqIG5hbWUgaXMgdXNlZC5cbiAqL1xuZXhwb3J0IGVudW0gRGVwbG95bWVudFRpZXIge1xuICBERVZFTE9QTUVOVCA9IFwiZGV2ZWxvcG1lbnRcIixcbiAgT1RIRVIgPSBcIm90aGVyXCIsXG4gIFBST0RVQ1RJT04gPSBcInByb2R1Y3Rpb25cIixcbiAgU1RBR0lORyA9IFwic3RhZ2luZ1wiLFxuICBURVNUSU5HID0gXCJ0ZXN0aW5nXCIsXG59XG5cbi8qKlxuICogVXNlZCB0byBjb25maWd1cmUgdGhlIGt1YmVybmV0ZXMgZGVwbG95bWVudCBmb3IgdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBjdXJyZW50bHkgbm90XG4gKiBzdXBwb3J0ZWQgZm9yIGt1YmVybmV0ZXMgY2x1c3RlcnMgdGhhdCBhcmUgbWFuYWdlZCBieSBHaXRsYWIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS3ViZXJuZXRlc0NvbmZpZyB7XG4gIC8qKiBUaGUga3ViZXJuZXRlcyBuYW1lc3BhY2Ugd2hlcmUgdGhpcyBlbnZpcm9ubWVudCBzaG91bGQgYmUgZGVwbG95ZWQgdG8uKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEZpbHRlcmluZyBvcHRpb25zIGZvciB3aGVuIGEgam9iIHdpbGwgcnVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlciB7XG4gIC8qKiBGaWx0ZXIgam9iIGNyZWF0aW9uIGJhc2VkIG9uIGZpbGVzIHRoYXQgd2VyZSBtb2RpZmllZCBpbiBhIGdpdCBwdXNoLiovXG4gIHJlYWRvbmx5IGNoYW5nZXM/OiBzdHJpbmdbXTtcbiAgLyoqIEZpbHRlciBqb2IgYmFzZWQgb24gaWYgS3ViZXJuZXRlcyBpbnRlZ3JhdGlvbiBpcyBhY3RpdmUuKi9cbiAgcmVhZG9ubHkga3ViZXJuZXRlcz86IEt1YmVybmV0ZXNFbnVtO1xuICAvKiogQ29udHJvbCB3aGVuIHRvIGFkZCBqb2JzIHRvIGEgcGlwZWxpbmUgYmFzZWQgb24gYnJhbmNoIG5hbWVzIG9yIHBpcGVsaW5lIHR5cGVzLiAqL1xuICByZWFkb25seSByZWZzPzogc3RyaW5nW107XG4gIC8qKiBGaWx0ZXIgam9iIGJ5IGNoZWNraW5nIGNvbXBhcmluZyB2YWx1ZXMgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBSZWFkIG1vcmUgYWJvdXQgdmFyaWFibGUgZXhwcmVzc2lvbnM6IGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3ZhcmlhYmxlcy9SRUFETUUuaHRtbCN2YXJpYWJsZXMtZXhwcmVzc2lvbnMqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBGaWx0ZXIgam9iIGJhc2VkIG9uIGlmIEt1YmVybmV0ZXMgaW50ZWdyYXRpb24gaXMgYWN0aXZlLlxuICovXG5leHBvcnQgZW51bSBLdWJlcm5ldGVzRW51bSB7XG4gIEFDVElWRSA9IFwiYWN0aXZlXCIsXG59XG5cbi8qKlxuICogQ29udHJvbHMgaW5oZXJpdGFuY2Ugb2YgZ2xvYmFsbHktZGVmaW5lZCBkZWZhdWx0cyBhbmQgdmFyaWFibGVzLiBCb29sZWFuIHZhbHVlcyBjb250cm9sXG4gKiBpbmhlcml0YW5jZSBvZiBhbGwgZGVmYXVsdDogb3IgdmFyaWFibGVzOiBrZXl3b3Jkcy4gVG8gaW5oZXJpdCBvbmx5IGEgc3Vic2V0IG9mIGRlZmF1bHQ6XG4gKiBvciB2YXJpYWJsZXM6IGtleXdvcmRzLCBzcGVjaWZ5IHdoYXQgeW91IHdpc2ggdG8gaW5oZXJpdC4gQW55dGhpbmcgbm90IGxpc3RlZCBpcyBub3RcbiAqIGluaGVyaXRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmhlcml0IHtcbiAgLyoqIFdoZXRoZXIgdG8gaW5oZXJpdCBhbGwgZ2xvYmFsbHktZGVmaW5lZCBkZWZhdWx0cyBvciBub3QuIE9yIHN1YnNldCBvZiBpbmhlcml0ZWQgZGVmYXVsdHMqL1xuICByZWFkb25seSBkZWZhdWx0PzogRGVmYXVsdEVsZW1lbnRbXSB8IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIGluaGVyaXQgYWxsIGdsb2JhbGx5LWRlZmluZWQgdmFyaWFibGVzIG9yIG5vdC4gT3Igc3Vic2V0IG9mIGluaGVyaXRlZCB2YXJpYWJsZXMqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBzdHJpbmdbXSB8IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIERlZmF1bHRFbGVtZW50IHtcbiAgQUZURVJfU0NSSVBUID0gXCJhZnRlcl9zY3JpcHRcIixcbiAgQVJUSUZBQ1RTID0gXCJhcnRpZmFjdHNcIixcbiAgQkVGT1JFX1NDUklQVCA9IFwiYmVmb3JlX3NjcmlwdFwiLFxuICBDQUNIRSA9IFwiY2FjaGVcIixcbiAgSU1BR0UgPSBcImltYWdlXCIsXG4gIElOVEVSUlVQVElCTEUgPSBcImludGVycnVwdGlibGVcIixcbiAgUkVUUlkgPSBcInJldHJ5XCIsXG4gIFNFUlZJQ0VTID0gXCJzZXJ2aWNlc1wiLFxuICBUQUdTID0gXCJ0YWdzXCIsXG4gIFRJTUVPVVQgPSBcInRpbWVvdXRcIixcbn1cblxuLyoqXG4gKiBBIGpvYnMgaW4gYSBwcmV2aW91cyBzdGFnZSB3aG9zZSBzb2xlIGNvbXBsZXRpb24gaXMgbmVlZGVkIHRvIHN0YXJ0IHRoZSBjdXJyZW50IGpvYi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZWVkIHtcbiAgcmVhZG9ubHkgYXJ0aWZhY3RzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgam9iOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcGlwZWxpbmU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb2plY3Q/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlZj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBVc2VkIHRvIHJ1biBhIGpvYiBtdWx0aXBsZSB0aW1lcyBpbiBwYXJhbGxlbCBpbiBhIHNpbmdsZSBwaXBlbGluZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJhbGxlbCB7XG4gIC8qKiBEZWZpbmVzIGRpZmZlcmVudCB2YXJpYWJsZXMgZm9yIGpvYnMgdGhhdCBhcmUgcnVubmluZyBpbiBwYXJhbGxlbC4qL1xuICByZWFkb25seSBtYXRyaXg6IFJlY29yZDxzdHJpbmcsIGFueVtdPltdO1xufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSBqb2IgY3JlYXRlcyBhIFJlbGVhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVsZWFzZSB7XG4gIHJlYWRvbmx5IGFzc2V0cz86IEFzc2V0cztcbiAgLyoqIFNwZWNpZmllcyB0aGUgbG9uZ2VyIGRlc2NyaXB0aW9uIG9mIHRoZSBSZWxlYXNlLiovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKiBUaGUgdGl0bGUgb2YgZWFjaCBtaWxlc3RvbmUgdGhlIHJlbGVhc2UgaXMgYXNzb2NpYXRlZCB3aXRoLiovXG4gIHJlYWRvbmx5IG1pbGVzdG9uZXM/OiBzdHJpbmdbXTtcbiAgLyoqIFRoZSBSZWxlYXNlIG5hbWUuIElmIG9taXR0ZWQsIGl0IGlzIHBvcHVsYXRlZCB3aXRoIHRoZSB2YWx1ZSBvZiByZWxlYXNlOiB0YWdfbmFtZS4qL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICAvKiogSWYgdGhlIHJlbGVhc2U6IHRhZ19uYW1lIGRvZXNu4oCZdCBleGlzdCB5ZXQsIHRoZSByZWxlYXNlIGlzIGNyZWF0ZWQgZnJvbSByZWYuIHJlZiBjYW4gYmUgYSBjb21taXQgU0hBLCBhbm90aGVyIHRhZyBuYW1lLCBvciBhIGJyYW5jaCBuYW1lLiovXG4gIHJlYWRvbmx5IHJlZj86IHN0cmluZztcbiAgLyoqIFRoZSBkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIHJlbGVhc2UgaXMgcmVhZHkuIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaWYgbm90IGRlZmluZWQuIFNob3VsZCBiZSBlbmNsb3NlZCBpbiBxdW90ZXMgYW5kIGV4cHJlc3NlZCBpbiBJU08gODYwMSBmb3JtYXQuKi9cbiAgcmVhZG9ubHkgcmVsZWFzZWRBdD86IHN0cmluZztcbiAgLyoqIFRoZSB0YWdfbmFtZSBtdXN0IGJlIHNwZWNpZmllZC4gSXQgY2FuIHJlZmVyIHRvIGFuIGV4aXN0aW5nIEdpdCB0YWcgb3IgY2FuIGJlIHNwZWNpZmllZCBieSB0aGUgdXNlci4qL1xuICByZWFkb25seSB0YWdOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXNzZXQgY29uZmlndXJhdGlvbiBmb3IgYSByZWxlYXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0cyB7XG4gIC8qKiBJbmNsdWRlIGFzc2V0IGxpbmtzIGluIHRoZSByZWxlYXNlLiovXG4gIHJlYWRvbmx5IGxpbmtzOiBMaW5rW107XG59XG5cbi8qKlxuICogTGluayBjb25maWd1cmF0aW9uIGZvciBhbiBhc3NldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW5rIHtcbiAgLyoqIFRoZSByZWRpcmVjdCBsaW5rIHRvIHRoZSB1cmwuKi9cbiAgcmVhZG9ubHkgZmlsZXBhdGg/OiBzdHJpbmc7XG4gIC8qKiBUaGUgY29udGVudCBraW5kIG9mIHdoYXQgdXNlcnMgY2FuIGRvd25sb2FkIHZpYSB1cmwuKi9cbiAgcmVhZG9ubHkgbGlua1R5cGU/OiBMaW5rVHlwZTtcbiAgLyoqIFRoZSBuYW1lIG9mIHRoZSBsaW5rLiovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqIFRoZSBVUkwgdG8gZG93bmxvYWQgYSBmaWxlLiovXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBjb250ZW50IGtpbmQgb2Ygd2hhdCB1c2VycyBjYW4gZG93bmxvYWQgdmlhIHVybC5cbiAqL1xuZXhwb3J0IGVudW0gTGlua1R5cGUge1xuICBJTUFHRSA9IFwiaW1hZ2VcIixcbiAgT1RIRVIgPSBcIm90aGVyXCIsXG4gIFBBQ0tBR0UgPSBcInBhY2thZ2VcIixcbiAgUlVOQk9PSyA9IFwicnVuYm9va1wiLFxufVxuXG4vKipcbiAqIEEgQ0kvQ0Qgc2VjcmV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjcmV0IHtcbiAgLyogU3BlY2lmaWNhdGlvbiBmb3IgYSBzZWNyZXQgcHJvdmlkZWQgYnkgYSBIYXNoaUNvcnAgVmF1bHQuICovXG4gIHJlYWRvbmx5IHZhdWx0OiBWYXVsdENvbmZpZztcbn1cblxuLyoqXG4gKiBTcGVjaWZpY2F0aW9uIGZvciBhIHNlY3JldCBwcm92aWRlZCBieSBhIEhhc2hpQ29ycCBWYXVsdC5cbiAqIEBzZWUgaHR0cHM6Ly93d3cudmF1bHRwcm9qZWN0LmlvL1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhdWx0Q29uZmlnIHtcbiAgLyogVGhlIGVuZ2luZSBjb25maWd1cmF0aW9uIGZvciBhIHNlY3JldC4gKi9cbiAgcmVhZG9ubHkgZW5naW5lOiBFbmdpbmU7XG4gIC8qIFRoZSBuYW1lIG9mIHRoZSBmaWVsZCB3aGVyZSB0aGUgcGFzc3dvcmQgaXMgc3RvcmVkLiAqL1xuICByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICAvKiogUGF0aCB0byB0aGUgc2VjcmV0LiAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGVuZ2luZSBjb25maWd1cmF0aW9uIGZvciBhIHNlY3JldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmdpbmUge1xuICAvKiogTmFtZSBvZiB0aGUgc2VjcmV0cyBlbmdpbmUuICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqIFBhdGggdG8gdGhlIHNlY3JldHMgZW5naW5lLiAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHJpZ2dlciBhIG11bHRpLXByb2plY3Qgb3IgYSBjaGlsZCBwaXBlbGluZS4gUmVhZCBtb3JlOlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sL1JFQURNRS5odG1sI3NpbXBsZS10cmlnZ2VyLXN5bnRheC1mb3ItbXVsdGktcHJvamVjdC1waXBlbGluZXNcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC9SRUFETUUuaHRtbCN0cmlnZ2VyLXN5bnRheC1mb3ItY2hpbGQtcGlwZWxpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VyIHtcbiAgLyoqIFRoZSBicmFuY2ggbmFtZSB0aGF0IGEgZG93bnN0cmVhbSBwaXBlbGluZSB3aWxsIHVzZSovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcbiAgLyoqIFBhdGggdG8gdGhlIHByb2plY3QsIGUuZy4gYGdyb3VwL3Byb2plY3RgLCBvciBgZ3JvdXAvc3ViLWdyb3VwL3Byb2plY3RgLiovXG4gIHJlYWRvbmx5IHByb2plY3Q/OiBzdHJpbmc7XG4gIC8qKiBZb3UgY2FuIG1pcnJvciB0aGUgcGlwZWxpbmUgc3RhdHVzIGZyb20gdGhlIHRyaWdnZXJlZCBwaXBlbGluZSB0byB0aGUgc291cmNlIGJyaWRnZSBqb2IgYnkgdXNpbmcgc3RyYXRlZ3k6IGRlcGVuZCovXG4gIHJlYWRvbmx5IHN0cmF0ZWd5PzogU3RyYXRlZ3k7XG4gIC8qKiBBIGxpc3Qgb2YgbG9jYWwgZmlsZXMgb3IgYXJ0aWZhY3RzIGZyb20gb3RoZXIgam9icyB0byBkZWZpbmUgdGhlIHBpcGVsaW5lICovXG4gIHJlYWRvbmx5IGluY2x1ZGU/OiBUcmlnZ2VySW5jbHVkZVtdO1xufVxuXG4vKipcbiAqIFJlZmVyZW5jZXMgYSBsb2NhbCBmaWxlIG9yIGFuIGFydGlmYWN0IGZyb20gYW5vdGhlciBqb2IgdG8gZGVmaW5lIHRoZSBwaXBlbGluZVxuICogY29uZmlndXJhdGlvbi5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jdHJpZ2dlcmluY2x1ZGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VySW5jbHVkZSB7XG4gIC8qKiBSZWxhdGl2ZSBwYXRoIGZyb20gbG9jYWwgcmVwb3NpdG9yeSByb290IChgL2ApIHRvIHRoZSBsb2NhbCBZQU1MIGZpbGUgdG8gZGVmaW5lIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uLiovXG4gIHJlYWRvbmx5IGxvY2FsPzogc3RyaW5nO1xuICAvKiogTmFtZSBvZiB0aGUgdGVtcGxhdGUgWUFNTCBmaWxlIHRvIHVzZSBpbiB0aGUgcGlwZWxpbmUgY29uZmlndXJhdGlvbi4qL1xuICByZWFkb25seSB0ZW1wbGF0ZT86IHN0cmluZztcbiAgLyoqIFJlbGF0aXZlIHBhdGggdG8gdGhlIGdlbmVyYXRlZCBZQU1MIGZpbGUgd2hpY2ggaXMgZXh0cmFjdGVkIGZyb20gdGhlIGFydGlmYWN0cyBhbmQgdXNlZCBhcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgdHJpZ2dlcmluZyB0aGUgY2hpbGQgcGlwZWxpbmUuKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3Q/OiBzdHJpbmc7XG4gIC8qKiBKb2IgbmFtZSB3aGljaCBnZW5lcmF0ZXMgdGhlIGFydGlmYWN0Ki9cbiAgcmVhZG9ubHkgam9iPzogc3RyaW5nO1xuICAvKiogUmVsYXRpdmUgcGF0aCBmcm9tIHJlcG9zaXRvcnkgcm9vdCAoYC9gKSB0byB0aGUgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBZQU1MIGZpbGUuKi9cbiAgcmVhZG9ubHkgZmlsZT86IHN0cmluZztcbiAgLyoqIFBhdGggdG8gYW5vdGhlciBwcml2YXRlIHByb2plY3QgdW5kZXIgdGhlIHNhbWUgR2l0TGFiIGluc3RhbmNlLCBsaWtlIGBncm91cC9wcm9qZWN0YCBvciBgZ3JvdXAvc3ViLWdyb3VwL3Byb2plY3RgLiovXG4gIHJlYWRvbmx5IHByb2plY3Q/OiBzdHJpbmc7XG4gIC8qKiBCcmFuY2gvVGFnL0NvbW1pdCBoYXNoIGZvciB0aGUgdGFyZ2V0IHByb2plY3QuKi9cbiAgcmVhZG9ubHkgcmVmPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFlvdSBjYW4gbWlycm9yIHRoZSBwaXBlbGluZSBzdGF0dXMgZnJvbSB0aGUgdHJpZ2dlcmVkIHBpcGVsaW5lIHRvIHRoZSBzb3VyY2UgYnJpZGdlIGpvYlxuICogYnkgdXNpbmcgc3RyYXRlZ3k6IGRlcGVuZFxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN0cmlnZ2Vyc3RyYXRlZ3lcbiAqL1xuZXhwb3J0IGVudW0gU3RyYXRlZ3kge1xuICBERVBFTkQgPSBcImRlcGVuZFwiLFxufVxuXG4vKipcbiAqIEV4cGxhaW5zIHdoYXQgdGhlIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGZvciwgd2hhdCB0aGUgYWNjZXB0YWJsZSB2YWx1ZXMgYXJlLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN2YXJpYWJsZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYXJpYWJsZUNvbmZpZyB7XG4gIC8qKiBEZWZpbmUgYSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBwcmVmaWxsZWQgd2hlbiBydW5uaW5nIGEgcGlwZWxpbmUgbWFudWFsbHkuIE11c3QgYmUgdXNlZCB3aXRoIHZhbHVlLiAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBUaGUgdmFyaWFibGUgdmFsdWUuICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVzZWQgdG8gY29udHJvbCBwaXBlbGluZSBiZWhhdmlvci5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jd29ya2Zsb3dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvdyB7XG4gIC8qKiBVc2VkIHRvIGNvbnRyb2wgd2hldGhlciBvciBub3QgYSB3aG9sZSBwaXBlbGluZSBpcyBjcmVhdGVkLiAqL1xuICByZWFkb25seSBydWxlcz86IFdvcmtmbG93UnVsZVtdO1xufVxuXG4vKipcbiAqIFVzZWQgdG8gY29udHJvbCB3aGV0aGVyIG9yIG5vdCBhIHdob2xlIHBpcGVsaW5lIGlzIGNyZWF0ZWQuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3dvcmtmbG93cnVsZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd1J1bGUge1xuICAvKiBTcGVjaWZ5IHdoZW4gdG8gYWRkIGEgam9iIHRvIGEgcGlwZWxpbmUgYnkgY2hlY2tpbmcgZm9yIGNoYW5nZXMgdG8gc3BlY2lmaWMgZmlsZXMuICovXG4gIHJlYWRvbmx5IGNoYW5nZXM/OiBzdHJpbmdbXTtcbiAgLyogUnVuIGEgam9iIHdoZW4gY2VydGFpbiBmaWxlcyBleGlzdCBpbiB0aGUgcmVwb3NpdG9yeS4gKi9cbiAgcmVhZG9ubHkgZXhpc3RzPzogc3RyaW5nW107XG4gIC8qIENsYXVzZXMgdG8gc3BlY2lmeSB3aGVuIHRvIGFkZCBhIGpvYiB0byBhIHBpcGVsaW5lLiovXG4gIHJlYWRvbmx5IGlmPzogc3RyaW5nO1xuICAvKiBVc2UgdmFyaWFibGVzIGluIHJ1bGVzIHRvIGRlZmluZSB2YXJpYWJsZXMgZm9yIHNwZWNpZmljIGNvbmRpdGlvbnMuICovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZz47XG4gIC8qIENvbmRpdGlvbnMgZm9yIHdoZW4gdG8gcnVuIHRoZSBqb2IuIERlZmF1bHRzIHRvICdvbl9zdWNjZXNzJyAqL1xuICByZWFkb25seSB3aGVuPzogSm9iV2hlbjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHdoZW4gdG8gcnVuIHRoZSBqb2IuIERlZmF1bHRzIHRvICdvbl9zdWNjZXNzJy5cbiAqIFRoZSB2YWx1ZSBjYW4gb25seSBiZSAnYWx3YXlzJyBvciAnbmV2ZXInIHdoZW4gdXNlZCB3aXRoIHdvcmtmbG93LlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN3b3JrZmxvd3J1bGVzXG4gKi9cbmV4cG9ydCBlbnVtIFdvcmtmbG93V2hlbiB7XG4gIEFMV0FZUyA9IFwiYWx3YXlzXCIsXG4gIE5FVkVSID0gXCJuZXZlclwiLFxufVxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRsYWIvY29uZmlndXJhdGlvbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkNBQTJDO0FBQzNDLDhHQUE4RztBQUM5RyxpRUFBaUU7OztBQWtDakU7OztHQUdHO0FBQ0gsSUFBWSxXQU9YO0FBUEQsV0FBWSxXQUFXO0lBQ3JCLG1HQUFtRztJQUNuRyw0QkFBYSxDQUFBO0lBQ2IsbUdBQW1HO0lBQ25HLDRCQUFhLENBQUE7SUFDYiwyR0FBMkc7SUFDM0csc0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVBXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBT3RCO0FBRUQ7OztHQUdHO0FBQ0gsSUFBWSxTQU9YO0FBUEQsV0FBWSxTQUFTO0lBQ25CLGlEQUFpRDtJQUNqRCw4QkFBaUIsQ0FBQTtJQUNqQixnREFBZ0Q7SUFDaEQsc0NBQXlCLENBQUE7SUFDekIseUVBQXlFO0lBQ3pFLHNDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFQVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU9wQjtBQXFNRDs7O0dBR0c7QUFDSCxJQUFZLE9BT1g7QUFQRCxXQUFZLE9BQU87SUFDakIsNEJBQWlCLENBQUE7SUFDakIsOEJBQW1CLENBQUE7SUFDbkIsNEJBQWlCLENBQUE7SUFDakIsMEJBQWUsQ0FBQTtJQUNmLG9DQUF5QixDQUFBO0lBQ3pCLG9DQUF5QixDQUFBO0FBQzNCLENBQUMsRUFQVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFPbEI7QUF5RkQ7Ozs7R0FJRztBQUNILElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNoQiw2QkFBbUIsQ0FBQTtJQUNuQix5QkFBZSxDQUFBO0lBQ2YsdUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxNQUFNLEdBQU4sY0FBTSxLQUFOLGNBQU0sUUFJakI7QUFFRDs7O0dBR0c7QUFDSCxJQUFZLGNBTVg7QUFORCxXQUFZLGNBQWM7SUFDeEIsNkNBQTJCLENBQUE7SUFDM0IsaUNBQWUsQ0FBQTtJQUNmLDJDQUF5QixDQUFBO0lBQ3pCLHFDQUFtQixDQUFBO0lBQ25CLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQU16QjtBQXlCRDs7R0FFRztBQUNILElBQVksY0FFWDtBQUZELFdBQVksY0FBYztJQUN4QixtQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBRlcsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFFekI7QUFlRCxJQUFZLGNBV1g7QUFYRCxXQUFZLGNBQWM7SUFDeEIsK0NBQTZCLENBQUE7SUFDN0IseUNBQXVCLENBQUE7SUFDdkIsaURBQStCLENBQUE7SUFDL0IsaUNBQWUsQ0FBQTtJQUNmLGlDQUFlLENBQUE7SUFDZixpREFBK0IsQ0FBQTtJQUMvQixpQ0FBZSxDQUFBO0lBQ2YsdUNBQXFCLENBQUE7SUFDckIsK0JBQWEsQ0FBQTtJQUNiLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFYVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQVd6QjtBQStERDs7R0FFRztBQUNILElBQVksUUFLWDtBQUxELFdBQVksUUFBUTtJQUNsQiwyQkFBZSxDQUFBO0lBQ2YsMkJBQWUsQ0FBQTtJQUNmLCtCQUFtQixDQUFBO0lBQ25CLCtCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUtuQjtBQXVFRDs7OztHQUlHO0FBQ0gsSUFBWSxRQUVYO0FBRkQsV0FBWSxRQUFRO0lBQ2xCLDZCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFGVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUVuQjtBQXVDRDs7OztHQUlHO0FBQ0gsSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLGlDQUFpQixDQUFBO0lBQ2pCLCtCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBR3ZCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sL1xuLy8gU2NoZW1hIGZyb206IGh0dHBzOi8vZ2l0bGFiLmNvbS9naXRsYWItb3JnL2dpdGxhYi8tL3Jhdy9tYXN0ZXIvYXBwL2Fzc2V0cy9qYXZhc2NyaXB0cy9lZGl0b3Ivc2NoZW1hL2NpLmpzb25cbi8vIEluaXRpYWwgVHlwZVNjcmlwdCBJbnRlcmZhY2VzIGZyb206IGh0dHBzOi8vYXBwLnF1aWNrdHlwZS5pby8jXG5cbi8qKlxuICogQ2FjaGUgRGVmaW5pdGlvbi5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jY2FjaGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWNoZSB7XG4gIC8qKiBEZWZpbmVzIHdoaWNoIGZpbGVzIG9yIGRpcmVjdG9yaWVzIHRvIGNhY2hlLiAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdO1xuXG4gIC8qKiBVc2VkIHRoZSB0byBnaXZlIGVhY2ggY2FjaGUgYSB1bmlxdWUgaWRlbnRpZnlpbmcga2V5LiBBbGwgam9icyB0aGF0IHVzZSB0aGUgc2FtZSBjYWNoZSBrZXkgdXNlIHRoZSBzYW1lIGNhY2hlLiAqL1xuICByZWFkb25seSBrZXk/OiBzdHJpbmcgfCBDYWNoZUtleUZpbGVzO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSBhbGwgZmlsZXMgdGhhdCBhcmUgdW50cmFja2VkIGluIHlvdXIgR2l0IHJlcG9zaXRvcnkgd2lsbCBiZSBjYWNoZWQuICovXG4gIHJlYWRvbmx5IHVudHJhY2tlZD86IGJvb2xlYW47XG5cbiAgLyoqIERlZmluZXMgdGhlIHVwbG9hZCBhbmQgZG93bmxvYWQgYmVoYXZpb3VyIG9mIHRoZSBjYWNoZS4gKi9cbiAgcmVhZG9ubHkgcG9saWN5PzogQ2FjaGVQb2xpY3k7XG5cbiAgLyoqIERlZmluZXMgd2hlbiB0byBzYXZlIHRoZSBjYWNoZSwgYmFzZWQgb24gdGhlIHN0YXR1cyBvZiB0aGUgam9iIChEZWZhdWx0OiBKb2IgU3VjY2VzcykuICovXG4gIHJlYWRvbmx5IHdoZW4/OiBDYWNoZVdoZW47XG59XG5cbi8qKlxuICogVXNlIHRoaXMgY29uc3RydWN0IHRvIGdlbmVyYXRlIGEgbmV3IGtleSB3aGVuIG9uZSBvciB0d28gc3BlY2lmaWMgZmlsZXMgY2hhbmdlLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNjYWNoZWtleWZpbGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGVLZXlGaWxlcyB7XG4gIC8qKiBUaGUgZmlsZXMgdGhhdCBhcmUgY2hlY2tlZCBhZ2FpbnN0LiBJZiB0aGUgU0hBIGNoZWNrc3VtIGNoYW5nZXMsIHRoZSBjYWNoZSBiZWNvbWVzIGludmFsaWQuICovXG4gIHJlYWRvbmx5IGZpbGVzOiBzdHJpbmdbXTtcbiAgLyoqIEFkZHMgYSBjdXN0b20gcHJlZml4IHRvIHRoZSBjaGVja3N1bXMgY29tcHV0ZWQuICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmUgdGhlIHVwbG9hZCBhbmQgZG93bmxvYWQgYmVoYXZpb3VyIG9mIGEgY2FjaGUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2NhY2hlcG9saWN5XG4gKi9cbmV4cG9ydCBlbnVtIENhY2hlUG9saWN5IHtcbiAgLyoqIE9ubHkgZG93bmxvYWQgdGhlIGNhY2hlIHdoZW4gdGhlIGpvYiBzdGFydHMsIGJ1dCBuZXZlciB1cGxvYWQgY2hhbmdlcyB3aGVuIHRoZSBqb2IgZmluaXNoZXMuICovXG4gIFBVTEwgPSBcInB1bGxcIixcbiAgLyoqIE9ubHkgdXBsb2FkIGEgY2FjaGUgd2hlbiB0aGUgam9iIGZpbmlzaGVzLCBidXQgbmV2ZXIgZG93bmxvYWQgdGhlIGNhY2hlIHdoZW4gdGhlIGpvYiBzdGFydHMuICovXG4gIFBVU0ggPSBcInB1c2hcIixcbiAgLyoqIFRoZSBqb2IgZG93bmxvYWRzIHRoZSBjYWNoZSB3aGVuIHRoZSBqb2Igc3RhcnRzLCBhbmQgdXBsb2FkcyBjaGFuZ2VzIHRvIHRoZSBjYWNoZSB3aGVuIHRoZSBqb2IgZW5kcy4gKi9cbiAgUFVMTF9QVVNIID0gXCJwdWxsLXB1c2hcIixcbn1cblxuLyoqXG4gKiBDb25maWd1cmUgd2hlbiBhcnRpZmFjdHMgYXJlIHVwbG9hZGVkIGRlcGVuZGVkIG9uIGpvYiBzdGF0dXMuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2NhY2hld2hlblxuICovXG5leHBvcnQgZW51bSBDYWNoZVdoZW4ge1xuICAvKiogVXBsb2FkIGFydGlmYWN0cyByZWdhcmRsZXNzIG9mIGpvYiBzdGF0dXMuICovXG4gIEFMV0FZUyA9IFwiYWx3YXlzXCIsXG4gIC8qKiBVcGxvYWQgYXJ0aWZhY3RzIG9ubHkgd2hlbiB0aGUgam9iIGZhaWxzLiAqL1xuICBPTl9GQUlMVVJFID0gXCJvbl9mYWlsdXJlXCIsXG4gIC8qKiBVcGxvYWQgYXJ0aWZhY3RzIG9ubHkgd2hlbiB0aGUgam9iIHN1Y2NlZWRzICh0aGlzIGlzIHRoZSBkZWZhdWx0KS4gKi9cbiAgT05fU1VDQ0VTUyA9IFwib25fc3VjY2Vzc1wiLFxufVxuXG4vKipcbiAqIERlZmF1bHQgc2V0dGluZ3MgZm9yIHRoZSBDSSBDb25maWd1cmF0aW9uLiBKb2JzIHRoYXQgZG8gbm90IGRlZmluZSBvbmUgb3IgbW9yZSBvZiB0aGUgbGlzdGVkIGtleXdvcmRzIHVzZSB0aGUgdmFsdWUgZGVmaW5lZCBpbiB0aGUgZGVmYXVsdCBzZWN0aW9uLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNkZWZhdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdCB7XG4gIC8qIERlZmluZXMgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmFmdGVyKiBhbGwgam9icy4gQ2FuIGJlIG92ZXJyaWRlbiBieSB0aGUgam9iIGxldmVsIGBhZnRlclNjcmlwdC4gKi9cbiAgcmVhZG9ubHkgYWZ0ZXJTY3JpcHQ/OiBzdHJpbmdbXTtcbiAgLyogTGlzdCBvZiBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhhdCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIGpvYiBpZiBpdCBzdWNjZWVkcy4gQXJ0aWZhY3RzIGFyZSBzZW50IHRvIEdpdGxhYiB3aGVyZSB0aGV5IGNhbiBiZSBkb3dubG9hZGVkLiAqL1xuICByZWFkb25seSBhcnRpZmFjdHM/OiBBcnRpZmFjdHM7XG4gIC8qIERlZmluZXMgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmJlZm9yZSogYWxsIGpvYnMuIENhbiBiZSBvdmVycmlkZW4gYnkgdGhlIGpvYiBsZXZlbCBgYWZ0ZXJTY3JpcHRgLiAqL1xuICByZWFkb25seSBiZWZvcmVTY3JpcHQ/OiBzdHJpbmdbXTtcbiAgLyogQSBsaXN0IG9mIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0byBjYWNoZSBiZXR3ZWVuIGpvYnMuIFlvdSBjYW4gb25seSB1c2UgcGF0aHMgdGhhdCBhcmUgaW4gdGhlIGxvY2FsIHdvcmtpbmcgY29weS4gKi9cbiAgcmVhZG9ubHkgY2FjaGU/OiBDYWNoZTtcbiAgLyogU3BlY2lmaWVzIHRoZSBkZWZhdWx0IGRvY2tlciBpbWFnZSB0byB1c2UgZ2xvYmFsbHkgZm9yIGFsbCBqb2JzLiAqL1xuICByZWFkb25seSBpbWFnZT86IEltYWdlO1xuICAvKiBJZiBhIGpvYiBzaG91bGQgYmUgY2FuY2VsZWQgd2hlbiBhIG5ld2VyIHBpcGVsaW5lIHN0YXJ0cyBiZWZvcmUgdGhlIGpvYiBjb21wbGV0ZXMgKERlZmF1bHQ6IGZhbHNlKS4qL1xuICByZWFkb25seSBpbnRlcnJ1cHRpYmxlPzogYm9vbGVhbjtcbiAgLyogSG93IG1hbnkgdGltZXMgYSBqb2IgaXMgcmV0cmllZCBpZiBpdCBmYWlscy4gSWYgbm90IGRlZmluZWQsIGRlZmF1bHRzIHRvIDAgYW5kIGpvYnMgZG8gbm90IHJldHJ5LiAqL1xuICByZWFkb25seSByZXRyeT86IFJldHJ5O1xuICAvKiBBZGRpdGlvbmFsIERvY2tlciBpbWFnZXMgdG8gcnVuIHNjcmlwdHMgaW4uIFRoZSBzZXJ2aWNlIGltYWdlIGlzIGxpbmtlZCB0byB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGluIHRoZSAgaW1hZ2UgcGFyYW1ldGVyLiAqL1xuICByZWFkb25seSBzZXJ2aWNlcz86IFNlcnZpY2VbXTtcbiAgLyogVXNlZCB0byBzZWxlY3QgYSBzcGVjaWZpYyBydW5uZXIgZnJvbSB0aGUgbGlzdCBvZiBhbGwgcnVubmVycyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoZSBwcm9qZWN0LiAqL1xuICByZWFkb25seSB0YWdzPzogc3RyaW5nW107XG4gIC8qIEEgZGVmYXVsdCB0aW1lb3V0IGpvYiB3cml0dGVuIGluIG5hdHVyYWwgbGFuZ3VhZ2UgKEV4LiBvbmUgaG91ciwgMzYwMCBzZWNvbmRzLCA2MCBtaW51dGVzKS4gKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBVc2VkIHRvIHNwZWNpZnkgYSBsaXN0IG9mIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0aGF0IHNob3VsZCBiZSBhdHRhY2hlZCB0byB0aGUgam9iIGlmIGl0XG4gKiBzdWNjZWVkcy4gQXJ0aWZhY3RzIGFyZSBzZW50IHRvIEdpdGxhYiB3aGVyZSB0aGV5IGNhbiBiZSBkb3dubG9hZGVkLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNhcnRpZmFjdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpZmFjdHMge1xuICAvKiogQSBsaXN0IG9mIHBhdGhzIHRvIGZpbGVzL2ZvbGRlcnMgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgaW4gdGhlIGFydGlmYWN0LiAqL1xuICByZWFkb25seSBleGNsdWRlPzogc3RyaW5nW107XG4gIC8qKiBIb3cgbG9uZyBhcnRpZmFjdHMgc2hvdWxkIGJlIGtlcHQuIFRoZXkgYXJlIHNhdmVkIDMwIGRheXMgYnkgZGVmYXVsdC4gQXJ0aWZhY3RzIHRoYXQgaGF2ZSBleHBpcmVkIGFyZSByZW1vdmVkIHBlcmlvZGljYWxseSB2aWEgY3JvbiBqb2IuIFN1cHBvcnRzIGEgd2lkZSB2YXJpZXR5IG9mIGZvcm1hdHMsIGUuZy4gJzEgd2VlaycsICczIG1pbnMgNCBzZWMnLCAnMiBocnMgMjAgbWluJywgJzJoMjBtaW4nLCAnNiBtb3MgMSBkYXknLCAnNDcgeXJzIDYgbW9zIGFuZCA0ZCcsICczIHdlZWtzIGFuZCAyIGRheXMnLiAqL1xuICByZWFkb25seSBleHBpcmVJbj86IHN0cmluZztcbiAgLyoqIENhbiBiZSB1c2VkIHRvIGV4cG9zZSBqb2IgYXJ0aWZhY3RzIGluIHRoZSBtZXJnZSByZXF1ZXN0IFVJLiBHaXRMYWIgd2lsbCBhZGQgYSBsaW5rIDxleHBvc2VfYXM+IHRvIHRoZSByZWxldmFudCBtZXJnZSByZXF1ZXN0IHRoYXQgcG9pbnRzIHRvIHRoZSBhcnRpZmFjdC4gKi9cbiAgcmVhZG9ubHkgZXhwb3NlQXM/OiBzdHJpbmc7XG4gIC8qKiBOYW1lIGZvciB0aGUgYXJjaGl2ZSBjcmVhdGVkIG9uIGpvYiBzdWNjZXNzLiBDYW4gdXNlIHZhcmlhYmxlcyBpbiB0aGUgbmFtZSwgZS5nLiAnJENJX0pPQl9OQU1FJyAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICAvKiogQSBsaXN0IG9mIHBhdGhzIHRvIGZpbGVzL2ZvbGRlcnMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIGFydGlmYWN0LiAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdO1xuICAvKiogUmVwb3J0cyB3aWxsIGJlIHVwbG9hZGVkIGFzIGFydGlmYWN0cywgYW5kIG9mdGVuIGRpc3BsYXllZCBpbiB0aGUgR2l0bGFiIFVJLCBzdWNoIGFzIGluIE1lcmdlIFJlcXVlc3RzLiovXG4gIHJlYWRvbmx5IHJlcG9ydHM/OiBSZXBvcnRzO1xuICAvKiogV2hldGhlciB0byBhZGQgYWxsIHVudHJhY2tlZCBmaWxlcyAoYWxvbmcgd2l0aCAnYXJ0aWZhY3RzLnBhdGhzJykgdG8gdGhlIGFydGlmYWN0LiovXG4gIHJlYWRvbmx5IHVudHJhY2tlZD86IGJvb2xlYW47XG4gIC8qKiBDb25maWd1cmUgd2hlbiBhcnRpZmFjdHMgYXJlIHVwbG9hZGVkIGRlcGVuZGVkIG9uIGpvYiBzdGF0dXMuKi9cbiAgcmVhZG9ubHkgd2hlbj86IENhY2hlV2hlbjtcbn1cblxuLyoqXG4gKiBDb2RlIGNvdmVyYWdlIHJlcG9ydCBpbnRlcmZhY2VcbiAqIEBsaW5rIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvYXJ0aWZhY3RzX3JlcG9ydHMuaHRtbCNhcnRpZmFjdHNyZXBvcnRzY292ZXJhZ2VfcmVwb3J0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ292ZXJhZ2VSZXBvcnQge1xuICByZWFkb25seSBjb3ZlcmFnZUZvcm1hdDogc3RyaW5nO1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwb3J0cyB3aWxsIGJlIHVwbG9hZGVkIGFzIGFydGlmYWN0cywgYW5kIG9mdGVuIGRpc3BsYXllZCBpbiB0aGUgR2l0bGFiIFVJLCBzdWNoIGFzIGluXG4gKiBNZXJnZSBSZXF1ZXN0cy5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jYXJ0aWZhY3RzcmVwb3J0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydHMge1xuICAvKiogUGF0aCBmb3IgZmlsZShzKSB0aGF0IHNob3VsZCBiZSBwYXJzZWQgYXMgQ29iZXJ0dXJhIFhNTCBjb3ZlcmFnZSByZXBvcnRcbiAgICogQGRlcHJlY2F0ZWQgcGVyIHtAbGluayBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS91cGRhdGUvZGVwcmVjYXRpb25zLmh0bWwjYXJ0aWZhY3RzcmVwb3J0c2NvYmVydHVyYS1rZXl3b3JkfSB1c2Uge0BsaW5rIGNvdmVyYWdlUmVwb3J0fSBpbnN0ZWFkXG4gICAqL1xuICByZWFkb25seSBjb2JlcnR1cmE/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggY29kZSBxdWFsaXR5IHJlcG9ydChzKSAoc3VjaCBhcyBDb2RlIENsaW1hdGUpLiovXG4gIHJlYWRvbmx5IGNvZGVxdWFsaXR5Pzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIENvbnRhaW5lciBzY2FubmluZyB2dWxuZXJhYmlsaXRpZXMgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IGNvbnRhaW5lclNjYW5uaW5nPzogc3RyaW5nW107XG4gIC8qKiBDb2RlIGNvdmVyYWdlIHJlcG9ydCBpbmZvcm1hdGlvbiAqL1xuICByZWFkb25seSBjb3ZlcmFnZVJlcG9ydD86IENvdmVyYWdlUmVwb3J0O1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBEQVNUIHZ1bG5lcmFiaWxpdGllcyByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgZGFzdD86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBEZXBlbmRlbmN5IHNjYW5uaW5nIHZ1bG5lcmFiaWxpdGllcyByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgZGVwZW5kZW5jeVNjYW5uaW5nPzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyBjb250YWluaW5nIHJ1bnRpbWUtY3JlYXRlZCB2YXJpYWJsZXMgZm9yIHRoaXMgam9iLiovXG4gIHJlYWRvbmx5IGRvdGVudj86IHN0cmluZ1tdO1xuICAvKiogUGF0aCBmb3IgZmlsZShzKSB0aGF0IHNob3VsZCBiZSBwYXJzZWQgYXMgSlVuaXQgWE1MIHJlc3VsdCovXG4gIHJlYWRvbmx5IGp1bml0Pzogc3RyaW5nW107XG4gIC8qKiBEZXByZWNhdGVkIGluIDEyLjg6IFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggbGljZW5zZSByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgbGljZW5zZU1hbmFnZW1lbnQ/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggbGljZW5zZSByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgbGljZW5zZVNjYW5uaW5nPzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyBjb250YWluaW5nIGNvZGUgaW50ZWxsaWdlbmNlIChMYW5ndWFnZSBTZXJ2ZXIgSW5kZXggRm9ybWF0KS4qL1xuICByZWFkb25seSBsc2lmPzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIGN1c3RvbSBtZXRyaWNzIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBtZXRyaWNzPzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIHBlcmZvcm1hbmNlIG1ldHJpY3MgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IHBlcmZvcm1hbmNlPzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIHJlcXVpcmVtZW50cyByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgcmVxdWlyZW1lbnRzPzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIFNBU1QgdnVsbmVyYWJpbGl0aWVzIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBzYXN0Pzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIHNlY3JldCBkZXRlY3Rpb24gcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IHNlY3JldERldGVjdGlvbj86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCB0ZXJyYWZvcm0gcGxhbihzKS4qL1xuICByZWFkb25seSB0ZXJyYWZvcm0/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRvY2tlciBpbWFnZSB0byB1c2UgZm9yIHRoZSBqb2Igb3IgZ2xvYmFsbHkgZm9yIGFsbCBqb2JzLiBKb2IgY29uZmlndXJhdGlvblxuICogdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGdsb2JhbCBzZXR0aW5nLiBSZXF1aXJlcyBhIGNlcnRhaW4ga2luZCBvZiBHaXRsYWIgcnVubmVyIGV4ZWN1dG9yLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNpbWFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlIHtcbiAgLyoqIENvbW1hbmQgb3Igc2NyaXB0IHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIGFzIHRoZSBjb250YWluZXIncyBlbnRyeXBvaW50LiBJdCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gRG9ja2VyJ3MgLS1lbnRyeXBvaW50IG9wdGlvbiB3aGlsZSBjcmVhdGluZyB0aGUgY29udGFpbmVyLiBUaGUgc3ludGF4IGlzIHNpbWlsYXIgdG8gRG9ja2VyZmlsZSdzIEVOVFJZUE9JTlQgZGlyZWN0aXZlLCB3aGVyZSBlYWNoIHNoZWxsIHRva2VuIGlzIGEgc2VwYXJhdGUgc3RyaW5nIGluIHRoZSBhcnJheS4qL1xuICByZWFkb25seSBlbnRyeXBvaW50PzogYW55W107XG4gIC8qKiBGdWxsIG5hbWUgb2YgdGhlIGltYWdlIHRoYXQgc2hvdWxkIGJlIHVzZWQuIEl0IHNob3VsZCBjb250YWluIHRoZSBSZWdpc3RyeSBwYXJ0IGlmIG5lZWRlZC4qL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSG93IG1hbnkgdGltZXMgYSBqb2IgaXMgcmV0cmllZCBpZiBpdCBmYWlscy4gSWYgbm90IGRlZmluZWQsIGRlZmF1bHRzIHRvIDAgYW5kIGpvYnMgZG8gbm90IHJldHJ5LlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNyZXRyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5IHtcbiAgLyoqIDAgKGRlZmF1bHQpLCAxLCBvciAyLiovXG4gIHJlYWRvbmx5IG1heD86IG51bWJlcjtcbiAgLyoqIEVpdGhlciBhIHNpbmdsZSBvciBhcnJheSBvZiBlcnJvciB0eXBlcyB0byB0cmlnZ2VyIGpvYiByZXRyeS4qL1xuICByZWFkb25seSB3aGVuPzogYW55O1xufVxuXG4vKipcbiAqIFVzZWQgdG8gc3BlY2lmeSBhbiBhZGRpdGlvbmFsIERvY2tlciBpbWFnZSB0byBydW4gc2NyaXB0cyBpbi4gVGhlIHNlcnZpY2UgaW1hZ2UgaXMgbGlua2VkIHRvIHRoZSBpbWFnZSBzcGVjaWZpZWQgaW4gdGhlIEBEZWZhdWx0IGltYWdlIGtleXdvcmQuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3NlcnZpY2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZSB7XG4gIC8qKiBBZGRpdGlvbmFsIGFsaWFzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSBzZXJ2aWNlIGZyb20gdGhlIGpvYidzIGNvbnRhaW5lci4gUmVhZCBBY2Nlc3NpbmcgdGhlIHNlcnZpY2VzIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4gIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuICAvKiogQ29tbWFuZCBvciBzY3JpcHQgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyB0aGUgY29udGFpbmVyJ3MgY29tbWFuZC4gSXQgd2lsbCBiZSB0cmFuc2xhdGVkIHRvIGFyZ3VtZW50cyBwYXNzZWQgdG8gRG9ja2VyIGFmdGVyIHRoZSBpbWFnZSdzIG5hbWUuIFRoZSBzeW50YXggaXMgc2ltaWxhciB0byBEb2NrZXJmaWxlJ3MgQ01EIGRpcmVjdGl2ZSwgd2hlcmUgZWFjaCBzaGVsbCB0b2tlbiBpcyBhIHNlcGFyYXRlIHN0cmluZyBpbiB0aGUgYXJyYXkuKi9cbiAgcmVhZG9ubHkgY29tbWFuZD86IHN0cmluZ1tdO1xuICAvKiogQ29tbWFuZCBvciBzY3JpcHQgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgYXMgdGhlIGNvbnRhaW5lcidzIGVudHJ5cG9pbnQuIEl0IHdpbGwgYmUgdHJhbnNsYXRlZCB0byBEb2NrZXIncyAtLWVudHJ5cG9pbnQgb3B0aW9uIHdoaWxlIGNyZWF0aW5nIHRoZSBjb250YWluZXIuIFRoZSBzeW50YXggaXMgc2ltaWxhciB0byBEb2NrZXJmaWxlJ3MgRU5UUllQT0lOVCBkaXJlY3RpdmUsIHdoZXJlIGVhY2ggc2hlbGwgdG9rZW4gaXMgYSBzZXBhcmF0ZSBzdHJpbmcgaW4gdGhlIGFycmF5LiovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ/OiBzdHJpbmdbXTtcbiAgLyoqIEZ1bGwgbmFtZSBvZiB0aGUgaW1hZ2UgdGhhdCBzaG91bGQgYmUgdXNlZC4gSXQgc2hvdWxkIGNvbnRhaW4gdGhlIFJlZ2lzdHJ5IHBhcnQgaWYgbmVlZGVkLiovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiBpbmNsdWRlZCBZQU1MIGZpbGUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2luY2x1ZGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNsdWRlIHtcbiAgLyoqIFJlbGF0aXZlIHBhdGggZnJvbSBsb2NhbCByZXBvc2l0b3J5IHJvb3QgKGAvYCkgdG8gdGhlIGB5YW1sYC9geW1sYCBmaWxlIHRlbXBsYXRlLiBUaGUgZmlsZSBtdXN0IGJlIG9uIHRoZSBzYW1lIGJyYW5jaCwgYW5kIGRvZXMgbm90IHdvcmsgYWNyb3NzIGdpdCBzdWJtb2R1bGVzLiovXG4gIHJlYWRvbmx5IGxvY2FsPzogc3RyaW5nO1xuICAvKipSdWxlcyBhbGxvd3MgZm9yIGFuIGFycmF5IG9mIGluZGl2aWR1YWwgcnVsZSBvYmplY3RzIHRvIGJlIGV2YWx1YXRlZCBpbiBvcmRlciwgdW50aWwgb25lIG1hdGNoZXMgYW5kIGR5bmFtaWNhbGx5IHByb3ZpZGVzIGF0dHJpYnV0ZXMgdG8gdGhlIGpvYi4gKi9cbiAgcmVhZG9ubHkgcnVsZXM/OiBJbmNsdWRlUnVsZVtdO1xuICAvKiogRmlsZXMgZnJvbSBhbm90aGVyIHByaXZhdGUgcHJvamVjdCBvbiB0aGUgc2FtZSBHaXRMYWIgaW5zdGFuY2UuIFlvdSBjYW4gdXNlIGBmaWxlYCBpbiBjb21iaW5hdGlvbiB3aXRoIGBwcm9qZWN0YCBvbmx5LiAqL1xuICByZWFkb25seSBmaWxlPzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIHRoZSBwcm9qZWN0LCBlLmcuIGBncm91cC9wcm9qZWN0YCwgb3IgYGdyb3VwL3N1Yi1ncm91cC9wcm9qZWN0YC4qL1xuICByZWFkb25seSBwcm9qZWN0Pzogc3RyaW5nO1xuICAvKiogQnJhbmNoL1RhZy9Db21taXQtaGFzaCBmb3IgdGhlIHRhcmdldCBwcm9qZWN0LiovXG4gIHJlYWRvbmx5IHJlZj86IHN0cmluZztcbiAgLyoqIFVzZSBhIGAuZ2l0bGFiLWNpLnltbGAgdGVtcGxhdGUgYXMgYSBiYXNlLCBlLmcuIGBOb2RlanMuZ2l0bGFiLWNpLnltbGAuKi9cbiAgcmVhZG9ubHkgdGVtcGxhdGU/OiBzdHJpbmc7XG4gIC8qKiBVUkwgdG8gYSBgeWFtbGAvYHltbGAgdGVtcGxhdGUgZmlsZSB1c2luZyBIVFRQL0hUVFBTLiovXG4gIHJlYWRvbmx5IHJlbW90ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSdWxlcyBhbGxvd3MgZm9yIGFuIGFycmF5IG9mIGluZGl2aWR1YWwgcnVsZSBvYmplY3RzIHRvIGJlIGV2YWx1YXRlZCBpbiBvcmRlciwgdW50aWwgb25lXG4gKiBtYXRjaGVzIGFuZCBkeW5hbWljYWxseSBwcm92aWRlcyBhdHRyaWJ1dGVzIHRvIHRoZSBqb2IuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvaW5jbHVkZXMuaHRtbCN1c2UtcnVsZXMtd2l0aC1pbmNsdWRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jbHVkZVJ1bGUge1xuICAvKiBXaGV0aGVyIGEgcGlwZWxpbmUgc2hvdWxkIGNvbnRpbnVlIHJ1bm5pbmcgd2hlbiBhIGpvYiBmYWlscy4gKi9cbiAgcmVhZG9ubHkgYWxsb3dGYWlsdXJlPzogYm9vbGVhbiB8IEFsbG93RmFpbHVyZTtcbiAgLyogU3BlY2lmeSB3aGVuIHRvIGFkZCBhIGpvYiB0byBhIHBpcGVsaW5lIGJ5IGNoZWNraW5nIGZvciBjaGFuZ2VzIHRvIHNwZWNpZmljIGZpbGVzLiAqL1xuICByZWFkb25seSBjaGFuZ2VzPzogc3RyaW5nW107XG4gIC8qIFJ1biBhIGpvYiB3aGVuIGNlcnRhaW4gZmlsZXMgZXhpc3QgaW4gdGhlIHJlcG9zaXRvcnkuICovXG4gIHJlYWRvbmx5IGV4aXN0cz86IHN0cmluZ1tdO1xuICAvKiBDbGF1c2VzIHRvIHNwZWNpZnkgd2hlbiB0byBhZGQgYSBqb2IgdG8gYSBwaXBlbGluZS4qL1xuICByZWFkb25seSBpZj86IHN0cmluZztcbiAgLyogRXhlY3V0ZSBzY3JpcHRzIGFmdGVyIGEgd2FpdGluZyBwZXJpb2Qgd3JpdHRlbiBpbiBuYXR1cmFsIGxhbmd1YWdlIChFeC4gb25lIGhvdXIsIDM2MDAgc2Vjb25kcywgNjAgbWludXRlcykuICovXG4gIHJlYWRvbmx5IHN0YXJ0SW4/OiBzdHJpbmc7XG4gIC8qIFVzZSB2YXJpYWJsZXMgaW4gcnVsZXMgdG8gZGVmaW5lIHZhcmlhYmxlcyBmb3Igc3BlY2lmaWMgY29uZGl0aW9ucy4gKi9cbiAgcmVhZG9ubHkgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nPjtcbiAgLyogQ29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnICovXG4gIHJlYWRvbmx5IHdoZW4/OiBKb2JXaGVuO1xufVxuXG4vKipcbiAqIEV4aXQgY29kZSB0aGF0IGFyZSBub3QgY29uc2lkZXJlZCBmYWlsdXJlLiBUaGUgam9iIGZhaWxzIGZvciBhbnkgb3RoZXIgZXhpdCBjb2RlLlxuICogWW91IGNhbiBsaXN0IHdoaWNoIGV4aXQgY29kZXMgYXJlIG5vdCBjb25zaWRlcmVkIGZhaWx1cmVzLiBUaGUgam9iIGZhaWxzIGZvciBhbnkgb3RoZXJcbiAqIGV4aXQgY29kZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jYWxsb3dfZmFpbHVyZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFsbG93RmFpbHVyZSB7XG4gIHJlYWRvbmx5IGV4aXRDb2RlczogbnVtYmVyW10gfCBudW1iZXI7XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIHRoZSBjb25kaXRpb25zIGZvciB3aGVuIHRvIHJ1biB0aGUgam9iLiBEZWZhdWx0cyB0byAnb25fc3VjY2VzcycuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3doZW5cbiAqL1xuZXhwb3J0IGVudW0gSm9iV2hlbiB7XG4gIEFMV0FZUyA9IFwiYWx3YXlzXCIsXG4gIERFTEFZRUQgPSBcImRlbGF5ZWRcIixcbiAgTUFOVUFMID0gXCJtYW51YWxcIixcbiAgTkVWRVIgPSBcIm5ldmVyXCIsXG4gIE9OX0ZBSUxVUkUgPSBcIm9uX2ZhaWx1cmVcIixcbiAgT05fU1VDQ0VTUyA9IFwib25fc3VjY2Vzc1wiLFxufVxuXG4vKipcbiAqIEpvYnMgYXJlIHRoZSBtb3N0IGZ1bmRhbWVudGFsIGVsZW1lbnQgb2YgYSAuZ2l0bGFiLWNpLnltbCBmaWxlLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS9qb2JzL1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYiB7XG4gIC8qIERlZmluZXMgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmFmdGVyKiB0aGUgam9iLiAqL1xuICByZWFkb25seSBhZnRlclNjcmlwdD86IHN0cmluZ1tdO1xuICAvKiogV2hldGhlciB0byBhbGxvdyB0aGUgcGlwZWxpbmUgdG8gY29udGludWUgcnVubmluZyBvbiBqb2IgZmFpbHVyZSAoRGVmYXVsdDogZmFsc2UpLiAqL1xuICByZWFkb25seSBhbGxvd0ZhaWx1cmU/OiBib29sZWFuIHwgQWxsb3dGYWlsdXJlO1xuICAvKiBBIGxpc3Qgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRoYXQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIHRoZSBqb2IgaWYgaXQgc3VjY2VlZHMuIEFydGlmYWN0cyBhcmUgc2VudCB0byBHaXRsYWIgd2hlcmUgdGhleSBjYW4gYmUgZG93bmxvYWRlZC4gKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RzPzogQXJ0aWZhY3RzO1xuICAvKiBEZWZpbmVzIHNjcmlwdHMgdGhhdCBzaG91bGQgcnVuICpiZWZvcmUqIHRoZSBqb2IuICovXG4gIHJlYWRvbmx5IGJlZm9yZVNjcmlwdD86IHN0cmluZ1tdO1xuICAvKiBBIGxpc3Qgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIGNhY2hlIGJldHdlZW4gam9icy4gWW91IGNhbiBvbmx5IHVzZSBwYXRocyB0aGF0IGFyZSBpbiB0aGUgbG9jYWwgd29ya2luZyBjb3B5LiAqL1xuICByZWFkb25seSBjYWNoZT86IENhY2hlO1xuICAvKiogTXVzdCBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3B0aW9uYWxseSBidXQgcmVjb21tZW5kZWQgdG8gYmUgcXVvdGVkLCBhbmQgbXVzdCBiZSBzdXJyb3VuZGVkIHdpdGggJy8nLiBFeGFtcGxlOiAnL0NvZGUgY292ZXJhZ2U6IFxcZCtcXC5cXGQrLycqL1xuICByZWFkb25seSBjb3ZlcmFnZT86IHN0cmluZztcbiAgLyoqIFNwZWNpZnkgYSBsaXN0IG9mIGpvYiBuYW1lcyBmcm9tIGVhcmxpZXIgc3RhZ2VzIGZyb20gd2hpY2ggYXJ0aWZhY3RzIHNob3VsZCBiZSBsb2FkZWQuIEJ5IGRlZmF1bHQsIGFsbCBwcmV2aW91cyBhcnRpZmFjdHMgYXJlIHBhc3NlZC4gVXNlIGFuIGVtcHR5IGFycmF5IHRvIHNraXAgZG93bmxvYWRpbmcgYXJ0aWZhY3RzLiovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llcz86IHN0cmluZ1tdO1xuICAvKiogVXNlZCB0byBhc3NvY2lhdGUgZW52aXJvbm1lbnQgbWV0YWRhdGEgd2l0aCBhIGRlcGxveS4gRW52aXJvbm1lbnQgY2FuIGhhdmUgYSBuYW1lIGFuZCBVUkwgYXR0YWNoZWQgdG8gaXQsIGFuZCB3aWxsIGJlIGRpc3BsYXllZCB1bmRlciAvZW52aXJvbm1lbnRzIHVuZGVyIHRoZSBwcm9qZWN0LiovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogRW52aXJvbm1lbnQgfCBzdHJpbmc7XG4gIC8qKiBKb2Igd2lsbCBydW4gKmV4Y2VwdCogZm9yIHdoZW4gdGhlc2UgZmlsdGVyaW5nIG9wdGlvbnMgbWF0Y2guKi9cbiAgcmVhZG9ubHkgZXhjZXB0Pzogc3RyaW5nW10gfCBGaWx0ZXI7XG4gIC8qKiBUaGUgbmFtZSBvZiBvbmUgb3IgbW9yZSBqb2JzIHRvIGluaGVyaXQgY29uZmlndXJhdGlvbiBmcm9tLiovXG4gIHJlYWRvbmx5IGV4dGVuZHM/OiBzdHJpbmdbXTtcbiAgLyogU3BlY2lmaWVzIHRoZSBkZWZhdWx0IGRvY2tlciBpbWFnZSB0byB1c2VkIGZvciB0aGUgam9iLiAqL1xuICByZWFkb25seSBpbWFnZT86IEltYWdlO1xuICAvKiogQ29udHJvbHMgaW5oZXJpdGFuY2Ugb2YgZ2xvYmFsbHktZGVmaW5lZCBkZWZhdWx0cyBhbmQgdmFyaWFibGVzLiBCb29sZWFuIHZhbHVlcyBjb250cm9sIGluaGVyaXRhbmNlIG9mIGFsbCBkZWZhdWx0OiBvciB2YXJpYWJsZXM6IGtleXdvcmRzLiBUbyBpbmhlcml0IG9ubHkgYSBzdWJzZXQgb2YgZGVmYXVsdDogb3IgdmFyaWFibGVzOiBrZXl3b3Jkcywgc3BlY2lmeSB3aGF0IHlvdSB3aXNoIHRvIGluaGVyaXQuIEFueXRoaW5nIG5vdCBsaXN0ZWQgaXMgbm90IGluaGVyaXRlZC4qL1xuICByZWFkb25seSBpbmhlcml0PzogSW5oZXJpdDtcbiAgLyogSWYgYSBqb2Igc2hvdWxkIGJlIGNhbmNlbGVkIHdoZW4gYSBuZXdlciBwaXBlbGluZSBzdGFydHMgYmVmb3JlIHRoZSBqb2IgY29tcGxldGVzIChEZWZhdWx0OiBmYWxzZSkuKi9cbiAgcmVhZG9ubHkgaW50ZXJydXB0aWJsZT86IGJvb2xlYW47XG4gIC8qKiBUaGUgbGlzdCBvZiBqb2JzIGluIHByZXZpb3VzIHN0YWdlcyB3aG9zZSBzb2xlIGNvbXBsZXRpb24gaXMgbmVlZGVkIHRvIHN0YXJ0IHRoZSBjdXJyZW50IGpvYi4qL1xuICByZWFkb25seSBuZWVkcz86IEFycmF5PE5lZWQgfCBzdHJpbmc+O1xuICAvKiogSm9iIHdpbGwgcnVuICpvbmx5KiB3aGVuIHRoZXNlIGZpbHRlcmluZyBvcHRpb25zIG1hdGNoLiovXG4gIHJlYWRvbmx5IG9ubHk/OiBzdHJpbmdbXSB8IEZpbHRlcjtcbiAgLyoqIFBhcmFsbGVsIHdpbGwgc3BsaXQgdXAgYSBzaW5nbGUgam9iIGludG8gc2V2ZXJhbCwgYW5kIHByb3ZpZGUgYENJX05PREVfSU5ERVhgIGFuZCBgQ0lfTk9ERV9UT1RBTGAgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgcnVubmluZyBqb2JzLiovXG4gIHJlYWRvbmx5IHBhcmFsbGVsPzogUGFyYWxsZWwgfCBudW1iZXI7XG4gIC8qKiBJbmRpY2F0ZXMgdGhhdCB0aGUgam9iIGNyZWF0ZXMgYSBSZWxlYXNlLiovXG4gIHJlYWRvbmx5IHJlbGVhc2U/OiBSZWxlYXNlO1xuICAvKiogTGltaXQgam9iIGNvbmN1cnJlbmN5LiBDYW4gYmUgdXNlZCB0byBlbnN1cmUgdGhhdCB0aGUgUnVubmVyIHdpbGwgbm90IHJ1biBjZXJ0YWluIGpvYnMgc2ltdWx0YW5lb3VzbHkuKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cD86IHN0cmluZztcbiAgLyogSG93IG1hbnkgdGltZXMgYSBqb2IgaXMgcmV0cmllZCBpZiBpdCBmYWlscy4gSWYgbm90IGRlZmluZWQsIGRlZmF1bHRzIHRvIDAgYW5kIGpvYnMgZG8gbm90IHJldHJ5LiAqL1xuICByZWFkb25seSByZXRyeT86IFJldHJ5O1xuICAvKipSdWxlcyBhbGxvd3MgZm9yIGFuIGFycmF5IG9mIGluZGl2aWR1YWwgcnVsZSBvYmplY3RzIHRvIGJlIGV2YWx1YXRlZCBpbiBvcmRlciwgdW50aWwgb25lIG1hdGNoZXMgYW5kIGR5bmFtaWNhbGx5IHByb3ZpZGVzIGF0dHJpYnV0ZXMgdG8gdGhlIGpvYi4gKi9cbiAgcmVhZG9ubHkgcnVsZXM/OiBJbmNsdWRlUnVsZVtdO1xuICAvKiogU2hlbGwgc2NyaXB0cyBleGVjdXRlZCBieSB0aGUgUnVubmVyLiBUaGUgb25seSByZXF1aXJlZCBwcm9wZXJ0eSBvZiBqb2JzLiBCZSBjYXJlZnVsIHdpdGggc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuIGA6YCwgYHtgLCBgfWAsIGAmYCkgYW5kIHVzZSBzaW5nbGUgb3IgZG91YmxlIHF1b3RlcyB0byBhdm9pZCBpc3N1ZXMuKi9cbiAgcmVhZG9ubHkgc2NyaXB0Pzogc3RyaW5nW107XG4gIC8qKiBDSS9DRCBzZWNyZXRzICovXG4gIHJlYWRvbmx5IHNlY3JldHM/OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBTZWNyZXQ+PjtcbiAgLyogQWRkaXRpb25hbCBEb2NrZXIgaW1hZ2VzIHRvIHJ1biBzY3JpcHRzIGluLiBUaGUgc2VydmljZSBpbWFnZSBpcyBsaW5rZWQgdG8gdGhlIGltYWdlIHNwZWNpZmllZCBpbiB0aGUgIGltYWdlIHBhcmFtZXRlci4gKi9cbiAgcmVhZG9ubHkgc2VydmljZXM/OiBTZXJ2aWNlW107XG4gIC8qKiBEZWZpbmUgd2hhdCBzdGFnZSB0aGUgam9iIHdpbGwgcnVuIGluLiovXG4gIHJlYWRvbmx5IHN0YWdlPzogc3RyaW5nO1xuICAvKiBFeGVjdXRlIHNjcmlwdHMgYWZ0ZXIgYSB3YWl0aW5nIHBlcmlvZCB3cml0dGVuIGluIG5hdHVyYWwgbGFuZ3VhZ2UgKEV4LiBvbmUgaG91ciwgMzYwMCBzZWNvbmRzLCA2MCBtaW51dGVzKS4gKi9cbiAgcmVhZG9ubHkgc3RhcnRJbj86IHN0cmluZztcbiAgLyogVXNlZCB0byBzZWxlY3QgYSBzcGVjaWZpYyBydW5uZXIgZnJvbSB0aGUgbGlzdCBvZiBhbGwgcnVubmVycyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoZSBwcm9qZWN0LiAqL1xuICByZWFkb25seSB0YWdzPzogc3RyaW5nW107XG4gIC8qIEEgZGVmYXVsdCB0aW1lb3V0IGpvYiB3cml0dGVuIGluIG5hdHVyYWwgbGFuZ3VhZ2UgKEV4LiBvbmUgaG91ciwgMzYwMCBzZWNvbmRzLCA2MCBtaW51dGVzKS4gKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IHN0cmluZztcbiAgLyoqIFRyaWdnZXIgYWxsb3dzIHlvdSB0byBkZWZpbmUgZG93bnN0cmVhbSBwaXBlbGluZSB0cmlnZ2VyLiBXaGVuIGEgam9iIGNyZWF0ZWQgZnJvbSB0cmlnZ2VyIGRlZmluaXRpb24gaXMgc3RhcnRlZCBieSBHaXRMYWIsIGEgZG93bnN0cmVhbSBwaXBlbGluZSBnZXRzIGNyZWF0ZWQuIFJlYWQgbW9yZTogaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC9SRUFETUUuaHRtbCN0cmlnZ2VyKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXIgfCBzdHJpbmc7XG4gIC8qKiBDb25maWd1cmFibGUgdmFsdWVzIHRoYXQgYXJlIHBhc3NlZCB0byB0aGUgSm9iLiAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+O1xuICAvKiogRGVzY3JpYmVzIHRoZSBjb25kaXRpb25zIGZvciB3aGVuIHRvIHJ1biB0aGUgam9iLiBEZWZhdWx0cyB0byAnb25fc3VjY2VzcycuICovXG4gIHJlYWRvbmx5IHdoZW4/OiBKb2JXaGVuO1xufVxuXG4vKipcbiAqIFRoZSBlbnZpcm9ubWVudCB0aGF0IGEgam9iIGRlcGxveXMgdG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQge1xuICAvKiogU3BlY2lmaWVzIHdoYXQgdGhpcyBqb2Igd2lsbCBkby4gJ3N0YXJ0JyAoZGVmYXVsdCkgaW5kaWNhdGVzIHRoZSBqb2Igd2lsbCBzdGFydCB0aGUgZGVwbG95bWVudC4gJ3ByZXBhcmUnIGluZGljYXRlcyB0aGlzIHdpbGwgbm90IGFmZmVjdCB0aGUgZGVwbG95bWVudC4gJ3N0b3AnIGluZGljYXRlcyB0aGlzIHdpbGwgc3RvcCB0aGUgZGVwbG95bWVudC4qL1xuICByZWFkb25seSBhY3Rpb24/OiBBY3Rpb247XG4gIC8qKiBUaGUgYW1vdW50IG9mIHRpbWUgaXQgc2hvdWxkIHRha2UgYmVmb3JlIEdpdGxhYiB3aWxsIGF1dG9tYXRpY2FsbHkgc3RvcCB0aGUgZW52aXJvbm1lbnQuIFN1cHBvcnRzIGEgd2lkZSB2YXJpZXR5IG9mIGZvcm1hdHMsIGUuZy4gJzEgd2VlaycsICczIG1pbnMgNCBzZWMnLCAnMiBocnMgMjAgbWluJywgJzJoMjBtaW4nLCAnNiBtb3MgMSBkYXknLCAnNDcgeXJzIDYgbW9zIGFuZCA0ZCcsICczIHdlZWtzIGFuZCAyIGRheXMnLiovXG4gIHJlYWRvbmx5IGF1dG9TdG9wSW4/OiBzdHJpbmc7XG4gIC8qKiBFeHBsaWNpdGx5IHNwZWNpZmllcyB0aGUgdGllciBvZiB0aGUgZGVwbG95bWVudCBlbnZpcm9ubWVudCBpZiBub24tc3RhbmRhcmQgZW52aXJvbm1lbnQgbmFtZSBpcyB1c2VkLiovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRUaWVyPzogRGVwbG95bWVudFRpZXI7XG4gIC8qKiBVc2VkIHRvIGNvbmZpZ3VyZSB0aGUga3ViZXJuZXRlcyBkZXBsb3ltZW50IGZvciB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGZvciBrdWJlcm5ldGVzIGNsdXN0ZXJzIHRoYXQgYXJlIG1hbmFnZWQgYnkgR2l0bGFiLiovXG4gIHJlYWRvbmx5IGt1YmVybmV0ZXM/OiBLdWJlcm5ldGVzQ29uZmlnO1xuICAvKiogVGhlIG5hbWUgb2YgdGhlIGVudmlyb25tZW50LCBlLmcuICdxYScsICdzdGFnaW5nJywgJ3Byb2R1Y3Rpb24nLiovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqIFRoZSBuYW1lIG9mIGEgam9iIHRvIGV4ZWN1dGUgd2hlbiB0aGUgZW52aXJvbm1lbnQgaXMgYWJvdXQgdG8gYmUgc3RvcHBlZC4qL1xuICByZWFkb25seSBvblN0b3A/OiBzdHJpbmc7XG4gIC8qKiBXaGVuIHNldCwgdGhpcyB3aWxsIGV4cG9zZSBidXR0b25zIGluIHZhcmlvdXMgcGxhY2VzIGZvciB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBpbiBHaXRsYWIsIHRoYXQgd2lsbCB0YWtlIHlvdSB0byB0aGUgZGVmaW5lZCBVUkwuKi9cbiAgcmVhZG9ubHkgdXJsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNwZWNpZmllcyB3aGF0IHRoaXMgam9iIHdpbGwgZG8uICdzdGFydCcgKGRlZmF1bHQpIGluZGljYXRlcyB0aGUgam9iIHdpbGwgc3RhcnQgdGhlXG4gKiBkZXBsb3ltZW50LiAncHJlcGFyZScgaW5kaWNhdGVzIHRoaXMgd2lsbCBub3QgYWZmZWN0IHRoZSBkZXBsb3ltZW50LiAnc3RvcCcgaW5kaWNhdGVzXG4gKiB0aGlzIHdpbGwgc3RvcCB0aGUgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGVudW0gQWN0aW9uIHtcbiAgUFJFUEFSRSA9IFwicHJlcGFyZVwiLFxuICBTVEFSVCA9IFwic3RhcnRcIixcbiAgU1RPUCA9IFwic3RvcFwiLFxufVxuXG4vKipcbiAqIEV4cGxpY2l0bHkgc3BlY2lmaWVzIHRoZSB0aWVyIG9mIHRoZSBkZXBsb3ltZW50IGVudmlyb25tZW50IGlmIG5vbi1zdGFuZGFyZCBlbnZpcm9ubWVudFxuICogbmFtZSBpcyB1c2VkLlxuICovXG5leHBvcnQgZW51bSBEZXBsb3ltZW50VGllciB7XG4gIERFVkVMT1BNRU5UID0gXCJkZXZlbG9wbWVudFwiLFxuICBPVEhFUiA9IFwib3RoZXJcIixcbiAgUFJPRFVDVElPTiA9IFwicHJvZHVjdGlvblwiLFxuICBTVEFHSU5HID0gXCJzdGFnaW5nXCIsXG4gIFRFU1RJTkcgPSBcInRlc3RpbmdcIixcbn1cblxuLyoqXG4gKiBVc2VkIHRvIGNvbmZpZ3VyZSB0aGUga3ViZXJuZXRlcyBkZXBsb3ltZW50IGZvciB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGN1cnJlbnRseSBub3RcbiAqIHN1cHBvcnRlZCBmb3Iga3ViZXJuZXRlcyBjbHVzdGVycyB0aGF0IGFyZSBtYW5hZ2VkIGJ5IEdpdGxhYi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLdWJlcm5ldGVzQ29uZmlnIHtcbiAgLyoqIFRoZSBrdWJlcm5ldGVzIG5hbWVzcGFjZSB3aGVyZSB0aGlzIGVudmlyb25tZW50IHNob3VsZCBiZSBkZXBsb3llZCB0by4qL1xuICByZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmlsdGVyaW5nIG9wdGlvbnMgZm9yIHdoZW4gYSBqb2Igd2lsbCBydW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyIHtcbiAgLyoqIEZpbHRlciBqb2IgY3JlYXRpb24gYmFzZWQgb24gZmlsZXMgdGhhdCB3ZXJlIG1vZGlmaWVkIGluIGEgZ2l0IHB1c2guKi9cbiAgcmVhZG9ubHkgY2hhbmdlcz86IHN0cmluZ1tdO1xuICAvKiogRmlsdGVyIGpvYiBiYXNlZCBvbiBpZiBLdWJlcm5ldGVzIGludGVncmF0aW9uIGlzIGFjdGl2ZS4qL1xuICByZWFkb25seSBrdWJlcm5ldGVzPzogS3ViZXJuZXRlc0VudW07XG4gIC8qKiBDb250cm9sIHdoZW4gdG8gYWRkIGpvYnMgdG8gYSBwaXBlbGluZSBiYXNlZCBvbiBicmFuY2ggbmFtZXMgb3IgcGlwZWxpbmUgdHlwZXMuICovXG4gIHJlYWRvbmx5IHJlZnM/OiBzdHJpbmdbXTtcbiAgLyoqIEZpbHRlciBqb2IgYnkgY2hlY2tpbmcgY29tcGFyaW5nIHZhbHVlcyBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFJlYWQgbW9yZSBhYm91dCB2YXJpYWJsZSBleHByZXNzaW9uczogaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kvdmFyaWFibGVzL1JFQURNRS5odG1sI3ZhcmlhYmxlcy1leHByZXNzaW9ucyovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEZpbHRlciBqb2IgYmFzZWQgb24gaWYgS3ViZXJuZXRlcyBpbnRlZ3JhdGlvbiBpcyBhY3RpdmUuXG4gKi9cbmV4cG9ydCBlbnVtIEt1YmVybmV0ZXNFbnVtIHtcbiAgQUNUSVZFID0gXCJhY3RpdmVcIixcbn1cblxuLyoqXG4gKiBDb250cm9scyBpbmhlcml0YW5jZSBvZiBnbG9iYWxseS1kZWZpbmVkIGRlZmF1bHRzIGFuZCB2YXJpYWJsZXMuIEJvb2xlYW4gdmFsdWVzIGNvbnRyb2xcbiAqIGluaGVyaXRhbmNlIG9mIGFsbCBkZWZhdWx0OiBvciB2YXJpYWJsZXM6IGtleXdvcmRzLiBUbyBpbmhlcml0IG9ubHkgYSBzdWJzZXQgb2YgZGVmYXVsdDpcbiAqIG9yIHZhcmlhYmxlczoga2V5d29yZHMsIHNwZWNpZnkgd2hhdCB5b3Ugd2lzaCB0byBpbmhlcml0LiBBbnl0aGluZyBub3QgbGlzdGVkIGlzIG5vdFxuICogaW5oZXJpdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluaGVyaXQge1xuICAvKiogV2hldGhlciB0byBpbmhlcml0IGFsbCBnbG9iYWxseS1kZWZpbmVkIGRlZmF1bHRzIG9yIG5vdC4gT3Igc3Vic2V0IG9mIGluaGVyaXRlZCBkZWZhdWx0cyovXG4gIHJlYWRvbmx5IGRlZmF1bHQ/OiBEZWZhdWx0RWxlbWVudFtdIHwgYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gaW5oZXJpdCBhbGwgZ2xvYmFsbHktZGVmaW5lZCB2YXJpYWJsZXMgb3Igbm90LiBPciBzdWJzZXQgb2YgaW5oZXJpdGVkIHZhcmlhYmxlcyovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IHN0cmluZ1tdIHwgYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gRGVmYXVsdEVsZW1lbnQge1xuICBBRlRFUl9TQ1JJUFQgPSBcImFmdGVyX3NjcmlwdFwiLFxuICBBUlRJRkFDVFMgPSBcImFydGlmYWN0c1wiLFxuICBCRUZPUkVfU0NSSVBUID0gXCJiZWZvcmVfc2NyaXB0XCIsXG4gIENBQ0hFID0gXCJjYWNoZVwiLFxuICBJTUFHRSA9IFwiaW1hZ2VcIixcbiAgSU5URVJSVVBUSUJMRSA9IFwiaW50ZXJydXB0aWJsZVwiLFxuICBSRVRSWSA9IFwicmV0cnlcIixcbiAgU0VSVklDRVMgPSBcInNlcnZpY2VzXCIsXG4gIFRBR1MgPSBcInRhZ3NcIixcbiAgVElNRU9VVCA9IFwidGltZW91dFwiLFxufVxuXG4vKipcbiAqIEEgam9icyBpbiBhIHByZXZpb3VzIHN0YWdlIHdob3NlIHNvbGUgY29tcGxldGlvbiBpcyBuZWVkZWQgdG8gc3RhcnQgdGhlIGN1cnJlbnQgam9iLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5lZWQge1xuICByZWFkb25seSBhcnRpZmFjdHM/OiBib29sZWFuO1xuICByZWFkb25seSBqb2I6IHN0cmluZztcbiAgcmVhZG9ubHkgb3B0aW9uYWw/OiBib29sZWFuO1xuICByZWFkb25seSBwaXBlbGluZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvamVjdD86IHN0cmluZztcbiAgcmVhZG9ubHkgcmVmPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVzZWQgdG8gcnVuIGEgam9iIG11bHRpcGxlIHRpbWVzIGluIHBhcmFsbGVsIGluIGEgc2luZ2xlIHBpcGVsaW5lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFsbGVsIHtcbiAgLyoqIERlZmluZXMgZGlmZmVyZW50IHZhcmlhYmxlcyBmb3Igam9icyB0aGF0IGFyZSBydW5uaW5nIGluIHBhcmFsbGVsLiovXG4gIHJlYWRvbmx5IG1hdHJpeDogUmVjb3JkPHN0cmluZywgYW55W10+W107XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIGpvYiBjcmVhdGVzIGEgUmVsZWFzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxlYXNlIHtcbiAgcmVhZG9ubHkgYXNzZXRzPzogQXNzZXRzO1xuICAvKiogU3BlY2lmaWVzIHRoZSBsb25nZXIgZGVzY3JpcHRpb24gb2YgdGhlIFJlbGVhc2UuKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqIFRoZSB0aXRsZSBvZiBlYWNoIG1pbGVzdG9uZSB0aGUgcmVsZWFzZSBpcyBhc3NvY2lhdGVkIHdpdGguKi9cbiAgcmVhZG9ubHkgbWlsZXN0b25lcz86IHN0cmluZ1tdO1xuICAvKiogVGhlIFJlbGVhc2UgbmFtZS4gSWYgb21pdHRlZCwgaXQgaXMgcG9wdWxhdGVkIHdpdGggdGhlIHZhbHVlIG9mIHJlbGVhc2U6IHRhZ19uYW1lLiovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBJZiB0aGUgcmVsZWFzZTogdGFnX25hbWUgZG9lc27igJl0IGV4aXN0IHlldCwgdGhlIHJlbGVhc2UgaXMgY3JlYXRlZCBmcm9tIHJlZi4gcmVmIGNhbiBiZSBhIGNvbW1pdCBTSEEsIGFub3RoZXIgdGFnIG5hbWUsIG9yIGEgYnJhbmNoIG5hbWUuKi9cbiAgcmVhZG9ubHkgcmVmPzogc3RyaW5nO1xuICAvKiogVGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgcmVsZWFzZSBpcyByZWFkeS4gRGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBpZiBub3QgZGVmaW5lZC4gU2hvdWxkIGJlIGVuY2xvc2VkIGluIHF1b3RlcyBhbmQgZXhwcmVzc2VkIGluIElTTyA4NjAxIGZvcm1hdC4qL1xuICByZWFkb25seSByZWxlYXNlZEF0Pzogc3RyaW5nO1xuICAvKiogVGhlIHRhZ19uYW1lIG11c3QgYmUgc3BlY2lmaWVkLiBJdCBjYW4gcmVmZXIgdG8gYW4gZXhpc3RpbmcgR2l0IHRhZyBvciBjYW4gYmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLiovXG4gIHJlYWRvbmx5IHRhZ05hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBc3NldCBjb25maWd1cmF0aW9uIGZvciBhIHJlbGVhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRzIHtcbiAgLyoqIEluY2x1ZGUgYXNzZXQgbGlua3MgaW4gdGhlIHJlbGVhc2UuKi9cbiAgcmVhZG9ubHkgbGlua3M6IExpbmtbXTtcbn1cblxuLyoqXG4gKiBMaW5rIGNvbmZpZ3VyYXRpb24gZm9yIGFuIGFzc2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbmsge1xuICAvKiogVGhlIHJlZGlyZWN0IGxpbmsgdG8gdGhlIHVybC4qL1xuICByZWFkb25seSBmaWxlcGF0aD86IHN0cmluZztcbiAgLyoqIFRoZSBjb250ZW50IGtpbmQgb2Ygd2hhdCB1c2VycyBjYW4gZG93bmxvYWQgdmlhIHVybC4qL1xuICByZWFkb25seSBsaW5rVHlwZT86IExpbmtUeXBlO1xuICAvKiogVGhlIG5hbWUgb2YgdGhlIGxpbmsuKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKiogVGhlIFVSTCB0byBkb3dubG9hZCBhIGZpbGUuKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGNvbnRlbnQga2luZCBvZiB3aGF0IHVzZXJzIGNhbiBkb3dubG9hZCB2aWEgdXJsLlxuICovXG5leHBvcnQgZW51bSBMaW5rVHlwZSB7XG4gIElNQUdFID0gXCJpbWFnZVwiLFxuICBPVEhFUiA9IFwib3RoZXJcIixcbiAgUEFDS0FHRSA9IFwicGFja2FnZVwiLFxuICBSVU5CT09LID0gXCJydW5ib29rXCIsXG59XG5cbi8qKlxuICogQSBDSS9DRCBzZWNyZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWNyZXQge1xuICAvKiBTcGVjaWZpY2F0aW9uIGZvciBhIHNlY3JldCBwcm92aWRlZCBieSBhIEhhc2hpQ29ycCBWYXVsdC4gKi9cbiAgcmVhZG9ubHkgdmF1bHQ6IFZhdWx0Q29uZmlnO1xufVxuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gZm9yIGEgc2VjcmV0IHByb3ZpZGVkIGJ5IGEgSGFzaGlDb3JwIFZhdWx0LlxuICogQHNlZSBodHRwczovL3d3dy52YXVsdHByb2plY3QuaW8vXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmF1bHRDb25maWcge1xuICAvKiBUaGUgZW5naW5lIGNvbmZpZ3VyYXRpb24gZm9yIGEgc2VjcmV0LiAqL1xuICByZWFkb25seSBlbmdpbmU6IEVuZ2luZTtcbiAgLyogVGhlIG5hbWUgb2YgdGhlIGZpZWxkIHdoZXJlIHRoZSBwYXNzd29yZCBpcyBzdG9yZWQuICovXG4gIHJlYWRvbmx5IGZpZWxkOiBzdHJpbmc7XG4gIC8qKiBQYXRoIHRvIHRoZSBzZWNyZXQuICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgZW5naW5lIGNvbmZpZ3VyYXRpb24gZm9yIGEgc2VjcmV0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuZ2luZSB7XG4gIC8qKiBOYW1lIG9mIHRoZSBzZWNyZXRzIGVuZ2luZS4gKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKiogUGF0aCB0byB0aGUgc2VjcmV0cyBlbmdpbmUuICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUcmlnZ2VyIGEgbXVsdGktcHJvamVjdCBvciBhIGNoaWxkIHBpcGVsaW5lLiBSZWFkIG1vcmU6XG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvUkVBRE1FLmh0bWwjc2ltcGxlLXRyaWdnZXItc3ludGF4LWZvci1tdWx0aS1wcm9qZWN0LXBpcGVsaW5lc1xuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sL1JFQURNRS5odG1sI3RyaWdnZXItc3ludGF4LWZvci1jaGlsZC1waXBlbGluZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXIge1xuICAvKiogVGhlIGJyYW5jaCBuYW1lIHRoYXQgYSBkb3duc3RyZWFtIHBpcGVsaW5lIHdpbGwgdXNlKi9cbiAgcmVhZG9ubHkgYnJhbmNoPzogc3RyaW5nO1xuICAvKiogUGF0aCB0byB0aGUgcHJvamVjdCwgZS5nLiBgZ3JvdXAvcHJvamVjdGAsIG9yIGBncm91cC9zdWItZ3JvdXAvcHJvamVjdGAuKi9cbiAgcmVhZG9ubHkgcHJvamVjdD86IHN0cmluZztcbiAgLyoqIFlvdSBjYW4gbWlycm9yIHRoZSBwaXBlbGluZSBzdGF0dXMgZnJvbSB0aGUgdHJpZ2dlcmVkIHBpcGVsaW5lIHRvIHRoZSBzb3VyY2UgYnJpZGdlIGpvYiBieSB1c2luZyBzdHJhdGVneTogZGVwZW5kKi9cbiAgcmVhZG9ubHkgc3RyYXRlZ3k/OiBTdHJhdGVneTtcbiAgLyoqIEEgbGlzdCBvZiBsb2NhbCBmaWxlcyBvciBhcnRpZmFjdHMgZnJvbSBvdGhlciBqb2JzIHRvIGRlZmluZSB0aGUgcGlwZWxpbmUgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZT86IFRyaWdnZXJJbmNsdWRlW107XG59XG5cbi8qKlxuICogUmVmZXJlbmNlcyBhIGxvY2FsIGZpbGUgb3IgYW4gYXJ0aWZhY3QgZnJvbSBhbm90aGVyIGpvYiB0byBkZWZpbmUgdGhlIHBpcGVsaW5lXG4gKiBjb25maWd1cmF0aW9uLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN0cmlnZ2VyaW5jbHVkZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXJJbmNsdWRlIHtcbiAgLyoqIFJlbGF0aXZlIHBhdGggZnJvbSBsb2NhbCByZXBvc2l0b3J5IHJvb3QgKGAvYCkgdG8gdGhlIGxvY2FsIFlBTUwgZmlsZSB0byBkZWZpbmUgdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uKi9cbiAgcmVhZG9ubHkgbG9jYWw/OiBzdHJpbmc7XG4gIC8qKiBOYW1lIG9mIHRoZSB0ZW1wbGF0ZSBZQU1MIGZpbGUgdG8gdXNlIGluIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uLiovXG4gIHJlYWRvbmx5IHRlbXBsYXRlPzogc3RyaW5nO1xuICAvKiogUmVsYXRpdmUgcGF0aCB0byB0aGUgZ2VuZXJhdGVkIFlBTUwgZmlsZSB3aGljaCBpcyBleHRyYWN0ZWQgZnJvbSB0aGUgYXJ0aWZhY3RzIGFuZCB1c2VkIGFzIHRoZSBjb25maWd1cmF0aW9uIGZvciB0cmlnZ2VyaW5nIHRoZSBjaGlsZCBwaXBlbGluZS4qL1xuICByZWFkb25seSBhcnRpZmFjdD86IHN0cmluZztcbiAgLyoqIEpvYiBuYW1lIHdoaWNoIGdlbmVyYXRlcyB0aGUgYXJ0aWZhY3QqL1xuICByZWFkb25seSBqb2I/OiBzdHJpbmc7XG4gIC8qKiBSZWxhdGl2ZSBwYXRoIGZyb20gcmVwb3NpdG9yeSByb290IChgL2ApIHRvIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uIFlBTUwgZmlsZS4qL1xuICByZWFkb25seSBmaWxlPzogc3RyaW5nO1xuICAvKiogUGF0aCB0byBhbm90aGVyIHByaXZhdGUgcHJvamVjdCB1bmRlciB0aGUgc2FtZSBHaXRMYWIgaW5zdGFuY2UsIGxpa2UgYGdyb3VwL3Byb2plY3RgIG9yIGBncm91cC9zdWItZ3JvdXAvcHJvamVjdGAuKi9cbiAgcmVhZG9ubHkgcHJvamVjdD86IHN0cmluZztcbiAgLyoqIEJyYW5jaC9UYWcvQ29tbWl0IGhhc2ggZm9yIHRoZSB0YXJnZXQgcHJvamVjdC4qL1xuICByZWFkb25seSByZWY/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogWW91IGNhbiBtaXJyb3IgdGhlIHBpcGVsaW5lIHN0YXR1cyBmcm9tIHRoZSB0cmlnZ2VyZWQgcGlwZWxpbmUgdG8gdGhlIHNvdXJjZSBicmlkZ2Ugam9iXG4gKiBieSB1c2luZyBzdHJhdGVneTogZGVwZW5kXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3RyaWdnZXJzdHJhdGVneVxuICovXG5leHBvcnQgZW51bSBTdHJhdGVneSB7XG4gIERFUEVORCA9IFwiZGVwZW5kXCIsXG59XG5cbi8qKlxuICogRXhwbGFpbnMgd2hhdCB0aGUgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgZm9yLCB3aGF0IHRoZSBhY2NlcHRhYmxlIHZhbHVlcyBhcmUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3ZhcmlhYmxlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhcmlhYmxlQ29uZmlnIHtcbiAgLyoqIERlZmluZSBhIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIHByZWZpbGxlZCB3aGVuIHJ1bm5pbmcgYSBwaXBlbGluZSBtYW51YWxseS4gTXVzdCBiZSB1c2VkIHdpdGggdmFsdWUuICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIFRoZSB2YXJpYWJsZSB2YWx1ZS4gKi9cbiAgcmVhZG9ubHkgdmFsdWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVXNlZCB0byBjb250cm9sIHBpcGVsaW5lIGJlaGF2aW9yLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN3b3JrZmxvd1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93IHtcbiAgLyoqIFVzZWQgdG8gY29udHJvbCB3aGV0aGVyIG9yIG5vdCBhIHdob2xlIHBpcGVsaW5lIGlzIGNyZWF0ZWQuICovXG4gIHJlYWRvbmx5IHJ1bGVzPzogV29ya2Zsb3dSdWxlW107XG59XG5cbi8qKlxuICogVXNlZCB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IGEgd2hvbGUgcGlwZWxpbmUgaXMgY3JlYXRlZC5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jd29ya2Zsb3dydWxlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93UnVsZSB7XG4gIC8qIFNwZWNpZnkgd2hlbiB0byBhZGQgYSBqb2IgdG8gYSBwaXBlbGluZSBieSBjaGVja2luZyBmb3IgY2hhbmdlcyB0byBzcGVjaWZpYyBmaWxlcy4gKi9cbiAgcmVhZG9ubHkgY2hhbmdlcz86IHN0cmluZ1tdO1xuICAvKiBSdW4gYSBqb2Igd2hlbiBjZXJ0YWluIGZpbGVzIGV4aXN0IGluIHRoZSByZXBvc2l0b3J5LiAqL1xuICByZWFkb25seSBleGlzdHM/OiBzdHJpbmdbXTtcbiAgLyogQ2xhdXNlcyB0byBzcGVjaWZ5IHdoZW4gdG8gYWRkIGEgam9iIHRvIGEgcGlwZWxpbmUuKi9cbiAgcmVhZG9ubHkgaWY/OiBzdHJpbmc7XG4gIC8qIFVzZSB2YXJpYWJsZXMgaW4gcnVsZXMgdG8gZGVmaW5lIHZhcmlhYmxlcyBmb3Igc3BlY2lmaWMgY29uZGl0aW9ucy4gKi9cbiAgcmVhZG9ubHkgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nPjtcbiAgLyogQ29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnICovXG4gIHJlYWRvbmx5IHdoZW4/OiBKb2JXaGVuO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgY29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnLlxuICogVGhlIHZhbHVlIGNhbiBvbmx5IGJlICdhbHdheXMnIG9yICduZXZlcicgd2hlbiB1c2VkIHdpdGggd29ya2Zsb3cuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3dvcmtmbG93cnVsZXNcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dXaGVuIHtcbiAgQUxXQVlTID0gXCJhbHdheXNcIixcbiAgTkVWRVIgPSBcIm5ldmVyXCIsXG59XG4iXX0=
@@ -244,7 +244,7 @@ class CiConfiguration extends component_1.Component {
244
244
  }
245
245
  }
246
246
  _a = JSII_RTTI_SYMBOL_1;
247
- CiConfiguration[_a] = { fqn: "projen.gitlab.CiConfiguration", version: "0.71.62" };
247
+ CiConfiguration[_a] = { fqn: "projen.gitlab.CiConfiguration", version: "0.71.63" };
248
248
  exports.CiConfiguration = CiConfiguration;
249
249
  function snakeCaseKeys(obj, skipTopLevel = false) {
250
250
  if (typeof obj !== "object" || obj == null) {
@@ -33,6 +33,6 @@ class GitlabConfiguration extends configuration_1.CiConfiguration {
33
33
  }
34
34
  }
35
35
  _a = JSII_RTTI_SYMBOL_1;
36
- GitlabConfiguration[_a] = { fqn: "projen.gitlab.GitlabConfiguration", version: "0.71.62" };
36
+ GitlabConfiguration[_a] = { fqn: "projen.gitlab.GitlabConfiguration", version: "0.71.63" };
37
37
  exports.GitlabConfiguration = GitlabConfiguration;
38
38
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0bGFiL2dpdGxhYi1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsbURBQWtEO0FBQ2xELGlFQUE2RDtBQUc3RDs7R0FFRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsK0JBQWU7SUFFdEQsWUFBWSxPQUFnQixFQUFFLE9BQWdDO1FBQzVELEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRnZCLG9CQUFlLEdBQXdDLEVBQUUsQ0FBQztJQUcxRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kscUJBQXFCLENBQUMsTUFBOEM7UUFDekUsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtnQkFDNUMsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLElBQUksQ0FBQyxJQUFJLDBDQUEwQyxJQUFJLElBQUksQ0FDL0QsQ0FBQzthQUNIO1lBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSwwQ0FBbUIsQ0FDdEMsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLEVBQ0osSUFBSSxFQUNKLE9BQU8sQ0FDUixDQUFDO1lBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7Ozs7QUE5QlUsa0RBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2lDb25maWd1cmF0aW9uT3B0aW9ucyB9IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBDaUNvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uXCI7XG5pbXBvcnQgeyBOZXN0ZWRDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vbmVzdGVkLWNvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuXG4vKipcbiAqIEEgR2l0TGFiIENJIGZvciB0aGUgbWFpbiBgLmdpdGxhYi1jaS55bWxgIGZpbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBHaXRsYWJDb25maWd1cmF0aW9uIGV4dGVuZHMgQ2lDb25maWd1cmF0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IG5lc3RlZFRlbXBsYXRlczogUmVjb3JkPHN0cmluZywgTmVzdGVkQ29uZmlndXJhdGlvbj4gPSB7fTtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9ucz86IENpQ29uZmlndXJhdGlvbk9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBcImdpdGxhYi1jaVwiLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuZCBhZGRzIG5lc3RlZCB0ZW1wbGF0ZXMgdG8gdGhlIGluY2x1ZGVzIG9mIHRoZSBtYWluIENJLlxuICAgKiBBZGRpdGlvbmFsbHkgYWRkcyB0aGVpciBzdGFnZXMgdG8gdGhlIG1haW4gQ0kgaWYgdGhleSBhcmUgbm90IGFscmVhZHkgcHJlc2VudC5cbiAgICogWW91IGNhbiBmdXRoZXIgY3VzdG9taXplIG5lc3RlZCB0ZW1wbGF0ZXMgdGhyb3VnaCB0aGUgYG5lc3RlZFRlbXBsYXRlc2AgcHJvcGVydHkuXG4gICAqIEUuZy4gZ2l0bGFiQ29uZmlnLm5lc3RlZFRlbXBsYXRlc1sndGVtcGxhdGVOYW1lJ10/LmFkZFN0YWdlcygnc3RhZ2VOYW1lJylcbiAgICogQHBhcmFtIGNvbmZpZyBhIHJlY29yZCB0aGUgbmFtZXMgYW5kIGNvbmZpZ3VyYWl0b25zIG9mIHRoZSB0ZW1wbGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlTmVzdGVkVGVtcGxhdGVzKGNvbmZpZzogUmVjb3JkPHN0cmluZywgQ2lDb25maWd1cmF0aW9uT3B0aW9ucz4pIHtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBvcHRpb25zXSBvZiBPYmplY3QuZW50cmllcyhjb25maWcpKSB7XG4gICAgICBpZiAodGhpcy5uZXN0ZWRUZW1wbGF0ZXNbbmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYCR7dGhpcy5uYW1lfTogR2l0TGFiIENJIGFscmVhZHkgY29udGFpbnMgdGVtcGxhdGUgXCIke25hbWV9XCIuYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgdGVtcGxhdGUgPSBuZXcgTmVzdGVkQ29uZmlndXJhdGlvbihcbiAgICAgICAgdGhpcy5wcm9qZWN0LFxuICAgICAgICB0aGlzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBvcHRpb25zXG4gICAgICApO1xuICAgICAgdGhpcy5uZXN0ZWRUZW1wbGF0ZXNbdGVtcGxhdGUubmFtZV0gPSB0ZW1wbGF0ZTtcbiAgICAgIHRoaXMuYWRkSW5jbHVkZXMoeyBsb2NhbDogdGVtcGxhdGUucGF0aCB9KTtcbiAgICAgIHRoaXMuYWRkU3RhZ2VzKC4uLnRlbXBsYXRlLnN0YWdlcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -14,6 +14,6 @@ class NestedConfiguration extends configuration_1.CiConfiguration {
14
14
  }
15
15
  }
16
16
  _a = JSII_RTTI_SYMBOL_1;
17
- NestedConfiguration[_a] = { fqn: "projen.gitlab.NestedConfiguration", version: "0.71.62" };
17
+ NestedConfiguration[_a] = { fqn: "projen.gitlab.NestedConfiguration", version: "0.71.63" };
18
18
  exports.NestedConfiguration = NestedConfiguration;
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0bGFiL25lc3RlZC1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsbURBQWtEO0FBSWxEOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSwrQkFBZTtJQUV0RCxZQUNFLE9BQWdCLEVBQ2hCLE1BQTJCLEVBQzNCLElBQVksRUFDWixPQUFnQztRQUVoQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDOzs7O0FBVlUsa0RBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2lDb25maWd1cmF0aW9uT3B0aW9ucyB9IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBDaUNvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uXCI7XG5pbXBvcnQgeyBHaXRsYWJDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vZ2l0bGFiLWNvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuXG4vKipcbiAqIEEgR2l0TGFiIENJIGZvciB0ZW1wbGF0ZXMgdGhhdCBhcmUgY3JlYXRlZCBhbmQgaW5jbHVkZWQgaW4gdGhlIGAuZ2l0bGFiLWNpLnltbGAgZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5lc3RlZENvbmZpZ3VyYXRpb24gZXh0ZW5kcyBDaUNvbmZpZ3VyYXRpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyZW50OiBHaXRsYWJDb25maWd1cmF0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBQcm9qZWN0LFxuICAgIHBhcmVudDogR2l0bGFiQ29uZmlndXJhdGlvbixcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IENpQ29uZmlndXJhdGlvbk9wdGlvbnNcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCwgbmFtZSwgb3B0aW9ucyk7XG4gICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XG4gIH1cbn1cbiJdfQ==
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.62" };
243
+ Gitpod[_a] = { fqn: "projen.Gitpod", version: "0.71.63" };
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.62" };
99
+ IgnoreFile[_a] = { fqn: "projen.IgnoreFile", version: "0.71.63" };
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.62" };
28
+ IniFile[_a] = { fqn: "projen.IniFile", version: "0.71.63" };
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.62" };
93
+ JavaProject[_a] = { fqn: "projen.java.JavaProject", version: "0.71.63" };
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.62" };
42
+ Junit[_a] = { fqn: "projen.java.Junit", version: "0.71.63" };
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.62" };
24
+ MavenCompile[_a] = { fqn: "projen.java.MavenCompile", version: "0.71.63" };
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.62" };
59
+ MavenPackaging[_a] = { fqn: "projen.java.MavenPackaging", version: "0.71.63" };
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.62" };
32
+ MavenSample[_a] = { fqn: "projen.java.MavenSample", version: "0.71.63" };
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.62" };
144
+ Pom[_a] = { fqn: "projen.java.Pom", version: "0.71.63" };
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.62" };
121
+ Projenrc[_a] = { fqn: "projen.java.Projenrc", version: "0.71.63" };
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.62" };
129
+ Bundler[_a] = { fqn: "projen.javascript.Bundler", version: "0.71.63" };
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.62" };
313
+ Eslint[_a] = { fqn: "projen.javascript.Eslint", version: "0.71.63" };
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==