eoapi-cdk 5.3.0 → 5.4.1

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 CHANGED
@@ -3589,6 +3589,73 @@
3589
3589
  }
3590
3590
  },
3591
3591
  "types": {
3592
+ "eoapi-cdk.ApiCode": {
3593
+ "assembly": "eoapi-cdk",
3594
+ "datatype": true,
3595
+ "docs": {
3596
+ "stability": "experimental"
3597
+ },
3598
+ "fqn": "eoapi-cdk.ApiCode",
3599
+ "kind": "interface",
3600
+ "locationInModule": {
3601
+ "filename": "lib/ingestor-api/index.ts",
3602
+ "line": 326
3603
+ },
3604
+ "name": "ApiCode",
3605
+ "properties": [
3606
+ {
3607
+ "abstract": true,
3608
+ "docs": {
3609
+ "stability": "experimental",
3610
+ "summary": "Path to the source of the function or the location for dependencies, for the api lambda."
3611
+ },
3612
+ "immutable": true,
3613
+ "locationInModule": {
3614
+ "filename": "lib/ingestor-api/index.ts",
3615
+ "line": 331
3616
+ },
3617
+ "name": "entry",
3618
+ "type": {
3619
+ "primitive": "string"
3620
+ }
3621
+ },
3622
+ {
3623
+ "abstract": true,
3624
+ "docs": {
3625
+ "stability": "experimental",
3626
+ "summary": "The name of the exported handler in the `api_lambda_index` file."
3627
+ },
3628
+ "immutable": true,
3629
+ "locationInModule": {
3630
+ "filename": "lib/ingestor-api/index.ts",
3631
+ "line": 341
3632
+ },
3633
+ "name": "handler",
3634
+ "optional": true,
3635
+ "type": {
3636
+ "primitive": "string"
3637
+ }
3638
+ },
3639
+ {
3640
+ "abstract": true,
3641
+ "docs": {
3642
+ "stability": "experimental",
3643
+ "summary": "Path to the index file containing the exported handler, relative to `api_lambda_entry`."
3644
+ },
3645
+ "immutable": true,
3646
+ "locationInModule": {
3647
+ "filename": "lib/ingestor-api/index.ts",
3648
+ "line": 336
3649
+ },
3650
+ "name": "index",
3651
+ "optional": true,
3652
+ "type": {
3653
+ "primitive": "string"
3654
+ }
3655
+ }
3656
+ ],
3657
+ "symbolId": "lib/ingestor-api/index:ApiCode"
3658
+ },
3592
3659
  "eoapi-cdk.ApiEntrypoint": {
3593
3660
  "assembly": "eoapi-cdk",
3594
3661
  "datatype": true,
@@ -4208,6 +4275,73 @@
4208
4275
  ],
4209
4276
  "symbolId": "lib/database/index:DatabaseParameters"
4210
4277
  },
4278
+ "eoapi-cdk.IngestorCode": {
4279
+ "assembly": "eoapi-cdk",
4280
+ "datatype": true,
4281
+ "docs": {
4282
+ "stability": "experimental"
4283
+ },
4284
+ "fqn": "eoapi-cdk.IngestorCode",
4285
+ "kind": "interface",
4286
+ "locationInModule": {
4287
+ "filename": "lib/ingestor-api/index.ts",
4288
+ "line": 345
4289
+ },
4290
+ "name": "IngestorCode",
4291
+ "properties": [
4292
+ {
4293
+ "abstract": true,
4294
+ "docs": {
4295
+ "stability": "experimental",
4296
+ "summary": "Path to the source of the function or the location for dependencies, for the ingestor lambda."
4297
+ },
4298
+ "immutable": true,
4299
+ "locationInModule": {
4300
+ "filename": "lib/ingestor-api/index.ts",
4301
+ "line": 350
4302
+ },
4303
+ "name": "entry",
4304
+ "type": {
4305
+ "primitive": "string"
4306
+ }
4307
+ },
4308
+ {
4309
+ "abstract": true,
4310
+ "docs": {
4311
+ "stability": "experimental",
4312
+ "summary": "The name of the exported handler in the `ingestor_lambda_index` file."
4313
+ },
4314
+ "immutable": true,
4315
+ "locationInModule": {
4316
+ "filename": "lib/ingestor-api/index.ts",
4317
+ "line": 360
4318
+ },
4319
+ "name": "handler",
4320
+ "optional": true,
4321
+ "type": {
4322
+ "primitive": "string"
4323
+ }
4324
+ },
4325
+ {
4326
+ "abstract": true,
4327
+ "docs": {
4328
+ "stability": "experimental",
4329
+ "summary": "Path to the index file containing the exported handler, relative to `ingestor_lambda_entry`."
4330
+ },
4331
+ "immutable": true,
4332
+ "locationInModule": {
4333
+ "filename": "lib/ingestor-api/index.ts",
4334
+ "line": 355
4335
+ },
4336
+ "name": "index",
4337
+ "optional": true,
4338
+ "type": {
4339
+ "primitive": "string"
4340
+ }
4341
+ }
4342
+ ],
4343
+ "symbolId": "lib/ingestor-api/index:IngestorCode"
4344
+ },
4211
4345
  "eoapi-cdk.PgStacApiLambda": {
4212
4346
  "assembly": "eoapi-cdk",
4213
4347
  "base": "constructs.Construct",
@@ -4891,7 +5025,7 @@
4891
5025
  "kind": "interface",
4892
5026
  "locationInModule": {
4893
5027
  "filename": "lib/ingestor-api/index.ts",
4894
- "line": 238
5028
+ "line": 255
4895
5029
  },
4896
5030
  "name": "StacIngestorProps",
4897
5031
  "properties": [
@@ -4904,7 +5038,7 @@
4904
5038
  "immutable": true,
4905
5039
  "locationInModule": {
4906
5040
  "filename": "lib/ingestor-api/index.ts",
4907
- "line": 242
5041
+ "line": 259
4908
5042
  },
4909
5043
  "name": "dataAccessRole",
4910
5044
  "type": {
@@ -4920,7 +5054,7 @@
4920
5054
  "immutable": true,
4921
5055
  "locationInModule": {
4922
5056
  "filename": "lib/ingestor-api/index.ts",
4923
- "line": 257
5057
+ "line": 274
4924
5058
  },
4925
5059
  "name": "stacDbSecret",
4926
5060
  "type": {
@@ -4936,7 +5070,7 @@
4936
5070
  "immutable": true,
4937
5071
  "locationInModule": {
4938
5072
  "filename": "lib/ingestor-api/index.ts",
4939
- "line": 267
5073
+ "line": 284
4940
5074
  },
4941
5075
  "name": "stacDbSecurityGroup",
4942
5076
  "type": {
@@ -4952,7 +5086,7 @@
4952
5086
  "immutable": true,
4953
5087
  "locationInModule": {
4954
5088
  "filename": "lib/ingestor-api/index.ts",
4955
- "line": 247
5089
+ "line": 264
4956
5090
  },
4957
5091
  "name": "stacUrl",
4958
5092
  "type": {
@@ -4968,7 +5102,7 @@
4968
5102
  "immutable": true,
4969
5103
  "locationInModule": {
4970
5104
  "filename": "lib/ingestor-api/index.ts",
4971
- "line": 252
5105
+ "line": 269
4972
5106
  },
4973
5107
  "name": "stage",
4974
5108
  "type": {
@@ -4984,7 +5118,7 @@
4984
5118
  "immutable": true,
4985
5119
  "locationInModule": {
4986
5120
  "filename": "lib/ingestor-api/index.ts",
4987
- "line": 272
5121
+ "line": 289
4988
5122
  },
4989
5123
  "name": "subnetSelection",
4990
5124
  "type": {
@@ -5000,13 +5134,31 @@
5000
5134
  "immutable": true,
5001
5135
  "locationInModule": {
5002
5136
  "filename": "lib/ingestor-api/index.ts",
5003
- "line": 262
5137
+ "line": 279
5004
5138
  },
5005
5139
  "name": "vpc",
5006
5140
  "type": {
5007
5141
  "fqn": "aws-cdk-lib.aws_ec2.IVpc"
5008
5142
  }
5009
5143
  },
5144
+ {
5145
+ "abstract": true,
5146
+ "docs": {
5147
+ "default": "- default in the runtime folder.",
5148
+ "stability": "experimental",
5149
+ "summary": "Custom code for the ingestor api."
5150
+ },
5151
+ "immutable": true,
5152
+ "locationInModule": {
5153
+ "filename": "lib/ingestor-api/index.ts",
5154
+ "line": 316
5155
+ },
5156
+ "name": "apiCode",
5157
+ "optional": true,
5158
+ "type": {
5159
+ "fqn": "eoapi-cdk.ApiCode"
5160
+ }
5161
+ },
5010
5162
  {
5011
5163
  "abstract": true,
5012
5164
  "docs": {
@@ -5016,7 +5168,7 @@
5016
5168
  "immutable": true,
5017
5169
  "locationInModule": {
5018
5170
  "filename": "lib/ingestor-api/index.ts",
5019
- "line": 282
5171
+ "line": 299
5020
5172
  },
5021
5173
  "name": "apiEndpointConfiguration",
5022
5174
  "optional": true,
@@ -5033,7 +5185,7 @@
5033
5185
  "immutable": true,
5034
5186
  "locationInModule": {
5035
5187
  "filename": "lib/ingestor-api/index.ts",
5036
- "line": 277
5188
+ "line": 294
5037
5189
  },
5038
5190
  "name": "apiEnv",
5039
5191
  "optional": true,
@@ -5055,7 +5207,7 @@
5055
5207
  "immutable": true,
5056
5208
  "locationInModule": {
5057
5209
  "filename": "lib/ingestor-api/index.ts",
5058
- "line": 287
5210
+ "line": 304
5059
5211
  },
5060
5212
  "name": "apiPolicy",
5061
5213
  "optional": true,
@@ -5063,6 +5215,24 @@
5063
5215
  "fqn": "aws-cdk-lib.aws_iam.PolicyDocument"
5064
5216
  }
5065
5217
  },
5218
+ {
5219
+ "abstract": true,
5220
+ "docs": {
5221
+ "default": "- default in the runtime folder.",
5222
+ "stability": "experimental",
5223
+ "summary": "Custom code for the ingestor."
5224
+ },
5225
+ "immutable": true,
5226
+ "locationInModule": {
5227
+ "filename": "lib/ingestor-api/index.ts",
5228
+ "line": 323
5229
+ },
5230
+ "name": "ingestorCode",
5231
+ "optional": true,
5232
+ "type": {
5233
+ "fqn": "eoapi-cdk.IngestorCode"
5234
+ }
5235
+ },
5066
5236
  {
5067
5237
  "abstract": true,
5068
5238
  "docs": {
@@ -5072,7 +5242,7 @@
5072
5242
  "immutable": true,
5073
5243
  "locationInModule": {
5074
5244
  "filename": "lib/ingestor-api/index.ts",
5075
- "line": 292
5245
+ "line": 309
5076
5246
  },
5077
5247
  "name": "ingestorDomainNameOptions",
5078
5248
  "optional": true,
@@ -5304,9 +5474,9 @@
5304
5474
  {
5305
5475
  "abstract": true,
5306
5476
  "docs": {
5307
- "default": "- simplified version of fastapi-pgstac",
5477
+ "default": "- simplified version of tipg.",
5308
5478
  "stability": "experimental",
5309
- "summary": "Custom code to run for fastapi-pgstac."
5479
+ "summary": "Custom code to run for the application."
5310
5480
  },
5311
5481
  "immutable": true,
5312
5482
  "locationInModule": {
@@ -5373,7 +5543,7 @@
5373
5543
  "kind": "interface",
5374
5544
  "locationInModule": {
5375
5545
  "filename": "lib/titiler-pgstac-api/index.ts",
5376
- "line": 85
5546
+ "line": 95
5377
5547
  },
5378
5548
  "name": "TitilerPgStacApiLambdaProps",
5379
5549
  "properties": [
@@ -5386,7 +5556,7 @@
5386
5556
  "immutable": true,
5387
5557
  "locationInModule": {
5388
5558
  "filename": "lib/titiler-pgstac-api/index.ts",
5389
- "line": 95
5559
+ "line": 105
5390
5560
  },
5391
5561
  "name": "db",
5392
5562
  "type": {
@@ -5402,7 +5572,7 @@
5402
5572
  "immutable": true,
5403
5573
  "locationInModule": {
5404
5574
  "filename": "lib/titiler-pgstac-api/index.ts",
5405
- "line": 105
5575
+ "line": 115
5406
5576
  },
5407
5577
  "name": "dbSecret",
5408
5578
  "type": {
@@ -5418,7 +5588,7 @@
5418
5588
  "immutable": true,
5419
5589
  "locationInModule": {
5420
5590
  "filename": "lib/titiler-pgstac-api/index.ts",
5421
- "line": 100
5591
+ "line": 110
5422
5592
  },
5423
5593
  "name": "subnetSelection",
5424
5594
  "type": {
@@ -5434,7 +5604,7 @@
5434
5604
  "immutable": true,
5435
5605
  "locationInModule": {
5436
5606
  "filename": "lib/titiler-pgstac-api/index.ts",
5437
- "line": 90
5607
+ "line": 100
5438
5608
  },
5439
5609
  "name": "vpc",
5440
5610
  "type": {
@@ -5444,13 +5614,14 @@
5444
5614
  {
5445
5615
  "abstract": true,
5446
5616
  "docs": {
5617
+ "remarks": "These will be merged with `defaultTitilerPgstacEnv`.\nThe database secret arn is automatically added to the environment variables at deployment. \n/",
5447
5618
  "stability": "experimental",
5448
5619
  "summary": "Customized environment variables to send to titiler-pgstac runtime."
5449
5620
  },
5450
5621
  "immutable": true,
5451
5622
  "locationInModule": {
5452
5623
  "filename": "lib/titiler-pgstac-api/index.ts",
5453
- "line": 110
5624
+ "line": 121
5454
5625
  },
5455
5626
  "name": "apiEnv",
5456
5627
  "optional": true,
@@ -5472,7 +5643,7 @@
5472
5643
  "immutable": true,
5473
5644
  "locationInModule": {
5474
5645
  "filename": "lib/titiler-pgstac-api/index.ts",
5475
- "line": 115
5646
+ "line": 126
5476
5647
  },
5477
5648
  "name": "buckets",
5478
5649
  "optional": true,
@@ -5488,13 +5659,32 @@
5488
5659
  {
5489
5660
  "abstract": true,
5490
5661
  "docs": {
5662
+ "default": "- defined in the construct.",
5663
+ "stability": "experimental",
5664
+ "summary": "Optional settings for the titiler-pgstac python lambda function."
5665
+ },
5666
+ "immutable": true,
5667
+ "locationInModule": {
5668
+ "filename": "lib/titiler-pgstac-api/index.ts",
5669
+ "line": 140
5670
+ },
5671
+ "name": "pythonLambdaOptions",
5672
+ "optional": true,
5673
+ "type": {
5674
+ "fqn": "eoapi-cdk.TitilerPgstacPythonLambdaOptions"
5675
+ }
5676
+ },
5677
+ {
5678
+ "abstract": true,
5679
+ "docs": {
5680
+ "default": "- undefined.",
5491
5681
  "stability": "experimental",
5492
5682
  "summary": "Custom Domain Name Options for Titiler Pgstac API,."
5493
5683
  },
5494
5684
  "immutable": true,
5495
5685
  "locationInModule": {
5496
5686
  "filename": "lib/titiler-pgstac-api/index.ts",
5497
- "line": 120
5687
+ "line": 133
5498
5688
  },
5499
5689
  "name": "titilerPgstacApiDomainName",
5500
5690
  "optional": true,
@@ -5518,7 +5708,7 @@
5518
5708
  },
5519
5709
  "locationInModule": {
5520
5710
  "filename": "lib/titiler-pgstac-api/index.ts",
5521
- "line": 20
5711
+ "line": 40
5522
5712
  },
5523
5713
  "parameters": [
5524
5714
  {
@@ -5544,7 +5734,7 @@
5544
5734
  "kind": "class",
5545
5735
  "locationInModule": {
5546
5736
  "filename": "lib/titiler-pgstac-api/index.ts",
5547
- "line": 16
5737
+ "line": 36
5548
5738
  },
5549
5739
  "name": "TitilerPgstacApiLambda",
5550
5740
  "properties": [
@@ -5555,7 +5745,7 @@
5555
5745
  "immutable": true,
5556
5746
  "locationInModule": {
5557
5747
  "filename": "lib/titiler-pgstac-api/index.ts",
5558
- "line": 17
5748
+ "line": 37
5559
5749
  },
5560
5750
  "name": "url",
5561
5751
  "type": {
@@ -5568,7 +5758,7 @@
5568
5758
  },
5569
5759
  "locationInModule": {
5570
5760
  "filename": "lib/titiler-pgstac-api/index.ts",
5571
- "line": 18
5761
+ "line": 38
5572
5762
  },
5573
5763
  "name": "titilerPgstacLambdaFunction",
5574
5764
  "type": {
@@ -5577,8 +5767,140 @@
5577
5767
  }
5578
5768
  ],
5579
5769
  "symbolId": "lib/titiler-pgstac-api/index:TitilerPgstacApiLambda"
5770
+ },
5771
+ "eoapi-cdk.TitilerPgstacPythonLambdaOptions": {
5772
+ "assembly": "eoapi-cdk",
5773
+ "datatype": true,
5774
+ "docs": {
5775
+ "stability": "experimental"
5776
+ },
5777
+ "fqn": "eoapi-cdk.TitilerPgstacPythonLambdaOptions",
5778
+ "kind": "interface",
5779
+ "locationInModule": {
5780
+ "filename": "lib/titiler-pgstac-api/index.ts",
5781
+ "line": 145
5782
+ },
5783
+ "name": "TitilerPgstacPythonLambdaOptions",
5784
+ "properties": [
5785
+ {
5786
+ "abstract": true,
5787
+ "docs": {
5788
+ "stability": "experimental",
5789
+ "summary": "The system architectures compatible with this lambda function."
5790
+ },
5791
+ "immutable": true,
5792
+ "locationInModule": {
5793
+ "filename": "lib/titiler-pgstac-api/index.ts",
5794
+ "line": 181
5795
+ },
5796
+ "name": "architecture",
5797
+ "type": {
5798
+ "fqn": "aws-cdk-lib.aws_lambda.Architecture"
5799
+ }
5800
+ },
5801
+ {
5802
+ "abstract": true,
5803
+ "docs": {
5804
+ "stability": "experimental",
5805
+ "summary": "Path to the source of the function or the location for dependencies."
5806
+ },
5807
+ "immutable": true,
5808
+ "locationInModule": {
5809
+ "filename": "lib/titiler-pgstac-api/index.ts",
5810
+ "line": 150
5811
+ },
5812
+ "name": "entry",
5813
+ "type": {
5814
+ "primitive": "string"
5815
+ }
5816
+ },
5817
+ {
5818
+ "abstract": true,
5819
+ "docs": {
5820
+ "stability": "experimental",
5821
+ "summary": "The name of the exported handler in the index file."
5822
+ },
5823
+ "immutable": true,
5824
+ "locationInModule": {
5825
+ "filename": "lib/titiler-pgstac-api/index.ts",
5826
+ "line": 165
5827
+ },
5828
+ "name": "handler",
5829
+ "type": {
5830
+ "primitive": "string"
5831
+ }
5832
+ },
5833
+ {
5834
+ "abstract": true,
5835
+ "docs": {
5836
+ "stability": "experimental",
5837
+ "summary": "The path (relative to entry) to the index file containing the exported handler."
5838
+ },
5839
+ "immutable": true,
5840
+ "locationInModule": {
5841
+ "filename": "lib/titiler-pgstac-api/index.ts",
5842
+ "line": 161
5843
+ },
5844
+ "name": "index",
5845
+ "type": {
5846
+ "primitive": "string"
5847
+ }
5848
+ },
5849
+ {
5850
+ "abstract": true,
5851
+ "docs": {
5852
+ "stability": "experimental",
5853
+ "summary": "The amount of memory, in MB, that is allocated to your Lambda function."
5854
+ },
5855
+ "immutable": true,
5856
+ "locationInModule": {
5857
+ "filename": "lib/titiler-pgstac-api/index.ts",
5858
+ "line": 176
5859
+ },
5860
+ "name": "memorySize",
5861
+ "type": {
5862
+ "primitive": "number"
5863
+ }
5864
+ },
5865
+ {
5866
+ "abstract": true,
5867
+ "docs": {
5868
+ "remarks": "Only runtimes of the Python family are\nsupported.",
5869
+ "stability": "experimental",
5870
+ "summary": "The runtime environment."
5871
+ },
5872
+ "immutable": true,
5873
+ "locationInModule": {
5874
+ "filename": "lib/titiler-pgstac-api/index.ts",
5875
+ "line": 155
5876
+ },
5877
+ "name": "runtime",
5878
+ "type": {
5879
+ "fqn": "aws-cdk-lib.aws_lambda.Runtime"
5880
+ }
5881
+ },
5882
+ {
5883
+ "abstract": true,
5884
+ "docs": {
5885
+ "remarks": "Use this to specify custom bundling options like\nthe bundling Docker image, asset hash type, custom hash, architecture, etc.",
5886
+ "stability": "experimental",
5887
+ "summary": "Bundling options to use for this function."
5888
+ },
5889
+ "immutable": true,
5890
+ "locationInModule": {
5891
+ "filename": "lib/titiler-pgstac-api/index.ts",
5892
+ "line": 171
5893
+ },
5894
+ "name": "bundling",
5895
+ "optional": true,
5896
+ "type": {
5897
+ "fqn": "aws-cdk-lib.BundlingOptions"
5898
+ }
5899
+ }
5900
+ ],
5901
+ "symbolId": "lib/titiler-pgstac-api/index:TitilerPgstacPythonLambdaOptions"
5580
5902
  }
5581
5903
  },
5582
- "version": "5.3.0",
5583
- "fingerprint": "xaJ5JxX0D7rKagYaYvOlg9jlky8AnyKw+GXghxm0MzI="
5904
+ "version": "5.4.1",
5905
+ "fingerprint": "hTCv7DqtveC7nNvel4GCkz3D2/k51kLuUlMRzI/PlY8="
5584
5906
  }
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [5.4.1](https://github.com/developmentseed/eoapi-cdk/compare/v5.4.0...v5.4.1) (2023-10-05)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * synchronize pgstac versions -> 0.7.9 across constructs ([c6bb921](https://github.com/developmentseed/eoapi-cdk/commit/c6bb9213f745f1161d193b120083fac1e7943eb5))
7
+
8
+ # [5.4.0](https://github.com/developmentseed/eoapi-cdk/compare/v5.3.0...v5.4.0) (2023-09-05)
9
+
10
+
11
+ ### Features
12
+
13
+ * custom runtimes option for titiler and ingestor ([#66](https://github.com/developmentseed/eoapi-cdk/issues/66)) ([3aaedae](https://github.com/developmentseed/eoapi-cdk/commit/3aaedaef86da558eac163348771a545b789ed8b9))
14
+
1
15
  # [5.3.0](https://github.com/developmentseed/eoapi-cdk/compare/v5.2.0...v5.3.0) (2023-09-01)
2
16
 
3
17
 
@@ -158,5 +158,5 @@ class BastionHost extends constructs_1.Construct {
158
158
  }
159
159
  exports.BastionHost = BastionHost;
160
160
  _a = JSII_RTTI_SYMBOL_1;
161
- BastionHost[_a] = { fqn: "eoapi-cdk.BastionHost", version: "5.3.0" };
161
+ BastionHost[_a] = { fqn: "eoapi-cdk.BastionHost", version: "5.4.1" };
162
162
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQU1xQjtBQUNyQiwyQ0FBdUM7QUFFdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpR0c7QUFDSCxNQUFhLFdBQVksU0FBUSxzQkFBUztJQUd4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkscUJBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUNyRCxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUscUJBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ2pELFlBQVksRUFBRSxHQUFHLFNBQVMsZUFBZTtZQUN6QyxZQUFZLEVBQUUscUJBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUMvQixxQkFBRyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFDckMscUJBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN0QjtZQUNELFlBQVksRUFBRSxxQkFBRyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsVUFBVSxFQUFFLHFCQUFHLENBQUMscUJBQXFCLENBQUMsY0FBYztnQkFDcEQsT0FBTyxFQUFFLHFCQUFHLENBQUMsa0JBQWtCLENBQUMsTUFBTTthQUN2QyxDQUFDO1lBQ0YsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLHlCQUF5QixFQUFFLElBQUk7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsb0JBQW9CO1FBQ3BCLElBQUksS0FBSyxDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUU7WUFDakMsSUFBSSxxQkFBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVO2dCQUNwQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO2FBQzFDLENBQUMsQ0FBQztTQUNKO1FBRUQsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDL0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUN0QyxxQkFBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQ2xCLG9DQUFvQyxDQUNyQyxDQUFDO1FBRUYsa0NBQWtDO1FBQ2xDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ2pDLHFCQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDbkIscUJBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQ2pDLFlBQVksQ0FDYixDQUFDO1NBQ0g7UUFFRCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQzNCLElBQUkscUJBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsT0FBTyxFQUFFO2dCQUNQLGVBQWU7Z0JBQ2YsK0JBQStCO2dCQUMvQixlQUFlO2FBQ2hCO1lBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ2pCLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUN4QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVO1lBQy9CLFVBQVUsRUFBRSxHQUFHLFNBQVMsY0FBYztTQUN2QyxDQUFDLENBQUM7UUFDSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUFFO1lBQy9DLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtZQUNyQyxVQUFVLEVBQUUsR0FBRyxTQUFTLHFCQUFxQjtTQUM5QyxDQUFDLENBQUM7UUFDSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLGlDQUFpQyxFQUFFO1lBQ3JELEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQjtZQUMxQyxVQUFVLEVBQUUsR0FBRyxTQUFTLGtCQUFrQjtTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXpFSCxrQ0EwRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTdGFjayxcbiAgYXdzX2VjMiBhcyBlYzIsXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3NfcmRzIGFzIHJkcyxcbiAgQ2ZuT3V0cHV0LFxufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbi8qKlxuICogVGhlIGRhdGFiYXNlIGlzIGxvY2F0ZWQgaW4gYW4gaXNvbGF0ZWQgc3VibmV0LCBtZWFuaW5nIHRoYXQgaXQgaXMgbm90IGFjY2Vzc2libGUgZnJvbSB0aGUgcHVibGljIGludGVybmV0LiBBcyBzdWNoLCB0byBpbnRlcmFjdCB3aXRoIHRoZSBkYXRhYmFzZSBkaXJlY3RseSwgYSB1c2VyIG11c3QgdHVubmVsIHRocm91Z2ggYSBiYXN0aW9uIGhvc3QuXG4gKlxuICogIyMjIENvbmZpZ3VyaW5nXG4gKlxuICogVGhpcyBjb2RlYmFzZSBjb250cm9scyBfd2hvXyBpcyBhbGxvd2VkIHRvIGNvbm5lY3QgdG8gdGhlIGJhc3Rpb24gaG9zdC4gVGhpcyByZXF1aXJlcyB0d28gc3RlcHM6XG4gKlxuICogMS4gQWRkaW5nIHRoZSBJUCBhZGRyZXNzIGZyb20gd2hpY2ggeW91IGFyZSBjb25uZWN0aW5nIHRvIHRoZSBgaXB2NEFsbG93bGlzdGAgYXJyYXlcbiAqIDEuIENyZWF0aW5nIGEgYmFzdGlvbiBob3N0IHN5c3RlbSB1c2VyIGJ5IGFkZGluZyB0aGUgdXNlcidzIGNvbmZpZ3VyYXRpb24gaW5mb3JtIHRvIGB1c2VyZGF0YS55YW1sYFxuICpcbiAqICMjIyMgQWRkaW5nIGFuIElQIGFkZHJlc3MgdG8gdGhlIGBpcHY0QWxsb3dsaXN0YCBhcnJheVxuICpcbiAqIFRoZSBgQmFzdGlvbkhvc3RgIGNvbnN0cnVjdCB0YWtlcyBpbiBhbiBgaXB2NEFsbG93bGlzdGAgYXJyYXkgYXMgYW4gYXJndW1lbnQuIEZpbmQgeW91ciBJUCBhZGRyZXNzIChlZyBgY3VybCBhcGkuaXBpZnkub3JnYCkgYW5kIGFkZCB0aGF0IHRvIHRoZSBhcnJheSBhbG9uZyB3aXRoIHRoZSB0cmFpbGluZyBDSURSIGJsb2NrIChsaWtlbHkgYC8zMmAgdG8gaW5kaWNhdGUgdGhhdCB5b3UgYXJlIGFkZGluZyBhIHNpbmdsZSBJUCBhZGRyZXNzKS5cbiAqXG4gKiAjIyMjIENyZWF0aW5nIGEgdXNlciB2aWEgYHVzZXJkYXRhLnlhbWxgXG4gKlxuICogQWRkIGFuIGVudHJ5IHRvIHRoZSBgdXNlcnNgIGFycmF5IHdpdGggYSB1c2VybmFtZSAobGlrZWx5IG1hdGNoaW5nIHlvdXIgbG9jYWwgc3lzdGVtcyB1c2VybmFtZSwgd2hpY2ggeW91IGNhbiBnZXQgYnkgcnVubmluZyB0aGUgYHdob2FtaWAgY29tbWFuZCBpbiB5b3VyIHRlcm1pbmFsKSBhbmQgYSBwdWJsaWMga2V5IChsaWtlbHkgeW91ciBkZWZhdWx0IHB1YmxpYyBrZXksIHdoaWNoIHlvdSBjYW4gZ2V0IGJ5IHJ1bm5pbmcgYGNhdCB+Ly5zc2gvaWRfKi5wdWJgIGluIHlvdXIgdGVybWluYWwpLlxuICpcbiAqICMjIyMgVGlwcyAmIFRyaWNrcyB3aGVuIHVzaW5nIHRoZSBCYXN0aW9uIEhvc3RcbiAqXG4gKiAqKkNvbm5lY3RpbmcgdG8gUkRTIEluc3RhbmNlIHZpYSBTU00qKlxuICpcbiAqIGBgYHNoXG4gKiBhd3Mgc3NtIHN0YXJ0LXNlc3Npb24gLS10YXJnZXQgJElOU1RBTkNFX0lEIFxcXG4gKiAtLWRvY3VtZW50LW5hbWUgQVdTLVN0YXJ0UG9ydEZvcndhcmRpbmdTZXNzaW9uVG9SZW1vdGVIb3N0IFxcXG4gKiAtLXBhcmFtZXRlcnMgJ3tcbiAqIFwiaG9zdFwiOiBbXG4gKiBcImV4YW1wbGUtZGIuYzVhYmNkZWZnaGlqLnVzLXdlc3QtMi5yZHMuYW1hem9uYXdzLmNvbVwiXG4gKiBdLFxuICogXCJwb3J0TnVtYmVyXCI6IFtcbiAqIFwiNTQzMlwiXG4gKiBdLFxuICogXCJsb2NhbFBvcnROdW1iZXJcIjogW1xuICogXCI5OTk5XCJcbiAqIF1cbiAqIH0nIFxcXG4gKiAtLXByb2ZpbGUgJEFXU19QUk9GSUxFXG4gKiBgYGBcbiAqXG4gKiBgYGBzaFxuICogcHNxbCAtaCBsb2NhbGhvc3QgLXAgOTk5OSAjIGNvbnRpbnVlIGFkZGluZyB1c2VybmFtZSAoLVUpIGFuZCBkYiAoLWQpIGhlcmUuLi5cbiAqIGBgYFxuICpcbiAqIENvbm5lY3QgZGlyZWN0bHkgdG8gQmFzdGlvbiBIb3N0OlxuICpcbiAqIGBgYHNoXG4gKiBhd3Mgc3NtIHN0YXJ0LXNlc3Npb24gLS10YXJnZXQgJElOU1RBTkNFX0lEIC0tcHJvZmlsZSAkQVdTX1BST0ZJTEVcbiAqIGBgYFxuICpcbiAqICoqU2V0dGluZyB1cCBhbiBTU0ggdHVubmVsKipcbiAqXG4gKiBJbiB5b3VyIGB+Ly5zc2gvY29uZmlnYCBmaWxlLCBhZGQgYW4gZW50cnkgbGlrZTpcbiAqXG4gKiBgYGBcbiAqIEhvc3QgZGItdHVubmVsXG4gKiBIb3N0bmFtZSB7dGhlLWJhc3Rpb24taG9zdC1hZGRyZXNzfVxuICogTG9jYWxGb3J3YXJkIDk5OTkge3RoZS1kYi1ob3N0bmFtZX06NTQzMlxuICogYGBgXG4gKlxuICogVGhlbiBhIHR1bm5lbCBjYW4gYmUgb3BlbmVkIHZpYTpcbiAqXG4gKiBgYGBcbiAqIHNzaCAtTiBkYi10dW5uZWxcbiAqIGBgYFxuICpcbiAqIEFuZCBhIGNvbm5lY3Rpb24gdG8gdGhlIERCIGNhbiBiZSBtYWRlIHZpYTpcbiAqXG4gKiBgYGBcbiAqIHBzcWwgLWggMTI3LjAuMC4xIC1wIDk5OTkgLVUge3VzZXJuYW1lfSAtZCB7ZGF0YWJhc2V9XG4gKiBgYGBcbiAqXG4gKiAqKkhhbmRsaW5nIGBSRU1PVEUgSE9TVCBJREVOVElGSUNBVElPTiBIQVMgQ0hBTkdFRCFgIGVycm9yKipcbiAqXG4gKiBJZiB5b3UndmUgcmVkZXBsb3llZCBhIGJhc3Rpb24gaG9zdCB0aGF0IHlvdSd2ZSBwcmV2aW91c2x5IGNvbm5lY3RlZCB0bywgeW91IG1heSBzZWUgYW4gZXJyb3IgbGlrZTpcbiAqXG4gKiBgYGBcbiAqIEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAXG4gKiBAICAgIFdBUk5JTkc6IFJFTU9URSBIT1NUIElERU5USUZJQ0FUSU9OIEhBUyBDSEFOR0VEISAgICAgQFxuICogQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBcbiAqIElUIElTIFBPU1NJQkxFIFRIQVQgU09NRU9ORSBJUyBET0lORyBTT01FVEhJTkcgTkFTVFkhXG4gKiBTb21lb25lIGNvdWxkIGJlIGVhdmVzZHJvcHBpbmcgb24geW91IHJpZ2h0IG5vdyAobWFuLWluLXRoZS1taWRkbGUgYXR0YWNrKSFcbiAqIEl0IGlzIGFsc28gcG9zc2libGUgdGhhdCBhIGhvc3Qga2V5IGhhcyBqdXN0IGJlZW4gY2hhbmdlZC5cbiAqIFRoZSBmaW5nZXJwcmludCBmb3IgdGhlIEVDRFNBIGtleSBzZW50IGJ5IHRoZSByZW1vdGUgaG9zdCBpc1xuICogU0hBMjU2Om1QbnhBT1hUcGIwNlBGZ0kxUWM4VE1RMmU5Yjdnb1U4eTJOZFM1aHpJcjguXG4gKiBQbGVhc2UgY29udGFjdCB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yLlxuICogQWRkIGNvcnJlY3QgaG9zdCBrZXkgaW4gL1VzZXJzL3VzZXJuYW1lLy5zc2gva25vd25faG9zdHMgdG8gZ2V0IHJpZCBvZiB0aGlzIG1lc3NhZ2UuXG4gKiBPZmZlbmRpbmcgRUNEU0Ega2V5IGluIC9Vc2Vycy91c2VybmFtZS8uc3NoL2tub3duX2hvc3RzOjI4XG4gKiBFQ0RTQSBob3N0IGtleSBmb3IgZWMyLTEyLTM0LTU2LTc4OS51cy13ZXN0LTIuY29tcHV0ZS5hbWF6b25hd3MuY29tIGhhcyBjaGFuZ2VkIGFuZCB5b3UgaGF2ZSByZXF1ZXN0ZWQgc3RyaWN0IGNoZWNraW5nLlxuICogSG9zdCBrZXkgdmVyaWZpY2F0aW9uIGZhaWxlZC5cbiAqIGBgYFxuICpcbiAqIFRoaXMgaXMgZHVlIHRvIHRoZSBzZXJ2ZXIncyBmaW5nZXJwcmludCBjaGFuZ2luZy4gV2UgY2FuIHNjcnViIHRoZSBmaW5nZXJwcmludCBmcm9tIG91ciBzeXN0ZW0gd2l0aCBhIGNvbW1hbmQgbGlrZTpcbiAqXG4gKiBgYGBcbiAqIHNzaC1rZXlnZW4gLVIgMTIuMzQuNTYuNzg5XG4gKiBgYGBcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXN0aW9uSG9zdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGluc3RhbmNlOiBlYzIuSW5zdGFuY2U7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJhc3Rpb25Ib3N0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgeyBzdGFja05hbWUgfSA9IFN0YWNrLm9mKHRoaXMpO1xuXG4gICAgLy8gQnVpbGQgZWMyIGluc3RhbmNlXG4gICAgdGhpcy5pbnN0YW5jZSA9IG5ldyBlYzIuSW5zdGFuY2UodGhpcywgXCJiYXN0aW9uLWhvc3RcIiwge1xuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiB7IHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyB9LFxuICAgICAgaW5zdGFuY2VOYW1lOiBgJHtzdGFja05hbWV9IGJhc3Rpb24gaG9zdGAsXG4gICAgICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGUub2YoXG4gICAgICAgIGVjMi5JbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTRfR1JBVklUT04sXG4gICAgICAgIGVjMi5JbnN0YW5jZVNpemUuTkFOT1xuICAgICAgKSxcbiAgICAgIG1hY2hpbmVJbWFnZTogZWMyLk1hY2hpbmVJbWFnZS5sYXRlc3RBbWF6b25MaW51eCh7XG4gICAgICAgIGdlbmVyYXRpb246IGVjMi5BbWF6b25MaW51eEdlbmVyYXRpb24uQU1BWk9OX0xJTlVYXzIsXG4gICAgICAgIGNwdVR5cGU6IGVjMi5BbWF6b25MaW51eENwdVR5cGUuQVJNXzY0LFxuICAgICAgfSksXG4gICAgICB1c2VyRGF0YTogcHJvcHMudXNlckRhdGEsXG4gICAgICB1c2VyRGF0YUNhdXNlc1JlcGxhY2VtZW50OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gQXNzaWduIGVsYXN0aWMgSVBcbiAgICBpZiAocHJvcHMuY3JlYXRlRWxhc3RpY0lwID8/IHRydWUpIHtcbiAgICAgIG5ldyBlYzIuQ2ZuRUlQKHRoaXMsIFwiSVBcIiwge1xuICAgICAgICBpbnN0YW5jZUlkOiB0aGlzLmluc3RhbmNlLmluc3RhbmNlSWQsXG4gICAgICAgIHRhZ3M6IFt7IGtleTogXCJOYW1lXCIsIHZhbHVlOiBzdGFja05hbWUgfV0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBBbGxvdyBiYXN0aW9uIGhvc3QgdG8gY29ubmVjdCB0byBkYlxuICAgIHRoaXMuaW5zdGFuY2UuY29ubmVjdGlvbnMuYWxsb3dUbyhcbiAgICAgIHByb3BzLmRiLmNvbm5lY3Rpb25zLnNlY3VyaXR5R3JvdXBzWzBdLFxuICAgICAgZWMyLlBvcnQudGNwKDU0MzIpLFxuICAgICAgXCJBbGxvdyBjb25uZWN0aW9uIGZyb20gYmFzdGlvbiBob3N0XCJcbiAgICApO1xuXG4gICAgLy8gQWxsb3cgSVAgYWNjZXNzIHRvIGJhc3Rpb24gaG9zdFxuICAgIGZvciAoY29uc3QgaXB2NCBvZiBwcm9wcy5pcHY0QWxsb3dsaXN0KSB7XG4gICAgICB0aGlzLmluc3RhbmNlLmNvbm5lY3Rpb25zLmFsbG93RnJvbShcbiAgICAgICAgZWMyLlBlZXIuaXB2NChpcHY0KSxcbiAgICAgICAgZWMyLlBvcnQudGNwKHByb3BzLnNzaFBvcnQgfHwgMjIpLFxuICAgICAgICBcIlNTSCBBY2Nlc3NcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBJbnRlZ3JhdGUgd2l0aCBTU01cbiAgICB0aGlzLmluc3RhbmNlLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwic3NtbWVzc2FnZXM6KlwiLFxuICAgICAgICAgIFwic3NtOlVwZGF0ZUluc3RhbmNlSW5mb3JtYXRpb25cIixcbiAgICAgICAgICBcImVjMm1lc3NhZ2VzOipcIixcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcImluc3RhbmNlLWlkLW91dHB1dFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pbnN0YW5jZS5pbnN0YW5jZUlkLFxuICAgICAgZXhwb3J0TmFtZTogYCR7c3RhY2tOYW1lfS1pbnN0YW5jZS1pZGAsXG4gICAgfSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcImluc3RhbmNlLXB1YmxpYy1pcC1vdXRwdXRcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuaW5zdGFuY2UuaW5zdGFuY2VQdWJsaWNJcCxcbiAgICAgIGV4cG9ydE5hbWU6IGAke3N0YWNrTmFtZX0taW5zdGFuY2UtcHVibGljLWlwYCxcbiAgICB9KTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiaW5zdGFuY2UtcHVibGljLWRucy1uYW1lLW91dHB1dFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pbnN0YW5jZS5pbnN0YW5jZVB1YmxpY0Ruc05hbWUsXG4gICAgICBleHBvcnROYW1lOiBgJHtzdGFja05hbWV9LXB1YmxpYy1kbnMtbmFtZWAsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXN0aW9uSG9zdFByb3BzIHtcbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcbiAgcmVhZG9ubHkgZGI6IHJkcy5JRGF0YWJhc2VJbnN0YW5jZTtcbiAgcmVhZG9ubHkgdXNlckRhdGE6IGVjMi5Vc2VyRGF0YTtcbiAgcmVhZG9ubHkgaXB2NEFsbG93bGlzdDogc3RyaW5nW107XG4gIHJlYWRvbmx5IHNzaFBvcnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGFuIGVsYXN0aWMgSVAgc2hvdWxkIGJlIGNyZWF0ZWQgZm9yIHRoZSBiYXN0aW9uIGhvc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVFbGFzdGljSXA/OiBib29sZWFuO1xufVxuIl19