cdk-dms-replication 0.2.2 → 0.2.4

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
@@ -3576,7 +3576,7 @@
3576
3576
  "hasDefaultInterfaces": true
3577
3577
  }
3578
3578
  },
3579
- "tscRootDir": "src"
3579
+ "tscRootDir": "/home/runner/work/cdk-dms-replication/cdk-dms-replication/src"
3580
3580
  },
3581
3581
  "name": "cdk-dms-replication",
3582
3582
  "readme": {
@@ -13841,6 +13841,6 @@
13841
13841
  "symbolId": "src/table-mappings:TransformationAction"
13842
13842
  }
13843
13843
  },
13844
- "version": "0.2.2",
13845
- "fingerprint": "7/djNYDi6LF4YzQJKV7H5R7EJUyoZkmkXE+dedQ71MQ="
13844
+ "version": "0.2.4",
13845
+ "fingerprint": "LwKX4+OuvCkTOYAB5mo5ZIiTrf2S7ONgV7fU1WUbbi4="
13846
13846
  }
package/lib/dms-roles.js CHANGED
@@ -1,9 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.ensureDmsVpcRole = ensureDmsVpcRole;
4
37
  exports.ensureDmsCloudWatchRole = ensureDmsCloudWatchRole;
5
- const cdk = require("aws-cdk-lib");
6
- const cr = require("aws-cdk-lib/custom-resources");
38
+ const cdk = __importStar(require("aws-cdk-lib"));
39
+ const cr = __importStar(require("aws-cdk-lib/custom-resources"));
7
40
  const constructs_1 = require("constructs");
8
41
  /**
9
42
  * Creates an account-level DMS IAM role idempotently using a custom resource.
@@ -99,4 +132,4 @@ function ensureDmsVpcRole(stack) {
99
132
  function ensureDmsCloudWatchRole(stack) {
100
133
  return ensureDmsRole(stack, 'DmsCloudWatchLogsRole', 'dms-cloudwatch-logs-role', 'arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole', 'Allows DMS to publish task logs to CloudWatch Logs', 'Custom::DmsCloudWatchLogsRole');
101
134
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG1zLXJvbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Rtcy1yb2xlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlHQSw0Q0FTQztBQVVELDBEQVNDO0FBN0hELG1DQUFtQztBQUNuQyxtREFBbUQ7QUFDbkQsMkNBQXVDO0FBRXZDOzs7OztHQUtHO0FBQ0gsU0FBUyxhQUFhLENBQ3BCLEtBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLFNBQWlCLEVBQ2pCLFdBQW1CLEVBQ25CLFlBQW9CO0lBRXBCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELElBQUksUUFBUTtRQUFFLE9BQU8sUUFBcUIsQ0FBQztJQUUzQyxNQUFNLEtBQUssR0FBRyxJQUFJLHNCQUFTLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sT0FBTyxHQUFHLGdCQUFnQixLQUFLLENBQUMsT0FBTyxTQUFTLFFBQVEsRUFBRSxDQUFDO0lBRWpFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN6QyxPQUFPLEVBQUUsWUFBWTtRQUNyQixTQUFTLEVBQUU7WUFDVDtnQkFDRSxNQUFNLEVBQUUsT0FBTztnQkFDZixTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQzNDLE1BQU0sRUFBRSxnQkFBZ0I7YUFDekI7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0QsWUFBWTtRQUNaLFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLFlBQVk7WUFDcEIsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxRQUFRO2dCQUNsQix3QkFBd0IsRUFBRSxtQkFBbUI7Z0JBQzdDLFdBQVcsRUFBRSxXQUFXO2FBQ3pCO1lBQ0Qsd0JBQXdCLEVBQUUscUJBQXFCO1lBQy9DLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDO1NBQ3ZEO1FBQ0QsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTTtRQUN2QyxNQUFNLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7S0FDMUUsQ0FBQyxDQUFDO0lBRUgsaUZBQWlGO0lBQ2pGLHNGQUFzRjtJQUN0RixNQUFNLGlCQUFpQixHQUFHLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtRQUMxRSxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSx3QkFBd0I7WUFDaEMsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixjQUFjLEVBQUUsbUJBQW1CO2FBQ3BDO1lBQ0Qsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsUUFBUSxDQUFDO1NBQ2xFO1FBQ0QsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTTtRQUN2QyxNQUFNLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7S0FDMUUsQ0FBQyxDQUFDO0lBQ0gsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVuRCwyRUFBMkU7SUFDM0UseUVBQXlFO0lBQ3pFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtRQUN2RSxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxrQkFBa0I7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUUsU0FBUzthQUNyQjtZQUNELGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLFNBQVMsQ0FBQztTQUNuRTtRQUNELGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU07UUFDdkMsTUFBTSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0tBQzFFLENBQUMsQ0FBQztJQUNILGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV2RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBZ0I7SUFDL0MsT0FBTyxhQUFhLENBQ2xCLEtBQUssRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLGlFQUFpRSxFQUNqRSw4REFBOEQsRUFDOUQsb0JBQW9CLENBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLEtBQWdCO0lBQ3RELE9BQU8sYUFBYSxDQUNsQixLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQixrRUFBa0UsRUFDbEUsb0RBQW9ELEVBQ3BELCtCQUErQixDQUNoQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYWNjb3VudC1sZXZlbCBETVMgSUFNIHJvbGUgaWRlbXBvdGVudGx5IHVzaW5nIGEgY3VzdG9tIHJlc291cmNlLlxuICogSWYgdGhlIHJvbGUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGFjY291bnQgKGUuZy4gY3JlYXRlZCBieSBhbm90aGVyIHN0YWNrKSxcbiAqIHRoZSBFbnRpdHlBbHJlYWR5RXhpc3RzIGVycm9yIGlzIHNpbGVudGx5IGlnbm9yZWQuIFRoZSByb2xlIGlzIHJldGFpbmVkIG9uXG4gKiBzdGFjayBkZWxldGlvbiBiZWNhdXNlIGl0IGlzIGFuIGFjY291bnQtbGV2ZWwgcHJlcmVxdWlzaXRlLCBub3Qgc3RhY2stb3duZWQuXG4gKi9cbmZ1bmN0aW9uIGVuc3VyZURtc1JvbGUoXG4gIHN0YWNrOiBjZGsuU3RhY2ssXG4gIGNvbnN0cnVjdElkOiBzdHJpbmcsXG4gIHJvbGVOYW1lOiBzdHJpbmcsXG4gIHBvbGljeUFybjogc3RyaW5nLFxuICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbik6IENvbnN0cnVjdCB7XG4gIGNvbnN0IGV4aXN0aW5nID0gc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoY29uc3RydWN0SWQpO1xuICBpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZyBhcyBDb25zdHJ1Y3Q7XG5cbiAgY29uc3Qgc2NvcGUgPSBuZXcgQ29uc3RydWN0KHN0YWNrLCBjb25zdHJ1Y3RJZCk7XG4gIGNvbnN0IHJvbGVBcm4gPSBgYXJuOmF3czppYW06OiR7c3RhY2suYWNjb3VudH06cm9sZS8ke3JvbGVOYW1lfWA7XG5cbiAgY29uc3QgdHJ1c3RQb2xpY3lEb2N1bWVudCA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBWZXJzaW9uOiAnMjAxMi0xMC0xNycsXG4gICAgU3RhdGVtZW50OiBbXG4gICAgICB7XG4gICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgUHJpbmNpcGFsOiB7IFNlcnZpY2U6ICdkbXMuYW1hem9uYXdzLmNvbScgfSxcbiAgICAgICAgQWN0aW9uOiAnc3RzOkFzc3VtZVJvbGUnLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcblxuICBjb25zdCByb2xlQ3JlYXRpb24gPSBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2Uoc2NvcGUsICdDcmVhdGUnLCB7XG4gICAgcmVzb3VyY2VUeXBlLFxuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnSUFNJyxcbiAgICAgIGFjdGlvbjogJ2NyZWF0ZVJvbGUnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBSb2xlTmFtZTogcm9sZU5hbWUsXG4gICAgICAgIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudDogdHJ1c3RQb2xpY3lEb2N1bWVudCxcbiAgICAgICAgRGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICAgICAgfSxcbiAgICAgIGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZzogJ0VudGl0eUFscmVhZHlFeGlzdHMnLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjci5QaHlzaWNhbFJlc291cmNlSWQub2Yocm9sZU5hbWUpLFxuICAgIH0sXG4gICAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgIHBvbGljeTogY3IuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHsgcmVzb3VyY2VzOiBbcm9sZUFybl0gfSksXG4gIH0pO1xuXG4gIC8vIEFsd2F5cyBzZXQgdGhlIHRydXN0IHBvbGljeSBhZnRlciBjcmVhdGUg4oCUIGlmIEVudGl0eUFscmVhZHlFeGlzdHMgd2FzIHJldHVybmVkXG4gIC8vIGFib3ZlIChyb2xlIHByZS1leGlzdGVkIHdpdGggd3JvbmcgdHJ1c3QgcG9saWN5KSwgdGhpcyBjb3JyZWN0cyBpdCB1bmNvbmRpdGlvbmFsbHkuXG4gIGNvbnN0IHRydXN0UG9saWN5VXBkYXRlID0gbmV3IGNyLkF3c0N1c3RvbVJlc291cmNlKHNjb3BlLCAnU2V0VHJ1c3RQb2xpY3knLCB7XG4gICAgb25DcmVhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdJQU0nLFxuICAgICAgYWN0aW9uOiAndXBkYXRlQXNzdW1lUm9sZVBvbGljeScsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIFJvbGVOYW1lOiByb2xlTmFtZSxcbiAgICAgICAgUG9saWN5RG9jdW1lbnQ6IHRydXN0UG9saWN5RG9jdW1lbnQsXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjci5QaHlzaWNhbFJlc291cmNlSWQub2YoYCR7cm9sZU5hbWV9LXRydXN0YCksXG4gICAgfSxcbiAgICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoeyByZXNvdXJjZXM6IFtyb2xlQXJuXSB9KSxcbiAgfSk7XG4gIHRydXN0UG9saWN5VXBkYXRlLm5vZGUuYWRkRGVwZW5kZW5jeShyb2xlQ3JlYXRpb24pO1xuXG4gIC8vIEF0dGFjaFJvbGVQb2xpY3kgaXMgaWRlbXBvdGVudCDigJQgcmUtYXR0YWNoaW5nIGFuIGFscmVhZHktYXR0YWNoZWQgcG9saWN5XG4gIC8vIHN1Y2NlZWRzIHdpdGhvdXQgZXJyb3IsIHNvIG5vIGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZyBpcyBuZWVkZWQgaGVyZS5cbiAgY29uc3QgcG9saWN5QXR0YWNobWVudCA9IG5ldyBjci5Bd3NDdXN0b21SZXNvdXJjZShzY29wZSwgJ0F0dGFjaFBvbGljeScsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ0lBTScsXG4gICAgICBhY3Rpb246ICdhdHRhY2hSb2xlUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgUm9sZU5hbWU6IHJvbGVOYW1lLFxuICAgICAgICBQb2xpY3lBcm46IHBvbGljeUFybixcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGNyLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihgJHtyb2xlTmFtZX0tcG9saWN5YCksXG4gICAgfSxcbiAgICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoeyByZXNvdXJjZXM6IFtyb2xlQXJuXSB9KSxcbiAgfSk7XG4gIHBvbGljeUF0dGFjaG1lbnQubm9kZS5hZGREZXBlbmRlbmN5KHRydXN0UG9saWN5VXBkYXRlKTtcblxuICByZXR1cm4gc2NvcGU7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYWNjb3VudC1sZXZlbCBgZG1zLXZwYy1yb2xlYCBJQU0gcm9sZSBjb25zdHJ1Y3QsIGNyZWF0aW5nIGl0XG4gKiBvbmNlIHBlciBzdGFjay4gRE1TIHJlcXVpcmVzIHRoaXMgZXhhY3Qgcm9sZSBuYW1lIGJlZm9yZSBpdCBjYW4gcGxhY2VcbiAqIHJlcGxpY2F0aW9uIGluc3RhbmNlcyBvciBzZXJ2ZXJsZXNzIGNvbmZpZ3MgaW5zaWRlIGEgVlBDLlxuICpcbiAqIFNhZmUgdG8gY2FsbCBmcm9tIG11bHRpcGxlIHN0YWNrcyBpbiB0aGUgc2FtZSBhY2NvdW50IOKAlCBpZiB0aGUgcm9sZSBhbHJlYWR5XG4gKiBleGlzdHMsIHRoZSB1bmRlcmx5aW5nIFNESyBjYWxsIHN1Y2NlZWRzIHNpbGVudGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlRG1zVnBjUm9sZShzdGFjazogY2RrLlN0YWNrKTogQ29uc3RydWN0IHtcbiAgcmV0dXJuIGVuc3VyZURtc1JvbGUoXG4gICAgc3RhY2ssXG4gICAgJ0Rtc1ZwY1JvbGUnLFxuICAgICdkbXMtdnBjLXJvbGUnLFxuICAgICdhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQW1hem9uRE1TVlBDTWFuYWdlbWVudFJvbGUnLFxuICAgICdBbGxvd3MgRE1TIHRvIG1hbmFnZSBWUEMgcmVzb3VyY2VzIGZvciByZXBsaWNhdGlvbiBpbnN0YW5jZXMnLFxuICAgICdDdXN0b206OkRtc1ZwY1JvbGUnLFxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGFjY291bnQtbGV2ZWwgYGRtcy1jbG91ZHdhdGNoLWxvZ3Mtcm9sZWAgSUFNIHJvbGUgY29uc3RydWN0LFxuICogY3JlYXRpbmcgaXQgb25jZSBwZXIgc3RhY2suIERNUyByZXF1aXJlcyB0aGlzIGV4YWN0IHJvbGUgbmFtZSB0byBwdWJsaXNoXG4gKiB0YXNrIGxvZ3MgdG8gQ2xvdWRXYXRjaCBMb2dzLlxuICpcbiAqIFNhZmUgdG8gY2FsbCBmcm9tIG11bHRpcGxlIHN0YWNrcyBpbiB0aGUgc2FtZSBhY2NvdW50IOKAlCBpZiB0aGUgcm9sZSBhbHJlYWR5XG4gKiBleGlzdHMsIHRoZSB1bmRlcmx5aW5nIFNESyBjYWxsIHN1Y2NlZWRzIHNpbGVudGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlRG1zQ2xvdWRXYXRjaFJvbGUoc3RhY2s6IGNkay5TdGFjayk6IENvbnN0cnVjdCB7XG4gIHJldHVybiBlbnN1cmVEbXNSb2xlKFxuICAgIHN0YWNrLFxuICAgICdEbXNDbG91ZFdhdGNoTG9nc1JvbGUnLFxuICAgICdkbXMtY2xvdWR3YXRjaC1sb2dzLXJvbGUnLFxuICAgICdhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQW1hem9uRE1TQ2xvdWRXYXRjaExvZ3NSb2xlJyxcbiAgICAnQWxsb3dzIERNUyB0byBwdWJsaXNoIHRhc2sgbG9ncyB0byBDbG91ZFdhdGNoIExvZ3MnLFxuICAgICdDdXN0b206OkRtc0Nsb3VkV2F0Y2hMb2dzUm9sZScsXG4gICk7XG59XG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG1zLXJvbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Rtcy1yb2xlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlHQSw0Q0FTQztBQVVELDBEQVNDO0FBN0hELGlEQUFtQztBQUNuQyxpRUFBbUQ7QUFDbkQsMkNBQXVDO0FBRXZDOzs7OztHQUtHO0FBQ0gsU0FBUyxhQUFhLENBQ3BCLEtBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLFNBQWlCLEVBQ2pCLFdBQW1CLEVBQ25CLFlBQW9CO0lBRXBCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELElBQUksUUFBUTtRQUFFLE9BQU8sUUFBcUIsQ0FBQztJQUUzQyxNQUFNLEtBQUssR0FBRyxJQUFJLHNCQUFTLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sT0FBTyxHQUFHLGdCQUFnQixLQUFLLENBQUMsT0FBTyxTQUFTLFFBQVEsRUFBRSxDQUFDO0lBRWpFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN6QyxPQUFPLEVBQUUsWUFBWTtRQUNyQixTQUFTLEVBQUU7WUFDVDtnQkFDRSxNQUFNLEVBQUUsT0FBTztnQkFDZixTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQzNDLE1BQU0sRUFBRSxnQkFBZ0I7YUFDekI7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0QsWUFBWTtRQUNaLFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLFlBQVk7WUFDcEIsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxRQUFRO2dCQUNsQix3QkFBd0IsRUFBRSxtQkFBbUI7Z0JBQzdDLFdBQVcsRUFBRSxXQUFXO2FBQ3pCO1lBQ0Qsd0JBQXdCLEVBQUUscUJBQXFCO1lBQy9DLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDO1NBQ3ZEO1FBQ0QsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTTtRQUN2QyxNQUFNLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7S0FDMUUsQ0FBQyxDQUFDO0lBRUgsaUZBQWlGO0lBQ2pGLHNGQUFzRjtJQUN0RixNQUFNLGlCQUFpQixHQUFHLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtRQUMxRSxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSx3QkFBd0I7WUFDaEMsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixjQUFjLEVBQUUsbUJBQW1CO2FBQ3BDO1lBQ0Qsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsUUFBUSxDQUFDO1NBQ2xFO1FBQ0QsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTTtRQUN2QyxNQUFNLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7S0FDMUUsQ0FBQyxDQUFDO0lBQ0gsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVuRCwyRUFBMkU7SUFDM0UseUVBQXlFO0lBQ3pFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtRQUN2RSxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxrQkFBa0I7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUUsU0FBUzthQUNyQjtZQUNELGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLFNBQVMsQ0FBQztTQUNuRTtRQUNELGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU07UUFDdkMsTUFBTSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0tBQzFFLENBQUMsQ0FBQztJQUNILGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV2RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBZ0I7SUFDL0MsT0FBTyxhQUFhLENBQ2xCLEtBQUssRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLGlFQUFpRSxFQUNqRSw4REFBOEQsRUFDOUQsb0JBQW9CLENBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLEtBQWdCO0lBQ3RELE9BQU8sYUFBYSxDQUNsQixLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQixrRUFBa0UsRUFDbEUsb0RBQW9ELEVBQ3BELCtCQUErQixDQUNoQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYWNjb3VudC1sZXZlbCBETVMgSUFNIHJvbGUgaWRlbXBvdGVudGx5IHVzaW5nIGEgY3VzdG9tIHJlc291cmNlLlxuICogSWYgdGhlIHJvbGUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGFjY291bnQgKGUuZy4gY3JlYXRlZCBieSBhbm90aGVyIHN0YWNrKSxcbiAqIHRoZSBFbnRpdHlBbHJlYWR5RXhpc3RzIGVycm9yIGlzIHNpbGVudGx5IGlnbm9yZWQuIFRoZSByb2xlIGlzIHJldGFpbmVkIG9uXG4gKiBzdGFjayBkZWxldGlvbiBiZWNhdXNlIGl0IGlzIGFuIGFjY291bnQtbGV2ZWwgcHJlcmVxdWlzaXRlLCBub3Qgc3RhY2stb3duZWQuXG4gKi9cbmZ1bmN0aW9uIGVuc3VyZURtc1JvbGUoXG4gIHN0YWNrOiBjZGsuU3RhY2ssXG4gIGNvbnN0cnVjdElkOiBzdHJpbmcsXG4gIHJvbGVOYW1lOiBzdHJpbmcsXG4gIHBvbGljeUFybjogc3RyaW5nLFxuICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbik6IENvbnN0cnVjdCB7XG4gIGNvbnN0IGV4aXN0aW5nID0gc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoY29uc3RydWN0SWQpO1xuICBpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZyBhcyBDb25zdHJ1Y3Q7XG5cbiAgY29uc3Qgc2NvcGUgPSBuZXcgQ29uc3RydWN0KHN0YWNrLCBjb25zdHJ1Y3RJZCk7XG4gIGNvbnN0IHJvbGVBcm4gPSBgYXJuOmF3czppYW06OiR7c3RhY2suYWNjb3VudH06cm9sZS8ke3JvbGVOYW1lfWA7XG5cbiAgY29uc3QgdHJ1c3RQb2xpY3lEb2N1bWVudCA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBWZXJzaW9uOiAnMjAxMi0xMC0xNycsXG4gICAgU3RhdGVtZW50OiBbXG4gICAgICB7XG4gICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgUHJpbmNpcGFsOiB7IFNlcnZpY2U6ICdkbXMuYW1hem9uYXdzLmNvbScgfSxcbiAgICAgICAgQWN0aW9uOiAnc3RzOkFzc3VtZVJvbGUnLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcblxuICBjb25zdCByb2xlQ3JlYXRpb24gPSBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2Uoc2NvcGUsICdDcmVhdGUnLCB7XG4gICAgcmVzb3VyY2VUeXBlLFxuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnSUFNJyxcbiAgICAgIGFjdGlvbjogJ2NyZWF0ZVJvbGUnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBSb2xlTmFtZTogcm9sZU5hbWUsXG4gICAgICAgIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudDogdHJ1c3RQb2xpY3lEb2N1bWVudCxcbiAgICAgICAgRGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICAgICAgfSxcbiAgICAgIGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZzogJ0VudGl0eUFscmVhZHlFeGlzdHMnLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjci5QaHlzaWNhbFJlc291cmNlSWQub2Yocm9sZU5hbWUpLFxuICAgIH0sXG4gICAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgIHBvbGljeTogY3IuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHsgcmVzb3VyY2VzOiBbcm9sZUFybl0gfSksXG4gIH0pO1xuXG4gIC8vIEFsd2F5cyBzZXQgdGhlIHRydXN0IHBvbGljeSBhZnRlciBjcmVhdGUg4oCUIGlmIEVudGl0eUFscmVhZHlFeGlzdHMgd2FzIHJldHVybmVkXG4gIC8vIGFib3ZlIChyb2xlIHByZS1leGlzdGVkIHdpdGggd3JvbmcgdHJ1c3QgcG9saWN5KSwgdGhpcyBjb3JyZWN0cyBpdCB1bmNvbmRpdGlvbmFsbHkuXG4gIGNvbnN0IHRydXN0UG9saWN5VXBkYXRlID0gbmV3IGNyLkF3c0N1c3RvbVJlc291cmNlKHNjb3BlLCAnU2V0VHJ1c3RQb2xpY3knLCB7XG4gICAgb25DcmVhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdJQU0nLFxuICAgICAgYWN0aW9uOiAndXBkYXRlQXNzdW1lUm9sZVBvbGljeScsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIFJvbGVOYW1lOiByb2xlTmFtZSxcbiAgICAgICAgUG9saWN5RG9jdW1lbnQ6IHRydXN0UG9saWN5RG9jdW1lbnQsXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjci5QaHlzaWNhbFJlc291cmNlSWQub2YoYCR7cm9sZU5hbWV9LXRydXN0YCksXG4gICAgfSxcbiAgICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoeyByZXNvdXJjZXM6IFtyb2xlQXJuXSB9KSxcbiAgfSk7XG4gIHRydXN0UG9saWN5VXBkYXRlLm5vZGUuYWRkRGVwZW5kZW5jeShyb2xlQ3JlYXRpb24pO1xuXG4gIC8vIEF0dGFjaFJvbGVQb2xpY3kgaXMgaWRlbXBvdGVudCDigJQgcmUtYXR0YWNoaW5nIGFuIGFscmVhZHktYXR0YWNoZWQgcG9saWN5XG4gIC8vIHN1Y2NlZWRzIHdpdGhvdXQgZXJyb3IsIHNvIG5vIGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZyBpcyBuZWVkZWQgaGVyZS5cbiAgY29uc3QgcG9saWN5QXR0YWNobWVudCA9IG5ldyBjci5Bd3NDdXN0b21SZXNvdXJjZShzY29wZSwgJ0F0dGFjaFBvbGljeScsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ0lBTScsXG4gICAgICBhY3Rpb246ICdhdHRhY2hSb2xlUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgUm9sZU5hbWU6IHJvbGVOYW1lLFxuICAgICAgICBQb2xpY3lBcm46IHBvbGljeUFybixcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGNyLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihgJHtyb2xlTmFtZX0tcG9saWN5YCksXG4gICAgfSxcbiAgICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoeyByZXNvdXJjZXM6IFtyb2xlQXJuXSB9KSxcbiAgfSk7XG4gIHBvbGljeUF0dGFjaG1lbnQubm9kZS5hZGREZXBlbmRlbmN5KHRydXN0UG9saWN5VXBkYXRlKTtcblxuICByZXR1cm4gc2NvcGU7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYWNjb3VudC1sZXZlbCBgZG1zLXZwYy1yb2xlYCBJQU0gcm9sZSBjb25zdHJ1Y3QsIGNyZWF0aW5nIGl0XG4gKiBvbmNlIHBlciBzdGFjay4gRE1TIHJlcXVpcmVzIHRoaXMgZXhhY3Qgcm9sZSBuYW1lIGJlZm9yZSBpdCBjYW4gcGxhY2VcbiAqIHJlcGxpY2F0aW9uIGluc3RhbmNlcyBvciBzZXJ2ZXJsZXNzIGNvbmZpZ3MgaW5zaWRlIGEgVlBDLlxuICpcbiAqIFNhZmUgdG8gY2FsbCBmcm9tIG11bHRpcGxlIHN0YWNrcyBpbiB0aGUgc2FtZSBhY2NvdW50IOKAlCBpZiB0aGUgcm9sZSBhbHJlYWR5XG4gKiBleGlzdHMsIHRoZSB1bmRlcmx5aW5nIFNESyBjYWxsIHN1Y2NlZWRzIHNpbGVudGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlRG1zVnBjUm9sZShzdGFjazogY2RrLlN0YWNrKTogQ29uc3RydWN0IHtcbiAgcmV0dXJuIGVuc3VyZURtc1JvbGUoXG4gICAgc3RhY2ssXG4gICAgJ0Rtc1ZwY1JvbGUnLFxuICAgICdkbXMtdnBjLXJvbGUnLFxuICAgICdhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQW1hem9uRE1TVlBDTWFuYWdlbWVudFJvbGUnLFxuICAgICdBbGxvd3MgRE1TIHRvIG1hbmFnZSBWUEMgcmVzb3VyY2VzIGZvciByZXBsaWNhdGlvbiBpbnN0YW5jZXMnLFxuICAgICdDdXN0b206OkRtc1ZwY1JvbGUnLFxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGFjY291bnQtbGV2ZWwgYGRtcy1jbG91ZHdhdGNoLWxvZ3Mtcm9sZWAgSUFNIHJvbGUgY29uc3RydWN0LFxuICogY3JlYXRpbmcgaXQgb25jZSBwZXIgc3RhY2suIERNUyByZXF1aXJlcyB0aGlzIGV4YWN0IHJvbGUgbmFtZSB0byBwdWJsaXNoXG4gKiB0YXNrIGxvZ3MgdG8gQ2xvdWRXYXRjaCBMb2dzLlxuICpcbiAqIFNhZmUgdG8gY2FsbCBmcm9tIG11bHRpcGxlIHN0YWNrcyBpbiB0aGUgc2FtZSBhY2NvdW50IOKAlCBpZiB0aGUgcm9sZSBhbHJlYWR5XG4gKiBleGlzdHMsIHRoZSB1bmRlcmx5aW5nIFNESyBjYWxsIHN1Y2NlZWRzIHNpbGVudGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlRG1zQ2xvdWRXYXRjaFJvbGUoc3RhY2s6IGNkay5TdGFjayk6IENvbnN0cnVjdCB7XG4gIHJldHVybiBlbnN1cmVEbXNSb2xlKFxuICAgIHN0YWNrLFxuICAgICdEbXNDbG91ZFdhdGNoTG9nc1JvbGUnLFxuICAgICdkbXMtY2xvdWR3YXRjaC1sb2dzLXJvbGUnLFxuICAgICdhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQW1hem9uRE1TQ2xvdWRXYXRjaExvZ3NSb2xlJyxcbiAgICAnQWxsb3dzIERNUyB0byBwdWJsaXNoIHRhc2sgbG9ncyB0byBDbG91ZFdhdGNoIExvZ3MnLFxuICAgICdDdXN0b206OkRtc0Nsb3VkV2F0Y2hMb2dzUm9sZScsXG4gICk7XG59XG4iXX0=
package/lib/endpoint.js CHANGED
@@ -1,10 +1,42 @@
1
1
  "use strict";
2
- var _a;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
3
35
  Object.defineProperty(exports, "__esModule", { value: true });
4
36
  exports.DmsEndpoint = void 0;
5
37
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const cdk = require("aws-cdk-lib");
7
- const dms = require("aws-cdk-lib/aws-dms");
38
+ const cdk = __importStar(require("aws-cdk-lib"));
39
+ const dms = __importStar(require("aws-cdk-lib/aws-dms"));
8
40
  const constructs_1 = require("constructs");
9
41
  const enums_1 = require("./enums");
10
42
  /**
@@ -27,6 +59,21 @@ const enums_1 = require("./enums");
27
59
  * });
28
60
  */
29
61
  class DmsEndpoint extends constructs_1.Construct {
62
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-dms-replication.DmsEndpoint", version: "0.2.4" };
63
+ // ---------------------------------------------------------------------------
64
+ // Static validation data — declared first to satisfy member-ordering rules
65
+ // ---------------------------------------------------------------------------
66
+ static TARGET_ONLY_ENGINES = [
67
+ enums_1.EndpointEngine.DYNAMODB,
68
+ enums_1.EndpointEngine.KINESIS,
69
+ enums_1.EndpointEngine.KAFKA,
70
+ enums_1.EndpointEngine.OPENSEARCH,
71
+ enums_1.EndpointEngine.NEPTUNE,
72
+ enums_1.EndpointEngine.REDIS,
73
+ ];
74
+ static SOURCE_ONLY_ENGINES = [
75
+ enums_1.EndpointEngine.IBM_DB2_ZOS,
76
+ ];
30
77
  static validateEngineEndpointType(engine, endpointType) {
31
78
  if (endpointType === enums_1.EndpointType.SOURCE &&
32
79
  DmsEndpoint.TARGET_ONLY_ENGINES.includes(engine)) {
@@ -37,6 +84,13 @@ class DmsEndpoint extends constructs_1.Construct {
37
84
  throw new Error(`Engine '${engine}' is only supported as a SOURCE endpoint, not as a TARGET.`);
38
85
  }
39
86
  }
87
+ // ---------------------------------------------------------------------------
88
+ // Instance fields
89
+ // ---------------------------------------------------------------------------
90
+ /** The underlying CloudFormation endpoint resource. */
91
+ cfnEndpoint;
92
+ /** ARN of the DMS endpoint. */
93
+ endpointArn;
40
94
  constructor(scope, id, props) {
41
95
  super(scope, id);
42
96
  DmsEndpoint.validateEngineEndpointType(props.engine, props.endpointType);
@@ -383,20 +437,4 @@ class DmsEndpoint extends constructs_1.Construct {
383
437
  }
384
438
  }
385
439
  exports.DmsEndpoint = DmsEndpoint;
386
- _a = JSII_RTTI_SYMBOL_1;
387
- DmsEndpoint[_a] = { fqn: "cdk-dms-replication.DmsEndpoint", version: "0.2.2" };
388
- // ---------------------------------------------------------------------------
389
- // Static validation data — declared first to satisfy member-ordering rules
390
- // ---------------------------------------------------------------------------
391
- DmsEndpoint.TARGET_ONLY_ENGINES = [
392
- enums_1.EndpointEngine.DYNAMODB,
393
- enums_1.EndpointEngine.KINESIS,
394
- enums_1.EndpointEngine.KAFKA,
395
- enums_1.EndpointEngine.OPENSEARCH,
396
- enums_1.EndpointEngine.NEPTUNE,
397
- enums_1.EndpointEngine.REDIS,
398
- ];
399
- DmsEndpoint.SOURCE_ONLY_ENGINES = [
400
- enums_1.EndpointEngine.IBM_DB2_ZOS,
401
- ];
402
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLDJDQUF1QztBQWtCdkMsbUNBQXVEO0FBbUl2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsc0JBQVM7SUFrQmhDLE1BQU0sQ0FBQywwQkFBMEIsQ0FDdkMsTUFBc0IsRUFDdEIsWUFBMEI7UUFFMUIsSUFDRSxZQUFZLEtBQUssb0JBQVksQ0FBQyxNQUFNO1lBQ3BDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQ2hELENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLFdBQVcsTUFBTSw0REFBNEQsQ0FDOUUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUNFLFlBQVksS0FBSyxvQkFBWSxDQUFDLE1BQU07WUFDcEMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDaEQsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsV0FBVyxNQUFNLDREQUE0RCxDQUM5RSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFZRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsV0FBVyxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXpFLE1BQU0sa0JBQWtCLEdBQ3RCLEtBQUssQ0FBQyxrQkFBa0I7WUFDeEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV0RSxJQUFJLENBQUMs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QUFJLElBQUksSUFBSTtZQUNwQixtQkFBbUIsRUFBRSxDQUFDLENBQUMsbUJBQW1CO1lBQzFDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtZQUNwQixZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVk7WUFDNUIsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFO1lBQzVDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxtQkFBbUI7U0FDM0MsQ0FBQztJQUNKLENBQUM7O0FBL2FILGtDQWliQzs7O0FBaGJDLDhFQUE4RTtBQUM5RSwyRUFBMkU7QUFDM0UsOEVBQThFO0FBRXRELCtCQUFtQixHQUFxQjtJQUM5RCxzQkFBYyxDQUFDLFFBQVE7SUFDdkIsc0JBQWMsQ0FBQyxPQUFPO0lBQ3RCLHNCQUFjLENBQUMsS0FBSztJQUNwQixzQkFBYyxDQUFDLFVBQVU7SUFDekIsc0JBQWMsQ0FBQyxPQUFPO0lBQ3RCLHNCQUFjLENBQUMsS0FBSztDQUNyQixDQUFDO0FBRXNCLCtCQUFtQixHQUFxQjtJQUM5RCxzQkFBYyxDQUFDLFdBQVc7Q0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBkbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWRtcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7XG4gIERiMlNldHRpbmdzLFxuICBEeW5hbW9EYlNldHRpbmdzLFxuICBLYWZrYVNldHRpbmdzLFxuICBLaW5lc2lzU2V0dGluZ3MsXG4gIE1vbmdvRGJTZXR0aW5ncyxcbiAgTXlTcWxTZXR0aW5ncyxcbiAgTmVwdHVuZVNldHRpbmdzLFxuICBPcGVuU2VhcmNoU2V0dGluZ3MsXG4gIE9yYWNsZVNldHRpbmdzLFxuICBQb3N0Z3JlU3FsU2V0dGluZ3MsXG4gIFJlZGlzU2V0dGluZ3MsXG4gIFJlZHNoaWZ0U2V0dGluZ3MsXG4gIFMzU2V0dGluZ3MsXG4gIFNhcEFzZVNldHRpbmdzLFxuICBTcWxTZXJ2ZXJTZXR0aW5ncyxcbn0gZnJvbSAnLi9lbmRwb2ludC1zZXR0aW5ncyc7XG5pbXBvcnQgeyBFbmRwb2ludEVuZ2luZSwgRW5kcG9pbnRUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5cbi8qKlxuICogTWluaW1hbCBjb250cmFjdCBmb3IgYSBETVMgZW5kcG9pbnQgdGhhdCBjYW4gYmUgdXNlZCBhcyBhIHNvdXJjZSBvciB0YXJnZXRcbiAqIGluIGEge0BsaW5rIERtc1JlcGxpY2F0aW9uVGFza30gb3Ige0BsaW5rIERtc01pZ3JhdGlvblBpcGVsaW5lfS5cbiAqXG4gKiBVc2UgdGhpcyBpbnRlcmZhY2Ugd2hlbiByZWZlcmVuY2luZyBhbiBlbmRwb2ludCBjcmVhdGVkIG91dHNpZGUgb2YgdGhpc1xuICogY29uc3RydWN0IChlLmcuIGJ5IEFSTikuIEZvciBlbmRwb2ludHMgY3JlYXRlZCBieSB0aGlzIGxpYnJhcnksIHVzZSB0aGVcbiAqIGNvbmNyZXRlIHtAbGluayBEbXNFbmRwb2ludH0gY2xhc3MgZGlyZWN0bHkg4oCUIGl0IGV4cG9zZXMgYGNmbkVuZHBvaW50YFxuICogZm9yIEwxIGVzY2FwZS1oYXRjaCBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURtc0VuZHBvaW50IHtcbiAgLyoqIEFSTiBvZiB0aGUgRE1TIGVuZHBvaW50LiAqL1xuICByZWFkb25seSBlbmRwb2ludEFybjogc3RyaW5nO1xufVxuXG4vKiogUHJvcHMgZm9yIHtAbGluayBEbXNFbmRwb2ludH0uICovXG5leHBvcnQgaW50ZXJmYWNlIERtc0VuZHBvaW50UHJvcHMge1xuICAvKiogV2hldGhlciB0aGlzIGlzIGEgc291cmNlIG9yIHRhcmdldCBlbmRwb2ludC4gKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGU7XG5cbiAgLyoqIERhdGFiYXNlIGVuZ2luZSBmb3IgdGhpcyBlbmRwb2ludC4gKi9cbiAgcmVhZG9ubHkgZW5naW5lOiBFbmRwb2ludEVuZ2luZTtcblxuICAvKipcbiAgICogTG9naWNhbCBpZGVudGlmaWVyIG9mIHRoZSBlbmRwb2ludCAodXNlZCBhcyB0aGUgRE1TIGVuZHBvaW50IGlkZW50aWZpZXIpLlxuICAgKiBBdXRvLWdlbmVyYXRlZCBmcm9tIHRoZSBjb25zdHJ1Y3QgSUQgaWYgbm90IHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRJZGVudGlmaWVyPzogc3RyaW5nO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQ29tbW9uIGNvbm5lY3Rpb24gc2V0dGluZ3MgKHVzZWQgZm9yIG1vc3QgZW5naW5lIHR5cGVzKVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIERhdGFiYXNlIHNlcnZlciBob3N0bmFtZSBvciBJUCBhZGRyZXNzLiAqL1xuICByZWFkb25seSBzZXJ2ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKiBEYXRhYmFzZSBwb3J0LiAqL1xuICByZWFkb25seSBwb3J0PzogbnVtYmVyO1xuXG4gIC8qKiBEYXRhYmFzZSB1c2VyIG5hbWUuIFVzZWQgd2hlbiBub3QgdXNpbmcgU2VjcmV0cyBNYW5hZ2VyLiAqL1xuICByZWFkb25seSB1c2VybmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRGF0YWJhc2UgcGFzc3dvcmQuXG4gICAqXG4gICAqIEB3YXJuaW5nIFRoZSByZXNvbHZlZCB2YWx1ZSBpcyBzdG9yZWQgYXMgKipwbGFpbnRleHQqKiBpbiB0aGUgQ2xvdWRGb3JtYXRpb25cbiAgICogdGVtcGxhdGUgYW5kIHN0YXRlIGZpbGUuIEZvciBwcm9kdWN0aW9uIHdvcmtsb2FkcywgdXNlIFNlY3JldHMgTWFuYWdlclxuICAgKiBpbnN0ZWFkOiBzZXQgYHNlY3JldHNNYW5hZ2VyU2VjcmV0SWRgIGFuZCBgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuYFxuICAgKiBpbiB0aGUgZW5naW5lLXNwZWNpZmljIHNldHRpbmdzIChlLmcuIGBteVNxbFNldHRpbmdzYCwgYHBvc3RncmVTcWxTZXR0aW5nc2ApXG4gICAqIGFuZCBvbWl0IHRoaXMgcHJvcGVydHkgZW50aXJlbHkuXG4gICAqL1xuICByZWFkb25seSBwYXNzd29yZD86IGNkay5TZWNyZXRWYWx1ZTtcblxuICAvKiogRGF0YWJhc2UgbmFtZSBvbiB0aGUgZW5kcG9pbnQuICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIGFzIGEgc2VtaWNvbG9uLXNlcGFyYXRlZCBzdHJpbmcuXG4gICAqIFJlZmVyIHRvIHRoZSBETVMgZG9jdW1lbnRhdGlvbiBmb3IgZW5naW5lLXNwZWNpZmljIGF0dHJpYnV0ZXMuXG4gICAqL1xuICByZWFkb25seSBleHRyYUNvbm5lY3Rpb25BdHRyaWJ1dGVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIFNTTCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgY2VydGlmaWNhdGUuXG4gICAqIFJlcXVpcmVkIHdoZW4gc3NsTW9kZSBpcyAndmVyaWZ5LWNhJyBvciAndmVyaWZ5LWZ1bGwnLlxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGlmaWNhdGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNTTCBtb2RlIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICogQGRlZmF1bHQgXCJub25lXCJcbiAgICovXG4gIHJlYWRvbmx5IHNzbE1vZGU/OiBzdHJpbmc7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBFbmdpbmUtc3BlY2lmaWMgc2V0dGluZ3MgKHNldCBvbmx5IHRoZSBvbmUgbWF0Y2hpbmcgYGVuZ2luZWApXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogU2V0dGluZ3MgZm9yIE15U1FMIG9yIE1hcmlhREIgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSBteVNxbFNldHRpbmdzPzogTXlTcWxTZXR0aW5ncztcblxuICAvKiogU2V0dGluZ3MgZm9yIFBvc3RncmVTUUwgb3IgQXVyb3JhIFBvc3RncmVTUUwgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSBwb3N0Z3JlU3FsU2V0dGluZ3M/OiBQb3N0Z3JlU3FsU2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBPcmFjbGUgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSBvcmFjbGVTZXR0aW5ncz86IE9yYWNsZVNldHRpbmdzO1xuXG4gIC8qKiBTZXR0aW5ncyBmb3IgTWljcm9zb2Z0IFNRTCBTZXJ2ZXIgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSBzcWxTZXJ2ZXJTZXR0aW5ncz86IFNxbFNlcnZlclNldHRpbmdzO1xuXG4gIC8qKiBTZXR0aW5ncyBmb3IgU0FQIEFTRSAoU3liYXNlKSBlbmRwb2ludHMuICovXG4gIHJlYWRvbmx5IHNhcEFzZVNldHRpbmdzPzogU2FwQXNlU2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBJQk0gRGIyIExVVyBlbmRwb2ludHMuICovXG4gIHJlYWRvbmx5IGRiMlNldHRpbmdzPzogRGIyU2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBNb25nb0RCIG9yIEFtYXpvbiBEb2N1bWVudERCIGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkgbW9uZ29EYlNldHRpbmdzPzogTW9uZ29EYlNldHRpbmdzO1xuXG4gIC8qKiBTZXR0aW5ncyBmb3IgQW1hem9uIFMzIGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkgczNTZXR0aW5ncz86IFMzU2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBBbWF6b24gRHluYW1vREIgdGFyZ2V0IGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkgZHluYW1vRGJTZXR0aW5ncz86IER5bmFtb0RiU2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBBbWF6b24gUmVkc2hpZnQgdGFyZ2V0IGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkgcmVkc2hpZnRTZXR0aW5ncz86IFJlZHNoaWZ0U2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBBbWF6b24gS2luZXNpcyBEYXRhIFN0cmVhbXMgdGFyZ2V0IGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkga2luZXNpc1NldHRpbmdzPzogS2luZXNpc1NldHRpbmdzO1xuXG4gIC8qKiBTZXR0aW5ncyBmb3IgQXBhY2hlIEthZmthIChhbmQgQW1hem9uIE1TSykgdGFyZ2V0IGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkga2Fma2FTZXR0aW5ncz86IEthZmthU2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBBbWF6b24gT3BlblNlYXJjaCBTZXJ2aWNlIHRhcmdldCBlbmRwb2ludHMuICovXG4gIHJlYWRvbmx5IG9wZW5TZWFyY2hTZXR0aW5ncz86IE9wZW5TZWFyY2hTZXR0aW5ncztcblxuICAvKiogU2V0dGluZ3MgZm9yIEFtYXpvbiBOZXB0dW5lIHRhcmdldCBlbmRwb2ludHMuICovXG4gIHJlYWRvbmx5IG5lcHR1bmVTZXR0aW5ncz86IE5lcHR1bmVTZXR0aW5ncztcblxuICAvKiogU2V0dGluZ3MgZm9yIEFtYXpvbiBFbGFzdGlDYWNoZSBmb3IgUmVkaXMgdGFyZ2V0IGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkgcmVkaXNTZXR0aW5ncz86IFJlZGlzU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIFJlbW92YWwgcG9saWN5IGZvciB0aGUgZW5kcG9pbnQgcmVzb3VyY2UuXG4gICAqIEBkZWZhdWx0IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1lcbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBjZGsuUmVtb3ZhbFBvbGljeTtcbn1cblxuLyoqXG4gKiBBIERNUyBlbmRwb2ludCBjb25zdHJ1Y3Qgc3VwcG9ydGluZyBldmVyeSBlbmdpbmUgdGhhdCBETVMgc3VwcG9ydHMuXG4gKlxuICogU2V0IGBlbmdpbmVgIHRvIHRoZSBkZXNpcmVkIHtAbGluayBFbmRwb2ludEVuZ2luZX0gYW5kIHN1cHBseSB0aGVcbiAqIG1hdGNoaW5nIGAqU2V0dGluZ3NgIHByb3BlcnR5LiBBbGwgb3RoZXIgYCpTZXR0aW5nc2AgcHJvcGVydGllcyBhcmVcbiAqIGlnbm9yZWQgYXQgcnVudGltZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTXlTUUwgc291cmNlXG4gKiBuZXcgRG1zRW5kcG9pbnQodGhpcywgJ1NvdXJjZScsIHtcbiAqICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGUuU09VUkNFLFxuICogICBlbmdpbmU6IEVuZHBvaW50RW5naW5lLk1ZU1FMLFxuICogICBzZXJ2ZXJOYW1lOiAnbXlzcWwuZXhhbXBsZS5jb20nLFxuICogICBwb3J0OiAzMzA2LFxuICogICB1c2VybmFtZTogJ2Rtc191c2VyJyxcbiAqICAgcGFzc3dvcmQ6IGNkay5TZWNyZXRWYWx1ZS5zc21TZWN1cmUoJy9kbXMvbXlzcWwvcGFzc3dvcmQnKSxcbiAqICAgZGF0YWJhc2VOYW1lOiAnbXlkYicsXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIERtc0VuZHBvaW50IGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSURtc0VuZHBvaW50IHtcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFN0YXRpYyB2YWxpZGF0aW9uIGRhdGEg4oCUIGRlY2xhcmVkIGZpcnN0IHRvIHNhdGlzZnkgbWVtYmVyLW9yZGVyaW5nIHJ1bGVzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRBUkdFVF9PTkxZX0VOR0lORVM6IEVuZHBvaW50RW5naW5lW10gPSBbXG4gICAgRW5kcG9pbnRFbmdpbmUuRFlOQU1PREIsXG4gICAgRW5kcG9pbnRFbmdpbmUuS0lORVNJUyxcbiAgICBFbmRwb2ludEVuZ2luZS5LQUZLQSxcbiAgICBFbmRwb2ludEVuZ2luZS5PUEVOU0VBUkNILFxuICAgIEVuZHBvaW50RW5naW5lLk5FUFRVTkUsXG4gICAgRW5kcG9pbnRFbmdpbmUuUkVESVMsXG4gIF07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgU09VUkNFX09OTFlfRU5HSU5FUzogRW5kcG9pbnRFbmdpbmVbXSA9IFtcbiAgICBFbmRwb2ludEVuZ2luZS5JQk1fREIyX1pPUyxcbiAgXTtcblxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUVuZ2luZUVuZHBvaW50VHlwZShcbiAgICBlbmdpbmU6IEVuZHBvaW50RW5naW5lLFxuICAgIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlLFxuICApOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBlbmRwb2ludFR5cGUgPT09IEVuZHBvaW50VHlwZS5TT1VSQ0UgJiZcbiAgICAgIERtc0VuZHBvaW50LlRBUkdFVF9PTkxZX0VOR0lORVMuaW5jbHVkZXMoZW5naW5lKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRW5naW5lICcke2VuZ2luZX0nIGlzIG9ubHkgc3VwcG9ydGVkIGFzIGEgVEFSR0VUIGVuZHBvaW50LCBub3QgYXMgYSBTT1VSQ0UuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGVuZHBvaW50VHlwZSA9PT0gRW5kcG9pbnRUeXBlLlRBUkdFVCAmJlxuICAgICAgRG1zRW5kcG9pbnQuU09VUkNFX09OTFlfRU5HSU5FUy5pbmNsdWRlcyhlbmdpbmUpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBFbmdpbmUgJyR7ZW5naW5lfScgaXMgb25seSBzdXBwb3J0ZWQgYXMgYSBTT1VSQ0UgZW5kcG9pbnQsIG5vdCBhcyBhIFRBUkdFVC5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSW5zdGFuY2UgZmllbGRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBDbG91ZEZvcm1hdGlvbiBlbmRwb2ludCByZXNvdXJjZS4gKi9cbiAgcmVhZG9ubHkgY2ZuRW5kcG9pbnQ6IGRtcy5DZm5FbmRwb2ludDtcblxuICAvKiogQVJOIG9mIHRoZSBETVMgZW5kcG9pbnQuICovXG4gIHJlYWRvbmx5IGVuZHBvaW50QXJuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgRG1zRW5kcG9pbnQudmFsaWRhdGVFbmdpbmVFbmRwb2ludFR5cGUocHJvcHMuZW5naW5lLCBwcm9wcy5lbmRwb2ludFR5cGUpO1xuXG4gICAgY29uc3QgZW5kcG9pbnRJZGVudGlmaWVyID1cbiAgICAgIHByb3BzLmVuZHBvaW50SWRlbnRpZmllciA/P1xuICAgICAgY2RrLk5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogNjMgfSkudG9Mb3dlckNhc2UoKTtcblxuICAgIHRoaXMuY2ZuRW5kcG9pbnQgPSBuZXcgZG1zLkNmbkVuZHBvaW50KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGVuZHBvaW50VHlwZTogcHJvcHMuZW5kcG9pbnRUeXBlLFxuICAgICAgZW5naW5lTmFtZTogcHJvcHMuZW5naW5lLFxuICAgICAgZW5kcG9pbnRJZGVudGlmaWVyLFxuICAgICAgc2VydmVyTmFtZTogcHJvcHMuc2VydmVyTmFtZSxcbiAgICAgIHBvcnQ6IHByb3BzLnBvcnQsXG4gICAgICB1c2VybmFtZTogcHJvcHMudXNlcm5hbWUsXG4gICAgICBwYXNzd29yZDogcHJvcHMucGFzc3dvcmQ/LnVuc2FmZVVud3JhcCgpLFxuICAgICAgZGF0YWJhc2VOYW1lOiBwcm9wcy5kYXRhYmFzZU5hbWUsXG4gICAgICBleHRyYUNvbm5lY3Rpb25BdHRyaWJ1dGVzOiBwcm9wcy5leHRyYUNvbm5lY3Rpb25BdHRyaWJ1dGVzLFxuICAgICAgY2VydGlmaWNhdGVBcm46IHByb3BzLmNlcnRpZmljYXRlQXJuLFxuICAgICAgc3NsTW9kZTogcHJvcHMuc3NsTW9kZSA/PyAnbm9uZScsXG5cbiAgICAgIC8vIEVuZ2luZS1zcGVjaWZpYyBzZXR0aW5ncyDigJQgb25seSBvbmUgc2hvdWxkIGJlIHNldCBwZXIgZW5kcG9pbnRcbiAgICAgIG15U3FsU2V0dGluZ3M6IHRoaXMuYnVpbGRNeVNxbFNldHRpbmdzKHByb3BzKSxcbiAgICAgIHBvc3RncmVTcWxTZXR0aW5nczogdGhpcy5idWlsZFBvc3RncmVTcWxTZXR0aW5ncyhwcm9wcyksXG4gICAgICBvcmFjbGVTZXR0aW5nczogdGhpcy5idWlsZE9yYWNsZVNldHRpbmdzKHByb3BzKSxcbiAgICAgIG1pY3Jvc29mdFNxbFNlcnZlclNldHRpbmdzOiB0aGlzLmJ1aWxkU3FsU2VydmVyU2V0dGluZ3MocHJvcHMpLFxuICAgICAgc3liYXNlU2V0dGluZ3M6IHRoaXMuYnVpbGRTYXBBc2VTZXR0aW5ncyhwcm9wcyksXG4gICAgICBpYm1EYjJTZXR0aW5nczogdGhpcy5idWlsZERiMlNldHRpbmdzKHByb3BzKSxcbiAgICAgIG1vbmdvRGJTZXR0aW5nczogdGhpcy5idWlsZE1vbmdvRGJTZXR0aW5ncyhwcm9wcyksXG4gICAgICBzM1NldHRpbmdzOiB0aGlzLmJ1aWxkUzNTZXR0aW5ncyhwcm9wcyksXG4gICAgICBkeW5hbW9EYlNldHRpbmdzOiB0aGlzLmJ1aWxkRHluYW1vRGJTZXR0aW5ncyhwcm9wcyksXG4gICAgICByZWRzaGlmdFNldHRpbmdzOiB0aGlzLmJ1aWxkUmVkc2hpZnRTZXR0aW5ncyhwcm9wcyksXG4gICAgICBraW5lc2lzU2V0dGluZ3M6IHRoaXMuYnVpbGRLaW5lc2lzU2V0dGluZ3MocHJvcHMpLFxuICAgICAga2Fma2FTZXR0aW5nczogdGhpcy5idWlsZEthZmthU2V0dGluZ3MocHJvcHMpLFxuICAgICAgZWxhc3RpY3NlYXJjaFNldHRpbmdzOiB0aGlzLmJ1aWxkT3BlblNlYXJjaFNldHRpbmdzKHByb3BzKSxcbiAgICAgIG5lcHR1bmVTZXR0aW5nczogdGhpcy5idWlsZE5lcHR1bmVTZXR0aW5ncyhwcm9wcyksXG4gICAgICByZWRpc1NldHRpbmdzOiB0aGlzLmJ1aWxkUmVkaXNTZXR0aW5ncyhwcm9wcyksXG4gICAgICBkb2NEYlNldHRpbmdzOiB0aGlzLmJ1aWxkRG9jRGJTZXR0aW5ncyhwcm9wcyksXG4gICAgfSk7XG5cbiAgICB0aGlzLmNmbkVuZHBvaW50LmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5ID8/IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuICAgIHRoaXMuZW5kcG9pbnRBcm4gPSB0aGlzLmNmbkVuZHBvaW50LnJlZjtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBQcml2YXRlIG1hcHBpbmcgaGVscGVycyDigJQgdHJhbnNsYXRlIHR5cGVkIGludGVyZmFjZXMgdG8gQ0ZOIHByb3BlcnR5IHNoYXBlc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBwcml2YXRlIGJ1aWxkTXlTcWxTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50Lk15U3FsU2V0dGluZ3NQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcyA9IHByb3BzLm15U3FsU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBhZnRlckNvbm5lY3RTY3JpcHQ6IHMuYWZ0ZXJDb25uZWN0U2NyaXB0LFxuICAgICAgY2xlYW5Tb3VyY2VNZXRhZGF0YU9uTWlzbWF0Y2g6IHMuY2xlYW5Tb3VyY2VNZXRhZGF0YU9uTWlzbWF0Y2gsXG4gICAgICBldmVudHNQb2xsSW50ZXJ2YWw6IHMuZXZlbnRzUG9sbEludGVydmFsLFxuICAgICAgbWF4RmlsZVNpemU6IHMubWF4RmlsZVNpemUsXG4gICAgICBwYXJhbGxlbExvYWRUaHJlYWRzOiBzLnBhcmFsbGVsTG9hZFRocmVhZHMsXG4gICAgICBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm46IHMuc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuLFxuICAgICAgc2VjcmV0c01hbmFnZXJTZWNyZXRJZDogcy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgICAgc2VydmVyVGltZXpvbmU6IHMuc2VydmVyVGltZXpvbmUsXG4gICAgICB0YXJnZXREYlR5cGU6IHMudGFyZ2V0RGJUeXBlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUG9zdGdyZVNxbFNldHRpbmdzKFxuICAgIHByb3BzOiBEbXNFbmRwb2ludFByb3BzLFxuICApOiBkbXMuQ2ZuRW5kcG9pbnQuUG9zdGdyZVNxbFNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5wb3N0Z3JlU3FsU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBhZnRlckNvbm5lY3RTY3JpcHQ6IHMuYWZ0ZXJDb25uZWN0U2NyaXB0LFxuICAgICAgY2FwdHVyZURkbHM6IHMuY2FwdHVyZURkbHMsXG4gICAgICBkZGxBcnRpZmFjdHNTY2hlbWE6IHMuZGRsQXJ0aWZhY3RzU2NoZW1hLFxuICAgICAgZXhlY3V0ZVRpbWVvdXQ6IHMuZXhlY3V0ZVRpbWVvdXQsXG4gICAgICBmYWlsVGFza3NPbkxvYlRydW5jYXRpb246IHMuZmFpbFRhc2tzT25Mb2JUcnVuY2F0aW9uLFxuICAgICAgaGVhcnRiZWF0RW5hYmxlOiBzLmhlYXJ0YmVhdEVuYWJsZSxcbiAgICAgIGhlYXJ0YmVhdEZyZXF1ZW5jeTogcy5oZWFydGJlYXRGcmVxdWVuY3ksXG4gICAgICBoZWFydGJlYXRTY2hlbWE6IHMuaGVhcnRiZWF0U2NoZW1hLFxuICAgICAgbWFwQm9vbGVhbkFzQm9vbGVhbjogcy5tYXBCb29sZWFuQXNCb29sZWFuLFxuICAgICAgbWF4RmlsZVNpemU6IHMubWF4RmlsZVNpemUsXG4gICAgICBwbHVnaW5OYW1lOiBzLnBsdWdpbk5hbWUsXG4gICAgICBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm46IHMuc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuLFxuICAgICAgc2VjcmV0c01hbmFnZXJTZWNyZXRJZDogcy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgICAgc2xvdE5hbWU6IHMuc2xvdE5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRPcmFjbGVTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50Lk9yYWNsZVNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5vcmFjbGVTZXR0aW5ncztcbiAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjY2Vzc0FsdGVybmF0ZURpcmVjdGx5OiBzLmFjY2Vzc0FsdGVybmF0ZURpcmVjdGx5LFxuICAgICAgYWRkU3VwcGxlbWVudGFsTG9nZ2luZzogcy5hZGRTdXBwbGVtZW50YWxMb2dnaW5nLFxuICAgICAgYWRkaXRpb25hbEFyY2hpdmVkTG9nRGVzdElkOiBzLmFkZGl0aW9uYWxBcmNoaXZlZExvZ0Rlc3RJZCxcbiAgICAgIGFsbG93U2VsZWN0TmVzdGVkVGFibGVzOiBzLmFsbG93U2VsZWN0TmVzdGVkVGFibGVzLFxuICAgICAgYXJjaGl2ZWRMb2dEZXN0SWQ6IHMuYXJjaGl2ZWRMb2dEZXN0SWQsXG4gICAgICBhcmNoaXZlZExvZ3NPbmx5OiBzLmFyY2hpdmVkTG9nc09ubHksXG4gICAgICBhc21QYXNzd29yZDogcy5hc21QYXNzd29yZD8udW5zYWZlVW53cmFwKCksXG4gICAgICBhc21TZXJ2ZXI6IHMuYXNtU2VydmVyLFxuICAgICAgYXNtVXNlcjogcy5hc21Vc2VyLFxuICAgICAgY2hhckxlbmd0aFNlbWFudGljczogcy5jaGFyTGVuZ3RoU2VtYW50aWNzLFxuICAgICAgZGlyZWN0UGF0aE5vTG9nOiBzLmRpcmVjdFBhdGhOb0xvZyxcbiAgICAgIGRpcmVjdFBhdGhQYXJhbGxlbExvYWQ6IHMuZGlyZWN0UGF0aFBhcmFsbGVsTG9hZCxcbiAgICAgIGVuYWJsZUhvbW9nZW5vdXNUYWJsZXNwYWNlOiBzLmVuYWJsZUhvbW9nZW5vdXNUYWJsZXNwYWNlLFxuICAgICAgZXh0cmFBcmNoaXZlZExvZ0Rlc3RJZHM6IHMuZXh0cmFBcmNoaXZlZExvZ0Rlc3RJZHMsXG4gICAgICBmYWlsVGFza3NPbkxvYlRydW5jYXRpb246IHMuZmFpbFRhc2tzT25Mb2JUcnVuY2F0aW9uLFxuICAgICAgbnVtYmVyRGF0YXR5cGVTY2FsZTogcy5udW1iZXJEYXRhdHlwZVNjYWxlLFxuICAgICAgb3JhY2xlUGF0aFByZWZpeDogcy5vcmFjbGVQYXRoUHJlZml4LFxuICAgICAgcGFyYWxsZWxBc21SZWFkVGhyZWFkczogcy5wYXJhbGxlbEFzbVJlYWRUaHJlYWRzLFxuICAgICAgcmVhZEFoZWFkQmxvY2tzOiBzLnJlYWRBaGVhZEJsb2NrcyxcbiAgICAgIHJlYWRUYWJsZVNwYWNlTmFtZTogcy5yZWFkVGFibGVTcGFjZU5hbWUsXG4gICAgICByZXRyeUludGVydmFsOiBzLnJldHJ5SW50ZXJ2YWwsXG4gICAgICBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm46IHMuc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuLFxuICAgICAgc2VjcmV0c01hbmFnZXJPcmFjbGVBc21BY2Nlc3NSb2xlQXJuOiBzLnNlY3JldHNNYW5hZ2VyT3JhY2xlQXNtQWNjZXNzUm9sZUFybixcbiAgICAgIHNlY3JldHNNYW5hZ2VyT3JhY2xlQXNtU2VjcmV0SWQ6IHMuc2VjcmV0c01hbmFnZXJPcmFjbGVBc21TZWNyZXRJZCxcbiAgICAgIHNlY3JldHNNYW5hZ2VyU2VjcmV0SWQ6IHMuc2VjcmV0c01hbmFnZXJTZWNyZXRJZCxcbiAgICAgIHNlY3VyaXR5RGJFbmNyeXB0aW9uTmFtZTogcy5zZWN1cml0eURiRW5jcnlwdGlvbk5hbWUsXG4gICAgICB1c2VBbHRlcm5hdGVGb2xkZXJGb3JPbmxpbmU6IHMudXNlQWx0ZXJuYXRlRm9sZGVyRm9yT25saW5lLFxuICAgICAgdXNlQkZpbGU6IHMudXNlQkZpbGUsXG4gICAgICB1c2VEaXJlY3RQYXRoRnVsbExvYWQ6IHMudXNlRGlyZWN0UGF0aEZ1bGxMb2FkLFxuICAgICAgdXNlTG9nbWluZXJSZWFkZXI6IHMudXNlTG9nbWluZXJSZWFkZXIsXG4gICAgICB1c2VQYXRoUHJlZml4OiBzLnVzZVBhdGhQcmVmaXgsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTcWxTZXJ2ZXJTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50Lk1pY3Jvc29mdFNxbFNlcnZlclNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5zcWxTZXJ2ZXJTZXR0aW5ncztcbiAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJjcFBhY2tldFNpemU6IHMuYmNwUGFja2V0U2l6ZSxcbiAgICAgIGNvbnRyb2xUYWJsZXNGaWxlR3JvdXA6IHMuY29udHJvbFRhYmxlc0ZpbGVHcm91cCxcbiAgICAgIHF1ZXJ5U2luZ2xlQWx3YXlzT25Ob2RlOiBzLnF1ZXJ5U2luZ2xlQWx3YXlzT25Ob2RlLFxuICAgICAgcmVhZEJhY2t1cE9ubHk6IHMucmVhZEJhY2t1cE9ubHksXG4gICAgICBzYWZlZ3VhcmRQb2xpY3k6IHMuc2FmZWd1YXJkUG9saWN5LFxuICAgICAgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuOiBzLnNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybixcbiAgICAgIHNlY3JldHNNYW5hZ2VyU2VjcmV0SWQ6IHMuc2VjcmV0c01hbmFnZXJTZWNyZXRJZCxcbiAgICAgIHVzZUJjcEZ1bGxMb2FkOiBzLnVzZUJjcEZ1bGxMb2FkLFxuICAgICAgdXNlVGhpcmRQYXJ0eUJhY2t1cERldmljZTogcy51c2VUaGlyZFBhcnR5QmFja3VwRGV2aWNlLFxuICAgICAgdHJpbVNwYWNlSW5DaGFyOiBzLnRyaW1TcGFjZUluQ2hhcixcbiAgICAgIHRsb2dBY2Nlc3NNb2RlOiBzLnRsb2dBY2Nlc3NNb2RlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU2FwQXNlU2V0dGluZ3MoXG4gICAgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMsXG4gICk6IGRtcy5DZm5FbmRwb2ludC5TeWJhc2VTZXR0aW5nc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzID0gcHJvcHMuc2FwQXNlU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm46IHMuc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuLFxuICAgICAgc2VjcmV0c01hbmFnZXJTZWNyZXRJZDogcy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRGIyU2V0dGluZ3MoXG4gICAgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMsXG4gICk6IGRtcy5DZm5FbmRwb2ludC5JYm1EYjJTZXR0aW5nc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzID0gcHJvcHMuZGIyU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBjdXJyZW50THNuOiBzLmN1cnJlbnRMc24sXG4gICAgICBtYXhLQnl0ZXNQZXJSZWFkOiBzLm1heEtCeXRlc1BlclJlYWQsXG4gICAgICBzZXREYXRhQ2FwdHVyZUNoYW5nZXM6IHMuc2V0RGF0YUNhcHR1cmVDaGFuZ2VzLFxuICAgICAgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuOiBzLnNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybixcbiAgICAgIHNlY3JldHNNYW5hZ2VyU2VjcmV0SWQ6IHMuc2VjcmV0c01hbmFnZXJTZWNyZXRJZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZE1vbmdvRGJTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50Lk1vbmdvRGJTZXR0aW5nc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzID0gcHJvcHMubW9uZ29EYlNldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0aE1lY2hhbmlzbTogcy5hdXRoTWVjaGFuaXNtLFxuICAgICAgYXV0aFNvdXJjZTogcy5hdXRoU291cmNlLFxuICAgICAgYXV0aFR5cGU6IHMuYXV0aFR5cGUsXG4gICAgICBkb2NzVG9JbnZlc3RpZ2F0ZTogcy5kb2NzVG9JbnZlc3RpZ2F0ZT8udG9TdHJpbmcoKSxcbiAgICAgIGV4dHJhY3REb2NJZDogcy5leHRyYWN0RG9jSWQ/LnRvU3RyaW5nKCksXG4gICAgICBuZXN0aW5nTGV2ZWw6IHMubmVzdGluZ0xldmVsLFxuICAgICAgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuOiBzLnNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybixcbiAgICAgIHNlY3JldHNNYW5hZ2VyU2VjcmV0SWQ6IHMuc2VjcmV0c01hbmFnZXJTZWNyZXRJZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZERvY0RiU2V0dGluZ3MoXG4gICAgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMsXG4gICk6IGRtcy5DZm5FbmRwb2ludC5Eb2NEYlNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmIChwcm9wcy5lbmdpbmUgIT09IEVuZHBvaW50RW5naW5lLkRPQ0RCKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IHMgPSBwcm9wcy5tb25nb0RiU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBkb2NzVG9JbnZlc3RpZ2F0ZTogcy5kb2NzVG9JbnZlc3RpZ2F0ZSxcbiAgICAgIGV4dHJhY3REb2NJZDogcy5leHRyYWN0RG9jSWQsXG4gICAgICBuZXN0aW5nTGV2ZWw6IHMubmVzdGluZ0xldmVsLFxuICAgICAgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuOiBzLnNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybixcbiAgICAgIHNlY3JldHNNYW5hZ2VyU2VjcmV0SWQ6IHMuc2VjcmV0c01hbmFnZXJTZWNyZXRJZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFMzU2V0dGluZ3MoXG4gICAgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMsXG4gICk6IGRtcy5DZm5FbmRwb2ludC5TM1NldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5zM1NldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgYnVja2V0TmFtZTogcy5idWNrZXROYW1lLFxuICAgICAgYnVja2V0Rm9sZGVyOiBzLmJ1Y2tldEZvbGRlcixcbiAgICAgIHNlcnZpY2VBY2Nlc3NSb2xlQXJuOiBzLnNlcnZpY2VBY2Nlc3NSb2xlQXJuLFxuICAgICAgYWRkQ29sdW1uTmFtZTogcy5hZGRDb2x1bW5OYW1lLFxuICAgICAgY2RjSW5zZXJ0c0FuZFVwZGF0ZXM6IHMuY2RjSW5zZXJ0c0FuZFVwZGF0ZXMsXG4gICAgICBjZGNJbnNlcnRzT25seTogcy5jZGNJbnNlcnRzT25seSxcbiAgICAgIGNkY01heEJhdGNoSW50ZXJ2YWw6IHMuY2RjTWF4QmF0Y2hJbnRlcnZhbCxcbiAgICAgIGNkY01pbkZpbGVTaXplOiBzLmNkY01pbkZpbGVTaXplLFxuICAgICAgY2RjUGF0aDogcy5jZGNQYXRoLFxuICAgICAgY3N2RGVsaW1pdGVyOiBzLmNzdkRlbGltaXRlcixcbiAgICAgIGNzdk5vU3VwVmFsdWU6IHMuY3N2Tm9TdXBWYWx1ZSxcbiAgICAgIGNzdk51bGxWYWx1ZTogcy5jc3ZOdWxsVmFsdWUsXG4gICAgICBjc3ZSb3dEZWxpbWl0ZXI6IHMuY3N2Um93RGVsaW1pdGVyLFxuICAgICAgZGF0YUZvcm1hdDogcy5kYXRhRm9ybWF0LFxuICAgICAgZGF0ZVBhcnRpdGlvbkRlbGltaXRlcjogcy5kYXRlUGFydGl0aW9uRGVsaW1pdGVyLFxuICAgICAgZGF0ZVBhcnRpdGlvbkVuYWJsZWQ6IHMuZGF0ZVBhcnRpdGlvbkVuYWJsZWQsXG4gICAgICBkYXRlUGFydGl0aW9uU2VxdWVuY2U6IHMuZGF0ZVBhcnRpdGlvblNlcXVlbmNlLFxuICAgICAgZGljdFBhZ2VTaXplTGltaXQ6IHMuZGljdFBhZ2VTaXplTGltaXQsXG4gICAgICBlbmFibGVTdGF0aXN0aWNzOiBzLmVuYWJsZVN0YXRpc3RpY3MsXG4gICAgICBlbmNvZGluZ1R5cGU6IHMuZW5jb2RpbmdUeXBlLFxuICAgICAgZW5jcnlwdGlvbk1vZGU6IHMuZW5jcnlwdGlvbk1vZGUsXG4gICAgICBleHRlcm5hbFRhYmxlRGVmaW5pdGlvbjogcy5leHRlcm5hbFRhYmxlRGVmaW5pdGlvbixcbiAgICAgIGlnbm9yZUhlYWRlclJvd3M6IHMuaWdub3JlSGVhZGVyUm93cyxcbiAgICAgIGluY2x1ZGVPcEZvckZ1bGxMb2FkOiBzLmluY2x1ZGVPcEZvckZ1bGxMb2FkLFxuICAgICAgbWF4RmlsZVNpemU6IHMubWF4RmlsZVNpemUsXG4gICAgICBwYXJxdWV0VGltZXN0YW1wSW5NaWxsaXNlY29uZDogcy5wYXJxdWV0VGltZXN0YW1wSW5NaWxsaXNlY29uZCxcbiAgICAgIHBhcnF1ZXRWZXJzaW9uOiBzLnBhcnF1ZXRWZXJzaW9uLFxuICAgICAgcHJlc2VydmVUcmFuc2FjdGlvbnM6IHMucHJlc2VydmVUcmFuc2FjdGlvbnMsXG4gICAgICByZmM0MTgwOiBzLnJmYzQxODAsXG4gICAgICByb3dHcm91cExlbmd0aDogcy5yb3dHcm91cExlbmd0aCxcbiAgICAgIHNlcnZlclNpZGVFbmNyeXB0aW9uS21zS2V5SWQ6IHMuc2VydmVyU2lkZUVuY3J5cHRpb25LbXNLZXlJZCxcbiAgICAgIHRpbWVzdGFtcENvbHVtbk5hbWU6IHMudGltZXN0YW1wQ29sdW1uTmFtZSxcbiAgICAgIHVzZUNzdk5vU3VwVmFsdWU6IHMudXNlQ3N2Tm9TdXBWYWx1ZSxcbiAgICAgIHVzZVRhc2tTdGFydFRpbWVGb3JGdWxsTG9hZFRpbWVzdGFtcDogcy51c2VUYXNrU3RhcnRUaW1lRm9yRnVsbExvYWRUaW1lc3RhbXAsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREeW5hbW9EYlNldHRpbmdzKFxuICAgIHByb3BzOiBEbXNFbmRwb2ludFByb3BzLFxuICApOiBkbXMuQ2ZuRW5kcG9pbnQuRHluYW1vRGJTZXR0aW5nc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzID0gcHJvcHMuZHluYW1vRGJTZXR0aW5ncztcbiAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHsgc2VydmljZUFjY2Vzc1JvbGVBcm46IHMuc2VydmljZUFjY2Vzc1JvbGVBcm4gfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRSZWRzaGlmdFNldHRpbmdzKFxuICAgIHByb3BzOiBEbXNFbmRwb2ludFByb3BzLFxuICApOiBkbXMuQ2ZuRW5kcG9pbnQuUmVkc2hpZnRTZXR0aW5nc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzID0gcHJvcHMucmVkc2hpZnRTZXR0aW5ncztcbiAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjY2VwdEFueURhdGU6IHMuYWNjZXB0QW55RGF0ZSxcbiAgICAgIGFmdGVyQ29ubmVjdFNjcmlwdDogcy5hZnRlckNvbm5lY3RTY3JpcHQsXG4gICAgICBidWNrZXRGb2xkZXI6IHMuYnVja2V0Rm9sZGVyLFxuICAgICAgYnVja2V0TmFtZTogcy5idWNrZXROYW1lLFxuICAgICAgY2FzZVNlbnNpdGl2ZU5hbWVzOiBzLmNhc2VTZW5zaXRpdmVOYW1lcyxcbiAgICAgIGNvbXBVcGRhdGU6IHMuY29tcFVwZGF0ZSxcbiAgICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBzLmNvbm5lY3Rpb25UaW1lb3V0LFxuICAgICAgZGF0ZUZvcm1hdDogcy5kYXRlRm9ybWF0LFxuICAgICAgZW1wdHlBc051bGw6IHMuZW1wdHlBc051bGwsXG4gICAgICBlbmNyeXB0aW9uTW9kZTogcy5lbmNyeXB0aW9uTW9kZSxcbiAgICAgIGV4cGxpY2l0SWRzOiBzLmV4cGxpY2l0SWRzLFxuICAgICAgZmlsZVRyYW5zZmVyVXBsb2FkU3RyZWFtczogcy5maWxlVHJhbnNmZXJVcGxvYWRTdHJlYW1zLFxuICAgICAgbG9hZFRpbWVvdXQ6IHMubG9hZFRpbWVvdXQsXG4gICAgICBtYXhGaWxlU2l6ZTogcy5tYXhGaWxlU2l6ZSxcbiAgICAgIHJlbW92ZVF1b3Rlczogcy5yZW1vdmVRdW90ZXMsXG4gICAgICByZXBsYWNlSW52YWxpZENoYXJzOiBzLnJlcGxhY2VJbnZhbGlkQ2hhcnMsXG4gICAgICByZXBsYWNlQ2hhcnM6IHMucmVwbGFjZUNoYXJzLFxuICAgICAgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuOiBzLnNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybixcbiAgICAgIHNlY3JldHNNYW5hZ2VyU2VjcmV0SWQ6IHMuc2VjcmV0c01hbmFnZXJTZWNyZXRJZCxcbiAgICAgIHNlcnZlclNpZGVFbmNyeXB0aW9uS21zS2V5SWQ6IHMuc2VydmVyU2lkZUVuY3J5cHRpb25LbXNLZXlJZCxcbiAgICAgIHNlcnZpY2VBY2Nlc3NSb2xlQXJuOiBzLnNlcnZpY2VBY2Nlc3NSb2xlQXJuLFxuICAgICAgdGltZUZvcm1hdDogcy50aW1lRm9ybWF0LFxuICAgICAgdHJpbUJsYW5rczogcy50cmltQmxhbmtzLFxuICAgICAgdHJ1bmNhdGVDb2x1bW5zOiBzLnRydW5jYXRlQ29sdW1ucyxcbiAgICAgIHdyaXRlQnVmZmVyU2l6ZTogcy53cml0ZUJ1ZmZlclNpemUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRLaW5lc2lzU2V0dGluZ3MoXG4gICAgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMsXG4gICk6IGRtcy5DZm5FbmRwb2ludC5LaW5lc2lzU2V0dGluZ3NQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcyA9IHByb3BzLmtpbmVzaXNTZXR0aW5ncztcbiAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0cmVhbUFybjogcy5zdHJlYW1Bcm4sXG4gICAgICBzZXJ2aWNlQWNjZXNzUm9sZUFybjogcy5zZXJ2aWNlQWNjZXNzUm9sZUFybixcbiAgICAgIGluY2x1ZGVDb250cm9sRGV0YWlsczogcy5pbmNsdWRlQ29udHJvbERldGFpbHMsXG4gICAgICBpbmNsdWRlTnVsbEFuZEVtcHR5OiBzLmluY2x1ZGVOdWxsQW5kRW1wdHksXG4gICAgICBpbmNsdWRlUGFydGl0aW9uVmFsdWU6IHMuaW5jbHVkZVBhcnRpdGlvblZhbHVlLFxuICAgICAgaW5jbHVkZVRhYmxlQWx0ZXJPcGVyYXRpb25zOiBzLmluY2x1ZGVUYWJsZUFsdGVyT3BlcmF0aW9ucyxcbiAgICAgIGluY2x1ZGVUcmFuc2FjdGlvbkRldGFpbHM6IHMuaW5jbHVkZVRyYW5zYWN0aW9uRGV0YWlscyxcbiAgICAgIG1lc3NhZ2VGb3JtYXQ6IHMubWVzc2FnZUZvcm1hdCxcbiAgICAgIG5vSGV4UHJlZml4OiBzLm5vSGV4UHJlZml4LFxuICAgICAgcGFydGl0aW9uSW5jbHVkZVNjaGVtYVRhYmxlOiBzLnBhcnRpdGlvbkluY2x1ZGVTY2hlbWFUYWJsZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEthZmthU2V0dGluZ3MoXG4gICAgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMsXG4gICk6IGRtcy5DZm5FbmRwb2ludC5LYWZrYVNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5rYWZrYVNldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgYnJva2VyOiBzLmJyb2tlcixcbiAgICAgIHRvcGljOiBzLnRvcGljLFxuICAgICAgaW5jbHVkZUNvbnRyb2xEZXRhaWxzOiBzLmluY2x1ZGVDb250cm9sRGV0YWlscyxcbiAgICAgIGluY2x1ZGVOdWxsQW5kRW1wdHk6IHMuaW5jbHVkZU51bGxBbmRFbXB0eSxcbiAgICAgIGluY2x1ZGVQYXJ0aXRpb25WYWx1ZTogcy5pbmNsdWRlUGFydGl0aW9uVmFsdWUsXG4gICAgICBpbmNsdWRlVGFibGVBbHRlck9wZXJhdGlvbnM6IHMuaW5jbHVkZVRhYmxlQWx0ZXJPcGVyYXRpb25zLFxuICAgICAgaW5jbHVkZVRyYW5zYWN0aW9uRGV0YWlsczogcy5pbmNsdWRlVHJhbnNhY3Rpb25EZXRhaWxzLFxuICAgICAgbWVzc2FnZUZvcm1hdDogcy5tZXNzYWdlRm9ybWF0LFxuICAgICAgbWVzc2FnZU1heEJ5dGVzOiBzLm1lc3NhZ2VNYXhCeXRlcyxcbiAgICAgIG5vSGV4UHJlZml4OiBzLm5vSGV4UHJlZml4LFxuICAgICAgcGFydGl0aW9uSW5jbHVkZVNjaGVtYVRhYmxlOiBzLnBhcnRpdGlvbkluY2x1ZGVTY2hlbWFUYWJsZSxcbiAgICAgIHNlY3VyaXR5UHJvdG9jb2w6IHMuc2VjdXJpdHlQcm90b2NvbCxcbiAgICAgIHNhc2xVc2VyTmFtZTogcy5zYXNsVXNlcm5hbWUsXG4gICAgICBzYXNsUGFzc3dvcmQ6IHMuc2FzbFBhc3N3b3JkPy51bnNhZmVVbndyYXAoKSxcbiAgICAgIHNzbENhQ2VydGlmaWNhdGVBcm46IHMuc3NsQ2FDZXJ0aWZpY2F0ZUFybixcbiAgICAgIHNzbENsaWVudENlcnRpZmljYXRlQXJuOiBzLnNzbENsaWVudENlcnRpZmljYXRlQXJuLFxuICAgICAgc3NsQ2xpZW50S2V5QXJuOiBzLnNzbENsaWVudEtleUFybixcbiAgICAgIHNzbENsaWVudEtleVBhc3N3b3JkOiBzLnNzbENsaWVudEtleVBhc3N3b3JkPy51bnNhZmVVbndyYXAoKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZE9wZW5TZWFyY2hTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50LkVsYXN0aWNzZWFyY2hTZXR0aW5nc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzID0gcHJvcHMub3BlblNlYXJjaFNldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgZW5kcG9pbnRVcmk6IHMuZW5kcG9pbnRVcmksXG4gICAgICBzZXJ2aWNlQWNjZXNzUm9sZUFybjogcy5zZXJ2aWNlQWNjZXNzUm9sZUFybixcbiAgICAgIGVycm9yUmV0cnlEdXJhdGlvbjogcy5lcnJvclJldHJ5RHVyYXRpb24sXG4gICAgICBmdWxsTG9hZEVycm9yUGVyY2VudGFnZTogcy5mdWxsTG9hZEVycm9yUGVyY2VudGFnZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZE5lcHR1bmVTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50Lk5lcHR1bmVTZXR0aW5nc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzID0gcHJvcHMubmVwdHVuZVNldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgczNCdWNrZXROYW1lOiBzLnMzQnVja2V0TmFtZSxcbiAgICAgIHMzQnVja2V0Rm9sZGVyOiBzLnMzQnVja2V0Rm9sZGVyLFxuICAgICAgc2VydmljZUFjY2Vzc1JvbGVBcm46IHMuc2VydmljZUFjY2Vzc1JvbGVBcm4sXG4gICAgICBlcnJvclJldHJ5RHVyYXRpb246IHMuZXJyb3JSZXRyeUR1cmF0aW9uLFxuICAgICAgaWFtQXV0aEVuYWJsZWQ6IHMuaWFtQXV0aEVuYWJsZWQsXG4gICAgICBtYXhGaWxlU2l6ZTogcy5tYXhGaWxlU2l6ZSxcbiAgICAgIG1heFJldHJ5Q291bnQ6IHMubWF4UmV0cnlDb3VudCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFJlZGlzU2V0dGluZ3MoXG4gICAgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMsXG4gICk6IGRtcy5DZm5FbmRwb2ludC5SZWRpc1NldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5yZWRpc1NldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgc2VydmVyTmFtZTogcy5zZXJ2ZXJOYW1lLFxuICAgICAgcG9ydDogcy5wb3J0ID8/IDYzNzksXG4gICAgICBzc2xTZWN1cml0eVByb3RvY29sOiBzLnNzbFNlY3VyaXR5UHJvdG9jb2wsXG4gICAgICBhdXRoVHlwZTogcy5hdXRoVHlwZSxcbiAgICAgIGF1dGhVc2VyTmFtZTogcy5hdXRoVXNlck5hbWUsXG4gICAgICBhdXRoUGFzc3dvcmQ6IHMuYXV0aFBhc3N3b3JkPy51bnNhZmVVbndyYXAoKSxcbiAgICAgIHNzbENhQ2VydGlmaWNhdGVBcm46IHMuc3NsQ2FDZXJ0aWZpY2F0ZUFybixcbiAgICB9O1xuICB9XG5cbn1cbiJdfQ==
440
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUFtQztBQUNuQyx5REFBMkM7QUFDM0MsMkNBQXVDO0FBa0J2QyxtQ0FBdUQ7QUFtSXZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFhLFdBQVksU0FBUSxzQkFBUzs7SUFDeEMsOEVBQThFO0lBQzlFLDJFQUEyRTtJQUMzRSw4RUFBOEU7SUFFdEUsTUFBTSxDQUFVLG1CQUFtQixHQUFxQjtRQUM5RCxzQkFBYyxDQUFDLFFBQVE7UUFDdkIsc0JBQWMsQ0FBQyxPQUFPO1FBQ3RCLHNCQUFjLENBQUMsS0FBSztRQUNwQixzQkFBYyxDQUFDLFVBQVU7UUFDekIsc0JBQWMsQ0FBQyxPQUFPO1FBQ3RCLHNCQUFjLENBQUMsS0FBSztLQUNyQixDQUFDO0lBRU0sTUFBTSxDQUFVLG1CQUFtQixHQUFxQjtRQUM5RCxzQkFBYyxDQUFDLFdBQVc7S0FDM0IsQ0FBQztJQUVNLE1BQU0sQ0FBQywwQkFBMEIsQ0FDdkMsTUFBc0IsRUFDdEIsWUFBMEI7UUFFMUIsSUFDRSxZQUFZLEtBQUssb0JBQVksQ0FBQyxNQUFNO1lBQ3BDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQ2hELENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLFdBQVcsTUFBTSw0REFBNEQsQ0FDOUUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUNFLFlBQVksS0FBSyxvQkFBWSxDQUFDLE1BQU07WUFDcEMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDaEQsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsV0FBVyxNQUFNLDREQUE0RCxDQUM5RSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFF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QyxDQUFDLFlBQVk7WUFDNUIsY0FBYyxFQUFFLENBQUMsQ0FBQyxjQUFjO1lBQ2hDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxvQkFBb0I7WUFDNUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQjtZQUN4QyxjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWM7WUFDaEMsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO1lBQzFCLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYTtTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVPLGtCQUFrQixDQUN4QixLQUF1QjtRQUV2QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQzlCLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDekIsT0FBTztZQUNMLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtZQUN4QixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJO1lBQ3BCLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxtQkFBbUI7WUFDMUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1lBQ3BCLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWTtZQUM1QixZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUU7WUFDNUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQjtTQUMzQyxDQUFDO0lBQ0osQ0FBQzs7QUEvYUgsa0NBaWJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGRtcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZG1zJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgRGIyU2V0dGluZ3MsXG4gIER5bmFtb0RiU2V0dGluZ3MsXG4gIEthZmthU2V0dGluZ3MsXG4gIEtpbmVzaXNTZXR0aW5ncyxcbiAgTW9uZ29EYlNldHRpbmdzLFxuICBNeVNxbFNldHRpbmdzLFxuICBOZXB0dW5lU2V0dGluZ3MsXG4gIE9wZW5TZWFyY2hTZXR0aW5ncyxcbiAgT3JhY2xlU2V0dGluZ3MsXG4gIFBvc3RncmVTcWxTZXR0aW5ncyxcbiAgUmVkaXNTZXR0aW5ncyxcbiAgUmVkc2hpZnRTZXR0aW5ncyxcbiAgUzNTZXR0aW5ncyxcbiAgU2FwQXNlU2V0dGluZ3MsXG4gIFNxbFNlcnZlclNldHRpbmdzLFxufSBmcm9tICcuL2VuZHBvaW50LXNldHRpbmdzJztcbmltcG9ydCB7IEVuZHBvaW50RW5naW5lLCBFbmRwb2ludFR5cGUgfSBmcm9tICcuL2VudW1zJztcblxuLyoqXG4gKiBNaW5pbWFsIGNvbnRyYWN0IGZvciBhIERNUyBlbmRwb2ludCB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgc291cmNlIG9yIHRhcmdldFxuICogaW4gYSB7QGxpbmsgRG1zUmVwbGljYXRpb25UYXNrfSBvciB7QGxpbmsgRG1zTWlncmF0aW9uUGlwZWxpbmV9LlxuICpcbiAqIFVzZSB0aGlzIGludGVyZmFjZSB3aGVuIHJlZmVyZW5jaW5nIGFuIGVuZHBvaW50IGNyZWF0ZWQgb3V0c2lkZSBvZiB0aGlzXG4gKiBjb25zdHJ1Y3QgKGUuZy4gYnkgQVJOKS4gRm9yIGVuZHBvaW50cyBjcmVhdGVkIGJ5IHRoaXMgbGlicmFyeSwgdXNlIHRoZVxuICogY29uY3JldGUge0BsaW5rIERtc0VuZHBvaW50fSBjbGFzcyBkaXJlY3RseSDigJQgaXQgZXhwb3NlcyBgY2ZuRW5kcG9pbnRgXG4gKiBmb3IgTDEgZXNjYXBlLWhhdGNoIGFjY2Vzcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRG1zRW5kcG9pbnQge1xuICAvKiogQVJOIG9mIHRoZSBETVMgZW5kcG9pbnQuICovXG4gIHJlYWRvbmx5IGVuZHBvaW50QXJuOiBzdHJpbmc7XG59XG5cbi8qKiBQcm9wcyBmb3Ige0BsaW5rIERtc0VuZHBvaW50fS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG1zRW5kcG9pbnRQcm9wcyB7XG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgYSBzb3VyY2Ugb3IgdGFyZ2V0IGVuZHBvaW50LiAqL1xuICByZWFkb25seSBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZTtcblxuICAvKiogRGF0YWJhc2UgZW5naW5lIGZvciB0aGlzIGVuZHBvaW50LiAqL1xuICByZWFkb25seSBlbmdpbmU6IEVuZHBvaW50RW5naW5lO1xuXG4gIC8qKlxuICAgKiBMb2dpY2FsIGlkZW50aWZpZXIgb2YgdGhlIGVuZHBvaW50ICh1c2VkIGFzIHRoZSBETVMgZW5kcG9pbnQgaWRlbnRpZmllcikuXG4gICAqIEF1dG8tZ2VuZXJhdGVkIGZyb20gdGhlIGNvbnN0cnVjdCBJRCBpZiBub3QgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludElkZW50aWZpZXI/OiBzdHJpbmc7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDb21tb24gY29ubmVjdGlvbiBzZXR0aW5ncyAodXNlZCBmb3IgbW9zdCBlbmdpbmUgdHlwZXMpXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogRGF0YWJhc2Ugc2VydmVyIGhvc3RuYW1lIG9yIElQIGFkZHJlc3MuICovXG4gIHJlYWRvbmx5IHNlcnZlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIERhdGFiYXNlIHBvcnQuICovXG4gIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXI7XG5cbiAgLyoqIERhdGFiYXNlIHVzZXIgbmFtZS4gVXNlZCB3aGVuIG5vdCB1c2luZyBTZWNyZXRzIE1hbmFnZXIuICovXG4gIHJlYWRvbmx5IHVzZXJuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEYXRhYmFzZSBwYXNzd29yZC5cbiAgICpcbiAgICogQHdhcm5pbmcgVGhlIHJlc29sdmVkIHZhbHVlIGlzIHN0b3JlZCBhcyAqKnBsYWludGV4dCoqIGluIHRoZSBDbG91ZEZvcm1hdGlvblxuICAgKiB0ZW1wbGF0ZSBhbmQgc3RhdGUgZmlsZS4gRm9yIHByb2R1Y3Rpb24gd29ya2xvYWRzLCB1c2UgU2VjcmV0cyBNYW5hZ2VyXG4gICAqIGluc3RlYWQ6IHNldCBgc2VjcmV0c01hbmFnZXJTZWNyZXRJZGAgYW5kIGBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm5gXG4gICAqIGluIHRoZSBlbmdpbmUtc3BlY2lmaWMgc2V0dGluZ3MgKGUuZy4gYG15U3FsU2V0dGluZ3NgLCBgcG9zdGdyZVNxbFNldHRpbmdzYClcbiAgICogYW5kIG9taXQgdGhpcyBwcm9wZXJ0eSBlbnRpcmVseS5cbiAgICovXG4gIHJlYWRvbmx5IHBhc3N3b3JkPzogY2RrLlNlY3JldFZhbHVlO1xuXG4gIC8qKiBEYXRhYmFzZSBuYW1lIG9uIHRoZSBlbmRwb2ludC4gKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgYXMgYSBzZW1pY29sb24tc2VwYXJhdGVkIHN0cmluZy5cbiAgICogUmVmZXIgdG8gdGhlIERNUyBkb2N1bWVudGF0aW9uIGZvciBlbmdpbmUtc3BlY2lmaWMgYXR0cmlidXRlcy5cbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhQ29ubmVjdGlvbkF0dHJpYnV0ZXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFSTiBvZiB0aGUgU1NMIGNlcnRpZmljYXRlIGF1dGhvcml0eSBjZXJ0aWZpY2F0ZS5cbiAgICogUmVxdWlyZWQgd2hlbiBzc2xNb2RlIGlzICd2ZXJpZnktY2EnIG9yICd2ZXJpZnktZnVsbCcuXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogU1NMIG1vZGUgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKiBAZGVmYXVsdCBcIm5vbmVcIlxuICAgKi9cbiAgcmVhZG9ubHkgc3NsTW9kZT86IHN0cmluZztcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEVuZ2luZS1zcGVjaWZpYyBzZXR0aW5ncyAoc2V0IG9ubHkgdGhlIG9uZSBtYXRjaGluZyBgZW5naW5lYClcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBTZXR0aW5ncyBmb3IgTXlTUUwgb3IgTWFyaWFEQiBlbmRwb2ludHMuICovXG4gIHJlYWRvbmx5IG15U3FsU2V0dGluZ3M/OiBNeVNxbFNldHRpbmdzO1xuXG4gIC8qKiBTZXR0aW5ncyBmb3IgUG9zdGdyZVNRTCBvciBBdXJvcmEgUG9zdGdyZVNRTCBlbmRwb2ludHMuICovXG4gIHJlYWRvbmx5IHBvc3RncmVTcWxTZXR0aW5ncz86IFBvc3RncmVTcWxTZXR0aW5ncztcblxuICAvKiogU2V0dGluZ3MgZm9yIE9yYWNsZSBlbmRwb2ludHMuICovXG4gIHJlYWRvbmx5IG9yYWNsZVNldHRpbmdzPzogT3JhY2xlU2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBNaWNyb3NvZnQgU1FMIFNlcnZlciBlbmRwb2ludHMuICovXG4gIHJlYWRvbmx5IHNxbFNlcnZlclNldHRpbmdzPzogU3FsU2VydmVyU2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBTQVAgQVNFIChTeWJhc2UpIGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkgc2FwQXNlU2V0dGluZ3M/OiBTYXBBc2VTZXR0aW5ncztcblxuICAvKiogU2V0dGluZ3MgZm9yIElCTSBEYjIgTFVXIGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkgZGIyU2V0dGluZ3M/OiBEYjJTZXR0aW5ncztcblxuICAvKiogU2V0dGluZ3MgZm9yIE1vbmdvREIgb3IgQW1hem9uIERvY3VtZW50REIgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSBtb25nb0RiU2V0dGluZ3M/OiBNb25nb0RiU2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBBbWF6b24gUzMgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSBzM1NldHRpbmdzPzogUzNTZXR0aW5ncztcblxuICAvKiogU2V0dGluZ3MgZm9yIEFtYXpvbiBEeW5hbW9EQiB0YXJnZXQgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSBkeW5hbW9EYlNldHRpbmdzPzogRHluYW1vRGJTZXR0aW5ncztcblxuICAvKiogU2V0dGluZ3MgZm9yIEFtYXpvbiBSZWRzaGlmdCB0YXJnZXQgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSByZWRzaGlmdFNldHRpbmdzPzogUmVkc2hpZnRTZXR0aW5ncztcblxuICAvKiogU2V0dGluZ3MgZm9yIEFtYXpvbiBLaW5lc2lzIERhdGEgU3RyZWFtcyB0YXJnZXQgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSBraW5lc2lzU2V0dGluZ3M/OiBLaW5lc2lzU2V0dGluZ3M7XG5cbiAgLyoqIFNldHRpbmdzIGZvciBBcGFjaGUgS2Fma2EgKGFuZCBBbWF6b24gTVNLKSB0YXJnZXQgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSBrYWZrYVNldHRpbmdzPzogS2Fma2FTZXR0aW5ncztcblxuICAvKiogU2V0dGluZ3MgZm9yIEFtYXpvbiBPcGVuU2VhcmNoIFNlcnZpY2UgdGFyZ2V0IGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkgb3BlblNlYXJjaFNldHRpbmdzPzogT3BlblNlYXJjaFNldHRpbmdzO1xuXG4gIC8qKiBTZXR0aW5ncyBmb3IgQW1hem9uIE5lcHR1bmUgdGFyZ2V0IGVuZHBvaW50cy4gKi9cbiAgcmVhZG9ubHkgbmVwdHVuZVNldHRpbmdzPzogTmVwdHVuZVNldHRpbmdzO1xuXG4gIC8qKiBTZXR0aW5ncyBmb3IgQW1hem9uIEVsYXN0aUNhY2hlIGZvciBSZWRpcyB0YXJnZXQgZW5kcG9pbnRzLiAqL1xuICByZWFkb25seSByZWRpc1NldHRpbmdzPzogUmVkaXNTZXR0aW5ncztcblxuICAvKipcbiAgICogUmVtb3ZhbCBwb2xpY3kgZm9yIHRoZSBlbmRwb2ludCByZXNvdXJjZS5cbiAgICogQGRlZmF1bHQgY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IGNkay5SZW1vdmFsUG9saWN5O1xufVxuXG4vKipcbiAqIEEgRE1TIGVuZHBvaW50IGNvbnN0cnVjdCBzdXBwb3J0aW5nIGV2ZXJ5IGVuZ2luZSB0aGF0IERNUyBzdXBwb3J0cy5cbiAqXG4gKiBTZXQgYGVuZ2luZWAgdG8gdGhlIGRlc2lyZWQge0BsaW5rIEVuZHBvaW50RW5naW5lfSBhbmQgc3VwcGx5IHRoZVxuICogbWF0Y2hpbmcgYCpTZXR0aW5nc2AgcHJvcGVydHkuIEFsbCBvdGhlciBgKlNldHRpbmdzYCBwcm9wZXJ0aWVzIGFyZVxuICogaWdub3JlZCBhdCBydW50aW1lLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNeVNRTCBzb3VyY2VcbiAqIG5ldyBEbXNFbmRwb2ludCh0aGlzLCAnU291cmNlJywge1xuICogICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZS5TT1VSQ0UsXG4gKiAgIGVuZ2luZTogRW5kcG9pbnRFbmdpbmUuTVlTUUwsXG4gKiAgIHNlcnZlck5hbWU6ICdteXNxbC5leGFtcGxlLmNvbScsXG4gKiAgIHBvcnQ6IDMzMDYsXG4gKiAgIHVzZXJuYW1lOiAnZG1zX3VzZXInLFxuICogICBwYXNzd29yZDogY2RrLlNlY3JldFZhbHVlLnNzbVNlY3VyZSgnL2Rtcy9teXNxbC9wYXNzd29yZCcpLFxuICogICBkYXRhYmFzZU5hbWU6ICdteWRiJyxcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgRG1zRW5kcG9pbnQgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJRG1zRW5kcG9pbnQge1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3RhdGljIHZhbGlkYXRpb24gZGF0YSDigJQgZGVjbGFyZWQgZmlyc3QgdG8gc2F0aXNmeSBtZW1iZXItb3JkZXJpbmcgcnVsZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVEFSR0VUX09OTFlfRU5HSU5FUzogRW5kcG9pbnRFbmdpbmVbXSA9IFtcbiAgICBFbmRwb2ludEVuZ2luZS5EWU5BTU9EQixcbiAgICBFbmRwb2ludEVuZ2luZS5LSU5FU0lTLFxuICAgIEVuZHBvaW50RW5naW5lLktBRktBLFxuICAgIEVuZHBvaW50RW5naW5lLk9QRU5TRUFSQ0gsXG4gICAgRW5kcG9pbnRFbmdpbmUuTkVQVFVORSxcbiAgICBFbmRwb2ludEVuZ2luZS5SRURJUyxcbiAgXTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTT1VSQ0VfT05MWV9FTkdJTkVTOiBFbmRwb2ludEVuZ2luZVtdID0gW1xuICAgIEVuZHBvaW50RW5naW5lLklCTV9EQjJfWk9TLFxuICBdO1xuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlRW5naW5lRW5kcG9pbnRUeXBlKFxuICAgIGVuZ2luZTogRW5kcG9pbnRFbmdpbmUsXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGUsXG4gICk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGVuZHBvaW50VHlwZSA9PT0gRW5kcG9pbnRUeXBlLlNPVVJDRSAmJlxuICAgICAgRG1zRW5kcG9pbnQuVEFSR0VUX09OTFlfRU5HSU5FUy5pbmNsdWRlcyhlbmdpbmUpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBFbmdpbmUgJyR7ZW5naW5lfScgaXMgb25seSBzdXBwb3J0ZWQgYXMgYSBUQVJHRVQgZW5kcG9pbnQsIG5vdCBhcyBhIFNPVVJDRS5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgZW5kcG9pbnRUeXBlID09PSBFbmRwb2ludFR5cGUuVEFSR0VUICYmXG4gICAgICBEbXNFbmRwb2ludC5TT1VSQ0VfT05MWV9FTkdJTkVTLmluY2x1ZGVzKGVuZ2luZSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEVuZ2luZSAnJHtlbmdpbmV9JyBpcyBvbmx5IHN1cHBvcnRlZCBhcyBhIFNPVVJDRSBlbmRwb2ludCwgbm90IGFzIGEgVEFSR0VULmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBJbnN0YW5jZSBmaWVsZHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIENsb3VkRm9ybWF0aW9uIGVuZHBvaW50IHJlc291cmNlLiAqL1xuICByZWFkb25seSBjZm5FbmRwb2ludDogZG1zLkNmbkVuZHBvaW50O1xuXG4gIC8qKiBBUk4gb2YgdGhlIERNUyBlbmRwb2ludC4gKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRBcm46IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRG1zRW5kcG9pbnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBEbXNFbmRwb2ludC52YWxpZGF0ZUVuZ2luZUVuZHBvaW50VHlwZShwcm9wcy5lbmdpbmUsIHByb3BzLmVuZHBvaW50VHlwZSk7XG5cbiAgICBjb25zdCBlbmRwb2ludElkZW50aWZpZXIgPVxuICAgICAgcHJvcHMuZW5kcG9pbnRJZGVudGlmaWVyID8/XG4gICAgICBjZGsuTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHsgbWF4TGVuZ3RoOiA2MyB9KS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgdGhpcy5jZm5FbmRwb2ludCA9IG5ldyBkbXMuQ2ZuRW5kcG9pbnQodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgZW5kcG9pbnRUeXBlOiBwcm9wcy5lbmRwb2ludFR5cGUsXG4gICAgICBlbmdpbmVOYW1lOiBwcm9wcy5lbmdpbmUsXG4gICAgICBlbmRwb2ludElkZW50aWZpZXIsXG4gICAgICBzZXJ2ZXJOYW1lOiBwcm9wcy5zZXJ2ZXJOYW1lLFxuICAgICAgcG9ydDogcHJvcHMucG9ydCxcbiAgICAgIHVzZXJuYW1lOiBwcm9wcy51c2VybmFtZSxcbiAgICAgIHBhc3N3b3JkOiBwcm9wcy5wYXNzd29yZD8udW5zYWZlVW53cmFwKCksXG4gICAgICBkYXRhYmFzZU5hbWU6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgIGV4dHJhQ29ubmVjdGlvbkF0dHJpYnV0ZXM6IHByb3BzLmV4dHJhQ29ubmVjdGlvbkF0dHJpYnV0ZXMsXG4gICAgICBjZXJ0aWZpY2F0ZUFybjogcHJvcHMuY2VydGlmaWNhdGVBcm4sXG4gICAgICBzc2xNb2RlOiBwcm9wcy5zc2xNb2RlID8/ICdub25lJyxcblxuICAgICAgLy8gRW5naW5lLXNwZWNpZmljIHNldHRpbmdzIOKAlCBvbmx5IG9uZSBzaG91bGQgYmUgc2V0IHBlciBlbmRwb2ludFxuICAgICAgbXlTcWxTZXR0aW5nczogdGhpcy5idWlsZE15U3FsU2V0dGluZ3MocHJvcHMpLFxuICAgICAgcG9zdGdyZVNxbFNldHRpbmdzOiB0aGlzLmJ1aWxkUG9zdGdyZVNxbFNldHRpbmdzKHByb3BzKSxcbiAgICAgIG9yYWNsZVNldHRpbmdzOiB0aGlzLmJ1aWxkT3JhY2xlU2V0dGluZ3MocHJvcHMpLFxuICAgICAgbWljcm9zb2Z0U3FsU2VydmVyU2V0dGluZ3M6IHRoaXMuYnVpbGRTcWxTZXJ2ZXJTZXR0aW5ncyhwcm9wcyksXG4gICAgICBzeWJhc2VTZXR0aW5nczogdGhpcy5idWlsZFNhcEFzZVNldHRpbmdzKHByb3BzKSxcbiAgICAgIGlibURiMlNldHRpbmdzOiB0aGlzLmJ1aWxkRGIyU2V0dGluZ3MocHJvcHMpLFxuICAgICAgbW9uZ29EYlNldHRpbmdzOiB0aGlzLmJ1aWxkTW9uZ29EYlNldHRpbmdzKHByb3BzKSxcbiAgICAgIHMzU2V0dGluZ3M6IHRoaXMuYnVpbGRTM1NldHRpbmdzKHByb3BzKSxcbiAgICAgIGR5bmFtb0RiU2V0dGluZ3M6IHRoaXMuYnVpbGREeW5hbW9EYlNldHRpbmdzKHByb3BzKSxcbiAgICAgIHJlZHNoaWZ0U2V0dGluZ3M6IHRoaXMuYnVpbGRSZWRzaGlmdFNldHRpbmdzKHByb3BzKSxcbiAgICAgIGtpbmVzaXNTZXR0aW5nczogdGhpcy5idWlsZEtpbmVzaXNTZXR0aW5ncyhwcm9wcyksXG4gICAgICBrYWZrYVNldHRpbmdzOiB0aGlzLmJ1aWxkS2Fma2FTZXR0aW5ncyhwcm9wcyksXG4gICAgICBlbGFzdGljc2VhcmNoU2V0dGluZ3M6IHRoaXMuYnVpbGRPcGVuU2VhcmNoU2V0dGluZ3MocHJvcHMpLFxuICAgICAgbmVwdHVuZVNldHRpbmdzOiB0aGlzLmJ1aWxkTmVwdHVuZVNldHRpbmdzKHByb3BzKSxcbiAgICAgIHJlZGlzU2V0dGluZ3M6IHRoaXMuYnVpbGRSZWRpc1NldHRpbmdzKHByb3BzKSxcbiAgICAgIGRvY0RiU2V0dGluZ3M6IHRoaXMuYnVpbGREb2NEYlNldHRpbmdzKHByb3BzKSxcbiAgICB9KTtcblxuICAgIHRoaXMuY2ZuRW5kcG9pbnQuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLnJlbW92YWxQb2xpY3kgPz8gY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gICAgdGhpcy5lbmRwb2ludEFybiA9IHRoaXMuY2ZuRW5kcG9pbnQucmVmO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFByaXZhdGUgbWFwcGluZyBoZWxwZXJzIOKAlCB0cmFuc2xhdGUgdHlwZWQgaW50ZXJmYWNlcyB0byBDRk4gcHJvcGVydHkgc2hhcGVzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByaXZhdGUgYnVpbGRNeVNxbFNldHRpbmdzKFxuICAgIHByb3BzOiBEbXNFbmRwb2ludFByb3BzLFxuICApOiBkbXMuQ2ZuRW5kcG9pbnQuTXlTcWxTZXR0aW5nc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzID0gcHJvcHMubXlTcWxTZXR0aW5ncztcbiAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFmdGVyQ29ubmVjdFNjcmlwdDogcy5hZnRlckNvbm5lY3RTY3JpcHQsXG4gICAgICBjbGVhblNvdXJjZU1ldGFkYXRhT25NaXNtYXRjaDogcy5jbGVhblNvdXJjZU1ldGFkYXRhT25NaXNtYXRjaCxcbiAgICAgIGV2ZW50c1BvbGxJbnRlcnZhbDogcy5ldmVudHNQb2xsSW50ZXJ2YWwsXG4gICAgICBtYXhGaWxlU2l6ZTogcy5tYXhGaWxlU2l6ZSxcbiAgICAgIHBhcmFsbGVsTG9hZFRocmVhZHM6IHMucGFyYWxsZWxMb2FkVGhyZWFkcyxcbiAgICAgIHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybjogcy5zZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm4sXG4gICAgICBzZWNyZXRzTWFuYWdlclNlY3JldElkOiBzLnNlY3JldHNNYW5hZ2VyU2VjcmV0SWQsXG4gICAgICBzZXJ2ZXJUaW1lem9uZTogcy5zZXJ2ZXJUaW1lem9uZSxcbiAgICAgIHRhcmdldERiVHlwZTogcy50YXJnZXREYlR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRQb3N0Z3JlU3FsU2V0dGluZ3MoXG4gICAgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMsXG4gICk6IGRtcy5DZm5FbmRwb2ludC5Qb3N0Z3JlU3FsU2V0dGluZ3NQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcyA9IHByb3BzLnBvc3RncmVTcWxTZXR0aW5ncztcbiAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFmdGVyQ29ubmVjdFNjcmlwdDogcy5hZnRlckNvbm5lY3RTY3JpcHQsXG4gICAgICBjYXB0dXJlRGRsczogcy5jYXB0dXJlRGRscyxcbiAgICAgIGRkbEFydGlmYWN0c1NjaGVtYTogcy5kZGxBcnRpZmFjdHNTY2hlbWEsXG4gICAgICBleGVjdXRlVGltZW91dDogcy5leGVjdXRlVGltZW91dCxcbiAgICAgIGZhaWxUYXNrc09uTG9iVHJ1bmNhdGlvbjogcy5mYWlsVGFza3NPbkxvYlRydW5jYXRpb24sXG4gICAgICBoZWFydGJlYXRFbmFibGU6IHMuaGVhcnRiZWF0RW5hYmxlLFxuICAgICAgaGVhcnRiZWF0RnJlcXVlbmN5OiBzLmhlYXJ0YmVhdEZyZXF1ZW5jeSxcbiAgICAgIGhlYXJ0YmVhdFNjaGVtYTogcy5oZWFydGJlYXRTY2hlbWEsXG4gICAgICBtYXBCb29sZWFuQXNCb29sZWFuOiBzLm1hcEJvb2xlYW5Bc0Jvb2xlYW4sXG4gICAgICBtYXhGaWxlU2l6ZTogcy5tYXhGaWxlU2l6ZSxcbiAgICAgIHBsdWdpbk5hbWU6IHMucGx1Z2luTmFtZSxcbiAgICAgIHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybjogcy5zZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm4sXG4gICAgICBzZWNyZXRzTWFuYWdlclNlY3JldElkOiBzLnNlY3JldHNNYW5hZ2VyU2VjcmV0SWQsXG4gICAgICBzbG90TmFtZTogcy5zbG90TmFtZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZE9yYWNsZVNldHRpbmdzKFxuICAgIHByb3BzOiBEbXNFbmRwb2ludFByb3BzLFxuICApOiBkbXMuQ2ZuRW5kcG9pbnQuT3JhY2xlU2V0dGluZ3NQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcyA9IHByb3BzLm9yYWNsZVNldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgYWNjZXNzQWx0ZXJuYXRlRGlyZWN0bHk6IHMuYWNjZXNzQWx0ZXJuYXRlRGlyZWN0bHksXG4gICAgICBhZGRTdXBwbGVtZW50YWxMb2dnaW5nOiBzLmFkZFN1cHBsZW1lbnRhbExvZ2dpbmcsXG4gICAgICBhZGRpdGlvbmFsQXJjaGl2ZWRMb2dEZXN0SWQ6IHMuYWRkaXRpb25hbEFyY2hpdmVkTG9nRGVzdElkLFxuICAgICAgYWxsb3dTZWxlY3ROZXN0ZWRUYWJsZXM6IHMuYWxsb3dTZWxlY3ROZXN0ZWRUYWJsZXMsXG4gICAgICBhcmNoaXZlZExvZ0Rlc3RJZDogcy5hcmNoaXZlZExvZ0Rlc3RJZCxcbiAgICAgIGFyY2hpdmVkTG9nc09ubHk6IHMuYXJjaGl2ZWRMb2dzT25seSxcbiAgICAgIGFzbVBhc3N3b3JkOiBzLmFzbVBhc3N3b3JkPy51bnNhZmVVbndyYXAoKSxcbiAgICAgIGFzbVNlcnZlcjogcy5hc21TZXJ2ZXIsXG4gICAgICBhc21Vc2VyOiBzLmFzbVVzZXIsXG4gICAgICBjaGFyTGVuZ3RoU2VtYW50aWNzOiBzLmNoYXJMZW5ndGhTZW1hbnRpY3MsXG4gICAgICBkaXJlY3RQYXRoTm9Mb2c6IHMuZGlyZWN0UGF0aE5vTG9nLFxuICAgICAgZGlyZWN0UGF0aFBhcmFsbGVsTG9hZDogcy5kaXJlY3RQYXRoUGFyYWxsZWxMb2FkLFxuICAgICAgZW5hYmxlSG9tb2dlbm91c1RhYmxlc3BhY2U6IHMuZW5hYmxlSG9tb2dlbm91c1RhYmxlc3BhY2UsXG4gICAgICBleHRyYUFyY2hpdmVkTG9nRGVzdElkczogcy5leHRyYUFyY2hpdmVkTG9nRGVzdElkcyxcbiAgICAgIGZhaWxUYXNrc09uTG9iVHJ1bmNhdGlvbjogcy5mYWlsVGFza3NPbkxvYlRydW5jYXRpb24sXG4gICAgICBudW1iZXJEYXRhdHlwZVNjYWxlOiBzLm51bWJlckRhdGF0eXBlU2NhbGUsXG4gICAgICBvcmFjbGVQYXRoUHJlZml4OiBzLm9yYWNsZVBhdGhQcmVmaXgsXG4gICAgICBwYXJhbGxlbEFzbVJlYWRUaHJlYWRzOiBzLnBhcmFsbGVsQXNtUmVhZFRocmVhZHMsXG4gICAgICByZWFkQWhlYWRCbG9ja3M6IHMucmVhZEFoZWFkQmxvY2tzLFxuICAgICAgcmVhZFRhYmxlU3BhY2VOYW1lOiBzLnJlYWRUYWJsZVNwYWNlTmFtZSxcbiAgICAgIHJldHJ5SW50ZXJ2YWw6IHMucmV0cnlJbnRlcnZhbCxcbiAgICAgIHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybjogcy5zZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm4sXG4gICAgICBzZWNyZXRzTWFuYWdlck9yYWNsZUFzbUFjY2Vzc1JvbGVBcm46IHMuc2VjcmV0c01hbmFnZXJPcmFjbGVBc21BY2Nlc3NSb2xlQXJuLFxuICAgICAgc2VjcmV0c01hbmFnZXJPcmFjbGVBc21TZWNyZXRJZDogcy5zZWNyZXRzTWFuYWdlck9yYWNsZUFzbVNlY3JldElkLFxuICAgICAgc2VjcmV0c01hbmFnZXJTZWNyZXRJZDogcy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgICAgc2VjdXJpdHlEYkVuY3J5cHRpb25OYW1lOiBzLnNlY3VyaXR5RGJFbmNyeXB0aW9uTmFtZSxcbiAgICAgIHVzZUFsdGVybmF0ZUZvbGRlckZvck9ubGluZTogcy51c2VBbHRlcm5hdGVGb2xkZXJGb3JPbmxpbmUsXG4gICAgICB1c2VCRmlsZTogcy51c2VCRmlsZSxcbiAgICAgIHVzZURpcmVjdFBhdGhGdWxsTG9hZDogcy51c2VEaXJlY3RQYXRoRnVsbExvYWQsXG4gICAgICB1c2VMb2dtaW5lclJlYWRlcjogcy51c2VMb2dtaW5lclJlYWRlcixcbiAgICAgIHVzZVBhdGhQcmVmaXg6IHMudXNlUGF0aFByZWZpeCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFNxbFNlcnZlclNldHRpbmdzKFxuICAgIHByb3BzOiBEbXNFbmRwb2ludFByb3BzLFxuICApOiBkbXMuQ2ZuRW5kcG9pbnQuTWljcm9zb2Z0U3FsU2VydmVyU2V0dGluZ3NQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcyA9IHByb3BzLnNxbFNlcnZlclNldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgYmNwUGFja2V0U2l6ZTogcy5iY3BQYWNrZXRTaXplLFxuICAgICAgY29udHJvbFRhYmxlc0ZpbGVHcm91cDogcy5jb250cm9sVGFibGVzRmlsZUdyb3VwLFxuICAgICAgcXVlcnlTaW5nbGVBbHdheXNPbk5vZGU6IHMucXVlcnlTaW5nbGVBbHdheXNPbk5vZGUsXG4gICAgICByZWFkQmFja3VwT25seTogcy5yZWFkQmFja3VwT25seSxcbiAgICAgIHNhZmVndWFyZFBvbGljeTogcy5zYWZlZ3VhcmRQb2xpY3ksXG4gICAgICBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm46IHMuc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuLFxuICAgICAgc2VjcmV0c01hbmFnZXJTZWNyZXRJZDogcy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgICAgdXNlQmNwRnVsbExvYWQ6IHMudXNlQmNwRnVsbExvYWQsXG4gICAgICB1c2VUaGlyZFBhcnR5QmFja3VwRGV2aWNlOiBzLnVzZVRoaXJkUGFydHlCYWNrdXBEZXZpY2UsXG4gICAgICB0cmltU3BhY2VJbkNoYXI6IHMudHJpbVNwYWNlSW5DaGFyLFxuICAgICAgdGxvZ0FjY2Vzc01vZGU6IHMudGxvZ0FjY2Vzc01vZGUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTYXBBc2VTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50LlN5YmFzZVNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5zYXBBc2VTZXR0aW5ncztcbiAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybjogcy5zZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm4sXG4gICAgICBzZWNyZXRzTWFuYWdlclNlY3JldElkOiBzLnNlY3JldHNNYW5hZ2VyU2VjcmV0SWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREYjJTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50LklibURiMlNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5kYjJTZXR0aW5ncztcbiAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGN1cnJlbnRMc246IHMuY3VycmVudExzbixcbiAgICAgIG1heEtCeXRlc1BlclJlYWQ6IHMubWF4S0J5dGVzUGVyUmVhZCxcbiAgICAgIHNldERhdGFDYXB0dXJlQ2hhbmdlczogcy5zZXREYXRhQ2FwdHVyZUNoYW5nZXMsXG4gICAgICBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm46IHMuc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuLFxuICAgICAgc2VjcmV0c01hbmFnZXJTZWNyZXRJZDogcy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTW9uZ29EYlNldHRpbmdzKFxuICAgIHByb3BzOiBEbXNFbmRwb2ludFByb3BzLFxuICApOiBkbXMuQ2ZuRW5kcG9pbnQuTW9uZ29EYlNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5tb25nb0RiU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBhdXRoTWVjaGFuaXNtOiBzLmF1dGhNZWNoYW5pc20sXG4gICAgICBhdXRoU291cmNlOiBzLmF1dGhTb3VyY2UsXG4gICAgICBhdXRoVHlwZTogcy5hdXRoVHlwZSxcbiAgICAgIGRvY3NUb0ludmVzdGlnYXRlOiBzLmRvY3NUb0ludmVzdGlnYXRlPy50b1N0cmluZygpLFxuICAgICAgZXh0cmFjdERvY0lkOiBzLmV4dHJhY3REb2NJZD8udG9TdHJpbmcoKSxcbiAgICAgIG5lc3RpbmdMZXZlbDogcy5uZXN0aW5nTGV2ZWwsXG4gICAgICBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm46IHMuc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuLFxuICAgICAgc2VjcmV0c01hbmFnZXJTZWNyZXRJZDogcy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRG9jRGJTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50LkRvY0RiU2V0dGluZ3NQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHByb3BzLmVuZ2luZSAhPT0gRW5kcG9pbnRFbmdpbmUuRE9DREIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcyA9IHByb3BzLm1vbmdvRGJTZXR0aW5ncztcbiAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRvY3NUb0ludmVzdGlnYXRlOiBzLmRvY3NUb0ludmVzdGlnYXRlLFxuICAgICAgZXh0cmFjdERvY0lkOiBzLmV4dHJhY3REb2NJZCxcbiAgICAgIG5lc3RpbmdMZXZlbDogcy5uZXN0aW5nTGV2ZWwsXG4gICAgICBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm46IHMuc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuLFxuICAgICAgc2VjcmV0c01hbmFnZXJTZWNyZXRJZDogcy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUzNTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50LlMzU2V0dGluZ3NQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcyA9IHByb3BzLnMzU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBidWNrZXROYW1lOiBzLmJ1Y2tldE5hbWUsXG4gICAgICBidWNrZXRGb2xkZXI6IHMuYnVja2V0Rm9sZGVyLFxuICAgICAgc2VydmljZUFjY2Vzc1JvbGVBcm46IHMuc2VydmljZUFjY2Vzc1JvbGVBcm4sXG4gICAgICBhZGRDb2x1bW5OYW1lOiBzLmFkZENvbHVtbk5hbWUsXG4gICAgICBjZGNJbnNlcnRzQW5kVXBkYXRlczogcy5jZGNJbnNlcnRzQW5kVXBkYXRlcyxcbiAgICAgIGNkY0luc2VydHNPbmx5OiBzLmNkY0luc2VydHNPbmx5LFxuICAgICAgY2RjTWF4QmF0Y2hJbnRlcnZhbDogcy5jZGNNYXhCYXRjaEludGVydmFsLFxuICAgICAgY2RjTWluRmlsZVNpemU6IHMuY2RjTWluRmlsZVNpemUsXG4gICAgICBjZGNQYXRoOiBzLmNkY1BhdGgsXG4gICAgICBjc3ZEZWxpbWl0ZXI6IHMuY3N2RGVsaW1pdGVyLFxuICAgICAgY3N2Tm9TdXBWYWx1ZTogcy5jc3ZOb1N1cFZhbHVlLFxuICAgICAgY3N2TnVsbFZhbHVlOiBzLmNzdk51bGxWYWx1ZSxcbiAgICAgIGNzdlJvd0RlbGltaXRlcjogcy5jc3ZSb3dEZWxpbWl0ZXIsXG4gICAgICBkYXRhRm9ybWF0OiBzLmRhdGFGb3JtYXQsXG4gICAgICBkYXRlUGFydGl0aW9uRGVsaW1pdGVyOiBzLmRhdGVQYXJ0aXRpb25EZWxpbWl0ZXIsXG4gICAgICBkYXRlUGFydGl0aW9uRW5hYmxlZDogcy5kYXRlUGFydGl0aW9uRW5hYmxlZCxcbiAgICAgIGRhdGVQYXJ0aXRpb25TZXF1ZW5jZTogcy5kYXRlUGFydGl0aW9uU2VxdWVuY2UsXG4gICAgICBkaWN0UGFnZVNpemVMaW1pdDogcy5kaWN0UGFnZVNpemVMaW1pdCxcbiAgICAgIGVuYWJsZVN0YXRpc3RpY3M6IHMuZW5hYmxlU3RhdGlzdGljcyxcbiAgICAgIGVuY29kaW5nVHlwZTogcy5lbmNvZGluZ1R5cGUsXG4gICAgICBlbmNyeXB0aW9uTW9kZTogcy5lbmNyeXB0aW9uTW9kZSxcbiAgICAgIGV4dGVybmFsVGFibGVEZWZpbml0aW9uOiBzLmV4dGVybmFsVGFibGVEZWZpbml0aW9uLFxuICAgICAgaWdub3JlSGVhZGVyUm93czogcy5pZ25vcmVIZWFkZXJSb3dzLFxuICAgICAgaW5jbHVkZU9wRm9yRnVsbExvYWQ6IHMuaW5jbHVkZU9wRm9yRnVsbExvYWQsXG4gICAgICBtYXhGaWxlU2l6ZTogcy5tYXhGaWxlU2l6ZSxcbiAgICAgIHBhcnF1ZXRUaW1lc3RhbXBJbk1pbGxpc2Vjb25kOiBzLnBhcnF1ZXRUaW1lc3RhbXBJbk1pbGxpc2Vjb25kLFxuICAgICAgcGFycXVldFZlcnNpb246IHMucGFycXVldFZlcnNpb24sXG4gICAgICBwcmVzZXJ2ZVRyYW5zYWN0aW9uczogcy5wcmVzZXJ2ZVRyYW5zYWN0aW9ucyxcbiAgICAgIHJmYzQxODA6IHMucmZjNDE4MCxcbiAgICAgIHJvd0dyb3VwTGVuZ3RoOiBzLnJvd0dyb3VwTGVuZ3RoLFxuICAgICAgc2VydmVyU2lkZUVuY3J5cHRpb25LbXNLZXlJZDogcy5zZXJ2ZXJTaWRlRW5jcnlwdGlvbkttc0tleUlkLFxuICAgICAgdGltZXN0YW1wQ29sdW1uTmFtZTogcy50aW1lc3RhbXBDb2x1bW5OYW1lLFxuICAgICAgdXNlQ3N2Tm9TdXBWYWx1ZTogcy51c2VDc3ZOb1N1cFZhbHVlLFxuICAgICAgdXNlVGFza1N0YXJ0VGltZUZvckZ1bGxMb2FkVGltZXN0YW1wOiBzLnVzZVRhc2tTdGFydFRpbWVGb3JGdWxsTG9hZFRpbWVzdGFtcCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZER5bmFtb0RiU2V0dGluZ3MoXG4gICAgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMsXG4gICk6IGRtcy5DZm5FbmRwb2ludC5EeW5hbW9EYlNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5keW5hbW9EYlNldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4geyBzZXJ2aWNlQWNjZXNzUm9sZUFybjogcy5zZXJ2aWNlQWNjZXNzUm9sZUFybiB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFJlZHNoaWZ0U2V0dGluZ3MoXG4gICAgcHJvcHM6IERtc0VuZHBvaW50UHJvcHMsXG4gICk6IGRtcy5DZm5FbmRwb2ludC5SZWRzaGlmdFNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5yZWRzaGlmdFNldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgYWNjZXB0QW55RGF0ZTogcy5hY2NlcHRBbnlEYXRlLFxuICAgICAgYWZ0ZXJDb25uZWN0U2NyaXB0OiBzLmFmdGVyQ29ubmVjdFNjcmlwdCxcbiAgICAgIGJ1Y2tldEZvbGRlcjogcy5idWNrZXRGb2xkZXIsXG4gICAgICBidWNrZXROYW1lOiBzLmJ1Y2tldE5hbWUsXG4gICAgICBjYXNlU2Vuc2l0aXZlTmFtZXM6IHMuY2FzZVNlbnNpdGl2ZU5hbWVzLFxuICAgICAgY29tcFVwZGF0ZTogcy5jb21wVXBkYXRlLFxuICAgICAgY29ubmVjdGlvblRpbWVvdXQ6IHMuY29ubmVjdGlvblRpbWVvdXQsXG4gICAgICBkYXRlRm9ybWF0OiBzLmRhdGVGb3JtYXQsXG4gICAgICBlbXB0eUFzTnVsbDogcy5lbXB0eUFzTnVsbCxcbiAgICAgIGVuY3J5cHRpb25Nb2RlOiBzLmVuY3J5cHRpb25Nb2RlLFxuICAgICAgZXhwbGljaXRJZHM6IHMuZXhwbGljaXRJZHMsXG4gICAgICBmaWxlVHJhbnNmZXJVcGxvYWRTdHJlYW1zOiBzLmZpbGVUcmFuc2ZlclVwbG9hZFN0cmVhbXMsXG4gICAgICBsb2FkVGltZW91dDogcy5sb2FkVGltZW91dCxcbiAgICAgIG1heEZpbGVTaXplOiBzLm1heEZpbGVTaXplLFxuICAgICAgcmVtb3ZlUXVvdGVzOiBzLnJlbW92ZVF1b3RlcyxcbiAgICAgIHJlcGxhY2VJbnZhbGlkQ2hhcnM6IHMucmVwbGFjZUludmFsaWRDaGFycyxcbiAgICAgIHJlcGxhY2VDaGFyczogcy5yZXBsYWNlQ2hhcnMsXG4gICAgICBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm46IHMuc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuLFxuICAgICAgc2VjcmV0c01hbmFnZXJTZWNyZXRJZDogcy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgICAgc2VydmVyU2lkZUVuY3J5cHRpb25LbXNLZXlJZDogcy5zZXJ2ZXJTaWRlRW5jcnlwdGlvbkttc0tleUlkLFxuICAgICAgc2VydmljZUFjY2Vzc1JvbGVBcm46IHMuc2VydmljZUFjY2Vzc1JvbGVBcm4sXG4gICAgICB0aW1lRm9ybWF0OiBzLnRpbWVGb3JtYXQsXG4gICAgICB0cmltQmxhbmtzOiBzLnRyaW1CbGFua3MsXG4gICAgICB0cnVuY2F0ZUNvbHVtbnM6IHMudHJ1bmNhdGVDb2x1bW5zLFxuICAgICAgd3JpdGVCdWZmZXJTaXplOiBzLndyaXRlQnVmZmVyU2l6ZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEtpbmVzaXNTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50LktpbmVzaXNTZXR0aW5nc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzID0gcHJvcHMua2luZXNpc1NldHRpbmdzO1xuICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgc3RyZWFtQXJuOiBzLnN0cmVhbUFybixcbiAgICAgIHNlcnZpY2VBY2Nlc3NSb2xlQXJuOiBzLnNlcnZpY2VBY2Nlc3NSb2xlQXJuLFxuICAgICAgaW5jbHVkZUNvbnRyb2xEZXRhaWxzOiBzLmluY2x1ZGVDb250cm9sRGV0YWlscyxcbiAgICAgIGluY2x1ZGVOdWxsQW5kRW1wdHk6IHMuaW5jbHVkZU51bGxBbmRFbXB0eSxcbiAgICAgIGluY2x1ZGVQYXJ0aXRpb25WYWx1ZTogcy5pbmNsdWRlUGFydGl0aW9uVmFsdWUsXG4gICAgICBpbmNsdWRlVGFibGVBbHRlck9wZXJhdGlvbnM6IHMuaW5jbHVkZVRhYmxlQWx0ZXJPcGVyYXRpb25zLFxuICAgICAgaW5jbHVkZVRyYW5zYWN0aW9uRGV0YWlsczogcy5pbmNsdWRlVHJhbnNhY3Rpb25EZXRhaWxzLFxuICAgICAgbWVzc2FnZUZvcm1hdDogcy5tZXNzYWdlRm9ybWF0LFxuICAgICAgbm9IZXhQcmVmaXg6IHMubm9IZXhQcmVmaXgsXG4gICAgICBwYXJ0aXRpb25JbmNsdWRlU2NoZW1hVGFibGU6IHMucGFydGl0aW9uSW5jbHVkZVNjaGVtYVRhYmxlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkS2Fma2FTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50LkthZmthU2V0dGluZ3NQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcyA9IHByb3BzLmthZmthU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBicm9rZXI6IHMuYnJva2VyLFxuICAgICAgdG9waWM6IHMudG9waWMsXG4gICAgICBpbmNsdWRlQ29udHJvbERldGFpbHM6IHMuaW5jbHVkZUNvbnRyb2xEZXRhaWxzLFxuICAgICAgaW5jbHVkZU51bGxBbmRFbXB0eTogcy5pbmNsdWRlTnVsbEFuZEVtcHR5LFxuICAgICAgaW5jbHVkZVBhcnRpdGlvblZhbHVlOiBzLmluY2x1ZGVQYXJ0aXRpb25WYWx1ZSxcbiAgICAgIGluY2x1ZGVUYWJsZUFsdGVyT3BlcmF0aW9uczogcy5pbmNsdWRlVGFibGVBbHRlck9wZXJhdGlvbnMsXG4gICAgICBpbmNsdWRlVHJhbnNhY3Rpb25EZXRhaWxzOiBzLmluY2x1ZGVUcmFuc2FjdGlvbkRldGFpbHMsXG4gICAgICBtZXNzYWdlRm9ybWF0OiBzLm1lc3NhZ2VGb3JtYXQsXG4gICAgICBtZXNzYWdlTWF4Qnl0ZXM6IHMubWVzc2FnZU1heEJ5dGVzLFxuICAgICAgbm9IZXhQcmVmaXg6IHMubm9IZXhQcmVmaXgsXG4gICAgICBwYXJ0aXRpb25JbmNsdWRlU2NoZW1hVGFibGU6IHMucGFydGl0aW9uSW5jbHVkZVNjaGVtYVRhYmxlLFxuICAgICAgc2VjdXJpdHlQcm90b2NvbDogcy5zZWN1cml0eVByb3RvY29sLFxuICAgICAgc2FzbFVzZXJOYW1lOiBzLnNhc2xVc2VybmFtZSxcbiAgICAgIHNhc2xQYXNzd29yZDogcy5zYXNsUGFzc3dvcmQ/LnVuc2FmZVVud3JhcCgpLFxuICAgICAgc3NsQ2FDZXJ0aWZpY2F0ZUFybjogcy5zc2xDYUNlcnRpZmljYXRlQXJuLFxuICAgICAgc3NsQ2xpZW50Q2VydGlmaWNhdGVBcm46IHMuc3NsQ2xpZW50Q2VydGlmaWNhdGVBcm4sXG4gICAgICBzc2xDbGllbnRLZXlBcm46IHMuc3NsQ2xpZW50S2V5QXJuLFxuICAgICAgc3NsQ2xpZW50S2V5UGFzc3dvcmQ6IHMuc3NsQ2xpZW50S2V5UGFzc3dvcmQ/LnVuc2FmZVVud3JhcCgpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkT3BlblNlYXJjaFNldHRpbmdzKFxuICAgIHByb3BzOiBEbXNFbmRwb2ludFByb3BzLFxuICApOiBkbXMuQ2ZuRW5kcG9pbnQuRWxhc3RpY3NlYXJjaFNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5vcGVuU2VhcmNoU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBlbmRwb2ludFVyaTogcy5lbmRwb2ludFVyaSxcbiAgICAgIHNlcnZpY2VBY2Nlc3NSb2xlQXJuOiBzLnNlcnZpY2VBY2Nlc3NSb2xlQXJuLFxuICAgICAgZXJyb3JSZXRyeUR1cmF0aW9uOiBzLmVycm9yUmV0cnlEdXJhdGlvbixcbiAgICAgIGZ1bGxMb2FkRXJyb3JQZXJjZW50YWdlOiBzLmZ1bGxMb2FkRXJyb3JQZXJjZW50YWdlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTmVwdHVuZVNldHRpbmdzKFxuICAgIHByb3BzOiBEbXNFbmRwb2ludFByb3BzLFxuICApOiBkbXMuQ2ZuRW5kcG9pbnQuTmVwdHVuZVNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHMgPSBwcm9wcy5uZXB0dW5lU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBzM0J1Y2tldE5hbWU6IHMuczNCdWNrZXROYW1lLFxuICAgICAgczNCdWNrZXRGb2xkZXI6IHMuczNCdWNrZXRGb2xkZXIsXG4gICAgICBzZXJ2aWNlQWNjZXNzUm9sZUFybjogcy5zZXJ2aWNlQWNjZXNzUm9sZUFybixcbiAgICAgIGVycm9yUmV0cnlEdXJhdGlvbjogcy5lcnJvclJldHJ5RHVyYXRpb24sXG4gICAgICBpYW1BdXRoRW5hYmxlZDogcy5pYW1BdXRoRW5hYmxlZCxcbiAgICAgIG1heEZpbGVTaXplOiBzLm1heEZpbGVTaXplLFxuICAgICAgbWF4UmV0cnlDb3VudDogcy5tYXhSZXRyeUNvdW50LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUmVkaXNTZXR0aW5ncyhcbiAgICBwcm9wczogRG1zRW5kcG9pbnRQcm9wcyxcbiAgKTogZG1zLkNmbkVuZHBvaW50LlJlZGlzU2V0dGluZ3NQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcyA9IHByb3BzLnJlZGlzU2V0dGluZ3M7XG4gICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBzZXJ2ZXJOYW1lOiBzLnNlcnZlck5hbWUsXG4gICAgICBwb3J0OiBzLnBvcnQgPz8gNjM3OSxcbiAgICAgIHNzbFNlY3VyaXR5UHJvdG9jb2w6IHMuc3NsU2VjdXJpdHlQcm90b2NvbCxcbiAgICAgIGF1dGhUeXBlOiBzLmF1dGhUeXBlLFxuICAgICAgYXV0aFVzZXJOYW1lOiBzLmF1dGhVc2VyTmFtZSxcbiAgICAgIGF1dGhQYXNzd29yZDogcy5hdXRoUGFzc3dvcmQ/LnVuc2FmZVVud3JhcCgpLFxuICAgICAgc3NsQ2FDZXJ0aWZpY2F0ZUFybjogcy5zc2xDYUNlcnRpZmljYXRlQXJuLFxuICAgIH07XG4gIH1cblxufVxuIl19