@aws-cdk/aws-elasticache-alpha 2.219.0-alpha.0 → 2.221.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 CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.219.0",
11
+ "aws-cdk-lib": "^2.221.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -4082,7 +4082,7 @@
4082
4082
  "stability": "experimental"
4083
4083
  },
4084
4084
  "homepage": "https://github.com/aws/aws-cdk",
4085
- "jsiiVersion": "5.7.22 (build 1cfeabd)",
4085
+ "jsiiVersion": "5.9.8 (build 3d2e131)",
4086
4086
  "keywords": [
4087
4087
  "aws",
4088
4088
  "cdk",
@@ -6084,7 +6084,7 @@
6084
6084
  },
6085
6085
  "locationInModule": {
6086
6086
  "filename": "lib/serverless-cache.ts",
6087
- "line": 412
6087
+ "line": 413
6088
6088
  },
6089
6089
  "parameters": [
6090
6090
  {
@@ -6304,7 +6304,7 @@
6304
6304
  "immutable": true,
6305
6305
  "locationInModule": {
6306
6306
  "filename": "lib/serverless-cache.ts",
6307
- "line": 410
6307
+ "line": 411
6308
6308
  },
6309
6309
  "name": "connections",
6310
6310
  "overrides": "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase",
@@ -6323,7 +6323,7 @@
6323
6323
  "immutable": true,
6324
6324
  "locationInModule": {
6325
6325
  "filename": "lib/serverless-cache.ts",
6326
- "line": 374
6326
+ "line": 375
6327
6327
  },
6328
6328
  "name": "serverlessCacheArn",
6329
6329
  "overrides": "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase",
@@ -6342,7 +6342,7 @@
6342
6342
  "immutable": true,
6343
6343
  "locationInModule": {
6344
6344
  "filename": "lib/serverless-cache.ts",
6345
- "line": 380
6345
+ "line": 381
6346
6346
  },
6347
6347
  "name": "serverlessCacheEndpointAddress",
6348
6348
  "type": {
@@ -6360,7 +6360,7 @@
6360
6360
  "immutable": true,
6361
6361
  "locationInModule": {
6362
6362
  "filename": "lib/serverless-cache.ts",
6363
- "line": 386
6363
+ "line": 387
6364
6364
  },
6365
6365
  "name": "serverlessCacheEndpointPort",
6366
6366
  "type": {
@@ -6375,7 +6375,7 @@
6375
6375
  "immutable": true,
6376
6376
  "locationInModule": {
6377
6377
  "filename": "lib/serverless-cache.ts",
6378
- "line": 361
6378
+ "line": 362
6379
6379
  },
6380
6380
  "name": "serverlessCacheName",
6381
6381
  "overrides": "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase",
@@ -6394,7 +6394,7 @@
6394
6394
  "immutable": true,
6395
6395
  "locationInModule": {
6396
6396
  "filename": "lib/serverless-cache.ts",
6397
- "line": 392
6397
+ "line": 393
6398
6398
  },
6399
6399
  "name": "serverlessCacheReaderEndpointAddress",
6400
6400
  "type": {
@@ -6412,7 +6412,7 @@
6412
6412
  "immutable": true,
6413
6413
  "locationInModule": {
6414
6414
  "filename": "lib/serverless-cache.ts",
6415
- "line": 398
6415
+ "line": 399
6416
6416
  },
6417
6417
  "name": "serverlessCacheReaderEndpointPort",
6418
6418
  "type": {
@@ -6430,7 +6430,7 @@
6430
6430
  "immutable": true,
6431
6431
  "locationInModule": {
6432
6432
  "filename": "lib/serverless-cache.ts",
6433
- "line": 405
6433
+ "line": 406
6434
6434
  },
6435
6435
  "name": "serverlessCacheStatus",
6436
6436
  "type": {
@@ -6445,7 +6445,7 @@
6445
6445
  "immutable": true,
6446
6446
  "locationInModule": {
6447
6447
  "filename": "lib/serverless-cache.ts",
6448
- "line": 362
6448
+ "line": 363
6449
6449
  },
6450
6450
  "name": "backupArnsToRestore",
6451
6451
  "optional": true,
@@ -6467,7 +6467,7 @@
6467
6467
  "immutable": true,
6468
6468
  "locationInModule": {
6469
6469
  "filename": "lib/serverless-cache.ts",
6470
- "line": 360
6470
+ "line": 361
6471
6471
  },
6472
6472
  "name": "engine",
6473
6473
  "optional": true,
@@ -6484,7 +6484,7 @@
6484
6484
  "immutable": true,
6485
6485
  "locationInModule": {
6486
6486
  "filename": "lib/serverless-cache.ts",
6487
- "line": 363
6487
+ "line": 364
6488
6488
  },
6489
6489
  "name": "kmsKey",
6490
6490
  "optional": true,
@@ -6501,7 +6501,7 @@
6501
6501
  "immutable": true,
6502
6502
  "locationInModule": {
6503
6503
  "filename": "lib/serverless-cache.ts",
6504
- "line": 366
6504
+ "line": 367
6505
6505
  },
6506
6506
  "name": "securityGroups",
6507
6507
  "optional": true,
@@ -6523,7 +6523,7 @@
6523
6523
  "immutable": true,
6524
6524
  "locationInModule": {
6525
6525
  "filename": "lib/serverless-cache.ts",
6526
- "line": 365
6526
+ "line": 366
6527
6527
  },
6528
6528
  "name": "subnets",
6529
6529
  "optional": true,
@@ -6545,7 +6545,7 @@
6545
6545
  "immutable": true,
6546
6546
  "locationInModule": {
6547
6547
  "filename": "lib/serverless-cache.ts",
6548
- "line": 367
6548
+ "line": 368
6549
6549
  },
6550
6550
  "name": "userGroup",
6551
6551
  "optional": true,
@@ -6562,7 +6562,7 @@
6562
6562
  "immutable": true,
6563
6563
  "locationInModule": {
6564
6564
  "filename": "lib/serverless-cache.ts",
6565
- "line": 364
6565
+ "line": 365
6566
6566
  },
6567
6567
  "name": "vpc",
6568
6568
  "optional": true,
@@ -8803,6 +8803,6 @@
8803
8803
  "symbolId": "lib/user-group:UserGroupProps"
8804
8804
  }
8805
8805
  },
8806
- "version": "2.219.0-alpha.0",
8806
+ "version": "2.221.0-alpha.0",
8807
8807
  "fingerprint": "**********"
8808
8808
  }
Binary file
package/lib/iam-user.js CHANGED
@@ -1,11 +1,38 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
2
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
3
+ var useValue = arguments.length > 2;
4
+ for (var i = 0; i < initializers.length; i++) {
5
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
6
+ }
7
+ return useValue ? value : void 0;
8
+ };
9
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
10
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
11
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
12
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
13
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
14
+ var _, done = false;
15
+ for (var i = decorators.length - 1; i >= 0; i--) {
16
+ var context = {};
17
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
18
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
19
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
20
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
21
+ if (kind === "accessor") {
22
+ if (result === void 0) continue;
23
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
24
+ if (_ = accept(result.get)) descriptor.get = _;
25
+ if (_ = accept(result.set)) descriptor.set = _;
26
+ if (_ = accept(result.init)) initializers.unshift(_);
27
+ }
28
+ else if (_ = accept(result)) {
29
+ if (kind === "field") initializers.unshift(_);
30
+ else descriptor[key] = _;
31
+ }
32
+ }
33
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
34
+ done = true;
7
35
  };
8
- var _a;
9
36
  Object.defineProperty(exports, "__esModule", { value: true });
10
37
  exports.IamUser = void 0;
11
38
  const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
@@ -23,84 +50,134 @@ const ELASTICACHE_IAMUSER_SYMBOL = Symbol.for('@aws-cdk/aws-elasticache.IamUser'
23
50
  *
24
51
  * @resource AWS::ElastiCache::User
25
52
  */
26
- let IamUser = class IamUser extends user_base_1.UserBase {
27
- /**
28
- * Return whether the given object is an `IamUser`.
29
- */
30
- static isIamUser(x) {
31
- return x !== null && typeof (x) === 'object' && ELASTICACHE_IAMUSER_SYMBOL in x;
32
- }
33
- constructor(scope, id, props) {
34
- super(scope, id);
35
- try {
36
- jsiiDeprecationWarnings._aws_cdk_aws_elasticache_alpha_IamUserProps(props);
53
+ let IamUser = (() => {
54
+ let _classDecorators = [prop_injectable_1.propertyInjectable];
55
+ let _classDescriptor;
56
+ let _classExtraInitializers = [];
57
+ let _classThis;
58
+ let _classSuper = user_base_1.UserBase;
59
+ let _instanceExtraInitializers = [];
60
+ let _grantConnect_decorators;
61
+ let _grant_decorators;
62
+ var IamUser = class extends _classSuper {
63
+ static { _classThis = this; }
64
+ static {
65
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
66
+ _grantConnect_decorators = [(0, metadata_resource_1.MethodMetadata)()];
67
+ _grant_decorators = [(0, metadata_resource_1.MethodMetadata)()];
68
+ __esDecorate(this, null, _grantConnect_decorators, { kind: "method", name: "grantConnect", static: false, private: false, access: { has: obj => "grantConnect" in obj, get: obj => obj.grantConnect }, metadata: _metadata }, null, _instanceExtraInitializers);
69
+ __esDecorate(this, null, _grant_decorators, { kind: "method", name: "grant", static: false, private: false, access: { has: obj => "grant" in obj, get: obj => obj.grant }, metadata: _metadata }, null, _instanceExtraInitializers);
70
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
71
+ IamUser = _classThis = _classDescriptor.value;
72
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
73
+ }
74
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.IamUser", version: "2.221.0-alpha.0" };
75
+ /**
76
+ * Uniquely identifies this class.
77
+ */
78
+ static PROPERTY_INJECTION_ID = 'aws-cdk-lib.aws-elasticache.IamUser';
79
+ /**
80
+ * Return whether the given object is an `IamUser`.
81
+ */
82
+ static isIamUser(x) {
83
+ return x !== null && typeof (x) === 'object' && ELASTICACHE_IAMUSER_SYMBOL in x;
37
84
  }
38
- catch (error) {
39
- if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
40
- Error.captureStackTrace(error, IamUser);
85
+ /**
86
+ * The engine for the user.
87
+ */
88
+ engine = __runInitializers(this, _instanceExtraInitializers);
89
+ /**
90
+ * The user's ID.
91
+ *
92
+ * @attribute
93
+ */
94
+ userId;
95
+ /**
96
+ * The user's name.
97
+ * For IAM authentication userName must be equal to userId.
98
+ *
99
+ * @attribute
100
+ */
101
+ userName;
102
+ /**
103
+ * The access string that defines the user's permissions.
104
+ */
105
+ accessString;
106
+ /**
107
+ * The user's ARN.
108
+ *
109
+ * @attribute
110
+ */
111
+ userArn;
112
+ /**
113
+ * The user's status.
114
+ * Can be 'active', 'modifying', 'deleting'.
115
+ *
116
+ * @attribute
117
+ */
118
+ userStatus;
119
+ resource;
120
+ constructor(scope, id, props) {
121
+ super(scope, id);
122
+ try {
123
+ jsiiDeprecationWarnings._aws_cdk_aws_elasticache_alpha_IamUserProps(props);
124
+ }
125
+ catch (error) {
126
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
127
+ Error.captureStackTrace(error, IamUser);
128
+ }
129
+ throw error;
130
+ }
131
+ // Enhanced CDK Analytics Telemetry
132
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
133
+ this.engine = props.engine ?? common_1.UserEngine.VALKEY;
134
+ this.userId = props.userId;
135
+ this.userName = props.userName ?? props.userId;
136
+ this.accessString = props.accessControl.accessString;
137
+ if (this.userName !== this.userId) {
138
+ throw new core_1.ValidationError('For IAM authentication, userName must be equal to userId.', this);
41
139
  }
42
- throw error;
140
+ this.resource = new aws_elasticache_1.CfnUser(this, 'Resource', {
141
+ engine: this.engine,
142
+ userId: props.userId,
143
+ userName: this.userName,
144
+ accessString: this.accessString,
145
+ authenticationMode: {
146
+ Type: 'iam',
147
+ },
148
+ noPasswordRequired: false,
149
+ passwords: undefined,
150
+ });
151
+ this.userArn = this.resource.attrArn;
152
+ this.userStatus = this.resource.attrStatus;
153
+ Object.defineProperty(this, ELASTICACHE_IAMUSER_SYMBOL, { value: true });
43
154
  }
44
- // Enhanced CDK Analytics Telemetry
45
- (0, metadata_resource_1.addConstructMetadata)(this, props);
46
- this.engine = props.engine ?? common_1.UserEngine.VALKEY;
47
- this.userId = props.userId;
48
- this.userName = props.userName ?? props.userId;
49
- this.accessString = props.accessControl.accessString;
50
- if (this.userName !== this.userId) {
51
- throw new core_1.ValidationError('For IAM authentication, userName must be equal to userId.', this);
155
+ /**
156
+ * Grant connect permissions to the given IAM identity.
157
+ *
158
+ * @param grantee The IAM identity to grant permissions to.
159
+ */
160
+ grantConnect(grantee) {
161
+ return this.grant(grantee, 'elasticache:Connect');
52
162
  }
53
- this.resource = new aws_elasticache_1.CfnUser(this, 'Resource', {
54
- engine: this.engine,
55
- userId: props.userId,
56
- userName: this.userName,
57
- accessString: this.accessString,
58
- authenticationMode: {
59
- Type: 'iam',
60
- },
61
- noPasswordRequired: false,
62
- passwords: undefined,
63
- });
64
- this.userArn = this.resource.attrArn;
65
- this.userStatus = this.resource.attrStatus;
66
- Object.defineProperty(this, ELASTICACHE_IAMUSER_SYMBOL, { value: true });
67
- }
68
- /**
69
- * Grant connect permissions to the given IAM identity.
70
- *
71
- * @param grantee The IAM identity to grant permissions to.
72
- */
73
- grantConnect(grantee) {
74
- return this.grant(grantee, 'elasticache:Connect');
75
- }
76
- /**
77
- * Grant the given identity custom permissions.
78
- *
79
- * @param grantee The IAM identity to grant permissions to.
80
- * @param actions The actions to grant.
81
- */
82
- grant(grantee, ...actions) {
83
- return iam.Grant.addToPrincipal({
84
- grantee,
85
- actions,
86
- resourceArns: [this.userArn],
87
- });
88
- }
89
- };
163
+ /**
164
+ * Grant the given identity custom permissions.
165
+ *
166
+ * @param grantee The IAM identity to grant permissions to.
167
+ * @param actions The actions to grant.
168
+ */
169
+ grant(grantee, ...actions) {
170
+ return iam.Grant.addToPrincipal({
171
+ grantee,
172
+ actions,
173
+ resourceArns: [this.userArn],
174
+ });
175
+ }
176
+ static {
177
+ __runInitializers(_classThis, _classExtraInitializers);
178
+ }
179
+ };
180
+ return IamUser = _classThis;
181
+ })();
90
182
  exports.IamUser = IamUser;
91
- _a = JSII_RTTI_SYMBOL_1;
92
- IamUser[_a] = { fqn: "@aws-cdk/aws-elasticache-alpha.IamUser", version: "2.219.0-alpha.0" };
93
- /**
94
- * Uniquely identifies this class.
95
- */
96
- IamUser.PROPERTY_INJECTION_ID = 'aws-cdk-lib.aws-elasticache.IamUser';
97
- __decorate([
98
- (0, metadata_resource_1.MethodMetadata)()
99
- ], IamUser.prototype, "grantConnect", null);
100
- __decorate([
101
- (0, metadata_resource_1.MethodMetadata)()
102
- ], IamUser.prototype, "grant", null);
103
- exports.IamUser = IamUser = __decorate([
104
- prop_injectable_1.propertyInjectable
105
- ], IamUser);
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLXVzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpYW0tdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQSxxQ0FBc0M7QUFDdEMsaUVBQXNEO0FBQ3RELDJDQUFzRDtBQUN0RCwyQ0FBMkM7QUFDM0MsMkNBQW1EO0FBQ25ELDhFQUE4RjtBQUM5RiwwRUFBMEU7QUFFMUUsTUFBTSwwQkFBMEIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFjbEY7Ozs7R0FJRztBQUVJLElBQU0sT0FBTyxHQUFiLE1BQU0sT0FBUSxTQUFRLG9CQUFRO0lBTW5DOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFNO1FBQzVCLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLDBCQUEwQixJQUFJLENBQUMsQ0FBQztLQUNqRjtJQXVDRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7OzsrQ0FuRFIsT0FBTzs7OztRQXFEaEIsbUNBQW1DO1FBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxtQkFBVSxDQUFDLE1BQU0sQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUVyRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLE1BQU0sSUFBSSxzQkFBZSxDQUFDLDJEQUEyRCxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkseUJBQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzVDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixrQkFBa0IsRUFBRTtnQkFDbEIsSUFBSSxFQUFFLEtBQUs7YUFDWjtZQUNELGtCQUFrQixFQUFFLEtBQUs7WUFDekIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBRTNDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0FDMUU7SUFFRDs7OztPQUlHO0lBRUksWUFBWSxDQUFDLE9BQXVCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUscUJBQXFCLENBQUMsQ0FBQztLQUNuRDtJQUVEOzs7OztPQUtHO0lBRUksS0FBSyxDQUFDLE9BQXVCLEVBQUUsR0FBRyxPQUFpQjtRQUN4RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU87WUFDUCxPQUFPO1lBQ1AsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUM3QixDQUFDLENBQUM7S0FDSjs7QUExR1UsMEJBQU87OztBQUNsQjs7R0FFRztBQUNvQiw2QkFBcUIsR0FBVyxxQ0FBcUMsQUFBaEQsQ0FBaUQ7QUFxRnRGO0lBRE4sSUFBQSxrQ0FBYyxHQUFFOzJDQUdoQjtBQVNNO0lBRE4sSUFBQSxrQ0FBYyxHQUFFO29DQU9oQjtrQkExR1UsT0FBTztJQURuQixvQ0FBa0I7R0FDTixPQUFPLENBMkduQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgVXNlckVuZ2luZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IENmblVzZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2FjaGUnO1xuaW1wb3J0IHsgVXNlckJhc2UsIFVzZXJCYXNlUHJvcHMgfSBmcm9tICcuL3VzZXItYmFzZSc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhLCBNZXRob2RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5cbmNvbnN0IEVMQVNUSUNBQ0hFX0lBTVVTRVJfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvYXdzLWVsYXN0aWNhY2hlLklhbVVzZXInKTtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhbiBFbGFzdGlDYWNoZSB1c2VyIHdpdGggSUFNIGF1dGhlbnRpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElhbVVzZXJQcm9wcyBleHRlbmRzIFVzZXJCYXNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHVzZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2FtZSBhcyB1c2VySWQuXG4gICAqL1xuICByZWFkb25seSB1c2VyTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gRWxhc3RpQ2FjaGUgdXNlciB3aXRoIElBTSBhdXRoZW50aWNhdGlvbi5cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpFbGFzdGlDYWNoZTo6VXNlclxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgSWFtVXNlciBleHRlbmRzIFVzZXJCYXNlIHtcbiAgLyoqXG4gICAqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnYXdzLWNkay1saWIuYXdzLWVsYXN0aWNhY2hlLklhbVVzZXInO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGFuIGBJYW1Vc2VyYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNJYW1Vc2VyKHg6IGFueSk6IHggaXMgSWFtVXNlciB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mICh4KSA9PT0gJ29iamVjdCcgJiYgRUxBU1RJQ0FDSEVfSUFNVVNFUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZW5naW5lIGZvciB0aGUgdXNlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmU/OiBVc2VyRW5naW5lO1xuICAvKipcbiAgICogVGhlIHVzZXIncyBJRC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHVzZXIncyBuYW1lLlxuICAgKiBGb3IgSUFNIGF1dGhlbnRpY2F0aW9uIHVzZXJOYW1lIG11c3QgYmUgZXF1YWwgdG8gdXNlcklkLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlck5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYWNjZXNzIHN0cmluZyB0aGF0IGRlZmluZXMgdGhlIHVzZXIncyBwZXJtaXNzaW9ucy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhY2Nlc3NTdHJpbmc6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1c2VyJ3MgQVJOLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHVzZXIncyBzdGF0dXMuXG4gICAqIENhbiBiZSAnYWN0aXZlJywgJ21vZGlmeWluZycsICdkZWxldGluZycuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyU3RhdHVzOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogQ2ZuVXNlcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSWFtVXNlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5lbmdpbmUgPSBwcm9wcy5lbmdpbmUgPz8gVXNlckVuZ2luZS5WQUxLRVk7XG4gICAgdGhpcy51c2VySWQgPSBwcm9wcy51c2VySWQ7XG4gICAgdGhpcy51c2VyTmFtZSA9IHByb3BzLnVzZXJOYW1lID8/IHByb3BzLnVzZXJJZDtcbiAgICB0aGlzLmFjY2Vzc1N0cmluZyA9IHByb3BzLmFjY2Vzc0NvbnRyb2wuYWNjZXNzU3RyaW5nO1xuXG4gICAgaWYgKHRoaXMudXNlck5hbWUgIT09IHRoaXMudXNlcklkKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdGb3IgSUFNIGF1dGhlbnRpY2F0aW9uLCB1c2VyTmFtZSBtdXN0IGJlIGVxdWFsIHRvIHVzZXJJZC4nLCB0aGlzKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmblVzZXIodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgZW5naW5lOiB0aGlzLmVuZ2luZSxcbiAgICAgIHVzZXJJZDogcHJvcHMudXNlcklkLFxuICAgICAgdXNlck5hbWU6IHRoaXMudXNlck5hbWUsXG4gICAgICBhY2Nlc3NTdHJpbmc6IHRoaXMuYWNjZXNzU3RyaW5nLFxuICAgICAgYXV0aGVudGljYXRpb25Nb2RlOiB7XG4gICAgICAgIFR5cGU6ICdpYW0nLFxuICAgICAgfSxcbiAgICAgIG5vUGFzc3dvcmRSZXF1aXJlZDogZmFsc2UsXG4gICAgICBwYXNzd29yZHM6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMudXNlckFybiA9IHRoaXMucmVzb3VyY2UuYXR0ckFybjtcbiAgICB0aGlzLnVzZXJTdGF0dXMgPSB0aGlzLnJlc291cmNlLmF0dHJTdGF0dXM7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgRUxBU1RJQ0FDSEVfSUFNVVNFUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgY29ubmVjdCBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gSUFNIGlkZW50aXR5LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgSUFNIGlkZW50aXR5IHRvIGdyYW50IHBlcm1pc3Npb25zIHRvLlxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGdyYW50Q29ubmVjdChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgJ2VsYXN0aWNhY2hlOkNvbm5lY3QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgY3VzdG9tIHBlcm1pc3Npb25zLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgSUFNIGlkZW50aXR5IHRvIGdyYW50IHBlcm1pc3Npb25zIHRvLlxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgYWN0aW9ucyB0byBncmFudC5cbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLnVzZXJBcm5dLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLXVzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpYW0tdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxxQ0FBc0M7QUFDdEMsaUVBQXNEO0FBQ3RELDJDQUFzRDtBQUN0RCwyQ0FBMkM7QUFDM0MsMkNBQW1EO0FBQ25ELDhFQUE4RjtBQUM5RiwwRUFBMEU7QUFFMUUsTUFBTSwwQkFBMEIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFjbEY7Ozs7R0FJRztJQUVVLE9BQU87NEJBRG5CLG9DQUFrQjs7OztzQkFDVSxvQkFBUTs7Ozt1QkFBaEIsU0FBUSxXQUFROzs7O3dDQXdGbEMsSUFBQSxrQ0FBYyxHQUFFO2lDQVdoQixJQUFBLGtDQUFjLEdBQUU7WUFWakIsdUxBQU8sWUFBWSw2REFFbEI7WUFTRCxrS0FBTyxLQUFLLDZEQU1YO1lBMUdILDZLQTJHQzs7Ozs7UUExR0M7O1dBRUc7UUFDSSxNQUFNLENBQVUscUJBQXFCLEdBQVcscUNBQXFDLENBQUM7UUFFN0Y7O1dBRUc7UUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQU07WUFDNUIsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksMEJBQTBCLElBQUksQ0FBQyxDQUFDO1NBQ2pGO1FBRUQ7O1dBRUc7UUFDYSxNQUFNLEdBaEJYLG1EQUFPLENBZ0JrQjtRQUNwQzs7OztXQUlHO1FBQ2EsTUFBTSxDQUFTO1FBQy9COzs7OztXQUtHO1FBQ2EsUUFBUSxDQUFVO1FBQ2xDOztXQUVHO1FBQ2EsWUFBWSxDQUFTO1FBQ3JDOzs7O1dBSUc7UUFDYSxPQUFPLENBQVM7UUFDaEM7Ozs7O1dBS0c7UUFDYSxVQUFVLENBQVM7UUFFbEIsUUFBUSxDQUFVO1FBRW5DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUI7WUFDM0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7Ozs7O21EQW5EUixPQUFPOzs7O1lBcURoQixtQ0FBbUM7WUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLG1CQUFVLENBQUMsTUFBTSxDQUFDO1lBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBRXJELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sSUFBSSxzQkFBZSxDQUFDLDJEQUEyRCxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9GLENBQUM7WUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkseUJBQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUM1QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLGtCQUFrQixFQUFFO29CQUNsQixJQUFJLEVBQUUsS0FBSztpQkFDWjtnQkFDRCxrQkFBa0IsRUFBRSxLQUFLO2dCQUN6QixTQUFTLEVBQUUsU0FBUzthQUNyQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFFM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsMEJBQTBCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUMxRTtRQUVEOzs7O1dBSUc7UUFFSSxZQUFZLENBQUMsT0FBdUI7WUFDekMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1NBQ25EO1FBRUQ7Ozs7O1dBS0c7UUFFSSxLQUFLLENBQUMsT0FBdUIsRUFBRSxHQUFHLE9BQWlCO1lBQ3hELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7Z0JBQzlCLE9BQU87Z0JBQ1AsT0FBTztnQkFDUCxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQzdCLENBQUMsQ0FBQztTQUNKOztZQTFHVSx1REFBTzs7Ozs7QUFBUCwwQkFBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgVXNlckVuZ2luZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IENmblVzZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2FjaGUnO1xuaW1wb3J0IHsgVXNlckJhc2UsIFVzZXJCYXNlUHJvcHMgfSBmcm9tICcuL3VzZXItYmFzZSc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhLCBNZXRob2RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5cbmNvbnN0IEVMQVNUSUNBQ0hFX0lBTVVTRVJfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvYXdzLWVsYXN0aWNhY2hlLklhbVVzZXInKTtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhbiBFbGFzdGlDYWNoZSB1c2VyIHdpdGggSUFNIGF1dGhlbnRpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElhbVVzZXJQcm9wcyBleHRlbmRzIFVzZXJCYXNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHVzZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2FtZSBhcyB1c2VySWQuXG4gICAqL1xuICByZWFkb25seSB1c2VyTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gRWxhc3RpQ2FjaGUgdXNlciB3aXRoIElBTSBhdXRoZW50aWNhdGlvbi5cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpFbGFzdGlDYWNoZTo6VXNlclxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgSWFtVXNlciBleHRlbmRzIFVzZXJCYXNlIHtcbiAgLyoqXG4gICAqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnYXdzLWNkay1saWIuYXdzLWVsYXN0aWNhY2hlLklhbVVzZXInO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGFuIGBJYW1Vc2VyYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNJYW1Vc2VyKHg6IGFueSk6IHggaXMgSWFtVXNlciB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mICh4KSA9PT0gJ29iamVjdCcgJiYgRUxBU1RJQ0FDSEVfSUFNVVNFUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZW5naW5lIGZvciB0aGUgdXNlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmU/OiBVc2VyRW5naW5lO1xuICAvKipcbiAgICogVGhlIHVzZXIncyBJRC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHVzZXIncyBuYW1lLlxuICAgKiBGb3IgSUFNIGF1dGhlbnRpY2F0aW9uIHVzZXJOYW1lIG11c3QgYmUgZXF1YWwgdG8gdXNlcklkLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlck5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYWNjZXNzIHN0cmluZyB0aGF0IGRlZmluZXMgdGhlIHVzZXIncyBwZXJtaXNzaW9ucy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhY2Nlc3NTdHJpbmc6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1c2VyJ3MgQVJOLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHVzZXIncyBzdGF0dXMuXG4gICAqIENhbiBiZSAnYWN0aXZlJywgJ21vZGlmeWluZycsICdkZWxldGluZycuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyU3RhdHVzOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogQ2ZuVXNlcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSWFtVXNlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5lbmdpbmUgPSBwcm9wcy5lbmdpbmUgPz8gVXNlckVuZ2luZS5WQUxLRVk7XG4gICAgdGhpcy51c2VySWQgPSBwcm9wcy51c2VySWQ7XG4gICAgdGhpcy51c2VyTmFtZSA9IHByb3BzLnVzZXJOYW1lID8/IHByb3BzLnVzZXJJZDtcbiAgICB0aGlzLmFjY2Vzc1N0cmluZyA9IHByb3BzLmFjY2Vzc0NvbnRyb2wuYWNjZXNzU3RyaW5nO1xuXG4gICAgaWYgKHRoaXMudXNlck5hbWUgIT09IHRoaXMudXNlcklkKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdGb3IgSUFNIGF1dGhlbnRpY2F0aW9uLCB1c2VyTmFtZSBtdXN0IGJlIGVxdWFsIHRvIHVzZXJJZC4nLCB0aGlzKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmblVzZXIodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgZW5naW5lOiB0aGlzLmVuZ2luZSxcbiAgICAgIHVzZXJJZDogcHJvcHMudXNlcklkLFxuICAgICAgdXNlck5hbWU6IHRoaXMudXNlck5hbWUsXG4gICAgICBhY2Nlc3NTdHJpbmc6IHRoaXMuYWNjZXNzU3RyaW5nLFxuICAgICAgYXV0aGVudGljYXRpb25Nb2RlOiB7XG4gICAgICAgIFR5cGU6ICdpYW0nLFxuICAgICAgfSxcbiAgICAgIG5vUGFzc3dvcmRSZXF1aXJlZDogZmFsc2UsXG4gICAgICBwYXNzd29yZHM6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMudXNlckFybiA9IHRoaXMucmVzb3VyY2UuYXR0ckFybjtcbiAgICB0aGlzLnVzZXJTdGF0dXMgPSB0aGlzLnJlc291cmNlLmF0dHJTdGF0dXM7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgRUxBU1RJQ0FDSEVfSUFNVVNFUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgY29ubmVjdCBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gSUFNIGlkZW50aXR5LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgSUFNIGlkZW50aXR5IHRvIGdyYW50IHBlcm1pc3Npb25zIHRvLlxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGdyYW50Q29ubmVjdChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgJ2VsYXN0aWNhY2hlOkNvbm5lY3QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgY3VzdG9tIHBlcm1pc3Npb25zLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgSUFNIGlkZW50aXR5IHRvIGdyYW50IHBlcm1pc3Npb25zIHRvLlxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgYWN0aW9ucyB0byBncmFudC5cbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLnVzZXJBcm5dLFxuICAgIH0pO1xuICB9XG59XG4iXX0=