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.Topic = exports.TracingConfig = exports.LoggingProtocol = exports.FifoThroughputScope = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  // https://github.com/aws/aws-cdk/blob/v2.233.0/packages/aws-cdk-lib/aws-sns/lib/topic.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 errors_1 = require("../../errors");
10
10
  const arn_1 = require("../arn");
11
11
  const aws_stack_1 = require("../aws-stack");
@@ -130,7 +130,7 @@ class Topic extends topic_base_1.TopicBase {
130
130
  throw new errors_1.ValidationError("`fifoThroughputScope` can only be set for FIFO SNS topics.", this);
131
131
  }
132
132
  if (props.messageRetentionPeriodInDays !== undefined &&
133
- !cdktf_1.Token.isUnresolved(props.messageRetentionPeriodInDays) &&
133
+ !cdktn_1.Token.isUnresolved(props.messageRetentionPeriodInDays) &&
134
134
  (!Number.isInteger(props.messageRetentionPeriodInDays) ||
135
135
  props.messageRetentionPeriodInDays > 365 ||
136
136
  props.messageRetentionPeriodInDays < 1)) {
@@ -149,13 +149,13 @@ class Topic extends topic_base_1.TopicBase {
149
149
  topicName = `${prefixName}.fifo`;
150
150
  }
151
151
  if (props.signatureVersion &&
152
- !cdktf_1.Token.isUnresolved(props.signatureVersion) &&
152
+ !cdktn_1.Token.isUnresolved(props.signatureVersion) &&
153
153
  props.signatureVersion !== "1" &&
154
154
  props.signatureVersion !== "2") {
155
155
  throw new errors_1.ValidationError(`signatureVersion must be "1" or "2", received: "${props.signatureVersion}"`, this);
156
156
  }
157
157
  if (props.displayName &&
158
- !cdktf_1.Token.isUnresolved(props.displayName) &&
158
+ !cdktn_1.Token.isUnresolved(props.displayName) &&
159
159
  props.displayName.length > 100) {
160
160
  throw new errors_1.ValidationError(`displayName must be less than or equal to 100 characters, got ${props.displayName.length}`, this);
161
161
  }
@@ -215,9 +215,9 @@ class Topic extends topic_base_1.TopicBase {
215
215
  }
216
216
  exports.Topic = Topic;
217
217
  _a = JSII_RTTI_SYMBOL_1;
218
- Topic[_a] = { fqn: "terraconstructs.aws.notify.Topic", version: "0.2.4" };
218
+ Topic[_a] = { fqn: "terraconstructs.aws.notify.Topic", version: "0.2.6" };
219
219
  /**
220
220
  * Uniquely identifies this class.
221
221
  */
222
222
  Topic.PROPERTY_INJECTION_ID = "terraconstructs.aws.sns.Topic";
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL25vdGlmeS90b3BpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlGQUF5RjtBQUV6RixzREFBK0M7QUFDL0MsaUNBQThCO0FBRTlCLHlDQUErQztBQUMvQyxnQ0FBbUM7QUFFbkMsNENBQXdDO0FBQ3hDLDRDQUE0QztBQUU1Qyw2Q0FBaUQ7QUEwR2pEOztHQUVHO0FBQ0gsSUFBWSxtQkFjWDtBQWRELFdBQVksbUJBQW1CO0lBQzdCOzs7O09BSUc7SUFDSCxzQ0FBZSxDQUFBO0lBRWY7Ozs7T0FJRztJQUNILHFEQUE4QixDQUFBO0FBQ2hDLENBQUMsRUFkVyxtQkFBbUIsbUNBQW5CLG1CQUFtQixRQWM5QjtBQXFDRDs7R0FFRztBQUNILElBQVksZUF5Qlg7QUF6QkQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsZ0NBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsOEJBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsb0NBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCx3Q0FBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILDhDQUEyQixDQUFBO0FBQzdCLENBQUMsRUF6QlcsZUFBZSwrQkFBZixlQUFlLFFBeUIxQjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxhQVVYO0FBVkQsV0FBWSxhQUFhO0lBQ3ZCOztPQUVHO0lBQ0gsNkNBQTRCLENBQUE7SUFFNUI7O09BRUc7SUFDSCxrQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBVlcsYUFBYSw2QkFBYixhQUFhLFFBVXhCO0FBMkJEOzs7O0dBSUc7QUFDSCxNQUFhLEtBQU0sU0FBUSxzQkFBUztJQU9sQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUN4QixLQUFnQixFQUNoQixFQUFVLEVBQ1YsUUFBZ0I7UUFFaEIsT0FBTyxLQUFLLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxF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QUFDOztBQWhOSCxzQkFpTkM7OztBQWhOQzs7R0FFRztBQUNvQiwyQkFBcUIsR0FDMUMsK0JBQStCLEFBRFcsQ0FDViIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjIzMy4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1zbnMvbGliL3RvcGljLnRzXG5cbmltcG9ydCB7IHNuc1RvcGljIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9yc1wiO1xuaW1wb3J0IHsgQXJuRm9ybWF0IH0gZnJvbSBcIi4uL2FyblwiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgKiBhcyBlbmNyeXB0aW9uIGZyb20gXCIuLi9lbmNyeXB0aW9uXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuaW1wb3J0IHsgSVRvcGljLCBUb3BpY0Jhc2UgfSBmcm9tIFwiLi90b3BpYy1iYXNlXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgU05TIHRvcGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9waWNQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIEEgZGV2ZWxvcGVyLWRlZmluZWQgc3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhpcyBTTlMgdG9waWMuXG4gICAqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgbXVzdCBiZSBtYXhpbXVtIDEwMCBjaGFyYWN0ZXJzIGxvbmcsIGluY2x1ZGluZyBoeXBoZW5zICgtKSxcbiAgICogdW5kZXJzY29yZXMgKF8pLCBzcGFjZXMsIGFuZCB0YWJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBuYW1lIGZvciB0aGUgdG9waWMuXG4gICAqXG4gICAqIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbmFtZSwgQVdTIENsb3VkRm9ybWF0aW9uIGdlbmVyYXRlcyBhIHVuaXF1ZVxuICAgKiBwaHlzaWNhbCBJRCBhbmQgdXNlcyB0aGF0IElEIGZvciB0aGUgdG9waWMgbmFtZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sXG4gICAqIHNlZSBOYW1lIFR5cGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IEdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSB0b3BpY05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgS01TIEtleSwgZWl0aGVyIG1hbmFnZWQgYnkgdGhpcyBDREsgYXBwLCBvciBpbXBvcnRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbWFzdGVyS2V5PzogZW5jcnlwdGlvbi5JS2V5O1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGNvbnRlbnQtYmFzZWQgZGVkdXBsaWNhdGlvbiBmb3IgRklGTyB0b3BpY3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gdHJ1ZSB0byBjcmVhdGUgYSBGSUZPIHRvcGljLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBmaWZvPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgZGVsaXZlcnkgc3RhdHVzIGxvZ2dpbmcgY29uZmlndXJhdGlvbnMgZm9yIHRoZSB0b3BpYy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9zbnMtdG9waWMtYXR0cmlidXRlcy5odG1sLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nQ29uZmlncz86IExvZ2dpbmdDb25maWdbXTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXlzIEFtYXpvbiBTTlMgcmV0YWlucyBtZXNzYWdlcy5cbiAgICpcbiAgICogSXQgY2FuIG9ubHkgYmUgc2V0IGZvciBGSUZPIHRvcGljcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9maWZvLW1lc3NhZ2UtYXJjaGl2aW5nLXJlcGxheS5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IGFyY2hpdmUgbWVzc2FnZXNcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gZW5mb3JjZSBlbmNyeXB0aW9uIG9mIGRhdGEgaW4gdHJhbnNpdCB3aGVuIHB1Ymxpc2hpbmcgdG8gdGhlIHRvcGljLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL3Nucy1zZWN1cml0eS1iZXN0LXByYWN0aWNlcy5odG1sI2VuZm9yY2UtZW5jcnlwdGlvbi1kYXRhLWluLXRyYW5zaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmZvcmNlU1NMPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHNpZ25hdHVyZSB2ZXJzaW9uIGNvcnJlc3BvbmRzIHRvIHRoZSBoYXNoaW5nIGFsZ29yaXRobSB1c2VkIHdoaWxlIGNyZWF0aW5nIHRoZSBzaWduYXR1cmUgb2YgdGhlIG5vdGlmaWNhdGlvbnMsXG4gICAqIHN1YnNjcmlwdGlvbiBjb25maXJtYXRpb25zLCBvciB1bnN1YnNjcmliZSBjb25maXJtYXRpb24gbWVzc2FnZXMgc2VudCBieSBBbWF6b24gU05TLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL3Nucy12ZXJpZnktc2lnbmF0dXJlLW9mLW1lc3NhZ2UuaHRtbC5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgc2lnbmF0dXJlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVHJhY2luZyBtb2RlIG9mIGFuIEFtYXpvbiBTTlMgdG9waWMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLWFjdGl2ZS10cmFjaW5nLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgVHJhY2luZ0NvbmZpZy5QQVNTX1RIUk9VR0hcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNpbmdDb25maWc/OiBUcmFjaW5nQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHRocm91Z2hwdXQgcXVvdGEgYW5kIGRlZHVwbGljYXRpb24gYmVoYXZpb3IgdG8gYXBwbHkgZm9yIHRoZSBGSUZPIHRvcGljLlxuICAgKlxuICAgKiBZb3UgY2FuIG9ubHkgc2V0IHRoaXMgcHJvcGVydHkgd2hlbiBgZmlmb2AgaXMgYHRydWVgLlxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWQgLSBTTlMgZGVmYXVsdCBzZXR0aW5nIGlzIEZpZm9UaHJvdWdocHV0U2NvcGUuVE9QSUNcbiAgICovXG4gIHJlYWRvbmx5IGZpZm9UaHJvdWdocHV0U2NvcGU/OiBGaWZvVGhyb3VnaHB1dFNjb3BlO1xufVxuXG4vKipcbiAqIFRoZSB0aHJvdWdocHV0IHF1b3RhIGFuZCBkZWR1cGxpY2F0aW9uIGJlaGF2aW9yIHRvIGFwcGx5IGZvciB0aGUgRklGTyB0b3BpYy5cbiAqL1xuZXhwb3J0IGVudW0gRmlmb1Rocm91Z2hwdXRTY29wZSB7XG4gIC8qKlxuICAgKiBUb3BpYyBzY29wZVxuICAgKiAtIFRocm91Z2hwdXQ6IDMwMDAgbWVzc2FnZXMgcGVyIHNlY29uZCBhbmQgYSBiYW5kd2lkdGggb2YgMjBNQiBwZXIgc2Vjb25kLlxuICAgKiAtIERlZHVwbGljYXRpb246IE1lc3NhZ2UgZGVkdXBsaWNhdGlvbiBpcyB2ZXJpZmllZCBvbiB0aGUgZW50aXJlIEZJRk8gdG9waWMuXG4gICAqL1xuICBUT1BJQyA9IFwiVG9waWNcIixcblxuICAvKipcbiAgICogTWVzc2FnZSBncm91cCBzY29wZVxuICAgKiAtIFRocm91Z2hwdXQ6IE1heGltdW0gcmVnaW9uYWwgbGltaXRzLlxuICAgKiAtIERlZHVwbGljYXRpb246IE1lc3NhZ2UgZGVkdXBsaWNhdGlvbiBpcyBvbmx5IHZlcmlmaWVkIHdpdGhpbiBhIG1lc3NhZ2UgZ3JvdXAuXG4gICAqL1xuICBNRVNTQUdFX0dST1VQID0gXCJNZXNzYWdlR3JvdXBcIixcbn1cblxuLyoqXG4gKiBBIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBmb3IgZGVsaXZlcnkgc3RhdHVzIG9mIG1lc3NhZ2VzIHNlbnQgZnJvbSBTTlMgdG9waWMgdG8gc3Vic2NyaWJlZCBlbmRwb2ludHMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9zbnMtdG9waWMtYXR0cmlidXRlcy5odG1sLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dpbmdDb25maWcge1xuICAvKipcbiAgICogSW5kaWNhdGVzIG9uZSBvZiB0aGUgc3VwcG9ydGVkIHByb3RvY29scyBmb3IgdGhlIFNOUyB0b3BpYy5cbiAgICovXG4gIHJlYWRvbmx5IHByb3RvY29sOiBMb2dnaW5nUHJvdG9jb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0byBiZSB1c2VkIHdoZW4gbG9nZ2luZyBmYWlsZWQgbWVzc2FnZSBkZWxpdmVyaWVzIGluIEFtYXpvbiBDbG91ZFdhdGNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBmYWlsdXJlRmVlZGJhY2tSb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgdG8gYmUgdXNlZCB3aGVuIGxvZ2dpbmcgc3VjY2Vzc2Z1bCBtZXNzYWdlIGRlbGl2ZXJpZXMgaW4gQW1hem9uIENsb3VkV2F0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NGZWVkYmFja1JvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJjZW50YWdlIG9mIHN1Y2Nlc3NmdWwgbWVzc2FnZSBkZWxpdmVyaWVzIHRvIGJlIGxvZ2dlZCBpbiBBbWF6b24gQ2xvdWRXYXRjaC5cbiAgICpcbiAgICogVmFsaWQgdmFsdWVzIGFyZSBpbnRlZ2VyIGJldHdlZW4gMC0xMDBcbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VjY2Vzc0ZlZWRiYWNrU2FtcGxlUmF0ZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgdHlwZSBvZiBzdXBwb3J0ZWQgcHJvdG9jb2wgZm9yIGRlbGl2ZXJ5IHN0YXR1cyBsb2dnaW5nLlxuICovXG5leHBvcnQgZW51bSBMb2dnaW5nUHJvdG9jb2wge1xuICAvKipcbiAgICogSFRUUFxuICAgKi9cbiAgSFRUUCA9IFwiaHR0cFwiLCAvLyBOT1RFOiBBV1NDREsgZW51bSB2YWx1ZSA9IFwiaHR0cC9zXCIsXG5cbiAgLyoqXG4gICAqIEFtYXpvbiBTaW1wbGUgUXVldWUgU2VydmljZVxuICAgKi9cbiAgU1FTID0gXCJzcXNcIixcblxuICAvKipcbiAgICogQVdTIExhbWJkYVxuICAgKi9cbiAgTEFNQkRBID0gXCJsYW1iZGFcIixcblxuICAvKipcbiAgICogQW1hem9uIERhdGEgRmlyZWhvc2VcbiAgICovXG4gIEZJUkVIT1NFID0gXCJmaXJlaG9zZVwiLFxuXG4gIC8qKlxuICAgKiBQbGF0Zm9ybSBhcHBsaWNhdGlvbiBlbmRwb2ludFxuICAgKi9cbiAgQVBQTElDQVRJT04gPSBcImFwcGxpY2F0aW9uXCIsXG59XG5cbi8qKlxuICogVGhlIHRyYWNpbmcgbW9kZSBvZiBhbiBBbWF6b24gU05TIHRvcGljXG4gKi9cbmV4cG9ydCBlbnVtIFRyYWNpbmdDb25maWcge1xuICAvKipcbiAgICogVGhlIG1vZGUgdGhhdCB0b3BpYyBwYXNzZXMgdHJhY2UgaGVhZGVycyByZWNlaXZlZCBmcm9tIHRoZSBBbWF6b24gU05TIHB1Ymxpc2hlciB0byBpdHMgc3Vic2NyaXB0aW9uLlxuICAgKi9cbiAgUEFTU19USFJPVUdIID0gXCJQYXNzVGhyb3VnaFwiLFxuXG4gIC8qKlxuICAgKiBUaGUgbW9kZSB0aGF0IEFtYXpvbiBTTlMgdmVuZCBYLVJheSBzZWdtZW50IGRhdGEgdG8gdG9waWMgb3duZXIgYWNjb3VudCBpZiB0aGUgc2FtcGxlZCBmbGFnIGluIHRoZSB0cmFjaW5nIGhlYWRlciBpcyB0cnVlLlxuICAgKi9cbiAgQUNUSVZFID0gXCJBY3RpdmVcIixcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFNOUyB0b3BpYyBkZWZpbmVkIG91dHNpZGUgb2YgdGhpcyBzdGFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb3BpY0F0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgU05TIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9waWNBcm46IHN0cmluZztcblxuICAvKipcbiAgICogS01TIGVuY3J5cHRpb24ga2V5IEFSTiwgaWYgdGhpcyB0b3BpYyBpcyBzZXJ2ZXItc2lkZSBlbmNyeXB0ZWQgYnkgYSBLTVMga2V5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGtleUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBjb250ZW50LWJhc2VkIGRlZHVwbGljYXRpb24gaXMgZW5hYmxlZC5cbiAgICogT25seSBhcHBsaWNhYmxlIGZvciBGSUZPIHRvcGljcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgbmV3IFNOUyB0b3BpY1xuICpcbiAqIEByZXNvdXJjZSBhd3Nfc25zX3RvcGljXG4gKi9cbmV4cG9ydCBjbGFzcyBUb3BpYyBleHRlbmRzIFRvcGljQmFzZSB7XG4gIC8qKlxuICAgKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID1cbiAgICBcInRlcnJhY29uc3RydWN0cy5hd3Muc25zLlRvcGljXCI7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBTTlMgdG9waWMgcHJvdmlkZWQgYW4gQVJOXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIHRvcGljQXJuIHRvcGljIEFSTiAoaS5lLiBhcm46YXdzOnNuczp1cy1lYXN0LTI6NDQ0NDU1NTU2NjY2Ok15VG9waWMpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Ub3BpY0FybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdG9waWNBcm46IHN0cmluZyxcbiAgKTogSVRvcGljIHtcbiAgICByZXR1cm4gVG9waWMuZnJvbVRvcGljQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgdG9waWNBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIFNOUyB0b3BpYyBwcm92aWRlZCBhIHRvcGljIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gYXR0cnMgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIHRvcGljIHRvIGltcG9ydFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVG9waWNBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogVG9waWNBdHRyaWJ1dGVzLFxuICApOiBJVG9waWMge1xuICAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpO1xuICAgIGNvbnN0IHRvcGljTmFtZSA9IHN0YWNrLnNwbGl0QXJuKFxuICAgICAgYXR0cnMudG9waWNBcm4sXG4gICAgICBBcm5Gb3JtYXQuTk9fUkVTT1VSQ0VfTkFNRSxcbiAgICApLnJlc291cmNlO1xuICAgIGNvbnN0IGZpZm8gPSB0b3BpY05hbWUuZW5kc1dpdGgoXCIuZmlmb1wiKTtcblxuICAgIGlmIChhdHRycy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uICYmICFmaWZvKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbm5vdCBpbXBvcnQgdG9waWM7IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24gaXMgb25seSBhdmFpbGFibGUgZm9yIEZJRk8gU05TIHRvcGljcy5cIixcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFRvcGljQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdG9waWNBcm4gPSBhdHRycy50b3BpY0FybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0b3BpY05hbWUgPSB0b3BpY05hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbWFzdGVyS2V5ID0gYXR0cnMua2V5QXJuXG4gICAgICAgID8gZW5jcnlwdGlvbi5LZXkuZnJvbUtleUFybih0aGlzLCBcIktleVwiLCBhdHRycy5rZXlBcm4pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGZpZm8gPSBmaWZvO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24gPVxuICAgICAgICBhdHRycy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uIHx8IGZhbHNlO1xuICAgICAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGVudmlyb25tZW50RnJvbUFybjogYXR0cnMudG9waWNBcm4sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgdG9waWNBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRvcGljTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWFzdGVyS2V5PzogZW5jcnlwdGlvbi5JS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbjogYm9vbGVhbjtcbiAgcHVibGljIHJlYWRvbmx5IGZpZm86IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IHNuc1RvcGljLlNuc1RvcGljO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUb3BpY1Byb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMuZW5mb3JjZVNTTCA9IHByb3BzLmVuZm9yY2VTU0w7XG5cbiAgICBpZiAocHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiAmJiAhcHJvcHMuZmlmbykge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJDb250ZW50IGJhc2VkIGRlZHVwbGljYXRpb24gY2FuIG9ubHkgYmUgZW5hYmxlZCBmb3IgRklGTyBTTlMgdG9waWNzLlwiLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMgJiYgIXByb3BzLmZpZm8pIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIFwiYG1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXNgIGlzIG9ubHkgdmFsaWQgZm9yIEZJRk8gU05TIHRvcGljcy5cIixcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChwcm9wcy5maWZvVGhyb3VnaHB1dFNjb3BlICYmICFwcm9wcy5maWZvKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBcImBmaWZvVGhyb3VnaHB1dFNjb3BlYCBjYW4gb25seSBiZSBzZXQgZm9yIEZJRk8gU05TIHRvcGljcy5cIixcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzKSAmJlxuICAgICAgKCFOdW1iZXIuaXNJbnRlZ2VyKHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMpIHx8XG4gICAgICAgIHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMgPiAzNjUgfHxcbiAgICAgICAgcHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5cyA8IDEpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBcImBtZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzYCBtdXN0IGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAzNjVcIixcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHRvcGljTmFtZSA9IHByb3BzLnRvcGljTmFtZTtcbiAgICBpZiAocHJvcHMuZmlmbyAmJiBwcm9wcy50b3BpY05hbWUgJiYgIXByb3BzLnRvcGljTmFtZS5lbmRzV2l0aChcIi5maWZvXCIpKSB7XG4gICAgICB0b3BpY05hbWUgPSBwcm9wcy50b3BpY05hbWUgKyBcIi5maWZvXCI7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5maWZvICYmICFwcm9wcy50b3BpY05hbWUpIHtcbiAgICAgIC8vIE1heCBsZW5ndGggYWxsb3dlZCBieSBDbG91ZEZvcm1hdGlvbiBpcyAyNTYsIHdlIHN1YnRyYWN0IDUgdG8gYWxsb3cgZm9yIFwiLmZpZm9cIiBzdWZmaXhcbiAgICAgIGNvbnN0IHByZWZpeE5hbWUgPSB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIG1heExlbmd0aDogMjU2IC0gNSxcbiAgICAgICAgc2VwYXJhdG9yOiBcIi1cIixcbiAgICAgIH0pO1xuICAgICAgdG9waWNOYW1lID0gYCR7cHJlZml4TmFtZX0uZmlmb2A7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuc2lnbmF0dXJlVmVyc2lvbiAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5zaWduYXR1cmVWZXJzaW9uKSAmJlxuICAgICAgcHJvcHMuc2lnbmF0dXJlVmVyc2lvbiAhPT0gXCIxXCIgJiZcbiAgICAgIHByb3BzLnNpZ25hdHVyZVZlcnNpb24gIT09IFwiMlwiXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgc2lnbmF0dXJlVmVyc2lvbiBtdXN0IGJlIFwiMVwiIG9yIFwiMlwiLCByZWNlaXZlZDogXCIke3Byb3BzLnNpZ25hdHVyZVZlcnNpb259XCJgLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy5kaXNwbGF5TmFtZSAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5kaXNwbGF5TmFtZSkgJiZcbiAgICAgIHByb3BzLmRpc3BsYXlOYW1lLmxlbmd0aCA+IDEwMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYGRpc3BsYXlOYW1lIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEwMCBjaGFyYWN0ZXJzLCBnb3QgJHtwcm9wcy5kaXNwbGF5TmFtZS5sZW5ndGh9YCxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBzbnNUb3BpYy5TbnNUb3BpYyh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIGFyY2hpdmVQb2xpY3k6IHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXNcbiAgICAgICAgPyBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBNZXNzYWdlUmV0ZW50aW9uUGVyaW9kOiBwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzLFxuICAgICAgICAgIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZGlzcGxheU5hbWU6IHByb3BzLmRpc3BsYXlOYW1lLFxuICAgICAgbmFtZTogdG9waWNOYW1lLFxuICAgICAga21zTWFzdGVyS2V5SWQ6IHByb3BzLm1hc3RlcktleT8ua2V5QXJuLFxuICAgICAgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbjogcHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbixcbiAgICAgIGZpZm9Ub3BpYzogcHJvcHMuZmlmbyxcbiAgICAgIHNpZ25hdHVyZVZlcnNpb246IHByb3BzLnNpZ25hdHVyZVZlcnNpb25cbiAgICAgICAgPyBwYXJzZUludChwcm9wcy5zaWduYXR1cmVWZXJzaW9uLCAxMClcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB0cmFjaW5nQ29uZmlnOiBwcm9wcy50cmFjaW5nQ29uZmlnLFxuICAgICAgZmlmb1Rocm91Z2hwdXRTY29wZTogcHJvcHMuZmlmb1Rocm91Z2hwdXRTY29wZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBsb2dnaW5nIGNvbmZpZyBvdmVycmlkZXNcbiAgICBpZiAocHJvcHMubG9nZ2luZ0NvbmZpZ3MpIHtcbiAgICAgIHByb3BzLmxvZ2dpbmdDb25maWdzLmZvckVhY2goKGMpID0+IHRoaXMuYWRkTG9nZ2luZ0NvbmZpZyhjKSk7XG4gICAgfVxuXG4gICAgdGhpcy50b3BpY0FybiA9IHRoaXMucmVzb3VyY2UuYXJuO1xuICAgIHRoaXMudG9waWNOYW1lID0gdGhpcy5yZXNvdXJjZS5uYW1lO1xuICAgIHRoaXMubWFzdGVyS2V5ID0gcHJvcHMubWFzdGVyS2V5O1xuICAgIHRoaXMuZmlmbyA9IHByb3BzLmZpZm8gfHwgZmFsc2U7XG4gICAgdGhpcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uID0gcHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiB8fCBmYWxzZTtcblxuICAgIGlmICh0aGlzLmVuZm9yY2VTU0wpIHtcbiAgICAgIHRoaXMuYWRkU1NMUG9saWN5KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBkZWxpdmVyeSBzdGF0dXMgbG9nZ2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSB0b3BpYy5cbiAgICovXG4gIHB1YmxpYyBhZGRMb2dnaW5nQ29uZmlnKGNvbmZpZzogTG9nZ2luZ0NvbmZpZykge1xuICAgIGlmIChjb25maWcuc3VjY2Vzc0ZlZWRiYWNrU2FtcGxlUmF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByYXRlID0gY29uZmlnLnN1Y2Nlc3NGZWVkYmFja1NhbXBsZVJhdGU7XG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIocmF0ZSkgfHwgcmF0ZSA8IDAgfHwgcmF0ZSA+IDEwMCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIFwiU3VjY2VzcyBmZWVkYmFjayBzYW1wbGUgcmF0ZSBtdXN0IGJlIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCAxMDBcIixcbiAgICAgICAgICB0aGlzLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb25maWcuZmFpbHVyZUZlZWRiYWNrUm9sZSkge1xuICAgICAgdGhpcy5yZXNvdXJjZVtgJHtjb25maWcucHJvdG9jb2x9RmFpbHVyZUZlZWRiYWNrUm9sZUFybmBdID1cbiAgICAgICAgY29uZmlnLmZhaWx1cmVGZWVkYmFja1JvbGUucm9sZUFybjtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnN1Y2Nlc3NGZWVkYmFja1JvbGUpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VbYCR7Y29uZmlnLnByb3RvY29sfVN1Y2Nlc3NGZWVkYmFja1JvbGVBcm5gXSA9XG4gICAgICAgIGNvbmZpZy5zdWNjZXNzRmVlZGJhY2tSb2xlLnJvbGVBcm47XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5zdWNjZXNzRmVlZGJhY2tTYW1wbGVSYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VbYCR7Y29uZmlnLnByb3RvY29sfVN1Y2Nlc3NGZWVkYmFja1NhbXBsZVJhdGVgXSA9XG4gICAgICAgIGNvbmZpZy5zdWNjZXNzRmVlZGJhY2tTYW1wbGVSYXRlO1xuICAgIH1cbiAgfVxufVxuIl19
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL25vdGlmeS90b3BpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlGQUF5RjtBQUV6RixzREFBK0M7QUFDL0MsaUNBQThCO0FBRTlCLHlDQUErQztBQUMvQyxnQ0FBbUM7QUFFbkMsNENBQXdDO0FBQ3hDLDRDQUE0QztBQUU1Qyw2Q0FBaUQ7QUEwR2pEOztHQUVHO0FBQ0gsSUFBWSxtQkFjWDtBQWRELFdBQVksbUJBQW1CO0lBQzdCOzs7O09BSUc7SUFDSCxzQ0FBZSxDQUFBO0lBRWY7Ozs7T0FJRztJQUNILHFEQUE4QixDQUFBO0FBQ2hDLENBQUMsRUFkVyxtQkFBbUIsbUNBQW5CLG1CQUFtQixRQWM5QjtBQXFDRDs7R0FFRztBQUNILElBQVksZUF5Qlg7QUF6QkQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsZ0NBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsOEJBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsb0NBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCx3Q0FBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILDhDQUEyQixDQUFBO0FBQzdCLENBQUMsRUF6QlcsZUFBZSwrQkFBZixlQUFlLFFBeUIxQjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxhQVVYO0FBVkQsV0FBWSxhQUFhO0lBQ3ZCOztPQUVHO0lBQ0gsNkNBQTRCLENBQUE7SUFFNUI7O09BRUc7SUFDSCxrQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBVlcsYUFBYSw2QkFBYixhQUFhLFFBVXhCO0FBMkJEOzs7O0dBSUc7QUFDSCxNQUFhLEtBQU0sU0FBUSxzQkFBUztJQU9sQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUN4QixLQUFnQixFQUNoQixFQUFVLEVBQ1YsUUFBZ0I7UUFFaEIsT0FBTyxLQUFLLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxF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QUFDOztBQWhOSCxzQkFpTkM7OztBQWhOQzs7R0FFRztBQUNvQiwyQkFBcUIsR0FDMUMsK0JBQStCLEFBRFcsQ0FDViIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjIzMy4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1zbnMvbGliL3RvcGljLnRzXG5cbmltcG9ydCB7IHNuc1RvcGljIH0gZnJvbSBcIkBjZGt0bi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9yc1wiO1xuaW1wb3J0IHsgQXJuRm9ybWF0IH0gZnJvbSBcIi4uL2FyblwiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgKiBhcyBlbmNyeXB0aW9uIGZyb20gXCIuLi9lbmNyeXB0aW9uXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuaW1wb3J0IHsgSVRvcGljLCBUb3BpY0Jhc2UgfSBmcm9tIFwiLi90b3BpYy1iYXNlXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgU05TIHRvcGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9waWNQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIEEgZGV2ZWxvcGVyLWRlZmluZWQgc3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhpcyBTTlMgdG9waWMuXG4gICAqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgbXVzdCBiZSBtYXhpbXVtIDEwMCBjaGFyYWN0ZXJzIGxvbmcsIGluY2x1ZGluZyBoeXBoZW5zICgtKSxcbiAgICogdW5kZXJzY29yZXMgKF8pLCBzcGFjZXMsIGFuZCB0YWJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBuYW1lIGZvciB0aGUgdG9waWMuXG4gICAqXG4gICAqIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbmFtZSwgQVdTIENsb3VkRm9ybWF0aW9uIGdlbmVyYXRlcyBhIHVuaXF1ZVxuICAgKiBwaHlzaWNhbCBJRCBhbmQgdXNlcyB0aGF0IElEIGZvciB0aGUgdG9waWMgbmFtZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sXG4gICAqIHNlZSBOYW1lIFR5cGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IEdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSB0b3BpY05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgS01TIEtleSwgZWl0aGVyIG1hbmFnZWQgYnkgdGhpcyBDREsgYXBwLCBvciBpbXBvcnRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbWFzdGVyS2V5PzogZW5jcnlwdGlvbi5JS2V5O1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGNvbnRlbnQtYmFzZWQgZGVkdXBsaWNhdGlvbiBmb3IgRklGTyB0b3BpY3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gdHJ1ZSB0byBjcmVhdGUgYSBGSUZPIHRvcGljLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBmaWZvPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgZGVsaXZlcnkgc3RhdHVzIGxvZ2dpbmcgY29uZmlndXJhdGlvbnMgZm9yIHRoZSB0b3BpYy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9zbnMtdG9waWMtYXR0cmlidXRlcy5odG1sLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nQ29uZmlncz86IExvZ2dpbmdDb25maWdbXTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXlzIEFtYXpvbiBTTlMgcmV0YWlucyBtZXNzYWdlcy5cbiAgICpcbiAgICogSXQgY2FuIG9ubHkgYmUgc2V0IGZvciBGSUZPIHRvcGljcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9maWZvLW1lc3NhZ2UtYXJjaGl2aW5nLXJlcGxheS5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IGFyY2hpdmUgbWVzc2FnZXNcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gZW5mb3JjZSBlbmNyeXB0aW9uIG9mIGRhdGEgaW4gdHJhbnNpdCB3aGVuIHB1Ymxpc2hpbmcgdG8gdGhlIHRvcGljLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL3Nucy1zZWN1cml0eS1iZXN0LXByYWN0aWNlcy5odG1sI2VuZm9yY2UtZW5jcnlwdGlvbi1kYXRhLWluLXRyYW5zaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmZvcmNlU1NMPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHNpZ25hdHVyZSB2ZXJzaW9uIGNvcnJlc3BvbmRzIHRvIHRoZSBoYXNoaW5nIGFsZ29yaXRobSB1c2VkIHdoaWxlIGNyZWF0aW5nIHRoZSBzaWduYXR1cmUgb2YgdGhlIG5vdGlmaWNhdGlvbnMsXG4gICAqIHN1YnNjcmlwdGlvbiBjb25maXJtYXRpb25zLCBvciB1bnN1YnNjcmliZSBjb25maXJtYXRpb24gbWVzc2FnZXMgc2VudCBieSBBbWF6b24gU05TLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL3Nucy12ZXJpZnktc2lnbmF0dXJlLW9mLW1lc3NhZ2UuaHRtbC5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgc2lnbmF0dXJlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVHJhY2luZyBtb2RlIG9mIGFuIEFtYXpvbiBTTlMgdG9waWMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLWFjdGl2ZS10cmFjaW5nLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgVHJhY2luZ0NvbmZpZy5QQVNTX1RIUk9VR0hcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNpbmdDb25maWc/OiBUcmFjaW5nQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHRocm91Z2hwdXQgcXVvdGEgYW5kIGRlZHVwbGljYXRpb24gYmVoYXZpb3IgdG8gYXBwbHkgZm9yIHRoZSBGSUZPIHRvcGljLlxuICAgKlxuICAgKiBZb3UgY2FuIG9ubHkgc2V0IHRoaXMgcHJvcGVydHkgd2hlbiBgZmlmb2AgaXMgYHRydWVgLlxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWQgLSBTTlMgZGVmYXVsdCBzZXR0aW5nIGlzIEZpZm9UaHJvdWdocHV0U2NvcGUuVE9QSUNcbiAgICovXG4gIHJlYWRvbmx5IGZpZm9UaHJvdWdocHV0U2NvcGU/OiBGaWZvVGhyb3VnaHB1dFNjb3BlO1xufVxuXG4vKipcbiAqIFRoZSB0aHJvdWdocHV0IHF1b3RhIGFuZCBkZWR1cGxpY2F0aW9uIGJlaGF2aW9yIHRvIGFwcGx5IGZvciB0aGUgRklGTyB0b3BpYy5cbiAqL1xuZXhwb3J0IGVudW0gRmlmb1Rocm91Z2hwdXRTY29wZSB7XG4gIC8qKlxuICAgKiBUb3BpYyBzY29wZVxuICAgKiAtIFRocm91Z2hwdXQ6IDMwMDAgbWVzc2FnZXMgcGVyIHNlY29uZCBhbmQgYSBiYW5kd2lkdGggb2YgMjBNQiBwZXIgc2Vjb25kLlxuICAgKiAtIERlZHVwbGljYXRpb246IE1lc3NhZ2UgZGVkdXBsaWNhdGlvbiBpcyB2ZXJpZmllZCBvbiB0aGUgZW50aXJlIEZJRk8gdG9waWMuXG4gICAqL1xuICBUT1BJQyA9IFwiVG9waWNcIixcblxuICAvKipcbiAgICogTWVzc2FnZSBncm91cCBzY29wZVxuICAgKiAtIFRocm91Z2hwdXQ6IE1heGltdW0gcmVnaW9uYWwgbGltaXRzLlxuICAgKiAtIERlZHVwbGljYXRpb246IE1lc3NhZ2UgZGVkdXBsaWNhdGlvbiBpcyBvbmx5IHZlcmlmaWVkIHdpdGhpbiBhIG1lc3NhZ2UgZ3JvdXAuXG4gICAqL1xuICBNRVNTQUdFX0dST1VQID0gXCJNZXNzYWdlR3JvdXBcIixcbn1cblxuLyoqXG4gKiBBIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBmb3IgZGVsaXZlcnkgc3RhdHVzIG9mIG1lc3NhZ2VzIHNlbnQgZnJvbSBTTlMgdG9waWMgdG8gc3Vic2NyaWJlZCBlbmRwb2ludHMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9zbnMtdG9waWMtYXR0cmlidXRlcy5odG1sLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dpbmdDb25maWcge1xuICAvKipcbiAgICogSW5kaWNhdGVzIG9uZSBvZiB0aGUgc3VwcG9ydGVkIHByb3RvY29scyBmb3IgdGhlIFNOUyB0b3BpYy5cbiAgICovXG4gIHJlYWRvbmx5IHByb3RvY29sOiBMb2dnaW5nUHJvdG9jb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0byBiZSB1c2VkIHdoZW4gbG9nZ2luZyBmYWlsZWQgbWVzc2FnZSBkZWxpdmVyaWVzIGluIEFtYXpvbiBDbG91ZFdhdGNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBmYWlsdXJlRmVlZGJhY2tSb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgdG8gYmUgdXNlZCB3aGVuIGxvZ2dpbmcgc3VjY2Vzc2Z1bCBtZXNzYWdlIGRlbGl2ZXJpZXMgaW4gQW1hem9uIENsb3VkV2F0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NGZWVkYmFja1JvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJjZW50YWdlIG9mIHN1Y2Nlc3NmdWwgbWVzc2FnZSBkZWxpdmVyaWVzIHRvIGJlIGxvZ2dlZCBpbiBBbWF6b24gQ2xvdWRXYXRjaC5cbiAgICpcbiAgICogVmFsaWQgdmFsdWVzIGFyZSBpbnRlZ2VyIGJldHdlZW4gMC0xMDBcbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VjY2Vzc0ZlZWRiYWNrU2FtcGxlUmF0ZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgdHlwZSBvZiBzdXBwb3J0ZWQgcHJvdG9jb2wgZm9yIGRlbGl2ZXJ5IHN0YXR1cyBsb2dnaW5nLlxuICovXG5leHBvcnQgZW51bSBMb2dnaW5nUHJvdG9jb2wge1xuICAvKipcbiAgICogSFRUUFxuICAgKi9cbiAgSFRUUCA9IFwiaHR0cFwiLCAvLyBOT1RFOiBBV1NDREsgZW51bSB2YWx1ZSA9IFwiaHR0cC9zXCIsXG5cbiAgLyoqXG4gICAqIEFtYXpvbiBTaW1wbGUgUXVldWUgU2VydmljZVxuICAgKi9cbiAgU1FTID0gXCJzcXNcIixcblxuICAvKipcbiAgICogQVdTIExhbWJkYVxuICAgKi9cbiAgTEFNQkRBID0gXCJsYW1iZGFcIixcblxuICAvKipcbiAgICogQW1hem9uIERhdGEgRmlyZWhvc2VcbiAgICovXG4gIEZJUkVIT1NFID0gXCJmaXJlaG9zZVwiLFxuXG4gIC8qKlxuICAgKiBQbGF0Zm9ybSBhcHBsaWNhdGlvbiBlbmRwb2ludFxuICAgKi9cbiAgQVBQTElDQVRJT04gPSBcImFwcGxpY2F0aW9uXCIsXG59XG5cbi8qKlxuICogVGhlIHRyYWNpbmcgbW9kZSBvZiBhbiBBbWF6b24gU05TIHRvcGljXG4gKi9cbmV4cG9ydCBlbnVtIFRyYWNpbmdDb25maWcge1xuICAvKipcbiAgICogVGhlIG1vZGUgdGhhdCB0b3BpYyBwYXNzZXMgdHJhY2UgaGVhZGVycyByZWNlaXZlZCBmcm9tIHRoZSBBbWF6b24gU05TIHB1Ymxpc2hlciB0byBpdHMgc3Vic2NyaXB0aW9uLlxuICAgKi9cbiAgUEFTU19USFJPVUdIID0gXCJQYXNzVGhyb3VnaFwiLFxuXG4gIC8qKlxuICAgKiBUaGUgbW9kZSB0aGF0IEFtYXpvbiBTTlMgdmVuZCBYLVJheSBzZWdtZW50IGRhdGEgdG8gdG9waWMgb3duZXIgYWNjb3VudCBpZiB0aGUgc2FtcGxlZCBmbGFnIGluIHRoZSB0cmFjaW5nIGhlYWRlciBpcyB0cnVlLlxuICAgKi9cbiAgQUNUSVZFID0gXCJBY3RpdmVcIixcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFNOUyB0b3BpYyBkZWZpbmVkIG91dHNpZGUgb2YgdGhpcyBzdGFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb3BpY0F0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgU05TIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9waWNBcm46IHN0cmluZztcblxuICAvKipcbiAgICogS01TIGVuY3J5cHRpb24ga2V5IEFSTiwgaWYgdGhpcyB0b3BpYyBpcyBzZXJ2ZXItc2lkZSBlbmNyeXB0ZWQgYnkgYSBLTVMga2V5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGtleUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBjb250ZW50LWJhc2VkIGRlZHVwbGljYXRpb24gaXMgZW5hYmxlZC5cbiAgICogT25seSBhcHBsaWNhYmxlIGZvciBGSUZPIHRvcGljcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgbmV3IFNOUyB0b3BpY1xuICpcbiAqIEByZXNvdXJjZSBhd3Nfc25zX3RvcGljXG4gKi9cbmV4cG9ydCBjbGFzcyBUb3BpYyBleHRlbmRzIFRvcGljQmFzZSB7XG4gIC8qKlxuICAgKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID1cbiAgICBcInRlcnJhY29uc3RydWN0cy5hd3Muc25zLlRvcGljXCI7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBTTlMgdG9waWMgcHJvdmlkZWQgYW4gQVJOXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIHRvcGljQXJuIHRvcGljIEFSTiAoaS5lLiBhcm46YXdzOnNuczp1cy1lYXN0LTI6NDQ0NDU1NTU2NjY2Ok15VG9waWMpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Ub3BpY0FybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdG9waWNBcm46IHN0cmluZyxcbiAgKTogSVRvcGljIHtcbiAgICByZXR1cm4gVG9waWMuZnJvbVRvcGljQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgdG9waWNBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIFNOUyB0b3BpYyBwcm92aWRlZCBhIHRvcGljIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gYXR0cnMgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIHRvcGljIHRvIGltcG9ydFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVG9waWNBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogVG9waWNBdHRyaWJ1dGVzLFxuICApOiBJVG9waWMge1xuICAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpO1xuICAgIGNvbnN0IHRvcGljTmFtZSA9IHN0YWNrLnNwbGl0QXJuKFxuICAgICAgYXR0cnMudG9waWNBcm4sXG4gICAgICBBcm5Gb3JtYXQuTk9fUkVTT1VSQ0VfTkFNRSxcbiAgICApLnJlc291cmNlO1xuICAgIGNvbnN0IGZpZm8gPSB0b3BpY05hbWUuZW5kc1dpdGgoXCIuZmlmb1wiKTtcblxuICAgIGlmIChhdHRycy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uICYmICFmaWZvKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbm5vdCBpbXBvcnQgdG9waWM7IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24gaXMgb25seSBhdmFpbGFibGUgZm9yIEZJRk8gU05TIHRvcGljcy5cIixcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFRvcGljQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdG9waWNBcm4gPSBhdHRycy50b3BpY0FybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0b3BpY05hbWUgPSB0b3BpY05hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbWFzdGVyS2V5ID0gYXR0cnMua2V5QXJuXG4gICAgICAgID8gZW5jcnlwdGlvbi5LZXkuZnJvbUtleUFybih0aGlzLCBcIktleVwiLCBhdHRycy5rZXlBcm4pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGZpZm8gPSBmaWZvO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24gPVxuICAgICAgICBhdHRycy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uIHx8IGZhbHNlO1xuICAgICAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGVudmlyb25tZW50RnJvbUFybjogYXR0cnMudG9waWNBcm4sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgdG9waWNBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRvcGljTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWFzdGVyS2V5PzogZW5jcnlwdGlvbi5JS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbjogYm9vbGVhbjtcbiAgcHVibGljIHJlYWRvbmx5IGZpZm86IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IHNuc1RvcGljLlNuc1RvcGljO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUb3BpY1Byb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMuZW5mb3JjZVNTTCA9IHByb3BzLmVuZm9yY2VTU0w7XG5cbiAgICBpZiAocHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiAmJiAhcHJvcHMuZmlmbykge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJDb250ZW50IGJhc2VkIGRlZHVwbGljYXRpb24gY2FuIG9ubHkgYmUgZW5hYmxlZCBmb3IgRklGTyBTTlMgdG9waWNzLlwiLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMgJiYgIXByb3BzLmZpZm8pIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIFwiYG1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXNgIGlzIG9ubHkgdmFsaWQgZm9yIEZJRk8gU05TIHRvcGljcy5cIixcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChwcm9wcy5maWZvVGhyb3VnaHB1dFNjb3BlICYmICFwcm9wcy5maWZvKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBcImBmaWZvVGhyb3VnaHB1dFNjb3BlYCBjYW4gb25seSBiZSBzZXQgZm9yIEZJRk8gU05TIHRvcGljcy5cIixcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzKSAmJlxuICAgICAgKCFOdW1iZXIuaXNJbnRlZ2VyKHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMpIHx8XG4gICAgICAgIHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMgPiAzNjUgfHxcbiAgICAgICAgcHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5cyA8IDEpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBcImBtZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzYCBtdXN0IGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAzNjVcIixcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHRvcGljTmFtZSA9IHByb3BzLnRvcGljTmFtZTtcbiAgICBpZiAocHJvcHMuZmlmbyAmJiBwcm9wcy50b3BpY05hbWUgJiYgIXByb3BzLnRvcGljTmFtZS5lbmRzV2l0aChcIi5maWZvXCIpKSB7XG4gICAgICB0b3BpY05hbWUgPSBwcm9wcy50b3BpY05hbWUgKyBcIi5maWZvXCI7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5maWZvICYmICFwcm9wcy50b3BpY05hbWUpIHtcbiAgICAgIC8vIE1heCBsZW5ndGggYWxsb3dlZCBieSBDbG91ZEZvcm1hdGlvbiBpcyAyNTYsIHdlIHN1YnRyYWN0IDUgdG8gYWxsb3cgZm9yIFwiLmZpZm9cIiBzdWZmaXhcbiAgICAgIGNvbnN0IHByZWZpeE5hbWUgPSB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIG1heExlbmd0aDogMjU2IC0gNSxcbiAgICAgICAgc2VwYXJhdG9yOiBcIi1cIixcbiAgICAgIH0pO1xuICAgICAgdG9waWNOYW1lID0gYCR7cHJlZml4TmFtZX0uZmlmb2A7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuc2lnbmF0dXJlVmVyc2lvbiAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5zaWduYXR1cmVWZXJzaW9uKSAmJlxuICAgICAgcHJvcHMuc2lnbmF0dXJlVmVyc2lvbiAhPT0gXCIxXCIgJiZcbiAgICAgIHByb3BzLnNpZ25hdHVyZVZlcnNpb24gIT09IFwiMlwiXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgc2lnbmF0dXJlVmVyc2lvbiBtdXN0IGJlIFwiMVwiIG9yIFwiMlwiLCByZWNlaXZlZDogXCIke3Byb3BzLnNpZ25hdHVyZVZlcnNpb259XCJgLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy5kaXNwbGF5TmFtZSAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5kaXNwbGF5TmFtZSkgJiZcbiAgICAgIHByb3BzLmRpc3BsYXlOYW1lLmxlbmd0aCA+IDEwMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYGRpc3BsYXlOYW1lIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEwMCBjaGFyYWN0ZXJzLCBnb3QgJHtwcm9wcy5kaXNwbGF5TmFtZS5sZW5ndGh9YCxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBzbnNUb3BpYy5TbnNUb3BpYyh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIGFyY2hpdmVQb2xpY3k6IHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXNcbiAgICAgICAgPyBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBNZXNzYWdlUmV0ZW50aW9uUGVyaW9kOiBwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzLFxuICAgICAgICAgIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZGlzcGxheU5hbWU6IHByb3BzLmRpc3BsYXlOYW1lLFxuICAgICAgbmFtZTogdG9waWNOYW1lLFxuICAgICAga21zTWFzdGVyS2V5SWQ6IHByb3BzLm1hc3RlcktleT8ua2V5QXJuLFxuICAgICAgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbjogcHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbixcbiAgICAgIGZpZm9Ub3BpYzogcHJvcHMuZmlmbyxcbiAgICAgIHNpZ25hdHVyZVZlcnNpb246IHByb3BzLnNpZ25hdHVyZVZlcnNpb25cbiAgICAgICAgPyBwYXJzZUludChwcm9wcy5zaWduYXR1cmVWZXJzaW9uLCAxMClcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB0cmFjaW5nQ29uZmlnOiBwcm9wcy50cmFjaW5nQ29uZmlnLFxuICAgICAgZmlmb1Rocm91Z2hwdXRTY29wZTogcHJvcHMuZmlmb1Rocm91Z2hwdXRTY29wZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBsb2dnaW5nIGNvbmZpZyBvdmVycmlkZXNcbiAgICBpZiAocHJvcHMubG9nZ2luZ0NvbmZpZ3MpIHtcbiAgICAgIHByb3BzLmxvZ2dpbmdDb25maWdzLmZvckVhY2goKGMpID0+IHRoaXMuYWRkTG9nZ2luZ0NvbmZpZyhjKSk7XG4gICAgfVxuXG4gICAgdGhpcy50b3BpY0FybiA9IHRoaXMucmVzb3VyY2UuYXJuO1xuICAgIHRoaXMudG9waWNOYW1lID0gdGhpcy5yZXNvdXJjZS5uYW1lO1xuICAgIHRoaXMubWFzdGVyS2V5ID0gcHJvcHMubWFzdGVyS2V5O1xuICAgIHRoaXMuZmlmbyA9IHByb3BzLmZpZm8gfHwgZmFsc2U7XG4gICAgdGhpcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uID0gcHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiB8fCBmYWxzZTtcblxuICAgIGlmICh0aGlzLmVuZm9yY2VTU0wpIHtcbiAgICAgIHRoaXMuYWRkU1NMUG9saWN5KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBkZWxpdmVyeSBzdGF0dXMgbG9nZ2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSB0b3BpYy5cbiAgICovXG4gIHB1YmxpYyBhZGRMb2dnaW5nQ29uZmlnKGNvbmZpZzogTG9nZ2luZ0NvbmZpZykge1xuICAgIGlmIChjb25maWcuc3VjY2Vzc0ZlZWRiYWNrU2FtcGxlUmF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByYXRlID0gY29uZmlnLnN1Y2Nlc3NGZWVkYmFja1NhbXBsZVJhdGU7XG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIocmF0ZSkgfHwgcmF0ZSA8IDAgfHwgcmF0ZSA+IDEwMCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIFwiU3VjY2VzcyBmZWVkYmFjayBzYW1wbGUgcmF0ZSBtdXN0IGJlIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCAxMDBcIixcbiAgICAgICAgICB0aGlzLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb25maWcuZmFpbHVyZUZlZWRiYWNrUm9sZSkge1xuICAgICAgdGhpcy5yZXNvdXJjZVtgJHtjb25maWcucHJvdG9jb2x9RmFpbHVyZUZlZWRiYWNrUm9sZUFybmBdID1cbiAgICAgICAgY29uZmlnLmZhaWx1cmVGZWVkYmFja1JvbGUucm9sZUFybjtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnN1Y2Nlc3NGZWVkYmFja1JvbGUpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VbYCR7Y29uZmlnLnByb3RvY29sfVN1Y2Nlc3NGZWVkYmFja1JvbGVBcm5gXSA9XG4gICAgICAgIGNvbmZpZy5zdWNjZXNzRmVlZGJhY2tSb2xlLnJvbGVBcm47XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5zdWNjZXNzRmVlZGJhY2tTYW1wbGVSYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VbYCR7Y29uZmlnLnByb3RvY29sfVN1Y2Nlc3NGZWVkYmFja1NhbXBsZVJhdGVgXSA9XG4gICAgICAgIGNvbmZpZy5zdWNjZXNzRmVlZGJhY2tTYW1wbGVSYXRlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,30 +1,36 @@
1
- import type { IResolvable } from 'cdktf';
2
- import type { provider } from '@cdktf/provider-aws';
1
+ import type { IResolvable } from 'cdktn';
2
+ import type { provider } from '@cdktn/provider-aws';
3
3
  /**
4
4
  * Config for the AWS Provider
5
5
  */
6
6
  export interface AwsProviderConfig {
7
+ /**
8
+ * Product details to append to the User-Agent string sent in all AWS API calls.
9
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#user_agent AwsProvider#user_agent}
10
+ * @stability stable
11
+ */
12
+ readonly userAgent?: Array<string>;
7
13
  /**
8
14
  * Resolve an endpoint with FIPS capability.
9
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#use_fips_endpoint AwsProvider#use_fips_endpoint}
15
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#use_fips_endpoint AwsProvider#use_fips_endpoint}
10
16
  * @stability stable
11
17
  */
12
18
  readonly useFipsEndpoint?: boolean | IResolvable;
13
19
  /**
14
20
  * Resolve an endpoint with DualStack capability.
15
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#use_dualstack_endpoint AwsProvider#use_dualstack_endpoint}
21
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#use_dualstack_endpoint AwsProvider#use_dualstack_endpoint}
16
22
  * @stability stable
17
23
  */
18
24
  readonly useDualstackEndpoint?: boolean | IResolvable;
19
25
  /**
20
26
  * The capacity of the AWS SDK's token bucket rate limiter.
21
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#token_bucket_rate_limiter_capacity AwsProvider#token_bucket_rate_limiter_capacity}
27
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#token_bucket_rate_limiter_capacity AwsProvider#token_bucket_rate_limiter_capacity}
22
28
  * @stability stable
23
29
  */
24
30
  readonly tokenBucketRateLimiterCapacity?: number;
25
31
  /**
26
32
  * session token. A session token is only required if you are using temporary security credentials.
27
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#token AwsProvider#token}
33
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#token AwsProvider#token}
28
34
  * @stability stable
29
35
  */
30
36
  readonly token?: string;
@@ -32,19 +38,19 @@ export interface AwsProviderConfig {
32
38
  * The severity with which to enforce organizational tagging policies on resources managed by this provider instance.
33
39
  * At this time this only includes compliance with required tag keys by resource type. Valid values are "error", "warning", and "disabled". When unset or "disabled", tag policy compliance will not be enforced by the provider. Can also be configured with the TF_AWS_TAG_POLICY_COMPLIANCE environment variable.
34
40
  *
35
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#tag_policy_compliance AwsProvider#tag_policy_compliance}
41
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#tag_policy_compliance AwsProvider#tag_policy_compliance}
36
42
  * @stability stable
37
43
  */
38
44
  readonly tagPolicyCompliance?: string;
39
45
  /**
40
46
  * The region where AWS STS operations will take place. Examples are us-east-1 and us-west-2.
41
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#sts_region AwsProvider#sts_region}
47
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#sts_region AwsProvider#sts_region}
42
48
  * @stability stable
43
49
  */
44
50
  readonly stsRegion?: string;
45
51
  /**
46
52
  * Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
47
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#skip_requesting_account_id AwsProvider#skip_requesting_account_id}
53
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#skip_requesting_account_id AwsProvider#skip_requesting_account_id}
48
54
  * @stability stable
49
55
  */
50
56
  readonly skipRequestingAccountId?: boolean | IResolvable;
@@ -52,43 +58,43 @@ export interface AwsProviderConfig {
52
58
  * Skip static validation of region name.
53
59
  * Used by users of alternative AWS-like APIs or users w/ access to regions that are not public (yet).
54
60
  *
55
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#skip_region_validation AwsProvider#skip_region_validation}
61
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#skip_region_validation AwsProvider#skip_region_validation}
56
62
  * @stability stable
57
63
  */
58
64
  readonly skipRegionValidation?: boolean | IResolvable;
59
65
  /**
60
66
  * Skip the AWS Metadata API check. Used for AWS API implementations that do not have a metadata api endpoint.
61
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#skip_metadata_api_check AwsProvider#skip_metadata_api_check}
67
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#skip_metadata_api_check AwsProvider#skip_metadata_api_check}
62
68
  * @stability stable
63
69
  */
64
70
  readonly skipMetadataApiCheck?: string;
65
71
  /**
66
72
  * Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS available/implemented.
67
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#skip_credentials_validation AwsProvider#skip_credentials_validation}
73
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#skip_credentials_validation AwsProvider#skip_credentials_validation}
68
74
  * @stability stable
69
75
  */
70
76
  readonly skipCredentialsValidation?: boolean | IResolvable;
71
77
  /**
72
78
  * List of paths to shared credentials files. If not set, defaults to [~/.aws/credentials].
73
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#shared_credentials_files AwsProvider#shared_credentials_files}
79
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#shared_credentials_files AwsProvider#shared_credentials_files}
74
80
  * @stability stable
75
81
  */
76
82
  readonly sharedCredentialsFiles?: Array<string>;
77
83
  /**
78
84
  * List of paths to shared config files. If not set, defaults to [~/.aws/config].
79
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#shared_config_files AwsProvider#shared_config_files}
85
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#shared_config_files AwsProvider#shared_config_files}
80
86
  * @stability stable
81
87
  */
82
88
  readonly sharedConfigFiles?: Array<string>;
83
89
  /**
84
90
  * The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
85
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#secret_key AwsProvider#secret_key}
91
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#secret_key AwsProvider#secret_key}
86
92
  * @stability stable
87
93
  */
88
94
  readonly secretKey?: string;
89
95
  /**
90
96
  * Set this to true to enable the request to use path-style addressing, i.e., https://s3.amazonaws.com/BUCKET/KEY. By default, the S3 client will use virtual hosted bucket addressing when possible (https://BUCKET.s3.amazonaws.com/KEY). Specific to the Amazon S3 service.
91
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#s3_use_path_style AwsProvider#s3_use_path_style}
97
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#s3_use_path_style AwsProvider#s3_use_path_style}
92
98
  * @stability stable
93
99
  */
94
100
  readonly s3UsePathStyle?: boolean | IResolvable;
@@ -96,7 +102,7 @@ export interface AwsProviderConfig {
96
102
  * Specifies whether S3 API calls in the `us-east-1` region use the legacy global endpoint or a regional endpoint.
97
103
  * Valid values are `legacy` or `regional`. Can also be configured using the `AWS_S3_US_EAST_1_REGIONAL_ENDPOINT` environment variable or the `s3_us_east_1_regional_endpoint` shared config file parameter
98
104
  *
99
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#s3_us_east_1_regional_endpoint AwsProvider#s3_us_east_1_regional_endpoint}
105
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#s3_us_east_1_regional_endpoint AwsProvider#s3_us_east_1_regional_endpoint}
100
106
  * @stability stable
101
107
  */
102
108
  readonly s3UsEast1RegionalEndpoint?: string;
@@ -104,19 +110,19 @@ export interface AwsProviderConfig {
104
110
  * Specifies how retries are attempted.
105
111
  * Valid values are `standard` and `adaptive`. Can also be configured using the `AWS_RETRY_MODE` environment variable.
106
112
  *
107
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#retry_mode AwsProvider#retry_mode}
113
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#retry_mode AwsProvider#retry_mode}
108
114
  * @stability stable
109
115
  */
110
116
  readonly retryMode?: string;
111
117
  /**
112
118
  * The region where AWS operations will take place. Examples are us-east-1, us-west-2, etc.
113
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#region AwsProvider#region}
119
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#region AwsProvider#region}
114
120
  * @stability stable
115
121
  */
116
122
  readonly region?: string;
117
123
  /**
118
124
  * The profile for API operations. If not set, the default profile created with `aws configure` will be used.
119
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#profile AwsProvider#profile}
125
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#profile AwsProvider#profile}
120
126
  * @stability stable
121
127
  */
122
128
  readonly profile?: string;
@@ -124,7 +130,7 @@ export interface AwsProviderConfig {
124
130
  * Comma-separated list of hosts that should not use HTTP or HTTPS proxies.
125
131
  * Can also be set using the `NO_PROXY` or `no_proxy` environment variables.
126
132
  *
127
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#no_proxy AwsProvider#no_proxy}
133
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#no_proxy AwsProvider#no_proxy}
128
134
  * @stability stable
129
135
  */
130
136
  readonly noProxy?: string;
@@ -133,19 +139,19 @@ export interface AwsProviderConfig {
133
139
  * If the API request still fails, an error is
134
140
  * thrown.
135
141
  *
136
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#max_retries AwsProvider#max_retries}
142
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#max_retries AwsProvider#max_retries}
137
143
  * @stability stable
138
144
  */
139
145
  readonly maxRetries?: number;
140
146
  /**
141
147
  * Explicitly allow the provider to perform "insecure" SSL requests. If omitted, default value is `false`.
142
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#insecure AwsProvider#insecure}
148
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#insecure AwsProvider#insecure}
143
149
  * @stability stable
144
150
  */
145
151
  readonly insecure?: boolean | IResolvable;
146
152
  /**
147
153
  * ignore_tags block.
148
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#ignore_tags AwsProvider#ignore_tags}
154
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#ignore_tags AwsProvider#ignore_tags}
149
155
  * @stability stable
150
156
  */
151
157
  readonly ignoreTags?: IResolvable | Array<provider.AwsProviderIgnoreTags>;
@@ -153,7 +159,7 @@ export interface AwsProviderConfig {
153
159
  * URL of a proxy to use for HTTPS requests when accessing the AWS API.
154
160
  * Can also be set using the `HTTPS_PROXY` or `https_proxy` environment variables.
155
161
  *
156
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#https_proxy AwsProvider#https_proxy}
162
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#https_proxy AwsProvider#https_proxy}
157
163
  * @stability stable
158
164
  */
159
165
  readonly httpsProxy?: string;
@@ -161,36 +167,36 @@ export interface AwsProviderConfig {
161
167
  * URL of a proxy to use for HTTP requests when accessing the AWS API.
162
168
  * Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables.
163
169
  *
164
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#http_proxy AwsProvider#http_proxy}
170
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#http_proxy AwsProvider#http_proxy}
165
171
  * @stability stable
166
172
  */
167
173
  readonly httpProxy?: string;
168
174
  /**
169
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#forbidden_account_ids AwsProvider#forbidden_account_ids}.
175
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#forbidden_account_ids AwsProvider#forbidden_account_ids}.
170
176
  * @stability stable
171
177
  */
172
178
  readonly forbiddenAccountIds?: Array<string>;
173
179
  /**
174
180
  * endpoints block.
175
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#endpoints AwsProvider#endpoints}
181
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#endpoints AwsProvider#endpoints}
176
182
  * @stability stable
177
183
  */
178
184
  readonly endpoints?: IResolvable | Array<provider.AwsProviderEndpoints>;
179
185
  /**
180
186
  * Protocol to use with EC2 metadata service endpoint.Valid values are `IPv4` and `IPv6`. Can also be configured using the `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment variable.
181
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#ec2_metadata_service_endpoint_mode AwsProvider#ec2_metadata_service_endpoint_mode}
187
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#ec2_metadata_service_endpoint_mode AwsProvider#ec2_metadata_service_endpoint_mode}
182
188
  * @stability stable
183
189
  */
184
190
  readonly ec2MetadataServiceEndpointMode?: string;
185
191
  /**
186
192
  * Address of the EC2 metadata service endpoint to use. Can also be configured using the `AWS_EC2_METADATA_SERVICE_ENDPOINT` environment variable.
187
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#ec2_metadata_service_endpoint AwsProvider#ec2_metadata_service_endpoint}
193
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#ec2_metadata_service_endpoint AwsProvider#ec2_metadata_service_endpoint}
188
194
  * @stability stable
189
195
  */
190
196
  readonly ec2MetadataServiceEndpoint?: string;
191
197
  /**
192
198
  * default_tags block.
193
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#default_tags AwsProvider#default_tags}
199
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#default_tags AwsProvider#default_tags}
194
200
  * @stability stable
195
201
  */
196
202
  readonly defaultTags?: IResolvable | Array<provider.AwsProviderDefaultTags>;
@@ -198,30 +204,30 @@ export interface AwsProviderConfig {
198
204
  * File containing custom root and intermediate certificates.
199
205
  * Can also be configured using the `AWS_CA_BUNDLE` environment variable. (Setting `ca_bundle` in the shared config file is not supported.)
200
206
  *
201
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#custom_ca_bundle AwsProvider#custom_ca_bundle}
207
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#custom_ca_bundle AwsProvider#custom_ca_bundle}
202
208
  * @stability stable
203
209
  */
204
210
  readonly customCaBundle?: string;
205
211
  /**
206
212
  * assume_role_with_web_identity block.
207
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#assume_role_with_web_identity AwsProvider#assume_role_with_web_identity}
213
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#assume_role_with_web_identity AwsProvider#assume_role_with_web_identity}
208
214
  * @stability stable
209
215
  */
210
216
  readonly assumeRoleWithWebIdentity?: IResolvable | Array<provider.AwsProviderAssumeRoleWithWebIdentity>;
211
217
  /**
212
218
  * assume_role block.
213
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#assume_role AwsProvider#assume_role}
219
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#assume_role AwsProvider#assume_role}
214
220
  * @stability stable
215
221
  */
216
222
  readonly assumeRole?: IResolvable | Array<provider.AwsProviderAssumeRole>;
217
223
  /**
218
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#allowed_account_ids AwsProvider#allowed_account_ids}.
224
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#allowed_account_ids AwsProvider#allowed_account_ids}.
219
225
  * @stability stable
220
226
  */
221
227
  readonly allowedAccountIds?: Array<string>;
222
228
  /**
223
229
  * The access key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
224
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs#access_key AwsProvider#access_key}
230
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.52.0/docs#access_key AwsProvider#access_key}
225
231
  * @stability stable
226
232
  */
227
233
  readonly accessKey?: string;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItY29uZmlnLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvcHJvdmlkZXItY29uZmlnLmdlbmVyYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBJUmVzb2x2YWJsZSB9IGZyb20gJ2Nka3RmJztcbmltcG9ydCB0eXBlIHsgcHJvdmlkZXIgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItYXdzJztcblxuLyoqXG4gKiBDb25maWcgZm9yIHRoZSBBV1MgUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NQcm92aWRlckNvbmZpZyB7XG4gIC8qKlxuICAgKiBSZXNvbHZlIGFuIGVuZHBvaW50IHdpdGggRklQUyBjYXBhYmlsaXR5LlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzI3VzZV9maXBzX2VuZHBvaW50IEF3c1Byb3ZpZGVyI3VzZV9maXBzX2VuZHBvaW50fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlRmlwc0VuZHBvaW50PzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogUmVzb2x2ZSBhbiBlbmRwb2ludCB3aXRoIER1YWxTdGFjayBjYXBhYmlsaXR5LlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzI3VzZV9kdWFsc3RhY2tfZW5kcG9pbnQgQXdzUHJvdmlkZXIjdXNlX2R1YWxzdGFja19lbmRwb2ludH1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZUR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogVGhlIGNhcGFjaXR5IG9mIHRoZSBBV1MgU0RLJ3MgdG9rZW4gYnVja2V0IHJhdGUgbGltaXRlci5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyN0b2tlbl9idWNrZXRfcmF0ZV9saW1pdGVyX2NhcGFjaXR5IEF3c1Byb3ZpZGVyI3Rva2VuX2J1Y2tldF9yYXRlX2xpbWl0ZXJfY2FwYWNpdHl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSB0b2tlbkJ1Y2tldFJhdGVMaW1pdGVyQ2FwYWNpdHk/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBzZXNzaW9uIHRva2VuLiBBIHNlc3Npb24gdG9rZW4gaXMgb25seSByZXF1aXJlZCBpZiB5b3UgYXJlIHVzaW5nIHRlbXBvcmFyeSBzZWN1cml0eSBjcmVkZW50aWFscy5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyN0b2tlbiBBd3NQcm92aWRlciN0b2tlbn1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNldmVyaXR5IHdpdGggd2hpY2ggdG8gZW5mb3JjZSBvcmdhbml6YXRpb25hbCB0YWdnaW5nIHBvbGljaWVzIG9uIHJlc291cmNlcyBtYW5hZ2VkIGJ5IHRoaXMgcHJvdmlkZXIgaW5zdGFuY2UuXG4gICAqIEF0IHRoaXMgdGltZSB0aGlzIG9ubHkgaW5jbHVkZXMgY29tcGxpYW5jZSB3aXRoIHJlcXVpcmVkIHRhZyBrZXlzIGJ5IHJlc291cmNlIHR5cGUuIFZhbGlkIHZhbHVlcyBhcmUgXCJlcnJvclwiLCBcIndhcm5pbmdcIiwgYW5kIFwiZGlzYWJsZWRcIi4gV2hlbiB1bnNldCBvciBcImRpc2FibGVkXCIsIHRhZyBwb2xpY3kgY29tcGxpYW5jZSB3aWxsIG5vdCBiZSBlbmZvcmNlZCBieSB0aGUgcHJvdmlkZXIuIENhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUgVEZfQVdTX1RBR19QT0xJQ1lfQ09NUExJQU5DRSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyN0YWdfcG9saWN5X2NvbXBsaWFuY2UgQXdzUHJvdmlkZXIjdGFnX3BvbGljeV9jb21wbGlhbmNlfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnUG9saWN5Q29tcGxpYW5jZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZWdpb24gd2hlcmUgQVdTIFNUUyBvcGVyYXRpb25zIHdpbGwgdGFrZSBwbGFjZS4gRXhhbXBsZXMgYXJlIHVzLWVhc3QtMSBhbmQgdXMtd2VzdC0yLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzI3N0c19yZWdpb24gQXdzUHJvdmlkZXIjc3RzX3JlZ2lvbn1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHN0c1JlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNraXAgcmVxdWVzdGluZyB0aGUgYWNjb3VudCBJRC4gVXNlZCBmb3IgQVdTIEFQSSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBkbyBub3QgaGF2ZSBJQU0vU1RTIEFQSSBhbmQvb3IgbWV0YWRhdGEgQVBJLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzI3NraXBfcmVxdWVzdGluZ19hY2NvdW50X2lkIEF3c1Byb3ZpZGVyI3NraXBfcmVxdWVzdGluZ19hY2NvdW50X2lkfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFJlcXVlc3RpbmdBY2NvdW50SWQ/OiBib29sZWFuIHwgSVJlc29sdmFibGU7XG4gIC8qKlxuICAgKiBTa2lwIHN0YXRpYyB2YWxpZGF0aW9uIG9mIHJlZ2lvbiBuYW1lLlxuICAgKiBVc2VkIGJ5IHVzZXJzIG9mIGFsdGVybmF0aXZlIEFXUy1saWtlIEFQSXMgb3IgdXNlcnMgdy8gYWNjZXNzIHRvIHJlZ2lvbnMgdGhhdCBhcmUgbm90IHB1YmxpYyAoeWV0KS5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNza2lwX3JlZ2lvbl92YWxpZGF0aW9uIEF3c1Byb3ZpZGVyI3NraXBfcmVnaW9uX3ZhbGlkYXRpb259XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBza2lwUmVnaW9uVmFsaWRhdGlvbj86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqXG4gICAqIFNraXAgdGhlIEFXUyBNZXRhZGF0YSBBUEkgY2hlY2suIFVzZWQgZm9yIEFXUyBBUEkgaW1wbGVtZW50YXRpb25zIHRoYXQgZG8gbm90IGhhdmUgYSBtZXRhZGF0YSBhcGkgZW5kcG9pbnQuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3Mjc2tpcF9tZXRhZGF0YV9hcGlfY2hlY2sgQXdzUHJvdmlkZXIjc2tpcF9tZXRhZGF0YV9hcGlfY2hlY2t9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBza2lwTWV0YWRhdGFBcGlDaGVjaz86IHN0cmluZztcbiAgLyoqXG4gICAqIFNraXAgdGhlIGNyZWRlbnRpYWxzIHZhbGlkYXRpb24gdmlhIFNUUyBBUEkuIFVzZWQgZm9yIEFXUyBBUEkgaW1wbGVtZW50YXRpb25zIHRoYXQgZG8gbm90IGhhdmUgU1RTIGF2YWlsYWJsZS9pbXBsZW1lbnRlZC5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNza2lwX2NyZWRlbnRpYWxzX3ZhbGlkYXRpb24gQXdzUHJvdmlkZXIjc2tpcF9jcmVkZW50aWFsc192YWxpZGF0aW9ufVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcENyZWRlbnRpYWxzVmFsaWRhdGlvbj86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcGF0aHMgdG8gc2hhcmVkIGNyZWRlbnRpYWxzIGZpbGVzLiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byBbfi8uYXdzL2NyZWRlbnRpYWxzXS5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNzaGFyZWRfY3JlZGVudGlhbHNfZmlsZXMgQXdzUHJvdmlkZXIjc2hhcmVkX2NyZWRlbnRpYWxzX2ZpbGVzfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmVkQ3JlZGVudGlhbHNGaWxlcz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBMaXN0IG9mIHBhdGhzIHRvIHNoYXJlZCBjb25maWcgZmlsZXMuIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIFt+Ly5hd3MvY29uZmlnXS5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNzaGFyZWRfY29uZmlnX2ZpbGVzIEF3c1Byb3ZpZGVyI3NoYXJlZF9jb25maWdfZmlsZXN9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzaGFyZWRDb25maWdGaWxlcz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IGtleSBmb3IgQVBJIG9wZXJhdGlvbnMuIFlvdSBjYW4gcmV0cmlldmUgdGhpcyBmcm9tIHRoZSAnU2VjdXJpdHkgJiBDcmVkZW50aWFscycgc2VjdGlvbiBvZiB0aGUgQVdTIGNvbnNvbGUuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3Mjc2VjcmV0X2tleSBBd3NQcm92aWRlciNzZWNyZXRfa2V5fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0S2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSB0byBlbmFibGUgdGhlIHJlcXVlc3QgdG8gdXNlIHBhdGgtc3R5bGUgYWRkcmVzc2luZywgaS5lLiwgaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL0JVQ0tFVC9LRVkuIEJ5IGRlZmF1bHQsIHRoZSBTMyBjbGllbnQgd2lsbCB1c2UgdmlydHVhbCBob3N0ZWQgYnVja2V0IGFkZHJlc3Npbmcgd2hlbiBwb3NzaWJsZSAoaHR0cHM6Ly9CVUNLRVQuczMuYW1hem9uYXdzLmNvbS9LRVkpLiBTcGVjaWZpYyB0byB0aGUgQW1hem9uIFMzIHNlcnZpY2UuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MjczNfdXNlX3BhdGhfc3R5bGUgQXdzUHJvdmlkZXIjczNfdXNlX3BhdGhfc3R5bGV9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzM1VzZVBhdGhTdHlsZT86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIFMzIEFQSSBjYWxscyBpbiB0aGUgYHVzLWVhc3QtMWAgcmVnaW9uIHVzZSB0aGUgbGVnYWN5IGdsb2JhbCBlbmRwb2ludCBvciBhIHJlZ2lvbmFsIGVuZHBvaW50LlxuICAgKiBWYWxpZCB2YWx1ZXMgYXJlIGBsZWdhY3lgIG9yIGByZWdpb25hbGAuIENhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlIGBBV1NfUzNfVVNfRUFTVF8xX1JFR0lPTkFMX0VORFBPSU5UYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUgYHMzX3VzX2Vhc3RfMV9yZWdpb25hbF9lbmRwb2ludGAgc2hhcmVkIGNvbmZpZyBmaWxlIHBhcmFtZXRlclxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzI3MzX3VzX2Vhc3RfMV9yZWdpb25hbF9lbmRwb2ludCBBd3NQcm92aWRlciNzM191c19lYXN0XzFfcmVnaW9uYWxfZW5kcG9pbnR9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzM1VzRWFzdDFSZWdpb25hbEVuZHBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmaWVzIGhvdyByZXRyaWVzIGFyZSBhdHRlbXB0ZWQuXG4gICAqIFZhbGlkIHZhbHVlcyBhcmUgYHN0YW5kYXJkYCBhbmQgYGFkYXB0aXZlYC4gQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEFXU19SRVRSWV9NT0RFYCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNyZXRyeV9tb2RlIEF3c1Byb3ZpZGVyI3JldHJ5X21vZGV9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSByZXRyeU1vZGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIHdoZXJlIEFXUyBvcGVyYXRpb25zIHdpbGwgdGFrZSBwbGFjZS4gRXhhbXBsZXMgYXJlIHVzLWVhc3QtMSwgdXMtd2VzdC0yLCBldGMuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MjcmVnaW9uIEF3c1Byb3ZpZGVyI3JlZ2lvbn1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwcm9maWxlIGZvciBBUEkgb3BlcmF0aW9ucy4gSWYgbm90IHNldCwgdGhlIGRlZmF1bHQgcHJvZmlsZSBjcmVhdGVkIHdpdGggYGF3cyBjb25maWd1cmVgIHdpbGwgYmUgdXNlZC5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNwcm9maWxlIEF3c1Byb3ZpZGVyI3Byb2ZpbGV9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuICAvKipcbiAgICogQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgaG9zdHMgdGhhdCBzaG91bGQgbm90IHVzZSBIVFRQIG9yIEhUVFBTIHByb3hpZXMuXG4gICAqIENhbiBhbHNvIGJlIHNldCB1c2luZyB0aGUgYE5PX1BST1hZYCBvciBgbm9fcHJveHlgIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNub19wcm94eSBBd3NQcm92aWRlciNub19wcm94eX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IG5vUHJveHk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgYW4gQVdTIEFQSSByZXF1ZXN0IGlzIGJlaW5nIGV4ZWN1dGVkLlxuICAgKiBJZiB0aGUgQVBJIHJlcXVlc3Qgc3RpbGwgZmFpbHMsIGFuIGVycm9yIGlzXG4gICAqIHRocm93bi5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNtYXhfcmV0cmllcyBBd3NQcm92aWRlciNtYXhfcmV0cmllc31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IG1heFJldHJpZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBFeHBsaWNpdGx5IGFsbG93IHRoZSBwcm92aWRlciB0byBwZXJmb3JtIFwiaW5zZWN1cmVcIiBTU0wgcmVxdWVzdHMuIElmIG9taXR0ZWQsIGRlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNpbnNlY3VyZSBBd3NQcm92aWRlciNpbnNlY3VyZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGluc2VjdXJlPzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogaWdub3JlX3RhZ3MgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MjaWdub3JlX3RhZ3MgQXdzUHJvdmlkZXIjaWdub3JlX3RhZ3N9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVUYWdzPzogSVJlc29sdmFibGUgfCBBcnJheTxwcm92aWRlci5Bd3NQcm92aWRlcklnbm9yZVRhZ3M+O1xuICAvKipcbiAgICogVVJMIG9mIGEgcHJveHkgdG8gdXNlIGZvciBIVFRQUyByZXF1ZXN0cyB3aGVuIGFjY2Vzc2luZyB0aGUgQVdTIEFQSS5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHVzaW5nIHRoZSBgSFRUUFNfUFJPWFlgIG9yIGBodHRwc19wcm94eWAgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzI2h0dHBzX3Byb3h5IEF3c1Byb3ZpZGVyI2h0dHBzX3Byb3h5fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cHNQcm94eT86IHN0cmluZztcbiAgLyoqXG4gICAqIFVSTCBvZiBhIHByb3h5IHRvIHVzZSBmb3IgSFRUUCByZXF1ZXN0cyB3aGVuIGFjY2Vzc2luZyB0aGUgQVdTIEFQSS5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHVzaW5nIHRoZSBgSFRUUF9QUk9YWWAgb3IgYGh0dHBfcHJveHlgIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNodHRwX3Byb3h5IEF3c1Byb3ZpZGVyI2h0dHBfcHJveHl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBodHRwUHJveHk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzI2ZvcmJpZGRlbl9hY2NvdW50X2lkcyBBd3NQcm92aWRlciNmb3JiaWRkZW5fYWNjb3VudF9pZHN9LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yYmlkZGVuQWNjb3VudElkcz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBlbmRwb2ludHMgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MjZW5kcG9pbnRzIEF3c1Byb3ZpZGVyI2VuZHBvaW50c31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50cz86IElSZXNvbHZhYmxlIHwgQXJyYXk8cHJvdmlkZXIuQXdzUHJvdmlkZXJFbmRwb2ludHM+O1xuICAvKipcbiAgICogUHJvdG9jb2wgdG8gdXNlIHdpdGggRUMyIG1ldGFkYXRhIHNlcnZpY2UgZW5kcG9pbnQuVmFsaWQgdmFsdWVzIGFyZSBgSVB2NGAgYW5kIGBJUHY2YC4gQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEFXU19FQzJfTUVUQURBVEFfU0VSVklDRV9FTkRQT0lOVF9NT0RFYCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNlYzJfbWV0YWRhdGFfc2VydmljZV9lbmRwb2ludF9tb2RlIEF3c1Byb3ZpZGVyI2VjMl9tZXRhZGF0YV9zZXJ2aWNlX2VuZHBvaW50X21vZGV9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlYzJNZXRhZGF0YVNlcnZpY2VFbmRwb2ludE1vZGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGRyZXNzIG9mIHRoZSBFQzIgbWV0YWRhdGEgc2VydmljZSBlbmRwb2ludCB0byB1c2UuIENhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlIGBBV1NfRUMyX01FVEFEQVRBX1NFUlZJQ0VfRU5EUE9JTlRgIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzI2VjMl9tZXRhZGF0YV9zZXJ2aWNlX2VuZHBvaW50IEF3c1Byb3ZpZGVyI2VjMl9tZXRhZGF0YV9zZXJ2aWNlX2VuZHBvaW50fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZWMyTWV0YWRhdGFTZXJ2aWNlRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0X3RhZ3MgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MjZGVmYXVsdF90YWdzIEF3c1Byb3ZpZGVyI2RlZmF1bHRfdGFnc31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRUYWdzPzogSVJlc29sdmFibGUgfCBBcnJheTxwcm92aWRlci5Bd3NQcm92aWRlckRlZmF1bHRUYWdzPjtcbiAgLyoqXG4gICAqIEZpbGUgY29udGFpbmluZyBjdXN0b20gcm9vdCBhbmQgaW50ZXJtZWRpYXRlIGNlcnRpZmljYXRlcy5cbiAgICogQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEFXU19DQV9CVU5ETEVgIGVudmlyb25tZW50IHZhcmlhYmxlLiAoU2V0dGluZyBgY2FfYnVuZGxlYCBpbiB0aGUgc2hhcmVkIGNvbmZpZyBmaWxlIGlzIG5vdCBzdXBwb3J0ZWQuKVxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzI2N1c3RvbV9jYV9idW5kbGUgQXdzUHJvdmlkZXIjY3VzdG9tX2NhX2J1bmRsZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUNhQnVuZGxlPzogc3RyaW5nO1xuICAvKipcbiAgICogYXNzdW1lX3JvbGVfd2l0aF93ZWJfaWRlbnRpdHkgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MjYXNzdW1lX3JvbGVfd2l0aF93ZWJfaWRlbnRpdHkgQXdzUHJvdmlkZXIjYXNzdW1lX3JvbGVfd2l0aF93ZWJfaWRlbnRpdHl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5PzogSVJlc29sdmFibGUgfCBBcnJheTxwcm92aWRlci5Bd3NQcm92aWRlckFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHk+O1xuICAvKipcbiAgICogYXNzdW1lX3JvbGUgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MjYXNzdW1lX3JvbGUgQXdzUHJvdmlkZXIjYXNzdW1lX3JvbGV9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlPzogSVJlc29sdmFibGUgfCBBcnJheTxwcm92aWRlci5Bd3NQcm92aWRlckFzc3VtZVJvbGU+O1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcyNhbGxvd2VkX2FjY291bnRfaWRzIEF3c1Byb3ZpZGVyI2FsbG93ZWRfYWNjb3VudF9pZHN9LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZEFjY291bnRJZHM/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogVGhlIGFjY2VzcyBrZXkgZm9yIEFQSSBvcGVyYXRpb25zLiBZb3UgY2FuIHJldHJpZXZlIHRoaXMgZnJvbSB0aGUgJ1NlY3VyaXR5ICYgQ3JlZGVudGlhbHMnIHNlY3Rpb24gb2YgdGhlIEFXUyBjb25zb2xlLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzI2FjY2Vzc19rZXkgQXdzUHJvdmlkZXIjYWNjZXNzX2tleX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0tleT86IHN0cmluZztcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItY29uZmlnLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvcHJvdmlkZXItY29uZmlnLmdlbmVyYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBJUmVzb2x2YWJsZSB9IGZyb20gJ2Nka3RuJztcbmltcG9ydCB0eXBlIHsgcHJvdmlkZXIgfSBmcm9tICdAY2RrdG4vcHJvdmlkZXItYXdzJztcblxuLyoqXG4gKiBDb25maWcgZm9yIHRoZSBBV1MgUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NQcm92aWRlckNvbmZpZyB7XG4gIC8qKlxuICAgKiBQcm9kdWN0IGRldGFpbHMgdG8gYXBwZW5kIHRvIHRoZSBVc2VyLUFnZW50IHN0cmluZyBzZW50IGluIGFsbCBBV1MgQVBJIGNhbGxzLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI3VzZXJfYWdlbnQgQXdzUHJvdmlkZXIjdXNlcl9hZ2VudH1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJBZ2VudD86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBSZXNvbHZlIGFuIGVuZHBvaW50IHdpdGggRklQUyBjYXBhYmlsaXR5LlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI3VzZV9maXBzX2VuZHBvaW50IEF3c1Byb3ZpZGVyI3VzZV9maXBzX2VuZHBvaW50fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlRmlwc0VuZHBvaW50PzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogUmVzb2x2ZSBhbiBlbmRwb2ludCB3aXRoIER1YWxTdGFjayBjYXBhYmlsaXR5LlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI3VzZV9kdWFsc3RhY2tfZW5kcG9pbnQgQXdzUHJvdmlkZXIjdXNlX2R1YWxzdGFja19lbmRwb2ludH1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZUR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogVGhlIGNhcGFjaXR5IG9mIHRoZSBBV1MgU0RLJ3MgdG9rZW4gYnVja2V0IHJhdGUgbGltaXRlci5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyN0b2tlbl9idWNrZXRfcmF0ZV9saW1pdGVyX2NhcGFjaXR5IEF3c1Byb3ZpZGVyI3Rva2VuX2J1Y2tldF9yYXRlX2xpbWl0ZXJfY2FwYWNpdHl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSB0b2tlbkJ1Y2tldFJhdGVMaW1pdGVyQ2FwYWNpdHk/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBzZXNzaW9uIHRva2VuLiBBIHNlc3Npb24gdG9rZW4gaXMgb25seSByZXF1aXJlZCBpZiB5b3UgYXJlIHVzaW5nIHRlbXBvcmFyeSBzZWN1cml0eSBjcmVkZW50aWFscy5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyN0b2tlbiBBd3NQcm92aWRlciN0b2tlbn1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNldmVyaXR5IHdpdGggd2hpY2ggdG8gZW5mb3JjZSBvcmdhbml6YXRpb25hbCB0YWdnaW5nIHBvbGljaWVzIG9uIHJlc291cmNlcyBtYW5hZ2VkIGJ5IHRoaXMgcHJvdmlkZXIgaW5zdGFuY2UuXG4gICAqIEF0IHRoaXMgdGltZSB0aGlzIG9ubHkgaW5jbHVkZXMgY29tcGxpYW5jZSB3aXRoIHJlcXVpcmVkIHRhZyBrZXlzIGJ5IHJlc291cmNlIHR5cGUuIFZhbGlkIHZhbHVlcyBhcmUgXCJlcnJvclwiLCBcIndhcm5pbmdcIiwgYW5kIFwiZGlzYWJsZWRcIi4gV2hlbiB1bnNldCBvciBcImRpc2FibGVkXCIsIHRhZyBwb2xpY3kgY29tcGxpYW5jZSB3aWxsIG5vdCBiZSBlbmZvcmNlZCBieSB0aGUgcHJvdmlkZXIuIENhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUgVEZfQVdTX1RBR19QT0xJQ1lfQ09NUExJQU5DRSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyN0YWdfcG9saWN5X2NvbXBsaWFuY2UgQXdzUHJvdmlkZXIjdGFnX3BvbGljeV9jb21wbGlhbmNlfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnUG9saWN5Q29tcGxpYW5jZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZWdpb24gd2hlcmUgQVdTIFNUUyBvcGVyYXRpb25zIHdpbGwgdGFrZSBwbGFjZS4gRXhhbXBsZXMgYXJlIHVzLWVhc3QtMSBhbmQgdXMtd2VzdC0yLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI3N0c19yZWdpb24gQXdzUHJvdmlkZXIjc3RzX3JlZ2lvbn1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHN0c1JlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNraXAgcmVxdWVzdGluZyB0aGUgYWNjb3VudCBJRC4gVXNlZCBmb3IgQVdTIEFQSSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBkbyBub3QgaGF2ZSBJQU0vU1RTIEFQSSBhbmQvb3IgbWV0YWRhdGEgQVBJLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI3NraXBfcmVxdWVzdGluZ19hY2NvdW50X2lkIEF3c1Byb3ZpZGVyI3NraXBfcmVxdWVzdGluZ19hY2NvdW50X2lkfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFJlcXVlc3RpbmdBY2NvdW50SWQ/OiBib29sZWFuIHwgSVJlc29sdmFibGU7XG4gIC8qKlxuICAgKiBTa2lwIHN0YXRpYyB2YWxpZGF0aW9uIG9mIHJlZ2lvbiBuYW1lLlxuICAgKiBVc2VkIGJ5IHVzZXJzIG9mIGFsdGVybmF0aXZlIEFXUy1saWtlIEFQSXMgb3IgdXNlcnMgdy8gYWNjZXNzIHRvIHJlZ2lvbnMgdGhhdCBhcmUgbm90IHB1YmxpYyAoeWV0KS5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNza2lwX3JlZ2lvbl92YWxpZGF0aW9uIEF3c1Byb3ZpZGVyI3NraXBfcmVnaW9uX3ZhbGlkYXRpb259XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBza2lwUmVnaW9uVmFsaWRhdGlvbj86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqXG4gICAqIFNraXAgdGhlIEFXUyBNZXRhZGF0YSBBUEkgY2hlY2suIFVzZWQgZm9yIEFXUyBBUEkgaW1wbGVtZW50YXRpb25zIHRoYXQgZG8gbm90IGhhdmUgYSBtZXRhZGF0YSBhcGkgZW5kcG9pbnQuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi41Mi4wL2RvY3Mjc2tpcF9tZXRhZGF0YV9hcGlfY2hlY2sgQXdzUHJvdmlkZXIjc2tpcF9tZXRhZGF0YV9hcGlfY2hlY2t9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBza2lwTWV0YWRhdGFBcGlDaGVjaz86IHN0cmluZztcbiAgLyoqXG4gICAqIFNraXAgdGhlIGNyZWRlbnRpYWxzIHZhbGlkYXRpb24gdmlhIFNUUyBBUEkuIFVzZWQgZm9yIEFXUyBBUEkgaW1wbGVtZW50YXRpb25zIHRoYXQgZG8gbm90IGhhdmUgU1RTIGF2YWlsYWJsZS9pbXBsZW1lbnRlZC5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNza2lwX2NyZWRlbnRpYWxzX3ZhbGlkYXRpb24gQXdzUHJvdmlkZXIjc2tpcF9jcmVkZW50aWFsc192YWxpZGF0aW9ufVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcENyZWRlbnRpYWxzVmFsaWRhdGlvbj86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcGF0aHMgdG8gc2hhcmVkIGNyZWRlbnRpYWxzIGZpbGVzLiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byBbfi8uYXdzL2NyZWRlbnRpYWxzXS5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNzaGFyZWRfY3JlZGVudGlhbHNfZmlsZXMgQXdzUHJvdmlkZXIjc2hhcmVkX2NyZWRlbnRpYWxzX2ZpbGVzfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmVkQ3JlZGVudGlhbHNGaWxlcz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBMaXN0IG9mIHBhdGhzIHRvIHNoYXJlZCBjb25maWcgZmlsZXMuIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIFt+Ly5hd3MvY29uZmlnXS5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNzaGFyZWRfY29uZmlnX2ZpbGVzIEF3c1Byb3ZpZGVyI3NoYXJlZF9jb25maWdfZmlsZXN9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzaGFyZWRDb25maWdGaWxlcz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IGtleSBmb3IgQVBJIG9wZXJhdGlvbnMuIFlvdSBjYW4gcmV0cmlldmUgdGhpcyBmcm9tIHRoZSAnU2VjdXJpdHkgJiBDcmVkZW50aWFscycgc2VjdGlvbiBvZiB0aGUgQVdTIGNvbnNvbGUuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi41Mi4wL2RvY3Mjc2VjcmV0X2tleSBBd3NQcm92aWRlciNzZWNyZXRfa2V5fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0S2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSB0byBlbmFibGUgdGhlIHJlcXVlc3QgdG8gdXNlIHBhdGgtc3R5bGUgYWRkcmVzc2luZywgaS5lLiwgaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL0JVQ0tFVC9LRVkuIEJ5IGRlZmF1bHQsIHRoZSBTMyBjbGllbnQgd2lsbCB1c2UgdmlydHVhbCBob3N0ZWQgYnVja2V0IGFkZHJlc3Npbmcgd2hlbiBwb3NzaWJsZSAoaHR0cHM6Ly9CVUNLRVQuczMuYW1hem9uYXdzLmNvbS9LRVkpLiBTcGVjaWZpYyB0byB0aGUgQW1hem9uIFMzIHNlcnZpY2UuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi41Mi4wL2RvY3MjczNfdXNlX3BhdGhfc3R5bGUgQXdzUHJvdmlkZXIjczNfdXNlX3BhdGhfc3R5bGV9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzM1VzZVBhdGhTdHlsZT86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIFMzIEFQSSBjYWxscyBpbiB0aGUgYHVzLWVhc3QtMWAgcmVnaW9uIHVzZSB0aGUgbGVnYWN5IGdsb2JhbCBlbmRwb2ludCBvciBhIHJlZ2lvbmFsIGVuZHBvaW50LlxuICAgKiBWYWxpZCB2YWx1ZXMgYXJlIGBsZWdhY3lgIG9yIGByZWdpb25hbGAuIENhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlIGBBV1NfUzNfVVNfRUFTVF8xX1JFR0lPTkFMX0VORFBPSU5UYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUgYHMzX3VzX2Vhc3RfMV9yZWdpb25hbF9lbmRwb2ludGAgc2hhcmVkIGNvbmZpZyBmaWxlIHBhcmFtZXRlclxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI3MzX3VzX2Vhc3RfMV9yZWdpb25hbF9lbmRwb2ludCBBd3NQcm92aWRlciNzM191c19lYXN0XzFfcmVnaW9uYWxfZW5kcG9pbnR9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzM1VzRWFzdDFSZWdpb25hbEVuZHBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmaWVzIGhvdyByZXRyaWVzIGFyZSBhdHRlbXB0ZWQuXG4gICAqIFZhbGlkIHZhbHVlcyBhcmUgYHN0YW5kYXJkYCBhbmQgYGFkYXB0aXZlYC4gQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEFXU19SRVRSWV9NT0RFYCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNyZXRyeV9tb2RlIEF3c1Byb3ZpZGVyI3JldHJ5X21vZGV9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSByZXRyeU1vZGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIHdoZXJlIEFXUyBvcGVyYXRpb25zIHdpbGwgdGFrZSBwbGFjZS4gRXhhbXBsZXMgYXJlIHVzLWVhc3QtMSwgdXMtd2VzdC0yLCBldGMuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi41Mi4wL2RvY3MjcmVnaW9uIEF3c1Byb3ZpZGVyI3JlZ2lvbn1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwcm9maWxlIGZvciBBUEkgb3BlcmF0aW9ucy4gSWYgbm90IHNldCwgdGhlIGRlZmF1bHQgcHJvZmlsZSBjcmVhdGVkIHdpdGggYGF3cyBjb25maWd1cmVgIHdpbGwgYmUgdXNlZC5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNwcm9maWxlIEF3c1Byb3ZpZGVyI3Byb2ZpbGV9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuICAvKipcbiAgICogQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgaG9zdHMgdGhhdCBzaG91bGQgbm90IHVzZSBIVFRQIG9yIEhUVFBTIHByb3hpZXMuXG4gICAqIENhbiBhbHNvIGJlIHNldCB1c2luZyB0aGUgYE5PX1BST1hZYCBvciBgbm9fcHJveHlgIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNub19wcm94eSBBd3NQcm92aWRlciNub19wcm94eX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IG5vUHJveHk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgYW4gQVdTIEFQSSByZXF1ZXN0IGlzIGJlaW5nIGV4ZWN1dGVkLlxuICAgKiBJZiB0aGUgQVBJIHJlcXVlc3Qgc3RpbGwgZmFpbHMsIGFuIGVycm9yIGlzXG4gICAqIHRocm93bi5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNtYXhfcmV0cmllcyBBd3NQcm92aWRlciNtYXhfcmV0cmllc31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IG1heFJldHJpZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBFeHBsaWNpdGx5IGFsbG93IHRoZSBwcm92aWRlciB0byBwZXJmb3JtIFwiaW5zZWN1cmVcIiBTU0wgcmVxdWVzdHMuIElmIG9taXR0ZWQsIGRlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNpbnNlY3VyZSBBd3NQcm92aWRlciNpbnNlY3VyZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGluc2VjdXJlPzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogaWdub3JlX3RhZ3MgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi41Mi4wL2RvY3MjaWdub3JlX3RhZ3MgQXdzUHJvdmlkZXIjaWdub3JlX3RhZ3N9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVUYWdzPzogSVJlc29sdmFibGUgfCBBcnJheTxwcm92aWRlci5Bd3NQcm92aWRlcklnbm9yZVRhZ3M+O1xuICAvKipcbiAgICogVVJMIG9mIGEgcHJveHkgdG8gdXNlIGZvciBIVFRQUyByZXF1ZXN0cyB3aGVuIGFjY2Vzc2luZyB0aGUgQVdTIEFQSS5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHVzaW5nIHRoZSBgSFRUUFNfUFJPWFlgIG9yIGBodHRwc19wcm94eWAgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI2h0dHBzX3Byb3h5IEF3c1Byb3ZpZGVyI2h0dHBzX3Byb3h5fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cHNQcm94eT86IHN0cmluZztcbiAgLyoqXG4gICAqIFVSTCBvZiBhIHByb3h5IHRvIHVzZSBmb3IgSFRUUCByZXF1ZXN0cyB3aGVuIGFjY2Vzc2luZyB0aGUgQVdTIEFQSS5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHVzaW5nIHRoZSBgSFRUUF9QUk9YWWAgb3IgYGh0dHBfcHJveHlgIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNodHRwX3Byb3h5IEF3c1Byb3ZpZGVyI2h0dHBfcHJveHl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBodHRwUHJveHk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI2ZvcmJpZGRlbl9hY2NvdW50X2lkcyBBd3NQcm92aWRlciNmb3JiaWRkZW5fYWNjb3VudF9pZHN9LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yYmlkZGVuQWNjb3VudElkcz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBlbmRwb2ludHMgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi41Mi4wL2RvY3MjZW5kcG9pbnRzIEF3c1Byb3ZpZGVyI2VuZHBvaW50c31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50cz86IElSZXNvbHZhYmxlIHwgQXJyYXk8cHJvdmlkZXIuQXdzUHJvdmlkZXJFbmRwb2ludHM+O1xuICAvKipcbiAgICogUHJvdG9jb2wgdG8gdXNlIHdpdGggRUMyIG1ldGFkYXRhIHNlcnZpY2UgZW5kcG9pbnQuVmFsaWQgdmFsdWVzIGFyZSBgSVB2NGAgYW5kIGBJUHY2YC4gQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEFXU19FQzJfTUVUQURBVEFfU0VSVklDRV9FTkRQT0lOVF9NT0RFYCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNlYzJfbWV0YWRhdGFfc2VydmljZV9lbmRwb2ludF9tb2RlIEF3c1Byb3ZpZGVyI2VjMl9tZXRhZGF0YV9zZXJ2aWNlX2VuZHBvaW50X21vZGV9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlYzJNZXRhZGF0YVNlcnZpY2VFbmRwb2ludE1vZGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGRyZXNzIG9mIHRoZSBFQzIgbWV0YWRhdGEgc2VydmljZSBlbmRwb2ludCB0byB1c2UuIENhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlIGBBV1NfRUMyX01FVEFEQVRBX1NFUlZJQ0VfRU5EUE9JTlRgIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI2VjMl9tZXRhZGF0YV9zZXJ2aWNlX2VuZHBvaW50IEF3c1Byb3ZpZGVyI2VjMl9tZXRhZGF0YV9zZXJ2aWNlX2VuZHBvaW50fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZWMyTWV0YWRhdGFTZXJ2aWNlRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0X3RhZ3MgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi41Mi4wL2RvY3MjZGVmYXVsdF90YWdzIEF3c1Byb3ZpZGVyI2RlZmF1bHRfdGFnc31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRUYWdzPzogSVJlc29sdmFibGUgfCBBcnJheTxwcm92aWRlci5Bd3NQcm92aWRlckRlZmF1bHRUYWdzPjtcbiAgLyoqXG4gICAqIEZpbGUgY29udGFpbmluZyBjdXN0b20gcm9vdCBhbmQgaW50ZXJtZWRpYXRlIGNlcnRpZmljYXRlcy5cbiAgICogQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEFXU19DQV9CVU5ETEVgIGVudmlyb25tZW50IHZhcmlhYmxlLiAoU2V0dGluZyBgY2FfYnVuZGxlYCBpbiB0aGUgc2hhcmVkIGNvbmZpZyBmaWxlIGlzIG5vdCBzdXBwb3J0ZWQuKVxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI2N1c3RvbV9jYV9idW5kbGUgQXdzUHJvdmlkZXIjY3VzdG9tX2NhX2J1bmRsZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUNhQnVuZGxlPzogc3RyaW5nO1xuICAvKipcbiAgICogYXNzdW1lX3JvbGVfd2l0aF93ZWJfaWRlbnRpdHkgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi41Mi4wL2RvY3MjYXNzdW1lX3JvbGVfd2l0aF93ZWJfaWRlbnRpdHkgQXdzUHJvdmlkZXIjYXNzdW1lX3JvbGVfd2l0aF93ZWJfaWRlbnRpdHl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5PzogSVJlc29sdmFibGUgfCBBcnJheTxwcm92aWRlci5Bd3NQcm92aWRlckFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHk+O1xuICAvKipcbiAgICogYXNzdW1lX3JvbGUgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi41Mi4wL2RvY3MjYXNzdW1lX3JvbGUgQXdzUHJvdmlkZXIjYXNzdW1lX3JvbGV9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlPzogSVJlc29sdmFibGUgfCBBcnJheTxwcm92aWRlci5Bd3NQcm92aWRlckFzc3VtZVJvbGU+O1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjUyLjAvZG9jcyNhbGxvd2VkX2FjY291bnRfaWRzIEF3c1Byb3ZpZGVyI2FsbG93ZWRfYWNjb3VudF9pZHN9LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZEFjY291bnRJZHM/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogVGhlIGFjY2VzcyBrZXkgZm9yIEFQSSBvcGVyYXRpb25zLiBZb3UgY2FuIHJldHJpZXZlIHRoaXMgZnJvbSB0aGUgJ1NlY3VyaXR5ICYgQ3JlZGVudGlhbHMnIHNlY3Rpb24gb2YgdGhlIEFXUyBjb25zb2xlLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuNTIuMC9kb2NzI2FjY2Vzc19rZXkgQXdzUHJvdmlkZXIjYWNjZXNzX2tleX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0tleT86IHN0cmluZztcbn1cbiJdfQ==
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.deployTimeLookup = deployTimeLookup;
5
5
  const region_info_1 = require("@aws-cdk/region-info");
6
- const cdktf_1 = require("cdktf");
6
+ const cdktn_1 = require("cdktn");
7
7
  const cxapi = require("./cx-api");
8
8
  const errors_1 = require("../errors");
9
9
  const Aws = {
@@ -41,7 +41,7 @@ function deployTimeLookup(stack, factName, lookupMap, defaultValue) {
41
41
  const factKey = factParam.replace(/[^a-zA-Z0-9]/g, "x");
42
42
  let mapping = stack.node.tryFindChild(mapId);
43
43
  if (!mapping) {
44
- mapping = new cdktf_1.TerraformLocal(stack, mapId, {});
44
+ mapping = new cdktn_1.TerraformLocal(stack, mapId, {});
45
45
  }
46
46
  const temp = {};
47
47
  for (const [region, value] of Object.entries(lookupMap)) {
@@ -50,7 +50,7 @@ function deployTimeLookup(stack, factName, lookupMap, defaultValue) {
50
50
  };
51
51
  }
52
52
  mapping.expression = temp;
53
- return cdktf_1.Fn.lookup(cdktf_1.Fn.lookup(mapping.asStringMap, stack.region), factKey);
53
+ return cdktn_1.Fn.lookup(cdktn_1.Fn.lookup(mapping.asStringMap, stack.region), factKey);
54
54
  }
55
55
  function ucfirst(x) {
56
56
  return `${x.slice(0, 1).toUpperCase()}${x.slice(1)}`;
@@ -101,4 +101,4 @@ function urlSuffix(region) {
101
101
  function replaceAll(x, pat, replacement) {
102
102
  return x.split(pat).join(replacement);
103
103
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLWxvb2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvcmVnaW9uLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0dBQXNHOztBQXFCdEcsNENBZ0RDO0FBbkVELHNEQUFrRDtBQUNsRCxpQ0FBMkM7QUFDM0Msa0NBQWtDO0FBRWxDLHNDQUFvRDtBQUlwRCxNQUFNLEdBQUcsR0FBRztJQUNWLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsTUFBTSxFQUFFLGFBQWE7Q0FDdEIsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLEtBQWUsRUFDZixRQUFnQixFQUNoQixTQUFpQyxFQUNqQyxZQUFxQjtJQUVyQixtREFBbUQ7SUFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksZ0NBQXVCLENBQy9CLCtDQUErQyxRQUFRLHNFQUFzRSxLQUFLLENBQUMsaUJBQWlCLGtCQUFrQixDQUN2SyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCx5RUFBeUU7SUFDekUscUVBQXFFO0lBQ3JFLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FDTCxPQUFPO1lBQ0wsc0RBQXNEO2FBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUVELGtGQUFrRjtJQUNsRixNQUFNLENB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Q0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFFLENBQUM7SUFDSCxDQUFDO0lBRUQsaUVBQWlFO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxFQUFZO0lBQzNCLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxNQUFjO0lBQy9CLE9BQU8sd0JBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxJQUFJLGVBQWUsQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsQ0FBUyxFQUFFLEdBQVcsRUFBRSxXQUFtQjtJQUM3RCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4yMzIuMi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9wcml2YXRlL3JlZ2lvbi1sb29rdXAudHNcblxuaW1wb3J0IHsgUmVnaW9uSW5mbyB9IGZyb20gXCJAYXdzLWNkay9yZWdpb24taW5mb1wiO1xuaW1wb3J0IHsgRm4sIFRlcnJhZm9ybUxvY2FsIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tIFwiLi9jeC1hcGlcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuXG50eXBlIE1hcHBpbmcgPSB7IFtrMTogc3RyaW5nXTogeyBbazI6IHN0cmluZ106IGFueSB9IH07XG5cbmNvbnN0IEF3cyA9IHtcbiAgVVJMX1NVRkZJWDogXCJBV1M6OlVSTFN1ZmZpeFwiLFxuICBSRUdJT046IFwiQVdTOjpSZWdpb25cIixcbn07XG5cbi8qKlxuICogTWFrZSBzdXJlIGEgVGVycmFmb3JtIExvY2FsIEJsb2NrICh0byBtaW1pYyBhIENsb3VkRm9ybWF0aW9uIE1hcHBpbmcpIGV4aXN0c1xuICogaW4gdGhlIGdpdmVuIHN0YWNrIHdpdGggdGhlIGxvb2t1cCB2YWx1ZXMgZm9yIHRoZSBnaXZlbiBmYWN0XG4gKlxuICogQWRkIHRvIGFuIGV4aXN0aW5nIFRlcnJhZm9ybSBMb2NhbCBCbG9jayBpZiBwb3NzaWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlcGxveVRpbWVMb29rdXAoXG4gIHN0YWNrOiBBd3NTdGFjayxcbiAgZmFjdE5hbWU6IHN0cmluZyxcbiAgbG9va3VwTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmcsXG4pIHtcbiAgLy8gSWYgdGhlcmUgYXJlIG5vIGxvb2t1cHMsIGp1c3QgcmV0dXJuIHRoZSBkZWZhdWx0XG4gIGlmIChPYmplY3QudmFsdWVzKGxvb2t1cE1hcCkubGVuZ3RoID09PSAwKSB7XG4gICAgaWYgKGRlZmF1bHRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGByZWdpb24taW5mbzogZG9uJ3QgaGF2ZSBhbnkgaW5mb3JtYXRpb24gZm9yICR7ZmFjdE5hbWV9LiBVc2UgJ0ZhY3QucmVnaXN0ZXInIHRvIHByb3ZpZGUgdmFsdWVzLCBvciBhZGQgcGFydGl0aW9ucyB0byB0aGUgJyR7Y3hhcGkuVEFSR0VUX1BBUlRJVElPTlN9JyBjb250ZXh0IHZhbHVlLmAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgLy8gSWYgdGhlIHRva2VuaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbGwgdmFsdWVzIGlzIHRoZSBzYW1lLCB3ZSBjYW4ganVzdFxuICAvLyByZXR1cm4gdGhlIHZhbHVlIGRpcmVjdGx5IGFuZCBkb24ndCBuZWVkIHRvIHByb2R1Y2UgYW4gYWN0dWFsIG1hcC5cbiAgY29uc3QgcGF0dGVybiA9IGZpbmRWYWx1ZVBhdHRlcm4obG9va3VwTWFwKTtcbiAgaWYgKHBhdHRlcm4gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAoXG4gICAgICBwYXR0ZXJuXG4gICAgICAgIC8vIFJlcGxhY2UgQVdTIHBzZXVkbyBwYXJhbWV0ZXJzIHdpdGggVGVycmFmb3JtIHRva2Vuc1xuICAgICAgICAucmVwbGFjZShBd3MuUkVHSU9OLCBzdGFjay5yZWdpb24pXG4gICAgICAgIC5yZXBsYWNlKEF3cy5VUkxfU1VGRklYLCBzdGFjay51cmxTdWZmaXgpXG4gICAgKTtcbiAgfVxuXG4gIC8vIERlcml2ZSBtYXAgbmFtZSBhbmQgbG9va3VwIGtleSBmcm9tIHRoZSBmYWN0TmFtZSwgc3BsaXR0aW5nIG9uICc6JyBpZiBpdCBleGlzdHNcbiAgY29uc3QgW2ZhY3RDbGFzcywgZmFjdFBhcmFtXSA9IGZhY3ROYW1lLmluY2x1ZGVzKFwiOlwiKVxuICAgID8gZmFjdE5hbWUuc3BsaXQoXCI6XCIpXG4gICAgOiAoW2ZhY3ROYW1lLCBcInZhbHVlXCJdIGFzIGNvbnN0KTtcblxuICBjb25zdCBtYXBJZCA9IGAke3VjZmlyc3QoZmFjdENsYXNzKX1NYXBgO1xuICBjb25zdCBmYWN0S2V5ID0gZmFjdFBhcmFtLnJlcGxhY2UoL1teYS16QS1aMC05XS9nLCBcInhcIik7XG5cbiAgbGV0IG1hcHBpbmcgPSBzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChtYXBJZCkgYXMgVGVycmFmb3JtTG9jYWwgfCB1bmRlZmluZWQ7XG4gIGlmICghbWFwcGluZykge1xuICAgIG1hcHBpbmcgPSBuZXcgVGVycmFmb3JtTG9jYWwoc3RhY2ssIG1hcElkLCB7fSk7XG4gIH1cbiAgY29uc3QgdGVtcDogTWFwcGluZyA9IHt9O1xuICBmb3IgKGNvbnN0IFtyZWdpb24sIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhsb29rdXBNYXApKSB7XG4gICAgdGVtcFtyZWdpb25dID0ge1xuICAgICAgW2ZhY3RLZXldOiB2YWx1ZSxcbiAgICB9O1xuICB9XG4gIG1hcHBpbmcuZXhwcmVzc2lvbiA9IHRlbXA7XG4gIHJldHVybiBGbi5sb29rdXAoRm4ubG9va3VwKG1hcHBpbmcuYXNTdHJpbmdNYXAsIHN0YWNrLnJlZ2lvbiksIGZhY3RLZXkpO1xufVxuXG5mdW5jdGlvbiB1Y2ZpcnN0KHg6IHN0cmluZykge1xuICByZXR1cm4gYCR7eC5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpfSR7eC5zbGljZSgxKX1gO1xufVxuXG4vKipcbiAqIFRyeSB0byBkZXRlY3QgaWYgYWxsIHZhbHVlcyBpbiB0aGUgbWFwIGZvbGxvdyB0aGUgc2FtZSBwYXR0ZXJuXG4gKlxuICogRG8gdGhpcyBieSByZXBsYWNpbmcgcmVnaW9uIGFuZCBVUkxTdWZmaXggdmFsdWVzIGluIHRoZSBmb3VuZCBzdHJpbmdzXG4gKiB3aXRoIHRoZWlyIHRva2VuIHZhcmlhbnQuIElmIGF0IHRoZSBlbmQgYWxsIHN0cmluZ3MgaGF2ZSB0aGUgc2FtZSBmb3JtYXQsXG4gKiB3ZSBjYW4gc2ltcGxpZnkgdG8ganVzdCB0aGUgc2luZ2xlIHZhbHVlLlxuICpcbiAqIFRoaXMgd291bGRuJ3QgaGF2ZSBiZWVuIG5lY2Vzc2FyeSBpZiB0aGUgcmVnaW9uLWluZm8gbGlicmFyeSBoYWQgZW5jb2RlZCB0aGVcbiAqIHBhdHRlcm4gaW5mb3JtYXRpb24gaW5zdGVhZCBvZiB0aGUgbGl0ZXJhbCB2YWx1ZXMuLi4gYnV0IGxldCdzIGRvIGl0IGhlcmUgbm93LlxuICovXG5mdW5jdGlvbiBmaW5kVmFsdWVQYXR0ZXJuKFxuICByZWdpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBzaW1wbGlmaWVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0geyAuLi5yZWdpb25NYXAgfTtcblxuICAvLyBJZiB0aGV5IGFsbCBjb250YWluIFVSTF9TVUZGSVgsIHN1YnN0aXR1dGUgaXQsIGJ1dCBvbmx5IGlmIHRoZSB2YWx1ZSBpcyBkaWZmZXJlbnRcbiAgLy8gYW1vbmcgc29tZSB2YWx1ZXMgaW4gdGhlIGxpc3QgKHdlIGRvbid0IHdhbnQgdG8gdG9rZW5pemUgdW5uZWNlc3NhcmlseSwgaS5lLiB3ZSBkb24ndFxuICAvLyB3YW50IHRvIHJlcGxhY2UgYGFtYXpvbmF3cy5jb21gIHdpdGggVVJMX1NVRkZJWCBpZiBpdCdzIG5vdCBuZWNlc3NhcnkpXG4gIGNvbnN0IHVybFN1ZmZpeGVzID0gT2JqZWN0LmtleXMoc2ltcGxpZmllZCkubWFwKHVybFN1ZmZpeCk7XG4gIGlmIChcbiAgICAhYWxsU2FtZSh1cmxTdWZmaXhlcykgJiZcbiAgICBPYmplY3QuZW50cmllcyhzaW1wbGlmaWVkKS5ldmVyeSgoW3JlZ2lvbiwgdmFsdWVdKSA9PlxuICAgICAgdmFsdWUuaW5jbHVkZXModXJsU3VmZml4KHJlZ2lvbikpLFxuICAgIClcbiAgKSB7XG4gICAgZm9yIChjb25zdCByZWdpb24gaW4gc2ltcGxpZmllZCkge1xuICAgICAgc2ltcGxpZmllZFtyZWdpb25dID0gcmVwbGFjZUFsbChcbiAgICAgICAgc2ltcGxpZmllZFtyZWdpb25dLFxuICAgICAgICB1cmxTdWZmaXgocmVnaW9uKSxcbiAgICAgICAgQXdzLlVSTF9TVUZGSVgsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZXkgYWxsIGNvbnRhaW4gUkVHSU9OLCBzdWJzdGl0dXRlIGl0IChubyBuZWVkIHRvIGRvIHRoZSBcImlzIGV2ZXJ5dGhpbmcgZGlmZmVyZW50XCJcbiAgLy8gY2hlY2ssIHRoaXMgaXMgdHJ1ZSBieSBkZXNpZ24gZm9yIHRoZXNlIHZhbHVlcylcbiAgaWYgKFxuICAgIE9iamVjdC5lbnRyaWVzKHNpbXBsaWZpZWQpLmV2ZXJ5KChbcmVnaW9uLCB2YWx1ZV0pID0+XG4gICAgICB2YWx1ZS5pbmNsdWRlcyhyZWdpb24pLFxuICAgIClcbiAgKSB7XG4gICAgZm9yIChjb25zdCByZWdpb24gaW4gc2ltcGxpZmllZCkge1xuICAgICAgc2ltcGxpZmllZFtyZWdpb25dID0gcmVwbGFjZUFsbChzaW1wbGlmaWVkW3JlZ2lvbl0sIHJlZ2lvbiwgQXdzLlJFR0lPTik7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGhlIHZhbHVlcyBhcmUgbm93IGFsbCB0aGUgc2FtZSwgcmV0dXJuIHRoZSBzaW5nbGV0b24gdmFsdWVcbiAgY29uc3QgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyhzaW1wbGlmaWVkKTtcbiAgaWYgKGFsbFNhbWUodmFsdWVzKSkge1xuICAgIHJldHVybiB2YWx1ZXNbMF07XG4gIH1cblxuICAvLyBPdGhlcndpc2Ugd2UgZmFpbGVkXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGFsbFNhbWUoeHM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiB4cy5ldmVyeSgoeCkgPT4geCA9PT0geHNbMF0pO1xufVxuXG5mdW5jdGlvbiB1cmxTdWZmaXgocmVnaW9uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIFJlZ2lvbkluZm8uZ2V0KHJlZ2lvbik/LmRvbWFpblN1ZmZpeCA/PyBcImFtYXpvbmF3cy5jb21cIjtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZUFsbCh4OiBzdHJpbmcsIHBhdDogc3RyaW5nLCByZXBsYWNlbWVudDogc3RyaW5nKSB7XG4gIHJldHVybiB4LnNwbGl0KHBhdCkuam9pbihyZXBsYWNlbWVudCk7XG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLWxvb2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvcmVnaW9uLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0dBQXNHOztBQXFCdEcsNENBZ0RDO0FBbkVELHNEQUFrRDtBQUNsRCxpQ0FBMkM7QUFDM0Msa0NBQWtDO0FBRWxDLHNDQUFvRDtBQUlwRCxNQUFNLEdBQUcsR0FBRztJQUNWLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsTUFBTSxFQUFFLGFBQWE7Q0FDdEIsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLEtBQWUsRUFDZixRQUFnQixFQUNoQixTQUFpQyxFQUNqQyxZQUFxQjtJQUVyQixtREFBbUQ7SUFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksZ0NBQXVCLENBQy9CLCtDQUErQyxRQUFRLHNFQUFzRSxLQUFLLENBQUMsaUJBQWlCLGtCQUFrQixDQUN2SyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCx5RUFBeUU7SUFDekUscUVBQXFFO0lBQ3JFLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FDTCxPQUFPO1lBQ0wsc0RBQXNEO2FBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUVELGtGQUFrRjtJQUNsRixNQUFNLENB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Q0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFFLENBQUM7SUFDSCxDQUFDO0lBRUQsaUVBQWlFO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxFQUFZO0lBQzNCLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxNQUFjO0lBQy9CLE9BQU8sd0JBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxJQUFJLGVBQWUsQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsQ0FBUyxFQUFFLEdBQVcsRUFBRSxXQUFtQjtJQUM3RCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4yMzIuMi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9wcml2YXRlL3JlZ2lvbi1sb29rdXAudHNcblxuaW1wb3J0IHsgUmVnaW9uSW5mbyB9IGZyb20gXCJAYXdzLWNkay9yZWdpb24taW5mb1wiO1xuaW1wb3J0IHsgRm4sIFRlcnJhZm9ybUxvY2FsIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tIFwiLi9jeC1hcGlcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuXG50eXBlIE1hcHBpbmcgPSB7IFtrMTogc3RyaW5nXTogeyBbazI6IHN0cmluZ106IGFueSB9IH07XG5cbmNvbnN0IEF3cyA9IHtcbiAgVVJMX1NVRkZJWDogXCJBV1M6OlVSTFN1ZmZpeFwiLFxuICBSRUdJT046IFwiQVdTOjpSZWdpb25cIixcbn07XG5cbi8qKlxuICogTWFrZSBzdXJlIGEgVGVycmFmb3JtIExvY2FsIEJsb2NrICh0byBtaW1pYyBhIENsb3VkRm9ybWF0aW9uIE1hcHBpbmcpIGV4aXN0c1xuICogaW4gdGhlIGdpdmVuIHN0YWNrIHdpdGggdGhlIGxvb2t1cCB2YWx1ZXMgZm9yIHRoZSBnaXZlbiBmYWN0XG4gKlxuICogQWRkIHRvIGFuIGV4aXN0aW5nIFRlcnJhZm9ybSBMb2NhbCBCbG9jayBpZiBwb3NzaWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlcGxveVRpbWVMb29rdXAoXG4gIHN0YWNrOiBBd3NTdGFjayxcbiAgZmFjdE5hbWU6IHN0cmluZyxcbiAgbG9va3VwTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmcsXG4pIHtcbiAgLy8gSWYgdGhlcmUgYXJlIG5vIGxvb2t1cHMsIGp1c3QgcmV0dXJuIHRoZSBkZWZhdWx0XG4gIGlmIChPYmplY3QudmFsdWVzKGxvb2t1cE1hcCkubGVuZ3RoID09PSAwKSB7XG4gICAgaWYgKGRlZmF1bHRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGByZWdpb24taW5mbzogZG9uJ3QgaGF2ZSBhbnkgaW5mb3JtYXRpb24gZm9yICR7ZmFjdE5hbWV9LiBVc2UgJ0ZhY3QucmVnaXN0ZXInIHRvIHByb3ZpZGUgdmFsdWVzLCBvciBhZGQgcGFydGl0aW9ucyB0byB0aGUgJyR7Y3hhcGkuVEFSR0VUX1BBUlRJVElPTlN9JyBjb250ZXh0IHZhbHVlLmAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgLy8gSWYgdGhlIHRva2VuaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbGwgdmFsdWVzIGlzIHRoZSBzYW1lLCB3ZSBjYW4ganVzdFxuICAvLyByZXR1cm4gdGhlIHZhbHVlIGRpcmVjdGx5IGFuZCBkb24ndCBuZWVkIHRvIHByb2R1Y2UgYW4gYWN0dWFsIG1hcC5cbiAgY29uc3QgcGF0dGVybiA9IGZpbmRWYWx1ZVBhdHRlcm4obG9va3VwTWFwKTtcbiAgaWYgKHBhdHRlcm4gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAoXG4gICAgICBwYXR0ZXJuXG4gICAgICAgIC8vIFJlcGxhY2UgQVdTIHBzZXVkbyBwYXJhbWV0ZXJzIHdpdGggVGVycmFmb3JtIHRva2Vuc1xuICAgICAgICAucmVwbGFjZShBd3MuUkVHSU9OLCBzdGFjay5yZWdpb24pXG4gICAgICAgIC5yZXBsYWNlKEF3cy5VUkxfU1VGRklYLCBzdGFjay51cmxTdWZmaXgpXG4gICAgKTtcbiAgfVxuXG4gIC8vIERlcml2ZSBtYXAgbmFtZSBhbmQgbG9va3VwIGtleSBmcm9tIHRoZSBmYWN0TmFtZSwgc3BsaXR0aW5nIG9uICc6JyBpZiBpdCBleGlzdHNcbiAgY29uc3QgW2ZhY3RDbGFzcywgZmFjdFBhcmFtXSA9IGZhY3ROYW1lLmluY2x1ZGVzKFwiOlwiKVxuICAgID8gZmFjdE5hbWUuc3BsaXQoXCI6XCIpXG4gICAgOiAoW2ZhY3ROYW1lLCBcInZhbHVlXCJdIGFzIGNvbnN0KTtcblxuICBjb25zdCBtYXBJZCA9IGAke3VjZmlyc3QoZmFjdENsYXNzKX1NYXBgO1xuICBjb25zdCBmYWN0S2V5ID0gZmFjdFBhcmFtLnJlcGxhY2UoL1teYS16QS1aMC05XS9nLCBcInhcIik7XG5cbiAgbGV0IG1hcHBpbmcgPSBzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChtYXBJZCkgYXMgVGVycmFmb3JtTG9jYWwgfCB1bmRlZmluZWQ7XG4gIGlmICghbWFwcGluZykge1xuICAgIG1hcHBpbmcgPSBuZXcgVGVycmFmb3JtTG9jYWwoc3RhY2ssIG1hcElkLCB7fSk7XG4gIH1cbiAgY29uc3QgdGVtcDogTWFwcGluZyA9IHt9O1xuICBmb3IgKGNvbnN0IFtyZWdpb24sIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhsb29rdXBNYXApKSB7XG4gICAgdGVtcFtyZWdpb25dID0ge1xuICAgICAgW2ZhY3RLZXldOiB2YWx1ZSxcbiAgICB9O1xuICB9XG4gIG1hcHBpbmcuZXhwcmVzc2lvbiA9IHRlbXA7XG4gIHJldHVybiBGbi5sb29rdXAoRm4ubG9va3VwKG1hcHBpbmcuYXNTdHJpbmdNYXAsIHN0YWNrLnJlZ2lvbiksIGZhY3RLZXkpO1xufVxuXG5mdW5jdGlvbiB1Y2ZpcnN0KHg6IHN0cmluZykge1xuICByZXR1cm4gYCR7eC5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpfSR7eC5zbGljZSgxKX1gO1xufVxuXG4vKipcbiAqIFRyeSB0byBkZXRlY3QgaWYgYWxsIHZhbHVlcyBpbiB0aGUgbWFwIGZvbGxvdyB0aGUgc2FtZSBwYXR0ZXJuXG4gKlxuICogRG8gdGhpcyBieSByZXBsYWNpbmcgcmVnaW9uIGFuZCBVUkxTdWZmaXggdmFsdWVzIGluIHRoZSBmb3VuZCBzdHJpbmdzXG4gKiB3aXRoIHRoZWlyIHRva2VuIHZhcmlhbnQuIElmIGF0IHRoZSBlbmQgYWxsIHN0cmluZ3MgaGF2ZSB0aGUgc2FtZSBmb3JtYXQsXG4gKiB3ZSBjYW4gc2ltcGxpZnkgdG8ganVzdCB0aGUgc2luZ2xlIHZhbHVlLlxuICpcbiAqIFRoaXMgd291bGRuJ3QgaGF2ZSBiZWVuIG5lY2Vzc2FyeSBpZiB0aGUgcmVnaW9uLWluZm8gbGlicmFyeSBoYWQgZW5jb2RlZCB0aGVcbiAqIHBhdHRlcm4gaW5mb3JtYXRpb24gaW5zdGVhZCBvZiB0aGUgbGl0ZXJhbCB2YWx1ZXMuLi4gYnV0IGxldCdzIGRvIGl0IGhlcmUgbm93LlxuICovXG5mdW5jdGlvbiBmaW5kVmFsdWVQYXR0ZXJuKFxuICByZWdpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBzaW1wbGlmaWVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0geyAuLi5yZWdpb25NYXAgfTtcblxuICAvLyBJZiB0aGV5IGFsbCBjb250YWluIFVSTF9TVUZGSVgsIHN1YnN0aXR1dGUgaXQsIGJ1dCBvbmx5IGlmIHRoZSB2YWx1ZSBpcyBkaWZmZXJlbnRcbiAgLy8gYW1vbmcgc29tZSB2YWx1ZXMgaW4gdGhlIGxpc3QgKHdlIGRvbid0IHdhbnQgdG8gdG9rZW5pemUgdW5uZWNlc3NhcmlseSwgaS5lLiB3ZSBkb24ndFxuICAvLyB3YW50IHRvIHJlcGxhY2UgYGFtYXpvbmF3cy5jb21gIHdpdGggVVJMX1NVRkZJWCBpZiBpdCdzIG5vdCBuZWNlc3NhcnkpXG4gIGNvbnN0IHVybFN1ZmZpeGVzID0gT2JqZWN0LmtleXMoc2ltcGxpZmllZCkubWFwKHVybFN1ZmZpeCk7XG4gIGlmIChcbiAgICAhYWxsU2FtZSh1cmxTdWZmaXhlcykgJiZcbiAgICBPYmplY3QuZW50cmllcyhzaW1wbGlmaWVkKS5ldmVyeSgoW3JlZ2lvbiwgdmFsdWVdKSA9PlxuICAgICAgdmFsdWUuaW5jbHVkZXModXJsU3VmZml4KHJlZ2lvbikpLFxuICAgIClcbiAgKSB7XG4gICAgZm9yIChjb25zdCByZWdpb24gaW4gc2ltcGxpZmllZCkge1xuICAgICAgc2ltcGxpZmllZFtyZWdpb25dID0gcmVwbGFjZUFsbChcbiAgICAgICAgc2ltcGxpZmllZFtyZWdpb25dLFxuICAgICAgICB1cmxTdWZmaXgocmVnaW9uKSxcbiAgICAgICAgQXdzLlVSTF9TVUZGSVgsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZXkgYWxsIGNvbnRhaW4gUkVHSU9OLCBzdWJzdGl0dXRlIGl0IChubyBuZWVkIHRvIGRvIHRoZSBcImlzIGV2ZXJ5dGhpbmcgZGlmZmVyZW50XCJcbiAgLy8gY2hlY2ssIHRoaXMgaXMgdHJ1ZSBieSBkZXNpZ24gZm9yIHRoZXNlIHZhbHVlcylcbiAgaWYgKFxuICAgIE9iamVjdC5lbnRyaWVzKHNpbXBsaWZpZWQpLmV2ZXJ5KChbcmVnaW9uLCB2YWx1ZV0pID0+XG4gICAgICB2YWx1ZS5pbmNsdWRlcyhyZWdpb24pLFxuICAgIClcbiAgKSB7XG4gICAgZm9yIChjb25zdCByZWdpb24gaW4gc2ltcGxpZmllZCkge1xuICAgICAgc2ltcGxpZmllZFtyZWdpb25dID0gcmVwbGFjZUFsbChzaW1wbGlmaWVkW3JlZ2lvbl0sIHJlZ2lvbiwgQXdzLlJFR0lPTik7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGhlIHZhbHVlcyBhcmUgbm93IGFsbCB0aGUgc2FtZSwgcmV0dXJuIHRoZSBzaW5nbGV0b24gdmFsdWVcbiAgY29uc3QgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyhzaW1wbGlmaWVkKTtcbiAgaWYgKGFsbFNhbWUodmFsdWVzKSkge1xuICAgIHJldHVybiB2YWx1ZXNbMF07XG4gIH1cblxuICAvLyBPdGhlcndpc2Ugd2UgZmFpbGVkXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGFsbFNhbWUoeHM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiB4cy5ldmVyeSgoeCkgPT4geCA9PT0geHNbMF0pO1xufVxuXG5mdW5jdGlvbiB1cmxTdWZmaXgocmVnaW9uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIFJlZ2lvbkluZm8uZ2V0KHJlZ2lvbik/LmRvbWFpblN1ZmZpeCA/PyBcImFtYXpvbmF3cy5jb21cIjtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZUFsbCh4OiBzdHJpbmcsIHBhdDogc3RyaW5nLCByZXBsYWNlbWVudDogc3RyaW5nKSB7XG4gIHJldHVybiB4LnNwbGl0KHBhdCkuam9pbihyZXBsYWNlbWVudCk7XG59XG4iXX0=