@cdk_utils/iam 1.21.0 → 1.22.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.
- package/.jsii +5167 -4185
- package/lib/generated/services/a2c.js +1 -1
- package/lib/generated/services/a4b.js +3 -3
- package/lib/generated/services/access-analyzer.js +4 -4
- package/lib/generated/services/account-access.js +4 -4
- package/lib/generated/services/account.js +4 -4
- package/lib/generated/services/acm-pca.js +4 -4
- package/lib/generated/services/acm.js +4 -4
- package/lib/generated/services/aco-automation.js +4 -4
- package/lib/generated/services/action-recommendations.js +1 -1
- package/lib/generated/services/activate.js +1 -1
- package/lib/generated/services/agent-registry.js +4 -4
- package/lib/generated/services/agentaccess-mcp.js +2 -2
- package/lib/generated/services/aidevops.d.ts +32 -0
- package/lib/generated/services/aidevops.js +71 -5
- package/lib/generated/services/aiops.js +4 -4
- package/lib/generated/services/airflow-serverless.js +4 -4
- package/lib/generated/services/airflow.js +4 -4
- package/lib/generated/services/amplify.js +4 -4
- package/lib/generated/services/amplifybackend.js +3 -3
- package/lib/generated/services/amplifyuibuilder.js +4 -4
- package/lib/generated/services/aoss.js +4 -4
- package/lib/generated/services/apigateway.js +4 -4
- package/lib/generated/services/app-integrations.js +4 -4
- package/lib/generated/services/appconfig.js +4 -4
- package/lib/generated/services/appfabric.js +4 -4
- package/lib/generated/services/appflow.js +4 -4
- package/lib/generated/services/application-autoscaling.js +4 -4
- package/lib/generated/services/application-signals-mcp.js +3 -3
- package/lib/generated/services/application-signals.js +4 -4
- package/lib/generated/services/application-transformation.js +1 -1
- package/lib/generated/services/applicationinsights.js +3 -3
- package/lib/generated/services/appmesh-preview.js +2 -2
- package/lib/generated/services/appmesh.js +4 -4
- package/lib/generated/services/apprunner.js +4 -4
- package/lib/generated/services/appstream.js +4 -4
- package/lib/generated/services/appstudio.js +2 -2
- package/lib/generated/services/appsync.js +4 -4
- package/lib/generated/services/apptest.js +3 -3
- package/lib/generated/services/aps.js +4 -4
- package/lib/generated/services/arc-region-switch.js +4 -4
- package/lib/generated/services/arc-zonal-shift.js +4 -4
- package/lib/generated/services/arsenal.js +1 -1
- package/lib/generated/services/artifact.js +4 -4
- package/lib/generated/services/athena.js +4 -4
- package/lib/generated/services/auditmanager.js +4 -4
- package/lib/generated/services/autoscaling-plans.js +2 -2
- package/lib/generated/services/autoscaling.js +4 -4
- package/lib/generated/services/aws-external-anthropic.js +3 -3
- package/lib/generated/services/aws-marketplace-management.js +1 -1
- package/lib/generated/services/aws-marketplace.js +5 -6
- package/lib/generated/services/aws-portal.js +1 -1
- package/lib/generated/services/awsconnector.js +1 -1
- package/lib/generated/services/b2bi.js +4 -4
- package/lib/generated/services/backup-gateway.js +4 -4
- package/lib/generated/services/backup-search.js +4 -4
- package/lib/generated/services/backup-storage.js +1 -1
- package/lib/generated/services/backup.js +4 -4
- package/lib/generated/services/batch.d.ts +6 -0
- package/lib/generated/services/batch.js +14 -5
- package/lib/generated/services/bcm-dashboards.js +4 -4
- package/lib/generated/services/bcm-data-exports.js +4 -4
- package/lib/generated/services/bcm-pricing-calculator.js +4 -4
- package/lib/generated/services/bcm-recommended-actions.js +2 -2
- package/lib/generated/services/bedrock-agentcore.d.ts +51 -0
- package/lib/generated/services/bedrock-agentcore.js +67 -9
- package/lib/generated/services/bedrock-mantle.js +3 -3
- package/lib/generated/services/bedrock-websearch.js +2 -2
- package/lib/generated/services/bedrock.js +4 -4
- package/lib/generated/services/billing.js +4 -4
- package/lib/generated/services/billingconductor.js +4 -4
- package/lib/generated/services/braket.js +4 -4
- package/lib/generated/services/budgets.js +4 -4
- package/lib/generated/services/bugbust.js +3 -3
- package/lib/generated/services/cases.js +4 -4
- package/lib/generated/services/cassandra.js +4 -4
- package/lib/generated/services/ce.js +4 -4
- package/lib/generated/services/chatbot.js +4 -4
- package/lib/generated/services/chime.js +25 -15
- package/lib/generated/services/cleanrooms-ml.js +4 -4
- package/lib/generated/services/cleanrooms.js +4 -4
- package/lib/generated/services/cloud9.js +4 -4
- package/lib/generated/services/clouddirectory.js +3 -3
- package/lib/generated/services/cloudformation.js +4 -4
- package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
- package/lib/generated/services/cloudfront.js +4 -4
- package/lib/generated/services/cloudhsm.js +4 -4
- package/lib/generated/services/cloudsearch.js +3 -3
- package/lib/generated/services/cloudshell.js +3 -3
- package/lib/generated/services/cloudtrail-data.js +4 -4
- package/lib/generated/services/cloudtrail.js +4 -4
- package/lib/generated/services/cloudwatch.js +4 -4
- package/lib/generated/services/codeartifact.js +4 -4
- package/lib/generated/services/codebuild.js +4 -4
- package/lib/generated/services/codecatalyst.js +4 -4
- package/lib/generated/services/codecommit.js +4 -4
- package/lib/generated/services/codeconnections.js +4 -4
- package/lib/generated/services/codedeploy-commands-secure.js +1 -1
- package/lib/generated/services/codedeploy.js +4 -4
- package/lib/generated/services/codeguru-profiler.js +4 -4
- package/lib/generated/services/codeguru-reviewer.js +4 -4
- package/lib/generated/services/codeguru-security.js +4 -4
- package/lib/generated/services/codeguru.js +1 -1
- package/lib/generated/services/codepipeline.js +4 -4
- package/lib/generated/services/codestar-connections.js +4 -4
- package/lib/generated/services/codestar-notifications.js +4 -4
- package/lib/generated/services/codestar.js +3 -3
- package/lib/generated/services/codewhisperer.js +3 -3
- package/lib/generated/services/cognito-identity.js +4 -4
- package/lib/generated/services/cognito-idp.js +4 -4
- package/lib/generated/services/cognito-sync.js +3 -3
- package/lib/generated/services/comprehend.js +4 -4
- package/lib/generated/services/comprehendmedical.js +3 -3
- package/lib/generated/services/compute-optimizer.js +3 -3
- package/lib/generated/services/config.js +4 -4
- package/lib/generated/services/connect-campaigns.js +4 -4
- package/lib/generated/services/connect.d.ts +4 -0
- package/lib/generated/services/connect.js +19 -7
- package/lib/generated/services/consoleapp.js +2 -2
- package/lib/generated/services/consolidatedbilling.js +1 -1
- package/lib/generated/services/controlcatalog.js +3 -3
- package/lib/generated/services/controltower.js +4 -4
- package/lib/generated/services/cost-optimization-hub.js +2 -2
- package/lib/generated/services/cur.js +4 -4
- package/lib/generated/services/customer-verification.js +1 -1
- package/lib/generated/services/databrew.js +4 -4
- package/lib/generated/services/dataexchange.js +4 -4
- package/lib/generated/services/datapipeline.js +4 -4
- package/lib/generated/services/datasync.js +4 -4
- package/lib/generated/services/datazone.js +4 -4
- package/lib/generated/services/dax.js +4 -4
- package/lib/generated/services/dbqms.js +1 -1
- package/lib/generated/services/deadline.js +4 -4
- package/lib/generated/services/detective.js +4 -4
- package/lib/generated/services/devicefarm.js +4 -4
- package/lib/generated/services/devops-guru.js +4 -4
- package/lib/generated/services/directconnect.js +4 -4
- package/lib/generated/services/discovery.js +3 -3
- package/lib/generated/services/dlm.js +4 -4
- package/lib/generated/services/dms.js +4 -4
- package/lib/generated/services/docdb-elastic.js +4 -4
- package/lib/generated/services/drs.js +4 -4
- package/lib/generated/services/ds-data.js +4 -4
- package/lib/generated/services/ds.js +4 -4
- package/lib/generated/services/dsql.js +4 -4
- package/lib/generated/services/dynamodb.js +4 -4
- package/lib/generated/services/ebs.js +4 -4
- package/lib/generated/services/ec2-instance-connect.js +4 -4
- package/lib/generated/services/ec2.js +4 -4
- package/lib/generated/services/ec2messages.js +2 -2
- package/lib/generated/services/ecr-public.js +4 -4
- package/lib/generated/services/ecr.js +4 -4
- package/lib/generated/services/ecs-mcp.js +1 -1
- package/lib/generated/services/ecs.js +7 -5
- package/lib/generated/services/eks-auth.js +4 -4
- package/lib/generated/services/eks-mcp.js +1 -1
- package/lib/generated/services/eks.js +4 -4
- package/lib/generated/services/elasticache.js +4 -4
- package/lib/generated/services/elasticbeanstalk.js +4 -4
- package/lib/generated/services/elasticfilesystem.js +4 -4
- package/lib/generated/services/elasticloadbalancing.js +4 -4
- package/lib/generated/services/elasticmapreduce.js +4 -4
- package/lib/generated/services/elastictranscoder.js +2 -2
- package/lib/generated/services/elemental-activations.js +1 -1
- package/lib/generated/services/elemental-appliances-software.js +2 -2
- package/lib/generated/services/elemental-inference.js +4 -4
- package/lib/generated/services/elemental-support-cases.js +3 -3
- package/lib/generated/services/elemental-support-content.js +1 -1
- package/lib/generated/services/emr-containers.js +4 -4
- package/lib/generated/services/emr-serverless.js +4 -4
- package/lib/generated/services/entityresolution.js +4 -4
- package/lib/generated/services/es.js +4 -4
- package/lib/generated/services/events.js +4 -4
- package/lib/generated/services/eventsbilltoaws.js +3 -3
- package/lib/generated/services/evidently.js +3 -3
- package/lib/generated/services/evs.js +4 -4
- package/lib/generated/services/execute-api.js +4 -4
- package/lib/generated/services/finops-agent.js +1 -1
- package/lib/generated/services/finspace-api.js +3 -3
- package/lib/generated/services/finspace.js +4 -4
- package/lib/generated/services/firehose.js +4 -4
- package/lib/generated/services/fis.js +4 -4
- package/lib/generated/services/fms.js +4 -4
- package/lib/generated/services/forecast.js +4 -4
- package/lib/generated/services/frauddetector.js +4 -4
- package/lib/generated/services/freertos.js +3 -3
- package/lib/generated/services/freetier.js +2 -2
- package/lib/generated/services/fsx.js +4 -4
- package/lib/generated/services/gamelift.js +4 -4
- package/lib/generated/services/gameliftstreams.js +4 -4
- package/lib/generated/services/geo-maps.js +3 -3
- package/lib/generated/services/geo-places.js +3 -3
- package/lib/generated/services/geo-routes.js +3 -3
- package/lib/generated/services/geo.js +4 -4
- package/lib/generated/services/glacier.js +4 -4
- package/lib/generated/services/globalaccelerator.js +4 -4
- package/lib/generated/services/glue.js +4 -4
- package/lib/generated/services/grafana.js +4 -4
- package/lib/generated/services/greengrass.js +4 -4
- package/lib/generated/services/groundstation.js +4 -4
- package/lib/generated/services/groundtruthlabeling.js +1 -1
- package/lib/generated/services/guardduty.js +4 -4
- package/lib/generated/services/health-agent.js +4 -4
- package/lib/generated/services/health.js +4 -4
- package/lib/generated/services/healthlake.js +4 -4
- package/lib/generated/services/honeycode.js +2 -2
- package/lib/generated/services/iam.js +4 -4
- package/lib/generated/services/identity-sync.js +2 -2
- package/lib/generated/services/identitystore-auth.js +1 -1
- package/lib/generated/services/identitystore.js +4 -4
- package/lib/generated/services/imagebuilder.js +4 -4
- package/lib/generated/services/importexport.js +2 -2
- package/lib/generated/services/inspector-scan.js +2 -2
- package/lib/generated/services/inspector.js +2 -2
- package/lib/generated/services/inspector2-telemetry.js +1 -1
- package/lib/generated/services/inspector2.js +4 -4
- package/lib/generated/services/interconnect.js +4 -4
- package/lib/generated/services/internetmonitor.js +4 -4
- package/lib/generated/services/invoicing.d.ts +4 -0
- package/lib/generated/services/invoicing.js +13 -5
- package/lib/generated/services/iot-device-tester.js +1 -1
- package/lib/generated/services/iot.js +4 -4
- package/lib/generated/services/iotanalytics.js +3 -3
- package/lib/generated/services/iotdeviceadvisor.js +4 -4
- package/lib/generated/services/iotevents.js +3 -3
- package/lib/generated/services/iotfleethub.js +3 -3
- package/lib/generated/services/iotfleetwise.js +4 -4
- package/lib/generated/services/iotjobsdata.js +4 -4
- package/lib/generated/services/iotmanagedintegrations.js +4 -4
- package/lib/generated/services/iotsitewise.js +4 -4
- package/lib/generated/services/iottwinmaker.js +4 -4
- package/lib/generated/services/iotwireless.js +4 -4
- package/lib/generated/services/iq-permission.js +2 -2
- package/lib/generated/services/iq.js +2 -2
- package/lib/generated/services/ivs.js +4 -4
- package/lib/generated/services/ivschat.js +4 -4
- package/lib/generated/services/kafka-cluster.js +3 -3
- package/lib/generated/services/kafka.js +4 -4
- package/lib/generated/services/kafkaconnect.js +4 -4
- package/lib/generated/services/kendra-ranking.js +4 -4
- package/lib/generated/services/kendra.js +4 -4
- package/lib/generated/services/kinesis.js +4 -4
- package/lib/generated/services/kinesisanalytics.js +4 -4
- package/lib/generated/services/kinesisvideo.js +4 -4
- package/lib/generated/services/kms.js +4 -4
- package/lib/generated/services/lakeformation.js +3 -3
- package/lib/generated/services/lambda.js +4 -4
- package/lib/generated/services/launchwizard.js +4 -4
- package/lib/generated/services/lex.js +4 -4
- package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
- package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
- package/lib/generated/services/license-manager.js +4 -4
- package/lib/generated/services/lightsail.js +4 -4
- package/lib/generated/services/logs.js +4 -4
- package/lib/generated/services/lookoutequipment.js +4 -4
- package/lib/generated/services/lookoutmetrics.js +3 -3
- package/lib/generated/services/lookoutvision.js +3 -3
- package/lib/generated/services/m2.js +4 -4
- package/lib/generated/services/machinelearning.js +3 -3
- package/lib/generated/services/macie2.js +4 -4
- package/lib/generated/services/managedblockchain-query.js +2 -2
- package/lib/generated/services/managedblockchain.js +4 -4
- package/lib/generated/services/mapcredits.js +2 -2
- package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
- package/lib/generated/services/mechanicalturk.js +2 -2
- package/lib/generated/services/mediaconnect.js +4 -4
- package/lib/generated/services/mediaconvert.js +4 -4
- package/lib/generated/services/mediaimport.js +1 -1
- package/lib/generated/services/medialive.js +4 -4
- package/lib/generated/services/mediapackage-vod.js +4 -4
- package/lib/generated/services/mediapackage.js +4 -4
- package/lib/generated/services/mediapackagev2.js +4 -4
- package/lib/generated/services/mediastore.js +4 -4
- package/lib/generated/services/mediatailor.js +4 -4
- package/lib/generated/services/medical-imaging.js +4 -4
- package/lib/generated/services/memorydb.js +4 -4
- package/lib/generated/services/mgh.js +4 -4
- package/lib/generated/services/mgn.js +4 -4
- package/lib/generated/services/migrationhub-orchestrator.js +4 -4
- package/lib/generated/services/migrationhub-strategy.js +2 -2
- package/lib/generated/services/mobileanalytics.js +1 -1
- package/lib/generated/services/mobiletargeting.js +4 -4
- package/lib/generated/services/monitron.js +3 -3
- package/lib/generated/services/mpa.js +4 -4
- package/lib/generated/services/mq.js +4 -4
- package/lib/generated/services/neptune-db.js +4 -4
- package/lib/generated/services/neptune-graph.js +4 -4
- package/lib/generated/services/network-firewall.js +4 -4
- package/lib/generated/services/network-security-director.js +1 -1
- package/lib/generated/services/networkflowmonitor.js +4 -4
- package/lib/generated/services/networkmanager-chat.js +1 -1
- package/lib/generated/services/networkmanager.js +4 -4
- package/lib/generated/services/networkmonitor.js +4 -4
- package/lib/generated/services/nimble.js +3 -3
- package/lib/generated/services/notifications-contacts.js +4 -4
- package/lib/generated/services/notifications.js +4 -4
- package/lib/generated/services/nova-act.js +3 -3
- package/lib/generated/services/oam.js +4 -4
- package/lib/generated/services/observabilityadmin.js +4 -4
- package/lib/generated/services/odb.js +4 -4
- package/lib/generated/services/omics.js +4 -4
- package/lib/generated/services/one.js +3 -3
- package/lib/generated/services/opensearch.js +3 -3
- package/lib/generated/services/opsworks-cm.js +2 -2
- package/lib/generated/services/opsworks.js +2 -2
- package/lib/generated/services/organizations.js +4 -4
- package/lib/generated/services/osis.js +4 -4
- package/lib/generated/services/outposts.js +4 -4
- package/lib/generated/services/panorama.js +3 -3
- package/lib/generated/services/partnercentral-account-management.js +2 -2
- package/lib/generated/services/partnercentral.js +4 -4
- package/lib/generated/services/payment-cryptography.js +4 -4
- package/lib/generated/services/payments.js +3 -3
- package/lib/generated/services/pca-connector-ad.js +4 -4
- package/lib/generated/services/pca-connector-scep.js +4 -4
- package/lib/generated/services/pcs.js +4 -4
- package/lib/generated/services/personalize.js +4 -4
- package/lib/generated/services/pi.js +4 -4
- package/lib/generated/services/pipes.js +4 -4
- package/lib/generated/services/polly.js +3 -3
- package/lib/generated/services/pricing.js +2 -2
- package/lib/generated/services/pricingplanmanager.js +3 -3
- package/lib/generated/services/private-networks.js +3 -3
- package/lib/generated/services/profile.js +4 -4
- package/lib/generated/services/proton.js +4 -4
- package/lib/generated/services/purchase-orders.js +3 -3
- package/lib/generated/services/q.js +3 -3
- package/lib/generated/services/qapps.js +4 -4
- package/lib/generated/services/qbusiness.js +4 -4
- package/lib/generated/services/qdeveloper.js +3 -3
- package/lib/generated/services/qldb.js +3 -3
- package/lib/generated/services/quicksight.js +4 -4
- package/lib/generated/services/ram.js +4 -4
- package/lib/generated/services/rbin.js +4 -4
- package/lib/generated/services/rds-data.js +4 -4
- package/lib/generated/services/rds-db.js +2 -2
- package/lib/generated/services/rds.js +4 -4
- package/lib/generated/services/redshift-data.js +4 -4
- package/lib/generated/services/redshift-serverless.js +4 -4
- package/lib/generated/services/redshift.js +4 -4
- package/lib/generated/services/refactor-spaces.js +4 -4
- package/lib/generated/services/rekognition.js +4 -4
- package/lib/generated/services/repostspace.js +4 -4
- package/lib/generated/services/researchstudio.js +1 -1
- package/lib/generated/services/resiliencehub.d.ts +8 -0
- package/lib/generated/services/resiliencehub.js +19 -5
- package/lib/generated/services/resource-explorer-2.js +4 -4
- package/lib/generated/services/resource-explorer.js +1 -1
- package/lib/generated/services/resource-groups.js +4 -4
- package/lib/generated/services/rhelkb.js +1 -1
- package/lib/generated/services/robomaker.js +3 -3
- package/lib/generated/services/rolesanywhere.js +4 -4
- package/lib/generated/services/route53-recovery-cluster.js +4 -4
- package/lib/generated/services/route53-recovery-control-config.js +4 -4
- package/lib/generated/services/route53-recovery-readiness.js +4 -4
- package/lib/generated/services/route53.js +4 -4
- package/lib/generated/services/route53domains.js +2 -2
- package/lib/generated/services/route53globalresolver.js +4 -4
- package/lib/generated/services/route53profiles.js +4 -4
- package/lib/generated/services/route53resolver.js +4 -4
- package/lib/generated/services/rtbfabric.js +4 -4
- package/lib/generated/services/rum.js +4 -4
- package/lib/generated/services/s3-object-lambda.js +3 -3
- package/lib/generated/services/s3-outposts.js +4 -4
- package/lib/generated/services/s3.js +4 -4
- package/lib/generated/services/s3express.js +3 -3
- package/lib/generated/services/s3files.js +4 -4
- package/lib/generated/services/s3tables.js +4 -4
- package/lib/generated/services/s3vectors.js +4 -4
- package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
- package/lib/generated/services/sagemaker-geospatial.js +4 -4
- package/lib/generated/services/sagemaker-mlflow.js +3 -3
- package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
- package/lib/generated/services/sagemaker.d.ts +2 -0
- package/lib/generated/services/sagemaker.js +7 -6
- package/lib/generated/services/savingsplans.js +4 -4
- package/lib/generated/services/scheduler.js +4 -4
- package/lib/generated/services/schemas.js +4 -4
- package/lib/generated/services/scn.js +4 -4
- package/lib/generated/services/sdb.js +3 -3
- package/lib/generated/services/secretsmanager.js +4 -4
- package/lib/generated/services/security-ir.js +4 -4
- package/lib/generated/services/securityagent.js +4 -4
- package/lib/generated/services/securityhub.js +4 -4
- package/lib/generated/services/securitylake.js +4 -4
- package/lib/generated/services/serverlessrepo.js +4 -4
- package/lib/generated/services/servicecatalog.js +4 -4
- package/lib/generated/services/servicediscovery.js +4 -4
- package/lib/generated/services/serviceextract.js +1 -1
- package/lib/generated/services/servicequotas.js +4 -4
- package/lib/generated/services/ses.js +4 -4
- package/lib/generated/services/shield.js +4 -4
- package/lib/generated/services/signer.js +4 -4
- package/lib/generated/services/signin.js +4 -4
- package/lib/generated/services/simspaceweaver.js +3 -3
- package/lib/generated/services/sms-voice.js +4 -4
- package/lib/generated/services/sms.js +1 -1
- package/lib/generated/services/snow-device-management.js +4 -4
- package/lib/generated/services/snowball.js +2 -2
- package/lib/generated/services/sns.js +4 -4
- package/lib/generated/services/social-messaging.js +4 -4
- package/lib/generated/services/sqlworkbench.js +3 -3
- package/lib/generated/services/sqs.js +4 -4
- package/lib/generated/services/ssm-contacts.js +4 -4
- package/lib/generated/services/ssm-guiconnect.js +2 -2
- package/lib/generated/services/ssm-incidents.js +4 -4
- package/lib/generated/services/ssm-quicksetup.js +4 -4
- package/lib/generated/services/ssm-sap.js +4 -4
- package/lib/generated/services/ssm.js +4 -4
- package/lib/generated/services/ssmmessages.js +2 -2
- package/lib/generated/services/sso-directory.js +1 -1
- package/lib/generated/services/sso-oauth.js +3 -3
- package/lib/generated/services/sso.js +4 -4
- package/lib/generated/services/states.js +4 -4
- package/lib/generated/services/storagegateway.js +4 -4
- package/lib/generated/services/sts.js +4 -4
- package/lib/generated/services/support-console.js +1 -1
- package/lib/generated/services/support.js +2 -2
- package/lib/generated/services/supportapp.js +2 -2
- package/lib/generated/services/supportauthz.js +4 -4
- package/lib/generated/services/supportplans.js +1 -1
- package/lib/generated/services/sustainability.js +2 -2
- package/lib/generated/services/swf.js +4 -4
- package/lib/generated/services/synthetics.js +4 -4
- package/lib/generated/services/tag.js +2 -2
- package/lib/generated/services/tax.js +2 -2
- package/lib/generated/services/textract.js +4 -4
- package/lib/generated/services/thinclient.js +4 -4
- package/lib/generated/services/timestream-influxdb.js +4 -4
- package/lib/generated/services/timestream.js +4 -4
- package/lib/generated/services/tiros.js +1 -1
- package/lib/generated/services/tnb.js +4 -4
- package/lib/generated/services/transcribe.js +4 -4
- package/lib/generated/services/transfer.js +4 -4
- package/lib/generated/services/transform-custom.js +3 -3
- package/lib/generated/services/transform.js +3 -3
- package/lib/generated/services/translate.js +4 -4
- package/lib/generated/services/trustedadvisor.js +3 -3
- package/lib/generated/services/ts.js +3 -3
- package/lib/generated/services/user-subscriptions.js +2 -2
- package/lib/generated/services/uxc.js +2 -2
- package/lib/generated/services/vendor-insights.js +3 -3
- package/lib/generated/services/verified-access.js +1 -1
- package/lib/generated/services/verifiedpermissions.js +4 -4
- package/lib/generated/services/voiceid.js +4 -4
- package/lib/generated/services/vpc-lattice-svcs.d.ts +6 -0
- package/lib/generated/services/vpc-lattice-svcs.js +12 -4
- package/lib/generated/services/vpc-lattice.js +4 -4
- package/lib/generated/services/vpce.js +2 -2
- package/lib/generated/services/waf-regional.js +4 -4
- package/lib/generated/services/waf.js +4 -4
- package/lib/generated/services/wafv2.js +4 -4
- package/lib/generated/services/wam.js +1 -1
- package/lib/generated/services/wellarchitected.js +4 -4
- package/lib/generated/services/wickr.js +4 -4
- package/lib/generated/services/wisdom.js +4 -4
- package/lib/generated/services/workdocs.js +3 -3
- package/lib/generated/services/worklink.js +3 -3
- package/lib/generated/services/workmail.js +4 -4
- package/lib/generated/services/workmailmessageflow.js +3 -3
- package/lib/generated/services/workspaces-instances.js +4 -4
- package/lib/generated/services/workspaces-web.js +4 -4
- package/lib/generated/services/workspaces.js +4 -4
- package/lib/generated/services/xray.js +4 -4
- package/package.json +6 -6
|
@@ -16,7 +16,7 @@ class BatchActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.BatchActions = BatchActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
BatchActions[_a] = { fqn: "@cdk_utils/iam.batch.BatchActions", version: "1.
|
|
19
|
+
BatchActions[_a] = { fqn: "@cdk_utils/iam.batch.BatchActions", version: "1.22.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
BatchActions.SERVICE_PREFIX = "batch";
|
|
22
22
|
/** [Write] batch:CancelJob */
|
|
@@ -470,7 +470,7 @@ class BatchResources {
|
|
|
470
470
|
}
|
|
471
471
|
exports.BatchResources = BatchResources;
|
|
472
472
|
_b = JSII_RTTI_SYMBOL_1;
|
|
473
|
-
BatchResources[_b] = { fqn: "@cdk_utils/iam.batch.BatchResources", version: "1.
|
|
473
|
+
BatchResources[_b] = { fqn: "@cdk_utils/iam.batch.BatchResources", version: "1.22.0" };
|
|
474
474
|
/**
|
|
475
475
|
* API operation to required IAM actions mapping for batch.
|
|
476
476
|
*/
|
|
@@ -478,9 +478,11 @@ class BatchOperations {
|
|
|
478
478
|
}
|
|
479
479
|
exports.BatchOperations = BatchOperations;
|
|
480
480
|
_c = JSII_RTTI_SYMBOL_1;
|
|
481
|
-
BatchOperations[_c] = { fqn: "@cdk_utils/iam.batch.BatchOperations", version: "1.
|
|
481
|
+
BatchOperations[_c] = { fqn: "@cdk_utils/iam.batch.BatchOperations", version: "1.22.0" };
|
|
482
482
|
/** IAM actions required for the CancelJob API call. */
|
|
483
483
|
BatchOperations.CancelJob = ["batch:CancelJob"];
|
|
484
|
+
/** IAM actions required for the CancelJobs API call. */
|
|
485
|
+
BatchOperations.CancelJobs = ["batch:CancelJob"];
|
|
484
486
|
/** IAM actions required for the CreateComputeEnvironment API call. */
|
|
485
487
|
BatchOperations.CreateComputeEnvironment = [
|
|
486
488
|
"batch:CreateComputeEnvironment",
|
|
@@ -610,13 +612,20 @@ BatchOperations.SubmitServiceJob = [
|
|
|
610
612
|
BatchOperations.TagResource = ["batch:TagResource"];
|
|
611
613
|
/** IAM actions required for the TerminateJob API call. */
|
|
612
614
|
BatchOperations.TerminateJob = ["batch:TerminateJob"];
|
|
615
|
+
/** IAM actions required for the TerminateJobs API call. */
|
|
616
|
+
BatchOperations.TerminateJobs = ["batch:TerminateJob"];
|
|
613
617
|
/** IAM actions required for the TerminateServiceJob API call. */
|
|
614
618
|
BatchOperations.TerminateServiceJob = ["batch:TerminateServiceJob"];
|
|
619
|
+
/** IAM actions required for the TerminateServiceJobs API call. */
|
|
620
|
+
BatchOperations.TerminateServiceJobs = [
|
|
621
|
+
"batch:TerminateServiceJob",
|
|
622
|
+
];
|
|
615
623
|
/** IAM actions required for the UntagResource API call. */
|
|
616
624
|
BatchOperations.UntagResource = ["batch:UntagResource"];
|
|
617
625
|
/** IAM actions required for the UpdateComputeEnvironment API call. */
|
|
618
626
|
BatchOperations.UpdateComputeEnvironment = [
|
|
619
627
|
"iam:PassRole",
|
|
628
|
+
"batch:SetCapacityTags",
|
|
620
629
|
"batch:UpdateComputeEnvironment",
|
|
621
630
|
];
|
|
622
631
|
/** IAM actions required for the UpdateConsumableResource API call. */
|
|
@@ -758,7 +767,7 @@ class BatchConditions {
|
|
|
758
767
|
}
|
|
759
768
|
exports.BatchConditions = BatchConditions;
|
|
760
769
|
_d = JSII_RTTI_SYMBOL_1;
|
|
761
|
-
BatchConditions[_d] = { fqn: "@cdk_utils/iam.batch.BatchConditions", version: "1.
|
|
770
|
+
BatchConditions[_d] = { fqn: "@cdk_utils/iam.batch.BatchConditions", version: "1.22.0" };
|
|
762
771
|
/** Condition keys applicable to the CreateComputeEnvironment action. */
|
|
763
772
|
BatchConditions.CreateComputeEnvironmentConditionKeys = [
|
|
764
773
|
"aws:RequestTag/${TagKey}",
|
|
@@ -873,4 +882,4 @@ BatchConditions.SCHEDULING_PRIORITY = "batch:SchedulingPriority";
|
|
|
873
882
|
BatchConditions.SHARE_IDENTIFIER = "batch:ShareIdentifier";
|
|
874
883
|
/** Condition key: batch:User (String) */
|
|
875
884
|
BatchConditions.USER = "batch:User";
|
|
876
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3NlcnZpY2VzL2JhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBQ2hGLDZDQUE2QztBQUM3QywwREFBMEQ7QUFDMUQsNENBQTRDO0FBQzVDLG9EQUFvRDtBQUNwRCxnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSCxNQUFhLFlBQVk7O0FBQXpCLG9DQWtLQzs7O0FBaktBLDhCQUE4QjtBQUNkLDJCQUFjLEdBQUcsT0FBTyxDQUFDO0FBRXpDLDhCQUE4QjtBQUNkLHNCQUFTLEdBQUcsaUJBQWlCLENBQUM7QUFDOUMsNkNBQTZDO0FBQzdCLHFDQUF3QixHQUFHLGdDQUFnQyxDQUFDO0FBQzVFLDZDQUE2QztBQUM3QixxQ0FBd0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM1RSxtQ0FBbUM7QUFDbkIsMkJBQWMsR0FBRyxzQkFBc0IsQ0FBQztBQUN4RCxxQ0FBcUM7QUFDckIsNkJBQWdCLEdBQUcsd0JBQXdCLENBQUM7QUFDNUQsMkNBQTJDO0FBQzNCLG1DQUFzQixHQUFHLDhCQUE4QixDQUFDO0FBQ3hFLDZDQUE2QztBQUM3QixxQ0FBd0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM1RSw2Q0FBNkM7QUFDN0IscUNBQXdCLEdBQUcsZ0NBQWdDLENBQUM7QUFDNUUsNkNBQTZDO0FBQzdCLHFDQUF3QixHQUFHLGdDQUFnQyxDQUFDO0FBQzVFLG1DQUFtQztBQUNuQiwyQkFBYyxHQUFHLHNCQUFzQixDQUFDO0FBQ3hELHFDQUFxQztBQUNyQiw2QkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQztBQUM1RCwyQ0FBMkM7QUFDM0IsbUNBQXNCLEdBQUcsOEJBQThCLENBQUM7QUFDeEUsNkNBQTZDO0FBQzdCLHFDQUF3QixHQUFHLGdDQUFnQyxDQUFDO0FBQzVFLDRDQUE0QztBQUM1QixvQ0FBdUIsR0FBRywrQkFBK0IsQ0FBQztBQUMxRSwrQ0FBK0M7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QkFBUyxHQUFHLGdCQUFnQixDQUFDO0FBQzdDLGlEQUFpRDtBQUNqQyw2QkFBYSxHQUFHLG9CQUFvQixDQUFDO0FBQ3JELGdEQUFnRDtBQUNoQyw4QkFBYyxHQUFHLHFCQUFxQixDQUFDO0FBQ3ZELG1EQUFtRDtBQUNuQyxnQ0FBZ0IsR0FBRyxxQkFBcUIsQ0FBQztBQUN6RCxrREFBa0Q7QUFDbEMsK0JBQWUsR0FBRyxvQkFBb0IsQ0FBQztBQUN2RCwwREFBMEQ7QUFDMUMsd0NBQXdCLEdBQUcsNkJBQTZCLENBQUM7QUFDekUsMENBQTBDO0FBQzFCLHFCQUFLLEdBQUcsYUFBYSxDQUFDO0FBQ3RDLDhDQUE4QztBQUM5QiwwQkFBVSxHQUFHLGlCQUFpQixDQUFDO0FBQy9DLDZDQUE2QztBQUM3QiwwQkFBVSxHQUFHLGtCQUFrQixDQUFDO0FBQ2hELHdEQUF3RDtBQUN4QyxtQ0FBbUIsR0FBRywwQkFBMEIsQ0FBQztBQUNqRSxvREFBb0Q7QUFDcEMsZ0NBQWdCLEdBQUcsdUJBQXVCLENBQUM7QUFDM0QseUNBQXlDO0FBQ3pCLG9CQUFJLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvYmF0Y2guanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGJhdGNoIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXRjaEFjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJiYXRjaFwiO1xuXG5cdC8qKiBbV3JpdGVdIGJhdGNoOkNhbmNlbEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsSm9iID0gXCJiYXRjaDpDYW5jZWxKb2JcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6Q3JlYXRlQ29tcHV0ZUVudmlyb25tZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb21wdXRlRW52aXJvbm1lbnQgPSBcImJhdGNoOkNyZWF0ZUNvbXB1dGVFbnZpcm9ubWVudFwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpDcmVhdGVDb25zdW1hYmxlUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbnN1bWFibGVSZXNvdXJjZSA9IFwiYmF0Y2g6Q3JlYXRlQ29uc3VtYWJsZVJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOkNyZWF0ZUpvYlF1ZXVlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVKb2JRdWV1ZSA9IFwiYmF0Y2g6Q3JlYXRlSm9iUXVldWVcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6Q3JlYXRlUXVvdGFTaGFyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUXVvdGFTaGFyZSA9IFwiYmF0Y2g6Q3JlYXRlUXVvdGFTaGFyZVwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpDcmVhdGVTY2hlZHVsaW5nUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTY2hlZHVsaW5nUG9saWN5ID0gXCJiYXRjaDpDcmVhdGVTY2hlZHVsaW5nUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOkNyZWF0ZVNlcnZpY2VFbnZpcm9ubWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2VydmljZUVudmlyb25tZW50ID0gXCJiYXRjaDpDcmVhdGVTZXJ2aWNlRW52aXJvbm1lbnRcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6RGVsZXRlQ29tcHV0ZUVudmlyb25tZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb21wdXRlRW52aXJvbm1lbnQgPSBcImJhdGNoOkRlbGV0ZUNvbXB1dGVFbnZpcm9ubWVudFwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpEZWxldGVDb25zdW1hYmxlUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbnN1bWFibGVSZXNvdXJjZSA9IFwiYmF0Y2g6RGVsZXRlQ29uc3VtYWJsZVJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOkRlbGV0ZUpvYlF1ZXVlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVKb2JRdWV1ZSA9IFwiYmF0Y2g6RGVsZXRlSm9iUXVldWVcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6RGVsZXRlUXVvdGFTaGFyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUXVvdGFTaGFyZSA9IFwiYmF0Y2g6RGVsZXRlUXVvdGFTaGFyZVwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpEZWxldGVTY2hlZHVsaW5nUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTY2hlZHVsaW5nUG9saWN5ID0gXCJiYXRjaDpEZWxldGVTY2hlZHVsaW5nUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOkRlbGV0ZVNlcnZpY2VFbnZpcm9ubWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU2VydmljZUVudmlyb25tZW50ID0gXCJiYXRjaDpEZWxldGVTZXJ2aWNlRW52aXJvbm1lbnRcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6RGVyZWdpc3RlckpvYkRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlcmVnaXN0ZXJKb2JEZWZpbml0aW9uID0gXCJiYXRjaDpEZXJlZ2lzdGVySm9iRGVmaW5pdGlvblwiO1xuXHQvKiogW1JlYWRdIGJhdGNoOkRlc2NyaWJlQ29tcHV0ZUVudmlyb25tZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDb21wdXRlRW52aXJvbm1lbnRzID1cblx0XHRcImJhdGNoOkRlc2NyaWJlQ29tcHV0ZUVudmlyb25tZW50c1wiO1xuXHQvKiogW1JlYWRdIGJhdGNoOkRlc2NyaWJlQ29uc3VtYWJsZVJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNvbnN1bWFibGVSZXNvdXJjZSA9XG5cdFx0XCJiYXRjaDpEZXNjcmliZUNvbnN1bWFibGVSZXNvdXJjZVwiO1xuXHQvKiogW1JlYWRdIGJhdGNoOkRlc2NyaWJlSm9iRGVmaW5pdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9iRGVmaW5pdGlvbnMgPSBcImJhdGNoOkRlc2NyaWJlSm9iRGVmaW5pdGlvbnNcIjtcblx0LyoqIFtSZWFkXSBiYXRjaDpEZXNjcmliZUpvYlF1ZXVlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JRdWV1ZXMgPSBcImJhdGNoOkRlc2NyaWJlSm9iUXVldWVzXCI7XG5cdC8qKiBbUmVhZF0gYmF0Y2g6RGVzY3JpYmVKb2JzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUpvYnMgPSBcImJhdGNoOkRlc2NyaWJlSm9ic1wiO1xuXHQvKiogW1JlYWRdIGJhdGNoOkRlc2NyaWJlUXVvdGFTaGFyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVRdW90YVNoYXJlID0gXCJiYXRjaDpEZXNjcmliZVF1b3RhU2hhcmVcIjtcblx0LyoqIFtSZWFkXSBiYXRjaDpEZXNjcmliZVNjaGVkdWxpbmdQb2xpY2llcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTY2hlZHVsaW5nUG9saWNpZXMgPVxuXHRcdFwiYmF0Y2g6RGVzY3JpYmVTY2hlZHVsaW5nUG9saWNpZXNcIjtcblx0LyoqIFtSZWFkXSBiYXRjaDpEZXNjcmliZVNlcnZpY2VFbnZpcm9ubWVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU2VydmljZUVudmlyb25tZW50cyA9XG5cdFx0XCJiYXRjaDpEZXNjcmliZVNlcnZpY2VFbnZpcm9ubWVudHNcIjtcblx0LyoqIFtSZWFkXSBiYXRjaDpEZXNjcmliZVNlcnZpY2VKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU2VydmljZUpvYiA9IFwiYmF0Y2g6RGVzY3JpYmVTZXJ2aWNlSm9iXCI7XG5cdC8qKiBbUmVhZF0gYmF0Y2g6R2V0Sm9iUXVldWVTbmFwc2hvdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Sm9iUXVldWVTbmFwc2hvdCA9IFwiYmF0Y2g6R2V0Sm9iUXVldWVTbmFwc2hvdFwiO1xuXHQvKiogW0xpc3RdIGJhdGNoOkxpc3RDb25zdW1hYmxlUmVzb3VyY2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29uc3VtYWJsZVJlc291cmNlcyA9IFwiYmF0Y2g6TGlzdENvbnN1bWFibGVSZXNvdXJjZXNcIjtcblx0LyoqIFtMaXN0XSBiYXRjaDpMaXN0Sm9icyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEpvYnMgPSBcImJhdGNoOkxpc3RKb2JzXCI7XG5cdC8qKiBbTGlzdF0gYmF0Y2g6TGlzdEpvYnNCeUNvbnN1bWFibGVSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEpvYnNCeUNvbnN1bWFibGVSZXNvdXJjZSA9XG5cdFx0XCJiYXRjaDpMaXN0Sm9ic0J5Q29uc3VtYWJsZVJlc291cmNlXCI7XG5cdC8qKiBbTGlzdF0gYmF0Y2g6TGlzdFF1b3RhU2hhcmVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UXVvdGFTaGFyZXMgPSBcImJhdGNoOkxpc3RRdW90YVNoYXJlc1wiO1xuXHQvKiogW1JlYWRdIGJhdGNoOkxpc3RTY2hlZHVsaW5nUG9saWNpZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTY2hlZHVsaW5nUG9saWNpZXMgPSBcImJhdGNoOkxpc3RTY2hlZHVsaW5nUG9saWNpZXNcIjtcblx0LyoqIFtMaXN0XSBiYXRjaDpMaXN0U2VydmljZUpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZXJ2aWNlSm9icyA9IFwiYmF0Y2g6TGlzdFNlcnZpY2VKb2JzXCI7XG5cdC8qKiBbUmVhZF0gYmF0Y2g6TGlzdFRhZ3NGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZSA9IFwiYmF0Y2g6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpSZWdpc3RlckpvYkRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVySm9iRGVmaW5pdGlvbiA9IFwiYmF0Y2g6UmVnaXN0ZXJKb2JEZWZpbml0aW9uXCI7XG5cdC8qKiBbVGFnZ2luZ10gYmF0Y2g6U2V0Q2FwYWNpdHlUYWdzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25TZXRDYXBhY2l0eVRhZ3MgPSBcImJhdGNoOlNldENhcGFjaXR5VGFnc1wiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpTdWJtaXRKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1Ym1pdEpvYiA9IFwiYmF0Y2g6U3VibWl0Sm9iXCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOlN1Ym1pdFNlcnZpY2VKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1Ym1pdFNlcnZpY2VKb2IgPSBcImJhdGNoOlN1Ym1pdFNlcnZpY2VKb2JcIjtcblx0LyoqIFtUYWdnaW5nXSBiYXRjaDpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImJhdGNoOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOlRlcm1pbmF0ZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVybWluYXRlSm9iID0gXCJiYXRjaDpUZXJtaW5hdGVKb2JcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6VGVybWluYXRlU2VydmljZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVybWluYXRlU2VydmljZUpvYiA9IFwiYmF0Y2g6VGVybWluYXRlU2VydmljZUpvYlwiO1xuXHQvKiogW1RhZ2dpbmddIGJhdGNoOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImJhdGNoOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6VXBkYXRlQ29tcHV0ZUVudmlyb25tZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb21wdXRlRW52aXJvbm1lbnQgPSBcImJhdGNoOlVwZGF0ZUNvbXB1dGVFbnZpcm9ubWVudFwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpVcGRhdGVDb25zdW1hYmxlUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbnN1bWFibGVSZXNvdXJjZSA9IFwiYmF0Y2g6VXBkYXRlQ29uc3VtYWJsZVJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOlVwZGF0ZUpvYlF1ZXVlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVKb2JRdWV1ZSA9IFwiYmF0Y2g6VXBkYXRlSm9iUXVldWVcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6VXBkYXRlUXVvdGFTaGFyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUXVvdGFTaGFyZSA9IFwiYmF0Y2g6VXBkYXRlUXVvdGFTaGFyZVwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpVcGRhdGVTY2hlZHVsaW5nUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTY2hlZHVsaW5nUG9saWN5ID0gXCJiYXRjaDpVcGRhdGVTY2hlZHVsaW5nUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOlVwZGF0ZVNlcnZpY2VFbnZpcm9ubWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU2VydmljZUVudmlyb25tZW50ID0gXCJiYXRjaDpVcGRhdGVTZXJ2aWNlRW52aXJvbm1lbnRcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6VXBkYXRlU2VydmljZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU2VydmljZUpvYiA9IFwiYmF0Y2g6VXBkYXRlU2VydmljZUpvYlwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEJhdGNoQWN0aW9ucy5EZXNjcmliZUNvbXB1dGVFbnZpcm9ubWVudHMsXG5cdFx0QmF0Y2hBY3Rpb25zLkRlc2NyaWJlQ29uc3VtYWJsZVJlc291cmNlLFxuXHRcdEJhdGNoQWN0aW9ucy5EZXNjcmliZUpvYkRlZmluaXRpb25zLFxuXHRcdEJhdGNoQWN0aW9ucy5EZXNjcmliZUpvYlF1ZXVlcyxcblx0XHRCYXRjaEFjdGlvbnMuRGVzY3JpYmVKb2JzLFxuXHRcdEJhdGNoQWN0aW9ucy5EZXNjcmliZVF1b3RhU2hhcmUsXG5cdFx0QmF0Y2hBY3Rpb25zLkRlc2NyaWJlU2NoZWR1bGluZ1BvbGljaWVzLFxuXHRcdEJhdGNoQWN0aW9ucy5EZXNjcmliZVNlcnZpY2VFbnZpcm9ubWVudHMsXG5cdFx0QmF0Y2hBY3Rpb25zLkRlc2NyaWJlU2VydmljZUpvYixcblx0XHRCYXRjaEFjdGlvbnMuYWN0aW9uR2V0Sm9iUXVldWVTbmFwc2hvdCxcblx0XHRCYXRjaEFjdGlvbnMuTGlzdFNjaGVkdWxpbmdQb2xpY2llcyxcblx0XHRCYXRjaEFjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRCYXRjaEFjdGlvbnMuQ2FuY2VsSm9iLFxuXHRcdEJhdGNoQWN0aW9ucy5DcmVhdGVDb21wdXRlRW52aXJvbm1lbnQsXG5cdFx0QmF0Y2hBY3Rpb25zLkNyZWF0ZUNvbnN1bWFibGVSZXNvdXJjZSxcblx0XHRCYXRjaEFjdGlvbnMuQ3JlYXRlSm9iUXVldWUsXG5cdFx0QmF0Y2hBY3Rpb25zLkNyZWF0ZVF1b3RhU2hhcmUsXG5cdFx0QmF0Y2hBY3Rpb25zLkNyZWF0ZVNjaGVkdWxpbmdQb2xpY3ksXG5cdFx0QmF0Y2hBY3Rpb25zLkNyZWF0ZVNlcnZpY2VFbnZpcm9ubWVudCxcblx0XHRCYXRjaEFjdGlvbnMuRGVsZXRlQ29tcHV0ZUVudmlyb25tZW50LFxuXHRcdEJhdGNoQWN0aW9ucy5EZWxldGVDb25zdW1hYmxlUmVzb3VyY2UsXG5cdFx0QmF0Y2hBY3Rpb25zLkRlbGV0ZUpvYlF1ZXVlLFxuXHRcdEJhdGNoQWN0aW9ucy5EZWxldGVRdW90YVNoYXJlLFxuXHRcdEJhdGNoQWN0aW9ucy5EZWxldGVTY2hlZHVsaW5nUG9saWN5LFxuXHRcdEJhdGNoQWN0aW9ucy5EZWxldGVTZXJ2aWNlRW52aXJvbm1lbnQsXG5cdFx0QmF0Y2hBY3Rpb25zLkRlcmVnaXN0ZXJKb2JEZWZpbml0aW9uLFxuXHRcdEJhdGNoQWN0aW9ucy5SZWdpc3RlckpvYkRlZmluaXRpb24sXG5cdFx0QmF0Y2hBY3Rpb25zLlN1Ym1pdEpvYixcblx0XHRCYXRjaEFjdGlvbnMuU3VibWl0U2VydmljZUpvYixcblx0XHRCYXRjaEFjdGlvbnMuVGVybWluYXRlSm9iLFxuXHRcdEJhdGNoQWN0aW9ucy5UZXJtaW5hdGVTZXJ2aWNlSm9iLFxuXHRcdEJhdGNoQWN0aW9ucy5VcGRhdGVDb21wdXRlRW52aXJvbm1lbnQsXG5cdFx0QmF0Y2hBY3Rpb25zLlVwZGF0ZUNvbnN1bWFibGVSZXNvdXJjZSxcblx0XHRCYXRjaEFjdGlvbnMuVXBkYXRlSm9iUXVldWUsXG5cdFx0QmF0Y2hBY3Rpb25zLlVwZGF0ZVF1b3RhU2hhcmUsXG5cdFx0QmF0Y2hBY3Rpb25zLlVwZGF0ZVNjaGVkdWxpbmdQb2xpY3ksXG5cdFx0QmF0Y2hBY3Rpb25zLlVwZGF0ZVNlcnZpY2VFbnZpcm9ubWVudCxcblx0XHRCYXRjaEFjdGlvbnMuVXBkYXRlU2VydmljZUpvYixcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0QmF0Y2hBY3Rpb25zLkxpc3RDb25zdW1hYmxlUmVzb3VyY2VzLFxuXHRcdEJhdGNoQWN0aW9ucy5MaXN0Sm9icyxcblx0XHRCYXRjaEFjdGlvbnMuTGlzdEpvYnNCeUNvbnN1bWFibGVSZXNvdXJjZSxcblx0XHRCYXRjaEFjdGlvbnMuTGlzdFF1b3RhU2hhcmVzLFxuXHRcdEJhdGNoQWN0aW9ucy5MaXN0U2VydmljZUpvYnMsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEJhdGNoQWN0aW9ucy5hY3Rpb25TZXRDYXBhY2l0eVRhZ3MsXG5cdFx0QmF0Y2hBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdEJhdGNoQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29tcHV0ZS1lbnZpcm9ubWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hDb21wdXRlRW52aXJvbm1lbnRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29tcHV0ZUVudmlyb25tZW50TmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29tcHV0ZUVudmlyb25tZW50TmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbXB1dGUtZW52aXJvbm1lbnQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoQ29tcHV0ZUVudmlyb25tZW50QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb21wdXRlRW52aXJvbm1lbnROYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29tcHV0ZUVudmlyb25tZW50TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29uc3VtYWJsZS1yZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hDb25zdW1hYmxlUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29uc3VtYWJsZVJlc291cmNlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29uc3VtYWJsZVJlc291cmNlTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbnN1bWFibGUtcmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoQ29uc3VtYWJsZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb25zdW1hYmxlUmVzb3VyY2VOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29uc3VtYWJsZVJlc291cmNlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgam9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaEpvYkFyblByb3BzIHtcblx0LyoqIFRoZSBKb2JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgam9iSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBqb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoSm9iQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBKb2JJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBqb2ItZGVmaW5pdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hKb2JEZWZpbml0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEpvYkRlZmluaXRpb25OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBqb2JEZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGpvYi1kZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaEpvYkRlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEpvYkRlZmluaXRpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgam9iRGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGpvYi1kZWZpbml0aW9uLXJldmlzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaEpvYkRlZmluaXRpb25SZXZpc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBKb2JEZWZpbml0aW9uTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgam9iRGVmaW5pdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBSZXZpc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmV2aXNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBqb2ItZGVmaW5pdGlvbi1yZXZpc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hKb2JEZWZpbml0aW9uUmV2aXNpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEpvYkRlZmluaXRpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgam9iRGVmaW5pdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBSZXZpc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJldmlzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBqb2ItcXVldWUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoSm9iUXVldWVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSm9iUXVldWVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBqb2JRdWV1ZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBqb2ItcXVldWUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoSm9iUXVldWVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEpvYlF1ZXVlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYlF1ZXVlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgcXVvdGEtc2hhcmUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoUXVvdGFTaGFyZUFyblByb3BzIHtcblx0LyoqIFRoZSBKb2JRdWV1ZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGpvYlF1ZXVlTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFF1b3RhU2hhcmVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBxdW90YVNoYXJlTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHF1b3RhLXNoYXJlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaFF1b3RhU2hhcmVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEpvYlF1ZXVlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYlF1ZXVlTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFF1b3RhU2hhcmVOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcXVvdGFTaGFyZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHNjaGVkdWxpbmctcG9saWN5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaFNjaGVkdWxpbmdQb2xpY3lBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2NoZWR1bGluZ1BvbGljeU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNjaGVkdWxpbmdQb2xpY3lOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgc2NoZWR1bGluZy1wb2xpY3kgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoU2NoZWR1bGluZ1BvbGljeUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU2NoZWR1bGluZ1BvbGljeU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzY2hlZHVsaW5nUG9saWN5TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgc2VydmljZS1lbnZpcm9ubWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hTZXJ2aWNlRW52aXJvbm1lbnRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2VydmljZUVudmlyb25tZW50TmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc2VydmljZUVudmlyb25tZW50TmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHNlcnZpY2UtZW52aXJvbm1lbnQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoU2VydmljZUVudmlyb25tZW50QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTZXJ2aWNlRW52aXJvbm1lbnROYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2VydmljZUVudmlyb25tZW50TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgc2VydmljZS1qb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoU2VydmljZUpvYkFyblByb3BzIHtcblx0LyoqIFRoZSBKb2JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgam9iSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBzZXJ2aWNlLWpvYiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hTZXJ2aWNlSm9iQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBKb2JJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG59XG5cbmNvbnN0IENvbXB1dGVFbnZpcm9ubWVudEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpiYXRjaDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNvbXB1dGUtZW52aXJvbm1lbnRcXC8oPzxjb21wdXRlRW52aXJvbm1lbnROYW1lPlteOi8/XSspJC87XG5jb25zdCBDb25zdW1hYmxlUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YmF0Y2g6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb25zdW1hYmxlLXJlc291cmNlXFwvKD88Y29uc3VtYWJsZVJlc291cmNlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgSm9iQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmJhdGNoOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6am9iXFwvKD88am9iSWQ+W146Lz9dKykkLztcbmNvbnN0IEpvYkRlZmluaXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YmF0Y2g6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpqb2ItZGVmaW5pdGlvblxcLyg/PGpvYkRlZmluaXRpb25OYW1lPlteOi8/XSspJC87XG5jb25zdCBKb2JEZWZpbml0aW9uUmV2aXNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YmF0Y2g6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpqb2ItZGVmaW5pdGlvblxcLyg/PGpvYkRlZmluaXRpb25OYW1lPlteOi8/XSspOig/PHJldmlzaW9uPlteOi8/XSspJC87XG5jb25zdCBKb2JRdWV1ZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpiYXRjaDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmpvYi1xdWV1ZVxcLyg/PGpvYlF1ZXVlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgUXVvdGFTaGFyZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpiYXRjaDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmpvYi1xdWV1ZVxcLyg/PGpvYlF1ZXVlTmFtZT5bXjovP10rKVxcL3F1b3RhLXNoYXJlXFwvKD88cXVvdGFTaGFyZU5hbWU+W146Lz9dKykkLztcbmNvbnN0IFNjaGVkdWxpbmdQb2xpY3lBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YmF0Y2g6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzY2hlZHVsaW5nLXBvbGljeVxcLyg/PHNjaGVkdWxpbmdQb2xpY3lOYW1lPlteOi8/XSspJC87XG5jb25zdCBTZXJ2aWNlRW52aXJvbm1lbnRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YmF0Y2g6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzZXJ2aWNlLWVudmlyb25tZW50XFwvKD88c2VydmljZUVudmlyb25tZW50TmFtZT5bXjovP10rKSQvO1xuY29uc3QgU2VydmljZUpvYkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpiYXRjaDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNlcnZpY2Utam9iXFwvKD88am9iSWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBiYXRjaCByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXRjaFJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29tcHV0ZS1lbnZpcm9ubWVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb21wdXRlRW52aXJvbm1lbnQocHJvcHM6IEJhdGNoQ29tcHV0ZUVudmlyb25tZW50QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmJhdGNoOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNvbXB1dGUtZW52aXJvbm1lbnQvJHtwcm9wcy5jb21wdXRlRW52aXJvbm1lbnROYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb21wdXRlLWVudmlyb25tZW50IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb21wdXRlRW52aXJvbm1lbnRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29tcHV0ZUVudmlyb25tZW50QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbXB1dGUtZW52aXJvbm1lbnQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29tcHV0ZUVudmlyb25tZW50QXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBCYXRjaENvbXB1dGVFbnZpcm9ubWVudEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29tcHV0ZUVudmlyb25tZW50QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbXB1dGUtZW52aXJvbm1lbnQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29tcHV0ZUVudmlyb25tZW50TmFtZTogbWF0Y2guZ3JvdXBzIS5jb21wdXRlRW52aXJvbm1lbnROYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbnN1bWFibGUtcmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29uc3VtYWJsZVJlc291cmNlKHByb3BzOiBCYXRjaENvbnN1bWFibGVSZXNvdXJjZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiYXRjaDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjb25zdW1hYmxlLXJlc291cmNlLyR7cHJvcHMuY29uc3VtYWJsZVJlc291cmNlTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29uc3VtYWJsZS1yZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29uc3VtYWJsZVJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbnN1bWFibGVSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjb25zdW1hYmxlLXJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbnN1bWFibGVSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQmF0Y2hDb25zdW1hYmxlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbnN1bWFibGVSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25zdW1hYmxlLXJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvbnN1bWFibGVSZXNvdXJjZU5hbWU6IG1hdGNoLmdyb3VwcyEuY29uc3VtYWJsZVJlc291cmNlTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBqb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgam9iKHByb3BzOiBCYXRjaEpvYkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiYXRjaDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpqb2IvJHtwcm9wcy5qb2JJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgam9iIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRKb2JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSm9iQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGpvYiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VKb2JBcm4oYXJuOiBzdHJpbmcpOiBCYXRjaEpvYkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSm9iQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGpvYiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRqb2JJZDogbWF0Y2guZ3JvdXBzIS5qb2JJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBqb2ItZGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBqb2JEZWZpbml0aW9uKHByb3BzOiBCYXRjaEpvYkRlZmluaXRpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YmF0Y2g6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06am9iLWRlZmluaXRpb24vJHtwcm9wcy5qb2JEZWZpbml0aW9uTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgam9iLWRlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEpvYkRlZmluaXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSm9iRGVmaW5pdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBqb2ItZGVmaW5pdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VKb2JEZWZpbml0aW9uQXJuKGFybjogc3RyaW5nKTogQmF0Y2hKb2JEZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBKb2JEZWZpbml0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGpvYi1kZWZpbml0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGpvYkRlZmluaXRpb25OYW1lOiBtYXRjaC5ncm91cHMhLmpvYkRlZmluaXRpb25OYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGpvYi1kZWZpbml0aW9uLXJldmlzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGpvYkRlZmluaXRpb25SZXZpc2lvbihcblx0XHRwcm9wczogQmF0Y2hKb2JEZWZpbml0aW9uUmV2aXNpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiYXRjaDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpqb2ItZGVmaW5pdGlvbi8ke3Byb3BzLmpvYkRlZmluaXRpb25OYW1lfToke3Byb3BzLnJldmlzaW9ufWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBqb2ItZGVmaW5pdGlvbi1yZXZpc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSm9iRGVmaW5pdGlvblJldmlzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEpvYkRlZmluaXRpb25SZXZpc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBqb2ItZGVmaW5pdGlvbi1yZXZpc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VKb2JEZWZpbml0aW9uUmV2aXNpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEJhdGNoSm9iRGVmaW5pdGlvblJldmlzaW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBKb2JEZWZpbml0aW9uUmV2aXNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgam9iLWRlZmluaXRpb24tcmV2aXNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0am9iRGVmaW5pdGlvbk5hbWU6IG1hdGNoLmdyb3VwcyEuam9iRGVmaW5pdGlvbk5hbWUsXG5cdFx0XHRyZXZpc2lvbjogbWF0Y2guZ3JvdXBzIS5yZXZpc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBqb2ItcXVldWUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgam9iUXVldWUocHJvcHM6IEJhdGNoSm9iUXVldWVBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YmF0Y2g6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06am9iLXF1ZXVlLyR7cHJvcHMuam9iUXVldWVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBqb2ItcXVldWUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEpvYlF1ZXVlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEpvYlF1ZXVlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGpvYi1xdWV1ZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VKb2JRdWV1ZUFybihhcm46IHN0cmluZyk6IEJhdGNoSm9iUXVldWVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEpvYlF1ZXVlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGpvYi1xdWV1ZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRqb2JRdWV1ZU5hbWU6IG1hdGNoLmdyb3VwcyEuam9iUXVldWVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHF1b3RhLXNoYXJlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHF1b3RhU2hhcmUocHJvcHM6IEJhdGNoUXVvdGFTaGFyZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiYXRjaDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpqb2ItcXVldWUvJHtwcm9wcy5qb2JRdWV1ZU5hbWV9L3F1b3RhLXNoYXJlLyR7cHJvcHMucXVvdGFTaGFyZU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHF1b3RhLXNoYXJlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRRdW90YVNoYXJlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFF1b3RhU2hhcmVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgcXVvdGEtc2hhcmUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUXVvdGFTaGFyZUFybihhcm46IHN0cmluZyk6IEJhdGNoUXVvdGFTaGFyZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUXVvdGFTaGFyZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBxdW90YS1zaGFyZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRqb2JRdWV1ZU5hbWU6IG1hdGNoLmdyb3VwcyEuam9iUXVldWVOYW1lLFxuXHRcdFx0cXVvdGFTaGFyZU5hbWU6IG1hdGNoLmdyb3VwcyEucXVvdGFTaGFyZU5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc2NoZWR1bGluZy1wb2xpY3kgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc2NoZWR1bGluZ1BvbGljeShwcm9wczogQmF0Y2hTY2hlZHVsaW5nUG9saWN5QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmJhdGNoOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnNjaGVkdWxpbmctcG9saWN5LyR7cHJvcHMuc2NoZWR1bGluZ1BvbGljeU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHNjaGVkdWxpbmctcG9saWN5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTY2hlZHVsaW5nUG9saWN5QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNjaGVkdWxpbmdQb2xpY3lBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgc2NoZWR1bGluZy1wb2xpY3kgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU2NoZWR1bGluZ1BvbGljeUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQmF0Y2hTY2hlZHVsaW5nUG9saWN5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTY2hlZHVsaW5nUG9saWN5QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNjaGVkdWxpbmctcG9saWN5IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNjaGVkdWxpbmdQb2xpY3lOYW1lOiBtYXRjaC5ncm91cHMhLnNjaGVkdWxpbmdQb2xpY3lOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHNlcnZpY2UtZW52aXJvbm1lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc2VydmljZUVudmlyb25tZW50KHByb3BzOiBCYXRjaFNlcnZpY2VFbnZpcm9ubWVudEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiYXRjaDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzZXJ2aWNlLWVudmlyb25tZW50LyR7cHJvcHMuc2VydmljZUVudmlyb25tZW50TmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgc2VydmljZS1lbnZpcm9ubWVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU2VydmljZUVudmlyb25tZW50QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNlcnZpY2VFbnZpcm9ubWVudEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzZXJ2aWNlLWVudmlyb25tZW50IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNlcnZpY2VFbnZpcm9ubWVudEFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQmF0Y2hTZXJ2aWNlRW52aXJvbm1lbnRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFNlcnZpY2VFbnZpcm9ubWVudEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzZXJ2aWNlLWVudmlyb25tZW50IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNlcnZpY2VFbnZpcm9ubWVudE5hbWU6IG1hdGNoLmdyb3VwcyEuc2VydmljZUVudmlyb25tZW50TmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBzZXJ2aWNlLWpvYiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzZXJ2aWNlSm9iKHByb3BzOiBCYXRjaFNlcnZpY2VKb2JBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YmF0Y2g6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06c2VydmljZS1qb2IvJHtwcm9wcy5qb2JJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgc2VydmljZS1qb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFNlcnZpY2VKb2JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gU2VydmljZUpvYkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzZXJ2aWNlLWpvYiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTZXJ2aWNlSm9iQXJuKGFybjogc3RyaW5nKTogQmF0Y2hTZXJ2aWNlSm9iQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTZXJ2aWNlSm9iQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNlcnZpY2Utam9iIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGpvYklkOiBtYXRjaC5ncm91cHMhLmpvYklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGJhdGNoLlxuICovXG5leHBvcnQgY2xhc3MgQmF0Y2hPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsSm9iOiBzdHJpbmdbXSA9IFtcImJhdGNoOkNhbmNlbEpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ29tcHV0ZUVudmlyb25tZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29tcHV0ZUVudmlyb25tZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkNyZWF0ZUNvbXB1dGVFbnZpcm9ubWVudFwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJiYXRjaDpTZXRDYXBhY2l0eVRhZ3NcIixcblx0XHRcImJhdGNoOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNvbnN1bWFibGVSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbnN1bWFibGVSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpDcmVhdGVDb25zdW1hYmxlUmVzb3VyY2VcIixcblx0XHRcImJhdGNoOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUpvYlF1ZXVlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSm9iUXVldWU6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6Q3JlYXRlSm9iUXVldWVcIixcblx0XHRcImJhdGNoOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVF1b3RhU2hhcmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVRdW90YVNoYXJlOiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkNyZWF0ZVF1b3RhU2hhcmVcIixcblx0XHRcImJhdGNoOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVNjaGVkdWxpbmdQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTY2hlZHVsaW5nUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkNyZWF0ZVNjaGVkdWxpbmdQb2xpY3lcIixcblx0XHRcImJhdGNoOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVNlcnZpY2VFbnZpcm9ubWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNlcnZpY2VFbnZpcm9ubWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpDcmVhdGVTZXJ2aWNlRW52aXJvbm1lbnRcIixcblx0XHRcImJhdGNoOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNvbXB1dGVFbnZpcm9ubWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbXB1dGVFbnZpcm9ubWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpEZWxldGVDb21wdXRlRW52aXJvbm1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29uc3VtYWJsZVJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29uc3VtYWJsZVJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkRlbGV0ZUNvbnN1bWFibGVSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVKb2JRdWV1ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUpvYlF1ZXVlOiBzdHJpbmdbXSA9IFtcImJhdGNoOkRlbGV0ZUpvYlF1ZXVlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVRdW90YVNoYXJlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUXVvdGFTaGFyZTogc3RyaW5nW10gPSBbXCJiYXRjaDpEZWxldGVRdW90YVNoYXJlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVTY2hlZHVsaW5nUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU2NoZWR1bGluZ1BvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpEZWxldGVTY2hlZHVsaW5nUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVNlcnZpY2VFbnZpcm9ubWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNlcnZpY2VFbnZpcm9ubWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpEZWxldGVTZXJ2aWNlRW52aXJvbm1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVyZWdpc3RlckpvYkRlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVySm9iRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpEZXJlZ2lzdGVySm9iRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUNvbXB1dGVFbnZpcm9ubWVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNvbXB1dGVFbnZpcm9ubWVudHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6RGVzY3JpYmVDb21wdXRlRW52aXJvbm1lbnRzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ29uc3VtYWJsZVJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDb25zdW1hYmxlUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6RGVzY3JpYmVDb25zdW1hYmxlUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVKb2JEZWZpbml0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9iRGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6RGVzY3JpYmVKb2JEZWZpbml0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUpvYlF1ZXVlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9iUXVldWVzOiBzdHJpbmdbXSA9IFtcImJhdGNoOkRlc2NyaWJlSm9iUXVldWVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUpvYnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUpvYnM6IHN0cmluZ1tdID0gW1wiYmF0Y2g6RGVzY3JpYmVKb2JzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVF1b3RhU2hhcmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVF1b3RhU2hhcmU6IHN0cmluZ1tdID0gW1wiYmF0Y2g6RGVzY3JpYmVRdW90YVNoYXJlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVNjaGVkdWxpbmdQb2xpY2llcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU2NoZWR1bGluZ1BvbGljaWVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkRlc2NyaWJlU2NoZWR1bGluZ1BvbGljaWVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU2VydmljZUVudmlyb25tZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU2VydmljZUVudmlyb25tZW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpEZXNjcmliZVNlcnZpY2VFbnZpcm9ubWVudHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTZXJ2aWNlSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTZXJ2aWNlSm9iOiBzdHJpbmdbXSA9IFtcImJhdGNoOkRlc2NyaWJlU2VydmljZUpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Sm9iUXVldWVTbmFwc2hvdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Sm9iUXVldWVTbmFwc2hvdDogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpHZXRKb2JRdWV1ZVNuYXBzaG90XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb25zdW1hYmxlUmVzb3VyY2VzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbnN1bWFibGVSZXNvdXJjZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6TGlzdENvbnN1bWFibGVSZXNvdXJjZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEpvYnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Sm9iczogc3RyaW5nW10gPSBbXCJiYXRjaDpMaXN0Sm9ic1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEpvYnNCeUNvbnN1bWFibGVSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RKb2JzQnlDb25zdW1hYmxlUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6TGlzdEpvYnNCeUNvbnN1bWFibGVSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UXVvdGFTaGFyZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UXVvdGFTaGFyZXM6IHN0cmluZ1tdID0gW1wiYmF0Y2g6TGlzdFF1b3RhU2hhcmVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U2NoZWR1bGluZ1BvbGljaWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNjaGVkdWxpbmdQb2xpY2llczogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpMaXN0U2NoZWR1bGluZ1BvbGljaWVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTZXJ2aWNlSm9icyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZXJ2aWNlSm9iczogc3RyaW5nW10gPSBbXCJiYXRjaDpMaXN0U2VydmljZUpvYnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcImJhdGNoOkxpc3RUYWdzRm9yUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlZ2lzdGVySm9iRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVySm9iRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImJhdGNoOlJlZ2lzdGVySm9iRGVmaW5pdGlvblwiLFxuXHRcdFwiYmF0Y2g6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3VibWl0Sm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3VibWl0Sm9iOiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOlN1Ym1pdEpvYlwiLFxuXHRcdFwiYmF0Y2g6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3VibWl0U2VydmljZUpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1Ym1pdFNlcnZpY2VKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJiYXRjaDpTdWJtaXRTZXJ2aWNlSm9iXCIsXG5cdFx0XCJiYXRjaDpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImJhdGNoOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUZXJtaW5hdGVKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVKb2I6IHN0cmluZ1tdID0gW1wiYmF0Y2g6VGVybWluYXRlSm9iXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUZXJtaW5hdGVTZXJ2aWNlSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVybWluYXRlU2VydmljZUpvYjogc3RyaW5nW10gPSBbXCJiYXRjaDpUZXJtaW5hdGVTZXJ2aWNlSm9iXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJiYXRjaDpVbnRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDb21wdXRlRW52aXJvbm1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb21wdXRlRW52aXJvbm1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJiYXRjaDpVcGRhdGVDb21wdXRlRW52aXJvbm1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQ29uc3VtYWJsZVJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29uc3VtYWJsZVJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOlVwZGF0ZUNvbnN1bWFibGVSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVKb2JRdWV1ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUpvYlF1ZXVlOiBzdHJpbmdbXSA9IFtcImJhdGNoOlVwZGF0ZUpvYlF1ZXVlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVRdW90YVNoYXJlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUXVvdGFTaGFyZTogc3RyaW5nW10gPSBbXCJiYXRjaDpVcGRhdGVRdW90YVNoYXJlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTY2hlZHVsaW5nUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU2NoZWR1bGluZ1BvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpVcGRhdGVTY2hlZHVsaW5nUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVNlcnZpY2VFbnZpcm9ubWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVNlcnZpY2VFbnZpcm9ubWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpVcGRhdGVTZXJ2aWNlRW52aXJvbm1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU2VydmljZUpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVNlcnZpY2VKb2I6IHN0cmluZ1tdID0gW1wiYmF0Y2g6VXBkYXRlU2VydmljZUpvYlwiXTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGJhdGNoLlxuICovXG5leHBvcnQgY2xhc3MgQmF0Y2hDb25kaXRpb25zIHtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNvbXB1dGVFbnZpcm9ubWVudCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb21wdXRlRW52aXJvbm1lbnRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNvbnN1bWFibGVSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25zdW1hYmxlUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUpvYlF1ZXVlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUpvYlF1ZXVlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVRdW90YVNoYXJlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVF1b3RhU2hhcmVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVNjaGVkdWxpbmdQb2xpY3kgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2NoZWR1bGluZ1BvbGljeUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlU2VydmljZUVudmlyb25tZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNlcnZpY2VFbnZpcm9ubWVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUmVnaXN0ZXJKb2JEZWZpbml0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVySm9iRGVmaW5pdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFwiYmF0Y2g6QVdTTG9nc0NyZWF0ZUdyb3VwXCIsXG5cdFx0XCJiYXRjaDpBV1NMb2dzR3JvdXBcIixcblx0XHRcImJhdGNoOkFXU0xvZ3NSZWdpb25cIixcblx0XHRcImJhdGNoOkFXU0xvZ3NTdHJlYW1QcmVmaXhcIixcblx0XHRcImJhdGNoOkVLU0ltYWdlXCIsXG5cdFx0XCJiYXRjaDpFS1NOYW1lc3BhY2VcIixcblx0XHRcImJhdGNoOkVLU1ByaXZpbGVnZWRcIixcblx0XHRcImJhdGNoOkVLU1J1bkFzR3JvdXBcIixcblx0XHRcImJhdGNoOkVLU1J1bkFzVXNlclwiLFxuXHRcdFwiYmF0Y2g6RUtTU2VydmljZUFjY291bnROYW1lXCIsXG5cdFx0XCJiYXRjaDpJbWFnZVwiLFxuXHRcdFwiYmF0Y2g6TG9nRHJpdmVyXCIsXG5cdFx0XCJiYXRjaDpQcml2aWxlZ2VkXCIsXG5cdFx0XCJiYXRjaDpVc2VyXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTZXRDYXBhY2l0eVRhZ3MgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uU2V0Q2FwYWNpdHlUYWdzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdWJtaXRKb2IgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3VibWl0Sm9iQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdWJtaXRTZXJ2aWNlSm9iIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1Ym1pdFNlcnZpY2VKb2JDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImJhdGNoOlNjaGVkdWxpbmdQcmlvcml0eVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVTZXJ2aWNlSm9iIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVNlcnZpY2VKb2JDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOlNjaGVkdWxpbmdQcmlvcml0eVwiLFxuXHRdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOkFXU0xvZ3NDcmVhdGVHcm91cCAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19MT0dTX0NSRUFURV9HUk9VUCA9IFwiYmF0Y2g6QVdTTG9nc0NyZWF0ZUdyb3VwXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpBV1NMb2dzR3JvdXAgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19MT0dTX0dST1VQID0gXCJiYXRjaDpBV1NMb2dzR3JvdXBcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOkFXU0xvZ3NSZWdpb24gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19MT0dTX1JFR0lPTiA9IFwiYmF0Y2g6QVdTTG9nc1JlZ2lvblwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYmF0Y2g6QVdTTG9nc1N0cmVhbVByZWZpeCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX0xPR1NfU1RSRUFNX1BSRUZJWCA9IFwiYmF0Y2g6QVdTTG9nc1N0cmVhbVByZWZpeFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYmF0Y2g6RUtTSW1hZ2UgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVLU19JTUFHRSA9IFwiYmF0Y2g6RUtTSW1hZ2VcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOkVLU05hbWVzcGFjZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRUtTX05BTUVTUEFDRSA9IFwiYmF0Y2g6RUtTTmFtZXNwYWNlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpFS1NQcml2aWxlZ2VkIChCb29sKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRUtTX1BSSVZJTEVHRUQgPSBcImJhdGNoOkVLU1ByaXZpbGVnZWRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOkVLU1J1bkFzR3JvdXAgKE51bWVyaWMpICovXG5cdHN0YXRpYyByZWFkb25seSBFS1NfUlVOX0FTX0dST1VQID0gXCJiYXRjaDpFS1NSdW5Bc0dyb3VwXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpFS1NSdW5Bc1VzZXIgKE51bWVyaWMpICovXG5cdHN0YXRpYyByZWFkb25seSBFS1NfUlVOX0FTX1VTRVIgPSBcImJhdGNoOkVLU1J1bkFzVXNlclwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYmF0Y2g6RUtTU2VydmljZUFjY291bnROYW1lIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBFS1NfU0VSVklDRV9BQ0NPVU5UX05BTUUgPSBcImJhdGNoOkVLU1NlcnZpY2VBY2NvdW50TmFtZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYmF0Y2g6SW1hZ2UgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IElNQUdFID0gXCJiYXRjaDpJbWFnZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYmF0Y2g6TG9nRHJpdmVyIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBMT0dfRFJJVkVSID0gXCJiYXRjaDpMb2dEcml2ZXJcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOlByaXZpbGVnZWQgKEJvb2wpICovXG5cdHN0YXRpYyByZWFkb25seSBQUklWSUxFR0VEID0gXCJiYXRjaDpQcml2aWxlZ2VkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpTY2hlZHVsaW5nUHJpb3JpdHkgKE51bWVyaWMpICovXG5cdHN0YXRpYyByZWFkb25seSBTQ0hFRFVMSU5HX1BSSU9SSVRZID0gXCJiYXRjaDpTY2hlZHVsaW5nUHJpb3JpdHlcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOlNoYXJlSWRlbnRpZmllciAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0hBUkVfSURFTlRJRklFUiA9IFwiYmF0Y2g6U2hhcmVJZGVudGlmaWVyXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpVc2VyIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBVU0VSID0gXCJiYXRjaDpVc2VyXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOkFXU0xvZ3NDcmVhdGVHcm91cGAuXG5cdCAqL1xuXHRzdGF0aWMgYXdzTG9nc0NyZWF0ZUdyb3VwKFxuXHRcdHZhbHVlOiBib29sZWFuLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4ge1xuXHRcdHJldHVybiB7IEJvb2w6IHsgXCJiYXRjaDpBV1NMb2dzQ3JlYXRlR3JvdXBcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOkFXU0xvZ3NHcm91cGAuXG5cdCAqL1xuXHRzdGF0aWMgYXdzTG9nc0dyb3VwKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYmF0Y2g6QVdTTG9nc0dyb3VwXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpBV1NMb2dzUmVnaW9uYC5cblx0ICovXG5cdHN0YXRpYyBhd3NMb2dzUmVnaW9uKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYmF0Y2g6QVdTTG9nc1JlZ2lvblwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYmF0Y2g6QVdTTG9nc1N0cmVhbVByZWZpeGAuXG5cdCAqL1xuXHRzdGF0aWMgYXdzTG9nc1N0cmVhbVByZWZpeChcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYmF0Y2g6QVdTTG9nc1N0cmVhbVByZWZpeFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYmF0Y2g6RUtTSW1hZ2VgLlxuXHQgKi9cblx0c3RhdGljIGVrc0ltYWdlKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYmF0Y2g6RUtTSW1hZ2VcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOkVLU05hbWVzcGFjZWAuXG5cdCAqL1xuXHRzdGF0aWMgZWtzTmFtZXNwYWNlKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYmF0Y2g6RUtTTmFtZXNwYWNlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpFS1NQcml2aWxlZ2VkYC5cblx0ICovXG5cdHN0YXRpYyBla3NQcml2aWxlZ2VkKFxuXHRcdHZhbHVlOiBib29sZWFuLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4ge1xuXHRcdHJldHVybiB7IEJvb2w6IHsgXCJiYXRjaDpFS1NQcml2aWxlZ2VkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpFS1NSdW5Bc0dyb3VwYC5cblx0ICovXG5cdHN0YXRpYyBla3NSdW5Bc0dyb3VwKHZhbHVlOiBudW1iZXIpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PiB7XG5cdFx0cmV0dXJuIHsgTnVtZXJpY0VxdWFsczogeyBcImJhdGNoOkVLU1J1bkFzR3JvdXBcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOkVLU1J1bkFzVXNlcmAuXG5cdCAqL1xuXHRzdGF0aWMgZWtzUnVuQXNVc2VyKHZhbHVlOiBudW1iZXIpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PiB7XG5cdFx0cmV0dXJuIHsgTnVtZXJpY0VxdWFsczogeyBcImJhdGNoOkVLU1J1bkFzVXNlclwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYmF0Y2g6RUtTU2VydmljZUFjY291bnROYW1lYC5cblx0ICovXG5cdHN0YXRpYyBla3NTZXJ2aWNlQWNjb3VudE5hbWUoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImJhdGNoOkVLU1NlcnZpY2VBY2NvdW50TmFtZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYmF0Y2g6SW1hZ2VgLlxuXHQgKi9cblx0c3RhdGljIGltYWdlKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYmF0Y2g6SW1hZ2VcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOkxvZ0RyaXZlcmAuXG5cdCAqL1xuXHRzdGF0aWMgbG9nRHJpdmVyKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYmF0Y2g6TG9nRHJpdmVyXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpQcml2aWxlZ2VkYC5cblx0ICovXG5cdHN0YXRpYyBwcml2aWxlZ2VkKHZhbHVlOiBib29sZWFuKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiYmF0Y2g6UHJpdmlsZWdlZFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYmF0Y2g6U2NoZWR1bGluZ1ByaW9yaXR5YC5cblx0ICovXG5cdHN0YXRpYyBzY2hlZHVsaW5nUHJpb3JpdHkoXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuXHRcdHJldHVybiB7IE51bWVyaWNFcXVhbHM6IHsgXCJiYXRjaDpTY2hlZHVsaW5nUHJpb3JpdHlcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOlNoYXJlSWRlbnRpZmllcmAuXG5cdCAqL1xuXHRzdGF0aWMgc2hhcmVJZGVudGlmaWVyKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJiYXRjaDpTaGFyZUlkZW50aWZpZXJcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOlVzZXJgLlxuXHQgKi9cblx0c3RhdGljIHVzZXIodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJiYXRjaDpVc2VyXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
|
|
885
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3NlcnZpY2VzL2JhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBQ2hGLDZDQUE2QztBQUM3QywwREFBMEQ7QUFDMUQsNENBQTRDO0FBQzVDLG9EQUFvRDtBQUNwRCxnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSCxNQUFhLFlBQVk7O0FBQXpCLG9DQWtLQzs7O0FBaktBLDhCQUE4QjtBQUNkLDJCQUFjLEdBQUcsT0FBTyxDQUFDO0FBRXpDLDhCQUE4QjtBQUNkLHNCQUFTLEdBQUcsaUJBQWlCLENBQUM7QUFDOUMsNkNBQTZDO0FBQzdCLHFDQUF3QixHQUFHLGdDQUFnQyxDQUFDO0FBQzVFLDZDQUE2QztBQUM3QixxQ0FBd0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM1RSxtQ0FBbUM7QUFDbkIsMkJBQWMsR0FBRyxzQkFBc0IsQ0FBQztBQUN4RCxxQ0FBcUM7QUFDckIsNkJBQWdCLEdBQUcsd0JBQXdCLENBQUM7QUFDNUQsMkNBQTJDO0FBQzNCLG1DQUFzQixHQUFHLDhCQUE4QixDQUFDO0FBQ3hFLDZDQUE2QztBQUM3QixxQ0FBd0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM1RSw2Q0FBNkM7QUFDN0IscUNBQXdCLEdBQUcsZ0NBQWdDLENBQUM7QUFDNUUsNkNBQTZDO0FBQzdCLHFDQUF3QixHQUFHLGdDQUFnQyxDQUFDO0FBQzVFLG1DQUFtQztBQUNuQiwyQkFBYyxHQUFHLHNCQUFzQixDQUFDO0FBQ3hELHFDQUFxQztBQUNyQiw2QkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQztBQUM1RCwyQ0FBMkM7QUFDM0IsbUNBQXNCLEdBQUcsOEJBQThCLENBQUM7QUFDeEUsNkNBQTZDO0FBQzdCLHFDQUF3QixHQUFHLGdDQUFnQyxDQUFDO0FBQzVFLDRDQUE0QztBQUM1QixvQ0FBdUIsR0FBRywrQkFBK0IsQ0FBQztBQUMxRSwrQ0FBK0M7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cUNBQXFCLEdBQUcsMEJBQTBCLENBQUM7QUFDbkUsaURBQWlEO0FBQ2pDLDhCQUFjLEdBQUcsb0JBQW9CLENBQUM7QUFDdEQsa0RBQWtEO0FBQ2xDLCtCQUFlLEdBQUcscUJBQXFCLENBQUM7QUFDeEQsd0RBQXdEO0FBQ3hDLHNDQUFzQixHQUFHLDJCQUEyQixDQUFDO0FBQ3JFLDZDQUE2QztBQUM3Qix5QkFBUyxHQUFHLGdCQUFnQixDQUFDO0FBQzdDLGlEQUFpRDtBQUNqQyw2QkFBYSxHQUFHLG9CQUFvQixDQUFDO0FBQ3JELGdEQUFnRDtBQUNoQyw4QkFBYyxHQUFHLHFCQUFxQixDQUFDO0FBQ3ZELG1EQUFtRDtBQUNuQyxnQ0FBZ0IsR0FBRyxxQkFBcUIsQ0FBQztBQUN6RCxrREFBa0Q7QUFDbEMsK0JBQWUsR0FBRyxvQkFBb0IsQ0FBQztBQUN2RCwwREFBMEQ7QUFDMUMsd0NBQXdCLEdBQUcsNkJBQTZCLENBQUM7QUFDekUsMENBQTBDO0FBQzFCLHFCQUFLLEdBQUcsYUFBYSxDQUFDO0FBQ3RDLDhDQUE4QztBQUM5QiwwQkFBVSxHQUFHLGlCQUFpQixDQUFDO0FBQy9DLDZDQUE2QztBQUM3QiwwQkFBVSxHQUFHLGtCQUFrQixDQUFDO0FBQ2hELHdEQUF3RDtBQUN4QyxtQ0FBbUIsR0FBRywwQkFBMEIsQ0FBQztBQUNqRSxvREFBb0Q7QUFDcEMsZ0NBQWdCLEdBQUcsdUJBQXVCLENBQUM7QUFDM0QseUNBQXlDO0FBQ3pCLG9CQUFJLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvYmF0Y2guanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGJhdGNoIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXRjaEFjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJiYXRjaFwiO1xuXG5cdC8qKiBbV3JpdGVdIGJhdGNoOkNhbmNlbEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsSm9iID0gXCJiYXRjaDpDYW5jZWxKb2JcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6Q3JlYXRlQ29tcHV0ZUVudmlyb25tZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb21wdXRlRW52aXJvbm1lbnQgPSBcImJhdGNoOkNyZWF0ZUNvbXB1dGVFbnZpcm9ubWVudFwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpDcmVhdGVDb25zdW1hYmxlUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbnN1bWFibGVSZXNvdXJjZSA9IFwiYmF0Y2g6Q3JlYXRlQ29uc3VtYWJsZVJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOkNyZWF0ZUpvYlF1ZXVlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVKb2JRdWV1ZSA9IFwiYmF0Y2g6Q3JlYXRlSm9iUXVldWVcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6Q3JlYXRlUXVvdGFTaGFyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUXVvdGFTaGFyZSA9IFwiYmF0Y2g6Q3JlYXRlUXVvdGFTaGFyZVwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpDcmVhdGVTY2hlZHVsaW5nUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTY2hlZHVsaW5nUG9saWN5ID0gXCJiYXRjaDpDcmVhdGVTY2hlZHVsaW5nUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOkNyZWF0ZVNlcnZpY2VFbnZpcm9ubWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2VydmljZUVudmlyb25tZW50ID0gXCJiYXRjaDpDcmVhdGVTZXJ2aWNlRW52aXJvbm1lbnRcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6RGVsZXRlQ29tcHV0ZUVudmlyb25tZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb21wdXRlRW52aXJvbm1lbnQgPSBcImJhdGNoOkRlbGV0ZUNvbXB1dGVFbnZpcm9ubWVudFwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpEZWxldGVDb25zdW1hYmxlUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbnN1bWFibGVSZXNvdXJjZSA9IFwiYmF0Y2g6RGVsZXRlQ29uc3VtYWJsZVJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOkRlbGV0ZUpvYlF1ZXVlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVKb2JRdWV1ZSA9IFwiYmF0Y2g6RGVsZXRlSm9iUXVldWVcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6RGVsZXRlUXVvdGFTaGFyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUXVvdGFTaGFyZSA9IFwiYmF0Y2g6RGVsZXRlUXVvdGFTaGFyZVwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpEZWxldGVTY2hlZHVsaW5nUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTY2hlZHVsaW5nUG9saWN5ID0gXCJiYXRjaDpEZWxldGVTY2hlZHVsaW5nUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOkRlbGV0ZVNlcnZpY2VFbnZpcm9ubWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU2VydmljZUVudmlyb25tZW50ID0gXCJiYXRjaDpEZWxldGVTZXJ2aWNlRW52aXJvbm1lbnRcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6RGVyZWdpc3RlckpvYkRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlcmVnaXN0ZXJKb2JEZWZpbml0aW9uID0gXCJiYXRjaDpEZXJlZ2lzdGVySm9iRGVmaW5pdGlvblwiO1xuXHQvKiogW1JlYWRdIGJhdGNoOkRlc2NyaWJlQ29tcHV0ZUVudmlyb25tZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDb21wdXRlRW52aXJvbm1lbnRzID1cblx0XHRcImJhdGNoOkRlc2NyaWJlQ29tcHV0ZUVudmlyb25tZW50c1wiO1xuXHQvKiogW1JlYWRdIGJhdGNoOkRlc2NyaWJlQ29uc3VtYWJsZVJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNvbnN1bWFibGVSZXNvdXJjZSA9XG5cdFx0XCJiYXRjaDpEZXNjcmliZUNvbnN1bWFibGVSZXNvdXJjZVwiO1xuXHQvKiogW1JlYWRdIGJhdGNoOkRlc2NyaWJlSm9iRGVmaW5pdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9iRGVmaW5pdGlvbnMgPSBcImJhdGNoOkRlc2NyaWJlSm9iRGVmaW5pdGlvbnNcIjtcblx0LyoqIFtSZWFkXSBiYXRjaDpEZXNjcmliZUpvYlF1ZXVlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JRdWV1ZXMgPSBcImJhdGNoOkRlc2NyaWJlSm9iUXVldWVzXCI7XG5cdC8qKiBbUmVhZF0gYmF0Y2g6RGVzY3JpYmVKb2JzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUpvYnMgPSBcImJhdGNoOkRlc2NyaWJlSm9ic1wiO1xuXHQvKiogW1JlYWRdIGJhdGNoOkRlc2NyaWJlUXVvdGFTaGFyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVRdW90YVNoYXJlID0gXCJiYXRjaDpEZXNjcmliZVF1b3RhU2hhcmVcIjtcblx0LyoqIFtSZWFkXSBiYXRjaDpEZXNjcmliZVNjaGVkdWxpbmdQb2xpY2llcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTY2hlZHVsaW5nUG9saWNpZXMgPVxuXHRcdFwiYmF0Y2g6RGVzY3JpYmVTY2hlZHVsaW5nUG9saWNpZXNcIjtcblx0LyoqIFtSZWFkXSBiYXRjaDpEZXNjcmliZVNlcnZpY2VFbnZpcm9ubWVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU2VydmljZUVudmlyb25tZW50cyA9XG5cdFx0XCJiYXRjaDpEZXNjcmliZVNlcnZpY2VFbnZpcm9ubWVudHNcIjtcblx0LyoqIFtSZWFkXSBiYXRjaDpEZXNjcmliZVNlcnZpY2VKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU2VydmljZUpvYiA9IFwiYmF0Y2g6RGVzY3JpYmVTZXJ2aWNlSm9iXCI7XG5cdC8qKiBbUmVhZF0gYmF0Y2g6R2V0Sm9iUXVldWVTbmFwc2hvdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Sm9iUXVldWVTbmFwc2hvdCA9IFwiYmF0Y2g6R2V0Sm9iUXVldWVTbmFwc2hvdFwiO1xuXHQvKiogW0xpc3RdIGJhdGNoOkxpc3RDb25zdW1hYmxlUmVzb3VyY2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29uc3VtYWJsZVJlc291cmNlcyA9IFwiYmF0Y2g6TGlzdENvbnN1bWFibGVSZXNvdXJjZXNcIjtcblx0LyoqIFtMaXN0XSBiYXRjaDpMaXN0Sm9icyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEpvYnMgPSBcImJhdGNoOkxpc3RKb2JzXCI7XG5cdC8qKiBbTGlzdF0gYmF0Y2g6TGlzdEpvYnNCeUNvbnN1bWFibGVSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEpvYnNCeUNvbnN1bWFibGVSZXNvdXJjZSA9XG5cdFx0XCJiYXRjaDpMaXN0Sm9ic0J5Q29uc3VtYWJsZVJlc291cmNlXCI7XG5cdC8qKiBbTGlzdF0gYmF0Y2g6TGlzdFF1b3RhU2hhcmVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UXVvdGFTaGFyZXMgPSBcImJhdGNoOkxpc3RRdW90YVNoYXJlc1wiO1xuXHQvKiogW1JlYWRdIGJhdGNoOkxpc3RTY2hlZHVsaW5nUG9saWNpZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTY2hlZHVsaW5nUG9saWNpZXMgPSBcImJhdGNoOkxpc3RTY2hlZHVsaW5nUG9saWNpZXNcIjtcblx0LyoqIFtMaXN0XSBiYXRjaDpMaXN0U2VydmljZUpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZXJ2aWNlSm9icyA9IFwiYmF0Y2g6TGlzdFNlcnZpY2VKb2JzXCI7XG5cdC8qKiBbUmVhZF0gYmF0Y2g6TGlzdFRhZ3NGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZSA9IFwiYmF0Y2g6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpSZWdpc3RlckpvYkRlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVySm9iRGVmaW5pdGlvbiA9IFwiYmF0Y2g6UmVnaXN0ZXJKb2JEZWZpbml0aW9uXCI7XG5cdC8qKiBbVGFnZ2luZ10gYmF0Y2g6U2V0Q2FwYWNpdHlUYWdzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25TZXRDYXBhY2l0eVRhZ3MgPSBcImJhdGNoOlNldENhcGFjaXR5VGFnc1wiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpTdWJtaXRKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1Ym1pdEpvYiA9IFwiYmF0Y2g6U3VibWl0Sm9iXCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOlN1Ym1pdFNlcnZpY2VKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1Ym1pdFNlcnZpY2VKb2IgPSBcImJhdGNoOlN1Ym1pdFNlcnZpY2VKb2JcIjtcblx0LyoqIFtUYWdnaW5nXSBiYXRjaDpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImJhdGNoOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOlRlcm1pbmF0ZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVybWluYXRlSm9iID0gXCJiYXRjaDpUZXJtaW5hdGVKb2JcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6VGVybWluYXRlU2VydmljZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVybWluYXRlU2VydmljZUpvYiA9IFwiYmF0Y2g6VGVybWluYXRlU2VydmljZUpvYlwiO1xuXHQvKiogW1RhZ2dpbmddIGJhdGNoOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImJhdGNoOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6VXBkYXRlQ29tcHV0ZUVudmlyb25tZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb21wdXRlRW52aXJvbm1lbnQgPSBcImJhdGNoOlVwZGF0ZUNvbXB1dGVFbnZpcm9ubWVudFwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpVcGRhdGVDb25zdW1hYmxlUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbnN1bWFibGVSZXNvdXJjZSA9IFwiYmF0Y2g6VXBkYXRlQ29uc3VtYWJsZVJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOlVwZGF0ZUpvYlF1ZXVlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVKb2JRdWV1ZSA9IFwiYmF0Y2g6VXBkYXRlSm9iUXVldWVcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6VXBkYXRlUXVvdGFTaGFyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUXVvdGFTaGFyZSA9IFwiYmF0Y2g6VXBkYXRlUXVvdGFTaGFyZVwiO1xuXHQvKiogW1dyaXRlXSBiYXRjaDpVcGRhdGVTY2hlZHVsaW5nUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTY2hlZHVsaW5nUG9saWN5ID0gXCJiYXRjaDpVcGRhdGVTY2hlZHVsaW5nUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGJhdGNoOlVwZGF0ZVNlcnZpY2VFbnZpcm9ubWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU2VydmljZUVudmlyb25tZW50ID0gXCJiYXRjaDpVcGRhdGVTZXJ2aWNlRW52aXJvbm1lbnRcIjtcblx0LyoqIFtXcml0ZV0gYmF0Y2g6VXBkYXRlU2VydmljZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU2VydmljZUpvYiA9IFwiYmF0Y2g6VXBkYXRlU2VydmljZUpvYlwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEJhdGNoQWN0aW9ucy5EZXNjcmliZUNvbXB1dGVFbnZpcm9ubWVudHMsXG5cdFx0QmF0Y2hBY3Rpb25zLkRlc2NyaWJlQ29uc3VtYWJsZVJlc291cmNlLFxuXHRcdEJhdGNoQWN0aW9ucy5EZXNjcmliZUpvYkRlZmluaXRpb25zLFxuXHRcdEJhdGNoQWN0aW9ucy5EZXNjcmliZUpvYlF1ZXVlcyxcblx0XHRCYXRjaEFjdGlvbnMuRGVzY3JpYmVKb2JzLFxuXHRcdEJhdGNoQWN0aW9ucy5EZXNjcmliZVF1b3RhU2hhcmUsXG5cdFx0QmF0Y2hBY3Rpb25zLkRlc2NyaWJlU2NoZWR1bGluZ1BvbGljaWVzLFxuXHRcdEJhdGNoQWN0aW9ucy5EZXNjcmliZVNlcnZpY2VFbnZpcm9ubWVudHMsXG5cdFx0QmF0Y2hBY3Rpb25zLkRlc2NyaWJlU2VydmljZUpvYixcblx0XHRCYXRjaEFjdGlvbnMuYWN0aW9uR2V0Sm9iUXVldWVTbmFwc2hvdCxcblx0XHRCYXRjaEFjdGlvbnMuTGlzdFNjaGVkdWxpbmdQb2xpY2llcyxcblx0XHRCYXRjaEFjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRCYXRjaEFjdGlvbnMuQ2FuY2VsSm9iLFxuXHRcdEJhdGNoQWN0aW9ucy5DcmVhdGVDb21wdXRlRW52aXJvbm1lbnQsXG5cdFx0QmF0Y2hBY3Rpb25zLkNyZWF0ZUNvbnN1bWFibGVSZXNvdXJjZSxcblx0XHRCYXRjaEFjdGlvbnMuQ3JlYXRlSm9iUXVldWUsXG5cdFx0QmF0Y2hBY3Rpb25zLkNyZWF0ZVF1b3RhU2hhcmUsXG5cdFx0QmF0Y2hBY3Rpb25zLkNyZWF0ZVNjaGVkdWxpbmdQb2xpY3ksXG5cdFx0QmF0Y2hBY3Rpb25zLkNyZWF0ZVNlcnZpY2VFbnZpcm9ubWVudCxcblx0XHRCYXRjaEFjdGlvbnMuRGVsZXRlQ29tcHV0ZUVudmlyb25tZW50LFxuXHRcdEJhdGNoQWN0aW9ucy5EZWxldGVDb25zdW1hYmxlUmVzb3VyY2UsXG5cdFx0QmF0Y2hBY3Rpb25zLkRlbGV0ZUpvYlF1ZXVlLFxuXHRcdEJhdGNoQWN0aW9ucy5EZWxldGVRdW90YVNoYXJlLFxuXHRcdEJhdGNoQWN0aW9ucy5EZWxldGVTY2hlZHVsaW5nUG9saWN5LFxuXHRcdEJhdGNoQWN0aW9ucy5EZWxldGVTZXJ2aWNlRW52aXJvbm1lbnQsXG5cdFx0QmF0Y2hBY3Rpb25zLkRlcmVnaXN0ZXJKb2JEZWZpbml0aW9uLFxuXHRcdEJhdGNoQWN0aW9ucy5SZWdpc3RlckpvYkRlZmluaXRpb24sXG5cdFx0QmF0Y2hBY3Rpb25zLlN1Ym1pdEpvYixcblx0XHRCYXRjaEFjdGlvbnMuU3VibWl0U2VydmljZUpvYixcblx0XHRCYXRjaEFjdGlvbnMuVGVybWluYXRlSm9iLFxuXHRcdEJhdGNoQWN0aW9ucy5UZXJtaW5hdGVTZXJ2aWNlSm9iLFxuXHRcdEJhdGNoQWN0aW9ucy5VcGRhdGVDb21wdXRlRW52aXJvbm1lbnQsXG5cdFx0QmF0Y2hBY3Rpb25zLlVwZGF0ZUNvbnN1bWFibGVSZXNvdXJjZSxcblx0XHRCYXRjaEFjdGlvbnMuVXBkYXRlSm9iUXVldWUsXG5cdFx0QmF0Y2hBY3Rpb25zLlVwZGF0ZVF1b3RhU2hhcmUsXG5cdFx0QmF0Y2hBY3Rpb25zLlVwZGF0ZVNjaGVkdWxpbmdQb2xpY3ksXG5cdFx0QmF0Y2hBY3Rpb25zLlVwZGF0ZVNlcnZpY2VFbnZpcm9ubWVudCxcblx0XHRCYXRjaEFjdGlvbnMuVXBkYXRlU2VydmljZUpvYixcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0QmF0Y2hBY3Rpb25zLkxpc3RDb25zdW1hYmxlUmVzb3VyY2VzLFxuXHRcdEJhdGNoQWN0aW9ucy5MaXN0Sm9icyxcblx0XHRCYXRjaEFjdGlvbnMuTGlzdEpvYnNCeUNvbnN1bWFibGVSZXNvdXJjZSxcblx0XHRCYXRjaEFjdGlvbnMuTGlzdFF1b3RhU2hhcmVzLFxuXHRcdEJhdGNoQWN0aW9ucy5MaXN0U2VydmljZUpvYnMsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEJhdGNoQWN0aW9ucy5hY3Rpb25TZXRDYXBhY2l0eVRhZ3MsXG5cdFx0QmF0Y2hBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdEJhdGNoQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29tcHV0ZS1lbnZpcm9ubWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hDb21wdXRlRW52aXJvbm1lbnRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29tcHV0ZUVudmlyb25tZW50TmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29tcHV0ZUVudmlyb25tZW50TmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbXB1dGUtZW52aXJvbm1lbnQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoQ29tcHV0ZUVudmlyb25tZW50QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb21wdXRlRW52aXJvbm1lbnROYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29tcHV0ZUVudmlyb25tZW50TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29uc3VtYWJsZS1yZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hDb25zdW1hYmxlUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29uc3VtYWJsZVJlc291cmNlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29uc3VtYWJsZVJlc291cmNlTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbnN1bWFibGUtcmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoQ29uc3VtYWJsZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb25zdW1hYmxlUmVzb3VyY2VOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29uc3VtYWJsZVJlc291cmNlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgam9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaEpvYkFyblByb3BzIHtcblx0LyoqIFRoZSBKb2JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgam9iSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBqb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoSm9iQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBKb2JJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBqb2ItZGVmaW5pdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hKb2JEZWZpbml0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEpvYkRlZmluaXRpb25OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBqb2JEZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGpvYi1kZWZpbml0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaEpvYkRlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEpvYkRlZmluaXRpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgam9iRGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGpvYi1kZWZpbml0aW9uLXJldmlzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaEpvYkRlZmluaXRpb25SZXZpc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBKb2JEZWZpbml0aW9uTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgam9iRGVmaW5pdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBSZXZpc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmV2aXNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBqb2ItZGVmaW5pdGlvbi1yZXZpc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hKb2JEZWZpbml0aW9uUmV2aXNpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEpvYkRlZmluaXRpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgam9iRGVmaW5pdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBSZXZpc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJldmlzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBqb2ItcXVldWUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoSm9iUXVldWVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSm9iUXVldWVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBqb2JRdWV1ZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBqb2ItcXVldWUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoSm9iUXVldWVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEpvYlF1ZXVlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYlF1ZXVlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgcXVvdGEtc2hhcmUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoUXVvdGFTaGFyZUFyblByb3BzIHtcblx0LyoqIFRoZSBKb2JRdWV1ZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGpvYlF1ZXVlTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFF1b3RhU2hhcmVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBxdW90YVNoYXJlTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHF1b3RhLXNoYXJlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaFF1b3RhU2hhcmVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEpvYlF1ZXVlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYlF1ZXVlTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFF1b3RhU2hhcmVOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcXVvdGFTaGFyZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHNjaGVkdWxpbmctcG9saWN5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaFNjaGVkdWxpbmdQb2xpY3lBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2NoZWR1bGluZ1BvbGljeU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNjaGVkdWxpbmdQb2xpY3lOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgc2NoZWR1bGluZy1wb2xpY3kgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoU2NoZWR1bGluZ1BvbGljeUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU2NoZWR1bGluZ1BvbGljeU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzY2hlZHVsaW5nUG9saWN5TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgc2VydmljZS1lbnZpcm9ubWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hTZXJ2aWNlRW52aXJvbm1lbnRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2VydmljZUVudmlyb25tZW50TmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc2VydmljZUVudmlyb25tZW50TmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHNlcnZpY2UtZW52aXJvbm1lbnQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoU2VydmljZUVudmlyb25tZW50QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTZXJ2aWNlRW52aXJvbm1lbnROYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2VydmljZUVudmlyb25tZW50TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgc2VydmljZS1qb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoU2VydmljZUpvYkFyblByb3BzIHtcblx0LyoqIFRoZSBKb2JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgam9iSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBzZXJ2aWNlLWpvYiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hTZXJ2aWNlSm9iQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBKb2JJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG59XG5cbmNvbnN0IENvbXB1dGVFbnZpcm9ubWVudEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpiYXRjaDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNvbXB1dGUtZW52aXJvbm1lbnRcXC8oPzxjb21wdXRlRW52aXJvbm1lbnROYW1lPlteOi8/XSspJC87XG5jb25zdCBDb25zdW1hYmxlUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YmF0Y2g6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb25zdW1hYmxlLXJlc291cmNlXFwvKD88Y29uc3VtYWJsZVJlc291cmNlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgSm9iQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmJhdGNoOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6am9iXFwvKD88am9iSWQ+W146Lz9dKykkLztcbmNvbnN0IEpvYkRlZmluaXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YmF0Y2g6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpqb2ItZGVmaW5pdGlvblxcLyg/PGpvYkRlZmluaXRpb25OYW1lPlteOi8/XSspJC87XG5jb25zdCBKb2JEZWZpbml0aW9uUmV2aXNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YmF0Y2g6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpqb2ItZGVmaW5pdGlvblxcLyg/PGpvYkRlZmluaXRpb25OYW1lPlteOi8/XSspOig/PHJldmlzaW9uPlteOi8/XSspJC87XG5jb25zdCBKb2JRdWV1ZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpiYXRjaDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmpvYi1xdWV1ZVxcLyg/PGpvYlF1ZXVlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgUXVvdGFTaGFyZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpiYXRjaDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmpvYi1xdWV1ZVxcLyg/PGpvYlF1ZXVlTmFtZT5bXjovP10rKVxcL3F1b3RhLXNoYXJlXFwvKD88cXVvdGFTaGFyZU5hbWU+W146Lz9dKykkLztcbmNvbnN0IFNjaGVkdWxpbmdQb2xpY3lBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YmF0Y2g6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzY2hlZHVsaW5nLXBvbGljeVxcLyg/PHNjaGVkdWxpbmdQb2xpY3lOYW1lPlteOi8/XSspJC87XG5jb25zdCBTZXJ2aWNlRW52aXJvbm1lbnRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YmF0Y2g6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzZXJ2aWNlLWVudmlyb25tZW50XFwvKD88c2VydmljZUVudmlyb25tZW50TmFtZT5bXjovP10rKSQvO1xuY29uc3QgU2VydmljZUpvYkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpiYXRjaDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNlcnZpY2Utam9iXFwvKD88am9iSWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBiYXRjaCByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXRjaFJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29tcHV0ZS1lbnZpcm9ubWVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb21wdXRlRW52aXJvbm1lbnQocHJvcHM6IEJhdGNoQ29tcHV0ZUVudmlyb25tZW50QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmJhdGNoOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNvbXB1dGUtZW52aXJvbm1lbnQvJHtwcm9wcy5jb21wdXRlRW52aXJvbm1lbnROYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb21wdXRlLWVudmlyb25tZW50IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb21wdXRlRW52aXJvbm1lbnRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29tcHV0ZUVudmlyb25tZW50QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbXB1dGUtZW52aXJvbm1lbnQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29tcHV0ZUVudmlyb25tZW50QXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBCYXRjaENvbXB1dGVFbnZpcm9ubWVudEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29tcHV0ZUVudmlyb25tZW50QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbXB1dGUtZW52aXJvbm1lbnQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29tcHV0ZUVudmlyb25tZW50TmFtZTogbWF0Y2guZ3JvdXBzIS5jb21wdXRlRW52aXJvbm1lbnROYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbnN1bWFibGUtcmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29uc3VtYWJsZVJlc291cmNlKHByb3BzOiBCYXRjaENvbnN1bWFibGVSZXNvdXJjZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiYXRjaDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjb25zdW1hYmxlLXJlc291cmNlLyR7cHJvcHMuY29uc3VtYWJsZVJlc291cmNlTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29uc3VtYWJsZS1yZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29uc3VtYWJsZVJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbnN1bWFibGVSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjb25zdW1hYmxlLXJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbnN1bWFibGVSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQmF0Y2hDb25zdW1hYmxlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbnN1bWFibGVSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25zdW1hYmxlLXJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvbnN1bWFibGVSZXNvdXJjZU5hbWU6IG1hdGNoLmdyb3VwcyEuY29uc3VtYWJsZVJlc291cmNlTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBqb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgam9iKHByb3BzOiBCYXRjaEpvYkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiYXRjaDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpqb2IvJHtwcm9wcy5qb2JJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgam9iIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRKb2JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSm9iQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGpvYiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VKb2JBcm4oYXJuOiBzdHJpbmcpOiBCYXRjaEpvYkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSm9iQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGpvYiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRqb2JJZDogbWF0Y2guZ3JvdXBzIS5qb2JJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBqb2ItZGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBqb2JEZWZpbml0aW9uKHByb3BzOiBCYXRjaEpvYkRlZmluaXRpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YmF0Y2g6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06am9iLWRlZmluaXRpb24vJHtwcm9wcy5qb2JEZWZpbml0aW9uTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgam9iLWRlZmluaXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEpvYkRlZmluaXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSm9iRGVmaW5pdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBqb2ItZGVmaW5pdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VKb2JEZWZpbml0aW9uQXJuKGFybjogc3RyaW5nKTogQmF0Y2hKb2JEZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBKb2JEZWZpbml0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGpvYi1kZWZpbml0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGpvYkRlZmluaXRpb25OYW1lOiBtYXRjaC5ncm91cHMhLmpvYkRlZmluaXRpb25OYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGpvYi1kZWZpbml0aW9uLXJldmlzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGpvYkRlZmluaXRpb25SZXZpc2lvbihcblx0XHRwcm9wczogQmF0Y2hKb2JEZWZpbml0aW9uUmV2aXNpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiYXRjaDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpqb2ItZGVmaW5pdGlvbi8ke3Byb3BzLmpvYkRlZmluaXRpb25OYW1lfToke3Byb3BzLnJldmlzaW9ufWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBqb2ItZGVmaW5pdGlvbi1yZXZpc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSm9iRGVmaW5pdGlvblJldmlzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEpvYkRlZmluaXRpb25SZXZpc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBqb2ItZGVmaW5pdGlvbi1yZXZpc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VKb2JEZWZpbml0aW9uUmV2aXNpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEJhdGNoSm9iRGVmaW5pdGlvblJldmlzaW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBKb2JEZWZpbml0aW9uUmV2aXNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgam9iLWRlZmluaXRpb24tcmV2aXNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0am9iRGVmaW5pdGlvbk5hbWU6IG1hdGNoLmdyb3VwcyEuam9iRGVmaW5pdGlvbk5hbWUsXG5cdFx0XHRyZXZpc2lvbjogbWF0Y2guZ3JvdXBzIS5yZXZpc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBqb2ItcXVldWUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgam9iUXVldWUocHJvcHM6IEJhdGNoSm9iUXVldWVBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YmF0Y2g6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06am9iLXF1ZXVlLyR7cHJvcHMuam9iUXVldWVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBqb2ItcXVldWUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEpvYlF1ZXVlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEpvYlF1ZXVlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGpvYi1xdWV1ZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VKb2JRdWV1ZUFybihhcm46IHN0cmluZyk6IEJhdGNoSm9iUXVldWVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEpvYlF1ZXVlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGpvYi1xdWV1ZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRqb2JRdWV1ZU5hbWU6IG1hdGNoLmdyb3VwcyEuam9iUXVldWVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHF1b3RhLXNoYXJlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHF1b3RhU2hhcmUocHJvcHM6IEJhdGNoUXVvdGFTaGFyZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiYXRjaDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpqb2ItcXVldWUvJHtwcm9wcy5qb2JRdWV1ZU5hbWV9L3F1b3RhLXNoYXJlLyR7cHJvcHMucXVvdGFTaGFyZU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHF1b3RhLXNoYXJlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRRdW90YVNoYXJlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFF1b3RhU2hhcmVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgcXVvdGEtc2hhcmUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUXVvdGFTaGFyZUFybihhcm46IHN0cmluZyk6IEJhdGNoUXVvdGFTaGFyZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUXVvdGFTaGFyZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBxdW90YS1zaGFyZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRqb2JRdWV1ZU5hbWU6IG1hdGNoLmdyb3VwcyEuam9iUXVldWVOYW1lLFxuXHRcdFx0cXVvdGFTaGFyZU5hbWU6IG1hdGNoLmdyb3VwcyEucXVvdGFTaGFyZU5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc2NoZWR1bGluZy1wb2xpY3kgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc2NoZWR1bGluZ1BvbGljeShwcm9wczogQmF0Y2hTY2hlZHVsaW5nUG9saWN5QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmJhdGNoOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnNjaGVkdWxpbmctcG9saWN5LyR7cHJvcHMuc2NoZWR1bGluZ1BvbGljeU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHNjaGVkdWxpbmctcG9saWN5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTY2hlZHVsaW5nUG9saWN5QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNjaGVkdWxpbmdQb2xpY3lBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgc2NoZWR1bGluZy1wb2xpY3kgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU2NoZWR1bGluZ1BvbGljeUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQmF0Y2hTY2hlZHVsaW5nUG9saWN5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTY2hlZHVsaW5nUG9saWN5QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNjaGVkdWxpbmctcG9saWN5IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNjaGVkdWxpbmdQb2xpY3lOYW1lOiBtYXRjaC5ncm91cHMhLnNjaGVkdWxpbmdQb2xpY3lOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHNlcnZpY2UtZW52aXJvbm1lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc2VydmljZUVudmlyb25tZW50KHByb3BzOiBCYXRjaFNlcnZpY2VFbnZpcm9ubWVudEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiYXRjaDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzZXJ2aWNlLWVudmlyb25tZW50LyR7cHJvcHMuc2VydmljZUVudmlyb25tZW50TmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgc2VydmljZS1lbnZpcm9ubWVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU2VydmljZUVudmlyb25tZW50QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNlcnZpY2VFbnZpcm9ubWVudEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzZXJ2aWNlLWVudmlyb25tZW50IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNlcnZpY2VFbnZpcm9ubWVudEFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQmF0Y2hTZXJ2aWNlRW52aXJvbm1lbnRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFNlcnZpY2VFbnZpcm9ubWVudEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzZXJ2aWNlLWVudmlyb25tZW50IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNlcnZpY2VFbnZpcm9ubWVudE5hbWU6IG1hdGNoLmdyb3VwcyEuc2VydmljZUVudmlyb25tZW50TmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBzZXJ2aWNlLWpvYiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzZXJ2aWNlSm9iKHByb3BzOiBCYXRjaFNlcnZpY2VKb2JBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YmF0Y2g6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06c2VydmljZS1qb2IvJHtwcm9wcy5qb2JJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgc2VydmljZS1qb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFNlcnZpY2VKb2JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gU2VydmljZUpvYkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzZXJ2aWNlLWpvYiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTZXJ2aWNlSm9iQXJuKGFybjogc3RyaW5nKTogQmF0Y2hTZXJ2aWNlSm9iQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTZXJ2aWNlSm9iQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNlcnZpY2Utam9iIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGpvYklkOiBtYXRjaC5ncm91cHMhLmpvYklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGJhdGNoLlxuICovXG5leHBvcnQgY2xhc3MgQmF0Y2hPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsSm9iOiBzdHJpbmdbXSA9IFtcImJhdGNoOkNhbmNlbEpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsSm9icyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEpvYnM6IHN0cmluZ1tdID0gW1wiYmF0Y2g6Q2FuY2VsSm9iXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDb21wdXRlRW52aXJvbm1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb21wdXRlRW52aXJvbm1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6Q3JlYXRlQ29tcHV0ZUVudmlyb25tZW50XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImJhdGNoOlNldENhcGFjaXR5VGFnc1wiLFxuXHRcdFwiYmF0Y2g6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ29uc3VtYWJsZVJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29uc3VtYWJsZVJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkNyZWF0ZUNvbnN1bWFibGVSZXNvdXJjZVwiLFxuXHRcdFwiYmF0Y2g6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlSm9iUXVldWUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVKb2JRdWV1ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpDcmVhdGVKb2JRdWV1ZVwiLFxuXHRcdFwiYmF0Y2g6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUXVvdGFTaGFyZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVF1b3RhU2hhcmU6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6Q3JlYXRlUXVvdGFTaGFyZVwiLFxuXHRcdFwiYmF0Y2g6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU2NoZWR1bGluZ1BvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNjaGVkdWxpbmdQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6Q3JlYXRlU2NoZWR1bGluZ1BvbGljeVwiLFxuXHRcdFwiYmF0Y2g6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU2VydmljZUVudmlyb25tZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2VydmljZUVudmlyb25tZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkNyZWF0ZVNlcnZpY2VFbnZpcm9ubWVudFwiLFxuXHRcdFwiYmF0Y2g6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29tcHV0ZUVudmlyb25tZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29tcHV0ZUVudmlyb25tZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkRlbGV0ZUNvbXB1dGVFbnZpcm9ubWVudFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDb25zdW1hYmxlUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25zdW1hYmxlUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6RGVsZXRlQ29uc3VtYWJsZVJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUpvYlF1ZXVlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSm9iUXVldWU6IHN0cmluZ1tdID0gW1wiYmF0Y2g6RGVsZXRlSm9iUXVldWVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVF1b3RhU2hhcmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVRdW90YVNoYXJlOiBzdHJpbmdbXSA9IFtcImJhdGNoOkRlbGV0ZVF1b3RhU2hhcmVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVNjaGVkdWxpbmdQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTY2hlZHVsaW5nUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkRlbGV0ZVNjaGVkdWxpbmdQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU2VydmljZUVudmlyb25tZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU2VydmljZUVudmlyb25tZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkRlbGV0ZVNlcnZpY2VFbnZpcm9ubWVudFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXJlZ2lzdGVySm9iRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlcmVnaXN0ZXJKb2JEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkRlcmVnaXN0ZXJKb2JEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ29tcHV0ZUVudmlyb25tZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ29tcHV0ZUVudmlyb25tZW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpEZXNjcmliZUNvbXB1dGVFbnZpcm9ubWVudHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVDb25zdW1hYmxlUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNvbnN1bWFibGVSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpEZXNjcmliZUNvbnN1bWFibGVSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUpvYkRlZmluaXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JEZWZpbml0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpEZXNjcmliZUpvYkRlZmluaXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlSm9iUXVldWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JRdWV1ZXM6IHN0cmluZ1tdID0gW1wiYmF0Y2g6RGVzY3JpYmVKb2JRdWV1ZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlSm9icyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9iczogc3RyaW5nW10gPSBbXCJiYXRjaDpEZXNjcmliZUpvYnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUXVvdGFTaGFyZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUXVvdGFTaGFyZTogc3RyaW5nW10gPSBbXCJiYXRjaDpEZXNjcmliZVF1b3RhU2hhcmVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU2NoZWR1bGluZ1BvbGljaWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTY2hlZHVsaW5nUG9saWNpZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6RGVzY3JpYmVTY2hlZHVsaW5nUG9saWNpZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTZXJ2aWNlRW52aXJvbm1lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTZXJ2aWNlRW52aXJvbm1lbnRzOiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkRlc2NyaWJlU2VydmljZUVudmlyb25tZW50c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVNlcnZpY2VKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNlcnZpY2VKb2I6IHN0cmluZ1tdID0gW1wiYmF0Y2g6RGVzY3JpYmVTZXJ2aWNlSm9iXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRKb2JRdWV1ZVNuYXBzaG90IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRKb2JRdWV1ZVNuYXBzaG90OiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkdldEpvYlF1ZXVlU25hcHNob3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvbnN1bWFibGVSZXNvdXJjZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29uc3VtYWJsZVJlc291cmNlczogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpMaXN0Q29uc3VtYWJsZVJlc291cmNlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Sm9icyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RKb2JzOiBzdHJpbmdbXSA9IFtcImJhdGNoOkxpc3RKb2JzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Sm9ic0J5Q29uc3VtYWJsZVJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEpvYnNCeUNvbnN1bWFibGVSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpMaXN0Sm9ic0J5Q29uc3VtYWJsZVJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RRdW90YVNoYXJlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RRdW90YVNoYXJlczogc3RyaW5nW10gPSBbXCJiYXRjaDpMaXN0UXVvdGFTaGFyZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTY2hlZHVsaW5nUG9saWNpZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U2NoZWR1bGluZ1BvbGljaWVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImJhdGNoOkxpc3RTY2hlZHVsaW5nUG9saWNpZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFNlcnZpY2VKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNlcnZpY2VKb2JzOiBzdHJpbmdbXSA9IFtcImJhdGNoOkxpc3RTZXJ2aWNlSm9ic1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiYmF0Y2g6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVnaXN0ZXJKb2JEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJKb2JEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiYmF0Y2g6UmVnaXN0ZXJKb2JEZWZpbml0aW9uXCIsXG5cdFx0XCJiYXRjaDpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdWJtaXRKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdWJtaXRKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6U3VibWl0Sm9iXCIsXG5cdFx0XCJiYXRjaDpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdWJtaXRTZXJ2aWNlSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3VibWl0U2VydmljZUpvYjogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImJhdGNoOlN1Ym1pdFNlcnZpY2VKb2JcIixcblx0XHRcImJhdGNoOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiYmF0Y2g6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRlcm1pbmF0ZUpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZUpvYjogc3RyaW5nW10gPSBbXCJiYXRjaDpUZXJtaW5hdGVKb2JcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRlcm1pbmF0ZUpvYnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVKb2JzOiBzdHJpbmdbXSA9IFtcImJhdGNoOlRlcm1pbmF0ZUpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGVybWluYXRlU2VydmljZUpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZVNlcnZpY2VKb2I6IHN0cmluZ1tdID0gW1wiYmF0Y2g6VGVybWluYXRlU2VydmljZUpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGVybWluYXRlU2VydmljZUpvYnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVTZXJ2aWNlSm9iczogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpUZXJtaW5hdGVTZXJ2aWNlSm9iXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImJhdGNoOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNvbXB1dGVFbnZpcm9ubWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbXB1dGVFbnZpcm9ubWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImJhdGNoOlNldENhcGFjaXR5VGFnc1wiLFxuXHRcdFwiYmF0Y2g6VXBkYXRlQ29tcHV0ZUVudmlyb25tZW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNvbnN1bWFibGVSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbnN1bWFibGVSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpVcGRhdGVDb25zdW1hYmxlUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlSm9iUXVldWUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVKb2JRdWV1ZTogc3RyaW5nW10gPSBbXCJiYXRjaDpVcGRhdGVKb2JRdWV1ZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUXVvdGFTaGFyZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVF1b3RhU2hhcmU6IHN0cmluZ1tdID0gW1wiYmF0Y2g6VXBkYXRlUXVvdGFTaGFyZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU2NoZWR1bGluZ1BvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVNjaGVkdWxpbmdQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6VXBkYXRlU2NoZWR1bGluZ1BvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTZXJ2aWNlRW52aXJvbm1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTZXJ2aWNlRW52aXJvbm1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiYmF0Y2g6VXBkYXRlU2VydmljZUVudmlyb25tZW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVNlcnZpY2VKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTZXJ2aWNlSm9iOiBzdHJpbmdbXSA9IFtcImJhdGNoOlVwZGF0ZVNlcnZpY2VKb2JcIl07XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIGtleSBjb25zdGFudHMgYW5kIGJ1aWxkZXJzIGZvciBiYXRjaC5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhdGNoQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDb21wdXRlRW52aXJvbm1lbnQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29tcHV0ZUVudmlyb25tZW50Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDb25zdW1hYmxlUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29uc3VtYWJsZVJlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVKb2JRdWV1ZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVKb2JRdWV1ZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUXVvdGFTaGFyZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVRdW90YVNoYXJlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVTY2hlZHVsaW5nUG9saWN5IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNjaGVkdWxpbmdQb2xpY3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVNlcnZpY2VFbnZpcm9ubWVudCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTZXJ2aWNlRW52aXJvbm1lbnRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFJlZ2lzdGVySm9iRGVmaW5pdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBSZWdpc3RlckpvYkRlZmluaXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImJhdGNoOkFXU0xvZ3NDcmVhdGVHcm91cFwiLFxuXHRcdFwiYmF0Y2g6QVdTTG9nc0dyb3VwXCIsXG5cdFx0XCJiYXRjaDpBV1NMb2dzUmVnaW9uXCIsXG5cdFx0XCJiYXRjaDpBV1NMb2dzU3RyZWFtUHJlZml4XCIsXG5cdFx0XCJiYXRjaDpFS1NJbWFnZVwiLFxuXHRcdFwiYmF0Y2g6RUtTTmFtZXNwYWNlXCIsXG5cdFx0XCJiYXRjaDpFS1NQcml2aWxlZ2VkXCIsXG5cdFx0XCJiYXRjaDpFS1NSdW5Bc0dyb3VwXCIsXG5cdFx0XCJiYXRjaDpFS1NSdW5Bc1VzZXJcIixcblx0XHRcImJhdGNoOkVLU1NlcnZpY2VBY2NvdW50TmFtZVwiLFxuXHRcdFwiYmF0Y2g6SW1hZ2VcIixcblx0XHRcImJhdGNoOkxvZ0RyaXZlclwiLFxuXHRcdFwiYmF0Y2g6UHJpdmlsZWdlZFwiLFxuXHRcdFwiYmF0Y2g6VXNlclwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU2V0Q2FwYWNpdHlUYWdzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvblNldENhcGFjaXR5VGFnc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3VibWl0Sm9iIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1Ym1pdEpvYkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3VibWl0U2VydmljZUpvYiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdWJtaXRTZXJ2aWNlSm9iQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJiYXRjaDpTY2hlZHVsaW5nUHJpb3JpdHlcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcImF3czpUYWdLZXlzXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlU2VydmljZUpvYiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTZXJ2aWNlSm9iQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJiYXRjaDpTY2hlZHVsaW5nUHJpb3JpdHlcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpBV1NMb2dzQ3JlYXRlR3JvdXAgKEJvb2wpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfTE9HU19DUkVBVEVfR1JPVVAgPSBcImJhdGNoOkFXU0xvZ3NDcmVhdGVHcm91cFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYmF0Y2g6QVdTTG9nc0dyb3VwIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfTE9HU19HUk9VUCA9IFwiYmF0Y2g6QVdTTG9nc0dyb3VwXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpBV1NMb2dzUmVnaW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfTE9HU19SRUdJT04gPSBcImJhdGNoOkFXU0xvZ3NSZWdpb25cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOkFXU0xvZ3NTdHJlYW1QcmVmaXggKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19MT0dTX1NUUkVBTV9QUkVGSVggPSBcImJhdGNoOkFXU0xvZ3NTdHJlYW1QcmVmaXhcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOkVLU0ltYWdlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBFS1NfSU1BR0UgPSBcImJhdGNoOkVLU0ltYWdlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpFS1NOYW1lc3BhY2UgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVLU19OQU1FU1BBQ0UgPSBcImJhdGNoOkVLU05hbWVzcGFjZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYmF0Y2g6RUtTUHJpdmlsZWdlZCAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVLU19QUklWSUxFR0VEID0gXCJiYXRjaDpFS1NQcml2aWxlZ2VkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpFS1NSdW5Bc0dyb3VwIChOdW1lcmljKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRUtTX1JVTl9BU19HUk9VUCA9IFwiYmF0Y2g6RUtTUnVuQXNHcm91cFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYmF0Y2g6RUtTUnVuQXNVc2VyIChOdW1lcmljKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRUtTX1JVTl9BU19VU0VSID0gXCJiYXRjaDpFS1NSdW5Bc1VzZXJcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOkVLU1NlcnZpY2VBY2NvdW50TmFtZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRUtTX1NFUlZJQ0VfQUNDT1VOVF9OQU1FID0gXCJiYXRjaDpFS1NTZXJ2aWNlQWNjb3VudE5hbWVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOkltYWdlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBJTUFHRSA9IFwiYmF0Y2g6SW1hZ2VcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGJhdGNoOkxvZ0RyaXZlciAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTE9HX0RSSVZFUiA9IFwiYmF0Y2g6TG9nRHJpdmVyXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpQcml2aWxlZ2VkIChCb29sKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUFJJVklMRUdFRCA9IFwiYmF0Y2g6UHJpdmlsZWdlZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYmF0Y2g6U2NoZWR1bGluZ1ByaW9yaXR5IChOdW1lcmljKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0NIRURVTElOR19QUklPUklUWSA9IFwiYmF0Y2g6U2NoZWR1bGluZ1ByaW9yaXR5XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBiYXRjaDpTaGFyZUlkZW50aWZpZXIgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNIQVJFX0lERU5USUZJRVIgPSBcImJhdGNoOlNoYXJlSWRlbnRpZmllclwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYmF0Y2g6VXNlciAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVVNFUiA9IFwiYmF0Y2g6VXNlclwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpBV1NMb2dzQ3JlYXRlR3JvdXBgLlxuXHQgKi9cblx0c3RhdGljIGF3c0xvZ3NDcmVhdGVHcm91cChcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiYmF0Y2g6QVdTTG9nc0NyZWF0ZUdyb3VwXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpBV1NMb2dzR3JvdXBgLlxuXHQgKi9cblx0c3RhdGljIGF3c0xvZ3NHcm91cCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImJhdGNoOkFXU0xvZ3NHcm91cFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYmF0Y2g6QVdTTG9nc1JlZ2lvbmAuXG5cdCAqL1xuXHRzdGF0aWMgYXdzTG9nc1JlZ2lvbih2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImJhdGNoOkFXU0xvZ3NSZWdpb25cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOkFXU0xvZ3NTdHJlYW1QcmVmaXhgLlxuXHQgKi9cblx0c3RhdGljIGF3c0xvZ3NTdHJlYW1QcmVmaXgoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImJhdGNoOkFXU0xvZ3NTdHJlYW1QcmVmaXhcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOkVLU0ltYWdlYC5cblx0ICovXG5cdHN0YXRpYyBla3NJbWFnZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImJhdGNoOkVLU0ltYWdlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpFS1NOYW1lc3BhY2VgLlxuXHQgKi9cblx0c3RhdGljIGVrc05hbWVzcGFjZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImJhdGNoOkVLU05hbWVzcGFjZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYmF0Y2g6RUtTUHJpdmlsZWdlZGAuXG5cdCAqL1xuXHRzdGF0aWMgZWtzUHJpdmlsZWdlZChcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwiYmF0Y2g6RUtTUHJpdmlsZWdlZFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYmF0Y2g6RUtTUnVuQXNHcm91cGAuXG5cdCAqL1xuXHRzdGF0aWMgZWtzUnVuQXNHcm91cCh2YWx1ZTogbnVtYmVyKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuXHRcdHJldHVybiB7IE51bWVyaWNFcXVhbHM6IHsgXCJiYXRjaDpFS1NSdW5Bc0dyb3VwXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpFS1NSdW5Bc1VzZXJgLlxuXHQgKi9cblx0c3RhdGljIGVrc1J1bkFzVXNlcih2YWx1ZTogbnVtYmVyKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuXHRcdHJldHVybiB7IE51bWVyaWNFcXVhbHM6IHsgXCJiYXRjaDpFS1NSdW5Bc1VzZXJcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOkVLU1NlcnZpY2VBY2NvdW50TmFtZWAuXG5cdCAqL1xuXHRzdGF0aWMgZWtzU2VydmljZUFjY291bnROYW1lKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJiYXRjaDpFS1NTZXJ2aWNlQWNjb3VudE5hbWVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOkltYWdlYC5cblx0ICovXG5cdHN0YXRpYyBpbWFnZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImJhdGNoOkltYWdlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpMb2dEcml2ZXJgLlxuXHQgKi9cblx0c3RhdGljIGxvZ0RyaXZlcih2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImJhdGNoOkxvZ0RyaXZlclwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYmF0Y2g6UHJpdmlsZWdlZGAuXG5cdCAqL1xuXHRzdGF0aWMgcHJpdmlsZWdlZCh2YWx1ZTogYm9vbGVhbik6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImJhdGNoOlByaXZpbGVnZWRcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGJhdGNoOlNjaGVkdWxpbmdQcmlvcml0eWAuXG5cdCAqL1xuXHRzdGF0aWMgc2NoZWR1bGluZ1ByaW9yaXR5KFxuXHRcdHZhbHVlOiBudW1iZXIsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIG51bWJlcj4+IHtcblx0XHRyZXR1cm4geyBOdW1lcmljRXF1YWxzOiB7IFwiYmF0Y2g6U2NoZWR1bGluZ1ByaW9yaXR5XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpTaGFyZUlkZW50aWZpZXJgLlxuXHQgKi9cblx0c3RhdGljIHNoYXJlSWRlbnRpZmllcihcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYmF0Y2g6U2hhcmVJZGVudGlmaWVyXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBiYXRjaDpVc2VyYC5cblx0ICovXG5cdHN0YXRpYyB1c2VyKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYmF0Y2g6VXNlclwiOiB2YWx1ZSB9IH07XG5cdH1cbn1cbiJdfQ==
|
|
@@ -16,7 +16,7 @@ class BcmDashboardsActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.BcmDashboardsActions = BcmDashboardsActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
BcmDashboardsActions[_a] = { fqn: "@cdk_utils/iam.bcm_dashboards.BcmDashboardsActions", version: "1.
|
|
19
|
+
BcmDashboardsActions[_a] = { fqn: "@cdk_utils/iam.bcm_dashboards.BcmDashboardsActions", version: "1.22.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
BcmDashboardsActions.SERVICE_PREFIX = "bcm-dashboards";
|
|
22
22
|
/** [Write] bcm-dashboards:CreateDashboard */
|
|
@@ -141,7 +141,7 @@ class BcmDashboardsResources {
|
|
|
141
141
|
}
|
|
142
142
|
exports.BcmDashboardsResources = BcmDashboardsResources;
|
|
143
143
|
_b = JSII_RTTI_SYMBOL_1;
|
|
144
|
-
BcmDashboardsResources[_b] = { fqn: "@cdk_utils/iam.bcm_dashboards.BcmDashboardsResources", version: "1.
|
|
144
|
+
BcmDashboardsResources[_b] = { fqn: "@cdk_utils/iam.bcm_dashboards.BcmDashboardsResources", version: "1.22.0" };
|
|
145
145
|
/**
|
|
146
146
|
* API operation to required IAM actions mapping for bcm-dashboards.
|
|
147
147
|
*/
|
|
@@ -149,7 +149,7 @@ class BcmDashboardsOperations {
|
|
|
149
149
|
}
|
|
150
150
|
exports.BcmDashboardsOperations = BcmDashboardsOperations;
|
|
151
151
|
_c = JSII_RTTI_SYMBOL_1;
|
|
152
|
-
BcmDashboardsOperations[_c] = { fqn: "@cdk_utils/iam.bcm_dashboards.BcmDashboardsOperations", version: "1.
|
|
152
|
+
BcmDashboardsOperations[_c] = { fqn: "@cdk_utils/iam.bcm_dashboards.BcmDashboardsOperations", version: "1.22.0" };
|
|
153
153
|
/** IAM actions required for the CreateDashboard API call. */
|
|
154
154
|
BcmDashboardsOperations.CreateDashboard = [
|
|
155
155
|
"bcm-dashboards:CreateDashboard",
|
|
@@ -231,7 +231,7 @@ class BcmDashboardsConditions {
|
|
|
231
231
|
}
|
|
232
232
|
exports.BcmDashboardsConditions = BcmDashboardsConditions;
|
|
233
233
|
_d = JSII_RTTI_SYMBOL_1;
|
|
234
|
-
BcmDashboardsConditions[_d] = { fqn: "@cdk_utils/iam.bcm_dashboards.BcmDashboardsConditions", version: "1.
|
|
234
|
+
BcmDashboardsConditions[_d] = { fqn: "@cdk_utils/iam.bcm_dashboards.BcmDashboardsConditions", version: "1.22.0" };
|
|
235
235
|
/** Condition keys applicable to the CreateScheduledReport action. */
|
|
236
236
|
BcmDashboardsConditions.CreateScheduledReportConditionKeys = [
|
|
237
237
|
"aws:ResourceTag/${TagKey}",
|
|
@@ -16,7 +16,7 @@ class BcmDataExportsActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.BcmDataExportsActions = BcmDataExportsActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
BcmDataExportsActions[_a] = { fqn: "@cdk_utils/iam.bcm_data_exports.BcmDataExportsActions", version: "1.
|
|
19
|
+
BcmDataExportsActions[_a] = { fqn: "@cdk_utils/iam.bcm_data_exports.BcmDataExportsActions", version: "1.22.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
BcmDataExportsActions.SERVICE_PREFIX = "bcm-data-exports";
|
|
22
22
|
/** [Write] bcm-data-exports:CreateExport */
|
|
@@ -162,7 +162,7 @@ class BcmDataExportsResources {
|
|
|
162
162
|
}
|
|
163
163
|
exports.BcmDataExportsResources = BcmDataExportsResources;
|
|
164
164
|
_b = JSII_RTTI_SYMBOL_1;
|
|
165
|
-
BcmDataExportsResources[_b] = { fqn: "@cdk_utils/iam.bcm_data_exports.BcmDataExportsResources", version: "1.
|
|
165
|
+
BcmDataExportsResources[_b] = { fqn: "@cdk_utils/iam.bcm_data_exports.BcmDataExportsResources", version: "1.22.0" };
|
|
166
166
|
/**
|
|
167
167
|
* API operation to required IAM actions mapping for bcm-data-exports.
|
|
168
168
|
*/
|
|
@@ -170,7 +170,7 @@ class BcmDataExportsOperations {
|
|
|
170
170
|
}
|
|
171
171
|
exports.BcmDataExportsOperations = BcmDataExportsOperations;
|
|
172
172
|
_c = JSII_RTTI_SYMBOL_1;
|
|
173
|
-
BcmDataExportsOperations[_c] = { fqn: "@cdk_utils/iam.bcm_data_exports.BcmDataExportsOperations", version: "1.
|
|
173
|
+
BcmDataExportsOperations[_c] = { fqn: "@cdk_utils/iam.bcm_data_exports.BcmDataExportsOperations", version: "1.22.0" };
|
|
174
174
|
/** IAM actions required for the CreateExport API call. */
|
|
175
175
|
BcmDataExportsOperations.CreateExport = [
|
|
176
176
|
"bcm-data-exports:CreateExport",
|
|
@@ -231,7 +231,7 @@ class BcmDataExportsConditions {
|
|
|
231
231
|
}
|
|
232
232
|
exports.BcmDataExportsConditions = BcmDataExportsConditions;
|
|
233
233
|
_d = JSII_RTTI_SYMBOL_1;
|
|
234
|
-
BcmDataExportsConditions[_d] = { fqn: "@cdk_utils/iam.bcm_data_exports.BcmDataExportsConditions", version: "1.
|
|
234
|
+
BcmDataExportsConditions[_d] = { fqn: "@cdk_utils/iam.bcm_data_exports.BcmDataExportsConditions", version: "1.22.0" };
|
|
235
235
|
/** Condition keys applicable to the CreateExport action. */
|
|
236
236
|
BcmDataExportsConditions.CreateExportConditionKeys = [
|
|
237
237
|
"aws:RequestTag/${TagKey}",
|
|
@@ -16,7 +16,7 @@ class BcmPricingCalculatorActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.BcmPricingCalculatorActions = BcmPricingCalculatorActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
BcmPricingCalculatorActions[_a] = { fqn: "@cdk_utils/iam.bcm_pricing_calculator.BcmPricingCalculatorActions", version: "1.
|
|
19
|
+
BcmPricingCalculatorActions[_a] = { fqn: "@cdk_utils/iam.bcm_pricing_calculator.BcmPricingCalculatorActions", version: "1.22.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
BcmPricingCalculatorActions.SERVICE_PREFIX = "bcm-pricing-calculator";
|
|
22
22
|
/** [Write] bcm-pricing-calculator:CreateBillEstimate */
|
|
@@ -232,7 +232,7 @@ class BcmPricingCalculatorResources {
|
|
|
232
232
|
}
|
|
233
233
|
exports.BcmPricingCalculatorResources = BcmPricingCalculatorResources;
|
|
234
234
|
_b = JSII_RTTI_SYMBOL_1;
|
|
235
|
-
BcmPricingCalculatorResources[_b] = { fqn: "@cdk_utils/iam.bcm_pricing_calculator.BcmPricingCalculatorResources", version: "1.
|
|
235
|
+
BcmPricingCalculatorResources[_b] = { fqn: "@cdk_utils/iam.bcm_pricing_calculator.BcmPricingCalculatorResources", version: "1.22.0" };
|
|
236
236
|
/**
|
|
237
237
|
* API operation to required IAM actions mapping for bcm-pricing-calculator.
|
|
238
238
|
*/
|
|
@@ -240,7 +240,7 @@ class BcmPricingCalculatorOperations {
|
|
|
240
240
|
}
|
|
241
241
|
exports.BcmPricingCalculatorOperations = BcmPricingCalculatorOperations;
|
|
242
242
|
_c = JSII_RTTI_SYMBOL_1;
|
|
243
|
-
BcmPricingCalculatorOperations[_c] = { fqn: "@cdk_utils/iam.bcm_pricing_calculator.BcmPricingCalculatorOperations", version: "1.
|
|
243
|
+
BcmPricingCalculatorOperations[_c] = { fqn: "@cdk_utils/iam.bcm_pricing_calculator.BcmPricingCalculatorOperations", version: "1.22.0" };
|
|
244
244
|
/** IAM actions required for the BatchCreateBillScenarioCommitmentModification API call. */
|
|
245
245
|
BcmPricingCalculatorOperations.BatchCreateBillScenarioCommitmentModification = [
|
|
246
246
|
"bcm-pricing-calculator:CreateBillScenarioCommitmentModification",
|
|
@@ -413,7 +413,7 @@ class BcmPricingCalculatorConditions {
|
|
|
413
413
|
}
|
|
414
414
|
exports.BcmPricingCalculatorConditions = BcmPricingCalculatorConditions;
|
|
415
415
|
_d = JSII_RTTI_SYMBOL_1;
|
|
416
|
-
BcmPricingCalculatorConditions[_d] = { fqn: "@cdk_utils/iam.bcm_pricing_calculator.BcmPricingCalculatorConditions", version: "1.
|
|
416
|
+
BcmPricingCalculatorConditions[_d] = { fqn: "@cdk_utils/iam.bcm_pricing_calculator.BcmPricingCalculatorConditions", version: "1.22.0" };
|
|
417
417
|
/** Condition keys applicable to the CreateBillScenario action. */
|
|
418
418
|
BcmPricingCalculatorConditions.CreateBillScenarioConditionKeys = [
|
|
419
419
|
"aws:RequestTag/${TagKey}",
|
|
@@ -16,7 +16,7 @@ class BcmRecommendedActionsActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.BcmRecommendedActionsActions = BcmRecommendedActionsActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
BcmRecommendedActionsActions[_a] = { fqn: "@cdk_utils/iam.bcm_recommended_actions.BcmRecommendedActionsActions", version: "1.
|
|
19
|
+
BcmRecommendedActionsActions[_a] = { fqn: "@cdk_utils/iam.bcm_recommended_actions.BcmRecommendedActionsActions", version: "1.22.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
BcmRecommendedActionsActions.SERVICE_PREFIX = "bcm-recommended-actions";
|
|
22
22
|
/** [List] bcm-recommended-actions:ListRecommendedActions */
|
|
@@ -40,7 +40,7 @@ class BcmRecommendedActionsOperations {
|
|
|
40
40
|
}
|
|
41
41
|
exports.BcmRecommendedActionsOperations = BcmRecommendedActionsOperations;
|
|
42
42
|
_b = JSII_RTTI_SYMBOL_1;
|
|
43
|
-
BcmRecommendedActionsOperations[_b] = { fqn: "@cdk_utils/iam.bcm_recommended_actions.BcmRecommendedActionsOperations", version: "1.
|
|
43
|
+
BcmRecommendedActionsOperations[_b] = { fqn: "@cdk_utils/iam.bcm_recommended_actions.BcmRecommendedActionsOperations", version: "1.22.0" };
|
|
44
44
|
/** IAM actions required for the ListRecommendedActions API call. */
|
|
45
45
|
BcmRecommendedActionsOperations.ListRecommendedActions = [
|
|
46
46
|
"bcm-recommended-actions:ListRecommendedActions",
|