eoapi-cdk 11.4.1 → 11.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +36 -21
- package/lib/bastion-host/index.js +1 -1
- package/lib/database/index.js +1 -1
- package/lib/ingestor-api/index.d.ts +4 -0
- package/lib/ingestor-api/index.js +8 -3
- package/lib/ingestor-api/runtime/Dockerfile +13 -9
- package/lib/ingestor-api/runtime/pyproject.toml +37 -0
- package/lib/ingestor-api/runtime/src/config.py +9 -0
- package/lib/ingestor-api/runtime/src/ingestor.py +1 -1
- package/lib/ingestor-api/runtime/src/schemas.py +11 -19
- package/lib/ingestor-api/runtime/src/services.py +4 -2
- package/lib/ingestor-api/runtime/uv.lock +1279 -0
- package/lib/lambda-api-gateway/index.js +1 -1
- package/lib/lambda-api-gateway-private/index.js +1 -1
- package/lib/stac-api/index.js +2 -2
- package/lib/stac-api/runtime/uv.lock +50 -50
- package/lib/stac-auth-proxy/index.js +2 -2
- package/lib/stac-browser/index.js +1 -1
- package/lib/stac-loader/index.js +2 -2
- package/lib/stac-loader/runtime/uv.lock +48 -48
- package/lib/stactools-item-generator/index.js +1 -1
- package/lib/tipg-api/index.js +2 -2
- package/lib/tipg-api/runtime/uv.lock +50 -50
- package/lib/titiler-pgstac-api/index.js +2 -2
- package/package.json +1 -1
- package/pyproject.toml +4 -0
- package/uv.lock +433 -50
- package/lib/ingestor-api/runtime/dev_requirements.txt +0 -4
- package/lib/ingestor-api/runtime/requirements.txt +0 -10
package/.jsii
CHANGED
|
@@ -6216,7 +6216,7 @@
|
|
|
6216
6216
|
},
|
|
6217
6217
|
"locationInModule": {
|
|
6218
6218
|
"filename": "lib/ingestor-api/index.ts",
|
|
6219
|
-
"line":
|
|
6219
|
+
"line": 32
|
|
6220
6220
|
},
|
|
6221
6221
|
"parameters": [
|
|
6222
6222
|
{
|
|
@@ -6242,17 +6242,32 @@
|
|
|
6242
6242
|
"kind": "class",
|
|
6243
6243
|
"locationInModule": {
|
|
6244
6244
|
"filename": "lib/ingestor-api/index.ts",
|
|
6245
|
-
"line":
|
|
6245
|
+
"line": 23
|
|
6246
6246
|
},
|
|
6247
6247
|
"name": "StacIngestor",
|
|
6248
6248
|
"properties": [
|
|
6249
|
+
{
|
|
6250
|
+
"docs": {
|
|
6251
|
+
"stability": "experimental",
|
|
6252
|
+
"summary": "URL of the Ingestor API."
|
|
6253
|
+
},
|
|
6254
|
+
"immutable": true,
|
|
6255
|
+
"locationInModule": {
|
|
6256
|
+
"filename": "lib/ingestor-api/index.ts",
|
|
6257
|
+
"line": 30
|
|
6258
|
+
},
|
|
6259
|
+
"name": "url",
|
|
6260
|
+
"type": {
|
|
6261
|
+
"primitive": "string"
|
|
6262
|
+
}
|
|
6263
|
+
},
|
|
6249
6264
|
{
|
|
6250
6265
|
"docs": {
|
|
6251
6266
|
"stability": "experimental"
|
|
6252
6267
|
},
|
|
6253
6268
|
"locationInModule": {
|
|
6254
6269
|
"filename": "lib/ingestor-api/index.ts",
|
|
6255
|
-
"line":
|
|
6270
|
+
"line": 25
|
|
6256
6271
|
},
|
|
6257
6272
|
"name": "handlerRole",
|
|
6258
6273
|
"type": {
|
|
@@ -6265,7 +6280,7 @@
|
|
|
6265
6280
|
},
|
|
6266
6281
|
"locationInModule": {
|
|
6267
6282
|
"filename": "lib/ingestor-api/index.ts",
|
|
6268
|
-
"line":
|
|
6283
|
+
"line": 24
|
|
6269
6284
|
},
|
|
6270
6285
|
"name": "table",
|
|
6271
6286
|
"type": {
|
|
@@ -6285,7 +6300,7 @@
|
|
|
6285
6300
|
"kind": "interface",
|
|
6286
6301
|
"locationInModule": {
|
|
6287
6302
|
"filename": "lib/ingestor-api/index.ts",
|
|
6288
|
-
"line":
|
|
6303
|
+
"line": 295
|
|
6289
6304
|
},
|
|
6290
6305
|
"name": "StacIngestorProps",
|
|
6291
6306
|
"properties": [
|
|
@@ -6298,7 +6313,7 @@
|
|
|
6298
6313
|
"immutable": true,
|
|
6299
6314
|
"locationInModule": {
|
|
6300
6315
|
"filename": "lib/ingestor-api/index.ts",
|
|
6301
|
-
"line":
|
|
6316
|
+
"line": 299
|
|
6302
6317
|
},
|
|
6303
6318
|
"name": "dataAccessRole",
|
|
6304
6319
|
"type": {
|
|
@@ -6314,7 +6329,7 @@
|
|
|
6314
6329
|
"immutable": true,
|
|
6315
6330
|
"locationInModule": {
|
|
6316
6331
|
"filename": "lib/ingestor-api/index.ts",
|
|
6317
|
-
"line":
|
|
6332
|
+
"line": 314
|
|
6318
6333
|
},
|
|
6319
6334
|
"name": "stacDbSecret",
|
|
6320
6335
|
"type": {
|
|
@@ -6330,7 +6345,7 @@
|
|
|
6330
6345
|
"immutable": true,
|
|
6331
6346
|
"locationInModule": {
|
|
6332
6347
|
"filename": "lib/ingestor-api/index.ts",
|
|
6333
|
-
"line":
|
|
6348
|
+
"line": 324
|
|
6334
6349
|
},
|
|
6335
6350
|
"name": "stacDbSecurityGroup",
|
|
6336
6351
|
"type": {
|
|
@@ -6346,7 +6361,7 @@
|
|
|
6346
6361
|
"immutable": true,
|
|
6347
6362
|
"locationInModule": {
|
|
6348
6363
|
"filename": "lib/ingestor-api/index.ts",
|
|
6349
|
-
"line":
|
|
6364
|
+
"line": 304
|
|
6350
6365
|
},
|
|
6351
6366
|
"name": "stacUrl",
|
|
6352
6367
|
"type": {
|
|
@@ -6362,7 +6377,7 @@
|
|
|
6362
6377
|
"immutable": true,
|
|
6363
6378
|
"locationInModule": {
|
|
6364
6379
|
"filename": "lib/ingestor-api/index.ts",
|
|
6365
|
-
"line":
|
|
6380
|
+
"line": 309
|
|
6366
6381
|
},
|
|
6367
6382
|
"name": "stage",
|
|
6368
6383
|
"type": {
|
|
@@ -6378,7 +6393,7 @@
|
|
|
6378
6393
|
"immutable": true,
|
|
6379
6394
|
"locationInModule": {
|
|
6380
6395
|
"filename": "lib/ingestor-api/index.ts",
|
|
6381
|
-
"line":
|
|
6396
|
+
"line": 339
|
|
6382
6397
|
},
|
|
6383
6398
|
"name": "apiEndpointConfiguration",
|
|
6384
6399
|
"optional": true,
|
|
@@ -6395,7 +6410,7 @@
|
|
|
6395
6410
|
"immutable": true,
|
|
6396
6411
|
"locationInModule": {
|
|
6397
6412
|
"filename": "lib/ingestor-api/index.ts",
|
|
6398
|
-
"line":
|
|
6413
|
+
"line": 334
|
|
6399
6414
|
},
|
|
6400
6415
|
"name": "apiEnv",
|
|
6401
6416
|
"optional": true,
|
|
@@ -6418,7 +6433,7 @@
|
|
|
6418
6433
|
"immutable": true,
|
|
6419
6434
|
"locationInModule": {
|
|
6420
6435
|
"filename": "lib/ingestor-api/index.ts",
|
|
6421
|
-
"line":
|
|
6436
|
+
"line": 356
|
|
6422
6437
|
},
|
|
6423
6438
|
"name": "apiLambdaFunctionOptions",
|
|
6424
6439
|
"optional": true,
|
|
@@ -6435,7 +6450,7 @@
|
|
|
6435
6450
|
"immutable": true,
|
|
6436
6451
|
"locationInModule": {
|
|
6437
6452
|
"filename": "lib/ingestor-api/index.ts",
|
|
6438
|
-
"line":
|
|
6453
|
+
"line": 344
|
|
6439
6454
|
},
|
|
6440
6455
|
"name": "apiPolicy",
|
|
6441
6456
|
"optional": true,
|
|
@@ -6452,7 +6467,7 @@
|
|
|
6452
6467
|
"immutable": true,
|
|
6453
6468
|
"locationInModule": {
|
|
6454
6469
|
"filename": "lib/ingestor-api/index.ts",
|
|
6455
|
-
"line":
|
|
6470
|
+
"line": 349
|
|
6456
6471
|
},
|
|
6457
6472
|
"name": "ingestorDomainNameOptions",
|
|
6458
6473
|
"optional": true,
|
|
@@ -6470,7 +6485,7 @@
|
|
|
6470
6485
|
"immutable": true,
|
|
6471
6486
|
"locationInModule": {
|
|
6472
6487
|
"filename": "lib/ingestor-api/index.ts",
|
|
6473
|
-
"line":
|
|
6488
|
+
"line": 363
|
|
6474
6489
|
},
|
|
6475
6490
|
"name": "ingestorLambdaFunctionOptions",
|
|
6476
6491
|
"optional": true,
|
|
@@ -6488,7 +6503,7 @@
|
|
|
6488
6503
|
"immutable": true,
|
|
6489
6504
|
"locationInModule": {
|
|
6490
6505
|
"filename": "lib/ingestor-api/index.ts",
|
|
6491
|
-
"line":
|
|
6506
|
+
"line": 370
|
|
6492
6507
|
},
|
|
6493
6508
|
"name": "pgstacVersion",
|
|
6494
6509
|
"optional": true,
|
|
@@ -6505,7 +6520,7 @@
|
|
|
6505
6520
|
"immutable": true,
|
|
6506
6521
|
"locationInModule": {
|
|
6507
6522
|
"filename": "lib/ingestor-api/index.ts",
|
|
6508
|
-
"line":
|
|
6523
|
+
"line": 329
|
|
6509
6524
|
},
|
|
6510
6525
|
"name": "subnetSelection",
|
|
6511
6526
|
"optional": true,
|
|
@@ -6522,7 +6537,7 @@
|
|
|
6522
6537
|
"immutable": true,
|
|
6523
6538
|
"locationInModule": {
|
|
6524
6539
|
"filename": "lib/ingestor-api/index.ts",
|
|
6525
|
-
"line":
|
|
6540
|
+
"line": 319
|
|
6526
6541
|
},
|
|
6527
6542
|
"name": "vpc",
|
|
6528
6543
|
"optional": true,
|
|
@@ -8000,6 +8015,6 @@
|
|
|
8000
8015
|
"symbolId": "lib/titiler-pgstac-api/index:TitilerPgstacApiLambdaRuntimeProps"
|
|
8001
8016
|
}
|
|
8002
8017
|
},
|
|
8003
|
-
"version": "11.
|
|
8004
|
-
"fingerprint": "
|
|
8018
|
+
"version": "11.5.0",
|
|
8019
|
+
"fingerprint": "XsLmoGgYK/c4rj7NzXYJipHbGokY1h5qTscUkSxDqtA="
|
|
8005
8020
|
}
|
|
@@ -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: "11.
|
|
161
|
+
BastionHost[_a] = { fqn: "eoapi-cdk.BastionHost", version: "11.5.0" };
|
|
162
162
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQU1xQjtBQUNyQiwyQ0FBdUM7QUFFdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpR0c7QUFDSCxNQUFhLFdBQVksU0FBUSxzQkFBUztJQUd4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkscUJBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUNyRCxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUscUJBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ2pELFlBQVksRUFBRSxHQUFHLFNBQVMsZUFBZTtZQUN6QyxZQUFZLEVBQUUscUJBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUMvQixxQkFBRyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFDckMscUJBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN0QjtZQUNELFlBQVksRUFBRSxxQkFBRyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsVUFBVSxFQUFFLHFCQUFHLENBQUMscUJBQXFCLENBQUMsY0FBYztnQkFDcEQsT0FBTyxFQUFFLHFCQUFHLENBQUMsa0JBQWtCLENBQUMsTUFBTTthQUN2QyxDQUFDO1lBQ0YsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLHlCQUF5QixFQUFFLElBQUk7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsb0JBQW9CO1FBQ3BCLElBQUksS0FBSyxDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQyxJQUFJLHFCQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7Z0JBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVU7Z0JBQ3BDLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDMUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHNDQUFzQztRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQy9CLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFDdEMscUJBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUNsQixvQ0FBb0MsQ0FDckMsQ0FBQztRQUVGLGtDQUFrQztRQUNsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ2pDLHFCQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDbkIscUJBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQ2pDLFlBQVksQ0FDYixDQUFDO1FBQ0osQ0FBQztRQUVELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDM0IsSUFBSSxxQkFBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUU7Z0JBQ1AsZUFBZTtnQkFDZiwrQkFBK0I7Z0JBQy9CLGVBQWU7YUFDaEI7WUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDakIsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVU7WUFDL0IsVUFBVSxFQUFFLEdBQUcsU0FBUyxjQUFjO1NBQ3ZDLENBQUMsQ0FBQztRQUNILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLEVBQUU7WUFDL0MsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO1lBQ3JDLFVBQVUsRUFBRSxHQUFHLFNBQVMscUJBQXFCO1NBQzlDLENBQUMsQ0FBQztRQUNILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsaUNBQWlDLEVBQUU7WUFDckQsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCO1lBQzFDLFVBQVUsRUFBRSxHQUFHLFNBQVMsa0JBQWtCO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBekVILGtDQTBFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFN0YWNrLFxuICBhd3NfZWMyIGFzIGVjMixcbiAgYXdzX2lhbSBhcyBpYW0sXG4gIGF3c19yZHMgYXMgcmRzLFxuICBDZm5PdXRwdXQsXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBUaGUgZGF0YWJhc2UgaXMgbG9jYXRlZCBpbiBhbiBpc29sYXRlZCBzdWJuZXQsIG1lYW5pbmcgdGhhdCBpdCBpcyBub3QgYWNjZXNzaWJsZSBmcm9tIHRoZSBwdWJsaWMgaW50ZXJuZXQuIEFzIHN1Y2gsIHRvIGludGVyYWN0IHdpdGggdGhlIGRhdGFiYXNlIGRpcmVjdGx5LCBhIHVzZXIgbXVzdCB0dW5uZWwgdGhyb3VnaCBhIGJhc3Rpb24gaG9zdC5cbiAqXG4gKiAjIyMgQ29uZmlndXJpbmdcbiAqXG4gKiBUaGlzIGNvZGViYXNlIGNvbnRyb2xzIF93aG9fIGlzIGFsbG93ZWQgdG8gY29ubmVjdCB0byB0aGUgYmFzdGlvbiBob3N0LiBUaGlzIHJlcXVpcmVzIHR3byBzdGVwczpcbiAqXG4gKiAxLiBBZGRpbmcgdGhlIElQIGFkZHJlc3MgZnJvbSB3aGljaCB5b3UgYXJlIGNvbm5lY3RpbmcgdG8gdGhlIGBpcHY0QWxsb3dsaXN0YCBhcnJheVxuICogMS4gQ3JlYXRpbmcgYSBiYXN0aW9uIGhvc3Qgc3lzdGVtIHVzZXIgYnkgYWRkaW5nIHRoZSB1c2VyJ3MgY29uZmlndXJhdGlvbiBpbmZvcm0gdG8gYHVzZXJkYXRhLnlhbWxgXG4gKlxuICogIyMjIyBBZGRpbmcgYW4gSVAgYWRkcmVzcyB0byB0aGUgYGlwdjRBbGxvd2xpc3RgIGFycmF5XG4gKlxuICogVGhlIGBCYXN0aW9uSG9zdGAgY29uc3RydWN0IHRha2VzIGluIGFuIGBpcHY0QWxsb3dsaXN0YCBhcnJheSBhcyBhbiBhcmd1bWVudC4gRmluZCB5b3VyIElQIGFkZHJlc3MgKGVnIGBjdXJsIGFwaS5pcGlmeS5vcmdgKSBhbmQgYWRkIHRoYXQgdG8gdGhlIGFycmF5IGFsb25nIHdpdGggdGhlIHRyYWlsaW5nIENJRFIgYmxvY2sgKGxpa2VseSBgLzMyYCB0byBpbmRpY2F0ZSB0aGF0IHlvdSBhcmUgYWRkaW5nIGEgc2luZ2xlIElQIGFkZHJlc3MpLlxuICpcbiAqICMjIyMgQ3JlYXRpbmcgYSB1c2VyIHZpYSBgdXNlcmRhdGEueWFtbGBcbiAqXG4gKiBBZGQgYW4gZW50cnkgdG8gdGhlIGB1c2Vyc2AgYXJyYXkgd2l0aCBhIHVzZXJuYW1lIChsaWtlbHkgbWF0Y2hpbmcgeW91ciBsb2NhbCBzeXN0ZW1zIHVzZXJuYW1lLCB3aGljaCB5b3UgY2FuIGdldCBieSBydW5uaW5nIHRoZSBgd2hvYW1pYCBjb21tYW5kIGluIHlvdXIgdGVybWluYWwpIGFuZCBhIHB1YmxpYyBrZXkgKGxpa2VseSB5b3VyIGRlZmF1bHQgcHVibGljIGtleSwgd2hpY2ggeW91IGNhbiBnZXQgYnkgcnVubmluZyBgY2F0IH4vLnNzaC9pZF8qLnB1YmAgaW4geW91ciB0ZXJtaW5hbCkuXG4gKlxuICogIyMjIyBUaXBzICYgVHJpY2tzIHdoZW4gdXNpbmcgdGhlIEJhc3Rpb24gSG9zdFxuICpcbiAqICoqQ29ubmVjdGluZyB0byBSRFMgSW5zdGFuY2UgdmlhIFNTTSoqXG4gKlxuICogYGBgc2hcbiAqIGF3cyBzc20gc3RhcnQtc2Vzc2lvbiAtLXRhcmdldCAkSU5TVEFOQ0VfSUQgXFxcbiAqIC0tZG9jdW1lbnQtbmFtZSBBV1MtU3RhcnRQb3J0Rm9yd2FyZGluZ1Nlc3Npb25Ub1JlbW90ZUhvc3QgXFxcbiAqIC0tcGFyYW1ldGVycyAne1xuICogXCJob3N0XCI6IFtcbiAqIFwiZXhhbXBsZS1kYi5jNWFiY2RlZmdoaWoudXMtd2VzdC0yLnJkcy5hbWF6b25hd3MuY29tXCJcbiAqIF0sXG4gKiBcInBvcnROdW1iZXJcIjogW1xuICogXCI1NDMyXCJcbiAqIF0sXG4gKiBcImxvY2FsUG9ydE51bWJlclwiOiBbXG4gKiBcIjk5OTlcIlxuICogXVxuICogfScgXFxcbiAqIC0tcHJvZmlsZSAkQVdTX1BST0ZJTEVcbiAqIGBgYFxuICpcbiAqIGBgYHNoXG4gKiBwc3FsIC1oIGxvY2FsaG9zdCAtcCA5OTk5ICMgY29udGludWUgYWRkaW5nIHVzZXJuYW1lICgtVSkgYW5kIGRiICgtZCkgaGVyZS4uLlxuICogYGBgXG4gKlxuICogQ29ubmVjdCBkaXJlY3RseSB0byBCYXN0aW9uIEhvc3Q6XG4gKlxuICogYGBgc2hcbiAqIGF3cyBzc20gc3RhcnQtc2Vzc2lvbiAtLXRhcmdldCAkSU5TVEFOQ0VfSUQgLS1wcm9maWxlICRBV1NfUFJPRklMRVxuICogYGBgXG4gKlxuICogKipTZXR0aW5nIHVwIGFuIFNTSCB0dW5uZWwqKlxuICpcbiAqIEluIHlvdXIgYH4vLnNzaC9jb25maWdgIGZpbGUsIGFkZCBhbiBlbnRyeSBsaWtlOlxuICpcbiAqIGBgYFxuICogSG9zdCBkYi10dW5uZWxcbiAqIEhvc3RuYW1lIHt0aGUtYmFzdGlvbi1ob3N0LWFkZHJlc3N9XG4gKiBMb2NhbEZvcndhcmQgOTk5OSB7dGhlLWRiLWhvc3RuYW1lfTo1NDMyXG4gKiBgYGBcbiAqXG4gKiBUaGVuIGEgdHVubmVsIGNhbiBiZSBvcGVuZWQgdmlhOlxuICpcbiAqIGBgYFxuICogc3NoIC1OIGRiLXR1bm5lbFxuICogYGBgXG4gKlxuICogQW5kIGEgY29ubmVjdGlvbiB0byB0aGUgREIgY2FuIGJlIG1hZGUgdmlhOlxuICpcbiAqIGBgYFxuICogcHNxbCAtaCAxMjcuMC4wLjEgLXAgOTk5OSAtVSB7dXNlcm5hbWV9IC1kIHtkYXRhYmFzZX1cbiAqIGBgYFxuICpcbiAqICoqSGFuZGxpbmcgYFJFTU9URSBIT1NUIElERU5USUZJQ0FUSU9OIEhBUyBDSEFOR0VEIWAgZXJyb3IqKlxuICpcbiAqIElmIHlvdSd2ZSByZWRlcGxveWVkIGEgYmFzdGlvbiBob3N0IHRoYXQgeW91J3ZlIHByZXZpb3VzbHkgY29ubmVjdGVkIHRvLCB5b3UgbWF5IHNlZSBhbiBlcnJvciBsaWtlOlxuICpcbiAqIGBgYFxuICogQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBcbiAqIEAgICAgV0FSTklORzogUkVNT1RFIEhPU1QgSURFTlRJRklDQVRJT04gSEFTIENIQU5HRUQhICAgICBAXG4gKiBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFxuICogSVQgSVMgUE9TU0lCTEUgVEhBVCBTT01FT05FIElTIERPSU5HIFNPTUVUSElORyBOQVNUWSFcbiAqIFNvbWVvbmUgY291bGQgYmUgZWF2ZXNkcm9wcGluZyBvbiB5b3UgcmlnaHQgbm93IChtYW4taW4tdGhlLW1pZGRsZSBhdHRhY2spIVxuICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IGEgaG9zdCBrZXkgaGFzIGp1c3QgYmVlbiBjaGFuZ2VkLlxuICogVGhlIGZpbmdlcnByaW50IGZvciB0aGUgRUNEU0Ega2V5IHNlbnQgYnkgdGhlIHJlbW90ZSBob3N0IGlzXG4gKiBTSEEyNTY6bVBueEFPWFRwYjA2UEZnSTFRYzhUTVEyZTliN2dvVTh5Mk5kUzVoeklyOC5cbiAqIFBsZWFzZSBjb250YWN0IHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IuXG4gKiBBZGQgY29ycmVjdCBob3N0IGtleSBpbiAvVXNlcnMvdXNlcm5hbWUvLnNzaC9rbm93bl9ob3N0cyB0byBnZXQgcmlkIG9mIHRoaXMgbWVzc2FnZS5cbiAqIE9mZmVuZGluZyBFQ0RTQSBrZXkgaW4gL1VzZXJzL3VzZXJuYW1lLy5zc2gva25vd25faG9zdHM6MjhcbiAqIEVDRFNBIGhvc3Qga2V5IGZvciBlYzItMTItMzQtNTYtNzg5LnVzLXdlc3QtMi5jb21wdXRlLmFtYXpvbmF3cy5jb20gaGFzIGNoYW5nZWQgYW5kIHlvdSBoYXZlIHJlcXVlc3RlZCBzdHJpY3QgY2hlY2tpbmcuXG4gKiBIb3N0IGtleSB2ZXJpZmljYXRpb24gZmFpbGVkLlxuICogYGBgXG4gKlxuICogVGhpcyBpcyBkdWUgdG8gdGhlIHNlcnZlcidzIGZpbmdlcnByaW50IGNoYW5naW5nLiBXZSBjYW4gc2NydWIgdGhlIGZpbmdlcnByaW50IGZyb20gb3VyIHN5c3RlbSB3aXRoIGEgY29tbWFuZCBsaWtlOlxuICpcbiAqIGBgYFxuICogc3NoLWtleWdlbiAtUiAxMi4zNC41Ni43ODlcbiAqIGBgYFxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc3Rpb25Ib3N0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgaW5zdGFuY2U6IGVjMi5JbnN0YW5jZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzdGlvbkhvc3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7IHN0YWNrTmFtZSB9ID0gU3RhY2sub2YodGhpcyk7XG5cbiAgICAvLyBCdWlsZCBlYzIgaW5zdGFuY2VcbiAgICB0aGlzLmluc3RhbmNlID0gbmV3IGVjMi5JbnN0YW5jZSh0aGlzLCBcImJhc3Rpb24taG9zdFwiLCB7XG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFVCTElDIH0sXG4gICAgICBpbnN0YW5jZU5hbWU6IGAke3N0YWNrTmFtZX0gYmFzdGlvbiBob3N0YCxcbiAgICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgZWMyLkluc3RhbmNlQ2xhc3MuQlVSU1RBQkxFNF9HUkFWSVRPTixcbiAgICAgICAgZWMyLkluc3RhbmNlU2l6ZS5OQU5PXG4gICAgICApLFxuICAgICAgbWFjaGluZUltYWdlOiBlYzIuTWFjaGluZUltYWdlLmxhdGVzdEFtYXpvbkxpbnV4KHtcbiAgICAgICAgZ2VuZXJhdGlvbjogZWMyLkFtYXpvbkxpbnV4R2VuZXJhdGlvbi5BTUFaT05fTElOVVhfMixcbiAgICAgICAgY3B1VHlwZTogZWMyLkFtYXpvbkxpbnV4Q3B1VHlwZS5BUk1fNjQsXG4gICAgICB9KSxcbiAgICAgIHVzZXJEYXRhOiBwcm9wcy51c2VyRGF0YSxcbiAgICAgIHVzZXJEYXRhQ2F1c2VzUmVwbGFjZW1lbnQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBBc3NpZ24gZWxhc3RpYyBJUFxuICAgIGlmIChwcm9wcy5jcmVhdGVFbGFzdGljSXAgPz8gdHJ1ZSkge1xuICAgICAgbmV3IGVjMi5DZm5FSVAodGhpcywgXCJJUFwiLCB7XG4gICAgICAgIGluc3RhbmNlSWQ6IHRoaXMuaW5zdGFuY2UuaW5zdGFuY2VJZCxcbiAgICAgICAgdGFnczogW3sga2V5OiBcIk5hbWVcIiwgdmFsdWU6IHN0YWNrTmFtZSB9XSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEFsbG93IGJhc3Rpb24gaG9zdCB0byBjb25uZWN0IHRvIGRiXG4gICAgdGhpcy5pbnN0YW5jZS5jb25uZWN0aW9ucy5hbGxvd1RvKFxuICAgICAgcHJvcHMuZGIuY29ubmVjdGlvbnMuc2VjdXJpdHlHcm91cHNbMF0sXG4gICAgICBlYzIuUG9ydC50Y3AoNTQzMiksXG4gICAgICBcIkFsbG93IGNvbm5lY3Rpb24gZnJvbSBiYXN0aW9uIGhvc3RcIlxuICAgICk7XG5cbiAgICAvLyBBbGxvdyBJUCBhY2Nlc3MgdG8gYmFzdGlvbiBob3N0XG4gICAgZm9yIChjb25zdCBpcHY0IG9mIHByb3BzLmlwdjRBbGxvd2xpc3QpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2UuY29ubmVjdGlvbnMuYWxsb3dGcm9tKFxuICAgICAgICBlYzIuUGVlci5pcHY0KGlwdjQpLFxuICAgICAgICBlYzIuUG9ydC50Y3AocHJvcHMuc3NoUG9ydCB8fCAyMiksXG4gICAgICAgIFwiU1NIIEFjY2Vzc1wiXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEludGVncmF0ZSB3aXRoIFNTTVxuICAgIHRoaXMuaW5zdGFuY2UuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJzc21tZXNzYWdlczoqXCIsXG4gICAgICAgICAgXCJzc206VXBkYXRlSW5zdGFuY2VJbmZvcm1hdGlvblwiLFxuICAgICAgICAgIFwiZWMybWVzc2FnZXM6KlwiLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICB9KVxuICAgICk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiaW5zdGFuY2UtaWQtb3V0cHV0XCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmluc3RhbmNlLmluc3RhbmNlSWQsXG4gICAgICBleHBvcnROYW1lOiBgJHtzdGFja05hbWV9LWluc3RhbmNlLWlkYCxcbiAgICB9KTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiaW5zdGFuY2UtcHVibGljLWlwLW91dHB1dFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pbnN0YW5jZS5pbnN0YW5jZVB1YmxpY0lwLFxuICAgICAgZXhwb3J0TmFtZTogYCR7c3RhY2tOYW1lfS1pbnN0YW5jZS1wdWJsaWMtaXBgLFxuICAgIH0pO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJpbnN0YW5jZS1wdWJsaWMtZG5zLW5hbWUtb3V0cHV0XCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmluc3RhbmNlLmluc3RhbmNlUHVibGljRG5zTmFtZSxcbiAgICAgIGV4cG9ydE5hbWU6IGAke3N0YWNrTmFtZX0tcHVibGljLWRucy1uYW1lYCxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc3Rpb25Ib3N0UHJvcHMge1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICByZWFkb25seSBkYjogcmRzLklEYXRhYmFzZUluc3RhbmNlO1xuICByZWFkb25seSB1c2VyRGF0YTogZWMyLlVzZXJEYXRhO1xuICByZWFkb25seSBpcHY0QWxsb3dsaXN0OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc3NoUG9ydD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgYW4gZWxhc3RpYyBJUCBzaG91bGQgYmUgY3JlYXRlZCBmb3IgdGhlIGJhc3Rpb24gaG9zdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUVsYXN0aWNJcD86IGJvb2xlYW47XG59XG4iXX0=
|
package/lib/database/index.js
CHANGED
|
@@ -271,5 +271,5 @@ class PgStacDatabase extends constructs_1.Construct {
|
|
|
271
271
|
}
|
|
272
272
|
exports.PgStacDatabase = PgStacDatabase;
|
|
273
273
|
_a = JSII_RTTI_SYMBOL_1;
|
|
274
|
-
PgStacDatabase[_a] = { fqn: "eoapi-cdk.PgStacDatabase", version: "11.
|
|
274
|
+
PgStacDatabase[_a] = { fqn: "eoapi-cdk.PgStacDatabase", version: "11.5.0" };
|
|
275
275
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVdxQjtBQUNyQiwyQ0FBdUM7QUFDdkMsb0NBSWtCO0FBQ2xCLDJDQUF3QztBQUN4QyxpREFBOEM7QUFDOUMsaUNBQWlDO0FBQ2pDLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0IsTUFBTSxhQUFhLEdBQTJCLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBRWhGLElBQUksMEJBQTBCLEdBQTJCO0lBQ3ZELFlBQVksRUFBRSxNQUFNO0NBQ3JCLENBQUM7QUFFRixTQUFTLE1BQU0sQ0FDYixRQUFzRDtJQUV0RCxPQUFRLFFBQWlDLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixRQUFnQixFQUNoQixTQUFvQztJQUVwQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXpDLDBCQUEwQjtJQUMxQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO0lBQzlFLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUUvQyxvQkFBb0I7SUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztJQUMzRSxNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUV6Qyx1REFBdUQ7SUFDdkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDdEMsSUFBSSxFQUFFO1NBQ04sR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUV2QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ0c7QUFDSCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQVkzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUMxQyxLQUFLLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLFVBQVUsRUFDNUMsS0FBSyxDQUFDLFVBQVUsQ0FDakIsQ0FBQztRQUVGLE1BQU0sY0FBYyxHQUFHLElBQUkscUJBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3BFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixVQUFVLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFLGlCQUFpQixDQUFDLGNBQWM7Z0JBQ2pELGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxhQUFhO2dCQUMvQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxrQkFBa0I7Z0JBQzFELFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPO2dCQUNuQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxrQkFBa0I7Z0JBQzFELHlCQUF5QixFQUFFLGlCQUFpQixDQUFDLHNCQUFzQjtnQkFDbkUsWUFBWSxFQUFFLGlCQUFpQixDQUFDLFdBQVc7Z0JBQzNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxXQUFXO2dCQUM1QyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxjQUFjO2dCQUNsRCxHQUFHLEtBQUssQ0FBQyxVQUFVO2FBQ3BCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDdEQsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLHFCQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUM3QyxrQkFBa0IsRUFBRSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTO1lBQzVDLGNBQWM7WUFDZCxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksOEJBQXNCLENBQUM7UUFFbkUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxHQUM3QyxLQUFLLENBQUMsaUNBQWlDLElBQUksRUFBRSxDQUFDO1FBRWhELHdDQUF3QztRQUN4QyxNQUFNLFNBQVMsR0FBRztZQUNoQixjQUFjLEVBQUUsTUFBTTtZQUN0QixjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDbkMsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLElBQUksd0JBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUN0RCxXQUFXO1lBQ1gsT0FBTyxFQUFFLHdCQUFVLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDdkMsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixVQUFVLEVBQUUsR0FBRztZQUNmLFlBQVksRUFBRSxzQkFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRO1lBQzdDLE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxFQUFFLElBQUEseUJBQWlCLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRTtnQkFDM0MsSUFBSSxFQUFFLGlDQUFpQztnQkFDdkMsU0FBUyxFQUFFLFNBQVM7YUFDckIsQ0FBQztZQUNGLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUc7WUFDOUMsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixrRUFBa0U7WUFDbEUsR0FBRyxrQkFBa0I7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGdDQUFjLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUN4RSxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxDQUFDLGFBQWEsSUFBSSxRQUFRO2dCQUMvQixFQUFFO2dCQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDWCxvQkFBb0IsRUFBRTtnQkFDcEIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDbkMsTUFBTSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksUUFBUTtvQkFDdEMsTUFBTSxFQUFFLFVBQVU7b0JBQ2xCLElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFFBQVE7b0JBQ3ZDLFFBQVEsRUFBRSxLQUFLLENBQUMsY0FBYyxJQUFJLGFBQWE7aUJBQ2hELENBQUM7Z0JBQ0YsaUJBQWlCLEVBQUUsVUFBVTtnQkFDN0Isa0JBQWtCLEVBQUUsSUFBSTthQUN6QjtZQUNELFdBQVcsRUFBRSxtQ0FDWCxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUNqQixFQUFFO1NBQ0gsQ0FBQyxDQUFDO1FBRUgscUJBQXFCO1FBQ3JCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLHFCQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTNELElBQUksd0JBQXdCLEdBQzFCLEtBQUssQ0FBQyx3QkFBd0I7WUFDNUIsQ0FBQyxDQUFDLEVBQUUsR0FBRywwQkFBMEIsRUFBRSxHQUFHLEtBQUssQ0FBQyx3QkFBd0IsRUFBRTtZQUN0RSxDQUFDLENBQUMsMEJBQTBCLENBQUM7UUFFakMsb0JBQW9CO1FBQ3BCLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3hFLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDO1lBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBRTlCLGlIQUFpSDtRQUNqSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFFaEUsZ0dBQWdHO1lBQ2hHLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxHQUFHLHFCQUFxQixDQUMzRCxTQUFTLEVBQ1QsU0FBUyxDQUNWLENBQUM7UUFDSixDQUFDO1FBRUQsOEhBQThIO1FBQzlILElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkUsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQzVELFlBQVksRUFBRSxPQUFPLENBQUMsV0FBVztZQUNqQyxVQUFVLEVBQUUsd0JBQXdCO1lBQ3BDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE1BQU0sRUFBRSxrRkFBa0Y7U0FDeEgsQ0FBQyxDQUFDO1FBRUgsaUVBQWlFO1FBQ2pFLE1BQU0sNkJBQTZCLEdBQStCO1lBQ2hFLFlBQVksRUFBRSxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsWUFBWTtZQUNyRCxZQUFZLEVBQUUscUJBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUMvQixxQkFBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQ3BCLHFCQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FDdkI7U0FDRixDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUM7UUFDaEQsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxxQkFBUyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ3ZELGFBQWEsRUFBRTtvQkFDYixHQUFHLDZCQUE2QjtvQkFDaEMsR0FBRyxLQUFLLENBQUMsc0JBQXNCO2lCQUNoQztnQkFDRCxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7Z0JBQ2QsUUFBUSxFQUFFO29CQUNSLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVc7b0JBQ2hDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTtpQkFDMUI7Z0JBQ0QsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQztnQkFDNUQsZUFBZSxFQUNiLENBQUMsS0FBSyxDQUFDLFVBQVU7b0JBQ2pCLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxLQUFLLHFCQUFHLENBQUMsVUFBVSxDQUFDLE1BQU07Z0JBQ3ZELGVBQWUsRUFBRTtvQkFDZixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsYUFBYSxFQUFFLElBQUk7b0JBQ25CLGVBQWUsRUFBRSxFQUFFO29CQUNuQixXQUFXLEVBQUUsRUFBRTtvQkFDZixlQUFlLEVBQUUsQ0FBQztvQkFDbEIsa0JBQWtCLEVBQUUsQ0FBQztpQkFDdEI7Z0JBQ0Qsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLHdCQUF3QjthQUN6RCxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUV2RCxpREFBaUQ7WUFDakQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7WUFDdEQsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSwyQkFBWSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFVBQVU7b0JBQ3JELGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7aUJBQzNDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7WUFDMUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1lBQ3pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUM7WUFDckUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7WUFDOUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3ZFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFTSxhQUFhLENBQ2xCLFlBQW9CLEVBQ3BCLFVBQTZDO1FBRTdDLG9FQUFvRTtRQUNwRSxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXhELGtGQUFrRjtRQUNsRixrRkFBa0Y7UUFDbEYsK0NBQStDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLFVBQVUsRUFBRSxjQUFjO1lBQy9DLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7WUFDNUMsQ0FBQyxDQUFDLG9HQUFvRztnQkFDcEcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sYUFBYSxHQUFHLFVBQVUsRUFBRSxZQUFZO1lBQzVDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7WUFDMUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBRXBDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFDM0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsY0FBYyxDQUFDLENBQUM7UUFDM0QsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQztRQUU1RCxNQUFNLFdBQVcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQy9CLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN0QixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUM7UUFFM0IsT0FBTztZQUNMLGNBQWMsRUFBRSxHQUFHLGNBQWMsRUFBRTtZQUNuQyxhQUFhLEVBQUUsR0FBRyxhQUFhLEdBQUcsQ0FBQyxFQUFFLEVBQUUsNEJBQTRCO1lBQ25FLGtCQUFrQixFQUFFLEdBQUcsa0JBQWtCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsNEJBQTRCO1lBQzdFLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRTtZQUNyQixrQkFBa0IsRUFBRSxHQUFHLGtCQUFrQixFQUFFO1lBQzNDLHNCQUFzQixFQUFFLE1BQU07WUFDOUIsV0FBVyxFQUFFLEdBQUcsV0FBVyxHQUFHLENBQUMsRUFBRSxFQUFFLDRCQUE0QjtZQUMvRCxXQUFXLEVBQUUsR0FBRyxXQUFXLEVBQUU7WUFDN0IsY0FBYyxFQUFFLEdBQUcsY0FBYyxFQUFFO1NBQ3BDLENBQUM7SUFDSixDQUFDOztBQW5PSCx3Q0FvT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDdXN0b21SZXNvdXJjZSxcbiAgRHVyYXRpb24sXG4gIFJlbW92YWxQb2xpY3ksXG4gIFN0YWNrLFxuICBhd3NfbGFtYmRhLFxuICBhd3NfbG9ncyxcbiAgYXdzX2VjMiBhcyBlYzIsXG4gIGF3c19yZHMgYXMgcmRzLFxuICBhd3Nfc2VjcmV0c21hbmFnZXIgYXMgc2VjcmV0c21hbmFnZXIsXG4gIGF3c19zc20gYXMgc3NtLFxufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzLFxuICBERUZBVUxUX1BHU1RBQ19WRVJTSU9OLFxuICByZXNvbHZlTGFtYmRhQ29kZSxcbn0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBQZ0JvdW5jZXIgfSBmcm9tIFwiLi9QZ0JvdW5jZXJcIjtcbmltcG9ydCB7IFBhdGNoTWFuYWdlciB9IGZyb20gXCIuL1BhdGNoTWFuYWdlclwiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5jb25zdCBpbnN0YW5jZVNpemVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0gcmVxdWlyZShcIi4vaW5zdGFuY2UtbWVtb3J5Lmpzb25cIik7XG5cbmxldCBkZWZhdWx0UGdTVEFDQ3VzdG9tT3B0aW9uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgbW9zYWljX2luZGV4OiBcIlRSVUVcIixcbn07XG5cbmZ1bmN0aW9uIGhhc1ZwYyhcbiAgaW5zdGFuY2U6IHJkcy5EYXRhYmFzZUluc3RhbmNlIHwgcmRzLklEYXRhYmFzZUluc3RhbmNlLFxuKTogaW5zdGFuY2UgaXMgcmRzLkRhdGFiYXNlSW5zdGFuY2Uge1xuICByZXR1cm4gKGluc3RhbmNlIGFzIHJkcy5EYXRhYmFzZUluc3RhbmNlKS52cGMgIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb21wdXRlcyBhIGNvbnRlbnQtYmFzZWQgaGFzaCBmb3IgTGFtYmRhIERvY2tlciBidWlsZCBhc3NldHMuXG4gKlxuICogVGhpcyBoYXNoIGluY2x1ZGVzOlxuICogLSBEb2NrZXJmaWxlIGNvbnRlbnRcbiAqIC0gSGFuZGxlciBjb2RlIGNvbnRlbnRcbiAqIC0gQnVpbGQgYXJndW1lbnRzIChQR1NUQUNfVkVSU0lPTiwgUFlUSE9OX1ZFUlNJT04pXG4gKlxuICogQHBhcmFtIGJhc2VQYXRoIC0gQmFzZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgYm9vdHN0cmFwcGVyX3J1bnRpbWUgZm9sZGVyXG4gKiBAcGFyYW0gYnVpbGRBcmdzIC0gRG9ja2VyIGJ1aWxkIGFyZ3VtZW50cyB0aGF0IGFmZmVjdCB0aGUgTGFtYmRhXG4gKiBAcmV0dXJucyBTSEEyNTYgaGFzaCBhcyBoZXggc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGNvbXB1dGVMYW1iZGFDb2RlSGFzaChcbiAgYmFzZVBhdGg6IHN0cmluZyxcbiAgYnVpbGRBcmdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgaGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKFwic2hhMjU2XCIpO1xuXG4gIC8vIEhhc2ggRG9ja2VyZmlsZSBjb250ZW50XG4gIGNvbnN0IGRvY2tlcmZpbGVQYXRoID0gcGF0aC5qb2luKGJhc2VQYXRoLCBcImJvb3RzdHJhcHBlcl9ydW50aW1lL0RvY2tlcmZpbGVcIik7XG4gIGNvbnN0IGRvY2tlcmZpbGVDb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGRvY2tlcmZpbGVQYXRoLCBcInV0ZjhcIik7XG4gIGhhc2gudXBkYXRlKGBEb2NrZXJmaWxlOiR7ZG9ja2VyZmlsZUNvbnRlbnR9YCk7XG5cbiAgLy8gSGFzaCBoYW5kbGVyIGNvZGVcbiAgY29uc3QgaGFuZGxlclBhdGggPSBwYXRoLmpvaW4oYmFzZVBhdGgsIFwiYm9vdHN0cmFwcGVyX3J1bnRpbWUvaGFuZGxlci5weVwiKTtcbiAgY29uc3QgaGFuZGxlckNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoaGFuZGxlclBhdGgsIFwidXRmOFwiKTtcbiAgaGFzaC51cGRhdGUoYGhhbmRsZXI6JHtoYW5kbGVyQ29udGVudH1gKTtcblxuICAvLyBIYXNoIGJ1aWxkIGFyZ3VtZW50cyBpbiBzb3J0ZWQgb3JkZXIgZm9yIGNvbnNpc3RlbmN5XG4gIGNvbnN0IHNvcnRlZEFyZ3MgPSBPYmplY3Qua2V5cyhidWlsZEFyZ3MpXG4gICAgLnNvcnQoKVxuICAgIC5tYXAoKGtleSkgPT4gYCR7a2V5fT0ke2J1aWxkQXJnc1trZXldfWApXG4gICAgLmpvaW4oXCIsXCIpO1xuICBoYXNoLnVwZGF0ZShgYnVpbGRBcmdzOiR7c29ydGVkQXJnc31gKTtcblxuICByZXR1cm4gaGFzaC5kaWdlc3QoXCJoZXhcIik7XG59XG5cbi8qKlxuICogQW4gUkRTIGluc3RhbmNlIHdpdGggcGdTVEFDIGluc3RhbGxlZCBhbmQgUGdCb3VuY2VyIGNvbm5lY3Rpb24gcG9vbGluZy5cbiAqXG4gKiBUaGlzIGNvbnN0cnVjdCBjcmVhdGVzIGFuIG9wdGltaXplZCBwZ1NUQUMgZGF0YWJhc2Ugc2V0dXAgdGhhdCBpbmNsdWRlczpcbiAqIC0gUkRTIFBvc3RncmVTUUwgaW5zdGFuY2Ugd2l0aCBwZ1NUQUMgZXh0ZW5zaW9uXG4gKiAtIFBnQm91bmNlciBjb25uZWN0aW9uIHBvb2xlciAoZW5hYmxlZCBieSBkZWZhdWx0KVxuICogLSBBdXRvbWF0ZWQgaGVhbHRoIG1vbml0b3Jpbmcgc3lzdGVtXG4gKiAtIE9wdGltaXplZCBkYXRhYmFzZSBwYXJhbWV0ZXJzIGZvciB0aGUgc2VsZWN0ZWQgaW5zdGFuY2UgdHlwZVxuICpcbiAqICMjIENvbm5lY3Rpb24gUG9vbGluZyB3aXRoIFBnQm91bmNlclxuICpcbiAqIEJ5IGRlZmF1bHQsIHRoaXMgY29uc3RydWN0IGRlcGxveXMgUGdCb3VuY2VyIGFzIGEgY29ubmVjdGlvbiBwb29sZXIgcnVubmluZyBvblxuICogYSBkZWRpY2F0ZWQgRUMyIGluc3RhbmNlLiBQZ0JvdW5jZXIgcHJvdmlkZXMgc2V2ZXJhbCBiZW5lZml0czpcbiAqXG4gKiAtICoqQ29ubmVjdGlvbiBNYW5hZ2VtZW50Kio6IFBvb2xzIGFuZCByZXVzZXMgZGF0YWJhc2UgY29ubmVjdGlvbnMgdG8gcmVkdWNlIG92ZXJoZWFkXG4gKiAtICoqUGVyZm9ybWFuY2UqKjogT3B0aW1pemVzIGNvbm5lY3Rpb24gaGFuZGxpbmcgZm9yIGhpZ2gtdHJhZmZpYyBhcHBsaWNhdGlvbnNcbiAqIC0gKipTY2FsYWJpbGl0eSoqOiBBbGxvd3MgbW9yZSBjb25jdXJyZW50IGNvbm5lY3Rpb25zIHRoYW4gdGhlIFJEUyBpbnN0YW5jZSBhbG9uZVxuICogLSAqKkhlYWx0aCBNb25pdG9yaW5nKio6IEluY2x1ZGVzIGNvbXByZWhlbnNpdmUgaGVhbHRoIGNoZWNrcyB0byBlbnN1cmUgYXZhaWxhYmlsaXR5XG4gKlxuICogIyMjIFBnQm91bmNlciBDb25maWd1cmF0aW9uXG4gKiAtIFBvb2wgbW9kZTogVHJhbnNhY3Rpb24tbGV2ZWwgcG9vbGluZyAoZGVmYXVsdClcbiAqIC0gTWF4aW11bSBjbGllbnQgY29ubmVjdGlvbnM6IDEwMDBcbiAqIC0gRGVmYXVsdCBwb29sIHNpemU6IDIwIGNvbm5lY3Rpb25zIHBlciBkYXRhYmFzZS91c2VyIGNvbWJpbmF0aW9uXG4gKiAtIEluc3RhbmNlIHR5cGU6IHQzLm1pY3JvIEVDMiBpbnN0YW5jZVxuICpcbiAqICMjIyBIZWFsdGggQ2hlY2sgU3lzdGVtXG4gKiBUaGUgY29uc3RydWN0IGluY2x1ZGVzIGFuIGF1dG9tYXRlZCBoZWFsdGggY2hlY2sgc3lzdGVtIHRoYXQgdmFsaWRhdGVzOlxuICogLSBQZ0JvdW5jZXIgc2VydmljZSBpcyBydW5uaW5nIGFuZCBsaXN0ZW5pbmcgb24gcG9ydCA1NDMyXG4gKiAtIENvbm5lY3Rpb24gdGVzdHMgdG8gZW5zdXJlIGFjY2Vzc2liaWxpdHlcbiAqIC0gQ2xvdWQtaW5pdCBzZXR1cCBjb21wbGV0aW9uIGJlZm9yZSB2YWxpZGF0aW9uXG4gKiAtIERldGFpbGVkIGRpYWdub3N0aWNzIGZvciB0cm91Ymxlc2hvb3RpbmdcbiAqXG4gKiAjIyMgQ29ubmVjdGlvbiBEZXRhaWxzXG4gKiBXaGVuIFBnQm91bmNlciBpcyBlbmFibGVkLCBhcHBsaWNhdGlvbnMgY29ubmVjdCB0aHJvdWdoIHRoZSBQZ0JvdW5jZXIgaW5zdGFuY2VcbiAqIHJhdGhlciB0aGFuIGRpcmVjdGx5IHRvIFJEUy4gVGhlIGBwZ3N0YWNTZWNyZXRgIGNvbnRhaW5zIGNvbm5lY3Rpb24gaW5mb3JtYXRpb25cbiAqIHBvaW50aW5nIHRvIFBnQm91bmNlciwgYW5kIHRoZSBgY29ubmVjdGlvblRhcmdldGAgcHJvcGVydHkgcmVmZXJzIHRvIHRoZVxuICogUGdCb3VuY2VyIEVDMiBpbnN0YW5jZS5cbiAqXG4gKiBUbyBkaXNhYmxlIFBnQm91bmNlciBhbmQgY29ubmVjdCBkaXJlY3RseSB0byBSRFMsIHNldCBgYWRkUGdib3VuY2VyOiBmYWxzZWAuXG4gKlxuICogVGhpcyBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBgcmRzLkRhdGFiYXNlSW5zdGFuY2VgIGhpZ2hlci1sZXZlbCBjb25zdHJ1Y3RcbiAqIG1ha2luZyB1c2Ugb2YgdGhlIEJvb3RzdHJhcFBnU3RhYyBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBQZ1N0YWNEYXRhYmFzZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGRiOiByZHMuRGF0YWJhc2VJbnN0YW5jZTtcbiAgcGdzdGFjU2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xuICBwcml2YXRlIF9wZ0JvdW5jZXJTZXJ2ZXI/OiBQZ0JvdW5jZXI7XG5cbiAgcHVibGljIHJlYWRvbmx5IHBnc3RhY1ZlcnNpb246IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25UYXJnZXQ6IHJkcy5JRGF0YWJhc2VJbnN0YW5jZSB8IGVjMi5JbnN0YW5jZTtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA/OiBlYzIuU2VjdXJpdHlHcm91cDtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3JldEJvb3RzdHJhcHBlcj86IEN1c3RvbVJlc291cmNlO1xuICBwdWJsaWMgcmVhZG9ubHkgcGdib3VuY2VySGVhbHRoQ2hlY2s/OiBDdXN0b21SZXNvdXJjZTtcbiAgcHVibGljIHJlYWRvbmx5IHBnYm91bmNlckluc3RhbmNlSWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBnU3RhY0RhdGFiYXNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZGVmYXVsdFBhcmFtZXRlcnMgPSB0aGlzLmdldFBhcmFtZXRlcnMoXG4gICAgICBwcm9wcy5pbnN0YW5jZVR5cGU/LnRvU3RyaW5nKCkgfHwgXCJtNS5sYXJnZVwiLFxuICAgICAgcHJvcHMucGFyYW1ldGVycyxcbiAgICApO1xuXG4gICAgY29uc3QgcGFyYW1ldGVyR3JvdXAgPSBuZXcgcmRzLlBhcmFtZXRlckdyb3VwKHRoaXMsIFwicGFyYW1ldGVyR3JvdXBcIiwge1xuICAgICAgZW5naW5lOiBwcm9wcy5lbmdpbmUsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIG1heF9jb25uZWN0aW9uczogZGVmYXVsdFBhcmFtZXRlcnMubWF4Q29ubmVjdGlvbnMsXG4gICAgICAgIHNoYXJlZF9idWZmZXJzOiBkZWZhdWx0UGFyYW1ldGVycy5zaGFyZWRCdWZmZXJzLFxuICAgICAgICBlZmZlY3RpdmVfY2FjaGVfc2l6ZTogZGVmYXVsdFBhcmFtZXRlcnMuZWZmZWN0aXZlQ2FjaGVTaXplLFxuICAgICAgICB3b3JrX21lbTogZGVmYXVsdFBhcmFtZXRlcnMud29ya01lbSxcbiAgICAgICAgbWFpbnRlbmFuY2Vfd29ya19tZW06IGRlZmF1bHRQYXJhbWV0ZXJzLm1haW50ZW5hbmNlV29ya01lbSxcbiAgICAgICAgbWF4X2xvY2tzX3Blcl90cmFuc2FjdGlvbjogZGVmYXVsdFBhcmFtZXRlcnMubWF4TG9ja3NQZXJUcmFuc2FjdGlvbixcbiAgICAgICAgdGVtcF9idWZmZXJzOiBkZWZhdWx0UGFyYW1ldGVycy50ZW1wQnVmZmVycyxcbiAgICAgICAgc2VxX3BhZ2VfY29zdDogZGVmYXVsdFBhcmFtZXRlcnMuc2VxUGFnZUNvc3QsXG4gICAgICAgIHJhbmRvbV9wYWdlX2Nvc3Q6IGRlZmF1bHRQYXJhbWV0ZXJzLnJhbmRvbVBhZ2VDb3N0LFxuICAgICAgICAuLi5wcm9wcy5wYXJhbWV0ZXJzLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHsgcGFyYW1ldGVyczogX3BhcmFtZXRlcnMsIC4uLmRiUHJvcHMgfSA9IHByb3BzO1xuICAgIHRoaXMuZGIgPSBuZXcgcmRzLkRhdGFiYXNlSW5zdGFuY2UodGhpcywgXCJkYlwiLCB7XG4gICAgICBpbnN0YW5jZUlkZW50aWZpZXI6IFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZSxcbiAgICAgIHBhcmFtZXRlckdyb3VwLFxuICAgICAgLi4uZGJQcm9wcyxcbiAgICB9KTtcblxuICAgIHRoaXMucGdzdGFjVmVyc2lvbiA9IHByb3BzLnBnc3RhY1ZlcnNpb24gfHwgREVGQVVMVF9QR1NUQUNfVkVSU0lPTjtcblxuICAgIGNvbnN0IHsgY29kZTogdXNlckNvZGUsIC4uLm90aGVyTGFtYmRhT3B0aW9ucyB9ID1cbiAgICAgIHByb3BzLmJvb3RzdHJhcHBlckxhbWJkYUZ1bmN0aW9uT3B0aW9ucyB8fCB7fTtcblxuICAgIC8vIFN0b3JlIGJ1aWxkIGFyZ3MgZm9yIGhhc2ggY29tcHV0YXRpb25cbiAgICBjb25zdCBidWlsZEFyZ3MgPSB7XG4gICAgICBQWVRIT05fVkVSU0lPTjogXCIzLjEyXCIsXG4gICAgICBQR1NUQUNfVkVSU0lPTjogdGhpcy5wZ3N0YWNWZXJzaW9uLFxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVyID0gbmV3IGF3c19sYW1iZGEuRnVuY3Rpb24odGhpcywgXCJsYW1iZGFcIiwge1xuICAgICAgLy8gZGVmYXVsdHNcbiAgICAgIHJ1bnRpbWU6IGF3c19sYW1iZGEuUnVudGltZS5QWVRIT05fM18xMixcbiAgICAgIGhhbmRsZXI6IFwiaGFuZGxlci5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICBsb2dSZXRlbnRpb246IGF3c19sb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgIGNvZGU6IHJlc29sdmVMYW1iZGFDb2RlKHVzZXJDb2RlLCBfX2Rpcm5hbWUsIHtcbiAgICAgICAgZmlsZTogXCJib290c3RyYXBwZXJfcnVudGltZS9Eb2NrZXJmaWxlXCIsXG4gICAgICAgIGJ1aWxkQXJnczogYnVpbGRBcmdzLFxuICAgICAgfSksXG4gICAgICB2cGM6IGhhc1ZwYyh0aGlzLmRiKSA/IHRoaXMuZGIudnBjIDogcHJvcHMudnBjLFxuICAgICAgYWxsb3dQdWJsaWNTdWJuZXQ6IHRydWUsXG4gICAgICAvLyBvdmVyd3JpdGVzIGRlZmF1bHRzIHdpdGggdXNlci1wcm92aWRlZCBjb25maWd1cmFibGUgcHJvcGVydGllcyxcbiAgICAgIC4uLm90aGVyTGFtYmRhT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIHRoaXMucGdzdGFjU2VjcmV0ID0gbmV3IHNlY3JldHNtYW5hZ2VyLlNlY3JldCh0aGlzLCBcImJvb3RzdHJhcHBlcnNlY3JldFwiLCB7XG4gICAgICBzZWNyZXROYW1lOiBbXG4gICAgICAgIHByb3BzLnNlY3JldHNQcmVmaXggfHwgXCJwZ3N0YWNcIixcbiAgICAgICAgaWQsXG4gICAgICAgIHRoaXMubm9kZS5hZGRyLnNsaWNlKC04KSxcbiAgICAgIF0uam9pbihcIi9cIiksXG4gICAgICBnZW5lcmF0ZVNlY3JldFN0cmluZzoge1xuICAgICAgICBzZWNyZXRTdHJpbmdUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGRibmFtZTogcHJvcHMucGdzdGFjRGJOYW1lIHx8IFwicGdzdGFjXCIsXG4gICAgICAgICAgZW5naW5lOiBcInBvc3RncmVzXCIsXG4gICAgICAgICAgcG9ydDogNTQzMixcbiAgICAgICAgICBob3N0OiB0aGlzLmRiLmluc3RhbmNlRW5kcG9pbnQuaG9zdG5hbWUsXG4gICAgICAgICAgdXNlcm5hbWU6IHByb3BzLnBnc3RhY1VzZXJuYW1lIHx8IFwicGdzdGFjX3VzZXJcIixcbiAgICAgICAgfSksXG4gICAgICAgIGdlbmVyYXRlU3RyaW5nS2V5OiBcInBhc3N3b3JkXCIsXG4gICAgICAgIGV4Y2x1ZGVQdW5jdHVhdGlvbjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBkZXNjcmlwdGlvbjogYFBnU1RBQyBkYXRhYmFzZSBib290c3RyYXBwZWQgYnkgJHtcbiAgICAgICAgU3RhY2sub2YodGhpcykuc3RhY2tOYW1lXG4gICAgICB9YCxcbiAgICB9KTtcblxuICAgIC8vIEFsbG93IGxhbWJkYSB0by4uLlxuICAgIC8vIHJlYWQgbmV3IHVzZXIgc2VjcmV0XG4gICAgdGhpcy5wZ3N0YWNTZWNyZXQuZ3JhbnRSZWFkKGhhbmRsZXIpO1xuICAgIC8vIHJlYWQgZGF0YWJhc2Ugc2VjcmV0XG4gICAgdGhpcy5kYi5zZWNyZXQhLmdyYW50UmVhZChoYW5kbGVyKTtcbiAgICAvLyBjb25uZWN0IHRvIGRhdGFiYXNlXG4gICAgdGhpcy5kYi5jb25uZWN0aW9ucy5hbGxvd0Zyb20oaGFuZGxlciwgZWMyLlBvcnQudGNwKDU0MzIpKTtcblxuICAgIGxldCBjdXN0b21SZXNvdXJjZVByb3BlcnRpZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPVxuICAgICAgcHJvcHMuY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzXG4gICAgICAgID8geyAuLi5kZWZhdWx0UGdTVEFDQ3VzdG9tT3B0aW9ucywgLi4ucHJvcHMuY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzIH1cbiAgICAgICAgOiBkZWZhdWx0UGdTVEFDQ3VzdG9tT3B0aW9ucztcblxuICAgIC8vIHVwZGF0ZSBwcm9wZXJ0aWVzXG4gICAgY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzW1wiY29ubl9zZWNyZXRfYXJuXCJdID0gdGhpcy5kYi5zZWNyZXQhLnNlY3JldEFybjtcbiAgICBjdXN0b21SZXNvdXJjZVByb3BlcnRpZXNbXCJuZXdfdXNlcl9zZWNyZXRfYXJuXCJdID1cbiAgICAgIHRoaXMucGdzdGFjU2VjcmV0LnNlY3JldEFybjtcblxuICAgIC8vIGlmIHByb3BzLmxhbWJkYUZ1bmN0aW9uT3B0aW9ucyBkb2Vzbid0IGhhdmUgJ2NvZGUnIGRlZmluZWQsIHVwZGF0ZSBwZ3N0YWNfdmVyc2lvbiAobmVlZGVkIGZvciBkZWZhdWx0IHJ1bnRpbWUpXG4gICAgaWYgKCF1c2VyQ29kZSkge1xuICAgICAgY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzW1wicGdzdGFjX3ZlcnNpb25cIl0gPSB0aGlzLnBnc3RhY1ZlcnNpb247XG5cbiAgICAgIC8vIEFkZCBjb250ZW50LWJhc2VkIGhhc2ggdG8gZW5zdXJlIHRoZSBMYW1iZGEgZ2V0cyByZS1leGVjdXRlZCBvbmx5IHdoZW4gY29kZSBvciBjb25maWcgY2hhbmdlc1xuICAgICAgY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzW1wiY29kZV9oYXNoXCJdID0gY29tcHV0ZUxhbWJkYUNvZGVIYXNoKFxuICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgIGJ1aWxkQXJncyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZm9yY2UgdGhlIGJvb3RzdHJhcCBwcm9jZXNzIHRvIHJ1biBieSBhZGRpbmcgYSB0aW1lc3RhbXAgd2hpY2ggd2lsbCBlbnN1cmUgdGhlIGN1c3RvbSByZXNvdXJjZSBleGVjdXRlcyB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAgaWYgKHByb3BzLmZvcmNlQm9vdHN0cmFwKSB7XG4gICAgICBjdXN0b21SZXNvdXJjZVByb3BlcnRpZXNbXCJ0aW1lc3RhbXBcIl0gPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgY29uc3QgYm9vdHN0cmFwcGVyID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiYm9vdHN0cmFwcGVyXCIsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogaGFuZGxlci5mdW5jdGlvbkFybixcbiAgICAgIHByb3BlcnRpZXM6IGN1c3RvbVJlc291cmNlUHJvcGVydGllcyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOLCAvLyBUaGlzIHJldGFpbnMgdGhlIGN1c3RvbSByZXNvdXJjZSAod2hpY2ggZG9lc24ndCByZWFsbHkgZXhpc3QpLCBub3QgdGhlIGRhdGFiYXNlXG4gICAgfSk7XG5cbiAgICAvLyBQZ0JvdW5jZXI6IGNvbm5lY3Rpb24gcG9vbGVyY3VzdG9tcmVzb3VyY2UgdHJpZ2dlciBvbiByZWRlcGxveVxuICAgIGNvbnN0IGRlZmF1bHRQZ2JvdW5jZXJJbnN0YW5jZVByb3BzOiBQYXJ0aWFsPGVjMi5JbnN0YW5jZVByb3BzPiA9IHtcbiAgICAgIGluc3RhbmNlTmFtZTogYCR7U3RhY2sub2YodGhpcykuc3RhY2tOYW1lfS1wZ2JvdW5jZXJgLFxuICAgICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlLm9mKFxuICAgICAgICBlYzIuSW5zdGFuY2VDbGFzcy5UMyxcbiAgICAgICAgZWMyLkluc3RhbmNlU2l6ZS5NSUNSTyxcbiAgICAgICksXG4gICAgfTtcbiAgICBjb25zdCBhZGRQZ2JvdW5jZXIgPSBwcm9wcy5hZGRQZ2JvdW5jZXIgPz8gdHJ1ZTtcbiAgICBpZiAoYWRkUGdib3VuY2VyKSB7XG4gICAgICB0aGlzLl9wZ0JvdW5jZXJTZXJ2ZXIgPSBuZXcgUGdCb3VuY2VyKHRoaXMsIFwicGdib3VuY2VyXCIsIHtcbiAgICAgICAgaW5zdGFuY2VQcm9wczoge1xuICAgICAgICAgIC4uLmRlZmF1bHRQZ2JvdW5jZXJJbnN0YW5jZVByb3BzLFxuICAgICAgICAgIC4uLnByb3BzLnBnYm91bmNlckluc3RhbmNlUHJvcHMsXG4gICAgICAgIH0sXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICBkYXRhYmFzZToge1xuICAgICAgICAgIGNvbm5lY3Rpb25zOiB0aGlzLmRiLmNvbm5lY3Rpb25zLFxuICAgICAgICAgIHNlY3JldDogdGhpcy5wZ3N0YWNTZWNyZXQsXG4gICAgICAgIH0sXG4gICAgICAgIGRiTWF4Q29ubmVjdGlvbnM6IHBhcnNlSW50KGRlZmF1bHRQYXJhbWV0ZXJzLm1heENvbm5lY3Rpb25zKSxcbiAgICAgICAgdXNlUHVibGljU3VibmV0OlxuICAgICAgICAgICFwcm9wcy52cGNTdWJuZXRzIHx8XG4gICAgICAgICAgcHJvcHMudnBjU3VibmV0cy5zdWJuZXRUeXBlID09PSBlYzIuU3VibmV0VHlwZS5QVUJMSUMsXG4gICAgICAgIHBnQm91bmNlckNvbmZpZzoge1xuICAgICAgICAgIHBvb2xNb2RlOiBcInRyYW5zYWN0aW9uXCIsXG4gICAgICAgICAgbWF4Q2xpZW50Q29ubjogMTAwMCxcbiAgICAgICAgICBkZWZhdWx0UG9vbFNpemU6IDIwLFxuICAgICAgICAgIG1pblBvb2xTaXplOiAxMCxcbiAgICAgICAgICByZXNlcnZlUG9vbFNpemU6IDUsXG4gICAgICAgICAgcmVzZXJ2ZVBvb2xUaW1lb3V0OiA1LFxuICAgICAgICB9LFxuICAgICAgICBtYWNoaW5lSW1hZ2VTc21QYXJhbWV0ZXI6IHByb3BzLnBnYm91bmNlckFtaVNzbVBhcmFtZXRlcixcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9wZ0JvdW5jZXJTZXJ2ZXIubm9kZS5hZGREZXBlbmRlbmN5KGJvb3RzdHJhcHBlcik7XG5cbiAgICAgIC8vIFBhdGNoaW5nIGluZnJhc3RydWN0dXJlIGZvciBQZ0JvdW5jZXIgaW5zdGFuY2VcbiAgICAgIGNvbnN0IGFkZFBhdGNoTWFuYWdlciA9IHByb3BzLmFkZFBhdGNoTWFuYWdlciA/PyB0cnVlO1xuICAgICAgaWYgKGFkZFBhdGNoTWFuYWdlcikge1xuICAgICAgICBuZXcgUGF0Y2hNYW5hZ2VyKHRoaXMsIFwiUGF0Y2hNYW5hZ2VyXCIsIHtcbiAgICAgICAgICBpbnN0YW5jZUlkOiB0aGlzLl9wZ0JvdW5jZXJTZXJ2ZXIuaW5zdGFuY2UuaW5zdGFuY2VJZCxcbiAgICAgICAgICBtYWludGVuYW5jZVdpbmRvdzogcHJvcHMubWFpbnRlbmFuY2VXaW5kb3csXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnBnc3RhY1NlY3JldCA9IHRoaXMuX3BnQm91bmNlclNlcnZlci5wZ2JvdW5jZXJTZWNyZXQ7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25UYXJnZXQgPSB0aGlzLl9wZ0JvdW5jZXJTZXJ2ZXIuaW5zdGFuY2U7XG4gICAgICB0aGlzLnNlY3VyaXR5R3JvdXAgPSB0aGlzLl9wZ0JvdW5jZXJTZXJ2ZXIuc2VjdXJpdHlHcm91cDtcbiAgICAgIHRoaXMuc2VjcmV0Qm9vdHN0cmFwcGVyID0gdGhpcy5fcGdCb3VuY2VyU2VydmVyLnNlY3JldFVwZGF0ZUNvbXBsZXRlO1xuICAgICAgdGhpcy5wZ2JvdW5jZXJIZWFsdGhDaGVjayA9IHRoaXMuX3BnQm91bmNlclNlcnZlci5oZWFsdGhDaGVjaztcbiAgICAgIHRoaXMucGdib3VuY2VySW5zdGFuY2VJZCA9IHRoaXMuX3BnQm91bmNlclNlcnZlci5pbnN0YW5jZS5pbnN0YW5jZUlkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25UYXJnZXQgPSB0aGlzLmRiO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRQYXJhbWV0ZXJzKFxuICAgIGluc3RhbmNlVHlwZTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM6IFBnU3RhY0RhdGFiYXNlUHJvcHNbXCJwYXJhbWV0ZXJzXCJdLFxuICApOiBEYXRhYmFzZVBhcmFtZXRlcnMge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNsaS9pc3N1ZXMvMTI3OSNpc3N1ZWNvbW1lbnQtOTA5MzE4MjM2XG4gICAgY29uc3QgbWVtb3J5X2luX2tiID0gaW5zdGFuY2VTaXplc1tpbnN0YW5jZVR5cGVdICogMTAyNDtcblxuICAgIC8vIEl0J3Mgb25seSBuZWNlc3NhcnkgdG8gY29uc2lkZXIgcGFzc2VkIGluIHBhcmFtZXRlcnMgZm9yIGFueSB2YWx1ZSB0aGF0IHVzZWQgdG9cbiAgICAvLyBkZXJpdmUgc3Vic2VxdWVudCB2YWx1ZXMuIFZhbHVlcyB0aGF0IGRvbid0IGhhdmUgZGVwZW5kZW5jaWVzIHdpbGwgYmUgb3ZlcnJpZGVuXG4gICAgLy8gd2hlbiB3ZSB1bnBhY2sgdGhlIHBhc3NlZC1pbiB1c2VyIHBhcmFtZXRlcnNcbiAgICBjb25zdCBtYXhDb25uZWN0aW9ucyA9IHBhcmFtZXRlcnM/Lm1heENvbm5lY3Rpb25zXG4gICAgICA/IE51bWJlci5wYXJzZUludChwYXJhbWV0ZXJzLm1heENvbm5lY3Rpb25zKVxuICAgICAgOiAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ0hBUF9MaW1pdHMuaHRtbCNSRFNfTGltaXRzLk1heENvbm5lY3Rpb25zXG4gICAgICAgIE1hdGgubWluKE1hdGgucm91bmQoKG1lbW9yeV9pbl9rYiAqIDEwMjQpIC8gOTUzMTM5MiksIDUwMDApO1xuICAgIGNvbnN0IHNoYXJlZEJ1ZmZlcnMgPSBwYXJhbWV0ZXJzPy5zaGFyZWRCdWZlcnNcbiAgICAgID8gTnVtYmVyLnBhcnNlSW50KHBhcmFtZXRlcnMuc2hhcmVkQnVmZXJzKVxuICAgICAgOiBNYXRoLnJvdW5kKDAuMjUgKiBtZW1vcnlfaW5fa2IpO1xuXG4gICAgY29uc3QgZWZmZWN0aXZlQ2FjaGVTaXplID0gTWF0aC5yb3VuZCgwLjc1ICogbWVtb3J5X2luX2tiKTtcbiAgICBjb25zdCB3b3JrTWVtID0gTWF0aC5mbG9vcihzaGFyZWRCdWZmZXJzIC8gbWF4Q29ubmVjdGlvbnMpO1xuICAgIGNvbnN0IG1haW50ZW5hbmNlV29ya01lbSA9IE1hdGgucm91bmQoMC4yNSAqIHNoYXJlZEJ1ZmZlcnMpO1xuXG4gICAgY29uc3QgdGVtcEJ1ZmZlcnMgPSAxMjggKiAxMDI0O1xuICAgIGNvbnN0IHNlcVBhZ2VDb3N0ID0gMTtcbiAgICBjb25zdCByYW5kb21QYWdlQ29zdCA9IDEuMTtcblxuICAgIHJldHVybiB7XG4gICAgICBtYXhDb25uZWN0aW9uczogYCR7bWF4Q29ubmVjdGlvbnN9YCxcbiAgICAgIHNoYXJlZEJ1ZmZlcnM6IGAke3NoYXJlZEJ1ZmZlcnMgLyA4fWAsIC8vIFJlcHJlc2VudGVkIGluIDhrYiBibG9ja3NcbiAgICAgIGVmZmVjdGl2ZUNhY2hlU2l6ZTogYCR7ZWZmZWN0aXZlQ2FjaGVTaXplIC8gOH1gLCAvLyBSZXByZXNlbnRlZCBpbiA4a2IgYmxvY2tzXG4gICAgICB3b3JrTWVtOiBgJHt3b3JrTWVtfWAsXG4gICAgICBtYWludGVuYW5jZVdvcmtNZW06IGAke21haW50ZW5hbmNlV29ya01lbX1gLFxuICAgICAgbWF4TG9ja3NQZXJUcmFuc2FjdGlvbjogXCIxMDI0XCIsXG4gICAgICB0ZW1wQnVmZmVyczogYCR7dGVtcEJ1ZmZlcnMgLyA4fWAsIC8vIFJlcHJlc2VudGVkIGluIDhrYiBibG9ja3NcbiAgICAgIHNlcVBhZ2VDb3N0OiBgJHtzZXFQYWdlQ29zdH1gLFxuICAgICAgcmFuZG9tUGFnZUNvc3Q6IGAke3JhbmRvbVBhZ2VDb3N0fWAsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBnU3RhY0RhdGFiYXNlUHJvcHMgZXh0ZW5kcyByZHMuRGF0YWJhc2VJbnN0YW5jZVByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgZGF0YWJhc2UgdGhhdCBpcyB0byBiZSBjcmVhdGVkIGFuZCBvbnRvIHdoaWNoIHBnU1RBQyB3aWxsIGJlIGluc3RhbGxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgcGdzdGFjXG4gICAqL1xuICByZWFkb25seSBwZ3N0YWNEYk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgcGdzdGFjIHRvIGluc3RhbGwgb24gdGhlIGRhdGFiYXNlXG4gICAqXG4gICAqIEBkZWZhdWx0IDAuOC41XG4gICAqL1xuICByZWFkb25seSBwZ3N0YWNWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcmVmaXggdG8gYXNzaWduIHRvIHRoZSBnZW5lcmF0ZWQgYHNlY3JldHNfbWFuYWdlci5TZWNyZXRgXG4gICAqXG4gICAqIEBkZWZhdWx0IHBnc3RhY1xuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB1c2VyIHRoYXQgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIGNvbm5lY3RpbmcgdG8gdGhlIHBnU1RBQyBkYXRhYmFzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgcGdzdGFjX3VzZXJcbiAgICovXG4gIHJlYWRvbmx5IHBnc3RhY1VzZXJuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGQgcGdib3VuY2VyIGluc3RhbmNlIGZvciBtYW5hZ2luZyB0cmFmZmljIHRvIHRoZSBwZ1NUQUMgZGF0YWJhc2VcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkUGdib3VuY2VyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvcGVydGllcyBmb3IgdGhlIHBnYm91bmNlciBlYzIgaW5zdGFuY2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZpbmVkIGluIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHJlYWRvbmx5IHBnYm91bmNlckluc3RhbmNlUHJvcHM/OiBlYzIuSW5zdGFuY2VQcm9wcyB8IGFueTtcblxuICAvKipcbiAgICogU1NNIHBhcmFtZXRlciBwYXRoIGZvciB0aGUgUGdCb3VuY2VyIEVDMiBpbnN0YW5jZSBtYWNoaW5lIGltYWdlIChBTUkpLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB0aGUgbGF0ZXN0IFVidW50dSBOb2JsZSBBTUkgKGBjdXJyZW50YCkuIEZvciBzdGFibGUgZGVwbG95bWVudHNcbiAgICogd2hlcmUgRUMyIHJlcGxhY2VtZW50IHNob3VsZCBvbmx5IGhhcHBlbiBvbiBleHBsaWNpdCBpbnRlbnQsIHBpbiB0aGlzIHRvIGFcbiAgICogc3BlY2lmaWMgZGF0ZS12ZXJzaW9uZWQgcGF0aDpcbiAgICogICAvYXdzL3NlcnZpY2UvY2Fub25pY2FsL3VidW50dS9zZXJ2ZXIvbm9ibGUvc3RhYmxlL1lZWVlNTURELlgvYW1kNjQvaHZtL2Vicy1ncDMvYW1pLWlkXG4gICAqXG4gICAqIFRvIGxpc3QgYXZhaWxhYmxlIGRhdGUtdmVyc2lvbmVkIHBhdGhzIGluIHlvdXIgcmVnaW9uOlxuICAgKiAgIGF3cyBzc20gZ2V0LXBhcmFtZXRlcnMtYnktcGF0aCAtLXBhdGggXCIvYXdzL3NlcnZpY2UvY2Fub25pY2FsL3VidW50dS9zZXJ2ZXIvbm9ibGUvc3RhYmxlL1wiIC0tcmVjdXJzaXZlIC0tcXVlcnkgXCJQYXJhbWV0ZXJzWz9lbmRzX3dpdGgoTmFtZSwgJ2FtZDY0L2h2bS9lYnMtZ3AzL2FtaS1pZCcpXS5OYW1lXCJcbiAgICpcbiAgICogU2VlOiBodHRwczovL2RvY3VtZW50YXRpb24udWJ1bnR1LmNvbS9hd3MvYXdzLWhvdy10by9pbnN0YW5jZXMvZmluZC11YnVudHUtaW1hZ2VzL1xuICAgKlxuICAgKiBXaXRoIGFkZFBhdGNoTWFuYWdlcjogdHJ1ZSAoZGVmYXVsdCksIFNTTSBQYXRjaCBNYW5hZ2VyIGhhbmRsZXMgT1Mgc2VjdXJpdHlcbiAgICogdXBkYXRlcyB3aXRob3V0IHJlcXVpcmluZyBpbnN0YW5jZSByZXBsYWNlbWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgL2F3cy9zZXJ2aWNlL2Nhbm9uaWNhbC91YnVudHUvc2VydmVyL25vYmxlL3N0YWJsZS8yMDI2MDIxOC9hbWQ2NC9odm0vZWJzLWdwMy9hbWktaWRcbiAgICovXG4gIHJlYWRvbmx5IHBnYm91bmNlckFtaVNzbVBhcmFtZXRlcj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkIHBhdGNoaW5nIHN5c3RlbSB1c2luZyBBV1MgU1NNIGZvciBwZ2JvdW5jZXIgaW5zdGFuY2UgbWFpbnRlbmFuY2VcbiAgICogYGFkZFBnYm91bmNlcmAgbXVzdCBiZSB0cnVlIGZvciB0aGlzIHRvIGhhdmUgYW4gZWZmZWN0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFkZFBhdGNoTWFuYWdlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBtYWludGVuYW5jZSB3aW5kb3cgZm9yIHBhdGNoaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQSBuZXcgbWFpbnRlbmFuY2Ugd2luZG93IHdpbGwgYmUgY3JlYXRlZCwgZGVmaW5lZCBpbiBjb25zdHJ1Y3RcbiAgICovXG4gIHJlYWRvbmx5IG1haW50ZW5hbmNlV2luZG93Pzogc3NtLkNmbk1haW50ZW5hbmNlV2luZG93O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHByb3BlcnRpZXMgcGFzc2VkIHRvIHRoZSBib290c3RyYXBwZXIgTGFtYmRhIGFzIENsb3VkRm9ybWF0aW9uXG4gICAqIEN1c3RvbSBSZXNvdXJjZSBwcm9wZXJ0aWVzLiBUaGVzZSBhcmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHRzIGFuZCBmb3J3YXJkZWRcbiAgICogdG8gdGhlIGhhbmRsZXIgYXMgYGV2ZW50W1wiUmVzb3VyY2VQcm9wZXJ0aWVzXCJdYC5cbiAgICpcbiAgICogIyMgU3VwcG9ydGVkIHBnU1RBQyBzZXR0aW5nc1xuICAgKlxuICAgKiBFYWNoIHNldHRpbmcgZm9sbG93cyBob25lc3QgYm9vbGVhbiBzZW1hbnRpY3M6IGBcIlRSVUVcImAgZW5hYmxlcywgYFwiRkFMU0VcImBcbiAgICogZGlzYWJsZXMgKHJldmVydHMgdG8gcGdTVEFDJ3MgYnVpbHQtaW4gZGVmYXVsdCksIGFuZCBvbWl0dGluZyB0aGUga2V5XG4gICAqIGVudGlyZWx5IGlzIGEgbm8tb3Ag4oCUIHRoZSBkYXRhYmFzZSBpcyBsZWZ0IGFzLWlzLiBUaGlzIG1lYW5zIHVwZ3JhZGluZ1xuICAgKiB3aXRob3V0IGNoYW5naW5nIGNvbmZpZyBuZXZlciBzaWxlbnRseSBhbHRlcnMgYSBtYW51YWxseS1tYW5hZ2VkIHNldHRpbmcuXG4gICAqXG4gICAqIHwgUHJvcGVydHkgICAgICAgICAgICAgICAgICAgfCBEZWZhdWx0ICB8IERlc2NyaXB0aW9uIHxcbiAgICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfFxuICAgKiB8IGBjb250ZXh0YCAgICAgICAgICAgICAgICAgIHwgKHVuc2V0KSAgfCBFbmFibGUgYENPTlRFWFQ9T05gIGluIHBnU1RBQyAoaXRlbSBjb3VudCBvbiBzZWFyY2gpLiB8XG4gICAqIHwgYG1vc2FpY19pbmRleGAgICAgICAgICAgICAgfCBgXCJUUlVFXCJgIHwgQ3JlYXRlIGEgcGFydGlhbCBpbmRleCBvbiBzZWFyY2hlcyBvZiB0eXBlIGBtb3NhaWNgLiBTZXQgYFwiRkFMU0VcImAgdG8gZHJvcCBpdC4gfFxuICAgKiB8IGB1cGRhdGVfY29sbGVjdGlvbl9leHRlbnRgIHwgKHVuc2V0KSAgfCBBdXRvbWF0aWNhbGx5IHVwZGF0ZSBjb2xsZWN0aW9uIHNwYXRpYWwvdGVtcG9yYWwgZXh0ZW50cyBvbiBpdGVtIGluZ2VzdC4gQ29tYmluZSB3aXRoIGB1c2VfcXVldWVgIHRvIHJlZHVjZSBwZXItdHJhbnNhY3Rpb24gb3ZlcmhlYWQuIHxcbiAgICogfCBgdXNlX3F1ZXVlYCAgICAgICAgICAgICAgICB8ICh1bnNldCkgIHwgUHJvY2VzcyBleHRlbnQgdXBkYXRlcyBhc3luY2hyb25vdXNseSB2aWEgYW4gaW50ZXJuYWwgcXVldWUuIGBcIlRSVUVcImAgaW5zdGFsbHMgcGdfY3JvbiBhbmQgc2NoZWR1bGVzIHRoZSBkcmFpbiBqb2I7IGBcIkZBTFNFXCJgIHJlbW92ZXMgdGhlIGpvYi4gUmVxdWlyZXMgYHBnX2Nyb25gIChzZWUgYmVsb3cpLiB8XG4gICAqIHwgYHBnX2Nyb25fc2NoZWR1bGVgICAgICAgICAgfCBgXCIqXFwvMTAgKiAqICogKlwiYCB8IENyb24gc2NoZWR1bGUgZm9yIGBDQUxMIHJ1bl9xdWV1ZWRfcXVlcmllcygpYC4gT25seSB1c2VkIHdoZW4gYHVzZV9xdWV1ZWAgaXMgYFwiVFJVRVwiYC4gfFxuICAgKlxuICAgKiAjIyBwZ19jcm9uIHJlcXVpcmVtZW50XG4gICAqXG4gICAqIFdoZW4gYHVzZV9xdWV1ZWAgaXMgYFwiVFJVRVwiYCwgdGhlIGJvb3RzdHJhcHBlciBpbnN0YWxscyB0aGUgYHBnX2Nyb25gXG4gICAqIGV4dGVuc2lvbiBhbmQgc2NoZWR1bGVzIGEgam9iIHRvIHBlcmlvZGljYWxseSBkcmFpbiB0aGUgcXVldWUuXG4gICAqIGBwZ19jcm9uYCBtdXN0IGJlIHByZXNlbnQgaW4gYHNoYXJlZF9wcmVsb2FkX2xpYnJhcmllc2AgKipiZWZvcmUqKlxuICAgKiBkZXBsb3ltZW50IG9yIHRoZSBib290c3RyYXAgd2lsbCBmYWlsLiBBZGQgaXQgdmlhIGBwcm9wcy5wYXJhbWV0ZXJzYDpcbiAgICpcbiAgICogYGBgXG4gICAqIHBhcmFtZXRlcnM6IHsgc2hhcmVkX3ByZWxvYWRfbGlicmFyaWVzOiBcInBnX2Nyb25cIiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjdXN0b21SZXNvdXJjZVByb3BlcnRpZXM6IHtcbiAgICogICB1cGRhdGVfY29sbGVjdGlvbl9leHRlbnQ6IFwiVFJVRVwiLFxuICAgKiAgIHVzZV9xdWV1ZTogXCJUUlVFXCIsXG4gICAqICAgcGdfY3Jvbl9zY2hlZHVsZTogXCIqXFwvMTAgKiAqICogKlwiLFxuICAgKiB9XG4gICAqL1xuICByZWFkb25seSBjdXN0b21SZXNvdXJjZVByb3BlcnRpZXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBsYW1iZGEgZnVuY3Rpb24gcHJvcGVydGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZpbmVkIGluIHRoZSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBwZXJMYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xuXG4gIC8qKlxuICAgKiBGb3JjZSByZWRlcGxveW1lbnQgb2YgdGhlIGRhdGFiYXNlIGJvb3RzdHJhcHBlciBMYW1iZGEgb24gZXZlcnkgZGVwbG95LlxuICAgKlxuICAgKiBUaGlzIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIHVzaW5nIGN1c3RvbSBMYW1iZGEgY29kZSB2aWEgYm9vdHN0cmFwcGVyTGFtYmRhRnVuY3Rpb25PcHRpb25zLlxuICAgKiBXaGVuIGVuYWJsZWQsIGEgdGltZXN0YW1wIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGN1c3RvbSByZXNvdXJjZSBwcm9wZXJ0aWVzIHRvIGVuc3VyZVxuICAgKiB0aGUgYm9vdHN0cmFwcGVyIExhbWJkYSBydW5zIG9uIGV2ZXJ5IGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEZvciB0aGUgZGVmYXVsdCBEb2NrZXItYmFzZWQgYm9vdHN0cmFwIGNvZGUsIHRoaXMgZmxhZyBpcyBpZ25vcmVkIGFuZCBhIGNvbnRlbnQtYmFzZWRcbiAgICogaGFzaCBpcyB1c2VkIGluc3RlYWQgKHdoaWNoIGF1dG9tYXRpY2FsbHkgdHJpZ2dlcnMgcmVkZXBsb3ltZW50IHdoZW4gY29kZSBjaGFuZ2VzKS5cbiAgICpcbiAgICogKipBbHRlcm5hdGl2ZSBhcHByb2FjaDoqKiBJbnN0ZWFkIG9mIHVzaW5nIHRoaXMgZmxhZywgeW91IGNhbiB0cmlnZ2VyIGJvb3RzdHJhcCBieVxuICAgKiBtb2RpZnlpbmcgYW55IHByb3BlcnR5IGluIGBjdXN0b21SZXNvdXJjZVByb3BlcnRpZXNgIChlLmcuLCBpbmNyZW1lbnQgYHBnc3RhY192ZXJzaW9uYFxuICAgKiBvciBhZGQgYSBgcmVidWlsZF90cmlnZ2VyYCBwcm9wZXJ0eSB3aXRoIGEgbmV3IHZhbHVlKS4gVGhpcyBnaXZlcyB5b3UgbW9yZSBncmFudWxhclxuICAgKiBjb250cm9sIG92ZXIgd2hlbiByZWRlcGxveW1lbnQgaGFwcGVucy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlQm9vdHN0cmFwPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVBhcmFtZXRlcnMge1xuICAvKipcbiAgICogQGRlZmF1bHQgLSBMRUFTVCh7REJJbnN0YW5jZUNsYXNzTWVtb3J5Lzk1MzEzOTJ9LCA1MDAwKVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29ubmVjdGlvbnM6IHN0cmluZztcblxuICAvKipcbiAgICogTm90ZTogVGhpcyB2YWx1ZSBpcyBtZWFzdXJlZCBpbiA4S0IgYmxvY2tzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAne0RCSW5zdGFuY2VDbGFzc01lbW9yeS8zMjc2OH0nIDI1JSBvZiBpbnN0YW5jZSBtZW1vcnksIGllIGB7KERCSW5zdGFuY2VDbGFzc01lbW9yeS8oMTAyNCo4KSkgKiAwLjI1fWBcbiAgICovXG4gIHJlYWRvbmx5IHNoYXJlZEJ1ZmZlcnM6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgLSA3NSUgb2YgaW5zdGFuY2UgbWVtb3J5XG4gICAqL1xuICByZWFkb25seSBlZmZlY3RpdmVDYWNoZVNpemU6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgLSBzaGFyZWQgYnVmZmVycyBkaXZpZGVkIGJ5IG1heCBjb25uZWN0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgd29ya01lbTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAtIDI1JSBvZiBzaGFyZWQgYnVmZmVyc1xuICAgKi9cbiAgcmVhZG9ubHkgbWFpbnRlbmFuY2VXb3JrTWVtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IDEwMjRcbiAgICovXG4gIHJlYWRvbmx5IG1heExvY2tzUGVyVHJhbnNhY3Rpb246IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgMTMxMTcyICgxMjggKiAxMDI0KVxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcEJ1ZmZlcnM6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgc2VxUGFnZUNvc3Q6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgMS4xXG4gICAqL1xuICByZWFkb25seSByYW5kb21QYWdlQ29zdDogc3RyaW5nO1xufVxuIl19
|
|
@@ -4,6 +4,10 @@ import { CustomLambdaFunctionProps } from "../utils";
|
|
|
4
4
|
export declare class StacIngestor extends Construct {
|
|
5
5
|
table: dynamodb.Table;
|
|
6
6
|
handlerRole: iam.Role;
|
|
7
|
+
/**
|
|
8
|
+
* URL of the Ingestor API.
|
|
9
|
+
*/
|
|
10
|
+
readonly url: string;
|
|
7
11
|
constructor(scope: Construct, id: string, props: StacIngestorProps);
|
|
8
12
|
private buildTable;
|
|
9
13
|
private buildApiLambda;
|
|
@@ -38,13 +38,18 @@ class StacIngestor extends constructs_1.Construct {
|
|
|
38
38
|
lambdaFunctionOptions: props.apiLambdaFunctionOptions,
|
|
39
39
|
pgstacVersion: props.pgstacVersion,
|
|
40
40
|
});
|
|
41
|
-
this.buildApiEndpoint({
|
|
41
|
+
const api = this.buildApiEndpoint({
|
|
42
42
|
handler,
|
|
43
43
|
stage: props.stage,
|
|
44
44
|
endpointConfiguration: props.apiEndpointConfiguration,
|
|
45
45
|
policy: props.apiPolicy,
|
|
46
46
|
ingestorDomainNameOptions: props.ingestorDomainNameOptions,
|
|
47
47
|
});
|
|
48
|
+
this.url = api.url;
|
|
49
|
+
new aws_cdk_lib_1.CfnOutput(this, "ingestor-api-output", {
|
|
50
|
+
exportName: `${aws_cdk_lib_1.Stack.of(this).stackName}-ingestor-url`,
|
|
51
|
+
value: this.url,
|
|
52
|
+
});
|
|
48
53
|
this.buildIngestor({
|
|
49
54
|
table: this.table,
|
|
50
55
|
env: env,
|
|
@@ -181,5 +186,5 @@ class StacIngestor extends constructs_1.Construct {
|
|
|
181
186
|
}
|
|
182
187
|
exports.StacIngestor = StacIngestor;
|
|
183
188
|
_a = JSII_RTTI_SYMBOL_1;
|
|
184
|
-
StacIngestor[_a] = { fqn: "eoapi-cdk.StacIngestor", version: "11.
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQWFxQjtBQUNyQiwyQ0FBdUM7QUFDdkMsb0NBSWtCO0FBRWxCLE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBSXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUUvQixNQUFNLEdBQUcsR0FBMkI7WUFDbEMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztZQUNwQyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQzVCLHdCQUF3QixFQUFFLEdBQUc7WUFDN0IsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3ZCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTztZQUM5QyxHQUFHLEtBQUssQ0FBQyxNQUFNO1NBQ2hCLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkscUJBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3RELFdBQVcsRUFDVCxtSUFBbUk7WUFDckksU0FBUyxFQUFFLElBQUkscUJBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQztZQUMzRCxlQUFlLEVBQUU7Z0JBQ2YscUJBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQ3hDLDBDQUEwQyxDQUMzQztnQkFDRCxxQkFBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FDeEMsOENBQThDLENBQy9DO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNq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O2dCQUN6QyxDQUFDLENBQUM7b0JBQ0UsVUFBVSxFQUFFLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVO29CQUN0RCxXQUFXLEVBQUUsS0FBSyxDQUFDLHlCQUF5QixDQUFDLFdBQVc7aUJBQ3pEO2dCQUNILENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBSTVCO1FBQ0MsTUFBTSxrQkFBa0IsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDcEQsT0FBTyxJQUFJLHFCQUFHLENBQUMsZUFBZSxDQUM1QixJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFDM0M7WUFDRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsYUFBYSxFQUFFLElBQUksa0JBQWtCLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNyRCxXQUFXLEVBQUUsS0FBSyxDQUFDLEtBQUs7U0FDekIsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7QUFqUUgsb0NBa1FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXdzX2FwaWdhdGV3YXkgYXMgYXBpZ2F0ZXdheSxcbiAgYXdzX2xvZ3MsXG4gIER1cmF0aW9uLFxuICBhd3NfZHluYW1vZGIgYXMgZHluYW1vZGIsXG4gIGF3c19lYzIgYXMgZWMyLFxuICBhd3NfbGFtYmRhX2V2ZW50X3NvdXJjZXMgYXMgZXZlbnRzLFxuICBhd3NfaWFtIGFzIGlhbSxcbiAgYXdzX2xhbWJkYSBhcyBsYW1iZGEsXG4gIFJlbW92YWxQb2xpY3ksXG4gIGF3c19zZWNyZXRzbWFuYWdlciBhcyBzZWNyZXRzbWFuYWdlcixcbiAgYXdzX3NzbSBhcyBzc20sXG4gIFN0YWNrLFxufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzLFxuICBERUZBVUxUX1BHU1RBQ19WRVJTSU9OLFxuICByZXNvbHZlTGFtYmRhQ29kZSxcbn0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBTdGFjSW5nZXN0b3IgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICB0YWJsZTogZHluYW1vZGIuVGFibGU7XG4gIHB1YmxpYyBoYW5kbGVyUm9sZTogaWFtLlJvbGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0YWNJbmdlc3RvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMudGFibGUgPSB0aGlzLmJ1aWxkVGFibGUoKTtcblxuICAgIGNvbnN0IGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIERZTkFNT0RCX1RBQkxFOiB0aGlzLnRhYmxlLnRhYmxlTmFtZSxcbiAgICAgIFJPT1RfUEFUSDogYC8ke3Byb3BzLnN0YWdlfWAsXG4gICAgICBOT19QWURBTlRJQ19TU01fU0VUVElOR1M6IFwiMVwiLFxuICAgICAgU1RBQ19VUkw6IHByb3BzLnN0YWNVcmwsXG4gICAgICBEQVRBX0FDQ0VTU19ST0xFOiBwcm9wcy5kYXRhQWNjZXNzUm9sZS5yb2xlQXJuLFxuICAgICAgLi4ucHJvcHMuYXBpRW52LFxuICAgIH07XG5cbiAgICB0aGlzLmhhbmRsZXJSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiZXhlY3V0aW9uLXJvbGVcIiwge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUm9sZSB1c2VkIGJ5IFNUQUMgSW5nZXN0b3IuIE1hbnVhbGx5IGRlZmluZWQgc28gdGhhdCB3ZSBjYW4gY2hvb3NlIGEgbmFtZSB0aGF0IGlzIHN1cHBvcnRlZCBieSB0aGUgZGF0YSBhY2Nlc3Mgcm9sZXMgdHJ1c3QgcG9saWN5XCIsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImxhbWJkYS5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICBcInNlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGVcIlxuICAgICAgICApLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgXCJzZXJ2aWNlLXJvbGUvQVdTTGFtYmRhVlBDQWNjZXNzRXhlY3V0aW9uUm9sZVwiXG4gICAgICAgICksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlciA9IHRoaXMuYnVpbGRBcGlMYW1iZGEoe1xuICAgICAgdGFibGU6IHRoaXMudGFibGUsXG4gICAgICBlbnYsXG4gICAgICBkYXRhQWNjZXNzUm9sZTogcHJvcHMuZGF0YUFjY2Vzc1JvbGUsXG4gICAgICBzdGFnZTogcHJvcHMuc3RhZ2UsXG4gICAgICBkYlNlY3JldDogcHJvcHMuc3RhY0RiU2VjcmV0LFxuICAgICAgZGJWcGM6IHByb3BzLnZwYyxcbiAgICAgIGRiU2VjdXJpdHlHcm91cDogcHJvcHMuc3RhY0RiU2VjdXJpdHlHcm91cCxcbiAgICAgIHN1Ym5ldFNlbGVjdGlvbjogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgbGFtYmRhRnVuY3Rpb25PcHRpb25zOiBwcm9wcy5hcGlMYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gICAgICBwZ3N0YWNWZXJzaW9uOiBwcm9wcy5wZ3N0YWNWZXJzaW9uLFxuICAgIH0pO1xuXG4gICAgdGhpcy5idWlsZEFwaUVuZHBvaW50KHtcbiAgICAgIGhhbmRsZXIsXG4gICAgICBzdGFnZTogcHJvcHMuc3RhZ2UsXG4gICAgICBlbmRwb2ludENvbmZpZ3VyYXRpb246IHByb3BzLmFwaUVuZHBvaW50Q29uZmlndXJhdGlvbixcbiAgICAgIHBvbGljeTogcHJvcHMuYXBpUG9saWN5LFxuICAgICAgaW5nZXN0b3JEb21haW5OYW1lT3B0aW9uczogcHJvcHMuaW5nZXN0b3JEb21haW5OYW1lT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIHRoaXMuYnVpbGRJbmdlc3Rvcih7XG4gICAgICB0YWJsZTogdGhpcy50YWJsZSxcbiAgICAgIGVudjogZW52LFxuICAgICAgZGJTZWNyZXQ6IHByb3BzLnN0YWNEYlNlY3JldCxcbiAgICAgIGRiVnBjOiBwcm9wcy52cGMsXG4gICAgICBkYlNlY3VyaXR5R3JvdXA6IHByb3BzLnN0YWNEYlNlY3VyaXR5R3JvdXAsXG4gICAgICBzdWJuZXRTZWxlY3Rpb246IHByb3BzLnN1Ym5ldFNlbGVjdGlvbixcbiAgICAgIGxhbWJkYUZ1bmN0aW9uT3B0aW9uczogcHJvcHMuaW5nZXN0b3JMYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gICAgICBwZ3N0YWNWZXJzaW9uOiBwcm9wcy5wZ3N0YWNWZXJzaW9uLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWdpc3RlclNzbVBhcmFtZXRlcih7XG4gICAgICBuYW1lOiBcImR5bmFtb2RiX3RhYmxlXCIsXG4gICAgICB2YWx1ZTogdGhpcy50YWJsZS50YWJsZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogXCJOYW1lIG9mIHRhYmxlIHVzZWQgdG8gc3RvcmUgaW5nZXN0aW9uc1wiLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFRhYmxlKCk6IGR5bmFtb2RiLlRhYmxlIHtcbiAgICBjb25zdCB0YWJsZSA9IG5ldyBkeW5hbW9kYi5UYWJsZSh0aGlzLCBcImluZ2VzdGlvbnMtdGFibGVcIiwge1xuICAgICAgcGFydGl0aW9uS2V5OiB7IG5hbWU6IFwiY3JlYXRlZF9ieVwiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgc29ydEtleTogeyBuYW1lOiBcImlkXCIsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICBiaWxsaW5nTW9kZTogZHluYW1vZGIuQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNULFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgc3RyZWFtOiBkeW5hbW9kYi5TdHJlYW1WaWV3VHlwZS5ORVdfSU1BR0UsXG4gICAgfSk7XG5cbiAgICB0YWJsZS5hZGRHbG9iYWxTZWNvbmRhcnlJbmRleCh7XG4gICAgICBpbmRleE5hbWU6IFwic3RhdHVzXCIsXG4gICAgICBwYXJ0aXRpb25LZXk6IHsgbmFtZTogXCJzdGF0dXNcIiwgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcgfSxcbiAgICAgIHNvcnRLZXk6IHsgbmFtZTogXCJjcmVhdGVkX2F0XCIsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGFibGU7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQXBpTGFtYmRhKHByb3BzOiB7XG4gICAgdGFibGU6IGR5bmFtb2RiLklUYWJsZTtcbiAgICBlbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgZGF0YUFjY2Vzc1JvbGU6IGlhbS5JUm9sZTtcbiAgICBzdGFnZTogc3RyaW5nO1xuICAgIGRiU2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xuICAgIGRiVnBjOiB1bmRlZmluZWQgfCBlYzIuSVZwYztcbiAgICBkYlNlY3VyaXR5R3JvdXA6IGVjMi5JU2VjdXJpdHlHcm91cDtcbiAgICBzdWJuZXRTZWxlY3Rpb246IHVuZGVmaW5lZCB8IGVjMi5TdWJuZXRTZWxlY3Rpb247XG4gICAgbGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcbiAgICBwZ3N0YWNWZXJzaW9uPzogc3RyaW5nO1xuICB9KTogbGFtYmRhLkZ1bmN0aW9uIHtcbiAgICBjb25zdCB7IGNvZGU6IHVzZXJDb2RlLCAuLi5vdGhlckxhbWJkYU9wdGlvbnMgfSA9XG4gICAgICBwcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMgfHwge307XG5cbiAgICBjb25zdCBoYW5kbGVyID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcImFwaS1oYW5kbGVyXCIsIHtcbiAgICAgIC8vIGRlZmF1bHRzXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMixcbiAgICAgIGhhbmRsZXI6IFwic3JjLmhhbmRsZXIuaGFuZGxlclwiLFxuICAgICAgbWVtb3J5U2l6ZTogMjA0OCxcbiAgICAgIGxvZ1JldGVudGlvbjogYXdzX2xvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMzApLFxuICAgICAgY29kZTogcmVzb2x2ZUxhbWJkYUNvZGUodXNlckNvZGUsIF9fZGlybmFtZSwge1xuICAgICAgICBmaWxlOiBcInJ1bnRpbWUvRG9ja2VyZmlsZVwiLFxuICAgICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgICBQWVRIT05fVkVSU0lPTjogXCIzLjEyXCIsXG4gICAgICAgICAgUEdTVEFDX1ZFUlNJT046IHByb3BzLnBnc3RhY1ZlcnNpb24gfHwgREVGQVVMVF9QR1NUQUNfVkVSU0lPTixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgYWxsb3dQdWJsaWNTdWJuZXQ6IHRydWUsXG4gICAgICB2cGM6IHByb3BzLmRiVnBjLFxuICAgICAgdnBjU3VibmV0czogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgZW52aXJvbm1lbnQ6IHsgREJfU0VDUkVUX0FSTjogcHJvcHMuZGJTZWNyZXQuc2VjcmV0QXJuLCAuLi5wcm9wcy5lbnYgfSxcbiAgICAgIHJvbGU6IHRoaXMuaGFuZGxlclJvbGUsXG4gICAgICAvLyBvdmVyd3JpdGVzIGRlZmF1bHRzIHdpdGggdXNlci1wcm92aWRlZCBjb25maWd1cmFibGUgcHJvcGVydGllc1xuICAgICAgLi4ub3RoZXJMYW1iZGFPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgLy8gQWxsb3cgaGFuZGxlciB0byByZWFkIERCIHNlY3JldFxuICAgIHByb3BzLmRiU2VjcmV0LmdyYW50UmVhZChoYW5kbGVyKTtcblxuICAgIC8vIEFsbG93IGhhbmRsZXIgdG8gY29ubmVjdCB0byBEQlxuXG4gICAgaWYgKHByb3BzLmRiVnBjKSB7XG4gICAgICBwcm9wcy5kYlNlY3VyaXR5R3JvdXAuYWRkSW5ncmVzc1J1bGUoXG4gICAgICAgIGhhbmRsZXIuY29ubmVjdGlvbnMuc2VjdXJpdHlHcm91cHNbMF0sXG4gICAgICAgIGVjMi5Qb3J0LnRjcCg1NDMyKSxcbiAgICAgICAgXCJBbGxvdyBjb25uZWN0aW9ucyBmcm9tIFNUQUMgSW5nZXN0b3JcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm9wcy50YWJsZS5ncmFudFJlYWRXcml0ZURhdGEoaGFuZGxlcik7XG5cbiAgICByZXR1cm4gaGFuZGxlcjtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJbmdlc3Rvcihwcm9wczoge1xuICAgIHRhYmxlOiBkeW5hbW9kYi5JVGFibGU7XG4gICAgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGRiU2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xuICAgIGRiVnBjOiB1bmRlZmluZWQgfCBlYzIuSVZwYztcbiAgICBkYlNlY3VyaXR5R3JvdXA6IGVjMi5JU2VjdXJpdHlHcm91cDtcbiAgICBzdWJuZXRTZWxlY3Rpb246IHVuZGVmaW5lZCB8IGVjMi5TdWJuZXRTZWxlY3Rpb247XG4gICAgbGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcbiAgICBwZ3N0YWNWZXJzaW9uPzogc3RyaW5nO1xuICB9KTogbGFtYmRhLkZ1bmN0aW9uIHtcbiAgICBjb25zdCB7IGNvZGU6IHVzZXJDb2RlLCAuLi5vdGhlckxhbWJkYU9wdGlvbnMgfSA9XG4gICAgICBwcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMgfHwge307XG4gICAgY29uc3QgaGFuZGxlciA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJzdGFjLWluZ2VzdG9yXCIsIHtcbiAgICAgIC8vIGRlZmF1bHRzXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMixcbiAgICAgIGhhbmRsZXI6IFwic3JjLmluZ2VzdG9yLmhhbmRsZXJcIixcbiAgICAgIG1lbW9yeVNpemU6IDIwNDgsXG4gICAgICBsb2dSZXRlbnRpb246IGF3c19sb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDE4MCksXG4gICAgICBjb2RlOiByZXNvbHZlTGFtYmRhQ29kZSh1c2VyQ29kZSwgX19kaXJuYW1lLCB7XG4gICAgICAgIGZpbGU6IFwicnVudGltZS9Eb2NrZXJmaWxlXCIsXG4gICAgICAgIGJ1aWxkQXJnczoge1xuICAgICAgICAgIFBZVEhPTl9WRVJTSU9OOiBcIjMuMTJcIixcbiAgICAgICAgICBQR1NUQUNfVkVSU0lPTjogcHJvcHMucGdzdGFjVmVyc2lvbiB8fCBERUZBVUxUX1BHU1RBQ19WRVJTSU9OLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICB2cGM6IHByb3BzLmRiVnBjLFxuICAgICAgdnBjU3VibmV0czogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgYWxsb3dQdWJsaWNTdWJuZXQ6IHRydWUsXG4gICAgICBlbnZpcm9ubWVudDogeyBEQl9TRUNSRVRfQVJOOiBwcm9wcy5kYlNlY3JldC5zZWNyZXRBcm4sIC4uLnByb3BzLmVudiB9LFxuICAgICAgcm9sZTogdGhpcy5oYW5kbGVyUm9sZSxcbiAgICAgIC8vIG92ZXJ3cml0ZXMgZGVmYXVsdHMgd2l0aCB1c2VyLXByb3ZpZGVkIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzXG4gICAgICAuLi5vdGhlckxhbWJkYU9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBBbGxvdyBoYW5kbGVyIHRvIHJlYWQgREIgc2VjcmV0XG4gICAgcHJvcHMuZGJTZWNyZXQuZ3JhbnRSZWFkKGhhbmRsZXIpO1xuXG4gICAgLy8gQWxsb3cgaGFuZGxlciB0byBjb25uZWN0IHRvIERCXG4gICAgaWYgKHByb3BzLmRiVnBjKSB7XG4gICAgICBwcm9wcy5kYlNlY3VyaXR5R3JvdXAuYWRkSW5ncmVzc1J1bGUoXG4gICAgICAgIGhhbmRsZXIuY29ubmVjdGlvbnMuc2VjdXJpdHlHcm91cHNbMF0sXG4gICAgICAgIGVjMi5Qb3J0LnRjcCg1NDMyKSxcbiAgICAgICAgXCJBbGxvdyBjb25uZWN0aW9ucyBmcm9tIFNUQUMgSW5nZXN0b3JcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBBbGxvdyBoYW5kbGVyIHRvIHdyaXRlIHJlc3VsdHMgYmFjayB0byBEQlxuICAgIHByb3BzLnRhYmxlLmdyYW50V3JpdGVEYXRhKGhhbmRsZXIpO1xuXG4gICAgLy8gVHJpZ2dlciBoYW5kbGVyIGZyb20gd3JpdGVzIHRvIER5bmFtb0RCIHRhYmxlXG4gICAgaGFuZGxlci5hZGRFdmVudFNvdXJjZShcbiAgICAgIG5ldyBldmVudHMuRHluYW1vRXZlbnRTb3VyY2UocHJvcHMudGFibGUsIHtcbiAgICAgICAgLy8gUmVhZCB3aGVuIGJhdGNoZXMgcmVhY2ggc2l6ZS4uLlxuICAgICAgICBiYXRjaFNpemU6IDEwMDAsXG4gICAgICAgIC8vIC4uLiBvciB3aGVuIHdpbmRvdyBpcyByZWFjaGVkLlxuICAgICAgICBtYXhCYXRjaGluZ1dpbmRvdzogRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICAgIC8vIFJlYWQgb2xkZXN0IGRhdGEgZmlyc3QuXG4gICAgICAgIHN0YXJ0aW5nUG9zaXRpb246IGxhbWJkYS5TdGFydGluZ1Bvc2l0aW9uLlRSSU1fSE9SSVpPTixcbiAgICAgICAgcmV0cnlBdHRlbXB0czogMSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBoYW5kbGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEFwaUVuZHBvaW50KHByb3BzOiB7XG4gICAgaGFuZGxlcjogbGFtYmRhLklGdW5jdGlvbjtcbiAgICBzdGFnZTogc3RyaW5nO1xuICAgIHBvbGljeT86IGlhbS5Qb2xpY3lEb2N1bWVudDtcbiAgICBlbmRwb2ludENvbmZpZ3VyYXRpb24/OiBhcGlnYXRld2F5LkVuZHBvaW50Q29uZmlndXJhdGlvbjtcbiAgICBpbmdlc3RvckRvbWFpbk5hbWVPcHRpb25zPzogYXBpZ2F0ZXdheS5Eb21haW5OYW1lT3B0aW9ucztcbiAgfSk6IGFwaWdhdGV3YXkuTGFtYmRhUmVzdEFwaSB7XG4gICAgcmV0dXJuIG5ldyBhcGlnYXRld2F5LkxhbWJkYVJlc3RBcGkoXG4gICAgICB0aGlzLFxuICAgICAgYCR7U3RhY2sub2YodGhpcykuc3RhY2tOYW1lfS1pbmdlc3Rvci1hcGlgLFxuICAgICAge1xuICAgICAgICBoYW5kbGVyOiBwcm9wcy5oYW5kbGVyLFxuICAgICAgICBwcm94eTogdHJ1ZSxcblxuICAgICAgICBjbG91ZFdhdGNoUm9sZTogdHJ1ZSxcbiAgICAgICAgZGVwbG95T3B0aW9uczogeyBzdGFnZU5hbWU6IHByb3BzLnN0YWdlIH0sXG4gICAgICAgIGVuZHBvaW50RXhwb3J0TmFtZTogYCR7U3RhY2sub2YodGhpcyl9LWluZ2VzdG9yLWFwaWAsXG5cbiAgICAgICAgZW5kcG9pbnRDb25maWd1cmF0aW9uOiBwcm9wcy5lbmRwb2ludENvbmZpZ3VyYXRpb24sXG4gICAgICAgIHBvbGljeTogcHJvcHMucG9saWN5LFxuXG4gICAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmluZ2VzdG9yRG9tYWluTmFtZU9wdGlvbnNcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZG9tYWluTmFtZTogcHJvcHMuaW5nZXN0b3JEb21haW5OYW1lT3B0aW9ucy5kb21haW5OYW1lLFxuICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZTogcHJvcHMuaW5nZXN0b3JEb21haW5OYW1lT3B0aW9ucy5jZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclNzbVBhcmFtZXRlcihwcm9wczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIH0pOiBzc20uSVN0cmluZ1BhcmFtZXRlciB7XG4gICAgY29uc3QgcGFyYW1ldGVyTmFtZXNwYWNlID0gU3RhY2sub2YodGhpcykuc3RhY2tOYW1lO1xuICAgIHJldHVybiBuZXcgc3NtLlN0cmluZ1BhcmFtZXRlcihcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5uYW1lLnJlcGxhY2UoXCJfXCIsIFwiLVwiKX0tcGFyYW1ldGVyYCxcbiAgICAgIHtcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBwYXJhbWV0ZXJOYW1lOiBgLyR7cGFyYW1ldGVyTmFtZXNwYWNlfS8ke3Byb3BzLm5hbWV9YCxcbiAgICAgICAgc3RyaW5nVmFsdWU6IHByb3BzLnZhbHVlLFxuICAgICAgfVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFjSW5nZXN0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBBUk4gb2YgQVdTIFJvbGUgdXNlZCB0byB2YWxpZGF0ZSBhY2Nlc3MgdG8gUzMgZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YUFjY2Vzc1JvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVVJMIG9mIFNUQUMgQVBJXG4gICAqL1xuICByZWFkb25seSBzdGFjVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0YWdlIG9mIGRlcGxveW1lbnQgKGUuZy4gYGRldmAsIGBwcm9kYClcbiAgICovXG4gIHJlYWRvbmx5IHN0YWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNlY3JldCBjb250YWluaW5nIHBnU1RBQyBEQiBjb25uZWN0aW9uIGluZm9ybWF0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFjRGJTZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG5cbiAgLyoqXG4gICAqIFZQQyBydW5uaW5nIHBnU1RBQyBEQlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFNlY3VyaXR5IEdyb3VwIHVzZWQgYnkgcGdTVEFDIERCXG4gICAqL1xuICByZWFkb25seSBzdGFjRGJTZWN1cml0eUdyb3VwOiBlYzIuSVNlY3VyaXR5R3JvdXA7XG5cbiAgLyoqXG4gICAqIFN1Ym5ldCBpbnRvIHdoaWNoIHRoZSBsYW1iZGEgc2hvdWxkIGJlIGRlcGxveWVkIGlmIHVzaW5nIGEgVlBDXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRTZWxlY3Rpb24/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYmUgc2VudCB0byBMYW1iZGEuXG4gICAqL1xuICByZWFkb25seSBhcGlFbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBBUEkgRW5kcG9pbnQgQ29uZmlndXJhdGlvbiwgdXNlZnVsIGZvciBjcmVhdGluZyBwcml2YXRlIEFQSXMuXG4gICAqL1xuICByZWFkb25seSBhcGlFbmRwb2ludENvbmZpZ3VyYXRpb24/OiBhcGlnYXRld2F5LkVuZHBvaW50Q29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQVBJIFBvbGljeSBEb2N1bWVudCwgdXNlZnVsIGZvciBjcmVhdGluZyBwcml2YXRlIEFQSXMuXG4gICAqL1xuICByZWFkb25seSBhcGlQb2xpY3k/OiBpYW0uUG9saWN5RG9jdW1lbnQ7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBEb21haW4gTmFtZSBPcHRpb25zIGZvciBJbmdlc3RvciBBUElcbiAgICovXG4gIHJlYWRvbmx5IGluZ2VzdG9yRG9tYWluTmFtZU9wdGlvbnM/OiBhcGlnYXRld2F5LkRvbWFpbk5hbWVPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBsYW1iZGEgZnVuY3Rpb24gcHJvcGVydGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IHNldHRpbmdzIGFyZSBkZWZpbmVkIGluIHRoZSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBhcGlMYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBsYW1iZGEgZnVuY3Rpb24gcHJvcGVydGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IHNldHRpbmdzIGFyZSBkZWZpbmVkIGluIHRoZSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBpbmdlc3RvckxhbWJkYUZ1bmN0aW9uT3B0aW9ucz86IEN1c3RvbUxhbWJkYUZ1bmN0aW9uUHJvcHM7XG5cbiAgLyoqXG4gICAqIHBnc3RhYyB2ZXJzaW9uIC0gbXVzdCBtYXRjaCB0aGUgdmVyc2lvbiBpbnN0YWxsZWQgb24gdGhlIHBnc3RhYyBkYXRhYmFzZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgc2V0dGluZ3MgYXJlIGRlZmluZWQgaW4gdGhlIGNvbnN0cnVjdFxuICAgKi9cbiAgcmVhZG9ubHkgcGdzdGFjVmVyc2lvbj86IHN0cmluZztcbn1cbiJdfQ==
|
|
189
|
+
StacIngestor[_a] = { fqn: "eoapi-cdk.StacIngestor", version: "11.5.0" };
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQWNxQjtBQUNyQiwyQ0FBdUM7QUFDdkMsb0NBSWtCO0FBRWxCLE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBU3pDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUUvQixNQUFNLEdBQUcsR0FBMkI7WUFDbEMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztZQUNwQyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQzVCLHdCQUF3QixFQUFFLEdBQUc7WUFDN0IsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3ZCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTztZQUM5QyxHQUFHLEtBQUssQ0FBQyxNQUFNO1NBQ2hCLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkscUJBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3RELFdBQVcsRUFDVCxtSUFBbUk7WUFDckksU0FBUyxFQUFFLElBQUkscUJBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQztZQUMzRCxlQUFlLEVBQUU7Z0JBQ2YscUJBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQ3hDLDBDQUEwQyxDQUMzQztnQkFDRCxxQkFBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FDeEMsOENBQThDLENBQy9DO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNq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RUFBRSxJQUFJO1lBQ3BCLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ3pDLGtCQUFrQixFQUFFLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFFcEQscUJBQXFCLEVBQUUsS0FBSyxDQUFDLHFCQUFxQjtZQUNsRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFFcEIsVUFBVSxFQUFFLEtBQUssQ0FBQyx5QkFBeUI7Z0JBQ3pDLENBQUMsQ0FBQztvQkFDRSxVQUFVLEVBQUUsS0FBSyxDQUFDLHlCQUF5QixDQUFDLFVBQVU7b0JBQ3RELFdBQVcsRUFBRSxLQUFLLENBQUMseUJBQXlCLENBQUMsV0FBVztpQkFDekQ7Z0JBQ0gsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FJNUI7UUFDQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNwRCxPQUFPLElBQUkscUJBQUcsQ0FBQyxlQUFlLENBQzVCLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUMzQztZQUNFLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixhQUFhLEVBQUUsSUFBSSxrQkFBa0IsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ3JELFdBQVcsRUFBRSxLQUFLLENBQUMsS0FBSztTQUN6QixDQUNGLENBQUM7SUFDSixDQUFDOztBQTdRSCxvQ0E4UUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhd3NfYXBpZ2F0ZXdheSBhcyBhcGlnYXRld2F5LFxuICBhd3NfbG9ncyxcbiAgQ2ZuT3V0cHV0LFxuICBEdXJhdGlvbixcbiAgYXdzX2R5bmFtb2RiIGFzIGR5bmFtb2RiLFxuICBhd3NfZWMyIGFzIGVjMixcbiAgYXdzX2xhbWJkYV9ldmVudF9zb3VyY2VzIGFzIGV2ZW50cyxcbiAgYXdzX2lhbSBhcyBpYW0sXG4gIGF3c19sYW1iZGEgYXMgbGFtYmRhLFxuICBSZW1vdmFsUG9saWN5LFxuICBhd3Nfc2VjcmV0c21hbmFnZXIgYXMgc2VjcmV0c21hbmFnZXIsXG4gIGF3c19zc20gYXMgc3NtLFxuICBTdGFjayxcbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcyxcbiAgREVGQVVMVF9QR1NUQUNfVkVSU0lPTixcbiAgcmVzb2x2ZUxhbWJkYUNvZGUsXG59IGZyb20gXCIuLi91dGlsc1wiO1xuXG5leHBvcnQgY2xhc3MgU3RhY0luZ2VzdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgdGFibGU6IGR5bmFtb2RiLlRhYmxlO1xuICBwdWJsaWMgaGFuZGxlclJvbGU6IGlhbS5Sb2xlO1xuXG4gIC8qKlxuICAgKiBVUkwgb2YgdGhlIEluZ2VzdG9yIEFQSS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1cmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhY0luZ2VzdG9yUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy50YWJsZSA9IHRoaXMuYnVpbGRUYWJsZSgpO1xuXG4gICAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgRFlOQU1PREJfVEFCTEU6IHRoaXMudGFibGUudGFibGVOYW1lLFxuICAgICAgUk9PVF9QQVRIOiBgLyR7cHJvcHMuc3RhZ2V9YCxcbiAgICAgIE5PX1BZREFOVElDX1NTTV9TRVRUSU5HUzogXCIxXCIsXG4gICAgICBTVEFDX1VSTDogcHJvcHMuc3RhY1VybCxcbiAgICAgIERBVEFfQUNDRVNTX1JPTEU6IHByb3BzLmRhdGFBY2Nlc3NSb2xlLnJvbGVBcm4sXG4gICAgICAuLi5wcm9wcy5hcGlFbnYsXG4gICAgfTtcblxuICAgIHRoaXMuaGFuZGxlclJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgXCJleGVjdXRpb24tcm9sZVwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSb2xlIHVzZWQgYnkgU1RBQyBJbmdlc3Rvci4gTWFudWFsbHkgZGVmaW5lZCBzbyB0aGF0IHdlIGNhbiBjaG9vc2UgYSBuYW1lIHRoYXQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBkYXRhIGFjY2VzcyByb2xlcyB0cnVzdCBwb2xpY3lcIixcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwibGFtYmRhLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFxuICAgICAgICAgIFwic2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZVwiXG4gICAgICAgICksXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICBcInNlcnZpY2Utcm9sZS9BV1NMYW1iZGFWUENBY2Nlc3NFeGVjdXRpb25Sb2xlXCJcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5idWlsZEFwaUxhbWJkYSh7XG4gICAgICB0YWJsZTogdGhpcy50YWJsZSxcbiAgICAgIGVudixcbiAgICAgIGRhdGFBY2Nlc3NSb2xlOiBwcm9wcy5kYXRhQWNjZXNzUm9sZSxcbiAgICAgIHN0YWdlOiBwcm9wcy5zdGFnZSxcbiAgICAgIGRiU2VjcmV0OiBwcm9wcy5zdGFjRGJTZWNyZXQsXG4gICAgICBkYlZwYzogcHJvcHMudnBjLFxuICAgICAgZGJTZWN1cml0eUdyb3VwOiBwcm9wcy5zdGFjRGJTZWN1cml0eUdyb3VwLFxuICAgICAgc3VibmV0U2VsZWN0aW9uOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBsYW1iZGFGdW5jdGlvbk9wdGlvbnM6IHByb3BzLmFwaUxhbWJkYUZ1bmN0aW9uT3B0aW9ucyxcbiAgICAgIHBnc3RhY1ZlcnNpb246IHByb3BzLnBnc3RhY1ZlcnNpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBhcGkgPSB0aGlzLmJ1aWxkQXBpRW5kcG9pbnQoe1xuICAgICAgaGFuZGxlcixcbiAgICAgIHN0YWdlOiBwcm9wcy5zdGFnZSxcbiAgICAgIGVuZHBvaW50Q29uZmlndXJhdGlvbjogcHJvcHMuYXBpRW5kcG9pbnRDb25maWd1cmF0aW9uLFxuICAgICAgcG9saWN5OiBwcm9wcy5hcGlQb2xpY3ksXG4gICAgICBpbmdlc3RvckRvbWFpbk5hbWVPcHRpb25zOiBwcm9wcy5pbmdlc3RvckRvbWFpbk5hbWVPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgdGhpcy51cmwgPSBhcGkudXJsO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcImluZ2VzdG9yLWFwaS1vdXRwdXRcIiwge1xuICAgICAgZXhwb3J0TmFtZTogYCR7U3RhY2sub2YodGhpcykuc3RhY2tOYW1lfS1pbmdlc3Rvci11cmxgLFxuICAgICAgdmFsdWU6IHRoaXMudXJsLFxuICAgIH0pO1xuXG4gICAgdGhpcy5idWlsZEluZ2VzdG9yKHtcbiAgICAgIHRhYmxlOiB0aGlzLnRhYmxlLFxuICAgICAgZW52OiBlbnYsXG4gICAgICBkYlNlY3JldDogcHJvcHMuc3RhY0RiU2VjcmV0LFxuICAgICAgZGJWcGM6IHByb3BzLnZwYyxcbiAgICAgIGRiU2VjdXJpdHlHcm91cDogcHJvcHMuc3RhY0RiU2VjdXJpdHlHcm91cCxcbiAgICAgIHN1Ym5ldFNlbGVjdGlvbjogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgbGFtYmRhRnVuY3Rpb25PcHRpb25zOiBwcm9wcy5pbmdlc3RvckxhbWJkYUZ1bmN0aW9uT3B0aW9ucyxcbiAgICAgIHBnc3RhY1ZlcnNpb246IHByb3BzLnBnc3RhY1ZlcnNpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyU3NtUGFyYW1ldGVyKHtcbiAgICAgIG5hbWU6IFwiZHluYW1vZGJfdGFibGVcIixcbiAgICAgIHZhbHVlOiB0aGlzLnRhYmxlLnRhYmxlTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk5hbWUgb2YgdGFibGUgdXNlZCB0byBzdG9yZSBpbmdlc3Rpb25zXCIsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkVGFibGUoKTogZHluYW1vZGIuVGFibGUge1xuICAgIGNvbnN0IHRhYmxlID0gbmV3IGR5bmFtb2RiLlRhYmxlKHRoaXMsIFwiaW5nZXN0aW9ucy10YWJsZVwiLCB7XG4gICAgICBwYXJ0aXRpb25LZXk6IHsgbmFtZTogXCJjcmVhdGVkX2J5XCIsIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICBzb3J0S2V5OiB7IG5hbWU6IFwiaWRcIiwgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcgfSxcbiAgICAgIGJpbGxpbmdNb2RlOiBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBzdHJlYW06IGR5bmFtb2RiLlN0cmVhbVZpZXdUeXBlLk5FV19JTUFHRSxcbiAgICB9KTtcblxuICAgIHRhYmxlLmFkZEdsb2JhbFNlY29uZGFyeUluZGV4KHtcbiAgICAgIGluZGV4TmFtZTogXCJzdGF0dXNcIixcbiAgICAgIHBhcnRpdGlvbktleTogeyBuYW1lOiBcInN0YXR1c1wiLCB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgc29ydEtleTogeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0YWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBcGlMYW1iZGEocHJvcHM6IHtcbiAgICB0YWJsZTogZHluYW1vZGIuSVRhYmxlO1xuICAgIGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBkYXRhQWNjZXNzUm9sZTogaWFtLklSb2xlO1xuICAgIHN0YWdlOiBzdHJpbmc7XG4gICAgZGJTZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG4gICAgZGJWcGM6IHVuZGVmaW5lZCB8IGVjMi5JVnBjO1xuICAgIGRiU2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuICAgIHN1Ym5ldFNlbGVjdGlvbjogdW5kZWZpbmVkIHwgZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbiAgICBsYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xuICAgIHBnc3RhY1ZlcnNpb24/OiBzdHJpbmc7XG4gIH0pOiBsYW1iZGEuRnVuY3Rpb24ge1xuICAgIGNvbnN0IHsgY29kZTogdXNlckNvZGUsIC4uLm90aGVyTGFtYmRhT3B0aW9ucyB9ID1cbiAgICAgIHByb3BzLmxhbWJkYUZ1bmN0aW9uT3B0aW9ucyB8fCB7fTtcblxuICAgIGNvbnN0IGhhbmRsZXIgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwiYXBpLWhhbmRsZXJcIiwge1xuICAgICAgLy8gZGVmYXVsdHNcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzEyLFxuICAgICAgaGFuZGxlcjogXCJzcmMuaGFuZGxlci5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAyMDQ4LFxuICAgICAgbG9nUmV0ZW50aW9uOiBhd3NfbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICBjb2RlOiByZXNvbHZlTGFtYmRhQ29kZSh1c2VyQ29kZSwgX19kaXJuYW1lLCB7XG4gICAgICAgIGZpbGU6IFwicnVudGltZS9Eb2NrZXJmaWxlXCIsXG4gICAgICAgIGJ1aWxkQXJnczoge1xuICAgICAgICAgIFBZVEhPTl9WRVJTSU9OOiBcIjMuMTJcIixcbiAgICAgICAgICBQR1NUQUNfVkVSU0lPTjogcHJvcHMucGdzdGFjVmVyc2lvbiB8fCBERUZBVUxUX1BHU1RBQ19WRVJTSU9OLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBhbGxvd1B1YmxpY1N1Ym5ldDogdHJ1ZSxcbiAgICAgIHZwYzogcHJvcHMuZGJWcGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBlbnZpcm9ubWVudDogeyBEQl9TRUNSRVRfQVJOOiBwcm9wcy5kYlNlY3JldC5zZWNyZXRBcm4sIC4uLnByb3BzLmVudiB9LFxuICAgICAgcm9sZTogdGhpcy5oYW5kbGVyUm9sZSxcbiAgICAgIC8vIG92ZXJ3cml0ZXMgZGVmYXVsdHMgd2l0aCB1c2VyLXByb3ZpZGVkIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzXG4gICAgICAuLi5vdGhlckxhbWJkYU9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBBbGxvdyBoYW5kbGVyIHRvIHJlYWQgREIgc2VjcmV0XG4gICAgcHJvcHMuZGJTZWNyZXQuZ3JhbnRSZWFkKGhhbmRsZXIpO1xuXG4gICAgLy8gQWxsb3cgaGFuZGxlciB0byBjb25uZWN0IHRvIERCXG5cbiAgICBpZiAocHJvcHMuZGJWcGMpIHtcbiAgICAgIHByb3BzLmRiU2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShcbiAgICAgICAgaGFuZGxlci5jb25uZWN0aW9ucy5zZWN1cml0eUdyb3Vwc1swXSxcbiAgICAgICAgZWMyLlBvcnQudGNwKDU0MzIpLFxuICAgICAgICBcIkFsbG93IGNvbm5lY3Rpb25zIGZyb20gU1RBQyBJbmdlc3RvclwiXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3BzLnRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YShoYW5kbGVyKTtcblxuICAgIHJldHVybiBoYW5kbGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEluZ2VzdG9yKHByb3BzOiB7XG4gICAgdGFibGU6IGR5bmFtb2RiLklUYWJsZTtcbiAgICBlbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgZGJTZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG4gICAgZGJWcGM6IHVuZGVmaW5lZCB8IGVjMi5JVnBjO1xuICAgIGRiU2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuICAgIHN1Ym5ldFNlbGVjdGlvbjogdW5kZWZpbmVkIHwgZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbiAgICBsYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xuICAgIHBnc3RhY1ZlcnNpb24/OiBzdHJpbmc7XG4gIH0pOiBsYW1iZGEuRnVuY3Rpb24ge1xuICAgIGNvbnN0IHsgY29kZTogdXNlckNvZGUsIC4uLm90aGVyTGFtYmRhT3B0aW9ucyB9ID1cbiAgICAgIHByb3BzLmxhbWJkYUZ1bmN0aW9uT3B0aW9ucyB8fCB7fTtcbiAgICBjb25zdCBoYW5kbGVyID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcInN0YWMtaW5nZXN0b3JcIiwge1xuICAgICAgLy8gZGVmYXVsdHNcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzEyLFxuICAgICAgaGFuZGxlcjogXCJzcmMuaW5nZXN0b3IuaGFuZGxlclwiLFxuICAgICAgbWVtb3J5U2l6ZTogMjA0OCxcbiAgICAgIGxvZ1JldGVudGlvbjogYXdzX2xvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMTgwKSxcbiAgICAgIGNvZGU6IHJlc29sdmVMYW1iZGFDb2RlKHVzZXJDb2RlLCBfX2Rpcm5hbWUsIHtcbiAgICAgICAgZmlsZTogXCJydW50aW1lL0RvY2tlcmZpbGVcIixcbiAgICAgICAgYnVpbGRBcmdzOiB7XG4gICAgICAgICAgUFlUSE9OX1ZFUlNJT046IFwiMy4xMlwiLFxuICAgICAgICAgIFBHU1RBQ19WRVJTSU9OOiBwcm9wcy5wZ3N0YWNWZXJzaW9uIHx8IERFRkFVTFRfUEdTVEFDX1ZFUlNJT04sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHZwYzogcHJvcHMuZGJWcGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBhbGxvd1B1YmxpY1N1Ym5ldDogdHJ1ZSxcbiAgICAgIGVudmlyb25tZW50OiB7IERCX1NFQ1JFVF9BUk46IHByb3BzLmRiU2VjcmV0LnNlY3JldEFybiwgLi4ucHJvcHMuZW52IH0sXG4gICAgICByb2xlOiB0aGlzLmhhbmRsZXJSb2xlLFxuICAgICAgLy8gb3ZlcndyaXRlcyBkZWZhdWx0cyB3aXRoIHVzZXItcHJvdmlkZWQgY29uZmlndXJhYmxlIHByb3BlcnRpZXNcbiAgICAgIC4uLm90aGVyTGFtYmRhT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIC8vIEFsbG93IGhhbmRsZXIgdG8gcmVhZCBEQiBzZWNyZXRcbiAgICBwcm9wcy5kYlNlY3JldC5ncmFudFJlYWQoaGFuZGxlcik7XG5cbiAgICAvLyBBbGxvdyBoYW5kbGVyIHRvIGNvbm5lY3QgdG8gREJcbiAgICBpZiAocHJvcHMuZGJWcGMpIHtcbiAgICAgIHByb3BzLmRiU2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShcbiAgICAgICAgaGFuZGxlci5jb25uZWN0aW9ucy5zZWN1cml0eUdyb3Vwc1swXSxcbiAgICAgICAgZWMyLlBvcnQudGNwKDU0MzIpLFxuICAgICAgICBcIkFsbG93IGNvbm5lY3Rpb25zIGZyb20gU1RBQyBJbmdlc3RvclwiXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEFsbG93IGhhbmRsZXIgdG8gd3JpdGUgcmVzdWx0cyBiYWNrIHRvIERCXG4gICAgcHJvcHMudGFibGUuZ3JhbnRXcml0ZURhdGEoaGFuZGxlcik7XG5cbiAgICAvLyBUcmlnZ2VyIGhhbmRsZXIgZnJvbSB3cml0ZXMgdG8gRHluYW1vREIgdGFibGVcbiAgICBoYW5kbGVyLmFkZEV2ZW50U291cmNlKFxuICAgICAgbmV3IGV2ZW50cy5EeW5hbW9FdmVudFNvdXJjZShwcm9wcy50YWJsZSwge1xuICAgICAgICAvLyBSZWFkIHdoZW4gYmF0Y2hlcyByZWFjaCBzaXplLi4uXG4gICAgICAgIGJhdGNoU2l6ZTogMTAwMCxcbiAgICAgICAgLy8gLi4uIG9yIHdoZW4gd2luZG93IGlzIHJlYWNoZWQuXG4gICAgICAgIG1heEJhdGNoaW5nV2luZG93OiBEdXJhdGlvbi5zZWNvbmRzKDEwKSxcbiAgICAgICAgLy8gUmVhZCBvbGRlc3QgZGF0YSBmaXJzdC5cbiAgICAgICAgc3RhcnRpbmdQb3NpdGlvbjogbGFtYmRhLlN0YXJ0aW5nUG9zaXRpb24uVFJJTV9IT1JJWk9OLFxuICAgICAgICByZXRyeUF0dGVtcHRzOiAxLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGhhbmRsZXI7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQXBpRW5kcG9pbnQocHJvcHM6IHtcbiAgICBoYW5kbGVyOiBsYW1iZGEuSUZ1bmN0aW9uO1xuICAgIHN0YWdlOiBzdHJpbmc7XG4gICAgcG9saWN5PzogaWFtLlBvbGljeURvY3VtZW50O1xuICAgIGVuZHBvaW50Q29uZmlndXJhdGlvbj86IGFwaWdhdGV3YXkuRW5kcG9pbnRDb25maWd1cmF0aW9uO1xuICAgIGluZ2VzdG9yRG9tYWluTmFtZU9wdGlvbnM/OiBhcGlnYXRld2F5LkRvbWFpbk5hbWVPcHRpb25zO1xuICB9KTogYXBpZ2F0ZXdheS5MYW1iZGFSZXN0QXBpIHtcbiAgICByZXR1cm4gbmV3IGFwaWdhdGV3YXkuTGFtYmRhUmVzdEFwaShcbiAgICAgIHRoaXMsXG4gICAgICBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LWluZ2VzdG9yLWFwaWAsXG4gICAgICB7XG4gICAgICAgIGhhbmRsZXI6IHByb3BzLmhhbmRsZXIsXG4gICAgICAgIHByb3h5OiB0cnVlLFxuXG4gICAgICAgIGNsb3VkV2F0Y2hSb2xlOiB0cnVlLFxuICAgICAgICBkZXBsb3lPcHRpb25zOiB7IHN0YWdlTmFtZTogcHJvcHMuc3RhZ2UgfSxcbiAgICAgICAgZW5kcG9pbnRFeHBvcnROYW1lOiBgJHtTdGFjay5vZih0aGlzKX0taW5nZXN0b3ItYXBpYCxcblxuICAgICAgICBlbmRwb2ludENvbmZpZ3VyYXRpb246IHByb3BzLmVuZHBvaW50Q29uZmlndXJhdGlvbixcbiAgICAgICAgcG9saWN5OiBwcm9wcy5wb2xpY3ksXG5cbiAgICAgICAgZG9tYWluTmFtZTogcHJvcHMuaW5nZXN0b3JEb21haW5OYW1lT3B0aW9uc1xuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBkb21haW5OYW1lOiBwcm9wcy5pbmdlc3RvckRvbWFpbk5hbWVPcHRpb25zLmRvbWFpbk5hbWUsXG4gICAgICAgICAgICAgIGNlcnRpZmljYXRlOiBwcm9wcy5pbmdlc3RvckRvbWFpbk5hbWVPcHRpb25zLmNlcnRpZmljYXRlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyU3NtUGFyYW1ldGVyKHByb3BzOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgfSk6IHNzbS5JU3RyaW5nUGFyYW1ldGVyIHtcbiAgICBjb25zdCBwYXJhbWV0ZXJOYW1lc3BhY2UgPSBTdGFjay5vZih0aGlzKS5zdGFja05hbWU7XG4gICAgcmV0dXJuIG5ldyBzc20uU3RyaW5nUGFyYW1ldGVyKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLm5hbWUucmVwbGFjZShcIl9cIiwgXCItXCIpfS1wYXJhbWV0ZXJgLFxuICAgICAge1xuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgIHBhcmFtZXRlck5hbWU6IGAvJHtwYXJhbWV0ZXJOYW1lc3BhY2V9LyR7cHJvcHMubmFtZX1gLFxuICAgICAgICBzdHJpbmdWYWx1ZTogcHJvcHMudmFsdWUsXG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNJbmdlc3RvclByb3BzIHtcbiAgLyoqXG4gICAqIEFSTiBvZiBBV1MgUm9sZSB1c2VkIHRvIHZhbGlkYXRlIGFjY2VzcyB0byBTMyBkYXRhXG4gICAqL1xuICByZWFkb25seSBkYXRhQWNjZXNzUm9sZTogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBVUkwgb2YgU1RBQyBBUElcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogU3RhZ2Ugb2YgZGVwbG95bWVudCAoZS5nLiBgZGV2YCwgYHByb2RgKVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogU2VjcmV0IGNvbnRhaW5pbmcgcGdTVEFDIERCIGNvbm5lY3Rpb24gaW5mb3JtYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNEYlNlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldDtcblxuICAvKipcbiAgICogVlBDIHJ1bm5pbmcgcGdTVEFDIERCXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcblxuICAvKipcbiAgICogU2VjdXJpdHkgR3JvdXAgdXNlZCBieSBwZ1NUQUMgREJcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNEYlNlY3VyaXR5R3JvdXA6IGVjMi5JU2VjdXJpdHlHcm91cDtcblxuICAvKipcbiAgICogU3VibmV0IGludG8gd2hpY2ggdGhlIGxhbWJkYSBzaG91bGQgYmUgZGVwbG95ZWQgaWYgdXNpbmcgYSBWUENcbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldFNlbGVjdGlvbj86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHZhcmlhYmxlcyB0byBiZSBzZW50IHRvIExhbWJkYS5cbiAgICovXG4gIHJlYWRvbmx5IGFwaUVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEFQSSBFbmRwb2ludCBDb25maWd1cmF0aW9uLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHByaXZhdGUgQVBJcy5cbiAgICovXG4gIHJlYWRvbmx5IGFwaUVuZHBvaW50Q29uZmlndXJhdGlvbj86IGFwaWdhdGV3YXkuRW5kcG9pbnRDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBBUEkgUG9saWN5IERvY3VtZW50LCB1c2VmdWwgZm9yIGNyZWF0aW5nIHByaXZhdGUgQVBJcy5cbiAgICovXG4gIHJlYWRvbmx5IGFwaVBvbGljeT86IGlhbS5Qb2xpY3lEb2N1bWVudDtcblxuICAvKipcbiAgICogQ3VzdG9tIERvbWFpbiBOYW1lIE9wdGlvbnMgZm9yIEluZ2VzdG9yIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgaW5nZXN0b3JEb21haW5OYW1lT3B0aW9ucz86IGFwaWdhdGV3YXkuRG9tYWluTmFtZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIENhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGxhbWJkYSBmdW5jdGlvbiBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgc2V0dGluZ3MgYXJlIGRlZmluZWQgaW4gdGhlIGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGFwaUxhbWJkYUZ1bmN0aW9uT3B0aW9ucz86IEN1c3RvbUxhbWJkYUZ1bmN0aW9uUHJvcHM7XG5cbiAgLyoqXG4gICAqIENhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGxhbWJkYSBmdW5jdGlvbiBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgc2V0dGluZ3MgYXJlIGRlZmluZWQgaW4gdGhlIGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGluZ2VzdG9yTGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcblxuICAvKipcbiAgICogcGdzdGFjIHZlcnNpb24gLSBtdXN0IG1hdGNoIHRoZSB2ZXJzaW9uIGluc3RhbGxlZCBvbiB0aGUgcGdzdGFjIGRhdGFiYXNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBzZXR0aW5ncyBhcmUgZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0XG4gICAqL1xuICByZWFkb25seSBwZ3N0YWNWZXJzaW9uPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
ARG PYTHON_VERSION
|
|
2
|
-
|
|
1
|
+
ARG PYTHON_VERSION=3.12
|
|
3
2
|
FROM --platform=linux/amd64 public.ecr.aws/lambda/python:${PYTHON_VERSION}
|
|
3
|
+
COPY --from=ghcr.io/astral-sh/uv:0.10.9 /uv /uvx /bin/
|
|
4
4
|
|
|
5
5
|
WORKDIR /tmp
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
RUN python -m pip install pip -U
|
|
10
|
-
|
|
11
|
-
COPY runtime/requirements.txt requirements.txt
|
|
7
|
+
COPY runtime/pyproject.toml runtime/uv.lock ./
|
|
12
8
|
|
|
13
9
|
ARG PGSTAC_VERSION
|
|
14
|
-
RUN
|
|
15
|
-
|
|
10
|
+
RUN <<EOF
|
|
11
|
+
uv add --no-sync pypgstac==${PGSTAC_VERSION}
|
|
12
|
+
uv export --locked --no-editable --no-dev --format requirements.txt -o requirements.txt
|
|
13
|
+
uv pip install \
|
|
14
|
+
--compile-bytecode \
|
|
15
|
+
--target /asset \
|
|
16
|
+
--no-cache-dir \
|
|
17
|
+
--disable-pip-version-check \
|
|
18
|
+
-r requirements.txt
|
|
19
|
+
EOF
|
|
16
20
|
|
|
17
21
|
RUN mkdir -p /asset/src
|
|
18
22
|
COPY runtime/src/*.py /asset/src/
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "ingestor-api"
|
|
3
|
+
version = "0.0.0"
|
|
4
|
+
description = "ingestor-api runtime"
|
|
5
|
+
requires-python = ">=3.12"
|
|
6
|
+
dependencies = [
|
|
7
|
+
"authlib>=1.3",
|
|
8
|
+
"boto3",
|
|
9
|
+
"cachetools>=5.0",
|
|
10
|
+
"fastapi>=0.110",
|
|
11
|
+
"mangum==0.19",
|
|
12
|
+
"orjson>=3.9",
|
|
13
|
+
"psycopg[binary,pool]>=3.0",
|
|
14
|
+
"pydantic>=2.0",
|
|
15
|
+
"pydantic-settings>=2.0",
|
|
16
|
+
"pydantic-ssm-settings>=1.0,<2.0",
|
|
17
|
+
"pypgstac",
|
|
18
|
+
"requests>=2.27",
|
|
19
|
+
"stac-pydantic>=3.0,<4.0",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[dependency-groups]
|
|
23
|
+
dev = [
|
|
24
|
+
"httpx>=0.24",
|
|
25
|
+
"moto[dynamodb,ssm]>=4.0,<5.0",
|
|
26
|
+
"pytest>=7.0",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
[tool.hatch.build.targets.wheel]
|
|
30
|
+
packages = ["src"]
|
|
31
|
+
|
|
32
|
+
[build-system]
|
|
33
|
+
requires = ["hatchling"]
|
|
34
|
+
build-backend = "hatchling.build"
|
|
35
|
+
|
|
36
|
+
[tool.pytest.ini_options]
|
|
37
|
+
testpaths = ["tests"]
|
|
@@ -7,6 +7,7 @@ from pydantic import (
|
|
|
7
7
|
AnyHttpUrl,
|
|
8
8
|
Field,
|
|
9
9
|
constr,
|
|
10
|
+
field_validator,
|
|
10
11
|
)
|
|
11
12
|
from pydantic_settings import BaseSettings
|
|
12
13
|
from pydantic_ssm_settings.settings import SsmBaseSettings
|
|
@@ -26,6 +27,14 @@ class Settings(BaseSettings):
|
|
|
26
27
|
description="URL of JWKS, e.g. https://cognito-idp.{region}.amazonaws.com/{userpool_id}/.well-known/jwks.json", # noqa
|
|
27
28
|
)
|
|
28
29
|
|
|
30
|
+
@field_validator("jwks_url", mode="before")
|
|
31
|
+
@classmethod
|
|
32
|
+
def empty_str_to_none(cls, v):
|
|
33
|
+
"""Treat empty string as None so callers can disable auth by setting JWKS_URL=''."""
|
|
34
|
+
if v == "":
|
|
35
|
+
return None
|
|
36
|
+
return v
|
|
37
|
+
|
|
29
38
|
stac_url: HttpUrlString = Field(description="URL of STAC API")
|
|
30
39
|
|
|
31
40
|
data_access_role: AwsArn = Field(
|
|
@@ -3,17 +3,15 @@ import binascii
|
|
|
3
3
|
import enum
|
|
4
4
|
import json
|
|
5
5
|
from datetime import datetime
|
|
6
|
-
from typing import TYPE_CHECKING, Dict, List, Optional, Union
|
|
6
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
|
|
7
7
|
from urllib.parse import urlparse
|
|
8
8
|
|
|
9
9
|
from fastapi.encoders import jsonable_encoder
|
|
10
|
-
from fastapi.exceptions import RequestValidationError
|
|
11
10
|
from pydantic import (
|
|
12
11
|
BaseModel,
|
|
13
12
|
Json,
|
|
14
13
|
PositiveInt,
|
|
15
14
|
dataclasses,
|
|
16
|
-
error_wrappers,
|
|
17
15
|
field_validator,
|
|
18
16
|
)
|
|
19
17
|
from stac_pydantic import Collection, Item, shared
|
|
@@ -107,25 +105,19 @@ class Ingestion(BaseModel):
|
|
|
107
105
|
class ListIngestionRequest:
|
|
108
106
|
status: Status = Status.queued
|
|
109
107
|
limit: Optional[PositiveInt] = None
|
|
110
|
-
next: Optional[
|
|
111
|
-
|
|
112
|
-
def __post_init_post_parse__(self) -> None:
|
|
113
|
-
# https://github.com/tiangolo/fastapi/issues/1474#issuecomment-1049987786
|
|
114
|
-
if self.next is None:
|
|
115
|
-
return
|
|
108
|
+
next: Optional[Any] = None
|
|
116
109
|
|
|
110
|
+
@field_validator("next", mode="before")
|
|
111
|
+
@classmethod
|
|
112
|
+
def decode_next_token(cls, v: Optional[str]) -> Optional[Any]:
|
|
113
|
+
"""Decode the base64-encoded JSON pagination token supplied as a query param."""
|
|
114
|
+
if v is None:
|
|
115
|
+
return None
|
|
117
116
|
try:
|
|
118
|
-
|
|
117
|
+
return json.loads(base64.b64decode(v))
|
|
119
118
|
except (UnicodeDecodeError, binascii.Error) as e:
|
|
120
|
-
raise
|
|
121
|
-
|
|
122
|
-
error_wrappers.ErrorWrapper(
|
|
123
|
-
ValueError(
|
|
124
|
-
"Unable to decode next token. Should be base64 encoded JSON"
|
|
125
|
-
),
|
|
126
|
-
"query.next",
|
|
127
|
-
)
|
|
128
|
-
]
|
|
119
|
+
raise ValueError(
|
|
120
|
+
"Unable to decode next token. Should be base64 encoded JSON"
|
|
129
121
|
) from e
|
|
130
122
|
|
|
131
123
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from typing import TYPE_CHECKING, List
|
|
2
2
|
|
|
3
3
|
from boto3.dynamodb import conditions
|
|
4
|
-
from pydantic import
|
|
4
|
+
from pydantic import TypeAdapter
|
|
5
5
|
|
|
6
6
|
from . import schemas
|
|
7
7
|
|
|
@@ -35,7 +35,9 @@ class Database:
|
|
|
35
35
|
**{"ExclusiveStartKey": next} if next else {},
|
|
36
36
|
)
|
|
37
37
|
return {
|
|
38
|
-
"items":
|
|
38
|
+
"items": TypeAdapter(List[schemas.Ingestion]).validate_python(
|
|
39
|
+
response["Items"]
|
|
40
|
+
),
|
|
39
41
|
"next": response.get("LastEvaluatedKey"),
|
|
40
42
|
}
|
|
41
43
|
|