terraconstructs 0.2.4 → 0.2.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 (412) hide show
  1. package/.jsii +3099 -2917
  2. package/CLAUDE.md +6 -6
  3. package/README.md +1 -1
  4. package/lib/asset-staging.js +3 -3
  5. package/lib/aws/arn.js +5 -5
  6. package/lib/aws/aws-asset-manager.js +9 -9
  7. package/lib/aws/aws-construct.js +1 -1
  8. package/lib/aws/aws-stack.d.ts +19 -4
  9. package/lib/aws/aws-stack.js +43 -18
  10. package/lib/aws/aws-tags.d.ts +1 -1
  11. package/lib/aws/aws-tags.js +5 -5
  12. package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
  13. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  14. package/lib/aws/cloudwatch/actions/lambda.js +2 -2
  15. package/lib/aws/cloudwatch/actions/sns.js +1 -1
  16. package/lib/aws/cloudwatch/actions/ssm.js +2 -2
  17. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  18. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  19. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  20. package/lib/aws/cloudwatch/alarm.d.ts +1 -1
  21. package/lib/aws/cloudwatch/alarm.js +10 -10
  22. package/lib/aws/cloudwatch/composite-alarm.d.ts +1 -1
  23. package/lib/aws/cloudwatch/composite-alarm.js +7 -7
  24. package/lib/aws/cloudwatch/dashboard.d.ts +1 -1
  25. package/lib/aws/cloudwatch/dashboard.js +7 -7
  26. package/lib/aws/cloudwatch/data-protection-policy.d.ts +1 -1
  27. package/lib/aws/cloudwatch/data-protection-policy.js +5 -5
  28. package/lib/aws/cloudwatch/graph.js +8 -8
  29. package/lib/aws/cloudwatch/layout.js +3 -3
  30. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  31. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  32. package/lib/aws/cloudwatch/log-group.d.ts +1 -1
  33. package/lib/aws/cloudwatch/log-group.js +7 -7
  34. package/lib/aws/cloudwatch/log-query.js +1 -1
  35. package/lib/aws/cloudwatch/log-stream.d.ts +1 -1
  36. package/lib/aws/cloudwatch/log-stream.js +3 -3
  37. package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
  38. package/lib/aws/cloudwatch/metric-filter.js +3 -3
  39. package/lib/aws/cloudwatch/metric.js +6 -6
  40. package/lib/aws/cloudwatch/pattern.js +3 -3
  41. package/lib/aws/cloudwatch/policy.d.ts +1 -1
  42. package/lib/aws/cloudwatch/policy.js +3 -3
  43. package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.d.ts +1 -1
  44. package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.js +1 -1
  45. package/lib/aws/cloudwatch/private/env-tokens.js +6 -6
  46. package/lib/aws/cloudwatch/query-definition.d.ts +1 -1
  47. package/lib/aws/cloudwatch/query-definition.js +4 -4
  48. package/lib/aws/cloudwatch/stats.js +1 -1
  49. package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
  50. package/lib/aws/cloudwatch/subscription-filter.js +6 -6
  51. package/lib/aws/cloudwatch/text.js +1 -1
  52. package/lib/aws/cloudwatch/variable.js +3 -3
  53. package/lib/aws/cloudwatch/widget.js +1 -1
  54. package/lib/aws/compute/access-log.d.ts +1 -1
  55. package/lib/aws/compute/access-log.js +5 -5
  56. package/lib/aws/compute/activity.d.ts +1 -1
  57. package/lib/aws/compute/activity.js +5 -5
  58. package/lib/aws/compute/alb/application-listener-action.d.ts +1 -1
  59. package/lib/aws/compute/alb/application-listener-action.js +5 -5
  60. package/lib/aws/compute/alb/application-listener-certificate.js +3 -3
  61. package/lib/aws/compute/alb/application-listener-rule.js +9 -9
  62. package/lib/aws/compute/alb/application-listener.js +5 -5
  63. package/lib/aws/compute/alb/application-load-balancer.js +8 -8
  64. package/lib/aws/compute/alb/application-target-group.js +7 -7
  65. package/lib/aws/compute/alb/conditions.js +3 -3
  66. package/lib/aws/compute/alb/trust-store-revocation.js +3 -3
  67. package/lib/aws/compute/alb/trust-store.js +7 -7
  68. package/lib/aws/compute/api-definition.js +9 -9
  69. package/lib/aws/compute/api-key.js +6 -6
  70. package/lib/aws/compute/architecture.js +1 -1
  71. package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +1 -1
  72. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +6 -6
  73. package/lib/aws/compute/authorizer.js +1 -1
  74. package/lib/aws/compute/authorizers/identity-source.js +1 -1
  75. package/lib/aws/compute/authorizers/lambda.d.ts +1 -1
  76. package/lib/aws/compute/authorizers/lambda.js +6 -6
  77. package/lib/aws/compute/base-path-mapping.js +5 -5
  78. package/lib/aws/compute/base-scalable-attribute.js +1 -1
  79. package/lib/aws/compute/bastion-host.js +4 -4
  80. package/lib/aws/compute/chain.js +1 -1
  81. package/lib/aws/compute/client-vpn-authorization-rule.js +3 -3
  82. package/lib/aws/compute/client-vpn-endpoint.d.ts +1 -1
  83. package/lib/aws/compute/client-vpn-endpoint.js +9 -9
  84. package/lib/aws/compute/client-vpn-route.d.ts +1 -1
  85. package/lib/aws/compute/client-vpn-route.js +4 -4
  86. package/lib/aws/compute/code.d.ts +3 -3
  87. package/lib/aws/compute/code.js +15 -15
  88. package/lib/aws/compute/condition.js +1 -1
  89. package/lib/aws/compute/connections.js +1 -1
  90. package/lib/aws/compute/cors.js +1 -1
  91. package/lib/aws/compute/deployment.js +5 -5
  92. package/lib/aws/compute/domain-name.js +5 -5
  93. package/lib/aws/compute/event-invoke-config.d.ts +1 -1
  94. package/lib/aws/compute/event-invoke-config.js +3 -3
  95. package/lib/aws/compute/event-source-filter.js +2 -2
  96. package/lib/aws/compute/event-source-mapping.js +7 -7
  97. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  98. package/lib/aws/compute/event-sources/s3.js +1 -1
  99. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  100. package/lib/aws/compute/event-sources/sqs.js +5 -5
  101. package/lib/aws/compute/fields.d.ts +1 -1
  102. package/lib/aws/compute/fields.js +12 -12
  103. package/lib/aws/compute/function-alias.d.ts +1 -1
  104. package/lib/aws/compute/function-alias.js +3 -3
  105. package/lib/aws/compute/function-base.d.ts +1 -1
  106. package/lib/aws/compute/function-base.js +10 -9
  107. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  108. package/lib/aws/compute/function-destinations/function.js +1 -1
  109. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  110. package/lib/aws/compute/function-nodejs/bundling.js +6 -6
  111. package/lib/aws/compute/function-nodejs/function.js +4 -4
  112. package/lib/aws/compute/function-url.d.ts +1 -1
  113. package/lib/aws/compute/function-url.js +3 -3
  114. package/lib/aws/compute/function-vpc-config.generated.d.ts +5 -5
  115. package/lib/aws/compute/function-vpc-config.generated.js +1 -1
  116. package/lib/aws/compute/function.d.ts +2 -2
  117. package/lib/aws/compute/function.js +9 -9
  118. package/lib/aws/compute/gateway-response.d.ts +1 -1
  119. package/lib/aws/compute/gateway-response.js +4 -4
  120. package/lib/aws/compute/handler.js +1 -1
  121. package/lib/aws/compute/instance-types.js +1 -1
  122. package/lib/aws/compute/instance.d.ts +1 -1
  123. package/lib/aws/compute/instance.js +9 -9
  124. package/lib/aws/compute/integration.js +4 -4
  125. package/lib/aws/compute/integrations/aws.js +3 -3
  126. package/lib/aws/compute/integrations/http.js +1 -1
  127. package/lib/aws/compute/integrations/lambda.js +5 -5
  128. package/lib/aws/compute/integrations/mock.js +1 -1
  129. package/lib/aws/compute/integrations/stepfunctions.js +4 -4
  130. package/lib/aws/compute/ip-addresses.d.ts +1 -1
  131. package/lib/aws/compute/ip-addresses.js +10 -10
  132. package/lib/aws/compute/ipam.d.ts +1 -1
  133. package/lib/aws/compute/ipam.js +5 -5
  134. package/lib/aws/compute/key-pair.d.ts +1 -1
  135. package/lib/aws/compute/key-pair.js +6 -6
  136. package/lib/aws/compute/lambda-api.js +1 -1
  137. package/lib/aws/compute/launch-template.d.ts +1 -1
  138. package/lib/aws/compute/launch-template.js +12 -12
  139. package/lib/aws/compute/lb-shared/base-listener.js +9 -9
  140. package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +2 -2
  141. package/lib/aws/compute/lb-shared/base-load-balancer.js +12 -12
  142. package/lib/aws/compute/lb-shared/base-target-group.d.ts +1 -1
  143. package/lib/aws/compute/lb-shared/base-target-group.js +15 -15
  144. package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +34 -34
  145. package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +1 -1
  146. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +11 -6
  147. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +1 -1
  148. package/lib/aws/compute/lb-shared/listener-action.d.ts +1 -1
  149. package/lib/aws/compute/lb-shared/listener-action.js +1 -1
  150. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  151. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  152. package/lib/aws/compute/lb-shared/util.js +5 -5
  153. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  154. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  155. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  156. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  157. package/lib/aws/compute/load-balancer.d.ts +1 -1
  158. package/lib/aws/compute/load-balancer.js +8 -8
  159. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  160. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  161. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  162. package/lib/aws/compute/machine-image/common.js +1 -1
  163. package/lib/aws/compute/machine-image/machine-image.js +10 -10
  164. package/lib/aws/compute/method.js +6 -6
  165. package/lib/aws/compute/model.js +5 -5
  166. package/lib/aws/compute/nat.js +10 -10
  167. package/lib/aws/compute/network-acl-types.js +2 -2
  168. package/lib/aws/compute/network-acl.d.ts +1 -1
  169. package/lib/aws/compute/network-acl.js +5 -5
  170. package/lib/aws/compute/nlb/network-listener-action.d.ts +1 -1
  171. package/lib/aws/compute/nlb/network-listener-action.js +2 -2
  172. package/lib/aws/compute/nlb/network-listener-certificate.js +2 -2
  173. package/lib/aws/compute/nlb/network-listener.js +5 -5
  174. package/lib/aws/compute/nlb/network-load-balancer.js +6 -6
  175. package/lib/aws/compute/nlb/network-target-group.js +4 -4
  176. package/lib/aws/compute/peer.js +7 -7
  177. package/lib/aws/compute/placement-group.d.ts +1 -1
  178. package/lib/aws/compute/placement-group.js +3 -3
  179. package/lib/aws/compute/port.js +5 -5
  180. package/lib/aws/compute/prefix-list.d.ts +1 -1
  181. package/lib/aws/compute/prefix-list.js +5 -5
  182. package/lib/aws/compute/private/context-stub.js +7 -7
  183. package/lib/aws/compute/private/ebs-util.d.ts +1 -1
  184. package/lib/aws/compute/private/ebs-util.js +3 -3
  185. package/lib/aws/compute/private/json-path.d.ts +1 -1
  186. package/lib/aws/compute/private/json-path.js +8 -8
  187. package/lib/aws/compute/requestvalidator.js +3 -3
  188. package/lib/aws/compute/resource.js +5 -5
  189. package/lib/aws/compute/restapi.d.ts +1 -1
  190. package/lib/aws/compute/restapi.js +11 -11
  191. package/lib/aws/compute/route.d.ts +1 -1
  192. package/lib/aws/compute/route.js +12 -12
  193. package/lib/aws/compute/runtime.js +3 -3
  194. package/lib/aws/compute/scalable-target.d.ts +1 -1
  195. package/lib/aws/compute/scalable-target.js +3 -3
  196. package/lib/aws/compute/schedule.js +4 -4
  197. package/lib/aws/compute/security-group.js +12 -12
  198. package/lib/aws/compute/stage.d.ts +1 -1
  199. package/lib/aws/compute/stage.js +6 -6
  200. package/lib/aws/compute/state-graph.js +1 -1
  201. package/lib/aws/compute/state-machine-fragment.js +1 -1
  202. package/lib/aws/compute/state-machine.d.ts +2 -2
  203. package/lib/aws/compute/state-machine.js +8 -8
  204. package/lib/aws/compute/states/choice.js +1 -1
  205. package/lib/aws/compute/states/custom-state.js +5 -5
  206. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  207. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  208. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  209. package/lib/aws/compute/states/distributed-map.js +4 -4
  210. package/lib/aws/compute/states/fail.js +4 -4
  211. package/lib/aws/compute/states/map-base.js +4 -4
  212. package/lib/aws/compute/states/map.js +1 -1
  213. package/lib/aws/compute/states/parallel.js +1 -1
  214. package/lib/aws/compute/states/pass.js +2 -2
  215. package/lib/aws/compute/states/state.js +4 -4
  216. package/lib/aws/compute/states/succeed.js +1 -1
  217. package/lib/aws/compute/states/task-base.js +2 -2
  218. package/lib/aws/compute/states/task.js +1 -1
  219. package/lib/aws/compute/states/wait.js +2 -2
  220. package/lib/aws/compute/step-scaling-action.js +5 -5
  221. package/lib/aws/compute/step-scaling-policy.js +7 -7
  222. package/lib/aws/compute/stepfunctions-api.js +2 -2
  223. package/lib/aws/compute/subnet-v2.d.ts +1 -1
  224. package/lib/aws/compute/subnet-v2.js +5 -5
  225. package/lib/aws/compute/subnet.js +4 -4
  226. package/lib/aws/compute/target-tracking-scaling-policy.js +3 -3
  227. package/lib/aws/compute/task-credentials.js +1 -1
  228. package/lib/aws/compute/task-input.js +1 -1
  229. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +5 -5
  230. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  231. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  232. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  233. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  234. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  235. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  236. package/lib/aws/compute/types.js +1 -1
  237. package/lib/aws/compute/usage-plan.js +5 -5
  238. package/lib/aws/compute/user-data.d.ts +2 -2
  239. package/lib/aws/compute/user-data.js +10 -10
  240. package/lib/aws/compute/volume.d.ts +1 -1
  241. package/lib/aws/compute/volume.js +7 -7
  242. package/lib/aws/compute/vpc-endpoint-service.js +3 -3
  243. package/lib/aws/compute/vpc-endpoint.d.ts +1 -1
  244. package/lib/aws/compute/vpc-endpoint.js +13 -13
  245. package/lib/aws/compute/vpc-flow-logs.d.ts +1 -1
  246. package/lib/aws/compute/vpc-flow-logs.js +8 -8
  247. package/lib/aws/compute/vpc-link.js +5 -5
  248. package/lib/aws/compute/vpc-v2-base.js +6 -6
  249. package/lib/aws/compute/vpc-v2.d.ts +2 -2
  250. package/lib/aws/compute/vpc-v2.js +4 -4
  251. package/lib/aws/compute/vpc.d.ts +1 -1
  252. package/lib/aws/compute/vpc.js +24 -22
  253. package/lib/aws/compute/vpn.js +8 -8
  254. package/lib/aws/context-provider.js +4 -4
  255. package/lib/aws/edge/certificate.d.ts +1 -1
  256. package/lib/aws/edge/certificate.js +6 -6
  257. package/lib/aws/edge/distribution.d.ts +1 -1
  258. package/lib/aws/edge/distribution.js +9 -9
  259. package/lib/aws/edge/dns-alias-record-targets.d.ts +1 -1
  260. package/lib/aws/edge/dns-alias-record-targets.js +7 -7
  261. package/lib/aws/edge/dns-record.d.ts +1 -1
  262. package/lib/aws/edge/dns-record.js +19 -19
  263. package/lib/aws/edge/dns-zone.d.ts +2 -2
  264. package/lib/aws/edge/dns-zone.js +5 -5
  265. package/lib/aws/edge/function.d.ts +1 -1
  266. package/lib/aws/edge/function.js +4 -4
  267. package/lib/aws/edge/key-value-store.d.ts +1 -1
  268. package/lib/aws/edge/key-value-store.js +6 -6
  269. package/lib/aws/edge/origin.d.ts +1 -1
  270. package/lib/aws/edge/origin.js +6 -6
  271. package/lib/aws/edge/response-headers-policy.d.ts +1 -1
  272. package/lib/aws/edge/response-headers-policy.js +6 -6
  273. package/lib/aws/encryption/alias.d.ts +1 -1
  274. package/lib/aws/encryption/alias.js +8 -8
  275. package/lib/aws/encryption/key.d.ts +1 -1
  276. package/lib/aws/encryption/key.js +6 -6
  277. package/lib/aws/encryption/via-service-principal.js +1 -1
  278. package/lib/aws/iam/grant.js +3 -3
  279. package/lib/aws/iam/group.js +5 -5
  280. package/lib/aws/iam/instance-profile.d.ts +1 -1
  281. package/lib/aws/iam/instance-profile.js +3 -3
  282. package/lib/aws/iam/managed-policy.d.ts +1 -1
  283. package/lib/aws/iam/managed-policy.js +3 -3
  284. package/lib/aws/iam/oidc-provider.d.ts +1 -1
  285. package/lib/aws/iam/oidc-provider.js +3 -3
  286. package/lib/aws/iam/policy-document-config.generated.d.ts +9 -9
  287. package/lib/aws/iam/policy-document-config.generated.js +1 -1
  288. package/lib/aws/iam/policy-document.d.ts +1 -1
  289. package/lib/aws/iam/policy-document.js +5 -5
  290. package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
  291. package/lib/aws/iam/policy-statement-props.generated.js +1 -1
  292. package/lib/aws/iam/policy-statement.d.ts +1 -1
  293. package/lib/aws/iam/policy-statement.js +8 -8
  294. package/lib/aws/iam/policy.js +3 -3
  295. package/lib/aws/iam/principals.js +25 -25
  296. package/lib/aws/iam/private/imported-role.js +3 -3
  297. package/lib/aws/iam/private/postprocess-policy-document.d.ts +1 -1
  298. package/lib/aws/iam/private/postprocess-policy-document.js +1 -1
  299. package/lib/aws/iam/private/util.d.ts +1 -1
  300. package/lib/aws/iam/private/util.js +5 -5
  301. package/lib/aws/iam/role.d.ts +1 -1
  302. package/lib/aws/iam/role.js +6 -6
  303. package/lib/aws/iam/saml-provider.d.ts +1 -1
  304. package/lib/aws/iam/saml-provider.js +6 -6
  305. package/lib/aws/iam/unknown-principal.js +4 -4
  306. package/lib/aws/iam/user.js +3 -3
  307. package/lib/aws/network/network.d.ts +1 -1
  308. package/lib/aws/network/network.js +1 -1
  309. package/lib/aws/network/simple-ipv4-vpc.js +12 -12
  310. package/lib/aws/network/subnet-group.d.ts +1 -1
  311. package/lib/aws/network/subnet-group.js +5 -5
  312. package/lib/aws/network/subnet.d.ts +1 -1
  313. package/lib/aws/network/subnet.js +6 -6
  314. package/lib/aws/notify/archive.d.ts +1 -1
  315. package/lib/aws/notify/archive.js +3 -3
  316. package/lib/aws/notify/connection.d.ts +1 -1
  317. package/lib/aws/notify/connection.js +5 -5
  318. package/lib/aws/notify/event-bus.d.ts +1 -1
  319. package/lib/aws/notify/event-bus.js +10 -10
  320. package/lib/aws/notify/event-pattern.d.ts +1 -1
  321. package/lib/aws/notify/event-pattern.js +5 -5
  322. package/lib/aws/notify/input.d.ts +1 -1
  323. package/lib/aws/notify/input.js +12 -12
  324. package/lib/aws/notify/kinesis-stream.d.ts +1 -1
  325. package/lib/aws/notify/kinesis-stream.js +7 -7
  326. package/lib/aws/notify/notification-rule.js +8 -8
  327. package/lib/aws/notify/policy.js +3 -3
  328. package/lib/aws/notify/queue-base.js +1 -1
  329. package/lib/aws/notify/queue-policy.js +3 -3
  330. package/lib/aws/notify/queue.d.ts +1 -1
  331. package/lib/aws/notify/queue.js +8 -8
  332. package/lib/aws/notify/resource-policy.js +3 -3
  333. package/lib/aws/notify/rule.d.ts +1 -1
  334. package/lib/aws/notify/rule.js +6 -6
  335. package/lib/aws/notify/schedule.js +4 -4
  336. package/lib/aws/notify/sns-grants.generated.js +1 -1
  337. package/lib/aws/notify/sqs-grants.generated.js +1 -1
  338. package/lib/aws/notify/subscription-filter.js +1 -1
  339. package/lib/aws/notify/subscription.js +6 -6
  340. package/lib/aws/notify/subscriptions/email.js +1 -1
  341. package/lib/aws/notify/subscriptions/lambda.js +4 -4
  342. package/lib/aws/notify/subscriptions/sms.js +1 -1
  343. package/lib/aws/notify/subscriptions/sqs.js +4 -4
  344. package/lib/aws/notify/subscriptions/url.js +4 -4
  345. package/lib/aws/notify/target.d.ts +1 -1
  346. package/lib/aws/notify/target.js +1 -1
  347. package/lib/aws/notify/targets/event-bus.js +1 -1
  348. package/lib/aws/notify/targets/function.js +1 -1
  349. package/lib/aws/notify/targets/log-group.js +2 -2
  350. package/lib/aws/notify/targets/sqs.js +1 -1
  351. package/lib/aws/notify/targets/state-machine.js +1 -1
  352. package/lib/aws/notify/targets/util.js +3 -3
  353. package/lib/aws/notify/topic-base.js +4 -4
  354. package/lib/aws/notify/topic.js +7 -7
  355. package/lib/aws/provider-config.generated.d.ts +42 -36
  356. package/lib/aws/provider-config.generated.js +1 -1
  357. package/lib/aws/region-lookup.js +4 -4
  358. package/lib/aws/storage/assets/image-asset.js +8 -8
  359. package/lib/aws/storage/assets/s3.js +1 -1
  360. package/lib/aws/storage/auth-token.js +2 -2
  361. package/lib/aws/storage/billing.js +1 -1
  362. package/lib/aws/storage/bucket-notifications.d.ts +1 -1
  363. package/lib/aws/storage/bucket-notifications.js +8 -8
  364. package/lib/aws/storage/bucket-policy.d.ts +1 -1
  365. package/lib/aws/storage/bucket-policy.js +3 -3
  366. package/lib/aws/storage/bucket-source.d.ts +1 -1
  367. package/lib/aws/storage/bucket-source.js +7 -7
  368. package/lib/aws/storage/bucket.d.ts +1 -1
  369. package/lib/aws/storage/bucket.js +8 -8
  370. package/lib/aws/storage/capacity.js +1 -1
  371. package/lib/aws/storage/cors-config.generated.d.ts +5 -5
  372. package/lib/aws/storage/cors-config.generated.js +1 -1
  373. package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
  374. package/lib/aws/storage/cors-rule-config.generated.js +1 -1
  375. package/lib/aws/storage/ecr-repository.js +11 -11
  376. package/lib/aws/storage/encryption.d.ts +1 -1
  377. package/lib/aws/storage/encryption.js +5 -5
  378. package/lib/aws/storage/lifecycle-config.generated.d.ts +9 -9
  379. package/lib/aws/storage/lifecycle-config.generated.js +1 -1
  380. package/lib/aws/storage/notification-targets/function.js +2 -2
  381. package/lib/aws/storage/notification-targets/queue.js +4 -4
  382. package/lib/aws/storage/origin-access-identity.d.ts +2 -2
  383. package/lib/aws/storage/origin-access-identity.js +3 -3
  384. package/lib/aws/storage/parameter-util.js +5 -5
  385. package/lib/aws/storage/parameter.d.ts +2 -2
  386. package/lib/aws/storage/parameter.js +16 -16
  387. package/lib/aws/storage/stream-grants.js +1 -1
  388. package/lib/aws/storage/table-grants.js +1 -1
  389. package/lib/aws/storage/table.d.ts +1 -1
  390. package/lib/aws/storage/table.js +10 -10
  391. package/lib/aws/storage/website-config.generated.d.ts +8 -8
  392. package/lib/aws/storage/website-config.generated.js +1 -1
  393. package/lib/bundling.js +5 -5
  394. package/lib/construct-base.d.ts +1 -1
  395. package/lib/construct-base.js +10 -10
  396. package/lib/duration.js +9 -9
  397. package/lib/errors.js +1 -1
  398. package/lib/expiration.js +1 -1
  399. package/lib/fs/ignore.js +4 -4
  400. package/lib/fs/index.js +1 -1
  401. package/lib/private/terraform-dependables-aspect.d.ts +1 -1
  402. package/lib/private/terraform-dependables-aspect.js +6 -6
  403. package/lib/private/unique-resource-name.js +3 -3
  404. package/lib/size.js +6 -6
  405. package/lib/stack-base.d.ts +2 -2
  406. package/lib/stack-base.js +16 -16
  407. package/lib/terra-func.d.ts +1 -1
  408. package/lib/terra-func.js +18 -18
  409. package/lib/time-zone.js +1 -1
  410. package/lib/token.js +5 -5
  411. package/package.json +17 -17
  412. package/setup.js +2 -2
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.PrefixList = exports.AddressFamily = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  // https://github.com/aws/aws-cdk/blob/v2.175.1/packages/aws-cdk-lib/aws-ec2/lib/prefix-list.ts
7
- const provider_aws_1 = require("@cdktf/provider-aws");
8
- const cdktf_1 = require("cdktf");
7
+ const provider_aws_1 = require("@cdktn/provider-aws");
8
+ const cdktn_1 = require("cdktn");
9
9
  const aws_construct_1 = require("../aws-construct");
10
10
  /**
11
11
  * The IP address type.
@@ -57,7 +57,7 @@ class PrefixList extends PrefixListBase {
57
57
  constructor(scope, id, props) {
58
58
  super(scope, id, props);
59
59
  const prefixListName = props?.prefixListName ??
60
- cdktf_1.Lazy.stringValue({
60
+ cdktn_1.Lazy.stringValue({
61
61
  produce: () => this.stack.uniqueResourceName(this, {
62
62
  maxLength: 255,
63
63
  allowedSpecialCharacters: ".-_",
@@ -110,5 +110,5 @@ class PrefixList extends PrefixListBase {
110
110
  }
111
111
  exports.PrefixList = PrefixList;
112
112
  _a = JSII_RTTI_SYMBOL_1;
113
- PrefixList[_a] = { fqn: "terraconstructs.aws.compute.PrefixList", version: "0.2.4" };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZml4LWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvcHJlZml4LWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrRkFBK0Y7QUFFL0Ysc0RBQTJEO0FBQzNELGlDQUE2QjtBQUU3QixvREFJMEI7QUE0QjFCOztHQUVHO0FBQ0gsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLCtCQUFjLENBQUE7SUFDZCwrQkFBYyxDQUFBO0FBQ2hCLENBQUMsRUFIVyxhQUFhLDZCQUFiLGFBQWEsUUFHeEI7QUEyQ0Q7O0dBRUc7QUFDSCxNQUFlLGNBQWUsU0FBUSxnQ0FBZ0I7SUFDcEQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0NBT0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxjQUFjO0lBQzVDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDNUIsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFlBQW9CO1FBRXBCLE1BQU0sTUFBTyxTQUFRLGdDQUFnQjtZQUFyQzs7Z0JBU2tCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1lBQzlDLENBQUM7WUFUQyxJQUFXLGlCQUFpQjtnQkFDMUIsT0FBTztvQkFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7aUJBQ2hDLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBVyxPQUFPO2dCQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNoQyxDQUFDO1NBRUY7UUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBMENELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVB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TyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDbkQsQ0FBQzs7QUFqSUgsZ0NBa0lDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjMi9saWIvcHJlZml4LWxpc3QudHNcblxuaW1wb3J0IHsgZWMyTWFuYWdlZFByZWZpeExpc3QgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgTGF6eSB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIElBd3NDb25zdHJ1Y3QsXG4gIEF3c0NvbnN0cnVjdEJhc2UsXG4gIEF3c0NvbnN0cnVjdFByb3BzLFxufSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZml4TGlzdE91dHB1dHMge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBwcmVmaXggbGlzdFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwcmVmaXhMaXN0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHByZWZpeCBsaXN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVByZWZpeExpc3QgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLyoqIHN0cm9uZ2x5IHR5cGVkIG91dHB1dHMgKi9cbiAgcmVhZG9ubHkgcHJlZml4TGlzdE91dHB1dHM6IFByZWZpeExpc3RPdXRwdXRzO1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBwcmVmaXggbGlzdFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwcmVmaXhMaXN0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgSVAgYWRkcmVzcyB0eXBlLlxuICovXG5leHBvcnQgZW51bSBBZGRyZXNzRmFtaWx5IHtcbiAgSVBfVjQgPSBcIklQdjRcIixcbiAgSVBfVjYgPSBcIklQdjZcIixcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGFkZCBhIHByZWZpeCBsaXN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZml4TGlzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgZm9yIHRoZSBwcmVmaXggbGlzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgQXV0b21hdGljYWxseS1jYWxjdWxhdGVkXG4gICAqL1xuICByZWFkb25seSBtYXhFbnRyaWVzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgcHJlZml4IGxpc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZml4TGlzdFByb3BzIGV4dGVuZHMgUHJlZml4TGlzdE9wdGlvbnMsIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBhZGRyZXNzIGZhbWlseSBvZiB0aGUgcHJlZml4IGxpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IEFkZHJlc3NGYW1pbHkuSVBfVjRcbiAgICovXG4gIHJlYWRvbmx5IGFkZHJlc3NGYW1pbHk/OiBBZGRyZXNzRmFtaWx5O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJlZml4IGxpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHVzZSBhbiBleHBsaWNpdCBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4TGlzdE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGVudHJpZXMgZm9yIHRoZSBwcmVmaXggbGlzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGVudHJpZXM/OiBlYzJNYW5hZ2VkUHJlZml4TGlzdC5FYzJNYW5hZ2VkUHJlZml4TGlzdEVudHJ5W107XG59XG5cbi8qKlxuICogVGhlIGJhc2UgY2xhc3MgZm9yIGEgcHJlZml4IGxpc3RcbiAqL1xuYWJzdHJhY3QgY2xhc3MgUHJlZml4TGlzdEJhc2UgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSVByZWZpeExpc3Qge1xuICBwdWJsaWMgZ2V0IHByZWZpeExpc3RPdXRwdXRzKCk6IFByZWZpeExpc3RPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlZml4TGlzdElkOiB0aGlzLnByZWZpeExpc3RJZCxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5wcmVmaXhMaXN0T3V0cHV0cztcbiAgfVxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBwcmVmaXggbGlzdFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcHJlZml4TGlzdElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBtYW5hZ2VkIHByZWZpeCBsaXN0LlxuICogQHJlc291cmNlIEFXUzo6RUMyOjpQcmVmaXhMaXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBQcmVmaXhMaXN0IGV4dGVuZHMgUHJlZml4TGlzdEJhc2Uge1xuICAvKipcbiAgICogTG9vayB1cCBwcmVmaXggbGlzdCBieSBpZC5cbiAgICpcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVByZWZpeExpc3RJZChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJlZml4TGlzdElkOiBzdHJpbmcsXG4gICk6IElQcmVmaXhMaXN0IHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSVByZWZpeExpc3Qge1xuICAgICAgcHVibGljIGdldCBwcmVmaXhMaXN0T3V0cHV0cygpOiBQcmVmaXhMaXN0T3V0cHV0cyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcHJlZml4TGlzdElkOiB0aGlzLnByZWZpeExpc3RJZCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZml4TGlzdE91dHB1dHM7XG4gICAgICB9XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcHJlZml4TGlzdElkID0gcHJlZml4TGlzdElkO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHByZWZpeCBsaXN0XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmVmaXhMaXN0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHByZWZpeCBsaXN0XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmVmaXhMaXN0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBwcmVmaXggbGlzdFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlZml4TGlzdEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb3duZXIgSUQgb2YgdGhlIHByZWZpeCBsaXN0XG4gICAqXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb3duZXJJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgcHJlZml4IGxpc3RcbiAgICpcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhZGRyZXNzIGZhbWlseSBvZiB0aGUgcHJlZml4IGxpc3RcbiAgICpcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhZGRyZXNzRmFtaWx5OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBlYzJNYW5hZ2VkUHJlZml4TGlzdC5FYzJNYW5hZ2VkUHJlZml4TGlzdDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IFByZWZpeExpc3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIGNvbnN0IHByZWZpeExpc3ROYW1lID1cbiAgICAgIHByb3BzPy5wcmVmaXhMaXN0TmFtZSA/P1xuICAgICAgTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+XG4gICAgICAgICAgdGhpcy5zdGFjay51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge1xuICAgICAgICAgICAgbWF4TGVuZ3RoOiAyNTUsXG4gICAgICAgICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiLi1fXCIsXG4gICAgICAgICAgfSksXG4gICAgICB9KTtcblxuICAgIGlmIChwcmVmaXhMaXN0TmFtZSkge1xuICAgICAgaWYgKHByZWZpeExpc3ROYW1lLnN0YXJ0c1dpdGgoXCJjb20uYW1hem9uYXdzXCIpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBuYW1lIGNhbm5vdCBzdGFydCB3aXRoICdjb20uYW1hem9uYXdzLidcIik7XG4gICAgICB9XG4gICAgICBpZiAocHJlZml4TGlzdE5hbWUubGVuZ3RoID4gMjU1KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkxlbmd0aHMgZXhjZWVkaW5nIDI1NSBjaGFyYWN0ZXJzIGNhbm5vdCBiZSBzZXQuXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucHJlZml4TGlzdE5hbWUgPSBwcmVmaXhMaXN0TmFtZTtcblxuICAgIGxldCBkZWZhdWx0TWF4RW50cmllcyA9IDE7XG4gICAgaWYgKHByb3BzPy5lbnRyaWVzICYmIHByb3BzLmVudHJpZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZW50cmllcyA9IHByb3BzLmVudHJpZXM7XG4gICAgICAvLyBSZWd1bGFyIGV4cHJlc3Npb25zIGZvciB2YWxpZGF0aW5nIElQdjYgYWRkcmVzc2VzXG4gICAgICBpZiAocHJvcHM/LmFkZHJlc3NGYW1pbHkgPT09IEFkZHJlc3NGYW1pbHkuSVBfVjYpIHtcbiAgICAgICAgY29uc3QgaXB2NlJlZ2V4ID1cbiAgICAgICAgICAvXnMqKCgoWzAtOUEtRmEtZl17MSw0fTopezd9KFswLTlBLUZhLWZdezEsNH18OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezZ9KDpbMC05QS1GYS1mXXsxLDR9fCgoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7NX0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSwyfSl8OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7NH0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSwzfSl8KCg6WzAtOUEtRmEtZl17MSw0fSk/OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezN9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNH0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsMn06KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Mn0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw1fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwzfTooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsxfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDZ9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDR9OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpfCg6KCgoOlswLTlBLUZhLWZdezEsNH0pezEsN30pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNX06KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pKXw6KSkpKCUuKyk/cyooXFwvKFswLTldfFsxLTldWzAtOV18MVswLTFdWzAtOV18MTJbMC04XSkpPyQvaTtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgaWYgKCFpcHY2UmVnZXgudGVzdChlbnRyeS5jaWRyKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIElQdjYgYWRkcmVzcyByYW5nZTogJHtlbnRyeS5jaWRyfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBSZWd1bGFyIGV4cHJlc3Npb25zIGZvciB2YWxpZGF0aW5nIElQdjQgYWRkcmVzc2VzXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpcHY0UmVnZXggPVxuICAgICAgICAgIC9eKFswLTldezEsM31cXC4pezN9WzAtOV17MSwzfShcXC8oWzAtOV18WzEtMl1bMC05XXwzWzAtMl0pKT8kL2k7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgIGlmICghaXB2NFJlZ2V4LnRlc3QoZW50cnkuY2lkcikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBJUHY0IGFkZHJlc3MgcmFuZ2U6ICR7ZW50cnkuY2lkcn1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZGVmYXVsdE1heEVudHJpZXMgPSBwcm9wcy5lbnRyaWVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGVjMk1hbmFnZWRQcmVmaXhMaXN0LkVjMk1hbmFnZWRQcmVmaXhMaXN0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzc0ZhbWlseTogcHJvcHM/LmFkZHJlc3NGYW1pbHkgfHwgQWRkcmVzc0ZhbWlseS5JUF9WNCxcbiAgICAgICAgbWF4RW50cmllczogcHJvcHM/Lm1heEVudHJpZXMgfHwgZGVmYXVsdE1heEVudHJpZXMsXG4gICAgICAgIG5hbWU6IHRoaXMucHJlZml4TGlzdE5hbWUsXG4gICAgICAgIGVudHJ5OiBwcm9wcz8uZW50cmllcyB8fCBbXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMucHJlZml4TGlzdElkID0gdGhpcy5yZXNvdXJjZS5pZDtcbiAgICB0aGlzLnByZWZpeExpc3RBcm4gPSB0aGlzLnJlc291cmNlLmFybjtcbiAgICB0aGlzLm93bmVySWQgPSB0aGlzLnJlc291cmNlLm93bmVySWQ7XG4gICAgdGhpcy52ZXJzaW9uID0gdGhpcy5yZXNvdXJjZS52ZXJzaW9uO1xuICAgIHRoaXMuYWRkcmVzc0ZhbWlseSA9IHRoaXMucmVzb3VyY2UuYWRkcmVzc0ZhbWlseTtcbiAgfVxufVxuIl19
113
+ PrefixList[_a] = { fqn: "terraconstructs.aws.compute.PrefixList", version: "0.2.6" };
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZml4LWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvcHJlZml4LWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrRkFBK0Y7QUFFL0Ysc0RBQTJEO0FBQzNELGlDQUE2QjtBQUU3QixvREFJMEI7QUE0QjFCOztHQUVHO0FBQ0gsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLCtCQUFjLENBQUE7SUFDZCwrQkFBYyxDQUFBO0FBQ2hCLENBQUMsRUFIVyxhQUFhLDZCQUFiLGFBQWEsUUFHeEI7QUEyQ0Q7O0dBRUc7QUFDSCxNQUFlLGNBQWUsU0FBUSxnQ0FBZ0I7SUFDcEQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0NBT0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxjQUFjO0lBQzVDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDNUIsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFlBQW9CO1FBRXBCLE1BQU0sTUFBTyxTQUFRLGdDQUFnQjtZQUFyQzs7Z0JBU2tCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1lBQzlDLENBQUM7WUFUQyxJQUFXLGlCQUFpQjtnQkFDMUIsT0FBTztvQkFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7aUJBQ2hDLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBVyxPQUFPO2dCQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNoQyxDQUFDO1NBRUY7UUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBMENELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVB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TyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDbkQsQ0FBQzs7QUFqSUgsZ0NBa0lDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjMi9saWIvcHJlZml4LWxpc3QudHNcblxuaW1wb3J0IHsgZWMyTWFuYWdlZFByZWZpeExpc3QgfSBmcm9tIFwiQGNka3RuL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgTGF6eSB9IGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIElBd3NDb25zdHJ1Y3QsXG4gIEF3c0NvbnN0cnVjdEJhc2UsXG4gIEF3c0NvbnN0cnVjdFByb3BzLFxufSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZml4TGlzdE91dHB1dHMge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBwcmVmaXggbGlzdFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwcmVmaXhMaXN0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHByZWZpeCBsaXN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVByZWZpeExpc3QgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLyoqIHN0cm9uZ2x5IHR5cGVkIG91dHB1dHMgKi9cbiAgcmVhZG9ubHkgcHJlZml4TGlzdE91dHB1dHM6IFByZWZpeExpc3RPdXRwdXRzO1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBwcmVmaXggbGlzdFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwcmVmaXhMaXN0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgSVAgYWRkcmVzcyB0eXBlLlxuICovXG5leHBvcnQgZW51bSBBZGRyZXNzRmFtaWx5IHtcbiAgSVBfVjQgPSBcIklQdjRcIixcbiAgSVBfVjYgPSBcIklQdjZcIixcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGFkZCBhIHByZWZpeCBsaXN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZml4TGlzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgZm9yIHRoZSBwcmVmaXggbGlzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgQXV0b21hdGljYWxseS1jYWxjdWxhdGVkXG4gICAqL1xuICByZWFkb25seSBtYXhFbnRyaWVzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgcHJlZml4IGxpc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZml4TGlzdFByb3BzIGV4dGVuZHMgUHJlZml4TGlzdE9wdGlvbnMsIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBhZGRyZXNzIGZhbWlseSBvZiB0aGUgcHJlZml4IGxpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IEFkZHJlc3NGYW1pbHkuSVBfVjRcbiAgICovXG4gIHJlYWRvbmx5IGFkZHJlc3NGYW1pbHk/OiBBZGRyZXNzRmFtaWx5O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJlZml4IGxpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHVzZSBhbiBleHBsaWNpdCBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4TGlzdE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGVudHJpZXMgZm9yIHRoZSBwcmVmaXggbGlzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGVudHJpZXM/OiBlYzJNYW5hZ2VkUHJlZml4TGlzdC5FYzJNYW5hZ2VkUHJlZml4TGlzdEVudHJ5W107XG59XG5cbi8qKlxuICogVGhlIGJhc2UgY2xhc3MgZm9yIGEgcHJlZml4IGxpc3RcbiAqL1xuYWJzdHJhY3QgY2xhc3MgUHJlZml4TGlzdEJhc2UgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSVByZWZpeExpc3Qge1xuICBwdWJsaWMgZ2V0IHByZWZpeExpc3RPdXRwdXRzKCk6IFByZWZpeExpc3RPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlZml4TGlzdElkOiB0aGlzLnByZWZpeExpc3RJZCxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5wcmVmaXhMaXN0T3V0cHV0cztcbiAgfVxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBwcmVmaXggbGlzdFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcHJlZml4TGlzdElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBtYW5hZ2VkIHByZWZpeCBsaXN0LlxuICogQHJlc291cmNlIEFXUzo6RUMyOjpQcmVmaXhMaXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBQcmVmaXhMaXN0IGV4dGVuZHMgUHJlZml4TGlzdEJhc2Uge1xuICAvKipcbiAgICogTG9vayB1cCBwcmVmaXggbGlzdCBieSBpZC5cbiAgICpcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVByZWZpeExpc3RJZChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJlZml4TGlzdElkOiBzdHJpbmcsXG4gICk6IElQcmVmaXhMaXN0IHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSVByZWZpeExpc3Qge1xuICAgICAgcHVibGljIGdldCBwcmVmaXhMaXN0T3V0cHV0cygpOiBQcmVmaXhMaXN0T3V0cHV0cyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcHJlZml4TGlzdElkOiB0aGlzLnByZWZpeExpc3RJZCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZml4TGlzdE91dHB1dHM7XG4gICAgICB9XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcHJlZml4TGlzdElkID0gcHJlZml4TGlzdElkO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHByZWZpeCBsaXN0XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmVmaXhMaXN0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHByZWZpeCBsaXN0XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmVmaXhMaXN0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBwcmVmaXggbGlzdFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlZml4TGlzdEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb3duZXIgSUQgb2YgdGhlIHByZWZpeCBsaXN0XG4gICAqXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb3duZXJJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgcHJlZml4IGxpc3RcbiAgICpcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhZGRyZXNzIGZhbWlseSBvZiB0aGUgcHJlZml4IGxpc3RcbiAgICpcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhZGRyZXNzRmFtaWx5OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBlYzJNYW5hZ2VkUHJlZml4TGlzdC5FYzJNYW5hZ2VkUHJlZml4TGlzdDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IFByZWZpeExpc3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIGNvbnN0IHByZWZpeExpc3ROYW1lID1cbiAgICAgIHByb3BzPy5wcmVmaXhMaXN0TmFtZSA/P1xuICAgICAgTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+XG4gICAgICAgICAgdGhpcy5zdGFjay51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge1xuICAgICAgICAgICAgbWF4TGVuZ3RoOiAyNTUsXG4gICAgICAgICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiLi1fXCIsXG4gICAgICAgICAgfSksXG4gICAgICB9KTtcblxuICAgIGlmIChwcmVmaXhMaXN0TmFtZSkge1xuICAgICAgaWYgKHByZWZpeExpc3ROYW1lLnN0YXJ0c1dpdGgoXCJjb20uYW1hem9uYXdzXCIpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBuYW1lIGNhbm5vdCBzdGFydCB3aXRoICdjb20uYW1hem9uYXdzLidcIik7XG4gICAgICB9XG4gICAgICBpZiAocHJlZml4TGlzdE5hbWUubGVuZ3RoID4gMjU1KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkxlbmd0aHMgZXhjZWVkaW5nIDI1NSBjaGFyYWN0ZXJzIGNhbm5vdCBiZSBzZXQuXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucHJlZml4TGlzdE5hbWUgPSBwcmVmaXhMaXN0TmFtZTtcblxuICAgIGxldCBkZWZhdWx0TWF4RW50cmllcyA9IDE7XG4gICAgaWYgKHByb3BzPy5lbnRyaWVzICYmIHByb3BzLmVudHJpZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZW50cmllcyA9IHByb3BzLmVudHJpZXM7XG4gICAgICAvLyBSZWd1bGFyIGV4cHJlc3Npb25zIGZvciB2YWxpZGF0aW5nIElQdjYgYWRkcmVzc2VzXG4gICAgICBpZiAocHJvcHM/LmFkZHJlc3NGYW1pbHkgPT09IEFkZHJlc3NGYW1pbHkuSVBfVjYpIHtcbiAgICAgICAgY29uc3QgaXB2NlJlZ2V4ID1cbiAgICAgICAgICAvXnMqKCgoWzAtOUEtRmEtZl17MSw0fTopezd9KFswLTlBLUZhLWZdezEsNH18OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezZ9KDpbMC05QS1GYS1mXXsxLDR9fCgoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7NX0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSwyfSl8OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7NH0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSwzfSl8KCg6WzAtOUEtRmEtZl17MSw0fSk/OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezN9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNH0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsMn06KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Mn0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw1fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwzfTooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsxfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDZ9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDR9OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpfCg6KCgoOlswLTlBLUZhLWZdezEsNH0pezEsN30pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNX06KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pKXw6KSkpKCUuKyk/cyooXFwvKFswLTldfFsxLTldWzAtOV18MVswLTFdWzAtOV18MTJbMC04XSkpPyQvaTtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgaWYgKCFpcHY2UmVnZXgudGVzdChlbnRyeS5jaWRyKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIElQdjYgYWRkcmVzcyByYW5nZTogJHtlbnRyeS5jaWRyfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBSZWd1bGFyIGV4cHJlc3Npb25zIGZvciB2YWxpZGF0aW5nIElQdjQgYWRkcmVzc2VzXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpcHY0UmVnZXggPVxuICAgICAgICAgIC9eKFswLTldezEsM31cXC4pezN9WzAtOV17MSwzfShcXC8oWzAtOV18WzEtMl1bMC05XXwzWzAtMl0pKT8kL2k7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgIGlmICghaXB2NFJlZ2V4LnRlc3QoZW50cnkuY2lkcikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBJUHY0IGFkZHJlc3MgcmFuZ2U6ICR7ZW50cnkuY2lkcn1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZGVmYXVsdE1heEVudHJpZXMgPSBwcm9wcy5lbnRyaWVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGVjMk1hbmFnZWRQcmVmaXhMaXN0LkVjMk1hbmFnZWRQcmVmaXhMaXN0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzc0ZhbWlseTogcHJvcHM/LmFkZHJlc3NGYW1pbHkgfHwgQWRkcmVzc0ZhbWlseS5JUF9WNCxcbiAgICAgICAgbWF4RW50cmllczogcHJvcHM/Lm1heEVudHJpZXMgfHwgZGVmYXVsdE1heEVudHJpZXMsXG4gICAgICAgIG5hbWU6IHRoaXMucHJlZml4TGlzdE5hbWUsXG4gICAgICAgIGVudHJ5OiBwcm9wcz8uZW50cmllcyB8fCBbXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMucHJlZml4TGlzdElkID0gdGhpcy5yZXNvdXJjZS5pZDtcbiAgICB0aGlzLnByZWZpeExpc3RBcm4gPSB0aGlzLnJlc291cmNlLmFybjtcbiAgICB0aGlzLm93bmVySWQgPSB0aGlzLnJlc291cmNlLm93bmVySWQ7XG4gICAgdGhpcy52ZXJzaW9uID0gdGhpcy5yZXNvdXJjZS52ZXJzaW9uO1xuICAgIHRoaXMuYWRkcmVzc0ZhbWlseSA9IHRoaXMucmVzb3VyY2UuYWRkcmVzc0ZhbWlseTtcbiAgfVxufVxuIl19
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.allowAllOutboundLocal = allowAllOutboundLocal;
4
- const provider_aws_1 = require("@cdktf/provider-aws");
5
- const cdktf_1 = require("cdktf");
4
+ const provider_aws_1 = require("@cdktn/provider-aws");
5
+ const cdktn_1 = require("cdktn");
6
6
  const aws_stack_1 = require("../../aws-stack");
7
7
  // https://github.com/aws/aws-cdk/blob/v2.175.1/packages/aws-cdk/lib/context-providers/security-groups.ts
8
8
  /**
@@ -11,7 +11,7 @@ const aws_stack_1 = require("../../aws-stack");
11
11
  * @internal
12
12
  */
13
13
  function allowAllOutboundLocal(scope, id, securityGroupId) {
14
- if (cdktf_1.Token.isUnresolved(id)) {
14
+ if (cdktn_1.Token.isUnresolved(id)) {
15
15
  throw new Error("All arguments to look up a security group must be concrete (no Tokens)");
16
16
  }
17
17
  const stack = aws_stack_1.AwsStack.ofAwsConstruct(scope);
@@ -28,16 +28,16 @@ function allowAllOutboundLocal(scope, id, securityGroupId) {
28
28
  },
29
29
  ],
30
30
  });
31
- const securityGroupRuleIterator = cdktf_1.TerraformIterator.fromList(securityGroupRulesLookup.ids);
31
+ const securityGroupRuleIterator = cdktn_1.TerraformIterator.fromList(securityGroupRulesLookup.ids);
32
32
  const securityGroupRules = new provider_aws_1.dataAwsVpcSecurityGroupRule.DataAwsVpcSecurityGroupRule(scope, `${conditionName}Rule`, {
33
33
  forEach: securityGroupRuleIterator,
34
34
  securityGroupRuleId: securityGroupRuleIterator.getString("id"),
35
35
  });
36
- const securityGroupRulesIterator = cdktf_1.TerraformIterator.fromDataSources(securityGroupRules);
36
+ const securityGroupRulesIterator = cdktn_1.TerraformIterator.fromDataSources(securityGroupRules);
37
37
  // isAllProtocols and some CidrIpv4 = "0.0.0.0/0"
38
38
  const AllTrafficCidrV4 = securityGroupRulesIterator.forExpressionForList("val.arn if val.ip_protocol = -1 && val.is_egress && cidr_ipv4 = '0.0.0.0/0'");
39
39
  // isAllProtocols and some CidrIpv6 = "::/0"
40
40
  const AllTrafficCidrV6 = securityGroupRulesIterator.forExpressionForList("val.arn if val.ip_protocol = -1 && val.is_egress && cidr_ipv6 = '::/0'");
41
- return new cdktf_1.TerraformLocal(stack, conditionName, `\${length(${AllTrafficCidrV4})}+\${length(${AllTrafficCidrV6})} > 0`).expression;
41
+ return new cdktn_1.TerraformLocal(stack, conditionName, `\${length(${AllTrafficCidrV4})}+\${length(${AllTrafficCidrV6})} > 0`).expression;
42
42
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3ByaXZhdGUvY29udGV4dC1zdHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esc0RBNERDO0FBMUVELHNEQUc2QjtBQUM3QixpQ0FBaUU7QUFFakUsK0NBQTJDO0FBRTNDLHlHQUF5RztBQUN6Rzs7OztHQUlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixlQUF1QjtJQUV2QixJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUNiLHdFQUF3RSxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLG9CQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQztJQUM5QyxNQUFNLHlCQUF5QixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUN2RCxhQUFhLENBQ0ksQ0FBQztJQUNwQixJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDOUIsT0FBTyx5QkFBeUIsQ0FBQyxVQUFVLENBQUM7SUFDOUMsQ0FBQztJQUVELE1BQU0sd0JBQXdCLEdBQzVCLElBQUksMkNBQTRCLENBQUMsNEJBQTRCLENBQzNELEtBQUssRUFDTCxHQUFHLGFBQWEsT0FBTyxFQUN2QjtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7YUFDMUI7U0FDRjtLQUNGLENBQ0YsQ0FBQztJQUNKLE1BQU0seUJBQXlCLEdBQUcseUJBQWlCLENBQUMsUUFBUSxDQUMxRCx3QkFBd0IsQ0FBQyxHQUFHLENBQzdCLENBQUM7SUFDRixNQUFNLGtCQUFrQixHQUN0QixJQUFJLDBDQUEyQixDQUFDLDJCQUEyQixDQUN6RCxLQUFLLEVBQ0wsR0FBRyxhQUFhLE1BQU0sRUFDdEI7UUFDRSxPQUFPLEVBQUUseUJBQXlCO1FBQ2xDLG1CQUFtQixFQUFFLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7S0FDL0QsQ0FDRixDQUFDO0lBRUosTUFBTSwwQkFBMEIsR0FDOUIseUJBQWlCLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDeEQsaURBQWlEO0lBQ2pELE1BQU0sZ0JBQWdCLEdBQUcsMEJBQTBCLENBQUMsb0JBQW9CLENBQ3RFLDZFQUE2RSxDQUM5RSxDQUFDO0lBQ0YsNENBQTRDO0lBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsMEJBQTBCLENBQUMsb0JBQW9CLENBQ3RFLHdFQUF3RSxDQUN6RSxDQUFDO0lBQ0YsT0FBTyxJQUFJLHNCQUFjLENBQ3ZCLEtBQUssRUFDTCxhQUFhLEVBQ2IsYUFBYSxnQkFBZ0IsZ0JBQWdCLGdCQUFnQixRQUFRLENBQ3RFLENBQUMsVUFBVSxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGRhdGFBd3NWcGNTZWN1cml0eUdyb3VwUnVsZXMsXG4gIGRhdGFBd3NWcGNTZWN1cml0eUdyb3VwUnVsZSxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IFRva2VuLCBUZXJyYWZvcm1Mb2NhbCwgVGVycmFmb3JtSXRlcmF0b3IgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi8uLi9hd3Mtc3RhY2tcIjtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay9saWIvY29udGV4dC1wcm92aWRlcnMvc2VjdXJpdHktZ3JvdXBzLnRzXG4vKipcbiAqIENyZWF0ZSBzaW5nbGV0b24gVGVycmFmb3JtTG9jYWwgZXhwcmVzc2lvbiB3aGljaCBkZXRlcm1pbmVzIGlmIGEgc2VjdXJpdHkgZ3JvdXAgYWxsb3dzIGFsbCBvdXRib3VuZCB0cmFmZmljXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd0FsbE91dGJvdW5kTG9jYWwoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHNlY3VyaXR5R3JvdXBJZDogc3RyaW5nLFxuKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoaWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJBbGwgYXJndW1lbnRzIHRvIGxvb2sgdXAgYSBzZWN1cml0eSBncm91cCBtdXN0IGJlIGNvbmNyZXRlIChubyBUb2tlbnMpXCIsXG4gICAgKTtcbiAgfVxuICBjb25zdCBzdGFjayA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKTtcbiAgY29uc3QgY29uZGl0aW9uTmFtZSA9IGAke2lkfUFsbG93QWxsT3V0Ym91bmRgO1xuICBjb25zdCBhbGxvd0FsbE91dGJvdW5kQ29uZGl0aW9uID0gc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoXG4gICAgY29uZGl0aW9uTmFtZSxcbiAgKSBhcyBUZXJyYWZvcm1Mb2NhbDtcbiAgaWYgKGFsbG93QWxsT3V0Ym91bmRDb25kaXRpb24pIHtcbiAgICByZXR1cm4gYWxsb3dBbGxPdXRib3VuZENvbmRpdGlvbi5leHByZXNzaW9uO1xuICB9XG5cbiAgY29uc3Qgc2VjdXJpdHlHcm91cFJ1bGVzTG9va3VwID1cbiAgICBuZXcgZGF0YUF3c1ZwY1NlY3VyaXR5R3JvdXBSdWxlcy5EYXRhQXdzVnBjU2VjdXJpdHlHcm91cFJ1bGVzKFxuICAgICAgc3RhY2ssXG4gICAgICBgJHtjb25kaXRpb25OYW1lfVJ1bGVzYCxcbiAgICAgIHtcbiAgICAgICAgZmlsdGVyOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJncm91cC1pZFwiLFxuICAgICAgICAgICAgdmFsdWVzOiBbc2VjdXJpdHlHcm91cElkXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICApO1xuICBjb25zdCBzZWN1cml0eUdyb3VwUnVsZUl0ZXJhdG9yID0gVGVycmFmb3JtSXRlcmF0b3IuZnJvbUxpc3QoXG4gICAgc2VjdXJpdHlHcm91cFJ1bGVzTG9va3VwLmlkcyxcbiAgKTtcbiAgY29uc3Qgc2VjdXJpdHlHcm91cFJ1bGVzID1cbiAgICBuZXcgZGF0YUF3c1ZwY1NlY3VyaXR5R3JvdXBSdWxlLkRhdGFBd3NWcGNTZWN1cml0eUdyb3VwUnVsZShcbiAgICAgIHNjb3BlLFxuICAgICAgYCR7Y29uZGl0aW9uTmFtZX1SdWxlYCxcbiAgICAgIHtcbiAgICAgICAgZm9yRWFjaDogc2VjdXJpdHlHcm91cFJ1bGVJdGVyYXRvcixcbiAgICAgICAgc2VjdXJpdHlHcm91cFJ1bGVJZDogc2VjdXJpdHlHcm91cFJ1bGVJdGVyYXRvci5nZXRTdHJpbmcoXCJpZFwiKSxcbiAgICAgIH0sXG4gICAgKTtcblxuICBjb25zdCBzZWN1cml0eUdyb3VwUnVsZXNJdGVyYXRvciA9XG4gICAgVGVycmFmb3JtSXRlcmF0b3IuZnJvbURhdGFTb3VyY2VzKHNlY3VyaXR5R3JvdXBSdWxlcyk7XG4gIC8vIGlzQWxsUHJvdG9jb2xzIGFuZCBzb21lIENpZHJJcHY0ID0gXCIwLjAuMC4wLzBcIlxuICBjb25zdCBBbGxUcmFmZmljQ2lkclY0ID0gc2VjdXJpdHlHcm91cFJ1bGVzSXRlcmF0b3IuZm9yRXhwcmVzc2lvbkZvckxpc3QoXG4gICAgXCJ2YWwuYXJuIGlmIHZhbC5pcF9wcm90b2NvbCA9IC0xICYmIHZhbC5pc19lZ3Jlc3MgJiYgY2lkcl9pcHY0ID0gJzAuMC4wLjAvMCdcIixcbiAgKTtcbiAgLy8gaXNBbGxQcm90b2NvbHMgYW5kIHNvbWUgQ2lkcklwdjYgPSBcIjo6LzBcIlxuICBjb25zdCBBbGxUcmFmZmljQ2lkclY2ID0gc2VjdXJpdHlHcm91cFJ1bGVzSXRlcmF0b3IuZm9yRXhwcmVzc2lvbkZvckxpc3QoXG4gICAgXCJ2YWwuYXJuIGlmIHZhbC5pcF9wcm90b2NvbCA9IC0xICYmIHZhbC5pc19lZ3Jlc3MgJiYgY2lkcl9pcHY2ID0gJzo6LzAnXCIsXG4gICk7XG4gIHJldHVybiBuZXcgVGVycmFmb3JtTG9jYWwoXG4gICAgc3RhY2ssXG4gICAgY29uZGl0aW9uTmFtZSxcbiAgICBgXFwke2xlbmd0aCgke0FsbFRyYWZmaWNDaWRyVjR9KX0rXFwke2xlbmd0aCgke0FsbFRyYWZmaWNDaWRyVjZ9KX0gPiAwYCxcbiAgKS5leHByZXNzaW9uO1xufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3ByaXZhdGUvY29udGV4dC1zdHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esc0RBNERDO0FBMUVELHNEQUc2QjtBQUM3QixpQ0FBaUU7QUFFakUsK0NBQTJDO0FBRTNDLHlHQUF5RztBQUN6Rzs7OztHQUlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixlQUF1QjtJQUV2QixJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUNiLHdFQUF3RSxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLG9CQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQztJQUM5QyxNQUFNLHlCQUF5QixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUN2RCxhQUFhLENBQ0ksQ0FBQztJQUNwQixJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDOUIsT0FBTyx5QkFBeUIsQ0FBQyxVQUFVLENBQUM7SUFDOUMsQ0FBQztJQUVELE1BQU0sd0JBQXdCLEdBQzVCLElBQUksMkNBQTRCLENBQUMsNEJBQTRCLENBQzNELEtBQUssRUFDTCxHQUFHLGFBQWEsT0FBTyxFQUN2QjtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7YUFDMUI7U0FDRjtLQUNGLENBQ0YsQ0FBQztJQUNKLE1BQU0seUJBQXlCLEdBQUcseUJBQWlCLENBQUMsUUFBUSxDQUMxRCx3QkFBd0IsQ0FBQyxHQUFHLENBQzdCLENBQUM7SUFDRixNQUFNLGtCQUFrQixHQUN0QixJQUFJLDBDQUEyQixDQUFDLDJCQUEyQixDQUN6RCxLQUFLLEVBQ0wsR0FBRyxhQUFhLE1BQU0sRUFDdEI7UUFDRSxPQUFPLEVBQUUseUJBQXlCO1FBQ2xDLG1CQUFtQixFQUFFLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7S0FDL0QsQ0FDRixDQUFDO0lBRUosTUFBTSwwQkFBMEIsR0FDOUIseUJBQWlCLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDeEQsaURBQWlEO0lBQ2pELE1BQU0sZ0JBQWdCLEdBQUcsMEJBQTBCLENBQUMsb0JBQW9CLENBQ3RFLDZFQUE2RSxDQUM5RSxDQUFDO0lBQ0YsNENBQTRDO0lBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsMEJBQTBCLENBQUMsb0JBQW9CLENBQ3RFLHdFQUF3RSxDQUN6RSxDQUFDO0lBQ0YsT0FBTyxJQUFJLHNCQUFjLENBQ3ZCLEtBQUssRUFDTCxhQUFhLEVBQ2IsYUFBYSxnQkFBZ0IsZ0JBQWdCLGdCQUFnQixRQUFRLENBQ3RFLENBQUMsVUFBVSxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGRhdGFBd3NWcGNTZWN1cml0eUdyb3VwUnVsZXMsXG4gIGRhdGFBd3NWcGNTZWN1cml0eUdyb3VwUnVsZSxcbn0gZnJvbSBcIkBjZGt0bi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IFRva2VuLCBUZXJyYWZvcm1Mb2NhbCwgVGVycmFmb3JtSXRlcmF0b3IgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi8uLi9hd3Mtc3RhY2tcIjtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay9saWIvY29udGV4dC1wcm92aWRlcnMvc2VjdXJpdHktZ3JvdXBzLnRzXG4vKipcbiAqIENyZWF0ZSBzaW5nbGV0b24gVGVycmFmb3JtTG9jYWwgZXhwcmVzc2lvbiB3aGljaCBkZXRlcm1pbmVzIGlmIGEgc2VjdXJpdHkgZ3JvdXAgYWxsb3dzIGFsbCBvdXRib3VuZCB0cmFmZmljXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd0FsbE91dGJvdW5kTG9jYWwoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHNlY3VyaXR5R3JvdXBJZDogc3RyaW5nLFxuKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoaWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJBbGwgYXJndW1lbnRzIHRvIGxvb2sgdXAgYSBzZWN1cml0eSBncm91cCBtdXN0IGJlIGNvbmNyZXRlIChubyBUb2tlbnMpXCIsXG4gICAgKTtcbiAgfVxuICBjb25zdCBzdGFjayA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKTtcbiAgY29uc3QgY29uZGl0aW9uTmFtZSA9IGAke2lkfUFsbG93QWxsT3V0Ym91bmRgO1xuICBjb25zdCBhbGxvd0FsbE91dGJvdW5kQ29uZGl0aW9uID0gc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoXG4gICAgY29uZGl0aW9uTmFtZSxcbiAgKSBhcyBUZXJyYWZvcm1Mb2NhbDtcbiAgaWYgKGFsbG93QWxsT3V0Ym91bmRDb25kaXRpb24pIHtcbiAgICByZXR1cm4gYWxsb3dBbGxPdXRib3VuZENvbmRpdGlvbi5leHByZXNzaW9uO1xuICB9XG5cbiAgY29uc3Qgc2VjdXJpdHlHcm91cFJ1bGVzTG9va3VwID1cbiAgICBuZXcgZGF0YUF3c1ZwY1NlY3VyaXR5R3JvdXBSdWxlcy5EYXRhQXdzVnBjU2VjdXJpdHlHcm91cFJ1bGVzKFxuICAgICAgc3RhY2ssXG4gICAgICBgJHtjb25kaXRpb25OYW1lfVJ1bGVzYCxcbiAgICAgIHtcbiAgICAgICAgZmlsdGVyOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJncm91cC1pZFwiLFxuICAgICAgICAgICAgdmFsdWVzOiBbc2VjdXJpdHlHcm91cElkXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICApO1xuICBjb25zdCBzZWN1cml0eUdyb3VwUnVsZUl0ZXJhdG9yID0gVGVycmFmb3JtSXRlcmF0b3IuZnJvbUxpc3QoXG4gICAgc2VjdXJpdHlHcm91cFJ1bGVzTG9va3VwLmlkcyxcbiAgKTtcbiAgY29uc3Qgc2VjdXJpdHlHcm91cFJ1bGVzID1cbiAgICBuZXcgZGF0YUF3c1ZwY1NlY3VyaXR5R3JvdXBSdWxlLkRhdGFBd3NWcGNTZWN1cml0eUdyb3VwUnVsZShcbiAgICAgIHNjb3BlLFxuICAgICAgYCR7Y29uZGl0aW9uTmFtZX1SdWxlYCxcbiAgICAgIHtcbiAgICAgICAgZm9yRWFjaDogc2VjdXJpdHlHcm91cFJ1bGVJdGVyYXRvcixcbiAgICAgICAgc2VjdXJpdHlHcm91cFJ1bGVJZDogc2VjdXJpdHlHcm91cFJ1bGVJdGVyYXRvci5nZXRTdHJpbmcoXCJpZFwiKSxcbiAgICAgIH0sXG4gICAgKTtcblxuICBjb25zdCBzZWN1cml0eUdyb3VwUnVsZXNJdGVyYXRvciA9XG4gICAgVGVycmFmb3JtSXRlcmF0b3IuZnJvbURhdGFTb3VyY2VzKHNlY3VyaXR5R3JvdXBSdWxlcyk7XG4gIC8vIGlzQWxsUHJvdG9jb2xzIGFuZCBzb21lIENpZHJJcHY0ID0gXCIwLjAuMC4wLzBcIlxuICBjb25zdCBBbGxUcmFmZmljQ2lkclY0ID0gc2VjdXJpdHlHcm91cFJ1bGVzSXRlcmF0b3IuZm9yRXhwcmVzc2lvbkZvckxpc3QoXG4gICAgXCJ2YWwuYXJuIGlmIHZhbC5pcF9wcm90b2NvbCA9IC0xICYmIHZhbC5pc19lZ3Jlc3MgJiYgY2lkcl9pcHY0ID0gJzAuMC4wLjAvMCdcIixcbiAgKTtcbiAgLy8gaXNBbGxQcm90b2NvbHMgYW5kIHNvbWUgQ2lkcklwdjYgPSBcIjo6LzBcIlxuICBjb25zdCBBbGxUcmFmZmljQ2lkclY2ID0gc2VjdXJpdHlHcm91cFJ1bGVzSXRlcmF0b3IuZm9yRXhwcmVzc2lvbkZvckxpc3QoXG4gICAgXCJ2YWwuYXJuIGlmIHZhbC5pcF9wcm90b2NvbCA9IC0xICYmIHZhbC5pc19lZ3Jlc3MgJiYgY2lkcl9pcHY2ID0gJzo6LzAnXCIsXG4gICk7XG4gIHJldHVybiBuZXcgVGVycmFmb3JtTG9jYWwoXG4gICAgc3RhY2ssXG4gICAgY29uZGl0aW9uTmFtZSxcbiAgICBgXFwke2xlbmd0aCgke0FsbFRyYWZmaWNDaWRyVjR9KX0rXFwke2xlbmd0aCgke0FsbFRyYWZmaWNDaWRyVjZ9KX0gPiAwYCxcbiAgKS5leHByZXNzaW9uO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { instance, launchTemplate } from "@cdktf/provider-aws";
1
+ import { instance, launchTemplate } from "@cdktn/provider-aws";
2
2
  import { Construct } from "constructs";
3
3
  import { AmazonLinuxVirt } from "../machine-image/common";
4
4
  import { BlockDevice } from "../volume";
@@ -6,7 +6,7 @@ exports.launchTemplateBlockDeviceMappings = launchTemplateBlockDeviceMappings;
6
6
  exports.instanceEphemeralBlockDeviceMappings = instanceEphemeralBlockDeviceMappings;
7
7
  exports.instanceRootBlockDeviceMapping = instanceRootBlockDeviceMapping;
8
8
  exports.isRootBlockDevice = isRootBlockDevice;
9
- const cdktf_1 = require("cdktf");
9
+ const cdktn_1 = require("cdktn");
10
10
  const common_1 = require("../machine-image/common");
11
11
  const volume_1 = require("../volume");
12
12
  function instanceEbsBlockDeviceMappings(construct, blockDevices, tags) {
@@ -105,7 +105,7 @@ function blockDeviceCommon(construct, volume) {
105
105
  volumeType !== volume_1.EbsDeviceVolumeType.IO2 &&
106
106
  volumeType !== volume_1.EbsDeviceVolumeType.GP3) {
107
107
  // "@aws-cdk/aws-ec2:iopsIgnored",
108
- cdktf_1.Annotations.of(construct).addWarning("iops will be ignored without volumeType: IO1, IO2, or GP3");
108
+ cdktn_1.Annotations.of(construct).addWarning("iops will be ignored without volumeType: IO1, IO2, or GP3");
109
109
  }
110
110
  /**
111
111
  * Because the Ebs properties of the L2 Constructs do not match the Ebs properties
@@ -138,4 +138,4 @@ function isRootBlockDevice(blockDevice, virtType = common_1.AmazonLinuxVirt.HVM)
138
138
  function isEphemeral(blockDevice) {
139
139
  return blockDevice.volume.isEphemeral();
140
140
  }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWJzLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvcHJpdmF0ZS9lYnMtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0dBQW9HOztBQVdwRyx3RUFrQkM7QUFFRCw4RUErQkM7QUFFRCxvRkFZQztBQUVELHdFQWNDO0FBNEVELDhDQWFDO0FBbExELGlDQUdlO0FBRWYsb0RBQTBEO0FBQzFELHNDQUFnRjtBQUVoRixTQUFnQiw4QkFBOEIsQ0FDNUMsU0FBb0IsRUFDcEIsWUFBMkIsRUFDM0IsSUFBNkI7SUFFN0IsTUFBTSxNQUFNLEdBQXNDLEVBQUUsQ0FBQztJQUNyRCxZQUFZO1NBQ1QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZELE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1FBQ3ZCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ1YsVUFBVTtZQUNWLEdBQUcsTUFBTTtZQUNULElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ2xELENBQUM7QUFFRCxTQUFnQixpQ0FBaUMsQ0FDL0MsU0FBb0IsRUFDcEIsWUFBMkI7SUFFM0IsTUFBTSxNQUFNLEdBQXVELEVBQUUsQ0FBQztJQUN0RSxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLE1B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QywyREFBMkQsQ0FDNUQsQ0FBQztRQUNKLENBQUM7UUFFRDs7O1dBR0c7UUFFSCxPQUFPO1lBQ0wsR0FBRyxJQUFJO1lBQ1AsSUFBSTtZQUNKLFVBQVU7WUFDVixVQUFVO1lBQ1YsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNO1NBQ3pCLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsV0FBd0IsRUFDeEIsV0FBNEIsd0JBQWUsQ0FBQyxHQUFHO0lBRS9DLFFBQVEsUUFBUSxFQUFFLENBQUM7UUFDakIsS0FBSyx3QkFBZSxDQUFDLEdBQUc7WUFDdEIsT0FBTyxDQUNMLFdBQVcsQ0FBQyxVQUFVLEtBQUssV0FBVztnQkFDdEMsV0FBVyxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQ3ZDLENBQUM7UUFDSixLQUFLLHdCQUFlLENBQUMsRUFBRTtZQUNyQixPQUFPLFdBQVcsQ0FBQyxVQUFVLEtBQUssV0FBVyxDQUFDO0lBQ2xELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsV0FBd0I7SUFHM0MsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWMyL2xpYi9wcml2YXRlL2Vicy11dGlsLnRzXG5cbmltcG9ydCB7IGluc3RhbmNlLCBsYXVuY2hUZW1wbGF0ZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQge1xuICBBbm5vdGF0aW9ucyxcbiAgLy9JUmVzb2x2YWJsZVxufSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBbWF6b25MaW51eFZpcnQgfSBmcm9tIFwiLi4vbWFjaGluZS1pbWFnZS9jb21tb25cIjtcbmltcG9ydCB7IEJsb2NrRGV2aWNlLCBCbG9ja0RldmljZVZvbHVtZSwgRWJzRGV2aWNlVm9sdW1lVHlwZSB9IGZyb20gXCIuLi92b2x1bWVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlRWJzQmxvY2tEZXZpY2VNYXBwaW5ncyhcbiAgY29uc3RydWN0OiBDb25zdHJ1Y3QsXG4gIGJsb2NrRGV2aWNlczogQmxvY2tEZXZpY2VbXSxcbiAgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBpbnN0YW5jZS5JbnN0YW5jZUVic0Jsb2NrRGV2aWNlW10gfCB1bmRlZmluZWQge1xuICBjb25zdCByZXN1bHQ6IGluc3RhbmNlLkluc3RhbmNlRWJzQmxvY2tEZXZpY2VbXSA9IFtdO1xuICBibG9ja0RldmljZXNcbiAgICAuZmlsdGVyKCh4KSA9PiAhaXNFcGhlbWVyYWwoeCkgJiYgIWlzUm9vdEJsb2NrRGV2aWNlKHgpKVxuICAgIC5mb3JFYWNoKChibG9ja0RldmljZSkgPT4ge1xuICAgICAgY29uc3QgeyBkZXZpY2VOYW1lLCB2b2x1bWUgfSA9IGJsb2NrRGV2aWNlO1xuICAgICAgY29uc3QgY29tbW9uID0gYmxvY2tEZXZpY2VDb21tb24oY29uc3RydWN0LCB2b2x1bWUpO1xuICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICBkZXZpY2VOYW1lLFxuICAgICAgICAuLi5jb21tb24sXG4gICAgICAgIHRhZ3MsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPT09IDAgPyB1bmRlZmluZWQgOiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYXVuY2hUZW1wbGF0ZUJsb2NrRGV2aWNlTWFwcGluZ3MoXG4gIGNvbnN0cnVjdDogQ29uc3RydWN0LFxuICBibG9ja0RldmljZXM6IEJsb2NrRGV2aWNlW10sXG4pOiBsYXVuY2hUZW1wbGF0ZS5MYXVuY2hUZW1wbGF0ZUJsb2NrRGV2aWNlTWFwcGluZ3NbXSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHJlc3VsdDogbGF1bmNoVGVtcGxhdGUuTGF1bmNoVGVtcGxhdGVCbG9ja0RldmljZU1hcHBpbmdzW10gPSBbXTtcbiAgZm9yIChjb25zdCBibG9ja0RldmljZSBvZiBibG9ja0RldmljZXMpIHtcbiAgICBjb25zdCB7IGRldmljZU5hbWUsIHZvbHVtZSwgbWFwcGluZ0VuYWJsZWQgfSA9IGJsb2NrRGV2aWNlO1xuICAgIGNvbnN0IGNvbW1vbiA9IGJsb2NrRGV2aWNlQ29tbW9uKGNvbnN0cnVjdCwgdm9sdW1lKTtcbiAgICAvLyBjb252ZXJ0IEVic0Jsb2NrVm9sdW1lIGNvbW1vbiBwcm9wZXJ0aWVzIGZvciBMYXVuY2hUZW1wbGF0ZUJsb2NrRGV2aWNlTWFwcGluZ3NcbiAgICBjb25zdCBkZWxldGVPblRlcm1pbmF0aW9uID1cbiAgICAgIGNvbW1vbj8uZGVsZXRlT25UZXJtaW5hdGlvbiAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gY29tbW9uLmRlbGV0ZU9uVGVybWluYXRpb24udG9TdHJpbmcoKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBlbmNyeXB0ZWQgPVxuICAgICAgY29tbW9uPy5lbmNyeXB0ZWQgIT09IHVuZGVmaW5lZCA/IGNvbW1vbi5lbmNyeXB0ZWQudG9TdHJpbmcoKSA6IHVuZGVmaW5lZDtcbiAgICByZXN1bHQucHVzaCh7XG4gICAgICBkZXZpY2VOYW1lLFxuICAgICAgbm9EZXZpY2U6IG1hcHBpbmdFbmFibGVkID09PSBmYWxzZSA/IFwiXCIgOiB1bmRlZmluZWQsXG4gICAgICB2aXJ0dWFsTmFtZTogdm9sdW1lLnZpcnR1YWxOYW1lLFxuICAgICAgLi4uKHZvbHVtZS52aXJ0dWFsTmFtZVxuICAgICAgICA/IHt9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgZWJzOiB7XG4gICAgICAgICAgICAgIC4uLmNvbW1vbixcbiAgICAgICAgICAgICAgZW5jcnlwdGVkLFxuICAgICAgICAgICAgICBkZWxldGVPblRlcm1pbmF0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlRXBoZW1lcmFsQmxvY2tEZXZpY2VNYXBwaW5ncyhcbiAgYmxvY2tEZXZpY2VzOiBCbG9ja0RldmljZVtdLFxuKTogaW5zdGFuY2UuSW5zdGFuY2VFcGhlbWVyYWxCbG9ja0RldmljZVtdIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZXBoZW1lcmFsQmxvY2tEZXZpY2VzID0gYmxvY2tEZXZpY2VzXG4gICAgLmZpbHRlcihpc0VwaGVtZXJhbClcbiAgICAubWFwKChibG9ja0RldmljZSkgPT4ge1xuICAgICAgY29uc3QgeyBkZXZpY2VOYW1lLCB2b2x1bWUsIG1hcHBpbmdFbmFibGVkIH0gPSBibG9ja0RldmljZTtcbiAgICAgIGNvbnN0IG5vRGV2aWNlID0gbWFwcGluZ0VuYWJsZWQgPT09IGZhbHNlO1xuICAgICAgY29uc3QgdmlydHVhbE5hbWUgPSBub0RldmljZSA/IHZvbHVtZS52aXJ0dWFsTmFtZSA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB7IGRldmljZU5hbWUsIHZpcnR1YWxOYW1lLCBub0RldmljZSB9O1xuICAgIH0pO1xuICByZXR1cm4gZXBoZW1lcmFsQmxvY2tEZXZpY2VzLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IGVwaGVtZXJhbEJsb2NrRGV2aWNlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlUm9vdEJsb2NrRGV2aWNlTWFwcGluZyhcbiAgY29uc3RydWN0OiBDb25zdHJ1Y3QsXG4gIGJsb2NrRGV2aWNlczogQmxvY2tEZXZpY2VbXSxcbiAgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBpbnN0YW5jZS5JbnN0YW5jZVJvb3RCbG9ja0RldmljZSB8IHVuZGVmaW5lZCB7XG4gIGZvciAoY29uc3QgYmxvY2tEZXZpY2Ugb2YgYmxvY2tEZXZpY2VzKSB7XG4gICAgaWYgKGlzUm9vdEJsb2NrRGV2aWNlKGJsb2NrRGV2aWNlKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYmxvY2tEZXZpY2VDb21tb24oY29uc3RydWN0LCBibG9ja0RldmljZS52b2x1bWUpLFxuICAgICAgICB0YWdzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gYmxvY2tEZXZpY2VDb21tb24oY29uc3RydWN0OiBDb25zdHJ1Y3QsIHZvbHVtZTogQmxvY2tEZXZpY2VWb2x1bWUpIHtcbiAgY29uc3QgeyBlYnNEZXZpY2U6IGVicyB9ID0gdm9sdW1lO1xuICBpZiAoZWJzKSB7XG4gICAgY29uc3QgeyBpb3BzLCB0aHJvdWdocHV0LCB2b2x1bWVUeXBlLCBrbXNLZXksIC4uLnJlc3QgfSA9IGVicztcblxuICAgIGlmICh0aHJvdWdocHV0KSB7XG4gICAgICBpZiAodm9sdW1lVHlwZSAhPT0gRWJzRGV2aWNlVm9sdW1lVHlwZS5HUDMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGAndGhyb3VnaHB1dCcgcmVxdWlyZXMgJ3ZvbHVtZVR5cGUnOiAke0Vic0RldmljZVZvbHVtZVR5cGUuR1AzfSwgZ290OiAke3ZvbHVtZVR5cGV9LmAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih0aHJvdWdocHV0KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCd0aHJvdWdocHV0JyBtdXN0IGJlIGFuIGludGVnZXIsIGdvdDogJHt0aHJvdWdocHV0fS5gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRocm91Z2hwdXQgPCAxMjUgfHwgdGhyb3VnaHB1dCA+IDEwMDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGAndGhyb3VnaHB1dCcgbXVzdCBiZSBiZXR3ZWVuIDEyNSBhbmQgMTAwMCwgZ290ICR7dGhyb3VnaHB1dH0uYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWF4aW11bVRocm91Z2hwdXRSYXRpbyA9IDAuMjU7XG4gICAgICBpZiAoaW9wcykge1xuICAgICAgICBjb25zdCBpb3BzUmF0aW8gPSB0aHJvdWdocHV0IC8gaW9wcztcbiAgICAgICAgaWYgKGlvcHNSYXRpbyA+IG1heGltdW1UaHJvdWdocHV0UmF0aW8pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhyb3VnaHB1dCAoTWlCcHMpIHRvIGlvcHMgcmF0aW8gb2YgJHtpb3BzUmF0aW99IGlzIHRvbyBoaWdoOyBtYXhpbXVtIGlzICR7bWF4aW11bVRocm91Z2hwdXRSYXRpb30gTWlCcHMgcGVyIGlvcHNgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWlvcHMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdm9sdW1lVHlwZSA9PT0gRWJzRGV2aWNlVm9sdW1lVHlwZS5JTzEgfHxcbiAgICAgICAgdm9sdW1lVHlwZSA9PT0gRWJzRGV2aWNlVm9sdW1lVHlwZS5JTzJcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJpb3BzIHByb3BlcnR5IGlzIHJlcXVpcmVkIHdpdGggdm9sdW1lVHlwZTogRWJzRGV2aWNlVm9sdW1lVHlwZS5JTzEgYW5kIEVic0RldmljZVZvbHVtZVR5cGUuSU8yXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHZvbHVtZVR5cGUgIT09IEVic0RldmljZVZvbHVtZVR5cGUuSU8xICYmXG4gICAgICB2b2x1bWVUeXBlICE9PSBFYnNEZXZpY2VWb2x1bWVUeXBlLklPMiAmJlxuICAgICAgdm9sdW1lVHlwZSAhPT0gRWJzRGV2aWNlVm9sdW1lVHlwZS5HUDNcbiAgICApIHtcbiAgICAgIC8vIFwiQGF3cy1jZGsvYXdzLWVjMjppb3BzSWdub3JlZFwiLFxuICAgICAgQW5ub3RhdGlvbnMub2YoY29uc3RydWN0KS5hZGRXYXJuaW5nKFxuICAgICAgICBcImlvcHMgd2lsbCBiZSBpZ25vcmVkIHdpdGhvdXQgdm9sdW1lVHlwZTogSU8xLCBJTzIsIG9yIEdQM1wiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCZWNhdXNlIHRoZSBFYnMgcHJvcGVydGllcyBvZiB0aGUgTDIgQ29uc3RydWN0cyBkbyBub3QgbWF0Y2ggdGhlIEVicyBwcm9wZXJ0aWVzXG4gICAgICogb2YgdGhlIFRGICpCbG9ja0RldmljZSBzdHJ1Y3RzLCB3ZSBoYXZlIHRvIGRvIHNvbWUgdHJhbnNmb3JtYXRpb25cbiAgICAgKi9cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXN0LFxuICAgICAgaW9wcyxcbiAgICAgIHRocm91Z2hwdXQsXG4gICAgICB2b2x1bWVUeXBlLFxuICAgICAga21zS2V5SWQ6IGttc0tleT8ua2V5QXJuLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBkZXZpY2UgbmFtZSBpcyB0aGUgcmVzZXJ2ZWQgbmFtZSBmb3Igcm9vdCB2b2x1bWUuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZGV2aWNlX25hbWluZy5odG1sI2F2YWlsYWJsZS1lYzItZGV2aWNlLW5hbWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Jvb3RCbG9ja0RldmljZShcbiAgYmxvY2tEZXZpY2U6IEJsb2NrRGV2aWNlLFxuICB2aXJ0VHlwZTogQW1hem9uTGludXhWaXJ0ID0gQW1hem9uTGludXhWaXJ0LkhWTSxcbik6IGJvb2xlYW4ge1xuICBzd2l0Y2ggKHZpcnRUeXBlKSB7XG4gICAgY2FzZSBBbWF6b25MaW51eFZpcnQuSFZNOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgYmxvY2tEZXZpY2UuZGV2aWNlTmFtZSA9PT0gXCIvZGV2L3NkYTFcIiB8fFxuICAgICAgICBibG9ja0RldmljZS5kZXZpY2VOYW1lID09PSBcIi9kZXYveHZkYVwiXG4gICAgICApO1xuICAgIGNhc2UgQW1hem9uTGludXhWaXJ0LlBWOlxuICAgICAgcmV0dXJuIGJsb2NrRGV2aWNlLmRldmljZU5hbWUgPT09IFwiL2Rldi9zZGExXCI7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNFcGhlbWVyYWwoYmxvY2tEZXZpY2U6IEJsb2NrRGV2aWNlKTogYmxvY2tEZXZpY2UgaXMgQmxvY2tEZXZpY2UgJiB7XG4gIHZvbHVtZTogQmxvY2tEZXZpY2VWb2x1bWUgJiB7IHZpcnR1YWxOYW1lOiBzdHJpbmcgfTtcbn0ge1xuICByZXR1cm4gYmxvY2tEZXZpY2Uudm9sdW1lLmlzRXBoZW1lcmFsKCk7XG59XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWJzLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvcHJpdmF0ZS9lYnMtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0dBQW9HOztBQVdwRyx3RUFrQkM7QUFFRCw4RUErQkM7QUFFRCxvRkFZQztBQUVELHdFQWNDO0FBNEVELDhDQWFDO0FBbExELGlDQUdlO0FBRWYsb0RBQTBEO0FBQzFELHNDQUFnRjtBQUVoRixTQUFnQiw4QkFBOEIsQ0FDNUMsU0FBb0IsRUFDcEIsWUFBMkIsRUFDM0IsSUFBNkI7SUFFN0IsTUFBTSxNQUFNLEdBQXNDLEVBQUUsQ0FBQztJQUNyRCxZQUFZO1NBQ1QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZELE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1FBQ3ZCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ1YsVUFBVTtZQUNWLEdBQUcsTUFBTTtZQUNULElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ2xELENBQUM7QUFFRCxTQUFnQixpQ0FBaUMsQ0FDL0MsU0FBb0IsRUFDcEIsWUFBMkI7SUFFM0IsTUFBTSxNQUFNLEdBQXVELEVBQUUsQ0FBQztJQUN0RSxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLE1B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QywyREFBMkQsQ0FDNUQsQ0FBQztRQUNKLENBQUM7UUFFRDs7O1dBR0c7UUFFSCxPQUFPO1lBQ0wsR0FBRyxJQUFJO1lBQ1AsSUFBSTtZQUNKLFVBQVU7WUFDVixVQUFVO1lBQ1YsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNO1NBQ3pCLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsV0FBd0IsRUFDeEIsV0FBNEIsd0JBQWUsQ0FBQyxHQUFHO0lBRS9DLFFBQVEsUUFBUSxFQUFFLENBQUM7UUFDakIsS0FBSyx3QkFBZSxDQUFDLEdBQUc7WUFDdEIsT0FBTyxDQUNMLFdBQVcsQ0FBQyxVQUFVLEtBQUssV0FBVztnQkFDdEMsV0FBVyxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQ3ZDLENBQUM7UUFDSixLQUFLLHdCQUFlLENBQUMsRUFBRTtZQUNyQixPQUFPLFdBQVcsQ0FBQyxVQUFVLEtBQUssV0FBVyxDQUFDO0lBQ2xELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsV0FBd0I7SUFHM0MsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWMyL2xpYi9wcml2YXRlL2Vicy11dGlsLnRzXG5cbmltcG9ydCB7IGluc3RhbmNlLCBsYXVuY2hUZW1wbGF0ZSB9IGZyb20gXCJAY2RrdG4vcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQge1xuICBBbm5vdGF0aW9ucyxcbiAgLy9JUmVzb2x2YWJsZVxufSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBbWF6b25MaW51eFZpcnQgfSBmcm9tIFwiLi4vbWFjaGluZS1pbWFnZS9jb21tb25cIjtcbmltcG9ydCB7IEJsb2NrRGV2aWNlLCBCbG9ja0RldmljZVZvbHVtZSwgRWJzRGV2aWNlVm9sdW1lVHlwZSB9IGZyb20gXCIuLi92b2x1bWVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlRWJzQmxvY2tEZXZpY2VNYXBwaW5ncyhcbiAgY29uc3RydWN0OiBDb25zdHJ1Y3QsXG4gIGJsb2NrRGV2aWNlczogQmxvY2tEZXZpY2VbXSxcbiAgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBpbnN0YW5jZS5JbnN0YW5jZUVic0Jsb2NrRGV2aWNlW10gfCB1bmRlZmluZWQge1xuICBjb25zdCByZXN1bHQ6IGluc3RhbmNlLkluc3RhbmNlRWJzQmxvY2tEZXZpY2VbXSA9IFtdO1xuICBibG9ja0RldmljZXNcbiAgICAuZmlsdGVyKCh4KSA9PiAhaXNFcGhlbWVyYWwoeCkgJiYgIWlzUm9vdEJsb2NrRGV2aWNlKHgpKVxuICAgIC5mb3JFYWNoKChibG9ja0RldmljZSkgPT4ge1xuICAgICAgY29uc3QgeyBkZXZpY2VOYW1lLCB2b2x1bWUgfSA9IGJsb2NrRGV2aWNlO1xuICAgICAgY29uc3QgY29tbW9uID0gYmxvY2tEZXZpY2VDb21tb24oY29uc3RydWN0LCB2b2x1bWUpO1xuICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICBkZXZpY2VOYW1lLFxuICAgICAgICAuLi5jb21tb24sXG4gICAgICAgIHRhZ3MsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPT09IDAgPyB1bmRlZmluZWQgOiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYXVuY2hUZW1wbGF0ZUJsb2NrRGV2aWNlTWFwcGluZ3MoXG4gIGNvbnN0cnVjdDogQ29uc3RydWN0LFxuICBibG9ja0RldmljZXM6IEJsb2NrRGV2aWNlW10sXG4pOiBsYXVuY2hUZW1wbGF0ZS5MYXVuY2hUZW1wbGF0ZUJsb2NrRGV2aWNlTWFwcGluZ3NbXSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHJlc3VsdDogbGF1bmNoVGVtcGxhdGUuTGF1bmNoVGVtcGxhdGVCbG9ja0RldmljZU1hcHBpbmdzW10gPSBbXTtcbiAgZm9yIChjb25zdCBibG9ja0RldmljZSBvZiBibG9ja0RldmljZXMpIHtcbiAgICBjb25zdCB7IGRldmljZU5hbWUsIHZvbHVtZSwgbWFwcGluZ0VuYWJsZWQgfSA9IGJsb2NrRGV2aWNlO1xuICAgIGNvbnN0IGNvbW1vbiA9IGJsb2NrRGV2aWNlQ29tbW9uKGNvbnN0cnVjdCwgdm9sdW1lKTtcbiAgICAvLyBjb252ZXJ0IEVic0Jsb2NrVm9sdW1lIGNvbW1vbiBwcm9wZXJ0aWVzIGZvciBMYXVuY2hUZW1wbGF0ZUJsb2NrRGV2aWNlTWFwcGluZ3NcbiAgICBjb25zdCBkZWxldGVPblRlcm1pbmF0aW9uID1cbiAgICAgIGNvbW1vbj8uZGVsZXRlT25UZXJtaW5hdGlvbiAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gY29tbW9uLmRlbGV0ZU9uVGVybWluYXRpb24udG9TdHJpbmcoKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBlbmNyeXB0ZWQgPVxuICAgICAgY29tbW9uPy5lbmNyeXB0ZWQgIT09IHVuZGVmaW5lZCA/IGNvbW1vbi5lbmNyeXB0ZWQudG9TdHJpbmcoKSA6IHVuZGVmaW5lZDtcbiAgICByZXN1bHQucHVzaCh7XG4gICAgICBkZXZpY2VOYW1lLFxuICAgICAgbm9EZXZpY2U6IG1hcHBpbmdFbmFibGVkID09PSBmYWxzZSA/IFwiXCIgOiB1bmRlZmluZWQsXG4gICAgICB2aXJ0dWFsTmFtZTogdm9sdW1lLnZpcnR1YWxOYW1lLFxuICAgICAgLi4uKHZvbHVtZS52aXJ0dWFsTmFtZVxuICAgICAgICA/IHt9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgZWJzOiB7XG4gICAgICAgICAgICAgIC4uLmNvbW1vbixcbiAgICAgICAgICAgICAgZW5jcnlwdGVkLFxuICAgICAgICAgICAgICBkZWxldGVPblRlcm1pbmF0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlRXBoZW1lcmFsQmxvY2tEZXZpY2VNYXBwaW5ncyhcbiAgYmxvY2tEZXZpY2VzOiBCbG9ja0RldmljZVtdLFxuKTogaW5zdGFuY2UuSW5zdGFuY2VFcGhlbWVyYWxCbG9ja0RldmljZVtdIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZXBoZW1lcmFsQmxvY2tEZXZpY2VzID0gYmxvY2tEZXZpY2VzXG4gICAgLmZpbHRlcihpc0VwaGVtZXJhbClcbiAgICAubWFwKChibG9ja0RldmljZSkgPT4ge1xuICAgICAgY29uc3QgeyBkZXZpY2VOYW1lLCB2b2x1bWUsIG1hcHBpbmdFbmFibGVkIH0gPSBibG9ja0RldmljZTtcbiAgICAgIGNvbnN0IG5vRGV2aWNlID0gbWFwcGluZ0VuYWJsZWQgPT09IGZhbHNlO1xuICAgICAgY29uc3QgdmlydHVhbE5hbWUgPSBub0RldmljZSA/IHZvbHVtZS52aXJ0dWFsTmFtZSA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB7IGRldmljZU5hbWUsIHZpcnR1YWxOYW1lLCBub0RldmljZSB9O1xuICAgIH0pO1xuICByZXR1cm4gZXBoZW1lcmFsQmxvY2tEZXZpY2VzLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IGVwaGVtZXJhbEJsb2NrRGV2aWNlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlUm9vdEJsb2NrRGV2aWNlTWFwcGluZyhcbiAgY29uc3RydWN0OiBDb25zdHJ1Y3QsXG4gIGJsb2NrRGV2aWNlczogQmxvY2tEZXZpY2VbXSxcbiAgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBpbnN0YW5jZS5JbnN0YW5jZVJvb3RCbG9ja0RldmljZSB8IHVuZGVmaW5lZCB7XG4gIGZvciAoY29uc3QgYmxvY2tEZXZpY2Ugb2YgYmxvY2tEZXZpY2VzKSB7XG4gICAgaWYgKGlzUm9vdEJsb2NrRGV2aWNlKGJsb2NrRGV2aWNlKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYmxvY2tEZXZpY2VDb21tb24oY29uc3RydWN0LCBibG9ja0RldmljZS52b2x1bWUpLFxuICAgICAgICB0YWdzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gYmxvY2tEZXZpY2VDb21tb24oY29uc3RydWN0OiBDb25zdHJ1Y3QsIHZvbHVtZTogQmxvY2tEZXZpY2VWb2x1bWUpIHtcbiAgY29uc3QgeyBlYnNEZXZpY2U6IGVicyB9ID0gdm9sdW1lO1xuICBpZiAoZWJzKSB7XG4gICAgY29uc3QgeyBpb3BzLCB0aHJvdWdocHV0LCB2b2x1bWVUeXBlLCBrbXNLZXksIC4uLnJlc3QgfSA9IGVicztcblxuICAgIGlmICh0aHJvdWdocHV0KSB7XG4gICAgICBpZiAodm9sdW1lVHlwZSAhPT0gRWJzRGV2aWNlVm9sdW1lVHlwZS5HUDMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGAndGhyb3VnaHB1dCcgcmVxdWlyZXMgJ3ZvbHVtZVR5cGUnOiAke0Vic0RldmljZVZvbHVtZVR5cGUuR1AzfSwgZ290OiAke3ZvbHVtZVR5cGV9LmAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih0aHJvdWdocHV0KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCd0aHJvdWdocHV0JyBtdXN0IGJlIGFuIGludGVnZXIsIGdvdDogJHt0aHJvdWdocHV0fS5gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRocm91Z2hwdXQgPCAxMjUgfHwgdGhyb3VnaHB1dCA+IDEwMDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGAndGhyb3VnaHB1dCcgbXVzdCBiZSBiZXR3ZWVuIDEyNSBhbmQgMTAwMCwgZ290ICR7dGhyb3VnaHB1dH0uYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWF4aW11bVRocm91Z2hwdXRSYXRpbyA9IDAuMjU7XG4gICAgICBpZiAoaW9wcykge1xuICAgICAgICBjb25zdCBpb3BzUmF0aW8gPSB0aHJvdWdocHV0IC8gaW9wcztcbiAgICAgICAgaWYgKGlvcHNSYXRpbyA+IG1heGltdW1UaHJvdWdocHV0UmF0aW8pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhyb3VnaHB1dCAoTWlCcHMpIHRvIGlvcHMgcmF0aW8gb2YgJHtpb3BzUmF0aW99IGlzIHRvbyBoaWdoOyBtYXhpbXVtIGlzICR7bWF4aW11bVRocm91Z2hwdXRSYXRpb30gTWlCcHMgcGVyIGlvcHNgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWlvcHMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdm9sdW1lVHlwZSA9PT0gRWJzRGV2aWNlVm9sdW1lVHlwZS5JTzEgfHxcbiAgICAgICAgdm9sdW1lVHlwZSA9PT0gRWJzRGV2aWNlVm9sdW1lVHlwZS5JTzJcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJpb3BzIHByb3BlcnR5IGlzIHJlcXVpcmVkIHdpdGggdm9sdW1lVHlwZTogRWJzRGV2aWNlVm9sdW1lVHlwZS5JTzEgYW5kIEVic0RldmljZVZvbHVtZVR5cGUuSU8yXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHZvbHVtZVR5cGUgIT09IEVic0RldmljZVZvbHVtZVR5cGUuSU8xICYmXG4gICAgICB2b2x1bWVUeXBlICE9PSBFYnNEZXZpY2VWb2x1bWVUeXBlLklPMiAmJlxuICAgICAgdm9sdW1lVHlwZSAhPT0gRWJzRGV2aWNlVm9sdW1lVHlwZS5HUDNcbiAgICApIHtcbiAgICAgIC8vIFwiQGF3cy1jZGsvYXdzLWVjMjppb3BzSWdub3JlZFwiLFxuICAgICAgQW5ub3RhdGlvbnMub2YoY29uc3RydWN0KS5hZGRXYXJuaW5nKFxuICAgICAgICBcImlvcHMgd2lsbCBiZSBpZ25vcmVkIHdpdGhvdXQgdm9sdW1lVHlwZTogSU8xLCBJTzIsIG9yIEdQM1wiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCZWNhdXNlIHRoZSBFYnMgcHJvcGVydGllcyBvZiB0aGUgTDIgQ29uc3RydWN0cyBkbyBub3QgbWF0Y2ggdGhlIEVicyBwcm9wZXJ0aWVzXG4gICAgICogb2YgdGhlIFRGICpCbG9ja0RldmljZSBzdHJ1Y3RzLCB3ZSBoYXZlIHRvIGRvIHNvbWUgdHJhbnNmb3JtYXRpb25cbiAgICAgKi9cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXN0LFxuICAgICAgaW9wcyxcbiAgICAgIHRocm91Z2hwdXQsXG4gICAgICB2b2x1bWVUeXBlLFxuICAgICAga21zS2V5SWQ6IGttc0tleT8ua2V5QXJuLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBkZXZpY2UgbmFtZSBpcyB0aGUgcmVzZXJ2ZWQgbmFtZSBmb3Igcm9vdCB2b2x1bWUuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZGV2aWNlX25hbWluZy5odG1sI2F2YWlsYWJsZS1lYzItZGV2aWNlLW5hbWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Jvb3RCbG9ja0RldmljZShcbiAgYmxvY2tEZXZpY2U6IEJsb2NrRGV2aWNlLFxuICB2aXJ0VHlwZTogQW1hem9uTGludXhWaXJ0ID0gQW1hem9uTGludXhWaXJ0LkhWTSxcbik6IGJvb2xlYW4ge1xuICBzd2l0Y2ggKHZpcnRUeXBlKSB7XG4gICAgY2FzZSBBbWF6b25MaW51eFZpcnQuSFZNOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgYmxvY2tEZXZpY2UuZGV2aWNlTmFtZSA9PT0gXCIvZGV2L3NkYTFcIiB8fFxuICAgICAgICBibG9ja0RldmljZS5kZXZpY2VOYW1lID09PSBcIi9kZXYveHZkYVwiXG4gICAgICApO1xuICAgIGNhc2UgQW1hem9uTGludXhWaXJ0LlBWOlxuICAgICAgcmV0dXJuIGJsb2NrRGV2aWNlLmRldmljZU5hbWUgPT09IFwiL2Rldi9zZGExXCI7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNFcGhlbWVyYWwoYmxvY2tEZXZpY2U6IEJsb2NrRGV2aWNlKTogYmxvY2tEZXZpY2UgaXMgQmxvY2tEZXZpY2UgJiB7XG4gIHZvbHVtZTogQmxvY2tEZXZpY2VWb2x1bWUgJiB7IHZpcnR1YWxOYW1lOiBzdHJpbmcgfTtcbn0ge1xuICByZXR1cm4gYmxvY2tEZXZpY2Uudm9sdW1lLmlzRXBoZW1lcmFsKCk7XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { IResolvable, IResolveContext } from "cdktf";
1
+ import { IResolvable, IResolveContext } from "cdktn";
2
2
  export declare class JsonPathToken implements IResolvable {
3
3
  readonly path: string;
4
4
  static isJsonPathToken(x: IResolvable): x is JsonPathToken;
@@ -8,7 +8,7 @@ exports.jsonPathString = jsonPathString;
8
8
  exports.jsonPathFromAny = jsonPathFromAny;
9
9
  exports.renderInExpression = renderInExpression;
10
10
  // https://github.com/aws/aws-cdk/blob/v2.160.0/packages/aws-cdk-lib/aws-stepfunctions/lib/private/json-path.ts
11
- const cdktf_1 = require("cdktf");
11
+ const cdktn_1 = require("cdktn");
12
12
  const intrinstics_1 = require("./intrinstics");
13
13
  const JSON_PATH_TOKEN_SYMBOL = Symbol.for("terraconstructs/lib/aws/compute.JsonPathToken");
14
14
  class JsonPathToken {
@@ -28,7 +28,7 @@ class JsonPathToken {
28
28
  return this.path;
29
29
  }
30
30
  toString() {
31
- return cdktf_1.Token.asString(this, { displayHint: this.displayHint });
31
+ return cdktn_1.Token.asString(this, { displayHint: this.displayHint });
32
32
  }
33
33
  toJSON() {
34
34
  return `<path:${this.path}>`;
@@ -144,7 +144,7 @@ function recurseObject(obj, handlers, visited = []) {
144
144
  // Nothing
145
145
  }
146
146
  else if (typeof value === "object") {
147
- if (cdktf_1.Tokenization.isResolvable(value)) {
147
+ if (cdktn_1.Tokenization.isResolvable(value)) {
148
148
  Object.assign(ret, handlers.handleResolvable(key, value));
149
149
  }
150
150
  else {
@@ -261,7 +261,7 @@ function renderBoolean(key, value) {
261
261
  * Otherwise return undefined.
262
262
  */
263
263
  function jsonPathString(x) {
264
- const fragments = cdktf_1.Tokenization.reverseString(x);
264
+ const fragments = cdktn_1.Tokenization.reverseString(x);
265
265
  const jsonPathTokens = fragments.tokens.filter(JsonPathToken.isJsonPathToken);
266
266
  if (jsonPathTokens.length > 0 && fragments.length > 1) {
267
267
  throw new Error(`Field references must be the entire string, cannot concatenate them (found '${x}')`);
@@ -278,7 +278,7 @@ function jsonPathFromAny(x) {
278
278
  if (typeof x === "string") {
279
279
  return jsonPathString(x);
280
280
  }
281
- const resolvables = cdktf_1.Tokenization.reverse(x);
281
+ const resolvables = cdktn_1.Tokenization.reverse(x);
282
282
  if (resolvables.length === 1) {
283
283
  return pathFromToken(resolvables[0]);
284
284
  }
@@ -294,7 +294,7 @@ function jsonPathFromAny(x) {
294
294
  * Otherwise return undefined.
295
295
  */
296
296
  function jsonPathStringList(x) {
297
- return pathFromToken(cdktf_1.Tokenization.reverseList(x));
297
+ return pathFromToken(cdktn_1.Tokenization.reverseList(x));
298
298
  }
299
299
  /**
300
300
  * If the indicated number is an encoded JSON path, return the path
@@ -302,7 +302,7 @@ function jsonPathStringList(x) {
302
302
  * Otherwise return undefined.
303
303
  */
304
304
  function jsonPathNumber(x) {
305
- return pathFromToken(cdktf_1.Tokenization.reverseNumber(x));
305
+ return pathFromToken(cdktn_1.Tokenization.reverseNumber(x));
306
306
  }
307
307
  function pathFromToken(token) {
308
308
  return (token && (JsonPathToken.isJsonPathToken(token) ? token.path : undefined));
@@ -348,4 +348,4 @@ function singleQuotestring(x) {
348
348
  ret.push("'");
349
349
  return ret.join("");
350
350
  }
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3ByaXZhdGUvanNvbi1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXlDQSxvQ0FRQztBQUtELGtEQXNDQztBQTRDRCxzQ0E4Q0M7QUF3SUQsd0NBYUM7QUFFRCwwQ0FrQkM7QUFxQ0QsZ0RBTUM7QUExWUQsK0dBQStHO0FBQy9HLGlDQUEwRTtBQUMxRSwrQ0FBcUU7QUFFckUsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUN2QywrQ0FBK0MsQ0FDaEQsQ0FBQztBQUVGLE1BQWEsYUFBYTtJQUNqQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQWM7UUFDMUMsT0FBUSxDQUFTLENBQUMsc0JBQXNCLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUtELFlBQTRCLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ3RDLCtCQUErQjtRQUMvQixtSEFBbUg7UUFDbkgscUdBQXFHO1FBQ3JHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQXFCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sYUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFP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RyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTYwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMvbGliL3ByaXZhdGUvanNvbi1wYXRoLnRzXG5pbXBvcnQgeyBUb2tlbiwgSVJlc29sdmFibGUsIElSZXNvbHZlQ29udGV4dCwgVG9rZW5pemF0aW9uIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBJbnRyaW5zaWNQYXJzZXIsIEludHJpbnNpY0V4cHJlc3Npb24gfSBmcm9tIFwiLi9pbnRyaW5zdGljc1wiO1xuXG5jb25zdCBKU09OX1BBVEhfVE9LRU5fU1lNQk9MID0gU3ltYm9sLmZvcihcbiAgXCJ0ZXJyYWNvbnN0cnVjdHMvbGliL2F3cy9jb21wdXRlLkpzb25QYXRoVG9rZW5cIixcbik7XG5cbmV4cG9ydCBjbGFzcyBKc29uUGF0aFRva2VuIGltcGxlbWVudHMgSVJlc29sdmFibGUge1xuICBwdWJsaWMgc3RhdGljIGlzSnNvblBhdGhUb2tlbih4OiBJUmVzb2x2YWJsZSk6IHggaXMgSnNvblBhdGhUb2tlbiB7XG4gICAgcmV0dXJuICh4IGFzIGFueSlbSlNPTl9QQVRIX1RPS0VOX1NZTUJPTF0gPT09IHRydWU7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRpb25TdGFjazogc3RyaW5nW107XG4gIHB1YmxpYyBkaXNwbGF5SGludDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmcpIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgc3RhY2sgdHJhY2VzXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC45L3BhY2thZ2VzL2Nka3RmL2xpYi90b2tlbnMvcHJpdmF0ZS9zdGFjay10cmFjZS50cyNMOVxuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTYwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvc3RhY2stdHJhY2UudHMjTDIyXG4gICAgdGhpcy5jcmVhdGlvblN0YWNrID0gW1wic3RhY2sgdHJhY2VzIGRpc2FibGVkXCJdO1xuICAgIHRoaXMuZGlzcGxheUhpbnQgPSBwYXRoLnJlcGxhY2UoL15bXmEtekEtWl0rLywgXCJcIik7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIEpTT05fUEFUSF9UT0tFTl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZShfY3R4OiBJUmVzb2x2ZUNvbnRleHQpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnBhdGg7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHRoaXMsIHsgZGlzcGxheUhpbnQ6IHRoaXMuZGlzcGxheUhpbnQgfSk7XG4gIH1cblxuICBwdWJsaWMgdG9KU09OKCkge1xuICAgIHJldHVybiBgPHBhdGg6JHt0aGlzLnBhdGh9PmA7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWVwIHJlbmRlciBhIEpTT04gb2JqZWN0IHRvIGV4cGFuZCBKU09OIHBhdGggZmllbGRzLCB1cGRhdGluZyB0aGUga2V5IHRvIGVuZCBpbiAnLiQnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJPYmplY3Qob2JqOiBvYmplY3QgfCB1bmRlZmluZWQpOiBvYmplY3QgfCB1bmRlZmluZWQge1xuICByZXR1cm4gcmVjdXJzZU9iamVjdChvYmosIHtcbiAgICBoYW5kbGVTdHJpbmc6IHJlbmRlclN0cmluZyxcbiAgICBoYW5kbGVMaXN0OiByZW5kZXJTdHJpbmdMaXN0LFxuICAgIGhhbmRsZU51bWJlcjogcmVuZGVyTnVtYmVyLFxuICAgIGhhbmRsZUJvb2xlYW46IHJlbmRlckJvb2xlYW4sXG4gICAgaGFuZGxlUmVzb2x2YWJsZTogcmVuZGVyUmVzb2x2YWJsZSxcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0dXJuIGFsbCBKU09OIHBhdGhzIHRoYXQgYXJlIHVzZWQgaW4gdGhlIGdpdmVuIHN0cnVjdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFJlZmVyZW5jZWRQYXRocyhvYmo6IG9iamVjdCB8IHVuZGVmaW5lZCk6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgZm91bmQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICByZWN1cnNlT2JqZWN0KG9iaiwge1xuICAgIGhhbmRsZVN0cmluZyhfa2V5OiBzdHJpbmcsIHg6IHN0cmluZykge1xuICAgICAgZm9yIChjb25zdCBwIG9mIGZpbmRQYXRoc0luSW50cmluc2ljRnVuY3Rpb25zKGpzb25QYXRoU3RyaW5nKHgpKSkge1xuICAgICAgICBmb3VuZC5hZGQocCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfSxcblxuICAgIGhhbmRsZUxpc3QoX2tleTogc3RyaW5nLCB4OiBzdHJpbmdbXSkge1xuICAgICAgZm9yIChjb25zdCBwIG9mIGZpbmRQYXRoc0luSW50cmluc2ljRnVuY3Rpb25zKGpzb25QYXRoU3RyaW5nTGlzdCh4KSkpIHtcbiAgICAgICAgZm91bmQuYWRkKHApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG5cbiAgICBoYW5kbGVOdW1iZXIoX2tleTogc3RyaW5nLCB4OiBudW1iZXIpIHtcbiAgICAgIGZvciAoY29uc3QgcCBvZiBmaW5kUGF0aHNJbkludHJpbnNpY0Z1bmN0aW9ucyhqc29uUGF0aE51bWJlcih4KSkpIHtcbiAgICAgICAgZm91bmQuYWRkKHApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG5cbiAgICBoYW5kbGVCb29sZWFuKF9rZXk6IHN0cmluZywgX3g6IGJvb2xlYW4pIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9LFxuXG4gICAgaGFuZGxlUmVzb2x2YWJsZShfa2V5OiBzdHJpbmcsIHg6IElSZXNvbHZhYmxlKSB7XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgZmluZFBhdGhzSW5JbnRyaW5zaWNGdW5jdGlvbnMoanNvblBhdGhGcm9tQW55KHgpKSkge1xuICAgICAgICBmb3VuZC5hZGQocCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIGZvdW5kO1xufVxuXG4vKipcbiAqIEZyb20gYW4gZXhwcmVzc2lvbiwgcmV0dXJuIHRoZSBsaXN0IG9mIEpTT04gcGF0aHMgcmVmZXJlbmNlZCBpbiBpdFxuICovXG5mdW5jdGlvbiBmaW5kUGF0aHNJbkludHJpbnNpY0Z1bmN0aW9ucyhleHByZXNzaW9uPzogc3RyaW5nKTogc3RyaW5nW10ge1xuICBpZiAoIWV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gbmV3IEludHJpbnNpY1BhcnNlcihleHByZXNzaW9uKS5wYXJzZVRvcExldmVsSW50cmluc2ljKCk7XG4gICAgcmVjdXJzZShwYXJzZWQpO1xuICAgIHJldHVybiByZXQ7XG4gIH0gY2F0Y2gge1xuICAgIC8vIE5vdCBzdXJlIHRoYXQgb3VyIHBhcnNpbmcgaXMgMTAwJSBjb3JyZWN0LiBXZSBkb24ndCB3YW50IHRvIGJyZWFrIGFueW9uZSwgc29cbiAgICAvLyBmYWxsIGJhY2sgdG8gbGVnYWN5IGJlaGF2aW9yIGlmIHdlIGNhbid0IHBhcnNlIHRoaXMgc3RyaW5nLlxuICAgIHJldHVybiBbZXhwcmVzc2lvbl07XG4gIH1cblxuICBmdW5jdGlvbiByZWN1cnNlKHA6IEludHJpbnNpY0V4cHJlc3Npb24pIHtcbiAgICBzd2l0Y2ggKHAudHlwZSkge1xuICAgICAgY2FzZSBcInBhdGhcIjpcbiAgICAgICAgcmV0LnB1c2gocC5wYXRoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJmbmNhbGxcIjpcbiAgICAgICAgZm9yIChjb25zdCBhcmcgb2YgcC5hcmd1bWVudHMpIHtcbiAgICAgICAgICByZWN1cnNlKGFyZyk7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuaW50ZXJmYWNlIEZpZWxkSGFuZGxlcnMge1xuICBoYW5kbGVTdHJpbmcoa2V5OiBzdHJpbmcsIHg6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIGhhbmRsZUxpc3Qoa2V5OiBzdHJpbmcsIHg6IHN0cmluZ1tdKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB8IHN0cmluZyB9O1xuICBoYW5kbGVOdW1iZXIoa2V5OiBzdHJpbmcsIHg6IG51bWJlcik6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgc3RyaW5nIH07XG4gIGhhbmRsZUJvb2xlYW4oa2V5OiBzdHJpbmcsIHg6IGJvb2xlYW4pOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgaGFuZGxlUmVzb2x2YWJsZShrZXk6IHN0cmluZywgeDogSVJlc29sdmFibGUpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVjdXJzZU9iamVjdChcbiAgb2JqOiBvYmplY3QgfCB1bmRlZmluZWQsXG4gIGhhbmRsZXJzOiBGaWVsZEhhbmRsZXJzLFxuICB2aXNpdGVkOiBvYmplY3RbXSA9IFtdLFxuKTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgLy8gSWYgdGhlIGFyZ3VtZW50IHJlY2VpdmVkIGlzIG5vdCBhY3R1YWxseSBhbiBvYmplY3QgKHN0cmluZywgbnVtYmVyLCBib29sZWFuLCB1bmRlZmluZWQsIC4uLikgb3IgbnVsbFxuICAvLyBqdXN0IHJldHVybiBpdCBhcyBpcyBhcyB0aGVyZSdzIG5vdGhpbmcgdG8gYmUgcmVuZGVyZWQuIFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGluIHRoZSBvcmlnaW5hbCBjYWxsIHRvXG4gIC8vIHJlY3Vyc2VPYmplY3QgYXMgYW55IHJlY3Vyc2l2ZSBjYWxscyB0byBpdCBhcmUgY2hlY2tpbmcgZm9yIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGxcbiAgaWYgKHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgfHwgb2JqID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8vIEF2b2lkaW5nIGluZmluaXRlIHJlY3Vyc2lvblxuICBpZiAodmlzaXRlZC5pbmNsdWRlcyhvYmopKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8gTWFya2luZyBjdXJyZW50IG9iamVjdCBhcyB2aXNpdGVkIGZvciB0aGUgY3VycmVudCByZWN1cnNpb24gcGF0aFxuICB2aXNpdGVkLnB1c2gob2JqKTtcblxuICBjb25zdCByZXQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgT2JqZWN0LmFzc2lnbihyZXQsIGhhbmRsZXJzLmhhbmRsZVN0cmluZyhrZXksIHZhbHVlKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBoYW5kbGVycy5oYW5kbGVOdW1iZXIoa2V5LCB2YWx1ZSkpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCByZWN1cnNlQXJyYXkoa2V5LCB2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBoYW5kbGVycy5oYW5kbGVCb29sZWFuKGtleSwgdmFsdWUpKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIE5vdGhpbmdcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgaWYgKFRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUodmFsdWUpKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBoYW5kbGVycy5oYW5kbGVSZXNvbHZhYmxlKGtleSwgdmFsdWUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldFtrZXldID0gcmVjdXJzZU9iamVjdCh2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92aW5nIGZyb20gdmlzaXRlZCBhZnRlciBsZWF2aW5nIHRoZSBjdXJyZW50IHJlY3Vyc2lvbiBwYXRoXG4gIC8vIEFsbG93aW5nIGl0IHRvIGJlIHZpc2l0ZWQgYWdhaW4gaWYgaXQncyBub3QgY2F1c2luZyBhIHJlY3Vyc2lvbiAoY2lyY3VsYXIgcmVmZXJlbmNlKVxuICB2aXNpdGVkLnBvcCgpO1xuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmVuZGVyIGFuIGFycmF5IHRoYXQgbWF5IG9yIG1heSBub3QgY29udGFpbiBhIHN0cmluZyBsaXN0IHRva2VuXG4gKi9cbmZ1bmN0aW9uIHJlY3Vyc2VBcnJheShcbiAga2V5OiBzdHJpbmcsXG4gIGFycjogYW55W10sXG4gIGhhbmRsZXJzOiBGaWVsZEhhbmRsZXJzLFxuICB2aXNpdGVkOiBvYmplY3RbXSA9IFtdLFxuKTogeyBba2V5OiBzdHJpbmddOiBhbnlbXSB8IHN0cmluZyB9IHtcbiAgaWYgKGlzU3RyaW5nQXJyYXkoYXJyKSkge1xuICAgIGNvbnN0IHBhdGggPSBqc29uUGF0aFN0cmluZ0xpc3QoYXJyKTtcbiAgICBpZiAocGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlcnMuaGFuZGxlTGlzdChrZXksIGFycik7XG4gICAgfVxuXG4gICAgLy8gRmFsbCB0aHJvdWdoIHRvIGNvcnJlY3RseSByZWplY3QgZW5jb2RlZCBzdHJpbmdzIGluc2lkZSBhbiBhcnJheS5cbiAgICAvLyBUaGV5IGNhbm5vdCBiZSByZXByZXNlbnRlZCBiZWNhdXNlIHRoZXJlIGlzIG5vIGtleSB0byBhcHBlbmQgYSAnLiQnIHRvLlxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBba2V5XTogcmVzb2x2ZUFycmF5KGFyciwgaGFuZGxlcnMsIHZpc2l0ZWQpLFxuICB9O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlQXJyYXkoXG4gIGFycjogYW55W10sXG4gIGhhbmRsZXJzOiBGaWVsZEhhbmRsZXJzLFxuICB2aXNpdGVkOiBvYmplY3RbXSA9IFtdLFxuKTogYW55W10ge1xuICByZXR1cm4gYXJyLm1hcCgodmFsdWUpID0+IHtcbiAgICBpZiAoXG4gICAgICAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIGpzb25QYXRoU3RyaW5nKHZhbHVlKSAhPT0gdW5kZWZpbmVkKSB8fFxuICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiBqc29uUGF0aE51bWJlcih2YWx1ZSkgIT09IHVuZGVmaW5lZCkgfHxcbiAgICAgIChpc1N0cmluZ0FycmF5KHZhbHVlKSAmJiBqc29uUGF0aFN0cmluZ0xpc3QodmFsdWUpICE9PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ2Fubm90IHVzZSBKc29uUGF0aCBmaWVsZHMgaW4gYW4gYXJyYXksIHRoZXkgbXVzdCBiZSB1c2VkIGluIG9iamVjdHNcIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHJlc29sdmVBcnJheSh2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gcmVjdXJzZU9iamVjdCh2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpc1N0cmluZ0FycmF5KHg6IGFueSk6IHggaXMgc3RyaW5nW10ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh4KSAmJiB4LmV2ZXJ5KChlbCkgPT4gdHlwZW9mIGVsID09PSBcInN0cmluZ1wiKTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBwYXJhbWV0ZXIgc3RyaW5nXG4gKlxuICogSWYgdGhlIHN0cmluZyB2YWx1ZSBzdGFydHMgd2l0aCAnJC4nLCByZW5kZXIgaXQgYXMgYSBwYXRoIHN0cmluZywgb3RoZXJ3aXNlIGFzIGEgZGlyZWN0IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyU3RyaW5nKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gIGNvbnN0IHBhdGggPSBqc29uUGF0aFN0cmluZyh2YWx1ZSk7XG4gIGlmIChwYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBba2V5ICsgXCIuJFwiXTogcGF0aCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVyIGEgcmVzb2x2YWJsZVxuICpcbiAqIElmIHdlIGNhbiBleHRyYWN0IGEgUGF0aCBmcm9tIGl0LCByZW5kZXIgYXMgYSBwYXRoIHN0cmluZywgb3RoZXJ3aXNlIGFzIGl0c2VsZiAod2lsbFxuICogYmUgcmVzb2x2ZWQgbGF0ZXJcbiAqL1xuZnVuY3Rpb24gcmVuZGVyUmVzb2x2YWJsZShcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBJUmVzb2x2YWJsZSxcbik6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICBjb25zdCBwYXRoID0ganNvblBhdGhGcm9tQW55KHZhbHVlKTtcbiAgaWYgKHBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7IFtrZXkgKyBcIi4kXCJdOiBwYXRoIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBwYXJhbWV0ZXIgc3RyaW5nIGxpc3RcbiAqXG4gKiBJZiB0aGUgc3RyaW5nIHZhbHVlIHN0YXJ0cyB3aXRoICckLicsIHJlbmRlciBpdCBhcyBhIHBhdGggc3RyaW5nLCBvdGhlcndpc2UgYXMgYSBkaXJlY3Qgc3RyaW5nLlxuICovXG5mdW5jdGlvbiByZW5kZXJTdHJpbmdMaXN0KFxuICBrZXk6IHN0cmluZyxcbiAgdmFsdWU6IHN0cmluZ1tdLFxuKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB8IHN0cmluZyB9IHtcbiAgY29uc3QgcGF0aCA9IGpzb25QYXRoU3RyaW5nTGlzdCh2YWx1ZSk7XG4gIGlmIChwYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBba2V5ICsgXCIuJFwiXTogcGF0aCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVyIGEgcGFyYW1ldGVyIG51bWJlclxuICpcbiAqIElmIHRoZSBzdHJpbmcgdmFsdWUgc3RhcnRzIHdpdGggJyQuJywgcmVuZGVyIGl0IGFzIGEgcGF0aCBzdHJpbmcsIG90aGVyd2lzZSBhcyBhIGRpcmVjdCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlck51bWJlcihcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBudW1iZXIsXG4pOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB9IHtcbiAgY29uc3QgcGF0aCA9IGpzb25QYXRoTnVtYmVyKHZhbHVlKTtcbiAgaWYgKHBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7IFtrZXkgKyBcIi4kXCJdOiBwYXRoIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBwYXJhbWV0ZXIgYm9vbGVhblxuICovXG5mdW5jdGlvbiByZW5kZXJCb29sZWFuKFxuICBrZXk6IHN0cmluZyxcbiAgdmFsdWU6IGJvb2xlYW4sXG4pOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xufVxuXG4vKipcbiAqIElmIHRoZSBpbmRpY2F0ZWQgc3RyaW5nIGlzIGFuIGVuY29kZWQgSlNPTiBwYXRoLCByZXR1cm4gdGhlIHBhdGhcbiAqXG4gKiBPdGhlcndpc2UgcmV0dXJuIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25QYXRoU3RyaW5nKHg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGZyYWdtZW50cyA9IFRva2VuaXphdGlvbi5yZXZlcnNlU3RyaW5nKHgpO1xuICBjb25zdCBqc29uUGF0aFRva2VucyA9IGZyYWdtZW50cy50b2tlbnMuZmlsdGVyKEpzb25QYXRoVG9rZW4uaXNKc29uUGF0aFRva2VuKTtcblxuICBpZiAoanNvblBhdGhUb2tlbnMubGVuZ3RoID4gMCAmJiBmcmFnbWVudHMubGVuZ3RoID4gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBGaWVsZCByZWZlcmVuY2VzIG11c3QgYmUgdGhlIGVudGlyZSBzdHJpbmcsIGNhbm5vdCBjb25jYXRlbmF0ZSB0aGVtIChmb3VuZCAnJHt4fScpYCxcbiAgICApO1xuICB9XG4gIGlmIChqc29uUGF0aFRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGpzb25QYXRoVG9rZW5zWzBdLnBhdGg7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGpzb25QYXRoRnJvbUFueSh4OiBhbnkpIHtcbiAgaWYgKCF4KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4ganNvblBhdGhTdHJpbmcoeCk7XG4gIH1cbiAgY29uc3QgcmVzb2x2YWJsZXMgPSBUb2tlbml6YXRpb24ucmV2ZXJzZSh4KTtcbiAgaWYgKHJlc29sdmFibGVzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBwYXRoRnJvbVRva2VuKHJlc29sdmFibGVzWzBdKTtcbiAgfVxuICBpZiAocmVzb2x2YWJsZXMubGVuZ3RoID4gMSkge1xuICAgIC8vIFRPRE86IFNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBpZiBpdCBkb2VzLCB3ZSBzaG91bGQgdGhyb3cgYSBiZXR0ZXIgZXJyb3JcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVW5leHBlY3RlZCB2YWx1ZTogJHt4fSAoZXhwZWN0ZWQgYSBzdHJpbmcgb3IgYSBzaW5nbGUgcmVzb2x2YWJsZSlgLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBJZiB0aGUgaW5kaWNhdGVkIHN0cmluZyBsaXN0IGlzIGFuIGVuY29kZWQgSlNPTiBwYXRoLCByZXR1cm4gdGhlIHBhdGhcbiAqXG4gKiBPdGhlcndpc2UgcmV0dXJuIHVuZGVmaW5lZC5cbiAqL1xuZnVuY3Rpb24ganNvblBhdGhTdHJpbmdMaXN0KHg6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHBhdGhGcm9tVG9rZW4oVG9rZW5pemF0aW9uLnJldmVyc2VMaXN0KHgpKTtcbn1cblxuLyoqXG4gKiBJZiB0aGUgaW5kaWNhdGVkIG51bWJlciBpcyBhbiBlbmNvZGVkIEpTT04gcGF0aCwgcmV0dXJuIHRoZSBwYXRoXG4gKlxuICogT3RoZXJ3aXNlIHJldHVybiB1bmRlZmluZWQuXG4gKi9cbmZ1bmN0aW9uIGpzb25QYXRoTnVtYmVyKHg6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBwYXRoRnJvbVRva2VuKFRva2VuaXphdGlvbi5yZXZlcnNlTnVtYmVyKHgpKTtcbn1cblxuZnVuY3Rpb24gcGF0aEZyb21Ub2tlbih0b2tlbjogSVJlc29sdmFibGUgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIChcbiAgICB0b2tlbiAmJiAoSnNvblBhdGhUb2tlbi5pc0pzb25QYXRoVG9rZW4odG9rZW4pID8gdG9rZW4ucGF0aCA6IHVuZGVmaW5lZClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIHN0cmluZyBvciBudW1iZXIgdmFsdWUgaW4gYSB2YWxpZCBKU09OIFBhdGggZXhwcmVzc2lvbi5cbiAqXG4gKiBJZiB0aGUgdmFsdWUgaXMgYSBUb2tlbml6ZWQgSlNPTiBwYXRoIHJlZmVyZW5jZSAtLSByZXR1cm4gdGhlIEpTT04gcGF0aCByZWZlcmVuY2UgaW5zaWRlIGl0LlxuICogSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyIC0tIGNvbnZlcnQgaXQgdG8gc3RyaW5nLlxuICogSWYgdGhlIHZhbHVlIGlzIGEgc3RyaW5nIC0tIHNpbmdsZS1xdW90ZSBpdC5cbiAqIE90aGVyd2lzZSwgdGhyb3cgZXJyb3JzLlxuICpcbiAqIENhbGwgdGhpcyBmdW5jdGlvbiB3aGVuZXZlciB5b3UncmUgYnVpbGRpbmcgY29tcG91bmQgSlNPTlBhdGggZXhwcmVzc2lvbnMsIGluXG4gKiBvcmRlciB0byBhdm9pZCBoYXZpbmcgdG9rZW5zLWluLXRva2Vucy1pbi10b2tlbnMgd2hpY2ggYmVjb21lIHZlcnkgaGFyZCB0byBwYXJzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckluRXhwcmVzc2lvbih4OiBhbnkpIHtcbiAgY29uc3QgcGF0aCA9IGpzb25QYXRoRnJvbUFueSh4KTtcbiAgaWYgKHBhdGgpIHJldHVybiBwYXRoO1xuICBpZiAodHlwZW9mIHggPT09IFwibnVtYmVyXCIpIHJldHVybiB4LnRvU3RyaW5nKDEwKTtcbiAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSByZXR1cm4gc2luZ2xlUXVvdGVzdHJpbmcoeCk7XG4gIHRocm93IG5ldyBFcnJvcihcIlVueGV4cGVjdGVkIHZhbHVlLlwiKTtcbn1cblxuZnVuY3Rpb24gc2luZ2xlUXVvdGVzdHJpbmcoeDogc3RyaW5nKSB7XG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIHJldC5wdXNoKFwiJ1wiKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYyA9IHhbaV07XG4gICAgaWYgKGMgPT09IFwiJ1wiKSB7XG4gICAgICByZXQucHVzaChcIlxcXFwnXCIpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBjID09PSBcIlxcXFxcIiAmJlxuICAgICAgKGkgPT0geC5sZW5ndGggLSAxIHx8ICh4W2kgKyAxXSAhPSBcIntcIiAmJiB4W2kgKyAxXSAhPSBcIn1cIikpXG4gICAgKSB7XG4gICAgICAvLyBFc2NhcGUgYmFja3NsYXNoLCBidXQgb25seSBpZiBpdCBkb2Vzbid0IGltbWVkaWF0ZWx5IHByZWNlZGUgYSBjdXJseSBicmFjZVxuICAgICAgcmV0LnB1c2goXCJcXFxcXFxcXFwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0LnB1c2goYyk7XG4gICAgfVxuICB9XG4gIHJldC5wdXNoKFwiJ1wiKTtcbiAgcmV0dXJuIHJldC5qb2luKFwiXCIpO1xufVxuIl19
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3ByaXZhdGUvanNvbi1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXlDQSxvQ0FRQztBQUtELGtEQXNDQztBQTRDRCxzQ0E4Q0M7QUF3SUQsd0NBYUM7QUFFRCwwQ0FrQkM7QUFxQ0QsZ0RBTUM7QUExWUQsK0dBQStHO0FBQy9HLGlDQUEwRTtBQUMxRSwrQ0FBcUU7QUFFckUsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUN2QywrQ0FBK0MsQ0FDaEQsQ0FBQztBQUVGLE1BQWEsYUFBYTtJQUNqQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQWM7UUFDMUMsT0FBUSxDQUFTLENBQUMsc0JBQXNCLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUtELFlBQTRCLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ3RDLCtCQUErQjtRQUMvQixtSEFBbUg7UUFDbkgscUdBQXFHO1FBQ3JHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQXFCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sYUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFP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RyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTYwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMvbGliL3ByaXZhdGUvanNvbi1wYXRoLnRzXG5pbXBvcnQgeyBUb2tlbiwgSVJlc29sdmFibGUsIElSZXNvbHZlQ29udGV4dCwgVG9rZW5pemF0aW9uIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgeyBJbnRyaW5zaWNQYXJzZXIsIEludHJpbnNpY0V4cHJlc3Npb24gfSBmcm9tIFwiLi9pbnRyaW5zdGljc1wiO1xuXG5jb25zdCBKU09OX1BBVEhfVE9LRU5fU1lNQk9MID0gU3ltYm9sLmZvcihcbiAgXCJ0ZXJyYWNvbnN0cnVjdHMvbGliL2F3cy9jb21wdXRlLkpzb25QYXRoVG9rZW5cIixcbik7XG5cbmV4cG9ydCBjbGFzcyBKc29uUGF0aFRva2VuIGltcGxlbWVudHMgSVJlc29sdmFibGUge1xuICBwdWJsaWMgc3RhdGljIGlzSnNvblBhdGhUb2tlbih4OiBJUmVzb2x2YWJsZSk6IHggaXMgSnNvblBhdGhUb2tlbiB7XG4gICAgcmV0dXJuICh4IGFzIGFueSlbSlNPTl9QQVRIX1RPS0VOX1NZTUJPTF0gPT09IHRydWU7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRpb25TdGFjazogc3RyaW5nW107XG4gIHB1YmxpYyBkaXNwbGF5SGludDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmcpIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgc3RhY2sgdHJhY2VzXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC45L3BhY2thZ2VzL2Nka3RmL2xpYi90b2tlbnMvcHJpdmF0ZS9zdGFjay10cmFjZS50cyNMOVxuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTYwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvc3RhY2stdHJhY2UudHMjTDIyXG4gICAgdGhpcy5jcmVhdGlvblN0YWNrID0gW1wic3RhY2sgdHJhY2VzIGRpc2FibGVkXCJdO1xuICAgIHRoaXMuZGlzcGxheUhpbnQgPSBwYXRoLnJlcGxhY2UoL15bXmEtekEtWl0rLywgXCJcIik7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIEpTT05fUEFUSF9UT0tFTl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZShfY3R4OiBJUmVzb2x2ZUNvbnRleHQpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnBhdGg7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHRoaXMsIHsgZGlzcGxheUhpbnQ6IHRoaXMuZGlzcGxheUhpbnQgfSk7XG4gIH1cblxuICBwdWJsaWMgdG9KU09OKCkge1xuICAgIHJldHVybiBgPHBhdGg6JHt0aGlzLnBhdGh9PmA7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWVwIHJlbmRlciBhIEpTT04gb2JqZWN0IHRvIGV4cGFuZCBKU09OIHBhdGggZmllbGRzLCB1cGRhdGluZyB0aGUga2V5IHRvIGVuZCBpbiAnLiQnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJPYmplY3Qob2JqOiBvYmplY3QgfCB1bmRlZmluZWQpOiBvYmplY3QgfCB1bmRlZmluZWQge1xuICByZXR1cm4gcmVjdXJzZU9iamVjdChvYmosIHtcbiAgICBoYW5kbGVTdHJpbmc6IHJlbmRlclN0cmluZyxcbiAgICBoYW5kbGVMaXN0OiByZW5kZXJTdHJpbmdMaXN0LFxuICAgIGhhbmRsZU51bWJlcjogcmVuZGVyTnVtYmVyLFxuICAgIGhhbmRsZUJvb2xlYW46IHJlbmRlckJvb2xlYW4sXG4gICAgaGFuZGxlUmVzb2x2YWJsZTogcmVuZGVyUmVzb2x2YWJsZSxcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0dXJuIGFsbCBKU09OIHBhdGhzIHRoYXQgYXJlIHVzZWQgaW4gdGhlIGdpdmVuIHN0cnVjdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFJlZmVyZW5jZWRQYXRocyhvYmo6IG9iamVjdCB8IHVuZGVmaW5lZCk6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgZm91bmQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICByZWN1cnNlT2JqZWN0KG9iaiwge1xuICAgIGhhbmRsZVN0cmluZyhfa2V5OiBzdHJpbmcsIHg6IHN0cmluZykge1xuICAgICAgZm9yIChjb25zdCBwIG9mIGZpbmRQYXRoc0luSW50cmluc2ljRnVuY3Rpb25zKGpzb25QYXRoU3RyaW5nKHgpKSkge1xuICAgICAgICBmb3VuZC5hZGQocCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfSxcblxuICAgIGhhbmRsZUxpc3QoX2tleTogc3RyaW5nLCB4OiBzdHJpbmdbXSkge1xuICAgICAgZm9yIChjb25zdCBwIG9mIGZpbmRQYXRoc0luSW50cmluc2ljRnVuY3Rpb25zKGpzb25QYXRoU3RyaW5nTGlzdCh4KSkpIHtcbiAgICAgICAgZm91bmQuYWRkKHApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG5cbiAgICBoYW5kbGVOdW1iZXIoX2tleTogc3RyaW5nLCB4OiBudW1iZXIpIHtcbiAgICAgIGZvciAoY29uc3QgcCBvZiBmaW5kUGF0aHNJbkludHJpbnNpY0Z1bmN0aW9ucyhqc29uUGF0aE51bWJlcih4KSkpIHtcbiAgICAgICAgZm91bmQuYWRkKHApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG5cbiAgICBoYW5kbGVCb29sZWFuKF9rZXk6IHN0cmluZywgX3g6IGJvb2xlYW4pIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9LFxuXG4gICAgaGFuZGxlUmVzb2x2YWJsZShfa2V5OiBzdHJpbmcsIHg6IElSZXNvbHZhYmxlKSB7XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgZmluZFBhdGhzSW5JbnRyaW5zaWNGdW5jdGlvbnMoanNvblBhdGhGcm9tQW55KHgpKSkge1xuICAgICAgICBmb3VuZC5hZGQocCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIGZvdW5kO1xufVxuXG4vKipcbiAqIEZyb20gYW4gZXhwcmVzc2lvbiwgcmV0dXJuIHRoZSBsaXN0IG9mIEpTT04gcGF0aHMgcmVmZXJlbmNlZCBpbiBpdFxuICovXG5mdW5jdGlvbiBmaW5kUGF0aHNJbkludHJpbnNpY0Z1bmN0aW9ucyhleHByZXNzaW9uPzogc3RyaW5nKTogc3RyaW5nW10ge1xuICBpZiAoIWV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gbmV3IEludHJpbnNpY1BhcnNlcihleHByZXNzaW9uKS5wYXJzZVRvcExldmVsSW50cmluc2ljKCk7XG4gICAgcmVjdXJzZShwYXJzZWQpO1xuICAgIHJldHVybiByZXQ7XG4gIH0gY2F0Y2gge1xuICAgIC8vIE5vdCBzdXJlIHRoYXQgb3VyIHBhcnNpbmcgaXMgMTAwJSBjb3JyZWN0LiBXZSBkb24ndCB3YW50IHRvIGJyZWFrIGFueW9uZSwgc29cbiAgICAvLyBmYWxsIGJhY2sgdG8gbGVnYWN5IGJlaGF2aW9yIGlmIHdlIGNhbid0IHBhcnNlIHRoaXMgc3RyaW5nLlxuICAgIHJldHVybiBbZXhwcmVzc2lvbl07XG4gIH1cblxuICBmdW5jdGlvbiByZWN1cnNlKHA6IEludHJpbnNpY0V4cHJlc3Npb24pIHtcbiAgICBzd2l0Y2ggKHAudHlwZSkge1xuICAgICAgY2FzZSBcInBhdGhcIjpcbiAgICAgICAgcmV0LnB1c2gocC5wYXRoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJmbmNhbGxcIjpcbiAgICAgICAgZm9yIChjb25zdCBhcmcgb2YgcC5hcmd1bWVudHMpIHtcbiAgICAgICAgICByZWN1cnNlKGFyZyk7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuaW50ZXJmYWNlIEZpZWxkSGFuZGxlcnMge1xuICBoYW5kbGVTdHJpbmcoa2V5OiBzdHJpbmcsIHg6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIGhhbmRsZUxpc3Qoa2V5OiBzdHJpbmcsIHg6IHN0cmluZ1tdKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB8IHN0cmluZyB9O1xuICBoYW5kbGVOdW1iZXIoa2V5OiBzdHJpbmcsIHg6IG51bWJlcik6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgc3RyaW5nIH07XG4gIGhhbmRsZUJvb2xlYW4oa2V5OiBzdHJpbmcsIHg6IGJvb2xlYW4pOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgaGFuZGxlUmVzb2x2YWJsZShrZXk6IHN0cmluZywgeDogSVJlc29sdmFibGUpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVjdXJzZU9iamVjdChcbiAgb2JqOiBvYmplY3QgfCB1bmRlZmluZWQsXG4gIGhhbmRsZXJzOiBGaWVsZEhhbmRsZXJzLFxuICB2aXNpdGVkOiBvYmplY3RbXSA9IFtdLFxuKTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgLy8gSWYgdGhlIGFyZ3VtZW50IHJlY2VpdmVkIGlzIG5vdCBhY3R1YWxseSBhbiBvYmplY3QgKHN0cmluZywgbnVtYmVyLCBib29sZWFuLCB1bmRlZmluZWQsIC4uLikgb3IgbnVsbFxuICAvLyBqdXN0IHJldHVybiBpdCBhcyBpcyBhcyB0aGVyZSdzIG5vdGhpbmcgdG8gYmUgcmVuZGVyZWQuIFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGluIHRoZSBvcmlnaW5hbCBjYWxsIHRvXG4gIC8vIHJlY3Vyc2VPYmplY3QgYXMgYW55IHJlY3Vyc2l2ZSBjYWxscyB0byBpdCBhcmUgY2hlY2tpbmcgZm9yIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGxcbiAgaWYgKHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgfHwgb2JqID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8vIEF2b2lkaW5nIGluZmluaXRlIHJlY3Vyc2lvblxuICBpZiAodmlzaXRlZC5pbmNsdWRlcyhvYmopKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8gTWFya2luZyBjdXJyZW50IG9iamVjdCBhcyB2aXNpdGVkIGZvciB0aGUgY3VycmVudCByZWN1cnNpb24gcGF0aFxuICB2aXNpdGVkLnB1c2gob2JqKTtcblxuICBjb25zdCByZXQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgT2JqZWN0LmFzc2lnbihyZXQsIGhhbmRsZXJzLmhhbmRsZVN0cmluZyhrZXksIHZhbHVlKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBoYW5kbGVycy5oYW5kbGVOdW1iZXIoa2V5LCB2YWx1ZSkpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCByZWN1cnNlQXJyYXkoa2V5LCB2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBoYW5kbGVycy5oYW5kbGVCb29sZWFuKGtleSwgdmFsdWUpKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIE5vdGhpbmdcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgaWYgKFRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUodmFsdWUpKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBoYW5kbGVycy5oYW5kbGVSZXNvbHZhYmxlKGtleSwgdmFsdWUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldFtrZXldID0gcmVjdXJzZU9iamVjdCh2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92aW5nIGZyb20gdmlzaXRlZCBhZnRlciBsZWF2aW5nIHRoZSBjdXJyZW50IHJlY3Vyc2lvbiBwYXRoXG4gIC8vIEFsbG93aW5nIGl0IHRvIGJlIHZpc2l0ZWQgYWdhaW4gaWYgaXQncyBub3QgY2F1c2luZyBhIHJlY3Vyc2lvbiAoY2lyY3VsYXIgcmVmZXJlbmNlKVxuICB2aXNpdGVkLnBvcCgpO1xuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmVuZGVyIGFuIGFycmF5IHRoYXQgbWF5IG9yIG1heSBub3QgY29udGFpbiBhIHN0cmluZyBsaXN0IHRva2VuXG4gKi9cbmZ1bmN0aW9uIHJlY3Vyc2VBcnJheShcbiAga2V5OiBzdHJpbmcsXG4gIGFycjogYW55W10sXG4gIGhhbmRsZXJzOiBGaWVsZEhhbmRsZXJzLFxuICB2aXNpdGVkOiBvYmplY3RbXSA9IFtdLFxuKTogeyBba2V5OiBzdHJpbmddOiBhbnlbXSB8IHN0cmluZyB9IHtcbiAgaWYgKGlzU3RyaW5nQXJyYXkoYXJyKSkge1xuICAgIGNvbnN0IHBhdGggPSBqc29uUGF0aFN0cmluZ0xpc3QoYXJyKTtcbiAgICBpZiAocGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlcnMuaGFuZGxlTGlzdChrZXksIGFycik7XG4gICAgfVxuXG4gICAgLy8gRmFsbCB0aHJvdWdoIHRvIGNvcnJlY3RseSByZWplY3QgZW5jb2RlZCBzdHJpbmdzIGluc2lkZSBhbiBhcnJheS5cbiAgICAvLyBUaGV5IGNhbm5vdCBiZSByZXByZXNlbnRlZCBiZWNhdXNlIHRoZXJlIGlzIG5vIGtleSB0byBhcHBlbmQgYSAnLiQnIHRvLlxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBba2V5XTogcmVzb2x2ZUFycmF5KGFyciwgaGFuZGxlcnMsIHZpc2l0ZWQpLFxuICB9O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlQXJyYXkoXG4gIGFycjogYW55W10sXG4gIGhhbmRsZXJzOiBGaWVsZEhhbmRsZXJzLFxuICB2aXNpdGVkOiBvYmplY3RbXSA9IFtdLFxuKTogYW55W10ge1xuICByZXR1cm4gYXJyLm1hcCgodmFsdWUpID0+IHtcbiAgICBpZiAoXG4gICAgICAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIGpzb25QYXRoU3RyaW5nKHZhbHVlKSAhPT0gdW5kZWZpbmVkKSB8fFxuICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiBqc29uUGF0aE51bWJlcih2YWx1ZSkgIT09IHVuZGVmaW5lZCkgfHxcbiAgICAgIChpc1N0cmluZ0FycmF5KHZhbHVlKSAmJiBqc29uUGF0aFN0cmluZ0xpc3QodmFsdWUpICE9PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ2Fubm90IHVzZSBKc29uUGF0aCBmaWVsZHMgaW4gYW4gYXJyYXksIHRoZXkgbXVzdCBiZSB1c2VkIGluIG9iamVjdHNcIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHJlc29sdmVBcnJheSh2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gcmVjdXJzZU9iamVjdCh2YWx1ZSwgaGFuZGxlcnMsIHZpc2l0ZWQpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpc1N0cmluZ0FycmF5KHg6IGFueSk6IHggaXMgc3RyaW5nW10ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh4KSAmJiB4LmV2ZXJ5KChlbCkgPT4gdHlwZW9mIGVsID09PSBcInN0cmluZ1wiKTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBwYXJhbWV0ZXIgc3RyaW5nXG4gKlxuICogSWYgdGhlIHN0cmluZyB2YWx1ZSBzdGFydHMgd2l0aCAnJC4nLCByZW5kZXIgaXQgYXMgYSBwYXRoIHN0cmluZywgb3RoZXJ3aXNlIGFzIGEgZGlyZWN0IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyU3RyaW5nKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gIGNvbnN0IHBhdGggPSBqc29uUGF0aFN0cmluZyh2YWx1ZSk7XG4gIGlmIChwYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBba2V5ICsgXCIuJFwiXTogcGF0aCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVyIGEgcmVzb2x2YWJsZVxuICpcbiAqIElmIHdlIGNhbiBleHRyYWN0IGEgUGF0aCBmcm9tIGl0LCByZW5kZXIgYXMgYSBwYXRoIHN0cmluZywgb3RoZXJ3aXNlIGFzIGl0c2VsZiAod2lsbFxuICogYmUgcmVzb2x2ZWQgbGF0ZXJcbiAqL1xuZnVuY3Rpb24gcmVuZGVyUmVzb2x2YWJsZShcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBJUmVzb2x2YWJsZSxcbik6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICBjb25zdCBwYXRoID0ganNvblBhdGhGcm9tQW55KHZhbHVlKTtcbiAgaWYgKHBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7IFtrZXkgKyBcIi4kXCJdOiBwYXRoIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBwYXJhbWV0ZXIgc3RyaW5nIGxpc3RcbiAqXG4gKiBJZiB0aGUgc3RyaW5nIHZhbHVlIHN0YXJ0cyB3aXRoICckLicsIHJlbmRlciBpdCBhcyBhIHBhdGggc3RyaW5nLCBvdGhlcndpc2UgYXMgYSBkaXJlY3Qgc3RyaW5nLlxuICovXG5mdW5jdGlvbiByZW5kZXJTdHJpbmdMaXN0KFxuICBrZXk6IHN0cmluZyxcbiAgdmFsdWU6IHN0cmluZ1tdLFxuKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB8IHN0cmluZyB9IHtcbiAgY29uc3QgcGF0aCA9IGpzb25QYXRoU3RyaW5nTGlzdCh2YWx1ZSk7XG4gIGlmIChwYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBba2V5ICsgXCIuJFwiXTogcGF0aCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVyIGEgcGFyYW1ldGVyIG51bWJlclxuICpcbiAqIElmIHRoZSBzdHJpbmcgdmFsdWUgc3RhcnRzIHdpdGggJyQuJywgcmVuZGVyIGl0IGFzIGEgcGF0aCBzdHJpbmcsIG90aGVyd2lzZSBhcyBhIGRpcmVjdCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlck51bWJlcihcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBudW1iZXIsXG4pOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB9IHtcbiAgY29uc3QgcGF0aCA9IGpzb25QYXRoTnVtYmVyKHZhbHVlKTtcbiAgaWYgKHBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7IFtrZXkgKyBcIi4kXCJdOiBwYXRoIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBwYXJhbWV0ZXIgYm9vbGVhblxuICovXG5mdW5jdGlvbiByZW5kZXJCb29sZWFuKFxuICBrZXk6IHN0cmluZyxcbiAgdmFsdWU6IGJvb2xlYW4sXG4pOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xufVxuXG4vKipcbiAqIElmIHRoZSBpbmRpY2F0ZWQgc3RyaW5nIGlzIGFuIGVuY29kZWQgSlNPTiBwYXRoLCByZXR1cm4gdGhlIHBhdGhcbiAqXG4gKiBPdGhlcndpc2UgcmV0dXJuIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25QYXRoU3RyaW5nKHg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGZyYWdtZW50cyA9IFRva2VuaXphdGlvbi5yZXZlcnNlU3RyaW5nKHgpO1xuICBjb25zdCBqc29uUGF0aFRva2VucyA9IGZyYWdtZW50cy50b2tlbnMuZmlsdGVyKEpzb25QYXRoVG9rZW4uaXNKc29uUGF0aFRva2VuKTtcblxuICBpZiAoanNvblBhdGhUb2tlbnMubGVuZ3RoID4gMCAmJiBmcmFnbWVudHMubGVuZ3RoID4gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBGaWVsZCByZWZlcmVuY2VzIG11c3QgYmUgdGhlIGVudGlyZSBzdHJpbmcsIGNhbm5vdCBjb25jYXRlbmF0ZSB0aGVtIChmb3VuZCAnJHt4fScpYCxcbiAgICApO1xuICB9XG4gIGlmIChqc29uUGF0aFRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGpzb25QYXRoVG9rZW5zWzBdLnBhdGg7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGpzb25QYXRoRnJvbUFueSh4OiBhbnkpIHtcbiAgaWYgKCF4KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4ganNvblBhdGhTdHJpbmcoeCk7XG4gIH1cbiAgY29uc3QgcmVzb2x2YWJsZXMgPSBUb2tlbml6YXRpb24ucmV2ZXJzZSh4KTtcbiAgaWYgKHJlc29sdmFibGVzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBwYXRoRnJvbVRva2VuKHJlc29sdmFibGVzWzBdKTtcbiAgfVxuICBpZiAocmVzb2x2YWJsZXMubGVuZ3RoID4gMSkge1xuICAgIC8vIFRPRE86IFNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBpZiBpdCBkb2VzLCB3ZSBzaG91bGQgdGhyb3cgYSBiZXR0ZXIgZXJyb3JcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVW5leHBlY3RlZCB2YWx1ZTogJHt4fSAoZXhwZWN0ZWQgYSBzdHJpbmcgb3IgYSBzaW5nbGUgcmVzb2x2YWJsZSlgLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBJZiB0aGUgaW5kaWNhdGVkIHN0cmluZyBsaXN0IGlzIGFuIGVuY29kZWQgSlNPTiBwYXRoLCByZXR1cm4gdGhlIHBhdGhcbiAqXG4gKiBPdGhlcndpc2UgcmV0dXJuIHVuZGVmaW5lZC5cbiAqL1xuZnVuY3Rpb24ganNvblBhdGhTdHJpbmdMaXN0KHg6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHBhdGhGcm9tVG9rZW4oVG9rZW5pemF0aW9uLnJldmVyc2VMaXN0KHgpKTtcbn1cblxuLyoqXG4gKiBJZiB0aGUgaW5kaWNhdGVkIG51bWJlciBpcyBhbiBlbmNvZGVkIEpTT04gcGF0aCwgcmV0dXJuIHRoZSBwYXRoXG4gKlxuICogT3RoZXJ3aXNlIHJldHVybiB1bmRlZmluZWQuXG4gKi9cbmZ1bmN0aW9uIGpzb25QYXRoTnVtYmVyKHg6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBwYXRoRnJvbVRva2VuKFRva2VuaXphdGlvbi5yZXZlcnNlTnVtYmVyKHgpKTtcbn1cblxuZnVuY3Rpb24gcGF0aEZyb21Ub2tlbih0b2tlbjogSVJlc29sdmFibGUgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIChcbiAgICB0b2tlbiAmJiAoSnNvblBhdGhUb2tlbi5pc0pzb25QYXRoVG9rZW4odG9rZW4pID8gdG9rZW4ucGF0aCA6IHVuZGVmaW5lZClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIHN0cmluZyBvciBudW1iZXIgdmFsdWUgaW4gYSB2YWxpZCBKU09OIFBhdGggZXhwcmVzc2lvbi5cbiAqXG4gKiBJZiB0aGUgdmFsdWUgaXMgYSBUb2tlbml6ZWQgSlNPTiBwYXRoIHJlZmVyZW5jZSAtLSByZXR1cm4gdGhlIEpTT04gcGF0aCByZWZlcmVuY2UgaW5zaWRlIGl0LlxuICogSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyIC0tIGNvbnZlcnQgaXQgdG8gc3RyaW5nLlxuICogSWYgdGhlIHZhbHVlIGlzIGEgc3RyaW5nIC0tIHNpbmdsZS1xdW90ZSBpdC5cbiAqIE90aGVyd2lzZSwgdGhyb3cgZXJyb3JzLlxuICpcbiAqIENhbGwgdGhpcyBmdW5jdGlvbiB3aGVuZXZlciB5b3UncmUgYnVpbGRpbmcgY29tcG91bmQgSlNPTlBhdGggZXhwcmVzc2lvbnMsIGluXG4gKiBvcmRlciB0byBhdm9pZCBoYXZpbmcgdG9rZW5zLWluLXRva2Vucy1pbi10b2tlbnMgd2hpY2ggYmVjb21lIHZlcnkgaGFyZCB0byBwYXJzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckluRXhwcmVzc2lvbih4OiBhbnkpIHtcbiAgY29uc3QgcGF0aCA9IGpzb25QYXRoRnJvbUFueSh4KTtcbiAgaWYgKHBhdGgpIHJldHVybiBwYXRoO1xuICBpZiAodHlwZW9mIHggPT09IFwibnVtYmVyXCIpIHJldHVybiB4LnRvU3RyaW5nKDEwKTtcbiAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSByZXR1cm4gc2luZ2xlUXVvdGVzdHJpbmcoeCk7XG4gIHRocm93IG5ldyBFcnJvcihcIlVueGV4cGVjdGVkIHZhbHVlLlwiKTtcbn1cblxuZnVuY3Rpb24gc2luZ2xlUXVvdGVzdHJpbmcoeDogc3RyaW5nKSB7XG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIHJldC5wdXNoKFwiJ1wiKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYyA9IHhbaV07XG4gICAgaWYgKGMgPT09IFwiJ1wiKSB7XG4gICAgICByZXQucHVzaChcIlxcXFwnXCIpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBjID09PSBcIlxcXFxcIiAmJlxuICAgICAgKGkgPT0geC5sZW5ndGggLSAxIHx8ICh4W2kgKyAxXSAhPSBcIntcIiAmJiB4W2kgKyAxXSAhPSBcIn1cIikpXG4gICAgKSB7XG4gICAgICAvLyBFc2NhcGUgYmFja3NsYXNoLCBidXQgb25seSBpZiBpdCBkb2Vzbid0IGltbWVkaWF0ZWx5IHByZWNlZGUgYSBjdXJseSBicmFjZVxuICAgICAgcmV0LnB1c2goXCJcXFxcXFxcXFwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0LnB1c2goYyk7XG4gICAgfVxuICB9XG4gIHJldC5wdXNoKFwiJ1wiKTtcbiAgcmV0dXJuIHJldC5qb2luKFwiXCIpO1xufVxuIl19
@@ -3,7 +3,7 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.RequestValidator = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const provider_aws_1 = require("@cdktf/provider-aws");
6
+ const provider_aws_1 = require("@cdktn/provider-aws");
7
7
  const restapi_1 = require("./restapi");
8
8
  // import { Fn } from "../../terra-func";
9
9
  const aws_construct_1 = require("../aws-construct");
@@ -55,5 +55,5 @@ class RequestValidator extends aws_construct_1.AwsConstructBase {
55
55
  }
56
56
  exports.RequestValidator = RequestValidator;
57
57
  _a = JSII_RTTI_SYMBOL_1;
58
- RequestValidator[_a] = { fqn: "terraconstructs.aws.compute.RequestValidator", version: "0.2.4" };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdHZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9yZXF1ZXN0dmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQWlFO0FBRWpFLHVDQUE4QztBQUM5Qyx5Q0FBeUM7QUFDekMsb0RBSTBCO0FBNEMxQixNQUFNLHdCQUNKLFNBQVEsZ0NBQWdCO0lBS3hCLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLGtCQUEwQixFQUMxQixLQUF5QjtRQUV6QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUM1QyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBYSxnQkFDWCxTQUFRLGdDQUFnQjtJQUdqQixNQUFNLENBQUMsc0JBQXNCLENBQ2xDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixrQkFBMEI7UUFFMUIsaUVBQWlFO1FBQ2pFLHVEQUF1RDtRQUN2RCxPQUFPLElBQUksd0JBQXdCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFXRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLE1BQU0sYUFBYSxHQUNqQixLQUFLLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSxNQUFNLGNBQWMsR0FDbEI7WUFDRSxJQUFJLEVBQUUsYUFBYTtZQUNuQixTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7WUFDOUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjtTQUMzRCxDQUFDO1FBRUosSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlDQUEwQixDQUFDLDBCQUEwQixDQUN2RSxJQUFJLEVBQ0osVUFBVSxFQUNWLGNBQWMsQ0FDZixDQUFDO1FBRUYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBRTNDLDhFQUE4RTtRQUM5RSwrREFBK0Q7UUFDL0QsTUFBTSxVQUFVLEdBQ2QsS0FBSyxDQUFDLE9BQU8sWUFBWSxpQkFBTztZQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDaEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLHFFQUFxRTtZQUNyRSxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDeEQsNERBQTREO1FBQzlELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU87WUFDTCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1NBQzVDLENBQUM7SUFDSixDQUFDOztBQTlESCw0Q0ErREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSVJlc3RBcGksIFJlc3RBcGkgfSBmcm9tIFwiLi9yZXN0YXBpXCI7XG4vLyBpbXBvcnQgeyBGbiB9IGZyb20gXCIuLi8uLi90ZXJyYS1mdW5jXCI7XG5pbXBvcnQge1xuICBBd3NDb25zdHJ1Y3RCYXNlLFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgSUF3c0NvbnN0cnVjdCxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJUmVxdWVzdFZhbGlkYXRvciBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogSUQgb2YgdGhlIHJlcXVlc3QgdmFsaWRhdG9yLCBzdWNoIGFzIGFiYzEyM1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0VmFsaWRhdG9ySWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0VmFsaWRhdG9yT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHJlcXVlc3QgdmFsaWRhdG9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBmcmllbmRseSBuYW1lIG9mIHRoZSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0VmFsaWRhdG9yTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIHJlcXVlc3QgYm9keSBhY2NvcmRpbmcgdG9cbiAgICogdGhlIGNvbmZpZ3VyZWQgc2NoZW1hIGZvciB0aGUgdGFyZ2V0ZWQgQVBJIGFuZCBtZXRob2QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZVJlcXVlc3RCb2R5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gdmFsaWRhdGUgcmVxdWVzdCBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRhdGVSZXF1ZXN0UGFyYW1ldGVycz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdFZhbGlkYXRvclByb3BzXG4gIGV4dGVuZHMgUmVxdWVzdFZhbGlkYXRvck9wdGlvbnMsXG4gICAgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHJlc3QgQVBJIHRoYXQgdGhpcyBtb2RlbCBpcyBwYXJ0IG9mLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdEFwaTogSVJlc3RBcGk7XG59XG5cbmNsYXNzIEltcG9ydGVkUmVxdWVzdFZhbGlkYXRvclxuICBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2VcbiAgaW1wbGVtZW50cyBJUmVxdWVzdFZhbGlkYXRvclxue1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdFZhbGlkYXRvcklkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHJlcXVlc3RWYWxpZGF0b3JJZDogc3RyaW5nLFxuICAgIHByb3BzPzogQXdzQ29uc3RydWN0UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMucmVxdWVzdFZhbGlkYXRvcklkID0gcmVxdWVzdFZhbGlkYXRvcklkO1xuICB9XG5cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICByZXF1ZXN0VmFsaWRhdG9ySWQ6IHRoaXMucmVxdWVzdFZhbGlkYXRvcklkLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlcXVlc3RWYWxpZGF0b3JcbiAgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlXG4gIGltcGxlbWVudHMgSVJlcXVlc3RWYWxpZGF0b3JcbntcbiAgcHVibGljIHN0YXRpYyBmcm9tUmVxdWVzdFZhbGlkYXRvcklkKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICByZXF1ZXN0VmFsaWRhdG9ySWQ6IHN0cmluZyxcbiAgKTogSVJlcXVlc3RWYWxpZGF0b3Ige1xuICAgIC8vIE5vdGU6IEZvciBhIGZ1bGwgQ0RLVEYgaW1wb3J0LCByZXN0QXBpSWQgd291bGQgYWxzbyBiZSBuZWVkZWQuXG4gICAgLy8gVGhpcyBtaXJyb3JzIHRoZSBDREsncyBsaW1pdGVkIGltcG9ydCBmdW5jdGlvbmFsaXR5LlxuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRSZXF1ZXN0VmFsaWRhdG9yKHNjb3BlLCBpZCwgcmVxdWVzdFZhbGlkYXRvcklkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgcmVxdWVzdCB2YWxpZGF0b3IsIHN1Y2ggYXMgYWJjMTIzXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXF1ZXN0VmFsaWRhdG9ySWQ6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBhcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvci5BcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVxdWVzdFZhbGlkYXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCB2YWxpZGF0b3JOYW1lID1cbiAgICAgIHByb3BzLnJlcXVlc3RWYWxpZGF0b3JOYW1lID8/IHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMpO1xuICAgIGNvbnN0IHZhbGlkYXRvclByb3BzOiBhcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvci5BcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvckNvbmZpZyA9XG4gICAgICB7XG4gICAgICAgIG5hbWU6IHZhbGlkYXRvck5hbWUsXG4gICAgICAgIHJlc3RBcGlJZDogcHJvcHMucmVzdEFwaS5yZXN0QXBpSWQsXG4gICAgICAgIHZhbGlkYXRlUmVxdWVzdEJvZHk6IHByb3BzLnZhbGlkYXRlUmVxdWVzdEJvZHksXG4gICAgICAgIHZhbGlkYXRlUmVxdWVzdFBhcmFtZXRlcnM6IHByb3BzLnZhbGlkYXRlUmVxdWVzdFBhcmFtZXRlcnMsXG4gICAgICB9O1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBhcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvci5BcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvcihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB2YWxpZGF0b3JQcm9wcyxcbiAgICApO1xuXG4gICAgdGhpcy5yZXF1ZXN0VmFsaWRhdG9ySWQgPSB0aGlzLnJlc291cmNlLmlkO1xuXG4gICAgLy8gVGhlIENESyB2ZXJzaW9uIG9mIFJlcXVlc3RWYWxpZGF0b3IgaW50ZXJhY3RzIHdpdGggdGhlIFJlc3RBcGkncyBkZXBsb3ltZW50XG4gICAgLy8gdG8gZW5zdXJlIGNoYW5nZXMgdG8gdGhlIHZhbGlkYXRvciB0cmlnZ2VyIGEgbmV3IGRlcGxveW1lbnQuXG4gICAgY29uc3QgZGVwbG95bWVudCA9XG4gICAgICBwcm9wcy5yZXN0QXBpIGluc3RhbmNlb2YgUmVzdEFwaVxuICAgICAgICA/IHByb3BzLnJlc3RBcGkubGF0ZXN0RGVwbG95bWVudFxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBpZiAoZGVwbG95bWVudCkge1xuICAgICAgZGVwbG95bWVudC5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5yZXNvdXJjZSk7XG4gICAgICAvLyBGbi5zaGExKEZuLmpzb25lbmNvZGUoKSkgY2F1c2VzIG5lc3RlZCBUb2tlbnMgYW5kIFJlc29sdmVyIGVycm9ycz9cbiAgICAgIGRlcGxveW1lbnQuYWRkVG9UcmlnZ2Vycyh7IHZhbGlkYXRvcjogdmFsaWRhdG9yUHJvcHMgfSk7XG4gICAgICAvLyBkZXBsb3ltZW50LmFkZFRvTG9naWNhbElkKHsgdmFsaWRhdG9yOiB2YWxpZGF0b3JQcm9wcyB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcXVlc3RWYWxpZGF0b3JJZDogdGhpcy5yZXF1ZXN0VmFsaWRhdG9ySWQsXG4gICAgfTtcbiAgfVxufVxuIl19
58
+ RequestValidator[_a] = { fqn: "terraconstructs.aws.compute.RequestValidator", version: "0.2.6" };
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdHZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9yZXF1ZXN0dmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQWlFO0FBRWpFLHVDQUE4QztBQUM5Qyx5Q0FBeUM7QUFDekMsb0RBSTBCO0FBNEMxQixNQUFNLHdCQUNKLFNBQVEsZ0NBQWdCO0lBS3hCLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLGtCQUEwQixFQUMxQixLQUF5QjtRQUV6QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUM1QyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBYSxnQkFDWCxTQUFRLGdDQUFnQjtJQUdqQixNQUFNLENBQUMsc0JBQXNCLENBQ2xDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixrQkFBMEI7UUFFMUIsaUVBQWlFO1FBQ2pFLHVEQUF1RDtRQUN2RCxPQUFPLElBQUksd0JBQXdCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFXRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLE1BQU0sYUFBYSxHQUNqQixLQUFLLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSxNQUFNLGNBQWMsR0FDbEI7WUFDRSxJQUFJLEVBQUUsYUFBYTtZQUNuQixTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7WUFDOUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjtTQUMzRCxDQUFDO1FBRUosSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlDQUEwQixDQUFDLDBCQUEwQixDQUN2RSxJQUFJLEVBQ0osVUFBVSxFQUNWLGNBQWMsQ0FDZixDQUFDO1FBRUYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBRTNDLDhFQUE4RTtRQUM5RSwrREFBK0Q7UUFDL0QsTUFBTSxVQUFVLEdBQ2QsS0FBSyxDQUFDLE9BQU8sWUFBWSxpQkFBTztZQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDaEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLHFFQUFxRTtZQUNyRSxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDeEQsNERBQTREO1FBQzlELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU87WUFDTCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1NBQzVDLENBQUM7SUFDSixDQUFDOztBQTlESCw0Q0ErREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvciB9IGZyb20gXCJAY2RrdG4vcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSVJlc3RBcGksIFJlc3RBcGkgfSBmcm9tIFwiLi9yZXN0YXBpXCI7XG4vLyBpbXBvcnQgeyBGbiB9IGZyb20gXCIuLi8uLi90ZXJyYS1mdW5jXCI7XG5pbXBvcnQge1xuICBBd3NDb25zdHJ1Y3RCYXNlLFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgSUF3c0NvbnN0cnVjdCxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJUmVxdWVzdFZhbGlkYXRvciBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogSUQgb2YgdGhlIHJlcXVlc3QgdmFsaWRhdG9yLCBzdWNoIGFzIGFiYzEyM1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0VmFsaWRhdG9ySWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0VmFsaWRhdG9yT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHJlcXVlc3QgdmFsaWRhdG9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBmcmllbmRseSBuYW1lIG9mIHRoZSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0VmFsaWRhdG9yTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIHJlcXVlc3QgYm9keSBhY2NvcmRpbmcgdG9cbiAgICogdGhlIGNvbmZpZ3VyZWQgc2NoZW1hIGZvciB0aGUgdGFyZ2V0ZWQgQVBJIGFuZCBtZXRob2QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZVJlcXVlc3RCb2R5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gdmFsaWRhdGUgcmVxdWVzdCBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRhdGVSZXF1ZXN0UGFyYW1ldGVycz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdFZhbGlkYXRvclByb3BzXG4gIGV4dGVuZHMgUmVxdWVzdFZhbGlkYXRvck9wdGlvbnMsXG4gICAgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHJlc3QgQVBJIHRoYXQgdGhpcyBtb2RlbCBpcyBwYXJ0IG9mLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdEFwaTogSVJlc3RBcGk7XG59XG5cbmNsYXNzIEltcG9ydGVkUmVxdWVzdFZhbGlkYXRvclxuICBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2VcbiAgaW1wbGVtZW50cyBJUmVxdWVzdFZhbGlkYXRvclxue1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdFZhbGlkYXRvcklkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHJlcXVlc3RWYWxpZGF0b3JJZDogc3RyaW5nLFxuICAgIHByb3BzPzogQXdzQ29uc3RydWN0UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMucmVxdWVzdFZhbGlkYXRvcklkID0gcmVxdWVzdFZhbGlkYXRvcklkO1xuICB9XG5cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICByZXF1ZXN0VmFsaWRhdG9ySWQ6IHRoaXMucmVxdWVzdFZhbGlkYXRvcklkLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlcXVlc3RWYWxpZGF0b3JcbiAgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlXG4gIGltcGxlbWVudHMgSVJlcXVlc3RWYWxpZGF0b3JcbntcbiAgcHVibGljIHN0YXRpYyBmcm9tUmVxdWVzdFZhbGlkYXRvcklkKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICByZXF1ZXN0VmFsaWRhdG9ySWQ6IHN0cmluZyxcbiAgKTogSVJlcXVlc3RWYWxpZGF0b3Ige1xuICAgIC8vIE5vdGU6IEZvciBhIGZ1bGwgQ0RLVEYgaW1wb3J0LCByZXN0QXBpSWQgd291bGQgYWxzbyBiZSBuZWVkZWQuXG4gICAgLy8gVGhpcyBtaXJyb3JzIHRoZSBDREsncyBsaW1pdGVkIGltcG9ydCBmdW5jdGlvbmFsaXR5LlxuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRSZXF1ZXN0VmFsaWRhdG9yKHNjb3BlLCBpZCwgcmVxdWVzdFZhbGlkYXRvcklkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgcmVxdWVzdCB2YWxpZGF0b3IsIHN1Y2ggYXMgYWJjMTIzXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXF1ZXN0VmFsaWRhdG9ySWQ6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBhcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvci5BcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVxdWVzdFZhbGlkYXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCB2YWxpZGF0b3JOYW1lID1cbiAgICAgIHByb3BzLnJlcXVlc3RWYWxpZGF0b3JOYW1lID8/IHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMpO1xuICAgIGNvbnN0IHZhbGlkYXRvclByb3BzOiBhcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvci5BcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvckNvbmZpZyA9XG4gICAgICB7XG4gICAgICAgIG5hbWU6IHZhbGlkYXRvck5hbWUsXG4gICAgICAgIHJlc3RBcGlJZDogcHJvcHMucmVzdEFwaS5yZXN0QXBpSWQsXG4gICAgICAgIHZhbGlkYXRlUmVxdWVzdEJvZHk6IHByb3BzLnZhbGlkYXRlUmVxdWVzdEJvZHksXG4gICAgICAgIHZhbGlkYXRlUmVxdWVzdFBhcmFtZXRlcnM6IHByb3BzLnZhbGlkYXRlUmVxdWVzdFBhcmFtZXRlcnMsXG4gICAgICB9O1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBhcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvci5BcGlHYXRld2F5UmVxdWVzdFZhbGlkYXRvcihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB2YWxpZGF0b3JQcm9wcyxcbiAgICApO1xuXG4gICAgdGhpcy5yZXF1ZXN0VmFsaWRhdG9ySWQgPSB0aGlzLnJlc291cmNlLmlkO1xuXG4gICAgLy8gVGhlIENESyB2ZXJzaW9uIG9mIFJlcXVlc3RWYWxpZGF0b3IgaW50ZXJhY3RzIHdpdGggdGhlIFJlc3RBcGkncyBkZXBsb3ltZW50XG4gICAgLy8gdG8gZW5zdXJlIGNoYW5nZXMgdG8gdGhlIHZhbGlkYXRvciB0cmlnZ2VyIGEgbmV3IGRlcGxveW1lbnQuXG4gICAgY29uc3QgZGVwbG95bWVudCA9XG4gICAgICBwcm9wcy5yZXN0QXBpIGluc3RhbmNlb2YgUmVzdEFwaVxuICAgICAgICA/IHByb3BzLnJlc3RBcGkubGF0ZXN0RGVwbG95bWVudFxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBpZiAoZGVwbG95bWVudCkge1xuICAgICAgZGVwbG95bWVudC5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5yZXNvdXJjZSk7XG4gICAgICAvLyBGbi5zaGExKEZuLmpzb25lbmNvZGUoKSkgY2F1c2VzIG5lc3RlZCBUb2tlbnMgYW5kIFJlc29sdmVyIGVycm9ycz9cbiAgICAgIGRlcGxveW1lbnQuYWRkVG9UcmlnZ2Vycyh7IHZhbGlkYXRvcjogdmFsaWRhdG9yUHJvcHMgfSk7XG4gICAgICAvLyBkZXBsb3ltZW50LmFkZFRvTG9naWNhbElkKHsgdmFsaWRhdG9yOiB2YWxpZGF0b3JQcm9wcyB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcXVlc3RWYWxpZGF0b3JJZDogdGhpcy5yZXF1ZXN0VmFsaWRhdG9ySWQsXG4gICAgfTtcbiAgfVxufVxuIl19