cdk-comprehend-s3olap 2.0.478 → 2.0.480
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 +96 -7
- package/lib/cdk-comprehend-s3olap.d.ts +1 -1
- package/lib/cdk-comprehend-s3olap.js +9 -5
- package/lib/comprehend-lambdas.js +2 -2
- package/lib/demo/typescript/typescript-stack.js +11 -1
- package/lib/iam-roles.js +4 -4
- package/lib/index.js +7 -3
- package/lib/resources/lambda-arn-helper.js +3 -2
- package/node_modules/aws-sdk/README.md +1 -1
- package/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.examples.json +196 -0
- package/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.min.json +254 -111
- package/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/account-2021-02-01.min.json +101 -19
- package/node_modules/aws-sdk/apis/acm-2015-12-08.min.json +7 -1
- package/node_modules/aws-sdk/apis/acm-pca-2017-08-22.min.json +20 -13
- package/node_modules/aws-sdk/apis/acm-pca-2017-08-22.paginators.json +4 -4
- package/node_modules/aws-sdk/apis/acm-pca-2017-08-22.waiters2.json +62 -59
- package/node_modules/aws-sdk/apis/amplify-2017-07-25.min.json +3 -0
- package/node_modules/aws-sdk/apis/apigateway-2015-07-09.min.json +7 -1
- package/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.min.json +7 -1
- package/node_modules/aws-sdk/apis/application-signals-2024-04-15.min.json +975 -0
- package/node_modules/aws-sdk/apis/application-signals-2024-04-15.paginators.json +34 -0
- package/node_modules/aws-sdk/apis/apptest-2022-12-06.min.json +1917 -0
- package/node_modules/aws-sdk/apis/apptest-2022-12-06.paginators.json +40 -0
- package/node_modules/aws-sdk/apis/apptest-2022-12-06.waiters2.json +5 -0
- package/node_modules/aws-sdk/apis/arc-zonal-shift-2022-10-30.min.json +62 -10
- package/node_modules/aws-sdk/apis/artifact-2018-05-10.examples.json +113 -0
- package/node_modules/aws-sdk/apis/artifact-2018-05-10.min.json +47 -41
- package/node_modules/aws-sdk/apis/artifact-2018-05-10.waiters2.json +5 -0
- package/node_modules/aws-sdk/apis/athena-2017-05-18.min.json +7 -1
- package/node_modules/aws-sdk/apis/auditmanager-2017-07-25.min.json +57 -38
- package/node_modules/aws-sdk/apis/autoscaling-2011-01-01.min.json +7 -1
- package/node_modules/aws-sdk/apis/b2bi-2022-06-23.min.json +8 -1
- package/node_modules/aws-sdk/apis/batch-2016-08-10.min.json +115 -60
- package/node_modules/aws-sdk/apis/bedrock-2023-04-20.min.json +140 -86
- package/node_modules/aws-sdk/apis/bedrock-agent-2023-06-05.min.json +2122 -231
- package/node_modules/aws-sdk/apis/bedrock-agent-2023-06-05.paginators.json +24 -0
- package/node_modules/aws-sdk/apis/bedrock-agent-runtime-2023-07-26.min.json +809 -190
- package/node_modules/aws-sdk/apis/bedrock-agent-runtime-2023-07-26.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/bedrock-runtime-2023-09-30.min.json +898 -44
- package/node_modules/aws-sdk/apis/budgets-2016-10-20.min.json +102 -21
- package/node_modules/aws-sdk/apis/chatbot-2017-10-11.min.json +138 -24
- package/node_modules/aws-sdk/apis/chime-sdk-media-pipelines-2021-07-15.min.json +10 -1
- package/node_modules/aws-sdk/apis/chime-sdk-voice-2022-08-03.min.json +6 -2
- package/node_modules/aws-sdk/apis/cloudformation-2010-05-15.min.json +48 -43
- package/node_modules/aws-sdk/apis/cloudfront-2020-05-31.min.json +7 -1
- package/node_modules/aws-sdk/apis/cloudhsmv2-2017-04-28.min.json +79 -20
- package/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.min.json +44 -24
- package/node_modules/aws-sdk/apis/codeartifact-2018-09-22.min.json +7 -1
- package/node_modules/aws-sdk/apis/codebuild-2016-10-06.min.json +80 -38
- package/node_modules/aws-sdk/apis/codedeploy-2014-10-06.min.json +7 -1
- package/node_modules/aws-sdk/apis/codeguru-security-2018-05-10.min.json +6 -0
- package/node_modules/aws-sdk/apis/codepipeline-2015-07-09.min.json +4 -1
- package/node_modules/aws-sdk/apis/cognito-identity-2014-06-30.min.json +23 -5
- package/node_modules/aws-sdk/apis/cognito-idp-2016-04-18.min.json +111 -27
- package/node_modules/aws-sdk/apis/compute-optimizer-2019-11-01.min.json +447 -134
- package/node_modules/aws-sdk/apis/config-2014-11-12.min.json +7 -1
- package/node_modules/aws-sdk/apis/connect-2017-08-08.min.json +1266 -499
- package/node_modules/aws-sdk/apis/connect-2017-08-08.paginators.json +24 -0
- package/node_modules/aws-sdk/apis/connectcases-2022-10-03.min.json +205 -63
- package/node_modules/aws-sdk/apis/controltower-2018-05-10.min.json +150 -5
- package/node_modules/aws-sdk/apis/controltower-2018-05-10.paginators.json +12 -0
- package/node_modules/aws-sdk/apis/cost-optimization-hub-2022-07-26.min.json +310 -262
- package/node_modules/aws-sdk/apis/cost-optimization-hub-2022-07-26.waiters2.json +5 -0
- package/node_modules/aws-sdk/apis/cur-2017-01-06.min.json +7 -1
- package/node_modules/aws-sdk/apis/customer-profiles-2020-08-15.min.json +52 -25
- package/node_modules/aws-sdk/apis/datasync-2018-11-09.min.json +3 -0
- package/node_modules/aws-sdk/apis/datazone-2018-05-10.min.json +1064 -444
- package/node_modules/aws-sdk/apis/datazone-2018-05-10.paginators.json +12 -0
- package/node_modules/aws-sdk/apis/devicefarm-2015-06-23.min.json +7 -1
- package/node_modules/aws-sdk/apis/directconnect-2012-10-25.min.json +7 -1
- package/node_modules/aws-sdk/apis/discovery-2015-11-01.min.json +3 -0
- package/node_modules/aws-sdk/apis/dms-2016-01-01.min.json +7 -1
- package/node_modules/aws-sdk/apis/docdb-2014-10-31.min.json +7 -1
- package/node_modules/aws-sdk/apis/ds-2015-04-16.min.json +7 -1
- package/node_modules/aws-sdk/apis/dynamodb-2011-12-05.min.json +7 -1
- package/node_modules/aws-sdk/apis/dynamodb-2012-08-10.min.json +256 -181
- package/node_modules/aws-sdk/apis/ec2-2016-11-15.min.json +397 -283
- package/node_modules/aws-sdk/apis/ecr-2015-09-21.min.json +7 -1
- package/node_modules/aws-sdk/apis/ecs-2014-11-13.min.json +290 -256
- package/node_modules/aws-sdk/apis/eks-2017-11-01.min.json +151 -84
- package/node_modules/aws-sdk/apis/elasticache-2015-02-02.min.json +7 -1
- package/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.min.json +7 -1
- package/node_modules/aws-sdk/apis/elasticfilesystem-2015-02-01.min.json +7 -1
- package/node_modules/aws-sdk/apis/elasticloadbalancingv2-2015-12-01.min.json +3 -0
- package/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.min.json +15 -3
- package/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.min.json +7 -1
- package/node_modules/aws-sdk/apis/email-2010-12-01.min.json +7 -1
- package/node_modules/aws-sdk/apis/emr-serverless-2021-07-13.min.json +172 -14
- package/node_modules/aws-sdk/apis/emr-serverless-2021-07-13.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/es-2015-01-01.min.json +7 -1
- package/node_modules/aws-sdk/apis/eventbridge-2015-10-07.min.json +87 -28
- package/node_modules/aws-sdk/apis/firehose-2015-08-04.min.json +209 -160
- package/node_modules/aws-sdk/apis/fms-2018-01-01.min.json +63 -59
- package/node_modules/aws-sdk/apis/fsx-2018-03-01.min.json +206 -164
- package/node_modules/aws-sdk/apis/gamelift-2015-10-01.min.json +7 -1
- package/node_modules/aws-sdk/apis/globalaccelerator-2018-08-08.min.json +13 -1
- package/node_modules/aws-sdk/apis/glue-2017-03-31.min.json +886 -574
- package/node_modules/aws-sdk/apis/glue-2017-03-31.paginators.json +22 -8
- package/node_modules/aws-sdk/apis/grafana-2020-08-18.min.json +317 -15
- package/node_modules/aws-sdk/apis/grafana-2020-08-18.paginators.json +12 -0
- package/node_modules/aws-sdk/apis/greengrassv2-2020-11-30.min.json +17 -3
- package/node_modules/aws-sdk/apis/groundstation-2019-05-23.min.json +7 -1
- package/node_modules/aws-sdk/apis/guardduty-2017-11-28.min.json +429 -124
- package/node_modules/aws-sdk/apis/imagebuilder-2019-12-02.min.json +3 -0
- package/node_modules/aws-sdk/apis/inspector2-2020-06-08.min.json +122 -96
- package/node_modules/aws-sdk/apis/iotfleetwise-2021-06-17.min.json +18 -10
- package/node_modules/aws-sdk/apis/iottwinmaker-2021-11-29.min.json +3 -1
- package/node_modules/aws-sdk/apis/iotwireless-2020-11-22.min.json +7 -1
- package/node_modules/aws-sdk/apis/ivs-realtime-2020-07-14.min.json +396 -242
- package/node_modules/aws-sdk/apis/ivs-realtime-2020-07-14.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/ivs-realtime-2020-07-14.waiters2.json +5 -0
- package/node_modules/aws-sdk/apis/kafka-2018-11-14.min.json +36 -6
- package/node_modules/aws-sdk/apis/kinesisanalyticsv2-2018-05-23.min.json +266 -110
- package/node_modules/aws-sdk/apis/kinesisanalyticsv2-2018-05-23.paginators.json +24 -0
- package/node_modules/aws-sdk/apis/kms-2014-11-01.examples.json +31 -0
- package/node_modules/aws-sdk/apis/kms-2014-11-01.min.json +79 -23
- package/node_modules/aws-sdk/apis/lakeformation-2017-03-31.min.json +43 -25
- package/node_modules/aws-sdk/apis/launch-wizard-2018-05-10.min.json +159 -0
- package/node_modules/aws-sdk/apis/license-manager-linux-subscriptions-2018-05-10.min.json +236 -16
- package/node_modules/aws-sdk/apis/license-manager-linux-subscriptions-2018-05-10.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/lightsail-2016-11-28.min.json +11 -2
- package/node_modules/aws-sdk/apis/location-2020-11-19.min.json +1036 -754
- package/node_modules/aws-sdk/apis/location-2020-11-19.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/macie2-2020-01-01.min.json +254 -143
- package/node_modules/aws-sdk/apis/macie2-2020-01-01.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/mailmanager-2023-10-17.min.json +1836 -0
- package/node_modules/aws-sdk/apis/mailmanager-2023-10-17.paginators.json +58 -0
- package/node_modules/aws-sdk/apis/managedblockchain-2018-09-24.min.json +3 -0
- package/node_modules/aws-sdk/apis/mediaconnect-2018-11-14.min.json +106 -94
- package/node_modules/aws-sdk/apis/mediaconvert-2017-08-29.min.json +208 -131
- package/node_modules/aws-sdk/apis/mediaconvert-2017-08-29.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/medialive-2017-10-14.min.json +367 -364
- package/node_modules/aws-sdk/apis/mediapackagev2-2022-12-25.examples.json +1271 -0
- package/node_modules/aws-sdk/apis/mediapackagev2-2022-12-25.min.json +108 -71
- package/node_modules/aws-sdk/apis/medical-imaging-2023-07-19.min.json +8 -5
- package/node_modules/aws-sdk/apis/metadata.json +20 -9
- package/node_modules/aws-sdk/apis/mq-2017-11-27.min.json +4 -4
- package/node_modules/aws-sdk/apis/mwaa-2020-07-01.min.json +178 -158
- package/node_modules/aws-sdk/apis/networkmanager-2019-07-05.min.json +320 -176
- package/node_modules/aws-sdk/apis/omics-2022-11-28.min.json +36 -22
- package/node_modules/aws-sdk/apis/opensearch-2021-01-01.min.json +190 -115
- package/node_modules/aws-sdk/apis/opsworks-2013-02-18.min.json +3 -0
- package/node_modules/aws-sdk/apis/organizations-2016-11-28.min.json +7 -1
- package/node_modules/aws-sdk/apis/osis-2022-01-01.min.json +77 -28
- package/node_modules/aws-sdk/apis/payment-cryptography-2021-09-14.min.json +10 -1
- package/node_modules/aws-sdk/apis/payment-cryptography-data-2022-02-03.min.json +544 -383
- package/node_modules/aws-sdk/apis/payment-cryptography-data-2022-02-03.waiters2.json +5 -0
- package/node_modules/aws-sdk/apis/pca-connector-scep-2018-05-10.examples.json +5 -0
- package/node_modules/aws-sdk/apis/pca-connector-scep-2018-05-10.min.json +456 -0
- package/node_modules/aws-sdk/apis/pca-connector-scep-2018-05-10.paginators.json +16 -0
- package/node_modules/aws-sdk/apis/pca-connector-scep-2018-05-10.waiters2.json +5 -0
- package/node_modules/aws-sdk/apis/personalize-2018-05-22.min.json +153 -44
- package/node_modules/aws-sdk/apis/personalize-runtime-2018-05-22.min.json +9 -1
- package/node_modules/aws-sdk/apis/pi-2018-02-27.min.json +28 -18
- package/node_modules/aws-sdk/apis/pinpoint-2016-12-01.min.json +403 -378
- package/node_modules/aws-sdk/apis/pinpoint-sms-voice-v2-2022-03-31.min.json +521 -99
- package/node_modules/aws-sdk/apis/pinpoint-sms-voice-v2-2022-03-31.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/pipes-2015-10-07.min.json +632 -555
- package/node_modules/aws-sdk/apis/pipes-2015-10-07.waiters2.json +5 -0
- package/node_modules/aws-sdk/apis/polly-2016-06-10.min.json +7 -1
- package/node_modules/aws-sdk/apis/qapps-2023-11-27.examples.json +583 -0
- package/node_modules/aws-sdk/apis/qapps-2023-11-27.min.json +1312 -0
- package/node_modules/aws-sdk/apis/qapps-2023-11-27.paginators.json +16 -0
- package/node_modules/aws-sdk/apis/qapps-2023-11-27.waiters2.json +5 -0
- package/node_modules/aws-sdk/apis/qbusiness-2023-11-27.examples.json +2 -3
- package/node_modules/aws-sdk/apis/qbusiness-2023-11-27.min.json +813 -689
- package/node_modules/aws-sdk/apis/qbusiness-2023-11-27.paginators.json +1 -1
- package/node_modules/aws-sdk/apis/qbusiness-2023-11-27.waiters2.json +5 -0
- package/node_modules/aws-sdk/apis/qconnect-2020-10-19.min.json +335 -108
- package/node_modules/aws-sdk/apis/qconnect-2020-10-19.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/quicksight-2018-04-01.min.json +2113 -1354
- package/node_modules/aws-sdk/apis/rds-2013-01-10.min.json +4 -1
- package/node_modules/aws-sdk/apis/rds-2013-02-12.min.json +4 -1
- package/node_modules/aws-sdk/apis/rds-2013-09-09.min.json +4 -1
- package/node_modules/aws-sdk/apis/rds-2014-09-01.min.json +4 -1
- package/node_modules/aws-sdk/apis/rds-2014-10-31.min.json +25 -10
- package/node_modules/aws-sdk/apis/redshift-2012-12-01.min.json +7 -1
- package/node_modules/aws-sdk/apis/redshift-serverless-2021-04-21.min.json +7 -1
- package/node_modules/aws-sdk/apis/rekognition-2016-06-27.min.json +15 -3
- package/node_modules/aws-sdk/apis/resiliencehub-2020-04-30.min.json +63 -14
- package/node_modules/aws-sdk/apis/resiliencehub-2020-04-30.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/route53domains-2014-05-15.min.json +7 -1
- package/node_modules/aws-sdk/apis/route53profiles-2018-05-10.min.json +3 -0
- package/node_modules/aws-sdk/apis/route53resolver-2018-04-01.min.json +62 -53
- package/node_modules/aws-sdk/apis/s3-2006-03-01.examples.json +76 -76
- package/node_modules/aws-sdk/apis/s3-2006-03-01.min.json +46 -5
- package/node_modules/aws-sdk/apis/sagemaker-2017-07-24.min.json +1958 -1211
- package/node_modules/aws-sdk/apis/sagemaker-2017-07-24.paginators.json +12 -0
- package/node_modules/aws-sdk/apis/secretsmanager-2017-10-17.min.json +11 -1
- package/node_modules/aws-sdk/apis/securityhub-2018-10-26.min.json +7 -1
- package/node_modules/aws-sdk/apis/securitylake-2018-05-10.min.json +7 -1
- package/node_modules/aws-sdk/apis/sesv2-2019-09-27.min.json +148 -136
- package/node_modules/aws-sdk/apis/shield-2016-06-02.min.json +7 -1
- package/node_modules/aws-sdk/apis/signer-2017-08-25.min.json +3 -0
- package/node_modules/aws-sdk/apis/snowball-2016-06-30.min.json +7 -1
- package/node_modules/aws-sdk/apis/sns-2010-03-31.min.json +7 -1
- package/node_modules/aws-sdk/apis/sqs-2012-11-05.min.json +24 -14
- package/node_modules/aws-sdk/apis/ssm-2014-11-06.min.json +14 -3
- package/node_modules/aws-sdk/apis/ssm-sap-2018-05-10.min.json +95 -0
- package/node_modules/aws-sdk/apis/ssm-sap-2018-05-10.paginators.json +6 -0
- package/node_modules/aws-sdk/apis/sso-oidc-2019-06-10.examples.json +9 -0
- package/node_modules/aws-sdk/apis/sso-oidc-2019-06-10.min.json +32 -9
- package/node_modules/aws-sdk/apis/states-2016-11-23.min.json +4 -1
- package/node_modules/aws-sdk/apis/storagegateway-2013-06-30.min.json +30 -14
- package/node_modules/aws-sdk/apis/swf-2012-01-25.min.json +104 -68
- package/node_modules/aws-sdk/apis/taxsettings-2018-05-10.examples.json +5 -0
- package/node_modules/aws-sdk/apis/taxsettings-2018-05-10.min.json +658 -0
- package/node_modules/aws-sdk/apis/taxsettings-2018-05-10.paginators.json +10 -0
- package/node_modules/aws-sdk/apis/timestream-query-2018-11-01.min.json +71 -23
- package/node_modules/aws-sdk/apis/transcribe-2017-10-26.min.json +101 -76
- package/node_modules/aws-sdk/apis/transfer-2018-11-05.min.json +19 -8
- package/node_modules/aws-sdk/apis/trustedadvisor-2022-09-15.min.json +107 -46
- package/node_modules/aws-sdk/apis/verifiedpermissions-2021-12-01.min.json +345 -83
- package/node_modules/aws-sdk/apis/waf-2015-08-24.min.json +7 -1
- package/node_modules/aws-sdk/apis/wafv2-2019-07-29.min.json +46 -33
- package/node_modules/aws-sdk/apis/workspaces-2015-04-08.min.json +513 -76
- package/node_modules/aws-sdk/apis/workspaces-thin-client-2023-08-22.min.json +30 -13
- package/node_modules/aws-sdk/apis/workspaces-web-2020-07-08.min.json +8 -1
- package/node_modules/aws-sdk/clients/accessanalyzer.d.ts +162 -3
- package/node_modules/aws-sdk/clients/account.d.ts +84 -9
- package/node_modules/aws-sdk/clients/acm.d.ts +8 -8
- package/node_modules/aws-sdk/clients/acmpca.d.ts +40 -40
- package/node_modules/aws-sdk/clients/all.d.ts +6 -3
- package/node_modules/aws-sdk/clients/all.js +7 -4
- package/node_modules/aws-sdk/clients/amplify.d.ts +15 -14
- package/node_modules/aws-sdk/clients/applicationautoscaling.d.ts +43 -43
- package/node_modules/aws-sdk/clients/applicationsignals.d.ts +955 -0
- package/node_modules/aws-sdk/clients/applicationsignals.js +18 -0
- package/node_modules/aws-sdk/clients/apptest.d.ts +2019 -0
- package/node_modules/aws-sdk/clients/apptest.js +19 -0
- package/node_modules/aws-sdk/clients/arczonalshift.d.ts +66 -29
- package/node_modules/aws-sdk/clients/artifact.d.ts +68 -64
- package/node_modules/aws-sdk/clients/artifact.js +1 -0
- package/node_modules/aws-sdk/clients/athena.d.ts +5 -5
- package/node_modules/aws-sdk/clients/auditmanager.d.ts +45 -33
- package/node_modules/aws-sdk/clients/autoscaling.d.ts +67 -67
- package/node_modules/aws-sdk/clients/b2bi.d.ts +8 -8
- package/node_modules/aws-sdk/clients/batch.d.ts +54 -1
- package/node_modules/aws-sdk/clients/bedrock.d.ts +63 -14
- package/node_modules/aws-sdk/clients/bedrockagent.d.ts +2327 -211
- package/node_modules/aws-sdk/clients/bedrockagentruntime.d.ts +666 -28
- package/node_modules/aws-sdk/clients/bedrockruntime.d.ts +849 -4
- package/node_modules/aws-sdk/clients/budgets.d.ts +84 -1
- package/node_modules/aws-sdk/clients/chatbot.d.ts +100 -0
- package/node_modules/aws-sdk/clients/chimesdkmediapipelines.d.ts +19 -15
- package/node_modules/aws-sdk/clients/chimesdkvoice.d.ts +9 -9
- package/node_modules/aws-sdk/clients/cloudformation.d.ts +11 -2
- package/node_modules/aws-sdk/clients/cloudfront.d.ts +7 -7
- package/node_modules/aws-sdk/clients/cloudhsmv2.d.ts +134 -34
- package/node_modules/aws-sdk/clients/cloudtrail.d.ts +29 -12
- package/node_modules/aws-sdk/clients/codeartifact.d.ts +28 -28
- package/node_modules/aws-sdk/clients/codebuild.d.ts +71 -24
- package/node_modules/aws-sdk/clients/codegurusecurity.d.ts +60 -55
- package/node_modules/aws-sdk/clients/codepipeline.d.ts +4 -4
- package/node_modules/aws-sdk/clients/cognitoidentityserviceprovider.d.ts +1 -1
- package/node_modules/aws-sdk/clients/computeoptimizer.d.ts +449 -47
- package/node_modules/aws-sdk/clients/connect.d.ts +935 -35
- package/node_modules/aws-sdk/clients/connectcases.d.ts +124 -1
- package/node_modules/aws-sdk/clients/controltower.d.ts +244 -44
- package/node_modules/aws-sdk/clients/costoptimizationhub.d.ts +380 -328
- package/node_modules/aws-sdk/clients/costoptimizationhub.js +1 -0
- package/node_modules/aws-sdk/clients/customerprofiles.d.ts +35 -5
- package/node_modules/aws-sdk/clients/datasync.d.ts +7 -7
- package/node_modules/aws-sdk/clients/datazone.d.ts +667 -5
- package/node_modules/aws-sdk/clients/directconnect.d.ts +40 -25
- package/node_modules/aws-sdk/clients/dynamodb.d.ts +114 -45
- package/node_modules/aws-sdk/clients/ec2.d.ts +423 -284
- package/node_modules/aws-sdk/clients/ecr.d.ts +2 -2
- package/node_modules/aws-sdk/clients/ecs.d.ts +47 -5
- package/node_modules/aws-sdk/clients/eks.d.ts +100 -20
- package/node_modules/aws-sdk/clients/elasticache.d.ts +6 -6
- package/node_modules/aws-sdk/clients/elbv2.d.ts +6 -6
- package/node_modules/aws-sdk/clients/emr.d.ts +12 -4
- package/node_modules/aws-sdk/clients/emrserverless.d.ts +191 -0
- package/node_modules/aws-sdk/clients/eventbridge.d.ts +111 -20
- package/node_modules/aws-sdk/clients/firehose.d.ts +73 -10
- package/node_modules/aws-sdk/clients/fms.d.ts +12 -7
- package/node_modules/aws-sdk/clients/fsx.d.ts +84 -36
- package/node_modules/aws-sdk/clients/globalaccelerator.d.ts +8 -0
- package/node_modules/aws-sdk/clients/glue.d.ts +504 -23
- package/node_modules/aws-sdk/clients/grafana.d.ts +297 -11
- package/node_modules/aws-sdk/clients/greengrassv2.d.ts +15 -5
- package/node_modules/aws-sdk/clients/guardduty.d.ts +277 -5
- package/node_modules/aws-sdk/clients/inspector2.d.ts +49 -3
- package/node_modules/aws-sdk/clients/iotfleetwise.d.ts +11 -1
- package/node_modules/aws-sdk/clients/iottwinmaker.d.ts +1 -1
- package/node_modules/aws-sdk/clients/iotwireless.d.ts +2 -2
- package/node_modules/aws-sdk/clients/ivsrealtime.d.ts +433 -235
- package/node_modules/aws-sdk/clients/ivsrealtime.js +1 -0
- package/node_modules/aws-sdk/clients/kafka.d.ts +35 -0
- package/node_modules/aws-sdk/clients/kinesisanalyticsv2.d.ts +147 -3
- package/node_modules/aws-sdk/clients/kms.d.ts +78 -12
- package/node_modules/aws-sdk/clients/lakeformation.d.ts +17 -0
- package/node_modules/aws-sdk/clients/launchwizard.d.ts +181 -8
- package/node_modules/aws-sdk/clients/licensemanagerlinuxsubscriptions.d.ts +249 -10
- package/node_modules/aws-sdk/clients/lightsail.d.ts +29 -25
- package/node_modules/aws-sdk/clients/location.d.ts +981 -677
- package/node_modules/aws-sdk/clients/macie2.d.ts +149 -44
- package/node_modules/aws-sdk/clients/mailmanager.d.ts +2320 -0
- package/node_modules/aws-sdk/clients/mailmanager.js +18 -0
- package/node_modules/aws-sdk/clients/managedblockchain.d.ts +4 -4
- package/node_modules/aws-sdk/clients/mediaconnect.d.ts +13 -0
- package/node_modules/aws-sdk/clients/mediaconvert.d.ts +77 -6
- package/node_modules/aws-sdk/clients/medialive.d.ts +8 -0
- package/node_modules/aws-sdk/clients/mediapackagev2.d.ts +57 -4
- package/node_modules/aws-sdk/clients/medicalimaging.d.ts +7 -2
- package/node_modules/aws-sdk/clients/mq.d.ts +15 -15
- package/node_modules/aws-sdk/clients/mwaa.d.ts +215 -189
- package/node_modules/aws-sdk/clients/networkmanager.d.ts +237 -11
- package/node_modules/aws-sdk/clients/omics.d.ts +89 -53
- package/node_modules/aws-sdk/clients/opensearch.d.ts +120 -3
- package/node_modules/aws-sdk/clients/opsworks.d.ts +117 -117
- package/node_modules/aws-sdk/clients/organizations.d.ts +2 -2
- package/node_modules/aws-sdk/clients/osis.d.ts +89 -5
- package/node_modules/aws-sdk/clients/paymentcryptography.d.ts +3 -3
- package/node_modules/aws-sdk/clients/paymentcryptographydata.d.ts +358 -311
- package/node_modules/aws-sdk/clients/paymentcryptographydata.js +1 -0
- package/node_modules/aws-sdk/clients/pcaconnectorscep.d.ts +486 -0
- package/node_modules/aws-sdk/clients/pcaconnectorscep.js +19 -0
- package/node_modules/aws-sdk/clients/personalize.d.ts +160 -1
- package/node_modules/aws-sdk/clients/personalizeruntime.d.ts +6 -0
- package/node_modules/aws-sdk/clients/pi.d.ts +17 -10
- package/node_modules/aws-sdk/clients/pinpoint.d.ts +27 -0
- package/node_modules/aws-sdk/clients/pinpointsmsvoicev2.d.ts +514 -8
- package/node_modules/aws-sdk/clients/pipes.d.ts +455 -348
- package/node_modules/aws-sdk/clients/pipes.js +1 -0
- package/node_modules/aws-sdk/clients/polly.d.ts +9 -9
- package/node_modules/aws-sdk/clients/qapps.d.ts +1442 -0
- package/node_modules/aws-sdk/clients/qapps.js +19 -0
- package/node_modules/aws-sdk/clients/qbusiness.d.ts +855 -699
- package/node_modules/aws-sdk/clients/qbusiness.js +1 -0
- package/node_modules/aws-sdk/clients/qconnect.d.ts +219 -1
- package/node_modules/aws-sdk/clients/quicksight.d.ts +901 -14
- package/node_modules/aws-sdk/clients/rds.d.ts +67 -19
- package/node_modules/aws-sdk/clients/redshift.d.ts +16 -16
- package/node_modules/aws-sdk/clients/redshiftserverless.d.ts +17 -7
- package/node_modules/aws-sdk/clients/rekognition.d.ts +11 -3
- package/node_modules/aws-sdk/clients/resiliencehub.d.ts +80 -15
- package/node_modules/aws-sdk/clients/route53profiles.d.ts +4 -4
- package/node_modules/aws-sdk/clients/route53resolver.d.ts +18 -5
- package/node_modules/aws-sdk/clients/s3.d.ts +34 -10
- package/node_modules/aws-sdk/clients/sagemaker.d.ts +1065 -59
- package/node_modules/aws-sdk/clients/secretsmanager.d.ts +20 -15
- package/node_modules/aws-sdk/clients/securityhub.d.ts +71 -71
- package/node_modules/aws-sdk/clients/securitylake.d.ts +3 -3
- package/node_modules/aws-sdk/clients/sesv2.d.ts +28 -10
- package/node_modules/aws-sdk/clients/signer.d.ts +3 -3
- package/node_modules/aws-sdk/clients/sns.d.ts +7 -7
- package/node_modules/aws-sdk/clients/sqs.d.ts +24 -19
- package/node_modules/aws-sdk/clients/ssmsap.d.ts +121 -1
- package/node_modules/aws-sdk/clients/ssooidc.d.ts +32 -4
- package/node_modules/aws-sdk/clients/storagegateway.d.ts +37 -22
- package/node_modules/aws-sdk/clients/swf.d.ts +38 -2
- package/node_modules/aws-sdk/clients/taxsettings.d.ts +809 -0
- package/node_modules/aws-sdk/clients/taxsettings.js +18 -0
- package/node_modules/aws-sdk/clients/timestreamquery.d.ts +54 -0
- package/node_modules/aws-sdk/clients/transcribeservice.d.ts +32 -0
- package/node_modules/aws-sdk/clients/transfer.d.ts +5 -5
- package/node_modules/aws-sdk/clients/trustedadvisor.d.ts +66 -2
- package/node_modules/aws-sdk/clients/verifiedpermissions.d.ts +300 -14
- package/node_modules/aws-sdk/clients/vpclattice.d.ts +81 -81
- package/node_modules/aws-sdk/clients/wafv2.d.ts +35 -5
- package/node_modules/aws-sdk/clients/workspaces.d.ts +598 -6
- package/node_modules/aws-sdk/clients/workspacesthinclient.d.ts +15 -0
- package/node_modules/aws-sdk/clients/workspacesweb.d.ts +21 -1
- package/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js +9 -5
- package/node_modules/aws-sdk/dist/aws-sdk-react-native.js +2141 -1908
- package/node_modules/aws-sdk/dist/aws-sdk.js +4544 -2431
- package/node_modules/aws-sdk/dist/aws-sdk.min.js +107 -106
- package/node_modules/aws-sdk/lib/config_service_placeholders.d.ts +12 -6
- package/node_modules/aws-sdk/lib/core.js +1 -1
- package/node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js +9 -0
- package/node_modules/aws-sdk/lib/credentials/sso_credentials.js +1 -1
- package/node_modules/aws-sdk/lib/credentials/token_file_web_identity_credentials.d.ts +2 -2
- package/node_modules/aws-sdk/lib/dynamodb/document_client.d.ts +86 -17
- package/node_modules/aws-sdk/lib/metadata_service.d.ts +4 -0
- package/node_modules/aws-sdk/lib/metadata_service.js +1 -2
- package/node_modules/aws-sdk/lib/protocol/rest_json.js +2 -1
- package/node_modules/aws-sdk/lib/query/query_param_serializer.js +3 -1
- package/node_modules/aws-sdk/lib/region_config.js +2 -1
- package/node_modules/aws-sdk/lib/services/s3.js +51 -6
- package/node_modules/aws-sdk/lib/shared-ini/ini-loader.d.ts +24 -1
- package/node_modules/aws-sdk/lib/shared-ini/ini-loader.js +0 -6
- package/node_modules/aws-sdk/package.json +1 -1
- package/node_modules/aws-sdk/scripts/region-checker/allowlist.js +10 -10
- package/node_modules/xml2js/node_modules/sax/LICENSE +2 -2
- package/node_modules/xml2js/node_modules/sax/README.md +3 -0
- package/node_modules/xml2js/node_modules/sax/lib/sax.js +33 -10
- package/node_modules/xml2js/node_modules/sax/package.json +1 -1
- package/package.json +18 -16
- package/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.min.json +0 -2905
- package/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.paginators.json +0 -94
- package/node_modules/aws-sdk/apis/backupstorage-2018-04-10.min.json +0 -522
- package/node_modules/aws-sdk/apis/backupstorage-2018-04-10.paginators.json +0 -14
- package/node_modules/aws-sdk/apis/honeycode-2020-03-01.min.json +0 -962
- package/node_modules/aws-sdk/apis/honeycode-2020-03-01.paginators.json +0 -27
- package/node_modules/aws-sdk/clients/alexaforbusiness.d.ts +0 -3862
- package/node_modules/aws-sdk/clients/alexaforbusiness.js +0 -18
- package/node_modules/aws-sdk/clients/backupstorage.d.ts +0 -469
- package/node_modules/aws-sdk/clients/backupstorage.js +0 -18
- package/node_modules/aws-sdk/clients/honeycode.d.ts +0 -910
- package/node_modules/aws-sdk/clients/honeycode.js +0 -18
- /package/node_modules/aws-sdk/apis/{alexaforbusiness-2017-11-09.examples.json → application-signals-2024-04-15.examples.json} +0 -0
- /package/node_modules/aws-sdk/apis/{backupstorage-2018-04-10.examples.json → apptest-2022-12-06.examples.json} +0 -0
- /package/node_modules/aws-sdk/apis/{honeycode-2020-03-01.examples.json → mailmanager-2023-10-17.examples.json} +0 -0
package/.jsii
CHANGED
@@ -7,8 +7,8 @@
|
|
7
7
|
"url": "https://fantasticsie.medium.com/"
|
8
8
|
},
|
9
9
|
"bundled": {
|
10
|
-
"aws-sdk": "^2.
|
11
|
-
"esbuild": "^0.
|
10
|
+
"aws-sdk": "^2.1659.0",
|
11
|
+
"esbuild": "^0.23.0"
|
12
12
|
},
|
13
13
|
"dependencies": {
|
14
14
|
"aws-cdk-lib": "^2.27.0",
|
@@ -225,8 +225,32 @@
|
|
225
225
|
}
|
226
226
|
}
|
227
227
|
},
|
228
|
-
"aws-cdk-lib.aws_apigatewayv2_authorizers": {
|
229
|
-
|
228
|
+
"aws-cdk-lib.aws_apigatewayv2_authorizers": {
|
229
|
+
"targets": {
|
230
|
+
"dotnet": {
|
231
|
+
"namespace": "Amazon.CDK.AwsApigatewayv2Authorizers"
|
232
|
+
},
|
233
|
+
"java": {
|
234
|
+
"package": "software.amazon.awscdk.aws_apigatewayv2_authorizers"
|
235
|
+
},
|
236
|
+
"python": {
|
237
|
+
"module": "aws_cdk.aws_apigatewayv2_authorizers"
|
238
|
+
}
|
239
|
+
}
|
240
|
+
},
|
241
|
+
"aws-cdk-lib.aws_apigatewayv2_integrations": {
|
242
|
+
"targets": {
|
243
|
+
"dotnet": {
|
244
|
+
"namespace": "Amazon.CDK.AwsApigatewayv2Integrations"
|
245
|
+
},
|
246
|
+
"java": {
|
247
|
+
"package": "software.amazon.awscdk.aws_apigatewayv2_integrations"
|
248
|
+
},
|
249
|
+
"python": {
|
250
|
+
"module": "aws_cdk.aws_apigatewayv2_integrations"
|
251
|
+
}
|
252
|
+
}
|
253
|
+
},
|
230
254
|
"aws-cdk-lib.aws_appconfig": {
|
231
255
|
"targets": {
|
232
256
|
"dotnet": {
|
@@ -292,6 +316,19 @@
|
|
292
316
|
}
|
293
317
|
}
|
294
318
|
},
|
319
|
+
"aws-cdk-lib.aws_applicationsignals": {
|
320
|
+
"targets": {
|
321
|
+
"dotnet": {
|
322
|
+
"package": "Amazon.CDK.AWS.ApplicationSignals"
|
323
|
+
},
|
324
|
+
"java": {
|
325
|
+
"package": "software.amazon.awscdk.services.applicationsignals"
|
326
|
+
},
|
327
|
+
"python": {
|
328
|
+
"module": "aws_cdk.aws_applicationsignals"
|
329
|
+
}
|
330
|
+
}
|
331
|
+
},
|
295
332
|
"aws-cdk-lib.aws_appmesh": {
|
296
333
|
"targets": {
|
297
334
|
"dotnet": {
|
@@ -344,6 +381,19 @@
|
|
344
381
|
}
|
345
382
|
}
|
346
383
|
},
|
384
|
+
"aws-cdk-lib.aws_apptest": {
|
385
|
+
"targets": {
|
386
|
+
"dotnet": {
|
387
|
+
"package": "Amazon.CDK.AWS.AppTest"
|
388
|
+
},
|
389
|
+
"java": {
|
390
|
+
"package": "software.amazon.awscdk.services.apptest"
|
391
|
+
},
|
392
|
+
"python": {
|
393
|
+
"module": "aws_cdk.aws_apptest"
|
394
|
+
}
|
395
|
+
}
|
396
|
+
},
|
347
397
|
"aws-cdk-lib.aws_aps": {
|
348
398
|
"targets": {
|
349
399
|
"dotnet": {
|
@@ -2581,6 +2631,19 @@
|
|
2581
2631
|
}
|
2582
2632
|
}
|
2583
2633
|
},
|
2634
|
+
"aws-cdk-lib.aws_paymentcryptography": {
|
2635
|
+
"targets": {
|
2636
|
+
"dotnet": {
|
2637
|
+
"package": "Amazon.CDK.AWS.PaymentCryptography"
|
2638
|
+
},
|
2639
|
+
"java": {
|
2640
|
+
"package": "software.amazon.awscdk.services.paymentcryptography"
|
2641
|
+
},
|
2642
|
+
"python": {
|
2643
|
+
"module": "aws_cdk.aws_paymentcryptography"
|
2644
|
+
}
|
2645
|
+
}
|
2646
|
+
},
|
2584
2647
|
"aws-cdk-lib.aws_pcaconnectorad": {
|
2585
2648
|
"targets": {
|
2586
2649
|
"dotnet": {
|
@@ -2659,6 +2722,19 @@
|
|
2659
2722
|
}
|
2660
2723
|
}
|
2661
2724
|
},
|
2725
|
+
"aws-cdk-lib.aws_qbusiness": {
|
2726
|
+
"targets": {
|
2727
|
+
"dotnet": {
|
2728
|
+
"package": "Amazon.CDK.AWS.QBusiness"
|
2729
|
+
},
|
2730
|
+
"java": {
|
2731
|
+
"package": "software.amazon.awscdk.services.qbusiness"
|
2732
|
+
},
|
2733
|
+
"python": {
|
2734
|
+
"module": "aws_cdk.aws_qbusiness"
|
2735
|
+
}
|
2736
|
+
}
|
2737
|
+
},
|
2662
2738
|
"aws-cdk-lib.aws_qldb": {
|
2663
2739
|
"targets": {
|
2664
2740
|
"dotnet": {
|
@@ -2867,6 +2943,19 @@
|
|
2867
2943
|
}
|
2868
2944
|
}
|
2869
2945
|
},
|
2946
|
+
"aws-cdk-lib.aws_route53profiles": {
|
2947
|
+
"targets": {
|
2948
|
+
"dotnet": {
|
2949
|
+
"package": "Amazon.CDK.AWS.Route53Profiles"
|
2950
|
+
},
|
2951
|
+
"java": {
|
2952
|
+
"package": "software.amazon.awscdk.services.route53profiles"
|
2953
|
+
},
|
2954
|
+
"python": {
|
2955
|
+
"module": "aws_cdk.aws_route53profiles"
|
2956
|
+
}
|
2957
|
+
}
|
2958
|
+
},
|
2870
2959
|
"aws-cdk-lib.aws_route53recoverycontrol": {
|
2871
2960
|
"targets": {
|
2872
2961
|
"dotnet": {
|
@@ -3718,7 +3807,7 @@
|
|
3718
3807
|
"stability": "stable"
|
3719
3808
|
},
|
3720
3809
|
"homepage": "https://github.com/HsiehShuJeng/cdk-comprehend-s3olap.git",
|
3721
|
-
"jsiiVersion": "
|
3810
|
+
"jsiiVersion": "5.4.26 (build 23f0c56)",
|
3722
3811
|
"keywords": [
|
3723
3812
|
"AWS::S3ObjectLambda",
|
3724
3813
|
"amazon-comprehhend",
|
@@ -5819,6 +5908,6 @@
|
|
5819
5908
|
"symbolId": "src/cdk-comprehend-s3olap:S3AccessPointNames"
|
5820
5909
|
}
|
5821
5910
|
},
|
5822
|
-
"version": "2.0.
|
5823
|
-
"fingerprint": "
|
5911
|
+
"version": "2.0.480",
|
5912
|
+
"fingerprint": "7nVv9Z7jmf/NjnusVUiQriUaT68HSHoZ9fi0vPGyzac="
|
5824
5913
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Construct } from 'constructs';
|
2
2
|
import { AccessConrtolLambdaProps, RedactionLambdaProps } from './comprehend-lambdas';
|
3
|
-
import {
|
3
|
+
import { AdminRoleProps, BillingRoleProps, CustSupportRoleProps, GeneralRoleProps } from './iam-roles';
|
4
4
|
export declare enum IamRoleName {
|
5
5
|
GENERAL = "General",
|
6
6
|
ADMIN = "Admin",
|
@@ -23,7 +23,7 @@ var IamRoleName;
|
|
23
23
|
IamRoleName["ADMIN"] = "Admin";
|
24
24
|
IamRoleName["BILLING"] = "Billing";
|
25
25
|
IamRoleName["CUST_SUPPORT"] = "CustSupport";
|
26
|
-
})(IamRoleName
|
26
|
+
})(IamRoleName || (exports.IamRoleName = IamRoleName = {}));
|
27
27
|
/**
|
28
28
|
* Creates the foundation necessary to deploy the S3 Object Lambda Acceess Control Use Case.
|
29
29
|
*/
|
@@ -237,19 +237,23 @@ class ComprehendS3olab extends constructs_1.Construct {
|
|
237
237
|
// S3 access points
|
238
238
|
const generalAccessPoint = new s3.CfnAccessPoint(this, 'AccessControlS3AccessPoint', {
|
239
239
|
bucket: surveyBucket.bucketName,
|
240
|
+
// name: s3AccessPointNames.general.substring(0, 50),
|
240
241
|
});
|
241
242
|
generalAccessPoint.addPropertyOverride('Name', s3AccessPointNames.general.substring(0, 50));
|
242
243
|
generalAccessPoint.addOverride;
|
243
244
|
const adminAccessPoint = new s3.CfnAccessPoint(this, 'AdminS3AccessPoint', {
|
244
245
|
bucket: transcriptBucket.bucketName,
|
246
|
+
// name: s3AccessPointNames.admin.substring(0, 50),
|
245
247
|
});
|
246
248
|
adminAccessPoint.addPropertyOverride('Name', s3AccessPointNames.admin.substring(0, 50));
|
247
249
|
const billingAccessPoint = new s3.CfnAccessPoint(this, 'BillingS3AccessPoint', {
|
248
250
|
bucket: transcriptBucket.bucketName,
|
251
|
+
// name: s3AccessPointNames.billing.substring(0, 50),
|
249
252
|
});
|
250
253
|
adminAccessPoint.addPropertyOverride('Name', s3AccessPointNames.billing.substring(0, 50));
|
251
254
|
const customerSupportAccessPoint = new s3.CfnAccessPoint(this, 'CustomerSupportS3AccessPoint', {
|
252
255
|
bucket: transcriptBucket.bucketName,
|
256
|
+
// name: s3AccessPointNames.customerSupport.substring(0, 50),
|
253
257
|
});
|
254
258
|
customerSupportAccessPoint.addPropertyOverride('Name', s3AccessPointNames.customerSupport.substring(0, 50));
|
255
259
|
// S3ObjectLambda resources
|
@@ -417,7 +421,7 @@ class ComprehendS3olab extends constructs_1.Construct {
|
|
417
421
|
}
|
418
422
|
exports.ComprehendS3olab = ComprehendS3olab;
|
419
423
|
_a = JSII_RTTI_SYMBOL_1;
|
420
|
-
ComprehendS3olab[_a] = { fqn: "cdk-comprehend-s3olap.ComprehendS3olab", version: "2.0.
|
424
|
+
ComprehendS3olab[_a] = { fqn: "cdk-comprehend-s3olap.ComprehendS3olab", version: "2.0.480" };
|
421
425
|
class LambdaArnCaptorCustomResource extends constructs_1.Construct {
|
422
426
|
constructor(scope, id, props) {
|
423
427
|
super(scope, id);
|
@@ -453,7 +457,7 @@ class LambdaArnCaptorCustomResource extends constructs_1.Construct {
|
|
453
457
|
entry: fs.existsSync(path.join(__dirname, 'resources/lambda-arn-helper.ts')) ? path.join(__dirname, 'resources/lambda-arn-helper.ts') : path.join(__dirname, 'resources/lambda-arn-helper.js'),
|
454
458
|
handler: 'lambdaHandler',
|
455
459
|
timeout: cdk.Duration.minutes(2),
|
456
|
-
runtime: aws_lambda_1.Runtime.
|
460
|
+
runtime: aws_lambda_1.Runtime.NODEJS_20_X,
|
457
461
|
bundling: {
|
458
462
|
minify: false,
|
459
463
|
sourceMap: true,
|
@@ -478,5 +482,5 @@ class LambdaArnCaptorCustomResource extends constructs_1.Construct {
|
|
478
482
|
}
|
479
483
|
exports.LambdaArnCaptorCustomResource = LambdaArnCaptorCustomResource;
|
480
484
|
_b = JSII_RTTI_SYMBOL_1;
|
481
|
-
LambdaArnCaptorCustomResource[_b] = { fqn: "cdk-comprehend-s3olap.LambdaArnCaptorCustomResource", version: "2.0.
|
482
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbXByZWhlbmQtczNvbGFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nkay1jb21wcmVoZW5kLXMzb2xhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQyx1REFBaUQ7QUFDakQsd0RBQXdEO0FBQ3hELDZDQUE2QztBQUM3Qyx5Q0FBeUM7QUFDekMsMERBQTBEO0FBQzFELGlFQUFpRTtBQUNqRSxtREFBbUQ7QUFDbkQsMkNBQXVDO0FBQ3ZDLDZEQUE0SDtBQUM1SCwyQ0FLcUI7QUFFckIsSUFBWSxXQUtYO0FBTEQsV0FBWSxXQUFXO0lBQ3JCLGtDQUFtQixDQUFBO0lBQ25CLDhCQUFlLENBQUE7SUFDZixrQ0FBbUIsQ0FBQTtJQUNuQiwyQ0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBTFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFLdEI7QUErRkQ7O0dBRUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBaUM3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUEwU25COzs7OztXQUtHO1FBQ0ssMkJBQXNCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLHNCQUE2QyxFQUFtQixFQUFFO1lBQ3BILE1BQU0sZUFBZSxHQUFHLHNCQUFzQixFQUFFLGVBQWUsSUFBSSxPQUFPLENBQUM7WUFDM0UsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQztZQUM1RCxNQUFNLHVCQUF1QixHQUFHLHNCQUFzQixFQUFFLHVCQUF1QixJQUFJLE1BQU0sQ0FBQztZQUMxRixNQUFNLHdCQUF3QixHQUFHLHNCQUFzQixFQUFFLHdCQUF3QixJQUFJLE9BQU8sQ0FBQztZQUM3RixNQUFNLGtDQUFrQyxHQUFHLHNC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bUIsRUFBRTtZQUM3RixZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsVUFBVSxFQUFFO2dCQUNWLGVBQWUsRUFBRSxLQUFLLENBQUMsaUJBQWlCO2dCQUN4QyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7YUFDdEI7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7O0FBaEVILHNFQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgUnVudGltZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzZGVscG95IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50JztcbmltcG9ydCAqIGFzIHMzb2JqZWN0bGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM29iamVjdGxhbWJkYSc7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQWNjZXNzQ29ucnRvbExhbWJkYSwgQWNjZXNzQ29ucnRvbExhbWJkYVByb3BzLCBSZWRhY3Rpb25MYW1iZGEsIFJlZGFjdGlvbkxhbWJkYVByb3BzIH0gZnJvbSAnLi9jb21wcmVoZW5kLWxhbWJkYXMnO1xuaW1wb3J0IHtcbiAgR2VuZXJhbFJvbGUsIEdlbmVyYWxSb2xlUHJvcHMsXG4gIEFkbWluUm9sZSwgQWRtaW5Sb2xlUHJvcHMsXG4gIEJpbGxpbmdSb2xlLCBCaWxsaW5nUm9sZVByb3BzLFxuICBDdXN0U3VwcG9ydFJvbGUsIEN1c3RTdXBwb3J0Um9sZVByb3BzLFxufSBmcm9tICcuL2lhbS1yb2xlcyc7XG5cbmV4cG9ydCBlbnVtIElhbVJvbGVOYW1lIHtcbiAgR0VORVJBTCA9ICdHZW5lcmFsJyxcbiAgQURNSU4gPSAnQWRtaW4nLFxuICBCSUxMSU5HID0gJ0JpbGxpbmcnLFxuICBDVVNUX1NVUFBPUlQgPSAnQ3VzdFN1cHBvcnQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNBY2Nlc3NQb2ludE5hbWVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBTMyBhY2Vlc3MgcG9pbnQgZm9yIHRoZSBnZW5lcmFsIHJvbGUgaW4gdGhlIGFjY2VzcyBjb250cm9sIGNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY2Nlc3NjdGwtczMtYXAtc3VydmV5LXJlc3VsdHMtdW5rbm93bi1waWknXG4gICAqL1xuICByZWFkb25seSBnZW5lcmFsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgUzMgYWNlZXNzIHBvaW50IGZvciB0aGUgYWRtaW4gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhZG1pbi1zMy1hY2Nlc3MtcG9pbnQtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknXG4gICAqL1xuICByZWFkb25seSBhZG1pbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIFMzIGFjZWVzcyBwb2ludCBmb3IgdGhlIGJpbGxpbmcgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdiaWxsLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSdcbiAgICovXG4gIHJlYWRvbmx5IGJpbGxpbmc6IHN0cmluZztcbiAgLyoqXG4gICogVGhlIG5hbWUgb2YgdGhlIFMzIGFjZWVzcyBwb2ludCBmb3IgdGhlIGN1c3RvbWVyIHN1cHBvcnQgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICpcbiAgKiBAZGVmYXVsdCAnY3MtczMtYWNjZXNzLXBvaW50LWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJ1xuICAqL1xuICByZWFkb25seSBjdXN0b21lclN1cHBvcnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wcmVoZW5kUzNvbGFiUHJvcHMge1xuICAvKipcbiAgICogVGhlIHByZWZpeCBhdHRhY2hlZCB0byB0aGUgbmFtZSBvZiB0aGUgUzMgYnVja2V0IHdoZXJlIHlvdSBhcmUgZ29pbmcgdG8gZXhwbG9yZSB0aGUgUzMgT2JqZWN0IExhbWJkYSBwZXJ0YWluaW5nIHRvIHRoZSBhY2Nlc3MgY29udHJvbCBjYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCA2IHJhbmRvbSB3b3Jkc1xuICAgKi9cbiAgcmVhZG9ubHkgc3VydmV5QnVja2V0UHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHByZWZpeCBhdHRhY2hlZCB0byB0aGUgbmFtZSBvZiB0aGUgUzMgYnVja2V0IHdoZXJlIHlvdSBhcmUgZ29pbmcgdG8gZXhwbG9yZSB0aGUgUzMgT2JqZWN0IExhbWJkYSBwZXJ0YWluaW5nIHRvIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgNiByYW5kb20gd29yZHNcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zY3JpcHRzQnVja2V0UHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIHRoZSBTMyBhY2Nlc3MgcG9pbnRzIGZvciB0aGUgYWNjZXNzIGNvbnRyb2wgY2FzZSBhbmQgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICByZWFkb25seSBzM0FjY2Vzc1BvaW50TmFtZXM/OiBTM0FjY2Vzc1BvaW50TmFtZXM7XG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyBuZWVkZWQgZm9yIHRoZSBgQ29tcHJlaGVuZFBpaUFjY2Vzc0NvbnRyb2xTM09iamVjdExhbWJkYWAgZnVuY3Rpb24uXG4gICAqXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPzogQWNjZXNzQ29ucnRvbExhbWJkYVByb3BzO1xuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGBDb21wcmVoZW5kUGlpUmVkYWN0aW9uUzNPYmplY3RMYW1iZGFgIGZ1bmN0aW9uIGZvciB0aGUgYEFkbWluUm9sZWAuXG4gICAqL1xuICByZWFkb25seSBhZG1pblJlZGFjdGlvbkxhbWJkYUNvbmZpZz86IFJlZGFjdGlvbkxhbWJkYVByb3BzO1xuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGBDb21wcmVoZW5kUGlpUmVkYWN0aW9uUzNPYmplY3RMYW1iZGFgIGZ1bmN0aW9uIGZvciB0aGUgYEJpbGxpbmdSb2xlYC5cbiAgICovXG4gIHJlYWRvbmx5IGJpbGxpbmdSZWRhY3Rpb25MYW1iZGFDb25maWc/OiBSZWRhY3Rpb25MYW1iZGFQcm9wcztcbiAgLyoqXG4gICogVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGBDb21wcmVoZW5kUGlpUmVkYWN0aW9uUzNPYmplY3RMYW1iZGFgIGZ1bmN0aW9uIGZvciB0aGUgYEN1c3RTdXBwb3J0Um9sZWAuXG4gICovXG4gIHJlYWRvbmx5IGN1c3J0U3VwcG9ydFJlZGFjdGlvbkxhbWJkYUNvbmZpZz86IFJlZGFjdGlvbkxhbWJkYVByb3BzO1xuICAvKipcbiAgICogVGhlIG1hbmFnZWFibGUgcHJvcGVydGllcyBmb3IgdGhlIElBTSByb2xlIHVzZWQgdG8gYWNjZXNzIHRoZSBgc3VydmV5LXJlc3VsdHMudHh0YCBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhbFJvbGVDb25maWc/OiBHZW5lcmFsUm9sZVByb3BzO1xuICAvKipcbiAgICogVGhlIG1hbmFnZWFibGUgcHJvcGVydGllcyBmb3IgdGhlIGFkbWluaXN0cmF0b3IgSUFNIHJvbGUgaW4gdGhlIHJlZGFjdGlvbiBjYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRtaW5Sb2xlQ29uZmlnPzogQWRtaW5Sb2xlUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgbWFuYWdlYWJsZSBwcm9wZXJ0aWVzIGZvciB0aGUgYmlsbGluZyBJQU0gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICByZWFkb25seSBiaWxsaW5nUm9sZUNvbmZpZz86IEJpbGxpbmdSb2xlUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgbWFuYWdlYWJsZSBwcm9wZXJ0aWVzIGZvciB0aGUgY3VzdG9tZXIgc3VwcG9ydCBJQU0gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICByZWFkb25seSBjdXN0U3VwcG9ydFJvbGVDb25maWc/OiBDdXN0U3VwcG9ydFJvbGVQcm9wcztcbiAgLyoqXG4gICAqIEZvciBkaXN0aW5ndWlzaCB0ZXN0IGFuZCBub3JtYWwgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhdGVSYW5kb21DaGFyYWN0ZXJzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgcGF0aCB3aGVyZSBgZmlsZXMvYWNjZXNzX2NvbnRyb2wvKi50eHRgIGFuZCBgZmlsZXMvcmVkYWN0aW9uLyoudHh0YCB3aWxsIGJlIHB1dC5cbiAgICpcbiAgICogRE8gTk9UIElOQ0xVREUgYC9gIGluIHRoZSBlbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IF9fZGlybmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhhbXBsZUZpbGVEaXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgZm91bmRhdGlvbiBuZWNlc3NhcnkgdG8gZGVwbG95IHRoZSBTMyBPYmplY3QgTGFtYmRhIEFjY2Vlc3MgQ29udHJvbCBVc2UgQ2FzZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXByZWhlbmRTM29sYWIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgUzMgT2JqZWN0IExhbWJkYSBmb3IgYWNjZXNzIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNvYmplY3RMYW1iZGFBY2Nlc3NDb250cm9sQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGZvciB0aGUgYWRtaW4gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNvYmplY3RMYW1iZGFBZG1pbkFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgUzMgT2JqZWN0IExhbWJkYSBmb3IgdGhlIGJpbGxpbmcgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNvYmplY3RMYW1iZGFCaWxsaW5nQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGZvciB0aGUgY3VzdG9tZXIgc3VwcG9ydCByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzM29iamVjdExhbWJkYUN1c3RvbWVyU3VwcG9ydEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGNvbWJpbmVkIHdpdGggQW1hem9uIENvbXByZWhlbmQgZm9yIHRoZSBnZW5lcmFsIGNhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGlpQWNjZXNzQ29ucnRvbExhbWJkYUFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGNvbWJpbmVkIHdpdGggQW1hem9uIENvbXByZWhlbmQgZm9yIHRoaWUgYWRtaW5pc3RyYXRvciByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhZG1pbkxhbWJkYUFybjogc3RyaW5nO1xuICAvKipcbiAgKiBUaGUgQVJOIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24gY29tYmluZWQgd2l0aCBBbWF6b24gQ29tcHJlaGVuZCBmb3IgdGhpZSBiaWxsaW5nIHJvbGUgaW4gdGhlIHJlZGFjdGlvbiBjYXNlLlxuICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYmlsbGluZ0xhbWJkYUFybjogc3RyaW5nO1xuICAvKipcbiAqIFRoZSBBUk4gb2YgdGhlIExhbWJkYSBmdW5jdGlvbiBjb21iaW5lZCB3aXRoIEFtYXpvbiBDb21wcmVoZW5kIGZvciB0aGllIGN1c3RvbWVyIHN1cHBvcnQgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGN1c3RvbWVyU3VwcG9ydExhbWJkYUFybjogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29tcHJlaGVuZFMzb2xhYlByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBleGFtcGxlRmlsZURpciA9IHByb3BzPy5leGFtcGxlRmlsZURpciA/PyBfX2Rpcm5hbWU7XG4gICAgY29uc3QgZ2VuZXJhdGVSYW5kb21DaGFyYWN0ZXJzID0gcHJvcHM/LmdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycyA/PyB0cnVlO1xuICAgIC8vIHByZXJlcXVpc2l0ZXMgZm9yIElBTSByb2xlc1xuICAgIGNvbnN0IGdlbmVyYWxSb2xlQ29uZmlnID0gdGhpcy5nZXRJYW1Sb2xlQ29uZmlnKElhbVJvbGVOYW1lLkdFTkVSQUwsIHByb3BzPy5nZW5lcmFsUm9sZUNvbmZpZyk7XG4gICAgY29uc3QgYWRtaW5Sb2xlQ29uZmlnID0gdGhpcy5nZXRJYW1Sb2xlQ29uZmlnKElhbVJvbGVOYW1lLkFETUlOLCBwcm9wcz8uYWRtaW5Sb2xlQ29uZmlnKTtcbiAgICBjb25zdCBiaWxsaW5nUm9sZUNvbmZpZyA9IHRoaXMuZ2V0SWFtUm9sZUNvbmZpZyhJYW1Sb2xlTmFtZS5CSUxMSU5HLCBwcm9wcz8uYmlsbGluZ1JvbGVDb25maWcpO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0Um9sZUNvbmZpZyA9IHRoaXMuZ2V0SWFtUm9sZUNvbmZpZyhJYW1Sb2xlTmFtZS5DVVNUX1NVUFBPUlQsIHByb3BzPy5jdXN0U3VwcG9ydFJvbGVDb25maWcpO1xuICAgIC8vIHMzIGJ1Y2VrdCBhbmQgaXRzIGFjY2VzcyBwb2ludHNcbiAgICBjb25zdCBzdXJ2ZXlCdWNrZXRQcmVmaXggPSBwcm9wcy5zdXJ2ZXlCdWNrZXRQcmVmaXggPz8gdGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpO1xuICAgIGNvbnN0IHRyYW5zY3JpcHRzQnVja2V0UHJlZml4ID0gcHJvcHMudHJhbnNjcmlwdHNCdWNrZXRQcmVmaXggPz8gdGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpO1xuICAgIGNvbnN0IHMzQWNjZXNzUG9pbnROYW1lczogUzNBY2Nlc3NQb2ludE5hbWVzID0ge1xuICAgICAgZ2VuZXJhbDogcHJvcHM/LnMzQWNjZXNzUG9pbnROYW1lcz8uZ2VuZXJhbCA/PyAoKGdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycykgPyBgYWNjZXNzY3RsLXMzLWFwLXN1cnZleS1yZXN1bHRzLXVua25vd24tcGlpLSR7dGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpfWAgOiAnYWNjZXNzY3RsLXMzLWFwLXN1cnZleS1yZXN1bHRzLXVua25vd24tcGlpJyksXG4gICAgICBhZG1pbjogcHJvcHM/LnMzQWNjZXNzUG9pbnROYW1lcz8uYWRtaW4gPz8gKChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYGFkbWluLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaS0ke3RoaXMuZ2VuZXJhdGVTM1ByZWZpeCg2KX1gIDogJ2FkbWluLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaScpLFxuICAgICAgYmlsbGluZzogcHJvcHM/LnMzQWNjZXNzUG9pbnROYW1lcz8uYmlsbGluZyA/PyAoKGdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycykgPyBgYmlsbC1zMy1hY2Nlc3MtcG9pbnQtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWktJHt0aGlzLmdlbmVyYXRlUzNQcmVmaXgoNil9YCA6ICdiaWxsLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaScpLFxuICAgICAgY3VzdG9tZXJTdXBwb3J0OiBwcm9wcz8uczNBY2Nlc3NQb2ludE5hbWVzPy5jdXN0b21lclN1cHBvcnQgPz8gKChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYGNzLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaS0ke3RoaXMuZ2VuZXJhdGVTM1ByZWZpeCg2KX1gIDogJ2NzLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaScpLFxuICAgIH07XG4gICAgLy8gb2JqZWN0IExhbWJkYVxuICAgIGNvbnN0IGFjc2VtYW50aWNWZXJzaW9uID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LnNlbWFudGljVmVyc2lvbiA/PyAnMS4wLjInO1xuICAgIGNvbnN0IGFjY29uZmlkZW5jZVRocmVzaG9sZCA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5jb25maWRlbmNlVGhyZXNob2xkID8/ICcwLjUnO1xuICAgIGNvbnN0IGFjY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50ID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LmNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCA/PyAnMjAnO1xuICAgIGNvbnN0IGFjZGVmYXVsdExhbmd1YWdlQ29kZSA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5kZWZhdWx0TGFuZ3VhZ2VDb2RlID8/ICdlbic7XG4gICAgY29uc3QgYWNkb2N1bWVudE1heFNpemUgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8uZG9jdW1lbnRNYXhTaXplID8/ICcxMDI0MDAnO1xuICAgIGNvbnN0IGFjZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzID8/ICc1MDAwMCc7XG4gICAgY29uc3QgYWNpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8uaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkID8/ICdmYWxzZSc7XG4gICAgY29uc3QgYWNsb2dMZXZlbCA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5sb2dMZXZlbCA/PyAnSU5GTyc7XG4gICAgY29uc3QgYWNtYXhDaGFyc092ZXJsYXAgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8ubWF4Q2hhcnNPdmVybGFwID8/ICcyMDAnO1xuICAgIGNvbnN0IGFjcGlpRW50aXR5VHlwZXMgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8ucGlpRW50aXR5VHlwZXMgPz8gJ0FMTCc7XG4gICAgY29uc3QgYWNwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8ucHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzID8/ICd0cnVlJztcbiAgICBjb25zdCBhY3N1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2VucyA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5zdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMgPz8gJzIwJztcbiAgICBjb25zdCBhY3Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LnVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nID8/ICdGQUlMJztcbiAgICBjb25zdCBhY2Nlc3NDb250cm9sTGFtYmRhID0gbmV3IEFjY2Vzc0NvbnJ0b2xMYW1iZGEodGhpcywgJ1NlcnZlcmxlc3NMYW1iZGEnLCB7XG4gICAgICBzZW1hbnRpY1ZlcnNpb246IGFjc2VtYW50aWNWZXJzaW9uLFxuICAgICAgY29uZmlkZW5jZVRocmVzaG9sZDogYWNjb25maWRlbmNlVGhyZXNob2xkLFxuICAgICAgY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50OiBhY2NvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCxcbiAgICAgIGRlZmF1bHRMYW5ndWFnZUNvZGU6IGFjZGVmYXVsdExhbmd1YWdlQ29kZSxcbiAgICAgIGRvY3VtZW50TWF4U2l6ZTogYWNkb2N1bWVudE1heFNpemUsXG4gICAgICBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzOiBhY2RvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMsXG4gICAgICBpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQ6IGFjaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkLFxuICAgICAgbG9nTGV2ZWw6IGFjbG9nTGV2ZWwsXG4gICAgICBtYXhDaGFyc092ZXJsYXA6IGFjbWF4Q2hhcnNPdmVybGFwLFxuICAgICAgcGlpRW50aXR5VHlwZXM6IGFjcGlpRW50aXR5VHlwZXMsXG4gICAgICBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3M6IGFjcHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzLFxuICAgICAgc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zOiBhY3N1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2VucyxcbiAgICAgIHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nOiBhY3Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nLFxuICAgIH0pO1xuICAgIC8vIENvbXByZWhlbmRQaWlSZWRhY3Rpb25TM09iamVjdExhbWJkYVxuICAgIGNvbnN0IGFkbWluUmVkYWN0TGFtYmRhID0gdGhpcy5pbml0aWFsaXplUmVkYWN0TGFtYmRhKElhbVJvbGVOYW1lLkFETUlOLCBwcm9wcz8uYWRtaW5SZWRhY3Rpb25MYW1iZGFDb25maWcpO1xuICAgIGNvbnN0IGJpbGxpbmdSZWRhY3RMYW1iZGEgPSB0aGlzLmluaXRpYWxpemVSZWRhY3RMYW1iZGEoSWFtUm9sZU5hbWUuQklMTElORywgcHJvcHM/LmJpbGxpbmdSZWRhY3Rpb25MYW1iZGFDb25maWcpO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0UmVkYWN0TGFtYmRhID0gdGhpcy5pbml0aWFsaXplUmVkYWN0TGFtYmRhKElhbVJvbGVOYW1lLkNVU1RfU1VQUE9SVCwgcHJvcHM/LmN1c3J0U3VwcG9ydFJlZGFjdGlvbkxhbWJkYUNvbmZpZyk7XG4gICAgYmlsbGluZ1JlZGFjdExhbWJkYS5ub2RlLmFkZERlcGVuZGVuY3koYWRtaW5SZWRhY3RMYW1iZGEpO1xuICAgIGN1c3RTdXBwb3J0UmVkYWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShiaWxsaW5nUmVkYWN0TGFtYmRhKTtcblxuICAgIC8vIElBTSByb2xlc1xuICAgIGNvbnN0IGdlbmVyYWxSb2xlID0gbmV3IEdlbmVyYWxSb2xlKHRoaXMsICdHZW5lcmFsJywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBnZW5lcmFsUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBwb2xpY3lOYW1lOiBnZW5lcmFsUm9sZUNvbmZpZy5wb2xpY3lOYW1lLFxuICAgICAgaWFtUm9sZU5hbWU6IGdlbmVyYWxSb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IGFkbWluUm9sZSA9IG5ldyBBZG1pblJvbGUodGhpcywgJ0FkbWluJywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBhZG1pblJvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgcG9saWN5TmFtZTogYWRtaW5Sb2xlQ29uZmlnLnBvbGljeU5hbWUsXG4gICAgICBpYW1Sb2xlTmFtZTogYWRtaW5Sb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IGJpbGxpbmdSb2xlID0gbmV3IEJpbGxpbmdSb2xlKHRoaXMsICdCaWxsaW5nJywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBiaWxsaW5nUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBwb2xpY3lOYW1lOiBiaWxsaW5nUm9sZUNvbmZpZy5wb2xpY3lOYW1lLFxuICAgICAgaWFtUm9sZU5hbWU6IGJpbGxpbmdSb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0Um9sZSA9IG5ldyBDdXN0U3VwcG9ydFJvbGUodGhpcywgJ0N1c3RTdXBwb3J0Jywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBjdXN0U3VwcG9ydFJvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgcG9saWN5TmFtZTogY3VzdFN1cHBvcnRSb2xlQ29uZmlnLnBvbGljeU5hbWUsXG4gICAgICBpYW1Sb2xlTmFtZTogY3VzdFN1cHBvcnRSb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gUzMgYnVja2V0c1xuICAgIGNvbnN0IHN1cnZleUJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ1N1cnZleVJlc3VsdEJ1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYHN1cnZleS1yZXN1bHRzLXVua25vd24tcGlpLSR7c3VydmV5QnVja2V0UHJlZml4fWAgOiAnc3VydmV5LXJlc3VsdHMtdW5rbm93bi1waWktMTIzNDU2JyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICB9KTtcbiAgICBzdXJ2ZXlCdWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudChcbiAgICAgIHtcbiAgICAgICAgc2lkOiAnQVdTQnVja2V0R2V0UG9saWN5JyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0J10sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7c3VydmV5QnVja2V0LmJ1Y2tldEFybn0vKmBdLFxuICAgICAgICBjb25kaXRpb25zOiB7IFsnU3RyaW5nRXF1YWxzJ106IHsgJ3MzOkRhdGFBY2Nlc3NQb2ludEFjY291bnQnOiBjZGsuQXdzLkFDQ09VTlRfSUQgfSB9LFxuICAgICAgfSxcbiAgICApKTtcbiAgICBzdXJ2ZXlCdWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudChcbiAgICAgIHtcbiAgICAgICAgc2lkOiAnQVdTQnVja2V0UHV0UG9saWN5JyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6UHV0T2JqZWN0J10sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7c3VydmV5QnVja2V0LmJ1Y2tldEFybn0vKmBdLFxuICAgICAgfSxcbiAgICApKTtcbiAgICBjb25zdCB0cmFuc2NyaXB0QnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnVHJhbnNjcmlwdEJ1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYGNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpLSR7dHJhbnNjcmlwdHNCdWNrZXRQcmVmaXh9YCA6ICdjYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaS0xMjM0NDU2JyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICB9KTtcbiAgICB0cmFuc2NyaXB0QnVja2V0LmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoXG4gICAgICB7XG4gICAgICAgIHNpZDogJ0FXU0J1Y2tldEdldFBvbGljeScsXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLkFjY291bnRSb290UHJpbmNpcGFsKCldLFxuICAgICAgICBhY3Rpb25zOiBbJ3MzOkdldE9iamVjdCddLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHJlc291cmNlczogW2Ake3RyYW5zY3JpcHRCdWNrZXQuYnVja2V0QXJufS8qYF0sXG4gICAgICAgIGNvbmRpdGlvbnM6IHsgWydTdHJpbmdFcXVhbHMnXTogeyAnczM6RGF0YUFjY2Vzc1BvaW50QWNjb3VudCc6IGNkay5Bd3MuQUNDT1VOVF9JRCB9IH0sXG4gICAgICB9LFxuICAgICkpO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudChcbiAgICAgIHtcbiAgICAgICAgc2lkOiAnQVdTQnVja2V0UHV0UG9saWN5JyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6UHV0T2JqZWN0J10sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7dHJhbnNjcmlwdEJ1Y2tldC5idWNrZXRBcm59LypgXSxcbiAgICAgIH0sXG4gICAgKSk7XG4gICAgc3VydmV5QnVja2V0Lm5vZGUuYWRkRGVwZW5kZW5jeShhY2Nlc3NDb250cm9sTGFtYmRhKTtcbiAgICBzdXJ2ZXlCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGdlbmVyYWxSb2xlKTtcbiAgICB0cmFuc2NyaXB0QnVja2V0Lm5vZGUuYWRkRGVwZW5kZW5jeShhZG1pblJlZGFjdExhbWJkYSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koYmlsbGluZ1JlZGFjdExhbWJkYSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koY3VzdFN1cHBvcnRSZWRhY3RMYW1iZGEpO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGFkbWluUm9sZSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koYmlsbGluZ1JvbGUpO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGN1c3RTdXBwb3J0Um9sZSk7XG5cbiAgICAvLyBjdXN0b20gcmVzb3VyY2VzXG4gICAgY29uc3QgZ2VuZXJhbExhbWJkYUFybkNhcHRvciA9IG5ldyBMYW1iZGFBcm5DYXB0b3JDdXN0b21SZXNvdXJjZSh0aGlzLCAnR2VuZXJhbENhcHRvcicsIHtcbiAgICAgIHJvbGVOYW1lOiBJYW1Sb2xlTmFtZS5HRU5FUkFMLFxuICAgICAgcGFydGlhbExhbWJkYU5hbWU6ICdQaWlBY2Nlc3NDb250cm9sRnVuY3Rpb24nLFxuICAgIH0pO1xuICAgIGNvbnN0IGFkbWluTGFtYmRhQXJuQ2FwdG9yID0gbmV3IExhbWJkYUFybkNhcHRvckN1c3RvbVJlc291cmNlKHRoaXMsICdBZG1pbkxhbWJkYUNhcHRvcicsIHtcbiAgICAgIHJvbGVOYW1lOiBJYW1Sb2xlTmFtZS5BRE1JTixcbiAgICAgIHBhcnRpYWxMYW1iZGFOYW1lOiAnUGlpUmVkYWN0aW9uRnVuY3Rpb24nLFxuICAgIH0pO1xuICAgIGNvbnN0IGJpbGxpbmdMYW1iZGFBcm5DYXB0b3IgPSBuZXcgTGFtYmRhQXJuQ2FwdG9yQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0JpbGxpbmdDYXB0b3InLCB7XG4gICAgICByb2xlTmFtZTogSWFtUm9sZU5hbWUuQklMTElORyxcbiAgICAgIHBhcnRpYWxMYW1iZGFOYW1lOiAnUGlpUmVkYWN0aW9uRnVuY3Rpb24nLFxuICAgIH0pO1xuICAgIGNvbnN0IGN1c3RvbVN1cHBvcnRMYW1iZGFBcm5DYXB0b3IgPSBuZXcgTGFtYmRhQXJuQ2FwdG9yQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0N1c3RvbVN1cHBvcnRDYXB0b3InLCB7XG4gICAgICByb2xlTmFtZTogSWFtUm9sZU5hbWUuQ1VTVF9TVVBQT1JULFxuICAgICAgcGFydGlhbExhbWJkYU5hbWU6ICdQaWlSZWRhY3Rpb25GdW5jdGlvbicsXG4gICAgfSk7XG4gICAgZ2VuZXJhbExhbWJkYUFybkNhcHRvci5ub2RlLmFkZERlcGVuZGVuY3koYWNjZXNzQ29udHJvbExhbWJkYSk7XG4gICAgYWRtaW5MYW1iZGFBcm5DYXB0b3Iubm9kZS5hZGREZXBlbmRlbmN5KGFkbWluUmVkYWN0TGFtYmRhKTtcbiAgICBiaWxsaW5nTGFtYmRhQXJuQ2FwdG9yLm5vZGUuYWRkRGVwZW5kZW5jeShiaWxsaW5nUmVkYWN0TGFtYmRhKTtcbiAgICBjdXN0b21TdXBwb3J0TGFtYmRhQXJuQ2FwdG9yLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0U3VwcG9ydFJlZGFjdExhbWJkYSk7XG4gICAgdGhpcy5waWlBY2Nlc3NDb25ydG9sTGFtYmRhQXJuID0gZ2VuZXJhbExhbWJkYUFybkNhcHRvci5sYW1iZGFBcm47XG4gICAgdGhpcy5hZG1pbkxhbWJkYUFybiA9IGFkbWluTGFtYmRhQXJuQ2FwdG9yLmxhbWJkYUFybjtcbiAgICB0aGlzLmJpbGxpbmdMYW1iZGFBcm4gPSBiaWxsaW5nTGFtYmRhQXJuQ2FwdG9yLmxhbWJkYUFybjtcbiAgICB0aGlzLmN1c3RvbWVyU3VwcG9ydExhbWJkYUFybiA9IGN1c3RvbVN1cHBvcnRMYW1iZGFBcm5DYXB0b3IubGFtYmRhQXJuO1xuXG4gICAgLy8gUzMgYWNjZXNzIHBvaW50c1xuICAgIGNvbnN0IGdlbmVyYWxBY2Nlc3NQb2ludCA9IG5ldyBzMy5DZm5BY2Nlc3NQb2ludCh0aGlzLCAnQWNjZXNzQ29udHJvbFMzQWNjZXNzUG9pbnQnLCB7XG4gICAgICBidWNrZXQ6IHN1cnZleUJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgLy8gbmFtZTogczNBY2Nlc3NQb2ludE5hbWVzLmdlbmVyYWwuc3Vic3RyaW5nKDAsIDUwKSxcbiAgICB9KTtcbiAgICBnZW5lcmFsQWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5nZW5lcmFsLnN1YnN0cmluZygwLCA1MCkpO1xuICAgIGdlbmVyYWxBY2Nlc3NQb2ludC5hZGRPdmVycmlkZTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1BvaW50ID0gbmV3IHMzLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdBZG1pblMzQWNjZXNzUG9pbnQnLCB7XG4gICAgICBidWNrZXQ6IHRyYW5zY3JpcHRCdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIC8vIG5hbWU6IHMzQWNjZXNzUG9pbnROYW1lcy5hZG1pbi5zdWJzdHJpbmcoMCwgNTApLFxuICAgIH0pO1xuICAgIGFkbWluQWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5hZG1pbi5zdWJzdHJpbmcoMCwgNTApKTtcbiAgICBjb25zdCBiaWxsaW5nQWNjZXNzUG9pbnQgPSBuZXcgczMuQ2ZuQWNjZXNzUG9pbnQodGhpcywgJ0JpbGxpbmdTM0FjY2Vzc1BvaW50Jywge1xuICAgICAgYnVja2V0OiB0cmFuc2NyaXB0QnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAvLyBuYW1lOiBzM0FjY2Vzc1BvaW50TmFtZXMuYmlsbGluZy5zdWJzdHJpbmcoMCwgNTApLFxuICAgIH0pO1xuICAgIGFkbWluQWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5iaWxsaW5nLnN1YnN0cmluZygwLCA1MCkpO1xuICAgIGNvbnN0IGN1c3RvbWVyU3VwcG9ydEFjY2Vzc1BvaW50ID0gbmV3IHMzLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdDdXN0b21lclN1cHBvcnRTM0FjY2Vzc1BvaW50Jywge1xuICAgICAgYnVja2V0OiB0cmFuc2NyaXB0QnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAvLyBuYW1lOiBzM0FjY2Vzc1BvaW50TmFtZXMuY3VzdG9tZXJTdXBwb3J0LnN1YnN0cmluZygwLCA1MCksXG4gICAgfSk7XG4gICAgY3VzdG9tZXJTdXBwb3J0QWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5jdXN0b21lclN1cHBvcnQuc3Vic3RyaW5nKDAsIDUwKSk7XG5cbiAgICAvLyBTM09iamVjdExhbWJkYSByZXNvdXJjZXNcbiAgICBjb25zdCBhY2Nlc3NDb250cm9sT2JqZWN0TGFtYmRhID0gbmV3IHMzb2JqZWN0bGFtYmRhLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdHZW5lcmFsTGFtYmRhQWNjZXNzUG9pbnQnLCB7XG4gICAgICBuYW1lOiBnZW5lcmFsUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBvYmplY3RMYW1iZGFDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIHN1cHBvcnRpbmdBY2Nlc3NQb2ludDogYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpzMzoke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06YWNjZXNzcG9pbnQvJHtnZW5lcmFsQWNjZXNzUG9pbnQuYXR0ck5hbWV9YCxcbiAgICAgICAgdHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnR2V0T2JqZWN0J10sXG4gICAgICAgICAgICBjb250ZW50VHJhbnNmb3JtYXRpb246IG5ldyBjZGsuQ2ZuSnNvbih0aGlzLCAnR2VuZXJhbE9iamVjdExhbWJkYUNvbmZpZycsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBBd3NMYW1iZGE6IHtcbiAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uQXJuOiB0aGlzLnBpaUFjY2Vzc0NvbnJ0b2xMYW1iZGFBcm4sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGFkbWluT2JqZWN0TGFtYmRhID0gbmV3IHMzb2JqZWN0bGFtYmRhLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdBZG1pbkxhbWJkYUFjY2Vzc1BvaW50Jywge1xuICAgICAgbmFtZTogYWRtaW5Sb2xlQ29uZmlnLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSxcbiAgICAgIG9iamVjdExhbWJkYUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgc3VwcG9ydGluZ0FjY2Vzc1BvaW50OiBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke2FkbWluQWNjZXNzUG9pbnQuYXR0ck5hbWV9YCxcbiAgICAgICAgdHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnR2V0T2JqZWN0J10sXG4gICAgICAgICAgICBjb250ZW50VHJhbnNmb3JtYXRpb246IG5ldyBjZGsuQ2ZuSnNvbih0aGlzLCAnQWRtaW5PYmplY3RMYW1iZGFDb25maWcnLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgQXdzTGFtYmRhOiB7XG4gICAgICAgICAgICAgICAgICBGdW5jdGlvbkFybjogdGhpcy5hZG1pbkxhbWJkYUFybixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgYmlsbGluZ09iamVjdExhbWJkYSA9IG5ldyBzM29iamVjdGxhbWJkYS5DZm5BY2Nlc3NQb2ludCh0aGlzLCAnQmlsbGluZ0xhbWJkYUFjY2Vzc1BvaW50Jywge1xuICAgICAgbmFtZTogYmlsbGluZ1JvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgb2JqZWN0TGFtYmRhQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBzdXBwb3J0aW5nQWNjZXNzUG9pbnQ6IGBhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06czM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmFjY2Vzc3BvaW50LyR7YmlsbGluZ0FjY2Vzc1BvaW50LmF0dHJOYW1lfWAsXG4gICAgICAgIHRyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb25zOiBbJ0dldE9iamVjdCddLFxuICAgICAgICAgICAgY29udGVudFRyYW5zZm9ybWF0aW9uOiBuZXcgY2RrLkNmbkpzb24odGhpcywgJ0JpbGxpbmdPYmplY3RMYW1iZGFDb25maWcnLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgQXdzTGFtYmRhOiB7XG4gICAgICAgICAgICAgICAgICBGdW5jdGlvbkFybjogdGhpcy5iaWxsaW5nTGFtYmRhQXJuLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBjdXN0b21lclN1cHBvcnRPYmplY3RMYW1iZGEgPSBuZXcgczNvYmplY3RsYW1iZGEuQ2ZuQWNjZXNzUG9pbnQodGhpcywgJ0N1c3RvbWVyU3VwcG9ydExhbWJkYUFjY2Vzc1BvaW50Jywge1xuICAgICAgbmFtZTogY3VzdFN1cHBvcnRSb2xlQ29uZmlnLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSxcbiAgICAgIG9iamVjdExhbWJkYUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgc3VwcG9ydGluZ0FjY2Vzc1BvaW50OiBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke2N1c3RvbWVyU3VwcG9ydEFjY2Vzc1BvaW50LmF0dHJOYW1lfWAsXG4gICAgICAgIHRyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb25zOiBbJ0dldE9iamVjdCddLFxuICAgICAgICAgICAgY29udGVudFRyYW5zZm9ybWF0aW9uOiBuZXcgY2RrLkNmbkpzb24odGhpcywgJ0N1c3RvbWVyU3VwcG9ydE9iamVjdExhbWJkYUNvbmZpZycsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBBd3NMYW1iZGE6IHtcbiAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uQXJuOiB0aGlzLmN1c3RvbWVyU3VwcG9ydExhbWJkYUFybixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBBdXRvbWF0aWMgdXBsb2FkaW5nXG4gICAgY29uc3Qgc3VydmV5RmlsZVBhdGggPSBwYXRoLmpvaW4oZXhhbXBsZUZpbGVEaXIsICdmaWxlcy9hY2Nlc3NfY29udHJvbCcpO1xuICAgIGNvbnN0IHJlZGFjdGlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGV4YW1wbGVGaWxlRGlyLCAnZmlsZXMvcmVkYWN0aW9uJyk7XG4gICAgY29uc29sZS5sb2coYHN1cnZleUZpbGVQYXRoOiAke3N1cnZleUZpbGVQYXRofWApO1xuICAgIGNvbnNvbGUubG9nKGByZWRhY3Rpb25GaWxlUGF0aDogJHtyZWRhY3Rpb25GaWxlUGF0aH1gKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhzdXJ2ZXlGaWxlUGF0aCkpIHtcbiAgICAgIGNvbnN0IGRlcGxveUZpbGVzID0gbmV3IHMzZGVscG95LkJ1Y2tldERlcGxveW1lbnQodGhpcywgJ0RlcGxveVN1cnZleVJlc3VsdEZpbGVzJywge1xuICAgICAgICBzb3VyY2VzOiBbczNkZWxwb3kuU291cmNlLmFzc2V0KHN1cnZleUZpbGVQYXRoKV0sXG4gICAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiBzdXJ2ZXlCdWNrZXQsXG4gICAgICB9KTtcbiAgICAgIGRlcGxveUZpbGVzLm5vZGUuYWRkRGVwZW5kZW5jeShhY2Nlc3NDb250cm9sT2JqZWN0TGFtYmRhKTtcbiAgICB9O1xuICAgIGlmIChmcy5leGlzdHNTeW5jKHJlZGFjdGlvbkZpbGVQYXRoKSkge1xuICAgICAgY29uc3QgZGVwbG95VHJhbnNjcmlwdEZpbGVzID0gbmV3IHMzZGVscG95LkJ1Y2tldERlcGxveW1lbnQodGhpcywgJ0RlcGxveVRyYW5zY3JpcHRGaWxlcycsIHtcbiAgICAgICAgc291cmNlczogW3MzZGVscG95LlNvdXJjZS5hc3NldChyZWRhY3Rpb25GaWxlUGF0aCldLFxuICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdHJhbnNjcmlwdEJ1Y2tldCxcbiAgICAgIH0pO1xuICAgICAgZGVwbG95VHJhbnNjcmlwdEZpbGVzLm5vZGUuYWRkRGVwZW5kZW5jeShhZG1pbk9iamVjdExhbWJkYSk7XG4gICAgICBkZXBsb3lUcmFuc2NyaXB0RmlsZXMubm9kZS5hZGREZXBlbmRlbmN5KGJpbGxpbmdPYmplY3RMYW1iZGEpO1xuICAgICAgZGVwbG95VHJhbnNjcmlwdEZpbGVzLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0b21lclN1cHBvcnRPYmplY3RMYW1iZGEpO1xuICAgIH07XG5cbiAgICB0aGlzLnMzb2JqZWN0TGFtYmRhQWNjZXNzQ29udHJvbEFybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KGFjY2Vzc0NvbnRyb2xPYmplY3RMYW1iZGEubG9naWNhbElkLCAnQXJuJykpO1xuICAgIHRoaXMuczNvYmplY3RMYW1iZGFBZG1pbkFybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KGFkbWluT2JqZWN0TGFtYmRhLmxvZ2ljYWxJZCwgJ0FybicpKTtcbiAgICB0aGlzLnMzb2JqZWN0TGFtYmRhQmlsbGluZ0FybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KGJpbGxpbmdPYmplY3RMYW1iZGEubG9naWNhbElkLCAnQXJuJykpO1xuICAgIHRoaXMuczNvYmplY3RMYW1iZGFDdXN0b21lclN1cHBvcnRBcm4gPSBjZGsuVG9rZW4uYXNTdHJpbmcoY2RrLkZuLmdldEF0dChjdXN0b21lclN1cHBvcnRPYmplY3RMYW1iZGEubG9naWNhbElkLCAnQXJuJykpO1xuICAgIGFjY2Vzc0NvbnRyb2xPYmplY3RMYW1iZGEubm9kZS5hZGREZXBlbmRlbmN5KGdlbmVyYWxMYW1iZGFBcm5DYXB0b3IpO1xuICAgIGFkbWluT2JqZWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShhZG1pbkxhbWJkYUFybkNhcHRvcik7XG4gICAgYmlsbGluZ09iamVjdExhbWJkYS5ub2RlLmFkZERlcGVuZGVuY3koYmlsbGluZ0xhbWJkYUFybkNhcHRvcik7XG4gICAgY3VzdG9tZXJTdXBwb3J0T2JqZWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0b21TdXBwb3J0TGFtYmRhQXJuQ2FwdG9yKTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZVMzUHJlZml4KGxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xuICAgIGNvbnN0IGNoYXJhY3RlcnNMZW5ndGggPSBjaGFyYWN0ZXJzLmxlbmd0aDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSByZWRhY3Rpb24gTGFtYmRhIGZ1bmN0aW9uIGZvciBhIHNwZWljZmljIElBTSByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gcm9sZU5hbWUgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSUFNIHJvbGVcbiAgICogQHBhcmFtIHNlcnZlcmxlc3NMYW1iZGFDb25maWcgdGhlIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVyIHNldHRpbmcgZm9yIHRoZSBBbWF6b24gQ29tcHJlaGVuZC5cbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVJlZGFjdExhbWJkYSA9IChyb2xlTmFtZTogc3RyaW5nLCBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPzogUmVkYWN0aW9uTGFtYmRhUHJvcHMpOiBSZWRhY3Rpb25MYW1iZGEgPT4ge1xuICAgIGNvbnN0IHNlbWFudGljVmVyc2lvbiA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LnNlbWFudGljVmVyc2lvbiA/PyAnMS4wLjInO1xuICAgIGNvbnN0IGxvZ0xldmVsID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8ubG9nTGV2ZWwgPz8gJ0lORk8nO1xuICAgIGNvbnN0IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8udW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmcgPz8gJ0ZBSUwnO1xuICAgIGNvbnN0IGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LmlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA/PyAnZmFsc2UnO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzID8/ICc1MDAwMCc7XG4gICAgY29uc3QgZG9jdW1lbnRNYXhTaXplRGV0ZWN0UGlpRW50aXRpZXMgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemVEZXRlY3RQaWlFbnRpdGllcyA/PyAnNTAwMCc7XG4gICAgY29uc3QgcGlpRW50aXR5VHlwZXMgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5waWlFbnRpdHlUeXBlcyA/PyAnQUxMJztcbiAgICBjb25zdCBtYXNrQ2hhcmFjdGVyID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8ubWFza0NoYXJhY3RlciA/PyAnKic7XG4gICAgY29uc3QgbWFza01vZGUgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5tYXNrTW9kZSA/PyAnTUFTSyc7XG4gICAgY29uc3Qgc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID8/ICcyMCc7XG4gICAgY29uc3QgZG9jdW1lbnRNYXhTaXplID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uZG9jdW1lbnRNYXhTaXplID8/ICcxMDI0MDAnO1xuICAgIGNvbnN0IGNvbmZpZGVuY2VUaHJlc2hvbGQgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5jb25maWRlbmNlVGhyZXNob2xkID8/ICcwLjUnO1xuICAgIGNvbnN0IG1heENoYXJzT3ZlcmxhcCA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/Lm1heENoYXJzT3ZlcmxhcCA/PyAnMjAwJztcbiAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uZGVmYXVsdExhbmd1YWdlQ29kZSA/PyAnZW4nO1xuICAgIGNvbnN0IGRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kZXRlY3RQaWlFbnRpdGllc1RocmVhZENvdW50ID8/ICc4JztcbiAgICBjb25zdCBjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5jb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzIwJztcbiAgICBjb25zdCBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5wdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPz8gJ3RydWUnO1xuXG4gICAgcmV0dXJuIG5ldyBSZWRhY3Rpb25MYW1iZGEodGhpcywgYFNlcnZlcmxlc3NSZWRhY3RMYW1iZGEtJHtyb2xlTmFtZX1gLCB7XG4gICAgICBzZW1hbnRpY1ZlcnNpb246IHNlbWFudGljVmVyc2lvbixcbiAgICAgIGxvZ0xldmVsOiBsb2dMZXZlbCxcbiAgICAgIHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nOiB1bnN1cHBvcnRlZEZpbGVIYW5kbGluZyxcbiAgICAgIGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZDogaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkLFxuICAgICAgZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllczogZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyxcbiAgICAgIGRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzOiBkb2N1bWVudE1heFNpemVEZXRlY3RQaWlFbnRpdGllcyxcbiAgICAgIHBpaUVudGl0eVR5cGVzOiBwaWlFbnRpdHlUeXBlcyxcbiAgICAgIG1hc2tDaGFyYWN0ZXI6IG1hc2tDaGFyYWN0ZXIsXG4gICAgICBtYXNrTW9kZTogbWFza01vZGUsXG4gICAgICBzdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnM6IHN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2VucyxcbiAgICAgIGRvY3VtZW50TWF4U2l6ZTogZG9jdW1lbnRNYXhTaXplLFxuICAgICAgY29uZmlkZW5jZVRocmVzaG9sZDogY29uZmlkZW5jZVRocmVzaG9sZCxcbiAgICAgIG1heENoYXJzT3ZlcmxhcDogbWF4Q2hhcnNPdmVybGFwLFxuICAgICAgZGVmYXVsdExhbmd1YWdlQ29kZTogZGVmYXVsdExhbmd1YWdlQ29kZSxcbiAgICAgIGRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQ6IGRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQsXG4gICAgICBjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQ6IGNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCxcbiAgICAgIHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljczogcHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzLFxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXRzIHByb3BlcnRpZXMgcmVsYXRlZCB0byB0aGUgSUFNIHJvbGVzLlxuICAgKlxuICAgKiBAcGFyYW0gcm9sZU5hbWUgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSUFNIHJvbGUuXG4gICAqIEBwYXJhbSByb2xlQ29uZmlnIHRoZSBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciBzZXR0aW5nIGZvciBvbmUgb2YgdGhlIElBTSByb2xlLlxuICAgKiBAcmV0dXJucyB0aGUgcHJvcGVydHkgZ3JvdXAuXG4gICAqL1xuICBwcml2YXRlIGdldElhbVJvbGVDb25maWcgPSAocm9sZU5hbWU6IHN0cmluZywgcm9sZUNvbmZpZz86IEdlbmVyYWxSb2xlUHJvcHMgfCBBZG1pblJvbGVQcm9wcyB8IEJpbGxpbmdSb2xlUHJvcHMgfCBDdXN0U3VwcG9ydFJvbGVQcm9wcykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBwb2xpY3lOYW1lOiByb2xlQ29uZmlnPy5wb2xpY3lOYW1lID8/IHRoaXMuX2dldERlZmF1bHRQb2xpY3lOYW1lKHJvbGVOYW1lKSxcbiAgICAgIG9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZTogcm9sZUNvbmZpZz8ub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lID8/IHRoaXMuX2dldE9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZShyb2xlTmFtZSksXG4gICAgICBpYW1Sb2xlTmFtZTogcm9sZUNvbmZpZz8ucG9saWN5TmFtZSA/PyB0aGlzLl9nZXRSb2xlTmFtZShyb2xlTmFtZSksXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcG9saWN5IG5hbWUgYWNjb3JkaW5nIHRvIHRoZSBJQU0gcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIHJvbGVOYW1lIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIElBTSByb2xlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0RGVmYXVsdFBvbGljeU5hbWUocm9sZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChyb2xlTmFtZSkge1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5HRU5FUkFMOiByZXR1cm4gJ2dlbmVyYWwtcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQURNSU46IHJldHVybiAnYWRtaW4tcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQklMTElORzogcmV0dXJuICdiaWxsaW5nLXJvbGUtczNvbGFwLXBvbGljeSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkNVU1RfU1VQUE9SVDogcmV0dXJuICdjdXN0b21lcnN1cHBvcnQtcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUubG9nKCdDaGVjayB0aGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUsIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbWF0Y2kgc3BlbGxpbmcuJyk7XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBuYW1lIGZvciB0aGUgYWNjZXNzIHBvaW50IG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGFjY29yZGluZyB0byB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSByb2xlTmFtZSB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBJQU0gcm9sZS5cbiAgICovXG4gIHByaXZhdGUgX2dldE9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZShyb2xlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHJvbGVOYW1lKSB7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkdFTkVSQUw6IHJldHVybiAnYWNjZXNzY3RsLXMzb2xhcC1zdXJ2ZXktcmVzdWx0cy11bmtub3duLXBpaSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkFETUlOOiByZXR1cm4gJ2FkbWluLXMzb2xhcC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkJJTExJTkc6IHJldHVybiAnYmlsbGluZy1zM29sYXAtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknO1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5DVVNUX1NVUFBPUlQ6IHJldHVybiAnY3VzdHN1cHBvcnQtczNvbGFwLWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUubG9nKCdDaGVjayB0aGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUsIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbWF0Y2kgc3BlbGxpbmcuJyk7XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBuYW1lIGZvciB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSByb2xlTmFtZSB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBJQU0gcm9sZS5cbiAgICovXG4gIHByaXZhdGUgX2dldFJvbGVOYW1lKHJvbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAocm9sZU5hbWUpIHtcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuR0VORVJBTDogcmV0dXJuICdHZW5lcmFsUm9sZSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkFETUlOOiByZXR1cm4gJ1JlZGFjdGlvbkFkbWluUm9sZSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkJJTExJTkc6IHJldHVybiAnUmVkYWN0aW9uQmlsbGluZ1JvbGUnO1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5DVVNUX1NVUFBPUlQ6IHJldHVybiAnUmVkYWN0aW9uQ3VzdFN1cHBvcnRSb2xlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUubG9nKCdDaGVjayB0aGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUsIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbWF0Y2kgc3BlbGxpbmcuJyk7XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG4gIH1cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUFybkNhcHRvclJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSUFNIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGFydGlhbCBmaXhlZCBuYW1lIG9mIHRoZSBnZW1lcmFsIExhbWJkYSBmdW5jdGlvbiBjcmVhdGVkIGZyb20gdGhlIHNlcnZlcmxlc3MgYXBwbGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBwYXJ0aWFsTGFtYmRhTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTGFtYmRhQXJuQ2FwdG9yQ3VzdG9tUmVzb3VyY2UgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2VuZXJhbCBMYW1iZGEgZnVuY3Rpb24gY3JlYXRlZCBmcm9tIHRoZSBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvODc2MFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxhbWJkYUFybjogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGFtYmRhQXJuQ2FwdG9yUmVzb3VyY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgY3VzdG9tUmVzb3VyY2VSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdDUlJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQW4gZXhlY3V0aW9uIHJvbGUgdG8gZmluZCBvdXQgdGhlIEFSTiBvZiB0aGUgYWNjZXNzIGNvbnRyb2wgTGFtYmRhLicsXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFxuICAgICAgICAgICdzZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlJyxcbiAgICAgICAgKSxcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdBV1NYUmF5RGFlbW9uV3JpdGVBY2Nlc3MnKSxcbiAgICAgIF0sXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBDb21wcmVoZW5kUzNPYmplY3RMYW1iZGFDdXN0b21SZXNvdXJjZVBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgYXNzaWduU2lkczogdHJ1ZSxcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0xpc3RMYW1iZGFQZXJtaXNzaW9ucycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogWydsYW1iZGE6TGlzdEZ1bmN0aW9ucyddLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0dldExhbWJkYUZ1bmN0aW9uc1Blcm1pc3Npb25zJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpHZXRGdW5jdGlvbicsICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpsYW1iZGE6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmZ1bmN0aW9uOipgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBvbkV2ZW50ID0gbmV3IGxhbWJkYS5Ob2RlanNGdW5jdGlvbih0aGlzLCAnQXJuRXhwZXJ0Jywge1xuICAgICAgZGVzY3JpcHRpb246IGBBIExhbWJkYSBmdW5jdGlvbiB0aGF0IGdldHMgdGhlIEFSTiBvZiBcXGAke3Byb3BzLnBhcnRpYWxMYW1iZGFOYW1lfVxcYGAsXG4gICAgICBlbnRyeTogZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAncmVzb3VyY2VzL2xhbWJkYS1hcm4taGVscGVyLnRzJykpID8gcGF0aC5qb2luKF9fZGlybmFtZSwgJ3Jlc291cmNlcy9sYW1iZGEtYXJuLWhlbHBlci50cycpIDogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3Jlc291cmNlcy9sYW1iZGEtYXJuLWhlbHBlci5qcycpLFxuICAgICAgaGFuZGxlcjogJ2xhbWJkYUhhbmRsZXInLFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgbWluaWZ5OiBmYWxzZSxcbiAgICAgICAgc291cmNlTWFwOiB0cnVlLFxuICAgICAgICBleHRlcm5hbE1vZHVsZXM6IFsnYXdzLXNkayddLFxuICAgICAgfSxcbiAgICAgIHJvbGU6IGN1c3RvbVJlc291cmNlUm9sZSxcbiAgICB9KTtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBjci5Qcm92aWRlcih0aGlzLCAnUHJvdmlkZXInLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogb25FdmVudCxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9NT05USCxcbiAgICAgIHJvbGU6IGN1c3RvbVJlc291cmNlUm9sZS53aXRob3V0UG9saWN5VXBkYXRlcygpLFxuICAgIH0pO1xuICAgIGNvbnN0IGxhbWJkYUFyblNlYXJjaFVuaXQgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsIGAke3Byb3BzLnJvbGVOYW1lfUdlbmVyYWxTZWFyY2hVbml0YCwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIExhbWJkYUZpeGVkTmFtZTogcHJvcHMucGFydGlhbExhbWJkYU5hbWUsXG4gICAgICAgIEdlbnJlOiBwcm9wcy5yb2xlTmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5sYW1iZGFBcm4gPSBjZGsuVG9rZW4uYXNTdHJpbmcobGFtYmRhQXJuU2VhcmNoVW5pdC5nZXRBdHQoJ0xhbWJkYUFybicpKTtcbiAgfVxufSJdfQ==
|
485
|
+
LambdaArnCaptorCustomResource[_b] = { fqn: "cdk-comprehend-s3olap.LambdaArnCaptorCustomResource", version: "2.0.480" };
|
486
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbXByZWhlbmQtczNvbGFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nkay1jb21wcmVoZW5kLXMzb2xhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQyx1REFBaUQ7QUFDakQsd0RBQXdEO0FBQ3hELDZDQUE2QztBQUM3Qyx5Q0FBeUM7QUFDekMsMERBQTBEO0FBQzFELGlFQUFpRTtBQUNqRSxtREFBbUQ7QUFDbkQsMkNBQXVDO0FBQ3ZDLDZEQUE0SDtBQUM1SCwyQ0FLcUI7QUFFckIsSUFBWSxXQUtYO0FBTEQsV0FBWSxXQUFXO0lBQ3JCLGtDQUFtQixDQUFBO0lBQ25CLDhCQUFlLENBQUE7SUFDZixrQ0FBbUIsQ0FBQTtJQUNuQiwyQ0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBTFcsV0FBVywyQkFBWCxXQUFXLFFBS3RCO0FBK0ZEOztHQUVHO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQWlDN0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBMFNuQjs7Ozs7V0FLRztRQUNLLDJCQUFzQixHQUFHLENBQUMsUUFBZ0IsRUFBRSxzQkFBNkMsRUFBbUIsRUFBRTtZQUNwSCxNQUFNLGVBQWUsR0FBRyxzQkFBc0IsRUFBRSxlQUFlLElBQUksT0FBTyxDQUFDO1lBQzNFLE1BQU0sUUFBUSxHQUFHLHNCQUFzQixFQUFFLFFBQVEsSUFBSSxNQUFNLENBQUM7WUFDNUQsTUFBTSx1QkFBdUIsR0FBRyxzQkFBc0IsRUFBRSx1QkFBdUIsSUFBSSxNQUFNLENBQUM7WUFDMUYsTUFBTSx3QkFBd0IsR0FBRyxzQkFBc0IsRUFBRSx3QkFBd0IsSUFBSSxPQUFPLENBQUM7WUFDN0YsTUFBTSxrQ0FBa0MsR0FBRyxzQkFBc0IsRUFBRSxrQ0FBa0MsSUFBSSxPQUFPLENBQUM7WUFDakgsTUFBTSxnQ0FBZ0MsR0FBRyxzQkFBc0IsRUFBRSxnQ0FBZ0MsSUFBSSxNQUFNLENBQUM7WUFDNUcsTUFBTSxjQUFjLEdBQUcsc0JBQXNCLEVBQUUsY0FBYyxJQUFJLEtBQUssQ0FBQztZQUN2RSxNQUFNLGFBQWEsR0FBRyxzQkFBc0IsRUFBRSxhQUFhLElBQUksR0FBRyxDQUFDO1lBQ25FLE1BQU0sUUFBUSxHQUFHLHNCQUFzQixFQUFFLFFBQVEsSUFBSSxNQUFNLENBQUM7WUFDNUQsTUFBTSwyQkFBMkIsR0FBRyxzQkFBc0IsRUFBRSwyQkFBMkIsSUFBSSxJQUFJLENBQUM7WUFDaEcsTUFBTSxlQUFlLEdBQUcsc0JBQXNCLEVBQUUsZUFBZSxJQUFJLFFBQVEsQ0FBQztZQUM1RSxNQUFNLG1CQUFtQixHQUFHLHNCQUFzQixFQUFFLG1CQUFtQixJQUFJLEtBQUssQ0FBQztZQUNqRixNQUFNLGVBQWUsR0FBRyxzQkFBc0IsRUFBRSxlQUFlLElBQUksS0FBSyxDQUFDO1lBQ3pFLE1BQU0sbUJBQW1CLEdBQUcsc0JBQXNCLEVBQUUsbUJBQW1CLElBQUksSUFBSSxDQUFDO1lBQ2hGLE1BQU0sNEJBQTRCLEdBQUcsc0JBQXNCLEVBQUUsNEJBQTRCLElBQUksR0FBRyxDQUFDO1lBQ2pHLE1BQU0sOEJBQThCLEdBQUcsc0JBQXNCLEVBQUUsOEJBQThCLElBQUksSUFBSSxDQUFDO1lBQ3RHLE1BQU0sd0JBQXdCLEdBQUcsc0JBQXNCLEVBQUUsd0JBQXdCLElBQUksTUFBTSxDQUFDO1lBRTVGLE9BQU8sSUFBSSxvQ0FBZSxDQUFDLElBQUksRUFBRSwwQkFBMEIsUUFBUSxFQUFFLEVBQUU7Z0JBQ3JFLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsdUJBQXVCLEVBQUUsdUJBQXVCO2dCQUNoRCx3QkFBd0IsRUFBRSx3QkFBd0I7Z0JBQ2xELGtDQUFrQyxFQUFFLGtDQUFrQztnQkFDdEUsZ0NBQWdDLEVBQUUsZ0NBQWdDO2dCQUNsRSxjQUFjLEVBQUUsY0FBYztnQkFDOUIsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQiwyQkFBMkIsRUFBRSwyQkFBMkI7Z0JBQ3hELGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxtQkFBbUIsRUFBRSxtQkFBbUI7Z0JBQ3hDLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxtQkFBbUIsRUFBRSxtQkFBbUI7Z0JBQ3hDLDRCQUE0QixFQUFFLDRCQUE0QjtnQkFDMUQsOEJBQThCLEVBQUUsOEJBQThCO2dCQUM5RCx3QkFBd0IsRUFBRSx3QkFBd0I7YUFDbkQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUY7Ozs7OztXQU1HO1FBQ0sscUJBQWdCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLFVBQXdGLEVBQUUsRUFBRTtZQUN4SSxPQUFPO2dCQUNMLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7Z0JBQzFFLDJCQUEyQixFQUFFLFVBQVUsRUFBRSwyQkFBMkIsSUFBSSxJQUFJLENBQUMsK0JBQStCLENBQUMsUUFBUSxDQUFDO2dCQUN0SCxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQzthQUNuRSxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBcFdBLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxjQUFjLElBQUksU0FBUyxDQUFDO1FBQzFELE1BQU0sd0JBQXdCLEdBQUcsS0FBSyxFQUFFLHdCQUF3QixJQUFJLElBQUksQ0FBQztRQUN6RSw4QkFBOEI7UUFDOUIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUMvRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDekYsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUMvRixNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVHLGtDQUFrQztRQUNsQyxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsdUJBQXVCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFGLE1BQU0sa0JBQWtCLEdBQXVCO1lBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyw4Q0FBOEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDRDQUE0QyxDQUFDO1lBQ3JNLEtBQUssRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvREFBb0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtEQUFrRCxDQUFDO1lBQzdNLE9BQU8sRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtREFBbUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlEQUFpRCxDQUFDO1lBQy9NLGVBQWUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxJQUFJLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpREFBaUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLCtDQUErQyxDQUFDO1NBQzVOLENBQUM7UUFDRixnQkFBZ0I7UUFDaEIsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUN2RixNQUFNLHFCQUFxQixHQUFHLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxtQkFBbUIsSUFBSSxLQUFLLENBQUM7UUFDN0YsTUFBTSxnQ0FBZ0MsR0FBRyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLElBQUksSUFBSSxDQUFDO1FBQ2xILE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUFFLHlCQUF5QixFQUFFLG1CQUFtQixJQUFJLElBQUksQ0FBQztRQUM1RixNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxlQUFlLElBQUksUUFBUSxDQUFDO1FBQ3hGLE1BQU0sb0NBQW9DLEdBQUcsS0FBSyxFQUFFLHlCQUF5QixFQUFFLGtDQUFrQyxJQUFJLE9BQU8sQ0FBQztRQUM3SCxNQUFNLDBCQUEwQixHQUFHLEtBQUssRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsSUFBSSxPQUFPLENBQUM7UUFDekcsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsSUFBSSxNQUFNLENBQUM7UUFDeEUsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxJQUFJLEtBQUssQ0FBQztRQUNyRixNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxjQUFjLElBQUksS0FBSyxDQUFDO1FBQ25GLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixJQUFJLE1BQU0sQ0FBQztRQUN4RyxNQUFNLDZCQUE2QixHQUFHLEtBQUssRUFBRSx5QkFBeUIsRUFBRSwyQkFBMkIsSUFBSSxJQUFJLENBQUM7UUFDNUcsTUFBTSx5QkFBeUIsR0FBRyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsdUJBQXVCLElBQUksTUFBTSxDQUFDO1FBQ3RHLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSx3Q0FBbUIsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDNUUsZUFBZSxFQUFFLGlCQUFpQjtZQUNsQyxtQkFBbUIsRUFBRSxxQkFBcUI7WUFDMUMsOEJBQThCLEVBQUUsZ0NBQWdDO1lBQ2hFLG1CQUFtQixFQUFFLHFCQUFxQjtZQUMxQyxlQUFlLEVBQUUsaUJBQWlCO1lBQ2xDLGtDQUFrQyxFQUFFLG9DQUFvQztZQUN4RSx3QkFBd0IsRUFBRSwwQkFBMEI7WUFDcEQsUUFBUSxFQUFFLFVBQVU7WUFDcEIsZUFBZSxFQUFFLGlCQUFpQjtZQUNsQyxjQUFjLEVBQUUsZ0JBQWdCO1lBQ2hDLHdCQUF3QixFQUFFLDBCQUEwQjtZQUNwRCwyQkFBMkIsRUFBRSw2QkFBNkI7WUFDMUQsdUJBQXVCLEVBQUUseUJBQXlCO1NBQ25ELENBQUMsQ0FBQztRQUNILHVDQUF1QztRQUN2QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQzVHLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLDRCQUE0QixDQUFDLENBQUM7UUFDbEgsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztRQUNoSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUQsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWhFLFlBQVk7UUFDWixNQUFNLFdBQVcsR0FBRyxJQUFJLHVCQUFXLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNuRCwyQkFBMkIsRUFBRSxpQkFBaUIsQ0FBQywyQkFBMkI7WUFDMUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLFVBQVU7WUFDeEMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLFdBQVc7U0FDM0MsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxxQkFBUyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDN0MsMkJBQTJCLEVBQUUsZUFBZSxDQUFDLDJCQUEyQjtZQUN4RSxVQUFVLEVBQUUsZUFBZSxDQUFDLFVBQVU7WUFDdEMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxXQUFXO1NBQ3pDLENBQUMsQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLElBQUksdUJBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ25ELDJCQUEyQixFQUFFLGlCQUFpQixDQUFDLDJCQUEyQjtZQUMxRSxVQUFVLEVBQUUsaUJBQWlCLENBQUMsVUFBVTtZQUN4QyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsV0FBVztTQUMzQyxDQUFDLENBQUM7UUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLDJCQUFlLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUMvRCwyQkFBMkIsRUFBRSxxQkFBcUIsQ0FBQywyQkFBMkI7WUFDOUUsVUFBVSxFQUFFLHFCQUFxQixDQUFDLFVBQVU7WUFDNUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLFdBQVc7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsYUFBYTtRQUNiLE1BQU0sWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDN0QsVUFBVSxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztZQUNqSSxhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPO1lBQ3hDLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLG1CQUFtQixDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FDdEQ7WUFDRSxHQUFHLEVBQUUsb0JBQW9CO1lBQ3pCLFVBQVUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsU0FBUyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsU0FBUyxJQUFJLENBQUM7WUFDMUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLDJCQUEyQixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUU7U0FDdEYsQ0FDRixDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsbUJBQW1CLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUN0RDtZQUNFLEdBQUcsRUFBRSxvQkFBb0I7WUFDekIsVUFBVSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM1QyxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDekIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixTQUFTLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxTQUFTLElBQUksQ0FBQztTQUMzQyxDQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUMvRCxVQUFVLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0NBQW9DO1lBQ3ZJLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU87WUFDeEMsaUJBQWlCLEVBQUUsSUFBSTtTQUN4QixDQUFDLENBQUM7UUFDSCxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQzFEO1lBQ0UsR0FBRyxFQUFFLG9CQUFvQjtZQUN6QixVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztZQUN6QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLFNBQVMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxJQUFJLENBQUM7WUFDOUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLDJCQUEyQixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUU7U0FDdEYsQ0FDRixDQUFDLENBQUM7UUFDSCxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQzFEO1lBQ0UsR0FBRyxFQUFFLG9CQUFvQjtZQUN6QixVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztZQUN6QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLFNBQVMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxJQUFJLENBQUM7U0FDL0MsQ0FDRixDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JELFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2RCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzdELGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXJELG1CQUFtQjtRQUNuQixNQUFNLHNCQUFzQixHQUFHLElBQUksNkJBQTZCLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUN0RixRQUFRLEVBQUUsV0FBVyxDQUFDLE9BQU87WUFDN0IsaUJBQWlCLEVBQUUsMEJBQTBCO1NBQzlDLENBQUMsQ0FBQztRQUNILE1BQU0sb0JBQW9CLEdBQUcsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDeEYsUUFBUSxFQUFFLFdBQVcsQ0FBQyxLQUFLO1lBQzNCLGlCQUFpQixFQUFFLHNCQUFzQjtTQUMxQyxDQUFDLENBQUM7UUFDSCxNQUFNLHNCQUFzQixHQUFHLElBQUksNkJBQTZCLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUN0RixRQUFRLEVBQUUsV0FBVyxDQUFDLE9BQU87WUFDN0IsaUJBQWlCLEVBQUUsc0JBQXNCO1NBQzFDLENBQUMsQ0FBQztRQUNILE1BQU0sNEJBQTRCLEdBQUcsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7WUFDbEcsUUFBUSxFQUFFLFdBQVcsQ0FBQyxZQUFZO1lBQ2xDLGlCQUFpQixFQUFFLHNCQUFzQjtTQUMxQyxDQUFDLENBQUM7UUFDSCxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDL0Qsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNELHNCQUFzQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMvRCw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLHlCQUF5QixHQUFHLHNCQUFzQixDQUFDLFNBQVMsQ0FBQztRQUNsRSxJQUFJLENBQUMsY0FBYyxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQztRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDO1FBQ3pELElBQUksQ0FBQyx3QkFBd0IsR0FBRyw0QkFBNEIsQ0FBQyxTQUFTLENBQUM7UUFFdkUsbUJBQW1CO1FBQ25CLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSw0QkFBNEIsRUFBRTtZQUNuRixNQUFNLEVBQUUsWUFBWSxDQUFDLFVBQVU7WUFDL0IscURBQXFEO1NBQ3RELENBQUMsQ0FBQztRQUNILGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVGLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztRQUMvQixNQUFNLGdCQUFnQixHQUFHLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDekUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFVBQVU7WUFDbkMsbURBQW1EO1NBQ3BELENBQUMsQ0FBQztRQUNILGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUM3RSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsVUFBVTtZQUNuQyxxREFBcUQ7U0FDdEQsQ0FBQyxDQUFDO1FBQ0gsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUYsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDhCQUE4QixFQUFFO1lBQzdGLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxVQUFVO1lBQ25DLDZEQUE2RDtTQUM5RCxDQUFDLENBQUM7UUFDSCwwQkFBMEIsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU1RywyQkFBMkI7UUFDM0IsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFO1lBQ3BHLElBQUksRUFBRSxpQkFBaUIsQ0FBQywyQkFBMkI7WUFDbkQseUJBQXlCLEVBQUU7Z0JBQ3pCLHFCQUFxQixFQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLGdCQUFnQixrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZJLDRCQUE0QixFQUFFO29CQUM1Qjt3QkFDRSxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7d0JBQ3RCLHFCQUFxQixFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLEVBQUU7NEJBQ3hFLEtBQUssRUFBRTtnQ0FDTCxTQUFTLEVBQUU7b0NBQ1QsV0FBVyxFQUFFLElBQUksQ0FBQyx5QkFBeUI7aUNBQzVDOzZCQUNGO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRTtZQUMxRixJQUFJLEVBQUUsZUFBZSxDQUFDLDJCQUEyQjtZQUNqRCx5QkFBeUIsRUFBRTtnQkFDekIscUJBQXFCLEVBQUUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsZ0JBQWdCLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtnQkFDckksNEJBQTRCLEVBQUU7b0JBQzVCO3dCQUNFLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQzt3QkFDdEIscUJBQXFCLEVBQUUsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRTs0QkFDdEUsS0FBSyxFQUFFO2dDQUNMLFNBQVMsRUFBRTtvQ0FDVCxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWM7aUNBQ2pDOzZCQUNGO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSwwQkFBMEIsRUFBRTtZQUM5RixJQUFJLEVBQUUsaUJBQWlCLENBQUMsMkJBQTJCO1lBQ25ELHlCQUF5QixFQUFFO2dCQUN6QixxQkFBcUIsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxnQkFBZ0Isa0JBQWtCLENBQUMsUUFBUSxFQUFFO2dCQUN2SSw0QkFBNEIsRUFBRTtvQkFDNUI7d0JBQ0UsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO3dCQUN0QixxQkFBcUIsRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUFFOzRCQUN4RSxLQUFLLEVBQUU7Z0NBQ0wsU0FBUyxFQUFFO29DQUNULFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2lDQUNuQzs2QkFDRjt5QkFDRixDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsa0NBQWtDLEVBQUU7WUFDOUcsSUFBSSxFQUFFLHFCQUFxQixDQUFDLDJCQUEyQjtZQUN2RCx5QkFBeUIsRUFBRTtnQkFDekIscUJBQXFCLEVBQUUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsZ0JBQWdCLDBCQUEwQixDQUFDLFFBQVEsRUFBRTtnQkFDL0ksNEJBQTRCLEVBQUU7b0JBQzVCO3dCQUNFLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQzt3QkFDdEIscUJBQXFCLEVBQUUsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxtQ0FBbUMsRUFBRTs0QkFDaEYsS0FBSyxFQUFFO2dDQUNMLFNBQVMsRUFBRTtvQ0FDVCxXQUFXLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjtpQ0FDM0M7NkJBQ0Y7eUJBQ0YsQ0FBQztxQkFDSDtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsc0JBQXNCO1FBQ3RCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDekUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRTtnQkFDakYsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2hELGlCQUFpQixFQUFFLFlBQVk7YUFDaEMsQ0FBQyxDQUFDO1lBQ0gsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQUEsQ0FBQztRQUNGLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7Z0JBQ3pGLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ25ELGlCQUFpQixFQUFFLGdCQUFnQjthQUNwQyxDQUFDLENBQUM7WUFDSCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDNUQscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzlELHFCQUFxQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQUEsQ0FBQztRQUVGLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEcsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4SCx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDckUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNELG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUMvRCwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE1BQWM7UUFDcEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLHNDQUFzQyxDQUFDO1FBQzFELE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBK0REOzs7O09BSUc7SUFDSyxxQkFBcUIsQ0FBQyxRQUFnQjtRQUM1QyxRQUFRLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLEtBQUssV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sNEJBQTRCLENBQUM7WUFDOUQsS0FBSyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTywwQkFBMEIsQ0FBQztZQUMxRCxLQUFLLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLDRCQUE0QixDQUFDO1lBQzlELEtBQUssV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sb0NBQW9DLENBQUM7WUFDM0U7Z0JBQ0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO2dCQUN0RixPQUFPLFdBQVcsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSywrQkFBK0IsQ0FBQyxRQUFnQjtRQUN0RCxRQUFRLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLEtBQUssV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sNkNBQTZDLENBQUM7WUFDL0UsS0FBSyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyx5Q0FBeUMsQ0FBQztZQUN6RSxLQUFLLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLDJDQUEyQyxDQUFDO1lBQzdFLEtBQUssV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sK0NBQStDLENBQUM7WUFDdEY7Z0JBQ0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO2dCQUN0RixPQUFPLFdBQVcsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxZQUFZLENBQUMsUUFBZ0I7UUFDbkMsUUFBUSxRQUFRLEVBQUUsQ0FBQztZQUNqQixLQUFLLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLGFBQWEsQ0FBQztZQUMvQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLG9CQUFvQixDQUFDO1lBQ3BELEtBQUssV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sc0JBQXNCLENBQUM7WUFDeEQsS0FBSyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTywwQkFBMEIsQ0FBQztZQUNqRTtnQkFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7Z0JBQ3RGLE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDOztBQTFiSCw0Q0EyYkM7OztBQWNELE1BQWEsNkJBQThCLFNBQVEsc0JBQVM7SUFPMUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQztRQUMzRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDdEQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO1lBQzNELFdBQVcsRUFBRSxxRUFBcUU7WUFDbEYsZUFBZSxFQUFFO2dCQUNmLEdBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQ3hDLDBDQUEwQyxDQUMzQztnQkFDRCxHQUFHLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLDBCQUEwQixDQUFDO2FBQ3ZFO1lBQ0QsY0FBYyxFQUFFO2dCQUNkLDRDQUE0QyxFQUFFLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQztvQkFDbkUsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFVBQVUsRUFBRTt3QkFDVixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7NEJBQ3RCLEdBQUcsRUFBRSx1QkFBdUI7NEJBQzVCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7NEJBQ3hCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDOzRCQUNqQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7eUJBQ2pCLENBQUM7d0JBQ0YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDOzRCQUN0QixHQUFHLEVBQUUsK0JBQStCOzRCQUNwQyxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLOzRCQUN4QixPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDeEQsU0FBUyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsYUFBYSxDQUFDO3lCQUNsRyxDQUFDO3FCQUNIO2lCQUNGLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzNELFdBQVcsRUFBRSw0Q0FBNEMsS0FBSyxDQUFDLGlCQUFpQixJQUFJO1lBQ3BGLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUM7WUFDOUwsT0FBTyxFQUFFLGVBQWU7WUFDeEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1lBQzVCLFFBQVEsRUFBRTtnQkFDUixNQUFNLEVBQUUsS0FBSztnQkFDYixTQUFTLEVBQUUsSUFBSTtnQkFDZixlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUM7YUFDN0I7WUFDRCxJQUFJLEVBQUUsa0JBQWtCO1NBQ3pCLENBQUMsQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2pELGNBQWMsRUFBRSxPQUFPO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7WUFDMUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFO1NBQ2hELENBQUMsQ0FBQztRQUNILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLG1CQUFtQixFQUFFO1lBQzdGLFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtZQUNuQyxVQUFVLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFLEtBQUssQ0FBQyxpQkFBaUI7Z0JBQ3hDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTthQUN0QjtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQzs7QUFoRUgsc0VBaUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBSdW50aW1lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgczNkZWxwb3kgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnQnO1xuaW1wb3J0ICogYXMgczNvYmplY3RsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzb2JqZWN0bGFtYmRhJztcbmltcG9ydCAqIGFzIGNyIGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBY2Nlc3NDb25ydG9sTGFtYmRhLCBBY2Nlc3NDb25ydG9sTGFtYmRhUHJvcHMsIFJlZGFjdGlvbkxhbWJkYSwgUmVkYWN0aW9uTGFtYmRhUHJvcHMgfSBmcm9tICcuL2NvbXByZWhlbmQtbGFtYmRhcyc7XG5pbXBvcnQge1xuICBBZG1pblJvbGUsIEFkbWluUm9sZVByb3BzLFxuICBCaWxsaW5nUm9sZSwgQmlsbGluZ1JvbGVQcm9wcyxcbiAgQ3VzdFN1cHBvcnRSb2xlLCBDdXN0U3VwcG9ydFJvbGVQcm9wcyxcbiAgR2VuZXJhbFJvbGUsIEdlbmVyYWxSb2xlUHJvcHMsXG59IGZyb20gJy4vaWFtLXJvbGVzJztcblxuZXhwb3J0IGVudW0gSWFtUm9sZU5hbWUge1xuICBHRU5FUkFMID0gJ0dlbmVyYWwnLFxuICBBRE1JTiA9ICdBZG1pbicsXG4gIEJJTExJTkcgPSAnQmlsbGluZycsXG4gIENVU1RfU1VQUE9SVCA9ICdDdXN0U3VwcG9ydCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTM0FjY2Vzc1BvaW50TmFtZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIFMzIGFjZWVzcyBwb2ludCBmb3IgdGhlIGdlbmVyYWwgcm9sZSBpbiB0aGUgYWNjZXNzIGNvbnRyb2wgY2FzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2FjY2Vzc2N0bC1zMy1hcC1zdXJ2ZXktcmVzdWx0cy11bmtub3duLXBpaSdcbiAgICovXG4gIHJlYWRvbmx5IGdlbmVyYWw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBTMyBhY2Vlc3MgcG9pbnQgZm9yIHRoZSBhZG1pbiByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2FkbWluLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSdcbiAgICovXG4gIHJlYWRvbmx5IGFkbWluOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgUzMgYWNlZXNzIHBvaW50IGZvciB0aGUgYmlsbGluZyByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2JpbGwtczMtYWNjZXNzLXBvaW50LWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJ1xuICAgKi9cbiAgcmVhZG9ubHkgYmlsbGluZzogc3RyaW5nO1xuICAvKipcbiAgKiBUaGUgbmFtZSBvZiB0aGUgUzMgYWNlZXNzIHBvaW50IGZvciB0aGUgY3VzdG9tZXIgc3VwcG9ydCByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgKlxuICAqIEBkZWZhdWx0ICdjcy1zMy1hY2Nlc3MtcG9pbnQtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknXG4gICovXG4gIHJlYWRvbmx5IGN1c3RvbWVyU3VwcG9ydDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXByZWhlbmRTM29sYWJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcHJlZml4IGF0dGFjaGVkIHRvIHRoZSBuYW1lIG9mIHRoZSBTMyBidWNrZXQgd2hlcmUgeW91IGFyZSBnb2luZyB0byBleHBsb3JlIHRoZSBTMyBPYmplY3QgTGFtYmRhIHBlcnRhaW5pbmcgdG8gdGhlIGFjY2VzcyBjb250cm9sIGNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IDYgcmFuZG9tIHdvcmRzXG4gICAqL1xuICByZWFkb25seSBzdXJ2ZXlCdWNrZXRQcmVmaXg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcHJlZml4IGF0dGFjaGVkIHRvIHRoZSBuYW1lIG9mIHRoZSBTMyBidWNrZXQgd2hlcmUgeW91IGFyZSBnb2luZyB0byBleHBsb3JlIHRoZSBTMyBPYmplY3QgTGFtYmRhIHBlcnRhaW5pbmcgdG8gdGhlIHJlZGFjdGlvbiBjYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCA2IHJhbmRvbSB3b3Jkc1xuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNjcmlwdHNCdWNrZXRQcmVmaXg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgb2YgdGhlIFMzIGFjY2VzcyBwb2ludHMgZm9yIHRoZSBhY2Nlc3MgY29udHJvbCBjYXNlIGFuZCByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHJlYWRvbmx5IHMzQWNjZXNzUG9pbnROYW1lcz86IFMzQWNjZXNzUG9pbnROYW1lcztcbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXJzIG5lZWRlZCBmb3IgdGhlIGBDb21wcmVoZW5kUGlpQWNjZXNzQ29udHJvbFMzT2JqZWN0TGFtYmRhYCBmdW5jdGlvbi5cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/OiBBY2Nlc3NDb25ydG9sTGFtYmRhUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyBvZiB0aGUgYENvbXByZWhlbmRQaWlSZWRhY3Rpb25TM09iamVjdExhbWJkYWAgZnVuY3Rpb24gZm9yIHRoZSBgQWRtaW5Sb2xlYC5cbiAgICovXG4gIHJlYWRvbmx5IGFkbWluUmVkYWN0aW9uTGFtYmRhQ29uZmlnPzogUmVkYWN0aW9uTGFtYmRhUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyBvZiB0aGUgYENvbXByZWhlbmRQaWlSZWRhY3Rpb25TM09iamVjdExhbWJkYWAgZnVuY3Rpb24gZm9yIHRoZSBgQmlsbGluZ1JvbGVgLlxuICAgKi9cbiAgcmVhZG9ubHkgYmlsbGluZ1JlZGFjdGlvbkxhbWJkYUNvbmZpZz86IFJlZGFjdGlvbkxhbWJkYVByb3BzO1xuICAvKipcbiAgKiBUaGUgcGFyYW1ldGVycyBvZiB0aGUgYENvbXByZWhlbmRQaWlSZWRhY3Rpb25TM09iamVjdExhbWJkYWAgZnVuY3Rpb24gZm9yIHRoZSBgQ3VzdFN1cHBvcnRSb2xlYC5cbiAgKi9cbiAgcmVhZG9ubHkgY3VzcnRTdXBwb3J0UmVkYWN0aW9uTGFtYmRhQ29uZmlnPzogUmVkYWN0aW9uTGFtYmRhUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgbWFuYWdlYWJsZSBwcm9wZXJ0aWVzIGZvciB0aGUgSUFNIHJvbGUgdXNlZCB0byBhY2Nlc3MgdGhlIGBzdXJ2ZXktcmVzdWx0cy50eHRgIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBnZW5lcmFsUm9sZUNvbmZpZz86IEdlbmVyYWxSb2xlUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgbWFuYWdlYWJsZSBwcm9wZXJ0aWVzIGZvciB0aGUgYWRtaW5pc3RyYXRvciBJQU0gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICByZWFkb25seSBhZG1pblJvbGVDb25maWc/OiBBZG1pblJvbGVQcm9wcztcbiAgLyoqXG4gICAqIFRoZSBtYW5hZ2VhYmxlIHByb3BlcnRpZXMgZm9yIHRoZSBiaWxsaW5nIElBTSByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHJlYWRvbmx5IGJpbGxpbmdSb2xlQ29uZmlnPzogQmlsbGluZ1JvbGVQcm9wcztcbiAgLyoqXG4gICAqIFRoZSBtYW5hZ2VhYmxlIHByb3BlcnRpZXMgZm9yIHRoZSBjdXN0b21lciBzdXBwb3J0IElBTSByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RTdXBwb3J0Um9sZUNvbmZpZz86IEN1c3RTdXBwb3J0Um9sZVByb3BzO1xuICAvKipcbiAgICogRm9yIGRpc3Rpbmd1aXNoIHRlc3QgYW5kIG5vcm1hbCBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnM/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSBwYXRoIHdoZXJlIGBmaWxlcy9hY2Nlc3NfY29udHJvbC8qLnR4dGAgYW5kIGBmaWxlcy9yZWRhY3Rpb24vKi50eHRgIHdpbGwgYmUgcHV0LlxuICAgKlxuICAgKiBETyBOT1QgSU5DTFVERSBgL2AgaW4gdGhlIGVuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgX19kaXJuYW1lXG4gICAqL1xuICByZWFkb25seSBleGFtcGxlRmlsZURpcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBmb3VuZGF0aW9uIG5lY2Vzc2FyeSB0byBkZXBsb3kgdGhlIFMzIE9iamVjdCBMYW1iZGEgQWNjZWVzcyBDb250cm9sIFVzZSBDYXNlLlxuICovXG5leHBvcnQgY2xhc3MgQ29tcHJlaGVuZFMzb2xhYiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGZvciBhY2Nlc3MgY29udHJvbC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzM29iamVjdExhbWJkYUFjY2Vzc0NvbnRyb2xBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIFMzIE9iamVjdCBMYW1iZGEgZm9yIHRoZSBhZG1pbiByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzM29iamVjdExhbWJkYUFkbWluQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGZvciB0aGUgYmlsbGluZyByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzM29iamVjdExhbWJkYUJpbGxpbmdBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIFMzIE9iamVjdCBMYW1iZGEgZm9yIHRoZSBjdXN0b21lciBzdXBwb3J0IHJvbGUgaW4gdGhlIHJlZGFjdGlvbiBjYXNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHMzb2JqZWN0TGFtYmRhQ3VzdG9tZXJTdXBwb3J0QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24gY29tYmluZWQgd2l0aCBBbWF6b24gQ29tcHJlaGVuZCBmb3IgdGhlIGdlbmVyYWwgY2FzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwaWlBY2Nlc3NDb25ydG9sTGFtYmRhQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24gY29tYmluZWQgd2l0aCBBbWF6b24gQ29tcHJlaGVuZCBmb3IgdGhpZSBhZG1pbmlzdHJhdG9yIHJvbGUgaW4gdGhlIHJlZGFjdGlvbiBjYXNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFkbWluTGFtYmRhQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAqIFRoZSBBUk4gb2YgdGhlIExhbWJkYSBmdW5jdGlvbiBjb21iaW5lZCB3aXRoIEFtYXpvbiBDb21wcmVoZW5kIGZvciB0aGllIGJpbGxpbmcgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICovXG4gIHB1YmxpYyByZWFkb25seSBiaWxsaW5nTGFtYmRhQXJuOiBzdHJpbmc7XG4gIC8qKlxuICogVGhlIEFSTiBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGNvbWJpbmVkIHdpdGggQW1hem9uIENvbXByZWhlbmQgZm9yIHRoaWUgY3VzdG9tZXIgc3VwcG9ydCByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3VzdG9tZXJTdXBwb3J0TGFtYmRhQXJuOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb21wcmVoZW5kUzNvbGFiUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IGV4YW1wbGVGaWxlRGlyID0gcHJvcHM/LmV4YW1wbGVGaWxlRGlyID8/IF9fZGlybmFtZTtcbiAgICBjb25zdCBnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMgPSBwcm9wcz8uZ2VuZXJhdGVSYW5kb21DaGFyYWN0ZXJzID8/IHRydWU7XG4gICAgLy8gcHJlcmVxdWlzaXRlcyBmb3IgSUFNIHJvbGVzXG4gICAgY29uc3QgZ2VuZXJhbFJvbGVDb25maWcgPSB0aGlzLmdldElhbVJvbGVDb25maWcoSWFtUm9sZU5hbWUuR0VORVJBTCwgcHJvcHM/LmdlbmVyYWxSb2xlQ29uZmlnKTtcbiAgICBjb25zdCBhZG1pblJvbGVDb25maWcgPSB0aGlzLmdldElhbVJvbGVDb25maWcoSWFtUm9sZU5hbWUuQURNSU4sIHByb3BzPy5hZG1pblJvbGVDb25maWcpO1xuICAgIGNvbnN0IGJpbGxpbmdSb2xlQ29uZmlnID0gdGhpcy5nZXRJYW1Sb2xlQ29uZmlnKElhbVJvbGVOYW1lLkJJTExJTkcsIHByb3BzPy5iaWxsaW5nUm9sZUNvbmZpZyk7XG4gICAgY29uc3QgY3VzdFN1cHBvcnRSb2xlQ29uZmlnID0gdGhpcy5nZXRJYW1Sb2xlQ29uZmlnKElhbVJvbGVOYW1lLkNVU1RfU1VQUE9SVCwgcHJvcHM/LmN1c3RTdXBwb3J0Um9sZUNvbmZpZyk7XG4gICAgLy8gczMgYnVjZWt0IGFuZCBpdHMgYWNjZXNzIHBvaW50c1xuICAgIGNvbnN0IHN1cnZleUJ1Y2tldFByZWZpeCA9IHByb3BzLnN1cnZleUJ1Y2tldFByZWZpeCA/PyB0aGlzLmdlbmVyYXRlUzNQcmVmaXgoNik7XG4gICAgY29uc3QgdHJhbnNjcmlwdHNCdWNrZXRQcmVmaXggPSBwcm9wcy50cmFuc2NyaXB0c0J1Y2tldFByZWZpeCA/PyB0aGlzLmdlbmVyYXRlUzNQcmVmaXgoNik7XG4gICAgY29uc3QgczNBY2Nlc3NQb2ludE5hbWVzOiBTM0FjY2Vzc1BvaW50TmFtZXMgPSB7XG4gICAgICBnZW5lcmFsOiBwcm9wcz8uczNBY2Nlc3NQb2ludE5hbWVzPy5nZW5lcmFsID8/ICgoZ2VuZXJhdGVSYW5kb21DaGFyYWN0ZXJzKSA/IGBhY2Nlc3NjdGwtczMtYXAtc3VydmV5LXJlc3VsdHMtdW5rbm93bi1waWktJHt0aGlzLmdlbmVyYXRlUzNQcmVmaXgoNil9YCA6ICdhY2Nlc3NjdGwtczMtYXAtc3VydmV5LXJlc3VsdHMtdW5rbm93bi1waWknKSxcbiAgICAgIGFkbWluOiBwcm9wcz8uczNBY2Nlc3NQb2ludE5hbWVzPy5hZG1pbiA/PyAoKGdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycykgPyBgYWRtaW4tczMtYWNjZXNzLXBvaW50LWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpLSR7dGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpfWAgOiAnYWRtaW4tczMtYWNjZXNzLXBvaW50LWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJyksXG4gICAgICBiaWxsaW5nOiBwcm9wcz8uczNBY2Nlc3NQb2ludE5hbWVzPy5iaWxsaW5nID8/ICgoZ2VuZXJhdGVSYW5kb21DaGFyYWN0ZXJzKSA/IGBiaWxsLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaS0ke3RoaXMuZ2VuZXJhdGVTM1ByZWZpeCg2KX1gIDogJ2JpbGwtczMtYWNjZXNzLXBvaW50LWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJyksXG4gICAgICBjdXN0b21lclN1cHBvcnQ6IHByb3BzPy5zM0FjY2Vzc1BvaW50TmFtZXM/LmN1c3RvbWVyU3VwcG9ydCA/PyAoKGdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycykgPyBgY3MtczMtYWNjZXNzLXBvaW50LWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpLSR7dGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpfWAgOiAnY3MtczMtYWNjZXNzLXBvaW50LWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJyksXG4gICAgfTtcbiAgICAvLyBvYmplY3QgTGFtYmRhXG4gICAgY29uc3QgYWNzZW1hbnRpY1ZlcnNpb24gPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8uc2VtYW50aWNWZXJzaW9uID8/ICcxLjAuMic7XG4gICAgY29uc3QgYWNjb25maWRlbmNlVGhyZXNob2xkID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LmNvbmZpZGVuY2VUaHJlc2hvbGQgPz8gJzAuNSc7XG4gICAgY29uc3QgYWNjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8uY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50ID8/ICcyMCc7XG4gICAgY29uc3QgYWNkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LmRlZmF1bHRMYW5ndWFnZUNvZGUgPz8gJ2VuJztcbiAgICBjb25zdCBhY2RvY3VtZW50TWF4U2l6ZSA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemUgPz8gJzEwMjQwMCc7XG4gICAgY29uc3QgYWNkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LmRvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMgPz8gJzUwMDAwJztcbiAgICBjb25zdCBhY2lzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5pc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQgPz8gJ2ZhbHNlJztcbiAgICBjb25zdCBhY2xvZ0xldmVsID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LmxvZ0xldmVsID8/ICdJTkZPJztcbiAgICBjb25zdCBhY21heENoYXJzT3ZlcmxhcCA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5tYXhDaGFyc092ZXJsYXAgPz8gJzIwMCc7XG4gICAgY29uc3QgYWNwaWlFbnRpdHlUeXBlcyA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5waWlFbnRpdHlUeXBlcyA/PyAnQUxMJztcbiAgICBjb25zdCBhY3B1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5wdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPz8gJ3RydWUnO1xuICAgIGNvbnN0IGFjc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LnN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2VucyA/PyAnMjAnO1xuICAgIGNvbnN0IGFjdW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmcgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8udW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmcgPz8gJ0ZBSUwnO1xuICAgIGNvbnN0IGFjY2Vzc0NvbnRyb2xMYW1iZGEgPSBuZXcgQWNjZXNzQ29ucnRvbExhbWJkYSh0aGlzLCAnU2VydmVybGVzc0xhbWJkYScsIHtcbiAgICAgIHNlbWFudGljVmVyc2lvbjogYWNzZW1hbnRpY1ZlcnNpb24sXG4gICAgICBjb25maWRlbmNlVGhyZXNob2xkOiBhY2NvbmZpZGVuY2VUaHJlc2hvbGQsXG4gICAgICBjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQ6IGFjY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50LFxuICAgICAgZGVmYXVsdExhbmd1YWdlQ29kZTogYWNkZWZhdWx0TGFuZ3VhZ2VDb2RlLFxuICAgICAgZG9jdW1lbnRNYXhTaXplOiBhY2RvY3VtZW50TWF4U2l6ZSxcbiAgICAgIGRvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXM6IGFjZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyxcbiAgICAgIGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZDogYWNpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQsXG4gICAgICBsb2dMZXZlbDogYWNsb2dMZXZlbCxcbiAgICAgIG1heENoYXJzT3ZlcmxhcDogYWNtYXhDaGFyc092ZXJsYXAsXG4gICAgICBwaWlFbnRpdHlUeXBlczogYWNwaWlFbnRpdHlUeXBlcyxcbiAgICAgIHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljczogYWNwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MsXG4gICAgICBzdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnM6IGFjc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zLFxuICAgICAgdW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmc6IGFjdW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmcsXG4gICAgfSk7XG4gICAgLy8gQ29tcHJlaGVuZFBpaVJlZGFjdGlvblMzT2JqZWN0TGFtYmRhXG4gICAgY29uc3QgYWRtaW5SZWRhY3RMYW1iZGEgPSB0aGlzLmluaXRpYWxpemVSZWRhY3RMYW1iZGEoSWFtUm9sZU5hbWUuQURNSU4sIHByb3BzPy5hZG1pblJlZGFjdGlvbkxhbWJkYUNvbmZpZyk7XG4gICAgY29uc3QgYmlsbGluZ1JlZGFjdExhbWJkYSA9IHRoaXMuaW5pdGlhbGl6ZVJlZGFjdExhbWJkYShJYW1Sb2xlTmFtZS5CSUxMSU5HLCBwcm9wcz8uYmlsbGluZ1JlZGFjdGlvbkxhbWJkYUNvbmZpZyk7XG4gICAgY29uc3QgY3VzdFN1cHBvcnRSZWRhY3RMYW1iZGEgPSB0aGlzLmluaXRpYWxpemVSZWRhY3RMYW1iZGEoSWFtUm9sZU5hbWUuQ1VTVF9TVVBQT1JULCBwcm9wcz8uY3VzcnRTdXBwb3J0UmVkYWN0aW9uTGFtYmRhQ29uZmlnKTtcbiAgICBiaWxsaW5nUmVkYWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShhZG1pblJlZGFjdExhbWJkYSk7XG4gICAgY3VzdFN1cHBvcnRSZWRhY3RMYW1iZGEubm9kZS5hZGREZXBlbmRlbmN5KGJpbGxpbmdSZWRhY3RMYW1iZGEpO1xuXG4gICAgLy8gSUFNIHJvbGVzXG4gICAgY29uc3QgZ2VuZXJhbFJvbGUgPSBuZXcgR2VuZXJhbFJvbGUodGhpcywgJ0dlbmVyYWwnLCB7XG4gICAgICBvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWU6IGdlbmVyYWxSb2xlQ29uZmlnLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSxcbiAgICAgIHBvbGljeU5hbWU6IGdlbmVyYWxSb2xlQ29uZmlnLnBvbGljeU5hbWUsXG4gICAgICBpYW1Sb2xlTmFtZTogZ2VuZXJhbFJvbGVDb25maWcuaWFtUm9sZU5hbWUsXG4gICAgfSk7XG4gICAgY29uc3QgYWRtaW5Sb2xlID0gbmV3IEFkbWluUm9sZSh0aGlzLCAnQWRtaW4nLCB7XG4gICAgICBvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWU6IGFkbWluUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBwb2xpY3lOYW1lOiBhZG1pblJvbGVDb25maWcucG9saWN5TmFtZSxcbiAgICAgIGlhbVJvbGVOYW1lOiBhZG1pblJvbGVDb25maWcuaWFtUm9sZU5hbWUsXG4gICAgfSk7XG4gICAgY29uc3QgYmlsbGluZ1JvbGUgPSBuZXcgQmlsbGluZ1JvbGUodGhpcywgJ0JpbGxpbmcnLCB7XG4gICAgICBvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWU6IGJpbGxpbmdSb2xlQ29uZmlnLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSxcbiAgICAgIHBvbGljeU5hbWU6IGJpbGxpbmdSb2xlQ29uZmlnLnBvbGljeU5hbWUsXG4gICAgICBpYW1Sb2xlTmFtZTogYmlsbGluZ1JvbGVDb25maWcuaWFtUm9sZU5hbWUsXG4gICAgfSk7XG4gICAgY29uc3QgY3VzdFN1cHBvcnRSb2xlID0gbmV3IEN1c3RTdXBwb3J0Um9sZSh0aGlzLCAnQ3VzdFN1cHBvcnQnLCB7XG4gICAgICBvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWU6IGN1c3RTdXBwb3J0Um9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBwb2xpY3lOYW1lOiBjdXN0U3VwcG9ydFJvbGVDb25maWcucG9saWN5TmFtZSxcbiAgICAgIGlhbVJvbGVOYW1lOiBjdXN0U3VwcG9ydFJvbGVDb25maWcuaWFtUm9sZU5hbWUsXG4gICAgfSk7XG5cbiAgICAvLyBTMyBidWNrZXRzXG4gICAgY29uc3Qgc3VydmV5QnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnU3VydmV5UmVzdWx0QnVja2V0Jywge1xuICAgICAgYnVja2V0TmFtZTogKGdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycykgPyBgc3VydmV5LXJlc3VsdHMtdW5rbm93bi1waWktJHtzdXJ2ZXlCdWNrZXRQcmVmaXh9YCA6ICdzdXJ2ZXktcmVzdWx0cy11bmtub3duLXBpaS0xMjM0NTYnLFxuICAgICAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgIH0pO1xuICAgIHN1cnZleUJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KFxuICAgICAge1xuICAgICAgICBzaWQ6ICdBV1NCdWNrZXRHZXRQb2xpY3knLFxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5BY2NvdW50Um9vdFByaW5jaXBhbCgpXSxcbiAgICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICByZXNvdXJjZXM6IFtgJHtzdXJ2ZXlCdWNrZXQuYnVja2V0QXJufS8qYF0sXG4gICAgICAgIGNvbmRpdGlvbnM6IHsgWydTdHJpbmdFcXVhbHMnXTogeyAnczM6RGF0YUFjY2Vzc1BvaW50QWNjb3VudCc6IGNkay5Bd3MuQUNDT1VOVF9JRCB9IH0sXG4gICAgICB9LFxuICAgICkpO1xuICAgIHN1cnZleUJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KFxuICAgICAge1xuICAgICAgICBzaWQ6ICdBV1NCdWNrZXRQdXRQb2xpY3knLFxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5BY2NvdW50Um9vdFByaW5jaXBhbCgpXSxcbiAgICAgICAgYWN0aW9uczogWydzMzpQdXRPYmplY3QnXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICByZXNvdXJjZXM6IFtgJHtzdXJ2ZXlCdWNrZXQuYnVja2V0QXJufS8qYF0sXG4gICAgICB9LFxuICAgICkpO1xuICAgIGNvbnN0IHRyYW5zY3JpcHRCdWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsICdUcmFuc2NyaXB0QnVja2V0Jywge1xuICAgICAgYnVja2V0TmFtZTogKGdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycykgPyBgY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWktJHt0cmFuc2NyaXB0c0J1Y2tldFByZWZpeH1gIDogJ2NhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpLTEyMzQ0NTYnLFxuICAgICAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudChcbiAgICAgIHtcbiAgICAgICAgc2lkOiAnQVdTQnVja2V0R2V0UG9saWN5JyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0J10sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7dHJhbnNjcmlwdEJ1Y2tldC5idWNrZXRBcm59LypgXSxcbiAgICAgICAgY29uZGl0aW9uczogeyBbJ1N0cmluZ0VxdWFscyddOiB7ICdzMzpEYXRhQWNjZXNzUG9pbnRBY2NvdW50JzogY2RrLkF3cy5BQ0NPVU5UX0lEIH0gfSxcbiAgICAgIH0sXG4gICAgKSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KFxuICAgICAge1xuICAgICAgICBzaWQ6ICdBV1NCdWNrZXRQdXRQb2xpY3knLFxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5BY2NvdW50Um9vdFByaW5jaXBhbCgpXSxcbiAgICAgICAgYWN0aW9uczogWydzMzpQdXRPYmplY3QnXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICByZXNvdXJjZXM6IFtgJHt0cmFuc2NyaXB0QnVja2V0LmJ1Y2tldEFybn0vKmBdLFxuICAgICAgfSxcbiAgICApKTtcbiAgICBzdXJ2ZXlCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGFjY2Vzc0NvbnRyb2xMYW1iZGEpO1xuICAgIHN1cnZleUJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koZ2VuZXJhbFJvbGUpO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGFkbWluUmVkYWN0TGFtYmRhKTtcbiAgICB0cmFuc2NyaXB0QnVja2V0Lm5vZGUuYWRkRGVwZW5kZW5jeShiaWxsaW5nUmVkYWN0TGFtYmRhKTtcbiAgICB0cmFuc2NyaXB0QnVja2V0Lm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0U3VwcG9ydFJlZGFjdExhbWJkYSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koYWRtaW5Sb2xlKTtcbiAgICB0cmFuc2NyaXB0QnVja2V0Lm5vZGUuYWRkRGVwZW5kZW5jeShiaWxsaW5nUm9sZSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koY3VzdFN1cHBvcnRSb2xlKTtcblxuICAgIC8vIGN1c3RvbSByZXNvdXJjZXNcbiAgICBjb25zdCBnZW5lcmFsTGFtYmRhQXJuQ2FwdG9yID0gbmV3IExhbWJkYUFybkNhcHRvckN1c3RvbVJlc291cmNlKHRoaXMsICdHZW5lcmFsQ2FwdG9yJywge1xuICAgICAgcm9sZU5hbWU6IElhbVJvbGVOYW1lLkdFTkVSQUwsXG4gICAgICBwYXJ0aWFsTGFtYmRhTmFtZTogJ1BpaUFjY2Vzc0NvbnRyb2xGdW5jdGlvbicsXG4gICAgfSk7XG4gICAgY29uc3QgYWRtaW5MYW1iZGFBcm5DYXB0b3IgPSBuZXcgTGFtYmRhQXJuQ2FwdG9yQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0FkbWluTGFtYmRhQ2FwdG9yJywge1xuICAgICAgcm9sZU5hbWU6IElhbVJvbGVOYW1lLkFETUlOLFxuICAgICAgcGFydGlhbExhbWJkYU5hbWU6ICdQaWlSZWRhY3Rpb25GdW5jdGlvbicsXG4gICAgfSk7XG4gICAgY29uc3QgYmlsbGluZ0xhbWJkYUFybkNhcHRvciA9IG5ldyBMYW1iZGFBcm5DYXB0b3JDdXN0b21SZXNvdXJjZSh0aGlzLCAnQmlsbGluZ0NhcHRvcicsIHtcbiAgICAgIHJvbGVOYW1lOiBJYW1Sb2xlTmFtZS5CSUxMSU5HLFxuICAgICAgcGFydGlhbExhbWJkYU5hbWU6ICdQaWlSZWRhY3Rpb25GdW5jdGlvbicsXG4gICAgfSk7XG4gICAgY29uc3QgY3VzdG9tU3VwcG9ydExhbWJkYUFybkNhcHRvciA9IG5ldyBMYW1iZGFBcm5DYXB0b3JDdXN0b21SZXNvdXJjZSh0aGlzLCAnQ3VzdG9tU3VwcG9ydENhcHRvcicsIHtcbiAgICAgIHJvbGVOYW1lOiBJYW1Sb2xlTmFtZS5DVVNUX1NVUFBPUlQsXG4gICAgICBwYXJ0aWFsTGFtYmRhTmFtZTogJ1BpaVJlZGFjdGlvbkZ1bmN0aW9uJyxcbiAgICB9KTtcbiAgICBnZW5lcmFsTGFtYmRhQXJuQ2FwdG9yLm5vZGUuYWRkRGVwZW5kZW5jeShhY2Nlc3NDb250cm9sTGFtYmRhKTtcbiAgICBhZG1pbkxhbWJkYUFybkNhcHRvci5ub2RlLmFkZERlcGVuZGVuY3koYWRtaW5SZWRhY3RMYW1iZGEpO1xuICAgIGJpbGxpbmdMYW1iZGFBcm5DYXB0b3Iubm9kZS5hZGREZXBlbmRlbmN5KGJpbGxpbmdSZWRhY3RMYW1iZGEpO1xuICAgIGN1c3RvbVN1cHBvcnRMYW1iZGFBcm5DYXB0b3Iubm9kZS5hZGREZXBlbmRlbmN5KGN1c3RTdXBwb3J0UmVkYWN0TGFtYmRhKTtcbiAgICB0aGlzLnBpaUFjY2Vzc0NvbnJ0b2xMYW1iZGFBcm4gPSBnZW5lcmFsTGFtYmRhQXJuQ2FwdG9yLmxhbWJkYUFybjtcbiAgICB0aGlzLmFkbWluTGFtYmRhQXJuID0gYWRtaW5MYW1iZGFBcm5DYXB0b3IubGFtYmRhQXJuO1xuICAgIHRoaXMuYmlsbGluZ0xhbWJkYUFybiA9IGJpbGxpbmdMYW1iZGFBcm5DYXB0b3IubGFtYmRhQXJuO1xuICAgIHRoaXMuY3VzdG9tZXJTdXBwb3J0TGFtYmRhQXJuID0gY3VzdG9tU3VwcG9ydExhbWJkYUFybkNhcHRvci5sYW1iZGFBcm47XG5cbiAgICAvLyBTMyBhY2Nlc3MgcG9pbnRzXG4gICAgY29uc3QgZ2VuZXJhbEFjY2Vzc1BvaW50ID0gbmV3IHMzLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdBY2Nlc3NDb250cm9sUzNBY2Nlc3NQb2ludCcsIHtcbiAgICAgIGJ1Y2tldDogc3VydmV5QnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAvLyBuYW1lOiBzM0FjY2Vzc1BvaW50TmFtZXMuZ2VuZXJhbC5zdWJzdHJpbmcoMCwgNTApLFxuICAgIH0pO1xuICAgIGdlbmVyYWxBY2Nlc3NQb2ludC5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdOYW1lJywgczNBY2Nlc3NQb2ludE5hbWVzLmdlbmVyYWwuc3Vic3RyaW5nKDAsIDUwKSk7XG4gICAgZ2VuZXJhbEFjY2Vzc1BvaW50LmFkZE92ZXJyaWRlO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzUG9pbnQgPSBuZXcgczMuQ2ZuQWNjZXNzUG9pbnQodGhpcywgJ0FkbWluUzNBY2Nlc3NQb2ludCcsIHtcbiAgICAgIGJ1Y2tldDogdHJhbnNjcmlwdEJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgLy8gbmFtZTogczNBY2Nlc3NQb2ludE5hbWVzLmFkbWluLnN1YnN0cmluZygwLCA1MCksXG4gICAgfSk7XG4gICAgYWRtaW5BY2Nlc3NQb2ludC5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdOYW1lJywgczNBY2Nlc3NQb2ludE5hbWVzLmFkbWluLnN1YnN0cmluZygwLCA1MCkpO1xuICAgIGNvbnN0IGJpbGxpbmdBY2Nlc3NQb2ludCA9IG5ldyBzMy5DZm5BY2Nlc3NQb2ludCh0aGlzLCAnQmlsbGluZ1MzQWNjZXNzUG9pbnQnLCB7XG4gICAgICBidWNrZXQ6IHRyYW5zY3JpcHRCdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIC8vIG5hbWU6IHMzQWNjZXNzUG9pbnROYW1lcy5iaWxsaW5nLnN1YnN0cmluZygwLCA1MCksXG4gICAgfSk7XG4gICAgYWRtaW5BY2Nlc3NQb2ludC5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdOYW1lJywgczNBY2Nlc3NQb2ludE5hbWVzLmJpbGxpbmcuc3Vic3RyaW5nKDAsIDUwKSk7XG4gICAgY29uc3QgY3VzdG9tZXJTdXBwb3J0QWNjZXNzUG9pbnQgPSBuZXcgczMuQ2ZuQWNjZXNzUG9pbnQodGhpcywgJ0N1c3RvbWVyU3VwcG9ydFMzQWNjZXNzUG9pbnQnLCB7XG4gICAgICBidWNrZXQ6IHRyYW5zY3JpcHRCdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIC8vIG5hbWU6IHMzQWNjZXNzUG9pbnROYW1lcy5jdXN0b21lclN1cHBvcnQuc3Vic3RyaW5nKDAsIDUwKSxcbiAgICB9KTtcbiAgICBjdXN0b21lclN1cHBvcnRBY2Nlc3NQb2ludC5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdOYW1lJywgczNBY2Nlc3NQb2ludE5hbWVzLmN1c3RvbWVyU3VwcG9ydC5zdWJzdHJpbmcoMCwgNTApKTtcblxuICAgIC8vIFMzT2JqZWN0TGFtYmRhIHJlc291cmNlc1xuICAgIGNvbnN0IGFjY2Vzc0NvbnRyb2xPYmplY3RMYW1iZGEgPSBuZXcgczNvYmplY3RsYW1iZGEuQ2ZuQWNjZXNzUG9pbnQodGhpcywgJ0dlbmVyYWxMYW1iZGFBY2Nlc3NQb2ludCcsIHtcbiAgICAgIG5hbWU6IGdlbmVyYWxSb2xlQ29uZmlnLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSxcbiAgICAgIG9iamVjdExhbWJkYUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgc3VwcG9ydGluZ0FjY2Vzc1BvaW50OiBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke2dlbmVyYWxBY2Nlc3NQb2ludC5hdHRyTmFtZX1gLFxuICAgICAgICB0cmFuc2Zvcm1hdGlvbkNvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWN0aW9uczogWydHZXRPYmplY3QnXSxcbiAgICAgICAgICAgIGNvbnRlbnRUcmFuc2Zvcm1hdGlvbjogbmV3IGNkay5DZm5Kc29uKHRoaXMsICdHZW5lcmFsT2JqZWN0TGFtYmRhQ29uZmlnJywge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIEF3c0xhbWJkYToge1xuICAgICAgICAgICAgICAgICAgRnVuY3Rpb25Bcm46IHRoaXMucGlpQWNjZXNzQ29ucnRvbExhbWJkYUFybixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgYWRtaW5PYmplY3RMYW1iZGEgPSBuZXcgczNvYmplY3RsYW1iZGEuQ2ZuQWNjZXNzUG9pbnQodGhpcywgJ0FkbWluTGFtYmRhQWNjZXNzUG9pbnQnLCB7XG4gICAgICBuYW1lOiBhZG1pblJvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgb2JqZWN0TGFtYmRhQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBzdXBwb3J0aW5nQWNjZXNzUG9pbnQ6IGBhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06czM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmFjY2Vzc3BvaW50LyR7YWRtaW5BY2Nlc3NQb2ludC5hdHRyTmFtZX1gLFxuICAgICAgICB0cmFuc2Zvcm1hdGlvbkNvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWN0aW9uczogWydHZXRPYmplY3QnXSxcbiAgICAgICAgICAgIGNvbnRlbnRUcmFuc2Zvcm1hdGlvbjogbmV3IGNkay5DZm5Kc29uKHRoaXMsICdBZG1pbk9iamVjdExhbWJkYUNvbmZpZycsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBBd3NMYW1iZGE6IHtcbiAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uQXJuOiB0aGlzLmFkbWluTGFtYmRhQXJuLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBiaWxsaW5nT2JqZWN0TGFtYmRhID0gbmV3IHMzb2JqZWN0bGFtYmRhLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdCaWxsaW5nTGFtYmRhQWNjZXNzUG9pbnQnLCB7XG4gICAgICBuYW1lOiBiaWxsaW5nUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBvYmplY3RMYW1iZGFDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIHN1cHBvcnRpbmdBY2Nlc3NQb2ludDogYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpzMzoke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06YWNjZXNzcG9pbnQvJHtiaWxsaW5nQWNjZXNzUG9pbnQuYXR0ck5hbWV9YCxcbiAgICAgICAgdHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnR2V0T2JqZWN0J10sXG4gICAgICAgICAgICBjb250ZW50VHJhbnNmb3JtYXRpb246IG5ldyBjZGsuQ2ZuSnNvbih0aGlzLCAnQmlsbGluZ09iamVjdExhbWJkYUNvbmZpZycsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBBd3NMYW1iZGE6IHtcbiAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uQXJuOiB0aGlzLmJpbGxpbmdMYW1iZGFBcm4sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGN1c3RvbWVyU3VwcG9ydE9iamVjdExhbWJkYSA9IG5ldyBzM29iamVjdGxhbWJkYS5DZm5BY2Nlc3NQb2ludCh0aGlzLCAnQ3VzdG9tZXJTdXBwb3J0TGFtYmRhQWNjZXNzUG9pbnQnLCB7XG4gICAgICBuYW1lOiBjdXN0U3VwcG9ydFJvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgb2JqZWN0TGFtYmRhQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBzdXBwb3J0aW5nQWNjZXNzUG9pbnQ6IGBhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06czM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmFjY2Vzc3BvaW50LyR7Y3VzdG9tZXJTdXBwb3J0QWNjZXNzUG9pbnQuYXR0ck5hbWV9YCxcbiAgICAgICAgdHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnR2V0T2JqZWN0J10sXG4gICAgICAgICAgICBjb250ZW50VHJhbnNmb3JtYXRpb246IG5ldyBjZGsuQ2ZuSnNvbih0aGlzLCAnQ3VzdG9tZXJTdXBwb3J0T2JqZWN0TGFtYmRhQ29uZmlnJywge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIEF3c0xhbWJkYToge1xuICAgICAgICAgICAgICAgICAgRnVuY3Rpb25Bcm46IHRoaXMuY3VzdG9tZXJTdXBwb3J0TGFtYmRhQXJuLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEF1dG9tYXRpYyB1cGxvYWRpbmdcbiAgICBjb25zdCBzdXJ2ZXlGaWxlUGF0aCA9IHBhdGguam9pbihleGFtcGxlRmlsZURpciwgJ2ZpbGVzL2FjY2Vzc19jb250cm9sJyk7XG4gICAgY29uc3QgcmVkYWN0aW9uRmlsZVBhdGggPSBwYXRoLmpvaW4oZXhhbXBsZUZpbGVEaXIsICdmaWxlcy9yZWRhY3Rpb24nKTtcbiAgICBjb25zb2xlLmxvZyhgc3VydmV5RmlsZVBhdGg6ICR7c3VydmV5RmlsZVBhdGh9YCk7XG4gICAgY29uc29sZS5sb2coYHJlZGFjdGlvbkZpbGVQYXRoOiAke3JlZGFjdGlvbkZpbGVQYXRofWApO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKHN1cnZleUZpbGVQYXRoKSkge1xuICAgICAgY29uc3QgZGVwbG95RmlsZXMgPSBuZXcgczNkZWxwb3kuQnVja2V0RGVwbG95bWVudCh0aGlzLCAnRGVwbG95U3VydmV5UmVzdWx0RmlsZXMnLCB7XG4gICAgICAgIHNvdXJjZXM6IFtzM2RlbHBveS5Tb3VyY2UuYXNzZXQoc3VydmV5RmlsZVBhdGgpXSxcbiAgICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHN1cnZleUJ1Y2tldCxcbiAgICAgIH0pO1xuICAgICAgZGVwbG95RmlsZXMubm9kZS5hZGREZXBlbmRlbmN5KGFjY2Vzc0NvbnRyb2xPYmplY3RMYW1iZGEpO1xuICAgIH07XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMocmVkYWN0aW9uRmlsZVBhdGgpKSB7XG4gICAgICBjb25zdCBkZXBsb3lUcmFuc2NyaXB0RmlsZXMgPSBuZXcgczNkZWxwb3kuQnVja2V0RGVwbG95bWVudCh0aGlzLCAnRGVwbG95VHJhbnNjcmlwdEZpbGVzJywge1xuICAgICAgICBzb3VyY2VzOiBbczNkZWxwb3kuU291cmNlLmFzc2V0KHJlZGFjdGlvbkZpbGVQYXRoKV0sXG4gICAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB0cmFuc2NyaXB0QnVja2V0LFxuICAgICAgfSk7XG4gICAgICBkZXBsb3lUcmFuc2NyaXB0RmlsZXMubm9kZS5hZGREZXBlbmRlbmN5KGFkbWluT2JqZWN0TGFtYmRhKTtcbiAgICAgIGRlcGxveVRyYW5zY3JpcHRGaWxlcy5ub2RlLmFkZERlcGVuZGVuY3koYmlsbGluZ09iamVjdExhbWJkYSk7XG4gICAgICBkZXBsb3lUcmFuc2NyaXB0RmlsZXMubm9kZS5hZGREZXBlbmRlbmN5KGN1c3RvbWVyU3VwcG9ydE9iamVjdExhbWJkYSk7XG4gICAgfTtcblxuICAgIHRoaXMuczNvYmplY3RMYW1iZGFBY2Nlc3NDb250cm9sQXJuID0gY2RrLlRva2VuLmFzU3RyaW5nKGNkay5Gbi5nZXRBdHQoYWNjZXNzQ29udHJvbE9iamVjdExhbWJkYS5sb2dpY2FsSWQsICdBcm4nKSk7XG4gICAgdGhpcy5zM29iamVjdExhbWJkYUFkbWluQXJuID0gY2RrLlRva2VuLmFzU3RyaW5nKGNkay5Gbi5nZXRBdHQoYWRtaW5PYmplY3RMYW1iZGEubG9naWNhbElkLCAnQXJuJykpO1xuICAgIHRoaXMuczNvYmplY3RMYW1iZGFCaWxsaW5nQXJuID0gY2RrLlRva2VuLmFzU3RyaW5nKGNkay5Gbi5nZXRBdHQoYmlsbGluZ09iamVjdExhbWJkYS5sb2dpY2FsSWQsICdBcm4nKSk7XG4gICAgdGhpcy5zM29iamVjdExhbWJkYUN1c3RvbWVyU3VwcG9ydEFybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KGN1c3RvbWVyU3VwcG9ydE9iamVjdExhbWJkYS5sb2dpY2FsSWQsICdBcm4nKSk7XG4gICAgYWNjZXNzQ29udHJvbE9iamVjdExhbWJkYS5ub2RlLmFkZERlcGVuZGVuY3koZ2VuZXJhbExhbWJkYUFybkNhcHRvcik7XG4gICAgYWRtaW5PYmplY3RMYW1iZGEubm9kZS5hZGREZXBlbmRlbmN5KGFkbWluTGFtYmRhQXJuQ2FwdG9yKTtcbiAgICBiaWxsaW5nT2JqZWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShiaWxsaW5nTGFtYmRhQXJuQ2FwdG9yKTtcbiAgICBjdXN0b21lclN1cHBvcnRPYmplY3RMYW1iZGEubm9kZS5hZGREZXBlbmRlbmN5KGN1c3RvbVN1cHBvcnRMYW1iZGFBcm5DYXB0b3IpO1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlUzNQcmVmaXgobGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHZhciByZXN1bHQgPSAnJztcbiAgICBjb25zdCBjaGFyYWN0ZXJzID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG4gICAgY29uc3QgY2hhcmFjdGVyc0xlbmd0aCA9IGNoYXJhY3RlcnMubGVuZ3RoO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc3VsdCArPSBjaGFyYWN0ZXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzTGVuZ3RoKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHJlZGFjdGlvbiBMYW1iZGEgZnVuY3Rpb24gZm9yIGEgc3BlaWNmaWMgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSByb2xlTmFtZSB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBJQU0gcm9sZVxuICAgKiBAcGFyYW0gc2VydmVybGVzc0xhbWJkYUNvbmZpZyB0aGUgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXIgc2V0dGluZyBmb3IgdGhlIEFtYXpvbiBDb21wcmVoZW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplUmVkYWN0TGFtYmRhID0gKHJvbGVOYW1lOiBzdHJpbmcsIHNlcnZlcmxlc3NMYW1iZGFDb25maWc/OiBSZWRhY3Rpb25MYW1iZGFQcm9wcyk6IFJlZGFjdGlvbkxhbWJkYSA9PiB7XG4gICAgY29uc3Qgc2VtYW50aWNWZXJzaW9uID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uc2VtYW50aWNWZXJzaW9uID8/ICcxLjAuMic7XG4gICAgY29uc3QgbG9nTGV2ZWwgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5sb2dMZXZlbCA/PyAnSU5GTyc7XG4gICAgY29uc3QgdW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmcgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy51bnN1cHBvcnRlZEZpbGVIYW5kbGluZyA/PyAnRkFJTCc7XG4gICAgY29uc3QgaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkID8/ICdmYWxzZSc7XG4gICAgY29uc3QgZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LmRvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMgPz8gJzUwMDAwJztcbiAgICBjb25zdCBkb2N1bWVudE1heFNpemVEZXRlY3RQaWlFbnRpdGllcyA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LmRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzID8/ICc1MDAwJztcbiAgICBjb25zdCBwaWlFbnRpdHlUeXBlcyA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LnBpaUVudGl0eVR5cGVzID8/ICdBTEwnO1xuICAgIGNvbnN0IG1hc2tDaGFyYWN0ZXIgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5tYXNrQ2hhcmFjdGVyID8/ICcqJztcbiAgICBjb25zdCBtYXNrTW9kZSA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/Lm1hc2tNb2RlID8/ICdNQVNLJztcbiAgICBjb25zdCBzdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5zdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMgPz8gJzIwJztcbiAgICBjb25zdCBkb2N1bWVudE1heFNpemUgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemUgPz8gJzEwMjQwMCc7XG4gICAgY29uc3QgY29uZmlkZW5jZVRocmVzaG9sZCA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LmNvbmZpZGVuY2VUaHJlc2hvbGQgPz8gJzAuNSc7XG4gICAgY29uc3QgbWF4Q2hhcnNPdmVybGFwID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8ubWF4Q2hhcnNPdmVybGFwID8/ICcyMDAnO1xuICAgIGNvbnN0IGRlZmF1bHRMYW5ndWFnZUNvZGUgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kZWZhdWx0TGFuZ3VhZ2VDb2RlID8/ICdlbic7XG4gICAgY29uc3QgZGV0ZWN0UGlpRW50aXRpZXNUaHJlYWRDb3VudCA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LmRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzgnO1xuICAgIGNvbnN0IGNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LmNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCA/PyAnMjAnO1xuICAgIGNvbnN0IHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LnB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyA/PyAndHJ1ZSc7XG5cbiAgICByZXR1cm4gbmV3IFJlZGFjdGlvbkxhbWJkYSh0aGlzLCBgU2VydmVybGVzc1JlZGFjdExhbWJkYS0ke3JvbGVOYW1lfWAsIHtcbiAgICAgIHNlbWFudGljVmVyc2lvbjogc2VtYW50aWNWZXJzaW9uLFxuICAgICAgbG9nTGV2ZWw6IGxvZ0xldmVsLFxuICAgICAgdW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmc6IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nLFxuICAgICAgaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkOiBpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQsXG4gICAgICBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzOiBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzLFxuICAgICAgZG9jdW1lbnRNYXhTaXplRGV0ZWN0UGlpRW50aXRpZXM6IGRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzLFxuICAgICAgcGlpRW50aXR5VHlwZXM6IHBpaUVudGl0eVR5cGVzLFxuICAgICAgbWFza0NoYXJhY3RlcjogbWFza0NoYXJhY3RlcixcbiAgICAgIG1hc2tNb2RlOiBtYXNrTW9kZSxcbiAgICAgIHN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2Vuczogc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zLFxuICAgICAgZG9jdW1lbnRNYXhTaXplOiBkb2N1bWVudE1heFNpemUsXG4gICAgICBjb25maWRlbmNlVGhyZXNob2xkOiBjb25maWRlbmNlVGhyZXNob2xkLFxuICAgICAgbWF4Q2hhcnNPdmVybGFwOiBtYXhDaGFyc092ZXJsYXAsXG4gICAgICBkZWZhdWx0TGFuZ3VhZ2VDb2RlOiBkZWZhdWx0TGFuZ3VhZ2VDb2RlLFxuICAgICAgZGV0ZWN0UGlpRW50aXRpZXNUaHJlYWRDb3VudDogZGV0ZWN0UGlpRW50aXRpZXNUaHJlYWRDb3VudCxcbiAgICAgIGNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudDogY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50LFxuICAgICAgcHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzOiBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MsXG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldHMgcHJvcGVydGllcyByZWxhdGVkIHRvIHRoZSBJQU0gcm9sZXMuXG4gICAqXG4gICAqIEBwYXJhbSByb2xlTmFtZSB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBJQU0gcm9sZS5cbiAgICogQHBhcmFtIHJvbGVDb25maWcgdGhlIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVyIHNldHRpbmcgZm9yIG9uZSBvZiB0aGUgSUFNIHJvbGUuXG4gICAqIEByZXR1cm5zIHRoZSBwcm9wZXJ0eSBncm91cC5cbiAgICovXG4gIHByaXZhdGUgZ2V0SWFtUm9sZUNvbmZpZyA9IChyb2xlTmFtZTogc3RyaW5nLCByb2xlQ29uZmlnPzogR2VuZXJhbFJvbGVQcm9wcyB8IEFkbWluUm9sZVByb3BzIHwgQmlsbGluZ1JvbGVQcm9wcyB8IEN1c3RTdXBwb3J0Um9sZVByb3BzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvbGljeU5hbWU6IHJvbGVDb25maWc/LnBvbGljeU5hbWUgPz8gdGhpcy5fZ2V0RGVmYXVsdFBvbGljeU5hbWUocm9sZU5hbWUpLFxuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiByb2xlQ29uZmlnPy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUgPz8gdGhpcy5fZ2V0T2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lKHJvbGVOYW1lKSxcbiAgICAgIGlhbVJvbGVOYW1lOiByb2xlQ29uZmlnPy5wb2xpY3lOYW1lID8/IHRoaXMuX2dldFJvbGVOYW1lKHJvbGVOYW1lKSxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwb2xpY3kgbmFtZSBhY2NvcmRpbmcgdG8gdGhlIElBTSByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gcm9sZU5hbWUgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSUFNIHJvbGUuXG4gICAqL1xuICBwcml2YXRlIF9nZXREZWZhdWx0UG9saWN5TmFtZShyb2xlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHJvbGVOYW1lKSB7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkdFTkVSQUw6IHJldHVybiAnZ2VuZXJhbC1yb2xlLXMzb2xhcC1wb2xpY3knO1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5BRE1JTjogcmV0dXJuICdhZG1pbi1yb2xlLXMzb2xhcC1wb2xpY3knO1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5CSUxMSU5HOiByZXR1cm4gJ2JpbGxpbmctcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQ1VTVF9TVVBQT1JUOiByZXR1cm4gJ2N1c3RvbWVyc3VwcG9ydC1yb2xlLXMzb2xhcC1wb2xpY3knO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS5sb2coJ0NoZWNrIHRoZSBuYW1lIG9mIHRoZSBJQU0gcm9sZSwgdGhlcmUgbWlnaHQgYmUgYSBwcm9ibGVtYXRjaSBzcGVsbGluZy4nKTtcbiAgICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIG5hbWUgZm9yIHRoZSBhY2Nlc3MgcG9pbnQgb2YgdGhlIFMzIE9iamVjdCBMYW1iZGEgYWNjb3JkaW5nIHRvIHRoZSBJQU0gcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIHJvbGVOYW1lIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIElBTSByb2xlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0T2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lKHJvbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAocm9sZU5hbWUpIHtcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuR0VORVJBTDogcmV0dXJuICdhY2Nlc3NjdGwtczNvbGFwLXN1cnZleS1yZXN1bHRzLXVua25vd24tcGlpJztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQURNSU46IHJldHVybiAnYWRtaW4tczNvbGFwLWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQklMTElORzogcmV0dXJuICdiaWxsaW5nLXMzb2xhcC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkNVU1RfU1VQUE9SVDogcmV0dXJuICdjdXN0c3VwcG9ydC1zM29sYXAtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS5sb2coJ0NoZWNrIHRoZSBuYW1lIG9mIHRoZSBJQU0gcm9sZSwgdGhlcmUgbWlnaHQgYmUgYSBwcm9ibGVtYXRjaSBzcGVsbGluZy4nKTtcbiAgICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIG5hbWUgZm9yIHRoZSBJQU0gcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIHJvbGVOYW1lIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIElBTSByb2xlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0Um9sZU5hbWUocm9sZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChyb2xlTmFtZSkge1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5HRU5FUkFMOiByZXR1cm4gJ0dlbmVyYWxSb2xlJztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQURNSU46IHJldHVybiAnUmVkYWN0aW9uQWRtaW5Sb2xlJztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQklMTElORzogcmV0dXJuICdSZWRhY3Rpb25CaWxsaW5nUm9sZSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkNVU1RfU1VQUE9SVDogcmV0dXJuICdSZWRhY3Rpb25DdXN0U3VwcG9ydFJvbGUnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS5sb2coJ0NoZWNrIHRoZSBuYW1lIG9mIHRoZSBJQU0gcm9sZSwgdGhlcmUgbWlnaHQgYmUgYSBwcm9ibGVtYXRjaSBzcGVsbGluZy4nKTtcbiAgICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgIH1cbiAgfVxufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhQXJuQ2FwdG9yUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBJQU0gcm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwYXJ0aWFsIGZpeGVkIG5hbWUgb2YgdGhlIGdlbWVyYWwgTGFtYmRhIGZ1bmN0aW9uIGNyZWF0ZWQgZnJvbSB0aGUgc2VydmVybGVzcyBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpYWxMYW1iZGFOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFBcm5DYXB0b3JDdXN0b21SZXNvdXJjZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnZW5lcmFsIExhbWJkYSBmdW5jdGlvbiBjcmVhdGVkIGZyb20gdGhlIHNlcnZlcmxlc3MgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy84NzYwXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbGFtYmRhQXJuOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBMYW1iZGFBcm5DYXB0b3JSZXNvdXJjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBjdXN0b21SZXNvdXJjZVJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ0NSUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdsYW1iZGEuYW1hem9uYXdzLmNvbScpLFxuICAgICAgZGVzY3JpcHRpb246ICdBbiBleGVjdXRpb24gcm9sZSB0byBmaW5kIG91dCB0aGUgQVJOIG9mIHRoZSBhY2Nlc3MgY29udHJvbCBMYW1iZGEuJyxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnLFxuICAgICAgICApLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0FXU1hSYXlEYWVtb25Xcml0ZUFjY2VzcycpLFxuICAgICAgXSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIENvbXByZWhlbmRTM09iamVjdExhbWJkYUN1c3RvbVJlc291cmNlUG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBhc3NpZ25TaWRzOiB0cnVlLFxuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnTGlzdExhbWJkYVBlcm1pc3Npb25zJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpMaXN0RnVuY3Rpb25zJ10sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnR2V0TGFtYmRhRnVuY3Rpb25zUGVybWlzc2lvbnMnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFsnbGFtYmRhOkdldEZ1bmN0aW9uJywgJ2xhbWJkYTpJbnZva2VGdW5jdGlvbiddLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OmxhbWJkYToke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06ZnVuY3Rpb246KmBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IG9uRXZlbnQgPSBuZXcgbGFtYmRhLk5vZGVqc0Z1bmN0aW9uKHRoaXMsICdBcm5FeHBlcnQnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYEEgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgZ2V0cyB0aGUgQVJOIG9mIFxcYCR7cHJvcHMucGFydGlhbExhbWJkYU5hbWV9XFxgYCxcbiAgICAgIGVudHJ5OiBmcy5leGlzdHNTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsICdyZXNvdXJjZXMvbGFtYmRhLWFybi1oZWxwZXIudHMnKSkgPyBwYXRoLmpvaW4oX19kaXJuYW1lLCAncmVzb3VyY2VzL2xhbWJkYS1hcm4taGVscGVyLnRzJykgOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAncmVzb3VyY2VzL2xhbWJkYS1hcm4taGVscGVyLmpzJyksXG4gICAgICBoYW5kbGVyOiAnbGFtYmRhSGFuZGxlcicsXG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICBtaW5pZnk6IGZhbHNlLFxuICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgIGV4dGVybmFsTW9kdWxlczogWydhd3Mtc2RrJ10sXG4gICAgICB9LFxuICAgICAgcm9sZTogY3VzdG9tUmVzb3VyY2VSb2xlLFxuICAgIH0pO1xuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IGNyLlByb3ZpZGVyKHRoaXMsICdQcm92aWRlcicsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBvbkV2ZW50LFxuICAgICAgbG9nUmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgcm9sZTogY3VzdG9tUmVzb3VyY2VSb2xlLndpdGhvdXRQb2xpY3lVcGRhdGVzKCksXG4gICAgfSk7XG4gICAgY29uc3QgbGFtYmRhQXJuU2VhcmNoVW5pdCA9IG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UodGhpcywgYCR7cHJvcHMucm9sZU5hbWV9R2VuZXJhbFNlYXJjaFVuaXRgLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgTGFtYmRhRml4ZWROYW1lOiBwcm9wcy5wYXJ0aWFsTGFtYmRhTmFtZSxcbiAgICAgICAgR2VucmU6IHByb3BzLnJvbGVOYW1lLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmxhbWJkYUFybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhsYW1iZGFBcm5TZWFyY2hVbml0LmdldEF0dCgnTGFtYmRhQXJuJykpO1xuICB9XG59Il19
|
@@ -47,7 +47,7 @@ class AccessConrtolLambda extends constructs_1.Construct {
|
|
47
47
|
}
|
48
48
|
exports.AccessConrtolLambda = AccessConrtolLambda;
|
49
49
|
_a = JSII_RTTI_SYMBOL_1;
|
50
|
-
AccessConrtolLambda[_a] = { fqn: "cdk-comprehend-s3olap.AccessConrtolLambda", version: "2.0.
|
50
|
+
AccessConrtolLambda[_a] = { fqn: "cdk-comprehend-s3olap.AccessConrtolLambda", version: "2.0.480" };
|
51
51
|
class RedactionLambda extends constructs_1.Construct {
|
52
52
|
constructor(scope, id, props) {
|
53
53
|
super(scope, id);
|
@@ -97,5 +97,5 @@ class RedactionLambda extends constructs_1.Construct {
|
|
97
97
|
}
|
98
98
|
exports.RedactionLambda = RedactionLambda;
|
99
99
|
_b = JSII_RTTI_SYMBOL_1;
|
100
|
-
RedactionLambda[_b] = { fqn: "cdk-comprehend-s3olap.RedactionLambda", version: "2.0.
|
100
|
+
RedactionLambda[_b] = { fqn: "cdk-comprehend-s3olap.RedactionLambda", version: "2.0.480" };
|
101
101
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHJlaGVuZC1sYW1iZGFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXByZWhlbmQtbGFtYmRhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUEyQztBQUMzQyx3Q0FBd0M7QUFDeEMsMkNBQXVDO0FBbUZ2QyxNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBV2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBK0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUN6RCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLENBQUM7UUFDL0QsTUFBTSw4QkFBOEIsR0FBRyxLQUFLLENBQUMsOEJBQThCLElBQUksSUFBSSxDQUFDO1FBQ3BGLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQztRQUM5RCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJLFFBQVEsQ0FBQztRQUMxRCxNQUFNLGtDQUFrQyxHQUFHLEtBQUssQ0FBQyxrQ0FBa0MsSUFBSSxPQUFPLENBQUM7UUFDL0YsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUMsd0JBQXdCLElBQUksT0FBTyxDQUFDO1FBQzNFLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDO1FBQzFDLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksS0FBSyxDQUFDO1FBQ3JELE1BQU0sd0JBQXdCLEdBQUcsS0FBSyxDQUFDLHdCQUF3QixJQUFJLE1BQU0sQ0FBQztRQUMxRSxNQUFNLDJCQUEyQixHQUFHLEtBQUssQ0FBQywyQkFB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aWIvYXdzLXNhbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NDb25ydG9sTGFtYmRhUHJvcHMge1xuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHNlcnZlcmxlc3MgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxLjAuMidcbiAgICovXG4gIHJlYWRvbmx5IHNlbWFudGljVmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHByZWRpY3Rpb24gY29uZmlkZW5jZSBzY29yZSBhYm92ZSB3aGljaCBQSUkgY2xhc3NpZmljYXRpb24gYW5kIGRldGVjdGlvbiB3b3VsZCBiZSBjb25zaWRlcmVkIGFzIGZpbmFsIGFuc3dlci4gVmFsaWQgcmFuZ2UgKDAuNSB0byAxLjApLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnMC41J1xuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlkZW5jZVRocmVzaG9sZD86IHN0cmluZztcbiAgLyoqXG4gICAqIE51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBmb3IgY2FsbGluZyBDb21wcmVoZW5kJ3MgQ29udGFpbnNQaWlFbnRpdGllcyBBUEkuIFRoaXMgY29udHJvbHMgdGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgY2FsbHMgdGhhdCB3aWxsIGJlIG1hZGUgZnJvbSB0aGlzIExhbWJkYS5cbiAgICpcbiAgICogQGRlZmF1bHQgJzIwJ1xuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmYXVsdCBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZSBwcm9jZXNzZWQuIFRoaXMgY29kZSB3aWxsIGJlIHVzZWQgZm9yIGludGVyYWN0aW5nIHdpdGggQ29tcHJlaGVuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2VuJ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdExhbmd1YWdlQ29kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmF1bHQgbWF4aW11bSBkb2N1bWVudCBzaXplIChpbiBieXRlcykgdGhhdCB0aGlzIGZ1bmN0aW9uIGNhbiBwcm9jZXNzIG90aGVyd2lzZSB3aWxsIHRocm93IGV4Y2VwdGlvbiBmb3IgdG9vIGxhcmdlIGRvY3VtZW50IHNpemUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxMDI0MDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGRvY3VtZW50IHNpemUgKGluIGJ5dGVzKSB0byBiZSB1c2VkIGZvciBtYWtpbmcgY2FsbHMgdG8gQ29tcHJlaGVuZCdzIENvbnRhaW5zUGlpRW50aXRpZXMgQVBJLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnNTAwMDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciB0byBzdXBwb3J0IHBhcnRpYWwgb2JqZWN0cyBvciBub3QuIEFjY2Vzc2luZyBwYXJ0aWFsIG9iamVjdCB0aHJvdWdoIGh0dHAgaGVhZGVycyBzdWNoIGJ5dGUtcmFuZ2UgY2FuIGNvcnJ1cHQgdGhlIG9iamVjdCBhbmQvb3IgYWZmZWN0IFBJSSBkZXRlY3Rpb24gYWNjdXJhY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdmYWxzZSdcbiAgICovXG4gIHJlYWRvbmx5IGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZD86IHN0cmluZztcbiAgLyoqXG4gICAqIExvZyBsZXZlbCBmb3IgTGFtYmRhIGZ1bmN0aW9uIGxvZ2dpbmcsIGUuZy4sIEVSUk9SLCBJTkZPLCBERUJVRywgZXRjLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnSU5GTydcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0xldmVsPzogc3RyaW5nO1xuICAvKipcbiAgICogTWF4aW11bSBjaGFyYWN0ZXJzIHRvIG92ZXJsYXAgYW1vbmcgc2VnbWVudHMgb2YgYSBkb2N1bWVudCBpbiBjYXNlIGNodW5raW5nIGlzIG5lZWRlZCBiZWNhdXNlIG9mIG1heGltdW0gZG9jdW1lbnQgc2l6ZSBsaW1pdC5cbiAgICpcbiAgICogQGRlZmF1bHQgJzIwMCdcbiAgICovXG4gIHJlYWRvbmx5IG1heENoYXJzT3ZlcmxhcD86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY29tbWEgc2VwYXJhdGVkIFBJSSBlbnRpdHkgdHlwZXMgdG8gYmUgY29uc2lkZXJlZCBmb3IgYWNjZXNzIGNvbnRyb2wuIFJlZmVyIENvbXByZWhlbmQncyBkb2N1bWVudGF0aW9uIHBhZ2UgZm9yIGxpc3Qgb2Ygc3VwcG9ydGVkIFBJSSBlbnRpdHkgdHlwZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdBTEwnXG4gICAqL1xuICByZWFkb25seSBwaWlFbnRpdHlUeXBlcz86IHN0cmluZztcbiAgLyoqXG4gICAqIFRydWUgaWYgcHVibGlzaCBtZXRyaWNzIHRvIENsb3Vkd2F0Y2gsIGZhbHNlIG90aGVyd2lzZS4gU2VlIFJFQURNRS5tZCBmb3IgZGV0YWlscyBvbiBDbG91ZFdhdGNoIG1ldHJpY3MuXG4gICAqXG4gICAqIEBkZWZhdWx0ICd0cnVlJ1xuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzPzogc3RyaW5nO1xuICAvKipcbiAgICogTnVtYmVyIG9mIHRva2Vucy93b3JkcyB0byBvdmVybGFwIGFtb25nIHNlZ21lbnRzIG9mIGEgZG9jdW1lbnQgaW4gY2FzZSBjaHVua2luZyBpcyBuZWVkZWQgYmVjYXVzZSBvZiBtYXhpbXVtIGRvY3VtZW50IHNpemUgbGltaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcyMCdcbiAgICovXG4gIHJlYWRvbmx5IHN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2Vucz86IHN0cmluZztcbiAgLyoqXG4gICAqIEhhbmRsaW5nIGxvZ2ljIGZvciBVbnN1cHBvcnRlZCBmaWxlcy4gVmFsaWQgdmFsdWVzIGFyZSBQQVNTIGFuZCBGQUlMLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnRkFJTCdcbiAgICovXG4gIHJlYWRvbmx5IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29ucnRvbExhbWJkYSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdW5kZXJseWluZyByZXNvdXJlIGluIHRoZSBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW50aXR5IG9mIHRoZSBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzYW1BcHBsaWNhdGlvbjogc2FtLkNmbkFwcGxpY2F0aW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQWNjZXNzQ29ucnRvbExhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBzZW1hbnRpY1ZlcnNpb24gPSBwcm9wcy5zZW1hbnRpY1ZlcnNpb24gPz8gJzEuMC4yJztcbiAgICBjb25zdCBjb25maWRlbmNlVGhyZXNob2xkID0gcHJvcHMuY29uZmlkZW5jZVRocmVzaG9sZCA/PyAnMC41JztcbiAgICBjb25zdCBjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPSBwcm9wcy5jb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzIwJztcbiAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gcHJvcHMuZGVmYXVsdExhbmd1YWdlQ29kZSA/PyAnZW4nO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZSA9IHByb3BzLmRvY3VtZW50TWF4U2l6ZSA/PyAnMTAyNDAwJztcbiAgICBjb25zdCBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzID0gcHJvcHMuZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyA/PyAnNTAwMDAnO1xuICAgIGNvbnN0IGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA9IHByb3BzLmlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA/PyAnZmFsc2UnO1xuICAgIGNvbnN0IGxvZ0xldmVsID0gcHJvcHMubG9nTGV2ZWwgPz8gJ0lORk8nO1xuICAgIGNvbnN0IG1heENoYXJzT3ZlcmxhcCA9IHByb3BzLm1heENoYXJzT3ZlcmxhcCA/PyAnMjAwJztcbiAgICBjb25zdCBwaWlFbnRpdHlUeXBlcyA9IHByb3BzLnBpaUVudGl0eVR5cGVzID8/ICdBTEwnO1xuICAgIGNvbnN0IHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyA9IHByb3BzLnB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyA/PyAndHJ1ZSc7XG4gICAgY29uc3Qgc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID0gcHJvcHMuc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID8/ICcyMCc7XG4gICAgY29uc3QgdW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmcgPSBwcm9wcy51bnN1cHBvcnRlZEZpbGVIYW5kbGluZyA/PyAnRkFJTCc7XG4gICAgdGhpcy5zYW1BcHBsaWNhdGlvbiA9IG5ldyBzYW0uQ2ZuQXBwbGljYXRpb24odGhpcywgJ0NvbXByZWhlbmRQaWlBY2Nlc3NDb250cm9sUzNPYmplY3RMYW1iZGEnLCB7XG4gICAgICBsb2NhdGlvbjoge1xuICAgICAgICBhcHBsaWNhdGlvbklkOiAnYXJuOmF3czpzZXJ2ZXJsZXNzcmVwbzp1cy1lYXN0LTE6ODM5NzgyODU1MjIzOmFwcGxpY2F0aW9ucy9Db21wcmVoZW5kUGlpQWNjZXNzQ29udHJvbFMzT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgc2VtYW50aWNWZXJzaW9uOiBzZW1hbnRpY1ZlcnNpb24sXG4gICAgICB9LFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBbJ0NvbmZpZGVuY2VUaHJlc2hvbGQnXTogY29uZmlkZW5jZVRocmVzaG9sZCxcbiAgICAgICAgWydDb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQnXTogY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50LFxuICAgICAgICBbJ0RlZmF1bHRMYW5ndWFnZUNvZGUnXTogZGVmYXVsdExhbmd1YWdlQ29kZSxcbiAgICAgICAgWydEb2N1bWVudE1heFNpemUnXTogZG9jdW1lbnRNYXhTaXplLFxuICAgICAgICBbJ0RvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMnXTogZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyxcbiAgICAgICAgWydJc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQnXTogaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkLFxuICAgICAgICBbJ0xvZ0xldmVsJ106IGxvZ0xldmVsLFxuICAgICAgICBbJ01heENoYXJzT3ZlcmxhcCddOiBtYXhDaGFyc092ZXJsYXAsXG4gICAgICAgIFsnUGlpRW50aXR5VHlwZXMnXTogcGlpRW50aXR5VHlwZXMsXG4gICAgICAgIFsnUHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzJ106IHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyxcbiAgICAgICAgWydTdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMnXTogc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zLFxuICAgICAgICBbJ1Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nJ106IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnN0YWNrTmFtZSA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLnNhbUFwcGxpY2F0aW9uLnJlZik7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWRhY3Rpb25MYW1iZGFQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgc2VydmVybGVzcyBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJzEuMC4yJ1xuICAgKi9cbiAgcmVhZG9ubHkgc2VtYW50aWNWZXJzaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogTG9nIGxldmVsIGZvciBMYW1iZGEgZnVuY3Rpb24gbG9nZ2luZywgZS5nLiwgRVJST1IsIElORk8sIERFQlVHLCBldGMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdJTkZPJ1xuICAgKi9cbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBIYW5kbGluZyBsb2dpYyBmb3IgVW5zdXBwb3J0ZWQgZmlsZXMuIFZhbGlkIHZhbHVlcyBhcmUgUEFTUyBhbmQgRkFJTC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ0ZBSUwnXG4gICAqL1xuICByZWFkb25seSB1bnN1cHBvcnRlZEZpbGVIYW5kbGluZz86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc3VwcG9ydCBwYXJ0aWFsIG9iamVjdHMgb3Igbm90LiBBY2Nlc3NpbmcgcGFydGlhbCBvYmplY3QgdGhyb3VnaCBodHRwIGhlYWRlcnMgc3VjaCBieXRlLXJhbmdlIGNhbiBjb3JydXB0IHRoZSBvYmplY3QgYW5kL29yIGFmZmVjdCBQSUkgZGV0ZWN0aW9uIGFjY3VyYWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnZmFsc2UnXG4gICAqL1xuICByZWFkb25seSBpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGRvY3VtZW50IHNpemUgKGluIGJ5dGVzKSB0byBiZSB1c2VkIGZvciBtYWtpbmcgY2FsbHMgdG8gQ29tcHJlaGVuZCdzIENvbnRhaW5zUGlpRW50aXRpZXMgQVBJLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnNTAwMDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzPzogc3RyaW5nO1xuICAvKipcbiAgICogTWF4aW11bSBkb2N1bWVudCBzaXplIChpbiBieXRlcykgdG8gYmUgdXNlZCBmb3IgbWFraW5nIGNhbGxzIHRvIENvbXByZWhlbmQncyBEZXRlY3RQaWlFbnRpdGllcyBBUEkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICc1MDAwJ1xuICAgKi9cbiAgcmVhZG9ubHkgZG9jdW1lbnRNYXhTaXplRGV0ZWN0UGlpRW50aXRpZXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbW1hIHNlcGFyYXRlZCBQSUkgZW50aXR5IHR5cGVzIHRvIGJlIGNvbnNpZGVyZWQgZm9yIHJlZGFjdGlvbi4gUmVmZXIgQ29tcHJlaGVuZCdzIGRvY3VtZW50YXRpb24gcGFnZSBmb3IgbGlzdCBvZiBzdXBwb3J0ZWQgUElJIGVudGl0eSB0eXBlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgJ0FMTCdcbiAgICovXG4gIHJlYWRvbmx5IHBpaUVudGl0eVR5cGVzPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBjaGFyYWN0ZXIgdGhhdCByZXBsYWNlcyBlYWNoIGNoYXJhY3RlciBpbiB0aGUgcmVkYWN0ZWQgUElJIGVudGl0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgJyonXG4gICAqL1xuICByZWFkb25seSBtYXNrQ2hhcmFjdGVyPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIFBJSSBlbnRpdHkgaXMgcmVkYWN0ZWQgd2l0aCB0aGUgbWFzayBjaGFyYWN0ZXIgb3IgdGhlIGVudGl0eSB0eXBlLiBWYWxpZCB2YWx1ZXMgLSBSRVBMQUNFX1dJVEhfUElJX0VOVElUWV9UWVBFIGFuZCBNQVNLLlxuICAgKlxuICAgKiBAZmVmYXVsdCAnTUFTSydcbiAgICovXG4gIHJlYWRvbmx5IG1hc2tNb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogTnVtYmVyIG9mIHRva2Vucy93b3JkcyB0byBvdmVybGFwIGFtb25nIHNlZ21lbnRzIG9mIGEgZG9jdW1lbnQgaW4gY2FzZSBjaHVua2luZyBpcyBuZWVkZWQgYmVjYXVzZSBvZiBtYXhpbXVtIGRvY3VtZW50IHNpemUgbGltaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcyMCdcbiAgICovXG4gIHJlYWRvbmx5IHN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2Vucz86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmF1bHQgbWF4aW11bSBkb2N1bWVudCBzaXplIChpbiBieXRlcykgdGhhdCB0aGlzIGZ1bmN0aW9uIGNhbiBwcm9jZXNzIG90aGVyd2lzZSB3aWxsIHRocm93IGV4Y2VwdGlvbiBmb3IgdG9vIGxhcmdlIGRvY3VtZW50IHNpemUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxMDI0MDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBwcmVkaWN0aW9uIGNvbmZpZGVuY2Ugc2NvcmUgYWJvdmUgd2hpY2ggUElJIGNsYXNzaWZpY2F0aW9uIGFuZCBkZXRlY3Rpb24gd291bGQgYmUgY29uc2lkZXJlZCBhcyBmaW5hbCBhbnN3ZXIuIFZhbGlkIHJhbmdlICgwLjUgdG8gMS4wKS5cbiAgICpcbiAgICogQGRlZmF1bHQgJzAuNSdcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZGVuY2VUaHJlc2hvbGQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGNoYXJhY3RlcnMgdG8gb3ZlcmxhcCBhbW9uZyBzZWdtZW50cyBvZiBhIGRvY3VtZW50IGluIGNhc2UgY2h1bmtpbmcgaXMgbmVlZGVkIGJlY2F1c2Ugb2YgbWF4aW11bSBkb2N1bWVudCBzaXplIGxpbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnMjAwJ1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q2hhcnNPdmVybGFwPzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmYXVsdCBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZSBwcm9jZXNzZWQuIFRoaXMgY29kZSB3aWxsIGJlIHVzZWQgZm9yIGludGVyYWN0aW5nIHdpdGggQ29tcHJlaGVuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2VuJ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdExhbmd1YWdlQ29kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIE51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBmb3IgY2FsbGluZyBDb21wcmVoZW5kJ3MgRGV0ZWN0UGlpRW50aXRpZXMgQVBJLiBUaGlzIGNvbnRyb2xzIHRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGNhbGxzIHRoYXQgd2lsbCBiZSBtYWRlIGZyb20gdGhpcyBMYW1iZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0ICc4J1xuICAgKi9cbiAgcmVhZG9ubHkgZGV0ZWN0UGlpRW50aXRpZXNUaHJlYWRDb3VudD86IHN0cmluZztcbiAgLyoqXG4gICAqIE51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBmb3IgY2FsbGluZyBDb21wcmVoZW5kJ3MgQ29udGFpbnNQaWlFbnRpdGllcyBBUEkuIFRoaXMgY29udHJvbHMgdGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgY2FsbHMgdGhhdCB3aWxsIGJlIG1hZGUgZnJvbSB0aGlzIExhbWJkYS5cbiAgICpcbiAgICogQGRlZmF1bHQgJzIwJ1xuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogVHJ1ZSBpZiBwdWJsaXNoIG1ldHJpY3MgdG8gQ2xvdWR3YXRjaCwgZmFsc2Ugb3RoZXJ3aXNlLiBTZWUgUkVBRE1FLm1kIGZvciBkZXRhaWxzIG9uIENsb3VkV2F0Y2ggbWV0cmljcy5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3RydWUnXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWRhY3Rpb25MYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHVuZGVybHlpbmcgcmVzb3VyZSBpbiB0aGUgc2VydmVybGVzcyBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGVudGl0eSBvZiB0aGUgc2VydmVybGVzcyBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc2FtQXBwbGljYXRpb246IHNhbS5DZm5BcHBsaWNhdGlvbjtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBSZWRhY3Rpb25MYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3Qgc2VtYW50aWNWZXJzaW9uID0gcHJvcHM/LnNlbWFudGljVmVyc2lvbiA/PyAnMS4wLjInO1xuICAgIGNvbnN0IGxvZ0xldmVsID0gcHJvcHM/LmxvZ0xldmVsID8/ICdJTkZPJztcbiAgICBjb25zdCB1bnN1cHBvcnRlZEZpbGVIYW5kbGluZyA9IHByb3BzPy51bnN1cHBvcnRlZEZpbGVIYW5kbGluZyA/PyAnRkFJTCc7XG4gICAgY29uc3QgaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkID0gcHJvcHM/LmlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA/PyAnZmFsc2UnO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMgPSBwcm9wcz8uZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyA/PyAnNTAwMDAnO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzID0gcHJvcHM/LmRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzID8/ICc1MDAwJztcbiAgICBjb25zdCBwaWlFbnRpdHlUeXBlcyA9IHByb3BzPy5waWlFbnRpdHlUeXBlcyA/PyAnQUxMJztcbiAgICBjb25zdCBtYXNrQ2hhcmFjdGVyID0gcHJvcHM/Lm1hc2tDaGFyYWN0ZXIgPz8gJyonO1xuICAgIGNvbnN0IG1hc2tNb2RlID0gcHJvcHM/Lm1hc2tNb2RlID8/ICdNQVNLJztcbiAgICBjb25zdCBzdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMgPSBwcm9wcz8uc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID8/ICcyMCc7XG4gICAgY29uc3QgZG9jdW1lbnRNYXhTaXplID0gcHJvcHM/LmRvY3VtZW50TWF4U2l6ZSA/PyAnMTAyNDAwJztcbiAgICBjb25zdCBjb25maWRlbmNlVGhyZXNob2xkID0gcHJvcHM/LmNvbmZpZGVuY2VUaHJlc2hvbGQgPz8gJzAuNSc7XG4gICAgY29uc3QgbWF4Q2hhcnNPdmVybGFwID0gcHJvcHM/Lm1heENoYXJzT3ZlcmxhcCA/PyAnMjAwJztcbiAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gcHJvcHM/LmRlZmF1bHRMYW5ndWFnZUNvZGUgPz8gJ2VuJztcbiAgICBjb25zdCBkZXRlY3RQaWlFbnRpdGllc1RocmVhZENvdW50ID0gcHJvcHM/LmRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzgnO1xuICAgIGNvbnN0IGNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCA9IHByb3BzPy5jb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzIwJztcbiAgICBjb25zdCBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPSBwcm9wcz8ucHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzID8/ICd0cnVlJztcblxuICAgIHRoaXMuc2FtQXBwbGljYXRpb24gPSBuZXcgc2FtLkNmbkFwcGxpY2F0aW9uKHRoaXMsICdDb21wcmVoZW5kUGlpQWNjZXNzQ29udHJvbFMzT2JqZWN0TGFtYmRhJywge1xuICAgICAgbG9jYXRpb246IHtcbiAgICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjgzOTc4Mjg1NTIyMzphcHBsaWNhdGlvbnMvQ29tcHJlaGVuZFBpaVJlZGFjdGlvblMzT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgc2VtYW50aWNWZXJzaW9uOiBzZW1hbnRpY1ZlcnNpb24sXG4gICAgICB9LFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBbJ0xvZ0xldmVsJ106IGxvZ0xldmVsLFxuICAgICAgICBbJ1Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nJ106IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nLFxuICAgICAgICBbJ0lzUGFydGlhbE9iamVjdFN1cHBvcnRlZCddOiBpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQsXG4gICAgICAgIFsnRG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyddOiBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzLFxuICAgICAgICBbJ0RvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzJ106IGRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzLFxuICAgICAgICBbJ1BpaUVudGl0eVR5cGVzJ106IHBpaUVudGl0eVR5cGVzLFxuICAgICAgICBbJ01hc2tDaGFyYWN0ZXInXTogbWFza0NoYXJhY3RlcixcbiAgICAgICAgWydNYXNrTW9kZSddOiBtYXNrTW9kZSxcbiAgICAgICAgWydTdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMnXTogc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zLFxuICAgICAgICBbJ0RvY3VtZW50TWF4U2l6ZSddOiBkb2N1bWVudE1heFNpemUsXG4gICAgICAgIFsnQ29uZmlkZW5jZVRocmVzaG9sZCddOiBjb25maWRlbmNlVGhyZXNob2xkLFxuICAgICAgICBbJ01heENoYXJzT3ZlcmxhcCddOiBtYXhDaGFyc092ZXJsYXAsXG4gICAgICAgIFsnRGVmYXVsdExhbmd1YWdlQ29kZSddOiBkZWZhdWx0TGFuZ3VhZ2VDb2RlLFxuICAgICAgICBbJ0RldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQnXTogZGV0ZWN0UGlpRW50aXRpZXNUaHJlYWRDb3VudCxcbiAgICAgICAgWydDb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQnXTogY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50LFxuICAgICAgICBbJ1B1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyddOiBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuc3RhY2tOYW1lID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuc2FtQXBwbGljYXRpb24ucmVmKTtcbiAgfVxufSJdfQ==
|