@aws-cdk/aws-s3tables-alpha 2.243.0-alpha.0 → 2.244.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 +18 -18
- package/lib/namespace.js +3 -3
- package/lib/table-bucket-policy.js +1 -1
- package/lib/table-bucket.js +6 -6
- package/lib/table-policy.js +1 -1
- package/lib/table.js +3 -3
- package/lib/util.js +3 -3
- package/package.json +6 -6
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.244.0",
|
|
12
12
|
"constructs": "^10.5.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -9397,7 +9397,7 @@
|
|
|
9397
9397
|
},
|
|
9398
9398
|
"locationInModule": {
|
|
9399
9399
|
"filename": "lib/namespace.ts",
|
|
9400
|
-
"line":
|
|
9400
|
+
"line": 157
|
|
9401
9401
|
},
|
|
9402
9402
|
"parameters": [
|
|
9403
9403
|
{
|
|
@@ -9520,7 +9520,7 @@
|
|
|
9520
9520
|
"immutable": true,
|
|
9521
9521
|
"locationInModule": {
|
|
9522
9522
|
"filename": "lib/namespace.ts",
|
|
9523
|
-
"line":
|
|
9523
|
+
"line": 150
|
|
9524
9524
|
},
|
|
9525
9525
|
"name": "namespaceName",
|
|
9526
9526
|
"overrides": "@aws-cdk/aws-s3tables-alpha.INamespace",
|
|
@@ -9536,7 +9536,7 @@
|
|
|
9536
9536
|
"immutable": true,
|
|
9537
9537
|
"locationInModule": {
|
|
9538
9538
|
"filename": "lib/namespace.ts",
|
|
9539
|
-
"line":
|
|
9539
|
+
"line": 155
|
|
9540
9540
|
},
|
|
9541
9541
|
"name": "tableBucket",
|
|
9542
9542
|
"overrides": "@aws-cdk/aws-s3tables-alpha.INamespace",
|
|
@@ -9902,7 +9902,7 @@
|
|
|
9902
9902
|
},
|
|
9903
9903
|
"locationInModule": {
|
|
9904
9904
|
"filename": "lib/table.ts",
|
|
9905
|
-
"line":
|
|
9905
|
+
"line": 504
|
|
9906
9906
|
},
|
|
9907
9907
|
"parameters": [
|
|
9908
9908
|
{
|
|
@@ -10135,7 +10135,7 @@
|
|
|
10135
10135
|
"immutable": true,
|
|
10136
10136
|
"locationInModule": {
|
|
10137
10137
|
"filename": "lib/table.ts",
|
|
10138
|
-
"line":
|
|
10138
|
+
"line": 495
|
|
10139
10139
|
},
|
|
10140
10140
|
"name": "namespace",
|
|
10141
10141
|
"type": {
|
|
@@ -10150,7 +10150,7 @@
|
|
|
10150
10150
|
"immutable": true,
|
|
10151
10151
|
"locationInModule": {
|
|
10152
10152
|
"filename": "lib/table.ts",
|
|
10153
|
-
"line":
|
|
10153
|
+
"line": 479
|
|
10154
10154
|
},
|
|
10155
10155
|
"name": "tableArn",
|
|
10156
10156
|
"overrides": "@aws-cdk/aws-s3tables-alpha.ITable",
|
|
@@ -10166,7 +10166,7 @@
|
|
|
10166
10166
|
"immutable": true,
|
|
10167
10167
|
"locationInModule": {
|
|
10168
10168
|
"filename": "lib/table.ts",
|
|
10169
|
-
"line":
|
|
10169
|
+
"line": 490
|
|
10170
10170
|
},
|
|
10171
10171
|
"name": "tableName",
|
|
10172
10172
|
"overrides": "@aws-cdk/aws-s3tables-alpha.ITable",
|
|
@@ -10182,7 +10182,7 @@
|
|
|
10182
10182
|
"immutable": true,
|
|
10183
10183
|
"locationInModule": {
|
|
10184
10184
|
"filename": "lib/table.ts",
|
|
10185
|
-
"line":
|
|
10185
|
+
"line": 500
|
|
10186
10186
|
},
|
|
10187
10187
|
"name": "tablePolicy",
|
|
10188
10188
|
"optional": true,
|
|
@@ -10197,7 +10197,7 @@
|
|
|
10197
10197
|
},
|
|
10198
10198
|
"locationInModule": {
|
|
10199
10199
|
"filename": "lib/table.ts",
|
|
10200
|
-
"line":
|
|
10200
|
+
"line": 502
|
|
10201
10201
|
},
|
|
10202
10202
|
"name": "autoCreatePolicy",
|
|
10203
10203
|
"protected": true,
|
|
@@ -10282,7 +10282,7 @@
|
|
|
10282
10282
|
},
|
|
10283
10283
|
"locationInModule": {
|
|
10284
10284
|
"filename": "lib/table-bucket.ts",
|
|
10285
|
-
"line":
|
|
10285
|
+
"line": 583
|
|
10286
10286
|
},
|
|
10287
10287
|
"parameters": [
|
|
10288
10288
|
{
|
|
@@ -10438,7 +10438,7 @@
|
|
|
10438
10438
|
},
|
|
10439
10439
|
"locationInModule": {
|
|
10440
10440
|
"filename": "lib/table-bucket.ts",
|
|
10441
|
-
"line":
|
|
10441
|
+
"line": 525
|
|
10442
10442
|
},
|
|
10443
10443
|
"name": "validateUnreferencedFileRemoval",
|
|
10444
10444
|
"parameters": [
|
|
@@ -10606,7 +10606,7 @@
|
|
|
10606
10606
|
"immutable": true,
|
|
10607
10607
|
"locationInModule": {
|
|
10608
10608
|
"filename": "lib/table-bucket.ts",
|
|
10609
|
-
"line":
|
|
10609
|
+
"line": 620
|
|
10610
10610
|
},
|
|
10611
10611
|
"name": "tableBucketArn",
|
|
10612
10612
|
"overrides": "@aws-cdk/aws-s3tables-alpha.ITableBucket",
|
|
@@ -10622,7 +10622,7 @@
|
|
|
10622
10622
|
"immutable": true,
|
|
10623
10623
|
"locationInModule": {
|
|
10624
10624
|
"filename": "lib/table-bucket.ts",
|
|
10625
|
-
"line":
|
|
10625
|
+
"line": 612
|
|
10626
10626
|
},
|
|
10627
10627
|
"name": "tableBucketName",
|
|
10628
10628
|
"overrides": "@aws-cdk/aws-s3tables-alpha.ITableBucket",
|
|
@@ -10638,7 +10638,7 @@
|
|
|
10638
10638
|
"immutable": true,
|
|
10639
10639
|
"locationInModule": {
|
|
10640
10640
|
"filename": "lib/table-bucket.ts",
|
|
10641
|
-
"line":
|
|
10641
|
+
"line": 579
|
|
10642
10642
|
},
|
|
10643
10643
|
"name": "encryptionKey",
|
|
10644
10644
|
"optional": true,
|
|
@@ -10655,7 +10655,7 @@
|
|
|
10655
10655
|
"immutable": true,
|
|
10656
10656
|
"locationInModule": {
|
|
10657
10657
|
"filename": "lib/table-bucket.ts",
|
|
10658
|
-
"line":
|
|
10658
|
+
"line": 577
|
|
10659
10659
|
},
|
|
10660
10660
|
"name": "tableBucketPolicy",
|
|
10661
10661
|
"optional": true,
|
|
@@ -10670,7 +10670,7 @@
|
|
|
10670
10670
|
},
|
|
10671
10671
|
"locationInModule": {
|
|
10672
10672
|
"filename": "lib/table-bucket.ts",
|
|
10673
|
-
"line":
|
|
10673
|
+
"line": 581
|
|
10674
10674
|
},
|
|
10675
10675
|
"name": "autoCreatePolicy",
|
|
10676
10676
|
"protected": true,
|
|
@@ -11581,6 +11581,6 @@
|
|
|
11581
11581
|
"symbolId": "lib/table-bucket:UnreferencedFileRemovalStatus"
|
|
11582
11582
|
}
|
|
11583
11583
|
},
|
|
11584
|
-
"version": "2.
|
|
11584
|
+
"version": "2.244.0-alpha.0",
|
|
11585
11585
|
"fingerprint": "**********"
|
|
11586
11586
|
}
|
package/lib/namespace.js
CHANGED
|
@@ -61,7 +61,7 @@ let Namespace = (() => {
|
|
|
61
61
|
Namespace = _classThis = _classDescriptor.value;
|
|
62
62
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
63
63
|
}
|
|
64
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Namespace", version: "2.
|
|
64
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Namespace", version: "2.244.0-alpha.0" };
|
|
65
65
|
/** Uniquely identifies this class. */
|
|
66
66
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.Namespace';
|
|
67
67
|
/**
|
|
@@ -117,7 +117,7 @@ let Namespace = (() => {
|
|
|
117
117
|
errors.push('Namespace name must not start with reserved prefix \'aws\'');
|
|
118
118
|
}
|
|
119
119
|
if (errors.length > 0) {
|
|
120
|
-
throw new core_1.UnscopedValidationError(`Invalid S3 Tables namespace name (value: ${namespaceName})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
120
|
+
throw new core_1.UnscopedValidationError('InvalidNamespaceName', `Invalid S3 Tables namespace name (value: ${namespaceName})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
@@ -163,4 +163,4 @@ let Namespace = (() => {
|
|
|
163
163
|
return Namespace = _classThis;
|
|
164
164
|
})();
|
|
165
165
|
exports.Namespace = Namespace;
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUF5QjtBQUN6QiwyREFBd0Q7QUFFeEQsMkNBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUF1RDFFOzs7O0dBSUc7SUFFVSxTQUFTOzRCQURyQixvQ0FBa0I7Ozs7c0JBQ1ksZUFBUTt5QkFBaEIsU0FBUSxXQUFROzs7O1lBQXZDLDZLQTJHQzs7Ozs7UUExR0Msc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyx1Q0FBdUMsQ0FBQztRQUUvRjs7V0FFRztRQUNJLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7Ozs7Ozs7OztZQUM1RixNQUFNLE1BQU8sU0FBUSxlQUFRO2dCQUNYLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO2dCQUNwQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQzthQUNqRDtZQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzlCO1FBQ0Q7Ozs7V0FJRztRQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxhQUFxQjtZQUN2RCxJQUFJLGFBQWEsSUFBSSxTQUFTLElBQUksWUFBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUNwRSwyRUFBMkU7Z0JBQzNFLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1lBRTVCLG9CQUFvQjtZQUNwQixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQzNELE1BQU0sQ0FBQyxJQUFJLENBQ1QsbUVBQW1FLENBQ3BFLENBQUM7WUFDSixDQUFDO1lBRUQsMkJBQTJCO1lBQzNCLE1BQU0sbUJBQW1CLEdBQUcsWUFBWSxDQUFDO1lBQ3pDLE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxDQUFDO1lBRTNDLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2xFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxDQUFDLElBQUksQ0FDVCxxRkFBcUY7b0JBQ25GLGFBQWEsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQ3pDLENBQUM7WUFDSixDQUFDO1lBRUQsNEJBQTRCO1lBQzVCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzNELE1BQU0sQ0FBQyxJQUFJLENBQ1QseUVBQXlFLENBQzFFLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFDRSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFDN0UsQ0FBQztnQkFDRCxNQUFNLENBQUMsSUFBSSxDQUNULHNFQUNFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FDekIsR0FBRyxDQUNKLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNERBQTRELENBQUMsQ0FBQztZQUM1RSxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLElBQUksOEJBQXVCLENBQy9CLDRDQUE0QyxhQUFhLElBQUksUUFBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBRyxDQUFDLEVBQUUsQ0FDdEYsQ0FBQztZQUNKLENBQUM7U0FDRjtRQUVEOztXQUVHO1FBQ2MsU0FBUyxDQUFlO1FBRXpDOztXQUVHO1FBQ2EsYUFBYSxDQUFTO1FBRXRDOztXQUVHO1FBQ2EsV0FBVyxDQUFlO1FBRTFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7WUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7Ozs7O21EQTFGUixTQUFTOzs7O1lBMkZsQixtQ0FBbUM7WUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFbEMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVyRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7WUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSwyQkFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7Z0JBQzFDLFNBQVMsRUFBRSxLQUFLLENBQUMsYUFBYTtnQkFDOUIsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYzthQUNoRCxDQUFDLENBQUM7WUFFSCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsQ0FBQztTQUNGOztZQTFHVSx1REFBUzs7Ozs7QUFBVCw4QkFBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVPTCB9IGZyb20gJ29zJztcbmltcG9ydCB7IENmbk5hbWVzcGFjZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM3RhYmxlcyc7XG5pbXBvcnQgdHlwZSB7IElSZXNvdXJjZSwgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFRva2VuLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSVRhYmxlQnVja2V0IH0gZnJvbSAnLi90YWJsZS1idWNrZXQnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gUzMgVGFibGVzIE5hbWVzcGFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTmFtZXNwYWNlIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgbmFtZXNwYWNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhYmxlIGJ1Y2tldCB3aGljaCB0aGlzIG5hbWVzcGFjZSBiZWxvbmdzIHRvXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0OiBJVGFibGVCdWNrZXQ7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgY29uc3RydWN0aW5nIGEgTmFtZXNwYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZXNwYWNlUHJvcHMge1xuICAvKipcbiAgICogQSBuYW1lIGZvciB0aGUgbmFtZXNwYWNlXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2VOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGFibGUgYnVja2V0IHRoaXMgbmFtZXNwYWNlIGJlbG9uZ3MgdG8uXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldDogSVRhYmxlQnVja2V0O1xuICAvKipcbiAgICogUG9saWN5IHRvIGFwcGx5IHdoZW4gdGhlIHBvbGljeSBpcyByZW1vdmVkIGZyb20gdGhpcyBzdGFjay5cbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbn1cblxuLyoqXG4gKiBBdHRyaWJ1dGVzIGZvciBpbXBvcnRpbmcgYW4gZXhpc3RpbmcgbmFtZXNwYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZXNwYWNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbmFtZXNwYWNlXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgdGhpcyBuYW1lc3BhY2UgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVCdWNrZXQ6IElUYWJsZUJ1Y2tldDtcbn1cblxuLyoqXG4gKiBBbiBTMyBUYWJsZXMgTmFtZXNwYWNlIHdpdGggaGVscGVycy5cbiAqXG4gKiBBIG5hbWVzcGFjZSBpcyBhIGxvZ2ljYWwgY29udGFpbmVyIGZvciB0YWJsZXMgd2l0aGluIGEgdGFibGUgYnVja2V0LlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgTmFtZXNwYWNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJTmFtZXNwYWNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtczN0YWJsZXMtYWxwaGEuTmFtZXNwYWNlJztcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIG5hbWVzcGFjZSBmcm9tIGl0cyBhdHRyaWJ1dGVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21OYW1lc3BhY2VBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBOYW1lc3BhY2VBdHRyaWJ1dGVzKTogSU5hbWVzcGFjZSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJTmFtZXNwYWNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2VOYW1lID0gYXR0cnMubmFtZXNwYWNlTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldCA9IGF0dHJzLnRhYmxlQnVja2V0O1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cbiAgLyoqXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZXMtYnVja2V0cy1uYW1pbmcuaHRtbFxuICAgKiBAcGFyYW0gbmFtZXNwYWNlTmFtZSBOYW1lIG9mIHRoZSBuYW1lc3BhY2VcbiAgICogQHRocm93cyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciBpZiBhbnkgbmFtaW5nIGVycm9ycyBhcmUgZGV0ZWN0ZWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVOYW1lc3BhY2VOYW1lKG5hbWVzcGFjZU5hbWU6IHN0cmluZykge1xuICAgIGlmIChuYW1lc3BhY2VOYW1lID09IHVuZGVmaW5lZCB8fCBUb2tlbi5pc1VucmVzb2x2ZWQobmFtZXNwYWNlTmFtZSkpIHtcbiAgICAgIC8vIHRoZSBuYW1lIGlzIGEgbGF0ZS1ib3VuZCB2YWx1ZSwgbm90IGEgZGVmaW5lZCBzdHJpbmcsIHNvIHNraXAgdmFsaWRhdGlvblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIExlbmd0aCB2YWxpZGF0aW9uXG4gICAgaWYgKG5hbWVzcGFjZU5hbWUubGVuZ3RoIDwgMSB8fCBuYW1lc3BhY2VOYW1lLmxlbmd0aCA+IDI1NSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdOYW1lc3BhY2UgbmFtZSBtdXN0IGJlIGF0IGxlYXN0IDEgYW5kIG5vIG1vcmUgdGhhbiAyNTUgY2hhcmFjdGVycycsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENoYXJhY3RlciBzZXQgdmFsaWRhdGlvblxuICAgIGNvbnN0IGlsbGVnYWxDaGFyc2V0UmVnRXggPSAvW15hLXowLTlfXS87XG4gICAgY29uc3QgYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXggPSAvW2EtejAtOV0vO1xuXG4gICAgY29uc3QgaWxsZWdhbENoYXJNYXRjaCA9IG5hbWVzcGFjZU5hbWUubWF0Y2goaWxsZWdhbENoYXJzZXRSZWdFeCk7XG4gICAgaWYgKGlsbGVnYWxDaGFyTWF0Y2gpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnTmFtZXNwYWNlIG5hbWUgbXVzdCBvbmx5IGNvbnRhaW4gbG93ZXJjYXNlIGNoYXJhY3RlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3JlcyAoXyknICtcbiAgICAgICAgICBgIChvZmZzZXQ6ICR7aWxsZWdhbENoYXJNYXRjaC5pbmRleH0pYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRWRnZSBjaGFyYWN0ZXIgdmFsaWRhdGlvblxuICAgIGlmICghYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXgudGVzdChuYW1lc3BhY2VOYW1lLmNoYXJBdCgwKSkpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnTmFtZXNwYWNlIG5hbWUgbXVzdCBzdGFydCB3aXRoIGEgbG93ZXJjYXNlIGxldHRlciBvciBudW1iZXIgKG9mZnNldDogMCknLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QobmFtZXNwYWNlTmFtZS5jaGFyQXQobmFtZXNwYWNlTmFtZS5sZW5ndGggLSAxKSlcbiAgICApIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICBgTmFtZXNwYWNlIG5hbWUgbXVzdCBlbmQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6ICR7XG4gICAgICAgICAgbmFtZXNwYWNlTmFtZS5sZW5ndGggLSAxXG4gICAgICAgIH0pYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG5hbWVzcGFjZU5hbWUuc3RhcnRzV2l0aCgnYXdzJykpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdOYW1lc3BhY2UgbmFtZSBtdXN0IG5vdCBzdGFydCB3aXRoIHJlc2VydmVkIHByZWZpeCBcXCdhd3NcXCcnKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgUzMgVGFibGVzIG5hbWVzcGFjZSBuYW1lICh2YWx1ZTogJHtuYW1lc3BhY2VOYW1lfSkke0VPTH0ke2Vycm9ycy5qb2luKEVPTCl9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBUaGUgdW5kZXJseWluZyBuYW1lc3BhY2UgcmVzb3VyY2UuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNvdXJjZTogQ2ZuTmFtZXNwYWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIG5hbWVzcGFjZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhYmxlIGJ1Y2tldCB3aGljaCB0aGlzIG5hbWVzcGFjZSBiZWxvbmdzIHRvXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVCdWNrZXQ6IElUYWJsZUJ1Y2tldDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmFtZXNwYWNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgTmFtZXNwYWNlLnZhbGlkYXRlTmFtZXNwYWNlTmFtZShwcm9wcy5uYW1lc3BhY2VOYW1lKTtcblxuICAgIHRoaXMudGFibGVCdWNrZXQgPSBwcm9wcy50YWJsZUJ1Y2tldDtcbiAgICB0aGlzLm5hbWVzcGFjZU5hbWUgPSBwcm9wcy5uYW1lc3BhY2VOYW1lO1xuICAgIHRoaXMuX3Jlc291cmNlID0gbmV3IENmbk5hbWVzcGFjZSh0aGlzLCBpZCwge1xuICAgICAgbmFtZXNwYWNlOiBwcm9wcy5uYW1lc3BhY2VOYW1lLFxuICAgICAgdGFibGVCdWNrZXRBcm46IHRoaXMudGFibGVCdWNrZXQudGFibGVCdWNrZXRBcm4sXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMucmVtb3ZhbFBvbGljeSkge1xuICAgICAgdGhpcy5fcmVzb3VyY2UuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLnJlbW92YWxQb2xpY3kpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUF5QjtBQUN6QiwyREFBd0Q7QUFFeEQsMkNBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUF1RDFFOzs7O0dBSUc7SUFFVSxTQUFTOzRCQURyQixvQ0FBa0I7Ozs7c0JBQ1ksZUFBUTt5QkFBaEIsU0FBUSxXQUFROzs7O1lBQXZDLDZLQTRHQzs7Ozs7UUEzR0Msc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyx1Q0FBdUMsQ0FBQztRQUUvRjs7V0FFRztRQUNJLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7Ozs7Ozs7OztZQUM1RixNQUFNLE1BQU8sU0FBUSxlQUFRO2dCQUNYLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO2dCQUNwQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQzthQUNqRDtZQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzlCO1FBQ0Q7Ozs7V0FJRztRQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxhQUFxQjtZQUN2RCxJQUFJLGFBQWEsSUFBSSxTQUFTLElBQUksWUFBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUNwRSwyRUFBMkU7Z0JBQzNFLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1lBRTVCLG9CQUFvQjtZQUNwQixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQzNELE1BQU0sQ0FBQyxJQUFJLENBQ1QsbUVBQW1FLENBQ3BFLENBQUM7WUFDSixDQUFDO1lBRUQsMkJBQTJCO1lBQzNCLE1BQU0sbUJBQW1CLEdBQUcsWUFBWSxDQUFDO1lBQ3pDLE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxDQUFDO1lBRTNDLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2xFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxDQUFDLElBQUksQ0FDVCxxRkFBcUY7b0JBQ25GLGFBQWEsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQ3pDLENBQUM7WUFDSixDQUFDO1lBRUQsNEJBQTRCO1lBQzVCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzNELE1BQU0sQ0FBQyxJQUFJLENBQ1QseUVBQXlFLENBQzFFLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFDRSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFDN0UsQ0FBQztnQkFDRCxNQUFNLENBQUMsSUFBSSxDQUNULHNFQUNFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FDekIsR0FBRyxDQUNKLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNERBQTRELENBQUMsQ0FBQztZQUM1RSxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLElBQUksOEJBQXVCLENBQy9CLHNCQUFzQixFQUN0Qiw0Q0FBNEMsYUFBYSxJQUFJLFFBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQUcsQ0FBQyxFQUFFLENBQ3RGLENBQUM7WUFDSixDQUFDO1NBQ0Y7UUFFRDs7V0FFRztRQUNjLFNBQVMsQ0FBZTtRQUV6Qzs7V0FFRztRQUNhLGFBQWEsQ0FBUztRQUV0Qzs7V0FFRztRQUNhLFdBQVcsQ0FBZTtRQUUxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCO1lBQzdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7OzttREEzRlIsU0FBUzs7OztZQTRGbEIsbUNBQW1DO1lBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRWxDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksMkJBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO2dCQUMxQyxTQUFTLEVBQUUsS0FBSyxDQUFDLGFBQWE7Z0JBQzlCLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWM7YUFDaEQsQ0FBQyxDQUFDO1lBRUgsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pELENBQUM7U0FDRjs7WUEzR1UsdURBQVM7Ozs7O0FBQVQsOEJBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFT0wgfSBmcm9tICdvcyc7XG5pbXBvcnQgeyBDZm5OYW1lc3BhY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczN0YWJsZXMnO1xuaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UsIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IFJlc291cmNlLCBUb2tlbiwgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElUYWJsZUJ1Y2tldCB9IGZyb20gJy4vdGFibGUtYnVja2V0JztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFMzIFRhYmxlcyBOYW1lc3BhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU5hbWVzcGFjZSBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIG5hbWVzcGFjZVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgd2hpY2ggdGhpcyBuYW1lc3BhY2UgYmVsb25ncyB0b1xuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldDogSVRhYmxlQnVja2V0O1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNvbnN0cnVjdGluZyBhIE5hbWVzcGFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVzcGFjZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhlIG5hbWVzcGFjZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHRhYmxlIGJ1Y2tldCB0aGlzIG5hbWVzcGFjZSBiZWxvbmdzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVCdWNrZXQ6IElUYWJsZUJ1Y2tldDtcbiAgLyoqXG4gICAqIFBvbGljeSB0byBhcHBseSB3aGVuIHRoZSBwb2xpY3kgaXMgcmVtb3ZlZCBmcm9tIHRoaXMgc3RhY2suXG4gICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIG5hbWVzcGFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVzcGFjZUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG5hbWVzcGFjZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgYnVja2V0IHRoaXMgbmFtZXNwYWNlIGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0OiBJVGFibGVCdWNrZXQ7XG59XG5cbi8qKlxuICogQW4gUzMgVGFibGVzIE5hbWVzcGFjZSB3aXRoIGhlbHBlcnMuXG4gKlxuICogQSBuYW1lc3BhY2UgaXMgYSBsb2dpY2FsIGNvbnRhaW5lciBmb3IgdGFibGVzIHdpdGhpbiBhIHRhYmxlIGJ1Y2tldC5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIE5hbWVzcGFjZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSU5hbWVzcGFjZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLXMzdGFibGVzLWFscGhhLk5hbWVzcGFjZSc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBuYW1lc3BhY2UgZnJvbSBpdHMgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTmFtZXNwYWNlQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogTmFtZXNwYWNlQXR0cmlidXRlcyk6IElOYW1lc3BhY2Uge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSU5hbWVzcGFjZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZSA9IGF0dHJzLm5hbWVzcGFjZU5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVCdWNrZXQgPSBhdHRycy50YWJsZUJ1Y2tldDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG4gIC8qKlxuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLWJ1Y2tldHMtbmFtaW5nLmh0bWxcbiAgICogQHBhcmFtIG5hbWVzcGFjZU5hbWUgTmFtZSBvZiB0aGUgbmFtZXNwYWNlXG4gICAqIEB0aHJvd3MgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgaWYgYW55IG5hbWluZyBlcnJvcnMgYXJlIGRldGVjdGVkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlTmFtZXNwYWNlTmFtZShuYW1lc3BhY2VOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAobmFtZXNwYWNlTmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKG5hbWVzcGFjZU5hbWUpKSB7XG4gICAgICAvLyB0aGUgbmFtZSBpcyBhIGxhdGUtYm91bmQgdmFsdWUsIG5vdCBhIGRlZmluZWQgc3RyaW5nLCBzbyBza2lwIHZhbGlkYXRpb25cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBMZW5ndGggdmFsaWRhdGlvblxuICAgIGlmIChuYW1lc3BhY2VOYW1lLmxlbmd0aCA8IDEgfHwgbmFtZXNwYWNlTmFtZS5sZW5ndGggPiAyNTUpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnTmFtZXNwYWNlIG5hbWUgbXVzdCBiZSBhdCBsZWFzdCAxIGFuZCBubyBtb3JlIHRoYW4gMjU1IGNoYXJhY3RlcnMnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDaGFyYWN0ZXIgc2V0IHZhbGlkYXRpb25cbiAgICBjb25zdCBpbGxlZ2FsQ2hhcnNldFJlZ0V4ID0gL1teYS16MC05X10vO1xuICAgIGNvbnN0IGFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4ID0gL1thLXowLTldLztcblxuICAgIGNvbnN0IGlsbGVnYWxDaGFyTWF0Y2ggPSBuYW1lc3BhY2VOYW1lLm1hdGNoKGlsbGVnYWxDaGFyc2V0UmVnRXgpO1xuICAgIGlmIChpbGxlZ2FsQ2hhck1hdGNoKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ05hbWVzcGFjZSBuYW1lIG11c3Qgb25seSBjb250YWluIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMgKF8pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QobmFtZXNwYWNlTmFtZS5jaGFyQXQoMCkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ05hbWVzcGFjZSBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6IDApJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KG5hbWVzcGFjZU5hbWUuY2hhckF0KG5hbWVzcGFjZU5hbWUubGVuZ3RoIC0gMSkpXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYE5hbWVzcGFjZSBuYW1lIG11c3QgZW5kIHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAke1xuICAgICAgICAgIG5hbWVzcGFjZU5hbWUubGVuZ3RoIC0gMVxuICAgICAgICB9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChuYW1lc3BhY2VOYW1lLnN0YXJ0c1dpdGgoJ2F3cycpKSB7XG4gICAgICBlcnJvcnMucHVzaCgnTmFtZXNwYWNlIG5hbWUgbXVzdCBub3Qgc3RhcnQgd2l0aCByZXNlcnZlZCBwcmVmaXggXFwnYXdzXFwnJyk7XG4gICAgfVxuXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICdJbnZhbGlkTmFtZXNwYWNlTmFtZScsXG4gICAgICAgIGBJbnZhbGlkIFMzIFRhYmxlcyBuYW1lc3BhY2UgbmFtZSAodmFsdWU6ICR7bmFtZXNwYWNlTmFtZX0pJHtFT0x9JHtlcnJvcnMuam9pbihFT0wpfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgVGhlIHVuZGVybHlpbmcgbmFtZXNwYWNlIHJlc291cmNlLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzb3VyY2U6IENmbk5hbWVzcGFjZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBuYW1lc3BhY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgd2hpY2ggdGhpcyBuYW1lc3BhY2UgYmVsb25ncyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlQnVja2V0OiBJVGFibGVCdWNrZXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5hbWVzcGFjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIE5hbWVzcGFjZS52YWxpZGF0ZU5hbWVzcGFjZU5hbWUocHJvcHMubmFtZXNwYWNlTmFtZSk7XG5cbiAgICB0aGlzLnRhYmxlQnVja2V0ID0gcHJvcHMudGFibGVCdWNrZXQ7XG4gICAgdGhpcy5uYW1lc3BhY2VOYW1lID0gcHJvcHMubmFtZXNwYWNlTmFtZTtcbiAgICB0aGlzLl9yZXNvdXJjZSA9IG5ldyBDZm5OYW1lc3BhY2UodGhpcywgaWQsIHtcbiAgICAgIG5hbWVzcGFjZTogcHJvcHMubmFtZXNwYWNlTmFtZSxcbiAgICAgIHRhYmxlQnVja2V0QXJuOiB0aGlzLnRhYmxlQnVja2V0LnRhYmxlQnVja2V0QXJuLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnJlbW92YWxQb2xpY3kpIHtcbiAgICAgIHRoaXMuX3Jlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -62,7 +62,7 @@ let TableBucketPolicy = (() => {
|
|
|
62
62
|
TableBucketPolicy = _classThis = _classDescriptor.value;
|
|
63
63
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
64
64
|
}
|
|
65
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucketPolicy", version: "2.
|
|
65
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucketPolicy", version: "2.244.0-alpha.0" };
|
|
66
66
|
/** Uniquely identifies this class. */
|
|
67
67
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TableBucketPolicy';
|
|
68
68
|
/**
|
package/lib/table-bucket.js
CHANGED
|
@@ -187,7 +187,7 @@ let TableBucket = (() => {
|
|
|
187
187
|
TableBucket = _classThis = _classDescriptor.value;
|
|
188
188
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
189
189
|
}
|
|
190
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucket", version: "2.
|
|
190
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucket", version: "2.244.0-alpha.0" };
|
|
191
191
|
/** Uniquely identifies this class. */
|
|
192
192
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TableBucket';
|
|
193
193
|
/**
|
|
@@ -271,7 +271,7 @@ let TableBucket = (() => {
|
|
|
271
271
|
errors.push(`Bucket name must end with a lowercase letter or number (offset: ${bucketName.length - 1})`);
|
|
272
272
|
}
|
|
273
273
|
if (errors.length > 0) {
|
|
274
|
-
throw new core_1.UnscopedValidationError(`Invalid S3 table bucket name (value: ${bucketName})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
274
|
+
throw new core_1.UnscopedValidationError('InvalidTableBucketName', `Invalid S3 table bucket name (value: ${bucketName})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
277
|
/**
|
|
@@ -315,7 +315,7 @@ let TableBucket = (() => {
|
|
|
315
315
|
errors.push('status must be one of \'Enabled\' or \'Disabled\'');
|
|
316
316
|
}
|
|
317
317
|
if (errors.length > 0) {
|
|
318
|
-
throw new core_1.UnscopedValidationError(`Invalid UnreferencedFileRemovalProperty})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
318
|
+
throw new core_1.UnscopedValidationError('InvalidUnreferencedFileRemovalProperty', `Invalid UnreferencedFileRemovalProperty})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
319
319
|
}
|
|
320
320
|
}
|
|
321
321
|
/**
|
|
@@ -426,10 +426,10 @@ let TableBucket = (() => {
|
|
|
426
426
|
};
|
|
427
427
|
}
|
|
428
428
|
else {
|
|
429
|
-
throw new core_1.UnscopedValidationError('Expected encryption = `KMS` with user provided encryption key');
|
|
429
|
+
throw new core_1.UnscopedValidationError('InvalidEncryptionConfiguration', 'Expected encryption = `KMS` with user provided encryption key');
|
|
430
430
|
}
|
|
431
431
|
}
|
|
432
|
-
throw new core_1.UnscopedValidationError(`Unknown encryption configuration detected: ${props.encryption} with key ${props.encryptionKey}`);
|
|
432
|
+
throw new core_1.UnscopedValidationError('UnknownEncryptionConfiguration', `Unknown encryption configuration detected: ${props.encryption} with key ${props.encryptionKey}`);
|
|
433
433
|
}
|
|
434
434
|
/**
|
|
435
435
|
* Allowlist S3 Tables Maintenance to access this table bucket's encryption key
|
|
@@ -466,4 +466,4 @@ let TableBucket = (() => {
|
|
|
466
466
|
return TableBucket = _classThis;
|
|
467
467
|
})();
|
|
468
468
|
exports.TableBucket = TableBucket;
|
|
469
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFibGUtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUF5QjtBQUN6QiwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLHFEQUFxRDtBQUVyRCwyQ0FBNEU7QUFDNUUsNEVBQXVFO0FBQ3ZFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUsdUNBQXVDO0FBQ3ZDLCtEQUEwRDtBQUMxRCxpQ0FBdUQ7QUEwSHZEOztHQUVHO0FBQ0gsSUFBWSw2QkFVWDtBQVZELFdBQVksNkJBQTZCO0lBQ3ZDOztPQUVHO0lBQ0gsb0RBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxzREFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcsNkJBQTZCLDZDQUE3Qiw2QkFBNkIsUUFVeEM7QUFFRDs7R0FFRztBQUNILElBQVkscUJBV1g7QUFYRCxXQUFZLHFCQUFxQjtJQUMvQjs7O09BR0c7SUFDSCx3Q0FBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCw4Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBWFcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFXaEM7QUFFRCxNQUFlLGVBQWdCLFNBQVEsZUFBUTtJQW9CN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQkc7SUFDSSxtQkFBbUIsQ0FDeEIsU0FBOEI7UUFFOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSx1Q0FBaUIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO2dCQUNwRSxXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsaUJBQWlCLENB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QkFDVixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDL0Q7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHFCQUFxQjtvQkFDckIsYUFBYTtpQkFDZDtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hCLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUU7d0JBQ1Ysa0NBQWtDLEVBQUUsT0FBTyxTQUFTLGFBQWEsTUFBTSxJQUFJLE9BQU8sV0FBVyxlQUFlLElBQUk7cUJBQ2pIO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDLENBQUM7U0FDTDs7WUFsVFUsdURBQVc7Ozs7O0FBQVgsa0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFT0wgfSBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgKiBhcyBzM3RhYmxlcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczN0YWJsZXMnO1xuaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UsIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IFJlc291cmNlLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciwgVG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IG1lbW9pemVkR2V0dGVyIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgcGVybXMgZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBUYWJsZUJ1Y2tldFBvbGljeSB9IGZyb20gJy4vdGFibGUtYnVja2V0LXBvbGljeSc7XG5pbXBvcnQgeyB2YWxpZGF0ZVRhYmxlQnVja2V0QXR0cmlidXRlcyB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGRlZmluaXRpb24gZm9yIFMzIFRhYmxlIEJ1Y2tldHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVGFibGVCdWNrZXQgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjY291bnRJZCBjb250YWluaW5nIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gY29udGFpbmluZyB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIEtNUyBlbmNyeXB0aW9uIGtleSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWJsZSBidWNrZXQuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIHRhYmxlcy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZSBwb2xpY3kgc3RhdGVtZW50IG1heSBvciBtYXkgbm90IGJlIGFkZGVkIHRvIHRoZSBwb2xpY3kuXG4gICAqIEZvciBleGFtcGxlLCB3aGVuIGFuIGBJVGFibGVCdWNrZXRgIGlzIGNyZWF0ZWQgZnJvbSBhbiBleGlzdGluZyB0YWJsZSBidWNrZXQsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgYnVja2V0IGFscmVhZHkgaGFzIGEgcG9saWN5XG4gICAqIGF0dGFjaGVkLCBsZXQgYWxvbmUgdG8gcmUtdXNlIHRoYXQgcG9saWN5IHRvIGFkZCBtb3JlIHN0YXRlbWVudHMgdG8gaXQuXG4gICAqIFNvIGl0J3Mgc2FmZXN0IHRvIGRvIG5vdGhpbmcgaW4gdGhlc2UgY2FzZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgdG8gYmUgYWRkZWQgdG8gdGhlIGJ1Y2tldCdzXG4gICAqIHBvbGljeS5cbiAgICogQHJldHVybnMgbWV0YWRhdGEgYWJvdXQgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIG1ldGhvZC4gSWYgdGhlIHBvbGljeVxuICAgKiB3YXMgbm90IGFkZGVkLCB0aGUgdmFsdWUgb2YgYHN0YXRlbWVudEFkZGVkYCB3aWxsIGJlIGBmYWxzZWAuIFlvdVxuICAgKiBzaG91bGQgYWx3YXlzIGNoZWNrIHRoaXMgdmFsdWUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG9wZXJhdGlvbiB3YXNcbiAgICogYWN0dWFsbHkgY2FycmllZCBvdXQuIE90aGVyd2lzZSwgc3ludGhlc2lzIGFuZCBkZXBsb3kgd2lsbCB0ZXJtaW5hdGVcbiAgICogc2lsZW50bHksIHdoaWNoIG1heSBiZSBjb25mdXNpbmcuXG4gICAqL1xuICBhZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQgaXRzIHRhYmxlc1xuICAgKiB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIHRhYmxlSWQgQWxsb3cgdGhlIHBlcm1pc3Npb25zIHRvIGFsbCB0YWJsZXMgdXNpbmcgJyonIG9yIHRvIHNpbmdsZSB0YWJsZSBieSBpdHMgdW5pcXVlIElELlxuICAgKi9cbiAgZ3JhbnRSZWFkKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSBidWNrZXQgYW5kIGl0cyB0YWJsZXNcbiAgICogdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQgdGhlIGNvbnRlbnRzXG4gICAqIG9mIHRoZSBidWNrZXQgd2lsbCBhbHNvIGJlIGdyYW50ZWQgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyB3cml0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcGFyYW0gdGFibGVJZCBBbGxvdyB0aGUgcGVybWlzc2lvbnMgdG8gYWxsIHRhYmxlcyB1c2luZyAnKicgb3IgdG8gc2luZ2xlIHRhYmxlIGJ5IGl0cyB1bmlxdWUgSUQuXG4gICAqL1xuICBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSBidWNrZXQgYW5kIGl0cyB0YWJsZXNcbiAgICogdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQvZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSB0YWJsZUlkIEFsbG93IHRoZSBwZXJtaXNzaW9ucyB0byBhbGwgdGFibGVzIHVzaW5nICcqJyBvciB0byBzaW5nbGUgdGFibGUgYnkgaXRzIHVuaXF1ZSBJRC5cbiAgICovXG4gIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xufVxuXG4vKipcbiAqIFVucmVmZXJlbmNlZCBmaWxlIHJlbW92YWwgc2V0dGluZ3MgZm9yIHRoZSB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCB7XG4gIC8qKlxuICAgKiBEdXJhdGlvbiBhZnRlciB3aGljaCBub25jdXJyZW50IGZpbGVzIHNob3VsZCBiZSByZW1vdmVkLiBTaG91bGQgYmUgYXQgbGVhc3Qgb25lIGRheS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IG5vbmN1cnJlbnREYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdW5yZWZlcmVuY2VkIGZpbGUgcmVtb3ZhbC4gQ2FuIGJlIEVuYWJsZWQgb3IgRGlzYWJsZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGUtYnVja2V0cy1tYWludGVuYW5jZS5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2VlIFMzIFRhYmxlcyBVc2VyIEd1aWRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFN0YXR1cztcblxuICAvKipcbiAgICogRHVyYXRpb24gYWZ0ZXIgd2hpY2ggdW5yZWZlcmVuY2VkIGZpbGVzIHNob3VsZCBiZSByZW1vdmVkLiBTaG91bGQgYmUgYXQgbGVhc3Qgb25lIGRheS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IHVucmVmZXJlbmNlZERheXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29udHJvbHMgd2hldGhlciB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsIGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBlbnVtIFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsU3RhdHVzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLlxuICAgKi9cbiAgRU5BQkxFRCA9ICdFbmFibGVkJyxcblxuICAvKipcbiAgICogRGlzYWJsZSB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnRGlzYWJsZWQnLFxufVxuXG4vKipcbiAqIENvbnRyb2xzIFNlcnZlciBTaWRlIEVuY3J5cHRpb24gKFNTRSkgZm9yIHRoaXMgVGFibGVCdWNrZXQuXG4gKi9cbmV4cG9ydCBlbnVtIFRhYmxlQnVja2V0RW5jcnlwdGlvbiB7XG4gIC8qKlxuICAgKiBVc2UgYSBjdXN0b21lciBkZWZpbmVkIEtNUyBrZXkgZm9yIGVuY3J5cHRpb25cbiAgICogSWYgYGVuY3J5cHRpb25LZXlgIGlzIHNwZWNpZmllZCwgdGhpcyBrZXkgd2lsbCBiZSB1c2VkLCBvdGhlcndpc2UsIG9uZSB3aWxsIGJlIGRlZmluZWQuXG4gICAqL1xuICBLTVMgPSAnYXdzOmttcycsXG5cbiAgLyoqXG4gICAqIFVzZSBTMyBtYW5hZ2VkIGVuY3J5cHRpb24ga2V5cyB3aXRoIEFFUzI1NiBlbmNyeXB0aW9uXG4gICAqL1xuICBTM19NQU5BR0VEID0gJ0FFUzI1NicsXG59XG5cbmFic3RyYWN0IGNsYXNzIFRhYmxlQnVja2V0QmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVRhYmxlQnVja2V0IHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQnVja2V0QXJuOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHBvbGljeSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWJsZSBidWNrZXQuXG4gICAqXG4gICAqIElmIGBhdXRvQ3JlYXRlUG9saWN5YCBpcyB0cnVlLCBhIGBUYWJsZUJ1Y2tldFBvbGljeWAgd2lsbCBiZSBjcmVhdGVkIHVwb24gdGhlXG4gICAqIGZpcnN0IGNhbGwgdG8gYWRkVG9SZXNvdXJjZVBvbGljeShzKS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0YWJsZUJ1Y2tldFBvbGljeT86IFRhYmxlQnVja2V0UG9saWN5O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSB0YWJsZSBidWNrZXQgcmVzb3VyY2UgcG9saWN5IHNob3VsZCBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgdXBvblxuICAgKiB0aGUgZmlyc3QgY2FsbCB0byBgYWRkVG9SZXNvdXJjZVBvbGljeWAuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZW5jcnlwdGlvbktleT86IGttcy5JS2V5IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSByZXNvdXJjZSBwb2xpY3kgZm9yIGEgcHJpbmNpcGFsIChpLmUuXG4gICAqIGFjY291bnQvcm9sZS9zZXJ2aWNlKSB0byBwZXJmb3JtIGFjdGlvbnMgb24gdGhpcyB0YWJsZSBidWNrZXQgYW5kL29yIGl0c1xuICAgKiBjb250ZW50cy4gVXNlIGB0YWJsZUJ1Y2tldEFybmAgYW5kIGBhcm5Gb3JPYmplY3RzKGtleXMpYCB0byBvYnRhaW4gQVJOcyBmb3JcbiAgICogdGhpcyBidWNrZXQgb3Igb2JqZWN0cy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZSBwb2xpY3kgc3RhdGVtZW50IG1heSBvciBtYXkgbm90IGJlIGFkZGVkIHRvIHRoZSBwb2xpY3kuXG4gICAqIEZvciBleGFtcGxlLCB3aGVuIGFuIGBJVGFibGVCdWNrZXRgIGlzIGNyZWF0ZWQgZnJvbSBhbiBleGlzdGluZyB0YWJsZSBidWNrZXQsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgYnVja2V0IGFscmVhZHkgaGFzIGEgcG9saWN5XG4gICAqIGF0dGFjaGVkLCBsZXQgYWxvbmUgdG8gcmUtdXNlIHRoYXQgcG9saWN5IHRvIGFkZCBtb3JlIHN0YXRlbWVudHMgdG8gaXQuXG4gICAqIFNvIGl0J3Mgc2FmZXN0IHRvIGRvIG5vdGhpbmcgaW4gdGhlc2UgY2FzZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgdG8gYmUgYWRkZWQgdG8gdGhlIGJ1Y2tldCdzXG4gICAqIHBvbGljeS5cbiAgICogQHJldHVybnMgbWV0YWRhdGEgYWJvdXQgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIG1ldGhvZC4gSWYgdGhlIHBvbGljeVxuICAgKiB3YXMgbm90IGFkZGVkLCB0aGUgdmFsdWUgb2YgYHN0YXRlbWVudEFkZGVkYCB3aWxsIGJlIGBmYWxzZWAuIFlvdVxuICAgKiBzaG91bGQgYWx3YXlzIGNoZWNrIHRoaXMgdmFsdWUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG9wZXJhdGlvbiB3YXNcbiAgICogYWN0dWFsbHkgY2FycmllZCBvdXQuIE90aGVyd2lzZSwgc3ludGhlc2lzIGFuZCBkZXBsb3kgd2lsbCB0ZXJtaW5hdGVcbiAgICogc2lsZW50bHksIHdoaWNoIG1heSBiZSBjb25mdXNpbmcuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQsXG4gICk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICBpZiAoIXRoaXMudGFibGVCdWNrZXRQb2xpY3kgJiYgdGhpcy5hdXRvQ3JlYXRlUG9saWN5KSB7XG4gICAgICB0aGlzLnRhYmxlQnVja2V0UG9saWN5ID0gbmV3IFRhYmxlQnVja2V0UG9saWN5KHRoaXMsICdEZWZhdWx0UG9saWN5Jywge1xuICAgICAgICB0YWJsZUJ1Y2tldDogdGhpcyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRhYmxlQnVja2V0UG9saWN5KSB7XG4gICAgICB0aGlzLnRhYmxlQnVja2V0UG9saWN5LmRvY3VtZW50LmFkZFN0YXRlbWVudHMoc3RhdGVtZW50KTtcbiAgICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiB0cnVlLCBwb2xpY3lEZXBlbmRhYmxlOiB0aGlzLnRhYmxlQnVja2V0UG9saWN5IH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhdGVtZW50QWRkZWQ6IGZhbHNlIH07XG4gIH1cblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9SRUFEX0FDQ0VTUyxcbiAgICAgIHBlcm1zLktFWV9SRUFEX0FDQ0VTUyxcbiAgICAgIHRoaXMudGFibGVCdWNrZXRBcm4sXG4gICAgICB0aGlzLmdldFRhYmxlQXJuKHRhYmxlSWQpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUsIHRhYmxlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdyYW50KFxuICAgICAgaWRlbnRpdHksXG4gICAgICBwZXJtcy5UQUJMRV9CVUNLRVRfV1JJVEVfQUNDRVNTLFxuICAgICAgcGVybXMuS0VZX1JFQURfV1JJVEVfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUJ1Y2tldEFybixcbiAgICAgIHRoaXMuZ2V0VGFibGVBcm4odGFibGVJZCksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUsIHRhYmxlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdyYW50KFxuICAgICAgaWRlbnRpdHksXG4gICAgICBwZXJtcy5UQUJMRV9CVUNLRVRfUkVBRF9XUklURV9BQ0NFU1MsXG4gICAgICBwZXJtcy5LRVlfV1JJVEVfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUJ1Y2tldEFybixcbiAgICAgIHRoaXMuZ2V0VGFibGVBcm4odGFibGVJZCksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgdGhlIGdpdmVuIHMzdGFibGVzIHBlcm1pc3Npb25zIHRvIHRoZSBwcm92aWRlZCBwcmluY2lwYWxcbiAgICogQHJldHVybnMgR3JhbnQgb2JqZWN0XG4gICAqL1xuICBwcml2YXRlIGdyYW50KFxuICAgIGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLFxuICAgIHRhYmxlQnVja2V0QWN0aW9uczogc3RyaW5nW10sXG4gICAga2V5QWN0aW9uczogc3RyaW5nW10sXG4gICAgcmVzb3VyY2VBcm46IHN0cmluZyxcbiAgICAuLi5vdGhlclJlc291cmNlQXJuczogKHN0cmluZyB8IHVuZGVmaW5lZClbXSkge1xuICAgIGNvbnN0IHJlc291cmNlcyA9IFtyZXNvdXJjZUFybiwgLi4ub3RoZXJSZXNvdXJjZUFybnNdLmZpbHRlcihhcm4gPT4gYXJuICE9IHVuZGVmaW5lZCk7XG5cbiAgICBjb25zdCBncmFudCA9IGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbE9yUmVzb3VyY2Uoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IHRhYmxlQnVja2V0QWN0aW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogcmVzb3VyY2VzLFxuICAgICAgcmVzb3VyY2U6IHRoaXMsXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5lbmNyeXB0aW9uS2V5ICYmIGtleUFjdGlvbnMgJiYga2V5QWN0aW9ucy5sZW5ndGggIT09IDApIHtcbiAgICAgIHRoaXMuZW5jcnlwdGlvbktleS5ncmFudChncmFudGVlLCAuLi5rZXlBY3Rpb25zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JhbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldFRhYmxlQXJuKHRhYmxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0YWJsZUlkID8gYCR7dGhpcy50YWJsZUJ1Y2tldEFybn0vdGFibGUvJHt0YWJsZUlkfWAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjb25zdHJ1Y3RpbmcgYSBUYWJsZUJ1Y2tldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQnVja2V0UHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgUzMgVGFibGVCdWNrZXQuXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlcy1idWNrZXRzLW5hbWluZy5odG1sI3RhYmxlLWJ1Y2tldHMtbmFtaW5nLXJ1bGVzXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVW5yZWZlcmVuY2VkIGZpbGUgcmVtb3ZhbCBzZXR0aW5ncyBmb3IgdGhlIFMzIFRhYmxlQnVja2V0LlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zM3RhYmxlcy10YWJsZWJ1Y2tldC11bnJlZmVyZW5jZWRmaWxlcmVtb3ZhbC5odG1sXG4gICAqIEBkZWZhdWx0IEVuYWJsZWQgd2l0aCBkZWZhdWx0IHZhbHVlc1xuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlLWJ1Y2tldHMtbWFpbnRlbmFuY2UuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgdW5yZWZlcmVuY2VkRmlsZVJlbW92YWw/OiBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbDtcblxuICAvKipcbiAgICogQVdTIHJlZ2lvbiB0aGF0IHRoZSB0YWJsZSBidWNrZXQgZXhpc3RzIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGl0J3MgYXNzdW1lZCB0aGUgYnVja2V0IGlzIGluIHRoZSBzYW1lIHJlZ2lvbiBhcyB0aGUgc2NvcGUgaXQncyBiZWluZyBpbXBvcnRlZCBpbnRvXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFXUyBBY2NvdW50IElEIG9mIHRoZSB0YWJsZSBidWNrZXQgb3duZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaXQncyBhc3N1bWVkIHRoZSBidWNrZXQgYmVsb25ncyB0byB0aGUgc2FtZSBhY2NvdW50IGFzIHRoZSBzY29wZSBpdCdzIGJlaW5nIGltcG9ydGVkIGludG9cbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBraW5kIG9mIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gdG8gYXBwbHkgdG8gdGhpcyBidWNrZXQuXG4gICAqXG4gICAqIElmIHlvdSBjaG9vc2UgS01TLCB5b3UgY2FuIHNwZWNpZnkgYSBLTVMga2V5IHZpYSBgZW5jcnlwdGlvbktleWAuIElmXG4gICAqIGVuY3J5cHRpb24ga2V5IGlzIG5vdCBzcGVjaWZpZWQsIGEga2V5IHdpbGwgYXV0b21hdGljYWxseSBiZSBjcmVhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGBLTVNgIGlmIGBlbmNyeXB0aW9uS2V5YCBpcyBzcGVjaWZpZWQsIG9yIGBTM19NQU5BR0VEYCBvdGhlcndpc2UuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uPzogVGFibGVCdWNrZXRFbmNyeXB0aW9uO1xuXG4gIC8qKlxuICAgKiBFeHRlcm5hbCBLTVMga2V5IHRvIHVzZSBmb3IgYnVja2V0IGVuY3J5cHRpb24uXG4gICAqXG4gICAqIFRoZSBgZW5jcnlwdGlvbmAgcHJvcGVydHkgbXVzdCBiZSBlaXRoZXIgbm90IHNwZWNpZmllZCBvciBzZXQgdG8gYEtNU2AuXG4gICAqIEFuIGVycm9yIHdpbGwgYmUgZW1pdHRlZCBpZiBgZW5jcnlwdGlvbmAgaXMgc2V0IHRvIGBTM19NQU5BR0VEYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBJZiBgZW5jcnlwdGlvbmAgaXMgc2V0IHRvIGBLTVNgIGFuZCB0aGlzIHByb3BlcnR5IGlzIHVuZGVmaW5lZCxcbiAgICogYSBuZXcgS01TIGtleSB3aWxsIGJlIGNyZWF0ZWQgYW5kIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGJ1Y2tldC5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcblxuICAvKipcbiAgICogQ29udHJvbHMgd2hhdCBoYXBwZW5zIHRvIHRoaXMgdGFibGUgYnVja2V0IGl0IGl0IHN0b3BlZCBiZWluZyBtYW5hZ2VkIGJ5IGNsb3VkZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSRVRBSU5cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHRvIGEgdGFibGUgYnVja2V0IG91dHNpZGUgdGhpcyBzdGFja1xuICpcbiAqIFRoZSB0YWJsZUJ1Y2tldE5hbWUsIHJlZ2lvbiwgYW5kIGFjY291bnQgY2FuIGJlIHByb3ZpZGVkIGV4cGxpY2l0bHlcbiAqIG9yIHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGUgdGFibGVCdWNrZXRBcm5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogQVdTIHJlZ2lvbiB0aGlzIHRhYmxlIGJ1Y2tldCBleGlzdHMgaW5cbiAgICogQGRlZmF1bHQgcmVnaW9uIGluZmVycmVkIGZyb20gc2NvcGVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjY291bnRJZCBjb250YWluaW5nIHRoaXMgdGFibGUgYnVja2V0XG4gICAqIEBkZWZhdWx0IGFjY291bnQgaW5mZXJyZWQgZnJvbSBzY29wZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhYmxlIGJ1Y2tldCBuYW1lLCB1bmlxdWUgcGVyIHJlZ2lvblxuICAgKiBAZGVmYXVsdCB0YWJsZUJ1Y2tldE5hbWUgaW5mZXJyZWQgZnJvbSBhcm5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhYmxlIGJ1Y2tldCdzIEFSTi5cbiAgICogQGRlZmF1bHQgdGFibGVCdWNrZXRBcm4gY29uc3RydWN0ZWQgZnJvbSByZWdpb24sIGFjY291bnQgYW5kIHRhYmxlQnVja2V0TmFtZSBhcmUgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0QXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBLTVMgZW5jcnlwdGlvbiBrZXkgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYnVja2V0LlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xufVxuXG4vKipcbiAqIEFuIFMzIHRhYmxlIGJ1Y2tldCB3aXRoIGhlbHBlcnMgZm9yIGFzc29jaWF0ZWQgcmVzb3VyY2UgcG9saWNpZXNcbiAqXG4gKiBUaGlzIGJ1Y2tldCBtYXkgbm90IHlldCBoYXZlIGFsbCBmZWF0dXJlcyB0aGF0IGV4cG9zZWQgYnkgdGhlIHVuZGVybHlpbmcgQ2ZuVGFibGVCdWNrZXQuXG4gKlxuICogQHN0YXRlZnVsXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc2FtcGxlVGFibGVCdWNrZXQgPSBuZXcgVGFibGVCdWNrZXQoc2NvcGUsICdFeGFtcGxlVGFibGVCdWNrZXQnLCB7XG4gKiAgIHRhYmxlQnVja2V0TmFtZTogJ2V4YW1wbGUtYnVja2V0JyxcbiAqICAgLy8gT3B0aW9uYWwgZmllbGRzOlxuICogICB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbDoge1xuICogICAgIG5vbmN1cnJlbnREYXlzOiAxMjMsXG4gKiAgICAgc3RhdHVzOiBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFN0YXR1cy5FTkFCTEVELFxuICogICAgIHVucmVmZXJlbmNlZERheXM6IDEyMyxcbiAqICAgfSxcbiAqIH0pO1xuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgVGFibGVCdWNrZXQgZXh0ZW5kcyBUYWJsZUJ1Y2tldEJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1zM3RhYmxlcy1hbHBoYS5UYWJsZUJ1Y2tldCc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZUJ1Y2tldCBjb25zdHJ1Y3QgZnJvbSBhbiBleHRlcm5hbCB0YWJsZSBidWNrZXQgQVJOLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lLlxuICAgKiBAcGFyYW0gdGFibGVCdWNrZXRBcm4gQW1hem9uIFJlc291cmNlIE5hbWUgKGFybikgb2YgdGhlIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVGFibGVCdWNrZXRBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgdGFibGVCdWNrZXRBcm46IHN0cmluZyk6IElUYWJsZUJ1Y2tldCB7XG4gICAgcmV0dXJuIFRhYmxlQnVja2V0LmZyb21UYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IHRhYmxlQnVja2V0QXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZUJ1Y2tldCBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIHRhYmxlIGJ1Y2tldC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZS5cbiAgICogQHBhcmFtIGF0dHJzIEEgYFRhYmxlQnVja2V0QXR0cmlidXRlc2Agb2JqZWN0LiBDYW4gYmUgbWFudWFsbHkgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQnVja2V0QXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IFRhYmxlQnVja2V0QXR0cmlidXRlcyxcbiAgKTogSVRhYmxlQnVja2V0IHtcbiAgICBjb25zdCB7IHRhYmxlQnVja2V0TmFtZSwgcmVnaW9uLCBhY2NvdW50LCB0YWJsZUJ1Y2tldEFybiB9ID0gdmFsaWRhdGVUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoc2NvcGUsIGF0dHJzKTtcbiAgICBUYWJsZUJ1Y2tldC52YWxpZGF0ZVRhYmxlQnVja2V0TmFtZSh0YWJsZUJ1Y2tldE5hbWUpO1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFRhYmxlQnVja2V0QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVCdWNrZXROYW1lID0gdGFibGVCdWNrZXROYW1lITtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldEFybiA9IHRhYmxlQnVja2V0QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlQnVja2V0UG9saWN5PzogVGFibGVCdWNrZXRQb2xpY3k7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcmVnaW9uID0gcmVnaW9uO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFjY291bnQgPSBhY2NvdW50O1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleSA9IGF0dHJzLmVuY3J5cHRpb25LZXk7XG4gICAgICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIEV4cG9ydHMgdGhpcyBidWNrZXQgZnJvbSB0aGUgc3RhY2suXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyBleHBvcnQoKSB7XG4gICAgICAgIHJldHVybiBhdHRycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGFjY291bnQsXG4gICAgICByZWdpb24sXG4gICAgICBwaHlzaWNhbE5hbWU6IHRhYmxlQnVja2V0TmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSBnaXZlbiB0YWJsZSBidWNrZXQgbmFtZSBpcyBub3QgdmFsaWQuXG4gICAqXG4gICAqIEBwYXJhbSBidWNrZXROYW1lIG5hbWUgb2YgdGhlIGJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVUYWJsZUJ1Y2tldE5hbWUoXG4gICAgYnVja2V0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBpZiAoYnVja2V0TmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKGJ1Y2tldE5hbWUpKSB7XG4gICAgICAvLyB0aGUgbmFtZSBpcyBhIGxhdGUtYm91bmQgdmFsdWUsIG5vdCBhIGRlZmluZWQgc3RyaW5nLCBzbyBza2lwIHZhbGlkYXRpb25cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBMZW5ndGggdmFsaWRhdGlvblxuICAgIGlmIChidWNrZXROYW1lLmxlbmd0aCA8IDMgfHwgYnVja2V0TmFtZS5sZW5ndGggPiA2Mykge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdCdWNrZXQgbmFtZSBtdXN0IGJlIGF0IGxlYXN0IDMgYW5kIG5vIG1vcmUgdGhhbiA2MyBjaGFyYWN0ZXJzJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ2hhcmFjdGVyIHNldCB2YWxpZGF0aW9uXG4gICAgY29uc3QgaWxsZWdhbENoYXJzZXRSZWdFeCA9IC9bXmEtejAtOS1dLztcbiAgICBjb25zdCBhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeCA9IC9bYS16MC05XS87XG5cbiAgICBjb25zdCBpbGxlZ2FsQ2hhck1hdGNoID0gYnVja2V0TmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdCdWNrZXQgbmFtZSBtdXN0IG9ubHkgY29udGFpbiBsb3dlcmNhc2UgY2hhcmFjdGVycywgbnVtYmVycywgYW5kIGh5cGhlbnMgKC0pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QoYnVja2V0TmFtZS5jaGFyQXQoMCkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ0J1Y2tldCBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6IDApJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KGJ1Y2tldE5hbWUuY2hhckF0KGJ1Y2tldE5hbWUubGVuZ3RoIC0gMSkpXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYEJ1Y2tldCBuYW1lIG11c3QgZW5kIHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAke1xuICAgICAgICAgIGJ1Y2tldE5hbWUubGVuZ3RoIC0gMVxuICAgICAgICB9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBTMyB0YWJsZSBidWNrZXQgbmFtZSAodmFsdWU6ICR7YnVja2V0TmFtZX0pJHtFT0x9JHtlcnJvcnMuam9pbihFT0wpfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSBnaXZlbiB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFByb3BlcnR5IGlzIG5vdCB2YWxpZC5cbiAgICogQHBhcmFtIHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0YWJsZSBidWNrZXRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbChcbiAgICB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbD86IFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsLFxuICApOiB2b2lkIHtcbiAgICAvLyBTa2lwIHZhbGlkYXRpb24gaWYgcHJvcGVydHkgaXMgbm90IGRlZmluZWRcbiAgICBpZiAoIXVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBub25jdXJyZW50RGF5cywgc3RhdHVzLCB1bnJlZmVyZW5jZWREYXlzIH0gPSB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbDtcblxuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmIChub25jdXJyZW50RGF5cyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChub25jdXJyZW50RGF5cyA8IDEpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goJ25vbmN1cnJlbnREYXlzIG11c3QgYmUgYXQgbGVhc3QgMSBkYXknKTtcbiAgICAgIH1cbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihub25jdXJyZW50RGF5cykpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goJ25vbmN1cnJlbnREYXlzIG11c3QgYmUgYSB3aG9sZSBudW1iZXInKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodW5yZWZlcmVuY2VkRGF5cyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh1bnJlZmVyZW5jZWREYXlzIDwgMSkge1xuICAgICAgICBlcnJvcnMucHVzaCgndW5yZWZlcmVuY2VkRGF5cyBtdXN0IGJlIGF0IGxlYXN0IDEgZGF5Jyk7XG4gICAgICB9XG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIobm9uY3VycmVudERheXMpKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKCd1bnJlZmVyZW5jZWREYXlzIG11c3QgYmUgYSB3aG9sZSBudW1iZXInKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhbGxvd2VkU3RhdHVzID0gWydFbmFibGVkJywgJ0Rpc2FibGVkJ107XG4gICAgaWYgKHN0YXR1cyAhPSB1bmRlZmluZWQgJiYgIWFsbG93ZWRTdGF0dXMuaW5jbHVkZXMoc3RhdHVzKSkge1xuICAgICAgZXJyb3JzLnB1c2goJ3N0YXR1cyBtdXN0IGJlIG9uZSBvZiBcXCdFbmFibGVkXFwnIG9yIFxcJ0Rpc2FibGVkXFwnJyk7XG4gICAgfVxuXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsUHJvcGVydHl9KSR7RU9MfSR7ZXJyb3JzLmpvaW4oRU9MKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgQ2ZuVGFibGVCdWNrZXQgTDEgcmVzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBzM3RhYmxlcy5DZm5UYWJsZUJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHBvbGljeSBmb3IgdGhpcyB0YWJsZUJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldFBvbGljeT86IFRhYmxlQnVja2V0UG9saWN5O1xuXG4gIHB1YmxpYyByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZUJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnRhYmxlQnVja2V0TmFtZSxcbiAgICB9KTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgVGFibGVCdWNrZXQudmFsaWRhdGVUYWJsZUJ1Y2tldE5hbWUocHJvcHMudGFibGVCdWNrZXROYW1lKTtcbiAgICBUYWJsZUJ1Y2tldC52YWxpZGF0ZVVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKTtcbiAgICBjb25zdCB7IGJ1Y2tldEVuY3J5cHRpb24sIGVuY3J5cHRpb25LZXkgfSA9IHRoaXMucGFyc2VFbmNyeXB0aW9uKHByb3BzKTtcbiAgICB0aGlzLmVuY3J5cHRpb25LZXkgPSBlbmNyeXB0aW9uS2V5O1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBzM3RhYmxlcy5DZm5UYWJsZUJ1Y2tldCh0aGlzLCBpZCwge1xuICAgICAgdGFibGVCdWNrZXROYW1lOiBwcm9wcy50YWJsZUJ1Y2tldE5hbWUsXG4gICAgICB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbDoge1xuICAgICAgICAuLi5wcm9wcy51bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCxcbiAgICAgICAgbm9uY3VycmVudERheXM6IHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsPy5ub25jdXJyZW50RGF5cyxcbiAgICAgICAgdW5yZWZlcmVuY2VkRGF5czogcHJvcHMudW5yZWZlcmVuY2VkRmlsZVJlbW92YWw/LnVucmVmZXJlbmNlZERheXMsXG4gICAgICB9LFxuICAgICAgZW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IGJ1Y2tldEVuY3J5cHRpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgdGFibGVCdWNrZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UucmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChhcm4pIG9mIHRoaXMgdGFibGUgYnVja2V0XG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCB0YWJsZUJ1Y2tldEFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmF0dHJUYWJsZUJ1Y2tldEFybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXAga2V5IHByb3BlcnRpZXMgYW5kIHJldHVybiB0aGUgQnVja2V0IGVuY3J5cHRpb24gcHJvcGVydHkgZnJvbSB0aGVcbiAgICogdXNlcidzIGNvbmZpZ3VyYXRpb24sIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHRhYmxlOlxuICAgKlxuICAgKiB8IHByb3BzLmVuY3J5cHRpb24gfCBwcm9wcy5lbmNyeXB0aW9uS2V5IHwgYnVja2V0RW5jcnlwdGlvbiAocmV0dXJuIHZhbHVlKSB8IGVuY3J5cHRpb25LZXkgKHJldHVybiB2YWx1ZSkgIHxcbiAgICogfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gICAqIHwgdW5kZWZpbmVkICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IHVuZGVmaW5lZCAgICAgICAgfCBrICAgICAgICAgICAgICAgICAgIHwgYXdzOmttcyAgICAgICAgICAgICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBLTVMgICAgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICB8IGF3czprbXMgICAgICAgICAgICAgICAgICAgICAgICAgfCBuZXcga2V5IChhbGxvdyBtYWludGVuYW5jZSBTUCl8XG4gICAqIHwgS01TICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgfCBhd3M6a21zICAgICAgICAgICAgICAgICAgICAgICAgIHwgayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IFMzX01BTkFHRUQgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgIHwgQUVTMjU2ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBTM19NQU5BR0VEICAgICAgIHwgayAgICAgICAgICAgICAgICAgICB8IEVSUk9SISAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFUlJPUiEgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAqL1xuICBwcml2YXRlIHBhcnNlRW5jcnlwdGlvbihwcm9wczogVGFibGVCdWNrZXRQcm9wcyk6IHtcbiAgICBidWNrZXRFbmNyeXB0aW9uPzogczN0YWJsZXMuQ2ZuVGFibGVCdWNrZXQuRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eTtcbiAgICBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG4gIH0ge1xuICAgIGNvbnN0IGVuY3J5cHRpb25UeXBlID0gcHJvcHMuZW5jcnlwdGlvbjtcbiAgICBsZXQga2V5ID0gcHJvcHMuZW5jcnlwdGlvbktleTtcblxuICAgIGlmIChlbmNyeXB0aW9uVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICByZXR1cm4geyBidWNrZXRFbmNyeXB0aW9uOiB1bmRlZmluZWQsIGVuY3J5cHRpb25LZXk6IHVuZGVmaW5lZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAgICBrbXNLZXlBcm46IGtleS5rZXlBcm4sXG4gICAgICAgICAgICBzc2VBbGdvcml0aG06IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5LTVMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmNyeXB0aW9uS2V5OiBrZXksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVuY3J5cHRpb25UeXBlID09PSBUYWJsZUJ1Y2tldEVuY3J5cHRpb24uS01TKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICBrZXkgPSBuZXcga21zLktleSh0aGlzLCAnS2V5Jywge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQ3JlYXRlZCBieSAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICAgICAgZW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFsbG93VGFibGVzTWFpbnRlbmFuY2VBY2Nlc3NUb0tleShrZXksIHByb3BzLnRhYmxlQnVja2V0TmFtZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAga21zS2V5QXJuOiBrZXkua2V5QXJuLFxuICAgICAgICAgIHNzZUFsZ29yaXRobTogVGFibGVCdWNrZXRFbmNyeXB0aW9uLktNUyxcbiAgICAgICAgfSxcbiAgICAgICAgZW5jcnlwdGlvbktleToga2V5LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoZW5jcnlwdGlvblR5cGUgPT09IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VEKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgICAgICAgIHNzZUFsZ29yaXRobTogVGFibGVCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcignRXhwZWN0ZWQgZW5jcnlwdGlvbiA9IGBLTVNgIHdpdGggdXNlciBwcm92aWRlZCBlbmNyeXB0aW9uIGtleScpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoYFVua25vd24gZW5jcnlwdGlvbiBjb25maWd1cmF0aW9uIGRldGVjdGVkOiAke3Byb3BzLmVuY3J5cHRpb259IHdpdGgga2V5ICR7cHJvcHMuZW5jcnlwdGlvbktleX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd2xpc3QgUzMgVGFibGVzIE1haW50ZW5hbmNlIHRvIGFjY2VzcyB0aGlzIHRhYmxlIGJ1Y2tldCdzIGVuY3J5cHRpb24ga2V5XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLWttcy1wZXJtaXNzaW9ucy5odG1sXG4gICAqIEBwYXJhbSBlbmNyeXB0aW9uS2V5IFRoZSBrZXkgdG8gcHJvdmlkZSBhY2Nlc3MgdG9cbiAgICovXG4gIHByaXZhdGUgYWxsb3dUYWJsZXNNYWludGVuYW5jZUFjY2Vzc1RvS2V5KGVuY3J5cHRpb25LZXk6IGttcy5JS2V5LCB0YWJsZUJ1Y2tldE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMuc3RhY2sucmVnaW9uO1xuICAgIGNvbnN0IGFjY291bnQgPSB0aGlzLnN0YWNrLmFjY291bnQ7XG4gICAgY29uc3QgcGFydGl0aW9uID0gdGhpcy5zdGFjay5wYXJ0aXRpb247XG5cbiAgICBlbmNyeXB0aW9uS2V5LmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgc2lkOiAnQWxsb3dTM1RhYmxlc01haW50ZW5hbmNlQWNjZXNzJyxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIHByaW5jaXBhbHM6IFtcbiAgICAgICAgbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdtYWludGVuYW5jZS5zM3RhYmxlcy5hbWF6b25hd3MuY29tJyksXG4gICAgICBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAna21zOkdlbmVyYXRlRGF0YUtleScsXG4gICAgICAgICdrbXM6RGVjcnlwdCcsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nTGlrZToge1xuICAgICAgICAgICdrbXM6RW5jcnlwdGlvbkNvbnRleHQ6YXdzOnMzOmFybic6IGBhcm46JHtwYXJ0aXRpb259OnMzdGFibGVzOiR7cmVnaW9ufToke2FjY291bnR9OmJ1Y2tldC8ke3RhYmxlQnVja2V0TmFtZX0vKmAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pKTtcbiAgfVxufVxuXG4iXX0=
|
|
469
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFibGUtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUF5QjtBQUN6QiwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLHFEQUFxRDtBQUVyRCwyQ0FBNEU7QUFDNUUsNEVBQXVFO0FBQ3ZFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUsdUNBQXVDO0FBQ3ZDLCtEQUEwRDtBQUMxRCxpQ0FBdUQ7QUEwSHZEOztHQUVHO0FBQ0gsSUFBWSw2QkFVWDtBQVZELFdBQVksNkJBQTZCO0lBQ3ZDOztPQUVHO0lBQ0gsb0RBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxzREFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcsNkJBQTZCLDZDQUE3Qiw2QkFBNkIsUUFVeEM7QUFFRDs7R0FFRztBQUNILElBQVkscUJBV1g7QUFYRCxXQUFZLHFCQUFxQjtJQUMvQjs7O09BR0c7SUFDSCx3Q0FBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCw4Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBWFcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFXaEM7QUFFRCxNQUFlLGVBQWdCLFNBQVEsZUFBUTtJQW9CN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQkc7SUFDSSxtQkFBbUIsQ0FDeEIsU0FBOEI7UUFFOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSx1Q0FBaUIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO2dCQUNwRSxXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsaUJBQWlCLENB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TSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDeEIsVUFBVSxFQUFFO29CQUNWLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLG9DQUFvQyxDQUFDO2lCQUMvRDtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AscUJBQXFCO29CQUNyQixhQUFhO2lCQUNkO2dCQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDaEIsVUFBVSxFQUFFO29CQUNWLFVBQVUsRUFBRTt3QkFDVixrQ0FBa0MsRUFBRSxPQUFPLFNBQVMsYUFBYSxNQUFNLElBQUksT0FBTyxXQUFXLGVBQWUsSUFBSTtxQkFDakg7aUJBQ0Y7YUFDRixDQUFDLENBQUMsQ0FBQztTQUNMOztZQXBUVSx1REFBVzs7Ozs7QUFBWCxrQ0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVPTCB9IGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIHMzdGFibGVzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM3RhYmxlcyc7XG5pbXBvcnQgdHlwZSB7IElSZXNvdXJjZSwgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgbWVtb2l6ZWRHZXR0ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBwZXJtcyBmcm9tICcuL3Blcm1pc3Npb25zJztcbmltcG9ydCB7IFRhYmxlQnVja2V0UG9saWN5IH0gZnJvbSAnLi90YWJsZS1idWNrZXQtcG9saWN5JztcbmltcG9ydCB7IHZhbGlkYXRlVGFibGVCdWNrZXRBdHRyaWJ1dGVzIH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgZGVmaW5pdGlvbiBmb3IgUzMgVGFibGUgQnVja2V0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUJ1Y2tldCBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudElkIGNvbnRhaW5pbmcgdGhlIHRhYmxlIGJ1Y2tldC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBjb250YWluaW5nIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgS01TIGVuY3J5cHRpb24ga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgcmVzb3VyY2UgcG9saWN5IGZvciBhIHByaW5jaXBhbCAoaS5lLlxuICAgKiBhY2NvdW50L3JvbGUvc2VydmljZSkgdG8gcGVyZm9ybSBhY3Rpb25zIG9uIHRoaXMgdGFibGUgYnVja2V0IGFuZC9vciBpdHNcbiAgICogdGFibGVzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgbWF5IG9yIG1heSBub3QgYmUgYWRkZWQgdG8gdGhlIHBvbGljeS5cbiAgICogRm9yIGV4YW1wbGUsIHdoZW4gYW4gYElUYWJsZUJ1Y2tldGAgaXMgY3JlYXRlZCBmcm9tIGFuIGV4aXN0aW5nIHRhYmxlIGJ1Y2tldCxcbiAgICogaXQncyBub3QgcG9zc2libGUgdG8gdGVsbCB3aGV0aGVyIHRoZSBidWNrZXQgYWxyZWFkeSBoYXMgYSBwb2xpY3lcbiAgICogYXR0YWNoZWQsIGxldCBhbG9uZSB0byByZS11c2UgdGhhdCBwb2xpY3kgdG8gYWRkIG1vcmUgc3RhdGVtZW50cyB0byBpdC5cbiAgICogU28gaXQncyBzYWZlc3QgdG8gZG8gbm90aGluZyBpbiB0aGVzZSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgYnVja2V0J3NcbiAgICogcG9saWN5LlxuICAgKiBAcmV0dXJucyBtZXRhZGF0YSBhYm91dCB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgbWV0aG9kLiBJZiB0aGUgcG9saWN5XG4gICAqIHdhcyBub3QgYWRkZWQsIHRoZSB2YWx1ZSBvZiBgc3RhdGVtZW50QWRkZWRgIHdpbGwgYmUgYGZhbHNlYC4gWW91XG4gICAqIHNob3VsZCBhbHdheXMgY2hlY2sgdGhpcyB2YWx1ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3BlcmF0aW9uIHdhc1xuICAgKiBhY3R1YWxseSBjYXJyaWVkIG91dC4gT3RoZXJ3aXNlLCBzeW50aGVzaXMgYW5kIGRlcGxveSB3aWxsIHRlcm1pbmF0ZVxuICAgKiBzaWxlbnRseSwgd2hpY2ggbWF5IGJlIGNvbmZ1c2luZy5cbiAgICovXG4gIGFkZFRvUmVzb3VyY2VQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgZm9yIHRoaXMgdGFibGUgYnVja2V0IGFuZCBpdHMgdGFibGVzXG4gICAqIHRvIGFuIElBTSBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIGVuY3J5cHRpb24gaXMgdXNlZCwgcGVybWlzc2lvbiB0byB1c2UgdGhlIGtleSB0byBkZWNyeXB0IHRoZSBjb250ZW50c1xuICAgKiBvZiB0aGUgYnVja2V0IHdpbGwgYWxzbyBiZSBncmFudGVkIHRvIHRoZSBzYW1lIHByaW5jaXBhbC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWwgdG8gYWxsb3cgcmVhZCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcGFyYW0gdGFibGVJZCBBbGxvdyB0aGUgcGVybWlzc2lvbnMgdG8gYWxsIHRhYmxlcyB1c2luZyAnKicgb3IgdG8gc2luZ2xlIHRhYmxlIGJ5IGl0cyB1bmlxdWUgSUQuXG4gICAqL1xuICBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlLCB0YWJsZUlkOiBzdHJpbmcpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHdyaXRlIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQgaXRzIHRhYmxlc1xuICAgKiB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZW5jcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSB0YWJsZUlkIEFsbG93IHRoZSBwZXJtaXNzaW9ucyB0byBhbGwgdGFibGVzIHVzaW5nICcqJyBvciB0byBzaW5nbGUgdGFibGUgYnkgaXRzIHVuaXF1ZSBJRC5cbiAgICovXG4gIGdyYW50V3JpdGUoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlLCB0YWJsZUlkOiBzdHJpbmcpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQgaXRzIHRhYmxlc1xuICAgKiB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZW5jcnlwdC9kZWNyeXB0IHRoZSBjb250ZW50c1xuICAgKiBvZiB0aGUgYnVja2V0IHdpbGwgYWxzbyBiZSBncmFudGVkIHRvIHRoZSBzYW1lIHByaW5jaXBhbC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWwgdG8gYWxsb3cgcmVhZCBhbmQgd3JpdGUgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIHRhYmxlSWQgQWxsb3cgdGhlIHBlcm1pc3Npb25zIHRvIGFsbCB0YWJsZXMgdXNpbmcgJyonIG9yIHRvIHNpbmdsZSB0YWJsZSBieSBpdHMgdW5pcXVlIElELlxuICAgKi9cbiAgZ3JhbnRSZWFkV3JpdGUoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlLCB0YWJsZUlkOiBzdHJpbmcpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogVW5yZWZlcmVuY2VkIGZpbGUgcmVtb3ZhbCBzZXR0aW5ncyBmb3IgdGhlIHRoaXMgdGFibGUgYnVja2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsIHtcbiAgLyoqXG4gICAqIER1cmF0aW9uIGFmdGVyIHdoaWNoIG5vbmN1cnJlbnQgZmlsZXMgc2hvdWxkIGJlIHJlbW92ZWQuIFNob3VsZCBiZSBhdCBsZWFzdCBvbmUgZGF5LlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlLWJ1Y2tldHMtbWFpbnRlbmFuY2UuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNlZSBTMyBUYWJsZXMgVXNlciBHdWlkZVxuICAgKi9cbiAgcmVhZG9ubHkgbm9uY3VycmVudERheXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFN0YXR1cyBvZiB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLiBDYW4gYmUgRW5hYmxlZCBvciBEaXNhYmxlZC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1cz86IFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsU3RhdHVzO1xuXG4gIC8qKlxuICAgKiBEdXJhdGlvbiBhZnRlciB3aGljaCB1bnJlZmVyZW5jZWQgZmlsZXMgc2hvdWxkIGJlIHJlbW92ZWQuIFNob3VsZCBiZSBhdCBsZWFzdCBvbmUgZGF5LlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlLWJ1Y2tldHMtbWFpbnRlbmFuY2UuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNlZSBTMyBUYWJsZXMgVXNlciBHdWlkZVxuICAgKi9cbiAgcmVhZG9ubHkgdW5yZWZlcmVuY2VkRGF5cz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDb250cm9scyB3aGV0aGVyIHVucmVmZXJlbmNlZCBmaWxlIHJlbW92YWwgaXMgZW5hYmxlZCBvciBkaXNhYmxlZC5cbiAqL1xuZXhwb3J0IGVudW0gVW5yZWZlcmVuY2VkRmlsZVJlbW92YWxTdGF0dXMge1xuICAvKipcbiAgICogRW5hYmxlIHVucmVmZXJlbmNlZCBmaWxlIHJlbW92YWwuXG4gICAqL1xuICBFTkFCTEVEID0gJ0VuYWJsZWQnLFxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHVucmVmZXJlbmNlZCBmaWxlIHJlbW92YWwuXG4gICAqL1xuICBESVNBQkxFRCA9ICdEaXNhYmxlZCcsXG59XG5cbi8qKlxuICogQ29udHJvbHMgU2VydmVyIFNpZGUgRW5jcnlwdGlvbiAoU1NFKSBmb3IgdGhpcyBUYWJsZUJ1Y2tldC5cbiAqL1xuZXhwb3J0IGVudW0gVGFibGVCdWNrZXRFbmNyeXB0aW9uIHtcbiAgLyoqXG4gICAqIFVzZSBhIGN1c3RvbWVyIGRlZmluZWQgS01TIGtleSBmb3IgZW5jcnlwdGlvblxuICAgKiBJZiBgZW5jcnlwdGlvbktleWAgaXMgc3BlY2lmaWVkLCB0aGlzIGtleSB3aWxsIGJlIHVzZWQsIG90aGVyd2lzZSwgb25lIHdpbGwgYmUgZGVmaW5lZC5cbiAgICovXG4gIEtNUyA9ICdhd3M6a21zJyxcblxuICAvKipcbiAgICogVXNlIFMzIG1hbmFnZWQgZW5jcnlwdGlvbiBrZXlzIHdpdGggQUVTMjU2IGVuY3J5cHRpb25cbiAgICovXG4gIFMzX01BTkFHRUQgPSAnQUVTMjU2Jyxcbn1cblxuYWJzdHJhY3QgY2xhc3MgVGFibGVCdWNrZXRCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJVGFibGVCdWNrZXQge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVCdWNrZXRBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgcG9saWN5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgYGF1dG9DcmVhdGVQb2xpY3lgIGlzIHRydWUsIGEgYFRhYmxlQnVja2V0UG9saWN5YCB3aWxsIGJlIGNyZWF0ZWQgdXBvbiB0aGVcbiAgICogZmlyc3QgY2FsbCB0byBhZGRUb1Jlc291cmNlUG9saWN5KHMpLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRhYmxlQnVja2V0UG9saWN5PzogVGFibGVCdWNrZXRQb2xpY3k7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHRhYmxlIGJ1Y2tldCByZXNvdXJjZSBwb2xpY3kgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uXG4gICAqIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1Jlc291cmNlUG9saWN5YC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIGNvbnRlbnRzLiBVc2UgYHRhYmxlQnVja2V0QXJuYCBhbmQgYGFybkZvck9iamVjdHMoa2V5cylgIHRvIG9idGFpbiBBUk5zIGZvclxuICAgKiB0aGlzIGJ1Y2tldCBvciBvYmplY3RzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgbWF5IG9yIG1heSBub3QgYmUgYWRkZWQgdG8gdGhlIHBvbGljeS5cbiAgICogRm9yIGV4YW1wbGUsIHdoZW4gYW4gYElUYWJsZUJ1Y2tldGAgaXMgY3JlYXRlZCBmcm9tIGFuIGV4aXN0aW5nIHRhYmxlIGJ1Y2tldCxcbiAgICogaXQncyBub3QgcG9zc2libGUgdG8gdGVsbCB3aGV0aGVyIHRoZSBidWNrZXQgYWxyZWFkeSBoYXMgYSBwb2xpY3lcbiAgICogYXR0YWNoZWQsIGxldCBhbG9uZSB0byByZS11c2UgdGhhdCBwb2xpY3kgdG8gYWRkIG1vcmUgc3RhdGVtZW50cyB0byBpdC5cbiAgICogU28gaXQncyBzYWZlc3QgdG8gZG8gbm90aGluZyBpbiB0aGVzZSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgYnVja2V0J3NcbiAgICogcG9saWN5LlxuICAgKiBAcmV0dXJucyBtZXRhZGF0YSBhYm91dCB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgbWV0aG9kLiBJZiB0aGUgcG9saWN5XG4gICAqIHdhcyBub3QgYWRkZWQsIHRoZSB2YWx1ZSBvZiBgc3RhdGVtZW50QWRkZWRgIHdpbGwgYmUgYGZhbHNlYC4gWW91XG4gICAqIHNob3VsZCBhbHdheXMgY2hlY2sgdGhpcyB2YWx1ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3BlcmF0aW9uIHdhc1xuICAgKiBhY3R1YWxseSBjYXJyaWVkIG91dC4gT3RoZXJ3aXNlLCBzeW50aGVzaXMgYW5kIGRlcGxveSB3aWxsIHRlcm1pbmF0ZVxuICAgKiBzaWxlbnRseSwgd2hpY2ggbWF5IGJlIGNvbmZ1c2luZy5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy50YWJsZUJ1Y2tldFBvbGljeSAmJiB0aGlzLmF1dG9DcmVhdGVQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVCdWNrZXRQb2xpY3kgPSBuZXcgVGFibGVCdWNrZXRQb2xpY3kodGhpcywgJ0RlZmF1bHRQb2xpY3knLCB7XG4gICAgICAgIHRhYmxlQnVja2V0OiB0aGlzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFibGVCdWNrZXRQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVCdWNrZXRQb2xpY3kuZG9jdW1lbnQuYWRkU3RhdGVtZW50cyhzdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHsgc3RhdGVtZW50QWRkZWQ6IHRydWUsIHBvbGljeURlcGVuZGFibGU6IHRoaXMudGFibGVCdWNrZXRQb2xpY3kgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlLCB0YWJsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfQlVDS0VUX1JFQURfQUNDRVNTLFxuICAgICAgcGVybXMuS0VZX1JFQURfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUJ1Y2tldEFybixcbiAgICAgIHRoaXMuZ2V0VGFibGVBcm4odGFibGVJZCksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9XUklURV9BQ0NFU1MsXG4gICAgICBwZXJtcy5LRVlfUkVBRF9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQnVja2V0QXJuLFxuICAgICAgdGhpcy5nZXRUYWJsZUFybih0YWJsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9SRUFEX1dSSVRFX0FDQ0VTUyxcbiAgICAgIHBlcm1zLktFWV9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQnVja2V0QXJuLFxuICAgICAgdGhpcy5nZXRUYWJsZUFybih0YWJsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyB0aGUgZ2l2ZW4gczN0YWJsZXMgcGVybWlzc2lvbnMgdG8gdGhlIHByb3ZpZGVkIHByaW5jaXBhbFxuICAgKiBAcmV0dXJucyBHcmFudCBvYmplY3RcbiAgICovXG4gIHByaXZhdGUgZ3JhbnQoXG4gICAgZ3JhbnRlZTogaWFtLklHcmFudGFibGUsXG4gICAgdGFibGVCdWNrZXRBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICBrZXlBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICByZXNvdXJjZUFybjogc3RyaW5nLFxuICAgIC4uLm90aGVyUmVzb3VyY2VBcm5zOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdKSB7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gW3Jlc291cmNlQXJuLCAuLi5vdGhlclJlc291cmNlQXJuc10uZmlsdGVyKGFybiA9PiBhcm4gIT0gdW5kZWZpbmVkKTtcblxuICAgIGNvbnN0IGdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogdGFibGVCdWNrZXRBY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiByZXNvdXJjZXMsXG4gICAgICByZXNvdXJjZTogdGhpcyxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmVuY3J5cHRpb25LZXkgJiYga2V5QWN0aW9ucyAmJiBrZXlBY3Rpb25zLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5lbmNyeXB0aW9uS2V5LmdyYW50KGdyYW50ZWUsIC4uLmtleUFjdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBncmFudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFibGVBcm4odGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRhYmxlSWQgPyBgJHt0aGlzLnRhYmxlQnVja2V0QXJufS90YWJsZS8ke3RhYmxlSWR9YCA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNvbnN0cnVjdGluZyBhIFRhYmxlQnVja2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVCdWNrZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBTMyBUYWJsZUJ1Y2tldC5cbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLWJ1Y2tldHMtbmFtaW5nLmh0bWwjdGFibGUtYnVja2V0cy1uYW1pbmctcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsIHNldHRpbmdzIGZvciB0aGUgUzMgVGFibGVCdWNrZXQuXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXMzdGFibGVzLXRhYmxlYnVja2V0LXVucmVmZXJlbmNlZGZpbGVyZW1vdmFsLmh0bWxcbiAgICogQGRlZmF1bHQgRW5hYmxlZCB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGUtYnVja2V0cy1tYWludGVuYW5jZS5odG1sXG4gICAqL1xuICByZWFkb25seSB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbD86IFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsO1xuXG4gIC8qKlxuICAgKiBBV1MgcmVnaW9uIHRoYXQgdGhlIHRhYmxlIGJ1Y2tldCBleGlzdHMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaXQncyBhc3N1bWVkIHRoZSBidWNrZXQgaXMgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHRoZSBzY29wZSBpdCdzIGJlaW5nIGltcG9ydGVkIGludG9cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQVdTIEFjY291bnQgSUQgb2YgdGhlIHRhYmxlIGJ1Y2tldCBvd25lci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBpdCdzIGFzc3VtZWQgdGhlIGJ1Y2tldCBiZWxvbmdzIHRvIHRoZSBzYW1lIGFjY291bnQgYXMgdGhlIHNjb3BlIGl0J3MgYmVpbmcgaW1wb3J0ZWQgaW50b1xuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGtpbmQgb2Ygc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0byBhcHBseSB0byB0aGlzIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgeW91IGNob29zZSBLTVMsIHlvdSBjYW4gc3BlY2lmeSBhIEtNUyBrZXkgdmlhIGBlbmNyeXB0aW9uS2V5YC4gSWZcbiAgICogZW5jcnlwdGlvbiBrZXkgaXMgbm90IHNwZWNpZmllZCwgYSBrZXkgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYEtNU2AgaWYgYGVuY3J5cHRpb25LZXlgIGlzIHNwZWNpZmllZCwgb3IgYFMzX01BTkFHRURgIG90aGVyd2lzZS5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBUYWJsZUJ1Y2tldEVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIEV4dGVybmFsIEtNUyBrZXkgdG8gdXNlIGZvciBidWNrZXQgZW5jcnlwdGlvbi5cbiAgICpcbiAgICogVGhlIGBlbmNyeXB0aW9uYCBwcm9wZXJ0eSBtdXN0IGJlIGVpdGhlciBub3Qgc3BlY2lmaWVkIG9yIHNldCB0byBgS01TYC5cbiAgICogQW4gZXJyb3Igd2lsbCBiZSBlbWl0dGVkIGlmIGBlbmNyeXB0aW9uYCBpcyBzZXQgdG8gYFMzX01BTkFHRURgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIGBlbmNyeXB0aW9uYCBpcyBzZXQgdG8gYEtNU2AgYW5kIHRoaXMgcHJvcGVydHkgaXMgdW5kZWZpbmVkLFxuICAgKiBhIG5ldyBLTVMga2V5IHdpbGwgYmUgY3JlYXRlZCBhbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYnVja2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGF0IGhhcHBlbnMgdG8gdGhpcyB0YWJsZSBidWNrZXQgaXQgaXQgc3RvcGVkIGJlaW5nIG1hbmFnZWQgYnkgY2xvdWRmb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSB0YWJsZSBidWNrZXQgb3V0c2lkZSB0aGlzIHN0YWNrXG4gKlxuICogVGhlIHRhYmxlQnVja2V0TmFtZSwgcmVnaW9uLCBhbmQgYWNjb3VudCBjYW4gYmUgcHJvdmlkZWQgZXhwbGljaXRseVxuICogb3Igd2lsbCBiZSBpbmZlcnJlZCBmcm9tIHRoZSB0YWJsZUJ1Y2tldEFyblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQnVja2V0QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBBV1MgcmVnaW9uIHRoaXMgdGFibGUgYnVja2V0IGV4aXN0cyBpblxuICAgKiBAZGVmYXVsdCByZWdpb24gaW5mZXJyZWQgZnJvbSBzY29wZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudElkIGNvbnRhaW5pbmcgdGhpcyB0YWJsZSBidWNrZXRcbiAgICogQGRlZmF1bHQgYWNjb3VudCBpbmZlcnJlZCBmcm9tIHNjb3BlXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgYnVja2V0IG5hbWUsIHVuaXF1ZSBwZXIgcmVnaW9uXG4gICAqIEBkZWZhdWx0IHRhYmxlQnVja2V0TmFtZSBpbmZlcnJlZCBmcm9tIGFyblxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVCdWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgYnVja2V0J3MgQVJOLlxuICAgKiBAZGVmYXVsdCB0YWJsZUJ1Y2tldEFybiBjb25zdHJ1Y3RlZCBmcm9tIHJlZ2lvbiwgYWNjb3VudCBhbmQgdGFibGVCdWNrZXROYW1lIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVCdWNrZXRBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIEtNUyBlbmNyeXB0aW9uIGtleSBhc3NvY2lhdGVkIHdpdGggdGhpcyBidWNrZXQuXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG59XG5cbi8qKlxuICogQW4gUzMgdGFibGUgYnVja2V0IHdpdGggaGVscGVycyBmb3IgYXNzb2NpYXRlZCByZXNvdXJjZSBwb2xpY2llc1xuICpcbiAqIFRoaXMgYnVja2V0IG1heSBub3QgeWV0IGhhdmUgYWxsIGZlYXR1cmVzIHRoYXQgZXhwb3NlZCBieSB0aGUgdW5kZXJseWluZyBDZm5UYWJsZUJ1Y2tldC5cbiAqXG4gKiBAc3RhdGVmdWxcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzYW1wbGVUYWJsZUJ1Y2tldCA9IG5ldyBUYWJsZUJ1Y2tldChzY29wZSwgJ0V4YW1wbGVUYWJsZUJ1Y2tldCcsIHtcbiAqICAgdGFibGVCdWNrZXROYW1lOiAnZXhhbXBsZS1idWNrZXQnLFxuICogICAvLyBPcHRpb25hbCBmaWVsZHM6XG4gKiAgIHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsOiB7XG4gKiAgICAgbm9uY3VycmVudERheXM6IDEyMyxcbiAqICAgICBzdGF0dXM6IFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsU3RhdHVzLkVOQUJMRUQsXG4gKiAgICAgdW5yZWZlcmVuY2VkRGF5czogMTIzLFxuICogICB9LFxuICogfSk7XG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBUYWJsZUJ1Y2tldCBleHRlbmRzIFRhYmxlQnVja2V0QmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLXMzdGFibGVzLWFscGhhLlRhYmxlQnVja2V0JztcblxuICAvKipcbiAgICogRGVmaW5lcyBhIFRhYmxlQnVja2V0IGNvbnN0cnVjdCBmcm9tIGFuIGV4dGVybmFsIHRhYmxlIGJ1Y2tldCBBUk4uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApLlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWUuXG4gICAqIEBwYXJhbSB0YWJsZUJ1Y2tldEFybiBBbWF6b24gUmVzb3VyY2UgTmFtZSAoYXJuKSBvZiB0aGUgdGFibGUgYnVja2V0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UYWJsZUJ1Y2tldEFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCB0YWJsZUJ1Y2tldEFybjogc3RyaW5nKTogSVRhYmxlQnVja2V0IHtcbiAgICByZXR1cm4gVGFibGVCdWNrZXQuZnJvbVRhYmxlQnVja2V0QXR0cmlidXRlcyhzY29wZSwgaWQsIHsgdGFibGVCdWNrZXRBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lcyBhIFRhYmxlQnVja2V0IGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgdGFibGUgYnVja2V0LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lLlxuICAgKiBAcGFyYW0gYXR0cnMgQSBgVGFibGVCdWNrZXRBdHRyaWJ1dGVzYCBvYmplY3QuIENhbiBiZSBtYW51YWxseSBjcmVhdGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVGFibGVCdWNrZXRBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogVGFibGVCdWNrZXRBdHRyaWJ1dGVzLFxuICApOiBJVGFibGVCdWNrZXQge1xuICAgIGNvbnN0IHsgdGFibGVCdWNrZXROYW1lLCByZWdpb24sIGFjY291bnQsIHRhYmxlQnVja2V0QXJuIH0gPSB2YWxpZGF0ZVRhYmxlQnVja2V0QXR0cmlidXRlcyhzY29wZSwgYXR0cnMpO1xuICAgIFRhYmxlQnVja2V0LnZhbGlkYXRlVGFibGVCdWNrZXROYW1lKHRhYmxlQnVja2V0TmFtZSk7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgVGFibGVCdWNrZXRCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWUgPSB0YWJsZUJ1Y2tldE5hbWUhO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlQnVja2V0QXJuID0gdGFibGVCdWNrZXRBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVCdWNrZXRQb2xpY3k/OiBUYWJsZUJ1Y2tldFBvbGljeTtcbiAgICAgIHB1YmxpYyByZWFkb25seSByZWdpb24gPSByZWdpb247XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYWNjb3VudCA9IGFjY291bnQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5ID0gYXR0cnMuZW5jcnlwdGlvbktleTtcbiAgICAgIHByb3RlY3RlZCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAgIC8qKlxuICAgICAgICogRXhwb3J0cyB0aGlzIGJ1Y2tldCBmcm9tIHRoZSBzdGFjay5cbiAgICAgICAqL1xuICAgICAgcHVibGljIGV4cG9ydCgpIHtcbiAgICAgICAgcmV0dXJuIGF0dHJzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCwge1xuICAgICAgYWNjb3VudCxcbiAgICAgIHJlZ2lvbixcbiAgICAgIHBoeXNpY2FsTmFtZTogdGFibGVCdWNrZXROYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRocm93cyBhbiBleGNlcHRpb24gaWYgdGhlIGdpdmVuIHRhYmxlIGJ1Y2tldCBuYW1lIGlzIG5vdCB2YWxpZC5cbiAgICpcbiAgICogQHBhcmFtIGJ1Y2tldE5hbWUgbmFtZSBvZiB0aGUgYnVja2V0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZVRhYmxlQnVja2V0TmFtZShcbiAgICBidWNrZXROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIGlmIChidWNrZXROYW1lID09IHVuZGVmaW5lZCB8fCBUb2tlbi5pc1VucmVzb2x2ZWQoYnVja2V0TmFtZSkpIHtcbiAgICAgIC8vIHRoZSBuYW1lIGlzIGEgbGF0ZS1ib3VuZCB2YWx1ZSwgbm90IGEgZGVmaW5lZCBzdHJpbmcsIHNvIHNraXAgdmFsaWRhdGlvblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIExlbmd0aCB2YWxpZGF0aW9uXG4gICAgaWYgKGJ1Y2tldE5hbWUubGVuZ3RoIDwgMyB8fCBidWNrZXROYW1lLmxlbmd0aCA+IDYzKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ0J1Y2tldCBuYW1lIG11c3QgYmUgYXQgbGVhc3QgMyBhbmQgbm8gbW9yZSB0aGFuIDYzIGNoYXJhY3RlcnMnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDaGFyYWN0ZXIgc2V0IHZhbGlkYXRpb25cbiAgICBjb25zdCBpbGxlZ2FsQ2hhcnNldFJlZ0V4ID0gL1teYS16MC05LV0vO1xuICAgIGNvbnN0IGFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4ID0gL1thLXowLTldLztcblxuICAgIGNvbnN0IGlsbGVnYWxDaGFyTWF0Y2ggPSBidWNrZXROYW1lLm1hdGNoKGlsbGVnYWxDaGFyc2V0UmVnRXgpO1xuICAgIGlmIChpbGxlZ2FsQ2hhck1hdGNoKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ0J1Y2tldCBuYW1lIG11c3Qgb25seSBjb250YWluIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCBudW1iZXJzLCBhbmQgaHlwaGVucyAoLSknICtcbiAgICAgICAgICBgIChvZmZzZXQ6ICR7aWxsZWdhbENoYXJNYXRjaC5pbmRleH0pYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRWRnZSBjaGFyYWN0ZXIgdmFsaWRhdGlvblxuICAgIGlmICghYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXgudGVzdChidWNrZXROYW1lLmNoYXJBdCgwKSkpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnQnVja2V0IG5hbWUgbXVzdCBzdGFydCB3aXRoIGEgbG93ZXJjYXNlIGxldHRlciBvciBudW1iZXIgKG9mZnNldDogMCknLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QoYnVja2V0TmFtZS5jaGFyQXQoYnVja2V0TmFtZS5sZW5ndGggLSAxKSlcbiAgICApIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICBgQnVja2V0IG5hbWUgbXVzdCBlbmQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6ICR7XG4gICAgICAgICAgYnVja2V0TmFtZS5sZW5ndGggLSAxXG4gICAgICAgIH0pYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICdJbnZhbGlkVGFibGVCdWNrZXROYW1lJyxcbiAgICAgICAgYEludmFsaWQgUzMgdGFibGUgYnVja2V0IG5hbWUgKHZhbHVlOiAke2J1Y2tldE5hbWV9KSR7RU9MfSR7ZXJyb3JzLmpvaW4oRU9MKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gdW5yZWZlcmVuY2VkRmlsZVJlbW92YWxQcm9wZXJ0eSBpcyBub3QgdmFsaWQuXG4gICAqIEBwYXJhbSB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCBjb25maWd1cmF0aW9uIGZvciB0aGUgdGFibGUgYnVja2V0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlVW5yZWZlcmVuY2VkRmlsZVJlbW92YWwoXG4gICAgdW5yZWZlcmVuY2VkRmlsZVJlbW92YWw/OiBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCxcbiAgKTogdm9pZCB7XG4gICAgLy8gU2tpcCB2YWxpZGF0aW9uIGlmIHByb3BlcnR5IGlzIG5vdCBkZWZpbmVkXG4gICAgaWYgKCF1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbm9uY3VycmVudERheXMsIHN0YXR1cywgdW5yZWZlcmVuY2VkRGF5cyB9ID0gdW5yZWZlcmVuY2VkRmlsZVJlbW92YWw7XG5cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAobm9uY3VycmVudERheXMgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAobm9uY3VycmVudERheXMgPCAxKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKCdub25jdXJyZW50RGF5cyBtdXN0IGJlIGF0IGxlYXN0IDEgZGF5Jyk7XG4gICAgICB9XG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIobm9uY3VycmVudERheXMpKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKCdub25jdXJyZW50RGF5cyBtdXN0IGJlIGEgd2hvbGUgbnVtYmVyJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVucmVmZXJlbmNlZERheXMgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodW5yZWZlcmVuY2VkRGF5cyA8IDEpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goJ3VucmVmZXJlbmNlZERheXMgbXVzdCBiZSBhdCBsZWFzdCAxIGRheScpO1xuICAgICAgfVxuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKG5vbmN1cnJlbnREYXlzKSkge1xuICAgICAgICBlcnJvcnMucHVzaCgndW5yZWZlcmVuY2VkRGF5cyBtdXN0IGJlIGEgd2hvbGUgbnVtYmVyJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYWxsb3dlZFN0YXR1cyA9IFsnRW5hYmxlZCcsICdEaXNhYmxlZCddO1xuICAgIGlmIChzdGF0dXMgIT0gdW5kZWZpbmVkICYmICFhbGxvd2VkU3RhdHVzLmluY2x1ZGVzKHN0YXR1cykpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdzdGF0dXMgbXVzdCBiZSBvbmUgb2YgXFwnRW5hYmxlZFxcJyBvciBcXCdEaXNhYmxlZFxcJycpO1xuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAnSW52YWxpZFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsUHJvcGVydHknLFxuICAgICAgICBgSW52YWxpZCBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFByb3BlcnR5fSkke0VPTH0ke2Vycm9ycy5qb2luKEVPTCl9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIENmblRhYmxlQnVja2V0IEwxIHJlc291cmNlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogczN0YWJsZXMuQ2ZuVGFibGVCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBwb2xpY3kgZm9yIHRoaXMgdGFibGVCdWNrZXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVCdWNrZXRQb2xpY3k/OiBUYWJsZUJ1Y2tldFBvbGljeTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5IHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVGFibGVCdWNrZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy50YWJsZUJ1Y2tldE5hbWUsXG4gICAgfSk7XG5cbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIFRhYmxlQnVja2V0LnZhbGlkYXRlVGFibGVCdWNrZXROYW1lKHByb3BzLnRhYmxlQnVja2V0TmFtZSk7XG4gICAgVGFibGVCdWNrZXQudmFsaWRhdGVVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbChwcm9wcy51bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCk7XG4gICAgY29uc3QgeyBidWNrZXRFbmNyeXB0aW9uLCBlbmNyeXB0aW9uS2V5IH0gPSB0aGlzLnBhcnNlRW5jcnlwdGlvbihwcm9wcyk7XG4gICAgdGhpcy5lbmNyeXB0aW9uS2V5ID0gZW5jcnlwdGlvbktleTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgczN0YWJsZXMuQ2ZuVGFibGVCdWNrZXQodGhpcywgaWQsIHtcbiAgICAgIHRhYmxlQnVja2V0TmFtZTogcHJvcHMudGFibGVCdWNrZXROYW1lLFxuICAgICAgdW5yZWZlcmVuY2VkRmlsZVJlbW92YWw6IHtcbiAgICAgICAgLi4ucHJvcHMudW5yZWZlcmVuY2VkRmlsZVJlbW92YWwsXG4gICAgICAgIG5vbmN1cnJlbnREYXlzOiBwcm9wcy51bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbD8ubm9uY3VycmVudERheXMsXG4gICAgICAgIHVucmVmZXJlbmNlZERheXM6IHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsPy51bnJlZmVyZW5jZWREYXlzLFxuICAgICAgfSxcbiAgICAgIGVuY3J5cHRpb25Db25maWd1cmF0aW9uOiBidWNrZXRFbmNyeXB0aW9uLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNvdXJjZS5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyB0YWJsZSBidWNrZXRcbiAgICovXG4gIEBtZW1vaXplZEdldHRlclxuICBwdWJsaWMgZ2V0IHRhYmxlQnVja2V0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZSh0aGlzLnJlc291cmNlLnJlZik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoYXJuKSBvZiB0aGlzIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgdGFibGVCdWNrZXRBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hdHRyVGFibGVCdWNrZXRBcm47XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVwIGtleSBwcm9wZXJ0aWVzIGFuZCByZXR1cm4gdGhlIEJ1Y2tldCBlbmNyeXB0aW9uIHByb3BlcnR5IGZyb20gdGhlXG4gICAqIHVzZXIncyBjb25maWd1cmF0aW9uLCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyB0YWJsZTpcbiAgICpcbiAgICogfCBwcm9wcy5lbmNyeXB0aW9uIHwgcHJvcHMuZW5jcnlwdGlvbktleSB8IGJ1Y2tldEVuY3J5cHRpb24gKHJldHVybiB2YWx1ZSkgfCBlbmNyeXB0aW9uS2V5IChyZXR1cm4gdmFsdWUpICB8XG4gICAqIHwtLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICAgKiB8IHVuZGVmaW5lZCAgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCB1bmRlZmluZWQgICAgICAgIHwgayAgICAgICAgICAgICAgICAgICB8IGF3czprbXMgICAgICAgICAgICAgICAgICAgICAgICAgfCBrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAqIHwgS01TICAgICAgICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgfCBhd3M6a21zICAgICAgICAgICAgICAgICAgICAgICAgIHwgbmV3IGtleSAoYWxsb3cgbWFpbnRlbmFuY2UgU1ApfFxuICAgKiB8IEtNUyAgICAgICAgICAgICAgfCBrICAgICAgICAgICAgICAgICAgIHwgYXdzOmttcyAgICAgICAgICAgICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBTM19NQU5BR0VEICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICB8IEFFUzI1NiAgICAgICAgICAgICAgICAgICAgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgICAgICAgICAgICB8XG4gICAqIHwgUzNfTUFOQUdFRCAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgfCBFUlJPUiEgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRVJST1IhICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZUVuY3J5cHRpb24ocHJvcHM6IFRhYmxlQnVja2V0UHJvcHMpOiB7XG4gICAgYnVja2V0RW5jcnlwdGlvbj86IHMzdGFibGVzLkNmblRhYmxlQnVja2V0LkVuY3J5cHRpb25Db25maWd1cmF0aW9uUHJvcGVydHk7XG4gICAgZW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuICB9IHtcbiAgICBjb25zdCBlbmNyeXB0aW9uVHlwZSA9IHByb3BzLmVuY3J5cHRpb247XG4gICAgbGV0IGtleSA9IHByb3BzLmVuY3J5cHRpb25LZXk7XG5cbiAgICBpZiAoZW5jcnlwdGlvblR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCBrZXkgPT09IHVuZGVmaW5lZCApIHtcbiAgICAgICAgcmV0dXJuIHsgYnVja2V0RW5jcnlwdGlvbjogdW5kZWZpbmVkLCBlbmNyeXB0aW9uS2V5OiB1bmRlZmluZWQgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYnVja2V0RW5jcnlwdGlvbjoge1xuICAgICAgICAgICAga21zS2V5QXJuOiBrZXkua2V5QXJuLFxuICAgICAgICAgICAgc3NlQWxnb3JpdGhtOiBUYWJsZUJ1Y2tldEVuY3J5cHRpb24uS01TLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZW5jcnlwdGlvbktleToga2V5LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlbmNyeXB0aW9uVHlwZSA9PT0gVGFibGVCdWNrZXRFbmNyeXB0aW9uLktNUykge1xuICAgICAgaWYgKCBrZXkgPT09IHVuZGVmaW5lZCApIHtcbiAgICAgICAga2V5ID0gbmV3IGttcy5LZXkodGhpcywgJ0tleScsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYENyZWF0ZWQgYnkgJHt0aGlzLm5vZGUucGF0aH1gLFxuICAgICAgICAgIGVuYWJsZUtleVJvdGF0aW9uOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hbGxvd1RhYmxlc01haW50ZW5hbmNlQWNjZXNzVG9LZXkoa2V5LCBwcm9wcy50YWJsZUJ1Y2tldE5hbWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYnVja2V0RW5jcnlwdGlvbjoge1xuICAgICAgICAgIGttc0tleUFybjoga2V5LmtleUFybixcbiAgICAgICAgICBzc2VBbGdvcml0aG06IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5LTVMsXG4gICAgICAgIH0sXG4gICAgICAgIGVuY3J5cHRpb25LZXk6IGtleSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGVuY3J5cHRpb25UeXBlID09PSBUYWJsZUJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCkge1xuICAgICAgaWYgKCBrZXkgPT09IHVuZGVmaW5lZCApIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAgICBzc2VBbGdvcml0aG06IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoJ0ludmFsaWRFbmNyeXB0aW9uQ29uZmlndXJhdGlvbicsICdFeHBlY3RlZCBlbmNyeXB0aW9uID0gYEtNU2Agd2l0aCB1c2VyIHByb3ZpZGVkIGVuY3J5cHRpb24ga2V5Jyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcignVW5rbm93bkVuY3J5cHRpb25Db25maWd1cmF0aW9uJywgYFVua25vd24gZW5jcnlwdGlvbiBjb25maWd1cmF0aW9uIGRldGVjdGVkOiAke3Byb3BzLmVuY3J5cHRpb259IHdpdGgga2V5ICR7cHJvcHMuZW5jcnlwdGlvbktleX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd2xpc3QgUzMgVGFibGVzIE1haW50ZW5hbmNlIHRvIGFjY2VzcyB0aGlzIHRhYmxlIGJ1Y2tldCdzIGVuY3J5cHRpb24ga2V5XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLWttcy1wZXJtaXNzaW9ucy5odG1sXG4gICAqIEBwYXJhbSBlbmNyeXB0aW9uS2V5IFRoZSBrZXkgdG8gcHJvdmlkZSBhY2Nlc3MgdG9cbiAgICovXG4gIHByaXZhdGUgYWxsb3dUYWJsZXNNYWludGVuYW5jZUFjY2Vzc1RvS2V5KGVuY3J5cHRpb25LZXk6IGttcy5JS2V5LCB0YWJsZUJ1Y2tldE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMuc3RhY2sucmVnaW9uO1xuICAgIGNvbnN0IGFjY291bnQgPSB0aGlzLnN0YWNrLmFjY291bnQ7XG4gICAgY29uc3QgcGFydGl0aW9uID0gdGhpcy5zdGFjay5wYXJ0aXRpb247XG5cbiAgICBlbmNyeXB0aW9uS2V5LmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgc2lkOiAnQWxsb3dTM1RhYmxlc01haW50ZW5hbmNlQWNjZXNzJyxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIHByaW5jaXBhbHM6IFtcbiAgICAgICAgbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdtYWludGVuYW5jZS5zM3RhYmxlcy5hbWF6b25hd3MuY29tJyksXG4gICAgICBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAna21zOkdlbmVyYXRlRGF0YUtleScsXG4gICAgICAgICdrbXM6RGVjcnlwdCcsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nTGlrZToge1xuICAgICAgICAgICdrbXM6RW5jcnlwdGlvbkNvbnRleHQ6YXdzOnMzOmFybic6IGBhcm46JHtwYXJ0aXRpb259OnMzdGFibGVzOiR7cmVnaW9ufToke2FjY291bnR9OmJ1Y2tldC8ke3RhYmxlQnVja2V0TmFtZX0vKmAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pKTtcbiAgfVxufVxuXG4iXX0=
|
package/lib/table-policy.js
CHANGED
|
@@ -62,7 +62,7 @@ let TablePolicy = (() => {
|
|
|
62
62
|
TablePolicy = _classThis = _classDescriptor.value;
|
|
63
63
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
64
64
|
}
|
|
65
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TablePolicy", version: "2.
|
|
65
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TablePolicy", version: "2.244.0-alpha.0" };
|
|
66
66
|
/** Uniquely identifies this class. */
|
|
67
67
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TablePolicy';
|
|
68
68
|
/**
|
package/lib/table.js
CHANGED
|
@@ -135,7 +135,7 @@ let Table = (() => {
|
|
|
135
135
|
Table = _classThis = _classDescriptor.value;
|
|
136
136
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
137
137
|
}
|
|
138
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Table", version: "2.
|
|
138
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Table", version: "2.244.0-alpha.0" };
|
|
139
139
|
/** Uniquely identifies this class. */
|
|
140
140
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.Table';
|
|
141
141
|
/**
|
|
@@ -205,7 +205,7 @@ let Table = (() => {
|
|
|
205
205
|
errors.push(`Table name must end with a lowercase letter or number (offset: ${tableName.length - 1})`);
|
|
206
206
|
}
|
|
207
207
|
if (errors.length > 0) {
|
|
208
|
-
throw new core_1.UnscopedValidationError(`Invalid S3 table name (value: ${tableName})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
208
|
+
throw new core_1.UnscopedValidationError('InvalidTableName', `Invalid S3 table name (value: ${tableName})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
/**
|
|
@@ -267,4 +267,4 @@ let Table = (() => {
|
|
|
267
267
|
return Table = _classThis;
|
|
268
268
|
})();
|
|
269
269
|
exports.Table = Table;
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBeUI7QUFDekIsMkNBQTJDO0FBQzNDLDJEQUFvRTtBQUtwRSwyQ0FJMEI7QUFDMUIsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUcxRSx1Q0FBdUM7QUFtRnZDOztHQUVHO0FBQ0gsTUFBZSxTQUFVLFNBQVEsZUFBUTtJQWtCaEMsbUJBQW1CLENBQ3hCLFNBQThCO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSw2QkFBYyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7Z0JBQzNELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsY0FBYyxFQUFFLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7YUFDM0MsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEUsQ0FBQztRQUVELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7S0FDbEM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxRQUF3QjtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsUUFBUSxFQUNSLEtBQUssQ0FBQyxpQkFBaUIsRUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FDZCxDQUFDO0tBQ0g7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxR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QUM7U0FDekM7O1lBaEpVLHVEQUFLOzs7OztBQUFMLHNCQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU9MIH0gZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuVGFibGUsIENmblRhYmxlUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzdGFibGVzJztcbmltcG9ydCB0eXBlIHtcbiAgSVJlc291cmNlLFxuICBSZW1vdmFsUG9saWN5LFxufSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7XG4gIFJlc291cmNlLFxuICBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcixcbiAgVG9rZW4sXG59IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSU5hbWVzcGFjZSB9IGZyb20gJy4vbmFtZXNwYWNlJztcbmltcG9ydCAqIGFzIHBlcm1zIGZyb20gJy4vcGVybWlzc2lvbnMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gUzMgVGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhpcyB0YWJsZS5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyB0YWJsZS5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50SWQgY29udGFpbmluZyB0aGlzIHRhYmxlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIGNvbnRhaW5pbmcgdGhpcyB0YWJsZS5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSByZXNvdXJjZSBwb2xpY3kgZm9yIGEgcHJpbmNpcGFsIChpLmUuXG4gICAqIGFjY291bnQvcm9sZS9zZXJ2aWNlKSB0byBwZXJmb3JtIGFjdGlvbnMgb24gdGhpcyB0YWJsZS5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZSBwb2xpY3kgc3RhdGVtZW50IG1heSBvciBtYXkgbm90IGJlIGFkZGVkIHRvIHRoZSBwb2xpY3kuXG4gICAqIEZvciBleGFtcGxlLCB3aGVuIGFuIGBJVGFibGVgIGlzIGNyZWF0ZWQgZnJvbSBhbiBleGlzdGluZyB0YWJsZSxcbiAgICogaXQncyBub3QgcG9zc2libGUgdG8gdGVsbCB3aGV0aGVyIHRoZSB0YWJsZSBhbHJlYWR5IGhhcyBhIHBvbGljeVxuICAgKiBhdHRhY2hlZCwgbGV0IGFsb25lIHRvIHJlLXVzZSB0aGF0IHBvbGljeSB0byBhZGQgbW9yZSBzdGF0ZW1lbnRzIHRvIGl0LlxuICAgKiBTbyBpdCdzIHNhZmVzdCB0byBkbyBub3RoaW5nIGluIHRoZXNlIGNhc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gc3RhdGVtZW50IHRoZSBwb2xpY3kgc3RhdGVtZW50IHRvIGJlIGFkZGVkIHRvIHRoZSB0YWJsZSdzXG4gICAqIHBvbGljeS5cbiAgICogQHJldHVybnMgbWV0YWRhdGEgYWJvdXQgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIG1ldGhvZC4gSWYgdGhlIHBvbGljeVxuICAgKiB3YXMgbm90IGFkZGVkLCB0aGUgdmFsdWUgb2YgYHN0YXRlbWVudEFkZGVkYCB3aWxsIGJlIGBmYWxzZWAuIFlvdVxuICAgKiBzaG91bGQgYWx3YXlzIGNoZWNrIHRoaXMgdmFsdWUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG9wZXJhdGlvbiB3YXNcbiAgICogYWN0dWFsbHkgY2FycmllZCBvdXQuIE90aGVyd2lzZSwgc3ludGhlc2lzIGFuZCBkZXBsb3kgd2lsbCB0ZXJtaW5hdGVcbiAgICogc2lsZW50bHksIHdoaWNoIG1heSBiZSBjb25mdXNpbmcuXG4gICAqL1xuICBhZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIHRvIGFuIElBTSBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIHRoZSBwYXJlbnQgVGFibGVCdWNrZXQgb2YgdGhpcyB0YWJsZSBoYXMgZW5jcnlwdGlvbixcbiAgICogeW91IHNob3VsZCBncmFudCBrbXM6RGVjcnlwdCBwZXJtaXNzaW9uIHRvIHVzZSB0aGlzIGtleSB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIGdyYW50UmVhZChpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHdyaXRlIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIHRvIGFuIElBTSBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIHRoZSBwYXJlbnQgVGFibGVCdWNrZXQgb2YgdGhpcyB0YWJsZSBoYXMgZW5jcnlwdGlvbixcbiAgICogeW91IHNob3VsZCBncmFudCBrbXM6R2VuZXJhdGVEYXRhS2V5IGFuZCBrbXM6RGVjcnlwdCBwZXJtaXNzaW9uXG4gICAqIHRvIHVzZSB0aGlzIGtleSB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBhbmQgd3JpdGUgcGVybWlzc2lvbnMgZm9yIHRoaXMgdGFibGUgdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgdGhlIHBhcmVudCBUYWJsZUJ1Y2tldCBvZiB0aGlzIHRhYmxlIGhhcyBlbmNyeXB0aW9uLFxuICAgKiB5b3Ugc2hvdWxkIGdyYW50IGttczpHZW5lcmF0ZURhdGFLZXkgYW5kIGttczpEZWNyeXB0IHBlcm1pc3Npb25cbiAgICogdG8gdXNlIHRoaXMga2V5IHRvIHRoZSBzYW1lIHByaW5jaXBhbC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWwgdG8gYWxsb3cgcmVhZCBhbmQgd3JpdGUgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBUYWJsZSBpbXBsZW1lbnRhdGlvbnMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIFRhYmxlQmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVRhYmxlIHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHBvbGljeSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWJsZS5cbiAgICpcbiAgICogSWYgYGF1dG9DcmVhdGVQb2xpY3lgIGlzIHRydWUsIGEgYFRhYmxlUG9saWN5YCB3aWxsIGJlIGNyZWF0ZWQgdXBvbiB0aGVcbiAgICogZmlyc3QgY2FsbCB0byBhZGRUb1Jlc291cmNlUG9saWN5KHMpLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRhYmxlUG9saWN5PzogQ2ZuVGFibGVQb2xpY3k7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHRhYmxlIHJlc291cmNlIHBvbGljeSBzaG91bGQgYXV0b21hdGljYWxseSBjcmVhdGVkIHVwb25cbiAgICogdGhlIGZpcnN0IGNhbGwgdG8gYGFkZFRvUmVzb3VyY2VQb2xpY3lgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW47XG5cbiAgcHVibGljIGFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50LFxuICApOiBpYW0uQWRkVG9SZXNvdXJjZVBvbGljeVJlc3VsdCB7XG4gICAgaWYgKCF0aGlzLnRhYmxlUG9saWN5ICYmIHRoaXMuYXV0b0NyZWF0ZVBvbGljeSkge1xuICAgICAgdGhpcy50YWJsZVBvbGljeSA9IG5ldyBDZm5UYWJsZVBvbGljeSh0aGlzLCAnRGVmYXVsdFBvbGljeScsIHtcbiAgICAgICAgdGFibGVBcm46IHRoaXMudGFibGVBcm4sXG4gICAgICAgIHJlc291cmNlUG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHt9KSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRhYmxlUG9saWN5KSB7XG4gICAgICB0aGlzLnRhYmxlUG9saWN5LnJlc291cmNlUG9saWN5LmFkZFN0YXRlbWVudHMoc3RhdGVtZW50KTtcbiAgICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiB0cnVlLCBwb2xpY3lEZXBlbmRhYmxlOiB0aGlzLnRhYmxlUG9saWN5IH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhdGVtZW50QWRkZWQ6IGZhbHNlIH07XG4gIH1cblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSkge1xuICAgIHJldHVybiB0aGlzLmdyYW50KFxuICAgICAgaWRlbnRpdHksXG4gICAgICBwZXJtcy5UQUJMRV9SRUFEX0FDQ0VTUyxcbiAgICAgIHRoaXMudGFibGVBcm4sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSkge1xuICAgIHJldHVybiB0aGlzLmdyYW50KFxuICAgICAgaWRlbnRpdHksXG4gICAgICBwZXJtcy5UQUJMRV9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQXJuLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkV3JpdGUoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX1JFQURfV1JJVEVfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUFybixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyB0aGUgZ2l2ZW4gczN0YWJsZXMgcGVybWlzc2lvbnMgdG8gdGhlIHByb3ZpZGVkIHByaW5jaXBhbFxuICAgKiBAcmV0dXJucyBHcmFudCBvYmplY3RcbiAgICovXG4gIHByaXZhdGUgZ3JhbnQoXG4gICAgZ3JhbnRlZTogaWFtLklHcmFudGFibGUsXG4gICAgdGFibGVBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICByZXNvdXJjZUFybjogc3RyaW5nLFxuICAgIC4uLm90aGVyUmVzb3VyY2VBcm5zOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdKSB7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gW3Jlc291cmNlQXJuLCAuLi5vdGhlclJlc291cmNlQXJuc10uZmlsdGVyKGFybiA9PiBhcm4gIT0gdW5kZWZpbmVkKTtcblxuICAgIGNvbnN0IGdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogdGFibGVBY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiByZXNvdXJjZXMsXG4gICAgICByZXNvdXJjZTogdGhpcyxcbiAgICB9KTtcblxuICAgIHJldHVybiBncmFudDtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgbmV3IFMzIFRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIHRhYmxlLCB1bmlxdWUgd2l0aGluIHRoZSBuYW1lc3BhY2VcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZSB1bmRlciB3aGljaCB0aGlzIHRhYmxlIGlzIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZTogSU5hbWVzcGFjZTtcbiAgLyoqXG4gICAqIEZvcm1hdCBvZiB0aGlzIHRhYmxlLiBDdXJyZW50bHksIHRoZSBvbmx5IHN1cHBvcnRlZCB2YWx1ZSBpcyBPcGVuVGFibGVGb3JtYXQuSUNFQkVSRy5cbiAgICovXG4gIHJlYWRvbmx5IG9wZW5UYWJsZUZvcm1hdDogT3BlblRhYmxlRm9ybWF0O1xuICAvKipcbiAgICogU2V0dGluZ3MgZ292ZXJuaW5nIHRoZSBDb21wYWN0aW9uIG1haW50ZW5hbmNlIGFjdGlvbi5cbiAgICogQGRlZmF1bHQgQW1hem9uIFMzIHNlbGVjdHMgdGhlIGJlc3QgY29tcGFjdGlvbiBzdHJhdGVneSBiYXNlZCBvbiB5b3VyIHRhYmxlIHNvcnQgb3JkZXIuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLW1haW50ZW5hbmNlLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBhY3Rpb24/OiBDb21wYWN0aW9uUHJvcGVydHk7XG4gIC8qKlxuICAgKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBtZXRhZGF0YSBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAgICogQGRlZmF1bHQgdGFibGUgaXMgY3JlYXRlZCB3aXRob3V0IGFueSBtZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgaWNlYmVyZ01ldGFkYXRhPzogSWNlYmVyZ01ldGFkYXRhUHJvcGVydHk7XG4gIC8qKlxuICAgKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzbmFwc2hvdCBtYW5hZ2VtZW50IHNldHRpbmdzIGZvciBhbiBJY2ViZXJnIHRhYmxlLlxuICAgKiBAZGVmYXVsdCBlbmFibGVkOiBNaW5pbXVtU25hcHNob3RzIGlzIDEgYnkgZGVmYXVsdCBhbmQgTWF4aW11bVNuYXBzaG90QWdlIGlzIDEyMCBob3VycyBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgc25hcHNob3RNYW5hZ2VtZW50PzogU25hcHNob3RNYW5hZ2VtZW50UHJvcGVydHk7XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGF0IGhhcHBlbnMgdG8gdGhpcyB0YWJsZSBpdCBpdCBzdG9wZWQgYmVpbmcgbWFuYWdlZCBieSBjbG91ZGZvcm1hdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgUkVUQUlOXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbiAgLyoqXG4gICAqIElmIHRydWUsIGluZGljYXRlcyB0aGF0IHlvdSBkb24ndCB3YW50IHRvIHNwZWNpZnkgYSBzY2hlbWEgZm9yIHRoZSB0YWJsZS5cbiAgICpcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyBtdXR1YWxseSBleGNsdXNpdmUgdG8gJ0ljZWJlcmdNZXRhZGF0YScuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB3aXRob3V0TWV0YWRhdGE/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFN1cHBvcnRlZCBvcGVuIHRhYmxlIGZvcm1hdHMuXG4gKi9cbmV4cG9ydCBlbnVtIE9wZW5UYWJsZUZvcm1hdCB7XG4gIC8qKlxuICAgKiBBcGFjaGUgSWNlYmVyZyB0YWJsZSBmb3JtYXQuXG4gICAqL1xuICBJQ0VCRVJHID0gJ0lDRUJFUkcnLFxufVxuXG4vKipcbiAqIFNldHRpbmdzIGdvdmVybmluZyB0aGUgQ29tcGFjdGlvbiBtYWludGVuYW5jZSBhY3Rpb24uXG4gKlxuICogQGRlZmF1bHQgLSBObyBjb21wYWN0aW9uIHNldHRpbmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFjdGlvblByb3BlcnR5IHtcbiAgLyoqXG4gICAqIFN0YXR1cyBvZiB0aGUgY29tcGFjdGlvbiBtYWludGVuYW5jZSBhY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM6IFN0YXR1cztcbiAgLyoqXG4gICAqIFRhcmdldCBmaWxlIHNpemUgaW4gbWVnYWJ5dGVzIGZvciBjb21wYWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0RmlsZVNpemVNYjogbnVtYmVyO1xufVxuXG4vKipcbiAqIFN0YXR1cyB2YWx1ZXMgZm9yIG1haW50ZW5hbmNlIGFjdGlvbnMuXG4gKi9cbmV4cG9ydCBlbnVtIFN0YXR1cyB7XG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIG1haW50ZW5hbmNlIGFjdGlvbi5cbiAgICovXG4gIEVOQUJMRUQgPSAnZW5hYmxlZCcsXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBtYWludGVuYW5jZSBhY3Rpb24uXG4gICAqL1xuICBESVNBQkxFRCA9ICdkaXNhYmxlZCcsXG59XG5cbi8qKlxuICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgbWV0YWRhdGEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtczN0YWJsZXMtdGFibGUtaWNlYmVyZ21ldGFkYXRhLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY2ViZXJnTWV0YWRhdGFQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzY2hlbWEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zM3RhYmxlcy10YWJsZS1pY2ViZXJnbWV0YWRhdGEuaHRtbCNjZm4tczN0YWJsZXMtdGFibGUtaWNlYmVyZ21ldGFkYXRhLWljZWJlcmdzY2hlbWFcbiAgICovXG4gIHJlYWRvbmx5IGljZWJlcmdTY2hlbWE6IEljZWJlcmdTY2hlbWFQcm9wZXJ0eTtcbn1cblxuLyoqXG4gKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzY2hlbWEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1NjaGVtYVByb3BlcnR5IHtcbiAgLyoqXG4gICAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIHNjaGVtYSBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVtYUZpZWxkTGlzdDogU2NoZW1hRmllbGRQcm9wZXJ0eVtdO1xufVxuXG4vKipcbiAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgYSBzY2hlbWEgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hRmllbGRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmllbGQuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgQm9vbGVhbiB2YWx1ZSB0aGF0IHNwZWNpZmllcyB3aGV0aGVyIHZhbHVlcyBhcmUgcmVxdWlyZWQgZm9yIGVhY2ggcm93IGluIHRoaXMgZmllbGQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgaXMgYGZhbHNlYCBhbmQgbnVsbCB2YWx1ZXMgYXJlIGFsbG93ZWQgaW4gdGhlIGZpZWxkLiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlIGZpZWxkIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZmllbGQgdHlwZS5cbiAgICpcbiAgICogUzMgVGFibGVzIHN1cHBvcnRzIGFsbCBBcGFjaGUgSWNlYmVyZyBwcmltaXRpdmUgdHlwZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIFtBcGFjaGUgSWNlYmVyZyBkb2N1bWVudGF0aW9uXShodHRwczovL2ljZWJlcmcuYXBhY2hlLm9yZy9zcGVjLyNwcmltaXRpdmUtdHlwZXMpLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIHNuYXBzaG90IG1hbmFnZW1lbnQgc2V0dGluZ3MgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gKlxuICogQSBzbmFwc2hvdCBpcyBleHBpcmVkIHdoZW4gaXQgZXhjZWVkcyBNaW5TbmFwc2hvdHNUb0tlZXAgYW5kIE1heFNuYXBzaG90QWdlSG91cnMuXG4gKlxuICogQGRlZmF1bHQgLSBObyBzbmFwc2hvdCBtYW5hZ2VtZW50IHNldHRpbmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU25hcHNob3RNYW5hZ2VtZW50UHJvcGVydHkge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gYWdlIG9mIGEgc25hcHNob3QgYmVmb3JlIGl0IGNhbiBiZSBleHBpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG1heGltdW0gYWdlXG4gICAqL1xuICByZWFkb25seSBtYXhTbmFwc2hvdEFnZUhvdXJzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2Ygc25hcHNob3RzIHRvIGtlZXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbWluaW11bSBudW1iZXJcbiAgICovXG4gIHJlYWRvbmx5IG1pblNuYXBzaG90c1RvS2VlcD86IG51bWJlcjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIFNuYXBzaG90TWFuYWdlbWVudCBtYWludGVuYW5jZSBhY3Rpb24gaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb3Qgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBTdGF0dXM7XG59XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSB0YWJsZSBvdXRzaWRlIHRoaXMgc3RhY2tcbiAqXG4gKiBUaGUgdGFibGVOYW1lLCByZWdpb24sIGFuZCBhY2NvdW50IGNhbiBiZSBwcm92aWRlZCBleHBsaWNpdGx5XG4gKiBvciB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhlIHRhYmxlQXJuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhpcyB0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSdzIEFSTi5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gUzMgVGFibGUgd2l0aCBoZWxwZXJzLlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgVGFibGUgZXh0ZW5kcyBUYWJsZUJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1zM3RhYmxlcy1hbHBoYS5UYWJsZSc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZSBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIHRhYmxlLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lLlxuICAgKiBAcGFyYW0gYXR0cnMgQSBgVGFibGVBdHRyaWJ1dGVzYCBvYmplY3QgY29udGFpbmluZyB0aGUgdGFibGUgbmFtZSBhbmQgQVJOLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVGFibGVBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogVGFibGVBdHRyaWJ1dGVzLFxuICApOiBJVGFibGUge1xuICAgIGNvbnN0IHRhYmxlQXJuID0gYXR0cnMudGFibGVBcm47XG4gICAgVGFibGUudmFsaWRhdGVUYWJsZU5hbWUoYXR0cnMudGFibGVOYW1lKTtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFRhYmxlQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVOYW1lID0gYXR0cnMudGFibGVOYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlQXJuID0gdGFibGVBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVQb2xpY3k/OiBDZm5UYWJsZVBvbGljeTtcbiAgICAgIHByb3RlY3RlZCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAgIC8qKlxuICAgICAgICogRXhwb3J0cyB0aGlzICBmcm9tIHRoZSBzdGFjay5cbiAgICAgICAqL1xuICAgICAgcHVibGljIGV4cG9ydCgpIHtcbiAgICAgICAgcmV0dXJuIGF0dHJzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCwge1xuICAgICAgZW52aXJvbm1lbnRGcm9tQXJuOiB0YWJsZUFybixcbiAgICAgIHBoeXNpY2FsTmFtZTogdGFibGVBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlcy1idWNrZXRzLW5hbWluZy5odG1sXG4gICAqIEBwYXJhbSB0YWJsZU5hbWUgTmFtZSBvZiB0aGUgdGFibGVcbiAgICogQHRocm93cyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciBpZiBhbnkgbmFtaW5nIGVycm9ycyBhcmUgZGV0ZWN0ZWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVUYWJsZU5hbWUodGFibGVOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAodGFibGVOYW1lID09IHVuZGVmaW5lZCB8fCBUb2tlbi5pc1VucmVzb2x2ZWQodGFibGVOYW1lKSkge1xuICAgICAgLy8gdGhlIG5hbWUgaXMgYSBsYXRlLWJvdW5kIHZhbHVlLCBub3QgYSBkZWZpbmVkIHN0cmluZywgc28gc2tpcCB2YWxpZGF0aW9uXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gTGVuZ3RoIHZhbGlkYXRpb25cbiAgICBpZiAodGFibGVOYW1lLmxlbmd0aCA8IDEgfHwgdGFibGVOYW1lLmxlbmd0aCA+IDI1NSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdUYWJsZSBuYW1lIG11c3QgYmUgYXQgbGVhc3QgMSBhbmQgbm8gbW9yZSB0aGFuIDI1NSBjaGFyYWN0ZXJzJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ2hhcmFjdGVyIHNldCB2YWxpZGF0aW9uXG4gICAgY29uc3QgaWxsZWdhbENoYXJzZXRSZWdFeCA9IC9bXmEtejAtOV9dLztcbiAgICBjb25zdCBhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeCA9IC9bYS16MC05XS87XG5cbiAgICBjb25zdCBpbGxlZ2FsQ2hhck1hdGNoID0gdGFibGVOYW1lLm1hdGNoKGlsbGVnYWxDaGFyc2V0UmVnRXgpO1xuICAgIGlmIChpbGxlZ2FsQ2hhck1hdGNoKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ1RhYmxlIG5hbWUgbXVzdCBvbmx5IGNvbnRhaW4gbG93ZXJjYXNlIGNoYXJhY3RlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3JlcyAoXyknICtcbiAgICAgICAgICBgIChvZmZzZXQ6ICR7aWxsZWdhbENoYXJNYXRjaC5pbmRleH0pYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRWRnZSBjaGFyYWN0ZXIgdmFsaWRhdGlvblxuICAgIGlmICghYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXgudGVzdCh0YWJsZU5hbWUuY2hhckF0KDApKSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdUYWJsZSBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6IDApJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXgudGVzdCh0YWJsZU5hbWUuY2hhckF0KHRhYmxlTmFtZS5sZW5ndGggLSAxKSkpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICBgVGFibGUgbmFtZSBtdXN0IGVuZCB3aXRoIGEgbG93ZXJjYXNlIGxldHRlciBvciBudW1iZXIgKG9mZnNldDogJHtcbiAgICAgICAgICB0YWJsZU5hbWUubGVuZ3RoIC0gMVxuICAgICAgICB9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBTMyB0YWJsZSBuYW1lICh2YWx1ZTogJHt0YWJsZU5hbWV9KSR7RU9MfSR7ZXJyb3JzLmpvaW4oRU9MKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoYXJuKSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgQ2ZuVGFibGUgTDEgcmVzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNvdXJjZTogQ2ZuVGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgdGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZSBjb250YWluaW5nIHRoaXMgdGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2U6IElOYW1lc3BhY2U7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBwb2xpY3kgZm9yIHRoaXMgdGFibGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVQb2xpY3k/OiBDZm5UYWJsZVBvbGljeTtcblxuICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRhYmxlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHt9KTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgVGFibGUudmFsaWRhdGVUYWJsZU5hbWUocHJvcHMudGFibGVOYW1lKTtcblxuICAgIHRoaXMuX3Jlc291cmNlID0gbmV3IENmblRhYmxlKHRoaXMsIGlkLCB7XG4gICAgICB0YWJsZU5hbWU6IHByb3BzLnRhYmxlTmFtZSxcbiAgICAgIG9wZW5UYWJsZUZvcm1hdDogcHJvcHMub3BlblRhYmxlRm9ybWF0LFxuICAgICAgdGFibGVCdWNrZXRBcm46IHByb3BzLm5hbWVzcGFjZS50YWJsZUJ1Y2tldC50YWJsZUJ1Y2tldEFybixcbiAgICAgIG5hbWVzcGFjZTogcHJvcHMubmFtZXNwYWNlLm5hbWVzcGFjZU5hbWUsXG4gICAgICBjb21wYWN0aW9uOiBwcm9wcy5jb21wYWN0aW9uLFxuICAgICAgaWNlYmVyZ01ldGFkYXRhOiBwcm9wcy5pY2ViZXJnTWV0YWRhdGEsXG4gICAgICBzbmFwc2hvdE1hbmFnZW1lbnQ6IHByb3BzLnNuYXBzaG90TWFuYWdlbWVudCxcbiAgICAgIHdpdGhvdXRNZXRhZGF0YTogcHJvcHMud2l0aG91dE1ldGFkYXRhID8gJ1llcycgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVzcGFjZSA9IHByb3BzLm5hbWVzcGFjZTtcbiAgICB0aGlzLnRhYmxlTmFtZSA9IHByb3BzLnRhYmxlTmFtZTtcbiAgICB0aGlzLnRhYmxlQXJuID0gdGhpcy5fcmVzb3VyY2UuYXR0clRhYmxlQXJuO1xuICAgIHRoaXMuX3Jlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgICB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLm5hbWVzcGFjZSk7XG4gIH1cbn1cbiJdfQ==
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBeUI7QUFDekIsMkNBQTJDO0FBQzNDLDJEQUFvRTtBQUtwRSwyQ0FJMEI7QUFDMUIsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUcxRSx1Q0FBdUM7QUFtRnZDOztHQUVHO0FBQ0gsTUFBZSxTQUFVLFNBQVEsZUFBUTtJQWtCaEMsbUJBQW1CLENBQ3hCLFNBQThCO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSw2QkFBYyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7Z0JBQzNELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsY0FBYyxFQUFFLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7YUFDM0MsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEUsQ0FBQztRQUVELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7S0FDbEM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxRQUF3QjtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsUUFBUSxFQUNSLEtBQUssQ0FBQyxpQkFBaUIsRUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FDZCxDQUFDO0tBQ0g7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxR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LFNBQVMsQ0FBQyxDQUFDO1NBQ3pDOztZQWpKVSx1REFBSzs7Ozs7QUFBTCxzQkFBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVPTCB9IGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENmblRhYmxlLCBDZm5UYWJsZVBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM3RhYmxlcyc7XG5pbXBvcnQgdHlwZSB7XG4gIElSZXNvdXJjZSxcbiAgUmVtb3ZhbFBvbGljeSxcbn0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQge1xuICBSZXNvdXJjZSxcbiAgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IsXG4gIFRva2VuLFxufSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElOYW1lc3BhY2UgfSBmcm9tICcuL25hbWVzcGFjZSc7XG5pbXBvcnQgKiBhcyBwZXJtcyBmcm9tICcuL3Blcm1pc3Npb25zJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFMzIFRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZSBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudElkIGNvbnRhaW5pbmcgdGhpcyB0YWJsZS5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBjb250YWluaW5nIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgcmVzb3VyY2UgcG9saWN5IGZvciBhIHByaW5jaXBhbCAoaS5lLlxuICAgKiBhY2NvdW50L3JvbGUvc2VydmljZSkgdG8gcGVyZm9ybSBhY3Rpb25zIG9uIHRoaXMgdGFibGUuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgcG9saWN5IHN0YXRlbWVudCBtYXkgb3IgbWF5IG5vdCBiZSBhZGRlZCB0byB0aGUgcG9saWN5LlxuICAgKiBGb3IgZXhhbXBsZSwgd2hlbiBhbiBgSVRhYmxlYCBpcyBjcmVhdGVkIGZyb20gYW4gZXhpc3RpbmcgdGFibGUsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgdGFibGUgYWxyZWFkeSBoYXMgYSBwb2xpY3lcbiAgICogYXR0YWNoZWQsIGxldCBhbG9uZSB0byByZS11c2UgdGhhdCBwb2xpY3kgdG8gYWRkIG1vcmUgc3RhdGVtZW50cyB0byBpdC5cbiAgICogU28gaXQncyBzYWZlc3QgdG8gZG8gbm90aGluZyBpbiB0aGVzZSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgdGFibGUnc1xuICAgKiBwb2xpY3kuXG4gICAqIEByZXR1cm5zIG1ldGFkYXRhIGFib3V0IHRoZSBleGVjdXRpb24gb2YgdGhpcyBtZXRob2QuIElmIHRoZSBwb2xpY3lcbiAgICogd2FzIG5vdCBhZGRlZCwgdGhlIHZhbHVlIG9mIGBzdGF0ZW1lbnRBZGRlZGAgd2lsbCBiZSBgZmFsc2VgLiBZb3VcbiAgICogc2hvdWxkIGFsd2F5cyBjaGVjayB0aGlzIHZhbHVlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBvcGVyYXRpb24gd2FzXG4gICAqIGFjdHVhbGx5IGNhcnJpZWQgb3V0LiBPdGhlcndpc2UsIHN5bnRoZXNpcyBhbmQgZGVwbG95IHdpbGwgdGVybWluYXRlXG4gICAqIHNpbGVudGx5LCB3aGljaCBtYXkgYmUgY29uZnVzaW5nLlxuICAgKi9cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQpOiBpYW0uQWRkVG9SZXNvdXJjZVBvbGljeVJlc3VsdDtcblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiB0aGUgcGFyZW50IFRhYmxlQnVja2V0IG9mIHRoaXMgdGFibGUgaGFzIGVuY3J5cHRpb24sXG4gICAqIHlvdSBzaG91bGQgZ3JhbnQga21zOkRlY3J5cHQgcGVybWlzc2lvbiB0byB1c2UgdGhpcyBrZXkgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiB0aGUgcGFyZW50IFRhYmxlQnVja2V0IG9mIHRoaXMgdGFibGUgaGFzIGVuY3J5cHRpb24sXG4gICAqIHlvdSBzaG91bGQgZ3JhbnQga21zOkdlbmVyYXRlRGF0YUtleSBhbmQga21zOkRlY3J5cHQgcGVybWlzc2lvblxuICAgKiB0byB1c2UgdGhpcyBrZXkgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyB3cml0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgZ3JhbnRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIHRvIGFuIElBTSBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIHRoZSBwYXJlbnQgVGFibGVCdWNrZXQgb2YgdGhpcyB0YWJsZSBoYXMgZW5jcnlwdGlvbixcbiAgICogeW91IHNob3VsZCBncmFudCBrbXM6R2VuZXJhdGVEYXRhS2V5IGFuZCBrbXM6RGVjcnlwdCBwZXJtaXNzaW9uXG4gICAqIHRvIHVzZSB0aGlzIGtleSB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFJlYWRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgVGFibGUgaW1wbGVtZW50YXRpb25zLlxuICovXG5hYnN0cmFjdCBjbGFzcyBUYWJsZUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElUYWJsZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBwb2xpY3kgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFibGUuXG4gICAqXG4gICAqIElmIGBhdXRvQ3JlYXRlUG9saWN5YCBpcyB0cnVlLCBhIGBUYWJsZVBvbGljeWAgd2lsbCBiZSBjcmVhdGVkIHVwb24gdGhlXG4gICAqIGZpcnN0IGNhbGwgdG8gYWRkVG9SZXNvdXJjZVBvbGljeShzKS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0YWJsZVBvbGljeT86IENmblRhYmxlUG9saWN5O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSB0YWJsZSByZXNvdXJjZSBwb2xpY3kgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uXG4gICAqIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1Jlc291cmNlUG9saWN5YC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy50YWJsZVBvbGljeSAmJiB0aGlzLmF1dG9DcmVhdGVQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVQb2xpY3kgPSBuZXcgQ2ZuVGFibGVQb2xpY3kodGhpcywgJ0RlZmF1bHRQb2xpY3knLCB7XG4gICAgICAgIHRhYmxlQXJuOiB0aGlzLnRhYmxlQXJuLFxuICAgICAgICByZXNvdXJjZVBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7fSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YWJsZVBvbGljeSkge1xuICAgICAgdGhpcy50YWJsZVBvbGljeS5yZXNvdXJjZVBvbGljeS5hZGRTdGF0ZW1lbnRzKHN0YXRlbWVudCk7XG4gICAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogdHJ1ZSwgcG9saWN5RGVwZW5kYWJsZTogdGhpcy50YWJsZVBvbGljeSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiBmYWxzZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZChpZGVudGl0eTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfUkVBRF9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQXJuLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfV1JJVEVfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUFybixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSkge1xuICAgIHJldHVybiB0aGlzLmdyYW50KFxuICAgICAgaWRlbnRpdHksXG4gICAgICBwZXJtcy5UQUJMRV9SRUFEX1dSSVRFX0FDQ0VTUyxcbiAgICAgIHRoaXMudGFibGVBcm4sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgdGhlIGdpdmVuIHMzdGFibGVzIHBlcm1pc3Npb25zIHRvIHRoZSBwcm92aWRlZCBwcmluY2lwYWxcbiAgICogQHJldHVybnMgR3JhbnQgb2JqZWN0XG4gICAqL1xuICBwcml2YXRlIGdyYW50KFxuICAgIGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLFxuICAgIHRhYmxlQWN0aW9uczogc3RyaW5nW10sXG4gICAgcmVzb3VyY2VBcm46IHN0cmluZyxcbiAgICAuLi5vdGhlclJlc291cmNlQXJuczogKHN0cmluZyB8IHVuZGVmaW5lZClbXSkge1xuICAgIGNvbnN0IHJlc291cmNlcyA9IFtyZXNvdXJjZUFybiwgLi4ub3RoZXJSZXNvdXJjZUFybnNdLmZpbHRlcihhcm4gPT4gYXJuICE9IHVuZGVmaW5lZCk7XG5cbiAgICBjb25zdCBncmFudCA9IGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbE9yUmVzb3VyY2Uoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IHRhYmxlQWN0aW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogcmVzb3VyY2VzLFxuICAgICAgcmVzb3VyY2U6IHRoaXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JhbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIG5ldyBTMyBUYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhpcyB0YWJsZSwgdW5pcXVlIHdpdGhpbiB0aGUgbmFtZXNwYWNlXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2UgdW5kZXIgd2hpY2ggdGhpcyB0YWJsZSBpcyBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2U6IElOYW1lc3BhY2U7XG4gIC8qKlxuICAgKiBGb3JtYXQgb2YgdGhpcyB0YWJsZS4gQ3VycmVudGx5LCB0aGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXMgT3BlblRhYmxlRm9ybWF0LklDRUJFUkcuXG4gICAqL1xuICByZWFkb25seSBvcGVuVGFibGVGb3JtYXQ6IE9wZW5UYWJsZUZvcm1hdDtcbiAgLyoqXG4gICAqIFNldHRpbmdzIGdvdmVybmluZyB0aGUgQ29tcGFjdGlvbiBtYWludGVuYW5jZSBhY3Rpb24uXG4gICAqIEBkZWZhdWx0IEFtYXpvbiBTMyBzZWxlY3RzIHRoZSBiZXN0IGNvbXBhY3Rpb24gc3RyYXRlZ3kgYmFzZWQgb24geW91ciB0YWJsZSBzb3J0IG9yZGVyLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlcy1tYWludGVuYW5jZS5odG1sXG4gICAqL1xuICByZWFkb25seSBjb21wYWN0aW9uPzogQ29tcGFjdGlvblByb3BlcnR5O1xuICAvKipcbiAgICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgbWV0YWRhdGEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqIEBkZWZhdWx0IHRhYmxlIGlzIGNyZWF0ZWQgd2l0aG91dCBhbnkgbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGljZWJlcmdNZXRhZGF0YT86IEljZWJlcmdNZXRhZGF0YVByb3BlcnR5O1xuICAvKipcbiAgICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc25hcHNob3QgbWFuYWdlbWVudCBzZXR0aW5ncyBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAgICogQGRlZmF1bHQgZW5hYmxlZDogTWluaW11bVNuYXBzaG90cyBpcyAxIGJ5IGRlZmF1bHQgYW5kIE1heGltdW1TbmFwc2hvdEFnZSBpcyAxMjAgaG91cnMgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90TWFuYWdlbWVudD86IFNuYXBzaG90TWFuYWdlbWVudFByb3BlcnR5O1xuICAvKipcbiAgICogQ29udHJvbHMgd2hhdCBoYXBwZW5zIHRvIHRoaXMgdGFibGUgaXQgaXQgc3RvcGVkIGJlaW5nIG1hbmFnZWQgYnkgY2xvdWRmb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCBpbmRpY2F0ZXMgdGhhdCB5b3UgZG9uJ3Qgd2FudCB0byBzcGVjaWZ5IGEgc2NoZW1hIGZvciB0aGUgdGFibGUuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgbXV0dWFsbHkgZXhjbHVzaXZlIHRvICdJY2ViZXJnTWV0YWRhdGEnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgd2l0aG91dE1ldGFkYXRhPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTdXBwb3J0ZWQgb3BlbiB0YWJsZSBmb3JtYXRzLlxuICovXG5leHBvcnQgZW51bSBPcGVuVGFibGVGb3JtYXQge1xuICAvKipcbiAgICogQXBhY2hlIEljZWJlcmcgdGFibGUgZm9ybWF0LlxuICAgKi9cbiAgSUNFQkVSRyA9ICdJQ0VCRVJHJyxcbn1cblxuLyoqXG4gKiBTZXR0aW5ncyBnb3Zlcm5pbmcgdGhlIENvbXBhY3Rpb24gbWFpbnRlbmFuY2UgYWN0aW9uLlxuICpcbiAqIEBkZWZhdWx0IC0gTm8gY29tcGFjdGlvbiBzZXR0aW5nc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhY3Rpb25Qcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdGhlIGNvbXBhY3Rpb24gbWFpbnRlbmFuY2UgYWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzOiBTdGF0dXM7XG4gIC8qKlxuICAgKiBUYXJnZXQgZmlsZSBzaXplIGluIG1lZ2FieXRlcyBmb3IgY29tcGFjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEZpbGVTaXplTWI6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTdGF0dXMgdmFsdWVzIGZvciBtYWludGVuYW5jZSBhY3Rpb25zLlxuICovXG5leHBvcnQgZW51bSBTdGF0dXMge1xuICAvKipcbiAgICogRW5hYmxlIHRoZSBtYWludGVuYW5jZSBhY3Rpb24uXG4gICAqL1xuICBFTkFCTEVEID0gJ2VuYWJsZWQnLFxuICAvKipcbiAgICogRGlzYWJsZSB0aGUgbWFpbnRlbmFuY2UgYWN0aW9uLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnZGlzYWJsZWQnLFxufVxuXG4vKipcbiAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIG1ldGFkYXRhIGZvciBhbiBJY2ViZXJnIHRhYmxlLlxuICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXMzdGFibGVzLXRhYmxlLWljZWJlcmdtZXRhZGF0YS5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ01ldGFkYXRhUHJvcGVydHkge1xuICAvKipcbiAgICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc2NoZW1hIGZvciBhbiBJY2ViZXJnIHRhYmxlLlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtczN0YWJsZXMtdGFibGUtaWNlYmVyZ21ldGFkYXRhLmh0bWwjY2ZuLXMzdGFibGVzLXRhYmxlLWljZWJlcmdtZXRhZGF0YS1pY2ViZXJnc2NoZW1hXG4gICAqL1xuICByZWFkb25seSBpY2ViZXJnU2NoZW1hOiBJY2ViZXJnU2NoZW1hUHJvcGVydHk7XG59XG5cbi8qKlxuICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc2NoZW1hIGZvciBhbiBJY2ViZXJnIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEljZWJlcmdTY2hlbWFQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzY2hlbWEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqL1xuICByZWFkb25seSBzY2hlbWFGaWVsZExpc3Q6IFNjaGVtYUZpZWxkUHJvcGVydHlbXTtcbn1cblxuLyoqXG4gKiBDb250YWlucyBkZXRhaWxzIGFib3V0IGEgc2NoZW1hIGZpZWxkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYUZpZWxkUHJvcGVydHkge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZpZWxkLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIEJvb2xlYW4gdmFsdWUgdGhhdCBzcGVjaWZpZXMgd2hldGhlciB2YWx1ZXMgYXJlIHJlcXVpcmVkIGZvciBlYWNoIHJvdyBpbiB0aGlzIGZpZWxkLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGlzIGlzIGBmYWxzZWAgYW5kIG51bGwgdmFsdWVzIGFyZSBhbGxvd2VkIGluIHRoZSBmaWVsZC4gSWYgdGhpcyBpcyBgdHJ1ZWAsIHRoZSBmaWVsZCBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGZpZWxkIHR5cGUuXG4gICAqXG4gICAqIFMzIFRhYmxlcyBzdXBwb3J0cyBhbGwgQXBhY2hlIEljZWJlcmcgcHJpbWl0aXZlIHR5cGVzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBbQXBhY2hlIEljZWJlcmcgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9pY2ViZXJnLmFwYWNoZS5vcmcvc3BlYy8jcHJpbWl0aXZlLXR5cGVzKS5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzbmFwc2hvdCBtYW5hZ2VtZW50IHNldHRpbmdzIGZvciBhbiBJY2ViZXJnIHRhYmxlLlxuICpcbiAqIEEgc25hcHNob3QgaXMgZXhwaXJlZCB3aGVuIGl0IGV4Y2VlZHMgTWluU25hcHNob3RzVG9LZWVwIGFuZCBNYXhTbmFwc2hvdEFnZUhvdXJzLlxuICpcbiAqIEBkZWZhdWx0IC0gTm8gc25hcHNob3QgbWFuYWdlbWVudCBzZXR0aW5nc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNuYXBzaG90TWFuYWdlbWVudFByb3BlcnR5IHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFnZSBvZiBhIHNuYXBzaG90IGJlZm9yZSBpdCBjYW4gYmUgZXhwaXJlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBtYXhpbXVtIGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4U25hcHNob3RBZ2VIb3Vycz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIHNuYXBzaG90cyB0byBrZWVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG1pbmltdW0gbnVtYmVyXG4gICAqL1xuICByZWFkb25seSBtaW5TbmFwc2hvdHNUb0tlZXA/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBTbmFwc2hvdE1hbmFnZW1lbnQgbWFpbnRlbmFuY2UgYWN0aW9uIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm90IHNwZWNpZmllZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogU3RhdHVzO1xufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHRvIGEgdGFibGUgb3V0c2lkZSB0aGlzIHN0YWNrXG4gKlxuICogVGhlIHRhYmxlTmFtZSwgcmVnaW9uLCBhbmQgYWNjb3VudCBjYW4gYmUgcHJvdmlkZWQgZXhwbGljaXRseVxuICogb3Igd2lsbCBiZSBpbmZlcnJlZCBmcm9tIHRoZSB0YWJsZUFyblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoaXMgdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUncyBBUk4uXG4gICAqL1xuICByZWFkb25seSB0YWJsZUFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFuIFMzIFRhYmxlIHdpdGggaGVscGVycy5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFRhYmxlIGV4dGVuZHMgVGFibGVCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtczN0YWJsZXMtYWxwaGEuVGFibGUnO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgVGFibGUgY29uc3RydWN0IHRoYXQgcmVwcmVzZW50cyBhbiBleHRlcm5hbCB0YWJsZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZS5cbiAgICogQHBhcmFtIGF0dHJzIEEgYFRhYmxlQXR0cmlidXRlc2Agb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRhYmxlIG5hbWUgYW5kIEFSTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IFRhYmxlQXR0cmlidXRlcyxcbiAgKTogSVRhYmxlIHtcbiAgICBjb25zdCB0YWJsZUFybiA9IGF0dHJzLnRhYmxlQXJuO1xuICAgIFRhYmxlLnZhbGlkYXRlVGFibGVOYW1lKGF0dHJzLnRhYmxlTmFtZSk7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBUYWJsZUJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlTmFtZSA9IGF0dHJzLnRhYmxlTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUFybiA9IHRhYmxlQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlUG9saWN5PzogQ2ZuVGFibGVQb2xpY3k7XG4gICAgICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIEV4cG9ydHMgdGhpcyAgZnJvbSB0aGUgc3RhY2suXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyBleHBvcnQoKSB7XG4gICAgICAgIHJldHVybiBhdHRycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGVudmlyb25tZW50RnJvbUFybjogdGFibGVBcm4sXG4gICAgICBwaHlzaWNhbE5hbWU6IHRhYmxlQXJuLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZXMtYnVja2V0cy1uYW1pbmcuaHRtbFxuICAgKiBAcGFyYW0gdGFibGVOYW1lIE5hbWUgb2YgdGhlIHRhYmxlXG4gICAqIEB0aHJvd3MgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgaWYgYW55IG5hbWluZyBlcnJvcnMgYXJlIGRldGVjdGVkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlVGFibGVOYW1lKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRhYmxlTmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKHRhYmxlTmFtZSkpIHtcbiAgICAgIC8vIHRoZSBuYW1lIGlzIGEgbGF0ZS1ib3VuZCB2YWx1ZSwgbm90IGEgZGVmaW5lZCBzdHJpbmcsIHNvIHNraXAgdmFsaWRhdGlvblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIExlbmd0aCB2YWxpZGF0aW9uXG4gICAgaWYgKHRhYmxlTmFtZS5sZW5ndGggPCAxIHx8IHRhYmxlTmFtZS5sZW5ndGggPiAyNTUpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnVGFibGUgbmFtZSBtdXN0IGJlIGF0IGxlYXN0IDEgYW5kIG5vIG1vcmUgdGhhbiAyNTUgY2hhcmFjdGVycycsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENoYXJhY3RlciBzZXQgdmFsaWRhdGlvblxuICAgIGNvbnN0IGlsbGVnYWxDaGFyc2V0UmVnRXggPSAvW15hLXowLTlfXS87XG4gICAgY29uc3QgYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXggPSAvW2EtejAtOV0vO1xuXG4gICAgY29uc3QgaWxsZWdhbENoYXJNYXRjaCA9IHRhYmxlTmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdUYWJsZSBuYW1lIG11c3Qgb25seSBjb250YWluIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMgKF8pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QodGFibGVOYW1lLmNoYXJBdCgwKSkpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnVGFibGUgbmFtZSBtdXN0IHN0YXJ0IHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAwKScsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QodGFibGVOYW1lLmNoYXJBdCh0YWJsZU5hbWUubGVuZ3RoIC0gMSkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYFRhYmxlIG5hbWUgbXVzdCBlbmQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6ICR7XG4gICAgICAgICAgdGFibGVOYW1lLmxlbmd0aCAtIDFcbiAgICAgICAgfSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgJ0ludmFsaWRUYWJsZU5hbWUnLFxuICAgICAgICBgSW52YWxpZCBTMyB0YWJsZSBuYW1lICh2YWx1ZTogJHt0YWJsZU5hbWV9KSR7RU9MfSR7ZXJyb3JzLmpvaW4oRU9MKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoYXJuKSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgQ2ZuVGFibGUgTDEgcmVzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNvdXJjZTogQ2ZuVGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgdGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZSBjb250YWluaW5nIHRoaXMgdGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2U6IElOYW1lc3BhY2U7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBwb2xpY3kgZm9yIHRoaXMgdGFibGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVQb2xpY3k/OiBDZm5UYWJsZVBvbGljeTtcblxuICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRhYmxlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHt9KTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgVGFibGUudmFsaWRhdGVUYWJsZU5hbWUocHJvcHMudGFibGVOYW1lKTtcblxuICAgIHRoaXMuX3Jlc291cmNlID0gbmV3IENmblRhYmxlKHRoaXMsIGlkLCB7XG4gICAgICB0YWJsZU5hbWU6IHByb3BzLnRhYmxlTmFtZSxcbiAgICAgIG9wZW5UYWJsZUZvcm1hdDogcHJvcHMub3BlblRhYmxlRm9ybWF0LFxuICAgICAgdGFibGVCdWNrZXRBcm46IHByb3BzLm5hbWVzcGFjZS50YWJsZUJ1Y2tldC50YWJsZUJ1Y2tldEFybixcbiAgICAgIG5hbWVzcGFjZTogcHJvcHMubmFtZXNwYWNlLm5hbWVzcGFjZU5hbWUsXG4gICAgICBjb21wYWN0aW9uOiBwcm9wcy5jb21wYWN0aW9uLFxuICAgICAgaWNlYmVyZ01ldGFkYXRhOiBwcm9wcy5pY2ViZXJnTWV0YWRhdGEsXG4gICAgICBzbmFwc2hvdE1hbmFnZW1lbnQ6IHByb3BzLnNuYXBzaG90TWFuYWdlbWVudCxcbiAgICAgIHdpdGhvdXRNZXRhZGF0YTogcHJvcHMud2l0aG91dE1ldGFkYXRhID8gJ1llcycgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVzcGFjZSA9IHByb3BzLm5hbWVzcGFjZTtcbiAgICB0aGlzLnRhYmxlTmFtZSA9IHByb3BzLnRhYmxlTmFtZTtcbiAgICB0aGlzLnRhYmxlQXJuID0gdGhpcy5fcmVzb3VyY2UuYXR0clRhYmxlQXJuO1xuICAgIHRoaXMuX3Jlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgICB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLm5hbWVzcGFjZSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/util.js
CHANGED
|
@@ -23,7 +23,7 @@ function parseTableBucketArn(construct, props) {
|
|
|
23
23
|
arnFormat: cdk.ArnFormat.SLASH_RESOURCE_NAME,
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
-
throw new cdk.ValidationError('Cannot determine bucket ARN. At least `tableBucketArn` is needed', construct);
|
|
26
|
+
throw new cdk.ValidationError('CannotDetermineBucketArn', 'Cannot determine bucket ARN. At least `tableBucketArn` is needed', construct);
|
|
27
27
|
}
|
|
28
28
|
function parseTableBucketName(construct, props) {
|
|
29
29
|
// if we have an explicit bucket name, use it.
|
|
@@ -37,7 +37,7 @@ function parseTableBucketName(construct, props) {
|
|
|
37
37
|
return bucketNameFromArn;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
throw new cdk.ValidationError('tableBucketName is required and could not be inferred from context', construct);
|
|
40
|
+
throw new cdk.ValidationError('TableBucketNameRequired', 'tableBucketName is required and could not be inferred from context', construct);
|
|
41
41
|
}
|
|
42
42
|
function parseTableBucketRegion(construct, props) {
|
|
43
43
|
// if we have an explicit bucket region, use it.
|
|
@@ -81,4 +81,4 @@ function validateTableBucketAttributes(construct, props) {
|
|
|
81
81
|
tableBucketArn: parseTableBucketArn(construct, props),
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsa0RBa0JDO0FBRUQsb0RBZUM7QUFFRCx3REFnQkM7QUFFRCwwREFnQkM7QUFNRCxzRUFPQztBQTFGRCx3Q0FBd0M7QUFJM0IsUUFBQSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFFNUMsU0FBZ0IsbUJBQW1CLENBQUMsU0FBcUIsRUFBRSxLQUE0QjtJQUNyRixtREFBbUQ7SUFDbkQsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN2QyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLE9BQU8sRUFBRSx5QkFBaUI7WUFDMUIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsWUFBWSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ25DLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQjtTQUM3QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLEVBQUUsa0VBQWtFLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDM0ksQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLFNBQXFCLEVBQUUsS0FBNEI7SUFDdEYsOENBQThDO0lBQzlDLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUMvQixDQUFDO0lBRUQsNENBQTRDO0lBQzVDLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNqSSxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsT0FBTyxpQkFBaUIsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLHlCQUF5QixFQUFFLG9FQUFvRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzVJLENBQUM7QUFFRCxTQUFnQixzQkFBc0IsQ0FBQyxTQUFxQixFQUFFLEtBQTRCO0lBQ3hGLGdEQUFnRDtJQUNoRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZILElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLFNBQXFCLEVBQUUsS0FBNEI7SUFDekYsaURBQWlEO0lBQ2pELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDekgsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsU0FBcUIsRUFBRSxLQUE0QjtJQUMvRixPQUFPO1FBQ0wsZUFBZSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDdkQsT0FBTyxFQUFFLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDbEQsTUFBTSxFQUFFLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDaEQsY0FBYyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7S0FDdEQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgVGFibGVCdWNrZXRBdHRyaWJ1dGVzIH0gZnJvbSAnLi90YWJsZS1idWNrZXQnO1xuXG5leHBvcnQgY29uc3QgUzNfVEFCTEVTX1NFUlZJQ0UgPSAnczN0YWJsZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUYWJsZUJ1Y2tldEFybihjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QsIHByb3BzOiBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMpOiBzdHJpbmcge1xuICAvLyBpZiB3ZSBoYXZlIGFuIGV4cGxpY2l0IHRhYmxlIGJ1Y2tldCBBUk4sIHVzZSBpdC5cbiAgaWYgKHByb3BzLnRhYmxlQnVja2V0QXJuKSB7XG4gICAgcmV0dXJuIHByb3BzLnRhYmxlQnVja2V0QXJuO1xuICB9XG5cbiAgaWYgKHByb3BzLnRhYmxlQnVja2V0TmFtZSkge1xuICAgIHJldHVybiBjZGsuU3RhY2sub2YoY29uc3RydWN0KS5mb3JtYXRBcm4oe1xuICAgICAgcmVnaW9uOiBwcm9wcy5yZWdpb24sXG4gICAgICBhY2NvdW50OiBwcm9wcy5hY2NvdW50LFxuICAgICAgc2VydmljZTogUzNfVEFCTEVTX1NFUlZJQ0UsXG4gICAgICByZXNvdXJjZTogJ2J1Y2tldCcsXG4gICAgICByZXNvdXJjZU5hbWU6IHByb3BzLnRhYmxlQnVja2V0TmFtZSxcbiAgICAgIGFybkZvcm1hdDogY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgIH0pO1xuICB9XG5cbiAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ0Nhbm5vdERldGVybWluZUJ1Y2tldEFybicsICdDYW5ub3QgZGV0ZXJtaW5lIGJ1Y2tldCBBUk4uIEF0IGxlYXN0IGB0YWJsZUJ1Y2tldEFybmAgaXMgbmVlZGVkJywgY29uc3RydWN0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGFibGVCdWNrZXROYW1lKGNvbnN0cnVjdDogSUNvbnN0cnVjdCwgcHJvcHM6IFRhYmxlQnVja2V0QXR0cmlidXRlcyk6IHN0cmluZyB7XG4gIC8vIGlmIHdlIGhhdmUgYW4gZXhwbGljaXQgYnVja2V0IG5hbWUsIHVzZSBpdC5cbiAgaWYgKHByb3BzLnRhYmxlQnVja2V0TmFtZSkge1xuICAgIHJldHVybiBwcm9wcy50YWJsZUJ1Y2tldE5hbWU7XG4gIH1cblxuICAvLyBleHRyYWN0IHRhYmxlIGJ1Y2tldCBuYW1lIGZyb20gYnVja2V0IGFyblxuICBpZiAocHJvcHMudGFibGVCdWNrZXRBcm4pIHtcbiAgICBjb25zdCBidWNrZXROYW1lRnJvbUFybiA9IGNkay5TdGFjay5vZihjb25zdHJ1Y3QpLnNwbGl0QXJuKHByb3BzLnRhYmxlQnVja2V0QXJuLCBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZTtcbiAgICBpZiAoYnVja2V0TmFtZUZyb21Bcm4pIHtcbiAgICAgIHJldHVybiBidWNrZXROYW1lRnJvbUFybjtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignVGFibGVCdWNrZXROYW1lUmVxdWlyZWQnLCAndGFibGVCdWNrZXROYW1lIGlzIHJlcXVpcmVkIGFuZCBjb3VsZCBub3QgYmUgaW5mZXJyZWQgZnJvbSBjb250ZXh0JywgY29uc3RydWN0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGFibGVCdWNrZXRSZWdpb24oY29uc3RydWN0OiBJQ29uc3RydWN0LCBwcm9wczogVGFibGVCdWNrZXRBdHRyaWJ1dGVzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgLy8gaWYgd2UgaGF2ZSBhbiBleHBsaWNpdCBidWNrZXQgcmVnaW9uLCB1c2UgaXQuXG4gIGlmIChwcm9wcy5yZWdpb24pIHtcbiAgICByZXR1cm4gcHJvcHMucmVnaW9uO1xuICB9XG5cbiAgLy8gZXh0cmFjdCB0YWJsZSBidWNrZXQgcmVnaW9uIGZyb20gYnVja2V0IGFyblxuICBpZiAocHJvcHMudGFibGVCdWNrZXRBcm4pIHtcbiAgICBjb25zdCByZWdpb25Gcm9tQXJuID0gY2RrLlN0YWNrLm9mKGNvbnN0cnVjdCkuc3BsaXRBcm4ocHJvcHMudGFibGVCdWNrZXRBcm4sIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVnaW9uO1xuICAgIGlmIChyZWdpb25Gcm9tQXJuKSB7XG4gICAgICByZXR1cm4gcmVnaW9uRnJvbUFybjtcbiAgICB9XG4gIH1cblxuICAvLyBSZWdpb24gaXMgb3B0aW9uYWwsIGNhbiBiZSBpbmZlcnJlZCBsYXRlclxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUYWJsZUJ1Y2tldEFjY291bnQoY29uc3RydWN0OiBJQ29uc3RydWN0LCBwcm9wczogVGFibGVCdWNrZXRBdHRyaWJ1dGVzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgLy8gaWYgd2UgaGF2ZSBhbiBleHBsaWNpdCBidWNrZXQgYWNjb3VudCwgdXNlIGl0LlxuICBpZiAocHJvcHMuYWNjb3VudCkge1xuICAgIHJldHVybiBwcm9wcy5hY2NvdW50O1xuICB9XG5cbiAgLy8gZXh0cmFjdCB0YWJsZSBidWNrZXQgYWNjb3VudCBmcm9tIGJ1Y2tldCBhcm5cbiAgaWYgKHByb3BzLnRhYmxlQnVja2V0QXJuKSB7XG4gICAgY29uc3QgYWNjb3VudEZyb21Bcm4gPSBjZGsuU3RhY2sub2YoY29uc3RydWN0KS5zcGxpdEFybihwcm9wcy50YWJsZUJ1Y2tldEFybiwgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKS5hY2NvdW50O1xuICAgIGlmIChhY2NvdW50RnJvbUFybikge1xuICAgICAgcmV0dXJuIGFjY291bnRGcm9tQXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFjY291bnQgaXMgb3B0aW9uYWwsIGNhbiBiZSBpbmZlcnJlZCBsYXRlclxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIHBvcHVsYXRlZCBhdHRyaWJ1dGVzIGZyb20gZ2l2ZW4gc2NvcGUgYW5kIGF0dHJpYnV0ZXNcbiAqIEB0aHJvd3MgVmFsaWRhdGlvbkVycm9yIGlmIGFueSBvZiB0aGUgcmVxdWlyZWQgYXR0cmlidXJlcyBhcmUgbWlzc2luZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoY29uc3RydWN0OiBJQ29uc3RydWN0LCBwcm9wczogVGFibGVCdWNrZXRBdHRyaWJ1dGVzKSB7XG4gIHJldHVybiB7XG4gICAgdGFibGVCdWNrZXROYW1lOiBwYXJzZVRhYmxlQnVja2V0TmFtZShjb25zdHJ1Y3QsIHByb3BzKSxcbiAgICBhY2NvdW50OiBwYXJzZVRhYmxlQnVja2V0QWNjb3VudChjb25zdHJ1Y3QsIHByb3BzKSxcbiAgICByZWdpb246IHBhcnNlVGFibGVCdWNrZXRSZWdpb24oY29uc3RydWN0LCBwcm9wcyksXG4gICAgdGFibGVCdWNrZXRBcm46IHBhcnNlVGFibGVCdWNrZXRBcm4oY29uc3RydWN0LCBwcm9wcyksXG4gIH07XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-s3tables-alpha",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.244.0-alpha.0",
|
|
5
5
|
"description": "CDK Constructs for S3 Tables",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -77,17 +77,17 @@
|
|
|
77
77
|
},
|
|
78
78
|
"license": "Apache-2.0",
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"aws-cdk-lib": "2.
|
|
81
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
82
|
-
"@aws-cdk/pkglint": "2.
|
|
80
|
+
"aws-cdk-lib": "2.244.0",
|
|
81
|
+
"@aws-cdk/cdk-build-tools": "2.244.0-alpha.0",
|
|
82
|
+
"@aws-cdk/pkglint": "2.244.0-alpha.0",
|
|
83
83
|
"@types/jest": "^29.5.14",
|
|
84
84
|
"constructs": "^10.5.0",
|
|
85
85
|
"jest": "^29.7.0",
|
|
86
|
-
"@aws-cdk/integ-tests-alpha": "2.
|
|
86
|
+
"@aws-cdk/integ-tests-alpha": "2.244.0-alpha.0"
|
|
87
87
|
},
|
|
88
88
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
89
89
|
"peerDependencies": {
|
|
90
|
-
"aws-cdk-lib": "^2.
|
|
90
|
+
"aws-cdk-lib": "^2.244.0",
|
|
91
91
|
"constructs": "^10.5.0"
|
|
92
92
|
},
|
|
93
93
|
"separate-module": false,
|