@aws-solutions-constructs/core 2.101.0 → 2.103.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +273 -25
- package/lib/s3-bucket-helper.js +1 -11
- package/lib/validation.js +2 -1
- package/package.json +4 -4
- package/test/s3-bucket-helper.test.js +1 -13
package/.jsii
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"npmlog": "^7.0.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@aws-cdk/cloud-assembly-schema": "^
|
|
17
|
-
"aws-cdk-lib": "^2.
|
|
16
|
+
"@aws-cdk/cloud-assembly-schema": "^54.0.0",
|
|
17
|
+
"aws-cdk-lib": "^2.260.0",
|
|
18
18
|
"constructs": "^10.0.0"
|
|
19
19
|
},
|
|
20
20
|
"dependencyClosure": {
|
|
@@ -531,6 +531,19 @@
|
|
|
531
531
|
}
|
|
532
532
|
}
|
|
533
533
|
},
|
|
534
|
+
"aws-cdk-lib.aws_awsexternalanthropic": {
|
|
535
|
+
"targets": {
|
|
536
|
+
"dotnet": {
|
|
537
|
+
"namespace": "Amazon.CDK.AWS.AWSExternalAnthropic"
|
|
538
|
+
},
|
|
539
|
+
"java": {
|
|
540
|
+
"package": "software.amazon.awscdk.services.awsexternalanthropic"
|
|
541
|
+
},
|
|
542
|
+
"python": {
|
|
543
|
+
"module": "aws_cdk.aws_awsexternalanthropic"
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
},
|
|
534
547
|
"aws-cdk-lib.aws_b2bi": {
|
|
535
548
|
"targets": {
|
|
536
549
|
"dotnet": {
|
|
@@ -596,6 +609,19 @@
|
|
|
596
609
|
}
|
|
597
610
|
}
|
|
598
611
|
},
|
|
612
|
+
"aws-cdk-lib.aws_bcmpricingcalculator": {
|
|
613
|
+
"targets": {
|
|
614
|
+
"dotnet": {
|
|
615
|
+
"namespace": "Amazon.CDK.AWS.BcmPricingCalculator"
|
|
616
|
+
},
|
|
617
|
+
"java": {
|
|
618
|
+
"package": "software.amazon.awscdk.services.bcmpricingcalculator"
|
|
619
|
+
},
|
|
620
|
+
"python": {
|
|
621
|
+
"module": "aws_cdk.aws_bcmpricingcalculator"
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
},
|
|
599
625
|
"aws-cdk-lib.aws_bedrock": {
|
|
600
626
|
"targets": {
|
|
601
627
|
"dotnet": {
|
|
@@ -648,6 +674,19 @@
|
|
|
648
674
|
}
|
|
649
675
|
}
|
|
650
676
|
},
|
|
677
|
+
"aws-cdk-lib.aws_braket": {
|
|
678
|
+
"targets": {
|
|
679
|
+
"dotnet": {
|
|
680
|
+
"namespace": "Amazon.CDK.AWS.Braket"
|
|
681
|
+
},
|
|
682
|
+
"java": {
|
|
683
|
+
"package": "software.amazon.awscdk.services.braket"
|
|
684
|
+
},
|
|
685
|
+
"python": {
|
|
686
|
+
"module": "aws_cdk.aws_braket"
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
},
|
|
651
690
|
"aws-cdk-lib.aws_budgets": {
|
|
652
691
|
"targets": {
|
|
653
692
|
"dotnet": {
|
|
@@ -726,6 +765,19 @@
|
|
|
726
765
|
}
|
|
727
766
|
}
|
|
728
767
|
},
|
|
768
|
+
"aws-cdk-lib.aws_chime": {
|
|
769
|
+
"targets": {
|
|
770
|
+
"dotnet": {
|
|
771
|
+
"namespace": "Amazon.CDK.AWS.Chime"
|
|
772
|
+
},
|
|
773
|
+
"java": {
|
|
774
|
+
"package": "software.amazon.awscdk.services.chime"
|
|
775
|
+
},
|
|
776
|
+
"python": {
|
|
777
|
+
"module": "aws_cdk.aws_chime"
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
},
|
|
729
781
|
"aws-cdk-lib.aws_cleanrooms": {
|
|
730
782
|
"targets": {
|
|
731
783
|
"dotnet": {
|
|
@@ -2826,6 +2878,19 @@
|
|
|
2826
2878
|
}
|
|
2827
2879
|
}
|
|
2828
2880
|
},
|
|
2881
|
+
"aws-cdk-lib.aws_novaact": {
|
|
2882
|
+
"targets": {
|
|
2883
|
+
"dotnet": {
|
|
2884
|
+
"namespace": "Amazon.CDK.AWS.NovaAct"
|
|
2885
|
+
},
|
|
2886
|
+
"java": {
|
|
2887
|
+
"package": "software.amazon.awscdk.services.novaact"
|
|
2888
|
+
},
|
|
2889
|
+
"python": {
|
|
2890
|
+
"module": "aws_cdk.aws_novaact"
|
|
2891
|
+
}
|
|
2892
|
+
}
|
|
2893
|
+
},
|
|
2829
2894
|
"aws-cdk-lib.aws_oam": {
|
|
2830
2895
|
"targets": {
|
|
2831
2896
|
"dotnet": {
|
|
@@ -3229,6 +3294,19 @@
|
|
|
3229
3294
|
}
|
|
3230
3295
|
}
|
|
3231
3296
|
},
|
|
3297
|
+
"aws-cdk-lib.aws_resiliencehubv2": {
|
|
3298
|
+
"targets": {
|
|
3299
|
+
"dotnet": {
|
|
3300
|
+
"namespace": "Amazon.CDK.AWS.ResilienceHubV2"
|
|
3301
|
+
},
|
|
3302
|
+
"java": {
|
|
3303
|
+
"package": "software.amazon.awscdk.services.resiliencehubv2"
|
|
3304
|
+
},
|
|
3305
|
+
"python": {
|
|
3306
|
+
"module": "aws_cdk.aws_resiliencehubv2"
|
|
3307
|
+
}
|
|
3308
|
+
}
|
|
3309
|
+
},
|
|
3232
3310
|
"aws-cdk-lib.aws_resourceexplorer2": {
|
|
3233
3311
|
"targets": {
|
|
3234
3312
|
"dotnet": {
|
|
@@ -3492,6 +3570,19 @@
|
|
|
3492
3570
|
}
|
|
3493
3571
|
}
|
|
3494
3572
|
},
|
|
3573
|
+
"aws-cdk-lib.aws_s3files": {
|
|
3574
|
+
"targets": {
|
|
3575
|
+
"dotnet": {
|
|
3576
|
+
"namespace": "Amazon.CDK.AWS.S3Files"
|
|
3577
|
+
},
|
|
3578
|
+
"java": {
|
|
3579
|
+
"package": "software.amazon.awscdk.services.s3files"
|
|
3580
|
+
},
|
|
3581
|
+
"python": {
|
|
3582
|
+
"module": "aws_cdk.aws_s3files"
|
|
3583
|
+
}
|
|
3584
|
+
}
|
|
3585
|
+
},
|
|
3495
3586
|
"aws-cdk-lib.aws_s3objectlambda": {
|
|
3496
3587
|
"targets": {
|
|
3497
3588
|
"dotnet": {
|
|
@@ -3622,6 +3713,19 @@
|
|
|
3622
3713
|
}
|
|
3623
3714
|
}
|
|
3624
3715
|
},
|
|
3716
|
+
"aws-cdk-lib.aws_securityagent": {
|
|
3717
|
+
"targets": {
|
|
3718
|
+
"dotnet": {
|
|
3719
|
+
"namespace": "Amazon.CDK.AWS.SecurityAgent"
|
|
3720
|
+
},
|
|
3721
|
+
"java": {
|
|
3722
|
+
"package": "software.amazon.awscdk.services.securityagent"
|
|
3723
|
+
},
|
|
3724
|
+
"python": {
|
|
3725
|
+
"module": "aws_cdk.aws_securityagent"
|
|
3726
|
+
}
|
|
3727
|
+
}
|
|
3728
|
+
},
|
|
3625
3729
|
"aws-cdk-lib.aws_securityhub": {
|
|
3626
3730
|
"targets": {
|
|
3627
3731
|
"dotnet": {
|
|
@@ -4630,6 +4734,22 @@
|
|
|
4630
4734
|
}
|
|
4631
4735
|
}
|
|
4632
4736
|
},
|
|
4737
|
+
"aws-cdk-lib.interfaces.aws_awsexternalanthropic": {
|
|
4738
|
+
"targets": {
|
|
4739
|
+
"dotnet": {
|
|
4740
|
+
"namespace": "Amazon.CDK.Interfaces.AWSExternalAnthropic"
|
|
4741
|
+
},
|
|
4742
|
+
"go": {
|
|
4743
|
+
"packageName": "interfacesawsawsexternalanthropic"
|
|
4744
|
+
},
|
|
4745
|
+
"java": {
|
|
4746
|
+
"package": "software.amazon.awscdk.interfaces.awsexternalanthropic"
|
|
4747
|
+
},
|
|
4748
|
+
"python": {
|
|
4749
|
+
"module": "aws_cdk.interfaces.aws_awsexternalanthropic"
|
|
4750
|
+
}
|
|
4751
|
+
}
|
|
4752
|
+
},
|
|
4633
4753
|
"aws-cdk-lib.interfaces.aws_b2bi": {
|
|
4634
4754
|
"targets": {
|
|
4635
4755
|
"dotnet": {
|
|
@@ -4694,6 +4814,22 @@
|
|
|
4694
4814
|
}
|
|
4695
4815
|
}
|
|
4696
4816
|
},
|
|
4817
|
+
"aws-cdk-lib.interfaces.aws_bcm": {
|
|
4818
|
+
"targets": {
|
|
4819
|
+
"dotnet": {
|
|
4820
|
+
"namespace": "Amazon.CDK.Interfaces.BCM"
|
|
4821
|
+
},
|
|
4822
|
+
"go": {
|
|
4823
|
+
"packageName": "interfacesawsbcm"
|
|
4824
|
+
},
|
|
4825
|
+
"java": {
|
|
4826
|
+
"package": "software.amazon.awscdk.interfaces.bcm"
|
|
4827
|
+
},
|
|
4828
|
+
"python": {
|
|
4829
|
+
"module": "aws_cdk.interfaces.aws_bcm"
|
|
4830
|
+
}
|
|
4831
|
+
}
|
|
4832
|
+
},
|
|
4697
4833
|
"aws-cdk-lib.interfaces.aws_bcmdataexports": {
|
|
4698
4834
|
"targets": {
|
|
4699
4835
|
"dotnet": {
|
|
@@ -4710,6 +4846,22 @@
|
|
|
4710
4846
|
}
|
|
4711
4847
|
}
|
|
4712
4848
|
},
|
|
4849
|
+
"aws-cdk-lib.interfaces.aws_bcmpricingcalculator": {
|
|
4850
|
+
"targets": {
|
|
4851
|
+
"dotnet": {
|
|
4852
|
+
"namespace": "Amazon.CDK.Interfaces.BcmPricingCalculator"
|
|
4853
|
+
},
|
|
4854
|
+
"go": {
|
|
4855
|
+
"packageName": "interfacesawsbcmpricingcalculator"
|
|
4856
|
+
},
|
|
4857
|
+
"java": {
|
|
4858
|
+
"package": "software.amazon.awscdk.interfaces.bcmpricingcalculator"
|
|
4859
|
+
},
|
|
4860
|
+
"python": {
|
|
4861
|
+
"module": "aws_cdk.interfaces.aws_bcmpricingcalculator"
|
|
4862
|
+
}
|
|
4863
|
+
}
|
|
4864
|
+
},
|
|
4713
4865
|
"aws-cdk-lib.interfaces.aws_bedrock": {
|
|
4714
4866
|
"targets": {
|
|
4715
4867
|
"dotnet": {
|
|
@@ -4790,6 +4942,22 @@
|
|
|
4790
4942
|
}
|
|
4791
4943
|
}
|
|
4792
4944
|
},
|
|
4945
|
+
"aws-cdk-lib.interfaces.aws_braket": {
|
|
4946
|
+
"targets": {
|
|
4947
|
+
"dotnet": {
|
|
4948
|
+
"namespace": "Amazon.CDK.Interfaces.Braket"
|
|
4949
|
+
},
|
|
4950
|
+
"go": {
|
|
4951
|
+
"packageName": "interfacesawsbraket"
|
|
4952
|
+
},
|
|
4953
|
+
"java": {
|
|
4954
|
+
"package": "software.amazon.awscdk.interfaces.braket"
|
|
4955
|
+
},
|
|
4956
|
+
"python": {
|
|
4957
|
+
"module": "aws_cdk.interfaces.aws_braket"
|
|
4958
|
+
}
|
|
4959
|
+
}
|
|
4960
|
+
},
|
|
4793
4961
|
"aws-cdk-lib.interfaces.aws_budgets": {
|
|
4794
4962
|
"targets": {
|
|
4795
4963
|
"dotnet": {
|
|
@@ -4886,6 +5054,22 @@
|
|
|
4886
5054
|
}
|
|
4887
5055
|
}
|
|
4888
5056
|
},
|
|
5057
|
+
"aws-cdk-lib.interfaces.aws_chime": {
|
|
5058
|
+
"targets": {
|
|
5059
|
+
"dotnet": {
|
|
5060
|
+
"namespace": "Amazon.CDK.Interfaces.Chime"
|
|
5061
|
+
},
|
|
5062
|
+
"go": {
|
|
5063
|
+
"packageName": "interfacesawschime"
|
|
5064
|
+
},
|
|
5065
|
+
"java": {
|
|
5066
|
+
"package": "software.amazon.awscdk.interfaces.chime"
|
|
5067
|
+
},
|
|
5068
|
+
"python": {
|
|
5069
|
+
"module": "aws_cdk.interfaces.aws_chime"
|
|
5070
|
+
}
|
|
5071
|
+
}
|
|
5072
|
+
},
|
|
4889
5073
|
"aws-cdk-lib.interfaces.aws_cleanrooms": {
|
|
4890
5074
|
"targets": {
|
|
4891
5075
|
"dotnet": {
|
|
@@ -7190,6 +7374,22 @@
|
|
|
7190
7374
|
}
|
|
7191
7375
|
}
|
|
7192
7376
|
},
|
|
7377
|
+
"aws-cdk-lib.interfaces.aws_novaact": {
|
|
7378
|
+
"targets": {
|
|
7379
|
+
"dotnet": {
|
|
7380
|
+
"namespace": "Amazon.CDK.Interfaces.NovaAct"
|
|
7381
|
+
},
|
|
7382
|
+
"go": {
|
|
7383
|
+
"packageName": "interfacesawsnovaact"
|
|
7384
|
+
},
|
|
7385
|
+
"java": {
|
|
7386
|
+
"package": "software.amazon.awscdk.interfaces.novaact"
|
|
7387
|
+
},
|
|
7388
|
+
"python": {
|
|
7389
|
+
"module": "aws_cdk.interfaces.aws_novaact"
|
|
7390
|
+
}
|
|
7391
|
+
}
|
|
7392
|
+
},
|
|
7193
7393
|
"aws-cdk-lib.interfaces.aws_oam": {
|
|
7194
7394
|
"targets": {
|
|
7195
7395
|
"dotnet": {
|
|
@@ -7686,6 +7886,22 @@
|
|
|
7686
7886
|
}
|
|
7687
7887
|
}
|
|
7688
7888
|
},
|
|
7889
|
+
"aws-cdk-lib.interfaces.aws_resiliencehubv2": {
|
|
7890
|
+
"targets": {
|
|
7891
|
+
"dotnet": {
|
|
7892
|
+
"namespace": "Amazon.CDK.Interfaces.ResilienceHubV2"
|
|
7893
|
+
},
|
|
7894
|
+
"go": {
|
|
7895
|
+
"packageName": "interfacesawsresiliencehubv2"
|
|
7896
|
+
},
|
|
7897
|
+
"java": {
|
|
7898
|
+
"package": "software.amazon.awscdk.interfaces.resiliencehubv2"
|
|
7899
|
+
},
|
|
7900
|
+
"python": {
|
|
7901
|
+
"module": "aws_cdk.interfaces.aws_resiliencehubv2"
|
|
7902
|
+
}
|
|
7903
|
+
}
|
|
7904
|
+
},
|
|
7689
7905
|
"aws-cdk-lib.interfaces.aws_resourceexplorer2": {
|
|
7690
7906
|
"targets": {
|
|
7691
7907
|
"dotnet": {
|
|
@@ -7910,6 +8126,22 @@
|
|
|
7910
8126
|
}
|
|
7911
8127
|
}
|
|
7912
8128
|
},
|
|
8129
|
+
"aws-cdk-lib.interfaces.aws_s3files": {
|
|
8130
|
+
"targets": {
|
|
8131
|
+
"dotnet": {
|
|
8132
|
+
"namespace": "Amazon.CDK.Interfaces.S3Files"
|
|
8133
|
+
},
|
|
8134
|
+
"go": {
|
|
8135
|
+
"packageName": "interfacesawss3files"
|
|
8136
|
+
},
|
|
8137
|
+
"java": {
|
|
8138
|
+
"package": "software.amazon.awscdk.interfaces.s3files"
|
|
8139
|
+
},
|
|
8140
|
+
"python": {
|
|
8141
|
+
"module": "aws_cdk.interfaces.aws_s3files"
|
|
8142
|
+
}
|
|
8143
|
+
}
|
|
8144
|
+
},
|
|
7913
8145
|
"aws-cdk-lib.interfaces.aws_s3objectlambda": {
|
|
7914
8146
|
"targets": {
|
|
7915
8147
|
"dotnet": {
|
|
@@ -8054,6 +8286,22 @@
|
|
|
8054
8286
|
}
|
|
8055
8287
|
}
|
|
8056
8288
|
},
|
|
8289
|
+
"aws-cdk-lib.interfaces.aws_securityagent": {
|
|
8290
|
+
"targets": {
|
|
8291
|
+
"dotnet": {
|
|
8292
|
+
"namespace": "Amazon.CDK.Interfaces.SecurityAgent"
|
|
8293
|
+
},
|
|
8294
|
+
"go": {
|
|
8295
|
+
"packageName": "interfacesawssecurityagent"
|
|
8296
|
+
},
|
|
8297
|
+
"java": {
|
|
8298
|
+
"package": "software.amazon.awscdk.interfaces.securityagent"
|
|
8299
|
+
},
|
|
8300
|
+
"python": {
|
|
8301
|
+
"module": "aws_cdk.interfaces.aws_securityagent"
|
|
8302
|
+
}
|
|
8303
|
+
}
|
|
8304
|
+
},
|
|
8057
8305
|
"aws-cdk-lib.interfaces.aws_securityhub": {
|
|
8058
8306
|
"targets": {
|
|
8059
8307
|
"dotnet": {
|
|
@@ -10634,7 +10882,7 @@
|
|
|
10634
10882
|
"kind": "interface",
|
|
10635
10883
|
"locationInModule": {
|
|
10636
10884
|
"filename": "lib/s3-bucket-helper.ts",
|
|
10637
|
-
"line":
|
|
10885
|
+
"line": 29
|
|
10638
10886
|
},
|
|
10639
10887
|
"name": "BuildS3BucketProps",
|
|
10640
10888
|
"properties": [
|
|
@@ -10647,7 +10895,7 @@
|
|
|
10647
10895
|
"immutable": true,
|
|
10648
10896
|
"locationInModule": {
|
|
10649
10897
|
"filename": "lib/s3-bucket-helper.ts",
|
|
10650
|
-
"line":
|
|
10898
|
+
"line": 35
|
|
10651
10899
|
},
|
|
10652
10900
|
"name": "bucketProps",
|
|
10653
10901
|
"optional": true,
|
|
@@ -10664,7 +10912,7 @@
|
|
|
10664
10912
|
"immutable": true,
|
|
10665
10913
|
"locationInModule": {
|
|
10666
10914
|
"filename": "lib/s3-bucket-helper.ts",
|
|
10667
|
-
"line":
|
|
10915
|
+
"line": 41
|
|
10668
10916
|
},
|
|
10669
10917
|
"name": "loggingBucketProps",
|
|
10670
10918
|
"optional": true,
|
|
@@ -10682,7 +10930,7 @@
|
|
|
10682
10930
|
"immutable": true,
|
|
10683
10931
|
"locationInModule": {
|
|
10684
10932
|
"filename": "lib/s3-bucket-helper.ts",
|
|
10685
|
-
"line":
|
|
10933
|
+
"line": 48
|
|
10686
10934
|
},
|
|
10687
10935
|
"name": "logS3AccessLogs",
|
|
10688
10936
|
"optional": true,
|
|
@@ -10700,7 +10948,7 @@
|
|
|
10700
10948
|
"kind": "interface",
|
|
10701
10949
|
"locationInModule": {
|
|
10702
10950
|
"filename": "lib/s3-bucket-helper.ts",
|
|
10703
|
-
"line":
|
|
10951
|
+
"line": 187
|
|
10704
10952
|
},
|
|
10705
10953
|
"name": "BuildS3BucketResponse",
|
|
10706
10954
|
"properties": [
|
|
@@ -10709,7 +10957,7 @@
|
|
|
10709
10957
|
"immutable": true,
|
|
10710
10958
|
"locationInModule": {
|
|
10711
10959
|
"filename": "lib/s3-bucket-helper.ts",
|
|
10712
|
-
"line":
|
|
10960
|
+
"line": 188
|
|
10713
10961
|
},
|
|
10714
10962
|
"name": "bucket",
|
|
10715
10963
|
"type": {
|
|
@@ -10721,7 +10969,7 @@
|
|
|
10721
10969
|
"immutable": true,
|
|
10722
10970
|
"locationInModule": {
|
|
10723
10971
|
"filename": "lib/s3-bucket-helper.ts",
|
|
10724
|
-
"line":
|
|
10972
|
+
"line": 189
|
|
10725
10973
|
},
|
|
10726
10974
|
"name": "loggingBucket",
|
|
10727
10975
|
"optional": true,
|
|
@@ -12148,7 +12396,7 @@
|
|
|
12148
12396
|
"kind": "interface",
|
|
12149
12397
|
"locationInModule": {
|
|
12150
12398
|
"filename": "lib/s3-bucket-helper.ts",
|
|
12151
|
-
"line":
|
|
12399
|
+
"line": 87
|
|
12152
12400
|
},
|
|
12153
12401
|
"name": "CreateCloudFrontLoggingBucketRequest",
|
|
12154
12402
|
"properties": [
|
|
@@ -12157,7 +12405,7 @@
|
|
|
12157
12405
|
"immutable": true,
|
|
12158
12406
|
"locationInModule": {
|
|
12159
12407
|
"filename": "lib/s3-bucket-helper.ts",
|
|
12160
|
-
"line":
|
|
12408
|
+
"line": 88
|
|
12161
12409
|
},
|
|
12162
12410
|
"name": "loggingBucketProps",
|
|
12163
12411
|
"type": {
|
|
@@ -12169,7 +12417,7 @@
|
|
|
12169
12417
|
"immutable": true,
|
|
12170
12418
|
"locationInModule": {
|
|
12171
12419
|
"filename": "lib/s3-bucket-helper.ts",
|
|
12172
|
-
"line":
|
|
12420
|
+
"line": 90
|
|
12173
12421
|
},
|
|
12174
12422
|
"name": "enableS3AccessLogs",
|
|
12175
12423
|
"optional": true,
|
|
@@ -12182,7 +12430,7 @@
|
|
|
12182
12430
|
"immutable": true,
|
|
12183
12431
|
"locationInModule": {
|
|
12184
12432
|
"filename": "lib/s3-bucket-helper.ts",
|
|
12185
|
-
"line":
|
|
12433
|
+
"line": 89
|
|
12186
12434
|
},
|
|
12187
12435
|
"name": "s3AccessLogBucketProps",
|
|
12188
12436
|
"optional": true,
|
|
@@ -12200,7 +12448,7 @@
|
|
|
12200
12448
|
"kind": "interface",
|
|
12201
12449
|
"locationInModule": {
|
|
12202
12450
|
"filename": "lib/s3-bucket-helper.ts",
|
|
12203
|
-
"line":
|
|
12451
|
+
"line": 93
|
|
12204
12452
|
},
|
|
12205
12453
|
"name": "CreateCloudFrontLoggingBucketResponse",
|
|
12206
12454
|
"properties": [
|
|
@@ -12209,7 +12457,7 @@
|
|
|
12209
12457
|
"immutable": true,
|
|
12210
12458
|
"locationInModule": {
|
|
12211
12459
|
"filename": "lib/s3-bucket-helper.ts",
|
|
12212
|
-
"line":
|
|
12460
|
+
"line": 94
|
|
12213
12461
|
},
|
|
12214
12462
|
"name": "logBucket",
|
|
12215
12463
|
"type": {
|
|
@@ -12221,7 +12469,7 @@
|
|
|
12221
12469
|
"immutable": true,
|
|
12222
12470
|
"locationInModule": {
|
|
12223
12471
|
"filename": "lib/s3-bucket-helper.ts",
|
|
12224
|
-
"line":
|
|
12472
|
+
"line": 95
|
|
12225
12473
|
},
|
|
12226
12474
|
"name": "s3AccessLogBucket",
|
|
12227
12475
|
"optional": true,
|
|
@@ -14145,7 +14393,7 @@
|
|
|
14145
14393
|
"kind": "interface",
|
|
14146
14394
|
"locationInModule": {
|
|
14147
14395
|
"filename": "lib/s3-bucket-helper.ts",
|
|
14148
|
-
"line":
|
|
14396
|
+
"line": 284
|
|
14149
14397
|
},
|
|
14150
14398
|
"name": "S3Props",
|
|
14151
14399
|
"properties": [
|
|
@@ -14154,7 +14402,7 @@
|
|
|
14154
14402
|
"immutable": true,
|
|
14155
14403
|
"locationInModule": {
|
|
14156
14404
|
"filename": "lib/s3-bucket-helper.ts",
|
|
14157
|
-
"line":
|
|
14405
|
+
"line": 287
|
|
14158
14406
|
},
|
|
14159
14407
|
"name": "bucketProps",
|
|
14160
14408
|
"optional": true,
|
|
@@ -14167,7 +14415,7 @@
|
|
|
14167
14415
|
"immutable": true,
|
|
14168
14416
|
"locationInModule": {
|
|
14169
14417
|
"filename": "lib/s3-bucket-helper.ts",
|
|
14170
|
-
"line":
|
|
14418
|
+
"line": 286
|
|
14171
14419
|
},
|
|
14172
14420
|
"name": "existingBucketInterface",
|
|
14173
14421
|
"optional": true,
|
|
@@ -14180,7 +14428,7 @@
|
|
|
14180
14428
|
"immutable": true,
|
|
14181
14429
|
"locationInModule": {
|
|
14182
14430
|
"filename": "lib/s3-bucket-helper.ts",
|
|
14183
|
-
"line":
|
|
14431
|
+
"line": 285
|
|
14184
14432
|
},
|
|
14185
14433
|
"name": "existingBucketObj",
|
|
14186
14434
|
"optional": true,
|
|
@@ -14193,7 +14441,7 @@
|
|
|
14193
14441
|
"immutable": true,
|
|
14194
14442
|
"locationInModule": {
|
|
14195
14443
|
"filename": "lib/s3-bucket-helper.ts",
|
|
14196
|
-
"line":
|
|
14444
|
+
"line": 288
|
|
14197
14445
|
},
|
|
14198
14446
|
"name": "existingLoggingBucketObj",
|
|
14199
14447
|
"optional": true,
|
|
@@ -14206,7 +14454,7 @@
|
|
|
14206
14454
|
"immutable": true,
|
|
14207
14455
|
"locationInModule": {
|
|
14208
14456
|
"filename": "lib/s3-bucket-helper.ts",
|
|
14209
|
-
"line":
|
|
14457
|
+
"line": 289
|
|
14210
14458
|
},
|
|
14211
14459
|
"name": "loggingBucketProps",
|
|
14212
14460
|
"optional": true,
|
|
@@ -14219,7 +14467,7 @@
|
|
|
14219
14467
|
"immutable": true,
|
|
14220
14468
|
"locationInModule": {
|
|
14221
14469
|
"filename": "lib/s3-bucket-helper.ts",
|
|
14222
|
-
"line":
|
|
14470
|
+
"line": 290
|
|
14223
14471
|
},
|
|
14224
14472
|
"name": "logS3AccessLogs",
|
|
14225
14473
|
"optional": true,
|
|
@@ -15649,6 +15897,6 @@
|
|
|
15649
15897
|
"symbolId": "lib/waf-helper:WafWebAclProps"
|
|
15650
15898
|
}
|
|
15651
15899
|
},
|
|
15652
|
-
"version": "2.
|
|
15653
|
-
"fingerprint": "
|
|
15900
|
+
"version": "2.103.0",
|
|
15901
|
+
"fingerprint": "4tZboEB/OLT+bGQXnfZtWMw5aioYA3OZvZl79XvxNJs="
|
|
15654
15902
|
}
|
package/lib/s3-bucket-helper.js
CHANGED
|
@@ -187,8 +187,6 @@ function buildS3Bucket(scope, props, bucketId) {
|
|
|
187
187
|
*/
|
|
188
188
|
function addCfnNagS3BucketNotificationRulesToSuppress(stackRoot, logicalId) {
|
|
189
189
|
const notificationsResourceHandler = stackRoot.node.tryFindChild(logicalId);
|
|
190
|
-
const notificationsResourceHandlerRoleRole = notificationsResourceHandler.node.findChild('Role');
|
|
191
|
-
const notificationsResourceHandlerRolePolicy = notificationsResourceHandlerRoleRole.node.findChild('DefaultPolicy');
|
|
192
190
|
// Extract the CfnFunction from the Function
|
|
193
191
|
const fnResource = notificationsResourceHandler.node.findChild('Resource');
|
|
194
192
|
(0, utils_1.addCfnSuppressRules)(fnResource, [
|
|
@@ -205,14 +203,6 @@ function addCfnNagS3BucketNotificationRulesToSuppress(stackRoot, logicalId) {
|
|
|
205
203
|
reason: `Impossible for us to define the correct concurrency for clients`
|
|
206
204
|
}
|
|
207
205
|
]);
|
|
208
|
-
// Extract the CfnPolicy from the iam.Policy
|
|
209
|
-
const policyResource = notificationsResourceHandlerRolePolicy.node.findChild('Resource');
|
|
210
|
-
(0, utils_1.addCfnSuppressRules)(policyResource, [
|
|
211
|
-
{
|
|
212
|
-
id: 'W12',
|
|
213
|
-
reason: `Bucket resource is '*' due to circular dependency with bucket and role creation at the same time`
|
|
214
|
-
}
|
|
215
|
-
]);
|
|
216
206
|
}
|
|
217
207
|
function CheckS3Props(propsObject) {
|
|
218
208
|
let errorMessages = '';
|
|
@@ -243,4 +233,4 @@ function CheckS3Props(propsObject) {
|
|
|
243
233
|
throw new Error(errorMessages);
|
|
244
234
|
}
|
|
245
235
|
}
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInMzLWJ1Y2tldC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQTJDSCxrRUErQkM7QUFnQkQsc0VBNkNDO0FBS0Qsd0RBa0NDO0FBV0Qsc0NBNkRDO0FBS0Qsb0dBOEJDO0FBV0Qsb0NBa0NDO0FBN1RELHlDQUF5QztBQUV6Qyw2REFBc0Q7QUFDdEQsbUNBQXNIO0FBQ3RILCtDQUFrRDtBQUNsRCw2Q0FBdUM7QUEwQnZDOztHQUVHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsS0FBZ0IsRUFDMUQsUUFBZ0IsRUFDaEIsa0JBQWtDO0lBRWxDLGlGQUFpRjtJQUNqRixvQ0FBb0M7SUFDcEMsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLHdCQUFnQixFQUFDLElBQUEsbUNBQWMsR0FBRSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFbkYsNEJBQTRCO0lBQzVCLDhCQUE4QjtJQUM5Qiw4RUFBOEU7SUFDOUUscUVBQXFFO0lBQ3JFLDZCQUE2QjtJQUM3QiwrRUFBK0U7SUFDL0UsdURBQXVEO0lBQ3ZELDZCQUE2QjtJQUM3QixnRkFBZ0Y7SUFDaEYsdURBQXVEO0lBQ3ZELHdDQUF3QztJQUN4QywrRUFBK0U7SUFDL0UsdURBQXVEO0lBQ3ZELE1BQU0sYUFBYSxHQUFjLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxVQUFVO0lBRWhHLElBQUEsMkJBQW1CLEVBQUMsYUFBYSxFQUFFO1FBQ2pDO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsd0VBQXdFO1NBQ2pGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQWFEOztHQUVHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsS0FBZ0IsRUFDNUQsUUFBZ0IsRUFDaEIs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QVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFJLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7UUFDekgsYUFBYSxJQUFJLDZHQUE2RyxDQUFDO1FBQy9ILFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3JHLGFBQWEsSUFBSSwwR0FBMEcsQ0FBQztRQUM1SCxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxLQUFLLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3RSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlDLElBQUEsb0JBQVksRUFBQyxtRkFBbUYsQ0FBQyxDQUFDO1lBQ2xHLElBQUEsb0JBQVksRUFBQyx1RUFBdUUsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRGVmYXVsdFMzUHJvcHMgfSBmcm9tICcuL3MzLWJ1Y2tldC1kZWZhdWx0cyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzLCBhZGRDZm5TdXBwcmVzc1J1bGVzLCBjb25zb2xpZGF0ZVByb3BzLCBDaGVja0Jvb2xlYW5XaXRoRGVmYXVsdCwgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBTdG9yYWdlQ2xhc3MgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFMzQnVja2V0UHJvcHMge1xuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIFMzIEJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBidWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzO1xuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIFMzIExvZ2dpbmcgQnVja2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzO1xuICAvKipcbiAgICogV2hldGhlciB0byB0dXJuIG9uIEFjY2VzcyBMb2dzIGZvciBTMy4gVXNlcyBhbiBTMyBidWNrZXQgd2l0aCBhc3NvY2lhdGVkIHN0b3JhZ2UgY29zdHMuXG4gICAqIEVuYWJsaW5nIEFjY2VzcyBMb2dnaW5nIGlzIGEgYmVzdCBwcmFjdGljZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb2dTM0FjY2Vzc0xvZ3M/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTM0FjY2Vzc0xvZ2dpbmdCdWNrZXQoc2NvcGU6IENvbnN0cnVjdCxcbiAgYnVja2V0SWQ6IHN0cmluZyxcbiAgbG9nZ2luZ0J1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcyk6IHMzLkJ1Y2tldCB7XG5cbiAgLy8gSW50cm9kdWNlIHRoZSBkZWZhdWx0IHByb3BzIHNpbmNlIHdlIGNhbid0IGJlIGNlcnRhaW4gdGhlIGNhbGxlciB1c2VkIHRoZW0gYW5kXG4gIC8vIHRoZXkgYXJlIGltcG9ydGFudCBiZXN0IHByYWN0aWNlc1xuICBjb25zdCBjb21iaW5lZEJ1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0UzNQcm9wcygpLCBsb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIC8vIENyZWF0ZSB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgLy8gTk9TT05BUiAgKHR5cGVzY3JpcHQ6UzYyODEpXG4gIC8vIEJsb2NrIFB1YmxpYyBBY2Nlc3MgaXMgc2V0IGJ5IERlZmF1bHRTM1Byb3BzLCBidXQgU29uYXJxdWJlIGNhbid0IGRldGVjdCBpdFxuICAvLyBJdCBpcyB2ZXJpZmllZCBieSAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcycgaW4gdGhlIHVuaXQgdGVzdHNcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI0NSlcbiAgLy8gRW5jcnlwdGlvbiBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDkpXG4gIC8vIGVuZm9yY2VTU0wgIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDp0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyB2ZXJzaW9uaW5nIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgY29uc3QgbG9nZ2luZ0J1Y2tldDogczMuQnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzY29wZSwgYnVja2V0SWQsIGNvbWJpbmVkQnVja2V0UHJvcHMpOyAvLyBOT1NPTkFSXG5cbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhsb2dnaW5nQnVja2V0LCBbXG4gICAge1xuICAgICAgaWQ6ICdXMzUnLFxuICAgICAgcmVhc29uOiBcIlRoaXMgUzMgYnVja2V0IGlzIHVzZWQgYXMgdGhlIGFjY2VzcyBsb2dnaW5nIGJ1Y2tldCBmb3IgYW5vdGhlciBidWNrZXRcIlxuICAgIH1cbiAgXSk7XG5cbiAgcmV0dXJuIGxvZ2dpbmdCdWNrZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXRSZXF1ZXN0IHtcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgczNBY2Nlc3NMb2dCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZWFkb25seSBlbmFibGVTM0FjY2Vzc0xvZ3M/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXRSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGxvZ0J1Y2tldDogczMuQnVja2V0LFxuICByZWFkb25seSBzM0FjY2Vzc0xvZ0J1Y2tldD86IHMzLkJ1Y2tldFxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDbG91ZEZyb250TG9nZ2luZ0J1Y2tldChzY29wZTogQ29uc3RydWN0LFxuICBidWNrZXRJZDogc3RyaW5nLFxuICBwcm9wczogQ3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXRSZXF1ZXN0KTogQ3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXRSZXNwb25zZSB7XG5cbiAgbGV0IGNsb3VkRnJvbnRMb2dBY2Nlc3NMb2dCdWNrZXQ6IHMzLkJ1Y2tldCB8IHVuZGVmaW5lZDtcblxuICAvLyBJbnRyb2R1Y2UgdGhlIGRlZmF1bHQgcHJvcHMgc2luY2Ugd2UgY2FuJ3QgYmUgY2VydGFpbiB0aGUgY2FsbGVyIHVzZWQgdGhlbSBhbmRcbiAgLy8gdGhleSBhcmUgaW1wb3J0YW50IGJlc3QgcHJhY3RpY2VzXG4gIGxldCBjb21iaW5lZEJ1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0UzNQcm9wcygpLCBwcm9wcy5sb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIGlmICghcHJvcHMubG9nZ2luZ0J1Y2tldFByb3BzLnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQpIHtcbiAgICAvLyBDcmVhdGUgYnVja2V0IGFuZCBhZGQgdG8gcHJvcHNcbiAgICBjb25zdCBjb21iaW5lZFMzTG9nQnVja2V0UHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRTM1Byb3BzKCksIHByb3BzLnMzQWNjZXNzTG9nQnVja2V0UHJvcHMpO1xuXG4gICAgaWYgKENoZWNrQm9vbGVhbldpdGhEZWZhdWx0KHByb3BzLmVuYWJsZVMzQWNjZXNzTG9ncywgdHJ1ZSkpIHtcbiAgICAgIGNsb3VkRnJvbnRMb2dBY2Nlc3NMb2dCdWNrZXQgPSBuZXcgczMuQnVja2V0KHNjb3BlLCBgJHtidWNrZXRJZH1BY2Nlc3NMb2dgLCBjb21iaW5lZFMzTG9nQnVja2V0UHJvcHMpOyAvLyBOT1NPTkFSXG4gICAgICBjb21iaW5lZEJ1Y2tldFByb3BzID0gb3ZlcnJpZGVQcm9wcyhjb21iaW5lZEJ1Y2tldFByb3BzLCB7IHNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQ6IGNsb3VkRnJvbnRMb2dBY2Nlc3NMb2dCdWNrZXQgfSk7XG4gICAgICBhZGRDZm5TdXBwcmVzc1J1bGVzKGNsb3VkRnJvbnRMb2dBY2Nlc3NMb2dCdWNrZXQsIFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnVzM1JyxcbiAgICAgICAgICByZWFzb246IFwiVGhpcyBTMyBidWNrZXQgaXMgdXNlZCBhcyB0aGUgYWNjZXNzIGxvZ2dpbmcgYnVja2V0IGZvciBhbm90aGVyIGJ1Y2tldFwiXG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIENyZWF0ZSB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgLy8gTk9TT05BUiAgKHR5cGVzY3JpcHQ6UzYyODEpXG4gIC8vIEJsb2NrIFB1YmxpYyBBY2Nlc3MgaXMgc2V0IGJ5IERlZmF1bHRTM1Byb3BzLCBidXQgU29uYXJxdWJlIGNhbid0IGRldGVjdCBpdFxuICAvLyBJdCBpcyB2ZXJpZmllZCBieSAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcycgaW4gdGhlIHVuaXQgdGVzdHNcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI0NSlcbiAgLy8gRW5jcnlwdGlvbiBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDkpXG4gIC8vIGVuZm9yY2VTU0wgIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDp0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyB2ZXJzaW9uaW5nIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgY29uc3QgY2xvdWRmcm9udExvZ0J1Y2tldDogczMuQnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzY29wZSwgYnVja2V0SWQsIGNvbWJpbmVkQnVja2V0UHJvcHMpOyAvLyBOT1NPTkFSXG5cbiAgcmV0dXJuIHtcbiAgICBsb2dCdWNrZXQ6IGNsb3VkZnJvbnRMb2dCdWNrZXQsXG4gICAgczNBY2Nlc3NMb2dCdWNrZXQ6IGNsb3VkRnJvbnRMb2dBY2Nlc3NMb2dCdWNrZXRcbiAgfTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWxiTG9nZ2luZ0J1Y2tldChzY29wZTogQ29uc3RydWN0LFxuICBidWNrZXRJZDogc3RyaW5nLFxuICBsb2dnaW5nQnVja2V0UHJvcHM6IHMzLkJ1Y2tldFByb3BzKTogczMuQnVja2V0IHtcblxuICAvLyBJbnRyb2R1Y2UgdGhlIGRlZmF1bHQgcHJvcHMgc2luY2Ugd2UgY2FuJ3QgYmUgY2VydGFpbiB0aGUgY2FsbGVyIHVzZWQgdGhlbSBhbmRcbiAgLy8gdGhleSBhcmUgaW1wb3J0YW50IGJlc3QgcHJhY3RpY2VzXG4gIGNvbnN0IGNvbWJpbmVkQnVja2V0UHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRTM1Byb3BzKCksIGxvZ2dpbmdCdWNrZXRQcm9wcyk7XG5cbiAgLy8gQ3JlYXRlIHRoZSBMb2dnaW5nIEJ1Y2tldFxuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjgxKVxuICAvLyBCbG9jayBQdWJsaWMgQWNjZXNzIGlzIHNldCBieSBEZWZhdWx0UzNQcm9wcywgYnV0IFNvbmFycXViZSBjYW4ndCBkZXRlY3QgaXRcbiAgLy8gSXQgaXMgdmVyaWZpZWQgYnkgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnIGluIHRoZSB1bml0IHRlc3RzXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDUpXG4gIC8vIEVuY3J5cHRpb24gaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyBlbmZvcmNlU1NMICBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6dHlwZXNjcmlwdDpTNjI0OSlcbiAgLy8gdmVyc2lvbmluZyBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIGJ1Y2tldElkLCBjb21iaW5lZEJ1Y2tldFByb3BzKTsgLy8gTk9TT05BUlxuXG4gIC8vIEV4dHJhY3QgdGhlIENmbkJ1Y2tldCBmcm9tIHRoZSBsb2dnaW5nQnVja2V0XG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXRSZXNvdXJjZSA9IGxvZ2dpbmdCdWNrZXQubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgczMuQ2ZuQnVja2V0O1xuXG4gIGFkZENmblN1cHByZXNzUnVsZXMobG9nZ2luZ0J1Y2tldFJlc291cmNlLCBbXG4gICAge1xuICAgICAgaWQ6ICdXMzUnLFxuICAgICAgcmVhc29uOiBcIlRoaXMgaXMgYSBsb2cgYnVja2V0IGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyXCJcbiAgICB9XG4gIF0pO1xuXG4gIHJldHVybiBsb2dnaW5nQnVja2V0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUzNCdWNrZXRSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGJ1Y2tldDogczMuQnVja2V0LFxuICByZWFkb25seSBsb2dnaW5nQnVja2V0PzogczMuQnVja2V0XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqIEBpbnRlcm5hbCBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgZXhwb3NlZCBleHRlcm5hbGx5IHRocm91Z2ggYXdzLWNvbnN0cnVjdHMtZmFjdG9yaWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFMzQnVja2V0KHNjb3BlOiBDb25zdHJ1Y3QsXG4gIHByb3BzOiBCdWlsZFMzQnVja2V0UHJvcHMsXG4gIGJ1Y2tldElkPzogc3RyaW5nKTogQnVpbGRTM0J1Y2tldFJlc3BvbnNlIHtcblxuICAvKiogRGVmYXVsdCBMaWZlIEN5Y2xlIHBvbGljeSB0byB0cmFuc2l0aW9uIG9sZGVyIHZlcnNpb25zIHRvIEdsYWNpZXIgYWZ0ZXIgOTAgZGF5cyAqL1xuICBjb25zdCBsaWZlY3ljbGVSdWxlczogczMuTGlmZWN5Y2xlUnVsZVtdID0gW3tcbiAgICBub25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25zOiBbe1xuICAgICAgc3RvcmFnZUNsYXNzOiBTdG9yYWdlQ2xhc3MuR0xBQ0lFUixcbiAgICAgIHRyYW5zaXRpb25BZnRlcjogRHVyYXRpb24uZGF5cyg5MClcbiAgICB9XVxuICB9XTtcblxuICAvLyBDcmVhdGUgdGhlIEFwcGxpY2F0aW9uIEJ1Y2tldFxuICBsZXQgZGVmYXVsdEJ1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcztcbiAgbGV0IGxvZ2dpbmdCdWNrZXQ7XG4gIGNvbnN0IHJlc29sdmVkQnVja2V0SWQgPSBidWNrZXRJZCA/IGJ1Y2tldElkICsgJ1MzQnVja2V0JyA6ICdTM0J1Y2tldCc7XG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXRJZCA9IGJ1Y2tldElkID8gYnVja2V0SWQgKyAnUzNMb2dnaW5nQnVja2V0JyA6ICdTM0xvZ2dpbmdCdWNrZXQnO1xuXG4gIC8vIElmIGxvZ2dpbmcgUzMgYWNjZXNzIGxvZ3MgaXMgZW5hYmxlZC91bmRlZmluZWQgYW5kIGFuIGV4aXN0aW5nIGJ1Y2tldCBvYmplY3QgaXMgbm90IHByb3ZpZGVkXG4gIGlmIChwcm9wcy5sb2dTM0FjY2Vzc0xvZ3MgIT09IGZhbHNlICYmICEocHJvcHMuYnVja2V0UHJvcHM/LnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQpKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBMb2dnaW5nIEJ1Y2tldFxuICAgIGxldCBsb2dnaW5nQnVja2V0UHJvcHMgPSBEZWZhdWx0UzNQcm9wcygpO1xuXG4gICAgaWYgKHByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcykge1xuICAgICAgLy8gVXNlciBwcm92aWRlZCBsb2dnaW5nIGJ1Y2tldCBwcm9wc1xuICAgICAgbG9nZ2luZ0J1Y2tldFByb3BzID0gb3ZlcnJpZGVQcm9wcyhsb2dnaW5nQnVja2V0UHJvcHMsIHByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5idWNrZXRQcm9wcz8ucmVtb3ZhbFBvbGljeSkge1xuICAgICAgLy8gSWYgdGhlIGNsaWVudCBleHBsaWNpdGx5IHNwZWNpZmllZCBhIHJlbW92YWwgcG9saWN5IGZvciB0aGUgbWFpbiBidWNrZXQsXG4gICAgICAvLyB0aGVuIHJlcGxpY2F0ZSB0aGF0IHBvbGljeSBvbiB0aGUgbG9nZ2luZyBidWNrZXRcbiAgICAgIGxvZ2dpbmdCdWNrZXRQcm9wcyA9IG92ZXJyaWRlUHJvcHMobG9nZ2luZ0J1Y2tldFByb3BzLCB7IHJlbW92YWxQb2xpY3k6IHByb3BzLmJ1Y2tldFByb3BzLnJlbW92YWxQb2xpY3kgfSk7XG4gICAgfVxuXG4gICAgbG9nZ2luZ0J1Y2tldCA9IGNyZWF0ZVMzQWNjZXNzTG9nZ2luZ0J1Y2tldChzY29wZSwgbG9nZ2luZ0J1Y2tldElkLCBsb2dnaW5nQnVja2V0UHJvcHMpO1xuICB9IGVsc2UgaWYgKHByb3BzLmJ1Y2tldFByb3BzPy5zZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0KSB7XG4gICAgbG9nZ2luZ0J1Y2tldCA9IHByb3BzLmJ1Y2tldFByb3BzPy5zZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0IGFzIHMzLkJ1Y2tldDtcbiAgfVxuXG4gIC8vIEF0dGFjaCB0aGUgRGVmYXVsdCBMaWZlIEN5Y2xlIHBvbGljeSBPTkxZIElGIHRoZSB2ZXJzaW9uaW5nIGlzIEVOQUJMRURcbiAgaWYgKHByb3BzLmJ1Y2tldFByb3BzPy52ZXJzaW9uZWQgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5idWNrZXRQcm9wcy52ZXJzaW9uZWQpIHtcbiAgICBkZWZhdWx0QnVja2V0UHJvcHMgPSBEZWZhdWx0UzNQcm9wcyhsb2dnaW5nQnVja2V0LCBsaWZlY3ljbGVSdWxlcyk7XG4gIH0gZWxzZSB7XG4gICAgZGVmYXVsdEJ1Y2tldFByb3BzID0gRGVmYXVsdFMzUHJvcHMobG9nZ2luZ0J1Y2tldCk7XG4gIH1cblxuICBjb25zdCBjb21iaW5lZEJ1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhkZWZhdWx0QnVja2V0UHJvcHMsIHByb3BzLmJ1Y2tldFByb3BzKTtcblxuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjgxKSAtIEJsb2NrIFB1YmxpYyBBY2Nlc3MgaXMgc2V0IGJ5IERlZmF1bHRTM1Byb3BzLFxuICAvLyBidXQgU29uYXJxdWJlIGNhbid0IGRldGVjdCBpdFxuICAvLyBJdCBpcyB2ZXJpZmllZCBieSAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcycgaW4gdGhlIHVuaXQgdGVzdHNcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI0NSlcbiAgLy8gRW5jcnlwdGlvbiBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDkpXG4gIC8vIGVuZm9yY2VTU0wgIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDp0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyB2ZXJzaW9uaW5nIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgY29uc3QgczNCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIHJlc29sdmVkQnVja2V0SWQsIGNvbWJpbmVkQnVja2V0UHJvcHMgKTsgLy8gTk9TT05BUlxuXG4gIHJldHVybiB7IGJ1Y2tldDogczNCdWNrZXQsIGxvZ2dpbmdCdWNrZXQgfTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkQ2ZuTmFnUzNCdWNrZXROb3RpZmljYXRpb25SdWxlc1RvU3VwcHJlc3Moc3RhY2tSb290OiBjZGsuU3RhY2ssIGxvZ2ljYWxJZDogc3RyaW5nKSB7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNSZXNvdXJjZUhhbmRsZXIgPSBzdGFja1Jvb3Qubm9kZS50cnlGaW5kQ2hpbGQobG9naWNhbElkKSBhcyBsYW1iZGEuRnVuY3Rpb247XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNSZXNvdXJjZUhhbmRsZXJSb2xlUm9sZSA9IG5vdGlmaWNhdGlvbnNSZXNvdXJjZUhhbmRsZXIubm9kZS5maW5kQ2hpbGQoJ1JvbGUnKSBhcyBpYW0uUm9sZTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlclJvbGVQb2xpY3kgPSBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyUm9sZVJvbGUubm9kZS5maW5kQ2hpbGQoJ0RlZmF1bHRQb2xpY3knKSBhcyBpYW0uUG9saWN5O1xuXG4gIC8vIEV4dHJhY3QgdGhlIENmbkZ1bmN0aW9uIGZyb20gdGhlIEZ1bmN0aW9uXG4gIGNvbnN0IGZuUmVzb3VyY2UgPSBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyLm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIGxhbWJkYS5DZm5GdW5jdGlvbjtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhmblJlc291cmNlLCBbXG4gICAge1xuICAgICAgaWQ6ICdXNTgnLFxuICAgICAgcmVhc29uOiBgTGFtYmRhIGZ1bmN0aW9ucyBoYXMgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb24gdG8gd3JpdGUgQ2xvdWRXYXRjaCBMb2dzLiBJdCB1c2VzIGN1c3RvbSBwb2xpY3kgaW5zdGVhZCBvZiBhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlIHdpdGggdGlnaHRlciBwZXJtaXNzaW9ucy5gXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ1c4OScsXG4gICAgICByZWFzb246IGBUaGlzIGlzIG5vdCBhIHJ1bGUgZm9yIHRoZSBnZW5lcmFsIGNhc2UsIGp1c3QgZm9yIHNwZWNpZmljIHVzZSBjYXNlcy9pbmR1c3RyaWVzYFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdXOTInLFxuICAgICAgcmVhc29uOiBgSW1wb3NzaWJsZSBmb3IgdXMgdG8gZGVmaW5lIHRoZSBjb3JyZWN0IGNvbmN1cnJlbmN5IGZvciBjbGllbnRzYFxuICAgIH1cbiAgXSk7XG5cbiAgLy8gRXh0cmFjdCB0aGUgQ2ZuUG9saWN5IGZyb20gdGhlIGlhbS5Qb2xpY3lcbiAgY29uc3QgcG9saWN5UmVzb3VyY2UgPSBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyUm9sZVBvbGljeS5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBpYW0uQ2ZuUG9saWN5O1xuICBhZGRDZm5TdXBwcmVzc1J1bGVzKHBvbGljeVJlc291cmNlLCBbXG4gICAge1xuICAgICAgaWQ6ICdXMTInLFxuICAgICAgcmVhc29uOiBgQnVja2V0IHJlc291cmNlIGlzICcqJyBkdWUgdG8gY2lyY3VsYXIgZGVwZW5kZW5jeSB3aXRoIGJ1Y2tldCBhbmQgcm9sZSBjcmVhdGlvbiBhdCB0aGUgc2FtZSB0aW1lYFxuICAgIH1cbiAgXSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNQcm9wcyB7XG4gIHJlYWRvbmx5IGV4aXN0aW5nQnVja2V0T2JqPzogczMuQnVja2V0LFxuICByZWFkb25seSBleGlzdGluZ0J1Y2tldEludGVyZmFjZT86IHMzLklCdWNrZXQsXG4gIHJlYWRvbmx5IGJ1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlYWRvbmx5IGV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaj86IHMzLklCdWNrZXQ7XG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzO1xuICByZWFkb25seSBsb2dTM0FjY2Vzc0xvZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tTM1Byb3BzKHByb3BzT2JqZWN0OiBTM1Byb3BzIHwgYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKChwcm9wc09iamVjdC5leGlzdGluZ0J1Y2tldE9iaiB8fCBwcm9wc09iamVjdC5leGlzdGluZ0J1Y2tldEludGVyZmFjZSkgJiYgcHJvcHNPYmplY3QuYnVja2V0UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGJ1Y2tldFByb3BzIG9yIGV4aXN0aW5nQnVja2V0T2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmogJiYgcHJvcHNPYmplY3QubG9nZ2luZ0J1Y2tldFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBleGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmogb3IgbG9nZ2luZ0J1Y2tldFByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICgocHJvcHNPYmplY3Q/LmxvZ1MzQWNjZXNzTG9ncyA9PT0gZmFsc2UpICYmIChwcm9wc09iamVjdC5sb2dnaW5nQnVja2V0UHJvcHMgfHwgcHJvcHNPYmplY3QuZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqKSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gSWYgbG9nUzNBY2Nlc3NMb2dzIGlzIGZhbHNlLCBzdXBwbHlpbmcgbG9nZ2luZ0J1Y2tldFByb3BzIG9yIGV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaiBpcyBpbnZhbGlkLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdCdWNrZXRPYmogJiYgKHByb3BzT2JqZWN0LmxvZ2dpbmdCdWNrZXRQcm9wcyB8fCBwcm9wc09iamVjdC5sb2dTM0FjY2Vzc0xvZ3MpKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBJZiBleGlzdGluZ0J1Y2tldE9iaiBpcyBwcm92aWRlZCwgc3VwcGx5aW5nIGxvZ2dpbmdCdWNrZXRQcm9wcyBvciBsb2dTM0FjY2Vzc0xvZ3MgaXMgYW4gZXJyb3IuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdD8uYnVja2V0UHJvcHM/LmVuY3J5cHRpb24gPT09IHMzLkJ1Y2tldEVuY3J5cHRpb24uS01TX01BTkFHRUQpIHtcbiAgICBpZiAoIXByb3BzT2JqZWN0LmJ1Y2tldFByb3BzLmJ1Y2tldEtleUVuYWJsZWQpIHtcbiAgICAgIHByaW50V2FybmluZyhcIldoZW4gdXNpbmcgU1NFLUtNUyBCdWNrZXQgRW5jcnlwdGlvbiwgc2V0IGJ1Y2tldEtleUVuYWJsZWQgdG8gdHJ1ZSB0byBsb3dlciBjb3N0c1wiKTtcbiAgICAgIHByaW50V2FybmluZygnaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvYnVja2V0LWtleS5odG1sJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGVycm9yRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cbiJdfQ==
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInMzLWJ1Y2tldC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQTBDSCxrRUErQkM7QUFnQkQsc0VBNkNDO0FBS0Qsd0RBa0NDO0FBV0Qsc0NBNkRDO0FBS0Qsb0dBb0JDO0FBV0Qsb0NBa0NDO0FBblRELHlDQUF5QztBQUV6Qyw2REFBc0Q7QUFDdEQsbUNBQXNIO0FBQ3RILCtDQUFrRDtBQUNsRCw2Q0FBdUM7QUEwQnZDOztHQUVHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsS0FBZ0IsRUFDMUQsUUFBZ0IsRUFDaEIsa0JBQWtDO0lBRWxDLGlGQUFpRjtJQUNqRixvQ0FBb0M7SUFDcEMsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLHdCQUFnQixFQUFDLElBQUEsbUNBQWMsR0FBRSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFbkYsNEJBQTRCO0lBQzVCLDhCQUE4QjtJQUM5Qiw4RUFBOEU7SUFDOUUscUVBQXFFO0lBQ3JFLDZCQUE2QjtJQUM3QiwrRUFBK0U7SUFDL0UsdURBQXVEO0lBQ3ZELDZCQUE2QjtJQUM3QixnRkFBZ0Y7SUFDaEYsdURBQXVEO0lBQ3ZELHdDQUF3QztJQUN4QywrRUFBK0U7SUFDL0UsdURBQXVEO0lBQ3ZELE1BQU0sYUFBYSxHQUFjLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxVQUFVO0lBRWhHLElBQUEsMkJBQW1CLEVBQUMsYUFBYSxFQUFFO1FBQ2pDO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsd0VBQXdFO1NBQ2pGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQWFEOztHQUVHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsS0FBZ0IsRUFDNUQsUUFBZ0IsRUFDaEIs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NUgsVUFBVSxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsS0FBSyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM5QyxJQUFBLG9CQUFZLEVBQUMsbUZBQW1GLENBQUMsQ0FBQztZQUNsRyxJQUFBLG9CQUFZLEVBQUMsdUVBQXVFLENBQUMsQ0FBQztRQUN4RixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IERlZmF1bHRTM1Byb3BzIH0gZnJvbSAnLi9zMy1idWNrZXQtZGVmYXVsdHMnO1xuaW1wb3J0IHsgb3ZlcnJpZGVQcm9wcywgYWRkQ2ZuU3VwcHJlc3NSdWxlcywgY29uc29saWRhdGVQcm9wcywgQ2hlY2tCb29sZWFuV2l0aERlZmF1bHQsIHByaW50V2FybmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgU3RvcmFnZUNsYXNzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTM0J1Y2tldFByb3BzIHtcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBTMyBCdWNrZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBTMyBMb2dnaW5nIEJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdHVybiBvbiBBY2Nlc3MgTG9ncyBmb3IgUzMuIFVzZXMgYW4gUzMgYnVja2V0IHdpdGggYXNzb2NpYXRlZCBzdG9yYWdlIGNvc3RzLlxuICAgKiBFbmFibGluZyBBY2Nlc3MgTG9nZ2luZyBpcyBhIGJlc3QgcHJhY3RpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUzNBY2Nlc3NMb2dzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUzNBY2Nlc3NMb2dnaW5nQnVja2V0KHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGJ1Y2tldElkOiBzdHJpbmcsXG4gIGxvZ2dpbmdCdWNrZXRQcm9wczogczMuQnVja2V0UHJvcHMpOiBzMy5CdWNrZXQge1xuXG4gIC8vIEludHJvZHVjZSB0aGUgZGVmYXVsdCBwcm9wcyBzaW5jZSB3ZSBjYW4ndCBiZSBjZXJ0YWluIHRoZSBjYWxsZXIgdXNlZCB0aGVtIGFuZFxuICAvLyB0aGV5IGFyZSBpbXBvcnRhbnQgYmVzdCBwcmFjdGljZXNcbiAgY29uc3QgY29tYmluZWRCdWNrZXRQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFMzUHJvcHMoKSwgbG9nZ2luZ0J1Y2tldFByb3BzKTtcblxuICAvLyBDcmVhdGUgdGhlIExvZ2dpbmcgQnVja2V0XG4gIC8vIE5PU09OQVIgICh0eXBlc2NyaXB0OlM2MjgxKVxuICAvLyBCbG9jayBQdWJsaWMgQWNjZXNzIGlzIHNldCBieSBEZWZhdWx0UzNQcm9wcywgYnV0IFNvbmFycXViZSBjYW4ndCBkZXRlY3QgaXRcbiAgLy8gSXQgaXMgdmVyaWZpZWQgYnkgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnIGluIHRoZSB1bml0IHRlc3RzXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDUpXG4gIC8vIEVuY3J5cHRpb24gaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyBlbmZvcmNlU1NMICBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6dHlwZXNjcmlwdDpTNjI0OSlcbiAgLy8gdmVyc2lvbmluZyBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIGJ1Y2tldElkLCBjb21iaW5lZEJ1Y2tldFByb3BzKTsgLy8gTk9TT05BUlxuXG4gIGFkZENmblN1cHByZXNzUnVsZXMobG9nZ2luZ0J1Y2tldCwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzM1JyxcbiAgICAgIHJlYXNvbjogXCJUaGlzIFMzIGJ1Y2tldCBpcyB1c2VkIGFzIHRoZSBhY2Nlc3MgbG9nZ2luZyBidWNrZXQgZm9yIGFub3RoZXIgYnVja2V0XCJcbiAgICB9XG4gIF0pO1xuXG4gIHJldHVybiBsb2dnaW5nQnVja2V0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UmVxdWVzdCB7XG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRQcm9wczogczMuQnVja2V0UHJvcHMsXG4gIHJlYWRvbmx5IHMzQWNjZXNzTG9nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgZW5hYmxlUzNBY2Nlc3NMb2dzPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UmVzcG9uc2Uge1xuICByZWFkb25seSBsb2dCdWNrZXQ6IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgczNBY2Nlc3NMb2dCdWNrZXQ/OiBzMy5CdWNrZXRcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXQoc2NvcGU6IENvbnN0cnVjdCxcbiAgYnVja2V0SWQ6IHN0cmluZyxcbiAgcHJvcHM6IENyZWF0ZUNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UmVxdWVzdCk6IENyZWF0ZUNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UmVzcG9uc2Uge1xuXG4gIGxldCBjbG91ZEZyb250TG9nQWNjZXNzTG9nQnVja2V0OiBzMy5CdWNrZXQgfCB1bmRlZmluZWQ7XG5cbiAgLy8gSW50cm9kdWNlIHRoZSBkZWZhdWx0IHByb3BzIHNpbmNlIHdlIGNhbid0IGJlIGNlcnRhaW4gdGhlIGNhbGxlciB1c2VkIHRoZW0gYW5kXG4gIC8vIHRoZXkgYXJlIGltcG9ydGFudCBiZXN0IHByYWN0aWNlc1xuICBsZXQgY29tYmluZWRCdWNrZXRQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFMzUHJvcHMoKSwgcHJvcHMubG9nZ2luZ0J1Y2tldFByb3BzKTtcblxuICBpZiAoIXByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcy5zZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0KSB7XG4gICAgLy8gQ3JlYXRlIGJ1Y2tldCBhbmQgYWRkIHRvIHByb3BzXG4gICAgY29uc3QgY29tYmluZWRTM0xvZ0J1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0UzNQcm9wcygpLCBwcm9wcy5zM0FjY2Vzc0xvZ0J1Y2tldFByb3BzKTtcblxuICAgIGlmIChDaGVja0Jvb2xlYW5XaXRoRGVmYXVsdChwcm9wcy5lbmFibGVTM0FjY2Vzc0xvZ3MsIHRydWUpKSB7XG4gICAgICBjbG91ZEZyb250TG9nQWNjZXNzTG9nQnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzY29wZSwgYCR7YnVja2V0SWR9QWNjZXNzTG9nYCwgY29tYmluZWRTM0xvZ0J1Y2tldFByb3BzKTsgLy8gTk9TT05BUlxuICAgICAgY29tYmluZWRCdWNrZXRQcm9wcyA9IG92ZXJyaWRlUHJvcHMoY29tYmluZWRCdWNrZXRQcm9wcywgeyBzZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0OiBjbG91ZEZyb250TG9nQWNjZXNzTG9nQnVja2V0IH0pO1xuICAgICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhjbG91ZEZyb250TG9nQWNjZXNzTG9nQnVja2V0LCBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ1czNScsXG4gICAgICAgICAgcmVhc29uOiBcIlRoaXMgUzMgYnVja2V0IGlzIHVzZWQgYXMgdGhlIGFjY2VzcyBsb2dnaW5nIGJ1Y2tldCBmb3IgYW5vdGhlciBidWNrZXRcIlxuICAgICAgICB9XG4gICAgICBdKTtcbiAgICB9XG4gIH1cblxuICAvLyBDcmVhdGUgdGhlIExvZ2dpbmcgQnVja2V0XG4gIC8vIE5PU09OQVIgICh0eXBlc2NyaXB0OlM2MjgxKVxuICAvLyBCbG9jayBQdWJsaWMgQWNjZXNzIGlzIHNldCBieSBEZWZhdWx0UzNQcm9wcywgYnV0IFNvbmFycXViZSBjYW4ndCBkZXRlY3QgaXRcbiAgLy8gSXQgaXMgdmVyaWZpZWQgYnkgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnIGluIHRoZSB1bml0IHRlc3RzXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDUpXG4gIC8vIEVuY3J5cHRpb24gaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyBlbmZvcmNlU1NMICBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6dHlwZXNjcmlwdDpTNjI0OSlcbiAgLy8gdmVyc2lvbmluZyBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIGNvbnN0IGNsb3VkZnJvbnRMb2dCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIGJ1Y2tldElkLCBjb21iaW5lZEJ1Y2tldFByb3BzKTsgLy8gTk9TT05BUlxuXG4gIHJldHVybiB7XG4gICAgbG9nQnVja2V0OiBjbG91ZGZyb250TG9nQnVja2V0LFxuICAgIHMzQWNjZXNzTG9nQnVja2V0OiBjbG91ZEZyb250TG9nQWNjZXNzTG9nQnVja2V0XG4gIH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFsYkxvZ2dpbmdCdWNrZXQoc2NvcGU6IENvbnN0cnVjdCxcbiAgYnVja2V0SWQ6IHN0cmluZyxcbiAgbG9nZ2luZ0J1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcyk6IHMzLkJ1Y2tldCB7XG5cbiAgLy8gSW50cm9kdWNlIHRoZSBkZWZhdWx0IHByb3BzIHNpbmNlIHdlIGNhbid0IGJlIGNlcnRhaW4gdGhlIGNhbGxlciB1c2VkIHRoZW0gYW5kXG4gIC8vIHRoZXkgYXJlIGltcG9ydGFudCBiZXN0IHByYWN0aWNlc1xuICBjb25zdCBjb21iaW5lZEJ1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0UzNQcm9wcygpLCBsb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIC8vIENyZWF0ZSB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI4MSlcbiAgLy8gQmxvY2sgUHVibGljIEFjY2VzcyBpcyBzZXQgYnkgRGVmYXVsdFMzUHJvcHMsIGJ1dCBTb25hcnF1YmUgY2FuJ3QgZGV0ZWN0IGl0XG4gIC8vIEl0IGlzIHZlcmlmaWVkIGJ5ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJyBpbiB0aGUgdW5pdCB0ZXN0c1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjQ1KVxuICAvLyBFbmNyeXB0aW9uIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI0OSlcbiAgLy8gZW5mb3JjZVNTTCAgaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OnR5cGVzY3JpcHQ6UzYyNDkpXG4gIC8vIHZlcnNpb25pbmcgaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICBjb25zdCBsb2dnaW5nQnVja2V0OiBzMy5CdWNrZXQgPSBuZXcgczMuQnVja2V0KHNjb3BlLCBidWNrZXRJZCwgY29tYmluZWRCdWNrZXRQcm9wcyk7IC8vIE5PU09OQVJcblxuICAvLyBFeHRyYWN0IHRoZSBDZm5CdWNrZXQgZnJvbSB0aGUgbG9nZ2luZ0J1Y2tldFxuICBjb25zdCBsb2dnaW5nQnVja2V0UmVzb3VyY2UgPSBsb2dnaW5nQnVja2V0Lm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIHMzLkNmbkJ1Y2tldDtcblxuICBhZGRDZm5TdXBwcmVzc1J1bGVzKGxvZ2dpbmdCdWNrZXRSZXNvdXJjZSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzM1JyxcbiAgICAgIHJlYXNvbjogXCJUaGlzIGlzIGEgbG9nIGJ1Y2tldCBmb3IgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlclwiXG4gICAgfVxuICBdKTtcblxuICByZXR1cm4gbG9nZ2luZ0J1Y2tldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFMzQnVja2V0UmVzcG9uc2Uge1xuICByZWFkb25seSBidWNrZXQ6IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldD86IHMzLkJ1Y2tldFxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKiBAaW50ZXJuYWwgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGV4cG9zZWQgZXh0ZXJuYWxseSB0aHJvdWdoIGF3cy1jb25zdHJ1Y3RzLWZhY3Rvcmllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTM0J1Y2tldChzY29wZTogQ29uc3RydWN0LFxuICBwcm9wczogQnVpbGRTM0J1Y2tldFByb3BzLFxuICBidWNrZXRJZD86IHN0cmluZyk6IEJ1aWxkUzNCdWNrZXRSZXNwb25zZSB7XG5cbiAgLyoqIERlZmF1bHQgTGlmZSBDeWNsZSBwb2xpY3kgdG8gdHJhbnNpdGlvbiBvbGRlciB2ZXJzaW9ucyB0byBHbGFjaWVyIGFmdGVyIDkwIGRheXMgKi9cbiAgY29uc3QgbGlmZWN5Y2xlUnVsZXM6IHMzLkxpZmVjeWNsZVJ1bGVbXSA9IFt7XG4gICAgbm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uczogW3tcbiAgICAgIHN0b3JhZ2VDbGFzczogU3RvcmFnZUNsYXNzLkdMQUNJRVIsXG4gICAgICB0cmFuc2l0aW9uQWZ0ZXI6IER1cmF0aW9uLmRheXMoOTApXG4gICAgfV1cbiAgfV07XG5cbiAgLy8gQ3JlYXRlIHRoZSBBcHBsaWNhdGlvbiBCdWNrZXRcbiAgbGV0IGRlZmF1bHRCdWNrZXRQcm9wczogczMuQnVja2V0UHJvcHM7XG4gIGxldCBsb2dnaW5nQnVja2V0O1xuICBjb25zdCByZXNvbHZlZEJ1Y2tldElkID0gYnVja2V0SWQgPyBidWNrZXRJZCArICdTM0J1Y2tldCcgOiAnUzNCdWNrZXQnO1xuICBjb25zdCBsb2dnaW5nQnVja2V0SWQgPSBidWNrZXRJZCA/IGJ1Y2tldElkICsgJ1MzTG9nZ2luZ0J1Y2tldCcgOiAnUzNMb2dnaW5nQnVja2V0JztcblxuICAvLyBJZiBsb2dnaW5nIFMzIGFjY2VzcyBsb2dzIGlzIGVuYWJsZWQvdW5kZWZpbmVkIGFuZCBhbiBleGlzdGluZyBidWNrZXQgb2JqZWN0IGlzIG5vdCBwcm92aWRlZFxuICBpZiAocHJvcHMubG9nUzNBY2Nlc3NMb2dzICE9PSBmYWxzZSAmJiAhKHByb3BzLmJ1Y2tldFByb3BzPy5zZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0KSkge1xuICAgIC8vIENyZWF0ZSB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgICBsZXQgbG9nZ2luZ0J1Y2tldFByb3BzID0gRGVmYXVsdFMzUHJvcHMoKTtcblxuICAgIGlmIChwcm9wcy5sb2dnaW5nQnVja2V0UHJvcHMpIHtcbiAgICAgIC8vIFVzZXIgcHJvdmlkZWQgbG9nZ2luZyBidWNrZXQgcHJvcHNcbiAgICAgIGxvZ2dpbmdCdWNrZXRQcm9wcyA9IG92ZXJyaWRlUHJvcHMobG9nZ2luZ0J1Y2tldFByb3BzLCBwcm9wcy5sb2dnaW5nQnVja2V0UHJvcHMpO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuYnVja2V0UHJvcHM/LnJlbW92YWxQb2xpY3kpIHtcbiAgICAgIC8vIElmIHRoZSBjbGllbnQgZXhwbGljaXRseSBzcGVjaWZpZWQgYSByZW1vdmFsIHBvbGljeSBmb3IgdGhlIG1haW4gYnVja2V0LFxuICAgICAgLy8gdGhlbiByZXBsaWNhdGUgdGhhdCBwb2xpY3kgb24gdGhlIGxvZ2dpbmcgYnVja2V0XG4gICAgICBsb2dnaW5nQnVja2V0UHJvcHMgPSBvdmVycmlkZVByb3BzKGxvZ2dpbmdCdWNrZXRQcm9wcywgeyByZW1vdmFsUG9saWN5OiBwcm9wcy5idWNrZXRQcm9wcy5yZW1vdmFsUG9saWN5IH0pO1xuICAgIH1cblxuICAgIGxvZ2dpbmdCdWNrZXQgPSBjcmVhdGVTM0FjY2Vzc0xvZ2dpbmdCdWNrZXQoc2NvcGUsIGxvZ2dpbmdCdWNrZXRJZCwgbG9nZ2luZ0J1Y2tldFByb3BzKTtcbiAgfSBlbHNlIGlmIChwcm9wcy5idWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCkge1xuICAgIGxvZ2dpbmdCdWNrZXQgPSBwcm9wcy5idWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCBhcyBzMy5CdWNrZXQ7XG4gIH1cblxuICAvLyBBdHRhY2ggdGhlIERlZmF1bHQgTGlmZSBDeWNsZSBwb2xpY3kgT05MWSBJRiB0aGUgdmVyc2lvbmluZyBpcyBFTkFCTEVEXG4gIGlmIChwcm9wcy5idWNrZXRQcm9wcz8udmVyc2lvbmVkID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYnVja2V0UHJvcHMudmVyc2lvbmVkKSB7XG4gICAgZGVmYXVsdEJ1Y2tldFByb3BzID0gRGVmYXVsdFMzUHJvcHMobG9nZ2luZ0J1Y2tldCwgbGlmZWN5Y2xlUnVsZXMpO1xuICB9IGVsc2Uge1xuICAgIGRlZmF1bHRCdWNrZXRQcm9wcyA9IERlZmF1bHRTM1Byb3BzKGxvZ2dpbmdCdWNrZXQpO1xuICB9XG5cbiAgY29uc3QgY29tYmluZWRCdWNrZXRQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdEJ1Y2tldFByb3BzLCBwcm9wcy5idWNrZXRQcm9wcyk7XG5cbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI4MSkgLSBCbG9jayBQdWJsaWMgQWNjZXNzIGlzIHNldCBieSBEZWZhdWx0UzNQcm9wcyxcbiAgLy8gYnV0IFNvbmFycXViZSBjYW4ndCBkZXRlY3QgaXRcbiAgLy8gSXQgaXMgdmVyaWZpZWQgYnkgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnIGluIHRoZSB1bml0IHRlc3RzXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDUpXG4gIC8vIEVuY3J5cHRpb24gaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyBlbmZvcmNlU1NMICBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6dHlwZXNjcmlwdDpTNjI0OSlcbiAgLy8gdmVyc2lvbmluZyBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIGNvbnN0IHMzQnVja2V0OiBzMy5CdWNrZXQgPSBuZXcgczMuQnVja2V0KHNjb3BlLCByZXNvbHZlZEJ1Y2tldElkLCBjb21iaW5lZEJ1Y2tldFByb3BzICk7IC8vIE5PU09OQVJcblxuICByZXR1cm4geyBidWNrZXQ6IHMzQnVja2V0LCBsb2dnaW5nQnVja2V0IH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZENmbk5hZ1MzQnVja2V0Tm90aWZpY2F0aW9uUnVsZXNUb1N1cHByZXNzKHN0YWNrUm9vdDogY2RrLlN0YWNrLCBsb2dpY2FsSWQ6IHN0cmluZykge1xuICBjb25zdCBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyID0gc3RhY2tSb290Lm5vZGUudHJ5RmluZENoaWxkKGxvZ2ljYWxJZCkgYXMgbGFtYmRhLkZ1bmN0aW9uO1xuXG4gIC8vIEV4dHJhY3QgdGhlIENmbkZ1bmN0aW9uIGZyb20gdGhlIEZ1bmN0aW9uXG4gIGNvbnN0IGZuUmVzb3VyY2UgPSBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyLm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIGxhbWJkYS5DZm5GdW5jdGlvbjtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhmblJlc291cmNlLCBbXG4gICAge1xuICAgICAgaWQ6ICdXNTgnLFxuICAgICAgcmVhc29uOiBgTGFtYmRhIGZ1bmN0aW9ucyBoYXMgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb24gdG8gd3JpdGUgQ2xvdWRXYXRjaCBMb2dzLiBJdCB1c2VzIGN1c3RvbSBwb2xpY3kgaW5zdGVhZCBvZiBhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlIHdpdGggdGlnaHRlciBwZXJtaXNzaW9ucy5gXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ1c4OScsXG4gICAgICByZWFzb246IGBUaGlzIGlzIG5vdCBhIHJ1bGUgZm9yIHRoZSBnZW5lcmFsIGNhc2UsIGp1c3QgZm9yIHNwZWNpZmljIHVzZSBjYXNlcy9pbmR1c3RyaWVzYFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdXOTInLFxuICAgICAgcmVhc29uOiBgSW1wb3NzaWJsZSBmb3IgdXMgdG8gZGVmaW5lIHRoZSBjb3JyZWN0IGNvbmN1cnJlbmN5IGZvciBjbGllbnRzYFxuICAgIH1cbiAgXSk7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTM1Byb3BzIHtcbiAgcmVhZG9ubHkgZXhpc3RpbmdCdWNrZXRPYmo/OiBzMy5CdWNrZXQsXG4gIHJlYWRvbmx5IGV4aXN0aW5nQnVja2V0SW50ZXJmYWNlPzogczMuSUJ1Y2tldCxcbiAgcmVhZG9ubHkgYnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqPzogczMuSUJ1Y2tldDtcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHM7XG4gIHJlYWRvbmx5IGxvZ1MzQWNjZXNzTG9ncz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGVja1MzUHJvcHMocHJvcHNPYmplY3Q6IFMzUHJvcHMgfCBhbnkpIHtcbiAgbGV0IGVycm9yTWVzc2FnZXMgPSAnJztcbiAgbGV0IGVycm9yRm91bmQgPSBmYWxzZTtcblxuICBpZiAoKHByb3BzT2JqZWN0LmV4aXN0aW5nQnVja2V0T2JqIHx8IHByb3BzT2JqZWN0LmV4aXN0aW5nQnVja2V0SW50ZXJmYWNlKSAmJiBwcm9wc09iamVjdC5idWNrZXRQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgYnVja2V0UHJvcHMgb3IgZXhpc3RpbmdCdWNrZXRPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaiAmJiBwcm9wc09iamVjdC5sb2dnaW5nQnVja2V0UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaiBvciBsb2dnaW5nQnVja2V0UHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKChwcm9wc09iamVjdD8ubG9nUzNBY2Nlc3NMb2dzID09PSBmYWxzZSkgJiYgKHByb3BzT2JqZWN0LmxvZ2dpbmdCdWNrZXRQcm9wcyB8fCBwcm9wc09iamVjdC5leGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmopKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBJZiBsb2dTM0FjY2Vzc0xvZ3MgaXMgZmFsc2UsIHN1cHBseWluZyBsb2dnaW5nQnVja2V0UHJvcHMgb3IgZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqIGlzIGludmFsaWQuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ0J1Y2tldE9iaiAmJiAocHJvcHNPYmplY3QubG9nZ2luZ0J1Y2tldFByb3BzIHx8IHByb3BzT2JqZWN0LmxvZ1MzQWNjZXNzTG9ncykpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIElmIGV4aXN0aW5nQnVja2V0T2JqIGlzIHByb3ZpZGVkLCBzdXBwbHlpbmcgbG9nZ2luZ0J1Y2tldFByb3BzIG9yIGxvZ1MzQWNjZXNzTG9ncyBpcyBhbiBlcnJvci5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0Py5idWNrZXRQcm9wcz8uZW5jcnlwdGlvbiA9PT0gczMuQnVja2V0RW5jcnlwdGlvbi5LTVNfTUFOQUdFRCkge1xuICAgIGlmICghcHJvcHNPYmplY3QuYnVja2V0UHJvcHMuYnVja2V0S2V5RW5hYmxlZCkge1xuICAgICAgcHJpbnRXYXJuaW5nKFwiV2hlbiB1c2luZyBTU0UtS01TIEJ1Y2tldCBFbmNyeXB0aW9uLCBzZXQgYnVja2V0S2V5RW5hYmxlZCB0byB0cnVlIHRvIGxvd2VyIGNvc3RzXCIpO1xuICAgICAgcHJpbnRXYXJuaW5nKCdodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9idWNrZXQta2V5Lmh0bWwnKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuIl19
|
package/lib/validation.js
CHANGED
|
@@ -147,6 +147,7 @@ exports.validFargateServiceProps = new Set([
|
|
|
147
147
|
'desiredCount',
|
|
148
148
|
'enableECSManagedTags',
|
|
149
149
|
'enableExecuteCommand',
|
|
150
|
+
'forceNewDeployment',
|
|
150
151
|
'healthCheckGracePeriod',
|
|
151
152
|
'lifecycleHooks',
|
|
152
153
|
'linearConfiguration',
|
|
@@ -591,4 +592,4 @@ function ValidatePrivateHostedZoneProps(scope, target) {
|
|
|
591
592
|
function ValidateCfnWebACLProps(scope, target) {
|
|
592
593
|
ValidateProps(scope, target, exports.validCfnWebACLProps, 'CfnWebACLProps');
|
|
593
594
|
}
|
|
594
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUEyZkgsc0NBYUM7QUFHRCxvRkFFQztBQUVELDRFQUVDO0FBRUQsNEVBRUM7QUFFRCxnRkFFQztBQUVELGtFQUVDO0FBRUQsZ0VBRUM7QUFFRCxvREFFQztBQUVELDhEQUVDO0FBRUQsa0VBRUM7QUFFRCx3RUFFQztBQUVELG9EQUVDO0FBRUQsd0VBRUM7QUFFRCxrREFFQztBQUVELGtEQUVDO0FBRUQsMEVBRUM7QUFFRCxvRUFFQztBQUVELHNEQUVDO0FBRUQsZ0VBRUM7QUFFRCw0Q0FFQztBQUVELDRDQUVDO0FBRUQsc0RBRUM7QUFFRCx3RUFFQztBQUVELHdEQUVDO0FBeGxCRCxtQ0FBbUM7QUFDbkMseUVBQXlFO0FBRXpFLDJFQUEyRTtBQUM5RCxRQUFBLGlDQUFpQyxHQUFnQixJQUFJLEdBQUcsQ0FBQztJQUNwRSxpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLHlCQUF5QjtJQUN6QixjQUFjO0lBQ2QsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLGVBQWU7SUFDZixLQUFLO0lBQ0wsWUFBWTtJQUNaLGFBQWE7SUFDYixzQ0FBc0M7SUFDdEMseUJBQXlCO0NBQzFCLENBQUMsQ0FBQztBQUVILHVFQUF1RTtBQUMxRCxRQUFBLDZCQUE2QixHQUFnQixJQUFJLEdBQUcsQ0FBQztJQUNoRSxjQUFjO0lBQ2QsZUFBZTtJQUNmLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2Qsc0JBQXNCO0lBQ3RCLE1BQU07SUFDTixNQUFNO0lBQ04sVUFBVTtJQUNWLFdBQVc7Q0FDWixDQUFDLENBQUM7QUFFSCxvREFBb0Q7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Q3ZFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLCtCQUF1QixFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQWdCLEVBQUUsTUFBWTtJQUM3RCxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxxQkFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFnQixFQUFFLE1BQVk7SUFDN0QsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUscUJBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxNQUFZO0lBQ2xFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLDBCQUFrQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFRCxTQUFnQiw4QkFBOEIsQ0FBQyxLQUFnQixFQUFFLE1BQVk7SUFDM0UsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsbUNBQTJCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsS0FBZ0IsRUFBRSxNQUFZO0lBQ25FLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLDJCQUFtQixFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDdEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBzY3JpcHRzL2dlbmVyYXRlLXZhbGlkYXRpb24udHNcbi8vIERvIG5vdCBlZGl0IG1hbnVhbGx5IC0gcnVuICducG0gcnVuIGdlbmVyYXRlOnZhbGlkYXRpb24nIGZyb20gdGhlIHNvdXJjZS9zY3JpcHRzIGZvbGRlciB0byByZWdlbmVyYXRlXG4vL1xuLy8gVGhpcyBmaWxlIGVuY29kZXMgdGhlIENESyBQcm9wcyBpbnRlcmZhY2UgZGVmaW5pdGlvbnMgaW50byBkYXRhIHN0cnVjdHVyZXMgdGhhdFxuLy8gY2FuIGJlIHVzZWQgYXQgcnVudGltZSB0byB2YWxpZGF0ZSB0aGUgYXR0cmlidXRlcyBvZiBpbmNvbWluZyBDREsgUHJvcHMgb2JqZWN0cyxcbi8vIHNpbmNlIHRoZSB1c2Ugb2YgfCBhbnkgaW4gdGhlIGRlZmluaXRpb25zIHByZXZlbnRzIHZhbGlkYXRpb24gYXQgdHJhbnNwaWxhdGlvbiB0aW1lXG4vL1xuLy8gSXQgYWxzbyBwcm92aWRlcyBmdW5jdGlvbnMgdGhhdCB3aWxsIHBlcmZvcm0gdGhlIHZhbGlkYXRpb24gb24gZWFjaCBQcm9wcyBvYmplY3QgdHlwZVxuLy8gcGFyc2VkXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IERJU0FCTEVfUFJPUEVSVFlfVkFMSURBVElPTiB9IGZyb20gJy4vY29uc3RydWN0cy1mZWF0dXJlLWZsYWdzJztcblxuLy8gQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXG5leHBvcnQgY29uc3QgdmFsaWRBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnY2xpZW50S2VlcEFsaXZlJyxcbiAgJ2Nyb3NzWm9uZUVuYWJsZWQnLFxuICAnZGVsZXRpb25Qcm90ZWN0aW9uJyxcbiAgJ2RlbnlBbGxJZ3dUcmFmZmljJyxcbiAgJ2Rlc3luY01pdGlnYXRpb25Nb2RlJyxcbiAgJ2Ryb3BJbnZhbGlkSGVhZGVyRmllbGRzJyxcbiAgJ2h0dHAyRW5hYmxlZCcsXG4gICdpZGxlVGltZW91dCcsXG4gICdpbnRlcm5ldEZhY2luZycsXG4gICdpcEFkZHJlc3NUeXBlJyxcbiAgJ2xvYWRCYWxhbmNlck5hbWUnLFxuICAnbWluaW11bUNhcGFjaXR5VW5pdCcsXG4gICdwcmVzZXJ2ZUhvc3RIZWFkZXInLFxuICAncHJlc2VydmVYZmZDbGllbnRQb3J0JyxcbiAgJ3NlY3VyaXR5R3JvdXAnLFxuICAndnBjJyxcbiAgJ3ZwY1N1Ym5ldHMnLFxuICAnd2FmRmFpbE9wZW4nLFxuICAneEFtem5UbHNWZXJzaW9uQW5kQ2lwaGVyU3VpdGVIZWFkZXJzJyxcbiAgJ3hmZkhlYWRlclByb2Nlc3NpbmdNb2RlJ1xuXSk7XG5cbi8vIEFwcGxpY2F0aW9uTGlzdGVuZXJQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXG5leHBvcnQgY29uc3QgdmFsaWRBcHBsaWNhdGlvbkxpc3RlbmVyUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdjZXJ0aWZpY2F0ZXMnLFxuICAnZGVmYXVsdEFjdGlvbicsXG4gICdkZWZhdWx0VGFyZ2V0R3JvdXBzJyxcbiAgJ2xvYWRCYWxhbmNlcicsXG4gICdtdXR1YWxBdXRoZW50aWNhdGlvbicsXG4gICdvcGVuJyxcbiAgJ3BvcnQnLFxuICAncHJvdG9jb2wnLFxuICAnc3NsUG9saWN5J1xuXSk7XG5cbi8vIENvbnRhaW5lckRlZmluaXRpb25Qcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1lY3NcbmV4cG9ydCBjb25zdCB2YWxpZENvbnRhaW5lckRlZmluaXRpb25Qcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2NvbW1hbmQnLFxuICAnY29udGFpbmVyTmFtZScsXG4gICdjcHUnLFxuICAnY3JlZGVudGlhbFNwZWNzJyxcbiAgJ2Rpc2FibGVOZXR3b3JraW5nJyxcbiAgJ2Ruc1NlYXJjaERvbWFpbnMnLFxuICAnZG5zU2VydmVycycsXG4gICdkb2NrZXJMYWJlbHMnLFxuICAnZG9ja2VyU2VjdXJpdHlPcHRpb25zJyxcbiAgJ2VuYWJsZVJlc3RhcnRQb2xpY3knLFxuICAnZW50cnlQb2ludCcsXG4gICdlbnZpcm9ubWVudCcsXG4gICdlbnZpcm9ubWVudEZpbGVzJyxcbiAgJ2Vzc2VudGlhbCcsXG4gICdleHRyYUhvc3RzJyxcbiAgJ2dwdUNvdW50JyxcbiAgJ2hlYWx0aENoZWNrJyxcbiAgJ2hvc3RuYW1lJyxcbiAgJ2ltYWdlJyxcbiAgJ2luZmVyZW5jZUFjY2VsZXJhdG9yUmVzb3VyY2VzJyxcbiAgJ2ludGVyYWN0aXZlJyxcbiAgJ2xpbnV4UGFyYW1ldGVycycsXG4gICdsb2dnaW5nJyxcbiAgJ21lbW9yeUxpbWl0TWlCJyxcbiAgJ21lbW9yeVJlc2VydmF0aW9uTWlCJyxcbiAgJ3BvcnRNYXBwaW5ncycsXG4gICdwcml2aWxlZ2VkJyxcbiAgJ3BzZXVkb1Rlcm1pbmFsJyxcbiAgJ3JlYWRvbmx5Um9vdEZpbGVzeXN0ZW0nLFxuICAncmVzdGFydEF0dGVtcHRQZXJpb2QnLFxuICAncmVzdGFydElnbm9yZWRFeGl0Q29kZXMnLFxuICAnc2VjcmV0cycsXG4gICdzdGFydFRpbWVvdXQnLFxuICAnc3RvcFRpbWVvdXQnLFxuICAnc3lzdGVtQ29udHJvbHMnLFxuICAndGFza0RlZmluaXRpb24nLFxuICAndWxpbWl0cycsXG4gICd1c2VyJyxcbiAgJ3ZlcnNpb25Db25zaXN0ZW5jeScsXG4gICd3b3JraW5nRGlyZWN0b3J5J1xuXSk7XG5cbi8vIEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWVjc1xuZXhwb3J0IGNvbnN0IHZhbGlkRmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdjcHUnLFxuICAnZW5hYmxlRmF1bHRJbmplY3Rpb24nLFxuICAnZXBoZW1lcmFsU3RvcmFnZUdpQicsXG4gICdleGVjdXRpb25Sb2xlJyxcbiAgJ2ZhbWlseScsXG4gICdtZW1vcnlMaW1pdE1pQicsXG4gICdwaWRNb2RlJyxcbiAgJ3Byb3h5Q29uZmlndXJhdGlvbicsXG4gICdydW50aW1lUGxhdGZvcm0nLFxuICAndGFza1JvbGUnLFxuICAndm9sdW1lcydcbl0pO1xuXG4vLyBGYXJnYXRlU2VydmljZVByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWVjc1xuZXhwb3J0IGNvbnN0IHZhbGlkRmFyZ2F0ZVNlcnZpY2VQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2Fzc2lnblB1YmxpY0lwJyxcbiAgJ2F2YWlsYWJpbGl0eVpvbmVSZWJhbGFuY2luZycsXG4gICdiYWtlVGltZScsXG4gICdjYW5hcnlDb25maWd1cmF0aW9uJyxcbiAgJ2NhcGFjaXR5UHJvdmlkZXJTdHJhdGVnaWVzJyxcbiAgJ2NpcmN1aXRCcmVha2VyJyxcbiAgJ2Nsb3VkTWFwT3B0aW9ucycsXG4gICdjbHVzdGVyJyxcbiAgJ2RlcGxveW1lbnRBbGFybXMnLFxuICAnZGVwbG95bWVudENvbnRyb2xsZXInLFxuICAnZGVwbG95bWVudFN0cmF0ZWd5JyxcbiAgJ2Rlc2lyZWRDb3VudCcsXG4gICdlbmFibGVFQ1NNYW5hZ2VkVGFncycsXG4gICdlbmFibGVFeGVjdXRlQ29tbWFuZCcsXG4gICdoZWFsdGhDaGVja0dyYWNlUGVyaW9kJyxcbiAgJ2xpZmVjeWNsZUhvb2tzJyxcbiAgJ2xpbmVhckNvbmZpZ3VyYXRpb24nLFxuICAnbWF4SGVhbHRoeVBlcmNlbnQnLFxuICAnbWluSGVhbHRoeVBlcmNlbnQnLFxuICAncGxhdGZvcm1WZXJzaW9uJyxcbiAgJ3Byb3BhZ2F0ZVRhZ3MnLFxuICAnc2VjdXJpdHlHcm91cHMnLFxuICAnc2VydmljZUNvbm5lY3RDb25maWd1cmF0aW9uJyxcbiAgJ3NlcnZpY2VOYW1lJyxcbiAgJ3Rhc2tEZWZpbml0aW9uJyxcbiAgJ3Rhc2tEZWZpbml0aW9uUmV2aXNpb24nLFxuICAndm9sdW1lQ29uZmlndXJhdGlvbnMnLFxuICAndnBjU3VibmV0cydcbl0pO1xuXG4vLyBMYW1iZGFSZXN0QXBpUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheVxuZXhwb3J0IGNvbnN0IHZhbGlkTGFtYmRhUmVzdEFwaVByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnYXBpS2V5U291cmNlVHlwZScsXG4gICdiaW5hcnlNZWRpYVR5cGVzJyxcbiAgJ2Nsb25lRnJvbScsXG4gICdjbG91ZFdhdGNoUm9sZScsXG4gICdjbG91ZFdhdGNoUm9sZVJlbW92YWxQb2xpY3knLFxuICAnZGVmYXVsdENvcnNQcmVmbGlnaHRPcHRpb25zJyxcbiAgJ2RlZmF1bHRJbnRlZ3JhdGlvbicsXG4gICdkZWZhdWx0TWV0aG9kT3B0aW9ucycsXG4gICdkZXBsb3knLFxuICAnZGVwbG95T3B0aW9ucycsXG4gICdkZXNjcmlwdGlvbicsXG4gICdkaXNhYmxlRXhlY3V0ZUFwaUVuZHBvaW50JyxcbiAgJ2RvbWFpbk5hbWUnLFxuICAnZW5kcG9pbnRDb25maWd1cmF0aW9uJyxcbiAgJ2VuZHBvaW50RXhwb3J0TmFtZScsXG4gICdlbmRwb2ludFR5cGVzJyxcbiAgJ2ZhaWxPbldhcm5pbmdzJyxcbiAgJ2hhbmRsZXInLFxuICAnaW50ZWdyYXRpb25PcHRpb25zJyxcbiAgJ21pbkNvbXByZXNzaW9uU2l6ZScsXG4gICdtaW5pbXVtQ29tcHJlc3Npb25TaXplJyxcbiAgJ3BhcmFtZXRlcnMnLFxuICAncG9saWN5JyxcbiAgJ3Byb3h5JyxcbiAgJ3Jlc3RBcGlOYW1lJyxcbiAgJ3JldGFpbkRlcGxveW1lbnRzJ1xuXSk7XG5cbi8vIFJlc3RBcGlQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XG5leHBvcnQgY29uc3QgdmFsaWRSZXN0QXBpUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhcGlLZXlTb3VyY2VUeXBlJyxcbiAgJ2JpbmFyeU1lZGlhVHlwZXMnLFxuICAnY2xvbmVGcm9tJyxcbiAgJ2Nsb3VkV2F0Y2hSb2xlJyxcbiAgJ2Nsb3VkV2F0Y2hSb2xlUmVtb3ZhbFBvbGljeScsXG4gICdkZWZhdWx0Q29yc1ByZWZsaWdodE9wdGlvbnMnLFxuICAnZGVmYXVsdEludGVncmF0aW9uJyxcbiAgJ2RlZmF1bHRNZXRob2RPcHRpb25zJyxcbiAgJ2RlcGxveScsXG4gICdkZXBsb3lPcHRpb25zJyxcbiAgJ2Rlc2NyaXB0aW9uJyxcbiAgJ2Rpc2FibGVFeGVjdXRlQXBpRW5kcG9pbnQnLFxuICAnZG9tYWluTmFtZScsXG4gICdlbmRwb2ludENvbmZpZ3VyYXRpb24nLFxuICAnZW5kcG9pbnRFeHBvcnROYW1lJyxcbiAgJ2VuZHBvaW50VHlwZXMnLFxuICAnZmFpbE9uV2FybmluZ3MnLFxuICAnbWluQ29tcHJlc3Npb25TaXplJyxcbiAgJ21pbmltdW1Db21wcmVzc2lvblNpemUnLFxuICAncGFyYW1ldGVycycsXG4gICdwb2xpY3knLFxuICAncmVzdEFwaU5hbWUnLFxuICAncmV0YWluRGVwbG95bWVudHMnXG5dKTtcblxuLy8gRGlzdHJpYnV0aW9uUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFxuZXhwb3J0IGNvbnN0IHZhbGlkRGlzdHJpYnV0aW9uUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhZGRpdGlvbmFsQmVoYXZpb3JzJyxcbiAgJ2NlcnRpZmljYXRlJyxcbiAgJ2NvbW1lbnQnLFxuICAnZGVmYXVsdEJlaGF2aW9yJyxcbiAgJ2RlZmF1bHRSb290T2JqZWN0JyxcbiAgJ2RvbWFpbk5hbWVzJyxcbiAgJ2VuYWJsZUlwdjYnLFxuICAnZW5hYmxlTG9nZ2luZycsXG4gICdlbmFibGVkJyxcbiAgJ2Vycm9yUmVzcG9uc2VzJyxcbiAgJ2dlb1Jlc3RyaWN0aW9uJyxcbiAgJ2h0dHBWZXJzaW9uJyxcbiAgJ2xvZ0J1Y2tldCcsXG4gICdsb2dGaWxlUHJlZml4JyxcbiAgJ2xvZ0luY2x1ZGVzQ29va2llcycsXG4gICdtaW5pbXVtUHJvdG9jb2xWZXJzaW9uJyxcbiAgJ3ByaWNlQ2xhc3MnLFxuICAncHVibGlzaEFkZGl0aW9uYWxNZXRyaWNzJyxcbiAgJ3NzbFN1cHBvcnRNZXRob2QnLFxuICAnd2ViQWNsSWQnXG5dKTtcblxuLy8gVXNlclBvb2xDbGllbnRQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1jb2duaXRvXG5leHBvcnQgY29uc3QgdmFsaWRVc2VyUG9vbENsaWVudFByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnYWNjZXNzVG9rZW5WYWxpZGl0eScsXG4gICdhbmFseXRpY3MnLFxuICAnYXV0aEZsb3dzJyxcbiAgJ2F1dGhTZXNzaW9uVmFsaWRpdHknLFxuICAnZGlzYWJsZU9BdXRoJyxcbiAgJ2VuYWJsZVByb3BhZ2F0ZUFkZGl0aW9uYWxVc2VyQ29udGV4dERhdGEnLFxuICAnZW5hYmxlVG9rZW5SZXZvY2F0aW9uJyxcbiAgJ2dlbmVyYXRlU2VjcmV0JyxcbiAgJ2lkVG9rZW5WYWxpZGl0eScsXG4gICdvQXV0aCcsXG4gICdwcmV2ZW50VXNlckV4aXN0ZW5jZUVycm9ycycsXG4gICdyZWFkQXR0cmlidXRlcycsXG4gICdyZWZyZXNoVG9rZW5Sb3RhdGlvbkdyYWNlUGVyaW9kJyxcbiAgJ3JlZnJlc2hUb2tlblZhbGlkaXR5JyxcbiAgJ3N1cHBvcnRlZElkZW50aXR5UHJvdmlkZXJzJyxcbiAgJ3VzZXJQb29sJyxcbiAgJ3VzZXJQb29sQ2xpZW50TmFtZScsXG4gICd3cml0ZUF0dHJpYnV0ZXMnXG5dKTtcblxuLy8gRHluYW1vRXZlbnRTb3VyY2VQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1sYW1iZGEtZXZlbnQtc291cmNlc1xuZXhwb3J0IGNvbnN0IHZhbGlkRHluYW1vRXZlbnRTb3VyY2VQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2JhdGNoU2l6ZScsXG4gICdiaXNlY3RCYXRjaE9uRXJyb3InLFxuICAnZW5hYmxlZCcsXG4gICdmaWx0ZXJFbmNyeXB0aW9uJyxcbiAgJ2ZpbHRlcnMnLFxuICAnbWF4QmF0Y2hpbmdXaW5kb3cnLFxuICAnbWF4UmVjb3JkQWdlJyxcbiAgJ21ldHJpY3NDb25maWcnLFxuICAnb25GYWlsdXJlJyxcbiAgJ3BhcmFsbGVsaXphdGlvbkZhY3RvcicsXG4gICdwcm92aXNpb25lZFBvbGxlckNvbmZpZycsXG4gICdyZXBvcnRCYXRjaEl0ZW1GYWlsdXJlcycsXG4gICdyZXRyeUF0dGVtcHRzJyxcbiAgJ3N0YXJ0aW5nUG9zaXRpb24nLFxuICAndHVtYmxpbmdXaW5kb3cnXG5dKTtcblxuLy8gQ2ZuUGlwZVByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLXBpcGVzXG5leHBvcnQgY29uc3QgdmFsaWRDZm5QaXBlUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdkZXNjcmlwdGlvbicsXG4gICdkZXNpcmVkU3RhdGUnLFxuICAnZW5yaWNobWVudCcsXG4gICdlbnJpY2htZW50UGFyYW1ldGVycycsXG4gICdrbXNLZXlJZGVudGlmaWVyJyxcbiAgJ2xvZ0NvbmZpZ3VyYXRpb24nLFxuICAnbmFtZScsXG4gICdyb2xlQXJuJyxcbiAgJ3NvdXJjZScsXG4gICdzb3VyY2VQYXJhbWV0ZXJzJyxcbiAgJ3RhZ3MnLFxuICAndGFyZ2V0JyxcbiAgJ3RhcmdldFBhcmFtZXRlcnMnXG5dKTtcblxuLy8gQ2ZuRGVsaXZlcnlTdHJlYW1Qcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1raW5lc2lzZmlyZWhvc2VcbmV4cG9ydCBjb25zdCB2YWxpZENmbkRlbGl2ZXJ5U3RyZWFtUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhbWF6b25PcGVuU2VhcmNoU2VydmVybGVzc0Rlc3RpbmF0aW9uQ29uZmlndXJhdGlvbicsXG4gICdhbWF6b25vcGVuc2VhcmNoc2VydmljZURlc3RpbmF0aW9uQ29uZmlndXJhdGlvbicsXG4gICdkYXRhYmFzZVNvdXJjZUNvbmZpZ3VyYXRpb24nLFxuICAnZGVsaXZlcnlTdHJlYW1FbmNyeXB0aW9uQ29uZmlndXJhdGlvbklucHV0JyxcbiAgJ2RlbGl2ZXJ5U3RyZWFtTmFtZScsXG4gICdkZWxpdmVyeVN0cmVhbVR5cGUnLFxuICAnZGlyZWN0UHV0U291cmNlQ29uZmlndXJhdGlvbicsXG4gICdlbGFzdGljc2VhcmNoRGVzdGluYXRpb25Db25maWd1cmF0aW9uJyxcbiAgJ2V4dGVuZGVkUzNEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24nLFxuICAnaHR0cEVuZHBvaW50RGVzdGluYXRpb25Db25maWd1cmF0aW9uJyxcbiAgJ2ljZWJlcmdEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24nLFxuICAna2luZXNpc1N0cmVhbVNvdXJjZUNvbmZpZ3VyYXRpb24nLFxuICAnbXNrU291cmNlQ29uZmlndXJhdGlvbicsXG4gICdyZWRzaGlmdERlc3RpbmF0aW9uQ29uZmlndXJhdGlvbicsXG4gICdzM0Rlc3RpbmF0aW9uQ29uZmlndXJhdGlvbicsXG4gICdzbm93Zmxha2VEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24nLFxuICAnc3BsdW5rRGVzdGluYXRpb25Db25maWd1cmF0aW9uJyxcbiAgJ3RhZ3MnXG5dKTtcblxuLy8gU3RyZWFtUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3Mta2luZXNpc1xuZXhwb3J0IGNvbnN0IHZhbGlkU3RyZWFtUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdlbmNyeXB0aW9uJyxcbiAgJ2VuY3J5cHRpb25LZXknLFxuICAncmVtb3ZhbFBvbGljeScsXG4gICdyZXRlbnRpb25QZXJpb2QnLFxuICAnc2hhcmRDb3VudCcsXG4gICdzaGFyZExldmVsTWV0cmljcycsXG4gICdzdHJlYW1Nb2RlJyxcbiAgJ3N0cmVhbU5hbWUnXG5dKTtcblxuLy8gQ2ZuSm9iUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3MtZ2x1ZVxuZXhwb3J0IGNvbnN0IHZhbGlkQ2ZuSm9iUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhbGxvY2F0ZWRDYXBhY2l0eScsXG4gICdjb21tYW5kJyxcbiAgJ2Nvbm5lY3Rpb25zJyxcbiAgJ2RlZmF1bHRBcmd1bWVudHMnLFxuICAnZGVzY3JpcHRpb24nLFxuICAnZXhlY3V0aW9uQ2xhc3MnLFxuICAnZXhlY3V0aW9uUHJvcGVydHknLFxuICAnZ2x1ZVZlcnNpb24nLFxuICAnam9iTW9kZScsXG4gICdqb2JSdW5RdWV1aW5nRW5hYmxlZCcsXG4gICdsb2dVcmknLFxuICAnbWFpbnRlbmFuY2VXaW5kb3cnLFxuICAnbWF4Q2FwYWNpdHknLFxuICAnbWF4UmV0cmllcycsXG4gICduYW1lJyxcbiAgJ25vbk92ZXJyaWRhYmxlQXJndW1lbnRzJyxcbiAgJ25vdGlmaWNhdGlvblByb3BlcnR5JyxcbiAgJ251bWJlck9mV29ya2VycycsXG4gICdyb2xlJyxcbiAgJ3NlY3VyaXR5Q29uZmlndXJhdGlvbicsXG4gICd0YWdzJyxcbiAgJ3RpbWVvdXQnLFxuICAnd29ya2VyVHlwZSdcbl0pO1xuXG4vLyBLaW5lc2lzRXZlbnRTb3VyY2VQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1sYW1iZGEtZXZlbnQtc291cmNlc1xuZXhwb3J0IGNvbnN0IHZhbGlkS2luZXNpc0V2ZW50U291cmNlUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdiYXRjaFNpemUnLFxuICAnYmlzZWN0QmF0Y2hPbkVycm9yJyxcbiAgJ2VuYWJsZWQnLFxuICAnZmlsdGVyRW5jcnlwdGlvbicsXG4gICdmaWx0ZXJzJyxcbiAgJ21heEJhdGNoaW5nV2luZG93JyxcbiAgJ21heFJlY29yZEFnZScsXG4gICdtZXRyaWNzQ29uZmlnJyxcbiAgJ29uRmFpbHVyZScsXG4gICdwYXJhbGxlbGl6YXRpb25GYWN0b3InLFxuICAncHJvdmlzaW9uZWRQb2xsZXJDb25maWcnLFxuICAncmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXMnLFxuICAncmV0cnlBdHRlbXB0cycsXG4gICdzdGFydGluZ1Bvc2l0aW9uJyxcbiAgJ3N0YXJ0aW5nUG9zaXRpb25UaW1lc3RhbXAnLFxuICAndHVtYmxpbmdXaW5kb3cnXG5dKTtcblxuLy8gQ2ZuQ2FjaGVDbHVzdGVyUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2FjaGVcbmV4cG9ydCBjb25zdCB2YWxpZENmbkNhY2hlQ2x1c3RlclByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnYXV0b01pbm9yVmVyc2lvblVwZ3JhZGUnLFxuICAnYXpNb2RlJyxcbiAgJ2NhY2hlTm9kZVR5cGUnLFxuICAnY2FjaGVQYXJhbWV0ZXJHcm91cE5hbWUnLFxuICAnY2FjaGVTZWN1cml0eUdyb3VwTmFtZXMnLFxuICAnY2FjaGVTdWJuZXRHcm91cE5hbWUnLFxuICAnY2x1c3Rlck5hbWUnLFxuICAnZW5naW5lJyxcbiAgJ2VuZ2luZVZlcnNpb24nLFxuICAnaXBEaXNjb3ZlcnknLFxuICAnbG9nRGVsaXZlcnlDb25maWd1cmF0aW9ucycsXG4gICduZXR3b3JrVHlwZScsXG4gICdub3RpZmljYXRpb25Ub3BpY0FybicsXG4gICdudW1DYWNoZU5vZGVzJyxcbiAgJ3BvcnQnLFxuICAncHJlZmVycmVkQXZhaWxhYmlsaXR5Wm9uZScsXG4gICdwcmVmZXJyZWRBdmFpbGFiaWxpdHlab25lcycsXG4gICdwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdycsXG4gICdzbmFwc2hvdEFybnMnLFxuICAnc25hcHNob3ROYW1lJyxcbiAgJ3NuYXBzaG90UmV0ZW50aW9uTGltaXQnLFxuICAnc25hcHNob3RXaW5kb3cnLFxuICAndGFncycsXG4gICd0cmFuc2l0RW5jcnlwdGlvbkVuYWJsZWQnLFxuICAndnBjU2VjdXJpdHlHcm91cElkcydcbl0pO1xuXG4vLyBDZm5JbmRleFByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWtlbmRyYVxuZXhwb3J0IGNvbnN0IHZhbGlkQ2ZuSW5kZXhQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2NhcGFjaXR5VW5pdHMnLFxuICAnZGVzY3JpcHRpb24nLFxuICAnZG9jdW1lbnRNZXRhZGF0YUNvbmZpZ3VyYXRpb25zJyxcbiAgJ2VkaXRpb24nLFxuICAnbmFtZScsXG4gICdyb2xlQXJuJyxcbiAgJ3NlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbicsXG4gICd0YWdzJyxcbiAgJ3VzZXJDb250ZXh0UG9saWN5JyxcbiAgJ3VzZXJUb2tlbkNvbmZpZ3VyYXRpb25zJ1xuXSk7XG5cbi8vIENmbkRhdGFTb3VyY2VQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1rZW5kcmFcbmV4cG9ydCBjb25zdCB2YWxpZENmbkRhdGFTb3VyY2VQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2N1c3RvbURvY3VtZW50RW5yaWNobWVudENvbmZpZ3VyYXRpb24nLFxuICAnZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24nLFxuICAnZGVzY3JpcHRpb24nLFxuICAnaW5kZXhJZCcsXG4gICdsYW5ndWFnZUNvZGUnLFxuICAnbmFtZScsXG4gICdyb2xlQXJuJyxcbiAgJ3NjaGVkdWxlJyxcbiAgJ3RhZ3MnLFxuICAndHlwZSdcbl0pO1xuXG4vLyBLZXlQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1rbXNcbmV4cG9ydCBjb25zdCB2YWxpZEtleVByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnYWRtaW5zJyxcbiAgJ2FsaWFzJyxcbiAgJ2Rlc2NyaXB0aW9uJyxcbiAgJ2VuYWJsZUtleVJvdGF0aW9uJyxcbiAgJ2VuYWJsZWQnLFxuICAna2V5U3BlYycsXG4gICdrZXlVc2FnZScsXG4gICdtdWx0aVJlZ2lvbicsXG4gICdwZW5kaW5nV2luZG93JyxcbiAgJ3BvbGljeScsXG4gICdyZW1vdmFsUG9saWN5JyxcbiAgJ3JvdGF0aW9uUGVyaW9kJ1xuXSk7XG5cbi8vIFZwY1Byb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWVjMlxuZXhwb3J0IGNvbnN0IHZhbGlkVnBjUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhdmFpbGFiaWxpdHlab25lcycsXG4gICdjaWRyJyxcbiAgJ2NyZWF0ZUludGVybmV0R2F0ZXdheScsXG4gICdkZWZhdWx0SW5zdGFuY2VUZW5hbmN5JyxcbiAgJ2VuYWJsZURuc0hvc3RuYW1lcycsXG4gICdlbmFibGVEbnNTdXBwb3J0JyxcbiAgJ2Zsb3dMb2dzJyxcbiAgJ2dhdGV3YXlFbmRwb2ludHMnLFxuICAnaXBBZGRyZXNzZXMnLFxuICAnaXBQcm90b2NvbCcsXG4gICdpcHY2QWRkcmVzc2VzJyxcbiAgJ21heEF6cycsXG4gICduYXRHYXRld2F5UHJvdmlkZXInLFxuICAnbmF0R2F0ZXdheVN1Ym5ldHMnLFxuICAnbmF0R2F0ZXdheXMnLFxuICAncmVzZXJ2ZWRBenMnLFxuICAncmVzdHJpY3REZWZhdWx0U2VjdXJpdHlHcm91cCcsXG4gICdzdWJuZXRDb25maWd1cmF0aW9uJyxcbiAgJ3ZwY05hbWUnLFxuICAndnBuQ29ubmVjdGlvbnMnLFxuICAndnBuR2F0ZXdheScsXG4gICd2cG5HYXRld2F5QXNuJyxcbiAgJ3ZwblJvdXRlUHJvcGFnYXRpb24nXG5dKTtcblxuLy8gQ2ZuTW9kZWxQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1zYWdlbWFrZXJcbmV4cG9ydCBjb25zdCB2YWxpZENmbk1vZGVsUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdjb250YWluZXJzJyxcbiAgJ2VuYWJsZU5ldHdvcmtJc29sYXRpb24nLFxuICAnZXhlY3V0aW9uUm9sZUFybicsXG4gICdpbmZlcmVuY2VFeGVjdXRpb25Db25maWcnLFxuICAnbW9kZWxOYW1lJyxcbiAgJ3ByaW1hcnlDb250YWluZXInLFxuICAndGFncycsXG4gICd2cGNDb25maWcnXG5dKTtcblxuLy8gUHJpdmF0ZUhvc3RlZFpvbmVQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXG5leHBvcnQgY29uc3QgdmFsaWRQcml2YXRlSG9zdGVkWm9uZVByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnYWRkVHJhaWxpbmdEb3QnLFxuICAnY29tbWVudCcsXG4gICdxdWVyeUxvZ3NMb2dHcm91cEFybicsXG4gICd2cGMnLFxuICAnem9uZU5hbWUnXG5dKTtcblxuLy8gQ2ZuV2ViQUNMUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3Mtd2FmdjJcbmV4cG9ydCBjb25zdCB2YWxpZENmbldlYkFDTFByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnYXBwbGljYXRpb25Db25maWcnLFxuICAnYXNzb2NpYXRpb25Db25maWcnLFxuICAnY2FwdGNoYUNvbmZpZycsXG4gICdjaGFsbGVuZ2VDb25maWcnLFxuICAnY3VzdG9tUmVzcG9uc2VCb2RpZXMnLFxuICAnZGF0YVByb3RlY3Rpb25Db25maWcnLFxuICAnZGVmYXVsdEFjdGlvbicsXG4gICdkZXNjcmlwdGlvbicsXG4gICduYW1lJyxcbiAgJ29uU291cmNlRERvU1Byb3RlY3Rpb25Db25maWcnLFxuICAncnVsZXMnLFxuICAnc2NvcGUnLFxuICAndGFncycsXG4gICd0b2tlbkRvbWFpbnMnLFxuICAndmlzaWJpbGl0eUNvbmZpZydcbl0pO1xuXG4vLyBTaGFyZWQgdmFsaWRhdGlvbiBpbXBsZW1lbnRhdGlvblxuLy8gU2NvcGUgaXMgcmVxdWlyZWQgZm9yIGZlYXR1cmUgZmxhZyBjaGVja2luZ1xuLy8gVGFyZ2V0IGNhbiBiZSB1bmRlZmluZWQgLSB2YWxpZGF0aW9uIGlzIHNraXBwZWQgaWYgdGFyZ2V0IGlzIHVuZGVmaW5lZFxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0OiBhbnkgfCB1bmRlZmluZWQsIHZhbGlkUHJvcHM6IFNldDxzdHJpbmc+LCBwcm9wc1R5cGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgLy8gQ2hlY2sgaWYgdmFsaWRhdGlvbiBpcyBkaXNhYmxlZCB2aWEgZmVhdHVyZSBmbGFnXG4gIGlmIChjZGsuRmVhdHVyZUZsYWdzLm9mKHNjb3BlKS5pc0VuYWJsZWQoRElTQUJMRV9QUk9QRVJUWV9WQUxJREFUSU9OKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIXRhcmdldCkge1xuICAgIHJldHVybjtcbiAgfVxuICBmb3IgKGNvbnN0IGtleSBpbiB0YXJnZXQpIHtcbiAgICBpZiAoIXZhbGlkUHJvcHMuaGFzKGtleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRVJST1IgLSAke2tleX0gaXMgbm90IGEgdmFsaWQgcHJvcGVydHkgb2YgJHtwcm9wc1R5cGVOYW1lfWApO1xuICAgIH1cbiAgfVxufVxuXG4vLyBWYWxpZGF0aW9uIGZ1bmN0aW9uc1xuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMsICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUFwcGxpY2F0aW9uTGlzdGVuZXJQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZEFwcGxpY2F0aW9uTGlzdGVuZXJQcm9wcywgJ0FwcGxpY2F0aW9uTGlzdGVuZXJQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVDb250YWluZXJEZWZpbml0aW9uUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRDb250YWluZXJEZWZpbml0aW9uUHJvcHMsICdDb250YWluZXJEZWZpbml0aW9uUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlRmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRGYXJnYXRlVGFza0RlZmluaXRpb25Qcm9wcywgJ0ZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUZhcmdhdGVTZXJ2aWNlUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRGYXJnYXRlU2VydmljZVByb3BzLCAnRmFyZ2F0ZVNlcnZpY2VQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVMYW1iZGFSZXN0QXBpUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRMYW1iZGFSZXN0QXBpUHJvcHMsICdMYW1iZGFSZXN0QXBpUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlUmVzdEFwaVByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkUmVzdEFwaVByb3BzLCAnUmVzdEFwaVByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZURpc3RyaWJ1dGlvblByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkRGlzdHJpYnV0aW9uUHJvcHMsICdEaXN0cmlidXRpb25Qcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVVc2VyUG9vbENsaWVudFByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkVXNlclBvb2xDbGllbnRQcm9wcywgJ1VzZXJQb29sQ2xpZW50UHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlRHluYW1vRXZlbnRTb3VyY2VQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZER5bmFtb0V2ZW50U291cmNlUHJvcHMsICdEeW5hbW9FdmVudFNvdXJjZVByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUNmblBpcGVQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZENmblBpcGVQcm9wcywgJ0NmblBpcGVQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVDZm5EZWxpdmVyeVN0cmVhbVByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkQ2ZuRGVsaXZlcnlTdHJlYW1Qcm9wcywgJ0NmbkRlbGl2ZXJ5U3RyZWFtUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlU3RyZWFtUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRTdHJlYW1Qcm9wcywgJ1N0cmVhbVByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUNmbkpvYlByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkQ2ZuSm9iUHJvcHMsICdDZm5Kb2JQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVLaW5lc2lzRXZlbnRTb3VyY2VQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZEtpbmVzaXNFdmVudFNvdXJjZVByb3BzLCAnS2luZXNpc0V2ZW50U291cmNlUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlQ2ZuQ2FjaGVDbHVzdGVyUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRDZm5DYWNoZUNsdXN0ZXJQcm9wcywgJ0NmbkNhY2hlQ2x1c3RlclByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUNmbkluZGV4UHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRDZm5JbmRleFByb3BzLCAnQ2ZuSW5kZXhQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVDZm5EYXRhU291cmNlUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRDZm5EYXRhU291cmNlUHJvcHMsICdDZm5EYXRhU291cmNlUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlS2V5UHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRLZXlQcm9wcywgJ0tleVByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZVZwY1Byb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkVnBjUHJvcHMsICdWcGNQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVDZm5Nb2RlbFByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkQ2ZuTW9kZWxQcm9wcywgJ0Nmbk1vZGVsUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlUHJpdmF0ZUhvc3RlZFpvbmVQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZFByaXZhdGVIb3N0ZWRab25lUHJvcHMsICdQcml2YXRlSG9zdGVkWm9uZVByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUNmbldlYkFDTFByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkQ2ZuV2ViQUNMUHJvcHMsICdDZm5XZWJBQ0xQcm9wcycpO1xufVxuIl19
|
|
595
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUE0Zkgsc0NBYUM7QUFHRCxvRkFFQztBQUVELDRFQUVDO0FBRUQsNEVBRUM7QUFFRCxnRkFFQztBQUVELGtFQUVDO0FBRUQsZ0VBRUM7QUFFRCxvREFFQztBQUVELDhEQUVDO0FBRUQsa0VBRUM7QUFFRCx3RUFFQztBQUVELG9EQUVDO0FBRUQsd0VBRUM7QUFFRCxrREFFQztBQUVELGtEQUVDO0FBRUQsMEVBRUM7QUFFRCxvRUFFQztBQUVELHNEQUVDO0FBRUQsZ0VBRUM7QUFFRCw0Q0FFQztBQUVELDRDQUVDO0FBRUQsc0RBRUM7QUFFRCx3RUFFQztBQUVELHdEQUVDO0FBemxCRCxtQ0FBbUM7QUFDbkMseUVBQXlFO0FBRXpFLDJFQUEyRTtBQUM5RCxRQUFBLGlDQUFpQyxHQUFnQixJQUFJLEdBQUcsQ0FBQztJQUNwRSxpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLHlCQUF5QjtJQUN6QixjQUFjO0lBQ2QsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLGVBQWU7SUFDZixLQUFLO0lBQ0wsWUFBWTtJQUNaLGFBQWE7SUFDYixzQ0FBc0M7SUFDdEMseUJBQXlCO0NBQzFCLENBQUMsQ0FBQztBQUVILHVFQUF1RTtBQUMxRCxRQUFBLDZCQUE2QixHQUFnQixJQUFJLEdBQUcsQ0FBQztJQUNoRSxjQUFjO0lBQ2QsZUFBZTtJQUNmLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2Qsc0JBQXNCO0lBQ3RCLE1BQU07SUFDTixNQUFNO0lBQ04sVUFBVTtJQUNWLFdBQVc7Q0FDWixDQUFDLENBQUM7QUFFSCxvREFBb0Q7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LEVBQUUsTUFBWTtJQUN2RSxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSwrQkFBdUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFnQixFQUFFLE1BQVk7SUFDN0QsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUscUJBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBZ0IsRUFBRSxNQUFZO0lBQzdELGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLHFCQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLEtBQWdCLEVBQUUsTUFBWTtJQUNsRSxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSwwQkFBa0IsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsU0FBZ0IsOEJBQThCLENBQUMsS0FBZ0IsRUFBRSxNQUFZO0lBQzNFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLG1DQUEyQixFQUFFLHdCQUF3QixDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELFNBQWdCLHNCQUFzQixDQUFDLEtBQWdCLEVBQUUsTUFBWTtJQUNuRSxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSwyQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgc2NyaXB0cy9nZW5lcmF0ZS12YWxpZGF0aW9uLnRzXG4vLyBEbyBub3QgZWRpdCBtYW51YWxseSAtIHJ1biAnbnBtIHJ1biBnZW5lcmF0ZTp2YWxpZGF0aW9uJyBmcm9tIHRoZSBzb3VyY2Uvc2NyaXB0cyBmb2xkZXIgdG8gcmVnZW5lcmF0ZVxuLy9cbi8vIFRoaXMgZmlsZSBlbmNvZGVzIHRoZSBDREsgUHJvcHMgaW50ZXJmYWNlIGRlZmluaXRpb25zIGludG8gZGF0YSBzdHJ1Y3R1cmVzIHRoYXRcbi8vIGNhbiBiZSB1c2VkIGF0IHJ1bnRpbWUgdG8gdmFsaWRhdGUgdGhlIGF0dHJpYnV0ZXMgb2YgaW5jb21pbmcgQ0RLIFByb3BzIG9iamVjdHMsXG4vLyBzaW5jZSB0aGUgdXNlIG9mIHwgYW55IGluIHRoZSBkZWZpbml0aW9ucyBwcmV2ZW50cyB2YWxpZGF0aW9uIGF0IHRyYW5zcGlsYXRpb24gdGltZVxuLy9cbi8vIEl0IGFsc28gcHJvdmlkZXMgZnVuY3Rpb25zIHRoYXQgd2lsbCBwZXJmb3JtIHRoZSB2YWxpZGF0aW9uIG9uIGVhY2ggUHJvcHMgb2JqZWN0IHR5cGVcbi8vIHBhcnNlZFxuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBESVNBQkxFX1BST1BFUlRZX1ZBTElEQVRJT04gfSBmcm9tICcuL2NvbnN0cnVjdHMtZmVhdHVyZS1mbGFncyc7XG5cbi8vIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2MlxuZXhwb3J0IGNvbnN0IHZhbGlkQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2NsaWVudEtlZXBBbGl2ZScsXG4gICdjcm9zc1pvbmVFbmFibGVkJyxcbiAgJ2RlbGV0aW9uUHJvdGVjdGlvbicsXG4gICdkZW55QWxsSWd3VHJhZmZpYycsXG4gICdkZXN5bmNNaXRpZ2F0aW9uTW9kZScsXG4gICdkcm9wSW52YWxpZEhlYWRlckZpZWxkcycsXG4gICdodHRwMkVuYWJsZWQnLFxuICAnaWRsZVRpbWVvdXQnLFxuICAnaW50ZXJuZXRGYWNpbmcnLFxuICAnaXBBZGRyZXNzVHlwZScsXG4gICdsb2FkQmFsYW5jZXJOYW1lJyxcbiAgJ21pbmltdW1DYXBhY2l0eVVuaXQnLFxuICAncHJlc2VydmVIb3N0SGVhZGVyJyxcbiAgJ3ByZXNlcnZlWGZmQ2xpZW50UG9ydCcsXG4gICdzZWN1cml0eUdyb3VwJyxcbiAgJ3ZwYycsXG4gICd2cGNTdWJuZXRzJyxcbiAgJ3dhZkZhaWxPcGVuJyxcbiAgJ3hBbXpuVGxzVmVyc2lvbkFuZENpcGhlclN1aXRlSGVhZGVycycsXG4gICd4ZmZIZWFkZXJQcm9jZXNzaW5nTW9kZSdcbl0pO1xuXG4vLyBBcHBsaWNhdGlvbkxpc3RlbmVyUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2MlxuZXhwb3J0IGNvbnN0IHZhbGlkQXBwbGljYXRpb25MaXN0ZW5lclByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnY2VydGlmaWNhdGVzJyxcbiAgJ2RlZmF1bHRBY3Rpb24nLFxuICAnZGVmYXVsdFRhcmdldEdyb3VwcycsXG4gICdsb2FkQmFsYW5jZXInLFxuICAnbXV0dWFsQXV0aGVudGljYXRpb24nLFxuICAnb3BlbicsXG4gICdwb3J0JyxcbiAgJ3Byb3RvY29sJyxcbiAgJ3NzbFBvbGljeSdcbl0pO1xuXG4vLyBDb250YWluZXJEZWZpbml0aW9uUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3MtZWNzXG5leHBvcnQgY29uc3QgdmFsaWRDb250YWluZXJEZWZpbml0aW9uUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdjb21tYW5kJyxcbiAgJ2NvbnRhaW5lck5hbWUnLFxuICAnY3B1JyxcbiAgJ2NyZWRlbnRpYWxTcGVjcycsXG4gICdkaXNhYmxlTmV0d29ya2luZycsXG4gICdkbnNTZWFyY2hEb21haW5zJyxcbiAgJ2Ruc1NlcnZlcnMnLFxuICAnZG9ja2VyTGFiZWxzJyxcbiAgJ2RvY2tlclNlY3VyaXR5T3B0aW9ucycsXG4gICdlbmFibGVSZXN0YXJ0UG9saWN5JyxcbiAgJ2VudHJ5UG9pbnQnLFxuICAnZW52aXJvbm1lbnQnLFxuICAnZW52aXJvbm1lbnRGaWxlcycsXG4gICdlc3NlbnRpYWwnLFxuICAnZXh0cmFIb3N0cycsXG4gICdncHVDb3VudCcsXG4gICdoZWFsdGhDaGVjaycsXG4gICdob3N0bmFtZScsXG4gICdpbWFnZScsXG4gICdpbmZlcmVuY2VBY2NlbGVyYXRvclJlc291cmNlcycsXG4gICdpbnRlcmFjdGl2ZScsXG4gICdsaW51eFBhcmFtZXRlcnMnLFxuICAnbG9nZ2luZycsXG4gICdtZW1vcnlMaW1pdE1pQicsXG4gICdtZW1vcnlSZXNlcnZhdGlvbk1pQicsXG4gICdwb3J0TWFwcGluZ3MnLFxuICAncHJpdmlsZWdlZCcsXG4gICdwc2V1ZG9UZXJtaW5hbCcsXG4gICdyZWFkb25seVJvb3RGaWxlc3lzdGVtJyxcbiAgJ3Jlc3RhcnRBdHRlbXB0UGVyaW9kJyxcbiAgJ3Jlc3RhcnRJZ25vcmVkRXhpdENvZGVzJyxcbiAgJ3NlY3JldHMnLFxuICAnc3RhcnRUaW1lb3V0JyxcbiAgJ3N0b3BUaW1lb3V0JyxcbiAgJ3N5c3RlbUNvbnRyb2xzJyxcbiAgJ3Rhc2tEZWZpbml0aW9uJyxcbiAgJ3VsaW1pdHMnLFxuICAndXNlcicsXG4gICd2ZXJzaW9uQ29uc2lzdGVuY3knLFxuICAnd29ya2luZ0RpcmVjdG9yeSdcbl0pO1xuXG4vLyBGYXJnYXRlVGFza0RlZmluaXRpb25Qcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1lY3NcbmV4cG9ydCBjb25zdCB2YWxpZEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnY3B1JyxcbiAgJ2VuYWJsZUZhdWx0SW5qZWN0aW9uJyxcbiAgJ2VwaGVtZXJhbFN0b3JhZ2VHaUInLFxuICAnZXhlY3V0aW9uUm9sZScsXG4gICdmYW1pbHknLFxuICAnbWVtb3J5TGltaXRNaUInLFxuICAncGlkTW9kZScsXG4gICdwcm94eUNvbmZpZ3VyYXRpb24nLFxuICAncnVudGltZVBsYXRmb3JtJyxcbiAgJ3Rhc2tSb2xlJyxcbiAgJ3ZvbHVtZXMnXG5dKTtcblxuLy8gRmFyZ2F0ZVNlcnZpY2VQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1lY3NcbmV4cG9ydCBjb25zdCB2YWxpZEZhcmdhdGVTZXJ2aWNlUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhc3NpZ25QdWJsaWNJcCcsXG4gICdhdmFpbGFiaWxpdHlab25lUmViYWxhbmNpbmcnLFxuICAnYmFrZVRpbWUnLFxuICAnY2FuYXJ5Q29uZmlndXJhdGlvbicsXG4gICdjYXBhY2l0eVByb3ZpZGVyU3RyYXRlZ2llcycsXG4gICdjaXJjdWl0QnJlYWtlcicsXG4gICdjbG91ZE1hcE9wdGlvbnMnLFxuICAnY2x1c3RlcicsXG4gICdkZXBsb3ltZW50QWxhcm1zJyxcbiAgJ2RlcGxveW1lbnRDb250cm9sbGVyJyxcbiAgJ2RlcGxveW1lbnRTdHJhdGVneScsXG4gICdkZXNpcmVkQ291bnQnLFxuICAnZW5hYmxlRUNTTWFuYWdlZFRhZ3MnLFxuICAnZW5hYmxlRXhlY3V0ZUNvbW1hbmQnLFxuICAnZm9yY2VOZXdEZXBsb3ltZW50JyxcbiAgJ2hlYWx0aENoZWNrR3JhY2VQZXJpb2QnLFxuICAnbGlmZWN5Y2xlSG9va3MnLFxuICAnbGluZWFyQ29uZmlndXJhdGlvbicsXG4gICdtYXhIZWFsdGh5UGVyY2VudCcsXG4gICdtaW5IZWFsdGh5UGVyY2VudCcsXG4gICdwbGF0Zm9ybVZlcnNpb24nLFxuICAncHJvcGFnYXRlVGFncycsXG4gICdzZWN1cml0eUdyb3VwcycsXG4gICdzZXJ2aWNlQ29ubmVjdENvbmZpZ3VyYXRpb24nLFxuICAnc2VydmljZU5hbWUnLFxuICAndGFza0RlZmluaXRpb24nLFxuICAndGFza0RlZmluaXRpb25SZXZpc2lvbicsXG4gICd2b2x1bWVDb25maWd1cmF0aW9ucycsXG4gICd2cGNTdWJuZXRzJ1xuXSk7XG5cbi8vIExhbWJkYVJlc3RBcGlQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XG5leHBvcnQgY29uc3QgdmFsaWRMYW1iZGFSZXN0QXBpUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhcGlLZXlTb3VyY2VUeXBlJyxcbiAgJ2JpbmFyeU1lZGlhVHlwZXMnLFxuICAnY2xvbmVGcm9tJyxcbiAgJ2Nsb3VkV2F0Y2hSb2xlJyxcbiAgJ2Nsb3VkV2F0Y2hSb2xlUmVtb3ZhbFBvbGljeScsXG4gICdkZWZhdWx0Q29yc1ByZWZsaWdodE9wdGlvbnMnLFxuICAnZGVmYXVsdEludGVncmF0aW9uJyxcbiAgJ2RlZmF1bHRNZXRob2RPcHRpb25zJyxcbiAgJ2RlcGxveScsXG4gICdkZXBsb3lPcHRpb25zJyxcbiAgJ2Rlc2NyaXB0aW9uJyxcbiAgJ2Rpc2FibGVFeGVjdXRlQXBpRW5kcG9pbnQnLFxuICAnZG9tYWluTmFtZScsXG4gICdlbmRwb2ludENvbmZpZ3VyYXRpb24nLFxuICAnZW5kcG9pbnRFeHBvcnROYW1lJyxcbiAgJ2VuZHBvaW50VHlwZXMnLFxuICAnZmFpbE9uV2FybmluZ3MnLFxuICAnaGFuZGxlcicsXG4gICdpbnRlZ3JhdGlvbk9wdGlvbnMnLFxuICAnbWluQ29tcHJlc3Npb25TaXplJyxcbiAgJ21pbmltdW1Db21wcmVzc2lvblNpemUnLFxuICAncGFyYW1ldGVycycsXG4gICdwb2xpY3knLFxuICAncHJveHknLFxuICAncmVzdEFwaU5hbWUnLFxuICAncmV0YWluRGVwbG95bWVudHMnXG5dKTtcblxuLy8gUmVzdEFwaVByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcbmV4cG9ydCBjb25zdCB2YWxpZFJlc3RBcGlQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2FwaUtleVNvdXJjZVR5cGUnLFxuICAnYmluYXJ5TWVkaWFUeXBlcycsXG4gICdjbG9uZUZyb20nLFxuICAnY2xvdWRXYXRjaFJvbGUnLFxuICAnY2xvdWRXYXRjaFJvbGVSZW1vdmFsUG9saWN5JyxcbiAgJ2RlZmF1bHRDb3JzUHJlZmxpZ2h0T3B0aW9ucycsXG4gICdkZWZhdWx0SW50ZWdyYXRpb24nLFxuICAnZGVmYXVsdE1ldGhvZE9wdGlvbnMnLFxuICAnZGVwbG95JyxcbiAgJ2RlcGxveU9wdGlvbnMnLFxuICAnZGVzY3JpcHRpb24nLFxuICAnZGlzYWJsZUV4ZWN1dGVBcGlFbmRwb2ludCcsXG4gICdkb21haW5OYW1lJyxcbiAgJ2VuZHBvaW50Q29uZmlndXJhdGlvbicsXG4gICdlbmRwb2ludEV4cG9ydE5hbWUnLFxuICAnZW5kcG9pbnRUeXBlcycsXG4gICdmYWlsT25XYXJuaW5ncycsXG4gICdtaW5Db21wcmVzc2lvblNpemUnLFxuICAnbWluaW11bUNvbXByZXNzaW9uU2l6ZScsXG4gICdwYXJhbWV0ZXJzJyxcbiAgJ3BvbGljeScsXG4gICdyZXN0QXBpTmFtZScsXG4gICdyZXRhaW5EZXBsb3ltZW50cydcbl0pO1xuXG4vLyBEaXN0cmlidXRpb25Qcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XG5leHBvcnQgY29uc3QgdmFsaWREaXN0cmlidXRpb25Qcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2FkZGl0aW9uYWxCZWhhdmlvcnMnLFxuICAnY2VydGlmaWNhdGUnLFxuICAnY29tbWVudCcsXG4gICdkZWZhdWx0QmVoYXZpb3InLFxuICAnZGVmYXVsdFJvb3RPYmplY3QnLFxuICAnZG9tYWluTmFtZXMnLFxuICAnZW5hYmxlSXB2NicsXG4gICdlbmFibGVMb2dnaW5nJyxcbiAgJ2VuYWJsZWQnLFxuICAnZXJyb3JSZXNwb25zZXMnLFxuICAnZ2VvUmVzdHJpY3Rpb24nLFxuICAnaHR0cFZlcnNpb24nLFxuICAnbG9nQnVja2V0JyxcbiAgJ2xvZ0ZpbGVQcmVmaXgnLFxuICAnbG9nSW5jbHVkZXNDb29raWVzJyxcbiAgJ21pbmltdW1Qcm90b2NvbFZlcnNpb24nLFxuICAncHJpY2VDbGFzcycsXG4gICdwdWJsaXNoQWRkaXRpb25hbE1ldHJpY3MnLFxuICAnc3NsU3VwcG9ydE1ldGhvZCcsXG4gICd3ZWJBY2xJZCdcbl0pO1xuXG4vLyBVc2VyUG9vbENsaWVudFByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWNvZ25pdG9cbmV4cG9ydCBjb25zdCB2YWxpZFVzZXJQb29sQ2xpZW50UHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhY2Nlc3NUb2tlblZhbGlkaXR5JyxcbiAgJ2FuYWx5dGljcycsXG4gICdhdXRoRmxvd3MnLFxuICAnYXV0aFNlc3Npb25WYWxpZGl0eScsXG4gICdkaXNhYmxlT0F1dGgnLFxuICAnZW5hYmxlUHJvcGFnYXRlQWRkaXRpb25hbFVzZXJDb250ZXh0RGF0YScsXG4gICdlbmFibGVUb2tlblJldm9jYXRpb24nLFxuICAnZ2VuZXJhdGVTZWNyZXQnLFxuICAnaWRUb2tlblZhbGlkaXR5JyxcbiAgJ29BdXRoJyxcbiAgJ3ByZXZlbnRVc2VyRXhpc3RlbmNlRXJyb3JzJyxcbiAgJ3JlYWRBdHRyaWJ1dGVzJyxcbiAgJ3JlZnJlc2hUb2tlblJvdGF0aW9uR3JhY2VQZXJpb2QnLFxuICAncmVmcmVzaFRva2VuVmFsaWRpdHknLFxuICAnc3VwcG9ydGVkSWRlbnRpdHlQcm92aWRlcnMnLFxuICAndXNlclBvb2wnLFxuICAndXNlclBvb2xDbGllbnROYW1lJyxcbiAgJ3dyaXRlQXR0cmlidXRlcydcbl0pO1xuXG4vLyBEeW5hbW9FdmVudFNvdXJjZVByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ldmVudC1zb3VyY2VzXG5leHBvcnQgY29uc3QgdmFsaWREeW5hbW9FdmVudFNvdXJjZVByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnYmF0Y2hTaXplJyxcbiAgJ2Jpc2VjdEJhdGNoT25FcnJvcicsXG4gICdlbmFibGVkJyxcbiAgJ2ZpbHRlckVuY3J5cHRpb24nLFxuICAnZmlsdGVycycsXG4gICdtYXhCYXRjaGluZ1dpbmRvdycsXG4gICdtYXhSZWNvcmRBZ2UnLFxuICAnbWV0cmljc0NvbmZpZycsXG4gICdvbkZhaWx1cmUnLFxuICAncGFyYWxsZWxpemF0aW9uRmFjdG9yJyxcbiAgJ3Byb3Zpc2lvbmVkUG9sbGVyQ29uZmlnJyxcbiAgJ3JlcG9ydEJhdGNoSXRlbUZhaWx1cmVzJyxcbiAgJ3JldHJ5QXR0ZW1wdHMnLFxuICAnc3RhcnRpbmdQb3NpdGlvbicsXG4gICd0dW1ibGluZ1dpbmRvdydcbl0pO1xuXG4vLyBDZm5QaXBlUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3MtcGlwZXNcbmV4cG9ydCBjb25zdCB2YWxpZENmblBpcGVQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2Rlc2NyaXB0aW9uJyxcbiAgJ2Rlc2lyZWRTdGF0ZScsXG4gICdlbnJpY2htZW50JyxcbiAgJ2VucmljaG1lbnRQYXJhbWV0ZXJzJyxcbiAgJ2ttc0tleUlkZW50aWZpZXInLFxuICAnbG9nQ29uZmlndXJhdGlvbicsXG4gICduYW1lJyxcbiAgJ3JvbGVBcm4nLFxuICAnc291cmNlJyxcbiAgJ3NvdXJjZVBhcmFtZXRlcnMnLFxuICAndGFncycsXG4gICd0YXJnZXQnLFxuICAndGFyZ2V0UGFyYW1ldGVycydcbl0pO1xuXG4vLyBDZm5EZWxpdmVyeVN0cmVhbVByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWtpbmVzaXNmaXJlaG9zZVxuZXhwb3J0IGNvbnN0IHZhbGlkQ2ZuRGVsaXZlcnlTdHJlYW1Qcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2FtYXpvbk9wZW5TZWFyY2hTZXJ2ZXJsZXNzRGVzdGluYXRpb25Db25maWd1cmF0aW9uJyxcbiAgJ2FtYXpvbm9wZW5zZWFyY2hzZXJ2aWNlRGVzdGluYXRpb25Db25maWd1cmF0aW9uJyxcbiAgJ2RhdGFiYXNlU291cmNlQ29uZmlndXJhdGlvbicsXG4gICdkZWxpdmVyeVN0cmVhbUVuY3J5cHRpb25Db25maWd1cmF0aW9uSW5wdXQnLFxuICAnZGVsaXZlcnlTdHJlYW1OYW1lJyxcbiAgJ2RlbGl2ZXJ5U3RyZWFtVHlwZScsXG4gICdkaXJlY3RQdXRTb3VyY2VDb25maWd1cmF0aW9uJyxcbiAgJ2VsYXN0aWNzZWFyY2hEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24nLFxuICAnZXh0ZW5kZWRTM0Rlc3RpbmF0aW9uQ29uZmlndXJhdGlvbicsXG4gICdodHRwRW5kcG9pbnREZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24nLFxuICAnaWNlYmVyZ0Rlc3RpbmF0aW9uQ29uZmlndXJhdGlvbicsXG4gICdraW5lc2lzU3RyZWFtU291cmNlQ29uZmlndXJhdGlvbicsXG4gICdtc2tTb3VyY2VDb25maWd1cmF0aW9uJyxcbiAgJ3JlZHNoaWZ0RGVzdGluYXRpb25Db25maWd1cmF0aW9uJyxcbiAgJ3MzRGVzdGluYXRpb25Db25maWd1cmF0aW9uJyxcbiAgJ3Nub3dmbGFrZURlc3RpbmF0aW9uQ29uZmlndXJhdGlvbicsXG4gICdzcGx1bmtEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24nLFxuICAndGFncydcbl0pO1xuXG4vLyBTdHJlYW1Qcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1raW5lc2lzXG5leHBvcnQgY29uc3QgdmFsaWRTdHJlYW1Qcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2VuY3J5cHRpb24nLFxuICAnZW5jcnlwdGlvbktleScsXG4gICdyZW1vdmFsUG9saWN5JyxcbiAgJ3JldGVudGlvblBlcmlvZCcsXG4gICdzaGFyZENvdW50JyxcbiAgJ3NoYXJkTGV2ZWxNZXRyaWNzJyxcbiAgJ3N0cmVhbU1vZGUnLFxuICAnc3RyZWFtTmFtZSdcbl0pO1xuXG4vLyBDZm5Kb2JQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1nbHVlXG5leHBvcnQgY29uc3QgdmFsaWRDZm5Kb2JQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2FsbG9jYXRlZENhcGFjaXR5JyxcbiAgJ2NvbW1hbmQnLFxuICAnY29ubmVjdGlvbnMnLFxuICAnZGVmYXVsdEFyZ3VtZW50cycsXG4gICdkZXNjcmlwdGlvbicsXG4gICdleGVjdXRpb25DbGFzcycsXG4gICdleGVjdXRpb25Qcm9wZXJ0eScsXG4gICdnbHVlVmVyc2lvbicsXG4gICdqb2JNb2RlJyxcbiAgJ2pvYlJ1blF1ZXVpbmdFbmFibGVkJyxcbiAgJ2xvZ1VyaScsXG4gICdtYWludGVuYW5jZVdpbmRvdycsXG4gICdtYXhDYXBhY2l0eScsXG4gICdtYXhSZXRyaWVzJyxcbiAgJ25hbWUnLFxuICAnbm9uT3ZlcnJpZGFibGVBcmd1bWVudHMnLFxuICAnbm90aWZpY2F0aW9uUHJvcGVydHknLFxuICAnbnVtYmVyT2ZXb3JrZXJzJyxcbiAgJ3JvbGUnLFxuICAnc2VjdXJpdHlDb25maWd1cmF0aW9uJyxcbiAgJ3RhZ3MnLFxuICAndGltZW91dCcsXG4gICd3b3JrZXJUeXBlJ1xuXSk7XG5cbi8vIEtpbmVzaXNFdmVudFNvdXJjZVByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ldmVudC1zb3VyY2VzXG5leHBvcnQgY29uc3QgdmFsaWRLaW5lc2lzRXZlbnRTb3VyY2VQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2JhdGNoU2l6ZScsXG4gICdiaXNlY3RCYXRjaE9uRXJyb3InLFxuICAnZW5hYmxlZCcsXG4gICdmaWx0ZXJFbmNyeXB0aW9uJyxcbiAgJ2ZpbHRlcnMnLFxuICAnbWF4QmF0Y2hpbmdXaW5kb3cnLFxuICAnbWF4UmVjb3JkQWdlJyxcbiAgJ21ldHJpY3NDb25maWcnLFxuICAnb25GYWlsdXJlJyxcbiAgJ3BhcmFsbGVsaXphdGlvbkZhY3RvcicsXG4gICdwcm92aXNpb25lZFBvbGxlckNvbmZpZycsXG4gICdyZXBvcnRCYXRjaEl0ZW1GYWlsdXJlcycsXG4gICdyZXRyeUF0dGVtcHRzJyxcbiAgJ3N0YXJ0aW5nUG9zaXRpb24nLFxuICAnc3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcCcsXG4gICd0dW1ibGluZ1dpbmRvdydcbl0pO1xuXG4vLyBDZm5DYWNoZUNsdXN0ZXJQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy1lbGFzdGljYWNoZVxuZXhwb3J0IGNvbnN0IHZhbGlkQ2ZuQ2FjaGVDbHVzdGVyUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhdXRvTWlub3JWZXJzaW9uVXBncmFkZScsXG4gICdhek1vZGUnLFxuICAnY2FjaGVOb2RlVHlwZScsXG4gICdjYWNoZVBhcmFtZXRlckdyb3VwTmFtZScsXG4gICdjYWNoZVNlY3VyaXR5R3JvdXBOYW1lcycsXG4gICdjYWNoZVN1Ym5ldEdyb3VwTmFtZScsXG4gICdjbHVzdGVyTmFtZScsXG4gICdlbmdpbmUnLFxuICAnZW5naW5lVmVyc2lvbicsXG4gICdpcERpc2NvdmVyeScsXG4gICdsb2dEZWxpdmVyeUNvbmZpZ3VyYXRpb25zJyxcbiAgJ25ldHdvcmtUeXBlJyxcbiAgJ25vdGlmaWNhdGlvblRvcGljQXJuJyxcbiAgJ251bUNhY2hlTm9kZXMnLFxuICAncG9ydCcsXG4gICdwcmVmZXJyZWRBdmFpbGFiaWxpdHlab25lJyxcbiAgJ3ByZWZlcnJlZEF2YWlsYWJpbGl0eVpvbmVzJyxcbiAgJ3ByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93JyxcbiAgJ3NuYXBzaG90QXJucycsXG4gICdzbmFwc2hvdE5hbWUnLFxuICAnc25hcHNob3RSZXRlbnRpb25MaW1pdCcsXG4gICdzbmFwc2hvdFdpbmRvdycsXG4gICd0YWdzJyxcbiAgJ3RyYW5zaXRFbmNyeXB0aW9uRW5hYmxlZCcsXG4gICd2cGNTZWN1cml0eUdyb3VwSWRzJ1xuXSk7XG5cbi8vIENmbkluZGV4UHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3Mta2VuZHJhXG5leHBvcnQgY29uc3QgdmFsaWRDZm5JbmRleFByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnY2FwYWNpdHlVbml0cycsXG4gICdkZXNjcmlwdGlvbicsXG4gICdkb2N1bWVudE1ldGFkYXRhQ29uZmlndXJhdGlvbnMnLFxuICAnZWRpdGlvbicsXG4gICduYW1lJyxcbiAgJ3JvbGVBcm4nLFxuICAnc2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uJyxcbiAgJ3RhZ3MnLFxuICAndXNlckNvbnRleHRQb2xpY3knLFxuICAndXNlclRva2VuQ29uZmlndXJhdGlvbnMnXG5dKTtcblxuLy8gQ2ZuRGF0YVNvdXJjZVByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWtlbmRyYVxuZXhwb3J0IGNvbnN0IHZhbGlkQ2ZuRGF0YVNvdXJjZVByb3BzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnY3VzdG9tRG9jdW1lbnRFbnJpY2htZW50Q29uZmlndXJhdGlvbicsXG4gICdkYXRhU291cmNlQ29uZmlndXJhdGlvbicsXG4gICdkZXNjcmlwdGlvbicsXG4gICdpbmRleElkJyxcbiAgJ2xhbmd1YWdlQ29kZScsXG4gICduYW1lJyxcbiAgJ3JvbGVBcm4nLFxuICAnc2NoZWR1bGUnLFxuICAndGFncycsXG4gICd0eXBlJ1xuXSk7XG5cbi8vIEtleVByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLWttc1xuZXhwb3J0IGNvbnN0IHZhbGlkS2V5UHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhZG1pbnMnLFxuICAnYWxpYXMnLFxuICAnZGVzY3JpcHRpb24nLFxuICAnZW5hYmxlS2V5Um90YXRpb24nLFxuICAnZW5hYmxlZCcsXG4gICdrZXlTcGVjJyxcbiAgJ2tleVVzYWdlJyxcbiAgJ211bHRpUmVnaW9uJyxcbiAgJ3BlbmRpbmdXaW5kb3cnLFxuICAncG9saWN5JyxcbiAgJ3JlbW92YWxQb2xpY3knLFxuICAncm90YXRpb25QZXJpb2QnXG5dKTtcblxuLy8gVnBjUHJvcHMgZnJvbSBhd3MtY2RrLWxpYi9hd3MtZWMyXG5leHBvcnQgY29uc3QgdmFsaWRWcGNQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2F2YWlsYWJpbGl0eVpvbmVzJyxcbiAgJ2NpZHInLFxuICAnY3JlYXRlSW50ZXJuZXRHYXRld2F5JyxcbiAgJ2RlZmF1bHRJbnN0YW5jZVRlbmFuY3knLFxuICAnZW5hYmxlRG5zSG9zdG5hbWVzJyxcbiAgJ2VuYWJsZURuc1N1cHBvcnQnLFxuICAnZmxvd0xvZ3MnLFxuICAnZ2F0ZXdheUVuZHBvaW50cycsXG4gICdpcEFkZHJlc3NlcycsXG4gICdpcFByb3RvY29sJyxcbiAgJ2lwdjZBZGRyZXNzZXMnLFxuICAnbWF4QXpzJyxcbiAgJ25hdEdhdGV3YXlQcm92aWRlcicsXG4gICduYXRHYXRld2F5U3VibmV0cycsXG4gICduYXRHYXRld2F5cycsXG4gICdyZXNlcnZlZEF6cycsXG4gICdyZXN0cmljdERlZmF1bHRTZWN1cml0eUdyb3VwJyxcbiAgJ3N1Ym5ldENvbmZpZ3VyYXRpb24nLFxuICAndnBjTmFtZScsXG4gICd2cG5Db25uZWN0aW9ucycsXG4gICd2cG5HYXRld2F5JyxcbiAgJ3ZwbkdhdGV3YXlBc24nLFxuICAndnBuUm91dGVQcm9wYWdhdGlvbidcbl0pO1xuXG4vLyBDZm5Nb2RlbFByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLXNhZ2VtYWtlclxuZXhwb3J0IGNvbnN0IHZhbGlkQ2ZuTW9kZWxQcm9wczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2NvbnRhaW5lcnMnLFxuICAnZW5hYmxlTmV0d29ya0lzb2xhdGlvbicsXG4gICdleGVjdXRpb25Sb2xlQXJuJyxcbiAgJ2luZmVyZW5jZUV4ZWN1dGlvbkNvbmZpZycsXG4gICdtb2RlbE5hbWUnLFxuICAncHJpbWFyeUNvbnRhaW5lcicsXG4gICd0YWdzJyxcbiAgJ3ZwY0NvbmZpZydcbl0pO1xuXG4vLyBQcml2YXRlSG9zdGVkWm9uZVByb3BzIGZyb20gYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcbmV4cG9ydCBjb25zdCB2YWxpZFByaXZhdGVIb3N0ZWRab25lUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhZGRUcmFpbGluZ0RvdCcsXG4gICdjb21tZW50JyxcbiAgJ3F1ZXJ5TG9nc0xvZ0dyb3VwQXJuJyxcbiAgJ3ZwYycsXG4gICd6b25lTmFtZSdcbl0pO1xuXG4vLyBDZm5XZWJBQ0xQcm9wcyBmcm9tIGF3cy1jZGstbGliL2F3cy13YWZ2MlxuZXhwb3J0IGNvbnN0IHZhbGlkQ2ZuV2ViQUNMUHJvcHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdhcHBsaWNhdGlvbkNvbmZpZycsXG4gICdhc3NvY2lhdGlvbkNvbmZpZycsXG4gICdjYXB0Y2hhQ29uZmlnJyxcbiAgJ2NoYWxsZW5nZUNvbmZpZycsXG4gICdjdXN0b21SZXNwb25zZUJvZGllcycsXG4gICdkYXRhUHJvdGVjdGlvbkNvbmZpZycsXG4gICdkZWZhdWx0QWN0aW9uJyxcbiAgJ2Rlc2NyaXB0aW9uJyxcbiAgJ25hbWUnLFxuICAnb25Tb3VyY2VERG9TUHJvdGVjdGlvbkNvbmZpZycsXG4gICdydWxlcycsXG4gICdzY29wZScsXG4gICd0YWdzJyxcbiAgJ3Rva2VuRG9tYWlucycsXG4gICd2aXNpYmlsaXR5Q29uZmlnJ1xuXSk7XG5cbi8vIFNoYXJlZCB2YWxpZGF0aW9uIGltcGxlbWVudGF0aW9uXG4vLyBTY29wZSBpcyByZXF1aXJlZCBmb3IgZmVhdHVyZSBmbGFnIGNoZWNraW5nXG4vLyBUYXJnZXQgY2FuIGJlIHVuZGVmaW5lZCAtIHZhbGlkYXRpb24gaXMgc2tpcHBlZCBpZiB0YXJnZXQgaXMgdW5kZWZpbmVkXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ6IGFueSB8IHVuZGVmaW5lZCwgdmFsaWRQcm9wczogU2V0PHN0cmluZz4sIHByb3BzVHlwZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAvLyBDaGVjayBpZiB2YWxpZGF0aW9uIGlzIGRpc2FibGVkIHZpYSBmZWF0dXJlIGZsYWdcbiAgaWYgKGNkay5GZWF0dXJlRmxhZ3Mub2Yoc2NvcGUpLmlzRW5hYmxlZChESVNBQkxFX1BST1BFUlRZX1ZBTElEQVRJT04pKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICghdGFyZ2V0KSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAoY29uc3Qga2V5IGluIHRhcmdldCkge1xuICAgIGlmICghdmFsaWRQcm9wcy5oYXMoa2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFUlJPUiAtICR7a2V5fSBpcyBub3QgYSB2YWxpZCBwcm9wZXJ0eSBvZiAke3Byb3BzVHlwZU5hbWV9YCk7XG4gICAgfVxuICB9XG59XG5cbi8vIFZhbGlkYXRpb24gZnVuY3Rpb25zXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcywgJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlQXBwbGljYXRpb25MaXN0ZW5lclByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkQXBwbGljYXRpb25MaXN0ZW5lclByb3BzLCAnQXBwbGljYXRpb25MaXN0ZW5lclByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUNvbnRhaW5lckRlZmluaXRpb25Qcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZENvbnRhaW5lckRlZmluaXRpb25Qcm9wcywgJ0NvbnRhaW5lckRlZmluaXRpb25Qcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVGYXJnYXRlVGFza0RlZmluaXRpb25Qcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzLCAnRmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlRmFyZ2F0ZVNlcnZpY2VQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZEZhcmdhdGVTZXJ2aWNlUHJvcHMsICdGYXJnYXRlU2VydmljZVByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUxhbWJkYVJlc3RBcGlQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZExhbWJkYVJlc3RBcGlQcm9wcywgJ0xhbWJkYVJlc3RBcGlQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVSZXN0QXBpUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRSZXN0QXBpUHJvcHMsICdSZXN0QXBpUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlRGlzdHJpYnV0aW9uUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWREaXN0cmlidXRpb25Qcm9wcywgJ0Rpc3RyaWJ1dGlvblByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZVVzZXJQb29sQ2xpZW50UHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRVc2VyUG9vbENsaWVudFByb3BzLCAnVXNlclBvb2xDbGllbnRQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVEeW5hbW9FdmVudFNvdXJjZVByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkRHluYW1vRXZlbnRTb3VyY2VQcm9wcywgJ0R5bmFtb0V2ZW50U291cmNlUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlQ2ZuUGlwZVByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkQ2ZuUGlwZVByb3BzLCAnQ2ZuUGlwZVByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUNmbkRlbGl2ZXJ5U3RyZWFtUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRDZm5EZWxpdmVyeVN0cmVhbVByb3BzLCAnQ2ZuRGVsaXZlcnlTdHJlYW1Qcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVTdHJlYW1Qcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZFN0cmVhbVByb3BzLCAnU3RyZWFtUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlQ2ZuSm9iUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRDZm5Kb2JQcm9wcywgJ0NmbkpvYlByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUtpbmVzaXNFdmVudFNvdXJjZVByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkS2luZXNpc0V2ZW50U291cmNlUHJvcHMsICdLaW5lc2lzRXZlbnRTb3VyY2VQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVDZm5DYWNoZUNsdXN0ZXJQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZENmbkNhY2hlQ2x1c3RlclByb3BzLCAnQ2ZuQ2FjaGVDbHVzdGVyUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlQ2ZuSW5kZXhQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZENmbkluZGV4UHJvcHMsICdDZm5JbmRleFByb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUNmbkRhdGFTb3VyY2VQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZENmbkRhdGFTb3VyY2VQcm9wcywgJ0NmbkRhdGFTb3VyY2VQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVLZXlQcm9wcyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ/OiBhbnkpOiB2b2lkIHtcbiAgVmFsaWRhdGVQcm9wcyhzY29wZSwgdGFyZ2V0LCB2YWxpZEtleVByb3BzLCAnS2V5UHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlVnBjUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRWcGNQcm9wcywgJ1ZwY1Byb3BzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUNmbk1vZGVsUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRDZm5Nb2RlbFByb3BzLCAnQ2ZuTW9kZWxQcm9wcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVQcml2YXRlSG9zdGVkWm9uZVByb3BzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldD86IGFueSk6IHZvaWQge1xuICBWYWxpZGF0ZVByb3BzKHNjb3BlLCB0YXJnZXQsIHZhbGlkUHJpdmF0ZUhvc3RlZFpvbmVQcm9wcywgJ1ByaXZhdGVIb3N0ZWRab25lUHJvcHMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhbGlkYXRlQ2ZuV2ViQUNMUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0PzogYW55KTogdm9pZCB7XG4gIFZhbGlkYXRlUHJvcHMoc2NvcGUsIHRhcmdldCwgdmFsaWRDZm5XZWJBQ0xQcm9wcywgJ0NmbldlYkFDTFByb3BzJyk7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-solutions-constructs/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.103.0",
|
|
4
4
|
"description": "Core CDK Construct for patterns library",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.ts",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"deepmerge": "^4.0.0",
|
|
58
58
|
"npmlog": "^7.0.0",
|
|
59
59
|
"constructs": "^10.0.0",
|
|
60
|
-
"@aws-cdk/cloud-assembly-schema": "^
|
|
60
|
+
"@aws-cdk/cloud-assembly-schema": "^54.0.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@types/deep-diff": "^1.0.0",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"@types/jest": "^27.4.0",
|
|
67
67
|
"@types/node": "^20.0.0",
|
|
68
68
|
"constructs": "^10.0.0",
|
|
69
|
-
"aws-cdk-lib": "2.
|
|
69
|
+
"aws-cdk-lib": "2.260.0"
|
|
70
70
|
},
|
|
71
71
|
"jest": {
|
|
72
72
|
"moduleFileExtensions": [
|
|
@@ -89,6 +89,6 @@
|
|
|
89
89
|
],
|
|
90
90
|
"peerDependencies": {
|
|
91
91
|
"constructs": "^10.0.0",
|
|
92
|
-
"aws-cdk-lib": "^2.
|
|
92
|
+
"aws-cdk-lib": "^2.260.0"
|
|
93
93
|
}
|
|
94
94
|
}
|
|
@@ -369,18 +369,6 @@ test('Suppress cfn-nag warning for s3 bucket notification', () => {
|
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
371
|
});
|
|
372
|
-
template.hasResource("AWS::IAM::Policy", {
|
|
373
|
-
Metadata: {
|
|
374
|
-
cfn_nag: {
|
|
375
|
-
rules_to_suppress: [
|
|
376
|
-
{
|
|
377
|
-
id: "W12",
|
|
378
|
-
reason: "Bucket resource is '*' due to circular dependency with bucket and role creation at the same time"
|
|
379
|
-
}
|
|
380
|
-
]
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
});
|
|
384
372
|
});
|
|
385
373
|
test('test s3Bucket removalPolicy override', () => {
|
|
386
374
|
const stack = new aws_cdk_lib_1.Stack();
|
|
@@ -427,4 +415,4 @@ test('Confirm Log Bucket lifecycle rules persist', () => {
|
|
|
427
415
|
}
|
|
428
416
|
});
|
|
429
417
|
});
|
|
430
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWhlbHBlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiczMtYnVja2V0LWhlbHBlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFFSCw2Q0FBNkQ7QUFDN0QseUNBQXlDO0FBQ3pDLHdEQUF3RDtBQUN4RCxxQ0FBcUM7QUFDckMsdURBQWtEO0FBQ2xELCtDQUEwRDtBQUMxRCwrQ0FBbUQ7QUFFbkQsSUFBSSxDQUFDLDZFQUE2RSxFQUFFLEdBQUcsRUFBRTtJQUN2RixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLEVBQUUsQ0FBQztJQUUxQixJQUFJLENBQUM7UUFDSCxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtJQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLEVBQUUsQ0FBQztJQUUxQixNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUV0RSxNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRTFELE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRTtRQUNoRCxvQkFBb0IsRUFBRTtZQUNwQixx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QUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFO0lBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssRUFBRSxDQUFDO0lBRTFCLE1BQU0sNEJBQTRCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7UUFDakUsZUFBZSxFQUFFLEtBQUs7S0FDdkIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFELE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFckUsSUFBQSxnQ0FBa0IsRUFBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7UUFDM0Msb0JBQW9CLEVBQUUsRUFDckI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyw0Q0FBNEMsRUFBRyxHQUFHLEVBQUU7SUFDdkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxFQUFFLENBQUM7SUFFMUIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7UUFDNUIsa0JBQWtCLEVBQUU7WUFDbEIsY0FBYyxFQUFFO2dCQUNkO29CQUNFLFVBQVUsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQy9CO2FBQUM7U0FDTDtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUU7UUFDdEMsVUFBVSxFQUFFO1lBQ1Ysc0JBQXNCLEVBQUUsRUFBRTtTQUMzQjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRHVyYXRpb24sIFN0YWNrLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzbiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2Fzc2VydGlvbnMnO1xuaW1wb3J0IHsgQnVja2V0LCBTdG9yYWdlQ2xhc3MgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgZXhwZWN0Tm9uZXhpc3RlbmNlIH0gZnJvbSBcIi4vdGVzdC1oZWxwZXJcIjtcblxudGVzdCgnY2hlY2sgZXhjZXB0aW9uIGZvciBNaXNzaW5nIGV4aXN0aW5nQnVja2V0T2JqIGZyb20gcHJvcHMgZm9yIGRlcGxveSA9IGZhbHNlJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIHRyeSB7XG4gICAgZGVmYXVsdHMuYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZXhwZWN0KGUpLnRvQmVJbnN0YW5jZU9mKEVycm9yKTtcbiAgfVxufSk7XG5cbnRlc3QoJ3MzIGJ1Y2tldCB3aXRoIGJ1Y2tldElkJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHt9LCAnbXknKTtcblxuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5sb2dnaW5nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTMzo6QnVja2V0XCIsIHtcbiAgICBMb2dnaW5nQ29uZmlndXJhdGlvbjoge1xuICAgICAgRGVzdGluYXRpb25CdWNrZXROYW1lOiB7XG4gICAgICAgIFJlZjogXCJteVMzTG9nZ2luZ0J1Y2tldERFNDYxMzQ0XCJcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdzMyBidWNrZXQgd2l0aCBidWNrZXRQcm9wcycsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHN0YWNrLCB7XG4gICAgYnVja2V0UHJvcHM6IHtcbiAgICAgIGJ1Y2tldE5hbWU6ICdteWJ1Y2tldCdcbiAgICB9XG4gIH0pO1xuXG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIEJ1Y2tldE5hbWU6IFwibXlidWNrZXRcIlxuICB9KTtcbn0pO1xuXG50ZXN0KCdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHt9KTtcblxuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5sb2dnaW5nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTMzo6QnVja2V0XCIsIHtcbiAgICBCdWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IFtcbiAgICAgICAge1xuICAgICAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0OiB7XG4gICAgICAgICAgICBTU0VBbGdvcml0aG06IFwiQUVTMjU2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgQmxvY2tQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IHRydWUsXG4gICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgUmVzdHJpY3RQdWJsaWNCdWNrZXRzOiB0cnVlXG4gICAgfSxcbiAgICBWZXJzaW9uaW5nQ29uZmlndXJhdGlvbjoge1xuICAgICAgU3RhdHVzOiBcIkVuYWJsZWRcIlxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnczMgYnVja2V0IHdpdGggbGlmZSBjeWNsZSBwb2xpY3knLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTM0J1Y2tldChzdGFjaywge1xuICAgIGJ1Y2tldFByb3BzOiB7XG4gICAgICBsaWZlY3ljbGVSdWxlczogW3tcbiAgICAgICAgZXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cygzNjUpLFxuICAgICAgICB0cmFuc2l0aW9uczogW3tcbiAgICAgICAgICBzdG9yYWdlQ2xhc3M6IFN0b3JhZ2VDbGFzcy5JTkZSRVFVRU5UX0FDQ0VTUyxcbiAgICAgICAgICB0cmFuc2l0aW9uQWZ0ZXI6IER1cmF0aW9uLmRheXMoMzApXG4gICAgICAgIH0sIHtcbiAgICAgICAgICBzdG9yYWdlQ2xhc3M6IFN0b3JhZ2VDbGFzcy5HTEFDSUVSLFxuICAgICAgICAgIHRyYW5zaXRpb25BZnRlcjogRHVyYXRpb24uZGF5cyg5MClcbiAgICAgICAgfV1cbiAgICAgIH1dXG4gICAgfVxuICB9KTtcblxuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5sb2dnaW5nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTMzo6QnVja2V0XCIsIHtcbiAgICBMaWZlY3ljbGVDb25maWd1cmF0aW9uOiB7XG4gICAgICBSdWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgRXhwaXJhdGlvbkluRGF5czogMzY1LFxuICAgICAgICAgIFN0YXR1czogXCJFbmFibGVkXCIsXG4gICAgICAgICAgVHJhbnNpdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgU3RvcmFnZUNsYXNzOiBcIlNUQU5EQVJEX0lBXCIsXG4gICAgICAgICAgICAgIFRyYW5zaXRpb25JbkRheXM6IDMwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBTdG9yYWdlQ2xhc3M6IFwiR0xBQ0lFUlwiLFxuICAgICAgICAgICAgICBUcmFuc2l0aW9uSW5EYXlzOiA5MFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnczMgYnVja2V0IHdpdGggYWNjZXNzIGxvZ2dpbmcgY29uZmlndXJlZCcsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgbXlidWNrZXQgPSBuZXcgQnVja2V0KHN0YWNrLCAnbXlidWNrZXQnLCB7XG4gICAgc2VydmVyQWNjZXNzTG9nc0J1Y2tldDogbmV3IEJ1Y2tldChzdGFjaywgJ215YWNjZXNzbG9nYnVja2V0Jywge30pXG4gIH0pO1xuXG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHtcbiAgICBidWNrZXRQcm9wczoge1xuICAgICAgc2VydmVyQWNjZXNzTG9nc0J1Y2tldDogbXlidWNrZXRcbiAgICB9XG4gIH0pO1xuXG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICAvLyBUaGlzIHZhbHVlIHNob3VsZCBiZSBwb3B1bGF0ZWQsIGVudGVyZWQgSXNzdWUgOTA3XG4gIC8vIGV4cGVjdChyZXNwb25zZS5sb2dnaW5nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTMzo6QnVja2V0XCIsIHtcbiAgICBMb2dnaW5nQ29uZmlndXJhdGlvbjoge1xuICAgICAgRGVzdGluYXRpb25CdWNrZXROYW1lOiB7XG4gICAgICAgIFJlZjogXCJteWJ1Y2tldDE2MEY4MTMyXCJcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdDaGVjayBTMyBCdWNrZXQgcG9saWN5JywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRQb2xpY3lcIiwge1xuICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogXCJzMzoqXCIsXG4gICAgICAgICAgQ29uZGl0aW9uOiB7XG4gICAgICAgICAgICBCb29sOiB7XG4gICAgICAgICAgICAgIFwiYXdzOlNlY3VyZVRyYW5zcG9ydFwiOiBcImZhbHNlXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgRWZmZWN0OiBcIkRlbnlcIixcbiAgICAgICAgICBQcmluY2lwYWw6IHtcbiAgICAgICAgICAgIEFXUzogXCIqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFJlc291cmNlOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICAgICAgXCJTM0J1Y2tldDA3NjgyOTkzXCIsXG4gICAgICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcIkZuOjpKb2luXCI6IFtcbiAgICAgICAgICAgICAgICBcIlwiLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIlMzQnVja2V0MDc2ODI5OTNcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIkFyblwiXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIi8qXCJcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIixcbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdzMyBidWNrZXQgd2l0aCBMb2dnaW5nQnVja2V0IGFuZCB2ZXJzaW9uaW5nIHR1cm5lZCBvZmYnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IG15YnVja2V0ID0gbmV3IEJ1Y2tldChzdGFjaywgJ215YnVja2V0Jywge1xuICAgIHNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQ6IG5ldyBCdWNrZXQoc3RhY2ssICdteWFjY2Vzc2xvZ2J1Y2tldCcsIHt9KVxuICB9KTtcblxuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHN0YWNrLCB7XG4gICAgYnVja2V0UHJvcHM6IHtcbiAgICAgIHNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQ6IG15YnVja2V0LFxuICAgICAgc2VydmVyQWNjZXNzTG9nc1ByZWZpeDogJ2FjY2Vzcy1sb2dzJyxcbiAgICAgIHZlcnNpb25lZDogZmFsc2VcbiAgICB9XG4gIH0pO1xuXG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICAvLyBUaGUgbGluZSBiZWxvdyBmYWlscywgdGhpcyBhcHBlYXJzIHRvIGJlIGEgYnVnLiBFbnRlcmVkIElzc3VlIDkwNlxuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIEJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbjogW1xuICAgICAgICB7XG4gICAgICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ6IHtcbiAgICAgICAgICAgIFNTRUFsZ29yaXRobTogXCJBRVMyNTZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgTG9nZ2luZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIERlc3RpbmF0aW9uQnVja2V0TmFtZToge1xuICAgICAgICBSZWY6IFwibXlidWNrZXQxNjBGODEzMlwiXG4gICAgICB9LFxuICAgICAgTG9nRmlsZVByZWZpeDogXCJhY2Nlc3MtbG9nc1wiXG4gICAgfSxcbiAgICBQdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIEJsb2NrUHVibGljQWNsczogdHJ1ZSxcbiAgICAgIEJsb2NrUHVibGljUG9saWN5OiB0cnVlLFxuICAgICAgSWdub3JlUHVibGljQWNsczogdHJ1ZSxcbiAgICAgIFJlc3RyaWN0UHVibGljQnVja2V0czogdHJ1ZVxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnczMgYnVja2V0IHZlcnNpb25pbmcgdHVybmVkIG9mZicsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHN0YWNrLCB7XG4gICAgYnVja2V0UHJvcHM6IHtcbiAgICAgIHNlcnZlckFjY2Vzc0xvZ3NQcmVmaXg6ICdhY2Nlc3MtbG9ncycsXG4gICAgICB2ZXJzaW9uZWQ6IGZhbHNlXG4gICAgfVxuICB9KTtcblxuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5sb2dnaW5nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTMzo6QnVja2V0XCIsIHtcbiAgICBCdWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IFtcbiAgICAgICAge1xuICAgICAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0OiB7XG4gICAgICAgICAgICBTU0VBbGdvcml0aG06IFwiQUVTMjU2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIExvZ2dpbmdDb25maWd1cmF0aW9uOiB7XG4gICAgICBEZXN0aW5hdGlvbkJ1Y2tldE5hbWU6IHtcbiAgICAgICAgUmVmOiBcIlMzTG9nZ2luZ0J1Y2tldDgwMEEyQjI3XCJcbiAgICAgIH0sXG4gICAgICBMb2dGaWxlUHJlZml4OiBcImFjY2Vzcy1sb2dzXCJcbiAgICB9LFxuICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgQmxvY2tQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IHRydWUsXG4gICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgUmVzdHJpY3RQdWJsaWNCdWNrZXRzOiB0cnVlXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdzMyBidWNrZXQgd2l0aCBMb2dnaW5nQnVja2V0IGFuZCBhdXRvIGRlbGV0ZSBvYmplY3RzJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHtcbiAgICBsb2dnaW5nQnVja2V0UHJvcHM6IHtcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlXG4gICAgfVxuICB9KTtcblxuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5sb2dnaW5nQnVja2V0KS50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTMzo6QnVja2V0XCIsIHtcbiAgICBBY2Nlc3NDb250cm9sOiBcIkxvZ0RlbGl2ZXJ5V3JpdGVcIlxuICB9KTtcblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJDdXN0b206OlMzQXV0b0RlbGV0ZU9iamVjdHNcIiwge1xuICAgIFNlcnZpY2VUb2tlbjoge1xuICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgXCJDdXN0b21TM0F1dG9EZWxldGVPYmplY3RzQ3VzdG9tUmVzb3VyY2VQcm92aWRlckhhbmRsZXI5RDkwMTg0RlwiLFxuICAgICAgICBcIkFyblwiXG4gICAgICBdXG4gICAgfSxcbiAgICBCdWNrZXROYW1lOiB7XG4gICAgICBSZWY6IFwiUzNMb2dnaW5nQnVja2V0ODAwQTJCMjdcIlxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnczMgYnVja2V0IHZlcnNpb25pbmcgdHVybmVkIG9uJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHtcbiAgICBidWNrZXRQcm9wczoge1xuICAgICAgc2VydmVyQWNjZXNzTG9nc1ByZWZpeDogJ2FjY2Vzcy1sb2dzJyxcbiAgICB9XG4gIH0pO1xuXG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6UzM6OkJ1Y2tldFwiLCB7XG4gICAgQnVja2V0RW5jcnlwdGlvbjoge1xuICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdDoge1xuICAgICAgICAgICAgU1NFQWxnb3JpdGhtOiBcIkFFUzI1NlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBMaWZlY3ljbGVDb25maWd1cmF0aW9uOiB7XG4gICAgICBSdWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgTm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBTdG9yYWdlQ2xhc3M6IFwiR0xBQ0lFUlwiLFxuICAgICAgICAgICAgICBUcmFuc2l0aW9uSW5EYXlzOiA5MFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgU3RhdHVzOiBcIkVuYWJsZWRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBMb2dnaW5nQ29uZmlndXJhdGlvbjoge1xuICAgICAgRGVzdGluYXRpb25CdWNrZXROYW1lOiB7XG4gICAgICAgIFJlZjogXCJTM0xvZ2dpbmdCdWNrZXQ4MDBBMkIyN1wiXG4gICAgICB9LFxuICAgICAgTG9nRmlsZVByZWZpeDogXCJhY2Nlc3MtbG9nc1wiXG4gICAgfSxcbiAgICBQdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIEJsb2NrUHVibGljQWNsczogdHJ1ZSxcbiAgICAgIEJsb2NrUHVibGljUG9saWN5OiB0cnVlLFxuICAgICAgSWdub3JlUHVibGljQWNsczogdHJ1ZSxcbiAgICAgIFJlc3RyaWN0UHVibGljQnVja2V0czogdHJ1ZVxuICAgIH0sXG4gICAgVmVyc2lvbmluZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIFN0YXR1czogXCJFbmFibGVkXCJcbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ1N1cHByZXNzIGNmbi1uYWcgd2FybmluZyBmb3IgczMgYnVja2V0IG5vdGlmaWNhdGlvbicsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuICBjb25zdCBidWlsZFF1ZXVlUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFF1ZXVlKHN0YWNrLCBcIlMzQnVja2V0Tm90aWZpY2F0aW9uUXVldWVcIiwge30pO1xuICBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0LmFkZEV2ZW50Tm90aWZpY2F0aW9uKHMzLkV2ZW50VHlwZS5PQkpFQ1RfQ1JFQVRFRCwgbmV3IHMzbi5TcXNEZXN0aW5hdGlvbihidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUpKTtcbiAgZGVmYXVsdHMuYWRkQ2ZuTmFnUzNCdWNrZXROb3RpZmljYXRpb25SdWxlc1RvU3VwcHJlc3Moc3RhY2ssIFwiQnVja2V0Tm90aWZpY2F0aW9uc0hhbmRsZXIwNTBhMDU4N2I3NTQ0NTQ3YmYzMjVmMDk0YTNkYjgzNFwiKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlKFwiQVdTOjpMYW1iZGE6OkZ1bmN0aW9uXCIsIHtcbiAgICBNZXRhZGF0YToge1xuICAgICAgY2ZuX25hZzoge1xuICAgICAgICBydWxlc190b19zdXBwcmVzczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBcIlc1OFwiLFxuICAgICAgICAgICAgcmVhc29uOiBcIkxhbWJkYSBmdW5jdGlvbnMgaGFzIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9uIHRvIHdyaXRlIENsb3VkV2F0Y2ggTG9ncy4gSXQgdXNlcyBjdXN0b20gcG9saWN5IGluc3RlYWQgb2YgYXJuOmF3czppYW06OmF3czpwb2xpY3kvc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZSB3aXRoIHRpZ2h0ZXIgcGVybWlzc2lvbnMuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnVzg5JyxcbiAgICAgICAgICAgIHJlYXNvbjogYFRoaXMgaXMgbm90IGEgcnVsZSBmb3IgdGhlIGdlbmVyYWwgY2FzZSwganVzdCBmb3Igc3BlY2lmaWMgdXNlIGNhc2VzL2luZHVzdHJpZXNgXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ1c5MicsXG4gICAgICAgICAgICByZWFzb246IGBJbXBvc3NpYmxlIGZvciB1cyB0byBkZWZpbmUgdGhlIGNvcnJlY3QgY29uY3VycmVuY3kgZm9yIGNsaWVudHNgXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZShcIkFXUzo6SUFNOjpQb2xpY3lcIiwge1xuICAgIE1ldGFkYXRhOiB7XG4gICAgICBjZm5fbmFnOiB7XG4gICAgICAgIHJ1bGVzX3RvX3N1cHByZXNzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IFwiVzEyXCIsXG4gICAgICAgICAgICByZWFzb246IFwiQnVja2V0IHJlc291cmNlIGlzICcqJyBkdWUgdG8gY2lyY3VsYXIgZGVwZW5kZW5jeSB3aXRoIGJ1Y2tldCBhbmQgcm9sZSBjcmVhdGlvbiBhdCB0aGUgc2FtZSB0aW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ3Rlc3QgczNCdWNrZXQgcmVtb3ZhbFBvbGljeSBvdmVycmlkZScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHN0YWNrLCB7XG4gICAgYnVja2V0UHJvcHM6IHtcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9LFxuICB9LCAndGVzdC1idWNrZXQnKTtcblxuICBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spLmhhc1Jlc291cmNlKFwiQVdTOjpTMzo6QnVja2V0XCIsIHtcbiAgICBUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyxcbiAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICBBY2Nlc3NDb250cm9sOiBcIkxvZ0RlbGl2ZXJ5V3JpdGVcIlxuICAgIH0sXG4gICAgVXBkYXRlUmVwbGFjZVBvbGljeTogXCJEZWxldGVcIixcbiAgICBEZWxldGlvblBvbGljeTogXCJEZWxldGVcIlxuICB9KTtcbn0pO1xuXG50ZXN0KCdzMyBidWNrZXQgd2l0aCBsb2dnaW5nIHR1cm5lZCBvZmYnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgcmVzcGJ1aWxkUzNCdWNrZXRSZXNwb25zZW5zZSA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHtcbiAgICBsb2dTM0FjY2Vzc0xvZ3M6IGZhbHNlLFxuICB9KTtcblxuICBleHBlY3QocmVzcGJ1aWxkUzNCdWNrZXRSZXNwb25zZW5zZS5idWNrZXQpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChyZXNwYnVpbGRTM0J1Y2tldFJlc3BvbnNlbnNlLmxvZ2dpbmdCdWNrZXQpLm5vdC50b0JlRGVmaW5lZCgpO1xuXG4gIGV4cGVjdE5vbmV4aXN0ZW5jZShzdGFjaywgXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIExvZ2dpbmdDb25maWd1cmF0aW9uOiB7XG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdDb25maXJtIExvZyBCdWNrZXQgbGlmZWN5Y2xlIHJ1bGVzIHBlcnNpc3QnLCAgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHtcbiAgICBsb2dnaW5nQnVja2V0UHJvcHM6IHtcbiAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleHBpcmF0aW9uOiBEdXJhdGlvbi5kYXlzKDM2NSksXG4gICAgICAgIH1dLFxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZShcIkFXUzo6UzM6OkJ1Y2tldFwiLCB7XG4gICAgUHJvcGVydGllczoge1xuICAgICAgTGlmZWN5Y2xlQ29uZmlndXJhdGlvbjoge31cbiAgICB9XG4gIH0pO1xufSk7Il19
|
|
418
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWhlbHBlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiczMtYnVja2V0LWhlbHBlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFFSCw2Q0FBNkQ7QUFDN0QseUNBQXlDO0FBQ3pDLHdEQUF3RDtBQUN4RCxxQ0FBcUM7QUFDckMsdURBQWtEO0FBQ2xELCtDQUEwRDtBQUMxRCwrQ0FBbUQ7QUFFbkQsSUFBSSxDQUFDLDZFQUE2RSxFQUFFLEdBQUcsRUFBRTtJQUN2RixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLEVBQUUsQ0FBQztJQUUxQixJQUFJLENBQUM7UUFDSCxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtJQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLEVBQUUsQ0FBQztJQUUxQixNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUV0RSxNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRTFELE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRTtRQUNoRCxvQkFBb0IsRUFBRTtZQUNwQixx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SztLQUN2QixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVyRSxJQUFBLGdDQUFrQixFQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRTtRQUMzQyxvQkFBb0IsRUFBRSxFQUNyQjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLDRDQUE0QyxFQUFHLEdBQUcsRUFBRTtJQUN2RCxNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLEVBQUUsQ0FBQztJQUUxQixRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtRQUM1QixrQkFBa0IsRUFBRTtZQUNsQixjQUFjLEVBQUU7Z0JBQ2Q7b0JBQ0UsVUFBVSxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztpQkFDL0I7YUFBQztTQUNMO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRTtRQUN0QyxVQUFVLEVBQUU7WUFDVixzQkFBc0IsRUFBRSxFQUFFO1NBQzNCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBEdXJhdGlvbiwgU3RhY2ssIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgczNuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1ub3RpZmljYXRpb25zJztcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gJy4uL2luZGV4JztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnYXdzLWNkay1saWIvYXNzZXJ0aW9ucyc7XG5pbXBvcnQgeyBCdWNrZXQsIFN0b3JhZ2VDbGFzcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBleHBlY3ROb25leGlzdGVuY2UgfSBmcm9tIFwiLi90ZXN0LWhlbHBlclwiO1xuXG50ZXN0KCdjaGVjayBleGNlcHRpb24gZm9yIE1pc3NpbmcgZXhpc3RpbmdCdWNrZXRPYmogZnJvbSBwcm9wcyBmb3IgZGVwbG95ID0gZmFsc2UnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgdHJ5IHtcbiAgICBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBleHBlY3QoZSkudG9CZUluc3RhbmNlT2YoRXJyb3IpO1xuICB9XG59KTtcblxudGVzdCgnczMgYnVja2V0IHdpdGggYnVja2V0SWQnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTM0J1Y2tldChzdGFjaywge30sICdteScpO1xuXG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIExvZ2dpbmdDb25maWd1cmF0aW9uOiB7XG4gICAgICBEZXN0aW5hdGlvbkJ1Y2tldE5hbWU6IHtcbiAgICAgICAgUmVmOiBcIm15UzNMb2dnaW5nQnVja2V0REU0NjEzNDRcIlxuICAgICAgfVxuICAgIH0sXG4gIH0pO1xufSk7XG5cbnRlc3QoJ3MzIGJ1Y2tldCB3aXRoIGJ1Y2tldFByb3BzJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHtcbiAgICBidWNrZXRQcm9wczoge1xuICAgICAgYnVja2V0TmFtZTogJ215YnVja2V0J1xuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UubG9nZ2luZ0J1Y2tldCkudG9CZURlZmluZWQoKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6UzM6OkJ1Y2tldFwiLCB7XG4gICAgQnVja2V0TmFtZTogXCJteWJ1Y2tldFwiXG4gIH0pO1xufSk7XG5cbnRlc3QoJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTM0J1Y2tldChzdGFjaywge30pO1xuXG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIEJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbjogW1xuICAgICAgICB7XG4gICAgICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ6IHtcbiAgICAgICAgICAgIFNTRUFsZ29yaXRobTogXCJBRVMyNTZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uOiB7XG4gICAgICBCbG9ja1B1YmxpY0FjbHM6IHRydWUsXG4gICAgICBCbG9ja1B1YmxpY1BvbGljeTogdHJ1ZSxcbiAgICAgIElnbm9yZVB1YmxpY0FjbHM6IHRydWUsXG4gICAgICBSZXN0cmljdFB1YmxpY0J1Y2tldHM6IHRydWVcbiAgICB9LFxuICAgIFZlcnNpb25pbmdDb25maWd1cmF0aW9uOiB7XG4gICAgICBTdGF0dXM6IFwiRW5hYmxlZFwiXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdzMyBidWNrZXQgd2l0aCBsaWZlIGN5Y2xlIHBvbGljeScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHN0YWNrLCB7XG4gICAgYnVja2V0UHJvcHM6IHtcbiAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbe1xuICAgICAgICBleHBpcmF0aW9uOiBEdXJhdGlvbi5kYXlzKDM2NSksXG4gICAgICAgIHRyYW5zaXRpb25zOiBbe1xuICAgICAgICAgIHN0b3JhZ2VDbGFzczogU3RvcmFnZUNsYXNzLklORlJFUVVFTlRfQUNDRVNTLFxuICAgICAgICAgIHRyYW5zaXRpb25BZnRlcjogRHVyYXRpb24uZGF5cygzMClcbiAgICAgICAgfSwge1xuICAgICAgICAgIHN0b3JhZ2VDbGFzczogU3RvcmFnZUNsYXNzLkdMQUNJRVIsXG4gICAgICAgICAgdHJhbnNpdGlvbkFmdGVyOiBEdXJhdGlvbi5kYXlzKDkwKVxuICAgICAgICB9XVxuICAgICAgfV1cbiAgICB9XG4gIH0pO1xuXG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIExpZmVjeWNsZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgIFJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBFeHBpcmF0aW9uSW5EYXlzOiAzNjUsXG4gICAgICAgICAgU3RhdHVzOiBcIkVuYWJsZWRcIixcbiAgICAgICAgICBUcmFuc2l0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBTdG9yYWdlQ2xhc3M6IFwiU1RBTkRBUkRfSUFcIixcbiAgICAgICAgICAgICAgVHJhbnNpdGlvbkluRGF5czogMzBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFN0b3JhZ2VDbGFzczogXCJHTEFDSUVSXCIsXG4gICAgICAgICAgICAgIFRyYW5zaXRpb25JbkRheXM6IDkwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdzMyBidWNrZXQgd2l0aCBhY2Nlc3MgbG9nZ2luZyBjb25maWd1cmVkJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBteWJ1Y2tldCA9IG5ldyBCdWNrZXQoc3RhY2ssICdteWJ1Y2tldCcsIHtcbiAgICBzZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0OiBuZXcgQnVja2V0KHN0YWNrLCAnbXlhY2Nlc3Nsb2didWNrZXQnLCB7fSlcbiAgfSk7XG5cbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTM0J1Y2tldChzdGFjaywge1xuICAgIGJ1Y2tldFByb3BzOiB7XG4gICAgICBzZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0OiBteWJ1Y2tldFxuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQpLnRvQmVEZWZpbmVkKCk7XG4gIC8vIFRoaXMgdmFsdWUgc2hvdWxkIGJlIHBvcHVsYXRlZCwgZW50ZXJlZCBJc3N1ZSA5MDdcbiAgLy8gZXhwZWN0KHJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIExvZ2dpbmdDb25maWd1cmF0aW9uOiB7XG4gICAgICBEZXN0aW5hdGlvbkJ1Y2tldE5hbWU6IHtcbiAgICAgICAgUmVmOiBcIm15YnVja2V0MTYwRjgxMzJcIlxuICAgICAgfVxuICAgIH0sXG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NoZWNrIFMzIEJ1Y2tldCBwb2xpY3knLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHt9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6UzM6OkJ1Y2tldFBvbGljeVwiLCB7XG4gICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBcInMzOipcIixcbiAgICAgICAgICBDb25kaXRpb246IHtcbiAgICAgICAgICAgIEJvb2w6IHtcbiAgICAgICAgICAgICAgXCJhd3M6U2VjdXJlVHJhbnNwb3J0XCI6IFwiZmFsc2VcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBFZmZlY3Q6IFwiRGVueVwiLFxuICAgICAgICAgIFByaW5jaXBhbDoge1xuICAgICAgICAgICAgQVdTOiBcIipcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgICBcIlMzQnVja2V0MDc2ODI5OTNcIixcbiAgICAgICAgICAgICAgICBcIkFyblwiXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiRm46OkpvaW5cIjogW1xuICAgICAgICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiUzNCdWNrZXQwNzY4Mjk5M1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXJuXCJcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiLypcIlxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiLFxuICAgIH0sXG4gIH0pO1xufSk7XG5cbnRlc3QoJ3MzIGJ1Y2tldCB3aXRoIExvZ2dpbmdCdWNrZXQgYW5kIHZlcnNpb25pbmcgdHVybmVkIG9mZicsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgbXlidWNrZXQgPSBuZXcgQnVja2V0KHN0YWNrLCAnbXlidWNrZXQnLCB7XG4gICAgc2VydmVyQWNjZXNzTG9nc0J1Y2tldDogbmV3IEJ1Y2tldChzdGFjaywgJ215YWNjZXNzbG9nYnVja2V0Jywge30pXG4gIH0pO1xuXG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHtcbiAgICBidWNrZXRQcm9wczoge1xuICAgICAgc2VydmVyQWNjZXNzTG9nc0J1Y2tldDogbXlidWNrZXQsXG4gICAgICBzZXJ2ZXJBY2Nlc3NMb2dzUHJlZml4OiAnYWNjZXNzLWxvZ3MnLFxuICAgICAgdmVyc2lvbmVkOiBmYWxzZVxuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQpLnRvQmVEZWZpbmVkKCk7XG4gIC8vIFRoZSBsaW5lIGJlbG93IGZhaWxzLCB0aGlzIGFwcGVhcnMgdG8gYmUgYSBidWcuIEVudGVyZWQgSXNzdWUgOTA2XG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UubG9nZ2luZ0J1Y2tldCkudG9CZURlZmluZWQoKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6UzM6OkJ1Y2tldFwiLCB7XG4gICAgQnVja2V0RW5jcnlwdGlvbjoge1xuICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdDoge1xuICAgICAgICAgICAgU1NFQWxnb3JpdGhtOiBcIkFFUzI1NlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBMb2dnaW5nQ29uZmlndXJhdGlvbjoge1xuICAgICAgRGVzdGluYXRpb25CdWNrZXROYW1lOiB7XG4gICAgICAgIFJlZjogXCJteWJ1Y2tldDE2MEY4MTMyXCJcbiAgICAgIH0sXG4gICAgICBMb2dGaWxlUHJlZml4OiBcImFjY2Vzcy1sb2dzXCJcbiAgICB9LFxuICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgQmxvY2tQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IHRydWUsXG4gICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgUmVzdHJpY3RQdWJsaWNCdWNrZXRzOiB0cnVlXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdzMyBidWNrZXQgdmVyc2lvbmluZyB0dXJuZWQgb2ZmJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHtcbiAgICBidWNrZXRQcm9wczoge1xuICAgICAgc2VydmVyQWNjZXNzTG9nc1ByZWZpeDogJ2FjY2Vzcy1sb2dzJyxcbiAgICAgIHZlcnNpb25lZDogZmFsc2VcbiAgICB9XG4gIH0pO1xuXG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIEJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbjogW1xuICAgICAgICB7XG4gICAgICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ6IHtcbiAgICAgICAgICAgIFNTRUFsZ29yaXRobTogXCJBRVMyNTZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgTG9nZ2luZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIERlc3RpbmF0aW9uQnVja2V0TmFtZToge1xuICAgICAgICBSZWY6IFwiUzNMb2dnaW5nQnVja2V0ODAwQTJCMjdcIlxuICAgICAgfSxcbiAgICAgIExvZ0ZpbGVQcmVmaXg6IFwiYWNjZXNzLWxvZ3NcIlxuICAgIH0sXG4gICAgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uOiB7XG4gICAgICBCbG9ja1B1YmxpY0FjbHM6IHRydWUsXG4gICAgICBCbG9ja1B1YmxpY1BvbGljeTogdHJ1ZSxcbiAgICAgIElnbm9yZVB1YmxpY0FjbHM6IHRydWUsXG4gICAgICBSZXN0cmljdFB1YmxpY0J1Y2tldHM6IHRydWVcbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ3MzIGJ1Y2tldCB3aXRoIExvZ2dpbmdCdWNrZXQgYW5kIGF1dG8gZGVsZXRlIG9iamVjdHMnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTM0J1Y2tldChzdGFjaywge1xuICAgIGxvZ2dpbmdCdWNrZXRQcm9wczoge1xuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWVcbiAgICB9XG4gIH0pO1xuXG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIEFjY2Vzc0NvbnRyb2w6IFwiTG9nRGVsaXZlcnlXcml0ZVwiXG4gIH0pO1xuXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkN1c3RvbTo6UzNBdXRvRGVsZXRlT2JqZWN0c1wiLCB7XG4gICAgU2VydmljZVRva2VuOiB7XG4gICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICBcIkN1c3RvbVMzQXV0b0RlbGV0ZU9iamVjdHNDdXN0b21SZXNvdXJjZVByb3ZpZGVySGFuZGxlcjlEOTAxODRGXCIsXG4gICAgICAgIFwiQXJuXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIEJ1Y2tldE5hbWU6IHtcbiAgICAgIFJlZjogXCJTM0xvZ2dpbmdCdWNrZXQ4MDBBMkIyN1wiXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdzMyBidWNrZXQgdmVyc2lvbmluZyB0dXJuZWQgb24nLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTM0J1Y2tldChzdGFjaywge1xuICAgIGJ1Y2tldFByb3BzOiB7XG4gICAgICBzZXJ2ZXJBY2Nlc3NMb2dzUHJlZml4OiAnYWNjZXNzLWxvZ3MnLFxuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChidWlsZFMzQnVja2V0UmVzcG9uc2UubG9nZ2luZ0J1Y2tldCkudG9CZURlZmluZWQoKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTMzo6QnVja2V0XCIsIHtcbiAgICBCdWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IFtcbiAgICAgICAge1xuICAgICAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0OiB7XG4gICAgICAgICAgICBTU0VBbGdvcml0aG06IFwiQUVTMjU2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIExpZmVjeWNsZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgIFJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBOb25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFN0b3JhZ2VDbGFzczogXCJHTEFDSUVSXCIsXG4gICAgICAgICAgICAgIFRyYW5zaXRpb25JbkRheXM6IDkwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBTdGF0dXM6IFwiRW5hYmxlZFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIExvZ2dpbmdDb25maWd1cmF0aW9uOiB7XG4gICAgICBEZXN0aW5hdGlvbkJ1Y2tldE5hbWU6IHtcbiAgICAgICAgUmVmOiBcIlMzTG9nZ2luZ0J1Y2tldDgwMEEyQjI3XCJcbiAgICAgIH0sXG4gICAgICBMb2dGaWxlUHJlZml4OiBcImFjY2Vzcy1sb2dzXCJcbiAgICB9LFxuICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgQmxvY2tQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IHRydWUsXG4gICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgUmVzdHJpY3RQdWJsaWNCdWNrZXRzOiB0cnVlXG4gICAgfSxcbiAgICBWZXJzaW9uaW5nQ29uZmlndXJhdGlvbjoge1xuICAgICAgU3RhdHVzOiBcIkVuYWJsZWRcIlxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnU3VwcHJlc3MgY2ZuLW5hZyB3YXJuaW5nIGZvciBzMyBidWNrZXQgbm90aWZpY2F0aW9uJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBidWlsZFMzQnVja2V0UmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHN0YWNrLCB7fSk7XG4gIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUXVldWUoc3RhY2ssIFwiUzNCdWNrZXROb3RpZmljYXRpb25RdWV1ZVwiLCB7fSk7XG4gIGJ1aWxkUzNCdWNrZXRSZXNwb25zZS5idWNrZXQuYWRkRXZlbnROb3RpZmljYXRpb24oczMuRXZlbnRUeXBlLk9CSkVDVF9DUkVBVEVELCBuZXcgczNuLlNxc0Rlc3RpbmF0aW9uKGJ1aWxkUXVldWVSZXNwb25zZS5xdWV1ZSkpO1xuICBkZWZhdWx0cy5hZGRDZm5OYWdTM0J1Y2tldE5vdGlmaWNhdGlvblJ1bGVzVG9TdXBwcmVzcyhzdGFjaywgXCJCdWNrZXROb3RpZmljYXRpb25zSGFuZGxlcjA1MGEwNTg3Yjc1NDQ1NDdiZjMyNWYwOTRhM2RiODM0XCIpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2UoXCJBV1M6OkxhbWJkYTo6RnVuY3Rpb25cIiwge1xuICAgIE1ldGFkYXRhOiB7XG4gICAgICBjZm5fbmFnOiB7XG4gICAgICAgIHJ1bGVzX3RvX3N1cHByZXNzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IFwiVzU4XCIsXG4gICAgICAgICAgICByZWFzb246IFwiTGFtYmRhIGZ1bmN0aW9ucyBoYXMgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb24gdG8gd3JpdGUgQ2xvdWRXYXRjaCBMb2dzLiBJdCB1c2VzIGN1c3RvbSBwb2xpY3kgaW5zdGVhZCBvZiBhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlIHdpdGggdGlnaHRlciBwZXJtaXNzaW9ucy5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdXODknLFxuICAgICAgICAgICAgcmVhc29uOiBgVGhpcyBpcyBub3QgYSBydWxlIGZvciB0aGUgZ2VuZXJhbCBjYXNlLCBqdXN0IGZvciBzcGVjaWZpYyB1c2UgY2FzZXMvaW5kdXN0cmllc2BcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnVzkyJyxcbiAgICAgICAgICAgIHJlYXNvbjogYEltcG9zc2libGUgZm9yIHVzIHRvIGRlZmluZSB0aGUgY29ycmVjdCBjb25jdXJyZW5jeSBmb3IgY2xpZW50c2BcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG59KTtcblxudGVzdCgndGVzdCBzM0J1Y2tldCByZW1vdmFsUG9saWN5IG92ZXJyaWRlJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc3RhY2ssIHtcbiAgICBidWNrZXRQcm9wczoge1xuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH0sXG4gIH0sICd0ZXN0LWJ1Y2tldCcpO1xuXG4gIFRlbXBsYXRlLmZyb21TdGFjayhzdGFjaykuaGFzUmVzb3VyY2UoXCJBV1M6OlMzOjpCdWNrZXRcIiwge1xuICAgIFR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnLFxuICAgIFByb3BlcnRpZXM6IHtcbiAgICAgIEFjY2Vzc0NvbnRyb2w6IFwiTG9nRGVsaXZlcnlXcml0ZVwiXG4gICAgfSxcbiAgICBVcGRhdGVSZXBsYWNlUG9saWN5OiBcIkRlbGV0ZVwiLFxuICAgIERlbGV0aW9uUG9saWN5OiBcIkRlbGV0ZVwiXG4gIH0pO1xufSk7XG5cbnRlc3QoJ3MzIGJ1Y2tldCB3aXRoIGxvZ2dpbmcgdHVybmVkIG9mZicsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCByZXNwYnVpbGRTM0J1Y2tldFJlc3BvbnNlbnNlID0gZGVmYXVsdHMuYnVpbGRTM0J1Y2tldChzdGFjaywge1xuICAgIGxvZ1MzQWNjZXNzTG9nczogZmFsc2UsXG4gIH0pO1xuXG4gIGV4cGVjdChyZXNwYnVpbGRTM0J1Y2tldFJlc3BvbnNlbnNlLmJ1Y2tldCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHJlc3BidWlsZFMzQnVja2V0UmVzcG9uc2Vuc2UubG9nZ2luZ0J1Y2tldCkubm90LnRvQmVEZWZpbmVkKCk7XG5cbiAgZXhwZWN0Tm9uZXhpc3RlbmNlKHN0YWNrLCBcIkFXUzo6UzM6OkJ1Y2tldFwiLCB7XG4gICAgTG9nZ2luZ0NvbmZpZ3VyYXRpb246IHtcbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NvbmZpcm0gTG9nIEJ1Y2tldCBsaWZlY3ljbGUgcnVsZXMgcGVyc2lzdCcsICAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgZGVmYXVsdHMuYnVpbGRTM0J1Y2tldChzdGFjaywge1xuICAgIGxvZ2dpbmdCdWNrZXRQcm9wczoge1xuICAgICAgbGlmZWN5Y2xlUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMzY1KSxcbiAgICAgICAgfV0sXG4gICAgfVxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlKFwiQVdTOjpTMzo6QnVja2V0XCIsIHtcbiAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICBMaWZlY3ljbGVDb25maWd1cmF0aW9uOiB7fVxuICAgIH1cbiAgfSk7XG59KTsiXX0=
|