@cdk_utils/iam 1.4.0 → 1.5.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 (459) hide show
  1. package/.jsii +2575 -1141
  2. package/lib/generated/services/a2c.js +1 -1
  3. package/lib/generated/services/a4b.js +3 -3
  4. package/lib/generated/services/access-analyzer.js +4 -4
  5. package/lib/generated/services/account-access.js +4 -4
  6. package/lib/generated/services/account.js +4 -4
  7. package/lib/generated/services/acm-pca.js +4 -4
  8. package/lib/generated/services/acm.js +4 -4
  9. package/lib/generated/services/aco-automation.js +4 -4
  10. package/lib/generated/services/action-recommendations.js +1 -1
  11. package/lib/generated/services/activate.js +1 -1
  12. package/lib/generated/services/agent-registry.js +4 -4
  13. package/lib/generated/services/agentaccess-mcp.js +2 -2
  14. package/lib/generated/services/aidevops.js +4 -4
  15. package/lib/generated/services/aiops.js +4 -4
  16. package/lib/generated/services/airflow-serverless.js +4 -4
  17. package/lib/generated/services/airflow.js +4 -4
  18. package/lib/generated/services/amplify.js +4 -4
  19. package/lib/generated/services/amplifybackend.js +3 -3
  20. package/lib/generated/services/amplifyuibuilder.js +4 -4
  21. package/lib/generated/services/aoss.js +4 -4
  22. package/lib/generated/services/apigateway.js +4 -4
  23. package/lib/generated/services/app-integrations.js +4 -4
  24. package/lib/generated/services/appconfig.js +4 -4
  25. package/lib/generated/services/appfabric.js +4 -4
  26. package/lib/generated/services/appflow.js +4 -4
  27. package/lib/generated/services/application-autoscaling.js +4 -4
  28. package/lib/generated/services/application-signals-mcp.js +3 -3
  29. package/lib/generated/services/application-signals.js +4 -4
  30. package/lib/generated/services/application-transformation.js +1 -1
  31. package/lib/generated/services/applicationinsights.js +3 -3
  32. package/lib/generated/services/appmesh-preview.js +2 -2
  33. package/lib/generated/services/appmesh.js +4 -4
  34. package/lib/generated/services/apprunner.js +4 -4
  35. package/lib/generated/services/appstream.js +4 -4
  36. package/lib/generated/services/appstudio.js +2 -2
  37. package/lib/generated/services/appsync.js +4 -4
  38. package/lib/generated/services/apptest.js +3 -3
  39. package/lib/generated/services/aps.js +4 -4
  40. package/lib/generated/services/arc-region-switch.js +4 -4
  41. package/lib/generated/services/arc-zonal-shift.js +4 -4
  42. package/lib/generated/services/arsenal.js +1 -1
  43. package/lib/generated/services/artifact.js +4 -4
  44. package/lib/generated/services/athena.js +4 -4
  45. package/lib/generated/services/auditmanager.js +4 -4
  46. package/lib/generated/services/autoscaling-plans.js +2 -2
  47. package/lib/generated/services/autoscaling.js +4 -4
  48. package/lib/generated/services/aws-external-anthropic.js +3 -3
  49. package/lib/generated/services/aws-marketplace-management.js +1 -1
  50. package/lib/generated/services/aws-marketplace.js +4 -4
  51. package/lib/generated/services/aws-portal.js +1 -1
  52. package/lib/generated/services/awsconnector.js +1 -1
  53. package/lib/generated/services/b2bi.js +4 -4
  54. package/lib/generated/services/backup-gateway.js +4 -4
  55. package/lib/generated/services/backup-search.js +4 -4
  56. package/lib/generated/services/backup-storage.js +1 -1
  57. package/lib/generated/services/backup.js +4 -4
  58. package/lib/generated/services/batch.js +4 -4
  59. package/lib/generated/services/bcm-dashboards.js +4 -4
  60. package/lib/generated/services/bcm-data-exports.js +4 -4
  61. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  62. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  63. package/lib/generated/services/bedrock-agentcore.js +4 -4
  64. package/lib/generated/services/bedrock-mantle.js +3 -3
  65. package/lib/generated/services/bedrock-websearch.js +2 -2
  66. package/lib/generated/services/bedrock.js +4 -4
  67. package/lib/generated/services/billing.js +4 -4
  68. package/lib/generated/services/billingconductor.js +4 -4
  69. package/lib/generated/services/braket.js +4 -4
  70. package/lib/generated/services/budgets.js +4 -4
  71. package/lib/generated/services/bugbust.js +3 -3
  72. package/lib/generated/services/cases.js +4 -4
  73. package/lib/generated/services/cassandra.js +4 -4
  74. package/lib/generated/services/ce.js +4 -4
  75. package/lib/generated/services/chatbot.js +4 -4
  76. package/lib/generated/services/chime.js +4 -4
  77. package/lib/generated/services/cleanrooms-ml.js +4 -4
  78. package/lib/generated/services/cleanrooms.js +4 -4
  79. package/lib/generated/services/cloud9.js +4 -4
  80. package/lib/generated/services/clouddirectory.js +3 -3
  81. package/lib/generated/services/cloudformation.js +4 -4
  82. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  83. package/lib/generated/services/cloudfront.js +4 -4
  84. package/lib/generated/services/cloudhsm.js +4 -4
  85. package/lib/generated/services/cloudsearch.js +3 -3
  86. package/lib/generated/services/cloudshell.js +3 -3
  87. package/lib/generated/services/cloudtrail-data.js +4 -4
  88. package/lib/generated/services/cloudtrail.js +4 -4
  89. package/lib/generated/services/cloudwatch.js +4 -4
  90. package/lib/generated/services/codeartifact.js +4 -4
  91. package/lib/generated/services/codebuild.js +4 -4
  92. package/lib/generated/services/codecatalyst.js +4 -4
  93. package/lib/generated/services/codecommit.js +4 -4
  94. package/lib/generated/services/codeconnections.js +4 -4
  95. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  96. package/lib/generated/services/codedeploy.js +4 -4
  97. package/lib/generated/services/codeguru-profiler.js +4 -4
  98. package/lib/generated/services/codeguru-reviewer.js +4 -4
  99. package/lib/generated/services/codeguru-security.js +4 -4
  100. package/lib/generated/services/codeguru.js +1 -1
  101. package/lib/generated/services/codepipeline.js +4 -4
  102. package/lib/generated/services/codestar-connections.js +4 -4
  103. package/lib/generated/services/codestar-notifications.js +6 -5
  104. package/lib/generated/services/codestar.js +3 -3
  105. package/lib/generated/services/codewhisperer.js +3 -3
  106. package/lib/generated/services/cognito-identity.js +4 -4
  107. package/lib/generated/services/cognito-idp.js +4 -4
  108. package/lib/generated/services/cognito-sync.js +3 -3
  109. package/lib/generated/services/comprehend.js +4 -4
  110. package/lib/generated/services/comprehendmedical.js +3 -3
  111. package/lib/generated/services/compute-optimizer.js +3 -3
  112. package/lib/generated/services/config.js +4 -4
  113. package/lib/generated/services/connect-campaigns.js +4 -4
  114. package/lib/generated/services/connect.d.ts +10 -0
  115. package/lib/generated/services/connect.js +15 -5
  116. package/lib/generated/services/consoleapp.js +2 -2
  117. package/lib/generated/services/consolidatedbilling.js +1 -1
  118. package/lib/generated/services/controlcatalog.js +3 -3
  119. package/lib/generated/services/controltower.js +4 -4
  120. package/lib/generated/services/cost-optimization-hub.js +2 -2
  121. package/lib/generated/services/cur.js +4 -4
  122. package/lib/generated/services/customer-verification.js +1 -1
  123. package/lib/generated/services/databrew.js +4 -4
  124. package/lib/generated/services/dataexchange.js +4 -4
  125. package/lib/generated/services/datapipeline.js +4 -4
  126. package/lib/generated/services/datasync.js +4 -4
  127. package/lib/generated/services/datazone.js +4 -4
  128. package/lib/generated/services/dax.js +4 -4
  129. package/lib/generated/services/dbqms.js +1 -1
  130. package/lib/generated/services/deadline.js +4 -4
  131. package/lib/generated/services/detective.js +4 -4
  132. package/lib/generated/services/devicefarm.js +4 -4
  133. package/lib/generated/services/devops-guru.js +4 -4
  134. package/lib/generated/services/directconnect.js +4 -4
  135. package/lib/generated/services/discovery.js +3 -3
  136. package/lib/generated/services/dlm.js +4 -4
  137. package/lib/generated/services/dms.js +4 -4
  138. package/lib/generated/services/docdb-elastic.js +4 -4
  139. package/lib/generated/services/drs.d.ts +162 -0
  140. package/lib/generated/services/drs.js +183 -5
  141. package/lib/generated/services/ds-data.js +4 -4
  142. package/lib/generated/services/ds.js +4 -4
  143. package/lib/generated/services/dsql.js +4 -4
  144. package/lib/generated/services/dynamodb.js +4 -4
  145. package/lib/generated/services/ebs.js +4 -4
  146. package/lib/generated/services/ec2-instance-connect.js +4 -4
  147. package/lib/generated/services/ec2.js +4 -4
  148. package/lib/generated/services/ec2messages.js +2 -2
  149. package/lib/generated/services/ecr-public.js +4 -4
  150. package/lib/generated/services/ecr.js +4 -4
  151. package/lib/generated/services/ecs-mcp.js +1 -1
  152. package/lib/generated/services/ecs.js +4 -4
  153. package/lib/generated/services/eks-auth.js +4 -4
  154. package/lib/generated/services/eks-mcp.js +1 -1
  155. package/lib/generated/services/eks.js +4 -4
  156. package/lib/generated/services/elasticache.js +4 -4
  157. package/lib/generated/services/elasticbeanstalk.js +4 -4
  158. package/lib/generated/services/elasticfilesystem.js +4 -4
  159. package/lib/generated/services/elasticloadbalancing.js +4 -4
  160. package/lib/generated/services/elasticmapreduce.js +4 -4
  161. package/lib/generated/services/elastictranscoder.js +2 -2
  162. package/lib/generated/services/elemental-activations.js +1 -1
  163. package/lib/generated/services/elemental-appliances-software.js +2 -2
  164. package/lib/generated/services/elemental-inference.js +4 -4
  165. package/lib/generated/services/elemental-support-cases.js +3 -3
  166. package/lib/generated/services/elemental-support-content.js +1 -1
  167. package/lib/generated/services/emr-containers.js +4 -4
  168. package/lib/generated/services/emr-serverless.js +4 -4
  169. package/lib/generated/services/entityresolution.js +4 -4
  170. package/lib/generated/services/es.js +4 -4
  171. package/lib/generated/services/events.js +4 -4
  172. package/lib/generated/services/eventsbilltoaws.js +3 -3
  173. package/lib/generated/services/evidently.js +3 -3
  174. package/lib/generated/services/evs.js +4 -4
  175. package/lib/generated/services/execute-api.js +4 -4
  176. package/lib/generated/services/finops-agent.js +1 -1
  177. package/lib/generated/services/finspace-api.js +3 -3
  178. package/lib/generated/services/finspace.js +4 -4
  179. package/lib/generated/services/firehose.js +4 -4
  180. package/lib/generated/services/fis.js +4 -4
  181. package/lib/generated/services/fms.js +4 -4
  182. package/lib/generated/services/forecast.js +4 -4
  183. package/lib/generated/services/frauddetector.js +4 -4
  184. package/lib/generated/services/freertos.js +3 -3
  185. package/lib/generated/services/freetier.js +2 -2
  186. package/lib/generated/services/fsx.js +4 -4
  187. package/lib/generated/services/gamelift.js +4 -4
  188. package/lib/generated/services/gameliftstreams.js +4 -4
  189. package/lib/generated/services/geo-maps.js +3 -3
  190. package/lib/generated/services/geo-places.js +3 -3
  191. package/lib/generated/services/geo-routes.js +3 -3
  192. package/lib/generated/services/geo.js +4 -4
  193. package/lib/generated/services/glacier.js +4 -4
  194. package/lib/generated/services/globalaccelerator.js +4 -4
  195. package/lib/generated/services/glue.js +4 -4
  196. package/lib/generated/services/grafana.js +4 -4
  197. package/lib/generated/services/greengrass.js +6 -9
  198. package/lib/generated/services/groundstation.js +4 -4
  199. package/lib/generated/services/groundtruthlabeling.js +1 -1
  200. package/lib/generated/services/guardduty.js +4 -4
  201. package/lib/generated/services/health-agent.js +4 -4
  202. package/lib/generated/services/health.js +4 -4
  203. package/lib/generated/services/healthlake.js +4 -4
  204. package/lib/generated/services/honeycode.js +2 -2
  205. package/lib/generated/services/iam.js +4 -4
  206. package/lib/generated/services/identity-sync.js +2 -2
  207. package/lib/generated/services/identitystore-auth.js +1 -1
  208. package/lib/generated/services/identitystore.js +4 -4
  209. package/lib/generated/services/imagebuilder.js +4 -4
  210. package/lib/generated/services/importexport.js +2 -2
  211. package/lib/generated/services/inspector-scan.js +2 -2
  212. package/lib/generated/services/inspector.js +2 -2
  213. package/lib/generated/services/inspector2-telemetry.js +1 -1
  214. package/lib/generated/services/inspector2.js +4 -4
  215. package/lib/generated/services/interconnect.js +4 -4
  216. package/lib/generated/services/internetmonitor.js +4 -4
  217. package/lib/generated/services/invoicing.js +4 -4
  218. package/lib/generated/services/iot-device-tester.js +1 -1
  219. package/lib/generated/services/iot.js +4 -4
  220. package/lib/generated/services/iotanalytics.js +3 -3
  221. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  222. package/lib/generated/services/iotevents.js +3 -3
  223. package/lib/generated/services/iotfleethub.js +3 -3
  224. package/lib/generated/services/iotfleetwise.js +4 -4
  225. package/lib/generated/services/iotjobsdata.js +4 -4
  226. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  227. package/lib/generated/services/iotsitewise.js +4 -4
  228. package/lib/generated/services/iottwinmaker.js +4 -4
  229. package/lib/generated/services/iotwireless.js +4 -4
  230. package/lib/generated/services/iq-permission.js +2 -2
  231. package/lib/generated/services/iq.js +2 -2
  232. package/lib/generated/services/ivs.js +4 -4
  233. package/lib/generated/services/ivschat.js +4 -4
  234. package/lib/generated/services/kafka-cluster.js +3 -3
  235. package/lib/generated/services/kafka.js +4 -4
  236. package/lib/generated/services/kafkaconnect.js +4 -4
  237. package/lib/generated/services/kendra-ranking.js +4 -4
  238. package/lib/generated/services/kendra.js +4 -4
  239. package/lib/generated/services/kinesis.js +4 -4
  240. package/lib/generated/services/kinesisanalytics.js +4 -4
  241. package/lib/generated/services/kinesisvideo.js +4 -4
  242. package/lib/generated/services/kms.js +4 -4
  243. package/lib/generated/services/lakeformation.js +3 -3
  244. package/lib/generated/services/lambda.js +4 -4
  245. package/lib/generated/services/launchwizard.js +4 -4
  246. package/lib/generated/services/lex.js +4 -4
  247. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  248. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  249. package/lib/generated/services/license-manager.js +4 -4
  250. package/lib/generated/services/lightsail.js +4 -4
  251. package/lib/generated/services/logs.js +4 -4
  252. package/lib/generated/services/lookoutequipment.js +4 -4
  253. package/lib/generated/services/lookoutmetrics.js +3 -3
  254. package/lib/generated/services/lookoutvision.js +3 -3
  255. package/lib/generated/services/m2.js +4 -4
  256. package/lib/generated/services/machinelearning.js +3 -3
  257. package/lib/generated/services/macie2.js +4 -4
  258. package/lib/generated/services/managedblockchain-query.js +2 -2
  259. package/lib/generated/services/managedblockchain.js +4 -4
  260. package/lib/generated/services/mapcredits.js +2 -2
  261. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  262. package/lib/generated/services/mechanicalturk.js +2 -2
  263. package/lib/generated/services/mediaconnect.js +4 -4
  264. package/lib/generated/services/mediaconvert.js +4 -4
  265. package/lib/generated/services/mediaimport.js +1 -1
  266. package/lib/generated/services/medialive.js +4 -4
  267. package/lib/generated/services/mediapackage-vod.js +4 -4
  268. package/lib/generated/services/mediapackage.js +4 -4
  269. package/lib/generated/services/mediapackagev2.js +4 -4
  270. package/lib/generated/services/mediastore.js +4 -4
  271. package/lib/generated/services/mediatailor.js +4 -4
  272. package/lib/generated/services/medical-imaging.js +4 -4
  273. package/lib/generated/services/memorydb.js +4 -4
  274. package/lib/generated/services/mgh.js +4 -4
  275. package/lib/generated/services/mgn.js +4 -4
  276. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  277. package/lib/generated/services/migrationhub-strategy.js +2 -2
  278. package/lib/generated/services/mobileanalytics.js +1 -1
  279. package/lib/generated/services/mobiletargeting.js +4 -4
  280. package/lib/generated/services/monitron.js +3 -3
  281. package/lib/generated/services/mpa.js +4 -4
  282. package/lib/generated/services/mq.js +4 -4
  283. package/lib/generated/services/neptune-db.js +4 -4
  284. package/lib/generated/services/neptune-graph.js +4 -4
  285. package/lib/generated/services/network-firewall.js +4 -4
  286. package/lib/generated/services/network-security-director.js +1 -1
  287. package/lib/generated/services/networkflowmonitor.js +4 -4
  288. package/lib/generated/services/networkmanager-chat.js +1 -1
  289. package/lib/generated/services/networkmanager.js +4 -4
  290. package/lib/generated/services/networkmonitor.js +4 -4
  291. package/lib/generated/services/nimble.js +3 -3
  292. package/lib/generated/services/notifications-contacts.js +4 -4
  293. package/lib/generated/services/notifications.js +4 -4
  294. package/lib/generated/services/nova-act.js +3 -3
  295. package/lib/generated/services/oam.js +4 -4
  296. package/lib/generated/services/observabilityadmin.js +4 -4
  297. package/lib/generated/services/odb.js +4 -4
  298. package/lib/generated/services/omics.js +4 -4
  299. package/lib/generated/services/one.js +3 -3
  300. package/lib/generated/services/opensearch.js +3 -3
  301. package/lib/generated/services/opsworks-cm.js +2 -2
  302. package/lib/generated/services/opsworks.js +2 -2
  303. package/lib/generated/services/organizations.js +4 -4
  304. package/lib/generated/services/osis.js +4 -4
  305. package/lib/generated/services/outposts.js +4 -4
  306. package/lib/generated/services/panorama.js +3 -3
  307. package/lib/generated/services/partnercentral-account-management.js +2 -2
  308. package/lib/generated/services/partnercentral.js +4 -4
  309. package/lib/generated/services/payment-cryptography.js +4 -4
  310. package/lib/generated/services/payments.js +3 -3
  311. package/lib/generated/services/pca-connector-ad.js +4 -4
  312. package/lib/generated/services/pca-connector-scep.js +4 -4
  313. package/lib/generated/services/pcs.js +4 -4
  314. package/lib/generated/services/personalize.js +5 -6
  315. package/lib/generated/services/pi.js +4 -4
  316. package/lib/generated/services/pipes.js +4 -4
  317. package/lib/generated/services/polly.js +3 -3
  318. package/lib/generated/services/pricing.js +2 -2
  319. package/lib/generated/services/pricingplanmanager.js +3 -3
  320. package/lib/generated/services/private-networks.js +3 -3
  321. package/lib/generated/services/profile.js +4 -4
  322. package/lib/generated/services/proton.js +4 -4
  323. package/lib/generated/services/purchase-orders.js +3 -3
  324. package/lib/generated/services/q.js +3 -3
  325. package/lib/generated/services/qapps.js +4 -4
  326. package/lib/generated/services/qbusiness.js +4 -4
  327. package/lib/generated/services/qdeveloper.js +3 -3
  328. package/lib/generated/services/qldb.js +3 -3
  329. package/lib/generated/services/quicksight.js +4 -4
  330. package/lib/generated/services/ram.js +4 -4
  331. package/lib/generated/services/rbin.js +4 -4
  332. package/lib/generated/services/rds-data.js +4 -4
  333. package/lib/generated/services/rds-db.js +2 -2
  334. package/lib/generated/services/rds.js +4 -4
  335. package/lib/generated/services/redshift-data.js +4 -4
  336. package/lib/generated/services/redshift-serverless.js +4 -4
  337. package/lib/generated/services/redshift.js +4 -4
  338. package/lib/generated/services/refactor-spaces.js +4 -4
  339. package/lib/generated/services/rekognition.js +4 -4
  340. package/lib/generated/services/repostspace.js +4 -4
  341. package/lib/generated/services/researchstudio.js +1 -1
  342. package/lib/generated/services/resiliencehub.js +4 -4
  343. package/lib/generated/services/resource-explorer-2.js +4 -4
  344. package/lib/generated/services/resource-explorer.js +1 -1
  345. package/lib/generated/services/resource-groups.js +4 -4
  346. package/lib/generated/services/rhelkb.js +1 -1
  347. package/lib/generated/services/robomaker.js +3 -3
  348. package/lib/generated/services/rolesanywhere.js +4 -4
  349. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  350. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  351. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  352. package/lib/generated/services/route53.js +4 -4
  353. package/lib/generated/services/route53domains.js +2 -2
  354. package/lib/generated/services/route53globalresolver.js +4 -4
  355. package/lib/generated/services/route53profiles.js +4 -4
  356. package/lib/generated/services/route53resolver.js +4 -4
  357. package/lib/generated/services/rtbfabric.js +4 -4
  358. package/lib/generated/services/rum.js +4 -4
  359. package/lib/generated/services/s3-object-lambda.js +3 -3
  360. package/lib/generated/services/s3-outposts.js +4 -4
  361. package/lib/generated/services/s3.js +4 -4
  362. package/lib/generated/services/s3express.js +3 -3
  363. package/lib/generated/services/s3files.js +4 -4
  364. package/lib/generated/services/s3tables.js +4 -4
  365. package/lib/generated/services/s3vectors.js +4 -4
  366. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  367. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  368. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  369. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  370. package/lib/generated/services/sagemaker.js +4 -4
  371. package/lib/generated/services/savingsplans.js +4 -4
  372. package/lib/generated/services/scheduler.js +4 -4
  373. package/lib/generated/services/schemas.js +4 -4
  374. package/lib/generated/services/scn.js +4 -4
  375. package/lib/generated/services/sdb.js +3 -3
  376. package/lib/generated/services/secretsmanager.js +4 -4
  377. package/lib/generated/services/security-ir.js +4 -4
  378. package/lib/generated/services/securityagent.js +4 -4
  379. package/lib/generated/services/securityhub.js +4 -4
  380. package/lib/generated/services/securitylake.js +4 -4
  381. package/lib/generated/services/serverlessrepo.js +4 -4
  382. package/lib/generated/services/servicecatalog.js +4 -4
  383. package/lib/generated/services/servicediscovery.js +4 -4
  384. package/lib/generated/services/serviceextract.js +1 -1
  385. package/lib/generated/services/servicequotas.js +4 -4
  386. package/lib/generated/services/ses.js +4 -4
  387. package/lib/generated/services/shield.js +4 -4
  388. package/lib/generated/services/signer.js +4 -4
  389. package/lib/generated/services/signin.js +4 -4
  390. package/lib/generated/services/simspaceweaver.js +3 -3
  391. package/lib/generated/services/sms-voice.js +4 -4
  392. package/lib/generated/services/sms.js +1 -1
  393. package/lib/generated/services/snow-device-management.js +4 -4
  394. package/lib/generated/services/snowball.js +2 -2
  395. package/lib/generated/services/sns.js +4 -4
  396. package/lib/generated/services/social-messaging.js +4 -4
  397. package/lib/generated/services/sqlworkbench.js +3 -3
  398. package/lib/generated/services/sqs.js +4 -4
  399. package/lib/generated/services/ssm-contacts.js +4 -4
  400. package/lib/generated/services/ssm-guiconnect.js +2 -2
  401. package/lib/generated/services/ssm-incidents.js +4 -4
  402. package/lib/generated/services/ssm-quicksetup.js +4 -4
  403. package/lib/generated/services/ssm-sap.js +4 -4
  404. package/lib/generated/services/ssm.js +4 -4
  405. package/lib/generated/services/ssmmessages.js +2 -2
  406. package/lib/generated/services/sso-directory.js +1 -1
  407. package/lib/generated/services/sso-oauth.js +3 -3
  408. package/lib/generated/services/sso.js +4 -4
  409. package/lib/generated/services/states.js +4 -4
  410. package/lib/generated/services/storagegateway.js +4 -4
  411. package/lib/generated/services/sts.js +4 -4
  412. package/lib/generated/services/support-console.js +1 -1
  413. package/lib/generated/services/support.js +2 -2
  414. package/lib/generated/services/supportapp.js +2 -2
  415. package/lib/generated/services/supportauthz.js +4 -4
  416. package/lib/generated/services/supportplans.js +1 -1
  417. package/lib/generated/services/sustainability.js +2 -2
  418. package/lib/generated/services/swf.js +4 -4
  419. package/lib/generated/services/synthetics.js +4 -4
  420. package/lib/generated/services/tag.js +2 -2
  421. package/lib/generated/services/tax.js +2 -2
  422. package/lib/generated/services/textract.js +4 -4
  423. package/lib/generated/services/thinclient.js +4 -4
  424. package/lib/generated/services/timestream-influxdb.js +4 -4
  425. package/lib/generated/services/timestream.js +4 -4
  426. package/lib/generated/services/tiros.js +1 -1
  427. package/lib/generated/services/tnb.js +4 -4
  428. package/lib/generated/services/transcribe.js +4 -4
  429. package/lib/generated/services/transfer.js +4 -4
  430. package/lib/generated/services/transform-custom.js +3 -3
  431. package/lib/generated/services/transform.js +3 -3
  432. package/lib/generated/services/translate.js +4 -4
  433. package/lib/generated/services/trustedadvisor.js +3 -3
  434. package/lib/generated/services/ts.js +3 -3
  435. package/lib/generated/services/user-subscriptions.js +2 -2
  436. package/lib/generated/services/uxc.js +2 -2
  437. package/lib/generated/services/vendor-insights.js +3 -3
  438. package/lib/generated/services/verified-access.js +1 -1
  439. package/lib/generated/services/verifiedpermissions.js +4 -4
  440. package/lib/generated/services/voiceid.js +4 -4
  441. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  442. package/lib/generated/services/vpc-lattice.js +4 -4
  443. package/lib/generated/services/vpce.js +2 -2
  444. package/lib/generated/services/waf-regional.js +4 -4
  445. package/lib/generated/services/waf.js +4 -4
  446. package/lib/generated/services/wafv2.js +4 -4
  447. package/lib/generated/services/wam.js +1 -1
  448. package/lib/generated/services/wellarchitected.js +4 -4
  449. package/lib/generated/services/wickr.js +4 -4
  450. package/lib/generated/services/wisdom.js +4 -4
  451. package/lib/generated/services/workdocs.js +3 -3
  452. package/lib/generated/services/worklink.js +3 -3
  453. package/lib/generated/services/workmail.js +4 -4
  454. package/lib/generated/services/workmailmessageflow.js +3 -3
  455. package/lib/generated/services/workspaces-instances.js +4 -4
  456. package/lib/generated/services/workspaces-web.js +4 -4
  457. package/lib/generated/services/workspaces.js +4 -4
  458. package/lib/generated/services/xray.js +4 -4
  459. package/package.json +1 -1
@@ -16,7 +16,7 @@ class GreengrassActions {
16
16
  }
17
17
  exports.GreengrassActions = GreengrassActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- GreengrassActions[_a] = { fqn: "@cdk_utils/iam.greengrass.GreengrassActions", version: "1.4.0" };
19
+ GreengrassActions[_a] = { fqn: "@cdk_utils/iam.greengrass.GreengrassActions", version: "1.5.0" };
20
20
  /** The IAM service prefix. */
21
21
  GreengrassActions.SERVICE_PREFIX = "greengrass";
22
22
  /** [Write] greengrass:AssociateRoleToGroup */
@@ -1120,7 +1120,7 @@ class GreengrassResources {
1120
1120
  }
1121
1121
  exports.GreengrassResources = GreengrassResources;
1122
1122
  _b = JSII_RTTI_SYMBOL_1;
1123
- GreengrassResources[_b] = { fqn: "@cdk_utils/iam.greengrass.GreengrassResources", version: "1.4.0" };
1123
+ GreengrassResources[_b] = { fqn: "@cdk_utils/iam.greengrass.GreengrassResources", version: "1.5.0" };
1124
1124
  /**
1125
1125
  * API operation to required IAM actions mapping for greengrass.
1126
1126
  */
@@ -1128,7 +1128,7 @@ class GreengrassOperations {
1128
1128
  }
1129
1129
  exports.GreengrassOperations = GreengrassOperations;
1130
1130
  _c = JSII_RTTI_SYMBOL_1;
1131
- GreengrassOperations[_c] = { fqn: "@cdk_utils/iam.greengrass.GreengrassOperations", version: "1.4.0" };
1131
+ GreengrassOperations[_c] = { fqn: "@cdk_utils/iam.greengrass.GreengrassOperations", version: "1.5.0" };
1132
1132
  /** IAM actions required for the AssociateRoleToGroup API call. */
1133
1133
  GreengrassOperations.AssociateRoleToGroup = [
1134
1134
  "greengrass:AssociateRoleToGroup",
@@ -1575,7 +1575,7 @@ class GreengrassConditions {
1575
1575
  }
1576
1576
  exports.GreengrassConditions = GreengrassConditions;
1577
1577
  _d = JSII_RTTI_SYMBOL_1;
1578
- GreengrassConditions[_d] = { fqn: "@cdk_utils/iam.greengrass.GreengrassConditions", version: "1.4.0" };
1578
+ GreengrassConditions[_d] = { fqn: "@cdk_utils/iam.greengrass.GreengrassConditions", version: "1.5.0" };
1579
1579
  /** Condition keys applicable to the CreateComponentVersion action. */
1580
1580
  GreengrassConditions.CreateComponentVersionConditionKeys = [
1581
1581
  "aws:RequestTag/${TagKey}",
@@ -1642,14 +1642,11 @@ GreengrassConditions.TagResourceConditionKeys = [
1642
1642
  "aws:TagKeys",
1643
1643
  ];
1644
1644
  /** Condition keys applicable to the UntagResource action. */
1645
- GreengrassConditions.UntagResourceConditionKeys = [
1646
- "aws:RequestTag/${TagKey}",
1647
- "aws:TagKeys",
1648
- ];
1645
+ GreengrassConditions.UntagResourceConditionKeys = ["aws:TagKeys"];
1649
1646
  /** Condition key: aws:RequestTag/${TagKey} (String) */
1650
1647
  GreengrassConditions.AWS_REQUEST_TAG = "aws:RequestTag/${TagKey}";
1651
1648
  /** Condition key: aws:ResourceTag/${TagKey} (String) */
1652
1649
  GreengrassConditions.AWS_RESOURCE_TAG = "aws:ResourceTag/${TagKey}";
1653
1650
  /** Condition key: aws:TagKeys (ArrayOfString) */
1654
1651
  GreengrassConditions.AWS_TAG_KEYS = "aws:TagKeys";
1655
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlZW5ncmFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMvZ3JlZW5ncmFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELGlEQUFpRDtBQUNqRCxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7O0FBQTlCLDhDQWthQzs7O0FBamFBLDhCQUE4QjtBQUNkLGdDQUFjLEdBQUcsWUFBWSxDQUFDO0FBRTlDLDhDQUE4QztBQUM5QixzQ0FBb0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUN6RSxzRUFBc0U7QUFDdEQsK0NBQTZCLEdBQzVDLDBDQUEwQyxDQUFDO0FBQzVDLGtFQUFrRTtBQUNsRCwwREFBd0MsR0FDdkQscURBQXFELENBQUM7QUFDdkQscUVBQXFFO0FBQ3JELDZEQUEyQyxHQUMxRCx3REFBd0QsQ0FBQztBQUMxRCwwQ0FBMEM7QUFDMUIsa0NBQWdCLEdBQUcsNkJBQTZCLENBQUM7QUFDakUsZ0RBQWdEO0FBQ2hDLHdDQUFzQixHQUFHLG1DQUFtQyxDQUFDO0FBQzdFLG1EQUFtRDtBQUNuQywyQ0FBeUIsR0FDeEMsc0NBQXNDLENBQUM7QUFDeEMsMERBQTBEO0FBQzFDLGtEQUFnQyxHQUMvQyw2Q0FBNkMsQ0FBQztBQUMvQyw4Q0FBOEM7QUFDOUIsc0NBQW9CLEdBQUcsaUNBQWlDLENBQUM7QUFDekUscURBQXFEO0FBQ3JDLDZDQUEyQixHQUMxQyx3Q0FBd0MsQ0FBQztBQUMxQywwQ0FBMEM7QUFDMUIsa0NBQWdCLEdBQUcsNkJBQTZCLENBQUM7QUFDakUsZ0RBQWdEO0FBQ2hDLHdDQUFzQixHQUFHLG1DQUFtQyxDQUFDO0FBQzdFLHVEQUF1RDtBQUN2QywrQ0FBNkIsR0FDNUMsMENBQTBDLENBQUM7QUFDNUMsa0RBQWtEO0FBQ2xDLDBDQUF3QixHQUN2QyxxQ0FBcUMsQ0FBQztBQUN2Qyx5REFBeUQ7QUFDekMsaURBQStCLEdBQzlDLDRDQUE0QyxDQUFDO0FBQzlDLHFDQUFxQztBQUNyQiw2QkFBVyxHQUFHLHdCQUF3QixDQUFDO0FBQ3ZELHlEQUF5RDtBQUN6QyxpREFBK0IsR0FDOUMsNENBQTRDLENBQUM7QUFDOUMsNENBQTRDO0FBQzVCLG9DQUFrQixHQUFHLCtCQUErQixDQUFDO0FBQ3JFLGdEQUFnRDtBQUNoQyx3Q0FBc0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUM3RSx1REFBdUQ7QUFDdkMsK0NBQTZCLEdBQzVDLDBDQUEwQyxDQUFDO0FBQzVDLGtEQUFrRDtBQUNsQywwQ0FBd0IsR0FDdkMscUNBQXFDLENBQUM7QUFDdkMseURBQXlEO0FBQ3pDLGlEQUErQixHQUM5Qyw0Q0FBNEMsQ0FBQztBQUM5QyxpREFBaUQ7QUFDakMseUNBQXVCLEdBQ3RDLG9DQUFvQyxDQUFDO0FBQ3RDLHNEQUFzRDtBQUN0Qyw4Q0FBNEIsR0FDM0MseUNBQXlDLENBQUM7QUFDM0MsNkRBQTZEO0FBQzdDLHFEQUFtQyxHQUNsRCxnREFBZ0QsQ0FBQztBQUNsRCx5Q0FBeUM7QUFDekIsaUNBQWUsR0FBRyw0QkFBNEIsQ0FBQztBQUMvRCxtREFBbUQ7QUFDbkMsMkNBQXlCLEdBQ3hDLHNDQUFzQyxDQUFDO0FBQ3hDLDhDQUE4QztBQUM5QixzQ0FBb0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUN6RSwwQ0FBMEM7QUFDMUIsa0NBQWdCLEdBQUcsNkJBQTZCLENBQUM7QUFDakUsMENBQTBDO0FBQzFCLGtDQUFnQixHQUFHLDZCQUE2QixDQUFDO0FBQ2pFLGdEQUFnRDtBQUNoQyx3Q0FBc0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUM3RSxrREFBa0Q7QUFDbEMsMENBQXdCLEdBQ3ZDLHFDQUFxQyxDQUFDO0FBQ3ZDLHFDQUFxQztBQUNyQiw2QkFBVyxHQUFHLHdCQUF3QixDQUFDO0FBQ3ZELGdEQUFnRDtBQUNoQyx3Q0FBc0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUM3RSxrREFBa0Q7QUFDbEMsMENBQXdCLEdBQ3ZDLHFDQUFxQyxDQUFDO0FBQ3ZDLHNEQUFzRDtBQUN0Qyw4Q0FBNEIsR0FDM0MseUNBQXlDLENBQUM7QUFDM0MsMENBQTBDO0FBQzFCLG1DQUFpQixHQUFHLDhCQUE4QixDQUFDO0FBQ25FLG1EQUFtRDtBQUNuQywyQ0FBeUIsR0FDeEMsc0NBQXNDLENBQUM7QUFDeEMsNERBQTREO0FBQzVDLG9EQUFrQyxHQUNqRCwrQ0FBK0MsQ0FBQztBQUNqRCxpQ0FBaUM7QUFDakIsMEJBQVEsR0FBRyxxQkFBcUIsQ0FBQztBQUNqRCwwQ0FBMEM7QUFDMUIseUNBQXVCLEdBQUcsOEJBQThCLENBQUM7QUFDekUsZ0RBQWdEO0FBQ2hDLCtDQUE2QixHQUM1QyxvQ0FBb0MsQ0FBQztBQUN0QyxxQ0FBcUM7QUFDckIsb0NBQWtCLEdBQUcseUJBQXlCLENBQUM7QUFDL0Qsb0RBQW9EO0FBQ3BDLG1EQUFpQyxHQUNoRCx3Q0FBd0MsQ0FBQztBQUMxQyw0Q0FBNEM7QUFDNUIsMkNBQXlCLEdBQUcsZ0NBQWdDLENBQUM7QUFDN0UsK0NBQStDO0FBQy9CLDhDQUE0QixHQUMzQyxtQ0FBbUMsQ0FBQztBQUNyQyxzREFBc0Q7QUFDdEMscURBQW1DLEdBQ2xELDBDQUEwQyxDQUFDO0FBQzVDLDBDQUEwQztBQUMxQix5Q0FBdUIsR0FBRyw4QkFBOEIsQ0FBQztBQUN6RSxpREFBaUQ7QUFDakMsZ0RBQThCLEdBQzdDLHFDQUFxQyxDQUFDO0FBQ3ZDLHNDQUFzQztBQUN0QixxQ0FBbUIsR0FBRywwQkFBMEIsQ0FBQztBQUNqRSxzQ0FBc0M7QUFDdEIscUNBQW1CLEdBQUcsMEJBQTBCLENBQUM7QUFDakUsNENBQTRDO0FBQzVCLDJDQUF5QixHQUFHLGdDQUFnQyxDQUFDO0FBQzdFLDRDQUE0QztBQUM1QiwyQ0FBeUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM3RSxtREFBbUQ7QUFDbkMsa0RBQWdDLEdBQy9DLHVDQUF1QyxDQUFDO0FBQ3pDLDhDQUE4QztBQUM5Qiw2Q0FBMkIsR0FDMUMsa0NBQWtDLENBQUM7QUFDcEMscURBQXFEO0FBQ3JDLG9EQUFrQyxHQUNqRCx5Q0FBeUMsQ0FBQztBQUMzQyxpQ0FBaUM7QUFDakIsZ0NBQWMsR0FBRyxxQkFBcUIsQ0FBQztBQUN2RCxxREFBcUQ7QUFDckMsb0RBQWtDLEdBQ2pELHlDQUF5QyxDQUFDO0FBQzNDLHlEQUF5RDtBQUN6Qyx3REFBc0MsR0FDckQsNkNBQTZDLENBQUM7QUFDL0Msd0NBQXdDO0FBQ3hCLHVDQUFxQixHQUFHLDRCQUE0QixDQUFDO0FBQ3JFLDRDQUE0QztBQUM1QiwyQ0FBeUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM3RSxtREFBbUQ7QUFDbkMsa0RBQWdDLEdBQy9DLHVDQUF1QyxDQUFDO0FBQ3pDLDhDQUE4QztBQUM5Qiw2Q0FBMkIsR0FDMUMsa0NBQWtDLENBQUM7QUFDcEMscURBQXFEO0FBQ3JDLG9EQUFrQyxHQUNqRCx5Q0FBeUMsQ0FBQztBQUMzQyxpREFBaUQ7QUFDakMsZ0RBQThCLEdBQzdDLHFDQUFxQyxDQUFDO0FBQ3ZDLGtEQUFrRDtBQUNsQyxpREFBK0IsR0FDOUMsc0NBQXNDLENBQUM7QUFDeEMseURBQXlEO0FBQ3pDLHdEQUFzQyxHQUNyRCw2Q0FBNkMsQ0FBQztBQUMvQyxxREFBcUQ7QUFDckMsb0RBQWtDLEdBQ2pELHlDQUF5QyxDQUFDO0FBQzNDLDBEQUEwRDtBQUMxQyxtREFBaUMsR0FDaEQsOENBQThDLENBQUM7QUFDaEQsNENBQTRDO0FBQzVCLHFDQUFtQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3ZFLGtFQUFrRTtBQUNsRCwyREFBeUMsR0FDeEQsc0RBQXNELENBQUM7QUFDeEQsOENBQThDO0FBQzlCLHVDQUFxQixHQUFHLGtDQUFrQyxDQUFDO0FBQzNFLHVDQUF1QztBQUN2QixnQ0FBYyxHQUFHLDJCQUEyQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4QyxpREFBK0IsR0FDOUMsNENBQTRDLENBQUM7QUFDOUMsaURBQWlEO0FBQ2pDLDBDQUF3QixHQUN2QyxxQ0FBcUMsQ0FBQztBQUN2QyxtREFBbUQ7QUFDbkMsNENBQTBCLEdBQ3pDLHVDQUF1QyxDQUFDO0FBQ3pDLDRDQUE0QztBQUM1QixxQ0FBbUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUN2RSx3Q0FBd0M7QUFDeEIsaUNBQWUsR0FBRyw0QkFBNEIsQ0FBQztBQUMvRCx3Q0FBd0M7QUFDeEIsaUNBQWUsR0FBRyw0QkFBNEIsQ0FBQztBQUMvRCxxREFBcUQ7QUFDckMsOENBQTRCLEdBQzNDLHlDQUF5QyxDQUFDO0FBQzNDLDhDQUE4QztBQUM5Qix1Q0FBcUIsR0FBRyxrQ0FBa0MsQ0FBQztBQUMzRSxpREFBaUQ7QUFDakMsMENBQXdCLEdBQ3ZDLHFDQUFxQyxDQUFDO0FBQ3ZDLHVEQUF1RDtBQUN2QyxnREFBOEIsR0FDN0MsMkNBQTJDLENBQUM7QUFDN0MsZ0RBQWdEO0FBQ2hDLHlDQUF1QixHQUN0QyxvQ0FBb0MsQ0FBQztBQUN0Qyx3REFBd0Q7QUFDeEMsaURBQStCLEdBQzlDLDRDQUE0QyxDQUFDO0FBQzlDLDBDQUEwQztBQUMxQixtQ0FBaUIsR0FBRyw4QkFBOEIsQ0FBQztBQUNuRSxtQ0FBbUM7QUFDbkIsNEJBQVUsR0FBRyx1QkFBdUIsQ0FBQztBQUNyRCxnREFBZ0Q7QUFDaEMseUNBQXVCLEdBQ3RDLG9DQUFvQyxDQUFDO0FBQ3RDLHFEQUFxRDtBQUNyQyw4Q0FBNEIsR0FDM0MseUNBQXlDLENBQUM7QUFDM0MsOENBQThDO0FBQzlCLHVDQUFxQixHQUFHLGtDQUFrQyxDQUFDO0FBQzNFLHVEQUF1RDtBQUN2QyxnREFBOEIsR0FDN0MsMkNBQTJDLENBQUM7QUFDN0MsZ0RBQWdEO0FBQ2hDLHlDQUF1QixHQUN0QyxvQ0FBb0MsQ0FBQztBQUN0QywyREFBMkQ7QUFDM0Msb0RBQWtDLEdBQ2pELCtDQUErQyxDQUFDO0FBQ2pELG9EQUFvRDtBQUNwQyw2Q0FBMkIsR0FDMUMsd0NBQXdDLENBQUM7QUFDMUMsNENBQTRDO0FBQzVCLHFDQUFtQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3ZFLDBDQUEwQztBQUMxQixrQ0FBZ0IsR0FBRyw2QkFBNkIsQ0FBQztBQUNqRSxtREFBbUQ7QUFDbkMsNENBQTBCLEdBQ3pDLHVDQUF1QyxDQUFDO0FBQ3pDLDZDQUE2QztBQUM3QixxQ0FBbUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUN2RSw0Q0FBNEM7QUFDNUIsb0NBQWtCLEdBQUcsK0JBQStCLENBQUM7QUFDckUsdUNBQXVDO0FBQ3ZCLDZCQUFXLEdBQUcsd0JBQXdCLENBQUM7QUFDdkQseUNBQXlDO0FBQ3pCLCtCQUFhLEdBQUcsMEJBQTBCLENBQUM7QUFDM0QsZ0RBQWdEO0FBQ2hDLHdDQUFzQixHQUFHLG1DQUFtQyxDQUFDO0FBQzdFLG1EQUFtRDtBQUNuQywyQ0FBeUIsR0FDeEMsc0NBQXNDLENBQUM7QUFDeEMsOENBQThDO0FBQzlCLHNDQUFvQixHQUFHLGlDQUFpQyxDQUFDO0FBQ3pFLGdEQUFnRDtBQUNoQyx3Q0FBc0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUM3RSxrREFBa0Q7QUFDbEMsMENBQXdCLEdBQ3ZDLHFDQUFxQyxDQUFDO0FBQ3ZDLHFDQUFxQztBQUNyQiw2QkFBVyxHQUFHLHdCQUF3QixDQUFDO0FBQ3ZELDZEQUE2RDtBQUM3QyxxREFBbUMsR0FDbEQsZ0RBQWdELENBQUM7QUFDbEQsZ0RBQWdEO0FBQ2hDLHdDQUFzQixHQUFHLG1DQUFtQyxDQUFDO0FBQzdFLGtEQUFrRDtBQUNsQywwQ0FBd0IsR0FDdkMscUNBQXFDLENBQUM7QUFDdkMsc0RBQXNEO0FBQ3RDLDhDQUE0QixHQUMzQyx5Q0FBeUMsQ0FBQztBQUMzQyx5REFBeUQ7QUFDekMsaURBQStCLEdBQzlDLDRDQUE0QyxDQUFDO0FBRTlDLDhCQUE4QjtBQUNkLGdDQUFjLEdBQWE7SUFDMUMsaUJBQWlCLENBQUMsaUJBQWlCO0lBQ25DLGlCQUFpQixDQUFDLFFBQVE7SUFDMUIsaUJBQWlCLENBQUMsdUJBQXVCO0lBQ3pDLGlCQUFpQixDQUFDLDZCQUE2QjtJQUMvQyxpQkFBaUIsQ0FBQyxrQkFBa0I7SUFDcEMsaUJBQWlCLENBQUMsaUNBQWlDO0lBQ25ELGlCQUFpQixDQUFDLHlCQUF5QjtJQUMzQyxpQkFBaUIsQ0FBQyw0QkFBNEI7SUFDOUMsaUJBQWlCLENBQUMsbUNBQW1DO0lBQ3JELGlCQUFpQixDQUFDLHVCQUF1QjtJQUN6QyxpQkFBaUIsQ0FBQyw4QkFBOEI7SUFDaEQsaUJBQWlCLENBQUMsbUJBQW1CO0lBQ3JDLGlCQUFpQixDQUFDLG1CQUFtQjtJQUNyQyxpQkFBaUIsQ0FBQyx5QkFBeUI7SUFDM0MsaUJBQWlCLENBQUMseUJBQXlCO0lBQzNDLGlCQUFpQixDQUFDLGdDQUFnQztJQUNsRCxpQkFBaUIsQ0FBQywyQkFBMkI7SUFDN0MsaUJBQWlCLENBQUMsa0NBQWtDO0lBQ3BELGlCQUFpQixDQUFDLGNBQWM7SUFDaEMsaUJBQWlCLENBQUMsa0NBQWtDO0lBQ3BELGlCQUFpQixDQUFDLHNDQUFzQztJQUN4RCxpQkFBaUIsQ0FBQyxxQkFBcUI7SUFDdkMsaUJBQWlCLENBQUMseUJBQXlCO0lBQzNDLGlCQUFpQixDQUFDLGdDQUFnQztJQUNsRCxpQkFBaUIsQ0FBQywyQkFBMkI7SUFDN0MsaUJBQWlCLENBQUMsa0NBQWtDO0lBQ3BELGlCQUFpQixDQUFDLDhCQUE4QjtJQUNoRCxpQkFBaUIsQ0FBQywrQkFBK0I7SUFDakQsaUJBQWlCLENBQUMsc0NBQXNDO0lBQ3hELGlCQUFpQixDQUFDLGtDQUFrQztJQUNwRCxpQkFBaUIsQ0FBQyxpQ0FBaUM7SUFDbkQsaUJBQWlCLENBQUMsbUJBQW1CO0NBQ3JDLENBQUM7QUFDRiwrQkFBK0I7QUFDZixpQ0FBZSxHQUFhO0lBQzNDLGlCQUFpQixDQUFDLG9CQUFvQjtJQUN0QyxpQkFBaUIsQ0FBQyx3Q0FBd0M7SUFDMUQsaUJBQWlCLENBQUMsMkNBQTJDO0lBQzdELGlCQUFpQixDQUFDLGdCQUFnQjtJQUNsQyxpQkFBaUIsQ0FBQyxzQkFBc0I7SUFDeEMsaUJBQWlCLENBQUMseUJBQXlCO0lBQzNDLGlCQUFpQixDQUFDLGdDQUFnQztJQUNsRCxpQkFBaUIsQ0FBQyxvQkFBb0I7SUFDdEMsaUJBQWlCLENBQUMsMkJBQTJCO0lBQzdDLGlCQUFpQixDQUFDLGdCQUFnQjtJQUNsQyxpQkFBaUIsQ0FBQyxzQkFBc0I7SUFDeEMsaUJBQWlCLENBQUMsNkJBQTZCO0lBQy9DLGlCQUFpQixDQUFDLHdCQUF3QjtJQUMxQyxpQkFBaUIsQ0FBQywrQkFBK0I7SUFDakQsaUJBQWlCLENBQUMsV0FBVztJQUM3QixpQkFBaUIsQ0FBQywrQkFBK0I7SUFDakQsaUJBQWlCLENBQUMsa0JBQWtCO0lBQ3BDLGlCQUFpQixDQUFDLHNCQUFzQjtJQUN4QyxpQkFBaUIsQ0FBQyw2QkFBNkI7SUFDL0MsaUJBQWlCLENBQUMsd0JBQXdCO0lBQzFDLGlCQUFpQixDQUFDLCtCQUErQjtJQUNqRCxpQkFBaUIsQ0FBQyx1QkFBdUI7SUFDekMsaUJBQWlCLENBQUMsNEJBQTRCO0lBQzlDLGlCQUFpQixDQUFDLG1DQUFtQztJQUNyRCxpQkFBaUIsQ0FBQyxlQUFlO0lBQ2pDLGlCQUFpQixDQUFDLHlCQUF5QjtJQUMzQyxpQkFBaUIsQ0FBQyxvQkFBb0I7SUFDdEMsaUJBQWlCLENBQUMsZ0JBQWdCO0lBQ2xDLGlCQUFpQixDQUFDLGdCQUFnQjtJQUNsQyxpQkFBaUIsQ0FBQyxzQkFBc0I7SUFDeEMsaUJBQWlCLENBQUMsd0JBQXdCO0lBQzFDLGlCQUFpQixDQUFDLFdBQVc7SUFDN0IsaUJBQWlCLENBQUMsc0JBQXNCO0lBQ3hDLGlCQUFpQixDQUFDLHdCQUF3QjtJQUMxQyxpQkFBaUIsQ0FBQyw0QkFBNEI7SUFDOUMsaUJBQWlCLENBQUMseUJBQXlCO0lBQzNDLGlCQUFpQixDQUFDLGtDQUFrQztJQUNwRCxpQkFBaUIsQ0FBQyxnQkFBZ0I7SUFDbEMsaUJBQWlCLENBQUMsbUJBQW1CO0lBQ3JDLGlCQUFpQixDQUFDLGtCQUFrQjtJQUNwQyxpQkFBaUIsQ0FBQyxzQkFBc0I7SUFDeEMsaUJBQWlCLENBQUMseUJBQXlCO0lBQzNDLGlCQUFpQixDQUFDLG9CQUFvQjtJQUN0QyxpQkFBaUIsQ0FBQyxzQkFBc0I7SUFDeEMsaUJBQWlCLENBQUMsd0JBQXdCO0lBQzFDLGlCQUFpQixDQUFDLFdBQVc7SUFDN0IsaUJBQWlCLENBQUMsbUNBQW1DO0lBQ3JELGlCQUFpQixDQUFDLHNCQUFzQjtJQUN4QyxpQkFBaUIsQ0FBQyx3QkFBd0I7SUFDMUMsaUJBQWlCLENBQUMsNEJBQTRCO0lBQzlDLGlCQUFpQixDQUFDLCtCQUErQjtDQUNqRCxDQUFDO0FBQ0YsOEJBQThCO0FBQ2QsZ0NBQWMsR0FBYTtJQUMxQyxpQkFBaUIsQ0FBQyxtQkFBbUI7SUFDckMsaUJBQWlCLENBQUMseUNBQXlDO0lBQzNELGlCQUFpQixDQUFDLHFCQUFxQjtJQUN2QyxpQkFBaUIsQ0FBQyxjQUFjO0lBQ2hDLGlCQUFpQixDQUFDLCtCQUErQjtJQUNqRCxpQkFBaUIsQ0FBQyx3QkFBd0I7SUFDMUMsaUJBQWlCLENBQUMsMEJBQTBCO0lBQzVDLGlCQUFpQixDQUFDLG1CQUFtQjtJQUNyQyxpQkFBaUIsQ0FBQyxlQUFlO0lBQ2pDLGlCQUFpQixDQUFDLGVBQWU7SUFDakMsaUJBQWlCLENBQUMsNEJBQTRCO0lBQzlDLGlCQUFpQixDQUFDLHFCQUFxQjtJQUN2QyxpQkFBaUIsQ0FBQyx3QkFBd0I7SUFDMUMsaUJBQWlCLENBQUMsOEJBQThCO0lBQ2hELGlCQUFpQixDQUFDLHVCQUF1QjtJQUN6QyxpQkFBaUIsQ0FBQywrQkFBK0I7SUFDakQsaUJBQWlCLENBQUMsaUJBQWlCO0lBQ25DLGlCQUFpQixDQUFDLFVBQVU7SUFDNUIsaUJBQWlCLENBQUMsdUJBQXVCO0lBQ3pDLGlCQUFpQixDQUFDLDRCQUE0QjtJQUM5QyxpQkFBaUIsQ0FBQyxxQkFBcUI7SUFDdkMsaUJBQWlCLENBQUMsOEJBQThCO0lBQ2hELGlCQUFpQixDQUFDLHVCQUF1QjtJQUN6QyxpQkFBaUIsQ0FBQyxrQ0FBa0M7SUFDcEQsaUJBQWlCLENBQUMsMkJBQTJCO0lBQzdDLGlCQUFpQixDQUFDLDBCQUEwQjtDQUM1QyxDQUFDO0FBQ0YsK0NBQStDO0FBQy9CLGdEQUE4QixHQUFhO0lBQzFELGlCQUFpQixDQUFDLDZCQUE2QjtDQUMvQyxDQUFDO0FBQ0YsaUNBQWlDO0FBQ2pCLG1DQUFpQixHQUFhO0lBQzdDLGlCQUFpQixDQUFDLFdBQVc7SUFDN0IsaUJBQWlCLENBQUMsYUFBYTtDQUMvQixDQUFDO0FBeXZCSCxNQUFNLHNCQUFzQixHQUMzQix1SUFBdUksQ0FBQztBQUN6SSxNQUFNLDRCQUE0QixHQUNqQywrS0FBK0ssQ0FBQztBQUNqTCxNQUFNLGlCQUFpQixHQUN0Qiw4R0FBOEcsQ0FBQztBQUNoSCxNQUFNLHdCQUF3QixHQUM3QixvSkFBb0osQ0FBQztBQUN0SixNQUFNLHdCQUF3QixHQUM3Qix1SUFBdUksQ0FBQztBQUN6SSxNQUFNLDJCQUEyQixHQUNoQyxpSkFBaUosQ0FBQztBQUNuSixNQUFNLGtDQUFrQyxHQUN2QyxrTEFBa0wsQ0FBQztBQUNwTCxNQUFNLHNCQUFzQixHQUMzQix1SUFBdUksQ0FBQztBQUN6SSxNQUFNLDZCQUE2QixHQUNsQyx3S0FBd0ssQ0FBQztBQUMxSyxNQUFNLGtCQUFrQixHQUN2QixxSEFBcUgsQ0FBQztBQUN2SCxNQUFNLGtCQUFrQixHQUN2QixxTEFBcUwsQ0FBQztBQUN2TCxNQUFNLG9CQUFvQixHQUN6QiwwSkFBMEosQ0FBQztBQUM1SixNQUFNLHdCQUF3QixHQUM3QiwySUFBMkksQ0FBQztBQUM3SSxNQUFNLCtCQUErQixHQUNwQyw0S0FBNEssQ0FBQztBQUM5SyxNQUFNLDBCQUEwQixHQUMvQiwrSUFBK0ksQ0FBQztBQUNqSixNQUFNLGlDQUFpQyxHQUN0QyxnTEFBZ0wsQ0FBQztBQUNsTCxNQUFNLGFBQWEsR0FDbEIsbUhBQW1ILENBQUM7QUFDckgsTUFBTSxvQkFBb0IsR0FDekIsb0pBQW9KLENBQUM7QUFDdEosTUFBTSx3QkFBd0IsR0FDN0IsMklBQTJJLENBQUM7QUFDN0ksTUFBTSwrQkFBK0IsR0FDcEMsNEtBQTRLLENBQUM7QUFDOUssTUFBTSwwQkFBMEIsR0FDL0IsK0lBQStJLENBQUM7QUFDakosTUFBTSxpQ0FBaUMsR0FDdEMsZ0xBQWdMLENBQUM7QUFDbEwsTUFBTSw4QkFBOEIsR0FDbkMsdUpBQXVKLENBQUM7QUFDekosTUFBTSxxQ0FBcUMsR0FDMUMsd0xBQXdMLENBQUM7QUFDMUwsTUFBTSxhQUFhLEdBQ2xCLCtGQUErRixDQUFDO0FBQ2pHLE1BQU0sMEJBQTBCLEdBQy9CLG9JQUFvSSxDQUFDO0FBRXRJOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFDL0I7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQXVDO1FBQzVELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsaUNBQWlDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFXO1FBQzFDLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsc0JBQXNCLENBQzVCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxnQkFBZ0I7U0FDaEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FDMUIsS0FBNkM7UUFFN0MsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyx1QkFBdUIsS0FBSyxDQUFDLE9BQU8sMkJBQTJCLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQy9MLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxHQUFXO1FBQ2hELE9BQU8sNEJBQTRCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsNEJBQTRCLENBQ2xDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsT0FBTztZQUM5QixzQkFBc0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLHNCQUFzQjtTQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFrQztRQUNsRCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLGVBQWUsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RJLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFXO1FBQ3JDLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBVztRQUNuQyxNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsYUFBYTtTQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQXlDO1FBQ2hFLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsZUFBZSxLQUFLLENBQUMsYUFBYSxhQUFhLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pLLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxHQUFXO1FBQzVDLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsd0JBQXdCLENBQzlCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsYUFBYTtZQUMxQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGdCQUFnQjtTQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQXlDO1FBQ2hFLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyxTQUFTLG1CQUFtQixDQUFDO0lBQzNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxHQUFXO1FBQzVDLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsd0JBQXdCLENBQzlCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsU0FBUztTQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUN6QixLQUE0QztRQUU1QyxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHNDQUFzQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNySyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsNkJBQTZCLENBQUMsR0FBVztRQUMvQyxPQUFPLDJCQUEyQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDJCQUEyQixDQUNqQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMscUJBQXFCO1NBQzFELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsMEJBQTBCLENBQ2hDLEtBQW1EO1FBRW5ELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsc0NBQXNDLEtBQUssQ0FBQyxxQkFBcUIsYUFBYSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDak0sQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLEdBQVc7UUFDdEQsT0FBTyxrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxrQ0FBa0MsQ0FDeEMsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixxQkFBcUIsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLHFCQUFxQjtZQUMxRCxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQXVDO1FBQzVELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsaUNBQWlDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFXO1FBQzFDLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsc0JBQXNCLENBQzVCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxnQkFBZ0I7U0FDaEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FDM0IsS0FBOEM7UUFFOUMsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxpQ0FBaUMsS0FBSyxDQUFDLGdCQUFnQixhQUFhLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2TCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsK0JBQStCLENBQUMsR0FBVztRQUNqRCxPQUFPLDZCQUE2QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDZCQUE2QixDQUNuQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsZ0JBQWdCO1lBQ2hELFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLFNBQVM7U0FDbEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBbUM7UUFDcEQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxnQkFBZ0IsS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0ksQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEdBQVc7UUFDdEMsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFXO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixtQkFBbUIsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLG1CQUFtQjtTQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUN4QixLQUEyQztRQUUzQyxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHVCQUF1QixLQUFLLENBQUMsT0FBTyxnQkFBZ0IsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFLLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FDeEIsS0FBMkM7UUFFM0MsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxnQkFBZ0IsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RJLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFXO1FBQ3RDLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBVztRQUNwQyxNQUFNLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsT0FBTztZQUM5QixZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxZQUFZO1NBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBeUM7UUFDaEUsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxtQ0FBbUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDL0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEdBQVc7UUFDNUMsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FDOUIsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGtCQUFrQjtTQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHVCQUF1QixDQUM3QixLQUFnRDtRQUVoRCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLG1DQUFtQyxLQUFLLENBQUMsa0JBQWtCLGFBQWEsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNMLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxHQUFXO1FBQ25ELE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsK0JBQStCLENBQ3JDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0Isa0JBQWtCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxrQkFBa0I7WUFDcEQsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsU0FBUztTQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUN4QixLQUEyQztRQUUzQyxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHFDQUFxQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNuSyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBVztRQUM5QyxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUNoQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsb0JBQW9CO1NBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMseUJBQXlCLENBQy9CLEtBQWtEO1FBRWxELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcscUNBQXFDLEtBQUssQ0FBQyxvQkFBb0IsYUFBYSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLEdBQVc7UUFDckQsT0FBTyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxpQ0FBaUMsQ0FDdkMsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixvQkFBb0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLG9CQUFvQjtZQUN4RCxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQThCO1FBQzFDLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4SSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDakMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQVc7UUFDL0IsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxPQUFPO1NBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQXFDO1FBQ3hELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyxPQUFPLGFBQWEsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BLLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFXO1FBQ3hDLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsb0JBQW9CLENBQzFCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsT0FBTztZQUM5QixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBeUM7UUFDaEUsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxtQ0FBbUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDL0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEdBQVc7UUFDNUMsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FDOUIsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGtCQUFrQjtTQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHVCQUF1QixDQUM3QixLQUFnRDtRQUVoRCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLG1DQUFtQyxLQUFLLENBQUMsa0JBQWtCLGFBQWEsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNMLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxHQUFXO1FBQ25ELE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsK0JBQStCLENBQ3JDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0Isa0JBQWtCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxrQkFBa0I7WUFDcEQsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsU0FBUztTQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUN4QixLQUEyQztRQUUzQyxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHFDQUFxQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNuSyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBVztRQUM5QyxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUNoQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsb0JBQW9CO1NBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMseUJBQXlCLENBQy9CLEtBQWtEO1FBRWxELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcscUNBQXFDLEtBQUssQ0FBQyxvQkFBb0IsYUFBYSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLEdBQVc7UUFDckQsT0FBTyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxpQ0FBaUMsQ0FDdkMsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixvQkFBb0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLG9CQUFvQjtZQUN4RCxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsc0JBQXNCLENBQzVCLEtBQStDO1FBRS9DLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcseUNBQXlDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQzNLLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFXO1FBQ2xELE9BQU8sOEJBQThCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQ3BDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0Isd0JBQXdCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyx3QkFBd0I7U0FDaEUsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyw2QkFBNkIsQ0FDbkMsS0FBc0Q7UUFFdEQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyx5Q0FBeUMsS0FBSyxDQUFDLHdCQUF3QixhQUFhLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2TSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsdUNBQXVDLENBQUMsR0FBVztRQUN6RCxPQUFPLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHFDQUFxQyxDQUMzQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcscUNBQXFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsd0JBQXdCO1lBQ2hFLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLFNBQVM7U0FDbEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBOEI7UUFDMUMsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxRQUFRLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxVQUFVLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0SCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDakMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQVc7UUFDL0IsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQ3hCLEtBQTJDO1FBRTNDLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyxTQUFTLGdCQUFnQixDQUFDO0lBQ3hKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxHQUFXO1FBQzlDLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsMEJBQTBCLENBQ2hDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsU0FBUztTQUNsQyxDQUFDO0lBQ0gsQ0FBQzs7QUE5MUJGLGtEQSsxQkM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7O0FBQWpDLG9EQXNhQzs7O0FBcmFBLGtFQUFrRTtBQUNsRCx5Q0FBb0IsR0FBYTtJQUNoRCxpQ0FBaUM7SUFDakMsY0FBYztDQUNkLENBQUM7QUFDRiwyRUFBMkU7QUFDM0Qsa0RBQTZCLEdBQWE7SUFDekQsMENBQTBDO0lBQzFDLGNBQWM7Q0FDZCxDQUFDO0FBQ0Ysc0ZBQXNGO0FBQ3RFLDZEQUF3QyxHQUFhO0lBQ3BFLHFEQUFxRDtDQUNyRCxDQUFDO0FBQ0YseUZBQXlGO0FBQ3pFLGdFQUEyQyxHQUFhO0lBQ3ZFLHdEQUF3RDtDQUN4RCxDQUFDO0FBQ0YsOERBQThEO0FBQzlDLHFDQUFnQixHQUFhLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUM3RSxvRUFBb0U7QUFDcEQsMkNBQXNCLEdBQWE7SUFDbEQsbUNBQW1DO0lBQ25DLHdCQUF3QjtDQUN4QixDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELDhDQUF5QixHQUFhO0lBQ3JELHNDQUFzQztJQUN0Qyx3QkFBd0I7Q0FDeEIsQ0FBQztBQUNGLDhFQUE4RTtBQUM5RCxxREFBZ0MsR0FBYTtJQUM1RCw2Q0FBNkM7Q0FDN0MsQ0FBQztBQUNGLGtFQUFrRTtBQUNsRCx5Q0FBb0IsR0FBYTtJQUNoRCxpQ0FBaUM7SUFDakMsd0JBQXdCO0NBQ3hCLENBQUM7QUFDRix5RUFBeUU7QUFDekQsZ0RBQTJCLEdBQWE7SUFDdkQsd0NBQXdDO0NBQ3hDLENBQUM7QUFDRiw4REFBOEQ7QUFDOUMscUNBQWdCLEdBQWE7SUFDNUMsNkJBQTZCO0lBQzdCLHdCQUF3QjtDQUN4QixDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELDJDQUFzQixHQUFhO0lBQ2xELG1DQUFtQztJQUNuQyx3QkFBd0I7Q0FDeEIsQ0FBQztBQUNGLDJFQUEyRTtBQUMzRCxrREFBNkIsR0FBYTtJQUN6RCwwQ0FBMEM7Q0FDMUMsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCw2Q0FBd0IsR0FBYTtJQUNwRCxxQ0FBcUM7SUFDckMsd0JBQXdCO0NBQ3hCLENBQUM7QUFDRiw2RUFBNkU7QUFDN0Qsb0RBQStCLEdBQWE7SUFDM0QsNENBQTRDO0NBQzVDLENBQUM7QUFDRix5REFBeUQ7QUFDekMsZ0NBQVcsR0FBYTtJQUN2Qyx3QkFBd0I7SUFDeEIsd0JBQXdCO0NBQ3hCLENBQUM7QUFDRiw2RUFBNkU7QUFDN0Qsb0RBQStCLEdBQWE7SUFDM0QsNENBQTRDO0NBQzVDLENBQUM7QUFDRixnRUFBZ0U7QUFDaEQsdUNBQWtCLEdBQWE7SUFDOUMsK0JBQStCO0NBQy9CLENBQUM7QUFDRixvRUFBb0U7QUFDcEQsMkNBQXNCLEdBQWE7SUFDbEQsbUNBQW1DO0lBQ25DLHdCQUF3QjtDQUN4QixDQUFDO0FBQ0YsMkVBQTJFO0FBQzNELGtEQUE2QixHQUFhO0lBQ3pELDBDQUEwQztDQUMxQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELDZDQUF3QixHQUFhO0lBQ3BELHFDQUFxQztJQUNyQyx3QkFBd0I7Q0FDeEIsQ0FBQztBQUNGLDZFQUE2RTtBQUM3RCxvREFBK0IsR0FBYTtJQUMzRCw0Q0FBNEM7Q0FDNUMsQ0FBQztBQUNGLHFFQUFxRTtBQUNyRCw0Q0FBdUIsR0FBYTtJQUNuRCxvQ0FBb0M7SUFDcEMsY0FBYztDQUNkLENBQUM7QUFDRiwwRUFBMEU7QUFDMUQsaURBQTRCLEdBQWE7SUFDeEQseUNBQXlDO0lBQ3pDLHdCQUF3QjtDQUN4QixDQUFDO0FBQ0YsaUZBQWlGO0FBQ2pFLHdEQUFtQyxHQUFhO0lBQy9ELGdEQUFnRDtDQUNoRCxDQUFDO0FBQ0YsNkRBQTZEO0FBQzdDLG9DQUFlLEdBQWEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBQzNFLHVFQUF1RTtBQUN2RCw4Q0FBeUIsR0FBYTtJQUNyRCxzQ0FBc0M7Q0FDdEMsQ0FBQztBQUNGLGtFQUFrRTtBQUNsRCx5Q0FBb0IsR0FBYTtJQUNoRCxpQ0FBaUM7Q0FDakMsQ0FBQztBQUNGLDhEQUE4RDtBQUM5QyxxQ0FBZ0IsR0FBYSxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDN0UsOERBQThEO0FBQzlDLHFDQUFnQixHQUFhLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUM3RSxvRUFBb0U7QUFDcEQsMkNBQXNCLEdBQWE7SUFDbEQsbUNBQW1DO0NBQ25DLENBQUM7QUFDRixzRUFBc0U7QUFDdEQsNkNBQXdCLEdBQWE7SUFDcEQscUNBQXFDO0NBQ3JDLENBQUM7QUFDRix5REFBeUQ7QUFDekMsZ0NBQVcsR0FBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDbkUsb0VBQW9FO0FBQ3BELDJDQUFzQixHQUFhO0lBQ2xELG1DQUFtQztDQUNuQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELDZDQUF3QixHQUFhO0lBQ3BELHFDQUFxQztDQUNyQyxDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELGlEQUE0QixHQUFhO0lBQ3hELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0YsK0RBQStEO0FBQy9DLHNDQUFpQixHQUFhO0lBQzdDLDhCQUE4QjtDQUM5QixDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELDhDQUF5QixHQUFhO0lBQ3JELHNDQUFzQztDQUN0QyxDQUFDO0FBQ0YsZ0ZBQWdGO0FBQ2hFLHVEQUFrQyxHQUFhO0lBQzlELCtDQUErQztDQUMvQyxDQUFDO0FBQ0YsK0RBQStEO0FBQy9DLHdDQUFtQixHQUFhO0lBQy9DLDhCQUE4QjtDQUM5QixDQUFDO0FBQ0YscUVBQXFFO0FBQ3JELDhDQUF5QixHQUFhO0lBQ3JELG9DQUFvQztDQUNwQyxDQUFDO0FBQ0YsMERBQTBEO0FBQzFDLG1DQUFjLEdBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ3ZFLHlFQUF5RTtBQUN6RCxrREFBNkIsR0FBYTtJQUN6RCx3Q0FBd0M7Q0FDeEMsQ0FBQztBQUNGLGlFQUFpRTtBQUNqRCwwQ0FBcUIsR0FBYTtJQUNqRCxnQ0FBZ0M7Q0FDaEMsQ0FBQztBQUNGLG9FQUFvRTtBQUNwRCw2Q0FBd0IsR0FBYTtJQUNwRCxtQ0FBbUM7Q0FDbkMsQ0FBQztBQUNGLDJFQUEyRTtBQUMzRCxvREFBK0IsR0FBYTtJQUMzRCwwQ0FBMEM7Q0FDMUMsQ0FBQztBQUNGLCtEQUErRDtBQUMvQyx3Q0FBbUIsR0FBYTtJQUMvQyw4QkFBOEI7Q0FDOUIsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCwrQ0FBMEIsR0FBYTtJQUN0RCxxQ0FBcUM7Q0FDckMsQ0FBQztBQUNGLDJEQUEyRDtBQUMzQyxvQ0FBZSxHQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUN6RSwyREFBMkQ7QUFDM0Msb0NBQWUsR0FBYSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFDekUsaUVBQWlFO0FBQ2pELDBDQUFxQixHQUFhO0lBQ2pELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0YsaUVBQWlFO0FBQ2pELDBDQUFxQixHQUFhO0lBQ2pELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELGlEQUE0QixHQUFhO0lBQ3hELHVDQUF1QztDQUN2QyxDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELDRDQUF1QixHQUFhO0lBQ25ELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELG1EQUE4QixHQUFhO0lBQzFELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0Ysc0RBQXNEO0FBQ3RDLCtCQUFVLEdBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQy9ELDBFQUEwRTtBQUMxRCxtREFBOEIsR0FBYTtJQUMxRCx5Q0FBeUM7Q0FDekMsQ0FBQztBQUNGLDhFQUE4RTtBQUM5RCx1REFBa0MsR0FBYTtJQUM5RCw2Q0FBNkM7Q0FDN0MsQ0FBQztBQUNGLDZEQUE2RDtBQUM3QyxzQ0FBaUIsR0FBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDN0UsaUVBQWlFO0FBQ2pELDBDQUFxQixHQUFhO0lBQ2pELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELGlEQUE0QixHQUFhO0lBQ3hELHVDQUF1QztDQUN2QyxDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELDRDQUF1QixHQUFhO0lBQ25ELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELG1EQUE4QixHQUFhO0lBQzFELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELCtDQUEwQixHQUFhO0lBQ3RELHFDQUFxQztDQUNyQyxDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELGdEQUEyQixHQUFhO0lBQ3ZELHNDQUFzQztDQUN0QyxDQUFDO0FBQ0YsOEVBQThFO0FBQzlELHVEQUFrQyxHQUFhO0lBQzlELDZDQUE2QztDQUM3QyxDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELG1EQUE4QixHQUFhO0lBQzFELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0YsK0VBQStFO0FBQy9ELHNEQUFpQyxHQUFhO0lBQzdELDhDQUE4QztDQUM5QyxDQUFDO0FBQ0YsaUVBQWlFO0FBQ2pELHdDQUFtQixHQUFhO0lBQy9DLGdDQUFnQztDQUNoQyxDQUFDO0FBQ0YsdUZBQXVGO0FBQ3ZFLDhEQUF5QyxHQUFhO0lBQ3JFLHNEQUFzRDtDQUN0RCxDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELDBDQUFxQixHQUFhO0lBQ2pELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YsNERBQTREO0FBQzVDLG1DQUFjLEdBQWEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQ3pFLDZFQUE2RTtBQUM3RCxvREFBK0IsR0FBYTtJQUMzRCw0Q0FBNEM7Q0FDNUMsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCw2Q0FBd0IsR0FBYTtJQUNwRCxxQ0FBcUM7Q0FDckMsQ0FBQztBQUNGLHdFQUF3RTtBQUN4RCwrQ0FBMEIsR0FBYTtJQUN0RCx1Q0FBdUM7Q0FDdkMsQ0FBQztBQUNGLGlFQUFpRTtBQUNqRCx3Q0FBbUIsR0FBYTtJQUMvQyxnQ0FBZ0M7Q0FDaEMsQ0FBQztBQUNGLDZEQUE2RDtBQUM3QyxvQ0FBZSxHQUFhLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUMzRSw2REFBNkQ7QUFDN0Msb0NBQWUsR0FBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDM0UsMEVBQTBFO0FBQzFELGlEQUE0QixHQUFhO0lBQ3hELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELDBDQUFxQixHQUFhO0lBQ2pELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELDZDQUF3QixHQUFhO0lBQ3BELHFDQUFxQztDQUNyQyxDQUFDO0FBQ0YsNEVBQTRFO0FBQzVELG1EQUE4QixHQUFhO0lBQzFELDJDQUEyQztDQUMzQyxDQUFDO0FBQ0YscUVBQXFFO0FBQ3JELDRDQUF1QixHQUFhO0lBQ25ELG9DQUFvQztDQUNwQyxDQUFDO0FBQ0YsNkVBQTZFO0FBQzdELG9EQUErQixHQUFhO0lBQzNELDRDQUE0QztDQUM1QyxDQUFDO0FBQ0YsK0RBQStEO0FBQy9DLHNDQUFpQixHQUFhO0lBQzdDLDhCQUE4QjtDQUM5QixDQUFDO0FBQ0Ysd0RBQXdEO0FBQ3hDLCtCQUFVLEdBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ2pFLHFFQUFxRTtBQUNyRCw0Q0FBdUIsR0FBYTtJQUNuRCxvQ0FBb0M7Q0FDcEMsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCxpREFBNEIsR0FBYTtJQUN4RCx5Q0FBeUM7Q0FDekMsQ0FBQztBQUNGLG1FQUFtRTtBQUNuRCwwQ0FBcUIsR0FBYTtJQUNqRCxrQ0FBa0M7Q0FDbEMsQ0FBQztBQUNGLDRFQUE0RTtBQUM1RCxtREFBOEIsR0FBYTtJQUMxRCwyQ0FBMkM7Q0FDM0MsQ0FBQztBQUNGLHFFQUFxRTtBQUNyRCw0Q0FBdUIsR0FBYTtJQUNuRCxvQ0FBb0M7Q0FDcEMsQ0FBQztBQUNGLGdGQUFnRjtBQUNoRSx1REFBa0MsR0FBYTtJQUM5RCwrQ0FBK0M7Q0FDL0MsQ0FBQztBQUNGLHlFQUF5RTtBQUN6RCxnREFBMkIsR0FBYTtJQUN2RCx3Q0FBd0M7Q0FDeEMsQ0FBQztBQUNGLGlFQUFpRTtBQUNqRCx3Q0FBbUIsR0FBYTtJQUMvQyxnQ0FBZ0M7Q0FDaEMsQ0FBQztBQUNGLDhEQUE4RDtBQUM5QyxxQ0FBZ0IsR0FBYSxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDN0Usd0VBQXdFO0FBQ3hELCtDQUEwQixHQUFhLEVBQUUsQ0FBQztBQUMxRCxpRUFBaUU7QUFDakQsd0NBQW1CLEdBQWE7SUFDL0MsY0FBYztJQUNkLGdDQUFnQztJQUNoQyx3QkFBd0I7Q0FDeEIsQ0FBQztBQUNGLGdFQUFnRTtBQUNoRCx1Q0FBa0IsR0FBYTtJQUM5QywrQkFBK0I7Q0FDL0IsQ0FBQztBQUNGLHlEQUF5RDtBQUN6QyxnQ0FBVyxHQUFhLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUNuRSwyREFBMkQ7QUFDM0Msa0NBQWEsR0FBYSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFDdkUsb0VBQW9FO0FBQ3BELDJDQUFzQixHQUFhO0lBQ2xELG1DQUFtQztDQUNuQyxDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELDhDQUF5QixHQUFhO0lBQ3JELHNDQUFzQztDQUN0QyxDQUFDO0FBQ0Ysa0VBQWtFO0FBQ2xELHlDQUFvQixHQUFhO0lBQ2hELGlDQUFpQztDQUNqQyxDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELDJDQUFzQixHQUFhO0lBQ2xELG1DQUFtQztDQUNuQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELDZDQUF3QixHQUFhO0lBQ3BELHFDQUFxQztDQUNyQyxDQUFDO0FBQ0YseURBQXlEO0FBQ3pDLGdDQUFXLEdBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ25FLGlGQUFpRjtBQUNqRSx3REFBbUMsR0FBYTtJQUMvRCxnREFBZ0Q7Q0FDaEQsQ0FBQztBQUNGLG9FQUFvRTtBQUNwRCwyQ0FBc0IsR0FBYTtJQUNsRCxtQ0FBbUM7Q0FDbkMsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCw2Q0FBd0IsR0FBYTtJQUNwRCxxQ0FBcUM7Q0FDckMsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCxpREFBNEIsR0FBYTtJQUN4RCx5Q0FBeUM7Q0FDekMsQ0FBQztBQUNGLDZFQUE2RTtBQUM3RCxvREFBK0IsR0FBYTtJQUMzRCw0Q0FBNEM7Q0FDNUMsQ0FBQztBQUdIOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUErRWhDOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFhO1FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWdCO1FBQzlCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBQ25FLENBQUM7O0FBbEdGLG9EQW1HQzs7O0FBbEdBLHNFQUFzRTtBQUN0RCx3REFBbUMsR0FBYTtJQUMvRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRix5RUFBeUU7QUFDekQsMkRBQXNDLEdBQWE7SUFDbEUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELHNEQUFpQyxHQUFhO0lBQzdELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLGdFQUFnRTtBQUNoRCxrREFBNkIsR0FBYTtJQUN6RCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixzRUFBc0U7QUFDdEQsd0RBQW1DLEdBQWE7SUFDL0QsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELDBEQUFxQyxHQUFhO0lBQ2pFLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDJEQUEyRDtBQUMzQyw2Q0FBd0IsR0FBYTtJQUNwRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixzRUFBc0U7QUFDdEQsd0RBQW1DLEdBQWE7SUFDL0QsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELDBEQUFxQyxHQUFhO0lBQ2pFLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDRFQUE0RTtBQUM1RCw4REFBeUMsR0FBYTtJQUNyRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixtRUFBbUU7QUFDbkQscURBQWdDLEdBQWE7SUFDNUQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELHFEQUFnQyxHQUFhO0lBQzVELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDJEQUEyRDtBQUMzQyw2Q0FBd0IsR0FBYTtJQUNwRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0MsK0NBQTBCLEdBQWE7SUFDdEQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBRUYsdURBQXVEO0FBQ3ZDLG9DQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFDN0Qsd0RBQXdEO0FBQ3hDLHFDQUFnQixHQUFHLDJCQUEyQixDQUFDO0FBQy9ELGlEQUFpRDtBQUNqQyxpQ0FBWSxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2dyZWVuZ3Jhc3MuanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGdyZWVuZ3Jhc3Mgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyZWVuZ3Jhc3NBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiZ3JlZW5ncmFzc1wiO1xuXG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6QXNzb2NpYXRlUm9sZVRvR3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZVJvbGVUb0dyb3VwID0gXCJncmVlbmdyYXNzOkFzc29jaWF0ZVJvbGVUb0dyb3VwXCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGdyZWVuZ3Jhc3M6QXNzb2NpYXRlU2VydmljZVJvbGVUb0FjY291bnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZVNlcnZpY2VSb2xlVG9BY2NvdW50ID1cblx0XHRcImdyZWVuZ3Jhc3M6QXNzb2NpYXRlU2VydmljZVJvbGVUb0FjY291bnRcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpCYXRjaEFzc29jaWF0ZUNsaWVudERldmljZVdpdGhDb3JlRGV2aWNlICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaEFzc29jaWF0ZUNsaWVudERldmljZVdpdGhDb3JlRGV2aWNlID1cblx0XHRcImdyZWVuZ3Jhc3M6QmF0Y2hBc3NvY2lhdGVDbGllbnREZXZpY2VXaXRoQ29yZURldmljZVwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkJhdGNoRGlzYXNzb2NpYXRlQ2xpZW50RGV2aWNlRnJvbUNvcmVEZXZpY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoRGlzYXNzb2NpYXRlQ2xpZW50RGV2aWNlRnJvbUNvcmVEZXZpY2UgPVxuXHRcdFwiZ3JlZW5ncmFzczpCYXRjaERpc2Fzc29jaWF0ZUNsaWVudERldmljZUZyb21Db3JlRGV2aWNlXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q2FuY2VsRGVwbG95bWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsRGVwbG95bWVudCA9IFwiZ3JlZW5ncmFzczpDYW5jZWxEZXBsb3ltZW50XCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlQ29tcG9uZW50VmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29tcG9uZW50VmVyc2lvbiA9IFwiZ3JlZW5ncmFzczpDcmVhdGVDb21wb25lbnRWZXJzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUNvbm5lY3RvckRlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZUNvcmVEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb3JlRGVmaW5pdGlvbiA9IFwiZ3JlZW5ncmFzczpDcmVhdGVDb3JlRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZUNvcmVEZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29yZURlZmluaXRpb25WZXJzaW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlQ29yZURlZmluaXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlRGVwbG95bWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGVwbG95bWVudCA9IFwiZ3JlZW5ncmFzczpDcmVhdGVEZXBsb3ltZW50XCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlRGV2aWNlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGV2aWNlRGVmaW5pdGlvbiA9IFwiZ3JlZW5ncmFzczpDcmVhdGVEZXZpY2VEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlRGV2aWNlRGVmaW5pdGlvblZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURldmljZURlZmluaXRpb25WZXJzaW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlRGV2aWNlRGVmaW5pdGlvblZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVGdW5jdGlvbkRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlR3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUdyb3VwID0gXCJncmVlbmdyYXNzOkNyZWF0ZUdyb3VwXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlR3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0eSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlR3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0eSA9XG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHlcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVHcm91cFZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUdyb3VwVmVyc2lvbiA9IFwiZ3JlZW5ncmFzczpDcmVhdGVHcm91cFZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVMb2dnZXJEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMb2dnZXJEZWZpbml0aW9uID0gXCJncmVlbmdyYXNzOkNyZWF0ZUxvZ2dlckRlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVMb2dnZXJEZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTG9nZ2VyRGVmaW5pdGlvblZlcnNpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVMb2dnZXJEZWZpbml0aW9uVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZVJlc291cmNlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZVJlc291cmNlRGVmaW5pdGlvblZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVTb2Z0d2FyZVVwZGF0ZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU29mdHdhcmVVcGRhdGVKb2IgPVxuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVTb2Z0d2FyZVVwZGF0ZUpvYlwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpEZWxldGVDb21wb25lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbXBvbmVudCA9IFwiZ3JlZW5ncmFzczpEZWxldGVDb21wb25lbnRcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpEZWxldGVDb25uZWN0b3JEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25uZWN0b3JEZWZpbml0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6RGVsZXRlQ29ubmVjdG9yRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkRlbGV0ZUNvcmVEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb3JlRGVmaW5pdGlvbiA9IFwiZ3JlZW5ncmFzczpEZWxldGVDb3JlRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkRlbGV0ZUNvcmVEZXZpY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvcmVEZXZpY2UgPSBcImdyZWVuZ3Jhc3M6RGVsZXRlQ29yZURldmljZVwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkRlbGV0ZURlcGxveW1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURlcGxveW1lbnQgPSBcImdyZWVuZ3Jhc3M6RGVsZXRlRGVwbG95bWVudFwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkRlbGV0ZURldmljZURlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURldmljZURlZmluaXRpb24gPSBcImdyZWVuZ3Jhc3M6RGVsZXRlRGV2aWNlRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkRlbGV0ZUZ1bmN0aW9uRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRnVuY3Rpb25EZWZpbml0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6RGVsZXRlRnVuY3Rpb25EZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6RGVsZXRlR3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUdyb3VwID0gXCJncmVlbmdyYXNzOkRlbGV0ZUdyb3VwXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6RGVsZXRlTG9nZ2VyRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTG9nZ2VyRGVmaW5pdGlvbiA9IFwiZ3JlZW5ncmFzczpEZWxldGVMb2dnZXJEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6RGVsZXRlUmVzb3VyY2VEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXNvdXJjZURlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpEZWxldGVSZXNvdXJjZURlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpEZWxldGVTdWJzY3JpcHRpb25EZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTdWJzY3JpcHRpb25EZWZpbml0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6RGVsZXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6RGVzY3JpYmVDb21wb25lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ29tcG9uZW50ID0gXCJncmVlbmdyYXNzOkRlc2NyaWJlQ29tcG9uZW50XCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6RGlzYXNzb2NpYXRlUm9sZUZyb21Hcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlUm9sZUZyb21Hcm91cCA9XG5cdFx0XCJncmVlbmdyYXNzOkRpc2Fzc29jaWF0ZVJvbGVGcm9tR3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpEaXNhc3NvY2lhdGVTZXJ2aWNlUm9sZUZyb21BY2NvdW50ICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVTZXJ2aWNlUm9sZUZyb21BY2NvdW50ID1cblx0XHRcImdyZWVuZ3Jhc3M6RGlzYXNzb2NpYXRlU2VydmljZVJvbGVGcm9tQWNjb3VudFwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6RGlzY292ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2NvdmVyID0gXCJncmVlbmdyYXNzOkRpc2NvdmVyXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRBc3NvY2lhdGVkUm9sZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QXNzb2NpYXRlZFJvbGUgPSBcImdyZWVuZ3Jhc3M6R2V0QXNzb2NpYXRlZFJvbGVcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldEJ1bGtEZXBsb3ltZW50U3RhdHVzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRCdWxrRGVwbG95bWVudFN0YXR1cyA9XG5cdFx0XCJncmVlbmdyYXNzOkdldEJ1bGtEZXBsb3ltZW50U3RhdHVzXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRDb21wb25lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbXBvbmVudCA9IFwiZ3JlZW5ncmFzczpHZXRDb21wb25lbnRcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldENvbXBvbmVudFZlcnNpb25BcnRpZmFjdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29tcG9uZW50VmVyc2lvbkFydGlmYWN0ID1cblx0XHRcImdyZWVuZ3Jhc3M6R2V0Q29tcG9uZW50VmVyc2lvbkFydGlmYWN0XCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRDb25uZWN0aXZpdHlJbmZvICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb25uZWN0aXZpdHlJbmZvID0gXCJncmVlbmdyYXNzOkdldENvbm5lY3Rpdml0eUluZm9cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldENvbm5lY3RvckRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbm5lY3RvckRlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRDb25uZWN0b3JEZWZpbml0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0Q29yZURlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvcmVEZWZpbml0aW9uID0gXCJncmVlbmdyYXNzOkdldENvcmVEZWZpbml0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRDb3JlRGVmaW5pdGlvblZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvcmVEZWZpbml0aW9uVmVyc2lvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldENvcmVEZWZpbml0aW9uVmVyc2lvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0Q29yZURldmljZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29yZURldmljZSA9IFwiZ3JlZW5ncmFzczpHZXRDb3JlRGV2aWNlXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXREZXBsb3ltZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREZXBsb3ltZW50ID0gXCJncmVlbmdyYXNzOkdldERlcGxveW1lbnRcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldERlcGxveW1lbnRTdGF0dXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERlcGxveW1lbnRTdGF0dXMgPSBcImdyZWVuZ3Jhc3M6R2V0RGVwbG95bWVudFN0YXR1c1wiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0RGV2aWNlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RGV2aWNlRGVmaW5pdGlvbiA9IFwiZ3JlZW5ncmFzczpHZXREZXZpY2VEZWZpbml0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXREZXZpY2VEZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RGV2aWNlRGVmaW5pdGlvblZlcnNpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXREZXZpY2VEZWZpbml0aW9uVmVyc2lvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0RnVuY3Rpb25EZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGdW5jdGlvbkRlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRGdW5jdGlvbkRlZmluaXRpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0R3JvdXAgPSBcImdyZWVuZ3Jhc3M6R2V0R3JvdXBcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHkgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHkgPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRHcm91cENlcnRpZmljYXRlQXV0aG9yaXR5XCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRHcm91cENlcnRpZmljYXRlQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0R3JvdXBDZXJ0aWZpY2F0ZUNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRHcm91cENlcnRpZmljYXRlQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0R3JvdXBWZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRHcm91cFZlcnNpb24gPSBcImdyZWVuZ3Jhc3M6R2V0R3JvdXBWZXJzaW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRMb2dnZXJEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRMb2dnZXJEZWZpbml0aW9uID0gXCJncmVlbmdyYXNzOkdldExvZ2dlckRlZmluaXRpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldExvZ2dlckRlZmluaXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRMb2dnZXJEZWZpbml0aW9uVmVyc2lvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldExvZ2dlckRlZmluaXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRSZXNvdXJjZURlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlc291cmNlRGVmaW5pdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldFJlc291cmNlRGVmaW5pdGlvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0UmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldFNlcnZpY2VSb2xlRm9yQWNjb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2VydmljZVJvbGVGb3JBY2NvdW50ID1cblx0XHRcImdyZWVuZ3Jhc3M6R2V0U2VydmljZVJvbGVGb3JBY2NvdW50XCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6R2V0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6R2V0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldFRoaW5nUnVudGltZUNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRoaW5nUnVudGltZUNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpMaXN0QnVsa0RlcGxveW1lbnREZXRhaWxlZFJlcG9ydHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RCdWxrRGVwbG95bWVudERldGFpbGVkUmVwb3J0cyA9XG5cdFx0XCJncmVlbmdyYXNzOkxpc3RCdWxrRGVwbG95bWVudERldGFpbGVkUmVwb3J0c1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdEJ1bGtEZXBsb3ltZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEJ1bGtEZXBsb3ltZW50cyA9IFwiZ3JlZW5ncmFzczpMaXN0QnVsa0RlcGxveW1lbnRzXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0Q2xpZW50RGV2aWNlc0Fzc29jaWF0ZWRXaXRoQ29yZURldmljZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENsaWVudERldmljZXNBc3NvY2lhdGVkV2l0aENvcmVEZXZpY2UgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0Q2xpZW50RGV2aWNlc0Fzc29jaWF0ZWRXaXRoQ29yZURldmljZVwiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdENvbXBvbmVudFZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29tcG9uZW50VmVyc2lvbnMgPSBcImdyZWVuZ3Jhc3M6TGlzdENvbXBvbmVudFZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0Q29tcG9uZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbXBvbmVudHMgPSBcImdyZWVuZ3Jhc3M6TGlzdENvbXBvbmVudHNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbnMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0Q29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0Q29ubmVjdG9yRGVmaW5pdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb25uZWN0b3JEZWZpbml0aW9ucyA9XG5cdFx0XCJncmVlbmdyYXNzOkxpc3RDb25uZWN0b3JEZWZpbml0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdENvcmVEZWZpbml0aW9uVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb3JlRGVmaW5pdGlvblZlcnNpb25zID1cblx0XHRcImdyZWVuZ3Jhc3M6TGlzdENvcmVEZWZpbml0aW9uVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RDb3JlRGVmaW5pdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb3JlRGVmaW5pdGlvbnMgPSBcImdyZWVuZ3Jhc3M6TGlzdENvcmVEZWZpbml0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdENvcmVEZXZpY2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29yZURldmljZXMgPSBcImdyZWVuZ3Jhc3M6TGlzdENvcmVEZXZpY2VzXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0RGVwbG95bWVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REZXBsb3ltZW50cyA9IFwiZ3JlZW5ncmFzczpMaXN0RGVwbG95bWVudHNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3REZXZpY2VEZWZpbml0aW9uVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REZXZpY2VEZWZpbml0aW9uVmVyc2lvbnMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0RGV2aWNlRGVmaW5pdGlvblZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0RGV2aWNlRGVmaW5pdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REZXZpY2VEZWZpbml0aW9ucyA9IFwiZ3JlZW5ncmFzczpMaXN0RGV2aWNlRGVmaW5pdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RFZmZlY3RpdmVEZXBsb3ltZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEVmZmVjdGl2ZURlcGxveW1lbnRzID1cblx0XHRcImdyZWVuZ3Jhc3M6TGlzdEVmZmVjdGl2ZURlcGxveW1lbnRzXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0RnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9ucyA9XG5cdFx0XCJncmVlbmdyYXNzOkxpc3RGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdEZ1bmN0aW9uRGVmaW5pdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbkRlZmluaXRpb25zID1cblx0XHRcImdyZWVuZ3Jhc3M6TGlzdEZ1bmN0aW9uRGVmaW5pdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RHcm91cENlcnRpZmljYXRlQXV0aG9yaXRpZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RHcm91cENlcnRpZmljYXRlQXV0aG9yaXRpZXMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0R3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0aWVzXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0R3JvdXBWZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdyb3VwVmVyc2lvbnMgPSBcImdyZWVuZ3Jhc3M6TGlzdEdyb3VwVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RHcm91cHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RHcm91cHMgPSBcImdyZWVuZ3Jhc3M6TGlzdEdyb3Vwc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdEluc3RhbGxlZENvbXBvbmVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbnN0YWxsZWRDb21wb25lbnRzID1cblx0XHRcImdyZWVuZ3Jhc3M6TGlzdEluc3RhbGxlZENvbXBvbmVudHNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RMb2dnZXJEZWZpbml0aW9uVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMb2dnZXJEZWZpbml0aW9uVmVyc2lvbnMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0TG9nZ2VyRGVmaW5pdGlvblZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0TG9nZ2VyRGVmaW5pdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMb2dnZXJEZWZpbml0aW9ucyA9IFwiZ3JlZW5ncmFzczpMaXN0TG9nZ2VyRGVmaW5pdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RSZXNvdXJjZURlZmluaXRpb25WZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25zID1cblx0XHRcImdyZWVuZ3Jhc3M6TGlzdFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0UmVzb3VyY2VEZWZpbml0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlRGVmaW5pdGlvbnMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0UmVzb3VyY2VEZWZpbml0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9ucyA9XG5cdFx0XCJncmVlbmdyYXNzOkxpc3RTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RTdWJzY3JpcHRpb25EZWZpbml0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25zID1cblx0XHRcImdyZWVuZ3Jhc3M6TGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25zXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJncmVlbmdyYXNzOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpSZXNldERlcGxveW1lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBSZXNldERlcGxveW1lbnRzID0gXCJncmVlbmdyYXNzOlJlc2V0RGVwbG95bWVudHNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOlJlc29sdmVDb21wb25lbnRDYW5kaWRhdGVzICovXG5cdHN0YXRpYyByZWFkb25seSBSZXNvbHZlQ29tcG9uZW50Q2FuZGlkYXRlcyA9XG5cdFx0XCJncmVlbmdyYXNzOlJlc29sdmVDb21wb25lbnRDYW5kaWRhdGVzXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6U3RhcnRCdWxrRGVwbG95bWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRCdWxrRGVwbG95bWVudCA9IFwiZ3JlZW5ncmFzczpTdGFydEJ1bGtEZXBsb3ltZW50XCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6U3RvcEJ1bGtEZXBsb3ltZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wQnVsa0RlcGxveW1lbnQgPSBcImdyZWVuZ3Jhc3M6U3RvcEJ1bGtEZXBsb3ltZW50XCI7XG5cdC8qKiBbVGFnZ2luZ10gZ3JlZW5ncmFzczpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImdyZWVuZ3Jhc3M6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtUYWdnaW5nXSBncmVlbmdyYXNzOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImdyZWVuZ3Jhc3M6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOlVwZGF0ZUNvbm5lY3Rpdml0eUluZm8gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbm5lY3Rpdml0eUluZm8gPSBcImdyZWVuZ3Jhc3M6VXBkYXRlQ29ubmVjdGl2aXR5SW5mb1wiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOlVwZGF0ZUNvbm5lY3RvckRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbm5lY3RvckRlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVDb25uZWN0b3JEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6VXBkYXRlQ29yZURlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvcmVEZWZpbml0aW9uID0gXCJncmVlbmdyYXNzOlVwZGF0ZUNvcmVEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6VXBkYXRlRGV2aWNlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGV2aWNlRGVmaW5pdGlvbiA9IFwiZ3JlZW5ncmFzczpVcGRhdGVEZXZpY2VEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6VXBkYXRlRnVuY3Rpb25EZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGdW5jdGlvbkRlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVGdW5jdGlvbkRlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpVcGRhdGVHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlR3JvdXAgPSBcImdyZWVuZ3Jhc3M6VXBkYXRlR3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpVcGRhdGVHcm91cENlcnRpZmljYXRlQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlR3JvdXBDZXJ0aWZpY2F0ZUNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVHcm91cENlcnRpZmljYXRlQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOlVwZGF0ZUxvZ2dlckRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUxvZ2dlckRlZmluaXRpb24gPSBcImdyZWVuZ3Jhc3M6VXBkYXRlTG9nZ2VyRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOlVwZGF0ZVJlc291cmNlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVzb3VyY2VEZWZpbml0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6VXBkYXRlUmVzb3VyY2VEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6VXBkYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpVcGRhdGVUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6VXBkYXRlVGhpbmdSdW50aW1lQ29uZmlndXJhdGlvblwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkRlc2NyaWJlQ29tcG9uZW50LFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkRpc2NvdmVyLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldEFzc29jaWF0ZWRSb2xlLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldEJ1bGtEZXBsb3ltZW50U3RhdHVzLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldENvbXBvbmVudCxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRDb21wb25lbnRWZXJzaW9uQXJ0aWZhY3QsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0Q29ubmVjdGl2aXR5SW5mbyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRDb25uZWN0b3JEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldENvcmVEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldENvcmVEZWZpbml0aW9uVmVyc2lvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRDb3JlRGV2aWNlLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldERlcGxveW1lbnQsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0RGVwbG95bWVudFN0YXR1cyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXREZXZpY2VEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldERldmljZURlZmluaXRpb25WZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldEZ1bmN0aW9uRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldEdyb3VwLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHksXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0R3JvdXBDZXJ0aWZpY2F0ZUNvbmZpZ3VyYXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0R3JvdXBWZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldExvZ2dlckRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0TG9nZ2VyRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0UmVzb3VyY2VEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldFJlc291cmNlRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0U2VydmljZVJvbGVGb3JBY2NvdW50LFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldFN1YnNjcmlwdGlvbkRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0VGhpbmdSdW50aW1lQ29uZmlndXJhdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0QnVsa0RlcGxveW1lbnREZXRhaWxlZFJlcG9ydHMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5Bc3NvY2lhdGVSb2xlVG9Hcm91cCxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5CYXRjaEFzc29jaWF0ZUNsaWVudERldmljZVdpdGhDb3JlRGV2aWNlLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkJhdGNoRGlzYXNzb2NpYXRlQ2xpZW50RGV2aWNlRnJvbUNvcmVEZXZpY2UsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ2FuY2VsRGVwbG95bWVudCxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVDb21wb25lbnRWZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZUNvbm5lY3RvckRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlQ29yZURlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlQ29yZURlZmluaXRpb25WZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZURlcGxveW1lbnQsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlRGV2aWNlRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVEZXZpY2VEZWZpbml0aW9uVmVyc2lvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVGdW5jdGlvbkRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVHcm91cCxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVHcm91cENlcnRpZmljYXRlQXV0aG9yaXR5LFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZUdyb3VwVmVyc2lvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVMb2dnZXJEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZUxvZ2dlckRlZmluaXRpb25WZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZVJlc291cmNlRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZVNvZnR3YXJlVXBkYXRlSm9iLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVsZXRlQ29tcG9uZW50LFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkRlbGV0ZUNvbm5lY3RvckRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVsZXRlQ29yZURlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVsZXRlQ29yZURldmljZSxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5EZWxldGVEZXBsb3ltZW50LFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkRlbGV0ZURldmljZURlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVsZXRlRnVuY3Rpb25EZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkRlbGV0ZUdyb3VwLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkRlbGV0ZUxvZ2dlckRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVsZXRlUmVzb3VyY2VEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkRlbGV0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGlzYXNzb2NpYXRlUm9sZUZyb21Hcm91cCxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5EaXNhc3NvY2lhdGVTZXJ2aWNlUm9sZUZyb21BY2NvdW50LFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlJlc2V0RGVwbG95bWVudHMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuU3RhcnRCdWxrRGVwbG95bWVudCxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5TdG9wQnVsa0RlcGxveW1lbnQsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVXBkYXRlQ29ubmVjdGl2aXR5SW5mbyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5VcGRhdGVDb25uZWN0b3JEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlVwZGF0ZUNvcmVEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlVwZGF0ZURldmljZURlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVXBkYXRlRnVuY3Rpb25EZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlVwZGF0ZUdyb3VwLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlVwZGF0ZUdyb3VwQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlVwZGF0ZUxvZ2dlckRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVXBkYXRlUmVzb3VyY2VEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlVwZGF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVXBkYXRlVGhpbmdSdW50aW1lQ29uZmlndXJhdGlvbixcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdEJ1bGtEZXBsb3ltZW50cyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0Q2xpZW50RGV2aWNlc0Fzc29jaWF0ZWRXaXRoQ29yZURldmljZSxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0Q29tcG9uZW50VmVyc2lvbnMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdENvbXBvbmVudHMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0Q29ubmVjdG9yRGVmaW5pdGlvbnMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdENvcmVEZWZpbml0aW9uVmVyc2lvbnMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdENvcmVEZWZpbml0aW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0Q29yZURldmljZXMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdERlcGxveW1lbnRzLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3REZXZpY2VEZWZpbml0aW9uVmVyc2lvbnMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdERldmljZURlZmluaXRpb25zLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RFZmZlY3RpdmVEZXBsb3ltZW50cyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0RnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbnMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdEZ1bmN0aW9uRGVmaW5pdGlvbnMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdGllcyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0R3JvdXBWZXJzaW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0R3JvdXBzLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RJbnN0YWxsZWRDb21wb25lbnRzLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RMb2dnZXJEZWZpbml0aW9uVmVyc2lvbnMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdExvZ2dlckRlZmluaXRpb25zLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RSZXNvdXJjZURlZmluaXRpb25WZXJzaW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0UmVzb3VyY2VEZWZpbml0aW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25zLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RTdWJzY3JpcHRpb25EZWZpbml0aW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5SZXNvbHZlQ29tcG9uZW50Q2FuZGlkYXRlcyxcblx0XTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQXNzb2NpYXRlU2VydmljZVJvbGVUb0FjY291bnQsXG5cdF07XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBidWxrRGVwbG95bWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0J1bGtEZXBsb3ltZW50QXJuUHJvcHMge1xuXHQvKiogVGhlIEJ1bGtEZXBsb3ltZW50SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGJ1bGtEZXBsb3ltZW50SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBidWxrRGVwbG95bWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0J1bGtEZXBsb3ltZW50QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBCdWxrRGVwbG95bWVudElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYnVsa0RlcGxveW1lbnRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY2VydGlmaWNhdGVBdXRob3JpdHkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDZXJ0aWZpY2F0ZUF1dGhvcml0eUFyblByb3BzIHtcblx0LyoqIFRoZSBHcm91cElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBncm91cElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2VydGlmaWNhdGVBdXRob3JpdHlJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2VydGlmaWNhdGVBdXRob3JpdHlJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNlcnRpZmljYXRlQXV0aG9yaXR5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ2VydGlmaWNhdGVBdXRob3JpdHlBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEdyb3VwSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBncm91cElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2VydGlmaWNhdGVBdXRob3JpdHlJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNlcnRpZmljYXRlQXV0aG9yaXR5SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNvbXBvbmVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0NvbXBvbmVudEFyblByb3BzIHtcblx0LyoqIFRoZSBDb21wb25lbnROYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29tcG9uZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29tcG9uZW50QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb21wb25lbnROYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29tcG9uZW50VmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0NvbXBvbmVudFZlcnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29tcG9uZW50TmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbXBvbmVudFZlcnNpb24gY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbXBvbmVudFZlcnNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb21wb25lbnRWZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29tcG9uZW50VmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29tcG9uZW50TmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbXBvbmVudE5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb21wb25lbnRWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29tcG9uZW50VmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29ubmVjdGl2aXR5SW5mbyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0Nvbm5lY3Rpdml0eUluZm9Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgVGhpbmdOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0aGluZ05hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb25uZWN0aXZpdHlJbmZvIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29ubmVjdGl2aXR5SW5mb0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgVGhpbmdOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdGhpbmdOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb25uZWN0b3JEZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29ubmVjdG9yRGVmaW5pdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBDb25uZWN0b3JEZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbm5lY3RvckRlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbm5lY3RvckRlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb25uZWN0b3JEZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb25uZWN0b3JEZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25uZWN0b3JEZWZpbml0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29ubmVjdG9yRGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25uZWN0b3JEZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENvbm5lY3RvckRlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbm5lY3RvckRlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcnNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29yZURlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb3JlRGVmaW5pdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBDb3JlRGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb3JlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29yZURlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb3JlRGVmaW5pdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29yZURlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvcmVEZWZpbml0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNvcmVEZWZpbml0aW9uVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0NvcmVEZWZpbml0aW9uVmVyc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBDb3JlRGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb3JlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb3JlRGVmaW5pdGlvblZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb3JlRGVmaW5pdGlvblZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENvcmVEZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb3JlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb3JlRGV2aWNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29yZURldmljZUFyblByb3BzIHtcblx0LyoqIFRoZSBDb3JlRGV2aWNlVGhpbmdOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb3JlRGV2aWNlVGhpbmdOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29yZURldmljZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0NvcmVEZXZpY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENvcmVEZXZpY2VUaGluZ05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb3JlRGV2aWNlVGhpbmdOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkZXBsb3ltZW50VmFyaWFudDEgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NEZXBsb3ltZW50VmFyaWFudDFBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgR3JvdXBJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZ3JvdXBJZDogc3RyaW5nO1xuXHQvKiogVGhlIERlcGxveW1lbnRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGVwbG95bWVudElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGVwbG95bWVudFZhcmlhbnQyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzRGVwbG95bWVudFZhcmlhbnQyQXJuUHJvcHMge1xuXHQvKiogVGhlIERlcGxveW1lbnRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGVwbG95bWVudElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGVwbG95bWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0RlcGxveW1lbnRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEdyb3VwSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBncm91cElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRGVwbG95bWVudElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGVwbG95bWVudElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkZXZpY2VEZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzRGV2aWNlRGVmaW5pdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBEZXZpY2VEZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRldmljZURlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRldmljZURlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NEZXZpY2VEZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXZpY2VEZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkZXZpY2VEZWZpbml0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRldmljZURlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzRGV2aWNlRGVmaW5pdGlvblZlcnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGV2aWNlRGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkZXZpY2VEZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRldmljZURlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzRGV2aWNlRGVmaW5pdGlvblZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERldmljZURlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRldmljZURlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcnNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZnVuY3Rpb25EZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzRnVuY3Rpb25EZWZpbml0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEZ1bmN0aW9uRGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBmdW5jdGlvbkRlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGZ1bmN0aW9uRGVmaW5pdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0Z1bmN0aW9uRGVmaW5pdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRnVuY3Rpb25EZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBmdW5jdGlvbkRlZmluaXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0Z1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRnVuY3Rpb25EZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGZ1bmN0aW9uRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBmdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRnVuY3Rpb25EZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBmdW5jdGlvbkRlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcnNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZ3JvdXAgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NHcm91cEFyblByb3BzIHtcblx0LyoqIFRoZSBHcm91cElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBncm91cElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZ3JvdXAgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NHcm91cEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgR3JvdXBJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGdyb3VwSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGdyb3VwVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0dyb3VwVmVyc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBHcm91cElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBncm91cElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBncm91cFZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NHcm91cFZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEdyb3VwSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBncm91cElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBsb2dnZXJEZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzTG9nZ2VyRGVmaW5pdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBMb2dnZXJEZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGxvZ2dlckRlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGxvZ2dlckRlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NMb2dnZXJEZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBMb2dnZXJEZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBsb2dnZXJEZWZpbml0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGxvZ2dlckRlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzTG9nZ2VyRGVmaW5pdGlvblZlcnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgTG9nZ2VyRGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsb2dnZXJEZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGxvZ2dlckRlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzTG9nZ2VyRGVmaW5pdGlvblZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIExvZ2dlckRlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxvZ2dlckRlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcnNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgcmVzb3VyY2VEZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzUmVzb3VyY2VEZWZpbml0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlRGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZURlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJlc291cmNlRGVmaW5pdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc1Jlc291cmNlRGVmaW5pdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VEZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZURlZmluaXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgcmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc1Jlc291cmNlRGVmaW5pdGlvblZlcnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VEZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSByZXNvdXJjZURlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VEZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZURlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcnNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgc3Vic2NyaXB0aW9uRGVmaW5pdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc1N1YnNjcmlwdGlvbkRlZmluaXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzdWJzY3JpcHRpb25EZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBzdWJzY3JpcHRpb25EZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzU3Vic2NyaXB0aW9uRGVmaW5pdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBzdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc1N1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFN1YnNjcmlwdGlvbkRlZmluaXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBzdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc1N1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTdWJzY3JpcHRpb25EZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzdWJzY3JpcHRpb25EZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRoaW5nIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzVGhpbmdBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgVGhpbmdOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0aGluZ05hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB0aGluZyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc1RoaW5nQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBUaGluZ05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB0aGluZ05hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRoaW5nUnVudGltZUNvbmZpZyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc1RoaW5nUnVudGltZUNvbmZpZ0FyblByb3BzIHtcblx0LyoqIFRoZSBUaGluZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHRoaW5nTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHRoaW5nUnVudGltZUNvbmZpZyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc1RoaW5nUnVudGltZUNvbmZpZ0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgVGhpbmdOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdGhpbmdOYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IEJ1bGtEZXBsb3ltZW50QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvYnVsa1xcL2RlcGxveW1lbnRzXFwvKD88YnVsa0RlcGxveW1lbnRJZD5bXjovP10rKSQvO1xuY29uc3QgQ2VydGlmaWNhdGVBdXRob3JpdHlBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9ncm91cHNcXC8oPzxncm91cElkPlteOi8/XSspXFwvY2VydGlmaWNhdGVhdXRob3JpdGllc1xcLyg/PGNlcnRpZmljYXRlQXV0aG9yaXR5SWQ+W146Lz9dKykkLztcbmNvbnN0IENvbXBvbmVudEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncmVlbmdyYXNzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y29tcG9uZW50czooPzxjb21wb25lbnROYW1lPlteOi8/XSspJC87XG5jb25zdCBDb21wb25lbnRWZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb21wb25lbnRzOig/PGNvbXBvbmVudE5hbWU+W146Lz9dKyk6dmVyc2lvbnM6KD88Y29tcG9uZW50VmVyc2lvbj5bXjovP10rKSQvO1xuY29uc3QgQ29ubmVjdGl2aXR5SW5mb0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncmVlbmdyYXNzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6XFwvZ3JlZW5ncmFzc1xcL3RoaW5nc1xcLyg/PHRoaW5nTmFtZT5bXjovP10rKVxcL2Nvbm5lY3Rpdml0eUluZm8kLztcbmNvbnN0IENvbm5lY3RvckRlZmluaXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvY29ubmVjdG9yc1xcLyg/PGNvbm5lY3RvckRlZmluaXRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvY29ubmVjdG9yc1xcLyg/PGNvbm5lY3RvckRlZmluaXRpb25JZD5bXjovP10rKVxcL3ZlcnNpb25zXFwvKD88dmVyc2lvbklkPlteOi8/XSspJC87XG5jb25zdCBDb3JlRGVmaW5pdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncmVlbmdyYXNzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6XFwvZ3JlZW5ncmFzc1xcL2RlZmluaXRpb25cXC9jb3Jlc1xcLyg/PGNvcmVEZWZpbml0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IENvcmVEZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncmVlbmdyYXNzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6XFwvZ3JlZW5ncmFzc1xcL2RlZmluaXRpb25cXC9jb3Jlc1xcLyg/PGNvcmVEZWZpbml0aW9uSWQ+W146Lz9dKylcXC92ZXJzaW9uc1xcLyg/PHZlcnNpb25JZD5bXjovP10rKSQvO1xuY29uc3QgQ29yZURldmljZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncmVlbmdyYXNzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y29yZURldmljZXM6KD88Y29yZURldmljZVRoaW5nTmFtZT5bXjovP10rKSQvO1xuY29uc3QgRGVwbG95bWVudEFyblJlZ2V4ID1cblx0L14oPzphcm46KD86W146XSspOmdyZWVuZ3Jhc3M6KD86W146XSopOig/OlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZ3JvdXBzXFwvKD86W146Lz9dKylcXC9kZXBsb3ltZW50c1xcLyg/OlteOi8/XSspfGFybjooPzpbXjpdKyk6Z3JlZW5ncmFzczooPzpbXjpdKik6KD86W146XSopOmRlcGxveW1lbnRzOig/OlteOi8/XSspKSQvO1xuY29uc3QgRGVwbG95bWVudFBhcnNlUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZ3JvdXBzXFwvKD88Z3JvdXBJZD5bXjovP10rKVxcL2RlcGxveW1lbnRzXFwvKD88ZGVwbG95bWVudElkPlteOi8/XSspJC87XG5jb25zdCBEZXZpY2VEZWZpbml0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZGVmaW5pdGlvblxcL2RldmljZXNcXC8oPzxkZXZpY2VEZWZpbml0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IERldmljZURlZmluaXRpb25WZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZGVmaW5pdGlvblxcL2RldmljZXNcXC8oPzxkZXZpY2VEZWZpbml0aW9uSWQ+W146Lz9dKylcXC92ZXJzaW9uc1xcLyg/PHZlcnNpb25JZD5bXjovP10rKSQvO1xuY29uc3QgRnVuY3Rpb25EZWZpbml0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZGVmaW5pdGlvblxcL2Z1bmN0aW9uc1xcLyg/PGZ1bmN0aW9uRGVmaW5pdGlvbklkPlteOi8/XSspJC87XG5jb25zdCBGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZGVmaW5pdGlvblxcL2Z1bmN0aW9uc1xcLyg/PGZ1bmN0aW9uRGVmaW5pdGlvbklkPlteOi8/XSspXFwvdmVyc2lvbnNcXC8oPzx2ZXJzaW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IEdyb3VwQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZ3JvdXBzXFwvKD88Z3JvdXBJZD5bXjovP10rKSQvO1xuY29uc3QgR3JvdXBWZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZ3JvdXBzXFwvKD88Z3JvdXBJZD5bXjovP10rKVxcL3ZlcnNpb25zXFwvKD88dmVyc2lvbklkPlteOi8/XSspJC87XG5jb25zdCBMb2dnZXJEZWZpbml0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZGVmaW5pdGlvblxcL2xvZ2dlcnNcXC8oPzxsb2dnZXJEZWZpbml0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IExvZ2dlckRlZmluaXRpb25WZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZGVmaW5pdGlvblxcL2xvZ2dlcnNcXC8oPzxsb2dnZXJEZWZpbml0aW9uSWQ+W146Lz9dKylcXC92ZXJzaW9uc1xcLyg/PHZlcnNpb25JZD5bXjovP10rKSQvO1xuY29uc3QgUmVzb3VyY2VEZWZpbml0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZGVmaW5pdGlvblxcL3Jlc291cmNlc1xcLyg/PHJlc291cmNlRGVmaW5pdGlvbklkPlteOi8/XSspJC87XG5jb25zdCBSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZGVmaW5pdGlvblxcL3Jlc291cmNlc1xcLyg/PHJlc291cmNlRGVmaW5pdGlvbklkPlteOi8/XSspXFwvdmVyc2lvbnNcXC8oPzx2ZXJzaW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IFN1YnNjcmlwdGlvbkRlZmluaXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvc3Vic2NyaXB0aW9uc1xcLyg/PHN1YnNjcmlwdGlvbkRlZmluaXRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvc3Vic2NyaXB0aW9uc1xcLyg/PHN1YnNjcmlwdGlvbkRlZmluaXRpb25JZD5bXjovP10rKVxcL3ZlcnNpb25zXFwvKD88dmVyc2lvbklkPlteOi8/XSspJC87XG5jb25zdCBUaGluZ0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppb3Q6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp0aGluZ1xcLyg/PHRoaW5nTmFtZT5bXjovP10rKSQvO1xuY29uc3QgVGhpbmdSdW50aW1lQ29uZmlnQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvdGhpbmdzXFwvKD88dGhpbmdOYW1lPlteOi8/XSspXFwvcnVudGltZWNvbmZpZyQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIGdyZWVuZ3Jhc3MgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgR3JlZW5ncmFzc1Jlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgYnVsa0RlcGxveW1lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYnVsa0RlcGxveW1lbnQocHJvcHM6IEdyZWVuZ3Jhc3NCdWxrRGVwbG95bWVudEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2J1bGsvZGVwbG95bWVudHMvJHtwcm9wcy5idWxrRGVwbG95bWVudElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBidWxrRGVwbG95bWVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQnVsa0RlcGxveW1lbnRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQnVsa0RlcGxveW1lbnRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYnVsa0RlcGxveW1lbnQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQnVsa0RlcGxveW1lbnRBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NCdWxrRGVwbG95bWVudEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQnVsa0RlcGxveW1lbnRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYnVsa0RlcGxveW1lbnQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YnVsa0RlcGxveW1lbnRJZDogbWF0Y2guZ3JvdXBzIS5idWxrRGVwbG95bWVudElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNlcnRpZmljYXRlQXV0aG9yaXR5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNlcnRpZmljYXRlQXV0aG9yaXR5KFxuXHRcdHByb3BzOiBHcmVlbmdyYXNzQ2VydGlmaWNhdGVBdXRob3JpdHlBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2dyb3Vwcy8ke3Byb3BzLmdyb3VwSWR9L2NlcnRpZmljYXRlYXV0aG9yaXRpZXMvJHtwcm9wcy5jZXJ0aWZpY2F0ZUF1dGhvcml0eUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjZXJ0aWZpY2F0ZUF1dGhvcml0eSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ2VydGlmaWNhdGVBdXRob3JpdHlBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ2VydGlmaWNhdGVBdXRob3JpdHlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY2VydGlmaWNhdGVBdXRob3JpdHkgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ2VydGlmaWNhdGVBdXRob3JpdHlBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NDZXJ0aWZpY2F0ZUF1dGhvcml0eUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2VydGlmaWNhdGVBdXRob3JpdHlBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2VydGlmaWNhdGVBdXRob3JpdHkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Z3JvdXBJZDogbWF0Y2guZ3JvdXBzIS5ncm91cElkLFxuXHRcdFx0Y2VydGlmaWNhdGVBdXRob3JpdHlJZDogbWF0Y2guZ3JvdXBzIS5jZXJ0aWZpY2F0ZUF1dGhvcml0eUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbXBvbmVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb21wb25lbnQocHJvcHM6IEdyZWVuZ3Jhc3NDb21wb25lbnRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjb21wb25lbnRzOiR7cHJvcHMuY29tcG9uZW50TmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29tcG9uZW50IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb21wb25lbnRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29tcG9uZW50QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbXBvbmVudCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb21wb25lbnRBcm4oYXJuOiBzdHJpbmcpOiBHcmVlbmdyYXNzQ29tcG9uZW50QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb21wb25lbnRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29tcG9uZW50IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvbXBvbmVudE5hbWU6IG1hdGNoLmdyb3VwcyEuY29tcG9uZW50TmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjb21wb25lbnRWZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbXBvbmVudFZlcnNpb24ocHJvcHM6IEdyZWVuZ3Jhc3NDb21wb25lbnRWZXJzaW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y29tcG9uZW50czoke3Byb3BzLmNvbXBvbmVudE5hbWV9OnZlcnNpb25zOiR7cHJvcHMuY29tcG9uZW50VmVyc2lvbn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29tcG9uZW50VmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29tcG9uZW50VmVyc2lvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb21wb25lbnRWZXJzaW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbXBvbmVudFZlcnNpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29tcG9uZW50VmVyc2lvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc0NvbXBvbmVudFZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbXBvbmVudFZlcnNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29tcG9uZW50VmVyc2lvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjb21wb25lbnROYW1lOiBtYXRjaC5ncm91cHMhLmNvbXBvbmVudE5hbWUsXG5cdFx0XHRjb21wb25lbnRWZXJzaW9uOiBtYXRjaC5ncm91cHMhLmNvbXBvbmVudFZlcnNpb24sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29ubmVjdGl2aXR5SW5mbyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb25uZWN0aXZpdHlJbmZvKHByb3BzOiBHcmVlbmdyYXNzQ29ubmVjdGl2aXR5SW5mb0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL3RoaW5ncy8ke3Byb3BzLnRoaW5nTmFtZX0vY29ubmVjdGl2aXR5SW5mb2A7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb25uZWN0aXZpdHlJbmZvIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb25uZWN0aXZpdHlJbmZvQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbm5lY3Rpdml0eUluZm9Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29ubmVjdGl2aXR5SW5mbyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb25uZWN0aXZpdHlJbmZvQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzQ29ubmVjdGl2aXR5SW5mb0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29ubmVjdGl2aXR5SW5mb0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25uZWN0aXZpdHlJbmZvIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHRoaW5nTmFtZTogbWF0Y2guZ3JvdXBzIS50aGluZ05hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29ubmVjdG9yRGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb25uZWN0b3JEZWZpbml0aW9uKFxuXHRcdHByb3BzOiBHcmVlbmdyYXNzQ29ubmVjdG9yRGVmaW5pdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZGVmaW5pdGlvbi9jb25uZWN0b3JzLyR7cHJvcHMuY29ubmVjdG9yRGVmaW5pdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb25uZWN0b3JEZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb25uZWN0b3JEZWZpbml0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbm5lY3RvckRlZmluaXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29ubmVjdG9yRGVmaW5pdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb25uZWN0b3JEZWZpbml0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzQ29ubmVjdG9yRGVmaW5pdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29ubmVjdG9yRGVmaW5pdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25uZWN0b3JEZWZpbml0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvbm5lY3RvckRlZmluaXRpb25JZDogbWF0Y2guZ3JvdXBzIS5jb25uZWN0b3JEZWZpbml0aW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24oXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZGVmaW5pdGlvbi9jb25uZWN0b3JzLyR7cHJvcHMuY29ubmVjdG9yRGVmaW5pdGlvbklkfS92ZXJzaW9ucy8ke3Byb3BzLnZlcnNpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvbm5lY3RvckRlZmluaXRpb25JZDogbWF0Y2guZ3JvdXBzIS5jb25uZWN0b3JEZWZpbml0aW9uSWQsXG5cdFx0XHR2ZXJzaW9uSWQ6IG1hdGNoLmdyb3VwcyEudmVyc2lvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvcmVEZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvcmVEZWZpbml0aW9uKHByb3BzOiBHcmVlbmdyYXNzQ29yZURlZmluaXRpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9kZWZpbml0aW9uL2NvcmVzLyR7cHJvcHMuY29yZURlZmluaXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29yZURlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvcmVEZWZpbml0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvcmVEZWZpbml0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvcmVEZWZpbml0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvcmVEZWZpbml0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzQ29yZURlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvcmVEZWZpbml0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvcmVEZWZpbml0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvcmVEZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuY29yZURlZmluaXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjb3JlRGVmaW5pdGlvblZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29yZURlZmluaXRpb25WZXJzaW9uKFxuXHRcdHByb3BzOiBHcmVlbmdyYXNzQ29yZURlZmluaXRpb25WZXJzaW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9kZWZpbml0aW9uL2NvcmVzLyR7cHJvcHMuY29yZURlZmluaXRpb25JZH0vdmVyc2lvbnMvJHtwcm9wcy52ZXJzaW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNvcmVEZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29yZURlZmluaXRpb25WZXJzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvcmVEZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjb3JlRGVmaW5pdGlvblZlcnNpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29yZURlZmluaXRpb25WZXJzaW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzQ29yZURlZmluaXRpb25WZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb3JlRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29yZURlZmluaXRpb25WZXJzaW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvcmVEZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuY29yZURlZmluaXRpb25JZCxcblx0XHRcdHZlcnNpb25JZDogbWF0Y2guZ3JvdXBzIS52ZXJzaW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29yZURldmljZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb3JlRGV2aWNlKHByb3BzOiBHcmVlbmdyYXNzQ29yZURldmljZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNvcmVEZXZpY2VzOiR7cHJvcHMuY29yZURldmljZVRoaW5nTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29yZURldmljZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29yZURldmljZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb3JlRGV2aWNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvcmVEZXZpY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29yZURldmljZUFybihhcm46IHN0cmluZyk6IEdyZWVuZ3Jhc3NDb3JlRGV2aWNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb3JlRGV2aWNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvcmVEZXZpY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29yZURldmljZVRoaW5nTmFtZTogbWF0Y2guZ3JvdXBzIS5jb3JlRGV2aWNlVGhpbmdOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRlcGxveW1lbnRWYXJpYW50MSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkZXBsb3ltZW50VmFyaWFudDEoXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NEZXBsb3ltZW50VmFyaWFudDFBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2dyb3Vwcy8ke3Byb3BzLmdyb3VwSWR9L2RlcGxveW1lbnRzLyR7cHJvcHMuZGVwbG95bWVudElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRlcGxveW1lbnRWYXJpYW50MiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkZXBsb3ltZW50VmFyaWFudDIoXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NEZXBsb3ltZW50VmFyaWFudDJBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRlcGxveW1lbnRzOiR7cHJvcHMuZGVwbG95bWVudElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkZXBsb3ltZW50IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREZXBsb3ltZW50QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERlcGxveW1lbnRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGVwbG95bWVudCBBUk4gaW50byBpdHMgY29tcG9uZW50cyAodXNlcyBmaXJzdCBBUk4gdmFyaWFudCBmb3JtYXQpLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURlcGxveW1lbnRBcm4oYXJuOiBzdHJpbmcpOiBHcmVlbmdyYXNzRGVwbG95bWVudEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGVwbG95bWVudFBhcnNlUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRlcGxveW1lbnQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Z3JvdXBJZDogbWF0Y2guZ3JvdXBzIS5ncm91cElkLFxuXHRcdFx0ZGVwbG95bWVudElkOiBtYXRjaC5ncm91cHMhLmRlcGxveW1lbnRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkZXZpY2VEZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRldmljZURlZmluaXRpb24ocHJvcHM6IEdyZWVuZ3Jhc3NEZXZpY2VEZWZpbml0aW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZGVmaW5pdGlvbi9kZXZpY2VzLyR7cHJvcHMuZGV2aWNlRGVmaW5pdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkZXZpY2VEZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREZXZpY2VEZWZpbml0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERldmljZURlZmluaXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGV2aWNlRGVmaW5pdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEZXZpY2VEZWZpbml0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzRGV2aWNlRGVmaW5pdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGV2aWNlRGVmaW5pdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkZXZpY2VEZWZpbml0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRldmljZURlZmluaXRpb25JZDogbWF0Y2guZ3JvdXBzIS5kZXZpY2VEZWZpbml0aW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGV2aWNlRGVmaW5pdGlvblZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGV2aWNlRGVmaW5pdGlvblZlcnNpb24oXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NEZXZpY2VEZWZpbml0aW9uVmVyc2lvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZGVmaW5pdGlvbi9kZXZpY2VzLyR7cHJvcHMuZGV2aWNlRGVmaW5pdGlvbklkfS92ZXJzaW9ucy8ke3Byb3BzLnZlcnNpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGV2aWNlRGVmaW5pdGlvblZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERldmljZURlZmluaXRpb25WZXJzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERldmljZURlZmluaXRpb25WZXJzaW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRldmljZURlZmluaXRpb25WZXJzaW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURldmljZURlZmluaXRpb25WZXJzaW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzRGV2aWNlRGVmaW5pdGlvblZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IERldmljZURlZmluaXRpb25WZXJzaW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRldmljZURlZmluaXRpb25WZXJzaW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRldmljZURlZmluaXRpb25JZDogbWF0Y2guZ3JvdXBzIS5kZXZpY2VEZWZpbml0aW9uSWQsXG5cdFx0XHR2ZXJzaW9uSWQ6IG1hdGNoLmdyb3VwcyEudmVyc2lvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGZ1bmN0aW9uRGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBmdW5jdGlvbkRlZmluaXRpb24oXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NGdW5jdGlvbkRlZmluaXRpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2RlZmluaXRpb24vZnVuY3Rpb25zLyR7cHJvcHMuZnVuY3Rpb25EZWZpbml0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGZ1bmN0aW9uRGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRnVuY3Rpb25EZWZpbml0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZ1bmN0aW9uRGVmaW5pdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBmdW5jdGlvbkRlZmluaXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRnVuY3Rpb25EZWZpbml0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzRnVuY3Rpb25EZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBGdW5jdGlvbkRlZmluaXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZnVuY3Rpb25EZWZpbml0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGZ1bmN0aW9uRGVmaW5pdGlvbklkOiBtYXRjaC5ncm91cHMhLmZ1bmN0aW9uRGVmaW5pdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbihcblx0XHRwcm9wczogR3JlZW5ncmFzc0Z1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2RlZmluaXRpb24vZnVuY3Rpb25zLyR7cHJvcHMuZnVuY3Rpb25EZWZpbml0aW9uSWR9L3ZlcnNpb25zLyR7cHJvcHMudmVyc2lvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBmdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBmdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGZ1bmN0aW9uRGVmaW5pdGlvbklkOiBtYXRjaC5ncm91cHMhLmZ1bmN0aW9uRGVmaW5pdGlvbklkLFxuXHRcdFx0dmVyc2lvbklkOiBtYXRjaC5ncm91cHMhLnZlcnNpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBncm91cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBncm91cChwcm9wczogR3JlZW5ncmFzc0dyb3VwQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZ3JvdXBzLyR7cHJvcHMuZ3JvdXBJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZ3JvdXAgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEdyb3VwQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEdyb3VwQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGdyb3VwIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUdyb3VwQXJuKGFybjogc3RyaW5nKTogR3JlZW5ncmFzc0dyb3VwQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBHcm91cEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBncm91cCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRncm91cElkOiBtYXRjaC5ncm91cHMhLmdyb3VwSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZ3JvdXBWZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGdyb3VwVmVyc2lvbihwcm9wczogR3JlZW5ncmFzc0dyb3VwVmVyc2lvbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2dyb3Vwcy8ke3Byb3BzLmdyb3VwSWR9L3ZlcnNpb25zLyR7cHJvcHMudmVyc2lvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBncm91cFZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEdyb3VwVmVyc2lvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBHcm91cFZlcnNpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZ3JvdXBWZXJzaW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUdyb3VwVmVyc2lvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc0dyb3VwVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gR3JvdXBWZXJzaW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGdyb3VwVmVyc2lvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRncm91cElkOiBtYXRjaC5ncm91cHMhLmdyb3VwSWQsXG5cdFx0XHR2ZXJzaW9uSWQ6IG1hdGNoLmdyb3VwcyEudmVyc2lvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGxvZ2dlckRlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbG9nZ2VyRGVmaW5pdGlvbihwcm9wczogR3JlZW5ncmFzc0xvZ2dlckRlZmluaXRpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9kZWZpbml0aW9uL2xvZ2dlcnMvJHtwcm9wcy5sb2dnZXJEZWZpbml0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGxvZ2dlckRlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZExvZ2dlckRlZmluaXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTG9nZ2VyRGVmaW5pdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBsb2dnZXJEZWZpbml0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUxvZ2dlckRlZmluaXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NMb2dnZXJEZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBMb2dnZXJEZWZpbml0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGxvZ2dlckRlZmluaXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bG9nZ2VyRGVmaW5pdGlvbklkOiBtYXRjaC5ncm91cHMhLmxvZ2dlckRlZmluaXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBsb2dnZXJEZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsb2dnZXJEZWZpbml0aW9uVmVyc2lvbihcblx0XHRwcm9wczogR3JlZW5ncmFzc0xvZ2dlckRlZmluaXRpb25WZXJzaW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9kZWZpbml0aW9uL2xvZ2dlcnMvJHtwcm9wcy5sb2dnZXJEZWZpbml0aW9uSWR9L3ZlcnNpb25zLyR7cHJvcHMudmVyc2lvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBsb2dnZXJEZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTG9nZ2VyRGVmaW5pdGlvblZlcnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTG9nZ2VyRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgbG9nZ2VyRGVmaW5pdGlvblZlcnNpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTG9nZ2VyRGVmaW5pdGlvblZlcnNpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NMb2dnZXJEZWZpbml0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gTG9nZ2VyRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbG9nZ2VyRGVmaW5pdGlvblZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bG9nZ2VyRGVmaW5pdGlvbklkOiBtYXRjaC5ncm91cHMhLmxvZ2dlckRlZmluaXRpb25JZCxcblx0XHRcdHZlcnNpb25JZDogbWF0Y2guZ3JvdXBzIS52ZXJzaW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgcmVzb3VyY2VEZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlRGVmaW5pdGlvbihcblx0XHRwcm9wczogR3JlZW5ncmFzc1Jlc291cmNlRGVmaW5pdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZGVmaW5pdGlvbi9yZXNvdXJjZXMvJHtwcm9wcy5yZXNvdXJjZURlZmluaXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgcmVzb3VyY2VEZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRSZXNvdXJjZURlZmluaXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gUmVzb3VyY2VEZWZpbml0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHJlc291cmNlRGVmaW5pdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZXNvdXJjZURlZmluaXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NSZXNvdXJjZURlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlc291cmNlRGVmaW5pdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZXNvdXJjZURlZmluaXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VEZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VEZWZpbml0aW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgcmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZURlZmluaXRpb25WZXJzaW9uKFxuXHRcdHByb3BzOiBHcmVlbmdyYXNzUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZGVmaW5pdGlvbi9yZXNvdXJjZXMvJHtwcm9wcy5yZXNvdXJjZURlZmluaXRpb25JZH0vdmVyc2lvbnMvJHtwcm9wcy52ZXJzaW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJlc291cmNlRGVmaW5pdGlvblZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSByZXNvdXJjZURlZmluaXRpb25WZXJzaW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlc291cmNlRGVmaW5pdGlvblZlcnNpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlc291cmNlRGVmaW5pdGlvblZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VEZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VEZWZpbml0aW9uSWQsXG5cdFx0XHR2ZXJzaW9uSWQ6IG1hdGNoLmdyb3VwcyEudmVyc2lvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHN1YnNjcmlwdGlvbkRlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc3Vic2NyaXB0aW9uRGVmaW5pdGlvbihcblx0XHRwcm9wczogR3JlZW5ncmFzc1N1YnNjcmlwdGlvbkRlZmluaXRpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2RlZmluaXRpb24vc3Vic2NyaXB0aW9ucy8ke3Byb3BzLnN1YnNjcmlwdGlvbkRlZmluaXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgc3Vic2NyaXB0aW9uRGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU3Vic2NyaXB0aW9uRGVmaW5pdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTdWJzY3JpcHRpb25EZWZpbml0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHN1YnNjcmlwdGlvbkRlZmluaXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc1N1YnNjcmlwdGlvbkRlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFN1YnNjcmlwdGlvbkRlZmluaXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc3Vic2NyaXB0aW9uRGVmaW5pdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdWJzY3JpcHRpb25EZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuc3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uKFxuXHRcdHByb3BzOiBHcmVlbmdyYXNzU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2RlZmluaXRpb24vc3Vic2NyaXB0aW9ucy8ke3Byb3BzLnN1YnNjcmlwdGlvbkRlZmluaXRpb25JZH0vdmVyc2lvbnMvJHtwcm9wcy52ZXJzaW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc1N1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdWJzY3JpcHRpb25EZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuc3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkLFxuXHRcdFx0dmVyc2lvbklkOiBtYXRjaC5ncm91cHMhLnZlcnNpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0aGluZyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0aGluZyhwcm9wczogR3JlZW5ncmFzc1RoaW5nQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmlvdDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp0aGluZy8ke3Byb3BzLnRoaW5nTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgdGhpbmcgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFRoaW5nQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFRoaW5nQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHRoaW5nIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVRoaW5nQXJuKGFybjogc3RyaW5nKTogR3JlZW5ncmFzc1RoaW5nQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBUaGluZ0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0aGluZyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHR0aGluZ05hbWU6IG1hdGNoLmdyb3VwcyEudGhpbmdOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHRoaW5nUnVudGltZUNvbmZpZyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0aGluZ1J1bnRpbWVDb25maWcoXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NUaGluZ1J1bnRpbWVDb25maWdBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL3RoaW5ncy8ke3Byb3BzLnRoaW5nTmFtZX0vcnVudGltZWNvbmZpZ2A7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB0aGluZ1J1bnRpbWVDb25maWcgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFRoaW5nUnVudGltZUNvbmZpZ0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUaGluZ1J1bnRpbWVDb25maWdBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgdGhpbmdSdW50aW1lQ29uZmlnIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVRoaW5nUnVudGltZUNvbmZpZ0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc1RoaW5nUnVudGltZUNvbmZpZ0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gVGhpbmdSdW50aW1lQ29uZmlnQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRoaW5nUnVudGltZUNvbmZpZyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHR0aGluZ05hbWU6IG1hdGNoLmdyb3VwcyEudGhpbmdOYW1lLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGdyZWVuZ3Jhc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBHcmVlbmdyYXNzT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFzc29jaWF0ZVJvbGVUb0dyb3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlUm9sZVRvR3JvdXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpBc3NvY2lhdGVSb2xlVG9Hcm91cFwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFzc29jaWF0ZVNlcnZpY2VSb2xlVG9BY2NvdW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU2VydmljZVJvbGVUb0FjY291bnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpBc3NvY2lhdGVTZXJ2aWNlUm9sZVRvQWNjb3VudFwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEJhdGNoQXNzb2NpYXRlQ2xpZW50RGV2aWNlV2l0aENvcmVEZXZpY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaEFzc29jaWF0ZUNsaWVudERldmljZVdpdGhDb3JlRGV2aWNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6QmF0Y2hBc3NvY2lhdGVDbGllbnREZXZpY2VXaXRoQ29yZURldmljZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBCYXRjaERpc2Fzc29jaWF0ZUNsaWVudERldmljZUZyb21Db3JlRGV2aWNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hEaXNhc3NvY2lhdGVDbGllbnREZXZpY2VGcm9tQ29yZURldmljZTogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkJhdGNoRGlzYXNzb2NpYXRlQ2xpZW50RGV2aWNlRnJvbUNvcmVEZXZpY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsRGVwbG95bWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbERlcGxveW1lbnQ6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpDYW5jZWxEZXBsb3ltZW50XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDb21wb25lbnRWZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29tcG9uZW50VmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUNvbXBvbmVudFZlcnNpb25cIixcblx0XHRcImdyZWVuZ3Jhc3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbm5lY3RvckRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uXCIsXG5cdFx0XCJncmVlbmdyYXNzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDb3JlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvcmVEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlQ29yZURlZmluaXRpb25cIixcblx0XHRcImdyZWVuZ3Jhc3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ29yZURlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29yZURlZmluaXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlQ29yZURlZmluaXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURlcGxveW1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXBsb3ltZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlRGVwbG95bWVudFwiLFxuXHRcdFwiZ3JlZW5ncmFzczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVEZXZpY2VEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGV2aWNlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZURldmljZURlZmluaXRpb25cIixcblx0XHRcImdyZWVuZ3Jhc3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGV2aWNlRGVmaW5pdGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXZpY2VEZWZpbml0aW9uVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZURldmljZURlZmluaXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvblwiLFxuXHRcdFwiZ3JlZW5ncmFzczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlR3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVHcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUdyb3VwXCIsXG5cdFx0XCJncmVlbmdyYXNzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVHcm91cENlcnRpZmljYXRlQXV0aG9yaXR5OiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlR3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0eVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVHcm91cFZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVHcm91cFZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVHcm91cFZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlTG9nZ2VyRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxvZ2dlckRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVMb2dnZXJEZWZpbml0aW9uXCIsXG5cdFx0XCJncmVlbmdyYXNzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUxvZ2dlckRlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTG9nZ2VyRGVmaW5pdGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVMb2dnZXJEZWZpbml0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVSZXNvdXJjZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXNvdXJjZURlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVSZXNvdXJjZURlZmluaXRpb25cIixcblx0XHRcImdyZWVuZ3Jhc3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlc291cmNlRGVmaW5pdGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVNvZnR3YXJlVXBkYXRlSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU29mdHdhcmVVcGRhdGVKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVTb2Z0d2FyZVVwZGF0ZUpvYlwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblwiLFxuXHRcdFwiZ3JlZW5ncmFzczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29tcG9uZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29tcG9uZW50OiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6RGVsZXRlQ29tcG9uZW50XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDb25uZWN0b3JEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29ubmVjdG9yRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkRlbGV0ZUNvbm5lY3RvckRlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29yZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb3JlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkRlbGV0ZUNvcmVEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNvcmVEZXZpY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb3JlRGV2aWNlOiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6RGVsZXRlQ29yZURldmljZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRGVwbG95bWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURlcGxveW1lbnQ6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpEZWxldGVEZXBsb3ltZW50XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEZXZpY2VEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGV2aWNlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkRlbGV0ZURldmljZURlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRnVuY3Rpb25EZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRnVuY3Rpb25EZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6RGVsZXRlRnVuY3Rpb25EZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUdyb3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlR3JvdXA6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpEZWxldGVHcm91cFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTG9nZ2VyRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxvZ2dlckRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpEZWxldGVMb2dnZXJEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlc291cmNlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkRlbGV0ZVJlc291cmNlRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVTdWJzY3JpcHRpb25EZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkRlbGV0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVDb21wb25lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNvbXBvbmVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkRlc2NyaWJlQ29tcG9uZW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Fzc29jaWF0ZVJvbGVGcm9tR3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVSb2xlRnJvbUdyb3VwOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6RGlzYXNzb2NpYXRlUm9sZUZyb21Hcm91cFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEaXNhc3NvY2lhdGVTZXJ2aWNlUm9sZUZyb21BY2NvdW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlU2VydmljZVJvbGVGcm9tQWNjb3VudDogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkRpc2Fzc29jaWF0ZVNlcnZpY2VSb2xlRnJvbUFjY291bnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QXNzb2NpYXRlZFJvbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFzc29jaWF0ZWRSb2xlOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0QXNzb2NpYXRlZFJvbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QnVsa0RlcGxveW1lbnRTdGF0dXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEJ1bGtEZXBsb3ltZW50U3RhdHVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0QnVsa0RlcGxveW1lbnRTdGF0dXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29tcG9uZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb21wb25lbnQ6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpHZXRDb21wb25lbnRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbXBvbmVudFZlcnNpb25BcnRpZmFjdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q29tcG9uZW50VmVyc2lvbkFydGlmYWN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0Q29tcG9uZW50VmVyc2lvbkFydGlmYWN0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbm5lY3Rpdml0eUluZm8gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvbm5lY3Rpdml0eUluZm86IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRDb25uZWN0aXZpdHlJbmZvXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbm5lY3RvckRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvbm5lY3RvckRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRDb25uZWN0b3JEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvcmVEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb3JlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldENvcmVEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvcmVEZWZpbml0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q29yZURlZmluaXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0Q29yZURlZmluaXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvcmVEZXZpY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvcmVEZXZpY2U6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpHZXRDb3JlRGV2aWNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREZXBsb3ltZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREZXBsb3ltZW50OiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6R2V0RGVwbG95bWVudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGVwbG95bWVudFN0YXR1cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGVwbG95bWVudFN0YXR1czogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldERlcGxveW1lbnRTdGF0dXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGV2aWNlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGV2aWNlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldERldmljZURlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGV2aWNlRGVmaW5pdGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERldmljZURlZmluaXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0RGV2aWNlRGVmaW5pdGlvblZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RnVuY3Rpb25EZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGdW5jdGlvbkRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRGdW5jdGlvbkRlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0R3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEdyb3VwOiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6R2V0R3JvdXBcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHk6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRHcm91cENlcnRpZmljYXRlQXV0aG9yaXR5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEdyb3VwQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRHcm91cENlcnRpZmljYXRlQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldEdyb3VwQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEdyb3VwVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0R3JvdXBWZXJzaW9uOiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6R2V0R3JvdXBWZXJzaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMb2dnZXJEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRMb2dnZXJEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0TG9nZ2VyRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMb2dnZXJEZWZpbml0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TG9nZ2VyRGVmaW5pdGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRMb2dnZXJEZWZpbml0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXNvdXJjZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlc291cmNlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldFJlc291cmNlRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0UmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRTZXJ2aWNlUm9sZUZvckFjY291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNlcnZpY2VSb2xlRm9yQWNjb3VudDogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldFNlcnZpY2VSb2xlRm9yQWNjb3VudFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0VGhpbmdSdW50aW1lQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QnVsa0RlcGxveW1lbnREZXRhaWxlZFJlcG9ydHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QnVsa0RlcGxveW1lbnREZXRhaWxlZFJlcG9ydHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0QnVsa0RlcGxveW1lbnREZXRhaWxlZFJlcG9ydHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEJ1bGtEZXBsb3ltZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RCdWxrRGVwbG95bWVudHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0QnVsa0RlcGxveW1lbnRzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDbGllbnREZXZpY2VzQXNzb2NpYXRlZFdpdGhDb3JlRGV2aWNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENsaWVudERldmljZXNBc3NvY2lhdGVkV2l0aENvcmVEZXZpY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0Q2xpZW50RGV2aWNlc0Fzc29jaWF0ZWRXaXRoQ29yZURldmljZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29tcG9uZW50VmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29tcG9uZW50VmVyc2lvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0Q29tcG9uZW50VmVyc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvbXBvbmVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29tcG9uZW50czogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOkxpc3RDb21wb25lbnRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvbm5lY3RvckRlZmluaXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbm5lY3RvckRlZmluaXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdENvbm5lY3RvckRlZmluaXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb3JlRGVmaW5pdGlvblZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvcmVEZWZpbml0aW9uVmVyc2lvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0Q29yZURlZmluaXRpb25WZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29yZURlZmluaXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvcmVEZWZpbml0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RDb3JlRGVmaW5pdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvcmVEZXZpY2VzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvcmVEZXZpY2VzOiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6TGlzdENvcmVEZXZpY2VzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGVwbG95bWVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGVwbG95bWVudHM6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpMaXN0RGVwbG95bWVudHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REZXZpY2VEZWZpbml0aW9uVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGV2aWNlRGVmaW5pdGlvblZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdERldmljZURlZmluaXRpb25WZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGV2aWNlRGVmaW5pdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGV2aWNlRGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0RGV2aWNlRGVmaW5pdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEVmZmVjdGl2ZURlcGxveW1lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEVmZmVjdGl2ZURlcGxveW1lbnRzOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdEVmZmVjdGl2ZURlcGxveW1lbnRzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RnVuY3Rpb25EZWZpbml0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbkRlZmluaXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdEZ1bmN0aW9uRGVmaW5pdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdGllcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RHcm91cENlcnRpZmljYXRlQXV0aG9yaXRpZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0R3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0aWVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RHcm91cFZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdyb3VwVmVyc2lvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0R3JvdXBWZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0R3JvdXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdyb3Vwczogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOkxpc3RHcm91cHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RJbnN0YWxsZWRDb21wb25lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEluc3RhbGxlZENvbXBvbmVudHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0SW5zdGFsbGVkQ29tcG9uZW50c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TG9nZ2VyRGVmaW5pdGlvblZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExvZ2dlckRlZmluaXRpb25WZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RMb2dnZXJEZWZpbml0aW9uVmVyc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExvZ2dlckRlZmluaXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExvZ2dlckRlZmluaXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdExvZ2dlckRlZmluaXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZXNvdXJjZURlZmluaXRpb25WZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVzb3VyY2VEZWZpbml0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXNvdXJjZURlZmluaXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdFJlc291cmNlRGVmaW5pdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTdWJzY3JpcHRpb25EZWZpbml0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdWJzY3JpcHRpb25EZWZpbml0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RTdWJzY3JpcHRpb25EZWZpbml0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RUYWdzRm9yUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVzZXREZXBsb3ltZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc2V0RGVwbG95bWVudHM6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpSZXNldERlcGxveW1lbnRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXNvbHZlQ29tcG9uZW50Q2FuZGlkYXRlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc29sdmVDb21wb25lbnRDYW5kaWRhdGVzOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydEJ1bGtEZXBsb3ltZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRCdWxrRGVwbG95bWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImdyZWVuZ3Jhc3M6U3RhcnRCdWxrRGVwbG95bWVudFwiLFxuXHRcdFwiZ3JlZW5ncmFzczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wQnVsa0RlcGxveW1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wQnVsa0RlcGxveW1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpTdG9wQnVsa0RlcGxveW1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNvbm5lY3Rpdml0eUluZm8gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb25uZWN0aXZpdHlJbmZvOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6VXBkYXRlQ29ubmVjdGl2aXR5SW5mb1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDb25uZWN0b3JEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29ubmVjdG9yRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZUNvbm5lY3RvckRlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQ29yZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb3JlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZUNvcmVEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZURldmljZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVEZXZpY2VEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6VXBkYXRlRGV2aWNlRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVGdW5jdGlvbkRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGdW5jdGlvbkRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVGdW5jdGlvbkRlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlR3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVHcm91cDogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOlVwZGF0ZUdyb3VwXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVHcm91cENlcnRpZmljYXRlQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUdyb3VwQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6VXBkYXRlR3JvdXBDZXJ0aWZpY2F0ZUNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTG9nZ2VyRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUxvZ2dlckRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVMb2dnZXJEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVJlc291cmNlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlc291cmNlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZVJlc291cmNlRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGhpbmdSdW50aW1lQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRoaW5nUnVudGltZUNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uXCIsXG5cdF07XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIGtleSBjb25zdGFudHMgYW5kIGJ1aWxkZXJzIGZvciBncmVlbmdyYXNzLlxuICovXG5leHBvcnQgY2xhc3MgR3JlZW5ncmFzc0NvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29tcG9uZW50VmVyc2lvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb21wb25lbnRWZXJzaW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbm5lY3RvckRlZmluaXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNvcmVEZWZpbml0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvcmVEZWZpbml0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVEZXBsb3ltZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURlcGxveW1lbnRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURldmljZURlZmluaXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGV2aWNlRGVmaW5pdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlR3JvdXAgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlR3JvdXBDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUxvZ2dlckRlZmluaXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTG9nZ2VyRGVmaW5pdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlc291cmNlRGVmaW5pdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0QnVsa0RlcGxveW1lbnQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRCdWxrRGVwbG95bWVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cbn1cbiJdfQ==
1652
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlZW5ncmFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMvZ3JlZW5ncmFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELGlEQUFpRDtBQUNqRCxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7O0FBQTlCLDhDQWthQzs7O0FBamFBLDhCQUE4QjtBQUNkLGdDQUFjLEdBQUcsWUFBWSxDQUFDO0FBRTlDLDhDQUE4QztBQUM5QixzQ0FBb0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUN6RSxzRUFBc0U7QUFDdEQsK0NBQTZCLEdBQzVDLDBDQUEwQyxDQUFDO0FBQzVDLGtFQUFrRTtBQUNsRCwwREFBd0MsR0FDdkQscURBQXFELENBQUM7QUFDdkQscUVBQXFFO0FBQ3JELDZEQUEyQyxHQUMxRCx3REFBd0QsQ0FBQztBQUMxRCwwQ0FBMEM7QUFDMUIsa0NBQWdCLEdBQUcsNkJBQTZCLENBQUM7QUFDakUsZ0RBQWdEO0FBQ2hDLHdDQUFzQixHQUFHLG1DQUFtQyxDQUFDO0FBQzdFLG1EQUFtRDtBQUNuQywyQ0FBeUIsR0FDeEMsc0NBQXNDLENBQUM7QUFDeEMsMERBQTBEO0FBQzFDLGtEQUFnQyxHQUMvQyw2Q0FBNkMsQ0FBQztBQUMvQyw4Q0FBOEM7QUFDOUIsc0NBQW9CLEdBQUcsaUNBQWlDLENBQUM7QUFDekUscURBQXFEO0FBQ3JDLDZDQUEyQixHQUMxQyx3Q0FBd0MsQ0FBQztBQUMxQywwQ0FBMEM7QUFDMUIsa0NBQWdCLEdBQUcsNkJBQTZCLENBQUM7QUFDakUsZ0RBQWdEO0FBQ2hDLHdDQUFzQixHQUFHLG1DQUFtQyxDQUFDO0FBQzdFLHVEQUF1RDtBQUN2QywrQ0FBNkIsR0FDNUMsMENBQTBDLENBQUM7QUFDNUMsa0RBQWtEO0FBQ2xDLDBDQUF3QixHQUN2QyxxQ0FBcUMsQ0FBQztBQUN2Qyx5REFBeUQ7QUFDekMsaURBQStCLEdBQzlDLDRDQUE0QyxDQUFDO0FBQzlDLHFDQUFxQztBQUNyQiw2QkFBVyxHQUFHLHdCQUF3QixDQUFDO0FBQ3ZELHlEQUF5RDtBQUN6QyxpREFBK0IsR0FDOUMsNENBQTRDLENBQUM7QUFDOUMsNENBQTRDO0FBQzVCLG9DQUFrQixHQUFHLCtCQUErQixDQUFDO0FBQ3JFLGdEQUFnRDtBQUNoQyx3Q0FBc0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUM3RSx1REFBdUQ7QUFDdkMsK0NBQTZCLEdBQzVDLDBDQUEwQyxDQUFDO0FBQzVDLGtEQUFrRDtBQUNsQywwQ0FBd0IsR0FDdkMscUNBQXFDLENBQUM7QUFDdkMseURBQXlEO0FBQ3pDLGlEQUErQixHQUM5Qyw0Q0FBNEMsQ0FBQztBQUM5QyxpREFBaUQ7QUFDakMseUNBQXVCLEdBQ3RDLG9DQUFvQyxDQUFDO0FBQ3RDLHNEQUFzRDtBQUN0Qyw4Q0FBNEIsR0FDM0MseUNBQXlDLENBQUM7QUFDM0MsNkRBQTZEO0FBQzdDLHFEQUFtQyxHQUNsRCxnREFBZ0QsQ0FBQztBQUNsRCx5Q0FBeUM7QUFDekIsaUNBQWUsR0FBRyw0QkFBNEIsQ0FBQztBQUMvRCxtREFBbUQ7QUFDbkMsMkNBQXlCLEdBQ3hDLHNDQUFzQyxDQUFDO0FBQ3hDLDhDQUE4QztBQUM5QixzQ0FBb0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUN6RSwwQ0FBMEM7QUFDMUIsa0NBQWdCLEdBQUcsNkJBQTZCLENBQUM7QUFDakUsMENBQTBDO0FBQzFCLGtDQUFnQixHQUFHLDZCQUE2QixDQUFDO0FBQ2pFLGdEQUFnRDtBQUNoQyx3Q0FBc0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUM3RSxrREFBa0Q7QUFDbEMsMENBQXdCLEdBQ3ZDLHFDQUFxQyxDQUFDO0FBQ3ZDLHFDQUFxQztBQUNyQiw2QkFBVyxHQUFHLHdCQUF3QixDQUFDO0FBQ3ZELGdEQUFnRDtBQUNoQyx3Q0FBc0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUM3RSxrREFBa0Q7QUFDbEMsMENBQXdCLEdBQ3ZDLHFDQUFxQyxDQUFDO0FBQ3ZDLHNEQUFzRDtBQUN0Qyw4Q0FBNEIsR0FDM0MseUNBQXlDLENBQUM7QUFDM0MsMENBQTBDO0FBQzFCLG1DQUFpQixHQUFHLDhCQUE4QixDQUFDO0FBQ25FLG1EQUFtRDtBQUNuQywyQ0FBeUIsR0FDeEMsc0NBQXNDLENBQUM7QUFDeEMsNERBQTREO0FBQzVDLG9EQUFrQyxHQUNqRCwrQ0FBK0MsQ0FBQztBQUNqRCxpQ0FBaUM7QUFDakIsMEJBQVEsR0FBRyxxQkFBcUIsQ0FBQztBQUNqRCwwQ0FBMEM7QUFDMUIseUNBQXVCLEdBQUcsOEJBQThCLENBQUM7QUFDekUsZ0RBQWdEO0FBQ2hDLCtDQUE2QixHQUM1QyxvQ0FBb0MsQ0FBQztBQUN0QyxxQ0FBcUM7QUFDckIsb0NBQWtCLEdBQUcseUJBQXlCLENBQUM7QUFDL0Qsb0RBQW9EO0FBQ3BDLG1EQUFpQyxHQUNoRCx3Q0FBd0MsQ0FBQztBQUMxQyw0Q0FBNEM7QUFDNUIsMkNBQXlCLEdBQUcsZ0NBQWdDLENBQUM7QUFDN0UsK0NBQStDO0FBQy9CLDhDQUE0QixHQUMzQyxtQ0FBbUMsQ0FBQztBQUNyQyxzREFBc0Q7QUFDdEMscURBQW1DLEdBQ2xELDBDQUEwQyxDQUFDO0FBQzVDLDBDQUEwQztBQUMxQix5Q0FBdUIsR0FBRyw4QkFBOEIsQ0FBQztBQUN6RSxpREFBaUQ7QUFDakMsZ0RBQThCLEdBQzdDLHFDQUFxQyxDQUFDO0FBQ3ZDLHNDQUFzQztBQUN0QixxQ0FBbUIsR0FBRywwQkFBMEIsQ0FBQztBQUNqRSxzQ0FBc0M7QUFDdEIscUNBQW1CLEdBQUcsMEJBQTBCLENBQUM7QUFDakUsNENBQTRDO0FBQzVCLDJDQUF5QixHQUFHLGdDQUFnQyxDQUFDO0FBQzdFLDRDQUE0QztBQUM1QiwyQ0FBeUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM3RSxtREFBbUQ7QUFDbkMsa0RBQWdDLEdBQy9DLHVDQUF1QyxDQUFDO0FBQ3pDLDhDQUE4QztBQUM5Qiw2Q0FBMkIsR0FDMUMsa0NBQWtDLENBQUM7QUFDcEMscURBQXFEO0FBQ3JDLG9EQUFrQyxHQUNqRCx5Q0FBeUMsQ0FBQztBQUMzQyxpQ0FBaUM7QUFDakIsZ0NBQWMsR0FBRyxxQkFBcUIsQ0FBQztBQUN2RCxxREFBcUQ7QUFDckMsb0RBQWtDLEdBQ2pELHlDQUF5QyxDQUFDO0FBQzNDLHlEQUF5RDtBQUN6Qyx3REFBc0MsR0FDckQsNkNBQTZDLENBQUM7QUFDL0Msd0NBQXdDO0FBQ3hCLHVDQUFxQixHQUFHLDRCQUE0QixDQUFDO0FBQ3JFLDRDQUE0QztBQUM1QiwyQ0FBeUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM3RSxtREFBbUQ7QUFDbkMsa0RBQWdDLEdBQy9DLHVDQUF1QyxDQUFDO0FBQ3pDLDhDQUE4QztBQUM5Qiw2Q0FBMkIsR0FDMUMsa0NBQWtDLENBQUM7QUFDcEMscURBQXFEO0FBQ3JDLG9EQUFrQyxHQUNqRCx5Q0FBeUMsQ0FBQztBQUMzQyxpREFBaUQ7QUFDakMsZ0RBQThCLEdBQzdDLHFDQUFxQyxDQUFDO0FBQ3ZDLGtEQUFrRDtBQUNsQyxpREFBK0IsR0FDOUMsc0NBQXNDLENBQUM7QUFDeEMseURBQXlEO0FBQ3pDLHdEQUFzQyxHQUNyRCw2Q0FBNkMsQ0FBQztBQUMvQyxxREFBcUQ7QUFDckMsb0RBQWtDLEdBQ2pELHlDQUF5QyxDQUFDO0FBQzNDLDBEQUEwRDtBQUMxQyxtREFBaUMsR0FDaEQsOENBQThDLENBQUM7QUFDaEQsNENBQTRDO0FBQzVCLHFDQUFtQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3ZFLGtFQUFrRTtBQUNsRCwyREFBeUMsR0FDeEQsc0RBQXNELENBQUM7QUFDeEQsOENBQThDO0FBQzlCLHVDQUFxQixHQUFHLGtDQUFrQyxDQUFDO0FBQzNFLHVDQUF1QztBQUN2QixnQ0FBYyxHQUFHLDJCQUEyQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4QyxpREFBK0IsR0FDOUMsNENBQTRDLENBQUM7QUFDOUMsaURBQWlEO0FBQ2pDLDBDQUF3QixHQUN2QyxxQ0FBcUMsQ0FBQztBQUN2QyxtREFBbUQ7QUFDbkMsNENBQTBCLEdBQ3pDLHVDQUF1QyxDQUFDO0FBQ3pDLDRDQUE0QztBQUM1QixxQ0FBbUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUN2RSx3Q0FBd0M7QUFDeEIsaUNBQWUsR0FBRyw0QkFBNEIsQ0FBQztBQUMvRCx3Q0FBd0M7QUFDeEIsaUNBQWUsR0FBRyw0QkFBNEIsQ0FBQztBQUMvRCxxREFBcUQ7QUFDckMsOENBQTRCLEdBQzNDLHlDQUF5QyxDQUFDO0FBQzNDLDhDQUE4QztBQUM5Qix1Q0FBcUIsR0FBRyxrQ0FBa0MsQ0FBQztBQUMzRSxpREFBaUQ7QUFDakMsMENBQXdCLEdBQ3ZDLHFDQUFxQyxDQUFDO0FBQ3ZDLHVEQUF1RDtBQUN2QyxnREFBOEIsR0FDN0MsMkNBQTJDLENBQUM7QUFDN0MsZ0RBQWdEO0FBQ2hDLHlDQUF1QixHQUN0QyxvQ0FBb0MsQ0FBQztBQUN0Qyx3REFBd0Q7QUFDeEMsaURBQStCLEdBQzlDLDRDQUE0QyxDQUFDO0FBQzlDLDBDQUEwQztBQUMxQixtQ0FBaUIsR0FBRyw4QkFBOEIsQ0FBQztBQUNuRSxtQ0FBbUM7QUFDbkIsNEJBQVUsR0FBRyx1QkFBdUIsQ0FBQztBQUNyRCxnREFBZ0Q7QUFDaEMseUNBQXVCLEdBQ3RDLG9DQUFvQyxDQUFDO0FBQ3RDLHFEQUFxRDtBQUNyQyw4Q0FBNEIsR0FDM0MseUNBQXlDLENBQUM7QUFDM0MsOENBQThDO0FBQzlCLHVDQUFxQixHQUFHLGtDQUFrQyxDQUFDO0FBQzNFLHVEQUF1RDtBQUN2QyxnREFBOEIsR0FDN0MsMkNBQTJDLENBQUM7QUFDN0MsZ0RBQWdEO0FBQ2hDLHlDQUF1QixHQUN0QyxvQ0FBb0MsQ0FBQztBQUN0QywyREFBMkQ7QUFDM0Msb0RBQWtDLEdBQ2pELCtDQUErQyxDQUFDO0FBQ2pELG9EQUFvRDtBQUNwQyw2Q0FBMkIsR0FDMUMsd0NBQXdDLENBQUM7QUFDMUMsNENBQTRDO0FBQzVCLHFDQUFtQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3ZFLDBDQUEwQztBQUMxQixrQ0FBZ0IsR0FBRyw2QkFBNkIsQ0FBQztBQUNqRSxtREFBbUQ7QUFDbkMsNENBQTBCLEdBQ3pDLHVDQUF1QyxDQUFDO0FBQ3pDLDZDQUE2QztBQUM3QixxQ0FBbUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUN2RSw0Q0FBNEM7QUFDNUIsb0NBQWtCLEdBQUcsK0JBQStCLENBQUM7QUFDckUsdUNBQXVDO0FBQ3ZCLDZCQUFXLEdBQUcsd0JBQXdCLENBQUM7QUFDdkQseUNBQXlDO0FBQ3pCLCtCQUFhLEdBQUcsMEJBQTBCLENBQUM7QUFDM0QsZ0RBQWdEO0FBQ2hDLHdDQUFzQixHQUFHLG1DQUFtQyxDQUFDO0FBQzdFLG1EQUFtRDtBQUNuQywyQ0FBeUIsR0FDeEMsc0NBQXNDLENBQUM7QUFDeEMsOENBQThDO0FBQzlCLHNDQUFvQixHQUFHLGlDQUFpQyxDQUFDO0FBQ3pFLGdEQUFnRDtBQUNoQyx3Q0FBc0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUM3RSxrREFBa0Q7QUFDbEMsMENBQXdCLEdBQ3ZDLHFDQUFxQyxDQUFDO0FBQ3ZDLHFDQUFxQztBQUNyQiw2QkFBVyxHQUFHLHdCQUF3QixDQUFDO0FBQ3ZELDZEQUE2RDtBQUM3QyxxREFBbUMsR0FDbEQsZ0RBQWdELENBQUM7QUFDbEQsZ0RBQWdEO0FBQ2hDLHdDQUFzQixHQUFHLG1DQUFtQyxDQUFDO0FBQzdFLGtEQUFrRDtBQUNsQywwQ0FBd0IsR0FDdkMscUNBQXFDLENBQUM7QUFDdkMsc0RBQXNEO0FBQ3RDLDhDQUE0QixHQUMzQyx5Q0FBeUMsQ0FBQztBQUMzQyx5REFBeUQ7QUFDekMsaURBQStCLEdBQzlDLDRDQUE0QyxDQUFDO0FBRTlDLDhCQUE4QjtBQUNkLGdDQUFjLEdBQWE7SUFDMUMsaUJBQWlCLENBQUMsaUJBQWlCO0lBQ25DLGlCQUFpQixDQUFDLFFBQVE7SUFDMUIsaUJBQWlCLENBQUMsdUJBQXVCO0lBQ3pDLGlCQUFpQixDQUFDLDZCQUE2QjtJQUMvQyxpQkFBaUIsQ0FBQyxrQkFBa0I7SUFDcEMsaUJBQWlCLENBQUMsaUNBQWlDO0lBQ25ELGlCQUFpQixDQUFDLHlCQUF5QjtJQUMzQyxpQkFBaUIsQ0FBQyw0QkFBNEI7SUFDOUMsaUJBQWlCLENBQUMsbUNBQW1DO0lBQ3JELGlCQUFpQixDQUFDLHVCQUF1QjtJQUN6QyxpQkFBaUIsQ0FBQyw4QkFBOEI7SUFDaEQsaUJBQWlCLENBQUMsbUJBQW1CO0lBQ3JDLGlCQUFpQixDQUFDLG1CQUFtQjtJQUNyQyxpQkFBaUIsQ0FBQyx5QkFBeUI7SUFDM0MsaUJBQWlCLENBQUMseUJBQXlCO0lBQzNDLGlCQUFpQixDQUFDLGdDQUFnQztJQUNsRCxpQkFBaUIsQ0FBQywyQkFBMkI7SUFDN0MsaUJBQWlCLENBQUMsa0NBQWtDO0lBQ3BELGlCQUFpQixDQUFDLGNBQWM7SUFDaEMsaUJBQWlCLENBQUMsa0NBQWtDO0lBQ3BELGlCQUFpQixDQUFDLHNDQUFzQztJQUN4RCxpQkFBaUIsQ0FBQyxxQkFBcUI7SUFDdkMsaUJBQWlCLENBQUMseUJBQXlCO0lBQzNDLGlCQUFpQixDQUFDLGdDQUFnQztJQUNsRCxpQkFBaUIsQ0FBQywyQkFBMkI7SUFDN0MsaUJBQWlCLENBQUMsa0NBQWtDO0lBQ3BELGlCQUFpQixDQUFDLDhCQUE4QjtJQUNoRCxpQkFBaUIsQ0FBQywrQkFBK0I7SUFDakQsaUJBQWlCLENBQUMsc0NBQXNDO0lBQ3hELGlCQUFpQixDQUFDLGtDQUFrQztJQUNwRCxpQkFBaUIsQ0FBQyxpQ0FBaUM7SUFDbkQsaUJBQWlCLENBQUMsbUJBQW1CO0NBQ3JDLENBQUM7QUFDRiwrQkFBK0I7QUFDZixpQ0FBZSxHQUFhO0lBQzNDLGlCQUFpQixDQUFDLG9CQUFvQjtJQUN0QyxpQkFBaUIsQ0FBQyx3Q0FBd0M7SUFDMUQsaUJBQWlCLENBQUMsMkNBQTJDO0lBQzdELGlCQUFpQixDQUFDLGdCQUFnQjtJQUNsQyxpQkFBaUIsQ0FBQyxzQkFBc0I7SUFDeEMsaUJBQWlCLENBQUMseUJBQXlCO0lBQzNDLGlCQUFpQixDQUFDLGdDQUFnQztJQUNsRCxpQkFBaUIsQ0FBQyxvQkFBb0I7SUFDdEMsaUJBQWlCLENBQUMsMkJBQTJCO0lBQzdDLGlCQUFpQixDQUFDLGdCQUFnQjtJQUNsQyxpQkFBaUIsQ0FBQyxzQkFBc0I7SUFDeEMsaUJBQWlCLENBQUMsNkJBQTZCO0lBQy9DLGlCQUFpQixDQUFDLHdCQUF3QjtJQUMxQyxpQkFBaUIsQ0FBQywrQkFBK0I7SUFDakQsaUJBQWlCLENBQUMsV0FBVztJQUM3QixpQkFBaUIsQ0FBQywrQkFBK0I7SUFDakQsaUJBQWlCLENBQUMsa0JBQWtCO0lBQ3BDLGlCQUFpQixDQUFDLHNCQUFzQjtJQUN4QyxpQkFBaUIsQ0FBQyw2QkFBNkI7SUFDL0MsaUJBQWlCLENBQUMsd0JBQXdCO0lBQzFDLGlCQUFpQixDQUFDLCtCQUErQjtJQUNqRCxpQkFBaUIsQ0FBQyx1QkFBdUI7SUFDekMsaUJBQWlCLENBQUMsNEJBQTRCO0lBQzlDLGlCQUFpQixDQUFDLG1DQUFtQztJQUNyRCxpQkFBaUIsQ0FBQyxlQUFlO0lBQ2pDLGlCQUFpQixDQUFDLHlCQUF5QjtJQUMzQyxpQkFBaUIsQ0FBQyxvQkFBb0I7SUFDdEMsaUJBQWlCLENBQUMsZ0JBQWdCO0lBQ2xDLGlCQUFpQixDQUFDLGdCQUFnQjtJQUNsQyxpQkFBaUIsQ0FBQyxzQkFBc0I7SUFDeEMsaUJBQWlCLENBQUMsd0JBQXdCO0lBQzFDLGlCQUFpQixDQUFDLFdBQVc7SUFDN0IsaUJBQWlCLENBQUMsc0JBQXNCO0lBQ3hDLGlCQUFpQixDQUFDLHdCQUF3QjtJQUMxQyxpQkFBaUIsQ0FBQyw0QkFBNEI7SUFDOUMsaUJBQWlCLENBQUMseUJBQXlCO0lBQzNDLGlCQUFpQixDQUFDLGtDQUFrQztJQUNwRCxpQkFBaUIsQ0FBQyxnQkFBZ0I7SUFDbEMsaUJBQWlCLENBQUMsbUJBQW1CO0lBQ3JDLGlCQUFpQixDQUFDLGtCQUFrQjtJQUNwQyxpQkFBaUIsQ0FBQyxzQkFBc0I7SUFDeEMsaUJBQWlCLENBQUMseUJBQXlCO0lBQzNDLGlCQUFpQixDQUFDLG9CQUFvQjtJQUN0QyxpQkFBaUIsQ0FBQyxzQkFBc0I7SUFDeEMsaUJBQWlCLENBQUMsd0JBQXdCO0lBQzFDLGlCQUFpQixDQUFDLFdBQVc7SUFDN0IsaUJBQWlCLENBQUMsbUNBQW1DO0lBQ3JELGlCQUFpQixDQUFDLHNCQUFzQjtJQUN4QyxpQkFBaUIsQ0FBQyx3QkFBd0I7SUFDMUMsaUJBQWlCLENBQUMsNEJBQTRCO0lBQzlDLGlCQUFpQixDQUFDLCtCQUErQjtDQUNqRCxDQUFDO0FBQ0YsOEJBQThCO0FBQ2QsZ0NBQWMsR0FBYTtJQUMxQyxpQkFBaUIsQ0FBQyxtQkFBbUI7SUFDckMsaUJBQWlCLENBQUMseUNBQXlDO0lBQzNELGlCQUFpQixDQUFDLHFCQUFxQjtJQUN2QyxpQkFBaUIsQ0FBQyxjQUFjO0lBQ2hDLGlCQUFpQixDQUFDLCtCQUErQjtJQUNqRCxpQkFBaUIsQ0FBQyx3QkFBd0I7SUFDMUMsaUJBQWlCLENBQUMsMEJBQTBCO0lBQzVDLGlCQUFpQixDQUFDLG1CQUFtQjtJQUNyQyxpQkFBaUIsQ0FBQyxlQUFlO0lBQ2pDLGlCQUFpQixDQUFDLGVBQWU7SUFDakMsaUJBQWlCLENBQUMsNEJBQTRCO0lBQzlDLGlCQUFpQixDQUFDLHFCQUFxQjtJQUN2QyxpQkFBaUIsQ0FBQyx3QkFBd0I7SUFDMUMsaUJBQWlCLENBQUMsOEJBQThCO0lBQ2hELGlCQUFpQixDQUFDLHVCQUF1QjtJQUN6QyxpQkFBaUIsQ0FBQywrQkFBK0I7SUFDakQsaUJBQWlCLENBQUMsaUJBQWlCO0lBQ25DLGlCQUFpQixDQUFDLFVBQVU7SUFDNUIsaUJBQWlCLENBQUMsdUJBQXVCO0lBQ3pDLGlCQUFpQixDQUFDLDRCQUE0QjtJQUM5QyxpQkFBaUIsQ0FBQyxxQkFBcUI7SUFDdkMsaUJBQWlCLENBQUMsOEJBQThCO0lBQ2hELGlCQUFpQixDQUFDLHVCQUF1QjtJQUN6QyxpQkFBaUIsQ0FBQyxrQ0FBa0M7SUFDcEQsaUJBQWlCLENBQUMsMkJBQTJCO0lBQzdDLGlCQUFpQixDQUFDLDBCQUEwQjtDQUM1QyxDQUFDO0FBQ0YsK0NBQStDO0FBQy9CLGdEQUE4QixHQUFhO0lBQzFELGlCQUFpQixDQUFDLDZCQUE2QjtDQUMvQyxDQUFDO0FBQ0YsaUNBQWlDO0FBQ2pCLG1DQUFpQixHQUFhO0lBQzdDLGlCQUFpQixDQUFDLFdBQVc7SUFDN0IsaUJBQWlCLENBQUMsYUFBYTtDQUMvQixDQUFDO0FBeXZCSCxNQUFNLHNCQUFzQixHQUMzQix1SUFBdUksQ0FBQztBQUN6SSxNQUFNLDRCQUE0QixHQUNqQywrS0FBK0ssQ0FBQztBQUNqTCxNQUFNLGlCQUFpQixHQUN0Qiw4R0FBOEcsQ0FBQztBQUNoSCxNQUFNLHdCQUF3QixHQUM3QixvSkFBb0osQ0FBQztBQUN0SixNQUFNLHdCQUF3QixHQUM3Qix1SUFBdUksQ0FBQztBQUN6SSxNQUFNLDJCQUEyQixHQUNoQyxpSkFBaUosQ0FBQztBQUNuSixNQUFNLGtDQUFrQyxHQUN2QyxrTEFBa0wsQ0FBQztBQUNwTCxNQUFNLHNCQUFzQixHQUMzQix1SUFBdUksQ0FBQztBQUN6SSxNQUFNLDZCQUE2QixHQUNsQyx3S0FBd0ssQ0FBQztBQUMxSyxNQUFNLGtCQUFrQixHQUN2QixxSEFBcUgsQ0FBQztBQUN2SCxNQUFNLGtCQUFrQixHQUN2QixxTEFBcUwsQ0FBQztBQUN2TCxNQUFNLG9CQUFvQixHQUN6QiwwSkFBMEosQ0FBQztBQUM1SixNQUFNLHdCQUF3QixHQUM3QiwySUFBMkksQ0FBQztBQUM3SSxNQUFNLCtCQUErQixHQUNwQyw0S0FBNEssQ0FBQztBQUM5SyxNQUFNLDBCQUEwQixHQUMvQiwrSUFBK0ksQ0FBQztBQUNqSixNQUFNLGlDQUFpQyxHQUN0QyxnTEFBZ0wsQ0FBQztBQUNsTCxNQUFNLGFBQWEsR0FDbEIsbUhBQW1ILENBQUM7QUFDckgsTUFBTSxvQkFBb0IsR0FDekIsb0pBQW9KLENBQUM7QUFDdEosTUFBTSx3QkFBd0IsR0FDN0IsMklBQTJJLENBQUM7QUFDN0ksTUFBTSwrQkFBK0IsR0FDcEMsNEtBQTRLLENBQUM7QUFDOUssTUFBTSwwQkFBMEIsR0FDL0IsK0lBQStJLENBQUM7QUFDakosTUFBTSxpQ0FBaUMsR0FDdEMsZ0xBQWdMLENBQUM7QUFDbEwsTUFBTSw4QkFBOEIsR0FDbkMsdUpBQXVKLENBQUM7QUFDekosTUFBTSxxQ0FBcUMsR0FDMUMsd0xBQXdMLENBQUM7QUFDMUwsTUFBTSxhQUFhLEdBQ2xCLCtGQUErRixDQUFDO0FBQ2pHLE1BQU0sMEJBQTBCLEdBQy9CLG9JQUFvSSxDQUFDO0FBRXRJOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFDL0I7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQXVDO1FBQzVELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsaUNBQWlDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFXO1FBQzFDLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsc0JBQXNCLENBQzVCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxnQkFBZ0I7U0FDaEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FDMUIsS0FBNkM7UUFFN0MsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyx1QkFBdUIsS0FBSyxDQUFDLE9BQU8sMkJBQTJCLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQy9MLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxHQUFXO1FBQ2hELE9BQU8sNEJBQTRCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsNEJBQTRCLENBQ2xDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsT0FBTztZQUM5QixzQkFBc0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLHNCQUFzQjtTQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFrQztRQUNsRCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLGVBQWUsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RJLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFXO1FBQ3JDLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBVztRQUNuQyxNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsYUFBYTtTQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQXlDO1FBQ2hFLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsZUFBZSxLQUFLLENBQUMsYUFBYSxhQUFhLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pLLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxHQUFXO1FBQzVDLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsd0JBQXdCLENBQzlCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsYUFBYTtZQUMxQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGdCQUFnQjtTQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQXlDO1FBQ2hFLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyxTQUFTLG1CQUFtQixDQUFDO0lBQzNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxHQUFXO1FBQzVDLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsd0JBQXdCLENBQzlCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsU0FBUztTQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUN6QixLQUE0QztRQUU1QyxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHNDQUFzQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNySyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsNkJBQTZCLENBQUMsR0FBVztRQUMvQyxPQUFPLDJCQUEyQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDJCQUEyQixDQUNqQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMscUJBQXFCO1NBQzFELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsMEJBQTBCLENBQ2hDLEtBQW1EO1FBRW5ELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsc0NBQXNDLEtBQUssQ0FBQyxxQkFBcUIsYUFBYSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDak0sQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLEdBQVc7UUFDdEQsT0FBTyxrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxrQ0FBa0MsQ0FDeEMsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixxQkFBcUIsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLHFCQUFxQjtZQUMxRCxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQXVDO1FBQzVELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsaUNBQWlDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFXO1FBQzFDLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsc0JBQXNCLENBQzVCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxnQkFBZ0I7U0FDaEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FDM0IsS0FBOEM7UUFFOUMsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxpQ0FBaUMsS0FBSyxDQUFDLGdCQUFnQixhQUFhLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2TCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsK0JBQStCLENBQUMsR0FBVztRQUNqRCxPQUFPLDZCQUE2QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDZCQUE2QixDQUNuQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsZ0JBQWdCO1lBQ2hELFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLFNBQVM7U0FDbEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBbUM7UUFDcEQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxnQkFBZ0IsS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0ksQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEdBQVc7UUFDdEMsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFXO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixtQkFBbUIsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLG1CQUFtQjtTQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUN4QixLQUEyQztRQUUzQyxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHVCQUF1QixLQUFLLENBQUMsT0FBTyxnQkFBZ0IsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFLLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FDeEIsS0FBMkM7UUFFM0MsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxnQkFBZ0IsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RJLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFXO1FBQ3RDLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBVztRQUNwQyxNQUFNLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsT0FBTztZQUM5QixZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxZQUFZO1NBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBeUM7UUFDaEUsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxtQ0FBbUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDL0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEdBQVc7UUFDNUMsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FDOUIsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGtCQUFrQjtTQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHVCQUF1QixDQUM3QixLQUFnRDtRQUVoRCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLG1DQUFtQyxLQUFLLENBQUMsa0JBQWtCLGFBQWEsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNMLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxHQUFXO1FBQ25ELE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsK0JBQStCLENBQ3JDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0Isa0JBQWtCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxrQkFBa0I7WUFDcEQsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsU0FBUztTQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUN4QixLQUEyQztRQUUzQyxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHFDQUFxQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNuSyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBVztRQUM5QyxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUNoQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsb0JBQW9CO1NBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMseUJBQXlCLENBQy9CLEtBQWtEO1FBRWxELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcscUNBQXFDLEtBQUssQ0FBQyxvQkFBb0IsYUFBYSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLEdBQVc7UUFDckQsT0FBTyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxpQ0FBaUMsQ0FDdkMsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixvQkFBb0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLG9CQUFvQjtZQUN4RCxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQThCO1FBQzFDLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4SSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDakMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQVc7UUFDL0IsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxPQUFPO1NBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQXFDO1FBQ3hELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyxPQUFPLGFBQWEsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BLLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFXO1FBQ3hDLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsb0JBQW9CLENBQzFCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsT0FBTztZQUM5QixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBeUM7UUFDaEUsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxtQ0FBbUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDL0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEdBQVc7UUFDNUMsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FDOUIsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGtCQUFrQjtTQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHVCQUF1QixDQUM3QixLQUFnRDtRQUVoRCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLG1DQUFtQyxLQUFLLENBQUMsa0JBQWtCLGFBQWEsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNMLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxHQUFXO1FBQ25ELE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsK0JBQStCLENBQ3JDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0Isa0JBQWtCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxrQkFBa0I7WUFDcEQsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsU0FBUztTQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUN4QixLQUEyQztRQUUzQyxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLGVBQWUsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHFDQUFxQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNuSyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBVztRQUM5QyxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUNoQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsb0JBQW9CO1NBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMseUJBQXlCLENBQy9CLEtBQWtEO1FBRWxELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcscUNBQXFDLEtBQUssQ0FBQyxvQkFBb0IsYUFBYSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLEdBQVc7UUFDckQsT0FBTyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxpQ0FBaUMsQ0FDdkMsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixvQkFBb0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLG9CQUFvQjtZQUN4RCxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsc0JBQXNCLENBQzVCLEtBQStDO1FBRS9DLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcseUNBQXlDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQzNLLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFXO1FBQ2xELE9BQU8sOEJBQThCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQ3BDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0Isd0JBQXdCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyx3QkFBd0I7U0FDaEUsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyw2QkFBNkIsQ0FDbkMsS0FBc0Q7UUFFdEQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyx5Q0FBeUMsS0FBSyxDQUFDLHdCQUF3QixhQUFhLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2TSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsdUNBQXVDLENBQUMsR0FBVztRQUN6RCxPQUFPLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHFDQUFxQyxDQUMzQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcscUNBQXFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsd0JBQXdCO1lBQ2hFLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLFNBQVM7U0FDbEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBOEI7UUFDMUMsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxRQUFRLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxVQUFVLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0SCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDakMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQVc7UUFDL0IsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQ3hCLEtBQTJDO1FBRTNDLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyxTQUFTLGdCQUFnQixDQUFDO0lBQ3hKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxHQUFXO1FBQzlDLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsMEJBQTBCLENBQ2hDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsU0FBUztTQUNsQyxDQUFDO0lBQ0gsQ0FBQzs7QUE5MUJGLGtEQSsxQkM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7O0FBQWpDLG9EQXNhQzs7O0FBcmFBLGtFQUFrRTtBQUNsRCx5Q0FBb0IsR0FBYTtJQUNoRCxpQ0FBaUM7SUFDakMsY0FBYztDQUNkLENBQUM7QUFDRiwyRUFBMkU7QUFDM0Qsa0RBQTZCLEdBQWE7SUFDekQsMENBQTBDO0lBQzFDLGNBQWM7Q0FDZCxDQUFDO0FBQ0Ysc0ZBQXNGO0FBQ3RFLDZEQUF3QyxHQUFhO0lBQ3BFLHFEQUFxRDtDQUNyRCxDQUFDO0FBQ0YseUZBQXlGO0FBQ3pFLGdFQUEyQyxHQUFhO0lBQ3ZFLHdEQUF3RDtDQUN4RCxDQUFDO0FBQ0YsOERBQThEO0FBQzlDLHFDQUFnQixHQUFhLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUM3RSxvRUFBb0U7QUFDcEQsMkNBQXNCLEdBQWE7SUFDbEQsbUNBQW1DO0lBQ25DLHdCQUF3QjtDQUN4QixDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELDhDQUF5QixHQUFhO0lBQ3JELHNDQUFzQztJQUN0Qyx3QkFBd0I7Q0FDeEIsQ0FBQztBQUNGLDhFQUE4RTtBQUM5RCxxREFBZ0MsR0FBYTtJQUM1RCw2Q0FBNkM7Q0FDN0MsQ0FBQztBQUNGLGtFQUFrRTtBQUNsRCx5Q0FBb0IsR0FBYTtJQUNoRCxpQ0FBaUM7SUFDakMsd0JBQXdCO0NBQ3hCLENBQUM7QUFDRix5RUFBeUU7QUFDekQsZ0RBQTJCLEdBQWE7SUFDdkQsd0NBQXdDO0NBQ3hDLENBQUM7QUFDRiw4REFBOEQ7QUFDOUMscUNBQWdCLEdBQWE7SUFDNUMsNkJBQTZCO0lBQzdCLHdCQUF3QjtDQUN4QixDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELDJDQUFzQixHQUFhO0lBQ2xELG1DQUFtQztJQUNuQyx3QkFBd0I7Q0FDeEIsQ0FBQztBQUNGLDJFQUEyRTtBQUMzRCxrREFBNkIsR0FBYTtJQUN6RCwwQ0FBMEM7Q0FDMUMsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCw2Q0FBd0IsR0FBYTtJQUNwRCxxQ0FBcUM7SUFDckMsd0JBQXdCO0NBQ3hCLENBQUM7QUFDRiw2RUFBNkU7QUFDN0Qsb0RBQStCLEdBQWE7SUFDM0QsNENBQTRDO0NBQzVDLENBQUM7QUFDRix5REFBeUQ7QUFDekMsZ0NBQVcsR0FBYTtJQUN2Qyx3QkFBd0I7SUFDeEIsd0JBQXdCO0NBQ3hCLENBQUM7QUFDRiw2RUFBNkU7QUFDN0Qsb0RBQStCLEdBQWE7SUFDM0QsNENBQTRDO0NBQzVDLENBQUM7QUFDRixnRUFBZ0U7QUFDaEQsdUNBQWtCLEdBQWE7SUFDOUMsK0JBQStCO0NBQy9CLENBQUM7QUFDRixvRUFBb0U7QUFDcEQsMkNBQXNCLEdBQWE7SUFDbEQsbUNBQW1DO0lBQ25DLHdCQUF3QjtDQUN4QixDQUFDO0FBQ0YsMkVBQTJFO0FBQzNELGtEQUE2QixHQUFhO0lBQ3pELDBDQUEwQztDQUMxQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELDZDQUF3QixHQUFhO0lBQ3BELHFDQUFxQztJQUNyQyx3QkFBd0I7Q0FDeEIsQ0FBQztBQUNGLDZFQUE2RTtBQUM3RCxvREFBK0IsR0FBYTtJQUMzRCw0Q0FBNEM7Q0FDNUMsQ0FBQztBQUNGLHFFQUFxRTtBQUNyRCw0Q0FBdUIsR0FBYTtJQUNuRCxvQ0FBb0M7SUFDcEMsY0FBYztDQUNkLENBQUM7QUFDRiwwRUFBMEU7QUFDMUQsaURBQTRCLEdBQWE7SUFDeEQseUNBQXlDO0lBQ3pDLHdCQUF3QjtDQUN4QixDQUFDO0FBQ0YsaUZBQWlGO0FBQ2pFLHdEQUFtQyxHQUFhO0lBQy9ELGdEQUFnRDtDQUNoRCxDQUFDO0FBQ0YsNkRBQTZEO0FBQzdDLG9DQUFlLEdBQWEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBQzNFLHVFQUF1RTtBQUN2RCw4Q0FBeUIsR0FBYTtJQUNyRCxzQ0FBc0M7Q0FDdEMsQ0FBQztBQUNGLGtFQUFrRTtBQUNsRCx5Q0FBb0IsR0FBYTtJQUNoRCxpQ0FBaUM7Q0FDakMsQ0FBQztBQUNGLDhEQUE4RDtBQUM5QyxxQ0FBZ0IsR0FBYSxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDN0UsOERBQThEO0FBQzlDLHFDQUFnQixHQUFhLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUM3RSxvRUFBb0U7QUFDcEQsMkNBQXNCLEdBQWE7SUFDbEQsbUNBQW1DO0NBQ25DLENBQUM7QUFDRixzRUFBc0U7QUFDdEQsNkNBQXdCLEdBQWE7SUFDcEQscUNBQXFDO0NBQ3JDLENBQUM7QUFDRix5REFBeUQ7QUFDekMsZ0NBQVcsR0FBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDbkUsb0VBQW9FO0FBQ3BELDJDQUFzQixHQUFhO0lBQ2xELG1DQUFtQztDQUNuQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELDZDQUF3QixHQUFhO0lBQ3BELHFDQUFxQztDQUNyQyxDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELGlEQUE0QixHQUFhO0lBQ3hELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0YsK0RBQStEO0FBQy9DLHNDQUFpQixHQUFhO0lBQzdDLDhCQUE4QjtDQUM5QixDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELDhDQUF5QixHQUFhO0lBQ3JELHNDQUFzQztDQUN0QyxDQUFDO0FBQ0YsZ0ZBQWdGO0FBQ2hFLHVEQUFrQyxHQUFhO0lBQzlELCtDQUErQztDQUMvQyxDQUFDO0FBQ0YsK0RBQStEO0FBQy9DLHdDQUFtQixHQUFhO0lBQy9DLDhCQUE4QjtDQUM5QixDQUFDO0FBQ0YscUVBQXFFO0FBQ3JELDhDQUF5QixHQUFhO0lBQ3JELG9DQUFvQztDQUNwQyxDQUFDO0FBQ0YsMERBQTBEO0FBQzFDLG1DQUFjLEdBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ3ZFLHlFQUF5RTtBQUN6RCxrREFBNkIsR0FBYTtJQUN6RCx3Q0FBd0M7Q0FDeEMsQ0FBQztBQUNGLGlFQUFpRTtBQUNqRCwwQ0FBcUIsR0FBYTtJQUNqRCxnQ0FBZ0M7Q0FDaEMsQ0FBQztBQUNGLG9FQUFvRTtBQUNwRCw2Q0FBd0IsR0FBYTtJQUNwRCxtQ0FBbUM7Q0FDbkMsQ0FBQztBQUNGLDJFQUEyRTtBQUMzRCxvREFBK0IsR0FBYTtJQUMzRCwwQ0FBMEM7Q0FDMUMsQ0FBQztBQUNGLCtEQUErRDtBQUMvQyx3Q0FBbUIsR0FBYTtJQUMvQyw4QkFBOEI7Q0FDOUIsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCwrQ0FBMEIsR0FBYTtJQUN0RCxxQ0FBcUM7Q0FDckMsQ0FBQztBQUNGLDJEQUEyRDtBQUMzQyxvQ0FBZSxHQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUN6RSwyREFBMkQ7QUFDM0Msb0NBQWUsR0FBYSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFDekUsaUVBQWlFO0FBQ2pELDBDQUFxQixHQUFhO0lBQ2pELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0YsaUVBQWlFO0FBQ2pELDBDQUFxQixHQUFhO0lBQ2pELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELGlEQUE0QixHQUFhO0lBQ3hELHVDQUF1QztDQUN2QyxDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELDRDQUF1QixHQUFhO0lBQ25ELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELG1EQUE4QixHQUFhO0lBQzFELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0Ysc0RBQXNEO0FBQ3RDLCtCQUFVLEdBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQy9ELDBFQUEwRTtBQUMxRCxtREFBOEIsR0FBYTtJQUMxRCx5Q0FBeUM7Q0FDekMsQ0FBQztBQUNGLDhFQUE4RTtBQUM5RCx1REFBa0MsR0FBYTtJQUM5RCw2Q0FBNkM7Q0FDN0MsQ0FBQztBQUNGLDZEQUE2RDtBQUM3QyxzQ0FBaUIsR0FBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDN0UsaUVBQWlFO0FBQ2pELDBDQUFxQixHQUFhO0lBQ2pELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELGlEQUE0QixHQUFhO0lBQ3hELHVDQUF1QztDQUN2QyxDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELDRDQUF1QixHQUFhO0lBQ25ELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELG1EQUE4QixHQUFhO0lBQzFELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELCtDQUEwQixHQUFhO0lBQ3RELHFDQUFxQztDQUNyQyxDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELGdEQUEyQixHQUFhO0lBQ3ZELHNDQUFzQztDQUN0QyxDQUFDO0FBQ0YsOEVBQThFO0FBQzlELHVEQUFrQyxHQUFhO0lBQzlELDZDQUE2QztDQUM3QyxDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELG1EQUE4QixHQUFhO0lBQzFELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0YsK0VBQStFO0FBQy9ELHNEQUFpQyxHQUFhO0lBQzdELDhDQUE4QztDQUM5QyxDQUFDO0FBQ0YsaUVBQWlFO0FBQ2pELHdDQUFtQixHQUFhO0lBQy9DLGdDQUFnQztDQUNoQyxDQUFDO0FBQ0YsdUZBQXVGO0FBQ3ZFLDhEQUF5QyxHQUFhO0lBQ3JFLHNEQUFzRDtDQUN0RCxDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELDBDQUFxQixHQUFhO0lBQ2pELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YsNERBQTREO0FBQzVDLG1DQUFjLEdBQWEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQ3pFLDZFQUE2RTtBQUM3RCxvREFBK0IsR0FBYTtJQUMzRCw0Q0FBNEM7Q0FDNUMsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCw2Q0FBd0IsR0FBYTtJQUNwRCxxQ0FBcUM7Q0FDckMsQ0FBQztBQUNGLHdFQUF3RTtBQUN4RCwrQ0FBMEIsR0FBYTtJQUN0RCx1Q0FBdUM7Q0FDdkMsQ0FBQztBQUNGLGlFQUFpRTtBQUNqRCx3Q0FBbUIsR0FBYTtJQUMvQyxnQ0FBZ0M7Q0FDaEMsQ0FBQztBQUNGLDZEQUE2RDtBQUM3QyxvQ0FBZSxHQUFhLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUMzRSw2REFBNkQ7QUFDN0Msb0NBQWUsR0FBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDM0UsMEVBQTBFO0FBQzFELGlEQUE0QixHQUFhO0lBQ3hELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELDBDQUFxQixHQUFhO0lBQ2pELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELDZDQUF3QixHQUFhO0lBQ3BELHFDQUFxQztDQUNyQyxDQUFDO0FBQ0YsNEVBQTRFO0FBQzVELG1EQUE4QixHQUFhO0lBQzFELDJDQUEyQztDQUMzQyxDQUFDO0FBQ0YscUVBQXFFO0FBQ3JELDRDQUF1QixHQUFhO0lBQ25ELG9DQUFvQztDQUNwQyxDQUFDO0FBQ0YsNkVBQTZFO0FBQzdELG9EQUErQixHQUFhO0lBQzNELDRDQUE0QztDQUM1QyxDQUFDO0FBQ0YsK0RBQStEO0FBQy9DLHNDQUFpQixHQUFhO0lBQzdDLDhCQUE4QjtDQUM5QixDQUFDO0FBQ0Ysd0RBQXdEO0FBQ3hDLCtCQUFVLEdBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ2pFLHFFQUFxRTtBQUNyRCw0Q0FBdUIsR0FBYTtJQUNuRCxvQ0FBb0M7Q0FDcEMsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCxpREFBNEIsR0FBYTtJQUN4RCx5Q0FBeUM7Q0FDekMsQ0FBQztBQUNGLG1FQUFtRTtBQUNuRCwwQ0FBcUIsR0FBYTtJQUNqRCxrQ0FBa0M7Q0FDbEMsQ0FBQztBQUNGLDRFQUE0RTtBQUM1RCxtREFBOEIsR0FBYTtJQUMxRCwyQ0FBMkM7Q0FDM0MsQ0FBQztBQUNGLHFFQUFxRTtBQUNyRCw0Q0FBdUIsR0FBYTtJQUNuRCxvQ0FBb0M7Q0FDcEMsQ0FBQztBQUNGLGdGQUFnRjtBQUNoRSx1REFBa0MsR0FBYTtJQUM5RCwrQ0FBK0M7Q0FDL0MsQ0FBQztBQUNGLHlFQUF5RTtBQUN6RCxnREFBMkIsR0FBYTtJQUN2RCx3Q0FBd0M7Q0FDeEMsQ0FBQztBQUNGLGlFQUFpRTtBQUNqRCx3Q0FBbUIsR0FBYTtJQUMvQyxnQ0FBZ0M7Q0FDaEMsQ0FBQztBQUNGLDhEQUE4RDtBQUM5QyxxQ0FBZ0IsR0FBYSxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDN0Usd0VBQXdFO0FBQ3hELCtDQUEwQixHQUFhLEVBQUUsQ0FBQztBQUMxRCxpRUFBaUU7QUFDakQsd0NBQW1CLEdBQWE7SUFDL0MsY0FBYztJQUNkLGdDQUFnQztJQUNoQyx3QkFBd0I7Q0FDeEIsQ0FBQztBQUNGLGdFQUFnRTtBQUNoRCx1Q0FBa0IsR0FBYTtJQUM5QywrQkFBK0I7Q0FDL0IsQ0FBQztBQUNGLHlEQUF5RDtBQUN6QyxnQ0FBVyxHQUFhLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUNuRSwyREFBMkQ7QUFDM0Msa0NBQWEsR0FBYSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFDdkUsb0VBQW9FO0FBQ3BELDJDQUFzQixHQUFhO0lBQ2xELG1DQUFtQztDQUNuQyxDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELDhDQUF5QixHQUFhO0lBQ3JELHNDQUFzQztDQUN0QyxDQUFDO0FBQ0Ysa0VBQWtFO0FBQ2xELHlDQUFvQixHQUFhO0lBQ2hELGlDQUFpQztDQUNqQyxDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELDJDQUFzQixHQUFhO0lBQ2xELG1DQUFtQztDQUNuQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELDZDQUF3QixHQUFhO0lBQ3BELHFDQUFxQztDQUNyQyxDQUFDO0FBQ0YseURBQXlEO0FBQ3pDLGdDQUFXLEdBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ25FLGlGQUFpRjtBQUNqRSx3REFBbUMsR0FBYTtJQUMvRCxnREFBZ0Q7Q0FDaEQsQ0FBQztBQUNGLG9FQUFvRTtBQUNwRCwyQ0FBc0IsR0FBYTtJQUNsRCxtQ0FBbUM7Q0FDbkMsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCw2Q0FBd0IsR0FBYTtJQUNwRCxxQ0FBcUM7Q0FDckMsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCxpREFBNEIsR0FBYTtJQUN4RCx5Q0FBeUM7Q0FDekMsQ0FBQztBQUNGLDZFQUE2RTtBQUM3RCxvREFBK0IsR0FBYTtJQUMzRCw0Q0FBNEM7Q0FDNUMsQ0FBQztBQUdIOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUE0RWhDOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFhO1FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWdCO1FBQzlCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBQ25FLENBQUM7O0FBL0ZGLG9EQWdHQzs7O0FBL0ZBLHNFQUFzRTtBQUN0RCx3REFBbUMsR0FBYTtJQUMvRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRix5RUFBeUU7QUFDekQsMkRBQXNDLEdBQWE7SUFDbEUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELHNEQUFpQyxHQUFhO0lBQzdELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLGdFQUFnRTtBQUNoRCxrREFBNkIsR0FBYTtJQUN6RCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixzRUFBc0U7QUFDdEQsd0RBQW1DLEdBQWE7SUFDL0QsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELDBEQUFxQyxHQUFhO0lBQ2pFLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDJEQUEyRDtBQUMzQyw2Q0FBd0IsR0FBYTtJQUNwRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixzRUFBc0U7QUFDdEQsd0RBQW1DLEdBQWE7SUFDL0QsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELDBEQUFxQyxHQUFhO0lBQ2pFLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDRFQUE0RTtBQUM1RCw4REFBeUMsR0FBYTtJQUNyRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixtRUFBbUU7QUFDbkQscURBQWdDLEdBQWE7SUFDNUQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELHFEQUFnQyxHQUFhO0lBQzVELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDJEQUEyRDtBQUMzQyw2Q0FBd0IsR0FBYTtJQUNwRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0MsK0NBQTBCLEdBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV2RSx1REFBdUQ7QUFDdkMsb0NBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMscUNBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLGlDQUFZLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvZ3JlZW5ncmFzcy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgZ3JlZW5ncmFzcyBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgR3JlZW5ncmFzc0FjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJncmVlbmdyYXNzXCI7XG5cblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpBc3NvY2lhdGVSb2xlVG9Hcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlUm9sZVRvR3JvdXAgPSBcImdyZWVuZ3Jhc3M6QXNzb2NpYXRlUm9sZVRvR3JvdXBcIjtcblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gZ3JlZW5ncmFzczpBc3NvY2lhdGVTZXJ2aWNlUm9sZVRvQWNjb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU2VydmljZVJvbGVUb0FjY291bnQgPVxuXHRcdFwiZ3JlZW5ncmFzczpBc3NvY2lhdGVTZXJ2aWNlUm9sZVRvQWNjb3VudFwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkJhdGNoQXNzb2NpYXRlQ2xpZW50RGV2aWNlV2l0aENvcmVEZXZpY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoQXNzb2NpYXRlQ2xpZW50RGV2aWNlV2l0aENvcmVEZXZpY2UgPVxuXHRcdFwiZ3JlZW5ncmFzczpCYXRjaEFzc29jaWF0ZUNsaWVudERldmljZVdpdGhDb3JlRGV2aWNlXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6QmF0Y2hEaXNhc3NvY2lhdGVDbGllbnREZXZpY2VGcm9tQ29yZURldmljZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hEaXNhc3NvY2lhdGVDbGllbnREZXZpY2VGcm9tQ29yZURldmljZSA9XG5cdFx0XCJncmVlbmdyYXNzOkJhdGNoRGlzYXNzb2NpYXRlQ2xpZW50RGV2aWNlRnJvbUNvcmVEZXZpY2VcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDYW5jZWxEZXBsb3ltZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxEZXBsb3ltZW50ID0gXCJncmVlbmdyYXNzOkNhbmNlbERlcGxveW1lbnRcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVDb21wb25lbnRWZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb21wb25lbnRWZXJzaW9uID0gXCJncmVlbmdyYXNzOkNyZWF0ZUNvbXBvbmVudFZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZUNvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUNvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlQ29yZURlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvcmVEZWZpbml0aW9uID0gXCJncmVlbmdyYXNzOkNyZWF0ZUNvcmVEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlQ29yZURlZmluaXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb3JlRGVmaW5pdGlvblZlcnNpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVDb3JlRGVmaW5pdGlvblZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVEZXBsb3ltZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXBsb3ltZW50ID0gXCJncmVlbmdyYXNzOkNyZWF0ZURlcGxveW1lbnRcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVEZXZpY2VEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXZpY2VEZWZpbml0aW9uID0gXCJncmVlbmdyYXNzOkNyZWF0ZURldmljZURlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVEZXZpY2VEZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGV2aWNlRGVmaW5pdGlvblZlcnNpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVEZXZpY2VEZWZpbml0aW9uVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlR3JvdXAgPSBcImdyZWVuZ3Jhc3M6Q3JlYXRlR3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVHcm91cENlcnRpZmljYXRlQXV0aG9yaXR5ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVHcm91cENlcnRpZmljYXRlQXV0aG9yaXR5ID1cblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlR3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0eVwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZUdyb3VwVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlR3JvdXBWZXJzaW9uID0gXCJncmVlbmdyYXNzOkNyZWF0ZUdyb3VwVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZUxvZ2dlckRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxvZ2dlckRlZmluaXRpb24gPSBcImdyZWVuZ3Jhc3M6Q3JlYXRlTG9nZ2VyRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZUxvZ2dlckRlZmluaXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMb2dnZXJEZWZpbml0aW9uVmVyc2lvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUxvZ2dlckRlZmluaXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXNvdXJjZURlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVSZXNvdXJjZURlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkNyZWF0ZVNvZnR3YXJlVXBkYXRlSm9iICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb2Z0d2FyZVVwZGF0ZUpvYiA9XG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZVNvZnR3YXJlVXBkYXRlSm9iXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6Q3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpDcmVhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkRlbGV0ZUNvbXBvbmVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29tcG9uZW50ID0gXCJncmVlbmdyYXNzOkRlbGV0ZUNvbXBvbmVudFwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkRlbGV0ZUNvbm5lY3RvckRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbm5lY3RvckRlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpEZWxldGVDb25uZWN0b3JEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6RGVsZXRlQ29yZURlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvcmVEZWZpbml0aW9uID0gXCJncmVlbmdyYXNzOkRlbGV0ZUNvcmVEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6RGVsZXRlQ29yZURldmljZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29yZURldmljZSA9IFwiZ3JlZW5ncmFzczpEZWxldGVDb3JlRGV2aWNlXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6RGVsZXRlRGVwbG95bWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGVwbG95bWVudCA9IFwiZ3JlZW5ncmFzczpEZWxldGVEZXBsb3ltZW50XCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6RGVsZXRlRGV2aWNlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGV2aWNlRGVmaW5pdGlvbiA9IFwiZ3JlZW5ncmFzczpEZWxldGVEZXZpY2VEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6RGVsZXRlRnVuY3Rpb25EZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkRlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpEZWxldGVGdW5jdGlvbkRlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpEZWxldGVHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlR3JvdXAgPSBcImdyZWVuZ3Jhc3M6RGVsZXRlR3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpEZWxldGVMb2dnZXJEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMb2dnZXJEZWZpbml0aW9uID0gXCJncmVlbmdyYXNzOkRlbGV0ZUxvZ2dlckRlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpEZWxldGVSZXNvdXJjZURlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlRGVmaW5pdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkRlbGV0ZVJlc291cmNlRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkRlbGV0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpEZWxldGVTdWJzY3JpcHRpb25EZWZpbml0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpEZXNjcmliZUNvbXBvbmVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDb21wb25lbnQgPSBcImdyZWVuZ3Jhc3M6RGVzY3JpYmVDb21wb25lbnRcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpEaXNhc3NvY2lhdGVSb2xlRnJvbUdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVSb2xlRnJvbUdyb3VwID1cblx0XHRcImdyZWVuZ3Jhc3M6RGlzYXNzb2NpYXRlUm9sZUZyb21Hcm91cFwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOkRpc2Fzc29jaWF0ZVNlcnZpY2VSb2xlRnJvbUFjY291bnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZVNlcnZpY2VSb2xlRnJvbUFjY291bnQgPVxuXHRcdFwiZ3JlZW5ncmFzczpEaXNhc3NvY2lhdGVTZXJ2aWNlUm9sZUZyb21BY2NvdW50XCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpEaXNjb3ZlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY292ZXIgPSBcImdyZWVuZ3Jhc3M6RGlzY292ZXJcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldEFzc29jaWF0ZWRSb2xlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBc3NvY2lhdGVkUm9sZSA9IFwiZ3JlZW5ncmFzczpHZXRBc3NvY2lhdGVkUm9sZVwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0QnVsa0RlcGxveW1lbnRTdGF0dXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEJ1bGtEZXBsb3ltZW50U3RhdHVzID1cblx0XHRcImdyZWVuZ3Jhc3M6R2V0QnVsa0RlcGxveW1lbnRTdGF0dXNcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldENvbXBvbmVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29tcG9uZW50ID0gXCJncmVlbmdyYXNzOkdldENvbXBvbmVudFwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0Q29tcG9uZW50VmVyc2lvbkFydGlmYWN0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb21wb25lbnRWZXJzaW9uQXJ0aWZhY3QgPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRDb21wb25lbnRWZXJzaW9uQXJ0aWZhY3RcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldENvbm5lY3Rpdml0eUluZm8gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbm5lY3Rpdml0eUluZm8gPSBcImdyZWVuZ3Jhc3M6R2V0Q29ubmVjdGl2aXR5SW5mb1wiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0Q29ubmVjdG9yRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29ubmVjdG9yRGVmaW5pdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldENvbm5lY3RvckRlZmluaXRpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRDb3JlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29yZURlZmluaXRpb24gPSBcImdyZWVuZ3Jhc3M6R2V0Q29yZURlZmluaXRpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldENvcmVEZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29yZURlZmluaXRpb25WZXJzaW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6R2V0Q29yZURlZmluaXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRDb3JlRGV2aWNlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb3JlRGV2aWNlID0gXCJncmVlbmdyYXNzOkdldENvcmVEZXZpY2VcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldERlcGxveW1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERlcGxveW1lbnQgPSBcImdyZWVuZ3Jhc3M6R2V0RGVwbG95bWVudFwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0RGVwbG95bWVudFN0YXR1cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RGVwbG95bWVudFN0YXR1cyA9IFwiZ3JlZW5ncmFzczpHZXREZXBsb3ltZW50U3RhdHVzXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXREZXZpY2VEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREZXZpY2VEZWZpbml0aW9uID0gXCJncmVlbmdyYXNzOkdldERldmljZURlZmluaXRpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldERldmljZURlZmluaXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREZXZpY2VEZWZpbml0aW9uVmVyc2lvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldERldmljZURlZmluaXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRGdW5jdGlvbkRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZ1bmN0aW9uRGVmaW5pdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldEZ1bmN0aW9uRGVmaW5pdGlvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0RnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldEdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRHcm91cCA9IFwiZ3JlZW5ncmFzczpHZXRHcm91cFwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0R3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0eSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0R3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0eSA9XG5cdFx0XCJncmVlbmdyYXNzOkdldEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHlcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldEdyb3VwQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRHcm91cENlcnRpZmljYXRlQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldEdyb3VwQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRHcm91cFZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEdyb3VwVmVyc2lvbiA9IFwiZ3JlZW5ncmFzczpHZXRHcm91cFZlcnNpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldExvZ2dlckRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExvZ2dlckRlZmluaXRpb24gPSBcImdyZWVuZ3Jhc3M6R2V0TG9nZ2VyRGVmaW5pdGlvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0TG9nZ2VyRGVmaW5pdGlvblZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExvZ2dlckRlZmluaXRpb25WZXJzaW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6R2V0TG9nZ2VyRGVmaW5pdGlvblZlcnNpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldFJlc291cmNlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVzb3VyY2VEZWZpbml0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6R2V0UmVzb3VyY2VEZWZpbml0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6R2V0UmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0U2VydmljZVJvbGVGb3JBY2NvdW50ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTZXJ2aWNlUm9sZUZvckFjY291bnQgPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRTZXJ2aWNlUm9sZUZvckFjY291bnRcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkdldFN1YnNjcmlwdGlvbkRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFN1YnNjcmlwdGlvbkRlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JlZW5ncmFzczpHZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpHZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvblwiO1xuXHQvKiogW1JlYWRdIGdyZWVuZ3Jhc3M6R2V0VGhpbmdSdW50aW1lQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VGhpbmdSdW50aW1lQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOkdldFRoaW5nUnVudGltZUNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkxpc3RCdWxrRGVwbG95bWVudERldGFpbGVkUmVwb3J0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEJ1bGtEZXBsb3ltZW50RGV0YWlsZWRSZXBvcnRzID1cblx0XHRcImdyZWVuZ3Jhc3M6TGlzdEJ1bGtEZXBsb3ltZW50RGV0YWlsZWRSZXBvcnRzXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0QnVsa0RlcGxveW1lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QnVsa0RlcGxveW1lbnRzID0gXCJncmVlbmdyYXNzOkxpc3RCdWxrRGVwbG95bWVudHNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RDbGllbnREZXZpY2VzQXNzb2NpYXRlZFdpdGhDb3JlRGV2aWNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2xpZW50RGV2aWNlc0Fzc29jaWF0ZWRXaXRoQ29yZURldmljZSA9XG5cdFx0XCJncmVlbmdyYXNzOkxpc3RDbGllbnREZXZpY2VzQXNzb2NpYXRlZFdpdGhDb3JlRGV2aWNlXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0Q29tcG9uZW50VmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb21wb25lbnRWZXJzaW9ucyA9IFwiZ3JlZW5ncmFzczpMaXN0Q29tcG9uZW50VmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RDb21wb25lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29tcG9uZW50cyA9IFwiZ3JlZW5ncmFzczpMaXN0Q29tcG9uZW50c1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9ucyA9XG5cdFx0XCJncmVlbmdyYXNzOkxpc3RDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RDb25uZWN0b3JEZWZpbml0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbm5lY3RvckRlZmluaXRpb25zID1cblx0XHRcImdyZWVuZ3Jhc3M6TGlzdENvbm5lY3RvckRlZmluaXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0Q29yZURlZmluaXRpb25WZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvcmVEZWZpbml0aW9uVmVyc2lvbnMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0Q29yZURlZmluaXRpb25WZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdENvcmVEZWZpbml0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvcmVEZWZpbml0aW9ucyA9IFwiZ3JlZW5ncmFzczpMaXN0Q29yZURlZmluaXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0Q29yZURldmljZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb3JlRGV2aWNlcyA9IFwiZ3JlZW5ncmFzczpMaXN0Q29yZURldmljZXNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3REZXBsb3ltZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERlcGxveW1lbnRzID0gXCJncmVlbmdyYXNzOkxpc3REZXBsb3ltZW50c1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdERldmljZURlZmluaXRpb25WZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERldmljZURlZmluaXRpb25WZXJzaW9ucyA9XG5cdFx0XCJncmVlbmdyYXNzOkxpc3REZXZpY2VEZWZpbml0aW9uVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3REZXZpY2VEZWZpbml0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERldmljZURlZmluaXRpb25zID0gXCJncmVlbmdyYXNzOkxpc3REZXZpY2VEZWZpbml0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdEVmZmVjdGl2ZURlcGxveW1lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RWZmZWN0aXZlRGVwbG95bWVudHMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0RWZmZWN0aXZlRGVwbG95bWVudHNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25zID1cblx0XHRcImdyZWVuZ3Jhc3M6TGlzdEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0RnVuY3Rpb25EZWZpbml0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZ1bmN0aW9uRGVmaW5pdGlvbnMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0RnVuY3Rpb25EZWZpbml0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdGllcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdGllcyA9XG5cdFx0XCJncmVlbmdyYXNzOkxpc3RHcm91cENlcnRpZmljYXRlQXV0aG9yaXRpZXNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RHcm91cFZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0R3JvdXBWZXJzaW9ucyA9IFwiZ3JlZW5ncmFzczpMaXN0R3JvdXBWZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdEdyb3VwcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdyb3VwcyA9IFwiZ3JlZW5ncmFzczpMaXN0R3JvdXBzXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0SW5zdGFsbGVkQ29tcG9uZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEluc3RhbGxlZENvbXBvbmVudHMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0SW5zdGFsbGVkQ29tcG9uZW50c1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdExvZ2dlckRlZmluaXRpb25WZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExvZ2dlckRlZmluaXRpb25WZXJzaW9ucyA9XG5cdFx0XCJncmVlbmdyYXNzOkxpc3RMb2dnZXJEZWZpbml0aW9uVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RMb2dnZXJEZWZpbml0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExvZ2dlckRlZmluaXRpb25zID0gXCJncmVlbmdyYXNzOkxpc3RMb2dnZXJEZWZpbml0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbnMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0UmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBncmVlbmdyYXNzOkxpc3RSZXNvdXJjZURlZmluaXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVzb3VyY2VEZWZpbml0aW9ucyA9XG5cdFx0XCJncmVlbmdyYXNzOkxpc3RSZXNvdXJjZURlZmluaXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JlZW5ncmFzczpMaXN0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25zID1cblx0XHRcImdyZWVuZ3Jhc3M6TGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6TGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3Vic2NyaXB0aW9uRGVmaW5pdGlvbnMgPVxuXHRcdFwiZ3JlZW5ncmFzczpMaXN0U3Vic2NyaXB0aW9uRGVmaW5pdGlvbnNcIjtcblx0LyoqIFtSZWFkXSBncmVlbmdyYXNzOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImdyZWVuZ3Jhc3M6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOlJlc2V0RGVwbG95bWVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc2V0RGVwbG95bWVudHMgPSBcImdyZWVuZ3Jhc3M6UmVzZXREZXBsb3ltZW50c1wiO1xuXHQvKiogW0xpc3RdIGdyZWVuZ3Jhc3M6UmVzb2x2ZUNvbXBvbmVudENhbmRpZGF0ZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc29sdmVDb21wb25lbnRDYW5kaWRhdGVzID1cblx0XHRcImdyZWVuZ3Jhc3M6UmVzb2x2ZUNvbXBvbmVudENhbmRpZGF0ZXNcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpTdGFydEJ1bGtEZXBsb3ltZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEJ1bGtEZXBsb3ltZW50ID0gXCJncmVlbmdyYXNzOlN0YXJ0QnVsa0RlcGxveW1lbnRcIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpTdG9wQnVsa0RlcGxveW1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BCdWxrRGVwbG95bWVudCA9IFwiZ3JlZW5ncmFzczpTdG9wQnVsa0RlcGxveW1lbnRcIjtcblx0LyoqIFtUYWdnaW5nXSBncmVlbmdyYXNzOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwiZ3JlZW5ncmFzczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGdyZWVuZ3Jhc3M6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwiZ3JlZW5ncmFzczpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6VXBkYXRlQ29ubmVjdGl2aXR5SW5mbyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29ubmVjdGl2aXR5SW5mbyA9IFwiZ3JlZW5ncmFzczpVcGRhdGVDb25uZWN0aXZpdHlJbmZvXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6VXBkYXRlQ29ubmVjdG9yRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29ubmVjdG9yRGVmaW5pdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZUNvbm5lY3RvckRlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpVcGRhdGVDb3JlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29yZURlZmluaXRpb24gPSBcImdyZWVuZ3Jhc3M6VXBkYXRlQ29yZURlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpVcGRhdGVEZXZpY2VEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVEZXZpY2VEZWZpbml0aW9uID0gXCJncmVlbmdyYXNzOlVwZGF0ZURldmljZURlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpVcGRhdGVGdW5jdGlvbkRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uRGVmaW5pdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZUZ1bmN0aW9uRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOlVwZGF0ZUdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVHcm91cCA9IFwiZ3JlZW5ncmFzczpVcGRhdGVHcm91cFwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOlVwZGF0ZUdyb3VwQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVHcm91cENlcnRpZmljYXRlQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZUdyb3VwQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6VXBkYXRlTG9nZ2VyRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTG9nZ2VyRGVmaW5pdGlvbiA9IFwiZ3JlZW5ncmFzczpVcGRhdGVMb2dnZXJEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGdyZWVuZ3Jhc3M6VXBkYXRlUmVzb3VyY2VEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXNvdXJjZURlZmluaXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVSZXNvdXJjZURlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3JlZW5ncmFzczpVcGRhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uID1cblx0XHRcImdyZWVuZ3Jhc3M6VXBkYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBncmVlbmdyYXNzOlVwZGF0ZVRoaW5nUnVudGltZUNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRoaW5nUnVudGltZUNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVzY3JpYmVDb21wb25lbnQsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGlzY292ZXIsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0QXNzb2NpYXRlZFJvbGUsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0QnVsa0RlcGxveW1lbnRTdGF0dXMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0Q29tcG9uZW50LFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldENvbXBvbmVudFZlcnNpb25BcnRpZmFjdCxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRDb25uZWN0aXZpdHlJbmZvLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldENvbm5lY3RvckRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0Q29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0Q29yZURlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0Q29yZURlZmluaXRpb25WZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldENvcmVEZXZpY2UsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0RGVwbG95bWVudCxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXREZXBsb3ltZW50U3RhdHVzLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldERldmljZURlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0RGV2aWNlRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0RnVuY3Rpb25EZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLmFjdGlvbkdldEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0R3JvdXAsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0R3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0eSxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRHcm91cENlcnRpZmljYXRlQ29uZmlndXJhdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRHcm91cFZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0TG9nZ2VyRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRMb2dnZXJEZWZpbml0aW9uVmVyc2lvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRSZXNvdXJjZURlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0UmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRTZXJ2aWNlUm9sZUZvckFjY291bnQsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuYWN0aW9uR2V0U3Vic2NyaXB0aW9uRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5hY3Rpb25HZXRUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RCdWxrRGVwbG95bWVudERldGFpbGVkUmVwb3J0cyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkFzc29jaWF0ZVJvbGVUb0dyb3VwLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkJhdGNoQXNzb2NpYXRlQ2xpZW50RGV2aWNlV2l0aENvcmVEZXZpY2UsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQmF0Y2hEaXNhc3NvY2lhdGVDbGllbnREZXZpY2VGcm9tQ29yZURldmljZSxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DYW5jZWxEZXBsb3ltZW50LFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZUNvbXBvbmVudFZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVDb3JlRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVDb3JlRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlRGVwbG95bWVudCxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVEZXZpY2VEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZURldmljZURlZmluaXRpb25WZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZUdyb3VwLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZUdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHksXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlR3JvdXBWZXJzaW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZUxvZ2dlckRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlTG9nZ2VyRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkNyZWF0ZVJlc291cmNlRGVmaW5pdGlvblZlcnNpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlU29mdHdhcmVVcGRhdGVKb2IsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuQ3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5DcmVhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5EZWxldGVDb21wb25lbnQsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVsZXRlQ29ubmVjdG9yRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5EZWxldGVDb3JlRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5EZWxldGVDb3JlRGV2aWNlLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkRlbGV0ZURlcGxveW1lbnQsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVsZXRlRGV2aWNlRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5EZWxldGVGdW5jdGlvbkRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVsZXRlR3JvdXAsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVsZXRlTG9nZ2VyRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5EZWxldGVSZXNvdXJjZURlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuRGVsZXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5EaXNhc3NvY2lhdGVSb2xlRnJvbUdyb3VwLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkRpc2Fzc29jaWF0ZVNlcnZpY2VSb2xlRnJvbUFjY291bnQsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuUmVzZXREZXBsb3ltZW50cyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5TdGFydEJ1bGtEZXBsb3ltZW50LFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlN0b3BCdWxrRGVwbG95bWVudCxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5VcGRhdGVDb25uZWN0aXZpdHlJbmZvLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlVwZGF0ZUNvbm5lY3RvckRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVXBkYXRlQ29yZURlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVXBkYXRlRGV2aWNlRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5VcGRhdGVGdW5jdGlvbkRlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVXBkYXRlR3JvdXAsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVXBkYXRlR3JvdXBDZXJ0aWZpY2F0ZUNvbmZpZ3VyYXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVXBkYXRlTG9nZ2VyRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5VcGRhdGVSZXNvdXJjZURlZmluaXRpb24sXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVXBkYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbixcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5VcGRhdGVUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0QnVsa0RlcGxveW1lbnRzLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RDbGllbnREZXZpY2VzQXNzb2NpYXRlZFdpdGhDb3JlRGV2aWNlLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RDb21wb25lbnRWZXJzaW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0Q29tcG9uZW50cyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0Q29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25zLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RDb25uZWN0b3JEZWZpbml0aW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0Q29yZURlZmluaXRpb25WZXJzaW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0Q29yZURlZmluaXRpb25zLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RDb3JlRGV2aWNlcyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0RGVwbG95bWVudHMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdERldmljZURlZmluaXRpb25WZXJzaW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0RGV2aWNlRGVmaW5pdGlvbnMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdEVmZmVjdGl2ZURlcGxveW1lbnRzLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0RnVuY3Rpb25EZWZpbml0aW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0R3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0aWVzLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RHcm91cFZlcnNpb25zLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RHcm91cHMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdEluc3RhbGxlZENvbXBvbmVudHMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdExvZ2dlckRlZmluaXRpb25WZXJzaW9ucyxcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5MaXN0TG9nZ2VyRGVmaW5pdGlvbnMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25zLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RSZXNvdXJjZURlZmluaXRpb25zLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLkxpc3RTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbnMsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuTGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25zLFxuXHRcdEdyZWVuZ3Jhc3NBY3Rpb25zLlJlc29sdmVDb21wb25lbnRDYW5kaWRhdGVzLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRHcmVlbmdyYXNzQWN0aW9ucy5Bc3NvY2lhdGVTZXJ2aWNlUm9sZVRvQWNjb3VudCxcblx0XTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0R3JlZW5ncmFzc0FjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGJ1bGtEZXBsb3ltZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQnVsa0RlcGxveW1lbnRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQnVsa0RlcGxveW1lbnRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgYnVsa0RlcGxveW1lbnRJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGJ1bGtEZXBsb3ltZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQnVsa0RlcGxveW1lbnRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEJ1bGtEZXBsb3ltZW50SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBidWxrRGVwbG95bWVudElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjZXJ0aWZpY2F0ZUF1dGhvcml0eSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0NlcnRpZmljYXRlQXV0aG9yaXR5QXJuUHJvcHMge1xuXHQvKiogVGhlIEdyb3VwSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGdyb3VwSWQ6IHN0cmluZztcblx0LyoqIFRoZSBDZXJ0aWZpY2F0ZUF1dGhvcml0eUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjZXJ0aWZpY2F0ZUF1dGhvcml0eUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY2VydGlmaWNhdGVBdXRob3JpdHkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDZXJ0aWZpY2F0ZUF1dGhvcml0eUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgR3JvdXBJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGdyb3VwSWQ6IHN0cmluZztcblx0LyoqIFRoZSBDZXJ0aWZpY2F0ZUF1dGhvcml0eUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2VydGlmaWNhdGVBdXRob3JpdHlJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29tcG9uZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29tcG9uZW50QXJuUHJvcHMge1xuXHQvKiogVGhlIENvbXBvbmVudE5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbXBvbmVudE5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb21wb25lbnQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb21wb25lbnRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENvbXBvbmVudE5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb21wb25lbnRWZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29tcG9uZW50VmVyc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBDb21wb25lbnROYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29tcG9uZW50VmVyc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29tcG9uZW50VmVyc2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbXBvbmVudFZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb21wb25lbnRWZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb21wb25lbnROYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbXBvbmVudFZlcnNpb24gY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb21wb25lbnRWZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb25uZWN0aXZpdHlJbmZvIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29ubmVjdGl2aXR5SW5mb0FyblByb3BzIHtcblx0LyoqIFRoZSBUaGluZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHRoaW5nTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbm5lY3Rpdml0eUluZm8gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb25uZWN0aXZpdHlJbmZvQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBUaGluZ05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB0aGluZ05hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNvbm5lY3RvckRlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb25uZWN0b3JEZWZpbml0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIENvbm5lY3RvckRlZmluaXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29ubmVjdG9yRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29ubmVjdG9yRGVmaW5pdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0Nvbm5lY3RvckRlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENvbm5lY3RvckRlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbm5lY3RvckRlZmluaXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBDb25uZWN0b3JEZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbm5lY3RvckRlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcnNpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29ubmVjdG9yRGVmaW5pdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29ubmVjdG9yRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb3JlRGVmaW5pdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0NvcmVEZWZpbml0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIENvcmVEZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvcmVEZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb3JlRGVmaW5pdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0NvcmVEZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb3JlRGVmaW5pdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29yZURlZmluaXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29yZURlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29yZURlZmluaXRpb25WZXJzaW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIENvcmVEZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvcmVEZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvcmVEZWZpbml0aW9uVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0NvcmVEZWZpbml0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29yZURlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvcmVEZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNvcmVEZXZpY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NDb3JlRGV2aWNlQXJuUHJvcHMge1xuXHQvKiogVGhlIENvcmVEZXZpY2VUaGluZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvcmVEZXZpY2VUaGluZ05hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb3JlRGV2aWNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzQ29yZURldmljZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29yZURldmljZVRoaW5nTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvcmVEZXZpY2VUaGluZ05hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRlcGxveW1lbnRWYXJpYW50MSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0RlcGxveW1lbnRWYXJpYW50MUFyblByb3BzIHtcblx0LyoqIFRoZSBHcm91cElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBncm91cElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRGVwbG95bWVudElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkZXBsb3ltZW50SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkZXBsb3ltZW50VmFyaWFudDIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NEZXBsb3ltZW50VmFyaWFudDJBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGVwbG95bWVudElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkZXBsb3ltZW50SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkZXBsb3ltZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzRGVwbG95bWVudEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgR3JvdXBJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGdyb3VwSWQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXBsb3ltZW50SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkZXBsb3ltZW50SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRldmljZURlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NEZXZpY2VEZWZpbml0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIERldmljZURlZmluaXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGV2aWNlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGV2aWNlRGVmaW5pdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0RldmljZURlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERldmljZURlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRldmljZURlZmluaXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGV2aWNlRGVmaW5pdGlvblZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NEZXZpY2VEZWZpbml0aW9uVmVyc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBEZXZpY2VEZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRldmljZURlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcnNpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGV2aWNlRGVmaW5pdGlvblZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NEZXZpY2VEZWZpbml0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGV2aWNlRGVmaW5pdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGV2aWNlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBmdW5jdGlvbkRlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NGdW5jdGlvbkRlZmluaXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRnVuY3Rpb25EZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGZ1bmN0aW9uRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZnVuY3Rpb25EZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzRnVuY3Rpb25EZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBGdW5jdGlvbkRlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGZ1bmN0aW9uRGVmaW5pdGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBmdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBGdW5jdGlvbkRlZmluaXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZnVuY3Rpb25EZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBGdW5jdGlvbkRlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGZ1bmN0aW9uRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBncm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0dyb3VwQXJuUHJvcHMge1xuXHQvKiogVGhlIEdyb3VwSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGdyb3VwSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBncm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0dyb3VwQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBHcm91cElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZ3JvdXBJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZ3JvdXBWZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzR3JvdXBWZXJzaW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEdyb3VwSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGdyb3VwSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGdyb3VwVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0dyb3VwVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgR3JvdXBJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGdyb3VwSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGxvZ2dlckRlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NMb2dnZXJEZWZpbml0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIExvZ2dlckRlZmluaXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbG9nZ2VyRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbG9nZ2VyRGVmaW5pdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JlZW5ncmFzc0xvZ2dlckRlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIExvZ2dlckRlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxvZ2dlckRlZmluaXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgbG9nZ2VyRGVmaW5pdGlvblZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NMb2dnZXJEZWZpbml0aW9uVmVyc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBMb2dnZXJEZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGxvZ2dlckRlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcnNpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbG9nZ2VyRGVmaW5pdGlvblZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NMb2dnZXJEZWZpbml0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTG9nZ2VyRGVmaW5pdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbG9nZ2VyRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZXNvdXJjZURlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NSZXNvdXJjZURlZmluaXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VEZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgcmVzb3VyY2VEZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzUmVzb3VyY2VEZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZURlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZXNvdXJjZURlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZURlZmluaXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VEZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJlc291cmNlRGVmaW5pdGlvblZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZURlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBzdWJzY3JpcHRpb25EZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzU3Vic2NyaXB0aW9uRGVmaW5pdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBTdWJzY3JpcHRpb25EZWZpbml0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHN1YnNjcmlwdGlvbkRlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHN1YnNjcmlwdGlvbkRlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NTdWJzY3JpcHRpb25EZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTdWJzY3JpcHRpb25EZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzdWJzY3JpcHRpb25EZWZpbml0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzdWJzY3JpcHRpb25EZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFN1YnNjcmlwdGlvbkRlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN1YnNjcmlwdGlvbkRlZmluaXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcnNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHZlcnNpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgdGhpbmcgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyZWVuZ3Jhc3NUaGluZ0FyblByb3BzIHtcblx0LyoqIFRoZSBUaGluZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHRoaW5nTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHRoaW5nIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzVGhpbmdBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFRoaW5nTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHRoaW5nTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgdGhpbmdSdW50aW1lQ29uZmlnIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzVGhpbmdSdW50aW1lQ29uZmlnQXJuUHJvcHMge1xuXHQvKiogVGhlIFRoaW5nTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdGhpbmdOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgdGhpbmdSdW50aW1lQ29uZmlnIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmVlbmdyYXNzVGhpbmdSdW50aW1lQ29uZmlnQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBUaGluZ05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB0aGluZ05hbWU6IHN0cmluZztcbn1cblxuY29uc3QgQnVsa0RlcGxveW1lbnRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9idWxrXFwvZGVwbG95bWVudHNcXC8oPzxidWxrRGVwbG95bWVudElkPlteOi8/XSspJC87XG5jb25zdCBDZXJ0aWZpY2F0ZUF1dGhvcml0eUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncmVlbmdyYXNzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6XFwvZ3JlZW5ncmFzc1xcL2dyb3Vwc1xcLyg/PGdyb3VwSWQ+W146Lz9dKylcXC9jZXJ0aWZpY2F0ZWF1dGhvcml0aWVzXFwvKD88Y2VydGlmaWNhdGVBdXRob3JpdHlJZD5bXjovP10rKSQvO1xuY29uc3QgQ29tcG9uZW50QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb21wb25lbnRzOig/PGNvbXBvbmVudE5hbWU+W146Lz9dKykkLztcbmNvbnN0IENvbXBvbmVudFZlcnNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNvbXBvbmVudHM6KD88Y29tcG9uZW50TmFtZT5bXjovP10rKTp2ZXJzaW9uczooPzxjb21wb25lbnRWZXJzaW9uPlteOi8/XSspJC87XG5jb25zdCBDb25uZWN0aXZpdHlJbmZvQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvdGhpbmdzXFwvKD88dGhpbmdOYW1lPlteOi8/XSspXFwvY29ubmVjdGl2aXR5SW5mbyQvO1xuY29uc3QgQ29ubmVjdG9yRGVmaW5pdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncmVlbmdyYXNzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6XFwvZ3JlZW5ncmFzc1xcL2RlZmluaXRpb25cXC9jb25uZWN0b3JzXFwvKD88Y29ubmVjdG9yRGVmaW5pdGlvbklkPlteOi8/XSspJC87XG5jb25zdCBDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncmVlbmdyYXNzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6XFwvZ3JlZW5ncmFzc1xcL2RlZmluaXRpb25cXC9jb25uZWN0b3JzXFwvKD88Y29ubmVjdG9yRGVmaW5pdGlvbklkPlteOi8/XSspXFwvdmVyc2lvbnNcXC8oPzx2ZXJzaW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IENvcmVEZWZpbml0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZGVmaW5pdGlvblxcL2NvcmVzXFwvKD88Y29yZURlZmluaXRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgQ29yZURlZmluaXRpb25WZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpcXC9ncmVlbmdyYXNzXFwvZGVmaW5pdGlvblxcL2NvcmVzXFwvKD88Y29yZURlZmluaXRpb25JZD5bXjovP10rKVxcL3ZlcnNpb25zXFwvKD88dmVyc2lvbklkPlteOi8/XSspJC87XG5jb25zdCBDb3JlRGV2aWNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyZWVuZ3Jhc3M6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb3JlRGV2aWNlczooPzxjb3JlRGV2aWNlVGhpbmdOYW1lPlteOi8/XSspJC87XG5jb25zdCBEZXBsb3ltZW50QXJuUmVnZXggPVxuXHQvXig/OmFybjooPzpbXjpdKyk6Z3JlZW5ncmFzczooPzpbXjpdKik6KD86W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9ncm91cHNcXC8oPzpbXjovP10rKVxcL2RlcGxveW1lbnRzXFwvKD86W146Lz9dKyl8YXJuOig/OlteOl0rKTpncmVlbmdyYXNzOig/OlteOl0qKTooPzpbXjpdKik6ZGVwbG95bWVudHM6KD86W146Lz9dKykpJC87XG5jb25zdCBEZXBsb3ltZW50UGFyc2VSZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9ncm91cHNcXC8oPzxncm91cElkPlteOi8/XSspXFwvZGVwbG95bWVudHNcXC8oPzxkZXBsb3ltZW50SWQ+W146Lz9dKykkLztcbmNvbnN0IERldmljZURlZmluaXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvZGV2aWNlc1xcLyg/PGRldmljZURlZmluaXRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgRGV2aWNlRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvZGV2aWNlc1xcLyg/PGRldmljZURlZmluaXRpb25JZD5bXjovP10rKVxcL3ZlcnNpb25zXFwvKD88dmVyc2lvbklkPlteOi8/XSspJC87XG5jb25zdCBGdW5jdGlvbkRlZmluaXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvZnVuY3Rpb25zXFwvKD88ZnVuY3Rpb25EZWZpbml0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvZnVuY3Rpb25zXFwvKD88ZnVuY3Rpb25EZWZpbml0aW9uSWQ+W146Lz9dKylcXC92ZXJzaW9uc1xcLyg/PHZlcnNpb25JZD5bXjovP10rKSQvO1xuY29uc3QgR3JvdXBBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9ncm91cHNcXC8oPzxncm91cElkPlteOi8/XSspJC87XG5jb25zdCBHcm91cFZlcnNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9ncm91cHNcXC8oPzxncm91cElkPlteOi8/XSspXFwvdmVyc2lvbnNcXC8oPzx2ZXJzaW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IExvZ2dlckRlZmluaXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvbG9nZ2Vyc1xcLyg/PGxvZ2dlckRlZmluaXRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgTG9nZ2VyRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvbG9nZ2Vyc1xcLyg/PGxvZ2dlckRlZmluaXRpb25JZD5bXjovP10rKVxcL3ZlcnNpb25zXFwvKD88dmVyc2lvbklkPlteOi8/XSspJC87XG5jb25zdCBSZXNvdXJjZURlZmluaXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvcmVzb3VyY2VzXFwvKD88cmVzb3VyY2VEZWZpbml0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC9kZWZpbml0aW9uXFwvcmVzb3VyY2VzXFwvKD88cmVzb3VyY2VEZWZpbml0aW9uSWQ+W146Lz9dKylcXC92ZXJzaW9uc1xcLyg/PHZlcnNpb25JZD5bXjovP10rKSQvO1xuY29uc3QgU3Vic2NyaXB0aW9uRGVmaW5pdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncmVlbmdyYXNzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6XFwvZ3JlZW5ncmFzc1xcL2RlZmluaXRpb25cXC9zdWJzY3JpcHRpb25zXFwvKD88c3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkPlteOi8/XSspJC87XG5jb25zdCBTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncmVlbmdyYXNzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6XFwvZ3JlZW5ncmFzc1xcL2RlZmluaXRpb25cXC9zdWJzY3JpcHRpb25zXFwvKD88c3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkPlteOi8/XSspXFwvdmVyc2lvbnNcXC8oPzx2ZXJzaW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IFRoaW5nQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmlvdDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnRoaW5nXFwvKD88dGhpbmdOYW1lPlteOi8/XSspJC87XG5jb25zdCBUaGluZ1J1bnRpbWVDb25maWdBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JlZW5ncmFzczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOlxcL2dyZWVuZ3Jhc3NcXC90aGluZ3NcXC8oPzx0aGluZ05hbWU+W146Lz9dKylcXC9ydW50aW1lY29uZmlnJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgZ3JlZW5ncmFzcyByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBHcmVlbmdyYXNzUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBidWxrRGVwbG95bWVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBidWxrRGVwbG95bWVudChwcm9wczogR3JlZW5ncmFzc0J1bGtEZXBsb3ltZW50QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvYnVsay9kZXBsb3ltZW50cy8ke3Byb3BzLmJ1bGtEZXBsb3ltZW50SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGJ1bGtEZXBsb3ltZW50IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRCdWxrRGVwbG95bWVudEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBCdWxrRGVwbG95bWVudEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBidWxrRGVwbG95bWVudCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VCdWxrRGVwbG95bWVudEFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc0J1bGtEZXBsb3ltZW50QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBCdWxrRGVwbG95bWVudEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBidWxrRGVwbG95bWVudCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRidWxrRGVwbG95bWVudElkOiBtYXRjaC5ncm91cHMhLmJ1bGtEZXBsb3ltZW50SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY2VydGlmaWNhdGVBdXRob3JpdHkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2VydGlmaWNhdGVBdXRob3JpdHkoXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NDZXJ0aWZpY2F0ZUF1dGhvcml0eUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZ3JvdXBzLyR7cHJvcHMuZ3JvdXBJZH0vY2VydGlmaWNhdGVhdXRob3JpdGllcy8ke3Byb3BzLmNlcnRpZmljYXRlQXV0aG9yaXR5SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNlcnRpZmljYXRlQXV0aG9yaXR5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDZXJ0aWZpY2F0ZUF1dGhvcml0eUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDZXJ0aWZpY2F0ZUF1dGhvcml0eUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjZXJ0aWZpY2F0ZUF1dGhvcml0eSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDZXJ0aWZpY2F0ZUF1dGhvcml0eUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc0NlcnRpZmljYXRlQXV0aG9yaXR5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDZXJ0aWZpY2F0ZUF1dGhvcml0eUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjZXJ0aWZpY2F0ZUF1dGhvcml0eSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRncm91cElkOiBtYXRjaC5ncm91cHMhLmdyb3VwSWQsXG5cdFx0XHRjZXJ0aWZpY2F0ZUF1dGhvcml0eUlkOiBtYXRjaC5ncm91cHMhLmNlcnRpZmljYXRlQXV0aG9yaXR5SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29tcG9uZW50IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbXBvbmVudChwcm9wczogR3JlZW5ncmFzc0NvbXBvbmVudEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNvbXBvbmVudHM6JHtwcm9wcy5jb21wb25lbnROYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb21wb25lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbXBvbmVudEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb21wb25lbnRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29tcG9uZW50IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbXBvbmVudEFybihhcm46IHN0cmluZyk6IEdyZWVuZ3Jhc3NDb21wb25lbnRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbXBvbmVudEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb21wb25lbnQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29tcG9uZW50TmFtZTogbWF0Y2guZ3JvdXBzIS5jb21wb25lbnROYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbXBvbmVudFZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29tcG9uZW50VmVyc2lvbihwcm9wczogR3JlZW5ncmFzc0NvbXBvbmVudFZlcnNpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjb21wb25lbnRzOiR7cHJvcHMuY29tcG9uZW50TmFtZX06dmVyc2lvbnM6JHtwcm9wcy5jb21wb25lbnRWZXJzaW9ufWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb21wb25lbnRWZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb21wb25lbnRWZXJzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbXBvbmVudFZlcnNpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29tcG9uZW50VmVyc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb21wb25lbnRWZXJzaW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzQ29tcG9uZW50VmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29tcG9uZW50VmVyc2lvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb21wb25lbnRWZXJzaW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvbXBvbmVudE5hbWU6IG1hdGNoLmdyb3VwcyEuY29tcG9uZW50TmFtZSxcblx0XHRcdGNvbXBvbmVudFZlcnNpb246IG1hdGNoLmdyb3VwcyEuY29tcG9uZW50VmVyc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjb25uZWN0aXZpdHlJbmZvIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbm5lY3Rpdml0eUluZm8ocHJvcHM6IEdyZWVuZ3Jhc3NDb25uZWN0aXZpdHlJbmZvQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvdGhpbmdzLyR7cHJvcHMudGhpbmdOYW1lfS9jb25uZWN0aXZpdHlJbmZvYDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNvbm5lY3Rpdml0eUluZm8gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbm5lY3Rpdml0eUluZm9Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29ubmVjdGl2aXR5SW5mb0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjb25uZWN0aXZpdHlJbmZvIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbm5lY3Rpdml0eUluZm9Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NDb25uZWN0aXZpdHlJbmZvQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25uZWN0aXZpdHlJbmZvQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbm5lY3Rpdml0eUluZm8gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dGhpbmdOYW1lOiBtYXRjaC5ncm91cHMhLnRoaW5nTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjb25uZWN0b3JEZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbm5lY3RvckRlZmluaXRpb24oXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NDb25uZWN0b3JEZWZpbml0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9kZWZpbml0aW9uL2Nvbm5lY3RvcnMvJHtwcm9wcy5jb25uZWN0b3JEZWZpbml0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNvbm5lY3RvckRlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbm5lY3RvckRlZmluaXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29ubmVjdG9yRGVmaW5pdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjb25uZWN0b3JEZWZpbml0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbm5lY3RvckRlZmluaXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NDb25uZWN0b3JEZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25uZWN0b3JEZWZpbml0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbm5lY3RvckRlZmluaXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29ubmVjdG9yRGVmaW5pdGlvbklkOiBtYXRjaC5ncm91cHMhLmNvbm5lY3RvckRlZmluaXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbihcblx0XHRwcm9wczogR3JlZW5ncmFzc0Nvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9kZWZpbml0aW9uL2Nvbm5lY3RvcnMvJHtwcm9wcy5jb25uZWN0b3JEZWZpbml0aW9uSWR9L3ZlcnNpb25zLyR7cHJvcHMudmVyc2lvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29ubmVjdG9yRGVmaW5pdGlvbklkOiBtYXRjaC5ncm91cHMhLmNvbm5lY3RvckRlZmluaXRpb25JZCxcblx0XHRcdHZlcnNpb25JZDogbWF0Y2guZ3JvdXBzIS52ZXJzaW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29yZURlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29yZURlZmluaXRpb24ocHJvcHM6IEdyZWVuZ3Jhc3NDb3JlRGVmaW5pdGlvbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2RlZmluaXRpb24vY29yZXMvJHtwcm9wcy5jb3JlRGVmaW5pdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb3JlRGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29yZURlZmluaXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29yZURlZmluaXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29yZURlZmluaXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29yZURlZmluaXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NDb3JlRGVmaW5pdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29yZURlZmluaXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29yZURlZmluaXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29yZURlZmluaXRpb25JZDogbWF0Y2guZ3JvdXBzIS5jb3JlRGVmaW5pdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvcmVEZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb3JlRGVmaW5pdGlvblZlcnNpb24oXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NDb3JlRGVmaW5pdGlvblZlcnNpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2RlZmluaXRpb24vY29yZXMvJHtwcm9wcy5jb3JlRGVmaW5pdGlvbklkfS92ZXJzaW9ucy8ke3Byb3BzLnZlcnNpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29yZURlZmluaXRpb25WZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb3JlRGVmaW5pdGlvblZlcnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29yZURlZmluaXRpb25WZXJzaW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvcmVEZWZpbml0aW9uVmVyc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb3JlRGVmaW5pdGlvblZlcnNpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NDb3JlRGVmaW5pdGlvblZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvcmVEZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb3JlRGVmaW5pdGlvblZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29yZURlZmluaXRpb25JZDogbWF0Y2guZ3JvdXBzIS5jb3JlRGVmaW5pdGlvbklkLFxuXHRcdFx0dmVyc2lvbklkOiBtYXRjaC5ncm91cHMhLnZlcnNpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjb3JlRGV2aWNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvcmVEZXZpY2UocHJvcHM6IEdyZWVuZ3Jhc3NDb3JlRGV2aWNlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y29yZURldmljZXM6JHtwcm9wcy5jb3JlRGV2aWNlVGhpbmdOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb3JlRGV2aWNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb3JlRGV2aWNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvcmVEZXZpY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29yZURldmljZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb3JlRGV2aWNlQXJuKGFybjogc3RyaW5nKTogR3JlZW5ncmFzc0NvcmVEZXZpY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvcmVEZXZpY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29yZURldmljZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjb3JlRGV2aWNlVGhpbmdOYW1lOiBtYXRjaC5ncm91cHMhLmNvcmVEZXZpY2VUaGluZ05hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGVwbG95bWVudFZhcmlhbnQxIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRlcGxveW1lbnRWYXJpYW50MShcblx0XHRwcm9wczogR3JlZW5ncmFzc0RlcGxveW1lbnRWYXJpYW50MUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZ3JvdXBzLyR7cHJvcHMuZ3JvdXBJZH0vZGVwbG95bWVudHMvJHtwcm9wcy5kZXBsb3ltZW50SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGVwbG95bWVudFZhcmlhbnQyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRlcGxveW1lbnRWYXJpYW50Mihcblx0XHRwcm9wczogR3JlZW5ncmFzc0RlcGxveW1lbnRWYXJpYW50MkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGVwbG95bWVudHM6JHtwcm9wcy5kZXBsb3ltZW50SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRlcGxveW1lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERlcGxveW1lbnRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGVwbG95bWVudEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkZXBsb3ltZW50IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzICh1c2VzIGZpcnN0IEFSTiB2YXJpYW50IGZvcm1hdCkuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGVwbG95bWVudEFybihhcm46IHN0cmluZyk6IEdyZWVuZ3Jhc3NEZXBsb3ltZW50QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEZXBsb3ltZW50UGFyc2VSZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGVwbG95bWVudCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRncm91cElkOiBtYXRjaC5ncm91cHMhLmdyb3VwSWQsXG5cdFx0XHRkZXBsb3ltZW50SWQ6IG1hdGNoLmdyb3VwcyEuZGVwbG95bWVudElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRldmljZURlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGV2aWNlRGVmaW5pdGlvbihwcm9wczogR3JlZW5ncmFzc0RldmljZURlZmluaXRpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9kZWZpbml0aW9uL2RldmljZXMvJHtwcm9wcy5kZXZpY2VEZWZpbml0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRldmljZURlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERldmljZURlZmluaXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGV2aWNlRGVmaW5pdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkZXZpY2VEZWZpbml0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURldmljZURlZmluaXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NEZXZpY2VEZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEZXZpY2VEZWZpbml0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRldmljZURlZmluaXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGV2aWNlRGVmaW5pdGlvbklkOiBtYXRjaC5ncm91cHMhLmRldmljZURlZmluaXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkZXZpY2VEZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkZXZpY2VEZWZpbml0aW9uVmVyc2lvbihcblx0XHRwcm9wczogR3JlZW5ncmFzc0RldmljZURlZmluaXRpb25WZXJzaW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9kZWZpbml0aW9uL2RldmljZXMvJHtwcm9wcy5kZXZpY2VEZWZpbml0aW9uSWR9L3ZlcnNpb25zLyR7cHJvcHMudmVyc2lvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkZXZpY2VEZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGV2aWNlRGVmaW5pdGlvblZlcnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGV2aWNlRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGV2aWNlRGVmaW5pdGlvblZlcnNpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGV2aWNlRGVmaW5pdGlvblZlcnNpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NEZXZpY2VEZWZpbml0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGV2aWNlRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGV2aWNlRGVmaW5pdGlvblZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGV2aWNlRGVmaW5pdGlvbklkOiBtYXRjaC5ncm91cHMhLmRldmljZURlZmluaXRpb25JZCxcblx0XHRcdHZlcnNpb25JZDogbWF0Y2guZ3JvdXBzIS52ZXJzaW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZnVuY3Rpb25EZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGZ1bmN0aW9uRGVmaW5pdGlvbihcblx0XHRwcm9wczogR3JlZW5ncmFzc0Z1bmN0aW9uRGVmaW5pdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZGVmaW5pdGlvbi9mdW5jdGlvbnMvJHtwcm9wcy5mdW5jdGlvbkRlZmluaXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZnVuY3Rpb25EZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRGdW5jdGlvbkRlZmluaXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRnVuY3Rpb25EZWZpbml0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGZ1bmN0aW9uRGVmaW5pdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VGdW5jdGlvbkRlZmluaXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NGdW5jdGlvbkRlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEZ1bmN0aW9uRGVmaW5pdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBmdW5jdGlvbkRlZmluaXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZnVuY3Rpb25EZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuZnVuY3Rpb25EZWZpbml0aW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBmdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uKFxuXHRcdHByb3BzOiBHcmVlbmdyYXNzRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZGVmaW5pdGlvbi9mdW5jdGlvbnMvJHtwcm9wcy5mdW5jdGlvbkRlZmluaXRpb25JZH0vdmVyc2lvbnMvJHtwcm9wcy52ZXJzaW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBmdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyZWVuZ3Jhc3NGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZnVuY3Rpb25EZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuZnVuY3Rpb25EZWZpbml0aW9uSWQsXG5cdFx0XHR2ZXJzaW9uSWQ6IG1hdGNoLmdyb3VwcyEudmVyc2lvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGdyb3VwIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGdyb3VwKHByb3BzOiBHcmVlbmdyYXNzR3JvdXBBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9ncm91cHMvJHtwcm9wcy5ncm91cElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBncm91cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkR3JvdXBBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gR3JvdXBBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZ3JvdXAgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlR3JvdXBBcm4oYXJuOiBzdHJpbmcpOiBHcmVlbmdyYXNzR3JvdXBBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEdyb3VwQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGdyb3VwIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGdyb3VwSWQ6IG1hdGNoLmdyb3VwcyEuZ3JvdXBJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBncm91cFZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZ3JvdXBWZXJzaW9uKHByb3BzOiBHcmVlbmdyYXNzR3JvdXBWZXJzaW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZ3JvdXBzLyR7cHJvcHMuZ3JvdXBJZH0vdmVyc2lvbnMvJHtwcm9wcy52ZXJzaW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGdyb3VwVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkR3JvdXBWZXJzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEdyb3VwVmVyc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBncm91cFZlcnNpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlR3JvdXBWZXJzaW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzR3JvdXBWZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBHcm91cFZlcnNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZ3JvdXBWZXJzaW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGdyb3VwSWQ6IG1hdGNoLmdyb3VwcyEuZ3JvdXBJZCxcblx0XHRcdHZlcnNpb25JZDogbWF0Y2guZ3JvdXBzIS52ZXJzaW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgbG9nZ2VyRGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsb2dnZXJEZWZpbml0aW9uKHByb3BzOiBHcmVlbmdyYXNzTG9nZ2VyRGVmaW5pdGlvbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2RlZmluaXRpb24vbG9nZ2Vycy8ke3Byb3BzLmxvZ2dlckRlZmluaXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgbG9nZ2VyRGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTG9nZ2VyRGVmaW5pdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBMb2dnZXJEZWZpbml0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGxvZ2dlckRlZmluaXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTG9nZ2VyRGVmaW5pdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc0xvZ2dlckRlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IExvZ2dlckRlZmluaXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbG9nZ2VyRGVmaW5pdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRsb2dnZXJEZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEubG9nZ2VyRGVmaW5pdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGxvZ2dlckRlZmluaXRpb25WZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGxvZ2dlckRlZmluaXRpb25WZXJzaW9uKFxuXHRcdHByb3BzOiBHcmVlbmdyYXNzTG9nZ2VyRGVmaW5pdGlvblZlcnNpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncmVlbmdyYXNzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9Oi9ncmVlbmdyYXNzL2RlZmluaXRpb24vbG9nZ2Vycy8ke3Byb3BzLmxvZ2dlckRlZmluaXRpb25JZH0vdmVyc2lvbnMvJHtwcm9wcy52ZXJzaW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGxvZ2dlckRlZmluaXRpb25WZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRMb2dnZXJEZWZpbml0aW9uVmVyc2lvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBMb2dnZXJEZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBsb2dnZXJEZWZpbml0aW9uVmVyc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VMb2dnZXJEZWZpbml0aW9uVmVyc2lvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc0xvZ2dlckRlZmluaXRpb25WZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBMb2dnZXJEZWZpbml0aW9uVmVyc2lvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsb2dnZXJEZWZpbml0aW9uVmVyc2lvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRsb2dnZXJEZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEubG9nZ2VyRGVmaW5pdGlvbklkLFxuXHRcdFx0dmVyc2lvbklkOiBtYXRjaC5ncm91cHMhLnZlcnNpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSByZXNvdXJjZURlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VEZWZpbml0aW9uKFxuXHRcdHByb3BzOiBHcmVlbmdyYXNzUmVzb3VyY2VEZWZpbml0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9kZWZpbml0aW9uL3Jlc291cmNlcy8ke3Byb3BzLnJlc291cmNlRGVmaW5pdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSByZXNvdXJjZURlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlc291cmNlRGVmaW5pdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZXNvdXJjZURlZmluaXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgcmVzb3VyY2VEZWZpbml0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlc291cmNlRGVmaW5pdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc1Jlc291cmNlRGVmaW5pdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVzb3VyY2VEZWZpbml0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlc291cmNlRGVmaW5pdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZURlZmluaXRpb25JZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZURlZmluaXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSByZXNvdXJjZURlZmluaXRpb25WZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlRGVmaW5pdGlvblZlcnNpb24oXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JlZW5ncmFzczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTovZ3JlZW5ncmFzcy9kZWZpbml0aW9uL3Jlc291cmNlcy8ke3Byb3BzLnJlc291cmNlRGVmaW5pdGlvbklkfS92ZXJzaW9ucy8ke3Byb3BzLnZlcnNpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgcmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHJlc291cmNlRGVmaW5pdGlvblZlcnNpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JlZW5ncmFzc1Jlc291cmNlRGVmaW5pdGlvblZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZURlZmluaXRpb25JZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZURlZmluaXRpb25JZCxcblx0XHRcdHZlcnNpb25JZDogbWF0Y2guZ3JvdXBzIS52ZXJzaW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc3Vic2NyaXB0aW9uRGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzdWJzY3JpcHRpb25EZWZpbml0aW9uKFxuXHRcdHByb3BzOiBHcmVlbmdyYXNzU3Vic2NyaXB0aW9uRGVmaW5pdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZGVmaW5pdGlvbi9zdWJzY3JpcHRpb25zLyR7cHJvcHMuc3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBzdWJzY3JpcHRpb25EZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTdWJzY3JpcHRpb25EZWZpbml0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFN1YnNjcmlwdGlvbkRlZmluaXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgc3Vic2NyaXB0aW9uRGVmaW5pdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTdWJzY3JpcHRpb25EZWZpbml0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzU3Vic2NyaXB0aW9uRGVmaW5pdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU3Vic2NyaXB0aW9uRGVmaW5pdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdWJzY3JpcHRpb25EZWZpbml0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHN1YnNjcmlwdGlvbkRlZmluaXRpb25JZDogbWF0Y2guZ3JvdXBzIS5zdWJzY3JpcHRpb25EZWZpbml0aW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb24oXG5cdFx0cHJvcHM6IEdyZWVuZ3Jhc3NTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvZGVmaW5pdGlvbi9zdWJzY3JpcHRpb25zLyR7cHJvcHMuc3Vic2NyaXB0aW9uRGVmaW5pdGlvbklkfS92ZXJzaW9ucy8ke3Byb3BzLnZlcnNpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgc3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHN1YnNjcmlwdGlvbkRlZmluaXRpb25JZDogbWF0Y2guZ3JvdXBzIS5zdWJzY3JpcHRpb25EZWZpbml0aW9uSWQsXG5cdFx0XHR2ZXJzaW9uSWQ6IG1hdGNoLmdyb3VwcyEudmVyc2lvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHRoaW5nIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHRoaW5nKHByb3BzOiBHcmVlbmdyYXNzVGhpbmdBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW90OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnRoaW5nLyR7cHJvcHMudGhpbmdOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB0aGluZyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkVGhpbmdBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gVGhpbmdBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgdGhpbmcgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlVGhpbmdBcm4oYXJuOiBzdHJpbmcpOiBHcmVlbmdyYXNzVGhpbmdBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFRoaW5nQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRoaW5nIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHRoaW5nTmFtZTogbWF0Y2guZ3JvdXBzIS50aGluZ05hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgdGhpbmdSdW50aW1lQ29uZmlnIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHRoaW5nUnVudGltZUNvbmZpZyhcblx0XHRwcm9wczogR3JlZW5ncmFzc1RoaW5nUnVudGltZUNvbmZpZ0FyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmdyZWVuZ3Jhc3M6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06L2dyZWVuZ3Jhc3MvdGhpbmdzLyR7cHJvcHMudGhpbmdOYW1lfS9ydW50aW1lY29uZmlnYDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHRoaW5nUnVudGltZUNvbmZpZyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkVGhpbmdSdW50aW1lQ29uZmlnQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFRoaW5nUnVudGltZUNvbmZpZ0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB0aGluZ1J1bnRpbWVDb25maWcgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlVGhpbmdSdW50aW1lQ29uZmlnQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcmVlbmdyYXNzVGhpbmdSdW50aW1lQ29uZmlnQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBUaGluZ1J1bnRpbWVDb25maWdBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdGhpbmdSdW50aW1lQ29uZmlnIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHRoaW5nTmFtZTogbWF0Y2guZ3JvdXBzIS50aGluZ05hbWUsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3IgZ3JlZW5ncmFzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyZWVuZ3Jhc3NPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQXNzb2NpYXRlUm9sZVRvR3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVSb2xlVG9Hcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkFzc29jaWF0ZVJvbGVUb0dyb3VwXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQXNzb2NpYXRlU2VydmljZVJvbGVUb0FjY291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVTZXJ2aWNlUm9sZVRvQWNjb3VudDogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkFzc29jaWF0ZVNlcnZpY2VSb2xlVG9BY2NvdW50XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQmF0Y2hBc3NvY2lhdGVDbGllbnREZXZpY2VXaXRoQ29yZURldmljZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoQXNzb2NpYXRlQ2xpZW50RGV2aWNlV2l0aENvcmVEZXZpY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpCYXRjaEFzc29jaWF0ZUNsaWVudERldmljZVdpdGhDb3JlRGV2aWNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEJhdGNoRGlzYXNzb2NpYXRlQ2xpZW50RGV2aWNlRnJvbUNvcmVEZXZpY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaERpc2Fzc29jaWF0ZUNsaWVudERldmljZUZyb21Db3JlRGV2aWNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6QmF0Y2hEaXNhc3NvY2lhdGVDbGllbnREZXZpY2VGcm9tQ29yZURldmljZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDYW5jZWxEZXBsb3ltZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsRGVwbG95bWVudDogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOkNhbmNlbERlcGxveW1lbnRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNvbXBvbmVudFZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb21wb25lbnRWZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlQ29tcG9uZW50VmVyc2lvblwiLFxuXHRcdFwiZ3JlZW5ncmFzczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUNvbm5lY3RvckRlZmluaXRpb25cIixcblx0XHRcImdyZWVuZ3Jhc3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUNvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNvcmVEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29yZURlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVDb3JlRGVmaW5pdGlvblwiLFxuXHRcdFwiZ3JlZW5ncmFzczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDb3JlRGVmaW5pdGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb3JlRGVmaW5pdGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVDb3JlRGVmaW5pdGlvblZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGVwbG95bWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURlcGxveW1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVEZXBsb3ltZW50XCIsXG5cdFx0XCJncmVlbmdyYXNzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURldmljZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXZpY2VEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlRGV2aWNlRGVmaW5pdGlvblwiLFxuXHRcdFwiZ3JlZW5ncmFzczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVEZXZpY2VEZWZpbml0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURldmljZURlZmluaXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlRGV2aWNlRGVmaW5pdGlvblZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uXCIsXG5cdFx0XCJncmVlbmdyYXNzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUdyb3VwOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6Q3JlYXRlR3JvdXBcIixcblx0XHRcImdyZWVuZ3Jhc3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlR3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0eSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHk6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVHcm91cENlcnRpZmljYXRlQXV0aG9yaXR5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUdyb3VwVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUdyb3VwVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUdyb3VwVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVMb2dnZXJEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTG9nZ2VyRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUxvZ2dlckRlZmluaXRpb25cIixcblx0XHRcImdyZWVuZ3Jhc3M6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlTG9nZ2VyRGVmaW5pdGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMb2dnZXJEZWZpbml0aW9uVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZUxvZ2dlckRlZmluaXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJlc291cmNlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlc291cmNlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZVJlc291cmNlRGVmaW5pdGlvblwiLFxuXHRcdFwiZ3JlZW5ncmFzczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZVJlc291cmNlRGVmaW5pdGlvblZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU29mdHdhcmVVcGRhdGVKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb2Z0d2FyZVVwZGF0ZUpvYjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkNyZWF0ZVNvZnR3YXJlVXBkYXRlSm9iXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uXCIsXG5cdFx0XCJncmVlbmdyYXNzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpDcmVhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDb21wb25lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb21wb25lbnQ6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpEZWxldGVDb21wb25lbnRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNvbm5lY3RvckRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25uZWN0b3JEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6RGVsZXRlQ29ubmVjdG9yRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDb3JlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvcmVEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6RGVsZXRlQ29yZURlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29yZURldmljZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvcmVEZXZpY2U6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpEZWxldGVDb3JlRGV2aWNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEZXBsb3ltZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGVwbG95bWVudDogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOkRlbGV0ZURlcGxveW1lbnRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZURldmljZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEZXZpY2VEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6RGVsZXRlRGV2aWNlRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVGdW5jdGlvbkRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpEZWxldGVGdW5jdGlvbkRlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlR3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVHcm91cDogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOkRlbGV0ZUdyb3VwXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVMb2dnZXJEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTG9nZ2VyRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkRlbGV0ZUxvZ2dlckRlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVzb3VyY2VEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVzb3VyY2VEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6RGVsZXRlUmVzb3VyY2VEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTdWJzY3JpcHRpb25EZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6RGVsZXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUNvbXBvbmVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ29tcG9uZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6RGVzY3JpYmVDb21wb25lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYXNzb2NpYXRlUm9sZUZyb21Hcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZVJvbGVGcm9tR3JvdXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpEaXNhc3NvY2lhdGVSb2xlRnJvbUdyb3VwXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Fzc29jaWF0ZVNlcnZpY2VSb2xlRnJvbUFjY291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVTZXJ2aWNlUm9sZUZyb21BY2NvdW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6RGlzYXNzb2NpYXRlU2VydmljZVJvbGVGcm9tQWNjb3VudFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBc3NvY2lhdGVkUm9sZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QXNzb2NpYXRlZFJvbGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRBc3NvY2lhdGVkUm9sZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRCdWxrRGVwbG95bWVudFN0YXR1cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QnVsa0RlcGxveW1lbnRTdGF0dXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRCdWxrRGVwbG95bWVudFN0YXR1c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDb21wb25lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvbXBvbmVudDogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOkdldENvbXBvbmVudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29tcG9uZW50VmVyc2lvbkFydGlmYWN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb21wb25lbnRWZXJzaW9uQXJ0aWZhY3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRDb21wb25lbnRWZXJzaW9uQXJ0aWZhY3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29ubmVjdGl2aXR5SW5mbyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q29ubmVjdGl2aXR5SW5mbzogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldENvbm5lY3Rpdml0eUluZm9cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29ubmVjdG9yRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q29ubmVjdG9yRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldENvbm5lY3RvckRlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0Q29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29yZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvcmVEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0Q29yZURlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29yZURlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb3JlRGVmaW5pdGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRDb3JlRGVmaW5pdGlvblZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29yZURldmljZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q29yZURldmljZTogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOkdldENvcmVEZXZpY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldERlcGxveW1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERlcGxveW1lbnQ6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpHZXREZXBsb3ltZW50XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREZXBsb3ltZW50U3RhdHVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREZXBsb3ltZW50U3RhdHVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0RGVwbG95bWVudFN0YXR1c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREZXZpY2VEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREZXZpY2VEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0RGV2aWNlRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREZXZpY2VEZWZpbml0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGV2aWNlRGVmaW5pdGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXREZXZpY2VEZWZpbml0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGdW5jdGlvbkRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEZ1bmN0aW9uRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldEZ1bmN0aW9uRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGdW5jdGlvbkRlZmluaXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0RnVuY3Rpb25EZWZpbml0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0R3JvdXA6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpHZXRHcm91cFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0R3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0eSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0R3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0eTogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdHlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0R3JvdXBDZXJ0aWZpY2F0ZUNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEdyb3VwQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0R3JvdXBDZXJ0aWZpY2F0ZUNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0R3JvdXBWZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRHcm91cFZlcnNpb246IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpHZXRHcm91cFZlcnNpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldExvZ2dlckRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldExvZ2dlckRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRMb2dnZXJEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldExvZ2dlckRlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRMb2dnZXJEZWZpbml0aW9uVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldExvZ2dlckRlZmluaXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlc291cmNlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVzb3VyY2VEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0UmVzb3VyY2VEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlc291cmNlRGVmaW5pdGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlc291cmNlRGVmaW5pdGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRSZXNvdXJjZURlZmluaXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFNlcnZpY2VSb2xlRm9yQWNjb3VudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0U2VydmljZVJvbGVGb3JBY2NvdW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6R2V0U2VydmljZVJvbGVGb3JBY2NvdW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFN1YnNjcmlwdGlvbkRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFN1YnNjcmlwdGlvbkRlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkdldFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRoaW5nUnVudGltZUNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRoaW5nUnVudGltZUNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpHZXRUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RCdWxrRGVwbG95bWVudERldGFpbGVkUmVwb3J0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RCdWxrRGVwbG95bWVudERldGFpbGVkUmVwb3J0czogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RCdWxrRGVwbG95bWVudERldGFpbGVkUmVwb3J0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QnVsa0RlcGxveW1lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEJ1bGtEZXBsb3ltZW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RCdWxrRGVwbG95bWVudHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENsaWVudERldmljZXNBc3NvY2lhdGVkV2l0aENvcmVEZXZpY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2xpZW50RGV2aWNlc0Fzc29jaWF0ZWRXaXRoQ29yZURldmljZTogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RDbGllbnREZXZpY2VzQXNzb2NpYXRlZFdpdGhDb3JlRGV2aWNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb21wb25lbnRWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb21wb25lbnRWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RDb21wb25lbnRWZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29tcG9uZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb21wb25lbnRzOiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6TGlzdENvbXBvbmVudHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb25uZWN0b3JEZWZpbml0aW9uVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29ubmVjdG9yRGVmaW5pdGlvblZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdENvbm5lY3RvckRlZmluaXRpb25WZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29ubmVjdG9yRGVmaW5pdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29ubmVjdG9yRGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0Q29ubmVjdG9yRGVmaW5pdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvcmVEZWZpbml0aW9uVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29yZURlZmluaXRpb25WZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RDb3JlRGVmaW5pdGlvblZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb3JlRGVmaW5pdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29yZURlZmluaXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdENvcmVEZWZpbml0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29yZURldmljZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29yZURldmljZXM6IHN0cmluZ1tdID0gW1wiZ3JlZW5ncmFzczpMaXN0Q29yZURldmljZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REZXBsb3ltZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REZXBsb3ltZW50czogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOkxpc3REZXBsb3ltZW50c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERldmljZURlZmluaXRpb25WZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REZXZpY2VEZWZpbml0aW9uVmVyc2lvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0RGV2aWNlRGVmaW5pdGlvblZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REZXZpY2VEZWZpbml0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REZXZpY2VEZWZpbml0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3REZXZpY2VEZWZpbml0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RWZmZWN0aXZlRGVwbG95bWVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RWZmZWN0aXZlRGVwbG95bWVudHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0RWZmZWN0aXZlRGVwbG95bWVudHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdEZ1bmN0aW9uRGVmaW5pdGlvblZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdW5jdGlvbkRlZmluaXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZ1bmN0aW9uRGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0RnVuY3Rpb25EZWZpbml0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0R3JvdXBDZXJ0aWZpY2F0ZUF1dGhvcml0aWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdyb3VwQ2VydGlmaWNhdGVBdXRob3JpdGllczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RHcm91cENlcnRpZmljYXRlQXV0aG9yaXRpZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEdyb3VwVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0R3JvdXBWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RHcm91cFZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RHcm91cHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0R3JvdXBzOiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6TGlzdEdyb3Vwc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEluc3RhbGxlZENvbXBvbmVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW5zdGFsbGVkQ29tcG9uZW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RJbnN0YWxsZWRDb21wb25lbnRzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RMb2dnZXJEZWZpbml0aW9uVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TG9nZ2VyRGVmaW5pdGlvblZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdExvZ2dlckRlZmluaXRpb25WZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TG9nZ2VyRGVmaW5pdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TG9nZ2VyRGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0TG9nZ2VyRGVmaW5pdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdFJlc291cmNlRGVmaW5pdGlvblZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZXNvdXJjZURlZmluaXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlRGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpMaXN0UmVzb3VyY2VEZWZpbml0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U3Vic2NyaXB0aW9uRGVmaW5pdGlvblZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25WZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOkxpc3RTdWJzY3JpcHRpb25EZWZpbml0aW9uVmVyc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdFN1YnNjcmlwdGlvbkRlZmluaXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXNldERlcGxveW1lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVzZXREZXBsb3ltZW50czogc3RyaW5nW10gPSBbXCJncmVlbmdyYXNzOlJlc2V0RGVwbG95bWVudHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlc29sdmVDb21wb25lbnRDYW5kaWRhdGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVzb2x2ZUNvbXBvbmVudENhbmRpZGF0ZXM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0QnVsa0RlcGxveW1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEJ1bGtEZXBsb3ltZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZ3JlZW5ncmFzczpTdGFydEJ1bGtEZXBsb3ltZW50XCIsXG5cdFx0XCJncmVlbmdyYXNzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BCdWxrRGVwbG95bWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BCdWxrRGVwbG95bWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOlN0b3BCdWxrRGVwbG95bWVudFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQ29ubmVjdGl2aXR5SW5mbyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbm5lY3Rpdml0eUluZm86IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVDb25uZWN0aXZpdHlJbmZvXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNvbm5lY3RvckRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb25uZWN0b3JEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6VXBkYXRlQ29ubmVjdG9yRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDb3JlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvcmVEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6VXBkYXRlQ29yZURlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRGV2aWNlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURldmljZURlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVEZXZpY2VEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUZ1bmN0aW9uRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZUZ1bmN0aW9uRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUdyb3VwOiBzdHJpbmdbXSA9IFtcImdyZWVuZ3Jhc3M6VXBkYXRlR3JvdXBcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUdyb3VwQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlR3JvdXBDZXJ0aWZpY2F0ZUNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JlZW5ncmFzczpVcGRhdGVHcm91cENlcnRpZmljYXRlQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVMb2dnZXJEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTG9nZ2VyRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZUxvZ2dlckRlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVzb3VyY2VEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVzb3VyY2VEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6VXBkYXRlUmVzb3VyY2VEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyZWVuZ3Jhc3M6VXBkYXRlU3Vic2NyaXB0aW9uRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVUaGluZ1J1bnRpbWVDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlVGhpbmdSdW50aW1lQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncmVlbmdyYXNzOlVwZGF0ZVRoaW5nUnVudGltZUNvbmZpZ3VyYXRpb25cIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGdyZWVuZ3Jhc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBHcmVlbmdyYXNzQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDb21wb25lbnRWZXJzaW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbXBvbmVudFZlcnNpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNvbm5lY3RvckRlZmluaXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29ubmVjdG9yRGVmaW5pdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29yZURlZmluaXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29yZURlZmluaXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURlcGxveW1lbnQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGVwbG95bWVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGV2aWNlRGVmaW5pdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXZpY2VEZWZpbml0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVGdW5jdGlvbkRlZmluaXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb25EZWZpbml0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVHcm91cCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVHcm91cENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlTG9nZ2VyRGVmaW5pdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMb2dnZXJEZWZpbml0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVSZXNvdXJjZURlZmluaXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVzb3VyY2VEZWZpbml0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVTdWJzY3JpcHRpb25EZWZpbml0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVN1YnNjcmlwdGlvbkRlZmluaXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRCdWxrRGVwbG95bWVudCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEJ1bGtEZXBsb3ltZW50Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=