@gemeentenijmegen/webapp 1.1.5 → 1.1.6

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 (910) hide show
  1. package/.jsii +12 -12
  2. package/lib/webapp/Criticality.js +1 -1
  3. package/lib/webapp/Webapp.js +1 -1
  4. package/lib/webapp/Webpage.js +1 -1
  5. package/lib/webapp/util/Files.js +1 -1
  6. package/node_modules/@aws-sdk/client-dynamodb/dist-cjs/auth/httpAuthSchemeProvider.js +1 -3
  7. package/node_modules/@aws-sdk/client-dynamodb/dist-cjs/endpoint/endpointResolver.js +10 -1
  8. package/node_modules/@aws-sdk/client-dynamodb/dist-cjs/endpoint/ruleset.js +3 -3
  9. package/node_modules/@aws-sdk/client-dynamodb/dist-cjs/index.js +449 -310
  10. package/node_modules/@aws-sdk/client-dynamodb/dist-es/DynamoDBClient.js +2 -1
  11. package/node_modules/@aws-sdk/client-dynamodb/dist-es/auth/httpAuthSchemeProvider.js +1 -3
  12. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/BatchGetItemCommand.js +4 -1
  13. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/BatchWriteItemCommand.js +4 -1
  14. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/CreateBackupCommand.js +4 -1
  15. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/CreateGlobalTableCommand.js +4 -1
  16. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/CreateTableCommand.js +4 -1
  17. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DeleteBackupCommand.js +4 -1
  18. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DeleteItemCommand.js +4 -1
  19. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DeleteResourcePolicyCommand.js +4 -1
  20. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DeleteTableCommand.js +4 -1
  21. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeBackupCommand.js +4 -1
  22. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeContinuousBackupsCommand.js +4 -1
  23. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeContributorInsightsCommand.js +4 -1
  24. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeExportCommand.js +4 -1
  25. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeGlobalTableCommand.js +4 -1
  26. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeGlobalTableSettingsCommand.js +4 -1
  27. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeImportCommand.js +4 -1
  28. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeKinesisStreamingDestinationCommand.js +4 -1
  29. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeTableCommand.js +4 -1
  30. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeTableReplicaAutoScalingCommand.js +4 -1
  31. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DescribeTimeToLiveCommand.js +4 -1
  32. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/DisableKinesisStreamingDestinationCommand.js +4 -1
  33. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/EnableKinesisStreamingDestinationCommand.js +4 -1
  34. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/ExportTableToPointInTimeCommand.js +4 -1
  35. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/GetItemCommand.js +4 -1
  36. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/GetResourcePolicyCommand.js +4 -1
  37. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/ImportTableCommand.js +4 -1
  38. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/ListBackupsCommand.js +4 -1
  39. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/ListContributorInsightsCommand.js +4 -1
  40. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/ListExportsCommand.js +4 -1
  41. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/ListImportsCommand.js +4 -1
  42. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/ListTagsOfResourceCommand.js +4 -1
  43. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/PutItemCommand.js +4 -1
  44. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/PutResourcePolicyCommand.js +4 -1
  45. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/QueryCommand.js +4 -1
  46. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/RestoreTableFromBackupCommand.js +4 -1
  47. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/RestoreTableToPointInTimeCommand.js +4 -1
  48. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/ScanCommand.js +4 -1
  49. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/TagResourceCommand.js +4 -1
  50. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/TransactGetItemsCommand.js +7 -1
  51. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/UntagResourceCommand.js +4 -1
  52. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/UpdateContinuousBackupsCommand.js +4 -1
  53. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/UpdateContributorInsightsCommand.js +4 -1
  54. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/UpdateGlobalTableCommand.js +4 -1
  55. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/UpdateGlobalTableSettingsCommand.js +4 -1
  56. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/UpdateItemCommand.js +4 -1
  57. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/UpdateKinesisStreamingDestinationCommand.js +4 -1
  58. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/UpdateTableCommand.js +4 -1
  59. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/UpdateTableReplicaAutoScalingCommand.js +4 -1
  60. package/node_modules/@aws-sdk/client-dynamodb/dist-es/commands/UpdateTimeToLiveCommand.js +4 -1
  61. package/node_modules/@aws-sdk/client-dynamodb/dist-es/endpoint/EndpointParameters.js +2 -3
  62. package/node_modules/@aws-sdk/client-dynamodb/dist-es/endpoint/endpointResolver.js +10 -1
  63. package/node_modules/@aws-sdk/client-dynamodb/dist-es/endpoint/ruleset.js +3 -3
  64. package/node_modules/@aws-sdk/client-dynamodb/dist-es/runtimeExtensions.js +2 -14
  65. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/BatchExecuteStatementCommand.d.ts +1 -0
  66. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/BatchGetItemCommand.d.ts +27 -27
  67. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/BatchWriteItemCommand.d.ts +32 -29
  68. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/CreateBackupCommand.d.ts +1 -0
  69. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/CreateGlobalTableCommand.d.ts +1 -0
  70. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/CreateTableCommand.d.ts +1 -70
  71. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteBackupCommand.d.ts +1 -0
  72. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteItemCommand.d.ts +12 -12
  73. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteResourcePolicyCommand.d.ts +1 -0
  74. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteTableCommand.d.ts +13 -13
  75. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeBackupCommand.d.ts +1 -0
  76. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeContinuousBackupsCommand.d.ts +1 -0
  77. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeContributorInsightsCommand.d.ts +1 -0
  78. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeEndpointsCommand.d.ts +1 -0
  79. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeExportCommand.d.ts +1 -0
  80. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeGlobalTableCommand.d.ts +1 -0
  81. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeGlobalTableSettingsCommand.d.ts +1 -0
  82. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeImportCommand.d.ts +1 -0
  83. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeKinesisStreamingDestinationCommand.d.ts +1 -0
  84. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeLimitsCommand.d.ts +8 -8
  85. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeTableCommand.d.ts +1 -47
  86. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeTableReplicaAutoScalingCommand.d.ts +1 -0
  87. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeTimeToLiveCommand.d.ts +1 -0
  88. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DisableKinesisStreamingDestinationCommand.d.ts +1 -0
  89. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/EnableKinesisStreamingDestinationCommand.d.ts +1 -0
  90. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ExecuteStatementCommand.d.ts +1 -0
  91. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ExecuteTransactionCommand.d.ts +1 -0
  92. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ExportTableToPointInTimeCommand.d.ts +1 -0
  93. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/GetItemCommand.d.ts +16 -16
  94. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/GetResourcePolicyCommand.d.ts +1 -0
  95. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ImportTableCommand.d.ts +1 -0
  96. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListBackupsCommand.d.ts +1 -0
  97. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListContributorInsightsCommand.d.ts +1 -0
  98. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListExportsCommand.d.ts +1 -0
  99. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListGlobalTablesCommand.d.ts +1 -0
  100. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListImportsCommand.d.ts +1 -0
  101. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListTablesCommand.d.ts +5 -5
  102. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListTagsOfResourceCommand.d.ts +1 -0
  103. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/PutItemCommand.d.ts +15 -15
  104. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/PutResourcePolicyCommand.d.ts +1 -0
  105. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/QueryCommand.d.ts +15 -15
  106. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/RestoreTableFromBackupCommand.d.ts +1 -0
  107. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/RestoreTableToPointInTimeCommand.d.ts +1 -0
  108. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ScanCommand.d.ts +24 -24
  109. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/TagResourceCommand.d.ts +1 -0
  110. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/TransactGetItemsCommand.d.ts +1 -0
  111. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/TransactWriteItemsCommand.d.ts +1 -0
  112. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UntagResourceCommand.d.ts +1 -0
  113. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateContinuousBackupsCommand.d.ts +1 -0
  114. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateContributorInsightsCommand.d.ts +1 -0
  115. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateGlobalTableCommand.d.ts +1 -0
  116. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateGlobalTableSettingsCommand.d.ts +1 -0
  117. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateItemCommand.d.ts +28 -28
  118. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateKinesisStreamingDestinationCommand.d.ts +1 -0
  119. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateTableCommand.d.ts +1 -52
  120. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateTableReplicaAutoScalingCommand.d.ts +1 -0
  121. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateTimeToLiveCommand.d.ts +1 -0
  122. package/node_modules/@aws-sdk/client-dynamodb/dist-types/endpoint/EndpointParameters.d.ts +2 -0
  123. package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +2 -0
  124. package/node_modules/@aws-sdk/client-dynamodb/package.json +35 -35
  125. package/node_modules/@aws-sdk/client-s3/dist-cjs/auth/httpAuthSchemeProvider.js +1 -3
  126. package/node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/ruleset.js +3 -3
  127. package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +58 -77
  128. package/node_modules/@aws-sdk/client-s3/dist-es/S3Client.js +2 -1
  129. package/node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthSchemeProvider.js +1 -3
  130. package/node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js +2 -3
  131. package/node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js +3 -3
  132. package/node_modules/@aws-sdk/client-s3/dist-es/runtimeExtensions.js +2 -14
  133. package/node_modules/@aws-sdk/client-s3/dist-types/commands/AbortMultipartUploadCommand.d.ts +9 -6
  134. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CompleteMultipartUploadCommand.d.ts +16 -16
  135. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CopyObjectCommand.d.ts +9 -9
  136. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketCommand.d.ts +15 -16
  137. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataTableConfigurationCommand.d.ts +1 -0
  138. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateMultipartUploadCommand.d.ts +8 -8
  139. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateSessionCommand.d.ts +1 -0
  140. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketAnalyticsConfigurationCommand.d.ts +1 -0
  141. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCommand.d.ts +7 -4
  142. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCorsCommand.d.ts +7 -4
  143. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketEncryptionCommand.d.ts +1 -0
  144. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketIntelligentTieringConfigurationCommand.d.ts +1 -0
  145. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketInventoryConfigurationCommand.d.ts +1 -0
  146. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketLifecycleCommand.d.ts +7 -4
  147. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetadataTableConfigurationCommand.d.ts +1 -0
  148. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetricsConfigurationCommand.d.ts +1 -0
  149. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketOwnershipControlsCommand.d.ts +1 -0
  150. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketPolicyCommand.d.ts +7 -4
  151. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketReplicationCommand.d.ts +7 -4
  152. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketTaggingCommand.d.ts +7 -4
  153. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketWebsiteCommand.d.ts +7 -4
  154. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectCommand.d.ts +18 -13
  155. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectTaggingCommand.d.ts +11 -12
  156. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectsCommand.d.ts +30 -31
  157. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeletePublicAccessBlockCommand.d.ts +1 -0
  158. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAccelerateConfigurationCommand.d.ts +1 -0
  159. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAclCommand.d.ts +1 -0
  160. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAnalyticsConfigurationCommand.d.ts +1 -0
  161. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketCorsCommand.d.ts +9 -9
  162. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketEncryptionCommand.d.ts +1 -0
  163. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketIntelligentTieringConfigurationCommand.d.ts +1 -0
  164. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketInventoryConfigurationCommand.d.ts +1 -0
  165. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLifecycleConfigurationCommand.d.ts +11 -11
  166. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLocationCommand.d.ts +5 -5
  167. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLoggingCommand.d.ts +1 -0
  168. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataTableConfigurationCommand.d.ts +1 -0
  169. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetricsConfigurationCommand.d.ts +1 -0
  170. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketNotificationConfigurationCommand.d.ts +1 -0
  171. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketOwnershipControlsCommand.d.ts +1 -0
  172. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyCommand.d.ts +5 -5
  173. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyStatusCommand.d.ts +1 -0
  174. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketReplicationCommand.d.ts +12 -12
  175. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketRequestPaymentCommand.d.ts +5 -5
  176. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketTaggingCommand.d.ts +9 -9
  177. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketVersioningCommand.d.ts +6 -6
  178. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketWebsiteCommand.d.ts +8 -8
  179. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAclCommand.d.ts +29 -29
  180. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAttributesCommand.d.ts +1 -0
  181. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectCommand.d.ts +45 -31
  182. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectLegalHoldCommand.d.ts +1 -0
  183. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectLockConfigurationCommand.d.ts +1 -0
  184. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectRetentionCommand.d.ts +1 -0
  185. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectTaggingCommand.d.ts +19 -20
  186. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectTorrentCommand.d.ts +18 -5
  187. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetPublicAccessBlockCommand.d.ts +1 -0
  188. package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadBucketCommand.d.ts +7 -4
  189. package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadObjectCommand.d.ts +12 -12
  190. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketAnalyticsConfigurationsCommand.d.ts +1 -0
  191. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketIntelligentTieringConfigurationsCommand.d.ts +1 -0
  192. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketInventoryConfigurationsCommand.d.ts +1 -0
  193. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketMetricsConfigurationsCommand.d.ts +1 -0
  194. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketsCommand.d.ts +14 -14
  195. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListDirectoryBucketsCommand.d.ts +1 -0
  196. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListMultipartUploadsCommand.d.ts +62 -63
  197. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectVersionsCommand.d.ts +26 -26
  198. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsCommand.d.ts +23 -23
  199. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsV2Command.d.ts +22 -22
  200. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListPartsCommand.d.ts +22 -22
  201. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAccelerateConfigurationCommand.d.ts +1 -0
  202. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAclCommand.d.ts +9 -6
  203. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAnalyticsConfigurationCommand.d.ts +1 -0
  204. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketCorsCommand.d.ts +19 -16
  205. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketEncryptionCommand.d.ts +1 -0
  206. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketIntelligentTieringConfigurationCommand.d.ts +1 -0
  207. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketInventoryConfigurationCommand.d.ts +1 -0
  208. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLifecycleConfigurationCommand.d.ts +18 -15
  209. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLoggingCommand.d.ts +16 -13
  210. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketMetricsConfigurationCommand.d.ts +1 -0
  211. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketNotificationConfigurationCommand.d.ts +11 -8
  212. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketOwnershipControlsCommand.d.ts +1 -0
  213. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketPolicyCommand.d.ts +8 -5
  214. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketReplicationCommand.d.ts +15 -12
  215. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketRequestPaymentCommand.d.ts +9 -6
  216. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketTaggingCommand.d.ts +13 -10
  217. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketVersioningCommand.d.ts +10 -7
  218. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketWebsiteCommand.d.ts +13 -10
  219. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectAclCommand.d.ts +11 -8
  220. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectCommand.d.ts +68 -74
  221. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLegalHoldCommand.d.ts +1 -0
  222. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLockConfigurationCommand.d.ts +1 -0
  223. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectRetentionCommand.d.ts +1 -0
  224. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectTaggingCommand.d.ts +12 -12
  225. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutPublicAccessBlockCommand.d.ts +1 -0
  226. package/node_modules/@aws-sdk/client-s3/dist-types/commands/RestoreObjectCommand.d.ts +17 -16
  227. package/node_modules/@aws-sdk/client-s3/dist-types/commands/SelectObjectContentCommand.d.ts +1 -0
  228. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCommand.d.ts +9 -9
  229. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCopyCommand.d.ts +21 -22
  230. package/node_modules/@aws-sdk/client-s3/dist-types/commands/WriteGetObjectResponseCommand.d.ts +1 -0
  231. package/node_modules/@aws-sdk/client-s3/dist-types/models/models_0.d.ts +47 -48
  232. package/node_modules/@aws-sdk/client-s3/dist-types/models/models_1.d.ts +13 -14
  233. package/node_modules/@aws-sdk/client-s3/package.json +50 -50
  234. package/node_modules/@aws-sdk/client-secrets-manager/dist-cjs/auth/httpAuthSchemeProvider.js +1 -3
  235. package/node_modules/@aws-sdk/client-secrets-manager/dist-cjs/index.js +47 -48
  236. package/node_modules/@aws-sdk/client-secrets-manager/dist-es/SecretsManagerClient.js +2 -1
  237. package/node_modules/@aws-sdk/client-secrets-manager/dist-es/auth/httpAuthSchemeProvider.js +1 -3
  238. package/node_modules/@aws-sdk/client-secrets-manager/dist-es/endpoint/EndpointParameters.js +2 -3
  239. package/node_modules/@aws-sdk/client-secrets-manager/dist-es/runtimeExtensions.js +2 -14
  240. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/BatchGetSecretValueCommand.d.ts +24 -24
  241. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/CancelRotateSecretCommand.d.ts +6 -6
  242. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/CreateSecretCommand.d.ts +10 -10
  243. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/DeleteResourcePolicyCommand.d.ts +6 -6
  244. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/DeleteSecretCommand.d.ts +1 -19
  245. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/DescribeSecretCommand.d.ts +1 -48
  246. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/GetRandomPasswordCommand.d.ts +7 -7
  247. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/GetResourcePolicyCommand.d.ts +17 -7
  248. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/GetSecretValueCommand.d.ts +14 -10
  249. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/ListSecretVersionIdsCommand.d.ts +16 -16
  250. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/ListSecretsCommand.d.ts +17 -17
  251. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/PutResourcePolicyCommand.d.ts +17 -7
  252. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/PutSecretValueCommand.d.ts +10 -10
  253. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/RemoveRegionsFromReplicationCommand.d.ts +1 -0
  254. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/ReplicateSecretToRegionsCommand.d.ts +12 -12
  255. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/RestoreSecretCommand.d.ts +6 -6
  256. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/RotateSecretCommand.d.ts +16 -17
  257. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/StopReplicationToReplicaCommand.d.ts +1 -0
  258. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/TagResourceCommand.d.ts +12 -9
  259. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/UntagResourceCommand.d.ts +8 -5
  260. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/UpdateSecretCommand.d.ts +25 -27
  261. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/UpdateSecretVersionStageCommand.d.ts +21 -23
  262. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/ValidateResourcePolicyCommand.d.ts +17 -7
  263. package/node_modules/@aws-sdk/client-secrets-manager/package.json +33 -33
  264. package/node_modules/@aws-sdk/client-ssm/dist-cjs/auth/httpAuthSchemeProvider.js +1 -3
  265. package/node_modules/@aws-sdk/client-ssm/dist-cjs/index.js +225 -220
  266. package/node_modules/@aws-sdk/client-ssm/dist-es/SSMClient.js +2 -1
  267. package/node_modules/@aws-sdk/client-ssm/dist-es/auth/httpAuthSchemeProvider.js +1 -3
  268. package/node_modules/@aws-sdk/client-ssm/dist-es/endpoint/EndpointParameters.js +2 -3
  269. package/node_modules/@aws-sdk/client-ssm/dist-es/models/models_0.js +5 -0
  270. package/node_modules/@aws-sdk/client-ssm/dist-es/protocols/Aws_json1_1.js +4 -0
  271. package/node_modules/@aws-sdk/client-ssm/dist-es/runtimeExtensions.js +2 -14
  272. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/AddTagsToResourceCommand.d.ts +1 -0
  273. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/AssociateOpsItemRelatedItemCommand.d.ts +1 -0
  274. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CancelCommandCommand.d.ts +1 -0
  275. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CancelMaintenanceWindowExecutionCommand.d.ts +1 -0
  276. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateActivationCommand.d.ts +1 -0
  277. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateAssociationBatchCommand.d.ts +1 -0
  278. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateAssociationCommand.d.ts +1 -0
  279. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateDocumentCommand.d.ts +1 -0
  280. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateMaintenanceWindowCommand.d.ts +1 -0
  281. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateOpsItemCommand.d.ts +1 -0
  282. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateOpsMetadataCommand.d.ts +1 -0
  283. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreatePatchBaselineCommand.d.ts +2 -0
  284. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateResourceDataSyncCommand.d.ts +1 -0
  285. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteActivationCommand.d.ts +1 -0
  286. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteAssociationCommand.d.ts +1 -0
  287. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteDocumentCommand.d.ts +1 -0
  288. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteInventoryCommand.d.ts +1 -0
  289. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteMaintenanceWindowCommand.d.ts +1 -0
  290. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteOpsItemCommand.d.ts +1 -0
  291. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteOpsMetadataCommand.d.ts +1 -0
  292. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteParameterCommand.d.ts +1 -0
  293. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteParametersCommand.d.ts +1 -0
  294. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeletePatchBaselineCommand.d.ts +1 -0
  295. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteResourceDataSyncCommand.d.ts +1 -0
  296. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteResourcePolicyCommand.d.ts +1 -0
  297. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeregisterManagedInstanceCommand.d.ts +1 -0
  298. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeregisterPatchBaselineForPatchGroupCommand.d.ts +1 -0
  299. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeregisterTargetFromMaintenanceWindowCommand.d.ts +1 -0
  300. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeregisterTaskFromMaintenanceWindowCommand.d.ts +1 -0
  301. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeActivationsCommand.d.ts +1 -0
  302. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAssociationCommand.d.ts +1 -0
  303. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAssociationExecutionTargetsCommand.d.ts +1 -0
  304. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAssociationExecutionsCommand.d.ts +1 -0
  305. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAutomationExecutionsCommand.d.ts +1 -0
  306. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAutomationStepExecutionsCommand.d.ts +1 -0
  307. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAvailablePatchesCommand.d.ts +1 -0
  308. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeDocumentCommand.d.ts +1 -0
  309. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeDocumentPermissionCommand.d.ts +1 -0
  310. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeEffectiveInstanceAssociationsCommand.d.ts +1 -0
  311. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeEffectivePatchesForPatchBaselineCommand.d.ts +1 -0
  312. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstanceAssociationsStatusCommand.d.ts +1 -0
  313. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstanceInformationCommand.d.ts +1 -0
  314. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstancePatchStatesCommand.d.ts +2 -0
  315. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstancePatchStatesForPatchGroupCommand.d.ts +2 -0
  316. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstancePatchesCommand.d.ts +2 -1
  317. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstancePropertiesCommand.d.ts +1 -0
  318. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInventoryDeletionsCommand.d.ts +1 -0
  319. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowExecutionTaskInvocationsCommand.d.ts +1 -0
  320. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowExecutionTasksCommand.d.ts +1 -0
  321. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowExecutionsCommand.d.ts +1 -0
  322. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowScheduleCommand.d.ts +1 -0
  323. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowTargetsCommand.d.ts +1 -0
  324. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowTasksCommand.d.ts +1 -0
  325. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowsCommand.d.ts +1 -0
  326. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowsForTargetCommand.d.ts +1 -0
  327. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeOpsItemsCommand.d.ts +1 -0
  328. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeParametersCommand.d.ts +1 -0
  329. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribePatchBaselinesCommand.d.ts +1 -0
  330. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribePatchGroupStateCommand.d.ts +2 -0
  331. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribePatchGroupsCommand.d.ts +1 -0
  332. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribePatchPropertiesCommand.d.ts +1 -0
  333. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeSessionsCommand.d.ts +1 -0
  334. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DisassociateOpsItemRelatedItemCommand.d.ts +1 -0
  335. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetAutomationExecutionCommand.d.ts +1 -0
  336. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetCalendarStateCommand.d.ts +1 -0
  337. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetCommandInvocationCommand.d.ts +1 -0
  338. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetConnectionStatusCommand.d.ts +1 -0
  339. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetDefaultPatchBaselineCommand.d.ts +1 -0
  340. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetDeployablePatchSnapshotForInstanceCommand.d.ts +2 -0
  341. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetDocumentCommand.d.ts +1 -0
  342. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetExecutionPreviewCommand.d.ts +1 -29
  343. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetInventoryCommand.d.ts +1 -0
  344. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetInventorySchemaCommand.d.ts +1 -0
  345. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetMaintenanceWindowCommand.d.ts +1 -0
  346. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetMaintenanceWindowExecutionCommand.d.ts +1 -0
  347. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetMaintenanceWindowExecutionTaskCommand.d.ts +1 -0
  348. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetMaintenanceWindowExecutionTaskInvocationCommand.d.ts +1 -0
  349. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetMaintenanceWindowTaskCommand.d.ts +1 -0
  350. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetOpsItemCommand.d.ts +1 -0
  351. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetOpsMetadataCommand.d.ts +1 -0
  352. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetOpsSummaryCommand.d.ts +1 -0
  353. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetParameterCommand.d.ts +1 -0
  354. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetParameterHistoryCommand.d.ts +1 -0
  355. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetParametersByPathCommand.d.ts +1 -0
  356. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetParametersCommand.d.ts +1 -0
  357. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetPatchBaselineCommand.d.ts +2 -0
  358. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetPatchBaselineForPatchGroupCommand.d.ts +1 -0
  359. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetResourcePoliciesCommand.d.ts +1 -0
  360. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetServiceSettingCommand.d.ts +1 -0
  361. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/LabelParameterVersionCommand.d.ts +1 -0
  362. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListAssociationVersionsCommand.d.ts +1 -0
  363. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListAssociationsCommand.d.ts +1 -0
  364. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListCommandInvocationsCommand.d.ts +1 -0
  365. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListCommandsCommand.d.ts +1 -0
  366. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListComplianceItemsCommand.d.ts +1 -0
  367. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListComplianceSummariesCommand.d.ts +1 -0
  368. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListDocumentMetadataHistoryCommand.d.ts +1 -0
  369. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListDocumentVersionsCommand.d.ts +1 -0
  370. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListDocumentsCommand.d.ts +1 -0
  371. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListInventoryEntriesCommand.d.ts +1 -0
  372. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListNodesCommand.d.ts +1 -52
  373. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListNodesSummaryCommand.d.ts +19 -19
  374. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListOpsItemEventsCommand.d.ts +1 -0
  375. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListOpsItemRelatedItemsCommand.d.ts +1 -0
  376. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListOpsMetadataCommand.d.ts +1 -0
  377. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListResourceComplianceSummariesCommand.d.ts +1 -0
  378. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListResourceDataSyncCommand.d.ts +1 -0
  379. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListTagsForResourceCommand.d.ts +1 -0
  380. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ModifyDocumentPermissionCommand.d.ts +1 -0
  381. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/PutComplianceItemsCommand.d.ts +1 -0
  382. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/PutInventoryCommand.d.ts +1 -0
  383. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/PutParameterCommand.d.ts +1 -0
  384. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/PutResourcePolicyCommand.d.ts +1 -0
  385. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/RegisterDefaultPatchBaselineCommand.d.ts +1 -0
  386. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/RegisterPatchBaselineForPatchGroupCommand.d.ts +1 -0
  387. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/RegisterTargetWithMaintenanceWindowCommand.d.ts +1 -0
  388. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/RegisterTaskWithMaintenanceWindowCommand.d.ts +1 -0
  389. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/RemoveTagsFromResourceCommand.d.ts +1 -0
  390. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ResetServiceSettingCommand.d.ts +2 -2
  391. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ResumeSessionCommand.d.ts +1 -0
  392. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/SendAutomationSignalCommand.d.ts +1 -0
  393. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/SendCommandCommand.d.ts +1 -0
  394. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartAssociationsOnceCommand.d.ts +1 -0
  395. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartAutomationExecutionCommand.d.ts +1 -0
  396. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartChangeRequestExecutionCommand.d.ts +1 -0
  397. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartExecutionPreviewCommand.d.ts +5 -5
  398. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartSessionCommand.d.ts +1 -0
  399. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StopAutomationExecutionCommand.d.ts +1 -0
  400. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/TerminateSessionCommand.d.ts +1 -0
  401. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UnlabelParameterVersionCommand.d.ts +1 -0
  402. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateAssociationCommand.d.ts +1 -0
  403. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateAssociationStatusCommand.d.ts +1 -0
  404. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateDocumentCommand.d.ts +1 -0
  405. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateDocumentDefaultVersionCommand.d.ts +1 -0
  406. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateDocumentMetadataCommand.d.ts +1 -0
  407. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateMaintenanceWindowCommand.d.ts +1 -0
  408. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateMaintenanceWindowTargetCommand.d.ts +1 -0
  409. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateMaintenanceWindowTaskCommand.d.ts +1 -0
  410. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateManagedInstanceRoleCommand.d.ts +1 -0
  411. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateOpsItemCommand.d.ts +1 -0
  412. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateOpsMetadataCommand.d.ts +1 -0
  413. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdatePatchBaselineCommand.d.ts +3 -0
  414. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateResourceDataSyncCommand.d.ts +1 -0
  415. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateServiceSettingCommand.d.ts +1 -0
  416. package/node_modules/@aws-sdk/client-ssm/dist-types/models/models_0.d.ts +34 -22
  417. package/node_modules/@aws-sdk/client-ssm/dist-types/models/models_1.d.ts +60 -69
  418. package/node_modules/@aws-sdk/client-ssm/dist-types/models/models_2.d.ts +83 -1
  419. package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/commands/ResetServiceSettingCommand.d.ts +4 -2
  420. package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/models/models_0.d.ts +9 -5
  421. package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/models/models_1.d.ts +9 -4
  422. package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/models/models_2.d.ts +6 -0
  423. package/node_modules/@aws-sdk/client-ssm/package.json +34 -34
  424. package/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js +1 -3
  425. package/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +22 -23
  426. package/node_modules/@aws-sdk/client-sso/dist-es/SSOClient.js +2 -1
  427. package/node_modules/@aws-sdk/client-sso/dist-es/auth/httpAuthSchemeProvider.js +1 -3
  428. package/node_modules/@aws-sdk/client-sso/dist-es/endpoint/EndpointParameters.js +2 -3
  429. package/node_modules/@aws-sdk/client-sso/dist-es/runtimeExtensions.js +2 -14
  430. package/node_modules/@aws-sdk/client-sso/dist-types/commands/GetRoleCredentialsCommand.d.ts +1 -0
  431. package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountRolesCommand.d.ts +1 -0
  432. package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountsCommand.d.ts +1 -0
  433. package/node_modules/@aws-sdk/client-sso/dist-types/commands/LogoutCommand.d.ts +1 -0
  434. package/node_modules/@aws-sdk/client-sso/package.json +32 -32
  435. package/node_modules/@aws-sdk/core/dist-cjs/submodules/account-id-endpoint/index.js +13 -15
  436. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +3 -3
  437. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +82 -33
  438. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +4 -4
  439. package/node_modules/@aws-sdk/core/dist-es/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.js +4 -4
  440. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js +70 -27
  441. package/node_modules/@aws-sdk/core/dist-types/api-extractor-type-index.d.ts +5 -0
  442. package/node_modules/@aws-sdk/core/dist-types/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.d.ts +0 -3
  443. package/node_modules/@aws-sdk/core/dist-types/submodules/account-id-endpoint/AccountIdEndpointModeConstants.d.ts +9 -0
  444. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +2 -1
  445. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +25 -3
  446. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/parseJsonBody.d.ts +9 -0
  447. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/parseXmlBody.d.ts +9 -0
  448. package/node_modules/@aws-sdk/core/dist-types/ts3.4/api-extractor-type-index.d.ts +5 -0
  449. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +11 -1
  450. package/node_modules/@aws-sdk/core/package.json +22 -22
  451. package/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +3 -3
  452. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  453. package/node_modules/@aws-sdk/credential-provider-http/package.json +10 -10
  454. package/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +9 -9
  455. package/node_modules/@aws-sdk/credential-provider-ini/package.json +13 -13
  456. package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +3 -3
  457. package/node_modules/@aws-sdk/credential-provider-node/package.json +12 -12
  458. package/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +3 -3
  459. package/node_modules/@aws-sdk/credential-provider-process/package.json +6 -6
  460. package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +3 -3
  461. package/node_modules/@aws-sdk/credential-provider-sso/package.json +8 -8
  462. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +4 -4
  463. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +6 -6
  464. package/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/index.js +14 -18
  465. package/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/configurations.js +2 -3
  466. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +5 -5
  467. package/node_modules/@aws-sdk/middleware-endpoint-discovery/dist-cjs/index.js +23 -22
  468. package/node_modules/@aws-sdk/middleware-endpoint-discovery/dist-es/resolveEndpointDiscoveryConfig.js +11 -9
  469. package/node_modules/@aws-sdk/middleware-endpoint-discovery/dist-types/configurations.d.ts +3 -0
  470. package/node_modules/@aws-sdk/middleware-endpoint-discovery/dist-types/getEndpointDiscoveryPlugin.d.ts +11 -0
  471. package/node_modules/@aws-sdk/middleware-endpoint-discovery/dist-types/resolveEndpointDiscoveryConfig.d.ts +6 -0
  472. package/node_modules/@aws-sdk/middleware-endpoint-discovery/package.json +6 -5
  473. package/node_modules/@aws-sdk/middleware-expect-continue/dist-cjs/index.js +5 -5
  474. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +4 -4
  475. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js +18 -21
  476. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/resolveFlexibleChecksumsConfig.js +8 -6
  477. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS.d.ts +9 -0
  478. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS.d.ts +9 -0
  479. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/configuration.d.ts +3 -0
  480. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/constants.d.ts +16 -0
  481. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/crc64-nvme-crt-container.d.ts +1 -1
  482. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/flexibleChecksumsInputMiddleware.d.ts +3 -0
  483. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/flexibleChecksumsMiddleware.d.ts +6 -1
  484. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/flexibleChecksumsResponseMiddleware.d.ts +3 -0
  485. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/getFlexibleChecksumsPlugin.d.ts +6 -0
  486. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/resolveFlexibleChecksumsConfig.d.ts +9 -0
  487. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +10 -9
  488. package/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js +7 -9
  489. package/node_modules/@aws-sdk/middleware-host-header/dist-types/index.d.ts +15 -0
  490. package/node_modules/@aws-sdk/middleware-host-header/package.json +5 -4
  491. package/node_modules/@aws-sdk/middleware-location-constraint/dist-cjs/index.js +5 -5
  492. package/node_modules/@aws-sdk/middleware-location-constraint/dist-es/configuration.js +1 -1
  493. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +3 -3
  494. package/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js +5 -5
  495. package/node_modules/@aws-sdk/middleware-logger/package.json +3 -3
  496. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js +10 -6
  497. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js +6 -3
  498. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +4 -4
  499. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +39 -32
  500. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js +9 -9
  501. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3Configuration.d.ts +6 -4
  502. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +11 -11
  503. package/node_modules/@aws-sdk/middleware-ssec/dist-cjs/index.js +6 -7
  504. package/node_modules/@aws-sdk/middleware-ssec/package.json +3 -3
  505. package/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js +11 -11
  506. package/node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js +4 -4
  507. package/node_modules/@aws-sdk/middleware-user-agent/package.json +7 -7
  508. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js +1 -3
  509. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +23 -24
  510. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js +2 -1
  511. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js +2 -5
  512. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js +2 -3
  513. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +6 -7
  514. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js +2 -14
  515. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js +2 -1
  516. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthSchemeProvider.js +1 -3
  517. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/EndpointParameters.js +2 -3
  518. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeExtensions.js +2 -14
  519. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +2 -1
  520. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthSchemeProvider.js +2 -5
  521. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/EndpointParameters.js +2 -3
  522. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeExtensions.js +2 -14
  523. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +46 -0
  524. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +47 -0
  525. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +34 -0
  526. package/node_modules/@aws-sdk/nested-clients/package.json +36 -36
  527. package/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js +15 -26
  528. package/node_modules/@aws-sdk/region-config-resolver/dist-es/extensions/index.js +2 -12
  529. package/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/resolveRegionConfig.js +2 -3
  530. package/node_modules/@aws-sdk/region-config-resolver/package.json +5 -5
  531. package/node_modules/@aws-sdk/s3-request-presigner/dist-cjs/index.js +4 -4
  532. package/node_modules/@aws-sdk/s3-request-presigner/package.json +10 -10
  533. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +4 -5
  534. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +6 -6
  535. package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +3 -3
  536. package/node_modules/@aws-sdk/token-providers/package.json +6 -6
  537. package/node_modules/@aws-sdk/types/dist-cjs/index.js +3 -3
  538. package/node_modules/@aws-sdk/types/dist-es/function.js +1 -0
  539. package/node_modules/@aws-sdk/types/dist-es/index.js +1 -0
  540. package/node_modules/@aws-sdk/types/dist-types/function.d.ts +7 -0
  541. package/node_modules/@aws-sdk/types/dist-types/index.d.ts +1 -0
  542. package/node_modules/@aws-sdk/types/dist-types/ts3.4/function.d.ts +7 -0
  543. package/node_modules/@aws-sdk/types/dist-types/ts3.4/index.d.ts +1 -0
  544. package/node_modules/@aws-sdk/types/package.json +2 -2
  545. package/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js +5 -7
  546. package/node_modules/@aws-sdk/util-endpoints/package.json +4 -4
  547. package/node_modules/@aws-sdk/util-format-url/dist-cjs/index.js +3 -3
  548. package/node_modules/@aws-sdk/util-format-url/package.json +4 -4
  549. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
  550. package/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +5 -5
  551. package/node_modules/@aws-sdk/util-user-agent-node/package.json +5 -5
  552. package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +3 -3
  553. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  554. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/.jsii +45 -45
  555. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/README.md +1 -1
  556. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/lib/index.js +7 -7
  557. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/.jsii +464 -138
  558. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/alb-helper.js +2 -3
  559. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/apigateway-defaults.d.ts +6 -6
  560. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/apigateway-defaults.js +11 -11
  561. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/apigateway-helper.d.ts +10 -5
  562. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/apigateway-helper.js +59 -45
  563. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-helper.d.ts +30 -0
  564. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-helper.js +87 -3
  565. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudwatch-log-group-helper.js +2 -4
  566. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cognito-defaults.d.ts +2 -2
  567. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cognito-defaults.js +4 -4
  568. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cognito-helper.js +3 -5
  569. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/dynamodb-table-defaults.d.ts +3 -3
  570. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/dynamodb-table-defaults.js +6 -6
  571. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/dynamodb-table-helper.js +3 -3
  572. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/elasticsearch-helper.js +5 -5
  573. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/eventbridge-helper.js +4 -4
  574. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/events-rule-defaults.d.ts +1 -1
  575. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/events-rule-defaults.js +4 -4
  576. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/fargate-helper.js +2 -3
  577. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/glue-database-defaults.js +3 -3
  578. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/glue-job-helper.js +3 -3
  579. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/glue-table-defaults.js +6 -6
  580. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/iot-topic-rule-defaults.d.ts +1 -1
  581. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/iot-topic-rule-defaults.js +6 -6
  582. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kendra-helper.d.ts +1 -1
  583. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kendra-helper.js +1 -1
  584. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-analytics-defaults.d.ts +2 -2
  585. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-analytics-defaults.js +4 -4
  586. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-analytics-helper.js +2 -2
  587. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-firehose-s3-defaults.d.ts +1 -1
  588. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-firehose-s3-defaults.js +7 -7
  589. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-streams-defaults.d.ts +2 -2
  590. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-streams-defaults.js +4 -4
  591. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-streams-helper.js +2 -3
  592. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kms-defaults.d.ts +2 -2
  593. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kms-defaults.js +4 -4
  594. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kms-helper.js +2 -4
  595. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/lambda-event-source-mapping-defaults.d.ts +3 -3
  596. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/lambda-event-source-mapping-defaults.js +16 -16
  597. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/mediastore-helper.js +2 -3
  598. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/opensearch-helper.js +2 -2
  599. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/override-warning-service.js +9 -6
  600. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/s3-bucket-helper.js +7 -1
  601. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sagemaker-helper.d.ts +5 -0
  602. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sagemaker-helper.js +10 -9
  603. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/secretsmanager-defaults.d.ts +2 -2
  604. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/secretsmanager-defaults.js +4 -4
  605. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/secretsmanager-helper.js +2 -3
  606. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sns-defaults.d.ts +2 -2
  607. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sns-defaults.js +4 -4
  608. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sns-helper.js +2 -2
  609. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sqs-defaults.js +3 -3
  610. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sqs-helper.js +2 -2
  611. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/step-function-defaults.d.ts +1 -1
  612. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/step-function-defaults.js +3 -3
  613. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/utils.d.ts +1 -1
  614. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/utils.js +14 -12
  615. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/vpc-helper.js +1 -3
  616. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/waf-helper.js +2 -3
  617. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/websocket-api-helper.js +1 -2
  618. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/nohoist.sh +11 -0
  619. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/package.json +7 -6
  620. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/apigateway-helper.test.js +84 -6
  621. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/cloudfront-distribution-api-gateway-helper.test.js +11 -11
  622. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.js +467 -1
  623. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/dynamo-table.test.js +9 -9
  624. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/glue-job-helper.test.js +7 -7
  625. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/glue-table-helper.test.js +5 -5
  626. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/kinesis-analytics.test.js +2 -2
  627. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/kinesis-streams-defaults.test.js +2 -2
  628. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/lambda-event-source.test.js +10 -10
  629. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/openapi/apiDefinition.json +57 -0
  630. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/override-warning-service.test.js +25 -26
  631. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/pipes-helper.test.js +2 -2
  632. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/step-function-helper.test.js +5 -5
  633. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/utils.test.js +11 -12
  634. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/package.json +8 -8
  635. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js +1 -2
  636. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +21 -0
  637. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/cdk.out +1 -1
  638. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/integ.json +1 -1
  639. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddb-add-secondary-index.assets.json +6 -6
  640. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddb-add-secondary-index.template.json +25 -19
  641. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/lamddbaddsecondaryindexIntegDefaultTestDeployAssert3193B4D9.assets.json +1 -1
  642. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/manifest.json +197 -3
  643. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/tree.json +1 -415
  644. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/cdk.out +1 -1
  645. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/integ.json +1 -1
  646. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.assets.json +3 -3
  647. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.template.json +35 -7
  648. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddbdeployFunctionWithExistingVpcIntegDefaultTestDeployAssertEE08E38E.assets.json +1 -1
  649. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/manifest.json +476 -3
  650. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/tree.json +1 -1386
  651. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/cdk.out +1 -1
  652. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/integ.json +1 -1
  653. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.assets.json +3 -3
  654. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.template.json +33 -7
  655. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddbdeployFunctionWithVpcIntegDefaultTestDeployAssert0AB8275C.assets.json +1 -1
  656. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/manifest.json +404 -3
  657. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/tree.json +1 -968
  658. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js +1 -2
  659. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +21 -0
  660. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/cdk.out +1 -1
  661. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/integ.json +1 -1
  662. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddb-no-arguments.assets.json +6 -6
  663. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddb-no-arguments.template.json +25 -19
  664. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/lamddbnoargumentsIntegDefaultTestDeployAssert248B75D0.assets.json +1 -1
  665. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/manifest.json +183 -3
  666. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/tree.json +1 -386
  667. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js +1 -2
  668. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +21 -0
  669. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/cdk.out +1 -1
  670. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/integ.json +1 -1
  671. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddb-set-billing-mode.assets.json +6 -6
  672. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddb-set-billing-mode.template.json +25 -19
  673. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/lamddbsetbillingmodeIntegDefaultTestDeployAssertDAE32272.assets.json +1 -1
  674. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/manifest.json +185 -3
  675. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/tree.json +1 -389
  676. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js +1 -2
  677. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +21 -0
  678. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/cdk.out +1 -1
  679. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/integ.json +1 -1
  680. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddb-use-existing-func.assets.json +6 -6
  681. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddb-use-existing-func.template.json +25 -19
  682. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/lamddbuseexistingfuncIntegDefaultTestDeployAssert48D284DD.assets.json +1 -1
  683. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/manifest.json +183 -3
  684. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/tree.json +1 -386
  685. package/node_modules/@gemeentenijmegen/apiclient/node_modules/@gemeentenijmegen/utils/package.json +7 -7
  686. package/node_modules/@gemeentenijmegen/apiclient/package.json +10 -10
  687. package/node_modules/@gemeentenijmegen/apigateway-http/package.json +5 -5
  688. package/node_modules/@gemeentenijmegen/session/package.json +4 -4
  689. package/node_modules/@gemeentenijmegen/utils/package.json +7 -7
  690. package/node_modules/@smithy/abort-controller/package.json +5 -5
  691. package/node_modules/@smithy/config-resolver/dist-cjs/index.js +11 -14
  692. package/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/resolveCustomEndpointsConfig.js +5 -6
  693. package/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js +4 -5
  694. package/node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js +2 -3
  695. package/node_modules/@smithy/config-resolver/package.json +7 -7
  696. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +41 -0
  697. package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +1 -0
  698. package/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +9 -0
  699. package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +1 -0
  700. package/node_modules/@smithy/core/dist-types/submodules/serde/value/NumericValue.d.ts +31 -0
  701. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/index.d.ts +1 -0
  702. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/value/NumericValue.d.ts +31 -0
  703. package/node_modules/@smithy/core/package.json +17 -8
  704. package/node_modules/@smithy/core/serde.d.ts +7 -0
  705. package/node_modules/@smithy/core/serde.js +6 -0
  706. package/node_modules/@smithy/credential-provider-imds/package.json +8 -8
  707. package/node_modules/@smithy/eventstream-codec/package.json +5 -5
  708. package/node_modules/@smithy/eventstream-serde-browser/package.json +6 -6
  709. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-cjs/index.js +1 -2
  710. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-es/EventStreamSerdeConfig.js +1 -2
  711. package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +5 -5
  712. package/node_modules/@smithy/eventstream-serde-node/package.json +6 -6
  713. package/node_modules/@smithy/eventstream-serde-universal/package.json +6 -6
  714. package/node_modules/@smithy/fetch-http-handler/package.json +8 -8
  715. package/node_modules/@smithy/hash-blob-browser/package.json +5 -5
  716. package/node_modules/@smithy/hash-node/package.json +5 -5
  717. package/node_modules/@smithy/hash-stream-node/package.json +5 -5
  718. package/node_modules/@smithy/invalid-dependency/package.json +5 -5
  719. package/node_modules/@smithy/md5-js/package.json +5 -5
  720. package/node_modules/@smithy/middleware-content-length/package.json +6 -6
  721. package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +5 -6
  722. package/node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js +5 -6
  723. package/node_modules/@smithy/middleware-endpoint/package.json +10 -10
  724. package/node_modules/@smithy/middleware-retry/README.md +1 -1
  725. package/node_modules/@smithy/middleware-retry/dist-cjs/index.js +5 -6
  726. package/node_modules/@smithy/middleware-retry/dist-es/configurations.js +5 -6
  727. package/node_modules/@smithy/middleware-retry/package.json +10 -10
  728. package/node_modules/@smithy/middleware-serde/package.json +4 -4
  729. package/node_modules/@smithy/middleware-stack/package.json +5 -5
  730. package/node_modules/@smithy/node-config-provider/package.json +7 -7
  731. package/node_modules/@smithy/node-http-handler/package.json +7 -7
  732. package/node_modules/@smithy/property-provider/package.json +5 -5
  733. package/node_modules/@smithy/protocol-http/dist-cjs/index.js +4 -5
  734. package/node_modules/@smithy/protocol-http/dist-es/extensions/httpExtensionConfiguration.js +4 -5
  735. package/node_modules/@smithy/protocol-http/package.json +5 -5
  736. package/node_modules/@smithy/querystring-builder/package.json +5 -5
  737. package/node_modules/@smithy/querystring-parser/package.json +5 -5
  738. package/node_modules/@smithy/service-error-classification/package.json +5 -5
  739. package/node_modules/@smithy/shared-ini-file-loader/package.json +5 -5
  740. package/node_modules/@smithy/signature-v4/package.json +7 -7
  741. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +6 -14
  742. package/node_modules/@smithy/smithy-client/dist-es/extensions/checksum.js +2 -3
  743. package/node_modules/@smithy/smithy-client/dist-es/extensions/defaultExtensionConfiguration.js +2 -8
  744. package/node_modules/@smithy/smithy-client/dist-es/extensions/retry.js +2 -3
  745. package/node_modules/@smithy/smithy-client/dist-types/client.d.ts +8 -0
  746. package/node_modules/@smithy/smithy-client/dist-types/extensions/checksum.d.ts +0 -1
  747. package/node_modules/@smithy/smithy-client/dist-types/extensions/defaultExtensionConfiguration.d.ts +6 -6
  748. package/node_modules/@smithy/smithy-client/dist-types/ts3.4/client.d.ts +8 -0
  749. package/node_modules/@smithy/smithy-client/dist-types/ts3.4/extensions/checksum.d.ts +0 -1
  750. package/node_modules/@smithy/smithy-client/dist-types/ts3.4/extensions/defaultExtensionConfiguration.d.ts +6 -6
  751. package/node_modules/@smithy/smithy-client/package.json +9 -9
  752. package/node_modules/@smithy/types/dist-cjs/index.js +4 -9
  753. package/node_modules/@smithy/types/dist-es/extensions/checksum.js +2 -3
  754. package/node_modules/@smithy/types/dist-es/extensions/defaultClientConfiguration.js +2 -6
  755. package/node_modules/@smithy/types/package.json +4 -4
  756. package/node_modules/@smithy/url-parser/package.json +6 -6
  757. package/node_modules/@smithy/util-defaults-mode-browser/package.json +6 -6
  758. package/node_modules/@smithy/util-defaults-mode-node/package.json +9 -9
  759. package/node_modules/@smithy/util-endpoints/package.json +6 -6
  760. package/node_modules/@smithy/util-middleware/package.json +5 -5
  761. package/node_modules/@smithy/util-retry/README.md +1 -1
  762. package/node_modules/@smithy/util-retry/package.json +6 -6
  763. package/node_modules/@smithy/util-stream/dist-cjs/createBufferedReadable.js +1 -1
  764. package/node_modules/@smithy/util-stream/dist-cjs/createBufferedReadableStream.js +3 -3
  765. package/node_modules/@smithy/util-stream/dist-es/createBufferedReadable.js +1 -1
  766. package/node_modules/@smithy/util-stream/dist-es/createBufferedReadableStream.js +3 -3
  767. package/node_modules/@smithy/util-stream/dist-types/createBufferedReadableStream.d.ts +3 -2
  768. package/node_modules/@smithy/util-stream/dist-types/ts3.4/createBufferedReadableStream.d.ts +3 -2
  769. package/node_modules/@smithy/util-stream/package.json +6 -6
  770. package/node_modules/@smithy/util-waiter/package.json +6 -6
  771. package/node_modules/@types/aws-lambda/README.md +1 -1
  772. package/node_modules/@types/aws-lambda/package.json +2 -2
  773. package/node_modules/@types/aws-lambda/trigger/guard-duty-event-notification.d.ts +1 -1
  774. package/node_modules/axios/CHANGELOG.md +36 -0
  775. package/node_modules/axios/README.md +8 -2
  776. package/node_modules/axios/dist/axios.js +4 -4
  777. package/node_modules/axios/dist/axios.js.map +1 -1
  778. package/node_modules/axios/dist/axios.min.js +2 -2
  779. package/node_modules/axios/dist/axios.min.js.map +1 -1
  780. package/node_modules/axios/dist/browser/axios.cjs +4 -4
  781. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  782. package/node_modules/axios/dist/esm/axios.js +4 -4
  783. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  784. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  785. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  786. package/node_modules/axios/dist/node/axios.cjs +5 -5
  787. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  788. package/node_modules/axios/index.d.cts +1 -0
  789. package/node_modules/axios/index.d.ts +1 -0
  790. package/node_modules/axios/lib/adapters/http.js +1 -1
  791. package/node_modules/axios/lib/core/buildFullPath.js +1 -1
  792. package/node_modules/axios/lib/env/data.js +1 -1
  793. package/node_modules/axios/lib/helpers/resolveConfig.js +1 -1
  794. package/node_modules/axios/package.json +4 -4
  795. package/package.json +19 -19
  796. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/.eslintignore +0 -7
  797. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/.eslintignore +0 -9
  798. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/asset.0c3255e93ffe7a906c7422e9f0e9cc4c7fd86ee996ee3bb302e2f134b38463c8/index.js +0 -8
  799. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/asset.0c3255e93ffe7a906c7422e9f0e9cc4c7fd86ee996ee3bb302e2f134b38463c8/index.js +0 -8
  800. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/asset.0c3255e93ffe7a906c7422e9f0e9cc4c7fd86ee996ee3bb302e2f134b38463c8/index.js +0 -8
  801. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/asset.0c3255e93ffe7a906c7422e9f0e9cc4c7fd86ee996ee3bb302e2f134b38463c8/index.js +0 -8
  802. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/ansi-regex → ansi-regex}/index.d.ts +0 -0
  803. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/ansi-regex → ansi-regex}/index.js +0 -0
  804. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/ansi-regex → ansi-regex}/license +0 -0
  805. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/ansi-regex → ansi-regex}/package.json +0 -0
  806. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/ansi-regex → ansi-regex}/readme.md +0 -0
  807. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/aproba → aproba}/LICENSE +0 -0
  808. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/aproba → aproba}/README.md +0 -0
  809. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/aproba → aproba}/index.js +0 -0
  810. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/aproba → aproba}/package.json +0 -0
  811. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/are-we-there-yet → are-we-there-yet}/LICENSE.md +0 -0
  812. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/are-we-there-yet → are-we-there-yet}/README.md +0 -0
  813. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/are-we-there-yet → are-we-there-yet}/lib/index.js +0 -0
  814. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/are-we-there-yet → are-we-there-yet}/lib/tracker-base.js +0 -0
  815. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/are-we-there-yet → are-we-there-yet}/lib/tracker-group.js +0 -0
  816. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/are-we-there-yet → are-we-there-yet}/lib/tracker-stream.js +0 -0
  817. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/are-we-there-yet → are-we-there-yet}/lib/tracker.js +0 -0
  818. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/are-we-there-yet → are-we-there-yet}/package.json +0 -0
  819. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/color-support → color-support}/LICENSE +0 -0
  820. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/color-support → color-support}/README.md +0 -0
  821. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/color-support → color-support}/bin.js +0 -0
  822. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/color-support → color-support}/browser.js +0 -0
  823. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/color-support → color-support}/index.js +0 -0
  824. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/color-support → color-support}/package.json +0 -0
  825. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/console-control-strings → console-control-strings}/LICENSE +0 -0
  826. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/console-control-strings → console-control-strings}/README.md +0 -0
  827. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/console-control-strings → console-control-strings}/index.js +0 -0
  828. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/console-control-strings → console-control-strings}/package.json +0 -0
  829. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/emoji-regex → emoji-regex}/LICENSE-MIT.txt +0 -0
  830. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/emoji-regex → emoji-regex}/README.md +0 -0
  831. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/emoji-regex → emoji-regex}/es2015/index.js +0 -0
  832. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/emoji-regex → emoji-regex}/es2015/text.js +0 -0
  833. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/emoji-regex → emoji-regex}/index.d.ts +0 -0
  834. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/emoji-regex → emoji-regex}/index.js +0 -0
  835. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/emoji-regex → emoji-regex}/package.json +0 -0
  836. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/emoji-regex → emoji-regex}/text.js +0 -0
  837. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/LICENSE.md +0 -0
  838. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/README.md +0 -0
  839. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/base-theme.js +0 -0
  840. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/error.js +0 -0
  841. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/has-color.js +0 -0
  842. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/index.js +0 -0
  843. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/plumbing.js +0 -0
  844. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/process.js +0 -0
  845. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/progress-bar.js +0 -0
  846. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/render-template.js +0 -0
  847. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/set-immediate.js +0 -0
  848. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/set-interval.js +0 -0
  849. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/spin.js +0 -0
  850. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/template-item.js +0 -0
  851. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/theme-set.js +0 -0
  852. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/themes.js +0 -0
  853. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/lib/wide-truncate.js +0 -0
  854. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/LICENSE.txt +0 -0
  855. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/README.md +0 -0
  856. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/browser.d.ts +0 -0
  857. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/browser.d.ts.map +0 -0
  858. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/browser.js +0 -0
  859. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/browser.js.map +0 -0
  860. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/index.d.ts +0 -0
  861. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/index.d.ts.map +0 -0
  862. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/index.js +0 -0
  863. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/index.js.map +0 -0
  864. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/package.json +0 -0
  865. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/signals.d.ts +0 -0
  866. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/signals.d.ts.map +0 -0
  867. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/signals.js +0 -0
  868. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/cjs/signals.js.map +0 -0
  869. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/browser.d.ts +0 -0
  870. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/browser.d.ts.map +0 -0
  871. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/browser.js +0 -0
  872. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/browser.js.map +0 -0
  873. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/index.d.ts +0 -0
  874. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/index.d.ts.map +0 -0
  875. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/index.js +0 -0
  876. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/index.js.map +0 -0
  877. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/package.json +0 -0
  878. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/signals.d.ts +0 -0
  879. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/signals.d.ts.map +0 -0
  880. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/signals.js +0 -0
  881. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/dist/mjs/signals.js.map +0 -0
  882. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core → gauge}/node_modules/signal-exit/package.json +0 -0
  883. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/gauge → gauge}/package.json +0 -0
  884. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/has-unicode → has-unicode}/LICENSE +0 -0
  885. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/has-unicode → has-unicode}/README.md +0 -0
  886. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/has-unicode → has-unicode}/index.js +0 -0
  887. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/has-unicode → has-unicode}/package.json +0 -0
  888. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/is-fullwidth-code-point → is-fullwidth-code-point}/index.d.ts +0 -0
  889. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/is-fullwidth-code-point → is-fullwidth-code-point}/index.js +0 -0
  890. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/is-fullwidth-code-point → is-fullwidth-code-point}/license +0 -0
  891. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/is-fullwidth-code-point → is-fullwidth-code-point}/package.json +0 -0
  892. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/is-fullwidth-code-point → is-fullwidth-code-point}/readme.md +0 -0
  893. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/set-blocking → set-blocking}/LICENSE.txt +0 -0
  894. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/set-blocking → set-blocking}/README.md +0 -0
  895. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/set-blocking → set-blocking}/index.js +0 -0
  896. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/set-blocking → set-blocking}/package.json +0 -0
  897. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/string-width → string-width}/index.d.ts +0 -0
  898. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/string-width → string-width}/index.js +0 -0
  899. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/string-width → string-width}/license +0 -0
  900. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/string-width → string-width}/package.json +0 -0
  901. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/string-width → string-width}/readme.md +0 -0
  902. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/strip-ansi → strip-ansi}/index.d.ts +0 -0
  903. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/strip-ansi → strip-ansi}/index.js +0 -0
  904. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/strip-ansi → strip-ansi}/license +0 -0
  905. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/strip-ansi → strip-ansi}/package.json +0 -0
  906. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/strip-ansi → strip-ansi}/readme.md +0 -0
  907. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/wide-align → wide-align}/LICENSE +0 -0
  908. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/wide-align → wide-align}/README.md +0 -0
  909. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/wide-align → wide-align}/align.js +0 -0
  910. /package/node_modules/{@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/node_modules/wide-align → wide-align}/package.json +0 -0
@@ -432,6 +432,472 @@ test('Is logCloudFrontAccessLog observed', () => {
432
432
  template.resourceCountIs("AWS::S3::Bucket", 3);
433
433
  });
434
434
  // ---------------------------
435
+ // Duplicate tests for createCloudFrontOaiDistributinForS3
436
+ // ---------------------------
437
+ test('check bucket policy metadata - oai', () => {
438
+ const stack = new aws_cdk_lib_1.Stack();
439
+ const buildS3BucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
440
+ (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
441
+ sourceBucket: buildS3BucketResponse.bucket
442
+ });
443
+ const template = assertions_1.Template.fromStack(stack);
444
+ template.hasResource('AWS::S3::BucketPolicy', {
445
+ Metadata: {
446
+ cfn_nag: {
447
+ rules_to_suppress: [
448
+ {
449
+ id: "F16",
450
+ reason: "Public website bucket policy requires a wildcard principal"
451
+ }
452
+ ]
453
+ }
454
+ }
455
+ });
456
+ });
457
+ test('check createCloudFrontOaiDistributionForS3 response', () => {
458
+ const stack = new aws_cdk_lib_1.Stack();
459
+ const buildS3BucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
460
+ const response = (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
461
+ sourceBucket: buildS3BucketResponse.bucket
462
+ });
463
+ expect(response.originAccessIdentity).toBeDefined();
464
+ expect(response.distribution).toBeDefined();
465
+ expect(response.loggingBucket).toBeDefined();
466
+ expect(response.cloudfrontFunction).toBeDefined();
467
+ expect(response.loggingBucketS3AccesssLogBucket).toBeDefined();
468
+ });
469
+ test('test cloudfront check bucket policy - oai', () => {
470
+ const stack = new aws_cdk_lib_1.Stack();
471
+ const buildS3BucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
472
+ (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
473
+ sourceBucket: buildS3BucketResponse.bucket
474
+ });
475
+ const template = assertions_1.Template.fromStack(stack);
476
+ template.hasResourceProperties("AWS::S3::BucketPolicy", {
477
+ PolicyDocument: {
478
+ Statement: [
479
+ {
480
+ Action: "s3:*",
481
+ Condition: {
482
+ Bool: {
483
+ "aws:SecureTransport": "false"
484
+ }
485
+ },
486
+ Effect: "Deny",
487
+ Principal: {
488
+ AWS: "*"
489
+ },
490
+ Resource: [
491
+ {
492
+ "Fn::GetAtt": [
493
+ "S3Bucket07682993",
494
+ "Arn"
495
+ ]
496
+ },
497
+ {
498
+ "Fn::Join": [
499
+ "",
500
+ [
501
+ {
502
+ "Fn::GetAtt": [
503
+ "S3Bucket07682993",
504
+ "Arn"
505
+ ]
506
+ },
507
+ "/*"
508
+ ]
509
+ ]
510
+ }
511
+ ]
512
+ },
513
+ {
514
+ Action: "s3:GetObject",
515
+ Effect: "Allow",
516
+ Principal: {
517
+ CanonicalUser: {
518
+ "Fn::GetAtt": [
519
+ "constructsGeneratedOai6A430BBF",
520
+ "S3CanonicalUserId"
521
+ ]
522
+ }
523
+ },
524
+ Resource: {
525
+ "Fn::Join": [
526
+ "",
527
+ [
528
+ {
529
+ "Fn::GetAtt": [
530
+ "S3Bucket07682993",
531
+ "Arn"
532
+ ]
533
+ },
534
+ "/*"
535
+ ]
536
+ ]
537
+ }
538
+ }
539
+ ],
540
+ Version: "2012-10-17"
541
+ }
542
+ });
543
+ });
544
+ test('test cloudfront with no security headers - oai', () => {
545
+ const stack = new aws_cdk_lib_1.Stack();
546
+ const buildS3BucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
547
+ (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
548
+ sourceBucket: buildS3BucketResponse.bucket,
549
+ cloudFrontDistributionProps: {},
550
+ httpSecurityHeaders: false
551
+ });
552
+ const template = assertions_1.Template.fromStack(stack);
553
+ template.hasResourceProperties("AWS::CloudFront::Distribution", {
554
+ DistributionConfig: {
555
+ DefaultCacheBehavior: {
556
+ CachePolicyId: "658327ea-f89d-4fab-a63d-7e88639e58f6",
557
+ Compress: true,
558
+ TargetOriginId: "CloudFrontDistributionOrigin176EC3A12",
559
+ ViewerProtocolPolicy: "redirect-to-https"
560
+ },
561
+ DefaultRootObject: "index.html",
562
+ Enabled: true,
563
+ HttpVersion: "http2",
564
+ IPV6Enabled: true,
565
+ Logging: {
566
+ Bucket: {
567
+ "Fn::GetAtt": [
568
+ "CloudfrontLoggingBucket3C3EFAA7",
569
+ "RegionalDomainName"
570
+ ]
571
+ }
572
+ }
573
+ }
574
+ });
575
+ });
576
+ test('test cloudfront override cloudfront logging bucket - oai', () => {
577
+ const stack = new aws_cdk_lib_1.Stack();
578
+ const contentBucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {}, 'content-bucket');
579
+ const logBucket = new aws_s3_1.Bucket(stack, 'cloudfront-log-bucket');
580
+ const myprops = {
581
+ enableLogging: true,
582
+ logBucket
583
+ };
584
+ (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
585
+ sourceBucket: contentBucketResponse.bucket,
586
+ cloudFrontDistributionProps: myprops
587
+ });
588
+ const template = assertions_1.Template.fromStack(stack);
589
+ // Should be content bucket and it's associated S3 logging bucket, plus simple CloudFront log bucket
590
+ template.resourceCountIs("AWS::S3::Bucket", 3);
591
+ template.hasResourceProperties("AWS::CloudFront::Distribution", {
592
+ DistributionConfig: {
593
+ Logging: {
594
+ Bucket: {
595
+ "Fn::GetAtt": [
596
+ "cloudfrontlogbucketDF7058FB",
597
+ "RegionalDomainName"
598
+ ]
599
+ }
600
+ }
601
+ }
602
+ });
603
+ });
604
+ test('test cloudfront with logging disabled - oai', () => {
605
+ const stack = new aws_cdk_lib_1.Stack();
606
+ const contentBucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
607
+ const cfDistroProps = {
608
+ enableLogging: false,
609
+ };
610
+ (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
611
+ sourceBucket: contentBucketResponse.bucket,
612
+ cloudFrontDistributionProps: cfDistroProps
613
+ });
614
+ const template = assertions_1.Template.fromStack(stack);
615
+ // Should only be content bucket and it's associated S3 logging bucket
616
+ template.resourceCountIs("AWS::S3::Bucket", 2);
617
+ // There should be no logging of distribution
618
+ template.resourcePropertiesCountIs("AWS::CloudFront::Distribution", {
619
+ DistributionConfig: {
620
+ DefaultCacheBehavior: {
621
+ Logging: assertions_1.Match.anyValue()
622
+ }
623
+ }
624
+ }, 0);
625
+ });
626
+ test('test cloudfront override properties - oai', () => {
627
+ const stack = new aws_cdk_lib_1.Stack();
628
+ const buildS3BucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
629
+ const props = {
630
+ defaultBehavior: {
631
+ origin: new origins.S3Origin(buildS3BucketResponse.bucket, { originPath: '/testPath' }),
632
+ viewerProtocolPolicy: cloudfront.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
633
+ allowedMethods: cloudfront.AllowedMethods.ALLOW_ALL,
634
+ cachedMethods: cloudfront.CachedMethods.CACHE_GET_HEAD_OPTIONS
635
+ },
636
+ };
637
+ (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
638
+ sourceBucket: buildS3BucketResponse.bucket,
639
+ cloudFrontDistributionProps: props
640
+ });
641
+ const template = assertions_1.Template.fromStack(stack);
642
+ template.hasResourceProperties("AWS::CloudFront::Distribution", {
643
+ DistributionConfig: {
644
+ DefaultCacheBehavior: {
645
+ AllowedMethods: [
646
+ "GET",
647
+ "HEAD",
648
+ "OPTIONS",
649
+ "PUT",
650
+ "PATCH",
651
+ "POST",
652
+ "DELETE"
653
+ ],
654
+ CachePolicyId: "658327ea-f89d-4fab-a63d-7e88639e58f6",
655
+ CachedMethods: [
656
+ "GET",
657
+ "HEAD",
658
+ "OPTIONS"
659
+ ],
660
+ Compress: true,
661
+ FunctionAssociations: [
662
+ {
663
+ EventType: "viewer-response",
664
+ FunctionARN: {
665
+ "Fn::GetAtt": [
666
+ "SetHttpSecurityHeadersEE936115",
667
+ "FunctionARN"
668
+ ]
669
+ }
670
+ }
671
+ ],
672
+ TargetOriginId: "CloudFrontDistributionOrigin176EC3A12",
673
+ ViewerProtocolPolicy: "redirect-to-https"
674
+ },
675
+ DefaultRootObject: "index.html",
676
+ Enabled: true,
677
+ HttpVersion: "http2",
678
+ IPV6Enabled: true,
679
+ Logging: {
680
+ Bucket: {
681
+ "Fn::GetAtt": [
682
+ "CloudfrontLoggingBucket3C3EFAA7",
683
+ "RegionalDomainName"
684
+ ]
685
+ }
686
+ },
687
+ Origins: [
688
+ {
689
+ DomainName: {
690
+ "Fn::GetAtt": [
691
+ "S3Bucket07682993",
692
+ "RegionalDomainName"
693
+ ]
694
+ },
695
+ Id: "CloudFrontDistributionOrigin176EC3A12",
696
+ OriginPath: '/testPath',
697
+ S3OriginConfig: {
698
+ OriginAccessIdentity: {
699
+ "Fn::Join": [
700
+ "",
701
+ [
702
+ "origin-access-identity/cloudfront/",
703
+ {
704
+ Ref: "CloudFrontDistributionOrigin1S3Origin3D9CA0E9"
705
+ }
706
+ ]
707
+ ]
708
+ }
709
+ }
710
+ }
711
+ ]
712
+ }
713
+ });
714
+ });
715
+ test('test override cloudfront with custom cloudfront function - oai', () => {
716
+ const stack = new aws_cdk_lib_1.Stack();
717
+ const buildS3BucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
718
+ // custom cloudfront function
719
+ const cloudfrontFunction = new cloudfront.Function(stack, "MyFunction", {
720
+ code: cloudfront.FunctionCode.fromInline("exports.handler = (event, context, callback) => {}")
721
+ });
722
+ (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
723
+ sourceBucket: buildS3BucketResponse.bucket,
724
+ cloudFrontDistributionProps: {
725
+ defaultBehavior: {
726
+ functionAssociations: [
727
+ {
728
+ eventType: cloudfront.FunctionEventType.VIEWER_RESPONSE,
729
+ function: cloudfrontFunction
730
+ }
731
+ ],
732
+ }
733
+ }
734
+ });
735
+ const template = assertions_1.Template.fromStack(stack);
736
+ template.hasResourceProperties("AWS::CloudFront::Distribution", {
737
+ DistributionConfig: {
738
+ DefaultCacheBehavior: {
739
+ CachePolicyId: "658327ea-f89d-4fab-a63d-7e88639e58f6",
740
+ Compress: true,
741
+ FunctionAssociations: [
742
+ {
743
+ EventType: "viewer-response",
744
+ FunctionARN: {
745
+ "Fn::GetAtt": [
746
+ "MyFunction3BAA72D1",
747
+ "FunctionARN"
748
+ ]
749
+ }
750
+ }
751
+ ],
752
+ TargetOriginId: "CloudFrontDistributionOrigin176EC3A12",
753
+ ViewerProtocolPolicy: "redirect-to-https"
754
+ },
755
+ DefaultRootObject: "index.html",
756
+ Enabled: true,
757
+ HttpVersion: "http2",
758
+ IPV6Enabled: true,
759
+ Logging: {
760
+ Bucket: {
761
+ "Fn::GetAtt": [
762
+ "CloudfrontLoggingBucket3C3EFAA7",
763
+ "RegionalDomainName"
764
+ ]
765
+ }
766
+ }
767
+ }
768
+ });
769
+ });
770
+ test('test override cloudfront replace custom lambda@edge - oai', () => {
771
+ const stack = new aws_cdk_lib_1.Stack();
772
+ const buildS3BucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
773
+ // custom lambda@edg function
774
+ const handler = new lambda.Function(stack, 'SomeHandler', {
775
+ functionName: 'SomeHandler',
776
+ runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
777
+ handler: 'index.handler',
778
+ code: lambda.Code.fromAsset(`${__dirname}/lambda`),
779
+ });
780
+ const handlerVersion = new lambda.Version(stack, 'SomeHandlerVersion', {
781
+ lambda: handler,
782
+ });
783
+ (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
784
+ sourceBucket: buildS3BucketResponse.bucket,
785
+ cloudFrontDistributionProps: {
786
+ defaultBehavior: {
787
+ edgeLambdas: [
788
+ {
789
+ eventType: aws_cloudfront_1.LambdaEdgeEventType.VIEWER_REQUEST,
790
+ includeBody: false,
791
+ functionVersion: handlerVersion,
792
+ }
793
+ ]
794
+ }
795
+ },
796
+ httpSecurityHeaders: false
797
+ });
798
+ const template = assertions_1.Template.fromStack(stack);
799
+ template.hasResourceProperties("AWS::CloudFront::Distribution", {
800
+ DistributionConfig: {
801
+ DefaultCacheBehavior: {
802
+ CachePolicyId: "658327ea-f89d-4fab-a63d-7e88639e58f6",
803
+ Compress: true,
804
+ LambdaFunctionAssociations: [
805
+ {
806
+ EventType: "viewer-request",
807
+ IncludeBody: false,
808
+ LambdaFunctionARN: {
809
+ Ref: "SomeHandlerVersionDA986E41"
810
+ }
811
+ }
812
+ ],
813
+ TargetOriginId: "CloudFrontDistributionOrigin176EC3A12",
814
+ ViewerProtocolPolicy: "redirect-to-https"
815
+ },
816
+ DefaultRootObject: "index.html",
817
+ Enabled: true,
818
+ HttpVersion: "http2",
819
+ IPV6Enabled: true,
820
+ Logging: {
821
+ Bucket: {
822
+ "Fn::GetAtt": [
823
+ "CloudfrontLoggingBucket3C3EFAA7",
824
+ "RegionalDomainName"
825
+ ]
826
+ }
827
+ }
828
+ }
829
+ });
830
+ });
831
+ test('test cloudfront override cloudfront custom domain names - oai', () => {
832
+ const stack = new aws_cdk_lib_1.Stack();
833
+ const buildS3BucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
834
+ const certificate = acm.Certificate.fromCertificateArn(stack, 'Cert', 'arn:aws:acm:us-east-1:123456789012:certificate/11112222-3333-1234-1234-123456789012');
835
+ const myprops = {
836
+ domainNames: ['mydomains'],
837
+ certificate
838
+ };
839
+ (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
840
+ sourceBucket: buildS3BucketResponse.bucket,
841
+ cloudFrontDistributionProps: myprops
842
+ });
843
+ const template = assertions_1.Template.fromStack(stack);
844
+ template.hasResourceProperties("AWS::CloudFront::Distribution", {
845
+ DistributionConfig: {
846
+ Aliases: [
847
+ "mydomains"
848
+ ],
849
+ }
850
+ });
851
+ });
852
+ test('Are cloudfront log bucket access log bucket properties used - oai', () => {
853
+ const stack = new aws_cdk_lib_1.Stack();
854
+ const contentBucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
855
+ const testName = 'random-name-avcb';
856
+ const response = (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
857
+ sourceBucket: contentBucketResponse.bucket,
858
+ cloudFrontLoggingBucketS3AccessLogBucketProps: { bucketName: testName }
859
+ });
860
+ expect(response.loggingBucket).toBeDefined();
861
+ expect(response.loggingBucketS3AccesssLogBucket).toBeDefined();
862
+ const template = assertions_1.Template.fromStack(stack);
863
+ // Content Bucket, Content Bucket Access Log, CloudFront Log, CloudFront Log Access Log
864
+ template.resourceCountIs("AWS::S3::Bucket", 4);
865
+ template.hasResourceProperties("AWS::S3::Bucket", {
866
+ BucketName: testName
867
+ });
868
+ });
869
+ test('Is logCloudFrontAccessLog observed - oai', () => {
870
+ const stack = new aws_cdk_lib_1.Stack();
871
+ const buildS3BucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {});
872
+ const response = (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
873
+ sourceBucket: buildS3BucketResponse.bucket,
874
+ logCloudFrontAccessLog: false,
875
+ cloudFrontDistributionProps: {},
876
+ });
877
+ expect(response.loggingBucket).toBeDefined();
878
+ expect(response.loggingBucketS3AccesssLogBucket).not.toBeDefined();
879
+ const template = assertions_1.Template.fromStack(stack);
880
+ // Content Bucket, Content Bucket Access Log, CloudFront Log, NO CloudFront Log Access Log
881
+ template.resourceCountIs("AWS::S3::Bucket", 3);
882
+ });
883
+ test('Test that web site enabled buckets throw an error - oai', () => {
884
+ const stack = new aws_cdk_lib_1.Stack();
885
+ const buildS3BucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(stack, {
886
+ bucketProps: {
887
+ websiteIndexDocument: "index.html"
888
+ }
889
+ });
890
+ const app = () => {
891
+ (0, cloudfront_distribution_helper_1.createCloudFrontOaiDistributionForS3)(stack, {
892
+ sourceBucket: buildS3BucketResponse.bucket,
893
+ logCloudFrontAccessLog: false,
894
+ cloudFrontDistributionProps: {},
895
+ });
896
+ };
897
+ // Assertion
898
+ expect(app).toThrowError();
899
+ });
900
+ // ---------------------------
435
901
  // Prop Tests
436
902
  // ---------------------------
437
903
  test('Test CloudFront insertHttpHeaders bad props', () => {
@@ -447,4 +913,4 @@ test('Test CloudFront insertHttpHeaders bad props', () => {
447
913
  // Assertion
448
914
  expect(app).toThrowError('responseHeadersPolicyProps.securityHeadersBehavior can only be passed if httpSecurityHeaders is set to `false`.');
449
915
  });
450
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24tczMtaGVscGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1zMy1oZWxwZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsdURBQXlEO0FBQ3pELDZDQUFvQztBQUNwQyx5REFBeUQ7QUFDekQsaURBQWlEO0FBQ2pELDBGQUEwRjtBQUMxRiw4REFBd0Q7QUFDeEQsK0NBQTRDO0FBQzVDLDhEQUE4RDtBQUM5RCwrREFBaUU7QUFDakUsMERBQTBEO0FBQzFELGdDQUFnQztBQUVoQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssRUFBRSxDQUFDO0lBQzFCLE1BQU0scUJBQXFCLEdBQUcsSUFBQSxnQ0FBYSxFQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RCxJQUFBLGtFQUFpQyxFQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtRQUMzRCxZQUFZLEVBQUUscUJBQXFCLENBQUMsTUFBTTtLQUMzQyxDQUFDLENBQUM7SUFDSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxRQUFRLENBQUMsV0FBVyxDQUFDLHVCQUF1QixFQUFFO1FBQzVDLFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRTtnQkFDUCxpQkFBaUIsRUFBRTtvQkFDakI7d0JBQ0UsRUFBRSxFQUFFLEtBQUs7d0JBQ1QsTUFBTSxFQUFFLDREQUE0RDtxQkFDckU7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFO0lBQy9DLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssRUFBRSxDQUFDO0lBQzFCLE1B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biAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBNYXRjaCwgVGVtcGxhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hc3NlcnRpb25zJztcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBjcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzMgfSBmcm9tICcuLi9saWIvY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyJztcbmltcG9ydCB7IGJ1aWxkUzNCdWNrZXQgfSBmcm9tICcuLi9saWIvczMtYnVja2V0LWhlbHBlcic7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgb3JpZ2lucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zJztcbmltcG9ydCB7IExhbWJkYUVkZ2VFdmVudFR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBhY20gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuLi8nO1xuXG50ZXN0KCdjaGVjayBidWNrZXQgcG9saWN5IG1ldGFkYXRhJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0XG4gIH0pO1xuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlKCdBV1M6OlMzOjpCdWNrZXRQb2xpY3knLCB7XG4gICAgTWV0YWRhdGE6IHtcbiAgICAgIGNmbl9uYWc6IHtcbiAgICAgICAgcnVsZXNfdG9fc3VwcHJlc3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogXCJGMTZcIixcbiAgICAgICAgICAgIHJlYXNvbjogXCJQdWJsaWMgd2Vic2l0ZSBidWNrZXQgcG9saWN5IHJlcXVpcmVzIGEgd2lsZGNhcmQgcHJpbmNpcGFsXCJcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ3Rlc3QgY2xvdWRmcm9udCBjaGVjayBidWNrZXQgcG9saWN5JywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0XG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTMzo6QnVja2V0UG9saWN5XCIsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFwiczM6KlwiLFxuICAgICAgICAgIENvbmRpdGlvbjoge1xuICAgICAgICAgICAgQm9vbDoge1xuICAgICAgICAgICAgICBcImF3czpTZWN1cmVUcmFuc3BvcnRcIjogXCJmYWxzZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBFZmZlY3Q6IFwiRGVueVwiLFxuICAgICAgICAgIFByaW5jaXBhbDoge1xuICAgICAgICAgICAgQVdTOiBcIipcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgICBcIlMzQnVja2V0MDc2ODI5OTNcIixcbiAgICAgICAgICAgICAgICBcIkFyblwiXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiRm46OkpvaW5cIjogW1xuICAgICAgICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiUzNCdWNrZXQwNzY4Mjk5M1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXJuXCJcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiLypcIlxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCd0ZXN0IGNsb3VkZnJvbnQgd2l0aCBubyBzZWN1cml0eSBoZWFkZXJzICcsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuXG4gIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczoge30sXG4gICAgaHR0cFNlY3VyaXR5SGVhZGVyczogZmFsc2VcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7XG4gICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICBEZWZhdWx0Q2FjaGVCZWhhdmlvcjoge1xuICAgICAgICBDYWNoZVBvbGljeUlkOiBcIjY1ODMyN2VhLWY4OWQtNGZhYi1hNjNkLTdlODg2MzllNThmNlwiLFxuICAgICAgICBDb21wcmVzczogdHJ1ZSxcbiAgICAgICAgVGFyZ2V0T3JpZ2luSWQ6IFwiQ2xvdWRGcm9udERpc3RyaWJ1dGlvbk9yaWdpbjE3NkVDM0ExMlwiLFxuICAgICAgICBWaWV3ZXJQcm90b2NvbFBvbGljeTogXCJyZWRpcmVjdC10by1odHRwc1wiXG4gICAgICB9LFxuICAgICAgRGVmYXVsdFJvb3RPYmplY3Q6IFwiaW5kZXguaHRtbFwiLFxuICAgICAgRW5hYmxlZDogdHJ1ZSxcbiAgICAgIEh0dHBWZXJzaW9uOiBcImh0dHAyXCIsXG4gICAgICBJUFY2RW5hYmxlZDogdHJ1ZSxcbiAgICAgIExvZ2dpbmc6IHtcbiAgICAgICAgQnVja2V0OiB7XG4gICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgIFwiQ2xvdWRmcm9udExvZ2dpbmdCdWNrZXQzQzNFRkFBN1wiLFxuICAgICAgICAgICAgXCJSZWdpb25hbERvbWFpbk5hbWVcIlxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgndGVzdCBjbG91ZGZyb250IG92ZXJyaWRlIGNsb3VkZnJvbnQgbG9nZ2luZyBidWNrZXQgJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBjb250ZW50QnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSwgJ2NvbnRlbnQtYnVja2V0Jyk7XG4gIGNvbnN0IGxvZ0J1Y2tldCA9IG5ldyBCdWNrZXQoc3RhY2ssICdjbG91ZGZyb250LWxvZy1idWNrZXQnKTtcblxuICBjb25zdCBteXByb3BzID0ge1xuICAgIGVuYWJsZUxvZ2dpbmc6IHRydWUsXG4gICAgbG9nQnVja2V0XG4gIH07XG5cbiAgY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvclMzKHN0YWNrLCAnc2FtcGxlLWNmLWRpc3RybycsIHtcbiAgICBzb3VyY2VCdWNrZXQ6IGNvbnRlbnRCdWNrZXRSZXNwb25zZS5idWNrZXQsXG4gICAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzOiBteXByb3BzXG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgLy8gU2hvdWxkIGJlIGNvbnRlbnQgYnVja2V0IGFuZCBpdCdzIGFzc29jaWF0ZWQgUzMgbG9nZ2luZyBidWNrZXQsIHBsdXMgc2ltcGxlIENsb3VkRnJvbnQgbG9nIGJ1Y2tldFxuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwgMyk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uXCIsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIExvZ2dpbmc6IHtcbiAgICAgICAgQnVja2V0OiB7XG4gICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgIFwiY2xvdWRmcm9udGxvZ2J1Y2tldERGNzA1OEZCXCIsXG4gICAgICAgICAgICBcIlJlZ2lvbmFsRG9tYWluTmFtZVwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCd0ZXN0IGNsb3VkZnJvbnQgd2l0aCBsb2dnaW5nIGRpc2FibGVkJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBjb250ZW50QnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG5cbiAgY29uc3QgY2ZEaXN0cm9Qcm9wcyA9IHtcbiAgICBlbmFibGVMb2dnaW5nOiBmYWxzZSxcbiAgfTtcblxuICBjcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzMoc3RhY2ssICdzYW1wbGUtY2YtZGlzdHJvJywge1xuICAgIHNvdXJjZUJ1Y2tldDogY29udGVudEJ1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IGNmRGlzdHJvUHJvcHNcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICAvLyBTaG91bGQgb25seSBiZSBjb250ZW50IGJ1Y2tldCBhbmQgaXQncyBhc3NvY2lhdGVkIFMzIGxvZ2dpbmcgYnVja2V0XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcyhcIkFXUzo6UzM6OkJ1Y2tldFwiLCAyKTtcbiAgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIGxvZ2dpbmcgb2YgZGlzdHJpYnV0aW9uXG4gIHRlbXBsYXRlLnJlc291cmNlUHJvcGVydGllc0NvdW50SXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7XG4gICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICBEZWZhdWx0Q2FjaGVCZWhhdmlvcjoge1xuICAgICAgICBMb2dnaW5nOiBNYXRjaC5hbnlWYWx1ZSgpXG4gICAgICB9XG4gICAgfVxuICB9LCAwKTtcbn0pO1xudGVzdCgndGVzdCBjbG91ZGZyb250IG92ZXJyaWRlIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGJ1aWxkUzNCdWNrZXQoc3RhY2ssIHt9KTtcbiAgY29uc3QgcHJvcHM6IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgPSB7XG4gICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICBvcmlnaW46IG5ldyBvcmlnaW5zLlMzT3JpZ2luKGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQsIHsgb3JpZ2luUGF0aDogJy90ZXN0UGF0aCcgfSksXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgIGFsbG93ZWRNZXRob2RzOiBjbG91ZGZyb250LkFsbG93ZWRNZXRob2RzLkFMTE9XX0FMTCxcbiAgICAgIGNhY2hlZE1ldGhvZHM6IGNsb3VkZnJvbnQuQ2FjaGVkTWV0aG9kcy5DQUNIRV9HRVRfSEVBRF9PUFRJT05TXG4gICAgfSxcbiAgfTtcblxuICBjcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzMoc3RhY2ssICdzYW1wbGUtY2YtZGlzdHJvJywge1xuICAgIHNvdXJjZUJ1Y2tldDogYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IHByb3BzXG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb25cIiwge1xuICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgRGVmYXVsdENhY2hlQmVoYXZpb3I6IHtcbiAgICAgICAgQWxsb3dlZE1ldGhvZHM6IFtcbiAgICAgICAgICBcIkdFVFwiLFxuICAgICAgICAgIFwiSEVBRFwiLFxuICAgICAgICAgIFwiT1BUSU9OU1wiLFxuICAgICAgICAgIFwiUFVUXCIsXG4gICAgICAgICAgXCJQQVRDSFwiLFxuICAgICAgICAgIFwiUE9TVFwiLFxuICAgICAgICAgIFwiREVMRVRFXCJcbiAgICAgICAgXSxcbiAgICAgICAgQ2FjaGVQb2xpY3lJZDogXCI2NTgzMjdlYS1mODlkLTRmYWItYTYzZC03ZTg4NjM5ZTU4ZjZcIixcbiAgICAgICAgQ2FjaGVkTWV0aG9kczogW1xuICAgICAgICAgIFwiR0VUXCIsXG4gICAgICAgICAgXCJIRUFEXCIsXG4gICAgICAgICAgXCJPUFRJT05TXCJcbiAgICAgICAgXSxcbiAgICAgICAgQ29tcHJlc3M6IHRydWUsXG4gICAgICAgIEZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgRXZlbnRUeXBlOiBcInZpZXdlci1yZXNwb25zZVwiLFxuICAgICAgICAgICAgRnVuY3Rpb25BUk46IHtcbiAgICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgICBcIlNldEh0dHBTZWN1cml0eUhlYWRlcnNFRTkzNjExNVwiLFxuICAgICAgICAgICAgICAgIFwiRnVuY3Rpb25BUk5cIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBUYXJnZXRPcmlnaW5JZDogXCJDbG91ZEZyb250RGlzdHJpYnV0aW9uT3JpZ2luMTc2RUMzQTEyXCIsXG4gICAgICAgIFZpZXdlclByb3RvY29sUG9saWN5OiBcInJlZGlyZWN0LXRvLWh0dHBzXCJcbiAgICAgIH0sXG4gICAgICBEZWZhdWx0Um9vdE9iamVjdDogXCJpbmRleC5odG1sXCIsXG4gICAgICBFbmFibGVkOiB0cnVlLFxuICAgICAgSHR0cFZlcnNpb246IFwiaHR0cDJcIixcbiAgICAgIElQVjZFbmFibGVkOiB0cnVlLFxuICAgICAgTG9nZ2luZzoge1xuICAgICAgICBCdWNrZXQ6IHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgXCJDbG91ZGZyb250TG9nZ2luZ0J1Y2tldDNDM0VGQUE3XCIsXG4gICAgICAgICAgICBcIlJlZ2lvbmFsRG9tYWluTmFtZVwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgT3JpZ2luczogW1xuICAgICAgICB7XG4gICAgICAgICAgRG9tYWluTmFtZToge1xuICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgXCJTM0J1Y2tldDA3NjgyOTkzXCIsXG4gICAgICAgICAgICAgIFwiUmVnaW9uYWxEb21haW5OYW1lXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIElkOiBcIkNsb3VkRnJvbnREaXN0cmlidXRpb25PcmlnaW4xNzZFQzNBMTJcIixcbiAgICAgICAgICBPcmlnaW5QYXRoOiAnL3Rlc3RQYXRoJyxcbiAgICAgICAgICBTM09yaWdpbkNvbmZpZzoge1xuICAgICAgICAgICAgT3JpZ2luQWNjZXNzSWRlbnRpdHk6IHtcbiAgICAgICAgICAgICAgXCJGbjo6Sm9pblwiOiBbXG4gICAgICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBcIm9yaWdpbi1hY2Nlc3MtaWRlbnRpdHkvY2xvdWRmcm9udC9cIixcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgUmVmOiBcIkNsb3VkRnJvbnREaXN0cmlidXRpb25PcmlnaW4xUzNPcmlnaW4zRDlDQTBFOVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCd0ZXN0IG92ZXJyaWRlIGNsb3VkZnJvbnQgd2l0aCBjdXN0b20gY2xvdWRmcm9udCBmdW5jdGlvbicsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuXG4gIC8vIGN1c3RvbSBjbG91ZGZyb250IGZ1bmN0aW9uXG4gIGNvbnN0IGNsb3VkZnJvbnRGdW5jdGlvbiA9IG5ldyBjbG91ZGZyb250LkZ1bmN0aW9uKHN0YWNrLCBcIk15RnVuY3Rpb25cIiwge1xuICAgIGNvZGU6IGNsb3VkZnJvbnQuRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoXCJleHBvcnRzLmhhbmRsZXIgPSAoZXZlbnQsIGNvbnRleHQsIGNhbGxiYWNrKSA9PiB7fVwiKVxuICB9KTtcblxuICBjcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzMoc3RhY2ssICdzYW1wbGUtY2YtZGlzdHJvJywge1xuICAgIHNvdXJjZUJ1Y2tldDogYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBmdW5jdGlvbkFzc29jaWF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5GdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVTUE9OU0UsXG4gICAgICAgICAgICBmdW5jdGlvbjogY2xvdWRmcm9udEZ1bmN0aW9uXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7XG4gICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICBEZWZhdWx0Q2FjaGVCZWhhdmlvcjoge1xuICAgICAgICBDYWNoZVBvbGljeUlkOiBcIjY1ODMyN2VhLWY4OWQtNGZhYi1hNjNkLTdlODg2MzllNThmNlwiLFxuICAgICAgICBDb21wcmVzczogdHJ1ZSxcbiAgICAgICAgRnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBFdmVudFR5cGU6IFwidmlld2VyLXJlc3BvbnNlXCIsXG4gICAgICAgICAgICBGdW5jdGlvbkFSTjoge1xuICAgICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICAgIFwiTXlGdW5jdGlvbjNCQUE3MkQxXCIsXG4gICAgICAgICAgICAgICAgXCJGdW5jdGlvbkFSTlwiXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIFRhcmdldE9yaWdpbklkOiBcIkNsb3VkRnJvbnREaXN0cmlidXRpb25PcmlnaW4xNzZFQzNBMTJcIixcbiAgICAgICAgVmlld2VyUHJvdG9jb2xQb2xpY3k6IFwicmVkaXJlY3QtdG8taHR0cHNcIlxuICAgICAgfSxcbiAgICAgIERlZmF1bHRSb290T2JqZWN0OiBcImluZGV4Lmh0bWxcIixcbiAgICAgIEVuYWJsZWQ6IHRydWUsXG4gICAgICBIdHRwVmVyc2lvbjogXCJodHRwMlwiLFxuICAgICAgSVBWNkVuYWJsZWQ6IHRydWUsXG4gICAgICBMb2dnaW5nOiB7XG4gICAgICAgIEJ1Y2tldDoge1xuICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICBcIkNsb3VkZnJvbnRMb2dnaW5nQnVja2V0M0MzRUZBQTdcIixcbiAgICAgICAgICAgIFwiUmVnaW9uYWxEb21haW5OYW1lXCJcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ3Rlc3Qgb3ZlcnJpZGUgY2xvdWRmcm9udCByZXBsYWNlIGN1c3RvbSBsYW1iZGFAZWRnZScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuXG4gIC8vIGN1c3RvbSBsYW1iZGFAZWRnIGZ1bmN0aW9uXG4gIGNvbnN0IGhhbmRsZXIgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHN0YWNrLCAnU29tZUhhbmRsZXInLCB7XG4gICAgZnVuY3Rpb25OYW1lOiAnU29tZUhhbmRsZXInLFxuICAgIHJ1bnRpbWU6IGRlZmF1bHRzLkNPTU1FUkNJQUxfUkVHSU9OX0xBTUJEQV9OT0RFX1JVTlRJTUUsXG4gICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYWApLFxuICB9KTtcblxuICBjb25zdCBoYW5kbGVyVmVyc2lvbiA9IG5ldyBsYW1iZGEuVmVyc2lvbihzdGFjaywgJ1NvbWVIYW5kbGVyVmVyc2lvbicsIHtcbiAgICBsYW1iZGE6IGhhbmRsZXIsXG4gIH0pO1xuXG4gIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczoge1xuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIGVkZ2VMYW1iZGFzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZXZlbnRUeXBlOiBMYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgICAgICAgaW5jbHVkZUJvZHk6IGZhbHNlLFxuICAgICAgICAgICAgZnVuY3Rpb25WZXJzaW9uOiBoYW5kbGVyVmVyc2lvbixcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9LFxuICAgIGh0dHBTZWN1cml0eUhlYWRlcnM6IGZhbHNlXG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb25cIiwge1xuICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgRGVmYXVsdENhY2hlQmVoYXZpb3I6IHtcbiAgICAgICAgQ2FjaGVQb2xpY3lJZDogXCI2NTgzMjdlYS1mODlkLTRmYWItYTYzZC03ZTg4NjM5ZTU4ZjZcIixcbiAgICAgICAgQ29tcHJlc3M6IHRydWUsXG4gICAgICAgIExhbWJkYUZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgRXZlbnRUeXBlOiBcInZpZXdlci1yZXF1ZXN0XCIsXG4gICAgICAgICAgICBJbmNsdWRlQm9keTogZmFsc2UsXG4gICAgICAgICAgICBMYW1iZGFGdW5jdGlvbkFSTjoge1xuICAgICAgICAgICAgICBSZWY6IFwiU29tZUhhbmRsZXJWZXJzaW9uREE5ODZFNDFcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgVGFyZ2V0T3JpZ2luSWQ6IFwiQ2xvdWRGcm9udERpc3RyaWJ1dGlvbk9yaWdpbjE3NkVDM0ExMlwiLFxuICAgICAgICBWaWV3ZXJQcm90b2NvbFBvbGljeTogXCJyZWRpcmVjdC10by1odHRwc1wiXG4gICAgICB9LFxuICAgICAgRGVmYXVsdFJvb3RPYmplY3Q6IFwiaW5kZXguaHRtbFwiLFxuICAgICAgRW5hYmxlZDogdHJ1ZSxcbiAgICAgIEh0dHBWZXJzaW9uOiBcImh0dHAyXCIsXG4gICAgICBJUFY2RW5hYmxlZDogdHJ1ZSxcbiAgICAgIExvZ2dpbmc6IHtcbiAgICAgICAgQnVja2V0OiB7XG4gICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgIFwiQ2xvdWRmcm9udExvZ2dpbmdCdWNrZXQzQzNFRkFBN1wiLFxuICAgICAgICAgICAgXCJSZWdpb25hbERvbWFpbk5hbWVcIlxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgndGVzdCBjbG91ZGZyb250IG92ZXJyaWRlIGNsb3VkZnJvbnQgY3VzdG9tIGRvbWFpbiBuYW1lcyAnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGJ1aWxkUzNCdWNrZXQoc3RhY2ssIHt9KTtcbiAgY29uc3QgY2VydGlmaWNhdGUgPSBhY20uQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKHN0YWNrLCAnQ2VydCcsICdhcm46YXdzOmFjbTp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOmNlcnRpZmljYXRlLzExMTEyMjIyLTMzMzMtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMicpO1xuXG4gIGNvbnN0IG15cHJvcHMgPSB7XG4gICAgZG9tYWluTmFtZXM6IFsnbXlkb21haW5zJ10sXG4gICAgY2VydGlmaWNhdGVcbiAgfTtcblxuICBjcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzMoc3RhY2ssICdzYW1wbGUtY2YtZGlzdHJvJywge1xuICAgIHNvdXJjZUJ1Y2tldDogYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IG15cHJvcHNcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7XG4gICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICBBbGlhc2VzOiBbXG4gICAgICAgIFwibXlkb21haW5zXCJcbiAgICAgIF0sXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdBcmUgY2xvdWRmcm9udCBsb2cgYnVja2V0IGFjY2VzcyBsb2cgYnVja2V0IHByb3BlcnRpZXMgdXNlZCcsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgY29udGVudEJ1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuICBjb25zdCB0ZXN0TmFtZSA9ICdyYW5kb20tbmFtZS1hdmNiJztcblxuICBjb25zdCByZXNwb25zZSA9IGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBjb250ZW50QnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UzNBY2Nlc3NMb2dCdWNrZXRQcm9wczogeyBidWNrZXROYW1lOiB0ZXN0TmFtZSB9XG4gIH0pO1xuXG4gIGV4cGVjdChyZXNwb25zZS5sb2dnaW5nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QocmVzcG9uc2UubG9nZ2luZ0J1Y2tldFMzQWNjZXNzc0xvZ0J1Y2tldCkudG9CZURlZmluZWQoKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgLy8gQ29udGVudCBCdWNrZXQsIENvbnRlbnQgQnVja2V0IEFjY2VzcyBMb2csIENsb3VkRnJvbnQgTG9nLCBDbG91ZEZyb250IExvZyBBY2Nlc3MgTG9nXG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcyhcIkFXUzo6UzM6OkJ1Y2tldFwiLCA0KTtcblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIEJ1Y2tldE5hbWU6IHRlc3ROYW1lXG4gIH0pO1xufSk7XG50ZXN0KCdJcyBsb2dDbG91ZEZyb250QWNjZXNzTG9nIG9ic2VydmVkJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG5cbiAgY29uc3QgcmVzcG9uc2UgPSBjcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzMoc3RhY2ssICdzYW1wbGUtY2YtZGlzdHJvJywge1xuICAgIHNvdXJjZUJ1Y2tldDogYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICBsb2dDbG91ZEZyb250QWNjZXNzTG9nOiBmYWxzZSxcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IHt9LFxuICB9KTtcblxuICBleHBlY3QocmVzcG9uc2UubG9nZ2luZ0J1Y2tldCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHJlc3BvbnNlLmxvZ2dpbmdCdWNrZXRTM0FjY2Vzc3NMb2dCdWNrZXQpLm5vdC50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAvLyBDb250ZW50IEJ1Y2tldCwgQ29udGVudCBCdWNrZXQgQWNjZXNzIExvZywgQ2xvdWRGcm9udCBMb2csIE5PIENsb3VkRnJvbnQgTG9nIEFjY2VzcyBMb2dcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKFwiQVdTOjpTMzo6QnVja2V0XCIsIDMpO1xufSk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvcCBUZXN0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG50ZXN0KCdUZXN0IENsb3VkRnJvbnQgaW5zZXJ0SHR0cEhlYWRlcnMgYmFkIHByb3BzJywgKCkgPT4ge1xuXG4gIGNvbnN0IHByb3BzOiBkZWZhdWx0cy5DbG91ZEZyb250UHJvcHMgPSB7XG4gICAgaW5zZXJ0SHR0cFNlY3VyaXR5SGVhZGVyczogdHJ1ZSxcbiAgICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wczoge1xuICAgICAgc2VjdXJpdHlIZWFkZXJzQmVoYXZpb3I6IHt9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5DaGVja0Nsb3VkRnJvbnRQcm9wcyhwcm9wcyk7XG4gIH07XG5cbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcigncmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMuc2VjdXJpdHlIZWFkZXJzQmVoYXZpb3IgY2FuIG9ubHkgYmUgcGFzc2VkIGlmIGh0dHBTZWN1cml0eUhlYWRlcnMgaXMgc2V0IHRvIGBmYWxzZWAuJyk7XG59KTtcbiJdfQ==
916
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24tczMtaGVscGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1zMy1oZWxwZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsdURBQXlEO0FBQ3pELDZDQUFvQztBQUNwQyx5REFBeUQ7QUFDekQsaURBQWlEO0FBQ2pELDBGQUFnSTtBQUNoSSw4REFBd0Q7QUFDeEQsK0NBQTRDO0FBQzVDLDhEQUE4RDtBQUM5RCwrREFBaUU7QUFDakUsMERBQTBEO0FBQzFELGdDQUFnQztBQUVoQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssRUFBRSxDQUFDO0lBQzFCLE1BQU0scUJBQXFCLEdBQUcsSUFBQSxnQ0FBYSxFQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RCxJQUFBLGtFQUFpQyxFQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtRQUMzRCxZQUFZLEVBQUUscUJBQXFCLENBQUMsTUFBTTtLQUMzQyxDQUFDLENBQUM7SUFDSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxRQUFRLENBQUMsV0FBVyxDQUFDLHVCQUF1QixFQUFFO1FBQzVDLFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRTtnQkFDUCxpQkFBaUIsRUFBRTtvQkFDakI7d0JBQ0UsRUFBRSxFQUFFLEtBQUs7d0JBQ1QsTUFBTSxFQUFFLDREQUE0RDtxQkFDckU7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFO0lBQy9DLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssRUFBRSxDQUFDO0lBQzFCLE1B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QUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixZQUFZO0lBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO0FBRTdCLENBQUMsQ0FBQyxDQUFDO0FBRUgsOEJBQThCO0FBQzlCLGFBQWE7QUFDYiw4QkFBOEI7QUFDOUIsSUFBSSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtJQUV2RCxNQUFNLEtBQUssR0FBNkI7UUFDdEMseUJBQXlCLEVBQUUsSUFBSTtRQUMvQiwwQkFBMEIsRUFBRTtZQUMxQix1QkFBdUIsRUFBRSxFQUFFO1NBQzVCO0tBQ0YsQ0FBQztJQUVGLE1BQU0sR0FBRyxHQUFHLEdBQUcsRUFBRTtRQUNmLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUM7SUFFRixZQUFZO0lBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxpSEFBaUgsQ0FBQyxDQUFDO0FBQzlJLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgTWF0Y2gsIFRlbXBsYXRlIH0gZnJvbSAnYXdzLWNkay1saWIvYXNzZXJ0aW9ucyc7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvclMzLCBjcmVhdGVDbG91ZEZyb250T2FpRGlzdHJpYnV0aW9uRm9yUzMgfSBmcm9tICcuLi9saWIvY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyJztcbmltcG9ydCB7IGJ1aWxkUzNCdWNrZXQgfSBmcm9tICcuLi9saWIvczMtYnVja2V0LWhlbHBlcic7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgb3JpZ2lucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zJztcbmltcG9ydCB7IExhbWJkYUVkZ2VFdmVudFR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBhY20gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuLi8nO1xuXG50ZXN0KCdjaGVjayBidWNrZXQgcG9saWN5IG1ldGFkYXRhJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0XG4gIH0pO1xuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlKCdBV1M6OlMzOjpCdWNrZXRQb2xpY3knLCB7XG4gICAgTWV0YWRhdGE6IHtcbiAgICAgIGNmbl9uYWc6IHtcbiAgICAgICAgcnVsZXNfdG9fc3VwcHJlc3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogXCJGMTZcIixcbiAgICAgICAgICAgIHJlYXNvbjogXCJQdWJsaWMgd2Vic2l0ZSBidWNrZXQgcG9saWN5IHJlcXVpcmVzIGEgd2lsZGNhcmQgcHJpbmNpcGFsXCJcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ3Rlc3QgY2xvdWRmcm9udCBjaGVjayBidWNrZXQgcG9saWN5JywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0XG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRQb2xpY3lcIiwge1xuICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogXCJzMzoqXCIsXG4gICAgICAgICAgQ29uZGl0aW9uOiB7XG4gICAgICAgICAgICBCb29sOiB7XG4gICAgICAgICAgICAgIFwiYXdzOlNlY3VyZVRyYW5zcG9ydFwiOiBcImZhbHNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIEVmZmVjdDogXCJEZW55XCIsXG4gICAgICAgICAgUHJpbmNpcGFsOiB7XG4gICAgICAgICAgICBBV1M6IFwiKlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBSZXNvdXJjZTogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICAgIFwiUzNCdWNrZXQwNzY4Mjk5M1wiLFxuICAgICAgICAgICAgICAgIFwiQXJuXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJGbjo6Sm9pblwiOiBbXG4gICAgICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgXCJTM0J1Y2tldDA3NjgyOTkzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCIvKlwiXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgVmVyc2lvbjogXCIyMDEyLTEwLTE3XCJcbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ3Rlc3QgY2xvdWRmcm9udCB3aXRoIG5vIHNlY3VyaXR5IGhlYWRlcnMgJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG5cbiAgY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvclMzKHN0YWNrLCAnc2FtcGxlLWNmLWRpc3RybycsIHtcbiAgICBzb3VyY2VCdWNrZXQ6IGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQsXG4gICAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzOiB7fSxcbiAgICBodHRwU2VjdXJpdHlIZWFkZXJzOiBmYWxzZVxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uXCIsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIERlZmF1bHRDYWNoZUJlaGF2aW9yOiB7XG4gICAgICAgIENhY2hlUG9saWN5SWQ6IFwiNjU4MzI3ZWEtZjg5ZC00ZmFiLWE2M2QtN2U4ODYzOWU1OGY2XCIsXG4gICAgICAgIENvbXByZXNzOiB0cnVlLFxuICAgICAgICBUYXJnZXRPcmlnaW5JZDogXCJDbG91ZEZyb250RGlzdHJpYnV0aW9uT3JpZ2luMTc2RUMzQTEyXCIsXG4gICAgICAgIFZpZXdlclByb3RvY29sUG9saWN5OiBcInJlZGlyZWN0LXRvLWh0dHBzXCJcbiAgICAgIH0sXG4gICAgICBEZWZhdWx0Um9vdE9iamVjdDogXCJpbmRleC5odG1sXCIsXG4gICAgICBFbmFibGVkOiB0cnVlLFxuICAgICAgSHR0cFZlcnNpb246IFwiaHR0cDJcIixcbiAgICAgIElQVjZFbmFibGVkOiB0cnVlLFxuICAgICAgTG9nZ2luZzoge1xuICAgICAgICBCdWNrZXQ6IHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgXCJDbG91ZGZyb250TG9nZ2luZ0J1Y2tldDNDM0VGQUE3XCIsXG4gICAgICAgICAgICBcIlJlZ2lvbmFsRG9tYWluTmFtZVwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCd0ZXN0IGNsb3VkZnJvbnQgb3ZlcnJpZGUgY2xvdWRmcm9udCBsb2dnaW5nIGJ1Y2tldCAnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IGNvbnRlbnRCdWNrZXRSZXNwb25zZSA9IGJ1aWxkUzNCdWNrZXQoc3RhY2ssIHt9LCAnY29udGVudC1idWNrZXQnKTtcbiAgY29uc3QgbG9nQnVja2V0ID0gbmV3IEJ1Y2tldChzdGFjaywgJ2Nsb3VkZnJvbnQtbG9nLWJ1Y2tldCcpO1xuXG4gIGNvbnN0IG15cHJvcHMgPSB7XG4gICAgZW5hYmxlTG9nZ2luZzogdHJ1ZSxcbiAgICBsb2dCdWNrZXRcbiAgfTtcblxuICBjcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzMoc3RhY2ssICdzYW1wbGUtY2YtZGlzdHJvJywge1xuICAgIHNvdXJjZUJ1Y2tldDogY29udGVudEJ1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IG15cHJvcHNcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICAvLyBTaG91bGQgYmUgY29udGVudCBidWNrZXQgYW5kIGl0J3MgYXNzb2NpYXRlZCBTMyBsb2dnaW5nIGJ1Y2tldCwgcGx1cyBzaW1wbGUgQ2xvdWRGcm9udCBsb2cgYnVja2V0XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcyhcIkFXUzo6UzM6OkJ1Y2tldFwiLCAzKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb25cIiwge1xuICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgTG9nZ2luZzoge1xuICAgICAgICBCdWNrZXQ6IHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgXCJjbG91ZGZyb250bG9nYnVja2V0REY3MDU4RkJcIixcbiAgICAgICAgICAgIFwiUmVnaW9uYWxEb21haW5OYW1lXCJcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ3Rlc3QgY2xvdWRmcm9udCB3aXRoIGxvZ2dpbmcgZGlzYWJsZWQnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IGNvbnRlbnRCdWNrZXRSZXNwb25zZSA9IGJ1aWxkUzNCdWNrZXQoc3RhY2ssIHt9KTtcblxuICBjb25zdCBjZkRpc3Ryb1Byb3BzID0ge1xuICAgIGVuYWJsZUxvZ2dpbmc6IGZhbHNlLFxuICB9O1xuXG4gIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBjb250ZW50QnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczogY2ZEaXN0cm9Qcm9wc1xuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIC8vIFNob3VsZCBvbmx5IGJlIGNvbnRlbnQgYnVja2V0IGFuZCBpdCdzIGFzc29jaWF0ZWQgUzMgbG9nZ2luZyBidWNrZXRcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKFwiQVdTOjpTMzo6QnVja2V0XCIsIDIpO1xuICAvLyBUaGVyZSBzaG91bGQgYmUgbm8gbG9nZ2luZyBvZiBkaXN0cmlidXRpb25cbiAgdGVtcGxhdGUucmVzb3VyY2VQcm9wZXJ0aWVzQ291bnRJcyhcIkFXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uXCIsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIERlZmF1bHRDYWNoZUJlaGF2aW9yOiB7XG4gICAgICAgIExvZ2dpbmc6IE1hdGNoLmFueVZhbHVlKClcbiAgICAgIH1cbiAgICB9XG4gIH0sIDApO1xufSk7XG50ZXN0KCd0ZXN0IGNsb3VkZnJvbnQgb3ZlcnJpZGUgcHJvcGVydGllcycsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuICBjb25zdCBwcm9wczogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyA9IHtcbiAgICBkZWZhdWx0QmVoYXZpb3I6IHtcbiAgICAgIG9yaWdpbjogbmV3IG9yaWdpbnMuUzNPcmlnaW4oYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCwgeyBvcmlnaW5QYXRoOiAnL3Rlc3RQYXRoJyB9KSxcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBjbG91ZGZyb250LlZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgICAgYWxsb3dlZE1ldGhvZHM6IGNsb3VkZnJvbnQuQWxsb3dlZE1ldGhvZHMuQUxMT1dfQUxMLFxuICAgICAgY2FjaGVkTWV0aG9kczogY2xvdWRmcm9udC5DYWNoZWRNZXRob2RzLkNBQ0hFX0dFVF9IRUFEX09QVElPTlNcbiAgICB9LFxuICB9O1xuXG4gIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczogcHJvcHNcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7XG4gICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICBEZWZhdWx0Q2FjaGVCZWhhdmlvcjoge1xuICAgICAgICBBbGxvd2VkTWV0aG9kczogW1xuICAgICAgICAgIFwiR0VUXCIsXG4gICAgICAgICAgXCJIRUFEXCIsXG4gICAgICAgICAgXCJPUFRJT05TXCIsXG4gICAgICAgICAgXCJQVVRcIixcbiAgICAgICAgICBcIlBBVENIXCIsXG4gICAgICAgICAgXCJQT1NUXCIsXG4gICAgICAgICAgXCJERUxFVEVcIlxuICAgICAgICBdLFxuICAgICAgICBDYWNoZVBvbGljeUlkOiBcIjY1ODMyN2VhLWY4OWQtNGZhYi1hNjNkLTdlODg2MzllNThmNlwiLFxuICAgICAgICBDYWNoZWRNZXRob2RzOiBbXG4gICAgICAgICAgXCJHRVRcIixcbiAgICAgICAgICBcIkhFQURcIixcbiAgICAgICAgICBcIk9QVElPTlNcIlxuICAgICAgICBdLFxuICAgICAgICBDb21wcmVzczogdHJ1ZSxcbiAgICAgICAgRnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBFdmVudFR5cGU6IFwidmlld2VyLXJlc3BvbnNlXCIsXG4gICAgICAgICAgICBGdW5jdGlvbkFSTjoge1xuICAgICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICAgIFwiU2V0SHR0cFNlY3VyaXR5SGVhZGVyc0VFOTM2MTE1XCIsXG4gICAgICAgICAgICAgICAgXCJGdW5jdGlvbkFSTlwiXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIFRhcmdldE9yaWdpbklkOiBcIkNsb3VkRnJvbnREaXN0cmlidXRpb25PcmlnaW4xNzZFQzNBMTJcIixcbiAgICAgICAgVmlld2VyUHJvdG9jb2xQb2xpY3k6IFwicmVkaXJlY3QtdG8taHR0cHNcIlxuICAgICAgfSxcbiAgICAgIERlZmF1bHRSb290T2JqZWN0OiBcImluZGV4Lmh0bWxcIixcbiAgICAgIEVuYWJsZWQ6IHRydWUsXG4gICAgICBIdHRwVmVyc2lvbjogXCJodHRwMlwiLFxuICAgICAgSVBWNkVuYWJsZWQ6IHRydWUsXG4gICAgICBMb2dnaW5nOiB7XG4gICAgICAgIEJ1Y2tldDoge1xuICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICBcIkNsb3VkZnJvbnRMb2dnaW5nQnVja2V0M0MzRUZBQTdcIixcbiAgICAgICAgICAgIFwiUmVnaW9uYWxEb21haW5OYW1lXCJcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBPcmlnaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBEb21haW5OYW1lOiB7XG4gICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICBcIlMzQnVja2V0MDc2ODI5OTNcIixcbiAgICAgICAgICAgICAgXCJSZWdpb25hbERvbWFpbk5hbWVcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgSWQ6IFwiQ2xvdWRGcm9udERpc3RyaWJ1dGlvbk9yaWdpbjE3NkVDM0ExMlwiLFxuICAgICAgICAgIE9yaWdpblBhdGg6ICcvdGVzdFBhdGgnLFxuICAgICAgICAgIFMzT3JpZ2luQ29uZmlnOiB7XG4gICAgICAgICAgICBPcmlnaW5BY2Nlc3NJZGVudGl0eToge1xuICAgICAgICAgICAgICBcIkZuOjpKb2luXCI6IFtcbiAgICAgICAgICAgICAgICBcIlwiLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIFwib3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L1wiLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBSZWY6IFwiQ2xvdWRGcm9udERpc3RyaWJ1dGlvbk9yaWdpbjFTM09yaWdpbjNEOUNBMEU5XCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ3Rlc3Qgb3ZlcnJpZGUgY2xvdWRmcm9udCB3aXRoIGN1c3RvbSBjbG91ZGZyb250IGZ1bmN0aW9uJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG5cbiAgLy8gY3VzdG9tIGNsb3VkZnJvbnQgZnVuY3Rpb25cbiAgY29uc3QgY2xvdWRmcm9udEZ1bmN0aW9uID0gbmV3IGNsb3VkZnJvbnQuRnVuY3Rpb24oc3RhY2ssIFwiTXlGdW5jdGlvblwiLCB7XG4gICAgY29kZTogY2xvdWRmcm9udC5GdW5jdGlvbkNvZGUuZnJvbUlubGluZShcImV4cG9ydHMuaGFuZGxlciA9IChldmVudCwgY29udGV4dCwgY2FsbGJhY2spID0+IHt9XCIpXG4gIH0pO1xuXG4gIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczoge1xuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZXZlbnRUeXBlOiBjbG91ZGZyb250LkZ1bmN0aW9uRXZlbnRUeXBlLlZJRVdFUl9SRVNQT05TRSxcbiAgICAgICAgICAgIGZ1bmN0aW9uOiBjbG91ZGZyb250RnVuY3Rpb25cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uXCIsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIERlZmF1bHRDYWNoZUJlaGF2aW9yOiB7XG4gICAgICAgIENhY2hlUG9saWN5SWQ6IFwiNjU4MzI3ZWEtZjg5ZC00ZmFiLWE2M2QtN2U4ODYzOWU1OGY2XCIsXG4gICAgICAgIENvbXByZXNzOiB0cnVlLFxuICAgICAgICBGdW5jdGlvbkFzc29jaWF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIEV2ZW50VHlwZTogXCJ2aWV3ZXItcmVzcG9uc2VcIixcbiAgICAgICAgICAgIEZ1bmN0aW9uQVJOOiB7XG4gICAgICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICAgICAgXCJNeUZ1bmN0aW9uM0JBQTcyRDFcIixcbiAgICAgICAgICAgICAgICBcIkZ1bmN0aW9uQVJOXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgVGFyZ2V0T3JpZ2luSWQ6IFwiQ2xvdWRGcm9udERpc3RyaWJ1dGlvbk9yaWdpbjE3NkVDM0ExMlwiLFxuICAgICAgICBWaWV3ZXJQcm90b2NvbFBvbGljeTogXCJyZWRpcmVjdC10by1odHRwc1wiXG4gICAgICB9LFxuICAgICAgRGVmYXVsdFJvb3RPYmplY3Q6IFwiaW5kZXguaHRtbFwiLFxuICAgICAgRW5hYmxlZDogdHJ1ZSxcbiAgICAgIEh0dHBWZXJzaW9uOiBcImh0dHAyXCIsXG4gICAgICBJUFY2RW5hYmxlZDogdHJ1ZSxcbiAgICAgIExvZ2dpbmc6IHtcbiAgICAgICAgQnVja2V0OiB7XG4gICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgIFwiQ2xvdWRmcm9udExvZ2dpbmdCdWNrZXQzQzNFRkFBN1wiLFxuICAgICAgICAgICAgXCJSZWdpb25hbERvbWFpbk5hbWVcIlxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgndGVzdCBvdmVycmlkZSBjbG91ZGZyb250IHJlcGxhY2UgY3VzdG9tIGxhbWJkYUBlZGdlJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG5cbiAgLy8gY3VzdG9tIGxhbWJkYUBlZGcgZnVuY3Rpb25cbiAgY29uc3QgaGFuZGxlciA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdTb21lSGFuZGxlcicsIHtcbiAgICBmdW5jdGlvbk5hbWU6ICdTb21lSGFuZGxlcicsXG4gICAgcnVudGltZTogZGVmYXVsdHMuQ09NTUVSQ0lBTF9SRUdJT05fTEFNQkRBX05PREVfUlVOVElNRSxcbiAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGAke19fZGlybmFtZX0vbGFtYmRhYCksXG4gIH0pO1xuXG4gIGNvbnN0IGhhbmRsZXJWZXJzaW9uID0gbmV3IGxhbWJkYS5WZXJzaW9uKHN0YWNrLCAnU29tZUhhbmRsZXJWZXJzaW9uJywge1xuICAgIGxhbWJkYTogaGFuZGxlcixcbiAgfSk7XG5cbiAgY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvclMzKHN0YWNrLCAnc2FtcGxlLWNmLWRpc3RybycsIHtcbiAgICBzb3VyY2VCdWNrZXQ6IGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQsXG4gICAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzOiB7XG4gICAgICBkZWZhdWx0QmVoYXZpb3I6IHtcbiAgICAgICAgZWRnZUxhbWJkYXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBldmVudFR5cGU6IExhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1QsXG4gICAgICAgICAgICBpbmNsdWRlQm9keTogZmFsc2UsXG4gICAgICAgICAgICBmdW5jdGlvblZlcnNpb246IGhhbmRsZXJWZXJzaW9uLFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0sXG4gICAgaHR0cFNlY3VyaXR5SGVhZGVyczogZmFsc2VcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7XG4gICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICBEZWZhdWx0Q2FjaGVCZWhhdmlvcjoge1xuICAgICAgICBDYWNoZVBvbGljeUlkOiBcIjY1ODMyN2VhLWY4OWQtNGZhYi1hNjNkLTdlODg2MzllNThmNlwiLFxuICAgICAgICBDb21wcmVzczogdHJ1ZSxcbiAgICAgICAgTGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBFdmVudFR5cGU6IFwidmlld2VyLXJlcXVlc3RcIixcbiAgICAgICAgICAgIEluY2x1ZGVCb2R5OiBmYWxzZSxcbiAgICAgICAgICAgIExhbWJkYUZ1bmN0aW9uQVJOOiB7XG4gICAgICAgICAgICAgIFJlZjogXCJTb21lSGFuZGxlclZlcnNpb25EQTk4NkU0MVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBUYXJnZXRPcmlnaW5JZDogXCJDbG91ZEZyb250RGlzdHJpYnV0aW9uT3JpZ2luMTc2RUMzQTEyXCIsXG4gICAgICAgIFZpZXdlclByb3RvY29sUG9saWN5OiBcInJlZGlyZWN0LXRvLWh0dHBzXCJcbiAgICAgIH0sXG4gICAgICBEZWZhdWx0Um9vdE9iamVjdDogXCJpbmRleC5odG1sXCIsXG4gICAgICBFbmFibGVkOiB0cnVlLFxuICAgICAgSHR0cFZlcnNpb246IFwiaHR0cDJcIixcbiAgICAgIElQVjZFbmFibGVkOiB0cnVlLFxuICAgICAgTG9nZ2luZzoge1xuICAgICAgICBCdWNrZXQ6IHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgXCJDbG91ZGZyb250TG9nZ2luZ0J1Y2tldDNDM0VGQUE3XCIsXG4gICAgICAgICAgICBcIlJlZ2lvbmFsRG9tYWluTmFtZVwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCd0ZXN0IGNsb3VkZnJvbnQgb3ZlcnJpZGUgY2xvdWRmcm9udCBjdXN0b20gZG9tYWluIG5hbWVzICcsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuICBjb25zdCBjZXJ0aWZpY2F0ZSA9IGFjbS5DZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVBcm4oc3RhY2ssICdDZXJ0JywgJ2Fybjphd3M6YWNtOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2VydGlmaWNhdGUvMTExMTIyMjItMzMzMy0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJyk7XG5cbiAgY29uc3QgbXlwcm9wcyA9IHtcbiAgICBkb21haW5OYW1lczogWydteWRvbWFpbnMnXSxcbiAgICBjZXJ0aWZpY2F0ZVxuICB9O1xuXG4gIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczogbXlwcm9wc1xuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uXCIsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIEFsaWFzZXM6IFtcbiAgICAgICAgXCJteWRvbWFpbnNcIlxuICAgICAgXSxcbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ0FyZSBjbG91ZGZyb250IGxvZyBidWNrZXQgYWNjZXNzIGxvZyBidWNrZXQgcHJvcGVydGllcyB1c2VkJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBjb250ZW50QnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIGNvbnN0IHRlc3ROYW1lID0gJ3JhbmRvbS1uYW1lLWF2Y2InO1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvclMzKHN0YWNrLCAnc2FtcGxlLWNmLWRpc3RybycsIHtcbiAgICBzb3VyY2VCdWNrZXQ6IGNvbnRlbnRCdWNrZXRSZXNwb25zZS5idWNrZXQsXG4gICAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRTM0FjY2Vzc0xvZ0J1Y2tldFByb3BzOiB7IGJ1Y2tldE5hbWU6IHRlc3ROYW1lIH1cbiAgfSk7XG5cbiAgZXhwZWN0KHJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChyZXNwb25zZS5sb2dnaW5nQnVja2V0UzNBY2Nlc3NzTG9nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAvLyBDb250ZW50IEJ1Y2tldCwgQ29udGVudCBCdWNrZXQgQWNjZXNzIExvZywgQ2xvdWRGcm9udCBMb2csIENsb3VkRnJvbnQgTG9nIEFjY2VzcyBMb2dcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKFwiQVdTOjpTMzo6QnVja2V0XCIsIDQpO1xuXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6UzM6OkJ1Y2tldFwiLCB7XG4gICAgQnVja2V0TmFtZTogdGVzdE5hbWVcbiAgfSk7XG59KTtcbnRlc3QoJ0lzIGxvZ0Nsb3VkRnJvbnRBY2Nlc3NMb2cgb2JzZXJ2ZWQnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGJ1aWxkUzNCdWNrZXQoc3RhY2ssIHt9KTtcblxuICBjb25zdCByZXNwb25zZSA9IGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzdGFjaywgJ3NhbXBsZS1jZi1kaXN0cm8nLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGxvZ0Nsb3VkRnJvbnRBY2Nlc3NMb2c6IGZhbHNlLFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczoge30sXG4gIH0pO1xuXG4gIGV4cGVjdChyZXNwb25zZS5sb2dnaW5nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QocmVzcG9uc2UubG9nZ2luZ0J1Y2tldFMzQWNjZXNzc0xvZ0J1Y2tldCkubm90LnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gIC8vIENvbnRlbnQgQnVja2V0LCBDb250ZW50IEJ1Y2tldCBBY2Nlc3MgTG9nLCBDbG91ZEZyb250IExvZywgTk8gQ2xvdWRGcm9udCBMb2cgQWNjZXNzIExvZ1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwgMyk7XG59KTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEdXBsaWNhdGUgdGVzdHMgZm9yIGNyZWF0ZUNsb3VkRnJvbnRPYWlEaXN0cmlidXRpbkZvclMzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudGVzdCgnY2hlY2sgYnVja2V0IHBvbGljeSBtZXRhZGF0YSAtIG9haScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuICBjcmVhdGVDbG91ZEZyb250T2FpRGlzdHJpYnV0aW9uRm9yUzMoc3RhY2ssIHtcbiAgICBzb3VyY2VCdWNrZXQ6IGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXRcbiAgfSk7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2UoJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScsIHtcbiAgICBNZXRhZGF0YToge1xuICAgICAgY2ZuX25hZzoge1xuICAgICAgICBydWxlc190b19zdXBwcmVzczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBcIkYxNlwiLFxuICAgICAgICAgICAgcmVhc29uOiBcIlB1YmxpYyB3ZWJzaXRlIGJ1Y2tldCBwb2xpY3kgcmVxdWlyZXMgYSB3aWxkY2FyZCBwcmluY2lwYWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnY2hlY2sgY3JlYXRlQ2xvdWRGcm9udE9haURpc3RyaWJ1dGlvbkZvclMzIHJlc3BvbnNlJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIGNvbnN0IHJlc3BvbnNlID0gY3JlYXRlQ2xvdWRGcm9udE9haURpc3RyaWJ1dGlvbkZvclMzKHN0YWNrLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0XG4gIH0pO1xuXG4gIGV4cGVjdChyZXNwb25zZS5vcmlnaW5BY2Nlc3NJZGVudGl0eSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHJlc3BvbnNlLmRpc3RyaWJ1dGlvbikudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChyZXNwb25zZS5jbG91ZGZyb250RnVuY3Rpb24pLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChyZXNwb25zZS5sb2dnaW5nQnVja2V0UzNBY2Nlc3NzTG9nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xufSk7XG5cbnRlc3QoJ3Rlc3QgY2xvdWRmcm9udCBjaGVjayBidWNrZXQgcG9saWN5IC0gb2FpJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIGNyZWF0ZUNsb3VkRnJvbnRPYWlEaXN0cmlidXRpb25Gb3JTMyhzdGFjaywge1xuICAgIHNvdXJjZUJ1Y2tldDogYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldFxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTMzo6QnVja2V0UG9saWN5XCIsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFwiczM6KlwiLFxuICAgICAgICAgIENvbmRpdGlvbjoge1xuICAgICAgICAgICAgQm9vbDoge1xuICAgICAgICAgICAgICBcImF3czpTZWN1cmVUcmFuc3BvcnRcIjogXCJmYWxzZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBFZmZlY3Q6IFwiRGVueVwiLFxuICAgICAgICAgIFByaW5jaXBhbDoge1xuICAgICAgICAgICAgQVdTOiBcIipcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgICBcIlMzQnVja2V0MDc2ODI5OTNcIixcbiAgICAgICAgICAgICAgICBcIkFyblwiXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiRm46OkpvaW5cIjogW1xuICAgICAgICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiUzNCdWNrZXQwNzY4Mjk5M1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXJuXCJcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiLypcIlxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogXCJzMzpHZXRPYmplY3RcIixcbiAgICAgICAgICBFZmZlY3Q6IFwiQWxsb3dcIixcbiAgICAgICAgICBQcmluY2lwYWw6IHtcbiAgICAgICAgICAgIENhbm9uaWNhbFVzZXI6IHtcbiAgICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgICBcImNvbnN0cnVjdHNHZW5lcmF0ZWRPYWk2QTQzMEJCRlwiLFxuICAgICAgICAgICAgICAgIFwiUzNDYW5vbmljYWxVc2VySWRcIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBSZXNvdXJjZToge1xuICAgICAgICAgICAgXCJGbjo6Sm9pblwiOiBbXG4gICAgICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIlMzQnVja2V0MDc2ODI5OTNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCIvKlwiXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgndGVzdCBjbG91ZGZyb250IHdpdGggbm8gc2VjdXJpdHkgaGVhZGVycyAtIG9haScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuXG4gIGNyZWF0ZUNsb3VkRnJvbnRPYWlEaXN0cmlidXRpb25Gb3JTMyhzdGFjaywge1xuICAgIHNvdXJjZUJ1Y2tldDogYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IHt9LFxuICAgIGh0dHBTZWN1cml0eUhlYWRlcnM6IGZhbHNlXG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb25cIiwge1xuICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgRGVmYXVsdENhY2hlQmVoYXZpb3I6IHtcbiAgICAgICAgQ2FjaGVQb2xpY3lJZDogXCI2NTgzMjdlYS1mODlkLTRmYWItYTYzZC03ZTg4NjM5ZTU4ZjZcIixcbiAgICAgICAgQ29tcHJlc3M6IHRydWUsXG4gICAgICAgIFRhcmdldE9yaWdpbklkOiBcIkNsb3VkRnJvbnREaXN0cmlidXRpb25PcmlnaW4xNzZFQzNBMTJcIixcbiAgICAgICAgVmlld2VyUHJvdG9jb2xQb2xpY3k6IFwicmVkaXJlY3QtdG8taHR0cHNcIlxuICAgICAgfSxcbiAgICAgIERlZmF1bHRSb290T2JqZWN0OiBcImluZGV4Lmh0bWxcIixcbiAgICAgIEVuYWJsZWQ6IHRydWUsXG4gICAgICBIdHRwVmVyc2lvbjogXCJodHRwMlwiLFxuICAgICAgSVBWNkVuYWJsZWQ6IHRydWUsXG4gICAgICBMb2dnaW5nOiB7XG4gICAgICAgIEJ1Y2tldDoge1xuICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICBcIkNsb3VkZnJvbnRMb2dnaW5nQnVja2V0M0MzRUZBQTdcIixcbiAgICAgICAgICAgIFwiUmVnaW9uYWxEb21haW5OYW1lXCJcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ3Rlc3QgY2xvdWRmcm9udCBvdmVycmlkZSBjbG91ZGZyb250IGxvZ2dpbmcgYnVja2V0IC0gb2FpJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBjb250ZW50QnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSwgJ2NvbnRlbnQtYnVja2V0Jyk7XG4gIGNvbnN0IGxvZ0J1Y2tldCA9IG5ldyBCdWNrZXQoc3RhY2ssICdjbG91ZGZyb250LWxvZy1idWNrZXQnKTtcblxuICBjb25zdCBteXByb3BzID0ge1xuICAgIGVuYWJsZUxvZ2dpbmc6IHRydWUsXG4gICAgbG9nQnVja2V0XG4gIH07XG5cbiAgY3JlYXRlQ2xvdWRGcm9udE9haURpc3RyaWJ1dGlvbkZvclMzKHN0YWNrLCB7XG4gICAgc291cmNlQnVja2V0OiBjb250ZW50QnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczogbXlwcm9wc1xuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIC8vIFNob3VsZCBiZSBjb250ZW50IGJ1Y2tldCBhbmQgaXQncyBhc3NvY2lhdGVkIFMzIGxvZ2dpbmcgYnVja2V0LCBwbHVzIHNpbXBsZSBDbG91ZEZyb250IGxvZyBidWNrZXRcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKFwiQVdTOjpTMzo6QnVja2V0XCIsIDMpO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7XG4gICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICBMb2dnaW5nOiB7XG4gICAgICAgIEJ1Y2tldDoge1xuICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICBcImNsb3VkZnJvbnRsb2didWNrZXRERjcwNThGQlwiLFxuICAgICAgICAgICAgXCJSZWdpb25hbERvbWFpbk5hbWVcIlxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgndGVzdCBjbG91ZGZyb250IHdpdGggbG9nZ2luZyBkaXNhYmxlZCAtIG9haScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgY29udGVudEJ1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuXG4gIGNvbnN0IGNmRGlzdHJvUHJvcHMgPSB7XG4gICAgZW5hYmxlTG9nZ2luZzogZmFsc2UsXG4gIH07XG5cbiAgY3JlYXRlQ2xvdWRGcm9udE9haURpc3RyaWJ1dGlvbkZvclMzKHN0YWNrLCB7XG4gICAgc291cmNlQnVja2V0OiBjb250ZW50QnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczogY2ZEaXN0cm9Qcm9wc1xuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIC8vIFNob3VsZCBvbmx5IGJlIGNvbnRlbnQgYnVja2V0IGFuZCBpdCdzIGFzc29jaWF0ZWQgUzMgbG9nZ2luZyBidWNrZXRcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKFwiQVdTOjpTMzo6QnVja2V0XCIsIDIpO1xuICAvLyBUaGVyZSBzaG91bGQgYmUgbm8gbG9nZ2luZyBvZiBkaXN0cmlidXRpb25cbiAgdGVtcGxhdGUucmVzb3VyY2VQcm9wZXJ0aWVzQ291bnRJcyhcIkFXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uXCIsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIERlZmF1bHRDYWNoZUJlaGF2aW9yOiB7XG4gICAgICAgIExvZ2dpbmc6IE1hdGNoLmFueVZhbHVlKClcbiAgICAgIH1cbiAgICB9XG4gIH0sIDApO1xufSk7XG50ZXN0KCd0ZXN0IGNsb3VkZnJvbnQgb3ZlcnJpZGUgcHJvcGVydGllcyAtIG9haScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuICBjb25zdCBwcm9wczogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyA9IHtcbiAgICBkZWZhdWx0QmVoYXZpb3I6IHtcbiAgICAgIG9yaWdpbjogbmV3IG9yaWdpbnMuUzNPcmlnaW4oYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCwgeyBvcmlnaW5QYXRoOiAnL3Rlc3RQYXRoJyB9KSxcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBjbG91ZGZyb250LlZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgICAgYWxsb3dlZE1ldGhvZHM6IGNsb3VkZnJvbnQuQWxsb3dlZE1ldGhvZHMuQUxMT1dfQUxMLFxuICAgICAgY2FjaGVkTWV0aG9kczogY2xvdWRmcm9udC5DYWNoZWRNZXRob2RzLkNBQ0hFX0dFVF9IRUFEX09QVElPTlNcbiAgICB9LFxuICB9O1xuXG4gIGNyZWF0ZUNsb3VkRnJvbnRPYWlEaXN0cmlidXRpb25Gb3JTMyhzdGFjaywge1xuICAgIHNvdXJjZUJ1Y2tldDogYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IHByb3BzXG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb25cIiwge1xuICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgRGVmYXVsdENhY2hlQmVoYXZpb3I6IHtcbiAgICAgICAgQWxsb3dlZE1ldGhvZHM6IFtcbiAgICAgICAgICBcIkdFVFwiLFxuICAgICAgICAgIFwiSEVBRFwiLFxuICAgICAgICAgIFwiT1BUSU9OU1wiLFxuICAgICAgICAgIFwiUFVUXCIsXG4gICAgICAgICAgXCJQQVRDSFwiLFxuICAgICAgICAgIFwiUE9TVFwiLFxuICAgICAgICAgIFwiREVMRVRFXCJcbiAgICAgICAgXSxcbiAgICAgICAgQ2FjaGVQb2xpY3lJZDogXCI2NTgzMjdlYS1mODlkLTRmYWItYTYzZC03ZTg4NjM5ZTU4ZjZcIixcbiAgICAgICAgQ2FjaGVkTWV0aG9kczogW1xuICAgICAgICAgIFwiR0VUXCIsXG4gICAgICAgICAgXCJIRUFEXCIsXG4gICAgICAgICAgXCJPUFRJT05TXCJcbiAgICAgICAgXSxcbiAgICAgICAgQ29tcHJlc3M6IHRydWUsXG4gICAgICAgIEZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgRXZlbnRUeXBlOiBcInZpZXdlci1yZXNwb25zZVwiLFxuICAgICAgICAgICAgRnVuY3Rpb25BUk46IHtcbiAgICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgICBcIlNldEh0dHBTZWN1cml0eUhlYWRlcnNFRTkzNjExNVwiLFxuICAgICAgICAgICAgICAgIFwiRnVuY3Rpb25BUk5cIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBUYXJnZXRPcmlnaW5JZDogXCJDbG91ZEZyb250RGlzdHJpYnV0aW9uT3JpZ2luMTc2RUMzQTEyXCIsXG4gICAgICAgIFZpZXdlclByb3RvY29sUG9saWN5OiBcInJlZGlyZWN0LXRvLWh0dHBzXCJcbiAgICAgIH0sXG4gICAgICBEZWZhdWx0Um9vdE9iamVjdDogXCJpbmRleC5odG1sXCIsXG4gICAgICBFbmFibGVkOiB0cnVlLFxuICAgICAgSHR0cFZlcnNpb246IFwiaHR0cDJcIixcbiAgICAgIElQVjZFbmFibGVkOiB0cnVlLFxuICAgICAgTG9nZ2luZzoge1xuICAgICAgICBCdWNrZXQ6IHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgXCJDbG91ZGZyb250TG9nZ2luZ0J1Y2tldDNDM0VGQUE3XCIsXG4gICAgICAgICAgICBcIlJlZ2lvbmFsRG9tYWluTmFtZVwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgT3JpZ2luczogW1xuICAgICAgICB7XG4gICAgICAgICAgRG9tYWluTmFtZToge1xuICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgXCJTM0J1Y2tldDA3NjgyOTkzXCIsXG4gICAgICAgICAgICAgIFwiUmVnaW9uYWxEb21haW5OYW1lXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIElkOiBcIkNsb3VkRnJvbnREaXN0cmlidXRpb25PcmlnaW4xNzZFQzNBMTJcIixcbiAgICAgICAgICBPcmlnaW5QYXRoOiAnL3Rlc3RQYXRoJyxcbiAgICAgICAgICBTM09yaWdpbkNvbmZpZzoge1xuICAgICAgICAgICAgT3JpZ2luQWNjZXNzSWRlbnRpdHk6IHtcbiAgICAgICAgICAgICAgXCJGbjo6Sm9pblwiOiBbXG4gICAgICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBcIm9yaWdpbi1hY2Nlc3MtaWRlbnRpdHkvY2xvdWRmcm9udC9cIixcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgUmVmOiBcIkNsb3VkRnJvbnREaXN0cmlidXRpb25PcmlnaW4xUzNPcmlnaW4zRDlDQTBFOVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCd0ZXN0IG92ZXJyaWRlIGNsb3VkZnJvbnQgd2l0aCBjdXN0b20gY2xvdWRmcm9udCBmdW5jdGlvbiAtIG9haScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuXG4gIC8vIGN1c3RvbSBjbG91ZGZyb250IGZ1bmN0aW9uXG4gIGNvbnN0IGNsb3VkZnJvbnRGdW5jdGlvbiA9IG5ldyBjbG91ZGZyb250LkZ1bmN0aW9uKHN0YWNrLCBcIk15RnVuY3Rpb25cIiwge1xuICAgIGNvZGU6IGNsb3VkZnJvbnQuRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoXCJleHBvcnRzLmhhbmRsZXIgPSAoZXZlbnQsIGNvbnRleHQsIGNhbGxiYWNrKSA9PiB7fVwiKVxuICB9KTtcblxuICBjcmVhdGVDbG91ZEZyb250T2FpRGlzdHJpYnV0aW9uRm9yUzMoc3RhY2ssIHtcbiAgICBzb3VyY2VCdWNrZXQ6IGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQsXG4gICAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzOiB7XG4gICAgICBkZWZhdWx0QmVoYXZpb3I6IHtcbiAgICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBldmVudFR5cGU6IGNsb3VkZnJvbnQuRnVuY3Rpb25FdmVudFR5cGUuVklFV0VSX1JFU1BPTlNFLFxuICAgICAgICAgICAgZnVuY3Rpb246IGNsb3VkZnJvbnRGdW5jdGlvblxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb25cIiwge1xuICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgRGVmYXVsdENhY2hlQmVoYXZpb3I6IHtcbiAgICAgICAgQ2FjaGVQb2xpY3lJZDogXCI2NTgzMjdlYS1mODlkLTRmYWItYTYzZC03ZTg4NjM5ZTU4ZjZcIixcbiAgICAgICAgQ29tcHJlc3M6IHRydWUsXG4gICAgICAgIEZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgRXZlbnRUeXBlOiBcInZpZXdlci1yZXNwb25zZVwiLFxuICAgICAgICAgICAgRnVuY3Rpb25BUk46IHtcbiAgICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgICBcIk15RnVuY3Rpb24zQkFBNzJEMVwiLFxuICAgICAgICAgICAgICAgIFwiRnVuY3Rpb25BUk5cIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBUYXJnZXRPcmlnaW5JZDogXCJDbG91ZEZyb250RGlzdHJpYnV0aW9uT3JpZ2luMTc2RUMzQTEyXCIsXG4gICAgICAgIFZpZXdlclByb3RvY29sUG9saWN5OiBcInJlZGlyZWN0LXRvLWh0dHBzXCJcbiAgICAgIH0sXG4gICAgICBEZWZhdWx0Um9vdE9iamVjdDogXCJpbmRleC5odG1sXCIsXG4gICAgICBFbmFibGVkOiB0cnVlLFxuICAgICAgSHR0cFZlcnNpb246IFwiaHR0cDJcIixcbiAgICAgIElQVjZFbmFibGVkOiB0cnVlLFxuICAgICAgTG9nZ2luZzoge1xuICAgICAgICBCdWNrZXQ6IHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgXCJDbG91ZGZyb250TG9nZ2luZ0J1Y2tldDNDM0VGQUE3XCIsXG4gICAgICAgICAgICBcIlJlZ2lvbmFsRG9tYWluTmFtZVwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCd0ZXN0IG92ZXJyaWRlIGNsb3VkZnJvbnQgcmVwbGFjZSBjdXN0b20gbGFtYmRhQGVkZ2UgLSBvYWknLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGJ1aWxkUzNCdWNrZXQoc3RhY2ssIHt9KTtcblxuICAvLyBjdXN0b20gbGFtYmRhQGVkZyBmdW5jdGlvblxuICBjb25zdCBoYW5kbGVyID0gbmV3IGxhbWJkYS5GdW5jdGlvbihzdGFjaywgJ1NvbWVIYW5kbGVyJywge1xuICAgIGZ1bmN0aW9uTmFtZTogJ1NvbWVIYW5kbGVyJyxcbiAgICBydW50aW1lOiBkZWZhdWx0cy5DT01NRVJDSUFMX1JFR0lPTl9MQU1CREFfTk9ERV9SVU5USU1FLFxuICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoYCR7X19kaXJuYW1lfS9sYW1iZGFgKSxcbiAgfSk7XG5cbiAgY29uc3QgaGFuZGxlclZlcnNpb24gPSBuZXcgbGFtYmRhLlZlcnNpb24oc3RhY2ssICdTb21lSGFuZGxlclZlcnNpb24nLCB7XG4gICAgbGFtYmRhOiBoYW5kbGVyLFxuICB9KTtcblxuICBjcmVhdGVDbG91ZEZyb250T2FpRGlzdHJpYnV0aW9uRm9yUzMoc3RhY2ssIHtcbiAgICBzb3VyY2VCdWNrZXQ6IGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQsXG4gICAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzOiB7XG4gICAgICBkZWZhdWx0QmVoYXZpb3I6IHtcbiAgICAgICAgZWRnZUxhbWJkYXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBldmVudFR5cGU6IExhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1QsXG4gICAgICAgICAgICBpbmNsdWRlQm9keTogZmFsc2UsXG4gICAgICAgICAgICBmdW5jdGlvblZlcnNpb246IGhhbmRsZXJWZXJzaW9uLFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0sXG4gICAgaHR0cFNlY3VyaXR5SGVhZGVyczogZmFsc2VcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7XG4gICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICBEZWZhdWx0Q2FjaGVCZWhhdmlvcjoge1xuICAgICAgICBDYWNoZVBvbGljeUlkOiBcIjY1ODMyN2VhLWY4OWQtNGZhYi1hNjNkLTdlODg2MzllNThmNlwiLFxuICAgICAgICBDb21wcmVzczogdHJ1ZSxcbiAgICAgICAgTGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBFdmVudFR5cGU6IFwidmlld2VyLXJlcXVlc3RcIixcbiAgICAgICAgICAgIEluY2x1ZGVCb2R5OiBmYWxzZSxcbiAgICAgICAgICAgIExhbWJkYUZ1bmN0aW9uQVJOOiB7XG4gICAgICAgICAgICAgIFJlZjogXCJTb21lSGFuZGxlclZlcnNpb25EQTk4NkU0MVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBUYXJnZXRPcmlnaW5JZDogXCJDbG91ZEZyb250RGlzdHJpYnV0aW9uT3JpZ2luMTc2RUMzQTEyXCIsXG4gICAgICAgIFZpZXdlclByb3RvY29sUG9saWN5OiBcInJlZGlyZWN0LXRvLWh0dHBzXCJcbiAgICAgIH0sXG4gICAgICBEZWZhdWx0Um9vdE9iamVjdDogXCJpbmRleC5odG1sXCIsXG4gICAgICBFbmFibGVkOiB0cnVlLFxuICAgICAgSHR0cFZlcnNpb246IFwiaHR0cDJcIixcbiAgICAgIElQVjZFbmFibGVkOiB0cnVlLFxuICAgICAgTG9nZ2luZzoge1xuICAgICAgICBCdWNrZXQ6IHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgXCJDbG91ZGZyb250TG9nZ2luZ0J1Y2tldDNDM0VGQUE3XCIsXG4gICAgICAgICAgICBcIlJlZ2lvbmFsRG9tYWluTmFtZVwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCd0ZXN0IGNsb3VkZnJvbnQgb3ZlcnJpZGUgY2xvdWRmcm9udCBjdXN0b20gZG9tYWluIG5hbWVzIC0gb2FpJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIGNvbnN0IGNlcnRpZmljYXRlID0gYWNtLkNlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybihzdGFjaywgJ0NlcnQnLCAnYXJuOmF3czphY206dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpjZXJ0aWZpY2F0ZS8xMTExMjIyMi0zMzMzLTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInKTtcblxuICBjb25zdCBteXByb3BzID0ge1xuICAgIGRvbWFpbk5hbWVzOiBbJ215ZG9tYWlucyddLFxuICAgIGNlcnRpZmljYXRlXG4gIH07XG5cbiAgY3JlYXRlQ2xvdWRGcm9udE9haURpc3RyaWJ1dGlvbkZvclMzKHN0YWNrLCB7XG4gICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczogbXlwcm9wc1xuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uXCIsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIEFsaWFzZXM6IFtcbiAgICAgICAgXCJteWRvbWFpbnNcIlxuICAgICAgXSxcbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ0FyZSBjbG91ZGZyb250IGxvZyBidWNrZXQgYWNjZXNzIGxvZyBidWNrZXQgcHJvcGVydGllcyB1c2VkIC0gb2FpJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBjb250ZW50QnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIGNvbnN0IHRlc3ROYW1lID0gJ3JhbmRvbS1uYW1lLWF2Y2InO1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gY3JlYXRlQ2xvdWRGcm9udE9haURpc3RyaWJ1dGlvbkZvclMzKHN0YWNrLCB7XG4gICAgc291cmNlQnVja2V0OiBjb250ZW50QnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UzNBY2Nlc3NMb2dCdWNrZXRQcm9wczogeyBidWNrZXROYW1lOiB0ZXN0TmFtZSB9XG4gIH0pO1xuXG4gIGV4cGVjdChyZXNwb25zZS5sb2dnaW5nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QocmVzcG9uc2UubG9nZ2luZ0J1Y2tldFMzQWNjZXNzc0xvZ0J1Y2tldCkudG9CZURlZmluZWQoKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgLy8gQ29udGVudCBCdWNrZXQsIENvbnRlbnQgQnVja2V0IEFjY2VzcyBMb2csIENsb3VkRnJvbnQgTG9nLCBDbG91ZEZyb250IExvZyBBY2Nlc3MgTG9nXG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcyhcIkFXUzo6UzM6OkJ1Y2tldFwiLCA0KTtcblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIEJ1Y2tldE5hbWU6IHRlc3ROYW1lXG4gIH0pO1xufSk7XG50ZXN0KCdJcyBsb2dDbG91ZEZyb250QWNjZXNzTG9nIG9ic2VydmVkIC0gb2FpJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG5cbiAgY29uc3QgcmVzcG9uc2UgPSBjcmVhdGVDbG91ZEZyb250T2FpRGlzdHJpYnV0aW9uRm9yUzMoc3RhY2ssIHtcbiAgICBzb3VyY2VCdWNrZXQ6IGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQsXG4gICAgbG9nQ2xvdWRGcm9udEFjY2Vzc0xvZzogZmFsc2UsXG4gICAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzOiB7fSxcbiAgfSk7XG5cbiAgZXhwZWN0KHJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChyZXNwb25zZS5sb2dnaW5nQnVja2V0UzNBY2Nlc3NzTG9nQnVja2V0KS5ub3QudG9CZURlZmluZWQoKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgLy8gQ29udGVudCBCdWNrZXQsIENvbnRlbnQgQnVja2V0IEFjY2VzcyBMb2csIENsb3VkRnJvbnQgTG9nLCBOTyBDbG91ZEZyb250IExvZyBBY2Nlc3MgTG9nXG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcyhcIkFXUzo6UzM6OkJ1Y2tldFwiLCAzKTtcbn0pO1xuXG50ZXN0KCdUZXN0IHRoYXQgd2ViIHNpdGUgZW5hYmxlZCBidWNrZXRzIHRocm93IGFuIGVycm9yIC0gb2FpJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHN0YWNrLCB7XG4gICAgYnVja2V0UHJvcHM6IHtcbiAgICAgIHdlYnNpdGVJbmRleERvY3VtZW50OiBcImluZGV4Lmh0bWxcIlxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGNyZWF0ZUNsb3VkRnJvbnRPYWlEaXN0cmlidXRpb25Gb3JTMyhzdGFjaywge1xuICAgICAgc291cmNlQnVja2V0OiBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0LFxuICAgICAgbG9nQ2xvdWRGcm9udEFjY2Vzc0xvZzogZmFsc2UsXG4gICAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IHt9LFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoKTtcblxufSk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvcCBUZXN0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG50ZXN0KCdUZXN0IENsb3VkRnJvbnQgaW5zZXJ0SHR0cEhlYWRlcnMgYmFkIHByb3BzJywgKCkgPT4ge1xuXG4gIGNvbnN0IHByb3BzOiBkZWZhdWx0cy5DbG91ZEZyb250UHJvcHMgPSB7XG4gICAgaW5zZXJ0SHR0cFNlY3VyaXR5SGVhZGVyczogdHJ1ZSxcbiAgICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wczoge1xuICAgICAgc2VjdXJpdHlIZWFkZXJzQmVoYXZpb3I6IHt9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5DaGVja0Nsb3VkRnJvbnRQcm9wcyhwcm9wcyk7XG4gIH07XG5cbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcigncmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMuc2VjdXJpdHlIZWFkZXJzQmVoYXZpb3IgY2FuIG9ubHkgYmUgcGFzc2VkIGlmIGh0dHBTZWN1cml0eUhlYWRlcnMgaXMgc2V0IHRvIGBmYWxzZWAuJyk7XG59KTtcbiJdfQ==