@cdk_utils/iam 1.29.0 → 1.31.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 (471) hide show
  1. package/.jsii +2 -2
  2. package/lib/generated/index.d.ts +1 -0
  3. package/lib/generated/index.js +7 -6
  4. package/lib/generated/services/a2c.js +1 -1
  5. package/lib/generated/services/a4b.js +3 -3
  6. package/lib/generated/services/access-analyzer.js +4 -4
  7. package/lib/generated/services/account-access.js +4 -4
  8. package/lib/generated/services/account.js +4 -4
  9. package/lib/generated/services/acm-pca.js +4 -4
  10. package/lib/generated/services/acm.js +4 -4
  11. package/lib/generated/services/aco-automation.js +4 -4
  12. package/lib/generated/services/action-recommendations.js +1 -1
  13. package/lib/generated/services/activate.js +1 -1
  14. package/lib/generated/services/agent-registry.js +4 -4
  15. package/lib/generated/services/agentaccess-mcp.js +2 -2
  16. package/lib/generated/services/aidevops.js +4 -4
  17. package/lib/generated/services/aiops.js +4 -4
  18. package/lib/generated/services/airflow-serverless.js +4 -4
  19. package/lib/generated/services/airflow.js +4 -4
  20. package/lib/generated/services/amplify.js +4 -4
  21. package/lib/generated/services/amplifybackend.js +3 -3
  22. package/lib/generated/services/amplifyuibuilder.js +4 -4
  23. package/lib/generated/services/aoss.js +4 -4
  24. package/lib/generated/services/apigateway.js +4 -4
  25. package/lib/generated/services/app-integrations.js +4 -4
  26. package/lib/generated/services/appconfig.js +4 -4
  27. package/lib/generated/services/appfabric.js +4 -4
  28. package/lib/generated/services/appflow.js +4 -4
  29. package/lib/generated/services/application-autoscaling.js +4 -4
  30. package/lib/generated/services/application-signals-mcp.js +3 -3
  31. package/lib/generated/services/application-signals.js +4 -4
  32. package/lib/generated/services/application-transformation.js +1 -1
  33. package/lib/generated/services/applicationinsights.js +3 -3
  34. package/lib/generated/services/appmesh-preview.js +2 -2
  35. package/lib/generated/services/appmesh.js +4 -4
  36. package/lib/generated/services/apprunner.js +4 -4
  37. package/lib/generated/services/appstream.js +4 -4
  38. package/lib/generated/services/appstudio.js +2 -2
  39. package/lib/generated/services/appsync.js +4 -4
  40. package/lib/generated/services/apptest.js +3 -3
  41. package/lib/generated/services/aps.js +4 -4
  42. package/lib/generated/services/arc-region-switch.js +4 -4
  43. package/lib/generated/services/arc-zonal-shift.js +4 -4
  44. package/lib/generated/services/arsenal.js +1 -1
  45. package/lib/generated/services/artifact.js +4 -4
  46. package/lib/generated/services/athena.js +4 -4
  47. package/lib/generated/services/auditmanager.js +4 -4
  48. package/lib/generated/services/autoscaling-plans.js +2 -2
  49. package/lib/generated/services/autoscaling.js +4 -4
  50. package/lib/generated/services/aws-external-anthropic.d.ts +24 -0
  51. package/lib/generated/services/aws-external-anthropic.js +44 -4
  52. package/lib/generated/services/aws-marketplace-management.js +1 -1
  53. package/lib/generated/services/aws-marketplace.js +4 -4
  54. package/lib/generated/services/aws-portal.js +1 -1
  55. package/lib/generated/services/awsconnector.js +1 -1
  56. package/lib/generated/services/b2bi.js +4 -4
  57. package/lib/generated/services/backup-gateway.js +4 -4
  58. package/lib/generated/services/backup-search.js +4 -4
  59. package/lib/generated/services/backup-storage.js +1 -1
  60. package/lib/generated/services/backup.js +4 -4
  61. package/lib/generated/services/batch.js +4 -4
  62. package/lib/generated/services/bcm-dashboards.js +4 -4
  63. package/lib/generated/services/bcm-data-exports.js +4 -4
  64. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  65. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  66. package/lib/generated/services/bedrock-agentcore.js +4 -4
  67. package/lib/generated/services/bedrock-mantle.js +3 -3
  68. package/lib/generated/services/bedrock-websearch.js +2 -2
  69. package/lib/generated/services/bedrock.js +4 -4
  70. package/lib/generated/services/billing.d.ts +4 -0
  71. package/lib/generated/services/billing.js +12 -5
  72. package/lib/generated/services/billingconductor.js +4 -4
  73. package/lib/generated/services/braket.js +4 -4
  74. package/lib/generated/services/budgets.js +4 -4
  75. package/lib/generated/services/bugbust.js +3 -3
  76. package/lib/generated/services/cases.js +4 -4
  77. package/lib/generated/services/cassandra.js +4 -4
  78. package/lib/generated/services/ce.js +4 -4
  79. package/lib/generated/services/chatbot.js +4 -4
  80. package/lib/generated/services/chime.js +4 -4
  81. package/lib/generated/services/cleanrooms-ml.js +4 -4
  82. package/lib/generated/services/cleanrooms.js +4 -4
  83. package/lib/generated/services/cloud9.js +4 -4
  84. package/lib/generated/services/clouddirectory.js +3 -3
  85. package/lib/generated/services/cloudformation.js +4 -4
  86. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  87. package/lib/generated/services/cloudfront.js +4 -4
  88. package/lib/generated/services/cloudhsm.js +4 -4
  89. package/lib/generated/services/cloudsearch.js +3 -3
  90. package/lib/generated/services/cloudshell.js +3 -3
  91. package/lib/generated/services/cloudtrail-data.js +4 -4
  92. package/lib/generated/services/cloudtrail.js +4 -4
  93. package/lib/generated/services/cloudwatch.d.ts +10 -0
  94. package/lib/generated/services/cloudwatch.js +19 -6
  95. package/lib/generated/services/codeartifact.js +4 -4
  96. package/lib/generated/services/codebuild.js +4 -4
  97. package/lib/generated/services/codecatalyst.js +4 -4
  98. package/lib/generated/services/codecommit.js +4 -4
  99. package/lib/generated/services/codeconnections.js +4 -4
  100. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  101. package/lib/generated/services/codedeploy.js +4 -4
  102. package/lib/generated/services/codeguru-profiler.js +4 -4
  103. package/lib/generated/services/codeguru-reviewer.js +4 -4
  104. package/lib/generated/services/codeguru-security.js +4 -4
  105. package/lib/generated/services/codeguru.js +1 -1
  106. package/lib/generated/services/codepipeline.js +4 -4
  107. package/lib/generated/services/codestar-connections.js +4 -4
  108. package/lib/generated/services/codestar-notifications.js +4 -4
  109. package/lib/generated/services/codestar.js +3 -3
  110. package/lib/generated/services/codewhisperer.js +3 -3
  111. package/lib/generated/services/cognito-identity.js +4 -4
  112. package/lib/generated/services/cognito-idp.js +4 -4
  113. package/lib/generated/services/cognito-sync.js +3 -3
  114. package/lib/generated/services/comprehend.js +4 -4
  115. package/lib/generated/services/comprehendmedical.js +3 -3
  116. package/lib/generated/services/compute-optimizer.js +3 -3
  117. package/lib/generated/services/config.js +4 -4
  118. package/lib/generated/services/connect-campaigns.js +4 -4
  119. package/lib/generated/services/connect.js +4 -4
  120. package/lib/generated/services/consoleapp.js +2 -2
  121. package/lib/generated/services/consolidatedbilling.js +1 -1
  122. package/lib/generated/services/controlcatalog.js +3 -3
  123. package/lib/generated/services/controltower.js +4 -4
  124. package/lib/generated/services/cost-optimization-hub.js +2 -2
  125. package/lib/generated/services/cur.js +4 -4
  126. package/lib/generated/services/customer-verification.js +1 -1
  127. package/lib/generated/services/databrew.js +4 -4
  128. package/lib/generated/services/dataexchange.js +4 -4
  129. package/lib/generated/services/datapipeline.js +4 -4
  130. package/lib/generated/services/datasync.js +4 -4
  131. package/lib/generated/services/datazone.d.ts +28 -0
  132. package/lib/generated/services/datazone.js +47 -5
  133. package/lib/generated/services/dax.js +4 -4
  134. package/lib/generated/services/dbqms.js +1 -1
  135. package/lib/generated/services/deadline.js +4 -4
  136. package/lib/generated/services/detective.js +4 -4
  137. package/lib/generated/services/devicefarm.js +4 -4
  138. package/lib/generated/services/devops-guru.js +4 -4
  139. package/lib/generated/services/directconnect.js +4 -4
  140. package/lib/generated/services/discovery.js +3 -3
  141. package/lib/generated/services/dlm.js +4 -4
  142. package/lib/generated/services/dms.js +4 -4
  143. package/lib/generated/services/docdb-elastic.js +4 -4
  144. package/lib/generated/services/drs.js +4 -4
  145. package/lib/generated/services/ds-data.js +4 -4
  146. package/lib/generated/services/ds.js +4 -4
  147. package/lib/generated/services/dsql.js +4 -4
  148. package/lib/generated/services/dynamodb.js +4 -4
  149. package/lib/generated/services/ebs.js +4 -4
  150. package/lib/generated/services/ec2-instance-connect.js +4 -4
  151. package/lib/generated/services/ec2.js +4 -4
  152. package/lib/generated/services/ec2messages.js +2 -2
  153. package/lib/generated/services/ecr-public.js +4 -4
  154. package/lib/generated/services/ecr.js +4 -4
  155. package/lib/generated/services/ecs-mcp.js +1 -1
  156. package/lib/generated/services/ecs.js +4 -4
  157. package/lib/generated/services/eks-auth.js +4 -4
  158. package/lib/generated/services/eks-mcp.js +1 -1
  159. package/lib/generated/services/eks.js +4 -4
  160. package/lib/generated/services/elasticache.d.ts +10 -0
  161. package/lib/generated/services/elasticache.js +26 -7
  162. package/lib/generated/services/elasticbeanstalk.js +4 -4
  163. package/lib/generated/services/elasticfilesystem.js +4 -4
  164. package/lib/generated/services/elasticloadbalancing.js +4 -4
  165. package/lib/generated/services/elasticmapreduce.js +4 -4
  166. package/lib/generated/services/elastictranscoder.js +2 -2
  167. package/lib/generated/services/elemental-activations.js +1 -1
  168. package/lib/generated/services/elemental-appliances-software.js +2 -2
  169. package/lib/generated/services/elemental-inference.d.ts +6 -0
  170. package/lib/generated/services/elemental-inference.js +23 -8
  171. package/lib/generated/services/elemental-support-cases.js +3 -3
  172. package/lib/generated/services/elemental-support-content.js +1 -1
  173. package/lib/generated/services/emr-containers.js +4 -4
  174. package/lib/generated/services/emr-serverless.js +4 -4
  175. package/lib/generated/services/entityresolution.js +4 -4
  176. package/lib/generated/services/es.js +4 -4
  177. package/lib/generated/services/events.d.ts +247 -0
  178. package/lib/generated/services/events.js +285 -5
  179. package/lib/generated/services/eventsbilltoaws.js +3 -3
  180. package/lib/generated/services/evidently.js +3 -3
  181. package/lib/generated/services/evs.js +4 -4
  182. package/lib/generated/services/execute-api.js +4 -4
  183. package/lib/generated/services/finops-agent.js +1 -1
  184. package/lib/generated/services/finspace-api.js +3 -3
  185. package/lib/generated/services/finspace.js +4 -4
  186. package/lib/generated/services/firehose.js +4 -4
  187. package/lib/generated/services/fis.js +4 -4
  188. package/lib/generated/services/fms.js +4 -4
  189. package/lib/generated/services/forecast.js +4 -4
  190. package/lib/generated/services/frauddetector.js +4 -4
  191. package/lib/generated/services/freertos.js +3 -3
  192. package/lib/generated/services/freetier.js +2 -2
  193. package/lib/generated/services/fsx.js +4 -4
  194. package/lib/generated/services/gamelift.js +4 -4
  195. package/lib/generated/services/gameliftstreams.js +4 -4
  196. package/lib/generated/services/geo-maps.js +3 -3
  197. package/lib/generated/services/geo-places.js +3 -3
  198. package/lib/generated/services/geo-routes.js +3 -3
  199. package/lib/generated/services/geo.js +4 -4
  200. package/lib/generated/services/glacier.js +4 -4
  201. package/lib/generated/services/globalaccelerator.js +4 -4
  202. package/lib/generated/services/glue.js +4 -4
  203. package/lib/generated/services/grafana.js +4 -4
  204. package/lib/generated/services/greengrass.js +4 -4
  205. package/lib/generated/services/groundstation.js +4 -4
  206. package/lib/generated/services/groundtruthlabeling.js +1 -1
  207. package/lib/generated/services/guardduty.js +4 -4
  208. package/lib/generated/services/health-agent.js +4 -4
  209. package/lib/generated/services/health.js +4 -4
  210. package/lib/generated/services/healthlake.js +4 -4
  211. package/lib/generated/services/honeycode.js +2 -2
  212. package/lib/generated/services/iam.js +4 -4
  213. package/lib/generated/services/identity-sync.js +2 -2
  214. package/lib/generated/services/identitystore-auth.js +1 -1
  215. package/lib/generated/services/identitystore.d.ts +6 -0
  216. package/lib/generated/services/identitystore.js +15 -5
  217. package/lib/generated/services/imagebuilder.js +4 -4
  218. package/lib/generated/services/importexport.js +2 -2
  219. package/lib/generated/services/inspector-scan.js +2 -2
  220. package/lib/generated/services/inspector.js +2 -2
  221. package/lib/generated/services/inspector2-telemetry.js +1 -1
  222. package/lib/generated/services/inspector2.js +4 -4
  223. package/lib/generated/services/interconnect.js +4 -4
  224. package/lib/generated/services/internetmonitor.js +4 -4
  225. package/lib/generated/services/invoicing.js +4 -4
  226. package/lib/generated/services/iot-device-tester.js +1 -1
  227. package/lib/generated/services/iot.js +4 -4
  228. package/lib/generated/services/iotanalytics.js +3 -3
  229. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  230. package/lib/generated/services/iotevents.js +3 -3
  231. package/lib/generated/services/iotfleethub.js +3 -3
  232. package/lib/generated/services/iotfleetwise.js +4 -4
  233. package/lib/generated/services/iotjobsdata.js +4 -4
  234. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  235. package/lib/generated/services/iotsitewise.js +4 -4
  236. package/lib/generated/services/iottwinmaker.js +4 -4
  237. package/lib/generated/services/iotwireless.js +4 -4
  238. package/lib/generated/services/iq-permission.js +2 -2
  239. package/lib/generated/services/iq.js +2 -2
  240. package/lib/generated/services/ivs.js +4 -4
  241. package/lib/generated/services/ivschat.js +4 -4
  242. package/lib/generated/services/kafka-cluster.js +3 -3
  243. package/lib/generated/services/kafka.js +4 -4
  244. package/lib/generated/services/kafkaconnect.js +4 -4
  245. package/lib/generated/services/kendra-ranking.js +4 -4
  246. package/lib/generated/services/kendra.js +4 -4
  247. package/lib/generated/services/kinesis.d.ts +4 -0
  248. package/lib/generated/services/kinesis.js +12 -5
  249. package/lib/generated/services/kinesisanalytics.js +4 -4
  250. package/lib/generated/services/kinesisvideo.js +4 -4
  251. package/lib/generated/services/kms.js +4 -4
  252. package/lib/generated/services/lakeformation.js +3 -3
  253. package/lib/generated/services/lambda.js +4 -4
  254. package/lib/generated/services/launchwizard.js +4 -4
  255. package/lib/generated/services/lex.js +4 -4
  256. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  257. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  258. package/lib/generated/services/license-manager.js +4 -4
  259. package/lib/generated/services/lightsail.js +4 -4
  260. package/lib/generated/services/logs.js +4 -4
  261. package/lib/generated/services/lookoutequipment.js +4 -4
  262. package/lib/generated/services/lookoutmetrics.js +3 -3
  263. package/lib/generated/services/lookoutvision.js +3 -3
  264. package/lib/generated/services/m2.js +4 -4
  265. package/lib/generated/services/machinelearning.js +3 -3
  266. package/lib/generated/services/macie2.js +4 -4
  267. package/lib/generated/services/managedblockchain-query.js +2 -2
  268. package/lib/generated/services/managedblockchain.js +4 -4
  269. package/lib/generated/services/mapcredits.js +2 -2
  270. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  271. package/lib/generated/services/mechanicalturk.js +2 -2
  272. package/lib/generated/services/mediaconnect.js +4 -4
  273. package/lib/generated/services/mediaconvert.js +4 -4
  274. package/lib/generated/services/mediaimport.js +1 -1
  275. package/lib/generated/services/medialive.js +4 -4
  276. package/lib/generated/services/mediapackage-vod.js +4 -4
  277. package/lib/generated/services/mediapackage.js +4 -4
  278. package/lib/generated/services/mediapackagev2.js +4 -4
  279. package/lib/generated/services/mediastore.js +4 -4
  280. package/lib/generated/services/mediatailor.js +4 -4
  281. package/lib/generated/services/medical-imaging.js +4 -4
  282. package/lib/generated/services/memorydb.js +4 -4
  283. package/lib/generated/services/mgh.js +4 -4
  284. package/lib/generated/services/mgn.js +4 -4
  285. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  286. package/lib/generated/services/migrationhub-strategy.js +2 -2
  287. package/lib/generated/services/mobileanalytics.js +1 -1
  288. package/lib/generated/services/mobiletargeting.js +4 -4
  289. package/lib/generated/services/monitron.js +3 -3
  290. package/lib/generated/services/mpa.js +4 -4
  291. package/lib/generated/services/mq.js +4 -4
  292. package/lib/generated/services/neptune-db.js +4 -4
  293. package/lib/generated/services/neptune-graph.js +4 -4
  294. package/lib/generated/services/network-firewall.js +4 -4
  295. package/lib/generated/services/network-security-director.js +1 -1
  296. package/lib/generated/services/network-security-manager.d.ts +674 -0
  297. package/lib/generated/services/network-security-manager.js +778 -0
  298. package/lib/generated/services/networkflowmonitor.js +4 -4
  299. package/lib/generated/services/networkmanager-chat.js +1 -1
  300. package/lib/generated/services/networkmanager.js +4 -4
  301. package/lib/generated/services/networkmonitor.js +4 -4
  302. package/lib/generated/services/nimble.js +3 -3
  303. package/lib/generated/services/notifications-contacts.js +4 -4
  304. package/lib/generated/services/notifications.js +4 -4
  305. package/lib/generated/services/nova-act.js +3 -3
  306. package/lib/generated/services/oam.js +37 -20
  307. package/lib/generated/services/observabilityadmin.js +5 -8
  308. package/lib/generated/services/odb.js +4 -4
  309. package/lib/generated/services/omics.js +4 -4
  310. package/lib/generated/services/one.js +3 -3
  311. package/lib/generated/services/opensearch.js +3 -3
  312. package/lib/generated/services/opsworks-cm.js +2 -2
  313. package/lib/generated/services/opsworks.js +2 -2
  314. package/lib/generated/services/organizations.js +4 -4
  315. package/lib/generated/services/osis.js +4 -4
  316. package/lib/generated/services/outposts.js +4 -4
  317. package/lib/generated/services/panorama.js +3 -3
  318. package/lib/generated/services/partnercentral-account-management.js +2 -2
  319. package/lib/generated/services/partnercentral.js +4 -4
  320. package/lib/generated/services/payment-cryptography.js +4 -4
  321. package/lib/generated/services/payments.js +3 -3
  322. package/lib/generated/services/pca-connector-ad.js +4 -4
  323. package/lib/generated/services/pca-connector-scep.js +4 -4
  324. package/lib/generated/services/pcs.js +4 -4
  325. package/lib/generated/services/personalize.js +4 -4
  326. package/lib/generated/services/pi.js +4 -4
  327. package/lib/generated/services/pipes.js +4 -4
  328. package/lib/generated/services/polly.js +3 -3
  329. package/lib/generated/services/pricing.js +2 -2
  330. package/lib/generated/services/pricingplanmanager.js +3 -3
  331. package/lib/generated/services/private-networks.js +3 -3
  332. package/lib/generated/services/profile.js +4 -4
  333. package/lib/generated/services/proton.js +4 -4
  334. package/lib/generated/services/purchase-orders.js +3 -3
  335. package/lib/generated/services/q.js +3 -3
  336. package/lib/generated/services/qapps.js +4 -4
  337. package/lib/generated/services/qbusiness.js +4 -4
  338. package/lib/generated/services/qdeveloper.js +3 -3
  339. package/lib/generated/services/qldb.js +3 -3
  340. package/lib/generated/services/quicksight.js +4 -4
  341. package/lib/generated/services/ram.js +4 -4
  342. package/lib/generated/services/rbin.js +4 -4
  343. package/lib/generated/services/rds-data.js +4 -4
  344. package/lib/generated/services/rds-db.js +2 -2
  345. package/lib/generated/services/rds.js +4 -4
  346. package/lib/generated/services/redshift-data.js +4 -4
  347. package/lib/generated/services/redshift-serverless.js +4 -4
  348. package/lib/generated/services/redshift.js +4 -4
  349. package/lib/generated/services/refactor-spaces.js +4 -4
  350. package/lib/generated/services/rekognition.js +4 -4
  351. package/lib/generated/services/repostspace.js +4 -4
  352. package/lib/generated/services/researchstudio.js +1 -1
  353. package/lib/generated/services/resiliencehub.js +4 -4
  354. package/lib/generated/services/resource-explorer-2.js +4 -4
  355. package/lib/generated/services/resource-explorer.js +1 -1
  356. package/lib/generated/services/resource-groups.js +4 -4
  357. package/lib/generated/services/rhelkb.js +1 -1
  358. package/lib/generated/services/robomaker.js +3 -3
  359. package/lib/generated/services/rolesanywhere.js +4 -4
  360. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  361. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  362. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  363. package/lib/generated/services/route53.js +4 -4
  364. package/lib/generated/services/route53domains.js +2 -2
  365. package/lib/generated/services/route53globalresolver.js +4 -4
  366. package/lib/generated/services/route53profiles.js +4 -4
  367. package/lib/generated/services/route53resolver.js +4 -4
  368. package/lib/generated/services/rtbfabric.js +4 -4
  369. package/lib/generated/services/rum.js +4 -4
  370. package/lib/generated/services/s3-object-lambda.js +3 -3
  371. package/lib/generated/services/s3-outposts.js +4 -4
  372. package/lib/generated/services/s3.js +4 -4
  373. package/lib/generated/services/s3express.js +3 -3
  374. package/lib/generated/services/s3files.js +4 -4
  375. package/lib/generated/services/s3tables.js +4 -4
  376. package/lib/generated/services/s3vectors.js +4 -4
  377. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  378. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  379. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  380. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  381. package/lib/generated/services/sagemaker.js +4 -4
  382. package/lib/generated/services/savingsplans.js +4 -4
  383. package/lib/generated/services/scheduler.js +4 -4
  384. package/lib/generated/services/schemas.js +4 -4
  385. package/lib/generated/services/scn.js +4 -4
  386. package/lib/generated/services/sdb.js +3 -3
  387. package/lib/generated/services/secretsmanager.js +4 -4
  388. package/lib/generated/services/security-ir.js +4 -4
  389. package/lib/generated/services/securityagent.d.ts +2 -0
  390. package/lib/generated/services/securityagent.js +8 -5
  391. package/lib/generated/services/securityhub.js +4 -4
  392. package/lib/generated/services/securitylake.js +4 -4
  393. package/lib/generated/services/serverlessrepo.js +4 -4
  394. package/lib/generated/services/servicecatalog.js +4 -4
  395. package/lib/generated/services/servicediscovery.js +4 -4
  396. package/lib/generated/services/serviceextract.js +1 -1
  397. package/lib/generated/services/servicequotas.js +4 -4
  398. package/lib/generated/services/ses.js +4 -4
  399. package/lib/generated/services/shield.js +4 -4
  400. package/lib/generated/services/signer.js +4 -4
  401. package/lib/generated/services/signin.js +4 -4
  402. package/lib/generated/services/simspaceweaver.js +3 -3
  403. package/lib/generated/services/sms-voice.js +4 -4
  404. package/lib/generated/services/sms.js +1 -1
  405. package/lib/generated/services/snow-device-management.js +4 -4
  406. package/lib/generated/services/snowball.js +2 -2
  407. package/lib/generated/services/sns.js +4 -4
  408. package/lib/generated/services/social-messaging.js +4 -4
  409. package/lib/generated/services/sqlworkbench.js +3 -3
  410. package/lib/generated/services/sqs.js +4 -4
  411. package/lib/generated/services/ssm-contacts.js +4 -4
  412. package/lib/generated/services/ssm-guiconnect.js +2 -2
  413. package/lib/generated/services/ssm-incidents.js +4 -4
  414. package/lib/generated/services/ssm-quicksetup.js +4 -4
  415. package/lib/generated/services/ssm-sap.js +4 -4
  416. package/lib/generated/services/ssm.js +4 -4
  417. package/lib/generated/services/ssmmessages.js +2 -2
  418. package/lib/generated/services/sso-directory.js +1 -1
  419. package/lib/generated/services/sso-oauth.js +3 -3
  420. package/lib/generated/services/sso.js +4 -4
  421. package/lib/generated/services/states.js +4 -4
  422. package/lib/generated/services/storagegateway.js +4 -4
  423. package/lib/generated/services/sts.js +4 -4
  424. package/lib/generated/services/support-console.js +1 -1
  425. package/lib/generated/services/support.js +2 -2
  426. package/lib/generated/services/supportapp.js +2 -2
  427. package/lib/generated/services/supportauthz.js +4 -4
  428. package/lib/generated/services/supportplans.js +1 -1
  429. package/lib/generated/services/sustainability.js +2 -2
  430. package/lib/generated/services/swf.js +4 -4
  431. package/lib/generated/services/synthetics.js +4 -4
  432. package/lib/generated/services/tag.js +2 -2
  433. package/lib/generated/services/tax.js +2 -2
  434. package/lib/generated/services/textract.js +4 -4
  435. package/lib/generated/services/thinclient.js +4 -4
  436. package/lib/generated/services/timestream-influxdb.js +4 -4
  437. package/lib/generated/services/timestream.js +4 -4
  438. package/lib/generated/services/tiros.js +1 -1
  439. package/lib/generated/services/tnb.js +4 -4
  440. package/lib/generated/services/transcribe.js +4 -4
  441. package/lib/generated/services/transfer.js +4 -4
  442. package/lib/generated/services/transform-custom.js +3 -3
  443. package/lib/generated/services/transform.js +3 -3
  444. package/lib/generated/services/translate.js +4 -4
  445. package/lib/generated/services/trustedadvisor.js +3 -3
  446. package/lib/generated/services/ts.js +3 -3
  447. package/lib/generated/services/user-subscriptions.js +2 -2
  448. package/lib/generated/services/uxc.js +2 -2
  449. package/lib/generated/services/vendor-insights.js +3 -3
  450. package/lib/generated/services/verified-access.js +1 -1
  451. package/lib/generated/services/verifiedpermissions.js +4 -4
  452. package/lib/generated/services/voiceid.js +4 -4
  453. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  454. package/lib/generated/services/vpc-lattice.js +4 -4
  455. package/lib/generated/services/vpce.js +2 -2
  456. package/lib/generated/services/waf-regional.js +4 -4
  457. package/lib/generated/services/waf.js +4 -4
  458. package/lib/generated/services/wafv2.js +4 -4
  459. package/lib/generated/services/wam.js +1 -1
  460. package/lib/generated/services/wellarchitected.js +4 -4
  461. package/lib/generated/services/wickr.js +4 -4
  462. package/lib/generated/services/wisdom.js +4 -4
  463. package/lib/generated/services/workdocs.js +3 -3
  464. package/lib/generated/services/worklink.js +3 -3
  465. package/lib/generated/services/workmail.js +4 -4
  466. package/lib/generated/services/workmailmessageflow.js +3 -3
  467. package/lib/generated/services/workspaces-instances.js +4 -4
  468. package/lib/generated/services/workspaces-web.js +4 -4
  469. package/lib/generated/services/workspaces.js +4 -4
  470. package/lib/generated/services/xray.js +4 -4
  471. package/package.json +1 -1
@@ -16,7 +16,7 @@ class ObservabilityadminActions {
16
16
  }
17
17
  exports.ObservabilityadminActions = ObservabilityadminActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- ObservabilityadminActions[_a] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminActions", version: "1.29.0" };
19
+ ObservabilityadminActions[_a] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminActions", version: "1.31.0" };
20
20
  /** The IAM service prefix. */
21
21
  ObservabilityadminActions.SERVICE_PREFIX = "observabilityadmin";
22
22
  /** [Write] observabilityadmin:CreateCentralizationRuleForOrganization */
@@ -349,7 +349,7 @@ class ObservabilityadminResources {
349
349
  }
350
350
  exports.ObservabilityadminResources = ObservabilityadminResources;
351
351
  _b = JSII_RTTI_SYMBOL_1;
352
- ObservabilityadminResources[_b] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminResources", version: "1.29.0" };
352
+ ObservabilityadminResources[_b] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminResources", version: "1.31.0" };
353
353
  /**
354
354
  * API operation to required IAM actions mapping for observabilityadmin.
355
355
  */
@@ -357,7 +357,7 @@ class ObservabilityadminOperations {
357
357
  }
358
358
  exports.ObservabilityadminOperations = ObservabilityadminOperations;
359
359
  _c = JSII_RTTI_SYMBOL_1;
360
- ObservabilityadminOperations[_c] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminOperations", version: "1.29.0" };
360
+ ObservabilityadminOperations[_c] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminOperations", version: "1.31.0" };
361
361
  /** IAM actions required for the CreateCentralizationRuleForOrganization API call. */
362
362
  ObservabilityadminOperations.CreateCentralizationRuleForOrganization = [
363
363
  "observabilityadmin:CreateCentralizationRuleForOrganization",
@@ -379,7 +379,6 @@ ObservabilityadminOperations.CreateS3TableIntegration = [
379
379
  ObservabilityadminOperations.CreateTelemetryPipeline = [
380
380
  "observabilityadmin:CreateTelemetryPipeline",
381
381
  "iam:PassRole",
382
- "cloudwatch:PutPipelineRule",
383
382
  "observabilityadmin:TagResource",
384
383
  ];
385
384
  /** IAM actions required for the CreateTelemetryRule API call. */
@@ -406,7 +405,6 @@ ObservabilityadminOperations.DeleteS3TableIntegration = [
406
405
  ];
407
406
  /** IAM actions required for the DeleteTelemetryPipeline API call. */
408
407
  ObservabilityadminOperations.DeleteTelemetryPipeline = [
409
- "cloudwatch:DeletePipelineRule",
410
408
  "observabilityadmin:DeleteTelemetryPipeline",
411
409
  ];
412
410
  /** IAM actions required for the DeleteTelemetryRule API call. */
@@ -535,7 +533,6 @@ ObservabilityadminOperations.UpdateDatasetIntegration = [
535
533
  /** IAM actions required for the UpdateTelemetryPipeline API call. */
536
534
  ObservabilityadminOperations.UpdateTelemetryPipeline = [
537
535
  "iam:PassRole",
538
- "cloudwatch:PutPipelineRule",
539
536
  "observabilityadmin:UpdateTelemetryPipeline",
540
537
  ];
541
538
  /** IAM actions required for the UpdateTelemetryRule API call. */
@@ -643,7 +640,7 @@ class ObservabilityadminConditions {
643
640
  }
644
641
  exports.ObservabilityadminConditions = ObservabilityadminConditions;
645
642
  _d = JSII_RTTI_SYMBOL_1;
646
- ObservabilityadminConditions[_d] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminConditions", version: "1.29.0" };
643
+ ObservabilityadminConditions[_d] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminConditions", version: "1.31.0" };
647
644
  /** Condition keys applicable to the CreateCentralizationRuleForOrganization action. */
648
645
  ObservabilityadminConditions.CreateCentralizationRuleForOrganizationConditionKeys = [
649
646
  "aws:RequestTag/${TagKey}",
@@ -745,4 +742,4 @@ ObservabilityadminConditions.CENTRALIZATION_SOURCE_REGIONS = "observabilityadmin
745
742
  ObservabilityadminConditions.SOURCE_TYPE = "observabilityadmin:SourceType";
746
743
  /** Condition key: observabilityadmin:TargetRegions (String) */
747
744
  ObservabilityadminConditions.TARGET_REGIONS = "observabilityadmin:TargetRegions";
748
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJpbGl0eWFkbWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9vYnNlcnZhYmlsaXR5YWRtaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCx5REFBeUQ7QUFDekQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEseUJBQXlCOztBQUF0Qyw4REFvTUM7OztBQW5NQSw4QkFBOEI7QUFDZCx3Q0FBYyxHQUFHLG9CQUFvQixDQUFDO0FBRXRELHlFQUF5RTtBQUN6RCxpRUFBdUMsR0FDdEQsNERBQTRELENBQUM7QUFDOUQsMERBQTBEO0FBQzFDLGtEQUF3QixHQUN2Qyw2Q0FBNkMsQ0FBQztBQUMvQywwREFBMEQ7QUFDMUMsa0RBQXdCLEdBQ3ZDLDZDQUE2QyxDQUFDO0FBQy9DLHlEQUF5RDtBQUN6QyxpREFBdUIsR0FDdEMsNENBQTRDLENBQUM7QUFDOUMscURBQXFEO0FBQ3JDLDZDQUFtQixHQUNsQyx3Q0FBd0MsQ0FBQztBQUMxQyxvRUFBb0U7QUFDcEQsNERBQWtDLEdBQ2pELHVEQUF1RCxDQUFDO0FBQ3pELHlFQUF5RTtBQUN6RCxpRUFBdUMsR0FDdEQsNERBQTRELENBQUM7QUFDOUQsMERBQTBEO0FBQzFDLGtEQUF3QixHQUN2Qyw2Q0FBNkMsQ0FBQztBQUMvQywwREFBMEQ7QUFDMUMsa0RBQXdCLEdBQ3ZDLDZDQUE2QyxDQUFDO0FBQy9DLHlEQUF5RDtBQUN6QyxpREFBdUIsR0FDdEMsNENBQTRDLENBQUM7QUFDOUMscURBQXFEO0FBQ3JDLDZDQUFtQixHQUNsQyx3Q0FBd0MsQ0FBQztBQUMxQyxvRUFBb0U7QUFDcEQsNERBQWtDLEdBQ2pELHVEQUF1RCxDQUFDO0FBQ3pELHFFQUFxRTtBQUNyRCxvRUFBMEMsR0FDekQseURBQXlELENBQUM7QUFDM0Qsc0RBQXNEO0FBQ3RDLHFEQUEyQixHQUMxQywwQ0FBMEMsQ0FBQztBQUM1QyxzREFBc0Q7QUFDdEMscURBQTJCLEdBQzFDLDBDQUEwQyxDQUFDO0FBQzVDLDZEQUE2RDtBQUM3Qyw0REFBa0MsR0FDakQsaURBQWlELENBQUM7QUFDbkQsNkRBQTZEO0FBQzdDLDREQUFrQyxHQUNqRCxpREFBaUQsQ0FBQztBQUNuRCw0RUFBNEU7QUFDNUQsMkVBQWlELEdBQ2hFLGdFQUFnRSxDQUFDO0FBQ2xFLHFEQUFxRDtBQUNyQyxvREFBMEIsR0FDekMseUNBQXlDLENBQUM7QUFDM0MsaURBQWlEO0FBQ2pDLGdEQUFzQixHQUNyQyxxQ0FBcUMsQ0FBQztBQUN2QyxnRUFBZ0U7QUFDaEQsK0RBQXFDLEdBQ3BELG9EQUFvRCxDQUFDO0FBQ3RELHVFQUF1RTtBQUN2RCxnRUFBc0MsR0FDckQsMkRBQTJELENBQUM7QUFDN0Qsd0RBQXdEO0FBQ3hDLGlEQUF1QixHQUN0Qyw0Q0FBNEMsQ0FBQztBQUM5QyxzREFBc0Q7QUFDdEMsK0NBQXFCLEdBQ3BDLDBDQUEwQyxDQUFDO0FBQzVDLHFFQUFxRTtBQUNyRCw4REFBb0MsR0FDbkQseURBQXlELENBQUM7QUFDM0Qsd0RBQXdEO0FBQ3hDLGlEQUF1QixHQUN0Qyw0Q0FBNEMsQ0FBQztBQUM5QyxvREFBb0Q7QUFDcEMsNkNBQW1CLEdBQ2xDLHdDQUF3QyxDQUFDO0FBQzFDLHVEQUF1RDtBQUN2QyxnREFBc0IsR0FDckMsMkNBQTJDLENBQUM7QUFDN0MsbURBQW1EO0FBQ25DLDRDQUFrQixHQUFHLHVDQUF1QyxDQUFDO0FBQzdFLGtFQUFrRTtBQUNsRCwyREFBaUMsR0FDaEQsc0RBQXNELENBQUM7QUFDeEQsMERBQTBEO0FBQzFDLGtEQUF3QixHQUN2Qyw2Q0FBNkMsQ0FBQztBQUMvQywwREFBMEQ7QUFDMUMsa0RBQXdCLEdBQ3ZDLDZDQUE2QyxDQUFDO0FBQy9DLHlFQUF5RTtBQUN6RCxpRUFBdUMsR0FDdEQsNERBQTRELENBQUM7QUFDOUQseURBQXlEO0FBQ3pDLGlEQUF1QixHQUN0Qyw0Q0FBNEMsQ0FBQztBQUM5Qyx5REFBeUQ7QUFDekMsaURBQXVCLEdBQ3RDLDRDQUE0QyxDQUFDO0FBQzlDLHdFQUF3RTtBQUN4RCxnRUFBc0MsR0FDckQsMkRBQTJELENBQUM7QUFDN0QsK0NBQStDO0FBQy9CLHFDQUFXLEdBQUcsZ0NBQWdDLENBQUM7QUFDL0Qsc0RBQXNEO0FBQ3RDLCtDQUFxQixHQUNwQywwQ0FBMEMsQ0FBQztBQUM1QyxpREFBaUQ7QUFDakMsdUNBQWEsR0FBRyxrQ0FBa0MsQ0FBQztBQUNuRSx5RUFBeUU7QUFDekQsaUVBQXVDLEdBQ3RELDREQUE0RCxDQUFDO0FBQzlELDBEQUEwRDtBQUMxQyxrREFBd0IsR0FDdkMsNkNBQTZDLENBQUM7QUFDL0MseURBQXlEO0FBQ3pDLGlEQUF1QixHQUN0Qyw0Q0FBNEMsQ0FBQztBQUM5QyxxREFBcUQ7QUFDckMsNkNBQW1CLEdBQ2xDLHdDQUF3QyxDQUFDO0FBQzFDLG9FQUFvRTtBQUNwRCw0REFBa0MsR0FDakQsdURBQXVELENBQUM7QUFDekQsdUVBQXVFO0FBQ3ZELGdFQUFzQyxHQUNyRCwyREFBMkQsQ0FBQztBQUU3RCw4QkFBOEI7QUFDZCx3Q0FBYyxHQUFhO0lBQzFDLHlCQUF5QixDQUFDLDBDQUEwQztJQUNwRSx5QkFBeUIsQ0FBQywyQkFBMkI7SUFDckQseUJBQXlCLENBQUMsMkJBQTJCO0lBQ3JELHlCQUF5QixDQUFDLGtDQUFrQztJQUM1RCx5QkFBeUIsQ0FBQyxrQ0FBa0M7SUFDNUQseUJBQXlCLENBQUMsaURBQWlEO0lBQzNFLHlCQUF5QixDQUFDLDBCQUEwQjtJQUNwRCx5QkFBeUIsQ0FBQyxzQkFBc0I7SUFDaEQseUJBQXlCLENBQUMscUNBQXFDO0lBQy9ELHlCQUF5QixDQUFDLHFCQUFxQjtJQUMvQyx5QkFBeUIsQ0FBQyxvQ0FBb0M7SUFDOUQseUJBQXlCLENBQUMscUJBQXFCO0lBQy9DLHlCQUF5QixDQUFDLHNDQUFzQztDQUNoRSxDQUFDO0FBQ0YsK0JBQStCO0FBQ2YseUNBQWUsR0FBYTtJQUMzQyx5QkFBeUIsQ0FBQyx1Q0FBdUM7SUFDakUseUJBQXlCLENBQUMsd0JBQXdCO0lBQ2xELHlCQUF5QixDQUFDLHdCQUF3QjtJQUNsRCx5QkFBeUIsQ0FBQyx1QkFBdUI7SUFDakQseUJBQXlCLENBQUMsbUJBQW1CO0lBQzdDLHlCQUF5QixDQUFDLGtDQUFrQztJQUM1RCx5QkFBeUIsQ0FBQyx1Q0FBdUM7SUFDakUseUJBQXlCLENBQUMsd0JBQXdCO0lBQ2xELHlCQUF5QixDQUFDLHdCQUF3QjtJQUNsRCx5QkFBeUIsQ0FBQyx1QkFBdUI7SUFDakQseUJBQXlCLENBQUMsbUJBQW1CO0lBQzdDLHlCQUF5QixDQUFDLGtDQUFrQztJQUM1RCx5QkFBeUIsQ0FBQyx3QkFBd0I7SUFDbEQseUJBQXlCLENBQUMsd0JBQXdCO0lBQ2xELHlCQUF5QixDQUFDLHVDQUF1QztJQUNqRSx5QkFBeUIsQ0FBQyx1QkFBdUI7SUFDakQseUJBQXlCLENBQUMsdUJBQXVCO0lBQ2pELHlCQUF5QixDQUFDLHNDQUFzQztJQUNoRSx5QkFBeUIsQ0FBQyx1Q0FBdUM7SUFDakUseUJBQXlCLENBQUMsd0JBQXdCO0lBQ2xELHlCQUF5QixDQUFDLHVCQUF1QjtJQUNqRCx5QkFBeUIsQ0FBQyxtQkFBbUI7SUFDN0MseUJBQXlCLENBQUMsa0NBQWtDO0NBQzVELENBQUM7QUFDRiw4QkFBOEI7QUFDZCx3Q0FBYyxHQUFhO0lBQzFDLHlCQUF5QixDQUFDLHNDQUFzQztJQUNoRSx5QkFBeUIsQ0FBQyx1QkFBdUI7SUFDakQseUJBQXlCLENBQUMsdUJBQXVCO0lBQ2pELHlCQUF5QixDQUFDLG1CQUFtQjtJQUM3Qyx5QkFBeUIsQ0FBQyxzQkFBc0I7SUFDaEQseUJBQXlCLENBQUMsa0JBQWtCO0lBQzVDLHlCQUF5QixDQUFDLGlDQUFpQztDQUMzRCxDQUFDO0FBQ0YsK0NBQStDO0FBQy9CLHdEQUE4QixHQUFhLEVBQUUsQ0FBQztBQUM5RCxpQ0FBaUM7QUFDakIsMkNBQWlCLEdBQWE7SUFDN0MseUJBQXlCLENBQUMsV0FBVztJQUNyQyx5QkFBeUIsQ0FBQyxhQUFhO0NBQ3ZDLENBQUM7QUEyS0gsTUFBTSwwQkFBMEIsR0FDL0IsK0lBQStJLENBQUM7QUFDakosTUFBTSxzQ0FBc0MsR0FDM0Msc0pBQXNKLENBQUM7QUFDeEosTUFBTSxpQ0FBaUMsR0FDdEMsNElBQTRJLENBQUM7QUFDOUksTUFBTSwwQkFBMEIsR0FDL0IsOElBQThJLENBQUM7QUFDaEosTUFBTSx5QkFBeUIsR0FDOUIsNklBQTZJLENBQUM7QUFDL0ksTUFBTSxxQkFBcUIsR0FDMUIsK0hBQStILENBQUM7QUFFakk7O0dBRUc7QUFDSCxNQUFhLDJCQUEyQjtJQUN2Qzs7T0FFRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FDeEIsS0FBbUQ7UUFFbkQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyx1QkFBdUIsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHdCQUF3QixLQUFLLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0SyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBVztRQUM5QyxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUNoQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsNEJBQTRCO1NBQ3hFLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQ3BDLEtBQStEO1FBRS9ELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssdUJBQXVCLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxxQ0FBcUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDN0ssQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLEdBQVc7UUFDMUQsT0FBTyxzQ0FBc0MsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxzQ0FBc0MsQ0FDNUMsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixzQkFBc0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLHNCQUFzQjtTQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHlCQUF5QixDQUMvQixLQUEwRDtRQUUxRCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLHVCQUF1QixLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsZ0NBQWdDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ25LLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxHQUFXO1FBQ3JELE9BQU8saUNBQWlDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUNBQWlDLENBQ3ZDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxpQkFBaUI7U0FDbEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FDeEIsS0FBbUQ7UUFFbkQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyx1QkFBdUIsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHVCQUF1QixLQUFLLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUNySyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBVztRQUM5QyxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUNoQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsNEJBQTRCO1NBQ3hFLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQ3ZCLEtBQWtEO1FBRWxELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssdUJBQXVCLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyx1QkFBdUIsS0FBSyxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDcEssQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLDJCQUEyQixDQUFDLEdBQVc7UUFDN0MsT0FBTyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx5QkFBeUIsQ0FDL0IsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QiwyQkFBMkIsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLDJCQUEyQjtTQUN0RSxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUE4QztRQUNsRSxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLHVCQUF1QixLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsbUJBQW1CLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3RKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFXO1FBQ3pDLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMscUJBQXFCLENBQzNCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxpQkFBaUI7U0FDbEQsQ0FBQztJQUNILENBQUM7O0FBL01GLGtFQWdOQzs7O0FBRUQ7O0dBRUc7QUFDSCxNQUFhLDRCQUE0Qjs7QUFBekMsb0VBaU1DOzs7QUFoTUEscUZBQXFGO0FBQ3JFLG9FQUF1QyxHQUFhO0lBQ25FLDREQUE0RDtJQUM1RCxnQ0FBZ0M7Q0FDaEMsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCxxREFBd0IsR0FBYTtJQUNwRCw2Q0FBNkM7SUFDN0MsY0FBYztJQUNkLGdDQUFnQztDQUNoQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELHFEQUF3QixHQUFhO0lBQ3BELDZDQUE2QztJQUM3QyxjQUFjO0lBQ2QsZ0NBQWdDO0NBQ2hDLENBQUM7QUFDRixxRUFBcUU7QUFDckQsb0RBQXVCLEdBQWE7SUFDbkQsNENBQTRDO0lBQzVDLGNBQWM7SUFDZCw0QkFBNEI7SUFDNUIsZ0NBQWdDO0NBQ2hDLENBQUM7QUFDRixpRUFBaUU7QUFDakQsZ0RBQW1CLEdBQWE7SUFDL0Msd0NBQXdDO0lBQ3hDLGdDQUFnQztDQUNoQyxDQUFDO0FBQ0YsZ0ZBQWdGO0FBQ2hFLCtEQUFrQyxHQUFhO0lBQzlELHVEQUF1RDtJQUN2RCxnQ0FBZ0M7Q0FDaEMsQ0FBQztBQUNGLHFGQUFxRjtBQUNyRSxvRUFBdUMsR0FBYTtJQUNuRSw0REFBNEQ7Q0FDNUQsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCxxREFBd0IsR0FBYTtJQUNwRCw2Q0FBNkM7Q0FDN0MsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCxxREFBd0IsR0FBYTtJQUNwRCw2Q0FBNkM7Q0FDN0MsQ0FBQztBQUNGLHFFQUFxRTtBQUNyRCxvREFBdUIsR0FBYTtJQUNuRCwrQkFBK0I7SUFDL0IsNENBQTRDO0NBQzVDLENBQUM7QUFDRixpRUFBaUU7QUFDakQsZ0RBQW1CLEdBQWE7SUFDL0Msd0NBQXdDO0NBQ3hDLENBQUM7QUFDRixnRkFBZ0Y7QUFDaEUsK0RBQWtDLEdBQWE7SUFDOUQsdURBQXVEO0NBQ3ZELENBQUM7QUFDRixrRkFBa0Y7QUFDbEUsbUVBQXNDLEdBQWE7SUFDbEUseURBQXlEO0NBQ3pELENBQUM7QUFDRixtRUFBbUU7QUFDbkQsb0RBQXVCLEdBQWE7SUFDbkQsMENBQTBDO0NBQzFDLENBQUM7QUFDRixtRUFBbUU7QUFDbkQsb0RBQXVCLEdBQWE7SUFDbkQsMENBQTBDO0NBQzFDLENBQUM7QUFDRiwwRUFBMEU7QUFDMUQsMkRBQThCLEdBQWE7SUFDMUQsaURBQWlEO0NBQ2pELENBQUM7QUFDRiwwRUFBMEU7QUFDMUQsMkRBQThCLEdBQWE7SUFDMUQsaURBQWlEO0NBQ2pELENBQUM7QUFDRix5RkFBeUY7QUFDekUsMEVBQTZDLEdBQWE7SUFDekUsZ0VBQWdFO0NBQ2hFLENBQUM7QUFDRixrRUFBa0U7QUFDbEQsbURBQXNCLEdBQWE7SUFDbEQseUNBQXlDO0NBQ3pDLENBQUM7QUFDRiw4REFBOEQ7QUFDOUMsK0NBQWtCLEdBQWE7SUFDOUMscUNBQXFDO0NBQ3JDLENBQUM7QUFDRiw2RUFBNkU7QUFDN0QsOERBQWlDLEdBQWE7SUFDN0Qsb0RBQW9EO0NBQ3BELENBQUM7QUFDRixvRkFBb0Y7QUFDcEUsbUVBQXNDLEdBQWE7SUFDbEUsMkRBQTJEO0NBQzNELENBQUM7QUFDRixxRUFBcUU7QUFDckQsb0RBQXVCLEdBQWE7SUFDbkQsNENBQTRDO0NBQzVDLENBQUM7QUFDRixtRUFBbUU7QUFDbkQsa0RBQXFCLEdBQWE7SUFDakQsMENBQTBDO0NBQzFDLENBQUM7QUFDRixrRkFBa0Y7QUFDbEUsaUVBQW9DLEdBQWE7SUFDaEUseURBQXlEO0NBQ3pELENBQUM7QUFDRixxRUFBcUU7QUFDckQsb0RBQXVCLEdBQWE7SUFDbkQsNENBQTRDO0NBQzVDLENBQUM7QUFDRixpRUFBaUU7QUFDakQsZ0RBQW1CLEdBQWE7SUFDL0Msd0NBQXdDO0NBQ3hDLENBQUM7QUFDRixvRUFBb0U7QUFDcEQsbURBQXNCLEdBQWE7SUFDbEQsMkNBQTJDO0NBQzNDLENBQUM7QUFDRixnRUFBZ0U7QUFDaEQsK0NBQWtCLEdBQWE7SUFDOUMsdUNBQXVDO0NBQ3ZDLENBQUM7QUFDRiwrRUFBK0U7QUFDL0QsOERBQWlDLEdBQWE7SUFDN0Qsc0RBQXNEO0NBQ3RELENBQUM7QUFDRixzRUFBc0U7QUFDdEQscURBQXdCLEdBQWE7SUFDcEQsNkNBQTZDO0NBQzdDLENBQUM7QUFDRixzRUFBc0U7QUFDdEQscURBQXdCLEdBQWE7SUFDcEQsNkNBQTZDO0NBQzdDLENBQUM7QUFDRixxRkFBcUY7QUFDckUsb0VBQXVDLEdBQWE7SUFDbkUsNERBQTREO0NBQzVELENBQUM7QUFDRixxRUFBcUU7QUFDckQsb0RBQXVCLEdBQWE7SUFDbkQsNENBQTRDO0NBQzVDLENBQUM7QUFDRixxRUFBcUU7QUFDckQsb0RBQXVCLEdBQWE7SUFDbkQsNENBQTRDO0NBQzVDLENBQUM7QUFDRixvRkFBb0Y7QUFDcEUsbUVBQXNDLEdBQWE7SUFDbEUsMkRBQTJEO0NBQzNELENBQUM7QUFDRix5REFBeUQ7QUFDekMsd0NBQVcsR0FBYSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7QUFDM0UsbUVBQW1FO0FBQ25ELGtEQUFxQixHQUFhO0lBQ2pELDBDQUEwQztDQUMxQyxDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLDBDQUFhLEdBQWE7SUFDekMsa0NBQWtDO0NBQ2xDLENBQUM7QUFDRixxRkFBcUY7QUFDckUsb0VBQXVDLEdBQWE7SUFDbkUsNERBQTREO0NBQzVELENBQUM7QUFDRixzRUFBc0U7QUFDdEQscURBQXdCLEdBQWE7SUFDcEQsY0FBYztJQUNkLDZDQUE2QztDQUM3QyxDQUFDO0FBQ0YscUVBQXFFO0FBQ3JELG9EQUF1QixHQUFhO0lBQ25ELGNBQWM7SUFDZCw0QkFBNEI7SUFDNUIsNENBQTRDO0NBQzVDLENBQUM7QUFDRixpRUFBaUU7QUFDakQsZ0RBQW1CLEdBQWE7SUFDL0Msd0NBQXdDO0NBQ3hDLENBQUM7QUFDRixnRkFBZ0Y7QUFDaEUsK0RBQWtDLEdBQWE7SUFDOUQsdURBQXVEO0NBQ3ZELENBQUM7QUFDRixvRkFBb0Y7QUFDcEUsbUVBQXNDLEdBQWE7SUFDbEUsMkRBQTJEO0NBQzNELENBQUM7QUFHSDs7R0FFRztBQUNILE1BQWEsNEJBQTRCO0lBb0h4Qzs7T0FFRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBYTtRQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWE7UUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFnQjtRQUM5QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsMEJBQTBCLENBQ2hDLEtBQWE7UUFFYixPQUFPO1lBQ04sWUFBWSxFQUFFLEVBQUUsK0NBQStDLEVBQUUsS0FBSyxFQUFFO1NBQ3hFLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0NBQWdDLENBQ3RDLEtBQWE7UUFFYixPQUFPO1lBQ04sWUFBWSxFQUFFO2dCQUNiLHFEQUFxRCxFQUFFLEtBQUs7YUFDNUQ7U0FDRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLCtCQUErQixDQUNyQyxLQUFhO1FBRWIsT0FBTztZQUNOLFlBQVksRUFBRTtnQkFDYixvREFBb0QsRUFBRSxLQUFLO2FBQzNEO1NBQ0QsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxzQkFBc0IsQ0FDNUIsS0FBYTtRQUViLE9BQU87WUFDTixZQUFZLEVBQUUsRUFBRSwyQ0FBMkMsRUFBRSxLQUFLLEVBQUU7U0FDcEUsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxzQkFBc0IsQ0FDNUIsTUFBZ0I7UUFFaEIsT0FBTztZQUNOLDJCQUEyQixFQUFFO2dCQUM1QiwyQ0FBMkMsRUFBRSxNQUFNO2FBQ25EO1NBQ0QsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQywyQkFBMkIsQ0FDakMsTUFBZ0I7UUFFaEIsT0FBTztZQUNOLDJCQUEyQixFQUFFO2dCQUM1QixnREFBZ0QsRUFBRSxNQUFNO2FBQ3hEO1NBQ0QsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBYTtRQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsK0JBQStCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWE7UUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLGtDQUFrQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDeEUsQ0FBQzs7QUEvTkYsb0VBZ09DOzs7QUEvTkEsdUZBQXVGO0FBQ3ZFLGlGQUFvRCxHQUNuRTtJQUNDLDBCQUEwQjtJQUMxQixhQUFhO0lBQ2IsK0NBQStDO0lBQy9DLHFEQUFxRDtJQUNyRCxvREFBb0Q7SUFDcEQsMkNBQTJDO0lBQzNDLDJDQUEyQztJQUMzQyxnREFBZ0Q7Q0FDaEQsQ0FBQztBQUNILHdFQUF3RTtBQUN4RCxrRUFBcUMsR0FBYTtJQUNqRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRix3RUFBd0U7QUFDeEQsa0VBQXFDLEdBQWE7SUFDakUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELGlFQUFvQyxHQUFhO0lBQ2hFLDBCQUEwQjtJQUMxQixhQUFhO0lBQ2IsK0JBQStCO0NBQy9CLENBQUM7QUFDRixtRUFBbUU7QUFDbkQsNkRBQWdDLEdBQWE7SUFDNUQsMEJBQTBCO0lBQzFCLGFBQWE7SUFDYixrQ0FBa0M7Q0FDbEMsQ0FBQztBQUNGLGtGQUFrRjtBQUNsRSw0RUFBK0MsR0FBYTtJQUMzRSwwQkFBMEI7SUFDMUIsYUFBYTtJQUNiLGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YsdUZBQXVGO0FBQ3ZFLGlGQUFvRCxHQUNuRSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7QUFDL0Msb0ZBQW9GO0FBQ3BFLG9GQUF1RCxHQUN0RSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7QUFDL0MscUVBQXFFO0FBQ3JELCtEQUFrQyxHQUFhO0lBQzlELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0Ysb0ZBQW9GO0FBQ3BFLDhFQUFpRCxHQUNoRSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFDdEMsd0VBQXdFO0FBQ3hELGtFQUFxQyxHQUFhO0lBQ2pFLGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YsdUZBQXVGO0FBQ3ZFLGlGQUFvRCxHQUNuRSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFDdEMsMkRBQTJEO0FBQzNDLHFEQUF3QixHQUFhO0lBQ3BELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDZEQUE2RDtBQUM3Qyx1REFBMEIsR0FBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZFLHVGQUF1RjtBQUN2RSxpRkFBb0QsR0FDbkU7SUFDQywrQ0FBK0M7SUFDL0MscURBQXFEO0lBQ3JELG9EQUFvRDtJQUNwRCwyQ0FBMkM7SUFDM0MsMkNBQTJDO0lBQzNDLGdEQUFnRDtDQUNoRCxDQUFDO0FBQ0gsbUVBQW1FO0FBQ25ELDZEQUFnQyxHQUFhO0lBQzVELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0Ysa0ZBQWtGO0FBQ2xFLDRFQUErQyxHQUFhO0lBQzNFLGtDQUFrQztDQUNsQyxDQUFDO0FBRUYsdURBQXVEO0FBQ3ZDLDRDQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFDN0Qsd0RBQXdEO0FBQ3hDLDZDQUFnQixHQUFHLDJCQUEyQixDQUFDO0FBQy9ELGlEQUFpRDtBQUNqQyx5Q0FBWSxHQUFHLGFBQWEsQ0FBQztBQUM3Qyw0RUFBNEU7QUFDNUQseURBQTRCLEdBQzNDLCtDQUErQyxDQUFDO0FBQ2pELGtGQUFrRjtBQUNsRSwrREFBa0MsR0FDakQscURBQXFELENBQUM7QUFDdkQsaUZBQWlGO0FBQ2pFLDhEQUFpQyxHQUNoRCxvREFBb0QsQ0FBQztBQUN0RCx3RUFBd0U7QUFDeEQscURBQXdCLEdBQ3ZDLDJDQUEyQyxDQUFDO0FBQzdDLCtFQUErRTtBQUMvRCxxREFBd0IsR0FDdkMsMkNBQTJDLENBQUM7QUFDN0Msb0ZBQW9GO0FBQ3BFLDBEQUE2QixHQUM1QyxnREFBZ0QsQ0FBQztBQUNsRCw0REFBNEQ7QUFDNUMsd0NBQVcsR0FBRywrQkFBK0IsQ0FBQztBQUM5RCwrREFBK0Q7QUFDL0MsMkNBQWMsR0FBRyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL29ic2VydmFiaWxpdHlhZG1pbi5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgb2JzZXJ2YWJpbGl0eWFkbWluIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwib2JzZXJ2YWJpbGl0eWFkbWluXCI7XG5cblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZURhdGFzZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVEYXRhc2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVTM1RhYmxlSW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUZWxlbWV0cnlQaXBlbGluZSA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZURhdGFzZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGF0YXNldEludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVEYXRhc2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUzNUYWJsZUludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVTM1RhYmxlSW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVUZWxlbWV0cnlQaXBlbGluZSA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlVGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXREYXRhc2V0SW50ZWdyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERhdGFzZXRJbnRlZ3JhdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0RGF0YXNldEludGVncmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFMzVGFibGVJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UzNUYWJsZUludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRTM1RhYmxlSW50ZWdyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1c1wiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5UGlwZWxpbmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeVBpcGVsaW5lID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlQaXBlbGluZVwiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlSdWxlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRUZWxlbWV0cnlSdWxlID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlSdWxlXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtMaXN0XSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDZW50cmFsaXphdGlvblJ1bGVzRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0Q2VudHJhbGl6YXRpb25SdWxlc0Zvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0RGF0YXNldEludGVncmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRJbnRlZ3JhdGlvbnMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3REYXRhc2V0SW50ZWdyYXRpb25zXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RSZXNvdXJjZVRlbGVtZXRyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5ID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UmVzb3VyY2VUZWxlbWV0cnlcIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVzb3VyY2VUZWxlbWV0cnlGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UzNUYWJsZUludGVncmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFMzVGFibGVJbnRlZ3JhdGlvbnMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RTM1RhYmxlSW50ZWdyYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gb2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtMaXN0XSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVBpcGVsaW5lcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRlbGVtZXRyeVBpcGVsaW5lcyA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVBpcGVsaW5lc1wiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlSdWxlcyA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUZWxlbWV0cnlSdWxlc1wiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXNGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlSdWxlc0Zvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUVucmljaG1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RW5yaWNobWVudCA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFbnJpY2htZW50XCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RW5yaWNobWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUVucmljaG1lbnQgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFbnJpY2htZW50XCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbVGFnZ2luZ10gb2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOlRlc3RUZWxlbWV0cnlQaXBlbGluZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVzdFRlbGVtZXRyeVBpcGVsaW5lID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUZXN0VGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtUYWdnaW5nXSBvYnNlcnZhYmlsaXR5YWRtaW46VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZURhdGFzZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGF0YXNldEludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVEYXRhc2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlQaXBlbGluZSA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46VmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFZhbGlkYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25maWd1cmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpWYWxpZGF0ZVRlbGVtZXRyeVBpcGVsaW5lQ29uZmlndXJhdGlvblwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0RGF0YXNldEludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0UzNUYWJsZUludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLmFjdGlvbkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXMsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5hY3Rpb25HZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5UGlwZWxpbmUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5hY3Rpb25HZXRUZWxlbWV0cnlSdWxlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RSZXNvdXJjZVRlbGVtZXRyeSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlRlc3RUZWxlbWV0cnlQaXBlbGluZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlZhbGlkYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25maWd1cmF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlRGF0YXNldEludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5DcmVhdGVUZWxlbWV0cnlSdWxlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZURhdGFzZXRJbnRlZ3JhdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuRGVsZXRlVGVsZW1ldHJ5UnVsZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUVucmljaG1lbnQsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUV2YWx1YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdG9wVGVsZW1ldHJ5RW5yaWNobWVudCxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVEYXRhc2V0SW50ZWdyYXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVUZWxlbWV0cnlQaXBlbGluZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlVwZGF0ZVRlbGVtZXRyeVJ1bGUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RDZW50cmFsaXphdGlvblJ1bGVzRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdERhdGFzZXRJbnRlZ3JhdGlvbnMsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5MaXN0UzNUYWJsZUludGVncmF0aW9ucyxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5MaXN0VGVsZW1ldHJ5UGlwZWxpbmVzLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdFRlbGVtZXRyeVJ1bGVzLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRhdGFzZXQtaW50ZWdyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbkRhdGFzZXRJbnRlZ3JhdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBEYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGF0YXNldC1pbnRlZ3JhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluRGF0YXNldEludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGF0YXNldEludGVncmF0aW9uSWRlbnRpZmllcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgb3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFyblByb3BzIHtcblx0LyoqIFRoZSBDZW50cmFsaXphdGlvblJ1bGVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjZW50cmFsaXphdGlvblJ1bGVOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgb3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2VudHJhbGl6YXRpb25SdWxlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNlbnRyYWxpemF0aW9uUnVsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIG9yZ2FuaXphdGlvbi10ZWxlbWV0cnktcnVsZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblByb3BzIHtcblx0LyoqIFRoZSBUZWxlbWV0cnlSdWxlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdGVsZW1ldHJ5UnVsZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFRlbGVtZXRyeVJ1bGVOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdGVsZW1ldHJ5UnVsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHMzdGFibGVpbnRlZ3JhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluUzN0YWJsZWludGVncmF0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXIgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBzM3RhYmxlaW50ZWdyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pblMzdGFibGVpbnRlZ3JhdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUzNUYWJsZUludGVncmF0aW9uSWRlbnRpZmllciBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRlbGVtZXRyeS1waXBlbGluZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluVGVsZW1ldHJ5UGlwZWxpbmVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgVGVsZW1ldHJ5UGlwZWxpbmVJZGVudGlmaWVyIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlQaXBlbGluZUlkZW50aWZpZXI6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBUZWxlbWV0cnlQaXBlbGluZUlkZW50aWZpZXIgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlQaXBlbGluZUlkZW50aWZpZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRlbGVtZXRyeS1ydWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlSdWxlQXJuUHJvcHMge1xuXHQvKiogVGhlIFRlbGVtZXRyeVJ1bGVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlSdWxlTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHRlbGVtZXRyeS1ydWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlSdWxlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBUZWxlbWV0cnlSdWxlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHRlbGVtZXRyeVJ1bGVOYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IERhdGFzZXRJbnRlZ3JhdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXRhc2V0LWludGVncmF0aW9uXFwvKD88ZGF0YXNldEludGVncmF0aW9uSWRlbnRpZmllcj5bXjovP10rKSQvO1xuY29uc3QgT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOm9yZ2FuaXphdGlvbi1jZW50cmFsaXphdGlvbi1ydWxlXFwvKD88Y2VudHJhbGl6YXRpb25SdWxlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGVcXC8oPzx0ZWxlbWV0cnlSdWxlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgUzN0YWJsZWludGVncmF0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnMzdGFibGVpbnRlZ3JhdGlvblxcLyg/PHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI+W146Lz9dKykkLztcbmNvbnN0IFRlbGVtZXRyeVBpcGVsaW5lQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnRlbGVtZXRyeS1waXBlbGluZVxcLyg/PHRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcj5bXjovP10rKSQvO1xuY29uc3QgVGVsZW1ldHJ5UnVsZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp0ZWxlbWV0cnktcnVsZVxcLyg/PHRlbGVtZXRyeVJ1bGVOYW1lPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3Igb2JzZXJ2YWJpbGl0eWFkbWluIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmFiaWxpdHlhZG1pblJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGF0YXNldC1pbnRlZ3JhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXRhc2V0SW50ZWdyYXRpb24oXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pbkRhdGFzZXRJbnRlZ3JhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkYXRhc2V0LWludGVncmF0aW9uLyR7cHJvcHMuZGF0YXNldEludGVncmF0aW9uSWRlbnRpZmllcn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGF0YXNldC1pbnRlZ3JhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGF0YXNldEludGVncmF0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhdGFzZXRJbnRlZ3JhdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYXRhc2V0LWludGVncmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhdGFzZXRJbnRlZ3JhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2JzZXJ2YWJpbGl0eWFkbWluRGF0YXNldEludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXRhc2V0SW50ZWdyYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YXNldC1pbnRlZ3JhdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyOiBtYXRjaC5ncm91cHMhLmRhdGFzZXRJbnRlZ3JhdGlvbklkZW50aWZpZXIsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgb3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlKFxuXHRcdHByb3BzOiBPYnNlcnZhYmlsaXR5YWRtaW5Pcmdhbml6YXRpb25DZW50cmFsaXphdGlvblJ1bGVBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpvYnNlcnZhYmlsaXR5YWRtaW46JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06b3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUvJHtwcm9wcy5jZW50cmFsaXphdGlvblJ1bGVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBvcmdhbml6YXRpb24tY2VudHJhbGl6YXRpb24tcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBvcmdhbml6YXRpb24tY2VudHJhbGl6YXRpb24tcnVsZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VPcmdhbml6YXRpb25DZW50cmFsaXphdGlvblJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG9yZ2FuaXphdGlvbi1jZW50cmFsaXphdGlvbi1ydWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNlbnRyYWxpemF0aW9uUnVsZU5hbWU6IG1hdGNoLmdyb3VwcyEuY2VudHJhbGl6YXRpb25SdWxlTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZShcblx0XHRwcm9wczogT2JzZXJ2YWJpbGl0eWFkbWluT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUvJHtwcm9wcy50ZWxlbWV0cnlSdWxlTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRPcmdhbml6YXRpb25UZWxlbWV0cnlSdWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHRlbGVtZXRyeVJ1bGVOYW1lOiBtYXRjaC5ncm91cHMhLnRlbGVtZXRyeVJ1bGVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHMzdGFibGVpbnRlZ3JhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzM3RhYmxlaW50ZWdyYXRpb24oXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pblMzdGFibGVpbnRlZ3JhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzM3RhYmxlaW50ZWdyYXRpb24vJHtwcm9wcy5zM1RhYmxlSW50ZWdyYXRpb25JZGVudGlmaWVyfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBzM3RhYmxlaW50ZWdyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFMzdGFibGVpbnRlZ3JhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTM3RhYmxlaW50ZWdyYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgczN0YWJsZWludGVncmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVMzdGFibGVpbnRlZ3JhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2JzZXJ2YWJpbGl0eWFkbWluUzN0YWJsZWludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTM3RhYmxlaW50ZWdyYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgczN0YWJsZWludGVncmF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI6IG1hdGNoLmdyb3VwcyEuczNUYWJsZUludGVncmF0aW9uSWRlbnRpZmllcixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcGlwZWxpbmUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgdGVsZW1ldHJ5UGlwZWxpbmUoXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2JzZXJ2YWJpbGl0eWFkbWluOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnRlbGVtZXRyeS1waXBlbGluZS8ke3Byb3BzLnRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgdGVsZW1ldHJ5LXBpcGVsaW5lIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRUZWxlbWV0cnlQaXBlbGluZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUZWxlbWV0cnlQaXBlbGluZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlVGVsZW1ldHJ5UGlwZWxpbmVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBUZWxlbWV0cnlQaXBlbGluZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dGVsZW1ldHJ5UGlwZWxpbmVJZGVudGlmaWVyOiBtYXRjaC5ncm91cHMhLnRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0ZWxlbWV0cnlSdWxlKHByb3BzOiBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlSdWxlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp0ZWxlbWV0cnktcnVsZS8ke3Byb3BzLnRlbGVtZXRyeVJ1bGVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkVGVsZW1ldHJ5UnVsZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUZWxlbWV0cnlSdWxlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHRlbGVtZXRyeS1ydWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVRlbGVtZXRyeVJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFRlbGVtZXRyeVJ1bGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdGVsZW1ldHJ5LXJ1bGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dGVsZW1ldHJ5UnVsZU5hbWU6IG1hdGNoLmdyb3VwcyEudGVsZW1ldHJ5UnVsZU5hbWUsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Igb2JzZXJ2YWJpbGl0eWFkbWluLlxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJpbGl0eWFkbWluT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVEYXRhc2V0SW50ZWdyYXRpb25cIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlUzNUYWJsZUludGVncmF0aW9uXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVUZWxlbWV0cnlQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVUZWxlbWV0cnlQaXBlbGluZVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJjbG91ZHdhdGNoOlB1dFBpcGVsaW5lUnVsZVwiLFxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVRlbGVtZXRyeVJ1bGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUZWxlbWV0cnlSdWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVUZWxlbWV0cnlSdWxlXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEYXRhc2V0SW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhc2V0SW50ZWdyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZURhdGFzZXRJbnRlZ3JhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVTM1RhYmxlSW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTM1RhYmxlSW50ZWdyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVUZWxlbWV0cnlQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lOiBzdHJpbmdbXSA9IFtcblx0XHRcImNsb3Vkd2F0Y2g6RGVsZXRlUGlwZWxpbmVSdWxlXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlVGVsZW1ldHJ5UGlwZWxpbmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlVGVsZW1ldHJ5UnVsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVJ1bGU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREYXRhc2V0SW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERhdGFzZXRJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0RGF0YXNldEludGVncmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFMzVGFibGVJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UzNUYWJsZUludGVncmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRTM1RhYmxlSW50ZWdyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VGVsZW1ldHJ5UGlwZWxpbmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRlbGVtZXRyeVBpcGVsaW5lOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlQaXBlbGluZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUZWxlbWV0cnlSdWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUZWxlbWV0cnlSdWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlSdWxlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2VudHJhbGl6YXRpb25SdWxlc0Zvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFzZXRJbnRlZ3JhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YXNldEludGVncmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdERhdGFzZXRJbnRlZ3JhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlc291cmNlVGVsZW1ldHJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5OiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UmVzb3VyY2VUZWxlbWV0cnlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UmVzb3VyY2VUZWxlbWV0cnlGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFMzVGFibGVJbnRlZ3JhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UzNUYWJsZUludGVncmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFMzVGFibGVJbnRlZ3JhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRlbGVtZXRyeVBpcGVsaW5lcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlQaXBlbGluZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUZWxlbWV0cnlQaXBlbGluZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRlbGVtZXRyeVJ1bGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRlbGVtZXRyeVJ1bGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXNGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRUZWxlbWV0cnlFbnJpY2htZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUZWxlbWV0cnlFbnJpY2htZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUVucmljaG1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFRlbGVtZXRyeUVucmljaG1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wVGVsZW1ldHJ5RW5yaWNobWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RvcFRlbGVtZXRyeUVucmljaG1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RvcFRlbGVtZXRyeUV2YWx1YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRlc3RUZWxlbWV0cnlQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlc3RUZWxlbWV0cnlQaXBlbGluZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGVzdFRlbGVtZXRyeVBpcGVsaW5lXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVbnRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZURhdGFzZXRJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURhdGFzZXRJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVEYXRhc2V0SW50ZWdyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlQaXBlbGluZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImNsb3Vkd2F0Y2g6UHV0UGlwZWxpbmVSdWxlXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBWYWxpZGF0ZVRlbGVtZXRyeVBpcGVsaW5lQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb25cIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIG9ic2VydmFiaWxpdHlhZG1pbi5cbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmFiaWxpdHlhZG1pbkNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID1cblx0XHRbXG5cdFx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25cIixcblx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50XCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnNcIixcblx0XHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFzZXRJbnRlZ3JhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTb3VyY2VUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVUZWxlbWV0cnlSdWxlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID1cblx0XHRbXCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25SdWxlTmFtZVwiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RSZXNvdXJjZVRlbGVtZXRyeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVzb3VyY2VUZWxlbWV0cnlDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0UmVzb3VyY2VUZWxlbWV0cnlGb3JPcmdhbml6YXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1wib2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnNcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1xuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25cIixcblx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50XCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnNcIixcblx0XHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlSdWxlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiLFxuXHRdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkJhY2t1cFJlZ2lvbiAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fQkFDS1VQX1JFR0lPTiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uQWNjb3VudCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fREVTVElOQVRJT05fQUNDT1VOVCA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvbkFjY291bnRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDRU5UUkFMSVpBVElPTl9ERVNUSU5BVElPTl9SRUdJT04gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25SZWdpb25cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDRU5UUkFMSVpBVElPTl9SVUxFX05BTUUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uUnVsZU5hbWVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fU09VUkNFX0lEID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VSZWdpb25zIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fU09VUkNFX1JFR0lPTlMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlUmVnaW9uc1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogb2JzZXJ2YWJpbGl0eWFkbWluOlNvdXJjZVR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNPVVJDRV9UWVBFID0gXCJvYnNlcnZhYmlsaXR5YWRtaW46U291cmNlVHlwZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogb2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnMgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRBUkdFVF9SRUdJT05TID0gXCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25gLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uQmFja3VwUmVnaW9uKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7IFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uQmFja3VwUmVnaW9uXCI6IHZhbHVlIH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvbkFjY291bnRgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50KFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7XG5cdFx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50XCI6IHZhbHVlLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uYC5cblx0ICovXG5cdHN0YXRpYyBjZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7XG5cdFx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25SZWdpb25cIjogdmFsdWUsXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgb2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uUnVsZU5hbWVgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uUnVsZU5hbWUoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRTdHJpbmdFcXVhbHM6IHsgXCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25SdWxlTmFtZVwiOiB2YWx1ZSB9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgb2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlSWRgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uU291cmNlSWQoXG5cdFx0dmFsdWVzOiBzdHJpbmdbXSxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7XG5cdFx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlSWRcIjogdmFsdWVzLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnNgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uU291cmNlUmVnaW9ucyhcblx0XHR2YWx1ZXM6IHN0cmluZ1tdLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0XCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHtcblx0XHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VSZWdpb25zXCI6IHZhbHVlcyxcblx0XHRcdH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46U291cmNlVHlwZWAuXG5cdCAqL1xuXHRzdGF0aWMgc291cmNlVHlwZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcIm9ic2VydmFiaWxpdHlhZG1pbjpTb3VyY2VUeXBlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFyZ2V0UmVnaW9ucyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
745
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJpbGl0eWFkbWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9vYnNlcnZhYmlsaXR5YWRtaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCx5REFBeUQ7QUFDekQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEseUJBQXlCOztBQUF0Qyw4REFvTUM7OztBQW5NQSw4QkFBOEI7QUFDZCx3Q0FBYyxHQUFHLG9CQUFvQixDQUFDO0FBRXRELHlFQUF5RTtBQUN6RCxpRUFBdUMsR0FDdEQsNERBQTRELENBQUM7QUFDOUQsMERBQTBEO0FBQzFDLGtEQUF3QixHQUN2Qyw2Q0FBNkMsQ0FBQztBQUMvQywwREFBMEQ7QUFDMUMsa0RBQXdCLEdBQ3ZDLDZDQUE2QyxDQUFDO0FBQy9DLHlEQUF5RDtBQUN6QyxpREFBdUIsR0FDdEMsNENBQTRDLENBQUM7QUFDOUMscURBQXFEO0FBQ3JDLDZDQUFtQixHQUNsQyx3Q0FBd0MsQ0FBQztBQUMxQyxvRUFBb0U7QUFDcEQsNERBQWtDLEdBQ2pELHVEQUF1RCxDQUFDO0FBQ3pELHlFQUF5RTtBQUN6RCxpRUFBdUMsR0FDdEQsNERBQTRELENBQUM7QUFDOUQsMERBQTBEO0FBQzFDLGtEQUF3QixHQUN2Qyw2Q0FBNkMsQ0FBQztBQUMvQywwREFBMEQ7QUFDMUMsa0RBQXdCLEdBQ3ZDLDZDQUE2QyxDQUFDO0FBQy9DLHlEQUF5RDtBQUN6QyxpREFBdUIsR0FDdEMsNENBQTRDLENBQUM7QUFDOUMscURBQXFEO0FBQ3JDLDZDQUFtQixHQUNsQyx3Q0FBd0MsQ0FBQztBQUMxQyxvRUFBb0U7QUFDcEQsNERBQWtDLEdBQ2pELHVEQUF1RCxDQUFDO0FBQ3pELHFFQUFxRTtBQUNyRCxvRUFBMEMsR0FDekQseURBQXlELENBQUM7QUFDM0Qsc0RB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REFBd0IsR0FDdkMsMkNBQTJDLENBQUM7QUFDN0Msb0ZBQW9GO0FBQ3BFLDBEQUE2QixHQUM1QyxnREFBZ0QsQ0FBQztBQUNsRCw0REFBNEQ7QUFDNUMsd0NBQVcsR0FBRywrQkFBK0IsQ0FBQztBQUM5RCwrREFBK0Q7QUFDL0MsMkNBQWMsR0FBRyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL29ic2VydmFiaWxpdHlhZG1pbi5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgb2JzZXJ2YWJpbGl0eWFkbWluIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwib2JzZXJ2YWJpbGl0eWFkbWluXCI7XG5cblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZURhdGFzZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVEYXRhc2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVTM1RhYmxlSW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUZWxlbWV0cnlQaXBlbGluZSA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZURhdGFzZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGF0YXNldEludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVEYXRhc2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUzNUYWJsZUludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVTM1RhYmxlSW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVUZWxlbWV0cnlQaXBlbGluZSA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlVGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXREYXRhc2V0SW50ZWdyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERhdGFzZXRJbnRlZ3JhdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0RGF0YXNldEludGVncmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFMzVGFibGVJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UzNUYWJsZUludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRTM1RhYmxlSW50ZWdyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1c1wiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5UGlwZWxpbmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeVBpcGVsaW5lID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlQaXBlbGluZVwiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlSdWxlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRUZWxlbWV0cnlSdWxlID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlSdWxlXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtMaXN0XSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDZW50cmFsaXphdGlvblJ1bGVzRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0Q2VudHJhbGl6YXRpb25SdWxlc0Zvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0RGF0YXNldEludGVncmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRJbnRlZ3JhdGlvbnMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3REYXRhc2V0SW50ZWdyYXRpb25zXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RSZXNvdXJjZVRlbGVtZXRyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5ID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UmVzb3VyY2VUZWxlbWV0cnlcIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVzb3VyY2VUZWxlbWV0cnlGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UzNUYWJsZUludGVncmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFMzVGFibGVJbnRlZ3JhdGlvbnMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RTM1RhYmxlSW50ZWdyYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gb2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtMaXN0XSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVBpcGVsaW5lcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRlbGVtZXRyeVBpcGVsaW5lcyA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVBpcGVsaW5lc1wiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlSdWxlcyA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUZWxlbWV0cnlSdWxlc1wiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXNGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlSdWxlc0Zvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUVucmljaG1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RW5yaWNobWVudCA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFbnJpY2htZW50XCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RW5yaWNobWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUVucmljaG1lbnQgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFbnJpY2htZW50XCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbVGFnZ2luZ10gb2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOlRlc3RUZWxlbWV0cnlQaXBlbGluZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVzdFRlbGVtZXRyeVBpcGVsaW5lID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUZXN0VGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtUYWdnaW5nXSBvYnNlcnZhYmlsaXR5YWRtaW46VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZURhdGFzZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGF0YXNldEludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVEYXRhc2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlQaXBlbGluZSA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46VmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFZhbGlkYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25maWd1cmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpWYWxpZGF0ZVRlbGVtZXRyeVBpcGVsaW5lQ29uZmlndXJhdGlvblwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0RGF0YXNldEludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0UzNUYWJsZUludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLmFjdGlvbkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXMsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5hY3Rpb25HZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5UGlwZWxpbmUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5hY3Rpb25HZXRUZWxlbWV0cnlSdWxlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RSZXNvdXJjZVRlbGVtZXRyeSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlRlc3RUZWxlbWV0cnlQaXBlbGluZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlZhbGlkYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25maWd1cmF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlRGF0YXNldEludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5DcmVhdGVUZWxlbWV0cnlSdWxlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZURhdGFzZXRJbnRlZ3JhdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuRGVsZXRlVGVsZW1ldHJ5UnVsZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUVucmljaG1lbnQsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUV2YWx1YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdG9wVGVsZW1ldHJ5RW5yaWNobWVudCxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVEYXRhc2V0SW50ZWdyYXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVUZWxlbWV0cnlQaXBlbGluZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlVwZGF0ZVRlbGVtZXRyeVJ1bGUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RDZW50cmFsaXphdGlvblJ1bGVzRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdERhdGFzZXRJbnRlZ3JhdGlvbnMsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5MaXN0UzNUYWJsZUludGVncmF0aW9ucyxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5MaXN0VGVsZW1ldHJ5UGlwZWxpbmVzLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdFRlbGVtZXRyeVJ1bGVzLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRhdGFzZXQtaW50ZWdyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbkRhdGFzZXRJbnRlZ3JhdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBEYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGF0YXNldC1pbnRlZ3JhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluRGF0YXNldEludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGF0YXNldEludGVncmF0aW9uSWRlbnRpZmllcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgb3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFyblByb3BzIHtcblx0LyoqIFRoZSBDZW50cmFsaXphdGlvblJ1bGVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjZW50cmFsaXphdGlvblJ1bGVOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgb3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2VudHJhbGl6YXRpb25SdWxlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNlbnRyYWxpemF0aW9uUnVsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIG9yZ2FuaXphdGlvbi10ZWxlbWV0cnktcnVsZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblByb3BzIHtcblx0LyoqIFRoZSBUZWxlbWV0cnlSdWxlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdGVsZW1ldHJ5UnVsZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFRlbGVtZXRyeVJ1bGVOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdGVsZW1ldHJ5UnVsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHMzdGFibGVpbnRlZ3JhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluUzN0YWJsZWludGVncmF0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXIgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBzM3RhYmxlaW50ZWdyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pblMzdGFibGVpbnRlZ3JhdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUzNUYWJsZUludGVncmF0aW9uSWRlbnRpZmllciBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRlbGVtZXRyeS1waXBlbGluZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluVGVsZW1ldHJ5UGlwZWxpbmVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgVGVsZW1ldHJ5UGlwZWxpbmVJZGVudGlmaWVyIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlQaXBlbGluZUlkZW50aWZpZXI6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBUZWxlbWV0cnlQaXBlbGluZUlkZW50aWZpZXIgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlQaXBlbGluZUlkZW50aWZpZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRlbGVtZXRyeS1ydWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlSdWxlQXJuUHJvcHMge1xuXHQvKiogVGhlIFRlbGVtZXRyeVJ1bGVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlSdWxlTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHRlbGVtZXRyeS1ydWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlSdWxlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBUZWxlbWV0cnlSdWxlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHRlbGVtZXRyeVJ1bGVOYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IERhdGFzZXRJbnRlZ3JhdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXRhc2V0LWludGVncmF0aW9uXFwvKD88ZGF0YXNldEludGVncmF0aW9uSWRlbnRpZmllcj5bXjovP10rKSQvO1xuY29uc3QgT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOm9yZ2FuaXphdGlvbi1jZW50cmFsaXphdGlvbi1ydWxlXFwvKD88Y2VudHJhbGl6YXRpb25SdWxlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGVcXC8oPzx0ZWxlbWV0cnlSdWxlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgUzN0YWJsZWludGVncmF0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnMzdGFibGVpbnRlZ3JhdGlvblxcLyg/PHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI+W146Lz9dKykkLztcbmNvbnN0IFRlbGVtZXRyeVBpcGVsaW5lQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnRlbGVtZXRyeS1waXBlbGluZVxcLyg/PHRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcj5bXjovP10rKSQvO1xuY29uc3QgVGVsZW1ldHJ5UnVsZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp0ZWxlbWV0cnktcnVsZVxcLyg/PHRlbGVtZXRyeVJ1bGVOYW1lPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3Igb2JzZXJ2YWJpbGl0eWFkbWluIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmFiaWxpdHlhZG1pblJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGF0YXNldC1pbnRlZ3JhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXRhc2V0SW50ZWdyYXRpb24oXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pbkRhdGFzZXRJbnRlZ3JhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkYXRhc2V0LWludGVncmF0aW9uLyR7cHJvcHMuZGF0YXNldEludGVncmF0aW9uSWRlbnRpZmllcn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGF0YXNldC1pbnRlZ3JhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGF0YXNldEludGVncmF0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhdGFzZXRJbnRlZ3JhdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYXRhc2V0LWludGVncmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhdGFzZXRJbnRlZ3JhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2JzZXJ2YWJpbGl0eWFkbWluRGF0YXNldEludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXRhc2V0SW50ZWdyYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YXNldC1pbnRlZ3JhdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyOiBtYXRjaC5ncm91cHMhLmRhdGFzZXRJbnRlZ3JhdGlvbklkZW50aWZpZXIsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgb3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlKFxuXHRcdHByb3BzOiBPYnNlcnZhYmlsaXR5YWRtaW5Pcmdhbml6YXRpb25DZW50cmFsaXphdGlvblJ1bGVBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpvYnNlcnZhYmlsaXR5YWRtaW46JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06b3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUvJHtwcm9wcy5jZW50cmFsaXphdGlvblJ1bGVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBvcmdhbml6YXRpb24tY2VudHJhbGl6YXRpb24tcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBvcmdhbml6YXRpb24tY2VudHJhbGl6YXRpb24tcnVsZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VPcmdhbml6YXRpb25DZW50cmFsaXphdGlvblJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG9yZ2FuaXphdGlvbi1jZW50cmFsaXphdGlvbi1ydWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNlbnRyYWxpemF0aW9uUnVsZU5hbWU6IG1hdGNoLmdyb3VwcyEuY2VudHJhbGl6YXRpb25SdWxlTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZShcblx0XHRwcm9wczogT2JzZXJ2YWJpbGl0eWFkbWluT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUvJHtwcm9wcy50ZWxlbWV0cnlSdWxlTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRPcmdhbml6YXRpb25UZWxlbWV0cnlSdWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHRlbGVtZXRyeVJ1bGVOYW1lOiBtYXRjaC5ncm91cHMhLnRlbGVtZXRyeVJ1bGVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHMzdGFibGVpbnRlZ3JhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzM3RhYmxlaW50ZWdyYXRpb24oXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pblMzdGFibGVpbnRlZ3JhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzM3RhYmxlaW50ZWdyYXRpb24vJHtwcm9wcy5zM1RhYmxlSW50ZWdyYXRpb25JZGVudGlmaWVyfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBzM3RhYmxlaW50ZWdyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFMzdGFibGVpbnRlZ3JhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTM3RhYmxlaW50ZWdyYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgczN0YWJsZWludGVncmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVMzdGFibGVpbnRlZ3JhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2JzZXJ2YWJpbGl0eWFkbWluUzN0YWJsZWludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTM3RhYmxlaW50ZWdyYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgczN0YWJsZWludGVncmF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI6IG1hdGNoLmdyb3VwcyEuczNUYWJsZUludGVncmF0aW9uSWRlbnRpZmllcixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcGlwZWxpbmUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgdGVsZW1ldHJ5UGlwZWxpbmUoXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2JzZXJ2YWJpbGl0eWFkbWluOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnRlbGVtZXRyeS1waXBlbGluZS8ke3Byb3BzLnRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgdGVsZW1ldHJ5LXBpcGVsaW5lIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRUZWxlbWV0cnlQaXBlbGluZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUZWxlbWV0cnlQaXBlbGluZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlVGVsZW1ldHJ5UGlwZWxpbmVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBUZWxlbWV0cnlQaXBlbGluZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dGVsZW1ldHJ5UGlwZWxpbmVJZGVudGlmaWVyOiBtYXRjaC5ncm91cHMhLnRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0ZWxlbWV0cnlSdWxlKHByb3BzOiBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlSdWxlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp0ZWxlbWV0cnktcnVsZS8ke3Byb3BzLnRlbGVtZXRyeVJ1bGVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkVGVsZW1ldHJ5UnVsZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUZWxlbWV0cnlSdWxlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHRlbGVtZXRyeS1ydWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVRlbGVtZXRyeVJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFRlbGVtZXRyeVJ1bGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdGVsZW1ldHJ5LXJ1bGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dGVsZW1ldHJ5UnVsZU5hbWU6IG1hdGNoLmdyb3VwcyEudGVsZW1ldHJ5UnVsZU5hbWUsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Igb2JzZXJ2YWJpbGl0eWFkbWluLlxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJpbGl0eWFkbWluT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVEYXRhc2V0SW50ZWdyYXRpb25cIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlUzNUYWJsZUludGVncmF0aW9uXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVUZWxlbWV0cnlQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVUZWxlbWV0cnlQaXBlbGluZVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlVGVsZW1ldHJ5UnVsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvblwiLFxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZURhdGFzZXRJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURhdGFzZXRJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlRGF0YXNldEludGVncmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlUzNUYWJsZUludGVncmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGVsZW1ldHJ5UGlwZWxpbmU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVRlbGVtZXRyeVJ1bGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVUZWxlbWV0cnlSdWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVUZWxlbWV0cnlSdWxlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGF0YXNldEludGVncmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREYXRhc2V0SW50ZWdyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldERhdGFzZXRJbnRlZ3JhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRTM1RhYmxlSW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFMzVGFibGVJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0UzNUYWJsZUludGVncmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRlbGVtZXRyeUVucmljaG1lbnRTdGF0dXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRlbGVtZXRyeUVucmljaG1lbnRTdGF0dXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUVucmljaG1lbnRTdGF0dXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VGVsZW1ldHJ5RXZhbHVhdGlvblN0YXR1cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0VGVsZW1ldHJ5RXZhbHVhdGlvblN0YXR1czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RXZhbHVhdGlvblN0YXR1c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRlbGVtZXRyeVBpcGVsaW5lIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUZWxlbWV0cnlQaXBlbGluZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5UGlwZWxpbmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VGVsZW1ldHJ5UnVsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0VGVsZW1ldHJ5UnVsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5UnVsZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDZW50cmFsaXphdGlvblJ1bGVzRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RDZW50cmFsaXphdGlvblJ1bGVzRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REYXRhc2V0SW50ZWdyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRJbnRlZ3JhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3REYXRhc2V0SW50ZWdyYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZXNvdXJjZVRlbGVtZXRyeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXNvdXJjZVRlbGVtZXRyeTogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFJlc291cmNlVGVsZW1ldHJ5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTM1RhYmxlSW50ZWdyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFMzVGFibGVJbnRlZ3JhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RTM1RhYmxlSW50ZWdyYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGFnc0ZvclJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUZWxlbWV0cnlQaXBlbGluZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGVsZW1ldHJ5UGlwZWxpbmVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UGlwZWxpbmVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUZWxlbWV0cnlSdWxlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlSdWxlczogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVJ1bGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUZWxlbWV0cnlSdWxlc0Zvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlSdWxlc0Zvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0VGVsZW1ldHJ5RW5yaWNobWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RW5yaWNobWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFbnJpY2htZW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BUZWxlbWV0cnlFbnJpY2htZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUVucmljaG1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFbnJpY2htZW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUZXN0VGVsZW1ldHJ5UGlwZWxpbmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUZXN0VGVsZW1ldHJ5UGlwZWxpbmU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRlc3RUZWxlbWV0cnlQaXBlbGluZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VW50YWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVEYXRhc2V0SW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVEYXRhc2V0SW50ZWdyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlRGF0YXNldEludGVncmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVRlbGVtZXRyeVBpcGVsaW5lIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmU6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBWYWxpZGF0ZVRlbGVtZXRyeVBpcGVsaW5lQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb25cIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIG9ic2VydmFiaWxpdHlhZG1pbi5cbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmFiaWxpdHlhZG1pbkNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID1cblx0XHRbXG5cdFx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25cIixcblx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50XCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnNcIixcblx0XHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFzZXRJbnRlZ3JhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTb3VyY2VUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVUZWxlbWV0cnlSdWxlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID1cblx0XHRbXCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25SdWxlTmFtZVwiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RSZXNvdXJjZVRlbGVtZXRyeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVzb3VyY2VUZWxlbWV0cnlDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0UmVzb3VyY2VUZWxlbWV0cnlGb3JPcmdhbml6YXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1wib2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnNcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1xuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25cIixcblx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50XCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnNcIixcblx0XHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlSdWxlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiLFxuXHRdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkJhY2t1cFJlZ2lvbiAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fQkFDS1VQX1JFR0lPTiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uQWNjb3VudCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fREVTVElOQVRJT05fQUNDT1VOVCA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvbkFjY291bnRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDRU5UUkFMSVpBVElPTl9ERVNUSU5BVElPTl9SRUdJT04gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25SZWdpb25cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDRU5UUkFMSVpBVElPTl9SVUxFX05BTUUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uUnVsZU5hbWVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fU09VUkNFX0lEID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VSZWdpb25zIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fU09VUkNFX1JFR0lPTlMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlUmVnaW9uc1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogb2JzZXJ2YWJpbGl0eWFkbWluOlNvdXJjZVR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNPVVJDRV9UWVBFID0gXCJvYnNlcnZhYmlsaXR5YWRtaW46U291cmNlVHlwZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogb2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnMgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRBUkdFVF9SRUdJT05TID0gXCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25gLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uQmFja3VwUmVnaW9uKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7IFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uQmFja3VwUmVnaW9uXCI6IHZhbHVlIH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvbkFjY291bnRgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50KFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7XG5cdFx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50XCI6IHZhbHVlLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uYC5cblx0ICovXG5cdHN0YXRpYyBjZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7XG5cdFx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25SZWdpb25cIjogdmFsdWUsXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgb2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uUnVsZU5hbWVgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uUnVsZU5hbWUoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRTdHJpbmdFcXVhbHM6IHsgXCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25SdWxlTmFtZVwiOiB2YWx1ZSB9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgb2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlSWRgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uU291cmNlSWQoXG5cdFx0dmFsdWVzOiBzdHJpbmdbXSxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7XG5cdFx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlSWRcIjogdmFsdWVzLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnNgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uU291cmNlUmVnaW9ucyhcblx0XHR2YWx1ZXM6IHN0cmluZ1tdLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0XCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHtcblx0XHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VSZWdpb25zXCI6IHZhbHVlcyxcblx0XHRcdH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46U291cmNlVHlwZWAuXG5cdCAqL1xuXHRzdGF0aWMgc291cmNlVHlwZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcIm9ic2VydmFiaWxpdHlhZG1pbjpTb3VyY2VUeXBlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFyZ2V0UmVnaW9ucyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
@@ -16,7 +16,7 @@ class OdbActions {
16
16
  }
17
17
  exports.OdbActions = OdbActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- OdbActions[_a] = { fqn: "@cdk_utils/iam.odb.OdbActions", version: "1.29.0" };
19
+ OdbActions[_a] = { fqn: "@cdk_utils/iam.odb.OdbActions", version: "1.31.0" };
20
20
  /** The IAM service prefix. */
21
21
  OdbActions.SERVICE_PREFIX = "odb";
22
22
  /** [Write] odb:AcceptMarketplaceRegistration */
@@ -600,7 +600,7 @@ class OdbResources {
600
600
  }
601
601
  exports.OdbResources = OdbResources;
602
602
  _b = JSII_RTTI_SYMBOL_1;
603
- OdbResources[_b] = { fqn: "@cdk_utils/iam.odb.OdbResources", version: "1.29.0" };
603
+ OdbResources[_b] = { fqn: "@cdk_utils/iam.odb.OdbResources", version: "1.31.0" };
604
604
  /**
605
605
  * API operation to required IAM actions mapping for odb.
606
606
  */
@@ -608,7 +608,7 @@ class OdbOperations {
608
608
  }
609
609
  exports.OdbOperations = OdbOperations;
610
610
  _c = JSII_RTTI_SYMBOL_1;
611
- OdbOperations[_c] = { fqn: "@cdk_utils/iam.odb.OdbOperations", version: "1.29.0" };
611
+ OdbOperations[_c] = { fqn: "@cdk_utils/iam.odb.OdbOperations", version: "1.31.0" };
612
612
  /** IAM actions required for the AcceptMarketplaceRegistration API call. */
613
613
  OdbOperations.AcceptMarketplaceRegistration = [
614
614
  "odb:AcceptMarketplaceRegistration",
@@ -912,7 +912,7 @@ class OdbConditions {
912
912
  }
913
913
  exports.OdbConditions = OdbConditions;
914
914
  _d = JSII_RTTI_SYMBOL_1;
915
- OdbConditions[_d] = { fqn: "@cdk_utils/iam.odb.OdbConditions", version: "1.29.0" };
915
+ OdbConditions[_d] = { fqn: "@cdk_utils/iam.odb.OdbConditions", version: "1.31.0" };
916
916
  /** Condition keys applicable to the CreateAutonomousDatabase action. */
917
917
  OdbConditions.CreateAutonomousDatabaseConditionKeys = [
918
918
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class OmicsActions {
16
16
  }
17
17
  exports.OmicsActions = OmicsActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- OmicsActions[_a] = { fqn: "@cdk_utils/iam.omics.OmicsActions", version: "1.29.0" };
19
+ OmicsActions[_a] = { fqn: "@cdk_utils/iam.omics.OmicsActions", version: "1.31.0" };
20
20
  /** The IAM service prefix. */
21
21
  OmicsActions.SERVICE_PREFIX = "omics";
22
22
  /** [Write] omics:AbortMultipartReadSetUpload */
@@ -800,7 +800,7 @@ class OmicsResources {
800
800
  }
801
801
  exports.OmicsResources = OmicsResources;
802
802
  _b = JSII_RTTI_SYMBOL_1;
803
- OmicsResources[_b] = { fqn: "@cdk_utils/iam.omics.OmicsResources", version: "1.29.0" };
803
+ OmicsResources[_b] = { fqn: "@cdk_utils/iam.omics.OmicsResources", version: "1.31.0" };
804
804
  /**
805
805
  * API operation to required IAM actions mapping for omics.
806
806
  */
@@ -808,7 +808,7 @@ class OmicsOperations {
808
808
  }
809
809
  exports.OmicsOperations = OmicsOperations;
810
810
  _c = JSII_RTTI_SYMBOL_1;
811
- OmicsOperations[_c] = { fqn: "@cdk_utils/iam.omics.OmicsOperations", version: "1.29.0" };
811
+ OmicsOperations[_c] = { fqn: "@cdk_utils/iam.omics.OmicsOperations", version: "1.31.0" };
812
812
  /** IAM actions required for the AbortMultipartReadSetUpload API call. */
813
813
  OmicsOperations.AbortMultipartReadSetUpload = [
814
814
  "omics:AbortMultipartReadSetUpload",
@@ -1177,7 +1177,7 @@ class OmicsConditions {
1177
1177
  }
1178
1178
  exports.OmicsConditions = OmicsConditions;
1179
1179
  _d = JSII_RTTI_SYMBOL_1;
1180
- OmicsConditions[_d] = { fqn: "@cdk_utils/iam.omics.OmicsConditions", version: "1.29.0" };
1180
+ OmicsConditions[_d] = { fqn: "@cdk_utils/iam.omics.OmicsConditions", version: "1.31.0" };
1181
1181
  /** Condition keys applicable to the CreateAnnotationStore action. */
1182
1182
  OmicsConditions.CreateAnnotationStoreConditionKeys = [
1183
1183
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class OneActions {
16
16
  }
17
17
  exports.OneActions = OneActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- OneActions[_a] = { fqn: "@cdk_utils/iam.one.OneActions", version: "1.29.0" };
19
+ OneActions[_a] = { fqn: "@cdk_utils/iam.one.OneActions", version: "1.31.0" };
20
20
  /** The IAM service prefix. */
21
21
  OneActions.SERVICE_PREFIX = "one";
22
22
  /** [Write] one:CreateDeviceActivationQrCode */
@@ -270,7 +270,7 @@ class OneResources {
270
270
  }
271
271
  exports.OneResources = OneResources;
272
272
  _b = JSII_RTTI_SYMBOL_1;
273
- OneResources[_b] = { fqn: "@cdk_utils/iam.one.OneResources", version: "1.29.0" };
273
+ OneResources[_b] = { fqn: "@cdk_utils/iam.one.OneResources", version: "1.31.0" };
274
274
  /**
275
275
  * Condition key constants and builders for one.
276
276
  */
@@ -296,7 +296,7 @@ class OneConditions {
296
296
  }
297
297
  exports.OneConditions = OneConditions;
298
298
  _c = JSII_RTTI_SYMBOL_1;
299
- OneConditions[_c] = { fqn: "@cdk_utils/iam.one.OneConditions", version: "1.29.0" };
299
+ OneConditions[_c] = { fqn: "@cdk_utils/iam.one.OneConditions", version: "1.31.0" };
300
300
  /** Condition keys applicable to the CreateDeviceActivationQrCode action. */
301
301
  OneConditions.CreateDeviceActivationQrCodeConditionKeys = [
302
302
  "aws:ResourceTag/${TagKey}",
@@ -16,7 +16,7 @@ class OpenSearchActions {
16
16
  }
17
17
  exports.OpenSearchActions = OpenSearchActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- OpenSearchActions[_a] = { fqn: "@cdk_utils/iam.opensearch.OpenSearchActions", version: "1.29.0" };
19
+ OpenSearchActions[_a] = { fqn: "@cdk_utils/iam.opensearch.OpenSearchActions", version: "1.31.0" };
20
20
  /** The IAM service prefix. */
21
21
  OpenSearchActions.SERVICE_PREFIX = "opensearch";
22
22
  /** [PermissionManagement] opensearch:ApplicationAccessAll */
@@ -131,7 +131,7 @@ class OpenSearchResources {
131
131
  }
132
132
  exports.OpenSearchResources = OpenSearchResources;
133
133
  _b = JSII_RTTI_SYMBOL_1;
134
- OpenSearchResources[_b] = { fqn: "@cdk_utils/iam.opensearch.OpenSearchResources", version: "1.29.0" };
134
+ OpenSearchResources[_b] = { fqn: "@cdk_utils/iam.opensearch.OpenSearchResources", version: "1.31.0" };
135
135
  /**
136
136
  * API operation to required IAM actions mapping for opensearch.
137
137
  */
@@ -139,7 +139,7 @@ class OpenSearchOperations {
139
139
  }
140
140
  exports.OpenSearchOperations = OpenSearchOperations;
141
141
  _c = JSII_RTTI_SYMBOL_1;
142
- OpenSearchOperations[_c] = { fqn: "@cdk_utils/iam.opensearch.OpenSearchOperations", version: "1.29.0" };
142
+ OpenSearchOperations[_c] = { fqn: "@cdk_utils/iam.opensearch.OpenSearchOperations", version: "1.31.0" };
143
143
  /** IAM actions required for the AcceptInboundConnection API call. */
144
144
  OpenSearchOperations.AcceptInboundConnection = [
145
145
  "es:AcceptInboundConnection",
@@ -16,7 +16,7 @@ class OpsworksCmActions {
16
16
  }
17
17
  exports.OpsworksCmActions = OpsworksCmActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- OpsworksCmActions[_a] = { fqn: "@cdk_utils/iam.opsworks_cm.OpsworksCmActions", version: "1.29.0" };
19
+ OpsworksCmActions[_a] = { fqn: "@cdk_utils/iam.opsworks_cm.OpsworksCmActions", version: "1.31.0" };
20
20
  /** The IAM service prefix. */
21
21
  OpsworksCmActions.SERVICE_PREFIX = "opsworks-cm";
22
22
  /** [Write] opsworks-cm:AssociateNode */
@@ -154,5 +154,5 @@ class OpsworksCmResources {
154
154
  }
155
155
  exports.OpsworksCmResources = OpsworksCmResources;
156
156
  _b = JSII_RTTI_SYMBOL_1;
157
- OpsworksCmResources[_b] = { fqn: "@cdk_utils/iam.opsworks_cm.OpsworksCmResources", version: "1.29.0" };
157
+ OpsworksCmResources[_b] = { fqn: "@cdk_utils/iam.opsworks_cm.OpsworksCmResources", version: "1.31.0" };
158
158
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bzd29ya3MtY20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3NlcnZpY2VzL29wc3dvcmtzLWNtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBQ2hGLDZDQUE2QztBQUM3QywwREFBMEQ7QUFDMUQsa0RBQWtEO0FBQ2xELG9EQUFvRDtBQUNwRCxnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSCxNQUFhLGlCQUFpQjs7QUFBOUIsOENBZ0ZDOzs7QUEvRUEsOEJBQThCO0FBQ2QsZ0NBQWMsR0FBRyxhQUFhLENBQUM7QUFFL0Msd0NBQXdDO0FBQ3hCLCtCQUFhLEdBQUcsMkJBQTJCLENBQUM7QUFDNUQsdUNBQXVDO0FBQ3ZCLDhCQUFZLEdBQUcsMEJBQTBCLENBQUM7QUFDMUQsdUNBQXVDO0FBQ3ZCLDhCQUFZLEdBQUcsMEJBQTBCLENBQUM7QUFDMUQsdUNBQXVDO0FBQ3ZCLDhCQUFZLEdBQUcsMEJBQTBCLENBQUM7QUFDMUQsdUNBQXVDO0FBQ3ZCLDhCQUFZLEdBQUcsMEJBQTBCLENBQUM7QUFDMUQsbURBQW1EO0FBQ25DLDJDQUF5QixHQUN4Qyx1Q0FBdUMsQ0FBQztBQUN6Qyx5Q0FBeUM7QUFDekIsaUNBQWUsR0FBRyw2QkFBNkIsQ0FBQztBQUNoRSx3Q0FBd0M7QUFDeEIsZ0NBQWMsR0FBRyw0QkFBNEIsQ0FBQztBQUM5RCx1REFBdUQ7QUFDdkMsK0NBQTZCLEdBQzVDLDJDQUEyQyxDQUFDO0FBQzdDLHlDQUF5QztBQUN6QixpQ0FBZSxHQUFHLDZCQUE2QixDQUFDO0FBQ2hFLDJDQUEyQztBQUMzQixrQ0FBZ0IsR0FBRyw4QkFBOEIsQ0FBQztBQUNsRSxxREFBcUQ7QUFDckMsNkNBQTJCLEdBQzFDLHlDQUF5QyxDQUFDO0FBQzNDLDZDQUE2QztBQUM3QixxQ0FBbUIsR0FBRyxpQ0FBaUMsQ0FBQztBQUN4RSx3Q0FBd0M7QUFDeEIsK0JBQWEsR0FBRywyQkFBMkIsQ0FBQztB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T0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVc7UUFDaEMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsVUFBVTtZQUNwQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxRQUFRO1NBQ2hDLENBQUM7SUFDSCxDQUFDOztBQTVERixrREE2REMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9vcHN3b3Jrcy1jbS5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgb3Bzd29ya3MtY20gc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE9wc3dvcmtzQ21BY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwib3Bzd29ya3MtY21cIjtcblxuXHQvKiogW1dyaXRlXSBvcHN3b3Jrcy1jbTpBc3NvY2lhdGVOb2RlICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVOb2RlID0gXCJvcHN3b3Jrcy1jbTpBc3NvY2lhdGVOb2RlXCI7XG5cdC8qKiBbV3JpdGVdIG9wc3dvcmtzLWNtOkNyZWF0ZUJhY2t1cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQmFja3VwID0gXCJvcHN3b3Jrcy1jbTpDcmVhdGVCYWNrdXBcIjtcblx0LyoqIFtXcml0ZV0gb3Bzd29ya3MtY206Q3JlYXRlU2VydmVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTZXJ2ZXIgPSBcIm9wc3dvcmtzLWNtOkNyZWF0ZVNlcnZlclwiO1xuXHQvKiogW1dyaXRlXSBvcHN3b3Jrcy1jbTpEZWxldGVCYWNrdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUJhY2t1cCA9IFwib3Bzd29ya3MtY206RGVsZXRlQmFja3VwXCI7XG5cdC8qKiBbV3JpdGVdIG9wc3dvcmtzLWNtOkRlbGV0ZVNlcnZlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU2VydmVyID0gXCJvcHN3b3Jrcy1jbTpEZWxldGVTZXJ2ZXJcIjtcblx0LyoqIFtMaXN0XSBvcHN3b3Jrcy1jbTpEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzID1cblx0XHRcIm9wc3dvcmtzLWNtOkRlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXNcIjtcblx0LyoqIFtMaXN0XSBvcHN3b3Jrcy1jbTpEZXNjcmliZUJhY2t1cHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQmFja3VwcyA9IFwib3Bzd29ya3MtY206RGVzY3JpYmVCYWNrdXBzXCI7XG5cdC8qKiBbTGlzdF0gb3Bzd29ya3MtY206RGVzY3JpYmVFdmVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRXZlbnRzID0gXCJvcHN3b3Jrcy1jbTpEZXNjcmliZUV2ZW50c1wiO1xuXHQvKiogW0xpc3RdIG9wc3dvcmtzLWNtOkRlc2NyaWJlTm9kZUFzc29jaWF0aW9uU3RhdHVzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZU5vZGVBc3NvY2lhdGlvblN0YXR1cyA9XG5cdFx0XCJvcHN3b3Jrcy1jbTpEZXNjcmliZU5vZGVBc3NvY2lhdGlvblN0YXR1c1wiO1xuXHQvKiogW0xpc3RdIG9wc3dvcmtzLWNtOkRlc2NyaWJlU2VydmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTZXJ2ZXJzID0gXCJvcHN3b3Jrcy1jbTpEZXNjcmliZVNlcnZlcnNcIjtcblx0LyoqIFtXcml0ZV0gb3Bzd29ya3MtY206RGlzYXNzb2NpYXRlTm9kZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlTm9kZSA9IFwib3Bzd29ya3MtY206RGlzYXNzb2NpYXRlTm9kZVwiO1xuXHQvKiogW1JlYWRdIG9wc3dvcmtzLWNtOkV4cG9ydFNlcnZlckVuZ2luZUF0dHJpYnV0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRXhwb3J0U2VydmVyRW5naW5lQXR0cmlidXRlID1cblx0XHRcIm9wc3dvcmtzLWNtOkV4cG9ydFNlcnZlckVuZ2luZUF0dHJpYnV0ZVwiO1xuXHQvKiogW1JlYWRdIG9wc3dvcmtzLWNtOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcIm9wc3dvcmtzLWNtOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gb3Bzd29ya3MtY206UmVzdG9yZVNlcnZlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVzdG9yZVNlcnZlciA9IFwib3Bzd29ya3MtY206UmVzdG9yZVNlcnZlclwiO1xuXHQvKiogW1dyaXRlXSBvcHN3b3Jrcy1jbTpTdGFydE1haW50ZW5hbmNlICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydE1haW50ZW5hbmNlID0gXCJvcHN3b3Jrcy1jbTpTdGFydE1haW50ZW5hbmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10gb3Bzd29ya3MtY206VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJvcHN3b3Jrcy1jbTpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIG9wc3dvcmtzLWNtOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcIm9wc3dvcmtzLWNtOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gb3Bzd29ya3MtY206VXBkYXRlU2VydmVyICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTZXJ2ZXIgPSBcIm9wc3dvcmtzLWNtOlVwZGF0ZVNlcnZlclwiO1xuXHQvKiogW1dyaXRlXSBvcHN3b3Jrcy1jbTpVcGRhdGVTZXJ2ZXJFbmdpbmVBdHRyaWJ1dGVzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTZXJ2ZXJFbmdpbmVBdHRyaWJ1dGVzID1cblx0XHRcIm9wc3dvcmtzLWNtOlVwZGF0ZVNlcnZlckVuZ2luZUF0dHJpYnV0ZXNcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPcHN3b3Jrc0NtQWN0aW9ucy5FeHBvcnRTZXJ2ZXJFbmdpbmVBdHRyaWJ1dGUsXG5cdFx0T3Bzd29ya3NDbUFjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPcHN3b3Jrc0NtQWN0aW9ucy5Bc3NvY2lhdGVOb2RlLFxuXHRcdE9wc3dvcmtzQ21BY3Rpb25zLkNyZWF0ZUJhY2t1cCxcblx0XHRPcHN3b3Jrc0NtQWN0aW9ucy5DcmVhdGVTZXJ2ZXIsXG5cdFx0T3Bzd29ya3NDbUFjdGlvbnMuRGVsZXRlQmFja3VwLFxuXHRcdE9wc3dvcmtzQ21BY3Rpb25zLkRlbGV0ZVNlcnZlcixcblx0XHRPcHN3b3Jrc0NtQWN0aW9ucy5EaXNhc3NvY2lhdGVOb2RlLFxuXHRcdE9wc3dvcmtzQ21BY3Rpb25zLlJlc3RvcmVTZXJ2ZXIsXG5cdFx0T3Bzd29ya3NDbUFjdGlvbnMuU3RhcnRNYWludGVuYW5jZSxcblx0XHRPcHN3b3Jrc0NtQWN0aW9ucy5VcGRhdGVTZXJ2ZXIsXG5cdFx0T3Bzd29ya3NDbUFjdGlvbnMuVXBkYXRlU2VydmVyRW5naW5lQXR0cmlidXRlcyxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0T3Bzd29ya3NDbUFjdGlvbnMuRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlcyxcblx0XHRPcHN3b3Jrc0NtQWN0aW9ucy5EZXNjcmliZUJhY2t1cHMsXG5cdFx0T3Bzd29ya3NDbUFjdGlvbnMuRGVzY3JpYmVFdmVudHMsXG5cdFx0T3Bzd29ya3NDbUFjdGlvbnMuRGVzY3JpYmVOb2RlQXNzb2NpYXRpb25TdGF0dXMsXG5cdFx0T3Bzd29ya3NDbUFjdGlvbnMuRGVzY3JpYmVTZXJ2ZXJzLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPcHN3b3Jrc0NtQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRPcHN3b3Jrc0NtQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYmFja3VwIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHN3b3Jrc0NtQmFja3VwQXJuUHJvcHMge1xuXHQvKiogVGhlIFNlcnZlck5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNlcnZlck5hbWU6IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGJhY2t1cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3Bzd29ya3NDbUJhY2t1cEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNlcnZlck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzZXJ2ZXJOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBzZXJ2ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wc3dvcmtzQ21TZXJ2ZXJBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2VydmVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc2VydmVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVuaXF1ZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB1bmlxdWVJZDogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgc2VydmVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHN3b3Jrc0NtU2VydmVyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU2VydmVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHNlcnZlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBVbmlxdWVJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHVuaXF1ZUlkOiBzdHJpbmc7XG59XG5cbmNvbnN0IEJhY2t1cEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvcHN3b3Jrcy1jbTo6KD88YWNjb3VudD5bXjpdKik6YmFja3VwXFwvKD88c2VydmVyTmFtZT5bXjovP10rKS1cXHtEYXRlLWFuZC1UaW1lLVN0YW1wLW9mLUJhY2t1cFxcfSQvO1xuY29uc3QgU2VydmVyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9wc3dvcmtzLWNtOjooPzxhY2NvdW50PlteOl0qKTpzZXJ2ZXJcXC8oPzxzZXJ2ZXJOYW1lPlteOi8/XSspXFwvKD88dW5pcXVlSWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBvcHN3b3Jrcy1jbSByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBPcHN3b3Jrc0NtUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBiYWNrdXAgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYmFja3VwKHByb3BzOiBPcHN3b3Jrc0NtQmFja3VwQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9wc3dvcmtzLWNtOjoke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmJhY2t1cC8ke3Byb3BzLnNlcnZlck5hbWV9LXtEYXRlLWFuZC1UaW1lLVN0YW1wLW9mLUJhY2t1cH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYmFja3VwIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRCYWNrdXBBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQmFja3VwQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGJhY2t1cCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VCYWNrdXBBcm4oYXJuOiBzdHJpbmcpOiBPcHN3b3Jrc0NtQmFja3VwQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBCYWNrdXBBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYmFja3VwIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNlcnZlck5hbWU6IG1hdGNoLmdyb3VwcyEuc2VydmVyTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBzZXJ2ZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc2VydmVyKHByb3BzOiBPcHN3b3Jrc0NtU2VydmVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9wc3dvcmtzLWNtOjoke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnNlcnZlci8ke3Byb3BzLnNlcnZlck5hbWV9LyR7cHJvcHMudW5pcXVlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHNlcnZlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU2VydmVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNlcnZlckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzZXJ2ZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU2VydmVyQXJuKGFybjogc3RyaW5nKTogT3Bzd29ya3NDbVNlcnZlckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU2VydmVyQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNlcnZlciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzZXJ2ZXJOYW1lOiBtYXRjaC5ncm91cHMhLnNlcnZlck5hbWUsXG5cdFx0XHR1bmlxdWVJZDogbWF0Y2guZ3JvdXBzIS51bmlxdWVJZCxcblx0XHR9O1xuXHR9XG59XG4iXX0=