@jjrawlins/cdk-ami-builder 0.0.173 → 0.0.175

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 (169) hide show
  1. package/.jsii +11 -11
  2. package/cdkamibuilder/jsii/jsii.go +2 -2
  3. package/cdkamibuilder/version +1 -1
  4. package/lib/ImagePipeline/ImagePipeline.js +1 -1
  5. package/lib/Lambdas/CheckStateMachineStatus/CheckStateMachineStatus-function.js +1 -1
  6. package/lib/Lambdas/StartStateMachine/StartStateMachine-function.js +1 -1
  7. package/node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js +2 -2
  8. package/node_modules/@aws/lambda-invoke-store/dist-es/invoke-store.js +2 -2
  9. package/node_modules/@aws/lambda-invoke-store/dist-types/invoke-store.d.ts +1 -1
  10. package/node_modules/@aws/lambda-invoke-store/package.json +1 -1
  11. package/node_modules/@aws-sdk/client-ec2/README.md +26 -46
  12. package/node_modules/@aws-sdk/client-ec2/package.json +36 -36
  13. package/node_modules/@aws-sdk/client-ecs/README.md +26 -46
  14. package/node_modules/@aws-sdk/client-ecs/package.json +34 -34
  15. package/node_modules/@aws-sdk/client-kms/README.md +26 -46
  16. package/node_modules/@aws-sdk/client-kms/package.json +33 -33
  17. package/node_modules/@aws-sdk/client-s3/README.md +26 -46
  18. package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +5 -0
  19. package/node_modules/@aws-sdk/client-s3/dist-cjs/schemas/schemas_0.js +6 -4
  20. package/node_modules/@aws-sdk/client-s3/dist-es/models/enums.js +4 -0
  21. package/node_modules/@aws-sdk/client-s3/dist-es/schemas/schemas_0.js +6 -4
  22. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CopyObjectCommand.d.ts +5 -4
  23. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketCommand.d.ts +9 -0
  24. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketTaggingCommand.d.ts +0 -1
  25. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketTaggingCommand.d.ts +0 -1
  26. package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadBucketCommand.d.ts +5 -4
  27. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCopyCommand.d.ts +5 -4
  28. package/node_modules/@aws-sdk/client-s3/dist-types/models/enums.d.ts +12 -0
  29. package/node_modules/@aws-sdk/client-s3/dist-types/models/models_0.d.ts +24 -2
  30. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/enums.d.ts +6 -0
  31. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_0.d.ts +2 -0
  32. package/node_modules/@aws-sdk/client-s3/package.json +50 -50
  33. package/node_modules/@aws-sdk/client-secrets-manager/README.md +26 -46
  34. package/node_modules/@aws-sdk/client-secrets-manager/package.json +34 -34
  35. package/node_modules/@aws-sdk/client-sfn/README.md +26 -46
  36. package/node_modules/@aws-sdk/client-sfn/package.json +33 -33
  37. package/node_modules/@aws-sdk/client-sns/README.md +26 -46
  38. package/node_modules/@aws-sdk/client-sns/package.json +33 -33
  39. package/node_modules/@aws-sdk/client-sqs/README.md +65 -46
  40. package/node_modules/@aws-sdk/client-sqs/package.json +36 -36
  41. package/node_modules/@aws-sdk/client-ssm/README.md +26 -46
  42. package/node_modules/@aws-sdk/client-ssm/package.json +34 -34
  43. package/node_modules/@aws-sdk/core/package.json +11 -11
  44. package/node_modules/@aws-sdk/crc64-nvme/package.json +2 -2
  45. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  46. package/node_modules/@aws-sdk/credential-provider-http/package.json +10 -10
  47. package/node_modules/@aws-sdk/credential-provider-ini/package.json +14 -14
  48. package/node_modules/@aws-sdk/credential-provider-login/package.json +8 -8
  49. package/node_modules/@aws-sdk/credential-provider-node/package.json +12 -12
  50. package/node_modules/@aws-sdk/credential-provider-process/package.json +6 -6
  51. package/node_modules/@aws-sdk/credential-provider-sso/package.json +8 -8
  52. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -7
  53. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +5 -5
  54. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +4 -4
  55. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +10 -10
  56. package/node_modules/@aws-sdk/middleware-host-header/package.json +4 -4
  57. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +3 -3
  58. package/node_modules/@aws-sdk/middleware-logger/package.json +3 -3
  59. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +4 -4
  60. package/node_modules/@aws-sdk/middleware-sdk-ec2/package.json +8 -8
  61. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +11 -11
  62. package/node_modules/@aws-sdk/middleware-sdk-sqs/package.json +4 -4
  63. package/node_modules/@aws-sdk/middleware-ssec/package.json +3 -3
  64. package/node_modules/@aws-sdk/middleware-user-agent/package.json +8 -8
  65. package/node_modules/@aws-sdk/nested-clients/package.json +32 -32
  66. package/node_modules/@aws-sdk/region-config-resolver/package.json +5 -5
  67. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +6 -6
  68. package/node_modules/@aws-sdk/token-providers/package.json +7 -7
  69. package/node_modules/@aws-sdk/types/package.json +2 -2
  70. package/node_modules/@aws-sdk/util-endpoints/package.json +5 -5
  71. package/node_modules/@aws-sdk/util-format-url/package.json +4 -4
  72. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
  73. package/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +75 -19
  74. package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getNodeModulesParentDirs.js +15 -0
  75. package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getSanitizedDevTypeScriptVersion.js +14 -0
  76. package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getTypeScriptUserAgentPair.js +53 -7
  77. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/{getTypeScriptPackageJsonPaths.d.ts → getNodeModulesParentDirs.d.ts} +2 -2
  78. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/getSanitizedDevTypeScriptVersion.d.ts +8 -0
  79. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/ts3.4/getNodeModulesParentDirs.d.ts +1 -0
  80. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/ts3.4/getSanitizedDevTypeScriptVersion.d.ts +3 -0
  81. package/node_modules/@aws-sdk/util-user-agent-node/package.json +6 -5
  82. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  83. package/node_modules/@smithy/abort-controller/package.json +2 -2
  84. package/node_modules/@smithy/config-resolver/package.json +5 -5
  85. package/node_modules/@smithy/core/dist-cjs/index.js +1 -2
  86. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +7 -1
  87. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +22 -0
  88. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +11 -1
  89. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +41 -4
  90. package/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +1 -2
  91. package/node_modules/@smithy/core/dist-es/submodules/cbor/parseCborBody.js +7 -1
  92. package/node_modules/@smithy/core/dist-es/submodules/endpoints/index.js +1 -0
  93. package/node_modules/@smithy/core/dist-es/submodules/endpoints/toEndpointV1.js +17 -0
  94. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +10 -0
  95. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +1 -1
  96. package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js +3 -2
  97. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +30 -1
  98. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js +5 -1
  99. package/node_modules/@smithy/core/dist-types/submodules/endpoints/index.d.ts +1 -0
  100. package/node_modules/@smithy/core/dist-types/submodules/endpoints/toEndpointV1.d.ts +6 -0
  101. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +11 -0
  102. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/translateTraits.d.ts +6 -0
  103. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/endpoints/index.d.ts +1 -0
  104. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/endpoints/toEndpointV1.d.ts +6 -0
  105. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +11 -0
  106. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/translateTraits.d.ts +6 -0
  107. package/node_modules/@smithy/core/endpoints.d.ts +7 -0
  108. package/node_modules/@smithy/core/endpoints.js +6 -0
  109. package/node_modules/@smithy/core/package.json +16 -7
  110. package/node_modules/@smithy/credential-provider-imds/package.json +5 -5
  111. package/node_modules/@smithy/eventstream-codec/package.json +2 -2
  112. package/node_modules/@smithy/eventstream-serde-browser/package.json +3 -3
  113. package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +2 -2
  114. package/node_modules/@smithy/eventstream-serde-node/package.json +3 -3
  115. package/node_modules/@smithy/eventstream-serde-universal/package.json +3 -3
  116. package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +4 -1
  117. package/node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js +4 -1
  118. package/node_modules/@smithy/fetch-http-handler/package.json +5 -5
  119. package/node_modules/@smithy/hash-blob-browser/package.json +2 -2
  120. package/node_modules/@smithy/hash-node/package.json +2 -2
  121. package/node_modules/@smithy/hash-stream-node/package.json +2 -2
  122. package/node_modules/@smithy/invalid-dependency/package.json +2 -2
  123. package/node_modules/@smithy/md5-js/package.json +2 -2
  124. package/node_modules/@smithy/middleware-content-length/package.json +3 -3
  125. package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +17 -1
  126. package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js +9 -0
  127. package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/toEndpointV1.js +8 -1
  128. package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/toEndpointV1.d.ts +1 -0
  129. package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/adaptors/toEndpointV1.d.ts +1 -0
  130. package/node_modules/@smithy/middleware-endpoint/package.json +8 -8
  131. package/node_modules/@smithy/middleware-retry/dist-cjs/index.js +9 -12
  132. package/node_modules/@smithy/middleware-retry/dist-es/configurations.js +9 -12
  133. package/node_modules/@smithy/middleware-retry/package.json +8 -8
  134. package/node_modules/@smithy/middleware-serde/dist-cjs/index.js +3 -2
  135. package/node_modules/@smithy/middleware-serde/dist-es/serializerMiddleware.js +3 -2
  136. package/node_modules/@smithy/middleware-serde/package.json +4 -3
  137. package/node_modules/@smithy/middleware-stack/package.json +2 -2
  138. package/node_modules/@smithy/node-config-provider/package.json +4 -4
  139. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +4 -1
  140. package/node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js +4 -1
  141. package/node_modules/@smithy/node-http-handler/dist-types/build-abort-error.d.ts +4 -3
  142. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/build-abort-error.d.ts +4 -3
  143. package/node_modules/@smithy/node-http-handler/package.json +5 -5
  144. package/node_modules/@smithy/property-provider/package.json +2 -2
  145. package/node_modules/@smithy/protocol-http/package.json +2 -2
  146. package/node_modules/@smithy/querystring-builder/package.json +2 -2
  147. package/node_modules/@smithy/querystring-parser/package.json +2 -2
  148. package/node_modules/@smithy/service-error-classification/package.json +2 -2
  149. package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
  150. package/node_modules/@smithy/signature-v4/package.json +4 -4
  151. package/node_modules/@smithy/smithy-client/package.json +7 -7
  152. package/node_modules/@smithy/types/dist-types/http.d.ts +1 -0
  153. package/node_modules/@smithy/types/dist-types/ts3.4/http.d.ts +1 -0
  154. package/node_modules/@smithy/types/package.json +1 -1
  155. package/node_modules/@smithy/url-parser/package.json +3 -3
  156. package/node_modules/@smithy/util-defaults-mode-browser/package.json +4 -4
  157. package/node_modules/@smithy/util-defaults-mode-node/package.json +7 -7
  158. package/node_modules/@smithy/util-endpoints/package.json +3 -3
  159. package/node_modules/@smithy/util-middleware/package.json +2 -2
  160. package/node_modules/@smithy/util-retry/package.json +3 -3
  161. package/node_modules/@smithy/util-stream/package.json +4 -4
  162. package/node_modules/@smithy/util-waiter/package.json +3 -3
  163. package/node_modules/fast-xml-builder/CHANGELOG.md +2 -1
  164. package/node_modules/fast-xml-builder/lib/fxb.d.cts +3 -1
  165. package/node_modules/fast-xml-builder/package.json +1 -1
  166. package/node_modules/fast-xml-builder/src/fxb.d.ts +4 -1
  167. package/package.json +12 -12
  168. package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getTypeScriptPackageJsonPaths.js +0 -17
  169. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/ts3.4/getTypeScriptPackageJsonPaths.d.ts +0 -3
package/.jsii CHANGED
@@ -7,15 +7,15 @@
7
7
  ]
8
8
  },
9
9
  "bundled": {
10
- "@aws-sdk/client-ec2": "^3.1007.0",
11
- "@aws-sdk/client-ecs": "^3.1007.0",
12
- "@aws-sdk/client-kms": "^3.1007.0",
13
- "@aws-sdk/client-s3": "^3.1007.0",
14
- "@aws-sdk/client-secrets-manager": "^3.1007.0",
15
- "@aws-sdk/client-sfn": "^3.1007.0",
16
- "@aws-sdk/client-sns": "^3.1007.0",
17
- "@aws-sdk/client-sqs": "^3.1007.0",
18
- "@aws-sdk/client-ssm": "^3.1007.0",
10
+ "@aws-sdk/client-ec2": "^3.1009.0",
11
+ "@aws-sdk/client-ecs": "^3.1009.0",
12
+ "@aws-sdk/client-kms": "^3.1009.0",
13
+ "@aws-sdk/client-s3": "^3.1009.0",
14
+ "@aws-sdk/client-secrets-manager": "^3.1009.0",
15
+ "@aws-sdk/client-sfn": "^3.1009.0",
16
+ "@aws-sdk/client-sns": "^3.1009.0",
17
+ "@aws-sdk/client-sqs": "^3.1009.0",
18
+ "@aws-sdk/client-ssm": "^3.1009.0",
19
19
  "@types/aws-lambda": "^8.10.161",
20
20
  "@types/crypto-js": "^4.2.2",
21
21
  "@types/js-yaml": "^4.0.9",
@@ -4750,6 +4750,6 @@
4750
4750
  "symbolId": "src/ImagePipeline/ImagePipeline:VolumeProps"
4751
4751
  }
4752
4752
  },
4753
- "version": "0.0.173",
4754
- "fingerprint": "40fKr0KwFzFQlManUQSOLgbMo3UFBQRl+jDRni+DUAw="
4753
+ "version": "0.0.175",
4754
+ "fingerprint": "pT2uTw5+FW1xFq0oudeuZNpQItiKfcTHythrUlXx5zM="
4755
4755
  }
@@ -13,7 +13,7 @@ import (
13
13
  constructs "github.com/aws/constructs-go/constructs/v10/jsii"
14
14
  )
15
15
 
16
- //go:embed jjrawlins-cdk-ami-builder-0.0.172.tgz
16
+ //go:embed jjrawlins-cdk-ami-builder-0.0.174.tgz
17
17
  var tarball []byte
18
18
 
19
19
  // Initialize loads the necessary packages in the @jsii/kernel to support the enclosing module.
@@ -24,5 +24,5 @@ func Initialize() {
24
24
  constructs.Initialize()
25
25
 
26
26
  // Load this library into the kernel
27
- _jsii_.Load("@jjrawlins/cdk-ami-builder", "0.0.172", tarball)
27
+ _jsii_.Load("@jjrawlins/cdk-ami-builder", "0.0.174", tarball)
28
28
  }
@@ -1 +1 @@
1
- 0.0.172
1
+ 0.0.174
@@ -413,5 +413,5 @@ class ImagePipeline extends constructs_1.Construct {
413
413
  }
414
414
  exports.ImagePipeline = ImagePipeline;
415
415
  _a = JSII_RTTI_SYMBOL_1;
416
- ImagePipeline[_a] = { fqn: "@jjrawlins/cdk-ami-builder.ImagePipeline", version: "0.0.173" };
416
+ ImagePipeline[_a] = { fqn: "@jjrawlins/cdk-ami-builder.ImagePipeline", version: "0.0.175" };
417
417
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1hZ2VQaXBlbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbWFnZVBpcGVsaW5lL0ltYWdlUGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsa0NBQWtDO0FBRWxDLDZDQVVxQjtBQUNyQiwyQ0FBMkM7QUFFM0MsaURBQTJDO0FBQzNDLGlEQUEwQztBQUUxQyxtREFBK0Q7QUFDL0QsbUVBQXdEO0FBQ3hELDJDQUF1QztBQUN2QyxzQ0FBc0M7QUFDdEMsZ0NBQWdDO0FBQ2hDLHNFQUFvRDtBQUNwRCwwSEFBc0g7QUFDdEgsd0dBQW9HO0FBQ3BHLGtEQUErQztBQTZNL0MsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFLMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksb0JBQWlFLENBQUM7UUFDdEUsSUFBSSxXQUF3QyxDQUFDO1FBQzdDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixNQUFNLE9BQU8sR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGFBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQy9DLFdBQVcsRUFBRSx1Q0FBdUM7WUFDcEQsS0FBSyxFQUFFLGdCQUFnQixT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Q0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sYUFBYSxHQUFHLElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQzdEO1lBQ0UsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFVBQVUsRUFBRTtnQkFDVixnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO2dCQUM1QyxlQUFlLEVBQUUsWUFBWSxDQUFDLGVBQWU7Z0JBQzdDLE9BQU8sRUFBRSxLQUFLLENBQUMsa0JBQWtCLElBQUksT0FBTztnQkFDNUMsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGtCQUFrQixFQUFFLEdBQUcsU0FBUyxrQkFBa0Isa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDMUYsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDbEQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO2FBQ3pFO1lBQ0QsYUFBYSxFQUFFLHNCQUFzQjtTQUN0QyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxXQUFtQjtRQUNyQyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7QUE5YUgsc0NBZ2JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQge1xuICBBcm4sXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3NfaW1hZ2VidWlsZGVyIGFzIGltYWdlYnVpbGRlcixcbiAgYXdzX3NucyBhcyBzbnMsXG4gIGF3c19zbnNfc3Vic2NyaXB0aW9ucyBhcyBzdWJzY3JpcHRpb25zLFxuICBDdXN0b21SZXNvdXJjZSxcbiAgRHVyYXRpb24sXG4gIFJlbW92YWxQb2xpY3ksXG4gIFN0YWNrLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBWcGMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IFJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEtleSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBDcnlwdG9KUyBmcm9tICdjcnlwdG8tanMnO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tICdqcy15YW1sJztcbmltcG9ydCB7IEFjdGlvbnMgfSBmcm9tICcuLi9JYW1Qb2xpY3lCdWlsZGVySGVscGVyJztcbmltcG9ydCB7IENoZWNrU3RhdGVNYWNoaW5lU3RhdHVzRnVuY3Rpb24gfSBmcm9tICcuLi9MYW1iZGFzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzLWZ1bmN0aW9uJztcbmltcG9ydCB7IFN0YXJ0U3RhdGVNYWNoaW5lRnVuY3Rpb24gfSBmcm9tICcuLi9MYW1iZGFzL1N0YXJ0U3RhdGVNYWNoaW5lL1N0YXJ0U3RhdGVNYWNoaW5lLWZ1bmN0aW9uJztcbmltcG9ydCB7IFN0YXRlTWFjaGluZSB9IGZyb20gJy4uL1N0YXRlTWFjaGluZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVic1BhcmFtZXRlcnMge1xuICAvKipcbiAgICAgKiBTaXplIG9mIHRoZSB2b2x1bWUgaW4gR2lCXG4gICAgICovXG4gIHZvbHVtZVNpemU6IG51bWJlcjtcbiAgLyoqXG4gICAgICogVHlwZSBvZiB0aGUgdm9sdW1lXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBncDJcbiAgICAgKi9cbiAgdm9sdW1lVHlwZT86IHN0cmluZztcbiAgLyoqXG4gICAgICogS01TIEtleSBBbGlhcyBmb3IgdGhlIHZvbHVtZVxuICAgICAqIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IEFNSSBlbmNyeXB0aW9uIGtleSBhbGlhcyB3aWxsIGJlIHVzZWRcbiAgICAgKiBDdXN0b20gS01TIEtleXMgQWxpYXMgbmVlZCB0byBleGlzdCBpbiB0aGUgb3RoZXIgYWNjb3VudHMgZm9yIGRpc3RyaWJ1dGlvbiB0byB3b3JrIGNvcnJlY3RseS5cbiAgICAgKiBAZGVmYXVsdCBhbGlhcy9hd3MvZWJzXG4gICAgICovXG4gIGttc0tleUlkPzogc3RyaW5nO1xuICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB2b2x1bWUgaXMgZW5jcnlwdGVkXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gIGVuY3J5cHRlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHZvbHVtZSBpcyBkZWxldGVkIHdoZW4gdGhlIGluc3RhbmNlIGlzIHRlcm1pbmF0ZWRcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgZGVsZXRlT25UZXJtaW5hdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVm9sdW1lUHJvcHMge1xuICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSB2b2x1bWVcbiAgICAgKi9cbiAgcmVhZG9ubHkgZGV2aWNlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICAgKiBFQlMgQmxvY2sgU3RvcmUgUGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQnkgZGVmYXVsdCwgdGhlICdrbXNLZXlJZCcgb2YgRUJTIHZvbHVtZSBpcyBzZXQgdG8gJ2FtaUVuY3J5cHRpb25LZXkua2V5SWQnLFxuICAgICAqIGFuZCAnZW5jcnlwdGVkJyBpcyBzZXQgdG8gJ3RydWUnLiBJZiB5b3Ugd2lzaCB0byB1c2UgYSBkaWZmZXJlbnQgS01TIEtleSxcbiAgICAgKiB5b3UgbWF5IGRvIHNvLiBIb3dldmVyLCBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlIG5lY2Vzc2FyeSBwZXJtaXNzaW9uc1xuICAgICAqIGFuZCBjb21wbGlhbmNlIHJlcXVpcmVtZW50cyBmb3IgdGhlIEtNUyBLZXkgYXJlIGFscmVhZHkgc2V0IHVwLlxuICAgICAqL1xuICByZWFkb25seSBlYnM6IElFYnNQYXJhbWV0ZXJzO1xufVxuXG4vKipcbiAqIEJ1aWxkIGNvbW1hbmRzIGZvciB0aGUgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFjdGlvbkNvbW1hbmRzIHtcbiAgY29tbWFuZHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdGVwQ29tbWFuZHMge1xuICBuYW1lOiBzdHJpbmc7IC8vIF5bLV9BLVphLXotMC05XVstX0EtWmEtejAtOSBdezEsMTI2fVstX0EtWmEtei0wLTldJC9cbiAgYWN0aW9uOiAnRXhlY3V0ZUJhc2gnIHwgJ0V4ZWN1dGVQb3dlclNoZWxsJyB8ICdVcGRhdGVPUyc7XG4gIGlucHV0cz86IElBY3Rpb25Db21tYW5kcztcbn1cblxuLyoqXG4gKiBQaGFzZXMgZm9yIHRoZSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGhhc2VzIHtcbiAgbmFtZTogJ2J1aWxkJyB8ICd2YWxpZGF0ZScgfCAndGVzdCc7XG4gIHN0ZXBzOiBJU3RlcENvbW1hbmRzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUlucHV0UGFyYW1ldGVyIHtcbiAgdHlwZTogc3RyaW5nO1xuICBkZWZhdWx0OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIElQYXJhbWV0ZXJzID0gUmVjb3JkPHN0cmluZywgSUlucHV0UGFyYW1ldGVyPjtcblxuLyoqXG4gKiBDb21wb25lbnQgZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb21wb25lbnREb2N1bWVudCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBzY2hlbWFWZXJzaW9uPzogc3RyaW5nO1xuICBwaGFzZXM6IElQaGFzZXNbXTtcbn1cblxuLyoqXG4gKiBDb21wb25lbnQgcHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29tcG9uZW50UHJvcHMge1xuICBuYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY29tcG9uZW50VmVyc2lvbj86IHN0cmluZztcbiAgc2NoZW1hVmVyc2lvbj86IHN0cmluZztcbiAgcGFyYW1ldGVycz86IElQYXJhbWV0ZXJzO1xuICBwbGF0Zm9ybT86ICdMaW51eCcgfCAnV2luZG93cyc7XG4gIGNvbXBvbmVudERvY3VtZW50OiBJQ29tcG9uZW50RG9jdW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VQaXBlbGluZVByb3BzIHtcbiAgcmVhZG9ubHkgc3VibmV0SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvblJlZ2lvbnM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAgICogVnBjIHRvIHVzZSBmb3IgdGhlIEltYWdlIEJ1aWxkZXIgUGlwZWxpbmVcbiAgICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBWcGM7XG4gIC8qKlxuICAgICAqIExpc3Qgb2YgY29tcG9uZW50IHByb3BzXG4gICAgICovXG4gIHJlYWRvbmx5IGNvbXBvbmVudHM6IElDb21wb25lbnRQcm9wc1tdO1xuICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBpbnN0YW5jZSBwcm9maWxlIHRoYXQgd2lsbCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIEluc3RhbmNlIENvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGVOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICAgKiBBZGRpdGlvbmFsIHBvbGljaWVzIHRvIGFkZCB0byB0aGUgaW5zdGFuY2UgcHJvZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIEluc3RhbmNlIENvbmZpZ3VyYXRpb25zXG4gICAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxQb2xpY2llcz86IGlhbS5NYW5hZ2VkUG9saWN5W107XG5cbiAgLyoqXG4gICAgICogVXNlckRhdGEgc2NyaXB0IHRoYXQgd2lsbCBvdmVycmlkZSBkZWZhdWx0IG9uZSAoaWYgc3BlY2lmaWVkKVxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBub25lXG4gICAgICovXG4gIHJlYWRvbmx5IHVzZXJEYXRhU2NyaXB0Pzogc3RyaW5nO1xuICAvKipcbiAgICAgKiBJbWFnZSByZWNpcGUgdmVyc2lvbiAoRGVmYXVsdDogMC4wLjEpXG4gICAgICovXG4gIHJlYWRvbmx5IGltYWdlUmVjaXBlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICAgKiBUaGUgc291cmNlIChwYXJlbnQpIGltYWdlIHRoYXQgdGhlIGltYWdlIHJlY2lwZSB1c2VzIGFzIGl0cyBiYXNlIGVudmlyb25tZW50LiBUaGUgdmFsdWUgY2FuIGJlIHRoZSBwYXJlbnQgaW1hZ2UgQVJOIG9yIGFuIEltYWdlIEJ1aWxkZXIgQU1JIElEXG4gICAgICovXG4gIHJlYWRvbmx5IHBhcmVudEltYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgICogTGlzdCBvZiBpbnN0YW5jZSB0eXBlcyB1c2VkIGluIHRoZSBJbnN0YW5jZSBDb25maWd1cmF0aW9uIChEZWZhdWx0OiBbICd0My5tZWRpdW0nLCAnbTUubGFyZ2UnLCAnbTUueGxhcmdlJyBdKVxuICAgICAqL1xuICByZWFkb25seSBpbnN0YW5jZVR5cGVzPzogc3RyaW5nW107XG4gIC8qKlxuICAgICAqIFBsYXRmb3JtIHR5cGUgTGludXggb3IgV2luZG93cyAoRGVmYXVsdDogTGludXgpXG4gICAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtPzogJ0xpbnV4JyB8ICdXaW5kb3dzJztcbiAgLyoqXG4gICAgICogRW1haWwgdXNlZCB0byByZWNlaXZlIEltYWdlIEJ1aWxkZXIgUGlwZWxpbmUgTm90aWZpY2F0aW9ucyB2aWEgU05TXG4gICAgICovXG4gIHJlYWRvbmx5IGVtYWlsPzogc3RyaW5nO1xuICAvKipcbiAgICAgKiBMaXN0IG9mIHNlY3VyaXR5IGdyb3VwIElEcyBmb3IgdGhlIEluZnJhc3RydWN0dXJlIENvbmZpZ3VyYXRpb25cbiAgICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICAgKiBTdWJuZXQgSUQgZm9yIHRoZSBJbmZyYXN0cnVjdHVyZSBDb25maWd1cmF0aW9uXG4gICAgICovXG4gIHJlYWRvbmx5IGVic1ZvbHVtZUNvbmZpZ3VyYXRpb25zPzogVm9sdW1lUHJvcHNbXTtcbiAgLyoqXG4gICAgICogU2V0IHRvIHRydWUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIGNvbnRpbnVvdXMgdnVsbmVyYWJpbGl0eSBzY2FucyB0aHJvdWdoIEFXUyBJbnBlY3RvclxuICAgICAqL1xuICByZWFkb25seSBlbmFibGVWdWxuU2NhbnM/OiBib29sZWFuO1xuICAvKipcbiAgICAgKiBTdG9yZSB2dWxuZXJhYmlsaXR5IHNjYW5zIHRocm91Z2ggQVdTIEluc3BlY3RvciBpbiBFQ1IgdXNpbmcgdGhpcyByZXBvIG5hbWUgKGlmIG9wdGlvbiBpcyBlbmFibGVkKVxuICAgICAqL1xuICByZWFkb25seSB2dWxuU2NhbnNSZXBvTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAgICogU3RvcmUgdnVsbmVyYWJpbGl0eSBzY2FucyB0aHJvdWdoIEFXUyBJbnNwZWN0b3IgaW4gRUNSIHVzaW5nIHRoZXNlIGltYWdlIHRhZ3MgKGlmIG9wdGlvbiBpcyBlbmFibGVkKVxuICAgICAqL1xuICByZWFkb25seSB2dWxuU2NhbnNSZXBvVGFncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgICAqIFRoaXMgdmFyaWFibGUgcmVwcmVzZW50cyBhbiBhcnJheSBvZiBzaGFyZWQgYWNjb3VudCBJRHMuXG4gICAgICogSXQgaXMgb3B0aW9uYWwgYW5kIHJlYWRvbmx5LlxuICAgICAqIElmIGl0IGlzIHByb3ZpZGVkLCB0aGlzIEFNSSB3aWxsIGJlIHZpc2libGUgdG8gdGhlIGFjY291bnRzIGluIHRoZSBhcnJheS5cbiAgICAgKiAgSW4gb3JkZXIgdG8gc2hhcmUgdGhlIEFNSSB3aXRoIG90aGVyIGFjY291bnRzLCB5b3UgbXVzdCBzcGVjaWZ5IGEgS01TIGtleSBJRCBmb3IgdGhlIEVCUyB2b2x1bWUgY29uZmlndXJhdGlvbiBhcyBBV1MgZG9lcyBub3QgYWxsb3cgc2hhcmluZyBBTUlzIGVuY3J5cHRlZCB3aXRoIHRoZSBkZWZhdWx0IEFNSSBlbmNyeXB0aW9uIGtleS5cbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uQWNjb3VudElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBkZWJ1ZyBpbWFnZSBwaXBlbGluZSBpcyBlbmFibGVkIG9yIG5vdC5cbiAgICAgKiBUaGlzIHZhcmlhYmxlIGlzIG9wdGlvbmFsLiBEZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICAgICAqICBGdW5jdGlvbmFsbHksIHRoaXMgd2lsbCBmbGFnIHRvIHJldHVybiBhcyBmaW5pc2hlZCBpbW1lZGlhdGVseSBhZnRlciBmaXJzdCBjaGVjayB0byBzZWUgaWYgdGhlIGltYWdlIHBpcGVsaW5lIGhhcyBmaW5pc2hlZC5cbiAgICAgKiAgVGhpcyBpcyB1c2VmdWwgZm9yIGRlYnVnZ2luZyB0aGUgaW1hZ2UgcGlwZWxpbmUuICBIb3dldmVyLCB0aGVyZSB3aWxsIGJlIG5vIEFNSSB2YWx1ZSByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqIEByZWFkb25seVxuICAgICAqL1xuICByZWFkb25seSBkZWJ1Z0ltYWdlUGlwZWxpbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgICAqIFRoZSBhbGlhcyBvZiB0aGUgS01TIGtleSB1c2VkIGZvciBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIG9mIGNvbnRlbnQgaW4gdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIG9wdGlvbmFsIGFuZCByZWFkb25seS5cbiAgICAgKiBUaGUgZGVmYXVsdCBlbmNyeXB0aW9uIGtleSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGNyb3NzLWFjY291bnQgQU1JIHNoYXJpbmcuXG4gICAgICogSWYgeW91IHNwZWNpZnkgZGlzdHJpYnV0aW9uQWNjb3VudElkcywgeW91IG11c3Qgc3BlY2lmeSBhIG5vbi1kZWZhdWx0IGVuY3J5cHRpb24ga2V5IHVzaW5nIHRoaXMgcHJvcGVydHkuIE90aGVyd2lzZSwgSW1hZ2UgQnVpbGRlciB3aWxsIHRocm93IGFuIGVycm9yLlxuICAgICAqIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBLTVMga2V5IGluIHRoZSBkaXN0cmlidXRpb24gYWNjb3VudCBtdXN0IGFsbG93IHRoZSBFQzJJbWFnZUJ1aWxkZXJEaXN0cmlidXRpb25Dcm9zc0FjY291bnRSb2xlIHJvbGUgdG8gdXNlIHRoZSBrZXkuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uS21zS2V5QWxpYXM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBJbWFnZVBpcGVsaW5lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgaW1hZ2VSZWNpcGVDb21wb25lbnRzOiBpbWFnZWJ1aWxkZXIuQ2ZuSW1hZ2VSZWNpcGUuQ29tcG9uZW50Q29uZmlndXJhdGlvblByb3BlcnR5W107XG4gIGltYWdlUGlwZWxpbmVBcm46IHN0cmluZztcbiAgaW1hZ2VJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbWFnZVBpcGVsaW5lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGxldCBpbmZyYXN0cnVjdHVyZUNvbmZpZzogaW1hZ2VidWlsZGVyLkNmbkluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbjtcbiAgICBsZXQgaW1hZ2VSZWNpcGU6IGltYWdlYnVpbGRlci5DZm5JbWFnZVJlY2lwZTtcbiAgICB0aGlzLmltYWdlUmVjaXBlQ29tcG9uZW50cyA9IFtdO1xuICAgIHRoaXMuaW1hZ2VJZCA9ICcnO1xuICAgIHRoaXMuaW1hZ2VQaXBlbGluZUFybiA9ICcnO1xuICAgIGNvbnN0IGFjY291bnQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuICAgIGNvbnN0IHJlZ2lvbiA9IFN0YWNrLm9mKHRoaXMpLnJlZ2lvbjtcbiAgICBjb25zdCBzdGFja05hbWUgPSBTdGFjay5vZih0aGlzKS5zdGFja05hbWU7XG4gICAgY29uc3QgdG9waWNLbXNLZXkgPSBuZXcgS2V5KHRoaXMsICdUb3BpY0ttc0tleScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnS01TIEtleSB1c2VkIHRvIGVuY3J5cHQgdGhlIFNOUyB0b3BpYycsXG4gICAgICBhbGlhczogYC9hbWktYnVpbGRlci8ke3N0YWNrTmFtZX0tVG9waWNLbXNLZXlgLFxuICAgIH0pO1xuICAgIC8vIENvbnN0cnVjdCBjb2RlIGJlbG93XG4gICAgY29uc3QgdG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsICdJbWFnZUJ1aWxkZXJUb3BpYycsIHtcbiAgICAgIGRpc3BsYXlOYW1lOiAnSW1hZ2UgQnVpbGRlciBOb3RpZnknLFxuICAgICAgbWFzdGVyS2V5OiB0b3BpY0ttc0tleSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5lbWFpbCAhPSBudWxsKSB7XG4gICAgICB0b3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IHN1YnNjcmlwdGlvbnMuRW1haWxTdWJzY3JpcHRpb24ocHJvcHMuZW1haWwpKTtcbiAgICB9XG5cbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2VjMi5hbWF6b25hd3MuY29tJyksXG4gICAgICBkZXNjcmlwdGlvbjogJ0lBTSByb2xlIHVzZWQgYXMgcGFydCBvZiBhbiBJbWFnZSBCdWlsZGVyIHBpcGVsaW5lJyxcbiAgICB9KTtcblxuICAgIHJvbGUuYWRkTWFuYWdlZFBvbGljeShpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0VDMkluc3RhbmNlUHJvZmlsZUZvckltYWdlQnVpbGRlcicpKTtcbiAgICByb2xlLmFkZE1hbmFnZWRQb2xpY3koaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdFQzJJbnN0YW5jZVByb2ZpbGVGb3JJbWFnZUJ1aWxkZXJFQ1JDb250YWluZXJCdWlsZHMnKSk7XG4gICAgcm9sZS5hZGRNYW5hZ2VkUG9saWN5KGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnQW1hem9uU1NNTWFuYWdlZEluc3RhbmNlQ29yZScpKTtcbiAgICBpZiAodHlwZW9mIHByb3BzLmFkZGl0aW9uYWxQb2xpY2llcyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvcHMuYWRkaXRpb25hbFBvbGljaWVzLmxlbmd0aCA+PSAxKSB7XG4gICAgICBmb3IgKGNvbnN0IHBvbGljeSBvZiBwcm9wcy5hZGRpdGlvbmFsUG9saWNpZXMpIHtcbiAgICAgICAgcm9sZS5hZGRNYW5hZ2VkUG9saWN5KHBvbGljeSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFuY2VQcm9maWxlTmFtZSA9IHByb3BzLnByb2ZpbGVOYW1lID8/IGAke3N0YWNrTmFtZX0tSW5zdGFuY2VQcm9maWxlYDtcbiAgICBjb25zdCBpbmZyYUNvbmZpZ05hbWUgPSBgJHtzdGFja05hbWV9LUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbmA7XG4gICAgY29uc3QgaW1hZ2VSZWNpcGVOYW1lID0gYCR7c3RhY2tOYW1lfS1JbWFnZVJlY2lwZWA7XG4gICAgY29uc3QgaW1hZ2VSZWNpcGVWZXJzaW9uID0gcHJvcHMuaW1hZ2VSZWNpcGVWZXJzaW9uID8/ICcwLjAuMSc7XG4gICAgY29uc3QgcGlwZWxpbmVCYXNlTmFtZSA9IGAke3N0YWNrTmFtZX0tSW1hZ2VQaXBlbGluZWA7XG4gICAgY29uc3QgcGlwZWxpbmVOYW1lID0gYCR7cGlwZWxpbmVCYXNlTmFtZX0tJHtpbWFnZVJlY2lwZVZlcnNpb24ucmVwbGFjZSgvXFwuL2csICctJyl9YDtcblxuICAgIC8vIFVzZSB0aGUgZmlyc3Qgdm9sdW1lIGNvbmZpZ3VyYXRpb24ncyBLTVMga2V5IElEIGFzIHRoZSBlZmZlY3RpdmUgS01TIGtleSBJRFxuICAgIC8vIElmIHRoZSBmaXJzdCB2b2x1bWUgY29uZmlndXJhdGlvbiBkb2VzIG5vdCBoYXZlIGEgS01TIGtleSBJRCwgdXNlIHRoZSBkZWZhdWx0IEFNSSBlbmNyeXB0aW9uIGtleVxuICAgIC8vIEtlZXAgaW4gbWluZCB0aG91Z2ggdGhhdCBkZWZhdWx0IEFNSSBlbmNyeXB0aW9uIGtleSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGNyb3NzLWFjY291bnQgQU1JIHNoYXJpbmdcbiAgICBjb25zdCBkaXN0cmlidXRpb25LZXlBbGlhcyA9IHByb3BzLmRpc3RyaWJ1dGlvbkttc0tleUFsaWFzID8/ICdhbGlhcy9hd3MvZWJzJztcbiAgICBjb25zdCBlYnNWb2x1bWVFZmZlY3RpdmVLbXNBbGlhcyA9IHByb3BzLmVic1ZvbHVtZUNvbmZpZ3VyYXRpb25zPy5bMF0/LmVicz8ua21zS2V5SWRcbiAgICAgID8gcHJvcHMuZWJzVm9sdW1lQ29uZmlndXJhdGlvbnMhWzBdLmVicy5rbXNLZXlJZFxuICAgICAgOiAocHJvcHMuZGlzdHJpYnV0aW9uS21zS2V5QWxpYXMgPz8gJ2FsaWFzL2F3cy9lYnMnKTtcbiAgICBjb25zdCBkaXN0cmlidXRpb25BY2NvdW50SWRzID0gcHJvcHMuZGlzdHJpYnV0aW9uQWNjb3VudElkcyA/PyBbXTtcbiAgICBjb25zdCBkaXN0cmlidXRpb25SZWdpb25zID0gcHJvcHMuZGlzdHJpYnV0aW9uUmVnaW9ucyA/PyBbXTtcblxuICAgIGlmICgocHJvcHMuZGlzdHJpYnV0aW9uUmVnaW9ucz8ubGVuZ3RoID09PSAwICYmIHByb3BzLmRpc3RyaWJ1dGlvbkFjY291bnRJZHM/Lmxlbmd0aCkgfHxcbiAgICAgIChwcm9wcy5kaXN0cmlidXRpb25SZWdpb25zPy5sZW5ndGggJiYgcHJvcHMuZGlzdHJpYnV0aW9uQWNjb3VudElkcz8ubGVuZ3RoID09PSAwKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkaXN0cmlidXRpb25SZWdpb25zIG11c3QgYmUgc3BlY2lmaWVkIGlmIGRpc3RyaWJ1dGlvbkFjY291bnRJZHMgaXMgc3BlY2lmaWVkJyk7XG4gICAgfVxuXG4gICAgaWYgKChwcm9wcy5kaXN0cmlidXRpb25SZWdpb25zPy5sZW5ndGggJiYgcHJvcHMuZGlzdHJpYnV0aW9uQWNjb3VudElkcz8ubGVuZ3RoKSAmJiBwcm9wcy5kaXN0cmlidXRpb25LbXNLZXlBbGlhcyA9PT0gJ2FsaWFzL2F3cy9lYnMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lmIGRpc3RyaWJ1dGlvblJlZ2lvbnMgYW5kIGRpc3RyaWJ1dGlvbkFjY291bnRJZHMgYXJlIHNwZWNpZmllZCwgZGlzdHJpYnV0aW9uS21zS2V5QWxpYXMgbXVzdCBiZSBzcGVjaWZpZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9maWxlID0gbmV3IGlhbS5DZm5JbnN0YW5jZVByb2ZpbGUodGhpcywgJ0luc3RhbmNlUHJvZmlsZScsIHtcbiAgICAgIHJvbGVzOiBbcm9sZS5yb2xlTmFtZV0sXG4gICAgICBpbnN0YW5jZVByb2ZpbGVOYW1lOiBpbnN0YW5jZVByb2ZpbGVOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdEdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsICdTZWN1cml0eUdyb3VwJywge1xuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnNlY3VyaXR5R3JvdXBzID09IG51bGwgfHwgcHJvcHMuc3VibmV0SWQgPT0gbnVsbCkge1xuICAgICAgaW5mcmFzdHJ1Y3R1cmVDb25maWcgPSBuZXcgaW1hZ2VidWlsZGVyLkNmbkluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbih0aGlzLCAnSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uJywge1xuICAgICAgICBpbnN0YW5jZVByb2ZpbGVOYW1lOiBpbnN0YW5jZVByb2ZpbGVOYW1lLFxuICAgICAgICBuYW1lOiBpbmZyYUNvbmZpZ05hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnSW5mcmFzdHJ1Y3R1cmUgQ29uZmlndXJhdGlvbiBmb3IgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIGluc3RhbmNlVHlwZXM6IHByb3BzLmluc3RhbmNlVHlwZXMgPz8gWyd0My5tZWRpdW0nLCAnbTUubGFyZ2UnLCAnbTUueGxhcmdlJ10sXG4gICAgICAgIHNuc1RvcGljQXJuOiB0b3BpYy50b3BpY0FybixcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogW2RlZmF1bHRHcm91cC5zZWN1cml0eUdyb3VwSWRdLFxuICAgICAgICBzdWJuZXRJZDogcHJvcHMudnBjLnB1YmxpY1N1Ym5ldHNbMF0uc3VibmV0SWQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5mcmFzdHJ1Y3R1cmVDb25maWcgPSBuZXcgaW1hZ2VidWlsZGVyLkNmbkluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbih0aGlzLCAnSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uJywge1xuICAgICAgICBpbnN0YW5jZVByb2ZpbGVOYW1lOiBpbnN0YW5jZVByb2ZpbGVOYW1lLFxuICAgICAgICBuYW1lOiBpbmZyYUNvbmZpZ05hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnSW5mcmFzdHJ1Y3R1cmUgQ29uZmlndXJhdGlvbiBmb3IgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIGluc3RhbmNlVHlwZXM6IHByb3BzLmluc3RhbmNlVHlwZXMgPz8gWyd0My5tZWRpdW0nLCAnbTUubGFyZ2UnLCAnbTUueGxhcmdlJ10sXG4gICAgICAgIHNuc1RvcGljQXJuOiB0b3BpYy50b3BpY0FybixcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogcHJvcHMuc2VjdXJpdHlHcm91cHMsXG4gICAgICAgIHN1Ym5ldElkOiBwcm9wcy5zdWJuZXRJZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpbmZyYXN0cnVjdHVyZUNvbmZpZy5hZGREZXBlbmRlbmN5KHByb2ZpbGUpO1xuXG4gICAgLyoqXG4gICAgICAgICAqIEltYWdlIHJlY2lwZSBjb25maWd1cmF0aW9uXG4gICAgICAgICAqL1xuICAgIGxldCBpbWFnZVJlY2lwZVByb3BzOiBpbWFnZWJ1aWxkZXIuQ2ZuSW1hZ2VSZWNpcGVQcm9wcztcbiAgICBpbWFnZVJlY2lwZVByb3BzID0ge1xuICAgICAgY29tcG9uZW50czogW10sXG4gICAgICBuYW1lOiBpbWFnZVJlY2lwZU5hbWUsXG4gICAgICBwYXJlbnRJbWFnZTogcHJvcHMucGFyZW50SW1hZ2UsXG4gICAgICB2ZXJzaW9uOiBpbWFnZVJlY2lwZVZlcnNpb24gPz8gJzAuMC4xJyxcbiAgICB9O1xuICAgIGlmIChwcm9wcy51c2VyRGF0YVNjcmlwdCkge1xuICAgICAgaW1hZ2VSZWNpcGVQcm9wcyA9IHtcbiAgICAgICAgLi4uaW1hZ2VSZWNpcGVQcm9wcyxcbiAgICAgICAgYWRkaXRpb25hbEluc3RhbmNlQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIHVzZXJEYXRhT3ZlcnJpZGU6IHByb3BzLnVzZXJEYXRhU2NyaXB0LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZWJzVm9sdW1lQ29uZmlndXJhdGlvbnM/LlswXS5lYnMpIHtcbiAgICAgIC8vIEdvIG92ZXIgZWFjaCBjb25maWd1cmF0aW9uIGFuZCBzZXQgdGhlIGRlZmF1bHRcbiAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIHByb3BzLmVic1ZvbHVtZUNvbmZpZ3VyYXRpb25zISkge1xuICAgICAgICAvLyBJZiBlbmNyeXB0aW9uIGlzIG5vdCBzZXQsIGVuYWJsZSBpdFxuICAgICAgICBpZiAoY29uZmlnLmVicy5lbmNyeXB0ZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbmZpZy5lYnMuZW5jcnlwdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIEtNUyBLZXkgSUQgaXMgbm90IHNldCwgdXNlIHRoZSBkZWZhdWx0XG4gICAgICAgIGlmICghY29uZmlnLmVicy5rbXNLZXlJZCkge1xuICAgICAgICAgIGNvbmZpZy5lYnMua21zS2V5SWQgPSBlYnNWb2x1bWVFZmZlY3RpdmVLbXNBbGlhcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGRlbGV0ZU9uVGVybWluYXRpb24gaXMgbm90IHNldCwgZW5hYmxlIGl0XG4gICAgICAgIGlmICghY29uZmlnLmVicy5kZWxldGVPblRlcm1pbmF0aW9uKSB7XG4gICAgICAgICAgY29uZmlnLmVicy5kZWxldGVPblRlcm1pbmF0aW9uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaW1hZ2VSZWNpcGVQcm9wcyA9IHtcbiAgICAgICAgLi4uaW1hZ2VSZWNpcGVQcm9wcyxcbiAgICAgICAgYmxvY2tEZXZpY2VNYXBwaW5nczogcHJvcHMuZWJzVm9sdW1lQ29uZmlndXJhdGlvbnMsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBpbWFnZVJlY2lwZVByb3BzID0ge1xuICAgICAgICAuLi5pbWFnZVJlY2lwZVByb3BzLFxuICAgICAgICBibG9ja0RldmljZU1hcHBpbmdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGV2aWNlTmFtZTogJy9kZXYvc2RhMScsXG4gICAgICAgICAgICBlYnM6IHtcbiAgICAgICAgICAgICAga21zS2V5SWQ6ICdhbGlhcy9hd3MvZWJzJyxcbiAgICAgICAgICAgICAgZW5jcnlwdGVkOiB0cnVlLFxuICAgICAgICAgICAgICB2b2x1bWVTaXplOiAzMCxcbiAgICAgICAgICAgICAgdm9sdW1lVHlwZTogJ2dwMycsXG4gICAgICAgICAgICAgIGRlbGV0ZU9uVGVybWluYXRpb246IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIH1cbiAgICBpbWFnZVJlY2lwZSA9IG5ldyBpbWFnZWJ1aWxkZXIuQ2ZuSW1hZ2VSZWNpcGUodGhpcywgJ0ltYWdlUmVjaXBlJywgaW1hZ2VSZWNpcGVQcm9wcyk7XG5cbiAgICBwcm9wcy5jb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudDogSUNvbXBvbmVudFByb3BzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBjb21wb25lbnROYW1lID0gY29tcG9uZW50Lm5hbWU/LnJlcGxhY2UoLyAvZywgJy0nKTtcbiAgICAgIGNvbXBvbmVudC5uYW1lID0gY29tcG9uZW50TmFtZTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEhhc2ggPSB0aGlzLnN0cmluZ1RvTUQ1KEpTT04uc3RyaW5naWZ5KGNvbXBvbmVudCkpO1xuICAgICAgY29uc3QgY29tcG9uZW50RG9jdW1lbnRIYXNoID0gdGhpcy5zdHJpbmdUb01ENShKU09OLnN0cmluZ2lmeShjb21wb25lbnQuY29tcG9uZW50RG9jdW1lbnQpKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudERvY3VtZW50OiBJQ29tcG9uZW50RG9jdW1lbnQgPSB7XG4gICAgICAgIG5hbWU6IGNvbXBvbmVudE5hbWUgPz8gYCR7c3RhY2tOYW1lfS0ke2NvbXBvbmVudERvY3VtZW50SGFzaH0tJHtpbmRleH1gLFxuICAgICAgICBkZXNjcmlwdGlvbjogY29tcG9uZW50LmRlc2NyaXB0aW9uLFxuICAgICAgICBzY2hlbWFWZXJzaW9uOiBjb21wb25lbnQuc2NoZW1hVmVyc2lvbiA/PyAnMS4wJyxcbiAgICAgICAgcGhhc2VzOiBjb21wb25lbnQuY29tcG9uZW50RG9jdW1lbnQucGhhc2VzLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGRhdGEgPSB5YW1sLmR1bXAoY29tcG9uZW50RG9jdW1lbnQpO1xuICAgICAgbGV0IG5ld0NvbXBvbmVudCA9IG5ldyBpbWFnZWJ1aWxkZXIuQ2ZuQ29tcG9uZW50KHRoaXMsIGNvbXBvbmVudC5uYW1lID8/IGBDb21wb25lbnQtJHtpbmRleH1gLCB7XG4gICAgICAgIG5hbWU6IGNvbXBvbmVudC5uYW1lID8/IGAke3N0YWNrTmFtZS50b0xvd2VyQ2FzZSgpfS0ke2NvbXBvbmVudEhhc2h9LSR7aW5kZXh9YCxcbiAgICAgICAgZGVzY3JpcHRpb246IGNvbXBvbmVudC5kZXNjcmlwdGlvbixcbiAgICAgICAgcGxhdGZvcm06IGNvbXBvbmVudC5wbGF0Zm9ybSA/PyAnTGludXgnLFxuICAgICAgICB2ZXJzaW9uOiBjb21wb25lbnQuY29tcG9uZW50VmVyc2lvbiA/PyBwcm9wcy5pbWFnZVJlY2lwZVZlcnNpb24gPz8gJzAuMC4xJyxcbiAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBhZGQgdGhlIGNvbXBvbmVudCB0byB0aGUgSW1hZ2UgUmVjaXBlXG4gICAgICB0aGlzLmltYWdlUmVjaXBlQ29tcG9uZW50cy5wdXNoKHsgY29tcG9uZW50QXJuOiBuZXdDb21wb25lbnQuYXR0ckFybiB9KTtcbiAgICAgIGltYWdlUmVjaXBlLmNvbXBvbmVudHMgPSB0aGlzLmltYWdlUmVjaXBlQ29tcG9uZW50cztcbiAgICB9KTtcblxuICAgIGNvbnN0IGltYWdlUmVjaXBlSGFzaCA9IHRoaXMuc3RyaW5nVG9NRDUoSlNPTi5zdHJpbmdpZnkodGhpcy5pbWFnZVJlY2lwZUNvbXBvbmVudHMpKTtcbiAgICBpbWFnZVJlY2lwZS5uYW1lID0gYCR7aW1hZ2VSZWNpcGVOYW1lfS0ke2ltYWdlUmVjaXBlSGFzaH0tJHtpbWFnZVJlY2lwZVZlcnNpb24ucmVwbGFjZSgvXFwuL2csICctJyl9YDtcblxuICAgIGxldCBpbWFnZVBpcGVsaW5lUHJvcHM6IGltYWdlYnVpbGRlci5DZm5JbWFnZVBpcGVsaW5lUHJvcHM7XG4gICAgaW1hZ2VQaXBlbGluZVByb3BzID0ge1xuICAgICAgaW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uQXJuOiBpbmZyYXN0cnVjdHVyZUNvbmZpZy5hdHRyQXJuLFxuICAgICAgbmFtZTogcGlwZWxpbmVOYW1lLFxuICAgICAgZGVzY3JpcHRpb246ICdJbWFnZSBwaXBlbGluZScsXG4gICAgICBpbWFnZVJlY2lwZUFybjogaW1hZ2VSZWNpcGUuYXR0ckFybixcbiAgICB9O1xuICAgIGlmIChwcm9wcy5lbmFibGVWdWxuU2NhbnMpIHtcbiAgICAgIGltYWdlUGlwZWxpbmVQcm9wcyA9IHtcbiAgICAgICAgLi4uaW1hZ2VQaXBlbGluZVByb3BzLFxuICAgICAgICBpbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIGltYWdlU2Nhbm5pbmdFbmFibGVkOiBwcm9wcy5lbmFibGVWdWxuU2NhbnMsXG4gICAgICAgICAgZWNyQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWU6IHByb3BzLnZ1bG5TY2Fuc1JlcG9OYW1lLFxuICAgICAgICAgICAgY29udGFpbmVyVGFnczogcHJvcHMudnVsblNjYW5zUmVwb1RhZ3MsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChkaXN0cmlidXRpb25BY2NvdW50SWRzLmxlbmd0aCA+IDAgJiYgZGlzdHJpYnV0aW9uUmVnaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkaXN0cmlidXRpb25zTGlzdDogaW1hZ2VidWlsZGVyLkNmbkRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24uRGlzdHJpYnV0aW9uUHJvcGVydHlbXSA9IFtdO1xuICAgICAgZGlzdHJpYnV0aW9uUmVnaW9ucy5mb3JFYWNoKGRpc3RyaWJ1dGlvblJlZ2lvbiA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3RyaWJ1dGlvbkNvbmZpZzogYW55ID0ge1xuICAgICAgICAgIHJlZ2lvbjogZGlzdHJpYnV0aW9uUmVnaW9uLFxuICAgICAgICAgIGFtaURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIC8vQ2FwaXRhbCBjYXNlIGhlcmUgYmVjYXVzZSBpdCdzIGFuIG9iamVjdCBvZiB0eXBlIGFueSwgYnV0IGNhcGl0YWwgY2FzZSBpcyB3aGF0IGlzIGV4cGVjdGVkIGluIENsb3VkRm9ybWF0aW9uXG4gICAgICAgICAgICAvL2h0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWltYWdlYnVpbGRlci1kaXN0cmlidXRpb25jb25maWd1cmF0aW9uLWFtaWRpc3RyaWJ1dGlvbmNvbmZpZ3VyYXRpb24uaHRtbFxuICAgICAgICAgICAgTmFtZTogYCR7aW1hZ2VSZWNpcGVOYW1lfS0ke2Rpc3RyaWJ1dGlvblJlZ2lvbn0te3tpbWFnZWJ1aWxkZXI6YnVpbGREYXRlfX1gLFxuICAgICAgICAgICAgRGVzY3JpcHRpb246IGBjb3B5IEFNSSAke2ltYWdlUmVjaXBlTmFtZX0gdG8gJHtkaXN0cmlidXRpb25SZWdpb259YCxcbiAgICAgICAgICAgIFRhcmdldEFjY291bnRJZHM6IGRpc3RyaWJ1dGlvbkFjY291bnRJZHMsXG4gICAgICAgICAgICBMYXVuY2hQZXJtaXNzaW9uQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICBVc2VySWRzOiBkaXN0cmlidXRpb25BY2NvdW50SWRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEttc0tleUlkOiBkaXN0cmlidXRpb25LZXlBbGlhcywgLy91c2luZyBkZWZhdWx0IEFXUy1tYW5hZ2VkIGtleSBpZiBvbmUgaXNuJ3QgZ2l2ZW4gaXMgcHJvaGliaXRlZFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGRpc3RyaWJ1dGlvbnNMaXN0LnB1c2goZGlzdHJpYnV0aW9uQ29uZmlnKTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgYW1pRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiA9IG5ldyBpbWFnZWJ1aWxkZXIuQ2ZuRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbih0aGlzLCAnYW1pRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbicsIHtcbiAgICAgICAgbmFtZTogYCR7aW1hZ2VSZWNpcGVOYW1lfS1kaXN0cmlidXRpb24tY29uZmlnLSR7aW1hZ2VSZWNpcGVWZXJzaW9uLnJlcGxhY2UoL1xcLi9nLCAnLScpfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQ3Jvc3MgYWNjb3VudCBkaXN0cmlidXRpb24gc2V0dGluZ3MgZm9yICR7aW1hZ2VSZWNpcGVOYW1lfWAsXG4gICAgICAgIGRpc3RyaWJ1dGlvbnM6IGRpc3RyaWJ1dGlvbnNMaXN0LFxuICAgICAgfSk7XG4gICAgICBpbWFnZVBpcGVsaW5lUHJvcHMgPSB7XG4gICAgICAgIC4uLmltYWdlUGlwZWxpbmVQcm9wcyxcbiAgICAgICAgZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkFybjogYW1pRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbi5hdHRyQXJuLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBpbWFnZUJ1aWxkUGlwZWxpbmUgPSBuZXcgaW1hZ2VidWlsZGVyLkNmbkltYWdlUGlwZWxpbmUodGhpcywgJ0ltYWdlUGlwZWxpbmUnLCBpbWFnZVBpcGVsaW5lUHJvcHMpO1xuICAgIHRoaXMuaW1hZ2VQaXBlbGluZUFybiA9IGltYWdlQnVpbGRQaXBlbGluZS5hdHRyQXJuO1xuXG4gICAgY29uc3Qgc3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbiA9IG5ldyBTdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uKHRoaXMsICdTdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uJyxcbiAgICAgIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdTdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uJyxcbiAgICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDEyKSxcbiAgICAgICAgaW5pdGlhbFBvbGljeTogW1xuICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgQWN0aW9ucy5zdGF0ZXMuU3RhcnRFeGVjdXRpb24sXG4gICAgICAgICAgICAgIEFjdGlvbnMuc3RhdGVzLkdldEV4ZWN1dGlvbkhpc3RvcnksXG4gICAgICAgICAgICAgIEFjdGlvbnMuc3RhdGVzLkxpc3RFeGVjdXRpb25zLFxuICAgICAgICAgICAgICBBY3Rpb25zLnN0YXRlcy5EZXNjcmliZUV4ZWN1dGlvbixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgQWN0aW9ucy5pbWFnZWJ1aWxkZXIuTGlzdEltYWdlUGlwZWxpbmVzLFxuICAgICAgICAgICAgICBBY3Rpb25zLmltYWdlYnVpbGRlci5TdGFydEltYWdlUGlwZWxpbmVFeGVjdXRpb24sXG4gICAgICAgICAgICAgIEFjdGlvbnMuaW1hZ2VidWlsZGVyLkdldEltYWdlLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAna21zOionLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIC8vIGFybjp7cGFydGl0aW9ufTp7c2VydmljZX06e3JlZ2lvbn06e2FjY291bnR9OntyZXNvdXJjZX17c2VwfXtyZXNvdXJjZS1uYW1lfS9cbiAgICAgICAgICAgIHJlc291cmNlczogW0Fybi5mb3JtYXQoe1xuICAgICAgICAgICAgICBzZXJ2aWNlOiAna21zJyxcbiAgICAgICAgICAgICAgcmVzb3VyY2U6ICdhbGlhcy9hd3MvZWJzJyxcbiAgICAgICAgICAgICAgYWNjb3VudDogJyonLFxuICAgICAgICAgICAgICByZWdpb246ICcqJyxcbiAgICAgICAgICAgICAgcGFydGl0aW9uOiAnYXdzJyxcbiAgICAgICAgICAgIH0pXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbkxvZ0dyb3VwID0gbmV3IExvZ0dyb3VwKHRoaXMsICdTdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uTG9nR3JvdXAnLCB7XG4gICAgICBsb2dHcm91cE5hbWU6IGAvYXdzL2xhbWJkYS8ke3N0YWNrTmFtZX0tU3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbmAsXG4gICAgICByZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX0RBWSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNmblN0YXJ0U3RhdGVNYWNoaW5lRnVuY3Rpb24gPSBzdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uLm5vZGUuZGVmYXVsdENoaWxkIGFzIGxhbWJkYS5DZm5GdW5jdGlvbjtcbiAgICBjZm5TdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ0xvZ2dpbmdDb25maWcnLCB7XG4gICAgICBMb2dHcm91cDogc3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbkxvZ0dyb3VwLmxvZ0dyb3VwTmFtZSxcbiAgICAgIExvZ0Zvcm1hdDogJ1RleHQnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXNGdW5jdGlvbiA9IG5ldyBDaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uKHRoaXMsICdDaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uJywge1xuICAgICAgZGVzY3JpcHRpb246ICdDaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uJyxcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMTIpLFxuICAgICAgaW5pdGlhbFBvbGljeTogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIEFjdGlvbnMuc3RhdGVzLkRlc2NyaWJlRXhlY3V0aW9uLFxuICAgICAgICAgICAgQWN0aW9ucy5zdGF0ZXMuTGlzdEV4ZWN1dGlvbnMsXG4gICAgICAgICAgICBBY3Rpb25zLnN0YXRlcy5HZXRFeGVjdXRpb25IaXN0b3J5LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgQWN0aW9ucy5pbWFnZWJ1aWxkZXIuTGlzdEltYWdlUGlwZWxpbmVzLFxuICAgICAgICAgICAgQWN0aW9ucy5pbWFnZWJ1aWxkZXIuU3RhcnRJbWFnZVBpcGVsaW5lRXhlY3V0aW9uLFxuICAgICAgICAgICAgQWN0aW9ucy5pbWFnZWJ1aWxkZXIuR2V0SW1hZ2UsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBBY3Rpb25zLmVjMi5Nb2RpZnlJbWFnZUF0dHJpYnV0ZSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICdrbXM6KicsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtBcm4uZm9ybWF0KHtcbiAgICAgICAgICAgIHNlcnZpY2U6ICdrbXMnLFxuICAgICAgICAgICAgcmVzb3VyY2U6ICdhbGlhcy9hd3MvZWJzJyxcbiAgICAgICAgICAgIGFjY291bnQ6ICcqJyxcbiAgICAgICAgICAgIHJlZ2lvbjogJyonLFxuICAgICAgICAgICAgcGFydGl0aW9uOiAnYXdzJyxcbiAgICAgICAgICB9KV0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNoZWNrU3RhdGVNYWNoaW5lRnVuY3Rpb25Mb2dHcm91cCA9IG5ldyBMb2dHcm91cCh0aGlzLCAnQ2hlY2tTdGF0ZU1hY2hpbmVGdW5jdGlvbkxvZ0dyb3VwJywge1xuICAgICAgbG9nR3JvdXBOYW1lOiBgL2F3cy9sYW1iZGEvJHtzdGFja05hbWV9LUNoZWNrU3RhdGVNYWNoaW5lU3RhdHVzRnVuY3Rpb25gLFxuICAgICAgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9EQVksXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICBjb25zdCBjZm5DaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uID0gY2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXNGdW5jdGlvbi5ub2RlLmRlZmF1bHRDaGlsZCBhcyBsYW1iZGEuQ2ZuRnVuY3Rpb247XG4gICAgY2ZuQ2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXNGdW5jdGlvbi5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdMb2dnaW5nQ29uZmlnJywge1xuICAgICAgTG9nR3JvdXA6IGNoZWNrU3RhdGVNYWNoaW5lRnVuY3Rpb25Mb2dHcm91cC5sb2dHcm91cE5hbWUsXG4gICAgICBMb2dGb3JtYXQ6ICdUZXh0JyxcbiAgICB9KTtcblxuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgUHJvdmlkZXIodGhpcywgJ1Jlc291cmNlUHJvdmlkZXInLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogc3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbixcbiAgICAgIGlzQ29tcGxldGVIYW5kbGVyOiBjaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uLFxuICAgICAgdG90YWxUaW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgICAgIHF1ZXJ5SW50ZXJ2YWw6IER1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGF0ZU1hY2hpbmVSb2xlID0gbmV3IFJvbGUodGhpcywgJ1N0YXRlTWFjaGluZVJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnc3RhdGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFSb2xlJyksXG4gICAgICBdLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgU3RhdGVNYWNoaW5lUG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgIEFjdGlvbnMueHJheS5QdXRUcmFjZVNlZ21lbnRzLFxuICAgICAgICAgICAgICAgIEFjdGlvbnMueHJheS5QdXRUZWxlbWV0cnlSZWNvcmRzLFxuICAgICAgICAgICAgICAgIEFjdGlvbnMueHJheS5HZXRTYW1wbGluZ1J1bGVzLFxuICAgICAgICAgICAgICAgIEFjdGlvbnMueHJheS5HZXRTYW1wbGluZ1RhcmdldHMsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ2ltYWdlYnVpbGRlcjoqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6aW1hZ2VidWlsZGVyOiR7cmVnaW9uID8/ICcqJ306JHthY2NvdW50ID8/ICcqJ306aW1hZ2UtcGlwZWxpbmUvJHtwaXBlbGluZUJhc2VOYW1lLnRvTG93ZXJDYXNlKCl9LSpgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICBBY3Rpb25zLmltYWdlYnVpbGRlci5HZXRJbWFnZSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YXRlTWFjaGluZSA9IG5ldyBTdGF0ZU1hY2hpbmUodGhpcywgJ1N0YXRlTWFjaGluZScsIHtcbiAgICAgIGRlZmluaXRpb246IEpTT04ucGFyc2UoXG4gICAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oXG4gICAgICAgICAgX19kaXJuYW1lLCAnLi4nLCAnU3RhdGVNYWNoaW5lRmlsZXMnLCAnSW1hZ2VCdWlsZGluZ1N0YXRlTWFjaGluZS5qc29uJyksICd1dGY4JykudG9TdHJpbmcoKSksXG4gICAgICByb2xlOiBzdGF0ZU1hY2hpbmVSb2xlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZWZmZWN0aXZlUmVtb3ZhbFBvbGljeSA9IHByb3BzLmRlYnVnSW1hZ2VQaXBlbGluZSA9PT0gdHJ1ZSA/IFJlbW92YWxQb2xpY3kuUkVUQUlOIDogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZO1xuXG4gICAgY29uc3QgY29tcG9uZW50c0hhc2ggPSB0aGlzLnN0cmluZ1RvTUQ1KEpTT04uc3RyaW5naWZ5KHByb3BzLmNvbXBvbmVudHMpKTtcbiAgICBjb25zdCBpbWFnZVBpcGVsaW5lID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsICdDdXN0b21SZXNvdXJjZScsXG4gICAgICB7XG4gICAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgSW1hZ2VQaXBlbGluZUFybjogaW1hZ2VCdWlsZFBpcGVsaW5lLmF0dHJBcm4sXG4gICAgICAgICAgU3RhdGVNYWNoaW5lQXJuOiBzdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuLFxuICAgICAgICAgIFZlcnNpb246IHByb3BzLmltYWdlUmVjaXBlVmVyc2lvbiA/PyAnMC4wLjEnLFxuICAgICAgICAgIENvbXBvbmVudHNIYXNoOiBjb21wb25lbnRzSGFzaCxcbiAgICAgICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGAke3N0YWNrTmFtZX0tSW1hZ2VQaXBlbGluZS0ke2ltYWdlUmVjaXBlVmVyc2lvbi5yZXBsYWNlKC9cXC4vZywgJy0nKX1gLFxuICAgICAgICAgIEFtaUttc0lkOiBkaXN0cmlidXRpb25LZXlBbGlhcyxcbiAgICAgICAgICBTaGFyZWRBY2NvdW50SWRzOiBkaXN0cmlidXRpb25BY2NvdW50SWRzLmpvaW4oJywnKSxcbiAgICAgICAgICBEZWJ1Z0ltYWdlUGlwZWxpbmU6IHByb3BzLmRlYnVnSW1hZ2VQaXBlbGluZSA9PT0gdHJ1ZSA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IGVmZmVjdGl2ZVJlbW92YWxQb2xpY3ksXG4gICAgICB9KTtcblxuICAgIHRoaXMuaW1hZ2VJZCA9IGltYWdlUGlwZWxpbmUuZ2V0QXR0U3RyaW5nKCdBbWlJZCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpbmdUb01ENShpbnB1dFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ3J5cHRvSlMuTUQ1KGlucHV0U3RyaW5nKS50b1N0cmluZygpO1xuICB9XG5cbn1cblxuIl19
@@ -23,5 +23,5 @@ class CheckStateMachineStatusFunction extends lambda.Function {
23
23
  }
24
24
  exports.CheckStateMachineStatusFunction = CheckStateMachineStatusFunction;
25
25
  _a = JSII_RTTI_SYMBOL_1;
26
- CheckStateMachineStatusFunction[_a] = { fqn: "@jjrawlins/cdk-ami-builder.CheckStateMachineStatusFunction", version: "0.0.173" };
26
+ CheckStateMachineStatusFunction[_a] = { fqn: "@jjrawlins/cdk-ami-builder.CheckStateMachineStatusFunction", version: "0.0.175" };
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXMtZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTGFtYmRhcy9DaGVja1N0YXRlTWFjaGluZVN0YXR1cy9DaGVja1N0YXRlTWFjaGluZVN0YXR1cy1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZFQUE2RTtBQUM3RSw2QkFBNkI7QUFDN0IsaURBQWlEO0FBU2pEOztHQUVHO0FBQ0gsTUFBYSwrQkFBZ0MsU0FBUSxNQUFNLENBQUMsUUFBUTtJQUNsRSxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRDO1FBQ3BGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLHVFQUF1RTtZQUNwRixHQUFHLEtBQUs7WUFDUixPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUN0RSxPQUFPLEVBQUUsZUFBZTtZQUN4QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0ZBQWdGLENBQUMsQ0FBQztTQUNwSSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7O0FBVkgsMEVBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIENoZWNrU3RhdGVNYWNoaW5lU3RhdHVzRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtcbn1cblxuLyoqXG4gKiBBbiBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGV4ZWN1dGVzIHNyYy9MYW1iZGFzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzLlxuICovXG5leHBvcnQgY2xhc3MgQ2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXNGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQ2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXNGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ3NyYy9MYW1iZGFzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzLmxhbWJkYS50cycsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJ1bnRpbWU6IG5ldyBsYW1iZGEuUnVudGltZSgnbm9kZWpzMjIueCcsIGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUyksXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLy4uL2Fzc2V0cy9MYW1iZGFzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzLmxhbWJkYScpKSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZEVudmlyb25tZW50KCdBV1NfTk9ERUpTX0NPTk5FQ1RJT05fUkVVU0VfRU5BQkxFRCcsICcxJywgeyByZW1vdmVJbkVkZ2U6IHRydWUgfSk7XG4gIH1cbn0iXX0=
@@ -23,5 +23,5 @@ class StartStateMachineFunction extends lambda.Function {
23
23
  }
24
24
  exports.StartStateMachineFunction = StartStateMachineFunction;
25
25
  _a = JSII_RTTI_SYMBOL_1;
26
- StartStateMachineFunction[_a] = { fqn: "@jjrawlins/cdk-ami-builder.StartStateMachineFunction", version: "0.0.173" };
26
+ StartStateMachineFunction[_a] = { fqn: "@jjrawlins/cdk-ami-builder.StartStateMachineFunction", version: "0.0.175" };
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhcnRTdGF0ZU1hY2hpbmUtZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTGFtYmRhcy9TdGFydFN0YXRlTWFjaGluZS9TdGFydFN0YXRlTWFjaGluZS1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZFQUE2RTtBQUM3RSw2QkFBNkI7QUFDN0IsaURBQWlEO0FBU2pEOztHQUVHO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSxNQUFNLENBQUMsUUFBUTtJQUM1RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNDO1FBQzlFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLDJEQUEyRDtZQUN4RSxHQUFHLEtBQUs7WUFDUixPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUN0RSxPQUFPLEVBQUUsZUFBZTtZQUN4QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0VBQW9FLENBQUMsQ0FBQztTQUN4SCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7O0FBVkgsOERBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIFN0YXJ0U3RhdGVNYWNoaW5lRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtcbn1cblxuLyoqXG4gKiBBbiBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGV4ZWN1dGVzIHNyYy9MYW1iZGFzL1N0YXJ0U3RhdGVNYWNoaW5lL1N0YXJ0U3RhdGVNYWNoaW5lLlxuICovXG5leHBvcnQgY2xhc3MgU3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ3NyYy9MYW1iZGFzL1N0YXJ0U3RhdGVNYWNoaW5lL1N0YXJ0U3RhdGVNYWNoaW5lLmxhbWJkYS50cycsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJ1bnRpbWU6IG5ldyBsYW1iZGEuUnVudGltZSgnbm9kZWpzMjIueCcsIGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUyksXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLy4uL2Fzc2V0cy9MYW1iZGFzL1N0YXJ0U3RhdGVNYWNoaW5lL1N0YXJ0U3RhdGVNYWNoaW5lLmxhbWJkYScpKSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZEVudmlyb25tZW50KCdBV1NfTk9ERUpTX0NPTk5FQ1RJT05fUkVVU0VfRU5BQkxFRCcsICcxJywgeyByZW1vdmVJbkVkZ2U6IHRydWUgfSk7XG4gIH1cbn0iXX0=
@@ -81,10 +81,10 @@ class InvokeStoreMulti extends InvokeStoreBase {
81
81
  exports.InvokeStore = void 0;
82
82
  (function (InvokeStore) {
83
83
  let instance = null;
84
- async function getInstanceAsync() {
84
+ async function getInstanceAsync(forceInvokeStoreMulti) {
85
85
  if (!instance) {
86
86
  instance = (async () => {
87
- const isMulti = "AWS_LAMBDA_MAX_CONCURRENCY" in process.env;
87
+ const isMulti = forceInvokeStoreMulti === true || "AWS_LAMBDA_MAX_CONCURRENCY" in process.env;
88
88
  const newInstance = isMulti
89
89
  ? await InvokeStoreMulti.create()
90
90
  : new InvokeStoreSingle();
@@ -79,10 +79,10 @@ class InvokeStoreMulti extends InvokeStoreBase {
79
79
  var InvokeStore;
80
80
  (function (InvokeStore) {
81
81
  let instance = null;
82
- async function getInstanceAsync() {
82
+ async function getInstanceAsync(forceInvokeStoreMulti) {
83
83
  if (!instance) {
84
84
  instance = (async () => {
85
- const isMulti = "AWS_LAMBDA_MAX_CONCURRENCY" in process.env;
85
+ const isMulti = forceInvokeStoreMulti === true || "AWS_LAMBDA_MAX_CONCURRENCY" in process.env;
86
86
  const newInstance = isMulti
87
87
  ? await InvokeStoreMulti.create()
88
88
  : new InvokeStoreSingle();
@@ -41,7 +41,7 @@ export declare abstract class InvokeStoreBase {
41
41
  * @public
42
42
  */
43
43
  export declare namespace InvokeStore {
44
- function getInstanceAsync(): Promise<InvokeStoreBase>;
44
+ function getInstanceAsync(forceInvokeStoreMulti?: boolean): Promise<InvokeStoreBase>;
45
45
  const _testing: {
46
46
  reset: () => void;
47
47
  } | undefined;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws/lambda-invoke-store",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Invoke scoped data storage for AWS Lambda Node.js Runtime Environment",
5
5
  "homepage": "https://github.com/awslabs/aws-lambda-invoke-store",
6
6
  "main": "./dist-cjs/invoke-store.js",
@@ -11,8 +11,9 @@ AWS SDK for JavaScript EC2 Client for Node.js, Browser and React Native.
11
11
  see the <a href="https://docs.aws.amazon.com/ec2/latest/devguide">Amazon EC2 Developer Guide</a>.</p>
12
12
 
13
13
  ## Installing
14
- To install this package, simply type add or install @aws-sdk/client-ec2
15
- using your favorite package manager:
14
+
15
+ To install this package, use the CLI of your favorite package manager:
16
+
16
17
  - `npm install @aws-sdk/client-ec2`
17
18
  - `yarn add @aws-sdk/client-ec2`
18
19
  - `pnpm add @aws-sdk/client-ec2`
@@ -37,15 +38,15 @@ import { EC2Client, ListImagesInRecycleBinCommand } from "@aws-sdk/client-ec2";
37
38
 
38
39
  ### Usage
39
40
 
40
- To send a request, you:
41
+ To send a request:
41
42
 
42
- - Initiate client with configuration (e.g. credentials, region).
43
- - Initiate command with input parameters.
44
- - Call `send` operation on client with command object as input.
45
- - If you are using a custom http handler, you may call `destroy()` to close open connections.
43
+ - Instantiate a client with configuration (e.g. credentials, region).
44
+ - See [docs/CLIENTS](https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md) for configuration details.
45
+ - See [@aws-sdk/config](https://github.com/aws/aws-sdk-js-v3/blob/main/packages/config/README.md) for additional options.
46
+ - Instantiate a command with input parameters.
47
+ - Call the `send` operation on the client, providing the command object as input.
46
48
 
47
49
  ```js
48
- // a client can be shared by different commands.
49
50
  const client = new EC2Client({ region: "REGION" });
50
51
 
51
52
  const params = { /** input parameters */ };
@@ -54,7 +55,7 @@ const command = new ListImagesInRecycleBinCommand(params);
54
55
 
55
56
  #### Async/await
56
57
 
57
- We recommend using [await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await)
58
+ We recommend using the [await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await)
58
59
  operator to wait for the promise returned by send operation as follows:
59
60
 
60
61
  ```js
@@ -69,26 +70,9 @@ try {
69
70
  }
70
71
  ```
71
72
 
72
- Async-await is clean, concise, intuitive, easy to debug and has better error handling
73
- as compared to using Promise chains or callbacks.
74
-
75
73
  #### Promises
76
74
 
77
- You can also use [Promise chaining](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises#chaining)
78
- to execute send operation.
79
-
80
- ```js
81
- client.send(command).then(
82
- (data) => {
83
- // process data.
84
- },
85
- (error) => {
86
- // error handling.
87
- }
88
- );
89
- ```
90
-
91
- Promises can also be called using `.catch()` and `.finally()` as follows:
75
+ You can also use [Promise chaining](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises#chaining).
92
76
 
93
77
  ```js
94
78
  client
@@ -104,27 +88,21 @@ client
104
88
  });
105
89
  ```
106
90
 
107
- #### Callbacks
108
-
109
- We do not recommend using callbacks because of [callback hell](http://callbackhell.com/),
110
- but they are supported by the send operation.
91
+ #### Aggregated client
111
92
 
112
- ```js
113
- // callbacks.
114
- client.send(command, (err, data) => {
115
- // process err and data.
116
- });
117
- ```
93
+ The aggregated client class is exported from the same package, but without the "Client" suffix.
118
94
 
119
- #### v2 compatible style
95
+ `EC2` extends `EC2Client` and additionally supports all operations, waiters, and paginators as methods.
96
+ This style may be familiar to you from the AWS SDK for JavaScript v2.
120
97
 
121
- The client can also send requests using v2 compatible style.
122
- However, it results in a bigger bundle size and may be dropped in next major version. More details in the blog post
123
- on [modular packages in AWS SDK for JavaScript](https://aws.amazon.com/blogs/developer/modular-packages-in-aws-sdk-for-javascript/)
98
+ If you are bundling the AWS SDK, we recommend using only the bare-bones client (`EC2Client`).
99
+ More details are in the blog post on
100
+ [modular packages in AWS SDK for JavaScript](https://aws.amazon.com/blogs/developer/modular-packages-in-aws-sdk-for-javascript/).
124
101
 
125
102
  ```ts
126
- import * as AWS from "@aws-sdk/client-ec2";
127
- const client = new AWS.EC2({ region: "REGION" });
103
+ import { EC2 } from "@aws-sdk/client-ec2";
104
+
105
+ const client = new EC2({ region: "REGION" });
128
106
 
129
107
  // async/await.
130
108
  try {
@@ -144,7 +122,7 @@ client
144
122
  // error handling.
145
123
  });
146
124
 
147
- // callbacks.
125
+ // callbacks (not recommended).
148
126
  client.listImagesInRecycleBin(params, (err, data) => {
149
127
  // process err and data.
150
128
  });
@@ -172,12 +150,14 @@ try {
172
150
  }
173
151
  ```
174
152
 
153
+ See also [docs/ERROR_HANDLING](https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/ERROR_HANDLING.md).
154
+
175
155
  ## Getting Help
176
156
 
177
157
  Please use these community resources for getting help.
178
- We use the GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them.
158
+ We use GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them.
179
159
 
180
- - Visit [Developer Guide](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/welcome.html)
160
+ - Visit the [Developer Guide](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/welcome.html)
181
161
  or [API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index.html).
182
162
  - Check out the blog posts tagged with [`aws-sdk-js`](https://aws.amazon.com/blogs/developer/tag/aws-sdk-js/)
183
163
  on AWS Developer Blog.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-ec2",
3
3
  "description": "AWS SDK for JavaScript Ec2 Client for Node.js, Browser and React Native",
4
- "version": "3.1007.0",
4
+ "version": "3.1009.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-ec2",
@@ -25,48 +25,48 @@
25
25
  "dependencies": {
26
26
  "@aws-crypto/sha256-browser": "5.2.0",
27
27
  "@aws-crypto/sha256-js": "5.2.0",
28
- "@aws-sdk/core": "^3.973.19",
29
- "@aws-sdk/credential-provider-node": "^3.972.19",
30
- "@aws-sdk/middleware-host-header": "^3.972.7",
31
- "@aws-sdk/middleware-logger": "^3.972.7",
32
- "@aws-sdk/middleware-recursion-detection": "^3.972.7",
33
- "@aws-sdk/middleware-sdk-ec2": "^3.972.14",
34
- "@aws-sdk/middleware-user-agent": "^3.972.20",
35
- "@aws-sdk/region-config-resolver": "^3.972.7",
36
- "@aws-sdk/types": "^3.973.5",
37
- "@aws-sdk/util-endpoints": "^3.996.4",
38
- "@aws-sdk/util-user-agent-browser": "^3.972.7",
39
- "@aws-sdk/util-user-agent-node": "^3.973.5",
40
- "@smithy/config-resolver": "^4.4.10",
41
- "@smithy/core": "^3.23.9",
42
- "@smithy/fetch-http-handler": "^5.3.13",
43
- "@smithy/hash-node": "^4.2.11",
44
- "@smithy/invalid-dependency": "^4.2.11",
45
- "@smithy/middleware-content-length": "^4.2.11",
46
- "@smithy/middleware-endpoint": "^4.4.23",
47
- "@smithy/middleware-retry": "^4.4.40",
48
- "@smithy/middleware-serde": "^4.2.12",
49
- "@smithy/middleware-stack": "^4.2.11",
50
- "@smithy/node-config-provider": "^4.3.11",
51
- "@smithy/node-http-handler": "^4.4.14",
52
- "@smithy/protocol-http": "^5.3.11",
53
- "@smithy/smithy-client": "^4.12.3",
54
- "@smithy/types": "^4.13.0",
55
- "@smithy/url-parser": "^4.2.11",
28
+ "@aws-sdk/core": "^3.973.20",
29
+ "@aws-sdk/credential-provider-node": "^3.972.21",
30
+ "@aws-sdk/middleware-host-header": "^3.972.8",
31
+ "@aws-sdk/middleware-logger": "^3.972.8",
32
+ "@aws-sdk/middleware-recursion-detection": "^3.972.8",
33
+ "@aws-sdk/middleware-sdk-ec2": "^3.972.15",
34
+ "@aws-sdk/middleware-user-agent": "^3.972.21",
35
+ "@aws-sdk/region-config-resolver": "^3.972.8",
36
+ "@aws-sdk/types": "^3.973.6",
37
+ "@aws-sdk/util-endpoints": "^3.996.5",
38
+ "@aws-sdk/util-user-agent-browser": "^3.972.8",
39
+ "@aws-sdk/util-user-agent-node": "^3.973.7",
40
+ "@smithy/config-resolver": "^4.4.11",
41
+ "@smithy/core": "^3.23.11",
42
+ "@smithy/fetch-http-handler": "^5.3.15",
43
+ "@smithy/hash-node": "^4.2.12",
44
+ "@smithy/invalid-dependency": "^4.2.12",
45
+ "@smithy/middleware-content-length": "^4.2.12",
46
+ "@smithy/middleware-endpoint": "^4.4.25",
47
+ "@smithy/middleware-retry": "^4.4.42",
48
+ "@smithy/middleware-serde": "^4.2.14",
49
+ "@smithy/middleware-stack": "^4.2.12",
50
+ "@smithy/node-config-provider": "^4.3.12",
51
+ "@smithy/node-http-handler": "^4.4.16",
52
+ "@smithy/protocol-http": "^5.3.12",
53
+ "@smithy/smithy-client": "^4.12.5",
54
+ "@smithy/types": "^4.13.1",
55
+ "@smithy/url-parser": "^4.2.12",
56
56
  "@smithy/util-base64": "^4.3.2",
57
57
  "@smithy/util-body-length-browser": "^4.2.2",
58
58
  "@smithy/util-body-length-node": "^4.2.3",
59
- "@smithy/util-defaults-mode-browser": "^4.3.39",
60
- "@smithy/util-defaults-mode-node": "^4.2.42",
61
- "@smithy/util-endpoints": "^3.3.2",
62
- "@smithy/util-middleware": "^4.2.11",
63
- "@smithy/util-retry": "^4.2.11",
59
+ "@smithy/util-defaults-mode-browser": "^4.3.41",
60
+ "@smithy/util-defaults-mode-node": "^4.2.44",
61
+ "@smithy/util-endpoints": "^3.3.3",
62
+ "@smithy/util-middleware": "^4.2.12",
63
+ "@smithy/util-retry": "^4.2.12",
64
64
  "@smithy/util-utf8": "^4.2.2",
65
- "@smithy/util-waiter": "^4.2.12",
65
+ "@smithy/util-waiter": "^4.2.13",
66
66
  "tslib": "^2.6.2"
67
67
  },
68
68
  "devDependencies": {
69
- "@smithy/snapshot-testing": "^2.0.0",
69
+ "@smithy/snapshot-testing": "^2.0.2",
70
70
  "@tsconfig/node20": "20.1.8",
71
71
  "@types/node": "^20.14.8",
72
72
  "concurrently": "7.0.0",
@@ -9,8 +9,9 @@ AWS SDK for JavaScript ECS Client for Node.js, Browser and React Native.
9
9
  <fullname>Amazon Elastic Container Service</fullname> <p>Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service. It makes it easy to run, stop, and manage Docker containers. You can host your cluster on a serverless infrastructure that's managed by Amazon ECS by launching your services or tasks on Fargate. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) or External (on-premises) instances that you manage.</p> <p>Amazon ECS makes it easy to launch and stop container-based applications with simple API calls. This makes it easy to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.</p> <p>You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. With Amazon ECS, you don't need to operate your own cluster management and configuration management systems. You also don't need to worry about scaling your management infrastructure. </p>
10
10
 
11
11
  ## Installing
12
- To install this package, simply type add or install @aws-sdk/client-ecs
13
- using your favorite package manager:
12
+
13
+ To install this package, use the CLI of your favorite package manager:
14
+
14
15
  - `npm install @aws-sdk/client-ecs`
15
16
  - `yarn add @aws-sdk/client-ecs`
16
17
  - `pnpm add @aws-sdk/client-ecs`
@@ -35,15 +36,15 @@ import { ECSClient, ListTasksCommand } from "@aws-sdk/client-ecs";
35
36
 
36
37
  ### Usage
37
38
 
38
- To send a request, you:
39
+ To send a request:
39
40
 
40
- - Initiate client with configuration (e.g. credentials, region).
41
- - Initiate command with input parameters.
42
- - Call `send` operation on client with command object as input.
43
- - If you are using a custom http handler, you may call `destroy()` to close open connections.
41
+ - Instantiate a client with configuration (e.g. credentials, region).
42
+ - See [docs/CLIENTS](https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md) for configuration details.
43
+ - See [@aws-sdk/config](https://github.com/aws/aws-sdk-js-v3/blob/main/packages/config/README.md) for additional options.
44
+ - Instantiate a command with input parameters.
45
+ - Call the `send` operation on the client, providing the command object as input.
44
46
 
45
47
  ```js
46
- // a client can be shared by different commands.
47
48
  const client = new ECSClient({ region: "REGION" });
48
49
 
49
50
  const params = { /** input parameters */ };
@@ -52,7 +53,7 @@ const command = new ListTasksCommand(params);
52
53
 
53
54
  #### Async/await
54
55
 
55
- We recommend using [await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await)
56
+ We recommend using the [await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await)
56
57
  operator to wait for the promise returned by send operation as follows:
57
58
 
58
59
  ```js
@@ -67,26 +68,9 @@ try {
67
68
  }
68
69
  ```
69
70
 
70
- Async-await is clean, concise, intuitive, easy to debug and has better error handling
71
- as compared to using Promise chains or callbacks.
72
-
73
71
  #### Promises
74
72
 
75
- You can also use [Promise chaining](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises#chaining)
76
- to execute send operation.
77
-
78
- ```js
79
- client.send(command).then(
80
- (data) => {
81
- // process data.
82
- },
83
- (error) => {
84
- // error handling.
85
- }
86
- );
87
- ```
88
-
89
- Promises can also be called using `.catch()` and `.finally()` as follows:
73
+ You can also use [Promise chaining](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises#chaining).
90
74
 
91
75
  ```js
92
76
  client
@@ -102,27 +86,21 @@ client
102
86
  });
103
87
  ```
104
88
 
105
- #### Callbacks
106
-
107
- We do not recommend using callbacks because of [callback hell](http://callbackhell.com/),
108
- but they are supported by the send operation.
89
+ #### Aggregated client
109
90
 
110
- ```js
111
- // callbacks.
112
- client.send(command, (err, data) => {
113
- // process err and data.
114
- });
115
- ```
91
+ The aggregated client class is exported from the same package, but without the "Client" suffix.
116
92
 
117
- #### v2 compatible style
93
+ `ECS` extends `ECSClient` and additionally supports all operations, waiters, and paginators as methods.
94
+ This style may be familiar to you from the AWS SDK for JavaScript v2.
118
95
 
119
- The client can also send requests using v2 compatible style.
120
- However, it results in a bigger bundle size and may be dropped in next major version. More details in the blog post
121
- on [modular packages in AWS SDK for JavaScript](https://aws.amazon.com/blogs/developer/modular-packages-in-aws-sdk-for-javascript/)
96
+ If you are bundling the AWS SDK, we recommend using only the bare-bones client (`ECSClient`).
97
+ More details are in the blog post on
98
+ [modular packages in AWS SDK for JavaScript](https://aws.amazon.com/blogs/developer/modular-packages-in-aws-sdk-for-javascript/).
122
99
 
123
100
  ```ts
124
- import * as AWS from "@aws-sdk/client-ecs";
125
- const client = new AWS.ECS({ region: "REGION" });
101
+ import { ECS } from "@aws-sdk/client-ecs";
102
+
103
+ const client = new ECS({ region: "REGION" });
126
104
 
127
105
  // async/await.
128
106
  try {
@@ -142,7 +120,7 @@ client
142
120
  // error handling.
143
121
  });
144
122
 
145
- // callbacks.
123
+ // callbacks (not recommended).
146
124
  client.listTasks(params, (err, data) => {
147
125
  // process err and data.
148
126
  });
@@ -170,12 +148,14 @@ try {
170
148
  }
171
149
  ```
172
150
 
151
+ See also [docs/ERROR_HANDLING](https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/ERROR_HANDLING.md).
152
+
173
153
  ## Getting Help
174
154
 
175
155
  Please use these community resources for getting help.
176
- We use the GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them.
156
+ We use GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them.
177
157
 
178
- - Visit [Developer Guide](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/welcome.html)
158
+ - Visit the [Developer Guide](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/welcome.html)
179
159
  or [API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index.html).
180
160
  - Check out the blog posts tagged with [`aws-sdk-js`](https://aws.amazon.com/blogs/developer/tag/aws-sdk-js/)
181
161
  on AWS Developer Blog.