@aws-cdk/aws-neptune-alpha 2.156.0-alpha.0 → 2.158.0-alpha.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 +858 -203
- package/.jsii.tabl.json.gz +0 -0
- package/lib/cluster.d.ts +20 -0
- package/lib/cluster.js +25 -5
- package/lib/endpoint.js +1 -1
- package/lib/instance.d.ts +130 -2
- package/lib/instance.js +134 -6
- package/lib/parameter-group.js +3 -3
- package/lib/subnet-group.js +1 -1
- package/package.json +7 -7
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/lib/cluster.d.ts
CHANGED
|
@@ -75,6 +75,14 @@ export declare class EngineVersion {
|
|
|
75
75
|
* Neptune engine version 1.2.1.0
|
|
76
76
|
*/
|
|
77
77
|
static readonly V1_2_1_0: EngineVersion;
|
|
78
|
+
/**
|
|
79
|
+
* Neptune engine version 1.2.1.1
|
|
80
|
+
*/
|
|
81
|
+
static readonly V1_2_1_1: EngineVersion;
|
|
82
|
+
/**
|
|
83
|
+
* Neptune engine version 1.2.1.2
|
|
84
|
+
*/
|
|
85
|
+
static readonly V1_2_1_2: EngineVersion;
|
|
78
86
|
/**
|
|
79
87
|
* Neptune engine version 1.3.0.0
|
|
80
88
|
*/
|
|
@@ -83,6 +91,18 @@ export declare class EngineVersion {
|
|
|
83
91
|
* Neptune engine version 1.3.1.0
|
|
84
92
|
*/
|
|
85
93
|
static readonly V1_3_1_0: EngineVersion;
|
|
94
|
+
/**
|
|
95
|
+
* Neptune engine version 1.3.2.0
|
|
96
|
+
*/
|
|
97
|
+
static readonly V1_3_2_0: EngineVersion;
|
|
98
|
+
/**
|
|
99
|
+
* Neptune engine version 1.3.2.1
|
|
100
|
+
*/
|
|
101
|
+
static readonly V1_3_2_1: EngineVersion;
|
|
102
|
+
/**
|
|
103
|
+
* Neptune engine version 1.3.3.0
|
|
104
|
+
*/
|
|
105
|
+
static readonly V1_3_3_0: EngineVersion;
|
|
86
106
|
/**
|
|
87
107
|
* Constructor for specifying a custom engine version
|
|
88
108
|
* @param version the engine version of Neptune
|
package/lib/cluster.js
CHANGED
|
@@ -28,7 +28,7 @@ class EngineVersion {
|
|
|
28
28
|
}
|
|
29
29
|
exports.EngineVersion = EngineVersion;
|
|
30
30
|
_a = JSII_RTTI_SYMBOL_1;
|
|
31
|
-
EngineVersion[_a] = { fqn: "@aws-cdk/aws-neptune-alpha.EngineVersion", version: "2.
|
|
31
|
+
EngineVersion[_a] = { fqn: "@aws-cdk/aws-neptune-alpha.EngineVersion", version: "2.158.0-alpha.0" };
|
|
32
32
|
/**
|
|
33
33
|
* Neptune engine version 1.0.1.0
|
|
34
34
|
*/
|
|
@@ -89,6 +89,14 @@ EngineVersion.V1_2_0_2 = new EngineVersion('1.2.0.2');
|
|
|
89
89
|
* Neptune engine version 1.2.1.0
|
|
90
90
|
*/
|
|
91
91
|
EngineVersion.V1_2_1_0 = new EngineVersion('1.2.1.0');
|
|
92
|
+
/**
|
|
93
|
+
* Neptune engine version 1.2.1.1
|
|
94
|
+
*/
|
|
95
|
+
EngineVersion.V1_2_1_1 = new EngineVersion('1.2.1.1');
|
|
96
|
+
/**
|
|
97
|
+
* Neptune engine version 1.2.1.2
|
|
98
|
+
*/
|
|
99
|
+
EngineVersion.V1_2_1_2 = new EngineVersion('1.2.1.2');
|
|
92
100
|
/**
|
|
93
101
|
* Neptune engine version 1.3.0.0
|
|
94
102
|
*/
|
|
@@ -97,6 +105,18 @@ EngineVersion.V1_3_0_0 = new EngineVersion('1.3.0.0');
|
|
|
97
105
|
* Neptune engine version 1.3.1.0
|
|
98
106
|
*/
|
|
99
107
|
EngineVersion.V1_3_1_0 = new EngineVersion('1.3.1.0');
|
|
108
|
+
/**
|
|
109
|
+
* Neptune engine version 1.3.2.0
|
|
110
|
+
*/
|
|
111
|
+
EngineVersion.V1_3_2_0 = new EngineVersion('1.3.2.0');
|
|
112
|
+
/**
|
|
113
|
+
* Neptune engine version 1.3.2.1
|
|
114
|
+
*/
|
|
115
|
+
EngineVersion.V1_3_2_1 = new EngineVersion('1.3.2.1');
|
|
116
|
+
/**
|
|
117
|
+
* Neptune engine version 1.3.3.0
|
|
118
|
+
*/
|
|
119
|
+
EngineVersion.V1_3_3_0 = new EngineVersion('1.3.3.0');
|
|
100
120
|
/**
|
|
101
121
|
* Neptune log types that can be exported to CloudWatch logs
|
|
102
122
|
*
|
|
@@ -113,7 +133,7 @@ class LogType {
|
|
|
113
133
|
}
|
|
114
134
|
exports.LogType = LogType;
|
|
115
135
|
_b = JSII_RTTI_SYMBOL_1;
|
|
116
|
-
LogType[_b] = { fqn: "@aws-cdk/aws-neptune-alpha.LogType", version: "2.
|
|
136
|
+
LogType[_b] = { fqn: "@aws-cdk/aws-neptune-alpha.LogType", version: "2.158.0-alpha.0" };
|
|
117
137
|
/**
|
|
118
138
|
* Audit logs
|
|
119
139
|
*
|
|
@@ -190,7 +210,7 @@ class DatabaseClusterBase extends core_1.Resource {
|
|
|
190
210
|
}
|
|
191
211
|
exports.DatabaseClusterBase = DatabaseClusterBase;
|
|
192
212
|
_c = JSII_RTTI_SYMBOL_1;
|
|
193
|
-
DatabaseClusterBase[_c] = { fqn: "@aws-cdk/aws-neptune-alpha.DatabaseClusterBase", version: "2.
|
|
213
|
+
DatabaseClusterBase[_c] = { fqn: "@aws-cdk/aws-neptune-alpha.DatabaseClusterBase", version: "2.158.0-alpha.0" };
|
|
194
214
|
/**
|
|
195
215
|
* Create a clustered database with a given number of instances.
|
|
196
216
|
*
|
|
@@ -340,10 +360,10 @@ class DatabaseCluster extends DatabaseClusterBase {
|
|
|
340
360
|
}
|
|
341
361
|
exports.DatabaseCluster = DatabaseCluster;
|
|
342
362
|
_d = JSII_RTTI_SYMBOL_1;
|
|
343
|
-
DatabaseCluster[_d] = { fqn: "@aws-cdk/aws-neptune-alpha.DatabaseCluster", version: "2.
|
|
363
|
+
DatabaseCluster[_d] = { fqn: "@aws-cdk/aws-neptune-alpha.DatabaseCluster", version: "2.158.0-alpha.0" };
|
|
344
364
|
/**
|
|
345
365
|
* The default number of instances in the Neptune cluster if none are
|
|
346
366
|
* specified
|
|
347
367
|
*/
|
|
348
368
|
DatabaseCluster.DEFAULT_NUM_INSTANCES = 1;
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsdXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseURBQXlEO0FBQ3pELDJDQUEyQztBQUMzQywyQ0FBMkM7QUFFM0MsNkNBQTZDO0FBQzdDLDJDQUFrRztBQUVsRyx5Q0FBc0M7QUFDdEMseUNBQTBDO0FBQzFDLHlEQUFzRTtBQUV0RSxpREFBMkQ7QUFFM0Q7OztHQUdHO0FBQ0gsTUFBYSxhQUFhO0lBc0V4Qjs7O09BR0c7SUFDSCxZQUFtQyxPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtLQUFLOztBQTFFekQsc0NBMkVDOzs7QUExRUM7O0dBRUc7QUFDb0Isc0JBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMvRDs7R0FFRztBQUNvQixzQkFBUSxHQUFHLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9EOztHQUVHO0FBQ29CLHNCQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0Q7O0dBRUc7QUFDb0Isc0JBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMvRDs7R0FFRztBQUNvQixzQkFBUSxHQUFHLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9EOztHQUVHO0FBQ29CLHNCQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0Q7O0dBRUc7QUFDb0Isc0JBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMvRDs7R0FFRztBQUNvQixzQkFBUSxHQUFHLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9EOztHQUVHO0FBQ29CLHNCQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0Q7O0dBRUc7QUFDb0Isc0JBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxT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LEVBQUUsQ0FBQyxDQUFDO1FBQ2xILENBQUM7S0FDRjs7QUFqTUgsMENBa01DOzs7QUFoTUM7OztHQUdHO0FBQ29CLHFDQUFxQixHQUFHLENBQUMsQUFBSixDQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IEF3cywgRHVyYXRpb24sIElSZXNvdXJjZSwgTGF6eSwgUmVtb3ZhbFBvbGljeSwgUmVzb3VyY2UsIFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEVuZHBvaW50IH0gZnJvbSAnLi9lbmRwb2ludCc7XG5pbXBvcnQgeyBJbnN0YW5jZVR5cGUgfSBmcm9tICcuL2luc3RhbmNlJztcbmltcG9ydCB7IENmbkRCQ2x1c3RlciwgQ2ZuREJJbnN0YW5jZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1uZXB0dW5lJztcbmltcG9ydCB7IElDbHVzdGVyUGFyYW1ldGVyR3JvdXAsIElQYXJhbWV0ZXJHcm91cCB9IGZyb20gJy4vcGFyYW1ldGVyLWdyb3VwJztcbmltcG9ydCB7IElTdWJuZXRHcm91cCwgU3VibmV0R3JvdXAgfSBmcm9tICcuL3N1Ym5ldC1ncm91cCc7XG5cbi8qKlxuICogUG9zc2libGUgSW5zdGFuY2VzIFR5cGVzIHRvIHVzZSBpbiBOZXB0dW5lIGNsdXN0ZXJcbiAqIHVzZWQgZm9yIGRlZmluaW5nIGBEYXRhYmFzZUNsdXN0ZXJQcm9wcy5lbmdpbmVWZXJzaW9uYC5cbiAqL1xuZXhwb3J0IGNsYXNzIEVuZ2luZVZlcnNpb24ge1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjAuMS4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzBfMV8wID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMC4xLjAnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4wLjEuMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8wXzFfMSA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjAuMS4xJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMC4xLjJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMF8xXzIgPSBuZXcgRW5naW5lVmVyc2lvbignMS4wLjEuMicpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjAuMi4xXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzBfMl8xID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMC4yLjEnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4wLjIuMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8wXzJfMiA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjAuMi4yJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMC4zLjBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMF8zXzAgPSBuZXcgRW5naW5lVmVyc2lvbignMS4wLjMuMCcpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjAuNC4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzBfNF8wID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMC40LjAnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4wLjQuMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8wXzRfMSA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjAuNC4xJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMC41LjBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMF81XzAgPSBuZXcgRW5naW5lVmVyc2lvbignMS4wLjUuMCcpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjEuMC4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzFfMF8wID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMS4wLjAnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4xLjEuMFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8xXzFfMCA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjEuMS4wJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMi4wLjBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMl8wXzAgPSBuZXcgRW5naW5lVmVyc2lvbignMS4yLjAuMCcpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjIuMC4xXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzJfMF8xID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMi4wLjEnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4yLjAuMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8yXzBfMiA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjIuMC4yJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMi4xLjBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMl8xXzAgPSBuZXcgRW5naW5lVmVyc2lvbignMS4yLjEuMCcpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjMuMC4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzNfMF8wID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMy4wLjAnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4zLjEuMFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8zXzFfMCA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjMuMS4wJyk7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZvciBzcGVjaWZ5aW5nIGEgY3VzdG9tIGVuZ2luZSB2ZXJzaW9uXG4gICAqIEBwYXJhbSB2ZXJzaW9uIHRoZSBlbmdpbmUgdmVyc2lvbiBvZiBOZXB0dW5lXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZykgeyB9XG59XG5cbi8qKlxuICogTmVwdHVuZSBsb2cgdHlwZXMgdGhhdCBjYW4gYmUgZXhwb3J0ZWQgdG8gQ2xvdWRXYXRjaCBsb2dzXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbmVwdHVuZS9sYXRlc3QvdXNlcmd1aWRlL2Nsb3Vkd2F0Y2gtbG9ncy5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dUeXBlIHtcbiAgLyoqXG4gICAqIEF1ZGl0IGxvZ3NcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbmVwdHVuZS9sYXRlc3QvdXNlcmd1aWRlL2F1ZGl0aW5nLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVESVQgPSBuZXcgTG9nVHlwZSgnYXVkaXQnKTtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3IgZm9yIHNwZWNpZnlpbmcgYSBjdXN0b20gbG9nIHR5cGVcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBsb2cgdHlwZVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nKSB7IH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogTWluaW11bSBOQ1UgY2FwYWNpdHkgKG1pbiB2YWx1ZSAxKVxuICAgKi9cbiAgcmVhZG9ubHkgbWluQ2FwYWNpdHk6IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBOQ1UgY2FwYWNpdHkgKG1pbiB2YWx1ZSAyLjUgLSBtYXggdmFsdWUgMTI4KVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q2FwYWNpdHk6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBkYXRhYmFzZSBjbHVzdGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VDbHVzdGVyUHJvcHMge1xuICAvKipcbiAgICogV2hhdCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSB0byBzdGFydFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBkZWZhdWx0IGVuZ2luZSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5naW5lVmVyc2lvbj86IEVuZ2luZVZlcnNpb247XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IGRheXMgdG8gcmV0YWluIHRoZSBiYWNrdXBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBjZGsuRHVyYXRpb24uZGF5cygxKVxuICAgKi9cbiAgcmVhZG9ubHkgYmFja3VwUmV0ZW50aW9uPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEEgZGFpbHkgdGltZSByYW5nZSBpbiAyNC1ob3VycyBVVEMgZm9ybWF0IGluIHdoaWNoIGJhY2t1cHMgcHJlZmVyYWJseSBleGVjdXRlLlxuICAgKlxuICAgKiBNdXN0IGJlIGF0IGxlYXN0IDMwIG1pbnV0ZXMgbG9uZy5cbiAgICpcbiAgICogRXhhbXBsZTogJzAxOjAwLTAyOjAwJ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgMzAtbWludXRlIHdpbmRvdyBzZWxlY3RlZCBhdCByYW5kb20gZnJvbSBhbiA4LWhvdXIgYmxvY2sgb2ZcbiAgICogdGltZSBmb3IgZWFjaCBBV1MgUmVnaW9uLiBUbyBzZWUgdGhlIHRpbWUgYmxvY2tzIGF2YWlsYWJsZSwgc2VlXG4gICAqL1xuICByZWFkb25seSBwcmVmZXJyZWRCYWNrdXBXaW5kb3c/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IGZvciBzdG9yYWdlIGVuY3J5cHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBtYXN0ZXIga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIHN0b3JhZ2UgZW5jcnlwdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlRW5jcnlwdGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIE5lcHR1bmUgY29tcHV0ZSBpbnN0YW5jZXNcbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBpZGVudGlmaWVyIGZvciB0aGUgY2x1c3RlclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgbmFtZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRiQ2x1c3Rlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hcCBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIGFjY291bnRzIHRvIGRhdGFiYXNlIGFjY291bnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgaWFtQXV0aGVudGljYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBCYXNlIGlkZW50aWZpZXIgZm9yIGluc3RhbmNlc1xuICAgKlxuICAgKiBFdmVyeSByZXBsaWNhIGlzIG5hbWVkIGJ5IGFwcGVuZGluZyB0aGUgcmVwbGljYSBudW1iZXIgdG8gdGhpcyBzdHJpbmcsIDEtYmFzZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYGRiQ2x1c3Rlck5hbWVgIGlzIHVzZWQgd2l0aCB0aGUgd29yZCBcIkluc3RhbmNlXCIgYXBwZW5kZWQuIElmIGBkYkNsdXN0ZXJOYW1lYCBpcyBub3QgcHJvdmlkZWQsIHRoZVxuICAgKiBpZGVudGlmaWVyIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VJZGVudGlmaWVyQmFzZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hhdCB0eXBlIG9mIGluc3RhbmNlIHRvIHN0YXJ0IGZvciB0aGUgcmVwbGljYXNcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlVHlwZTogSW5zdGFuY2VUeXBlO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgQVdTIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSByb2xlIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGNsdXN0ZXIgdG8gYWNjZXNzIG90aGVyIEFXUyBzZXJ2aWNlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGF0dGFjaGVkIHRvIHRoZSBjbHVzdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzb2NpYXRlZFJvbGVzPzogaWFtLklSb2xlW107XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBEQiBjbHVzdGVyIHNob3VsZCBoYXZlIGRlbGV0aW9uIHByb3RlY3Rpb24gZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlIGlmIGBgcmVtb3ZhbFBvbGljeWBgIGlzIFJFVEFJTiwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHdlZWtseSB0aW1lIHJhbmdlIGluIHdoaWNoIG1haW50ZW5hbmNlIHNob3VsZCBwcmVmZXJhYmx5IGV4ZWN1dGUuXG4gICAqXG4gICAqIE11c3QgYmUgYXQgbGVhc3QgMzAgbWludXRlcyBsb25nLlxuICAgKlxuICAgKiBFeGFtcGxlOiAndHVlOjA0OjE3LXR1ZTowNDo0NydcbiAgICpcbiAgICogQGRlZmF1bHQgLSAzMC1taW51dGUgd2luZG93IHNlbGVjdGVkIGF0IHJhbmRvbSBmcm9tIGFuIDgtaG91ciBibG9jayBvZiB0aW1lIGZvclxuICAgKiBlYWNoIEFXUyBSZWdpb24sIG9jY3VycmluZyBvbiBhIHJhbmRvbSBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICByZWFkb25seSBwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdz86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIGRhdGFiYXNlIGVuZ2luZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHBhcmFtZXRlciBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IGNsdXN0ZXJQYXJhbWV0ZXJHcm91cD86IElDbHVzdGVyUGFyYW1ldGVyR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBwYXJhbWV0ZXIgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlckdyb3VwPzogSVBhcmFtZXRlckdyb3VwO1xuXG4gIC8qKlxuICAgKiBFeGlzdGluZyBzdWJuZXQgZ3JvdXAgZm9yIHRoZSBjbHVzdGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IHN1Ym5ldCBncm91cCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRHcm91cD86IElTdWJuZXRHcm91cDtcblxuICAvKipcbiAgICogV2hhdCBzdWJuZXRzIHRvIHJ1biB0aGUgTmVwdHVuZSBpbnN0YW5jZXMgaW4uXG4gICAqXG4gICAqIE11c3QgYmUgYXQgbGVhc3QgMiBzdWJuZXRzIGluIHR3byBkaWZmZXJlbnQgQVpzLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcblxuICAvKipcbiAgICogV2hlcmUgdG8gcGxhY2UgdGhlIGluc3RhbmNlcyB3aXRoaW4gdGhlIFZQQ1xuICAgKlxuICAgKiBAZGVmYXVsdCBwcml2YXRlIHN1Ym5ldHNcbiAgICovXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cC5cbiAgICpcbiAgICogQGRlZmF1bHQgYSBuZXcgc2VjdXJpdHkgZ3JvdXAgaXMgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogZWMyLklTZWN1cml0eUdyb3VwW107XG5cbiAgLyoqXG4gICAqIFRoZSByZW1vdmFsIHBvbGljeSB0byBhcHBseSB3aGVuIHRoZSBjbHVzdGVyIGFuZCBpdHMgaW5zdGFuY2VzIGFyZSByZW1vdmVkXG4gICAqIG9yIHJlcGxhY2VkIGR1cmluZyBhIHN0YWNrIHVwZGF0ZSwgb3Igd2hlbiB0aGUgc3RhY2sgaXMgZGVsZXRlZC4gVGhpc1xuICAgKiByZW1vdmFsIHBvbGljeSBhbHNvIGFwcGxpZXMgdG8gdGhlIGltcGxpY2l0IHNlY3VyaXR5IGdyb3VwIGNyZWF0ZWQgZm9yIHRoZVxuICAgKiBjbHVzdGVyIGlmIG9uZSBpcyBub3Qgc3VwcGxpZWQgYXMgYSBwYXJhbWV0ZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmV0YWluIGNsdXN0ZXIuXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogSWYgc2V0IHRvIHRydWUsIE5lcHR1bmUgd2lsbCBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB0aGUgZW5naW5lIG9mIHRoZSBlbnRpcmVcbiAgICogY2x1c3RlciB0byB0aGUgbGF0ZXN0IG1pbm9yIHZlcnNpb24gYWZ0ZXIgYSBzdGFiaWxpemF0aW9uIHdpbmRvdyBvZiAyIHRvIDMgd2Vla3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9NaW5vclZlcnNpb25VcGdyYWRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgbG9nIHR5cGVzIHRoYXQgbmVlZCB0byBiZSBlbmFibGVkIGZvciBleHBvcnRpbmcgdG9cbiAgICogQ2xvdWRXYXRjaCBMb2dzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9uZXB0dW5lL2xhdGVzdC91c2VyZ3VpZGUvY2xvdWR3YXRjaC1sb2dzLmh0bWxcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbmVwdHVuZS9sYXRlc3QvdXNlcmd1aWRlL2F1ZGl0aW5nLmh0bWwjYXVkaXRpbmctZW5hYmxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbG9nIGV4cG9ydHNcbiAgICovXG4gIHJlYWRvbmx5IGNsb3Vkd2F0Y2hMb2dzRXhwb3J0cz86IExvZ1R5cGVbXTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXlzIGxvZyBldmVudHMgYXJlIGtlcHQgaW4gQ2xvdWRXYXRjaCBMb2dzLiBXaGVuIHVwZGF0aW5nXG4gICAqIHRoaXMgcHJvcGVydHksIHVuc2V0dGluZyBpdCBkb2Vzbid0IHJlbW92ZSB0aGUgbG9nIHJldGVudGlvbiBwb2xpY3kuIFRvXG4gICAqIHJlbW92ZSB0aGUgcmV0ZW50aW9uIHBvbGljeSwgc2V0IHRoZSB2YWx1ZSB0byBgSW5maW5pdHlgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGxvZ3MgbmV2ZXIgZXhwaXJlXG4gICAqL1xuICByZWFkb25seSBjbG91ZHdhdGNoTG9nc1JldGVudGlvbj86IGxvZ3MuUmV0ZW50aW9uRGF5cztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIGZvciB0aGUgTGFtYmRhIGZ1bmN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VzdG9tIHJlc291cmNlXG4gICAqIHRoYXQgc2V0cyB0aGUgcmV0ZW50aW9uIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5ldyByb2xlIGlzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBjbG91ZHdhdGNoTG9nc1JldGVudGlvblJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgbWluaW11bSBhbmQgbWF4aW11bSBOQ1VzIGNhcGFjaXR5IGZvciBhIHNlcnZlcmxlc3MgY2x1c3Rlci5cbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9uZXB0dW5lL2xhdGVzdC91c2VyZ3VpZGUvbmVwdHVuZS1zZXJ2ZXJsZXNzLWNhcGFjaXR5LXNjYWxpbmcuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHJlcXVpcmVkIGlmIGluc3RhbmNlVHlwZSBpcyBkYi5zZXJ2ZXJsZXNzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb24/OiBTZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY29weSB0YWdzIHRvIHRoZSBzbmFwc2hvdCB3aGVuIGEgc25hcHNob3QgaXMgY3JlYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29weVRhZ3NUb1NuYXBzaG90PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHBvcnQgbnVtYmVyIG9uIHdoaWNoIHRoZSBEQiBpbnN0YW5jZXMgaW4gdGhlIERCIGNsdXN0ZXIgYWNjZXB0IGNvbm5lY3Rpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCA4MTgyXG4gICAqL1xuICByZWFkb25seSBwb3J0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGNsdXN0ZXJlZCBkYXRhYmFzZSB3aXRoIGEgZ2l2ZW4gbnVtYmVyIG9mIGluc3RhbmNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGF0YWJhc2VDbHVzdGVyIGV4dGVuZHMgSVJlc291cmNlLCBlYzIuSUNvbm5lY3RhYmxlIHtcbiAgLyoqXG4gICAqIElkZW50aWZpZXIgb2YgdGhlIGNsdXN0ZXJcbiAgICovXG4gIHJlYWRvbmx5IGNsdXN0ZXJJZGVudGlmaWVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIGlkZW50aWZpZXIgb2YgdGhlIGNsdXN0ZXJcbiAgICogQGF0dHJpYnV0ZSBDbHVzdGVyUmVzb3VyY2VJZFxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3RlclJlc291cmNlSWRlbnRpZmllcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW5kcG9pbnQgdG8gdXNlIGZvciByZWFkL3dyaXRlIG9wZXJhdGlvbnNcbiAgICogQGF0dHJpYnV0ZSBFbmRwb2ludCxQb3J0XG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyRW5kcG9pbnQ6IEVuZHBvaW50O1xuXG4gIC8qKlxuICAgKiBFbmRwb2ludCB0byB1c2UgZm9yIGxvYWQtYmFsYW5jZWQgcmVhZC1vbmx5IG9wZXJhdGlvbnMuXG4gICAqIEBhdHRyaWJ1dGUgUmVhZEVuZHBvaW50XG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyUmVhZEVuZHBvaW50OiBFbmRwb2ludDtcblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IHRoZSBzcGVjaWZpZWQgYWN0aW9uc1xuICAgKiBAcGFyYW0gZ3JhbnRlZSB0aGUgaWRlbnRpdHkgdG8gYmUgZ3JhbnRlZCB0aGUgYWN0aW9uc1xuICAgKiBAcGFyYW0gYWN0aW9ucyB0aGUgZGF0YS1hY2Nlc3MgYWN0aW9uc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9uZXB0dW5lL2xhdGVzdC91c2VyZ3VpZGUvaWFtLWRwLWFjdGlvbnMuaHRtbFxuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgY29ubmVjdGlvbiBhY2Nlc3MgdG8gdGhlIGRhdGFiYXNlLlxuICAgKi9cbiAgZ3JhbnRDb25uZWN0KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBhc3NvY2lhdGVkIHdpdGggdGhpcyBEYXRhYmFzZUNsdXN0ZXIgaW5zdGFuY2VcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbmVwdHVuZS9sYXRlc3QvdXNlcmd1aWRlL2N3LW1ldHJpY3MuaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9uZXB0dW5lL2xhdGVzdC91c2VyZ3VpZGUvY3ctZGltZW5zaW9ucy5odG1sXG4gICAqL1xuICBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhhdCBkZXNjcmliZSBhbiBleGlzdGluZyBjbHVzdGVyIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VDbHVzdGVyQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgZGF0YWJhc2UgcG9ydFxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAgb2YgdGhlIGRhdGFiYXNlIGNsdXN0ZXJcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IGVjMi5JU2VjdXJpdHlHcm91cDtcblxuICAvKipcbiAgICogSWRlbnRpZmllciBmb3IgdGhlIGNsdXN0ZXJcbiAgICovXG4gIHJlYWRvbmx5IGNsdXN0ZXJJZGVudGlmaWVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIElkZW50aWZpZXIgZm9yIHRoZSBjbHVzdGVyXG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyUmVzb3VyY2VJZGVudGlmaWVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENsdXN0ZXIgZW5kcG9pbnQgYWRkcmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3RlckVuZHBvaW50QWRkcmVzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZWFkZXIgZW5kcG9pbnQgYWRkcmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgcmVhZGVyRW5kcG9pbnRBZGRyZXNzOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBuZXcgb3IgaW1wb3J0ZWQgZGF0YWJhc2UgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFiYXNlQ2x1c3RlckJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhYmFzZUNsdXN0ZXIge1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgRGF0YWJhc2VDbHVzdGVyIGZyb20gcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRGF0YWJhc2VDbHVzdGVyQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogRGF0YWJhc2VDbHVzdGVyQXR0cmlidXRlcyk6IElEYXRhYmFzZUNsdXN0ZXIge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIERhdGFiYXNlQ2x1c3RlckJhc2UgaW1wbGVtZW50cyBJRGF0YWJhc2VDbHVzdGVyIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBkZWZhdWx0UG9ydCA9IGVjMi5Qb3J0LnRjcChhdHRycy5wb3J0KTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9ucyA9IG5ldyBlYzIuQ29ubmVjdGlvbnMoe1xuICAgICAgICBzZWN1cml0eUdyb3VwczogW2F0dHJzLnNlY3VyaXR5R3JvdXBdLFxuICAgICAgICBkZWZhdWx0UG9ydDogdGhpcy5kZWZhdWx0UG9ydCxcbiAgICAgIH0pO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJJZGVudGlmaWVyID0gYXR0cnMuY2x1c3RlcklkZW50aWZpZXI7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlclJlc291cmNlSWRlbnRpZmllciA9IGF0dHJzLmNsdXN0ZXJSZXNvdXJjZUlkZW50aWZpZXI7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlckVuZHBvaW50ID0gbmV3IEVuZHBvaW50KGF0dHJzLmNsdXN0ZXJFbmRwb2ludEFkZHJlc3MsIGF0dHJzLnBvcnQpO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJSZWFkRW5kcG9pbnQgPSBuZXcgRW5kcG9pbnQoYXR0cnMucmVhZGVyRW5kcG9pbnRBZGRyZXNzLCBhdHRycy5wb3J0KTtcbiAgICAgIHByb3RlY3RlZCBlbmFibGVJYW1BdXRoZW50aWNhdGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIG9mIHRoZSBjbHVzdGVyXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY2x1c3RlcklkZW50aWZpZXI6IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2UgaWRlbnRpZmllciBvZiB0aGUgY2x1c3RlclxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNsdXN0ZXJSZXNvdXJjZUlkZW50aWZpZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVuZHBvaW50IHRvIHVzZSBmb3IgcmVhZC93cml0ZSBvcGVyYXRpb25zXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY2x1c3RlckVuZHBvaW50OiBFbmRwb2ludDtcblxuICAvKipcbiAgICogRW5kcG9pbnQgdG8gdXNlIGZvciBsb2FkLWJhbGFuY2VkIHJlYWQtb25seSBvcGVyYXRpb25zLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNsdXN0ZXJSZWFkRW5kcG9pbnQ6IEVuZHBvaW50O1xuXG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbnMgb2JqZWN0IHRvIGltcGxlbWVudCBJQ29ubmVjdGFibGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjb25uZWN0aW9uczogZWMyLkNvbm5lY3Rpb25zO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBlbmFibGVJYW1BdXRoZW50aWNhdGlvbj86IGJvb2xlYW47XG5cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgaWYgKHRoaXMuZW5hYmxlSWFtQXV0aGVudGljYXRpb24gPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBncmFudCBwZXJtaXNzaW9ucyB3aGVuIElBTSBhdXRoZW50aWNhdGlvbiBpcyBkaXNhYmxlZCcpO1xuICAgIH1cblxuICAgIHRoaXMuZW5hYmxlSWFtQXV0aGVudGljYXRpb24gPSB0cnVlO1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IFtcbiAgICAgICAgW1xuICAgICAgICAgICdhcm4nLFxuICAgICAgICAgIEF3cy5QQVJUSVRJT04sXG4gICAgICAgICAgJ25lcHR1bmUtZGInLFxuICAgICAgICAgIEF3cy5SRUdJT04sXG4gICAgICAgICAgQXdzLkFDQ09VTlRfSUQsXG4gICAgICAgICAgYCR7dGhpcy5jbHVzdGVyUmVzb3VyY2VJZGVudGlmaWVyfS8qYCxcbiAgICAgICAgXS5qb2luKCc6JyksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdyYW50Q29ubmVjdChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgJ25lcHR1bmUtZGI6KicpO1xuICB9XG5cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL05lcHR1bmUnLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBEQkNsdXN0ZXJJZGVudGlmaWVyOiB0aGlzLmNsdXN0ZXJJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIGNsdXN0ZXJlZCBkYXRhYmFzZSB3aXRoIGEgZ2l2ZW4gbnVtYmVyIG9mIGluc3RhbmNlcy5cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpOZXB0dW5lOjpEQkNsdXN0ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFiYXNlQ2x1c3RlciBleHRlbmRzIERhdGFiYXNlQ2x1c3RlckJhc2UgaW1wbGVtZW50cyBJRGF0YWJhc2VDbHVzdGVyIHtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgbnVtYmVyIG9mIGluc3RhbmNlcyBpbiB0aGUgTmVwdHVuZSBjbHVzdGVyIGlmIG5vbmUgYXJlXG4gICAqIHNwZWNpZmllZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX05VTV9JTlNUQU5DRVMgPSAxO1xuXG4gIHB1YmxpYyByZWFkb25seSBjbHVzdGVySWRlbnRpZmllcjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlckVuZHBvaW50OiBFbmRwb2ludDtcbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJSZWFkRW5kcG9pbnQ6IEVuZHBvaW50O1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucztcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIGlkIGZvciB0aGUgY2x1c3RlcjsgZm9yIGV4YW1wbGU6IGNsdXN0ZXItQUJDRDEyMzRFRkdINTY3OElKS0w5ME1OT1AuIFRoZSBjbHVzdGVyIElEIHVuaXF1ZWx5XG4gICAqIGlkZW50aWZpZXMgdGhlIGNsdXN0ZXIgYW5kIGlzIHVzZWQgaW4gdGhpbmdzIGxpa2UgSUFNIGF1dGhlbnRpY2F0aW9uIHBvbGljaWVzLlxuICAgKiBAYXR0cmlidXRlIENsdXN0ZXJSZXNvdXJjZUlkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlclJlc291cmNlSWRlbnRpZmllcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIHdoZXJlIHRoZSBEQiBzdWJuZXQgZ3JvdXAgaXMgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBUaGUgc3VibmV0cyB1c2VkIGJ5IHRoZSBEQiBzdWJuZXQgZ3JvdXAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjU3VibmV0czogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogU3VibmV0IGdyb3VwIHVzZWQgYnkgdGhlIERCXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3VibmV0R3JvdXA6IElTdWJuZXRHcm91cDtcblxuICAvKipcbiAgICogSWRlbnRpZmllcnMgb2YgdGhlIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VJZGVudGlmaWVyczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogRW5kcG9pbnRzIHdoaWNoIGFkZHJlc3MgZWFjaCBpbmRpdmlkdWFsIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlRW5kcG9pbnRzOiBFbmRwb2ludFtdID0gW107XG5cbiAgcHJvdGVjdGVkIGVuYWJsZUlhbUF1dGhlbnRpY2F0aW9uPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWJhc2VDbHVzdGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy52cGMgPSBwcm9wcy52cGM7XG4gICAgdGhpcy52cGNTdWJuZXRzID0gcHJvcHMudnBjU3VibmV0cyA/PyB7IHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MgfTtcblxuICAgIC8vIERldGVybWluZSB0aGUgc3VibmV0KHMpIHRvIGRlcGxveSB0aGUgTmVwdHVuZSBjbHVzdGVyIHRvXG4gICAgY29uc3QgeyBzdWJuZXRJZHMsIGludGVybmV0Q29ubmVjdGl2aXR5RXN0YWJsaXNoZWQgfSA9IHRoaXMudnBjLnNlbGVjdFN1Ym5ldHModGhpcy52cGNTdWJuZXRzKTtcblxuICAgIC8vIENhbm5vdCB0ZXN0IHdoZXRoZXIgdGhlIHN1Ym5ldHMgYXJlIGluIGRpZmZlcmVudCBBWnMsIGJ1dCBhdCBsZWFzdCB3ZSBjYW4gdGVzdCB0aGUgYW1vdW50LlxuICAgIGlmIChzdWJuZXRJZHMubGVuZ3RoIDwgMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDbHVzdGVyIHJlcXVpcmVzIGF0IGxlYXN0IDIgc3VibmV0cywgZ290ICR7c3VibmV0SWRzLmxlbmd0aH1gKTtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym5ldEdyb3VwID0gcHJvcHMuc3VibmV0R3JvdXAgPz8gbmV3IFN1Ym5ldEdyb3VwKHRoaXMsICdTdWJuZXRzJywge1xuICAgICAgZGVzY3JpcHRpb246IGBTdWJuZXRzIGZvciAke2lkfSBkYXRhYmFzZWAsXG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgdnBjU3VibmV0czogdGhpcy52cGNTdWJuZXRzLFxuICAgICAgcmVtb3ZhbFBvbGljeTogcHJvcHMucmVtb3ZhbFBvbGljeSA9PT0gUmVtb3ZhbFBvbGljeS5SRVRBSU4gPyBwcm9wcy5yZW1vdmFsUG9saWN5IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2VjdXJpdHlHcm91cHMgPSBwcm9wcy5zZWN1cml0eUdyb3VwcyA/PyBbXG4gICAgICBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgJ1NlY3VyaXR5R3JvdXAnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTmVwdHVuZSBzZWN1cml0eSBncm91cCcsXG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgLy8gRGVmYXVsdCB0byBlbmNyeXB0ZWQgc3RvcmFnZVxuICAgIGNvbnN0IHN0b3JhZ2VFbmNyeXB0ZWQgPSBwcm9wcy5zdG9yYWdlRW5jcnlwdGVkID8/IHRydWU7XG5cbiAgICBpZiAocHJvcHMua21zS2V5ICYmICFzdG9yYWdlRW5jcnlwdGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0tNUyBrZXkgc3VwcGxpZWQgYnV0IHN0b3JhZ2VFbmNyeXB0ZWQgaXMgZmFsc2UnKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxldGlvblByb3RlY3Rpb24gPSBwcm9wcy5kZWxldGlvblByb3RlY3Rpb24gPz8gKHByb3BzLnJlbW92YWxQb2xpY3kgPT09IFJlbW92YWxQb2xpY3kuUkVUQUlOID8gdHJ1ZSA6IHVuZGVmaW5lZCk7XG5cbiAgICB0aGlzLmVuYWJsZUlhbUF1dGhlbnRpY2F0aW9uID0gcHJvcHMuaWFtQXV0aGVudGljYXRpb247XG5cbiAgICBpZiAocHJvcHMuaW5zdGFuY2VUeXBlID09PSBJbnN0YW5jZVR5cGUuU0VSVkVSTEVTUyAmJiAhcHJvcHMuc2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBuZWVkIHRvIHNwZWNpZnkgYSBzZXJ2ZXJsZXNzIHNjYWxpbmcgY29uZmlndXJhdGlvbiB3aXRoIGEgZGIuc2VydmVybGVzcyBpbnN0YW5jZSB0eXBlLicpO1xuICAgIH1cblxuICAgIHRoaXMudmFsaWRhdGVTZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb24ocHJvcHMuc2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgTmVwdHVuZSBjbHVzdGVyXG4gICAgY29uc3QgY2x1c3RlciA9IG5ldyBDZm5EQkNsdXN0ZXIodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgLy8gQmFzaWNcbiAgICAgIGVuZ2luZVZlcnNpb246IHByb3BzLmVuZ2luZVZlcnNpb24/LnZlcnNpb24sXG4gICAgICBkYkNsdXN0ZXJJZGVudGlmaWVyOiBwcm9wcy5kYkNsdXN0ZXJOYW1lLFxuICAgICAgZGJTdWJuZXRHcm91cE5hbWU6IHRoaXMuc3VibmV0R3JvdXAuc3VibmV0R3JvdXBOYW1lLFxuICAgICAgdnBjU2VjdXJpdHlHcm91cElkczogc2VjdXJpdHlHcm91cHMubWFwKHNnID0+IHNnLnNlY3VyaXR5R3JvdXBJZCksXG4gICAgICBkYkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWU6IHByb3BzLmNsdXN0ZXJQYXJhbWV0ZXJHcm91cD8uY2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZSxcbiAgICAgIGRlbGV0aW9uUHJvdGVjdGlvbjogZGVsZXRpb25Qcm90ZWN0aW9uLFxuICAgICAgYXNzb2NpYXRlZFJvbGVzOiBwcm9wcy5hc3NvY2lhdGVkUm9sZXMgPyBwcm9wcy5hc3NvY2lhdGVkUm9sZXMubWFwKHJvbGUgPT4gKHsgcm9sZUFybjogcm9sZS5yb2xlQXJuIH0pKSA6IHVuZGVmaW5lZCxcbiAgICAgIGlhbUF1dGhFbmFibGVkOiBMYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMuZW5hYmxlSWFtQXV0aGVudGljYXRpb24gfSksXG4gICAgICBkYlBvcnQ6IHByb3BzLnBvcnQsXG4gICAgICAvLyBCYWNrdXBcbiAgICAgIGJhY2t1cFJldGVudGlvblBlcmlvZDogcHJvcHMuYmFja3VwUmV0ZW50aW9uPy50b0RheXMoKSxcbiAgICAgIHByZWZlcnJlZEJhY2t1cFdpbmRvdzogcHJvcHMucHJlZmVycmVkQmFja3VwV2luZG93LFxuICAgICAgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c6IHByb3BzLnByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93LFxuICAgICAgLy8gRW5jcnlwdGlvblxuICAgICAga21zS2V5SWQ6IHByb3BzLmttc0tleT8ua2V5QXJuLFxuICAgICAgLy8gQ2xvdWRXYXRjaCBMb2dzIGV4cG9ydHNcbiAgICAgIGVuYWJsZUNsb3Vkd2F0Y2hMb2dzRXhwb3J0czogcHJvcHMuY2xvdWR3YXRjaExvZ3NFeHBvcnRzPy5tYXAobG9nVHlwZSA9PiBsb2dUeXBlLnZhbHVlKSxcbiAgICAgIHN0b3JhZ2VFbmNyeXB0ZWQsXG4gICAgICBzZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb246IHByb3BzLnNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbixcbiAgICAgIC8vIFRhZ3NcbiAgICAgIGNvcHlUYWdzVG9TbmFwc2hvdDogcHJvcHMuY29weVRhZ3NUb1NuYXBzaG90LFxuICAgIH0pO1xuXG4gICAgY2x1c3Rlci5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSwge1xuICAgICAgYXBwbHlUb1VwZGF0ZVJlcGxhY2VQb2xpY3k6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNsdXN0ZXJJZGVudGlmaWVyID0gY2x1c3Rlci5yZWY7XG4gICAgdGhpcy5jbHVzdGVyUmVzb3VyY2VJZGVudGlmaWVyID0gY2x1c3Rlci5hdHRyQ2x1c3RlclJlc291cmNlSWQ7XG5cbiAgICBjb25zdCBwb3J0ID0gVG9rZW4uYXNOdW1iZXIoY2x1c3Rlci5hdHRyUG9ydCk7XG4gICAgdGhpcy5jbHVzdGVyRW5kcG9pbnQgPSBuZXcgRW5kcG9pbnQoY2x1c3Rlci5hdHRyRW5kcG9pbnQsIHBvcnQpO1xuICAgIHRoaXMuY2x1c3RlclJlYWRFbmRwb2ludCA9IG5ldyBFbmRwb2ludChjbHVzdGVyLmF0dHJSZWFkRW5kcG9pbnQsIHBvcnQpO1xuXG4gICAgLy8gTG9nIHJldGVudGlvblxuICAgIGNvbnN0IHJldGVudGlvbiA9IHByb3BzLmNsb3Vkd2F0Y2hMb2dzUmV0ZW50aW9uO1xuICAgIGlmIChyZXRlbnRpb24pIHtcbiAgICAgIHByb3BzLmNsb3Vkd2F0Y2hMb2dzRXhwb3J0cz8uZm9yRWFjaChsb2dUeXBlID0+IHtcbiAgICAgICAgbmV3IGxvZ3MuTG9nUmV0ZW50aW9uKHRoaXMsIGAke2xvZ1R5cGUudmFsdWV9TG9nUmV0ZW50aW9uYCwge1xuICAgICAgICAgIGxvZ0dyb3VwTmFtZTogYC9hd3MvbmVwdHVuZS8ke3RoaXMuY2x1c3RlcklkZW50aWZpZXJ9LyR7bG9nVHlwZS52YWx1ZX1gLFxuICAgICAgICAgIHJvbGU6IHByb3BzLmNsb3Vkd2F0Y2hMb2dzUmV0ZW50aW9uUm9sZSxcbiAgICAgICAgICByZXRlbnRpb24sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBpbnN0YW5jZXNcbiAgICBjb25zdCBpbnN0YW5jZUNvdW50ID0gcHJvcHMuaW5zdGFuY2VzID8/IERhdGFiYXNlQ2x1c3Rlci5ERUZBVUxUX05VTV9JTlNUQU5DRVM7XG4gICAgaWYgKGluc3RhbmNlQ291bnQgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBpbnN0YW5jZSBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5zdGFuY2VDb3VudDsgaSsrKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZUluZGV4ID0gaSArIDE7XG5cbiAgICAgIGNvbnN0IGluc3RhbmNlSWRlbnRpZmllciA9IHByb3BzLmluc3RhbmNlSWRlbnRpZmllckJhc2UgIT0gbnVsbCA/IGAke3Byb3BzLmluc3RhbmNlSWRlbnRpZmllckJhc2V9JHtpbnN0YW5jZUluZGV4fWBcbiAgICAgICAgOiBwcm9wcy5kYkNsdXN0ZXJOYW1lICE9IG51bGwgPyBgJHtwcm9wcy5kYkNsdXN0ZXJOYW1lfWluc3RhbmNlJHtpbnN0YW5jZUluZGV4fWAgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IENmbkRCSW5zdGFuY2UodGhpcywgYEluc3RhbmNlJHtpbnN0YW5jZUluZGV4fWAsIHtcbiAgICAgICAgLy8gTGluayB0byBjbHVzdGVyXG4gICAgICAgIGRiQ2x1c3RlcklkZW50aWZpZXI6IGNsdXN0ZXIucmVmLFxuICAgICAgICBkYkluc3RhbmNlSWRlbnRpZmllcjogaW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgICAvLyBJbnN0YW5jZSBwcm9wZXJ0aWVzXG4gICAgICAgIGRiSW5zdGFuY2VDbGFzczogcHJvcHMuaW5zdGFuY2VUeXBlLl9pbnN0YW5jZVR5cGUsXG4gICAgICAgIGRiUGFyYW1ldGVyR3JvdXBOYW1lOiBwcm9wcy5wYXJhbWV0ZXJHcm91cD8ucGFyYW1ldGVyR3JvdXBOYW1lLFxuICAgICAgICBhdXRvTWlub3JWZXJzaW9uVXBncmFkZTogcHJvcHMuYXV0b01pbm9yVmVyc2lvblVwZ3JhZGUgPT09IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gV2UgbXVzdCBoYXZlIGEgZGVwZW5kZW5jeSBvbiB0aGUgTkFUIGdhdGV3YXkgcHJvdmlkZXIgaGVyZSB0byBjcmVhdGVcbiAgICAgIC8vIHRoaW5ncyBpbiB0aGUgcmlnaHQgb3JkZXIuXG4gICAgICBpbnN0YW5jZS5ub2RlLmFkZERlcGVuZGVuY3koaW50ZXJuZXRDb25uZWN0aXZpdHlFc3RhYmxpc2hlZCk7XG5cbiAgICAgIGluc3RhbmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5LCB7XG4gICAgICAgIGFwcGx5VG9VcGRhdGVSZXBsYWNlUG9saWN5OiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaW5zdGFuY2VJZGVudGlmaWVycy5wdXNoKGluc3RhbmNlLnJlZik7XG4gICAgICB0aGlzLmluc3RhbmNlRW5kcG9pbnRzLnB1c2gobmV3IEVuZHBvaW50KGluc3RhbmNlLmF0dHJFbmRwb2ludCwgcG9ydCkpO1xuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXcgZWMyLkNvbm5lY3Rpb25zKHtcbiAgICAgIGRlZmF1bHRQb3J0OiBlYzIuUG9ydC50Y3AocG9ydCksXG4gICAgICBzZWN1cml0eUdyb3Vwczogc2VjdXJpdHlHcm91cHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlU2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uKHNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbj86IFNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbikge1xuICAgIGlmICghc2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uKSByZXR1cm47XG4gICAgaWYgKHNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbi5taW5DYXBhY2l0eSA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uIG1pbkNhcGFjaXR5IG11c3QgYmUgZ3JlYXRlciBvciBlcXVhbCB0aGFuIDEsIHJlY2VpdmVkICR7c2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uLm1pbkNhcGFjaXR5fWApO1xuICAgIH1cbiAgICBpZiAoc2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uLm1heENhcGFjaXR5IDwgMi41IHx8IHNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbi5tYXhDYXBhY2l0eSA+IDEyOCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb24gbWF4Q2FwYWNpdHkgbXVzdCBiZSBiZXR3ZWVuIDIuNSBhbmQgMTI4LCByZXZlaXZlZCAke3NlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbi5tYXhDYXBhY2l0eX1gKTtcbiAgICB9XG4gICAgaWYgKHNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbi5taW5DYXBhY2l0eSA+PSBzZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb24ubWF4Q2FwYWNpdHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uIG1pbkNhcGFjaXR5ICR7c2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uLm1pbkNhcGFjaXR5fSBgICtcbiAgICAgICAgYG11c3QgYmUgbGVzcyB0aGFuIHNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbiBtYXhDYXBhY2l0eSAke3NlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbi5tYXhDYXBhY2l0eX1gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsdXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseURBQXlEO0FBQ3pELDJDQUEyQztBQUMzQywyQ0FBMkM7QUFFM0MsNkNBQTZDO0FBQzdDLDJDQUFrRztBQUVsRyx5Q0FBc0M7QUFDdEMseUNBQTBDO0FBQzFDLHlEQUFzRTtBQUV0RSxpREFBMkQ7QUFFM0Q7OztHQUdHO0FBQ0gsTUFBYSxhQUFhO0lBMEZ4Qjs7O09BR0c7SUFDSCxZQUFtQyxPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtLQUFLOztBQTlGekQsc0NBK0ZDOzs7QUE5RkM7O0dBRUc7QUFDb0Isc0JBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMvRDs7R0FFRztBQUNvQixzQkFBUSxHQUFHLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9EOztHQUVHO0FBQ29CLHNCQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0Q7O0dBRUc7QUFDb0Isc0JBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMvRDs7R0FFRztBQUNvQixzQkFBUSxHQUFHLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9EOztHQUVHO0FBQ29CLHNCQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0Q7O0dBRUc7QUFDb0Isc0JBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMvRDs7R0FFRztBQUNvQixzQkFBUSxHQUFHLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9EOztHQUVHO0FBQ29CLHNCQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0Q7O0dBRUc7QUFDb0Isc0JBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxT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LElBQUksOEJBQThCLENBQUMsV0FBVyxHQUFHLEdBQUcsSUFBSSw4QkFBOEIsQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDekcsTUFBTSxJQUFJLEtBQUssQ0FBQyxvRkFBb0YsOEJBQThCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwSixDQUFDO1FBQ0QsSUFBSSw4QkFBOEIsQ0FBQyxXQUFXLElBQUksOEJBQThCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0YsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsOEJBQThCLENBQUMsV0FBVyxHQUFHO2dCQUN6RyxnRUFBZ0UsOEJBQThCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsSCxDQUFDO0tBQ0Y7O0FBak1ILDBDQWtNQzs7O0FBaE1DOzs7R0FHRztBQUNvQixxQ0FBcUIsR0FBRyxDQUFDLEFBQUosQ0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBBd3MsIER1cmF0aW9uLCBJUmVzb3VyY2UsIExhenksIFJlbW92YWxQb2xpY3ksIFJlc291cmNlLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBFbmRwb2ludCB9IGZyb20gJy4vZW5kcG9pbnQnO1xuaW1wb3J0IHsgSW5zdGFuY2VUeXBlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBDZm5EQkNsdXN0ZXIsIENmbkRCSW5zdGFuY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbmVwdHVuZSc7XG5pbXBvcnQgeyBJQ2x1c3RlclBhcmFtZXRlckdyb3VwLCBJUGFyYW1ldGVyR3JvdXAgfSBmcm9tICcuL3BhcmFtZXRlci1ncm91cCc7XG5pbXBvcnQgeyBJU3VibmV0R3JvdXAsIFN1Ym5ldEdyb3VwIH0gZnJvbSAnLi9zdWJuZXQtZ3JvdXAnO1xuXG4vKipcbiAqIFBvc3NpYmxlIEluc3RhbmNlcyBUeXBlcyB0byB1c2UgaW4gTmVwdHVuZSBjbHVzdGVyXG4gKiB1c2VkIGZvciBkZWZpbmluZyBgRGF0YWJhc2VDbHVzdGVyUHJvcHMuZW5naW5lVmVyc2lvbmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbmdpbmVWZXJzaW9uIHtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4wLjEuMFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8wXzFfMCA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjAuMS4wJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMC4xLjFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMF8xXzEgPSBuZXcgRW5naW5lVmVyc2lvbignMS4wLjEuMScpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjAuMS4yXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzBfMV8yID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMC4xLjInKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4wLjIuMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8wXzJfMSA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjAuMi4xJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMC4yLjJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMF8yXzIgPSBuZXcgRW5naW5lVmVyc2lvbignMS4wLjIuMicpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjAuMy4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzBfM18wID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMC4zLjAnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4wLjQuMFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8wXzRfMCA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjAuNC4wJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMC40LjFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMF80XzEgPSBuZXcgRW5naW5lVmVyc2lvbignMS4wLjQuMScpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjAuNS4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzBfNV8wID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMC41LjAnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4xLjAuMFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8xXzBfMCA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjEuMC4wJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMS4xLjBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMV8xXzAgPSBuZXcgRW5naW5lVmVyc2lvbignMS4xLjEuMCcpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjIuMC4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzJfMF8wID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMi4wLjAnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4yLjAuMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8yXzBfMSA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjIuMC4xJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMi4wLjJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMl8wXzIgPSBuZXcgRW5naW5lVmVyc2lvbignMS4yLjAuMicpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjIuMS4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzJfMV8wID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMi4xLjAnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4yLjEuMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8yXzFfMSA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjIuMS4xJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMi4xLjJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfMl8xXzIgPSBuZXcgRW5naW5lVmVyc2lvbignMS4yLjEuMicpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjMuMC4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzNfMF8wID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMy4wLjAnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4zLjEuMFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8zXzFfMCA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjMuMS4wJyk7XG4gIC8qKlxuICAgKiBOZXB0dW5lIGVuZ2luZSB2ZXJzaW9uIDEuMy4yLjBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjFfM18yXzAgPSBuZXcgRW5naW5lVmVyc2lvbignMS4zLjIuMCcpO1xuICAvKipcbiAgICogTmVwdHVuZSBlbmdpbmUgdmVyc2lvbiAxLjMuMi4xXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYxXzNfMl8xID0gbmV3IEVuZ2luZVZlcnNpb24oJzEuMy4yLjEnKTtcbiAgLyoqXG4gICAqIE5lcHR1bmUgZW5naW5lIHZlcnNpb24gMS4zLjMuMFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8zXzNfMCA9IG5ldyBFbmdpbmVWZXJzaW9uKCcxLjMuMy4wJyk7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZvciBzcGVjaWZ5aW5nIGEgY3VzdG9tIGVuZ2luZSB2ZXJzaW9uXG4gICAqIEBwYXJhbSB2ZXJzaW9uIHRoZSBlbmdpbmUgdmVyc2lvbiBvZiBOZXB0dW5lXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZykgeyB9XG59XG5cbi8qKlxuICogTmVwdHVuZSBsb2cgdHlwZXMgdGhhdCBjYW4gYmUgZXhwb3J0ZWQgdG8gQ2xvdWRXYXRjaCBsb2dzXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbmVwdHVuZS9sYXRlc3QvdXNlcmd1aWRlL2Nsb3Vkd2F0Y2gtbG9ncy5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dUeXBlIHtcbiAgLyoqXG4gICAqIEF1ZGl0IGxvZ3NcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbmVwdHVuZS9sYXRlc3QvdXNlcmd1aWRlL2F1ZGl0aW5nLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVESVQgPSBuZXcgTG9nVHlwZSgnYXVkaXQnKTtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3IgZm9yIHNwZWNpZnlpbmcgYSBjdXN0b20gbG9nIHR5cGVcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBsb2cgdHlwZVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nKSB7IH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogTWluaW11bSBOQ1UgY2FwYWNpdHkgKG1pbiB2YWx1ZSAxKVxuICAgKi9cbiAgcmVhZG9ubHkgbWluQ2FwYWNpdHk6IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBOQ1UgY2FwYWNpdHkgKG1pbiB2YWx1ZSAyLjUgLSBtYXggdmFsdWUgMTI4KVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q2FwYWNpdHk6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBkYXRhYmFzZSBjbHVzdGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VDbHVzdGVyUHJvcHMge1xuICAvKipcbiAgICogV2hhdCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSB0byBzdGFydFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBkZWZhdWx0IGVuZ2luZSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5naW5lVmVyc2lvbj86IEVuZ2luZVZlcnNpb247XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IGRheXMgdG8gcmV0YWluIHRoZSBiYWNrdXBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBjZGsuRHVyYXRpb24uZGF5cygxKVxuICAgKi9cbiAgcmVhZG9ubHkgYmFja3VwUmV0ZW50aW9uPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEEgZGFpbHkgdGltZSByYW5nZSBpbiAyNC1ob3VycyBVVEMgZm9ybWF0IGluIHdoaWNoIGJhY2t1cHMgcHJlZmVyYWJseSBleGVjdXRlLlxuICAgKlxuICAgKiBNdXN0IGJlIGF0IGxlYXN0IDMwIG1pbnV0ZXMgbG9uZy5cbiAgICpcbiAgICogRXhhbXBsZTogJzAxOjAwLTAyOjAwJ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgMzAtbWludXRlIHdpbmRvdyBzZWxlY3RlZCBhdCByYW5kb20gZnJvbSBhbiA4LWhvdXIgYmxvY2sgb2ZcbiAgICogdGltZSBmb3IgZWFjaCBBV1MgUmVnaW9uLiBUbyBzZWUgdGhlIHRpbWUgYmxvY2tzIGF2YWlsYWJsZSwgc2VlXG4gICAqL1xuICByZWFkb25seSBwcmVmZXJyZWRCYWNrdXBXaW5kb3c/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IGZvciBzdG9yYWdlIGVuY3J5cHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBtYXN0ZXIga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIHN0b3JhZ2UgZW5jcnlwdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlRW5jcnlwdGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIE5lcHR1bmUgY29tcHV0ZSBpbnN0YW5jZXNcbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBpZGVudGlmaWVyIGZvciB0aGUgY2x1c3RlclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgbmFtZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRiQ2x1c3Rlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hcCBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIGFjY291bnRzIHRvIGRhdGFiYXNlIGFjY291bnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgaWFtQXV0aGVudGljYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBCYXNlIGlkZW50aWZpZXIgZm9yIGluc3RhbmNlc1xuICAgKlxuICAgKiBFdmVyeSByZXBsaWNhIGlzIG5hbWVkIGJ5IGFwcGVuZGluZyB0aGUgcmVwbGljYSBudW1iZXIgdG8gdGhpcyBzdHJpbmcsIDEtYmFzZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYGRiQ2x1c3Rlck5hbWVgIGlzIHVzZWQgd2l0aCB0aGUgd29yZCBcIkluc3RhbmNlXCIgYXBwZW5kZWQuIElmIGBkYkNsdXN0ZXJOYW1lYCBpcyBub3QgcHJvdmlkZWQsIHRoZVxuICAgKiBpZGVudGlmaWVyIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VJZGVudGlmaWVyQmFzZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hhdCB0eXBlIG9mIGluc3RhbmNlIHRvIHN0YXJ0IGZvciB0aGUgcmVwbGljYXNcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlVHlwZTogSW5zdGFuY2VUeXBlO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgQVdTIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSByb2xlIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGNsdXN0ZXIgdG8gYWNjZXNzIG90aGVyIEFXUyBzZXJ2aWNlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGF0dGFjaGVkIHRvIHRoZSBjbHVzdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzb2NpYXRlZFJvbGVzPzogaWFtLklSb2xlW107XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBEQiBjbHVzdGVyIHNob3VsZCBoYXZlIGRlbGV0aW9uIHByb3RlY3Rpb24gZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlIGlmIGBgcmVtb3ZhbFBvbGljeWBgIGlzIFJFVEFJTiwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHdlZWtseSB0aW1lIHJhbmdlIGluIHdoaWNoIG1haW50ZW5hbmNlIHNob3VsZCBwcmVmZXJhYmx5IGV4ZWN1dGUuXG4gICAqXG4gICAqIE11c3QgYmUgYXQgbGVhc3QgMzAgbWludXRlcyBsb25nLlxuICAgKlxuICAgKiBFeGFtcGxlOiAndHVlOjA0OjE3LXR1ZTowNDo0NydcbiAgICpcbiAgICogQGRlZmF1bHQgLSAzMC1taW51dGUgd2luZG93IHNlbGVjdGVkIGF0IHJhbmRvbSBmcm9tIGFuIDgtaG91ciBibG9jayBvZiB0aW1lIGZvclxuICAgKiBlYWNoIEFXUyBSZWdpb24sIG9jY3VycmluZyBvbiBhIHJhbmRvbSBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICByZWFkb25seSBwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdz86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIGRhdGFiYXNlIGVuZ2luZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHBhcmFtZXRlciBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IGNsdXN0ZXJQYXJhbWV0ZXJHcm91cD86IElDbHVzdGVyUGFyYW1ldGVyR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBwYXJhbWV0ZXIgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlckdyb3VwPzogSVBhcmFtZXRlckdyb3VwO1xuXG4gIC8qKlxuICAgKiBFeGlzdGluZyBzdWJuZXQgZ3JvdXAgZm9yIHRoZSBjbHVzdGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IHN1Ym5ldCBncm91cCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRHcm91cD86IElTdWJuZXRHcm91cDtcblxuICAvKipcbiAgICogV2hhdCBzdWJuZXRzIHRvIHJ1biB0aGUgTmVwdHVuZSBpbnN0YW5jZXMgaW4uXG4gICAqXG4gICAqIE11c3QgYmUgYXQgbGVhc3QgMiBzdWJuZXRzIGluIHR3byBkaWZmZXJlbnQgQVpzLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcblxuICAvKipcbiAgICogV2hlcmUgdG8gcGxhY2UgdGhlIGluc3RhbmNlcyB3aXRoaW4gdGhlIFZQQ1xuICAgKlxuICAgKiBAZGVmYXVsdCBwcml2YXRlIHN1Ym5ldHNcbiAgICovXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cC5cbiAgICpcbiAgICogQGRlZmF1bHQgYSBuZXcgc2VjdXJpdHkgZ3JvdXAgaXMgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogZWMyLklTZWN1cml0eUdyb3VwW107XG5cbiAgLyoqXG4gICAqIFRoZSByZW1vdmFsIHBvbGljeSB0byBhcHBseSB3aGVuIHRoZSBjbHVzdGVyIGFuZCBpdHMgaW5zdGFuY2VzIGFyZSByZW1vdmVkXG4gICAqIG9yIHJlcGxhY2VkIGR1cmluZyBhIHN0YWNrIHVwZGF0ZSwgb3Igd2hlbiB0aGUgc3RhY2sgaXMgZGVsZXRlZC4gVGhpc1xuICAgKiByZW1vdmFsIHBvbGljeSBhbHNvIGFwcGxpZXMgdG8gdGhlIGltcGxpY2l0IHNlY3VyaXR5IGdyb3VwIGNyZWF0ZWQgZm9yIHRoZVxuICAgKiBjbHVzdGVyIGlmIG9uZSBpcyBub3Qgc3VwcGxpZWQgYXMgYSBwYXJhbWV0ZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmV0YWluIGNsdXN0ZXIuXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogSWYgc2V0IHRvIHRydWUsIE5lcHR1bmUgd2lsbCBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB0aGUgZW5naW5lIG9mIHRoZSBlbnRpcmVcbiAgICogY2x1c3RlciB0byB0aGUgbGF0ZXN0IG1pbm9yIHZlcnNpb24gYWZ0ZXIgYSBzdGFiaWxpemF0aW9uIHdpbmRvdyBvZiAyIHRvIDMgd2Vla3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9NaW5vclZlcnNpb25VcGdyYWRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgbG9nIHR5cGVzIHRoYXQgbmVlZCB0byBiZSBlbmFibGVkIGZvciBleHBvcnRpbmcgdG9cbiAgICogQ2xvdWRXYXRjaCBMb2dzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9uZXB0dW5lL2xhdGVzdC91c2VyZ3VpZGUvY2xvdWR3YXRjaC1sb2dzLmh0bWxcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbmVwdHVuZS9sYXRlc3QvdXNlcmd1aWRlL2F1ZGl0aW5nLmh0bWwjYXVkaXRpbmctZW5hYmxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbG9nIGV4cG9ydHNcbiAgICovXG4gIHJlYWRvbmx5IGNsb3Vkd2F0Y2hMb2dzRXhwb3J0cz86IExvZ1R5cGVbXTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXlzIGxvZyBldmVudHMgYXJlIGtlcHQgaW4gQ2xvdWRXYXRjaCBMb2dzLiBXaGVuIHVwZGF0aW5nXG4gICAqIHRoaXMgcHJvcGVydHksIHVuc2V0dGluZyBpdCBkb2Vzbid0IHJlbW92ZSB0aGUgbG9nIHJldGVudGlvbiBwb2xpY3kuIFRvXG4gICAqIHJlbW92ZSB0aGUgcmV0ZW50aW9uIHBvbGljeSwgc2V0IHRoZSB2YWx1ZSB0byBgSW5maW5pdHlgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGxvZ3MgbmV2ZXIgZXhwaXJlXG4gICAqL1xuICByZWFkb25seSBjbG91ZHdhdGNoTG9nc1JldGVudGlvbj86IGxvZ3MuUmV0ZW50aW9uRGF5cztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIGZvciB0aGUgTGFtYmRhIGZ1bmN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VzdG9tIHJlc291cmNlXG4gICAqIHRoYXQgc2V0cyB0aGUgcmV0ZW50aW9uIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5ldyByb2xlIGlzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBjbG91ZHdhdGNoTG9nc1JldGVudGlvblJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgbWluaW11bSBhbmQgbWF4aW11bSBOQ1VzIGNhcGFjaXR5IGZvciBhIHNlcnZlcmxlc3MgY2x1c3Rlci5cbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9uZXB0dW5lL2xhdGVzdC91c2VyZ3VpZGUvbmVwdHVuZS1zZXJ2ZXJsZXNzLWNhcGFjaXR5LXNjYWxpbmcuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHJlcXVpcmVkIGlmIGluc3RhbmNlVHlwZSBpcyBkYi5zZXJ2ZXJsZXNzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb24/OiBTZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY29weSB0YWdzIHRvIHRoZSBzbmFwc2hvdCB3aGVuIGEgc25hcHNob3QgaXMgY3JlYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29weVRhZ3NUb1NuYXBzaG90PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHBvcnQgbnVtYmVyIG9uIHdoaWNoIHRoZSBEQiBpbnN0YW5jZXMgaW4gdGhlIERCIGNsdXN0ZXIgYWNjZXB0IGNvbm5lY3Rpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCA4MTgyXG4gICAqL1xuICByZWFkb25seSBwb3J0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGNsdXN0ZXJlZCBkYXRhYmFzZSB3aXRoIGEgZ2l2ZW4gbnVtYmVyIG9mIGluc3RhbmNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGF0YWJhc2VDbHVzdGVyIGV4dGVuZHMgSVJlc291cmNlLCBlYzIuSUNvbm5lY3RhYmxlIHtcbiAgLyoqXG4gICAqIElkZW50aWZpZXIgb2YgdGhlIGNsdXN0ZXJcbiAgICovXG4gIHJlYWRvbmx5IGNsdXN0ZXJJZGVudGlmaWVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIGlkZW50aWZpZXIgb2YgdGhlIGNsdXN0ZXJcbiAgICogQGF0dHJpYnV0ZSBDbHVzdGVyUmVzb3VyY2VJZFxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3RlclJlc291cmNlSWRlbnRpZmllcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW5kcG9pbnQgdG8gdXNlIGZvciByZWFkL3dyaXRlIG9wZXJhdGlvbnNcbiAgICogQGF0dHJpYnV0ZSBFbmRwb2ludCxQb3J0XG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyRW5kcG9pbnQ6IEVuZHBvaW50O1xuXG4gIC8qKlxuICAgKiBFbmRwb2ludCB0byB1c2UgZm9yIGxvYWQtYmFsYW5jZWQgcmVhZC1vbmx5IG9wZXJhdGlvbnMuXG4gICAqIEBhdHRyaWJ1dGUgUmVhZEVuZHBvaW50XG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyUmVhZEVuZHBvaW50OiBFbmRwb2ludDtcblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IHRoZSBzcGVjaWZpZWQgYWN0aW9uc1xuICAgKiBAcGFyYW0gZ3JhbnRlZSB0aGUgaWRlbnRpdHkgdG8gYmUgZ3JhbnRlZCB0aGUgYWN0aW9uc1xuICAgKiBAcGFyYW0gYWN0aW9ucyB0aGUgZGF0YS1hY2Nlc3MgYWN0aW9uc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9uZXB0dW5lL2xhdGVzdC91c2VyZ3VpZGUvaWFtLWRwLWFjdGlvbnMuaHRtbFxuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgY29ubmVjdGlvbiBhY2Nlc3MgdG8gdGhlIGRhdGFiYXNlLlxuICAgKi9cbiAgZ3JhbnRDb25uZWN0KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBhc3NvY2lhdGVkIHdpdGggdGhpcyBEYXRhYmFzZUNsdXN0ZXIgaW5zdGFuY2VcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbmVwdHVuZS9sYXRlc3QvdXNlcmd1aWRlL2N3LW1ldHJpY3MuaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9uZXB0dW5lL2xhdGVzdC91c2VyZ3VpZGUvY3ctZGltZW5zaW9ucy5odG1sXG4gICAqL1xuICBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhhdCBkZXNjcmliZSBhbiBleGlzdGluZyBjbHVzdGVyIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VDbHVzdGVyQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgZGF0YWJhc2UgcG9ydFxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAgb2YgdGhlIGRhdGFiYXNlIGNsdXN0ZXJcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IGVjMi5JU2VjdXJpdHlHcm91cDtcblxuICAvKipcbiAgICogSWRlbnRpZmllciBmb3IgdGhlIGNsdXN0ZXJcbiAgICovXG4gIHJlYWRvbmx5IGNsdXN0ZXJJZGVudGlmaWVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIElkZW50aWZpZXIgZm9yIHRoZSBjbHVzdGVyXG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyUmVzb3VyY2VJZGVudGlmaWVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENsdXN0ZXIgZW5kcG9pbnQgYWRkcmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3RlckVuZHBvaW50QWRkcmVzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZWFkZXIgZW5kcG9pbnQgYWRkcmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgcmVhZGVyRW5kcG9pbnRBZGRyZXNzOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBuZXcgb3IgaW1wb3J0ZWQgZGF0YWJhc2UgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFiYXNlQ2x1c3RlckJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhYmFzZUNsdXN0ZXIge1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgRGF0YWJhc2VDbHVzdGVyIGZyb20gcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRGF0YWJhc2VDbHVzdGVyQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogRGF0YWJhc2VDbHVzdGVyQXR0cmlidXRlcyk6IElEYXRhYmFzZUNsdXN0ZXIge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIERhdGFiYXNlQ2x1c3RlckJhc2UgaW1wbGVtZW50cyBJRGF0YWJhc2VDbHVzdGVyIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBkZWZhdWx0UG9ydCA9IGVjMi5Qb3J0LnRjcChhdHRycy5wb3J0KTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9ucyA9IG5ldyBlYzIuQ29ubmVjdGlvbnMoe1xuICAgICAgICBzZWN1cml0eUdyb3VwczogW2F0dHJzLnNlY3VyaXR5R3JvdXBdLFxuICAgICAgICBkZWZhdWx0UG9ydDogdGhpcy5kZWZhdWx0UG9ydCxcbiAgICAgIH0pO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJJZGVudGlmaWVyID0gYXR0cnMuY2x1c3RlcklkZW50aWZpZXI7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlclJlc291cmNlSWRlbnRpZmllciA9IGF0dHJzLmNsdXN0ZXJSZXNvdXJjZUlkZW50aWZpZXI7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlckVuZHBvaW50ID0gbmV3IEVuZHBvaW50KGF0dHJzLmNsdXN0ZXJFbmRwb2ludEFkZHJlc3MsIGF0dHJzLnBvcnQpO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJSZWFkRW5kcG9pbnQgPSBuZXcgRW5kcG9pbnQoYXR0cnMucmVhZGVyRW5kcG9pbnRBZGRyZXNzLCBhdHRycy5wb3J0KTtcbiAgICAgIHByb3RlY3RlZCBlbmFibGVJYW1BdXRoZW50aWNhdGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIG9mIHRoZSBjbHVzdGVyXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY2x1c3RlcklkZW50aWZpZXI6IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2UgaWRlbnRpZmllciBvZiB0aGUgY2x1c3RlclxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNsdXN0ZXJSZXNvdXJjZUlkZW50aWZpZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVuZHBvaW50IHRvIHVzZSBmb3IgcmVhZC93cml0ZSBvcGVyYXRpb25zXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY2x1c3RlckVuZHBvaW50OiBFbmRwb2ludDtcblxuICAvKipcbiAgICogRW5kcG9pbnQgdG8gdXNlIGZvciBsb2FkLWJhbGFuY2VkIHJlYWQtb25seSBvcGVyYXRpb25zLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNsdXN0ZXJSZWFkRW5kcG9pbnQ6IEVuZHBvaW50O1xuXG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbnMgb2JqZWN0IHRvIGltcGxlbWVudCBJQ29ubmVjdGFibGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjb25uZWN0aW9uczogZWMyLkNvbm5lY3Rpb25zO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBlbmFibGVJYW1BdXRoZW50aWNhdGlvbj86IGJvb2xlYW47XG5cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgaWYgKHRoaXMuZW5hYmxlSWFtQXV0aGVudGljYXRpb24gPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBncmFudCBwZXJtaXNzaW9ucyB3aGVuIElBTSBhdXRoZW50aWNhdGlvbiBpcyBkaXNhYmxlZCcpO1xuICAgIH1cblxuICAgIHRoaXMuZW5hYmxlSWFtQXV0aGVudGljYXRpb24gPSB0cnVlO1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IFtcbiAgICAgICAgW1xuICAgICAgICAgICdhcm4nLFxuICAgICAgICAgIEF3cy5QQVJUSVRJT04sXG4gICAgICAgICAgJ25lcHR1bmUtZGInLFxuICAgICAgICAgIEF3cy5SRUdJT04sXG4gICAgICAgICAgQXdzLkFDQ09VTlRfSUQsXG4gICAgICAgICAgYCR7dGhpcy5jbHVzdGVyUmVzb3VyY2VJZGVudGlmaWVyfS8qYCxcbiAgICAgICAgXS5qb2luKCc6JyksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdyYW50Q29ubmVjdChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgJ25lcHR1bmUtZGI6KicpO1xuICB9XG5cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL05lcHR1bmUnLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBEQkNsdXN0ZXJJZGVudGlmaWVyOiB0aGlzLmNsdXN0ZXJJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIGNsdXN0ZXJlZCBkYXRhYmFzZSB3aXRoIGEgZ2l2ZW4gbnVtYmVyIG9mIGluc3RhbmNlcy5cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpOZXB0dW5lOjpEQkNsdXN0ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFiYXNlQ2x1c3RlciBleHRlbmRzIERhdGFiYXNlQ2x1c3RlckJhc2UgaW1wbGVtZW50cyBJRGF0YWJhc2VDbHVzdGVyIHtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgbnVtYmVyIG9mIGluc3RhbmNlcyBpbiB0aGUgTmVwdHVuZSBjbHVzdGVyIGlmIG5vbmUgYXJlXG4gICAqIHNwZWNpZmllZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX05VTV9JTlNUQU5DRVMgPSAxO1xuXG4gIHB1YmxpYyByZWFkb25seSBjbHVzdGVySWRlbnRpZmllcjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlckVuZHBvaW50OiBFbmRwb2ludDtcbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJSZWFkRW5kcG9pbnQ6IEVuZHBvaW50O1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucztcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIGlkIGZvciB0aGUgY2x1c3RlcjsgZm9yIGV4YW1wbGU6IGNsdXN0ZXItQUJDRDEyMzRFRkdINTY3OElKS0w5ME1OT1AuIFRoZSBjbHVzdGVyIElEIHVuaXF1ZWx5XG4gICAqIGlkZW50aWZpZXMgdGhlIGNsdXN0ZXIgYW5kIGlzIHVzZWQgaW4gdGhpbmdzIGxpa2UgSUFNIGF1dGhlbnRpY2F0aW9uIHBvbGljaWVzLlxuICAgKiBAYXR0cmlidXRlIENsdXN0ZXJSZXNvdXJjZUlkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlclJlc291cmNlSWRlbnRpZmllcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIHdoZXJlIHRoZSBEQiBzdWJuZXQgZ3JvdXAgaXMgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBUaGUgc3VibmV0cyB1c2VkIGJ5IHRoZSBEQiBzdWJuZXQgZ3JvdXAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjU3VibmV0czogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogU3VibmV0IGdyb3VwIHVzZWQgYnkgdGhlIERCXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3VibmV0R3JvdXA6IElTdWJuZXRHcm91cDtcblxuICAvKipcbiAgICogSWRlbnRpZmllcnMgb2YgdGhlIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VJZGVudGlmaWVyczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogRW5kcG9pbnRzIHdoaWNoIGFkZHJlc3MgZWFjaCBpbmRpdmlkdWFsIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlRW5kcG9pbnRzOiBFbmRwb2ludFtdID0gW107XG5cbiAgcHJvdGVjdGVkIGVuYWJsZUlhbUF1dGhlbnRpY2F0aW9uPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWJhc2VDbHVzdGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy52cGMgPSBwcm9wcy52cGM7XG4gICAgdGhpcy52cGNTdWJuZXRzID0gcHJvcHMudnBjU3VibmV0cyA/PyB7IHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MgfTtcblxuICAgIC8vIERldGVybWluZSB0aGUgc3VibmV0KHMpIHRvIGRlcGxveSB0aGUgTmVwdHVuZSBjbHVzdGVyIHRvXG4gICAgY29uc3QgeyBzdWJuZXRJZHMsIGludGVybmV0Q29ubmVjdGl2aXR5RXN0YWJsaXNoZWQgfSA9IHRoaXMudnBjLnNlbGVjdFN1Ym5ldHModGhpcy52cGNTdWJuZXRzKTtcblxuICAgIC8vIENhbm5vdCB0ZXN0IHdoZXRoZXIgdGhlIHN1Ym5ldHMgYXJlIGluIGRpZmZlcmVudCBBWnMsIGJ1dCBhdCBsZWFzdCB3ZSBjYW4gdGVzdCB0aGUgYW1vdW50LlxuICAgIGlmIChzdWJuZXRJZHMubGVuZ3RoIDwgMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDbHVzdGVyIHJlcXVpcmVzIGF0IGxlYXN0IDIgc3VibmV0cywgZ290ICR7c3VibmV0SWRzLmxlbmd0aH1gKTtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym5ldEdyb3VwID0gcHJvcHMuc3VibmV0R3JvdXAgPz8gbmV3IFN1Ym5ldEdyb3VwKHRoaXMsICdTdWJuZXRzJywge1xuICAgICAgZGVzY3JpcHRpb246IGBTdWJuZXRzIGZvciAke2lkfSBkYXRhYmFzZWAsXG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgdnBjU3VibmV0czogdGhpcy52cGNTdWJuZXRzLFxuICAgICAgcmVtb3ZhbFBvbGljeTogcHJvcHMucmVtb3ZhbFBvbGljeSA9PT0gUmVtb3ZhbFBvbGljeS5SRVRBSU4gPyBwcm9wcy5yZW1vdmFsUG9saWN5IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2VjdXJpdHlHcm91cHMgPSBwcm9wcy5zZWN1cml0eUdyb3VwcyA/PyBbXG4gICAgICBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgJ1NlY3VyaXR5R3JvdXAnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTmVwdHVuZSBzZWN1cml0eSBncm91cCcsXG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgLy8gRGVmYXVsdCB0byBlbmNyeXB0ZWQgc3RvcmFnZVxuICAgIGNvbnN0IHN0b3JhZ2VFbmNyeXB0ZWQgPSBwcm9wcy5zdG9yYWdlRW5jcnlwdGVkID8/IHRydWU7XG5cbiAgICBpZiAocHJvcHMua21zS2V5ICYmICFzdG9yYWdlRW5jcnlwdGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0tNUyBrZXkgc3VwcGxpZWQgYnV0IHN0b3JhZ2VFbmNyeXB0ZWQgaXMgZmFsc2UnKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxldGlvblByb3RlY3Rpb24gPSBwcm9wcy5kZWxldGlvblByb3RlY3Rpb24gPz8gKHByb3BzLnJlbW92YWxQb2xpY3kgPT09IFJlbW92YWxQb2xpY3kuUkVUQUlOID8gdHJ1ZSA6IHVuZGVmaW5lZCk7XG5cbiAgICB0aGlzLmVuYWJsZUlhbUF1dGhlbnRpY2F0aW9uID0gcHJvcHMuaWFtQXV0aGVudGljYXRpb247XG5cbiAgICBpZiAocHJvcHMuaW5zdGFuY2VUeXBlID09PSBJbnN0YW5jZVR5cGUuU0VSVkVSTEVTUyAmJiAhcHJvcHMuc2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBuZWVkIHRvIHNwZWNpZnkgYSBzZXJ2ZXJsZXNzIHNjYWxpbmcgY29uZmlndXJhdGlvbiB3aXRoIGEgZGIuc2VydmVybGVzcyBpbnN0YW5jZSB0eXBlLicpO1xuICAgIH1cblxuICAgIHRoaXMudmFsaWRhdGVTZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb24ocHJvcHMuc2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgTmVwdHVuZSBjbHVzdGVyXG4gICAgY29uc3QgY2x1c3RlciA9IG5ldyBDZm5EQkNsdXN0ZXIodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgLy8gQmFzaWNcbiAgICAgIGVuZ2luZVZlcnNpb246IHByb3BzLmVuZ2luZVZlcnNpb24/LnZlcnNpb24sXG4gICAgICBkYkNsdXN0ZXJJZGVudGlmaWVyOiBwcm9wcy5kYkNsdXN0ZXJOYW1lLFxuICAgICAgZGJTdWJuZXRHcm91cE5hbWU6IHRoaXMuc3VibmV0R3JvdXAuc3VibmV0R3JvdXBOYW1lLFxuICAgICAgdnBjU2VjdXJpdHlHcm91cElkczogc2VjdXJpdHlHcm91cHMubWFwKHNnID0+IHNnLnNlY3VyaXR5R3JvdXBJZCksXG4gICAgICBkYkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWU6IHByb3BzLmNsdXN0ZXJQYXJhbWV0ZXJHcm91cD8uY2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZSxcbiAgICAgIGRlbGV0aW9uUHJvdGVjdGlvbjogZGVsZXRpb25Qcm90ZWN0aW9uLFxuICAgICAgYXNzb2NpYXRlZFJvbGVzOiBwcm9wcy5hc3NvY2lhdGVkUm9sZXMgPyBwcm9wcy5hc3NvY2lhdGVkUm9sZXMubWFwKHJvbGUgPT4gKHsgcm9sZUFybjogcm9sZS5yb2xlQXJuIH0pKSA6IHVuZGVmaW5lZCxcbiAgICAgIGlhbUF1dGhFbmFibGVkOiBMYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMuZW5hYmxlSWFtQXV0aGVudGljYXRpb24gfSksXG4gICAgICBkYlBvcnQ6IHByb3BzLnBvcnQsXG4gICAgICAvLyBCYWNrdXBcbiAgICAgIGJhY2t1cFJldGVudGlvblBlcmlvZDogcHJvcHMuYmFja3VwUmV0ZW50aW9uPy50b0RheXMoKSxcbiAgICAgIHByZWZlcnJlZEJhY2t1cFdpbmRvdzogcHJvcHMucHJlZmVycmVkQmFja3VwV2luZG93LFxuICAgICAgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c6IHByb3BzLnByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93LFxuICAgICAgLy8gRW5jcnlwdGlvblxuICAgICAga21zS2V5SWQ6IHByb3BzLmttc0tleT8ua2V5QXJuLFxuICAgICAgLy8gQ2xvdWRXYXRjaCBMb2dzIGV4cG9ydHNcbiAgICAgIGVuYWJsZUNsb3Vkd2F0Y2hMb2dzRXhwb3J0czogcHJvcHMuY2xvdWR3YXRjaExvZ3NFeHBvcnRzPy5tYXAobG9nVHlwZSA9PiBsb2dUeXBlLnZhbHVlKSxcbiAgICAgIHN0b3JhZ2VFbmNyeXB0ZWQsXG4gICAgICBzZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb246IHByb3BzLnNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbixcbiAgICAgIC8vIFRhZ3NcbiAgICAgIGNvcHlUYWdzVG9TbmFwc2hvdDogcHJvcHMuY29weVRhZ3NUb1NuYXBzaG90LFxuICAgIH0pO1xuXG4gICAgY2x1c3Rlci5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSwge1xuICAgICAgYXBwbHlUb1VwZGF0ZVJlcGxhY2VQb2xpY3k6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNsdXN0ZXJJZGVudGlmaWVyID0gY2x1c3Rlci5yZWY7XG4gICAgdGhpcy5jbHVzdGVyUmVzb3VyY2VJZGVudGlmaWVyID0gY2x1c3Rlci5hdHRyQ2x1c3RlclJlc291cmNlSWQ7XG5cbiAgICBjb25zdCBwb3J0ID0gVG9rZW4uYXNOdW1iZXIoY2x1c3Rlci5hdHRyUG9ydCk7XG4gICAgdGhpcy5jbHVzdGVyRW5kcG9pbnQgPSBuZXcgRW5kcG9pbnQoY2x1c3Rlci5hdHRyRW5kcG9pbnQsIHBvcnQpO1xuICAgIHRoaXMuY2x1c3RlclJlYWRFbmRwb2ludCA9IG5ldyBFbmRwb2ludChjbHVzdGVyLmF0dHJSZWFkRW5kcG9pbnQsIHBvcnQpO1xuXG4gICAgLy8gTG9nIHJldGVudGlvblxuICAgIGNvbnN0IHJldGVudGlvbiA9IHByb3BzLmNsb3Vkd2F0Y2hMb2dzUmV0ZW50aW9uO1xuICAgIGlmIChyZXRlbnRpb24pIHtcbiAgICAgIHByb3BzLmNsb3Vkd2F0Y2hMb2dzRXhwb3J0cz8uZm9yRWFjaChsb2dUeXBlID0+IHtcbiAgICAgICAgbmV3IGxvZ3MuTG9nUmV0ZW50aW9uKHRoaXMsIGAke2xvZ1R5cGUudmFsdWV9TG9nUmV0ZW50aW9uYCwge1xuICAgICAgICAgIGxvZ0dyb3VwTmFtZTogYC9hd3MvbmVwdHVuZS8ke3RoaXMuY2x1c3RlcklkZW50aWZpZXJ9LyR7bG9nVHlwZS52YWx1ZX1gLFxuICAgICAgICAgIHJvbGU6IHByb3BzLmNsb3Vkd2F0Y2hMb2dzUmV0ZW50aW9uUm9sZSxcbiAgICAgICAgICByZXRlbnRpb24sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBpbnN0YW5jZXNcbiAgICBjb25zdCBpbnN0YW5jZUNvdW50ID0gcHJvcHMuaW5zdGFuY2VzID8/IERhdGFiYXNlQ2x1c3Rlci5ERUZBVUxUX05VTV9JTlNUQU5DRVM7XG4gICAgaWYgKGluc3RhbmNlQ291bnQgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBpbnN0YW5jZSBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5zdGFuY2VDb3VudDsgaSsrKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZUluZGV4ID0gaSArIDE7XG5cbiAgICAgIGNvbnN0IGluc3RhbmNlSWRlbnRpZmllciA9IHByb3BzLmluc3RhbmNlSWRlbnRpZmllckJhc2UgIT0gbnVsbCA/IGAke3Byb3BzLmluc3RhbmNlSWRlbnRpZmllckJhc2V9JHtpbnN0YW5jZUluZGV4fWBcbiAgICAgICAgOiBwcm9wcy5kYkNsdXN0ZXJOYW1lICE9IG51bGwgPyBgJHtwcm9wcy5kYkNsdXN0ZXJOYW1lfWluc3RhbmNlJHtpbnN0YW5jZUluZGV4fWAgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IENmbkRCSW5zdGFuY2UodGhpcywgYEluc3RhbmNlJHtpbnN0YW5jZUluZGV4fWAsIHtcbiAgICAgICAgLy8gTGluayB0byBjbHVzdGVyXG4gICAgICAgIGRiQ2x1c3RlcklkZW50aWZpZXI6IGNsdXN0ZXIucmVmLFxuICAgICAgICBkYkluc3RhbmNlSWRlbnRpZmllcjogaW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgICAvLyBJbnN0YW5jZSBwcm9wZXJ0aWVzXG4gICAgICAgIGRiSW5zdGFuY2VDbGFzczogcHJvcHMuaW5zdGFuY2VUeXBlLl9pbnN0YW5jZVR5cGUsXG4gICAgICAgIGRiUGFyYW1ldGVyR3JvdXBOYW1lOiBwcm9wcy5wYXJhbWV0ZXJHcm91cD8ucGFyYW1ldGVyR3JvdXBOYW1lLFxuICAgICAgICBhdXRvTWlub3JWZXJzaW9uVXBncmFkZTogcHJvcHMuYXV0b01pbm9yVmVyc2lvblVwZ3JhZGUgPT09IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gV2UgbXVzdCBoYXZlIGEgZGVwZW5kZW5jeSBvbiB0aGUgTkFUIGdhdGV3YXkgcHJvdmlkZXIgaGVyZSB0byBjcmVhdGVcbiAgICAgIC8vIHRoaW5ncyBpbiB0aGUgcmlnaHQgb3JkZXIuXG4gICAgICBpbnN0YW5jZS5ub2RlLmFkZERlcGVuZGVuY3koaW50ZXJuZXRDb25uZWN0aXZpdHlFc3RhYmxpc2hlZCk7XG5cbiAgICAgIGluc3RhbmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5LCB7XG4gICAgICAgIGFwcGx5VG9VcGRhdGVSZXBsYWNlUG9saWN5OiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaW5zdGFuY2VJZGVudGlmaWVycy5wdXNoKGluc3RhbmNlLnJlZik7XG4gICAgICB0aGlzLmluc3RhbmNlRW5kcG9pbnRzLnB1c2gobmV3IEVuZHBvaW50KGluc3RhbmNlLmF0dHJFbmRwb2ludCwgcG9ydCkpO1xuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXcgZWMyLkNvbm5lY3Rpb25zKHtcbiAgICAgIGRlZmF1bHRQb3J0OiBlYzIuUG9ydC50Y3AocG9ydCksXG4gICAgICBzZWN1cml0eUdyb3Vwczogc2VjdXJpdHlHcm91cHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlU2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uKHNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbj86IFNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbikge1xuICAgIGlmICghc2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uKSByZXR1cm47XG4gICAgaWYgKHNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbi5taW5DYXBhY2l0eSA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uIG1pbkNhcGFjaXR5IG11c3QgYmUgZ3JlYXRlciBvciBlcXVhbCB0aGFuIDEsIHJlY2VpdmVkICR7c2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uLm1pbkNhcGFjaXR5fWApO1xuICAgIH1cbiAgICBpZiAoc2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uLm1heENhcGFjaXR5IDwgMi41IHx8IHNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbi5tYXhDYXBhY2l0eSA+IDEyOCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb24gbWF4Q2FwYWNpdHkgbXVzdCBiZSBiZXR3ZWVuIDIuNSBhbmQgMTI4LCByZXZlaXZlZCAke3NlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbi5tYXhDYXBhY2l0eX1gKTtcbiAgICB9XG4gICAgaWYgKHNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbi5taW5DYXBhY2l0eSA+PSBzZXJ2ZXJsZXNzU2NhbGluZ0NvbmZpZ3VyYXRpb24ubWF4Q2FwYWNpdHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uIG1pbkNhcGFjaXR5ICR7c2VydmVybGVzc1NjYWxpbmdDb25maWd1cmF0aW9uLm1pbkNhcGFjaXR5fSBgICtcbiAgICAgICAgYG11c3QgYmUgbGVzcyB0aGFuIHNlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbiBtYXhDYXBhY2l0eSAke3NlcnZlcmxlc3NTY2FsaW5nQ29uZmlndXJhdGlvbi5tYXhDYXBhY2l0eX1gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/lib/endpoint.js
CHANGED
|
@@ -19,5 +19,5 @@ class Endpoint {
|
|
|
19
19
|
}
|
|
20
20
|
exports.Endpoint = Endpoint;
|
|
21
21
|
_a = JSII_RTTI_SYMBOL_1;
|
|
22
|
-
Endpoint[_a] = { fqn: "@aws-cdk/aws-neptune-alpha.Endpoint", version: "2.
|
|
22
|
+
Endpoint[_a] = { fqn: "@aws-cdk/aws-neptune-alpha.Endpoint", version: "2.158.0-alpha.0" };
|
|
23
23
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUF5QztBQUV6Qzs7OztHQUlHO0FBQ0gsTUFBYSxRQUFRO0lBZ0JuQixZQUFZLE9BQWUsRUFBRSxJQUFZO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWpCLE1BQU0sUUFBUSxHQUFHLFlBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4RSxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO0tBQy9DOztBQXRCSCw0QkF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuXG4vKipcbiAqIENvbm5lY3Rpb24gZW5kcG9pbnQgb2YgYSBuZXB0dW5lIGNsdXN0ZXIgb3IgaW5zdGFuY2VcbiAqXG4gKiBDb25zaXN0cyBvZiBhIGNvbWJpbmF0aW9uIG9mIGhvc3RuYW1lIGFuZCBwb3J0LlxuICovXG5leHBvcnQgY2xhc3MgRW5kcG9pbnQge1xuICAvKipcbiAgICogVGhlIGhvc3RuYW1lIG9mIHRoZSBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwb3J0IG9mIHRoZSBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGNvbWJpbmF0aW9uIG9mIFwiSE9TVE5BTUU6UE9SVFwiIGZvciB0aGlzIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc29ja2V0QWRkcmVzczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFkZHJlc3M6IHN0cmluZywgcG9ydDogbnVtYmVyKSB7XG4gICAgdGhpcy5ob3N0bmFtZSA9IGFkZHJlc3M7XG4gICAgdGhpcy5wb3J0ID0gcG9ydDtcblxuICAgIGNvbnN0IHBvcnREZXNjID0gVG9rZW4uaXNVbnJlc29sdmVkKHBvcnQpID8gVG9rZW4uYXNTdHJpbmcocG9ydCkgOiBwb3J0O1xuICAgIHRoaXMuc29ja2V0QWRkcmVzcyA9IGAke2FkZHJlc3N9OiR7cG9ydERlc2N9YDtcbiAgfVxufVxuIl19
|
package/lib/instance.d.ts
CHANGED
|
@@ -9,6 +9,62 @@ import { IParameterGroup } from './parameter-group';
|
|
|
9
9
|
* used for defining `DatabaseInstanceProps.instanceType`.
|
|
10
10
|
*/
|
|
11
11
|
export declare class InstanceType {
|
|
12
|
+
/**
|
|
13
|
+
* db.x2g.large
|
|
14
|
+
*/
|
|
15
|
+
static readonly X2G_LARGE: InstanceType;
|
|
16
|
+
/**
|
|
17
|
+
* db.x2g.xlarge
|
|
18
|
+
*/
|
|
19
|
+
static readonly X2G_XLARGE: InstanceType;
|
|
20
|
+
/**
|
|
21
|
+
* db.x2g.2xlarge
|
|
22
|
+
*/
|
|
23
|
+
static readonly X2G_2XLARGE: InstanceType;
|
|
24
|
+
/**
|
|
25
|
+
* db.x2g.4xlarge
|
|
26
|
+
*/
|
|
27
|
+
static readonly X2G_4XLARGE: InstanceType;
|
|
28
|
+
/**
|
|
29
|
+
* db.x2g.8xlarge
|
|
30
|
+
*/
|
|
31
|
+
static readonly X2G_8XLARGE: InstanceType;
|
|
32
|
+
/**
|
|
33
|
+
* db.x2g.12xlarge
|
|
34
|
+
*/
|
|
35
|
+
static readonly X2G_12XLARGE: InstanceType;
|
|
36
|
+
/**
|
|
37
|
+
* db.x2g.16xlarge
|
|
38
|
+
*/
|
|
39
|
+
static readonly X2G_16XLARGE: InstanceType;
|
|
40
|
+
/**
|
|
41
|
+
* db.x2iedn.xlarge
|
|
42
|
+
*/
|
|
43
|
+
static readonly X2IEDN_XLARGE: InstanceType;
|
|
44
|
+
/**
|
|
45
|
+
* db.x2iedn.2xlarge
|
|
46
|
+
*/
|
|
47
|
+
static readonly X2IEDN_2XLARGE: InstanceType;
|
|
48
|
+
/**
|
|
49
|
+
* db.x2iedn.4xlarge
|
|
50
|
+
*/
|
|
51
|
+
static readonly X2IEDN_4XLARGE: InstanceType;
|
|
52
|
+
/**
|
|
53
|
+
* db.x2iedn.8xlarge
|
|
54
|
+
*/
|
|
55
|
+
static readonly X2IEDN_8XLARGE: InstanceType;
|
|
56
|
+
/**
|
|
57
|
+
* db.x2iedn.16xlarge
|
|
58
|
+
*/
|
|
59
|
+
static readonly X2IEDN_16XLARGE: InstanceType;
|
|
60
|
+
/**
|
|
61
|
+
* db.x2iedn.24xlarge
|
|
62
|
+
*/
|
|
63
|
+
static readonly X2IEDN_24XLARGE: InstanceType;
|
|
64
|
+
/**
|
|
65
|
+
* db.x2iedn.32xlarge
|
|
66
|
+
*/
|
|
67
|
+
static readonly X2IEDN_32XLARGE: InstanceType;
|
|
12
68
|
/**
|
|
13
69
|
* db.r6g.large
|
|
14
70
|
*/
|
|
@@ -38,9 +94,41 @@ export declare class InstanceType {
|
|
|
38
94
|
*/
|
|
39
95
|
static readonly R6G_16XLARGE: InstanceType;
|
|
40
96
|
/**
|
|
41
|
-
* db.
|
|
97
|
+
* db.r6i.large
|
|
42
98
|
*/
|
|
43
|
-
static readonly
|
|
99
|
+
static readonly R6I_LARGE: InstanceType;
|
|
100
|
+
/**
|
|
101
|
+
* db.r6i.xlarge
|
|
102
|
+
*/
|
|
103
|
+
static readonly R6I_XLARGE: InstanceType;
|
|
104
|
+
/**
|
|
105
|
+
* db.r6i.2xlarge
|
|
106
|
+
*/
|
|
107
|
+
static readonly R6I_2XLARGE: InstanceType;
|
|
108
|
+
/**
|
|
109
|
+
* db.r6i.4xlarge
|
|
110
|
+
*/
|
|
111
|
+
static readonly R6I_4XLARGE: InstanceType;
|
|
112
|
+
/**
|
|
113
|
+
* db.r6i.8xlarge
|
|
114
|
+
*/
|
|
115
|
+
static readonly R6I_8XLARGE: InstanceType;
|
|
116
|
+
/**
|
|
117
|
+
* db.r6i.12xlarge
|
|
118
|
+
*/
|
|
119
|
+
static readonly R6I_12XLARGE: InstanceType;
|
|
120
|
+
/**
|
|
121
|
+
* db.r6i.16xlarge
|
|
122
|
+
*/
|
|
123
|
+
static readonly R6I_16XLARGE: InstanceType;
|
|
124
|
+
/**
|
|
125
|
+
* db.r6i.24xlarge
|
|
126
|
+
*/
|
|
127
|
+
static readonly R6I_24XLARGE: InstanceType;
|
|
128
|
+
/**
|
|
129
|
+
* db.r6i.32xlarge
|
|
130
|
+
*/
|
|
131
|
+
static readonly R6I_32XLARGE: InstanceType;
|
|
44
132
|
/**
|
|
45
133
|
* db.r5.large
|
|
46
134
|
*/
|
|
@@ -65,10 +153,46 @@ export declare class InstanceType {
|
|
|
65
153
|
* db.r5.12xlarge
|
|
66
154
|
*/
|
|
67
155
|
static readonly R5_12XLARGE: InstanceType;
|
|
156
|
+
/**
|
|
157
|
+
* db.r5.16xlarge
|
|
158
|
+
*/
|
|
159
|
+
static readonly R5_16XLARGE: InstanceType;
|
|
68
160
|
/**
|
|
69
161
|
* db.r5.24xlarge
|
|
70
162
|
*/
|
|
71
163
|
static readonly R5_24XLARGE: InstanceType;
|
|
164
|
+
/**
|
|
165
|
+
* db.r5d.large
|
|
166
|
+
*/
|
|
167
|
+
static readonly R5D_LARGE: InstanceType;
|
|
168
|
+
/**
|
|
169
|
+
* db.r5d.xlarge
|
|
170
|
+
*/
|
|
171
|
+
static readonly R5D_XLARGE: InstanceType;
|
|
172
|
+
/**
|
|
173
|
+
* db.r5d.2xlarge
|
|
174
|
+
*/
|
|
175
|
+
static readonly R5D_2XLARGE: InstanceType;
|
|
176
|
+
/**
|
|
177
|
+
* db.r5d.4xlarge
|
|
178
|
+
*/
|
|
179
|
+
static readonly R5D_4XLARGE: InstanceType;
|
|
180
|
+
/**
|
|
181
|
+
* db.r5d.8xlarge
|
|
182
|
+
*/
|
|
183
|
+
static readonly R5D_8XLARGE: InstanceType;
|
|
184
|
+
/**
|
|
185
|
+
* db.r5d.12xlarge
|
|
186
|
+
*/
|
|
187
|
+
static readonly R5D_12XLARGE: InstanceType;
|
|
188
|
+
/**
|
|
189
|
+
* db.r5d.16xlarge
|
|
190
|
+
*/
|
|
191
|
+
static readonly R5D_16XLARGE: InstanceType;
|
|
192
|
+
/**
|
|
193
|
+
* db.r5d.24xlarge
|
|
194
|
+
*/
|
|
195
|
+
static readonly R5D_24XLARGE: InstanceType;
|
|
72
196
|
/**
|
|
73
197
|
* db.r4.large
|
|
74
198
|
*/
|
|
@@ -89,6 +213,10 @@ export declare class InstanceType {
|
|
|
89
213
|
* db.r4.8xlarge
|
|
90
214
|
*/
|
|
91
215
|
static readonly R4_8XLARGE: InstanceType;
|
|
216
|
+
/**
|
|
217
|
+
* db.t4g.medium
|
|
218
|
+
*/
|
|
219
|
+
static readonly T4G_MEDIUM: InstanceType;
|
|
92
220
|
/**
|
|
93
221
|
* db.t3.medium
|
|
94
222
|
*/
|