terraconstructs 0.0.11 → 0.0.12

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 (410) hide show
  1. package/.jsii +104486 -34582
  2. package/lib/aws/arn.js +1 -1
  3. package/lib/aws/aws-construct.d.ts +1 -1
  4. package/lib/aws/aws-construct.js +28 -2
  5. package/lib/aws/aws-stack.d.ts +2 -4
  6. package/lib/aws/aws-stack.js +21 -8
  7. package/lib/aws/aws-tags.d.ts +58 -0
  8. package/lib/aws/aws-tags.js +77 -0
  9. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  10. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  11. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  12. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  13. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  14. package/lib/aws/cloudwatch/alarm.js +1 -1
  15. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  16. package/lib/aws/cloudwatch/dashboard.js +1 -1
  17. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  18. package/lib/aws/cloudwatch/graph.js +8 -8
  19. package/lib/aws/cloudwatch/layout.js +3 -3
  20. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  21. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  22. package/lib/aws/cloudwatch/log-group.js +1 -1
  23. package/lib/aws/cloudwatch/log-query.js +1 -1
  24. package/lib/aws/cloudwatch/log-stream.js +1 -1
  25. package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
  26. package/lib/aws/cloudwatch/metric-filter.js +4 -4
  27. package/lib/aws/cloudwatch/metric.js +2 -2
  28. package/lib/aws/cloudwatch/pattern.js +3 -3
  29. package/lib/aws/cloudwatch/policy.js +1 -1
  30. package/lib/aws/cloudwatch/private/env-tokens.js +5 -6
  31. package/lib/aws/cloudwatch/private/metric-util.js +4 -5
  32. package/lib/aws/cloudwatch/private/object.js +2 -3
  33. package/lib/aws/cloudwatch/private/rendering.js +3 -3
  34. package/lib/aws/cloudwatch/private/statistic.js +6 -7
  35. package/lib/aws/cloudwatch/query-definition.js +2 -2
  36. package/lib/aws/cloudwatch/stats.js +1 -1
  37. package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
  38. package/lib/aws/cloudwatch/subscription-filter.js +4 -4
  39. package/lib/aws/cloudwatch/text.js +1 -1
  40. package/lib/aws/cloudwatch/variable.js +3 -3
  41. package/lib/aws/cloudwatch/widget.d.ts +1 -1
  42. package/lib/aws/cloudwatch/widget.js +4 -4
  43. package/lib/aws/compute/activity.js +3 -2
  44. package/lib/aws/compute/alb/application-listener-action.d.ts +334 -0
  45. package/lib/aws/compute/alb/application-listener-action.js +281 -0
  46. package/lib/aws/compute/alb/application-listener-certificate.d.ts +35 -0
  47. package/lib/aws/compute/alb/application-listener-certificate.js +35 -0
  48. package/lib/aws/compute/alb/application-listener-rule.d.ts +233 -0
  49. package/lib/aws/compute/alb/application-listener-rule.js +220 -0
  50. package/lib/aws/compute/alb/application-listener.d.ts +574 -0
  51. package/lib/aws/compute/alb/application-listener.js +538 -0
  52. package/lib/aws/compute/alb/application-load-balancer.d.ts +715 -0
  53. package/lib/aws/compute/alb/application-load-balancer.js +780 -0
  54. package/lib/aws/compute/alb/application-target-group.d.ts +339 -0
  55. package/lib/aws/compute/alb/application-target-group.js +427 -0
  56. package/lib/aws/compute/alb/conditions.d.ts +61 -0
  57. package/lib/aws/compute/alb/conditions.js +164 -0
  58. package/lib/aws/compute/alb/trust-store-revocation.d.ts +59 -0
  59. package/lib/aws/compute/alb/trust-store-revocation.js +46 -0
  60. package/lib/aws/compute/alb/trust-store.d.ts +86 -0
  61. package/lib/aws/compute/alb/trust-store.js +79 -0
  62. package/lib/aws/compute/architecture.js +1 -1
  63. package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +75 -0
  64. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +106 -0
  65. package/lib/aws/compute/bastion-host.d.ts +172 -0
  66. package/lib/aws/compute/bastion-host.js +114 -0
  67. package/lib/aws/compute/chain.js +1 -1
  68. package/lib/aws/compute/cidr-splits.d.ts +49 -0
  69. package/lib/aws/compute/cidr-splits.js +59 -0
  70. package/lib/aws/compute/client-vpn-authorization-rule.d.ts +43 -0
  71. package/lib/aws/compute/client-vpn-authorization-rule.js +30 -0
  72. package/lib/aws/compute/client-vpn-endpoint-types.d.ts +62 -0
  73. package/lib/aws/compute/client-vpn-endpoint-types.js +25 -0
  74. package/lib/aws/compute/client-vpn-endpoint.d.ts +239 -0
  75. package/lib/aws/compute/client-vpn-endpoint.js +259 -0
  76. package/lib/aws/compute/client-vpn-route.d.ts +67 -0
  77. package/lib/aws/compute/client-vpn-route.js +57 -0
  78. package/lib/aws/compute/condition.js +1 -1
  79. package/lib/aws/compute/connections.d.ts +137 -0
  80. package/lib/aws/compute/connections.js +208 -0
  81. package/lib/aws/compute/ec2-augmentations.generated.d.ts +53 -0
  82. package/lib/aws/compute/ec2-augmentations.generated.js +35 -0
  83. package/lib/aws/compute/ec2-canned-metrics.generated.d.ts +555 -0
  84. package/lib/aws/compute/ec2-canned-metrics.generated.js +681 -0
  85. package/lib/aws/compute/ec2-util-v2.d.ts +141 -0
  86. package/lib/aws/compute/ec2-util-v2.js +286 -0
  87. package/lib/aws/compute/ec2-util.d.ts +52 -0
  88. package/lib/aws/compute/ec2-util.js +138 -0
  89. package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.d.ts +176 -0
  90. package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.js +119 -0
  91. package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.d.ts +860 -0
  92. package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.js +597 -0
  93. package/lib/aws/compute/event-invoke-config.js +1 -1
  94. package/lib/aws/compute/event-source-filter.js +2 -2
  95. package/lib/aws/compute/event-source-mapping.js +1 -1
  96. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  97. package/lib/aws/compute/event-sources/s3.js +1 -1
  98. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  99. package/lib/aws/compute/event-sources/sqs.js +1 -1
  100. package/lib/aws/compute/fields.js +4 -4
  101. package/lib/aws/compute/function-alias.js +1 -1
  102. package/lib/aws/compute/function-base.js +2 -2
  103. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  104. package/lib/aws/compute/function-destinations/function.js +1 -1
  105. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  106. package/lib/aws/compute/function-nodejs.js +1 -1
  107. package/lib/aws/compute/function-url.js +1 -1
  108. package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
  109. package/lib/aws/compute/function-vpc-config.generated.js +1 -1
  110. package/lib/aws/compute/function.d.ts +1 -1
  111. package/lib/aws/compute/function.js +5 -5
  112. package/lib/aws/compute/index-alpha.d.ts +5 -0
  113. package/lib/aws/compute/index-alpha.js +22 -0
  114. package/lib/aws/compute/index.d.ts +60 -0
  115. package/lib/aws/compute/index.js +70 -2
  116. package/lib/aws/compute/instance-types.d.ts +1354 -0
  117. package/lib/aws/compute/instance-types.js +1683 -0
  118. package/lib/aws/compute/instance.d.ts +436 -0
  119. package/lib/aws/compute/instance.js +262 -0
  120. package/lib/aws/compute/ip-addresses.d.ts +249 -0
  121. package/lib/aws/compute/ip-addresses.js +248 -0
  122. package/lib/aws/compute/ipam.d.ts +309 -0
  123. package/lib/aws/compute/ipam.js +306 -0
  124. package/lib/aws/compute/key-pair.d.ts +178 -0
  125. package/lib/aws/compute/key-pair.js +194 -0
  126. package/lib/aws/compute/lambda-augmentations.generated.d.ts +65 -0
  127. package/lib/aws/compute/lambda-augmentations.generated.js +41 -0
  128. package/lib/aws/compute/lambda-canned-metrics.generated.d.ts +316 -0
  129. package/lib/aws/compute/lambda-canned-metrics.generated.js +119 -0
  130. package/lib/aws/compute/launch-template.d.ts +540 -0
  131. package/lib/aws/compute/launch-template.js +468 -0
  132. package/lib/aws/compute/lb-shared/access-logs-accounts.d.ts +7 -0
  133. package/lib/aws/compute/lb-shared/access-logs-accounts.js +46 -0
  134. package/lib/aws/compute/lb-shared/base-listener.d.ts +113 -0
  135. package/lib/aws/compute/lb-shared/base-listener.js +181 -0
  136. package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +212 -0
  137. package/lib/aws/compute/lb-shared/base-load-balancer.js +290 -0
  138. package/lib/aws/compute/lb-shared/base-target-group.d.ts +382 -0
  139. package/lib/aws/compute/lb-shared/base-target-group.js +364 -0
  140. package/lib/aws/compute/lb-shared/enums.d.ts +282 -0
  141. package/lib/aws/compute/lb-shared/enums.js +301 -0
  142. package/lib/aws/compute/lb-shared/grid-lookup-types.d.ts +42 -0
  143. package/lib/aws/compute/lb-shared/grid-lookup-types.js +53 -0
  144. package/lib/aws/compute/lb-shared/imported.d.ts +24 -0
  145. package/lib/aws/compute/lb-shared/imported.js +27 -0
  146. package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +194 -0
  147. package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +3 -0
  148. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +56 -0
  149. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +3 -0
  150. package/lib/aws/compute/lb-shared/listener-action.d.ts +14 -0
  151. package/lib/aws/compute/lb-shared/listener-action.js +4 -0
  152. package/lib/aws/compute/lb-shared/listener-certificate.d.ts +28 -0
  153. package/lib/aws/compute/lb-shared/listener-certificate.js +29 -0
  154. package/lib/aws/compute/lb-shared/load-balancer-targets.d.ts +93 -0
  155. package/lib/aws/compute/lb-shared/load-balancer-targets.js +127 -0
  156. package/lib/aws/compute/lb-shared/util.d.ts +113 -0
  157. package/lib/aws/compute/lb-shared/util.js +264 -0
  158. package/lib/aws/compute/lb-targets/alb-target.d.ts +67 -0
  159. package/lib/aws/compute/lb-targets/alb-target.js +100 -0
  160. package/lib/aws/compute/lb-targets/index.d.ts +4 -0
  161. package/lib/aws/compute/lb-targets/index.js +22 -0
  162. package/lib/aws/compute/lb-targets/instance-target.d.ts +42 -0
  163. package/lib/aws/compute/lb-targets/instance-target.js +67 -0
  164. package/lib/aws/compute/lb-targets/ip-target.d.ts +55 -0
  165. package/lib/aws/compute/lb-targets/ip-target.js +79 -0
  166. package/lib/aws/compute/lb-targets/lambda-target.d.ts +25 -0
  167. package/lib/aws/compute/lb-targets/lambda-target.js +50 -0
  168. package/lib/aws/compute/load-balancer.d.ts +336 -0
  169. package/lib/aws/compute/load-balancer.js +287 -0
  170. package/lib/aws/compute/machine-image/amazon-linux-2022.d.ts +63 -0
  171. package/lib/aws/compute/machine-image/amazon-linux-2022.js +84 -0
  172. package/lib/aws/compute/machine-image/amazon-linux-2023.d.ts +63 -0
  173. package/lib/aws/compute/machine-image/amazon-linux-2023.js +84 -0
  174. package/lib/aws/compute/machine-image/amazon-linux2.d.ts +76 -0
  175. package/lib/aws/compute/machine-image/amazon-linux2.js +87 -0
  176. package/lib/aws/compute/machine-image/common.d.ts +181 -0
  177. package/lib/aws/compute/machine-image/common.js +122 -0
  178. package/lib/aws/compute/machine-image/index.d.ts +5 -0
  179. package/lib/aws/compute/machine-image/index.js +22 -0
  180. package/lib/aws/compute/machine-image/machine-image.d.ts +463 -0
  181. package/lib/aws/compute/machine-image/machine-image.js +566 -0
  182. package/lib/aws/compute/machine-image/utils.d.ts +2 -0
  183. package/lib/aws/compute/machine-image/utils.js +17 -0
  184. package/lib/aws/compute/nat.d.ts +325 -0
  185. package/lib/aws/compute/nat.js +455 -0
  186. package/lib/aws/compute/network-acl-types.d.ts +152 -0
  187. package/lib/aws/compute/network-acl-types.js +156 -0
  188. package/lib/aws/compute/network-acl.d.ts +285 -0
  189. package/lib/aws/compute/network-acl.js +207 -0
  190. package/lib/aws/compute/network-util.d.ts +116 -0
  191. package/lib/aws/compute/network-util.js +241 -0
  192. package/lib/aws/compute/nlb/network-listener-action.d.ts +92 -0
  193. package/lib/aws/compute/nlb/network-listener-action.js +146 -0
  194. package/lib/aws/compute/nlb/network-listener-certificate.d.ts +24 -0
  195. package/lib/aws/compute/nlb/network-listener-certificate.js +25 -0
  196. package/lib/aws/compute/nlb/network-listener.d.ts +248 -0
  197. package/lib/aws/compute/nlb/network-listener.js +217 -0
  198. package/lib/aws/compute/nlb/network-load-balancer.d.ts +315 -0
  199. package/lib/aws/compute/nlb/network-load-balancer.js +360 -0
  200. package/lib/aws/compute/nlb/network-target-group.d.ts +153 -0
  201. package/lib/aws/compute/nlb/network-target-group.js +223 -0
  202. package/lib/aws/compute/peer.d.ts +64 -0
  203. package/lib/aws/compute/peer.js +235 -0
  204. package/lib/aws/compute/placement-group.d.ts +161 -0
  205. package/lib/aws/compute/placement-group.js +133 -0
  206. package/lib/aws/compute/port.d.ts +287 -0
  207. package/lib/aws/compute/port.js +390 -0
  208. package/lib/aws/compute/prefix-list.d.ts +131 -0
  209. package/lib/aws/compute/prefix-list.js +114 -0
  210. package/lib/aws/compute/private/context-stub.d.ts +7 -0
  211. package/lib/aws/compute/private/context-stub.js +43 -0
  212. package/lib/aws/compute/private/ebs-util.d.ts +14 -0
  213. package/lib/aws/compute/private/ebs-util.js +145 -0
  214. package/lib/aws/compute/private/intrinstics.js +2 -1
  215. package/lib/aws/compute/private/json-path.js +8 -8
  216. package/lib/aws/compute/private/util.js +2 -3
  217. package/lib/aws/compute/route.d.ts +547 -0
  218. package/lib/aws/compute/route.js +469 -0
  219. package/lib/aws/compute/security-group.d.ts +414 -0
  220. package/lib/aws/compute/security-group.js +538 -0
  221. package/lib/aws/compute/state-graph.js +1 -1
  222. package/lib/aws/compute/state-machine-fragment.js +1 -1
  223. package/lib/aws/compute/state-machine.d.ts +2 -2
  224. package/lib/aws/compute/state-machine.js +14 -12
  225. package/lib/aws/compute/states/choice.js +1 -1
  226. package/lib/aws/compute/states/custom-state.js +1 -1
  227. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  228. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  229. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  230. package/lib/aws/compute/states/distributed-map.js +1 -1
  231. package/lib/aws/compute/states/fail.js +1 -1
  232. package/lib/aws/compute/states/map-base.js +1 -1
  233. package/lib/aws/compute/states/map.js +1 -1
  234. package/lib/aws/compute/states/parallel.js +1 -1
  235. package/lib/aws/compute/states/pass.js +2 -2
  236. package/lib/aws/compute/states/state.js +5 -5
  237. package/lib/aws/compute/states/succeed.js +1 -1
  238. package/lib/aws/compute/states/task-base.js +2 -2
  239. package/lib/aws/compute/states/task.js +1 -1
  240. package/lib/aws/compute/states/wait.js +2 -2
  241. package/lib/aws/compute/stepfunctions-canned-metrics.generated.d.ts +83 -0
  242. package/lib/aws/compute/stepfunctions-canned-metrics.generated.js +127 -0
  243. package/lib/aws/compute/subnet-v2.d.ts +213 -0
  244. package/lib/aws/compute/subnet-v2.js +405 -0
  245. package/lib/aws/compute/subnet.d.ts +37 -0
  246. package/lib/aws/compute/subnet.js +181 -0
  247. package/lib/aws/compute/task-credentials.js +1 -1
  248. package/lib/aws/compute/task-input.js +1 -1
  249. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  250. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  251. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  252. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  253. package/lib/aws/compute/tasks/private/task-utils.js +3 -4
  254. package/lib/aws/compute/tasks/resource-arn-suffix.js +2 -3
  255. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  256. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  257. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  258. package/lib/aws/compute/types.js +2 -2
  259. package/lib/aws/compute/user-data.d.ts +270 -0
  260. package/lib/aws/compute/user-data.js +487 -0
  261. package/lib/aws/compute/util.d.ts +1 -1
  262. package/lib/aws/compute/util.js +4 -5
  263. package/lib/aws/compute/volume.d.ts +480 -0
  264. package/lib/aws/compute/volume.js +426 -0
  265. package/lib/aws/compute/vpc-endpoint-service.d.ts +149 -0
  266. package/lib/aws/compute/vpc-endpoint-service.js +90 -0
  267. package/lib/aws/compute/vpc-endpoint.d.ts +742 -0
  268. package/lib/aws/compute/vpc-endpoint.js +811 -0
  269. package/lib/aws/compute/vpc-flow-logs.d.ts +551 -0
  270. package/lib/aws/compute/vpc-flow-logs.js +693 -0
  271. package/lib/aws/compute/vpc-lookup.d.ts +73 -0
  272. package/lib/aws/compute/vpc-lookup.js +3 -0
  273. package/lib/aws/compute/vpc-v2-base.d.ts +353 -0
  274. package/lib/aws/compute/vpc-v2-base.js +493 -0
  275. package/lib/aws/compute/vpc-v2.d.ts +385 -0
  276. package/lib/aws/compute/vpc-v2.js +408 -0
  277. package/lib/aws/compute/vpc.d.ts +1448 -0
  278. package/lib/aws/compute/vpc.js +1495 -0
  279. package/lib/aws/compute/vpn.d.ts +443 -0
  280. package/lib/aws/compute/vpn.js +397 -0
  281. package/lib/aws/compute/windows-versions.d.ts +418 -0
  282. package/lib/aws/compute/windows-versions.js +426 -0
  283. package/lib/aws/edge/certificate-base.d.ts +20 -0
  284. package/lib/aws/edge/certificate-base.js +28 -0
  285. package/lib/aws/edge/certificate.d.ts +23 -2
  286. package/lib/aws/edge/certificate.js +54 -4
  287. package/lib/aws/edge/distribution.js +3 -3
  288. package/lib/aws/edge/dns-alias-record-targets.js +2 -2
  289. package/lib/aws/edge/dns-record.js +16 -16
  290. package/lib/aws/edge/dns-zone.d.ts +20 -2
  291. package/lib/aws/edge/dns-zone.js +25 -10
  292. package/lib/aws/edge/function.js +2 -2
  293. package/lib/aws/edge/index.d.ts +1 -0
  294. package/lib/aws/edge/index.js +2 -1
  295. package/lib/aws/edge/key-value-store.js +4 -4
  296. package/lib/aws/edge/origin.js +7 -5
  297. package/lib/aws/edge/response-headers-policy.js +1 -1
  298. package/lib/aws/encryption/alias.js +1 -1
  299. package/lib/aws/encryption/key.js +1 -1
  300. package/lib/aws/encryption/via-service-principal.js +1 -1
  301. package/lib/aws/iam/grant.js +2 -2
  302. package/lib/aws/iam/index.d.ts +1 -0
  303. package/lib/aws/iam/index.js +2 -1
  304. package/lib/aws/iam/instance-profile.d.ts +155 -0
  305. package/lib/aws/iam/instance-profile.js +124 -0
  306. package/lib/aws/iam/managed-policy.js +1 -1
  307. package/lib/aws/iam/oidc-provider.js +1 -1
  308. package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
  309. package/lib/aws/iam/policy-document-config.generated.js +1 -1
  310. package/lib/aws/iam/policy-document.js +1 -1
  311. package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
  312. package/lib/aws/iam/policy-statement-props.generated.js +1 -1
  313. package/lib/aws/iam/policy-statement.js +9 -9
  314. package/lib/aws/iam/policy.js +1 -1
  315. package/lib/aws/iam/principals.js +26 -26
  316. package/lib/aws/iam/private/assume-role-policy.js +2 -3
  317. package/lib/aws/iam/private/comparable-principal.js +2 -3
  318. package/lib/aws/iam/private/immutable-role.d.ts +2 -1
  319. package/lib/aws/iam/private/immutable-role.js +3 -3
  320. package/lib/aws/iam/private/imported-role.d.ts +1 -1
  321. package/lib/aws/iam/private/imported-role.js +3 -3
  322. package/lib/aws/iam/private/merge-statements.js +2 -3
  323. package/lib/aws/iam/private/util.js +4 -4
  324. package/lib/aws/iam/role.js +1 -1
  325. package/lib/aws/iam/saml-provider.d.ts +1 -1
  326. package/lib/aws/iam/saml-provider.js +6 -6
  327. package/lib/aws/iam/unknown-principal.js +1 -1
  328. package/lib/aws/iam/utils.js +2 -3
  329. package/lib/aws/index.d.ts +1 -0
  330. package/lib/aws/index.js +4 -1
  331. package/lib/aws/network/simple-ipv4-vpc.js +5 -5
  332. package/lib/aws/network/subnet-group.js +3 -3
  333. package/lib/aws/network/subnet.d.ts +1 -1
  334. package/lib/aws/network/subnet.js +7 -7
  335. package/lib/aws/notify/archive.js +3 -2
  336. package/lib/aws/notify/connection.js +5 -4
  337. package/lib/aws/notify/event-bus.js +5 -4
  338. package/lib/aws/notify/event-pattern.js +3 -3
  339. package/lib/aws/notify/index.js +3 -1
  340. package/lib/aws/notify/input.js +4 -3
  341. package/lib/aws/notify/kinesis-stream.js +3 -2
  342. package/lib/aws/notify/on-event-options.js +2 -1
  343. package/lib/aws/notify/queue-config.generated.d.ts +18 -11
  344. package/lib/aws/notify/queue-config.generated.js +1 -1
  345. package/lib/aws/notify/queue-policy.js +1 -1
  346. package/lib/aws/notify/queue.js +1 -1
  347. package/lib/aws/notify/resource-policy.js +1 -1
  348. package/lib/aws/notify/rule.js +3 -2
  349. package/lib/aws/notify/schedule.js +2 -2
  350. package/lib/aws/notify/sqs-augmentations.generated.d.ts +125 -0
  351. package/lib/aws/notify/sqs-augmentations.generated.js +74 -0
  352. package/lib/aws/notify/target.js +2 -1
  353. package/lib/aws/notify/targets/event-bus.js +1 -1
  354. package/lib/aws/notify/targets/function.js +1 -1
  355. package/lib/aws/notify/targets/log-group.js +2 -2
  356. package/lib/aws/notify/targets/sqs.js +1 -1
  357. package/lib/aws/notify/targets/state-machine.js +1 -1
  358. package/lib/aws/notify/targets/util.d.ts +1 -1
  359. package/lib/aws/notify/targets/util.js +10 -11
  360. package/lib/aws/notify/util.js +4 -4
  361. package/lib/aws/provider-config.generated.d.ts +33 -33
  362. package/lib/aws/provider-config.generated.js +1 -1
  363. package/lib/aws/storage/bucket-notifications.js +1 -1
  364. package/lib/aws/storage/bucket-policy.js +1 -1
  365. package/lib/aws/storage/bucket-source.js +1 -1
  366. package/lib/aws/storage/bucket.d.ts +298 -65
  367. package/lib/aws/storage/bucket.js +548 -225
  368. package/lib/aws/storage/cors-config.generated.d.ts +3 -3
  369. package/lib/aws/storage/cors-config.generated.js +1 -1
  370. package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
  371. package/lib/aws/storage/cors-rule-config.generated.js +1 -1
  372. package/lib/aws/storage/index.d.ts +1 -0
  373. package/lib/aws/storage/index.js +2 -1
  374. package/lib/aws/storage/lifecycle-config.generated.d.ts +11 -11
  375. package/lib/aws/storage/lifecycle-config.generated.js +1 -1
  376. package/lib/aws/storage/notification-targets/function.js +6 -6
  377. package/lib/aws/storage/notification-targets/queue.js +1 -1
  378. package/lib/aws/storage/origin-access-identity.d.ts +1 -1
  379. package/lib/aws/storage/origin-access-identity.js +5 -4
  380. package/lib/aws/storage/parameter-util.d.ts +12 -0
  381. package/lib/aws/storage/parameter-util.js +65 -0
  382. package/lib/aws/storage/parameter.d.ts +526 -0
  383. package/lib/aws/storage/parameter.js +606 -0
  384. package/lib/aws/storage/s3-canned-metrics.generated.d.ts +22 -0
  385. package/lib/aws/storage/s3-canned-metrics.generated.js +23 -0
  386. package/lib/aws/storage/util.d.ts +25 -3
  387. package/lib/aws/storage/util.js +84 -17
  388. package/lib/aws/storage/website-config.generated.d.ts +5 -5
  389. package/lib/aws/storage/website-config.generated.js +1 -1
  390. package/lib/aws/util.js +2 -3
  391. package/lib/construct-base.d.ts +10 -1
  392. package/lib/construct-base.js +9 -6
  393. package/lib/duration.js +1 -1
  394. package/lib/expiration.d.ts +48 -0
  395. package/lib/expiration.js +68 -0
  396. package/lib/helpers-internal/index.d.ts +1 -0
  397. package/lib/helpers-internal/index.js +7 -0
  398. package/lib/index.d.ts +2 -0
  399. package/lib/index.js +3 -1
  400. package/lib/private/md5.d.ts +4 -0
  401. package/lib/private/md5.js +14 -0
  402. package/lib/private/unique-resource-name.js +3 -4
  403. package/lib/size.js +2 -2
  404. package/lib/stack-base.d.ts +4 -23
  405. package/lib/stack-base.js +9 -30
  406. package/lib/terra-func.d.ts +103 -0
  407. package/lib/terra-func.js +170 -0
  408. package/lib/token.js +5 -5
  409. package/package.json +15 -8
  410. package/bun.lockb +0 -0
@@ -0,0 +1,1683 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.InstanceType = exports.InstanceSize = exports.InstanceArchitecture = exports.InstanceClass = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ // https://github.com/aws/aws-cdk/blob/v2.175.1/packages/aws-cdk-lib/aws-ec2/lib/instance-types.ts
7
+ /**
8
+ * What class and generation of instance to use
9
+ *
10
+ * We have both symbolic and concrete enums for every type.
11
+ *
12
+ * The first are for people that want to specify by purpose,
13
+ * the second one are for people who already know exactly what
14
+ * 'R4' means.
15
+ */
16
+ var InstanceClass;
17
+ (function (InstanceClass) {
18
+ /**
19
+ * Standard instances, 3rd generation
20
+ */
21
+ InstanceClass["STANDARD3"] = "standard3";
22
+ /**
23
+ * Standard instances, 3rd generation
24
+ */
25
+ InstanceClass["M3"] = "m3";
26
+ /**
27
+ * Standard instances, 4th generation
28
+ */
29
+ InstanceClass["STANDARD4"] = "standard4";
30
+ /**
31
+ * Standard instances, 4th generation
32
+ */
33
+ InstanceClass["M4"] = "m4";
34
+ /**
35
+ * Standard instances, 5th generation
36
+ */
37
+ InstanceClass["STANDARD5"] = "standard5";
38
+ /**
39
+ * Standard instances, 5th generation
40
+ */
41
+ InstanceClass["M5"] = "m5";
42
+ /**
43
+ * Standard instances with local NVME drive, 5th generation
44
+ */
45
+ InstanceClass["STANDARD5_NVME_DRIVE"] = "standard5-nvme-drive";
46
+ /**
47
+ * Standard instances with local NVME drive, 5th generation
48
+ */
49
+ InstanceClass["M5D"] = "m5d";
50
+ /**
51
+ * Standard instances based on AMD EPYC, 5th generation
52
+ */
53
+ InstanceClass["STANDARD5_AMD"] = "standard5-amd";
54
+ /**
55
+ * Standard instances based on AMD EPYC, 5th generation
56
+ */
57
+ InstanceClass["M5A"] = "m5a";
58
+ /**
59
+ * Standard instances based on AMD EPYC with local NVME drive, 5th generation
60
+ */
61
+ InstanceClass["STANDARD5_AMD_NVME_DRIVE"] = "standard5-amd-nvme-drive";
62
+ /**
63
+ * Standard instances based on AMD EPYC with local NVME drive, 5th generation
64
+ */
65
+ InstanceClass["M5AD"] = "m5ad";
66
+ /**
67
+ * Standard instances for high performance computing, 5th generation
68
+ */
69
+ InstanceClass["STANDARD5_HIGH_PERFORMANCE"] = "standard5-high-performance";
70
+ /**
71
+ * Standard instances for high performance computing, 5th generation
72
+ */
73
+ InstanceClass["M5N"] = "m5n";
74
+ /**
75
+ * Standard instances with local NVME drive for high performance computing, 5th generation
76
+ */
77
+ InstanceClass["STANDARD5_NVME_DRIVE_HIGH_PERFORMANCE"] = "standard5-nvme-drive-high-performance";
78
+ /**
79
+ * Standard instances with local NVME drive for high performance computing, 5th generation
80
+ */
81
+ InstanceClass["M5DN"] = "m5dn";
82
+ /**
83
+ * Standard instances with high memory and compute capacity based on Intel Xeon Scalable (Cascade Lake) processors, 5nd generation
84
+ */
85
+ InstanceClass["STANDARD5_HIGH_COMPUTE"] = "standard5-high-compute";
86
+ /**
87
+ * Standard instances with high memory and compute capacity based on Intel Xeon Scalable (Cascade Lake) processors, 5nd generation
88
+ */
89
+ InstanceClass["M5ZN"] = "m5zn";
90
+ /**
91
+ * Memory optimized instances, 3rd generation
92
+ */
93
+ InstanceClass["MEMORY3"] = "memory3";
94
+ /**
95
+ * Memory optimized instances, 3rd generation
96
+ */
97
+ InstanceClass["R3"] = "r3";
98
+ /**
99
+ * Memory optimized instances, 4th generation
100
+ */
101
+ InstanceClass["MEMORY4"] = "memory4";
102
+ /**
103
+ * Memory optimized instances, 4th generation
104
+ */
105
+ InstanceClass["R4"] = "r4";
106
+ /**
107
+ * Memory optimized instances, 5th generation
108
+ */
109
+ InstanceClass["MEMORY5"] = "memory5";
110
+ /**
111
+ * Memory optimized instances, 5th generation
112
+ */
113
+ InstanceClass["R5"] = "r5";
114
+ /**
115
+ * Memory optimized instances based on AMD EPYC, 6th generation
116
+ */
117
+ InstanceClass["MEMORY6_AMD"] = "memory6-amd";
118
+ /**
119
+ * Memory optimized instances based on AMD EPYC, 6th generation
120
+ */
121
+ InstanceClass["R6A"] = "r6a";
122
+ /**
123
+ * Memory optimized instances, 6th generation with Intel Xeon Scalable processors (3rd generation processors code named Ice Lake)
124
+ */
125
+ InstanceClass["MEMORY6_INTEL"] = "memory6-intel";
126
+ /**
127
+ * Memory optimized instances, 6th generation with Intel Xeon Scalable processors (3rd generation processors code named Ice Lake)
128
+ */
129
+ InstanceClass["R6I"] = "r6i";
130
+ /**
131
+ * Memory optimized instances with local NVME drive, 6th generation with Intel Xeon Scalable processors (3rd generation processors code named Ice Lake)
132
+ */
133
+ InstanceClass["MEMORY6_INTEL_NVME_DRIVE"] = "memory6-intel-nvme-drive";
134
+ /**
135
+ * Memory optimized instances with local NVME drive, 6th generation with Intel Xeon Scalable processors (3rd generation processors code named Ice Lake)
136
+ */
137
+ InstanceClass["R6ID"] = "r6id";
138
+ /**
139
+ * Memory optimized instances for high performance computing powered by Intel Xeon Scalable processors (code named Ice Lake), 6th generation
140
+ */
141
+ InstanceClass["MEMORY6_INTEL_HIGH_PERFORMANCE"] = "memory6-intel-high-performance";
142
+ /**
143
+ * Memory optimized instances for high performance computing powered by Intel Xeon Scalable processors (code named Ice Lake), 6th generation
144
+ */
145
+ InstanceClass["R6IN"] = "r6in";
146
+ /**
147
+ * Memory optimized instances with local NVME drive for high performance computing powered by Intel Xeon Scalable processors (code named Ice Lake), 6th generation
148
+ */
149
+ InstanceClass["MEMORY6_INTEL_NVME_DRIVE_HIGH_PERFORMANCE"] = "memory6-intel-nvme-drive-high-performance";
150
+ /**
151
+ * Memory optimized instances with local NVME drive for high performance computing powered by Intel Xeon Scalable processors (code named Ice Lake), 6th generation
152
+ */
153
+ InstanceClass["R6IDN"] = "r6idn";
154
+ /**
155
+ * Memory optimized instances for high performance computing, 5th generation
156
+ */
157
+ InstanceClass["MEMORY5_HIGH_PERFORMANCE"] = "memory5-high-performance";
158
+ /**
159
+ * Memory optimized instances for high performance computing, 5th generation
160
+ */
161
+ InstanceClass["R5N"] = "r5n";
162
+ /**
163
+ * Memory optimized instances with local NVME drive, 5th generation
164
+ */
165
+ InstanceClass["MEMORY5_NVME_DRIVE"] = "memory5-nvme-drive";
166
+ /**
167
+ * Memory optimized instances with local NVME drive, 5th generation
168
+ */
169
+ InstanceClass["R5D"] = "r5d";
170
+ /**
171
+ * Memory optimized instances with local NVME drive for high performance computing, 5th generation
172
+ */
173
+ InstanceClass["MEMORY5_NVME_DRIVE_HIGH_PERFORMANCE"] = "memory5-nvme-drive-high-performance";
174
+ /**
175
+ * Memory optimized instances with local NVME drive for high performance computing, 5th generation
176
+ */
177
+ InstanceClass["R5DN"] = "r5dn";
178
+ /**
179
+ * Memory optimized instances based on AMD EPYC, 5th generation
180
+ */
181
+ InstanceClass["MEMORY5_AMD"] = "memory5-amd";
182
+ /**
183
+ * Memory optimized instances based on AMD EPYC, 5th generation
184
+ */
185
+ InstanceClass["R5A"] = "r5a";
186
+ /**
187
+ * Memory optimized instances based on AMD EPYC with local NVME drive, 5th generation
188
+ */
189
+ InstanceClass["MEMORY5_AMD_NVME_DRIVE"] = "memory5-amd-nvme-drive";
190
+ /**
191
+ * Memory optimized instances based on AMD EPYC with local NVME drive, 5th generation
192
+ */
193
+ InstanceClass["R5AD"] = "r5ad";
194
+ /**
195
+ * High memory instances (3TB) based on Intel Xeon Platinum 8176M (Skylake) processors, 1st generation
196
+ */
197
+ InstanceClass["HIGH_MEMORY_3TB_1"] = "high-memory-3tb-1";
198
+ /**
199
+ * High memory instances (3TB) based on Intel Xeon Platinum 8176M (Skylake) processors, 1st generation
200
+ */
201
+ InstanceClass["U_3TB1"] = "u-3tb1";
202
+ /**
203
+ * High memory instances (6TB) based on Intel Xeon Platinum 8176M (Skylake) processors, 1st generation
204
+ */
205
+ InstanceClass["HIGH_MEMORY_6TB_1"] = "high-memory-6tb-1";
206
+ /**
207
+ * High memory instances (6TB) based on Intel Xeon Platinum 8176M (Skylake) processors, 1st generation
208
+ */
209
+ InstanceClass["U_6TB1"] = "u-6tb1";
210
+ /**
211
+ * High memory instances (9TB) based on Intel Xeon Platinum 8176M (Skylake) processors, 1st generation
212
+ */
213
+ InstanceClass["HIGH_MEMORY_9TB_1"] = "high-memory-9tb-1";
214
+ /**
215
+ * High memory instances (9TB) based on Intel Xeon Platinum 8176M (Skylake) processors, 1st generation
216
+ */
217
+ InstanceClass["U_9TB1"] = "u-9tb1";
218
+ /**
219
+ * High memory instances (12TB) based on Intel Xeon Platinum 8176M (Skylake) processors, 1st generation
220
+ */
221
+ InstanceClass["HIGH_MEMORY_12TB_1"] = "high-memory-12tb-1";
222
+ /**
223
+ * High memory instances (12TB) based on Intel Xeon Platinum 8176M (Skylake) processors, 1st generation
224
+ */
225
+ InstanceClass["U_12TB1"] = "u-12tb1";
226
+ /**
227
+ * High memory instances (18TB) based on Intel Xeon Scalable (Cascade Lake) processors, 1st generation
228
+ */
229
+ InstanceClass["HIGH_MEMORY_18TB_1"] = "high-memory-18tb-1";
230
+ /**
231
+ * High memory instances (18TB) based on Intel Xeon Scalable (Cascade Lake) processors, 1st generation
232
+ */
233
+ InstanceClass["U_18TB1"] = "u-18tb1";
234
+ /**
235
+ * High memory instances (24TB) based on Intel Xeon Scalable (Cascade Lake) processors, 1st generation
236
+ */
237
+ InstanceClass["HIGH_MEMORY_24TB_1"] = "high-memory-24tb-1";
238
+ /**
239
+ * High memory instances (24TB) based on Intel Xeon Scalable (Cascade Lake) processors, 1st generation
240
+ */
241
+ InstanceClass["U_24TB1"] = "u-24tb1";
242
+ /**
243
+ * High memory instances (6TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
244
+ */
245
+ InstanceClass["HIGH_MEMORY_6TB_7"] = "high-memory-6tb-7";
246
+ /**
247
+ * High memory instances (6TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
248
+ */
249
+ InstanceClass["U7I_6TB"] = "u7i-6tb";
250
+ /**
251
+ * High memory instances (8TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
252
+ */
253
+ InstanceClass["HIGH_MEMORY_8TB_7"] = "high-memory-8tb-7";
254
+ /**
255
+ * High memory instances (8TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
256
+ */
257
+ InstanceClass["U7I_8TB"] = "u7i-8tb";
258
+ /**
259
+ * High memory instances (12TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
260
+ */
261
+ InstanceClass["HIGH_MEMORY_12TB_7"] = "high-memory-12tb-7";
262
+ /**
263
+ * High memory instances (12TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
264
+ */
265
+ InstanceClass["U7I_12TB"] = "u7i-12tb";
266
+ /**
267
+ * High memory, network-intensive instances (16TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
268
+ */
269
+ InstanceClass["HIGH_MEMORY_HIGH_NETWORK_16TB_7"] = "high-memory-high-network-16tb-7";
270
+ /**
271
+ * High memory, network-intensive instances (16TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
272
+ */
273
+ InstanceClass["U7IN_16TB"] = "u7in-16tb";
274
+ /**
275
+ * High memory, network-intensive instances (24TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
276
+ */
277
+ InstanceClass["HIGH_MEMORY_HIGH_NETWORK_24TB_7"] = "high-memory-high-network-24tb-7";
278
+ /**
279
+ * High memory, network-intensive instances (24TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
280
+ */
281
+ InstanceClass["U7IN_24TB"] = "u7in-24tb";
282
+ /**
283
+ * High memory, network-intensive instances (32TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
284
+ */
285
+ InstanceClass["HIGH_MEMORY_HIGH_NETWORK_32TB_7"] = "high-memory-high-network-32tb-7";
286
+ /**
287
+ * High memory, network-intensive instances (32TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
288
+ */
289
+ InstanceClass["U7IN_32TB"] = "u7in-32tb";
290
+ /**
291
+ * High memory, network-intensive instances (32TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
292
+ * U7inh instances use Hewlett Packard Enterprise (HPE) Compute Scale Up Server 3200.
293
+ */
294
+ InstanceClass["HIGH_MEMORY_HIGH_NETWORK_HPE_32TB_7"] = "high-memory-high-network-hpe-32tb-7";
295
+ /**
296
+ * High memory, network-intensive instances (32TB) based on 4th Generation Intel Xeon Scalable processors (Sapphire Rapids), 7th generation
297
+ * U7inh instances use Hewlett Packard Enterprise (HPE) Compute Scale Up Server 3200.
298
+ */
299
+ InstanceClass["U7INH_32TB"] = "u7inh-32tb";
300
+ /**
301
+ * Memory optimized instances that are also EBS-optimized, 5th generation
302
+ */
303
+ InstanceClass["MEMORY5_EBS_OPTIMIZED"] = "memory5-ebs-optimized";
304
+ /**
305
+ * Memory optimized instances that are also EBS-optimized, 5th generation
306
+ */
307
+ InstanceClass["R5B"] = "r5b";
308
+ /**
309
+ * Memory optimized instances, 6th generation with Graviton2 processors
310
+ */
311
+ InstanceClass["MEMORY6_GRAVITON"] = "memory6-graviton";
312
+ /**
313
+ * Memory optimized instances, 6th generation with Graviton2 processors
314
+ */
315
+ InstanceClass["R6G"] = "r6g";
316
+ /**
317
+ * Memory optimized instances, 6th generation with Graviton2 processors and local NVME drive
318
+ */
319
+ InstanceClass["MEMORY6_GRAVITON2_NVME_DRIVE"] = "memory6-graviton2-nvme-drive";
320
+ /**
321
+ * Memory optimized instances, 6th generation with Graviton2 processors and local NVME drive
322
+ */
323
+ InstanceClass["R6GD"] = "r6gd";
324
+ /**
325
+ * Memory optimized instances, 7th generation with Graviton3 processors
326
+ *
327
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
328
+ */
329
+ InstanceClass["MEMORY7_GRAVITON"] = "memory7-graviton";
330
+ /**
331
+ * Memory optimized instances, 7th generation with Graviton3 processors
332
+ *
333
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
334
+ */
335
+ InstanceClass["R7G"] = "r7g";
336
+ /**
337
+ * Memory optimized instances, 7th generation with Graviton3 processors and local NVME drive
338
+ *
339
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
340
+ */
341
+ InstanceClass["MEMORY7_GRAVITON3_NVME_DRIVE"] = "memory7-graviton3-nvme-drive";
342
+ /**
343
+ * Memory optimized instances, 7th generation with Graviton3 processors and local NVME drive
344
+ *
345
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
346
+ */
347
+ InstanceClass["R7GD"] = "r7gd";
348
+ /**
349
+ * Memory optimized instances based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation w/ 3.2GHz turbo frequency
350
+ */
351
+ InstanceClass["MEMORY7_INTEL_BASE"] = "memory7-intel-base";
352
+ /**
353
+ * Memory optimized instances based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation w/ 3.2GHz turbo frequency
354
+ */
355
+ InstanceClass["R7I"] = "r7i";
356
+ /**
357
+ * Memory optimized instances based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation, with sustained 3.9GHz turbo frequency
358
+ */
359
+ InstanceClass["MEMORY7_INTEL"] = "memory7-intel";
360
+ /**
361
+ * Memory optimized instances based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation, with sustained 3.9GHz turbo frequency
362
+ */
363
+ InstanceClass["R7IZ"] = "r7iz";
364
+ /**
365
+ * Memory optimized instances based on 4th generation AMD EPYC (codename Genoa), 7th generation
366
+ */
367
+ InstanceClass["MEMORY7_AMD"] = "memory7-amd";
368
+ /**
369
+ * Memory optimized instances based on 4th generation AMD EPYC (codename Genoa), 7th generation
370
+ */
371
+ InstanceClass["R7A"] = "r7a";
372
+ /**
373
+ * Memory optimized instances with Graviton4 processors
374
+ */
375
+ InstanceClass["MEMORY8_GRAVITON"] = "memory8-graviton";
376
+ /**
377
+ * Memory optimized instances with Graviton4 processors
378
+ */
379
+ InstanceClass["R8G"] = "r8g";
380
+ /**
381
+ * Compute optimized instances, 3rd generation
382
+ */
383
+ InstanceClass["COMPUTE3"] = "compute3";
384
+ /**
385
+ * Compute optimized instances, 3rd generation
386
+ */
387
+ InstanceClass["C3"] = "c3";
388
+ /**
389
+ * Compute optimized instances, 4th generation
390
+ */
391
+ InstanceClass["COMPUTE4"] = "compute4";
392
+ /**
393
+ * Compute optimized instances, 4th generation
394
+ */
395
+ InstanceClass["C4"] = "c4";
396
+ /**
397
+ * Compute optimized instances, 5th generation
398
+ */
399
+ InstanceClass["COMPUTE5"] = "compute5";
400
+ /**
401
+ * Compute optimized instances, 5th generation
402
+ */
403
+ InstanceClass["C5"] = "c5";
404
+ /**
405
+ * Compute optimized instances with local NVME drive, 5th generation
406
+ */
407
+ InstanceClass["COMPUTE5_NVME_DRIVE"] = "compute5-nvme-drive";
408
+ /**
409
+ * Compute optimized instances with local NVME drive, 5th generation
410
+ */
411
+ InstanceClass["C5D"] = "c5d";
412
+ /**
413
+ * Compute optimized instances based on AMD EPYC, 5th generation
414
+ */
415
+ InstanceClass["COMPUTE5_AMD"] = "compute5-amd";
416
+ /**
417
+ * Compute optimized instances based on AMD EPYC, 5th generation
418
+ */
419
+ InstanceClass["C5A"] = "c5a";
420
+ /**
421
+ * Compute optimized instances with local NVME drive based on AMD EPYC, 5th generation
422
+ */
423
+ InstanceClass["COMPUTE5_AMD_NVME_DRIVE"] = "compute5-amd-nvme-drive";
424
+ /**
425
+ * Compute optimized instances with local NVME drive based on AMD EPYC, 5th generation
426
+ */
427
+ InstanceClass["C5AD"] = "c5ad";
428
+ /**
429
+ * Compute optimized instances for high performance computing, 5th generation
430
+ */
431
+ InstanceClass["COMPUTE5_HIGH_PERFORMANCE"] = "compute5-high-performance";
432
+ /**
433
+ * Compute optimized instances for high performance computing, 5th generation
434
+ */
435
+ InstanceClass["C5N"] = "c5n";
436
+ /**
437
+ * Compute optimized instances, 6th generation
438
+ */
439
+ InstanceClass["COMPUTE6_INTEL"] = "compute6-intel";
440
+ /**
441
+ * Compute optimized instances, 6th generation
442
+ */
443
+ InstanceClass["C6I"] = "c6i";
444
+ /**
445
+ * Compute optimized instances with local NVME drive, 6th generation
446
+ */
447
+ InstanceClass["COMPUTE6_INTEL_NVME_DRIVE"] = "compute6-intel-nvme-drive";
448
+ /**
449
+ * Compute optimized instances with local NVME drive, 6th generation
450
+ */
451
+ InstanceClass["C6ID"] = "c6id";
452
+ /**
453
+ * Compute optimized instances for high performance computing, 6th generation
454
+ */
455
+ InstanceClass["COMPUTE6_INTEL_HIGH_PERFORMANCE"] = "compute6-intel-high-performance";
456
+ /**
457
+ * Compute optimized instances for high performance computing, 6th generation
458
+ */
459
+ InstanceClass["C6IN"] = "c6in";
460
+ /**
461
+ * Compute optimized instances based on AMD EPYC (codename Milan), 6th generation
462
+ */
463
+ InstanceClass["COMPUTE6_AMD"] = "compute6-amd";
464
+ /**
465
+ * Compute optimized instances based on AMD EPYC (codename Milan), 6th generation
466
+ */
467
+ InstanceClass["C6A"] = "c6a";
468
+ /**
469
+ * Compute optimized instances for high performance computing, 6th generation with Graviton2 processors
470
+ */
471
+ InstanceClass["COMPUTE6_GRAVITON2"] = "compute6-graviton2";
472
+ /**
473
+ * Compute optimized instances for high performance computing, 6th generation with Graviton2 processors
474
+ */
475
+ InstanceClass["C6G"] = "c6g";
476
+ /**
477
+ * Compute optimized instances for high performance computing, 7th generation with Graviton3 processors
478
+ */
479
+ InstanceClass["COMPUTE7_GRAVITON3"] = "compute7-graviton3";
480
+ /**
481
+ * Compute optimized instances for high performance computing, 7th generation with Graviton3 processors
482
+ */
483
+ InstanceClass["C7G"] = "c7g";
484
+ /**
485
+ * Compute optimized instances for high performance computing, 8th generation with Graviton4 processors
486
+ *
487
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Frankfurt).
488
+ */
489
+ InstanceClass["COMPUTE8_GRAVITON4"] = "compute8-graviton4";
490
+ /**
491
+ * Compute optimized instances for high performance computing, 8th generation with Graviton4 processors
492
+ *
493
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Frankfurt).
494
+ */
495
+ InstanceClass["C8G"] = "c8g";
496
+ /**
497
+ * Compute optimized instances for high performance computing, 6th generation with Graviton2 processors
498
+ * and local NVME drive
499
+ */
500
+ InstanceClass["COMPUTE6_GRAVITON2_NVME_DRIVE"] = "compute6-graviton2-nvme-drive";
501
+ /**
502
+ * Compute optimized instances for high performance computing, 6th generation with Graviton2 processors
503
+ * and local NVME drive
504
+ */
505
+ InstanceClass["C6GD"] = "c6gd";
506
+ /**
507
+ * Compute optimized instances for high performance computing, 7th generation with Graviton3 processors and local NVME drive
508
+ *
509
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
510
+ */
511
+ InstanceClass["COMPUTE7_GRAVITON3_NVME_DRIVE"] = "compute7-graviton3-nvme-drive";
512
+ /**
513
+ * Compute optimized instances for high performance computing, 7th generation with Graviton3 processors and local NVME drive
514
+ *
515
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
516
+ */
517
+ InstanceClass["C7GD"] = "c7gd";
518
+ /**
519
+ * Compute optimized instances for high performance computing, 6th generation with Graviton2 processors
520
+ * and high network bandwidth capabilities
521
+ */
522
+ InstanceClass["COMPUTE6_GRAVITON2_HIGH_NETWORK_BANDWIDTH"] = "compute6-graviton2-high-network-bandwidth";
523
+ /**
524
+ * Compute optimized instances for high performance computing, 6th generation with Graviton2 processors
525
+ * and high network bandwidth capabilities
526
+ */
527
+ InstanceClass["C6GN"] = "c6gn";
528
+ /**
529
+ * Compute optimized instances for high performance computing, 7th generation with Graviton3 processors
530
+ * and high network bandwidth capabilities
531
+ */
532
+ InstanceClass["COMPUTE7_GRAVITON3_HIGH_NETWORK_BANDWIDTH"] = "compute7-graviton3-high-network-bandwidth";
533
+ /**
534
+ * Compute optimized instances for high performance computing, 7th generation with Graviton3 processors
535
+ * and high network bandwidth capabilities
536
+ */
537
+ InstanceClass["C7GN"] = "c7gn";
538
+ /**
539
+ * Compute optimized instances based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation
540
+ */
541
+ InstanceClass["COMPUTE7_INTEL"] = "compute7-intel";
542
+ /**
543
+ * Compute optimized instances based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation
544
+ */
545
+ InstanceClass["C7I"] = "c7i";
546
+ /**
547
+ * Compute optimized instances based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation
548
+ * C7i-flex instances efficiently use compute resources to deliver a baseline level of performance with the ability to scale up to the full compute performance a majority of the time.
549
+ */
550
+ InstanceClass["COMPUTE7_INTEL_FLEX"] = "compute7-intel-flex";
551
+ /**
552
+ * Compute optimized instances based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation
553
+ * C7i-flex instances efficiently use compute resources to deliver a baseline level of performance with the ability to scale up to the full compute performance a majority of the time.
554
+ */
555
+ InstanceClass["C7I_FLEX"] = "c7i-flex";
556
+ /**
557
+ * Compute optimized instances based on 4th generation AMD EPYC (codename Genoa), 7th generation
558
+ */
559
+ InstanceClass["COMPUTE7_AMD"] = "compute7-amd";
560
+ /**
561
+ * Compute optimized instances based on 4th generation AMD EPYC (codename Genoa), 7th generation
562
+ */
563
+ InstanceClass["C7A"] = "c7a";
564
+ /**
565
+ * Storage-optimized instances, 2nd generation
566
+ */
567
+ InstanceClass["STORAGE2"] = "storage2";
568
+ /**
569
+ * Storage-optimized instances, 2nd generation
570
+ */
571
+ InstanceClass["D2"] = "d2";
572
+ /**
573
+ * Storage-optimized instances, 3rd generation
574
+ */
575
+ InstanceClass["STORAGE3"] = "storage3";
576
+ /**
577
+ * Storage-optimized instances, 3rd generation
578
+ */
579
+ InstanceClass["D3"] = "d3";
580
+ /**
581
+ * Storage-optimized instances, 3rd generation
582
+ */
583
+ InstanceClass["STORAGE3_ENHANCED_NETWORK"] = "storage3-enhanced-network";
584
+ /**
585
+ * Storage-optimized instances, 3rd generation
586
+ */
587
+ InstanceClass["D3EN"] = "d3en";
588
+ /**
589
+ * Storage/compute balanced instances, 1st generation
590
+ */
591
+ InstanceClass["STORAGE_COMPUTE_1"] = "storage-compute-1";
592
+ /**
593
+ * Storage/compute balanced instances, 1st generation
594
+ */
595
+ InstanceClass["H1"] = "h1";
596
+ /**
597
+ * High performance computing powered by AWS Trainium
598
+ */
599
+ InstanceClass["TRAINING_ACCELERATOR1"] = "training-accelerator1";
600
+ /**
601
+ * High performance computing powered by AWS Trainium
602
+ */
603
+ InstanceClass["TRN1"] = "trn1";
604
+ /**
605
+ * Network-optimized high performance computing powered by AWS Trainium
606
+ */
607
+ InstanceClass["TRAINING_ACCELERATOR1_ENHANCED_NETWORK"] = "training-accelerator1-enhanced-network";
608
+ /**
609
+ * Network-optimized high performance computing powered by AWS Trainium
610
+ */
611
+ InstanceClass["TRN1N"] = "trn1n";
612
+ /**
613
+ * High performance computing powered by AWS Trainium2, 2nd generation
614
+ */
615
+ InstanceClass["TRAINING_ACCELERATOR2"] = "training-accelerator2";
616
+ /**
617
+ * High performance computing powered by AWS Trainium2, 2nd generation
618
+ */
619
+ InstanceClass["TRN2"] = "trn2";
620
+ /**
621
+ * High performance computing powered by AWS Trainium2 and EC2 Ultra Servers, 2nd generation
622
+ * UltraServers connect multiple EC2 instances using a dedicated, high-bandwidth, low-latency accelerator interconnect
623
+ */
624
+ InstanceClass["TRAINING_ACCELERATOR2_ULTRASERVER"] = "training-accelerator2-ultraserver";
625
+ /**
626
+ * High performance computing powered by AWS Trainium2 and EC2 Ultra Servers, 2nd generation
627
+ * UltraServers connect multiple EC2 instances using a dedicated, high-bandwidth, low-latency accelerator interconnect
628
+ */
629
+ InstanceClass["TRN2U"] = "trn2u";
630
+ /**
631
+ * I/O-optimized instances, 3rd generation
632
+ */
633
+ InstanceClass["IO3"] = "io3";
634
+ /**
635
+ * I/O-optimized instances, 3rd generation
636
+ */
637
+ InstanceClass["I3"] = "i3";
638
+ /**
639
+ * I/O-optimized instances with local NVME drive, 3rd generation
640
+ */
641
+ InstanceClass["IO3_DENSE_NVME_DRIVE"] = "io3-dense-nvme-drive";
642
+ /**
643
+ * I/O-optimized instances with local NVME drive, 3rd generation
644
+ */
645
+ InstanceClass["I3EN"] = "i3en";
646
+ /**
647
+ * I/O-optimized instances with local NVME drive powered by Intel Xeon Scalable processors (code named Ice Lake), 4th generation
648
+ */
649
+ InstanceClass["IO4_INTEL"] = "io4_intel";
650
+ /**
651
+ * I/O-optimized instances with local NVME drive powered by Intel Xeon Scalable processors (code named Ice Lake), 4th generation
652
+ */
653
+ InstanceClass["I4I"] = "i4i";
654
+ /**
655
+ * Storage optimized instances powered by Graviton2 processor, 4th generation
656
+ */
657
+ InstanceClass["STORAGE4_GRAVITON"] = "storage4_graviton";
658
+ /**
659
+ * Storage optimized instances powered by Graviton2 processor, 4th generation
660
+ */
661
+ InstanceClass["I4G"] = "i4g";
662
+ /**
663
+ * Storage optimized instances powered by Graviton2 processor, 4th generation
664
+ */
665
+ InstanceClass["STORAGE4_GRAVITON_NETWORK_OPTIMIZED"] = "storage4-graviton-network-optimized";
666
+ /**
667
+ * Storage optimized instances powered by Graviton2 processor, 4th generation
668
+ */
669
+ InstanceClass["IM4GN"] = "im4gn";
670
+ /**
671
+ * Storage optimized instances powered by Graviton2 processor, 4th generation
672
+ */
673
+ InstanceClass["STORAGE4_GRAVITON_NETWORK_STORAGE_OPTIMIZED"] = "storage4-graviton-network-storage-optimized";
674
+ /**
675
+ * Storage optimized instances powered by Graviton2 processor, 4th generation
676
+ */
677
+ InstanceClass["IS4GEN"] = "is4gen";
678
+ /**
679
+ * Storage optimized instances powered by 5th generation Intel Xeon Scalable processors, 7th generation
680
+ */
681
+ InstanceClass["STORAGE7_INTEL_STORAGE_OPTIMIZED"] = "storage7-intel-storage-optimized";
682
+ /**
683
+ * Storage optimized instances powered by 5th generation Intel Xeon Scalable processors, 7th generation
684
+ */
685
+ InstanceClass["I7IE"] = "i7ie";
686
+ /**
687
+ * Storage optimized instances powered by Graviton4 processor, 8th generation
688
+ */
689
+ InstanceClass["STORAGE8_GRAVITON"] = "storage8-graviton";
690
+ /**
691
+ * Storage optimized instances powered by Graviton4 processor, 8th generation
692
+ */
693
+ InstanceClass["I8G"] = "i8g";
694
+ /**
695
+ * Burstable instances, 2nd generation
696
+ */
697
+ InstanceClass["BURSTABLE2"] = "burstable2";
698
+ /**
699
+ * Burstable instances, 2nd generation
700
+ */
701
+ InstanceClass["T2"] = "t2";
702
+ /**
703
+ * Burstable instances, 3rd generation
704
+ */
705
+ InstanceClass["BURSTABLE3"] = "burstable3";
706
+ /**
707
+ * Burstable instances, 3rd generation
708
+ */
709
+ InstanceClass["T3"] = "t3";
710
+ /**
711
+ * Burstable instances based on AMD EPYC, 3rd generation
712
+ */
713
+ InstanceClass["BURSTABLE3_AMD"] = "burstable3-amd";
714
+ /**
715
+ * Burstable instances based on AMD EPYC, 3rd generation
716
+ */
717
+ InstanceClass["T3A"] = "t3a";
718
+ /**
719
+ * Burstable instances, 4th generation with Graviton2 processors
720
+ */
721
+ InstanceClass["BURSTABLE4_GRAVITON"] = "burstable4-graviton";
722
+ /**
723
+ * Burstable instances, 4th generation with Graviton2 processors
724
+ */
725
+ InstanceClass["T4G"] = "t4g";
726
+ /**
727
+ * Memory-intensive instances, 1st generation
728
+ */
729
+ InstanceClass["MEMORY_INTENSIVE_1"] = "memory-intensive-1";
730
+ /**
731
+ * Memory-intensive instances, 1st generation
732
+ */
733
+ InstanceClass["X1"] = "x1";
734
+ /**
735
+ * Memory-intensive instances, extended, 1st generation
736
+ */
737
+ InstanceClass["MEMORY_INTENSIVE_1_EXTENDED"] = "memory-intensive-1-extended";
738
+ /**
739
+ * Memory-intensive instances, extended, 1st generation
740
+ */
741
+ InstanceClass["X1E"] = "x1e";
742
+ /**
743
+ * Memory-intensive instances, 2nd generation with Graviton2 processors
744
+ *
745
+ * This instance type can be used only in RDS. It is not supported in EC2.
746
+ */
747
+ InstanceClass["MEMORY_INTENSIVE_2_GRAVITON2"] = "memory-intensive-2-graviton2";
748
+ /**
749
+ * Memory-intensive instances, 2nd generation with Graviton2 processors
750
+ *
751
+ * This instance type can be used only in RDS. It is not supported in EC2.
752
+ */
753
+ InstanceClass["X2G"] = "x2g";
754
+ /**
755
+ * Memory-intensive instances, 2nd generation with Graviton2 processors and local NVME drive
756
+ */
757
+ InstanceClass["MEMORY_INTENSIVE_2_GRAVITON2_NVME_DRIVE"] = "memory-intensive-2-graviton2-nvme-drive";
758
+ /**
759
+ * Memory-intensive instances, 2nd generation with Graviton2 processors and local NVME drive
760
+ */
761
+ InstanceClass["X2GD"] = "x2gd";
762
+ /**
763
+ * Memory-intensive instances with higher network bandwith, local NVME drive, and extended memory. Intel Xeon Scalable (Ice Lake) processors
764
+ */
765
+ InstanceClass["MEMORY_INTENSIVE_2_XT_INTEL"] = "memory_intensive_2_xt_intel";
766
+ /**
767
+ * Memory-intensive instances with higher network bandwith, local NVME drive, and extended memory. Intel Xeon Scalable (Ice Lake) processors
768
+ */
769
+ InstanceClass["X2IEDN"] = "x2iedn";
770
+ /**
771
+ * Memory-intensive instances with higher network bandwith and local NVME drive, Intel Xeon Scalable (Ice Lake) processors
772
+ */
773
+ InstanceClass["MEMORY_INTENSIVE_2_INTEL"] = "memory_intensive_2_intel";
774
+ /**
775
+ * Memory-intensive instances with higher network bandwith and local NVME drive, Intel Xeon Scalable (Ice Lake) processors
776
+ */
777
+ InstanceClass["X2IDN"] = "x2idn";
778
+ /**
779
+ * Memory-intensive instances with higher network bandwith and single-threaded performance, Intel Xeon Scalable (Cascade Lake) processors
780
+ */
781
+ InstanceClass["MEMORY_INTENSIVE_2_XTZ_INTEL"] = "memory_intensive_2_xtz_intel";
782
+ /**
783
+ * Memory-intensive instances with higher network bandwith and single-threaded performance, Intel Xeon Scalable (Cascade Lake) processors
784
+ */
785
+ InstanceClass["X2IEZN"] = "x2iezn";
786
+ /**
787
+ * Memory-intensive instances powered by Graviton4 processors, 8th generation
788
+ */
789
+ InstanceClass["MEMORY_INTENSIVE_8_GRAVITON"] = "memory-intensive-8-graviton";
790
+ /**
791
+ * Memory-intensive instances powered by Graviton4 processors, 8th generation
792
+ */
793
+ InstanceClass["X8G"] = "x8g";
794
+ /**
795
+ * Instances with customizable hardware acceleration, 1st generation
796
+ */
797
+ InstanceClass["FPGA1"] = "fpga1";
798
+ /**
799
+ * Instances with customizable hardware acceleration, 1st generation
800
+ */
801
+ InstanceClass["F1"] = "f1";
802
+ /**
803
+ * Instances with customizable hardware acceleration, 2nd generation
804
+ */
805
+ InstanceClass["FPGA2"] = "fpga2";
806
+ /**
807
+ * Instances with customizable hardware acceleration, 2nd generation
808
+ */
809
+ InstanceClass["F2"] = "f2";
810
+ /**
811
+ * Graphics-optimized instances, 3rd generation
812
+ */
813
+ InstanceClass["GRAPHICS3_SMALL"] = "graphics3-small";
814
+ /**
815
+ * Graphics-optimized instances, 3rd generation
816
+ */
817
+ InstanceClass["G3S"] = "g3s";
818
+ /**
819
+ * Graphics-optimized instances, 3rd generation
820
+ */
821
+ InstanceClass["GRAPHICS3"] = "graphics3";
822
+ /**
823
+ * Graphics-optimized instances, 3rd generation
824
+ */
825
+ InstanceClass["G3"] = "g3";
826
+ /**
827
+ * Graphics-optimized instances with NVME drive for high performance computing, 4th generation
828
+ */
829
+ InstanceClass["GRAPHICS4_NVME_DRIVE_HIGH_PERFORMANCE"] = "graphics4-nvme-drive-high-performance";
830
+ /**
831
+ * Graphics-optimized instances with NVME drive for high performance computing, 4th generation
832
+ */
833
+ InstanceClass["G4DN"] = "g4dn";
834
+ /**
835
+ * Graphics-optimized instances based on AMD EPYC And Radeon Pro GPU (NAVI) with local NVME drive, 4th generation
836
+ */
837
+ InstanceClass["GRAPHICS4_AMD_NVME_DRIVE"] = "graphics4-amd-nvme-drive";
838
+ /**
839
+ * Graphics-optimized instances based on AMD EPYC And Radeon Pro GPU (NAVI) with local NVME drive, 4th generation
840
+ */
841
+ InstanceClass["G4AD"] = "g4ad";
842
+ /**
843
+ * Graphics-optimized instances, 5th generation
844
+ */
845
+ InstanceClass["GRAPHICS5"] = "graphics5";
846
+ /**
847
+ * Graphics-optimized instances, 5th generation
848
+ */
849
+ InstanceClass["G5"] = "g5";
850
+ /**
851
+ * Graphics-optimized instances powered by AWS Graviton2 Processors and NVIDIA T4G Tensor Core GPUs, 5th generation
852
+ */
853
+ InstanceClass["GRAPHICS5_GRAVITON2"] = "graphics5-graviton2";
854
+ /**
855
+ * Graphics-optimized instances powered by AWS Graviton2 Processors and NVIDIA T4G Tensor Core GPUs, 5th generation
856
+ */
857
+ InstanceClass["G5G"] = "g5g";
858
+ /**
859
+ * Graphics-optimized instances, 6th generation
860
+ */
861
+ InstanceClass["GRAPHICS6"] = "graphics6";
862
+ /**
863
+ * Graphics-optimized instances, 6th generation
864
+ */
865
+ InstanceClass["G6"] = "g6";
866
+ /**
867
+ * Cost-efficient GPU-based instances for AI inference and spatial computing workloads, 6th generation
868
+ */
869
+ InstanceClass["GRAPHICS6_EFFICIENT"] = "graphics6-efficient";
870
+ /**
871
+ * Cost-efficient GPU-based instances for AI inference and spatial computing workloads, 6th generation
872
+ */
873
+ InstanceClass["G6E"] = "g6e";
874
+ /**
875
+ * Graphics-optimized instances, 6th generation
876
+ * Gr6 instances offer a 1:8 vCPU to RAM ratio, making them better suited for graphics workloads with higher memory requirements.
877
+ */
878
+ InstanceClass["GRAPHICS_RAM_6"] = "graphics-ram-6";
879
+ /**
880
+ * Graphics-optimized instances, 6th generation
881
+ * Gr6 instances offer a 1:8 vCPU to RAM ratio, making them better suited for graphics workloads with higher memory requirements.
882
+ */
883
+ InstanceClass["GR6"] = "gr6";
884
+ /**
885
+ * Parallel-processing optimized instances, 2nd generation
886
+ */
887
+ InstanceClass["PARALLEL2"] = "parallel2";
888
+ /**
889
+ * Parallel-processing optimized instances, 2nd generation
890
+ */
891
+ InstanceClass["P2"] = "p2";
892
+ /**
893
+ * Parallel-processing optimized instances, 3rd generation
894
+ */
895
+ InstanceClass["PARALLEL3"] = "parallel3";
896
+ /**
897
+ * Parallel-processing optimized instances, 3rd generation
898
+ */
899
+ InstanceClass["P3"] = "p3";
900
+ /**
901
+ * Parallel-processing optimized instances with local NVME drive for high performance computing, 3rd generation
902
+ */
903
+ InstanceClass["PARALLEL3_NVME_DRIVE_HIGH_PERFORMANCE"] = "parallel3-nvme-drive-high-performance";
904
+ /**
905
+ * Parallel-processing optimized instances with local NVME drive for high performance computing, 3rd generation
906
+ */
907
+ InstanceClass["P3DN"] = "p3dn";
908
+ /**
909
+ * Parallel-processing optimized instances with local NVME drive, extended, 4th generation (in developer preview)
910
+ */
911
+ InstanceClass["PARALLEL4_NVME_DRIVE_EXTENDED"] = "parallel4-nvme-drive-extended";
912
+ /**
913
+ * Parallel-processing optimized instances with local NVME drive, extended, 4th generation (in developer preview)
914
+ */
915
+ InstanceClass["P4DE"] = "p4de";
916
+ /**
917
+ * Parallel-processing optimized instances, 4th generation
918
+ */
919
+ InstanceClass["PARALLEL4"] = "parallel4";
920
+ /**
921
+ * Parallel-processing optimized instances, 4th generation
922
+ */
923
+ InstanceClass["P4D"] = "p4d";
924
+ /**
925
+ * Parallel-processing optimized instances powered by NVIDIA H100 Tensor Core GPUs, 5th generation
926
+ */
927
+ InstanceClass["PARALLEL5"] = "parallel5";
928
+ /**
929
+ * Parallel-processing optimized instances powered by NVIDIA H100 Tensor Core GPUs, 5th generation
930
+ */
931
+ InstanceClass["P5"] = "p5";
932
+ /**
933
+ * Parallel-processing optimized instances powered by NVIDIA H200 Tensor Core GPUs, 5th generation
934
+ */
935
+ InstanceClass["PARALLEL5_EXTENDED"] = "parallel5-extended";
936
+ /**
937
+ * Parallel-processing optimized instances, 5th generation
938
+ */
939
+ InstanceClass["P5E"] = "p5e";
940
+ /**
941
+ * Parallel-processing, network-optimized instances powered by NVIDIA H200 Tensor Core GPUs, 5th generation
942
+ * P5en instances pair NVIDIA H200 Tensor Core GPUs with Intel Sapphire Rapids CPU, enabling Gen5 PCIe between CPU and GPU
943
+ */
944
+ InstanceClass["PARALLEL5_EXTENDED_NETWORK"] = "parallel5-extended-network";
945
+ /**
946
+ * Parallel-processing optimized instances, 5th generation
947
+ */
948
+ InstanceClass["P5EN"] = "p5en";
949
+ /**
950
+ * Arm processor based instances, 1st generation
951
+ */
952
+ InstanceClass["ARM1"] = "arm1";
953
+ /**
954
+ * Arm processor based instances, 1st generation
955
+ */
956
+ InstanceClass["A1"] = "a1";
957
+ /**
958
+ * Arm processor based instances, 2nd generation
959
+ */
960
+ InstanceClass["STANDARD6_GRAVITON"] = "standard6-graviton";
961
+ /**
962
+ * Arm processor based instances, 2nd generation
963
+ */
964
+ InstanceClass["M6G"] = "m6g";
965
+ /**
966
+ * Standard instances based on Intel (Ice Lake), 6th generation.
967
+ */
968
+ InstanceClass["STANDARD6_INTEL"] = "standard6-intel";
969
+ /**
970
+ * Standard instances based on Intel (Ice Lake), 6th generation.
971
+ */
972
+ InstanceClass["M6I"] = "m6i";
973
+ /**
974
+ * Standard instances based on Intel (Ice Lake) with local NVME drive, 6th generation.
975
+ */
976
+ InstanceClass["STANDARD6_INTEL_NVME_DRIVE"] = "standard6-intel-nvme-drive";
977
+ /**
978
+ * Standard instances based on Intel (Ice Lake) with local NVME drive, 6th generation.
979
+ */
980
+ InstanceClass["M6ID"] = "m6id";
981
+ /**
982
+ * Standard instances for high performance computing powered by Intel Xeon Scalable processors (code named Ice Lake), 6th generation.
983
+ */
984
+ InstanceClass["STANDARD6_INTEL_HIGH_PERFORMANCE"] = "standard6-intel-high-performance";
985
+ /**
986
+ * Standard instances for high performance computing powered by Intel Xeon Scalable processors (code named Ice Lake), 6th generation.
987
+ */
988
+ InstanceClass["M6IN"] = "m6in";
989
+ /**
990
+ * Standard instances with local NVME drive for high performance computing powered by Intel Xeon Scalable processors (code named Ice Lake), 6th generation.
991
+ */
992
+ InstanceClass["STANDARD6_INTEL_NVME_DRIVE_HIGH_PERFORMANCE"] = "standard6-intel-nvme-drive-high-performance";
993
+ /**
994
+ * Standard instances with local NVME drive for high performance computing powered by Intel Xeon Scalable processors (code named Ice Lake), 6th generation.
995
+ */
996
+ InstanceClass["M6IDN"] = "m6idn";
997
+ /**
998
+ * Standard instances based on 3rd Gen AMD EPYC processors, 6th generation.
999
+ */
1000
+ InstanceClass["STANDARD6_AMD"] = "standard6-amd";
1001
+ /**
1002
+ * Standard instances based on 3rd Gen AMD EPYC processors, 6th generation.
1003
+ */
1004
+ InstanceClass["M6A"] = "m6a";
1005
+ /**
1006
+ * Standard instances, 6th generation with Graviton2 processors and local NVME drive
1007
+ */
1008
+ InstanceClass["STANDARD6_GRAVITON2_NVME_DRIVE"] = "standard6-graviton2-nvme-drive";
1009
+ /**
1010
+ * Standard instances, 6th generation with Graviton2 processors and local NVME drive
1011
+ */
1012
+ InstanceClass["M6GD"] = "m6gd";
1013
+ /**
1014
+ * Standard instances, 7th generation with Graviton3 processors
1015
+ *
1016
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
1017
+ */
1018
+ InstanceClass["STANDARD7_GRAVITON"] = "standard7-graviton";
1019
+ /**
1020
+ * Standard instances, 7th generation with Graviton3 processors
1021
+ *
1022
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
1023
+ */
1024
+ InstanceClass["M7G"] = "m7g";
1025
+ /**
1026
+ * Standard instances, 8th generation with Graviton4 processors
1027
+ *
1028
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Frankfurt).
1029
+ */
1030
+ InstanceClass["STANDARD8_GRAVITON"] = "standard8-graviton";
1031
+ /**
1032
+ * Standard instances, 8th generation with Graviton4 processors
1033
+ *
1034
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Frankfurt).
1035
+ */
1036
+ InstanceClass["M8G"] = "m8g";
1037
+ /**
1038
+ * Standard instances, 7th generation with Graviton3 processors and local NVME drive
1039
+ *
1040
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
1041
+ */
1042
+ InstanceClass["STANDARD7_GRAVITON3_NVME_DRIVE"] = "standard7-graviton3-nvme-drive";
1043
+ /**
1044
+ * Standard instances, 7th generation with Graviton3 processors and local NVME drive
1045
+ *
1046
+ * This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
1047
+ */
1048
+ InstanceClass["M7GD"] = "m7gd";
1049
+ /**
1050
+ * Standard instances with high memory and compute capacity based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation
1051
+ */
1052
+ InstanceClass["STANDARD7_INTEL"] = "standard7-intel";
1053
+ /**
1054
+ * Standard instances with high memory and compute capacity based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation
1055
+ */
1056
+ InstanceClass["M7I"] = "m7i";
1057
+ /**
1058
+ * Flexible instances with high memory and compute capacity based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation
1059
+ * The M7i-Flex instances deliver a baseline of 40% CPU performance, and can scale up to full CPU performance 95% of the time
1060
+ */
1061
+ InstanceClass["STANDARD7_INTEL_FLEX"] = "standard7-intel-flex";
1062
+ /**
1063
+ * Flexible instances with high memory and compute capacity based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation
1064
+ * The M7i-Flex instances deliver a baseline of 40% CPU performance, and can scale up to full CPU performance 95% of the time
1065
+ */
1066
+ InstanceClass["M7I_FLEX"] = "m7i-flex";
1067
+ /**
1068
+ * Standard instances based on 4th generation AMD EPYC (codename Genoa), 7th generation
1069
+ */
1070
+ InstanceClass["STANDARD7_AMD"] = "standard7-amd";
1071
+ /**
1072
+ * Standard instances based on 4th generation AMD EPYC (codename Genoa), 7th generation
1073
+ */
1074
+ InstanceClass["M7A"] = "m7a";
1075
+ /**
1076
+ * High memory and compute capacity instances, 1st generation
1077
+ */
1078
+ InstanceClass["HIGH_COMPUTE_MEMORY1"] = "high-compute-memory1";
1079
+ /**
1080
+ * High memory and compute capacity instances, 1st generation
1081
+ */
1082
+ InstanceClass["Z1D"] = "z1d";
1083
+ /**
1084
+ * Inferentia Chips based instances for machine learning inference applications, 1st generation
1085
+ */
1086
+ InstanceClass["INFERENCE1"] = "inference1";
1087
+ /**
1088
+ * Inferentia Chips based instances for machine learning inference applications, 1st generation
1089
+ */
1090
+ InstanceClass["INF1"] = "inf1";
1091
+ /**
1092
+ * Inferentia Chips based instances for machine learning inference applications, 2nd generation
1093
+ */
1094
+ InstanceClass["INFERENCE2"] = "inference2";
1095
+ /**
1096
+ * Inferentia Chips based instances for machine learning inference applications, 2nd generation
1097
+ */
1098
+ InstanceClass["INF2"] = "inf2";
1099
+ /**
1100
+ * Macintosh instances built on Apple Mac mini computers, 1st generation with Intel procesors
1101
+ */
1102
+ InstanceClass["MACINTOSH1_INTEL"] = "macintosh1-intel";
1103
+ /**
1104
+ * Macintosh instances built on Apple Mac mini computers, 1st generation with Intel procesors
1105
+ */
1106
+ InstanceClass["MAC1"] = "mac1";
1107
+ /**
1108
+ * Macintosh instances built on Apple Mac mini 2020 computers, 2nd generation with Apple silicon M1 processors
1109
+ */
1110
+ InstanceClass["MACINTOSH2_M1"] = "macintosh2-m1";
1111
+ /**
1112
+ * Macintosh instances built on Apple Mac mini 2020 computers, 2nd generation with Apple silicon M1 processors
1113
+ */
1114
+ InstanceClass["MAC2"] = "mac2";
1115
+ /**
1116
+ * Macintosh instances built on Apple Mac mini 2023 computers, 2nd generation with Apple silicon M2 processors
1117
+ */
1118
+ InstanceClass["MACINTOSH2_M2"] = "macintosh2-m2";
1119
+ /**
1120
+ * Macintosh instances built on Apple Mac mini 2023 computers, 2nd generation with Apple silicon M2 processors
1121
+ */
1122
+ InstanceClass["MAC2_M2"] = "mac2-m2";
1123
+ /**
1124
+ * Macintosh instances built on Apple Mac mini 2023 computers, 2nd generation with Apple silicon M2 Pro processors
1125
+ */
1126
+ InstanceClass["MACINTOSH2_M2_PRO"] = "macintosh2-m2-pro";
1127
+ /**
1128
+ * Macintosh instances built on Apple Mac mini 2023 computers, 2nd generation with Apple silicon M2 Pro processors
1129
+ */
1130
+ InstanceClass["MAC2_M2PRO"] = "mac2-m2pro";
1131
+ /**
1132
+ * Macintosh instances built on 2022 Mac Studio hardware powered by Apple silicon M1 Ultra processors
1133
+ */
1134
+ InstanceClass["MACINTOSH2_M1_ULTRA"] = "macintosh2-m1-ultra";
1135
+ /**
1136
+ * Macintosh instances built on 2022 Mac Studio hardware powered by Apple silicon M1 Ultra processors
1137
+ */
1138
+ InstanceClass["MAC2_M1ULTRA"] = "mac2-m1ultra";
1139
+ /**
1140
+ * Multi-stream video transcoding instances for resolutions up to 4K UHD, 1st generation
1141
+ */
1142
+ InstanceClass["VIDEO_TRANSCODING1"] = "video-transcoding1";
1143
+ /**
1144
+ * Multi-stream video transcoding instances for resolutions up to 4K UHD, 1st generation
1145
+ */
1146
+ InstanceClass["VT1"] = "vt1";
1147
+ /**
1148
+ * High performance computing based on AMD EPYC, 6th generation
1149
+ */
1150
+ InstanceClass["HIGH_PERFORMANCE_COMPUTING6_AMD"] = "high-performance-computing6-amd";
1151
+ /**
1152
+ * High performance computing based on AMD EPYC, 6th generation
1153
+ */
1154
+ InstanceClass["HPC6A"] = "hpc6a";
1155
+ /**
1156
+ * High performance computing with local NVME drive based on 6th generation with Intel Xeon Scalable processors (3rd generation processors code named Ice Lake), 6th generation
1157
+ */
1158
+ InstanceClass["HIGH_PERFORMANCE_COMPUTING6_INTEL_NVME_DRIVE"] = "high-performance-computing6-intel-nvme-drive";
1159
+ /**
1160
+ * High performance computing with local NVME drive based on 6th generation with Intel Xeon Scalable processors (3rd generation processors code named Ice Lake), 6th generation
1161
+ */
1162
+ InstanceClass["HPC6ID"] = "hpc6id";
1163
+ /**
1164
+ * High performance computing based on AMD EPYC, 7th generation
1165
+ */
1166
+ InstanceClass["HIGH_PERFORMANCE_COMPUTING7_AMD"] = "high-performance-computing7-amd";
1167
+ /**
1168
+ * High performance computing based on AMD EPYC, 7th generation
1169
+ */
1170
+ InstanceClass["HPC7A"] = "hpc7a";
1171
+ /**
1172
+ * High performance computing based on Graviton, 7th generation
1173
+ */
1174
+ InstanceClass["HIGH_PERFORMANCE_COMPUTING7_GRAVITON"] = "high-performance-computing7-graviton";
1175
+ /**
1176
+ * High performance computing based on Graviton, 7th generation
1177
+ */
1178
+ InstanceClass["HPC7G"] = "hpc7g";
1179
+ /**
1180
+ * Deep learning instances powered by Gaudi accelerators from Habana Labs (an Intel company), 1st generation
1181
+ */
1182
+ InstanceClass["DEEP_LEARNING1"] = "deep-learning1";
1183
+ /**
1184
+ * Deep learning instances powered by Gaudi accelerators from Habana Labs (an Intel company), 1st generation
1185
+ */
1186
+ InstanceClass["DL1"] = "dl1";
1187
+ /**
1188
+ * Deep learning instances powered by Qualcomm AI 100 Standard accelerators, 2nd generation
1189
+ */
1190
+ InstanceClass["DEEP_LEARNING2_QUALCOMM"] = "deep-learning2-qualcomm";
1191
+ /**
1192
+ * Deep learning instances powered by Qualcomm AI 100 Standard accelerators, 2nd generation
1193
+ */
1194
+ InstanceClass["DL2Q"] = "dl2q";
1195
+ })(InstanceClass || (exports.InstanceClass = InstanceClass = {}));
1196
+ /**
1197
+ * Identifies an instance's CPU architecture
1198
+ */
1199
+ var InstanceArchitecture;
1200
+ (function (InstanceArchitecture) {
1201
+ /**
1202
+ * ARM64 architecture
1203
+ */
1204
+ InstanceArchitecture["ARM_64"] = "arm64";
1205
+ /**
1206
+ * x86-64 architecture
1207
+ */
1208
+ InstanceArchitecture["X86_64"] = "x86_64";
1209
+ })(InstanceArchitecture || (exports.InstanceArchitecture = InstanceArchitecture = {}));
1210
+ /**
1211
+ * What size of instance to use
1212
+ */
1213
+ var InstanceSize;
1214
+ (function (InstanceSize) {
1215
+ /**
1216
+ * Instance size NANO (nano)
1217
+ */
1218
+ InstanceSize["NANO"] = "nano";
1219
+ /**
1220
+ * Instance size MICRO (micro)
1221
+ */
1222
+ InstanceSize["MICRO"] = "micro";
1223
+ /**
1224
+ * Instance size SMALL (small)
1225
+ */
1226
+ InstanceSize["SMALL"] = "small";
1227
+ /**
1228
+ * Instance size MEDIUM (medium)
1229
+ */
1230
+ InstanceSize["MEDIUM"] = "medium";
1231
+ /**
1232
+ * Instance size LARGE (large)
1233
+ */
1234
+ InstanceSize["LARGE"] = "large";
1235
+ /**
1236
+ * Instance size XLARGE (xlarge)
1237
+ */
1238
+ InstanceSize["XLARGE"] = "xlarge";
1239
+ /**
1240
+ * Instance size XLARGE2 (2xlarge)
1241
+ */
1242
+ InstanceSize["XLARGE2"] = "2xlarge";
1243
+ /**
1244
+ * Instance size XLARGE3 (3xlarge)
1245
+ */
1246
+ InstanceSize["XLARGE3"] = "3xlarge";
1247
+ /**
1248
+ * Instance size XLARGE4 (4xlarge)
1249
+ */
1250
+ InstanceSize["XLARGE4"] = "4xlarge";
1251
+ /**
1252
+ * Instance size XLARGE6 (6xlarge)
1253
+ */
1254
+ InstanceSize["XLARGE6"] = "6xlarge";
1255
+ /**
1256
+ * Instance size XLARGE8 (8xlarge)
1257
+ */
1258
+ InstanceSize["XLARGE8"] = "8xlarge";
1259
+ /**
1260
+ * Instance size XLARGE9 (9xlarge)
1261
+ */
1262
+ InstanceSize["XLARGE9"] = "9xlarge";
1263
+ /**
1264
+ * Instance size XLARGE10 (10xlarge)
1265
+ */
1266
+ InstanceSize["XLARGE10"] = "10xlarge";
1267
+ /**
1268
+ * Instance size XLARGE12 (12xlarge)
1269
+ */
1270
+ InstanceSize["XLARGE12"] = "12xlarge";
1271
+ /**
1272
+ * Instance size XLARGE16 (16xlarge)
1273
+ */
1274
+ InstanceSize["XLARGE16"] = "16xlarge";
1275
+ /**
1276
+ * Instance size XLARGE18 (18xlarge)
1277
+ */
1278
+ InstanceSize["XLARGE18"] = "18xlarge";
1279
+ /**
1280
+ * Instance size XLARGE24 (24xlarge)
1281
+ */
1282
+ InstanceSize["XLARGE24"] = "24xlarge";
1283
+ /**
1284
+ * Instance size XLARGE32 (32xlarge)
1285
+ */
1286
+ InstanceSize["XLARGE32"] = "32xlarge";
1287
+ /**
1288
+ * Instance size XLARGE48 (48xlarge)
1289
+ */
1290
+ InstanceSize["XLARGE48"] = "48xlarge";
1291
+ /**
1292
+ * Instance size XLARGE56 (56xlarge)
1293
+ */
1294
+ InstanceSize["XLARGE56"] = "56xlarge";
1295
+ /**
1296
+ * Instance size XLARGE96 (96xlarge)
1297
+ */
1298
+ InstanceSize["XLARGE96"] = "96xlarge";
1299
+ /**
1300
+ * Instance size XLARGE112 (112xlarge)
1301
+ */
1302
+ InstanceSize["XLARGE112"] = "112xlarge";
1303
+ /**
1304
+ * Instance size XLARGE224 (224xlarge)
1305
+ */
1306
+ InstanceSize["XLARGE224"] = "224xlarge";
1307
+ /**
1308
+ * Instance size XLARGE480 (480xlarge)
1309
+ */
1310
+ InstanceSize["XLARGE480"] = "480xlarge";
1311
+ /**
1312
+ * Instance size METAL (metal)
1313
+ */
1314
+ InstanceSize["METAL"] = "metal";
1315
+ /**
1316
+ * Instance size XLARGE16METAL (metal-16xl)
1317
+ */
1318
+ InstanceSize["XLARGE16METAL"] = "metal-16xl";
1319
+ /**
1320
+ * Instance size XLARGE24METAL (metal-24xl)
1321
+ */
1322
+ InstanceSize["XLARGE24METAL"] = "metal-24xl";
1323
+ /**
1324
+ * Instance size XLARGE32METAL (metal-32xl)
1325
+ */
1326
+ InstanceSize["XLARGE32METAL"] = "metal-32xl";
1327
+ /**
1328
+ * Instance size XLARGE48METAL (metal-48xl)
1329
+ */
1330
+ InstanceSize["XLARGE48METAL"] = "metal-48xl";
1331
+ })(InstanceSize || (exports.InstanceSize = InstanceSize = {}));
1332
+ /**
1333
+ * Instance type for EC2 instances
1334
+ *
1335
+ * This class takes a literal string, good if you already
1336
+ * know the identifier of the type you want.
1337
+ */
1338
+ class InstanceType {
1339
+ /**
1340
+ * Instance type for EC2 instances
1341
+ *
1342
+ * This class takes a combination of a class and size.
1343
+ *
1344
+ * Be aware that not all combinations of class and size are available, and not all
1345
+ * classes are available in all regions.
1346
+ */
1347
+ static of(instanceClass, instanceSize) {
1348
+ // JSII does not allow enum types to have same value. So to support the enum, the enum with same value has to be mapped later.
1349
+ const instanceClassMap = {
1350
+ [InstanceClass.STANDARD3]: "m3",
1351
+ [InstanceClass.M3]: "m3",
1352
+ [InstanceClass.STANDARD4]: "m4",
1353
+ [InstanceClass.M4]: "m4",
1354
+ [InstanceClass.STANDARD5]: "m5",
1355
+ [InstanceClass.M5]: "m5",
1356
+ [InstanceClass.STANDARD5_NVME_DRIVE]: "m5d",
1357
+ [InstanceClass.M5D]: "m5d",
1358
+ [InstanceClass.STANDARD5_AMD]: "m5a",
1359
+ [InstanceClass.M5A]: "m5a",
1360
+ [InstanceClass.STANDARD5_AMD_NVME_DRIVE]: "m5ad",
1361
+ [InstanceClass.M5AD]: "m5ad",
1362
+ [InstanceClass.STANDARD5_HIGH_PERFORMANCE]: "m5n",
1363
+ [InstanceClass.M5N]: "m5n",
1364
+ [InstanceClass.STANDARD5_NVME_DRIVE_HIGH_PERFORMANCE]: "m5dn",
1365
+ [InstanceClass.M5DN]: "m5dn",
1366
+ [InstanceClass.STANDARD5_HIGH_COMPUTE]: "m5zn",
1367
+ [InstanceClass.M5ZN]: "m5zn",
1368
+ [InstanceClass.MEMORY3]: "r3",
1369
+ [InstanceClass.R3]: "r3",
1370
+ [InstanceClass.MEMORY4]: "r4",
1371
+ [InstanceClass.R4]: "r4",
1372
+ [InstanceClass.MEMORY5]: "r5",
1373
+ [InstanceClass.R5]: "r5",
1374
+ [InstanceClass.MEMORY6_AMD]: "r6a",
1375
+ [InstanceClass.R6A]: "r6a",
1376
+ [InstanceClass.MEMORY6_INTEL]: "r6i",
1377
+ [InstanceClass.R6I]: "r6i",
1378
+ [InstanceClass.MEMORY6_INTEL_NVME_DRIVE]: "r6id",
1379
+ [InstanceClass.R6ID]: "r6id",
1380
+ [InstanceClass.MEMORY6_INTEL_HIGH_PERFORMANCE]: "r6in",
1381
+ [InstanceClass.R6IN]: "r6in",
1382
+ [InstanceClass.MEMORY6_INTEL_NVME_DRIVE_HIGH_PERFORMANCE]: "r6idn",
1383
+ [InstanceClass.R6IDN]: "r6idn",
1384
+ [InstanceClass.MEMORY5_HIGH_PERFORMANCE]: "r5n",
1385
+ [InstanceClass.R5N]: "r5n",
1386
+ [InstanceClass.MEMORY5_NVME_DRIVE]: "r5d",
1387
+ [InstanceClass.R5D]: "r5d",
1388
+ [InstanceClass.MEMORY5_NVME_DRIVE_HIGH_PERFORMANCE]: "r5dn",
1389
+ [InstanceClass.R5DN]: "r5dn",
1390
+ [InstanceClass.MEMORY5_AMD]: "r5a",
1391
+ [InstanceClass.R5A]: "r5a",
1392
+ [InstanceClass.MEMORY5_AMD_NVME_DRIVE]: "r5ad",
1393
+ [InstanceClass.R5AD]: "r5ad",
1394
+ [InstanceClass.HIGH_MEMORY_3TB_1]: "u-3tb1",
1395
+ [InstanceClass.U_3TB1]: "u-3tb1",
1396
+ [InstanceClass.HIGH_MEMORY_6TB_1]: "u-6tb1",
1397
+ [InstanceClass.U_6TB1]: "u-6tb1",
1398
+ [InstanceClass.HIGH_MEMORY_9TB_1]: "u-9tb1",
1399
+ [InstanceClass.U_9TB1]: "u-9tb1",
1400
+ [InstanceClass.HIGH_MEMORY_12TB_1]: "u-12tb1",
1401
+ [InstanceClass.U_12TB1]: "u-12tb1",
1402
+ [InstanceClass.HIGH_MEMORY_18TB_1]: "u-18tb1",
1403
+ [InstanceClass.U_18TB1]: "u-18tb1",
1404
+ [InstanceClass.HIGH_MEMORY_24TB_1]: "u-24tb1",
1405
+ [InstanceClass.U_24TB1]: "u-24tb1",
1406
+ [InstanceClass.HIGH_MEMORY_6TB_7]: "u7i-6tb",
1407
+ [InstanceClass.U7I_6TB]: "u7i-6tb",
1408
+ [InstanceClass.HIGH_MEMORY_8TB_7]: "u7i-8tb",
1409
+ [InstanceClass.U7I_8TB]: "u7i-8tb",
1410
+ [InstanceClass.HIGH_MEMORY_12TB_7]: "u7i-12tb",
1411
+ [InstanceClass.U7I_12TB]: "u7i-12tb",
1412
+ [InstanceClass.HIGH_MEMORY_HIGH_NETWORK_16TB_7]: "u7in-16tb",
1413
+ [InstanceClass.U7IN_16TB]: "u7in-16tb",
1414
+ [InstanceClass.HIGH_MEMORY_HIGH_NETWORK_24TB_7]: "u7in-24tb",
1415
+ [InstanceClass.U7IN_24TB]: "u7in-24tb",
1416
+ [InstanceClass.HIGH_MEMORY_HIGH_NETWORK_32TB_7]: "u7in-32tb",
1417
+ [InstanceClass.U7IN_32TB]: "u7in-32tb",
1418
+ [InstanceClass.HIGH_MEMORY_HIGH_NETWORK_HPE_32TB_7]: "u7inh-32tb",
1419
+ [InstanceClass.U7INH_32TB]: "u7inh-32tb",
1420
+ [InstanceClass.MEMORY5_EBS_OPTIMIZED]: "r5b",
1421
+ [InstanceClass.R5B]: "r5b",
1422
+ [InstanceClass.MEMORY6_GRAVITON]: "r6g",
1423
+ [InstanceClass.R6G]: "r6g",
1424
+ [InstanceClass.MEMORY6_GRAVITON2_NVME_DRIVE]: "r6gd",
1425
+ [InstanceClass.R6GD]: "r6gd",
1426
+ [InstanceClass.MEMORY7_GRAVITON]: "r7g",
1427
+ [InstanceClass.R7G]: "r7g",
1428
+ [InstanceClass.MEMORY7_GRAVITON3_NVME_DRIVE]: "r7gd",
1429
+ [InstanceClass.R7GD]: "r7gd",
1430
+ [InstanceClass.MEMORY7_INTEL_BASE]: "r7i",
1431
+ [InstanceClass.R7I]: "r7i",
1432
+ [InstanceClass.MEMORY7_INTEL]: "r7iz",
1433
+ [InstanceClass.R7IZ]: "r7iz",
1434
+ [InstanceClass.MEMORY7_AMD]: "r7a",
1435
+ [InstanceClass.R7A]: "r7a",
1436
+ [InstanceClass.MEMORY8_GRAVITON]: "r8g",
1437
+ [InstanceClass.R8G]: "r8g",
1438
+ [InstanceClass.COMPUTE3]: "c3",
1439
+ [InstanceClass.C3]: "c3",
1440
+ [InstanceClass.COMPUTE4]: "c4",
1441
+ [InstanceClass.C4]: "c4",
1442
+ [InstanceClass.COMPUTE5]: "c5",
1443
+ [InstanceClass.C5]: "c5",
1444
+ [InstanceClass.COMPUTE5_NVME_DRIVE]: "c5d",
1445
+ [InstanceClass.C5D]: "c5d",
1446
+ [InstanceClass.COMPUTE5_AMD]: "c5a",
1447
+ [InstanceClass.C5A]: "c5a",
1448
+ [InstanceClass.COMPUTE5_AMD_NVME_DRIVE]: "c5ad",
1449
+ [InstanceClass.C5AD]: "c5ad",
1450
+ [InstanceClass.COMPUTE5_HIGH_PERFORMANCE]: "c5n",
1451
+ [InstanceClass.C5N]: "c5n",
1452
+ [InstanceClass.COMPUTE6_INTEL]: "c6i",
1453
+ [InstanceClass.C6I]: "c6i",
1454
+ [InstanceClass.COMPUTE6_INTEL_HIGH_PERFORMANCE]: "c6in",
1455
+ [InstanceClass.C6IN]: "c6in",
1456
+ [InstanceClass.COMPUTE6_INTEL_NVME_DRIVE]: "c6id",
1457
+ [InstanceClass.C6ID]: "c6id",
1458
+ [InstanceClass.COMPUTE6_AMD]: "c6a",
1459
+ [InstanceClass.C6A]: "c6a",
1460
+ [InstanceClass.COMPUTE6_GRAVITON2]: "c6g",
1461
+ [InstanceClass.C6G]: "c6g",
1462
+ [InstanceClass.COMPUTE6_GRAVITON2_NVME_DRIVE]: "c6gd",
1463
+ [InstanceClass.C6GD]: "c6gd",
1464
+ [InstanceClass.COMPUTE6_GRAVITON2_HIGH_NETWORK_BANDWIDTH]: "c6gn",
1465
+ [InstanceClass.C6GN]: "c6gn",
1466
+ [InstanceClass.COMPUTE7_GRAVITON3]: "c7g",
1467
+ [InstanceClass.C7G]: "c7g",
1468
+ [InstanceClass.COMPUTE7_GRAVITON3_NVME_DRIVE]: "c7gd",
1469
+ [InstanceClass.C7GD]: "c7gd",
1470
+ [InstanceClass.COMPUTE7_GRAVITON3_HIGH_NETWORK_BANDWIDTH]: "c7gn",
1471
+ [InstanceClass.C7GN]: "c7gn",
1472
+ [InstanceClass.COMPUTE7_INTEL]: "c7i",
1473
+ [InstanceClass.C7I]: "c7i",
1474
+ [InstanceClass.COMPUTE7_INTEL_FLEX]: "c7i-flex",
1475
+ [InstanceClass.C7I_FLEX]: "c7i-flex",
1476
+ [InstanceClass.COMPUTE7_AMD]: "c7a",
1477
+ [InstanceClass.C7A]: "c7a",
1478
+ [InstanceClass.COMPUTE8_GRAVITON4]: "c8g",
1479
+ [InstanceClass.C8G]: "c8g",
1480
+ [InstanceClass.STORAGE2]: "d2",
1481
+ [InstanceClass.D2]: "d2",
1482
+ [InstanceClass.STORAGE3]: "d3",
1483
+ [InstanceClass.D3]: "d3",
1484
+ [InstanceClass.STORAGE3_ENHANCED_NETWORK]: "d3en",
1485
+ [InstanceClass.D3EN]: "d3en",
1486
+ [InstanceClass.TRAINING_ACCELERATOR1]: "trn1",
1487
+ [InstanceClass.TRN1]: "trn1",
1488
+ [InstanceClass.TRAINING_ACCELERATOR1_ENHANCED_NETWORK]: "trn1n",
1489
+ [InstanceClass.TRN1N]: "trn1n",
1490
+ [InstanceClass.TRAINING_ACCELERATOR2]: "trn2",
1491
+ [InstanceClass.TRN2]: "trn2",
1492
+ [InstanceClass.TRAINING_ACCELERATOR2_ULTRASERVER]: "trn2u",
1493
+ [InstanceClass.TRN2U]: "trn2u",
1494
+ [InstanceClass.STORAGE_COMPUTE_1]: "h1",
1495
+ [InstanceClass.H1]: "h1",
1496
+ [InstanceClass.IO3]: "i3",
1497
+ [InstanceClass.I3]: "i3",
1498
+ [InstanceClass.IO3_DENSE_NVME_DRIVE]: "i3en",
1499
+ [InstanceClass.I3EN]: "i3en",
1500
+ [InstanceClass.STORAGE4_GRAVITON]: "i4g",
1501
+ [InstanceClass.I4G]: "i4g",
1502
+ [InstanceClass.STORAGE4_GRAVITON_NETWORK_OPTIMIZED]: "im4gn",
1503
+ [InstanceClass.IM4GN]: "im4gn",
1504
+ [InstanceClass.STORAGE4_GRAVITON_NETWORK_STORAGE_OPTIMIZED]: "is4gen",
1505
+ [InstanceClass.IS4GEN]: "is4gen",
1506
+ [InstanceClass.STORAGE7_INTEL_STORAGE_OPTIMIZED]: "i7ie",
1507
+ [InstanceClass.I7IE]: "i7ie",
1508
+ [InstanceClass.STORAGE8_GRAVITON]: "i8g",
1509
+ [InstanceClass.I8G]: "i8g",
1510
+ [InstanceClass.BURSTABLE2]: "t2",
1511
+ [InstanceClass.T2]: "t2",
1512
+ [InstanceClass.BURSTABLE3]: "t3",
1513
+ [InstanceClass.T3]: "t3",
1514
+ [InstanceClass.BURSTABLE3_AMD]: "t3a",
1515
+ [InstanceClass.T3A]: "t3a",
1516
+ [InstanceClass.BURSTABLE4_GRAVITON]: "t4g",
1517
+ [InstanceClass.T4G]: "t4g",
1518
+ [InstanceClass.MEMORY_INTENSIVE_1]: "x1",
1519
+ [InstanceClass.X1]: "x1",
1520
+ [InstanceClass.MEMORY_INTENSIVE_1_EXTENDED]: "x1e",
1521
+ [InstanceClass.X1E]: "x1e",
1522
+ [InstanceClass.MEMORY_INTENSIVE_2_GRAVITON2]: "x2g",
1523
+ [InstanceClass.X2G]: "x2g",
1524
+ [InstanceClass.MEMORY_INTENSIVE_2_GRAVITON2_NVME_DRIVE]: "x2gd",
1525
+ [InstanceClass.X2GD]: "x2gd",
1526
+ [InstanceClass.FPGA1]: "f1",
1527
+ [InstanceClass.F1]: "f1",
1528
+ [InstanceClass.FPGA2]: "f2",
1529
+ [InstanceClass.F2]: "f2",
1530
+ [InstanceClass.GRAPHICS3_SMALL]: "g3s",
1531
+ [InstanceClass.G3S]: "g3s",
1532
+ [InstanceClass.GRAPHICS3]: "g3",
1533
+ [InstanceClass.G3]: "g3",
1534
+ [InstanceClass.GRAPHICS4_NVME_DRIVE_HIGH_PERFORMANCE]: "g4dn",
1535
+ [InstanceClass.G4DN]: "g4dn",
1536
+ [InstanceClass.GRAPHICS4_AMD_NVME_DRIVE]: "g4ad",
1537
+ [InstanceClass.G4AD]: "g4ad",
1538
+ [InstanceClass.GRAPHICS5]: "g5",
1539
+ [InstanceClass.G5]: "g5",
1540
+ [InstanceClass.GRAPHICS5_GRAVITON2]: "g5g",
1541
+ [InstanceClass.G5G]: "g5g",
1542
+ [InstanceClass.GRAPHICS6]: "g6",
1543
+ [InstanceClass.G6]: "g6",
1544
+ [InstanceClass.GRAPHICS6_EFFICIENT]: "g6e",
1545
+ [InstanceClass.G6E]: "g6e",
1546
+ [InstanceClass.GRAPHICS_RAM_6]: "gr6",
1547
+ [InstanceClass.GR6]: "gr6",
1548
+ [InstanceClass.PARALLEL2]: "p2",
1549
+ [InstanceClass.P2]: "p2",
1550
+ [InstanceClass.PARALLEL3]: "p3",
1551
+ [InstanceClass.P3]: "p3",
1552
+ [InstanceClass.PARALLEL3_NVME_DRIVE_HIGH_PERFORMANCE]: "p3dn",
1553
+ [InstanceClass.P3DN]: "p3dn",
1554
+ [InstanceClass.PARALLEL4_NVME_DRIVE_EXTENDED]: "p4de",
1555
+ [InstanceClass.P4DE]: "p4de",
1556
+ [InstanceClass.PARALLEL4]: "p4d",
1557
+ [InstanceClass.P4D]: "p4d",
1558
+ [InstanceClass.PARALLEL5]: "p5",
1559
+ [InstanceClass.P5]: "p5",
1560
+ [InstanceClass.PARALLEL5_EXTENDED]: "parallel5-extended",
1561
+ [InstanceClass.P5E]: "p5e",
1562
+ [InstanceClass.PARALLEL5_EXTENDED_NETWORK]: "parallel5-extended-network",
1563
+ [InstanceClass.P5EN]: "p5en",
1564
+ [InstanceClass.ARM1]: "a1",
1565
+ [InstanceClass.A1]: "a1",
1566
+ [InstanceClass.STANDARD6_GRAVITON]: "m6g",
1567
+ [InstanceClass.M6G]: "m6g",
1568
+ [InstanceClass.STANDARD6_INTEL]: "m6i",
1569
+ [InstanceClass.M6I]: "m6i",
1570
+ [InstanceClass.STANDARD6_INTEL_NVME_DRIVE]: "m6id",
1571
+ [InstanceClass.M6ID]: "m6id",
1572
+ [InstanceClass.STANDARD6_INTEL_HIGH_PERFORMANCE]: "m6in",
1573
+ [InstanceClass.M6IN]: "m6in",
1574
+ [InstanceClass.STANDARD6_INTEL_NVME_DRIVE_HIGH_PERFORMANCE]: "m6idn",
1575
+ [InstanceClass.M6IDN]: "m6idn",
1576
+ [InstanceClass.STANDARD6_AMD]: "m6a",
1577
+ [InstanceClass.M6A]: "m6a",
1578
+ [InstanceClass.STANDARD6_GRAVITON2_NVME_DRIVE]: "m6gd",
1579
+ [InstanceClass.M6GD]: "m6gd",
1580
+ [InstanceClass.STANDARD7_GRAVITON]: "m7g",
1581
+ [InstanceClass.M7G]: "m7g",
1582
+ [InstanceClass.STANDARD8_GRAVITON]: "m8g",
1583
+ [InstanceClass.M8G]: "m8g",
1584
+ [InstanceClass.STANDARD7_GRAVITON3_NVME_DRIVE]: "m7gd",
1585
+ [InstanceClass.M7GD]: "m7gd",
1586
+ [InstanceClass.STANDARD7_INTEL]: "m7i",
1587
+ [InstanceClass.M7I]: "m7i",
1588
+ [InstanceClass.STANDARD7_INTEL_FLEX]: "m7i-flex",
1589
+ [InstanceClass.M7I_FLEX]: "m7i-flex",
1590
+ [InstanceClass.STANDARD7_AMD]: "m7a",
1591
+ [InstanceClass.M7A]: "m7a",
1592
+ [InstanceClass.HIGH_COMPUTE_MEMORY1]: "z1d",
1593
+ [InstanceClass.Z1D]: "z1d",
1594
+ [InstanceClass.INFERENCE1]: "inf1",
1595
+ [InstanceClass.INF1]: "inf1",
1596
+ [InstanceClass.INFERENCE2]: "inf2",
1597
+ [InstanceClass.INF2]: "inf2",
1598
+ [InstanceClass.MACINTOSH1_INTEL]: "mac1",
1599
+ [InstanceClass.MAC1]: "mac1",
1600
+ [InstanceClass.MACINTOSH2_M1]: "mac2",
1601
+ [InstanceClass.MAC2]: "mac2",
1602
+ [InstanceClass.MACINTOSH2_M2]: "mac2-m2",
1603
+ [InstanceClass.MAC2_M2]: "mac2-m2",
1604
+ [InstanceClass.MACINTOSH2_M2_PRO]: "mac2-m2pro",
1605
+ [InstanceClass.MAC2_M2PRO]: "mac2-m2pro",
1606
+ [InstanceClass.MACINTOSH2_M1_ULTRA]: "mac2-m1ultra",
1607
+ [InstanceClass.MAC2_M1ULTRA]: "mac2-m1ultra",
1608
+ [InstanceClass.VIDEO_TRANSCODING1]: "vt1",
1609
+ [InstanceClass.VT1]: "vt1",
1610
+ [InstanceClass.HIGH_PERFORMANCE_COMPUTING6_AMD]: "hpc6a",
1611
+ [InstanceClass.HPC6A]: "hpc6a",
1612
+ [InstanceClass.HIGH_PERFORMANCE_COMPUTING6_INTEL_NVME_DRIVE]: "hpc6id",
1613
+ [InstanceClass.HPC6ID]: "hpc6id",
1614
+ [InstanceClass.HIGH_PERFORMANCE_COMPUTING7_AMD]: "hpc7a",
1615
+ [InstanceClass.HPC7A]: "hpc7a",
1616
+ [InstanceClass.HIGH_PERFORMANCE_COMPUTING7_GRAVITON]: "hpc7g",
1617
+ [InstanceClass.HPC7G]: "hpc7g",
1618
+ [InstanceClass.I4I]: "i4i",
1619
+ [InstanceClass.IO4_INTEL]: "i4i",
1620
+ [InstanceClass.X2IEDN]: "x2iedn",
1621
+ [InstanceClass.MEMORY_INTENSIVE_2_XT_INTEL]: "x2iedn",
1622
+ [InstanceClass.X2IDN]: "x2idn",
1623
+ [InstanceClass.MEMORY_INTENSIVE_2_INTEL]: "x2idn",
1624
+ [InstanceClass.X2IEZN]: "x2iezn",
1625
+ [InstanceClass.MEMORY_INTENSIVE_8_GRAVITON]: "x8g",
1626
+ [InstanceClass.X8G]: "x8g",
1627
+ [InstanceClass.MEMORY_INTENSIVE_2_XTZ_INTEL]: "x2iezn",
1628
+ [InstanceClass.DEEP_LEARNING1]: "dl1",
1629
+ [InstanceClass.DL1]: "dl1",
1630
+ [InstanceClass.DEEP_LEARNING2_QUALCOMM]: "dl2q",
1631
+ [InstanceClass.DL2Q]: "dl2q",
1632
+ };
1633
+ return new InstanceType(`${instanceClassMap[instanceClass] ?? instanceClass}.${instanceSize}`);
1634
+ }
1635
+ constructor(instanceTypeIdentifier) {
1636
+ this.instanceTypeIdentifier = instanceTypeIdentifier;
1637
+ }
1638
+ /**
1639
+ * Return the instance type as a dotted string
1640
+ */
1641
+ toString() {
1642
+ return this.instanceTypeIdentifier;
1643
+ }
1644
+ /**
1645
+ * The instance's CPU architecture
1646
+ */
1647
+ get architecture() {
1648
+ // capture the family, generation, capabilities, and size portions of the instance type id
1649
+ const instanceTypeComponents = this.instanceTypeIdentifier.match(/^([a-z]+)(\d{1,2})([a-z\-]*)\.([a-z0-9\-]+)$/);
1650
+ if (instanceTypeComponents == null) {
1651
+ throw new Error("Malformed instance type identifier");
1652
+ }
1653
+ const family = instanceTypeComponents[1];
1654
+ const capabilities = instanceTypeComponents[3];
1655
+ // Instance family `a` are first-gen Graviton instances
1656
+ // Capability `g` indicates the instance is Graviton2 powered
1657
+ if (family === "a" || capabilities.includes("g")) {
1658
+ return InstanceArchitecture.ARM_64;
1659
+ }
1660
+ return InstanceArchitecture.X86_64;
1661
+ }
1662
+ sameInstanceClassAs(other) {
1663
+ const instanceClass = /^([a-z]+\d{1,2}[a-z\-]*)\.([a-z0-9\-]+)$/;
1664
+ const instanceClassId = this.instanceTypeIdentifier.match(instanceClass);
1665
+ const otherInstanceClassId = other.instanceTypeIdentifier.match(instanceClass);
1666
+ if (instanceClassId == null || otherInstanceClassId == null) {
1667
+ throw new Error("Malformed instance type identifier");
1668
+ }
1669
+ return instanceClassId[1] === otherInstanceClassId[1];
1670
+ }
1671
+ /**
1672
+ * Return whether this instance type is a burstable instance type
1673
+ */
1674
+ isBurstable() {
1675
+ return (this.instanceTypeIdentifier.startsWith("t3") ||
1676
+ this.instanceTypeIdentifier.startsWith("t4g") ||
1677
+ this.instanceTypeIdentifier.startsWith("t2"));
1678
+ }
1679
+ }
1680
+ exports.InstanceType = InstanceType;
1681
+ _a = JSII_RTTI_SYMBOL_1;
1682
+ InstanceType[_a] = { fqn: "terraconstructs.aws.compute.InstanceType", version: "0.0.12" };
1683
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvaW5zdGFuY2UtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrR0FBa0c7QUFFbEc7Ozs7Ozs7O0dBUUc7QUFDSCxJQUFZLGFBbTdDWDtBQW43Q0QsV0FBWSxhQUFhO0lBQ3ZCOztPQUVHO0lBQ0gsd0NBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCwwQkFBUyxDQUFBO0lBRVQ7O09BRUc7SUFDSCx3Q0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDBCQUFTLENBQUE7SUFFVDs7T0FFRztJQUNILHdDQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsMEJBQVMsQ0FBQTtJQUVUOztPQUVHO0lBQ0gsOERBQTZDLENBQUE7SUFFN0M7O09BRUc7SUFDSCw0QkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxnREFBK0IsQ0FBQTtJQUUvQjs7T0FFRztJQUNILDRCQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILHNFQUFxRCxDQUFBO0lBRXJEOztPQUVHO0lBQ0gsOEJBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMEVBQXlELENBQUE7SUFFekQ7O09BRUc7SUFDSCw0QkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxnR0FBK0UsQ0FBQTtJQUUvRTs7T0FFRztJQUNILDhCQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILGtFQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsOEJBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsb0NBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwwQkFBUyxDQUFBO0lBRVQ7O09BRUc7SUFDSCxvQ0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILDBCQUFTLENBQUE7SUFFVDs7T0FFRztJQUNILG9DQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsMEJBQVMsQ0FBQTtJQUVUOztPQUVHO0lBQ0gsNENBQTJC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Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjMi9saWIvaW5zdGFuY2UtdHlwZXMudHNcblxuLyoqXG4gKiBXaGF0IGNsYXNzIGFuZCBnZW5lcmF0aW9uIG9mIGluc3RhbmNlIHRvIHVzZVxuICpcbiAqIFdlIGhhdmUgYm90aCBzeW1ib2xpYyBhbmQgY29uY3JldGUgZW51bXMgZm9yIGV2ZXJ5IHR5cGUuXG4gKlxuICogVGhlIGZpcnN0IGFyZSBmb3IgcGVvcGxlIHRoYXQgd2FudCB0byBzcGVjaWZ5IGJ5IHB1cnBvc2UsXG4gKiB0aGUgc2Vjb25kIG9uZSBhcmUgZm9yIHBlb3BsZSB3aG8gYWxyZWFkeSBrbm93IGV4YWN0bHkgd2hhdFxuICogJ1I0JyBtZWFucy5cbiAqL1xuZXhwb3J0IGVudW0gSW5zdGFuY2VDbGFzcyB7XG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDMgPSBcInN0YW5kYXJkM1wiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBNMyA9IFwibTNcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RBTkRBUkQ0ID0gXCJzdGFuZGFyZDRcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTTQgPSBcIm00XCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENSA9IFwic3RhbmRhcmQ1XCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE01ID0gXCJtNVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RBTkRBUkQ1X05WTUVfRFJJVkUgPSBcInN0YW5kYXJkNS1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNNUQgPSBcIm01ZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDVfQU1EID0gXCJzdGFuZGFyZDUtYW1kXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE01QSA9IFwibTVhXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDVfQU1EX05WTUVfRFJJVkUgPSBcInN0YW5kYXJkNS1hbWQtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTTVBRCA9IFwibTVhZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RBTkRBUkQ1X0hJR0hfUEVSRk9STUFOQ0UgPSBcInN0YW5kYXJkNS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNNU4gPSBcIm01blwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENV9OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0UgPSBcInN0YW5kYXJkNS1udm1lLWRyaXZlLWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNNUROID0gXCJtNWRuXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKENhc2NhZGUgTGFrZSkgcHJvY2Vzc29ycywgNW5kIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENV9ISUdIX0NPTVBVVEUgPSBcInN0YW5kYXJkNS1oaWdoLWNvbXB1dGVcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIHdpdGggaGlnaCBtZW1vcnkgYW5kIGNvbXB1dGUgY2FwYWNpdHkgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzLCA1bmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgTTVaTiA9IFwibTV6blwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTMgPSBcIm1lbW9yeTNcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBSMyA9IFwicjNcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk0ID0gXCJtZW1vcnk0XCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUjQgPSBcInI0XCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZNSA9IFwibWVtb3J5NVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1ID0gXCJyNVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTZfQU1EID0gXCJtZW1vcnk2LWFtZFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI2QSA9IFwicjZhXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoM3JkIGdlbmVyYXRpb24gcHJvY2Vzc29ycyBjb2RlIG5hbWVkIEljZSBMYWtlKVxuICAgKi9cbiAgTUVNT1JZNl9JTlRFTCA9IFwibWVtb3J5Ni1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb24gd2l0aCBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKDNyZCBnZW5lcmF0aW9uIHByb2Nlc3NvcnMgY29kZSBuYW1lZCBJY2UgTGFrZSlcbiAgICovXG4gIFI2SSA9IFwicjZpXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNnRoIGdlbmVyYXRpb24gd2l0aCBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKDNyZCBnZW5lcmF0aW9uIHByb2Nlc3NvcnMgY29kZSBuYW1lZCBJY2UgTGFrZSlcbiAgICovXG4gIE1FTU9SWTZfSU5URUxfTlZNRV9EUklWRSA9IFwibWVtb3J5Ni1pbnRlbC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNnRoIGdlbmVyYXRpb24gd2l0aCBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKDNyZCBnZW5lcmF0aW9uIHByb2Nlc3NvcnMgY29kZSBuYW1lZCBJY2UgTGFrZSlcbiAgICovXG4gIFI2SUQgPSBcInI2aWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChjb2RlIG5hbWVkIEljZSBMYWtlKSwgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTZfSU5URUxfSElHSF9QRVJGT1JNQU5DRSA9IFwibWVtb3J5Ni1pbnRlbC1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBSNklOID0gXCJyNmluXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKGNvZGUgbmFtZWQgSWNlIExha2UpLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZNl9JTlRFTF9OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0UgPSBcIm1lbW9yeTYtaW50ZWwtbnZtZS1kcml2ZS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKGNvZGUgbmFtZWQgSWNlIExha2UpLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUjZJRE4gPSBcInI2aWRuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTVfSElHSF9QRVJGT1JNQU5DRSA9IFwibWVtb3J5NS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1TiA9IFwicjVuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTVfTlZNRV9EUklWRSA9IFwibWVtb3J5NS1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1RCA9IFwicjVkXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk1X05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRSA9IFwibWVtb3J5NS1udm1lLWRyaXZlLWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1RE4gPSBcInI1ZG5cIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk1X0FNRCA9IFwibWVtb3J5NS1hbWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBSNUEgPSBcInI1YVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk1X0FNRF9OVk1FX0RSSVZFID0gXCJtZW1vcnk1LWFtZC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIEFNRCBFUFlDIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1QUQgPSBcInI1YWRcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgzVEIpIGJhc2VkIG9uIEludGVsIFhlb24gUGxhdGludW0gODE3Nk0gKFNreWxha2UpIHByb2Nlc3NvcnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV8zVEJfMSA9IFwiaGlnaC1tZW1vcnktM3RiLTFcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgzVEIpIGJhc2VkIG9uIEludGVsIFhlb24gUGxhdGludW0gODE3Nk0gKFNreWxha2UpIHByb2Nlc3NvcnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBVXzNUQjEgPSBcInUtM3RiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDZUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBQbGF0aW51bSA4MTc2TSAoU2t5bGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZXzZUQl8xID0gXCJoaWdoLW1lbW9yeS02dGItMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDZUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBQbGF0aW51bSA4MTc2TSAoU2t5bGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIFVfNlRCMSA9IFwidS02dGIxXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoOVRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfOVRCXzEgPSBcImhpZ2gtbWVtb3J5LTl0Yi0xXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoOVRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV85VEIxID0gXCJ1LTl0YjFcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgxMlRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfMTJUQl8xID0gXCJoaWdoLW1lbW9yeS0xMnRiLTFcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgxMlRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV8xMlRCMSA9IFwidS0xMnRiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDE4VEIpIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKENhc2NhZGUgTGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZXzE4VEJfMSA9IFwiaGlnaC1tZW1vcnktMTh0Yi0xXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoMThUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV8xOFRCMSA9IFwidS0xOHRiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDI0VEIpIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKENhc2NhZGUgTGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZXzI0VEJfMSA9IFwiaGlnaC1tZW1vcnktMjR0Yi0xXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoMjRUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV8yNFRCMSA9IFwidS0yNHRiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDZUQikgYmFzZWQgb24gNHRoIEdlbmVyYXRpb24gSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChTYXBwaGlyZSBSYXBpZHMpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfNlRCXzcgPSBcImhpZ2gtbWVtb3J5LTZ0Yi03XCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoNlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBVN0lfNlRCID0gXCJ1N2ktNnRiXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoOFRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV84VEJfNyA9IFwiaGlnaC1tZW1vcnktOHRiLTdcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICg4VEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFU3SV84VEIgPSBcInU3aS04dGJcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgxMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV8xMlRCXzcgPSBcImhpZ2gtbWVtb3J5LTEydGItN1wiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDEyVEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFU3SV8xMlRCID0gXCJ1N2ktMTJ0YlwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgxNlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV9ISUdIX05FVFdPUktfMTZUQl83ID0gXCJoaWdoLW1lbW9yeS1oaWdoLW5ldHdvcmstMTZ0Yi03XCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5LCBuZXR3b3JrLWludGVuc2l2ZSBpbnN0YW5jZXMgKDE2VEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFU3SU5fMTZUQiA9IFwidTdpbi0xNnRiXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5LCBuZXR3b3JrLWludGVuc2l2ZSBpbnN0YW5jZXMgKDI0VEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18yNFRCXzcgPSBcImhpZ2gtbWVtb3J5LWhpZ2gtbmV0d29yay0yNHRiLTdcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnksIG5ldHdvcmstaW50ZW5zaXZlIGluc3RhbmNlcyAoMjRUQikgYmFzZWQgb24gNHRoIEdlbmVyYXRpb24gSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChTYXBwaGlyZSBSYXBpZHMpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgVTdJTl8yNFRCID0gXCJ1N2luLTI0dGJcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnksIG5ldHdvcmstaW50ZW5zaXZlIGluc3RhbmNlcyAoMzJUQikgYmFzZWQgb24gNHRoIEdlbmVyYXRpb24gSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChTYXBwaGlyZSBSYXBpZHMpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfSElHSF9ORVRXT1JLXzMyVEJfNyA9IFwiaGlnaC1tZW1vcnktaGlnaC1uZXR3b3JrLTMydGItN1wiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgzMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBVN0lOXzMyVEIgPSBcInU3aW4tMzJ0YlwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgzMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqIFU3aW5oIGluc3RhbmNlcyB1c2UgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgKEhQRSkgQ29tcHV0ZSBTY2FsZSBVcCBTZXJ2ZXIgMzIwMC5cbiAgICovXG4gIEhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS19IUEVfMzJUQl83ID0gXCJoaWdoLW1lbW9yeS1oaWdoLW5ldHdvcmstaHBlLTMydGItN1wiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgzMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqIFU3aW5oIGluc3RhbmNlcyB1c2UgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgKEhQRSkgQ29tcHV0ZSBTY2FsZSBVcCBTZXJ2ZXIgMzIwMC5cbiAgICovXG4gIFU3SU5IXzMyVEIgPSBcInU3aW5oLTMydGJcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgdGhhdCBhcmUgYWxzbyBFQlMtb3B0aW1pemVkLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZNV9FQlNfT1BUSU1JWkVEID0gXCJtZW1vcnk1LWVicy1vcHRpbWl6ZWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgdGhhdCBhcmUgYWxzbyBFQlMtb3B0aW1pemVkLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUjVCID0gXCJyNWJcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICovXG4gIE1FTU9SWTZfR1JBVklUT04gPSBcIm1lbW9yeTYtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICovXG4gIFI2RyA9IFwicjZnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBNRU1PUlk2X0dSQVZJVE9OMl9OVk1FX0RSSVZFID0gXCJtZW1vcnk2LWdyYXZpdG9uMi1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBSNkdEID0gXCJyNmdkXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA3dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMyBwcm9jZXNzb3JzXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKElyZWxhbmQpLlxuICAgKi9cbiAgTUVNT1JZN19HUkFWSVRPTiA9IFwibWVtb3J5Ny1ncmF2aXRvblwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIFI3RyA9IFwicjdnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA3dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMyBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKElyZWxhbmQpLlxuICAgKi9cbiAgTUVNT1JZN19HUkFWSVRPTjNfTlZNRV9EUklWRSA9IFwibWVtb3J5Ny1ncmF2aXRvbjMtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIFI3R0QgPSBcInI3Z2RcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvbiB3LyAgMy4yR0h6IHR1cmJvIGZyZXF1ZW5jeVxuICAgKi9cbiAgTUVNT1JZN19JTlRFTF9CQVNFID0gXCJtZW1vcnk3LWludGVsLWJhc2VcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvbiB3LyAgMy4yR0h6IHR1cmJvIGZyZXF1ZW5jeVxuICAgKi9cbiAgUjdJID0gXCJyN2lcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvbiwgd2l0aCBzdXN0YWluZWQgMy45R0h6IHR1cmJvIGZyZXF1ZW5jeVxuICAgKi9cbiAgTUVNT1JZN19JTlRFTCA9IFwibWVtb3J5Ny1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIChTYXBwaGlyZSBSYXBpZHMpIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uLCB3aXRoIHN1c3RhaW5lZCAzLjlHSHogdHVyYm8gZnJlcXVlbmN5XG4gICAqL1xuICBSN0laID0gXCJyN2l6XCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIDR0aCBnZW5lcmF0aW9uIEFNRCBFUFlDIChjb2RlbmFtZSBHZW5vYSksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk3X0FNRCA9IFwibWVtb3J5Ny1hbWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gNHRoIGdlbmVyYXRpb24gQU1EIEVQWUMgKGNvZGVuYW1lIEdlbm9hKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFI3QSA9IFwicjdhXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggR3Jhdml0b240IHByb2Nlc3NvcnNcbiAgICovXG4gIE1FTU9SWThfR1JBVklUT04gPSBcIm1lbW9yeTgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKi9cbiAgUjhHID0gXCJyOGdcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTMgPSBcImNvbXB1dGUzXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEMzID0gXCJjM1wiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDT01QVVRFNCA9IFwiY29tcHV0ZTRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzQgPSBcImM0XCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1ID0gXCJjb21wdXRlNVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDNSA9IFwiYzVcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1X05WTUVfRFJJVkUgPSBcImNvbXB1dGU1LW52bWUtZHJpdmVcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1RCA9IFwiYzVkXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1X0FNRCA9IFwiY29tcHV0ZTUtYW1kXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1QSA9IFwiYzVhXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDT01QVVRFNV9BTURfTlZNRV9EUklWRSA9IFwiY29tcHV0ZTUtYW1kLW52bWUtZHJpdmVcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1QUQgPSBcImM1YWRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1X0hJR0hfUEVSRk9STUFOQ0UgPSBcImNvbXB1dGU1LWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1TiA9IFwiYzVuXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU2X0lOVEVMID0gXCJjb21wdXRlNi1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDNkkgPSBcImM2aVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTZfSU5URUxfTlZNRV9EUklWRSA9IFwiY29tcHV0ZTYtaW50ZWwtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzZJRCA9IFwiYzZpZFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTZfSU5URUxfSElHSF9QRVJGT1JNQU5DRSA9IFwiY29tcHV0ZTYtaW50ZWwtaGlnaC1wZXJmb3JtYW5jZVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzZJTiA9IFwiYzZpblwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMgKGNvZGVuYW1lIE1pbGFuKSwgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU2X0FNRCA9IFwiY29tcHV0ZTYtYW1kXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyAoY29kZW5hbWUgTWlsYW4pLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzZBID0gXCJjNmFcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29yc1xuICAgKi9cbiAgQ09NUFVURTZfR1JBVklUT04yID0gXCJjb21wdXRlNi1ncmF2aXRvbjJcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29yc1xuICAgKi9cbiAgQzZHID0gXCJjNmdcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKi9cbiAgQ09NUFVURTdfR1JBVklUT04zID0gXCJjb21wdXRlNy1ncmF2aXRvbjNcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKi9cbiAgQzdHID0gXCJjN2dcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgOHRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChGcmFua2Z1cnQpLlxuICAgKi9cbiAgQ09NUFVURThfR1JBVklUT040ID0gXCJjb21wdXRlOC1ncmF2aXRvbjRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgOHRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChGcmFua2Z1cnQpLlxuICAgKi9cbiAgQzhHID0gXCJjOGdcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29yc1xuICAgKiBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKi9cbiAgQ09NUFVURTZfR1JBVklUT04yX05WTUVfRFJJVkUgPSBcImNvbXB1dGU2LWdyYXZpdG9uMi1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICogYW5kIGxvY2FsIE5WTUUgZHJpdmVcbiAgICovXG4gIEM2R0QgPSBcImM2Z2RcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIENPTVBVVEU3X0dSQVZJVE9OM19OVk1FX0RSSVZFID0gXCJjb21wdXRlNy1ncmF2aXRvbjMtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA3dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMyBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKElyZWxhbmQpLlxuICAgKi9cbiAgQzdHRCA9IFwiYzdnZFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzXG4gICAqIGFuZCBoaWdoIG5ldHdvcmsgYmFuZHdpZHRoIGNhcGFiaWxpdGllc1xuICAgKi9cbiAgQ09NUFVURTZfR1JBVklUT04yX0hJR0hfTkVUV09SS19CQU5EV0lEVEggPSBcImNvbXB1dGU2LWdyYXZpdG9uMi1oaWdoLW5ldHdvcmstYmFuZHdpZHRoXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICogYW5kIGhpZ2ggbmV0d29yayBiYW5kd2lkdGggY2FwYWJpbGl0aWVzXG4gICAqL1xuICBDNkdOID0gXCJjNmduXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDd0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24zIHByb2Nlc3NvcnNcbiAgICogYW5kIGhpZ2ggbmV0d29yayBiYW5kd2lkdGggY2FwYWJpbGl0aWVzXG4gICAqL1xuICBDT01QVVRFN19HUkFWSVRPTjNfSElHSF9ORVRXT1JLX0JBTkRXSURUSCA9IFwiY29tcHV0ZTctZ3Jhdml0b24zLWhpZ2gtbmV0d29yay1iYW5kd2lkdGhcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKiBhbmQgaGlnaCBuZXR3b3JrIGJhbmR3aWR0aCBjYXBhYmlsaXRpZXNcbiAgICovXG4gIEM3R04gPSBcImM3Z25cIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU3X0lOVEVMID0gXCJjb21wdXRlNy1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzdJID0gXCJjN2lcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICogQzdpLWZsZXggaW5zdGFuY2VzIGVmZmljaWVudGx5IHVzZSBjb21wdXRlIHJlc291cmNlcyB0byBkZWxpdmVyIGEgYmFzZWxpbmUgbGV2ZWwgb2YgcGVyZm9ybWFuY2Ugd2l0aCB0aGUgYWJpbGl0eSB0byBzY2FsZSB1cCB0byB0aGUgZnVsbCBjb21wdXRlIHBlcmZvcm1hbmNlIGEgbWFqb3JpdHkgb2YgdGhlIHRpbWUuXG4gICAqL1xuICBDT01QVVRFN19JTlRFTF9GTEVYID0gXCJjb21wdXRlNy1pbnRlbC1mbGV4XCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIChTYXBwaGlyZSBSYXBpZHMpIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uXG4gICAqIEM3aS1mbGV4IGluc3RhbmNlcyBlZmZpY2llbnRseSB1c2UgY29tcHV0ZSByZXNvdXJjZXMgdG8gZGVsaXZlciBhIGJhc2VsaW5lIGxldmVsIG9mIHBlcmZvcm1hbmNlIHdpdGggdGhlIGFiaWxpdHkgdG8gc2NhbGUgdXAgdG8gdGhlIGZ1bGwgY29tcHV0ZSBwZXJmb3JtYW5jZSBhIG1ham9yaXR5IG9mIHRoZSB0aW1lLlxuICAgKi9cbiAgQzdJX0ZMRVggPSBcImM3aS1mbGV4XCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiA0dGggZ2VuZXJhdGlvbiBBTUQgRVBZQyAoY29kZW5hbWUgR2Vub2EpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTdfQU1EID0gXCJjb21wdXRlNy1hbWRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIDR0aCBnZW5lcmF0aW9uIEFNRCBFUFlDIChjb2RlbmFtZSBHZW5vYSksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDN0EgPSBcImM3YVwiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlLW9wdGltaXplZCBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVE9SQUdFMiA9IFwic3RvcmFnZTJcIixcblxuICAvKipcbiAgICogU3RvcmFnZS1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgRDIgPSBcImQyXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Utb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIFNUT1JBR0UzID0gXCJzdG9yYWdlM1wiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBEMyA9IFwiZDNcIixcblxuICAvKipcbiAgICogU3RvcmFnZS1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RPUkFHRTNfRU5IQU5DRURfTkVUV09SSyA9IFwic3RvcmFnZTMtZW5oYW5jZWQtbmV0d29ya1wiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBEM0VOID0gXCJkM2VuXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UvY29tcHV0ZSBiYWxhbmNlZCBpbnN0YW5jZXMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVE9SQUdFX0NPTVBVVEVfMSA9IFwic3RvcmFnZS1jb21wdXRlLTFcIixcblxuICAvKipcbiAgICogU3RvcmFnZS9jb21wdXRlIGJhbGFuY2VkIGluc3RhbmNlcywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEgxID0gXCJoMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEFXUyBUcmFpbml1bVxuICAgKi9cbiAgVFJBSU5JTkdfQUNDRUxFUkFUT1IxID0gXCJ0cmFpbmluZy1hY2NlbGVyYXRvcjFcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW1cbiAgICovXG4gIFRSTjEgPSBcInRybjFcIixcblxuICAvKipcbiAgICogTmV0d29yay1vcHRpbWl6ZWQgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW1cbiAgICovXG4gIFRSQUlOSU5HX0FDQ0VMRVJBVE9SMV9FTkhBTkNFRF9ORVRXT1JLID0gXCJ0cmFpbmluZy1hY2NlbGVyYXRvcjEtZW5oYW5jZWQtbmV0d29ya1wiLFxuXG4gIC8qKlxuICAgKiBOZXR3b3JrLW9wdGltaXplZCBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEFXUyBUcmFpbml1bVxuICAgKi9cbiAgVFJOMU4gPSBcInRybjFuXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgQVdTIFRyYWluaXVtMiwgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIFRSQUlOSU5HX0FDQ0VMRVJBVE9SMiA9IFwidHJhaW5pbmctYWNjZWxlcmF0b3IyXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgQVdTIFRyYWluaXVtMiwgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIFRSTjIgPSBcInRybjJcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW0yIGFuZCBFQzIgVWx0cmEgU2VydmVycywgMm5kIGdlbmVyYXRpb25cbiAgICogVWx0cmFTZXJ2ZXJzIGNvbm5lY3QgbXVsdGlwbGUgRUMyIGluc3RhbmNlcyB1c2luZyBhIGRlZGljYXRlZCwgaGlnaC1iYW5kd2lkdGgsIGxvdy1sYXRlbmN5IGFjY2VsZXJhdG9yIGludGVyY29ubmVjdFxuICAgKi9cbiAgVFJBSU5JTkdfQUNDRUxFUkFUT1IyX1VMVFJBU0VSVkVSID0gXCJ0cmFpbmluZy1hY2NlbGVyYXRvcjItdWx0cmFzZXJ2ZXJcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW0yIGFuZCBFQzIgVWx0cmEgU2VydmVycywgMm5kIGdlbmVyYXRpb25cbiAgICogVWx0cmFTZXJ2ZXJzIGNvbm5lY3QgbXVsdGlwbGUgRUMyIGluc3RhbmNlcyB1c2luZyBhIGRlZGljYXRlZCwgaGlnaC1iYW5kd2lkdGgsIGxvdy1sYXRlbmN5IGFjY2VsZXJhdG9yIGludGVyY29ubmVjdFxuICAgKi9cbiAgVFJOMlUgPSBcInRybjJ1XCIsXG5cbiAgLyoqXG4gICAqIEkvTy1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgSU8zID0gXCJpbzNcIixcblxuICAvKipcbiAgICogSS9PLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBJMyA9IFwiaTNcIixcblxuICAvKipcbiAgICogSS9PLW9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgSU8zX0RFTlNFX05WTUVfRFJJVkUgPSBcImlvMy1kZW5zZS1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIEkvTy1vcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEkzRU4gPSBcImkzZW5cIixcblxuICAvKipcbiAgICogSS9PLW9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIHBvd2VyZWQgYnkgSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChjb2RlIG5hbWVkIEljZSBMYWtlKSwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIElPNF9JTlRFTCA9IFwiaW80X2ludGVsXCIsXG5cbiAgLyoqXG4gICAqIEkvTy1vcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJNEkgPSBcImk0aVwiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBHcmF2aXRvbjIgcHJvY2Vzc29yLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RPUkFHRTRfR1JBVklUT04gPSBcInN0b3JhZ2U0X2dyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uMiBwcm9jZXNzb3IsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJNEcgPSBcImk0Z1wiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBHcmF2aXRvbjIgcHJvY2Vzc29yLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RPUkFHRTRfR1JBVklUT05fTkVUV09SS19PUFRJTUlaRUQgPSBcInN0b3JhZ2U0LWdyYXZpdG9uLW5ldHdvcmstb3B0aW1pemVkXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uMiBwcm9jZXNzb3IsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTTRHTiA9IFwiaW00Z25cIixcblxuICAvKipcbiAgICogU3RvcmFnZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR3Jhdml0b24yIHByb2Nlc3NvciwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUT1JBR0U0X0dSQVZJVE9OX05FVFdPUktfU1RPUkFHRV9PUFRJTUlaRUQgPSBcInN0b3JhZ2U0LWdyYXZpdG9uLW5ldHdvcmstc3RvcmFnZS1vcHRpbWl6ZWRcIixcblxuICAvKipcbiAgICogU3RvcmFnZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR3Jhdml0b24yIHByb2Nlc3NvciwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIElTNEdFTiA9IFwiaXM0Z2VuXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IDV0aCBnZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUT1JBR0U3X0lOVEVMX1NUT1JBR0VfT1BUSU1JWkVEID0gXCJzdG9yYWdlNy1pbnRlbC1zdG9yYWdlLW9wdGltaXplZFwiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSA1dGggZ2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJN0lFID0gXCJpN2llXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uNCBwcm9jZXNzb3IsIDh0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVE9SQUdFOF9HUkFWSVRPTiA9IFwic3RvcmFnZTgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogU3RvcmFnZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR3Jhdml0b240IHByb2Nlc3NvciwgOHRoIGdlbmVyYXRpb25cbiAgICovXG4gIEk4RyA9IFwiaThnXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBCVVJTVEFCTEUyID0gXCJidXJzdGFibGUyXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBUMiA9IFwidDJcIixcblxuICAvKipcbiAgICogQnVyc3RhYmxlIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEJVUlNUQUJMRTMgPSBcImJ1cnN0YWJsZTNcIixcblxuICAvKipcbiAgICogQnVyc3RhYmxlIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIFQzID0gXCJ0M1wiLFxuXG4gIC8qKlxuICAgKiBCdXJzdGFibGUgaW5zdGFuY2VzIGJhc2VkIG9uIEFNRCBFUFlDLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgQlVSU1RBQkxFM19BTUQgPSBcImJ1cnN0YWJsZTMtYW1kXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBUM0EgPSBcInQzYVwiLFxuXG4gIC8qKlxuICAgKiBCdXJzdGFibGUgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzXG4gICAqL1xuICBCVVJTVEFCTEU0X0dSQVZJVE9OID0gXCJidXJzdGFibGU0LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICovXG4gIFQ0RyA9IFwidDRnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV8xID0gXCJtZW1vcnktaW50ZW5zaXZlLTFcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBYMSA9IFwieDFcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIGV4dGVuZGVkLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV8xX0VYVEVOREVEID0gXCJtZW1vcnktaW50ZW5zaXZlLTEtZXh0ZW5kZWRcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIGV4dGVuZGVkLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgWDFFID0gXCJ4MWVcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSB0eXBlIGNhbiBiZSB1c2VkIG9ubHkgaW4gUkRTLiBJdCBpcyBub3Qgc3VwcG9ydGVkIGluIEVDMi5cbiAgICovXG4gIE1FTU9SWV9JTlRFTlNJVkVfMl9HUkFWSVRPTjIgPSBcIm1lbW9yeS1pbnRlbnNpdmUtMi1ncmF2aXRvbjJcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSB0eXBlIGNhbiBiZSB1c2VkIG9ubHkgaW4gUkRTLiBJdCBpcyBub3Qgc3VwcG9ydGVkIGluIEVDMi5cbiAgICovXG4gIFgyRyA9IFwieDJnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzLCAybmQgZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBNRU1PUllfSU5URU5TSVZFXzJfR1JBVklUT04yX05WTUVfRFJJVkUgPSBcIm1lbW9yeS1pbnRlbnNpdmUtMi1ncmF2aXRvbjItbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcywgMm5kIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKi9cbiAgWDJHRCA9IFwieDJnZFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcyB3aXRoIGhpZ2hlciBuZXR3b3JrIGJhbmR3aXRoLCBsb2NhbCBOVk1FIGRyaXZlLCBhbmQgZXh0ZW5kZWQgbWVtb3J5LiBJbnRlbCBYZW9uIFNjYWxhYmxlIChJY2UgTGFrZSkgcHJvY2Vzc29yc1xuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV8yX1hUX0lOVEVMID0gXCJtZW1vcnlfaW50ZW5zaXZlXzJfeHRfaW50ZWxcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMgd2l0aCBoaWdoZXIgbmV0d29yayBiYW5kd2l0aCwgbG9jYWwgTlZNRSBkcml2ZSwgYW5kIGV4dGVuZGVkIG1lbW9yeS4gSW50ZWwgWGVvbiBTY2FsYWJsZSAoSWNlIExha2UpIHByb2Nlc3NvcnNcbiAgICovXG4gIFgySUVETiA9IFwieDJpZWRuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzIHdpdGggaGlnaGVyIG5ldHdvcmsgYmFuZHdpdGggYW5kIGxvY2FsIE5WTUUgZHJpdmUsIEludGVsIFhlb24gU2NhbGFibGUgKEljZSBMYWtlKSBwcm9jZXNzb3JzXG4gICAqL1xuICBNRU1PUllfSU5URU5TSVZFXzJfSU5URUwgPSBcIm1lbW9yeV9pbnRlbnNpdmVfMl9pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcyB3aXRoIGhpZ2hlciBuZXR3b3JrIGJhbmR3aXRoIGFuZCBsb2NhbCBOVk1FIGRyaXZlLCBJbnRlbCBYZW9uIFNjYWxhYmxlIChJY2UgTGFrZSkgcHJvY2Vzc29yc1xuICAgKi9cbiAgWDJJRE4gPSBcIngyaWRuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzIHdpdGggaGlnaGVyIG5ldHdvcmsgYmFuZHdpdGggYW5kIHNpbmdsZS10aHJlYWRlZCBwZXJmb3JtYW5jZSwgSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzXG4gICAqL1xuICBNRU1PUllfSU5URU5TSVZFXzJfWFRaX0lOVEVMID0gXCJtZW1vcnlfaW50ZW5zaXZlXzJfeHR6X2ludGVsXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzIHdpdGggaGlnaGVyIG5ldHdvcmsgYmFuZHdpdGggYW5kIHNpbmdsZS10aHJlYWRlZCBwZXJmb3JtYW5jZSwgSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzXG4gICAqL1xuICBYMklFWk4gPSBcIngyaWV6blwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uNCBwcm9jZXNzb3JzLCA4dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV84X0dSQVZJVE9OID0gXCJtZW1vcnktaW50ZW5zaXZlLTgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMgcG93ZXJlZCBieSBHcmF2aXRvbjQgcHJvY2Vzc29ycywgOHRoIGdlbmVyYXRpb25cbiAgICovXG4gIFg4RyA9IFwieDhnXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlcyB3aXRoIGN1c3RvbWl6YWJsZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24sIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBGUEdBMSA9IFwiZnBnYTFcIixcblxuICAvKipcbiAgICogSW5zdGFuY2VzIHdpdGggY3VzdG9taXphYmxlIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiwgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEYxID0gXCJmMVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZXMgd2l0aCBjdXN0b21pemFibGUgaGFyZHdhcmUgYWNjZWxlcmF0aW9uLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgRlBHQTIgPSBcImZwZ2EyXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlcyB3aXRoIGN1c3RvbWl6YWJsZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24sIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBGMiA9IFwiZjJcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTM19TTUFMTCA9IFwiZ3JhcGhpY3MzLXNtYWxsXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBHM1MgPSBcImczc1wiLFxuXG4gIC8qKlxuICAgKiBHcmFwaGljcy1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgR1JBUEhJQ1MzID0gXCJncmFwaGljczNcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEczID0gXCJnM1wiLFxuXG4gIC8qKlxuICAgKiBHcmFwaGljcy1vcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHUkFQSElDUzRfTlZNRV9EUklWRV9ISUdIX1BFUkZPUk1BTkNFID0gXCJncmFwaGljczQtbnZtZS1kcml2ZS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIEc0RE4gPSBcImc0ZG5cIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyBBbmQgUmFkZW9uIFBybyBHUFUgKE5BVkkpIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTNF9BTURfTlZNRV9EUklWRSA9IFwiZ3JhcGhpY3M0LWFtZC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMgQW5kIFJhZGVvbiBQcm8gR1BVIChOQVZJKSB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHNEFEID0gXCJnNGFkXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHUkFQSElDUzUgPSBcImdyYXBoaWNzNVwiLFxuXG4gIC8qKlxuICAgKiBHcmFwaGljcy1vcHRpbWl6ZWQgaW5zdGFuY2VzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgRzUgPSBcImc1XCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBBV1MgR3Jhdml0b24yIFByb2Nlc3NvcnMgYW5kIE5WSURJQSBUNEcgVGVuc29yIENvcmUgR1BVcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTNV9HUkFWSVRPTjIgPSBcImdyYXBoaWNzNS1ncmF2aXRvbjJcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEFXUyBHcmF2aXRvbjIgUHJvY2Vzc29ycyBhbmQgTlZJRElBIFQ0RyBUZW5zb3IgQ29yZSBHUFVzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgRzVHID0gXCJnNWdcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTNiA9IFwiZ3JhcGhpY3M2XCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHNiA9IFwiZzZcIixcblxuICAvKipcbiAgICogQ29zdC1lZmZpY2llbnQgR1BVLWJhc2VkIGluc3RhbmNlcyBmb3IgQUkgaW5mZXJlbmNlIGFuZCBzcGF0aWFsIGNvbXB1dGluZyB3b3JrbG9hZHMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHUkFQSElDUzZfRUZGSUNJRU5UID0gXCJncmFwaGljczYtZWZmaWNpZW50XCIsXG5cbiAgLyoqXG4gICAqIENvc3QtZWZmaWNpZW50IEdQVS1iYXNlZCBpbnN0YW5jZXMgZm9yIEFJIGluZmVyZW5jZSBhbmQgc3BhdGlhbCBjb21wdXRpbmcgd29ya2xvYWRzLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgRzZFID0gXCJnNmVcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICogR3I2IGluc3RhbmNlcyBvZmZlciBhIDE6OCB2Q1BVIHRvIFJBTSByYXRpbywgbWFraW5nIHRoZW0gYmV0dGVyIHN1aXRlZCBmb3IgZ3JhcGhpY3Mgd29ya2xvYWRzIHdpdGggaGlnaGVyIG1lbW9yeSByZXF1aXJlbWVudHMuXG4gICAqL1xuICBHUkFQSElDU19SQU1fNiA9IFwiZ3JhcGhpY3MtcmFtLTZcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICogR3I2IGluc3RhbmNlcyBvZmZlciBhIDE6OCB2Q1BVIHRvIFJBTSByYXRpbywgbWFraW5nIHRoZW0gYmV0dGVyIHN1aXRlZCBmb3IgZ3JhcGhpY3Mgd29ya2xvYWRzIHdpdGggaGlnaGVyIG1lbW9yeSByZXF1aXJlbWVudHMuXG4gICAqL1xuICBHUjYgPSBcImdyNlwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBQQVJBTExFTDIgPSBcInBhcmFsbGVsMlwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBQMiA9IFwicDJcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUwzID0gXCJwYXJhbGxlbDNcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgUDMgPSBcInAzXCIsXG5cbiAgLyoqXG4gICAqIFBhcmFsbGVsLXByb2Nlc3Npbmcgb3B0aW1pemVkIGluc3RhbmNlcyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUwzX05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRSA9IFwicGFyYWxsZWwzLW52bWUtZHJpdmUtaGlnaC1wZXJmb3JtYW5jZVwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIFAzRE4gPSBcInAzZG5cIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgZXh0ZW5kZWQsIDR0aCBnZW5lcmF0aW9uIChpbiBkZXZlbG9wZXIgcHJldmlldylcbiAgICovXG4gIFBBUkFMTEVMNF9OVk1FX0RSSVZFX0VYVEVOREVEID0gXCJwYXJhbGxlbDQtbnZtZS1kcml2ZS1leHRlbmRlZFwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCBleHRlbmRlZCwgNHRoIGdlbmVyYXRpb24gKGluIGRldmVsb3BlciBwcmV2aWV3KVxuICAgKi9cbiAgUDRERSA9IFwicDRkZVwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBQQVJBTExFTDQgPSBcInBhcmFsbGVsNFwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBQNEQgPSBcInA0ZFwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBOVklESUEgSDEwMCBUZW5zb3IgQ29yZSBHUFVzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUw1ID0gXCJwYXJhbGxlbDVcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgTlZJRElBIEgxMDAgVGVuc29yIENvcmUgR1BVcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFA1ID0gXCJwNVwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBOVklESUEgSDIwMCBUZW5zb3IgQ29yZSBHUFVzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUw1X0VYVEVOREVEID0gXCJwYXJhbGxlbDUtZXh0ZW5kZWRcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUDVFID0gXCJwNWVcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZywgbmV0d29yay1vcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgTlZJRElBIEgyMDAgVGVuc29yIENvcmUgR1BVcywgNXRoIGdlbmVyYXRpb25cbiAgICogUDVlbiBpbnN0YW5jZXMgcGFpciBOVklESUEgSDIwMCBUZW5zb3IgQ29yZSBHUFVzIHdpdGggSW50ZWwgU2FwcGhpcmUgUmFwaWRzIENQVSwgZW5hYmxpbmcgR2VuNSBQQ0llIGJldHdlZW4gQ1BVIGFuZCBHUFVcbiAgICovXG4gIFBBUkFMTEVMNV9FWFRFTkRFRF9ORVRXT1JLID0gXCJwYXJhbGxlbDUtZXh0ZW5kZWQtbmV0d29ya1wiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBQNUVOID0gXCJwNWVuXCIsXG5cbiAgLyoqXG4gICAqIEFybSBwcm9jZXNzb3IgYmFzZWQgaW5zdGFuY2VzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgQVJNMSA9IFwiYXJtMVwiLFxuXG4gIC8qKlxuICAgKiBBcm0gcHJvY2Vzc29yIGJhc2VkIGluc3RhbmNlcywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEExID0gXCJhMVwiLFxuXG4gIC8qKlxuICAgKiBBcm0gcHJvY2Vzc29yIGJhc2VkIGluc3RhbmNlcywgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENl9HUkFWSVRPTiA9IFwic3RhbmRhcmQ2LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIEFybSBwcm9jZXNzb3IgYmFzZWQgaW5zdGFuY2VzLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgTTZHID0gXCJtNmdcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIChJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgU1RBTkRBUkQ2X0lOVEVMID0gXCJzdGFuZGFyZDYtaW50ZWxcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIChJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJID0gXCJtNmlcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIChJY2UgTGFrZSkgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA2dGggZ2VuZXJhdGlvbi5cbiAgICovXG4gIFNUQU5EQVJENl9JTlRFTF9OVk1FX0RSSVZFID0gXCJzdGFuZGFyZDYtaW50ZWwtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgKEljZSBMYWtlKSB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJRCA9IFwibTZpZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChjb2RlIG5hbWVkIEljZSBMYWtlKSwgNnRoIGdlbmVyYXRpb24uXG4gICAqL1xuICBTVEFOREFSRDZfSU5URUxfSElHSF9QRVJGT1JNQU5DRSA9IFwic3RhbmRhcmQ2LWludGVsLWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJTiA9IFwibTZpblwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgU1RBTkRBUkQ2X0lOVEVMX05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRSA9IFwic3RhbmRhcmQ2LWludGVsLW52bWUtZHJpdmUtaGlnaC1wZXJmb3JtYW5jZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJRE4gPSBcIm02aWRuXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiAzcmQgR2VuIEFNRCBFUFlDIHByb2Nlc3NvcnMsIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgU1RBTkRBUkQ2X0FNRCA9IFwic3RhbmRhcmQ2LWFtZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gM3JkIEdlbiBBTUQgRVBZQyBwcm9jZXNzb3JzLCA2dGggZ2VuZXJhdGlvbi5cbiAgICovXG4gIE02QSA9IFwibTZhXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKi9cbiAgU1RBTkRBUkQ2X0dSQVZJVE9OMl9OVk1FX0RSSVZFID0gXCJzdGFuZGFyZDYtZ3Jhdml0b24yLW52bWUtZHJpdmVcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBNNkdEID0gXCJtNmdkXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIFNUQU5EQVJEN19HUkFWSVRPTiA9IFwic3RhbmRhcmQ3LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIE03RyA9IFwibTdnXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgOHRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChGcmFua2Z1cnQpLlxuICAgKi9cbiAgU1RBTkRBUkQ4X0dSQVZJVE9OID0gXCJzdGFuZGFyZDgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA4dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uNCBwcm9jZXNzb3JzXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKEZyYW5rZnVydCkuXG4gICAqL1xuICBNOEcgPSBcIm04Z1wiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDd0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24zIHByb2Nlc3NvcnMgYW5kIGxvY2FsIE5WTUUgZHJpdmVcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSBjbGFzcyBpcyBjdXJyZW50bHkgb25seSBhdmFpbGFibGUgaW4gVVMgRWFzdCAoT2hpbyksIFVTIEVhc3QgKE4uIFZpcmdpbmlhKSwgVVMgV2VzdCAoT3JlZ29uKSwgYW5kIEV1cm9wZSAoSXJlbGFuZCkuXG4gICAqL1xuICBTVEFOREFSRDdfR1JBVklUT04zX05WTUVfRFJJVkUgPSBcInN0YW5kYXJkNy1ncmF2aXRvbjMtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDd0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24zIHByb2Nlc3NvcnMgYW5kIGxvY2FsIE5WTUUgZHJpdmVcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSBjbGFzcyBpcyBjdXJyZW50bHkgb25seSBhdmFpbGFibGUgaW4gVVMgRWFzdCAoT2hpbyksIFVTIEVhc3QgKE4uIFZpcmdpbmlhKSwgVVMgV2VzdCAoT3JlZ29uKSwgYW5kIEV1cm9wZSAoSXJlbGFuZCkuXG4gICAqL1xuICBNN0dEID0gXCJtN2dkXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJEN19JTlRFTCA9IFwic3RhbmRhcmQ3LWludGVsXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIE03SSA9IFwibTdpXCIsXG5cbiAgLyoqXG4gICAqIEZsZXhpYmxlIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICogVGhlIE03aS1GbGV4IGluc3RhbmNlcyBkZWxpdmVyIGEgYmFzZWxpbmUgb2YgNDAlIENQVSBwZXJmb3JtYW5jZSwgYW5kIGNhbiBzY2FsZSB1cCB0byBmdWxsIENQVSBwZXJmb3JtYW5jZSA5NSUgb2YgdGhlIHRpbWVcbiAgICovXG4gIFNUQU5EQVJEN19JTlRFTF9GTEVYID0gXCJzdGFuZGFyZDctaW50ZWwtZmxleFwiLFxuXG4gIC8qKlxuICAgKiBGbGV4aWJsZSBpbnN0YW5jZXMgd2l0aCBoaWdoIG1lbW9yeSBhbmQgY29tcHV0ZSBjYXBhY2l0eSBiYXNlZCBvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIChTYXBwaGlyZSBSYXBpZHMpIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uXG4gICAqIFRoZSBNN2ktRmxleCBpbnN0YW5jZXMgZGVsaXZlciBhIGJhc2VsaW5lIG9mIDQwJSBDUFUgcGVyZm9ybWFuY2UsIGFuZCBjYW4gc2NhbGUgdXAgdG8gZnVsbCBDUFUgcGVyZm9ybWFuY2UgOTUlIG9mIHRoZSB0aW1lXG4gICAqL1xuICBNN0lfRkxFWCA9IFwibTdpLWZsZXhcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIDR0aCBnZW5lcmF0aW9uIEFNRCBFUFlDIChjb2RlbmFtZSBHZW5vYSksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDdfQU1EID0gXCJzdGFuZGFyZDctYW1kXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiA0dGggZ2VuZXJhdGlvbiBBTUQgRVBZQyAoY29kZW5hbWUgR2Vub2EpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTTdBID0gXCJtN2FcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgYW5kIGNvbXB1dGUgY2FwYWNpdHkgaW5zdGFuY2VzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9DT01QVVRFX01FTU9SWTEgPSBcImhpZ2gtY29tcHV0ZS1tZW1vcnkxXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGluc3RhbmNlcywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIFoxRCA9IFwiejFkXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkZFUkVOQ0UxID0gXCJpbmZlcmVuY2UxXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkYxID0gXCJpbmYxXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkZFUkVOQ0UyID0gXCJpbmZlcmVuY2UyXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkYyID0gXCJpbmYyXCIsXG5cbiAgLyoqXG4gICAqIE1hY2ludG9zaCBpbnN0YW5jZXMgYnVpbHQgb24gQXBwbGUgTWFjIG1pbmkgY29tcHV0ZXJzLCAxc3QgZ2VuZXJhdGlvbiB3aXRoIEludGVsIHByb2Nlc29yc1xuICAgKi9cbiAgTUFDSU5UT1NIMV9JTlRFTCA9IFwibWFjaW50b3NoMS1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNYWNpbnRvc2ggaW5zdGFuY2VzIGJ1aWx0IG9uIEFwcGxlIE1hYyBtaW5pIGNvbXB1dGVycywgMXN0IGdlbmVyYXRpb24gd2l0aCBJbnRlbCBwcm9jZXNvcnNcbiAgICovXG4gIE1BQzEgPSBcIm1hYzFcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIwIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0xIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQ0lOVE9TSDJfTTEgPSBcIm1hY2ludG9zaDItbTFcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIwIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0xIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQzIgPSBcIm1hYzJcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQ0lOVE9TSDJfTTIgPSBcIm1hY2ludG9zaDItbTJcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQzJfTTIgPSBcIm1hYzItbTJcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIFBybyBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUNJTlRPU0gyX00yX1BSTyA9IFwibWFjaW50b3NoMi1tMi1wcm9cIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIFBybyBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUMyX00yUFJPID0gXCJtYWMyLW0ycHJvXCIsXG5cbiAgLyoqXG4gICAqIE1hY2ludG9zaCBpbnN0YW5jZXMgYnVpbHQgb24gMjAyMiBNYWMgU3R1ZGlvIGhhcmR3YXJlIHBvd2VyZWQgYnkgQXBwbGUgc2lsaWNvbiBNMSBVbHRyYSBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUNJTlRPU0gyX00xX1VMVFJBID0gXCJtYWNpbnRvc2gyLW0xLXVsdHJhXCIsXG5cbiAgLyoqXG4gICAqIE1hY2ludG9zaCBpbnN0YW5jZXMgYnVpbHQgb24gMjAyMiBNYWMgU3R1ZGlvIGhhcmR3YXJlIHBvd2VyZWQgYnkgQXBwbGUgc2lsaWNvbiBNMSBVbHRyYSBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUMyX00xVUxUUkEgPSBcIm1hYzItbTF1bHRyYVwiLFxuXG4gIC8qKlxuICAgKiBNdWx0aS1zdHJlYW0gdmlkZW8gdHJhbnNjb2RpbmcgaW5zdGFuY2VzIGZvciByZXNvbHV0aW9ucyB1cCB0byA0SyBVSEQsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBWSURFT19UUkFOU0NPRElORzEgPSBcInZpZGVvLXRyYW5zY29kaW5nMVwiLFxuXG4gIC8qKlxuICAgKiBNdWx0aS1zdHJlYW0gdmlkZW8gdHJhbnNjb2RpbmcgaW5zdGFuY2VzIGZvciByZXNvbHV0aW9ucyB1cCB0byA0SyBVSEQsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBWVDEgPSBcInZ0MVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBiYXNlZCBvbiBBTUQgRVBZQywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HNl9BTUQgPSBcImhpZ2gtcGVyZm9ybWFuY2UtY29tcHV0aW5nNi1hbWRcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgYmFzZWQgb24gQU1EIEVQWUMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBIUEM2QSA9IFwiaHBjNmFcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGJhc2VkIG9uIDZ0aCBnZW5lcmF0aW9uIHdpdGggSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzICgzcmQgZ2VuZXJhdGlvbiBwcm9jZXNzb3JzIGNvZGUgbmFtZWQgSWNlIExha2UpLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9QRVJGT1JNQU5DRV9DT01QVVRJTkc2X0lOVEVMX05WTUVfRFJJVkUgPSBcImhpZ2gtcGVyZm9ybWFuY2UtY29tcHV0aW5nNi1pbnRlbC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBiYXNlZCBvbiA2dGggZ2VuZXJhdGlvbiB3aXRoIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoM3JkIGdlbmVyYXRpb24gcHJvY2Vzc29ycyBjb2RlIG5hbWVkIEljZSBMYWtlKSwgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIEhQQzZJRCA9IFwiaHBjNmlkXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIGJhc2VkIG9uIEFNRCBFUFlDLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9QRVJGT1JNQU5DRV9DT01QVVRJTkc3X0FNRCA9IFwiaGlnaC1wZXJmb3JtYW5jZS1jb21wdXRpbmc3LWFtZFwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBiYXNlZCBvbiBBTUQgRVBZQywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIEhQQzdBID0gXCJocGM3YVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBiYXNlZCBvbiBHcmF2aXRvbiwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HN19HUkFWSVRPTiA9IFwiaGlnaC1wZXJmb3JtYW5jZS1jb21wdXRpbmc3LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIGJhc2VkIG9uIEdyYXZpdG9uLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSFBDN0cgPSBcImhwYzdnXCIsXG5cbiAgLyoqXG4gICAqIERlZXAgbGVhcm5pbmcgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR2F1ZGkgYWNjZWxlcmF0b3JzIGZyb20gSGFiYW5hIExhYnMgKGFuIEludGVsIGNvbXBhbnkpLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgREVFUF9MRUFSTklORzEgPSBcImRlZXAtbGVhcm5pbmcxXCIsXG5cbiAgLyoqXG4gICAqIERlZXAgbGVhcm5pbmcgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR2F1ZGkgYWNjZWxlcmF0b3JzIGZyb20gSGFiYW5hIExhYnMgKGFuIEludGVsIGNvbXBhbnkpLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgREwxID0gXCJkbDFcIixcblxuICAvKipcbiAgICogRGVlcCBsZWFybmluZyBpbnN0YW5jZXMgcG93ZXJlZCBieSBRdWFsY29tbSBBSSAxMDAgU3RhbmRhcmQgYWNjZWxlcmF0b3JzLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgREVFUF9MRUFSTklORzJfUVVBTENPTU0gPSBcImRlZXAtbGVhcm5pbmcyLXF1YWxjb21tXCIsXG5cbiAgLyoqXG4gICAqIERlZXAgbGVhcm5pbmcgaW5zdGFuY2VzIHBvd2VyZWQgYnkgUXVhbGNvbW0gQUkgMTAwIFN0YW5kYXJkIGFjY2VsZXJhdG9ycywgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIERMMlEgPSBcImRsMnFcIixcbn1cblxuLyoqXG4gKiBJZGVudGlmaWVzIGFuIGluc3RhbmNlJ3MgQ1BVIGFyY2hpdGVjdHVyZVxuICovXG5leHBvcnQgZW51bSBJbnN0YW5jZUFyY2hpdGVjdHVyZSB7XG4gIC8qKlxuICAgKiBBUk02NCBhcmNoaXRlY3R1cmVcbiAgICovXG4gIEFSTV82NCA9IFwiYXJtNjRcIixcblxuICAvKipcbiAgICogeDg2LTY0IGFyY2hpdGVjdHVyZVxuICAgKi9cbiAgWDg2XzY0ID0gXCJ4ODZfNjRcIixcbn1cblxuLyoqXG4gKiBXaGF0IHNpemUgb2YgaW5zdGFuY2UgdG8gdXNlXG4gKi9cbmV4cG9ydCBlbnVtIEluc3RhbmNlU2l6ZSB7XG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIE5BTk8gKG5hbm8pXG4gICAqL1xuICBOQU5PID0gXCJuYW5vXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgTUlDUk8gKG1pY3JvKVxuICAgKi9cbiAgTUlDUk8gPSBcIm1pY3JvXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgU01BTEwgKHNtYWxsKVxuICAgKi9cbiAgU01BTEwgPSBcInNtYWxsXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgTUVESVVNIChtZWRpdW0pXG4gICAqL1xuICBNRURJVU0gPSBcIm1lZGl1bVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIExBUkdFIChsYXJnZSlcbiAgICovXG4gIExBUkdFID0gXCJsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRSAoeGxhcmdlKVxuICAgKi9cbiAgWExBUkdFID0gXCJ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UyICgyeGxhcmdlKVxuICAgKi9cbiAgWExBUkdFMiA9IFwiMnhsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTMgKDN4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UzID0gXCIzeGxhcmdlXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFNCAoNHhsYXJnZSlcbiAgICovXG4gIFhMQVJHRTQgPSBcIjR4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U2ICg2eGxhcmdlKVxuICAgKi9cbiAgWExBUkdFNiA9IFwiNnhsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTggKDh4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U4ID0gXCI4eGxhcmdlXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFOSAoOXhsYXJnZSlcbiAgICovXG4gIFhMQVJHRTkgPSBcIjl4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxMCAoMTB4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxMCA9IFwiMTB4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxMiAoMTJ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxMiA9IFwiMTJ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxNiAoMTZ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxNiA9IFwiMTZ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxOCAoMTh4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxOCA9IFwiMTh4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UyNCAoMjR4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UyNCA9IFwiMjR4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UzMiAoMzJ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UzMiA9IFwiMzJ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U0OCAoNDh4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U0OCA9IFwiNDh4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U1NiAoNTZ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U1NiA9IFwiNTZ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U5NiAoOTZ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U5NiA9IFwiOTZ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxMTIgKDExMnhsYXJnZSlcbiAgICovXG4gIFhMQVJHRTExMiA9IFwiMTEyeGxhcmdlXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFMjI0ICgyMjR4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UyMjQgPSBcIjIyNHhsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTQ4MCAoNDgweGxhcmdlKVxuICAgKi9cbiAgWExBUkdFNDgwID0gXCI0ODB4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBNRVRBTCAobWV0YWwpXG4gICAqL1xuICBNRVRBTCA9IFwibWV0YWxcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxNk1FVEFMIChtZXRhbC0xNnhsKVxuICAgKi9cbiAgWExBUkdFMTZNRVRBTCA9IFwibWV0YWwtMTZ4bFwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTI0TUVUQUwgKG1ldGFsLTI0eGwpXG4gICAqL1xuICBYTEFSR0UyNE1FVEFMID0gXCJtZXRhbC0yNHhsXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFMzJNRVRBTCAobWV0YWwtMzJ4bClcbiAgICovXG4gIFhMQVJHRTMyTUVUQUwgPSBcIm1ldGFsLTMyeGxcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U0OE1FVEFMIChtZXRhbC00OHhsKVxuICAgKi9cbiAgWExBUkdFNDhNRVRBTCA9IFwibWV0YWwtNDh4bFwiLFxufVxuXG4vKipcbiAqIEluc3RhbmNlIHR5cGUgZm9yIEVDMiBpbnN0YW5jZXNcbiAqXG4gKiBUaGlzIGNsYXNzIHRha2VzIGEgbGl0ZXJhbCBzdHJpbmcsIGdvb2QgaWYgeW91IGFscmVhZHlcbiAqIGtub3cgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHR5cGUgeW91IHdhbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZVR5cGUge1xuICAvKipcbiAgICogSW5zdGFuY2UgdHlwZSBmb3IgRUMyIGluc3RhbmNlc1xuICAgKlxuICAgKiBUaGlzIGNsYXNzIHRha2VzIGEgY29tYmluYXRpb24gb2YgYSBjbGFzcyBhbmQgc2l6ZS5cbiAgICpcbiAgICogQmUgYXdhcmUgdGhhdCBub3QgYWxsIGNvbWJpbmF0aW9ucyBvZiBjbGFzcyBhbmQgc2l6ZSBhcmUgYXZhaWxhYmxlLCBhbmQgbm90IGFsbFxuICAgKiBjbGFzc2VzIGFyZSBhdmFpbGFibGUgaW4gYWxsIHJlZ2lvbnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKGluc3RhbmNlQ2xhc3M6IEluc3RhbmNlQ2xhc3MsIGluc3RhbmNlU2l6ZTogSW5zdGFuY2VTaXplKSB7XG4gICAgLy8gSlNJSSBkb2VzIG5vdCBhbGxvdyBlbnVtIHR5cGVzIHRvIGhhdmUgc2FtZSB2YWx1ZS4gU28gdG8gc3VwcG9ydCB0aGUgZW51bSwgdGhlIGVudW0gd2l0aCBzYW1lIHZhbHVlIGhhcyB0byBiZSBtYXBwZWQgbGF0ZXIuXG4gICAgY29uc3QgaW5zdGFuY2VDbGFzc01hcDogUmVjb3JkPEluc3RhbmNlQ2xhc3MsIHN0cmluZz4gPSB7XG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDNdOiBcIm0zXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NM106IFwibTNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENF06IFwibTRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk00XTogXCJtNFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1XTogXCJtNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTVdOiBcIm01XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDVfTlZNRV9EUklWRV06IFwibTVkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNURdOiBcIm01ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X0FNRF06IFwibTVhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNUFdOiBcIm01YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X0FNRF9OVk1FX0RSSVZFXTogXCJtNWFkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNUFEXTogXCJtNWFkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDVfSElHSF9QRVJGT1JNQU5DRV06IFwibTVuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNU5dOiBcIm01blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRV06IFwibTVkblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTVETl06IFwibTVkblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X0hJR0hfQ09NUFVURV06IFwibTV6blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTVaTl06IFwibTV6blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZM106IFwicjNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlIzXTogXCJyM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNF06IFwicjRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI0XTogXCJyNFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNV06IFwicjVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI1XTogXCJyNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNl9BTURdOiBcInI2YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZBXTogXCJyNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfSU5URUxdOiBcInI2aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZJXTogXCJyNmlcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfSU5URUxfTlZNRV9EUklWRV06IFwicjZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZJRF06IFwicjZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNl9JTlRFTF9ISUdIX1BFUkZPUk1BTkNFXTogXCJyNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SNklOXTogXCJyNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk2X0lOVEVMX05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRV06IFwicjZpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI2SUROXTogXCJyNmlkblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNV9ISUdIX1BFUkZPUk1BTkNFXTogXCJyNW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI1Tl06IFwicjVuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk1X05WTUVfRFJJVkVdOiBcInI1ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjVEXTogXCJyNWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTVfTlZNRV9EUklWRV9ISUdIX1BFUkZPUk1BTkNFXTogXCJyNWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SNUROXTogXCJyNWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk1X0FNRF06IFwicjVhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SNUFdOiBcInI1YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNV9BTURfTlZNRV9EUklWRV06IFwicjVhZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjVBRF06IFwicjVhZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9NRU1PUllfM1RCXzFdOiBcInUtM3RiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVV8zVEIxXTogXCJ1LTN0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZXzZUQl8xXTogXCJ1LTZ0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlVfNlRCMV06IFwidS02dGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX01FTU9SWV85VEJfMV06IFwidS05dGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VXzlUQjFdOiBcInUtOXRiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9NRU1PUllfMTJUQl8xXTogXCJ1LTEydGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VXzEyVEIxXTogXCJ1LTEydGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX01FTU9SWV8xOFRCXzFdOiBcInUtMTh0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlVfMThUQjFdOiBcInUtMTh0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZXzI0VEJfMV06IFwidS0yNHRiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVV8yNFRCMV06IFwidS0yNHRiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9NRU1PUllfNlRCXzddOiBcInU3aS02dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlU3SV82VEJdOiBcInU3aS02dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZXzhUQl83XTogXCJ1N2ktOHRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VN0lfOFRCXTogXCJ1N2ktOHRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX01FTU9SWV8xMlRCXzddOiBcInU3aS0xMnRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VN0lfMTJUQl06IFwidTdpLTEydGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18xNlRCXzddOiBcInU3aW4tMTZ0YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVTdJTl8xNlRCXTogXCJ1N2luLTE2dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18yNFRCXzddOiBcInU3aW4tMjR0YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVTdJTl8yNFRCXTogXCJ1N2luLTI0dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18zMlRCXzddOiBcInU3aW4tMzJ0YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVTdJTl8zMlRCXTogXCJ1N2luLTMydGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS19IUEVfMzJUQl83XTogXCJ1N2luaC0zMnRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VN0lOSF8zMlRCXTogXCJ1N2luaC0zMnRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk1X0VCU19PUFRJTUlaRURdOiBcInI1YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjVCXTogXCJyNWJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfR1JBVklUT05dOiBcInI2Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZHXTogXCJyNmdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfR1JBVklUT04yX05WTUVfRFJJVkVdOiBcInI2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI2R0RdOiBcInI2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTdfR1JBVklUT05dOiBcInI3Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjdHXTogXCJyN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTdfR1JBVklUT04zX05WTUVfRFJJVkVdOiBcInI3Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI3R0RdOiBcInI3Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTdfSU5URUxfQkFTRV06IFwicjdpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SN0ldOiBcInI3aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZN19JTlRFTF06IFwicjdpelwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjdJWl06IFwicjdpelwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZN19BTURdOiBcInI3YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjdBXTogXCJyN2FcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWThfR1JBVklUT05dOiBcInI4Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjhHXTogXCJyOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEUzXTogXCJjM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzNdOiBcImMzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNF06IFwiYzRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM0XTogXCJjNFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTVdOiBcImM1XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNV06IFwiYzVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU1X05WTUVfRFJJVkVdOiBcImM1ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzVEXTogXCJjNWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU1X0FNRF06IFwiYzVhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNUFdOiBcImM1YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTVfQU1EX05WTUVfRFJJVkVdOiBcImM1YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM1QURdOiBcImM1YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU1X0hJR0hfUEVSRk9STUFOQ0VdOiBcImM1blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzVOXTogXCJjNW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU2X0lOVEVMXTogXCJjNmlcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM2SV06IFwiYzZpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNl9JTlRFTF9ISUdIX1BFUkZPUk1BTkNFXTogXCJjNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNklOXTogXCJjNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNl9JTlRFTF9OVk1FX0RSSVZFXTogXCJjNmlkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNklEXTogXCJjNmlkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNl9BTURdOiBcImM2YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzZBXTogXCJjNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU2X0dSQVZJVE9OMl06IFwiYzZnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNkddOiBcImM2Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTZfR1JBVklUT04yX05WTUVfRFJJVkVdOiBcImM2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM2R0RdOiBcImM2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU2X0dSQVZJVE9OMl9ISUdIX05FVFdPUktfQkFORFdJRFRIXTogXCJjNmduXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNkdOXTogXCJjNmduXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFN19HUkFWSVRPTjNdOiBcImM3Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzdHXTogXCJjN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU3X0dSQVZJVE9OM19OVk1FX0RSSVZFXTogXCJjN2dkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DN0dEXTogXCJjN2dkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFN19HUkFWSVRPTjNfSElHSF9ORVRXT1JLX0JBTkRXSURUSF06IFwiYzdnblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzdHTl06IFwiYzdnblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTdfSU5URUxdOiBcImM3aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzdJXTogXCJjN2lcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU3X0lOVEVMX0ZMRVhdOiBcImM3aS1mbGV4XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DN0lfRkxFWF06IFwiYzdpLWZsZXhcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU3X0FNRF06IFwiYzdhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DN0FdOiBcImM3YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURThfR1JBVklUT040XTogXCJjOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM4R106IFwiYzhnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFMl06IFwiZDJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkQyXTogXCJkMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RPUkFHRTNdOiBcImQzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5EM106IFwiZDNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUT1JBR0UzX0VOSEFOQ0VEX05FVFdPUktdOiBcImQzZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkQzRU5dOiBcImQzZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlRSQUlOSU5HX0FDQ0VMRVJBVE9SMV06IFwidHJuMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJOMV06IFwidHJuMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJBSU5JTkdfQUNDRUxFUkFUT1IxX0VOSEFOQ0VEX05FVFdPUktdOiBcInRybjFuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5UUk4xTl06IFwidHJuMW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlRSQUlOSU5HX0FDQ0VMRVJBVE9SMl06IFwidHJuMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJOMl06IFwidHJuMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJBSU5JTkdfQUNDRUxFUkFUT1IyX1VMVFJBU0VSVkVSXTogXCJ0cm4ydVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJOMlVdOiBcInRybjJ1XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFX0NPTVBVVEVfMV06IFwiaDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkgxXTogXCJoMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSU8zXTogXCJpM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTNdOiBcImkzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5JTzNfREVOU0VfTlZNRV9EUklWRV06IFwiaTNlblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTNFTl06IFwiaTNlblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RPUkFHRTRfR1JBVklUT05dOiBcImk0Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTRHXTogXCJpNGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUT1JBR0U0X0dSQVZJVE9OX05FVFdPUktfT1BUSU1JWkVEXTogXCJpbTRnblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSU00R05dOiBcImltNGduXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFNF9HUkFWSVRPTl9ORVRXT1JLX1NUT1JBR0VfT1BUSU1JWkVEXTogXCJpczRnZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklTNEdFTl06IFwiaXM0Z2VuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFN19JTlRFTF9TVE9SQUdFX09QVElNSVpFRF06IFwiaTdpZVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTdJRV06IFwiaTdpZVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RPUkFHRThfR1JBVklUT05dOiBcImk4Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSThHXTogXCJpOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTJdOiBcInQyXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5UMl06IFwidDJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTNdOiBcInQzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5UM106IFwidDNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTNfQU1EXTogXCJ0M2FcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlQzQV06IFwidDNhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5CVVJTVEFCTEU0X0dSQVZJVE9OXTogXCJ0NGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlQ0R106IFwidDRnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUllfSU5URU5TSVZFXzFdOiBcIngxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMV06IFwieDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMV9FWFRFTkRFRF06IFwieDFlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMUVdOiBcIngxZVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZX0lOVEVOU0lWRV8yX0dSQVZJVE9OMl06IFwieDJnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMkddOiBcIngyZ1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZX0lOVEVOU0lWRV8yX0dSQVZJVE9OMl9OVk1FX0RSSVZFXTogXCJ4MmdkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMkdEXTogXCJ4MmdkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5GUEdBMV06IFwiZjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkYxXTogXCJmMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuRlBHQTJdOiBcImYyXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5GMl06IFwiZjJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkdSQVBISUNTM19TTUFMTF06IFwiZzNzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HM1NdOiBcImczc1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuR1JBUEhJQ1MzXTogXCJnM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuRzNdOiBcImczXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDUzRfTlZNRV9EUklWRV9ISUdIX1BFUkZPUk1BTkNFXTogXCJnNGRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HNEROXTogXCJnNGRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDUzRfQU1EX05WTUVfRFJJVkVdOiBcImc0YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkc0QURdOiBcImc0YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkdSQVBISUNTNV06IFwiZzVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkc1XTogXCJnNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuR1JBUEhJQ1M1X0dSQVZJVE9OMl06IFwiZzVnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HNUddOiBcImc1Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuR1JBUEhJQ1M2XTogXCJnNlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuRzZdOiBcImc2XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDUzZfRUZGSUNJRU5UXTogXCJnNmVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkc2RV06IFwiZzZlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDU19SQU1fNl06IFwiZ3I2XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUjZdOiBcImdyNlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUEFSQUxMRUwyXTogXCJwMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUDJdOiBcInAyXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QQVJBTExFTDNdOiBcInAzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QM106IFwicDNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlBBUkFMTEVMM19OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0VdOiBcInAzZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlAzRE5dOiBcInAzZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlBBUkFMTEVMNF9OVk1FX0RSSVZFX0VYVEVOREVEXTogXCJwNGRlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QNERFXTogXCJwNGRlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QQVJBTExFTDRdOiBcInA0ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUDREXTogXCJwNGRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlBBUkFMTEVMNV06IFwicDVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlA1XTogXCJwNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUEFSQUxMRUw1X0VYVEVOREVEXTogXCJwYXJhbGxlbDUtZXh0ZW5kZWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlA1RV06IFwicDVlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QQVJBTExFTDVfRVhURU5ERURfTkVUV09SS106IFwicGFyYWxsZWw1LWV4dGVuZGVkLW5ldHdvcmtcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlA1RU5dOiBcInA1ZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkFSTTFdOiBcImExXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5BMV06IFwiYTFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9HUkFWSVRPTl06IFwibTZnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNkddOiBcIm02Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ2X0lOVEVMXTogXCJtNmlcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk02SV06IFwibTZpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDZfSU5URUxfTlZNRV9EUklWRV06IFwibTZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTZJRF06IFwibTZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ2X0lOVEVMX0hJR0hfUEVSRk9STUFOQ0VdOiBcIm02aW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk02SU5dOiBcIm02aW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9JTlRFTF9OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0VdOiBcIm02aWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNklETl06IFwibTZpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9BTURdOiBcIm02YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTZBXTogXCJtNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9HUkFWSVRPTjJfTlZNRV9EUklWRV06IFwibTZnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTZHRF06IFwibTZnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ3X0dSQVZJVE9OXTogXCJtN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk03R106IFwibTdnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDhfR1JBVklUT05dOiBcIm04Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTThHXTogXCJtOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJEN19HUkFWSVRPTjNfTlZNRV9EUklWRV06IFwibTdnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTdHRF06IFwibTdnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ3X0lOVEVMXTogXCJtN2lcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk03SV06IFwibTdpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDdfSU5URUxfRkxFWF06IFwibTdpLWZsZXhcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk03SV9GTEVYXTogXCJtN2ktZmxleFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ3X0FNRF06IFwibTdhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NN0FdOiBcIm03YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9DT01QVVRFX01FTU9SWTFdOiBcInoxZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuWjFEXTogXCJ6MWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORkVSRU5DRTFdOiBcImluZjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORjFdOiBcImluZjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORkVSRU5DRTJdOiBcImluZjJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORjJdOiBcImluZjJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDFfSU5URUxdOiBcIm1hYzFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzFdOiBcIm1hYzFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDJfTTFdOiBcIm1hYzJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzJdOiBcIm1hYzJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDJfTTJdOiBcIm1hYzItbTJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzJfTTJdOiBcIm1hYzItbTJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDJfTTJfUFJPXTogXCJtYWMyLW0ycHJvXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NQUMyX00yUFJPXTogXCJtYWMyLW0ycHJvXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NQUNJTlRPU0gyX00xX1VMVFJBXTogXCJtYWMyLW0xdWx0cmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzJfTTFVTFRSQV06IFwibWFjMi1tMXVsdHJhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5WSURFT19UUkFOU0NPRElORzFdOiBcInZ0MVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVlQxXTogXCJ2dDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HNl9BTURdOiBcImhwYzZhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5IUEM2QV06IFwiaHBjNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HNl9JTlRFTF9OVk1FX0RSSVZFXTogXCJocGM2aWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhQQzZJRF06IFwiaHBjNmlkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX1BFUkZPUk1BTkNFX0NPTVBVVElORzdfQU1EXTogXCJocGM3YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSFBDN0FdOiBcImhwYzdhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX1BFUkZPUk1BTkNFX0NPTVBVVElORzdfR1JBVklUT05dOiBcImhwYzdnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5IUEM3R106IFwiaHBjN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkk0SV06IFwiaTRpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5JTzRfSU5URUxdOiBcImk0aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuWDJJRUROXTogXCJ4MmllZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMl9YVF9JTlRFTF06IFwieDJpZWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMklETl06IFwieDJpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMl9JTlRFTF06IFwieDJpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlgySUVaTl06IFwieDJpZXpuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUllfSU5URU5TSVZFXzhfR1JBVklUT05dOiBcIng4Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuWDhHXTogXCJ4OGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMl9YVFpfSU5URUxdOiBcIngyaWV6blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuREVFUF9MRUFSTklORzFdOiBcImRsMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuREwxXTogXCJkbDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkRFRVBfTEVBUk5JTkcyX1FVQUxDT01NXTogXCJkbDJxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ETDJRXTogXCJkbDJxXCIsXG4gICAgfTtcbiAgICByZXR1cm4gbmV3IEluc3RhbmNlVHlwZShcbiAgICAgIGAke2luc3RhbmNlQ2xhc3NNYXBbaW5zdGFuY2VDbGFzc10gPz8gaW5zdGFuY2VDbGFzc30uJHtpbnN0YW5jZVNpemV9YCxcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbnN0YW5jZVR5cGVJZGVudGlmaWVyOiBzdHJpbmcpIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgaW5zdGFuY2UgdHlwZSBhcyBhIGRvdHRlZCBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlVHlwZUlkZW50aWZpZXI7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlJ3MgQ1BVIGFyY2hpdGVjdHVyZVxuICAgKi9cbiAgcHVibGljIGdldCBhcmNoaXRlY3R1cmUoKTogSW5zdGFuY2VBcmNoaXRlY3R1cmUge1xuICAgIC8vIGNhcHR1cmUgdGhlIGZhbWlseSwgZ2VuZXJhdGlvbiwgY2FwYWJpbGl0aWVzLCBhbmQgc2l6ZSBwb3J0aW9ucyBvZiB0aGUgaW5zdGFuY2UgdHlwZSBpZFxuICAgIGNvbnN0IGluc3RhbmNlVHlwZUNvbXBvbmVudHMgPSB0aGlzLmluc3RhbmNlVHlwZUlkZW50aWZpZXIubWF0Y2goXG4gICAgICAvXihbYS16XSspKFxcZHsxLDJ9KShbYS16XFwtXSopXFwuKFthLXowLTlcXC1dKykkLyxcbiAgICApO1xuICAgIGlmIChpbnN0YW5jZVR5cGVDb21wb25lbnRzID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1hbGZvcm1lZCBpbnN0YW5jZSB0eXBlIGlkZW50aWZpZXJcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZmFtaWx5ID0gaW5zdGFuY2VUeXBlQ29tcG9uZW50c1sxXTtcbiAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBpbnN0YW5jZVR5cGVDb21wb25lbnRzWzNdO1xuXG4gICAgLy8gSW5zdGFuY2UgZmFtaWx5IGBhYCBhcmUgZmlyc3QtZ2VuIEdyYXZpdG9uIGluc3RhbmNlc1xuICAgIC8vIENhcGFiaWxpdHkgYGdgIGluZGljYXRlcyB0aGUgaW5zdGFuY2UgaXMgR3Jhdml0b24yIHBvd2VyZWRcbiAgICBpZiAoZmFtaWx5ID09PSBcImFcIiB8fCBjYXBhYmlsaXRpZXMuaW5jbHVkZXMoXCJnXCIpKSB7XG4gICAgICByZXR1cm4gSW5zdGFuY2VBcmNoaXRlY3R1cmUuQVJNXzY0O1xuICAgIH1cblxuICAgIHJldHVybiBJbnN0YW5jZUFyY2hpdGVjdHVyZS5YODZfNjQ7XG4gIH1cblxuICBwdWJsaWMgc2FtZUluc3RhbmNlQ2xhc3NBcyhvdGhlcjogSW5zdGFuY2VUeXBlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5zdGFuY2VDbGFzczogUmVnRXhwID0gL14oW2Etel0rXFxkezEsMn1bYS16XFwtXSopXFwuKFthLXowLTlcXC1dKykkLztcbiAgICBjb25zdCBpbnN0YW5jZUNsYXNzSWQgPSB0aGlzLmluc3RhbmNlVHlwZUlkZW50aWZpZXIubWF0Y2goaW5zdGFuY2VDbGFzcyk7XG4gICAgY29uc3Qgb3RoZXJJbnN0YW5jZUNsYXNzSWQgPVxuICAgICAgb3RoZXIuaW5zdGFuY2VUeXBlSWRlbnRpZmllci5tYXRjaChpbnN0YW5jZUNsYXNzKTtcbiAgICBpZiAoaW5zdGFuY2VDbGFzc0lkID09IG51bGwgfHwgb3RoZXJJbnN0YW5jZUNsYXNzSWQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWFsZm9ybWVkIGluc3RhbmNlIHR5cGUgaWRlbnRpZmllclwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlQ2xhc3NJZFsxXSA9PT0gb3RoZXJJbnN0YW5jZUNsYXNzSWRbMV07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBpbnN0YW5jZSB0eXBlIGlzIGEgYnVyc3RhYmxlIGluc3RhbmNlIHR5cGVcbiAgICovXG4gIHB1YmxpYyBpc0J1cnN0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbnN0YW5jZVR5cGVJZGVudGlmaWVyLnN0YXJ0c1dpdGgoXCJ0M1wiKSB8fFxuICAgICAgdGhpcy5pbnN0YW5jZVR5cGVJZGVudGlmaWVyLnN0YXJ0c1dpdGgoXCJ0NGdcIikgfHxcbiAgICAgIHRoaXMuaW5zdGFuY2VUeXBlSWRlbnRpZmllci5zdGFydHNXaXRoKFwidDJcIilcbiAgICApO1xuICB9XG59XG4iXX0=