@cdk_utils/iam 1.13.0 → 1.15.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 (468) hide show
  1. package/.jsii +6703 -5122
  2. package/lib/generated/services/a2c.js +1 -1
  3. package/lib/generated/services/a4b.js +3 -3
  4. package/lib/generated/services/access-analyzer.js +4 -4
  5. package/lib/generated/services/account-access.js +4 -4
  6. package/lib/generated/services/account.js +4 -4
  7. package/lib/generated/services/acm-pca.js +4 -4
  8. package/lib/generated/services/acm.js +4 -4
  9. package/lib/generated/services/aco-automation.js +4 -4
  10. package/lib/generated/services/action-recommendations.js +1 -1
  11. package/lib/generated/services/activate.js +1 -1
  12. package/lib/generated/services/agent-registry.d.ts +6 -0
  13. package/lib/generated/services/agent-registry.js +13 -5
  14. package/lib/generated/services/agentaccess-mcp.js +2 -2
  15. package/lib/generated/services/aidevops.js +4 -4
  16. package/lib/generated/services/aiops.js +4 -4
  17. package/lib/generated/services/airflow-serverless.js +4 -4
  18. package/lib/generated/services/airflow.js +4 -4
  19. package/lib/generated/services/amplify.js +4 -4
  20. package/lib/generated/services/amplifybackend.js +3 -3
  21. package/lib/generated/services/amplifyuibuilder.js +4 -4
  22. package/lib/generated/services/aoss.js +4 -4
  23. package/lib/generated/services/apigateway.js +4 -4
  24. package/lib/generated/services/app-integrations.js +4 -4
  25. package/lib/generated/services/appconfig.js +4 -4
  26. package/lib/generated/services/appfabric.js +4 -4
  27. package/lib/generated/services/appflow.js +4 -4
  28. package/lib/generated/services/application-autoscaling.js +4 -4
  29. package/lib/generated/services/application-signals-mcp.js +3 -3
  30. package/lib/generated/services/application-signals.js +4 -4
  31. package/lib/generated/services/application-transformation.js +1 -1
  32. package/lib/generated/services/applicationinsights.js +3 -3
  33. package/lib/generated/services/appmesh-preview.js +2 -2
  34. package/lib/generated/services/appmesh.js +4 -4
  35. package/lib/generated/services/apprunner.js +4 -4
  36. package/lib/generated/services/appstream.js +4 -4
  37. package/lib/generated/services/appstudio.js +2 -2
  38. package/lib/generated/services/appsync.js +4 -4
  39. package/lib/generated/services/apptest.js +3 -3
  40. package/lib/generated/services/aps.js +4 -4
  41. package/lib/generated/services/arc-region-switch.js +4 -4
  42. package/lib/generated/services/arc-zonal-shift.js +4 -4
  43. package/lib/generated/services/arsenal.js +1 -1
  44. package/lib/generated/services/artifact.js +4 -4
  45. package/lib/generated/services/athena.js +4 -4
  46. package/lib/generated/services/auditmanager.js +4 -4
  47. package/lib/generated/services/autoscaling-plans.js +2 -2
  48. package/lib/generated/services/autoscaling.js +4 -4
  49. package/lib/generated/services/aws-external-anthropic.js +3 -3
  50. package/lib/generated/services/aws-marketplace-management.js +1 -1
  51. package/lib/generated/services/aws-marketplace.js +4 -4
  52. package/lib/generated/services/aws-portal.js +1 -1
  53. package/lib/generated/services/awsconnector.js +1 -1
  54. package/lib/generated/services/b2bi.js +4 -4
  55. package/lib/generated/services/backup-gateway.js +4 -4
  56. package/lib/generated/services/backup-search.js +4 -4
  57. package/lib/generated/services/backup-storage.js +1 -1
  58. package/lib/generated/services/backup.js +4 -4
  59. package/lib/generated/services/batch.js +4 -4
  60. package/lib/generated/services/bcm-dashboards.js +4 -4
  61. package/lib/generated/services/bcm-data-exports.js +4 -4
  62. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  63. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  64. package/lib/generated/services/bedrock-agentcore.d.ts +2 -0
  65. package/lib/generated/services/bedrock-agentcore.js +7 -5
  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.js +4 -4
  70. package/lib/generated/services/billingconductor.js +4 -4
  71. package/lib/generated/services/braket.js +4 -4
  72. package/lib/generated/services/budgets.js +4 -4
  73. package/lib/generated/services/bugbust.js +3 -3
  74. package/lib/generated/services/cases.js +4 -4
  75. package/lib/generated/services/cassandra.js +4 -4
  76. package/lib/generated/services/ce.js +4 -4
  77. package/lib/generated/services/chatbot.js +4 -4
  78. package/lib/generated/services/chime.js +4 -4
  79. package/lib/generated/services/cleanrooms-ml.js +4 -4
  80. package/lib/generated/services/cleanrooms.js +4 -4
  81. package/lib/generated/services/cloud9.js +4 -4
  82. package/lib/generated/services/clouddirectory.js +3 -3
  83. package/lib/generated/services/cloudformation.js +4 -4
  84. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  85. package/lib/generated/services/cloudfront.js +4 -4
  86. package/lib/generated/services/cloudhsm.js +4 -4
  87. package/lib/generated/services/cloudsearch.js +3 -3
  88. package/lib/generated/services/cloudshell.js +3 -3
  89. package/lib/generated/services/cloudtrail-data.js +4 -4
  90. package/lib/generated/services/cloudtrail.js +4 -4
  91. package/lib/generated/services/cloudwatch.js +4 -4
  92. package/lib/generated/services/codeartifact.js +4 -4
  93. package/lib/generated/services/codebuild.js +4 -4
  94. package/lib/generated/services/codecatalyst.js +4 -4
  95. package/lib/generated/services/codecommit.js +4 -4
  96. package/lib/generated/services/codeconnections.js +9 -6
  97. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  98. package/lib/generated/services/codedeploy.js +4 -4
  99. package/lib/generated/services/codeguru-profiler.js +4 -4
  100. package/lib/generated/services/codeguru-reviewer.js +4 -4
  101. package/lib/generated/services/codeguru-security.js +4 -4
  102. package/lib/generated/services/codeguru.js +1 -1
  103. package/lib/generated/services/codepipeline.js +4 -4
  104. package/lib/generated/services/codestar-connections.js +4 -4
  105. package/lib/generated/services/codestar-notifications.js +4 -4
  106. package/lib/generated/services/codestar.js +3 -3
  107. package/lib/generated/services/codewhisperer.js +3 -3
  108. package/lib/generated/services/cognito-identity.js +4 -4
  109. package/lib/generated/services/cognito-idp.d.ts +4 -0
  110. package/lib/generated/services/cognito-idp.js +9 -5
  111. package/lib/generated/services/cognito-sync.js +3 -3
  112. package/lib/generated/services/comprehend.js +4 -4
  113. package/lib/generated/services/comprehendmedical.js +3 -3
  114. package/lib/generated/services/compute-optimizer.js +3 -3
  115. package/lib/generated/services/config.js +4 -4
  116. package/lib/generated/services/connect-campaigns.js +4 -4
  117. package/lib/generated/services/connect.d.ts +67 -0
  118. package/lib/generated/services/connect.js +92 -9
  119. package/lib/generated/services/consoleapp.js +2 -2
  120. package/lib/generated/services/consolidatedbilling.js +1 -1
  121. package/lib/generated/services/controlcatalog.js +3 -3
  122. package/lib/generated/services/controltower.js +4 -4
  123. package/lib/generated/services/cost-optimization-hub.js +2 -2
  124. package/lib/generated/services/cur.js +4 -4
  125. package/lib/generated/services/customer-verification.js +1 -1
  126. package/lib/generated/services/databrew.js +4 -4
  127. package/lib/generated/services/dataexchange.js +4 -4
  128. package/lib/generated/services/datapipeline.js +4 -4
  129. package/lib/generated/services/datasync.js +4 -4
  130. package/lib/generated/services/datazone.js +4 -4
  131. package/lib/generated/services/dax.js +4 -4
  132. package/lib/generated/services/dbqms.js +1 -1
  133. package/lib/generated/services/deadline.js +4 -4
  134. package/lib/generated/services/detective.js +4 -4
  135. package/lib/generated/services/devicefarm.js +4 -4
  136. package/lib/generated/services/devops-guru.js +4 -4
  137. package/lib/generated/services/directconnect.js +4 -4
  138. package/lib/generated/services/discovery.js +3 -3
  139. package/lib/generated/services/dlm.js +4 -4
  140. package/lib/generated/services/dms.js +4 -4
  141. package/lib/generated/services/docdb-elastic.js +4 -4
  142. package/lib/generated/services/drs.js +4 -4
  143. package/lib/generated/services/ds-data.js +4 -4
  144. package/lib/generated/services/ds.js +4 -4
  145. package/lib/generated/services/dsql.js +4 -4
  146. package/lib/generated/services/dynamodb.js +4 -4
  147. package/lib/generated/services/ebs.js +4 -4
  148. package/lib/generated/services/ec2-instance-connect.js +4 -4
  149. package/lib/generated/services/ec2.js +4 -4
  150. package/lib/generated/services/ec2messages.js +2 -2
  151. package/lib/generated/services/ecr-public.js +4 -4
  152. package/lib/generated/services/ecr.js +4 -4
  153. package/lib/generated/services/ecs-mcp.js +1 -1
  154. package/lib/generated/services/ecs.js +4 -4
  155. package/lib/generated/services/eks-auth.js +4 -4
  156. package/lib/generated/services/eks-mcp.js +1 -1
  157. package/lib/generated/services/eks.js +4 -4
  158. package/lib/generated/services/elasticache.js +4 -4
  159. package/lib/generated/services/elasticbeanstalk.js +4 -4
  160. package/lib/generated/services/elasticfilesystem.js +4 -4
  161. package/lib/generated/services/elasticloadbalancing.js +4 -4
  162. package/lib/generated/services/elasticmapreduce.js +4 -4
  163. package/lib/generated/services/elastictranscoder.js +2 -2
  164. package/lib/generated/services/elemental-activations.js +1 -1
  165. package/lib/generated/services/elemental-appliances-software.js +2 -2
  166. package/lib/generated/services/elemental-inference.js +4 -4
  167. package/lib/generated/services/elemental-support-cases.js +3 -3
  168. package/lib/generated/services/elemental-support-content.js +1 -1
  169. package/lib/generated/services/emr-containers.js +4 -4
  170. package/lib/generated/services/emr-serverless.js +4 -4
  171. package/lib/generated/services/entityresolution.js +4 -4
  172. package/lib/generated/services/es.js +4 -4
  173. package/lib/generated/services/events.js +4 -4
  174. package/lib/generated/services/eventsbilltoaws.js +3 -3
  175. package/lib/generated/services/evidently.js +3 -3
  176. package/lib/generated/services/evs.js +4 -4
  177. package/lib/generated/services/execute-api.js +4 -4
  178. package/lib/generated/services/finops-agent.js +1 -1
  179. package/lib/generated/services/finspace-api.js +3 -3
  180. package/lib/generated/services/finspace.js +4 -4
  181. package/lib/generated/services/firehose.js +4 -4
  182. package/lib/generated/services/fis.js +4 -4
  183. package/lib/generated/services/fms.js +4 -4
  184. package/lib/generated/services/forecast.js +4 -4
  185. package/lib/generated/services/frauddetector.js +4 -4
  186. package/lib/generated/services/freertos.js +3 -3
  187. package/lib/generated/services/freetier.js +2 -2
  188. package/lib/generated/services/fsx.js +4 -4
  189. package/lib/generated/services/gamelift.js +4 -4
  190. package/lib/generated/services/gameliftstreams.js +4 -4
  191. package/lib/generated/services/geo-maps.js +3 -3
  192. package/lib/generated/services/geo-places.js +3 -3
  193. package/lib/generated/services/geo-routes.js +3 -3
  194. package/lib/generated/services/geo.js +4 -4
  195. package/lib/generated/services/glacier.js +4 -4
  196. package/lib/generated/services/globalaccelerator.js +4 -4
  197. package/lib/generated/services/glue.js +4 -4
  198. package/lib/generated/services/grafana.js +4 -4
  199. package/lib/generated/services/greengrass.js +4 -4
  200. package/lib/generated/services/groundstation.js +4 -4
  201. package/lib/generated/services/groundtruthlabeling.js +1 -1
  202. package/lib/generated/services/guardduty.js +4 -4
  203. package/lib/generated/services/health-agent.js +4 -4
  204. package/lib/generated/services/health.js +4 -4
  205. package/lib/generated/services/healthlake.d.ts +6 -0
  206. package/lib/generated/services/healthlake.js +18 -5
  207. package/lib/generated/services/honeycode.js +2 -2
  208. package/lib/generated/services/iam.js +4 -4
  209. package/lib/generated/services/identity-sync.js +2 -2
  210. package/lib/generated/services/identitystore-auth.js +1 -1
  211. package/lib/generated/services/identitystore.js +4 -4
  212. package/lib/generated/services/imagebuilder.js +4 -4
  213. package/lib/generated/services/importexport.js +2 -2
  214. package/lib/generated/services/inspector-scan.js +2 -2
  215. package/lib/generated/services/inspector.js +2 -2
  216. package/lib/generated/services/inspector2-telemetry.js +1 -1
  217. package/lib/generated/services/inspector2.js +4 -4
  218. package/lib/generated/services/interconnect.js +4 -4
  219. package/lib/generated/services/internetmonitor.js +4 -4
  220. package/lib/generated/services/invoicing.js +4 -4
  221. package/lib/generated/services/iot-device-tester.js +1 -1
  222. package/lib/generated/services/iot.js +4 -4
  223. package/lib/generated/services/iotanalytics.js +3 -3
  224. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  225. package/lib/generated/services/iotevents.js +3 -3
  226. package/lib/generated/services/iotfleethub.js +3 -3
  227. package/lib/generated/services/iotfleetwise.js +4 -4
  228. package/lib/generated/services/iotjobsdata.js +4 -4
  229. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  230. package/lib/generated/services/iotsitewise.js +4 -4
  231. package/lib/generated/services/iottwinmaker.js +4 -4
  232. package/lib/generated/services/iotwireless.js +4 -4
  233. package/lib/generated/services/iq-permission.js +2 -2
  234. package/lib/generated/services/iq.js +2 -2
  235. package/lib/generated/services/ivs.js +4 -4
  236. package/lib/generated/services/ivschat.js +4 -4
  237. package/lib/generated/services/kafka-cluster.js +3 -3
  238. package/lib/generated/services/kafka.js +4 -4
  239. package/lib/generated/services/kafkaconnect.d.ts +2 -0
  240. package/lib/generated/services/kafkaconnect.js +7 -5
  241. package/lib/generated/services/kendra-ranking.js +4 -4
  242. package/lib/generated/services/kendra.js +4 -4
  243. package/lib/generated/services/kinesis.d.ts +10 -0
  244. package/lib/generated/services/kinesis.js +18 -5
  245. package/lib/generated/services/kinesisanalytics.js +4 -4
  246. package/lib/generated/services/kinesisvideo.js +4 -4
  247. package/lib/generated/services/kms.js +4 -4
  248. package/lib/generated/services/lakeformation.js +3 -3
  249. package/lib/generated/services/lambda.js +4 -4
  250. package/lib/generated/services/launchwizard.js +4 -4
  251. package/lib/generated/services/lex.js +4 -4
  252. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  253. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  254. package/lib/generated/services/license-manager.js +4 -4
  255. package/lib/generated/services/lightsail.js +4 -4
  256. package/lib/generated/services/logs.js +4 -4
  257. package/lib/generated/services/lookoutequipment.js +4 -4
  258. package/lib/generated/services/lookoutmetrics.js +3 -3
  259. package/lib/generated/services/lookoutvision.js +3 -3
  260. package/lib/generated/services/m2.js +4 -4
  261. package/lib/generated/services/machinelearning.js +3 -3
  262. package/lib/generated/services/macie2.js +4 -4
  263. package/lib/generated/services/managedblockchain-query.js +2 -2
  264. package/lib/generated/services/managedblockchain.js +4 -4
  265. package/lib/generated/services/mapcredits.js +2 -2
  266. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  267. package/lib/generated/services/mechanicalturk.js +2 -2
  268. package/lib/generated/services/mediaconnect.js +4 -4
  269. package/lib/generated/services/mediaconvert.js +4 -4
  270. package/lib/generated/services/mediaimport.js +1 -1
  271. package/lib/generated/services/medialive.js +4 -4
  272. package/lib/generated/services/mediapackage-vod.js +4 -4
  273. package/lib/generated/services/mediapackage.js +4 -4
  274. package/lib/generated/services/mediapackagev2.js +4 -4
  275. package/lib/generated/services/mediastore.js +4 -4
  276. package/lib/generated/services/mediatailor.js +4 -4
  277. package/lib/generated/services/medical-imaging.js +4 -4
  278. package/lib/generated/services/memorydb.js +4 -4
  279. package/lib/generated/services/mgh.js +4 -4
  280. package/lib/generated/services/mgn.js +4 -4
  281. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  282. package/lib/generated/services/migrationhub-strategy.js +2 -2
  283. package/lib/generated/services/mobileanalytics.js +1 -1
  284. package/lib/generated/services/mobiletargeting.js +4 -4
  285. package/lib/generated/services/monitron.js +3 -3
  286. package/lib/generated/services/mpa.js +4 -4
  287. package/lib/generated/services/mq.js +4 -4
  288. package/lib/generated/services/neptune-db.js +4 -4
  289. package/lib/generated/services/neptune-graph.js +4 -4
  290. package/lib/generated/services/network-firewall.js +4 -4
  291. package/lib/generated/services/network-security-director.js +1 -1
  292. package/lib/generated/services/networkflowmonitor.js +4 -4
  293. package/lib/generated/services/networkmanager-chat.js +1 -1
  294. package/lib/generated/services/networkmanager.js +4 -4
  295. package/lib/generated/services/networkmonitor.js +4 -4
  296. package/lib/generated/services/nimble.js +3 -3
  297. package/lib/generated/services/notifications-contacts.js +4 -4
  298. package/lib/generated/services/notifications.js +4 -4
  299. package/lib/generated/services/nova-act.js +3 -3
  300. package/lib/generated/services/oam.js +4 -4
  301. package/lib/generated/services/observabilityadmin.js +4 -4
  302. package/lib/generated/services/odb.js +4 -4
  303. package/lib/generated/services/omics.js +4 -4
  304. package/lib/generated/services/one.js +3 -3
  305. package/lib/generated/services/opensearch.js +3 -3
  306. package/lib/generated/services/opsworks-cm.js +2 -2
  307. package/lib/generated/services/opsworks.js +2 -2
  308. package/lib/generated/services/organizations.js +4 -4
  309. package/lib/generated/services/osis.js +4 -4
  310. package/lib/generated/services/outposts.js +4 -4
  311. package/lib/generated/services/panorama.js +3 -3
  312. package/lib/generated/services/partnercentral-account-management.js +2 -2
  313. package/lib/generated/services/partnercentral.js +4 -4
  314. package/lib/generated/services/payment-cryptography.js +4 -4
  315. package/lib/generated/services/payments.js +3 -3
  316. package/lib/generated/services/pca-connector-ad.js +4 -4
  317. package/lib/generated/services/pca-connector-scep.js +4 -4
  318. package/lib/generated/services/pcs.js +4 -4
  319. package/lib/generated/services/personalize.js +4 -4
  320. package/lib/generated/services/pi.js +4 -4
  321. package/lib/generated/services/pipes.js +4 -4
  322. package/lib/generated/services/polly.js +3 -3
  323. package/lib/generated/services/pricing.js +2 -2
  324. package/lib/generated/services/pricingplanmanager.js +3 -3
  325. package/lib/generated/services/private-networks.js +3 -3
  326. package/lib/generated/services/profile.d.ts +28 -0
  327. package/lib/generated/services/profile.js +54 -5
  328. package/lib/generated/services/proton.js +4 -4
  329. package/lib/generated/services/purchase-orders.js +3 -3
  330. package/lib/generated/services/q.js +3 -3
  331. package/lib/generated/services/qapps.js +4 -4
  332. package/lib/generated/services/qbusiness.js +4 -4
  333. package/lib/generated/services/qdeveloper.js +3 -3
  334. package/lib/generated/services/qldb.js +3 -3
  335. package/lib/generated/services/quicksight.d.ts +12 -0
  336. package/lib/generated/services/quicksight.js +21 -5
  337. package/lib/generated/services/ram.js +4 -4
  338. package/lib/generated/services/rbin.js +4 -4
  339. package/lib/generated/services/rds-data.js +4 -4
  340. package/lib/generated/services/rds-db.js +2 -2
  341. package/lib/generated/services/rds.js +4 -4
  342. package/lib/generated/services/redshift-data.js +4 -4
  343. package/lib/generated/services/redshift-serverless.js +4 -4
  344. package/lib/generated/services/redshift.js +4 -4
  345. package/lib/generated/services/refactor-spaces.js +4 -4
  346. package/lib/generated/services/rekognition.js +4 -4
  347. package/lib/generated/services/repostspace.js +4 -4
  348. package/lib/generated/services/researchstudio.js +1 -1
  349. package/lib/generated/services/resiliencehub.js +4 -4
  350. package/lib/generated/services/resource-explorer-2.js +4 -4
  351. package/lib/generated/services/resource-explorer.js +1 -1
  352. package/lib/generated/services/resource-groups.js +4 -4
  353. package/lib/generated/services/rhelkb.js +1 -1
  354. package/lib/generated/services/robomaker.js +3 -3
  355. package/lib/generated/services/rolesanywhere.js +4 -4
  356. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  357. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  358. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  359. package/lib/generated/services/route53.js +4 -4
  360. package/lib/generated/services/route53domains.js +2 -2
  361. package/lib/generated/services/route53globalresolver.js +4 -4
  362. package/lib/generated/services/route53profiles.js +4 -4
  363. package/lib/generated/services/route53resolver.js +4 -4
  364. package/lib/generated/services/rtbfabric.js +4 -4
  365. package/lib/generated/services/rum.js +4 -4
  366. package/lib/generated/services/s3-object-lambda.js +3 -3
  367. package/lib/generated/services/s3-outposts.js +4 -4
  368. package/lib/generated/services/s3.js +4 -4
  369. package/lib/generated/services/s3express.js +3 -3
  370. package/lib/generated/services/s3files.js +4 -4
  371. package/lib/generated/services/s3tables.js +4 -4
  372. package/lib/generated/services/s3vectors.js +4 -4
  373. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  374. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  375. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  376. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  377. package/lib/generated/services/sagemaker.d.ts +28 -0
  378. package/lib/generated/services/sagemaker.js +61 -9
  379. package/lib/generated/services/savingsplans.js +4 -4
  380. package/lib/generated/services/scheduler.js +4 -4
  381. package/lib/generated/services/schemas.js +4 -4
  382. package/lib/generated/services/scn.js +4 -4
  383. package/lib/generated/services/sdb.js +3 -3
  384. package/lib/generated/services/secretsmanager.js +4 -4
  385. package/lib/generated/services/security-ir.js +4 -4
  386. package/lib/generated/services/securityagent.js +4 -4
  387. package/lib/generated/services/securityhub.js +4 -4
  388. package/lib/generated/services/securitylake.js +4 -4
  389. package/lib/generated/services/serverlessrepo.js +4 -4
  390. package/lib/generated/services/servicecatalog.js +4 -4
  391. package/lib/generated/services/servicediscovery.js +4 -4
  392. package/lib/generated/services/serviceextract.js +1 -1
  393. package/lib/generated/services/servicequotas.js +4 -4
  394. package/lib/generated/services/ses.js +4 -4
  395. package/lib/generated/services/shield.js +4 -4
  396. package/lib/generated/services/signer.js +4 -4
  397. package/lib/generated/services/signin.js +4 -4
  398. package/lib/generated/services/simspaceweaver.js +3 -3
  399. package/lib/generated/services/sms-voice.js +4 -4
  400. package/lib/generated/services/sms.js +1 -1
  401. package/lib/generated/services/snow-device-management.js +4 -4
  402. package/lib/generated/services/snowball.js +2 -2
  403. package/lib/generated/services/sns.js +4 -4
  404. package/lib/generated/services/social-messaging.js +4 -4
  405. package/lib/generated/services/sqlworkbench.js +3 -3
  406. package/lib/generated/services/sqs.js +4 -4
  407. package/lib/generated/services/ssm-contacts.js +4 -4
  408. package/lib/generated/services/ssm-guiconnect.js +2 -2
  409. package/lib/generated/services/ssm-incidents.js +4 -4
  410. package/lib/generated/services/ssm-quicksetup.js +4 -4
  411. package/lib/generated/services/ssm-sap.js +4 -4
  412. package/lib/generated/services/ssm.js +4 -4
  413. package/lib/generated/services/ssmmessages.js +2 -2
  414. package/lib/generated/services/sso-directory.js +1 -1
  415. package/lib/generated/services/sso-oauth.js +3 -3
  416. package/lib/generated/services/sso.js +4 -4
  417. package/lib/generated/services/states.js +4 -4
  418. package/lib/generated/services/storagegateway.js +4 -4
  419. package/lib/generated/services/sts.js +4 -4
  420. package/lib/generated/services/support-console.js +1 -1
  421. package/lib/generated/services/support.d.ts +9 -1
  422. package/lib/generated/services/support.js +25 -5
  423. package/lib/generated/services/supportapp.js +2 -2
  424. package/lib/generated/services/supportauthz.js +4 -4
  425. package/lib/generated/services/supportplans.js +1 -1
  426. package/lib/generated/services/sustainability.js +2 -2
  427. package/lib/generated/services/swf.js +4 -4
  428. package/lib/generated/services/synthetics.js +4 -4
  429. package/lib/generated/services/tag.js +2 -2
  430. package/lib/generated/services/tax.js +2 -2
  431. package/lib/generated/services/textract.js +4 -4
  432. package/lib/generated/services/thinclient.js +4 -4
  433. package/lib/generated/services/timestream-influxdb.js +4 -4
  434. package/lib/generated/services/timestream.js +4 -4
  435. package/lib/generated/services/tiros.js +1 -1
  436. package/lib/generated/services/tnb.js +4 -4
  437. package/lib/generated/services/transcribe.js +4 -4
  438. package/lib/generated/services/transfer.js +4 -4
  439. package/lib/generated/services/transform-custom.js +3 -3
  440. package/lib/generated/services/transform.js +3 -3
  441. package/lib/generated/services/translate.js +4 -4
  442. package/lib/generated/services/trustedadvisor.js +3 -3
  443. package/lib/generated/services/ts.js +3 -3
  444. package/lib/generated/services/user-subscriptions.js +2 -2
  445. package/lib/generated/services/uxc.js +2 -2
  446. package/lib/generated/services/vendor-insights.js +3 -3
  447. package/lib/generated/services/verified-access.js +1 -1
  448. package/lib/generated/services/verifiedpermissions.js +4 -4
  449. package/lib/generated/services/voiceid.js +4 -4
  450. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  451. package/lib/generated/services/vpc-lattice.js +4 -4
  452. package/lib/generated/services/vpce.js +2 -2
  453. package/lib/generated/services/waf-regional.js +4 -4
  454. package/lib/generated/services/waf.js +4 -4
  455. package/lib/generated/services/wafv2.js +4 -4
  456. package/lib/generated/services/wam.js +1 -1
  457. package/lib/generated/services/wellarchitected.js +4 -4
  458. package/lib/generated/services/wickr.js +4 -4
  459. package/lib/generated/services/wisdom.js +4 -4
  460. package/lib/generated/services/workdocs.js +3 -3
  461. package/lib/generated/services/worklink.js +3 -3
  462. package/lib/generated/services/workmail.js +4 -4
  463. package/lib/generated/services/workmailmessageflow.js +3 -3
  464. package/lib/generated/services/workspaces-instances.js +4 -4
  465. package/lib/generated/services/workspaces-web.js +4 -4
  466. package/lib/generated/services/workspaces.js +4 -4
  467. package/lib/generated/services/xray.js +4 -4
  468. package/package.json +1 -1
@@ -266,6 +266,8 @@ export declare class KafkaconnectOperations {
266
266
  static readonly ListTagsForResource: string[];
267
267
  /** IAM actions required for the ListWorkerConfigurations API call. */
268
268
  static readonly ListWorkerConfigurations: string[];
269
+ /** IAM actions required for the RestartConnector API call. */
270
+ static readonly RestartConnector: string[];
269
271
  /** IAM actions required for the TagResource API call. */
270
272
  static readonly TagResource: string[];
271
273
  /** IAM actions required for the UntagResource API call. */
@@ -16,7 +16,7 @@ class KafkaconnectActions {
16
16
  }
17
17
  exports.KafkaconnectActions = KafkaconnectActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KafkaconnectActions[_a] = { fqn: "@cdk_utils/iam.kafkaconnect.KafkaconnectActions", version: "1.13.0" };
19
+ KafkaconnectActions[_a] = { fqn: "@cdk_utils/iam.kafkaconnect.KafkaconnectActions", version: "1.15.0" };
20
20
  /** The IAM service prefix. */
21
21
  KafkaconnectActions.SERVICE_PREFIX = "kafkaconnect";
22
22
  /** [Write] kafkaconnect:CreateConnector */
@@ -214,7 +214,7 @@ class KafkaconnectResources {
214
214
  }
215
215
  exports.KafkaconnectResources = KafkaconnectResources;
216
216
  _b = JSII_RTTI_SYMBOL_1;
217
- KafkaconnectResources[_b] = { fqn: "@cdk_utils/iam.kafkaconnect.KafkaconnectResources", version: "1.13.0" };
217
+ KafkaconnectResources[_b] = { fqn: "@cdk_utils/iam.kafkaconnect.KafkaconnectResources", version: "1.15.0" };
218
218
  /**
219
219
  * API operation to required IAM actions mapping for kafkaconnect.
220
220
  */
@@ -222,7 +222,7 @@ class KafkaconnectOperations {
222
222
  }
223
223
  exports.KafkaconnectOperations = KafkaconnectOperations;
224
224
  _c = JSII_RTTI_SYMBOL_1;
225
- KafkaconnectOperations[_c] = { fqn: "@cdk_utils/iam.kafkaconnect.KafkaconnectOperations", version: "1.13.0" };
225
+ KafkaconnectOperations[_c] = { fqn: "@cdk_utils/iam.kafkaconnect.KafkaconnectOperations", version: "1.15.0" };
226
226
  /** IAM actions required for the CreateConnector API call. */
227
227
  KafkaconnectOperations.CreateConnector = [
228
228
  "kafkaconnect:CreateConnector",
@@ -284,6 +284,8 @@ KafkaconnectOperations.ListTagsForResource = [
284
284
  KafkaconnectOperations.ListWorkerConfigurations = [
285
285
  "kafkaconnect:ListWorkerConfigurations",
286
286
  ];
287
+ /** IAM actions required for the RestartConnector API call. */
288
+ KafkaconnectOperations.RestartConnector = [];
287
289
  /** IAM actions required for the TagResource API call. */
288
290
  KafkaconnectOperations.TagResource = ["kafkaconnect:TagResource"];
289
291
  /** IAM actions required for the UntagResource API call. */
@@ -315,7 +317,7 @@ class KafkaconnectConditions {
315
317
  }
316
318
  exports.KafkaconnectConditions = KafkaconnectConditions;
317
319
  _d = JSII_RTTI_SYMBOL_1;
318
- KafkaconnectConditions[_d] = { fqn: "@cdk_utils/iam.kafkaconnect.KafkaconnectConditions", version: "1.13.0" };
320
+ KafkaconnectConditions[_d] = { fqn: "@cdk_utils/iam.kafkaconnect.KafkaconnectConditions", version: "1.15.0" };
319
321
  /** Condition keys applicable to the TagResource action. */
320
322
  KafkaconnectConditions.TagResourceConditionKeys = [
321
323
  "aws:RequestTag/${TagKey}",
@@ -329,4 +331,4 @@ KafkaconnectConditions.AWS_REQUEST_TAG = "aws:RequestTag/${TagKey}";
329
331
  KafkaconnectConditions.AWS_RESOURCE_TAG = "aws:ResourceTag/${TagKey}";
330
332
  /** Condition key: aws:TagKeys (ArrayOfString) */
331
333
  KafkaconnectConditions.AWS_TAG_KEYS = "aws:TagKeys";
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2Fjb25uZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9rYWZrYWNvbm5lY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxtREFBbUQ7QUFDbkQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsbUJBQW1COztBQUFoQyxrREE4RUM7OztBQTdFQSw4QkFBOEI7QUFDZCxrQ0FBYyxHQUFHLGNBQWMsQ0FBQztBQUVoRCwyQ0FBMkM7QUFDM0IsbUNBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSw4Q0FBOEM7QUFDOUIsc0NBQWtCLEdBQUcsaUNBQWlDLENBQUM7QUFDdkUscURBQXFEO0FBQ3JDLDZDQUF5QixHQUN4Qyx3Q0FBd0MsQ0FBQztBQUMxQywyQ0FBMkM7QUFDM0IsbUNBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSw4Q0FBOEM7QUFDOUIsc0NBQWtCLEdBQUcsaUNBQWlDLENBQUM7QUFDdkUscURBQXFEO0FBQ3JDLDZDQUF5QixHQUN4Qyx3Q0FBd0MsQ0FBQztBQUMxQyw0Q0FBNEM7QUFDNUIscUNBQWlCLEdBQUcsZ0NBQWdDLENBQUM7QUFDckUscURBQXFEO0FBQ3JDLDhDQUEwQixHQUN6Qyx5Q0FBeUMsQ0FBQztBQUMzQywrQ0FBK0M7QUFDL0Isd0NBQW9CLEdBQUcsbUNBQW1DLENBQUM7QUFDM0Usc0RBQXNEO0FBQ3RDLCtDQUEyQixHQUMxQywwQ0FBMEMsQ0FBQztBQUM1QyxrREFBa0Q7QUFDbEMsMkNBQXVCLEdBQ3RDLHNDQUFzQyxDQUFDO0FBQ3hDLHlDQUF5QztBQUN6QixrQ0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBQy9ELDRDQUE0QztBQUM1QixxQ0FBaUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNyRSw4Q0FBOEM7QUFDOUIsdUNBQW1CLEdBQUcsa0NB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QUFFLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFnQjtRQUM5QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNuRSxDQUFDOztBQW5DRix3REFvQ0M7OztBQW5DQSwyREFBMkQ7QUFDM0MsK0NBQXdCLEdBQWE7SUFDcEQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsNkRBQTZEO0FBQzdDLGlEQUEwQixHQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFdkUsdURBQXVEO0FBQ3ZDLHNDQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFDN0Qsd0RBQXdEO0FBQ3hDLHVDQUFnQixHQUFHLDJCQUEyQixDQUFDO0FBQy9ELGlEQUFpRDtBQUNqQyxtQ0FBWSxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2thZmthY29ubmVjdC5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUga2Fma2Fjb25uZWN0IHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBLYWZrYWNvbm5lY3RBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwia2Fma2Fjb25uZWN0XCI7XG5cblx0LyoqIFtXcml0ZV0ga2Fma2Fjb25uZWN0OkNyZWF0ZUNvbm5lY3RvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29ubmVjdG9yID0gXCJrYWZrYWNvbm5lY3Q6Q3JlYXRlQ29ubmVjdG9yXCI7XG5cdC8qKiBbV3JpdGVdIGthZmthY29ubmVjdDpDcmVhdGVDdXN0b21QbHVnaW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUN1c3RvbVBsdWdpbiA9IFwia2Fma2Fjb25uZWN0OkNyZWF0ZUN1c3RvbVBsdWdpblwiO1xuXHQvKiogW1dyaXRlXSBrYWZrYWNvbm5lY3Q6Q3JlYXRlV29ya2VyQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlV29ya2VyQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJrYWZrYWNvbm5lY3Q6Q3JlYXRlV29ya2VyQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBrYWZrYWNvbm5lY3Q6RGVsZXRlQ29ubmVjdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25uZWN0b3IgPSBcImthZmthY29ubmVjdDpEZWxldGVDb25uZWN0b3JcIjtcblx0LyoqIFtXcml0ZV0ga2Fma2Fjb25uZWN0OkRlbGV0ZUN1c3RvbVBsdWdpbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ3VzdG9tUGx1Z2luID0gXCJrYWZrYWNvbm5lY3Q6RGVsZXRlQ3VzdG9tUGx1Z2luXCI7XG5cdC8qKiBbV3JpdGVdIGthZmthY29ubmVjdDpEZWxldGVXb3JrZXJDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVXb3JrZXJDb25maWd1cmF0aW9uID1cblx0XHRcImthZmthY29ubmVjdDpEZWxldGVXb3JrZXJDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0ga2Fma2Fjb25uZWN0OkRlc2NyaWJlQ29ubmVjdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNvbm5lY3RvciA9IFwia2Fma2Fjb25uZWN0OkRlc2NyaWJlQ29ubmVjdG9yXCI7XG5cdC8qKiBbUmVhZF0ga2Fma2Fjb25uZWN0OkRlc2NyaWJlQ29ubmVjdG9yT3BlcmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNvbm5lY3Rvck9wZXJhdGlvbiA9XG5cdFx0XCJrYWZrYWNvbm5lY3Q6RGVzY3JpYmVDb25uZWN0b3JPcGVyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBrYWZrYWNvbm5lY3Q6RGVzY3JpYmVDdXN0b21QbHVnaW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ3VzdG9tUGx1Z2luID0gXCJrYWZrYWNvbm5lY3Q6RGVzY3JpYmVDdXN0b21QbHVnaW5cIjtcblx0LyoqIFtSZWFkXSBrYWZrYWNvbm5lY3Q6RGVzY3JpYmVXb3JrZXJDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVdvcmtlckNvbmZpZ3VyYXRpb24gPVxuXHRcdFwia2Fma2Fjb25uZWN0OkRlc2NyaWJlV29ya2VyQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGthZmthY29ubmVjdDpMaXN0Q29ubmVjdG9yT3BlcmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbm5lY3Rvck9wZXJhdGlvbnMgPVxuXHRcdFwia2Fma2Fjb25uZWN0Okxpc3RDb25uZWN0b3JPcGVyYXRpb25zXCI7XG5cdC8qKiBbUmVhZF0ga2Fma2Fjb25uZWN0Okxpc3RDb25uZWN0b3JzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29ubmVjdG9ycyA9IFwia2Fma2Fjb25uZWN0Okxpc3RDb25uZWN0b3JzXCI7XG5cdC8qKiBbUmVhZF0ga2Fma2Fjb25uZWN0Okxpc3RDdXN0b21QbHVnaW5zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q3VzdG9tUGx1Z2lucyA9IFwia2Fma2Fjb25uZWN0Okxpc3RDdXN0b21QbHVnaW5zXCI7XG5cdC8qKiBbUmVhZF0ga2Fma2Fjb25uZWN0Okxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImthZmthY29ubmVjdDpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbUmVhZF0ga2Fma2Fjb25uZWN0Okxpc3RXb3JrZXJDb25maWd1cmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFdvcmtlckNvbmZpZ3VyYXRpb25zID1cblx0XHRcImthZmthY29ubmVjdDpMaXN0V29ya2VyQ29uZmlndXJhdGlvbnNcIjtcblx0LyoqIFtUYWdnaW5nXSBrYWZrYWNvbm5lY3Q6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJrYWZrYWNvbm5lY3Q6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtUYWdnaW5nXSBrYWZrYWNvbm5lY3Q6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwia2Fma2Fjb25uZWN0OlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0ga2Fma2Fjb25uZWN0OlVwZGF0ZUNvbm5lY3RvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29ubmVjdG9yID0gXCJrYWZrYWNvbm5lY3Q6VXBkYXRlQ29ubmVjdG9yXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5EZXNjcmliZUNvbm5lY3Rvcixcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLkRlc2NyaWJlQ29ubmVjdG9yT3BlcmF0aW9uLFxuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuRGVzY3JpYmVDdXN0b21QbHVnaW4sXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5EZXNjcmliZVdvcmtlckNvbmZpZ3VyYXRpb24sXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5MaXN0Q29ubmVjdG9yT3BlcmF0aW9ucyxcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLkxpc3RDb25uZWN0b3JzLFxuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuTGlzdEN1c3RvbVBsdWdpbnMsXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuTGlzdFdvcmtlckNvbmZpZ3VyYXRpb25zLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuQ3JlYXRlQ29ubmVjdG9yLFxuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuQ3JlYXRlQ3VzdG9tUGx1Z2luLFxuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuQ3JlYXRlV29ya2VyQ29uZmlndXJhdGlvbixcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLkRlbGV0ZUNvbm5lY3Rvcixcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLkRlbGV0ZUN1c3RvbVBsdWdpbixcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLkRlbGV0ZVdvcmtlckNvbmZpZ3VyYXRpb24sXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5VcGRhdGVDb25uZWN0b3IsXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29ubmVjdG9yIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYWNvbm5lY3RDb25uZWN0b3JBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29ubmVjdG9yTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29ubmVjdG9yTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb25uZWN0b3IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthY29ubmVjdENvbm5lY3RvckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29ubmVjdG9yTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbm5lY3Rvck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29ubmVjdG9yIG9wZXJhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2Fma2Fjb25uZWN0Q29ubmVjdG9yT3BlcmF0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIENvbm5lY3Rvck5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbm5lY3Rvck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb25uZWN0b3JVVUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25uZWN0b3JVdWlkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbm5lY3RvciBvcGVyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthY29ubmVjdENvbm5lY3Rvck9wZXJhdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29ubmVjdG9yTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbm5lY3Rvck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb25uZWN0b3JVVUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29ubmVjdG9yVXVpZDogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjdXN0b20gcGx1Z2luIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYWNvbm5lY3RDdXN0b21QbHVnaW5Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ3VzdG9tUGx1Z2luTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY3VzdG9tUGx1Z2luTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjdXN0b20gcGx1Z2luIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYWNvbm5lY3RDdXN0b21QbHVnaW5Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEN1c3RvbVBsdWdpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjdXN0b21QbHVnaW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHdvcmtlciBjb25maWd1cmF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYWNvbm5lY3RXb3JrZXJDb25maWd1cmF0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFdvcmtlckNvbmZpZ3VyYXRpb25OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB3b3JrZXJDb25maWd1cmF0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB3b3JrZXIgY29uZmlndXJhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2Fma2Fjb25uZWN0V29ya2VyQ29uZmlndXJhdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgV29ya2VyQ29uZmlndXJhdGlvbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB3b3JrZXJDb25maWd1cmF0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG59XG5cbmNvbnN0IENvbm5lY3RvckFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTprYWZrYWNvbm5lY3Q6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb25uZWN0b3JcXC8oPzxjb25uZWN0b3JOYW1lPlteOi8/XSspXFwvKD88dXVpZD5bXjovP10rKSQvO1xuY29uc3QgQ29ubmVjdG9yT3BlcmF0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmthZmthY29ubmVjdDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNvbm5lY3Rvci1vcGVyYXRpb25cXC8oPzxjb25uZWN0b3JOYW1lPlteOi8/XSspXFwvKD88Y29ubmVjdG9yVXVpZD5bXjovP10rKVxcLyg/PHV1aWQ+W146Lz9dKykkLztcbmNvbnN0IEN1c3RvbVBsdWdpbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTprYWZrYWNvbm5lY3Q6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjdXN0b20tcGx1Z2luXFwvKD88Y3VzdG9tUGx1Z2luTmFtZT5bXjovP10rKVxcLyg/PHV1aWQ+W146Lz9dKykkLztcbmNvbnN0IFdvcmtlckNvbmZpZ3VyYXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2Fma2Fjb25uZWN0Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6d29ya2VyLWNvbmZpZ3VyYXRpb25cXC8oPzx3b3JrZXJDb25maWd1cmF0aW9uTmFtZT5bXjovP10rKVxcLyg/PHV1aWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBrYWZrYWNvbm5lY3QgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgS2Fma2Fjb25uZWN0UmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjb25uZWN0b3IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29ubmVjdG9yKHByb3BzOiBLYWZrYWNvbm5lY3RDb25uZWN0b3JBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2Fma2Fjb25uZWN0OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNvbm5lY3Rvci8ke3Byb3BzLmNvbm5lY3Rvck5hbWV9LyR7cHJvcHMudXVpZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29ubmVjdG9yIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb25uZWN0b3JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29ubmVjdG9yQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbm5lY3RvciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb25uZWN0b3JBcm4oYXJuOiBzdHJpbmcpOiBLYWZrYWNvbm5lY3RDb25uZWN0b3JBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbm5lY3RvckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25uZWN0b3IgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29ubmVjdG9yTmFtZTogbWF0Y2guZ3JvdXBzIS5jb25uZWN0b3JOYW1lLFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbm5lY3RvciBvcGVyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29ubmVjdG9yT3BlcmF0aW9uKFxuXHRcdHByb3BzOiBLYWZrYWNvbm5lY3RDb25uZWN0b3JPcGVyYXRpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTprYWZrYWNvbm5lY3Q6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y29ubmVjdG9yLW9wZXJhdGlvbi8ke3Byb3BzLmNvbm5lY3Rvck5hbWV9LyR7cHJvcHMuY29ubmVjdG9yVXVpZH0vJHtwcm9wcy51dWlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb25uZWN0b3Igb3BlcmF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb25uZWN0b3JPcGVyYXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29ubmVjdG9yT3BlcmF0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbm5lY3RvciBvcGVyYXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29ubmVjdG9yT3BlcmF0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBLYWZrYWNvbm5lY3RDb25uZWN0b3JPcGVyYXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbm5lY3Rvck9wZXJhdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25uZWN0b3Igb3BlcmF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvbm5lY3Rvck5hbWU6IG1hdGNoLmdyb3VwcyEuY29ubmVjdG9yTmFtZSxcblx0XHRcdGNvbm5lY3RvclV1aWQ6IG1hdGNoLmdyb3VwcyEuY29ubmVjdG9yVXVpZCxcblx0XHRcdHV1aWQ6IG1hdGNoLmdyb3VwcyEudXVpZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjdXN0b20gcGx1Z2luIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGN1c3RvbVBsdWdpbihwcm9wczogS2Fma2Fjb25uZWN0Q3VzdG9tUGx1Z2luQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmthZmthY29ubmVjdDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjdXN0b20tcGx1Z2luLyR7cHJvcHMuY3VzdG9tUGx1Z2luTmFtZX0vJHtwcm9wcy51dWlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjdXN0b20gcGx1Z2luIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDdXN0b21QbHVnaW5Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ3VzdG9tUGx1Z2luQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGN1c3RvbSBwbHVnaW4gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ3VzdG9tUGx1Z2luQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBLYWZrYWNvbm5lY3RDdXN0b21QbHVnaW5Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEN1c3RvbVBsdWdpbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjdXN0b20gcGx1Z2luIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGN1c3RvbVBsdWdpbk5hbWU6IG1hdGNoLmdyb3VwcyEuY3VzdG9tUGx1Z2luTmFtZSxcblx0XHRcdHV1aWQ6IG1hdGNoLmdyb3VwcyEudXVpZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB3b3JrZXIgY29uZmlndXJhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB3b3JrZXJDb25maWd1cmF0aW9uKFxuXHRcdHByb3BzOiBLYWZrYWNvbm5lY3RXb3JrZXJDb25maWd1cmF0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2Fma2Fjb25uZWN0OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Ondvcmtlci1jb25maWd1cmF0aW9uLyR7cHJvcHMud29ya2VyQ29uZmlndXJhdGlvbk5hbWV9LyR7cHJvcHMudXVpZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgd29ya2VyIGNvbmZpZ3VyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFdvcmtlckNvbmZpZ3VyYXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gV29ya2VyQ29uZmlndXJhdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB3b3JrZXIgY29uZmlndXJhdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VXb3JrZXJDb25maWd1cmF0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBLYWZrYWNvbm5lY3RXb3JrZXJDb25maWd1cmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBXb3JrZXJDb25maWd1cmF0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHdvcmtlciBjb25maWd1cmF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHdvcmtlckNvbmZpZ3VyYXRpb25OYW1lOiBtYXRjaC5ncm91cHMhLndvcmtlckNvbmZpZ3VyYXRpb25OYW1lLFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGthZmthY29ubmVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEthZmthY29ubmVjdE9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDb25uZWN0b3IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25uZWN0b3I6IHN0cmluZ1tdID0gW1xuXHRcdFwia2Fma2Fjb25uZWN0OkNyZWF0ZUNvbm5lY3RvclwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJrYWZrYWNvbm5lY3Q6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ3VzdG9tUGx1Z2luIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ3VzdG9tUGx1Z2luOiBzdHJpbmdbXSA9IFtcblx0XHRcImthZmthY29ubmVjdDpDcmVhdGVDdXN0b21QbHVnaW5cIixcblx0XHRcImthZmthY29ubmVjdDpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVXb3JrZXJDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlV29ya2VyQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJrYWZrYWNvbm5lY3Q6Q3JlYXRlV29ya2VyQ29uZmlndXJhdGlvblwiLFxuXHRcdFwia2Fma2Fjb25uZWN0OlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNvbm5lY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbm5lY3Rvcjogc3RyaW5nW10gPSBbXCJrYWZrYWNvbm5lY3Q6RGVsZXRlQ29ubmVjdG9yXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDdXN0b21QbHVnaW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDdXN0b21QbHVnaW46IHN0cmluZ1tdID0gW1xuXHRcdFwia2Fma2Fjb25uZWN0OkRlbGV0ZUN1c3RvbVBsdWdpblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVXb3JrZXJDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlV29ya2VyQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJrYWZrYWNvbm5lY3Q6RGVsZXRlV29ya2VyQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUNvbm5lY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ29ubmVjdG9yOiBzdHJpbmdbXSA9IFtcblx0XHRcImthZmthY29ubmVjdDpEZXNjcmliZUNvbm5lY3RvclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUNvbm5lY3Rvck9wZXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ29ubmVjdG9yT3BlcmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImthZmthY29ubmVjdDpEZXNjcmliZUNvbm5lY3RvclwiLFxuXHRcdFwia2Fma2Fjb25uZWN0OkRlc2NyaWJlQ29ubmVjdG9yT3BlcmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ3VzdG9tUGx1Z2luIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDdXN0b21QbHVnaW46IHN0cmluZ1tdID0gW1xuXHRcdFwia2Fma2Fjb25uZWN0OkRlc2NyaWJlQ3VzdG9tUGx1Z2luXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlV29ya2VyQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlV29ya2VyQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJrYWZrYWNvbm5lY3Q6RGVzY3JpYmVXb3JrZXJDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb25uZWN0b3JPcGVyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbm5lY3Rvck9wZXJhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwia2Fma2Fjb25uZWN0Okxpc3RDb25uZWN0b3JPcGVyYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb25uZWN0b3JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbm5lY3RvcnM6IHN0cmluZ1tdID0gW1wia2Fma2Fjb25uZWN0Okxpc3RDb25uZWN0b3JzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q3VzdG9tUGx1Z2lucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDdXN0b21QbHVnaW5zOiBzdHJpbmdbXSA9IFtcblx0XHRcImthZmthY29ubmVjdDpMaXN0Q3VzdG9tUGx1Z2luc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJrYWZrYWNvbm5lY3Q6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0V29ya2VyQ29uZmlndXJhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2VyQ29uZmlndXJhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwia2Fma2Fjb25uZWN0Okxpc3RXb3JrZXJDb25maWd1cmF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImthZmthY29ubmVjdDpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wia2Fma2Fjb25uZWN0OlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNvbm5lY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbm5lY3Rvcjogc3RyaW5nW10gPSBbXCJrYWZrYWNvbm5lY3Q6VXBkYXRlQ29ubmVjdG9yXCJdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3Iga2Fma2Fjb25uZWN0LlxuICovXG5leHBvcnQgY2xhc3MgS2Fma2Fjb25uZWN0Q29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=
334
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2Fjb25uZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9rYWZrYWNvbm5lY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxtREFBbUQ7QUFDbkQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsbUJBQW1COztBQUFoQyxrREE4RUM7OztBQTdFQSw4QkFBOEI7QUFDZCxrQ0FBYyxHQUFHLGNBQWMsQ0FBQztBQUVoRCwyQ0FBMkM7QUFDM0IsbUNBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSw4Q0FBOEM7QUFDOUIsc0NBQWtCLEdBQUcsaUNBQWlDLENBQUM7QUFDdkUscURBQXFEO0FBQ3JDLDZDQUF5QixHQUN4Qyx3Q0FBd0MsQ0FBQztBQUMxQywyQ0FBMkM7QUFDM0IsbUNBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSw4Q0FBOEM7QUFDOUIsc0NBQWtCLEdBQUcsaUNBQWlDLENBQUM7QUFDdkUscURBQXFEO0FBQ3JDLDZDQUF5QixHQUN4Qyx3Q0FBd0MsQ0FBQztBQUMxQyw0Q0FBNEM7QUFDNUIscUNBQWlCLEdBQUcsZ0NBQWdDLENBQUM7QUFDckUscURBQXFEO0FBQ3JDLDhDQUEwQixHQUN6Qyx5Q0FBeUMsQ0FBQztBQUMzQywrQ0FBK0M7QUFDL0Isd0NBQW9CLEdBQUcsbUNBQW1DLENBQUM7QUFDM0Usc0RBQXNEO0FBQ3RDLCtDQUEyQixHQUMxQywwQ0FBMEMsQ0FBQztBQUM1QyxrREFBa0Q7QUFDbEMsMkNBQXVCLEdBQ3RDLHNDQUFzQyxDQUFDO0FBQ3hDLHlDQUF5QztBQUN6QixrQ0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBQy9ELDRDQUE0QztBQUM1QixxQ0FBaUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNyRSw4Q0FBOEM7QUFDOUIsdUNBQW1CLEdBQUcsa0NB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QUUsWUFBWSxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWdCO1FBQzlCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBQ25FLENBQUM7O0FBbkNGLHdEQW9DQzs7O0FBbkNBLDJEQUEyRDtBQUMzQywrQ0FBd0IsR0FBYTtJQUNwRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0MsaURBQTBCLEdBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV2RSx1REFBdUQ7QUFDdkMsc0NBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMsdUNBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLG1DQUFZLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2Uva2Fma2Fjb25uZWN0Lmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBrYWZrYWNvbm5lY3Qgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEthZmthY29ubmVjdEFjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJrYWZrYWNvbm5lY3RcIjtcblxuXHQvKiogW1dyaXRlXSBrYWZrYWNvbm5lY3Q6Q3JlYXRlQ29ubmVjdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25uZWN0b3IgPSBcImthZmthY29ubmVjdDpDcmVhdGVDb25uZWN0b3JcIjtcblx0LyoqIFtXcml0ZV0ga2Fma2Fjb25uZWN0OkNyZWF0ZUN1c3RvbVBsdWdpbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ3VzdG9tUGx1Z2luID0gXCJrYWZrYWNvbm5lY3Q6Q3JlYXRlQ3VzdG9tUGx1Z2luXCI7XG5cdC8qKiBbV3JpdGVdIGthZmthY29ubmVjdDpDcmVhdGVXb3JrZXJDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVXb3JrZXJDb25maWd1cmF0aW9uID1cblx0XHRcImthZmthY29ubmVjdDpDcmVhdGVXb3JrZXJDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGthZmthY29ubmVjdDpEZWxldGVDb25uZWN0b3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbm5lY3RvciA9IFwia2Fma2Fjb25uZWN0OkRlbGV0ZUNvbm5lY3RvclwiO1xuXHQvKiogW1dyaXRlXSBrYWZrYWNvbm5lY3Q6RGVsZXRlQ3VzdG9tUGx1Z2luICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDdXN0b21QbHVnaW4gPSBcImthZmthY29ubmVjdDpEZWxldGVDdXN0b21QbHVnaW5cIjtcblx0LyoqIFtXcml0ZV0ga2Fma2Fjb25uZWN0OkRlbGV0ZVdvcmtlckNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVdvcmtlckNvbmZpZ3VyYXRpb24gPVxuXHRcdFwia2Fma2Fjb25uZWN0OkRlbGV0ZVdvcmtlckNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBrYWZrYWNvbm5lY3Q6RGVzY3JpYmVDb25uZWN0b3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ29ubmVjdG9yID0gXCJrYWZrYWNvbm5lY3Q6RGVzY3JpYmVDb25uZWN0b3JcIjtcblx0LyoqIFtSZWFkXSBrYWZrYWNvbm5lY3Q6RGVzY3JpYmVDb25uZWN0b3JPcGVyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ29ubmVjdG9yT3BlcmF0aW9uID1cblx0XHRcImthZmthY29ubmVjdDpEZXNjcmliZUNvbm5lY3Rvck9wZXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGthZmthY29ubmVjdDpEZXNjcmliZUN1c3RvbVBsdWdpbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDdXN0b21QbHVnaW4gPSBcImthZmthY29ubmVjdDpEZXNjcmliZUN1c3RvbVBsdWdpblwiO1xuXHQvKiogW1JlYWRdIGthZmthY29ubmVjdDpEZXNjcmliZVdvcmtlckNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlV29ya2VyQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJrYWZrYWNvbm5lY3Q6RGVzY3JpYmVXb3JrZXJDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0ga2Fma2Fjb25uZWN0Okxpc3RDb25uZWN0b3JPcGVyYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29ubmVjdG9yT3BlcmF0aW9ucyA9XG5cdFx0XCJrYWZrYWNvbm5lY3Q6TGlzdENvbm5lY3Rvck9wZXJhdGlvbnNcIjtcblx0LyoqIFtSZWFkXSBrYWZrYWNvbm5lY3Q6TGlzdENvbm5lY3RvcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb25uZWN0b3JzID0gXCJrYWZrYWNvbm5lY3Q6TGlzdENvbm5lY3RvcnNcIjtcblx0LyoqIFtSZWFkXSBrYWZrYWNvbm5lY3Q6TGlzdEN1c3RvbVBsdWdpbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDdXN0b21QbHVnaW5zID0gXCJrYWZrYWNvbm5lY3Q6TGlzdEN1c3RvbVBsdWdpbnNcIjtcblx0LyoqIFtSZWFkXSBrYWZrYWNvbm5lY3Q6TGlzdFRhZ3NGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZSA9IFwia2Fma2Fjb25uZWN0Okxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtSZWFkXSBrYWZrYWNvbm5lY3Q6TGlzdFdvcmtlckNvbmZpZ3VyYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2VyQ29uZmlndXJhdGlvbnMgPVxuXHRcdFwia2Fma2Fjb25uZWN0Okxpc3RXb3JrZXJDb25maWd1cmF0aW9uc1wiO1xuXHQvKiogW1RhZ2dpbmddIGthZmthY29ubmVjdDpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImthZmthY29ubmVjdDpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGthZmthY29ubmVjdDpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJrYWZrYWNvbm5lY3Q6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBrYWZrYWNvbm5lY3Q6VXBkYXRlQ29ubmVjdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb25uZWN0b3IgPSBcImthZmthY29ubmVjdDpVcGRhdGVDb25uZWN0b3JcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLkRlc2NyaWJlQ29ubmVjdG9yLFxuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuRGVzY3JpYmVDb25uZWN0b3JPcGVyYXRpb24sXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5EZXNjcmliZUN1c3RvbVBsdWdpbixcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLkRlc2NyaWJlV29ya2VyQ29uZmlndXJhdGlvbixcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLkxpc3RDb25uZWN0b3JPcGVyYXRpb25zLFxuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuTGlzdENvbm5lY3RvcnMsXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5MaXN0Q3VzdG9tUGx1Z2lucyxcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5MaXN0V29ya2VyQ29uZmlndXJhdGlvbnMsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5DcmVhdGVDb25uZWN0b3IsXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5DcmVhdGVDdXN0b21QbHVnaW4sXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5DcmVhdGVXb3JrZXJDb25maWd1cmF0aW9uLFxuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuRGVsZXRlQ29ubmVjdG9yLFxuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuRGVsZXRlQ3VzdG9tUGx1Z2luLFxuXHRcdEthZmthY29ubmVjdEFjdGlvbnMuRGVsZXRlV29ya2VyQ29uZmlndXJhdGlvbixcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLlVwZGF0ZUNvbm5lY3Rvcixcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0S2Fma2Fjb25uZWN0QWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRLYWZrYWNvbm5lY3RBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb25uZWN0b3IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthY29ubmVjdENvbm5lY3RvckFyblByb3BzIHtcblx0LyoqIFRoZSBDb25uZWN0b3JOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25uZWN0b3JOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbm5lY3RvciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2Fma2Fjb25uZWN0Q29ubmVjdG9yQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb25uZWN0b3JOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29ubmVjdG9yTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb25uZWN0b3Igb3BlcmF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYWNvbm5lY3RDb25uZWN0b3JPcGVyYXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29ubmVjdG9yTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29ubmVjdG9yTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbm5lY3RvclVVSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbm5lY3RvclV1aWQ6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB1dWlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29ubmVjdG9yIG9wZXJhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2Fma2Fjb25uZWN0Q29ubmVjdG9yT3BlcmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb25uZWN0b3JOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29ubmVjdG9yTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbm5lY3RvclVVSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25uZWN0b3JVdWlkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGN1c3RvbSBwbHVnaW4gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthY29ubmVjdEN1c3RvbVBsdWdpbkFyblByb3BzIHtcblx0LyoqIFRoZSBDdXN0b21QbHVnaW5OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjdXN0b21QbHVnaW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGN1c3RvbSBwbHVnaW4gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthY29ubmVjdEN1c3RvbVBsdWdpbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ3VzdG9tUGx1Z2luTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGN1c3RvbVBsdWdpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVVUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgd29ya2VyIGNvbmZpZ3VyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthY29ubmVjdFdvcmtlckNvbmZpZ3VyYXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgV29ya2VyQ29uZmlndXJhdGlvbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHdvcmtlckNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXVpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHdvcmtlciBjb25maWd1cmF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYWNvbm5lY3RXb3JrZXJDb25maWd1cmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZXJDb25maWd1cmF0aW9uTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHdvcmtlckNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuY29uc3QgQ29ubmVjdG9yQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmthZmthY29ubmVjdDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNvbm5lY3RvclxcLyg/PGNvbm5lY3Rvck5hbWU+W146Lz9dKylcXC8oPzx1dWlkPlteOi8/XSspJC87XG5jb25zdCBDb25uZWN0b3JPcGVyYXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2Fma2Fjb25uZWN0Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y29ubmVjdG9yLW9wZXJhdGlvblxcLyg/PGNvbm5lY3Rvck5hbWU+W146Lz9dKylcXC8oPzxjb25uZWN0b3JVdWlkPlteOi8/XSspXFwvKD88dXVpZD5bXjovP10rKSQvO1xuY29uc3QgQ3VzdG9tUGx1Z2luQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmthZmthY29ubmVjdDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmN1c3RvbS1wbHVnaW5cXC8oPzxjdXN0b21QbHVnaW5OYW1lPlteOi8/XSspXFwvKD88dXVpZD5bXjovP10rKSQvO1xuY29uc3QgV29ya2VyQ29uZmlndXJhdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTprYWZrYWNvbm5lY3Q6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp3b3JrZXItY29uZmlndXJhdGlvblxcLyg/PHdvcmtlckNvbmZpZ3VyYXRpb25OYW1lPlteOi8/XSspXFwvKD88dXVpZD5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIGthZmthY29ubmVjdCByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBLYWZrYWNvbm5lY3RSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbm5lY3RvciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb25uZWN0b3IocHJvcHM6IEthZmthY29ubmVjdENvbm5lY3RvckFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTprYWZrYWNvbm5lY3Q6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y29ubmVjdG9yLyR7cHJvcHMuY29ubmVjdG9yTmFtZX0vJHtwcm9wcy51dWlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb25uZWN0b3IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbm5lY3RvckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb25uZWN0b3JBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29ubmVjdG9yIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbm5lY3RvckFybihhcm46IHN0cmluZyk6IEthZmthY29ubmVjdENvbm5lY3RvckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29ubmVjdG9yQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbm5lY3RvciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjb25uZWN0b3JOYW1lOiBtYXRjaC5ncm91cHMhLmNvbm5lY3Rvck5hbWUsXG5cdFx0XHR1dWlkOiBtYXRjaC5ncm91cHMhLnV1aWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29ubmVjdG9yIG9wZXJhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb25uZWN0b3JPcGVyYXRpb24oXG5cdFx0cHJvcHM6IEthZmthY29ubmVjdENvbm5lY3Rvck9wZXJhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmthZmthY29ubmVjdDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjb25uZWN0b3Itb3BlcmF0aW9uLyR7cHJvcHMuY29ubmVjdG9yTmFtZX0vJHtwcm9wcy5jb25uZWN0b3JVdWlkfS8ke3Byb3BzLnV1aWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNvbm5lY3RvciBvcGVyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbm5lY3Rvck9wZXJhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb25uZWN0b3JPcGVyYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29ubmVjdG9yIG9wZXJhdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb25uZWN0b3JPcGVyYXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEthZmthY29ubmVjdENvbm5lY3Rvck9wZXJhdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29ubmVjdG9yT3BlcmF0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbm5lY3RvciBvcGVyYXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29ubmVjdG9yTmFtZTogbWF0Y2guZ3JvdXBzIS5jb25uZWN0b3JOYW1lLFxuXHRcdFx0Y29ubmVjdG9yVXVpZDogbWF0Y2guZ3JvdXBzIS5jb25uZWN0b3JVdWlkLFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGN1c3RvbSBwbHVnaW4gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY3VzdG9tUGx1Z2luKHByb3BzOiBLYWZrYWNvbm5lY3RDdXN0b21QbHVnaW5Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2Fma2Fjb25uZWN0OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmN1c3RvbS1wbHVnaW4vJHtwcm9wcy5jdXN0b21QbHVnaW5OYW1lfS8ke3Byb3BzLnV1aWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGN1c3RvbSBwbHVnaW4gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEN1c3RvbVBsdWdpbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDdXN0b21QbHVnaW5Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY3VzdG9tIHBsdWdpbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDdXN0b21QbHVnaW5Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEthZmthY29ubmVjdEN1c3RvbVBsdWdpbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ3VzdG9tUGx1Z2luQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGN1c3RvbSBwbHVnaW4gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y3VzdG9tUGx1Z2luTmFtZTogbWF0Y2guZ3JvdXBzIS5jdXN0b21QbHVnaW5OYW1lLFxuXHRcdFx0dXVpZDogbWF0Y2guZ3JvdXBzIS51dWlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHdvcmtlciBjb25maWd1cmF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHdvcmtlckNvbmZpZ3VyYXRpb24oXG5cdFx0cHJvcHM6IEthZmthY29ubmVjdFdvcmtlckNvbmZpZ3VyYXRpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTprYWZrYWNvbm5lY3Q6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06d29ya2VyLWNvbmZpZ3VyYXRpb24vJHtwcm9wcy53b3JrZXJDb25maWd1cmF0aW9uTmFtZX0vJHtwcm9wcy51dWlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB3b3JrZXIgY29uZmlndXJhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkV29ya2VyQ29uZmlndXJhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBXb3JrZXJDb25maWd1cmF0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHdvcmtlciBjb25maWd1cmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVdvcmtlckNvbmZpZ3VyYXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEthZmthY29ubmVjdFdvcmtlckNvbmZpZ3VyYXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFdvcmtlckNvbmZpZ3VyYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgd29ya2VyIGNvbmZpZ3VyYXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0d29ya2VyQ29uZmlndXJhdGlvbk5hbWU6IG1hdGNoLmdyb3VwcyEud29ya2VyQ29uZmlndXJhdGlvbk5hbWUsXG5cdFx0XHR1dWlkOiBtYXRjaC5ncm91cHMhLnV1aWQsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Iga2Fma2Fjb25uZWN0LlxuICovXG5leHBvcnQgY2xhc3MgS2Fma2Fjb25uZWN0T3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNvbm5lY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbm5lY3Rvcjogc3RyaW5nW10gPSBbXG5cdFx0XCJrYWZrYWNvbm5lY3Q6Q3JlYXRlQ29ubmVjdG9yXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImthZmthY29ubmVjdDpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDdXN0b21QbHVnaW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDdXN0b21QbHVnaW46IHN0cmluZ1tdID0gW1xuXHRcdFwia2Fma2Fjb25uZWN0OkNyZWF0ZUN1c3RvbVBsdWdpblwiLFxuXHRcdFwia2Fma2Fjb25uZWN0OlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVdvcmtlckNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVXb3JrZXJDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImthZmthY29ubmVjdDpDcmVhdGVXb3JrZXJDb25maWd1cmF0aW9uXCIsXG5cdFx0XCJrYWZrYWNvbm5lY3Q6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29ubmVjdG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29ubmVjdG9yOiBzdHJpbmdbXSA9IFtcImthZmthY29ubmVjdDpEZWxldGVDb25uZWN0b3JcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUN1c3RvbVBsdWdpbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUN1c3RvbVBsdWdpbjogc3RyaW5nW10gPSBbXG5cdFx0XCJrYWZrYWNvbm5lY3Q6RGVsZXRlQ3VzdG9tUGx1Z2luXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVdvcmtlckNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVXb3JrZXJDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImthZmthY29ubmVjdDpEZWxldGVXb3JrZXJDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ29ubmVjdG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDb25uZWN0b3I6IHN0cmluZ1tdID0gW1xuXHRcdFwia2Fma2Fjb25uZWN0OkRlc2NyaWJlQ29ubmVjdG9yXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ29ubmVjdG9yT3BlcmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDb25uZWN0b3JPcGVyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwia2Fma2Fjb25uZWN0OkRlc2NyaWJlQ29ubmVjdG9yXCIsXG5cdFx0XCJrYWZrYWNvbm5lY3Q6RGVzY3JpYmVDb25uZWN0b3JPcGVyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVDdXN0b21QbHVnaW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUN1c3RvbVBsdWdpbjogc3RyaW5nW10gPSBbXG5cdFx0XCJrYWZrYWNvbm5lY3Q6RGVzY3JpYmVDdXN0b21QbHVnaW5cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVXb3JrZXJDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVXb3JrZXJDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImthZmthY29ubmVjdDpEZXNjcmliZVdvcmtlckNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvbm5lY3Rvck9wZXJhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29ubmVjdG9yT3BlcmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJrYWZrYWNvbm5lY3Q6TGlzdENvbm5lY3Rvck9wZXJhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvbm5lY3RvcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29ubmVjdG9yczogc3RyaW5nW10gPSBbXCJrYWZrYWNvbm5lY3Q6TGlzdENvbm5lY3RvcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDdXN0b21QbHVnaW5zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEN1c3RvbVBsdWdpbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwia2Fma2Fjb25uZWN0Okxpc3RDdXN0b21QbHVnaW5zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImthZmthY29ubmVjdDpMaXN0VGFnc0ZvclJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RXb3JrZXJDb25maWd1cmF0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RXb3JrZXJDb25maWd1cmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJrYWZrYWNvbm5lY3Q6TGlzdFdvcmtlckNvbmZpZ3VyYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlc3RhcnRDb25uZWN0b3IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZXN0YXJ0Q29ubmVjdG9yOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImthZmthY29ubmVjdDpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wia2Fma2Fjb25uZWN0OlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNvbm5lY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbm5lY3Rvcjogc3RyaW5nW10gPSBbXCJrYWZrYWNvbm5lY3Q6VXBkYXRlQ29ubmVjdG9yXCJdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3Iga2Fma2Fjb25uZWN0LlxuICovXG5leHBvcnQgY2xhc3MgS2Fma2Fjb25uZWN0Q29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=
@@ -16,7 +16,7 @@ class KendraRankingActions {
16
16
  }
17
17
  exports.KendraRankingActions = KendraRankingActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KendraRankingActions[_a] = { fqn: "@cdk_utils/iam.kendra_ranking.KendraRankingActions", version: "1.13.0" };
19
+ KendraRankingActions[_a] = { fqn: "@cdk_utils/iam.kendra_ranking.KendraRankingActions", version: "1.15.0" };
20
20
  /** The IAM service prefix. */
21
21
  KendraRankingActions.SERVICE_PREFIX = "kendra-ranking";
22
22
  /** [Write] kendra-ranking:CreateRescoreExecutionPlan */
@@ -96,7 +96,7 @@ class KendraRankingResources {
96
96
  }
97
97
  exports.KendraRankingResources = KendraRankingResources;
98
98
  _b = JSII_RTTI_SYMBOL_1;
99
- KendraRankingResources[_b] = { fqn: "@cdk_utils/iam.kendra_ranking.KendraRankingResources", version: "1.13.0" };
99
+ KendraRankingResources[_b] = { fqn: "@cdk_utils/iam.kendra_ranking.KendraRankingResources", version: "1.15.0" };
100
100
  /**
101
101
  * API operation to required IAM actions mapping for kendra-ranking.
102
102
  */
@@ -104,7 +104,7 @@ class KendraRankingOperations {
104
104
  }
105
105
  exports.KendraRankingOperations = KendraRankingOperations;
106
106
  _c = JSII_RTTI_SYMBOL_1;
107
- KendraRankingOperations[_c] = { fqn: "@cdk_utils/iam.kendra_ranking.KendraRankingOperations", version: "1.13.0" };
107
+ KendraRankingOperations[_c] = { fqn: "@cdk_utils/iam.kendra_ranking.KendraRankingOperations", version: "1.15.0" };
108
108
  /** IAM actions required for the CreateRescoreExecutionPlan API call. */
109
109
  KendraRankingOperations.CreateRescoreExecutionPlan = [
110
110
  "kendra-ranking:CreateRescoreExecutionPlan",
@@ -161,7 +161,7 @@ class KendraRankingConditions {
161
161
  }
162
162
  exports.KendraRankingConditions = KendraRankingConditions;
163
163
  _d = JSII_RTTI_SYMBOL_1;
164
- KendraRankingConditions[_d] = { fqn: "@cdk_utils/iam.kendra_ranking.KendraRankingConditions", version: "1.13.0" };
164
+ KendraRankingConditions[_d] = { fqn: "@cdk_utils/iam.kendra_ranking.KendraRankingConditions", version: "1.15.0" };
165
165
  /** Condition keys applicable to the CreateRescoreExecutionPlan action. */
166
166
  KendraRankingConditions.CreateRescoreExecutionPlanConditionKeys = [
167
167
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class KendraActions {
16
16
  }
17
17
  exports.KendraActions = KendraActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KendraActions[_a] = { fqn: "@cdk_utils/iam.kendra.KendraActions", version: "1.13.0" };
19
+ KendraActions[_a] = { fqn: "@cdk_utils/iam.kendra.KendraActions", version: "1.15.0" };
20
20
  /** The IAM service prefix. */
21
21
  KendraActions.SERVICE_PREFIX = "kendra";
22
22
  /** [Write] kendra:AssociateEntitiesToExperience */
@@ -477,7 +477,7 @@ class KendraResources {
477
477
  }
478
478
  exports.KendraResources = KendraResources;
479
479
  _b = JSII_RTTI_SYMBOL_1;
480
- KendraResources[_b] = { fqn: "@cdk_utils/iam.kendra.KendraResources", version: "1.13.0" };
480
+ KendraResources[_b] = { fqn: "@cdk_utils/iam.kendra.KendraResources", version: "1.15.0" };
481
481
  /**
482
482
  * API operation to required IAM actions mapping for kendra.
483
483
  */
@@ -485,7 +485,7 @@ class KendraOperations {
485
485
  }
486
486
  exports.KendraOperations = KendraOperations;
487
487
  _c = JSII_RTTI_SYMBOL_1;
488
- KendraOperations[_c] = { fqn: "@cdk_utils/iam.kendra.KendraOperations", version: "1.13.0" };
488
+ KendraOperations[_c] = { fqn: "@cdk_utils/iam.kendra.KendraOperations", version: "1.15.0" };
489
489
  /** IAM actions required for the AssociateEntitiesToExperience API call. */
490
490
  KendraOperations.AssociateEntitiesToExperience = [
491
491
  "kendra:AssociateEntitiesToExperience",
@@ -750,7 +750,7 @@ class KendraConditions {
750
750
  }
751
751
  exports.KendraConditions = KendraConditions;
752
752
  _d = JSII_RTTI_SYMBOL_1;
753
- KendraConditions[_d] = { fqn: "@cdk_utils/iam.kendra.KendraConditions", version: "1.13.0" };
753
+ KendraConditions[_d] = { fqn: "@cdk_utils/iam.kendra.KendraConditions", version: "1.15.0" };
754
754
  /** Condition keys applicable to the CreateDataSource action. */
755
755
  KendraConditions.CreateDataSourceConditionKeys = [
756
756
  "aws:RequestTag/${TagKey}",
@@ -235,10 +235,14 @@ export declare class KinesisResources {
235
235
  export declare class KinesisOperations {
236
236
  /** IAM actions required for the AddTagsToStream API call. */
237
237
  static readonly AddTagsToStream: string[];
238
+ /** IAM actions required for the CreateChannel API call. */
239
+ static readonly CreateChannel: string[];
238
240
  /** IAM actions required for the CreateStream API call. */
239
241
  static readonly CreateStream: string[];
240
242
  /** IAM actions required for the DecreaseStreamRetentionPeriod API call. */
241
243
  static readonly DecreaseStreamRetentionPeriod: string[];
244
+ /** IAM actions required for the DeleteChannel API call. */
245
+ static readonly DeleteChannel: string[];
242
246
  /** IAM actions required for the DeleteResourcePolicy API call. */
243
247
  static readonly DeleteResourcePolicy: string[];
244
248
  /** IAM actions required for the DeleteStream API call. */
@@ -247,6 +251,8 @@ export declare class KinesisOperations {
247
251
  static readonly DeregisterStreamConsumer: string[];
248
252
  /** IAM actions required for the DescribeAccountSettings API call. */
249
253
  static readonly DescribeAccountSettings: string[];
254
+ /** IAM actions required for the DescribeChannel API call. */
255
+ static readonly DescribeChannel: string[];
250
256
  /** IAM actions required for the DescribeLimits API call. */
251
257
  static readonly DescribeLimits: string[];
252
258
  /** IAM actions required for the DescribeStream API call. */
@@ -267,6 +273,8 @@ export declare class KinesisOperations {
267
273
  static readonly opGetShardIterator: string[];
268
274
  /** IAM actions required for the IncreaseStreamRetentionPeriod API call. */
269
275
  static readonly IncreaseStreamRetentionPeriod: string[];
276
+ /** IAM actions required for the ListChannels API call. */
277
+ static readonly ListChannels: string[];
270
278
  /** IAM actions required for the ListShards API call. */
271
279
  static readonly ListShards: string[];
272
280
  /** IAM actions required for the ListStreamConsumers API call. */
@@ -303,6 +311,8 @@ export declare class KinesisOperations {
303
311
  static readonly UntagResource: string[];
304
312
  /** IAM actions required for the UpdateAccountSettings API call. */
305
313
  static readonly UpdateAccountSettings: string[];
314
+ /** IAM actions required for the UpdateChannel API call. */
315
+ static readonly UpdateChannel: string[];
306
316
  /** IAM actions required for the UpdateMaxRecordSize API call. */
307
317
  static readonly UpdateMaxRecordSize: string[];
308
318
  /** IAM actions required for the UpdateShardCount API call. */
@@ -16,7 +16,7 @@ class KinesisActions {
16
16
  }
17
17
  exports.KinesisActions = KinesisActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KinesisActions[_a] = { fqn: "@cdk_utils/iam.kinesis.KinesisActions", version: "1.13.0" };
19
+ KinesisActions[_a] = { fqn: "@cdk_utils/iam.kinesis.KinesisActions", version: "1.15.0" };
20
20
  /** The IAM service prefix. */
21
21
  KinesisActions.SERVICE_PREFIX = "kinesis";
22
22
  /** [Tagging] kinesis:AddTagsToStream */
@@ -250,7 +250,7 @@ class KinesisResources {
250
250
  }
251
251
  exports.KinesisResources = KinesisResources;
252
252
  _b = JSII_RTTI_SYMBOL_1;
253
- KinesisResources[_b] = { fqn: "@cdk_utils/iam.kinesis.KinesisResources", version: "1.13.0" };
253
+ KinesisResources[_b] = { fqn: "@cdk_utils/iam.kinesis.KinesisResources", version: "1.15.0" };
254
254
  /**
255
255
  * API operation to required IAM actions mapping for kinesis.
256
256
  */
@@ -258,9 +258,14 @@ class KinesisOperations {
258
258
  }
259
259
  exports.KinesisOperations = KinesisOperations;
260
260
  _c = JSII_RTTI_SYMBOL_1;
261
- KinesisOperations[_c] = { fqn: "@cdk_utils/iam.kinesis.KinesisOperations", version: "1.13.0" };
261
+ KinesisOperations[_c] = { fqn: "@cdk_utils/iam.kinesis.KinesisOperations", version: "1.15.0" };
262
262
  /** IAM actions required for the AddTagsToStream API call. */
263
263
  KinesisOperations.AddTagsToStream = ["kinesis:AddTagsToStream"];
264
+ /** IAM actions required for the CreateChannel API call. */
265
+ KinesisOperations.CreateChannel = [
266
+ "iam:PassRole",
267
+ "kinesis:TagResource",
268
+ ];
264
269
  /** IAM actions required for the CreateStream API call. */
265
270
  KinesisOperations.CreateStream = [
266
271
  "kinesis:AddTagsToStream",
@@ -270,6 +275,8 @@ KinesisOperations.CreateStream = [
270
275
  KinesisOperations.DecreaseStreamRetentionPeriod = [
271
276
  "kinesis:DecreaseStreamRetentionPeriod",
272
277
  ];
278
+ /** IAM actions required for the DeleteChannel API call. */
279
+ KinesisOperations.DeleteChannel = [];
273
280
  /** IAM actions required for the DeleteResourcePolicy API call. */
274
281
  KinesisOperations.DeleteResourcePolicy = [
275
282
  "kinesis:DeleteResourcePolicy",
@@ -284,6 +291,8 @@ KinesisOperations.DeregisterStreamConsumer = [
284
291
  KinesisOperations.DescribeAccountSettings = [
285
292
  "kinesis:DescribeAccountSettings",
286
293
  ];
294
+ /** IAM actions required for the DescribeChannel API call. */
295
+ KinesisOperations.DescribeChannel = [];
287
296
  /** IAM actions required for the DescribeLimits API call. */
288
297
  KinesisOperations.DescribeLimits = ["kinesis:DescribeLimits"];
289
298
  /** IAM actions required for the DescribeStream API call. */
@@ -314,6 +323,8 @@ KinesisOperations.opGetShardIterator = ["kinesis:GetShardIterator"];
314
323
  KinesisOperations.IncreaseStreamRetentionPeriod = [
315
324
  "kinesis:IncreaseStreamRetentionPeriod",
316
325
  ];
326
+ /** IAM actions required for the ListChannels API call. */
327
+ KinesisOperations.ListChannels = [];
317
328
  /** IAM actions required for the ListShards API call. */
318
329
  KinesisOperations.ListShards = ["kinesis:ListShards"];
319
330
  /** IAM actions required for the ListStreamConsumers API call. */
@@ -365,6 +376,8 @@ KinesisOperations.UntagResource = ["kinesis:UntagResource"];
365
376
  KinesisOperations.UpdateAccountSettings = [
366
377
  "kinesis:UpdateAccountSettings",
367
378
  ];
379
+ /** IAM actions required for the UpdateChannel API call. */
380
+ KinesisOperations.UpdateChannel = [];
368
381
  /** IAM actions required for the UpdateMaxRecordSize API call. */
369
382
  KinesisOperations.UpdateMaxRecordSize = [
370
383
  "kinesis:UpdateMaxRecordSize",
@@ -420,7 +433,7 @@ class KinesisConditions {
420
433
  }
421
434
  exports.KinesisConditions = KinesisConditions;
422
435
  _d = JSII_RTTI_SYMBOL_1;
423
- KinesisConditions[_d] = { fqn: "@cdk_utils/iam.kinesis.KinesisConditions", version: "1.13.0" };
436
+ KinesisConditions[_d] = { fqn: "@cdk_utils/iam.kinesis.KinesisConditions", version: "1.15.0" };
424
437
  /** Condition keys applicable to the InjectApiError action. */
425
438
  KinesisConditions.InjectApiErrorConditionKeys = [
426
439
  "kinesis:FisActionId",
@@ -439,4 +452,4 @@ KinesisConditions.FIS_ACTION_ID = "kinesis:FisActionId";
439
452
  KinesisConditions.FIS_INJECT_PERCENTAGE = "kinesis:FisInjectPercentage";
440
453
  /** Condition key: kinesis:FisTargetArns (ArrayOfARN) */
441
454
  KinesisConditions.FIS_TARGET_ARNS = "kinesis:FisTargetArns";
442
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMva2luZXNpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELDhDQUE4QztBQUM5QyxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxjQUFjOztBQUEzQix3Q0ErSUM7OztBQTlJQSw4QkFBOEI7QUFDZCw2QkFBYyxHQUFHLFNBQVMsQ0FBQztBQUUzQyx3Q0FBd0M7QUFDeEIsOEJBQWUsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxtQ0FBbUM7QUFDbkIsMkJBQVksR0FBRyxzQkFBc0IsQ0FBQztBQUN0RCxvREFBb0Q7QUFDcEMsNENBQTZCLEdBQzVDLHVDQUF1QyxDQUFDO0FBQ3pDLDJDQUEyQztBQUMzQixtQ0FBb0IsR0FBRyw4QkFBOEIsQ0FBQztBQUN0RSxtQ0FBbUM7QUFDbkIsMkJBQVksR0FBRyxzQkFBc0IsQ0FBQztBQUN0RCwrQ0FBK0M7QUFDL0IsdUNBQXdCLEdBQUcsa0NBQWtDLENBQUM7QUFDOUUsNkNBQTZDO0FBQzdCLHNDQUF1QixHQUFHLGlDQUFpQyxDQUFDO0FBQzVFLG9DQUFvQztBQUNwQiw2QkFBYyxHQUFHLHdCQUF3QixDQUFDO0FBQzFELG9DQUFvQztBQUNwQiw2QkFBYyxHQUFHLHdCQUF3QixDQUFDO0FBQzFELDRDQUE0QztBQUM1QixxQ0FBc0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUMxRSwyQ0FBMkM7QUFDM0Isb0NBQXFCLEdBQUcsK0JBQStCLENBQUM7QUFDeEUsZ0RBQWdEO0FBQ2hDLHdDQUF5QixHQUN4QyxtQ0FBbUMsQ0FBQztBQUNyQywrQ0FBK0M7QUFDL0IsdUNBQXdCLEdBQUcsa0NBQWtDLENBQUM7QUFDOUUsZ0NBQWdDO0FBQ2hCLCtCQUFnQixHQUFHLG9CQUFvQixDQUFDO0FBQ3hELHVD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LENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUN6QixLQUFhO1FBRWIsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLDZCQUE2QixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FDbkIsTUFBZ0I7UUFFaEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUMxRSxDQUFDOztBQWpFRiw4Q0FrRUM7OztBQWpFQSw4REFBOEQ7QUFDOUMsNkNBQTJCLEdBQWE7SUFDdkQscUJBQXFCO0lBQ3JCLDZCQUE2QjtJQUM3Qix1QkFBdUI7Q0FDdkIsQ0FBQztBQUVGLHVEQUF1RDtBQUN2QyxpQ0FBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4QyxrQ0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMsOEJBQVksR0FBRyxhQUFhLENBQUM7QUFDN0Msa0RBQWtEO0FBQ2xDLCtCQUFhLEdBQUcscUJBQXFCLENBQUM7QUFDdEQsMkRBQTJEO0FBQzNDLHVDQUFxQixHQUFHLDZCQUE2QixDQUFDO0FBQ3RFLHdEQUF3RDtBQUN4QyxpQ0FBZSxHQUFHLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2Uva2luZXNpcy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUga2luZXNpcyBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgS2luZXNpc0FjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJraW5lc2lzXCI7XG5cblx0LyoqIFtUYWdnaW5nXSBraW5lc2lzOkFkZFRhZ3NUb1N0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkVGFnc1RvU3RyZWFtID0gXCJraW5lc2lzOkFkZFRhZ3NUb1N0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkNyZWF0ZVN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3RyZWFtID0gXCJraW5lc2lzOkNyZWF0ZVN0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kICovXG5cdHN0YXRpYyByZWFkb25seSBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCA9XG5cdFx0XCJraW5lc2lzOkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVsZXRlUmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5ID0gXCJraW5lc2lzOkRlbGV0ZVJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVsZXRlU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTdHJlYW0gPSBcImtpbmVzaXM6RGVsZXRlU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgPSBcImtpbmVzaXM6RGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZUFjY291bnRTZXR0aW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgPSBcImtpbmVzaXM6RGVzY3JpYmVBY2NvdW50U2V0dGluZ3NcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlTGltaXRzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUxpbWl0cyA9IFwia2luZXNpczpEZXNjcmliZUxpbWl0c1wiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6RGVzY3JpYmVTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU3RyZWFtID0gXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZVN0cmVhbUNvbnN1bWVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyID0gXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtQ29uc3VtZXJcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlU3RyZWFtU3VtbWFyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5ID0gXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtU3VtbWFyeVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcgPVxuXHRcdFwia2luZXNpczpEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nICovXG5cdHN0YXRpYyByZWFkb25seSBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmcgPSBcImtpbmVzaXM6RW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpHZXRSZWNvcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvcmRzID0gXCJraW5lc2lzOkdldFJlY29yZHNcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkdldFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXNvdXJjZVBvbGljeSA9IFwia2luZXNpczpHZXRSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6R2V0U2hhcmRJdGVyYXRvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2hhcmRJdGVyYXRvciA9IFwia2luZXNpczpHZXRTaGFyZEl0ZXJhdG9yXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6SW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QgKi9cblx0c3RhdGljIHJlYWRvbmx5IEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kID1cblx0XHRcImtpbmVzaXM6SW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpJbmplY3RBcGlFcnJvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5qZWN0QXBpRXJyb3IgPSBcImtpbmVzaXM6SW5qZWN0QXBpRXJyb3JcIjtcblx0LyoqIFtMaXN0XSBraW5lc2lzOkxpc3RTaGFyZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTaGFyZHMgPSBcImtpbmVzaXM6TGlzdFNoYXJkc1wiO1xuXHQvKiogW0xpc3RdIGtpbmVzaXM6TGlzdFN0cmVhbUNvbnN1bWVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN0cmVhbUNvbnN1bWVycyA9IFwia2luZXNpczpMaXN0U3RyZWFtQ29uc3VtZXJzXCI7XG5cdC8qKiBbTGlzdF0ga2luZXNpczpMaXN0U3RyZWFtcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN0cmVhbXMgPSBcImtpbmVzaXM6TGlzdFN0cmVhbXNcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImtpbmVzaXM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6TGlzdFRhZ3NGb3JTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yU3RyZWFtID0gXCJraW5lc2lzOkxpc3RUYWdzRm9yU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6TWVyZ2VTaGFyZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE1lcmdlU2hhcmRzID0gXCJraW5lc2lzOk1lcmdlU2hhcmRzXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6UHV0UmVjb3JkICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZWNvcmQgPSBcImtpbmVzaXM6UHV0UmVjb3JkXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6UHV0UmVjb3JkcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3JkcyA9IFwia2luZXNpczpQdXRSZWNvcmRzXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6UHV0UmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFJlc291cmNlUG9saWN5ID0gXCJraW5lc2lzOlB1dFJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6UmVnaXN0ZXJTdHJlYW1Db25zdW1lciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJTdHJlYW1Db25zdW1lciA9IFwia2luZXNpczpSZWdpc3RlclN0cmVhbUNvbnN1bWVyXCI7XG5cdC8qKiBbVGFnZ2luZ10ga2luZXNpczpSZW1vdmVUYWdzRnJvbVN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVtb3ZlVGFnc0Zyb21TdHJlYW0gPSBcImtpbmVzaXM6UmVtb3ZlVGFnc0Zyb21TdHJlYW1cIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpTcGxpdFNoYXJkICovXG5cdHN0YXRpYyByZWFkb25seSBTcGxpdFNoYXJkID0gXCJraW5lc2lzOlNwbGl0U2hhcmRcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpTdGFydFN0cmVhbUVuY3J5cHRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U3RyZWFtRW5jcnlwdGlvbiA9IFwia2luZXNpczpTdGFydFN0cmVhbUVuY3J5cHRpb25cIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpTdG9wU3RyZWFtRW5jcnlwdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFN0cmVhbUVuY3J5cHRpb24gPSBcImtpbmVzaXM6U3RvcFN0cmVhbUVuY3J5cHRpb25cIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOlN1YnNjcmliZVRvU2hhcmQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1YnNjcmliZVRvU2hhcmQgPSBcImtpbmVzaXM6U3Vic2NyaWJlVG9TaGFyZFwiO1xuXHQvKiogW1RhZ2dpbmddIGtpbmVzaXM6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJraW5lc2lzOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10ga2luZXNpczpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJraW5lc2lzOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpVcGRhdGVBY2NvdW50U2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFjY291bnRTZXR0aW5ncyA9IFwia2luZXNpczpVcGRhdGVBY2NvdW50U2V0dGluZ3NcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpVcGRhdGVNYXhSZWNvcmRTaXplICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNYXhSZWNvcmRTaXplID0gXCJraW5lc2lzOlVwZGF0ZU1heFJlY29yZFNpemVcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpVcGRhdGVTaGFyZENvdW50ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTaGFyZENvdW50ID0gXCJraW5lc2lzOlVwZGF0ZVNoYXJkQ291bnRcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpVcGRhdGVTdHJlYW1Nb2RlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTdHJlYW1Nb2RlID0gXCJraW5lc2lzOlVwZGF0ZVN0cmVhbU1vZGVcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpVcGRhdGVTdHJlYW1XYXJtVGhyb3VnaHB1dCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXQgPVxuXHRcdFwia2luZXNpczpVcGRhdGVTdHJlYW1XYXJtVGhyb3VnaHB1dFwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEtpbmVzaXNBY3Rpb25zLkRlc2NyaWJlQWNjb3VudFNldHRpbmdzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlc2NyaWJlTGltaXRzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlc2NyaWJlU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlc2NyaWJlU3RyZWFtQ29uc3VtZXIsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVTdHJlYW1TdW1tYXJ5LFxuXHRcdEtpbmVzaXNBY3Rpb25zLmFjdGlvbkdldFJlY29yZHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuYWN0aW9uR2V0UmVzb3VyY2VQb2xpY3ksXG5cdFx0S2luZXNpc0FjdGlvbnMuYWN0aW9uR2V0U2hhcmRJdGVyYXRvcixcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RUYWdzRm9yU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlN1YnNjcmliZVRvU2hhcmQsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0S2luZXNpc0FjdGlvbnMuQ3JlYXRlU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlbGV0ZVJlc291cmNlUG9saWN5LFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlbGV0ZVN0cmVhbSxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyxcblx0XHRLaW5lc2lzQWN0aW9ucy5FbmFibGVFbmhhbmNlZE1vbml0b3JpbmcsXG5cdFx0S2luZXNpc0FjdGlvbnMuSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QsXG5cdFx0S2luZXNpc0FjdGlvbnMuSW5qZWN0QXBpRXJyb3IsXG5cdFx0S2luZXNpc0FjdGlvbnMuTWVyZ2VTaGFyZHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuUHV0UmVjb3JkLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlB1dFJlY29yZHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuUHV0UmVzb3VyY2VQb2xpY3ksXG5cdFx0S2luZXNpc0FjdGlvbnMuUmVnaXN0ZXJTdHJlYW1Db25zdW1lcixcblx0XHRLaW5lc2lzQWN0aW9ucy5TcGxpdFNoYXJkLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlN0YXJ0U3RyZWFtRW5jcnlwdGlvbixcblx0XHRLaW5lc2lzQWN0aW9ucy5TdG9wU3RyZWFtRW5jcnlwdGlvbixcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVBY2NvdW50U2V0dGluZ3MsXG5cdFx0S2luZXNpc0FjdGlvbnMuVXBkYXRlTWF4UmVjb3JkU2l6ZSxcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVTaGFyZENvdW50LFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZVN0cmVhbU1vZGUsXG5cdFx0S2luZXNpc0FjdGlvbnMuVXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXQsXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RTaGFyZHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuTGlzdFN0cmVhbUNvbnN1bWVycyxcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0U3RyZWFtcyxcblx0XTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0S2luZXNpc0FjdGlvbnMuQWRkVGFnc1RvU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlJlbW92ZVRhZ3NGcm9tU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb25zdW1lciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc0NvbnN1bWVyQXJuUHJvcHMge1xuXHQvKiogVGhlIFN0cmVhbVR5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHN0cmVhbVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBTdHJlYW1OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzdHJlYW1OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uc3VtZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25zdW1lck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb25zdW1lckNyZWF0aW9uVGltcHN0YW1wIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25zdW1lckNyZWF0aW9uVGltcHN0YW1wOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29uc3VtZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNDb25zdW1lckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtVHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBTdHJlYW1OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbnN1bWVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyQ3JlYXRpb25UaW1wc3RhbXAgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25zdW1lckNyZWF0aW9uVGltcHN0YW1wOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBrbXNLZXkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNLTVNLZXlBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgS2V5SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEga21zS2V5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzS01TS2V5QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBLZXlJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBzdHJlYW0gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNTdHJlYW1Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHN0cmVhbSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1N0cmVhbUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbU5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgQ29uc3VtZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2luZXNpczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOig/PHN0cmVhbVR5cGU+W146Lz9dKylcXC8oPzxzdHJlYW1OYW1lPlteOi8/XSspXFwvY29uc3VtZXJcXC8oPzxjb25zdW1lck5hbWU+W146Lz9dKyk6KD88Y29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcD5bXjovP10rKSQvO1xuY29uc3QgS01TS2V5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmttczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmtleVxcLyg/PGtleUlkPlteOi8/XSspJC87XG5jb25zdCBTdHJlYW1Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2luZXNpczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnN0cmVhbVxcLyg/PHN0cmVhbU5hbWU+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBraW5lc2lzIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbnN1bWVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbnN1bWVyKHByb3BzOiBLaW5lc2lzQ29uc3VtZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2luZXNpczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifToke3Byb3BzLnN0cmVhbVR5cGV9LyR7cHJvcHMuc3RyZWFtTmFtZX0vY29uc3VtZXIvJHtwcm9wcy5jb25zdW1lck5hbWV9OiR7cHJvcHMuY29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29uc3VtZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbnN1bWVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbnN1bWVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbnN1bWVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbnN1bWVyQXJuKGFybjogc3RyaW5nKTogS2luZXNpc0NvbnN1bWVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25zdW1lckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25zdW1lciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdHJlYW1UeXBlOiBtYXRjaC5ncm91cHMhLnN0cmVhbVR5cGUsXG5cdFx0XHRzdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLnN0cmVhbU5hbWUsXG5cdFx0XHRjb25zdW1lck5hbWU6IG1hdGNoLmdyb3VwcyEuY29uc3VtZXJOYW1lLFxuXHRcdFx0Y29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcDogbWF0Y2guZ3JvdXBzIS5jb25zdW1lckNyZWF0aW9uVGltcHN0YW1wLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGttc0tleSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBrbXNLZXkocHJvcHM6IEtpbmVzaXNLTVNLZXlBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a21zOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmtleS8ke3Byb3BzLmtleUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBrbXNLZXkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEtNU0tleUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBLTVNLZXlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEga21zS2V5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUtNU0tleUFybihhcm46IHN0cmluZyk6IEtpbmVzaXNLTVNLZXlBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEtNU0tleUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBrbXNLZXkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0a2V5SWQ6IG1hdGNoLmdyb3VwcyEua2V5SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc3RyZWFtIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHN0cmVhbShwcm9wczogS2luZXNpc1N0cmVhbUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpraW5lc2lzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnN0cmVhbS8ke3Byb3BzLnN0cmVhbU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHN0cmVhbSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU3RyZWFtQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFN0cmVhbUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzdHJlYW0gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU3RyZWFtQXJuKGFybjogc3RyaW5nKTogS2luZXNpc1N0cmVhbUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU3RyZWFtQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN0cmVhbSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLnN0cmVhbU5hbWUsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Iga2luZXNpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWRkVGFnc1RvU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkVGFnc1RvU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTdHJlYW0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTdHJlYW06IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpBZGRUYWdzVG9TdHJlYW1cIixcblx0XHRcImtpbmVzaXM6Q3JlYXRlU3RyZWFtXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2Q6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXNvdXJjZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVsZXRlUmVzb3VyY2VQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6RGVsZXRlU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFjY291bnRTZXR0aW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkRlc2NyaWJlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTGltaXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVMaW1pdHM6IHN0cmluZ1tdID0gW1wia2luZXNpczpEZXNjcmliZUxpbWl0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTdHJlYW0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbTogc3RyaW5nW10gPSBbXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTdHJlYW1Db25zdW1lcjogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtQ29uc3VtZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1TdW1tYXJ5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBFbmFibGVFbmhhbmNlZE1vbml0b3Jpbmc6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb3JkcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb3Jkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOkdldFJlY29yZHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlc291cmNlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXNvdXJjZVBvbGljeTogc3RyaW5nW10gPSBbXCJraW5lc2lzOkdldFJlc291cmNlUG9saWN5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRTaGFyZEl0ZXJhdG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTaGFyZEl0ZXJhdG9yOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6R2V0U2hhcmRJdGVyYXRvclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZDogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTaGFyZHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U2hhcmRzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdFNoYXJkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFN0cmVhbUNvbnN1bWVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1Db25zdW1lcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpMaXN0U3RyZWFtQ29uc3VtZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTdHJlYW1zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN0cmVhbXM6IHN0cmluZ1tdID0gW1wia2luZXNpczpMaXN0U3RyZWFtc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpMaXN0VGFnc0ZvclJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JTdHJlYW06IHN0cmluZ1tdID0gW1wia2luZXNpczpMaXN0VGFnc0ZvclN0cmVhbVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTWVyZ2VTaGFyZHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBNZXJnZVNoYXJkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOk1lcmdlU2hhcmRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRSZWNvcmQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZWNvcmQ6IHN0cmluZ1tdID0gW1wia2luZXNpczpQdXRSZWNvcmRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFJlY29yZHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZWNvcmRzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6UHV0UmVjb3Jkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0UmVzb3VyY2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZXNvdXJjZVBvbGljeTogc3RyaW5nW10gPSBbXCJraW5lc2lzOlB1dFJlc291cmNlUG9saWN5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZWdpc3RlclN0cmVhbUNvbnN1bWVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJTdHJlYW1Db25zdW1lcjogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOlJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJcIixcblx0XHRcImtpbmVzaXM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVtb3ZlVGFnc0Zyb21TdHJlYW0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZW1vdmVUYWdzRnJvbVN0cmVhbTogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOlJlbW92ZVRhZ3NGcm9tU3RyZWFtXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNwbGl0U2hhcmQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTcGxpdFNoYXJkOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6U3BsaXRTaGFyZFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRTdHJlYW1FbmNyeXB0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTdHJlYW1FbmNyeXB0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6U3RhcnRTdHJlYW1FbmNyeXB0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BTdHJlYW1FbmNyeXB0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFN0cmVhbUVuY3J5cHRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpTdG9wU3RyZWFtRW5jcnlwdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdWJzY3JpYmVUb1NoYXJkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3Vic2NyaWJlVG9TaGFyZDogc3RyaW5nW10gPSBbXCJraW5lc2lzOlN1YnNjcmliZVRvU2hhcmRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wia2luZXNpczpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wia2luZXNpczpVbnRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVBY2NvdW50U2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBY2NvdW50U2V0dGluZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpVcGRhdGVBY2NvdW50U2V0dGluZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTWF4UmVjb3JkU2l6ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1heFJlY29yZFNpemU6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpVcGRhdGVNYXhSZWNvcmRTaXplXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVNoYXJkQ291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTaGFyZENvdW50OiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VXBkYXRlU2hhcmRDb3VudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU3RyZWFtTW9kZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbU1vZGU6IHN0cmluZ1tdID0gW1wia2luZXNpczpVcGRhdGVTdHJlYW1Nb2RlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTdHJlYW1XYXJtVGhyb3VnaHB1dCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXRcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGtpbmVzaXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaW5lc2lzQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBJbmplY3RBcGlFcnJvciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBJbmplY3RBcGlFcnJvckNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpGaXNBY3Rpb25JZFwiLFxuXHRcdFwia2luZXNpczpGaXNJbmplY3RQZXJjZW50YWdlXCIsXG5cdFx0XCJraW5lc2lzOkZpc1RhcmdldEFybnNcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBraW5lc2lzOkZpc0FjdGlvbklkIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBGSVNfQUNUSU9OX0lEID0gXCJraW5lc2lzOkZpc0FjdGlvbklkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2UgKE51bWVyaWMpICovXG5cdHN0YXRpYyByZWFkb25seSBGSVNfSU5KRUNUX1BFUkNFTlRBR0UgPSBcImtpbmVzaXM6RmlzSW5qZWN0UGVyY2VudGFnZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleToga2luZXNpczpGaXNUYXJnZXRBcm5zIChBcnJheU9mQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRklTX1RBUkdFVF9BUk5TID0gXCJraW5lc2lzOkZpc1RhcmdldEFybnNcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBga2luZXNpczpGaXNBY3Rpb25JZGAuXG5cdCAqL1xuXHRzdGF0aWMgZmlzQWN0aW9uSWQodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJraW5lc2lzOkZpc0FjdGlvbklkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2VgLlxuXHQgKi9cblx0c3RhdGljIGZpc0luamVjdFBlcmNlbnRhZ2UoXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuXHRcdHJldHVybiB7IE51bWVyaWNFcXVhbHM6IHsgXCJraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2VcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGtpbmVzaXM6RmlzVGFyZ2V0QXJuc2AuXG5cdCAqL1xuXHRzdGF0aWMgZmlzVGFyZ2V0QXJucyhcblx0XHR2YWx1ZXM6IHN0cmluZ1tdLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpBcm5FcXVhbHNcIjogeyBcImtpbmVzaXM6RmlzVGFyZ2V0QXJuc1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=
455
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMva2luZXNpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELDhDQUE4QztBQUM5QyxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxjQUFjOztBQUEzQix3Q0ErSUM7OztBQTlJQSw4QkFBOEI7QUFDZCw2QkFBYyxHQUFHLFNBQVMsQ0FBQztBQUUzQyx3Q0FBd0M7QUFDeEIsOEJBQWUsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxtQ0FBbUM7QUFDbkIsMkJBQVksR0FBRyxzQkFBc0IsQ0FBQztBQUN0RCxvREFBb0Q7QUFDcEMsNENBQTZCLEdBQzVDLHVDQUF1QyxDQUFDO0FBQ3pDLDJDQUEyQztBQUMzQixtQ0FBb0IsR0FBRyw4QkFBOEIsQ0FBQztBQUN0RSxtQ0FBbUM7QUFDbkIsMkJBQVksR0FBRyxzQkFBc0IsQ0FBQztBQUN0RCwrQ0FBK0M7QUFDL0IsdUNBQXdCLEdBQUcsa0NBQWtDLENBQUM7QUFDOUUsNkNBQTZDO0FBQzdCLHNDQUF1QixHQUFHLGlDQUFpQyxDQUFDO0FBQzVFLG9DQUFvQztBQUNwQiw2QkFBYyxHQUFHLHdCQUF3QixDQUFDO0FBQzFELG9DQUFvQztBQUNwQiw2QkFBYyxHQUFHLHdCQUF3QixDQUFDO0FBQzFELDRDQUE0QztBQUM1QixxQ0FBc0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUMxRSwyQ0FBMkM7QUFDM0Isb0NBQXFCLEdBQUcsK0JBQStCLENBQUM7QUFDeEUsZ0RBQWdEO0FBQ2hDLHdDQUF5QixHQUN4QyxtQ0FBbUMsQ0FBQztBQUNyQywrQ0FBK0M7QUFDL0IsdUNBQXdCLEdBQUcsa0NBQWtDLENBQUM7QUFDOUUsZ0NBQWdDO0FBQ2hCLCtCQUFnQixHQUFHLG9CQUFvQixDQUFDO0FBQ3hELHVD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Q2pFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBZ0I7UUFDOUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFhO1FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQzNELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FDekIsS0FBYTtRQUViLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSw2QkFBNkIsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQ25CLE1BQWdCO1FBRWhCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFDMUUsQ0FBQzs7QUFqRUYsOENBa0VDOzs7QUFqRUEsOERBQThEO0FBQzlDLDZDQUEyQixHQUFhO0lBQ3ZELHFCQUFxQjtJQUNyQiw2QkFBNkI7SUFDN0IsdUJBQXVCO0NBQ3ZCLENBQUM7QUFFRix1REFBdUQ7QUFDdkMsaUNBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMsa0NBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLDhCQUFZLEdBQUcsYUFBYSxDQUFDO0FBQzdDLGtEQUFrRDtBQUNsQywrQkFBYSxHQUFHLHFCQUFxQixDQUFDO0FBQ3RELDJEQUEyRDtBQUMzQyx1Q0FBcUIsR0FBRyw2QkFBNkIsQ0FBQztBQUN0RSx3REFBd0Q7QUFDeEMsaUNBQWUsR0FBRyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2tpbmVzaXMuanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGtpbmVzaXMgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwia2luZXNpc1wiO1xuXG5cdC8qKiBbVGFnZ2luZ10ga2luZXNpczpBZGRUYWdzVG9TdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZFRhZ3NUb1N0cmVhbSA9IFwia2luZXNpczpBZGRUYWdzVG9TdHJlYW1cIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpDcmVhdGVTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN0cmVhbSA9IFwia2luZXNpczpDcmVhdGVTdHJlYW1cIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QgPVxuXHRcdFwia2luZXNpczpEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlbGV0ZVJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXNvdXJjZVBvbGljeSA9IFwia2luZXNpczpEZWxldGVSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlbGV0ZVN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU3RyZWFtID0gXCJraW5lc2lzOkRlbGV0ZVN0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlcmVnaXN0ZXJTdHJlYW1Db25zdW1lciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyID0gXCJraW5lc2lzOkRlcmVnaXN0ZXJTdHJlYW1Db25zdW1lclwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6RGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWNjb3VudFNldHRpbmdzID0gXCJraW5lc2lzOkRlc2NyaWJlQWNjb3VudFNldHRpbmdzXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZUxpbWl0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVMaW1pdHMgPSBcImtpbmVzaXM6RGVzY3JpYmVMaW1pdHNcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbSA9IFwia2luZXNpczpEZXNjcmliZVN0cmVhbVwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6RGVzY3JpYmVTdHJlYW1Db25zdW1lciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTdHJlYW1Db25zdW1lciA9IFwia2luZXNpczpEZXNjcmliZVN0cmVhbUNvbnN1bWVyXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZVN0cmVhbVN1bW1hcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU3RyZWFtU3VtbWFyeSA9IFwia2luZXNpczpEZXNjcmliZVN0cmVhbVN1bW1hcnlcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nID1cblx0XHRcImtpbmVzaXM6RGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ1wiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nID0gXCJraW5lc2lzOkVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ1wiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6R2V0UmVjb3JkcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVjb3JkcyA9IFwia2luZXNpczpHZXRSZWNvcmRzXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpHZXRSZXNvdXJjZVBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVzb3VyY2VQb2xpY3kgPSBcImtpbmVzaXM6R2V0UmVzb3VyY2VQb2xpY3lcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkdldFNoYXJkSXRlcmF0b3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFNoYXJkSXRlcmF0b3IgPSBcImtpbmVzaXM6R2V0U2hhcmRJdGVyYXRvclwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kICovXG5cdHN0YXRpYyByZWFkb25seSBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCA9XG5cdFx0XCJraW5lc2lzOkluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6SW5qZWN0QXBpRXJyb3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IEluamVjdEFwaUVycm9yID0gXCJraW5lc2lzOkluamVjdEFwaUVycm9yXCI7XG5cdC8qKiBbTGlzdF0ga2luZXNpczpMaXN0U2hhcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U2hhcmRzID0gXCJraW5lc2lzOkxpc3RTaGFyZHNcIjtcblx0LyoqIFtMaXN0XSBraW5lc2lzOkxpc3RTdHJlYW1Db25zdW1lcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1Db25zdW1lcnMgPSBcImtpbmVzaXM6TGlzdFN0cmVhbUNvbnN1bWVyc1wiO1xuXHQvKiogW0xpc3RdIGtpbmVzaXM6TGlzdFN0cmVhbXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1zID0gXCJraW5lc2lzOkxpc3RTdHJlYW1zXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJraW5lc2lzOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkxpc3RUYWdzRm9yU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclN0cmVhbSA9IFwia2luZXNpczpMaXN0VGFnc0ZvclN0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOk1lcmdlU2hhcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBNZXJnZVNoYXJkcyA9IFwia2luZXNpczpNZXJnZVNoYXJkc1wiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlB1dFJlY29yZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3JkID0gXCJraW5lc2lzOlB1dFJlY29yZFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlB1dFJlY29yZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFJlY29yZHMgPSBcImtpbmVzaXM6UHV0UmVjb3Jkc1wiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlB1dFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZXNvdXJjZVBvbGljeSA9IFwia2luZXNpczpQdXRSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgPSBcImtpbmVzaXM6UmVnaXN0ZXJTdHJlYW1Db25zdW1lclwiO1xuXHQvKiogW1RhZ2dpbmddIGtpbmVzaXM6UmVtb3ZlVGFnc0Zyb21TdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlbW92ZVRhZ3NGcm9tU3RyZWFtID0gXCJraW5lc2lzOlJlbW92ZVRhZ3NGcm9tU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6U3BsaXRTaGFyZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3BsaXRTaGFyZCA9IFwia2luZXNpczpTcGxpdFNoYXJkXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6U3RhcnRTdHJlYW1FbmNyeXB0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFN0cmVhbUVuY3J5cHRpb24gPSBcImtpbmVzaXM6U3RhcnRTdHJlYW1FbmNyeXB0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6U3RvcFN0cmVhbUVuY3J5cHRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BTdHJlYW1FbmNyeXB0aW9uID0gXCJraW5lc2lzOlN0b3BTdHJlYW1FbmNyeXB0aW9uXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpTdWJzY3JpYmVUb1NoYXJkICovXG5cdHN0YXRpYyByZWFkb25seSBTdWJzY3JpYmVUb1NoYXJkID0gXCJraW5lc2lzOlN1YnNjcmliZVRvU2hhcmRcIjtcblx0LyoqIFtUYWdnaW5nXSBraW5lc2lzOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwia2luZXNpczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGtpbmVzaXM6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwia2luZXNpczpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlQWNjb3VudFNldHRpbmdzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBY2NvdW50U2V0dGluZ3MgPSBcImtpbmVzaXM6VXBkYXRlQWNjb3VudFNldHRpbmdzXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlTWF4UmVjb3JkU2l6ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWF4UmVjb3JkU2l6ZSA9IFwia2luZXNpczpVcGRhdGVNYXhSZWNvcmRTaXplXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlU2hhcmRDb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU2hhcmRDb3VudCA9IFwia2luZXNpczpVcGRhdGVTaGFyZENvdW50XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlU3RyZWFtTW9kZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3RyZWFtTW9kZSA9IFwia2luZXNpczpVcGRhdGVTdHJlYW1Nb2RlXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0ID1cblx0XHRcImtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXRcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZUFjY291bnRTZXR0aW5ncyxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZUxpbWl0cyxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZVN0cmVhbSxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZVN0cmVhbUNvbnN1bWVyLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlc2NyaWJlU3RyZWFtU3VtbWFyeSxcblx0XHRLaW5lc2lzQWN0aW9ucy5hY3Rpb25HZXRSZWNvcmRzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLmFjdGlvbkdldFJlc291cmNlUG9saWN5LFxuXHRcdEtpbmVzaXNBY3Rpb25zLmFjdGlvbkdldFNoYXJkSXRlcmF0b3IsXG5cdFx0S2luZXNpc0FjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0VGFnc0ZvclN0cmVhbSxcblx0XHRLaW5lc2lzQWN0aW9ucy5TdWJzY3JpYmVUb1NoYXJkLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEtpbmVzaXNBY3Rpb25zLkNyZWF0ZVN0cmVhbSxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZWxldGVSZXNvdXJjZVBvbGljeSxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZWxldGVTdHJlYW0sXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcsXG5cdFx0S2luZXNpc0FjdGlvbnMuRW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkluamVjdEFwaUVycm9yLFxuXHRcdEtpbmVzaXNBY3Rpb25zLk1lcmdlU2hhcmRzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlB1dFJlY29yZCxcblx0XHRLaW5lc2lzQWN0aW9ucy5QdXRSZWNvcmRzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlB1dFJlc291cmNlUG9saWN5LFxuXHRcdEtpbmVzaXNBY3Rpb25zLlJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIsXG5cdFx0S2luZXNpc0FjdGlvbnMuU3BsaXRTaGFyZCxcblx0XHRLaW5lc2lzQWN0aW9ucy5TdGFydFN0cmVhbUVuY3J5cHRpb24sXG5cdFx0S2luZXNpc0FjdGlvbnMuU3RvcFN0cmVhbUVuY3J5cHRpb24sXG5cdFx0S2luZXNpc0FjdGlvbnMuVXBkYXRlQWNjb3VudFNldHRpbmdzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZU1heFJlY29yZFNpemUsXG5cdFx0S2luZXNpc0FjdGlvbnMuVXBkYXRlU2hhcmRDb3VudCxcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVTdHJlYW1Nb2RlLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0LFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0U2hhcmRzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RTdHJlYW1Db25zdW1lcnMsXG5cdFx0S2luZXNpc0FjdGlvbnMuTGlzdFN0cmVhbXMsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEtpbmVzaXNBY3Rpb25zLkFkZFRhZ3NUb1N0cmVhbSxcblx0XHRLaW5lc2lzQWN0aW9ucy5SZW1vdmVUYWdzRnJvbVN0cmVhbSxcblx0XHRLaW5lc2lzQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRLaW5lc2lzQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29uc3VtZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNDb25zdW1lckFyblByb3BzIHtcblx0LyoqIFRoZSBTdHJlYW1UeXBlIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzdHJlYW1UeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29uc3VtZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbnN1bWVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzQ29uc3VtZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFN0cmVhbVR5cGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzdHJlYW1UeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb25zdW1lck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25zdW1lck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb25zdW1lckNyZWF0aW9uVGltcHN0YW1wIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEga21zS2V5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzS01TS2V5QXJuUHJvcHMge1xuXHQvKiogVGhlIEtleUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBrZXlJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGttc0tleSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc0tNU0tleUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgS2V5SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBrZXlJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgc3RyZWFtIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzU3RyZWFtQXJuUHJvcHMge1xuXHQvKiogVGhlIFN0cmVhbU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHN0cmVhbU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBzdHJlYW0gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNTdHJlYW1Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFN0cmVhbU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzdHJlYW1OYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IENvbnN1bWVyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmtpbmVzaXM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTooPzxzdHJlYW1UeXBlPlteOi8/XSspXFwvKD88c3RyZWFtTmFtZT5bXjovP10rKVxcL2NvbnN1bWVyXFwvKD88Y29uc3VtZXJOYW1lPlteOi8/XSspOig/PGNvbnN1bWVyQ3JlYXRpb25UaW1wc3RhbXA+W146Lz9dKykkLztcbmNvbnN0IEtNU0tleUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTprbXM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTprZXlcXC8oPzxrZXlJZD5bXjovP10rKSQvO1xuY29uc3QgU3RyZWFtQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmtpbmVzaXM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzdHJlYW1cXC8oPzxzdHJlYW1OYW1lPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3Iga2luZXNpcyByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaW5lc2lzUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjb25zdW1lciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb25zdW1lcihwcm9wczogS2luZXNpc0NvbnN1bWVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmtpbmVzaXM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06JHtwcm9wcy5zdHJlYW1UeXBlfS8ke3Byb3BzLnN0cmVhbU5hbWV9L2NvbnN1bWVyLyR7cHJvcHMuY29uc3VtZXJOYW1lfToke3Byb3BzLmNvbnN1bWVyQ3JlYXRpb25UaW1wc3RhbXB9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNvbnN1bWVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb25zdW1lckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb25zdW1lckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjb25zdW1lciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb25zdW1lckFybihhcm46IHN0cmluZyk6IEtpbmVzaXNDb25zdW1lckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29uc3VtZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29uc3VtZXIgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0c3RyZWFtVHlwZTogbWF0Y2guZ3JvdXBzIS5zdHJlYW1UeXBlLFxuXHRcdFx0c3RyZWFtTmFtZTogbWF0Y2guZ3JvdXBzIS5zdHJlYW1OYW1lLFxuXHRcdFx0Y29uc3VtZXJOYW1lOiBtYXRjaC5ncm91cHMhLmNvbnN1bWVyTmFtZSxcblx0XHRcdGNvbnN1bWVyQ3JlYXRpb25UaW1wc3RhbXA6IG1hdGNoLmdyb3VwcyEuY29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBrbXNLZXkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMga21zS2V5KHByb3BzOiBLaW5lc2lzS01TS2V5QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omttczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTprZXkvJHtwcm9wcy5rZXlJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUga21zS2V5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRLTVNLZXlBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gS01TS2V5QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGttc0tleSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VLTVNLZXlBcm4oYXJuOiBzdHJpbmcpOiBLaW5lc2lzS01TS2V5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBLTVNLZXlBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga21zS2V5IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGtleUlkOiBtYXRjaC5ncm91cHMhLmtleUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHN0cmVhbSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzdHJlYW0ocHJvcHM6IEtpbmVzaXNTdHJlYW1Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2luZXNpczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzdHJlYW0vJHtwcm9wcy5zdHJlYW1OYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBzdHJlYW0gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFN0cmVhbUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTdHJlYW1Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgc3RyZWFtIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVN0cmVhbUFybihhcm46IHN0cmluZyk6IEtpbmVzaXNTdHJlYW1Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFN0cmVhbUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdHJlYW0gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0c3RyZWFtTmFtZTogbWF0Y2guZ3JvdXBzIS5zdHJlYW1OYW1lLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGtpbmVzaXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaW5lc2lzT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFkZFRhZ3NUb1N0cmVhbSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZFRhZ3NUb1N0cmVhbTogc3RyaW5nW10gPSBbXCJraW5lc2lzOkFkZFRhZ3NUb1N0cmVhbVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ2hhbm5lbCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNoYW5uZWw6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJraW5lc2lzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVN0cmVhbSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN0cmVhbTogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkFkZFRhZ3NUb1N0cmVhbVwiLFxuXHRcdFwia2luZXNpczpDcmVhdGVTdHJlYW1cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZDogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNoYW5uZWwgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDaGFubmVsOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXNvdXJjZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVsZXRlUmVzb3VyY2VQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6RGVsZXRlU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFjY291bnRTZXR0aW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkRlc2NyaWJlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ2hhbm5lbCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2hhbm5lbDogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVMaW1pdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUxpbWl0czogc3RyaW5nW10gPSBbXCJraW5lc2lzOkRlc2NyaWJlTGltaXRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVN0cmVhbSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU3RyZWFtQ29uc3VtZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1Db25zdW1lclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVN0cmVhbVN1bW1hcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbVN1bW1hcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZXNjcmliZVN0cmVhbVN1bW1hcnlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2FibGVFbmhhbmNlZE1vbml0b3Jpbmc6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZzogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZWNvcmRzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6R2V0UmVjb3Jkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVzb3VyY2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6R2V0UmVzb3VyY2VQb2xpY3lcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFNoYXJkSXRlcmF0b3IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNoYXJkSXRlcmF0b3I6IHN0cmluZ1tdID0gW1wia2luZXNpczpHZXRTaGFyZEl0ZXJhdG9yXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6SW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENoYW5uZWxzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENoYW5uZWxzOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U2hhcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNoYXJkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOkxpc3RTaGFyZHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTdHJlYW1Db25zdW1lcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RyZWFtQ29uc3VtZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6TGlzdFN0cmVhbUNvbnN1bWVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U3RyZWFtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1zOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdFN0cmVhbXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclN0cmVhbSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdFRhZ3NGb3JTdHJlYW1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIE1lcmdlU2hhcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTWVyZ2VTaGFyZHM6IHN0cmluZ1tdID0gW1wia2luZXNpczpNZXJnZVNoYXJkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0UmVjb3JkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3JkOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6UHV0UmVjb3JkXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRSZWNvcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3Jkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOlB1dFJlY29yZHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFJlc291cmNlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVzb3VyY2VQb2xpY3k6IHN0cmluZ1tdID0gW1wia2luZXNpczpQdXRSZXNvdXJjZVBvbGljeVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVnaXN0ZXJTdHJlYW1Db25zdW1lciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpSZWdpc3RlclN0cmVhbUNvbnN1bWVyXCIsXG5cdFx0XCJraW5lc2lzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlbW92ZVRhZ3NGcm9tU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVtb3ZlVGFnc0Zyb21TdHJlYW06IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpSZW1vdmVUYWdzRnJvbVN0cmVhbVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTcGxpdFNoYXJkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3BsaXRTaGFyZDogc3RyaW5nW10gPSBbXCJraW5lc2lzOlNwbGl0U2hhcmRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U3RyZWFtRW5jcnlwdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOlN0YXJ0U3RyZWFtRW5jcnlwdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wU3RyZWFtRW5jcnlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BTdHJlYW1FbmNyeXB0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6U3RvcFN0cmVhbUVuY3J5cHRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3Vic2NyaWJlVG9TaGFyZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1YnNjcmliZVRvU2hhcmQ6IHN0cmluZ1tdID0gW1wia2luZXNpczpTdWJzY3JpYmVUb1NoYXJkXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQWNjb3VudFNldHRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWNjb3VudFNldHRpbmdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6VXBkYXRlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNoYW5uZWwgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDaGFubmVsOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVNYXhSZWNvcmRTaXplIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWF4UmVjb3JkU2l6ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOlVwZGF0ZU1heFJlY29yZFNpemVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU2hhcmRDb3VudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVNoYXJkQ291bnQ6IHN0cmluZ1tdID0gW1wia2luZXNpczpVcGRhdGVTaGFyZENvdW50XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTdHJlYW1Nb2RlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3RyZWFtTW9kZTogc3RyaW5nW10gPSBbXCJraW5lc2lzOlVwZGF0ZVN0cmVhbU1vZGVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpVcGRhdGVTdHJlYW1XYXJtVGhyb3VnaHB1dFwiLFxuXHRdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3Iga2luZXNpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNDb25kaXRpb25zIHtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEluamVjdEFwaUVycm9yIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEluamVjdEFwaUVycm9yQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkZpc0FjdGlvbklkXCIsXG5cdFx0XCJraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2VcIixcblx0XHRcImtpbmVzaXM6RmlzVGFyZ2V0QXJuc1wiLFxuXHRdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGtpbmVzaXM6RmlzQWN0aW9uSWQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEZJU19BQ1RJT05fSUQgPSBcImtpbmVzaXM6RmlzQWN0aW9uSWRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGtpbmVzaXM6RmlzSW5qZWN0UGVyY2VudGFnZSAoTnVtZXJpYykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEZJU19JTkpFQ1RfUEVSQ0VOVEFHRSA9IFwia2luZXNpczpGaXNJbmplY3RQZXJjZW50YWdlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBraW5lc2lzOkZpc1RhcmdldEFybnMgKEFycmF5T2ZBUk4pICovXG5cdHN0YXRpYyByZWFkb25seSBGSVNfVEFSR0VUX0FSTlMgPSBcImtpbmVzaXM6RmlzVGFyZ2V0QXJuc1wiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBraW5lc2lzOkZpc0FjdGlvbklkYC5cblx0ICovXG5cdHN0YXRpYyBmaXNBY3Rpb25JZCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImtpbmVzaXM6RmlzQWN0aW9uSWRcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGtpbmVzaXM6RmlzSW5qZWN0UGVyY2VudGFnZWAuXG5cdCAqL1xuXHRzdGF0aWMgZmlzSW5qZWN0UGVyY2VudGFnZShcblx0XHR2YWx1ZTogbnVtYmVyLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PiB7XG5cdFx0cmV0dXJuIHsgTnVtZXJpY0VxdWFsczogeyBcImtpbmVzaXM6RmlzSW5qZWN0UGVyY2VudGFnZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBga2luZXNpczpGaXNUYXJnZXRBcm5zYC5cblx0ICovXG5cdHN0YXRpYyBmaXNUYXJnZXRBcm5zKFxuXHRcdHZhbHVlczogc3RyaW5nW10sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOkFybkVxdWFsc1wiOiB7IFwia2luZXNpczpGaXNUYXJnZXRBcm5zXCI6IHZhbHVlcyB9IH07XG5cdH1cbn1cbiJdfQ==