@mavogel/awscdk-rootmail 0.0.320 → 0.0.321

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 (735) hide show
  1. package/.jsii +3 -3
  2. package/lib/rootmail.js +1 -1
  3. package/lib/ses-receive.js +1 -1
  4. package/node_modules/@aws-sdk/client-cloudwatch-logs/package.json +17 -17
  5. package/node_modules/@aws-sdk/client-route-53/dist-cjs/index.js +3 -0
  6. package/node_modules/@aws-sdk/client-route-53/dist-es/models/models_0.js +3 -0
  7. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/AssociateVPCWithHostedZoneCommand.d.ts +1 -1
  8. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/ChangeResourceRecordSetsCommand.d.ts +1 -1
  9. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/CreateHealthCheckCommand.d.ts +2 -2
  10. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/CreateHostedZoneCommand.d.ts +2 -2
  11. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/CreateVPCAssociationAuthorizationCommand.d.ts +2 -2
  12. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/DeleteVPCAssociationAuthorizationCommand.d.ts +1 -1
  13. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/DisassociateVPCFromHostedZoneCommand.d.ts +1 -1
  14. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/GetHealthCheckCommand.d.ts +1 -1
  15. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/GetHostedZoneCommand.d.ts +1 -1
  16. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/ListHealthChecksCommand.d.ts +1 -1
  17. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/ListHostedZonesByVPCCommand.d.ts +1 -1
  18. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/ListResourceRecordSetsCommand.d.ts +1 -1
  19. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/ListVPCAssociationAuthorizationsCommand.d.ts +1 -1
  20. package/node_modules/@aws-sdk/client-route-53/dist-types/commands/UpdateHealthCheckCommand.d.ts +2 -2
  21. package/node_modules/@aws-sdk/client-route-53/dist-types/models/models_0.d.ts +7 -4
  22. package/node_modules/@aws-sdk/client-route-53/dist-types/ts3.4/models/models_0.d.ts +3 -0
  23. package/node_modules/@aws-sdk/client-route-53/package.json +19 -19
  24. package/node_modules/@aws-sdk/client-s3/dist-types/models/models_1.d.ts +1 -1
  25. package/node_modules/@aws-sdk/client-s3/package.json +32 -32
  26. package/node_modules/@aws-sdk/client-ses/package.json +17 -17
  27. package/node_modules/@aws-sdk/client-ssm/package.json +17 -17
  28. package/node_modules/@aws-sdk/client-sso/package.json +16 -16
  29. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +366 -226
  30. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +95 -0
  31. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.js +39 -0
  32. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/common.js +2 -1
  33. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +1 -0
  34. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_0Protocol.js +2 -1
  35. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_1Protocol.js +2 -1
  36. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +19 -29
  37. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +10 -54
  38. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +13 -34
  39. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +11 -62
  40. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +3 -3
  41. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ProtocolLib.d.ts +57 -0
  42. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.d.ts +23 -0
  43. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +1 -0
  44. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +2 -1
  45. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +2 -1
  46. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +6 -3
  47. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -1
  48. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/AwsQueryProtocol.d.ts +2 -2
  49. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +1 -0
  50. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +39 -0
  51. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.d.ts +33 -0
  52. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +1 -0
  53. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +2 -0
  54. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +2 -0
  55. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +5 -1
  56. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +1 -0
  57. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsQueryProtocol.d.ts +2 -1
  58. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +1 -0
  59. package/node_modules/@aws-sdk/core/package.json +6 -6
  60. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  61. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js +3 -1
  62. package/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js +3 -1
  63. package/node_modules/@aws-sdk/credential-provider-http/package.json +3 -3
  64. package/node_modules/@aws-sdk/credential-provider-ini/package.json +10 -10
  65. package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +1 -1
  66. package/node_modules/@aws-sdk/credential-provider-node/dist-es/defaultProvider.js +3 -1
  67. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  68. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  69. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  70. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  71. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +2 -2
  72. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +3 -3
  73. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +6 -6
  74. package/node_modules/@aws-sdk/middleware-host-header/package.json +3 -3
  75. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +3 -3
  76. package/node_modules/@aws-sdk/middleware-logger/dist-types/loggerMiddleware.d.ts +1 -1
  77. package/node_modules/@aws-sdk/middleware-logger/package.json +3 -3
  78. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +3 -3
  79. package/node_modules/@aws-sdk/middleware-sdk-route53/package.json +3 -3
  80. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +13 -9
  81. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-middleware.js +15 -10
  82. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +9 -9
  83. package/node_modules/@aws-sdk/middleware-ssec/package.json +3 -3
  84. package/node_modules/@aws-sdk/middleware-user-agent/package.json +6 -6
  85. package/node_modules/@aws-sdk/nested-clients/package.json +16 -16
  86. package/node_modules/@aws-sdk/region-config-resolver/package.json +1 -1
  87. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +4 -4
  88. package/node_modules/@aws-sdk/token-providers/package.json +5 -5
  89. package/node_modules/@aws-sdk/util-arn-parser/package.json +1 -1
  90. package/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js +36 -33
  91. package/node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/aws/partitions.json +36 -33
  92. package/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partitions.json +36 -33
  93. package/node_modules/@aws-sdk/util-endpoints/package.json +3 -3
  94. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +1 -1
  95. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  96. package/node_modules/@aws-sdk/xml-builder/package.json +1 -1
  97. package/node_modules/@smithy/config-resolver/dist-cjs/index.js +15 -15
  98. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseDualstackEndpointConfigOptions.d.ts +1 -1
  99. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseFipsEndpointConfigOptions.d.ts +1 -1
  100. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/resolveCustomEndpointsConfig.d.ts +2 -2
  101. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/resolveEndpointsConfig.d.ts +1 -1
  102. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/utils/getEndpointFromRegion.d.ts +1 -1
  103. package/node_modules/@smithy/config-resolver/dist-types/regionConfig/config.d.ts +1 -1
  104. package/node_modules/@smithy/config-resolver/dist-types/regionConfig/resolveRegionConfig.d.ts +1 -1
  105. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/EndpointVariant.d.ts +1 -1
  106. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/PartitionHash.d.ts +1 -1
  107. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/RegionHash.d.ts +1 -1
  108. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/getHostnameFromVariants.d.ts +1 -1
  109. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/getRegionInfo.d.ts +3 -3
  110. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/getResolvedPartition.d.ts +1 -1
  111. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/LICENSE +201 -0
  112. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/README.md +4 -0
  113. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-cjs/booleanSelector.js +1 -0
  114. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-cjs/index.js +60 -0
  115. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-cjs/numberSelector.js +1 -0
  116. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-cjs/types.js +1 -0
  117. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-es/booleanSelector.js +9 -0
  118. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-es/index.js +3 -0
  119. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-es/numberSelector.js +9 -0
  120. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-es/types.js +5 -0
  121. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-types/booleanSelector.d.ts +10 -0
  122. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-types/index.d.ts +3 -0
  123. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-types/numberSelector.d.ts +9 -0
  124. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-types/ts3.4/booleanSelector.d.ts +10 -0
  125. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-types/ts3.4/index.d.ts +3 -0
  126. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-types/ts3.4/numberSelector.d.ts +9 -0
  127. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-types/ts3.4/types.d.ts +4 -0
  128. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/dist-types/types.d.ts +4 -0
  129. package/node_modules/@smithy/config-resolver/node_modules/@smithy/util-config-provider/package.json +63 -0
  130. package/node_modules/@smithy/config-resolver/package.json +6 -5
  131. package/node_modules/@smithy/core/dist-cjs/index.js +10 -11
  132. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +47 -18
  133. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +261 -0
  134. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +137 -42
  135. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +28 -3
  136. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +5 -5
  137. package/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js +0 -1
  138. package/node_modules/@smithy/core/dist-es/middleware-http-signing/httpSigningMiddleware.js +0 -1
  139. package/node_modules/@smithy/core/dist-es/submodules/cbor/SmithyRpcV2CborProtocol.js +36 -15
  140. package/node_modules/@smithy/core/dist-es/submodules/cbor/byte-printer.js +35 -1
  141. package/node_modules/@smithy/core/dist-es/submodules/cbor/parseCborBody.js +1 -1
  142. package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +200 -0
  143. package/node_modules/@smithy/core/dist-es/submodules/event-streams/index.js +1 -0
  144. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +11 -26
  145. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +36 -0
  146. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +36 -10
  147. package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +1 -0
  148. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +17 -0
  149. package/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +4 -2
  150. package/node_modules/@smithy/core/dist-types/getSmithyContext.d.ts +1 -1
  151. package/node_modules/@smithy/core/dist-types/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.d.ts +2 -2
  152. package/node_modules/@smithy/core/dist-types/middleware-http-auth-scheme/getHttpAuthSchemePlugin.d.ts +2 -2
  153. package/node_modules/@smithy/core/dist-types/middleware-http-auth-scheme/httpAuthSchemeMiddleware.d.ts +1 -1
  154. package/node_modules/@smithy/core/dist-types/middleware-http-auth-scheme/resolveAuthOptions.d.ts +1 -1
  155. package/node_modules/@smithy/core/dist-types/middleware-http-signing/getHttpSigningMiddleware.d.ts +1 -1
  156. package/node_modules/@smithy/core/dist-types/middleware-http-signing/httpSigningMiddleware.d.ts +1 -1
  157. package/node_modules/@smithy/core/dist-types/normalizeProvider.d.ts +1 -1
  158. package/node_modules/@smithy/core/dist-types/submodules/cbor/CborCodec.d.ts +6 -2
  159. package/node_modules/@smithy/core/dist-types/submodules/cbor/SmithyRpcV2CborProtocol.d.ts +2 -1
  160. package/node_modules/@smithy/core/dist-types/submodules/cbor/cbor-decode.d.ts +1 -1
  161. package/node_modules/@smithy/core/dist-types/submodules/cbor/cbor-types.d.ts +1 -1
  162. package/node_modules/@smithy/core/dist-types/submodules/cbor/parseCborBody.d.ts +2 -2
  163. package/node_modules/@smithy/core/dist-types/submodules/event-streams/EventStreamSerde.d.ts +60 -0
  164. package/node_modules/@smithy/core/dist-types/submodules/event-streams/index.d.ts +1 -0
  165. package/node_modules/@smithy/core/dist-types/submodules/protocols/HttpBindingProtocol.d.ts +1 -1
  166. package/node_modules/@smithy/core/dist-types/submodules/protocols/HttpProtocol.d.ts +39 -1
  167. package/node_modules/@smithy/core/dist-types/submodules/protocols/RpcProtocol.d.ts +1 -1
  168. package/node_modules/@smithy/core/dist-types/submodules/protocols/collect-stream-body.d.ts +1 -1
  169. package/node_modules/@smithy/core/dist-types/submodules/protocols/index.d.ts +1 -0
  170. package/node_modules/@smithy/core/dist-types/submodules/protocols/serde/FromStringShapeDeserializer.d.ts +1 -1
  171. package/node_modules/@smithy/core/dist-types/submodules/protocols/serde/HttpInterceptingShapeDeserializer.d.ts +1 -1
  172. package/node_modules/@smithy/core/dist-types/submodules/protocols/serde/HttpInterceptingShapeSerializer.d.ts +1 -1
  173. package/node_modules/@smithy/core/dist-types/submodules/protocols/serde/ToStringShapeSerializer.d.ts +1 -1
  174. package/node_modules/@smithy/core/dist-types/submodules/protocols/serde/determineTimestampFormat.d.ts +2 -2
  175. package/node_modules/@smithy/core/dist-types/submodules/schema/TypeRegistry.d.ts +1 -1
  176. package/node_modules/@smithy/core/dist-types/submodules/schema/middleware/getSchemaSerdePlugin.d.ts +2 -2
  177. package/node_modules/@smithy/core/dist-types/submodules/schema/middleware/schemaDeserializationMiddleware.d.ts +2 -2
  178. package/node_modules/@smithy/core/dist-types/submodules/schema/middleware/schemaSerializationMiddleware.d.ts +2 -2
  179. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +10 -0
  180. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/SimpleSchema.d.ts +1 -1
  181. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/sentinels.d.ts +1 -1
  182. package/node_modules/@smithy/core/dist-types/submodules/serde/copyDocumentWithTransform.d.ts +1 -1
  183. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/CborCodec.d.ts +5 -1
  184. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/SmithyRpcV2CborProtocol.d.ts +1 -0
  185. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/cbor-types.d.ts +1 -1
  186. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/event-streams/EventStreamSerde.d.ts +60 -0
  187. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/event-streams/index.d.ts +1 -0
  188. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/HttpProtocol.d.ts +39 -1
  189. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/index.d.ts +1 -0
  190. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/serde/determineTimestampFormat.d.ts +1 -1
  191. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +10 -0
  192. package/node_modules/@smithy/core/dist-types/util-identity-and-auth/DefaultIdentityProviderConfig.d.ts +1 -1
  193. package/node_modules/@smithy/core/dist-types/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.d.ts +1 -1
  194. package/node_modules/@smithy/core/dist-types/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.d.ts +1 -1
  195. package/node_modules/@smithy/core/dist-types/util-identity-and-auth/httpAuthSchemes/noAuth.d.ts +1 -1
  196. package/node_modules/@smithy/core/dist-types/util-identity-and-auth/memoizeIdentityProvider.d.ts +1 -1
  197. package/node_modules/@smithy/core/event-streams.d.ts +7 -0
  198. package/node_modules/@smithy/core/event-streams.js +6 -0
  199. package/node_modules/@smithy/core/package.json +19 -9
  200. package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +3 -3
  201. package/node_modules/@smithy/fetch-http-handler/dist-types/create-request.d.ts +1 -1
  202. package/node_modules/@smithy/fetch-http-handler/dist-types/fetch-http-handler.d.ts +3 -2
  203. package/node_modules/@smithy/fetch-http-handler/dist-types/stream-collector.d.ts +1 -1
  204. package/node_modules/@smithy/fetch-http-handler/dist-types/ts3.4/fetch-http-handler.d.ts +2 -1
  205. package/node_modules/@smithy/fetch-http-handler/package.json +9 -8
  206. package/node_modules/@smithy/hash-node/node_modules/@smithy/util-buffer-from/LICENSE +201 -0
  207. package/node_modules/@smithy/hash-node/node_modules/@smithy/util-buffer-from/README.md +10 -0
  208. package/node_modules/@smithy/hash-node/node_modules/@smithy/util-buffer-from/dist-cjs/index.js +47 -0
  209. package/node_modules/@smithy/hash-node/node_modules/@smithy/util-buffer-from/dist-es/index.js +14 -0
  210. package/node_modules/@smithy/hash-node/node_modules/@smithy/util-buffer-from/dist-types/index.d.ts +13 -0
  211. package/node_modules/@smithy/hash-node/node_modules/@smithy/util-buffer-from/dist-types/ts3.4/index.d.ts +13 -0
  212. package/node_modules/@smithy/hash-node/node_modules/@smithy/util-buffer-from/package.json +61 -0
  213. package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +5 -5
  214. package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/getEndpointFromInstructions.d.ts +3 -3
  215. package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/getEndpointUrlConfig.d.ts +1 -1
  216. package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/toEndpointV1.d.ts +1 -1
  217. package/node_modules/@smithy/middleware-endpoint/dist-types/endpointMiddleware.d.ts +3 -3
  218. package/node_modules/@smithy/middleware-endpoint/dist-types/getEndpointPlugin.d.ts +3 -3
  219. package/node_modules/@smithy/middleware-endpoint/dist-types/resolveEndpointConfig.d.ts +1 -1
  220. package/node_modules/@smithy/middleware-endpoint/dist-types/resolveEndpointRequiredConfig.d.ts +1 -1
  221. package/node_modules/@smithy/middleware-endpoint/dist-types/service-customizations/s3.d.ts +1 -1
  222. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/LICENSE +201 -0
  223. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/README.md +105 -0
  224. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getConfigData.js +1 -0
  225. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getConfigFilepath.js +1 -0
  226. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getCredentialsFilepath.js +1 -0
  227. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getHomeDir.js +26 -0
  228. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getProfileName.js +1 -0
  229. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFilepath.js +12 -0
  230. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFromFile.js +12 -0
  231. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSsoSessionData.js +1 -0
  232. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/index.js +206 -0
  233. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/loadSharedConfigFiles.js +1 -0
  234. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/loadSsoSessionData.js +1 -0
  235. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/mergeConfigFiles.js +1 -0
  236. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/parseIni.js +1 -0
  237. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/parseKnownFiles.js +1 -0
  238. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/slurpFile.js +13 -0
  239. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-cjs/types.js +1 -0
  240. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigData.js +18 -0
  241. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigFilepath.js +4 -0
  242. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/getCredentialsFilepath.js +4 -0
  243. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/getHomeDir.js +22 -0
  244. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/getProfileName.js +3 -0
  245. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFilepath.js +8 -0
  246. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFromFile.js +8 -0
  247. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/getSsoSessionData.js +5 -0
  248. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/index.js +8 -0
  249. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSharedConfigFiles.js +39 -0
  250. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSsoSessionData.js +9 -0
  251. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/mergeConfigFiles.js +14 -0
  252. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/parseIni.js +52 -0
  253. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/parseKnownFiles.js +6 -0
  254. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/slurpFile.js +9 -0
  255. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-es/types.js +1 -0
  256. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/getConfigData.d.ts +8 -0
  257. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/getConfigFilepath.d.ts +2 -0
  258. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/getCredentialsFilepath.d.ts +2 -0
  259. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/getHomeDir.d.ts +6 -0
  260. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/getProfileName.d.ts +15 -0
  261. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/getSSOTokenFilepath.d.ts +5 -0
  262. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/getSSOTokenFromFile.d.ts +46 -0
  263. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/getSsoSessionData.d.ts +6 -0
  264. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/index.d.ts +8 -0
  265. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/loadSharedConfigFiles.d.ts +36 -0
  266. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/loadSsoSessionData.d.ts +17 -0
  267. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/mergeConfigFiles.d.ts +7 -0
  268. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/parseIni.d.ts +2 -0
  269. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/parseKnownFiles.d.ts +18 -0
  270. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/slurpFile.d.ts +5 -0
  271. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getConfigData.d.ts +8 -0
  272. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getConfigFilepath.d.ts +2 -0
  273. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getCredentialsFilepath.d.ts +2 -0
  274. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getHomeDir.d.ts +6 -0
  275. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getProfileName.d.ts +15 -0
  276. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getSSOTokenFilepath.d.ts +5 -0
  277. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getSSOTokenFromFile.d.ts +46 -0
  278. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getSsoSessionData.d.ts +6 -0
  279. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/index.d.ts +8 -0
  280. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/loadSharedConfigFiles.d.ts +36 -0
  281. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/loadSsoSessionData.d.ts +17 -0
  282. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/mergeConfigFiles.d.ts +7 -0
  283. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/parseIni.d.ts +2 -0
  284. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/parseKnownFiles.d.ts +18 -0
  285. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/slurpFile.d.ts +5 -0
  286. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/types.d.ts +16 -0
  287. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/dist-types/types.d.ts +16 -0
  288. package/node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader/package.json +73 -0
  289. package/node_modules/@smithy/middleware-endpoint/package.json +9 -8
  290. package/node_modules/@smithy/middleware-retry/dist-cjs/index.js +33 -47
  291. package/node_modules/@smithy/middleware-retry/dist-types/AdaptiveRetryStrategy.d.ts +4 -3
  292. package/node_modules/@smithy/middleware-retry/dist-types/StandardRetryStrategy.d.ts +2 -2
  293. package/node_modules/@smithy/middleware-retry/dist-types/configurations.d.ts +2 -2
  294. package/node_modules/@smithy/middleware-retry/dist-types/defaultRetryQuota.d.ts +1 -1
  295. package/node_modules/@smithy/middleware-retry/dist-types/omitRetryHeadersMiddleware.d.ts +1 -1
  296. package/node_modules/@smithy/middleware-retry/dist-types/retryDecider.d.ts +1 -1
  297. package/node_modules/@smithy/middleware-retry/dist-types/retryMiddleware.d.ts +2 -2
  298. package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/AdaptiveRetryStrategy.d.ts +2 -1
  299. package/node_modules/@smithy/middleware-retry/dist-types/types.d.ts +1 -1
  300. package/node_modules/@smithy/middleware-retry/dist-types/util.d.ts +1 -1
  301. package/node_modules/@smithy/middleware-retry/package.json +11 -10
  302. package/node_modules/@smithy/middleware-serde/dist-cjs/index.js +5 -5
  303. package/node_modules/@smithy/middleware-serde/dist-types/deserializerMiddleware.d.ts +1 -1
  304. package/node_modules/@smithy/middleware-serde/dist-types/serdePlugin.d.ts +1 -1
  305. package/node_modules/@smithy/middleware-serde/dist-types/serializerMiddleware.d.ts +1 -1
  306. package/node_modules/@smithy/middleware-serde/package.json +6 -5
  307. package/node_modules/@smithy/middleware-stack/dist-cjs/index.js +25 -30
  308. package/node_modules/@smithy/middleware-stack/dist-types/MiddlewareStack.d.ts +1 -1
  309. package/node_modules/@smithy/middleware-stack/dist-types/types.d.ts +1 -1
  310. package/node_modules/@smithy/middleware-stack/package.json +3 -2
  311. package/node_modules/@smithy/node-config-provider/dist-cjs/index.js +3 -3
  312. package/node_modules/@smithy/node-config-provider/dist-types/configLoader.d.ts +4 -4
  313. package/node_modules/@smithy/node-config-provider/dist-types/fromEnv.d.ts +1 -1
  314. package/node_modules/@smithy/node-config-provider/dist-types/fromSharedConfigFiles.d.ts +2 -2
  315. package/node_modules/@smithy/node-config-provider/dist-types/fromStatic.d.ts +1 -1
  316. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/LICENSE +201 -0
  317. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/README.md +10 -0
  318. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-cjs/CredentialsProviderError.js +1 -0
  319. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-cjs/ProviderError.js +1 -0
  320. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-cjs/TokenProviderError.js +1 -0
  321. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-cjs/chain.js +1 -0
  322. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-cjs/fromStatic.js +1 -0
  323. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-cjs/index.js +170 -0
  324. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-cjs/memoize.js +1 -0
  325. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +8 -0
  326. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/ProviderError.js +22 -0
  327. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +8 -0
  328. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/chain.js +21 -0
  329. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/fromStatic.js +1 -0
  330. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/index.js +6 -0
  331. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/memoize.js +45 -0
  332. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +31 -0
  333. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +39 -0
  334. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +31 -0
  335. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/chain.d.ts +13 -0
  336. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +5 -0
  337. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/index.d.ts +24 -0
  338. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +40 -0
  339. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +31 -0
  340. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +39 -0
  341. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +31 -0
  342. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +13 -0
  343. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +5 -0
  344. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +24 -0
  345. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +40 -0
  346. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/package.json +61 -0
  347. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/LICENSE +201 -0
  348. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/README.md +105 -0
  349. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getConfigData.js +1 -0
  350. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getConfigFilepath.js +1 -0
  351. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getCredentialsFilepath.js +1 -0
  352. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getHomeDir.js +26 -0
  353. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getProfileName.js +1 -0
  354. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFilepath.js +12 -0
  355. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFromFile.js +12 -0
  356. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSsoSessionData.js +1 -0
  357. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/index.js +206 -0
  358. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/loadSharedConfigFiles.js +1 -0
  359. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/loadSsoSessionData.js +1 -0
  360. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/mergeConfigFiles.js +1 -0
  361. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/parseIni.js +1 -0
  362. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/parseKnownFiles.js +1 -0
  363. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/slurpFile.js +13 -0
  364. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-cjs/types.js +1 -0
  365. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigData.js +18 -0
  366. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigFilepath.js +4 -0
  367. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/getCredentialsFilepath.js +4 -0
  368. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/getHomeDir.js +22 -0
  369. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/getProfileName.js +3 -0
  370. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFilepath.js +8 -0
  371. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFromFile.js +8 -0
  372. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/getSsoSessionData.js +5 -0
  373. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/index.js +8 -0
  374. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSharedConfigFiles.js +39 -0
  375. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSsoSessionData.js +9 -0
  376. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/mergeConfigFiles.js +14 -0
  377. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/parseIni.js +52 -0
  378. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/parseKnownFiles.js +6 -0
  379. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/slurpFile.js +9 -0
  380. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-es/types.js +1 -0
  381. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/getConfigData.d.ts +8 -0
  382. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/getConfigFilepath.d.ts +2 -0
  383. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/getCredentialsFilepath.d.ts +2 -0
  384. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/getHomeDir.d.ts +6 -0
  385. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/getProfileName.d.ts +15 -0
  386. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/getSSOTokenFilepath.d.ts +5 -0
  387. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/getSSOTokenFromFile.d.ts +46 -0
  388. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/getSsoSessionData.d.ts +6 -0
  389. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/index.d.ts +8 -0
  390. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/loadSharedConfigFiles.d.ts +36 -0
  391. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/loadSsoSessionData.d.ts +17 -0
  392. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/mergeConfigFiles.d.ts +7 -0
  393. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/parseIni.d.ts +2 -0
  394. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/parseKnownFiles.d.ts +18 -0
  395. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/slurpFile.d.ts +5 -0
  396. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getConfigData.d.ts +8 -0
  397. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getConfigFilepath.d.ts +2 -0
  398. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getCredentialsFilepath.d.ts +2 -0
  399. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getHomeDir.d.ts +6 -0
  400. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getProfileName.d.ts +15 -0
  401. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getSSOTokenFilepath.d.ts +5 -0
  402. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getSSOTokenFromFile.d.ts +46 -0
  403. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getSsoSessionData.d.ts +6 -0
  404. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/index.d.ts +8 -0
  405. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/loadSharedConfigFiles.d.ts +36 -0
  406. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/loadSsoSessionData.d.ts +17 -0
  407. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/mergeConfigFiles.d.ts +7 -0
  408. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/parseIni.d.ts +2 -0
  409. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/parseKnownFiles.d.ts +18 -0
  410. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/slurpFile.d.ts +5 -0
  411. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/types.d.ts +16 -0
  412. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/dist-types/types.d.ts +16 -0
  413. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/shared-ini-file-loader/package.json +73 -0
  414. package/node_modules/@smithy/node-config-provider/package.json +5 -4
  415. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +5 -5
  416. package/node_modules/@smithy/node-http-handler/dist-types/get-transformed-headers.d.ts +2 -2
  417. package/node_modules/@smithy/node-http-handler/dist-types/node-http-handler.d.ts +3 -2
  418. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +4 -4
  419. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +2 -2
  420. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +3 -2
  421. package/node_modules/@smithy/node-http-handler/dist-types/readable.mock.d.ts +2 -1
  422. package/node_modules/@smithy/node-http-handler/dist-types/server.mock.d.ts +4 -4
  423. package/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +1 -1
  424. package/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +1 -1
  425. package/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +1 -1
  426. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +1 -1
  427. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/readable.mock.d.ts +2 -1
  428. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +2 -1
  429. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +2 -1
  430. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/readable.mock.d.ts +2 -1
  431. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/readable.mock.d.ts +2 -1
  432. package/node_modules/@smithy/node-http-handler/dist-types/write-request-body.d.ts +3 -3
  433. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/LICENSE +201 -0
  434. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/README.md +4 -0
  435. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-cjs/AbortController.js +1 -0
  436. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-cjs/AbortSignal.js +1 -0
  437. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-cjs/index.js +84 -0
  438. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-es/AbortController.js +9 -0
  439. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-es/AbortSignal.js +20 -0
  440. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-es/index.js +2 -0
  441. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-types/AbortController.d.ts +16 -0
  442. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-types/AbortSignal.d.ts +21 -0
  443. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-types/index.d.ts +9 -0
  444. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-types/ts3.4/AbortController.d.ts +16 -0
  445. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-types/ts3.4/AbortSignal.d.ts +21 -0
  446. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-types/ts3.4/index.d.ts +9 -0
  447. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/package.json +63 -0
  448. package/node_modules/@smithy/node-http-handler/package.json +6 -5
  449. package/node_modules/@smithy/protocol-http/dist-cjs/index.js +4 -5
  450. package/node_modules/@smithy/protocol-http/dist-types/Field.d.ts +2 -1
  451. package/node_modules/@smithy/protocol-http/dist-types/Fields.d.ts +2 -2
  452. package/node_modules/@smithy/protocol-http/dist-types/extensions/httpExtensionConfiguration.d.ts +1 -1
  453. package/node_modules/@smithy/protocol-http/dist-types/httpRequest.d.ts +2 -1
  454. package/node_modules/@smithy/protocol-http/dist-types/httpResponse.d.ts +1 -1
  455. package/node_modules/@smithy/protocol-http/dist-types/ts3.4/Field.d.ts +2 -1
  456. package/node_modules/@smithy/protocol-http/dist-types/ts3.4/httpRequest.d.ts +2 -1
  457. package/node_modules/@smithy/protocol-http/dist-types/types.d.ts +1 -1
  458. package/node_modules/@smithy/protocol-http/package.json +3 -2
  459. package/node_modules/@smithy/querystring-builder/dist-cjs/index.js +3 -3
  460. package/node_modules/@smithy/querystring-builder/dist-types/index.d.ts +1 -1
  461. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/LICENSE +201 -0
  462. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/README.md +10 -0
  463. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-cjs/escape-uri-path.js +1 -0
  464. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-cjs/escape-uri.js +1 -0
  465. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-cjs/index.js +43 -0
  466. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-es/escape-uri-path.js +2 -0
  467. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-es/escape-uri.js +2 -0
  468. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-es/index.js +2 -0
  469. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-types/escape-uri-path.d.ts +4 -0
  470. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-types/escape-uri.d.ts +4 -0
  471. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-types/index.d.ts +8 -0
  472. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-types/ts3.4/escape-uri-path.d.ts +4 -0
  473. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-types/ts3.4/escape-uri.d.ts +4 -0
  474. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/dist-types/ts3.4/index.d.ts +8 -0
  475. package/node_modules/@smithy/querystring-builder/node_modules/@smithy/util-uri-escape/package.json +60 -0
  476. package/node_modules/@smithy/querystring-builder/package.json +4 -3
  477. package/node_modules/@smithy/querystring-parser/dist-cjs/index.js +3 -3
  478. package/node_modules/@smithy/querystring-parser/dist-types/index.d.ts +1 -1
  479. package/node_modules/@smithy/querystring-parser/package.json +3 -2
  480. package/node_modules/@smithy/service-error-classification/dist-cjs/index.js +3 -3
  481. package/node_modules/@smithy/service-error-classification/dist-types/index.d.ts +1 -1
  482. package/node_modules/@smithy/service-error-classification/package.json +3 -2
  483. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +55 -21
  484. package/node_modules/@smithy/smithy-client/dist-cjs/schemaLogFilter.js +1 -0
  485. package/node_modules/@smithy/smithy-client/dist-es/command.js +7 -4
  486. package/node_modules/@smithy/smithy-client/dist-es/schemaLogFilter.js +34 -0
  487. package/node_modules/@smithy/smithy-client/dist-types/NoOpLogger.d.ts +1 -1
  488. package/node_modules/@smithy/smithy-client/dist-types/client.d.ts +1 -1
  489. package/node_modules/@smithy/smithy-client/dist-types/create-aggregated-client.d.ts +1 -1
  490. package/node_modules/@smithy/smithy-client/dist-types/exceptions.d.ts +1 -1
  491. package/node_modules/@smithy/smithy-client/dist-types/extensions/defaultExtensionConfiguration.d.ts +2 -2
  492. package/node_modules/@smithy/smithy-client/dist-types/extensions/retry.d.ts +1 -1
  493. package/node_modules/@smithy/smithy-client/dist-types/schemaLogFilter.d.ts +9 -0
  494. package/node_modules/@smithy/smithy-client/dist-types/ts3.4/schemaLogFilter.d.ts +9 -0
  495. package/node_modules/@smithy/smithy-client/package.json +8 -7
  496. package/node_modules/@smithy/types/dist-cjs/index.js +7 -7
  497. package/node_modules/@smithy/types/dist-types/auth/HttpAuthScheme.d.ts +4 -4
  498. package/node_modules/@smithy/types/dist-types/auth/HttpAuthSchemeProvider.d.ts +2 -2
  499. package/node_modules/@smithy/types/dist-types/auth/HttpSigner.d.ts +2 -2
  500. package/node_modules/@smithy/types/dist-types/auth/IdentityProviderConfig.d.ts +2 -2
  501. package/node_modules/@smithy/types/dist-types/blob/blob-payload-input-types.d.ts +1 -1
  502. package/node_modules/@smithy/types/dist-types/checksum.d.ts +1 -1
  503. package/node_modules/@smithy/types/dist-types/client.d.ts +4 -4
  504. package/node_modules/@smithy/types/dist-types/command.d.ts +2 -2
  505. package/node_modules/@smithy/types/dist-types/connection/manager.d.ts +2 -2
  506. package/node_modules/@smithy/types/dist-types/encode.d.ts +1 -1
  507. package/node_modules/@smithy/types/dist-types/endpoint.d.ts +1 -1
  508. package/node_modules/@smithy/types/dist-types/endpoints/EndpointRuleObject.d.ts +2 -2
  509. package/node_modules/@smithy/types/dist-types/endpoints/ErrorRuleObject.d.ts +1 -1
  510. package/node_modules/@smithy/types/dist-types/endpoints/RuleSetObject.d.ts +1 -1
  511. package/node_modules/@smithy/types/dist-types/endpoints/TreeRuleObject.d.ts +3 -3
  512. package/node_modules/@smithy/types/dist-types/endpoints/shared.d.ts +1 -1
  513. package/node_modules/@smithy/types/dist-types/eventStream.d.ts +3 -3
  514. package/node_modules/@smithy/types/dist-types/extensions/checksum.d.ts +2 -2
  515. package/node_modules/@smithy/types/dist-types/extensions/defaultClientConfiguration.d.ts +1 -1
  516. package/node_modules/@smithy/types/dist-types/extensions/defaultExtensionConfiguration.d.ts +2 -2
  517. package/node_modules/@smithy/types/dist-types/extensions/retry.d.ts +2 -2
  518. package/node_modules/@smithy/types/dist-types/http/httpHandlerInitialization.d.ts +2 -2
  519. package/node_modules/@smithy/types/dist-types/http.d.ts +2 -2
  520. package/node_modules/@smithy/types/dist-types/identity/apiKeyIdentity.d.ts +1 -1
  521. package/node_modules/@smithy/types/dist-types/identity/awsCredentialIdentity.d.ts +1 -1
  522. package/node_modules/@smithy/types/dist-types/identity/tokenIdentity.d.ts +1 -1
  523. package/node_modules/@smithy/types/dist-types/retry.d.ts +1 -1
  524. package/node_modules/@smithy/types/dist-types/schema/schema.d.ts +2 -0
  525. package/node_modules/@smithy/types/dist-types/serde.d.ts +4 -4
  526. package/node_modules/@smithy/types/dist-types/shapes.d.ts +2 -2
  527. package/node_modules/@smithy/types/dist-types/signature.d.ts +2 -2
  528. package/node_modules/@smithy/types/dist-types/stream.d.ts +3 -3
  529. package/node_modules/@smithy/types/dist-types/ts3.4/schema/schema.d.ts +2 -0
  530. package/node_modules/@smithy/types/dist-types/uri.d.ts +1 -1
  531. package/node_modules/@smithy/types/dist-types/util.d.ts +3 -3
  532. package/node_modules/@smithy/types/dist-types/waiter.d.ts +1 -1
  533. package/node_modules/@smithy/types/package.json +2 -1
  534. package/node_modules/@smithy/url-parser/dist-cjs/index.js +3 -3
  535. package/node_modules/@smithy/url-parser/dist-types/index.d.ts +1 -1
  536. package/node_modules/@smithy/url-parser/package.json +4 -3
  537. package/node_modules/@smithy/util-base64/dist-cjs/index.js +4 -4
  538. package/node_modules/@smithy/util-base64/dist-cjs/toBase64.browser.js +1 -2
  539. package/node_modules/@smithy/util-base64/package.json +7 -6
  540. package/node_modules/@smithy/util-body-length-browser/dist-cjs/index.js +6 -9
  541. package/node_modules/@smithy/util-body-length-browser/package.json +5 -4
  542. package/node_modules/@smithy/util-buffer-from/dist-cjs/index.js +3 -3
  543. package/node_modules/@smithy/util-buffer-from/node_modules/@smithy/is-array-buffer/LICENSE +201 -0
  544. package/node_modules/@smithy/util-buffer-from/node_modules/@smithy/is-array-buffer/README.md +10 -0
  545. package/node_modules/@smithy/util-buffer-from/node_modules/@smithy/is-array-buffer/dist-cjs/index.js +32 -0
  546. package/node_modules/@smithy/util-buffer-from/node_modules/@smithy/is-array-buffer/dist-es/index.js +2 -0
  547. package/node_modules/@smithy/util-buffer-from/node_modules/@smithy/is-array-buffer/dist-types/index.d.ts +4 -0
  548. package/node_modules/@smithy/util-buffer-from/node_modules/@smithy/is-array-buffer/dist-types/ts3.4/index.d.ts +4 -0
  549. package/node_modules/@smithy/util-buffer-from/node_modules/@smithy/is-array-buffer/package.json +61 -0
  550. package/node_modules/@smithy/util-buffer-from/package.json +6 -5
  551. package/node_modules/@smithy/util-defaults-mode-browser/dist-cjs/index.js +3 -3
  552. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/LICENSE +201 -0
  553. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/README.md +10 -0
  554. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-cjs/CredentialsProviderError.js +1 -0
  555. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-cjs/ProviderError.js +1 -0
  556. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-cjs/TokenProviderError.js +1 -0
  557. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-cjs/chain.js +1 -0
  558. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-cjs/fromStatic.js +1 -0
  559. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-cjs/index.js +170 -0
  560. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-cjs/memoize.js +1 -0
  561. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +8 -0
  562. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/ProviderError.js +22 -0
  563. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +8 -0
  564. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/chain.js +21 -0
  565. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/fromStatic.js +1 -0
  566. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/index.js +6 -0
  567. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/memoize.js +45 -0
  568. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +31 -0
  569. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +39 -0
  570. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +31 -0
  571. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/chain.d.ts +13 -0
  572. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +5 -0
  573. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/index.d.ts +24 -0
  574. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +40 -0
  575. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +31 -0
  576. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +39 -0
  577. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +31 -0
  578. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +13 -0
  579. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +5 -0
  580. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +24 -0
  581. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +40 -0
  582. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/package.json +61 -0
  583. package/node_modules/@smithy/util-defaults-mode-browser/package.json +5 -4
  584. package/node_modules/@smithy/util-defaults-mode-node/dist-cjs/index.js +7 -7
  585. package/node_modules/@smithy/util-defaults-mode-node/dist-types/defaultsModeConfig.d.ts +1 -1
  586. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/LICENSE +201 -0
  587. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/README.md +11 -0
  588. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/config/Endpoint.js +1 -0
  589. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/config/EndpointConfigOptions.js +1 -0
  590. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/config/EndpointMode.js +1 -0
  591. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/config/EndpointModeConfigOptions.js +1 -0
  592. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/error/InstanceMetadataV1FallbackError.js +1 -0
  593. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/fromContainerMetadata.js +1 -0
  594. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/fromInstanceMetadata.js +1 -0
  595. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +444 -0
  596. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/ImdsCredentials.js +1 -0
  597. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/RemoteProviderInit.js +1 -0
  598. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/httpRequest.js +1 -0
  599. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/index.js +1 -0
  600. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/retry.js +1 -0
  601. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/types.js +1 -0
  602. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/utils/getExtendedInstanceMetadataCredentials.js +1 -0
  603. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/utils/getInstanceMetadataEndpoint.js +1 -0
  604. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/utils/staticStabilityProvider.js +1 -0
  605. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/Endpoint.js +5 -0
  606. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointConfigOptions.js +7 -0
  607. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointMode.js +5 -0
  608. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js +8 -0
  609. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js +9 -0
  610. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js +77 -0
  611. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/fromInstanceMetadata.js +134 -0
  612. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/index.js +7 -0
  613. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js +13 -0
  614. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js +3 -0
  615. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/httpRequest.js +36 -0
  616. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/index.js +2 -0
  617. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/retry.js +7 -0
  618. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/types.js +1 -0
  619. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js +17 -0
  620. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js +19 -0
  621. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/staticStabilityProvider.js +25 -0
  622. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/Endpoint.d.ts +7 -0
  623. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointConfigOptions.d.ts +13 -0
  624. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointMode.d.ts +7 -0
  625. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointModeConfigOptions.d.ts +13 -0
  626. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/error/InstanceMetadataV1FallbackError.d.ts +12 -0
  627. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/fromContainerMetadata.d.ts +21 -0
  628. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/fromInstanceMetadata.d.ts +10 -0
  629. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/index.d.ts +28 -0
  630. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/ImdsCredentials.d.ts +19 -0
  631. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/RemoteProviderInit.d.ts +40 -0
  632. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/httpRequest.d.ts +6 -0
  633. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/index.d.ts +8 -0
  634. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/retry.d.ts +10 -0
  635. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/Endpoint.d.ts +7 -0
  636. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointConfigOptions.d.ts +13 -0
  637. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointMode.d.ts +7 -0
  638. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointModeConfigOptions.d.ts +13 -0
  639. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/error/InstanceMetadataV1FallbackError.d.ts +12 -0
  640. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/fromContainerMetadata.d.ts +21 -0
  641. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/fromInstanceMetadata.d.ts +10 -0
  642. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/index.d.ts +28 -0
  643. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/ImdsCredentials.d.ts +19 -0
  644. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/RemoteProviderInit.d.ts +40 -0
  645. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/httpRequest.d.ts +6 -0
  646. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/index.d.ts +8 -0
  647. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/retry.d.ts +10 -0
  648. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/types.d.ts +7 -0
  649. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/getExtendedInstanceMetadataCredentials.d.ts +6 -0
  650. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/getInstanceMetadataEndpoint.d.ts +21 -0
  651. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/staticStabilityProvider.d.ts +16 -0
  652. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/types.d.ts +7 -0
  653. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/getExtendedInstanceMetadataCredentials.d.ts +6 -0
  654. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/getInstanceMetadataEndpoint.d.ts +21 -0
  655. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/staticStabilityProvider.d.ts +16 -0
  656. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/package.json +70 -0
  657. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/LICENSE +201 -0
  658. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/README.md +10 -0
  659. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-cjs/CredentialsProviderError.js +1 -0
  660. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-cjs/ProviderError.js +1 -0
  661. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-cjs/TokenProviderError.js +1 -0
  662. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-cjs/chain.js +1 -0
  663. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-cjs/fromStatic.js +1 -0
  664. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-cjs/index.js +170 -0
  665. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-cjs/memoize.js +1 -0
  666. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +8 -0
  667. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/ProviderError.js +22 -0
  668. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +8 -0
  669. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/chain.js +21 -0
  670. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/fromStatic.js +1 -0
  671. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/index.js +6 -0
  672. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/memoize.js +45 -0
  673. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +31 -0
  674. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +39 -0
  675. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +31 -0
  676. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/chain.d.ts +13 -0
  677. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +5 -0
  678. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/index.d.ts +24 -0
  679. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +40 -0
  680. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +31 -0
  681. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +39 -0
  682. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +31 -0
  683. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +13 -0
  684. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +5 -0
  685. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +24 -0
  686. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +40 -0
  687. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/package.json +61 -0
  688. package/node_modules/@smithy/util-defaults-mode-node/package.json +8 -7
  689. package/node_modules/@smithy/util-middleware/dist-cjs/index.js +4 -5
  690. package/node_modules/@smithy/util-middleware/dist-types/getSmithyContext.d.ts +1 -1
  691. package/node_modules/@smithy/util-middleware/dist-types/normalizeProvider.d.ts +1 -1
  692. package/node_modules/@smithy/util-middleware/package.json +3 -2
  693. package/node_modules/@smithy/util-retry/dist-cjs/index.js +3 -3
  694. package/node_modules/@smithy/util-retry/dist-types/AdaptiveRetryStrategy.d.ts +2 -2
  695. package/node_modules/@smithy/util-retry/dist-types/DefaultRateLimiter.d.ts +1 -1
  696. package/node_modules/@smithy/util-retry/dist-types/StandardRetryStrategy.d.ts +1 -1
  697. package/node_modules/@smithy/util-retry/dist-types/defaultRetryBackoffStrategy.d.ts +1 -1
  698. package/node_modules/@smithy/util-retry/dist-types/defaultRetryToken.d.ts +1 -1
  699. package/node_modules/@smithy/util-retry/package.json +4 -3
  700. package/node_modules/@smithy/util-stream/dist-cjs/index.js +11 -11
  701. package/node_modules/@smithy/util-stream/dist-types/checksum/ChecksumStream.browser.d.ts +1 -1
  702. package/node_modules/@smithy/util-stream/dist-types/checksum/ChecksumStream.d.ts +3 -2
  703. package/node_modules/@smithy/util-stream/dist-types/checksum/createChecksumStream.browser.d.ts +1 -1
  704. package/node_modules/@smithy/util-stream/dist-types/checksum/createChecksumStream.d.ts +3 -3
  705. package/node_modules/@smithy/util-stream/dist-types/getAwsChunkedEncodingStream.browser.d.ts +1 -1
  706. package/node_modules/@smithy/util-stream/dist-types/getAwsChunkedEncodingStream.d.ts +1 -1
  707. package/node_modules/@smithy/util-stream/dist-types/headStream.d.ts +1 -1
  708. package/node_modules/@smithy/util-stream/dist-types/sdk-stream-mixin.browser.d.ts +1 -1
  709. package/node_modules/@smithy/util-stream/dist-types/sdk-stream-mixin.d.ts +1 -1
  710. package/node_modules/@smithy/util-stream/dist-types/ts3.4/checksum/ChecksumStream.d.ts +2 -1
  711. package/node_modules/@smithy/util-stream/node_modules/@smithy/util-hex-encoding/LICENSE +201 -0
  712. package/node_modules/@smithy/util-stream/node_modules/@smithy/util-hex-encoding/README.md +4 -0
  713. package/node_modules/@smithy/util-stream/node_modules/@smithy/util-hex-encoding/dist-cjs/index.js +67 -0
  714. package/node_modules/@smithy/util-stream/node_modules/@smithy/util-hex-encoding/dist-es/index.js +33 -0
  715. package/node_modules/@smithy/util-stream/node_modules/@smithy/util-hex-encoding/dist-types/index.d.ts +12 -0
  716. package/node_modules/@smithy/util-stream/node_modules/@smithy/util-hex-encoding/dist-types/ts3.4/index.d.ts +12 -0
  717. package/node_modules/@smithy/util-stream/node_modules/@smithy/util-hex-encoding/package.json +61 -0
  718. package/node_modules/@smithy/util-stream/package.json +13 -12
  719. package/node_modules/@smithy/util-utf8/dist-cjs/index.js +3 -3
  720. package/node_modules/@smithy/util-utf8/package.json +6 -5
  721. package/node_modules/cdk-nag/.jsii +4 -4
  722. package/node_modules/cdk-nag/README.md +1 -1
  723. package/node_modules/cdk-nag/lib/ignore-suppression-conditions.js +5 -5
  724. package/node_modules/cdk-nag/lib/nag-logger.js +2 -2
  725. package/node_modules/cdk-nag/lib/nag-pack.js +1 -1
  726. package/node_modules/cdk-nag/lib/nag-rules.js +1 -1
  727. package/node_modules/cdk-nag/lib/nag-suppressions.js +1 -1
  728. package/node_modules/cdk-nag/lib/packs/aws-solutions.js +1 -1
  729. package/node_modules/cdk-nag/lib/packs/hipaa-security.js +1 -1
  730. package/node_modules/cdk-nag/lib/packs/nist-800-53-r4.js +1 -1
  731. package/node_modules/cdk-nag/lib/packs/nist-800-53-r5.js +1 -1
  732. package/node_modules/cdk-nag/lib/packs/pci-dss-321.js +1 -1
  733. package/node_modules/cdk-nag/lib/packs/serverless.js +1 -1
  734. package/node_modules/cdk-nag/package.json +4 -4
  735. package/package.json +1 -1
@@ -18,13 +18,13 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
20
  // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
23
  fromUtf8: () => fromUtf8,
24
24
  toUint8Array: () => toUint8Array,
25
25
  toUtf8: () => toUtf8
26
26
  });
27
- module.exports = __toCommonJS(src_exports);
27
+ module.exports = __toCommonJS(index_exports);
28
28
 
29
29
  // src/fromUtf8.ts
30
30
  var import_util_buffer_from = require("@smithy/util-buffer-from");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-utf8",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "A UTF-8 string <-> UInt8Array converter",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -13,7 +13,7 @@
13
13
  "stage-release": "rimraf ./.release && yarn pack && mkdir ./.release && tar zxvf ./package.tgz --directory ./.release && rm ./package.tgz",
14
14
  "clean": "rimraf ./dist-* && rimraf *.tsbuildinfo || exit 0",
15
15
  "lint": "eslint -c ../../.eslintrc.js \"src/**/*.ts\"",
16
- "format": "prettier --config ../../prettier.config.js --ignore-path ../.prettierignore --write \"**/*.{ts,md,json}\"",
16
+ "format": "prettier --config ../../prettier.config.js --ignore-path ../../.prettierignore --write \"**/*.{ts,md,json}\"",
17
17
  "test": "yarn g:vitest run",
18
18
  "test:watch": "yarn g:vitest watch"
19
19
  },
@@ -22,8 +22,9 @@
22
22
  "url": "https://aws.amazon.com/javascript/"
23
23
  },
24
24
  "license": "Apache-2.0",
25
+ "sideEffects": false,
25
26
  "dependencies": {
26
- "@smithy/util-buffer-from": "^4.0.0",
27
+ "@smithy/util-buffer-from": "^4.1.0",
27
28
  "tslib": "^2.6.2"
28
29
  },
29
30
  "devDependencies": {
@@ -51,10 +52,10 @@
51
52
  "./dist-es/toUtf8": "./dist-es/toUtf8.browser"
52
53
  },
53
54
  "react-native": {},
54
- "homepage": "https://github.com/awslabs/smithy-typescript/tree/main/packages/util-utf8",
55
+ "homepage": "https://github.com/smithy-lang/smithy-typescript/tree/main/packages/util-utf8",
55
56
  "repository": {
56
57
  "type": "git",
57
- "url": "https://github.com/awslabs/smithy-typescript.git",
58
+ "url": "https://github.com/smithy-lang/smithy-typescript.git",
58
59
  "directory": "packages/util-utf8"
59
60
  },
60
61
  "typedoc": {
@@ -3912,7 +3912,7 @@
3912
3912
  "stability": "stable"
3913
3913
  },
3914
3914
  "homepage": "https://github.com/cdklabs/cdk-nag.git",
3915
- "jsiiVersion": "5.8.17 (build 7212fc3)",
3915
+ "jsiiVersion": "5.8.18 (build f5c30fc)",
3916
3916
  "keywords": [
3917
3917
  "cdk"
3918
3918
  ],
@@ -3927,7 +3927,7 @@
3927
3927
  },
3928
3928
  "name": "cdk-nag",
3929
3929
  "readme": {
3930
- "markdown": "<!--\nCopyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\nSPDX-License-Identifier: Apache-2.0\n-->\n\n# cdk-nag\n\n[![PyPI version](https://img.shields.io/pypi/v/cdk-nag)](https://pypi.org/project/cdk-nag/)\n[![npm version](https://img.shields.io/npm/v/cdk-nag)](https://www.npmjs.com/package/cdk-nag)\n[![Maven version](https://img.shields.io/maven-central/v/io.github.cdklabs/cdknag)](https://search.maven.org/search?q=a:cdknag)\n[![NuGet version](https://img.shields.io/nuget/v/Cdklabs.CdkNag)](https://www.nuget.org/packages/Cdklabs.CdkNag)\n[![Go version](https://img.shields.io/github/go-mod/go-version/cdklabs/cdk-nag-go?color=blue&filename=cdknag%2Fgo.mod)](https://github.com/cdklabs/cdk-nag-go)\n\n[![View on Construct Hub](https://constructs.dev/badge?package=cdk-nag)](https://constructs.dev/packages/cdk-nag)\n\nCheck CDK applications or [CloudFormation templates](#using-on-cloudformation-templates) for best practices using a combination of available rule packs. Inspired by [cfn_nag](https://github.com/stelligent/cfn_nag).\n\nCheck out [this blog post](https://aws.amazon.com/blogs/devops/manage-application-security-and-compliance-with-the-aws-cloud-development-kit-and-cdk-nag/) for a guided overview!\n\n![demo](cdk_nag.gif)\n\n## Available Rules and Packs\n\nSee [RULES](./RULES.md) for more information on all the available packs.\n\n1. [AWS Solutions](./RULES.md#awssolutions)\n2. [HIPAA Security](./RULES.md#hipaa-security)\n3. [NIST 800-53 rev 4](./RULES.md#nist-800-53-rev-4)\n4. [NIST 800-53 rev 5](./RULES.md#nist-800-53-rev-5)\n5. [PCI DSS 3.2.1](./RULES.md#pci-dss-321)\n6. [Serverless](./RULES.md#serverless)\n\n[RULES](./RULES.md) also includes a collection of [additional rules](./RULES.md#additional-rules) that are not currently included in any of the pre-built NagPacks, but are still available for inclusion in custom NagPacks.\n\nRead the [NagPack developer docs](./docs/NagPack.md) if you are interested in creating your own pack.\n\n## Usage\n\nFor a full list of options See `NagPackProps` in the [API.md](./API.md#struct-nagpackprops)\n\n<details>\n<summary>Including in an application</summary>\n\n```typescript\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\n// Simple rule informational messages using the AWS Solutions Rule pack\nAspects.of(app).add(new AwsSolutionsChecks());\n// Multiple rule packs can be run against the same app\nAspects.of(app).add(new NIST80053R5Checks());\n// Additional explanations on the purpose of triggered rules\n// Aspects.of(stack).add(new AwsSolutionsChecks({ verbose: true }));\n```\n\n</details>\n\n## Suppressing a Rule\n\n<details>\n <summary>Example 1) Default Construct</summary>\n\n```typescript\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n { id: 'AwsSolutions-EC23', reason: 'lorem ipsum' },\n ]);\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 2) On Multiple Constructs</summary>\n\n```typescript\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const vpc = new Vpc(this, 'vpc');\n const test1 = new SecurityGroup(this, 'test', { vpc });\n test1.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n const test2 = new SecurityGroup(this, 'test', { vpc });\n test2.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(\n [test1, test2],\n [{ id: 'AwsSolutions-EC23', reason: 'lorem ipsum' }]\n );\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 3) Child Constructs</summary>\n\n```typescript\nimport { User, PolicyStatement } from 'aws-cdk-lib/aws-iam';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const user = new User(this, 'rUser');\n user.addToPolicy(\n new PolicyStatement({\n actions: ['s3:PutObject'],\n resources: ['arn:aws:s3:::bucket_name/*'],\n })\n );\n // Enable adding suppressions to child constructs\n NagSuppressions.addResourceSuppressions(\n user,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'lorem ipsum',\n appliesTo: ['Resource::arn:aws:s3:::bucket_name/*'], // optional\n },\n ],\n true\n );\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 4) Stack Level </summary>\n\n```typescript\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks, NagSuppressions } from 'cdk-nag';\n\nconst app = new App();\nconst stack = new CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(new AwsSolutionsChecks());\nNagSuppressions.addStackSuppressions(stack, [\n { id: 'AwsSolutions-EC23', reason: 'lorem ipsum' },\n]);\n```\n\n</details>\n\n<details>\n <summary>Example 5) Construct path</summary>\n\nIf you received the following error on synth/deploy\n\n```bash\n[Error at /StackName/Custom::CDKBucketDeployment8675309/ServiceRole/Resource] AwsSolutions-IAM4: The IAM user, role, or group uses AWS managed policies\n```\n\n```typescript\nimport { Bucket } from 'aws-cdk-lib/aws-s3';\nimport { BucketDeployment } from 'aws-cdk-lib/aws-s3-deployment';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new BucketDeployment(this, 'rDeployment', {\n sources: [],\n destinationBucket: Bucket.fromBucketName(this, 'rBucket', 'foo'),\n });\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/StackName/Custom::CDKBucketDeployment8675309/ServiceRole/Resource',\n [{ id: 'AwsSolutions-IAM4', reason: 'at least 10 characters' }]\n );\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 6) Granular Suppressions of findings</summary>\n\nCertain rules support granular suppressions of `findings`. If you received the following errors on synth/deploy\n\n```bash\n[Error at /StackName/rFirstUser/DefaultPolicy/Resource] AwsSolutions-IAM5[Action::s3:*]: The IAM entity contains wildcard permissions and does not have a cdk-nag rule suppression with evidence for those permission.\n[Error at /StackName/rFirstUser/DefaultPolicy/Resource] AwsSolutions-IAM5[Resource::*]: The IAM entity contains wildcard permissions and does not have a cdk-nag rule suppression with evidence for those permission.\n[Error at /StackName/rSecondUser/DefaultPolicy/Resource] AwsSolutions-IAM5[Action::s3:*]: The IAM entity contains wildcard permissions and does not have a cdk-nag rule suppression with evidence for those permission.\n[Error at /StackName/rSecondUser/DefaultPolicy/Resource] AwsSolutions-IAM5[Resource::*]: The IAM entity contains wildcard permissions and does not have a cdk-nag rule suppression with evidence for those permission.\n```\n\nBy applying the following suppressions\n\n```typescript\nimport { User } from 'aws-cdk-lib/aws-iam';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const firstUser = new User(this, 'rFirstUser');\n firstUser.addToPolicy(\n new PolicyStatement({\n actions: ['s3:*'],\n resources: ['*'],\n })\n );\n const secondUser = new User(this, 'rSecondUser');\n secondUser.addToPolicy(\n new PolicyStatement({\n actions: ['s3:*'],\n resources: ['*'],\n })\n );\n const thirdUser = new User(this, 'rSecondUser');\n thirdUser.addToPolicy(\n new PolicyStatement({\n actions: ['sqs:CreateQueue'],\n resources: [`arn:aws:sqs:${this.region}:${this.account}:*`],\n })\n );\n NagSuppressions.addResourceSuppressions(\n firstUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason:\n \"Only suppress AwsSolutions-IAM5 's3:*' finding on First User.\",\n appliesTo: ['Action::s3:*'],\n },\n ],\n true\n );\n NagSuppressions.addResourceSuppressions(\n secondUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Suppress all AwsSolutions-IAM5 findings on Second User.',\n },\n ],\n true\n );\n NagSuppressions.addResourceSuppressions(\n thirdUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Suppress AwsSolutions-IAM5 on the SQS resource.',\n appliesTo: [\n {\n regex: '/^Resource::arn:aws:sqs:(.*):\\\\*$/g',\n },\n ],\n },\n ],\n true\n );\n }\n}\n```\n\nYou would see the following error on synth/deploy\n\n```bash\n[Error at /StackName/rFirstUser/DefaultPolicy/Resource] AwsSolutions-IAM5[Resource::*]: The IAM entity contains wildcard permissions and does not have a cdk-nag rule suppression with evidence for those permission.\n```\n\n</details>\n\n## Suppressing Rule Validation Failures\n\nWhen a rule validation fails it is handled similarly to a rule violation, and can be suppressed in the same manner. The `ID` for a rule failure is `CdkNagValidationFailure`.\n\nIf a rule is suppressed in a non-granular manner (i.e. `appliesTo` is not set, see example 1 above) then validation failures on that rule are also suppressed.\n\nValidation failure suppression respects any applied [Suppression Ignore Conditions](#conditionally-ignoring-suppressions)\n\n<details>\n <summary>Example 1) Suppress all Validation Failures on a Resource</summary>\n\n```typescript\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n { id: 'CdkNagValidationFailure', reason: 'lorem ipsum' },\n ]);\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 2) Granular Suppression of Validation Failures</summary>\nValidation failures can be suppressed for individual rules by using `appliesTo` to list the desired rules\n\n```typescript\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n {\n id: 'CdkNagValidationFailure',\n reason: 'lorem ipsum',\n appliesTo: ['AwsSolutions-L1'],\n },\n ]);\n }\n}\n```\n\n</details>\n\n## Suppressing `aws-cdk-lib/pipelines` Violations\n\nThe [aws-cdk-lib/pipelines.CodePipeline](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.pipelines.CodePipeline.html) construct and its child constructs are not guaranteed to be \"Visited\" by `Aspects`, as they are not added during the \"Construction\" phase of the [cdk lifecycle](https://docs.aws.amazon.com/cdk/v2/guide/apps.html#lifecycle). Because of this behavior, you may experience problems such as rule violations not appearing or the inability to suppress violations on these constructs.\n\nYou can remediate these rule violation and suppression problems by forcing the pipeline construct creation forward by calling `.buildPipeline()` on your `CodePipeline` object. Otherwise you may see errors such as:\n\n```\nError: Suppression path \"/this/construct/path\" did not match any resource. This can occur when a resource does not exist or if a suppression is applied before a resource is created.\n```\n\nSee [this issue](https://github.com/aws/aws-cdk/issues/18440) for more information.\n\n<details>\n <summary>Example) Suppressing Violations in Pipelines</summary>\n\n`example-app.ts`\n\n```ts\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks } from 'cdk-nag';\nimport { ExamplePipeline } from '../lib/example-pipeline';\n\nconst app = new App();\nnew ExamplePipeline(app, 'example-cdk-pipeline');\nAspects.of(app).add(new AwsSolutionsChecks({ verbose: true }));\napp.synth();\n```\n\n`example-pipeline.ts`\n\n```ts\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Repository } from 'aws-cdk-lib/aws-codecommit';\nimport {\n CodePipeline,\n CodePipelineSource,\n ShellStep,\n} from 'aws-cdk-lib/pipelines';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Construct } from 'constructs';\n\nexport class ExamplePipeline extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n\n const exampleSynth = new ShellStep('ExampleSynth', {\n commands: ['yarn build --frozen-lockfile'],\n input: CodePipelineSource.codeCommit(\n new Repository(this, 'ExampleRepo', { repositoryName: 'ExampleRepo' }),\n 'main'\n ),\n });\n\n const ExamplePipeline = new CodePipeline(this, 'ExamplePipeline', {\n synth: exampleSynth,\n });\n\n // Force the pipeline construct creation forward before applying suppressions.\n // @See https://github.com/aws/aws-cdk/issues/18440\n ExamplePipeline.buildPipeline();\n\n // The path suppression will error if you comment out \"ExamplePipeline.buildPipeline();\"\"\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/example-cdk-pipeline/ExamplePipeline/Pipeline/ArtifactsBucket/Resource',\n [\n {\n id: 'AwsSolutions-S1',\n reason: 'Because I said so',\n },\n ]\n );\n }\n}\n```\n\n</details>\n\n## Rules and Property Overrides\n\nIn some cases L2 Constructs do not have a native option to remediate an issue and must be fixed via [Raw Overrides](https://docs.aws.amazon.com/cdk/latest/guide/cfn_layer.html#cfn_layer_raw). Since raw overrides take place after template synthesis these fixes are not caught by cdk-nag. In this case you should remediate the issue and suppress the issue like in the following example.\n\n<details>\n <summary>Example) Property Overrides</summary>\n\n```ts\nimport {\n Instance,\n InstanceType,\n InstanceClass,\n MachineImage,\n Vpc,\n CfnInstance,\n} from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const instance = new Instance(this, 'rInstance', {\n vpc: new Vpc(this, 'rVpc'),\n instanceType: new InstanceType(InstanceClass.T3),\n machineImage: MachineImage.latestAmazonLinux(),\n });\n const cfnIns = instance.node.defaultChild as CfnInstance;\n cfnIns.addPropertyOverride('DisableApiTermination', true);\n NagSuppressions.addResourceSuppressions(instance, [\n {\n id: 'AwsSolutions-EC29',\n reason: 'Remediated through property override.',\n },\n ]);\n }\n}\n```\n\n</details>\n\n## Conditionally Ignoring Suppressions\n\nYou can optionally create a condition that prevents certain rules from being suppressed. You can create conditions for any variety of reasons. Examples include a condition that always ignores a suppression, a condition that ignores a suppression based on the date, a condition that ignores a suppression based on the reason. You can read [the developer docs](./docs/IgnoreSuppressionConditions.md) for more information on creating your own conditions.\n\n<details>\n <summary>Example) Using the pre-built `SuppressionIgnoreErrors` class to ignore suppressions on any `Error` level rules.</summary>\n\n```ts\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks, SuppressionIgnoreErrors } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\n// Ignore Suppressions on any errors\nAspects.of(app).add(\n new AwsSolutionsChecks({\n suppressionIgnoreCondition: new SuppressionIgnoreErrors(),\n })\n);\n```\n\n</details>\n\n## Customizing Logging\n\n`NagLogger`s give `NagPack` authors and users the ability to create their own custom reporting mechanisms. All pre-built `NagPacks`come with the `AnnotationsLogger`and the `NagReportLogger` (with CSV reports) enabled by default.\n\nSee the [NagLogger](./docs/NagLogger.md) developer docs for more information.\n\n<details>\n <summary>Example) Adding the `ExtremelyHelpfulConsoleLogger` example from the NagLogger docs</summary>\n\n```ts\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { ExtremelyHelpfulConsoleLogger } from './docs/NagLogger';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(\n new AwsSolutionsChecks({\n additionalLoggers: [new ExtremelyHelpfulConsoleLogger()],\n })\n);\n```\n\n</details>\n\n## Using on CloudFormation templates\n\nYou can use cdk-nag on existing CloudFormation templates by using the [cloudformation-include](https://docs.aws.amazon.com/cdk/latest/guide/use_cfn_template.html#use_cfn_template_install) module.\n\n<details>\n <summary>Example 1) CloudFormation template with suppression</summary>\n\nSample CloudFormation template with suppression\n\n```json\n{\n \"Resources\": {\n \"rBucket\": {\n \"Type\": \"AWS::S3::Bucket\",\n \"Properties\": {\n \"BucketName\": \"some-bucket-name\"\n },\n \"Metadata\": {\n \"cdk_nag\": {\n \"rules_to_suppress\": [\n {\n \"id\": \"AwsSolutions-S1\",\n \"reason\": \"at least 10 characters\"\n }\n ]\n }\n }\n }\n }\n}\n```\n\nSample App\n\n```typescript\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(new AwsSolutionsChecks());\n```\n\nSample Stack with imported template\n\n```typescript\nimport { CfnInclude } from 'aws-cdk-lib/cloudformation-include';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new CfnInclude(this, 'Template', {\n templateFile: 'my-template.json',\n });\n // Add any additional suppressions\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/CdkNagDemo/Template/rBucket',\n [\n {\n id: 'AwsSolutions-S2',\n reason: 'at least 10 characters',\n },\n ]\n );\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 2) CloudFormation template with granular suppressions</summary>\n\nSample CloudFormation template with suppression\n\n```json\n{\n \"Resources\": {\n \"myPolicy\": {\n \"Type\": \"AWS::IAM::Policy\",\n \"Properties\": {\n \"PolicyDocument\": {\n \"Statement\": [\n {\n \"Action\": [\n \"kms:Decrypt\",\n \"kms:DescribeKey\",\n \"kms:Encrypt\",\n \"kms:ReEncrypt*\",\n \"kms:GenerateDataKey*\"\n ],\n \"Effect\": \"Allow\",\n \"Resource\": [\"some-key-arn\"]\n }\n ],\n \"Version\": \"2012-10-17\"\n }\n },\n \"Metadata\": {\n \"cdk_nag\": {\n \"rules_to_suppress\": [\n {\n \"id\": \"AwsSolutions-IAM5\",\n \"reason\": \"Allow key data access\",\n \"applies_to\": [\n \"Action::kms:ReEncrypt*\",\n \"Action::kms:GenerateDataKey*\"\n ]\n }\n ]\n }\n }\n }\n }\n}\n```\n\nSample App\n\n```typescript\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(new AwsSolutionsChecks());\n```\n\nSample Stack with imported template\n\n```typescript\nimport { CfnInclude } from 'aws-cdk-lib/cloudformation-include';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new CfnInclude(this, 'Template', {\n templateFile: 'my-template.json',\n });\n // Add any additional suppressions\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/CdkNagDemo/Template/myPolicy',\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Allow key data access',\n appliesTo: ['Action::kms:ReEncrypt*', 'Action::kms:GenerateDataKey*'],\n },\n ]\n );\n }\n}\n```\n\n</details>\n\n## Contributing\n\nSee [CONTRIBUTING](./CONTRIBUTING.md) for more information.\n\n## License\n\nThis project is licensed under the Apache-2.0 License.\n"
3930
+ "markdown": "<!--\nCopyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\nSPDX-License-Identifier: Apache-2.0\n-->\n\n# cdk-nag\n\n[![PyPI version](https://img.shields.io/pypi/v/cdk-nag)](https://pypi.org/project/cdk-nag/)\n[![npm version](https://img.shields.io/npm/v/cdk-nag)](https://www.npmjs.com/package/cdk-nag)\n[![Maven version](https://img.shields.io/maven-central/v/io.github.cdklabs/cdknag)](https://search.maven.org/search?q=a:cdknag)\n[![NuGet version](https://img.shields.io/nuget/v/Cdklabs.CdkNag)](https://www.nuget.org/packages/Cdklabs.CdkNag)\n[![Go version](https://img.shields.io/github/go-mod/go-version/cdklabs/cdk-nag-go?color=blue&filename=cdknag%2Fgo.mod)](https://github.com/cdklabs/cdk-nag-go)\n\n[![View on Construct Hub](https://constructs.dev/badge?package=cdk-nag)](https://constructs.dev/packages/cdk-nag)\n\nCheck CDK applications or [CloudFormation templates](#using-on-cloudformation-templates) for best practices using a combination of available rule packs. Inspired by [cfn_nag](https://github.com/stelligent/cfn_nag).\n\nCheck out [this blog post](https://aws.amazon.com/blogs/devops/manage-application-security-and-compliance-with-the-aws-cloud-development-kit-and-cdk-nag/) for a guided overview!\n\n![demo](cdk_nag.gif)\n\n## Available Rules and Packs\n\nSee [RULES](./RULES.md) for more information on all the available packs.\n\n1. [AWS Solutions](./RULES.md#awssolutions)\n2. [HIPAA Security](./RULES.md#hipaa-security)\n3. [NIST 800-53 rev 4](./RULES.md#nist-800-53-rev-4)\n4. [NIST 800-53 rev 5](./RULES.md#nist-800-53-rev-5)\n5. [PCI DSS 3.2.1](./RULES.md#pci-dss-321)\n6. [Serverless](./RULES.md#serverless)\n\n[RULES](./RULES.md) also includes a collection of [additional rules](./RULES.md#additional-rules) that are not currently included in any of the pre-built NagPacks, but are still available for inclusion in custom NagPacks.\n\nRead the [NagPack developer docs](./docs/NagPack.md) if you are interested in creating your own pack.\n\n## Usage\n\nFor a full list of options See `NagPackProps` in the [API.md](./API.md#struct-nagpackprops)\n\n<details>\n<summary>Including in an application</summary>\n\n```typescript\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\n// Simple rule informational messages using the AWS Solutions Rule pack\nAspects.of(app).add(new AwsSolutionsChecks());\n// Multiple rule packs can be run against the same app\nAspects.of(app).add(new NIST80053R5Checks());\n// Additional explanations on the purpose of triggered rules\n// Aspects.of(stack).add(new AwsSolutionsChecks({ verbose: true }));\n```\n\n</details>\n\n## Suppressing a Rule\n\n<details>\n <summary>Example 1) Default Construct</summary>\n\n```typescript\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n { id: 'AwsSolutions-EC23', reason: 'lorem ipsum' },\n ]);\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 2) On Multiple Constructs</summary>\n\n```typescript\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const vpc = new Vpc(this, 'vpc');\n const test1 = new SecurityGroup(this, 'test', { vpc });\n test1.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n const test2 = new SecurityGroup(this, 'test', { vpc });\n test2.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(\n [test1, test2],\n [{ id: 'AwsSolutions-EC23', reason: 'lorem ipsum' }]\n );\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 3) Child Constructs</summary>\n\n```typescript\nimport { User, PolicyStatement } from 'aws-cdk-lib/aws-iam';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const user = new User(this, 'rUser');\n user.addToPolicy(\n new PolicyStatement({\n actions: ['s3:PutObject'],\n resources: ['arn:aws:s3:::bucket_name/*'],\n })\n );\n // Enable adding suppressions to child constructs\n NagSuppressions.addResourceSuppressions(\n user,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'lorem ipsum',\n appliesTo: ['Resource::arn:aws:s3:::bucket_name/*'], // optional\n },\n ],\n true\n );\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 4) Stack Level </summary>\n\n```typescript\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks, NagSuppressions } from 'cdk-nag';\n\nconst app = new App();\nconst stack = new CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(new AwsSolutionsChecks());\nNagSuppressions.addStackSuppressions(stack, [\n { id: 'AwsSolutions-EC23', reason: 'lorem ipsum' },\n]);\n```\n\n</details>\n\n<details>\n <summary>Example 5) Construct path</summary>\n\nIf you received the following error on synth/deploy\n\n```bash\n[Error at /StackName/Custom::CDKBucketDeployment8675309/ServiceRole/Resource] AwsSolutions-IAM4: The IAM user, role, or group uses AWS managed policies\n```\n\n```typescript\nimport { Bucket } from 'aws-cdk-lib/aws-s3';\nimport { BucketDeployment } from 'aws-cdk-lib/aws-s3-deployment';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new BucketDeployment(this, 'rDeployment', {\n sources: [],\n destinationBucket: Bucket.fromBucketName(this, 'rBucket', 'foo'),\n });\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/StackName/Custom::CDKBucketDeployment8675309/ServiceRole/Resource',\n [{ id: 'AwsSolutions-IAM4', reason: 'at least 10 characters' }]\n );\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 6) Granular Suppressions of findings</summary>\n\nCertain rules support granular suppressions of `findings`. If you received the following errors on synth/deploy\n\n```bash\n[Error at /StackName/rFirstUser/DefaultPolicy/Resource] AwsSolutions-IAM5[Action::s3:*]: The IAM entity contains wildcard permissions and does not have a cdk-nag rule suppression with evidence for those permission.\n[Error at /StackName/rFirstUser/DefaultPolicy/Resource] AwsSolutions-IAM5[Resource::*]: The IAM entity contains wildcard permissions and does not have a cdk-nag rule suppression with evidence for those permission.\n[Error at /StackName/rSecondUser/DefaultPolicy/Resource] AwsSolutions-IAM5[Action::s3:*]: The IAM entity contains wildcard permissions and does not have a cdk-nag rule suppression with evidence for those permission.\n[Error at /StackName/rSecondUser/DefaultPolicy/Resource] AwsSolutions-IAM5[Resource::*]: The IAM entity contains wildcard permissions and does not have a cdk-nag rule suppression with evidence for those permission.\n```\n\nBy applying the following suppressions\n\n```typescript\nimport { User } from 'aws-cdk-lib/aws-iam';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const firstUser = new User(this, 'rFirstUser');\n firstUser.addToPolicy(\n new PolicyStatement({\n actions: ['s3:*'],\n resources: ['*'],\n })\n );\n const secondUser = new User(this, 'rSecondUser');\n secondUser.addToPolicy(\n new PolicyStatement({\n actions: ['s3:*'],\n resources: ['*'],\n })\n );\n const thirdUser = new User(this, 'rSecondUser');\n thirdUser.addToPolicy(\n new PolicyStatement({\n actions: ['sqs:CreateQueue'],\n resources: [`arn:aws:sqs:${this.region}:${this.account}:*`],\n })\n );\n NagSuppressions.addResourceSuppressions(\n firstUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason:\n \"Only suppress AwsSolutions-IAM5 's3:*' finding on First User.\",\n appliesTo: ['Action::s3:*'],\n },\n ],\n true\n );\n NagSuppressions.addResourceSuppressions(\n secondUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Suppress all AwsSolutions-IAM5 findings on Second User.',\n },\n ],\n true\n );\n NagSuppressions.addResourceSuppressions(\n thirdUser,\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Suppress AwsSolutions-IAM5 on the SQS resource.',\n appliesTo: [\n {\n regex: '/^Resource::arn:aws:sqs:(.*):\\\\*$/g',\n },\n ],\n },\n ],\n true\n );\n }\n}\n```\n\nYou would see the following error on synth/deploy\n\n```bash\n[Error at /StackName/rFirstUser/DefaultPolicy/Resource] AwsSolutions-IAM5[Resource::*]: The IAM entity contains wildcard permissions and does not have a cdk-nag rule suppression with evidence for those permission.\n```\n\n</details>\n\n## Suppressing Rule Validation Failures\n\nWhen a rule validation fails it is handled similarly to a rule violation, and can be suppressed in the same manner. The `ID` for a rule failure is `CdkNagValidationFailure`.\n\nIf a rule is suppressed in a non-granular manner (i.e. `appliesTo` is not set, see example 1 above) then validation failures on that rule are also suppressed.\n\nValidation failure suppression respects any applied [Suppression Ignore Conditions](#conditionally-ignoring-suppressions)\n\n<details>\n <summary>Example 1) Suppress all Validation Failures on a Resource</summary>\n\n```typescript\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n { id: 'CdkNagValidationFailure', reason: 'lorem ipsum' },\n ]);\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 2) Granular Suppression of Validation Failures</summary>\nValidation failures can be suppressed for individual rules by using `appliesTo` to list the desired rules\n\n```typescript\nimport { SecurityGroup, Vpc, Peer, Port } from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const test = new SecurityGroup(this, 'test', {\n vpc: new Vpc(this, 'vpc'),\n });\n test.addIngressRule(Peer.anyIpv4(), Port.allTraffic());\n NagSuppressions.addResourceSuppressions(test, [\n {\n id: 'CdkNagValidationFailure',\n reason: 'lorem ipsum',\n appliesTo: ['AwsSolutions-L1'],\n },\n ]);\n }\n}\n```\n\n</details>\n\n## Suppressing `aws-cdk-lib/pipelines` Violations\n\nThe [aws-cdk-lib/pipelines.CodePipeline](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.pipelines.CodePipeline.html) construct and its child constructs are not guaranteed to be \"Visited\" by `Aspects`, as they are not added during the \"Construction\" phase of the [cdk lifecycle](https://docs.aws.amazon.com/cdk/v2/guide/apps.html#lifecycle). Because of this behavior, you may experience problems such as rule violations not appearing or the inability to suppress violations on these constructs.\n\nYou can remediate these rule violation and suppression problems by forcing the pipeline construct creation forward by calling `.buildPipeline()` on your `CodePipeline` object. Otherwise you may see errors such as:\n\n```\nError: Suppression path \"/this/construct/path\" did not match any resource. This can occur when a resource does not exist or if a suppression is applied before a resource is created.\n```\n\nSee [this issue](https://github.com/aws/aws-cdk/issues/18440) for more information.\n\n<details>\n <summary>Example) Suppressing Violations in Pipelines</summary>\n\n`example-app.ts`\n\n```ts\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { AwsSolutionsChecks } from 'cdk-nag';\nimport { ExamplePipeline } from '../lib/example-pipeline';\n\nconst app = new App();\nnew ExamplePipeline(app, 'example-cdk-pipeline');\nAspects.of(app).add(new AwsSolutionsChecks({ verbose: true }));\napp.synth();\n```\n\n`example-pipeline.ts`\n\n```ts\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Repository } from 'aws-cdk-lib/aws-codecommit';\nimport {\n CodePipeline,\n CodePipelineSource,\n ShellStep,\n} from 'aws-cdk-lib/pipelines';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Construct } from 'constructs';\n\nexport class ExamplePipeline extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n\n const exampleSynth = new ShellStep('ExampleSynth', {\n commands: ['yarn build --frozen-lockfile'],\n input: CodePipelineSource.codeCommit(\n new Repository(this, 'ExampleRepo', { repositoryName: 'ExampleRepo' }),\n 'main'\n ),\n });\n\n const ExamplePipeline = new CodePipeline(this, 'ExamplePipeline', {\n synth: exampleSynth,\n });\n\n // Force the pipeline construct creation forward before applying suppressions.\n // @See https://github.com/aws/aws-cdk/issues/18440\n ExamplePipeline.buildPipeline();\n\n // The path suppression will error if you comment out \"ExamplePipeline.buildPipeline();\"\"\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/example-cdk-pipeline/ExamplePipeline/Pipeline/ArtifactsBucket/Resource',\n [\n {\n id: 'AwsSolutions-S1',\n reason: 'Because I said so',\n },\n ]\n );\n }\n}\n```\n\n</details>\n\n## Rules and Property Overrides\n\nIn some cases L2 Constructs do not have a native option to remediate an issue and must be fixed via [Raw Overrides](https://docs.aws.amazon.com/cdk/latest/guide/cfn_layer.html#cfn_layer_raw). Since raw overrides take place after template synthesis these fixes are not caught by cdk-nag. In this case you should remediate the issue and suppress the issue like in the following example.\n\n<details>\n <summary>Example) Property Overrides</summary>\n\n```ts\nimport {\n Instance,\n InstanceType,\n InstanceClass,\n MachineImage,\n Vpc,\n CfnInstance,\n} from 'aws-cdk-lib/aws-ec2';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { NagSuppressions } from 'cdk-nag';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n const instance = new Instance(this, 'rInstance', {\n vpc: new Vpc(this, 'rVpc'),\n instanceType: new InstanceType(InstanceClass.T3),\n machineImage: MachineImage.latestAmazonLinux(),\n });\n const cfnIns = instance.node.defaultChild as CfnInstance;\n cfnIns.addPropertyOverride('DisableApiTermination', true);\n NagSuppressions.addResourceSuppressions(instance, [\n {\n id: 'AwsSolutions-EC29',\n reason: 'Remediated through property override.',\n },\n ]);\n }\n}\n```\n\n</details>\n\n## Conditionally Ignoring Suppressions\n\nYou can optionally create a condition that prevents certain rules from being suppressed. You can create conditions for any variety of reasons. Examples include a condition that always ignores a suppression, a condition that ignores a suppression based on the date, a condition that ignores a suppression based on the reason. You can read [the developer docs](./docs/IgnoreSuppressionConditions.md) for more information on creating your own conditions.\n\n<details>\n <summary>Example) Using the pre-built `SuppressionIgnoreErrors` class to ignore suppressions on any `Error` level rules.</summary>\n\n```ts\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks, SuppressionIgnoreErrors } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\n// Ignore Suppressions on any errors\nAspects.of(app).add(\n new AwsSolutionsChecks({\n suppressionIgnoreCondition: new SuppressionIgnoreErrors(),\n })\n);\n```\n\n</details>\n\n## Customizing Logging\n\n`NagLogger`s give `NagPack` authors and users the ability to create their own custom reporting mechanisms. All pre-built `NagPacks`come with the `AnnotationsLogger`and the `NagReportLogger` (with CSV reports) enabled by default.\n\nSee the [NagLogger](./docs/NagLogger.md) developer docs for more information.\n\n<details>\n <summary>Example) Adding the `ExtremelyHelpfulConsoleLogger` example from the NagLogger docs</summary>\n\n```ts\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { ExtremelyHelpfulConsoleLogger } from './docs/NagLogger';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(\n new AwsSolutionsChecks({\n additionalLoggers: [new ExtremelyHelpfulConsoleLogger()],\n })\n);\n```\n\n</details>\n\n## Using on CloudFormation templates\n\nYou can use cdk-nag on existing CloudFormation templates by using the [cloudformation-include](https://docs.aws.amazon.com/cdk/latest/guide/use-cfn-template.html#use-cfn-template-import) module.\n\n<details>\n <summary>Example 1) CloudFormation template with suppression</summary>\n\nSample CloudFormation template with suppression\n\n```json\n{\n \"Resources\": {\n \"rBucket\": {\n \"Type\": \"AWS::S3::Bucket\",\n \"Properties\": {\n \"BucketName\": \"some-bucket-name\"\n },\n \"Metadata\": {\n \"cdk_nag\": {\n \"rules_to_suppress\": [\n {\n \"id\": \"AwsSolutions-S1\",\n \"reason\": \"at least 10 characters\"\n }\n ]\n }\n }\n }\n }\n}\n```\n\nSample App\n\n```typescript\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(new AwsSolutionsChecks());\n```\n\nSample Stack with imported template\n\n```typescript\nimport { CfnInclude } from 'aws-cdk-lib/cloudformation-include';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new CfnInclude(this, 'Template', {\n templateFile: 'my-template.json',\n });\n // Add any additional suppressions\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/CdkNagDemo/Template/rBucket',\n [\n {\n id: 'AwsSolutions-S2',\n reason: 'at least 10 characters',\n },\n ]\n );\n }\n}\n```\n\n</details>\n\n<details>\n <summary>Example 2) CloudFormation template with granular suppressions</summary>\n\nSample CloudFormation template with suppression\n\n```json\n{\n \"Resources\": {\n \"myPolicy\": {\n \"Type\": \"AWS::IAM::Policy\",\n \"Properties\": {\n \"PolicyDocument\": {\n \"Statement\": [\n {\n \"Action\": [\n \"kms:Decrypt\",\n \"kms:DescribeKey\",\n \"kms:Encrypt\",\n \"kms:ReEncrypt*\",\n \"kms:GenerateDataKey*\"\n ],\n \"Effect\": \"Allow\",\n \"Resource\": [\"some-key-arn\"]\n }\n ],\n \"Version\": \"2012-10-17\"\n }\n },\n \"Metadata\": {\n \"cdk_nag\": {\n \"rules_to_suppress\": [\n {\n \"id\": \"AwsSolutions-IAM5\",\n \"reason\": \"Allow key data access\",\n \"applies_to\": [\n \"Action::kms:ReEncrypt*\",\n \"Action::kms:GenerateDataKey*\"\n ]\n }\n ]\n }\n }\n }\n }\n}\n```\n\nSample App\n\n```typescript\nimport { App, Aspects } from 'aws-cdk-lib';\nimport { CdkTestStack } from '../lib/cdk-test-stack';\nimport { AwsSolutionsChecks } from 'cdk-nag';\n\nconst app = new App();\nnew CdkTestStack(app, 'CdkNagDemo');\nAspects.of(app).add(new AwsSolutionsChecks());\n```\n\nSample Stack with imported template\n\n```typescript\nimport { CfnInclude } from 'aws-cdk-lib/cloudformation-include';\nimport { NagSuppressions } from 'cdk-nag';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\n\nexport class CdkTestStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new CfnInclude(this, 'Template', {\n templateFile: 'my-template.json',\n });\n // Add any additional suppressions\n NagSuppressions.addResourceSuppressionsByPath(\n this,\n '/CdkNagDemo/Template/myPolicy',\n [\n {\n id: 'AwsSolutions-IAM5',\n reason: 'Allow key data access',\n appliesTo: ['Action::kms:ReEncrypt*', 'Action::kms:GenerateDataKey*'],\n },\n ]\n );\n }\n}\n```\n\n</details>\n\n## Contributing\n\nSee [CONTRIBUTING](./CONTRIBUTING.md) for more information.\n\n## License\n\nThis project is licensed under the Apache-2.0 License.\n"
3931
3931
  },
3932
3932
  "repository": {
3933
3933
  "type": "git",
@@ -7334,6 +7334,6 @@
7334
7334
  "symbolId": "src/ignore-suppression-conditions:SuppressionIgnoreOr"
7335
7335
  }
7336
7336
  },
7337
- "version": "2.37.0",
7338
- "fingerprint": "PiVa/VPklGlOn3/RHBznBzlw6RcOZ5/4NHxrX2eY1Gw="
7337
+ "version": "2.37.20",
7338
+ "fingerprint": "G38spaFLaZ1gVCGzruzX+1fnJa3mlJ4hv0d6sJ/sXzQ="
7339
7339
  }
@@ -529,7 +529,7 @@ Aspects.of(app).add(
529
529
 
530
530
  ## Using on CloudFormation templates
531
531
 
532
- You can use cdk-nag on existing CloudFormation templates by using the [cloudformation-include](https://docs.aws.amazon.com/cdk/latest/guide/use_cfn_template.html#use_cfn_template_install) module.
532
+ You can use cdk-nag on existing CloudFormation templates by using the [cloudformation-include](https://docs.aws.amazon.com/cdk/latest/guide/use-cfn-template.html#use-cfn-template-import) module.
533
533
 
534
534
  <details>
535
535
  <summary>Example 1) CloudFormation template with suppression</summary>
@@ -28,7 +28,7 @@ class SuppressionIgnoreAnd {
28
28
  }
29
29
  exports.SuppressionIgnoreAnd = SuppressionIgnoreAnd;
30
30
  _a = JSII_RTTI_SYMBOL_1;
31
- SuppressionIgnoreAnd[_a] = { fqn: "cdk-nag.SuppressionIgnoreAnd", version: "2.37.0" };
31
+ SuppressionIgnoreAnd[_a] = { fqn: "cdk-nag.SuppressionIgnoreAnd", version: "2.37.20" };
32
32
  /**
33
33
  * Ignore the suppression if any of the given INagSuppressionIgnore return a non-empty message
34
34
  */
@@ -52,7 +52,7 @@ class SuppressionIgnoreOr {
52
52
  }
53
53
  exports.SuppressionIgnoreOr = SuppressionIgnoreOr;
54
54
  _b = JSII_RTTI_SYMBOL_1;
55
- SuppressionIgnoreOr[_b] = { fqn: "cdk-nag.SuppressionIgnoreOr", version: "2.37.0" };
55
+ SuppressionIgnoreOr[_b] = { fqn: "cdk-nag.SuppressionIgnoreOr", version: "2.37.20" };
56
56
  /**
57
57
  * Always ignore the suppression
58
58
  */
@@ -69,7 +69,7 @@ class SuppressionIgnoreAlways {
69
69
  }
70
70
  exports.SuppressionIgnoreAlways = SuppressionIgnoreAlways;
71
71
  _c = JSII_RTTI_SYMBOL_1;
72
- SuppressionIgnoreAlways[_c] = { fqn: "cdk-nag.SuppressionIgnoreAlways", version: "2.37.0" };
72
+ SuppressionIgnoreAlways[_c] = { fqn: "cdk-nag.SuppressionIgnoreAlways", version: "2.37.20" };
73
73
  /**
74
74
  * Don't ignore the suppression
75
75
  */
@@ -80,7 +80,7 @@ class SuppressionIgnoreNever {
80
80
  }
81
81
  exports.SuppressionIgnoreNever = SuppressionIgnoreNever;
82
82
  _d = JSII_RTTI_SYMBOL_1;
83
- SuppressionIgnoreNever[_d] = { fqn: "cdk-nag.SuppressionIgnoreNever", version: "2.37.0" };
83
+ SuppressionIgnoreNever[_d] = { fqn: "cdk-nag.SuppressionIgnoreNever", version: "2.37.20" };
84
84
  /**
85
85
  * Ignore Suppressions for Rules with a NagMessageLevel.ERROR
86
86
  */
@@ -93,5 +93,5 @@ class SuppressionIgnoreErrors {
93
93
  }
94
94
  exports.SuppressionIgnoreErrors = SuppressionIgnoreErrors;
95
95
  _e = JSII_RTTI_SYMBOL_1;
96
- SuppressionIgnoreErrors[_e] = { fqn: "cdk-nag.SuppressionIgnoreErrors", version: "2.37.0" };
96
+ SuppressionIgnoreErrors[_e] = { fqn: "cdk-nag.SuppressionIgnoreErrors", version: "2.37.20" };
97
97
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdub3JlLXN1cHByZXNzaW9uLWNvbmRpdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaWdub3JlLXN1cHByZXNzaW9uLWNvbmRpdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSwyQ0FBOEM7QUF5QjlDOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUFHL0IsWUFBWSxHQUFHLHFCQUE4QztRQUMzRCxJQUFJLHFCQUFxQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLElBQUksS0FBSyxDQUNiLCtEQUErRCxDQUNoRSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztJQUNyRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQTZCO1FBQ3pDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDOztBQXRCSCxvREF1QkM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFHOUIsWUFBWSxHQUFHLG9CQUE2QztRQUMxRCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUNiLDhEQUE4RCxDQUMvRCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztJQUNuRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQTZCO1FBQ3pDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDTixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvQyxDQUFDOztBQXJCSCxrREFzQkM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSx1QkFBdUI7SUFFbEMsWUFBWSxjQUFzQjtRQUNoQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FDYiwwREFBMEQsQ0FDM0QsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsYUFBYSxDQUFDLE1BQThCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDOztBQVpILDBEQWFDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsc0JBQXNCO0lBQ2pDLGFBQWEsQ0FBQyxNQUE4QjtRQUMxQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7O0FBSEgsd0RBSUM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSx1QkFBdUI7SUFDbEMsYUFBYSxDQUFDLEtBQTZCO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSwyQkFBZSxDQUFDLEtBQUs7WUFDN0MsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sdURBQXVEO1lBQ3hFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDVCxDQUFDOztBQUxILDBEQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG5pbXBvcnQgeyBDZm5SZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IE5hZ01lc3NhZ2VMZXZlbCB9IGZyb20gJy4vbmFnLXJ1bGVzJztcblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgTmFnUnVsZSBhbmQgdGhlIHJlbGV2YW50IE5hZ1N1cHByZXNzaW9uIGZvciB0aGUgSU5hZ1N1cHByZXNzaW9uSWdub3JlXG4gKiBAcGFyYW0gcmVzb3VyY2UgVGhlIHJlc291cmNlIHRoZSBzdXBwcmVzc2lvbiBpcyBhcHBsaWVkIHRvLlxuICogQHBhcmFtIHJlYXNvbiBUaGUgcmVhc29uIGdpdmVuIGZvciB0aGUgc3VwcHJlc3Npb24uXG4gKiBAcGFyYW0gcnVsZUlkIFRoZSBpZCBvZiB0aGUgcnVsZSB0byBpZ25vcmUuXG4gKiBAcGFyYW0gZmluZGluZ0lkIFRoZSBpZCBvZiB0aGUgZmluZGluZyB0aGF0IGlzIGJlaW5nIGNoZWNrZWQuXG4gKiBAcGFyYW0gcnVsZUxldmVsIFRoZSBzZXZlcml0eSBsZXZlbCBvZiB0aGUgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdXBwcmVzc2lvbklnbm9yZUlucHV0IHtcbiAgcmVhZG9ubHkgcmVzb3VyY2U6IENmblJlc291cmNlO1xuICByZWFkb25seSByZWFzb246IHN0cmluZztcbiAgcmVhZG9ubHkgcnVsZUlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZpbmRpbmdJZDogc3RyaW5nO1xuICByZWFkb25seSBydWxlTGV2ZWw6IE5hZ01lc3NhZ2VMZXZlbDtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGNyZWF0aW5nIE5hZ1N1cHByZXNzaW9uIElnbm9yZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTmFnU3VwcHJlc3Npb25JZ25vcmUge1xuICBjcmVhdGVNZXNzYWdlKGlucHV0OiBTdXBwcmVzc2lvbklnbm9yZUlucHV0KTogc3RyaW5nO1xufVxuXG4vKipcbiAqIElnbm9yZSB0aGUgc3VwcHJlc3Npb24gaWYgYWxsIG9mIHRoZSBnaXZlbiBJTmFnU3VwcHJlc3Npb25JZ25vcmUgcmV0dXJuIGEgbm9uLWVtcHR5IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGNsYXNzIFN1cHByZXNzaW9uSWdub3JlQW5kIGltcGxlbWVudHMgSU5hZ1N1cHByZXNzaW9uSWdub3JlIHtcbiAgcHJpdmF0ZSBhbmRTdXBwcmVzc2lvbklnbm9yZXM6IElOYWdTdXBwcmVzc2lvbklnbm9yZVtdO1xuXG4gIGNvbnN0cnVjdG9yKC4uLlN1cHByZXNzaW9uSWdub3JlQW5kczogSU5hZ1N1cHByZXNzaW9uSWdub3JlW10pIHtcbiAgICBpZiAoU3VwcHJlc3Npb25JZ25vcmVBbmRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnU3VwcHJlc3Npb25JZ25vcmVBbmQgbmVlZHMgYXQgbGVhc3Qgb25lIElOYWdTdXBwcmVzc2lvbklnbm9yZSdcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuYW5kU3VwcHJlc3Npb25JZ25vcmVzID0gU3VwcHJlc3Npb25JZ25vcmVBbmRzO1xuICB9XG5cbiAgY3JlYXRlTWVzc2FnZShpbnB1dDogU3VwcHJlc3Npb25JZ25vcmVJbnB1dCk6IHN0cmluZyB7XG4gICAgbGV0IG1lc3NhZ2VzID0gW107XG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuYW5kU3VwcHJlc3Npb25JZ25vcmVzKSB7XG4gICAgICBjb25zdCBtID0gaS5jcmVhdGVNZXNzYWdlKGlucHV0KTtcbiAgICAgIG1lc3NhZ2VzLnB1c2gobSk7XG4gICAgICBpZiAoIW0pIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZXMuam9pbignXFxuXFx0Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBJZ25vcmUgdGhlIHN1cHByZXNzaW9uIGlmIGFueSBvZiB0aGUgZ2l2ZW4gSU5hZ1N1cHByZXNzaW9uSWdub3JlIHJldHVybiBhIG5vbi1lbXB0eSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXBwcmVzc2lvbklnbm9yZU9yIGltcGxlbWVudHMgSU5hZ1N1cHByZXNzaW9uSWdub3JlIHtcbiAgcHJpdmF0ZSBTdXBwcmVzc2lvbklnbm9yZU9yczogSU5hZ1N1cHByZXNzaW9uSWdub3JlW107XG5cbiAgY29uc3RydWN0b3IoLi4ub3JTdXBwcmVzc2lvbklnbm9yZXM6IElOYWdTdXBwcmVzc2lvbklnbm9yZVtdKSB7XG4gICAgaWYgKG9yU3VwcHJlc3Npb25JZ25vcmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnU3VwcHJlc3Npb25JZ25vcmVPciBuZWVkcyBhdCBsZWFzdCBvbmUgSU5hZ1N1cHByZXNzaW9uSWdub3JlJ1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5TdXBwcmVzc2lvbklnbm9yZU9ycyA9IG9yU3VwcHJlc3Npb25JZ25vcmVzO1xuICB9XG5cbiAgY3JlYXRlTWVzc2FnZShpbnB1dDogU3VwcHJlc3Npb25JZ25vcmVJbnB1dCk6IHN0cmluZyB7XG4gICAgbGV0IG1lc3NhZ2VzID0gW107XG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuU3VwcHJlc3Npb25JZ25vcmVPcnMpIHtcbiAgICAgIGNvbnN0IG0gPSBpLmNyZWF0ZU1lc3NhZ2UoaW5wdXQpO1xuICAgICAgaWYgKG0pIHtcbiAgICAgICAgbWVzc2FnZXMucHVzaChtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VzID8gbWVzc2FnZXMuam9pbignXFxuXFx0JykgOiAnJztcbiAgfVxufVxuXG4vKipcbiAqIEFsd2F5cyBpZ25vcmUgdGhlIHN1cHByZXNzaW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXBwcmVzc2lvbklnbm9yZUFsd2F5cyBpbXBsZW1lbnRzIElOYWdTdXBwcmVzc2lvbklnbm9yZSB7XG4gIHByaXZhdGUgdHJpZ2dlck1lc3NhZ2U6IHN0cmluZztcbiAgY29uc3RydWN0b3IodHJpZ2dlck1lc3NhZ2U6IHN0cmluZykge1xuICAgIGlmICh0cmlnZ2VyTWVzc2FnZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3Byb3ZpZGUgYSB0cmlnZ2VyTWVzc2FnZSBmb3IgdGhlIFN1cHByZXNzaW9uSWdub3JlQWx3YXlzJ1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy50cmlnZ2VyTWVzc2FnZSA9IHRyaWdnZXJNZXNzYWdlO1xuICB9XG4gIGNyZWF0ZU1lc3NhZ2UoX2lucHV0OiBTdXBwcmVzc2lvbklnbm9yZUlucHV0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyTWVzc2FnZTtcbiAgfVxufVxuXG4vKipcbiAqIERvbid0IGlnbm9yZSB0aGUgc3VwcHJlc3Npb25cbiAqL1xuZXhwb3J0IGNsYXNzIFN1cHByZXNzaW9uSWdub3JlTmV2ZXIgaW1wbGVtZW50cyBJTmFnU3VwcHJlc3Npb25JZ25vcmUge1xuICBjcmVhdGVNZXNzYWdlKF9pbnB1dDogU3VwcHJlc3Npb25JZ25vcmVJbnB1dCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG5cbi8qKlxuICogSWdub3JlIFN1cHByZXNzaW9ucyBmb3IgUnVsZXMgd2l0aCBhIE5hZ01lc3NhZ2VMZXZlbC5FUlJPUlxuICovXG5leHBvcnQgY2xhc3MgU3VwcHJlc3Npb25JZ25vcmVFcnJvcnMgaW1wbGVtZW50cyBJTmFnU3VwcHJlc3Npb25JZ25vcmUge1xuICBjcmVhdGVNZXNzYWdlKGlucHV0OiBTdXBwcmVzc2lvbklnbm9yZUlucHV0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gaW5wdXQucnVsZUxldmVsID09IE5hZ01lc3NhZ2VMZXZlbC5FUlJPUlxuICAgICAgPyBgJHtpbnB1dC5ydWxlSWR9IGlzIGNhdGVnb3JpemVkIGFzIGFuIEVSUk9SIGFuZCBtYXkgbm90IGJlIHN1cHByZXNzZWRgXG4gICAgICA6ICcnO1xuICB9XG59XG4iXX0=
@@ -68,7 +68,7 @@ class AnnotationLogger {
68
68
  }
69
69
  exports.AnnotationLogger = AnnotationLogger;
70
70
  _a = JSII_RTTI_SYMBOL_1;
71
- AnnotationLogger[_a] = { fqn: "cdk-nag.AnnotationLogger", version: "2.37.0" };
71
+ AnnotationLogger[_a] = { fqn: "cdk-nag.AnnotationLogger", version: "2.37.20" };
72
72
  /**
73
73
  * Possible output formats of the NagReport
74
74
  */
@@ -203,5 +203,5 @@ class NagReportLogger {
203
203
  }
204
204
  exports.NagReportLogger = NagReportLogger;
205
205
  _b = JSII_RTTI_SYMBOL_1;
206
- NagReportLogger[_b] = { fqn: "cdk-nag.NagReportLogger", version: "2.37.0" };
206
+ NagReportLogger[_b] = { fqn: "cdk-nag.NagReportLogger", version: "2.37.20" };
207
207
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFnLWxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uYWctbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztFQUdFO0FBQ0YsMkJBQWlFO0FBQ2pFLCtCQUE0QjtBQUM1Qiw2Q0FBbUU7QUFDbkUsMkNBTXFCO0FBeUdyQjs7R0FFRztBQUNILE1BQWEsZ0JBQWdCO0lBSTNCLFlBQVksS0FBNkI7UUFIekMsa0JBQWEsR0FBRyxtQkFBbUIsQ0FBQztRQUlsQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxFQUFFLFVBQVUsSUFBSSxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUE4QjtRQUN6QyxPQUFPO0lBQ1QsQ0FBQztJQUNELGVBQWUsQ0FBQyxJQUFnQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUNoQyxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7UUFDRixRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2QixLQUFLLDJCQUFlLENBQUMsS0FBSztnQkFDeEIseUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDaEQsTUFBTTtZQUNSLEtBQUssMkJBQWUsQ0FBQyxJQUFJO2dCQUN2Qix5QkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsRCxNQUFNO1lBQ1IsS0FBSywyQkFBZSxDQUFDLElBQUk7Z0JBQ3ZCLHlCQUFXLENBQUMs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QyxpQkFBaUIsS0FBSyxTQUFTLEVBQ2pFLENBQUM7d0JBQ0QsZUFBZSxHQUFJLElBQWdDOzZCQUNoRCxpQkFBaUIsQ0FBQztvQkFDdkIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLGVBQWUsR0FBSSxJQUFxQzs2QkFDckQsc0JBQXNCLENBQUM7b0JBQzVCLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSTtvQkFDbkMsVUFBVTtvQkFDVixlQUFlO29CQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztvQkFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2lCQUN4QixDQUFDLENBQUM7Z0JBQ0gsSUFBQSxrQkFBYSxFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDbEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxLQUFLLENBQ2IsOEJBQThCLE1BQU0sMEJBQTBCLENBQy9ELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7O0FBaEpILDBDQWlKQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4qL1xuaW1wb3J0IHsgYXBwZW5kRmlsZVN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFubm90YXRpb25zLCBBcHAsIENmblJlc291cmNlLCBOYW1lcyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIE5hZ01lc3NhZ2VMZXZlbCxcbiAgTmFnUnVsZUNvbXBsaWFuY2UsXG4gIE5hZ1J1bGVQb3N0VmFsaWRhdGlvblN0YXRlcyxcbiAgTmFnUnVsZVN0YXRlcyxcbiAgVkFMSURBVElPTl9GQUlMVVJFX0lELFxufSBmcm9tICcuL25hZy1ydWxlcyc7XG5cbi8qKlxuICogU2hhcmVkIGRhdGEgZm9yIGFsbCBJTmFnTG9nZ2VyIG1ldGhvZHNcbiAqIEBwYXJhbSBuYWdQYWNrTmFtZSBUaGUgbmFtZSBvZiB0aGUgTmFnUGFjayB0aGF0IHRoZSBydWxlIGJlbG9uZ3MgdG8uXG4gKiBAcGFyYW0gcmVzb3VyY2UgVGhlIHJlc291cmNlIHRoZSBzdXBwcmVzc2lvbiBpcyBhcHBsaWVkIHRvLlxuICogQHBhcmFtIHJ1bGVJZCBUaGUgaWQgb2YgdGhlIHJ1bGUgdG8gaWdub3JlLlxuICogQHBhcmFtIHJ1bGVPcmlnaW5hbE5hbWUgT3JpZ2luYWwgbmFtZSBvZiB0aGUgcnVsZS5cbiAqIEBwYXJhbSBydWxlSW5mbyBXaHkgdGhlIHJ1bGUgd2FzIHRyaWdnZXJlZC5cbiAqIEBwYXJhbSBydWxlRXhwbGFuYXRpb24gV2h5IHRoZSBydWxlIGV4aXN0cy5cbiAqIEBwYXJhbSBydWxlTGV2ZWwgVGhlIHNldmVyaXR5IGxldmVsIG9mIHRoZSBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hZ0xvZ2dlckJhc2VEYXRhIHtcbiAgcmVhZG9ubHkgbmFnUGFja05hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVzb3VyY2U6IENmblJlc291cmNlO1xuICByZWFkb25seSBydWxlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcnVsZU9yaWdpbmFsTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBydWxlSW5mbzogc3RyaW5nO1xuICByZWFkb25seSBydWxlRXhwbGFuYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcnVsZUxldmVsOiBOYWdNZXNzYWdlTGV2ZWw7XG59XG5cbi8qKlxuICogRGF0YSBmb3Igb25Db21wbGlhbmNlIG1ldGhvZCBvZiBhbiBJTmFnTG9nZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hZ0xvZ2dlckNvbXBsaWFuY2VEYXRhIGV4dGVuZHMgTmFnTG9nZ2VyQmFzZURhdGEge31cbi8qKlxuICogRGF0YSBmb3Igb25Ob25Db21wbGlhbmNlIG1ldGhvZCBvZiBhbiBJTmFnTG9nZ2VyLlxuICogQHBhcmFtIGZpbmRpbmdJZCBUaGUgaWQgb2YgdGhlIGZpbmRpbmcgdGhhdCBpcyBiZWluZyBjaGVja2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hZ0xvZ2dlck5vbkNvbXBsaWFuY2VEYXRhIGV4dGVuZHMgTmFnTG9nZ2VyQmFzZURhdGEge1xuICByZWFkb25seSBmaW5kaW5nSWQ6IHN0cmluZztcbn1cbi8qKlxuICogRGF0YSBmb3Igb25TdXBwcmVzc2VkIG1ldGhvZCBvZiBhbiBJTmFnTG9nZ2VyLlxuICogQHBhcmFtIHN1cHByZXNzaW9uUmVhc29uIFRoZSByZWFzb24gZ2l2ZW4gZm9yIHRoZSBzdXBwcmVzc2lvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYWdMb2dnZXJTdXBwcmVzc2VkRGF0YSBleHRlbmRzIE5hZ0xvZ2dlck5vbkNvbXBsaWFuY2VEYXRhIHtcbiAgcmVhZG9ubHkgc3VwcHJlc3Npb25SZWFzb246IHN0cmluZztcbn1cbi8qKlxuICogRGF0YSBmb3Igb25FcnJvciBtZXRob2Qgb2YgYW4gSU5hZ0xvZ2dlci5cbiAqIEBwYXJhbSBlcnJvck1lc3NhZ2U6IFRoZSBlcnJvciB0aGF0IHdhcyB0aHJvd24uXG4gKiBAcGFyYW0gc2hvdWxkTG9nSWdub3JlZCBXaGV0aGVyIG9yIG5vdCB0aGUgTmFnUGFjayB1c2VyIGhhcyBpbmRpY2F0ZWQgdGhhdCB0aGV5IHdhbnQgdG8gbG9nIHN1cHByZXNzaW9uIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmFnTG9nZ2VyRXJyb3JEYXRhIGV4dGVuZHMgTmFnTG9nZ2VyQmFzZURhdGEge1xuICByZWFkb25seSBlcnJvck1lc3NhZ2U6IHN0cmluZztcbn1cbi8qKlxuICogRGF0YSBmb3Igb25TdXBwcmVzc2VkRXJyb3IgbWV0aG9kIG9mIGFuIElOYWdMb2dnZXIuXG4gKiBAcGFyYW0gZXJyb3JTdXBwcmVzc2lvblJlYXNvbiBUaGUgcmVhc29uIGdpdmVuIGZvciB0aGUgdmFsaWRhdGlvbiBlcnJvciBzdXBwcmVzc2lvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYWdMb2dnZXJTdXBwcmVzc2VkRXJyb3JEYXRhIGV4dGVuZHMgTmFnTG9nZ2VyRXJyb3JEYXRhIHtcbiAgcmVhZG9ubHkgZXJyb3JTdXBwcmVzc2lvblJlYXNvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIERhdGEgZm9yIG9uTm90QXBwbGljYWJsZSBtZXRob2Qgb2YgYW4gSU5hZ0xvZ2dlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYWdMb2dnZXJOb3RBcHBsaWNhYmxlRGF0YSBleHRlbmRzIE5hZ0xvZ2dlckJhc2VEYXRhIHt9XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBjcmVhdGluZyBOYWdTdXBwcmVzc2lvbiBJZ25vcmVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU5hZ0xvZ2dlciB7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIENmblJlc291cmNlIHBhc3NlcyB0aGUgY29tcGxpYW5jZSBjaGVjayBmb3IgYSBnaXZlbiBydWxlLlxuICAgKi9cbiAgb25Db21wbGlhbmNlKGRhdGE6IE5hZ0xvZ2dlckNvbXBsaWFuY2VEYXRhKTogdm9pZDtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGEgQ2ZuUmVzb3VyY2UgZG9lcyBub3QgcGFzcyB0aGUgY29tcGxpYW5jZSBjaGVjayBmb3IgYSBnaXZlbiBydWxlIGFuZCB0aGUgdGhlIHJ1bGUgdmlvbGF0aW9uIGlzIG5vdCBzdXBwcmVzc2VkIGJ5IHRoZSB1c2VyLlxuICAgKi9cbiAgb25Ob25Db21wbGlhbmNlKGRhdGE6IE5hZ0xvZ2dlck5vbkNvbXBsaWFuY2VEYXRhKTogdm9pZDtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGEgQ2ZuUmVzb3VyY2UgZG9lcyBub3QgcGFzcyB0aGUgY29tcGxpYW5jZSBjaGVjayBmb3IgYSBnaXZlbiBydWxlIGFuZCB0aGUgcnVsZSB2aW9sYXRpb24gaXMgc3VwcHJlc3NlZCBieSB0aGUgdXNlci5cbiAgICovXG4gIG9uU3VwcHJlc3NlZChkYXRhOiBOYWdMb2dnZXJTdXBwcmVzc2VkRGF0YSk6IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIHJ1bGUgdGhyb3dzIGFuIGVycm9yIGR1cmluZyB3aGlsZSB2YWxpZGF0aW5nIGEgQ2ZuUmVzb3VyY2UgZm9yIGNvbXBsaWFuY2UuXG4gICAqL1xuICBvbkVycm9yKGRhdGE6IE5hZ0xvZ2dlckVycm9yRGF0YSk6IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIHJ1bGUgdGhyb3dzIGFuIGVycm9yIGR1cmluZyB3aGlsZSB2YWxpZGF0aW5nIGEgQ2ZuUmVzb3VyY2UgZm9yIGNvbXBsaWFuY2UgYW5kIHRoZSBlcnJvciBpcyBzdXBwcmVzc2VkLlxuICAgKi9cbiAgb25TdXBwcmVzc2VkRXJyb3IoZGF0YTogTmFnTG9nZ2VyU3VwcHJlc3NlZEVycm9yRGF0YSk6IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIHJ1bGUgZG9lcyBub3QgYXBwbHkgdG8gdGhlIGdpdmVuIENmblJlc291cmNlLlxuICAgKi9cbiAgb25Ob3RBcHBsaWNhYmxlKGRhdGE6IE5hZ0xvZ2dlck5vdEFwcGxpY2FibGVEYXRhKTogdm9pZDtcbn1cblxuLyoqXG4gKiBQcm9wcyBmb3IgdGhlIEFubm90YXRpb25Mb2dnZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbm5vdGF0aW9uTG9nZ2VyUHJvcHMge1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIGV4dGVuZGVkIGV4cGxhbmF0b3J5IGRlc2NyaXB0aW9ucyBvbiB3YXJuaW5nLCBlcnJvciwgYW5kIGxvZ2dlZCBpZ25vcmUgbWVzc2FnZXMuXG4gICAqL1xuICByZWFkb25seSB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gbG9nIHN1cHByZXNzZWQgcnVsZSB2aW9sYXRpb25zIGFzIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgKGRlZmF1bHQ6IGZhbHNlKS5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ0lnbm9yZXM/OiBib29sZWFuO1xufVxuLyoqXG4gKiBBIE5hZ0xvZ2dlciB0aGF0IG91dHB1dHMgdG8gdGhlIENESyBBbm5vdGF0aW9ucyBzeXN0ZW0uXG4gKi9cbmV4cG9ydCBjbGFzcyBBbm5vdGF0aW9uTG9nZ2VyIGltcGxlbWVudHMgSU5hZ0xvZ2dlciB7XG4gIHN1cHByZXNzaW9uSWQgPSAnQ2RrTmFnU3VwcHJlc3Npb24nO1xuICByZWFkb25seSB2ZXJib3NlOiBib29sZWFuO1xuICByZWFkb25seSBsb2dJZ25vcmVzOiBib29sZWFuO1xuICBjb25zdHJ1Y3Rvcihwcm9wcz86IEFubm90YXRpb25Mb2dnZXJQcm9wcykge1xuICAgIHRoaXMudmVyYm9zZSA9IHByb3BzPy52ZXJib3NlID8/IGZhbHNlO1xuICAgIHRoaXMubG9nSWdub3JlcyA9IHByb3BzPy5sb2dJZ25vcmVzID8/IGZhbHNlO1xuICB9XG4gIG9uQ29tcGxpYW5jZShfZGF0YTogTmFnTG9nZ2VyQ29tcGxpYW5jZURhdGEpOiB2b2lkIHtcbiAgICByZXR1cm47XG4gIH1cbiAgb25Ob25Db21wbGlhbmNlKGRhdGE6IE5hZ0xvZ2dlck5vbkNvbXBsaWFuY2VEYXRhKTogdm9pZCB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuY3JlYXRlTWVzc2FnZShcbiAgICAgIGRhdGEucnVsZUlkLFxuICAgICAgZGF0YS5maW5kaW5nSWQsXG4gICAgICBkYXRhLnJ1bGVJbmZvLFxuICAgICAgZGF0YS5ydWxlRXhwbGFuYXRpb24sXG4gICAgICB0aGlzLnZlcmJvc2VcbiAgICApO1xuICAgIHN3aXRjaCAoZGF0YS5ydWxlTGV2ZWwpIHtcbiAgICAgIGNhc2UgTmFnTWVzc2FnZUxldmVsLkVSUk9SOlxuICAgICAgICBBbm5vdGF0aW9ucy5vZihkYXRhLnJlc291cmNlKS5hZGRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5hZ01lc3NhZ2VMZXZlbC5XQVJOOlxuICAgICAgICBBbm5vdGF0aW9ucy5vZihkYXRhLnJlc291cmNlKS5hZGRXYXJuaW5nKG1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTmFnTWVzc2FnZUxldmVsLklORk86XG4gICAgICAgIEFubm90YXRpb25zLm9mKGRhdGEucmVzb3VyY2UpLmFkZEluZm8obWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBVbnJlY29nbml6ZWQgbWVzc2FnZSBsZXZlbCAke2RhdGEucnVsZUxldmVsfSBmb3IgdGhlIEFubm90YXRpb25Mb2dnZXJgXG4gICAgICAgICk7XG4gICAgfVxuICB9XG4gIG9uU3VwcHJlc3NlZChkYXRhOiBOYWdMb2dnZXJTdXBwcmVzc2VkRGF0YSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvZ0lnbm9yZXMpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmNyZWF0ZU1lc3NhZ2UoXG4gICAgICAgIHRoaXMuc3VwcHJlc3Npb25JZCxcbiAgICAgICAgZGF0YS5maW5kaW5nSWQsXG4gICAgICAgIGAke2RhdGEucnVsZUlkfSB3YXMgdHJpZ2dlcmVkIGJ1dCBzdXBwcmVzc2VkLmAsXG4gICAgICAgIGBQcm92aWRlZCByZWFzb246IFwiJHtkYXRhLnN1cHByZXNzaW9uUmVhc29ufVwiYCxcbiAgICAgICAgdGhpcy52ZXJib3NlXG4gICAgICApO1xuICAgICAgQW5ub3RhdGlvbnMub2YoZGF0YS5yZXNvdXJjZSkuYWRkSW5mbyhtZXNzYWdlKTtcbiAgICB9XG4gIH1cbiAgb25FcnJvcihkYXRhOiBOYWdMb2dnZXJFcnJvckRhdGEpOiB2b2lkIHtcbiAgICBjb25zdCBpbmZvcm1hdGlvbiA9IGAnJHtkYXRhLnJ1bGVJZH0nIHRocmV3IGFuIGVycm9yIGR1cmluZyB2YWxpZGF0aW9uLiBUaGlzIGlzIGdlbmVyYWxseSBjYXVzZWQgYnkgYSBwYXJhbWV0ZXIgcmVmZXJlbmNpbmcgYW4gaW50cmluc2ljIGZ1bmN0aW9uLiBZb3UgY2FuIHN1cHByZXNzIHRoZSBcIiR7VkFMSURBVElPTl9GQUlMVVJFX0lEfVwiIHRvIGdldCByaWQgb2YgdGhpcyBlcnJvci4gRm9yIG1vcmUgZGV0YWlscyBlbmFibGUgdmVyYm9zZSBsb2dnaW5nLidgO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmNyZWF0ZU1lc3NhZ2UoXG4gICAgICBWQUxJREFUSU9OX0ZBSUxVUkVfSUQsXG4gICAgICBkYXRhLnJ1bGVJZCxcbiAgICAgIGluZm9ybWF0aW9uLFxuICAgICAgZGF0YS5lcnJvck1lc3NhZ2UsXG4gICAgICB0aGlzLnZlcmJvc2VcbiAgICApO1xuICAgIEFubm90YXRpb25zLm9mKGRhdGEucmVzb3VyY2UpLmFkZFdhcm5pbmcobWVzc2FnZSk7XG4gIH1cbiAgb25TdXBwcmVzc2VkRXJyb3IoZGF0YTogTmFnTG9nZ2VyU3VwcHJlc3NlZEVycm9yRGF0YSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvZ0lnbm9yZXMgPT09IHRydWUpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmNyZWF0ZU1lc3NhZ2UoXG4gICAgICAgIHRoaXMuc3VwcHJlc3Npb25JZCxcbiAgICAgICAgZGF0YS5ydWxlSWQsXG4gICAgICAgIGAke1ZBTElEQVRJT05fRkFJTFVSRV9JRH0gd2FzIHRyaWdnZXJlZCBidXQgc3VwcHJlc3NlZC5gLFxuICAgICAgICBkYXRhLmVycm9yU3VwcHJlc3Npb25SZWFzb24sXG4gICAgICAgIHRoaXMudmVyYm9zZVxuICAgICAgKTtcbiAgICAgIEFubm90YXRpb25zLm9mKGRhdGEucmVzb3VyY2UpLmFkZEluZm8obWVzc2FnZSk7XG4gICAgfVxuICB9XG4gIG9uTm90QXBwbGljYWJsZShfZGF0YTogTmFnTG9nZ2VyTm90QXBwbGljYWJsZURhdGEpOiB2b2lkIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlTWVzc2FnZShcbiAgICBydWxlSWQ6IHN0cmluZyxcbiAgICBmaW5kaW5nSWQ6IHN0cmluZyxcbiAgICBydWxlSW5mbzogc3RyaW5nLFxuICAgIHJ1bGVFeHBsYW5hdGlvbjogc3RyaW5nLFxuICAgIHZlcmJvc2U6IGJvb2xlYW5cbiAgKTogc3RyaW5nIHtcbiAgICBsZXQgbWVzc2FnZSA9IGZpbmRpbmdJZFxuICAgICAgPyBgJHtydWxlSWR9WyR7ZmluZGluZ0lkfV06ICR7cnVsZUluZm99YFxuICAgICAgOiBgJHtydWxlSWR9OiAke3J1bGVJbmZvfWA7XG4gICAgcmV0dXJuIHZlcmJvc2UgPyBgJHttZXNzYWdlfSAke3J1bGVFeHBsYW5hdGlvbn1cXG5gIDogYCR7bWVzc2FnZX1cXG5gO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFnUmVwb3J0U2NoZW1hIHtcbiAgcmVhZG9ubHkgbGluZXM6IE5hZ1JlcG9ydExpbmVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYWdSZXBvcnRMaW5lIHtcbiAgcmVhZG9ubHkgcnVsZUlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY29tcGxpYW5jZTogc3RyaW5nO1xuICByZWFkb25seSBleGNlcHRpb25SZWFzb246IHN0cmluZztcbiAgcmVhZG9ubHkgcnVsZUxldmVsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJ1bGVJbmZvOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUG9zc2libGUgb3V0cHV0IGZvcm1hdHMgb2YgdGhlIE5hZ1JlcG9ydFxuICovXG5leHBvcnQgZW51bSBOYWdSZXBvcnRGb3JtYXQge1xuICBDU1YgPSAnY3N2JyxcbiAgSlNPTiA9ICdqc29uJyxcbn1cblxuLyoqXG4gKiBQcm9wcyBmb3IgdGhlIE5hZ1JlcG9ydExvZ2dlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hZ1JlcG9ydExvZ2dlclByb3BzIHtcbiAgcmVhZG9ubHkgZm9ybWF0czogTmFnUmVwb3J0Rm9ybWF0W107XG59XG5cbi8qKlxuICogQSBOYWdMb2dnZXIgdGhhdCBjcmVhdGVzIGNvbXBsaWFuY2UgcmVwb3J0c1xuICovXG5leHBvcnQgY2xhc3MgTmFnUmVwb3J0TG9nZ2VyIGltcGxlbWVudHMgSU5hZ0xvZ2dlciB7XG4gIHByaXZhdGUgcmVwb3J0U3RhY2tzID0gbmV3IE1hcDxOYWdSZXBvcnRGb3JtYXQsIEFycmF5PHN0cmluZz4+KCk7XG4gIHJlYWRvbmx5IGZvcm1hdHM6IE5hZ1JlcG9ydEZvcm1hdFtdO1xuICBjb25zdHJ1Y3Rvcihwcm9wczogTmFnUmVwb3J0TG9nZ2VyUHJvcHMpIHtcbiAgICBpZiAocHJvcHMuZm9ybWF0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGF0IGxlYXN0IDEgTmFnUmVwb3J0Rm9ybWF0LicpO1xuICAgIH1cbiAgICB0aGlzLmZvcm1hdHMgPSBwcm9wcy5mb3JtYXRzO1xuICB9XG5cbiAgb25Db21wbGlhbmNlKGRhdGE6IE5hZ0xvZ2dlckNvbXBsaWFuY2VEYXRhKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplU3RhY2tSZXBvcnQoZGF0YSk7XG4gICAgdGhpcy53cml0ZVRvU3RhY2tDb21wbGlhbmNlUmVwb3J0KGRhdGEsIE5hZ1J1bGVDb21wbGlhbmNlLkNPTVBMSUFOVCk7XG4gIH1cbiAgb25Ob25Db21wbGlhbmNlKGRhdGE6IE5hZ0xvZ2dlck5vbkNvbXBsaWFuY2VEYXRhKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplU3RhY2tSZXBvcnQoZGF0YSk7XG4gICAgdGhpcy53cml0ZVRvU3RhY2tDb21wbGlhbmNlUmVwb3J0KGRhdGEsIE5hZ1J1bGVDb21wbGlhbmNlLk5PTl9DT01QTElBTlQpO1xuICB9XG4gIG9uU3VwcHJlc3NlZChkYXRhOiBOYWdMb2dnZXJTdXBwcmVzc2VkRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZVN0YWNrUmVwb3J0KGRhdGEpO1xuICAgIHRoaXMud3JpdGVUb1N0YWNrQ29tcGxpYW5jZVJlcG9ydChcbiAgICAgIGRhdGEsXG4gICAgICBOYWdSdWxlUG9zdFZhbGlkYXRpb25TdGF0ZXMuU1VQUFJFU1NFRFxuICAgICk7XG4gIH1cbiAgb25FcnJvcihkYXRhOiBOYWdMb2dnZXJFcnJvckRhdGEpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVTdGFja1JlcG9ydChkYXRhKTtcbiAgICB0aGlzLndyaXRlVG9TdGFja0NvbXBsaWFuY2VSZXBvcnQoXG4gICAgICBkYXRhLFxuICAgICAgTmFnUnVsZVBvc3RWYWxpZGF0aW9uU3RhdGVzLlVOS05PV05cbiAgICApO1xuICB9XG4gIG9uU3VwcHJlc3NlZEVycm9yKGRhdGE6IE5hZ0xvZ2dlclN1cHByZXNzZWRFcnJvckRhdGEpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVTdGFja1JlcG9ydChkYXRhKTtcbiAgICB0aGlzLndyaXRlVG9TdGFja0NvbXBsaWFuY2VSZXBvcnQoXG4gICAgICBkYXRhLFxuICAgICAgTmFnUnVsZVBvc3RWYWxpZGF0aW9uU3RhdGVzLlNVUFBSRVNTRURcbiAgICApO1xuICB9XG4gIG9uTm90QXBwbGljYWJsZShkYXRhOiBOYWdMb2dnZXJOb3RBcHBsaWNhYmxlRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZVN0YWNrUmVwb3J0KGRhdGEpO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1hdFN0YWNrcyhmb3JtYXQ6IE5hZ1JlcG9ydEZvcm1hdCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvcnRTdGFja3MuZ2V0KGZvcm1hdCkgPz8gW107XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgcmVwb3J0IGZvciB0aGUgcnVsZSBwYWNrJ3MgY29tcGxpYW5jZSByZXBvcnQgZm9yIHRoZSByZXNvdXJjZSdzIFN0YWNrIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIHByb3RlY3RlZCBpbml0aWFsaXplU3RhY2tSZXBvcnQoZGF0YTogTmFnTG9nZ2VyQmFzZURhdGEpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiB0aGlzLmZvcm1hdHMpIHtcbiAgICAgIGNvbnN0IHN0YWNrTmFtZSA9IGRhdGEucmVzb3VyY2Uuc3RhY2submVzdGVkXG4gICAgICAgID8gTmFtZXMudW5pcXVlSWQoZGF0YS5yZXNvdXJjZS5zdGFjaylcbiAgICAgICAgOiBkYXRhLnJlc291cmNlLnN0YWNrLnN0YWNrTmFtZTtcbiAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7ZGF0YS5uYWdQYWNrTmFtZX0tJHtzdGFja05hbWV9LU5hZ1JlcG9ydC4ke2Zvcm1hdH1gO1xuICAgICAgY29uc3Qgc3RhY2tzID0gdGhpcy5nZXRGb3JtYXRTdGFja3MoZm9ybWF0KTtcbiAgICAgIGlmICghc3RhY2tzLmluY2x1ZGVzKGZpbGVOYW1lKSkge1xuICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4oQXBwLm9mKGRhdGEucmVzb3VyY2UpPy5vdXRkaXIgPz8gJycsIGZpbGVOYW1lKTtcbiAgICAgICAgdGhpcy5yZXBvcnRTdGFja3Muc2V0KGZvcm1hdCwgWy4uLnN0YWNrcywgZmlsZU5hbWVdKTtcbiAgICAgICAgbGV0IGJvZHkgPSAnJztcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gTmFnUmVwb3J0Rm9ybWF0LkNTVikge1xuICAgICAgICAgIGJvZHkgPVxuICAgICAgICAgICAgJ1J1bGUgSUQsUmVzb3VyY2UgSUQsQ29tcGxpYW5jZSxFeGNlcHRpb24gUmVhc29uLFJ1bGUgTGV2ZWwsUnVsZSBJbmZvXFxuJztcbiAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09IE5hZ1JlcG9ydEZvcm1hdC5KU09OKSB7XG4gICAgICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KHsgbGluZXM6IFtdIH0gYXMgTmFnUmVwb3J0U2NoZW1hKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVW5yZWNvZ25pemVkIG91dHB1dCBmb3JtYXQgJHtmb3JtYXR9IGZvciB0aGUgTmFnUmVwb3J0TG9nZ2VyYFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgYm9keSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHdyaXRlVG9TdGFja0NvbXBsaWFuY2VSZXBvcnQoXG4gICAgZGF0YTogTmFnTG9nZ2VyQmFzZURhdGEsXG4gICAgY29tcGxpYW5jZTogTmFnUnVsZVN0YXRlc1xuICApOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiB0aGlzLmZvcm1hdHMpIHtcbiAgICAgIGNvbnN0IHN0YWNrTmFtZSA9IGRhdGEucmVzb3VyY2Uuc3RhY2submVzdGVkXG4gICAgICAgID8gTmFtZXMudW5pcXVlSWQoZGF0YS5yZXNvdXJjZS5zdGFjaylcbiAgICAgICAgOiBkYXRhLnJlc291cmNlLnN0YWNrLnN0YWNrTmFtZTtcbiAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7ZGF0YS5uYWdQYWNrTmFtZX0tJHtzdGFja05hbWV9LU5hZ1JlcG9ydC4ke2Zvcm1hdH1gO1xuICAgICAgY29uc3QgZmlsZVBhdGggPSBqb2luKEFwcC5vZihkYXRhLnJlc291cmNlKT8ub3V0ZGlyID8/ICcnLCBmaWxlTmFtZSk7XG4gICAgICBpZiAoZm9ybWF0ID09PSBOYWdSZXBvcnRGb3JtYXQuQ1NWKSB7XG4gICAgICAgIC8vfCBSdWxlIElEIHwgUmVzb3VyY2UgSUQgfCBDb21wbGlhbmNlIHwgRXhjZXB0aW9uIFJlYXNvbiB8IFJ1bGUgTGV2ZWwgfCBSdWxlIEluZm9cbiAgICAgICAgY29uc3QgbGluZSA9IEFycmF5PHN0cmluZz4oKTtcbiAgICAgICAgbGluZS5wdXNoKGRhdGEucnVsZUlkKTtcbiAgICAgICAgbGluZS5wdXNoKGRhdGEucmVzb3VyY2Uubm9kZS5wYXRoKTtcbiAgICAgICAgaWYgKGNvbXBsaWFuY2UgPT09IE5hZ1J1bGVQb3N0VmFsaWRhdGlvblN0YXRlcy5TVVBQUkVTU0VEKSB7XG4gICAgICAgICAgbGluZS5wdXNoKE5hZ1J1bGVQb3N0VmFsaWRhdGlvblN0YXRlcy5TVVBQUkVTU0VEKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAoZGF0YSBhcyBOYWdMb2dnZXJTdXBwcmVzc2VkRGF0YSkuc3VwcHJlc3Npb25SZWFzb24gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgbGluZS5wdXNoKChkYXRhIGFzIE5hZ0xvZ2dlclN1cHByZXNzZWREYXRhKS5zdXBwcmVzc2lvblJlYXNvbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxpbmUucHVzaChcbiAgICAgICAgICAgICAgKGRhdGEgYXMgTmFnTG9nZ2VyU3VwcHJlc3NlZEVycm9yRGF0YSkuZXJyb3JTdXBwcmVzc2lvblJlYXNvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGluZS5wdXNoKGNvbXBsaWFuY2UpO1xuICAgICAgICAgIGxpbmUucHVzaCgnTi9BJyk7XG4gICAgICAgIH1cbiAgICAgICAgbGluZS5wdXNoKGRhdGEucnVsZUxldmVsKTtcbiAgICAgICAgbGluZS5wdXNoKGRhdGEucnVsZUluZm8pO1xuICAgICAgICBhcHBlbmRGaWxlU3luYyhcbiAgICAgICAgICBmaWxlUGF0aCxcbiAgICAgICAgICBsaW5lLm1hcCgoaSkgPT4gJ1wiJyArIGkucmVwbGFjZSgvXCIvZywgJ1wiXCInKSArICdcIicpLmpvaW4oJywnKSArICdcXG4nXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gTmFnUmVwb3J0Rm9ybWF0LkpTT04pIHtcbiAgICAgICAgY29uc3QgcmVwb3J0ID0gSlNPTi5wYXJzZShcbiAgICAgICAgICByZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4JylcbiAgICAgICAgKSBhcyBOYWdSZXBvcnRTY2hlbWE7XG4gICAgICAgIGxldCBleGNlcHRpb25SZWFzb24gPSAnTi9BJztcbiAgICAgICAgaWYgKGNvbXBsaWFuY2UgPT09IE5hZ1J1bGVQb3N0VmFsaWRhdGlvblN0YXRlcy5TVVBQUkVTU0VEKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGRhdGEgYXMgTmFnTG9nZ2VyU3VwcHJlc3NlZERhdGEpLnN1cHByZXNzaW9uUmVhc29uICE9PSB1bmRlZmluZWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV4Y2VwdGlvblJlYXNvbiA9IChkYXRhIGFzIE5hZ0xvZ2dlclN1cHByZXNzZWREYXRhKVxuICAgICAgICAgICAgICAuc3VwcHJlc3Npb25SZWFzb247XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4Y2VwdGlvblJlYXNvbiA9IChkYXRhIGFzIE5hZ0xvZ2dlclN1cHByZXNzZWRFcnJvckRhdGEpXG4gICAgICAgICAgICAgIC5lcnJvclN1cHByZXNzaW9uUmVhc29uO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXBvcnQubGluZXMucHVzaCh7XG4gICAgICAgICAgcnVsZUlkOiBkYXRhLnJ1bGVJZCxcbiAgICAgICAgICByZXNvdXJjZUlkOiBkYXRhLnJlc291cmNlLm5vZGUucGF0aCxcbiAgICAgICAgICBjb21wbGlhbmNlLFxuICAgICAgICAgIGV4Y2VwdGlvblJlYXNvbixcbiAgICAgICAgICBydWxlTGV2ZWw6IGRhdGEucnVsZUxldmVsLFxuICAgICAgICAgIHJ1bGVJbmZvOiBkYXRhLnJ1bGVJbmZvLFxuICAgICAgICB9KTtcbiAgICAgICAgd3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkocmVwb3J0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFVucmVjb2duaXplZCBvdXRwdXQgZm9ybWF0ICR7Zm9ybWF0fSBmb3IgdGhlIE5hZ1JlcG9ydExvZ2dlcmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -160,5 +160,5 @@ class NagPack {
160
160
  }
161
161
  exports.NagPack = NagPack;
162
162
  _a = JSII_RTTI_SYMBOL_1;
163
- NagPack[_a] = { fqn: "cdk-nag.NagPack", version: "2.37.0" };
163
+ NagPack[_a] = { fqn: "cdk-nag.NagPack", version: "2.37.20" };
164
164
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFnLXBhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmFnLXBhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7O0VBR0U7QUFDRiw2Q0FBZ0U7QUFFaEUsbUZBSXlDO0FBRXpDLDZDQU1zQjtBQUN0QiwyQ0FNcUI7QUFDckIsMkVBQXNFO0FBd0V0RTs7R0FFRztBQUNILE1BQXNCLE9BQU87SUFNM0IsWUFBWSxLQUFvQjtRQUx0QixZQUFPLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztRQUNsQyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBS3RCLElBQUksQ0FBQywyQkFBMkIsR0FBRyxLQUFLLEVBQUUsMEJBQTBCLENBQUM7UUFDckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsSUFBSSw2QkFBZ0IsQ0FBQztZQUNuQixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU87WUFDdkIsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVO1NBQzlCLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxLQUFLLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzNCLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxhQUFhO2dCQUNsQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWE7Z0JBQ3JCLENBQUMsQ0FBQyxDQUFDLDRCQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSw0QkFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFDRCxJQUFJLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsUUFB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VSxDQUFDO1FBQ3BCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7O0FBck1ILDBCQXNNQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4qL1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMsIENmblJlc291cmNlLCBJQXNwZWN0IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgSU5hZ1N1cHByZXNzaW9uSWdub3JlLFxuICBTdXBwcmVzc2lvbklnbm9yZU5ldmVyLFxuICBTdXBwcmVzc2lvbklnbm9yZU9yLFxufSBmcm9tICcuL2lnbm9yZS1zdXBwcmVzc2lvbi1jb25kaXRpb25zJztcbmltcG9ydCB7IE5hZ1BhY2tTdXBwcmVzc2lvbiB9IGZyb20gJy4vbW9kZWxzL25hZy1zdXBwcmVzc2lvbic7XG5pbXBvcnQge1xuICBBbm5vdGF0aW9uTG9nZ2VyLFxuICBJTmFnTG9nZ2VyLFxuICBOYWdMb2dnZXJCYXNlRGF0YSxcbiAgTmFnUmVwb3J0Rm9ybWF0LFxuICBOYWdSZXBvcnRMb2dnZXIsXG59IGZyb20gJy4vbmFnLWxvZ2dlcic7XG5pbXBvcnQge1xuICBOYWdNZXNzYWdlTGV2ZWwsXG4gIE5hZ1J1bGVDb21wbGlhbmNlLFxuICBOYWdSdWxlRmluZGluZ3MsXG4gIE5hZ1J1bGVSZXN1bHQsXG4gIFZBTElEQVRJT05fRkFJTFVSRV9JRCxcbn0gZnJvbSAnLi9uYWctcnVsZXMnO1xuaW1wb3J0IHsgTmFnU3VwcHJlc3Npb25IZWxwZXIgfSBmcm9tICcuL3V0aWxzL25hZy1zdXBwcmVzc2lvbi1oZWxwZXInO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgY3JlYXRpbmcgYSBOYWdQYWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hZ1BhY2tQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBlbmFibGUgZXh0ZW5kZWQgZXhwbGFuYXRvcnkgZGVzY3JpcHRpb25zIG9uIHdhcm5pbmcsIGVycm9yLCBhbmQgbG9nZ2VkIGlnbm9yZSBtZXNzYWdlcyAoZGVmYXVsdDogZmFsc2UpLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyYm9zZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGxvZyBzdXBwcmVzc2VkIHJ1bGUgdmlvbGF0aW9ucyBhcyBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIChkZWZhdWx0OiBmYWxzZSkuXG4gICAqL1xuICByZWFkb25seSBsb2dJZ25vcmVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZ2VuZXJhdGUgY29tcGxpYW5jZSByZXBvcnRzIGZvciBhcHBsaWVkIFN0YWNrcyBpbiB0aGUgQXBwJ3Mgb3V0cHV0IGRpcmVjdG9yeSAoZGVmYXVsdDogdHJ1ZSkuXG4gICAqL1xuICByZWFkb25seSByZXBvcnRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgcmVwb3J0cyBhcmUgZW5hYmxlZCwgdGhlIG91dHB1dCBmb3JtYXRzIG9mIGNvbXBsaWFuY2UgcmVwb3J0cyBpbiB0aGUgQXBwJ3Mgb3V0cHV0IGRpcmVjdG9yeSAoZGVmYXVsdDogb25seSBDU1YpLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3J0Rm9ybWF0cz86IE5hZ1JlcG9ydEZvcm1hdFtdO1xuXG4gIC8qKlxuICAgKiBDb25kaXRpb25hbGx5IHByZXZlbnQgcnVsZXMgZnJvbSBiZWluZyBzdXBwcmVzc2VkIChkZWZhdWx0OiBubyB1c2VyIHByb3ZpZGVkIGNvbmRpdGlvbikuXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc2lvbklnbm9yZUNvbmRpdGlvbj86IElOYWdTdXBwcmVzc2lvbklnbm9yZTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBOYWdMb2dnZXJzIGZvciBsb2dnaW5nIHJ1bGUgdmFsaWRhdGlvbiBvdXRwdXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbExvZ2dlcnM/OiBJTmFnTG9nZ2VyW107XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBKU0lJIGludGVyb3BlcmFiaWxpdHkgZm9yIHBhc3NpbmcgcGFyYW1ldGVycyBhbmQgdGhlIFJ1bGUgQ2FsbGJhY2sgdG8gQGFwcGx5UnVsZSBtZXRob2QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFwcGx5UnVsZSB7XG4gIC8qKlxuICAgKiBPdmVycmlkZSBmb3IgdGhlIHN1ZmZpeCBvZiB0aGUgUnVsZSBJRCBmb3IgdGhpcyBydWxlXG4gICAqL1xuICBydWxlU3VmZml4T3ZlcnJpZGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaHkgdGhlIHJ1bGUgd2FzIHRyaWdnZXJlZC5cbiAgICovXG4gIGluZm86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoeSB0aGUgcnVsZSBleGlzdHMuXG4gICAqL1xuICBleHBsYW5hdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGFubm90YXRpb25zIG1lc3NhZ2UgbGV2ZWwgdG8gYXBwbHkgdG8gdGhlIHJ1bGUgaWYgdHJpZ2dlcmVkLlxuICAgKi9cbiAgbGV2ZWw6IE5hZ01lc3NhZ2VMZXZlbDtcbiAgLyoqXG4gICAqIEEgY29uZGl0aW9uIGluIHdoaWNoIGEgc3VwcHJlc3Npb24gc2hvdWxkIGJlIGlnbm9yZWQuXG4gICAqL1xuICBpZ25vcmVTdXBwcmVzc2lvbkNvbmRpdGlvbj86IElOYWdTdXBwcmVzc2lvbklnbm9yZTtcbiAgLyoqXG4gICAqIFRoZSBDZm5SZXNvdXJjZSB0byBjaGVja1xuICAgKi9cbiAgbm9kZTogQ2ZuUmVzb3VyY2U7XG4gIC8qKlxuICAgKiBUaGUgY2FsbGJhY2sgdG8gdGhlIHJ1bGUuXG4gICAqIEBwYXJhbSBub2RlIFRoZSBDZm5SZXNvdXJjZSB0byBjaGVjay5cbiAgICovXG4gIHJ1bGUobm9kZTogQ2ZuUmVzb3VyY2UpOiBOYWdSdWxlUmVzdWx0O1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGFsbCBydWxlIHBhY2tzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmFnUGFjayBpbXBsZW1lbnRzIElBc3BlY3Qge1xuICBwcm90ZWN0ZWQgbG9nZ2VycyA9IG5ldyBBcnJheTxJTmFnTG9nZ2VyPigpO1xuICBwcm90ZWN0ZWQgcGFja05hbWUgPSAnJztcbiAgcHJvdGVjdGVkIHVzZXJHbG9iYWxTdXBwcmVzc2lvbklnbm9yZT86IElOYWdTdXBwcmVzc2lvbklnbm9yZTtcbiAgcHJvdGVjdGVkIHBhY2tHbG9iYWxTdXBwcmVzc2lvbklnbm9yZT86IElOYWdTdXBwcmVzc2lvbklnbm9yZTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcz86IE5hZ1BhY2tQcm9wcykge1xuICAgIHRoaXMudXNlckdsb2JhbFN1cHByZXNzaW9uSWdub3JlID0gcHJvcHM/LnN1cHByZXNzaW9uSWdub3JlQ29uZGl0aW9uO1xuICAgIHRoaXMubG9nZ2Vycy5wdXNoKFxuICAgICAgbmV3IEFubm90YXRpb25Mb2dnZXIoe1xuICAgICAgICB2ZXJib3NlOiBwcm9wcz8udmVyYm9zZSxcbiAgICAgICAgbG9nSWdub3JlczogcHJvcHM/LmxvZ0lnbm9yZXMsXG4gICAgICB9KVxuICAgICk7XG4gICAgaWYgKHByb3BzPy5yZXBvcnRzID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHMgPSBwcm9wcz8ucmVwb3J0Rm9ybWF0c1xuICAgICAgICA/IHByb3BzLnJlcG9ydEZvcm1hdHNcbiAgICAgICAgOiBbTmFnUmVwb3J0Rm9ybWF0LkNTVl07XG4gICAgICB0aGlzLmxvZ2dlcnMucHVzaChuZXcgTmFnUmVwb3J0TG9nZ2VyKHsgZm9ybWF0cyB9KSk7XG4gICAgfVxuICAgIGlmIChwcm9wcz8uYWRkaXRpb25hbExvZ2dlcnMpIHtcbiAgICAgIHRoaXMubG9nZ2Vycy5wdXNoKC4uLnByb3BzLmFkZGl0aW9uYWxMb2dnZXJzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlYWRQYWNrTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhY2tOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbCBhc3BlY3RzIGNhbiB2aXNpdCBhbiBJQ29uc3RydWN0LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHZpc2l0KG5vZGU6IElDb25zdHJ1Y3QpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBydWxlIHRvIGJlIHVzZWQgaW4gdGhlIE5hZ1BhY2suXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIEBJQXBwbHlSdWxlIGludGVyZmFjZSB3aXRoIHJ1bGUgZGV0YWlscy5cbiAgICovXG4gIHByb3RlY3RlZCBhcHBseVJ1bGUocGFyYW1zOiBJQXBwbHlSdWxlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFja05hbWUgPT09ICcnKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ1RoZSBOYWdQYWNrIGRvZXMgbm90IGhhdmUgYSBwYWNrIG5hbWUsIHRoZXJlZm9yZSB0aGUgcnVsZSBjb3VsZCBub3QgYmUgYXBwbGllZC4gU2V0IGEgcGFja05hbWUgaW4gdGhlIE5hZ1BhY2sgY29uc3RydWN0b3IuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgYWxsU3VwcHJlc3Npb25zID0gTmFnU3VwcHJlc3Npb25IZWxwZXIuZ2V0U3VwcHJlc3Npb25zKHBhcmFtcy5ub2RlKTtcbiAgICBjb25zdCBydWxlU3VmZml4ID0gcGFyYW1zLnJ1bGVTdWZmaXhPdmVycmlkZVxuICAgICAgPyBwYXJhbXMucnVsZVN1ZmZpeE92ZXJyaWRlXG4gICAgICA6IHBhcmFtcy5ydWxlLm5hbWU7XG4gICAgY29uc3QgcnVsZUlkID0gYCR7dGhpcy5wYWNrTmFtZX0tJHtydWxlU3VmZml4fWA7XG4gICAgY29uc3QgYmFzZTogTmFnTG9nZ2VyQmFzZURhdGEgPSB7XG4gICAgICBuYWdQYWNrTmFtZTogdGhpcy5wYWNrTmFtZSxcbiAgICAgIHJlc291cmNlOiBwYXJhbXMubm9kZSxcbiAgICAgIHJ1bGVJZDogcnVsZUlkLFxuICAgICAgcnVsZU9yaWdpbmFsTmFtZTogcGFyYW1zLnJ1bGUubmFtZSxcbiAgICAgIHJ1bGVJbmZvOiBwYXJhbXMuaW5mbyxcbiAgICAgIHJ1bGVFeHBsYW5hdGlvbjogcGFyYW1zLmV4cGxhbmF0aW9uLFxuICAgICAgcnVsZUxldmVsOiBwYXJhbXMubGV2ZWwsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcnVsZUNvbXBsaWFuY2UgPSBwYXJhbXMucnVsZShwYXJhbXMubm9kZSk7XG4gICAgICBpZiAocnVsZUNvbXBsaWFuY2UgPT09IE5hZ1J1bGVDb21wbGlhbmNlLkNPTVBMSUFOVCkge1xuICAgICAgICB0aGlzLmxvZ2dlcnMuZm9yRWFjaCgodCkgPT4gdC5vbkNvbXBsaWFuY2UoYmFzZSkpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzTm9uQ29tcGxpYW50KHJ1bGVDb21wbGlhbmNlKSkge1xuICAgICAgICBjb25zdCBmaW5kaW5ncyA9IHRoaXMuYXNGaW5kaW5ncyhydWxlQ29tcGxpYW5jZSk7XG4gICAgICAgIGZvciAoY29uc3QgZmluZGluZ0lkIG9mIGZpbmRpbmdzKSB7XG4gICAgICAgICAgY29uc3Qgc3VwcHJlc3Npb25SZWFzb24gPSB0aGlzLmlnbm9yZVJ1bGUoXG4gICAgICAgICAgICBhbGxTdXBwcmVzc2lvbnMsXG4gICAgICAgICAgICBydWxlSWQsXG4gICAgICAgICAgICBmaW5kaW5nSWQsXG4gICAgICAgICAgICBwYXJhbXMubm9kZSxcbiAgICAgICAgICAgIHBhcmFtcy5sZXZlbCxcbiAgICAgICAgICAgIHBhcmFtcy5pZ25vcmVTdXBwcmVzc2lvbkNvbmRpdGlvblxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHN1cHByZXNzaW9uUmVhc29uKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlcnMuZm9yRWFjaCgodCkgPT5cbiAgICAgICAgICAgICAgdC5vblN1cHByZXNzZWQoe1xuICAgICAgICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAgICAgICAgc3VwcHJlc3Npb25SZWFzb24sXG4gICAgICAgICAgICAgICAgZmluZGluZ0lkLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXJzLmZvckVhY2goKHQpID0+XG4gICAgICAgICAgICAgIHQub25Ob25Db21wbGlhbmNlKHtcbiAgICAgICAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgICAgICAgIGZpbmRpbmdJZCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHJ1bGVDb21wbGlhbmNlID09PSBOYWdSdWxlQ29tcGxpYW5jZS5OT1RfQVBQTElDQUJMRSkge1xuICAgICAgICB0aGlzLmxvZ2dlcnMuZm9yRWFjaCgodCkgPT5cbiAgICAgICAgICB0Lm9uTm90QXBwbGljYWJsZSh7XG4gICAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IHJlYXNvbiA9IHRoaXMuaWdub3JlUnVsZShcbiAgICAgICAgYWxsU3VwcHJlc3Npb25zLFxuICAgICAgICBydWxlSWQsXG4gICAgICAgICcnLFxuICAgICAgICBwYXJhbXMubm9kZSxcbiAgICAgICAgcGFyYW1zLmxldmVsLFxuICAgICAgICBwYXJhbXMuaWdub3JlU3VwcHJlc3Npb25Db25kaXRpb24sXG4gICAgICAgIHRydWVcbiAgICAgICk7XG4gICAgICBpZiAocmVhc29uKSB7XG4gICAgICAgIHRoaXMubG9nZ2Vycy5mb3JFYWNoKCh0KSA9PlxuICAgICAgICAgIHQub25TdXBwcmVzc2VkRXJyb3Ioe1xuICAgICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZTogKGVycm9yIGFzIEVycm9yKS5tZXNzYWdlLFxuICAgICAgICAgICAgZXJyb3JTdXBwcmVzc2lvblJlYXNvbjogcmVhc29uLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlcnMuZm9yRWFjaCgodCkgPT5cbiAgICAgICAgICB0Lm9uRXJyb3Ioe1xuICAgICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZTogKGVycm9yIGFzIEVycm9yKS5tZXNzYWdlLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgYSBzcGVjaWZpYyBydWxlIHNob3VsZCBiZSBpZ25vcmVkLlxuICAgKiBAcGFyYW0gc3VwcHJlc3Npb25zIFRoZSBzdXBwcmVzc2lvbnMgbGlzdGVkIGluIHRoZSBjZGstbmFnIG1ldGFkYXRhLlxuICAgKiBAcGFyYW0gcnVsZUlkIFRoZSBpZCBvZiB0aGUgcnVsZSB0byBpZ25vcmUuXG4gICAqIEBwYXJhbSByZXNvdXJjZSBUaGUgcmVzb3VyY2UgYmVpbmcgZXZhbHVhdGVkLlxuICAgKiBAcGFyYW0gZmluZGluZ0lkIFRoZSBpZCBvZiB0aGUgZmluZGluZyB0aGF0IGlzIGJlaW5nIGNoZWNrZWQuXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uRmFpbHVyZSBXaGV0aGVyIHRoZSBydWxlIGlzIGJlaW5nIGNoZWNrZWQgZHVlIHRvIGEgdmFsaWRhdGlvbiBmYWlsdXJlLlxuICAgKiBAcmV0dXJucyBUaGUgcmVhc29uIHRoZSBydWxlIHdhcyBpZ25vcmVkLCBvciBhbiBlbXB0eSBzdHJpbmcuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWdub3JlUnVsZShcbiAgICBzdXBwcmVzc2lvbnM6IE5hZ1BhY2tTdXBwcmVzc2lvbltdLFxuICAgIHJ1bGVJZDogc3RyaW5nLFxuICAgIGZpbmRpbmdJZDogc3RyaW5nLFxuICAgIHJlc291cmNlOiBDZm5SZXNvdXJjZSxcbiAgICBsZXZlbDogTmFnTWVzc2FnZUxldmVsLFxuICAgIGlnbm9yZVN1cHByZXNzaW9uQ29uZGl0aW9uPzogSU5hZ1N1cHByZXNzaW9uSWdub3JlLFxuICAgIHZhbGlkYXRpb25GYWlsdXJlOiBib29sZWFuID0gZmFsc2VcbiAgKTogc3RyaW5nIHtcbiAgICBmb3IgKGxldCBzdXBwcmVzc2lvbiBvZiBzdXBwcmVzc2lvbnMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgTmFnU3VwcHJlc3Npb25IZWxwZXIuZG9lc0FwcGx5KHN1cHByZXNzaW9uLCBydWxlSWQsIGZpbmRpbmdJZCkgfHxcbiAgICAgICAgLy8gSWYgdGhpcyBpcyBtYXJrZWQgYXMgYW4gZXhjZXB0aW9uLCBhbHNvIGNoZWNrIGZvciBhIHN1cHByZXNzaW9uIG9uIFZBTElEQVRJT05fRkFJTFVSRV9JRFxuICAgICAgICAodmFsaWRhdGlvbkZhaWx1cmUgJiZcbiAgICAgICAgICBOYWdTdXBwcmVzc2lvbkhlbHBlci5kb2VzQXBwbHkoXG4gICAgICAgICAgICBzdXBwcmVzc2lvbixcbiAgICAgICAgICAgIFZBTElEQVRJT05fRkFJTFVSRV9JRCxcbiAgICAgICAgICAgIHJ1bGVJZFxuICAgICAgICAgICkpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaWdub3JlTWVzc2FnZSA9IG5ldyBTdXBwcmVzc2lvbklnbm9yZU9yKFxuICAgICAgICAgIHRoaXMudXNlckdsb2JhbFN1cHByZXNzaW9uSWdub3JlID8/IG5ldyBTdXBwcmVzc2lvbklnbm9yZU5ldmVyKCksXG4gICAgICAgICAgdGhpcy5wYWNrR2xvYmFsU3VwcHJlc3Npb25JZ25vcmUgPz8gbmV3IFN1cHByZXNzaW9uSWdub3JlTmV2ZXIoKSxcbiAgICAgICAgICBpZ25vcmVTdXBwcmVzc2lvbkNvbmRpdGlvbiA/PyBuZXcgU3VwcHJlc3Npb25JZ25vcmVOZXZlcigpXG4gICAgICAgICkuY3JlYXRlTWVzc2FnZSh7XG4gICAgICAgICAgcmVzb3VyY2UsXG4gICAgICAgICAgcmVhc29uOiBzdXBwcmVzc2lvbi5yZWFzb24sXG4gICAgICAgICAgcnVsZUlkLFxuICAgICAgICAgIGZpbmRpbmdJZCxcbiAgICAgICAgICBydWxlTGV2ZWw6IGxldmVsLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlnbm9yZU1lc3NhZ2UpIHtcbiAgICAgICAgICBsZXQgaWQgPSBmaW5kaW5nSWQgPyBgJHtydWxlSWR9WyR7ZmluZGluZ0lkfV1gIDogYCR7cnVsZUlkfWA7XG4gICAgICAgICAgQW5ub3RhdGlvbnMub2YocmVzb3VyY2UpLmFkZEluZm8oXG4gICAgICAgICAgICBgVGhlIHN1cHByZXNzaW9uIGZvciAke2lkfSB3YXMgaWdub3JlZCBmb3IgdGhlIGZvbGxvd2luZyByZWFzb24ocykuXFxuXFx0JHtpZ25vcmVNZXNzYWdlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghc3VwcHJlc3Npb24uYXBwbGllc1RvKSB7XG4gICAgICAgICAgICAvLyB0aGUgcnVsZSBpcyBub3QgZ3JhbnVsYXIgc28gaXQgYWx3YXlzIGFwcGxpZXNcbiAgICAgICAgICAgIHJldHVybiBzdXBwcmVzc2lvbi5yZWFzb247XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgWyR7ZmluZGluZ0lkfV0gJHtzdXBwcmVzc2lvbi5yZWFzb259YDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBpc05vbkNvbXBsaWFudChydWxlUmVzdWx0OiBOYWdSdWxlUmVzdWx0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHJ1bGVSZXN1bHQgPT09IE5hZ1J1bGVDb21wbGlhbmNlLk5PTl9DT01QTElBTlQgfHxcbiAgICAgIEFycmF5LmlzQXJyYXkocnVsZVJlc3VsdClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc0ZpbmRpbmdzKHJ1bGVSZXN1bHQ6IE5hZ1J1bGVSZXN1bHQpOiBOYWdSdWxlRmluZGluZ3Mge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJ1bGVSZXN1bHQpKSB7XG4gICAgICByZXR1cm4gcnVsZVJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFsnJ107XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -89,5 +89,5 @@ class NagRules {
89
89
  }
90
90
  exports.NagRules = NagRules;
91
91
  _a = JSII_RTTI_SYMBOL_1;
92
- NagRules[_a] = { fqn: "cdk-nag.NagRules", version: "2.37.0" };
92
+ NagRules[_a] = { fqn: "cdk-nag.NagRules", version: "2.37.20" };
93
93
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFnLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25hZy1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7RUFHRTtBQUNGLDZDQUFpRDtBQUVwQyxRQUFBLHFCQUFxQixHQUFHLHlCQUF5QixDQUFDO0FBRS9EOztHQUVHO0FBQ0gsSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3pCLG1DQUFnQixDQUFBO0lBQ2hCLGtDQUFlLENBQUE7SUFDZixnQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGVBQWUsK0JBQWYsZUFBZSxRQUkxQjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxpQkFJWDtBQUpELFdBQVksaUJBQWlCO0lBQzNCLDRDQUF1QixDQUFBO0lBQ3ZCLG9EQUErQixDQUFBO0lBQy9CLDJDQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFKVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQUk1QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSwyQkFHWDtBQUhELFdBQVksMkJBQTJCO0lBQ3JDLHdEQUF5QixDQUFBO0lBQ3pCLGtEQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVywyQkFBMkIsMkNBQTNCLDJCQUEyQixRQUd0QztBQWlCRDs7R0FFRztBQUNILE1BQWEsUUFBUTtJQUNuQjs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBaUIsRUFBRSxTQUFjO1FBQ3pELE1BQU0sYUFBYSxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxJQUFJLGFBQWEsS0FBSyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEtBQUssQ0FDVCx1REFBdUQsSUFBSSxDQUFDLFNBQVMsQ0FDbkUsYUFBYSxDQUNkLCtDQUErQyxDQUNqRCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLDZCQUE2QixDQUFDLElBQWlCLEVBQUUsU0FBYztRQUNwRSxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxJQUFpQixFQUFFLFNBQWM7UUFDbkUsTUFBTSxhQUFhLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sR0FBRyxHQUFHLGFBQWEsRUFBRSxHQUFHLENBQUM7UUFDL0IsTUFBTSxNQUFNLEdBQUcsYUFBYSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsSUFBSSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7WUFDckIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEQsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7O0FBbkRILDRCQW9EQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4qL1xuaW1wb3J0IHsgQ2ZuUmVzb3VyY2UsIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG5leHBvcnQgY29uc3QgVkFMSURBVElPTl9GQUlMVVJFX0lEID0gJ0Nka05hZ1ZhbGlkYXRpb25GYWlsdXJlJztcblxuLyoqXG4gKiBUaGUgc2V2ZXJpdHkgbGV2ZWwgb2YgdGhlIHJ1bGUuXG4gKi9cbmV4cG9ydCBlbnVtIE5hZ01lc3NhZ2VMZXZlbCB7XG4gIFdBUk4gPSAnV2FybmluZycsXG4gIEVSUk9SID0gJ0Vycm9yJyxcbiAgSU5GTyA9ICdJbmZvJyxcbn1cblxuLyoqXG4gKiBUaGUgY29tcGxpYW5jZSBsZXZlbCBvZiBhIHJlc291cmNlIGluIHJlbGF0aW9uIHRvIGEgcnVsZS5cbiAqL1xuZXhwb3J0IGVudW0gTmFnUnVsZUNvbXBsaWFuY2Uge1xuICBDT01QTElBTlQgPSAnQ29tcGxpYW50JyxcbiAgTk9OX0NPTVBMSUFOVCA9ICdOb24tQ29tcGxpYW50JyxcbiAgTk9UX0FQUExJQ0FCTEUgPSAnTi9BJyxcbn1cblxuLyoqXG4gKiBBZGRpdGlvbmFsIHN0YXRlcyBhIHJ1bGUgY2FuIGJlIGluIHBvc3QgY29tcGxpYW5jZSB2YWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIE5hZ1J1bGVQb3N0VmFsaWRhdGlvblN0YXRlcyB7XG4gIFNVUFBSRVNTRUQgPSAnU3VwcHJlc3NlZCcsXG4gIFVOS05PV04gPSAnVU5LTk9XTicsXG59XG5cbi8qKlxuICogQWxsIHN0YXRlcyBhIHJ1bGUgY2FuIGJlIGluIHBvc3QgY29tcGxpYW5jZSB2YWxpZGF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIE5hZ1J1bGVTdGF0ZXMgPSBOYWdSdWxlQ29tcGxpYW5jZSB8IE5hZ1J1bGVQb3N0VmFsaWRhdGlvblN0YXRlcztcblxuZXhwb3J0IHR5cGUgTmFnUnVsZUZpbmRpbmcgPSBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIE5hZ1J1bGVGaW5kaW5ncyA9IE5hZ1J1bGVGaW5kaW5nW107XG5cbi8qKlxuICogVGhlIHJlc3VsdCBvZiBhIHJ1bGUgY2hlY2suIENhbiBlaXRoZXIgYmUgYE5hZ1J1bGVDb21wbGlhbmNlYFxuICogb3IgYW4gYXJyYXkgb2YgaW5kaXZpZHVhbCBmaW5kaW5nc1xuICovXG5leHBvcnQgdHlwZSBOYWdSdWxlUmVzdWx0ID0gTmFnUnVsZUNvbXBsaWFuY2UgfCBOYWdSdWxlRmluZGluZ3M7XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIHdpdGggbWV0aG9kcyBmb3IgcnVsZSBjcmVhdGlvblxuICovXG5leHBvcnQgY2xhc3MgTmFnUnVsZXMge1xuICAvKipcbiAgICogVXNlIGluIGNhc2VzIHdoZXJlIGEgcHJpbWl0aXZlIHZhbHVlIG11c3QgYmUga25vd24gdG8gcGFzcyBhIHJ1bGUuXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvR2xvc3NhcnkvUHJpbWl0aXZlXG4gICAqIEBwYXJhbSBub2RlIFRoZSBDZm5SZXNvdXJjZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHBhcmFtZXRlciBUaGUgdmFsdWUgdG8gYXR0ZW1wdCB0byByZXNvbHZlLlxuICAgKiBAcmV0dXJucyBSZXR1cm4gYSB2YWx1ZSBpZiByZXNvbHZlcyB0byBhIHByaW1pdGl2ZSBkYXRhIHR5cGUsIG90aGVyd2lzZSB0aHJvdyBhbiBlcnJvci5cbiAgICovXG4gIHN0YXRpYyByZXNvbHZlSWZQcmltaXRpdmUobm9kZTogQ2ZuUmVzb3VyY2UsIHBhcmFtZXRlcjogYW55KTogYW55IHtcbiAgICBjb25zdCByZXNvbHZlZFZhbHVlID0gU3RhY2sub2Yobm9kZSkucmVzb2x2ZShwYXJhbWV0ZXIpO1xuICAgIGlmIChyZXNvbHZlZFZhbHVlID09PSBPYmplY3QocmVzb2x2ZWRWYWx1ZSkpIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBgVGhlIHBhcmFtZXRlciByZXNvbHZlZCB0byB0byBhIG5vbi1wcmltaXRpdmUgdmFsdWUgXCIke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHJlc29sdmVkVmFsdWVcbiAgICAgICAgKX1cIiwgdGhlcmVmb3JlIHRoZSBydWxlIGNvdWxkIG5vdCBiZSB2YWxpZGF0ZWQuYFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc29sdmVkVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIFVzZSByZXNvbHZlUmVzb3VyY2VGcm9tSW50cmluc2ljIGluc3RlYWRcbiAgICpcbiAgICogVXNlIGluIGNhc2VzIHdoZXJlIGEgdG9rZW4gcmVzb2x2ZXMgdG8gYW4gaW50cmluc2ljIGZ1bmN0aW9uIGFuZCB0aGUgcmVmZXJlbmNlZCByZXNvdXJjZSBtdXN0IGJlIGtub3duIHRvIHBhc3MgYSBydWxlLlxuICAgKiBAcGFyYW0gbm9kZSBUaGUgQ2ZuUmVzb3VyY2UgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXIgVGhlIHZhbHVlIHRvIGF0dGVtcHQgdG8gcmVzb2x2ZS5cbiAgICogQHJldHVybnMgUmV0dXJuIHRoZSBMb2dpY2FsIHJlc291cmNlIElkIGlmIHJlc29sdmVzIHRvIGEgaW50cmluc2ljIGZ1bmN0aW9uLCBvdGhlcndpc2UgdGhlIHJlc29sdmVkIHByb3ZpZGVkIHZhbHVlLlxuICAgKi9cbiAgc3RhdGljIHJlc29sdmVSZXNvdXJjZUZyb21JbnN0cmluc2ljKG5vZGU6IENmblJlc291cmNlLCBwYXJhbWV0ZXI6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVJlc291cmNlRnJvbUludHJpbnNpYyhub2RlLCBwYXJhbWV0ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFVzZSBpbiBjYXNlcyB3aGVyZSBhIHRva2VuIHJlc29sdmVzIHRvIGFuIGludHJpbnNpYyBmdW5jdGlvbiBhbmQgdGhlIHJlZmVyZW5jZWQgcmVzb3VyY2UgbXVzdCBiZSBrbm93biB0byBwYXNzIGEgcnVsZS5cbiAgICogQHBhcmFtIG5vZGUgVGhlIENmblJlc291cmNlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gcGFyYW1ldGVyIFRoZSB2YWx1ZSB0byBhdHRlbXB0IHRvIHJlc29sdmUuXG4gICAqIEByZXR1cm5zIFJldHVybiB0aGUgTG9naWNhbCByZXNvdXJjZSBJZCBpZiByZXNvbHZlcyB0byBhIGludHJpbnNpYyBmdW5jdGlvbiwgb3RoZXJ3aXNlIHRoZSByZXNvbHZlZCBwcm92aWRlZCB2YWx1ZS5cbiAgICovXG4gIHN0YXRpYyByZXNvbHZlUmVzb3VyY2VGcm9tSW50cmluc2ljKG5vZGU6IENmblJlc291cmNlLCBwYXJhbWV0ZXI6IGFueSk6IGFueSB7XG4gICAgY29uc3QgcmVzb2x2ZWRWYWx1ZSA9IFN0YWNrLm9mKG5vZGUpLnJlc29sdmUocGFyYW1ldGVyKTtcbiAgICBjb25zdCByZWYgPSByZXNvbHZlZFZhbHVlPy5SZWY7XG4gICAgY29uc3QgZ2V0QXR0ID0gcmVzb2x2ZWRWYWx1ZT8uWydGbjo6R2V0QXR0J107XG4gICAgaWYgKHJlZiAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiByZWY7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGdldEF0dCkgJiYgZ2V0QXR0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBnZXRBdHRbMF07XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZFZhbHVlO1xuICB9XG59XG4iXX0=
@@ -92,5 +92,5 @@ class NagSuppressions {
92
92
  }
93
93
  exports.NagSuppressions = NagSuppressions;
94
94
  _a = JSII_RTTI_SYMBOL_1;
95
- NagSuppressions[_a] = { fqn: "cdk-nag.NagSuppressions", version: "2.37.0" };
95
+ NagSuppressions[_a] = { fqn: "cdk-nag.NagSuppressions", version: "2.37.20" };
96
96
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFnLXN1cHByZXNzaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uYWctc3VwcHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztFQUdFO0FBQ0YsNkNBQWlEO0FBR2pELDJFQUFzRTtBQUV0RTs7R0FFRztBQUNILE1BQWEsZUFBZTtJQUMxQjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekIsS0FBWSxFQUNaLFlBQWtDLEVBQ2xDLHNCQUErQixLQUFLO1FBRXBDLE1BQU0sTUFBTSxHQUFHLG1CQUFtQjtZQUNoQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQWMsRUFBRSxDQUFDLENBQUMsWUFBWSxtQkFBSyxDQUFDO1lBQ3BFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ25CLDZDQUFvQixDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3pFLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDekQsUUFBUSxHQUFHLDZDQUFvQixDQUFDLGtCQUFrQixDQUNoRCxRQUFRLEVBQ1IsWUFBWSxDQUNiLENBQUM7WUFDRixJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ2xDLENBQUM7WUFDRCxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztP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Q0wsQ0FBQzs7QUEzR0gsMENBNEdDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG5pbXBvcnQgeyBDZm5SZXNvdXJjZSwgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBOYWdQYWNrU3VwcHJlc3Npb24gfSBmcm9tICcuL21vZGVscy9uYWctc3VwcHJlc3Npb24nO1xuaW1wb3J0IHsgTmFnU3VwcHJlc3Npb25IZWxwZXIgfSBmcm9tICcuL3V0aWxzL25hZy1zdXBwcmVzc2lvbi1oZWxwZXInO1xuXG4vKipcbiAqIEhlbHBlciBjbGFzcyB3aXRoIG1ldGhvZHMgdG8gYWRkIGNkay1uYWcgc3VwcHJlc3Npb25zIHRvIGNkayByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGNsYXNzIE5hZ1N1cHByZXNzaW9ucyB7XG4gIC8qKlxuICAgKiBBcHBseSBjZGstbmFnIHN1cHByZXNzaW9ucyB0byBhIFN0YWNrIGFuZCBvcHRpb25hbGx5IG5lc3RlZCBzdGFja3NcbiAgICogQHBhcmFtIHN0YWNrIFRoZSBTdGFjayB0byBhcHBseSB0aGUgc3VwcHJlc3Npb24gdG9cbiAgICogQHBhcmFtIHN1cHByZXNzaW9ucyBBIGxpc3Qgb2Ygc3VwcHJlc3Npb25zIHRvIGFwcGx5IHRvIHRoZSBzdGFja1xuICAgKiBAcGFyYW0gYXBwbHlUb05lc3RlZFN0YWNrcyBBcHBseSB0aGUgc3VwcHJlc3Npb25zIHRvIGNoaWxkcmVuIHN0YWNrcyAoZGVmYXVsdDpmYWxzZSlcbiAgICovXG4gIHN0YXRpYyBhZGRTdGFja1N1cHByZXNzaW9ucyhcbiAgICBzdGFjazogU3RhY2ssXG4gICAgc3VwcHJlc3Npb25zOiBOYWdQYWNrU3VwcHJlc3Npb25bXSxcbiAgICBhcHBseVRvTmVzdGVkU3RhY2tzOiBib29sZWFuID0gZmFsc2VcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhY2tzID0gYXBwbHlUb05lc3RlZFN0YWNrc1xuICAgICAgPyBzdGFjay5ub2RlLmZpbmRBbGwoKS5maWx0ZXIoKHgpOiB4IGlzIFN0YWNrID0+IHggaW5zdGFuY2VvZiBTdGFjaylcbiAgICAgIDogW3N0YWNrXTtcbiAgICBzdGFja3MuZm9yRWFjaCgocykgPT4ge1xuICAgICAgTmFnU3VwcHJlc3Npb25IZWxwZXIuYXNzZXJ0U3VwcHJlc3Npb25zQXJlVmFsaWQocy5ub2RlLmlkLCBzdXBwcmVzc2lvbnMpO1xuICAgICAgbGV0IG1ldGFkYXRhID0gcy50ZW1wbGF0ZU9wdGlvbnMubWV0YWRhdGE/LmNka19uYWcgPz8ge307XG4gICAgICBtZXRhZGF0YSA9IE5hZ1N1cHByZXNzaW9uSGVscGVyLmFkZFJ1bGVzVG9NZXRhZGF0YShcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHN1cHByZXNzaW9uc1xuICAgICAgKTtcbiAgICAgIGlmICghcy50ZW1wbGF0ZU9wdGlvbnMubWV0YWRhdGEpIHtcbiAgICAgICAgcy50ZW1wbGF0ZU9wdGlvbnMubWV0YWRhdGEgPSB7fTtcbiAgICAgIH1cbiAgICAgIHMudGVtcGxhdGVPcHRpb25zLm1ldGFkYXRhLmNka19uYWcgPSBtZXRhZGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgY2RrLW5hZyBzdXBwcmVzc2lvbnMgdG8gYSBDZm5SZXNvdXJjZSBhbmQgb3B0aW9uYWxseSBpdHMgY2hpbGRyZW5cbiAgICogQHBhcmFtIGNvbnN0cnVjdCBUaGUgSUNvbnN0cnVjdChzKSB0byBhcHBseSB0aGUgc3VwcHJlc3Npb24gdG9cbiAgICogQHBhcmFtIHN1cHByZXNzaW9ucyBBIGxpc3Qgb2Ygc3VwcHJlc3Npb25zIHRvIGFwcGx5IHRvIHRoZSByZXNvdXJjZVxuICAgKiBAcGFyYW0gYXBwbHlUb0NoaWxkcmVuIEFwcGx5IHRoZSBzdXBwcmVzc2lvbnMgdG8gY2hpbGRyZW4gQ2ZuUmVzb3VyY2VzICAoZGVmYXVsdDpmYWxzZSlcbiAgICovXG4gIHN0YXRpYyBhZGRSZXNvdXJjZVN1cHByZXNzaW9ucyhcbiAgICBjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QgfCBJQ29uc3RydWN0W10sXG4gICAgc3VwcHJlc3Npb25zOiBOYWdQYWNrU3VwcHJlc3Npb25bXSxcbiAgICBhcHBseVRvQ2hpbGRyZW46IGJvb2xlYW4gPSBmYWxzZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RBcnJheTogSUNvbnN0cnVjdFtdID0gQXJyYXkuaXNBcnJheShjb25zdHJ1Y3QpXG4gICAgICA/IGNvbnN0cnVjdFxuICAgICAgOiBbY29uc3RydWN0XTtcbiAgICBpZiAoY29uc3RydWN0QXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbnN0cnVjdCBjYW5ub3QgYmUgYW4gZW1wdHkgYXJyYXkuYCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0QXJyYXkuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgTmFnU3VwcHJlc3Npb25IZWxwZXIuYXNzZXJ0U3VwcHJlc3Npb25zQXJlVmFsaWQoYy5ub2RlLmlkLCBzdXBwcmVzc2lvbnMpO1xuICAgICAgY29uc3QgY29uc3RydWN0cyA9IGFwcGx5VG9DaGlsZHJlbiA/IGMubm9kZS5maW5kQWxsKCkgOiBbY107XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNvbnN0cnVjdHMpIHtcbiAgICAgICAgY29uc3QgcG9zc2libGVMMSA9IGNoaWxkLm5vZGUuZGVmYXVsdENoaWxkXG4gICAgICAgICAgPyBjaGlsZC5ub2RlLmRlZmF1bHRDaGlsZFxuICAgICAgICAgIDogY2hpbGQ7XG4gICAgICAgIGlmIChwb3NzaWJsZUwxIGluc3RhbmNlb2YgQ2ZuUmVzb3VyY2UpIHtcbiAgICAgICAgICBjb25zdCByZXNvdXJjZSA9IHBvc3NpYmxlTDEgYXMgQ2ZuUmVzb3VyY2U7XG4gICAgICAgICAgbGV0IG1ldGFkYXRhID0gcmVzb3VyY2UuZ2V0TWV0YWRhdGEoJ2Nka19uYWcnKTtcbiAgICAgICAgICBtZXRhZGF0YSA9IE5hZ1N1cHByZXNzaW9uSGVscGVyLmFkZFJ1bGVzVG9NZXRhZGF0YShcbiAgICAgICAgICAgIG1ldGFkYXRhLFxuICAgICAgICAgICAgc3VwcHJlc3Npb25zXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXNvdXJjZS5hZGRNZXRhZGF0YSgnY2RrX25hZycsIG1ldGFkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBjZGstbmFnIHN1cHByZXNzaW9ucyB0byBhIENmblJlc291cmNlIGFuZCBvcHRpb25hbGx5IGl0cyBjaGlsZHJlbiB2aWEgaXRzIHBhdGhcbiAgICogQHBhcmFtIHN0YWNrIFRoZSBTdGFjayB0aGUgY29uc3RydWN0IGJlbG9uZ3MgdG9cbiAgICogQHBhcmFtIHBhdGggVGhlIHBhdGgocykgdG8gdGhlIGNvbnN0cnVjdCBpbiB0aGUgcHJvdmlkZWQgc3RhY2tcbiAgICogQHBhcmFtIHN1cHByZXNzaW9ucyBBIGxpc3Qgb2Ygc3VwcHJlc3Npb25zIHRvIGFwcGx5IHRvIHRoZSByZXNvdXJjZVxuICAgKiBAcGFyYW0gYXBwbHlUb0NoaWxkcmVuIEFwcGx5IHRoZSBzdXBwcmVzc2lvbnMgdG8gY2hpbGRyZW4gQ2ZuUmVzb3VyY2VzICAoZGVmYXVsdDpmYWxzZSlcbiAgICovXG4gIHN0YXRpYyBhZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChcbiAgICBzdGFjazogU3RhY2ssXG4gICAgcGF0aDogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgc3VwcHJlc3Npb25zOiBOYWdQYWNrU3VwcHJlc3Npb25bXSxcbiAgICBhcHBseVRvQ2hpbGRyZW46IGJvb2xlYW4gPSBmYWxzZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoQXJyYXk6IHN0cmluZ1tdID0gQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGggOiBbcGF0aF07XG4gICAgaWYgKHBhdGhBcnJheS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUGF0aCBjYW5ub3QgYmUgYW4gZW1wdHkgYXJyYXkuYCk7XG4gICAgfVxuXG4gICAgcGF0aEFycmF5LmZvckVhY2goKHApID0+IHtcbiAgICAgIGxldCBhZGRlZCA9IGZhbHNlO1xuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBzdGFjay5ub2RlLmZpbmRBbGwoKSkge1xuICAgICAgICBjb25zdCBmaXhlZFBhdGggPSBwLnJlcGxhY2UoL15cXC8vLCAnJyk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGlsZC5ub2RlLnBhdGggPT09IGZpeGVkUGF0aCB8fFxuICAgICAgICAgIGNoaWxkLm5vZGUucGF0aCArICcvUmVzb3VyY2UnID09PSBmaXhlZFBhdGhcbiAgICAgICAgKSB7XG4gICAgICAgICAgTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zKFxuICAgICAgICAgICAgY2hpbGQsXG4gICAgICAgICAgICBzdXBwcmVzc2lvbnMsXG4gICAgICAgICAgICBhcHBseVRvQ2hpbGRyZW5cbiAgICAgICAgICApO1xuICAgICAgICAgIGFkZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFhZGRlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFN1cHByZXNzaW9uIHBhdGggXCIke3B9XCIgZGlkIG5vdCBtYXRjaCBhbnkgcmVzb3VyY2UuIFRoaXMgY2FuIG9jY3VyIHdoZW4gYSByZXNvdXJjZSBkb2VzIG5vdCBleGlzdCBvciBpZiBhIHN1cHByZXNzaW9uIGlzIGFwcGxpZWQgYmVmb3JlIGEgcmVzb3VyY2UgaXMgY3JlYXRlZC5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==