@cdk_utils/iam 1.28.0 → 1.30.0

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 (470) hide show
  1. package/.jsii +2 -2
  2. package/lib/generated/index.d.ts +1 -0
  3. package/lib/generated/index.js +7 -6
  4. package/lib/generated/services/a2c.js +1 -1
  5. package/lib/generated/services/a4b.js +3 -3
  6. package/lib/generated/services/access-analyzer.js +4 -4
  7. package/lib/generated/services/account-access.js +4 -4
  8. package/lib/generated/services/account.js +4 -4
  9. package/lib/generated/services/acm-pca.js +4 -4
  10. package/lib/generated/services/acm.js +4 -4
  11. package/lib/generated/services/aco-automation.js +4 -4
  12. package/lib/generated/services/action-recommendations.js +1 -1
  13. package/lib/generated/services/activate.js +1 -1
  14. package/lib/generated/services/agent-registry.js +4 -4
  15. package/lib/generated/services/agentaccess-mcp.js +2 -2
  16. package/lib/generated/services/aidevops.js +4 -4
  17. package/lib/generated/services/aiops.js +4 -4
  18. package/lib/generated/services/airflow-serverless.js +4 -4
  19. package/lib/generated/services/airflow.js +4 -4
  20. package/lib/generated/services/amplify.js +4 -4
  21. package/lib/generated/services/amplifybackend.js +3 -3
  22. package/lib/generated/services/amplifyuibuilder.js +4 -4
  23. package/lib/generated/services/aoss.js +4 -4
  24. package/lib/generated/services/apigateway.js +4 -4
  25. package/lib/generated/services/app-integrations.js +4 -4
  26. package/lib/generated/services/appconfig.js +4 -4
  27. package/lib/generated/services/appfabric.js +4 -4
  28. package/lib/generated/services/appflow.js +4 -4
  29. package/lib/generated/services/application-autoscaling.js +4 -4
  30. package/lib/generated/services/application-signals-mcp.js +3 -3
  31. package/lib/generated/services/application-signals.js +4 -4
  32. package/lib/generated/services/application-transformation.js +1 -1
  33. package/lib/generated/services/applicationinsights.js +3 -3
  34. package/lib/generated/services/appmesh-preview.js +2 -2
  35. package/lib/generated/services/appmesh.js +4 -4
  36. package/lib/generated/services/apprunner.js +4 -4
  37. package/lib/generated/services/appstream.js +4 -4
  38. package/lib/generated/services/appstudio.js +2 -2
  39. package/lib/generated/services/appsync.js +4 -4
  40. package/lib/generated/services/apptest.js +3 -3
  41. package/lib/generated/services/aps.js +4 -4
  42. package/lib/generated/services/arc-region-switch.js +4 -4
  43. package/lib/generated/services/arc-zonal-shift.js +4 -4
  44. package/lib/generated/services/arsenal.js +1 -1
  45. package/lib/generated/services/artifact.js +4 -4
  46. package/lib/generated/services/athena.js +4 -4
  47. package/lib/generated/services/auditmanager.js +4 -4
  48. package/lib/generated/services/autoscaling-plans.js +2 -2
  49. package/lib/generated/services/autoscaling.js +4 -4
  50. package/lib/generated/services/aws-external-anthropic.js +3 -3
  51. package/lib/generated/services/aws-marketplace-management.js +1 -1
  52. package/lib/generated/services/aws-marketplace.js +4 -4
  53. package/lib/generated/services/aws-portal.js +1 -1
  54. package/lib/generated/services/awsconnector.js +1 -1
  55. package/lib/generated/services/b2bi.js +4 -4
  56. package/lib/generated/services/backup-gateway.js +4 -4
  57. package/lib/generated/services/backup-search.js +4 -4
  58. package/lib/generated/services/backup-storage.js +1 -1
  59. package/lib/generated/services/backup.js +4 -4
  60. package/lib/generated/services/batch.js +4 -4
  61. package/lib/generated/services/bcm-dashboards.js +4 -4
  62. package/lib/generated/services/bcm-data-exports.js +4 -4
  63. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  64. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  65. package/lib/generated/services/bedrock-agentcore.js +4 -4
  66. package/lib/generated/services/bedrock-mantle.js +3 -3
  67. package/lib/generated/services/bedrock-websearch.js +2 -2
  68. package/lib/generated/services/bedrock.js +4 -4
  69. package/lib/generated/services/billing.d.ts +4 -0
  70. package/lib/generated/services/billing.js +12 -5
  71. package/lib/generated/services/billingconductor.js +4 -4
  72. package/lib/generated/services/braket.js +4 -4
  73. package/lib/generated/services/budgets.js +4 -4
  74. package/lib/generated/services/bugbust.js +3 -3
  75. package/lib/generated/services/cases.js +4 -4
  76. package/lib/generated/services/cassandra.js +4 -4
  77. package/lib/generated/services/ce.js +4 -4
  78. package/lib/generated/services/chatbot.js +4 -4
  79. package/lib/generated/services/chime.js +4 -4
  80. package/lib/generated/services/cleanrooms-ml.js +4 -4
  81. package/lib/generated/services/cleanrooms.js +4 -4
  82. package/lib/generated/services/cloud9.js +4 -4
  83. package/lib/generated/services/clouddirectory.js +3 -3
  84. package/lib/generated/services/cloudformation.js +4 -4
  85. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  86. package/lib/generated/services/cloudfront.js +4 -4
  87. package/lib/generated/services/cloudhsm.js +4 -4
  88. package/lib/generated/services/cloudsearch.js +3 -3
  89. package/lib/generated/services/cloudshell.js +3 -3
  90. package/lib/generated/services/cloudtrail-data.js +4 -4
  91. package/lib/generated/services/cloudtrail.js +4 -4
  92. package/lib/generated/services/cloudwatch.d.ts +122 -0
  93. package/lib/generated/services/cloudwatch.js +217 -5
  94. package/lib/generated/services/codeartifact.js +4 -4
  95. package/lib/generated/services/codebuild.js +4 -4
  96. package/lib/generated/services/codecatalyst.js +4 -4
  97. package/lib/generated/services/codecommit.js +4 -4
  98. package/lib/generated/services/codeconnections.js +9 -6
  99. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  100. package/lib/generated/services/codedeploy.js +4 -4
  101. package/lib/generated/services/codeguru-profiler.js +4 -4
  102. package/lib/generated/services/codeguru-reviewer.js +4 -4
  103. package/lib/generated/services/codeguru-security.js +4 -4
  104. package/lib/generated/services/codeguru.js +1 -1
  105. package/lib/generated/services/codepipeline.js +4 -4
  106. package/lib/generated/services/codestar-connections.js +4 -4
  107. package/lib/generated/services/codestar-notifications.js +4 -4
  108. package/lib/generated/services/codestar.js +3 -3
  109. package/lib/generated/services/codewhisperer.js +3 -3
  110. package/lib/generated/services/cognito-identity.js +4 -4
  111. package/lib/generated/services/cognito-idp.js +4 -4
  112. package/lib/generated/services/cognito-sync.js +3 -3
  113. package/lib/generated/services/comprehend.js +4 -4
  114. package/lib/generated/services/comprehendmedical.js +3 -3
  115. package/lib/generated/services/compute-optimizer.js +3 -3
  116. package/lib/generated/services/config.js +4 -4
  117. package/lib/generated/services/connect-campaigns.js +4 -4
  118. package/lib/generated/services/connect.d.ts +43 -0
  119. package/lib/generated/services/connect.js +45 -6
  120. package/lib/generated/services/consoleapp.js +2 -2
  121. package/lib/generated/services/consolidatedbilling.js +1 -1
  122. package/lib/generated/services/controlcatalog.js +3 -3
  123. package/lib/generated/services/controltower.js +4 -4
  124. package/lib/generated/services/cost-optimization-hub.js +2 -2
  125. package/lib/generated/services/cur.js +4 -4
  126. package/lib/generated/services/customer-verification.js +1 -1
  127. package/lib/generated/services/databrew.js +4 -4
  128. package/lib/generated/services/dataexchange.js +4 -4
  129. package/lib/generated/services/datapipeline.js +4 -4
  130. package/lib/generated/services/datasync.js +4 -4
  131. package/lib/generated/services/datazone.js +4 -4
  132. package/lib/generated/services/dax.js +4 -4
  133. package/lib/generated/services/dbqms.js +1 -1
  134. package/lib/generated/services/deadline.js +4 -4
  135. package/lib/generated/services/detective.js +4 -4
  136. package/lib/generated/services/devicefarm.js +4 -4
  137. package/lib/generated/services/devops-guru.js +4 -4
  138. package/lib/generated/services/directconnect.js +4 -4
  139. package/lib/generated/services/discovery.js +3 -3
  140. package/lib/generated/services/dlm.js +4 -4
  141. package/lib/generated/services/dms.js +4 -4
  142. package/lib/generated/services/docdb-elastic.js +4 -4
  143. package/lib/generated/services/drs.js +4 -4
  144. package/lib/generated/services/ds-data.js +4 -4
  145. package/lib/generated/services/ds.js +4 -4
  146. package/lib/generated/services/dsql.js +4 -4
  147. package/lib/generated/services/dynamodb.js +4 -4
  148. package/lib/generated/services/ebs.js +4 -4
  149. package/lib/generated/services/ec2-instance-connect.js +4 -4
  150. package/lib/generated/services/ec2.d.ts +4 -0
  151. package/lib/generated/services/ec2.js +11 -5
  152. package/lib/generated/services/ec2messages.js +2 -2
  153. package/lib/generated/services/ecr-public.js +4 -4
  154. package/lib/generated/services/ecr.js +4 -4
  155. package/lib/generated/services/ecs-mcp.js +1 -1
  156. package/lib/generated/services/ecs.js +4 -4
  157. package/lib/generated/services/eks-auth.js +4 -4
  158. package/lib/generated/services/eks-mcp.js +1 -1
  159. package/lib/generated/services/eks.js +4 -4
  160. package/lib/generated/services/elasticache.js +6 -5
  161. package/lib/generated/services/elasticbeanstalk.js +4 -4
  162. package/lib/generated/services/elasticfilesystem.js +4 -4
  163. package/lib/generated/services/elasticloadbalancing.js +4 -4
  164. package/lib/generated/services/elasticmapreduce.js +4 -4
  165. package/lib/generated/services/elastictranscoder.js +2 -2
  166. package/lib/generated/services/elemental-activations.js +1 -1
  167. package/lib/generated/services/elemental-appliances-software.js +2 -2
  168. package/lib/generated/services/elemental-inference.js +4 -4
  169. package/lib/generated/services/elemental-support-cases.js +3 -3
  170. package/lib/generated/services/elemental-support-content.js +1 -1
  171. package/lib/generated/services/emr-containers.js +4 -4
  172. package/lib/generated/services/emr-serverless.js +4 -4
  173. package/lib/generated/services/entityresolution.js +4 -4
  174. package/lib/generated/services/es.js +4 -4
  175. package/lib/generated/services/events.d.ts +219 -0
  176. package/lib/generated/services/events.js +243 -5
  177. package/lib/generated/services/eventsbilltoaws.js +3 -3
  178. package/lib/generated/services/evidently.js +3 -3
  179. package/lib/generated/services/evs.js +4 -4
  180. package/lib/generated/services/execute-api.js +4 -4
  181. package/lib/generated/services/finops-agent.js +1 -1
  182. package/lib/generated/services/finspace-api.js +3 -3
  183. package/lib/generated/services/finspace.js +4 -4
  184. package/lib/generated/services/firehose.js +4 -4
  185. package/lib/generated/services/fis.js +4 -4
  186. package/lib/generated/services/fms.js +4 -4
  187. package/lib/generated/services/forecast.js +4 -4
  188. package/lib/generated/services/frauddetector.js +4 -4
  189. package/lib/generated/services/freertos.js +3 -3
  190. package/lib/generated/services/freetier.js +2 -2
  191. package/lib/generated/services/fsx.js +4 -4
  192. package/lib/generated/services/gamelift.js +4 -4
  193. package/lib/generated/services/gameliftstreams.js +4 -4
  194. package/lib/generated/services/geo-maps.js +3 -3
  195. package/lib/generated/services/geo-places.js +3 -3
  196. package/lib/generated/services/geo-routes.js +3 -3
  197. package/lib/generated/services/geo.js +4 -4
  198. package/lib/generated/services/glacier.js +4 -4
  199. package/lib/generated/services/globalaccelerator.js +4 -4
  200. package/lib/generated/services/glue.js +4 -4
  201. package/lib/generated/services/grafana.js +4 -4
  202. package/lib/generated/services/greengrass.js +4 -4
  203. package/lib/generated/services/groundstation.js +4 -4
  204. package/lib/generated/services/groundtruthlabeling.js +1 -1
  205. package/lib/generated/services/guardduty.js +4 -4
  206. package/lib/generated/services/health-agent.js +4 -4
  207. package/lib/generated/services/health.js +4 -4
  208. package/lib/generated/services/healthlake.js +4 -4
  209. package/lib/generated/services/honeycode.js +2 -2
  210. package/lib/generated/services/iam.js +4 -4
  211. package/lib/generated/services/identity-sync.js +2 -2
  212. package/lib/generated/services/identitystore-auth.js +1 -1
  213. package/lib/generated/services/identitystore.js +4 -4
  214. package/lib/generated/services/imagebuilder.js +4 -4
  215. package/lib/generated/services/importexport.js +2 -2
  216. package/lib/generated/services/inspector-scan.js +2 -2
  217. package/lib/generated/services/inspector.js +2 -2
  218. package/lib/generated/services/inspector2-telemetry.js +1 -1
  219. package/lib/generated/services/inspector2.js +4 -4
  220. package/lib/generated/services/interconnect.js +4 -4
  221. package/lib/generated/services/internetmonitor.js +4 -4
  222. package/lib/generated/services/invoicing.js +4 -4
  223. package/lib/generated/services/iot-device-tester.js +1 -1
  224. package/lib/generated/services/iot.js +4 -4
  225. package/lib/generated/services/iotanalytics.js +3 -3
  226. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  227. package/lib/generated/services/iotevents.js +3 -3
  228. package/lib/generated/services/iotfleethub.js +3 -3
  229. package/lib/generated/services/iotfleetwise.js +4 -4
  230. package/lib/generated/services/iotjobsdata.js +4 -4
  231. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  232. package/lib/generated/services/iotsitewise.js +4 -4
  233. package/lib/generated/services/iottwinmaker.js +4 -4
  234. package/lib/generated/services/iotwireless.js +4 -4
  235. package/lib/generated/services/iq-permission.js +2 -2
  236. package/lib/generated/services/iq.js +2 -2
  237. package/lib/generated/services/ivs.js +4 -4
  238. package/lib/generated/services/ivschat.js +4 -4
  239. package/lib/generated/services/kafka-cluster.js +3 -3
  240. package/lib/generated/services/kafka.js +4 -4
  241. package/lib/generated/services/kafkaconnect.js +4 -4
  242. package/lib/generated/services/kendra-ranking.js +4 -4
  243. package/lib/generated/services/kendra.js +4 -4
  244. package/lib/generated/services/kinesis.d.ts +4 -0
  245. package/lib/generated/services/kinesis.js +12 -5
  246. package/lib/generated/services/kinesisanalytics.js +4 -4
  247. package/lib/generated/services/kinesisvideo.js +4 -4
  248. package/lib/generated/services/kms.js +4 -4
  249. package/lib/generated/services/lakeformation.js +3 -3
  250. package/lib/generated/services/lambda.js +4 -4
  251. package/lib/generated/services/launchwizard.js +4 -4
  252. package/lib/generated/services/lex.js +4 -4
  253. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  254. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  255. package/lib/generated/services/license-manager.js +4 -4
  256. package/lib/generated/services/lightsail.js +4 -4
  257. package/lib/generated/services/logs.d.ts +2 -0
  258. package/lib/generated/services/logs.js +8 -5
  259. package/lib/generated/services/lookoutequipment.js +4 -4
  260. package/lib/generated/services/lookoutmetrics.js +3 -3
  261. package/lib/generated/services/lookoutvision.js +3 -3
  262. package/lib/generated/services/m2.js +4 -4
  263. package/lib/generated/services/machinelearning.js +3 -3
  264. package/lib/generated/services/macie2.js +4 -4
  265. package/lib/generated/services/managedblockchain-query.js +2 -2
  266. package/lib/generated/services/managedblockchain.js +4 -4
  267. package/lib/generated/services/mapcredits.js +2 -2
  268. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  269. package/lib/generated/services/mechanicalturk.js +2 -2
  270. package/lib/generated/services/mediaconnect.js +4 -4
  271. package/lib/generated/services/mediaconvert.js +4 -4
  272. package/lib/generated/services/mediaimport.js +1 -1
  273. package/lib/generated/services/medialive.js +4 -4
  274. package/lib/generated/services/mediapackage-vod.js +4 -4
  275. package/lib/generated/services/mediapackage.js +4 -4
  276. package/lib/generated/services/mediapackagev2.js +4 -4
  277. package/lib/generated/services/mediastore.js +4 -4
  278. package/lib/generated/services/mediatailor.js +4 -4
  279. package/lib/generated/services/medical-imaging.js +4 -4
  280. package/lib/generated/services/memorydb.js +4 -4
  281. package/lib/generated/services/mgh.js +4 -4
  282. package/lib/generated/services/mgn.js +4 -4
  283. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  284. package/lib/generated/services/migrationhub-strategy.js +2 -2
  285. package/lib/generated/services/mobileanalytics.js +1 -1
  286. package/lib/generated/services/mobiletargeting.js +4 -4
  287. package/lib/generated/services/monitron.js +3 -3
  288. package/lib/generated/services/mpa.js +4 -4
  289. package/lib/generated/services/mq.js +4 -4
  290. package/lib/generated/services/neptune-db.js +4 -4
  291. package/lib/generated/services/neptune-graph.js +4 -4
  292. package/lib/generated/services/network-firewall.js +4 -4
  293. package/lib/generated/services/network-security-director.js +1 -1
  294. package/lib/generated/services/network-security-manager.d.ts +674 -0
  295. package/lib/generated/services/network-security-manager.js +778 -0
  296. package/lib/generated/services/networkflowmonitor.js +4 -4
  297. package/lib/generated/services/networkmanager-chat.js +1 -1
  298. package/lib/generated/services/networkmanager.js +4 -4
  299. package/lib/generated/services/networkmonitor.js +4 -4
  300. package/lib/generated/services/nimble.js +3 -3
  301. package/lib/generated/services/notifications-contacts.js +4 -4
  302. package/lib/generated/services/notifications.js +4 -4
  303. package/lib/generated/services/nova-act.js +3 -3
  304. package/lib/generated/services/oam.js +37 -20
  305. package/lib/generated/services/observabilityadmin.d.ts +61 -0
  306. package/lib/generated/services/observabilityadmin.js +77 -8
  307. package/lib/generated/services/odb.js +4 -4
  308. package/lib/generated/services/omics.js +4 -4
  309. package/lib/generated/services/one.js +3 -3
  310. package/lib/generated/services/opensearch.js +3 -3
  311. package/lib/generated/services/opsworks-cm.js +2 -2
  312. package/lib/generated/services/opsworks.js +2 -2
  313. package/lib/generated/services/organizations.js +4 -4
  314. package/lib/generated/services/osis.js +4 -4
  315. package/lib/generated/services/outposts.js +4 -4
  316. package/lib/generated/services/panorama.js +3 -3
  317. package/lib/generated/services/partnercentral-account-management.js +2 -2
  318. package/lib/generated/services/partnercentral.js +4 -4
  319. package/lib/generated/services/payment-cryptography.js +4 -4
  320. package/lib/generated/services/payments.js +3 -3
  321. package/lib/generated/services/pca-connector-ad.js +4 -4
  322. package/lib/generated/services/pca-connector-scep.js +4 -4
  323. package/lib/generated/services/pcs.js +4 -4
  324. package/lib/generated/services/personalize.js +4 -4
  325. package/lib/generated/services/pi.js +4 -4
  326. package/lib/generated/services/pipes.js +4 -4
  327. package/lib/generated/services/polly.js +3 -3
  328. package/lib/generated/services/pricing.js +2 -2
  329. package/lib/generated/services/pricingplanmanager.js +3 -3
  330. package/lib/generated/services/private-networks.js +3 -3
  331. package/lib/generated/services/profile.js +4 -4
  332. package/lib/generated/services/proton.js +4 -4
  333. package/lib/generated/services/purchase-orders.js +3 -3
  334. package/lib/generated/services/q.js +3 -3
  335. package/lib/generated/services/qapps.js +4 -4
  336. package/lib/generated/services/qbusiness.js +4 -4
  337. package/lib/generated/services/qdeveloper.js +3 -3
  338. package/lib/generated/services/qldb.js +3 -3
  339. package/lib/generated/services/quicksight.js +4 -4
  340. package/lib/generated/services/ram.js +4 -4
  341. package/lib/generated/services/rbin.js +4 -4
  342. package/lib/generated/services/rds-data.js +4 -4
  343. package/lib/generated/services/rds-db.js +2 -2
  344. package/lib/generated/services/rds.js +4 -4
  345. package/lib/generated/services/redshift-data.js +4 -4
  346. package/lib/generated/services/redshift-serverless.js +4 -4
  347. package/lib/generated/services/redshift.js +4 -4
  348. package/lib/generated/services/refactor-spaces.js +4 -4
  349. package/lib/generated/services/rekognition.js +4 -4
  350. package/lib/generated/services/repostspace.js +4 -4
  351. package/lib/generated/services/researchstudio.js +1 -1
  352. package/lib/generated/services/resiliencehub.js +4 -4
  353. package/lib/generated/services/resource-explorer-2.js +4 -4
  354. package/lib/generated/services/resource-explorer.js +1 -1
  355. package/lib/generated/services/resource-groups.js +4 -4
  356. package/lib/generated/services/rhelkb.js +1 -1
  357. package/lib/generated/services/robomaker.js +3 -3
  358. package/lib/generated/services/rolesanywhere.js +4 -4
  359. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  360. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  361. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  362. package/lib/generated/services/route53.js +4 -4
  363. package/lib/generated/services/route53domains.js +2 -2
  364. package/lib/generated/services/route53globalresolver.js +4 -4
  365. package/lib/generated/services/route53profiles.js +4 -4
  366. package/lib/generated/services/route53resolver.js +4 -4
  367. package/lib/generated/services/rtbfabric.js +4 -4
  368. package/lib/generated/services/rum.js +4 -4
  369. package/lib/generated/services/s3-object-lambda.js +3 -3
  370. package/lib/generated/services/s3-outposts.js +4 -4
  371. package/lib/generated/services/s3.js +4 -4
  372. package/lib/generated/services/s3express.js +3 -3
  373. package/lib/generated/services/s3files.js +4 -4
  374. package/lib/generated/services/s3tables.js +4 -4
  375. package/lib/generated/services/s3vectors.js +4 -4
  376. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  377. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  378. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  379. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  380. package/lib/generated/services/sagemaker.js +4 -4
  381. package/lib/generated/services/savingsplans.js +4 -4
  382. package/lib/generated/services/scheduler.js +4 -4
  383. package/lib/generated/services/schemas.js +4 -4
  384. package/lib/generated/services/scn.js +4 -4
  385. package/lib/generated/services/sdb.js +3 -3
  386. package/lib/generated/services/secretsmanager.js +4 -4
  387. package/lib/generated/services/security-ir.js +4 -4
  388. package/lib/generated/services/securityagent.js +4 -4
  389. package/lib/generated/services/securityhub.js +4 -4
  390. package/lib/generated/services/securitylake.js +4 -4
  391. package/lib/generated/services/serverlessrepo.js +4 -4
  392. package/lib/generated/services/servicecatalog.js +4 -4
  393. package/lib/generated/services/servicediscovery.js +4 -4
  394. package/lib/generated/services/serviceextract.js +1 -1
  395. package/lib/generated/services/servicequotas.js +4 -4
  396. package/lib/generated/services/ses.js +4 -4
  397. package/lib/generated/services/shield.js +4 -4
  398. package/lib/generated/services/signer.js +4 -4
  399. package/lib/generated/services/signin.js +4 -4
  400. package/lib/generated/services/simspaceweaver.js +3 -3
  401. package/lib/generated/services/sms-voice.js +4 -4
  402. package/lib/generated/services/sms.js +1 -1
  403. package/lib/generated/services/snow-device-management.js +4 -4
  404. package/lib/generated/services/snowball.js +2 -2
  405. package/lib/generated/services/sns.js +4 -4
  406. package/lib/generated/services/social-messaging.js +4 -4
  407. package/lib/generated/services/sqlworkbench.js +3 -3
  408. package/lib/generated/services/sqs.js +4 -4
  409. package/lib/generated/services/ssm-contacts.js +4 -4
  410. package/lib/generated/services/ssm-guiconnect.js +2 -2
  411. package/lib/generated/services/ssm-incidents.js +4 -4
  412. package/lib/generated/services/ssm-quicksetup.js +4 -4
  413. package/lib/generated/services/ssm-sap.js +4 -4
  414. package/lib/generated/services/ssm.js +4 -4
  415. package/lib/generated/services/ssmmessages.js +2 -2
  416. package/lib/generated/services/sso-directory.js +1 -1
  417. package/lib/generated/services/sso-oauth.js +3 -3
  418. package/lib/generated/services/sso.js +4 -4
  419. package/lib/generated/services/states.js +4 -4
  420. package/lib/generated/services/storagegateway.js +4 -4
  421. package/lib/generated/services/sts.js +4 -4
  422. package/lib/generated/services/support-console.js +1 -1
  423. package/lib/generated/services/support.js +2 -2
  424. package/lib/generated/services/supportapp.js +2 -2
  425. package/lib/generated/services/supportauthz.js +4 -4
  426. package/lib/generated/services/supportplans.js +1 -1
  427. package/lib/generated/services/sustainability.js +2 -2
  428. package/lib/generated/services/swf.js +4 -4
  429. package/lib/generated/services/synthetics.js +4 -4
  430. package/lib/generated/services/tag.js +2 -2
  431. package/lib/generated/services/tax.js +2 -2
  432. package/lib/generated/services/textract.js +4 -4
  433. package/lib/generated/services/thinclient.js +4 -4
  434. package/lib/generated/services/timestream-influxdb.js +4 -4
  435. package/lib/generated/services/timestream.js +4 -4
  436. package/lib/generated/services/tiros.js +1 -1
  437. package/lib/generated/services/tnb.js +4 -4
  438. package/lib/generated/services/transcribe.js +4 -4
  439. package/lib/generated/services/transfer.js +4 -4
  440. package/lib/generated/services/transform-custom.js +3 -3
  441. package/lib/generated/services/transform.js +3 -3
  442. package/lib/generated/services/translate.js +4 -4
  443. package/lib/generated/services/trustedadvisor.js +3 -3
  444. package/lib/generated/services/ts.js +3 -3
  445. package/lib/generated/services/user-subscriptions.js +2 -2
  446. package/lib/generated/services/uxc.js +2 -2
  447. package/lib/generated/services/vendor-insights.js +3 -3
  448. package/lib/generated/services/verified-access.js +1 -1
  449. package/lib/generated/services/verifiedpermissions.js +4 -4
  450. package/lib/generated/services/voiceid.js +4 -4
  451. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  452. package/lib/generated/services/vpc-lattice.js +4 -4
  453. package/lib/generated/services/vpce.js +2 -2
  454. package/lib/generated/services/waf-regional.js +4 -4
  455. package/lib/generated/services/waf.js +4 -4
  456. package/lib/generated/services/wafv2.d.ts +4 -0
  457. package/lib/generated/services/wafv2.js +11 -5
  458. package/lib/generated/services/wam.js +1 -1
  459. package/lib/generated/services/wellarchitected.js +4 -4
  460. package/lib/generated/services/wickr.js +4 -4
  461. package/lib/generated/services/wisdom.js +4 -4
  462. package/lib/generated/services/workdocs.js +3 -3
  463. package/lib/generated/services/worklink.js +3 -3
  464. package/lib/generated/services/workmail.js +4 -4
  465. package/lib/generated/services/workmailmessageflow.js +3 -3
  466. package/lib/generated/services/workspaces-instances.js +4 -4
  467. package/lib/generated/services/workspaces-web.js +4 -4
  468. package/lib/generated/services/workspaces.js +4 -4
  469. package/lib/generated/services/xray.js +4 -4
  470. package/package.json +1 -1
@@ -16,7 +16,7 @@ class KinesisActions {
16
16
  }
17
17
  exports.KinesisActions = KinesisActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KinesisActions[_a] = { fqn: "@cdk_utils/iam.kinesis.KinesisActions", version: "1.28.0" };
19
+ KinesisActions[_a] = { fqn: "@cdk_utils/iam.kinesis.KinesisActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  KinesisActions.SERVICE_PREFIX = "kinesis";
22
22
  /** [Tagging] kinesis:AddTagsToStream */
@@ -109,6 +109,8 @@ KinesisActions.UpdateMaxRecordSize = "kinesis:UpdateMaxRecordSize";
109
109
  KinesisActions.UpdateShardCount = "kinesis:UpdateShardCount";
110
110
  /** [Write] kinesis:UpdateStreamMode */
111
111
  KinesisActions.UpdateStreamMode = "kinesis:UpdateStreamMode";
112
+ /** [Write] kinesis:UpdateStreamRecordDistributionStrategy */
113
+ KinesisActions.UpdateStreamRecordDistributionStrategy = "kinesis:UpdateStreamRecordDistributionStrategy";
112
114
  /** [Write] kinesis:UpdateStreamWarmThroughput */
113
115
  KinesisActions.UpdateStreamWarmThroughput = "kinesis:UpdateStreamWarmThroughput";
114
116
  /** All read-level actions. */
@@ -152,6 +154,7 @@ KinesisActions.AllWriteActions = [
152
154
  KinesisActions.UpdateMaxRecordSize,
153
155
  KinesisActions.UpdateShardCount,
154
156
  KinesisActions.UpdateStreamMode,
157
+ KinesisActions.UpdateStreamRecordDistributionStrategy,
155
158
  KinesisActions.UpdateStreamWarmThroughput,
156
159
  ];
157
160
  /** All list-level actions. */
@@ -297,7 +300,7 @@ class KinesisResources {
297
300
  }
298
301
  exports.KinesisResources = KinesisResources;
299
302
  _b = JSII_RTTI_SYMBOL_1;
300
- KinesisResources[_b] = { fqn: "@cdk_utils/iam.kinesis.KinesisResources", version: "1.28.0" };
303
+ KinesisResources[_b] = { fqn: "@cdk_utils/iam.kinesis.KinesisResources", version: "1.30.0" };
301
304
  /**
302
305
  * API operation to required IAM actions mapping for kinesis.
303
306
  */
@@ -305,7 +308,7 @@ class KinesisOperations {
305
308
  }
306
309
  exports.KinesisOperations = KinesisOperations;
307
310
  _c = JSII_RTTI_SYMBOL_1;
308
- KinesisOperations[_c] = { fqn: "@cdk_utils/iam.kinesis.KinesisOperations", version: "1.28.0" };
311
+ KinesisOperations[_c] = { fqn: "@cdk_utils/iam.kinesis.KinesisOperations", version: "1.30.0" };
309
312
  /** IAM actions required for the AddTagsToStream API call. */
310
313
  KinesisOperations.AddTagsToStream = ["kinesis:AddTagsToStream"];
311
314
  /** IAM actions required for the CreateChannel API call. */
@@ -435,6 +438,10 @@ KinesisOperations.UpdateMaxRecordSize = [
435
438
  KinesisOperations.UpdateShardCount = ["kinesis:UpdateShardCount"];
436
439
  /** IAM actions required for the UpdateStreamMode API call. */
437
440
  KinesisOperations.UpdateStreamMode = ["kinesis:UpdateStreamMode"];
441
+ /** IAM actions required for the UpdateStreamRecordDistributionStrategy API call. */
442
+ KinesisOperations.UpdateStreamRecordDistributionStrategy = [
443
+ "kinesis:UpdateStreamRecordDistributionStrategy",
444
+ ];
438
445
  /** IAM actions required for the UpdateStreamWarmThroughput API call. */
439
446
  KinesisOperations.UpdateStreamWarmThroughput = [
440
447
  "kinesis:UpdateStreamWarmThroughput",
@@ -482,7 +489,7 @@ class KinesisConditions {
482
489
  }
483
490
  exports.KinesisConditions = KinesisConditions;
484
491
  _d = JSII_RTTI_SYMBOL_1;
485
- KinesisConditions[_d] = { fqn: "@cdk_utils/iam.kinesis.KinesisConditions", version: "1.28.0" };
492
+ KinesisConditions[_d] = { fqn: "@cdk_utils/iam.kinesis.KinesisConditions", version: "1.30.0" };
486
493
  /** Condition keys applicable to the InjectApiError action. */
487
494
  KinesisConditions.InjectApiErrorConditionKeys = [
488
495
  "kinesis:FisActionId",
@@ -501,4 +508,4 @@ KinesisConditions.FIS_ACTION_ID = "kinesis:FisActionId";
501
508
  KinesisConditions.FIS_INJECT_PERCENTAGE = "kinesis:FisInjectPercentage";
502
509
  /** Condition key: kinesis:FisTargetArns (ArrayOfARN) */
503
510
  KinesisConditions.FIS_TARGET_ARNS = "kinesis:FisTargetArns";
504
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMva2luZXNpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELDhDQUE4QztBQUM5QyxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxjQUFjOztBQUEzQix3Q0FrS0M7OztBQWpLQSw4QkFBOEI7QUFDZCw2QkFBYyxHQUFHLFNBQVMsQ0FBQztBQUUzQyx3Q0FBd0M7QUFDeEIsOEJBQWUsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxrREFBa0Q7QUFDbEMsMENBQTJCLEdBQzFDLHFDQUFxQyxDQUFDO0FBQ3ZDLHNDQUFzQztBQUN0Qiw0QkFBYSxHQUFHLHVCQUF1QixDQUFDO0FBQ3hELG1DQUFtQztBQUNuQiwyQkFBWSxHQUFHLHNCQUFzQixDQUFDO0FBQ3RELG9EQUFvRDtBQUNwQyw0Q0FBNkIsR0FDNUMsdUNBQXVDLENBQUM7QUFDekMsb0NBQW9DO0FBQ3BCLDRCQUFhLEdBQUcsdUJBQXVCLENBQUM7QUFDeEQsMkNBQTJDO0FBQzNCLG1DQUFvQixHQUFHLDhCQUE4QixDQUFDO0FBQ3RFLG1DQUFtQztBQUNuQiwyQkFBWSxHQUFHLHNCQUFzQixDQUFDO0FBQ3RELCtDQUErQztBQUMvQix1Q0FBd0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUM5RSw2Q0FBNkM7QUFDN0Isc0NBQXVCLEdBQUcsaUNBQWlDLENBQUM7QUFDNUUscUNBQXFDO0FBQ3JCLDhCQUFlLEdBQUcseUJBQXlCLENBQUM7QUFDNUQsb0NBQW9DO0FBQ3BCLDZCQUFjLEdBQUcsd0JBQXdCLENBQUM7QUFDMUQsb0NBQW9DO0FBQ3BCLDZCQUFjLEdBQUcsd0JBQXdCLENBQUM7QUFDMUQsNENBQTRDO0FBQzVCLHFDQUFzQixHQUFHLGdDQUFnQyxDQUFDO0FBQzFFLDJDQUEy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Q3hDLGtDQUFnQixHQUFHLDJCQUEyQixDQUFDO0FBQy9ELGlEQUFpRDtBQUNqQyw4QkFBWSxHQUFHLGFBQWEsQ0FBQztBQUM3QyxrREFBa0Q7QUFDbEMsK0JBQWEsR0FBRyxxQkFBcUIsQ0FBQztBQUN0RCwyREFBMkQ7QUFDM0MsdUNBQXFCLEdBQUcsNkJBQTZCLENBQUM7QUFDdEUsd0RBQXdEO0FBQ3hDLGlDQUFlLEdBQUcsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9raW5lc2lzLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBraW5lc2lzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaW5lc2lzQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcImtpbmVzaXNcIjtcblxuXHQvKiogW1RhZ2dpbmddIGtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBBZGRUYWdzVG9TdHJlYW0gPSBcImtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6QXNzb2NpYXRlU3RyZWFtc1dpdGhDaGFubmVsICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVTdHJlYW1zV2l0aENoYW5uZWwgPVxuXHRcdFwia2luZXNpczpBc3NvY2lhdGVTdHJlYW1zV2l0aENoYW5uZWxcIjtcblx0LyoqIFtUYWdnaW5nXSBraW5lc2lzOkNyZWF0ZUNoYW5uZWwgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNoYW5uZWwgPSBcImtpbmVzaXM6Q3JlYXRlQ2hhbm5lbFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkNyZWF0ZVN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3RyZWFtID0gXCJraW5lc2lzOkNyZWF0ZVN0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kICovXG5cdHN0YXRpYyByZWFkb25seSBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCA9XG5cdFx0XCJraW5lc2lzOkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVsZXRlQ2hhbm5lbCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2hhbm5lbCA9IFwia2luZXNpczpEZWxldGVDaGFubmVsXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVsZXRlUmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5ID0gXCJraW5lc2lzOkRlbGV0ZVJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVsZXRlU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTdHJlYW0gPSBcImtpbmVzaXM6RGVsZXRlU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgPSBcImtpbmVzaXM6RGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZUFjY291bnRTZXR0aW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgPSBcImtpbmVzaXM6RGVzY3JpYmVBY2NvdW50U2V0dGluZ3NcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlQ2hhbm5lbCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDaGFubmVsID0gXCJraW5lc2lzOkRlc2NyaWJlQ2hhbm5lbFwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6RGVzY3JpYmVMaW1pdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTGltaXRzID0gXCJraW5lc2lzOkRlc2NyaWJlTGltaXRzXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZVN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTdHJlYW0gPSBcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1cIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlU3RyZWFtQ29uc3VtZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU3RyZWFtQ29uc3VtZXIgPSBcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1Db25zdW1lclwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6RGVzY3JpYmVTdHJlYW1TdW1tYXJ5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbVN1bW1hcnkgPSBcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1TdW1tYXJ5XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyA9XG5cdFx0XCJraW5lc2lzOkRpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpFbmFibGVFbmhhbmNlZE1vbml0b3JpbmcgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyA9IFwia2luZXNpczpFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkdldFJlY29yZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlY29yZHMgPSBcImtpbmVzaXM6R2V0UmVjb3Jkc1wiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6R2V0UmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlc291cmNlUG9saWN5ID0gXCJraW5lc2lzOkdldFJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpHZXRTaGFyZEl0ZXJhdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTaGFyZEl0ZXJhdG9yID0gXCJraW5lc2lzOkdldFNoYXJkSXRlcmF0b3JcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QgPVxuXHRcdFwia2luZXNpczpJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkluamVjdEFwaUVycm9yICovXG5cdHN0YXRpYyByZWFkb25seSBJbmplY3RBcGlFcnJvciA9IFwia2luZXNpczpJbmplY3RBcGlFcnJvclwiO1xuXHQvKiogW0xpc3RdIGtpbmVzaXM6TGlzdENoYW5uZWxzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2hhbm5lbHMgPSBcImtpbmVzaXM6TGlzdENoYW5uZWxzXCI7XG5cdC8qKiBbTGlzdF0ga2luZXNpczpMaXN0U2hhcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U2hhcmRzID0gXCJraW5lc2lzOkxpc3RTaGFyZHNcIjtcblx0LyoqIFtMaXN0XSBraW5lc2lzOkxpc3RTdHJlYW1Db25zdW1lcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1Db25zdW1lcnMgPSBcImtpbmVzaXM6TGlzdFN0cmVhbUNvbnN1bWVyc1wiO1xuXHQvKiogW0xpc3RdIGtpbmVzaXM6TGlzdFN0cmVhbXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1zID0gXCJraW5lc2lzOkxpc3RTdHJlYW1zXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJraW5lc2lzOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkxpc3RUYWdzRm9yU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclN0cmVhbSA9IFwia2luZXNpczpMaXN0VGFnc0ZvclN0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOk1lcmdlU2hhcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBNZXJnZVNoYXJkcyA9IFwia2luZXNpczpNZXJnZVNoYXJkc1wiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlB1dFJlY29yZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3JkID0gXCJraW5lc2lzOlB1dFJlY29yZFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlB1dFJlY29yZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFJlY29yZHMgPSBcImtpbmVzaXM6UHV0UmVjb3Jkc1wiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlB1dFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZXNvdXJjZVBvbGljeSA9IFwia2luZXNpczpQdXRSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgPSBcImtpbmVzaXM6UmVnaXN0ZXJTdHJlYW1Db25zdW1lclwiO1xuXHQvKiogW1RhZ2dpbmddIGtpbmVzaXM6UmVtb3ZlVGFnc0Zyb21TdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlbW92ZVRhZ3NGcm9tU3RyZWFtID0gXCJraW5lc2lzOlJlbW92ZVRhZ3NGcm9tU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6U3BsaXRTaGFyZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3BsaXRTaGFyZCA9IFwia2luZXNpczpTcGxpdFNoYXJkXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6U3RhcnRTdHJlYW1FbmNyeXB0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFN0cmVhbUVuY3J5cHRpb24gPSBcImtpbmVzaXM6U3RhcnRTdHJlYW1FbmNyeXB0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6U3RvcFN0cmVhbUVuY3J5cHRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BTdHJlYW1FbmNyeXB0aW9uID0gXCJraW5lc2lzOlN0b3BTdHJlYW1FbmNyeXB0aW9uXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpTdWJzY3JpYmVUb1NoYXJkICovXG5cdHN0YXRpYyByZWFkb25seSBTdWJzY3JpYmVUb1NoYXJkID0gXCJraW5lc2lzOlN1YnNjcmliZVRvU2hhcmRcIjtcblx0LyoqIFtUYWdnaW5nXSBraW5lc2lzOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwia2luZXNpczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGtpbmVzaXM6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwia2luZXNpczpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlQWNjb3VudFNldHRpbmdzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBY2NvdW50U2V0dGluZ3MgPSBcImtpbmVzaXM6VXBkYXRlQWNjb3VudFNldHRpbmdzXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlQ2hhbm5lbCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2hhbm5lbCA9IFwia2luZXNpczpVcGRhdGVDaGFubmVsXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlTWF4UmVjb3JkU2l6ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWF4UmVjb3JkU2l6ZSA9IFwia2luZXNpczpVcGRhdGVNYXhSZWNvcmRTaXplXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlU2hhcmRDb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU2hhcmRDb3VudCA9IFwia2luZXNpczpVcGRhdGVTaGFyZENvdW50XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlU3RyZWFtTW9kZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3RyZWFtTW9kZSA9IFwia2luZXNpczpVcGRhdGVTdHJlYW1Nb2RlXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0ID1cblx0XHRcImtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXRcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZUFjY291bnRTZXR0aW5ncyxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZUNoYW5uZWwsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVMaW1pdHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVTdHJlYW0sXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVTdHJlYW1Db25zdW1lcixcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZVN0cmVhbVN1bW1hcnksXG5cdFx0S2luZXNpc0FjdGlvbnMuYWN0aW9uR2V0UmVjb3Jkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5hY3Rpb25HZXRSZXNvdXJjZVBvbGljeSxcblx0XHRLaW5lc2lzQWN0aW9ucy5hY3Rpb25HZXRTaGFyZEl0ZXJhdG9yLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdFx0S2luZXNpc0FjdGlvbnMuTGlzdFRhZ3NGb3JTdHJlYW0sXG5cdFx0S2luZXNpc0FjdGlvbnMuU3Vic2NyaWJlVG9TaGFyZCxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5Bc3NvY2lhdGVTdHJlYW1zV2l0aENoYW5uZWwsXG5cdFx0S2luZXNpc0FjdGlvbnMuQ3JlYXRlU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlbGV0ZUNoYW5uZWwsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVsZXRlUmVzb3VyY2VQb2xpY3ksXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVsZXRlU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlcmVnaXN0ZXJTdHJlYW1Db25zdW1lcixcblx0XHRLaW5lc2lzQWN0aW9ucy5EaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyxcblx0XHRLaW5lc2lzQWN0aW9ucy5JbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCxcblx0XHRLaW5lc2lzQWN0aW9ucy5JbmplY3RBcGlFcnJvcixcblx0XHRLaW5lc2lzQWN0aW9ucy5NZXJnZVNoYXJkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5QdXRSZWNvcmQsXG5cdFx0S2luZXNpc0FjdGlvbnMuUHV0UmVjb3Jkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5QdXRSZXNvdXJjZVBvbGljeSxcblx0XHRLaW5lc2lzQWN0aW9ucy5SZWdpc3RlclN0cmVhbUNvbnN1bWVyLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlNwbGl0U2hhcmQsXG5cdFx0S2luZXNpc0FjdGlvbnMuU3RhcnRTdHJlYW1FbmNyeXB0aW9uLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlN0b3BTdHJlYW1FbmNyeXB0aW9uLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZUFjY291bnRTZXR0aW5ncyxcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVDaGFubmVsLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZU1heFJlY29yZFNpemUsXG5cdFx0S2luZXNpc0FjdGlvbnMuVXBkYXRlU2hhcmRDb3VudCxcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVTdHJlYW1Nb2RlLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0LFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0Q2hhbm5lbHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuTGlzdFNoYXJkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0U3RyZWFtQ29uc3VtZXJzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RTdHJlYW1zLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5BZGRUYWdzVG9TdHJlYW0sXG5cdFx0S2luZXNpc0FjdGlvbnMuQ3JlYXRlQ2hhbm5lbCxcblx0XHRLaW5lc2lzQWN0aW9ucy5SZW1vdmVUYWdzRnJvbVN0cmVhbSxcblx0XHRLaW5lc2lzQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRLaW5lc2lzQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY2hhbm5lbCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc0NoYW5uZWxBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2hhbm5lbElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjaGFubmVsIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzQ2hhbm5lbEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2hhbm5lbElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2hhbm5lbElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb25zdW1lciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc0NvbnN1bWVyQXJuUHJvcHMge1xuXHQvKiogVGhlIFN0cmVhbVR5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHN0cmVhbVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBTdHJlYW1OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzdHJlYW1OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uc3VtZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25zdW1lck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb25zdW1lckNyZWF0aW9uVGltcHN0YW1wIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25zdW1lckNyZWF0aW9uVGltcHN0YW1wOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29uc3VtZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNDb25zdW1lckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtVHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBTdHJlYW1OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbnN1bWVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyQ3JlYXRpb25UaW1wc3RhbXAgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25zdW1lckNyZWF0aW9uVGltcHN0YW1wOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBrbXNLZXkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNLTVNLZXlBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgS2V5SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEga21zS2V5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzS01TS2V5QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBLZXlJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBzdHJlYW0gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNTdHJlYW1Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHN0cmVhbSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1N0cmVhbUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbU5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgQ2hhbm5lbEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpraW5lc2lzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2hhbm5lbFxcLyg/PGNoYW5uZWxJZD5bXjovP10rKSQvO1xuY29uc3QgQ29uc3VtZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2luZXNpczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOig/PHN0cmVhbVR5cGU+W146Lz9dKylcXC8oPzxzdHJlYW1OYW1lPlteOi8/XSspXFwvY29uc3VtZXJcXC8oPzxjb25zdW1lck5hbWU+W146Lz9dKyk6KD88Y29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcD5bXjovP10rKSQvO1xuY29uc3QgS01TS2V5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmttczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmtleVxcLyg/PGtleUlkPlteOi8/XSspJC87XG5jb25zdCBTdHJlYW1Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2luZXNpczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnN0cmVhbVxcLyg/PHN0cmVhbU5hbWU+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBraW5lc2lzIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNoYW5uZWwgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2hhbm5lbChwcm9wczogS2luZXNpc0NoYW5uZWxBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2luZXNpczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjaGFubmVsLyR7cHJvcHMuY2hhbm5lbElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjaGFubmVsIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDaGFubmVsQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENoYW5uZWxBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY2hhbm5lbCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDaGFubmVsQXJuKGFybjogc3RyaW5nKTogS2luZXNpc0NoYW5uZWxBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENoYW5uZWxBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2hhbm5lbCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjaGFubmVsSWQ6IG1hdGNoLmdyb3VwcyEuY2hhbm5lbElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbnN1bWVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbnN1bWVyKHByb3BzOiBLaW5lc2lzQ29uc3VtZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2luZXNpczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifToke3Byb3BzLnN0cmVhbVR5cGV9LyR7cHJvcHMuc3RyZWFtTmFtZX0vY29uc3VtZXIvJHtwcm9wcy5jb25zdW1lck5hbWV9OiR7cHJvcHMuY29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29uc3VtZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbnN1bWVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbnN1bWVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbnN1bWVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbnN1bWVyQXJuKGFybjogc3RyaW5nKTogS2luZXNpc0NvbnN1bWVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25zdW1lckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25zdW1lciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdHJlYW1UeXBlOiBtYXRjaC5ncm91cHMhLnN0cmVhbVR5cGUsXG5cdFx0XHRzdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLnN0cmVhbU5hbWUsXG5cdFx0XHRjb25zdW1lck5hbWU6IG1hdGNoLmdyb3VwcyEuY29uc3VtZXJOYW1lLFxuXHRcdFx0Y29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcDogbWF0Y2guZ3JvdXBzIS5jb25zdW1lckNyZWF0aW9uVGltcHN0YW1wLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGttc0tleSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBrbXNLZXkocHJvcHM6IEtpbmVzaXNLTVNLZXlBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a21zOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmtleS8ke3Byb3BzLmtleUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBrbXNLZXkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEtNU0tleUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBLTVNLZXlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEga21zS2V5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUtNU0tleUFybihhcm46IHN0cmluZyk6IEtpbmVzaXNLTVNLZXlBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEtNU0tleUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBrbXNLZXkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0a2V5SWQ6IG1hdGNoLmdyb3VwcyEua2V5SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc3RyZWFtIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHN0cmVhbShwcm9wczogS2luZXNpc1N0cmVhbUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpraW5lc2lzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnN0cmVhbS8ke3Byb3BzLnN0cmVhbU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHN0cmVhbSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU3RyZWFtQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFN0cmVhbUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzdHJlYW0gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU3RyZWFtQXJuKGFybjogc3RyaW5nKTogS2luZXNpc1N0cmVhbUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU3RyZWFtQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN0cmVhbSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLnN0cmVhbU5hbWUsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Iga2luZXNpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWRkVGFnc1RvU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkVGFnc1RvU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDaGFubmVsIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2hhbm5lbDogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkFzc29jaWF0ZVN0cmVhbXNXaXRoQ2hhbm5lbFwiLFxuXHRcdFwia2luZXNpczpDcmVhdGVDaGFubmVsXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImtpbmVzaXM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3RyZWFtOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtXCIsXG5cdFx0XCJraW5lc2lzOkNyZWF0ZVN0cmVhbVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2hhbm5lbCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNoYW5uZWw6IHN0cmluZ1tdID0gW1wia2luZXNpczpEZWxldGVDaGFubmVsXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXNvdXJjZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVsZXRlUmVzb3VyY2VQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6RGVsZXRlU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFjY291bnRTZXR0aW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkRlc2NyaWJlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ2hhbm5lbCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2hhbm5lbDogc3RyaW5nW10gPSBbXCJraW5lc2lzOkRlc2NyaWJlQ2hhbm5lbFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVMaW1pdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUxpbWl0czogc3RyaW5nW10gPSBbXCJraW5lc2lzOkRlc2NyaWJlTGltaXRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVN0cmVhbSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU3RyZWFtQ29uc3VtZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1Db25zdW1lclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVN0cmVhbVN1bW1hcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbVN1bW1hcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZXNjcmliZVN0cmVhbVN1bW1hcnlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2FibGVFbmhhbmNlZE1vbml0b3Jpbmc6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZzogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZWNvcmRzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6R2V0UmVjb3Jkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVzb3VyY2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6R2V0UmVzb3VyY2VQb2xpY3lcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFNoYXJkSXRlcmF0b3IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNoYXJkSXRlcmF0b3I6IHN0cmluZ1tdID0gW1wia2luZXNpczpHZXRTaGFyZEl0ZXJhdG9yXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6SW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENoYW5uZWxzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENoYW5uZWxzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdENoYW5uZWxzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U2hhcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNoYXJkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOkxpc3RTaGFyZHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTdHJlYW1Db25zdW1lcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RyZWFtQ29uc3VtZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6TGlzdFN0cmVhbUNvbnN1bWVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U3RyZWFtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1zOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdFN0cmVhbXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclN0cmVhbSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdFRhZ3NGb3JTdHJlYW1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIE1lcmdlU2hhcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTWVyZ2VTaGFyZHM6IHN0cmluZ1tdID0gW1wia2luZXNpczpNZXJnZVNoYXJkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0UmVjb3JkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3JkOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6UHV0UmVjb3JkXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRSZWNvcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3Jkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOlB1dFJlY29yZHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFJlc291cmNlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVzb3VyY2VQb2xpY3k6IHN0cmluZ1tdID0gW1wia2luZXNpczpQdXRSZXNvdXJjZVBvbGljeVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVnaXN0ZXJTdHJlYW1Db25zdW1lciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpSZWdpc3RlclN0cmVhbUNvbnN1bWVyXCIsXG5cdFx0XCJraW5lc2lzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlbW92ZVRhZ3NGcm9tU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVtb3ZlVGFnc0Zyb21TdHJlYW06IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpSZW1vdmVUYWdzRnJvbVN0cmVhbVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTcGxpdFNoYXJkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3BsaXRTaGFyZDogc3RyaW5nW10gPSBbXCJraW5lc2lzOlNwbGl0U2hhcmRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U3RyZWFtRW5jcnlwdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOlN0YXJ0U3RyZWFtRW5jcnlwdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wU3RyZWFtRW5jcnlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BTdHJlYW1FbmNyeXB0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6U3RvcFN0cmVhbUVuY3J5cHRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3Vic2NyaWJlVG9TaGFyZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1YnNjcmliZVRvU2hhcmQ6IHN0cmluZ1tdID0gW1wia2luZXNpczpTdWJzY3JpYmVUb1NoYXJkXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQWNjb3VudFNldHRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWNjb3VudFNldHRpbmdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6VXBkYXRlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNoYW5uZWwgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDaGFubmVsOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VXBkYXRlQ2hhbm5lbFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTWF4UmVjb3JkU2l6ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1heFJlY29yZFNpemU6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpVcGRhdGVNYXhSZWNvcmRTaXplXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVNoYXJkQ291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTaGFyZENvdW50OiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VXBkYXRlU2hhcmRDb3VudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU3RyZWFtTW9kZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbU1vZGU6IHN0cmluZ1tdID0gW1wia2luZXNpczpVcGRhdGVTdHJlYW1Nb2RlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTdHJlYW1XYXJtVGhyb3VnaHB1dCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXRcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGtpbmVzaXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaW5lc2lzQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBJbmplY3RBcGlFcnJvciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBJbmplY3RBcGlFcnJvckNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpGaXNBY3Rpb25JZFwiLFxuXHRcdFwia2luZXNpczpGaXNJbmplY3RQZXJjZW50YWdlXCIsXG5cdFx0XCJraW5lc2lzOkZpc1RhcmdldEFybnNcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBraW5lc2lzOkZpc0FjdGlvbklkIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBGSVNfQUNUSU9OX0lEID0gXCJraW5lc2lzOkZpc0FjdGlvbklkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2UgKE51bWVyaWMpICovXG5cdHN0YXRpYyByZWFkb25seSBGSVNfSU5KRUNUX1BFUkNFTlRBR0UgPSBcImtpbmVzaXM6RmlzSW5qZWN0UGVyY2VudGFnZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleToga2luZXNpczpGaXNUYXJnZXRBcm5zIChBcnJheU9mQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRklTX1RBUkdFVF9BUk5TID0gXCJraW5lc2lzOkZpc1RhcmdldEFybnNcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBga2luZXNpczpGaXNBY3Rpb25JZGAuXG5cdCAqL1xuXHRzdGF0aWMgZmlzQWN0aW9uSWQodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJraW5lc2lzOkZpc0FjdGlvbklkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2VgLlxuXHQgKi9cblx0c3RhdGljIGZpc0luamVjdFBlcmNlbnRhZ2UoXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuXHRcdHJldHVybiB7IE51bWVyaWNFcXVhbHM6IHsgXCJraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2VcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGtpbmVzaXM6RmlzVGFyZ2V0QXJuc2AuXG5cdCAqL1xuXHRzdGF0aWMgZmlzVGFyZ2V0QXJucyhcblx0XHR2YWx1ZXM6IHN0cmluZ1tdLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpBcm5FcXVhbHNcIjogeyBcImtpbmVzaXM6RmlzVGFyZ2V0QXJuc1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=
511
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMva2luZXNpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELDhDQUE4QztBQUM5QyxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxjQUFjOztBQUEzQix3Q0FzS0M7OztBQXJLQSw4QkFBOEI7QUFDZCw2QkFBYyxHQUFHLFNBQVMsQ0FBQztBQUUzQyx3Q0FBd0M7QUFDeEIsOEJBQWUsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxrREFBa0Q7QUFDbEMsMENBQTJCLEdBQzFDLHFDQUFxQyxDQUFDO0FBQ3ZDLHNDQUFzQztBQUN0Qiw0QkFBYSxHQUFHLHVCQUF1QixDQUFDO0FBQ3hELG1DQUFtQztBQUNuQiwyQkFBWSxHQUFHLHNCQUFzQixDQUFDO0FBQ3RELG9EQUFvRDtBQUNwQyw0Q0FBNkIsR0FDNUMsdUNBQXVDLENBQUM7QUFDekMsb0NBQW9DO0FBQ3BCLDRCQUFhLEdBQUcsdUJBQXVCLENBQUM7QUFDeEQsMkNBQTJDO0FBQzNCLG1DQUFvQixHQUFHLDhCQUE4QixDQUFDO0FBQ3RFLG1DQUFtQztBQUNuQiwyQkFBWSxHQUFHLHNCQUFzQixDQUFDO0FBQ3RELCtDQUErQztBQUMvQix1Q0FBd0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUM5RSw2Q0FBNkM7QUFDN0Isc0NBQXVCLEdBQUcsaUNBQWlDLENBQUM7QUFDNUUscUNBQXFDO0FBQ3JCLDhCQUFlLEdBQUcseUJBQXlCLENBQUM7QUFDNUQsb0NBQW9DO0FBQ3BCLDZCQUFjLEdBQUcsd0JBQXdCLENBQUM7QUFDMUQsb0NBQW9DO0FBQ3BCLDZCQUFjLEdBQUcsd0JBQXdCLENBQUM7QUFDMUQsNENBQTRDO0FBQzVCLHFDQUFzQixHQUFHLGdDQUFnQyxDQUFDO0FBQzFFLDJDQUEyQztBQUMzQixvQ0FBcUIsR0FBRywrQkFBK0IsQ0FBQztBQUN4RSxnREFBZ0Q7QUFDaEMsd0NBQXlCLEdBQ3hDLG1DQUFtQyxDQUFDO0FBQ3JDLCtDQUErQztBQUMvQix1Q0FBd0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUM5RSxnQ0FBZ0M7QUFDaEIsK0JBQWdCLEdBQUcsb0JBQW9CLENBQUM7QUFDeEQsdUNBQXVDO0FBQ3ZCLHNDQUF1QixHQUFHLDJCQUEyQixDQUFDO0FBQ3RFLHNDQUFzQztBQUN0QixxQ0FBc0IsR0FBRywwQkFBMEIsQ0FBQztBQUNwRSxvREFBb0Q7QUFDcEMsNENBQTZCLEdBQzVDLHVDQUF1QyxDQUFDO0FBQ3pDLHFDQUFxQztBQUNyQiw2QkFBYyxHQUFHLHdCQUF3QixDQUFDO0FBQzFELGtDQUFrQztBQUNsQiwyQkFBWSxHQUFHLHNCQUFzQixDQUFDO0FBQ3RELGdDQUFnQztBQUNoQix5QkFBVSxHQUFHLG9CQUFvQixDQUFDO0FBQ2xELHlDQUF5QztBQUN6QixrQ0FBbUIsR0FBRyw2QkFBNkIsQ0FBQztBQUNwRSxpQ0FBaUM7QUFDakIsMEJBQVcsR0FBRyxxQkFBcUIsQ0FBQztBQUNwRCx5Q0FBeUM7QUFDekIsa0NBQW1CLEdBQUcsNkJBQTZCLENBQUM7QUFDcEUsdUNBQXVDO0FBQ3ZCLGdDQUFpQixHQUFHLDJCQUEyQixDQUFDO0FBQ2hFLGtDQUFrQztBQUNsQiwwQkFBVyxHQUFHLHFCQUFxQixDQUFDO0FBQ3BELGdDQUFnQztBQUNoQix3QkFBUyxHQUFHLG1CQUFtQixDQUFDO0FBQ2hELGlDQUFpQztBQUNqQix5QkFBVSxHQUFHLG9CQUFvQixDQUFDO0FBQ2xELHdDQUF3QztBQUN4QixnQ0FBaUIsR0FBRywyQkFBMkIsQ0FBQztBQUNoRSw2Q0FBNkM7QUFDN0IscUNBQXNCLEdBQUcsZ0NBQWdDLENBQUM7QUFDMUUsNkNBQTZDO0FBQzdCLG1DQUFvQixHQUFHLDhCQUE4QixDQUFDO0FBQ3RFLGlDQUFpQztBQUNqQix5QkFBVSxHQUFHLG9CQUFvQixDQUFDO0FBQ2xELDRDQUE0QztBQUM1QixvQ0FBcUIsR0FBRywrQkFBK0IsQ0FBQztBQUN4RSwyQ0FBMkM7QUFDM0IsbUNBQW9CLEdBQUcsOEJBQThCLENBQUM7QUFDdEUsc0NBQXNDO0FBQ3RCLCtCQUFnQixHQUFHLDBCQUEwQixDQUFDO0FBQzlELG9DQUFvQztBQUNwQiwwQkFBVyxHQUFHLHFCQUFxQixDQUFDO0FBQ3BELHNDQUFzQztBQUN0Qiw0QkFBYSxHQUFHLHVCQUF1QixDQUFDO0FBQ3hELDRDQUE0QztBQUM1QixvQ0FBcUIsR0FBRywrQkFBK0IsQ0FBQztBQUN4RSxvQ0FBb0M7QUFDcEIsNEJBQWEsR0FBRyx1QkFBdUIsQ0FBQztBQUN4RCwwQ0FBMEM7QUFDMUIsa0NBQW1CLEdBQUcsNkJBQTZCLENBQUM7QUFDcEUsdUNBQXVDO0FBQ3ZCLCtCQUFnQixHQUFHLDBCQUEwQixDQUFDO0FBQzlELHVDQUF1QztBQUN2QiwrQkFBZ0IsR0FBRywwQkFBMEIsQ0FBQztBQUM5RCw2REFBNkQ7QUFDN0MscURBQXNDLEdBQ3JELGdEQUFnRCxDQUFDO0FBQ2xELGlEQUFpRDtBQUNqQyx5Q0FBMEIsR0FDekMsb0NBQW9DLENBQUM7QUFFdEMsOEJBQThCO0FBQ2QsNkJBQWMsR0FBYTtJQUMxQyxjQUFjLENBQUMsdUJBQXVCO0lBQ3RDLGNBQWMsQ0FBQyxlQUFlO0lBQzlCLGNBQWMsQ0FBQyxjQUFjO0lBQzdCLGNBQWMsQ0FBQyxjQUFjO0lBQzdCLGNBQWMsQ0FBQyxzQkFBc0I7SUFDckMsY0FBYyxDQUFDLHFCQUFxQjtJQUNwQyxjQUFjLENBQUMsZ0JBQWdCO0lBQy9CLGNBQWMsQ0FBQyx1QkFBdUI7SUFDdEMsY0FBYyxDQUFDLHNCQUFzQjtJQUNyQyxjQUFjLENBQUMsbUJBQW1CO0lBQ2xDLGNBQWMsQ0FBQyxpQkFBaUI7SUFDaEMsY0FBYyxDQUFDLGdCQUFnQjtDQUMvQixDQUFDO0FBQ0YsK0JBQStCO0FBQ2YsOEJBQWUsR0FBYTtJQUMzQyxjQUFjLENBQUMsMkJBQTJCO0lBQzFDLGNBQWMsQ0FBQyxZQUFZO0lBQzNCLGNBQWMsQ0FBQyw2QkFBNkI7SUFDNUMsY0FBYyxDQUFDLGFBQWE7SUFDNUIsY0FBYyxDQUFDLG9CQUFvQjtJQUNuQyxjQUFjLENBQUMsWUFBWTtJQUMzQixjQUFjLENBQUMsd0JBQXdCO0lBQ3ZDLGNBQWMsQ0FBQyx5QkFBeUI7SUFDeEMsY0FBYyxDQUFDLHdCQUF3QjtJQUN2QyxjQUFjLENBQUMsNkJBQTZCO0lBQzVDLGNBQWMsQ0FBQyxjQUFjO0lBQzdCLGNBQWMsQ0FBQyxXQUFXO0lBQzFCLGNBQWMsQ0FBQyxTQUFTO0lBQ3hCLGNBQWMsQ0FBQyxVQUFVO0lBQ3pCLGNBQWMsQ0FBQyxpQkFBaUI7SUFDaEMsY0FBYyxDQUFDLHNCQUFzQjtJQUNyQyxjQUFjLENBQUMsVUFBVTtJQUN6QixjQUFjLENBQUMscUJBQXFCO0lBQ3BDLGNBQWMsQ0FBQyxvQkFBb0I7SUFDbkMsY0FBYyxDQUFDLHFCQUFxQjtJQUNwQyxjQUFjLENBQUMsYUFBYTtJQUM1QixjQUFjLENBQUMsbUJBQW1CO0lBQ2xDLGNBQWMsQ0FBQyxnQkFBZ0I7SUFDL0IsY0FBYyxDQUFDLGdCQUFnQjtJQUMvQixjQUFjLENBQUMsc0NBQXNDO0lBQ3JELGNBQWMsQ0FBQywwQkFBMEI7Q0FDekMsQ0FBQztBQUNGLDhCQUE4QjtBQUNkLDZCQUFjLEdBQWE7SUFDMUMsY0FBYyxDQUFDLFlBQVk7SUFDM0IsY0FBYyxDQUFDLFVBQVU7SUFDekIsY0FBYyxDQUFDLG1CQUFtQjtJQUNsQyxjQUFjLENBQUMsV0FBVztDQUMxQixDQUFDO0FBQ0YsK0NBQStDO0FBQy9CLDZDQUE4QixHQUFhLEVBQUUsQ0FBQztBQUM5RCxpQ0FBaUM7QUFDakIsZ0NBQWlCLEdBQWE7SUFDN0MsY0FBYyxDQUFDLGVBQWU7SUFDOUIsY0FBYyxDQUFDLGFBQWE7SUFDNUIsY0FBYyxDQUFDLG9CQUFvQjtJQUNuQyxjQUFjLENBQUMsV0FBVztJQUMxQixjQUFjLENBQUMsYUFBYTtDQUM1QixDQUFDO0FBK0hILE1BQU0sZUFBZSxHQUNwQixxR0FBcUcsQ0FBQztBQUN2RyxNQUFNLGdCQUFnQixHQUNyQiwrTEFBK0wsQ0FBQztBQUNqTSxNQUFNLGNBQWMsR0FDbkIseUZBQXlGLENBQUM7QUFDM0YsTUFBTSxjQUFjLEdBQ25CLHFHQUFxRyxDQUFDO0FBRXZHOztHQUVHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFDNUI7O09BRUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQTZCO1FBQzNDLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssWUFBWSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsWUFBWSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQVc7UUFDbkMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDakMsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQThCO1FBQzdDLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssWUFBWSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLGFBQWEsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUMzTSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBVztRQUNwQyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQVc7UUFDbEMsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLFVBQVU7WUFDcEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsVUFBVTtZQUNwQyxZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxZQUFZO1lBQ3hDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMseUJBQXlCO1NBQ2xFLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQTRCO1FBQ3pDLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssUUFBUSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsUUFBUSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQVc7UUFDbEMsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVc7UUFDaEMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxLQUFLO1NBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQTRCO1FBQ3pDLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssWUFBWSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsV0FBVyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDNUgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQVc7UUFDbEMsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVc7UUFDaEMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxVQUFVO1NBQ3BDLENBQUM7SUFDSCxDQUFDOztBQTlIRiw0Q0ErSEM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7O0FBQTlCLDhDQTBJQzs7O0FBeklBLDZEQUE2RDtBQUM3QyxpQ0FBZSxHQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUN4RSwyREFBMkQ7QUFDM0MsK0JBQWEsR0FBYTtJQUN6QyxxQ0FBcUM7SUFDckMsdUJBQXVCO0lBQ3ZCLGNBQWM7SUFDZCxxQkFBcUI7Q0FDckIsQ0FBQztBQUNGLDBEQUEwRDtBQUMxQyw4QkFBWSxHQUFhO0lBQ3hDLHlCQUF5QjtJQUN6QixzQkFBc0I7Q0FDdEIsQ0FBQztBQUNGLDJFQUEyRTtBQUMzRCwrQ0FBNkIsR0FBYTtJQUN6RCx1Q0FBdUM7Q0FDdkMsQ0FBQztBQUNGLDJEQUEyRDtBQUMzQywrQkFBYSxHQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNwRSxrRUFBa0U7QUFDbEQsc0NBQW9CLEdBQWE7SUFDaEQsOEJBQThCO0NBQzlCLENBQUM7QUFDRiwwREFBMEQ7QUFDMUMsOEJBQVksR0FBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDbEUsc0VBQXNFO0FBQ3RELDBDQUF3QixHQUFhO0lBQ3BELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YscUVBQXFFO0FBQ3JELHlDQUF1QixHQUFhO0lBQ25ELGlDQUFpQztDQUNqQyxDQUFDO0FBQ0YsNkRBQTZEO0FBQzdDLGlDQUFlLEdBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ3hFLDREQUE0RDtBQUM1QyxnQ0FBYyxHQUFhLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUN0RSw0REFBNEQ7QUFDNUMsZ0NBQWMsR0FBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDdEUsb0VBQW9FO0FBQ3BELHdDQUFzQixHQUFhO0lBQ2xELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELHVDQUFxQixHQUFhO0lBQ2pELCtCQUErQjtDQUMvQixDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELDJDQUF5QixHQUFhO0lBQ3JELG1DQUFtQztDQUNuQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELDBDQUF3QixHQUFhO0lBQ3BELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0Ysd0RBQXdEO0FBQ3hDLDhCQUFZLEdBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ2hFLCtEQUErRDtBQUMvQyxxQ0FBbUIsR0FBYSxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFDOUUsOERBQThEO0FBQzlDLG9DQUFrQixHQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUM1RSwyRUFBMkU7QUFDM0QsK0NBQTZCLEdBQWE7SUFDekQsdUNBQXVDO0NBQ3ZDLENBQUM7QUFDRiwwREFBMEQ7QUFDMUMsOEJBQVksR0FBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDbEUsd0RBQXdEO0FBQ3hDLDRCQUFVLEdBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQzlELGlFQUFpRTtBQUNqRCxxQ0FBbUIsR0FBYTtJQUMvQyw2QkFBNkI7Q0FDN0IsQ0FBQztBQUNGLHlEQUF5RDtBQUN6Qyw2QkFBVyxHQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNoRSxpRUFBaUU7QUFDakQscUNBQW1CLEdBQWE7SUFDL0MsNkJBQTZCO0NBQzdCLENBQUM7QUFDRiwrREFBK0Q7QUFDL0MsbUNBQWlCLEdBQWEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQzVFLHlEQUF5RDtBQUN6Qyw2QkFBVyxHQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNoRSx1REFBdUQ7QUFDdkMsMkJBQVMsR0FBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDNUQsd0RBQXdEO0FBQ3hDLDRCQUFVLEdBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQzlELCtEQUErRDtBQUMvQyxtQ0FBaUIsR0FBYSxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFDNUUsb0VBQW9FO0FBQ3BELHdDQUFzQixHQUFhO0lBQ2xELGdDQUFnQztJQUNoQyxxQkFBcUI7Q0FDckIsQ0FBQztBQUNGLGtFQUFrRTtBQUNsRCxzQ0FBb0IsR0FBYTtJQUNoRCw4QkFBOEI7Q0FDOUIsQ0FBQztBQUNGLHdEQUF3RDtBQUN4Qyw0QkFBVSxHQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUM5RCxtRUFBbUU7QUFDbkQsdUNBQXFCLEdBQWE7SUFDakQsK0JBQStCO0NBQy9CLENBQUM7QUFDRixrRUFBa0U7QUFDbEQsc0NBQW9CLEdBQWE7SUFDaEQsOEJBQThCO0NBQzlCLENBQUM7QUFDRiw4REFBOEQ7QUFDOUMsa0NBQWdCLEdBQWEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBQzFFLHlEQUF5RDtBQUN6Qyw2QkFBVyxHQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNoRSwyREFBMkQ7QUFDM0MsK0JBQWEsR0FBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDcEUsbUVBQW1FO0FBQ25ELHVDQUFxQixHQUFhO0lBQ2pELCtCQUErQjtDQUMvQixDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLCtCQUFhLEdBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ3BFLGlFQUFpRTtBQUNqRCxxQ0FBbUIsR0FBYTtJQUMvQyw2QkFBNkI7Q0FDN0IsQ0FBQztBQUNGLDhEQUE4RDtBQUM5QyxrQ0FBZ0IsR0FBYSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFDMUUsOERBQThEO0FBQzlDLGtDQUFnQixHQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUMxRSxvRkFBb0Y7QUFDcEUsd0RBQXNDLEdBQWE7SUFDbEUsZ0RBQWdEO0NBQ2hELENBQUM7QUFDRix3RUFBd0U7QUFDeEQsNENBQTBCLEdBQWE7SUFDdEQsb0NBQW9DO0NBQ3BDLENBQUM7QUFHSDs7R0FFRztBQUNILE1BQWEsaUJBQWlCO0lBcUI3Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBYTtRQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWE7UUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFnQjtRQUM5QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWE7UUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUN6QixLQUFhO1FBRWIsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLDZCQUE2QixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FDbkIsTUFBZ0I7UUFFaEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUMxRSxDQUFDOztBQWpFRiw4Q0FrRUM7OztBQWpFQSw4REFBOEQ7QUFDOUMsNkNBQTJCLEdBQWE7SUFDdkQscUJBQXFCO0lBQ3JCLDZCQUE2QjtJQUM3Qix1QkFBdUI7Q0FDdkIsQ0FBQztBQUVGLHVEQUF1RDtBQUN2QyxpQ0FBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4QyxrQ0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMsOEJBQVksR0FBRyxhQUFhLENBQUM7QUFDN0Msa0RBQWtEO0FBQ2xDLCtCQUFhLEdBQUcscUJBQXFCLENBQUM7QUFDdEQsMkRBQTJEO0FBQzNDLHVDQUFxQixHQUFHLDZCQUE2QixDQUFDO0FBQ3RFLHdEQUF3RDtBQUN4QyxpQ0FBZSxHQUFHLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2Uva2luZXNpcy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUga2luZXNpcyBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgS2luZXNpc0FjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJraW5lc2lzXCI7XG5cblx0LyoqIFtUYWdnaW5nXSBraW5lc2lzOkFkZFRhZ3NUb1N0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkVGFnc1RvU3RyZWFtID0gXCJraW5lc2lzOkFkZFRhZ3NUb1N0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkFzc29jaWF0ZVN0cmVhbXNXaXRoQ2hhbm5lbCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU3RyZWFtc1dpdGhDaGFubmVsID1cblx0XHRcImtpbmVzaXM6QXNzb2NpYXRlU3RyZWFtc1dpdGhDaGFubmVsXCI7XG5cdC8qKiBbVGFnZ2luZ10ga2luZXNpczpDcmVhdGVDaGFubmVsICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDaGFubmVsID0gXCJraW5lc2lzOkNyZWF0ZUNoYW5uZWxcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpDcmVhdGVTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN0cmVhbSA9IFwia2luZXNpczpDcmVhdGVTdHJlYW1cIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QgPVxuXHRcdFwia2luZXNpczpEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlbGV0ZUNoYW5uZWwgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNoYW5uZWwgPSBcImtpbmVzaXM6RGVsZXRlQ2hhbm5lbFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlbGV0ZVJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXNvdXJjZVBvbGljeSA9IFwia2luZXNpczpEZWxldGVSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlbGV0ZVN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU3RyZWFtID0gXCJraW5lc2lzOkRlbGV0ZVN0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlcmVnaXN0ZXJTdHJlYW1Db25zdW1lciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyID0gXCJraW5lc2lzOkRlcmVnaXN0ZXJTdHJlYW1Db25zdW1lclwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6RGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWNjb3VudFNldHRpbmdzID0gXCJraW5lc2lzOkRlc2NyaWJlQWNjb3VudFNldHRpbmdzXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZUNoYW5uZWwgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2hhbm5lbCA9IFwia2luZXNpczpEZXNjcmliZUNoYW5uZWxcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlTGltaXRzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUxpbWl0cyA9IFwia2luZXNpczpEZXNjcmliZUxpbWl0c1wiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6RGVzY3JpYmVTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU3RyZWFtID0gXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZVN0cmVhbUNvbnN1bWVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyID0gXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtQ29uc3VtZXJcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlU3RyZWFtU3VtbWFyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5ID0gXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtU3VtbWFyeVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcgPVxuXHRcdFwia2luZXNpczpEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nICovXG5cdHN0YXRpYyByZWFkb25seSBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmcgPSBcImtpbmVzaXM6RW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpHZXRSZWNvcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvcmRzID0gXCJraW5lc2lzOkdldFJlY29yZHNcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkdldFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXNvdXJjZVBvbGljeSA9IFwia2luZXNpczpHZXRSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6R2V0U2hhcmRJdGVyYXRvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2hhcmRJdGVyYXRvciA9IFwia2luZXNpczpHZXRTaGFyZEl0ZXJhdG9yXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6SW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QgKi9cblx0c3RhdGljIHJlYWRvbmx5IEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kID1cblx0XHRcImtpbmVzaXM6SW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpJbmplY3RBcGlFcnJvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5qZWN0QXBpRXJyb3IgPSBcImtpbmVzaXM6SW5qZWN0QXBpRXJyb3JcIjtcblx0LyoqIFtMaXN0XSBraW5lc2lzOkxpc3RDaGFubmVscyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENoYW5uZWxzID0gXCJraW5lc2lzOkxpc3RDaGFubmVsc1wiO1xuXHQvKiogW0xpc3RdIGtpbmVzaXM6TGlzdFNoYXJkcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNoYXJkcyA9IFwia2luZXNpczpMaXN0U2hhcmRzXCI7XG5cdC8qKiBbTGlzdF0ga2luZXNpczpMaXN0U3RyZWFtQ29uc3VtZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RyZWFtQ29uc3VtZXJzID0gXCJraW5lc2lzOkxpc3RTdHJlYW1Db25zdW1lcnNcIjtcblx0LyoqIFtMaXN0XSBraW5lc2lzOkxpc3RTdHJlYW1zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RyZWFtcyA9IFwia2luZXNpczpMaXN0U3RyZWFtc1wiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6TGlzdFRhZ3NGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZSA9IFwia2luZXNpczpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpMaXN0VGFnc0ZvclN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JTdHJlYW0gPSBcImtpbmVzaXM6TGlzdFRhZ3NGb3JTdHJlYW1cIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpNZXJnZVNoYXJkcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTWVyZ2VTaGFyZHMgPSBcImtpbmVzaXM6TWVyZ2VTaGFyZHNcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpQdXRSZWNvcmQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFJlY29yZCA9IFwia2luZXNpczpQdXRSZWNvcmRcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpQdXRSZWNvcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZWNvcmRzID0gXCJraW5lc2lzOlB1dFJlY29yZHNcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpQdXRSZXNvdXJjZVBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVzb3VyY2VQb2xpY3kgPSBcImtpbmVzaXM6UHV0UmVzb3VyY2VQb2xpY3lcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpSZWdpc3RlclN0cmVhbUNvbnN1bWVyICovXG5cdHN0YXRpYyByZWFkb25seSBSZWdpc3RlclN0cmVhbUNvbnN1bWVyID0gXCJraW5lc2lzOlJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJcIjtcblx0LyoqIFtUYWdnaW5nXSBraW5lc2lzOlJlbW92ZVRhZ3NGcm9tU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBSZW1vdmVUYWdzRnJvbVN0cmVhbSA9IFwia2luZXNpczpSZW1vdmVUYWdzRnJvbVN0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlNwbGl0U2hhcmQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNwbGl0U2hhcmQgPSBcImtpbmVzaXM6U3BsaXRTaGFyZFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlN0YXJ0U3RyZWFtRW5jcnlwdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTdHJlYW1FbmNyeXB0aW9uID0gXCJraW5lc2lzOlN0YXJ0U3RyZWFtRW5jcnlwdGlvblwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlN0b3BTdHJlYW1FbmNyeXB0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wU3RyZWFtRW5jcnlwdGlvbiA9IFwia2luZXNpczpTdG9wU3RyZWFtRW5jcnlwdGlvblwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6U3Vic2NyaWJlVG9TaGFyZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3Vic2NyaWJlVG9TaGFyZCA9IFwia2luZXNpczpTdWJzY3JpYmVUb1NoYXJkXCI7XG5cdC8qKiBbVGFnZ2luZ10ga2luZXNpczpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImtpbmVzaXM6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtUYWdnaW5nXSBraW5lc2lzOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImtpbmVzaXM6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlVwZGF0ZUFjY291bnRTZXR0aW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWNjb3VudFNldHRpbmdzID0gXCJraW5lc2lzOlVwZGF0ZUFjY291bnRTZXR0aW5nc1wiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlVwZGF0ZUNoYW5uZWwgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNoYW5uZWwgPSBcImtpbmVzaXM6VXBkYXRlQ2hhbm5lbFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlVwZGF0ZU1heFJlY29yZFNpemUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1heFJlY29yZFNpemUgPSBcImtpbmVzaXM6VXBkYXRlTWF4UmVjb3JkU2l6ZVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlVwZGF0ZVNoYXJkQ291bnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVNoYXJkQ291bnQgPSBcImtpbmVzaXM6VXBkYXRlU2hhcmRDb3VudFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlVwZGF0ZVN0cmVhbU1vZGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbU1vZGUgPSBcImtpbmVzaXM6VXBkYXRlU3RyZWFtTW9kZVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlVwZGF0ZVN0cmVhbVJlY29yZERpc3RyaWJ1dGlvblN0cmF0ZWd5ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTdHJlYW1SZWNvcmREaXN0cmlidXRpb25TdHJhdGVneSA9XG5cdFx0XCJraW5lc2lzOlVwZGF0ZVN0cmVhbVJlY29yZERpc3RyaWJ1dGlvblN0cmF0ZWd5XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0ID1cblx0XHRcImtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXRcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZUFjY291bnRTZXR0aW5ncyxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZUNoYW5uZWwsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVMaW1pdHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVTdHJlYW0sXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVTdHJlYW1Db25zdW1lcixcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZVN0cmVhbVN1bW1hcnksXG5cdFx0S2luZXNpc0FjdGlvbnMuYWN0aW9uR2V0UmVjb3Jkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5hY3Rpb25HZXRSZXNvdXJjZVBvbGljeSxcblx0XHRLaW5lc2lzQWN0aW9ucy5hY3Rpb25HZXRTaGFyZEl0ZXJhdG9yLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdFx0S2luZXNpc0FjdGlvbnMuTGlzdFRhZ3NGb3JTdHJlYW0sXG5cdFx0S2luZXNpc0FjdGlvbnMuU3Vic2NyaWJlVG9TaGFyZCxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5Bc3NvY2lhdGVTdHJlYW1zV2l0aENoYW5uZWwsXG5cdFx0S2luZXNpc0FjdGlvbnMuQ3JlYXRlU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlbGV0ZUNoYW5uZWwsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVsZXRlUmVzb3VyY2VQb2xpY3ksXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVsZXRlU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlcmVnaXN0ZXJTdHJlYW1Db25zdW1lcixcblx0XHRLaW5lc2lzQWN0aW9ucy5EaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyxcblx0XHRLaW5lc2lzQWN0aW9ucy5JbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCxcblx0XHRLaW5lc2lzQWN0aW9ucy5JbmplY3RBcGlFcnJvcixcblx0XHRLaW5lc2lzQWN0aW9ucy5NZXJnZVNoYXJkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5QdXRSZWNvcmQsXG5cdFx0S2luZXNpc0FjdGlvbnMuUHV0UmVjb3Jkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5QdXRSZXNvdXJjZVBvbGljeSxcblx0XHRLaW5lc2lzQWN0aW9ucy5SZWdpc3RlclN0cmVhbUNvbnN1bWVyLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlNwbGl0U2hhcmQsXG5cdFx0S2luZXNpc0FjdGlvbnMuU3RhcnRTdHJlYW1FbmNyeXB0aW9uLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlN0b3BTdHJlYW1FbmNyeXB0aW9uLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZUFjY291bnRTZXR0aW5ncyxcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVDaGFubmVsLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZU1heFJlY29yZFNpemUsXG5cdFx0S2luZXNpc0FjdGlvbnMuVXBkYXRlU2hhcmRDb3VudCxcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVTdHJlYW1Nb2RlLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZVN0cmVhbVJlY29yZERpc3RyaWJ1dGlvblN0cmF0ZWd5LFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0LFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0Q2hhbm5lbHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuTGlzdFNoYXJkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0U3RyZWFtQ29uc3VtZXJzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RTdHJlYW1zLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5BZGRUYWdzVG9TdHJlYW0sXG5cdFx0S2luZXNpc0FjdGlvbnMuQ3JlYXRlQ2hhbm5lbCxcblx0XHRLaW5lc2lzQWN0aW9ucy5SZW1vdmVUYWdzRnJvbVN0cmVhbSxcblx0XHRLaW5lc2lzQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRLaW5lc2lzQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY2hhbm5lbCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc0NoYW5uZWxBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2hhbm5lbElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjaGFubmVsIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzQ2hhbm5lbEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2hhbm5lbElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2hhbm5lbElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb25zdW1lciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc0NvbnN1bWVyQXJuUHJvcHMge1xuXHQvKiogVGhlIFN0cmVhbVR5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHN0cmVhbVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBTdHJlYW1OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzdHJlYW1OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uc3VtZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25zdW1lck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb25zdW1lckNyZWF0aW9uVGltcHN0YW1wIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25zdW1lckNyZWF0aW9uVGltcHN0YW1wOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29uc3VtZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNDb25zdW1lckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtVHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBTdHJlYW1OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbnN1bWVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyQ3JlYXRpb25UaW1wc3RhbXAgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25zdW1lckNyZWF0aW9uVGltcHN0YW1wOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBrbXNLZXkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNLTVNLZXlBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgS2V5SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEga21zS2V5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzS01TS2V5QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBLZXlJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBzdHJlYW0gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNTdHJlYW1Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHN0cmVhbSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1N0cmVhbUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbU5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgQ2hhbm5lbEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpraW5lc2lzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2hhbm5lbFxcLyg/PGNoYW5uZWxJZD5bXjovP10rKSQvO1xuY29uc3QgQ29uc3VtZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2luZXNpczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOig/PHN0cmVhbVR5cGU+W146Lz9dKylcXC8oPzxzdHJlYW1OYW1lPlteOi8/XSspXFwvY29uc3VtZXJcXC8oPzxjb25zdW1lck5hbWU+W146Lz9dKyk6KD88Y29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcD5bXjovP10rKSQvO1xuY29uc3QgS01TS2V5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmttczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmtleVxcLyg/PGtleUlkPlteOi8/XSspJC87XG5jb25zdCBTdHJlYW1Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2luZXNpczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnN0cmVhbVxcLyg/PHN0cmVhbU5hbWU+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBraW5lc2lzIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNoYW5uZWwgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2hhbm5lbChwcm9wczogS2luZXNpc0NoYW5uZWxBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2luZXNpczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjaGFubmVsLyR7cHJvcHMuY2hhbm5lbElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjaGFubmVsIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDaGFubmVsQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENoYW5uZWxBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY2hhbm5lbCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDaGFubmVsQXJuKGFybjogc3RyaW5nKTogS2luZXNpc0NoYW5uZWxBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENoYW5uZWxBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2hhbm5lbCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjaGFubmVsSWQ6IG1hdGNoLmdyb3VwcyEuY2hhbm5lbElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbnN1bWVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbnN1bWVyKHByb3BzOiBLaW5lc2lzQ29uc3VtZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2luZXNpczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifToke3Byb3BzLnN0cmVhbVR5cGV9LyR7cHJvcHMuc3RyZWFtTmFtZX0vY29uc3VtZXIvJHtwcm9wcy5jb25zdW1lck5hbWV9OiR7cHJvcHMuY29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29uc3VtZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbnN1bWVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbnN1bWVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbnN1bWVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbnN1bWVyQXJuKGFybjogc3RyaW5nKTogS2luZXNpc0NvbnN1bWVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25zdW1lckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25zdW1lciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdHJlYW1UeXBlOiBtYXRjaC5ncm91cHMhLnN0cmVhbVR5cGUsXG5cdFx0XHRzdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLnN0cmVhbU5hbWUsXG5cdFx0XHRjb25zdW1lck5hbWU6IG1hdGNoLmdyb3VwcyEuY29uc3VtZXJOYW1lLFxuXHRcdFx0Y29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcDogbWF0Y2guZ3JvdXBzIS5jb25zdW1lckNyZWF0aW9uVGltcHN0YW1wLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGttc0tleSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBrbXNLZXkocHJvcHM6IEtpbmVzaXNLTVNLZXlBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a21zOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmtleS8ke3Byb3BzLmtleUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBrbXNLZXkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEtNU0tleUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBLTVNLZXlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEga21zS2V5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUtNU0tleUFybihhcm46IHN0cmluZyk6IEtpbmVzaXNLTVNLZXlBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEtNU0tleUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBrbXNLZXkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0a2V5SWQ6IG1hdGNoLmdyb3VwcyEua2V5SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc3RyZWFtIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHN0cmVhbShwcm9wczogS2luZXNpc1N0cmVhbUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpraW5lc2lzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnN0cmVhbS8ke3Byb3BzLnN0cmVhbU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHN0cmVhbSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU3RyZWFtQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFN0cmVhbUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzdHJlYW0gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU3RyZWFtQXJuKGFybjogc3RyaW5nKTogS2luZXNpc1N0cmVhbUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU3RyZWFtQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN0cmVhbSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLnN0cmVhbU5hbWUsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Iga2luZXNpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWRkVGFnc1RvU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkVGFnc1RvU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDaGFubmVsIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2hhbm5lbDogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkFzc29jaWF0ZVN0cmVhbXNXaXRoQ2hhbm5lbFwiLFxuXHRcdFwia2luZXNpczpDcmVhdGVDaGFubmVsXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImtpbmVzaXM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3RyZWFtOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtXCIsXG5cdFx0XCJraW5lc2lzOkNyZWF0ZVN0cmVhbVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2hhbm5lbCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNoYW5uZWw6IHN0cmluZ1tdID0gW1wia2luZXNpczpEZWxldGVDaGFubmVsXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXNvdXJjZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVsZXRlUmVzb3VyY2VQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6RGVsZXRlU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFjY291bnRTZXR0aW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkRlc2NyaWJlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ2hhbm5lbCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2hhbm5lbDogc3RyaW5nW10gPSBbXCJraW5lc2lzOkRlc2NyaWJlQ2hhbm5lbFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVMaW1pdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUxpbWl0czogc3RyaW5nW10gPSBbXCJraW5lc2lzOkRlc2NyaWJlTGltaXRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVN0cmVhbSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU3RyZWFtQ29uc3VtZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1Db25zdW1lclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVN0cmVhbVN1bW1hcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbVN1bW1hcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZXNjcmliZVN0cmVhbVN1bW1hcnlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2FibGVFbmhhbmNlZE1vbml0b3Jpbmc6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZzogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZWNvcmRzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6R2V0UmVjb3Jkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVzb3VyY2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6R2V0UmVzb3VyY2VQb2xpY3lcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFNoYXJkSXRlcmF0b3IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNoYXJkSXRlcmF0b3I6IHN0cmluZ1tdID0gW1wia2luZXNpczpHZXRTaGFyZEl0ZXJhdG9yXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6SW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENoYW5uZWxzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENoYW5uZWxzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdENoYW5uZWxzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U2hhcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNoYXJkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOkxpc3RTaGFyZHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTdHJlYW1Db25zdW1lcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RyZWFtQ29uc3VtZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6TGlzdFN0cmVhbUNvbnN1bWVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U3RyZWFtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1zOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdFN0cmVhbXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclN0cmVhbSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdFRhZ3NGb3JTdHJlYW1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIE1lcmdlU2hhcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTWVyZ2VTaGFyZHM6IHN0cmluZ1tdID0gW1wia2luZXNpczpNZXJnZVNoYXJkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0UmVjb3JkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3JkOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6UHV0UmVjb3JkXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRSZWNvcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3Jkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOlB1dFJlY29yZHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFJlc291cmNlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVzb3VyY2VQb2xpY3k6IHN0cmluZ1tdID0gW1wia2luZXNpczpQdXRSZXNvdXJjZVBvbGljeVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVnaXN0ZXJTdHJlYW1Db25zdW1lciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpSZWdpc3RlclN0cmVhbUNvbnN1bWVyXCIsXG5cdFx0XCJraW5lc2lzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlbW92ZVRhZ3NGcm9tU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVtb3ZlVGFnc0Zyb21TdHJlYW06IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpSZW1vdmVUYWdzRnJvbVN0cmVhbVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTcGxpdFNoYXJkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3BsaXRTaGFyZDogc3RyaW5nW10gPSBbXCJraW5lc2lzOlNwbGl0U2hhcmRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U3RyZWFtRW5jcnlwdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOlN0YXJ0U3RyZWFtRW5jcnlwdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wU3RyZWFtRW5jcnlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BTdHJlYW1FbmNyeXB0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6U3RvcFN0cmVhbUVuY3J5cHRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3Vic2NyaWJlVG9TaGFyZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1YnNjcmliZVRvU2hhcmQ6IHN0cmluZ1tdID0gW1wia2luZXNpczpTdWJzY3JpYmVUb1NoYXJkXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQWNjb3VudFNldHRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWNjb3VudFNldHRpbmdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6VXBkYXRlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNoYW5uZWwgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDaGFubmVsOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VXBkYXRlQ2hhbm5lbFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTWF4UmVjb3JkU2l6ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1heFJlY29yZFNpemU6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpVcGRhdGVNYXhSZWNvcmRTaXplXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVNoYXJkQ291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTaGFyZENvdW50OiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VXBkYXRlU2hhcmRDb3VudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU3RyZWFtTW9kZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbU1vZGU6IHN0cmluZ1tdID0gW1wia2luZXNpczpVcGRhdGVTdHJlYW1Nb2RlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTdHJlYW1SZWNvcmREaXN0cmlidXRpb25TdHJhdGVneSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbVJlY29yZERpc3RyaWJ1dGlvblN0cmF0ZWd5OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6VXBkYXRlU3RyZWFtUmVjb3JkRGlzdHJpYnV0aW9uU3RyYXRlZ3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTdHJlYW1XYXJtVGhyb3VnaHB1dDogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOlVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0XCIsXG5cdF07XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIGtleSBjb25zdGFudHMgYW5kIGJ1aWxkZXJzIGZvciBraW5lc2lzLlxuICovXG5leHBvcnQgY2xhc3MgS2luZXNpc0NvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgSW5qZWN0QXBpRXJyb3IgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5qZWN0QXBpRXJyb3JDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RmlzQWN0aW9uSWRcIixcblx0XHRcImtpbmVzaXM6RmlzSW5qZWN0UGVyY2VudGFnZVwiLFxuXHRcdFwia2luZXNpczpGaXNUYXJnZXRBcm5zXCIsXG5cdF07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleToga2luZXNpczpGaXNBY3Rpb25JZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRklTX0FDVElPTl9JRCA9IFwia2luZXNpczpGaXNBY3Rpb25JZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleToga2luZXNpczpGaXNJbmplY3RQZXJjZW50YWdlIChOdW1lcmljKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRklTX0lOSkVDVF9QRVJDRU5UQUdFID0gXCJraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2VcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGtpbmVzaXM6RmlzVGFyZ2V0QXJucyAoQXJyYXlPZkFSTikgKi9cblx0c3RhdGljIHJlYWRvbmx5IEZJU19UQVJHRVRfQVJOUyA9IFwia2luZXNpczpGaXNUYXJnZXRBcm5zXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGtpbmVzaXM6RmlzQWN0aW9uSWRgLlxuXHQgKi9cblx0c3RhdGljIGZpc0FjdGlvbklkKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwia2luZXNpczpGaXNBY3Rpb25JZFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBga2luZXNpczpGaXNJbmplY3RQZXJjZW50YWdlYC5cblx0ICovXG5cdHN0YXRpYyBmaXNJbmplY3RQZXJjZW50YWdlKFxuXHRcdHZhbHVlOiBudW1iZXIsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIG51bWJlcj4+IHtcblx0XHRyZXR1cm4geyBOdW1lcmljRXF1YWxzOiB7IFwia2luZXNpczpGaXNJbmplY3RQZXJjZW50YWdlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBraW5lc2lzOkZpc1RhcmdldEFybnNgLlxuXHQgKi9cblx0c3RhdGljIGZpc1RhcmdldEFybnMoXG5cdFx0dmFsdWVzOiBzdHJpbmdbXSxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6QXJuRXF1YWxzXCI6IHsgXCJraW5lc2lzOkZpc1RhcmdldEFybnNcIjogdmFsdWVzIH0gfTtcblx0fVxufVxuIl19
@@ -16,7 +16,7 @@ class KinesisanalyticsActions {
16
16
  }
17
17
  exports.KinesisanalyticsActions = KinesisanalyticsActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KinesisanalyticsActions[_a] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsActions", version: "1.28.0" };
19
+ KinesisanalyticsActions[_a] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  KinesisanalyticsActions.SERVICE_PREFIX = "kinesisanalytics";
22
22
  /** [Write] kinesisanalytics:AddApplicationCloudWatchLoggingOption */
@@ -171,7 +171,7 @@ class KinesisanalyticsResources {
171
171
  }
172
172
  exports.KinesisanalyticsResources = KinesisanalyticsResources;
173
173
  _b = JSII_RTTI_SYMBOL_1;
174
- KinesisanalyticsResources[_b] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsResources", version: "1.28.0" };
174
+ KinesisanalyticsResources[_b] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsResources", version: "1.30.0" };
175
175
  /**
176
176
  * API operation to required IAM actions mapping for kinesisanalytics.
177
177
  */
@@ -179,7 +179,7 @@ class KinesisanalyticsOperations {
179
179
  }
180
180
  exports.KinesisanalyticsOperations = KinesisanalyticsOperations;
181
181
  _c = JSII_RTTI_SYMBOL_1;
182
- KinesisanalyticsOperations[_c] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsOperations", version: "1.28.0" };
182
+ KinesisanalyticsOperations[_c] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsOperations", version: "1.30.0" };
183
183
  /** IAM actions required for the AddApplicationCloudWatchLoggingOption API call. */
184
184
  KinesisanalyticsOperations.AddApplicationCloudWatchLoggingOption = [
185
185
  "kinesisanalytics:AddApplicationCloudWatchLoggingOption",
@@ -339,7 +339,7 @@ class KinesisanalyticsConditions {
339
339
  }
340
340
  exports.KinesisanalyticsConditions = KinesisanalyticsConditions;
341
341
  _d = JSII_RTTI_SYMBOL_1;
342
- KinesisanalyticsConditions[_d] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsConditions", version: "1.28.0" };
342
+ KinesisanalyticsConditions[_d] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsConditions", version: "1.30.0" };
343
343
  /** Condition keys applicable to the CreateApplication action. */
344
344
  KinesisanalyticsConditions.CreateApplicationConditionKeys = [
345
345
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class KinesisvideoActions {
16
16
  }
17
17
  exports.KinesisvideoActions = KinesisvideoActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KinesisvideoActions[_a] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoActions", version: "1.28.0" };
19
+ KinesisvideoActions[_a] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  KinesisvideoActions.SERVICE_PREFIX = "kinesisvideo";
22
22
  /** [Write] kinesisvideo:ConnectAsMaster */
@@ -238,7 +238,7 @@ class KinesisvideoResources {
238
238
  }
239
239
  exports.KinesisvideoResources = KinesisvideoResources;
240
240
  _b = JSII_RTTI_SYMBOL_1;
241
- KinesisvideoResources[_b] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoResources", version: "1.28.0" };
241
+ KinesisvideoResources[_b] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoResources", version: "1.30.0" };
242
242
  /**
243
243
  * API operation to required IAM actions mapping for kinesisvideo.
244
244
  */
@@ -246,7 +246,7 @@ class KinesisvideoOperations {
246
246
  }
247
247
  exports.KinesisvideoOperations = KinesisvideoOperations;
248
248
  _c = JSII_RTTI_SYMBOL_1;
249
- KinesisvideoOperations[_c] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoOperations", version: "1.28.0" };
249
+ KinesisvideoOperations[_c] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoOperations", version: "1.30.0" };
250
250
  /** IAM actions required for the CreateSignalingChannel API call. */
251
251
  KinesisvideoOperations.CreateSignalingChannel = [
252
252
  "kinesisvideo:CreateSignalingChannel",
@@ -422,7 +422,7 @@ class KinesisvideoConditions {
422
422
  }
423
423
  exports.KinesisvideoConditions = KinesisvideoConditions;
424
424
  _d = JSII_RTTI_SYMBOL_1;
425
- KinesisvideoConditions[_d] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoConditions", version: "1.28.0" };
425
+ KinesisvideoConditions[_d] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoConditions", version: "1.30.0" };
426
426
  /** Condition keys applicable to the CreateSignalingChannel action. */
427
427
  KinesisvideoConditions.CreateSignalingChannelConditionKeys = [
428
428
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class KMSActions {
16
16
  }
17
17
  exports.KMSActions = KMSActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KMSActions[_a] = { fqn: "@cdk_utils/iam.kms.KMSActions", version: "1.28.0" };
19
+ KMSActions[_a] = { fqn: "@cdk_utils/iam.kms.KMSActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  KMSActions.SERVICE_PREFIX = "kms";
22
22
  /** [Write] kms:CancelKeyDeletion */
@@ -267,7 +267,7 @@ class KMSResources {
267
267
  }
268
268
  exports.KMSResources = KMSResources;
269
269
  _b = JSII_RTTI_SYMBOL_1;
270
- KMSResources[_b] = { fqn: "@cdk_utils/iam.kms.KMSResources", version: "1.28.0" };
270
+ KMSResources[_b] = { fqn: "@cdk_utils/iam.kms.KMSResources", version: "1.30.0" };
271
271
  /**
272
272
  * API operation to required IAM actions mapping for kms.
273
273
  */
@@ -275,7 +275,7 @@ class KMSOperations {
275
275
  }
276
276
  exports.KMSOperations = KMSOperations;
277
277
  _c = JSII_RTTI_SYMBOL_1;
278
- KMSOperations[_c] = { fqn: "@cdk_utils/iam.kms.KMSOperations", version: "1.28.0" };
278
+ KMSOperations[_c] = { fqn: "@cdk_utils/iam.kms.KMSOperations", version: "1.30.0" };
279
279
  /** IAM actions required for the CancelKeyDeletion API call. */
280
280
  KMSOperations.CancelKeyDeletion = ["kms:CancelKeyDeletion"];
281
281
  /** IAM actions required for the ConnectCustomKeyStore API call. */
@@ -1036,7 +1036,7 @@ class KMSConditions {
1036
1036
  }
1037
1037
  exports.KMSConditions = KMSConditions;
1038
1038
  _d = JSII_RTTI_SYMBOL_1;
1039
- KMSConditions[_d] = { fqn: "@cdk_utils/iam.kms.KMSConditions", version: "1.28.0" };
1039
+ KMSConditions[_d] = { fqn: "@cdk_utils/iam.kms.KMSConditions", version: "1.30.0" };
1040
1040
  /** Condition keys applicable to the CancelKeyDeletion action. */
1041
1041
  KMSConditions.CancelKeyDeletionConditionKeys = [
1042
1042
  "kms:CallerAccount",
@@ -16,7 +16,7 @@ class LakeFormationActions {
16
16
  }
17
17
  exports.LakeFormationActions = LakeFormationActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- LakeFormationActions[_a] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationActions", version: "1.28.0" };
19
+ LakeFormationActions[_a] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  LakeFormationActions.SERVICE_PREFIX = "lakeformation";
22
22
  /** [Tagging] lakeformation:AddLFTagsToResource */
@@ -224,7 +224,7 @@ class LakeFormationOperations {
224
224
  }
225
225
  exports.LakeFormationOperations = LakeFormationOperations;
226
226
  _b = JSII_RTTI_SYMBOL_1;
227
- LakeFormationOperations[_b] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationOperations", version: "1.28.0" };
227
+ LakeFormationOperations[_b] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationOperations", version: "1.30.0" };
228
228
  /** IAM actions required for the AddLFTagsToResource API call. */
229
229
  LakeFormationOperations.AddLFTagsToResource = [];
230
230
  /** IAM actions required for the AssumeDecoratedRoleWithSAML API call. */
@@ -414,7 +414,7 @@ class LakeFormationConditions {
414
414
  }
415
415
  exports.LakeFormationConditions = LakeFormationConditions;
416
416
  _c = JSII_RTTI_SYMBOL_1;
417
- LakeFormationConditions[_c] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationConditions", version: "1.28.0" };
417
+ LakeFormationConditions[_c] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationConditions", version: "1.30.0" };
418
418
  /** Condition keys applicable to the GetDataAccess action. */
419
419
  LakeFormationConditions.actionGetDataAccessConditionKeys = [
420
420
  "lakeformation:EnabledOnlyForMetaDataAccess",
@@ -16,7 +16,7 @@ class LambdaActions {
16
16
  }
17
17
  exports.LambdaActions = LambdaActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- LambdaActions[_a] = { fqn: "@cdk_utils/iam.lambda.LambdaActions", version: "1.28.0" };
19
+ LambdaActions[_a] = { fqn: "@cdk_utils/iam.lambda.LambdaActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  LambdaActions.SERVICE_PREFIX = "lambda";
22
22
  /** [PermissionManagement] lambda:AddLayerVersionPermission */
@@ -723,7 +723,7 @@ class LambdaResources {
723
723
  }
724
724
  exports.LambdaResources = LambdaResources;
725
725
  _b = JSII_RTTI_SYMBOL_1;
726
- LambdaResources[_b] = { fqn: "@cdk_utils/iam.lambda.LambdaResources", version: "1.28.0" };
726
+ LambdaResources[_b] = { fqn: "@cdk_utils/iam.lambda.LambdaResources", version: "1.30.0" };
727
727
  /**
728
728
  * API operation to required IAM actions mapping for lambda.
729
729
  */
@@ -731,7 +731,7 @@ class LambdaOperations {
731
731
  }
732
732
  exports.LambdaOperations = LambdaOperations;
733
733
  _c = JSII_RTTI_SYMBOL_1;
734
- LambdaOperations[_c] = { fqn: "@cdk_utils/iam.lambda.LambdaOperations", version: "1.28.0" };
734
+ LambdaOperations[_c] = { fqn: "@cdk_utils/iam.lambda.LambdaOperations", version: "1.30.0" };
735
735
  /** IAM actions required for the AddEventSource API call. */
736
736
  LambdaOperations.AddEventSource = ["iam:PassRole"];
737
737
  /** IAM actions required for the AddLayerVersionPermission API call. */
@@ -1257,7 +1257,7 @@ class LambdaConditions {
1257
1257
  }
1258
1258
  exports.LambdaConditions = LambdaConditions;
1259
1259
  _d = JSII_RTTI_SYMBOL_1;
1260
- LambdaConditions[_d] = { fqn: "@cdk_utils/iam.lambda.LambdaConditions", version: "1.28.0" };
1260
+ LambdaConditions[_d] = { fqn: "@cdk_utils/iam.lambda.LambdaConditions", version: "1.30.0" };
1261
1261
  /** Condition keys applicable to the AddPermission action. */
1262
1262
  LambdaConditions.AddPermissionConditionKeys = [
1263
1263
  "lambda:FunctionUrlAuthType",
@@ -16,7 +16,7 @@ class LaunchwizardActions {
16
16
  }
17
17
  exports.LaunchwizardActions = LaunchwizardActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- LaunchwizardActions[_a] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardActions", version: "1.28.0" };
19
+ LaunchwizardActions[_a] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  LaunchwizardActions.SERVICE_PREFIX = "launchwizard";
22
22
  /** [Write] launchwizard:CreateAdditionalNode */
@@ -189,7 +189,7 @@ class LaunchwizardResources {
189
189
  }
190
190
  exports.LaunchwizardResources = LaunchwizardResources;
191
191
  _b = JSII_RTTI_SYMBOL_1;
192
- LaunchwizardResources[_b] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardResources", version: "1.28.0" };
192
+ LaunchwizardResources[_b] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardResources", version: "1.30.0" };
193
193
  /**
194
194
  * API operation to required IAM actions mapping for launchwizard.
195
195
  */
@@ -197,7 +197,7 @@ class LaunchwizardOperations {
197
197
  }
198
198
  exports.LaunchwizardOperations = LaunchwizardOperations;
199
199
  _c = JSII_RTTI_SYMBOL_1;
200
- LaunchwizardOperations[_c] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardOperations", version: "1.28.0" };
200
+ LaunchwizardOperations[_c] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardOperations", version: "1.30.0" };
201
201
  /** IAM actions required for the CreateDeployment API call. */
202
202
  LaunchwizardOperations.CreateDeployment = [
203
203
  "launchwizard:CreateDeployment",
@@ -272,7 +272,7 @@ class LaunchwizardConditions {
272
272
  }
273
273
  exports.LaunchwizardConditions = LaunchwizardConditions;
274
274
  _d = JSII_RTTI_SYMBOL_1;
275
- LaunchwizardConditions[_d] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardConditions", version: "1.28.0" };
275
+ LaunchwizardConditions[_d] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardConditions", version: "1.30.0" };
276
276
  /** Condition key: aws:RequestTag/${TagKey} (String) */
277
277
  LaunchwizardConditions.AWS_REQUEST_TAG = "aws:RequestTag/${TagKey}";
278
278
  /** Condition key: aws:ResourceTag/${TagKey} (String) */
@@ -16,7 +16,7 @@ class LexActions {
16
16
  }
17
17
  exports.LexActions = LexActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- LexActions[_a] = { fqn: "@cdk_utils/iam.lex.LexActions", version: "1.28.0" };
19
+ LexActions[_a] = { fqn: "@cdk_utils/iam.lex.LexActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  LexActions.SERVICE_PREFIX = "lex";
22
22
  /** [Write] lex:BatchCreateCustomVocabularyItem */
@@ -719,7 +719,7 @@ class LexResources {
719
719
  }
720
720
  exports.LexResources = LexResources;
721
721
  _b = JSII_RTTI_SYMBOL_1;
722
- LexResources[_b] = { fqn: "@cdk_utils/iam.lex.LexResources", version: "1.28.0" };
722
+ LexResources[_b] = { fqn: "@cdk_utils/iam.lex.LexResources", version: "1.30.0" };
723
723
  /**
724
724
  * API operation to required IAM actions mapping for lex.
725
725
  */
@@ -727,7 +727,7 @@ class LexOperations {
727
727
  }
728
728
  exports.LexOperations = LexOperations;
729
729
  _c = JSII_RTTI_SYMBOL_1;
730
- LexOperations[_c] = { fqn: "@cdk_utils/iam.lex.LexOperations", version: "1.28.0" };
730
+ LexOperations[_c] = { fqn: "@cdk_utils/iam.lex.LexOperations", version: "1.30.0" };
731
731
  /** IAM actions required for the BatchCreateCustomVocabularyItem API call. */
732
732
  LexOperations.BatchCreateCustomVocabularyItem = [
733
733
  "lex:BatchCreateCustomVocabularyItem",
@@ -1234,7 +1234,7 @@ class LexConditions {
1234
1234
  }
1235
1235
  exports.LexConditions = LexConditions;
1236
1236
  _d = JSII_RTTI_SYMBOL_1;
1237
- LexConditions[_d] = { fqn: "@cdk_utils/iam.lex.LexConditions", version: "1.28.0" };
1237
+ LexConditions[_d] = { fqn: "@cdk_utils/iam.lex.LexConditions", version: "1.30.0" };
1238
1238
  /** Condition keys applicable to the CreateBot action. */
1239
1239
  LexConditions.CreateBotConditionKeys = [
1240
1240
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class LicenseManagerLinuxSubscriptionsActions {
16
16
  }
17
17
  exports.LicenseManagerLinuxSubscriptionsActions = LicenseManagerLinuxSubscriptionsActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- LicenseManagerLinuxSubscriptionsActions[_a] = { fqn: "@cdk_utils/iam.license_manager_linux_subscriptions.LicenseManagerLinuxSubscriptionsActions", version: "1.28.0" };
19
+ LicenseManagerLinuxSubscriptionsActions[_a] = { fqn: "@cdk_utils/iam.license_manager_linux_subscriptions.LicenseManagerLinuxSubscriptionsActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  LicenseManagerLinuxSubscriptionsActions.SERVICE_PREFIX = "license-manager-linux-subscriptions";
22
22
  /** [Write] license-manager-linux-subscriptions:DeregisterSubscriptionProvider */
@@ -101,7 +101,7 @@ class LicenseManagerLinuxSubscriptionsResources {
101
101
  }
102
102
  exports.LicenseManagerLinuxSubscriptionsResources = LicenseManagerLinuxSubscriptionsResources;
103
103
  _b = JSII_RTTI_SYMBOL_1;
104
- LicenseManagerLinuxSubscriptionsResources[_b] = { fqn: "@cdk_utils/iam.license_manager_linux_subscriptions.LicenseManagerLinuxSubscriptionsResources", version: "1.28.0" };
104
+ LicenseManagerLinuxSubscriptionsResources[_b] = { fqn: "@cdk_utils/iam.license_manager_linux_subscriptions.LicenseManagerLinuxSubscriptionsResources", version: "1.30.0" };
105
105
  /**
106
106
  * API operation to required IAM actions mapping for license-manager-linux-subscriptions.
107
107
  */
@@ -109,7 +109,7 @@ class LicenseManagerLinuxSubscriptionsOperations {
109
109
  }
110
110
  exports.LicenseManagerLinuxSubscriptionsOperations = LicenseManagerLinuxSubscriptionsOperations;
111
111
  _c = JSII_RTTI_SYMBOL_1;
112
- LicenseManagerLinuxSubscriptionsOperations[_c] = { fqn: "@cdk_utils/iam.license_manager_linux_subscriptions.LicenseManagerLinuxSubscriptionsOperations", version: "1.28.0" };
112
+ LicenseManagerLinuxSubscriptionsOperations[_c] = { fqn: "@cdk_utils/iam.license_manager_linux_subscriptions.LicenseManagerLinuxSubscriptionsOperations", version: "1.30.0" };
113
113
  /** IAM actions required for the DeregisterSubscriptionProvider API call. */
114
114
  LicenseManagerLinuxSubscriptionsOperations.DeregisterSubscriptionProvider = [
115
115
  "license-manager-linux-subscriptions:DeregisterSubscriptionProvider",
@@ -180,7 +180,7 @@ class LicenseManagerLinuxSubscriptionsConditions {
180
180
  }
181
181
  exports.LicenseManagerLinuxSubscriptionsConditions = LicenseManagerLinuxSubscriptionsConditions;
182
182
  _d = JSII_RTTI_SYMBOL_1;
183
- LicenseManagerLinuxSubscriptionsConditions[_d] = { fqn: "@cdk_utils/iam.license_manager_linux_subscriptions.LicenseManagerLinuxSubscriptionsConditions", version: "1.28.0" };
183
+ LicenseManagerLinuxSubscriptionsConditions[_d] = { fqn: "@cdk_utils/iam.license_manager_linux_subscriptions.LicenseManagerLinuxSubscriptionsConditions", version: "1.30.0" };
184
184
  /** Condition keys applicable to the RegisterSubscriptionProvider action. */
185
185
  LicenseManagerLinuxSubscriptionsConditions.RegisterSubscriptionProviderConditionKeys = [
186
186
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class LicenseManagerUserSubscriptionsActions {
16
16
  }
17
17
  exports.LicenseManagerUserSubscriptionsActions = LicenseManagerUserSubscriptionsActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- LicenseManagerUserSubscriptionsActions[_a] = { fqn: "@cdk_utils/iam.license_manager_user_subscriptions.LicenseManagerUserSubscriptionsActions", version: "1.28.0" };
19
+ LicenseManagerUserSubscriptionsActions[_a] = { fqn: "@cdk_utils/iam.license_manager_user_subscriptions.LicenseManagerUserSubscriptionsActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  LicenseManagerUserSubscriptionsActions.SERVICE_PREFIX = "license-manager-user-subscriptions";
22
22
  /** [Write] license-manager-user-subscriptions:AssociateUser */
@@ -207,7 +207,7 @@ class LicenseManagerUserSubscriptionsResources {
207
207
  }
208
208
  exports.LicenseManagerUserSubscriptionsResources = LicenseManagerUserSubscriptionsResources;
209
209
  _b = JSII_RTTI_SYMBOL_1;
210
- LicenseManagerUserSubscriptionsResources[_b] = { fqn: "@cdk_utils/iam.license_manager_user_subscriptions.LicenseManagerUserSubscriptionsResources", version: "1.28.0" };
210
+ LicenseManagerUserSubscriptionsResources[_b] = { fqn: "@cdk_utils/iam.license_manager_user_subscriptions.LicenseManagerUserSubscriptionsResources", version: "1.30.0" };
211
211
  /**
212
212
  * API operation to required IAM actions mapping for license-manager-user-subscriptions.
213
213
  */
@@ -215,7 +215,7 @@ class LicenseManagerUserSubscriptionsOperations {
215
215
  }
216
216
  exports.LicenseManagerUserSubscriptionsOperations = LicenseManagerUserSubscriptionsOperations;
217
217
  _c = JSII_RTTI_SYMBOL_1;
218
- LicenseManagerUserSubscriptionsOperations[_c] = { fqn: "@cdk_utils/iam.license_manager_user_subscriptions.LicenseManagerUserSubscriptionsOperations", version: "1.28.0" };
218
+ LicenseManagerUserSubscriptionsOperations[_c] = { fqn: "@cdk_utils/iam.license_manager_user_subscriptions.LicenseManagerUserSubscriptionsOperations", version: "1.30.0" };
219
219
  /** IAM actions required for the AssociateUser API call. */
220
220
  LicenseManagerUserSubscriptionsOperations.AssociateUser = [
221
221
  "license-manager-user-subscriptions:AssociateUser",
@@ -313,7 +313,7 @@ class LicenseManagerUserSubscriptionsConditions {
313
313
  }
314
314
  exports.LicenseManagerUserSubscriptionsConditions = LicenseManagerUserSubscriptionsConditions;
315
315
  _d = JSII_RTTI_SYMBOL_1;
316
- LicenseManagerUserSubscriptionsConditions[_d] = { fqn: "@cdk_utils/iam.license_manager_user_subscriptions.LicenseManagerUserSubscriptionsConditions", version: "1.28.0" };
316
+ LicenseManagerUserSubscriptionsConditions[_d] = { fqn: "@cdk_utils/iam.license_manager_user_subscriptions.LicenseManagerUserSubscriptionsConditions", version: "1.30.0" };
317
317
  /** Condition keys applicable to the AssociateUser action. */
318
318
  LicenseManagerUserSubscriptionsConditions.AssociateUserConditionKeys = [
319
319
  "aws:RequestTag/${TagKey}",