@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 CodeArtifactActions {
16
16
  }
17
17
  exports.CodeArtifactActions = CodeArtifactActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodeArtifactActions[_a] = { fqn: "@cdk_utils/iam.codeartifact.CodeArtifactActions", version: "1.28.0" };
19
+ CodeArtifactActions[_a] = { fqn: "@cdk_utils/iam.codeartifact.CodeArtifactActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodeArtifactActions.SERVICE_PREFIX = "codeartifact";
22
22
  /** [Write] codeartifact:AssociateExternalConnection */
@@ -316,7 +316,7 @@ class CodeArtifactResources {
316
316
  }
317
317
  exports.CodeArtifactResources = CodeArtifactResources;
318
318
  _b = JSII_RTTI_SYMBOL_1;
319
- CodeArtifactResources[_b] = { fqn: "@cdk_utils/iam.codeartifact.CodeArtifactResources", version: "1.28.0" };
319
+ CodeArtifactResources[_b] = { fqn: "@cdk_utils/iam.codeartifact.CodeArtifactResources", version: "1.30.0" };
320
320
  /**
321
321
  * API operation to required IAM actions mapping for codeartifact.
322
322
  */
@@ -324,7 +324,7 @@ class CodeArtifactOperations {
324
324
  }
325
325
  exports.CodeArtifactOperations = CodeArtifactOperations;
326
326
  _c = JSII_RTTI_SYMBOL_1;
327
- CodeArtifactOperations[_c] = { fqn: "@cdk_utils/iam.codeartifact.CodeArtifactOperations", version: "1.28.0" };
327
+ CodeArtifactOperations[_c] = { fqn: "@cdk_utils/iam.codeartifact.CodeArtifactOperations", version: "1.30.0" };
328
328
  /** IAM actions required for the AssociateExternalConnection API call. */
329
329
  CodeArtifactOperations.AssociateExternalConnection = [];
330
330
  /** IAM actions required for the CopyPackageVersions API call. */
@@ -446,7 +446,7 @@ class CodeArtifactConditions {
446
446
  }
447
447
  exports.CodeArtifactConditions = CodeArtifactConditions;
448
448
  _d = JSII_RTTI_SYMBOL_1;
449
- CodeArtifactConditions[_d] = { fqn: "@cdk_utils/iam.codeartifact.CodeArtifactConditions", version: "1.28.0" };
449
+ CodeArtifactConditions[_d] = { fqn: "@cdk_utils/iam.codeartifact.CodeArtifactConditions", version: "1.30.0" };
450
450
  /** Condition keys applicable to the CreateDomain action. */
451
451
  CodeArtifactConditions.CreateDomainConditionKeys = [
452
452
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class CodeBuildActions {
16
16
  }
17
17
  exports.CodeBuildActions = CodeBuildActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodeBuildActions[_a] = { fqn: "@cdk_utils/iam.codebuild.CodeBuildActions", version: "1.28.0" };
19
+ CodeBuildActions[_a] = { fqn: "@cdk_utils/iam.codebuild.CodeBuildActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodeBuildActions.SERVICE_PREFIX = "codebuild";
22
22
  /** [Write] codebuild:BatchDeleteBuilds */
@@ -446,7 +446,7 @@ class CodeBuildResources {
446
446
  }
447
447
  exports.CodeBuildResources = CodeBuildResources;
448
448
  _b = JSII_RTTI_SYMBOL_1;
449
- CodeBuildResources[_b] = { fqn: "@cdk_utils/iam.codebuild.CodeBuildResources", version: "1.28.0" };
449
+ CodeBuildResources[_b] = { fqn: "@cdk_utils/iam.codebuild.CodeBuildResources", version: "1.30.0" };
450
450
  /**
451
451
  * API operation to required IAM actions mapping for codebuild.
452
452
  */
@@ -454,7 +454,7 @@ class CodeBuildOperations {
454
454
  }
455
455
  exports.CodeBuildOperations = CodeBuildOperations;
456
456
  _c = JSII_RTTI_SYMBOL_1;
457
- CodeBuildOperations[_c] = { fqn: "@cdk_utils/iam.codebuild.CodeBuildOperations", version: "1.28.0" };
457
+ CodeBuildOperations[_c] = { fqn: "@cdk_utils/iam.codebuild.CodeBuildOperations", version: "1.30.0" };
458
458
  /** IAM actions required for the BatchDeleteBuilds API call. */
459
459
  CodeBuildOperations.BatchDeleteBuilds = ["codebuild:BatchDeleteBuilds"];
460
460
  /** IAM actions required for the BatchGetBuildBatches API call. */
@@ -1389,7 +1389,7 @@ class CodeBuildConditions {
1389
1389
  }
1390
1390
  exports.CodeBuildConditions = CodeBuildConditions;
1391
1391
  _d = JSII_RTTI_SYMBOL_1;
1392
- CodeBuildConditions[_d] = { fqn: "@cdk_utils/iam.codebuild.CodeBuildConditions", version: "1.28.0" };
1392
+ CodeBuildConditions[_d] = { fqn: "@cdk_utils/iam.codebuild.CodeBuildConditions", version: "1.30.0" };
1393
1393
  /** Condition keys applicable to the CreateFleet action. */
1394
1394
  CodeBuildConditions.CreateFleetConditionKeys = [
1395
1395
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class CodeCatalystActions {
16
16
  }
17
17
  exports.CodeCatalystActions = CodeCatalystActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodeCatalystActions[_a] = { fqn: "@cdk_utils/iam.codecatalyst.CodeCatalystActions", version: "1.28.0" };
19
+ CodeCatalystActions[_a] = { fqn: "@cdk_utils/iam.codecatalyst.CodeCatalystActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodeCatalystActions.SERVICE_PREFIX = "codecatalyst";
22
22
  /** [Write] codecatalyst:AcceptConnection */
@@ -247,7 +247,7 @@ class CodeCatalystResources {
247
247
  }
248
248
  exports.CodeCatalystResources = CodeCatalystResources;
249
249
  _b = JSII_RTTI_SYMBOL_1;
250
- CodeCatalystResources[_b] = { fqn: "@cdk_utils/iam.codecatalyst.CodeCatalystResources", version: "1.28.0" };
250
+ CodeCatalystResources[_b] = { fqn: "@cdk_utils/iam.codecatalyst.CodeCatalystResources", version: "1.30.0" };
251
251
  /**
252
252
  * API operation to required IAM actions mapping for codecatalyst.
253
253
  */
@@ -255,7 +255,7 @@ class CodeCatalystOperations {
255
255
  }
256
256
  exports.CodeCatalystOperations = CodeCatalystOperations;
257
257
  _c = JSII_RTTI_SYMBOL_1;
258
- CodeCatalystOperations[_c] = { fqn: "@cdk_utils/iam.codecatalyst.CodeCatalystOperations", version: "1.28.0" };
258
+ CodeCatalystOperations[_c] = { fqn: "@cdk_utils/iam.codecatalyst.CodeCatalystOperations", version: "1.30.0" };
259
259
  /** IAM actions required for the CreateAccessToken API call. */
260
260
  CodeCatalystOperations.CreateAccessToken = [];
261
261
  /** IAM actions required for the CreateDevEnvironment API call. */
@@ -357,7 +357,7 @@ class CodeCatalystConditions {
357
357
  }
358
358
  exports.CodeCatalystConditions = CodeCatalystConditions;
359
359
  _d = JSII_RTTI_SYMBOL_1;
360
- CodeCatalystConditions[_d] = { fqn: "@cdk_utils/iam.codecatalyst.CodeCatalystConditions", version: "1.28.0" };
360
+ CodeCatalystConditions[_d] = { fqn: "@cdk_utils/iam.codecatalyst.CodeCatalystConditions", version: "1.30.0" };
361
361
  /** Condition keys applicable to the AcceptConnection action. */
362
362
  CodeCatalystConditions.AcceptConnectionConditionKeys = [
363
363
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class CodeCommitActions {
16
16
  }
17
17
  exports.CodeCommitActions = CodeCommitActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodeCommitActions[_a] = { fqn: "@cdk_utils/iam.codecommit.CodeCommitActions", version: "1.28.0" };
19
+ CodeCommitActions[_a] = { fqn: "@cdk_utils/iam.codecommit.CodeCommitActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodeCommitActions.SERVICE_PREFIX = "codecommit";
22
22
  /** [Write] codecommit:AssociateApprovalRuleTemplateWithRepository */
@@ -342,7 +342,7 @@ class CodeCommitResources {
342
342
  }
343
343
  exports.CodeCommitResources = CodeCommitResources;
344
344
  _b = JSII_RTTI_SYMBOL_1;
345
- CodeCommitResources[_b] = { fqn: "@cdk_utils/iam.codecommit.CodeCommitResources", version: "1.28.0" };
345
+ CodeCommitResources[_b] = { fqn: "@cdk_utils/iam.codecommit.CodeCommitResources", version: "1.30.0" };
346
346
  /**
347
347
  * API operation to required IAM actions mapping for codecommit.
348
348
  */
@@ -350,7 +350,7 @@ class CodeCommitOperations {
350
350
  }
351
351
  exports.CodeCommitOperations = CodeCommitOperations;
352
352
  _c = JSII_RTTI_SYMBOL_1;
353
- CodeCommitOperations[_c] = { fqn: "@cdk_utils/iam.codecommit.CodeCommitOperations", version: "1.28.0" };
353
+ CodeCommitOperations[_c] = { fqn: "@cdk_utils/iam.codecommit.CodeCommitOperations", version: "1.30.0" };
354
354
  /** IAM actions required for the AssociateApprovalRuleTemplateWithRepository API call. */
355
355
  CodeCommitOperations.AssociateApprovalRuleTemplateWithRepository = [
356
356
  "codecommit:AssociateApprovalRuleTemplateWithRepository",
@@ -650,7 +650,7 @@ class CodeCommitConditions {
650
650
  }
651
651
  exports.CodeCommitConditions = CodeCommitConditions;
652
652
  _d = JSII_RTTI_SYMBOL_1;
653
- CodeCommitConditions[_d] = { fqn: "@cdk_utils/iam.codecommit.CodeCommitConditions", version: "1.28.0" };
653
+ CodeCommitConditions[_d] = { fqn: "@cdk_utils/iam.codecommit.CodeCommitConditions", version: "1.30.0" };
654
654
  /** Condition keys applicable to the CreateBranch action. */
655
655
  CodeCommitConditions.CreateBranchConditionKeys = [
656
656
  "codecommit:References",
@@ -16,7 +16,7 @@ class CodeconnectionsActions {
16
16
  }
17
17
  exports.CodeconnectionsActions = CodeconnectionsActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodeconnectionsActions[_a] = { fqn: "@cdk_utils/iam.codeconnections.CodeconnectionsActions", version: "1.28.0" };
19
+ CodeconnectionsActions[_a] = { fqn: "@cdk_utils/iam.codeconnections.CodeconnectionsActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodeconnectionsActions.SERVICE_PREFIX = "codeconnections";
22
22
  /** [Write] codeconnections:CreateConnection */
@@ -241,7 +241,7 @@ class CodeconnectionsResources {
241
241
  }
242
242
  exports.CodeconnectionsResources = CodeconnectionsResources;
243
243
  _b = JSII_RTTI_SYMBOL_1;
244
- CodeconnectionsResources[_b] = { fqn: "@cdk_utils/iam.codeconnections.CodeconnectionsResources", version: "1.28.0" };
244
+ CodeconnectionsResources[_b] = { fqn: "@cdk_utils/iam.codeconnections.CodeconnectionsResources", version: "1.30.0" };
245
245
  /**
246
246
  * API operation to required IAM actions mapping for codeconnections.
247
247
  */
@@ -249,7 +249,7 @@ class CodeconnectionsOperations {
249
249
  }
250
250
  exports.CodeconnectionsOperations = CodeconnectionsOperations;
251
251
  _c = JSII_RTTI_SYMBOL_1;
252
- CodeconnectionsOperations[_c] = { fqn: "@cdk_utils/iam.codeconnections.CodeconnectionsOperations", version: "1.28.0" };
252
+ CodeconnectionsOperations[_c] = { fqn: "@cdk_utils/iam.codeconnections.CodeconnectionsOperations", version: "1.30.0" };
253
253
  /** IAM actions required for the CreateConnection API call. */
254
254
  CodeconnectionsOperations.CreateConnection = [
255
255
  "codeconnections:CreateConnection",
@@ -354,7 +354,10 @@ CodeconnectionsOperations.ListRepositoryLinks = [
354
354
  "codestar-connections:ListRepositoryLinks",
355
355
  ];
356
356
  /** IAM actions required for the ListRepositorySyncDefinitions API call. */
357
- CodeconnectionsOperations.ListRepositorySyncDefinitions = [];
357
+ CodeconnectionsOperations.ListRepositorySyncDefinitions = [
358
+ "codeconnections:ListRepositorySyncDefinitions",
359
+ "codestar-connections:ListRepositorySyncDefinitions",
360
+ ];
358
361
  /** IAM actions required for the ListSyncConfigurations API call. */
359
362
  CodeconnectionsOperations.ListSyncConfigurations = [
360
363
  "codeconnections:ListSyncConfigurations",
@@ -507,7 +510,7 @@ class CodeconnectionsConditions {
507
510
  }
508
511
  exports.CodeconnectionsConditions = CodeconnectionsConditions;
509
512
  _d = JSII_RTTI_SYMBOL_1;
510
- CodeconnectionsConditions[_d] = { fqn: "@cdk_utils/iam.codeconnections.CodeconnectionsConditions", version: "1.28.0" };
513
+ CodeconnectionsConditions[_d] = { fqn: "@cdk_utils/iam.codeconnections.CodeconnectionsConditions", version: "1.30.0" };
511
514
  /** Condition keys applicable to the CreateConnection action. */
512
515
  CodeconnectionsConditions.CreateConnectionConditionKeys = [
513
516
  "aws:RequestTag/${TagKey}",
@@ -628,4 +631,4 @@ CodeconnectionsConditions.PROVIDER_TYPE_FILTER = "codeconnections:ProviderTypeFi
628
631
  CodeconnectionsConditions.REPOSITORY_NAME = "codeconnections:RepositoryName";
629
632
  /** Condition key: codeconnections:VpcId (String) */
630
633
  CodeconnectionsConditions.VPC_ID = "codeconnections:VpcId";
631
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWNvbm5lY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9jb2RlY29ubmVjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxzREFBc0Q7QUFDdEQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsc0JBQXNCOztBQUFuQyx3REFvSkM7OztBQW5KQSw4QkFBOEI7QUFDZCxxQ0FBYyxHQUFHLGlCQUFpQixDQUFDO0FBRW5ELCtDQUErQztBQUMvQix1Q0FBZ0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUN0RSx5Q0FBeUM7QUFDekIsaUNBQVUsR0FBRyw0QkFBNEIsQ0FBQztBQUMxRCxtREFBbUQ7QUFDbkMsMkNBQW9CLEdBQUcsc0NBQXNDLENBQUM7QUFDOUUsc0RBQXNEO0FBQ3RDLDhDQUF1QixHQUN0Qyx5Q0FBeUMsQ0FBQztBQUMzQywrQ0FBK0M7QUFDL0IsdUNBQWdCLEdBQUcsa0NBQWtDLENBQUM7QUFDdEUseUNBQXlDO0FBQ3pCLGlDQUFVLEdBQUcsNEJBQTRCLENBQUM7QUFDMUQsbURBQW1EO0FBQ25DLDJDQUFvQixHQUFHLHNDQUFzQyxDQUFDO0FBQzlFLHNEQUFzRDtBQUN0Qyw4Q0FBdUIsR0FDdEMseUNBQXlDLENBQUM7QUFDM0MsMkNBQTJDO0FBQzNCLDBDQUFtQixHQUFHLCtCQUErQixDQUFDO0FBQ3RFLGdEQUFnRDtBQUNoQywrQ0FBd0IsR0FDdkMsb0NBQW9DLENBQUM7QUFDdEMscUNBQXFDO0FBQ3JCLG9DQUFhLEdBQUcseUJBQXlCLENBQUM7QUFDMUQsc0RBQXNEO0FBQ3RDLHFEQUE4QixHQUM3QywwQ0FBMEMsQ0FBQztBQUM1QyxnREFBZ0Q7QUFDaEMsK0NBQXdCLEdBQ3ZDLG9DQUFvQyxDQUFDO0FBQ3RDLCtDQUErQztBQUMvQiw4Q0FBdUIs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R0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSxzREFBc0Q7QUFDdEMsa0NBQVEsR0FBRyx5QkFBeUIsQ0FBQztBQUNyRCw4REFBOEQ7QUFDOUMsMkNBQWlCLEdBQUcsaUNBQWlDLENBQUM7QUFDdEUsNkRBQTZEO0FBQzdDLHlDQUFlLEdBQUcsZ0NBQWdDLENBQUM7QUFDbkUsMEVBQTBFO0FBQzFELHVEQUE2QixHQUM1Qyw2Q0FBNkMsQ0FBQztBQUMvQywyREFBMkQ7QUFDM0MsdUNBQWEsR0FBRyw4QkFBOEIsQ0FBQztBQUMvRCxpRUFBaUU7QUFDakQsOENBQW9CLEdBQUcsb0NBQW9DLENBQUM7QUFDNUUsNkRBQTZEO0FBQzdDLHlDQUFlLEdBQUcsZ0NBQWdDLENBQUM7QUFDbkUsb0RBQW9EO0FBQ3BDLGdDQUFNLEdBQUcsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9jb2RlY29ubmVjdGlvbnMuanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGNvZGVjb25uZWN0aW9ucyBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgQ29kZWNvbm5lY3Rpb25zQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcImNvZGVjb25uZWN0aW9uc1wiO1xuXG5cdC8qKiBbV3JpdGVdIGNvZGVjb25uZWN0aW9uczpDcmVhdGVDb25uZWN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25uZWN0aW9uID0gXCJjb2RlY29ubmVjdGlvbnM6Q3JlYXRlQ29ubmVjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBjb2RlY29ubmVjdGlvbnM6Q3JlYXRlSG9zdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSG9zdCA9IFwiY29kZWNvbm5lY3Rpb25zOkNyZWF0ZUhvc3RcIjtcblx0LyoqIFtXcml0ZV0gY29kZWNvbm5lY3Rpb25zOkNyZWF0ZVJlcG9zaXRvcnlMaW5rICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXBvc2l0b3J5TGluayA9IFwiY29kZWNvbm5lY3Rpb25zOkNyZWF0ZVJlcG9zaXRvcnlMaW5rXCI7XG5cdC8qKiBbV3JpdGVdIGNvZGVjb25uZWN0aW9uczpDcmVhdGVTeW5jQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3luY0NvbmZpZ3VyYXRpb24gPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkNyZWF0ZVN5bmNDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGNvZGVjb25uZWN0aW9uczpEZWxldGVDb25uZWN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25uZWN0aW9uID0gXCJjb2RlY29ubmVjdGlvbnM6RGVsZXRlQ29ubmVjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBjb2RlY29ubmVjdGlvbnM6RGVsZXRlSG9zdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSG9zdCA9IFwiY29kZWNvbm5lY3Rpb25zOkRlbGV0ZUhvc3RcIjtcblx0LyoqIFtXcml0ZV0gY29kZWNvbm5lY3Rpb25zOkRlbGV0ZVJlcG9zaXRvcnlMaW5rICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXBvc2l0b3J5TGluayA9IFwiY29kZWNvbm5lY3Rpb25zOkRlbGV0ZVJlcG9zaXRvcnlMaW5rXCI7XG5cdC8qKiBbV3JpdGVdIGNvZGVjb25uZWN0aW9uczpEZWxldGVTeW5jQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU3luY0NvbmZpZ3VyYXRpb24gPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkRlbGV0ZVN5bmNDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gY29kZWNvbm5lY3Rpb25zOkdldENvbm5lY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbm5lY3Rpb24gPSBcImNvZGVjb25uZWN0aW9uczpHZXRDb25uZWN0aW9uXCI7XG5cdC8qKiBbUmVhZF0gY29kZWNvbm5lY3Rpb25zOkdldENvbm5lY3Rpb25Ub2tlbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29ubmVjdGlvblRva2VuID1cblx0XHRcImNvZGVjb25uZWN0aW9uczpHZXRDb25uZWN0aW9uVG9rZW5cIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6R2V0SG9zdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SG9zdCA9IFwiY29kZWNvbm5lY3Rpb25zOkdldEhvc3RcIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6R2V0SW5kaXZpZHVhbEFjY2Vzc1Rva2VuICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbmRpdmlkdWFsQWNjZXNzVG9rZW4gPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkdldEluZGl2aWR1YWxBY2Nlc3NUb2tlblwiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpHZXRJbnN0YWxsYXRpb25VcmwgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEluc3RhbGxhdGlvblVybCA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0SW5zdGFsbGF0aW9uVXJsXCI7XG5cdC8qKiBbUmVhZF0gY29kZWNvbm5lY3Rpb25zOkdldFJlcG9zaXRvcnlMaW5rICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXBvc2l0b3J5TGluayA9IFwiY29kZWNvbm5lY3Rpb25zOkdldFJlcG9zaXRvcnlMaW5rXCI7XG5cdC8qKiBbUmVhZF0gY29kZWNvbm5lY3Rpb25zOkdldFJlcG9zaXRvcnlTeW5jU3RhdHVzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXBvc2l0b3J5U3luY1N0YXR1cyA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0UmVwb3NpdG9yeVN5bmNTdGF0dXNcIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6R2V0UmVzb3VyY2VTeW5jU3RhdHVzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXNvdXJjZVN5bmNTdGF0dXMgPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkdldFJlc291cmNlU3luY1N0YXR1c1wiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpHZXRTeW5jQmxvY2tlclN1bW1hcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFN5bmNCbG9ja2VyU3VtbWFyeSA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0U3luY0Jsb2NrZXJTdW1tYXJ5XCI7XG5cdC8qKiBbUmVhZF0gY29kZWNvbm5lY3Rpb25zOkdldFN5bmNDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTeW5jQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0U3luY0NvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtMaXN0XSBjb2RlY29ubmVjdGlvbnM6TGlzdENvbm5lY3Rpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29ubmVjdGlvbnMgPSBcImNvZGVjb25uZWN0aW9uczpMaXN0Q29ubmVjdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBjb2RlY29ubmVjdGlvbnM6TGlzdEhvc3RzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SG9zdHMgPSBcImNvZGVjb25uZWN0aW9uczpMaXN0SG9zdHNcIjtcblx0LyoqIFtMaXN0XSBjb2RlY29ubmVjdGlvbnM6TGlzdEluc3RhbGxhdGlvblRhcmdldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbnN0YWxsYXRpb25UYXJnZXRzID1cblx0XHRcImNvZGVjb25uZWN0aW9uczpMaXN0SW5zdGFsbGF0aW9uVGFyZ2V0c1wiO1xuXHQvKiogW0xpc3RdIGNvZGVjb25uZWN0aW9uczpMaXN0UmVwb3NpdG9yeUxpbmtzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVwb3NpdG9yeUxpbmtzID0gXCJjb2RlY29ubmVjdGlvbnM6TGlzdFJlcG9zaXRvcnlMaW5rc1wiO1xuXHQvKiogW0xpc3RdIGNvZGVjb25uZWN0aW9uczpMaXN0UmVwb3NpdG9yeVN5bmNEZWZpbml0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlcG9zaXRvcnlTeW5jRGVmaW5pdGlvbnMgPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkxpc3RSZXBvc2l0b3J5U3luY0RlZmluaXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gY29kZWNvbm5lY3Rpb25zOkxpc3RTeW5jQ29uZmlndXJhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTeW5jQ29uZmlndXJhdGlvbnMgPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkxpc3RTeW5jQ29uZmlndXJhdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBjb2RlY29ubmVjdGlvbnM6TGlzdFRhZ3NGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZSA9IFwiY29kZWNvbm5lY3Rpb25zOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6UGFzc0Nvbm5lY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFBhc3NDb25uZWN0aW9uID0gXCJjb2RlY29ubmVjdGlvbnM6UGFzc0Nvbm5lY3Rpb25cIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6UGFzc1JlcG9zaXRvcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFBhc3NSZXBvc2l0b3J5ID0gXCJjb2RlY29ubmVjdGlvbnM6UGFzc1JlcG9zaXRvcnlcIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6UmVnaXN0ZXJBcHBDb2RlICovXG5cdHN0YXRpYyByZWFkb25seSBSZWdpc3RlckFwcENvZGUgPSBcImNvZGVjb25uZWN0aW9uczpSZWdpc3RlckFwcENvZGVcIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6U3RhcnRBcHBSZWdpc3RyYXRpb25IYW5kc2hha2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0QXBwUmVnaXN0cmF0aW9uSGFuZHNoYWtlID1cblx0XHRcImNvZGVjb25uZWN0aW9uczpTdGFydEFwcFJlZ2lzdHJhdGlvbkhhbmRzaGFrZVwiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpTdGFydE9BdXRoSGFuZHNoYWtlICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydE9BdXRoSGFuZHNoYWtlID0gXCJjb2RlY29ubmVjdGlvbnM6U3RhcnRPQXV0aEhhbmRzaGFrZVwiO1xuXHQvKiogW1RhZ2dpbmddIGNvZGVjb25uZWN0aW9uczpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImNvZGVjb25uZWN0aW9uczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGNvZGVjb25uZWN0aW9uczpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJjb2RlY29ubmVjdGlvbnM6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBjb2RlY29ubmVjdGlvbnM6VXBkYXRlQ29ubmVjdGlvbkluc3RhbGxhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29ubmVjdGlvbkluc3RhbGxhdGlvbiA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6VXBkYXRlQ29ubmVjdGlvbkluc3RhbGxhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBjb2RlY29ubmVjdGlvbnM6VXBkYXRlSG9zdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlSG9zdCA9IFwiY29kZWNvbm5lY3Rpb25zOlVwZGF0ZUhvc3RcIjtcblx0LyoqIFtXcml0ZV0gY29kZWNvbm5lY3Rpb25zOlVwZGF0ZVJlcG9zaXRvcnlMaW5rICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBvc2l0b3J5TGluayA9IFwiY29kZWNvbm5lY3Rpb25zOlVwZGF0ZVJlcG9zaXRvcnlMaW5rXCI7XG5cdC8qKiBbV3JpdGVdIGNvZGVjb25uZWN0aW9uczpVcGRhdGVTeW5jQmxvY2tlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3luY0Jsb2NrZXIgPSBcImNvZGVjb25uZWN0aW9uczpVcGRhdGVTeW5jQmxvY2tlclwiO1xuXHQvKiogW1dyaXRlXSBjb2RlY29ubmVjdGlvbnM6VXBkYXRlU3luY0NvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN5bmNDb25maWd1cmF0aW9uID1cblx0XHRcImNvZGVjb25uZWN0aW9uczpVcGRhdGVTeW5jQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpVc2VDb25uZWN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVc2VDb25uZWN0aW9uID0gXCJjb2RlY29ubmVjdGlvbnM6VXNlQ29ubmVjdGlvblwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuYWN0aW9uR2V0Q29ubmVjdGlvbixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLmFjdGlvbkdldENvbm5lY3Rpb25Ub2tlbixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLmFjdGlvbkdldEhvc3QsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5hY3Rpb25HZXRJbmRpdmlkdWFsQWNjZXNzVG9rZW4sXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5hY3Rpb25HZXRJbnN0YWxsYXRpb25VcmwsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5hY3Rpb25HZXRSZXBvc2l0b3J5TGluayxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLmFjdGlvbkdldFJlcG9zaXRvcnlTeW5jU3RhdHVzLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuYWN0aW9uR2V0UmVzb3VyY2VTeW5jU3RhdHVzLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuYWN0aW9uR2V0U3luY0Jsb2NrZXJTdW1tYXJ5LFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuYWN0aW9uR2V0U3luY0NvbmZpZ3VyYXRpb24sXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5QYXNzQ29ubmVjdGlvbixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLlBhc3NSZXBvc2l0b3J5LFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuUmVnaXN0ZXJBcHBDb2RlLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuU3RhcnRBcHBSZWdpc3RyYXRpb25IYW5kc2hha2UsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5TdGFydE9BdXRoSGFuZHNoYWtlLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuVXNlQ29ubmVjdGlvbixcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkNyZWF0ZUNvbm5lY3Rpb24sXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5DcmVhdGVIb3N0LFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuQ3JlYXRlUmVwb3NpdG9yeUxpbmssXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5DcmVhdGVTeW5jQ29uZmlndXJhdGlvbixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkRlbGV0ZUNvbm5lY3Rpb24sXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5EZWxldGVIb3N0LFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuRGVsZXRlUmVwb3NpdG9yeUxpbmssXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5EZWxldGVTeW5jQ29uZmlndXJhdGlvbixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLlVwZGF0ZUNvbm5lY3Rpb25JbnN0YWxsYXRpb24sXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5VcGRhdGVIb3N0LFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuVXBkYXRlUmVwb3NpdG9yeUxpbmssXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5VcGRhdGVTeW5jQmxvY2tlcixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLlVwZGF0ZVN5bmNDb25maWd1cmF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkxpc3RDb25uZWN0aW9ucyxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkxpc3RIb3N0cyxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkxpc3RJbnN0YWxsYXRpb25UYXJnZXRzLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuTGlzdFJlcG9zaXRvcnlMaW5rcyxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkxpc3RSZXBvc2l0b3J5U3luY0RlZmluaXRpb25zLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuTGlzdFN5bmNDb25maWd1cmF0aW9ucyxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgQ29ubmVjdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZWNvbm5lY3Rpb25zQ29ubmVjdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBDb25uZWN0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbm5lY3Rpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIENvbm5lY3Rpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVjb25uZWN0aW9uc0Nvbm5lY3Rpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENvbm5lY3Rpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbm5lY3Rpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgSG9zdCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZWNvbm5lY3Rpb25zSG9zdEFyblByb3BzIHtcblx0LyoqIFRoZSBIb3N0SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGhvc3RJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIEhvc3QgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVjb25uZWN0aW9uc0hvc3RBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEhvc3RJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGhvc3RJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgUmVwb3NpdG9yeUxpbmsgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVjb25uZWN0aW9uc1JlcG9zaXRvcnlMaW5rQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlcG9zaXRvcnlMaW5rSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlcG9zaXRvcnlMaW5rSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBSZXBvc2l0b3J5TGluayBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZWNvbm5lY3Rpb25zUmVwb3NpdG9yeUxpbmtBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlcG9zaXRvcnlMaW5rSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXBvc2l0b3J5TGlua0lkOiBzdHJpbmc7XG59XG5cbmNvbnN0IENvbm5lY3Rpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Y29kZWNvbm5lY3Rpb25zOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y29ubmVjdGlvblxcLyg/PGNvbm5lY3Rpb25JZD5bXjovP10rKSQvO1xuY29uc3QgSG9zdEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpjb2RlY29ubmVjdGlvbnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpob3N0XFwvKD88aG9zdElkPlteOi8/XSspJC87XG5jb25zdCBSZXBvc2l0b3J5TGlua0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpjb2RlY29ubmVjdGlvbnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZXBvc2l0b3J5LWxpbmtcXC8oPzxyZXBvc2l0b3J5TGlua0lkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgY29kZWNvbm5lY3Rpb25zIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIENvZGVjb25uZWN0aW9uc1Jlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgQ29ubmVjdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb25uZWN0aW9uKHByb3BzOiBDb2RlY29ubmVjdGlvbnNDb25uZWN0aW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmNvZGVjb25uZWN0aW9uczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjb25uZWN0aW9uLyR7cHJvcHMuY29ubmVjdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBDb25uZWN0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb25uZWN0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbm5lY3Rpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgQ29ubmVjdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb25uZWN0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBDb2RlY29ubmVjdGlvbnNDb25uZWN0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25uZWN0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIENvbm5lY3Rpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29ubmVjdGlvbklkOiBtYXRjaC5ncm91cHMhLmNvbm5lY3Rpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBIb3N0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGhvc3QocHJvcHM6IENvZGVjb25uZWN0aW9uc0hvc3RBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Y29kZWNvbm5lY3Rpb25zOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Omhvc3QvJHtwcm9wcy5ob3N0SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIEhvc3QgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEhvc3RBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSG9zdEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBIb3N0IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUhvc3RBcm4oYXJuOiBzdHJpbmcpOiBDb2RlY29ubmVjdGlvbnNIb3N0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBIb3N0QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEhvc3QgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0aG9zdElkOiBtYXRjaC5ncm91cHMhLmhvc3RJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBSZXBvc2l0b3J5TGluayByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZXBvc2l0b3J5TGluayhwcm9wczogQ29kZWNvbm5lY3Rpb25zUmVwb3NpdG9yeUxpbmtBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Y29kZWNvbm5lY3Rpb25zOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnJlcG9zaXRvcnktbGluay8ke3Byb3BzLnJlcG9zaXRvcnlMaW5rSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlcG9zaXRvcnlMaW5rIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRSZXBvc2l0b3J5TGlua0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZXBvc2l0b3J5TGlua0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBSZXBvc2l0b3J5TGluayBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZXBvc2l0b3J5TGlua0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQ29kZWNvbm5lY3Rpb25zUmVwb3NpdG9yeUxpbmtBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlcG9zaXRvcnlMaW5rQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFJlcG9zaXRvcnlMaW5rIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlcG9zaXRvcnlMaW5rSWQ6IG1hdGNoLmdyb3VwcyEucmVwb3NpdG9yeUxpbmtJZCxcblx0XHR9O1xuXHR9XG59XG5cbi8qKlxuICogQVBJIG9wZXJhdGlvbiB0byByZXF1aXJlZCBJQU0gYWN0aW9ucyBtYXBwaW5nIGZvciBjb2RlY29ubmVjdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlY29ubmVjdGlvbnNPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ29ubmVjdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbm5lY3Rpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkNyZWF0ZUNvbm5lY3Rpb25cIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkNyZWF0ZUNvbm5lY3Rpb25cIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpUYWdSZXNvdXJjZVwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlSG9zdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUhvc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkNyZWF0ZUhvc3RcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkNyZWF0ZUhvc3RcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpUYWdSZXNvdXJjZVwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVwb3NpdG9yeUxpbmsgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXBvc2l0b3J5TGluazogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6Q3JlYXRlUmVwb3NpdG9yeUxpbmtcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkNyZWF0ZVJlcG9zaXRvcnlMaW5rXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UGFzc0Nvbm5lY3Rpb25cIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlBhc3NDb25uZWN0aW9uXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6VGFnUmVzb3VyY2VcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlRhZ1Jlc291cmNlXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6VXNlQ29ubmVjdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VXNlQ29ubmVjdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTeW5jQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN5bmNDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpDcmVhdGVTeW5jQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6Q3JlYXRlU3luY0NvbmZpZ3VyYXRpb25cIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpQYXNzUmVwb3NpdG9yeVwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6UGFzc1JlcG9zaXRvcnlcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDb25uZWN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29ubmVjdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6RGVsZXRlQ29ubmVjdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6RGVsZXRlQ29ubmVjdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVIb3N0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSG9zdDogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6RGVsZXRlSG9zdFwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6RGVsZXRlSG9zdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXBvc2l0b3J5TGluayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlcG9zaXRvcnlMaW5rOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpEZWxldGVSZXBvc2l0b3J5TGlua1wiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6RGVsZXRlUmVwb3NpdG9yeUxpbmtcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU3luY0NvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTeW5jQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6RGVsZXRlU3luY0NvbmZpZ3VyYXRpb25cIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkRlbGV0ZVN5bmNDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbm5lY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvbm5lY3Rpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkdldENvbm5lY3Rpb25cIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkdldENvbm5lY3Rpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SG9zdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0SG9zdDogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0SG9zdFwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6R2V0SG9zdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXBvc2l0b3J5TGluayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVwb3NpdG9yeUxpbms6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkdldFJlcG9zaXRvcnlMaW5rXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpHZXRSZXBvc2l0b3J5TGlua1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXBvc2l0b3J5U3luY1N0YXR1cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVwb3NpdG9yeVN5bmNTdGF0dXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkdldFJlcG9zaXRvcnlTeW5jU3RhdHVzXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpHZXRSZXBvc2l0b3J5U3luY1N0YXR1c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXNvdXJjZVN5bmNTdGF0dXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlc291cmNlU3luY1N0YXR1czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0UmVzb3VyY2VTeW5jU3RhdHVzXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpHZXRSZXNvdXJjZVN5bmNTdGF0dXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U3luY0Jsb2NrZXJTdW1tYXJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTeW5jQmxvY2tlclN1bW1hcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkdldFN5bmNCbG9ja2VyU3VtbWFyeVwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6R2V0U3luY0Jsb2NrZXJTdW1tYXJ5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFN5bmNDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTeW5jQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0U3luY0NvbmZpZ3VyYXRpb25cIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkdldFN5bmNDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb25uZWN0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb25uZWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6TGlzdENvbm5lY3Rpb25zXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpMaXN0Q29ubmVjdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEhvc3RzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEhvc3RzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpMaXN0SG9zdHNcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkxpc3RIb3N0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVwb3NpdG9yeUxpbmtzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlcG9zaXRvcnlMaW5rczogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6TGlzdFJlcG9zaXRvcnlMaW5rc1wiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6TGlzdFJlcG9zaXRvcnlMaW5rc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVwb3NpdG9yeVN5bmNEZWZpbml0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXBvc2l0b3J5U3luY0RlZmluaXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U3luY0NvbmZpZ3VyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN5bmNDb25maWd1cmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6TGlzdFN5bmNDb25maWd1cmF0aW9uc1wiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6TGlzdFN5bmNDb25maWd1cmF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpUYWdSZXNvdXJjZVwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlVudGFnUmVzb3VyY2VcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlVudGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlSG9zdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUhvc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlVwZGF0ZUhvc3RcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlVwZGF0ZUhvc3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVwb3NpdG9yeUxpbmsgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBvc2l0b3J5TGluazogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UGFzc0Nvbm5lY3Rpb25cIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlBhc3NDb25uZWN0aW9uXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6VXBkYXRlUmVwb3NpdG9yeUxpbmtcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlVwZGF0ZVJlcG9zaXRvcnlMaW5rXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6VXNlQ29ubmVjdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VXNlQ29ubmVjdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTeW5jQmxvY2tlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN5bmNCbG9ja2VyOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpVcGRhdGVTeW5jQmxvY2tlclwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VXBkYXRlU3luY0Jsb2NrZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU3luY0NvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTeW5jQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UGFzc1JlcG9zaXRvcnlcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlBhc3NSZXBvc2l0b3J5XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpVcGRhdGVTeW5jQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VXBkYXRlU3luY0NvbmZpZ3VyYXRpb25cIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGNvZGVjb25uZWN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIENvZGVjb25uZWN0aW9uc0NvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29ubmVjdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25uZWN0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UHJvdmlkZXJUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVIb3N0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUhvc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpWcGNJZFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUmVwb3NpdG9yeUxpbmsgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVwb3NpdG9yeUxpbmtDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVN5bmNDb25maWd1cmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN5bmNDb25maWd1cmF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6QnJhbmNoXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRJbmRpdmlkdWFsQWNjZXNzVG9rZW4gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SW5kaXZpZHVhbEFjY2Vzc1Rva2VuQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UHJvdmlkZXJUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRJbnN0YWxsYXRpb25VcmwgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SW5zdGFsbGF0aW9uVXJsQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UHJvdmlkZXJUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRSZXBvc2l0b3J5U3luY1N0YXR1cyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXBvc2l0b3J5U3luY1N0YXR1c0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkJyYW5jaFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgTGlzdENvbm5lY3Rpb25zIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb25uZWN0aW9uc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZUZpbHRlclwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgTGlzdEhvc3RzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RIb3N0c0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZUZpbHRlclwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUGFzc0Nvbm5lY3Rpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUGFzc0Nvbm5lY3Rpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpQYXNzZWRUb1NlcnZpY2VcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFBhc3NSZXBvc2l0b3J5IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFBhc3NSZXBvc2l0b3J5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UGFzc2VkVG9TZXJ2aWNlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBSZWdpc3RlckFwcENvZGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJBcHBDb2RlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6SG9zdEFyblwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRBcHBSZWdpc3RyYXRpb25IYW5kc2hha2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRBcHBSZWdpc3RyYXRpb25IYW5kc2hha2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpIb3N0QXJuXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydE9BdXRoSGFuZHNoYWtlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0T0F1dGhIYW5kc2hha2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcImF3czpUYWdLZXlzXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlQ29ubmVjdGlvbkluc3RhbGxhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb25uZWN0aW9uSW5zdGFsbGF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6SW5zdGFsbGF0aW9uSWRcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUhvc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlSG9zdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiY29kZWNvbm5lY3Rpb25zOlZwY0lkXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlU3luY0NvbmZpZ3VyYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3luY0NvbmZpZ3VyYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpCcmFuY2hcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVzZUNvbm5lY3Rpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXNlQ29ubmVjdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkJyYW5jaE5hbWVcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpGdWxsUmVwb3NpdG9yeUlkXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6T3duZXJJZFwiLFxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyQWN0aW9uXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UHJvdmlkZXJQZXJtaXNzaW9uc1JlcXVpcmVkXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UmVwb3NpdG9yeU5hbWVcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjb2RlY29ubmVjdGlvbnM6QnJhbmNoIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBCUkFOQ0ggPSBcImNvZGVjb25uZWN0aW9uczpCcmFuY2hcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGNvZGVjb25uZWN0aW9uczpCcmFuY2hOYW1lIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBCUkFOQ0hfTkFNRSA9IFwiY29kZWNvbm5lY3Rpb25zOkJyYW5jaE5hbWVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGNvZGVjb25uZWN0aW9uczpGdWxsUmVwb3NpdG9yeUlkIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBGVUxMX1JFUE9TSVRPUllfSUQgPSBcImNvZGVjb25uZWN0aW9uczpGdWxsUmVwb3NpdG9yeUlkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjb2RlY29ubmVjdGlvbnM6SG9zdEFybiAoQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSE9TVF9BUk4gPSBcImNvZGVjb25uZWN0aW9uczpIb3N0QXJuXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjb2RlY29ubmVjdGlvbnM6SW5zdGFsbGF0aW9uSWQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IElOU1RBTExBVElPTl9JRCA9IFwiY29kZWNvbm5lY3Rpb25zOkluc3RhbGxhdGlvbklkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjb2RlY29ubmVjdGlvbnM6T3duZXJJZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgT1dORVJfSUQgPSBcImNvZGVjb25uZWN0aW9uczpPd25lcklkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjb2RlY29ubmVjdGlvbnM6UGFzc2VkVG9TZXJ2aWNlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBQQVNTRURfVE9fU0VSVklDRSA9IFwiY29kZWNvbm5lY3Rpb25zOlBhc3NlZFRvU2VydmljZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyQWN0aW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBQUk9WSURFUl9BQ1RJT04gPSBcImNvZGVjb25uZWN0aW9uczpQcm92aWRlckFjdGlvblwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyUGVybWlzc2lvbnNSZXF1aXJlZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUFJPVklERVJfUEVSTUlTU0lPTlNfUkVRVUlSRUQgPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyUGVybWlzc2lvbnNSZXF1aXJlZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUFJPVklERVJfVFlQRSA9IFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZUZpbHRlciAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUFJPVklERVJfVFlQRV9GSUxURVIgPSBcImNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVGaWx0ZXJcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGNvZGVjb25uZWN0aW9uczpSZXBvc2l0b3J5TmFtZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUkVQT1NJVE9SWV9OQU1FID0gXCJjb2RlY29ubmVjdGlvbnM6UmVwb3NpdG9yeU5hbWVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGNvZGVjb25uZWN0aW9uczpWcGNJZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVlBDX0lEID0gXCJjb2RlY29ubmVjdGlvbnM6VnBjSWRcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgY29kZWNvbm5lY3Rpb25zOkJyYW5jaGAuXG5cdCAqL1xuXHRzdGF0aWMgYnJhbmNoKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiY29kZWNvbm5lY3Rpb25zOkJyYW5jaFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgY29kZWNvbm5lY3Rpb25zOkJyYW5jaE5hbWVgLlxuXHQgKi9cblx0c3RhdGljIGJyYW5jaE5hbWUodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJjb2RlY29ubmVjdGlvbnM6QnJhbmNoTmFtZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgY29kZWNvbm5lY3Rpb25zOkZ1bGxSZXBvc2l0b3J5SWRgLlxuXHQgKi9cblx0c3RhdGljIGZ1bGxSZXBvc2l0b3J5SWQoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpGdWxsUmVwb3NpdG9yeUlkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBjb2RlY29ubmVjdGlvbnM6SG9zdEFybmAuXG5cdCAqL1xuXHRzdGF0aWMgaG9zdEFSTih2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IEFybkVxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpIb3N0QXJuXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBjb2RlY29ubmVjdGlvbnM6SW5zdGFsbGF0aW9uSWRgLlxuXHQgKi9cblx0c3RhdGljIGluc3RhbGxhdGlvbklkKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiY29kZWNvbm5lY3Rpb25zOkluc3RhbGxhdGlvbklkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBjb2RlY29ubmVjdGlvbnM6T3duZXJJZGAuXG5cdCAqL1xuXHRzdGF0aWMgb3duZXJJZCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpPd25lcklkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBjb2RlY29ubmVjdGlvbnM6UGFzc2VkVG9TZXJ2aWNlYC5cblx0ICovXG5cdHN0YXRpYyBwYXNzZWRUb1NlcnZpY2UoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpQYXNzZWRUb1NlcnZpY2VcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGNvZGVjb25uZWN0aW9uczpQcm92aWRlckFjdGlvbmAuXG5cdCAqL1xuXHRzdGF0aWMgcHJvdmlkZXJBY3Rpb24odmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJjb2RlY29ubmVjdGlvbnM6UHJvdmlkZXJBY3Rpb25cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGNvZGVjb25uZWN0aW9uczpQcm92aWRlclBlcm1pc3Npb25zUmVxdWlyZWRgLlxuXHQgKi9cblx0c3RhdGljIHByb3ZpZGVyUGVybWlzc2lvbnNSZXF1aXJlZChcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpQcm92aWRlclBlcm1pc3Npb25zUmVxdWlyZWRcIjogdmFsdWUgfSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVgLlxuXHQgKi9cblx0c3RhdGljIHByb3ZpZGVyVHlwZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVGaWx0ZXJgLlxuXHQgKi9cblx0c3RhdGljIHByb3ZpZGVyVHlwZUZpbHRlcihcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZUZpbHRlclwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgY29kZWNvbm5lY3Rpb25zOlJlcG9zaXRvcnlOYW1lYC5cblx0ICovXG5cdHN0YXRpYyByZXBvc2l0b3J5TmFtZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpSZXBvc2l0b3J5TmFtZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgY29kZWNvbm5lY3Rpb25zOlZwY0lkYC5cblx0ICovXG5cdHN0YXRpYyB2cGNJZCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpWcGNJZFwiOiB2YWx1ZSB9IH07XG5cdH1cbn1cbiJdfQ==
634
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWNvbm5lY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9jb2RlY29ubmVjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxzREFBc0Q7QUFDdEQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsc0JBQXNCOztBQUFuQyx3REFvSkM7OztBQW5KQSw4QkFBOEI7QUFDZCxxQ0FBYyxHQUFHLGlCQUFpQixDQUFDO0FBRW5ELCtDQUErQztBQUMvQix1Q0FBZ0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUN0RSx5Q0FBeUM7QUFDekIsaUNBQVUsR0FBRyw0QkFBNEIsQ0FBQztBQUMxRCxtREFBbUQ7QUFDbkMsMkNBQW9CLEdBQUcsc0NBQXNDLENBQUM7QUFDOUUsc0RBQXNEO0FBQ3RDLDhDQUF1QixHQUN0Qyx5Q0FBeUMsQ0FBQztBQUMzQywrQ0FBK0M7QUFDL0IsdUNBQWdCLEdBQUcsa0NBQWtDLENBQUM7QUFDdEUseUNBQXlDO0FBQ3pCLGlDQUFVLEdBQUcsNEJBQTRCLENBQUM7QUFDMUQsbURBQW1EO0FBQ25DLDJDQUFvQixHQUFHLHNDQUFzQyxDQUFDO0FBQzlFLHNEQUFzRDtBQUN0Qyw4Q0FBdUIsR0FDdEMseUNBQXlDLENBQUM7QUFDM0MsMkNBQTJDO0FBQzNCLDBDQUFtQixHQUFHLCtCQUErQixDQUFDO0FBQ3RFLGdEQUFnRDtBQUNoQywrQ0FBd0IsR0FDdkMsb0NBQW9DLENBQUM7QUFDdEMscUNBQXFDO0FBQ3JCLG9DQUFhLEdBQUcseUJBQXlCLENBQUM7QUFDMUQsc0RBQXNEO0FBQ3RDLHFEQUE4QixHQUM3QywwQ0FBMEMsQ0FBQztBQUM1QyxnREFBZ0Q7QUFDaEMsK0NBQXdCLEdBQ3ZDLG9DQUFvQyxDQUFDO0FBQ3RDLCtDQUErQztBQUMvQiw4Q0FBdUIs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O0FBQ3JELDZEQUE2RDtBQUM3Qyx5Q0FBZSxHQUFHLGdDQUFnQyxDQUFDO0FBQ25FLHNEQUFzRDtBQUN0QyxrQ0FBUSxHQUFHLHlCQUF5QixDQUFDO0FBQ3JELDhEQUE4RDtBQUM5QywyQ0FBaUIsR0FBRyxpQ0FBaUMsQ0FBQztBQUN0RSw2REFBNkQ7QUFDN0MseUNBQWUsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSwwRUFBMEU7QUFDMUQsdURBQTZCLEdBQzVDLDZDQUE2QyxDQUFDO0FBQy9DLDJEQUEyRDtBQUMzQyx1Q0FBYSxHQUFHLDhCQUE4QixDQUFDO0FBQy9ELGlFQUFpRTtBQUNqRCw4Q0FBb0IsR0FBRyxvQ0FBb0MsQ0FBQztBQUM1RSw2REFBNkQ7QUFDN0MseUNBQWUsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSxvREFBb0Q7QUFDcEMsZ0NBQU0sR0FBRyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2NvZGVjb25uZWN0aW9ucy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgY29kZWNvbm5lY3Rpb25zIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlY29ubmVjdGlvbnNBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiY29kZWNvbm5lY3Rpb25zXCI7XG5cblx0LyoqIFtXcml0ZV0gY29kZWNvbm5lY3Rpb25zOkNyZWF0ZUNvbm5lY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbm5lY3Rpb24gPSBcImNvZGVjb25uZWN0aW9uczpDcmVhdGVDb25uZWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGNvZGVjb25uZWN0aW9uczpDcmVhdGVIb3N0ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVIb3N0ID0gXCJjb2RlY29ubmVjdGlvbnM6Q3JlYXRlSG9zdFwiO1xuXHQvKiogW1dyaXRlXSBjb2RlY29ubmVjdGlvbnM6Q3JlYXRlUmVwb3NpdG9yeUxpbmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlcG9zaXRvcnlMaW5rID0gXCJjb2RlY29ubmVjdGlvbnM6Q3JlYXRlUmVwb3NpdG9yeUxpbmtcIjtcblx0LyoqIFtXcml0ZV0gY29kZWNvbm5lY3Rpb25zOkNyZWF0ZVN5bmNDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTeW5jQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6Q3JlYXRlU3luY0NvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gY29kZWNvbm5lY3Rpb25zOkRlbGV0ZUNvbm5lY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbm5lY3Rpb24gPSBcImNvZGVjb25uZWN0aW9uczpEZWxldGVDb25uZWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGNvZGVjb25uZWN0aW9uczpEZWxldGVIb3N0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVIb3N0ID0gXCJjb2RlY29ubmVjdGlvbnM6RGVsZXRlSG9zdFwiO1xuXHQvKiogW1dyaXRlXSBjb2RlY29ubmVjdGlvbnM6RGVsZXRlUmVwb3NpdG9yeUxpbmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlcG9zaXRvcnlMaW5rID0gXCJjb2RlY29ubmVjdGlvbnM6RGVsZXRlUmVwb3NpdG9yeUxpbmtcIjtcblx0LyoqIFtXcml0ZV0gY29kZWNvbm5lY3Rpb25zOkRlbGV0ZVN5bmNDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTeW5jQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6RGVsZXRlU3luY0NvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6R2V0Q29ubmVjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29ubmVjdGlvbiA9IFwiY29kZWNvbm5lY3Rpb25zOkdldENvbm5lY3Rpb25cIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6R2V0Q29ubmVjdGlvblRva2VuICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb25uZWN0aW9uVG9rZW4gPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkdldENvbm5lY3Rpb25Ub2tlblwiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpHZXRIb3N0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRIb3N0ID0gXCJjb2RlY29ubmVjdGlvbnM6R2V0SG9zdFwiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpHZXRJbmRpdmlkdWFsQWNjZXNzVG9rZW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEluZGl2aWR1YWxBY2Nlc3NUb2tlbiA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0SW5kaXZpZHVhbEFjY2Vzc1Rva2VuXCI7XG5cdC8qKiBbUmVhZF0gY29kZWNvbm5lY3Rpb25zOkdldEluc3RhbGxhdGlvblVybCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SW5zdGFsbGF0aW9uVXJsID1cblx0XHRcImNvZGVjb25uZWN0aW9uczpHZXRJbnN0YWxsYXRpb25VcmxcIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6R2V0UmVwb3NpdG9yeUxpbmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlcG9zaXRvcnlMaW5rID0gXCJjb2RlY29ubmVjdGlvbnM6R2V0UmVwb3NpdG9yeUxpbmtcIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6R2V0UmVwb3NpdG9yeVN5bmNTdGF0dXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlcG9zaXRvcnlTeW5jU3RhdHVzID1cblx0XHRcImNvZGVjb25uZWN0aW9uczpHZXRSZXBvc2l0b3J5U3luY1N0YXR1c1wiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpHZXRSZXNvdXJjZVN5bmNTdGF0dXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlc291cmNlU3luY1N0YXR1cyA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0UmVzb3VyY2VTeW5jU3RhdHVzXCI7XG5cdC8qKiBbUmVhZF0gY29kZWNvbm5lY3Rpb25zOkdldFN5bmNCbG9ja2VyU3VtbWFyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U3luY0Jsb2NrZXJTdW1tYXJ5ID1cblx0XHRcImNvZGVjb25uZWN0aW9uczpHZXRTeW5jQmxvY2tlclN1bW1hcnlcIjtcblx0LyoqIFtSZWFkXSBjb2RlY29ubmVjdGlvbnM6R2V0U3luY0NvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFN5bmNDb25maWd1cmF0aW9uID1cblx0XHRcImNvZGVjb25uZWN0aW9uczpHZXRTeW5jQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW0xpc3RdIGNvZGVjb25uZWN0aW9uczpMaXN0Q29ubmVjdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb25uZWN0aW9ucyA9IFwiY29kZWNvbm5lY3Rpb25zOkxpc3RDb25uZWN0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGNvZGVjb25uZWN0aW9uczpMaXN0SG9zdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RIb3N0cyA9IFwiY29kZWNvbm5lY3Rpb25zOkxpc3RIb3N0c1wiO1xuXHQvKiogW0xpc3RdIGNvZGVjb25uZWN0aW9uczpMaXN0SW5zdGFsbGF0aW9uVGFyZ2V0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEluc3RhbGxhdGlvblRhcmdldHMgPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkxpc3RJbnN0YWxsYXRpb25UYXJnZXRzXCI7XG5cdC8qKiBbTGlzdF0gY29kZWNvbm5lY3Rpb25zOkxpc3RSZXBvc2l0b3J5TGlua3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXBvc2l0b3J5TGlua3MgPSBcImNvZGVjb25uZWN0aW9uczpMaXN0UmVwb3NpdG9yeUxpbmtzXCI7XG5cdC8qKiBbTGlzdF0gY29kZWNvbm5lY3Rpb25zOkxpc3RSZXBvc2l0b3J5U3luY0RlZmluaXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVwb3NpdG9yeVN5bmNEZWZpbml0aW9ucyA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6TGlzdFJlcG9zaXRvcnlTeW5jRGVmaW5pdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBjb2RlY29ubmVjdGlvbnM6TGlzdFN5bmNDb25maWd1cmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN5bmNDb25maWd1cmF0aW9ucyA9XG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6TGlzdFN5bmNDb25maWd1cmF0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGNvZGVjb25uZWN0aW9uczpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJjb2RlY29ubmVjdGlvbnM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpQYXNzQ29ubmVjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUGFzc0Nvbm5lY3Rpb24gPSBcImNvZGVjb25uZWN0aW9uczpQYXNzQ29ubmVjdGlvblwiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpQYXNzUmVwb3NpdG9yeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUGFzc1JlcG9zaXRvcnkgPSBcImNvZGVjb25uZWN0aW9uczpQYXNzUmVwb3NpdG9yeVwiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpSZWdpc3RlckFwcENvZGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyQXBwQ29kZSA9IFwiY29kZWNvbm5lY3Rpb25zOlJlZ2lzdGVyQXBwQ29kZVwiO1xuXHQvKiogW1JlYWRdIGNvZGVjb25uZWN0aW9uczpTdGFydEFwcFJlZ2lzdHJhdGlvbkhhbmRzaGFrZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRBcHBSZWdpc3RyYXRpb25IYW5kc2hha2UgPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlN0YXJ0QXBwUmVnaXN0cmF0aW9uSGFuZHNoYWtlXCI7XG5cdC8qKiBbUmVhZF0gY29kZWNvbm5lY3Rpb25zOlN0YXJ0T0F1dGhIYW5kc2hha2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0T0F1dGhIYW5kc2hha2UgPSBcImNvZGVjb25uZWN0aW9uczpTdGFydE9BdXRoSGFuZHNoYWtlXCI7XG5cdC8qKiBbVGFnZ2luZ10gY29kZWNvbm5lY3Rpb25zOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwiY29kZWNvbm5lY3Rpb25zOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10gY29kZWNvbm5lY3Rpb25zOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImNvZGVjb25uZWN0aW9uczpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGNvZGVjb25uZWN0aW9uczpVcGRhdGVDb25uZWN0aW9uSW5zdGFsbGF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb25uZWN0aW9uSW5zdGFsbGF0aW9uID1cblx0XHRcImNvZGVjb25uZWN0aW9uczpVcGRhdGVDb25uZWN0aW9uSW5zdGFsbGF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGNvZGVjb25uZWN0aW9uczpVcGRhdGVIb3N0ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVIb3N0ID0gXCJjb2RlY29ubmVjdGlvbnM6VXBkYXRlSG9zdFwiO1xuXHQvKiogW1dyaXRlXSBjb2RlY29ubmVjdGlvbnM6VXBkYXRlUmVwb3NpdG9yeUxpbmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlcG9zaXRvcnlMaW5rID0gXCJjb2RlY29ubmVjdGlvbnM6VXBkYXRlUmVwb3NpdG9yeUxpbmtcIjtcblx0LyoqIFtXcml0ZV0gY29kZWNvbm5lY3Rpb25zOlVwZGF0ZVN5bmNCbG9ja2VyICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTeW5jQmxvY2tlciA9IFwiY29kZWNvbm5lY3Rpb25zOlVwZGF0ZVN5bmNCbG9ja2VyXCI7XG5cdC8qKiBbV3JpdGVdIGNvZGVjb25uZWN0aW9uczpVcGRhdGVTeW5jQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3luY0NvbmZpZ3VyYXRpb24gPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlVwZGF0ZVN5bmNDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gY29kZWNvbm5lY3Rpb25zOlVzZUNvbm5lY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVzZUNvbm5lY3Rpb24gPSBcImNvZGVjb25uZWN0aW9uczpVc2VDb25uZWN0aW9uXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5hY3Rpb25HZXRDb25uZWN0aW9uLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuYWN0aW9uR2V0Q29ubmVjdGlvblRva2VuLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuYWN0aW9uR2V0SG9zdCxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLmFjdGlvbkdldEluZGl2aWR1YWxBY2Nlc3NUb2tlbixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLmFjdGlvbkdldEluc3RhbGxhdGlvblVybCxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLmFjdGlvbkdldFJlcG9zaXRvcnlMaW5rLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuYWN0aW9uR2V0UmVwb3NpdG9yeVN5bmNTdGF0dXMsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5hY3Rpb25HZXRSZXNvdXJjZVN5bmNTdGF0dXMsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5hY3Rpb25HZXRTeW5jQmxvY2tlclN1bW1hcnksXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5hY3Rpb25HZXRTeW5jQ29uZmlndXJhdGlvbixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLlBhc3NDb25uZWN0aW9uLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuUGFzc1JlcG9zaXRvcnksXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5SZWdpc3RlckFwcENvZGUsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5TdGFydEFwcFJlZ2lzdHJhdGlvbkhhbmRzaGFrZSxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLlN0YXJ0T0F1dGhIYW5kc2hha2UsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5Vc2VDb25uZWN0aW9uLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuQ3JlYXRlQ29ubmVjdGlvbixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkNyZWF0ZUhvc3QsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5DcmVhdGVSZXBvc2l0b3J5TGluayxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkNyZWF0ZVN5bmNDb25maWd1cmF0aW9uLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuRGVsZXRlQ29ubmVjdGlvbixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkRlbGV0ZUhvc3QsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5EZWxldGVSZXBvc2l0b3J5TGluayxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLkRlbGV0ZVN5bmNDb25maWd1cmF0aW9uLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuVXBkYXRlQ29ubmVjdGlvbkluc3RhbGxhdGlvbixcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLlVwZGF0ZUhvc3QsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5VcGRhdGVSZXBvc2l0b3J5TGluayxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLlVwZGF0ZVN5bmNCbG9ja2VyLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuVXBkYXRlU3luY0NvbmZpZ3VyYXRpb24sXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuTGlzdENvbm5lY3Rpb25zLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuTGlzdEhvc3RzLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuTGlzdEluc3RhbGxhdGlvblRhcmdldHMsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5MaXN0UmVwb3NpdG9yeUxpbmtzLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuTGlzdFJlcG9zaXRvcnlTeW5jRGVmaW5pdGlvbnMsXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5MaXN0U3luY0NvbmZpZ3VyYXRpb25zLFxuXHRcdENvZGVjb25uZWN0aW9uc0FjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0Q29kZWNvbm5lY3Rpb25zQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRDb2RlY29ubmVjdGlvbnNBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBDb25uZWN0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlY29ubmVjdGlvbnNDb25uZWN0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIENvbm5lY3Rpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29ubmVjdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgQ29ubmVjdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZWNvbm5lY3Rpb25zQ29ubmVjdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29ubmVjdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29ubmVjdGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBIb3N0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlY29ubmVjdGlvbnNIb3N0QXJuUHJvcHMge1xuXHQvKiogVGhlIEhvc3RJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaG9zdElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgSG9zdCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZWNvbm5lY3Rpb25zSG9zdEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgSG9zdElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaG9zdElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBSZXBvc2l0b3J5TGluayBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZWNvbm5lY3Rpb25zUmVwb3NpdG9yeUxpbmtBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVwb3NpdG9yeUxpbmtJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVwb3NpdG9yeUxpbmtJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlcG9zaXRvcnlMaW5rIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlY29ubmVjdGlvbnNSZXBvc2l0b3J5TGlua0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVwb3NpdG9yeUxpbmtJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlcG9zaXRvcnlMaW5rSWQ6IHN0cmluZztcbn1cblxuY29uc3QgQ29ubmVjdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpjb2RlY29ubmVjdGlvbnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb25uZWN0aW9uXFwvKD88Y29ubmVjdGlvbklkPlteOi8/XSspJC87XG5jb25zdCBIb3N0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmNvZGVjb25uZWN0aW9uczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmhvc3RcXC8oPzxob3N0SWQ+W146Lz9dKykkLztcbmNvbnN0IFJlcG9zaXRvcnlMaW5rQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmNvZGVjb25uZWN0aW9uczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnJlcG9zaXRvcnktbGlua1xcLyg/PHJlcG9zaXRvcnlMaW5rSWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBjb2RlY29ubmVjdGlvbnMgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgQ29kZWNvbm5lY3Rpb25zUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBDb25uZWN0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbm5lY3Rpb24ocHJvcHM6IENvZGVjb25uZWN0aW9uc0Nvbm5lY3Rpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Y29kZWNvbm5lY3Rpb25zOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNvbm5lY3Rpb24vJHtwcm9wcy5jb25uZWN0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIENvbm5lY3Rpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbm5lY3Rpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29ubmVjdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBDb25uZWN0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbm5lY3Rpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IENvZGVjb25uZWN0aW9uc0Nvbm5lY3Rpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbm5lY3Rpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQ29ubmVjdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjb25uZWN0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuY29ubmVjdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIEhvc3QgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaG9zdChwcm9wczogQ29kZWNvbm5lY3Rpb25zSG9zdEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpjb2RlY29ubmVjdGlvbnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06aG9zdC8ke3Byb3BzLmhvc3RJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgSG9zdCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSG9zdEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBIb3N0QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIEhvc3QgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSG9zdEFybihhcm46IHN0cmluZyk6IENvZGVjb25uZWN0aW9uc0hvc3RBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEhvc3RBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSG9zdCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRob3N0SWQ6IG1hdGNoLmdyb3VwcyEuaG9zdElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFJlcG9zaXRvcnlMaW5rIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlcG9zaXRvcnlMaW5rKHByb3BzOiBDb2RlY29ubmVjdGlvbnNSZXBvc2l0b3J5TGlua0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpjb2RlY29ubmVjdGlvbnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVwb3NpdG9yeS1saW5rLyR7cHJvcHMucmVwb3NpdG9yeUxpbmtJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgUmVwb3NpdG9yeUxpbmsgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlcG9zaXRvcnlMaW5rQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlcG9zaXRvcnlMaW5rQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFJlcG9zaXRvcnlMaW5rIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlcG9zaXRvcnlMaW5rQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBDb2RlY29ubmVjdGlvbnNSZXBvc2l0b3J5TGlua0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVwb3NpdG9yeUxpbmtBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUmVwb3NpdG9yeUxpbmsgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVwb3NpdG9yeUxpbmtJZDogbWF0Y2guZ3JvdXBzIS5yZXBvc2l0b3J5TGlua0lkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGNvZGVjb25uZWN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIENvZGVjb25uZWN0aW9uc09wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDb25uZWN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29ubmVjdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6Q3JlYXRlQ29ubmVjdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6Q3JlYXRlQ29ubmVjdGlvblwiLFxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlRhZ1Jlc291cmNlXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVIb3N0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSG9zdDogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6Q3JlYXRlSG9zdFwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6Q3JlYXRlSG9zdFwiLFxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlRhZ1Jlc291cmNlXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVSZXBvc2l0b3J5TGluayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlcG9zaXRvcnlMaW5rOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpDcmVhdGVSZXBvc2l0b3J5TGlua1wiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6Q3JlYXRlUmVwb3NpdG9yeUxpbmtcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpQYXNzQ29ubmVjdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6UGFzc0Nvbm5lY3Rpb25cIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpUYWdSZXNvdXJjZVwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VGFnUmVzb3VyY2VcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpVc2VDb25uZWN0aW9uXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpVc2VDb25uZWN0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVN5bmNDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3luY0NvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkNyZWF0ZVN5bmNDb25maWd1cmF0aW9uXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpDcmVhdGVTeW5jQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlBhc3NSZXBvc2l0b3J5XCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpQYXNzUmVwb3NpdG9yeVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNvbm5lY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25uZWN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpEZWxldGVDb25uZWN0aW9uXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpEZWxldGVDb25uZWN0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUhvc3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVIb3N0OiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpEZWxldGVIb3N0XCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpEZWxldGVIb3N0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlcG9zaXRvcnlMaW5rIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVwb3NpdG9yeUxpbms6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkRlbGV0ZVJlcG9zaXRvcnlMaW5rXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpEZWxldGVSZXBvc2l0b3J5TGlua1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVTeW5jQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVN5bmNDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpEZWxldGVTeW5jQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6RGVsZXRlU3luY0NvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29ubmVjdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q29ubmVjdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0Q29ubmVjdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6R2V0Q29ubmVjdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRIb3N0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRIb3N0OiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpHZXRIb3N0XCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpHZXRIb3N0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlcG9zaXRvcnlMaW5rIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXBvc2l0b3J5TGluazogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0UmVwb3NpdG9yeUxpbmtcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkdldFJlcG9zaXRvcnlMaW5rXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlcG9zaXRvcnlTeW5jU3RhdHVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXBvc2l0b3J5U3luY1N0YXR1czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0UmVwb3NpdG9yeVN5bmNTdGF0dXNcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkdldFJlcG9zaXRvcnlTeW5jU3RhdHVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlc291cmNlU3luY1N0YXR1cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVzb3VyY2VTeW5jU3RhdHVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpHZXRSZXNvdXJjZVN5bmNTdGF0dXNcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkdldFJlc291cmNlU3luY1N0YXR1c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRTeW5jQmxvY2tlclN1bW1hcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFN5bmNCbG9ja2VyU3VtbWFyeTogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6R2V0U3luY0Jsb2NrZXJTdW1tYXJ5XCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpHZXRTeW5jQmxvY2tlclN1bW1hcnlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U3luY0NvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFN5bmNDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpHZXRTeW5jQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6R2V0U3luY0NvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvbm5lY3Rpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbm5lY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpMaXN0Q29ubmVjdGlvbnNcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOkxpc3RDb25uZWN0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SG9zdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SG9zdHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkxpc3RIb3N0c1wiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6TGlzdEhvc3RzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZXBvc2l0b3J5TGlua3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVwb3NpdG9yeUxpbmtzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpMaXN0UmVwb3NpdG9yeUxpbmtzXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpMaXN0UmVwb3NpdG9yeUxpbmtzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZXBvc2l0b3J5U3luY0RlZmluaXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlcG9zaXRvcnlTeW5jRGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkxpc3RSZXBvc2l0b3J5U3luY0RlZmluaXRpb25zXCIsXG5cdFx0XCJjb2Rlc3Rhci1jb25uZWN0aW9uczpMaXN0UmVwb3NpdG9yeVN5bmNEZWZpbml0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U3luY0NvbmZpZ3VyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN5bmNDb25maWd1cmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6TGlzdFN5bmNDb25maWd1cmF0aW9uc1wiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6TGlzdFN5bmNDb25maWd1cmF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpUYWdSZXNvdXJjZVwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlVudGFnUmVzb3VyY2VcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlVudGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlSG9zdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUhvc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlVwZGF0ZUhvc3RcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlVwZGF0ZUhvc3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVwb3NpdG9yeUxpbmsgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBvc2l0b3J5TGluazogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UGFzc0Nvbm5lY3Rpb25cIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlBhc3NDb25uZWN0aW9uXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6VXBkYXRlUmVwb3NpdG9yeUxpbmtcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlVwZGF0ZVJlcG9zaXRvcnlMaW5rXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6VXNlQ29ubmVjdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VXNlQ29ubmVjdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTeW5jQmxvY2tlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN5bmNCbG9ja2VyOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpVcGRhdGVTeW5jQmxvY2tlclwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VXBkYXRlU3luY0Jsb2NrZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU3luY0NvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTeW5jQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UGFzc1JlcG9zaXRvcnlcIixcblx0XHRcImNvZGVzdGFyLWNvbm5lY3Rpb25zOlBhc3NSZXBvc2l0b3J5XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpVcGRhdGVTeW5jQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiY29kZXN0YXItY29ubmVjdGlvbnM6VXBkYXRlU3luY0NvbmZpZ3VyYXRpb25cIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGNvZGVjb25uZWN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIENvZGVjb25uZWN0aW9uc0NvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29ubmVjdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25uZWN0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UHJvdmlkZXJUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVIb3N0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUhvc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpWcGNJZFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUmVwb3NpdG9yeUxpbmsgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVwb3NpdG9yeUxpbmtDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVN5bmNDb25maWd1cmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN5bmNDb25maWd1cmF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6QnJhbmNoXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRJbmRpdmlkdWFsQWNjZXNzVG9rZW4gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SW5kaXZpZHVhbEFjY2Vzc1Rva2VuQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UHJvdmlkZXJUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRJbnN0YWxsYXRpb25VcmwgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SW5zdGFsbGF0aW9uVXJsQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UHJvdmlkZXJUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRSZXBvc2l0b3J5U3luY1N0YXR1cyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXBvc2l0b3J5U3luY1N0YXR1c0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkJyYW5jaFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgTGlzdENvbm5lY3Rpb25zIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb25uZWN0aW9uc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZUZpbHRlclwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgTGlzdEhvc3RzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RIb3N0c0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZUZpbHRlclwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUGFzc0Nvbm5lY3Rpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUGFzc0Nvbm5lY3Rpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpQYXNzZWRUb1NlcnZpY2VcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFBhc3NSZXBvc2l0b3J5IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFBhc3NSZXBvc2l0b3J5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UGFzc2VkVG9TZXJ2aWNlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBSZWdpc3RlckFwcENvZGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJBcHBDb2RlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6SG9zdEFyblwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRBcHBSZWdpc3RyYXRpb25IYW5kc2hha2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRBcHBSZWdpc3RyYXRpb25IYW5kc2hha2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpIb3N0QXJuXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydE9BdXRoSGFuZHNoYWtlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0T0F1dGhIYW5kc2hha2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcImF3czpUYWdLZXlzXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlQ29ubmVjdGlvbkluc3RhbGxhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb25uZWN0aW9uSW5zdGFsbGF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6SW5zdGFsbGF0aW9uSWRcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUhvc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlSG9zdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiY29kZWNvbm5lY3Rpb25zOlZwY0lkXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlU3luY0NvbmZpZ3VyYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3luY0NvbmZpZ3VyYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImNvZGVjb25uZWN0aW9uczpCcmFuY2hcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVzZUNvbm5lY3Rpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXNlQ29ubmVjdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiY29kZWNvbm5lY3Rpb25zOkJyYW5jaE5hbWVcIixcblx0XHRcImNvZGVjb25uZWN0aW9uczpGdWxsUmVwb3NpdG9yeUlkXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6T3duZXJJZFwiLFxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyQWN0aW9uXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UHJvdmlkZXJQZXJtaXNzaW9uc1JlcXVpcmVkXCIsXG5cdFx0XCJjb2RlY29ubmVjdGlvbnM6UmVwb3NpdG9yeU5hbWVcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjb2RlY29ubmVjdGlvbnM6QnJhbmNoIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBCUkFOQ0ggPSBcImNvZGVjb25uZWN0aW9uczpCcmFuY2hcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGNvZGVjb25uZWN0aW9uczpCcmFuY2hOYW1lIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBCUkFOQ0hfTkFNRSA9IFwiY29kZWNvbm5lY3Rpb25zOkJyYW5jaE5hbWVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGNvZGVjb25uZWN0aW9uczpGdWxsUmVwb3NpdG9yeUlkIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBGVUxMX1JFUE9TSVRPUllfSUQgPSBcImNvZGVjb25uZWN0aW9uczpGdWxsUmVwb3NpdG9yeUlkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjb2RlY29ubmVjdGlvbnM6SG9zdEFybiAoQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSE9TVF9BUk4gPSBcImNvZGVjb25uZWN0aW9uczpIb3N0QXJuXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjb2RlY29ubmVjdGlvbnM6SW5zdGFsbGF0aW9uSWQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IElOU1RBTExBVElPTl9JRCA9IFwiY29kZWNvbm5lY3Rpb25zOkluc3RhbGxhdGlvbklkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjb2RlY29ubmVjdGlvbnM6T3duZXJJZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgT1dORVJfSUQgPSBcImNvZGVjb25uZWN0aW9uczpPd25lcklkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjb2RlY29ubmVjdGlvbnM6UGFzc2VkVG9TZXJ2aWNlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBQQVNTRURfVE9fU0VSVklDRSA9IFwiY29kZWNvbm5lY3Rpb25zOlBhc3NlZFRvU2VydmljZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyQWN0aW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBQUk9WSURFUl9BQ1RJT04gPSBcImNvZGVjb25uZWN0aW9uczpQcm92aWRlckFjdGlvblwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyUGVybWlzc2lvbnNSZXF1aXJlZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUFJPVklERVJfUEVSTUlTU0lPTlNfUkVRVUlSRUQgPVxuXHRcdFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyUGVybWlzc2lvbnNSZXF1aXJlZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUFJPVklERVJfVFlQRSA9IFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZUZpbHRlciAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUFJPVklERVJfVFlQRV9GSUxURVIgPSBcImNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVGaWx0ZXJcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGNvZGVjb25uZWN0aW9uczpSZXBvc2l0b3J5TmFtZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUkVQT1NJVE9SWV9OQU1FID0gXCJjb2RlY29ubmVjdGlvbnM6UmVwb3NpdG9yeU5hbWVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGNvZGVjb25uZWN0aW9uczpWcGNJZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVlBDX0lEID0gXCJjb2RlY29ubmVjdGlvbnM6VnBjSWRcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgY29kZWNvbm5lY3Rpb25zOkJyYW5jaGAuXG5cdCAqL1xuXHRzdGF0aWMgYnJhbmNoKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiY29kZWNvbm5lY3Rpb25zOkJyYW5jaFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgY29kZWNvbm5lY3Rpb25zOkJyYW5jaE5hbWVgLlxuXHQgKi9cblx0c3RhdGljIGJyYW5jaE5hbWUodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJjb2RlY29ubmVjdGlvbnM6QnJhbmNoTmFtZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgY29kZWNvbm5lY3Rpb25zOkZ1bGxSZXBvc2l0b3J5SWRgLlxuXHQgKi9cblx0c3RhdGljIGZ1bGxSZXBvc2l0b3J5SWQoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpGdWxsUmVwb3NpdG9yeUlkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBjb2RlY29ubmVjdGlvbnM6SG9zdEFybmAuXG5cdCAqL1xuXHRzdGF0aWMgaG9zdEFSTih2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IEFybkVxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpIb3N0QXJuXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBjb2RlY29ubmVjdGlvbnM6SW5zdGFsbGF0aW9uSWRgLlxuXHQgKi9cblx0c3RhdGljIGluc3RhbGxhdGlvbklkKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiY29kZWNvbm5lY3Rpb25zOkluc3RhbGxhdGlvbklkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBjb2RlY29ubmVjdGlvbnM6T3duZXJJZGAuXG5cdCAqL1xuXHRzdGF0aWMgb3duZXJJZCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpPd25lcklkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBjb2RlY29ubmVjdGlvbnM6UGFzc2VkVG9TZXJ2aWNlYC5cblx0ICovXG5cdHN0YXRpYyBwYXNzZWRUb1NlcnZpY2UoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpQYXNzZWRUb1NlcnZpY2VcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGNvZGVjb25uZWN0aW9uczpQcm92aWRlckFjdGlvbmAuXG5cdCAqL1xuXHRzdGF0aWMgcHJvdmlkZXJBY3Rpb24odmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJjb2RlY29ubmVjdGlvbnM6UHJvdmlkZXJBY3Rpb25cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGNvZGVjb25uZWN0aW9uczpQcm92aWRlclBlcm1pc3Npb25zUmVxdWlyZWRgLlxuXHQgKi9cblx0c3RhdGljIHByb3ZpZGVyUGVybWlzc2lvbnNSZXF1aXJlZChcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpQcm92aWRlclBlcm1pc3Npb25zUmVxdWlyZWRcIjogdmFsdWUgfSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVgLlxuXHQgKi9cblx0c3RhdGljIHByb3ZpZGVyVHlwZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGNvZGVjb25uZWN0aW9uczpQcm92aWRlclR5cGVGaWx0ZXJgLlxuXHQgKi9cblx0c3RhdGljIHByb3ZpZGVyVHlwZUZpbHRlcihcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiY29kZWNvbm5lY3Rpb25zOlByb3ZpZGVyVHlwZUZpbHRlclwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgY29kZWNvbm5lY3Rpb25zOlJlcG9zaXRvcnlOYW1lYC5cblx0ICovXG5cdHN0YXRpYyByZXBvc2l0b3J5TmFtZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpSZXBvc2l0b3J5TmFtZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgY29kZWNvbm5lY3Rpb25zOlZwY0lkYC5cblx0ICovXG5cdHN0YXRpYyB2cGNJZCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImNvZGVjb25uZWN0aW9uczpWcGNJZFwiOiB2YWx1ZSB9IH07XG5cdH1cbn1cbiJdfQ==
@@ -16,7 +16,7 @@ class CodedeployCommandsSecureActions {
16
16
  }
17
17
  exports.CodedeployCommandsSecureActions = CodedeployCommandsSecureActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodedeployCommandsSecureActions[_a] = { fqn: "@cdk_utils/iam.codedeploy_commands_secure.CodedeployCommandsSecureActions", version: "1.28.0" };
19
+ CodedeployCommandsSecureActions[_a] = { fqn: "@cdk_utils/iam.codedeploy_commands_secure.CodedeployCommandsSecureActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodedeployCommandsSecureActions.SERVICE_PREFIX = "codedeploy-commands-secure";
22
22
  /** [Read] codedeploy-commands-secure:GetDeploymentSpecification */
@@ -16,7 +16,7 @@ class CodeDeployActions {
16
16
  }
17
17
  exports.CodeDeployActions = CodeDeployActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodeDeployActions[_a] = { fqn: "@cdk_utils/iam.codedeploy.CodeDeployActions", version: "1.28.0" };
19
+ CodeDeployActions[_a] = { fqn: "@cdk_utils/iam.codedeploy.CodeDeployActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodeDeployActions.SERVICE_PREFIX = "codedeploy";
22
22
  /** [Tagging] codedeploy:AddTagsToOnPremisesInstances */
@@ -301,7 +301,7 @@ class CodeDeployResources {
301
301
  }
302
302
  exports.CodeDeployResources = CodeDeployResources;
303
303
  _b = JSII_RTTI_SYMBOL_1;
304
- CodeDeployResources[_b] = { fqn: "@cdk_utils/iam.codedeploy.CodeDeployResources", version: "1.28.0" };
304
+ CodeDeployResources[_b] = { fqn: "@cdk_utils/iam.codedeploy.CodeDeployResources", version: "1.30.0" };
305
305
  /**
306
306
  * API operation to required IAM actions mapping for codedeploy.
307
307
  */
@@ -309,7 +309,7 @@ class CodeDeployOperations {
309
309
  }
310
310
  exports.CodeDeployOperations = CodeDeployOperations;
311
311
  _c = JSII_RTTI_SYMBOL_1;
312
- CodeDeployOperations[_c] = { fqn: "@cdk_utils/iam.codedeploy.CodeDeployOperations", version: "1.28.0" };
312
+ CodeDeployOperations[_c] = { fqn: "@cdk_utils/iam.codedeploy.CodeDeployOperations", version: "1.30.0" };
313
313
  /** IAM actions required for the AddTagsToOnPremisesInstances API call. */
314
314
  CodeDeployOperations.AddTagsToOnPremisesInstances = [
315
315
  "codedeploy:AddTagsToOnPremisesInstances",
@@ -523,7 +523,7 @@ class CodeDeployConditions {
523
523
  }
524
524
  exports.CodeDeployConditions = CodeDeployConditions;
525
525
  _d = JSII_RTTI_SYMBOL_1;
526
- CodeDeployConditions[_d] = { fqn: "@cdk_utils/iam.codedeploy.CodeDeployConditions", version: "1.28.0" };
526
+ CodeDeployConditions[_d] = { fqn: "@cdk_utils/iam.codedeploy.CodeDeployConditions", version: "1.30.0" };
527
527
  /** Condition keys applicable to the CreateApplication action. */
528
528
  CodeDeployConditions.CreateApplicationConditionKeys = [
529
529
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class CodeguruProfilerActions {
16
16
  }
17
17
  exports.CodeguruProfilerActions = CodeguruProfilerActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodeguruProfilerActions[_a] = { fqn: "@cdk_utils/iam.codeguru_profiler.CodeguruProfilerActions", version: "1.28.0" };
19
+ CodeguruProfilerActions[_a] = { fqn: "@cdk_utils/iam.codeguru_profiler.CodeguruProfilerActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodeguruProfilerActions.SERVICE_PREFIX = "codeguru-profiler";
22
22
  /** [Write] codeguru-profiler:AddNotificationChannels */
@@ -139,7 +139,7 @@ class CodeguruProfilerResources {
139
139
  }
140
140
  exports.CodeguruProfilerResources = CodeguruProfilerResources;
141
141
  _b = JSII_RTTI_SYMBOL_1;
142
- CodeguruProfilerResources[_b] = { fqn: "@cdk_utils/iam.codeguru_profiler.CodeguruProfilerResources", version: "1.28.0" };
142
+ CodeguruProfilerResources[_b] = { fqn: "@cdk_utils/iam.codeguru_profiler.CodeguruProfilerResources", version: "1.30.0" };
143
143
  /**
144
144
  * API operation to required IAM actions mapping for codeguru-profiler.
145
145
  */
@@ -147,7 +147,7 @@ class CodeguruProfilerOperations {
147
147
  }
148
148
  exports.CodeguruProfilerOperations = CodeguruProfilerOperations;
149
149
  _c = JSII_RTTI_SYMBOL_1;
150
- CodeguruProfilerOperations[_c] = { fqn: "@cdk_utils/iam.codeguru_profiler.CodeguruProfilerOperations", version: "1.28.0" };
150
+ CodeguruProfilerOperations[_c] = { fqn: "@cdk_utils/iam.codeguru_profiler.CodeguruProfilerOperations", version: "1.30.0" };
151
151
  /** IAM actions required for the AddNotificationChannels API call. */
152
152
  CodeguruProfilerOperations.AddNotificationChannels = [
153
153
  "codeguru-profiler:AddNotificationChannels",
@@ -256,7 +256,7 @@ class CodeguruProfilerConditions {
256
256
  }
257
257
  exports.CodeguruProfilerConditions = CodeguruProfilerConditions;
258
258
  _d = JSII_RTTI_SYMBOL_1;
259
- CodeguruProfilerConditions[_d] = { fqn: "@cdk_utils/iam.codeguru_profiler.CodeguruProfilerConditions", version: "1.28.0" };
259
+ CodeguruProfilerConditions[_d] = { fqn: "@cdk_utils/iam.codeguru_profiler.CodeguruProfilerConditions", version: "1.30.0" };
260
260
  /** Condition keys applicable to the CreateProfilingGroup action. */
261
261
  CodeguruProfilerConditions.CreateProfilingGroupConditionKeys = [
262
262
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class CodeguruReviewerActions {
16
16
  }
17
17
  exports.CodeguruReviewerActions = CodeguruReviewerActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodeguruReviewerActions[_a] = { fqn: "@cdk_utils/iam.codeguru_reviewer.CodeguruReviewerActions", version: "1.28.0" };
19
+ CodeguruReviewerActions[_a] = { fqn: "@cdk_utils/iam.codeguru_reviewer.CodeguruReviewerActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodeguruReviewerActions.SERVICE_PREFIX = "codeguru-reviewer";
22
22
  /** [Write] codeguru-reviewer:AssociateRepository */
@@ -150,7 +150,7 @@ class CodeguruReviewerResources {
150
150
  }
151
151
  exports.CodeguruReviewerResources = CodeguruReviewerResources;
152
152
  _b = JSII_RTTI_SYMBOL_1;
153
- CodeguruReviewerResources[_b] = { fqn: "@cdk_utils/iam.codeguru_reviewer.CodeguruReviewerResources", version: "1.28.0" };
153
+ CodeguruReviewerResources[_b] = { fqn: "@cdk_utils/iam.codeguru_reviewer.CodeguruReviewerResources", version: "1.30.0" };
154
154
  /**
155
155
  * API operation to required IAM actions mapping for codeguru-reviewer.
156
156
  */
@@ -158,7 +158,7 @@ class CodeguruReviewerOperations {
158
158
  }
159
159
  exports.CodeguruReviewerOperations = CodeguruReviewerOperations;
160
160
  _c = JSII_RTTI_SYMBOL_1;
161
- CodeguruReviewerOperations[_c] = { fqn: "@cdk_utils/iam.codeguru_reviewer.CodeguruReviewerOperations", version: "1.28.0" };
161
+ CodeguruReviewerOperations[_c] = { fqn: "@cdk_utils/iam.codeguru_reviewer.CodeguruReviewerOperations", version: "1.30.0" };
162
162
  /** IAM actions required for the AssociateRepository API call. */
163
163
  CodeguruReviewerOperations.AssociateRepository = [
164
164
  "codeguru-reviewer:AssociateRepository",
@@ -237,7 +237,7 @@ class CodeguruReviewerConditions {
237
237
  }
238
238
  exports.CodeguruReviewerConditions = CodeguruReviewerConditions;
239
239
  _d = JSII_RTTI_SYMBOL_1;
240
- CodeguruReviewerConditions[_d] = { fqn: "@cdk_utils/iam.codeguru_reviewer.CodeguruReviewerConditions", version: "1.28.0" };
240
+ CodeguruReviewerConditions[_d] = { fqn: "@cdk_utils/iam.codeguru_reviewer.CodeguruReviewerConditions", version: "1.30.0" };
241
241
  /** Condition keys applicable to the AssociateRepository action. */
242
242
  CodeguruReviewerConditions.AssociateRepositoryConditionKeys = [
243
243
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class CodeguruSecurityActions {
16
16
  }
17
17
  exports.CodeguruSecurityActions = CodeguruSecurityActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodeguruSecurityActions[_a] = { fqn: "@cdk_utils/iam.codeguru_security.CodeguruSecurityActions", version: "1.28.0" };
19
+ CodeguruSecurityActions[_a] = { fqn: "@cdk_utils/iam.codeguru_security.CodeguruSecurityActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodeguruSecurityActions.SERVICE_PREFIX = "codeguru-security";
22
22
  /** [Read] codeguru-security:BatchGetFindings */
@@ -114,7 +114,7 @@ class CodeguruSecurityResources {
114
114
  }
115
115
  exports.CodeguruSecurityResources = CodeguruSecurityResources;
116
116
  _b = JSII_RTTI_SYMBOL_1;
117
- CodeguruSecurityResources[_b] = { fqn: "@cdk_utils/iam.codeguru_security.CodeguruSecurityResources", version: "1.28.0" };
117
+ CodeguruSecurityResources[_b] = { fqn: "@cdk_utils/iam.codeguru_security.CodeguruSecurityResources", version: "1.30.0" };
118
118
  /**
119
119
  * API operation to required IAM actions mapping for codeguru-security.
120
120
  */
@@ -122,7 +122,7 @@ class CodeguruSecurityOperations {
122
122
  }
123
123
  exports.CodeguruSecurityOperations = CodeguruSecurityOperations;
124
124
  _c = JSII_RTTI_SYMBOL_1;
125
- CodeguruSecurityOperations[_c] = { fqn: "@cdk_utils/iam.codeguru_security.CodeguruSecurityOperations", version: "1.28.0" };
125
+ CodeguruSecurityOperations[_c] = { fqn: "@cdk_utils/iam.codeguru_security.CodeguruSecurityOperations", version: "1.30.0" };
126
126
  /** IAM actions required for the BatchGetFindings API call. */
127
127
  CodeguruSecurityOperations.BatchGetFindings = [
128
128
  "codeguru-security:BatchGetFindings",
@@ -191,7 +191,7 @@ class CodeguruSecurityConditions {
191
191
  }
192
192
  exports.CodeguruSecurityConditions = CodeguruSecurityConditions;
193
193
  _d = JSII_RTTI_SYMBOL_1;
194
- CodeguruSecurityConditions[_d] = { fqn: "@cdk_utils/iam.codeguru_security.CodeguruSecurityConditions", version: "1.28.0" };
194
+ CodeguruSecurityConditions[_d] = { fqn: "@cdk_utils/iam.codeguru_security.CodeguruSecurityConditions", version: "1.30.0" };
195
195
  /** Condition keys applicable to the CreateScan action. */
196
196
  CodeguruSecurityConditions.CreateScanConditionKeys = [
197
197
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class CodeguruActions {
16
16
  }
17
17
  exports.CodeguruActions = CodeguruActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CodeguruActions[_a] = { fqn: "@cdk_utils/iam.codeguru.CodeguruActions", version: "1.28.0" };
19
+ CodeguruActions[_a] = { fqn: "@cdk_utils/iam.codeguru.CodeguruActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  CodeguruActions.SERVICE_PREFIX = "codeguru";
22
22
  /** [Read] codeguru:GetCodeGuruFreeTrialSummary */