eoapi-cdk 10.2.4 → 10.3.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 +186 -117
- package/lib/bastion-host/index.js +1 -1
- package/lib/database/index.js +6 -5
- package/lib/ingestor-api/index.js +8 -6
- package/lib/lambda-api-gateway/index.d.ts +1 -1
- package/lib/lambda-api-gateway/index.js +2 -2
- package/lib/lambda-api-gateway-private/index.js +1 -1
- package/lib/stac-api/index.d.ts +19 -0
- package/lib/stac-api/index.js +15 -7
- package/lib/stac-api/runtime/src/handler.py +83 -2
- package/lib/stac-auth-proxy/index.js +7 -5
- package/lib/stac-browser/index.js +1 -1
- package/lib/stac-loader/index.js +7 -5
- package/lib/stactools-item-generator/index.js +1 -1
- package/lib/tipg-api/index.d.ts +19 -0
- package/lib/tipg-api/index.js +15 -7
- package/lib/tipg-api/runtime/src/handler.py +72 -0
- package/lib/titiler-pgstac-api/index.d.ts +19 -0
- package/lib/titiler-pgstac-api/index.js +15 -7
- package/lib/titiler-pgstac-api/runtime/src/handler.py +57 -0
- package/lib/utils/index.d.ts +10 -0
- package/lib/utils/index.js +21 -1
- package/package.json +9 -9
|
@@ -6,7 +6,8 @@ import asyncio
|
|
|
6
6
|
import os
|
|
7
7
|
|
|
8
8
|
from mangum import Mangum
|
|
9
|
-
from
|
|
9
|
+
from snapshot_restore_py import register_after_restore, register_before_snapshot
|
|
10
|
+
from stac_fastapi.pgstac.app import app, with_transactions
|
|
10
11
|
from stac_fastapi.pgstac.config import PostgresSettings
|
|
11
12
|
from stac_fastapi.pgstac.db import close_db_connection, connect_to_db
|
|
12
13
|
from utils import get_secret_dict
|
|
@@ -21,12 +22,92 @@ postgres_settings = PostgresSettings(
|
|
|
21
22
|
postgres_port=int(secret["port"]),
|
|
22
23
|
)
|
|
23
24
|
|
|
25
|
+
_connection_initialized = False
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@register_before_snapshot
|
|
29
|
+
def on_snapshot():
|
|
30
|
+
"""
|
|
31
|
+
Runtime hook called by Lambda before taking a snapshot.
|
|
32
|
+
We close database connections that shouldn't be in the snapshot.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
# Close any existing database connections before the snapshot is taken
|
|
36
|
+
if hasattr(app, "state") and hasattr(app.state, "readpool") and app.state.readpool:
|
|
37
|
+
try:
|
|
38
|
+
app.state.readpool.close()
|
|
39
|
+
app.state.readpool = None
|
|
40
|
+
except Exception as e:
|
|
41
|
+
print(f"SnapStart: Error closing database readpool: {e}")
|
|
42
|
+
|
|
43
|
+
if hasattr(app, "state") and hasattr(app.state, "writepool") and app.state.writepool:
|
|
44
|
+
try:
|
|
45
|
+
app.state.writepool.close()
|
|
46
|
+
app.state.writepool = None
|
|
47
|
+
except Exception as e:
|
|
48
|
+
print(f"SnapStart: Error closing database writepool: {e}")
|
|
49
|
+
|
|
50
|
+
return {"statusCode": 200}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
@register_after_restore
|
|
54
|
+
def on_snap_restore():
|
|
55
|
+
"""
|
|
56
|
+
Runtime hook called by Lambda after restoring from a snapshot.
|
|
57
|
+
We recreate database connections that were closed before the snapshot.
|
|
58
|
+
"""
|
|
59
|
+
global _connection_initialized
|
|
60
|
+
|
|
61
|
+
try:
|
|
62
|
+
# Get the event loop or create a new one
|
|
63
|
+
try:
|
|
64
|
+
loop = asyncio.get_running_loop()
|
|
65
|
+
except RuntimeError:
|
|
66
|
+
loop = asyncio.new_event_loop()
|
|
67
|
+
asyncio.set_event_loop(loop)
|
|
68
|
+
|
|
69
|
+
# Close any existing pool (from snapshot)
|
|
70
|
+
if hasattr(app.state, "readpool") and app.state.readpool:
|
|
71
|
+
try:
|
|
72
|
+
app.state.readpool.close()
|
|
73
|
+
except Exception as e:
|
|
74
|
+
print(f"SnapStart: Error closing stale readpool: {e}")
|
|
75
|
+
app.state.readpool = None
|
|
76
|
+
|
|
77
|
+
if hasattr(app.state, "writepool") and app.state.writepool:
|
|
78
|
+
try:
|
|
79
|
+
app.state.writepool.close()
|
|
80
|
+
except Exception as e:
|
|
81
|
+
print(f"SnapStart: Error closing stale writepool: {e}")
|
|
82
|
+
app.state.writepool = None
|
|
83
|
+
|
|
84
|
+
# Create fresh connection pool
|
|
85
|
+
loop.run_until_complete(
|
|
86
|
+
connect_to_db(
|
|
87
|
+
app,
|
|
88
|
+
postgres_settings=postgres_settings,
|
|
89
|
+
add_write_connection_pool=with_transactions,
|
|
90
|
+
)
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
_connection_initialized = True
|
|
94
|
+
|
|
95
|
+
except Exception as e:
|
|
96
|
+
print(f"SnapStart: Failed to initialize database connection: {e}")
|
|
97
|
+
raise
|
|
98
|
+
|
|
99
|
+
return {"statusCode": 200}
|
|
100
|
+
|
|
24
101
|
|
|
25
102
|
@app.on_event("startup")
|
|
26
103
|
async def startup_event():
|
|
27
104
|
"""Connect to database on startup."""
|
|
28
105
|
print("Setting up DB connection...")
|
|
29
|
-
await connect_to_db(
|
|
106
|
+
await connect_to_db(
|
|
107
|
+
app,
|
|
108
|
+
postgres_settings=postgres_settings,
|
|
109
|
+
add_write_connection_pool=with_transactions,
|
|
110
|
+
)
|
|
30
111
|
print("DB connection setup.")
|
|
31
112
|
|
|
32
113
|
|
|
@@ -7,17 +7,19 @@ const cdk = require("aws-cdk-lib");
|
|
|
7
7
|
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
8
8
|
const constructs_1 = require("constructs");
|
|
9
9
|
const lambda_api_gateway_1 = require("../lambda-api-gateway");
|
|
10
|
+
const utils_1 = require("../utils");
|
|
10
11
|
const path = require("path");
|
|
11
12
|
class StacAuthProxyLambdaRuntime extends constructs_1.Construct {
|
|
12
13
|
constructor(scope, id, props) {
|
|
13
14
|
super(scope, id);
|
|
15
|
+
const { code: userCode, ...otherLambdaOptions } = props.lambdaFunctionOptions || {};
|
|
14
16
|
this.lambdaFunction = new lambda.Function(this, "lambda", {
|
|
15
17
|
runtime: lambda.Runtime.PYTHON_3_13,
|
|
16
18
|
handler: "handler.handler",
|
|
17
19
|
memorySize: 8192,
|
|
18
20
|
logRetention: cdk.aws_logs.RetentionDays.ONE_WEEK,
|
|
19
21
|
timeout: cdk.Duration.seconds(30),
|
|
20
|
-
code:
|
|
22
|
+
code: (0, utils_1.resolveLambdaCode)(userCode, path.join(__dirname, ".."), {
|
|
21
23
|
file: "stac-auth-proxy/runtime/Dockerfile",
|
|
22
24
|
buildArgs: { PYTHON_VERSION: "3.13" },
|
|
23
25
|
}),
|
|
@@ -39,13 +41,13 @@ class StacAuthProxyLambdaRuntime extends constructs_1.Construct {
|
|
|
39
41
|
...props.apiEnv,
|
|
40
42
|
},
|
|
41
43
|
// overwrites defaults with user-provided configurable properties
|
|
42
|
-
...
|
|
44
|
+
...otherLambdaOptions,
|
|
43
45
|
});
|
|
44
46
|
}
|
|
45
47
|
}
|
|
46
48
|
exports.StacAuthProxyLambdaRuntime = StacAuthProxyLambdaRuntime;
|
|
47
49
|
_a = JSII_RTTI_SYMBOL_1;
|
|
48
|
-
StacAuthProxyLambdaRuntime[_a] = { fqn: "eoapi-cdk.StacAuthProxyLambdaRuntime", version: "10.
|
|
50
|
+
StacAuthProxyLambdaRuntime[_a] = { fqn: "eoapi-cdk.StacAuthProxyLambdaRuntime", version: "10.3.0" };
|
|
49
51
|
class StacAuthProxyLambda extends constructs_1.Construct {
|
|
50
52
|
constructor(scope, id, props) {
|
|
51
53
|
super(scope, id);
|
|
@@ -65,5 +67,5 @@ class StacAuthProxyLambda extends constructs_1.Construct {
|
|
|
65
67
|
}
|
|
66
68
|
exports.StacAuthProxyLambda = StacAuthProxyLambda;
|
|
67
69
|
_b = JSII_RTTI_SYMBOL_1;
|
|
68
|
-
StacAuthProxyLambda[_b] = { fqn: "eoapi-cdk.StacAuthProxyLambda", version: "10.
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
StacAuthProxyLambda[_b] = { fqn: "eoapi-cdk.StacAuthProxyLambda", version: "10.3.0" };
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUVuQyxpREFBaUQ7QUFFakQsMkNBQXVDO0FBQ3ZDLDhEQUF5RDtBQUN6RCxvQ0FBd0U7QUFDeEUsNkJBQTZCO0FBRTdCLE1BQWEsMEJBQTJCLFNBQVEsc0JBQVM7SUFHdkQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBc0M7UUFFdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLGtCQUFrQixFQUFFLEdBQzdDLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxFQUFFLENBQUM7UUFFcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUN4RCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQ25DLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsVUFBVSxFQUFFLElBQUk7WUFDaEIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVE7WUFDakQsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLEVBQUUsSUFBQSx5QkFBaUIsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQzVELElBQUksRUFBRSxvQ0FBb0M7Z0JBQzFDLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUU7YUFDdEMsQ0FBQztZQUNGLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLFVBQVUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUNqQyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFdBQVcsRUFBRTtnQkFDWCx5QkFBeUI7Z0JBQ3pCLFlBQVksRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDL0Isa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtnQkFFMUMsb0JBQW9CO2dCQUNwQixxQkFBcUIsRUFBRSxNQUFNO2dCQUM3QixtQkFBbUIsRUFBRSxXQUFXO2dCQUNoQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUM7b0JBQ3JELFFBQVEsRUFBRSxLQUFLLENBQUMsZUFBZTtvQkFDL0IsaUNBQWlDLEVBQUUsSUFBSTtpQkFDeEMsQ0FBQztnQkFFRixzQkFBc0I7Z0JBQ3RCLEdBQUcsS0FBSyxDQUFDLE1BQU07YUFDaEI7WUFDRCxpRUFBaUU7WUFDakUsR0FBRyxrQkFBa0I7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE3Q0gsZ0VBOENDOzs7QUEwQ0QsTUFBYSxtQkFBb0IsU0FBUSxzQkFBUztJQVdoRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUU5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUEwQixDQUM1QyxJQUFJLEVBQ0osU0FBUyxFQUNULFlBQVksQ0FDYixDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBRTdDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLHFDQUFnQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUM1RCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7WUFDdEMsVUFBVTtTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUksQ0FBQztRQUVwQixJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQ2hELFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsc0JBQXNCO1lBQ2pFLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWxDSCxrREFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0ICogYXMgYXBpZ2F0ZXdheXYyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheXYyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTGFtYmRhQXBpR2F0ZXdheSB9IGZyb20gXCIuLi9sYW1iZGEtYXBpLWdhdGV3YXlcIjtcbmltcG9ydCB7IEN1c3RvbUxhbWJkYUZ1bmN0aW9uUHJvcHMsIHJlc29sdmVMYW1iZGFDb2RlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmV4cG9ydCBjbGFzcyBTdGFjQXV0aFByb3h5TGFtYmRhUnVudGltZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLkZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogU3RhY0F1dGhQcm94eUxhbWJkYVJ1bnRpbWVQcm9wc1xuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgeyBjb2RlOiB1c2VyQ29kZSwgLi4ub3RoZXJMYW1iZGFPcHRpb25zIH0gPVxuICAgICAgcHJvcHMubGFtYmRhRnVuY3Rpb25PcHRpb25zIHx8IHt9O1xuXG4gICAgdGhpcy5sYW1iZGFGdW5jdGlvbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJsYW1iZGFcIiwge1xuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfMTMsXG4gICAgICBoYW5kbGVyOiBcImhhbmRsZXIuaGFuZGxlclwiLFxuICAgICAgbWVtb3J5U2l6ZTogODE5MixcbiAgICAgIGxvZ1JldGVudGlvbjogY2RrLmF3c19sb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICBjb2RlOiByZXNvbHZlTGFtYmRhQ29kZSh1c2VyQ29kZSwgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiKSwge1xuICAgICAgICBmaWxlOiBcInN0YWMtYXV0aC1wcm94eS9ydW50aW1lL0RvY2tlcmZpbGVcIixcbiAgICAgICAgYnVpbGRBcmdzOiB7IFBZVEhPTl9WRVJTSU9OOiBcIjMuMTNcIiB9LFxuICAgICAgfSksXG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHByb3BzLnN1Ym5ldFNlbGVjdGlvbixcbiAgICAgIGFsbG93UHVibGljU3VibmV0OiB0cnVlLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgLy8gc3RhYy1hdXRoLXByb3h5IGNvbmZpZ1xuICAgICAgICBVUFNUUkVBTV9VUkw6IHByb3BzLnVwc3RyZWFtVXJsLFxuICAgICAgICBPSURDX0RJU0NPVkVSWV9VUkw6IHByb3BzLm9pZGNEaXNjb3ZlcnlVcmwsXG5cbiAgICAgICAgLy8gc3dhZ2dlci11aSBjb25maWdcbiAgICAgICAgT1BFTkFQSV9TUEVDX0VORFBPSU5UOiBcIi9hcGlcIixcbiAgICAgICAgU1dBR0dFUl9VSV9FTkRQT0lOVDogXCIvYXBpLmh0bWxcIixcbiAgICAgICAgU1dBR0dFUl9VSV9JTklUX09BVVRIOiBjZGsuU3RhY2sub2YodGhpcykudG9Kc29uU3RyaW5nKHtcbiAgICAgICAgICBjbGllbnRJZDogcHJvcHMuc3RhY0FwaUNsaWVudElkLFxuICAgICAgICAgIHVzZVBrY2VXaXRoQXV0aG9yaXphdGlvbkNvZGVHcmFudDogdHJ1ZSxcbiAgICAgICAgfSksXG5cbiAgICAgICAgLy8gY3VzdG9taXplZCBzZXR0aW5nc1xuICAgICAgICAuLi5wcm9wcy5hcGlFbnYsXG4gICAgICB9LFxuICAgICAgLy8gb3ZlcndyaXRlcyBkZWZhdWx0cyB3aXRoIHVzZXItcHJvdmlkZWQgY29uZmlndXJhYmxlIHByb3BlcnRpZXNcbiAgICAgIC4uLm90aGVyTGFtYmRhT3B0aW9ucyxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNBdXRoUHJveHlMYW1iZGFSdW50aW1lUHJvcHMge1xuICAvKipcbiAgICogVVJMIHRvIHVwc3RyZWFtIFNUQUMgQVBJLlxuICAgKi9cbiAgcmVhZG9ubHkgdXBzdHJlYW1Vcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVVJMIHRvIE9JREMgRGlzY292ZXJ5IEVuZHBvaW50LlxuICAgKi9cbiAgcmVhZG9ubHkgb2lkY0Rpc2NvdmVyeVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPQXV0aCBDbGllbnQgSUQgZm9yIFN3YWdnZXIgVUkuXG4gICAqL1xuICByZWFkb25seSBzdGFjQXBpQ2xpZW50SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZQQyBpbnRvIHdoaWNoIHRoZSBsYW1iZGEgc2hvdWxkIGJlIGRlcGxveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFN1Ym5ldCBpbnRvIHdoaWNoIHRoZSBsYW1iZGEgc2hvdWxkIGJlIGRlcGxveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0U2VsZWN0aW9uPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogQ3VzdG9taXplZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2VuZCB0byBzdGFjLWF1dGgtcHJveHkgcnVudGltZS5cbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2RldmVsb3BtZW50c2VlZC9zdGFjLWF1dGgtcHJveHkvP3RhYj1yZWFkbWUtb3YtZmlsZSNjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBhcGlFbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBsYW1iZGEgZnVuY3Rpb24gcHJvcGVydGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZpbmVkIGluIHRoZSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhY0F1dGhQcm94eUxhbWJkYSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBVUkwgZm9yIHRoZSBTVEFDIEFQSS5cbiAgICovXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMYW1iZGEgZnVuY3Rpb24gZm9yIHRoZSBTVEFDIEFQSS5cbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0YWNBdXRoUHJveHlMYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7IGRvbWFpbk5hbWUsIC4uLnJ1bnRpbWVQcm9wcyB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBydW50aW1lID0gbmV3IFN0YWNBdXRoUHJveHlMYW1iZGFSdW50aW1lKFxuICAgICAgdGhpcyxcbiAgICAgIFwicnVudGltZVwiLFxuICAgICAgcnVudGltZVByb3BzXG4gICAgKTtcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gcnVudGltZS5sYW1iZGFGdW5jdGlvbjtcblxuICAgIGNvbnN0IHsgYXBpIH0gPSBuZXcgTGFtYmRhQXBpR2F0ZXdheSh0aGlzLCBcInN0YWMtYXV0aC1wcm94eVwiLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogcnVudGltZS5sYW1iZGFGdW5jdGlvbixcbiAgICAgIGRvbWFpbk5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLnVybCA9IGFwaS51cmwhO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgXCJzdGFjLWF1dGgtcHJveHktb3V0cHV0XCIsIHtcbiAgICAgIGV4cG9ydE5hbWU6IGAke2Nkay5TdGFjay5vZih0aGlzKS5zdGFja05hbWV9LXN0YWMtYXV0aC1wcm94eS11cmxgLFxuICAgICAgdmFsdWU6IHRoaXMudXJsLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY0F1dGhQcm94eUxhbWJkYVByb3BzXG4gIGV4dGVuZHMgU3RhY0F1dGhQcm94eUxhbWJkYVJ1bnRpbWVQcm9wcyB7XG4gIC8qKlxuICAgKiBEb21haW4gTmFtZSBmb3IgdGhlIFNUQUMgQVBJLiBJZiBkZWZpbmVkLCB3aWxsIGNyZWF0ZSB0aGUgZG9tYWluIG5hbWUgYW5kIGludGVncmF0ZSBpdCB3aXRoIHRoZSBTVEFDIEFQSS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU/OiBhcGlnYXRld2F5djIuSURvbWFpbk5hbWU7XG59XG4iXX0=
|
|
@@ -91,5 +91,5 @@ class StacBrowser extends constructs_1.Construct {
|
|
|
91
91
|
}
|
|
92
92
|
exports.StacBrowser = StacBrowser;
|
|
93
93
|
_a = JSII_RTTI_SYMBOL_1;
|
|
94
|
-
StacBrowser[_a] = { fqn: "eoapi-cdk.StacBrowser", version: "10.
|
|
94
|
+
StacBrowser[_a] = { fqn: "eoapi-cdk.StacBrowser", version: "10.3.0" };
|
|
95
95
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFxRjtBQUNyRiw2Q0FBdUQ7QUFDdkQsaURBQWdGO0FBRWhGLDJDQUF1QztBQUN2QyxpREFBeUM7QUFDekMseUJBQXlCO0FBRXpCLE1BQU0sdUJBQXVCLEdBQUcsZ0JBQWdCLENBQUM7QUFFakQsTUFBYSxXQUFZLFNBQVEsc0JBQVM7SUFLdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxjQUFjLElBQUksdUJBQXVCLENBQUMsQ0FBQztRQUV4RixpRkFBaUY7UUFDakYsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0UsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksb0JBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQkFDeEMsYUFBYSxFQUFFLG9CQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTztnQkFDN0MsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztnQkFDcEMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjthQUNuRCxDQUFDLENBQUE7UUFDTixDQUFDO1FBRUQsOEpBQThKO1FBQzlKLElBQUksS0FBSyxDQUFDLHlCQUF5QixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSx5QkFBZSxDQUFDO2dCQUN4QyxHQUFHLEVBQUUsaUNBQWlDO2dCQUN0QyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO2dCQUNwQixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7Z0JBQ3pCLFVBQVUsRUFBRSxDQUFDLElBQUksMEJBQWdCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztnQkFDOUQsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNDLFVBQVUsRUFBRTtvQkFDUixjQUFjLEVBQUU7d0JBQ1osZUFBZSxFQUFFLEtBQUssQ0FBQyx5QkFBeUI7cUJBQ25EO2lCQUNKO2FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUVELDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSwrQkFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNqRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUM5QixPQUFPLEVBQUUsQ0FBQywrQkFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDakQsQ0FBQyxDQUFDO1FBRUwsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDbkMsVUFBVSxFQUFFLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxjQUFjO1lBQ3JELEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVU7U0FDNUIsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUF1QixFQUFFLGNBQXNCO1FBRTVELGtDQUFrQztRQUNsQyxNQUFNLGFBQWEsR0FBRyxrREFBa0QsQ0FBQztRQUd6RSw2SEFBNkg7UUFDN0gsSUFBSSxDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1REFBdUQsS0FBSyxDQUFDLGFBQWEsS0FBSyxDQUFDLENBQUE7WUFDNUYsSUFBQSx3QkFBUSxFQUFDLHFCQUFxQixLQUFLLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUVYLHNDQUFzQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLGNBQWMsK0NBQStDLGFBQWEsdUVBQXVFLENBQUMsQ0FBQztZQUNwTCxDQUFDO1lBRUQsNENBQTRDO1lBRTVDLGlCQUFpQjtZQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsYUFBYSxTQUFTLGNBQWMsS0FBSyxDQUFDLENBQUE7WUFDakUsSUFBQSx3QkFBUSxFQUFDLGFBQWEsYUFBYSxJQUFJLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFFekQsZ0NBQWdDO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEtBQUssQ0FBQyxhQUFhLEtBQUssQ0FBQyxDQUFBO1lBQzdELElBQUEsd0JBQVEsRUFBQyxxQkFBcUIsS0FBSyxDQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFFbEYsQ0FBQztRQUVELHFEQUFxRDtRQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUE7UUFDdEMsSUFBQSx3QkFBUSxFQUFDLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRWpELHNIQUFzSDtRQUN0SCxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QiwyR0FBMkc7WUFDM0csSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxLQUFLLENBQUMsY0FBYyxpREFBaUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6SCxDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsS0FBSyxDQUFDLGNBQWMsT0FBTyxjQUFjLFlBQVksQ0FBQyxDQUFBO1lBQ3pGLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLGNBQWMsWUFBWSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxLQUFLLENBQUMsY0FBYyxTQUFTLGNBQWMsRUFBRSxDQUFDLENBQUE7UUFDMUYsSUFBQSx3QkFBUSxFQUFDLGlDQUFpQyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUUzRixPQUFPLHFCQUFxQixDQUFBO0lBRWhDLENBQUM7O0FBcEdMLGtDQXVHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrLCBhd3NfczMgYXMgczMsIGF3c19zM19kZXBsb3ltZW50IGFzIHMzX2RlcGxveW1lbnR9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSwgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIFNlcnZpY2VQcmluY2lwYWwsIEVmZmVjdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5cbmNvbnN0IERFRkFVTFRfQ0xPTkVfRElSRUNUT1JZID0gJy4vc3RhYy1icm93c2VyJztcblxuZXhwb3J0IGNsYXNzIFN0YWNCcm93c2VyIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAgIHB1YmxpYyBidWNrZXQ6IHMzLklCdWNrZXQ7XG4gICAgcHVibGljIGJ1Y2tldERlcGxveW1lbnQ6IHMzX2RlcGxveW1lbnQuQnVja2V0RGVwbG95bWVudDtcblxuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFjQnJvd3NlclByb3BzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgY29uc3QgYnVpbGRQYXRoID0gdGhpcy5idWlsZEFwcChwcm9wcywgcHJvcHMuY2xvbmVEaXJlY3RvcnkgfHwgREVGQVVMVF9DTE9ORV9ESVJFQ1RPUlkpO1xuXG4gICAgICAgIC8vIGltcG9ydCBhIGJ1Y2tldCBmcm9tIHByb3BzLmJ1Y2tldEFybiBpZiBkZWZpbmVkLCBvdGhlcndpc2UgY3JlYXRlIGEgbmV3IGJ1Y2tldFxuICAgICAgICBpZiAocHJvcHMuYnVja2V0QXJuKSB7XG4gICAgICAgICAgICB0aGlzLmJ1Y2tldCA9IHMzLkJ1Y2tldC5mcm9tQnVja2V0QXJuKHRoaXMsICdCdWNrZXQnLCBwcm9wcy5idWNrZXRBcm4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsICdCdWNrZXQnLCB7XG4gICAgICAgICAgICAgICAgYWNjZXNzQ29udHJvbDogczMuQnVja2V0QWNjZXNzQ29udHJvbC5QUklWQVRFLFxuICAgICAgICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgICAgICAgICB3ZWJzaXRlSW5kZXhEb2N1bWVudDogcHJvcHMud2Vic2l0ZUluZGV4RG9jdW1lbnRcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuIGlzIGRlZmluZWQgYW5kIHByb3BzLmJ1Y2tldEFybiBpcyBub3QgZGVmaW5lZCwgYWRkIGEgYnVja2V0IHBvbGljeSB0byBhbGxvdyByZWFkIGFjY2VzcyBmcm9tIHRoZSBjbG91ZGZyb250IGRpc3RyaWJ1dGlvblxuICAgICAgICBpZiAocHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvbkFybiAmJiAhcHJvcHMuYnVja2V0QXJuKSB7XG4gICAgICAgICAgICB0aGlzLmJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc2lkOiAnQWxsb3dDbG91ZEZyb250U2VydmljZVByaW5jaXBhbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0J10sXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbScpXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlczogW3RoaXMuYnVja2V0LmFybkZvck9iamVjdHMoJyonKV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1N0cmluZ0VxdWFscyc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F3czpTb3VyY2VBcm4nOiBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhZGQgdGhlIGNvbXBpbGVkIGNvZGUgdG8gdGhlIGJ1Y2tldCBhcyBhIGJ1Y2tldCBkZXBsb3ltZW50XG4gICAgICAgIHRoaXMuYnVja2V0RGVwbG95bWVudCA9IG5ldyBzM19kZXBsb3ltZW50LkJ1Y2tldERlcGxveW1lbnQodGhpcywgJ0J1Y2tldERlcGxveW1lbnQnLCB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICAgICAgICBzb3VyY2VzOiBbczNfZGVwbG95bWVudC5Tb3VyY2UuYXNzZXQoYnVpbGRQYXRoKV1cbiAgICAgICAgICB9KTtcblxuICAgICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiYnVja2V0LW5hbWVcIiwge1xuICAgICAgICBleHBvcnROYW1lOiBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LWJ1Y2tldC1uYW1lYCxcbiAgICAgICAgdmFsdWU6IHRoaXMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZEFwcChwcm9wczogU3RhY0Jyb3dzZXJQcm9wcywgY2xvbmVEaXJlY3Rvcnk6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICAgICAgLy8gRGVmaW5lIHdoZXJlIHRvIGNsb25lIGFuZCBidWlsZFxuICAgICAgICBjb25zdCBnaXRodWJSZXBvVXJsID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9yYWRpYW50ZWFydGgvc3RhYy1icm93c2VyLmdpdCc7XG5cblxuICAgICAgICAvLyBNYXliZSB0aGUgcmVwbyBhbHJlYWR5IGV4aXN0cyBpbiBjbG9uZURpcmVjdG9yeS4gVHJ5IGNoZWNraW5nIG91dCB0aGUgZGVzaXJlZCB2ZXJzaW9uIGFuZCBpZiBpdCBmYWlscywgZGVsZXRlIGFuZCByZWNsb25lLlxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYENoZWNraW5nIGlmIGEgdmFsaWQgY2xvbmVkIHJlcG8gZXhpc3RzIHdpdGggdmVyc2lvbiAke3Byb3BzLmdpdGh1YlJlcG9UYWd9Li4uYClcbiAgICAgICAgICAgIGV4ZWNTeW5jKGBnaXQgY2hlY2tvdXQgdGFncy8ke3Byb3BzLmdpdGh1YlJlcG9UYWd9YCwgeyBjd2Q6IGNsb25lRGlyZWN0b3J5IH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuXG4gICAgICAgICAgICAvLyBpZiBkaXJlY3RvcnkgZXhpc3RzLCByYWlzZSBhbiBlcnJvclxuICAgICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoY2xvbmVEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEaXJlY3RvcnkgJHtjbG9uZURpcmVjdG9yeX0gYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhIHZhbGlkIGNsb25lIG9mICR7Z2l0aHViUmVwb1VybH0uIFBsZWFzZSBkZWxldGUgdGhpcyBkaXJlY3Rvcnkgb3Igc3BlY2lmeSBhIGRpZmZlcmVudCBjbG9uZURpcmVjdG9yeS5gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZWxzZSwgd2UgY2xvbmUgYW5kIGNoZWNrIG91dCB0aGUgdmVyc2lvbi5cblxuICAgICAgICAgICAgLy8gQ2xvbmUgdGhlIHJlcG9cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDbG9uaW5nICR7Z2l0aHViUmVwb1VybH0gaW50byAke2Nsb25lRGlyZWN0b3J5fS4uLmApXG4gICAgICAgICAgICBleGVjU3luYyhgZ2l0IGNsb25lICR7Z2l0aHViUmVwb1VybH0gJHtjbG9uZURpcmVjdG9yeX1gKTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgb3V0IHRoZSBkZXNpcmVkIHZlcnNpb25cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDaGVja2luZyBvdXQgdmVyc2lvbiAke3Byb3BzLmdpdGh1YlJlcG9UYWd9Li4uYClcbiAgICAgICAgICAgIGV4ZWNTeW5jKGBnaXQgY2hlY2tvdXQgdGFncy8ke3Byb3BzLmdpdGh1YlJlcG9UYWd9YCwgeyBjd2Q6IGNsb25lRGlyZWN0b3J5IH0pO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGJ1aWxkIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICBjb25zb2xlLmxvZyhgSW5zdGFsbGluZyBkZXBlbmRlbmNpZXNgKVxuICAgICAgICBleGVjU3luYygnbnBtIGluc3RhbGwnLCB7IGN3ZDogY2xvbmVEaXJlY3RvcnkgfSk7XG5cbiAgICAgICAgLy8gSWYgYSBjb25maWcgZmlsZSBpcyBwcm92aWRlZCwgY29weSBpdCB0byB0aGUgc3RhYy1icm93c2VyIGRpcmVjdG9yeSBhdCBcImNvbmZpZy5qc1wiLCByZXBsYWNlcyB0aGUgZGVmYXVsdCBjb25maWcuanMuXG4gICAgICAgIGlmIChwcm9wcy5jb25maWdGaWxlUGF0aCkge1xuICAgICAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGUgZmlsZSBleGlzdHMgYXQgdGhpcyBsb2NhdGlvbi4gaWYgbm90LCByYWlzZSBhbiBlcnJvciBhbmQgcHJpbnQgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwcm9wcy5jb25maWdGaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmZpZyBmaWxlICR7cHJvcHMuY29uZmlnRmlsZVBhdGh9IGRvZXMgbm90IGV4aXN0LiBDdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGlzICR7cHJvY2Vzcy5jd2QoKX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDb3B5aW5nIGNvbmZpZyBmaWxlICR7cHJvcHMuY29uZmlnRmlsZVBhdGh9IHRvICR7Y2xvbmVEaXJlY3Rvcnl9L2NvbmZpZy5qc2ApXG4gICAgICAgICAgICBmcy5jb3B5RmlsZVN5bmMocHJvcHMuY29uZmlnRmlsZVBhdGgsIGAke2Nsb25lRGlyZWN0b3J5fS9jb25maWcuanNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJ1aWxkIHRoZSBhcHAgd2l0aCBjYXRhbG9nVXJsXG4gICAgICAgIGNvbnNvbGUubG9nKGBCdWlsZGluZyBhcHAgd2l0aCBjYXRhbG9nVXJsPSR7cHJvcHMuc3RhY0NhdGFsb2dVcmx9IGludG8gJHtjbG9uZURpcmVjdG9yeX1gKVxuICAgICAgICBleGVjU3luYyhgbnBtIHJ1biBidWlsZCAtLSAtLWNhdGFsb2dVcmw9JHtwcm9wcy5zdGFjQ2F0YWxvZ1VybH1gLCB7IGN3ZDogY2xvbmVEaXJlY3RvcnkgfSk7XG5cbiAgICAgICAgcmV0dXJuICcuL3N0YWMtYnJvd3Nlci9kaXN0J1xuXG4gICAgfVxuXG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFjQnJvd3NlclByb3BzIHtcblxuICAgIC8qKlxuICAgICAqIEJ1Y2tldCBBUk4uIElmIHNwZWNpZmllZCwgdGhlIGlkZW50aXR5IHVzZWQgdG8gZGVwbG95IHRoZSBzdGFjayBtdXN0IGhhdmUgdGhlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSBhIGRlcGxveW1lbnQgZm9yIHRoaXMgYnVja2V0LlxuICAgICAqIEluIGFkZGl0aW9uLCBpZiBzcGVjaWZpZWQsIGBjbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuYCBpcyBpZ25vcmVkIHNpbmNlIHRoZSBwb2xpY3kgb2YgYW4gaW1wb3J0ZWQgcmVzb3VyY2UgY2FuJ3QgYmUgbW9kaWZpZWQuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIE5vIGJ1Y2tldCBBUk4uIEEgbmV3IGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAgICovXG5cbiAgICByZWFkb25seSBidWNrZXRBcm4/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTVEFDIGNhdGFsb2cgVVJMLiBPdmVycmlkZXMgdGhlIGNhdGFsb2cgVVJMIGluIHRoZSBzdGFjLWJyb3dzZXIgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBzdGFjQ2F0YWxvZ1VybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUGF0aCB0byBjb25maWcgZmlsZSBmb3IgdGhlIFNUQUMgYnJvd3Nlci4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gaW4gdGhlIFNUQUMgYnJvd3NlclxuICAgICAqIHJlcG9zaXRvcnkgaXMgdXNlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBjb25maWdGaWxlUGF0aD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRhZyBvZiB0aGUgcmFkaWFudCBlYXJ0aCBzdGFjLWJyb3dzZXIgcmVwbyB0byB1c2UgdG8gYnVpbGQgdGhlIGFwcC5cbiAgICAgKi9cbiAgICByZWFkb25seSBnaXRodWJSZXBvVGFnOiBzdHJpbmc7XG5cblxuICAgIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uIHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgYnVja2V0IHBvbGljeSB3aXRoIHJlYWQgYWNjZXNzLlxuICAgICAqIElmIGBidWNrZXRBcm5gIGlzIHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBzaW5jZSB0aGUgcG9saWN5IG9mIGFuIGltcG9ydGVkIGJ1Y2tldCBjYW4ndCBiZSBtb2RpZmllZC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gTm8gY2xvdWRmcm9udCBkaXN0cmlidXRpb24gQVJOLiBUaGUgYnVja2V0IHBvbGljeSB3aWxsIG5vdCBiZSBtb2RpZmllZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBjbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGluZGV4IGRvY3VtZW50IChlLmcuIFwiaW5kZXguaHRtbFwiKSBmb3IgdGhlIHdlYnNpdGUuIEVuYWJsZXMgc3RhdGljIHdlYnNpdGVcbiAgICAgKiBob3N0aW5nIGZvciB0aGlzIGJ1Y2tldC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gTm8gaW5kZXggZG9jdW1lbnQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgd2Vic2l0ZUluZGV4RG9jdW1lbnQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhdGlvbiBpbiB0aGUgZmlsZXN5c3RlbSB3aGVyZSB0byBjb21waWxlIHRoZSBicm93c2VyIGNvZGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIERFRkFVTFRfQ0xPTkVfRElSRUNUT1JZXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2xvbmVEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbn1cbiJdfQ==
|
package/lib/stac-loader/index.js
CHANGED
|
@@ -6,6 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
7
|
const constructs_1 = require("constructs");
|
|
8
8
|
const path = require("path");
|
|
9
|
+
const utils_1 = require("../utils");
|
|
9
10
|
/**
|
|
10
11
|
* AWS CDK Construct for STAC Object Loading Infrastructure
|
|
11
12
|
*
|
|
@@ -209,12 +210,13 @@ class StacLoader extends constructs_1.Construct {
|
|
|
209
210
|
// Subscribe the queue to the topic
|
|
210
211
|
this.topic.addSubscription(new aws_cdk_lib_1.aws_sns_subscriptions.SqsSubscription(this.queue));
|
|
211
212
|
// Create the lambda function
|
|
213
|
+
const { code: userCode, ...otherLambdaOptions } = props.lambdaFunctionOptions || {};
|
|
212
214
|
this.lambdaFunction = new aws_cdk_lib_1.aws_lambda.Function(this, "Function", {
|
|
213
215
|
runtime: lambdaRuntime,
|
|
214
216
|
handler: "stac_loader.handler.handler",
|
|
215
217
|
vpc: props.vpc,
|
|
216
218
|
vpcSubnets: props.subnetSelection,
|
|
217
|
-
code:
|
|
219
|
+
code: (0, utils_1.resolveLambdaCode)(userCode, path.join(__dirname, ".."), {
|
|
218
220
|
file: "stac-loader/runtime/Dockerfile",
|
|
219
221
|
platform: "linux/amd64",
|
|
220
222
|
buildArgs: {
|
|
@@ -231,7 +233,7 @@ class StacLoader extends constructs_1.Construct {
|
|
|
231
233
|
...props.environment,
|
|
232
234
|
},
|
|
233
235
|
// overwrites defaults with user-provided configurable properties
|
|
234
|
-
...
|
|
236
|
+
...otherLambdaOptions,
|
|
235
237
|
});
|
|
236
238
|
// Grant permissions to read the database secret
|
|
237
239
|
props.pgstacDb.pgstacSecret.grantRead(this.lambdaFunction);
|
|
@@ -268,7 +270,7 @@ class StacLoader extends constructs_1.Construct {
|
|
|
268
270
|
}
|
|
269
271
|
exports.StacLoader = StacLoader;
|
|
270
272
|
_a = JSII_RTTI_SYMBOL_1;
|
|
271
|
-
StacLoader[_a] = { fqn: "eoapi-cdk.StacLoader", version: "10.
|
|
273
|
+
StacLoader[_a] = { fqn: "eoapi-cdk.StacLoader", version: "10.3.0" };
|
|
272
274
|
/**
|
|
273
275
|
* @deprecated Use StacLoader instead. StacItemLoader will be removed in a future version.
|
|
274
276
|
*/
|
|
@@ -281,5 +283,5 @@ class StacItemLoader extends StacLoader {
|
|
|
281
283
|
}
|
|
282
284
|
exports.StacItemLoader = StacItemLoader;
|
|
283
285
|
_b = JSII_RTTI_SYMBOL_1;
|
|
284
|
-
StacItemLoader[_b] = { fqn: "eoapi-cdk.StacItemLoader", version: "10.
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVdxQjtBQUNyQiwyQ0FBdUM7QUFDdkMsNkJBQTZCO0FBMkk3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnTEc7QUFDSCxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQW9EdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxHQUFHLENBQUM7UUFDekQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSx3QkFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDeEUsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7UUFFakQsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxxQkFBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDNUQsZUFBZSxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUNuQyxDQUFDLENBQUM7UUFFSCxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHFCQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDeEMsaUJBQWlCLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztZ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QUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUMxQixXQUFXLEVBQUUsaUNBQWlDO1lBQzlDLFVBQVUsRUFBRSxHQUFHLFlBQVksd0JBQXdCO1NBQ3BELENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUTtZQUNwQyxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELFVBQVUsRUFBRSxHQUFHLFlBQVksbUNBQW1DO1NBQy9ELENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVk7WUFDdkMsV0FBVyxFQUFFLHdDQUF3QztZQUNyRCxVQUFVLEVBQUUsR0FBRyxZQUFZLDRCQUE0QjtTQUN4RCxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXRKSCxnQ0F1SkM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsVUFBVTtJQUM1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELE9BQU8sQ0FBQyxJQUFJLENBQ1YsK0RBQStEO1lBQzdELHFEQUFxRCxDQUN4RCxDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7QUFSSCx3Q0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENmbk91dHB1dCxcbiAgRHVyYXRpb24sXG4gIGF3c19lYzIgYXMgZWMyLFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX2xhbWJkYV9ldmVudF9zb3VyY2VzIGFzIGxhbWJkYUV2ZW50U291cmNlcyxcbiAgYXdzX2xvZ3MgYXMgbG9ncyxcbiAgYXdzX3NucyBhcyBzbnMsXG4gIGF3c19zbnNfc3Vic2NyaXB0aW9ucyBhcyBzbnNTdWJzY3JpcHRpb25zLFxuICBhd3Nfc3FzIGFzIHNxcyxcbiAgU3RhY2ssXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFBnU3RhY0RhdGFiYXNlIH0gZnJvbSBcIi4uL2RhdGFiYXNlXCI7XG5pbXBvcnQgeyBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgU3RhY0xvYWRlciBjb25zdHJ1Y3QuXG4gKlxuICogVGhlIFN0YWNMb2FkZXIgaXMgcGFydCBvZiBhIHR3by1waGFzZSBzZXJ2ZXJsZXNzIFNUQUMgaW5nZXN0aW9uIHBpcGVsaW5lXG4gKiB0aGF0IGxvYWRzIFNUQUMgY29sbGVjdGlvbnMgYW5kIGl0ZW1zIGludG8gYSBwZ3N0YWMgZGF0YWJhc2UuIFRoaXMgY29uc3RydWN0IGNyZWF0ZXNcbiAqIHRoZSBpbmZyYXN0cnVjdHVyZSBmb3IgcmVjZWl2aW5nIFNUQUMgb2JqZWN0cyBmcm9tIG11bHRpcGxlIHNvdXJjZXM6XG4gKiAxLiBTTlMgbWVzc2FnZXMgY29udGFpbmluZyBTVEFDIG1ldGFkYXRhIChkaXJlY3QgaW5nZXN0aW9uKVxuICogMi4gUzMgZXZlbnQgbm90aWZpY2F0aW9ucyBmb3IgU1RBQyBvYmplY3RzIHVwbG9hZGVkIHRvIFMzIGJ1Y2tldHNcbiAqXG4gKiBPYmplY3RzIGZyb20gYm90aCBzb3VyY2VzIGFyZSBiYXRjaGVkIGFuZCBpbnNlcnRlZCBpbnRvIFBvc3RncmVTUUwgd2l0aCB0aGUgcGdzdGFjIGV4dGVuc2lvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgbG9hZGVyID0gbmV3IFN0YWNMb2FkZXIodGhpcywgJ1N0YWNMb2FkZXInLCB7XG4gKiAgIHBnc3RhY0RiOiBkYXRhYmFzZSxcbiAqICAgYmF0Y2hTaXplOiAxMDAwLFxuICogICBtYXhCYXRjaGluZ1dpbmRvd01pbnV0ZXM6IDEsXG4gKiAgIGxhbWJkYVRpbWVvdXRTZWNvbmRzOiAzMDBcbiAqIH0pO1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNMb2FkZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgUGdTVEFDIGRhdGFiYXNlIGluc3RhbmNlIHRvIGxvYWQgZGF0YSBpbnRvLlxuICAgKlxuICAgKiBUaGlzIGRhdGFiYXNlIG11c3QgaGF2ZSB0aGUgcGdzdGFjIGV4dGVuc2lvbiBpbnN0YWxsZWQgYW5kIGJlIHByb3Blcmx5XG4gICAqIGNvbmZpZ3VyZWQgd2l0aCBjb2xsZWN0aW9ucyBiZWZvcmUgb2JqZWN0cyBjYW4gYmUgbG9hZGVkLiBUaGUgbG9hZGVyIHdpbGxcbiAgICogdXNlIEFXUyBTZWNyZXRzIE1hbmFnZXIgdG8gc2VjdXJlbHkgYWNjZXNzIGRhdGFiYXNlIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGdzdGFjRGI6IFBnU3RhY0RhdGFiYXNlO1xuXG4gIC8qKlxuICAgKiBWUEMgaW50byB3aGljaCB0aGUgbGFtYmRhIHNob3VsZCBiZSBkZXBsb3llZC5cbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBTdWJuZXQgaW50byB3aGljaCB0aGUgbGFtYmRhIHNob3VsZCBiZSBkZXBsb3llZC5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldFNlbGVjdGlvbj86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsYW1iZGEgcnVudGltZSB0byB1c2UgZm9yIHRoZSBpdGVtIGxvYWRpbmcgZnVuY3Rpb24uXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBpcyBpbXBsZW1lbnRlZCBpbiBQeXRob24gYW5kIHVzZXMgcHlwZ3N0YWMgZm9yIGRhdGFiYXNlXG4gICAqIG9wZXJhdGlvbnMuIEVuc3VyZSB0aGUgcnVudGltZSB2ZXJzaW9uIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgcGdzdGFjXG4gICAqIHZlcnNpb24gc3BlY2lmaWVkIGluIHRoZSBkYXRhYmFzZSBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhUnVudGltZT86IGxhbWJkYS5SdW50aW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBmb3IgdGhlIGl0ZW0gbG9hZCBsYW1iZGEgaW4gc2Vjb25kcy5cbiAgICpcbiAgICogVGhpcyBzaG91bGQgYWNjb21tb2RhdGUgdGhlIHRpbWUgbmVlZGVkIHRvIHByb2Nlc3MgdXAgdG8gYGJhdGNoU2l6ZWBcbiAgICogb2JqZWN0cyBhbmQgcGVyZm9ybSBkYXRhYmFzZSBpbnNlcnRpb25zLiBUaGUgU1FTIHZpc2liaWxpdHkgdGltZW91dFxuICAgKiB3aWxsIGJlIHNldCB0byB0aGlzIHZhbHVlIHBsdXMgMTAgc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgMzAwXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFUaW1lb3V0U2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWVtb3J5IHNpemUgZm9yIHRoZSBsYW1iZGEgZnVuY3Rpb24gaW4gTUIuXG4gICAqXG4gICAqIEhpZ2hlciBtZW1vcnkgYWxsb2NhdGlvbiBtYXkgaW1wcm92ZSBwZXJmb3JtYW5jZSB3aGVuIHByb2Nlc3NpbmdcbiAgICogbGFyZ2UgYmF0Y2hlcyBvZiBTVEFDIG9iamVjdHMsIGVzcGVjaWFsbHkgZm9yIG1lbW9yeS1pbnRlbnNpdmVcbiAgICogZGF0YWJhc2Ugb3BlcmF0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgMTAyNFxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogU1FTIGJhdGNoIHNpemUgZm9yIGxhbWJkYSBldmVudCBzb3VyY2UuXG4gICAqXG4gICAqIFRoaXMgZGV0ZXJtaW5lcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgU1RBQyBvYmplY3RzIHRoYXQgd2lsbCBiZVxuICAgKiBwcm9jZXNzZWQgdG9nZXRoZXIgaW4gYSBzaW5nbGUgbGFtYmRhIGludm9jYXRpb24uIExhcmdlciBiYXRjaFxuICAgKiBzaXplcyBpbXByb3ZlIGRhdGFiYXNlIGluc2VydGlvbiBlZmZpY2llbmN5IGJ1dCByZXF1aXJlIG1vcmVcbiAgICogbWVtb3J5IGFuZCBsb25nZXIgcHJvY2Vzc2luZyB0aW1lLlxuICAgKlxuICAgKiAqKkJhdGNoaW5nIEJlaGF2aW9yKio6IFNRUyB3aWxsIHdhaXQgdG8gYWNjdW11bGF0ZSB1cCB0byB0aGlzIG1hbnlcbiAgICogbWVzc2FnZXMgYmVmb3JlIHRyaWdnZXJpbmcgdGhlIExhbWJkYSwgT1IgdW50aWwgdGhlIG1heEJhdGNoaW5nV2luZG93XG4gICAqIHRpbWVvdXQgaXMgcmVhY2hlZCwgd2hpY2hldmVyIGNvbWVzIGZpcnN0LiBUaGlzIGNyZWF0ZXMgYW4gZWZmaWNpZW50XG4gICAqIGJhbGFuY2UgYmV0d2VlbiB0aHJvdWdocHV0IGFuZCBsYXRlbmN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCA1MDBcbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBiYXRjaGluZyB3aW5kb3cgaW4gbWludXRlcy5cbiAgICpcbiAgICogRXZlbiBpZiB0aGUgYmF0Y2ggc2l6ZSBpc24ndCByZWFjaGVkLCB0aGUgbGFtYmRhIHdpbGwgYmUgdHJpZ2dlcmVkXG4gICAqIGFmdGVyIHRoaXMgdGltZSBwZXJpb2QgdG8gZW5zdXJlIHRpbWVseSBwcm9jZXNzaW5nIG9mIG9iamVjdHMuXG4gICAqIFRoaXMgcHJldmVudHMgb2JqZWN0cyBmcm9tIHdhaXRpbmcgaW5kZWZpbml0ZWx5IGluIGxvdy12b2x1bWUgc2NlbmFyaW9zLlxuICAgKlxuICAgKiAqKkltcG9ydGFudCoqOiBUaGlzIHRpbWVvdXQgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCBiYXRjaFNpemUgLSBTUVNcbiAgICogd2lsbCB0cmlnZ2VyIHRoZSBMYW1iZGEgd2hlbiBFSVRIRVIgdGhlIGJhdGNoIHNpemUgaXMgcmVhY2hlZCBPUiB0aGlzXG4gICAqIHRpbWUgd2luZG93IGV4cGlyZXMsIGVuc3VyaW5nIG9iamVjdHMgYXJlIHByb2Nlc3NlZCBpbiBhIHRpbWVseSBtYW5uZXJcbiAgICogcmVnYXJkbGVzcyBvZiB2b2x1bWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IG1heEJhdGNoaW5nV2luZG93TWludXRlcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBjb25jdXJyZW50IGV4ZWN1dGlvbnMgZm9yIHRoZSBTdGFjTG9hZGVyIExhbWJkYSBmdW5jdGlvblxuICAgKlxuICAgKiBUaGlzIGxpbWl0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgTGFtYmRhIGZ1bmN0aW9uIGFuZCB3aWxsIGNvbnRyb2wgaG93XG4gICAqIG1hbnkgY29uY3VycmVudCBiYXRjaGVzIHdpbGwgYmUgcmVsZWFzZWQgZnJvbSB0aGUgU1FTIHF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBtYXhDb25jdXJyZW5jeT86IG51bWJlcjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIHRoZSBsYW1iZGEgZnVuY3Rpb24uXG4gICAqXG4gICAqIFRoZXNlIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluY2x1ZGluZ1xuICAgKiBQR1NUQUNfU0VDUkVUX0FSTi4gVXNlIHRoaXMgZm9yIGN1c3RvbSBjb25maWd1cmF0aW9uIG9yIGRlYnVnZ2luZyBmbGFncy5cbiAgICpcbiAgICogSWYgeW91IHdhbnQgdG8gZW5hYmxlIHRoZSBvcHRpb24gdG8gdXBsb2FkIGEgYm9pbGVycGxhdGUgY29sbGVjdGlvbiByZWNvcmRcbiAgICogaW4gdGhlIGV2ZW50IHRoYXQgdGhlIGNvbGxlY3Rpb24gcmVjb3JkIGRvZXMgbm90IHlldCBleGlzdCBmb3IgYW4gaXRlbSB0aGF0XG4gICAqIGlzIHNldCB0byBiZSBsb2FkZWQsIHNldCB0aGUgdmFyaWFibGUgYFwiQ1JFQVRFX0NPTExFQ1RJT05TX0lGX01JU1NJTkdcIjogXCJUUlVFXCJgLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBsYW1iZGEgZnVuY3Rpb24gcHJvcGVydGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZpbmVkIGluIHRoZSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xufVxuXG4vKipcbiAqIEFXUyBDREsgQ29uc3RydWN0IGZvciBTVEFDIE9iamVjdCBMb2FkaW5nIEluZnJhc3RydWN0dXJlXG4gKlxuICogVGhlIFN0YWNMb2FkZXIgY3JlYXRlcyBhIHNlcnZlcmxlc3MsIGV2ZW50LWRyaXZlbiBzeXN0ZW0gZm9yIGxvYWRpbmdcbiAqIFNUQUMgKFNwYXRpb1RlbXBvcmFsIEFzc2V0IENhdGFsb2cpIG9iamVjdHMgaW50byBhIFBvc3RncmVTUUwgZGF0YWJhc2Ugd2l0aFxuICogdGhlIHBnc3RhYyBleHRlbnNpb24uIFRoaXMgY29uc3RydWN0IHN1cHBvcnRzIG11bHRpcGxlIGluZ2VzdGlvbiBwYXRod2F5c1xuICogZm9yIGZsZXhpYmxlIFNUQUMgb2JqZWN0IGxvYWRpbmcuXG4gKlxuICogIyMgQXJjaGl0ZWN0dXJlIE92ZXJ2aWV3XG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgY3JlYXRlcyB0aGUgZm9sbG93aW5nIEFXUyByZXNvdXJjZXM6XG4gKiAtICoqU05TIFRvcGljKio6IEVudHJ5IHBvaW50IGZvciBTVEFDIG9iamVjdHMgYW5kIFMzIGV2ZW50IG5vdGlmaWNhdGlvbnNcbiAqIC0gKipTUVMgUXVldWUqKjogQnVmZmVycyBhbmQgYmF0Y2hlcyBtZXNzYWdlcyBiZWZvcmUgcHJvY2Vzc2luZyAoNjAtc2Vjb25kIHZpc2liaWxpdHkgdGltZW91dClcbiAqIC0gKipEZWFkIExldHRlciBRdWV1ZSoqOiBDYXB0dXJlcyBmYWlsZWQgbG9hZGluZyBhdHRlbXB0cyBhZnRlciA1IHJldHJpZXNcbiAqIC0gKipMYW1iZGEgRnVuY3Rpb24qKjogUHl0aG9uIGZ1bmN0aW9uIHRoYXQgcHJvY2Vzc2VzIGJhdGNoZXMgYW5kIGluc2VydHMgb2JqZWN0cyBpbnRvIHBnc3RhY1xuICpcbiAqICMjIERhdGEgRmxvd1xuICpcbiAqIFRoZSBsb2FkZXIgc3VwcG9ydHMgdHdvIHByaW1hcnkgZGF0YSBpbmdlc3Rpb24gcGF0dGVybnM6XG4gKlxuICogIyMjIERpcmVjdCBTVEFDIE9iamVjdCBQdWJsaXNoaW5nXG4gKiAxLiBTVEFDIG9iamVjdHMgKEpTT04pIGFyZSBwdWJsaXNoZWQgZGlyZWN0bHkgdG8gdGhlIFNOUyB0b3BpYyBpbiBtZXNzYWdlIGJvZGllc1xuICogMi4gVGhlIFNRUyBxdWV1ZSBjb2xsZWN0cyBtZXNzYWdlcyBhbmQgYmF0Y2hlcyB0aGVtICh1cCB0byB7YmF0Y2hTaXplfSBvYmplY3RzIG9yIDEgbWludXRlIHdpbmRvdylcbiAqIDMuIFRoZSBMYW1iZGEgZnVuY3Rpb24gcmVjZWl2ZXMgYmF0Y2hlcywgdmFsaWRhdGVzIG9iamVjdHMsIGFuZCBpbnNlcnRzIGludG8gcGdzdGFjXG4gKlxuICogIyMjIFMzIEV2ZW50LURyaXZlbiBMb2FkaW5nXG4gKiAxLiBBbiBTMyBidWNrZXQgaXMgY29uZmlndXJlZCB0byBzZW5kIG5vdGlmaWNhdGlvbnMgdG8gdGhlIFNOUyB0b3BpYyB3aGVuIGpzb24gZmlsZXMgYXJlIGNyZWF0ZWRcbiAqIDIuIFNUQUMgb2JqZWN0cyBhcmUgdXBsb2FkZWQgdG8gUzMgYnVja2V0cyBhcyBKU09OL0dlb0pTT04gZmlsZXNcbiAqIDMuIFMzIGV2ZW50IG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdG8gdGhlIFNOUyB0b3BpYyB3aGVuIG9iamVjdHMgYXJlIHVwbG9hZGVkXG4gKiA0LiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHJlY2VpdmVzIFMzIGV2ZW50cyBpbiB0aGUgU1FTIG1lc3NhZ2UgYmF0Y2gsIGZldGNoZXMgb2JqZWN0cyBmcm9tIFMzLCBhbmQgbG9hZHMgaW50byBwZ3N0YWNcbiAqXG4gKiAjIyBCYXRjaGluZyBCZWhhdmlvclxuICpcbiAqIFRoZSBTUVMtdG8tTGFtYmRhIGludGVncmF0aW9uIHVzZXMgaW50ZWxsaWdlbnQgYmF0Y2hpbmcgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2U6XG4gKlxuICogLSAqKkJhdGNoIFNpemUqKjogTGFtYmRhIHdhaXRzIHRvIHJlY2VpdmUgdXAgdG8gYGJhdGNoU2l6ZWAgbWVzc2FnZXMgKGRlZmF1bHQ6IDUwMClcbiAqIC0gKipCYXRjaGluZyBXaW5kb3cqKjogSWYgZmV3ZXIgdGhhbiBgYmF0Y2hTaXplYCBtZXNzYWdlcyBhcmUgYXZhaWxhYmxlLCBMYW1iZGFcbiAqICAgdHJpZ2dlcnMgYWZ0ZXIgYG1heEJhdGNoaW5nV2luZG93YCBtaW51dGVzIChkZWZhdWx0OiAxIG1pbnV0ZSlcbiAqIC0gKipUcmlnZ2VyIENvbmRpdGlvbioqOiBMYW1iZGEgZXhlY3V0ZXMgd2hlbiBFSVRIRVIgY29uZGl0aW9uIGlzIG1ldCBmaXJzdFxuICogLSAqKkNvbmN1cnJlbmN5Kio6IExpbWl0ZWQgdG8gYG1heENvbmN1cnJlbmN5YCBjb25jdXJyZW50IGV4ZWN1dGlvbnMgdG8gcHJldmVudCBkYXRhYmFzZSBvdmVybG9hZFxuICogLSAqKlBhcnRpYWwgRmFpbHVyZXMqKjogVXNlcyBgcmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXNgIHRvIHJldHJ5IG9ubHkgZmFpbGVkIG9iamVjdHNcbiAqXG4gKiBUaGlzIGFwcHJvYWNoIGJhbGFuY2VzIHRocm91Z2hwdXQgKGxhcmdlciBiYXRjaGVzID0gZmV3ZXIgZGF0YWJhc2UgY29ubmVjdGlvbnMpXG4gKiB3aXRoIGxhdGVuY3kgKHRpbWUtYmFzZWQgdHJpZ2dlcnMgcHJldmVudCBpbmRlZmluaXRlIHdhaXRpbmcpLlxuICpcbiAqICMjIEVycm9yIEhhbmRsaW5nIGFuZCBEZWFkIExldHRlciBRdWV1ZVxuICpcbiAqIEZhaWxlZCBtZXNzYWdlcyBhcmUgc2VudCB0byB0aGUgZGVhZCBsZXR0ZXIgcXVldWUgYWZ0ZXIgNSBwcm9jZXNzaW5nIGF0dGVtcHRzLlxuICogKipJbXBvcnRhbnQqKjogVGhpcyBjb25zdHJ1Y3QgcHJvdmlkZXMgTk8gYXV0b21hdGVkIGhhbmRsaW5nIG9mIGRlYWQgbGV0dGVyIHF1ZXVlXG4gKiBtZXNzYWdlcyAtIG1vbml0b3JpbmcsIGluc3BlY3Rpb24sIGFuZCByZXByb2Nlc3Npbmcgb2YgZmFpbGVkIG9iamVjdHMgaXMgdGhlXG4gKiByZXNwb25zaWJpbGl0eSBvZiB0aGUgaW1wbGVtZW50aW5nIGFwcGxpY2F0aW9uLlxuICpcbiAqIENvbnNpZGVyIGltcGxlbWVudGluZzpcbiAqIC0gQ2xvdWRXYXRjaCBhbGFybXMgb24gZGVhZCBsZXR0ZXIgcXVldWUgZGVwdGhcbiAqIC0gTWFudWFsIG9yIGF1dG9tYXRlZCByZXByb2Nlc3Npbmcgd29ya2Zsb3dzXG4gKiAtIExvZ2dpbmcgYW5kIGFsZXJ0aW5nIGZvciBmYWlsZWQgb2JqZWN0c1xuICogLSBSZWd1bGFyIGNsZWFudXAgb2Ygb2xkIGRlYWQgbGV0dGVyIG1lc3NhZ2VzICgxNC1kYXkgcmV0ZW50aW9uKVxuICpcbiAqICMjIE9wZXJhdGlvbmFsIENoYXJhY3RlcmlzdGljc1xuICpcbiAqIC0gKipTY2FsYWJpbGl0eSoqOiBMYW1iZGEgc2NhbGVzIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gcXVldWUgZGVwdGhcbiAqIC0gKipSZWxpYWJpbGl0eSoqOiBEZWFkIGxldHRlciBxdWV1ZSBjYXB0dXJlcyBmYWlsdXJlcyBmb3IgZGVidWdnaW5nXG4gKiAtICoqRWZmaWNpZW5jeSoqOiBCYXRjaGluZyBvcHRpbWl6ZXMgZGF0YWJhc2Ugb3BlcmF0aW9ucyBmb3IgaGlnaCB0aHJvdWdocHV0XG4gKiAtICoqU2VjdXJpdHkqKjogRGF0YWJhc2UgY3JlZGVudGlhbHMgYWNjZXNzZWQgdmlhIEFXUyBTZWNyZXRzIE1hbmFnZXJcbiAqIC0gKipPYnNlcnZhYmlsaXR5Kio6IENsb3VkV2F0Y2ggbG9ncyByZXRhaW5lZCBmb3Igb25lIHdlZWtcbiAqXG4gKiAjIyBQcmVyZXF1aXNpdGVzXG4gKlxuICogQmVmb3JlIHVzaW5nIHRoaXMgY29uc3RydWN0LCBlbnN1cmU6XG4gKiAtIFRoZSBwZ3N0YWMgZGF0YWJhc2UgaGFzIGNvbGxlY3Rpb25zIGxvYWRlZCAob2JqZWN0cyByZXF1aXJlIGV4aXN0aW5nIGNvbGxlY3Rpb24gSURzKVxuICogLSBEYXRhYmFzZSBjcmVkZW50aWFscyBhcmUgc3RvcmVkIGluIEFXUyBTZWNyZXRzIE1hbmFnZXJcbiAqIC0gVGhlIHBnc3RhYyBleHRlbnNpb24gaXMgcHJvcGVybHkgaW5zdGFsbGVkIGFuZCBjb25maWd1cmVkXG4gKlxuICogIyMgVXNhZ2UgRXhhbXBsZVxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBkYXRhYmFzZSBmaXJzdFxuICogY29uc3QgZGF0YWJhc2UgPSBuZXcgUGdTdGFjRGF0YWJhc2UodGhpcywgJ0RhdGFiYXNlJywge1xuICogICBwZ3N0YWNWZXJzaW9uOiAnMC45LjUnXG4gKiB9KTtcbiAqXG4gKiAvLyBDcmVhdGUgT2JqZWN0IGxvYWRlclxuICogY29uc3QgbG9hZGVyID0gbmV3IFN0YWNMb2FkZXIodGhpcywgJ1N0YWNMb2FkZXInLCB7XG4gKiAgIHBnc3RhY0RiOiBkYXRhYmFzZSxcbiAqICAgYmF0Y2hTaXplOiAxMDAwLCAgICAgICAgICAvLyBQcm9jZXNzIHVwIHRvIDEwMDAgb2JqZWN0cyBwZXIgYmF0Y2hcbiAqICAgbWF4QmF0Y2hpbmdXaW5kb3dNaW51dGVzOiAxLCAvLyBXYWl0IG1heCAxIG1pbnV0ZSB0byBmaWxsIGJhdGNoXG4gKiAgIGxhbWJkYVRpbWVvdXRTZWNvbmRzOiAzMDAgICAgIC8vIEFsbG93IHVwIHRvIDMwMCBzZWNvbmRzIGZvciBkYXRhYmFzZSBvcGVyYXRpb25zXG4gKiB9KTtcbiAqXG4gKiAvLyBUaGUgdG9waWMgQVJOIGNhbiBiZSB1c2VkIGJ5IG90aGVyIHNlcnZpY2VzIHRvIHB1Ymxpc2ggb2JqZWN0c1xuICogbmV3IENmbk91dHB1dCh0aGlzLCAnTG9hZGVyVG9waWNBcm4nLCB7XG4gKiAgIHZhbHVlOiBsb2FkZXIudG9waWMudG9waWNBcm5cbiAqIH0pO1xuICogYGBgXG4gKlxuICogIyMgRGlyZWN0IE9iamVjdCBQdWJsaXNoaW5nXG4gKlxuICogRXh0ZXJuYWwgc2VydmljZXMgY2FuIHB1Ymxpc2ggU1RBQyBvYmplY3RzIGRpcmVjdGx5IHRvIHRoZSB0b3BpYzpcbiAqXG4gKiBgYGBiYXNoXG4gKiBhd3Mgc25zIHB1Ymxpc2ggLS10b3BpYy1hcm4gJFNUQUNfTE9BRF9UT1BJQyAtLW1lc3NhZ2UgICd7XG4gKiAgIFwiaWRcIjogXCJleGFtcGxlLWNvbGxlY3Rpb25cIixcbiAqICAgXCJ0eXBlXCI6IFwiQ29sbGVjdGlvblwiLFxuICogICBcInRpdGxlXCI6IFwiRXhhbXBsZSBDb2xsZWN0aW9uXCIsXG4gKiAgIFwiZGVzY3JpcHRpb25cIjogXCJBbiBleGFtcGxlIGNvbGxlY3Rpb25cIixcbiAqICAgXCJsaWNlbnNlXCI6IFwicHJvcHJpZXRhcnlcIixcbiAqICAgXCJleHRlbnRcIjoge1xuICogICAgICAgXCJzcGF0aWFsXCI6IHtcImJib3hcIjogW1stMTgwLCAtOTAsIDE4MCwgOTBdXX0sXG4gKiAgICAgICBcInRlbXBvcmFsXCI6IHtcImludGVydmFsXCI6IFtbbnVsbCwgbnVsbF1dfVxuICogICB9LFxuICogICBcInN0YWNfdmVyc2lvblwiOiBcIjEuMS4wXCIsXG4gKiAgIFwibGlua3NcIjogW11cbiAqIH0nXG4gKlxuICogYXdzIHNucyBwdWJsaXNoIC0tdG9waWMtYXJuICRTVEFDX0xPQURfVE9QSUMgLS1tZXNzYWdlICd7XG4gKiAgIFwidHlwZVwiOiBcIkZlYXR1cmVcIixcbiAqICAgXCJzdGFjX3ZlcnNpb25cIjogXCIxLjAuMFwiLFxuICogICBcImlkXCI6IFwiZXhhbXBsZS1pdGVtXCIsXG4gKiAgIFwicHJvcGVydGllc1wiOiB7XCJkYXRldGltZVwiOiBcIjIwMjEtMDEtMDFUMDA6MDA6MDBaXCJ9LFxuICogICBcImdlb21ldHJ5XCI6IHtcInR5cGVcIjogXCJQb2x5Z29uXCIsIFwiY29vcmRpbmF0ZXNcIjogWy4uLl19LFxuICogICBcImNvbGxlY3Rpb25cIjogXCJleGFtcGxlLWNvbGxlY3Rpb25cIlxuICogfSdcbiAqXG4gKlxuICogYGBgXG4gKlxuICogIyMgUzMgRXZlbnQgQ29uZmlndXJhdGlvblxuICpcbiAqIFRvIGVuYWJsZSBTMyBldmVudC1kcml2ZW4gbG9hZGluZywgY29uZmlndXJlIFMzIGJ1Y2tldCBub3RpZmljYXRpb25zIHRvIHNlbmRcbiAqIGV2ZW50cyB0byB0aGUgU05TIHRvcGljIHdoZW4gU1RBQyBvYmplY3RzICguanNvbiBvciAuZ2VvanNvbiBmaWxlcykgYXJlIHVwbG9hZGVkOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENvbmZpZ3VyZSBTMyBidWNrZXQgdG8gc2VuZCBub3RpZmljYXRpb25zIHRvIHRoZSBsb2FkZXIgdG9waWNcbiAqIGJ1Y2tldC5hZGRFdmVudE5vdGlmaWNhdGlvbihcbiAqICAgczMuRXZlbnRUeXBlLk9CSkVDVF9DUkVBVEVELFxuICogICBuZXcgczNuLlNuc0Rlc3RpbmF0aW9uKGxvYWRlci50b3BpYyksXG4gKiAgIHsgc3VmZml4OiAnLmpzb24nIH1cbiAqICk7XG4gKlxuICogYnVja2V0LmFkZEV2ZW50Tm90aWZpY2F0aW9uKFxuICogICBzMy5FdmVudFR5cGUuT0JKRUNUX0NSRUFURUQsXG4gKiAgIG5ldyBzM24uU25zRGVzdGluYXRpb24obG9hZGVyLnRvcGljKSxcbiAqICAgeyBzdWZmaXg6ICcuZ2VvanNvbicgfVxuICogKTtcbiAqIGBgYFxuICpcbiAqIFdoZW4gU1RBQyBvYmplY3RzIGFyZSB1cGxvYWRlZCB0byB0aGUgY29uZmlndXJlZCBTMyBidWNrZXQsIHRoZSBsb2FkZXIgd2lsbDpcbiAqIDEuIFJlY2VpdmUgUzMgZXZlbnQgbm90aWZpY2F0aW9ucyB2aWEgU05TXG4gKiAyLiBGZXRjaCB0aGUgU1RBQyBKU09OIGZyb20gUzNcbiAqIDMuIFZhbGlkYXRlIGFuZCBsb2FkIHRoZSBvYmplY3RzIGludG8gdGhlIHBnc3RhYyBkYXRhYmFzZVxuICpcbiAqICMjIE1vbml0b3JpbmcgYW5kIFRyb3VibGVzaG9vdGluZ1xuICpcbiAqIC0gTW9uaXRvciBMYW1iZGEgbG9nczogYC9hd3MvbGFtYmRhL3tGdW5jdGlvbk5hbWV9YFxuICogLSAqKkRlYWQgTGV0dGVyIFF1ZXVlKio6IENoZWNrIGZvciBmYWlsZWQgb2JqZWN0cyAtICoqbm8gYXV0b21hdGVkIGhhbmRsaW5nIHByb3ZpZGVkKipcbiAqIC0gVXNlIGJhdGNoIG9iamVjdHMgZmFpbHVyZSByZXBvcnRpbmcgZm9yIHBhcnRpYWwgYmF0Y2ggcHJvY2Vzc2luZ1xuICogLSBDbG91ZFdhdGNoIG1ldHJpY3MgYXZhaWxhYmxlIGZvciBxdWV1ZSBkZXB0aCBhbmQgTGFtYmRhIHBlcmZvcm1hbmNlXG4gKlxuICogIyMjIERlYWQgTGV0dGVyIFF1ZXVlIE1hbmFnZW1lbnRcbiAqXG4gKiBBcHBsaWNhdGlvbnMgbXVzdCBpbXBsZW1lbnQgdGhlaXIgb3duIGRlYWQgbGV0dGVyIHF1ZXVlIG1vbml0b3Jpbmc6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gRXhhbXBsZTogQ2xvdWRXYXRjaCBhbGFybSBmb3IgZGVhZCBsZXR0ZXIgcXVldWUgZGVwdGhcbiAqIG5ldyBjbG91ZHdhdGNoLkFsYXJtKHRoaXMsICdEZWFkTGV0dGVyQWxhcm0nLCB7XG4gKiAgIG1ldHJpYzogbG9hZGVyLmRlYWRMZXR0ZXJRdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mVmlzaWJsZU1lc3NhZ2VzKCksXG4gKiAgIHRocmVzaG9sZDogMSxcbiAqICAgZXZhbHVhdGlvblBlcmlvZHM6IDFcbiAqIH0pO1xuICpcbiAqIC8vIEV4YW1wbGU6IExhbWJkYSB0byByZXByb2Nlc3MgZGVhZCBsZXR0ZXIgbWVzc2FnZXNcbiAqIGNvbnN0IHJlcHJvY2Vzc0Z1bmN0aW9uID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCAnUmVwcm9jZXNzJywge1xuICogICAvLyBJbXBsZW1lbnRhdGlvbiB0byBmZXRjaCBhbmQgcmVwdWJsaXNoIGZhaWxlZCBtZXNzYWdlc1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFjTG9hZGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBTTlMgdG9waWMgdGhhdCByZWNlaXZlcyBTVEFDIG9iamVjdHMgYW5kIFMzIGV2ZW50IG5vdGlmaWNhdGlvbnMgZm9yIGxvYWRpbmcuXG4gICAqXG4gICAqIFRoaXMgdG9waWMgc2VydmVzIGFzIHRoZSBlbnRyeSBwb2ludCBmb3IgdHdvIHR5cGVzIG9mIGV2ZW50czpcbiAgICogMS4gRGlyZWN0IFNUQUMgSlNPTiBkb2N1bWVudHMgcHVibGlzaGVkIGJ5IGV4dGVybmFsIHNlcnZpY2VzXG4gICAqIDIuIFMzIGV2ZW50IG5vdGlmaWNhdGlvbnMgd2hlbiBTVEFDIG9iamVjdHMgYXJlIHVwbG9hZGVkIHRvIGNvbmZpZ3VyZWQgYnVja2V0c1xuICAgKlxuICAgKiBUaGUgdG9waWMgZmFucyBvdXQgdG8gdGhlIFNRUyBxdWV1ZSBmb3IgYmF0Y2hlZCBwcm9jZXNzaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRvcGljOiBzbnMuVG9waWM7XG5cbiAgLyoqXG4gICAqIFRoZSBTUVMgcXVldWUgdGhhdCBidWZmZXJzIG1lc3NhZ2VzIGJlZm9yZSBwcm9jZXNzaW5nLlxuICAgKlxuICAgKiBUaGlzIHF1ZXVlIGNvbGxlY3RzIGJvdGggZGlyZWN0IFNUQUMgb2JqZWN0cyBmcm9tIFNOUyBhbmQgUzMgZXZlbnRcbiAgICogbm90aWZpY2F0aW9ucywgYmF0Y2hpbmcgdGhlbSBmb3IgZWZmaWNpZW50IGRhdGFiYXNlIG9wZXJhdGlvbnMuXG4gICAqIENvbmZpZ3VyZWQgd2l0aCBhIHZpc2liaWxpdHkgdGltZW91dCB0aGF0IGFjY29tbW9kYXRlcyBMYW1iZGFcbiAgICogcHJvY2Vzc2luZyB0aW1lIHBsdXMgYnVmZmVyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHF1ZXVlOiBzcXMuUXVldWU7XG5cbiAgLyoqXG4gICAqIERlYWQgbGV0dGVyIHF1ZXVlIGZvciBmYWlsZWQgb2JqZWN0cyBsb2FkaW5nIGF0dGVtcHRzLlxuICAgKlxuICAgKiBNZXNzYWdlcyB0aGF0IGZhaWwgcHJvY2Vzc2luZyBhZnRlciA1IGF0dGVtcHRzIGFyZSBzZW50IGhlcmVcbiAgICogZm9yIGluc3BlY3Rpb24gYW5kIHBvdGVudGlhbCByZXBsYXkuIFJldGFpbnMgbWVzc2FnZXMgZm9yIDE0IGRheXNcbiAgICogdG8gYWxsb3cgZm9yIGRlYnVnZ2luZyBhbmQgbWFudWFsIGludGVydmVudGlvbi5cbiAgICpcbiAgICogKipVc2VyIFJlc3BvbnNpYmlsaXR5Kio6IFRoaXMgY29uc3RydWN0IHByb3ZpZGVzIE5PIGF1dG9tYXRlZCBtb25pdG9yaW5nLFxuICAgKiBhbGVydGluZywgb3IgcmVwcm9jZXNzaW5nIG9mIGRlYWQgbGV0dGVyIHF1ZXVlIG1lc3NhZ2VzLiBBcHBsaWNhdGlvbnNcbiAgICogdXNpbmcgdGhpcyBjb25zdHJ1Y3QgbXVzdCBpbXBsZW1lbnQgdGhlaXIgb3duOlxuICAgKiAtIERlYWQgbGV0dGVyIHF1ZXVlIGRlcHRoIG1vbml0b3JpbmcgYW5kIGFsZXJ0aW5nXG4gICAqIC0gRmFpbGVkIG1lc3NhZ2UgaW5zcGVjdGlvbiBhbmQgZGVidWdnaW5nIHdvcmtmbG93c1xuICAgKiAtIE1hbnVhbCBvciBhdXRvbWF0ZWQgcmVwcm9jZXNzaW5nIG1lY2hhbmlzbXNcbiAgICogLSBDbGVhbnVwIHByb2NlZHVyZXMgZm9yIG9sZCBmYWlsZWQgbWVzc2FnZXNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWFkTGV0dGVyUXVldWU6IHNxcy5RdWV1ZTtcblxuICAvKipcbiAgICogVGhlIExhbWJkYSBmdW5jdGlvbiB0aGF0IGxvYWRzIFNUQUMgb2JqZWN0cyBpbnRvIHRoZSBwZ3N0YWMgZGF0YWJhc2UuXG4gICAqXG4gICAqIFRoaXMgUHl0aG9uIGZ1bmN0aW9uIHJlY2VpdmVzIGJhdGNoZXMgb2YgbWVzc2FnZXMgZnJvbSBTUVMgYW5kIHByb2Nlc3Nlc1xuICAgKiB0aGVtIGJhc2VkIG9uIHRoZWlyIHR5cGU6XG4gICAqIC0gRGlyZWN0IFNUQUMgb2JqZWN0czogVmFsaWRhdGVzIGFuZCBsb2FkcyBkaXJlY3RseSBpbnRvIHBnc3RhY1xuICAgKiAtIFMzIGV2ZW50czogRmV0Y2hlcyBTVEFDIEpTT04gZnJvbSBTMywgdmFsaWRhdGVzLCBhbmQgbG9hZHMgaW50byBwZ3N0YWNcbiAgICpcbiAgICogVGhlIGZ1bmN0aW9uIGNvbm5lY3RzIHRvIFBvc3RncmVTUUwgdXNpbmcgY3JlZGVudGlhbHMgZnJvbSBTZWNyZXRzIE1hbmFnZXJcbiAgICogYW5kIHVzZXMgcHlwZ3N0YWMgZm9yIGVmZmljaWVudCBkYXRhYmFzZSBvcGVyYXRpb25zLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0YWNMb2FkZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB0aW1lb3V0U2Vjb25kcyA9IHByb3BzLmxhbWJkYVRpbWVvdXRTZWNvbmRzID8/IDMwMDtcbiAgICBjb25zdCBsYW1iZGFSdW50aW1lID0gcHJvcHMubGFtYmRhUnVudGltZSA/PyBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMjtcbiAgICBjb25zdCBtYXhDb25jdXJyZW5jeSA9IHByb3BzLm1heENvbmN1cnJlbmN5ID8/IDI7XG5cbiAgICAvLyBDcmVhdGUgZGVhZCBsZXR0ZXIgcXVldWVcbiAgICB0aGlzLmRlYWRMZXR0ZXJRdWV1ZSA9IG5ldyBzcXMuUXVldWUodGhpcywgXCJEZWFkTGV0dGVyUXVldWVcIiwge1xuICAgICAgcmV0ZW50aW9uUGVyaW9kOiBEdXJhdGlvbi5kYXlzKDE0KSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBtYWluIHF1ZXVlXG4gICAgdGhpcy5xdWV1ZSA9IG5ldyBzcXMuUXVldWUodGhpcywgXCJRdWV1ZVwiLCB7XG4gICAgICB2aXNpYmlsaXR5VGltZW91dDogRHVyYXRpb24uc2Vjb25kcyh0aW1lb3V0U2Vjb25kcyArIDEwKSxcbiAgICAgIGVuY3J5cHRpb246IHNxcy5RdWV1ZUVuY3J5cHRpb24uU1FTX01BTkFHRUQsXG4gICAgICBkZWFkTGV0dGVyUXVldWU6IHtcbiAgICAgICAgbWF4UmVjZWl2ZUNvdW50OiA1LFxuICAgICAgICBxdWV1ZTogdGhpcy5kZWFkTGV0dGVyUXVldWUsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIFNOUyB0b3BpY1xuICAgIHRoaXMudG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsIFwiVG9waWNcIiwge1xuICAgICAgZGlzcGxheU5hbWU6IGAke2lkfS1TdGFjTG9hZGVyVG9waWNgLFxuICAgIH0pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRoZSBxdWV1ZSB0byB0aGUgdG9waWNcbiAgICB0aGlzLnRvcGljLmFkZFN1YnNjcmlwdGlvbihcbiAgICAgIG5ldyBzbnNTdWJzY3JpcHRpb25zLlNxc1N1YnNjcmlwdGlvbih0aGlzLnF1ZXVlKVxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIGxhbWJkYSBmdW5jdGlvblxuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwiRnVuY3Rpb25cIiwge1xuICAgICAgcnVudGltZTogbGFtYmRhUnVudGltZSxcbiAgICAgIGhhbmRsZXI6IFwic3RhY19sb2FkZXIuaGFuZGxlci5oYW5kbGVyXCIsXG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHByb3BzLnN1Ym5ldFNlbGVjdGlvbixcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Eb2NrZXJCdWlsZChwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIpLCB7XG4gICAgICAgIGZpbGU6IFwic3RhYy1sb2FkZXIvcnVudGltZS9Eb2NrZXJmaWxlXCIsXG4gICAgICAgIHBsYXRmb3JtOiBcImxpbnV4L2FtZDY0XCIsXG4gICAgICAgIGJ1aWxkQXJnczoge1xuICAgICAgICAgIFBZVEhPTl9WRVJTSU9OOiBsYW1iZGFSdW50aW1lLnRvU3RyaW5nKCkucmVwbGFjZShcInB5dGhvblwiLCBcIlwiKSxcbiAgICAgICAgICBQR1NUQUNfVkVSU0lPTjogcHJvcHMucGdzdGFjRGIucGdzdGFjVmVyc2lvbixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgbWVtb3J5U2l6ZTogcHJvcHMubWVtb3J5U2l6ZSA/PyAxMDI0LFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyh0aW1lb3V0U2Vjb25kcyksXG4gICAgICByZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zOiBtYXhDb25jdXJyZW5jeSxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgUEdTVEFDX1NFQ1JFVF9BUk46IHByb3BzLnBnc3RhY0RiLnBnc3RhY1NlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIC4uLnByb3BzLmVudmlyb25tZW50LFxuICAgICAgfSxcbiAgICAgIC8vIG92ZXJ3cml0ZXMgZGVmYXVsdHMgd2l0aCB1c2VyLXByb3ZpZGVkIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzXG4gICAgICAuLi5wcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBHcmFudCBwZXJtaXNzaW9ucyB0byByZWFkIHRoZSBkYXRhYmFzZSBzZWNyZXRcbiAgICBwcm9wcy5wZ3N0YWNEYi5wZ3N0YWNTZWNyZXQuZ3JhbnRSZWFkKHRoaXMubGFtYmRhRnVuY3Rpb24pO1xuXG4gICAgLy8gQWRkIFNRUyBldmVudCBzb3VyY2UgdG8gdGhlIGxhbWJkYVxuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24uYWRkRXZlbnRTb3VyY2UoXG4gICAgICBuZXcgbGFtYmRhRXZlbnRTb3VyY2VzLlNxc0V2ZW50U291cmNlKHRoaXMucXVldWUsIHtcbiAgICAgICAgYmF0Y2hTaXplOiBwcm9wcy5iYXRjaFNpemUgPz8gNTAwLFxuICAgICAgICBtYXhCYXRjaGluZ1dpbmRvdzogRHVyYXRpb24ubWludXRlcyhcbiAgICAgICAgICBwcm9wcy5tYXhCYXRjaGluZ1dpbmRvd01pbnV0ZXMgPz8gMVxuICAgICAgICApLFxuICAgICAgICBtYXhDb25jdXJyZW5jeTogbWF4Q29uY3VycmVuY3ksXG4gICAgICAgIHJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzOiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIG91dHB1dHNcbiAgICBjb25zdCBleHBvcnRQcmVmaXggPSBTdGFjay5vZih0aGlzKS5zdGFja05hbWU7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIlRvcGljQXJuXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLnRvcGljLnRvcGljQXJuLFxuICAgICAgZGVzY3JpcHRpb246IFwiQVJOIG9mIHRoZSBTdGFjTG9hZGVyIFNOUyBUb3BpY1wiLFxuICAgICAgZXhwb3J0TmFtZTogYCR7ZXhwb3J0UHJlZml4fS1zdGFjLWxvYWRlci10b3BpYy1hcm5gLFxuICAgIH0pO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIlF1ZXVlVXJsXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLnF1ZXVlLnF1ZXVlVXJsLFxuICAgICAgZGVzY3JpcHRpb246IFwiVVJMIG9mIHRoZSBTdGFjTG9hZGVyIFNRUyBRdWV1ZVwiLFxuICAgICAgZXhwb3J0TmFtZTogYCR7ZXhwb3J0UHJlZml4fS1zdGFjLWxvYWRlci1xdWV1ZS11cmxgLFxuICAgIH0pO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIkRlYWRMZXR0ZXJRdWV1ZVVybFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5kZWFkTGV0dGVyUXVldWUucXVldWVVcmwsXG4gICAgICBkZXNjcmlwdGlvbjogXCJVUkwgb2YgdGhlIFN0YWNMb2FkZXIgRGVhZCBMZXR0ZXIgUXVldWVcIixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2V4cG9ydFByZWZpeH0tc3RhYy1sb2FkZXItZGVhZGxldHRlci1xdWV1ZS11cmxgLFxuICAgIH0pO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIkZ1bmN0aW9uTmFtZVwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5sYW1iZGFGdW5jdGlvbi5mdW5jdGlvbk5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogXCJOYW1lIG9mIHRoZSBTdGFjTG9hZGVyIExhbWJkYSBGdW5jdGlvblwiLFxuICAgICAgZXhwb3J0TmFtZTogYCR7ZXhwb3J0UHJlZml4fS1zdGFjLWxvYWRlci1mdW5jdGlvbi1uYW1lYCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBTdGFjTG9hZGVyIGluc3RlYWQuIFN0YWNJdGVtTG9hZGVyIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLlxuICovXG5leHBvcnQgY2xhc3MgU3RhY0l0ZW1Mb2FkZXIgZXh0ZW5kcyBTdGFjTG9hZGVyIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0YWNMb2FkZXJQcm9wcykge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgIGBTdGFjSXRlbUxvYWRlciBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN0YWNMb2FkZXIgaW5zdGVhZC4gYCArXG4gICAgICAgIGBTdGFjSXRlbUxvYWRlciB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5gXG4gICAgKTtcblxuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICB9XG59XG5cbi8vIEFsc28gY3JlYXRlIGEgZGVwcmVjYXRlZCBpbnRlcmZhY2UgYWxpYXMgaWYgeW91IGhhZCBhIHNlcGFyYXRlIGludGVyZmFjZVxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgU3RhY0xvYWRlclByb3BzIGluc3RlYWQuIFN0YWNJdGVtTG9hZGVyUHJvcHMgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY0l0ZW1Mb2FkZXJQcm9wcyBleHRlbmRzIFN0YWNMb2FkZXJQcm9wcyB7fVxuIl19
|
|
286
|
+
StacItemLoader[_b] = { fqn: "eoapi-cdk.StacItemLoader", version: "10.3.0" };
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVdxQjtBQUNyQiwyQ0FBdUM7QUFDdkMsNkJBQTZCO0FBRTdCLG9DQUF3RTtBQXlJeEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0xHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsc0JBQVM7SUFvRHZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksR0FBRyxDQUFDO1FBQ3pELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksd0JBQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3hFLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDO1FBRWpELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUkscUJBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzVELGVBQWUsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxxQkFBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3hDLGlCQUFpQixFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FB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QUFFLEdBQUcsWUFBWSx3QkFBd0I7U0FDcEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUMxQixXQUFXLEVBQUUsaUNBQWlDO1lBQzlDLFVBQVUsRUFBRSxHQUFHLFlBQVksd0JBQXdCO1NBQ3BELENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUTtZQUNwQyxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELFVBQVUsRUFBRSxHQUFHLFlBQVksbUNBQW1DO1NBQy9ELENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVk7WUFDdkMsV0FBVyxFQUFFLHdDQUF3QztZQUNyRCxVQUFVLEVBQUUsR0FBRyxZQUFZLDRCQUE0QjtTQUN4RCxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXpKSCxnQ0EwSkM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsVUFBVTtJQUM1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELE9BQU8sQ0FBQyxJQUFJLENBQ1YsK0RBQStEO1lBQzdELHFEQUFxRCxDQUN4RCxDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7QUFSSCx3Q0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENmbk91dHB1dCxcbiAgRHVyYXRpb24sXG4gIGF3c19lYzIgYXMgZWMyLFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX2xhbWJkYV9ldmVudF9zb3VyY2VzIGFzIGxhbWJkYUV2ZW50U291cmNlcyxcbiAgYXdzX2xvZ3MgYXMgbG9ncyxcbiAgYXdzX3NucyBhcyBzbnMsXG4gIGF3c19zbnNfc3Vic2NyaXB0aW9ucyBhcyBzbnNTdWJzY3JpcHRpb25zLFxuICBhd3Nfc3FzIGFzIHNxcyxcbiAgU3RhY2ssXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFBnU3RhY0RhdGFiYXNlIH0gZnJvbSBcIi4uL2RhdGFiYXNlXCI7XG5pbXBvcnQgeyBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzLCByZXNvbHZlTGFtYmRhQ29kZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIFN0YWNMb2FkZXIgY29uc3RydWN0LlxuICpcbiAqIFRoZSBTdGFjTG9hZGVyIGlzIHBhcnQgb2YgYSB0d28tcGhhc2Ugc2VydmVybGVzcyBTVEFDIGluZ2VzdGlvbiBwaXBlbGluZVxuICogdGhhdCBsb2FkcyBTVEFDIGNvbGxlY3Rpb25zIGFuZCBpdGVtcyBpbnRvIGEgcGdzdGFjIGRhdGFiYXNlLiBUaGlzIGNvbnN0cnVjdCBjcmVhdGVzXG4gKiB0aGUgaW5mcmFzdHJ1Y3R1cmUgZm9yIHJlY2VpdmluZyBTVEFDIG9iamVjdHMgZnJvbSBtdWx0aXBsZSBzb3VyY2VzOlxuICogMS4gU05TIG1lc3NhZ2VzIGNvbnRhaW5pbmcgU1RBQyBtZXRhZGF0YSAoZGlyZWN0IGluZ2VzdGlvbilcbiAqIDIuIFMzIGV2ZW50IG5vdGlmaWNhdGlvbnMgZm9yIFNUQUMgb2JqZWN0cyB1cGxvYWRlZCB0byBTMyBidWNrZXRzXG4gKlxuICogT2JqZWN0cyBmcm9tIGJvdGggc291cmNlcyBhcmUgYmF0Y2hlZCBhbmQgaW5zZXJ0ZWQgaW50byBQb3N0Z3JlU1FMIHdpdGggdGhlIHBnc3RhYyBleHRlbnNpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGxvYWRlciA9IG5ldyBTdGFjTG9hZGVyKHRoaXMsICdTdGFjTG9hZGVyJywge1xuICogICBwZ3N0YWNEYjogZGF0YWJhc2UsXG4gKiAgIGJhdGNoU2l6ZTogMTAwMCxcbiAqICAgbWF4QmF0Y2hpbmdXaW5kb3dNaW51dGVzOiAxLFxuICogICBsYW1iZGFUaW1lb3V0U2Vjb25kczogMzAwXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFjTG9hZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIFBnU1RBQyBkYXRhYmFzZSBpbnN0YW5jZSB0byBsb2FkIGRhdGEgaW50by5cbiAgICpcbiAgICogVGhpcyBkYXRhYmFzZSBtdXN0IGhhdmUgdGhlIHBnc3RhYyBleHRlbnNpb24gaW5zdGFsbGVkIGFuZCBiZSBwcm9wZXJseVxuICAgKiBjb25maWd1cmVkIHdpdGggY29sbGVjdGlvbnMgYmVmb3JlIG9iamVjdHMgY2FuIGJlIGxvYWRlZC4gVGhlIGxvYWRlciB3aWxsXG4gICAqIHVzZSBBV1MgU2VjcmV0cyBNYW5hZ2VyIHRvIHNlY3VyZWx5IGFjY2VzcyBkYXRhYmFzZSBjcmVkZW50aWFscy5cbiAgICovXG4gIHJlYWRvbmx5IHBnc3RhY0RiOiBQZ1N0YWNEYXRhYmFzZTtcblxuICAvKipcbiAgICogVlBDIGludG8gd2hpY2ggdGhlIGxhbWJkYSBzaG91bGQgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcblxuICAvKipcbiAgICogU3VibmV0IGludG8gd2hpY2ggdGhlIGxhbWJkYSBzaG91bGQgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRTZWxlY3Rpb24/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFtYmRhIHJ1bnRpbWUgdG8gdXNlIGZvciB0aGUgaXRlbSBsb2FkaW5nIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBUaGUgZnVuY3Rpb24gaXMgaW1wbGVtZW50ZWQgaW4gUHl0aG9uIGFuZCB1c2VzIHB5cGdzdGFjIGZvciBkYXRhYmFzZVxuICAgKiBvcGVyYXRpb25zLiBFbnN1cmUgdGhlIHJ1bnRpbWUgdmVyc2lvbiBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHBnc3RhY1xuICAgKiB2ZXJzaW9uIHNwZWNpZmllZCBpbiB0aGUgZGF0YWJhc2UgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfMTJcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVJ1bnRpbWU/OiBsYW1iZGEuUnVudGltZTtcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgZm9yIHRoZSBpdGVtIGxvYWQgbGFtYmRhIGluIHNlY29uZHMuXG4gICAqXG4gICAqIFRoaXMgc2hvdWxkIGFjY29tbW9kYXRlIHRoZSB0aW1lIG5lZWRlZCB0byBwcm9jZXNzIHVwIHRvIGBiYXRjaFNpemVgXG4gICAqIG9iamVjdHMgYW5kIHBlcmZvcm0gZGF0YWJhc2UgaW5zZXJ0aW9ucy4gVGhlIFNRUyB2aXNpYmlsaXR5IHRpbWVvdXRcbiAgICogd2lsbCBiZSBzZXQgdG8gdGhpcyB2YWx1ZSBwbHVzIDEwIHNlY29uZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDMwMFxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhVGltZW91dFNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1lbW9yeSBzaXplIGZvciB0aGUgbGFtYmRhIGZ1bmN0aW9uIGluIE1CLlxuICAgKlxuICAgKiBIaWdoZXIgbWVtb3J5IGFsbG9jYXRpb24gbWF5IGltcHJvdmUgcGVyZm9ybWFuY2Ugd2hlbiBwcm9jZXNzaW5nXG4gICAqIGxhcmdlIGJhdGNoZXMgb2YgU1RBQyBvYmplY3RzLCBlc3BlY2lhbGx5IGZvciBtZW1vcnktaW50ZW5zaXZlXG4gICAqIGRhdGFiYXNlIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwMjRcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeVNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNRUyBiYXRjaCBzaXplIGZvciBsYW1iZGEgZXZlbnQgc291cmNlLlxuICAgKlxuICAgKiBUaGlzIGRldGVybWluZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIFNUQUMgb2JqZWN0cyB0aGF0IHdpbGwgYmVcbiAgICogcHJvY2Vzc2VkIHRvZ2V0aGVyIGluIGEgc2luZ2xlIGxhbWJkYSBpbnZvY2F0aW9uLiBMYXJnZXIgYmF0Y2hcbiAgICogc2l6ZXMgaW1wcm92ZSBkYXRhYmFzZSBpbnNlcnRpb24gZWZmaWNpZW5jeSBidXQgcmVxdWlyZSBtb3JlXG4gICAqIG1lbW9yeSBhbmQgbG9uZ2VyIHByb2Nlc3NpbmcgdGltZS5cbiAgICpcbiAgICogKipCYXRjaGluZyBCZWhhdmlvcioqOiBTUVMgd2lsbCB3YWl0IHRvIGFjY3VtdWxhdGUgdXAgdG8gdGhpcyBtYW55XG4gICAqIG1lc3NhZ2VzIGJlZm9yZSB0cmlnZ2VyaW5nIHRoZSBMYW1iZGEsIE9SIHVudGlsIHRoZSBtYXhCYXRjaGluZ1dpbmRvd1xuICAgKiB0aW1lb3V0IGlzIHJlYWNoZWQsIHdoaWNoZXZlciBjb21lcyBmaXJzdC4gVGhpcyBjcmVhdGVzIGFuIGVmZmljaWVudFxuICAgKiBiYWxhbmNlIGJldHdlZW4gdGhyb3VnaHB1dCBhbmQgbGF0ZW5jeS5cbiAgICpcbiAgICogQGRlZmF1bHQgNTAwXG4gICAqL1xuICByZWFkb25seSBiYXRjaFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gYmF0Y2hpbmcgd2luZG93IGluIG1pbnV0ZXMuXG4gICAqXG4gICAqIEV2ZW4gaWYgdGhlIGJhdGNoIHNpemUgaXNuJ3QgcmVhY2hlZCwgdGhlIGxhbWJkYSB3aWxsIGJlIHRyaWdnZXJlZFxuICAgKiBhZnRlciB0aGlzIHRpbWUgcGVyaW9kIHRvIGVuc3VyZSB0aW1lbHkgcHJvY2Vzc2luZyBvZiBvYmplY3RzLlxuICAgKiBUaGlzIHByZXZlbnRzIG9iamVjdHMgZnJvbSB3YWl0aW5nIGluZGVmaW5pdGVseSBpbiBsb3ctdm9sdW1lIHNjZW5hcmlvcy5cbiAgICpcbiAgICogKipJbXBvcnRhbnQqKjogVGhpcyB0aW1lb3V0IHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggYmF0Y2hTaXplIC0gU1FTXG4gICAqIHdpbGwgdHJpZ2dlciB0aGUgTGFtYmRhIHdoZW4gRUlUSEVSIHRoZSBiYXRjaCBzaXplIGlzIHJlYWNoZWQgT1IgdGhpc1xuICAgKiB0aW1lIHdpbmRvdyBleHBpcmVzLCBlbnN1cmluZyBvYmplY3RzIGFyZSBwcm9jZXNzZWQgaW4gYSB0aW1lbHkgbWFubmVyXG4gICAqIHJlZ2FyZGxlc3Mgb2Ygdm9sdW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBtYXhCYXRjaGluZ1dpbmRvd01pbnV0ZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gY29uY3VycmVudCBleGVjdXRpb25zIGZvciB0aGUgU3RhY0xvYWRlciBMYW1iZGEgZnVuY3Rpb25cbiAgICpcbiAgICogVGhpcyBsaW1pdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIExhbWJkYSBmdW5jdGlvbiBhbmQgd2lsbCBjb250cm9sIGhvd1xuICAgKiBtYW55IGNvbmN1cnJlbnQgYmF0Y2hlcyB3aWxsIGJlIHJlbGVhc2VkIGZyb20gdGhlIFNRUyBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBUaGVzZSB3aWxsIGJlIG1lcmdlZCB3aXRoIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcyBpbmNsdWRpbmdcbiAgICogUEdTVEFDX1NFQ1JFVF9BUk4uIFVzZSB0aGlzIGZvciBjdXN0b20gY29uZmlndXJhdGlvbiBvciBkZWJ1Z2dpbmcgZmxhZ3MuXG4gICAqXG4gICAqIElmIHlvdSB3YW50IHRvIGVuYWJsZSB0aGUgb3B0aW9uIHRvIHVwbG9hZCBhIGJvaWxlcnBsYXRlIGNvbGxlY3Rpb24gcmVjb3JkXG4gICAqIGluIHRoZSBldmVudCB0aGF0IHRoZSBjb2xsZWN0aW9uIHJlY29yZCBkb2VzIG5vdCB5ZXQgZXhpc3QgZm9yIGFuIGl0ZW0gdGhhdFxuICAgKiBpcyBzZXQgdG8gYmUgbG9hZGVkLCBzZXQgdGhlIHZhcmlhYmxlIGBcIkNSRUFURV9DT0xMRUNUSU9OU19JRl9NSVNTSU5HXCI6IFwiVFJVRVwiYC5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbGFtYmRhIGZ1bmN0aW9uIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcbn1cblxuLyoqXG4gKiBBV1MgQ0RLIENvbnN0cnVjdCBmb3IgU1RBQyBPYmplY3QgTG9hZGluZyBJbmZyYXN0cnVjdHVyZVxuICpcbiAqIFRoZSBTdGFjTG9hZGVyIGNyZWF0ZXMgYSBzZXJ2ZXJsZXNzLCBldmVudC1kcml2ZW4gc3lzdGVtIGZvciBsb2FkaW5nXG4gKiBTVEFDIChTcGF0aW9UZW1wb3JhbCBBc3NldCBDYXRhbG9nKSBvYmplY3RzIGludG8gYSBQb3N0Z3JlU1FMIGRhdGFiYXNlIHdpdGhcbiAqIHRoZSBwZ3N0YWMgZXh0ZW5zaW9uLiBUaGlzIGNvbnN0cnVjdCBzdXBwb3J0cyBtdWx0aXBsZSBpbmdlc3Rpb24gcGF0aHdheXNcbiAqIGZvciBmbGV4aWJsZSBTVEFDIG9iamVjdCBsb2FkaW5nLlxuICpcbiAqICMjIEFyY2hpdGVjdHVyZSBPdmVydmlld1xuICpcbiAqIFRoaXMgY29uc3RydWN0IGNyZWF0ZXMgdGhlIGZvbGxvd2luZyBBV1MgcmVzb3VyY2VzOlxuICogLSAqKlNOUyBUb3BpYyoqOiBFbnRyeSBwb2ludCBmb3IgU1RBQyBvYmplY3RzIGFuZCBTMyBldmVudCBub3RpZmljYXRpb25zXG4gKiAtICoqU1FTIFF1ZXVlKio6IEJ1ZmZlcnMgYW5kIGJhdGNoZXMgbWVzc2FnZXMgYmVmb3JlIHByb2Nlc3NpbmcgKDYwLXNlY29uZCB2aXNpYmlsaXR5IHRpbWVvdXQpXG4gKiAtICoqRGVhZCBMZXR0ZXIgUXVldWUqKjogQ2FwdHVyZXMgZmFpbGVkIGxvYWRpbmcgYXR0ZW1wdHMgYWZ0ZXIgNSByZXRyaWVzXG4gKiAtICoqTGFtYmRhIEZ1bmN0aW9uKio6IFB5dGhvbiBmdW5jdGlvbiB0aGF0IHByb2Nlc3NlcyBiYXRjaGVzIGFuZCBpbnNlcnRzIG9iamVjdHMgaW50byBwZ3N0YWNcbiAqXG4gKiAjIyBEYXRhIEZsb3dcbiAqXG4gKiBUaGUgbG9hZGVyIHN1cHBvcnRzIHR3byBwcmltYXJ5IGRhdGEgaW5nZXN0aW9uIHBhdHRlcm5zOlxuICpcbiAqICMjIyBEaXJlY3QgU1RBQyBPYmplY3QgUHVibGlzaGluZ1xuICogMS4gU1RBQyBvYmplY3RzIChKU09OKSBhcmUgcHVibGlzaGVkIGRpcmVjdGx5IHRvIHRoZSBTTlMgdG9waWMgaW4gbWVzc2FnZSBib2RpZXNcbiAqIDIuIFRoZSBTUVMgcXVldWUgY29sbGVjdHMgbWVzc2FnZXMgYW5kIGJhdGNoZXMgdGhlbSAodXAgdG8ge2JhdGNoU2l6ZX0gb2JqZWN0cyBvciAxIG1pbnV0ZSB3aW5kb3cpXG4gKiAzLiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHJlY2VpdmVzIGJhdGNoZXMsIHZhbGlkYXRlcyBvYmplY3RzLCBhbmQgaW5zZXJ0cyBpbnRvIHBnc3RhY1xuICpcbiAqICMjIyBTMyBFdmVudC1Ecml2ZW4gTG9hZGluZ1xuICogMS4gQW4gUzMgYnVja2V0IGlzIGNvbmZpZ3VyZWQgdG8gc2VuZCBub3RpZmljYXRpb25zIHRvIHRoZSBTTlMgdG9waWMgd2hlbiBqc29uIGZpbGVzIGFyZSBjcmVhdGVkXG4gKiAyLiBTVEFDIG9iamVjdHMgYXJlIHVwbG9hZGVkIHRvIFMzIGJ1Y2tldHMgYXMgSlNPTi9HZW9KU09OIGZpbGVzXG4gKiAzLiBTMyBldmVudCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRvIHRoZSBTTlMgdG9waWMgd2hlbiBvYmplY3RzIGFyZSB1cGxvYWRlZFxuICogNC4gVGhlIExhbWJkYSBmdW5jdGlvbiByZWNlaXZlcyBTMyBldmVudHMgaW4gdGhlIFNRUyBtZXNzYWdlIGJhdGNoLCBmZXRjaGVzIG9iamVjdHMgZnJvbSBTMywgYW5kIGxvYWRzIGludG8gcGdzdGFjXG4gKlxuICogIyMgQmF0Y2hpbmcgQmVoYXZpb3JcbiAqXG4gKiBUaGUgU1FTLXRvLUxhbWJkYSBpbnRlZ3JhdGlvbiB1c2VzIGludGVsbGlnZW50IGJhdGNoaW5nIHRvIG9wdGltaXplIHBlcmZvcm1hbmNlOlxuICpcbiAqIC0gKipCYXRjaCBTaXplKio6IExhbWJkYSB3YWl0cyB0byByZWNlaXZlIHVwIHRvIGBiYXRjaFNpemVgIG1lc3NhZ2VzIChkZWZhdWx0OiA1MDApXG4gKiAtICoqQmF0Y2hpbmcgV2luZG93Kio6IElmIGZld2VyIHRoYW4gYGJhdGNoU2l6ZWAgbWVzc2FnZXMgYXJlIGF2YWlsYWJsZSwgTGFtYmRhXG4gKiAgIHRyaWdnZXJzIGFmdGVyIGBtYXhCYXRjaGluZ1dpbmRvd2AgbWludXRlcyAoZGVmYXVsdDogMSBtaW51dGUpXG4gKiAtICoqVHJpZ2dlciBDb25kaXRpb24qKjogTGFtYmRhIGV4ZWN1dGVzIHdoZW4gRUlUSEVSIGNvbmRpdGlvbiBpcyBtZXQgZmlyc3RcbiAqIC0gKipDb25jdXJyZW5jeSoqOiBMaW1pdGVkIHRvIGBtYXhDb25jdXJyZW5jeWAgY29uY3VycmVudCBleGVjdXRpb25zIHRvIHByZXZlbnQgZGF0YWJhc2Ugb3ZlcmxvYWRcbiAqIC0gKipQYXJ0aWFsIEZhaWx1cmVzKio6IFVzZXMgYHJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzYCB0byByZXRyeSBvbmx5IGZhaWxlZCBvYmplY3RzXG4gKlxuICogVGhpcyBhcHByb2FjaCBiYWxhbmNlcyB0aHJvdWdocHV0IChsYXJnZXIgYmF0Y2hlcyA9IGZld2VyIGRhdGFiYXNlIGNvbm5lY3Rpb25zKVxuICogd2l0aCBsYXRlbmN5ICh0aW1lLWJhc2VkIHRyaWdnZXJzIHByZXZlbnQgaW5kZWZpbml0ZSB3YWl0aW5nKS5cbiAqXG4gKiAjIyBFcnJvciBIYW5kbGluZyBhbmQgRGVhZCBMZXR0ZXIgUXVldWVcbiAqXG4gKiBGYWlsZWQgbWVzc2FnZXMgYXJlIHNlbnQgdG8gdGhlIGRlYWQgbGV0dGVyIHF1ZXVlIGFmdGVyIDUgcHJvY2Vzc2luZyBhdHRlbXB0cy5cbiAqICoqSW1wb3J0YW50Kio6IFRoaXMgY29uc3RydWN0IHByb3ZpZGVzIE5PIGF1dG9tYXRlZCBoYW5kbGluZyBvZiBkZWFkIGxldHRlciBxdWV1ZVxuICogbWVzc2FnZXMgLSBtb25pdG9yaW5nLCBpbnNwZWN0aW9uLCBhbmQgcmVwcm9jZXNzaW5nIG9mIGZhaWxlZCBvYmplY3RzIGlzIHRoZVxuICogcmVzcG9uc2liaWxpdHkgb2YgdGhlIGltcGxlbWVudGluZyBhcHBsaWNhdGlvbi5cbiAqXG4gKiBDb25zaWRlciBpbXBsZW1lbnRpbmc6XG4gKiAtIENsb3VkV2F0Y2ggYWxhcm1zIG9uIGRlYWQgbGV0dGVyIHF1ZXVlIGRlcHRoXG4gKiAtIE1hbnVhbCBvciBhdXRvbWF0ZWQgcmVwcm9jZXNzaW5nIHdvcmtmbG93c1xuICogLSBMb2dnaW5nIGFuZCBhbGVydGluZyBmb3IgZmFpbGVkIG9iamVjdHNcbiAqIC0gUmVndWxhciBjbGVhbnVwIG9mIG9sZCBkZWFkIGxldHRlciBtZXNzYWdlcyAoMTQtZGF5IHJldGVudGlvbilcbiAqXG4gKiAjIyBPcGVyYXRpb25hbCBDaGFyYWN0ZXJpc3RpY3NcbiAqXG4gKiAtICoqU2NhbGFiaWxpdHkqKjogTGFtYmRhIHNjYWxlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHF1ZXVlIGRlcHRoXG4gKiAtICoqUmVsaWFiaWxpdHkqKjogRGVhZCBsZXR0ZXIgcXVldWUgY2FwdHVyZXMgZmFpbHVyZXMgZm9yIGRlYnVnZ2luZ1xuICogLSAqKkVmZmljaWVuY3kqKjogQmF0Y2hpbmcgb3B0aW1pemVzIGRhdGFiYXNlIG9wZXJhdGlvbnMgZm9yIGhpZ2ggdGhyb3VnaHB1dFxuICogLSAqKlNlY3VyaXR5Kio6IERhdGFiYXNlIGNyZWRlbnRpYWxzIGFjY2Vzc2VkIHZpYSBBV1MgU2VjcmV0cyBNYW5hZ2VyXG4gKiAtICoqT2JzZXJ2YWJpbGl0eSoqOiBDbG91ZFdhdGNoIGxvZ3MgcmV0YWluZWQgZm9yIG9uZSB3ZWVrXG4gKlxuICogIyMgUHJlcmVxdWlzaXRlc1xuICpcbiAqIEJlZm9yZSB1c2luZyB0aGlzIGNvbnN0cnVjdCwgZW5zdXJlOlxuICogLSBUaGUgcGdzdGFjIGRhdGFiYXNlIGhhcyBjb2xsZWN0aW9ucyBsb2FkZWQgKG9iamVjdHMgcmVxdWlyZSBleGlzdGluZyBjb2xsZWN0aW9uIElEcylcbiAqIC0gRGF0YWJhc2UgY3JlZGVudGlhbHMgYXJlIHN0b3JlZCBpbiBBV1MgU2VjcmV0cyBNYW5hZ2VyXG4gKiAtIFRoZSBwZ3N0YWMgZXh0ZW5zaW9uIGlzIHByb3Blcmx5IGluc3RhbGxlZCBhbmQgY29uZmlndXJlZFxuICpcbiAqICMjIFVzYWdlIEV4YW1wbGVcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDcmVhdGUgZGF0YWJhc2UgZmlyc3RcbiAqIGNvbnN0IGRhdGFiYXNlID0gbmV3IFBnU3RhY0RhdGFiYXNlKHRoaXMsICdEYXRhYmFzZScsIHtcbiAqICAgcGdzdGFjVmVyc2lvbjogJzAuOS41J1xuICogfSk7XG4gKlxuICogLy8gQ3JlYXRlIE9iamVjdCBsb2FkZXJcbiAqIGNvbnN0IGxvYWRlciA9IG5ldyBTdGFjTG9hZGVyKHRoaXMsICdTdGFjTG9hZGVyJywge1xuICogICBwZ3N0YWNEYjogZGF0YWJhc2UsXG4gKiAgIGJhdGNoU2l6ZTogMTAwMCwgICAgICAgICAgLy8gUHJvY2VzcyB1cCB0byAxMDAwIG9iamVjdHMgcGVyIGJhdGNoXG4gKiAgIG1heEJhdGNoaW5nV2luZG93TWludXRlczogMSwgLy8gV2FpdCBtYXggMSBtaW51dGUgdG8gZmlsbCBiYXRjaFxuICogICBsYW1iZGFUaW1lb3V0U2Vjb25kczogMzAwICAgICAvLyBBbGxvdyB1cCB0byAzMDAgc2Vjb25kcyBmb3IgZGF0YWJhc2Ugb3BlcmF0aW9uc1xuICogfSk7XG4gKlxuICogLy8gVGhlIHRvcGljIEFSTiBjYW4gYmUgdXNlZCBieSBvdGhlciBzZXJ2aWNlcyB0byBwdWJsaXNoIG9iamVjdHNcbiAqIG5ldyBDZm5PdXRwdXQodGhpcywgJ0xvYWRlclRvcGljQXJuJywge1xuICogICB2YWx1ZTogbG9hZGVyLnRvcGljLnRvcGljQXJuXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqICMjIERpcmVjdCBPYmplY3QgUHVibGlzaGluZ1xuICpcbiAqIEV4dGVybmFsIHNlcnZpY2VzIGNhbiBwdWJsaXNoIFNUQUMgb2JqZWN0cyBkaXJlY3RseSB0byB0aGUgdG9waWM6XG4gKlxuICogYGBgYmFzaFxuICogYXdzIHNucyBwdWJsaXNoIC0tdG9waWMtYXJuICRTVEFDX0xPQURfVE9QSUMgLS1tZXNzYWdlICAne1xuICogICBcImlkXCI6IFwiZXhhbXBsZS1jb2xsZWN0aW9uXCIsXG4gKiAgIFwidHlwZVwiOiBcIkNvbGxlY3Rpb25cIixcbiAqICAgXCJ0aXRsZVwiOiBcIkV4YW1wbGUgQ29sbGVjdGlvblwiLFxuICogICBcImRlc2NyaXB0aW9uXCI6IFwiQW4gZXhhbXBsZSBjb2xsZWN0aW9uXCIsXG4gKiAgIFwibGljZW5zZVwiOiBcInByb3ByaWV0YXJ5XCIsXG4gKiAgIFwiZXh0ZW50XCI6IHtcbiAqICAgICAgIFwic3BhdGlhbFwiOiB7XCJiYm94XCI6IFtbLTE4MCwgLTkwLCAxODAsIDkwXV19LFxuICogICAgICAgXCJ0ZW1wb3JhbFwiOiB7XCJpbnRlcnZhbFwiOiBbW251bGwsIG51bGxdXX1cbiAqICAgfSxcbiAqICAgXCJzdGFjX3ZlcnNpb25cIjogXCIxLjEuMFwiLFxuICogICBcImxpbmtzXCI6IFtdXG4gKiB9J1xuICpcbiAqIGF3cyBzbnMgcHVibGlzaCAtLXRvcGljLWFybiAkU1RBQ19MT0FEX1RPUElDIC0tbWVzc2FnZSAne1xuICogICBcInR5cGVcIjogXCJGZWF0dXJlXCIsXG4gKiAgIFwic3RhY192ZXJzaW9uXCI6IFwiMS4wLjBcIixcbiAqICAgXCJpZFwiOiBcImV4YW1wbGUtaXRlbVwiLFxuICogICBcInByb3BlcnRpZXNcIjoge1wiZGF0ZXRpbWVcIjogXCIyMDIxLTAxLTAxVDAwOjAwOjAwWlwifSxcbiAqICAgXCJnZW9tZXRyeVwiOiB7XCJ0eXBlXCI6IFwiUG9seWdvblwiLCBcImNvb3JkaW5hdGVzXCI6IFsuLi5dfSxcbiAqICAgXCJjb2xsZWN0aW9uXCI6IFwiZXhhbXBsZS1jb2xsZWN0aW9uXCJcbiAqIH0nXG4gKlxuICpcbiAqIGBgYFxuICpcbiAqICMjIFMzIEV2ZW50IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBUbyBlbmFibGUgUzMgZXZlbnQtZHJpdmVuIGxvYWRpbmcsIGNvbmZpZ3VyZSBTMyBidWNrZXQgbm90aWZpY2F0aW9ucyB0byBzZW5kXG4gKiBldmVudHMgdG8gdGhlIFNOUyB0b3BpYyB3aGVuIFNUQUMgb2JqZWN0cyAoLmpzb24gb3IgLmdlb2pzb24gZmlsZXMpIGFyZSB1cGxvYWRlZDpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDb25maWd1cmUgUzMgYnVja2V0IHRvIHNlbmQgbm90aWZpY2F0aW9ucyB0byB0aGUgbG9hZGVyIHRvcGljXG4gKiBidWNrZXQuYWRkRXZlbnROb3RpZmljYXRpb24oXG4gKiAgIHMzLkV2ZW50VHlwZS5PQkpFQ1RfQ1JFQVRFRCxcbiAqICAgbmV3IHMzbi5TbnNEZXN0aW5hdGlvbihsb2FkZXIudG9waWMpLFxuICogICB7IHN1ZmZpeDogJy5qc29uJyB9XG4gKiApO1xuICpcbiAqIGJ1Y2tldC5hZGRFdmVudE5vdGlmaWNhdGlvbihcbiAqICAgczMuRXZlbnRUeXBlLk9CSkVDVF9DUkVBVEVELFxuICogICBuZXcgczNuLlNuc0Rlc3RpbmF0aW9uKGxvYWRlci50b3BpYyksXG4gKiAgIHsgc3VmZml4OiAnLmdlb2pzb24nIH1cbiAqICk7XG4gKiBgYGBcbiAqXG4gKiBXaGVuIFNUQUMgb2JqZWN0cyBhcmUgdXBsb2FkZWQgdG8gdGhlIGNvbmZpZ3VyZWQgUzMgYnVja2V0LCB0aGUgbG9hZGVyIHdpbGw6XG4gKiAxLiBSZWNlaXZlIFMzIGV2ZW50IG5vdGlmaWNhdGlvbnMgdmlhIFNOU1xuICogMi4gRmV0Y2ggdGhlIFNUQUMgSlNPTiBmcm9tIFMzXG4gKiAzLiBWYWxpZGF0ZSBhbmQgbG9hZCB0aGUgb2JqZWN0cyBpbnRvIHRoZSBwZ3N0YWMgZGF0YWJhc2VcbiAqXG4gKiAjIyBNb25pdG9yaW5nIGFuZCBUcm91Ymxlc2hvb3RpbmdcbiAqXG4gKiAtIE1vbml0b3IgTGFtYmRhIGxvZ3M6IGAvYXdzL2xhbWJkYS97RnVuY3Rpb25OYW1lfWBcbiAqIC0gKipEZWFkIExldHRlciBRdWV1ZSoqOiBDaGVjayBmb3IgZmFpbGVkIG9iamVjdHMgLSAqKm5vIGF1dG9tYXRlZCBoYW5kbGluZyBwcm92aWRlZCoqXG4gKiAtIFVzZSBiYXRjaCBvYmplY3RzIGZhaWx1cmUgcmVwb3J0aW5nIGZvciBwYXJ0aWFsIGJhdGNoIHByb2Nlc3NpbmdcbiAqIC0gQ2xvdWRXYXRjaCBtZXRyaWNzIGF2YWlsYWJsZSBmb3IgcXVldWUgZGVwdGggYW5kIExhbWJkYSBwZXJmb3JtYW5jZVxuICpcbiAqICMjIyBEZWFkIExldHRlciBRdWV1ZSBNYW5hZ2VtZW50XG4gKlxuICogQXBwbGljYXRpb25zIG11c3QgaW1wbGVtZW50IHRoZWlyIG93biBkZWFkIGxldHRlciBxdWV1ZSBtb25pdG9yaW5nOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEV4YW1wbGU6IENsb3VkV2F0Y2ggYWxhcm0gZm9yIGRlYWQgbGV0dGVyIHF1ZXVlIGRlcHRoXG4gKiBuZXcgY2xvdWR3YXRjaC5BbGFybSh0aGlzLCAnRGVhZExldHRlckFsYXJtJywge1xuICogICBtZXRyaWM6IGxvYWRlci5kZWFkTGV0dGVyUXVldWUubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZlZpc2libGVNZXNzYWdlcygpLFxuICogICB0aHJlc2hvbGQ6IDEsXG4gKiAgIGV2YWx1YXRpb25QZXJpb2RzOiAxXG4gKiB9KTtcbiAqXG4gKiAvLyBFeGFtcGxlOiBMYW1iZGEgdG8gcmVwcm9jZXNzIGRlYWQgbGV0dGVyIG1lc3NhZ2VzXG4gKiBjb25zdCByZXByb2Nlc3NGdW5jdGlvbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgJ1JlcHJvY2VzcycsIHtcbiAqICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZmV0Y2ggYW5kIHJlcHVibGlzaCBmYWlsZWQgbWVzc2FnZXNcbiAqIH0pO1xuICogYGBgXG4gKlxuICovXG5leHBvcnQgY2xhc3MgU3RhY0xvYWRlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgU05TIHRvcGljIHRoYXQgcmVjZWl2ZXMgU1RBQyBvYmplY3RzIGFuZCBTMyBldmVudCBub3RpZmljYXRpb25zIGZvciBsb2FkaW5nLlxuICAgKlxuICAgKiBUaGlzIHRvcGljIHNlcnZlcyBhcyB0aGUgZW50cnkgcG9pbnQgZm9yIHR3byB0eXBlcyBvZiBldmVudHM6XG4gICAqIDEuIERpcmVjdCBTVEFDIEpTT04gZG9jdW1lbnRzIHB1Ymxpc2hlZCBieSBleHRlcm5hbCBzZXJ2aWNlc1xuICAgKiAyLiBTMyBldmVudCBub3RpZmljYXRpb25zIHdoZW4gU1RBQyBvYmplY3RzIGFyZSB1cGxvYWRlZCB0byBjb25maWd1cmVkIGJ1Y2tldHNcbiAgICpcbiAgICogVGhlIHRvcGljIGZhbnMgb3V0IHRvIHRoZSBTUVMgcXVldWUgZm9yIGJhdGNoZWQgcHJvY2Vzc2luZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0b3BpYzogc25zLlRvcGljO1xuXG4gIC8qKlxuICAgKiBUaGUgU1FTIHF1ZXVlIHRoYXQgYnVmZmVycyBtZXNzYWdlcyBiZWZvcmUgcHJvY2Vzc2luZy5cbiAgICpcbiAgICogVGhpcyBxdWV1ZSBjb2xsZWN0cyBib3RoIGRpcmVjdCBTVEFDIG9iamVjdHMgZnJvbSBTTlMgYW5kIFMzIGV2ZW50XG4gICAqIG5vdGlmaWNhdGlvbnMsIGJhdGNoaW5nIHRoZW0gZm9yIGVmZmljaWVudCBkYXRhYmFzZSBvcGVyYXRpb25zLlxuICAgKiBDb25maWd1cmVkIHdpdGggYSB2aXNpYmlsaXR5IHRpbWVvdXQgdGhhdCBhY2NvbW1vZGF0ZXMgTGFtYmRhXG4gICAqIHByb2Nlc3NpbmcgdGltZSBwbHVzIGJ1ZmZlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBxdWV1ZTogc3FzLlF1ZXVlO1xuXG4gIC8qKlxuICAgKiBEZWFkIGxldHRlciBxdWV1ZSBmb3IgZmFpbGVkIG9iamVjdHMgbG9hZGluZyBhdHRlbXB0cy5cbiAgICpcbiAgICogTWVzc2FnZXMgdGhhdCBmYWlsIHByb2Nlc3NpbmcgYWZ0ZXIgNSBhdHRlbXB0cyBhcmUgc2VudCBoZXJlXG4gICAqIGZvciBpbnNwZWN0aW9uIGFuZCBwb3RlbnRpYWwgcmVwbGF5LiBSZXRhaW5zIG1lc3NhZ2VzIGZvciAxNCBkYXlzXG4gICAqIHRvIGFsbG93IGZvciBkZWJ1Z2dpbmcgYW5kIG1hbnVhbCBpbnRlcnZlbnRpb24uXG4gICAqXG4gICAqICoqVXNlciBSZXNwb25zaWJpbGl0eSoqOiBUaGlzIGNvbnN0cnVjdCBwcm92aWRlcyBOTyBhdXRvbWF0ZWQgbW9uaXRvcmluZyxcbiAgICogYWxlcnRpbmcsIG9yIHJlcHJvY2Vzc2luZyBvZiBkZWFkIGxldHRlciBxdWV1ZSBtZXNzYWdlcy4gQXBwbGljYXRpb25zXG4gICAqIHVzaW5nIHRoaXMgY29uc3RydWN0IG11c3QgaW1wbGVtZW50IHRoZWlyIG93bjpcbiAgICogLSBEZWFkIGxldHRlciBxdWV1ZSBkZXB0aCBtb25pdG9yaW5nIGFuZCBhbGVydGluZ1xuICAgKiAtIEZhaWxlZCBtZXNzYWdlIGluc3BlY3Rpb24gYW5kIGRlYnVnZ2luZyB3b3JrZmxvd3NcbiAgICogLSBNYW51YWwgb3IgYXV0b21hdGVkIHJlcHJvY2Vzc2luZyBtZWNoYW5pc21zXG4gICAqIC0gQ2xlYW51cCBwcm9jZWR1cmVzIGZvciBvbGQgZmFpbGVkIG1lc3NhZ2VzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlOiBzcXMuUXVldWU7XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBsb2FkcyBTVEFDIG9iamVjdHMgaW50byB0aGUgcGdzdGFjIGRhdGFiYXNlLlxuICAgKlxuICAgKiBUaGlzIFB5dGhvbiBmdW5jdGlvbiByZWNlaXZlcyBiYXRjaGVzIG9mIG1lc3NhZ2VzIGZyb20gU1FTIGFuZCBwcm9jZXNzZXNcbiAgICogdGhlbSBiYXNlZCBvbiB0aGVpciB0eXBlOlxuICAgKiAtIERpcmVjdCBTVEFDIG9iamVjdHM6IFZhbGlkYXRlcyBhbmQgbG9hZHMgZGlyZWN0bHkgaW50byBwZ3N0YWNcbiAgICogLSBTMyBldmVudHM6IEZldGNoZXMgU1RBQyBKU09OIGZyb20gUzMsIHZhbGlkYXRlcywgYW5kIGxvYWRzIGludG8gcGdzdGFjXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBjb25uZWN0cyB0byBQb3N0Z3JlU1FMIHVzaW5nIGNyZWRlbnRpYWxzIGZyb20gU2VjcmV0cyBNYW5hZ2VyXG4gICAqIGFuZCB1c2VzIHB5cGdzdGFjIGZvciBlZmZpY2llbnQgZGF0YWJhc2Ugb3BlcmF0aW9ucy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLkZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFjTG9hZGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgdGltZW91dFNlY29uZHMgPSBwcm9wcy5sYW1iZGFUaW1lb3V0U2Vjb25kcyA/PyAzMDA7XG4gICAgY29uc3QgbGFtYmRhUnVudGltZSA9IHByb3BzLmxhbWJkYVJ1bnRpbWUgPz8gbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfMTI7XG4gICAgY29uc3QgbWF4Q29uY3VycmVuY3kgPSBwcm9wcy5tYXhDb25jdXJyZW5jeSA/PyAyO1xuXG4gICAgLy8gQ3JlYXRlIGRlYWQgbGV0dGVyIHF1ZXVlXG4gICAgdGhpcy5kZWFkTGV0dGVyUXVldWUgPSBuZXcgc3FzLlF1ZXVlKHRoaXMsIFwiRGVhZExldHRlclF1ZXVlXCIsIHtcbiAgICAgIHJldGVudGlvblBlcmlvZDogRHVyYXRpb24uZGF5cygxNCksXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgbWFpbiBxdWV1ZVxuICAgIHRoaXMucXVldWUgPSBuZXcgc3FzLlF1ZXVlKHRoaXMsIFwiUXVldWVcIiwge1xuICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHModGltZW91dFNlY29uZHMgKyAxMCksXG4gICAgICBlbmNyeXB0aW9uOiBzcXMuUXVldWVFbmNyeXB0aW9uLlNRU19NQU5BR0VELFxuICAgICAgZGVhZExldHRlclF1ZXVlOiB7XG4gICAgICAgIG1heFJlY2VpdmVDb3VudDogNSxcbiAgICAgICAgcXVldWU6IHRoaXMuZGVhZExldHRlclF1ZXVlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBTTlMgdG9waWNcbiAgICB0aGlzLnRvcGljID0gbmV3IHNucy5Ub3BpYyh0aGlzLCBcIlRvcGljXCIsIHtcbiAgICAgIGRpc3BsYXlOYW1lOiBgJHtpZH0tU3RhY0xvYWRlclRvcGljYCxcbiAgICB9KTtcblxuICAgIC8vIFN1YnNjcmliZSB0aGUgcXVldWUgdG8gdGhlIHRvcGljXG4gICAgdGhpcy50b3BpYy5hZGRTdWJzY3JpcHRpb24oXG4gICAgICBuZXcgc25zU3Vic2NyaXB0aW9ucy5TcXNTdWJzY3JpcHRpb24odGhpcy5xdWV1ZSlcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBsYW1iZGEgZnVuY3Rpb25cbiAgICBjb25zdCB7IGNvZGU6IHVzZXJDb2RlLCAuLi5vdGhlckxhbWJkYU9wdGlvbnMgfSA9XG4gICAgICBwcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMgfHwge307XG5cbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcIkZ1bmN0aW9uXCIsIHtcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYVJ1bnRpbWUsXG4gICAgICBoYW5kbGVyOiBcInN0YWNfbG9hZGVyLmhhbmRsZXIuaGFuZGxlclwiLFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBjb2RlOiByZXNvbHZlTGFtYmRhQ29kZSh1c2VyQ29kZSwgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiKSwge1xuICAgICAgICBmaWxlOiBcInN0YWMtbG9hZGVyL3J1bnRpbWUvRG9ja2VyZmlsZVwiLFxuICAgICAgICBwbGF0Zm9ybTogXCJsaW51eC9hbWQ2NFwiLFxuICAgICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgICBQWVRIT05fVkVSU0lPTjogbGFtYmRhUnVudGltZS50b1N0cmluZygpLnJlcGxhY2UoXCJweXRob25cIiwgXCJcIiksXG4gICAgICAgICAgUEdTVEFDX1ZFUlNJT046IHByb3BzLnBnc3RhY0RiLnBnc3RhY1ZlcnNpb24sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIG1lbW9yeVNpemU6IHByb3BzLm1lbW9yeVNpemUgPz8gMTAyNCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHModGltZW91dFNlY29uZHMpLFxuICAgICAgcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9uczogbWF4Q29uY3VycmVuY3ksXG4gICAgICBsb2dSZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFBHU1RBQ19TRUNSRVRfQVJOOiBwcm9wcy5wZ3N0YWNEYi5wZ3N0YWNTZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgICAuLi5wcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgIH0sXG4gICAgICAvLyBvdmVyd3JpdGVzIGRlZmF1bHRzIHdpdGggdXNlci1wcm92aWRlZCBjb25maWd1cmFibGUgcHJvcGVydGllc1xuICAgICAgLi4ub3RoZXJMYW1iZGFPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgLy8gR3JhbnQgcGVybWlzc2lvbnMgdG8gcmVhZCB0aGUgZGF0YWJhc2Ugc2VjcmV0XG4gICAgcHJvcHMucGdzdGFjRGIucGdzdGFjU2VjcmV0LmdyYW50UmVhZCh0aGlzLmxhbWJkYUZ1bmN0aW9uKTtcblxuICAgIC8vIEFkZCBTUVMgZXZlbnQgc291cmNlIHRvIHRoZSBsYW1iZGFcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uLmFkZEV2ZW50U291cmNlKFxuICAgICAgbmV3IGxhbWJkYUV2ZW50U291cmNlcy5TcXNFdmVudFNvdXJjZSh0aGlzLnF1ZXVlLCB7XG4gICAgICAgIGJhdGNoU2l6ZTogcHJvcHMuYmF0Y2hTaXplID8/IDUwMCxcbiAgICAgICAgbWF4QmF0Y2hpbmdXaW5kb3c6IER1cmF0aW9uLm1pbnV0ZXMoXG4gICAgICAgICAgcHJvcHMubWF4QmF0Y2hpbmdXaW5kb3dNaW51dGVzID8/IDFcbiAgICAgICAgKSxcbiAgICAgICAgbWF4Q29uY3VycmVuY3k6IG1heENvbmN1cnJlbmN5LFxuICAgICAgICByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIENyZWF0ZSBvdXRwdXRzXG4gICAgY29uc3QgZXhwb3J0UHJlZml4ID0gU3RhY2sub2YodGhpcykuc3RhY2tOYW1lO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJUb3BpY0FyblwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy50b3BpYy50b3BpY0FybixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkFSTiBvZiB0aGUgU3RhY0xvYWRlciBTTlMgVG9waWNcIixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2V4cG9ydFByZWZpeH0tc3RhYy1sb2FkZXItdG9waWMtYXJuYCxcbiAgICB9KTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJRdWV1ZVVybFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5xdWV1ZS5xdWV1ZVVybCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlVSTCBvZiB0aGUgU3RhY0xvYWRlciBTUVMgUXVldWVcIixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2V4cG9ydFByZWZpeH0tc3RhYy1sb2FkZXItcXVldWUtdXJsYCxcbiAgICB9KTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJEZWFkTGV0dGVyUXVldWVVcmxcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuZGVhZExldHRlclF1ZXVlLnF1ZXVlVXJsLFxuICAgICAgZGVzY3JpcHRpb246IFwiVVJMIG9mIHRoZSBTdGFjTG9hZGVyIERlYWQgTGV0dGVyIFF1ZXVlXCIsXG4gICAgICBleHBvcnROYW1lOiBgJHtleHBvcnRQcmVmaXh9LXN0YWMtbG9hZGVyLWRlYWRsZXR0ZXItcXVldWUtdXJsYCxcbiAgICB9KTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJGdW5jdGlvbk5hbWVcIiwge1xuICAgICAgdmFsdWU6IHRoaXMubGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgZGVzY3JpcHRpb246IFwiTmFtZSBvZiB0aGUgU3RhY0xvYWRlciBMYW1iZGEgRnVuY3Rpb25cIixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2V4cG9ydFByZWZpeH0tc3RhYy1sb2FkZXItZnVuY3Rpb24tbmFtZWAsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgU3RhY0xvYWRlciBpbnN0ZWFkLiBTdGFjSXRlbUxvYWRlciB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNJdGVtTG9hZGVyIGV4dGVuZHMgU3RhY0xvYWRlciB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFjTG9hZGVyUHJvcHMpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgU3RhY0l0ZW1Mb2FkZXIgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdGFjTG9hZGVyIGluc3RlYWQuIGAgK1xuICAgICAgICBgU3RhY0l0ZW1Mb2FkZXIgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uYFxuICAgICk7XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgfVxufVxuXG4vLyBBbHNvIGNyZWF0ZSBhIGRlcHJlY2F0ZWQgaW50ZXJmYWNlIGFsaWFzIGlmIHlvdSBoYWQgYSBzZXBhcmF0ZSBpbnRlcmZhY2Vcbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIFN0YWNMb2FkZXJQcm9wcyBpbnN0ZWFkLiBTdGFjSXRlbUxvYWRlclByb3BzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNJdGVtTG9hZGVyUHJvcHMgZXh0ZW5kcyBTdGFjTG9hZGVyUHJvcHMge31cbiJdfQ==
|
|
@@ -205,5 +205,5 @@ class StactoolsItemGenerator extends constructs_1.Construct {
|
|
|
205
205
|
}
|
|
206
206
|
exports.StactoolsItemGenerator = StactoolsItemGenerator;
|
|
207
207
|
_a = JSII_RTTI_SYMBOL_1;
|
|
208
|
-
StactoolsItemGenerator[_a] = { fqn: "eoapi-cdk.StactoolsItemGenerator", version: "10.
|
|
208
|
+
StactoolsItemGenerator[_a] = { fqn: "eoapi-cdk.StactoolsItemGenerator", version: "10.3.0" };
|
|
209
209
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVdxQjtBQUNyQiwrREFBc0Q7QUFDdEQsMkNBQXVDO0FBQ3ZDLDZCQUE2QjtBQW1IN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0hHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxzQkFBUztJQW9DbkQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBa0M7UUFFbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksR0FBRyxDQUFDO1FBQ3pELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksd0JBQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBRXhFLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUkscUJBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzVELGVBQWUsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxxQkFBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3hDLGlCQUFpQixFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDeEQsVUFBVSxFQUFFLHFCQUFHLENBQUMsZUFBZSxDQUFDLFdBQVc7WUFDM0MsZUFBZSxFQUFFO2dCQUNmLGVBQWUsRUFBRSxDQUFDO2dCQUNsQixLQUFLLEVBQUUs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RSxjQUFjLEVBQUU7WUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWTtZQUN2QyxXQUFXLEVBQUUsb0RBQW9EO1lBQ2pFLFVBQVUsRUFBRSxHQUFHLFlBQVkseUNBQXlDO1NBQ3JFLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBcElILHdEQXFJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENmbk91dHB1dCxcbiAgRHVyYXRpb24sXG4gIGF3c19lYzIgYXMgZWMyLFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX2xhbWJkYV9ldmVudF9zb3VyY2VzIGFzIGxhbWJkYUV2ZW50U291cmNlcyxcbiAgYXdzX2xvZ3MgYXMgbG9ncyxcbiAgYXdzX3NucyBhcyBzbnMsXG4gIGF3c19zbnNfc3Vic2NyaXB0aW9ucyBhcyBzbnNTdWJzY3JpcHRpb25zLFxuICBhd3Nfc3FzIGFzIHNxcyxcbiAgU3RhY2ssXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjci1hc3NldHNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgU3RhY3Rvb2xzSXRlbUdlbmVyYXRvciBjb25zdHJ1Y3QuXG4gKlxuICogVGhlIFN0YWN0b29sc0l0ZW1HZW5lcmF0b3IgaXMgcGFydCBvZiBhIHR3by1waGFzZSBzZXJ2ZXJsZXNzIFNUQUMgaW5nZXN0aW9uIHBpcGVsaW5lXG4gKiB0aGF0IGdlbmVyYXRlcyBTVEFDIGl0ZW1zIGZyb20gc291cmNlIGRhdGEuIFRoaXMgY29uc3RydWN0IGNyZWF0ZXMgdGhlXG4gKiBpbmZyYXN0cnVjdHVyZSBmb3IgdGhlIGZpcnN0IHBoYXNlIG9mIHRoZSBwaXBlbGluZSAtIHByb2Nlc3NpbmcgbWV0YWRhdGFcbiAqIGFib3V0IGFzc2V0cyBhbmQgdHJhbnNmb3JtaW5nIHRoZW0gaW50byBzdGFuZGFyZGl6ZWQgU1RBQyBpdGVtcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgZ2VuZXJhdG9yID0gbmV3IFN0YWN0b29sc0l0ZW1HZW5lcmF0b3IodGhpcywgJ0l0ZW1HZW5lcmF0b3InLCB7XG4gKiAgIGl0ZW1Mb2FkVG9waWNBcm46IGxvYWRlci50b3BpYy50b3BpY0FybixcbiAqICAgbGFtYmRhVGltZW91dFNlY29uZHM6IDEyMCxcbiAqICAgbWF4Q29uY3VycmVuY3k6IDEwMCxcbiAqICAgYmF0Y2hTaXplOiAxMFxuICogfSk7XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY3Rvb2xzSXRlbUdlbmVyYXRvclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBsYW1iZGEgcnVudGltZSB0byB1c2UgZm9yIHRoZSBpdGVtIGdlbmVyYXRpb24gZnVuY3Rpb24uXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBpcyBjb250YWluZXJpemVkIHVzaW5nIERvY2tlciBhbmQgY2FuIGFjY29tbW9kYXRlIHZhcmlvdXNcbiAgICogc3RhY3Rvb2xzIHBhY2thZ2VzLiBUaGUgcnVudGltZSB2ZXJzaW9uIHNob3VsZCBiZSBjb21wYXRpYmxlIHdpdGggdGhlXG4gICAqIHBhY2thZ2VzIHlvdSBwbGFuIHRvIHVzZSBmb3IgU1RBQyBpdGVtIGdlbmVyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzEyXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFSdW50aW1lPzogbGFtYmRhLlJ1bnRpbWU7XG5cbiAgLyoqXG4gICAqIFZQQyBpbnRvIHdoaWNoIHRoZSBsYW1iZGEgc2hvdWxkIGJlIGRlcGxveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFN1Ym5ldCBpbnRvIHdoaWNoIHRoZSBsYW1iZGEgc2hvdWxkIGJlIGRlcGxveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0U2VsZWN0aW9uPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgZm9yIHRoZSBpdGVtIGdlbmVyYXRpb24gbGFtYmRhIGluIHNlY29uZHMuXG4gICAqXG4gICAqIFRoaXMgc2hvdWxkIGFjY29tbW9kYXRlIHRoZSB0aW1lIG5lZWRlZCB0bzpcbiAgICogLSBJbnN0YWxsIHN0YWN0b29scyBwYWNrYWdlcyB1c2luZyB1dnhcbiAgICogLSBEb3dubG9hZCBhbmQgcHJvY2VzcyBzb3VyY2UgZGF0YVxuICAgKiAtIEdlbmVyYXRlIFNUQUMgbWV0YWRhdGFcbiAgICogLSBQdWJsaXNoIHJlc3VsdHMgdG8gU05TXG4gICAqXG4gICAqIFRoZSBTUVMgdmlzaWJpbGl0eSB0aW1lb3V0IHdpbGwgYmUgc2V0IHRvIHRoaXMgdmFsdWUgcGx1cyAxMCBzZWNvbmRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxMjBcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVRpbWVvdXRTZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNZW1vcnkgc2l6ZSBmb3IgdGhlIGxhbWJkYSBmdW5jdGlvbiBpbiBNQi5cbiAgICpcbiAgICogSGlnaGVyIG1lbW9yeSBhbGxvY2F0aW9uIG1heSBiZSBuZWVkZWQgZm9yIHByb2Nlc3NpbmcgbGFyZ2UgZ2Vvc3BhdGlhbFxuICAgKiBkYXRhc2V0cyBvciB3aGVuIHN0YWN0b29scyBwYWNrYWdlcyBoYXZlIGhpZ2ggbWVtb3J5IHJlcXVpcmVtZW50cy5cbiAgICogTW9yZSBtZW1vcnkgYWxzbyBwcm92aWRlcyBwcm9wb3J0aW9uYWxseSBtb3JlIENQVSBwb3dlci5cbiAgICpcbiAgICogQGRlZmF1bHQgMTAyNFxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBleGVjdXRpb25zLlxuICAgKlxuICAgKiBUaGlzIGNvbnRyb2xzIGhvdyBtYW55IGl0ZW0gZ2VuZXJhdGlvbiB0YXNrcyBjYW4gcnVuIHNpbXVsdGFuZW91c2x5LlxuICAgKiBIaWdoZXIgY29uY3VycmVuY3kgZW5hYmxlcyBmYXN0ZXIgcHJvY2Vzc2luZyBvZiBsYXJnZSBiYXRjaGVzIGJ1dFxuICAgKiBtYXkgc3RyYWluIGRvd25zdHJlYW0gc3lzdGVtcyBvciBleHRlcm5hbCBkYXRhIHNvdXJjZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwMFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNRUyBiYXRjaCBzaXplIGZvciBsYW1iZGEgZXZlbnQgc291cmNlLlxuICAgKlxuICAgKiBUaGlzIGRldGVybWluZXMgaG93IG1hbnkgZ2VuZXJhdGlvbiByZXF1ZXN0cyBhcmUgcHJvY2Vzc2VkIHRvZ2V0aGVyXG4gICAqIGluIGEgc2luZ2xlIGxhbWJkYSBpbnZvY2F0aW9uLiBVbmxpa2UgdGhlIGxvYWRlciwgZ2VuZXJhdGlvbiB0eXBpY2FsbHlcbiAgICogcHJvY2Vzc2VzIGl0ZW1zIGluZGl2aWR1YWxseSwgc28gc21hbGxlciBiYXRjaCBzaXplcyBhcmUgY29tbW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxMFxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgdGhlIGxhbWJkYSBmdW5jdGlvbi5cbiAgICpcbiAgICogVGhlc2Ugd2lsbCBiZSBtZXJnZWQgd2l0aCBkZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcyBpbmNsdWRpbmdcbiAgICogSVRFTV9MT0FEX1RPUElDX0FSTiBhbmQgTE9HX0xFVkVMLiBVc2UgdGhpcyBmb3IgY3VzdG9tIGNvbmZpZ3VyYXRpb25cbiAgICogb3IgdG8gcGFzcyBjcmVkZW50aWFscyBmb3IgZXh0ZXJuYWwgZGF0YSBzb3VyY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIFNOUyB0b3BpYyB0byBwdWJsaXNoIGdlbmVyYXRlZCBpdGVtcyB0by5cbiAgICpcbiAgICogVGhpcyBpcyB0eXBpY2FsbHkgdGhlIHRvcGljIGZyb20gYSBTdGFjTG9hZGVyIGNvbnN0cnVjdC5cbiAgICogR2VuZXJhdGVkIFNUQUMgaXRlbXMgd2lsbCBiZSBwdWJsaXNoZWQgaGVyZSBmb3IgZG93bnN0cmVhbVxuICAgKiBwcm9jZXNzaW5nIGFuZCBkYXRhYmFzZSBpbnNlcnRpb24uXG4gICAqL1xuICByZWFkb25seSBpdGVtTG9hZFRvcGljQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGxhbWJkYSBmdW5jdGlvbiBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmluZWQgaW4gdGhlIGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uT3B0aW9ucz86IEN1c3RvbUxhbWJkYUZ1bmN0aW9uUHJvcHM7XG59XG5cbi8qKlxuICogQVdTIENESyBDb25zdHJ1Y3QgZm9yIFNUQUMgSXRlbSBHZW5lcmF0aW9uIEluZnJhc3RydWN0dXJlXG4gKlxuICogVGhlIFN0YWN0b29sc0l0ZW1HZW5lcmF0b3IgY3JlYXRlcyBhIHNlcnZlcmxlc3MsIGV2ZW50LWRyaXZlbiBzeXN0ZW0gZm9yIGdlbmVyYXRpbmdcbiAqIFNUQUMgKFNwYXRpb1RlbXBvcmFsIEFzc2V0IENhdGFsb2cpIGl0ZW1zIGZyb20gc291cmNlIGRhdGEuIFRoaXMgY29uc3RydWN0XG4gKiBpbXBsZW1lbnRzIHRoZSBmaXJzdCBwaGFzZSBvZiBhIHR3by1zdGFnZSBpbmdlc3Rpb24gcGlwZWxpbmUgdGhhdCB0cmFuc2Zvcm1zXG4gKiByYXcgZ2Vvc3BhdGlhbCBkYXRhIGludG8gc3RhbmRhcmRpemVkIFNUQUMgbWV0YWRhdGEuXG4gKlxuICogIyMgQXJjaGl0ZWN0dXJlIE92ZXJ2aWV3XG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgY3JlYXRlcyB0aGUgZm9sbG93aW5nIEFXUyByZXNvdXJjZXM6XG4gKiAtICoqU05TIFRvcGljKio6IEVudHJ5IHBvaW50IGZvciB0cmlnZ2VyaW5nIGl0ZW0gZ2VuZXJhdGlvbiB3b3JrZmxvd3NcbiAqIC0gKipTUVMgUXVldWUqKjogQnVmZmVycyBnZW5lcmF0aW9uIHJlcXVlc3RzICgxMjAtc2Vjb25kIHZpc2liaWxpdHkgdGltZW91dClcbiAqIC0gKipEZWFkIExldHRlciBRdWV1ZSoqOiBDYXB0dXJlcyBmYWlsZWQgbWVzc2FnZXMgYWZ0ZXIgNSBwcm9jZXNzaW5nIGF0dGVtcHRzXG4gKiAtICoqTGFtYmRhIEZ1bmN0aW9uKio6IENvbnRhaW5lcml6ZWQgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgU1RBQyBpdGVtcyB1c2luZyBzdGFjdG9vbHNcbiAqXG4gKiAjIyBEYXRhIEZsb3dcbiAqXG4gKiAxLiBFeHRlcm5hbCBzeXN0ZW1zIHB1Ymxpc2ggSXRlbVJlcXVlc3QgbWVzc2FnZXMgdG8gdGhlIFNOUyB0b3BpYyB3aXRoIG1ldGFkYXRhIGFib3V0IGFzc2V0c1xuICogMi4gVGhlIFNRUyBxdWV1ZSBidWZmZXJzIHRoZXNlIG1lc3NhZ2VzIGFuZCB0cmlnZ2VycyB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gKiAzLiBUaGUgTGFtYmRhIGZ1bmN0aW9uOlxuICogICAgLSBVc2VzIGB1dnhgIHRvIGluc3RhbGwgdGhlIHJlcXVpcmVkIHN0YWN0b29scyBwYWNrYWdlXG4gKiAgICAtIEV4ZWN1dGVzIHRoZSBgY3JlYXRlLWl0ZW1gIENMSSBjb21tYW5kIHdpdGggcHJvdmlkZWQgYXJndW1lbnRzXG4gKiAgICAtIFB1Ymxpc2hlcyBnZW5lcmF0ZWQgU1RBQyBpdGVtcyB0byB0aGUgSXRlbUxvYWQgdG9waWNcbiAqIDQuIEZhaWxlZCBwcm9jZXNzaW5nIGF0dGVtcHRzIGFyZSBzZW50IHRvIHRoZSBkZWFkIGxldHRlciBxdWV1ZVxuICpcbiAqICMjIE9wZXJhdGlvbmFsIENoYXJhY3RlcmlzdGljc1xuICpcbiAqIC0gKipTY2FsYWJpbGl0eSoqOiBMYW1iZGEgc2NhbGVzIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gcXVldWUgZGVwdGggKHVwIHRvIG1heENvbmN1cnJlbmN5KVxuICogLSAqKkZsZXhpYmlsaXR5Kio6IFN1cHBvcnRzIGFueSBzdGFjdG9vbHMgcGFja2FnZSB0aHJvdWdoIGR5bmFtaWMgaW5zdGFsbGF0aW9uXG4gKiAtICoqUmVsaWFiaWxpdHkqKjogRGVhZCBsZXR0ZXIgcXVldWUgY2FwdHVyZXMgZmFpbGVkIGdlbmVyYXRpb24gYXR0ZW1wdHNcbiAqIC0gKipJc29sYXRpb24qKjogRWFjaCBnZW5lcmF0aW9uIHRhc2sgcnVucyBpbiBhIGZyZXNoIGNvbnRhaW5lciBlbnZpcm9ubWVudFxuICogLSAqKk9ic2VydmFiaWxpdHkqKjogQ2xvdWRXYXRjaCBsb2dzIHJldGFpbmVkIGZvciBvbmUgd2Vla1xuICpcbiAqICMjIE1lc3NhZ2UgU2NoZW1hXG4gKlxuICogVGhlIGZ1bmN0aW9uIGV4cGVjdHMgbWVzc2FnZXMgbWF0Y2hpbmcgdGhlIEl0ZW1SZXF1ZXN0IG1vZGVsOlxuICpcbiAqIGBgYGpzb25cbiAqIHtcbiAqICAgXCJwYWNrYWdlX25hbWVcIjogXCJzdGFjdG9vbHMtZ2xhZC1nbG9iYWwtZm9yZXN0LWNoYW5nZVwiLFxuICogICBcImdyb3VwX25hbWVcIjogXCJnbGFkZ2xvYmFsZm9yZXN0Y2hhbmdlXCIsXG4gKiAgIFwiY3JlYXRlX2l0ZW1fYXJnc1wiOiBbXG4gKiAgICAgXCJodHRwczovL2V4YW1wbGUuY29tL2RhdGEudGlmXCJcbiAqICAgXSxcbiAqICAgXCJjb2xsZWN0aW9uX2lkXCI6IFwiZ2xhZC1nbG9iYWwtZm9yZXN0LWNoYW5nZS0xLjExXCJcbiAqIH1cbiAqIGBgYFxuICpcbiAqICMjIFVzYWdlIEV4YW1wbGVcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDcmVhdGUgaXRlbSBsb2FkZXIgZmlyc3QgKG9yIGdldCBleGlzdGluZyB0b3BpYyBBUk4pXG4gKiBjb25zdCBsb2FkZXIgPSBuZXcgU3RhY0xvYWRlcih0aGlzLCAnSXRlbUxvYWRlcicsIHtcbiAqICAgcGdzdGFjRGI6IGRhdGFiYXNlXG4gKiB9KTtcbiAqXG4gKiAvLyBDcmVhdGUgaXRlbSBnZW5lcmF0b3IgdGhhdCBmZWVkcyB0aGUgbG9hZGVyXG4gKiBjb25zdCBnZW5lcmF0b3IgPSBuZXcgU3RhY3Rvb2xzSXRlbUdlbmVyYXRvcih0aGlzLCAnSXRlbUdlbmVyYXRvcicsIHtcbiAqICAgaXRlbUxvYWRUb3BpY0FybjogbG9hZGVyLnRvcGljLnRvcGljQXJuLFxuICogICBsYW1iZGFUaW1lb3V0U2Vjb25kczogMTIwLCAgICAvLyBBbGxvdyB0aW1lIGZvciBwYWNrYWdlIGluc3RhbGxhdGlvblxuICogICBtYXhDb25jdXJyZW5jeTogMTAwLCAgICAgICAgICAvLyBDb250cm9sIHBhcmFsbGVsIHByb2Nlc3NpbmdcbiAqICAgYmF0Y2hTaXplOiAxMCAgICAgICAgICAgICAgICAgLy8gUHJvY2VzcyAxMCByZXF1ZXN0cyBwZXIgaW52b2NhdGlvblxuICogfSk7XG4gKlxuICogLy8gR3JhbnQgcGVybWlzc2lvbiB0byBwdWJsaXNoIHRvIHRoZSBsb2FkZXIgdG9waWNcbiAqIGxvYWRlci50b3BpYy5ncmFudFB1Ymxpc2goZ2VuZXJhdG9yLmxhbWJkYUZ1bmN0aW9uKTtcbiAqIGBgYFxuICpcbiAqICMjIFB1Ymxpc2hpbmcgR2VuZXJhdGlvbiBSZXF1ZXN0c1xuICpcbiAqIFNlbmQgbWVzc2FnZXMgdG8gdGhlIGdlbmVyYXRvciB0b3BpYyB0byB0cmlnZ2VyIGl0ZW0gY3JlYXRpb246XG4gKlxuICogYGBgYmFzaFxuICogYXdzIHNucyBwdWJsaXNoIC0tdG9waWMtYXJuICRJVEVNX0dFTl9UT1BJQyAtLW1lc3NhZ2UgJ3tcbiAqICAgXCJwYWNrYWdlX25hbWVcIjogXCJzdGFjdG9vbHMtZ2xhZC1nbG9iYWwtZm9yZXN0LWNoYW5nZVwiLFxuICogICBcImdyb3VwX25hbWVcIjogXCJnbGFkZ2xvYmFsZm9yZXN0Y2hhbmdlXCIsXG4gKiAgIFwiY3JlYXRlX2l0ZW1fYXJnc1wiOiBbXG4gKiAgICAgXCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZWFydGhlbmdpbmVwYXJ0bmVycy1oYW5zZW4vR0ZDLTIwMjMtdjEuMTEvSGFuc2VuX0dGQy0yMDIzLXYxLjExX2dhaW5fNDBOXzA4MFcudGlmXCJcbiAqICAgXSxcbiAqICAgXCJjb2xsZWN0aW9uX2lkXCI6IFwiZ2xhZC1nbG9iYWwtZm9yZXN0LWNoYW5nZS0xLjExXCJcbiAqIH0nXG4gKiBgYGBcbiAqXG4gKiAjIyBCYXRjaCBQcm9jZXNzaW5nIEV4YW1wbGVcbiAqXG4gKiBGb3IgcHJvY2Vzc2luZyBtYW55IGFzc2V0cywgeW91IGNhbiBsb29wIHRocm91Z2ggVVJMczpcbiAqXG4gKiBgYGBiYXNoXG4gKiB3aGlsZSBJRlM9IHJlYWQgLXIgdXJsOyBkb1xuICogICBhd3Mgc25zIHB1Ymxpc2ggLS10b3BpYy1hcm4gXCIkSVRFTV9HRU5fVE9QSUNcIiAtLW1lc3NhZ2UgXCJ7XG4gKiAgICAgXFxcInBhY2thZ2VfbmFtZVxcXCI6IFxcXCJzdGFjdG9vbHMtZ2xhZC1nbGNsdTIwMjBcXFwiLFxuICogICAgIFxcXCJncm91cF9uYW1lXFxcIjogXFxcImdsYWRnbGNsdTIwMjBcXFwiLFxuICogICAgIFxcXCJjcmVhdGVfaXRlbV9hcmdzXFxcIjogW1xcXCIkdXJsXFxcIl1cbiAqICAgfVwiXG4gKiBkb25lIDwgdXJscy50eHRcbiAqIGBgYFxuICpcbiAqICMjIE1vbml0b3JpbmcgYW5kIFRyb3VibGVzaG9vdGluZ1xuICpcbiAqIC0gTW9uaXRvciBMYW1iZGEgbG9nczogYC9hd3MvbGFtYmRhL3tGdW5jdGlvbk5hbWV9YFxuICogLSBDaGVjayBkZWFkIGxldHRlciBxdWV1ZSBmb3IgZmFpbGVkIGdlbmVyYXRpb24gYXR0ZW1wdHNcbiAqIC0gVXNlIENsb3VkV2F0Y2ggbWV0cmljcyB0byB0cmFjayBwcm9jZXNzaW5nIHJhdGVzIGFuZCBlcnJvcnNcbiAqIC0gRmFpbGVkIGl0ZW1zIGNhbiBiZSByZXBsYXllZCBmcm9tIHRoZSBkZWFkIGxldHRlciBxdWV1ZVxuICpcbiAqICMjIFN1cHBvcnRlZCBTdGFjdG9vbHMgUGFja2FnZXNcbiAqXG4gKiBBbnkgcGFja2FnZSBhdmFpbGFibGUgb24gUHlQSSB0aGF0IGZvbGxvd3MgdGhlIHN0YWN0b29scyBwbHVnaW4gcGF0dGVyblxuICogY2FuIGJlIHVzZWQuIEV4YW1wbGVzIGluY2x1ZGU6XG4gKiAtIGBzdGFjdG9vbHMtZ2xhZC1nbG9iYWwtZm9yZXN0LWNoYW5nZWBcbiAqIC0gYHN0YWN0b29scy1nbGFkLWdsY2x1MjAyMGBcbiAqIC0gYHN0YWN0b29scy1sYW5kc2F0YFxuICogLSBgc3RhY3Rvb2xzLXNlbnRpbmVsMmBcbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vc3RhY3Rvb2xzLXBhY2thZ2VzfSBmb3IgYXZhaWxhYmxlIHN0YWN0b29scyBwYWNrYWdlc1xuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9zdGFjdG9vbHMucmVhZHRoZWRvY3MuaW8vfSBmb3Igc3RhY3Rvb2xzIGRvY3VtZW50YXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWN0b29sc0l0ZW1HZW5lcmF0b3IgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIFNRUyBxdWV1ZSB0aGF0IGJ1ZmZlcnMgaXRlbSBnZW5lcmF0aW9uIHJlcXVlc3RzLlxuICAgKlxuICAgKiBUaGlzIHF1ZXVlIHJlY2VpdmVzIG1lc3NhZ2VzIGZyb20gdGhlIFNOUyB0b3BpYyBjb250YWluaW5nIEl0ZW1SZXF1ZXN0XG4gICAqIHBheWxvYWRzLiBJdCdzIGNvbmZpZ3VyZWQgd2l0aCBhIHZpc2liaWxpdHkgdGltZW91dCB0aGF0IG1hdGNoZXMgdGhlXG4gICAqIExhbWJkYSB0aW1lb3V0IHBsdXMgYnVmZmVyIHRpbWUgdG8gcHJldmVudCBkdXBsaWNhdGUgcHJvY2Vzc2luZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBxdWV1ZTogc3FzLlF1ZXVlO1xuXG4gIC8qKlxuICAgKiBEZWFkIGxldHRlciBxdWV1ZSBmb3IgZmFpbGVkIGl0ZW0gZ2VuZXJhdGlvbiBhdHRlbXB0cy5cbiAgICpcbiAgICogTWVzc2FnZXMgdGhhdCBmYWlsIHByb2Nlc3NpbmcgYWZ0ZXIgNSBhdHRlbXB0cyBhcmUgc2VudCBoZXJlIGZvclxuICAgKiBpbnNwZWN0aW9uIGFuZCBwb3RlbnRpYWwgcmVwbGF5LiBUaGlzIGhlbHBzIHdpdGggZGVidWdnaW5nIHN0YWN0b29sc1xuICAgKiBwYWNrYWdlIGlzc3VlcywgbmV0d29yayBmYWlsdXJlcywgb3IgbWFsZm9ybWVkIHJlcXVlc3RzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZTogc3FzLlF1ZXVlO1xuXG4gIC8qKlxuICAgKiBUaGUgU05TIHRvcGljIHRoYXQgcmVjZWl2ZXMgaXRlbSBnZW5lcmF0aW9uIHJlcXVlc3RzLlxuICAgKlxuICAgKiBFeHRlcm5hbCBzeXN0ZW1zIHB1Ymxpc2ggSXRlbVJlcXVlc3QgbWVzc2FnZXMgdG8gdGhpcyB0b3BpYyB0byB0cmlnZ2VyXG4gICAqIFNUQUMgaXRlbSBnZW5lcmF0aW9uLiBUaGUgdG9waWMgZmFucyBvdXQgdG8gdGhlIFNRUyBxdWV1ZSBmb3IgcHJvY2Vzc2luZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0b3BpYzogc25zLlRvcGljO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGFpbmVyaXplZCBMYW1iZGEgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgU1RBQyBpdGVtcy5cbiAgICpcbiAgICogVGhpcyBEb2NrZXItYmFzZWQgZnVuY3Rpb24gZHluYW1pY2FsbHkgaW5zdGFsbHMgc3RhY3Rvb2xzIHBhY2thZ2VzXG4gICAqIHVzaW5nIHV2eCwgcHJvY2Vzc2VzIHNvdXJjZSBkYXRhLCBhbmQgcHVibGlzaGVzIGdlbmVyYXRlZCBTVEFDIGl0ZW1zXG4gICAqIHRvIHRoZSBjb25maWd1cmVkIEl0ZW1Mb2FkIFNOUyB0b3BpYy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLkRvY2tlckltYWdlRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBTdGFjdG9vbHNJdGVtR2VuZXJhdG9yUHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHRpbWVvdXRTZWNvbmRzID0gcHJvcHMubGFtYmRhVGltZW91dFNlY29uZHMgPz8gMTIwO1xuICAgIGNvbnN0IGxhbWJkYVJ1bnRpbWUgPSBwcm9wcy5sYW1iZGFSdW50aW1lID8/IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzEyO1xuXG4gICAgLy8gQ3JlYXRlIGRlYWQgbGV0dGVyIHF1ZXVlXG4gICAgdGhpcy5kZWFkTGV0dGVyUXVldWUgPSBuZXcgc3FzLlF1ZXVlKHRoaXMsIFwiRGVhZExldHRlclF1ZXVlXCIsIHtcbiAgICAgIHJldGVudGlvblBlcmlvZDogRHVyYXRpb24uZGF5cygxNCksXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgbWFpbiBxdWV1ZVxuICAgIHRoaXMucXVldWUgPSBuZXcgc3FzLlF1ZXVlKHRoaXMsIFwiUXVldWVcIiwge1xuICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHModGltZW91dFNlY29uZHMgKyAxMCksXG4gICAgICBlbmNyeXB0aW9uOiBzcXMuUXVldWVFbmNyeXB0aW9uLlNRU19NQU5BR0VELFxuICAgICAgZGVhZExldHRlclF1ZXVlOiB7XG4gICAgICAgIG1heFJlY2VpdmVDb3VudDogNSxcbiAgICAgICAgcXVldWU6IHRoaXMuZGVhZExldHRlclF1ZXVlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBTTlMgdG9waWNcbiAgICB0aGlzLnRvcGljID0gbmV3IHNucy5Ub3BpYyh0aGlzLCBcIlRvcGljXCIsIHtcbiAgICAgIGRpc3BsYXlOYW1lOiBgJHtpZH0tSXRlbUdlblRvcGljYCxcbiAgICB9KTtcblxuICAgIC8vIFN1YnNjcmliZSB0aGUgcXVldWUgdG8gdGhlIHRvcGljXG4gICAgdGhpcy50b3BpYy5hZGRTdWJzY3JpcHRpb24oXG4gICAgICBuZXcgc25zU3Vic2NyaXB0aW9ucy5TcXNTdWJzY3JpcHRpb24odGhpcy5xdWV1ZSlcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBsYW1iZGEgZnVuY3Rpb25cbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gbmV3IGxhbWJkYS5Eb2NrZXJJbWFnZUZ1bmN0aW9uKHRoaXMsIFwiRnVuY3Rpb25cIiwge1xuICAgICAgY29kZTogbGFtYmRhLkRvY2tlckltYWdlQ29kZS5mcm9tSW1hZ2VBc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIpLCB7XG4gICAgICAgIGZpbGU6IFwic3RhY3Rvb2xzLWl0ZW0tZ2VuZXJhdG9yL3J1bnRpbWUvRG9ja2VyZmlsZVwiLFxuICAgICAgICBwbGF0Zm9ybTogUGxhdGZvcm0uTElOVVhfQU1ENjQsXG4gICAgICAgIGJ1aWxkQXJnczoge1xuICAgICAgICAgIFBZVEhPTl9WRVJTSU9OOiBsYW1iZGFSdW50aW1lLnRvU3RyaW5nKCkucmVwbGFjZShcInB5dGhvblwiLCBcIlwiKSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgbWVtb3J5U2l6ZTogcHJvcHMubWVtb3J5U2l6ZSA/PyAxMDI0LFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKHRpbWVvdXRTZWNvbmRzKSxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgSVRFTV9MT0FEX1RPUElDX0FSTjogcHJvcHMuaXRlbUxvYWRUb3BpY0FybixcbiAgICAgICAgTE9HX0xFVkVMOiBcIklORk9cIixcbiAgICAgICAgLi4ucHJvcHMuZW52aXJvbm1lbnQsXG4gICAgICB9LFxuICAgICAgLy8gb3ZlcndyaXRlcyBkZWZhdWx0cyB3aXRoIHVzZXItcHJvdmlkZWQgY29uZmlndXJhYmxlIHByb3BlcnRpZXNcbiAgICAgIC4uLnByb3BzLmxhbWJkYUZ1bmN0aW9uT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIC8vIEFkZCBTUVMgZXZlbnQgc291cmNlIHRvIHRoZSBsYW1iZGFcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uLmFkZEV2ZW50U291cmNlKFxuICAgICAgbmV3IGxhbWJkYUV2ZW50U291cmNlcy5TcXNFdmVudFNvdXJjZSh0aGlzLnF1ZXVlLCB7XG4gICAgICAgIGJhdGNoU2l6ZTogcHJvcHMuYmF0Y2hTaXplID8/IDEwLFxuICAgICAgICByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlczogdHJ1ZSxcbiAgICAgICAgbWF4Q29uY3VycmVuY3k6IHByb3BzLm1heENvbmN1cnJlbmN5ID8/IDEwMCxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIEdyYW50IHBlcm1pc3Npb25zIHRvIHB1Ymxpc2ggdG8gdGhlIGl0ZW0gbG9hZCB0b3BpY1xuICAgIC8vIE5vdGU6IFRoaXMgd2lsbCBiZSBncmFudGVkIGV4dGVybmFsbHkgc2luY2Ugd2Ugb25seSBoYXZlIHRoZSBBUk5cbiAgICAvLyBUaGUgY29uc3VtaW5nIGNvbnN0cnVjdCBzaG91bGQgaGFuZGxlIHRoaXMgcGVybWlzc2lvblxuXG4gICAgLy8gQ3JlYXRlIG91dHB1dHNcbiAgICBjb25zdCBleHBvcnRQcmVmaXggPSBTdGFjay5vZih0aGlzKS5zdGFja05hbWU7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIlRvcGljQXJuXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLnRvcGljLnRvcGljQXJuLFxuICAgICAgZGVzY3JpcHRpb246IFwiQVJOIG9mIHRoZSBTdGFjdG9vbHNJdGVtR2VuZXJhdG9yIFNOUyBUb3BpY1wiLFxuICAgICAgZXhwb3J0TmFtZTogYCR7ZXhwb3J0UHJlZml4fS1zdGFjdG9vbHMtaXRlbS1nZW5lcmF0b3ItdG9waWMtYXJuYCxcbiAgICB9KTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJRdWV1ZVVybFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5xdWV1ZS5xdWV1ZVVybCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlVSTCBvZiB0aGUgU3RhY3Rvb2xzSXRlbUdlbmVyYXRvciBTUVMgUXVldWVcIixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2V4cG9ydFByZWZpeH0tc3RhY3Rvb2xzLWl0ZW0tZ2VuZXJhdG9yLXF1ZXVlLXVybGAsXG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiRGVhZExldHRlclF1ZXVlVXJsXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmRlYWRMZXR0ZXJRdWV1ZS5xdWV1ZVVybCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlVSTCBvZiB0aGUgU3RhY3Rvb2xzSXRlbUdlbmVyYXRvciBEZWFkIExldHRlciBRdWV1ZVwiLFxuICAgICAgZXhwb3J0TmFtZTogYCR7ZXhwb3J0UHJlZml4fS1zdGFjdG9vbHMtaXRlbS1nZW5lcmF0b3ItZGVhZGxldHRlci1xdWV1ZS11cmxgLFxuICAgIH0pO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIkZ1bmN0aW9uTmFtZVwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5sYW1iZGFGdW5jdGlvbi5mdW5jdGlvbk5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogXCJOYW1lIG9mIHRoZSBTdGFjdG9vbHNJdGVtR2VuZXJhdG9yIExhbWJkYSBGdW5jdGlvblwiLFxuICAgICAgZXhwb3J0TmFtZTogYCR7ZXhwb3J0UHJlZml4fS1zdGFjdG9vbHMtaXRlbS1nZW5lcmF0b3ItZnVuY3Rpb24tbmFtZWAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/tipg-api/index.d.ts
CHANGED
|
@@ -26,6 +26,25 @@ export interface TiPgApiLambdaRuntimeProps {
|
|
|
26
26
|
* Customized environment variables to send to titiler-pgstac runtime.
|
|
27
27
|
*/
|
|
28
28
|
readonly apiEnv?: Record<string, string>;
|
|
29
|
+
/**
|
|
30
|
+
* Enable SnapStart to reduce cold start latency.
|
|
31
|
+
*
|
|
32
|
+
* SnapStart creates a snapshot of the initialized Lambda function, allowing new instances
|
|
33
|
+
* to start from this pre-initialized state instead of starting from scratch.
|
|
34
|
+
*
|
|
35
|
+
* Benefits:
|
|
36
|
+
* - Significantly reduces cold start times (typically 10x faster)
|
|
37
|
+
* - Improves API response time for infrequent requests
|
|
38
|
+
*
|
|
39
|
+
* Considerations:
|
|
40
|
+
* - Additional cost: charges for snapshot storage and restore operations
|
|
41
|
+
* - Requires Lambda versioning (automatically configured by this construct)
|
|
42
|
+
* - Database connections are recreated on restore using snapshot lifecycle hooks
|
|
43
|
+
*
|
|
44
|
+
* @see https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
47
|
+
readonly enableSnapStart?: boolean;
|
|
29
48
|
/**
|
|
30
49
|
* Can be used to override the default lambda function properties.
|
|
31
50
|
*
|
package/lib/tipg-api/index.js
CHANGED
|
@@ -7,9 +7,11 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
7
7
|
const constructs_1 = require("constructs");
|
|
8
8
|
const path = require("path");
|
|
9
9
|
const lambda_api_gateway_1 = require("../lambda-api-gateway");
|
|
10
|
+
const utils_1 = require("../utils");
|
|
10
11
|
class TiPgApiLambdaRuntime extends constructs_1.Construct {
|
|
11
12
|
constructor(scope, id, props) {
|
|
12
13
|
super(scope, id);
|
|
14
|
+
const { code: userCode, ...otherLambdaOptions } = props.lambdaFunctionOptions || {};
|
|
13
15
|
this.lambdaFunction = new aws_cdk_lib_1.aws_lambda.Function(this, "lambda", {
|
|
14
16
|
// defaults
|
|
15
17
|
runtime: aws_cdk_lib_1.aws_lambda.Runtime.PYTHON_3_12,
|
|
@@ -17,7 +19,7 @@ class TiPgApiLambdaRuntime extends constructs_1.Construct {
|
|
|
17
19
|
memorySize: 1024,
|
|
18
20
|
logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.ONE_WEEK,
|
|
19
21
|
timeout: aws_cdk_lib_1.Duration.seconds(30),
|
|
20
|
-
code:
|
|
22
|
+
code: (0, utils_1.resolveLambdaCode)(userCode, path.join(__dirname, ".."), {
|
|
21
23
|
file: "tipg-api/runtime/Dockerfile",
|
|
22
24
|
buildArgs: { PYTHON_VERSION: "3.12" },
|
|
23
25
|
}),
|
|
@@ -30,8 +32,11 @@ class TiPgApiLambdaRuntime extends constructs_1.Construct {
|
|
|
30
32
|
DB_MAX_CONN_SIZE: "1",
|
|
31
33
|
...props.apiEnv,
|
|
32
34
|
},
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
snapStart: props.enableSnapStart
|
|
36
|
+
? aws_cdk_lib_1.aws_lambda.SnapStartConf.ON_PUBLISHED_VERSIONS
|
|
37
|
+
: undefined,
|
|
38
|
+
// overwrites defaults with user-provided configurable properties (excluding code)
|
|
39
|
+
...otherLambdaOptions,
|
|
35
40
|
});
|
|
36
41
|
props.dbSecret.grantRead(this.lambdaFunction);
|
|
37
42
|
if (props.vpc) {
|
|
@@ -41,7 +46,7 @@ class TiPgApiLambdaRuntime extends constructs_1.Construct {
|
|
|
41
46
|
}
|
|
42
47
|
exports.TiPgApiLambdaRuntime = TiPgApiLambdaRuntime;
|
|
43
48
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
TiPgApiLambdaRuntime[_a] = { fqn: "eoapi-cdk.TiPgApiLambdaRuntime", version: "10.
|
|
49
|
+
TiPgApiLambdaRuntime[_a] = { fqn: "eoapi-cdk.TiPgApiLambdaRuntime", version: "10.3.0" };
|
|
45
50
|
class TiPgApiLambda extends constructs_1.Construct {
|
|
46
51
|
constructor(scope, id, props) {
|
|
47
52
|
super(scope, id);
|
|
@@ -51,11 +56,14 @@ class TiPgApiLambda extends constructs_1.Construct {
|
|
|
51
56
|
db: props.db,
|
|
52
57
|
dbSecret: props.dbSecret,
|
|
53
58
|
apiEnv: props.apiEnv,
|
|
59
|
+
enableSnapStart: props.enableSnapStart,
|
|
54
60
|
lambdaFunctionOptions: props.lambdaFunctionOptions,
|
|
55
61
|
});
|
|
56
62
|
this.tiPgLambdaFunction = this.lambdaFunction = runtime.lambdaFunction;
|
|
57
63
|
const { api } = new lambda_api_gateway_1.LambdaApiGateway(this, "api", {
|
|
58
|
-
lambdaFunction:
|
|
64
|
+
lambdaFunction: props.enableSnapStart
|
|
65
|
+
? runtime.lambdaFunction.currentVersion
|
|
66
|
+
: runtime.lambdaFunction,
|
|
59
67
|
domainName: props.domainName ?? props.tipgApiDomainName,
|
|
60
68
|
});
|
|
61
69
|
this.url = api.url;
|
|
@@ -67,5 +75,5 @@ class TiPgApiLambda extends constructs_1.Construct {
|
|
|
67
75
|
}
|
|
68
76
|
exports.TiPgApiLambda = TiPgApiLambda;
|
|
69
77
|
_b = JSII_RTTI_SYMBOL_1;
|
|
70
|
-
TiPgApiLambda[_b] = { fqn: "eoapi-cdk.TiPgApiLambda", version: "10.
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVVxQjtBQUNyQiwyQ0FBdUM7QUFDdkMsNkJBQTZCO0FBQzdCLDhEQUF5RDtBQUd6RCxNQUFhLG9CQUFxQixTQUFRLHNCQUFTO0lBR2pELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0M7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksd0JBQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUN4RCxXQUFXO1lBQ1gsT0FBTyxFQUFFLHdCQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsc0JBQUksQ0FBQyxhQUFhLENBQUMsUUFBUTtZQUN6QyxPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksRUFBRSx3QkFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQzVELElBQUksRUFBRSw2QkFBNkI7Z0JBQ25DLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUU7YUFDdEMsQ0FBQztZQUNGLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLFVBQVUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUNqQyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFdBQVcsRUFBRTtnQkFDWCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVM7Z0JBQzNDLGdCQUFnQixFQUFFLEdBQUc7Z0JBQ3JCLGdCQUFnQixFQUFFLEdBQUc7Z0JBQ3JCLEdBQUcsS0FBSyxDQUFDLE1BQU07YUFDaEI7WUFDRCxpRUFBaUU7WUFDakUsR0FBRyxLQUFLLENBQUMscUJBQXFCO1NBQy9CLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU5QyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDckMsS0FBSyxDQUFDLEVBQUUsRUFDUixxQkFBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQ2xCLDZCQUE2QixDQUM5QixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7O0FBdkNILG9EQXdDQzs7O0FBb0NELE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBZ0IxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3hELEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDWixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUI7U0FDbkQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUV2RSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxxQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQ2hELGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztZQUN0QyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsaUJBQWlCO1NBQ3hELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUksQ0FBQztRQUVwQixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3JDLFVBQVUsRUFBRSxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsVUFBVTtZQUNqRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF4Q0gsc0NBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXdzX2FwaWdhdGV3YXl2MiBhcyBhcGlnYXRld2F5djIsXG4gIENmbk91dHB1dCxcbiAgRHVyYXRpb24sXG4gIGF3c19lYzIgYXMgZWMyLFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX2xvZ3MgYXMgbG9ncyxcbiAgYXdzX3JkcyBhcyByZHMsXG4gIGF3c19zZWNyZXRzbWFuYWdlciBhcyBzZWNyZXRzbWFuYWdlcixcbiAgU3RhY2ssXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IExhbWJkYUFwaUdhdGV3YXkgfSBmcm9tIFwiLi4vbGFtYmRhLWFwaS1nYXRld2F5XCI7XG5pbXBvcnQgeyBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBUaVBnQXBpTGFtYmRhUnVudGltZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLkZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUaVBnQXBpTGFtYmRhUnVudGltZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwibGFtYmRhXCIsIHtcbiAgICAgIC8vIGRlZmF1bHRzXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMixcbiAgICAgIGhhbmRsZXI6IFwiaGFuZGxlci5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAxMDI0LFxuICAgICAgbG9nUmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Eb2NrZXJCdWlsZChwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIpLCB7XG4gICAgICAgIGZpbGU6IFwidGlwZy1hcGkvcnVudGltZS9Eb2NrZXJmaWxlXCIsXG4gICAgICAgIGJ1aWxkQXJnczogeyBQWVRIT05fVkVSU0lPTjogXCIzLjEyXCIgfSxcbiAgICAgIH0pLFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBhbGxvd1B1YmxpY1N1Ym5ldDogdHJ1ZSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFBHU1RBQ19TRUNSRVRfQVJOOiBwcm9wcy5kYlNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIERCX01JTl9DT05OX1NJWkU6IFwiMVwiLFxuICAgICAgICBEQl9NQVhfQ09OTl9TSVpFOiBcIjFcIixcbiAgICAgICAgLi4ucHJvcHMuYXBpRW52LFxuICAgICAgfSxcbiAgICAgIC8vIG92ZXJ3cml0ZXMgZGVmYXVsdHMgd2l0aCB1c2VyLXByb3ZpZGVkIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzXG4gICAgICAuLi5wcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBwcm9wcy5kYlNlY3JldC5ncmFudFJlYWQodGhpcy5sYW1iZGFGdW5jdGlvbik7XG5cbiAgICBpZiAocHJvcHMudnBjKSB7XG4gICAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uLmNvbm5lY3Rpb25zLmFsbG93VG8oXG4gICAgICAgIHByb3BzLmRiLFxuICAgICAgICBlYzIuUG9ydC50Y3AoNTQzMiksXG4gICAgICAgIFwiYWxsb3cgY29ubmVjdGlvbnMgZnJvbSB0aXBnXCJcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGlQZ0FwaUxhbWJkYVJ1bnRpbWVQcm9wcyB7XG4gIC8qKlxuICAgKiBWUEMgaW50byB3aGljaCB0aGUgbGFtYmRhIHNob3VsZCBiZSBkZXBsb3llZC5cbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBSRFMgSW5zdGFuY2Ugd2l0aCBpbnN0YWxsZWQgcGdTVEFDIG9yIHBnYm91bmNlciBzZXJ2ZXIuXG4gICAqL1xuICByZWFkb25seSBkYjogcmRzLklEYXRhYmFzZUluc3RhbmNlIHwgZWMyLklJbnN0YW5jZTtcblxuICAvKipcbiAgICogU3VibmV0IGludG8gd2hpY2ggdGhlIGxhbWJkYSBzaG91bGQgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRTZWxlY3Rpb24/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBTZWNyZXQgY29udGFpbmluZyBjb25uZWN0aW9uIGluZm9ybWF0aW9uIGZvciBwZ1NUQUMgZGF0YWJhc2UuXG4gICAqL1xuICByZWFkb25seSBkYlNlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldDtcblxuICAvKipcbiAgICogQ3VzdG9taXplZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2VuZCB0byB0aXRpbGVyLXBnc3RhYyBydW50aW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpRW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbGFtYmRhIGZ1bmN0aW9uIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcbn1cblxuZXhwb3J0IGNsYXNzIFRpUGdBcGlMYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVVJMIGZvciB0aGUgVGlQZyBBUEkuXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogTGFtYmRhIGZ1bmN0aW9uIGZvciB0aGUgVGlQZyBBUEkuXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLkZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIHVzZSBsYW1iZGFGdW5jdGlvbiBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgdGlQZ0xhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRpUGdBcGlMYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBydW50aW1lID0gbmV3IFRpUGdBcGlMYW1iZGFSdW50aW1lKHRoaXMsIFwicnVudGltZVwiLCB7XG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHN1Ym5ldFNlbGVjdGlvbjogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgZGI6IHByb3BzLmRiLFxuICAgICAgZGJTZWNyZXQ6IHByb3BzLmRiU2VjcmV0LFxuICAgICAgYXBpRW52OiBwcm9wcy5hcGlFbnYsXG4gICAgICBsYW1iZGFGdW5jdGlvbk9wdGlvbnM6IHByb3BzLmxhbWJkYUZ1bmN0aW9uT3B0aW9ucyxcbiAgICB9KTtcbiAgICB0aGlzLnRpUGdMYW1iZGFGdW5jdGlvbiA9IHRoaXMubGFtYmRhRnVuY3Rpb24gPSBydW50aW1lLmxhbWJkYUZ1bmN0aW9uO1xuXG4gICAgY29uc3QgeyBhcGkgfSA9IG5ldyBMYW1iZGFBcGlHYXRld2F5KHRoaXMsIFwiYXBpXCIsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBydW50aW1lLmxhbWJkYUZ1bmN0aW9uLFxuICAgICAgZG9tYWluTmFtZTogcHJvcHMuZG9tYWluTmFtZSA/PyBwcm9wcy50aXBnQXBpRG9tYWluTmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMudXJsID0gYXBpLnVybCE7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwidGlwZy1hcGktb3V0cHV0XCIsIHtcbiAgICAgIGV4cG9ydE5hbWU6IGAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX0tdGlwLXVybGAsXG4gICAgICB2YWx1ZTogdGhpcy51cmwsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaVBnQXBpTGFtYmRhUHJvcHMgZXh0ZW5kcyBUaVBnQXBpTGFtYmRhUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIERvbWFpbiBOYW1lIGZvciB0aGUgVGlQZyBBUEkuIElmIGRlZmluZWQsIHdpbGwgY3JlYXRlIHRoZSBkb21haW4gbmFtZSBhbmQgaW50ZWdyYXRlIGl0IHdpdGggdGhlIFRpUGcgQVBJLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZT86IGFwaWdhdGV3YXl2Mi5JRG9tYWluTmFtZTtcblxuICAvKipcbiAgICogQ3VzdG9tIERvbWFpbiBOYW1lIGZvciB0aXBnIEFQSS4gSWYgZGVmaW5lZCwgd2lsbCBjcmVhdGUgdGhlXG4gICAqIGRvbWFpbiBuYW1lIGFuZCBpbnRlZ3JhdGUgaXQgd2l0aCB0aGUgdGlwZyBBUEkuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSAnZG9tYWluTmFtZScgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHRpcGdBcGlEb21haW5OYW1lPzogYXBpZ2F0ZXdheXYyLklEb21haW5OYW1lO1xufVxuIl19
|
|
78
|
+
TiPgApiLambda[_b] = { fqn: "eoapi-cdk.TiPgApiLambda", version: "10.3.0" };
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVVxQjtBQUNyQiwyQ0FBdUM7QUFDdkMsNkJBQTZCO0FBQzdCLDhEQUF5RDtBQUN6RCxvQ0FBd0U7QUFFeEUsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQUdqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxHQUM3QyxLQUFLLENBQUMscUJBQXFCLElBQUksRUFBRSxDQUFDO1FBRXBDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSx3QkFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3hELFdBQVc7WUFDWCxPQUFPLEVBQUUsd0JBQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNuQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxzQkFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRO1lBQ3pDLE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxFQUFFLElBQUEseUJBQWlCLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUM1RCxJQUFJLEVBQUUsNkJBQTZCO2dCQUNuQyxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFO2FBQ3RDLENBQUM7WUFDRixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxVQUFVLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDakMsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixXQUFXLEVBQUU7Z0JBQ1gsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTO2dCQUMzQyxnQkFBZ0IsRUFBRSxHQUFHO2dCQUNyQixnQkFBZ0IsRUFBRSxHQUFHO2dCQUNyQixHQUFHLEtBQUssQ0FBQyxNQUFNO2FBQ2hCO1lBQ0QsU0FBUyxFQUFFLEtBQUssQ0FBQyxlQUFlO2dCQUM5QixDQUFDLENBQUMsd0JBQU0sQ0FBQyxhQUFhLENBQUMscUJBQXFCO2dCQUM1QyxDQUFDLENBQUMsU0FBUztZQUNiLGtGQUFrRjtZQUNsRixHQUFHLGtCQUFrQjtTQUN0QixDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUMsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQ3JDLEtBQUssQ0FBQyxFQUFFLEVBQ1IscUJBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUNsQiw2QkFBNkIsQ0FDOUIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOztBQTdDSCxvREE4Q0M7OztBQXdERCxNQUFhLGFBQWMsU0FBUSxzQkFBUztJQWdCMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN4RCxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1osUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLHFCQUFxQjtTQUNuRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBRXZFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLHFDQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDaEQsY0FBYyxFQUFFLEtBQUssQ0FBQyxlQUFnQjtnQkFDcEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsY0FBYztnQkFDdkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjO1lBQzFCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxpQkFBaUI7U0FDeEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBSSxDQUFDO1FBRXBCLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDckMsVUFBVSxFQUFFLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxVQUFVO1lBQ2pELEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQTNDSCxzQ0E0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhd3NfYXBpZ2F0ZXdheXYyIGFzIGFwaWdhdGV3YXl2MixcbiAgQ2ZuT3V0cHV0LFxuICBEdXJhdGlvbixcbiAgYXdzX2VjMiBhcyBlYzIsXG4gIGF3c19sYW1iZGEgYXMgbGFtYmRhLFxuICBhd3NfbG9ncyBhcyBsb2dzLFxuICBhd3NfcmRzIGFzIHJkcyxcbiAgYXdzX3NlY3JldHNtYW5hZ2VyIGFzIHNlY3JldHNtYW5hZ2VyLFxuICBTdGFjayxcbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgTGFtYmRhQXBpR2F0ZXdheSB9IGZyb20gXCIuLi9sYW1iZGEtYXBpLWdhdGV3YXlcIjtcbmltcG9ydCB7IEN1c3RvbUxhbWJkYUZ1bmN0aW9uUHJvcHMsIHJlc29sdmVMYW1iZGFDb2RlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBUaVBnQXBpTGFtYmRhUnVudGltZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLkZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUaVBnQXBpTGFtYmRhUnVudGltZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgY29kZTogdXNlckNvZGUsIC4uLm90aGVyTGFtYmRhT3B0aW9ucyB9ID1cbiAgICAgIHByb3BzLmxhbWJkYUZ1bmN0aW9uT3B0aW9ucyB8fCB7fTtcblxuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwibGFtYmRhXCIsIHtcbiAgICAgIC8vIGRlZmF1bHRzXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMixcbiAgICAgIGhhbmRsZXI6IFwiaGFuZGxlci5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAxMDI0LFxuICAgICAgbG9nUmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGNvZGU6IHJlc29sdmVMYW1iZGFDb2RlKHVzZXJDb2RlLCBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIpLCB7XG4gICAgICAgIGZpbGU6IFwidGlwZy1hcGkvcnVudGltZS9Eb2NrZXJmaWxlXCIsXG4gICAgICAgIGJ1aWxkQXJnczogeyBQWVRIT05fVkVSU0lPTjogXCIzLjEyXCIgfSxcbiAgICAgIH0pLFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBhbGxvd1B1YmxpY1N1Ym5ldDogdHJ1ZSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFBHU1RBQ19TRUNSRVRfQVJOOiBwcm9wcy5kYlNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIERCX01JTl9DT05OX1NJWkU6IFwiMVwiLFxuICAgICAgICBEQl9NQVhfQ09OTl9TSVpFOiBcIjFcIixcbiAgICAgICAgLi4ucHJvcHMuYXBpRW52LFxuICAgICAgfSxcbiAgICAgIHNuYXBTdGFydDogcHJvcHMuZW5hYmxlU25hcFN0YXJ0XG4gICAgICAgID8gbGFtYmRhLlNuYXBTdGFydENvbmYuT05fUFVCTElTSEVEX1ZFUlNJT05TXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgLy8gb3ZlcndyaXRlcyBkZWZhdWx0cyB3aXRoIHVzZXItcHJvdmlkZWQgY29uZmlndXJhYmxlIHByb3BlcnRpZXMgKGV4Y2x1ZGluZyBjb2RlKVxuICAgICAgLi4ub3RoZXJMYW1iZGFPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgcHJvcHMuZGJTZWNyZXQuZ3JhbnRSZWFkKHRoaXMubGFtYmRhRnVuY3Rpb24pO1xuXG4gICAgaWYgKHByb3BzLnZwYykge1xuICAgICAgdGhpcy5sYW1iZGFGdW5jdGlvbi5jb25uZWN0aW9ucy5hbGxvd1RvKFxuICAgICAgICBwcm9wcy5kYixcbiAgICAgICAgZWMyLlBvcnQudGNwKDU0MzIpLFxuICAgICAgICBcImFsbG93IGNvbm5lY3Rpb25zIGZyb20gdGlwZ1wiXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpUGdBcGlMYW1iZGFSdW50aW1lUHJvcHMge1xuICAvKipcbiAgICogVlBDIGludG8gd2hpY2ggdGhlIGxhbWJkYSBzaG91bGQgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcblxuICAvKipcbiAgICogUkRTIEluc3RhbmNlIHdpdGggaW5zdGFsbGVkIHBnU1RBQyBvciBwZ2JvdW5jZXIgc2VydmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZGI6IHJkcy5JRGF0YWJhc2VJbnN0YW5jZSB8IGVjMi5JSW5zdGFuY2U7XG5cbiAgLyoqXG4gICAqIFN1Ym5ldCBpbnRvIHdoaWNoIHRoZSBsYW1iZGEgc2hvdWxkIGJlIGRlcGxveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0U2VsZWN0aW9uPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogU2VjcmV0IGNvbnRhaW5pbmcgY29ubmVjdGlvbiBpbmZvcm1hdGlvbiBmb3IgcGdTVEFDIGRhdGFiYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGJTZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG5cbiAgLyoqXG4gICAqIEN1c3RvbWl6ZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNlbmQgdG8gdGl0aWxlci1wZ3N0YWMgcnVudGltZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwaUVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBTbmFwU3RhcnQgdG8gcmVkdWNlIGNvbGQgc3RhcnQgbGF0ZW5jeS5cbiAgICpcbiAgICogU25hcFN0YXJ0IGNyZWF0ZXMgYSBzbmFwc2hvdCBvZiB0aGUgaW5pdGlhbGl6ZWQgTGFtYmRhIGZ1bmN0aW9uLCBhbGxvd2luZyBuZXcgaW5zdGFuY2VzXG4gICAqIHRvIHN0YXJ0IGZyb20gdGhpcyBwcmUtaW5pdGlhbGl6ZWQgc3RhdGUgaW5zdGVhZCBvZiBzdGFydGluZyBmcm9tIHNjcmF0Y2guXG4gICAqXG4gICAqIEJlbmVmaXRzOlxuICAgKiAtIFNpZ25pZmljYW50bHkgcmVkdWNlcyBjb2xkIHN0YXJ0IHRpbWVzICh0eXBpY2FsbHkgMTB4IGZhc3RlcilcbiAgICogLSBJbXByb3ZlcyBBUEkgcmVzcG9uc2UgdGltZSBmb3IgaW5mcmVxdWVudCByZXF1ZXN0c1xuICAgKlxuICAgKiBDb25zaWRlcmF0aW9uczpcbiAgICogLSBBZGRpdGlvbmFsIGNvc3Q6IGNoYXJnZXMgZm9yIHNuYXBzaG90IHN0b3JhZ2UgYW5kIHJlc3RvcmUgb3BlcmF0aW9uc1xuICAgKiAtIFJlcXVpcmVzIExhbWJkYSB2ZXJzaW9uaW5nIChhdXRvbWF0aWNhbGx5IGNvbmZpZ3VyZWQgYnkgdGhpcyBjb25zdHJ1Y3QpXG4gICAqIC0gRGF0YWJhc2UgY29ubmVjdGlvbnMgYXJlIHJlY3JlYXRlZCBvbiByZXN0b3JlIHVzaW5nIHNuYXBzaG90IGxpZmVjeWNsZSBob29rc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3NuYXBzdGFydC5odG1sXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVTbmFwU3RhcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBsYW1iZGEgZnVuY3Rpb24gcHJvcGVydGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZpbmVkIGluIHRoZSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xufVxuXG5leHBvcnQgY2xhc3MgVGlQZ0FwaUxhbWJkYSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBVUkwgZm9yIHRoZSBUaVBnIEFQSS5cbiAgICovXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMYW1iZGEgZnVuY3Rpb24gZm9yIHRoZSBUaVBnIEFQSS5cbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIGxhbWJkYUZ1bmN0aW9uIGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyB0aVBnTGFtYmRhRnVuY3Rpb246IGxhbWJkYS5GdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVGlQZ0FwaUxhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHJ1bnRpbWUgPSBuZXcgVGlQZ0FwaUxhbWJkYVJ1bnRpbWUodGhpcywgXCJydW50aW1lXCIsIHtcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgc3VibmV0U2VsZWN0aW9uOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBkYjogcHJvcHMuZGIsXG4gICAgICBkYlNlY3JldDogcHJvcHMuZGJTZWNyZXQsXG4gICAgICBhcGlFbnY6IHByb3BzLmFwaUVudixcbiAgICAgIGVuYWJsZVNuYXBTdGFydDogcHJvcHMuZW5hYmxlU25hcFN0YXJ0LFxuICAgICAgbGFtYmRhRnVuY3Rpb25PcHRpb25zOiBwcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gICAgfSk7XG4gICAgdGhpcy50aVBnTGFtYmRhRnVuY3Rpb24gPSB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gcnVudGltZS5sYW1iZGFGdW5jdGlvbjtcblxuICAgIGNvbnN0IHsgYXBpIH0gPSBuZXcgTGFtYmRhQXBpR2F0ZXdheSh0aGlzLCBcImFwaVwiLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogcHJvcHMuZW5hYmxlU25hcFN0YXJ0IVxuICAgICAgICA/IHJ1bnRpbWUubGFtYmRhRnVuY3Rpb24uY3VycmVudFZlcnNpb25cbiAgICAgICAgOiBydW50aW1lLmxhbWJkYUZ1bmN0aW9uLFxuICAgICAgZG9tYWluTmFtZTogcHJvcHMuZG9tYWluTmFtZSA/PyBwcm9wcy50aXBnQXBpRG9tYWluTmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMudXJsID0gYXBpLnVybCE7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwidGlwZy1hcGktb3V0cHV0XCIsIHtcbiAgICAgIGV4cG9ydE5hbWU6IGAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX0tdGlwLXVybGAsXG4gICAgICB2YWx1ZTogdGhpcy51cmwsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaVBnQXBpTGFtYmRhUHJvcHMgZXh0ZW5kcyBUaVBnQXBpTGFtYmRhUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIERvbWFpbiBOYW1lIGZvciB0aGUgVGlQZyBBUEkuIElmIGRlZmluZWQsIHdpbGwgY3JlYXRlIHRoZSBkb21haW4gbmFtZSBhbmQgaW50ZWdyYXRlIGl0IHdpdGggdGhlIFRpUGcgQVBJLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZT86IGFwaWdhdGV3YXl2Mi5JRG9tYWluTmFtZTtcblxuICAvKipcbiAgICogQ3VzdG9tIERvbWFpbiBOYW1lIGZvciB0aXBnIEFQSS4gSWYgZGVmaW5lZCwgd2lsbCBjcmVhdGUgdGhlXG4gICAqIGRvbWFpbiBuYW1lIGFuZCBpbnRlZ3JhdGUgaXQgd2l0aCB0aGUgdGlwZyBBUEkuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSAnZG9tYWluTmFtZScgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHRpcGdBcGlEb21haW5OYW1lPzogYXBpZ2F0ZXdheXYyLklEb21haW5OYW1lO1xufVxuIl19
|