@aws-cdk-testing/cli-integ 3.4.5 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/lib/aws.js +6 -9
  2. package/lib/cli/query-github.js +2 -3
  3. package/lib/cli/run-suite.js +2 -3
  4. package/lib/cli/stage-distribution.js +4 -4
  5. package/lib/eventually.js +3 -3
  6. package/lib/files.js +2 -3
  7. package/lib/github.js +5 -6
  8. package/lib/integ-test.js +58 -3
  9. package/lib/package-sources/release-source.d.ts +1 -1
  10. package/lib/package-sources/release-source.js +2 -3
  11. package/lib/package-sources/repo-source.d.ts +1 -1
  12. package/lib/package-sources/repo-source.js +1 -1
  13. package/lib/package-sources/repo-tools/npm.js +4 -5
  14. package/lib/package-sources/subprocess.d.ts +1 -1
  15. package/lib/package-sources/subprocess.js +1 -1
  16. package/lib/process.js +5 -6
  17. package/lib/proxy.d.ts +1 -1
  18. package/lib/proxy.js +2 -2
  19. package/lib/resource-pool.js +5 -3
  20. package/lib/shell.d.ts +3 -3
  21. package/lib/shell.js +8 -12
  22. package/lib/staging/codeartifact.js +8 -11
  23. package/lib/staging/maven.d.ts +2 -2
  24. package/lib/staging/maven.js +3 -5
  25. package/lib/staging/npm.d.ts +2 -2
  26. package/lib/staging/npm.js +1 -1
  27. package/lib/staging/nuget.d.ts +2 -2
  28. package/lib/staging/nuget.js +1 -1
  29. package/lib/staging/parallel-shell.js +2 -2
  30. package/lib/staging/pypi.d.ts +2 -2
  31. package/lib/staging/pypi.js +1 -1
  32. package/lib/with-aws.d.ts +2 -2
  33. package/lib/with-aws.js +5 -4
  34. package/lib/with-cdk-app.d.ts +7 -5
  35. package/lib/with-cdk-app.js +30 -33
  36. package/lib/with-cli-lib.d.ts +4 -3
  37. package/lib/with-cli-lib.js +2 -1
  38. package/lib/with-packages.d.ts +1 -1
  39. package/lib/with-packages.js +1 -1
  40. package/lib/with-sam.d.ts +3 -3
  41. package/lib/with-sam.js +5 -7
  42. package/lib/with-temporary-directory.d.ts +1 -1
  43. package/lib/with-temporary-directory.js +1 -1
  44. package/lib/xpmutex.js +5 -3
  45. package/npm-shrinkwrap.json +8722 -0
  46. package/package.json +11 -7
  47. package/resources/cdk-apps/refactoring/cdk.json +7 -0
  48. package/resources/cdk-apps/refactoring/refactoring.js +18 -0
  49. package/test-reports/junit.xml +15 -0
  50. package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.js +11 -11
  51. package/tests/cli-integ-tests/cdk-assets/smoketest.integtest.js +9 -9
  52. package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.js +2 -3
  53. package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.js +2 -3
  54. package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.js +2 -3
  55. package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.js +2 -3
  56. package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.js +2 -3
  57. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.js +4 -6
  58. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.js +2 -3
  59. package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.js +4 -5
  60. package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.js +2 -3
  61. package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.js +1 -1
  62. package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.js +2 -3
  63. package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.js +3 -4
  64. package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.js +3 -4
  65. package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.js +2 -3
  66. package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.js +2 -3
  67. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.js +2 -3
  68. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.js +2 -3
  69. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.js +2 -3
  70. package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.js +3 -4
  71. package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.js +2 -3
  72. package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.js +2 -3
  73. package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.js +2 -3
  74. package/tests/cli-integ-tests/cdk-deploy.integtest.js +2 -3
  75. package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.js +6 -7
  76. package/tests/cli-integ-tests/cdk-fast-deploy.integtest.js +4 -5
  77. package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.js +2 -2
  78. package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.js +6 -5
  79. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.js +2 -3
  80. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.js +3 -4
  81. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.js +3 -4
  82. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.js +3 -4
  83. package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.js +5 -6
  84. package/tests/cli-integ-tests/cdk-import-interactive.integtest.js +5 -6
  85. package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.js +2 -3
  86. package/tests/cli-integ-tests/cdk-lib-security-related-changes-without-a-cli-are-expected-to-fail-when-approval-is-required.integtest.js +1 -2
  87. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.js +1 -1
  88. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.js +1 -1
  89. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.js +1 -1
  90. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.js +1 -1
  91. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.js +1 -1
  92. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.js +1 -1
  93. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.js +1 -1
  94. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.js +1 -1
  95. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.js +1 -1
  96. package/tests/cli-integ-tests/cdk-migrate/testcase.d.ts +1 -1
  97. package/tests/cli-integ-tests/cdk-migrate/testcase.js +4 -6
  98. package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.js +2 -3
  99. package/tests/cli-integ-tests/cdk-refactor-dry-run.integtest.d.ts +1 -0
  100. package/tests/cli-integ-tests/cdk-refactor-dry-run.integtest.js +41 -0
  101. package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.js +2 -3
  102. package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.js +5 -6
  103. package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.js +4 -4
  104. package/tests/cli-integ-tests/cdk-update-to-stack-in-rollback_complete-state-will-delete-stack-and-create-a-new-one.integtest.js +5 -6
  105. package/tests/cli-integ-tests/proxy.integtest.js +2 -3
  106. package/tests/init-go/init-go.integtest.js +2 -3
  107. package/tests/init-typescript-app/init-typescript-app.integtest.js +1 -1
  108. package/tests/tool-integrations/amplify.integtest.js +4 -4
  109. package/tests/tool-integrations/with-tool-context.d.ts +5 -5
  110. package/tests/tool-integrations/with-tool-context.js +1 -1
  111. package/.eslintrc.js +0 -9
  112. package/lib/aws.ts +0 -303
  113. package/lib/cli/query-github.ts +0 -56
  114. package/lib/cli/run-suite.ts +0 -153
  115. package/lib/cli/stage-distribution.ts +0 -262
  116. package/lib/cli/test-root.ts +0 -3
  117. package/lib/corking.ts +0 -33
  118. package/lib/eventually.ts +0 -42
  119. package/lib/files.ts +0 -80
  120. package/lib/github.ts +0 -43
  121. package/lib/index.ts +0 -13
  122. package/lib/integ-test.ts +0 -110
  123. package/lib/lists.ts +0 -9
  124. package/lib/memoize.ts +0 -14
  125. package/lib/npm.ts +0 -41
  126. package/lib/package-sources/release-source.ts +0 -82
  127. package/lib/package-sources/repo-source.ts +0 -112
  128. package/lib/package-sources/repo-tools/npm.ts +0 -48
  129. package/lib/package-sources/source.ts +0 -35
  130. package/lib/package-sources/subprocess.ts +0 -15
  131. package/lib/process.ts +0 -154
  132. package/lib/proxy.ts +0 -64
  133. package/lib/resource-pool.ts +0 -140
  134. package/lib/resources.ts +0 -4
  135. package/lib/shell.ts +0 -331
  136. package/lib/staging/codeartifact.ts +0 -387
  137. package/lib/staging/maven.ts +0 -95
  138. package/lib/staging/npm.ts +0 -62
  139. package/lib/staging/nuget.ts +0 -75
  140. package/lib/staging/parallel-shell.ts +0 -51
  141. package/lib/staging/pypi.ts +0 -50
  142. package/lib/staging/usage-dir.ts +0 -99
  143. package/lib/with-aws.ts +0 -111
  144. package/lib/with-cdk-app.ts +0 -845
  145. package/lib/with-cli-lib.ts +0 -149
  146. package/lib/with-packages.ts +0 -15
  147. package/lib/with-sam.ts +0 -294
  148. package/lib/with-temporary-directory.ts +0 -35
  149. package/lib/with-timeout.ts +0 -33
  150. package/lib/xpmutex.ts +0 -218
  151. package/resources/cli-regression-patches/v2.130.0/node_modules/@aws-cdk-testing/cli-integ/resources/cdk-apps/sam_cdk_integ_app/lib/nested-stack.js +0 -19
  152. package/resources/cli-regression-patches/v2.130.0/node_modules/@aws-cdk-testing/cli-integ/resources/cdk-apps/sam_cdk_integ_app/lib/test-stack.js +0 -134
  153. package/tests/cli-integ-tests/cdk---exclusively-selects-only-selected-stack.integtest.ts +0 -29
  154. package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.ts +0 -92
  155. package/tests/cli-integ-tests/cdk-assets/smoketest.integtest.ts +0 -82
  156. package/tests/cli-integ-tests/cdk-automatic-ordering-with-concurrency.integtest.ts +0 -15
  157. package/tests/cli-integ-tests/cdk-automatic-ordering.integtest.ts +0 -15
  158. package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.ts +0 -40
  159. package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.ts +0 -40
  160. package/tests/cli-integ-tests/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.ts +0 -29
  161. package/tests/cli-integ-tests/cdk-bootstrap-a-customized-template-vendor-will-not-overwrite-the-default-template.integtest.ts +0 -42
  162. package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.ts +0 -26
  163. package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.ts +0 -28
  164. package/tests/cli-integ-tests/cdk-bootstrap-can-and-deploy-if-omitting-execution-policies.integtest.ts +0 -21
  165. package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.ts +0 -22
  166. package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.ts +0 -21
  167. package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.ts +0 -27
  168. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-modern-synthesized-stack-even-if-bootstrap-stack-name-is-unknown.integtest.ts +0 -24
  169. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-with-session-tags-on-the-deploy.integtest.ts +0 -25
  170. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-without-execution-role-and-with-session-tags-on-deploy-role.integtest.ts +0 -22
  171. package/tests/cli-integ-tests/cdk-bootstrap-can-dump-the-template.integtest.ts +0 -32
  172. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.ts +0 -77
  173. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.ts +0 -30
  174. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-(with-slashes)-to-bootstrap.integtest.ts +0 -15
  175. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-to-bootstrap.integtest.ts +0 -15
  176. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-default-permissions-boundary-to-bootstrap.integtest.ts +0 -15
  177. package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.ts +0 -34
  178. package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap-(with-docker-image).integtest.ts +0 -22
  179. package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap.integtest.ts +0 -22
  180. package/tests/cli-integ-tests/cdk-bootstrap-deploy-old-style-synthesis-to-new-style-bootstrap.integtest.ts +0 -21
  181. package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.ts +0 -24
  182. package/tests/cli-integ-tests/cdk-bootstrap-upgrade-legacy-bootstrap-stack-to-new-bootstrap-stack-while-in-use.integtest.ts +0 -47
  183. package/tests/cli-integ-tests/cdk-can-still-load-old-assemblies.integtest.ts +0 -57
  184. package/tests/cli-integ-tests/cdk-cdk-diff---fail-on-multiple-stacks-exits-with-error-if-any-of-the-stacks-contains-a-diff.integtest.ts +0 -22
  185. package/tests/cli-integ-tests/cdk-cdk-diff---fail-with-multiple-stack-exits-with-if-any-of-the-stacks-contains-a-diff.integtest.ts +0 -22
  186. package/tests/cli-integ-tests/cdk-cdk-diff---quiet-does-not-print-there-were-no-differences-message-for-stacks-which-have-no-differences.integtest.ts +0 -19
  187. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-changes-are-present.integtest.ts +0 -14
  188. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-access-control-config.integtest.ts +0 -13
  189. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-assignment.integtest.ts +0 -13
  190. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-with-managed-policy.integtest.ts +0 -13
  191. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-without-managed-policy.integtest.ts +0 -13
  192. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-access-control-information.integtest.ts +0 -35
  193. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-assignment-information.integtest.ts +0 -37
  194. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-with-managed-policy-information.integtest.ts +0 -35
  195. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-without-managed-policy-information.integtest.ts +0 -37
  196. package/tests/cli-integ-tests/cdk-cdk-diff-doesnt-show-resource-metadata-changes.integtest.ts +0 -23
  197. package/tests/cli-integ-tests/cdk-cdk-diff-shows-resource-metadata-changes-with---no-change-set.integtest.ts +0 -23
  198. package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-and-custom-toolkit-stack-name-and-qualifier-does-not-fail.integtest.ts +0 -39
  199. package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-does-not-fail.integtest.ts +0 -28
  200. package/tests/cli-integ-tests/cdk-cdk-diff.integtest.ts +0 -18
  201. package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json---long.integtest.ts +0 -50
  202. package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json.integtest.ts +0 -95
  203. package/tests/cli-integ-tests/cdk-cdk-ls.integtest.ts +0 -36
  204. package/tests/cli-integ-tests/cdk-cdk-notices-are-displayed-correctly.integtest.ts +0 -42
  205. package/tests/cli-integ-tests/cdk-cdk-notices-with---unacknowledged.integtest.ts +0 -14
  206. package/tests/cli-integ-tests/cdk-cdk-synth-add-the-metadata-properties-expected-by-sam.integtest.ts +0 -126
  207. package/tests/cli-integ-tests/cdk-cdk-synth-bundled-functions-as-expected.integtest.ts +0 -80
  208. package/tests/cli-integ-tests/cdk-cdk-synth.integtest.ts +0 -53
  209. package/tests/cli-integ-tests/cdk-ci-output-to-stderr.integtest.ts +0 -19
  210. package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.ts +0 -28
  211. package/tests/cli-integ-tests/cdk-construct-with-builtin-lambda-function.integtest.ts +0 -14
  212. package/tests/cli-integ-tests/cdk-context-in-stage-propagates-to-top.integtest.ts +0 -20
  213. package/tests/cli-integ-tests/cdk-context-setting.integtest.ts +0 -33
  214. package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.ts +0 -23
  215. package/tests/cli-integ-tests/cdk-deploy-all-concurrently.integtest.ts +0 -17
  216. package/tests/cli-integ-tests/cdk-deploy-all.integtest.ts +0 -14
  217. package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.ts +0 -31
  218. package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.ts +0 -50
  219. package/tests/cli-integ-tests/cdk-deploy-no-stacks-error.integtest.ts +0 -18
  220. package/tests/cli-integ-tests/cdk-deploy-no-stacks-with---ignore-no-stacks.integtest.ts +0 -17
  221. package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.ts +0 -51
  222. package/tests/cli-integ-tests/cdk-deploy-stack-with-docker-asset.integtest.ts +0 -11
  223. package/tests/cli-integ-tests/cdk-deploy-stack-with-lambda-asset-to-object-lock-enabled-asset-bucket.integtest.ts +0 -42
  224. package/tests/cli-integ-tests/cdk-deploy-stack-without-resource.integtest.ts +0 -32
  225. package/tests/cli-integ-tests/cdk-deploy-wildcard-with-outputs.integtest.ts +0 -28
  226. package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.ts +0 -29
  227. package/tests/cli-integ-tests/cdk-deploy-with-method-direct-and-import-existing-resources-fails.integtest.ts +0 -17
  228. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.ts +0 -36
  229. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.ts +0 -45
  230. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.ts +0 -37
  231. package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.ts +0 -33
  232. package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.ts +0 -26
  233. package/tests/cli-integ-tests/cdk-deploy-with-role.integtest.ts +0 -119
  234. package/tests/cli-integ-tests/cdk-deploy-with-wildcard-and-parameters.integtest.ts +0 -22
  235. package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.ts +0 -36
  236. package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.ts +0 -28
  237. package/tests/cli-integ-tests/cdk-deploy.integtest.ts +0 -20
  238. package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.ts +0 -36
  239. package/tests/cli-integ-tests/cdk-doubly-nested-stack.integtest.ts +0 -12
  240. package/tests/cli-integ-tests/cdk-enablediffnofail.integtest.ts +0 -44
  241. package/tests/cli-integ-tests/cdk-failed-deploy-does-not-hang.integtest.ts +0 -12
  242. package/tests/cli-integ-tests/cdk-fast-deploy.integtest.ts +0 -41
  243. package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-ecr-images.integtest.ts +0 -48
  244. package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-s3-objects.integtest.ts +0 -51
  245. package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-ecr-images.integtest.ts +0 -48
  246. package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-s3-objects.integtest.ts +0 -52
  247. package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-ecr-images.integtest.ts +0 -47
  248. package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-s3-objects.integtest.ts +0 -63
  249. package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-ecr-images.integtest.ts +0 -55
  250. package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.ts +0 -63
  251. package/tests/cli-integ-tests/cdk-generating-and-loading-assembly.integtest.ts +0 -52
  252. package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-detects-failed-deployment-and-errors.integtest.ts +0 -29
  253. package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.ts +0 -45
  254. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.ts +0 -36
  255. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.ts +0 -41
  256. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.ts +0 -53
  257. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.ts +0 -43
  258. package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.ts +0 -59
  259. package/tests/cli-integ-tests/cdk-iam-diff.integtest.ts +0 -23
  260. package/tests/cli-integ-tests/cdk-import-interactive.integtest.ts +0 -57
  261. package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.ts +0 -32
  262. package/tests/cli-integ-tests/cdk-lib-cli-lib-list.integtest.ts +0 -12
  263. package/tests/cli-integ-tests/cdk-lib-cli-lib-synth.integtest.ts +0 -27
  264. package/tests/cli-integ-tests/cdk-lib-security-related-changes-without-a-cli-are-expected-to-fail-when-approval-is-required.integtest.ts +0 -32
  265. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.ts +0 -13
  266. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.ts +0 -14
  267. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.ts +0 -13
  268. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.ts +0 -13
  269. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.ts +0 -15
  270. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.ts +0 -15
  271. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.ts +0 -15
  272. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.ts +0 -15
  273. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.ts +0 -20
  274. package/tests/cli-integ-tests/cdk-migrate/testcase.ts +0 -69
  275. package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.ts +0 -28
  276. package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.ts +0 -39
  277. package/tests/cli-integ-tests/cdk-sam-can-locally-test-the-synthesized-cdk-application.integtest.ts +0 -25
  278. package/tests/cli-integ-tests/cdk-security-related-changes-without-a-cli-are-expected-to-fail.integtest.ts +0 -30
  279. package/tests/cli-integ-tests/cdk-skips-notice-refresh.integtest.ts +0 -26
  280. package/tests/cli-integ-tests/cdk-ssm-parameter-provider-error.integtest.ts +0 -18
  281. package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.ts +0 -59
  282. package/tests/cli-integ-tests/cdk-stage-with-bundled-lambda-function.integtest.ts +0 -13
  283. package/tests/cli-integ-tests/cdk-synth---quiet-can-be-specified-in-cdk.json.integtest.ts +0 -20
  284. package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-can-be-suppressed.integtest.ts +0 -15
  285. package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-leads-to-failure.integtest.ts +0 -18
  286. package/tests/cli-integ-tests/cdk-templates-on-disk-contain-metadata-resource.integtest.ts +0 -25
  287. package/tests/cli-integ-tests/cdk-termination-protection.integtest.ts +0 -19
  288. package/tests/cli-integ-tests/cdk-test-cdk-rollback---force.integtest.ts +0 -48
  289. package/tests/cli-integ-tests/cdk-test-cdk-rollback.integtest.ts +0 -38
  290. package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.ts +0 -56
  291. package/tests/cli-integ-tests/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.ts +0 -74
  292. package/tests/cli-integ-tests/cdk-test-resource-import.integtest.ts +0 -64
  293. package/tests/cli-integ-tests/cdk-two-ways-of-showing-the-version.integtest.ts +0 -14
  294. package/tests/cli-integ-tests/cdk-update-to-stack-in-rollback_complete-state-will-delete-stack-and-create-a-new-one.integtest.ts +0 -47
  295. package/tests/cli-integ-tests/cdk-vpc-lookup.integtest.ts +0 -26
  296. package/tests/cli-integ-tests/proxy.integtest.ts +0 -168
  297. package/tests/init-csharp/init-csharp.integtest.ts +0 -15
  298. package/tests/init-fsharp/init-fsharp.integtest.ts +0 -15
  299. package/tests/init-go/init-go.integtest.ts +0 -28
  300. package/tests/init-java/init-java.integtest.ts +0 -14
  301. package/tests/init-javascript/init-javascript.integtest.ts +0 -58
  302. package/tests/init-python/init-python.integtest.ts +0 -20
  303. package/tests/init-typescript-app/init-typescript-app.integtest.ts +0 -67
  304. package/tests/init-typescript-lib/init-typescript-lib.integtest.ts +0 -13
  305. package/tests/tool-integrations/amplify.integtest.ts +0 -117
  306. package/tests/tool-integrations/with-tool-context.ts +0 -14
  307. package/tests/uberpackage/uberpackage.integtest.ts +0 -11
package/lib/shell.js CHANGED
@@ -14,7 +14,6 @@ const process_1 = require("./process");
14
14
  * Is platform-aware, handles errors nicely.
15
15
  */
16
16
  async function shell(command, options = {}) {
17
- var _a, _b, _c;
18
17
  if (options.modEnv && options.env) {
19
18
  throw new Error('Use either env or modEnv but not both');
20
19
  }
@@ -26,8 +25,8 @@ async function shell(command, options = {}) {
26
25
  };
27
26
  // Always output the command
28
27
  writeToOutputs(`💻 ${command.join(' ')}\n`);
29
- const show = (_a = options.show) !== null && _a !== void 0 ? _a : 'always';
30
- const env = (_b = options.env) !== null && _b !== void 0 ? _b : (options.modEnv ? { ...process.env, ...options.modEnv } : process.env);
28
+ const show = options.show ?? 'always';
29
+ const env = options.env ?? (options.modEnv ? { ...process.env, ...options.modEnv } : process.env);
31
30
  const tty = options.interact && options.interact.length > 0;
32
31
  // Coerce to `any` because `ShellOptions` contains custom properties
33
32
  // that don't exist in the underlying interfaces. We could either rebuild each options map,
@@ -38,7 +37,7 @@ async function shell(command, options = {}) {
38
37
  ? process_1.Process.spawnTTY(command[0], command.slice(1), spawnOptions)
39
38
  : process_1.Process.spawn(command[0], command.slice(1), spawnOptions);
40
39
  // copy because we will be shifting it
41
- const remainingInteractions = [...((_c = options.interact) !== null && _c !== void 0 ? _c : [])];
40
+ const remainingInteractions = [...(options.interact ?? [])];
42
41
  return new Promise((resolve, reject) => {
43
42
  const stdout = new Array();
44
43
  const stderr = new Array();
@@ -60,25 +59,23 @@ async function shell(command, options = {}) {
60
59
  // now write the input with a slight delay to ensure
61
60
  // the child process has already started reading.
62
61
  setTimeout(() => {
63
- var _a;
64
- child.writeStdin(interaction.input + ((_a = interaction.end) !== null && _a !== void 0 ? _a : os.EOL));
62
+ child.writeStdin(interaction.input + (interaction.end ?? os.EOL));
65
63
  }, 500);
66
64
  }
67
65
  }
68
66
  });
69
67
  if (tty && options.captureStderr === false) {
70
68
  // in a tty stderr goes to the same fd as stdout
71
- throw new Error(`Cannot disable 'captureStderr' in tty`);
69
+ throw new Error('Cannot disable \'captureStderr\' in tty');
72
70
  }
73
71
  if (!tty) {
74
72
  // in a tty stderr goes to the same fd as stdout, so onStdout
75
73
  // is sufficient.
76
74
  child.onStderr(chunk => {
77
- var _a;
78
75
  if (show === 'always') {
79
76
  writeToOutputs(chunk.toString('utf-8'));
80
77
  }
81
- if ((_a = options.captureStderr) !== null && _a !== void 0 ? _a : true) {
78
+ if (options.captureStderr ?? true) {
82
79
  stderr.push(chunk);
83
80
  }
84
81
  });
@@ -167,8 +164,7 @@ function rimraf(fsPath) {
167
164
  }
168
165
  }
169
166
  function addToShellPath(x) {
170
- var _a, _b;
171
- const parts = (_b = (_a = process.env.PATH) === null || _a === void 0 ? void 0 : _a.split(':')) !== null && _b !== void 0 ? _b : [];
167
+ const parts = process.env.PATH?.split(':') ?? [];
172
168
  if (!parts.includes(x)) {
173
169
  parts.unshift(x);
174
170
  }
@@ -213,4 +209,4 @@ class LastLine {
213
209
  this.lastLine = '';
214
210
  }
215
211
  }
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSxzQkFrSEM7QUFnSUQsd0JBd0JDO0FBRUQsd0NBUUM7QUFoU0QseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0IsdUNBQW9DO0FBR3BDOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsS0FBSyxDQUFDLE9BQWlCLEVBQUUsVUFBd0IsRUFBRTs7SUFDdkUsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFO1FBQ25DLEtBQUssTUFBTSxZQUFZLElBQUksT0FBTyxFQUFFLENBQUM7WUFDbkMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsNEJBQTRCO0lBQzVCLGNBQWMsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLE1BQU0sSUFBSSxHQUFHLE1BQUEsT0FBTyxDQUFDLElBQUksbUNBQUksUUFBUSxDQUFDO0lBRXRDLE1BQU0sR0FBRyxHQUFHLE1BQUEsT0FBTyxDQUFDLEdBQUcsbUNBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sR0FBRyxHQUFHLE9B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QUFDO0FBQ3JDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sUUFBUTtJQUFkO1FBRVUsYUFBUSxHQUFXLEVBQUUsQ0FBQztJQW9CaEMsQ0FBQztJQWxCUSxNQUFNLENBQUMsS0FBYTtRQUN6QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkIsa0RBQWtEO1lBQ2xELElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sbUVBQW1FO1lBQ25FLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFTSxHQUFHO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hpbGRfcHJvY2VzcyBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBUZXN0Q29udGV4dCB9IGZyb20gJy4vaW50ZWctdGVzdCc7XG5pbXBvcnQgeyBQcm9jZXNzIH0gZnJvbSAnLi9wcm9jZXNzJztcbmltcG9ydCB7IFRlbXBvcmFyeURpcmVjdG9yeUNvbnRleHQgfSBmcm9tICcuL3dpdGgtdGVtcG9yYXJ5LWRpcmVjdG9yeSc7XG5cbi8qKlxuICogQSBzaGVsbCBjb21tYW5kIHRoYXQgZG9lcyB3aGF0IHlvdSB3YW50XG4gKlxuICogSXMgcGxhdGZvcm0tYXdhcmUsIGhhbmRsZXMgZXJyb3JzIG5pY2VseS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNoZWxsKGNvbW1hbmQ6IHN0cmluZ1tdLCBvcHRpb25zOiBTaGVsbE9wdGlvbnMgPSB7fSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmIChvcHRpb25zLm1vZEVudiAmJiBvcHRpb25zLmVudikge1xuICAgIHRocm93IG5ldyBFcnJvcignVXNlIGVpdGhlciBlbnYgb3IgbW9kRW52IGJ1dCBub3QgYm90aCcpO1xuICB9XG5cbiAgY29uc3Qgb3V0cHV0cyA9IG5ldyBTZXQob3B0aW9ucy5vdXRwdXRzKTtcbiAgY29uc3Qgd3JpdGVUb091dHB1dHMgPSAoeDogc3RyaW5nKSA9PiB7XG4gICAgZm9yIChjb25zdCBvdXRwdXRTdHJlYW0gb2Ygb3V0cHV0cykge1xuICAgICAgb3V0cHV0U3RyZWFtLndyaXRlKHgpO1xuICAgIH1cbiAgfTtcblxuICAvLyBBbHdheXMgb3V0cHV0IHRoZSBjb21tYW5kXG4gIHdyaXRlVG9PdXRwdXRzKGDwn5K7ICR7Y29tbWFuZC5qb2luKCcgJyl9XFxuYCk7XG4gIGNvbnN0IHNob3cgPSBvcHRpb25zLnNob3cgPz8gJ2Fsd2F5cyc7XG5cbiAgY29uc3QgZW52ID0gb3B0aW9ucy5lbnYgPz8gKG9wdGlvbnMubW9kRW52ID8geyAuLi5wcm9jZXNzLmVudiwgLi4ub3B0aW9ucy5tb2RFbnYgfSA6IHByb2Nlc3MuZW52KTtcbiAgY29uc3QgdHR5ID0gb3B0aW9ucy5pbnRlcmFjdCAmJiBvcHRpb25zLmludGVyYWN0Lmxlbmd0aCA+IDA7XG5cbiAgLy8gQ29lcmNlIHRvIGBhbnlgIGJlY2F1c2UgYFNoZWxsT3B0aW9uc2AgY29udGFpbnMgY3VzdG9tIHByb3BlcnRpZXNcbiAgLy8gdGhhdCBkb24ndCBleGlzdCBpbiB0aGUgdW5kZXJseWluZyBpbnRlcmZhY2VzLiBXZSBjb3VsZCBlaXRoZXIgcmVidWlsZCBlYWNoIG9wdGlvbnMgbWFwLFxuICAvLyBvciBqdXN0IHBhc3MgdGhyb3VnaCBhbmQgbGV0IHRoZSB1bmRlcmx5aW5nIGltcGxlbWVuYXRpb24gaWdub3JlIHdoYXQgaXQgZG9lc24ndCBrbm93IGFib3V0LlxuICAvLyBXZSBjaG9vc2UgdGhlIGxhenkgb25lLlxuICBjb25zdCBzcGF3bk9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGVudiB9IGFzIGFueTtcblxuICBjb25zdCBjaGlsZCA9IHR0eVxuICAgID8gUHJvY2Vzcy5zcGF3blRUWShjb21tYW5kWzBdLCBjb21tYW5kLnNsaWNlKDEpLCBzcGF3bk9wdGlvbnMpXG4gICAgOiBQcm9jZXNzLnNwYXduKGNvbW1hbmRbMF0sIGNvbW1hbmQuc2xpY2UoMSksIHNwYXduT3B0aW9ucylcblxuICAvLyBjb3B5IGJlY2F1c2Ugd2Ugd2lsbCBiZSBzaGlmdGluZyBpdFxuICBjb25zdCByZW1haW5pbmdJbnRlcmFjdGlvbnMgPSBbLi4uKG9wdGlvbnMuaW50ZXJhY3QgPz8gW10pXTtcblxuICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgc3Rkb3V0ID0gbmV3IEFycmF5PEJ1ZmZlcj4oKTtcbiAgICBjb25zdCBzdGRlcnIgPSBuZXcgQXJyYXk8QnVmZmVyPigpO1xuXG4gICAgY29uc3QgbGFzdExpbmUgPSBuZXcgTGFzdExpbmUoKTtcblxuICAgIGNoaWxkLm9uU3Rkb3V0KGNodW5rID0+IHtcbiAgICAgIGlmIChzaG93ID09PSAnYWx3YXlzJykge1xuICAgICAgICB3cml0ZVRvT3V0cHV0cyhjaHVuay50b1N0cmluZygndXRmLTgnKSk7XG4gICAgICB9XG4gICAgICBzdGRvdXQucHVzaChjaHVuayk7XG4gICAgICBsYXN0TGluZS5hcHBlbmQoY2h1bmsudG9TdHJpbmcoJ3V0Zi04JykpO1xuXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IHJlbWFpbmluZ0ludGVyYWN0aW9uc1swXTtcbiAgICAgIGlmIChpbnRlcmFjdGlvbikge1xuXG4gICAgICAgIGlmIChpbnRlcmFjdGlvbi5wcm9tcHQudGVzdChsYXN0TGluZS5nZXQoKSkpIHtcblxuICAgICAgICAgIC8vIHN1YnByb2Nlc3MgZXhwZWN0cyBhIHVzZXIgaW5wdXQgbm93LlxuICAgICAgICAgIC8vIGZpcnN0LCBzaGlmdCB0aGUgaW50ZXJhY3Rpb25zIHRvIGVuc3VyZSB0aGUgc2FtZSBpbnRlcmFjdGlvbiBpcyBub3QgcmV1c2VkXG4gICAgICAgICAgcmVtYWluaW5nSW50ZXJhY3Rpb25zLnNoaWZ0KCk7XG5cbiAgICAgICAgICAvLyB0aGVuLCByZXNldCB0aGUgbGFzdCBsaW5lIHRvIHByZXZlbnQgcmVwZWF0ZWQgbWF0Y2hlcyBjYXVzZWQgYnkgdHR5IGVjaG9pbmdcbiAgICAgICAgICBsYXN0TGluZS5yZXNldCgpO1xuXG4gICAgICAgICAgLy8gbm93IHdyaXRlIHRoZSBpbnB1dCB3aXRoIGEgc2xpZ2h0IGRlbGF5IHRvIGVuc3VyZVxuICAgICAgICAgIC8vIHRoZSBjaGlsZCBwcm9jZXNzIGhhcyBhbHJlYWR5IHN0YXJ0ZWQgcmVhZGluZy5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNoaWxkLndyaXRlU3RkaW4oaW50ZXJhY3Rpb24uaW5wdXQgKyAoaW50ZXJhY3Rpb24uZW5kID8/IG9zLkVPTCkpO1xuICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfSk7XG5cbiAgICBpZiAodHR5ICYmIG9wdGlvbnMuY2FwdHVyZVN0ZGVyciA9PT0gZmFsc2UpIHtcbiAgICAgIC8vIGluIGEgdHR5IHN0ZGVyciBnb2VzIHRvIHRoZSBzYW1lIGZkIGFzIHN0ZG91dFxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZGlzYWJsZSAnY2FwdHVyZVN0ZGVycicgaW4gdHR5YCk7XG4gICAgfVxuXG4gICAgaWYgKCF0dHkpIHtcbiAgICAgIC8vIGluIGEgdHR5IHN0ZGVyciBnb2VzIHRvIHRoZSBzYW1lIGZkIGFzIHN0ZG91dCwgc28gb25TdGRvdXRcbiAgICAgIC8vIGlzIHN1ZmZpY2llbnQuXG4gICAgICBjaGlsZC5vblN0ZGVycihjaHVuayA9PiB7XG4gICAgICAgIGlmIChzaG93ID09PSAnYWx3YXlzJykge1xuICAgICAgICAgIHdyaXRlVG9PdXRwdXRzKGNodW5rLnRvU3RyaW5nKCd1dGYtOCcpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5jYXB0dXJlU3RkZXJyID8/IHRydWUpIHtcbiAgICAgICAgICBzdGRlcnIucHVzaChjaHVuayk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNoaWxkLm9uRXJyb3IocmVqZWN0KTtcblxuICAgIGNoaWxkLm9uRXhpdChjb2RlID0+IHtcbiAgICAgIGNvbnN0IHN0ZGVyck91dHB1dCA9IEJ1ZmZlci5jb25jYXQoc3RkZXJyKS50b1N0cmluZygndXRmLTgnKTtcbiAgICAgIGNvbnN0IHN0ZG91dE91dHB1dCA9IEJ1ZmZlci5jb25jYXQoc3Rkb3V0KS50b1N0cmluZygndXRmLTgnKTtcbiAgICAgIGNvbnN0IG91dCA9IChvcHRpb25zLm9ubHlTdGRlcnIgPyBzdGRlcnJPdXRwdXQgOiBzdGRvdXRPdXRwdXQgKyBzdGRlcnJPdXRwdXQpLnRyaW0oKTtcblxuICAgICAgY29uc3QgbG9nQW5kcmVqZWN0ID0gKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICBpZiAoc2hvdyA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgIHdyaXRlVG9PdXRwdXRzKGAke291dH1cXG5gKTtcbiAgICAgICAgfVxuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVtYWluaW5nSW50ZXJhY3Rpb25zLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBleGl0IGNvZGUsIGlmIHdlIGRpZG4ndCBjb25zdW1lIGFsbCBleHBlY3RlZCBpbnRlcmFjdGlvbnMgd2UgcHJvYmFibHlcbiAgICAgICAgLy8gZGlkIHNvbWV0aGlpbmcgd3JvbmcuXG4gICAgICAgIGxvZ0FuZHJlamVjdChuZXcgRXJyb3IoYEV4cGVjdGVkIG1vcmUgdXNlciBpbnRlcmFjdGlvbnMgYnV0IHN1YnByb2Nlc3MgZXhpdGVkIHdpdGggJHtjb2RlfWApKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29kZSA9PT0gMCB8fCBvcHRpb25zLmFsbG93RXJyRXhpdCkge1xuICAgICAgICByZXNvbHZlKG91dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dBbmRyZWplY3QobmV3IEVycm9yKGAnJHtjb21tYW5kLmpvaW4oJyAnKX0nIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHtjb2RlfS5gKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIE1vZGVscyBhIHNpbmdsZSB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIHNoZWxsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbnRlcmFjdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgcHJvbXB0IHRvIGV4cGVjdC4gUmVnZXggbWF0Y2hlZCBhZ2FpbnN0IHRoZSBsYXN0IGxpbmUgaW5cbiAgICogdGhlIG91dHB1dCBiZWZvcmUgdGhlIHByb21wdCBpcyBkaXNwbGF5ZWQuXG4gICAqXG4gICAqIE1vc3QgY29tbW9ubHkgdGhpcyB3b3VsZCBiZSBhIHNpbXBsZSBzdHJpbmcgdG8gbWF0Y2ggZm9yIGluY2x1c2lvbi5cbiAgICpcbiAgICogRXhhbXBsZXM6XG4gICAqXG4gICAqIC0gUHJvY2VzcyBPdXRwdXQ6IFwiSGV5IHRoZXJlISBBcmUgeW91IHN1cmU/XCJcbiAgICogICBQcm9tcHQ6IC9BcmUgeW91IHN1cmU/L1xuICAgKiAgIE1hdGNoIChZZXMvTm8pOiBZZXNcbiAgICogICBSZWFzb246IFwiSGV5IHRoZXJlISBBcmUgeW91IHN1cmU/XCIgfiAvQXJlIHlvdSBzdXJlPy9cbiAgICpcbiAgICogLSBQcm9jZXNzIE91dHB1dDogXCJIZXkgdGhlcmUhXFxuQXJlIHlvdSBzdXJlP1wiXG4gICAqICAgUHJvbXB0OiAvQXJlIHlvdSBzdXJlPy9cbiAgICogICBNYXRjaCAoWWVzL05vKTogWWVzXG4gICAqICAgUmVhc29uOiBcIkFyZSB5b3Ugc3VyZT9cIiB+IC9BcmUgeW91IHN1cmU/L1xuICAgKlxuICAgKiAtIFByb2Nlc3MgT3V0cHV0OiBcIkFyZSB5b3Ugc3VyZT9cXG4ocmVtZW1iZXIgdGhpcyBpcyBkZXN0cnVjdGl2ZSlcIlxuICAgKiAgIFByb21wdDogL0FyZSB5b3Ugc3VyZT8vXG4gICAqICAgTWF0Y2ggKFllcy9Obyk6IE5vXG4gICAqICAgUmVhc29uOiBcIihyZW1lbWJlciB0aGlzIGlzIGRlc3RydWN0aXZlKVwiIOKJhCAvQXJlIHlvdSBzdXJlPy9cbiAgICpcbiAgICogLSBQcm9jZXNzIE91dHB1dDogXCJBcmUgeW91IHN1cmU/XFxuKHJlbWVtYmVyIHRoaXMgaXMgZGVzdHJ1Y3RpdmUpXCJcbiAgICogICBQcm9tcHQ6IC9yZW1lbWJlciB0aGlzIGlzIGRlc3RydWN0aXZlL1xuICAgKiAgIE1hdGNoIChZZXMvTm8pOiBZZXNcbiAgICogICBSZWFzb246IFwiKHJlbWVtYmVyIHRoaXMgaXMgZGVzdHJ1Y3RpdmUpXCIgfiAvcmVtZW1iZXIgdGhpcyBpcyBkZXN0cnVjdGl2ZS9cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IHByb21wdDogUmVnRXhwO1xuICAvKipcbiAgICogVGhlIGlucHV0IHRvIHByb3ZpZGUuXG4gICAqL1xuICByZWFkb25seSBpbnB1dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RyaW5nIHRvIHNpZ25hbCB0aGUgZW5kIG9mIGlucHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBvcy5FT0xcbiAgICovXG4gIHJlYWRvbmx5IGVuZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGVsbE9wdGlvbnMgZXh0ZW5kcyBjaGlsZF9wcm9jZXNzLlNwYXduT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIGFkZCB0byAnZW52J1xuICAgKi9cbiAgcmVhZG9ubHkgbW9kRW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcblxuICAvKipcbiAgICogRG9uJ3QgZmFpbCB3aGVuIGV4aXRpbmcgd2l0aCBhbiBlcnJvclxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dFcnJFeGl0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjYXB0dXJlIHN0ZGVyclxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjYXB0dXJlU3RkZXJyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGFzcyBvdXRwdXQgaGVyZVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0cz86IE5vZGVKUy5Xcml0YWJsZVN0cmVhbVtdO1xuXG4gIC8qKlxuICAgKiBPbmx5IHJldHVybiBzdGRlcnIuIEZvciBleGFtcGxlLCB0aGlzIGlzIHVzZWQgdG8gdmFsaWRhdGVcbiAgICogdGhhdCB3aGVuIENJPXRydWUsIGFsbCBsb2dzIGFyZSBzZW50IHRvIHN0ZG91dC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9ubHlTdGRlcnI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEb24ndCBsb2cgdG8gc3Rkb3V0XG4gICAqXG4gICAqIEBkZWZhdWx0IGFsd2F5c1xuICAgKi9cbiAgcmVhZG9ubHkgc2hvdz86ICdhbHdheXMnIHwgJ25ldmVyJyB8ICdlcnJvcic7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgdXNlciBpbnRlcmFjdGlvbiB0byByZXNwb25kIHRvIHNoZWxsIHByb21wdHMuXG4gICAqXG4gICAqIE9yZGVyIGFuZCBjb3VudCBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUgZXhwZWN0ZWQgcHJvbXB0cyBpc3N1ZWQgYnkgdGhlIHN1YnByb2Nlc3MuXG4gICAqL1xuICByZWFkb25seSBpbnRlcmFjdD86IFVzZXJJbnRlcmFjdGlvbltdO1xuXG59XG5cbmV4cG9ydCBjbGFzcyBTaGVsbEhlbHBlciB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNvbnRleHQoY29udGV4dDogVGVzdENvbnRleHQgJiBUZW1wb3JhcnlEaXJlY3RvcnlDb250ZXh0KSB7XG4gICAgcmV0dXJuIG5ldyBTaGVsbEhlbHBlcihjb250ZXh0LmludGVnVGVzdERpciwgY29udGV4dC5vdXRwdXQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY3dkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb3V0cHV0OiBOb2RlSlMuV3JpdGFibGVTdHJlYW0pIHsgfVxuXG4gIHB1YmxpYyBhc3luYyBzaGVsbChjb21tYW5kOiBzdHJpbmdbXSwgb3B0aW9uczogT21pdDxTaGVsbE9wdGlvbnMsICdjd2QnIHwgJ291dHB1dHMnPiA9IHt9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gc2hlbGwoY29tbWFuZCwge1xuICAgICAgb3V0cHV0czogW3RoaXMuX291dHB1dF0sXG4gICAgICBjd2Q6IHRoaXMuX2N3ZCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgLy8gZ2l2ZSBldmVyeSBzaGVsbCBpdHMgb3duIGRvY2tlciBjb25maWcgZGlyZWN0b3J5XG4gICAgICAgIC8vIHNvIHRoYXQgcGFyYWxsZWwgcnVucyBkb24ndCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyLlxuICAgICAgICBET0NLRVJfQ09ORklHOiBwYXRoLmpvaW4odGhpcy5fY3dkLCAnLmRvY2tlcicpLFxuICAgICAgICAuLi5vcHRpb25zLm1vZEVudixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBybSAtcmYgcmVpbXBsZW1lbnRhdGlvbiwgZG9uJ3Qgd2FudCB0byBkZXBlbmQgb24gYW4gTlBNIHBhY2thZ2UgZm9yIHRoaXNcbiAqXG4gKiBSZXR1cm5zIGB0cnVlYCBpZiBldmVyeXRoaW5nIGdvdCBkZWxldGVkLCBvciBgZmFsc2VgIGlmIHNvbWUgZmlsZXMgY291bGRcbiAqIG5vdCBiZSBkZWxldGVkIGR1ZSB0byBwZXJtaXNzaW9ucyBpc3N1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByaW1yYWYoZnNQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gICAgY29uc3QgaXNEaXIgPSBmcy5sc3RhdFN5bmMoZnNQYXRoKS5pc0RpcmVjdG9yeSgpO1xuXG4gICAgaWYgKGlzRGlyKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZnMucmVhZGRpclN5bmMoZnNQYXRoKSkge1xuICAgICAgICBzdWNjZXNzICYmPSByaW1yYWYocGF0aC5qb2luKGZzUGF0aCwgZmlsZSkpO1xuICAgICAgfVxuICAgICAgZnMucm1kaXJTeW5jKGZzUGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZzLnVubGlua1N5bmMoZnNQYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIC8vIENhbiBoYXBwZW4gaWYgc29tZSBmaWxlcyBnb3QgZ2VuZXJhdGVkIGluc2lkZSBhIERvY2tlciBjb250YWluZXIgYW5kIGFyZSBub3cgaW5hZHZlcnRlbnRseSBvd25lZCBieSBgcm9vdGAuXG4gICAgLy8gV2UgY2FuJ3QgZXZlciBjbGVhbiB0aG9zZSB1cCBhbnltb3JlLCBidXQgc2luY2UgaXQgb25seSBoYXBwZW5zIGluc2lkZSBHaXRIdWIgQWN0aW9ucyBjb250YWluZXJzIHdlIGFsc28gZG9uJ3QgY2FyZSB0b28gbXVjaC5cbiAgICBpZiAoZS5jb2RlID09PSAnRUFDQ0VTJyB8fCBlLmNvZGUgPT09ICdFTk9URU1QVFknKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgLy8gQWxyZWFkeSBnb25lXG4gICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcpIHsgcmV0dXJuIHRydWU7IH1cblxuICAgIHRocm93IGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFRvU2hlbGxQYXRoKHg6IHN0cmluZykge1xuICBjb25zdCBwYXJ0cyA9IHByb2Nlc3MuZW52LlBBVEg/LnNwbGl0KCc6JykgPz8gW107XG5cbiAgaWYgKCFwYXJ0cy5pbmNsdWRlcyh4KSkge1xuICAgIHBhcnRzLnVuc2hpZnQoeCk7XG4gIH1cblxuICBwcm9jZXNzLmVudi5QQVRIID0gcGFydHMuam9pbignOicpO1xufVxuXG4vKipcbiAqIEFjY3VtdWxhdGUgdGV4dCBzaW5jZSB0aGUgbGFzdCBsaW5lIGJyZWFrIChvciBiZWdpbm5pbmcgb2Ygc3RyaW5nKSBpdCBoYXMgc2VlbiBpbiB0aGUgY2h1bmtzLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqIC0gQ2h1bmtzOiBbJ29uZVxcbicsICd0d29cXG4nLCB0aHJlZSddXG4gKiAtIExhc3QgTGluZTogJ3RocmVlJ1xuICpcbiAqIC0gQ2h1bmtzOiBbJ29uZScsICd0d28nLCAnXFxudGhyZWUnXVxuICogLSBMYXN0IExpbmU6ICd0aHJlZSdcbiAqXG4gKiAtIENodW5rczogWydvbmUnLCAndHdvJ11cbiAqIC0gTGFzdCBMaW5lOiAnb25ldHdvJ1xuICpcbiAqIC0gQ2h1bmtzOiBbJ29uZScsICd0d28nLCAnXFxudGhyZWUnLCAnZm91ciddXG4gKiAtIExhc3QgTGluZTogJ3RocmVlZm91cidcbiAqL1xuY2xhc3MgTGFzdExpbmUge1xuXG4gIHByaXZhdGUgbGFzdExpbmU6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBhcHBlbmQoY2h1bms6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmVzID0gY2h1bmsuc3BsaXQob3MuRU9MKTtcbiAgICBpZiAobGluZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAvLyBjaHVuayBkb2Vzbid0IGNvbnRhaW4gYSBuZXcgbGluZSBzbyBqdXN0IGFwcGVuZFxuICAgICAgdGhpcy5sYXN0TGluZSArPSBsaW5lc1swXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY2h1bmsgY29udGFpbnMgbXVsdGlwbGUgbGluZXMgc28ganVzdCBvdmVycmlkZSB3aXRoIHRoZSBsYXN0IG9uZVxuICAgICAgdGhpcy5sYXN0TGluZSA9IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0TGluZTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLmxhc3RMaW5lID0gJyc7XG4gIH1cbn0iXX0=
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSxzQkE4R0M7QUFrSUQsd0JBNEJDO0FBRUQsd0NBUUM7QUFsU0QseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0IsdUNBQW9DO0FBR3BDOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsS0FBSyxDQUFDLE9BQWlCLEVBQUUsVUFBd0IsRUFBRTtJQUN2RSxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUU7UUFDbkMsS0FBSyxNQUFNLFlBQVksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNuQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRiw0QkFBNEI7SUFDNUIsY0FBYyxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxRQUFRLENBQUM7SUFFdEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEcsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFNUQsb0VBQW9FO0lBQ3BFLDJGQUEyRjtJQUMzRiwrRkFBK0Y7SUFDL0YsMEJBQTBCO0lBQzFCLE1BQU0sWUFBWSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxFQUFTLENBQUM7SUFFaEQsTUFBTSxLQUFLLEdBQUcsR0FBRztRQUNmLENBQUMsQ0FBQyxpQkFBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUM7UUFDOUQsQ0FBQyxDQUFDLGlCQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRTlELHNDQUFzQztJQUN0QyxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU1RCxPQUFPLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUVuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRWhDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckIsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFFekMsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUM1Qyx1Q0FBdUM7b0JBQ3ZDLDZFQUE2RTtvQkFDN0UscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBRTlCLDhFQUE4RTtvQkFDOUUsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUVqQixvREFBb0Q7b0JBQ3BELGlEQUFpRDtvQkFDakQsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNwRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ1YsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDM0MsZ0RBQWdEO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsNkRBQTZEO1lBQzdELGlCQUFpQjtZQUNqQixLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyQixJQUFJLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDdEIsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztnQkFDRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRCLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVyRixNQUFNLFlBQVksR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUNwQyxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDckIsY0FBYyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztnQkFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDO1lBRUYsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLDBGQUEwRjtnQkFDMUYsd0JBQXdCO2dCQUN4QixZQUFZLENBQUMsSUFBSSxLQUFLLENBQUMsOERBQThELElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDOUYsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sWUFBWSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsNEJBQTRCLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFrR0QsTUFBYSxXQUFXO0lBQ2YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFnRDtRQUN4RSxPQUFPLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxZQUNtQixJQUFZLEVBQ1osT0FBOEI7UUFEOUIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFlBQU8sR0FBUCxPQUFPLENBQXVCO0lBRWpELENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQWlCLEVBQUUsVUFBaUQsRUFBRTtRQUN2RixPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDcEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN2QixHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZCxHQUFHLE9BQU87WUFDVixNQUFNLEVBQUU7Z0JBQ04sbURBQW1EO2dCQUNuRCx5REFBeUQ7Z0JBQ3pELGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO2dCQUM5QyxHQUFHLE9BQU8sQ0FBQyxNQUFNO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBeEJELGtDQXdCQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsTUFBTSxDQUFDLE1BQWM7SUFDbkMsSUFBSSxDQUFDO1FBQ0gsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFakQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxPQUFPLEtBQVAsT0FBTyxHQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFDO1lBQzlDLENBQUM7WUFDRCxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ04sRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsOEdBQThHO1FBQzlHLGdJQUFnSTtRQUNoSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbEQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsZUFBZTtRQUNmLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLENBQUMsQ0FBQztJQUNWLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLENBQVM7SUFDdEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVqRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxRQUFRO0lBQWQ7UUFDVSxhQUFRLEdBQVcsRUFBRSxDQUFDO0lBb0JoQyxDQUFDO0lBbEJRLE1BQU0sQ0FBQyxLQUFhO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QixrREFBa0Q7WUFDbEQsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQzthQUFNLENBQUM7WUFDTixtRUFBbUU7WUFDbkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVNLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHR5cGUgeyBUZXN0Q29udGV4dCB9IGZyb20gJy4vaW50ZWctdGVzdCc7XG5pbXBvcnQgeyBQcm9jZXNzIH0gZnJvbSAnLi9wcm9jZXNzJztcbmltcG9ydCB0eXBlIHsgVGVtcG9yYXJ5RGlyZWN0b3J5Q29udGV4dCB9IGZyb20gJy4vd2l0aC10ZW1wb3JhcnktZGlyZWN0b3J5JztcblxuLyoqXG4gKiBBIHNoZWxsIGNvbW1hbmQgdGhhdCBkb2VzIHdoYXQgeW91IHdhbnRcbiAqXG4gKiBJcyBwbGF0Zm9ybS1hd2FyZSwgaGFuZGxlcyBlcnJvcnMgbmljZWx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hlbGwoY29tbWFuZDogc3RyaW5nW10sIG9wdGlvbnM6IFNoZWxsT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgaWYgKG9wdGlvbnMubW9kRW52ICYmIG9wdGlvbnMuZW52KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVc2UgZWl0aGVyIGVudiBvciBtb2RFbnYgYnV0IG5vdCBib3RoJyk7XG4gIH1cblxuICBjb25zdCBvdXRwdXRzID0gbmV3IFNldChvcHRpb25zLm91dHB1dHMpO1xuICBjb25zdCB3cml0ZVRvT3V0cHV0cyA9ICh4OiBzdHJpbmcpID0+IHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dFN0cmVhbSBvZiBvdXRwdXRzKSB7XG4gICAgICBvdXRwdXRTdHJlYW0ud3JpdGUoeCk7XG4gICAgfVxuICB9O1xuXG4gIC8vIEFsd2F5cyBvdXRwdXQgdGhlIGNvbW1hbmRcbiAgd3JpdGVUb091dHB1dHMoYPCfkrsgJHtjb21tYW5kLmpvaW4oJyAnKX1cXG5gKTtcbiAgY29uc3Qgc2hvdyA9IG9wdGlvbnMuc2hvdyA/PyAnYWx3YXlzJztcblxuICBjb25zdCBlbnYgPSBvcHRpb25zLmVudiA/PyAob3B0aW9ucy5tb2RFbnYgPyB7IC4uLnByb2Nlc3MuZW52LCAuLi5vcHRpb25zLm1vZEVudiB9IDogcHJvY2Vzcy5lbnYpO1xuICBjb25zdCB0dHkgPSBvcHRpb25zLmludGVyYWN0ICYmIG9wdGlvbnMuaW50ZXJhY3QubGVuZ3RoID4gMDtcblxuICAvLyBDb2VyY2UgdG8gYGFueWAgYmVjYXVzZSBgU2hlbGxPcHRpb25zYCBjb250YWlucyBjdXN0b20gcHJvcGVydGllc1xuICAvLyB0aGF0IGRvbid0IGV4aXN0IGluIHRoZSB1bmRlcmx5aW5nIGludGVyZmFjZXMuIFdlIGNvdWxkIGVpdGhlciByZWJ1aWxkIGVhY2ggb3B0aW9ucyBtYXAsXG4gIC8vIG9yIGp1c3QgcGFzcyB0aHJvdWdoIGFuZCBsZXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW5hdGlvbiBpZ25vcmUgd2hhdCBpdCBkb2Vzbid0IGtub3cgYWJvdXQuXG4gIC8vIFdlIGNob29zZSB0aGUgbGF6eSBvbmUuXG4gIGNvbnN0IHNwYXduT3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgZW52IH0gYXMgYW55O1xuXG4gIGNvbnN0IGNoaWxkID0gdHR5XG4gICAgPyBQcm9jZXNzLnNwYXduVFRZKGNvbW1hbmRbMF0sIGNvbW1hbmQuc2xpY2UoMSksIHNwYXduT3B0aW9ucylcbiAgICA6IFByb2Nlc3Muc3Bhd24oY29tbWFuZFswXSwgY29tbWFuZC5zbGljZSgxKSwgc3Bhd25PcHRpb25zKTtcblxuICAvLyBjb3B5IGJlY2F1c2Ugd2Ugd2lsbCBiZSBzaGlmdGluZyBpdFxuICBjb25zdCByZW1haW5pbmdJbnRlcmFjdGlvbnMgPSBbLi4uKG9wdGlvbnMuaW50ZXJhY3QgPz8gW10pXTtcblxuICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgc3Rkb3V0ID0gbmV3IEFycmF5PEJ1ZmZlcj4oKTtcbiAgICBjb25zdCBzdGRlcnIgPSBuZXcgQXJyYXk8QnVmZmVyPigpO1xuXG4gICAgY29uc3QgbGFzdExpbmUgPSBuZXcgTGFzdExpbmUoKTtcblxuICAgIGNoaWxkLm9uU3Rkb3V0KGNodW5rID0+IHtcbiAgICAgIGlmIChzaG93ID09PSAnYWx3YXlzJykge1xuICAgICAgICB3cml0ZVRvT3V0cHV0cyhjaHVuay50b1N0cmluZygndXRmLTgnKSk7XG4gICAgICB9XG4gICAgICBzdGRvdXQucHVzaChjaHVuayk7XG4gICAgICBsYXN0TGluZS5hcHBlbmQoY2h1bmsudG9TdHJpbmcoJ3V0Zi04JykpO1xuXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IHJlbWFpbmluZ0ludGVyYWN0aW9uc1swXTtcbiAgICAgIGlmIChpbnRlcmFjdGlvbikge1xuICAgICAgICBpZiAoaW50ZXJhY3Rpb24ucHJvbXB0LnRlc3QobGFzdExpbmUuZ2V0KCkpKSB7XG4gICAgICAgICAgLy8gc3VicHJvY2VzcyBleHBlY3RzIGEgdXNlciBpbnB1dCBub3cuXG4gICAgICAgICAgLy8gZmlyc3QsIHNoaWZ0IHRoZSBpbnRlcmFjdGlvbnMgdG8gZW5zdXJlIHRoZSBzYW1lIGludGVyYWN0aW9uIGlzIG5vdCByZXVzZWRcbiAgICAgICAgICByZW1haW5pbmdJbnRlcmFjdGlvbnMuc2hpZnQoKTtcblxuICAgICAgICAgIC8vIHRoZW4sIHJlc2V0IHRoZSBsYXN0IGxpbmUgdG8gcHJldmVudCByZXBlYXRlZCBtYXRjaGVzIGNhdXNlZCBieSB0dHkgZWNob2luZ1xuICAgICAgICAgIGxhc3RMaW5lLnJlc2V0KCk7XG5cbiAgICAgICAgICAvLyBub3cgd3JpdGUgdGhlIGlucHV0IHdpdGggYSBzbGlnaHQgZGVsYXkgdG8gZW5zdXJlXG4gICAgICAgICAgLy8gdGhlIGNoaWxkIHByb2Nlc3MgaGFzIGFscmVhZHkgc3RhcnRlZCByZWFkaW5nLlxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY2hpbGQud3JpdGVTdGRpbihpbnRlcmFjdGlvbi5pbnB1dCArIChpbnRlcmFjdGlvbi5lbmQgPz8gb3MuRU9MKSk7XG4gICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHR0eSAmJiBvcHRpb25zLmNhcHR1cmVTdGRlcnIgPT09IGZhbHNlKSB7XG4gICAgICAvLyBpbiBhIHR0eSBzdGRlcnIgZ29lcyB0byB0aGUgc2FtZSBmZCBhcyBzdGRvdXRcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRpc2FibGUgXFwnY2FwdHVyZVN0ZGVyclxcJyBpbiB0dHknKTtcbiAgICB9XG5cbiAgICBpZiAoIXR0eSkge1xuICAgICAgLy8gaW4gYSB0dHkgc3RkZXJyIGdvZXMgdG8gdGhlIHNhbWUgZmQgYXMgc3Rkb3V0LCBzbyBvblN0ZG91dFxuICAgICAgLy8gaXMgc3VmZmljaWVudC5cbiAgICAgIGNoaWxkLm9uU3RkZXJyKGNodW5rID0+IHtcbiAgICAgICAgaWYgKHNob3cgPT09ICdhbHdheXMnKSB7XG4gICAgICAgICAgd3JpdGVUb091dHB1dHMoY2h1bmsudG9TdHJpbmcoJ3V0Zi04JykpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmNhcHR1cmVTdGRlcnIgPz8gdHJ1ZSkge1xuICAgICAgICAgIHN0ZGVyci5wdXNoKGNodW5rKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hpbGQub25FcnJvcihyZWplY3QpO1xuXG4gICAgY2hpbGQub25FeGl0KGNvZGUgPT4ge1xuICAgICAgY29uc3Qgc3RkZXJyT3V0cHV0ID0gQnVmZmVyLmNvbmNhdChzdGRlcnIpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgY29uc3Qgc3Rkb3V0T3V0cHV0ID0gQnVmZmVyLmNvbmNhdChzdGRvdXQpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgY29uc3Qgb3V0ID0gKG9wdGlvbnMub25seVN0ZGVyciA/IHN0ZGVyck91dHB1dCA6IHN0ZG91dE91dHB1dCArIHN0ZGVyck91dHB1dCkudHJpbSgpO1xuXG4gICAgICBjb25zdCBsb2dBbmRyZWplY3QgPSAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIGlmIChzaG93ID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgd3JpdGVUb091dHB1dHMoYCR7b3V0fVxcbmApO1xuICAgICAgICB9XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9O1xuXG4gICAgICBpZiAocmVtYWluaW5nSW50ZXJhY3Rpb25zLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBleGl0IGNvZGUsIGlmIHdlIGRpZG4ndCBjb25zdW1lIGFsbCBleHBlY3RlZCBpbnRlcmFjdGlvbnMgd2UgcHJvYmFibHlcbiAgICAgICAgLy8gZGlkIHNvbWV0aGlpbmcgd3JvbmcuXG4gICAgICAgIGxvZ0FuZHJlamVjdChuZXcgRXJyb3IoYEV4cGVjdGVkIG1vcmUgdXNlciBpbnRlcmFjdGlvbnMgYnV0IHN1YnByb2Nlc3MgZXhpdGVkIHdpdGggJHtjb2RlfWApKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29kZSA9PT0gMCB8fCBvcHRpb25zLmFsbG93RXJyRXhpdCkge1xuICAgICAgICByZXNvbHZlKG91dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dBbmRyZWplY3QobmV3IEVycm9yKGAnJHtjb21tYW5kLmpvaW4oJyAnKX0nIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHtjb2RlfS5gKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIE1vZGVscyBhIHNpbmdsZSB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIHNoZWxsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbnRlcmFjdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgcHJvbXB0IHRvIGV4cGVjdC4gUmVnZXggbWF0Y2hlZCBhZ2FpbnN0IHRoZSBsYXN0IGxpbmUgaW5cbiAgICogdGhlIG91dHB1dCBiZWZvcmUgdGhlIHByb21wdCBpcyBkaXNwbGF5ZWQuXG4gICAqXG4gICAqIE1vc3QgY29tbW9ubHkgdGhpcyB3b3VsZCBiZSBhIHNpbXBsZSBzdHJpbmcgdG8gbWF0Y2ggZm9yIGluY2x1c2lvbi5cbiAgICpcbiAgICogRXhhbXBsZXM6XG4gICAqXG4gICAqIC0gUHJvY2VzcyBPdXRwdXQ6IFwiSGV5IHRoZXJlISBBcmUgeW91IHN1cmU/XCJcbiAgICogICBQcm9tcHQ6IC9BcmUgeW91IHN1cmU/L1xuICAgKiAgIE1hdGNoIChZZXMvTm8pOiBZZXNcbiAgICogICBSZWFzb246IFwiSGV5IHRoZXJlISBBcmUgeW91IHN1cmU/XCIgfiAvQXJlIHlvdSBzdXJlPy9cbiAgICpcbiAgICogLSBQcm9jZXNzIE91dHB1dDogXCJIZXkgdGhlcmUhXFxuQXJlIHlvdSBzdXJlP1wiXG4gICAqICAgUHJvbXB0OiAvQXJlIHlvdSBzdXJlPy9cbiAgICogICBNYXRjaCAoWWVzL05vKTogWWVzXG4gICAqICAgUmVhc29uOiBcIkFyZSB5b3Ugc3VyZT9cIiB+IC9BcmUgeW91IHN1cmU/L1xuICAgKlxuICAgKiAtIFByb2Nlc3MgT3V0cHV0OiBcIkFyZSB5b3Ugc3VyZT9cXG4ocmVtZW1iZXIgdGhpcyBpcyBkZXN0cnVjdGl2ZSlcIlxuICAgKiAgIFByb21wdDogL0FyZSB5b3Ugc3VyZT8vXG4gICAqICAgTWF0Y2ggKFllcy9Obyk6IE5vXG4gICAqICAgUmVhc29uOiBcIihyZW1lbWJlciB0aGlzIGlzIGRlc3RydWN0aXZlKVwiIOKJhCAvQXJlIHlvdSBzdXJlPy9cbiAgICpcbiAgICogLSBQcm9jZXNzIE91dHB1dDogXCJBcmUgeW91IHN1cmU/XFxuKHJlbWVtYmVyIHRoaXMgaXMgZGVzdHJ1Y3RpdmUpXCJcbiAgICogICBQcm9tcHQ6IC9yZW1lbWJlciB0aGlzIGlzIGRlc3RydWN0aXZlL1xuICAgKiAgIE1hdGNoIChZZXMvTm8pOiBZZXNcbiAgICogICBSZWFzb246IFwiKHJlbWVtYmVyIHRoaXMgaXMgZGVzdHJ1Y3RpdmUpXCIgfiAvcmVtZW1iZXIgdGhpcyBpcyBkZXN0cnVjdGl2ZS9cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IHByb21wdDogUmVnRXhwO1xuICAvKipcbiAgICogVGhlIGlucHV0IHRvIHByb3ZpZGUuXG4gICAqL1xuICByZWFkb25seSBpbnB1dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RyaW5nIHRvIHNpZ25hbCB0aGUgZW5kIG9mIGlucHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBvcy5FT0xcbiAgICovXG4gIHJlYWRvbmx5IGVuZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGVsbE9wdGlvbnMgZXh0ZW5kcyBjaGlsZF9wcm9jZXNzLlNwYXduT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIGFkZCB0byAnZW52J1xuICAgKi9cbiAgcmVhZG9ubHkgbW9kRW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcblxuICAvKipcbiAgICogRG9uJ3QgZmFpbCB3aGVuIGV4aXRpbmcgd2l0aCBhbiBlcnJvclxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dFcnJFeGl0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjYXB0dXJlIHN0ZGVyclxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjYXB0dXJlU3RkZXJyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGFzcyBvdXRwdXQgaGVyZVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0cz86IE5vZGVKUy5Xcml0YWJsZVN0cmVhbVtdO1xuXG4gIC8qKlxuICAgKiBPbmx5IHJldHVybiBzdGRlcnIuIEZvciBleGFtcGxlLCB0aGlzIGlzIHVzZWQgdG8gdmFsaWRhdGVcbiAgICogdGhhdCB3aGVuIENJPXRydWUsIGFsbCBsb2dzIGFyZSBzZW50IHRvIHN0ZG91dC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9ubHlTdGRlcnI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEb24ndCBsb2cgdG8gc3Rkb3V0XG4gICAqXG4gICAqIEBkZWZhdWx0IGFsd2F5c1xuICAgKi9cbiAgcmVhZG9ubHkgc2hvdz86ICdhbHdheXMnIHwgJ25ldmVyJyB8ICdlcnJvcic7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgdXNlciBpbnRlcmFjdGlvbiB0byByZXNwb25kIHRvIHNoZWxsIHByb21wdHMuXG4gICAqXG4gICAqIE9yZGVyIGFuZCBjb3VudCBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUgZXhwZWN0ZWQgcHJvbXB0cyBpc3N1ZWQgYnkgdGhlIHN1YnByb2Nlc3MuXG4gICAqL1xuICByZWFkb25seSBpbnRlcmFjdD86IFVzZXJJbnRlcmFjdGlvbltdO1xuXG59XG5cbmV4cG9ydCBjbGFzcyBTaGVsbEhlbHBlciB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNvbnRleHQoY29udGV4dDogVGVzdENvbnRleHQgJiBUZW1wb3JhcnlEaXJlY3RvcnlDb250ZXh0KSB7XG4gICAgcmV0dXJuIG5ldyBTaGVsbEhlbHBlcihjb250ZXh0LmludGVnVGVzdERpciwgY29udGV4dC5vdXRwdXQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY3dkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb3V0cHV0OiBOb2RlSlMuV3JpdGFibGVTdHJlYW0pIHtcblxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNoZWxsKGNvbW1hbmQ6IHN0cmluZ1tdLCBvcHRpb25zOiBPbWl0PFNoZWxsT3B0aW9ucywgJ2N3ZCcgfCAnb3V0cHV0cyc+ID0ge30pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBzaGVsbChjb21tYW5kLCB7XG4gICAgICBvdXRwdXRzOiBbdGhpcy5fb3V0cHV0XSxcbiAgICAgIGN3ZDogdGhpcy5fY3dkLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICAvLyBnaXZlIGV2ZXJ5IHNoZWxsIGl0cyBvd24gZG9ja2VyIGNvbmZpZyBkaXJlY3RvcnlcbiAgICAgICAgLy8gc28gdGhhdCBwYXJhbGxlbCBydW5zIGRvbid0IGludGVyZmVyZSB3aXRoIGVhY2ggb3RoZXIuXG4gICAgICAgIERPQ0tFUl9DT05GSUc6IHBhdGguam9pbih0aGlzLl9jd2QsICcuZG9ja2VyJyksXG4gICAgICAgIC4uLm9wdGlvbnMubW9kRW52LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIHJtIC1yZiByZWltcGxlbWVudGF0aW9uLCBkb24ndCB3YW50IHRvIGRlcGVuZCBvbiBhbiBOUE0gcGFja2FnZSBmb3IgdGhpc1xuICpcbiAqIFJldHVybnMgYHRydWVgIGlmIGV2ZXJ5dGhpbmcgZ290IGRlbGV0ZWQsIG9yIGBmYWxzZWAgaWYgc29tZSBmaWxlcyBjb3VsZFxuICogbm90IGJlIGRlbGV0ZWQgZHVlIHRvIHBlcm1pc3Npb25zIGlzc3Vlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJpbXJhZihmc1BhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBpc0RpciA9IGZzLmxzdGF0U3luYyhmc1BhdGgpLmlzRGlyZWN0b3J5KCk7XG5cbiAgICBpZiAoaXNEaXIpIHtcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmcy5yZWFkZGlyU3luYyhmc1BhdGgpKSB7XG4gICAgICAgIHN1Y2Nlc3MgJiY9IHJpbXJhZihwYXRoLmpvaW4oZnNQYXRoLCBmaWxlKSk7XG4gICAgICB9XG4gICAgICBmcy5ybWRpclN5bmMoZnNQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZnMudW5saW5rU3luYyhmc1BhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgLy8gQ2FuIGhhcHBlbiBpZiBzb21lIGZpbGVzIGdvdCBnZW5lcmF0ZWQgaW5zaWRlIGEgRG9ja2VyIGNvbnRhaW5lciBhbmQgYXJlIG5vdyBpbmFkdmVydGVudGx5IG93bmVkIGJ5IGByb290YC5cbiAgICAvLyBXZSBjYW4ndCBldmVyIGNsZWFuIHRob3NlIHVwIGFueW1vcmUsIGJ1dCBzaW5jZSBpdCBvbmx5IGhhcHBlbnMgaW5zaWRlIEdpdEh1YiBBY3Rpb25zIGNvbnRhaW5lcnMgd2UgYWxzbyBkb24ndCBjYXJlIHRvbyBtdWNoLlxuICAgIGlmIChlLmNvZGUgPT09ICdFQUNDRVMnIHx8IGUuY29kZSA9PT0gJ0VOT1RFTVBUWScpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBBbHJlYWR5IGdvbmVcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdGhyb3cgZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkVG9TaGVsbFBhdGgoeDogc3RyaW5nKSB7XG4gIGNvbnN0IHBhcnRzID0gcHJvY2Vzcy5lbnYuUEFUSD8uc3BsaXQoJzonKSA/PyBbXTtcblxuICBpZiAoIXBhcnRzLmluY2x1ZGVzKHgpKSB7XG4gICAgcGFydHMudW5zaGlmdCh4KTtcbiAgfVxuXG4gIHByb2Nlc3MuZW52LlBBVEggPSBwYXJ0cy5qb2luKCc6Jyk7XG59XG5cbi8qKlxuICogQWNjdW11bGF0ZSB0ZXh0IHNpbmNlIHRoZSBsYXN0IGxpbmUgYnJlYWsgKG9yIGJlZ2lubmluZyBvZiBzdHJpbmcpIGl0IGhhcyBzZWVuIGluIHRoZSBjaHVua3MuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogLSBDaHVua3M6IFsnb25lXFxuJywgJ3R3b1xcbicsIHRocmVlJ11cbiAqIC0gTGFzdCBMaW5lOiAndGhyZWUnXG4gKlxuICogLSBDaHVua3M6IFsnb25lJywgJ3R3bycsICdcXG50aHJlZSddXG4gKiAtIExhc3QgTGluZTogJ3RocmVlJ1xuICpcbiAqIC0gQ2h1bmtzOiBbJ29uZScsICd0d28nXVxuICogLSBMYXN0IExpbmU6ICdvbmV0d28nXG4gKlxuICogLSBDaHVua3M6IFsnb25lJywgJ3R3bycsICdcXG50aHJlZScsICdmb3VyJ11cbiAqIC0gTGFzdCBMaW5lOiAndGhyZWVmb3VyJ1xuICovXG5jbGFzcyBMYXN0TGluZSB7XG4gIHByaXZhdGUgbGFzdExpbmU6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBhcHBlbmQoY2h1bms6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmVzID0gY2h1bmsuc3BsaXQob3MuRU9MKTtcbiAgICBpZiAobGluZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAvLyBjaHVuayBkb2Vzbid0IGNvbnRhaW4gYSBuZXcgbGluZSBzbyBqdXN0IGFwcGVuZFxuICAgICAgdGhpcy5sYXN0TGluZSArPSBsaW5lc1swXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY2h1bmsgY29udGFpbnMgbXVsdGlwbGUgbGluZXMgc28ganVzdCBvdmVycmlkZSB3aXRoIHRoZSBsYXN0IG9uZVxuICAgICAgdGhpcy5sYXN0TGluZSA9IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0TGluZTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLmxhc3RMaW5lID0gJyc7XG4gIH1cbn1cbiJdfQ==
@@ -26,7 +26,6 @@ class TestRepository {
26
26
  * Garbage collect repositories
27
27
  */
28
28
  static async gc() {
29
- var _a, _b;
30
29
  if (!(await TestRepository.existing('*dummy*').domainExists())) {
31
30
  return;
32
31
  }
@@ -36,11 +35,11 @@ class TestRepository {
36
35
  const page = await codeArtifact.send(new client_codeartifact_1.ListRepositoriesCommand({
37
36
  nextToken: nextToken,
38
37
  }));
39
- for (const repo of (_a = page.repositories) !== null && _a !== void 0 ? _a : []) {
38
+ for (const repo of page.repositories ?? []) {
40
39
  const tags = await codeArtifact.send(new client_codeartifact_1.ListTagsForResourceCommand({
41
40
  resourceArn: repo.arn,
42
41
  }));
43
- const collectable = (_b = tags === null || tags === void 0 ? void 0 : tags.tags) === null || _b === void 0 ? void 0 : _b.find((t) => t.key === COLLECT_BY_TAG && Number(t.value) < Date.now());
42
+ const collectable = tags?.tags?.find((t) => t.key === COLLECT_BY_TAG && Number(t.value) < Date.now());
44
43
  if (collectable) {
45
44
  // eslint-disable-next-line no-console
46
45
  console.log('Deleting', repo.name);
@@ -172,18 +171,17 @@ class TestRepository {
172
171
  });
173
172
  }
174
173
  async ensureRepository(name, options) {
175
- var _a;
176
174
  if (await this.repositoryExists(name)) {
177
175
  return;
178
176
  }
179
177
  await this.codeArtifact.send(new client_codeartifact_1.CreateRepositoryCommand({
180
178
  domain: this.domain,
181
179
  repository: name,
182
- description: options === null || options === void 0 ? void 0 : options.description,
183
- upstreams: (_a = options === null || options === void 0 ? void 0 : options.upstreams) === null || _a === void 0 ? void 0 : _a.map((repositoryName) => ({ repositoryName })),
184
- tags: (options === null || options === void 0 ? void 0 : options.tags) ? Object.entries(options.tags).map(([key, value]) => ({ key, value })) : undefined,
180
+ description: options?.description,
181
+ upstreams: options?.upstreams?.map((repositoryName) => ({ repositoryName })),
182
+ tags: options?.tags ? Object.entries(options.tags).map(([key, value]) => ({ key, value })) : undefined,
185
183
  }));
186
- if (options === null || options === void 0 ? void 0 : options.external) {
184
+ if (options?.external) {
187
185
  const externalConnection = options.external;
188
186
  await retry(() => this.codeArtifact.send(new client_codeartifact_1.AssociateExternalConnectionCommand({
189
187
  domain: this.domain,
@@ -217,14 +215,13 @@ class TestRepository {
217
215
  }
218
216
  }
219
217
  async *listPackages(filter = {}) {
220
- var _a;
221
218
  let response = await retryThrottled(() => this.codeArtifact.send(new client_codeartifact_1.ListPackagesCommand({
222
219
  domain: this.domain,
223
220
  repository: this.repositoryName,
224
221
  ...filter,
225
222
  })));
226
223
  while (true) {
227
- for (const p of (_a = response.packages) !== null && _a !== void 0 ? _a : []) {
224
+ for (const p of response.packages ?? []) {
228
225
  yield p;
229
226
  }
230
227
  if (!response.nextToken) {
@@ -278,4 +275,4 @@ async function retryThrottled(block) {
278
275
  }
279
276
  }
280
277
  }
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWFydGlmYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29kZWFydGlmYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNFQWVzQztBQUN0QyxnQ0FBK0I7QUFFL0IsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVO0FBRXJELE1BQWEsY0FBYztJQUdsQixNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVM7UUFDM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTthQUM1QixRQUFRLENBQUMsRUFBRSxDQUFDO2FBQ1osT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5QixNQUFNLElBQUksR0FBRyxJQUFJLGNBQWMsQ0FBQyxRQUFRLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBWTtRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQXNCO1FBQzNDLE9BQU8sSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFOztRQUNwQixJQUFJLENBQUMsQ0FBQyxNQUFNLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQy9ELE9BQU87UUFDVCxDQUFD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SSxDQUFDO1lBQ0gsT0FBTyxNQUFNLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLHNDQUFzQztZQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1lBQ0QsSUFBSSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1lBQ0QsTUFBTSxJQUFBLFdBQUssRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzlDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBc3NvY2lhdGVFeHRlcm5hbENvbm5lY3Rpb25Db21tYW5kLFxuICBDb2RlYXJ0aWZhY3RDbGllbnQsXG4gIENyZWF0ZURvbWFpbkNvbW1hbmQsXG4gIENyZWF0ZVJlcG9zaXRvcnlDb21tYW5kLFxuICBEZWxldGVSZXBvc2l0b3J5Q29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Db21tYW5kLFxuICBEZXNjcmliZVJlcG9zaXRvcnlDb21tYW5kLFxuICBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kLFxuICBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kLFxuICBMaXN0UGFja2FnZXNDb21tYW5kLFxuICBMaXN0UGFja2FnZXNSZXF1ZXN0LFxuICBMaXN0UmVwb3NpdG9yaWVzQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIFB1dFBhY2thZ2VPcmlnaW5Db25maWd1cmF0aW9uQ29tbWFuZCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNvZGVhcnRpZmFjdCc7XG5pbXBvcnQgeyBzbGVlcCB9IGZyb20gJy4uL2F3cyc7XG5cbmNvbnN0IENPTExFQ1RfQllfVEFHID0gJ2NvbGxlY3QtYnknO1xuY29uc3QgUkVQT19MSUZFVElNRV9NUyA9IDI0ICogMzYwMCAqIDEwMDA7IC8vIE9uZSBkYXlcblxuZXhwb3J0IGNsYXNzIFRlc3RSZXBvc2l0b3J5IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0RPTUFJTiA9ICd0ZXN0LWNkayc7XG5cbiAgcHVibGljIHN0YXRpYyBhc3luYyBuZXdSYW5kb20oKSB7XG4gICAgY29uc3QgcXVhbGlmaWVyID0gTWF0aC5yYW5kb20oKVxuICAgICAgLnRvU3RyaW5nKDM2KVxuICAgICAgLnJlcGxhY2UoL1teYS16MC05XSsvZywgJycpO1xuXG4gICAgY29uc3QgcmVwbyA9IG5ldyBUZXN0UmVwb3NpdG9yeShgdGVzdC0ke3F1YWxpZmllcn1gKTtcbiAgICBhd2FpdCByZXBvLnByZXBhcmUoKTtcbiAgICByZXR1cm4gcmVwbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgbmV3V2l0aE5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVwbyA9IG5ldyBUZXN0UmVwb3NpdG9yeShuYW1lKTtcbiAgICBhd2FpdCByZXBvLnByZXBhcmUoKTtcbiAgICByZXR1cm4gcmVwbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZXhpc3RpbmcocmVwb3NpdG9yeU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgVGVzdFJlcG9zaXRvcnkocmVwb3NpdG9yeU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdhcmJhZ2UgY29sbGVjdCByZXBvc2l0b3JpZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgZ2MoKSB7XG4gICAgaWYgKCEoYXdhaXQgVGVzdFJlcG9zaXRvcnkuZXhpc3RpbmcoJypkdW1teSonKS5kb21haW5FeGlzdHMoKSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb2RlQXJ0aWZhY3QgPSBuZXcgQ29kZWFydGlmYWN0Q2xpZW50KCk7XG5cbiAgICBsZXQgbmV4dFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgZG8ge1xuICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IGNvZGVBcnRpZmFjdC5zZW5kKFxuICAgICAgICBuZXcgTGlzdFJlcG9zaXRvcmllc0NvbW1hbmQoe1xuICAgICAgICAgIG5leHRUb2tlbjogbmV4dFRva2VuLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIGZvciAoY29uc3QgcmVwbyBvZiBwYWdlLnJlcG9zaXRvcmllcyA/PyBbXSkge1xuICAgICAgICBjb25zdCB0YWdzID0gYXdhaXQgY29kZUFydGlmYWN0LnNlbmQoXG4gICAgICAgICAgbmV3IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kKHtcbiAgICAgICAgICAgIHJlc291cmNlQXJuOiByZXBvLmFybiEsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNvbGxlY3RhYmxlID0gdGFncz8udGFncz8uZmluZCgodCkgPT4gdC5rZXkgPT09IENPTExFQ1RfQllfVEFHICYmIE51bWJlcih0LnZhbHVlKSA8IERhdGUubm93KCkpO1xuICAgICAgICBpZiAoY29sbGVjdGFibGUpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgIGNvbnNvbGUubG9nKCdEZWxldGluZycsIHJlcG8ubmFtZSk7XG4gICAgICAgICAgYXdhaXQgY29kZUFydGlmYWN0LnNlbmQoXG4gICAgICAgICAgICBuZXcgRGVsZXRlUmVwb3NpdG9yeUNvbW1hbmQoe1xuICAgICAgICAgICAgICBkb21haW46IHJlcG8uZG9tYWluTmFtZSEsXG4gICAgICAgICAgICAgIHJlcG9zaXRvcnk6IHJlcG8ubmFtZSEsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHRUb2tlbiA9IHBhZ2UubmV4dFRva2VuO1xuICAgIH0gd2hpbGUgKG5leHRUb2tlbik7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgbnBtVXBzdHJlYW0gPSAnbnBtLXVwc3RyZWFtJztcbiAgcHVibGljIHJlYWRvbmx5IHB5cGlVcHN0cmVhbSA9ICdweXBpLXVwc3RyZWFtJztcbiAgcHVibGljIHJlYWRvbmx5IG51Z2V0VXBzdHJlYW0gPSAnbnVnZXQtdXBzdHJlYW0nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWF2ZW5VcHN0cmVhbSA9ICdtYXZlbi11cHN0cmVhbSc7XG4gIHB1YmxpYyByZWFkb25seSBkb21haW4gPSBUZXN0UmVwb3NpdG9yeS5ERUZBVUxUX0RPTUFJTjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvZGVBcnRpZmFjdCA9IG5ldyBDb2RlYXJ0aWZhY3RDbGllbnQoKTtcblxuICBwcml2YXRlIF9sb2dpbkluZm9ybWF0aW9uOiBMb2dpbkluZm9ybWF0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpIHt9XG5cbiAgcHVibGljIGFzeW5jIHByZXBhcmUoKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVEb21haW4oKTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVVwc3RyZWFtcygpO1xuXG4gICAgYXdhaXQgdGhpcy5lbnN1cmVSZXBvc2l0b3J5KHRoaXMucmVwb3NpdG9yeU5hbWUsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnVGVzdGluZyByZXBvc2l0b3J5JyxcbiAgICAgIHVwc3RyZWFtczogW3RoaXMubnBtVXBzdHJlYW0sIHRoaXMucHlwaVVwc3RyZWFtLCB0aGlzLm51Z2V0VXBzdHJlYW0sIHRoaXMubWF2ZW5VcHN0cmVhbV0sXG4gICAgICB0YWdzOiB7XG4gICAgICAgIFtDT0xMRUNUX0JZX1RBR106IGAke0RhdGUubm93KCkgKyBSRVBPX0xJRkVUSU1FX01TfWAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luSW5mb3JtYXRpb24oKTogUHJvbWlzZTxMb2dpbkluZm9ybWF0aW9uPiB7XG4gICAgaWYgKHRoaXMuX2xvZ2luSW5mb3JtYXRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLl9sb2dpbkluZm9ybWF0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuX2xvZ2luSW5mb3JtYXRpb24gPSB7XG4gICAgICBhdXRoVG9rZW46IChcbiAgICAgICAgYXdhaXQgdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChcbiAgICAgICAgICBuZXcgR2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZCh7XG4gICAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgZHVyYXRpb25TZWNvbmRzOiAxMiAqIDM2MDAsXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgICkuYXV0aG9yaXphdGlvblRva2VuISxcbiAgICAgIHJlcG9zaXRvcnlOYW1lOiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuXG4gICAgICBucG1FbmRwb2ludDogKFxuICAgICAgICBhd2FpdCB0aGlzLmNvZGVBcnRpZmFjdC5zZW5kKFxuICAgICAgICAgIG5ldyBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kKHtcbiAgICAgICAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICAgICAgICByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgICAgICAgZm9ybWF0OiAnbnBtJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgKS5yZXBvc2l0b3J5RW5kcG9pbnQhLFxuXG4gICAgICBtYXZlbkVuZHBvaW50OiAoXG4gICAgICAgIGF3YWl0IHRoaXMuY29kZUFydGlmYWN0LnNlbmQoXG4gICAgICAgICAgbmV3IEdldFJlcG9zaXRvcnlFbmRwb2ludENvbW1hbmQoe1xuICAgICAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgICAgIHJlcG9zaXRvcnk6IHRoaXMucmVwb3NpdG9yeU5hbWUsXG4gICAgICAgICAgICBmb3JtYXQ6ICdtYXZlbicsXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgICkucmVwb3NpdG9yeUVuZHBvaW50ISxcblxuICAgICAgbnVnZXRFbmRwb2ludDogKFxuICAgICAgICBhd2FpdCB0aGlzLmNvZGVBcnRpZmFjdC5zZW5kKFxuICAgICAgICAgIG5ldyBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kKHtcbiAgICAgICAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICAgICAgICByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgICAgICAgZm9ybWF0OiAnbnVnZXQnLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICApLnJlcG9zaXRvcnlFbmRwb2ludCEsXG5cbiAgICAgIHB5cGlFbmRwb2ludDogKFxuICAgICAgICBhd2FpdCB0aGlzLmNvZGVBcnRpZmFjdC5zZW5kKFxuICAgICAgICAgIG5ldyBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kKHtcbiAgICAgICAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICAgICAgICByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgICAgICAgZm9ybWF0OiAncHlwaScsXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgICkucmVwb3NpdG9yeUVuZHBvaW50ISxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLl9sb2dpbkluZm9ybWF0aW9uO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZSgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChcbiAgICAgICAgbmV3IERlbGV0ZVJlcG9zaXRvcnlDb21tYW5kKHtcbiAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgIHJlcG9zaXRvcnk6IHRoaXMucmVwb3NpdG9yeU5hbWUsXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKCdEZWxldGVkJywgdGhpcy5yZXBvc2l0b3J5TmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5uYW1lICE9PSAnUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICAgIC8vIE9rYXlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBhbGwgcGFja2FnZXMgYW5kIG1hcmsgdGhlbSBhcyBcImFsbG93IHVwc3RyZWFtIHZlcnNpb25zXCIuXG4gICAqXG4gICAqIElmIHdlIGRvbid0IGRvIHRoaXMgYW5kIHdlIHB1Ymxpc2ggYGZvb0AyLjMuNC1yYy4wYCwgdGhlbiB3ZSBjYW4ndFxuICAgKiBkb3dubG9hZCBgZm9vQDIuMy4wYCBhbnltb3JlIGJlY2F1c2UgYnkgZGVmYXVsdCBDb2RlQXJ0aWZhY3Qgd2lsbFxuICAgKiBibG9jayBkaWZmZXJlbnQgdmVyc2lvbnMgZnJvbSB0aGUgc2FtZSBwYWNrYWdlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG1hcmtBbGxVcHN0cmVhbUFsbG93KCkge1xuICAgIGZvciBhd2FpdCAoY29uc3QgcGtnIG9mIHRoaXMubGlzdFBhY2thZ2VzKHsgdXBzdHJlYW06ICdCTE9DSycgfSkpIHtcbiAgICAgIGF3YWl0IHJldHJ5VGhyb3R0bGVkKCgpID0+XG4gICAgICAgIHRoaXMuY29kZUFydGlmYWN0LnNlbmQoXG4gICAgICAgICAgbmV3IFB1dFBhY2thZ2VPcmlnaW5Db25maWd1cmF0aW9uQ29tbWFuZCh7XG4gICAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcblxuICAgICAgICAgICAgZm9ybWF0OiBwa2cuZm9ybWF0ISxcbiAgICAgICAgICAgIHBhY2thZ2U6IHBrZy5wYWNrYWdlISxcbiAgICAgICAgICAgIG5hbWVzcGFjZTogcGtnLm5hbWVzcGFjZSEsXG4gICAgICAgICAgICByZXN0cmljdGlvbnM6IHtcbiAgICAgICAgICAgICAgcHVibGlzaDogJ0FMTE9XJyxcbiAgICAgICAgICAgICAgdXBzdHJlYW06ICdBTExPVycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVuc3VyZURvbWFpbigpIHtcbiAgICBpZiAoYXdhaXQgdGhpcy5kb21haW5FeGlzdHMoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNvZGVBcnRpZmFjdC5zZW5kKFxuICAgICAgbmV3IENyZWF0ZURvbWFpbkNvbW1hbmQoe1xuICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICB0YWdzOiBbeyBrZXk6ICd0ZXN0aW5nJywgdmFsdWU6ICd0cnVlJyB9XSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVuc3VyZVVwc3RyZWFtcygpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5ucG1VcHN0cmVhbSwge1xuICAgICAgZGVzY3JpcHRpb246ICdUaGUgdXBzdHJlYW0gcmVwb3NpdG9yeSBmb3IgTlBNJyxcbiAgICAgIGV4dGVybmFsOiAncHVibGljOm5wbWpzJyxcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5tYXZlblVwc3RyZWFtLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1RoZSB1cHN0cmVhbSByZXBvc2l0b3J5IGZvciBNYXZlbicsXG4gICAgICBleHRlcm5hbDogJ3B1YmxpYzptYXZlbi1jZW50cmFsJyxcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5udWdldFVwc3RyZWFtLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1RoZSB1cHN0cmVhbSByZXBvc2l0b3J5IGZvciBOdUdldCcsXG4gICAgICBleHRlcm5hbDogJ3B1YmxpYzpudWdldC1vcmcnLFxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlUmVwb3NpdG9yeSh0aGlzLnB5cGlVcHN0cmVhbSwge1xuICAgICAgZGVzY3JpcHRpb246ICdUaGUgdXBzdHJlYW0gcmVwb3NpdG9yeSBmb3IgUHlQSScsXG4gICAgICBleHRlcm5hbDogJ3B1YmxpYzpweXBpJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZW5zdXJlUmVwb3NpdG9yeShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgZXh0ZXJuYWw/OiBzdHJpbmc7XG4gICAgICByZWFkb25seSB1cHN0cmVhbXM/OiBzdHJpbmdbXTtcbiAgICAgIHJlYWRvbmx5IHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIH0sXG4gICkge1xuICAgIGlmIChhd2FpdCB0aGlzLnJlcG9zaXRvcnlFeGlzdHMobmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmNvZGVBcnRpZmFjdC5zZW5kKFxuICAgICAgbmV3IENyZWF0ZVJlcG9zaXRvcnlDb21tYW5kKHtcbiAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgcmVwb3NpdG9yeTogbmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IG9wdGlvbnM/LmRlc2NyaXB0aW9uLFxuICAgICAgICB1cHN0cmVhbXM6IG9wdGlvbnM/LnVwc3RyZWFtcz8ubWFwKChyZXBvc2l0b3J5TmFtZSkgPT4gKHsgcmVwb3NpdG9yeU5hbWUgfSkpLFxuICAgICAgICB0YWdzOiBvcHRpb25zPy50YWdzID8gT2JqZWN0LmVudHJpZXMob3B0aW9ucy50YWdzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHsga2V5LCB2YWx1ZSB9KSkgOiB1bmRlZmluZWQsXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgaWYgKG9wdGlvbnM/LmV4dGVybmFsKSB7XG4gICAgICBjb25zdCBleHRlcm5hbENvbm5lY3Rpb24gPSBvcHRpb25zLmV4dGVybmFsO1xuICAgICAgYXdhaXQgcmV0cnkoKCkgPT5cbiAgICAgICAgdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChcbiAgICAgICAgICBuZXcgQXNzb2NpYXRlRXh0ZXJuYWxDb25uZWN0aW9uQ29tbWFuZCh7XG4gICAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgcmVwb3NpdG9yeTogbmFtZSxcbiAgICAgICAgICAgIGV4dGVybmFsQ29ubmVjdGlvbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkb21haW5FeGlzdHMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29kZUFydGlmYWN0LnNlbmQobmV3IERlc2NyaWJlRG9tYWluQ29tbWFuZCh7IGRvbWFpbjogdGhpcy5kb21haW4gfSkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5uYW1lICE9PSAnUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcG9zaXRvcnlFeGlzdHMobmFtZTogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29kZUFydGlmYWN0LnNlbmQobmV3IERlc2NyaWJlUmVwb3NpdG9yeUNvbW1hbmQoeyBkb21haW46IHRoaXMuZG9tYWluLCByZXBvc2l0b3J5OiBuYW1lIH0pKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUubmFtZSAhPT0gJ1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyAqbGlzdFBhY2thZ2VzKGZpbHRlcjogUGljazxMaXN0UGFja2FnZXNSZXF1ZXN0LCAndXBzdHJlYW0nIHwgJ3B1Ymxpc2gnIHwgJ2Zvcm1hdCc+ID0ge30pIHtcbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCByZXRyeVRocm90dGxlZCgoKSA9PlxuICAgICAgdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChcbiAgICAgICAgbmV3IExpc3RQYWNrYWdlc0NvbW1hbmQoe1xuICAgICAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGZvciAoY29uc3QgcCBvZiByZXNwb25zZS5wYWNrYWdlcyA/PyBbXSkge1xuICAgICAgICB5aWVsZCBwO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlc3BvbnNlLm5leHRUb2tlbikge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXRyeVRocm90dGxlZCgoKSA9PlxuICAgICAgICB0aGlzLmNvZGVBcnRpZmFjdC5zZW5kKFxuICAgICAgICAgIG5ldyBMaXN0UGFja2FnZXNDb21tYW5kKHtcbiAgICAgICAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICAgICAgICByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgICAgbmV4dFRva2VuOiByZXNwb25zZS5uZXh0VG9rZW4sXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyeTxBPihibG9jazogKCkgPT4gUHJvbWlzZTxBPikge1xuICBsZXQgYXR0ZW1wdHMgPSAzO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgYmxvY2soKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChhdHRlbXB0cy0tID09PSAwKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5kZWJ1ZyhlLm1lc3NhZ2UpO1xuICAgICAgYXdhaXQgc2xlZXAoNTAwKTtcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0cnlUaHJvdHRsZWQ8QT4oYmxvY2s6ICgpID0+IFByb21pc2U8QT4pIHtcbiAgbGV0IHRpbWUgPSAxMDA7XG4gIGxldCBhdHRlbXB0cyA9IDE1O1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgYmxvY2soKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmRlYnVnKGUubWVzc2FnZSk7XG4gICAgICBpZiAoZS5uYW1lICE9PSAnVGhyb3R0bGluZ0V4Y2VwdGlvbicpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICAgIGlmIChhdHRlbXB0cy0tID09PSAwKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBhd2FpdCBzbGVlcChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiB0aW1lKSk7XG4gICAgICB0aW1lICo9IDI7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5JbmZvcm1hdGlvbiB7XG4gIHJlYWRvbmx5IGF1dGhUb2tlbjogc3RyaW5nO1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBucG1FbmRwb2ludDogc3RyaW5nO1xuICByZWFkb25seSBtYXZlbkVuZHBvaW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG51Z2V0RW5kcG9pbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcHlwaUVuZHBvaW50OiBzdHJpbmc7XG59XG4iXX0=
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWFydGlmYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29kZWFydGlmYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNFQWNzQztBQUN0QyxnQ0FBK0I7QUFFL0IsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVO0FBRXJELE1BQWEsY0FBYztJQUdsQixNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVM7UUFDM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTthQUM1QixRQUFRLENBQUMsRUFBRSxDQUFDO2FBQ1osT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5QixNQUFNLElBQUksR0FBRyxJQUFJLGNBQWMsQ0FBQyxRQUFRLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBWTtRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQXNCO1FBQzNDLE9BQU8sSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3BCLElBQUksQ0FBQyxDQUFDLE1BQU0sY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDL0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLHdDQUFrQixFQUFFLENBQUM7UUFFOUMsSUFBSSxTQUE2QixDQUFDO1FBQ2xDLEdBQUcsQ0FBQztZQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FDbEMsSUFBSSw2Q0FBdUIsQ0FBQztnQkFDMUIsU0FBUyxFQUFFLFNBQVM7YUFDckIsQ0FBQyxDQUNILENBQUM7WUFFRixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQzNDLE1BQU0sSUFBSSxHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FDbEMsSUFBSSxnREFBMEIsQ0FBQztvQkFDN0IsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFJO2lCQUN2QixDQUFDLENBQ0gsQ0FBQztnQkFDRixNQUFNLFdBQVcsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxjQUFjLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDdEcsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDaEIsc0NBQXNDO29CQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25DLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FDckIsSUFBSSw2Q0FBdUIsQ0FBQzt3QkFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFXO3dCQUN4QixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUs7cUJBQ3ZCLENBQUMsQ0FDSCxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1lBRUQsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDN0IsQ0FBQyxRQUFRLFNBQVMsRUFBRTtJQUN0QixDQUFDO0lBWUQsWUFBb0MsY0FBc0I7UUFBdEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFWMUMsZ0JBQVcsR0FBRyxjQUFjLENBQUM7UUFDN0IsaUJBQVksR0FBRyxlQUFlLENBQUM7UUFDL0Isa0JBQWEsR0FBRyxnQkFBZ0IsQ0FBQztRQUNqQyxrQkFBYSxHQUFHLGdCQUFnQixDQUFDO1FBQ2pDLFdBQU0sR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDO1FBRXRDLGlCQUFZLEdBQUcsSUFBSSx3Q0FBa0IsRUFBRSxDQUFDO0lBS3pELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUU3QixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQy9DLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN4RixJQUFJLEVBQUU7Z0JBQ0osQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRTthQUNyRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCO1FBQzNCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUN2QixTQUFTLEVBQUUsQ0FDVCxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMxQixJQUFJLGtEQUE0QixDQUFDO2dCQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLGVBQWUsRUFBRSxFQUFFLEdBQUcsSUFBSTthQUMzQixDQUFDLENBQ0gsQ0FDRixDQUFDLGtCQUFtQjtZQUNyQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFFbkMsV0FBVyxFQUFFLENBQ1gsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDMUIsSUFBSSxrREFBNEIsQ0FBQztnQkFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQy9CLE1BQU0sRUFBRSxLQUFLO2FBQ2QsQ0FBQyxDQUNILENBQ0YsQ0FBQyxrQkFBbUI7WUFFckIsYUFBYSxFQUFFLENBQ2IsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDMUIsSUFBSSxrREFBNEIsQ0FBQztnQkFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQy9CLE1BQU0sRUFBRSxPQUFPO2FBQ2hCLENBQUMsQ0FDSCxDQUNGLENBQUMsa0JBQW1CO1lBRXJCLGFBQWEsRUFBRSxDQUNiLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzFCLElBQUksa0RBQTRCLENBQUM7Z0JBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUMvQixNQUFNLEVBQUUsT0FBTzthQUNoQixDQUFDLENBQ0gsQ0FDRixDQUFDLGtCQUFtQjtZQUVyQixZQUFZLEVBQUUsQ0FDWixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMxQixJQUFJLGtEQUE0QixDQUFDO2dCQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDL0IsTUFBTSxFQUFFLE1BQU07YUFDZixDQUFDLENBQ0gsQ0FDRixDQUFDLGtCQUFtQjtTQUN0QixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzFCLElBQUksNkNBQXVCLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjO2FBQ2hDLENBQUMsQ0FDSCxDQUFDO1lBRUYsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssMkJBQTJCLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLG9CQUFvQjtRQUMvQixJQUFJLEtBQUssRUFBRSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqRSxNQUFNLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3BCLElBQUksMERBQW9DLENBQUM7Z0JBQ3ZDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUUvQixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU87Z0JBQ25CLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBUTtnQkFDckIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFVO2dCQUN6QixZQUFZLEVBQUU7b0JBQ1osT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFFBQVEsRUFBRSxPQUFPO2lCQUNsQjthQUNGLENBQUMsQ0FDSCxDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLElBQUksTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUM5QixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzFCLElBQUkseUNBQW1CLENBQUM7WUFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7U0FDMUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWU7UUFDM0IsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM1QyxXQUFXLEVBQUUsaUNBQWlDO1lBQzlDLFFBQVEsRUFBRSxjQUFjO1NBQ3pCLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDOUMsV0FBVyxFQUFFLG1DQUFtQztZQUNoRCxRQUFRLEVBQUUsc0JBQXNCO1NBQ2pDLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDOUMsV0FBVyxFQUFFLG1DQUFtQztZQUNoRCxRQUFRLEVBQUUsa0JBQWtCO1NBQzdCLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDN0MsV0FBVyxFQUFFLGtDQUFrQztZQUMvQyxRQUFRLEVBQUUsYUFBYTtTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLGdCQUFnQixDQUM1QixJQUFZLEVBQ1osT0FLQztRQUVELElBQUksTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzFCLElBQUksNkNBQXVCLENBQUM7WUFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVztZQUNqQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDdkcsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN0QixNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDNUMsTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3BCLElBQUksd0RBQWtDLENBQUM7Z0JBQ3JDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGtCQUFrQjthQUNuQixDQUFDLENBQ0gsQ0FDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksMkNBQXFCLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSywyQkFBMkIsRUFBRSxDQUFDO2dCQUMzQyxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQVk7UUFDekMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLCtDQUF5QixDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2RyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSywyQkFBMkIsRUFBRSxDQUFDO2dCQUMzQyxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQXVFLEVBQUU7UUFDbkcsSUFBSSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNwQixJQUFJLHlDQUFtQixDQUFDO1lBQ3RCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDL0IsR0FBRyxNQUFNO1NBQ1YsQ0FBQyxDQUNILENBQ0YsQ0FBQztRQUVGLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixDQUFDO1lBRUQsUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEIsSUFBSSx5Q0FBbUIsQ0FBQztnQkFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQy9CLEdBQUcsTUFBTTtnQkFDVCxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7YUFDOUIsQ0FBQyxDQUNILENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOztBQS9USCx3Q0FnVUM7QUEvVHdCLDZCQUFjLEdBQUcsVUFBVSxBQUFiLENBQWM7QUFpVXJELEtBQUssVUFBVSxLQUFLLENBQUksS0FBdUI7SUFDN0MsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sS0FBSyxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1lBQ0Qsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sSUFBQSxXQUFLLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGNBQWMsQ0FBSSxLQUF1QjtJQUN0RCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7SUFDZixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDbEIsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxLQUFLLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLHFCQUFxQixFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztZQUNELElBQUksUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztZQUNELE1BQU0sSUFBQSxXQUFLLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM5QyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaXN0UGFja2FnZXNSZXF1ZXN0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNvZGVhcnRpZmFjdCc7XG5pbXBvcnQge1xuICBBc3NvY2lhdGVFeHRlcm5hbENvbm5lY3Rpb25Db21tYW5kLFxuICBDb2RlYXJ0aWZhY3RDbGllbnQsXG4gIENyZWF0ZURvbWFpbkNvbW1hbmQsXG4gIENyZWF0ZVJlcG9zaXRvcnlDb21tYW5kLFxuICBEZWxldGVSZXBvc2l0b3J5Q29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Db21tYW5kLFxuICBEZXNjcmliZVJlcG9zaXRvcnlDb21tYW5kLFxuICBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kLFxuICBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kLFxuICBMaXN0UGFja2FnZXNDb21tYW5kLFxuICBMaXN0UmVwb3NpdG9yaWVzQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIFB1dFBhY2thZ2VPcmlnaW5Db25maWd1cmF0aW9uQ29tbWFuZCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNvZGVhcnRpZmFjdCc7XG5pbXBvcnQgeyBzbGVlcCB9IGZyb20gJy4uL2F3cyc7XG5cbmNvbnN0IENPTExFQ1RfQllfVEFHID0gJ2NvbGxlY3QtYnknO1xuY29uc3QgUkVQT19MSUZFVElNRV9NUyA9IDI0ICogMzYwMCAqIDEwMDA7IC8vIE9uZSBkYXlcblxuZXhwb3J0IGNsYXNzIFRlc3RSZXBvc2l0b3J5IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0RPTUFJTiA9ICd0ZXN0LWNkayc7XG5cbiAgcHVibGljIHN0YXRpYyBhc3luYyBuZXdSYW5kb20oKSB7XG4gICAgY29uc3QgcXVhbGlmaWVyID0gTWF0aC5yYW5kb20oKVxuICAgICAgLnRvU3RyaW5nKDM2KVxuICAgICAgLnJlcGxhY2UoL1teYS16MC05XSsvZywgJycpO1xuXG4gICAgY29uc3QgcmVwbyA9IG5ldyBUZXN0UmVwb3NpdG9yeShgdGVzdC0ke3F1YWxpZmllcn1gKTtcbiAgICBhd2FpdCByZXBvLnByZXBhcmUoKTtcbiAgICByZXR1cm4gcmVwbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgbmV3V2l0aE5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVwbyA9IG5ldyBUZXN0UmVwb3NpdG9yeShuYW1lKTtcbiAgICBhd2FpdCByZXBvLnByZXBhcmUoKTtcbiAgICByZXR1cm4gcmVwbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZXhpc3RpbmcocmVwb3NpdG9yeU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgVGVzdFJlcG9zaXRvcnkocmVwb3NpdG9yeU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdhcmJhZ2UgY29sbGVjdCByZXBvc2l0b3JpZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgZ2MoKSB7XG4gICAgaWYgKCEoYXdhaXQgVGVzdFJlcG9zaXRvcnkuZXhpc3RpbmcoJypkdW1teSonKS5kb21haW5FeGlzdHMoKSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb2RlQXJ0aWZhY3QgPSBuZXcgQ29kZWFydGlmYWN0Q2xpZW50KCk7XG5cbiAgICBsZXQgbmV4dFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgZG8ge1xuICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IGNvZGVBcnRpZmFjdC5zZW5kKFxuICAgICAgICBuZXcgTGlzdFJlcG9zaXRvcmllc0NvbW1hbmQoe1xuICAgICAgICAgIG5leHRUb2tlbjogbmV4dFRva2VuLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIGZvciAoY29uc3QgcmVwbyBvZiBwYWdlLnJlcG9zaXRvcmllcyA/PyBbXSkge1xuICAgICAgICBjb25zdCB0YWdzID0gYXdhaXQgY29kZUFydGlmYWN0LnNlbmQoXG4gICAgICAgICAgbmV3IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kKHtcbiAgICAgICAgICAgIHJlc291cmNlQXJuOiByZXBvLmFybiEsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNvbGxlY3RhYmxlID0gdGFncz8udGFncz8uZmluZCgodCkgPT4gdC5rZXkgPT09IENPTExFQ1RfQllfVEFHICYmIE51bWJlcih0LnZhbHVlKSA8IERhdGUubm93KCkpO1xuICAgICAgICBpZiAoY29sbGVjdGFibGUpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgIGNvbnNvbGUubG9nKCdEZWxldGluZycsIHJlcG8ubmFtZSk7XG4gICAgICAgICAgYXdhaXQgY29kZUFydGlmYWN0LnNlbmQoXG4gICAgICAgICAgICBuZXcgRGVsZXRlUmVwb3NpdG9yeUNvbW1hbmQoe1xuICAgICAgICAgICAgICBkb21haW46IHJlcG8uZG9tYWluTmFtZSEsXG4gICAgICAgICAgICAgIHJlcG9zaXRvcnk6IHJlcG8ubmFtZSEsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHRUb2tlbiA9IHBhZ2UubmV4dFRva2VuO1xuICAgIH0gd2hpbGUgKG5leHRUb2tlbik7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgbnBtVXBzdHJlYW0gPSAnbnBtLXVwc3RyZWFtJztcbiAgcHVibGljIHJlYWRvbmx5IHB5cGlVcHN0cmVhbSA9ICdweXBpLXVwc3RyZWFtJztcbiAgcHVibGljIHJlYWRvbmx5IG51Z2V0VXBzdHJlYW0gPSAnbnVnZXQtdXBzdHJlYW0nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWF2ZW5VcHN0cmVhbSA9ICdtYXZlbi11cHN0cmVhbSc7XG4gIHB1YmxpYyByZWFkb25seSBkb21haW4gPSBUZXN0UmVwb3NpdG9yeS5ERUZBVUxUX0RPTUFJTjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvZGVBcnRpZmFjdCA9IG5ldyBDb2RlYXJ0aWZhY3RDbGllbnQoKTtcblxuICBwcml2YXRlIF9sb2dpbkluZm9ybWF0aW9uOiBMb2dpbkluZm9ybWF0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVwYXJlKCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlRG9tYWluKCk7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVVcHN0cmVhbXMoKTtcblxuICAgIGF3YWl0IHRoaXMuZW5zdXJlUmVwb3NpdG9yeSh0aGlzLnJlcG9zaXRvcnlOYW1lLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1Rlc3RpbmcgcmVwb3NpdG9yeScsXG4gICAgICB1cHN0cmVhbXM6IFt0aGlzLm5wbVVwc3RyZWFtLCB0aGlzLnB5cGlVcHN0cmVhbSwgdGhpcy5udWdldFVwc3RyZWFtLCB0aGlzLm1hdmVuVXBzdHJlYW1dLFxuICAgICAgdGFnczoge1xuICAgICAgICBbQ09MTEVDVF9CWV9UQUddOiBgJHtEYXRlLm5vdygpICsgUkVQT19MSUZFVElNRV9NU31gLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbkluZm9ybWF0aW9uKCk6IFByb21pc2U8TG9naW5JbmZvcm1hdGlvbj4ge1xuICAgIGlmICh0aGlzLl9sb2dpbkluZm9ybWF0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbG9naW5JbmZvcm1hdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLl9sb2dpbkluZm9ybWF0aW9uID0ge1xuICAgICAgYXV0aFRva2VuOiAoXG4gICAgICAgIGF3YWl0IHRoaXMuY29kZUFydGlmYWN0LnNlbmQoXG4gICAgICAgICAgbmV3IEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmQoe1xuICAgICAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgICAgIGR1cmF0aW9uU2Vjb25kczogMTIgKiAzNjAwLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICApLmF1dGhvcml6YXRpb25Ub2tlbiEsXG4gICAgICByZXBvc2l0b3J5TmFtZTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcblxuICAgICAgbnBtRW5kcG9pbnQ6IChcbiAgICAgICAgYXdhaXQgdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChcbiAgICAgICAgICBuZXcgR2V0UmVwb3NpdG9yeUVuZHBvaW50Q29tbWFuZCh7XG4gICAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICAgIGZvcm1hdDogJ25wbScsXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgICkucmVwb3NpdG9yeUVuZHBvaW50ISxcblxuICAgICAgbWF2ZW5FbmRwb2ludDogKFxuICAgICAgICBhd2FpdCB0aGlzLmNvZGVBcnRpZmFjdC5zZW5kKFxuICAgICAgICAgIG5ldyBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kKHtcbiAgICAgICAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICAgICAgICByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgICAgICAgZm9ybWF0OiAnbWF2ZW4nLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICApLnJlcG9zaXRvcnlFbmRwb2ludCEsXG5cbiAgICAgIG51Z2V0RW5kcG9pbnQ6IChcbiAgICAgICAgYXdhaXQgdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChcbiAgICAgICAgICBuZXcgR2V0UmVwb3NpdG9yeUVuZHBvaW50Q29tbWFuZCh7XG4gICAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICAgIGZvcm1hdDogJ251Z2V0JyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgKS5yZXBvc2l0b3J5RW5kcG9pbnQhLFxuXG4gICAgICBweXBpRW5kcG9pbnQ6IChcbiAgICAgICAgYXdhaXQgdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChcbiAgICAgICAgICBuZXcgR2V0UmVwb3NpdG9yeUVuZHBvaW50Q29tbWFuZCh7XG4gICAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICAgIGZvcm1hdDogJ3B5cGknLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICApLnJlcG9zaXRvcnlFbmRwb2ludCEsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5fbG9naW5JbmZvcm1hdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29kZUFydGlmYWN0LnNlbmQoXG4gICAgICAgIG5ldyBEZWxldGVSZXBvc2l0b3J5Q29tbWFuZCh7XG4gICAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgICByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZygnRGVsZXRlZCcsIHRoaXMucmVwb3NpdG9yeU5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUubmFtZSAhPT0gJ1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICAvLyBPa2F5XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIHBhY2thZ2VzIGFuZCBtYXJrIHRoZW0gYXMgXCJhbGxvdyB1cHN0cmVhbSB2ZXJzaW9uc1wiLlxuICAgKlxuICAgKiBJZiB3ZSBkb24ndCBkbyB0aGlzIGFuZCB3ZSBwdWJsaXNoIGBmb29AMi4zLjQtcmMuMGAsIHRoZW4gd2UgY2FuJ3RcbiAgICogZG93bmxvYWQgYGZvb0AyLjMuMGAgYW55bW9yZSBiZWNhdXNlIGJ5IGRlZmF1bHQgQ29kZUFydGlmYWN0IHdpbGxcbiAgICogYmxvY2sgZGlmZmVyZW50IHZlcnNpb25zIGZyb20gdGhlIHNhbWUgcGFja2FnZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBtYXJrQWxsVXBzdHJlYW1BbGxvdygpIHtcbiAgICBmb3IgYXdhaXQgKGNvbnN0IHBrZyBvZiB0aGlzLmxpc3RQYWNrYWdlcyh7IHVwc3RyZWFtOiAnQkxPQ0snIH0pKSB7XG4gICAgICBhd2FpdCByZXRyeVRocm90dGxlZCgoKSA9PlxuICAgICAgICB0aGlzLmNvZGVBcnRpZmFjdC5zZW5kKFxuICAgICAgICAgIG5ldyBQdXRQYWNrYWdlT3JpZ2luQ29uZmlndXJhdGlvbkNvbW1hbmQoe1xuICAgICAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgICAgIHJlcG9zaXRvcnk6IHRoaXMucmVwb3NpdG9yeU5hbWUsXG5cbiAgICAgICAgICAgIGZvcm1hdDogcGtnLmZvcm1hdCEsXG4gICAgICAgICAgICBwYWNrYWdlOiBwa2cucGFja2FnZSEsXG4gICAgICAgICAgICBuYW1lc3BhY2U6IHBrZy5uYW1lc3BhY2UhLFxuICAgICAgICAgICAgcmVzdHJpY3Rpb25zOiB7XG4gICAgICAgICAgICAgIHB1Ymxpc2g6ICdBTExPVycsXG4gICAgICAgICAgICAgIHVwc3RyZWFtOiAnQUxMT1cnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVEb21haW4oKSB7XG4gICAgaWYgKGF3YWl0IHRoaXMuZG9tYWluRXhpc3RzKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChcbiAgICAgIG5ldyBDcmVhdGVEb21haW5Db21tYW5kKHtcbiAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgdGFnczogW3sga2V5OiAndGVzdGluZycsIHZhbHVlOiAndHJ1ZScgfV0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVVcHN0cmVhbXMoKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVSZXBvc2l0b3J5KHRoaXMubnBtVXBzdHJlYW0sIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIHVwc3RyZWFtIHJlcG9zaXRvcnkgZm9yIE5QTScsXG4gICAgICBleHRlcm5hbDogJ3B1YmxpYzpucG1qcycsXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVSZXBvc2l0b3J5KHRoaXMubWF2ZW5VcHN0cmVhbSwge1xuICAgICAgZGVzY3JpcHRpb246ICdUaGUgdXBzdHJlYW0gcmVwb3NpdG9yeSBmb3IgTWF2ZW4nLFxuICAgICAgZXh0ZXJuYWw6ICdwdWJsaWM6bWF2ZW4tY2VudHJhbCcsXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVSZXBvc2l0b3J5KHRoaXMubnVnZXRVcHN0cmVhbSwge1xuICAgICAgZGVzY3JpcHRpb246ICdUaGUgdXBzdHJlYW0gcmVwb3NpdG9yeSBmb3IgTnVHZXQnLFxuICAgICAgZXh0ZXJuYWw6ICdwdWJsaWM6bnVnZXQtb3JnJyxcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5weXBpVXBzdHJlYW0sIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIHVwc3RyZWFtIHJlcG9zaXRvcnkgZm9yIFB5UEknLFxuICAgICAgZXh0ZXJuYWw6ICdwdWJsaWM6cHlwaScsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVuc3VyZVJlcG9zaXRvcnkoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIHJlYWRvbmx5IGV4dGVybmFsPzogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgdXBzdHJlYW1zPzogc3RyaW5nW107XG4gICAgICByZWFkb25seSB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICB9LFxuICApIHtcbiAgICBpZiAoYXdhaXQgdGhpcy5yZXBvc2l0b3J5RXhpc3RzKG5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChcbiAgICAgIG5ldyBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZCh7XG4gICAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICAgIHJlcG9zaXRvcnk6IG5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zPy5kZXNjcmlwdGlvbixcbiAgICAgICAgdXBzdHJlYW1zOiBvcHRpb25zPy51cHN0cmVhbXM/Lm1hcCgocmVwb3NpdG9yeU5hbWUpID0+ICh7IHJlcG9zaXRvcnlOYW1lIH0pKSxcbiAgICAgICAgdGFnczogb3B0aW9ucz8udGFncyA/IE9iamVjdC5lbnRyaWVzKG9wdGlvbnMudGFncykubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGtleSwgdmFsdWUgfSkpIDogdW5kZWZpbmVkLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGlmIChvcHRpb25zPy5leHRlcm5hbCkge1xuICAgICAgY29uc3QgZXh0ZXJuYWxDb25uZWN0aW9uID0gb3B0aW9ucy5leHRlcm5hbDtcbiAgICAgIGF3YWl0IHJldHJ5KCgpID0+XG4gICAgICAgIHRoaXMuY29kZUFydGlmYWN0LnNlbmQoXG4gICAgICAgICAgbmV3IEFzc29jaWF0ZUV4dGVybmFsQ29ubmVjdGlvbkNvbW1hbmQoe1xuICAgICAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgICAgIHJlcG9zaXRvcnk6IG5hbWUsXG4gICAgICAgICAgICBleHRlcm5hbENvbm5lY3Rpb24sXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZG9tYWluRXhpc3RzKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNvZGVBcnRpZmFjdC5zZW5kKG5ldyBEZXNjcmliZURvbWFpbkNvbW1hbmQoeyBkb21haW46IHRoaXMuZG9tYWluIH0pKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUubmFtZSAhPT0gJ1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXBvc2l0b3J5RXhpc3RzKG5hbWU6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNvZGVBcnRpZmFjdC5zZW5kKG5ldyBEZXNjcmliZVJlcG9zaXRvcnlDb21tYW5kKHsgZG9tYWluOiB0aGlzLmRvbWFpbiwgcmVwb3NpdG9yeTogbmFtZSB9KSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLm5hbWUgIT09ICdSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJykge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgKmxpc3RQYWNrYWdlcyhmaWx0ZXI6IFBpY2s8TGlzdFBhY2thZ2VzUmVxdWVzdCwgJ3Vwc3RyZWFtJyB8ICdwdWJsaXNoJyB8ICdmb3JtYXQnPiA9IHt9KSB7XG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgcmV0cnlUaHJvdHRsZWQoKCkgPT5cbiAgICAgIHRoaXMuY29kZUFydGlmYWN0LnNlbmQoXG4gICAgICAgIG5ldyBMaXN0UGFja2FnZXNDb21tYW5kKHtcbiAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgIHJlcG9zaXRvcnk6IHRoaXMucmVwb3NpdG9yeU5hbWUsXG4gICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgcmVzcG9uc2UucGFja2FnZXMgPz8gW10pIHtcbiAgICAgICAgeWllbGQgcDtcbiAgICAgIH1cblxuICAgICAgaWYgKCFyZXNwb25zZS5uZXh0VG9rZW4pIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgcmV0cnlUaHJvdHRsZWQoKCkgPT5cbiAgICAgICAgdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChcbiAgICAgICAgICBuZXcgTGlzdFBhY2thZ2VzQ29tbWFuZCh7XG4gICAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgIG5leHRUb2tlbjogcmVzcG9uc2UubmV4dFRva2VuLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0cnk8QT4oYmxvY2s6ICgpID0+IFByb21pc2U8QT4pIHtcbiAgbGV0IGF0dGVtcHRzID0gMztcbiAgd2hpbGUgKHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoYXR0ZW1wdHMtLSA9PT0gMCkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZGVidWcoZS5tZXNzYWdlKTtcbiAgICAgIGF3YWl0IHNsZWVwKDUwMCk7XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJ5VGhyb3R0bGVkPEE+KGJsb2NrOiAoKSA9PiBQcm9taXNlPEE+KSB7XG4gIGxldCB0aW1lID0gMTAwO1xuICBsZXQgYXR0ZW1wdHMgPSAxNTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5kZWJ1ZyhlLm1lc3NhZ2UpO1xuICAgICAgaWYgKGUubmFtZSAhPT0gJ1Rocm90dGxpbmdFeGNlcHRpb24nKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBpZiAoYXR0ZW1wdHMtLSA9PT0gMCkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgYXdhaXQgc2xlZXAoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGltZSkpO1xuICAgICAgdGltZSAqPSAyO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luSW5mb3JtYXRpb24ge1xuICByZWFkb25seSBhdXRoVG9rZW46IHN0cmluZztcbiAgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbnBtRW5kcG9pbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgbWF2ZW5FbmRwb2ludDogc3RyaW5nO1xuICByZWFkb25seSBudWdldEVuZHBvaW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHB5cGlFbmRwb2ludDogc3RyaW5nO1xufVxuIl19
@@ -1,5 +1,5 @@
1
- import { LoginInformation } from './codeartifact';
2
- import { UsageDir } from './usage-dir';
1
+ import type { LoginInformation } from './codeartifact';
2
+ import type { UsageDir } from './usage-dir';
3
3
  export declare function mavenLogin(login: LoginInformation, usageDir: UsageDir): Promise<void>;
4
4
  export declare function uploadJavaPackages(packages: string[], login: LoginInformation, usageDir: UsageDir): Promise<void>;
5
5
  export declare function writeMavenSettingsFile(filename: string, login: LoginInformation): Promise<void>;
@@ -12,12 +12,11 @@ const shell_1 = require("../shell");
12
12
  // Do not try to JIT the Maven binary
13
13
  const NO_JIT = '-XX:+TieredCompilation -XX:TieredStopAtLevel=1';
14
14
  async function mavenLogin(login, usageDir) {
15
- var _a;
16
15
  await writeMavenSettingsFile(settingsFile(usageDir), login);
17
16
  // Write env var
18
17
  // Twiddle JVM settings a bit to make Maven survive running on a CodeBuild box.
19
18
  await usageDir.addToEnv({
20
- MAVEN_OPTS: `-Duser.home=${usageDir.directory} ${NO_JIT} ${(_a = process.env.MAVEN_OPTS) !== null && _a !== void 0 ? _a : ''}`.trim(),
19
+ MAVEN_OPTS: `-Duser.home=${usageDir.directory} ${NO_JIT} ${process.env.MAVEN_OPTS ?? ''}`.trim(),
21
20
  });
22
21
  }
23
22
  function settingsFile(usageDir) {
@@ -27,7 +26,6 @@ function settingsFile(usageDir) {
27
26
  }
28
27
  async function uploadJavaPackages(packages, login, usageDir) {
29
28
  await (0, parallel_shell_1.parallelShell)(packages, async (pkg, output) => {
30
- var _a;
31
29
  console.log(`⏳ ${pkg}`);
32
30
  const sourcesFile = pkg.replace(/.pom$/, '-sources.jar');
33
31
  const javadocFile = pkg.replace(/.pom$/, '-javadoc.jar');
@@ -43,7 +41,7 @@ async function uploadJavaPackages(packages, login, usageDir) {
43
41
  outputs: [output],
44
42
  modEnv: {
45
43
  // Do not try to JIT the Maven binary
46
- MAVEN_OPTS: `${NO_JIT} ${(_a = process.env.MAVEN_OPTS) !== null && _a !== void 0 ? _a : ''}`.trim(),
44
+ MAVEN_OPTS: `${NO_JIT} ${process.env.MAVEN_OPTS ?? ''}`.trim(),
47
45
  },
48
46
  });
49
47
  console.log(`✅ ${pkg}`);
@@ -88,4 +86,4 @@ async function writeMavenSettingsFile(filename, login) {
88
86
  </activeProfiles>
89
87
  </settings>`);
90
88
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXZlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLGdDQVFDO0FBUUQsZ0RBb0NDO0FBRUQsd0RBNEJDO0FBOUZELCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IsdUNBQXNDO0FBRXRDLHFEQUFpRDtBQUVqRCxvQ0FBcUM7QUFDckMsb0NBQWlDO0FBRWpDLHFDQUFxQztBQUNyQyxNQUFNLE1BQU0sR0FBRyxnREFBZ0QsQ0FBQztBQUV6RCxLQUFLLFVBQVUsVUFBVSxDQUFDLEtBQXVCLEVBQUUsUUFBa0I7O0lBQzFFLE1BQU0sc0JBQXNCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRTVELGdCQUFnQjtJQUNoQiwrRUFBK0U7SUFDL0UsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ3RCLFVBQVUsRUFBRSxlQUFlLFFBQVEsQ0FBQyxTQUFTLElBQUksTUFBTSxJQUFJLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLG1DQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRTtLQUNqRyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsUUFBa0I7SUFDdEMsK0VBQStFO0lBQy9FLDRFQUE0RTtJQUM1RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVNLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxRQUFrQixFQUFFLEtBQXVCLEVBQUUsUUFBa0I7SUFDdEcsTUFBTSxJQUFBLDhCQUFhLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7O1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXhCLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRXpELE1BQU0sSUFBQSxhQUFLLEVBQUMsQ0FBQyxLQUFLO1lBQ2hCLGNBQWMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RDLGdFQUFnRTtZQUNoRSxTQUFTLEtBQUssQ0FBQyxhQUFhLEVBQUU7WUFDOUIsNkJBQTZCO1lBQzdCLGFBQWEsR0FBRyxFQUFFO1lBQ2xCLFVBQVUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDeEMsR0FBRyxNQUFNLElBQUEscUJBQVUsRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEUsR0FBRyxNQUFNLElBQUEscUJBQVUsRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3ZFLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNqQixNQUFNLEVBQUU7Z0JBQ04scUNBQXFDO2dCQUNyQyxVQUFVLEVBQUUsR0FBRyxNQUFNLElBQUksTUFBQSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsbUNBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO2FBQy9EO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztZQUNsRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztZQUNwRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFTSxLQUFLLFVBQVUsc0JBQXNCLENBQUMsUUFBZ0IsRUFBRSxLQUF1QjtJQUNwRixNQUFNLElBQUEsaUJBQVMsRUFBQyxRQUFRLEVBQUU7Ozs7Ozs7OztvQkFTUixLQUFLLENBQUMsU0FBUzs7Ozs7Ozs7O21CQVNoQixLQUFLLENBQUMsYUFBYTs7Ozs7Ozs7Y0FReEIsQ0FBQyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IExvZ2luSW5mb3JtYXRpb24gfSBmcm9tICcuL2NvZGVhcnRpZmFjdCc7XG5pbXBvcnQgeyBwYXJhbGxlbFNoZWxsIH0gZnJvbSAnLi9wYXJhbGxlbC1zaGVsbCc7XG5pbXBvcnQgeyBVc2FnZURpciB9IGZyb20gJy4vdXNhZ2UtZGlyJztcbmltcG9ydCB7IHdyaXRlRmlsZSB9IGZyb20gJy4uL2ZpbGVzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG4vLyBEbyBub3QgdHJ5IHRvIEpJVCB0aGUgTWF2ZW4gYmluYXJ5XG5jb25zdCBOT19KSVQgPSAnLVhYOitUaWVyZWRDb21waWxhdGlvbiAtWFg6VGllcmVkU3RvcEF0TGV2ZWw9MSc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYXZlbkxvZ2luKGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uLCB1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgYXdhaXQgd3JpdGVNYXZlblNldHRpbmdzRmlsZShzZXR0aW5nc0ZpbGUodXNhZ2VEaXIpLCBsb2dpbik7XG5cbiAgLy8gV3JpdGUgZW52IHZhclxuICAvLyBUd2lkZGxlIEpWTSBzZXR0aW5ncyBhIGJpdCB0byBtYWtlIE1hdmVuIHN1cnZpdmUgcnVubmluZyBvbiBhIENvZGVCdWlsZCBib3guXG4gIGF3YWl0IHVzYWdlRGlyLmFkZFRvRW52KHtcbiAgICBNQVZFTl9PUFRTOiBgLUR1c2VyLmhvbWU9JHt1c2FnZURpci5kaXJlY3Rvcnl9ICR7Tk9fSklUfSAke3Byb2Nlc3MuZW52Lk1BVkVOX09QVFMgPz8gJyd9YC50cmltKCksXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXR0aW5nc0ZpbGUodXNhZ2VEaXI6IFVzYWdlRGlyKSB7XG4gIC8vIElmIHdlIGNvbmZpZ3VyZSB1c2FnZURpciBhcyBhIGZha2UgaG9tZSBkaXJlY3RvcnkgTWF2ZW4gd2lsbCBmaW5kIHRoaXMgZmlsZS5cbiAgLy8gKE5vIG90aGVyIHdheSB0byBjb25maWd1cmUgdGhlIHNldHRpbmdzIGZpbGUgYXMgcGFydCBvZiB0aGUgZW52aXJvbm1lbnQpLlxuICByZXR1cm4gcGF0aC5qb2luKHVzYWdlRGlyLmRpcmVjdG9yeSwgJy5tMicsICdzZXR0aW5ncy54bWwnKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwbG9hZEphdmFQYWNrYWdlcyhwYWNrYWdlczogc3RyaW5nW10sIGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uLCB1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgYXdhaXQgcGFyYWxsZWxTaGVsbChwYWNrYWdlcywgYXN5bmMgKHBrZywgb3V0cHV0KSA9PiB7XG4gICAgY29uc29sZS5sb2coYOKPsyAke3BrZ31gKTtcblxuICAgIGNvbnN0IHNvdXJjZXNGaWxlID0gcGtnLnJlcGxhY2UoLy5wb20kLywgJy1zb3VyY2VzLmphcicpO1xuICAgIGNvbnN0IGphdmFkb2NGaWxlID0gcGtnLnJlcGxhY2UoLy5wb20kLywgJy1qYXZhZG9jLmphcicpO1xuXG4gICAgYXdhaXQgc2hlbGwoWydtdm4nLFxuICAgICAgYC0tc2V0dGluZ3M9JHtzZXR0aW5nc0ZpbGUodXNhZ2VEaXIpfWAsXG4gICAgICAnb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLWRlcGxveS1wbHVnaW46My4wLjA6ZGVwbG95LWZpbGUnLFxuICAgICAgYC1EdXJsPSR7bG9naW4ubWF2ZW5FbmRwb2ludH1gLFxuICAgICAgJy1EcmVwb3NpdG9yeUlkPWNvZGVhcnRpZmFjdCcsXG4gICAgICBgLURwb21GaWxlPSR7cGtnfWAsXG4gICAgICBgLURmaWxlPSR7cGtnLnJlcGxhY2UoLy5wb20kLywgJy5qYXInKX1gLFxuICAgICAgLi4uYXdhaXQgcGF0aEV4aXN0cyhzb3VyY2VzRmlsZSkgPyBbYC1Ec291cmNlcz0ke3NvdXJjZXNGaWxlfWBdIDogW10sXG4gICAgICAuLi5hd2FpdCBwYXRoRXhpc3RzKGphdmFkb2NGaWxlKSA/IFtgLURqYXZhZG9jPSR7amF2YWRvY0ZpbGV9YF0gOiBbXV0sIHtcbiAgICAgIG91dHB1dHM6IFtvdXRwdXRdLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIC8vIERvIG5vdCB0cnkgdG8gSklUIHRoZSBNYXZlbiBiaW5hcnlcbiAgICAgICAgTUFWRU5fT1BUUzogYCR7Tk9fSklUfSAke3Byb2Nlc3MuZW52Lk1BVkVOX09QVFMgPz8gJyd9YC50cmltKCksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coYOKchSAke3BrZ31gKTtcbiAgfSxcbiAgKHBrZywgb3V0cHV0KSA9PiB7XG4gICAgaWYgKG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCc0MDkgQ29uZmxpY3QnKSkge1xuICAgICAgY29uc29sZS5sb2coYOKdjCAke3BrZ306IGFscmVhZHkgZXhpc3RzLiBTa2lwcGVkLmApO1xuICAgICAgcmV0dXJuICdza2lwJztcbiAgICB9XG4gICAgaWYgKG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCdUb28gTWFueSBSZXF1ZXN0cycpKSB7XG4gICAgICBjb25zb2xlLmxvZyhg4pm777iPICR7cGtnfTogVG9vIG1hbnkgcmVxdWVzdHMuIFJldHJ5aW5nLmApO1xuICAgICAgcmV0dXJuICdyZXRyeSc7XG4gICAgfVxuICAgIHJldHVybiAnZmFpbCc7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVNYXZlblNldHRpbmdzRmlsZShmaWxlbmFtZTogc3RyaW5nLCBsb2dpbjogTG9naW5JbmZvcm1hdGlvbikge1xuICBhd2FpdCB3cml0ZUZpbGUoZmlsZW5hbWUsIGA8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiID8+XG4gIDxzZXR0aW5ncyB4bWxucz1cImh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1NFVFRJTkdTLzEuMC4wXCJcbiAgICAgICAgICAgIHhtbG5zOnhzaT1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCJcbiAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj1cImh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1NFVFRJTkdTLzEuMC4wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9zZXR0aW5ncy0xLjAuMC54c2RcIj5cbiAgICA8c2VydmVycz5cbiAgICAgIDxzZXJ2ZXI+XG4gICAgICAgIDxpZD5jb2RlYXJ0aWZhY3Q8L2lkPlxuICAgICAgICA8dXNlcm5hbWU+YXdzPC91c2VybmFtZT5cbiAgICAgICAgPHBhc3N3b3JkPiR7bG9naW4uYXV0aFRva2VufTwvcGFzc3dvcmQ+XG4gICAgICA8L3NlcnZlcj5cbiAgICA8L3NlcnZlcnM+XG4gICAgPHByb2ZpbGVzPlxuICAgICAgPHByb2ZpbGU+XG4gICAgICAgIDxpZD5kZWZhdWx0PC9pZD5cbiAgICAgICAgPHJlcG9zaXRvcmllcz5cbiAgICAgICAgICA8cmVwb3NpdG9yeT5cbiAgICAgICAgICAgIDxpZD5jb2RlYXJ0aWZhY3Q8L2lkPlxuICAgICAgICAgICAgPHVybD4ke2xvZ2luLm1hdmVuRW5kcG9pbnR9PC91cmw+XG4gICAgICAgICAgPC9yZXBvc2l0b3J5PlxuICAgICAgICA8L3JlcG9zaXRvcmllcz5cbiAgICAgIDwvcHJvZmlsZT5cbiAgICA8L3Byb2ZpbGVzPlxuICAgIDxhY3RpdmVQcm9maWxlcz5cbiAgICAgIDxhY3RpdmVQcm9maWxlPmRlZmF1bHQ8L2FjdGl2ZVByb2ZpbGU+XG4gICAgPC9hY3RpdmVQcm9maWxlcz5cbiAgPC9zZXR0aW5ncz5gKTtcbn1cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXZlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLGdDQVFDO0FBUUQsZ0RBb0NDO0FBRUQsd0RBNEJDO0FBOUZELCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IsdUNBQXNDO0FBRXRDLHFEQUFpRDtBQUVqRCxvQ0FBcUM7QUFDckMsb0NBQWlDO0FBRWpDLHFDQUFxQztBQUNyQyxNQUFNLE1BQU0sR0FBRyxnREFBZ0QsQ0FBQztBQUV6RCxLQUFLLFVBQVUsVUFBVSxDQUFDLEtBQXVCLEVBQUUsUUFBa0I7SUFDMUUsTUFBTSxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFNUQsZ0JBQWdCO0lBQ2hCLCtFQUErRTtJQUMvRSxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdEIsVUFBVSxFQUFFLGVBQWUsUUFBUSxDQUFDLFNBQVMsSUFBSSxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO0tBQ2pHLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxRQUFrQjtJQUN0QywrRUFBK0U7SUFDL0UsNEVBQTRFO0lBQzVFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRU0sS0FBSyxVQUFVLGtCQUFrQixDQUFDLFFBQWtCLEVBQUUsS0FBdUIsRUFBRSxRQUFrQjtJQUN0RyxNQUFNLElBQUEsOEJBQWEsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUV4QixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN6RCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV6RCxNQUFNLElBQUEsYUFBSyxFQUFDLENBQUMsS0FBSztZQUNoQixjQUFjLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN0QyxnRUFBZ0U7WUFDaEUsU0FBUyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQzlCLDZCQUE2QjtZQUM3QixhQUFhLEdBQUcsRUFBRTtZQUNsQixVQUFVLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ3hDLEdBQUcsTUFBTSxJQUFBLHFCQUFVLEVBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BFLEdBQUcsTUFBTSxJQUFBLHFCQUFVLEVBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN2RSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsTUFBTSxFQUFFO2dCQUNOLHFDQUFxQztnQkFDckMsVUFBVSxFQUFFLEdBQUcsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRTthQUMvRDtTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNkLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDLENBQUM7WUFDbEQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDcEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsZ0NBQWdDLENBQUMsQ0FBQztZQUN2RCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRU0sS0FBSyxVQUFVLHNCQUFzQixDQUFDLFFBQWdCLEVBQUUsS0FBdUI7SUFDcEYsTUFBTSxJQUFBLGlCQUFTLEVBQUMsUUFBUSxFQUFFOzs7Ozs7Ozs7b0JBU1IsS0FBSyxDQUFDLFNBQVM7Ozs7Ozs7OzttQkFTaEIsS0FBSyxDQUFDLGFBQWE7Ozs7Ozs7O2NBUXhCLENBQUMsQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHBhdGhFeGlzdHMgfSBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSB7IExvZ2luSW5mb3JtYXRpb24gfSBmcm9tICcuL2NvZGVhcnRpZmFjdCc7XG5pbXBvcnQgeyBwYXJhbGxlbFNoZWxsIH0gZnJvbSAnLi9wYXJhbGxlbC1zaGVsbCc7XG5pbXBvcnQgdHlwZSB7IFVzYWdlRGlyIH0gZnJvbSAnLi91c2FnZS1kaXInO1xuaW1wb3J0IHsgd3JpdGVGaWxlIH0gZnJvbSAnLi4vZmlsZXMnO1xuaW1wb3J0IHsgc2hlbGwgfSBmcm9tICcuLi9zaGVsbCc7XG5cbi8vIERvIG5vdCB0cnkgdG8gSklUIHRoZSBNYXZlbiBiaW5hcnlcbmNvbnN0IE5PX0pJVCA9ICctWFg6K1RpZXJlZENvbXBpbGF0aW9uIC1YWDpUaWVyZWRTdG9wQXRMZXZlbD0xJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1hdmVuTG9naW4obG9naW46IExvZ2luSW5mb3JtYXRpb24sIHVzYWdlRGlyOiBVc2FnZURpcikge1xuICBhd2FpdCB3cml0ZU1hdmVuU2V0dGluZ3NGaWxlKHNldHRpbmdzRmlsZSh1c2FnZURpciksIGxvZ2luKTtcblxuICAvLyBXcml0ZSBlbnYgdmFyXG4gIC8vIFR3aWRkbGUgSlZNIHNldHRpbmdzIGEgYml0IHRvIG1ha2UgTWF2ZW4gc3Vydml2ZSBydW5uaW5nIG9uIGEgQ29kZUJ1aWxkIGJveC5cbiAgYXdhaXQgdXNhZ2VEaXIuYWRkVG9FbnYoe1xuICAgIE1BVkVOX09QVFM6IGAtRHVzZXIuaG9tZT0ke3VzYWdlRGlyLmRpcmVjdG9yeX0gJHtOT19KSVR9ICR7cHJvY2Vzcy5lbnYuTUFWRU5fT1BUUyA/PyAnJ31gLnRyaW0oKSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldHRpbmdzRmlsZSh1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgLy8gSWYgd2UgY29uZmlndXJlIHVzYWdlRGlyIGFzIGEgZmFrZSBob21lIGRpcmVjdG9yeSBNYXZlbiB3aWxsIGZpbmQgdGhpcyBmaWxlLlxuICAvLyAoTm8gb3RoZXIgd2F5IHRvIGNvbmZpZ3VyZSB0aGUgc2V0dGluZ3MgZmlsZSBhcyBwYXJ0IG9mIHRoZSBlbnZpcm9ubWVudCkuXG4gIHJldHVybiBwYXRoLmpvaW4odXNhZ2VEaXIuZGlyZWN0b3J5LCAnLm0yJywgJ3NldHRpbmdzLnhtbCcpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBsb2FkSmF2YVBhY2thZ2VzKHBhY2thZ2VzOiBzdHJpbmdbXSwgbG9naW46IExvZ2luSW5mb3JtYXRpb24sIHVzYWdlRGlyOiBVc2FnZURpcikge1xuICBhd2FpdCBwYXJhbGxlbFNoZWxsKHBhY2thZ2VzLCBhc3luYyAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBjb25zb2xlLmxvZyhg4o+zICR7cGtnfWApO1xuXG4gICAgY29uc3Qgc291cmNlc0ZpbGUgPSBwa2cucmVwbGFjZSgvLnBvbSQvLCAnLXNvdXJjZXMuamFyJyk7XG4gICAgY29uc3QgamF2YWRvY0ZpbGUgPSBwa2cucmVwbGFjZSgvLnBvbSQvLCAnLWphdmFkb2MuamFyJyk7XG5cbiAgICBhd2FpdCBzaGVsbChbJ212bicsXG4gICAgICBgLS1zZXR0aW5ncz0ke3NldHRpbmdzRmlsZSh1c2FnZURpcil9YCxcbiAgICAgICdvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tZGVwbG95LXBsdWdpbjozLjAuMDpkZXBsb3ktZmlsZScsXG4gICAgICBgLUR1cmw9JHtsb2dpbi5tYXZlbkVuZHBvaW50fWAsXG4gICAgICAnLURyZXBvc2l0b3J5SWQ9Y29kZWFydGlmYWN0JyxcbiAgICAgIGAtRHBvbUZpbGU9JHtwa2d9YCxcbiAgICAgIGAtRGZpbGU9JHtwa2cucmVwbGFjZSgvLnBvbSQvLCAnLmphcicpfWAsXG4gICAgICAuLi5hd2FpdCBwYXRoRXhpc3RzKHNvdXJjZXNGaWxlKSA/IFtgLURzb3VyY2VzPSR7c291cmNlc0ZpbGV9YF0gOiBbXSxcbiAgICAgIC4uLmF3YWl0IHBhdGhFeGlzdHMoamF2YWRvY0ZpbGUpID8gW2AtRGphdmFkb2M9JHtqYXZhZG9jRmlsZX1gXSA6IFtdXSwge1xuICAgICAgb3V0cHV0czogW291dHB1dF0sXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgLy8gRG8gbm90IHRyeSB0byBKSVQgdGhlIE1hdmVuIGJpbmFyeVxuICAgICAgICBNQVZFTl9PUFRTOiBgJHtOT19KSVR9ICR7cHJvY2Vzcy5lbnYuTUFWRU5fT1BUUyA/PyAnJ31gLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhg4pyFICR7cGtnfWApO1xuICB9LFxuICAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBpZiAob3V0cHV0LnRvU3RyaW5nKCkuaW5jbHVkZXMoJzQwOSBDb25mbGljdCcpKSB7XG4gICAgICBjb25zb2xlLmxvZyhg4p2MICR7cGtnfTogYWxyZWFkeSBleGlzdHMuIFNraXBwZWQuYCk7XG4gICAgICByZXR1cm4gJ3NraXAnO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LnRvU3RyaW5nKCkuaW5jbHVkZXMoJ1RvbyBNYW55IFJlcXVlc3RzJykpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDimbvvuI8gJHtwa2d9OiBUb28gbWFueSByZXF1ZXN0cy4gUmV0cnlpbmcuYCk7XG4gICAgICByZXR1cm4gJ3JldHJ5JztcbiAgICB9XG4gICAgcmV0dXJuICdmYWlsJztcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZU1hdmVuU2V0dGluZ3NGaWxlKGZpbGVuYW1lOiBzdHJpbmcsIGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uKSB7XG4gIGF3YWl0IHdyaXRlRmlsZShmaWxlbmFtZSwgYDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCIgPz5cbiAgPHNldHRpbmdzIHhtbG5zPVwiaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvU0VUVElOR1MvMS4wLjBcIlxuICAgICAgICAgICAgeG1sbnM6eHNpPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIlxuICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPVwiaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvU0VUVElOR1MvMS4wLjBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL3NldHRpbmdzLTEuMC4wLnhzZFwiPlxuICAgIDxzZXJ2ZXJzPlxuICAgICAgPHNlcnZlcj5cbiAgICAgICAgPGlkPmNvZGVhcnRpZmFjdDwvaWQ+XG4gICAgICAgIDx1c2VybmFtZT5hd3M8L3VzZXJuYW1lPlxuICAgICAgICA8cGFzc3dvcmQ+JHtsb2dpbi5hdXRoVG9rZW59PC9wYXNzd29yZD5cbiAgICAgIDwvc2VydmVyPlxuICAgIDwvc2VydmVycz5cbiAgICA8cHJvZmlsZXM+XG4gICAgICA8cHJvZmlsZT5cbiAgICAgICAgPGlkPmRlZmF1bHQ8L2lkPlxuICAgICAgICA8cmVwb3NpdG9yaWVzPlxuICAgICAgICAgIDxyZXBvc2l0b3J5PlxuICAgICAgICAgICAgPGlkPmNvZGVhcnRpZmFjdDwvaWQ+XG4gICAgICAgICAgICA8dXJsPiR7bG9naW4ubWF2ZW5FbmRwb2ludH08L3VybD5cbiAgICAgICAgICA8L3JlcG9zaXRvcnk+XG4gICAgICAgIDwvcmVwb3NpdG9yaWVzPlxuICAgICAgPC9wcm9maWxlPlxuICAgIDwvcHJvZmlsZXM+XG4gICAgPGFjdGl2ZVByb2ZpbGVzPlxuICAgICAgPGFjdGl2ZVByb2ZpbGU+ZGVmYXVsdDwvYWN0aXZlUHJvZmlsZT5cbiAgICA8L2FjdGl2ZVByb2ZpbGVzPlxuICA8L3NldHRpbmdzPmApO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { LoginInformation } from './codeartifact';
2
- import { UsageDir } from './usage-dir';
1
+ import type { LoginInformation } from './codeartifact';
2
+ import type { UsageDir } from './usage-dir';
3
3
  export declare function npmLogin(login: LoginInformation, usageDir: UsageDir): Promise<void>;
4
4
  export declare function uploadNpmPackages(packages: string[], login: LoginInformation, usageDir: UsageDir): Promise<void>;
@@ -52,4 +52,4 @@ async function writeNpmLoginToken(usageDir, endpoint, token) {
52
52
  return rcFile;
53
53
  }
54
54
  // Environment variable, .npmrc in same directory as package.json or in home dir
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsNEJBTUM7QUFXRCw4Q0F1QkM7QUFoREQsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUU3QixxREFBaUQ7QUFFakQsb0NBQStEO0FBQy9ELG9DQUFpQztBQUUxQixLQUFLLFVBQVUsUUFBUSxDQUFDLEtBQXVCLEVBQUUsUUFBa0I7SUFDeEUsMElBQTBJO0lBQzFJLE1BQU0sa0JBQWtCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFdEUsNEJBQTRCO0lBQzVCLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLFFBQWtCLEVBQUUsS0FBdUI7SUFDekQsT0FBTztRQUNMLHFCQUFxQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7UUFDOUQsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFdBQVc7UUFDdEMsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLHNFQUFzRTtRQUN0RyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7S0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsUUFBa0IsRUFBRSxLQUF1QixFQUFFLFFBQWtCO0lBQ3JHLE1BQU0sSUFBQSw4QkFBYSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXhCLGlJQUFpSTtRQUNqSSxNQUFNLElBQUEsYUFBSyxFQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUMxRSxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7WUFDL0IsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2pCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7WUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztZQUNsRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsQ0FBQztZQUM5QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsS0FBSyxVQUFVLGtCQUFrQixDQUFDLFFBQWtCLEVBQUUsUUFBZ0IsRUFBRSxLQUFhO0lBQ25GLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsaUJBQVMsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUV0QyxNQUFNLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDNUQsSUFBQSxvQkFBWSxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFaEMsTUFBTSxJQUFBLGtCQUFVLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxnRkFBZ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgTG9naW5JbmZvcm1hdGlvbiB9IGZyb20gJy4vY29kZWFydGlmYWN0JztcbmltcG9ydCB7IHBhcmFsbGVsU2hlbGwgfSBmcm9tICcuL3BhcmFsbGVsLXNoZWxsJztcbmltcG9ydCB7IFVzYWdlRGlyIH0gZnJvbSAnLi91c2FnZS1kaXInO1xuaW1wb3J0IHsgdXBkYXRlSW5pS2V5LCBsb2FkTGluZXMsIHdyaXRlTGluZXMgfSBmcm9tICcuLi9maWxlcyc7XG5pbXBvcnQgeyBzaGVsbCB9IGZyb20gJy4uL3NoZWxsJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5wbUxvZ2luKGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uLCB1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgLy8gQ3JlYXRpbmcgYW4gfi8ubnBtcmMgdGhhdCByZWZlcmVuY2VzIGFuIGVudnZhciBpcyB3aGF0IHlvdSdyZSBzdXBwb3NlZCB0byBkby4gKGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vcHJpdmF0ZS1tb2R1bGVzL2NpLXNlcnZlci1jb25maWcpXG4gIGF3YWl0IHdyaXRlTnBtTG9naW5Ub2tlbih1c2FnZURpciwgbG9naW4ubnBtRW5kcG9pbnQsICcke05QTV9UT0tFTn0nKTtcblxuICAvLyBBZGQgdmFyaWFibGVzIHRvIGVudiBmaWxlXG4gIGF3YWl0IHVzYWdlRGlyLmFkZFRvRW52KG5wbUVudih1c2FnZURpciwgbG9naW4pKTtcbn1cblxuZnVuY3Rpb24gbnBtRW52KHVzYWdlRGlyOiBVc2FnZURpciwgbG9naW46IExvZ2luSW5mb3JtYXRpb24pIHtcbiAgcmV0dXJuIHtcbiAgICBucG1fY29uZmlnX3VzZXJjb25maWc6IHBhdGguam9pbih1c2FnZURpci5kaXJlY3RvcnksICcubnBtcmMnKSxcbiAgICBucG1fY29uZmlnX3JlZ2lzdHJ5OiBsb2dpbi5ucG1FbmRwb2ludCxcbiAgICBucG1fY29uZmlnX2Fsd2F5c19hdXRoOiAndHJ1ZScsIC8vIE5lY2Vzc2FyeSBmb3IgTlBNIDYsIG90aGVyd2lzZSBpdCB3aWxsIHNvbWV0aW1lcyBub3QgcGFzcyB0aGUgdG9rZW5cbiAgICBOUE1fVE9LRU46IGxvZ2luLmF1dGhUb2tlbixcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwbG9hZE5wbVBhY2thZ2VzKHBhY2thZ2VzOiBzdHJpbmdbXSwgbG9naW46IExvZ2luSW5mb3JtYXRpb24sIHVzYWdlRGlyOiBVc2FnZURpcikge1xuICBhd2FpdCBwYXJhbGxlbFNoZWxsKHBhY2thZ2VzLCBhc3luYyAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBjb25zb2xlLmxvZyhg4o+zICR7cGtnfWApO1xuXG4gICAgLy8gcGF0aC5yZXNvbHZlKCkgaXMgcmVxdWlyZWQgLS0gaWYgdGhlIGZpbGVuYW1lIGVuZHMgdXAgbG9va2luZyBsaWtlIGBqcy9ibGEudGd6YCB0aGVuIE5QTSB0aGlua3MgaXQncyBhIHNob3J0IGZvcm0gR2l0SHViIG5hbWUuXG4gICAgYXdhaXQgc2hlbGwoWydub2RlJywgcmVxdWlyZS5yZXNvbHZlKCducG0nKSwgJ3B1Ymxpc2gnLCBwYXRoLnJlc29sdmUocGtnKV0sIHtcbiAgICAgIG1vZEVudjogbnBtRW52KHVzYWdlRGlyLCBsb2dpbiksXG4gICAgICBzaG93OiAnZXJyb3InLFxuICAgICAgb3V0cHV0czogW291dHB1dF0sXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhg4pyFICR7cGtnfWApO1xuICB9LCAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBpZiAob3V0cHV0LnRvU3RyaW5nKCkuaW5jbHVkZXMoJ2NvZGUgRVBVQkxJU0hDT05GTElDVCcpKSB7XG4gICAgICBjb25zb2xlLmxvZyhg4p2MICR7cGtnfTogYWxyZWFkeSBleGlzdHMuIFNraXBwZWQuYCk7XG4gICAgICByZXR1cm4gJ3NraXAnO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LnRvU3RyaW5nKCkuaW5jbHVkZXMoJ2NvZGUgRVBSSVZBVEUnKSkge1xuICAgICAgY29uc29sZS5sb2coYOKdjCAke3BrZ306IGlzIHByaXZhdGUuIFNraXBwZWQuYCk7XG4gICAgICByZXR1cm4gJ3NraXAnO1xuICAgIH1cbiAgICByZXR1cm4gJ2ZhaWwnO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd3JpdGVOcG1Mb2dpblRva2VuKHVzYWdlRGlyOiBVc2FnZURpciwgZW5kcG9pbnQ6IHN0cmluZywgdG9rZW46IHN0cmluZykge1xuICBjb25zdCByY0ZpbGUgPSBwYXRoLmpvaW4odXNhZ2VEaXIuZGlyZWN0b3J5LCAnLm5wbXJjJyk7XG4gIGNvbnN0IGxpbmVzID0gYXdhaXQgbG9hZExpbmVzKHJjRmlsZSk7XG5cbiAgY29uc3Qga2V5ID0gYCR7ZW5kcG9pbnQucmVwbGFjZSgvXmh0dHBzOi8sICcnKX06X2F1dGhUb2tlbmA7XG4gIHVwZGF0ZUluaUtleShsaW5lcywga2V5LCB0b2tlbik7XG5cbiAgYXdhaXQgd3JpdGVMaW5lcyhyY0ZpbGUsIGxpbmVzKTtcbiAgcmV0dXJuIHJjRmlsZTtcbn1cblxuLy8gRW52aXJvbm1lbnQgdmFyaWFibGUsIC5ucG1yYyBpbiBzYW1lIGRpcmVjdG9yeSBhcyBwYWNrYWdlLmpzb24gb3IgaW4gaG9tZSBkaXJcbiJdfQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsNEJBTUM7QUFXRCw4Q0F1QkM7QUFoREQsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUU3QixxREFBaUQ7QUFFakQsb0NBQStEO0FBQy9ELG9DQUFpQztBQUUxQixLQUFLLFVBQVUsUUFBUSxDQUFDLEtBQXVCLEVBQUUsUUFBa0I7SUFDeEUsMElBQTBJO0lBQzFJLE1BQU0sa0JBQWtCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFdEUsNEJBQTRCO0lBQzVCLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLFFBQWtCLEVBQUUsS0FBdUI7SUFDekQsT0FBTztRQUNMLHFCQUFxQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7UUFDOUQsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFdBQVc7UUFDdEMsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLHNFQUFzRTtRQUN0RyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7S0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsUUFBa0IsRUFBRSxLQUF1QixFQUFFLFFBQWtCO0lBQ3JHLE1BQU0sSUFBQSw4QkFBYSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXhCLGlJQUFpSTtRQUNqSSxNQUFNLElBQUEsYUFBSyxFQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUMxRSxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7WUFDL0IsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2pCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7WUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztZQUNsRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsQ0FBQztZQUM5QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsS0FBSyxVQUFVLGtCQUFrQixDQUFDLFFBQWtCLEVBQUUsUUFBZ0IsRUFBRSxLQUFhO0lBQ25GLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsaUJBQVMsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUV0QyxNQUFNLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDNUQsSUFBQSxvQkFBWSxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFaEMsTUFBTSxJQUFBLGtCQUFVLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxnRkFBZ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHR5cGUgeyBMb2dpbkluZm9ybWF0aW9uIH0gZnJvbSAnLi9jb2RlYXJ0aWZhY3QnO1xuaW1wb3J0IHsgcGFyYWxsZWxTaGVsbCB9IGZyb20gJy4vcGFyYWxsZWwtc2hlbGwnO1xuaW1wb3J0IHR5cGUgeyBVc2FnZURpciB9IGZyb20gJy4vdXNhZ2UtZGlyJztcbmltcG9ydCB7IHVwZGF0ZUluaUtleSwgbG9hZExpbmVzLCB3cml0ZUxpbmVzIH0gZnJvbSAnLi4vZmlsZXMnO1xuaW1wb3J0IHsgc2hlbGwgfSBmcm9tICcuLi9zaGVsbCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBucG1Mb2dpbihsb2dpbjogTG9naW5JbmZvcm1hdGlvbiwgdXNhZ2VEaXI6IFVzYWdlRGlyKSB7XG4gIC8vIENyZWF0aW5nIGFuIH4vLm5wbXJjIHRoYXQgcmVmZXJlbmNlcyBhbiBlbnZ2YXIgaXMgd2hhdCB5b3UncmUgc3VwcG9zZWQgdG8gZG8uIChodHRwczovL2RvY3MubnBtanMuY29tL3ByaXZhdGUtbW9kdWxlcy9jaS1zZXJ2ZXItY29uZmlnKVxuICBhd2FpdCB3cml0ZU5wbUxvZ2luVG9rZW4odXNhZ2VEaXIsIGxvZ2luLm5wbUVuZHBvaW50LCAnJHtOUE1fVE9LRU59Jyk7XG5cbiAgLy8gQWRkIHZhcmlhYmxlcyB0byBlbnYgZmlsZVxuICBhd2FpdCB1c2FnZURpci5hZGRUb0VudihucG1FbnYodXNhZ2VEaXIsIGxvZ2luKSk7XG59XG5cbmZ1bmN0aW9uIG5wbUVudih1c2FnZURpcjogVXNhZ2VEaXIsIGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uKSB7XG4gIHJldHVybiB7XG4gICAgbnBtX2NvbmZpZ191c2VyY29uZmlnOiBwYXRoLmpvaW4odXNhZ2VEaXIuZGlyZWN0b3J5LCAnLm5wbXJjJyksXG4gICAgbnBtX2NvbmZpZ19yZWdpc3RyeTogbG9naW4ubnBtRW5kcG9pbnQsXG4gICAgbnBtX2NvbmZpZ19hbHdheXNfYXV0aDogJ3RydWUnLCAvLyBOZWNlc3NhcnkgZm9yIE5QTSA2LCBvdGhlcndpc2UgaXQgd2lsbCBzb21ldGltZXMgbm90IHBhc3MgdGhlIHRva2VuXG4gICAgTlBNX1RPS0VOOiBsb2dpbi5hdXRoVG9rZW4sXG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGxvYWROcG1QYWNrYWdlcyhwYWNrYWdlczogc3RyaW5nW10sIGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uLCB1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgYXdhaXQgcGFyYWxsZWxTaGVsbChwYWNrYWdlcywgYXN5bmMgKHBrZywgb3V0cHV0KSA9PiB7XG4gICAgY29uc29sZS5sb2coYOKPsyAke3BrZ31gKTtcblxuICAgIC8vIHBhdGgucmVzb2x2ZSgpIGlzIHJlcXVpcmVkIC0tIGlmIHRoZSBmaWxlbmFtZSBlbmRzIHVwIGxvb2tpbmcgbGlrZSBganMvYmxhLnRnemAgdGhlbiBOUE0gdGhpbmtzIGl0J3MgYSBzaG9ydCBmb3JtIEdpdEh1YiBuYW1lLlxuICAgIGF3YWl0IHNoZWxsKFsnbm9kZScsIHJlcXVpcmUucmVzb2x2ZSgnbnBtJyksICdwdWJsaXNoJywgcGF0aC5yZXNvbHZlKHBrZyldLCB7XG4gICAgICBtb2RFbnY6IG5wbUVudih1c2FnZURpciwgbG9naW4pLFxuICAgICAgc2hvdzogJ2Vycm9yJyxcbiAgICAgIG91dHB1dHM6IFtvdXRwdXRdLFxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coYOKchSAke3BrZ31gKTtcbiAgfSwgKHBrZywgb3V0cHV0KSA9PiB7XG4gICAgaWYgKG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCdjb2RlIEVQVUJMSVNIQ09ORkxJQ1QnKSkge1xuICAgICAgY29uc29sZS5sb2coYOKdjCAke3BrZ306IGFscmVhZHkgZXhpc3RzLiBTa2lwcGVkLmApO1xuICAgICAgcmV0dXJuICdza2lwJztcbiAgICB9XG4gICAgaWYgKG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCdjb2RlIEVQUklWQVRFJykpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDinYwgJHtwa2d9OiBpcyBwcml2YXRlLiBTa2lwcGVkLmApO1xuICAgICAgcmV0dXJuICdza2lwJztcbiAgICB9XG4gICAgcmV0dXJuICdmYWlsJztcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlTnBtTG9naW5Ub2tlbih1c2FnZURpcjogVXNhZ2VEaXIsIGVuZHBvaW50OiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpIHtcbiAgY29uc3QgcmNGaWxlID0gcGF0aC5qb2luKHVzYWdlRGlyLmRpcmVjdG9yeSwgJy5ucG1yYycpO1xuICBjb25zdCBsaW5lcyA9IGF3YWl0IGxvYWRMaW5lcyhyY0ZpbGUpO1xuXG4gIGNvbnN0IGtleSA9IGAke2VuZHBvaW50LnJlcGxhY2UoL15odHRwczovLCAnJyl9Ol9hdXRoVG9rZW5gO1xuICB1cGRhdGVJbmlLZXkobGluZXMsIGtleSwgdG9rZW4pO1xuXG4gIGF3YWl0IHdyaXRlTGluZXMocmNGaWxlLCBsaW5lcyk7XG4gIHJldHVybiByY0ZpbGU7XG59XG5cbi8vIEVudmlyb25tZW50IHZhcmlhYmxlLCAubnBtcmMgaW4gc2FtZSBkaXJlY3RvcnkgYXMgcGFja2FnZS5qc29uIG9yIGluIGhvbWUgZGlyXG4iXX0=
@@ -1,4 +1,4 @@
1
- import { LoginInformation } from './codeartifact';
2
- import { UsageDir } from './usage-dir';
1
+ import type { LoginInformation } from './codeartifact';
2
+ import type { UsageDir } from './usage-dir';
3
3
  export declare function nugetLogin(login: LoginInformation, usageDir: UsageDir): Promise<void>;
4
4
  export declare function uploadDotnetPackages(packages: string[], usageDir: UsageDir): Promise<void>;
@@ -66,4 +66,4 @@ async function writeNuGetConfigFile(filename, login) {
66
66
  </configuration>`);
67
67
  }
68
68
  // NuGet.Config in current directory
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJudWdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9BLGdDQUlDO0FBRUQsb0RBc0NDO0FBakRELHFEQUFpRDtBQUVqRCxvQ0FBcUM7QUFDckMsb0NBQWlDO0FBRTFCLEtBQUssVUFBVSxVQUFVLENBQUMsS0FBdUIsRUFBRSxRQUFrQjtJQUMxRSx3R0FBd0c7SUFDeEcsc0NBQXNDO0lBQ3RDLE1BQU0sb0JBQW9CLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRU0sS0FBSyxVQUFVLG9CQUFvQixDQUFDLFFBQWtCLEVBQUUsUUFBa0I7SUFDL0UsTUFBTSxRQUFRLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sSUFBQSw4QkFBYSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXhCLE1BQU0sSUFBQSxhQUFLLEVBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU07WUFDcEMsR0FBRztZQUNILFVBQVUsRUFBRSxjQUFjO1lBQzFCLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGtCQUFrQixDQUFDLEVBQUU7WUFDckIsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO1NBQ2xCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNkLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDLENBQUM7WUFDbEQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQywwQ0FBMEMsQ0FBQyxFQUFFLENBQUM7WUFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcscUVBQXFFLENBQUMsQ0FBQztZQUM1RixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsNkVBQTZFLENBQUMsRUFBRSxDQUFDO1lBQ25HLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLDBFQUEwRSxDQUFDLENBQUM7WUFDakcsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxRQUFnQixFQUFFLEtBQXVCO0lBQzNFLHFFQUFxRTtJQUNyRSwrREFBK0Q7SUFDL0QsTUFBTSxJQUFBLGlCQUFTLEVBQUMsUUFBUSxFQUFFOzs7O3FDQUlTLEtBQUssQ0FBQyxhQUFhOzs7cUNBR25CLEtBQUssQ0FBQyxhQUFhOzs7Ozs4Q0FLVixLQUFLLENBQUMsU0FBUzs7O2lCQUc1QyxDQUFDLENBQUM7QUFDbkIsQ0FBQztBQUVELG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IExvZ2luSW5mb3JtYXRpb24gfSBmcm9tICcuL2NvZGVhcnRpZmFjdCc7XG5pbXBvcnQgeyBwYXJhbGxlbFNoZWxsIH0gZnJvbSAnLi9wYXJhbGxlbC1zaGVsbCc7XG5pbXBvcnQgeyBVc2FnZURpciB9IGZyb20gJy4vdXNhZ2UtZGlyJztcbmltcG9ydCB7IHdyaXRlRmlsZSB9IGZyb20gJy4uL2ZpbGVzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbnVnZXRMb2dpbihsb2dpbjogTG9naW5JbmZvcm1hdGlvbiwgdXNhZ2VEaXI6IFVzYWdlRGlyKSB7XG4gIC8vIE51R2V0LkNvbmZpZyBNVVNUIGxpdmUgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG9yIGluIHRoZSBob21lIGRpcmVjdG9yeSwgYW5kIHRoZXJlIGlzIG5vIGVudmlyb25tZW50XG4gIC8vIHZhcmlhYmxlIHRvIGNvbmZpZ3VyZSBpdHMgbG9jYXRpb24uXG4gIGF3YWl0IHdyaXRlTnVHZXRDb25maWdGaWxlKHVzYWdlRGlyLmN3ZEZpbGUoJ051R2V0LkNvbmZpZycpLCBsb2dpbik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGxvYWREb3RuZXRQYWNrYWdlcyhwYWNrYWdlczogc3RyaW5nW10sIHVzYWdlRGlyOiBVc2FnZURpcikge1xuICBhd2FpdCB1c2FnZURpci5jb3B5Q3dkRmlsZUhlcmUoJ051R2V0LkNvbmZpZycpO1xuXG4gIGF3YWl0IHBhcmFsbGVsU2hlbGwocGFja2FnZXMsIGFzeW5jIChwa2csIG91dHB1dCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGDij7MgJHtwa2d9YCk7XG5cbiAgICBhd2FpdCBzaGVsbChbJ2RvdG5ldCcsICdudWdldCcsICdwdXNoJyxcbiAgICAgIHBrZyxcbiAgICAgICctLXNvdXJjZScsICdDb2RlQXJ0aWZhY3QnLFxuICAgICAgJy0tbm8tc3ltYm9scycsXG4gICAgICAnLS1mb3JjZS1lbmdsaXNoLW91dHB1dCcsXG4gICAgICAnLS1kaXNhYmxlLWJ1ZmZlcmluZycsXG4gICAgICAnLS10aW1lb3V0JywgJzYwMCcsXG4gICAgICAnLS1za2lwLWR1cGxpY2F0ZSddLCB7XG4gICAgICBvdXRwdXRzOiBbb3V0cHV0XSxcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKGDinIUgJHtwa2d9YCk7XG4gIH0sXG4gIChwa2csIG91dHB1dCkgPT4ge1xuICAgIGlmIChvdXRwdXQudG9TdHJpbmcoKS5pbmNsdWRlcygnQ29uZmxpY3QnKSkge1xuICAgICAgY29uc29sZS5sb2coYOKdjCAke3BrZ306IGFscmVhZHkgZXhpc3RzLiBTa2lwcGVkLmApO1xuICAgICAgcmV0dXJuICdza2lwJztcbiAgICB9XG4gICAgaWYgKG91dHB1dC5pbmNsdWRlcygnU3lzdGVtLlRocmVhZGluZy5BYmFuZG9uZWRNdXRleEV4Y2VwdGlvbicpKSB7XG4gICAgICBjb25zb2xlLmxvZyhg4pm777iPICR7cGtnfTogQWJhbmRvbmVkTXV0ZXhFeGNlcHRpb24uIFByb2JhYmx5IGEgc2lnbiBvZiB0aHJvdHRsaW5nLCByZXRyeWluZy5gKTtcbiAgICAgIHJldHVybiAncmV0cnknO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LmluY2x1ZGVzKCdUb28gTWFueSBSZXF1ZXN0cycpKSB7XG4gICAgICBjb25zb2xlLmxvZyhg4pm777iPICR7cGtnfTogVG9vIG1hbnkgcmVxdWVzdHMuIFJldHJ5aW5nLmApO1xuICAgICAgcmV0dXJuICdyZXRyeSc7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuaW5jbHVkZXMoJ1N5c3RlbS5JTy5JT0V4Y2VwdGlvbjogVGhlIHN5c3RlbSBjYW5ub3Qgb3BlbiB0aGUgZGV2aWNlIG9yIGZpbGUgc3BlY2lmaWVkLicpKSB7XG4gICAgICBjb25zb2xlLmxvZyhg4pm777iPICR7cGtnfTogU29tZSBlcnJvciB0aGF0IHdlJ3ZlIHNlZW4gYmVmb3JlIGFzIGEgcmVzdWx0IG9mIHRocm90dGxpbmcuIFJldHJ5aW5nLmApO1xuICAgICAgcmV0dXJuICdyZXRyeSc7XG4gICAgfVxuICAgIHJldHVybiAnZmFpbCc7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3cml0ZU51R2V0Q29uZmlnRmlsZShmaWxlbmFtZTogc3RyaW5nLCBsb2dpbjogTG9naW5JbmZvcm1hdGlvbikge1xuICAvLyBgZG90bmV0IG51Z2V0IHB1c2hgIGhhcyBhbiBgLS1hcGkta2V5YCBwYXJhbWV0ZXIsIGJ1dCBDb2RlQXJ0aWZhY3RcbiAgLy8gZG9lcyBub3Qgc3VwcG9ydCB0aGF0LiBXZSBtdXN0IGF1dGhlbnRpY2F0ZSB3aXRoIEJhc2ljIGF1dGguXG4gIGF3YWl0IHdyaXRlRmlsZShmaWxlbmFtZSwgYDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cInV0Zi04XCI/PlxuPGNvbmZpZ3VyYXRpb24+XG4gIDxwYWNrYWdlU291cmNlcz5cbiAgICA8YWRkIGtleT1cIm51Z2V0Lm9yZ1wiIHZhbHVlPVwiaHR0cHM6Ly9hcGkubnVnZXQub3JnL3YzL2luZGV4Lmpzb25cIiBwcm90b2NvbFZlcnNpb249XCIzXCIgLz5cbiAgICA8YWRkIGtleT1cIkNvZGVBcnRpZmFjdFwiIHZhbHVlPVwiJHtsb2dpbi5udWdldEVuZHBvaW50fXYzL2luZGV4Lmpzb25cIiAvPlxuICA8L3BhY2thZ2VTb3VyY2VzPlxuICA8YWN0aXZlUGFja2FnZVNvdXJjZT5cbiAgICA8YWRkIGtleT1cIkNvZGVBcnRpZmFjdFwiIHZhbHVlPVwiJHtsb2dpbi5udWdldEVuZHBvaW50fXYzL2luZGV4Lmpzb25cIiAvPlxuICA8L2FjdGl2ZVBhY2thZ2VTb3VyY2U+XG4gIDxwYWNrYWdlU291cmNlQ3JlZGVudGlhbHM+XG4gICAgPENvZGVBcnRpZmFjdD5cbiAgICAgICAgPGFkZCBrZXk9XCJVc2VybmFtZVwiIHZhbHVlPVwiYXdzXCIgLz5cbiAgICAgICAgPGFkZCBrZXk9XCJDbGVhclRleHRQYXNzd29yZFwiIHZhbHVlPVwiJHtsb2dpbi5hdXRoVG9rZW59XCIgLz5cbiAgICAgIDwvQ29kZUFydGlmYWN0PlxuICA8L3BhY2thZ2VTb3VyY2VDcmVkZW50aWFscz5cbjwvY29uZmlndXJhdGlvbj5gKTtcbn1cblxuLy8gTnVHZXQuQ29uZmlnIGluIGN1cnJlbnQgZGlyZWN0b3J5XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJudWdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9BLGdDQUlDO0FBRUQsb0RBc0NDO0FBakRELHFEQUFpRDtBQUVqRCxvQ0FBcUM7QUFDckMsb0NBQWlDO0FBRTFCLEtBQUssVUFBVSxVQUFVLENBQUMsS0FBdUIsRUFBRSxRQUFrQjtJQUMxRSx3R0FBd0c7SUFDeEcsc0NBQXNDO0lBQ3RDLE1BQU0sb0JBQW9CLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRU0sS0FBSyxVQUFVLG9CQUFvQixDQUFDLFFBQWtCLEVBQUUsUUFBa0I7SUFDL0UsTUFBTSxRQUFRLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sSUFBQSw4QkFBYSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXhCLE1BQU0sSUFBQSxhQUFLLEVBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU07WUFDcEMsR0FBRztZQUNILFVBQVUsRUFBRSxjQUFjO1lBQzFCLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGtCQUFrQixDQUFDLEVBQUU7WUFDckIsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO1NBQ2xCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNkLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDLENBQUM7WUFDbEQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQywwQ0FBMEMsQ0FBQyxFQUFFLENBQUM7WUFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcscUVBQXFFLENBQUMsQ0FBQztZQUM1RixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsNkVBQTZFLENBQUMsRUFBRSxDQUFDO1lBQ25HLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLDBFQUEwRSxDQUFDLENBQUM7WUFDakcsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxRQUFnQixFQUFFLEtBQXVCO0lBQzNFLHFFQUFxRTtJQUNyRSwrREFBK0Q7SUFDL0QsTUFBTSxJQUFBLGlCQUFTLEVBQUMsUUFBUSxFQUFFOzs7O3FDQUlTLEtBQUssQ0FBQyxhQUFhOzs7cUNBR25CLEtBQUssQ0FBQyxhQUFhOzs7Ozs4Q0FLVixLQUFLLENBQUMsU0FBUzs7O2lCQUc1QyxDQUFDLENBQUM7QUFDbkIsQ0FBQztBQUVELG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB0eXBlIHsgTG9naW5JbmZvcm1hdGlvbiB9IGZyb20gJy4vY29kZWFydGlmYWN0JztcbmltcG9ydCB7IHBhcmFsbGVsU2hlbGwgfSBmcm9tICcuL3BhcmFsbGVsLXNoZWxsJztcbmltcG9ydCB0eXBlIHsgVXNhZ2VEaXIgfSBmcm9tICcuL3VzYWdlLWRpcic7XG5pbXBvcnQgeyB3cml0ZUZpbGUgfSBmcm9tICcuLi9maWxlcyc7XG5pbXBvcnQgeyBzaGVsbCB9IGZyb20gJy4uL3NoZWxsJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG51Z2V0TG9naW4obG9naW46IExvZ2luSW5mb3JtYXRpb24sIHVzYWdlRGlyOiBVc2FnZURpcikge1xuICAvLyBOdUdldC5Db25maWcgTVVTVCBsaXZlIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBvciBpbiB0aGUgaG9tZSBkaXJlY3RvcnksIGFuZCB0aGVyZSBpcyBubyBlbnZpcm9ubWVudFxuICAvLyB2YXJpYWJsZSB0byBjb25maWd1cmUgaXRzIGxvY2F0aW9uLlxuICBhd2FpdCB3cml0ZU51R2V0Q29uZmlnRmlsZSh1c2FnZURpci5jd2RGaWxlKCdOdUdldC5Db25maWcnKSwgbG9naW4pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBsb2FkRG90bmV0UGFja2FnZXMocGFja2FnZXM6IHN0cmluZ1tdLCB1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgYXdhaXQgdXNhZ2VEaXIuY29weUN3ZEZpbGVIZXJlKCdOdUdldC5Db25maWcnKTtcblxuICBhd2FpdCBwYXJhbGxlbFNoZWxsKHBhY2thZ2VzLCBhc3luYyAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBjb25zb2xlLmxvZyhg4o+zICR7cGtnfWApO1xuXG4gICAgYXdhaXQgc2hlbGwoWydkb3RuZXQnLCAnbnVnZXQnLCAncHVzaCcsXG4gICAgICBwa2csXG4gICAgICAnLS1zb3VyY2UnLCAnQ29kZUFydGlmYWN0JyxcbiAgICAgICctLW5vLXN5bWJvbHMnLFxuICAgICAgJy0tZm9yY2UtZW5nbGlzaC1vdXRwdXQnLFxuICAgICAgJy0tZGlzYWJsZS1idWZmZXJpbmcnLFxuICAgICAgJy0tdGltZW91dCcsICc2MDAnLFxuICAgICAgJy0tc2tpcC1kdXBsaWNhdGUnXSwge1xuICAgICAgb3V0cHV0czogW291dHB1dF0sXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhg4pyFICR7cGtnfWApO1xuICB9LFxuICAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBpZiAob3V0cHV0LnRvU3RyaW5nKCkuaW5jbHVkZXMoJ0NvbmZsaWN0JykpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDinYwgJHtwa2d9OiBhbHJlYWR5IGV4aXN0cy4gU2tpcHBlZC5gKTtcbiAgICAgIHJldHVybiAnc2tpcCc7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuaW5jbHVkZXMoJ1N5c3RlbS5UaHJlYWRpbmcuQWJhbmRvbmVkTXV0ZXhFeGNlcHRpb24nKSkge1xuICAgICAgY29uc29sZS5sb2coYOKZu++4jyAke3BrZ306IEFiYW5kb25lZE11dGV4RXhjZXB0aW9uLiBQcm9iYWJseSBhIHNpZ24gb2YgdGhyb3R0bGluZywgcmV0cnlpbmcuYCk7XG4gICAgICByZXR1cm4gJ3JldHJ5JztcbiAgICB9XG4gICAgaWYgKG91dHB1dC5pbmNsdWRlcygnVG9vIE1hbnkgUmVxdWVzdHMnKSkge1xuICAgICAgY29uc29sZS5sb2coYOKZu++4jyAke3BrZ306IFRvbyBtYW55IHJlcXVlc3RzLiBSZXRyeWluZy5gKTtcbiAgICAgIHJldHVybiAncmV0cnknO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LmluY2x1ZGVzKCdTeXN0ZW0uSU8uSU9FeGNlcHRpb246IFRoZSBzeXN0ZW0gY2Fubm90IG9wZW4gdGhlIGRldmljZSBvciBmaWxlIHNwZWNpZmllZC4nKSkge1xuICAgICAgY29uc29sZS5sb2coYOKZu++4jyAke3BrZ306IFNvbWUgZXJyb3IgdGhhdCB3ZSd2ZSBzZWVuIGJlZm9yZSBhcyBhIHJlc3VsdCBvZiB0aHJvdHRsaW5nLiBSZXRyeWluZy5gKTtcbiAgICAgIHJldHVybiAncmV0cnknO1xuICAgIH1cbiAgICByZXR1cm4gJ2ZhaWwnO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd3JpdGVOdUdldENvbmZpZ0ZpbGUoZmlsZW5hbWU6IHN0cmluZywgbG9naW46IExvZ2luSW5mb3JtYXRpb24pIHtcbiAgLy8gYGRvdG5ldCBudWdldCBwdXNoYCBoYXMgYW4gYC0tYXBpLWtleWAgcGFyYW1ldGVyLCBidXQgQ29kZUFydGlmYWN0XG4gIC8vIGRvZXMgbm90IHN1cHBvcnQgdGhhdC4gV2UgbXVzdCBhdXRoZW50aWNhdGUgd2l0aCBCYXNpYyBhdXRoLlxuICBhd2FpdCB3cml0ZUZpbGUoZmlsZW5hbWUsIGA8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbjxjb25maWd1cmF0aW9uPlxuICA8cGFja2FnZVNvdXJjZXM+XG4gICAgPGFkZCBrZXk9XCJudWdldC5vcmdcIiB2YWx1ZT1cImh0dHBzOi8vYXBpLm51Z2V0Lm9yZy92My9pbmRleC5qc29uXCIgcHJvdG9jb2xWZXJzaW9uPVwiM1wiIC8+XG4gICAgPGFkZCBrZXk9XCJDb2RlQXJ0aWZhY3RcIiB2YWx1ZT1cIiR7bG9naW4ubnVnZXRFbmRwb2ludH12My9pbmRleC5qc29uXCIgLz5cbiAgPC9wYWNrYWdlU291cmNlcz5cbiAgPGFjdGl2ZVBhY2thZ2VTb3VyY2U+XG4gICAgPGFkZCBrZXk9XCJDb2RlQXJ0aWZhY3RcIiB2YWx1ZT1cIiR7bG9naW4ubnVnZXRFbmRwb2ludH12My9pbmRleC5qc29uXCIgLz5cbiAgPC9hY3RpdmVQYWNrYWdlU291cmNlPlxuICA8cGFja2FnZVNvdXJjZUNyZWRlbnRpYWxzPlxuICAgIDxDb2RlQXJ0aWZhY3Q+XG4gICAgICAgIDxhZGQga2V5PVwiVXNlcm5hbWVcIiB2YWx1ZT1cImF3c1wiIC8+XG4gICAgICAgIDxhZGQga2V5PVwiQ2xlYXJUZXh0UGFzc3dvcmRcIiB2YWx1ZT1cIiR7bG9naW4uYXV0aFRva2VufVwiIC8+XG4gICAgICA8L0NvZGVBcnRpZmFjdD5cbiAgPC9wYWNrYWdlU291cmNlQ3JlZGVudGlhbHM+XG48L2NvbmZpZ3VyYXRpb24+YCk7XG59XG5cbi8vIE51R2V0LkNvbmZpZyBpbiBjdXJyZW50IGRpcmVjdG9yeVxuIl19
@@ -20,7 +20,7 @@ async function parallelShell(inputs, block, swallowError) {
20
20
  return;
21
21
  }
22
22
  catch (e) {
23
- switch (swallowError === null || swallowError === void 0 ? void 0 : swallowError(input, output.toString())) {
23
+ switch (swallowError?.(input, output.toString())) {
24
24
  case 'skip':
25
25
  return;
26
26
  case 'retry':
@@ -42,4 +42,4 @@ async function parallelShell(inputs, block, swallowError) {
42
42
  }));
43
43
  await q.onEmpty();
44
44
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwtc2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwYXJhbGxlbC1zaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLHNDQXlDQztBQWxERCxxQ0FBNkI7QUFDN0IsZ0NBQStCO0FBQy9CLHdDQUEwQztBQUkxQzs7R0FFRztBQUNJLEtBQUssVUFBVSxhQUFhLENBQ2pDLE1BQVcsRUFDWCxLQUE2RCxFQUM3RCxZQUFzRDtJQUV0RCx5RkFBeUY7SUFDekYsTUFBTSxDQUFDLEdBQUcsSUFBSSxpQkFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0UsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM1QyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFZLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMzQixPQUFPO1lBQ1QsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsUUFBUSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUcsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQ2pELEtBQUssTUFBTTt3QkFDVCxPQUFPO29CQUVULEtBQUssT0FBTzt3QkFDVixJQUFJLEVBQUUsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDOzRCQUNuQixNQUFNLElBQUEsV0FBSyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7NEJBQ2pELE9BQU8sSUFBSSxDQUFDLENBQUM7NEJBQ2IsU0FBUzt3QkFDWCxDQUFDO3dCQUNELE1BQU07b0JBRVIsS0FBSyxNQUFNLENBQUM7b0JBQ1osS0FBSyxTQUFTO3dCQUNaLE1BQU07Z0JBQ1YsQ0FBQztnQkFFRCxzQ0FBc0M7Z0JBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRUosTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQUXVldWUgZnJvbSAncC1xdWV1ZSc7XG5pbXBvcnQgeyBzbGVlcCB9IGZyb20gJy4uL2F3cyc7XG5pbXBvcnQgeyBNZW1vcnlTdHJlYW0gfSBmcm9tICcuLi9jb3JraW5nJztcblxuZXhwb3J0IHR5cGUgRXJyb3JSZXNwb25zZSA9ICdmYWlsJyB8ICdza2lwJyB8ICdyZXRyeSc7XG5cbi8qKlxuICogUnVuIGEgZnVuY3Rpb24gaW4gcGFyYWxsZWwgd2l0aCBjYWNoZWQgb3V0cHV0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXJhbGxlbFNoZWxsPEE+KFxuICBpbnB1dHM6IEFbXSxcbiAgYmxvY2s6ICh4OiBBLCBvdXRwdXQ6IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSkgPT4gUHJvbWlzZTx2b2lkPixcbiAgc3dhbGxvd0Vycm9yPzogKHg6IEEsIG91dHB1dDogc3RyaW5nKSA9PiBFcnJvclJlc3BvbnNlLFxuKSB7XG4gIC8vIExpbWl0IHRvIDEwIGZvciBub3csIHRvbyBtYW55IGluc3RhbmNlcyBvZiBNYXZlbiBleGhhdXN0IHRoZSBDb2RlQnVpbGQgaW5zdGFuY2UgbWVtb3J5XG4gIGNvbnN0IHEgPSBuZXcgUFF1ZXVlKHsgY29uY3VycmVuY3k6IE51bWJlcihwcm9jZXNzLmVudi5DT05DVVJSRU5DWSkgfHwgMTAgfSk7XG4gIGF3YWl0IHEuYWRkQWxsKGlucHV0cy5tYXAoaW5wdXQgPT4gYXN5bmMgKCkgPT4ge1xuICAgIGxldCBhdHRlbXB0cyA9IDEwO1xuICAgIGxldCBzbGVlcE1zID0gNTAwO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCBvdXRwdXQgPSBuZXcgTWVtb3J5U3RyZWFtKCk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBibG9jayhpbnB1dCwgb3V0cHV0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzd2l0Y2ggKHN3YWxsb3dFcnJvcj8uKGlucHV0LCBvdXRwdXQudG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICBjYXNlICdza2lwJzpcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgIGNhc2UgJ3JldHJ5JzpcbiAgICAgICAgICAgIGlmICgtLWF0dGVtcHRzID4gMCkge1xuICAgICAgICAgICAgICBhd2FpdCBzbGVlcChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBzbGVlcE1zKSk7XG4gICAgICAgICAgICAgIHNsZWVwTXMgKj0gMjtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ2ZhaWwnOlxuICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmVycm9yKG91dHB1dC50b1N0cmluZygpKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pKTtcblxuICBhd2FpdCBxLm9uRW1wdHkoKTtcbn1cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwtc2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwYXJhbGxlbC1zaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLHNDQXlDQztBQWxERCxxQ0FBNkI7QUFDN0IsZ0NBQStCO0FBQy9CLHdDQUEwQztBQUkxQzs7R0FFRztBQUNJLEtBQUssVUFBVSxhQUFhLENBQ2pDLE1BQVcsRUFDWCxLQUE2RCxFQUM3RCxZQUFzRDtJQUV0RCx5RkFBeUY7SUFDekYsTUFBTSxDQUFDLEdBQUcsSUFBSSxpQkFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0UsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM1QyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFZLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMzQixPQUFPO1lBQ1QsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsUUFBUSxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDakQsS0FBSyxNQUFNO3dCQUNULE9BQU87b0JBRVQsS0FBSyxPQUFPO3dCQUNWLElBQUksRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7NEJBQ25CLE1BQU0sSUFBQSxXQUFLLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQzs0QkFDakQsT0FBTyxJQUFJLENBQUMsQ0FBQzs0QkFDYixTQUFTO3dCQUNYLENBQUM7d0JBQ0QsTUFBTTtvQkFFUixLQUFLLE1BQU0sQ0FBQztvQkFDWixLQUFLLFNBQVM7d0JBQ1osTUFBTTtnQkFDVixDQUFDO2dCQUVELHNDQUFzQztnQkFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDakMsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFSixNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBRdWV1ZSBmcm9tICdwLXF1ZXVlJztcbmltcG9ydCB7IHNsZWVwIH0gZnJvbSAnLi4vYXdzJztcbmltcG9ydCB7IE1lbW9yeVN0cmVhbSB9IGZyb20gJy4uL2NvcmtpbmcnO1xuXG5leHBvcnQgdHlwZSBFcnJvclJlc3BvbnNlID0gJ2ZhaWwnIHwgJ3NraXAnIHwgJ3JldHJ5JztcblxuLyoqXG4gKiBSdW4gYSBmdW5jdGlvbiBpbiBwYXJhbGxlbCB3aXRoIGNhY2hlZCBvdXRwdXRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcmFsbGVsU2hlbGw8QT4oXG4gIGlucHV0czogQVtdLFxuICBibG9jazogKHg6IEEsIG91dHB1dDogTm9kZUpTLldyaXRhYmxlU3RyZWFtKSA9PiBQcm9taXNlPHZvaWQ+LFxuICBzd2FsbG93RXJyb3I/OiAoeDogQSwgb3V0cHV0OiBzdHJpbmcpID0+IEVycm9yUmVzcG9uc2UsXG4pIHtcbiAgLy8gTGltaXQgdG8gMTAgZm9yIG5vdywgdG9vIG1hbnkgaW5zdGFuY2VzIG9mIE1hdmVuIGV4aGF1c3QgdGhlIENvZGVCdWlsZCBpbnN0YW5jZSBtZW1vcnlcbiAgY29uc3QgcSA9IG5ldyBQUXVldWUoeyBjb25jdXJyZW5jeTogTnVtYmVyKHByb2Nlc3MuZW52LkNPTkNVUlJFTkNZKSB8fCAxMCB9KTtcbiAgYXdhaXQgcS5hZGRBbGwoaW5wdXRzLm1hcChpbnB1dCA9PiBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGF0dGVtcHRzID0gMTA7XG4gICAgbGV0IHNsZWVwTXMgPSA1MDA7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IG5ldyBNZW1vcnlTdHJlYW0oKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGJsb2NrKGlucHV0LCBvdXRwdXQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHN3aXRjaCAoc3dhbGxvd0Vycm9yPy4oaW5wdXQsIG91dHB1dC50b1N0cmluZygpKSkge1xuICAgICAgICAgIGNhc2UgJ3NraXAnOlxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgY2FzZSAncmV0cnknOlxuICAgICAgICAgICAgaWYgKC0tYXR0ZW1wdHMgPiAwKSB7XG4gICAgICAgICAgICAgIGF3YWl0IHNsZWVwKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHNsZWVwTXMpKTtcbiAgICAgICAgICAgICAgc2xlZXBNcyAqPSAyO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAnZmFpbCc6XG4gICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUuZXJyb3Iob3V0cHV0LnRvU3RyaW5nKCkpO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfSkpO1xuXG4gIGF3YWl0IHEub25FbXB0eSgpO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { LoginInformation } from './codeartifact';
2
- import { UsageDir } from './usage-dir';
1
+ import type { LoginInformation } from './codeartifact';
2
+ import type { UsageDir } from './usage-dir';
3
3
  export declare function pypiLogin(login: LoginInformation, usageDir: UsageDir): Promise<void>;
4
4
  export declare function uploadPythonPackages(packages: string[], login: LoginInformation): Promise<void>;
@@ -45,4 +45,4 @@ async function uploadPythonPackages(packages, login) {
45
45
  return 'fail';
46
46
  });
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB5cGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSw4QkFTQztBQUVELG9EQThCQztBQWpERCwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBRTdCLHFEQUFpRDtBQUVqRCxvQ0FBcUM7QUFDckMsb0NBQWlDO0FBRTFCLEtBQUssVUFBVSxTQUFTLENBQUMsS0FBdUIsRUFBRSxRQUFrQjtJQUN6RSxnREFBZ0Q7SUFDaEQsTUFBTSxJQUFBLGlCQUFTLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQ3pELFVBQVU7UUFDViwyQkFBMkIsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLFNBQVM7S0FDckcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNkLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN0QixlQUFlLEVBQUUsR0FBRyxRQUFRLENBQUMsU0FBUyxXQUFXO0tBQ2xELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFTSxLQUFLLFVBQVUsb0JBQW9CLENBQUMsUUFBa0IsRUFBRSxLQUF1QjtJQUNwRixNQUFNLElBQUEsYUFBSyxFQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTVELHNGQUFzRjtJQUN0Rix5RkFBeUY7SUFDekYsTUFBTSxJQUFBLDhCQUFhLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFeEIsTUFBTSxJQUFBLGFBQUssRUFBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ2pELE1BQU0sRUFBRTtnQkFDTixjQUFjLEVBQUUsS0FBSztnQkFDckIsY0FBYyxFQUFFLEtBQUssQ0FBQyxTQUFTO2dCQUMvQixvQkFBb0IsRUFBRSxLQUFLLENBQUMsWUFBWTthQUN6QztZQUNELElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO1NBQ2xCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNqQixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsa0RBQWtELENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDakksT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztZQUNsRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQzNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgTG9naW5JbmZvcm1hdGlvbiB9IGZyb20gJy4vY29kZWFydGlmYWN0JztcbmltcG9ydCB7IHBhcmFsbGVsU2hlbGwgfSBmcm9tICcuL3BhcmFsbGVsLXNoZWxsJztcbmltcG9ydCB7IFVzYWdlRGlyIH0gZnJvbSAnLi91c2FnZS1kaXInO1xuaW1wb3J0IHsgd3JpdGVGaWxlIH0gZnJvbSAnLi4vZmlsZXMnO1xuaW1wb3J0IHsgc2hlbGwgfSBmcm9tICcuLi9zaGVsbCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBweXBpTG9naW4obG9naW46IExvZ2luSW5mb3JtYXRpb24sIHVzYWdlRGlyOiBVc2FnZURpcikge1xuICAvLyBXcml0ZSBwaXAgY29uZmlnIGZpbGUgYW5kIHNldCBlbnZpcm9ubWVudCB2YXJcbiAgYXdhaXQgd3JpdGVGaWxlKHBhdGguam9pbih1c2FnZURpci5kaXJlY3RvcnksICdwaXAuY29uZicpLCBbXG4gICAgJ1tnbG9iYWxdJyxcbiAgICBgaW5kZXgtdXJsID0gaHR0cHM6Ly9hd3M6JHtsb2dpbi5hdXRoVG9rZW59QCR7bG9naW4ucHlwaUVuZHBvaW50LnJlcGxhY2UoL15odHRwczpcXC9cXC8vLCAnJyl9c2ltcGxlL2AsXG4gIF0uam9pbignXFxuJykpO1xuICBhd2FpdCB1c2FnZURpci5hZGRUb0Vudih7XG4gICAgUElQX0NPTkZJR19GSUxFOiBgJHt1c2FnZURpci5kaXJlY3Rvcnl9L3BpcC5jb25mYCxcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGxvYWRQeXRob25QYWNrYWdlcyhwYWNrYWdlczogc3RyaW5nW10sIGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uKSB7XG4gIGF3YWl0IHNoZWxsKFsncGlwJywgJ2luc3RhbGwnLCAndHdpbmUnXSwgeyBzaG93OiAnZXJyb3InIH0pO1xuXG4gIC8vIEV2ZW4gdGhvdWdoIHR3aW5lIHN1cHBvcnRzIHVwbG9hZGluZyBhbGwgcGFja2FnZXMgaW4gb25lIGdvLCB3ZSBoYXZlIHRvIHVwbG9hZCB0aGVtXG4gIC8vIGluZGl2aWR1YWxseSBzaW5jZSBDb2RlQXJ0aWZhY3QgZG9lcyBub3Qgc3VwcG9ydCBUd2luZSdzIGAtLXNraXAtZXhpc3RpbmdgLiBGdW4gYmVhbnMuXG4gIGF3YWl0IHBhcmFsbGVsU2hlbGwocGFja2FnZXMsIGFzeW5jIChwa2csIG91dHB1dCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGDij7MgJHtwa2d9YCk7XG5cbiAgICBhd2FpdCBzaGVsbChbJ3R3aW5lJywgJ3VwbG9hZCcsICctLXZlcmJvc2UnLCBwa2ddLCB7XG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgVFdJTkVfVVNFUk5BTUU6ICdhd3MnLFxuICAgICAgICBUV0lORV9QQVNTV09SRDogbG9naW4uYXV0aFRva2VuLFxuICAgICAgICBUV0lORV9SRVBPU0lUT1JZX1VSTDogbG9naW4ucHlwaUVuZHBvaW50LFxuICAgICAgfSxcbiAgICAgIHNob3c6ICdlcnJvcicsXG4gICAgICBvdXRwdXRzOiBbb3V0cHV0XSxcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKGDinIUgJHtwa2d9YCk7XG4gIH0sIChwa2csIG91dHB1dCkgPT4ge1xuICAgIGlmIChvdXRwdXQudG9TdHJpbmcoKS5pbmNsdWRlcygnVGhpcyBwYWNrYWdlIGlzIGNvbmZpZ3VyZWQgdG8gYmxvY2sgbmV3IHZlcnNpb25zJykgfHwgb3V0cHV0LnRvU3RyaW5nKCkuaW5jbHVkZXMoJzQwOSBDb25mbGljdCcpKSB7XG4gICAgICBjb25zb2xlLmxvZyhg4p2MICR7cGtnfTogYWxyZWFkeSBleGlzdHMuIFNraXBwZWQuYCk7XG4gICAgICByZXR1cm4gJ3NraXAnO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LmluY2x1ZGVzKCc0MjkgVG9vIE1hbnkgUmVxdWVzdHMgJykpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDimbvvuI8gJHtwa2d9OiA0MjkgVG9vIE1hbnkgUmVxdWVzdHMuIFJldHJ5aW5nLmApO1xuICAgICAgcmV0dXJuICdyZXRyeSc7XG4gICAgfVxuICAgIHJldHVybiAnZmFpbCc7XG4gIH0pO1xufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB5cGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSw4QkFTQztBQUVELG9EQThCQztBQWpERCwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBRTdCLHFEQUFpRDtBQUVqRCxvQ0FBcUM7QUFDckMsb0NBQWlDO0FBRTFCLEtBQUssVUFBVSxTQUFTLENBQUMsS0FBdUIsRUFBRSxRQUFrQjtJQUN6RSxnREFBZ0Q7SUFDaEQsTUFBTSxJQUFBLGlCQUFTLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQ3pELFVBQVU7UUFDViwyQkFBMkIsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLFNBQVM7S0FDckcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNkLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN0QixlQUFlLEVBQUUsR0FBRyxRQUFRLENBQUMsU0FBUyxXQUFXO0tBQ2xELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFTSxLQUFLLFVBQVUsb0JBQW9CLENBQUMsUUFBa0IsRUFBRSxLQUF1QjtJQUNwRixNQUFNLElBQUEsYUFBSyxFQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTVELHNGQUFzRjtJQUN0Rix5RkFBeUY7SUFDekYsTUFBTSxJQUFBLDhCQUFhLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFeEIsTUFBTSxJQUFBLGFBQUssRUFBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ2pELE1BQU0sRUFBRTtnQkFDTixjQUFjLEVBQUUsS0FBSztnQkFDckIsY0FBYyxFQUFFLEtBQUssQ0FBQyxTQUFTO2dCQUMvQixvQkFBb0IsRUFBRSxLQUFLLENBQUMsWUFBWTthQUN6QztZQUNELElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO1NBQ2xCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNqQixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsa0RBQWtELENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDakksT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztZQUNsRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQzNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHR5cGUgeyBMb2dpbkluZm9ybWF0aW9uIH0gZnJvbSAnLi9jb2RlYXJ0aWZhY3QnO1xuaW1wb3J0IHsgcGFyYWxsZWxTaGVsbCB9IGZyb20gJy4vcGFyYWxsZWwtc2hlbGwnO1xuaW1wb3J0IHR5cGUgeyBVc2FnZURpciB9IGZyb20gJy4vdXNhZ2UtZGlyJztcbmltcG9ydCB7IHdyaXRlRmlsZSB9IGZyb20gJy4uL2ZpbGVzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHlwaUxvZ2luKGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uLCB1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgLy8gV3JpdGUgcGlwIGNvbmZpZyBmaWxlIGFuZCBzZXQgZW52aXJvbm1lbnQgdmFyXG4gIGF3YWl0IHdyaXRlRmlsZShwYXRoLmpvaW4odXNhZ2VEaXIuZGlyZWN0b3J5LCAncGlwLmNvbmYnKSwgW1xuICAgICdbZ2xvYmFsXScsXG4gICAgYGluZGV4LXVybCA9IGh0dHBzOi8vYXdzOiR7bG9naW4uYXV0aFRva2VufUAke2xvZ2luLnB5cGlFbmRwb2ludC5yZXBsYWNlKC9eaHR0cHM6XFwvXFwvLywgJycpfXNpbXBsZS9gLFxuICBdLmpvaW4oJ1xcbicpKTtcbiAgYXdhaXQgdXNhZ2VEaXIuYWRkVG9FbnYoe1xuICAgIFBJUF9DT05GSUdfRklMRTogYCR7dXNhZ2VEaXIuZGlyZWN0b3J5fS9waXAuY29uZmAsXG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBsb2FkUHl0aG9uUGFja2FnZXMocGFja2FnZXM6IHN0cmluZ1tdLCBsb2dpbjogTG9naW5JbmZvcm1hdGlvbikge1xuICBhd2FpdCBzaGVsbChbJ3BpcCcsICdpbnN0YWxsJywgJ3R3aW5lJ10sIHsgc2hvdzogJ2Vycm9yJyB9KTtcblxuICAvLyBFdmVuIHRob3VnaCB0d2luZSBzdXBwb3J0cyB1cGxvYWRpbmcgYWxsIHBhY2thZ2VzIGluIG9uZSBnbywgd2UgaGF2ZSB0byB1cGxvYWQgdGhlbVxuICAvLyBpbmRpdmlkdWFsbHkgc2luY2UgQ29kZUFydGlmYWN0IGRvZXMgbm90IHN1cHBvcnQgVHdpbmUncyBgLS1za2lwLWV4aXN0aW5nYC4gRnVuIGJlYW5zLlxuICBhd2FpdCBwYXJhbGxlbFNoZWxsKHBhY2thZ2VzLCBhc3luYyAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBjb25zb2xlLmxvZyhg4o+zICR7cGtnfWApO1xuXG4gICAgYXdhaXQgc2hlbGwoWyd0d2luZScsICd1cGxvYWQnLCAnLS12ZXJib3NlJywgcGtnXSwge1xuICAgICAgbW9kRW52OiB7XG4gICAgICAgIFRXSU5FX1VTRVJOQU1FOiAnYXdzJyxcbiAgICAgICAgVFdJTkVfUEFTU1dPUkQ6IGxvZ2luLmF1dGhUb2tlbixcbiAgICAgICAgVFdJTkVfUkVQT1NJVE9SWV9VUkw6IGxvZ2luLnB5cGlFbmRwb2ludCxcbiAgICAgIH0sXG4gICAgICBzaG93OiAnZXJyb3InLFxuICAgICAgb3V0cHV0czogW291dHB1dF0sXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhg4pyFICR7cGtnfWApO1xuICB9LCAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBpZiAob3V0cHV0LnRvU3RyaW5nKCkuaW5jbHVkZXMoJ1RoaXMgcGFja2FnZSBpcyBjb25maWd1cmVkIHRvIGJsb2NrIG5ldyB2ZXJzaW9ucycpIHx8IG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCc0MDkgQ29uZmxpY3QnKSkge1xuICAgICAgY29uc29sZS5sb2coYOKdjCAke3BrZ306IGFscmVhZHkgZXhpc3RzLiBTa2lwcGVkLmApO1xuICAgICAgcmV0dXJuICdza2lwJztcbiAgICB9XG4gICAgaWYgKG91dHB1dC5pbmNsdWRlcygnNDI5IFRvbyBNYW55IFJlcXVlc3RzICcpKSB7XG4gICAgICBjb25zb2xlLmxvZyhg4pm777iPICR7cGtnfTogNDI5IFRvbyBNYW55IFJlcXVlc3RzLiBSZXRyeWluZy5gKTtcbiAgICAgIHJldHVybiAncmV0cnknO1xuICAgIH1cbiAgICByZXR1cm4gJ2ZhaWwnO1xuICB9KTtcbn1cbiJdfQ==
package/lib/with-aws.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AwsClients } from './aws';
2
- import { TestContext } from './integ-test';
2
+ import type { TestContext } from './integ-test';
3
3
  import { ResourcePool } from './resource-pool';
4
- import { DisableBootstrapContext } from './with-cdk-app';
4
+ import type { DisableBootstrapContext } from './with-cdk-app';
5
5
  export declare function atmosphereEnabled(): boolean;
6
6
  export declare function atmosphereEndpoint(): string;
7
7
  export declare function atmospherePool(): string;