projen 0.52.21 → 0.52.25

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 (235) hide show
  1. package/.jsii +139 -107
  2. package/changelog.md +3 -3
  3. package/docs/api/API.md +42 -39
  4. package/lib/awscdk/auto-discover.d.ts +14 -46
  5. package/lib/awscdk/auto-discover.js +8 -22
  6. package/lib/awscdk/awscdk-app-java.d.ts +10 -32
  7. package/lib/awscdk/awscdk-app-java.js +5 -9
  8. package/lib/awscdk/awscdk-app-ts.d.ts +15 -35
  9. package/lib/awscdk/awscdk-app-ts.js +6 -14
  10. package/lib/awscdk/awscdk-construct.d.ts +14 -28
  11. package/lib/awscdk/awscdk-construct.js +8 -16
  12. package/lib/awscdk/awscdk-deps-java.d.ts +1 -8
  13. package/lib/awscdk/awscdk-deps-java.js +3 -10
  14. package/lib/awscdk/awscdk-deps-js.d.ts +1 -8
  15. package/lib/awscdk/awscdk-deps-js.js +3 -10
  16. package/lib/awscdk/awscdk-deps.d.ts +28 -67
  17. package/lib/awscdk/awscdk-deps.js +5 -12
  18. package/lib/awscdk/cdk-config.d.ts +19 -51
  19. package/lib/awscdk/cdk-config.js +13 -11
  20. package/lib/awscdk/cdk-tasks.d.ts +7 -24
  21. package/lib/awscdk/cdk-tasks.js +3 -8
  22. package/lib/awscdk/integration-test.d.ts +7 -29
  23. package/lib/awscdk/integration-test.js +3 -8
  24. package/lib/awscdk/lambda-function.d.ts +22 -50
  25. package/lib/awscdk/lambda-function.js +11 -24
  26. package/lib/build/build-workflow.d.ts +33 -78
  27. package/lib/build/build-workflow.js +15 -25
  28. package/lib/cdk/auto-discover-base.d.ts +11 -34
  29. package/lib/cdk/auto-discover-base.js +5 -15
  30. package/lib/cdk/construct-lib.d.ts +8 -22
  31. package/lib/cdk/construct-lib.js +3 -8
  32. package/lib/cdk/integration-test-base.d.ts +12 -38
  33. package/lib/cdk/integration-test-base.js +2 -8
  34. package/lib/cdk/jsii-docgen.d.ts +6 -12
  35. package/lib/cdk/jsii-docgen.js +6 -8
  36. package/lib/cdk/jsii-project.d.ts +16 -95
  37. package/lib/cdk/jsii-project.js +3 -10
  38. package/lib/cdk8s/auto-discover.d.ts +6 -23
  39. package/lib/cdk8s/auto-discover.js +6 -15
  40. package/lib/cdk8s/cdk8s-app-ts.d.ts +21 -43
  41. package/lib/cdk8s/cdk8s-app-ts.js +4 -7
  42. package/lib/cdk8s/cdk8s-construct.d.ts +12 -27
  43. package/lib/cdk8s/cdk8s-construct.js +3 -7
  44. package/lib/cdk8s/integration-test.d.ts +2 -9
  45. package/lib/cdk8s/integration-test.js +3 -8
  46. package/lib/cdktf/cdktf-construct.d.ts +3 -12
  47. package/lib/cdktf/cdktf-construct.js +3 -7
  48. package/lib/component.d.ts +4 -17
  49. package/lib/component.js +6 -19
  50. package/lib/dependencies.d.ts +44 -77
  51. package/lib/dependencies.js +50 -38
  52. package/lib/dev-env.d.ts +26 -53
  53. package/lib/dev-env.js +9 -19
  54. package/lib/docker-compose.d.ts +83 -209
  55. package/lib/docker-compose.js +38 -61
  56. package/lib/file.d.ts +24 -71
  57. package/lib/file.js +4 -16
  58. package/lib/gitattributes.d.ts +3 -14
  59. package/lib/gitattributes.js +5 -16
  60. package/lib/github/auto-approve.d.ts +7 -23
  61. package/lib/github/auto-approve.js +3 -8
  62. package/lib/github/auto-merge.d.ts +7 -29
  63. package/lib/github/auto-merge.js +7 -16
  64. package/lib/github/dependabot.d.ts +54 -147
  65. package/lib/github/dependabot.js +81 -22
  66. package/lib/github/github-project.d.ts +26 -70
  67. package/lib/github/github-project.js +5 -10
  68. package/lib/github/github.d.ts +19 -58
  69. package/lib/github/github.js +9 -30
  70. package/lib/github/mergify.d.ts +9 -54
  71. package/lib/github/mergify.js +2 -14
  72. package/lib/github/pr-template.d.ts +3 -13
  73. package/lib/github/pr-template.js +3 -8
  74. package/lib/github/pull-request-lint.d.ts +8 -28
  75. package/lib/github/pull-request-lint.js +3 -9
  76. package/lib/github/stale.d.ts +17 -47
  77. package/lib/github/stale.js +6 -10
  78. package/lib/github/task-workflow.d.ts +21 -63
  79. package/lib/github/task-workflow.js +3 -8
  80. package/lib/github/workflows-model.d.ts +199 -582
  81. package/lib/github/workflows-model.js +5 -4
  82. package/lib/github/workflows.d.ts +14 -41
  83. package/lib/github/workflows.js +8 -16
  84. package/lib/gitlab/configuration-model.d.ts +145 -947
  85. package/lib/gitlab/configuration-model.js +11 -28
  86. package/lib/gitlab/configuration.d.ts +31 -121
  87. package/lib/gitlab/configuration.js +14 -49
  88. package/lib/gitlab/gitlab-configuration.d.ts +2 -13
  89. package/lib/gitlab/gitlab-configuration.js +4 -15
  90. package/lib/gitlab/nested-configuration.d.ts +1 -9
  91. package/lib/gitlab/nested-configuration.js +3 -8
  92. package/lib/gitpod.d.ts +71 -167
  93. package/lib/gitpod.js +75 -42
  94. package/lib/ignore-file.d.ts +4 -23
  95. package/lib/ignore-file.js +6 -25
  96. package/lib/ini.d.ts +2 -14
  97. package/lib/ini.js +3 -13
  98. package/lib/java/java-project.d.ts +29 -70
  99. package/lib/java/java-project.js +10 -17
  100. package/lib/java/junit.d.ts +5 -17
  101. package/lib/java/junit.js +3 -8
  102. package/lib/java/maven-compile.d.ts +4 -13
  103. package/lib/java/maven-compile.js +3 -8
  104. package/lib/java/maven-packaging.d.ts +6 -21
  105. package/lib/java/maven-packaging.js +3 -8
  106. package/lib/java/maven-sample.d.ts +2 -12
  107. package/lib/java/maven-sample.js +3 -8
  108. package/lib/java/pom.d.ts +38 -100
  109. package/lib/java/pom.js +13 -25
  110. package/lib/java/projenrc.d.ts +7 -22
  111. package/lib/java/projenrc.js +3 -8
  112. package/lib/javascript/bundler.d.ts +30 -72
  113. package/lib/javascript/bundler.js +13 -21
  114. package/lib/javascript/eslint.d.ts +27 -84
  115. package/lib/javascript/eslint.js +11 -30
  116. package/lib/javascript/jest.d.ts +91 -344
  117. package/lib/javascript/jest.js +6 -23
  118. package/lib/javascript/node-package.d.ts +111 -259
  119. package/lib/javascript/node-package.js +64 -81
  120. package/lib/javascript/node-project.d.ts +112 -220
  121. package/lib/javascript/node-project.js +54 -73
  122. package/lib/javascript/npm-config.d.ts +9 -19
  123. package/lib/javascript/npm-config.js +9 -16
  124. package/lib/javascript/prettier.d.ts +65 -196
  125. package/lib/javascript/prettier.js +70 -46
  126. package/lib/javascript/projenrc.d.ts +2 -12
  127. package/lib/javascript/projenrc.js +3 -8
  128. package/lib/javascript/typescript-config.d.ts +62 -158
  129. package/lib/javascript/typescript-config.js +31 -18
  130. package/lib/javascript/upgrade-dependencies.d.ts +35 -94
  131. package/lib/javascript/upgrade-dependencies.js +21 -51
  132. package/lib/json.d.ts +3 -17
  133. package/lib/json.js +3 -13
  134. package/lib/license.d.ts +3 -20
  135. package/lib/license.js +2 -13
  136. package/lib/logger.d.ts +18 -62
  137. package/lib/logger.js +17 -37
  138. package/lib/makefile.d.ts +14 -45
  139. package/lib/makefile.js +7 -25
  140. package/lib/object-file.d.ts +19 -39
  141. package/lib/object-file.js +17 -28
  142. package/lib/option-hints.d.ts +4 -13
  143. package/lib/option-hints.js +11 -5
  144. package/lib/project-build.d.ts +7 -26
  145. package/lib/project-build.js +3 -8
  146. package/lib/project.d.ts +64 -186
  147. package/lib/project.js +43 -91
  148. package/lib/projects.d.ts +11 -32
  149. package/lib/projects.js +4 -8
  150. package/lib/projenrc-json.d.ts +2 -12
  151. package/lib/projenrc-json.js +3 -8
  152. package/lib/python/pip.d.ts +7 -23
  153. package/lib/python/pip.js +8 -17
  154. package/lib/python/poetry.d.ts +36 -121
  155. package/lib/python/poetry.js +12 -26
  156. package/lib/python/projenrc.d.ts +4 -15
  157. package/lib/python/projenrc.js +3 -8
  158. package/lib/python/pytest.d.ts +3 -16
  159. package/lib/python/pytest.js +2 -8
  160. package/lib/python/python-deps.d.ts +7 -21
  161. package/lib/python/python-deps.js +1 -1
  162. package/lib/python/python-env.d.ts +1 -6
  163. package/lib/python/python-env.js +1 -1
  164. package/lib/python/python-packaging.d.ts +12 -34
  165. package/lib/python/python-packaging.js +1 -1
  166. package/lib/python/python-project.d.ts +34 -79
  167. package/lib/python/python-project.js +7 -20
  168. package/lib/python/python-sample.d.ts +2 -9
  169. package/lib/python/python-sample.js +3 -8
  170. package/lib/python/requirements-file.d.ts +4 -19
  171. package/lib/python/requirements-file.js +5 -15
  172. package/lib/python/setuppy.d.ts +11 -39
  173. package/lib/python/setuppy.js +3 -13
  174. package/lib/python/setuptools.d.ts +2 -14
  175. package/lib/python/setuptools.js +3 -8
  176. package/lib/python/venv.d.ts +4 -14
  177. package/lib/python/venv.js +4 -11
  178. package/lib/readme.d.ts +7 -16
  179. package/lib/readme.js +5 -7
  180. package/lib/release/publisher.d.ts +103 -206
  181. package/lib/release/publisher.js +47 -59
  182. package/lib/release/release-trigger.d.ts +16 -48
  183. package/lib/release/release-trigger.js +8 -18
  184. package/lib/release/release.d.ts +50 -110
  185. package/lib/release/release.js +9 -24
  186. package/lib/run-task.js +1820 -0
  187. package/lib/sample-file.d.ts +14 -47
  188. package/lib/sample-file.js +9 -30
  189. package/lib/semver.d.ts +4 -21
  190. package/lib/semver.js +6 -20
  191. package/lib/source-code.d.ts +7 -23
  192. package/lib/source-code.js +7 -19
  193. package/lib/task-model.d.ts +21 -61
  194. package/lib/task-model.js +1 -1
  195. package/lib/task-runtime.d.ts +7 -24
  196. package/lib/task-runtime.js +7 -20
  197. package/lib/task.d.ts +29 -73
  198. package/lib/task.js +28 -61
  199. package/lib/tasks.d.ts +12 -34
  200. package/lib/tasks.js +14 -36
  201. package/lib/testing.d.ts +6 -10
  202. package/lib/testing.js +8 -12
  203. package/lib/textfile.d.ts +9 -24
  204. package/lib/textfile.js +9 -19
  205. package/lib/toml.d.ts +2 -14
  206. package/lib/toml.js +3 -13
  207. package/lib/typescript/projenrc.d.ts +4 -14
  208. package/lib/typescript/projenrc.js +3 -8
  209. package/lib/typescript/typescript-typedoc.d.ts +1 -6
  210. package/lib/typescript/typescript-typedoc.js +3 -8
  211. package/lib/typescript/typescript.d.ts +24 -82
  212. package/lib/typescript/typescript.js +6 -15
  213. package/lib/version.d.ts +9 -38
  214. package/lib/version.js +2 -11
  215. package/lib/vscode/devcontainer.d.ts +10 -30
  216. package/lib/vscode/devcontainer.js +10 -26
  217. package/lib/vscode/launch-config.d.ts +18 -97
  218. package/lib/vscode/launch-config.js +9 -15
  219. package/lib/vscode/vscode.d.ts +0 -9
  220. package/lib/vscode/vscode.js +2 -11
  221. package/lib/web/next.d.ts +19 -60
  222. package/lib/web/next.js +6 -20
  223. package/lib/web/postcss.d.ts +3 -24
  224. package/lib/web/postcss.js +3 -8
  225. package/lib/web/react.d.ts +13 -60
  226. package/lib/web/react.js +7 -32
  227. package/lib/web/tailwind.d.ts +1 -15
  228. package/lib/web/tailwind.js +3 -7
  229. package/lib/xmlfile.d.ts +2 -14
  230. package/lib/xmlfile.js +3 -13
  231. package/lib/yaml.d.ts +4 -19
  232. package/lib/yaml.js +3 -13
  233. package/package.json +5 -5
  234. package/releasetag.txt +1 -1
  235. package/version.txt +1 -1
@@ -1,36 +1,28 @@
1
1
  import { Component } from "../component";
2
2
  import { GitHub } from "./github";
3
- /**
4
- * @experimental
5
- */
6
3
  export interface DependabotOptions {
7
4
  /**
8
- * (experimental) How often to check for new versions and raise pull requests.
5
+ * How often to check for new versions and raise pull requests.
9
6
  *
10
7
  * @default ScheduleInterval.DAILY
11
- * @experimental
12
8
  */
13
9
  readonly scheduleInterval?: DependabotScheduleInterval;
14
10
  /**
15
- * (experimental) The strategy to use when edits manifest and lock files.
11
+ * The strategy to use when edits manifest and lock files.
16
12
  *
17
13
  * @default VersioningStrategy.LOCKFILE_ONLY The default is to only update the
18
14
  * lock file because package.json is controlled by projen and any outside
19
15
  * updates will fail the build.
20
- * @experimental
21
16
  */
22
17
  readonly versioningStrategy?: VersioningStrategy;
23
18
  /**
24
- * (experimental) You can use the `ignore` option to customize which dependencies are updated.
25
- *
19
+ * You can use the `ignore` option to customize which dependencies are updated.
26
20
  * The ignore option supports the following options.
27
- *
28
21
  * @default []
29
- * @experimental
30
22
  */
31
23
  readonly ignore?: DependabotIgnore[];
32
24
  /**
33
- * (experimental) Ignores updates to `projen`.
25
+ * Ignores updates to `projen`.
34
26
  *
35
27
  * This is required since projen updates may cause changes in committed files
36
28
  * and anti-tamper checks will fail.
@@ -38,303 +30,218 @@ export interface DependabotOptions {
38
30
  * Projen upgrades are covered through the `ProjenUpgrade` class.
39
31
  *
40
32
  * @default true
41
- * @experimental
42
33
  */
43
34
  readonly ignoreProjen?: boolean;
44
35
  /**
45
- * (experimental) List of labels to apply to the created PR's.
46
- *
47
- * @experimental
36
+ * List of labels to apply to the created PR's.
48
37
  */
49
38
  readonly labels?: string[];
50
39
  /**
51
- * (experimental) Map of package registries to use.
52
- *
40
+ * Map of package registries to use
53
41
  * @default - use public registries
54
- * @experimental
55
42
  */
56
43
  readonly registries?: {
57
44
  [name: string]: DependabotRegistry;
58
45
  };
59
46
  }
60
47
  /**
61
- * (experimental) Use to add private registry support for dependabot.
62
- *
48
+ * Use to add private registry support for dependabot
63
49
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#configuration-options-for-private-registries
64
- * @experimental
65
50
  */
66
51
  export interface DependabotRegistry {
67
52
  /**
68
- * (experimental) Registry type e.g. 'npm-registry' or 'docker-registry'.
69
- *
70
- * @experimental
53
+ * Registry type e.g. 'npm-registry' or 'docker-registry'
71
54
  */
72
55
  readonly type: DependabotRegistryType;
73
56
  /**
74
- * (experimental) Url for the registry e.g. 'https://npm.pkg.github.com' or 'registry.hub.docker.com'.
75
- *
76
- * @experimental
57
+ * Url for the registry e.g. 'https://npm.pkg.github.com' or 'registry.hub.docker.com'
77
58
  */
78
59
  readonly url: string;
79
60
  /**
80
- * (experimental) The username that Dependabot uses to access the registry.
81
- *
61
+ * The username that Dependabot uses to access the registry
82
62
  * @default - do not authenticate
83
- * @experimental
84
63
  */
85
64
  readonly username?: string;
86
65
  /**
87
- * (experimental) A reference to a Dependabot secret containing the password for the specified user.
88
- *
66
+ * A reference to a Dependabot secret containing the password for the specified user
89
67
  * @default undefined
90
- * @experimental
91
68
  */
92
69
  readonly password?: string;
93
70
  /**
94
- * (experimental) A reference to a Dependabot secret containing an access key for this registry.
95
- *
71
+ * A reference to a Dependabot secret containing an access key for this registry
96
72
  * @default undefined
97
- * @experimental
98
73
  */
99
74
  readonly key?: string;
100
75
  /**
101
- * (experimental) Secret token for dependabot access e.g. '${{ secrets.DEPENDABOT_PACKAGE_TOKEN }}'.
102
- *
76
+ * Secret token for dependabot access e.g. '${{ secrets.DEPENDABOT_PACKAGE_TOKEN }}'
103
77
  * @default undefined
104
- * @experimental
105
78
  */
106
79
  readonly token?: string;
107
80
  /**
108
- * (experimental) For registries with type: python-index, if the boolean value is true, pip esolves dependencies by using the specified URL rather than the base URL of the Python Package Index (by default https://pypi.org/simple).
109
- *
81
+ * For registries with type: python-index, if the boolean value is true, pip
82
+ * esolves dependencies by using the specified URL rather than the base URL of
83
+ * the Python Package Index (by default https://pypi.org/simple)
110
84
  * @default undefined
111
- * @experimental
112
85
  */
113
86
  readonly replacesBase?: boolean;
114
87
  /**
115
- * (experimental) Used with the hex-organization registry type.
116
- *
117
- * @default undefined
88
+ * Used with the hex-organization registry type.
118
89
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#hex-organization
119
- * @experimental
90
+ * @default undefined
120
91
  */
121
92
  readonly organization?: string;
122
93
  }
123
94
  /**
124
- * (experimental) Each configuration type requires you to provide particular settings.
125
- *
95
+ * Each configuration type requires you to provide particular settings.
126
96
  * Some types allow more than one way to connect
127
- *
128
97
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#configuration-options-for-private-registries
129
- * @experimental
130
98
  */
131
99
  export declare enum DependabotRegistryType {
132
100
  /**
133
- * (experimental) The composer-repository type supports username and password.
134
- *
101
+ * The composer-repository type supports username and password.
135
102
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#composer-repository
136
- * @experimental
137
103
  */
138
104
  COMPOSER_REGISTRY = "composer-registry",
139
105
  /**
140
- * (experimental) The docker-registry type supports username and password.
141
- *
106
+ * The docker-registry type supports username and password.
142
107
  * The docker-registry type can also be used to pull from Amazon ECR using static AWS credentials
143
- *
144
108
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#docker-registry
145
- * @experimental
146
109
  */
147
110
  DOCKER_REGISTRY = "docker-registry",
148
111
  /**
149
- * (experimental) The git type supports username and password.
150
- *
112
+ * The git type supports username and password
151
113
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#git
152
- * @experimental
153
114
  */
154
115
  GIT = "git",
155
116
  /**
156
- * (experimental) The hex-organization type supports organization and key.
157
- *
117
+ * The hex-organization type supports organization and key
158
118
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#hex-organization
159
- * @experimental
160
119
  */
161
120
  HEX_ORGANIZATION = "hex-organization",
162
121
  /**
163
- * (experimental) The maven-repository type supports username and password, or token.
164
- *
122
+ * The maven-repository type supports username and password, or token
165
123
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#maven-repository
166
- * @experimental
167
124
  */
168
125
  MAVEN_REPOSITORY = "maven-repository",
169
126
  /**
170
- * (experimental) The npm-registry type supports username and password, or token.
171
- *
127
+ * The npm-registry type supports username and password, or token
172
128
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#npm-registry
173
- * @experimental
174
129
  */
175
130
  NPM_REGISTRY = "npm-registry",
176
131
  /**
177
- * (experimental) The nuget-feed type supports username and password, or token.
178
- *
132
+ * The nuget-feed type supports username and password, or token
179
133
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#nuget-feed
180
- * @experimental
181
134
  */
182
135
  NUGET_FEED = "nuget-feed",
183
136
  /**
184
- * (experimental) The python-index type supports username and password, or token.
185
- *
137
+ * The python-index type supports username and password, or token
186
138
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#python-index
187
- * @experimental
188
139
  */
189
140
  PYTHON_INDEX = "python-index",
190
141
  /**
191
- * (experimental) The rubygems-server type supports username and password, or token.
192
- *
142
+ * The rubygems-server type supports username and password, or token
193
143
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#rubygems-server
194
- * @experimental
195
144
  */
196
145
  RUBYGEMS_SERVER = "rubygems-server",
197
146
  /**
198
- * (experimental) The terraform-registry type supports a token.
199
- *
147
+ * The terraform-registry type supports a token
200
148
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#terraform-registry
201
- * @experimental
202
149
  */
203
150
  TERRAFORM_REGISTRY = "terraform-registry"
204
151
  }
205
152
  /**
206
- * (experimental) You can use the `ignore` option to customize which dependencies are updated.
207
- *
153
+ * You can use the `ignore` option to customize which dependencies are updated.
208
154
  * The ignore option supports the following options.
209
- *
210
- * @experimental
211
155
  */
212
156
  export interface DependabotIgnore {
213
157
  /**
214
- * (experimental) Use to ignore updates for dependencies with matching names, optionally using `*` to match zero or more characters.
158
+ * Use to ignore updates for dependencies with matching names, optionally
159
+ * using `*` to match zero or more characters.
215
160
  *
216
161
  * For Java dependencies, the format of the dependency-name attribute is:
217
162
  * `groupId:artifactId`, for example: `org.kohsuke:github-api`.
218
- *
219
- * @experimental
220
163
  */
221
164
  readonly dependencyName: string;
222
165
  /**
223
- * (experimental) Use to ignore specific versions or ranges of versions.
224
- *
225
- * If you want to
166
+ * Use to ignore specific versions or ranges of versions. If you want to
226
167
  * define a range, use the standard pattern for the package manager (for
227
168
  * example: `^1.0.0` for npm, or `~> 2.0` for Bundler).
228
- *
229
- * @experimental
230
169
  */
231
170
  readonly versions?: string[];
232
171
  }
233
172
  /**
234
- * (experimental) How often to check for new versions and raise pull requests for version updates.
235
- *
236
- * @experimental
173
+ * How often to check for new versions and raise pull requests for version
174
+ * updates.
237
175
  */
238
176
  export declare enum DependabotScheduleInterval {
239
177
  /**
240
- * (experimental) Runs on every weekday, Monday to Friday.
241
- *
242
- * @experimental
178
+ * Runs on every weekday, Monday to Friday.
243
179
  */
244
180
  DAILY = "daily",
245
181
  /**
246
- * (experimental) Runs once each week.
247
- *
248
- * By default, this is on Monday.
249
- *
250
- * @experimental
182
+ * Runs once each week. By default, this is on Monday.
251
183
  */
252
184
  WEEKLY = "weekly",
253
185
  /**
254
- * (experimental) Runs once each month.
255
- *
256
- * This is on the first day of the month.
257
- *
258
- * @experimental
186
+ * Runs once each month. This is on the first day of the month.
259
187
  */
260
188
  MONTHLY = "monthly"
261
189
  }
262
190
  /**
263
- * (experimental) The strategy to use when edits manifest and lock files.
264
- *
265
- * @experimental
191
+ * The strategy to use when edits manifest and lock files.
266
192
  */
267
193
  export declare enum VersioningStrategy {
268
194
  /**
269
- * (experimental) Only create pull requests to update lockfiles updates.
270
- *
271
- * Ignore any new
195
+ * Only create pull requests to update lockfiles updates. Ignore any new
272
196
  * versions that would require package manifest changes.
273
- *
274
- * @experimental
275
197
  */
276
198
  LOCKFILE_ONLY = "lockfile-only",
277
199
  /**
278
- * (experimental) - For apps, the version requirements are increased.
279
- *
200
+ * - For apps, the version requirements are increased.
280
201
  * - For libraries, the range of versions is widened.
281
- *
282
- * @experimental
283
202
  */
284
203
  AUTO = "auto",
285
204
  /**
286
- * (experimental) Relax the version requirement to include both the new and old version, when possible.
287
- *
288
- * @experimental
205
+ * Relax the version requirement to include both the new and old version, when
206
+ * possible.
289
207
  */
290
208
  WIDEN = "widen",
291
209
  /**
292
- * (experimental) Always increase the version requirement to match the new version.
293
- *
294
- * @experimental
210
+ * Always increase the version requirement to match the new version.
295
211
  */
296
212
  INCREASE = "increase",
297
213
  /**
298
- * (experimental) Increase the version requirement only when required by the new version.
299
- *
300
- * @experimental
214
+ * Increase the version requirement only when required by the new version.
301
215
  */
302
216
  INCREASE_IF_NECESSARY = "increase-if-necessary"
303
217
  }
304
218
  /**
305
- * (experimental) Defines dependabot configuration for node projects.
219
+ * Defines dependabot configuration for node projects.
306
220
  *
307
221
  * Since module versions are managed in projen, the versioning strategy will be
308
222
  * configured to "lockfile-only" which means that only updates that can be done
309
223
  * on the lockfile itself will be proposed.
310
- *
311
- * @experimental
312
224
  */
313
225
  export declare class Dependabot extends Component {
314
226
  /**
315
- * (experimental) The raw dependabot configuration.
316
- *
227
+ * The raw dependabot configuration.
317
228
  * @see https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates
318
- * @experimental
319
229
  */
320
230
  readonly config: any;
321
231
  /**
322
- * (experimental) Whether or not projen is also upgraded in this config,.
323
- *
324
- * @experimental
232
+ * Whether or not projen is also upgraded in this config,
325
233
  */
326
234
  readonly ignoresProjen: boolean;
327
235
  private readonly ignore;
328
- /**
329
- * @experimental
330
- */
331
236
  constructor(github: GitHub, options?: DependabotOptions);
332
237
  /**
333
- * (experimental) Ignores a dependency from automatic updates.
238
+ * Ignores a dependency from automatic updates.
334
239
  *
335
- * @param dependencyName Use to ignore updates for dependencies with matching names, optionally using `*` to match zero or more characters.
336
- * @param versions Use to ignore specific versions or ranges of versions.
337
- * @experimental
240
+ * @param dependencyName Use to ignore updates for dependencies with matching
241
+ * names, optionally using `*` to match zero or more characters.
242
+ * @param versions Use to ignore specific versions or ranges of versions. If
243
+ * you want to define a range, use the standard pattern for the package
244
+ * manager (for example: `^1.0.0` for npm, or `~> 2.0` for Bundler).
338
245
  */
339
246
  addIgnore(dependencyName: string, ...versions: string[]): void;
340
247
  }
@@ -7,63 +7,120 @@ const component_1 = require("../component");
7
7
  const util_1 = require("../util");
8
8
  const yaml_1 = require("../yaml");
9
9
  /**
10
- * (experimental) Each configuration type requires you to provide particular settings.
11
- *
10
+ * Each configuration type requires you to provide particular settings.
12
11
  * Some types allow more than one way to connect
13
- *
14
12
  * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#configuration-options-for-private-registries
15
- * @experimental
16
13
  */
17
14
  var DependabotRegistryType;
18
15
  (function (DependabotRegistryType) {
16
+ /**
17
+ * The composer-repository type supports username and password.
18
+ * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#composer-repository
19
+ */
19
20
  DependabotRegistryType["COMPOSER_REGISTRY"] = "composer-registry";
21
+ /**
22
+ * The docker-registry type supports username and password.
23
+ * The docker-registry type can also be used to pull from Amazon ECR using static AWS credentials
24
+ * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#docker-registry
25
+ */
20
26
  DependabotRegistryType["DOCKER_REGISTRY"] = "docker-registry";
27
+ /**
28
+ * The git type supports username and password
29
+ * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#git
30
+ */
21
31
  DependabotRegistryType["GIT"] = "git";
32
+ /**
33
+ * The hex-organization type supports organization and key
34
+ * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#hex-organization
35
+ */
22
36
  DependabotRegistryType["HEX_ORGANIZATION"] = "hex-organization";
37
+ /**
38
+ * The maven-repository type supports username and password, or token
39
+ * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#maven-repository
40
+ */
23
41
  DependabotRegistryType["MAVEN_REPOSITORY"] = "maven-repository";
42
+ /**
43
+ * The npm-registry type supports username and password, or token
44
+ * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#npm-registry
45
+ */
24
46
  DependabotRegistryType["NPM_REGISTRY"] = "npm-registry";
47
+ /**
48
+ * The nuget-feed type supports username and password, or token
49
+ * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#nuget-feed
50
+ */
25
51
  DependabotRegistryType["NUGET_FEED"] = "nuget-feed";
52
+ /**
53
+ * The python-index type supports username and password, or token
54
+ * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#python-index
55
+ */
26
56
  DependabotRegistryType["PYTHON_INDEX"] = "python-index";
57
+ /**
58
+ * The rubygems-server type supports username and password, or token
59
+ * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#rubygems-server
60
+ */
27
61
  DependabotRegistryType["RUBYGEMS_SERVER"] = "rubygems-server";
62
+ /**
63
+ * The terraform-registry type supports a token
64
+ * @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#terraform-registry
65
+ */
28
66
  DependabotRegistryType["TERRAFORM_REGISTRY"] = "terraform-registry";
29
67
  })(DependabotRegistryType = exports.DependabotRegistryType || (exports.DependabotRegistryType = {}));
30
68
  /**
31
- * (experimental) How often to check for new versions and raise pull requests for version updates.
32
- *
33
- * @experimental
69
+ * How often to check for new versions and raise pull requests for version
70
+ * updates.
34
71
  */
35
72
  var DependabotScheduleInterval;
36
73
  (function (DependabotScheduleInterval) {
74
+ /**
75
+ * Runs on every weekday, Monday to Friday.
76
+ */
37
77
  DependabotScheduleInterval["DAILY"] = "daily";
78
+ /**
79
+ * Runs once each week. By default, this is on Monday.
80
+ */
38
81
  DependabotScheduleInterval["WEEKLY"] = "weekly";
82
+ /**
83
+ * Runs once each month. This is on the first day of the month.
84
+ */
39
85
  DependabotScheduleInterval["MONTHLY"] = "monthly";
40
86
  })(DependabotScheduleInterval = exports.DependabotScheduleInterval || (exports.DependabotScheduleInterval = {}));
41
87
  /**
42
- * (experimental) The strategy to use when edits manifest and lock files.
43
- *
44
- * @experimental
88
+ * The strategy to use when edits manifest and lock files.
45
89
  */
46
90
  var VersioningStrategy;
47
91
  (function (VersioningStrategy) {
92
+ /**
93
+ * Only create pull requests to update lockfiles updates. Ignore any new
94
+ * versions that would require package manifest changes.
95
+ */
48
96
  VersioningStrategy["LOCKFILE_ONLY"] = "lockfile-only";
97
+ /**
98
+ * - For apps, the version requirements are increased.
99
+ * - For libraries, the range of versions is widened.
100
+ */
49
101
  VersioningStrategy["AUTO"] = "auto";
102
+ /**
103
+ * Relax the version requirement to include both the new and old version, when
104
+ * possible.
105
+ */
50
106
  VersioningStrategy["WIDEN"] = "widen";
107
+ /**
108
+ * Always increase the version requirement to match the new version.
109
+ */
51
110
  VersioningStrategy["INCREASE"] = "increase";
111
+ /**
112
+ * Increase the version requirement only when required by the new version.
113
+ */
52
114
  VersioningStrategy["INCREASE_IF_NECESSARY"] = "increase-if-necessary";
53
115
  })(VersioningStrategy = exports.VersioningStrategy || (exports.VersioningStrategy = {}));
54
116
  /**
55
- * (experimental) Defines dependabot configuration for node projects.
117
+ * Defines dependabot configuration for node projects.
56
118
  *
57
119
  * Since module versions are managed in projen, the versioning strategy will be
58
120
  * configured to "lockfile-only" which means that only updates that can be done
59
121
  * on the lockfile itself will be proposed.
60
- *
61
- * @experimental
62
122
  */
63
123
  class Dependabot extends component_1.Component {
64
- /**
65
- * @experimental
66
- */
67
124
  constructor(github, options = {}) {
68
125
  var _b, _c, _d, _e;
69
126
  super(github.project);
@@ -102,11 +159,13 @@ class Dependabot extends component_1.Component {
102
159
  }
103
160
  }
104
161
  /**
105
- * (experimental) Ignores a dependency from automatic updates.
162
+ * Ignores a dependency from automatic updates.
106
163
  *
107
- * @param dependencyName Use to ignore updates for dependencies with matching names, optionally using `*` to match zero or more characters.
108
- * @param versions Use to ignore specific versions or ranges of versions.
109
- * @experimental
164
+ * @param dependencyName Use to ignore updates for dependencies with matching
165
+ * names, optionally using `*` to match zero or more characters.
166
+ * @param versions Use to ignore specific versions or ranges of versions. If
167
+ * you want to define a range, use the standard pattern for the package
168
+ * manager (for example: `^1.0.0` for npm, or `~> 2.0` for Bundler).
110
169
  */
111
170
  addIgnore(dependencyName, ...versions) {
112
171
  this.ignore.push({
@@ -117,5 +176,5 @@ class Dependabot extends component_1.Component {
117
176
  }
118
177
  exports.Dependabot = Dependabot;
119
178
  _a = JSII_RTTI_SYMBOL_1;
120
- Dependabot[_a] = { fqn: "projen.github.Dependabot", version: "0.52.21" };
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kYWJvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvZGVwZW5kYWJvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUF5QztBQUN6QyxrQ0FBd0M7QUFDeEMsa0NBQW1DOzs7Ozs7Ozs7QUFtRG5DLElBQVksc0JBOEJYO0FBOUJELFdBQVksc0JBQXNCO0lBRWhDLGlFQUF1QyxDQUFBO0lBR3ZDLDZEQUFtQyxDQUFBO0lBR25DLHFDQUFXLENBQUE7SUFHWCwrREFBcUMsQ0FBQTtJQUdyQywrREFBcUMsQ0FBQTtJQUdyQyx1REFBNkIsQ0FBQTtJQUc3QixtREFBeUIsQ0FBQTtJQUd6Qix1REFBNkIsQ0FBQTtJQUc3Qiw2REFBbUMsQ0FBQTtJQUduQyxtRUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBOUJXLHNCQUFzQixHQUF0Qiw4QkFBc0IsS0FBdEIsOEJBQXNCLFFBOEJqQzs7Ozs7O0FBWUQsSUFBWSwwQkFTWDtBQVRELFdBQVksMEJBQTBCO0lBRXBDLDZDQUFlLENBQUE7SUFHZiwrQ0FBaUIsQ0FBQTtJQUdqQixpREFBbUIsQ0FBQTtBQUNyQixDQUFDLEVBVFcsMEJBQTBCLEdBQTFCLGtDQUEwQixLQUExQixrQ0FBMEIsUUFTckM7Ozs7OztBQUdELElBQVksa0JBZVg7QUFmRCxXQUFZLGtCQUFrQjtJQUU1QixxREFBK0IsQ0FBQTtJQUcvQixtQ0FBYSxDQUFBO0lBR2IscUNBQWUsQ0FBQTtJQUdmLDJDQUFxQixDQUFBO0lBR3JCLHFFQUErQyxDQUFBO0FBQ2pELENBQUMsRUFmVyxrQkFBa0IsR0FBbEIsMEJBQWtCLEtBQWxCLDBCQUFrQixRQWU3Qjs7Ozs7Ozs7OztBQUdELE1BQWEsVUFBVyxTQUFRLHFCQUFTOzs7O0lBU3ZDLFlBQVksTUFBYyxFQUFFLFVBQTZCLEVBQUU7O1FBQ3pELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUUvQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxTQUFHLE9BQU8sQ0FBQyxZQUFZLG1DQUFJLElBQUksQ0FBQztRQUVsRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtZQUNuQyxDQUFDLENBQUMsb0JBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osT0FBTyxFQUFFLENBQUM7WUFDVixVQUFVO1lBQ1YsT0FBTyxFQUFFO2dCQUNQO29CQUNFLG1CQUFtQixFQUFFLEtBQUs7b0JBQzFCLHFCQUFxQixFQUFFLGVBQWU7b0JBQ3RDLFNBQVMsRUFBRSxHQUFHO29CQUNkLFFBQVEsRUFBRTt3QkFDUixRQUFRLFFBQ04sT0FBTyxDQUFDLGdCQUFnQixtQ0FBSSwwQkFBMEIsQ0FBQyxLQUFLO3FCQUMvRDtvQkFDRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDaEUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQ25ELFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7aUJBQzdEO2FBQ0Y7U0FDRixDQUFDO1FBRUYsSUFBSSxlQUFRLENBQUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFO1lBQzlDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNoQixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sQ0FBQyxVQUFJLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxPQUFDLENBQUMsQ0FBQyxRQUFRLG1DQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDekQ7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7Ozs7Ozs7O0lBR00sU0FBUyxDQUFDLGNBQXNCLEVBQUUsR0FBRyxRQUFrQjtRQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNmLGlCQUFpQixFQUFFLGNBQWM7WUFDakMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQzdELENBQUMsQ0FBQztJQUNMLENBQUM7O0FBNURILGdDQTZEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IGtlYmFiQ2FzZUtleXMgfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IHsgWWFtbEZpbGUgfSBmcm9tIFwiLi4veWFtbFwiO1xuaW1wb3J0IHsgR2l0SHViIH0gZnJvbSBcIi4vZ2l0aHViXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwZW5kYWJvdE9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc2NoZWR1bGVJbnRlcnZhbD86IERlcGVuZGFib3RTY2hlZHVsZUludGVydmFsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHZlcnNpb25pbmdTdHJhdGVneT86IFZlcnNpb25pbmdTdHJhdGVneTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGlnbm9yZT86IERlcGVuZGFib3RJZ25vcmVbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaWdub3JlUHJvamVuPzogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlZ2lzdHJpZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBEZXBlbmRhYm90UmVnaXN0cnkgfTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIERlcGVuZGFib3RSZWdpc3RyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0eXBlOiBEZXBlbmRhYm90UmVnaXN0cnlUeXBlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHVzZXJuYW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBwYXNzd29yZD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBrZXk/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRva2VuPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlcGxhY2VzQmFzZT86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbj86IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGVudW0gRGVwZW5kYWJvdFJlZ2lzdHJ5VHlwZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBDT01QT1NFUl9SRUdJU1RSWSA9IFwiY29tcG9zZXItcmVnaXN0cnlcIixcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBET0NLRVJfUkVHSVNUUlkgPSBcImRvY2tlci1yZWdpc3RyeVwiLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBHSVQgPSBcImdpdFwiLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgSEVYX09SR0FOSVpBVElPTiA9IFwiaGV4LW9yZ2FuaXphdGlvblwiLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBNQVZFTl9SRVBPU0lUT1JZID0gXCJtYXZlbi1yZXBvc2l0b3J5XCIsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBOUE1fUkVHSVNUUlkgPSBcIm5wbS1yZWdpc3RyeVwiLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBOVUdFVF9GRUVEID0gXCJudWdldC1mZWVkXCIsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBQWVRIT05fSU5ERVggPSBcInB5dGhvbi1pbmRleFwiLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgUlVCWUdFTVNfU0VSVkVSID0gXCJydWJ5Z2Vtcy1zZXJ2ZXJcIixcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIFRFUlJBRk9STV9SRUdJU1RSWSA9IFwidGVycmFmb3JtLXJlZ2lzdHJ5XCIsXG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIERlcGVuZGFib3RJZ25vcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkZXBlbmRlbmN5TmFtZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdmVyc2lvbnM/OiBzdHJpbmdbXTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGVudW0gRGVwZW5kYWJvdFNjaGVkdWxlSW50ZXJ2YWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIERBSUxZID0gXCJkYWlseVwiLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBXRUVLTFkgPSBcIndlZWtseVwiLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBNT05USExZID0gXCJtb250aGx5XCIsXG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGVudW0gVmVyc2lvbmluZ1N0cmF0ZWd5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgTE9DS0ZJTEVfT05MWSA9IFwibG9ja2ZpbGUtb25seVwiLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIEFVVE8gPSBcImF1dG9cIixcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgV0lERU4gPSBcIndpZGVuXCIsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgSU5DUkVBU0UgPSBcImluY3JlYXNlXCIsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgSU5DUkVBU0VfSUZfTkVDRVNTQVJZID0gXCJpbmNyZWFzZS1pZi1uZWNlc3NhcnlcIixcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBEZXBlbmRhYm90IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZzogYW55O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgaWdub3Jlc1Byb2plbjogYm9vbGVhbjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlnbm9yZTogYW55W107XG5cbiAgY29uc3RydWN0b3IoZ2l0aHViOiBHaXRIdWIsIG9wdGlvbnM6IERlcGVuZGFib3RPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihnaXRodWIucHJvamVjdCk7XG5cbiAgICBjb25zdCBwcm9qZWN0ID0gZ2l0aHViLnByb2plY3Q7XG5cbiAgICB0aGlzLmlnbm9yZSA9IFtdO1xuICAgIHRoaXMuaWdub3Jlc1Byb2plbiA9IG9wdGlvbnMuaWdub3JlUHJvamVuID8/IHRydWU7XG5cbiAgICBjb25zdCByZWdpc3RyaWVzID0gb3B0aW9ucy5yZWdpc3RyaWVzXG4gICAgICA/IGtlYmFiQ2FzZUtleXMob3B0aW9ucy5yZWdpc3RyaWVzKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIHZlcnNpb246IDIsXG4gICAgICByZWdpc3RyaWVzLFxuICAgICAgdXBkYXRlczogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJwYWNrYWdlLWVjb3N5c3RlbVwiOiBcIm5wbVwiLFxuICAgICAgICAgIFwidmVyc2lvbmluZy1zdHJhdGVneVwiOiBcImxvY2tmaWxlLW9ubHlcIixcbiAgICAgICAgICBkaXJlY3Rvcnk6IFwiL1wiLFxuICAgICAgICAgIHNjaGVkdWxlOiB7XG4gICAgICAgICAgICBpbnRlcnZhbDpcbiAgICAgICAgICAgICAgb3B0aW9ucy5zY2hlZHVsZUludGVydmFsID8/IERlcGVuZGFib3RTY2hlZHVsZUludGVydmFsLkRBSUxZLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaWdub3JlOiAoKSA9PiAodGhpcy5pZ25vcmUubGVuZ3RoID4gMCA/IHRoaXMuaWdub3JlIDogdW5kZWZpbmVkKSxcbiAgICAgICAgICBsYWJlbHM6IG9wdGlvbnMubGFiZWxzID8gb3B0aW9ucy5sYWJlbHMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgcmVnaXN0cmllczogcmVnaXN0cmllcyA/IE9iamVjdC5rZXlzKHJlZ2lzdHJpZXMpIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgbmV3IFlhbWxGaWxlKHByb2plY3QsIFwiLmdpdGh1Yi9kZXBlbmRhYm90LnltbFwiLCB7XG4gICAgICBvYmo6IHRoaXMuY29uZmlnLFxuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBpIG9mIG9wdGlvbnMuaWdub3JlID8/IFtdKSB7XG4gICAgICB0aGlzLmFkZElnbm9yZShpLmRlcGVuZGVuY3lOYW1lLCAuLi4oaS52ZXJzaW9ucyA/PyBbXSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlnbm9yZXNQcm9qZW4pIHtcbiAgICAgIHRoaXMuYWRkSWdub3JlKFwicHJvamVuXCIpO1xuICAgIH1cbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkSWdub3JlKGRlcGVuZGVuY3lOYW1lOiBzdHJpbmcsIC4uLnZlcnNpb25zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuaWdub3JlLnB1c2goe1xuICAgICAgXCJkZXBlbmRlbmN5LW5hbWVcIjogZGVwZW5kZW5jeU5hbWUsXG4gICAgICB2ZXJzaW9uczogKCkgPT4gKHZlcnNpb25zLmxlbmd0aCA+IDAgPyB2ZXJzaW9ucyA6IHVuZGVmaW5lZCksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
179
+ Dependabot[_a] = { fqn: "projen.github.Dependabot", version: "0.52.25" };
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kYWJvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvZGVwZW5kYWJvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUF5QztBQUN6QyxrQ0FBd0M7QUFDeEMsa0NBQW1DO0FBMEduQzs7OztHQUlHO0FBQ0gsSUFBWSxzQkE2RFg7QUE3REQsV0FBWSxzQkFBc0I7SUFDaEM7OztPQUdHO0lBQ0gsaUVBQXVDLENBQUE7SUFFdkM7Ozs7T0FJRztJQUNILDZEQUFtQyxDQUFBO0lBRW5DOzs7T0FHRztJQUNILHFDQUFXLENBQUE7SUFFWDs7O09BR0c7SUFDSCwrREFBcUMsQ0FBQTtJQUVyQzs7O09BR0c7SUFDSCwrREFBcUMsQ0FBQTtJQUVyQzs7O09BR0c7SUFDSCx1REFBNkIsQ0FBQTtJQUU3Qjs7O09BR0c7SUFDSCxtREFBeUIsQ0FBQTtJQUV6Qjs7O09BR0c7SUFDSCx1REFBNkIsQ0FBQTtJQUU3Qjs7O09BR0c7SUFDSCw2REFBbUMsQ0FBQTtJQUVuQzs7O09BR0c7SUFDSCxtRUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBN0RXLHNCQUFzQixHQUF0Qiw4QkFBc0IsS0FBdEIsOEJBQXNCLFFBNkRqQztBQXdCRDs7O0dBR0c7QUFDSCxJQUFZLDBCQWVYO0FBZkQsV0FBWSwwQkFBMEI7SUFDcEM7O09BRUc7SUFDSCw2Q0FBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCwrQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILGlEQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFmVywwQkFBMEIsR0FBMUIsa0NBQTBCLEtBQTFCLGtDQUEwQixRQWVyQztBQUVEOztHQUVHO0FBQ0gsSUFBWSxrQkE0Qlg7QUE1QkQsV0FBWSxrQkFBa0I7SUFDNUI7OztPQUdHO0lBQ0gscURBQStCLENBQUE7SUFFL0I7OztPQUdHO0lBQ0gsbUNBQWEsQ0FBQTtJQUViOzs7T0FHRztJQUNILHFDQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gscUVBQStDLENBQUE7QUFDakQsQ0FBQyxFQTVCVyxrQkFBa0IsR0FBbEIsMEJBQWtCLEtBQWxCLDBCQUFrQixRQTRCN0I7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxxQkFBUztJQWN2QyxZQUFZLE1BQWMsRUFBRSxVQUE2QixFQUFFOztRQUN6RCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFFL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGFBQWEsU0FBRyxPQUFPLENBQUMsWUFBWSxtQ0FBSSxJQUFJLENBQUM7UUFFbEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVU7WUFDbkMsQ0FBQyxDQUFDLG9CQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNuQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWQsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLE9BQU8sRUFBRSxDQUFDO1lBQ1YsVUFBVTtZQUNWLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxtQkFBbUIsRUFBRSxLQUFLO29CQUMxQixxQkFBcUIsRUFBRSxlQUFlO29CQUN0QyxTQUFTLEVBQUUsR0FBRztvQkFDZCxRQUFRLEVBQUU7d0JBQ1IsUUFBUSxRQUNOLE9BQU8sQ0FBQyxnQkFBZ0IsbUNBQUksMEJBQTBCLENBQUMsS0FBSztxQkFDL0Q7b0JBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQ2hFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTO29CQUNuRCxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUM3RDthQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksZUFBUSxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRTtZQUM5QyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDaEIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsS0FBSyxNQUFNLENBQUMsVUFBSSxPQUFPLENBQUMsTUFBTSxtQ0FBSSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEdBQUcsT0FBQyxDQUFDLENBQUMsUUFBUSxtQ0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxTQUFTLENBQUMsY0FBc0IsRUFBRSxHQUFHLFFBQWtCO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2YsaUJBQWlCLEVBQUUsY0FBYztZQUNqQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDN0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6RUgsZ0NBMEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsga2ViYWJDYXNlS2V5cyB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gXCIuLi95YW1sXCI7XG5pbXBvcnQgeyBHaXRIdWIgfSBmcm9tIFwiLi9naXRodWJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEZXBlbmRhYm90T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBIb3cgb2Z0ZW4gdG8gY2hlY2sgZm9yIG5ldyB2ZXJzaW9ucyBhbmQgcmFpc2UgcHVsbCByZXF1ZXN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgU2NoZWR1bGVJbnRlcnZhbC5EQUlMWVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGVJbnRlcnZhbD86IERlcGVuZGFib3RTY2hlZHVsZUludGVydmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RyYXRlZ3kgdG8gdXNlIHdoZW4gZWRpdHMgbWFuaWZlc3QgYW5kIGxvY2sgZmlsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFZlcnNpb25pbmdTdHJhdGVneS5MT0NLRklMRV9PTkxZIFRoZSBkZWZhdWx0IGlzIHRvIG9ubHkgdXBkYXRlIHRoZVxuICAgKiBsb2NrIGZpbGUgYmVjYXVzZSBwYWNrYWdlLmpzb24gaXMgY29udHJvbGxlZCBieSBwcm9qZW4gYW5kIGFueSBvdXRzaWRlXG4gICAqIHVwZGF0ZXMgd2lsbCBmYWlsIHRoZSBidWlsZC5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25pbmdTdHJhdGVneT86IFZlcnNpb25pbmdTdHJhdGVneTtcblxuICAvKipcbiAgICogWW91IGNhbiB1c2UgdGhlIGBpZ25vcmVgIG9wdGlvbiB0byBjdXN0b21pemUgd2hpY2ggZGVwZW5kZW5jaWVzIGFyZSB1cGRhdGVkLlxuICAgKiBUaGUgaWdub3JlIG9wdGlvbiBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIG9wdGlvbnMuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmU/OiBEZXBlbmRhYm90SWdub3JlW107XG5cbiAgLyoqXG4gICAqIElnbm9yZXMgdXBkYXRlcyB0byBgcHJvamVuYC5cbiAgICpcbiAgICogVGhpcyBpcyByZXF1aXJlZCBzaW5jZSBwcm9qZW4gdXBkYXRlcyBtYXkgY2F1c2UgY2hhbmdlcyBpbiBjb21taXR0ZWQgZmlsZXNcbiAgICogYW5kIGFudGktdGFtcGVyIGNoZWNrcyB3aWxsIGZhaWwuXG4gICAqXG4gICAqIFByb2plbiB1cGdyYWRlcyBhcmUgY292ZXJlZCB0aHJvdWdoIHRoZSBgUHJvamVuVXBncmFkZWAgY2xhc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZVByb2plbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgbGFiZWxzIHRvIGFwcGx5IHRvIHRoZSBjcmVhdGVkIFBSJ3MuXG4gICAqL1xuICByZWFkb25seSBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTWFwIG9mIHBhY2thZ2UgcmVnaXN0cmllcyB0byB1c2VcbiAgICogQGRlZmF1bHQgLSB1c2UgcHVibGljIHJlZ2lzdHJpZXNcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lzdHJpZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBEZXBlbmRhYm90UmVnaXN0cnkgfTtcbn1cblxuLyoqXG4gKiBVc2UgdG8gYWRkIHByaXZhdGUgcmVnaXN0cnkgc3VwcG9ydCBmb3IgZGVwZW5kYWJvdFxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9jb2RlLXNlY3VyaXR5L3N1cHBseS1jaGFpbi1zZWN1cml0eS9rZWVwaW5nLXlvdXItZGVwZW5kZW5jaWVzLXVwZGF0ZWQtYXV0b21hdGljYWxseS9jb25maWd1cmF0aW9uLW9wdGlvbnMtZm9yLWRlcGVuZGVuY3ktdXBkYXRlcyNjb25maWd1cmF0aW9uLW9wdGlvbnMtZm9yLXByaXZhdGUtcmVnaXN0cmllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGVuZGFib3RSZWdpc3RyeSB7XG4gIC8qKlxuICAgKiBSZWdpc3RyeSB0eXBlIGUuZy4gJ25wbS1yZWdpc3RyeScgb3IgJ2RvY2tlci1yZWdpc3RyeSdcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IERlcGVuZGFib3RSZWdpc3RyeVR5cGU7XG5cbiAgLyoqXG4gICAqIFVybCBmb3IgdGhlIHJlZ2lzdHJ5IGUuZy4gJ2h0dHBzOi8vbnBtLnBrZy5naXRodWIuY29tJyBvciAncmVnaXN0cnkuaHViLmRvY2tlci5jb20nXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVzZXJuYW1lIHRoYXQgRGVwZW5kYWJvdCB1c2VzIHRvIGFjY2VzcyB0aGUgcmVnaXN0cnlcbiAgICogQGRlZmF1bHQgLSBkbyBub3QgYXV0aGVudGljYXRlXG4gICAqL1xuICByZWFkb25seSB1c2VybmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gYSBEZXBlbmRhYm90IHNlY3JldCBjb250YWluaW5nIHRoZSBwYXNzd29yZCBmb3IgdGhlIHNwZWNpZmllZCB1c2VyXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgcGFzc3dvcmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgcmVmZXJlbmNlIHRvIGEgRGVwZW5kYWJvdCBzZWNyZXQgY29udGFpbmluZyBhbiBhY2Nlc3Mga2V5IGZvciB0aGlzIHJlZ2lzdHJ5XG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkga2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWNyZXQgdG9rZW4gZm9yIGRlcGVuZGFib3QgYWNjZXNzIGUuZy4gJyR7eyBzZWNyZXRzLkRFUEVOREFCT1RfUEFDS0FHRV9UT0tFTiB9fSdcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSB0b2tlbj86IHN0cmluZztcblxuICAvKipcbiAgICogRm9yIHJlZ2lzdHJpZXMgd2l0aCB0eXBlOiBweXRob24taW5kZXgsIGlmIHRoZSBib29sZWFuIHZhbHVlIGlzIHRydWUsIHBpcFxuICAgKiBlc29sdmVzIGRlcGVuZGVuY2llcyBieSB1c2luZyB0aGUgc3BlY2lmaWVkIFVSTCByYXRoZXIgdGhhbiB0aGUgYmFzZSBVUkwgb2ZcbiAgICogdGhlIFB5dGhvbiBQYWNrYWdlIEluZGV4IChieSBkZWZhdWx0IGh0dHBzOi8vcHlwaS5vcmcvc2ltcGxlKVxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxhY2VzQmFzZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZWQgd2l0aCB0aGUgaGV4LW9yZ2FuaXphdGlvbiByZWdpc3RyeSB0eXBlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2NvZGUtc2VjdXJpdHkvc3VwcGx5LWNoYWluLXNlY3VyaXR5L2tlZXBpbmcteW91ci1kZXBlbmRlbmNpZXMtdXBkYXRlZC1hdXRvbWF0aWNhbGx5L2NvbmZpZ3VyYXRpb24tb3B0aW9ucy1mb3ItZGVwZW5kZW5jeS11cGRhdGVzI2hleC1vcmdhbml6YXRpb25cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBvcmdhbml6YXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRWFjaCBjb25maWd1cmF0aW9uIHR5cGUgcmVxdWlyZXMgeW91IHRvIHByb3ZpZGUgcGFydGljdWxhciBzZXR0aW5ncy5cbiAqIFNvbWUgdHlwZXMgYWxsb3cgbW9yZSB0aGFuIG9uZSB3YXkgdG8gY29ubmVjdFxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9jb2RlLXNlY3VyaXR5L3N1cHBseS1jaGFpbi1zZWN1cml0eS9rZWVwaW5nLXlvdXItZGVwZW5kZW5jaWVzLXVwZGF0ZWQtYXV0b21hdGljYWxseS9jb25maWd1cmF0aW9uLW9wdGlvbnMtZm9yLWRlcGVuZGVuY3ktdXBkYXRlcyNjb25maWd1cmF0aW9uLW9wdGlvbnMtZm9yLXByaXZhdGUtcmVnaXN0cmllc1xuICovXG5leHBvcnQgZW51bSBEZXBlbmRhYm90UmVnaXN0cnlUeXBlIHtcbiAgLyoqXG4gICAqIFRoZSBjb21wb3Nlci1yZXBvc2l0b3J5IHR5cGUgc3VwcG9ydHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2NvZGUtc2VjdXJpdHkvc3VwcGx5LWNoYWluLXNlY3VyaXR5L2tlZXBpbmcteW91ci1kZXBlbmRlbmNpZXMtdXBkYXRlZC1hdXRvbWF0aWNhbGx5L2NvbmZpZ3VyYXRpb24tb3B0aW9ucy1mb3ItZGVwZW5kZW5jeS11cGRhdGVzI2NvbXBvc2VyLXJlcG9zaXRvcnlcbiAgICovXG4gIENPTVBPU0VSX1JFR0lTVFJZID0gXCJjb21wb3Nlci1yZWdpc3RyeVwiLFxuXG4gIC8qKlxuICAgKiBUaGUgZG9ja2VyLXJlZ2lzdHJ5IHR5cGUgc3VwcG9ydHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLlxuICAgKiBUaGUgZG9ja2VyLXJlZ2lzdHJ5IHR5cGUgY2FuIGFsc28gYmUgdXNlZCB0byBwdWxsIGZyb20gQW1hem9uIEVDUiB1c2luZyBzdGF0aWMgQVdTIGNyZWRlbnRpYWxzXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vY29kZS1zZWN1cml0eS9zdXBwbHktY2hhaW4tc2VjdXJpdHkva2VlcGluZy15b3VyLWRlcGVuZGVuY2llcy11cGRhdGVkLWF1dG9tYXRpY2FsbHkvY29uZmlndXJhdGlvbi1vcHRpb25zLWZvci1kZXBlbmRlbmN5LXVwZGF0ZXMjZG9ja2VyLXJlZ2lzdHJ5XG4gICAqL1xuICBET0NLRVJfUkVHSVNUUlkgPSBcImRvY2tlci1yZWdpc3RyeVwiLFxuXG4gIC8qKlxuICAgKiBUaGUgZ2l0IHR5cGUgc3VwcG9ydHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vY29kZS1zZWN1cml0eS9zdXBwbHktY2hhaW4tc2VjdXJpdHkva2VlcGluZy15b3VyLWRlcGVuZGVuY2llcy11cGRhdGVkLWF1dG9tYXRpY2FsbHkvY29uZmlndXJhdGlvbi1vcHRpb25zLWZvci1kZXBlbmRlbmN5LXVwZGF0ZXMjZ2l0XG4gICAqL1xuICBHSVQgPSBcImdpdFwiLFxuXG4gIC8qKlxuICAgKiBUaGUgaGV4LW9yZ2FuaXphdGlvbiB0eXBlIHN1cHBvcnRzIG9yZ2FuaXphdGlvbiBhbmQga2V5XG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vY29kZS1zZWN1cml0eS9zdXBwbHktY2hhaW4tc2VjdXJpdHkva2VlcGluZy15b3VyLWRlcGVuZGVuY2llcy11cGRhdGVkLWF1dG9tYXRpY2FsbHkvY29uZmlndXJhdGlvbi1vcHRpb25zLWZvci1kZXBlbmRlbmN5LXVwZGF0ZXMjaGV4LW9yZ2FuaXphdGlvblxuICAgKi9cbiAgSEVYX09SR0FOSVpBVElPTiA9IFwiaGV4LW9yZ2FuaXphdGlvblwiLFxuXG4gIC8qKlxuICAgKiBUaGUgbWF2ZW4tcmVwb3NpdG9yeSB0eXBlIHN1cHBvcnRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCwgb3IgdG9rZW5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9jb2RlLXNlY3VyaXR5L3N1cHBseS1jaGFpbi1zZWN1cml0eS9rZWVwaW5nLXlvdXItZGVwZW5kZW5jaWVzLXVwZGF0ZWQtYXV0b21hdGljYWxseS9jb25maWd1cmF0aW9uLW9wdGlvbnMtZm9yLWRlcGVuZGVuY3ktdXBkYXRlcyNtYXZlbi1yZXBvc2l0b3J5XG4gICAqL1xuICBNQVZFTl9SRVBPU0lUT1JZID0gXCJtYXZlbi1yZXBvc2l0b3J5XCIsXG5cbiAgLyoqXG4gICAqIFRoZSBucG0tcmVnaXN0cnkgdHlwZSBzdXBwb3J0cyB1c2VybmFtZSBhbmQgcGFzc3dvcmQsIG9yIHRva2VuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vY29kZS1zZWN1cml0eS9zdXBwbHktY2hhaW4tc2VjdXJpdHkva2VlcGluZy15b3VyLWRlcGVuZGVuY2llcy11cGRhdGVkLWF1dG9tYXRpY2FsbHkvY29uZmlndXJhdGlvbi1vcHRpb25zLWZvci1kZXBlbmRlbmN5LXVwZGF0ZXMjbnBtLXJlZ2lzdHJ5XG4gICAqL1xuICBOUE1fUkVHSVNUUlkgPSBcIm5wbS1yZWdpc3RyeVwiLFxuXG4gIC8qKlxuICAgKiBUaGUgbnVnZXQtZmVlZCB0eXBlIHN1cHBvcnRzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCwgb3IgdG9rZW5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9jb2RlLXNlY3VyaXR5L3N1cHBseS1jaGFpbi1zZWN1cml0eS9rZWVwaW5nLXlvdXItZGVwZW5kZW5jaWVzLXVwZGF0ZWQtYXV0b21hdGljYWxseS9jb25maWd1cmF0aW9uLW9wdGlvbnMtZm9yLWRlcGVuZGVuY3ktdXBkYXRlcyNudWdldC1mZWVkXG4gICAqL1xuICBOVUdFVF9GRUVEID0gXCJudWdldC1mZWVkXCIsXG5cbiAgLyoqXG4gICAqIFRoZSBweXRob24taW5kZXggdHlwZSBzdXBwb3J0cyB1c2VybmFtZSBhbmQgcGFzc3dvcmQsIG9yIHRva2VuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vY29kZS1zZWN1cml0eS9zdXBwbHktY2hhaW4tc2VjdXJpdHkva2VlcGluZy15b3VyLWRlcGVuZGVuY2llcy11cGRhdGVkLWF1dG9tYXRpY2FsbHkvY29uZmlndXJhdGlvbi1vcHRpb25zLWZvci1kZXBlbmRlbmN5LXVwZGF0ZXMjcHl0aG9uLWluZGV4XG4gICAqL1xuICBQWVRIT05fSU5ERVggPSBcInB5dGhvbi1pbmRleFwiLFxuXG4gIC8qKlxuICAgKiBUaGUgcnVieWdlbXMtc2VydmVyIHR5cGUgc3VwcG9ydHMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLCBvciB0b2tlblxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2NvZGUtc2VjdXJpdHkvc3VwcGx5LWNoYWluLXNlY3VyaXR5L2tlZXBpbmcteW91ci1kZXBlbmRlbmNpZXMtdXBkYXRlZC1hdXRvbWF0aWNhbGx5L2NvbmZpZ3VyYXRpb24tb3B0aW9ucy1mb3ItZGVwZW5kZW5jeS11cGRhdGVzI3J1YnlnZW1zLXNlcnZlclxuICAgKi9cbiAgUlVCWUdFTVNfU0VSVkVSID0gXCJydWJ5Z2Vtcy1zZXJ2ZXJcIixcblxuICAvKipcbiAgICogVGhlIHRlcnJhZm9ybS1yZWdpc3RyeSB0eXBlIHN1cHBvcnRzIGEgdG9rZW5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9jb2RlLXNlY3VyaXR5L3N1cHBseS1jaGFpbi1zZWN1cml0eS9rZWVwaW5nLXlvdXItZGVwZW5kZW5jaWVzLXVwZGF0ZWQtYXV0b21hdGljYWxseS9jb25maWd1cmF0aW9uLW9wdGlvbnMtZm9yLWRlcGVuZGVuY3ktdXBkYXRlcyN0ZXJyYWZvcm0tcmVnaXN0cnlcbiAgICovXG4gIFRFUlJBRk9STV9SRUdJU1RSWSA9IFwidGVycmFmb3JtLXJlZ2lzdHJ5XCIsXG59XG5cbi8qKlxuICogWW91IGNhbiB1c2UgdGhlIGBpZ25vcmVgIG9wdGlvbiB0byBjdXN0b21pemUgd2hpY2ggZGVwZW5kZW5jaWVzIGFyZSB1cGRhdGVkLlxuICogVGhlIGlnbm9yZSBvcHRpb24gc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGVuZGFib3RJZ25vcmUge1xuICAvKipcbiAgICogVXNlIHRvIGlnbm9yZSB1cGRhdGVzIGZvciBkZXBlbmRlbmNpZXMgd2l0aCBtYXRjaGluZyBuYW1lcywgb3B0aW9uYWxseVxuICAgKiB1c2luZyBgKmAgdG8gbWF0Y2ggemVybyBvciBtb3JlIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEZvciBKYXZhIGRlcGVuZGVuY2llcywgdGhlIGZvcm1hdCBvZiB0aGUgZGVwZW5kZW5jeS1uYW1lIGF0dHJpYnV0ZSBpczpcbiAgICogYGdyb3VwSWQ6YXJ0aWZhY3RJZGAsIGZvciBleGFtcGxlOiBgb3JnLmtvaHN1a2U6Z2l0aHViLWFwaWAuXG4gICAqL1xuICByZWFkb25seSBkZXBlbmRlbmN5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2UgdG8gaWdub3JlIHNwZWNpZmljIHZlcnNpb25zIG9yIHJhbmdlcyBvZiB2ZXJzaW9ucy4gSWYgeW91IHdhbnQgdG9cbiAgICogZGVmaW5lIGEgcmFuZ2UsIHVzZSB0aGUgc3RhbmRhcmQgcGF0dGVybiBmb3IgdGhlIHBhY2thZ2UgbWFuYWdlciAoZm9yXG4gICAqIGV4YW1wbGU6IGBeMS4wLjBgIGZvciBucG0sIG9yIGB+PiAyLjBgIGZvciBCdW5kbGVyKS5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25zPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogSG93IG9mdGVuIHRvIGNoZWNrIGZvciBuZXcgdmVyc2lvbnMgYW5kIHJhaXNlIHB1bGwgcmVxdWVzdHMgZm9yIHZlcnNpb25cbiAqIHVwZGF0ZXMuXG4gKi9cbmV4cG9ydCBlbnVtIERlcGVuZGFib3RTY2hlZHVsZUludGVydmFsIHtcbiAgLyoqXG4gICAqIFJ1bnMgb24gZXZlcnkgd2Vla2RheSwgTW9uZGF5IHRvIEZyaWRheS5cbiAgICovXG4gIERBSUxZID0gXCJkYWlseVwiLFxuXG4gIC8qKlxuICAgKiBSdW5zIG9uY2UgZWFjaCB3ZWVrLiBCeSBkZWZhdWx0LCB0aGlzIGlzIG9uIE1vbmRheS5cbiAgICovXG4gIFdFRUtMWSA9IFwid2Vla2x5XCIsXG5cbiAgLyoqXG4gICAqIFJ1bnMgb25jZSBlYWNoIG1vbnRoLiBUaGlzIGlzIG9uIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKi9cbiAgTU9OVEhMWSA9IFwibW9udGhseVwiLFxufVxuXG4vKipcbiAqIFRoZSBzdHJhdGVneSB0byB1c2Ugd2hlbiBlZGl0cyBtYW5pZmVzdCBhbmQgbG9jayBmaWxlcy5cbiAqL1xuZXhwb3J0IGVudW0gVmVyc2lvbmluZ1N0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIE9ubHkgY3JlYXRlIHB1bGwgcmVxdWVzdHMgdG8gdXBkYXRlIGxvY2tmaWxlcyB1cGRhdGVzLiBJZ25vcmUgYW55IG5ld1xuICAgKiB2ZXJzaW9ucyB0aGF0IHdvdWxkIHJlcXVpcmUgcGFja2FnZSBtYW5pZmVzdCBjaGFuZ2VzLlxuICAgKi9cbiAgTE9DS0ZJTEVfT05MWSA9IFwibG9ja2ZpbGUtb25seVwiLFxuXG4gIC8qKlxuICAgKiAtIEZvciBhcHBzLCB0aGUgdmVyc2lvbiByZXF1aXJlbWVudHMgYXJlIGluY3JlYXNlZC5cbiAgICogLSBGb3IgbGlicmFyaWVzLCB0aGUgcmFuZ2Ugb2YgdmVyc2lvbnMgaXMgd2lkZW5lZC5cbiAgICovXG4gIEFVVE8gPSBcImF1dG9cIixcblxuICAvKipcbiAgICogUmVsYXggdGhlIHZlcnNpb24gcmVxdWlyZW1lbnQgdG8gaW5jbHVkZSBib3RoIHRoZSBuZXcgYW5kIG9sZCB2ZXJzaW9uLCB3aGVuXG4gICAqIHBvc3NpYmxlLlxuICAgKi9cbiAgV0lERU4gPSBcIndpZGVuXCIsXG5cbiAgLyoqXG4gICAqIEFsd2F5cyBpbmNyZWFzZSB0aGUgdmVyc2lvbiByZXF1aXJlbWVudCB0byBtYXRjaCB0aGUgbmV3IHZlcnNpb24uXG4gICAqL1xuICBJTkNSRUFTRSA9IFwiaW5jcmVhc2VcIixcblxuICAvKipcbiAgICogSW5jcmVhc2UgdGhlIHZlcnNpb24gcmVxdWlyZW1lbnQgb25seSB3aGVuIHJlcXVpcmVkIGJ5IHRoZSBuZXcgdmVyc2lvbi5cbiAgICovXG4gIElOQ1JFQVNFX0lGX05FQ0VTU0FSWSA9IFwiaW5jcmVhc2UtaWYtbmVjZXNzYXJ5XCIsXG59XG5cbi8qKlxuICogRGVmaW5lcyBkZXBlbmRhYm90IGNvbmZpZ3VyYXRpb24gZm9yIG5vZGUgcHJvamVjdHMuXG4gKlxuICogU2luY2UgbW9kdWxlIHZlcnNpb25zIGFyZSBtYW5hZ2VkIGluIHByb2plbiwgdGhlIHZlcnNpb25pbmcgc3RyYXRlZ3kgd2lsbCBiZVxuICogY29uZmlndXJlZCB0byBcImxvY2tmaWxlLW9ubHlcIiB3aGljaCBtZWFucyB0aGF0IG9ubHkgdXBkYXRlcyB0aGF0IGNhbiBiZSBkb25lXG4gKiBvbiB0aGUgbG9ja2ZpbGUgaXRzZWxmIHdpbGwgYmUgcHJvcG9zZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXBlbmRhYm90IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSByYXcgZGVwZW5kYWJvdCBjb25maWd1cmF0aW9uLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2dpdGh1Yi9hZG1pbmlzdGVyaW5nLWEtcmVwb3NpdG9yeS9jb25maWd1cmF0aW9uLW9wdGlvbnMtZm9yLWRlcGVuZGVuY3ktdXBkYXRlc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZzogYW55O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCBwcm9qZW4gaXMgYWxzbyB1cGdyYWRlZCBpbiB0aGlzIGNvbmZpZyxcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpZ25vcmVzUHJvamVuOiBib29sZWFuO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaWdub3JlOiBhbnlbXTtcblxuICBjb25zdHJ1Y3RvcihnaXRodWI6IEdpdEh1Yiwgb3B0aW9uczogRGVwZW5kYWJvdE9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKGdpdGh1Yi5wcm9qZWN0KTtcblxuICAgIGNvbnN0IHByb2plY3QgPSBnaXRodWIucHJvamVjdDtcblxuICAgIHRoaXMuaWdub3JlID0gW107XG4gICAgdGhpcy5pZ25vcmVzUHJvamVuID0gb3B0aW9ucy5pZ25vcmVQcm9qZW4gPz8gdHJ1ZTtcblxuICAgIGNvbnN0IHJlZ2lzdHJpZXMgPSBvcHRpb25zLnJlZ2lzdHJpZXNcbiAgICAgID8ga2ViYWJDYXNlS2V5cyhvcHRpb25zLnJlZ2lzdHJpZXMpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgdmVyc2lvbjogMixcbiAgICAgIHJlZ2lzdHJpZXMsXG4gICAgICB1cGRhdGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcInBhY2thZ2UtZWNvc3lzdGVtXCI6IFwibnBtXCIsXG4gICAgICAgICAgXCJ2ZXJzaW9uaW5nLXN0cmF0ZWd5XCI6IFwibG9ja2ZpbGUtb25seVwiLFxuICAgICAgICAgIGRpcmVjdG9yeTogXCIvXCIsXG4gICAgICAgICAgc2NoZWR1bGU6IHtcbiAgICAgICAgICAgIGludGVydmFsOlxuICAgICAgICAgICAgICBvcHRpb25zLnNjaGVkdWxlSW50ZXJ2YWwgPz8gRGVwZW5kYWJvdFNjaGVkdWxlSW50ZXJ2YWwuREFJTFksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpZ25vcmU6ICgpID0+ICh0aGlzLmlnbm9yZS5sZW5ndGggPiAwID8gdGhpcy5pZ25vcmUgOiB1bmRlZmluZWQpLFxuICAgICAgICAgIGxhYmVsczogb3B0aW9ucy5sYWJlbHMgPyBvcHRpb25zLmxhYmVscyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICByZWdpc3RyaWVzOiByZWdpc3RyaWVzID8gT2JqZWN0LmtleXMocmVnaXN0cmllcykgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBuZXcgWWFtbEZpbGUocHJvamVjdCwgXCIuZ2l0aHViL2RlcGVuZGFib3QueW1sXCIsIHtcbiAgICAgIG9iajogdGhpcy5jb25maWcsXG4gICAgICBjb21taXR0ZWQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IGkgb2Ygb3B0aW9ucy5pZ25vcmUgPz8gW10pIHtcbiAgICAgIHRoaXMuYWRkSWdub3JlKGkuZGVwZW5kZW5jeU5hbWUsIC4uLihpLnZlcnNpb25zID8/IFtdKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaWdub3Jlc1Byb2plbikge1xuICAgICAgdGhpcy5hZGRJZ25vcmUoXCJwcm9qZW5cIik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIElnbm9yZXMgYSBkZXBlbmRlbmN5IGZyb20gYXV0b21hdGljIHVwZGF0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSBkZXBlbmRlbmN5TmFtZSBVc2UgdG8gaWdub3JlIHVwZGF0ZXMgZm9yIGRlcGVuZGVuY2llcyB3aXRoIG1hdGNoaW5nXG4gICAqIG5hbWVzLCBvcHRpb25hbGx5IHVzaW5nIGAqYCB0byBtYXRjaCB6ZXJvIG9yIG1vcmUgY2hhcmFjdGVycy5cbiAgICogQHBhcmFtIHZlcnNpb25zIFVzZSB0byBpZ25vcmUgc3BlY2lmaWMgdmVyc2lvbnMgb3IgcmFuZ2VzIG9mIHZlcnNpb25zLiBJZlxuICAgKiB5b3Ugd2FudCB0byBkZWZpbmUgYSByYW5nZSwgdXNlIHRoZSBzdGFuZGFyZCBwYXR0ZXJuIGZvciB0aGUgcGFja2FnZVxuICAgKiBtYW5hZ2VyIChmb3IgZXhhbXBsZTogYF4xLjAuMGAgZm9yIG5wbSwgb3IgYH4+IDIuMGAgZm9yIEJ1bmRsZXIpLlxuICAgKi9cbiAgcHVibGljIGFkZElnbm9yZShkZXBlbmRlbmN5TmFtZTogc3RyaW5nLCAuLi52ZXJzaW9uczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmlnbm9yZS5wdXNoKHtcbiAgICAgIFwiZGVwZW5kZW5jeS1uYW1lXCI6IGRlcGVuZGVuY3lOYW1lLFxuICAgICAgdmVyc2lvbnM6ICgpID0+ICh2ZXJzaW9ucy5sZW5ndGggPiAwID8gdmVyc2lvbnMgOiB1bmRlZmluZWQpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=