@cdktn/hcl2cdk 0.23.2 → 0.23.3
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/build/__tests__/expressions.test.js +19 -10
- package/build/__tests__/functions.test.js +18 -8
- package/build/__tests__/jsii-rosetta-workarounds.test.js +2 -2
- package/build/__tests__/testHelpers.js +2 -3
- package/build/coerceType.js +21 -11
- package/build/dynamic-blocks.js +3 -3
- package/build/expressions.js +24 -16
- package/build/generation.js +35 -25
- package/build/index.js +28 -18
- package/build/iteration.js +6 -7
- package/build/jsii-rosetta-workarounds.js +5 -6
- package/build/partialCode.js +20 -11
- package/build/provider.js +3 -4
- package/build/references.js +6 -8
- package/build/schema.js +18 -8
- package/build/terraformSchema.js +4 -4
- package/build/utils.d.ts +1 -1
- package/build/utils.js +4 -4
- package/build/variables.js +21 -12
- package/package.json +7 -7
package/build/index.js
CHANGED
|
@@ -15,18 +15,34 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
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
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
28
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.attributeNameToCdktfName = exports.isRegistryModule = exports.
|
|
39
|
+
exports.attributeNameToCdktfName = exports.isRegistryModule = exports.CODE_MARKER = void 0;
|
|
40
|
+
exports.getParsedHcl = getParsedHcl;
|
|
41
|
+
exports.parseProviderRequirements = parseProviderRequirements;
|
|
42
|
+
exports.convertToTypescript = convertToTypescript;
|
|
43
|
+
exports.convert = convert;
|
|
44
|
+
exports.getTerraformConfigFromDir = getTerraformConfigFromDir;
|
|
45
|
+
exports.convertProject = convertProject;
|
|
30
46
|
// Copyright (c) HashiCorp, Inc
|
|
31
47
|
// SPDX-License-Identifier: MPL-2.0
|
|
32
48
|
const hcl2json_1 = require("@cdktn/hcl2json");
|
|
@@ -59,7 +75,7 @@ async function getParsedHcl(hcl) {
|
|
|
59
75
|
}
|
|
60
76
|
catch (err) {
|
|
61
77
|
utils_1.logger.error(`Failed to parse HCL: ${err}`);
|
|
62
|
-
throw new Error(`Error: Could not parse HCL, this means either that the HCL passed is invalid or that you found a bug. If the HCL seems valid, please file a bug under https://
|
|
78
|
+
throw new Error(`Error: Could not parse HCL, this means either that the HCL passed is invalid or that you found a bug. If the HCL seems valid, please file a bug under https://github.com/open-constructs/cdk-terrain/issues/new?assignees=&labels=bug%2C+new%2C+feature%2Fconvert&template=bug-report.yml&title=`);
|
|
63
79
|
}
|
|
64
80
|
// Ensure the JSON representation matches the expected structure
|
|
65
81
|
let plan;
|
|
@@ -67,19 +83,17 @@ async function getParsedHcl(hcl) {
|
|
|
67
83
|
plan = schema_1.schema.parse(json);
|
|
68
84
|
}
|
|
69
85
|
catch (err) {
|
|
70
|
-
throw new Error(`Error: HCL-JSON does not conform to schema. This is not expected, please file a bug under https://
|
|
86
|
+
throw new Error(`Error: HCL-JSON does not conform to schema. This is not expected, please file a bug under https://github.com/open-constructs/cdk-terrain/issues/new?assignees=&labels=bug%2C+new%2C+feature%2Fconvert&template=bug-report.yml&title=
|
|
71
87
|
Please include this information:
|
|
72
88
|
${JSON.stringify(err.errors)}`);
|
|
73
89
|
}
|
|
74
90
|
return plan;
|
|
75
91
|
}
|
|
76
|
-
exports.getParsedHcl = getParsedHcl;
|
|
77
92
|
async function parseProviderRequirements(hcl) {
|
|
78
93
|
utils_1.logger.debug("Parsing provider requirements");
|
|
79
94
|
const plan = await getParsedHcl(hcl);
|
|
80
95
|
return (0, provider_1.getProviderRequirements)(plan);
|
|
81
96
|
}
|
|
82
|
-
exports.parseProviderRequirements = parseProviderRequirements;
|
|
83
97
|
async function convertToTypescript(hcl, providerSchema, codeContainer) {
|
|
84
98
|
var _a;
|
|
85
99
|
utils_1.logger.debug("Converting to typescript");
|
|
@@ -224,7 +238,7 @@ async function convertToTypescript(hcl, providerSchema, codeContainer) {
|
|
|
224
238
|
utils_1.logger.debug(`Found these modules: ${JSON.stringify(moduleRequirements, null, 2)}`);
|
|
225
239
|
if (Object.keys(plan.variable || {}).length > 0 && expressions.length > 0) {
|
|
226
240
|
expressions[0] = t.addComment(expressions[0], "leading", `Terraform Variables are not always the best fit for getting inputs in the context of Terraform CDK.
|
|
227
|
-
You can read more about this at https://
|
|
241
|
+
You can read more about this at https://cdktn.io/docs/concepts/variables-and-outputs#input-variables`);
|
|
228
242
|
}
|
|
229
243
|
const providerRequirements = (0, provider_1.getProviderRequirements)(plan);
|
|
230
244
|
utils_1.logger.debug(`Found these provider requirements: ${JSON.stringify(providerRequirements, null, 2)}`);
|
|
@@ -278,7 +292,6 @@ For a more precise conversion please use the --provider flag in convert.`);
|
|
|
278
292
|
},
|
|
279
293
|
};
|
|
280
294
|
}
|
|
281
|
-
exports.convertToTypescript = convertToTypescript;
|
|
282
295
|
const translators = {
|
|
283
296
|
python: {
|
|
284
297
|
visitor: () => new rosetta.PythonVisitor(),
|
|
@@ -328,7 +341,6 @@ async function convert(hcl, { language, providerSchema, throwOnTranslationError
|
|
|
328
341
|
stats: { ...tsCode.stats, language },
|
|
329
342
|
};
|
|
330
343
|
}
|
|
331
|
-
exports.convert = convert;
|
|
332
344
|
function getTerraformConfigFromDir(importPath) {
|
|
333
345
|
const absPath = path.resolve(importPath);
|
|
334
346
|
const fileContents = glob
|
|
@@ -336,7 +348,6 @@ function getTerraformConfigFromDir(importPath) {
|
|
|
336
348
|
.map((p) => fs.readFileSync(path.resolve(absPath, p), "utf8"));
|
|
337
349
|
return fileContents.join("\n");
|
|
338
350
|
}
|
|
339
|
-
exports.getTerraformConfigFromDir = getTerraformConfigFromDir;
|
|
340
351
|
async function convertProject(combinedHcl, { language, providerSchema }) {
|
|
341
352
|
if (language !== "typescript") {
|
|
342
353
|
throw new Error("Unsupported language used: " + language);
|
|
@@ -360,5 +371,4 @@ async function convertProject(combinedHcl, { language, providerSchema }) {
|
|
|
360
371
|
stats,
|
|
361
372
|
};
|
|
362
373
|
}
|
|
363
|
-
exports.convertProject = convertProject;
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDhDQUF3QztBQUN4QyxrRUFJbUM7QUFna0IxQixpR0Fua0JQLHFDQUFnQixPQW1rQk87QUE5akJ6QixnREFBa0M7QUFDbEMsd0RBQWdDO0FBQ2hDLDJDQUE2QjtBQUM3QiwyQ0FBNkI7QUFDN0IsdUNBQXlCO0FBQ3pCLDJDQUEyQztBQUMzQyxzREFBd0M7QUFHeEMscUNBQWtDO0FBQ2xDLDZDQUFrRDtBQUNsRCw2Q0Flc0I7QUFFdEIsMkNBS3FCO0FBQ3JCLHlDQUFxRDtBQUNyRCxtQ0FBaUM7QUFFakMsNkNBQXdEO0FBeWhCN0IseUdBemhCbEIscUNBQXdCLE9BeWhCa0I7QUF4aEJuRCx5RUFLb0M7QUFFcEMsMkNBQTRDO0FBRS9CLFFBQUEsV0FBVyxHQUFHLDBCQUEwQixDQUFDO0FBRS9DLEtBQUssVUFBVSxZQUFZLENBQUMsR0FBVztJQUM1QyxjQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLHlDQUF5QztJQUN6QyxJQUFJLElBQTZCLENBQUM7SUFDbEMsSUFBSSxDQUFDO1FBQ0gsSUFBSSxHQUFHLE1BQU0sSUFBQSxnQkFBSyxFQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGNBQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FDYix1TEFBdUwsQ0FDeEwsQ0FBQztJQUNKLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsSUFBSSxJQUE0QixDQUFDO0lBQ2pDLElBQUksQ0FBQztRQUNILElBQUksR0FBRyxlQUFNLENBQUMs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LEVBQUU7WUFDdkMsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO1lBQ3hDLFNBQVMsQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7WUFDekMsU0FBUyxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztZQUN2QyxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDO0FBakNELHdDQWlDQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gXCJAY2RrdG4vaGNsMmpzb25cIjtcbmltcG9ydCB7XG4gIGlzUmVnaXN0cnlNb2R1bGUsXG4gIFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yLFxuICBDb2RlTWFrZXIsXG59IGZyb20gXCJAY2RrdG4vcHJvdmlkZXItZ2VuZXJhdG9yXCI7XG5cbmltcG9ydCAqIGFzIHQgZnJvbSBcIkBiYWJlbC90eXBlc1wiO1xuaW1wb3J0IHByZXR0aWVyIGZyb20gXCJwcmV0dGllclwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgZ2xvYiBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBEaXJlY3RlZEdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcbmltcG9ydCAqIGFzIHJvc2V0dGEgZnJvbSBcImpzaWktcm9zZXR0YVwiO1xuaW1wb3J0ICogYXMgeiBmcm9tIFwiem9kXCI7XG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuL3NjaGVtYVwiO1xuaW1wb3J0IHsgZmluZFVzZWRSZWZlcmVuY2VzIH0gZnJvbSBcIi4vcmVmZXJlbmNlc1wiO1xuaW1wb3J0IHtcbiAgYmFja2VuZFRvRXhwcmVzc2lvbixcbiAgZ2VuLFxuICBsb2NhbCxcbiAgbW9kdWxlSW1wb3J0cyxcbiAgbW9kdWxlcyxcbiAgb3V0cHV0LFxuICBwcm92aWRlcixcbiAgcmVzb3VyY2UsXG4gIHZhcmlhYmxlLFxuICB3cmFwQ29kZUluQ29uc3RydWN0b3IsXG4gIGFkZEltcG9ydEZvckNvZGVDb250YWluZXIsXG4gIGJ1aWxkSW1wb3J0cyxcbiAgZ2VuZXJhdGVDb25maWdUeXBlLFxuICBpbXBvcnRzLFxufSBmcm9tIFwiLi9nZW5lcmF0aW9uXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1SZXNvdXJjZUJsb2NrLCBQcm9ncmFtU2NvcGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgZm9yRWFjaFByb3ZpZGVyLFxuICBmb3JFYWNoR2xvYmFsLFxuICBmb3JFYWNoTmFtZXNwYWNlZCxcbiAgcmVzb3VyY2VTdGF0cyxcbn0gZnJvbSBcIi4vaXRlcmF0aW9uXCI7XG5pbXBvcnQgeyBnZXRQcm92aWRlclJlcXVpcmVtZW50cyB9IGZyb20gXCIuL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgRlFQTiB9IGZyb20gXCJAY2RrdG4vcHJvdmlkZXItc2NoZW1hXCI7XG5pbXBvcnQgeyBhdHRyaWJ1dGVOYW1lVG9DZGt0Zk5hbWUgfSBmcm9tIFwiLi9nZW5lcmF0aW9uXCI7XG5pbXBvcnQge1xuICByZXBsYWNlQ3NoYXJwSW1wb3J0cyxcbiAgcmVwbGFjZUdvSW1wb3J0cyxcbiAgcmVwbGFjZUphdmFJbXBvcnRzLFxuICByZXBsYWNlUHl0aG9uSW1wb3J0cyxcbn0gZnJvbSBcIi4vanNpaS1yb3NldHRhLXdvcmthcm91bmRzXCI7XG5pbXBvcnQgeyBQcm92aWRlclNjaGVtYSB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgZm9yRWFjaEltcG9ydCB9IGZyb20gXCIuL2l0ZXJhdGlvblwiO1xuXG5leHBvcnQgY29uc3QgQ09ERV9NQVJLRVIgPSBcIi8vIGRlZmluZSByZXNvdXJjZXMgaGVyZVwiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UGFyc2VkSGNsKGhjbDogc3RyaW5nKSB7XG4gIGxvZ2dlci5kZWJ1ZyhgUGFyc2luZyBIQ0w6ICR7aGNsfWApO1xuICAvLyBHZXQgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIEhDTFxuICBsZXQganNvbjogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHRyeSB7XG4gICAganNvbiA9IGF3YWl0IHBhcnNlKFwidGVycmFmb3JtLnRmXCIsIGhjbCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHBhcnNlIEhDTDogJHtlcnJ9YCk7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEVycm9yOiBDb3VsZCBub3QgcGFyc2UgSENMLCB0aGlzIG1lYW5zIGVpdGhlciB0aGF0IHRoZSBIQ0wgcGFzc2VkIGlzIGludmFsaWQgb3IgdGhhdCB5b3UgZm91bmQgYSBidWcuIElmIHRoZSBIQ0wgc2VlbXMgdmFsaWQsIHBsZWFzZSBmaWxlIGEgYnVnIHVuZGVyIGh0dHBzOi8vY2RrLnRmL2J1Z3MvbmV3L2NvbnZlcnRgLFxuICAgICk7XG4gIH1cblxuICAvLyBFbnN1cmUgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgc3RydWN0dXJlXG4gIGxldCBwbGFuOiB6LmluZmVyPHR5cGVvZiBzY2hlbWE+O1xuICB0cnkge1xuICAgIHBsYW4gPSBzY2hlbWEucGFyc2UoanNvbik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3I6IEhDTC1KU09OIGRvZXMgbm90IGNvbmZvcm0gdG8gc2NoZW1hLiBUaGlzIGlzIG5vdCBleHBlY3RlZCwgcGxlYXNlIGZpbGUgYSBidWcgdW5kZXIgaHR0cHM6Ly9jZGsudGYvYnVncy9uZXcvY29udmVydFxuUGxlYXNlIGluY2x1ZGUgdGhpcyBpbmZvcm1hdGlvbjpcbiR7SlNPTi5zdHJpbmdpZnkoKGVyciBhcyB6LlpvZEVycm9yKS5lcnJvcnMpfWApO1xuICB9XG5cbiAgcmV0dXJuIHBsYW47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXJzZVByb3ZpZGVyUmVxdWlyZW1lbnRzKGhjbDogc3RyaW5nKSB7XG4gIGxvZ2dlci5kZWJ1ZyhcIlBhcnNpbmcgcHJvdmlkZXIgcmVxdWlyZW1lbnRzXCIpO1xuICBjb25zdCBwbGFuID0gYXdhaXQgZ2V0UGFyc2VkSGNsKGhjbCk7XG4gIHJldHVybiBnZXRQcm92aWRlclJlcXVpcmVtZW50cyhwbGFuKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbnZlcnRUb1R5cGVzY3JpcHQoXG4gIGhjbDogc3RyaW5nLFxuICBwcm92aWRlclNjaGVtYTogUHJvdmlkZXJTY2hlbWEsXG4gIGNvZGVDb250YWluZXI6IHN0cmluZyxcbikge1xuICBsb2dnZXIuZGVidWcoXCJDb252ZXJ0aW5nIHRvIHR5cGVzY3JpcHRcIik7XG4gIGNvbnN0IHBsYW4gPSBhd2FpdCBnZXRQYXJzZWRIY2woaGNsKTtcblxuICAvLyBFYWNoIGtleSBpbiB0aGUgc2NvcGUgbmVlZHMgdG8gYmUgdW5pcXVlLCB0aGVyZWZvcmUgd2Ugc2F2ZSB0aGVtIGluIGEgc2V0XG4gIC8vIEVhY2ggdmFyaWFibGUgbmVlZHMgdG8gYmUgdW5pcXVlIGFzIHdlbGwsIHdlIHNhdmUgdGhlbSBpbiBhIHJlY29yZCBzbyB3ZSBjYW4gaWRlbnRpZnkgaWYgdHdvIHZhcmlhYmxlcyBhcmUgdGhlIHNhbWVcbiAgY29uc3Qgc2NvcGU6IFByb2dyYW1TY29wZSA9IHtcbiAgICBwcm92aWRlclNjaGVtYSxcbiAgICBwcm92aWRlckdlbmVyYXRvcjogT2JqZWN0LmtleXMoXG4gICAgICBwcm92aWRlclNjaGVtYS5wcm92aWRlcl9zY2hlbWFzIHx8IHt9LFxuICAgICkucmVkdWNlKChjYXJyeSwgZnFwbikgPT4ge1xuICAgICAgY29uc3QgcHJvdmlkZXJHZW5lcmF0b3IgPSBuZXcgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IoXG4gICAgICAgIG5ldyBDb2RlTWFrZXIoKSxcbiAgICAgICAgcHJvdmlkZXJTY2hlbWEsXG4gICAgICApO1xuICAgICAgcHJvdmlkZXJHZW5lcmF0b3IuYnVpbGRSZXNvdXJjZU1vZGVscyhmcXBuIGFzIEZRUE4pOyAvLyBjYW4ndCB1c2UgdGhhdCB0eXBlIG9uIHRoZSBrZXlzIHlldCwgc2luY2Ugd2UgYXJlIG5vdCBvbiBUUyA+PTQuNCB5ZXQgOnNhZGNhdDpcbiAgICAgIHJldHVybiB7IC4uLmNhcnJ5LCBbZnFwbl06IHByb3ZpZGVyR2VuZXJhdG9yIH07XG4gICAgfSwge30pLFxuICAgIGNvbnN0cnVjdHM6IG5ldyBTZXQ8c3RyaW5nPigpLFxuICAgIHZhcmlhYmxlczoge30sXG4gICAgaGFzVG9rZW5CYXNlZFR5cGVDb2VyY2lvbjogZmFsc2UsXG4gICAgbm9kZUlkczogW10sXG4gICAgaW1wb3J0YWJsZXM6IFtdLFxuICAgIHRvcExldmVsQ29uZmlnOiB7fSxcbiAgfTtcblxuICBjb25zdCBncmFwaCA9IG5ldyBEaXJlY3RlZEdyYXBoPHtcbiAgICBjb2RlOiAoXG4gICAgICBnOiBEaXJlY3RlZEdyYXBoPGFueT4sXG4gICAgKSA9PiBQcm9taXNlPEFycmF5PHQuU3RhdGVtZW50IHwgdC5WYXJpYWJsZURlY2xhcmF0aW9uPj47XG4gIH0+KCk7XG5cbiAgLy8gR2V0IGFsbCBpdGVtcyBpbiB0aGUgSlNPTiBhcyBhIG1hcCBvZiBpZCB0byBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyB0aGUgQVNUXG4gIC8vIFdlIHdpbGwgdXNlIHRoaXMgdG8gY29uc3RydWN0IHRoZSBub2RlcyBmb3IgYSBkZXBlbmRlbmN5IGdyYXBoXG4gIC8vIFdlIG5lZWQgdG8gdXNlIGEgZnVuY3Rpb24gaGVyZSBiZWNhdXNlIHRoZSBzYW1lIG5vZGUgaGFzIGRpZmZlcmVudCByZXByZXNlbnRhdGlvbiBiYXNlZCBvbiBpZiBpdCdzIHJlZmVyZW5jZWQgYnkgYW5vdGhlciBvbmVcbiAgY29uc3Qgbm9kZU1hcDogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB7XG4gICAgICBjb2RlOiAoXG4gICAgICAgIGc6IHR5cGVvZiBncmFwaCxcbiAgICAgICkgPT4gUHJvbWlzZTxBcnJheTx0LlN0YXRlbWVudCB8IHQuVmFyaWFibGVEZWNsYXJhdGlvbj4+O1xuICAgICAgdmFsdWU6IHVua25vd247XG4gICAgfVxuICA+ID0ge1xuICAgIC4uLmZvckVhY2hQcm92aWRlcihzY29wZSwgcGxhbi5wcm92aWRlciwgcHJvdmlkZXIpLFxuICAgIC4uLmZvckVhY2hHbG9iYWwoc2NvcGUsIFwidmFyXCIsIHBsYW4udmFyaWFibGUsIHZhcmlhYmxlKSxcbiAgICAvLyBsb2NhbHMgYXJlIGEgc3BlY2lhbCBjYXNlXG4gICAgLi4uZm9yRWFjaEdsb2JhbChcbiAgICAgIHNjb3BlLFxuICAgICAgXCJsb2NhbFwiLFxuICAgICAgQXJyYXkuaXNBcnJheShwbGFuLmxvY2FscylcbiAgICAgICAgPyBwbGFuLmxvY2Fscy5yZWR1Y2UoKGNhcnJ5LCBsb2NhbHMpID0+ICh7IC4uLmNhcnJ5LCAuLi5sb2NhbHMgfSksIHt9KVxuICAgICAgICA6IHt9LFxuICAgICAgbG9jYWwsXG4gICAgKSxcbiAgICAuLi5mb3JFYWNoR2xvYmFsKHNjb3BlLCBcIm91dFwiLCBwbGFuLm91dHB1dCwgb3V0cHV0KSxcbiAgICAuLi5mb3JFYWNoR2xvYmFsKHNjb3BlLCBcIm1vZHVsZVwiLCBwbGFuLm1vZHVsZSwgbW9kdWxlcyksXG4gICAgLi4uZm9yRWFjaEltcG9ydChzY29wZSwgXCJpbXBvcnRcIiwgcGxhbi5pbXBvcnQsIGltcG9ydHMpLFxuICAgIC4uLmZvckVhY2hOYW1lc3BhY2VkKHNjb3BlLCBwbGFuLnJlc291cmNlLCByZXNvdXJjZSksXG4gICAgLi4uZm9yRWFjaE5hbWVzcGFjZWQoc2NvcGUsIHBsYW4uZGF0YSwgcmVzb3VyY2UsIFwiZGF0YVwiKSxcbiAgfTtcblxuICAvLyBBZGQgYWxsIG5vZGVzIHRvIHRoZSBkZXBlbmRlbmN5IGdyYXBoIHNvIHdlIGNhbiBkZXRlY3QgaWYgYW4gZWRnZSBpcyBhZGRlZCBmb3IgYW4gdW5rbm93biBsaW5rXG4gIE9iamVjdC5lbnRyaWVzKG5vZGVNYXApLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhgQWRkaW5nIG5vZGUgJyR7a2V5fScgdG8gZ3JhcGhgKTtcbiAgICBncmFwaC5hZGROb2RlKGtleSwgdmFsdWUpO1xuICB9KTtcblxuICAvLyBGaW5kaW5nIHJlZmVyZW5jZXMgYmVjb21lcyBlYXNpZXIgb2YgdGhlIHRvIGJlIHJlZmVyZW5jZWQgaWRzIGFyZSBhbHJlYWR5IGtub3duXG4gIGNvbnN0IG5vZGVJZHMgPSBPYmplY3Qua2V5cyhub2RlTWFwKTtcbiAgc2NvcGUubm9kZUlkcyA9IG5vZGVJZHM7XG4gIGFzeW5jIGZ1bmN0aW9uIGFkZEVkZ2VzKGlkOiBzdHJpbmcsIHZhbHVlOiBUZXJyYWZvcm1SZXNvdXJjZUJsb2NrKSB7XG4gICAgKGF3YWl0IGZpbmRVc2VkUmVmZXJlbmNlcyhub2RlSWRzLCB2YWx1ZSkpLmZvckVhY2goKHJlZikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZ3JhcGguaGFzRGlyZWN0ZWRFZGdlKHJlZi5yZWZlcmVuY2VlLmlkLCBpZCkgJiZcbiAgICAgICAgZ3JhcGguaGFzTm9kZShyZWYucmVmZXJlbmNlZS5pZCkgLy8gaW4gY2FzZSB0aGUgcmVmZXJlbmNlZSBpcyBhIGR5bmFtaWMgdmFyaWFibGVcbiAgICAgICkge1xuICAgICAgICBpZiAoIWdyYXBoLmhhc05vZGUoaWQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFRoZSBkZXBlbmRlbmN5IGdyYXBoIGlzIGV4cGVjdGVkIHRvIGxpbmsgZnJvbSAke1xuICAgICAgICAgICAgICByZWYucmVmZXJlbmNlZS5pZFxuICAgICAgICAgICAgfSB0byAke2lkfSBidXQgJHtpZH0gZG9lcyBub3QgZXhpc3QuXG4gICAgICAgICAgICBUaGVzZSBub2RlcyBleGlzdDogJHtncmFwaC5ub2RlcygpLmpvaW4oXCJcXG5cIil9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGdyYXBoIHNob3VsZCBoYXZlIG5vIHNlbGYtcmVmZXJlbmNlc1xuICAgICAgICBpZiAoaWQgPT09IHJlZi5yZWZlcmVuY2VlLmlkKSB7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKGBTa2lwcGluZyBzZWxmLXJlZmVyZW5jZSBmb3IgJHtpZH1gKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsb2dnZXIuZGVidWcoYEFkZGluZyBlZGdlIGZyb20gJHtyZWYucmVmZXJlbmNlZS5pZH0gdG8gJHtpZH1gKTtcbiAgICAgICAgZ3JhcGguYWRkRGlyZWN0ZWRFZGdlKHJlZi5yZWZlcmVuY2VlLmlkLCBpZCwgeyByZWYgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBXZSByZWN1cnNpdmVseSBpbnNwZWN0IGVhY2ggcmVzb3VyY2UgdmFsdWUgdG8gZmluZCByZWZlcmVuY2VzIHRvIG90aGVyIHZhbHVlc1xuICAvLyBXZSBhZGQgdGhlc2UgdG8gYSBkZXBlbmRlbmN5IGdyYXBoIHNvIHRoYXQgdGhlIHByb2dyYW1taW5nIGNvZGUgaGFzIHRoZSByaWdodCBvcmRlclxuICBhc3luYyBmdW5jdGlvbiBhZGRHbG9iYWxFZGdlcyhcbiAgICBfc2NvcGU6IFByb2dyYW1TY29wZSxcbiAgICBfa2V5OiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB2YWx1ZTogVGVycmFmb3JtUmVzb3VyY2VCbG9jayxcbiAgKSB7XG4gICAgYXdhaXQgYWRkRWRnZXMoaWQsIHZhbHVlKTtcbiAgfVxuICBhc3luYyBmdW5jdGlvbiBhZGRQcm92aWRlckVkZ2VzKFxuICAgIF9zY29wZTogUHJvZ3JhbVNjb3BlLFxuICAgIF9rZXk6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nLFxuICAgIHZhbHVlOiBUZXJyYWZvcm1SZXNvdXJjZUJsb2NrLFxuICApIHtcbiAgICBhd2FpdCBhZGRFZGdlcyhpZCwgdmFsdWUpO1xuICB9XG4gIGFzeW5jIGZ1bmN0aW9uIGFkZE5hbWVzcGFjZWRFZGdlcyhcbiAgICBfc2NvcGU6IFByb2dyYW1TY29wZSxcbiAgICBfdHlwZTogc3RyaW5nLFxuICAgIF9rZXk6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nLFxuICAgIHZhbHVlOiBUZXJyYWZvcm1SZXNvdXJjZUJsb2NrLFxuICApIHtcbiAgICBhd2FpdCBhZGRFZGdlcyhpZCwgdmFsdWUpO1xuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgT2JqZWN0LnZhbHVlcyh7XG4gICAgICAuLi5mb3JFYWNoUHJvdmlkZXIoc2NvcGUsIHBsYW4ucHJvdmlkZXIsIGFkZFByb3ZpZGVyRWRnZXMpLFxuICAgICAgLi4uZm9yRWFjaEdsb2JhbChzY29wZSwgXCJ2YXJcIiwgcGxhbi52YXJpYWJsZSwgYWRkR2xvYmFsRWRnZXMpLFxuICAgICAgLy8gbG9jYWxzIGFyZSBhIHNwZWNpYWwgY2FzZVxuICAgICAgLi4uZm9yRWFjaEdsb2JhbChcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIFwibG9jYWxcIixcbiAgICAgICAgQXJyYXkuaXNBcnJheShwbGFuLmxvY2FscylcbiAgICAgICAgICA/IHBsYW4ubG9jYWxzLnJlZHVjZSgoY2FycnksIGxvY2FscykgPT4gKHsgLi4uY2FycnksIC4uLmxvY2FscyB9KSwge30pXG4gICAgICAgICAgOiB7fSxcbiAgICAgICAgYWRkR2xvYmFsRWRnZXMsXG4gICAgICApLFxuICAgICAgLi4uZm9yRWFjaEdsb2JhbChzY29wZSwgXCJvdXRcIiwgcGxhbi5vdXRwdXQsIGFkZEdsb2JhbEVkZ2VzKSxcbiAgICAgIC4uLmZvckVhY2hHbG9iYWwoc2NvcGUsIFwibW9kdWxlXCIsIHBsYW4ubW9kdWxlLCBhZGRHbG9iYWxFZGdlcyksXG4gICAgICAuLi5mb3JFYWNoTmFtZXNwYWNlZChzY29wZSwgcGxhbi5yZXNvdXJjZSwgYWRkTmFtZXNwYWNlZEVkZ2VzKSxcbiAgICAgIC4uLmZvckVhY2hOYW1lc3BhY2VkKHNjb3BlLCBwbGFuLmRhdGEsIGFkZE5hbWVzcGFjZWRFZGdlcywgXCJkYXRhXCIpLFxuICAgIH0pLm1hcCgoeyBjb2RlOiBhZGRFZGdlc1RvR3JhcGggfSkgPT4gYWRkRWRnZXNUb0dyYXBoKGdyYXBoKSksXG4gICk7XG5cbiAgbG9nZ2VyLmRlYnVnKGBHcmFwaDogJHtKU09OLnN0cmluZ2lmeShncmFwaCwgbnVsbCwgMil9YCk7XG4gIGxvZ2dlci5kZWJ1ZyhgU3RhcnRpbmcgdG8gYXNzZW1ibGUgdGhlIHR5cGVzY3JpcHQgY29kZWApO1xuICAvLyBXZSB0cmF2ZXJzZSB0aGUgZGVwZW5kZW5jeSBncmFwaCB0byBnZXQgdGhlIHVub3JkZXJlZCBKU09OIG5vZGVzIGludG8gYW4gb3JkZXJlZCBhcnJheVxuICAvLyB3aGVyZSBubyBub2RlIGlzIHJlZmVyZW5jZWQgYmVmb3JlIGl0J3MgZGVmaW5lZFxuICAvLyBBcyB3ZSBjaGVjayB0aGF0IHRoZSBub2RlcyBvbiBib3RoIGVuZHMgb2YgYW4gZWRnZSBleGlzdCB3ZSBjYW4gYmUgc3VyZVxuICAvLyB0aGF0IG5vIGluZmluaXRlIGxvb3AgZXhpc3RzLCB0aGVyZSBjYW4gYmUgbm8gc3RyYXkgZGVwZW5kZW5jeSBvbiBhIG5vZGVcbiAgY29uc3QgZXhwcmVzc2lvbnM6IHQuU3RhdGVtZW50W10gPSBbXTtcbiAgbGV0IG5vZGVzVG9WaXNpdCA9IFsuLi5ub2RlSWRzXTtcbiAgLy8gVGhpcyBlbnN1cmVzIHdlIGRldGVjdCBjeWNsZXMgYW5kIGRvbid0IGVuZCB1cCBpbiBhbiBlbmRsZXNzIGxvb3BcbiAgbGV0IG5vZGVzVmlzaXRlZFRoaXNJdGVyYXRpb24gPSAwO1xuICBkbyB7XG4gICAgbm9kZXNWaXNpdGVkVGhpc0l0ZXJhdGlvbiA9IDA7XG5cbiAgICAvLyBGaW5kIG5leHQgbm9kZXMgdG8gdmlzaXRcbiAgICBjb25zdCBub2RlRXhwcmVzc2lvbkdlbmVyYXRvcnMgPSBncmFwaC5tYXBOb2Rlcygobm9kZUlkLCB7IGNvZGUgfSkgPT4ge1xuICAgICAgaWYgKCFub2Rlc1RvVmlzaXQuaW5jbHVkZXMobm9kZUlkKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB1bnJlc29sdmVkRGVwZW5kZW5jaWVzID0gZ3JhcGhcbiAgICAgICAgLmluTmVpZ2hib3JzKG5vZGVJZClcbiAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gbm9kZXNUb1Zpc2l0LmluY2x1ZGVzKGl0ZW0pKTtcblxuICAgICAgaWYgKHVucmVzb2x2ZWREZXBlbmRlbmNpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIG5vZGVzVG9WaXNpdCA9IG5vZGVzVG9WaXNpdC5maWx0ZXIoKGlkKSA9PiBub2RlSWQgIT09IGlkKTtcbiAgICAgICAgbm9kZXNWaXNpdGVkVGhpc0l0ZXJhdGlvbiA9IG5vZGVzVmlzaXRlZFRoaXNJdGVyYXRpb24gKyAxO1xuXG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgVmlzaXRpbmcgbm9kZSAke25vZGVJZH1gKTtcbiAgICAgICAgcmV0dXJuIGNvZGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pO1xuXG4gICAgLy8gR2VuZXJhdGUgdGhlIGNvZGUgZm9yIHRoZSBub2Rlc1xuICAgIGZvciAoY29uc3QgY29kZSBvZiBub2RlRXhwcmVzc2lvbkdlbmVyYXRvcnMpIHtcbiAgICAgIGlmIChjb2RlKSB7XG4gICAgICAgIGV4cHJlc3Npb25zLnB1c2goLi4uKGF3YWl0IGNvZGUoZ3JhcGgpKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYCR7bm9kZXNUb1Zpc2l0Lmxlbmd0aH0gdW52aXNpdGVkIG5vZGVzOiAke25vZGVzVG9WaXNpdC5qb2luKFwiLCBcIil9YCxcbiAgICApO1xuICB9IHdoaWxlIChub2Rlc1RvVmlzaXQubGVuZ3RoID4gMCAmJiBub2Rlc1Zpc2l0ZWRUaGlzSXRlcmF0aW9uICE9IDApO1xuXG4gIGlmIChub2Rlc1RvVmlzaXQubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUaGVyZSBhcmUgJHtcbiAgICAgICAgbm9kZXNUb1Zpc2l0Lmxlbmd0aFxuICAgICAgfSB0ZXJyYWZvcm0gZWxlbWVudHMgdGhhdCBjb3VsZCBub3QgYmUgdmlzaXRlZC5cbiAgICAgIFRoaXMgaXMgbGlrZWx5IGR1ZSB0byBhIGN5Y2xlIGluIHRoZSBkZXBlbmRlbmN5IGdyYXBoLlxuICAgICAgVGhlc2Ugbm9kZXMgYXJlOiAke25vZGVzVG9WaXNpdC5qb2luKFwiLCBcIil9YCxcbiAgICApO1xuICB9XG5cbiAgbG9nZ2VyLmRlYnVnKFxuICAgIGAke25vZGVzVG9WaXNpdC5sZW5ndGh9IHVudmlzaXRlZCBub2RlczogJHtub2Rlc1RvVmlzaXQuam9pbihcIiwgXCIpfWAsXG4gICk7XG5cbiAgY29uc3QgYmFja2VuZEV4cHJlc3Npb25zID0gKFxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcGxhbi50ZXJyYWZvcm0/Lm1hcCgodGVycmFmb3JtKSA9PlxuICAgICAgICBiYWNrZW5kVG9FeHByZXNzaW9uKHNjb3BlLCB0ZXJyYWZvcm0uYmFja2VuZCksXG4gICAgICApIHx8IFtQcm9taXNlLnJlc29sdmUoW10pXSxcbiAgICApXG4gICkucmVkdWNlKChjYXJyeSwgaXRlbSkgPT4gWy4uLmNhcnJ5LCAuLi5pdGVtXSwgW10pO1xuXG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgVXNpbmcgdGhlc2UgYmFja2VuZCBleHByZXNzaW9uczogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgIGJhY2tlbmRFeHByZXNzaW9ucyxcbiAgICAgIG51bGwsXG4gICAgICAyLFxuICAgICl9YCxcbiAgKTtcblxuICAvLyBXZSBjb2xsZWN0IGFsbCBtb2R1bGUgc291cmNlc1xuICBjb25zdCBtb2R1bGVSZXF1aXJlbWVudHMgPSBbXG4gICAgLi4ubmV3IFNldChcbiAgICAgIE9iamVjdC52YWx1ZXMocGxhbi5tb2R1bGUgfHwge30pLnJlZHVjZShcbiAgICAgICAgKGNhcnJ5LCBtb2R1bGVCbG9jaykgPT4gW1xuICAgICAgICAgIC4uLmNhcnJ5LFxuICAgICAgICAgIC4uLm1vZHVsZUJsb2NrLnJlZHVjZShcbiAgICAgICAgICAgIChhcnIsIHsgc291cmNlLCB2ZXJzaW9uIH0pID0+IFtcbiAgICAgICAgICAgICAgLi4uYXJyLFxuICAgICAgICAgICAgICB2ZXJzaW9uID8gYCR7c291cmNlfUAke3ZlcnNpb259YCA6IHNvdXJjZSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbXSBhcyBzdHJpbmdbXSxcbiAgICAgICAgICApLFxuICAgICAgICBdLFxuICAgICAgICBbXSBhcyBzdHJpbmdbXSxcbiAgICAgICkgfHwgW10sXG4gICAgKSxcbiAgXTtcblxuICBsb2dnZXIuZGVidWcoXG4gICAgYEZvdW5kIHRoZXNlIG1vZHVsZXM6ICR7SlNPTi5zdHJpbmdpZnkobW9kdWxlUmVxdWlyZW1lbnRzLCBudWxsLCAyKX1gLFxuICApO1xuXG4gIGlmIChPYmplY3Qua2V5cyhwbGFuLnZhcmlhYmxlIHx8IHt9KS5sZW5ndGggPiAwICYmIGV4cHJlc3Npb25zLmxlbmd0aCA+IDApIHtcbiAgICBleHByZXNzaW9uc1swXSA9IHQuYWRkQ29tbWVudChcbiAgICAgIGV4cHJlc3Npb25zWzBdLFxuICAgICAgXCJsZWFkaW5nXCIsXG4gICAgICBgVGVycmFmb3JtIFZhcmlhYmxlcyBhcmUgbm90IGFsd2F5cyB0aGUgYmVzdCBmaXQgZm9yIGdldHRpbmcgaW5wdXRzIGluIHRoZSBjb250ZXh0IG9mIFRlcnJhZm9ybSBDREsuXG5Zb3UgY2FuIHJlYWQgbW9yZSBhYm91dCB0aGlzIGF0IGh0dHBzOi8vY2RrLnRmL3ZhcmlhYmxlc2AsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHByb3ZpZGVyUmVxdWlyZW1lbnRzID0gZ2V0UHJvdmlkZXJSZXF1aXJlbWVudHMocGxhbik7XG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgRm91bmQgdGhlc2UgcHJvdmlkZXIgcmVxdWlyZW1lbnRzOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgcHJvdmlkZXJSZXF1aXJlbWVudHMsXG4gICAgICBudWxsLFxuICAgICAgMixcbiAgICApfWAsXG4gICk7XG5cbiAgLy8gV2UgYWRkIGEgY29tbWVudCBpZiB0aGVyZSBhcmUgcHJvdmlkZXJzIHdpdGggbWlzc2luZyBzY2hlbWEgaW5mb3JtYXRpb25cbiAgY29uc3QgcHJvdmlkZXJzTGFja2luZ1NjaGVtYSA9IE9iamVjdC5rZXlzKHByb3ZpZGVyUmVxdWlyZW1lbnRzKS5maWx0ZXIoXG4gICAgKHByb3ZpZGVyTmFtZSkgPT5cbiAgICAgIHByb3ZpZGVyTmFtZSAhPT0gXCJ0ZXJyYWZvcm1cIiAmJlxuICAgICAgIU9iamVjdC5rZXlzKHByb3ZpZGVyU2NoZW1hLnByb3ZpZGVyX3NjaGVtYXMgfHwge30pLnNvbWUoKHNjaGVtYU5hbWUpID0+XG4gICAgICAgIHNjaGVtYU5hbWUuZW5kc1dpdGgocHJvdmlkZXJOYW1lKSxcbiAgICAgICksXG4gICk7XG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgJHtcbiAgICAgIHByb3ZpZGVyc0xhY2tpbmdTY2hlbWEubGVuZ3RoXG4gICAgfSBwcm92aWRlcnMgbGFjayBzY2hlbWEgaW5mb3JtYXRpb246ICR7cHJvdmlkZXJzTGFja2luZ1NjaGVtYS5qb2luKFwiLCBcIil9YCxcbiAgKTtcblxuICBpZiAocHJvdmlkZXJzTGFja2luZ1NjaGVtYS5sZW5ndGggPiAwKSB7XG4gICAgZXhwcmVzc2lvbnNbMF0gPSB0LmFkZENvbW1lbnQoXG4gICAgICBleHByZXNzaW9uc1swXSxcbiAgICAgIFwibGVhZGluZ1wiLFxuICAgICAgYFRoZSBmb2xsb3dpbmcgcHJvdmlkZXJzIGFyZSBtaXNzaW5nIHNjaGVtYSBpbmZvcm1hdGlvbiBhbmQgbWlnaHQgbmVlZCBtYW51YWwgYWRqdXN0bWVudHMgdG8gc3ludGhlc2l6ZSBjb3JyZWN0bHk6ICR7cHJvdmlkZXJzTGFja2luZ1NjaGVtYS5qb2luKFxuICAgICAgICBcIiwgXCIsXG4gICAgICApfS5cbkZvciBhIG1vcmUgcHJlY2lzZSBjb252ZXJzaW9uIHBsZWFzZSB1c2UgdGhlIC0tcHJvdmlkZXIgZmxhZyBpbiBjb252ZXJ0LmAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIEFsd2F5cyBhZGQgY29uc3RydWN0c1xuICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICBjb25zdHJ1Y3ROYW1lOiBcIkNvbnN0cnVjdFwiLFxuICAgIHByb3ZpZGVyOiBcImNvbnN0cnVjdHNcIixcbiAgfSk7XG5cbiAgaWYgKHNjb3BlLmhhc1Rva2VuQmFzZWRUeXBlQ29lcmNpb24pIHtcbiAgICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICAgIGNvbnN0cnVjdE5hbWU6IFwiVG9rZW5cIixcbiAgICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gICAgfSk7XG4gIH1cblxuICAvLyBBZGQgc3BlY2lmaWMgaW1wb3J0IGZvciBjb2RlQ29udGFpbmVyXG4gIGFkZEltcG9ydEZvckNvZGVDb250YWluZXIoc2NvcGUsIGNvZGVDb250YWluZXIpO1xuICBjb25zdCBjb25zdHJ1Y3RJbXBvcnRzID0gYnVpbGRJbXBvcnRzKHNjb3BlLmltcG9ydGFibGVzKTtcblxuICBjb25zdCBjb2RlID0gWy4uLihiYWNrZW5kRXhwcmVzc2lvbnMgfHwgW10pLCAuLi5leHByZXNzaW9uc107XG4gIGNvbnN0IGNvbmZpZ1R5cGVOYW1lID1cbiAgICBPYmplY3Qua2V5cyhzY29wZS50b3BMZXZlbENvbmZpZykubGVuZ3RoID4gMCA/IFwiTXlDb25maWdcIiA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBjbGFzc0NvbmZpZyA9IGNvbmZpZ1R5cGVOYW1lXG4gICAgPyBbZ2VuZXJhdGVDb25maWdUeXBlKGNvbmZpZ1R5cGVOYW1lLCBzY29wZS50b3BMZXZlbENvbmZpZyldXG4gICAgOiBbXTtcblxuICAvLyBXZSBzcGxpdCB1cCB0aGUgZ2VuZXJhdGVkIGNvZGUgc28gdGhhdCB1c2VycyBjYW4gaGF2ZSBtb3JlIGNvbnRyb2wgb3ZlciB3aGF0IHRvIGluc2VydCB3aGVyZVxuICByZXR1cm4ge1xuICAgIC8vIFRPRE86IFJlbW92ZSBpbXBvcnRzIGFuZCBjb2RlIGJlY2F1c2Ugcm9zZXR0YSB3b24ndCBiZSBhYmxlIHRvIHRyYW5zbGF0ZSB0aGVtXG4gICAgYWxsOiBhd2FpdCBnZW4oW1xuICAgICAgLi4uY29uc3RydWN0SW1wb3J0cyxcbiAgICAgIC4uLm1vZHVsZUltcG9ydHMocGxhbi5tb2R1bGUpLFxuICAgICAgLi4uY2xhc3NDb25maWcsXG4gICAgICB3cmFwQ29kZUluQ29uc3RydWN0b3IoXG4gICAgICAgIGNvZGVDb250YWluZXIsXG4gICAgICAgIGNvZGUsXG4gICAgICAgIFwiTXlDb252ZXJ0ZWRDb2RlXCIsXG4gICAgICAgIGNvbmZpZ1R5cGVOYW1lLFxuICAgICAgKSxcbiAgICBdKSxcbiAgICBpbXBvcnRzOiBhd2FpdCBnZW4oWy4uLmNvbnN0cnVjdEltcG9ydHMsIC4uLm1vZHVsZUltcG9ydHMocGxhbi5tb2R1bGUpXSksXG4gICAgY29kZTogYXdhaXQgZ2VuKGNvZGUpLFxuICAgIHByb3ZpZGVyczogT2JqZWN0LmVudHJpZXMocHJvdmlkZXJSZXF1aXJlbWVudHMpLm1hcCgoW3NvdXJjZSwgdmVyc2lvbl0pID0+XG4gICAgICB2ZXJzaW9uID09PSBcIipcIiA/IHNvdXJjZSA6IGAke3NvdXJjZX1AJHt2ZXJzaW9ufWAsXG4gICAgKSxcbiAgICBtb2R1bGVzOiBtb2R1bGVSZXF1aXJlbWVudHMsXG4gICAgLy8gV2UgdHJhY2sgc29tZSB1c2FnZSBkYXRhIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVuZGVyc3RhbmQgd2hhdCBpcyB1c2VkXG4gICAgc3RhdHM6IHtcbiAgICAgIG51bWJlck9mTW9kdWxlczogbW9kdWxlUmVxdWlyZW1lbnRzLmxlbmd0aCxcbiAgICAgIG51bWJlck9mUHJvdmlkZXJzOiBPYmplY3Qua2V5cyhwcm92aWRlclJlcXVpcmVtZW50cykubGVuZ3RoLFxuICAgICAgcmVzb3VyY2VzOiByZXNvdXJjZVN0YXRzKHBsYW4ucmVzb3VyY2UgfHwge30pLFxuICAgICAgZGF0YTogcmVzb3VyY2VTdGF0cyhwbGFuLmRhdGEgfHwge30pLFxuICAgICAgY29udmVydGVkTGluZXM6IGhjbC5zcGxpdChcIlxcblwiKS5sZW5ndGgsXG4gICAgfSxcbiAgfTtcbn1cblxudHlwZSBGaWxlID0geyBjb250ZW50czogc3RyaW5nOyBmaWxlTmFtZTogc3RyaW5nIH07XG5jb25zdCB0cmFuc2xhdG9ycyA9IHtcbiAgcHl0aG9uOiB7XG4gICAgdmlzaXRvcjogKCkgPT4gbmV3IHJvc2V0dGEuUHl0aG9uVmlzaXRvcigpLFxuICAgIHBvc3RUcmFuc2xhdGlvbk11dGF0aW9uOiByZXBsYWNlUHl0aG9uSW1wb3J0cyxcbiAgfSxcbiAgamF2YToge1xuICAgIHZpc2l0b3I6ICgpID0+IG5ldyByb3NldHRhLkphdmFWaXNpdG9yKCksXG4gICAgcG9zdFRyYW5zbGF0aW9uTXV0YXRpb246IHJlcGxhY2VKYXZhSW1wb3J0cyxcbiAgfSxcbiAgY3NoYXJwOiB7XG4gICAgdmlzaXRvcjogKCkgPT4gbmV3IHJvc2V0dGEuQ1NoYXJwVmlzaXRvcigpLFxuICAgIHBvc3RUcmFuc2xhdGlvbk11dGF0aW9uOiByZXBsYWNlQ3NoYXJwSW1wb3J0cyxcbiAgfSxcbiAgZ286IHtcbiAgICB2aXNpdG9yOiAoKSA9PiBuZXcgcm9zZXR0YS5Hb1Zpc2l0b3IoKSxcbiAgICBwb3N0VHJhbnNsYXRpb25NdXRhdGlvbjogcmVwbGFjZUdvSW1wb3J0cyxcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIHRyYW5zbGF0b3JGb3JMYW5ndWFnZShsYW5ndWFnZToga2V5b2YgdHlwZW9mIHRyYW5zbGF0b3JzKSB7XG4gIHJldHVybiAoZmlsZTogRmlsZSwgdGhyb3dPblRyYW5zbGF0aW9uRXJyb3I6IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCB7IHZpc2l0b3IsIHBvc3RUcmFuc2xhdGlvbk11dGF0aW9uIH0gPSB0cmFuc2xhdG9yc1tsYW5ndWFnZV07XG4gICAgY29uc3QgeyB0cmFuc2xhdGlvbiwgZGlhZ25vc3RpY3MgfSA9IHJvc2V0dGEudHJhbnNsYXRlVHlwZVNjcmlwdChcbiAgICAgIGZpbGUsXG4gICAgICB2aXNpdG9yKCksXG4gICAgICB0aHJvd09uVHJhbnNsYXRpb25FcnJvciA/IHsgaW5jbHVkZUNvbXBpbGVyRGlhZ25vc3RpY3M6IHRydWUgfSA6IHt9LFxuICAgICk7XG5cbiAgICBpZiAoXG4gICAgICB0aHJvd09uVHJhbnNsYXRpb25FcnJvciAmJlxuICAgICAgZGlhZ25vc3RpY3MuZmlsdGVyKChkaWFnKSA9PiBkaWFnLmlzRXJyb3IpLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgQ291bGQgbm90IHRyYW5zbGF0ZSBUUyB0byAke2xhbmd1YWdlfTpcXG4ke2ZpbGUuY29udGVudHN9YCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDb3VsZCBub3QgdHJhbnNsYXRlIFRTIHRvICR7bGFuZ3VhZ2V9OiAke2RpYWdub3N0aWNzXG4gICAgICAgICAgLm1hcCgoZGlhZykgPT4gZGlhZy5mb3JtYXR0ZWRNZXNzYWdlKVxuICAgICAgICAgIC5qb2luKFwiXFxuXCIpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBwb3N0VHJhbnNsYXRpb25NdXRhdGlvbih0cmFuc2xhdGlvbik7XG4gIH07XG59XG5cbnR5cGUgQ29udmVydE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBUaGUgbGFuZ3VhZ2UgdG8gY29udmVydCB0b1xuICAgKi9cbiAgbGFuZ3VhZ2U6IGtleW9mIHR5cGVvZiB0cmFuc2xhdG9ycyB8IFwidHlwZXNjcmlwdFwiO1xuICAvKipcbiAgICogVGhlIHByb3ZpZGVyIHNjaGVtYSB0byB1c2UgZm9yIGNvbnZlcnNpb25cbiAgICovXG4gIHByb3ZpZGVyU2NoZW1hOiBQcm92aWRlclNjaGVtYTtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIGNsYXNzIHRvIGV4dGVuZCBmcm9tLiBEZWZhdWx0cyB0byBgY29uc3RydWN0cy5Db25zdHJ1Y3RgXG4gICAqL1xuICBjb2RlQ29udGFpbmVyPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciB0byB0aHJvdyBhbiBlcnJvciBpZiB0aGUgdHJhbnNsYXRpb24gZmFpbHNcbiAgICogRGVmYXVsdHMgdG8gZmFsc2VcbiAgICovXG4gIHRocm93T25UcmFuc2xhdGlvbkVycm9yPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb252ZXJ0KFxuICBoY2w6IHN0cmluZyxcbiAge1xuICAgIGxhbmd1YWdlLFxuICAgIHByb3ZpZGVyU2NoZW1hLFxuICAgIHRocm93T25UcmFuc2xhdGlvbkVycm9yID0gZmFsc2UsXG4gICAgY29kZUNvbnRhaW5lciA9IFwiY2RrdG4uVGVycmFmb3JtU3RhY2tcIixcbiAgfTogQ29udmVydE9wdGlvbnMsXG4pIHtcbiAgY29uc3QgZmlsZU5hbWUgPSBcInRlcnJhZm9ybS50ZlwiO1xuICBjb25zdCB0cmFuc2xhdGVyID1cbiAgICBsYW5ndWFnZSA9PT0gXCJ0eXBlc2NyaXB0XCJcbiAgICAgID8gKGZpbGU6IEZpbGUsIF90aHJvd09uVHJhbnNsYXRpb25FcnJvcjogYm9vbGVhbikgPT4gZmlsZS5jb250ZW50c1xuICAgICAgOiB0cmFuc2xhdG9yRm9yTGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuXG4gIGlmICghdHJhbnNsYXRlcikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIGxhbmd1YWdlIHVzZWQ6IFwiICsgbGFuZ3VhZ2UpO1xuICB9XG5cbiAgY29uc3QgdHNDb2RlID0gYXdhaXQgY29udmVydFRvVHlwZXNjcmlwdChoY2wsIHByb3ZpZGVyU2NoZW1hLCBjb2RlQ29udGFpbmVyKTtcblxuICByZXR1cm4ge1xuICAgIC4uLnRzQ29kZSxcbiAgICBhbGw6IHRyYW5zbGF0ZXIoXG4gICAgICB7IGZpbGVOYW1lLCBjb250ZW50czogdHNDb2RlLmFsbCB9LFxuICAgICAgdGhyb3dPblRyYW5zbGF0aW9uRXJyb3IsXG4gICAgKSxcbiAgICBpbXBvcnRzOiB0cmFuc2xhdGVyKHsgZmlsZU5hbWUsIGNvbnRlbnRzOiB0c0NvZGUuaW1wb3J0cyB9LCBmYWxzZSksXG4gICAgY29kZTogdHJhbnNsYXRlcih7IGZpbGVOYW1lLCBjb250ZW50czogdHNDb2RlLmNvZGUgfSwgZmFsc2UpLFxuICAgIHN0YXRzOiB7IC4uLnRzQ29kZS5zdGF0cywgbGFuZ3VhZ2UgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRlcnJhZm9ybUNvbmZpZ0Zyb21EaXIoaW1wb3J0UGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IGFic1BhdGggPSBwYXRoLnJlc29sdmUoaW1wb3J0UGF0aCk7XG4gIGNvbnN0IGZpbGVDb250ZW50cyA9IGdsb2JcbiAgICAuc3luYyhcIi4vKi50ZlwiLCB7IGN3ZDogYWJzUGF0aCB9KVxuICAgIC5tYXAoKHApID0+IGZzLnJlYWRGaWxlU3luYyhwYXRoLnJlc29sdmUoYWJzUGF0aCwgcCksIFwidXRmOFwiKSk7XG5cbiAgcmV0dXJuIGZpbGVDb250ZW50cy5qb2luKFwiXFxuXCIpO1xufVxuXG50eXBlIENka3RmSnNvbiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+ICYge1xuICB0ZXJyYWZvcm1Qcm92aWRlcnM6IGFueVtdO1xuICB0ZXJyYWZvcm1Nb2R1bGVzOiBhbnlbXTtcbn07XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udmVydFByb2plY3QoXG4gIGNvbWJpbmVkSGNsOiBzdHJpbmcsXG4gIHsgbGFuZ3VhZ2UsIHByb3ZpZGVyU2NoZW1hIH06IENvbnZlcnRPcHRpb25zLFxuKSB7XG4gIGlmIChsYW5ndWFnZSAhPT0gXCJ0eXBlc2NyaXB0XCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBsYW5ndWFnZSB1c2VkOiBcIiArIGxhbmd1YWdlKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBpbXBvcnRzLFxuICAgIGNvZGUsXG4gICAgcHJvdmlkZXJzLFxuICAgIG1vZHVsZXM6IHRmTW9kdWxlcyxcbiAgICBzdGF0cyxcbiAgfSA9IGF3YWl0IGNvbnZlcnQoY29tYmluZWRIY2wsIHtcbiAgICBsYW5ndWFnZSxcbiAgICBwcm92aWRlclNjaGVtYSxcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBjb2RlOiAoaW5wdXRNYWluRmlsZTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBpbXBvcnRNYWluRmlsZSA9IFtpbXBvcnRzLCBpbnB1dE1haW5GaWxlXS5qb2luKFwiXFxuXCIpO1xuICAgICAgY29uc3Qgb3V0cHV0TWFpbkZpbGUgPSBpbXBvcnRNYWluRmlsZS5yZXBsYWNlKENPREVfTUFSS0VSLCBjb2RlKTtcbiAgICAgIHJldHVybiBwcmV0dGllci5mb3JtYXQob3V0cHV0TWFpbkZpbGUsIHsgcGFyc2VyOiBcImJhYmVsXCIgfSk7XG4gICAgfSxcbiAgICBjZGt0Zkpzb246IChpbnB1dENka3RmSnNvbjogQ2RrdGZKc29uKSA9PiB7XG4gICAgICBjb25zdCBjZGt0Zkpzb24gPSB7IC4uLmlucHV0Q2RrdGZKc29uIH07XG4gICAgICBjZGt0Zkpzb24udGVycmFmb3JtUHJvdmlkZXJzID0gcHJvdmlkZXJzO1xuICAgICAgY2RrdGZKc29uLnRlcnJhZm9ybU1vZHVsZXMgPSB0Zk1vZHVsZXM7XG4gICAgICByZXR1cm4gY2RrdGZKc29uO1xuICAgIH0sXG4gICAgc3RhdHMsXG4gIH07XG59XG5cbmV4cG9ydCB7IGlzUmVnaXN0cnlNb2R1bGUsIGF0dHJpYnV0ZU5hbWVUb0Nka3RmTmFtZSB9O1xuIl19
|
|
374
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMERBLG9DQXdCQztBQUVELDhEQUlDO0FBRUQsa0RBeVZDO0FBbUVELDBCQStCQztBQUVELDhEQU9DO0FBTUQsd0NBaUNDO0FBcmtCRCwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDhDQUF3QztBQUN4QyxrRUFJbUM7QUFna0IxQixpR0Fua0JQLHFDQUFnQixPQW1rQk87QUE5akJ6QixnREFBa0M7QUFDbEMsd0RBQWdDO0FBQ2hDLDJDQUE2QjtBQUM3QiwyQ0FBNkI7QUFDN0IsdUNBQXlCO0FBQ3pCLDJDQUEyQztBQUMzQyxzREFBd0M7QUFHeEMscUNBQWtDO0FBQ2xDLDZDQUFrRDtBQUNsRCw2Q0Flc0I7QUFFdEIsMkNBS3FCO0FBQ3JCLHlDQUFxRDtBQUNyRCxtQ0FBaUM7QUFFakMsNkNBQXdEO0FBeWhCN0IseUdBemhCbEIscUNBQXdCLE9BeWhCa0I7QUF4aEJuRCx5RUFLb0M7QUFFcEMsMkNBQTRDO0FBRS9CLFFBQUEsV0FBVyxHQUFHLDBCQUEwQixDQUFDO0FBRS9DLEtBQUssVUFBVSxZQUFZLENBQUMsR0FBVztJQUM1QyxjQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLHlDQUF5QztJQUN6QyxJQUFJLElBQTZCLENBQUM7SUFDbEMsSUFBSSxDQUFDO1FBQ0gsSUFBSSxHQUFHLE1BQU0sSUFBQSxnQkFBSyxFQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGNBQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FDYixrU0FBa1MsQ0FDblMsQ0FBQztJ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QVMsRUFBRSxDQUFDLGNBQXlCLEVBQUUsRUFBRTtZQUN2QyxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7WUFDeEMsU0FBUyxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztZQUN6QyxTQUFTLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1lBQ3ZDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxLQUFLO0tBQ04sQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwiQGNka3RuL2hjbDJqc29uXCI7XG5pbXBvcnQge1xuICBpc1JlZ2lzdHJ5TW9kdWxlLFxuICBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvcixcbiAgQ29kZU1ha2VyLFxufSBmcm9tIFwiQGNka3RuL3Byb3ZpZGVyLWdlbmVyYXRvclwiO1xuXG5pbXBvcnQgKiBhcyB0IGZyb20gXCJAYmFiZWwvdHlwZXNcIjtcbmltcG9ydCBwcmV0dGllciBmcm9tIFwicHJldHRpZXJcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIGdsb2IgZnJvbSBcImdsb2JcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgRGlyZWN0ZWRHcmFwaCB9IGZyb20gXCJncmFwaG9sb2d5XCI7XG5pbXBvcnQgKiBhcyByb3NldHRhIGZyb20gXCJqc2lpLXJvc2V0dGFcIjtcbmltcG9ydCAqIGFzIHogZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi9zY2hlbWFcIjtcbmltcG9ydCB7IGZpbmRVc2VkUmVmZXJlbmNlcyB9IGZyb20gXCIuL3JlZmVyZW5jZXNcIjtcbmltcG9ydCB7XG4gIGJhY2tlbmRUb0V4cHJlc3Npb24sXG4gIGdlbixcbiAgbG9jYWwsXG4gIG1vZHVsZUltcG9ydHMsXG4gIG1vZHVsZXMsXG4gIG91dHB1dCxcbiAgcHJvdmlkZXIsXG4gIHJlc291cmNlLFxuICB2YXJpYWJsZSxcbiAgd3JhcENvZGVJbkNvbnN0cnVjdG9yLFxuICBhZGRJbXBvcnRGb3JDb2RlQ29udGFpbmVyLFxuICBidWlsZEltcG9ydHMsXG4gIGdlbmVyYXRlQ29uZmlnVHlwZSxcbiAgaW1wb3J0cyxcbn0gZnJvbSBcIi4vZ2VuZXJhdGlvblwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUmVzb3VyY2VCbG9jaywgUHJvZ3JhbVNjb3BlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7XG4gIGZvckVhY2hQcm92aWRlcixcbiAgZm9yRWFjaEdsb2JhbCxcbiAgZm9yRWFjaE5hbWVzcGFjZWQsXG4gIHJlc291cmNlU3RhdHMsXG59IGZyb20gXCIuL2l0ZXJhdGlvblwiO1xuaW1wb3J0IHsgZ2V0UHJvdmlkZXJSZXF1aXJlbWVudHMgfSBmcm9tIFwiLi9wcm92aWRlclwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IEZRUE4gfSBmcm9tIFwiQGNka3RuL3Byb3ZpZGVyLXNjaGVtYVwiO1xuaW1wb3J0IHsgYXR0cmlidXRlTmFtZVRvQ2RrdGZOYW1lIH0gZnJvbSBcIi4vZ2VuZXJhdGlvblwiO1xuaW1wb3J0IHtcbiAgcmVwbGFjZUNzaGFycEltcG9ydHMsXG4gIHJlcGxhY2VHb0ltcG9ydHMsXG4gIHJlcGxhY2VKYXZhSW1wb3J0cyxcbiAgcmVwbGFjZVB5dGhvbkltcG9ydHMsXG59IGZyb20gXCIuL2pzaWktcm9zZXR0YS13b3JrYXJvdW5kc1wiO1xuaW1wb3J0IHsgUHJvdmlkZXJTY2hlbWEgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IGZvckVhY2hJbXBvcnQgfSBmcm9tIFwiLi9pdGVyYXRpb25cIjtcblxuZXhwb3J0IGNvbnN0IENPREVfTUFSS0VSID0gXCIvLyBkZWZpbmUgcmVzb3VyY2VzIGhlcmVcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFBhcnNlZEhjbChoY2w6IHN0cmluZykge1xuICBsb2dnZXIuZGVidWcoYFBhcnNpbmcgSENMOiAke2hjbH1gKTtcbiAgLy8gR2V0IHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIQ0xcbiAgbGV0IGpzb246IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB0cnkge1xuICAgIGpzb24gPSBhd2FpdCBwYXJzZShcInRlcnJhZm9ybS50ZlwiLCBoY2wpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBwYXJzZSBIQ0w6ICR7ZXJyfWApO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBFcnJvcjogQ291bGQgbm90IHBhcnNlIEhDTCwgdGhpcyBtZWFucyBlaXRoZXIgdGhhdCB0aGUgSENMIHBhc3NlZCBpcyBpbnZhbGlkIG9yIHRoYXQgeW91IGZvdW5kIGEgYnVnLiBJZiB0aGUgSENMIHNlZW1zIHZhbGlkLCBwbGVhc2UgZmlsZSBhIGJ1ZyB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1jb25zdHJ1Y3RzL2Nkay10ZXJyYWluL2lzc3Vlcy9uZXc/YXNzaWduZWVzPSZsYWJlbHM9YnVnJTJDK25ldyUyQytmZWF0dXJlJTJGY29udmVydCZ0ZW1wbGF0ZT1idWctcmVwb3J0LnltbCZ0aXRsZT1gLFxuICAgICk7XG4gIH1cblxuICAvLyBFbnN1cmUgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgc3RydWN0dXJlXG4gIGxldCBwbGFuOiB6LmluZmVyPHR5cGVvZiBzY2hlbWE+O1xuICB0cnkge1xuICAgIHBsYW4gPSBzY2hlbWEucGFyc2UoanNvbik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3I6IEhDTC1KU09OIGRvZXMgbm90IGNvbmZvcm0gdG8gc2NoZW1hLiBUaGlzIGlzIG5vdCBleHBlY3RlZCwgcGxlYXNlIGZpbGUgYSBidWcgdW5kZXIgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tY29uc3RydWN0cy9jZGstdGVycmFpbi9pc3N1ZXMvbmV3P2Fzc2lnbmVlcz0mbGFiZWxzPWJ1ZyUyQytuZXclMkMrZmVhdHVyZSUyRmNvbnZlcnQmdGVtcGxhdGU9YnVnLXJlcG9ydC55bWwmdGl0bGU9XG5QbGVhc2UgaW5jbHVkZSB0aGlzIGluZm9ybWF0aW9uOlxuJHtKU09OLnN0cmluZ2lmeSgoZXJyIGFzIHouWm9kRXJyb3IpLmVycm9ycyl9YCk7XG4gIH1cblxuICByZXR1cm4gcGxhbjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlUHJvdmlkZXJSZXF1aXJlbWVudHMoaGNsOiBzdHJpbmcpIHtcbiAgbG9nZ2VyLmRlYnVnKFwiUGFyc2luZyBwcm92aWRlciByZXF1aXJlbWVudHNcIik7XG4gIGNvbnN0IHBsYW4gPSBhd2FpdCBnZXRQYXJzZWRIY2woaGNsKTtcbiAgcmV0dXJuIGdldFByb3ZpZGVyUmVxdWlyZW1lbnRzKHBsYW4pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udmVydFRvVHlwZXNjcmlwdChcbiAgaGNsOiBzdHJpbmcsXG4gIHByb3ZpZGVyU2NoZW1hOiBQcm92aWRlclNjaGVtYSxcbiAgY29kZUNvbnRhaW5lcjogc3RyaW5nLFxuKSB7XG4gIGxvZ2dlci5kZWJ1ZyhcIkNvbnZlcnRpbmcgdG8gdHlwZXNjcmlwdFwiKTtcbiAgY29uc3QgcGxhbiA9IGF3YWl0IGdldFBhcnNlZEhjbChoY2wpO1xuXG4gIC8vIEVhY2gga2V5IGluIHRoZSBzY29wZSBuZWVkcyB0byBiZSB1bmlxdWUsIHRoZXJlZm9yZSB3ZSBzYXZlIHRoZW0gaW4gYSBzZXRcbiAgLy8gRWFjaCB2YXJpYWJsZSBuZWVkcyB0byBiZSB1bmlxdWUgYXMgd2VsbCwgd2Ugc2F2ZSB0aGVtIGluIGEgcmVjb3JkIHNvIHdlIGNhbiBpZGVudGlmeSBpZiB0d28gdmFyaWFibGVzIGFyZSB0aGUgc2FtZVxuICBjb25zdCBzY29wZTogUHJvZ3JhbVNjb3BlID0ge1xuICAgIHByb3ZpZGVyU2NoZW1hLFxuICAgIHByb3ZpZGVyR2VuZXJhdG9yOiBPYmplY3Qua2V5cyhcbiAgICAgIHByb3ZpZGVyU2NoZW1hLnByb3ZpZGVyX3NjaGVtYXMgfHwge30sXG4gICAgKS5yZWR1Y2UoKGNhcnJ5LCBmcXBuKSA9PiB7XG4gICAgICBjb25zdCBwcm92aWRlckdlbmVyYXRvciA9IG5ldyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvcihcbiAgICAgICAgbmV3IENvZGVNYWtlcigpLFxuICAgICAgICBwcm92aWRlclNjaGVtYSxcbiAgICAgICk7XG4gICAgICBwcm92aWRlckdlbmVyYXRvci5idWlsZFJlc291cmNlTW9kZWxzKGZxcG4gYXMgRlFQTik7IC8vIGNhbid0IHVzZSB0aGF0IHR5cGUgb24gdGhlIGtleXMgeWV0LCBzaW5jZSB3ZSBhcmUgbm90IG9uIFRTID49NC40IHlldCA6c2FkY2F0OlxuICAgICAgcmV0dXJuIHsgLi4uY2FycnksIFtmcXBuXTogcHJvdmlkZXJHZW5lcmF0b3IgfTtcbiAgICB9LCB7fSksXG4gICAgY29uc3RydWN0czogbmV3IFNldDxzdHJpbmc+KCksXG4gICAgdmFyaWFibGVzOiB7fSxcbiAgICBoYXNUb2tlbkJhc2VkVHlwZUNvZXJjaW9uOiBmYWxzZSxcbiAgICBub2RlSWRzOiBbXSxcbiAgICBpbXBvcnRhYmxlczogW10sXG4gICAgdG9wTGV2ZWxDb25maWc6IHt9LFxuICB9O1xuXG4gIGNvbnN0IGdyYXBoID0gbmV3IERpcmVjdGVkR3JhcGg8e1xuICAgIGNvZGU6IChcbiAgICAgIGc6IERpcmVjdGVkR3JhcGg8YW55PixcbiAgICApID0+IFByb21pc2U8QXJyYXk8dC5TdGF0ZW1lbnQgfCB0LlZhcmlhYmxlRGVjbGFyYXRpb24+PjtcbiAgfT4oKTtcblxuICAvLyBHZXQgYWxsIGl0ZW1zIGluIHRoZSBKU09OIGFzIGEgbWFwIG9mIGlkIHRvIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSBBU1RcbiAgLy8gV2Ugd2lsbCB1c2UgdGhpcyB0byBjb25zdHJ1Y3QgdGhlIG5vZGVzIGZvciBhIGRlcGVuZGVuY3kgZ3JhcGhcbiAgLy8gV2UgbmVlZCB0byB1c2UgYSBmdW5jdGlvbiBoZXJlIGJlY2F1c2UgdGhlIHNhbWUgbm9kZSBoYXMgZGlmZmVyZW50IHJlcHJlc2VudGF0aW9uIGJhc2VkIG9uIGlmIGl0J3MgcmVmZXJlbmNlZCBieSBhbm90aGVyIG9uZVxuICBjb25zdCBub2RlTWFwOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHtcbiAgICAgIGNvZGU6IChcbiAgICAgICAgZzogdHlwZW9mIGdyYXBoLFxuICAgICAgKSA9PiBQcm9taXNlPEFycmF5PHQuU3RhdGVtZW50IHwgdC5WYXJpYWJsZURlY2xhcmF0aW9uPj47XG4gICAgICB2YWx1ZTogdW5rbm93bjtcbiAgICB9XG4gID4gPSB7XG4gICAgLi4uZm9yRWFjaFByb3ZpZGVyKHNjb3BlLCBwbGFuLnByb3ZpZGVyLCBwcm92aWRlciksXG4gICAgLi4uZm9yRWFjaEdsb2JhbChzY29wZSwgXCJ2YXJcIiwgcGxhbi52YXJpYWJsZSwgdmFyaWFibGUpLFxuICAgIC8vIGxvY2FscyBhcmUgYSBzcGVjaWFsIGNhc2VcbiAgICAuLi5mb3JFYWNoR2xvYmFsKFxuICAgICAgc2NvcGUsXG4gICAgICBcImxvY2FsXCIsXG4gICAgICBBcnJheS5pc0FycmF5KHBsYW4ubG9jYWxzKVxuICAgICAgICA/IHBsYW4ubG9jYWxzLnJlZHVjZSgoY2FycnksIGxvY2FscykgPT4gKHsgLi4uY2FycnksIC4uLmxvY2FscyB9KSwge30pXG4gICAgICAgIDoge30sXG4gICAgICBsb2NhbCxcbiAgICApLFxuICAgIC4uLmZvckVhY2hHbG9iYWwoc2NvcGUsIFwib3V0XCIsIHBsYW4ub3V0cHV0LCBvdXRwdXQpLFxuICAgIC4uLmZvckVhY2hHbG9iYWwoc2NvcGUsIFwibW9kdWxlXCIsIHBsYW4ubW9kdWxlLCBtb2R1bGVzKSxcbiAgICAuLi5mb3JFYWNoSW1wb3J0KHNjb3BlLCBcImltcG9ydFwiLCBwbGFuLmltcG9ydCwgaW1wb3J0cyksXG4gICAgLi4uZm9yRWFjaE5hbWVzcGFjZWQoc2NvcGUsIHBsYW4ucmVzb3VyY2UsIHJlc291cmNlKSxcbiAgICAuLi5mb3JFYWNoTmFtZXNwYWNlZChzY29wZSwgcGxhbi5kYXRhLCByZXNvdXJjZSwgXCJkYXRhXCIpLFxuICB9O1xuXG4gIC8vIEFkZCBhbGwgbm9kZXMgdG8gdGhlIGRlcGVuZGVuY3kgZ3JhcGggc28gd2UgY2FuIGRldGVjdCBpZiBhbiBlZGdlIGlzIGFkZGVkIGZvciBhbiB1bmtub3duIGxpbmtcbiAgT2JqZWN0LmVudHJpZXMobm9kZU1hcCkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKGBBZGRpbmcgbm9kZSAnJHtrZXl9JyB0byBncmFwaGApO1xuICAgIGdyYXBoLmFkZE5vZGUoa2V5LCB2YWx1ZSk7XG4gIH0pO1xuXG4gIC8vIEZpbmRpbmcgcmVmZXJlbmNlcyBiZWNvbWVzIGVhc2llciBvZiB0aGUgdG8gYmUgcmVmZXJlbmNlZCBpZHMgYXJlIGFscmVhZHkga25vd25cbiAgY29uc3Qgbm9kZUlkcyA9IE9iamVjdC5rZXlzKG5vZGVNYXApO1xuICBzY29wZS5ub2RlSWRzID0gbm9kZUlkcztcbiAgYXN5bmMgZnVuY3Rpb24gYWRkRWRnZXMoaWQ6IHN0cmluZywgdmFsdWU6IFRlcnJhZm9ybVJlc291cmNlQmxvY2spIHtcbiAgICAoYXdhaXQgZmluZFVzZWRSZWZlcmVuY2VzKG5vZGVJZHMsIHZhbHVlKSkuZm9yRWFjaCgocmVmKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFncmFwaC5oYXNEaXJlY3RlZEVkZ2UocmVmLnJlZmVyZW5jZWUuaWQsIGlkKSAmJlxuICAgICAgICBncmFwaC5oYXNOb2RlKHJlZi5yZWZlcmVuY2VlLmlkKSAvLyBpbiBjYXNlIHRoZSByZWZlcmVuY2VlIGlzIGEgZHluYW1pYyB2YXJpYWJsZVxuICAgICAgKSB7XG4gICAgICAgIGlmICghZ3JhcGguaGFzTm9kZShpZCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhlIGRlcGVuZGVuY3kgZ3JhcGggaXMgZXhwZWN0ZWQgdG8gbGluayBmcm9tICR7XG4gICAgICAgICAgICAgIHJlZi5yZWZlcmVuY2VlLmlkXG4gICAgICAgICAgICB9IHRvICR7aWR9IGJ1dCAke2lkfSBkb2VzIG5vdCBleGlzdC5cbiAgICAgICAgICAgIFRoZXNlIG5vZGVzIGV4aXN0OiAke2dyYXBoLm5vZGVzKCkuam9pbihcIlxcblwiKX1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgZ3JhcGggc2hvdWxkIGhhdmUgbm8gc2VsZi1yZWZlcmVuY2VzXG4gICAgICAgIGlmIChpZCA9PT0gcmVmLnJlZmVyZW5jZWUuaWQpIHtcbiAgICAgICAgICBsb2dnZXIuZGVidWcoYFNraXBwaW5nIHNlbGYtcmVmZXJlbmNlIGZvciAke2lkfWApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgQWRkaW5nIGVkZ2UgZnJvbSAke3JlZi5yZWZlcmVuY2VlLmlkfSB0byAke2lkfWApO1xuICAgICAgICBncmFwaC5hZGREaXJlY3RlZEVkZ2UocmVmLnJlZmVyZW5jZWUuaWQsIGlkLCB7IHJlZiB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIFdlIHJlY3Vyc2l2ZWx5IGluc3BlY3QgZWFjaCByZXNvdXJjZSB2YWx1ZSB0byBmaW5kIHJlZmVyZW5jZXMgdG8gb3RoZXIgdmFsdWVzXG4gIC8vIFdlIGFkZCB0aGVzZSB0byBhIGRlcGVuZGVuY3kgZ3JhcGggc28gdGhhdCB0aGUgcHJvZ3JhbW1pbmcgY29kZSBoYXMgdGhlIHJpZ2h0IG9yZGVyXG4gIGFzeW5jIGZ1bmN0aW9uIGFkZEdsb2JhbEVkZ2VzKFxuICAgIF9zY29wZTogUHJvZ3JhbVNjb3BlLFxuICAgIF9rZXk6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nLFxuICAgIHZhbHVlOiBUZXJyYWZvcm1SZXNvdXJjZUJsb2NrLFxuICApIHtcbiAgICBhd2FpdCBhZGRFZGdlcyhpZCwgdmFsdWUpO1xuICB9XG4gIGFzeW5jIGZ1bmN0aW9uIGFkZFByb3ZpZGVyRWRnZXMoXG4gICAgX3Njb3BlOiBQcm9ncmFtU2NvcGUsXG4gICAgX2tleTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdmFsdWU6IFRlcnJhZm9ybVJlc291cmNlQmxvY2ssXG4gICkge1xuICAgIGF3YWl0IGFkZEVkZ2VzKGlkLCB2YWx1ZSk7XG4gIH1cbiAgYXN5bmMgZnVuY3Rpb24gYWRkTmFtZXNwYWNlZEVkZ2VzKFxuICAgIF9zY29wZTogUHJvZ3JhbVNjb3BlLFxuICAgIF90eXBlOiBzdHJpbmcsXG4gICAgX2tleTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdmFsdWU6IFRlcnJhZm9ybVJlc291cmNlQmxvY2ssXG4gICkge1xuICAgIGF3YWl0IGFkZEVkZ2VzKGlkLCB2YWx1ZSk7XG4gIH1cblxuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBPYmplY3QudmFsdWVzKHtcbiAgICAgIC4uLmZvckVhY2hQcm92aWRlcihzY29wZSwgcGxhbi5wcm92aWRlciwgYWRkUHJvdmlkZXJFZGdlcyksXG4gICAgICAuLi5mb3JFYWNoR2xvYmFsKHNjb3BlLCBcInZhclwiLCBwbGFuLnZhcmlhYmxlLCBhZGRHbG9iYWxFZGdlcyksXG4gICAgICAvLyBsb2NhbHMgYXJlIGEgc3BlY2lhbCBjYXNlXG4gICAgICAuLi5mb3JFYWNoR2xvYmFsKFxuICAgICAgICBzY29wZSxcbiAgICAgICAgXCJsb2NhbFwiLFxuICAgICAgICBBcnJheS5pc0FycmF5KHBsYW4ubG9jYWxzKVxuICAgICAgICAgID8gcGxhbi5sb2NhbHMucmVkdWNlKChjYXJyeSwgbG9jYWxzKSA9PiAoeyAuLi5jYXJyeSwgLi4ubG9jYWxzIH0pLCB7fSlcbiAgICAgICAgICA6IHt9LFxuICAgICAgICBhZGRHbG9iYWxFZGdlcyxcbiAgICAgICksXG4gICAgICAuLi5mb3JFYWNoR2xvYmFsKHNjb3BlLCBcIm91dFwiLCBwbGFuLm91dHB1dCwgYWRkR2xvYmFsRWRnZXMpLFxuICAgICAgLi4uZm9yRWFjaEdsb2JhbChzY29wZSwgXCJtb2R1bGVcIiwgcGxhbi5tb2R1bGUsIGFkZEdsb2JhbEVkZ2VzKSxcbiAgICAgIC4uLmZvckVhY2hOYW1lc3BhY2VkKHNjb3BlLCBwbGFuLnJlc291cmNlLCBhZGROYW1lc3BhY2VkRWRnZXMpLFxuICAgICAgLi4uZm9yRWFjaE5hbWVzcGFjZWQoc2NvcGUsIHBsYW4uZGF0YSwgYWRkTmFtZXNwYWNlZEVkZ2VzLCBcImRhdGFcIiksXG4gICAgfSkubWFwKCh7IGNvZGU6IGFkZEVkZ2VzVG9HcmFwaCB9KSA9PiBhZGRFZGdlc1RvR3JhcGgoZ3JhcGgpKSxcbiAgKTtcblxuICBsb2dnZXIuZGVidWcoYEdyYXBoOiAke0pTT04uc3RyaW5naWZ5KGdyYXBoLCBudWxsLCAyKX1gKTtcbiAgbG9nZ2VyLmRlYnVnKGBTdGFydGluZyB0byBhc3NlbWJsZSB0aGUgdHlwZXNjcmlwdCBjb2RlYCk7XG4gIC8vIFdlIHRyYXZlcnNlIHRoZSBkZXBlbmRlbmN5IGdyYXBoIHRvIGdldCB0aGUgdW5vcmRlcmVkIEpTT04gbm9kZXMgaW50byBhbiBvcmRlcmVkIGFycmF5XG4gIC8vIHdoZXJlIG5vIG5vZGUgaXMgcmVmZXJlbmNlZCBiZWZvcmUgaXQncyBkZWZpbmVkXG4gIC8vIEFzIHdlIGNoZWNrIHRoYXQgdGhlIG5vZGVzIG9uIGJvdGggZW5kcyBvZiBhbiBlZGdlIGV4aXN0IHdlIGNhbiBiZSBzdXJlXG4gIC8vIHRoYXQgbm8gaW5maW5pdGUgbG9vcCBleGlzdHMsIHRoZXJlIGNhbiBiZSBubyBzdHJheSBkZXBlbmRlbmN5IG9uIGEgbm9kZVxuICBjb25zdCBleHByZXNzaW9uczogdC5TdGF0ZW1lbnRbXSA9IFtdO1xuICBsZXQgbm9kZXNUb1Zpc2l0ID0gWy4uLm5vZGVJZHNdO1xuICAvLyBUaGlzIGVuc3VyZXMgd2UgZGV0ZWN0IGN5Y2xlcyBhbmQgZG9uJ3QgZW5kIHVwIGluIGFuIGVuZGxlc3MgbG9vcFxuICBsZXQgbm9kZXNWaXNpdGVkVGhpc0l0ZXJhdGlvbiA9IDA7XG4gIGRvIHtcbiAgICBub2Rlc1Zpc2l0ZWRUaGlzSXRlcmF0aW9uID0gMDtcblxuICAgIC8vIEZpbmQgbmV4dCBub2RlcyB0byB2aXNpdFxuICAgIGNvbnN0IG5vZGVFeHByZXNzaW9uR2VuZXJhdG9ycyA9IGdyYXBoLm1hcE5vZGVzKChub2RlSWQsIHsgY29kZSB9KSA9PiB7XG4gICAgICBpZiAoIW5vZGVzVG9WaXNpdC5pbmNsdWRlcyhub2RlSWQpKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVucmVzb2x2ZWREZXBlbmRlbmNpZXMgPSBncmFwaFxuICAgICAgICAuaW5OZWlnaGJvcnMobm9kZUlkKVxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBub2Rlc1RvVmlzaXQuaW5jbHVkZXMoaXRlbSkpO1xuXG4gICAgICBpZiAodW5yZXNvbHZlZERlcGVuZGVuY2llcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgbm9kZXNUb1Zpc2l0ID0gbm9kZXNUb1Zpc2l0LmZpbHRlcigoaWQpID0+IG5vZGVJZCAhPT0gaWQpO1xuICAgICAgICBub2Rlc1Zpc2l0ZWRUaGlzSXRlcmF0aW9uID0gbm9kZXNWaXNpdGVkVGhpc0l0ZXJhdGlvbiArIDE7XG5cbiAgICAgICAgbG9nZ2VyLmRlYnVnKGBWaXNpdGluZyBub2RlICR7bm9kZUlkfWApO1xuICAgICAgICByZXR1cm4gY29kZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG5cbiAgICAvLyBHZW5lcmF0ZSB0aGUgY29kZSBmb3IgdGhlIG5vZGVzXG4gICAgZm9yIChjb25zdCBjb2RlIG9mIG5vZGVFeHByZXNzaW9uR2VuZXJhdG9ycykge1xuICAgICAgaWYgKGNvZGUpIHtcbiAgICAgICAgZXhwcmVzc2lvbnMucHVzaCguLi4oYXdhaXQgY29kZShncmFwaCkpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgJHtub2Rlc1RvVmlzaXQubGVuZ3RofSB1bnZpc2l0ZWQgbm9kZXM6ICR7bm9kZXNUb1Zpc2l0LmpvaW4oXCIsIFwiKX1gLFxuICAgICk7XG4gIH0gd2hpbGUgKG5vZGVzVG9WaXNpdC5sZW5ndGggPiAwICYmIG5vZGVzVmlzaXRlZFRoaXNJdGVyYXRpb24gIT0gMCk7XG5cbiAgaWYgKG5vZGVzVG9WaXNpdC5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZXJlIGFyZSAke1xuICAgICAgICBub2Rlc1RvVmlzaXQubGVuZ3RoXG4gICAgICB9IHRlcnJhZm9ybSBlbGVtZW50cyB0aGF0IGNvdWxkIG5vdCBiZSB2aXNpdGVkLlxuICAgICAgVGhpcyBpcyBsaWtlbHkgZHVlIHRvIGEgY3ljbGUgaW4gdGhlIGRlcGVuZGVuY3kgZ3JhcGguXG4gICAgICBUaGVzZSBub2RlcyBhcmU6ICR7bm9kZXNUb1Zpc2l0LmpvaW4oXCIsIFwiKX1gLFxuICAgICk7XG4gIH1cblxuICBsb2dnZXIuZGVidWcoXG4gICAgYCR7bm9kZXNUb1Zpc2l0Lmxlbmd0aH0gdW52aXNpdGVkIG5vZGVzOiAke25vZGVzVG9WaXNpdC5qb2luKFwiLCBcIil9YCxcbiAgKTtcblxuICBjb25zdCBiYWNrZW5kRXhwcmVzc2lvbnMgPSAoXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBwbGFuLnRlcnJhZm9ybT8ubWFwKCh0ZXJyYWZvcm0pID0+XG4gICAgICAgIGJhY2tlbmRUb0V4cHJlc3Npb24oc2NvcGUsIHRlcnJhZm9ybS5iYWNrZW5kKSxcbiAgICAgICkgfHwgW1Byb21pc2UucmVzb2x2ZShbXSldLFxuICAgIClcbiAgKS5yZWR1Y2UoKGNhcnJ5LCBpdGVtKSA9PiBbLi4uY2FycnksIC4uLml0ZW1dLCBbXSk7XG5cbiAgbG9nZ2VyLmRlYnVnKFxuICAgIGBVc2luZyB0aGVzZSBiYWNrZW5kIGV4cHJlc3Npb25zOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgYmFja2VuZEV4cHJlc3Npb25zLFxuICAgICAgbnVsbCxcbiAgICAgIDIsXG4gICAgKX1gLFxuICApO1xuXG4gIC8vIFdlIGNvbGxlY3QgYWxsIG1vZHVsZSBzb3VyY2VzXG4gIGNvbnN0IG1vZHVsZVJlcXVpcmVtZW50cyA9IFtcbiAgICAuLi5uZXcgU2V0KFxuICAgICAgT2JqZWN0LnZhbHVlcyhwbGFuLm1vZHVsZSB8fCB7fSkucmVkdWNlKFxuICAgICAgICAoY2FycnksIG1vZHVsZUJsb2NrKSA9PiBbXG4gICAgICAgICAgLi4uY2FycnksXG4gICAgICAgICAgLi4ubW9kdWxlQmxvY2sucmVkdWNlKFxuICAgICAgICAgICAgKGFyciwgeyBzb3VyY2UsIHZlcnNpb24gfSkgPT4gW1xuICAgICAgICAgICAgICAuLi5hcnIsXG4gICAgICAgICAgICAgIHZlcnNpb24gPyBgJHtzb3VyY2V9QCR7dmVyc2lvbn1gIDogc291cmNlLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtdIGFzIHN0cmluZ1tdLFxuICAgICAgICAgICksXG4gICAgICAgIF0sXG4gICAgICAgIFtdIGFzIHN0cmluZ1tdLFxuICAgICAgKSB8fCBbXSxcbiAgICApLFxuICBdO1xuXG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgRm91bmQgdGhlc2UgbW9kdWxlczogJHtKU09OLnN0cmluZ2lmeShtb2R1bGVSZXF1aXJlbWVudHMsIG51bGwsIDIpfWAsXG4gICk7XG5cbiAgaWYgKE9iamVjdC5rZXlzKHBsYW4udmFyaWFibGUgfHwge30pLmxlbmd0aCA+IDAgJiYgZXhwcmVzc2lvbnMubGVuZ3RoID4gMCkge1xuICAgIGV4cHJlc3Npb25zWzBdID0gdC5hZGRDb21tZW50KFxuICAgICAgZXhwcmVzc2lvbnNbMF0sXG4gICAgICBcImxlYWRpbmdcIixcbiAgICAgIGBUZXJyYWZvcm0gVmFyaWFibGVzIGFyZSBub3QgYWx3YXlzIHRoZSBiZXN0IGZpdCBmb3IgZ2V0dGluZyBpbnB1dHMgaW4gdGhlIGNvbnRleHQgb2YgVGVycmFmb3JtIENESy5cbllvdSBjYW4gcmVhZCBtb3JlIGFib3V0IHRoaXMgYXQgaHR0cHM6Ly9jZGt0bi5pby9kb2NzL2NvbmNlcHRzL3ZhcmlhYmxlcy1hbmQtb3V0cHV0cyNpbnB1dC12YXJpYWJsZXNgLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBwcm92aWRlclJlcXVpcmVtZW50cyA9IGdldFByb3ZpZGVyUmVxdWlyZW1lbnRzKHBsYW4pO1xuICBsb2dnZXIuZGVidWcoXG4gICAgYEZvdW5kIHRoZXNlIHByb3ZpZGVyIHJlcXVpcmVtZW50czogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgIHByb3ZpZGVyUmVxdWlyZW1lbnRzLFxuICAgICAgbnVsbCxcbiAgICAgIDIsXG4gICAgKX1gLFxuICApO1xuXG4gIC8vIFdlIGFkZCBhIGNvbW1lbnQgaWYgdGhlcmUgYXJlIHByb3ZpZGVycyB3aXRoIG1pc3Npbmcgc2NoZW1hIGluZm9ybWF0aW9uXG4gIGNvbnN0IHByb3ZpZGVyc0xhY2tpbmdTY2hlbWEgPSBPYmplY3Qua2V5cyhwcm92aWRlclJlcXVpcmVtZW50cykuZmlsdGVyKFxuICAgIChwcm92aWRlck5hbWUpID0+XG4gICAgICBwcm92aWRlck5hbWUgIT09IFwidGVycmFmb3JtXCIgJiZcbiAgICAgICFPYmplY3Qua2V5cyhwcm92aWRlclNjaGVtYS5wcm92aWRlcl9zY2hlbWFzIHx8IHt9KS5zb21lKChzY2hlbWFOYW1lKSA9PlxuICAgICAgICBzY2hlbWFOYW1lLmVuZHNXaXRoKHByb3ZpZGVyTmFtZSksXG4gICAgICApLFxuICApO1xuICBsb2dnZXIuZGVidWcoXG4gICAgYCR7XG4gICAgICBwcm92aWRlcnNMYWNraW5nU2NoZW1hLmxlbmd0aFxuICAgIH0gcHJvdmlkZXJzIGxhY2sgc2NoZW1hIGluZm9ybWF0aW9uOiAke3Byb3ZpZGVyc0xhY2tpbmdTY2hlbWEuam9pbihcIiwgXCIpfWAsXG4gICk7XG5cbiAgaWYgKHByb3ZpZGVyc0xhY2tpbmdTY2hlbWEubGVuZ3RoID4gMCkge1xuICAgIGV4cHJlc3Npb25zWzBdID0gdC5hZGRDb21tZW50KFxuICAgICAgZXhwcmVzc2lvbnNbMF0sXG4gICAgICBcImxlYWRpbmdcIixcbiAgICAgIGBUaGUgZm9sbG93aW5nIHByb3ZpZGVycyBhcmUgbWlzc2luZyBzY2hlbWEgaW5mb3JtYXRpb24gYW5kIG1pZ2h0IG5lZWQgbWFudWFsIGFkanVzdG1lbnRzIHRvIHN5bnRoZXNpemUgY29ycmVjdGx5OiAke3Byb3ZpZGVyc0xhY2tpbmdTY2hlbWEuam9pbihcbiAgICAgICAgXCIsIFwiLFxuICAgICAgKX0uXG5Gb3IgYSBtb3JlIHByZWNpc2UgY29udmVyc2lvbiBwbGVhc2UgdXNlIHRoZSAtLXByb3ZpZGVyIGZsYWcgaW4gY29udmVydC5gLFxuICAgICk7XG4gIH1cblxuICAvLyBBbHdheXMgYWRkIGNvbnN0cnVjdHNcbiAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgY29uc3RydWN0TmFtZTogXCJDb25zdHJ1Y3RcIixcbiAgICBwcm92aWRlcjogXCJjb25zdHJ1Y3RzXCIsXG4gIH0pO1xuXG4gIGlmIChzY29wZS5oYXNUb2tlbkJhc2VkVHlwZUNvZXJjaW9uKSB7XG4gICAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgICBjb25zdHJ1Y3ROYW1lOiBcIlRva2VuXCIsXG4gICAgICBwcm92aWRlcjogXCJjZGt0blwiLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQWRkIHNwZWNpZmljIGltcG9ydCBmb3IgY29kZUNvbnRhaW5lclxuICBhZGRJbXBvcnRGb3JDb2RlQ29udGFpbmVyKHNjb3BlLCBjb2RlQ29udGFpbmVyKTtcbiAgY29uc3QgY29uc3RydWN0SW1wb3J0cyA9IGJ1aWxkSW1wb3J0cyhzY29wZS5pbXBvcnRhYmxlcyk7XG5cbiAgY29uc3QgY29kZSA9IFsuLi4oYmFja2VuZEV4cHJlc3Npb25zIHx8IFtdKSwgLi4uZXhwcmVzc2lvbnNdO1xuICBjb25zdCBjb25maWdUeXBlTmFtZSA9XG4gICAgT2JqZWN0LmtleXMoc2NvcGUudG9wTGV2ZWxDb25maWcpLmxlbmd0aCA+IDAgPyBcIk15Q29uZmlnXCIgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgY2xhc3NDb25maWcgPSBjb25maWdUeXBlTmFtZVxuICAgID8gW2dlbmVyYXRlQ29uZmlnVHlwZShjb25maWdUeXBlTmFtZSwgc2NvcGUudG9wTGV2ZWxDb25maWcpXVxuICAgIDogW107XG5cbiAgLy8gV2Ugc3BsaXQgdXAgdGhlIGdlbmVyYXRlZCBjb2RlIHNvIHRoYXQgdXNlcnMgY2FuIGhhdmUgbW9yZSBjb250cm9sIG92ZXIgd2hhdCB0byBpbnNlcnQgd2hlcmVcbiAgcmV0dXJuIHtcbiAgICAvLyBUT0RPOiBSZW1vdmUgaW1wb3J0cyBhbmQgY29kZSBiZWNhdXNlIHJvc2V0dGEgd29uJ3QgYmUgYWJsZSB0byB0cmFuc2xhdGUgdGhlbVxuICAgIGFsbDogYXdhaXQgZ2VuKFtcbiAgICAgIC4uLmNvbnN0cnVjdEltcG9ydHMsXG4gICAgICAuLi5tb2R1bGVJbXBvcnRzKHBsYW4ubW9kdWxlKSxcbiAgICAgIC4uLmNsYXNzQ29uZmlnLFxuICAgICAgd3JhcENvZGVJbkNvbnN0cnVjdG9yKFxuICAgICAgICBjb2RlQ29udGFpbmVyLFxuICAgICAgICBjb2RlLFxuICAgICAgICBcIk15Q29udmVydGVkQ29kZVwiLFxuICAgICAgICBjb25maWdUeXBlTmFtZSxcbiAgICAgICksXG4gICAgXSksXG4gICAgaW1wb3J0czogYXdhaXQgZ2VuKFsuLi5jb25zdHJ1Y3RJbXBvcnRzLCAuLi5tb2R1bGVJbXBvcnRzKHBsYW4ubW9kdWxlKV0pLFxuICAgIGNvZGU6IGF3YWl0IGdlbihjb2RlKSxcbiAgICBwcm92aWRlcnM6IE9iamVjdC5lbnRyaWVzKHByb3ZpZGVyUmVxdWlyZW1lbnRzKS5tYXAoKFtzb3VyY2UsIHZlcnNpb25dKSA9PlxuICAgICAgdmVyc2lvbiA9PT0gXCIqXCIgPyBzb3VyY2UgOiBgJHtzb3VyY2V9QCR7dmVyc2lvbn1gLFxuICAgICksXG4gICAgbW9kdWxlczogbW9kdWxlUmVxdWlyZW1lbnRzLFxuICAgIC8vIFdlIHRyYWNrIHNvbWUgdXNhZ2UgZGF0YSB0byBtYWtlIGl0IGVhc2llciB0byB1bmRlcnN0YW5kIHdoYXQgaXMgdXNlZFxuICAgIHN0YXRzOiB7XG4gICAgICBudW1iZXJPZk1vZHVsZXM6IG1vZHVsZVJlcXVpcmVtZW50cy5sZW5ndGgsXG4gICAgICBudW1iZXJPZlByb3ZpZGVyczogT2JqZWN0LmtleXMocHJvdmlkZXJSZXF1aXJlbWVudHMpLmxlbmd0aCxcbiAgICAgIHJlc291cmNlczogcmVzb3VyY2VTdGF0cyhwbGFuLnJlc291cmNlIHx8IHt9KSxcbiAgICAgIGRhdGE6IHJlc291cmNlU3RhdHMocGxhbi5kYXRhIHx8IHt9KSxcbiAgICAgIGNvbnZlcnRlZExpbmVzOiBoY2wuc3BsaXQoXCJcXG5cIikubGVuZ3RoLFxuICAgIH0sXG4gIH07XG59XG5cbnR5cGUgRmlsZSA9IHsgY29udGVudHM6IHN0cmluZzsgZmlsZU5hbWU6IHN0cmluZyB9O1xuY29uc3QgdHJhbnNsYXRvcnMgPSB7XG4gIHB5dGhvbjoge1xuICAgIHZpc2l0b3I6ICgpID0+IG5ldyByb3NldHRhLlB5dGhvblZpc2l0b3IoKSxcbiAgICBwb3N0VHJhbnNsYXRpb25NdXRhdGlvbjogcmVwbGFjZVB5dGhvbkltcG9ydHMsXG4gIH0sXG4gIGphdmE6IHtcbiAgICB2aXNpdG9yOiAoKSA9PiBuZXcgcm9zZXR0YS5KYXZhVmlzaXRvcigpLFxuICAgIHBvc3RUcmFuc2xhdGlvbk11dGF0aW9uOiByZXBsYWNlSmF2YUltcG9ydHMsXG4gIH0sXG4gIGNzaGFycDoge1xuICAgIHZpc2l0b3I6ICgpID0+IG5ldyByb3NldHRhLkNTaGFycFZpc2l0b3IoKSxcbiAgICBwb3N0VHJhbnNsYXRpb25NdXRhdGlvbjogcmVwbGFjZUNzaGFycEltcG9ydHMsXG4gIH0sXG4gIGdvOiB7XG4gICAgdmlzaXRvcjogKCkgPT4gbmV3IHJvc2V0dGEuR29WaXNpdG9yKCksXG4gICAgcG9zdFRyYW5zbGF0aW9uTXV0YXRpb246IHJlcGxhY2VHb0ltcG9ydHMsXG4gIH0sXG59O1xuXG5mdW5jdGlvbiB0cmFuc2xhdG9yRm9yTGFuZ3VhZ2UobGFuZ3VhZ2U6IGtleW9mIHR5cGVvZiB0cmFuc2xhdG9ycykge1xuICByZXR1cm4gKGZpbGU6IEZpbGUsIHRocm93T25UcmFuc2xhdGlvbkVycm9yOiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgeyB2aXNpdG9yLCBwb3N0VHJhbnNsYXRpb25NdXRhdGlvbiB9ID0gdHJhbnNsYXRvcnNbbGFuZ3VhZ2VdO1xuICAgIGNvbnN0IHsgdHJhbnNsYXRpb24sIGRpYWdub3N0aWNzIH0gPSByb3NldHRhLnRyYW5zbGF0ZVR5cGVTY3JpcHQoXG4gICAgICBmaWxlLFxuICAgICAgdmlzaXRvcigpLFxuICAgICAgdGhyb3dPblRyYW5zbGF0aW9uRXJyb3IgPyB7IGluY2x1ZGVDb21waWxlckRpYWdub3N0aWNzOiB0cnVlIH0gOiB7fSxcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgdGhyb3dPblRyYW5zbGF0aW9uRXJyb3IgJiZcbiAgICAgIGRpYWdub3N0aWNzLmZpbHRlcigoZGlhZykgPT4gZGlhZy5pc0Vycm9yKS5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBsb2dnZXIuZGVidWcoYENvdWxkIG5vdCB0cmFuc2xhdGUgVFMgdG8gJHtsYW5ndWFnZX06XFxuJHtmaWxlLmNvbnRlbnRzfWApO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IHRyYW5zbGF0ZSBUUyB0byAke2xhbmd1YWdlfTogJHtkaWFnbm9zdGljc1xuICAgICAgICAgIC5tYXAoKGRpYWcpID0+IGRpYWcuZm9ybWF0dGVkTWVzc2FnZSlcbiAgICAgICAgICAuam9pbihcIlxcblwiKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9zdFRyYW5zbGF0aW9uTXV0YXRpb24odHJhbnNsYXRpb24pO1xuICB9O1xufVxuXG50eXBlIENvbnZlcnRPcHRpb25zID0ge1xuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIHRvIGNvbnZlcnQgdG9cbiAgICovXG4gIGxhbmd1YWdlOiBrZXlvZiB0eXBlb2YgdHJhbnNsYXRvcnMgfCBcInR5cGVzY3JpcHRcIjtcbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBzY2hlbWEgdG8gdXNlIGZvciBjb252ZXJzaW9uXG4gICAqL1xuICBwcm92aWRlclNjaGVtYTogUHJvdmlkZXJTY2hlbWE7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBjbGFzcyB0byBleHRlbmQgZnJvbS4gRGVmYXVsdHMgdG8gYGNvbnN0cnVjdHMuQ29uc3RydWN0YFxuICAgKi9cbiAgY29kZUNvbnRhaW5lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHRyYW5zbGF0aW9uIGZhaWxzXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlXG4gICAqL1xuICB0aHJvd09uVHJhbnNsYXRpb25FcnJvcj86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udmVydChcbiAgaGNsOiBzdHJpbmcsXG4gIHtcbiAgICBsYW5ndWFnZSxcbiAgICBwcm92aWRlclNjaGVtYSxcbiAgICB0aHJvd09uVHJhbnNsYXRpb25FcnJvciA9IGZhbHNlLFxuICAgIGNvZGVDb250YWluZXIgPSBcImNka3RuLlRlcnJhZm9ybVN0YWNrXCIsXG4gIH06IENvbnZlcnRPcHRpb25zLFxuKSB7XG4gIGNvbnN0IGZpbGVOYW1lID0gXCJ0ZXJyYWZvcm0udGZcIjtcbiAgY29uc3QgdHJhbnNsYXRlciA9XG4gICAgbGFuZ3VhZ2UgPT09IFwidHlwZXNjcmlwdFwiXG4gICAgICA/IChmaWxlOiBGaWxlLCBfdGhyb3dPblRyYW5zbGF0aW9uRXJyb3I6IGJvb2xlYW4pID0+IGZpbGUuY29udGVudHNcbiAgICAgIDogdHJhbnNsYXRvckZvckxhbmd1YWdlKGxhbmd1YWdlKTtcblxuICBpZiAoIXRyYW5zbGF0ZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBsYW5ndWFnZSB1c2VkOiBcIiArIGxhbmd1YWdlKTtcbiAgfVxuXG4gIGNvbnN0IHRzQ29kZSA9IGF3YWl0IGNvbnZlcnRUb1R5cGVzY3JpcHQoaGNsLCBwcm92aWRlclNjaGVtYSwgY29kZUNvbnRhaW5lcik7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi50c0NvZGUsXG4gICAgYWxsOiB0cmFuc2xhdGVyKFxuICAgICAgeyBmaWxlTmFtZSwgY29udGVudHM6IHRzQ29kZS5hbGwgfSxcbiAgICAgIHRocm93T25UcmFuc2xhdGlvbkVycm9yLFxuICAgICksXG4gICAgaW1wb3J0czogdHJhbnNsYXRlcih7IGZpbGVOYW1lLCBjb250ZW50czogdHNDb2RlLmltcG9ydHMgfSwgZmFsc2UpLFxuICAgIGNvZGU6IHRyYW5zbGF0ZXIoeyBmaWxlTmFtZSwgY29udGVudHM6IHRzQ29kZS5jb2RlIH0sIGZhbHNlKSxcbiAgICBzdGF0czogeyAuLi50c0NvZGUuc3RhdHMsIGxhbmd1YWdlIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXJyYWZvcm1Db25maWdGcm9tRGlyKGltcG9ydFBhdGg6IHN0cmluZykge1xuICBjb25zdCBhYnNQYXRoID0gcGF0aC5yZXNvbHZlKGltcG9ydFBhdGgpO1xuICBjb25zdCBmaWxlQ29udGVudHMgPSBnbG9iXG4gICAgLnN5bmMoXCIuLyoudGZcIiwgeyBjd2Q6IGFic1BhdGggfSlcbiAgICAubWFwKChwKSA9PiBmcy5yZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKGFic1BhdGgsIHApLCBcInV0ZjhcIikpO1xuXG4gIHJldHVybiBmaWxlQ29udGVudHMuam9pbihcIlxcblwiKTtcbn1cblxudHlwZSBDZGt0Zkpzb24gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiAmIHtcbiAgdGVycmFmb3JtUHJvdmlkZXJzOiBhbnlbXTtcbiAgdGVycmFmb3JtTW9kdWxlczogYW55W107XG59O1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbnZlcnRQcm9qZWN0KFxuICBjb21iaW5lZEhjbDogc3RyaW5nLFxuICB7IGxhbmd1YWdlLCBwcm92aWRlclNjaGVtYSB9OiBDb252ZXJ0T3B0aW9ucyxcbikge1xuICBpZiAobGFuZ3VhZ2UgIT09IFwidHlwZXNjcmlwdFwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgbGFuZ3VhZ2UgdXNlZDogXCIgKyBsYW5ndWFnZSk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgaW1wb3J0cyxcbiAgICBjb2RlLFxuICAgIHByb3ZpZGVycyxcbiAgICBtb2R1bGVzOiB0Zk1vZHVsZXMsXG4gICAgc3RhdHMsXG4gIH0gPSBhd2FpdCBjb252ZXJ0KGNvbWJpbmVkSGNsLCB7XG4gICAgbGFuZ3VhZ2UsXG4gICAgcHJvdmlkZXJTY2hlbWEsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgY29kZTogKGlucHV0TWFpbkZpbGU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgaW1wb3J0TWFpbkZpbGUgPSBbaW1wb3J0cywgaW5wdXRNYWluRmlsZV0uam9pbihcIlxcblwiKTtcbiAgICAgIGNvbnN0IG91dHB1dE1haW5GaWxlID0gaW1wb3J0TWFpbkZpbGUucmVwbGFjZShDT0RFX01BUktFUiwgY29kZSk7XG4gICAgICByZXR1cm4gcHJldHRpZXIuZm9ybWF0KG91dHB1dE1haW5GaWxlLCB7IHBhcnNlcjogXCJiYWJlbFwiIH0pO1xuICAgIH0sXG4gICAgY2RrdGZKc29uOiAoaW5wdXRDZGt0Zkpzb246IENka3RmSnNvbikgPT4ge1xuICAgICAgY29uc3QgY2RrdGZKc29uID0geyAuLi5pbnB1dENka3RmSnNvbiB9O1xuICAgICAgY2RrdGZKc29uLnRlcnJhZm9ybVByb3ZpZGVycyA9IHByb3ZpZGVycztcbiAgICAgIGNka3RmSnNvbi50ZXJyYWZvcm1Nb2R1bGVzID0gdGZNb2R1bGVzO1xuICAgICAgcmV0dXJuIGNka3RmSnNvbjtcbiAgICB9LFxuICAgIHN0YXRzLFxuICB9O1xufVxuXG5leHBvcnQgeyBpc1JlZ2lzdHJ5TW9kdWxlLCBhdHRyaWJ1dGVOYW1lVG9DZGt0Zk5hbWUgfTtcbiJdfQ==
|
package/build/iteration.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.forEachGlobal = forEachGlobal;
|
|
4
|
+
exports.forEachImport = forEachImport;
|
|
5
|
+
exports.forEachProvider = forEachProvider;
|
|
6
|
+
exports.forEachNamespaced = forEachNamespaced;
|
|
7
|
+
exports.resourceStats = resourceStats;
|
|
4
8
|
const telemetryAllowList_json_1 = require("./telemetryAllowList.json");
|
|
5
9
|
// locals, variables, and outputs are global key value maps
|
|
6
10
|
function forEachGlobal(scope, prefix, record, iterator) {
|
|
@@ -15,7 +19,6 @@ function forEachGlobal(scope, prefix, record, iterator) {
|
|
|
15
19
|
};
|
|
16
20
|
}, {});
|
|
17
21
|
}
|
|
18
|
-
exports.forEachGlobal = forEachGlobal;
|
|
19
22
|
function forEachImport(scope, prefix, record, iterator) {
|
|
20
23
|
return (record || []).reduce((carry, item) => {
|
|
21
24
|
const target = item.to.startsWith("${") && item.to.endsWith("}")
|
|
@@ -31,7 +34,6 @@ function forEachImport(scope, prefix, record, iterator) {
|
|
|
31
34
|
};
|
|
32
35
|
}, {});
|
|
33
36
|
}
|
|
34
|
-
exports.forEachImport = forEachImport;
|
|
35
37
|
function forEachProvider(scope, record, iterator) {
|
|
36
38
|
return Object.entries(record || {}).reduce((carry, [key, items]) => {
|
|
37
39
|
return {
|
|
@@ -49,7 +51,6 @@ function forEachProvider(scope, record, iterator) {
|
|
|
49
51
|
};
|
|
50
52
|
}, {});
|
|
51
53
|
}
|
|
52
|
-
exports.forEachProvider = forEachProvider;
|
|
53
54
|
// data and resource are namespaced key value maps
|
|
54
55
|
function forEachNamespaced(scope, record, iterator, prefix) {
|
|
55
56
|
return Object.entries(record || {}).reduce((outerCarry, [type, items]) => ({
|
|
@@ -67,7 +68,6 @@ function forEachNamespaced(scope, record, iterator, prefix) {
|
|
|
67
68
|
}, {}),
|
|
68
69
|
}), {});
|
|
69
70
|
}
|
|
70
|
-
exports.forEachNamespaced = forEachNamespaced;
|
|
71
71
|
function resourceStats(obj) {
|
|
72
72
|
return Object.entries(obj).reduce((carry, [key, value]) => {
|
|
73
73
|
const [provider, ...resourceParts] = key.split("_");
|
|
@@ -83,5 +83,4 @@ function resourceStats(obj) {
|
|
|
83
83
|
};
|
|
84
84
|
}, {});
|
|
85
85
|
}
|
|
86
|
-
exports.resourceStats = resourceStats;
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2l0ZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSx1RUFBbUY7QUFJbkYsMkRBQTJEO0FBQzNELFNBQWdCLGFBQWEsQ0FDM0IsS0FBbUIsRUFDbkIsTUFBYyxFQUNkLE1BQXFDLEVBQ3JDLFFBTWU7SUFFZixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLEdBQUcsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlCLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUNKLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBb0IsRUFBRSxFQUFFLENBQ25DLE1BQU0sUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7Z0JBQzdDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQztBQXZCRCxzQ0F1QkM7QUFFRCxTQUFnQixhQUFhLENBQzNCLEtBQW1CLEVBQ25CLE1BQWMsRUFDZCxNQUE0QixFQUM1QixRQUtlO0lBS2YsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDM0MsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFD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QUNGLENBQUM7UUFDSixDQUFDLEVBQ0QsRUFHQyxDQUNGO0tBQ0YsQ0FBQyxFQUNGLEVBR0MsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQXhDRCw4Q0F3Q0M7QUFFRCxTQUFnQixhQUFhLENBQUMsR0FBNEM7SUFDeEUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FDL0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUN0QixNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsYUFBYSxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxNQUFNLGVBQWUsR0FBRyxtQ0FBeUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckUsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN6RCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUV6RSxPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDYixHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU07YUFDMUM7U0FDRixDQUFDO0lBQ0osQ0FBQyxFQUNELEVBQTRDLENBQzdDLENBQUM7QUFDSixDQUFDO0FBbEJELHNDQWtCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBEaXJlY3RlZEdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcbmltcG9ydCB7IHByb3ZpZGVycyBhcyB0ZWxlbWV0cnlBbGxvd2VkUHJvdmlkZXJzIH0gZnJvbSBcIi4vdGVsZW1ldHJ5QWxsb3dMaXN0Lmpzb25cIjtcbmltcG9ydCB7IFByb2dyYW1TY29wZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBJbXBvcnQgfSBmcm9tIFwiLi9zY2hlbWFcIjtcblxuLy8gbG9jYWxzLCB2YXJpYWJsZXMsIGFuZCBvdXRwdXRzIGFyZSBnbG9iYWwga2V5IHZhbHVlIG1hcHNcbmV4cG9ydCBmdW5jdGlvbiBmb3JFYWNoR2xvYmFsPFQsIFI+KFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICBwcmVmaXg6IHN0cmluZyxcbiAgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBUPiB8IHVuZGVmaW5lZCxcbiAgaXRlcmF0b3I6IChcbiAgICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICAgIGtleTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdmFsdWU6IFQsXG4gICAgZ3JhcGg6IERpcmVjdGVkR3JhcGgsXG4gICkgPT4gUHJvbWlzZTxSPixcbik6IFJlY29yZDxzdHJpbmcsIHsgY29kZTogKGdyYXBoOiBEaXJlY3RlZEdyYXBoKSA9PiBQcm9taXNlPFI+OyB2YWx1ZTogVCB9PiB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZWNvcmQgfHwge30pLnJlZHVjZSgoY2FycnksIFtrZXksIGl0ZW1dKSA9PiB7XG4gICAgY29uc3QgaWQgPSBgJHtwcmVmaXh9LiR7a2V5fWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNhcnJ5LFxuICAgICAgW2lkXToge1xuICAgICAgICBjb2RlOiBhc3luYyAoZ3JhcGg6IERpcmVjdGVkR3JhcGgpID0+XG4gICAgICAgICAgYXdhaXQgaXRlcmF0b3Ioc2NvcGUsIGtleSwgaWQsIGl0ZW0sIGdyYXBoKSxcbiAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICB9LFxuICAgIH07XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2hJbXBvcnQ8Uj4oXG4gIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gIHByZWZpeDogc3RyaW5nLFxuICByZWNvcmQ6IEltcG9ydFtdIHwgdW5kZWZpbmVkLFxuICBpdGVyYXRvcjogKFxuICAgIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB2YWx1ZTogSW1wb3J0LFxuICAgIGdyYXBoOiBEaXJlY3RlZEdyYXBoLFxuICApID0+IFByb21pc2U8Uj4sXG4pOiBSZWNvcmQ8XG4gIHN0cmluZyxcbiAgeyBjb2RlOiAoZ3JhcGg6IERpcmVjdGVkR3JhcGgpID0+IFByb21pc2U8Uj47IHZhbHVlOiBJbXBvcnQgfVxuPiB7XG4gIHJldHVybiAocmVjb3JkIHx8IFtdKS5yZWR1Y2UoKGNhcnJ5LCBpdGVtKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID1cbiAgICAgIGl0ZW0udG8uc3RhcnRzV2l0aChcIiR7XCIpICYmIGl0ZW0udG8uZW5kc1dpdGgoXCJ9XCIpXG4gICAgICAgID8gaXRlbS50by5zdWJzdHJpbmcoMiwgaXRlbS50by5sZW5ndGggLSAxKVxuICAgICAgICA6IGl0ZW0udG87XG5cbiAgICBjb25zdCBpZCA9IGAke3ByZWZpeH0uJHt0YXJnZXR9YDtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY2FycnksXG4gICAgICBbaWRdOiB7XG4gICAgICAgIGNvZGU6IGFzeW5jIChncmFwaDogRGlyZWN0ZWRHcmFwaCkgPT5cbiAgICAgICAgICBhd2FpdCBpdGVyYXRvcihzY29wZSwgaWQsIGl0ZW0sIGdyYXBoKSxcbiAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICB9LFxuICAgIH07XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2hQcm92aWRlcjxUIGV4dGVuZHMgeyBhbGlhcz86IHN0cmluZyB9LCBSPihcbiAgc2NvcGU6IFByb2dyYW1TY29wZSxcbiAgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBUW10+IHwgdW5kZWZpbmVkLFxuICBpdGVyYXRvcjogKFxuICAgIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gICAga2V5OiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB2YWx1ZTogVCxcbiAgICBncmFwaDogRGlyZWN0ZWRHcmFwaCxcbiAgKSA9PiBQcm9taXNlPFI+LFxuKTogUmVjb3JkPHN0cmluZywgeyBjb2RlOiAoZ3JhcGg6IERpcmVjdGVkR3JhcGgpID0+IFByb21pc2U8Uj47IHZhbHVlOiBUIH0+IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlY29yZCB8fCB7fSkucmVkdWNlKChjYXJyeSwgW2tleSwgaXRlbXNdKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNhcnJ5LFxuICAgICAgLi4uaXRlbXMucmVkdWNlKChpbm5lckNhcnJ5LCBpdGVtOiBUKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gaXRlbS5hbGlhcyA/IGAke2tleX0uJHtpdGVtLmFsaWFzfWAgOiBgJHtrZXl9YDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5pbm5lckNhcnJ5LFxuICAgICAgICAgIFtpZF06IHtcbiAgICAgICAgICAgIGNvZGU6IGFzeW5jIChncmFwaDogRGlyZWN0ZWRHcmFwaCkgPT5cbiAgICAgICAgICAgICAgYXdhaXQgaXRlcmF0b3Ioc2NvcGUsIGtleSwgaWQsIGl0ZW0sIGdyYXBoKSxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9LCB7fSksXG4gICAgfTtcbiAgfSwge30pO1xufVxuXG4vLyBkYXRhIGFuZCByZXNvdXJjZSBhcmUgbmFtZXNwYWNlZCBrZXkgdmFsdWUgbWFwc1xuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2hOYW1lc3BhY2VkPFQsIFI+KFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFQ+PiB8IHVuZGVmaW5lZCxcbiAgaXRlcmF0b3I6IChcbiAgICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nLFxuICAgIHZhbHVlOiBULFxuICAgIGdyYXBoOiBEaXJlY3RlZEdyYXBoLFxuICApID0+IFByb21pc2U8Uj4sXG4gIHByZWZpeD86IHN0cmluZyxcbik6IFJlY29yZDxzdHJpbmcsIHsgY29kZTogKGdyYXBoOiBEaXJlY3RlZEdyYXBoKSA9PiBQcm9taXNlPFI+OyB2YWx1ZTogVCB9PiB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZWNvcmQgfHwge30pLnJlZHVjZShcbiAgICAob3V0ZXJDYXJyeSwgW3R5cGUsIGl0ZW1zXSkgPT4gKHtcbiAgICAgIC4uLm91dGVyQ2FycnksXG4gICAgICAuLi5PYmplY3QuZW50cmllcyhpdGVtcykucmVkdWNlKFxuICAgICAgICAoaW5uZXJDYXJyeSwgW2tleSwgaXRlbV0pID0+IHtcbiAgICAgICAgICBjb25zdCBwcmVmaXhlZFR5cGUgPSBwcmVmaXggPyBgJHtwcmVmaXh9LiR7dHlwZX1gIDogdHlwZTtcbiAgICAgICAgICBjb25zdCBpZCA9IHByZWZpeCA/IGAke3ByZWZpeH0uJHt0eXBlfS4ke2tleX1gIDogYCR7dHlwZX0uJHtrZXl9YDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uaW5uZXJDYXJyeSxcbiAgICAgICAgICAgIFtpZF06IHtcbiAgICAgICAgICAgICAgY29kZTogYXN5bmMgKGdyYXBoOiBEaXJlY3RlZEdyYXBoKSA9PlxuICAgICAgICAgICAgICAgIGF3YWl0IGl0ZXJhdG9yKHNjb3BlLCBwcmVmaXhlZFR5cGUsIGtleSwgaWQsIGl0ZW0sIGdyYXBoKSxcbiAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIHt9IGFzIFJlY29yZDxcbiAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgeyBjb2RlOiAoZ3JhcGg6IERpcmVjdGVkR3JhcGgpID0+IFByb21pc2U8Uj47IHZhbHVlOiBUIH1cbiAgICAgICAgPixcbiAgICAgICksXG4gICAgfSksXG4gICAge30gYXMgUmVjb3JkPFxuICAgICAgc3RyaW5nLFxuICAgICAgeyBjb2RlOiAoZ3JhcGg6IERpcmVjdGVkR3JhcGgpID0+IFByb21pc2U8Uj47IHZhbHVlOiBUIH1cbiAgICA+LFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb3VyY2VTdGF0cyhvYmo6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+Pikge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoXG4gICAgKGNhcnJ5LCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IFtwcm92aWRlciwgLi4ucmVzb3VyY2VQYXJ0c10gPSBrZXkuc3BsaXQoXCJfXCIpO1xuICAgICAgY29uc3Qgc2hvdWxkQmVUcmFja2VkID0gdGVsZW1ldHJ5QWxsb3dlZFByb3ZpZGVycy5pbmNsdWRlcyhwcm92aWRlcik7XG4gICAgICBjb25zdCBwcm92aWRlcktleSA9IHNob3VsZEJlVHJhY2tlZCA/IHByb3ZpZGVyIDogXCJvdGhlclwiO1xuICAgICAgY29uc3QgcmVzb3VyY2VOYW1lID0gc2hvdWxkQmVUcmFja2VkID8gcmVzb3VyY2VQYXJ0cy5qb2luKFwiX1wiKSA6IFwib3RoZXJcIjtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2FycnksXG4gICAgICAgIFtwcm92aWRlcktleV06IHtcbiAgICAgICAgICAuLi4oY2FycnlbcHJvdmlkZXJLZXldIHx8IHt9KSxcbiAgICAgICAgICBbcmVzb3VyY2VOYW1lXTogT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PixcbiAgKTtcbn1cbiJdfQ==
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2l0ZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLHNDQXVCQztBQUVELHNDQThCQztBQUVELDBDQTJCQztBQUdELDhDQXdDQztBQUVELHNDQWtCQztBQXhKRCx1RUFBbUY7QUFJbkYsMkRBQTJEO0FBQzNELFNBQWdCLGFBQWEsQ0FDM0IsS0FBbUIsRUFDbkIsTUFBYyxFQUNkLE1BQXFDLEVBQ3JDLFFBTWU7SUFFZixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLEdBQUcsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlCLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUNKLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBb0IsRUFBRSxFQUFFLENBQ25DLE1BQU0sUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7Z0JBQzdDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FDM0IsS0FBbUIsRUFDbkIsTUFBYyxFQUNkLE1BQTRCLEVBQzVCLFFBS2U7SUFLZixPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUMzQyxNQUFNLE1BQU0sR0FDVixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FB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QUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGLENBQUM7UUFDSixDQUFDLEVBQ0QsRUFHQyxDQUNGO0tBQ0YsQ0FBQyxFQUNGLEVBR0MsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxHQUE0QztJQUN4RSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUMvQixDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ3RCLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxhQUFhLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sZUFBZSxHQUFHLG1DQUF5QixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRSxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3pELE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRXpFLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM3QixDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTTthQUMxQztTQUNGLENBQUM7SUFDSixDQUFDLEVBQ0QsRUFBNEMsQ0FDN0MsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgRGlyZWN0ZWRHcmFwaCB9IGZyb20gXCJncmFwaG9sb2d5XCI7XG5pbXBvcnQgeyBwcm92aWRlcnMgYXMgdGVsZW1ldHJ5QWxsb3dlZFByb3ZpZGVycyB9IGZyb20gXCIuL3RlbGVtZXRyeUFsbG93TGlzdC5qc29uXCI7XG5pbXBvcnQgeyBQcm9ncmFtU2NvcGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgSW1wb3J0IH0gZnJvbSBcIi4vc2NoZW1hXCI7XG5cbi8vIGxvY2FscywgdmFyaWFibGVzLCBhbmQgb3V0cHV0cyBhcmUgZ2xvYmFsIGtleSB2YWx1ZSBtYXBzXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaEdsb2JhbDxULCBSPihcbiAgc2NvcGU6IFByb2dyYW1TY29wZSxcbiAgcHJlZml4OiBzdHJpbmcsXG4gIHJlY29yZDogUmVjb3JkPHN0cmluZywgVD4gfCB1bmRlZmluZWQsXG4gIGl0ZXJhdG9yOiAoXG4gICAgc2NvcGU6IFByb2dyYW1TY29wZSxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nLFxuICAgIHZhbHVlOiBULFxuICAgIGdyYXBoOiBEaXJlY3RlZEdyYXBoLFxuICApID0+IFByb21pc2U8Uj4sXG4pOiBSZWNvcmQ8c3RyaW5nLCB7IGNvZGU6IChncmFwaDogRGlyZWN0ZWRHcmFwaCkgPT4gUHJvbWlzZTxSPjsgdmFsdWU6IFQgfT4ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVjb3JkIHx8IHt9KS5yZWR1Y2UoKGNhcnJ5LCBba2V5LCBpdGVtXSkgPT4ge1xuICAgIGNvbnN0IGlkID0gYCR7cHJlZml4fS4ke2tleX1gO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtpZF06IHtcbiAgICAgICAgY29kZTogYXN5bmMgKGdyYXBoOiBEaXJlY3RlZEdyYXBoKSA9PlxuICAgICAgICAgIGF3YWl0IGl0ZXJhdG9yKHNjb3BlLCBrZXksIGlkLCBpdGVtLCBncmFwaCksXG4gICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgfSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JFYWNoSW1wb3J0PFI+KFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICBwcmVmaXg6IHN0cmluZyxcbiAgcmVjb3JkOiBJbXBvcnRbXSB8IHVuZGVmaW5lZCxcbiAgaXRlcmF0b3I6IChcbiAgICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdmFsdWU6IEltcG9ydCxcbiAgICBncmFwaDogRGlyZWN0ZWRHcmFwaCxcbiAgKSA9PiBQcm9taXNlPFI+LFxuKTogUmVjb3JkPFxuICBzdHJpbmcsXG4gIHsgY29kZTogKGdyYXBoOiBEaXJlY3RlZEdyYXBoKSA9PiBQcm9taXNlPFI+OyB2YWx1ZTogSW1wb3J0IH1cbj4ge1xuICByZXR1cm4gKHJlY29yZCB8fCBbXSkucmVkdWNlKChjYXJyeSwgaXRlbSkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9XG4gICAgICBpdGVtLnRvLnN0YXJ0c1dpdGgoXCIke1wiKSAmJiBpdGVtLnRvLmVuZHNXaXRoKFwifVwiKVxuICAgICAgICA/IGl0ZW0udG8uc3Vic3RyaW5nKDIsIGl0ZW0udG8ubGVuZ3RoIC0gMSlcbiAgICAgICAgOiBpdGVtLnRvO1xuXG4gICAgY29uc3QgaWQgPSBgJHtwcmVmaXh9LiR7dGFyZ2V0fWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNhcnJ5LFxuICAgICAgW2lkXToge1xuICAgICAgICBjb2RlOiBhc3luYyAoZ3JhcGg6IERpcmVjdGVkR3JhcGgpID0+XG4gICAgICAgICAgYXdhaXQgaXRlcmF0b3Ioc2NvcGUsIGlkLCBpdGVtLCBncmFwaCksXG4gICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgfSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JFYWNoUHJvdmlkZXI8VCBleHRlbmRzIHsgYWxpYXM/OiBzdHJpbmcgfSwgUj4oXG4gIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gIHJlY29yZDogUmVjb3JkPHN0cmluZywgVFtdPiB8IHVuZGVmaW5lZCxcbiAgaXRlcmF0b3I6IChcbiAgICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICAgIGtleTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdmFsdWU6IFQsXG4gICAgZ3JhcGg6IERpcmVjdGVkR3JhcGgsXG4gICkgPT4gUHJvbWlzZTxSPixcbik6IFJlY29yZDxzdHJpbmcsIHsgY29kZTogKGdyYXBoOiBEaXJlY3RlZEdyYXBoKSA9PiBQcm9taXNlPFI+OyB2YWx1ZTogVCB9PiB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZWNvcmQgfHwge30pLnJlZHVjZSgoY2FycnksIFtrZXksIGl0ZW1zXSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIC4uLml0ZW1zLnJlZHVjZSgoaW5uZXJDYXJyeSwgaXRlbTogVCkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGl0ZW0uYWxpYXMgPyBgJHtrZXl9LiR7aXRlbS5hbGlhc31gIDogYCR7a2V5fWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uaW5uZXJDYXJyeSxcbiAgICAgICAgICBbaWRdOiB7XG4gICAgICAgICAgICBjb2RlOiBhc3luYyAoZ3JhcGg6IERpcmVjdGVkR3JhcGgpID0+XG4gICAgICAgICAgICAgIGF3YWl0IGl0ZXJhdG9yKHNjb3BlLCBrZXksIGlkLCBpdGVtLCBncmFwaCksXG4gICAgICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfSwge30pLFxuICAgIH07XG4gIH0sIHt9KTtcbn1cblxuLy8gZGF0YSBhbmQgcmVzb3VyY2UgYXJlIG5hbWVzcGFjZWQga2V5IHZhbHVlIG1hcHNcbmV4cG9ydCBmdW5jdGlvbiBmb3JFYWNoTmFtZXNwYWNlZDxULCBSPihcbiAgc2NvcGU6IFByb2dyYW1TY29wZSxcbiAgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBUPj4gfCB1bmRlZmluZWQsXG4gIGl0ZXJhdG9yOiAoXG4gICAgc2NvcGU6IFByb2dyYW1TY29wZSxcbiAgICB0eXBlOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB2YWx1ZTogVCxcbiAgICBncmFwaDogRGlyZWN0ZWRHcmFwaCxcbiAgKSA9PiBQcm9taXNlPFI+LFxuICBwcmVmaXg/OiBzdHJpbmcsXG4pOiBSZWNvcmQ8c3RyaW5nLCB7IGNvZGU6IChncmFwaDogRGlyZWN0ZWRHcmFwaCkgPT4gUHJvbWlzZTxSPjsgdmFsdWU6IFQgfT4ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVjb3JkIHx8IHt9KS5yZWR1Y2UoXG4gICAgKG91dGVyQ2FycnksIFt0eXBlLCBpdGVtc10pID0+ICh7XG4gICAgICAuLi5vdXRlckNhcnJ5LFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXMoaXRlbXMpLnJlZHVjZShcbiAgICAgICAgKGlubmVyQ2FycnksIFtrZXksIGl0ZW1dKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJlZml4ZWRUeXBlID0gcHJlZml4ID8gYCR7cHJlZml4fS4ke3R5cGV9YCA6IHR5cGU7XG4gICAgICAgICAgY29uc3QgaWQgPSBwcmVmaXggPyBgJHtwcmVmaXh9LiR7dHlwZX0uJHtrZXl9YCA6IGAke3R5cGV9LiR7a2V5fWA7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmlubmVyQ2FycnksXG4gICAgICAgICAgICBbaWRdOiB7XG4gICAgICAgICAgICAgIGNvZGU6IGFzeW5jIChncmFwaDogRGlyZWN0ZWRHcmFwaCkgPT5cbiAgICAgICAgICAgICAgICBhd2FpdCBpdGVyYXRvcihzY29wZSwgcHJlZml4ZWRUeXBlLCBrZXksIGlkLCBpdGVtLCBncmFwaCksXG4gICAgICAgICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyBSZWNvcmQ8XG4gICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgIHsgY29kZTogKGdyYXBoOiBEaXJlY3RlZEdyYXBoKSA9PiBQcm9taXNlPFI+OyB2YWx1ZTogVCB9XG4gICAgICAgID4sXG4gICAgICApLFxuICAgIH0pLFxuICAgIHt9IGFzIFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIHsgY29kZTogKGdyYXBoOiBEaXJlY3RlZEdyYXBoKSA9PiBQcm9taXNlPFI+OyB2YWx1ZTogVCB9XG4gICAgPixcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc291cmNlU3RhdHMob2JqOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4pIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKFxuICAgIChjYXJyeSwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zdCBbcHJvdmlkZXIsIC4uLnJlc291cmNlUGFydHNdID0ga2V5LnNwbGl0KFwiX1wiKTtcbiAgICAgIGNvbnN0IHNob3VsZEJlVHJhY2tlZCA9IHRlbGVtZXRyeUFsbG93ZWRQcm92aWRlcnMuaW5jbHVkZXMocHJvdmlkZXIpO1xuICAgICAgY29uc3QgcHJvdmlkZXJLZXkgPSBzaG91bGRCZVRyYWNrZWQgPyBwcm92aWRlciA6IFwib3RoZXJcIjtcbiAgICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IHNob3VsZEJlVHJhY2tlZCA/IHJlc291cmNlUGFydHMuam9pbihcIl9cIikgOiBcIm90aGVyXCI7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNhcnJ5LFxuICAgICAgICBbcHJvdmlkZXJLZXldOiB7XG4gICAgICAgICAgLi4uKGNhcnJ5W3Byb3ZpZGVyS2V5XSB8fCB7fSksXG4gICAgICAgICAgW3Jlc291cmNlTmFtZV06IE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gICAge30gYXMgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj4sXG4gICk7XG59XG4iXX0=
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
// Copyright (c) HashiCorp, Inc
|
|
3
3
|
// SPDX-License-Identifier: MPL-2.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.
|
|
5
|
+
exports.replacePythonImports = replacePythonImports;
|
|
6
|
+
exports.replaceJavaImports = replaceJavaImports;
|
|
7
|
+
exports.replaceCsharpImports = replaceCsharpImports;
|
|
8
|
+
exports.replaceGoImports = replaceGoImports;
|
|
6
9
|
function replacePythonImports(code) {
|
|
7
10
|
return code
|
|
8
11
|
.split("\n")
|
|
@@ -33,7 +36,6 @@ function replacePythonImports(code) {
|
|
|
33
36
|
})
|
|
34
37
|
.join("\n");
|
|
35
38
|
}
|
|
36
|
-
exports.replacePythonImports = replacePythonImports;
|
|
37
39
|
function replaceJavaImports(code) {
|
|
38
40
|
return code
|
|
39
41
|
.split("\n")
|
|
@@ -63,7 +65,6 @@ function replaceJavaImports(code) {
|
|
|
63
65
|
})
|
|
64
66
|
.join("\n");
|
|
65
67
|
}
|
|
66
|
-
exports.replaceJavaImports = replaceJavaImports;
|
|
67
68
|
function replaceCsharpImports(code) {
|
|
68
69
|
return code
|
|
69
70
|
.split("\n")
|
|
@@ -90,7 +91,6 @@ function replaceCsharpImports(code) {
|
|
|
90
91
|
})
|
|
91
92
|
.join("\n");
|
|
92
93
|
}
|
|
93
|
-
exports.replaceCsharpImports = replaceCsharpImports;
|
|
94
94
|
function replaceGoImports(code) {
|
|
95
95
|
return code
|
|
96
96
|
.split("\n")
|
|
@@ -119,8 +119,7 @@ function replaceGoImports(code) {
|
|
|
119
119
|
})
|
|
120
120
|
.join("\n");
|
|
121
121
|
}
|
|
122
|
-
exports.replaceGoImports = replaceGoImports;
|
|
123
122
|
function lowercaseFirstChar(str) {
|
|
124
123
|
return str.substring(0, 1).toLocaleLowerCase() + str.substring(1);
|
|
125
124
|
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1yb3NldHRhLXdvcmthcm91bmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2pzaWktcm9zZXR0YS13b3JrYXJvdW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7O0FBRW5DLFNBQWdCLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsT0FBTyxJQUFJO1NBQ1IsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1oscUNBQXFDO1FBQ3JDLE1BQU0sa0JBQWtCLEdBQ3RCLDJEQUEyRCxDQUFDO1FBQzlELElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxNQUFNLGNBQWMsR0FDbEIsOERBQThELENBQUM7UUFDakUsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFFRCw0QkFBNEI7UUFDNUIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELHVCQUF1QjtRQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDO1lBQ2hELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxrQkFBa0I7UUFDbEIsSUFB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QixNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQ3RDLE9BQU8sVUFBVSxJQUFJLCtCQUErQixNQUFNLEdBQUcsQ0FBQztRQUNoRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQWpDRCw0Q0FpQ0M7QUFFRCxTQUFTLGtCQUFrQixDQUFDLEdBQVc7SUFDckMsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlUHl0aG9uSW1wb3J0cyhjb2RlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNvZGVcbiAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAubWFwKChsaW5lKSA9PiB7XG4gICAgICAvLyBSZXBsYWNlIGZyb20taW1wb3J0IGxpbmVzIHdpdGggbGliXG4gICAgICBjb25zdCBmcm9tSW1wb3J0TGliUmVnZXggPVxuICAgICAgICAvZnJvbSBcXC5cXC5cXC5nZW5cXC5wcm92aWRlcnNcXC4oW14uXSspKD86XFwubGliKT9cXC4oLiopIGltcG9ydC87XG4gICAgICBpZiAoZnJvbUltcG9ydExpYlJlZ2V4LnRlc3QobGluZSkpIHtcbiAgICAgICAgcmV0dXJuIGxpbmUucmVwbGFjZShmcm9tSW1wb3J0TGliUmVnZXgsIFwiZnJvbSBpbXBvcnRzLiQxLiQyIGltcG9ydFwiKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVwbGFjZSBpbXBvcnQgbGluZXMgd2l0aCBsaWJcbiAgICAgIGNvbnN0IGltcG9ydExpYlJlZ2V4ID1cbiAgICAgICAgL2ltcG9ydCBcXC5cXC5cXC5nZW5cXC5wcm92aWRlcnNcXC4oW14uXSspKD86XFwubGliKT9cXC4oLiopIGFzICguKikvO1xuICAgICAgaWYgKGltcG9ydExpYlJlZ2V4LnRlc3QobGluZSkpIHtcbiAgICAgICAgcmV0dXJuIGxpbmUucmVwbGFjZShpbXBvcnRMaWJSZWdleCwgXCJpbXBvcnQgaW1wb3J0cy4kMS4kMiBhcyAkM1wiKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVwbGFjZSBmcm9tLWltcG9ydCBsaW5lc1xuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aChcImZyb20gLi4uZ2VuLnByb3ZpZGVycy5cIikpIHtcbiAgICAgICAgcmV0dXJuIGxpbmUucmVwbGFjZShcImZyb20gLi4uZ2VuLnByb3ZpZGVycy5cIiwgXCJmcm9tIGltcG9ydHMuXCIpO1xuICAgICAgfVxuICAgICAgLy8gUmVwbGFjZSBpbXBvcnQgbGluZXNcbiAgICAgIGlmIChsaW5lLnN0YXJ0c1dpdGgoXCJpbXBvcnQgLi4uZ2VuLnByb3ZpZGVycy5cIikpIHtcbiAgICAgICAgcmV0dXJuIGxpbmUucmVwbGFjZShcImltcG9ydCAuLi5nZW4ucHJvdmlkZXJzLlwiLCBcImltcG9ydCBpbXBvcnRzLlwiKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVwbGFjZSBtb2R1bGVzXG4gICAgICBpZiAobGluZS5zdGFydHNXaXRoKFwiaW1wb3J0IC4uLmdlbi5tb2R1bGVzLlwiKSkge1xuICAgICAgICByZXR1cm4gbGluZS5yZXBsYWNlKFwiaW1wb3J0IC4uLmdlbi5tb2R1bGVzLlwiLCBcImltcG9ydCBpbXBvcnRzLlwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpbmU7XG4gICAgfSlcbiAgICAuam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VKYXZhSW1wb3J0cyhjb2RlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNvZGVcbiAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAubWFwKChsaW5lKSA9PiB7XG4gICAgICAvLyBSZXBsYWNlIHVzaW5nIGxpbmVzIHdpdGggbGliIGFuZCBwcmVjaWNlcyBpbXBvcnRcbiAgICAgIGNvbnN0IGltcG9ydFdpdGhMaWIgPVxuICAgICAgICAvaW1wb3J0IGdlblxcLnByb3ZpZGVyc1xcLihbXi5dKykoPzpcXC5saWIpP1xcLihbXi5dKylcXC4oLiopOy87XG4gICAgICBjb25zdCBtYXRjaFdpdGhMaWIgPSBsaW5lLm1hdGNoKGltcG9ydFdpdGhMaWIpO1xuICAgICAgaWYgKG1hdGNoV2l0aExpYikge1xuICAgICAgICBjb25zdCBbLCBwcm92aWRlciwgcmVzb3VyY2UsIGNsYXNzTmFtZV0gPSBtYXRjaFdpdGhMaWI7XG4gICAgICAgIHJldHVybiBgaW1wb3J0IGltcG9ydHMuJHtwcm92aWRlcn0uJHtyZXNvdXJjZX0uJHtjbGFzc05hbWV9O2A7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcGxhY2UgdXNpbmcgbGluZXNcbiAgICAgIGNvbnN0IGltcG9ydFdpdGhvdXRMaWIgPSAvaW1wb3J0IGdlblxcLnByb3ZpZGVyc1xcLihbXi5dKylcXC4oW14uXSspXFwuXFwqOy87XG4gICAgICBjb25zdCBtYXRjaFdpdGhvdXRMaWIgPSBsaW5lLm1hdGNoKGltcG9ydFdpdGhvdXRMaWIpO1xuICAgICAgaWYgKG1hdGNoV2l0aG91dExpYikge1xuICAgICAgICBjb25zdCBbLCBwcm92aWRlciwgcmVzb3VyY2VdID0gbWF0Y2hXaXRob3V0TGliO1xuICAgICAgICByZXR1cm4gYGltcG9ydCBpbXBvcnRzLiR7cHJvdmlkZXJ9LiR7cmVzb3VyY2V9Lio7YDtcbiAgICAgIH1cblxuICAgICAgLy8gUmVwbGFjZSB1c2luZyBsaW5lc1xuICAgICAgY29uc3QgaW1wb3J0TW9kdWxlcyA9IC9pbXBvcnQgZ2VuXFwubW9kdWxlc1xcLiguKylcXC5cXCo7LztcbiAgICAgIGNvbnN0IGltcG9ydE1vZHVsZXNNYXRjaCA9IGxpbmUubWF0Y2goaW1wb3J0TW9kdWxlcyk7XG4gICAgICBpZiAoaW1wb3J0TW9kdWxlc01hdGNoKSB7XG4gICAgICAgIGNvbnN0IFssIG1vZHVsZV0gPSBpbXBvcnRNb2R1bGVzTWF0Y2g7XG4gICAgICAgIHJldHVybiBgaW1wb3J0IGltcG9ydHMuJHttb2R1bGV9Lio7YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpbmU7XG4gICAgfSlcbiAgICAuam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VDc2hhcnBJbXBvcnRzKGNvZGU6IHN0cmluZykge1xuICByZXR1cm4gY29kZVxuICAgIC5zcGxpdChcIlxcblwiKVxuICAgIC5tYXAoKGxpbmUpID0+IHtcbiAgICAgIC8vIFJlcGxhY2UgdXNpbmcgbGluZXMgd2l0aCBsaWJcbiAgICAgIGNvbnN0IGZyb21JbXBvcnRMaWJSZWdleCA9XG4gICAgICAgIC91c2luZyBHZW5cXC5Qcm92aWRlcnNcXC4oW14uXSopKD86XFwuTGliKT9cXC4oLiopOy87XG4gICAgICBjb25zdCBtYXRjaCA9IGxpbmUubWF0Y2goZnJvbUltcG9ydExpYlJlZ2V4KTtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBjb25zdCBbLCBwcm92aWRlciwgcmVzb3VyY2VdID0gbWF0Y2g7XG4gICAgICAgIHJldHVybiBgdXNpbmcgJHtsb3dlcmNhc2VGaXJzdENoYXIocHJvdmlkZXIpfS4ke3Jlc291cmNlfTtgO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXBsYWNlIHVzaW5nIGxpbmVzXG4gICAgICBpZiAobGluZS5zdGFydHNXaXRoKFwidXNpbmcgR2VuLlByb3ZpZGVycy5cIikpIHtcbiAgICAgICAgY29uc3QgaW1wb3J0TGluZSA9IGxpbmUucmVwbGFjZShcInVzaW5nIEdlbi5Qcm92aWRlcnMuXCIsIFwiXCIpO1xuXG4gICAgICAgIHJldHVybiBgdXNpbmcgJHtpbXBvcnRMaW5lXG4gICAgICAgICAgLnN1YnN0cmluZygwLCAxKVxuICAgICAgICAgIC50b0xvY2FsZUxvd2VyQ2FzZSgpfSR7aW1wb3J0TGluZS5zdWJzdHJpbmcoMSl9YDtcbiAgICAgIH1cblxuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aChcInVzaW5nIEdlbi5Nb2R1bGVzLlwiKSkge1xuICAgICAgICBjb25zdCBpbXBvcnRMaW5lID0gbGluZS5yZXBsYWNlKFwidXNpbmcgR2VuLk1vZHVsZXMuXCIsIFwiXCIpO1xuXG4gICAgICAgIHJldHVybiBgdXNpbmcgJHtpbXBvcnRMaW5lfWA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsaW5lO1xuICAgIH0pXG4gICAgLmpvaW4oXCJcXG5cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlR29JbXBvcnRzKGNvZGU6IHN0cmluZykge1xuICByZXR1cm4gY29kZVxuICAgIC5zcGxpdChcIlxcblwiKVxuICAgIC5tYXAoKGxpbmUpID0+IHtcbiAgICAgIC8vIFJlcGxhY2UgdXNpbmcgbGluZXMgd2l0aCBsaWJcbiAgICAgIGNvbnN0IGZyb21JbXBvcnRMaWJSZWdleCA9XG4gICAgICAgIC9pbXBvcnQgXCJnaXRodWIuY29tXFwvYXdzLXNhbXBsZXNcXC9kdW1teVxcL2dlblxcL3Byb3ZpZGVyc1xcLyhbXi9dKikoPzpcXC9saWIpP1xcLyguKilcIi87XG4gICAgICBjb25zdCBtYXRjaExpYiA9IGxpbmUubWF0Y2goZnJvbUltcG9ydExpYlJlZ2V4KTtcbiAgICAgIGlmIChtYXRjaExpYikge1xuICAgICAgICBjb25zdCBbLCBwcm92aWRlciwgcmVzb3VyY2VdID0gbWF0Y2hMaWI7XG4gICAgICAgIHJldHVybiBgaW1wb3J0IFwiY2RrLnRmL2dvL3N0YWNrL2dlbmVyYXRlZC8ke3Byb3ZpZGVyfS8ke3Jlc291cmNlfVwiYDtcbiAgICAgIH1cblxuICAgICAgLy8gUmVwbGFjZSB1c2luZyBsaW5lc1xuICAgICAgY29uc3QgZnJvbUltcG9ydFJlZ2V4ID1cbiAgICAgICAgL2ltcG9ydCBcImdpdGh1Yi5jb21cXC9hd3Mtc2FtcGxlc1xcL2R1bW15XFwvZ2VuXFwvcHJvdmlkZXJzXFwvKFteL10rKVxcLyguKilcIi87XG4gICAgICBjb25zdCBtYXRjaCA9IGxpbmUubWF0Y2goZnJvbUltcG9ydFJlZ2V4KTtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBjb25zdCBbLCBwcm92aWRlciwgcmVzb3VyY2VdID0gbWF0Y2g7XG4gICAgICAgIHJldHVybiBgaW1wb3J0IFwiY2RrLnRmL2dvL3N0YWNrL2dlbmVyYXRlZC8ke3Byb3ZpZGVyfS8ke3Jlc291cmNlfVwiYDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW1wb3J0TW9kdWxlc1JlZ2V4ID1cbiAgICAgICAgL2ltcG9ydCAoLiopIFwiZ2l0aHViLmNvbVxcL2F3cy1zYW1wbGVzXFwvZHVtbXlcXC9nZW5cXC9tb2R1bGVzXFwvKC4qKVwiLztcbiAgICAgIGNvbnN0IG1hdGNoTW9kdWxlcyA9IGxpbmUubWF0Y2goaW1wb3J0TW9kdWxlc1JlZ2V4KTtcbiAgICAgIGlmIChtYXRjaE1vZHVsZXMpIHtcbiAgICAgICAgY29uc3QgWywgbmFtZSwgbW9kdWxlXSA9IG1hdGNoTW9kdWxlcztcbiAgICAgICAgcmV0dXJuIGBpbXBvcnQgJHtuYW1lfSBcImNkay50Zi9nby9zdGFjay9nZW5lcmF0ZWQvJHttb2R1bGV9XCJgO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGluZTtcbiAgICB9KVxuICAgIC5qb2luKFwiXFxuXCIpO1xufVxuXG5mdW5jdGlvbiBsb3dlcmNhc2VGaXJzdENoYXIoc3RyOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHN0ci5zdWJzdHJpbmcoMCwgMSkudG9Mb2NhbGVMb3dlckNhc2UoKSArIHN0ci5zdWJzdHJpbmcoMSk7XG59XG4iXX0=
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1yb3NldHRhLXdvcmthcm91bmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2pzaWktcm9zZXR0YS13b3JrYXJvdW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7QUFFbkMsb0RBbUNDO0FBRUQsZ0RBZ0NDO0FBRUQsb0RBK0JDO0FBRUQsNENBaUNDO0FBeklELFNBQWdCLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsT0FBTyxJQUFJO1NBQ1IsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1oscUNBQXFDO1FBQ3JDLE1BQU0sa0JBQWtCLEdBQ3RCLDJEQUEyRCxDQUFDO1FBQzlELElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxNQUFNLGNBQWMsR0FDbEIsOERBQThELENBQUM7UUFDakUsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFFRCw0QkFBNEI7UUFDNUIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELHVCQUF1QjtRQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDO1lBQ2hELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxp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Q0FBQztZQUNqQixNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQ3RDLE9BQU8sVUFBVSxJQUFJLCtCQUErQixNQUFNLEdBQUcsQ0FBQztRQUNoRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsR0FBVztJQUNyQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VQeXRob25JbXBvcnRzKGNvZGU6IHN0cmluZykge1xuICByZXR1cm4gY29kZVxuICAgIC5zcGxpdChcIlxcblwiKVxuICAgIC5tYXAoKGxpbmUpID0+IHtcbiAgICAgIC8vIFJlcGxhY2UgZnJvbS1pbXBvcnQgbGluZXMgd2l0aCBsaWJcbiAgICAgIGNvbnN0IGZyb21JbXBvcnRMaWJSZWdleCA9XG4gICAgICAgIC9mcm9tIFxcLlxcLlxcLmdlblxcLnByb3ZpZGVyc1xcLihbXi5dKykoPzpcXC5saWIpP1xcLiguKikgaW1wb3J0LztcbiAgICAgIGlmIChmcm9tSW1wb3J0TGliUmVnZXgudGVzdChsaW5lKSkge1xuICAgICAgICByZXR1cm4gbGluZS5yZXBsYWNlKGZyb21JbXBvcnRMaWJSZWdleCwgXCJmcm9tIGltcG9ydHMuJDEuJDIgaW1wb3J0XCIpO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXBsYWNlIGltcG9ydCBsaW5lcyB3aXRoIGxpYlxuICAgICAgY29uc3QgaW1wb3J0TGliUmVnZXggPVxuICAgICAgICAvaW1wb3J0IFxcLlxcLlxcLmdlblxcLnByb3ZpZGVyc1xcLihbXi5dKykoPzpcXC5saWIpP1xcLiguKikgYXMgKC4qKS87XG4gICAgICBpZiAoaW1wb3J0TGliUmVnZXgudGVzdChsaW5lKSkge1xuICAgICAgICByZXR1cm4gbGluZS5yZXBsYWNlKGltcG9ydExpYlJlZ2V4LCBcImltcG9ydCBpbXBvcnRzLiQxLiQyIGFzICQzXCIpO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXBsYWNlIGZyb20taW1wb3J0IGxpbmVzXG4gICAgICBpZiAobGluZS5zdGFydHNXaXRoKFwiZnJvbSAuLi5nZW4ucHJvdmlkZXJzLlwiKSkge1xuICAgICAgICByZXR1cm4gbGluZS5yZXBsYWNlKFwiZnJvbSAuLi5nZW4ucHJvdmlkZXJzLlwiLCBcImZyb20gaW1wb3J0cy5cIik7XG4gICAgICB9XG4gICAgICAvLyBSZXBsYWNlIGltcG9ydCBsaW5lc1xuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aChcImltcG9ydCAuLi5nZW4ucHJvdmlkZXJzLlwiKSkge1xuICAgICAgICByZXR1cm4gbGluZS5yZXBsYWNlKFwiaW1wb3J0IC4uLmdlbi5wcm92aWRlcnMuXCIsIFwiaW1wb3J0IGltcG9ydHMuXCIpO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXBsYWNlIG1vZHVsZXNcbiAgICAgIGlmIChsaW5lLnN0YXJ0c1dpdGgoXCJpbXBvcnQgLi4uZ2VuLm1vZHVsZXMuXCIpKSB7XG4gICAgICAgIHJldHVybiBsaW5lLnJlcGxhY2UoXCJpbXBvcnQgLi4uZ2VuLm1vZHVsZXMuXCIsIFwiaW1wb3J0IGltcG9ydHMuXCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGluZTtcbiAgICB9KVxuICAgIC5qb2luKFwiXFxuXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZUphdmFJbXBvcnRzKGNvZGU6IHN0cmluZykge1xuICByZXR1cm4gY29kZVxuICAgIC5zcGxpdChcIlxcblwiKVxuICAgIC5tYXAoKGxpbmUpID0+IHtcbiAgICAgIC8vIFJlcGxhY2UgdXNpbmcgbGluZXMgd2l0aCBsaWIgYW5kIHByZWNpY2VzIGltcG9ydFxuICAgICAgY29uc3QgaW1wb3J0V2l0aExpYiA9XG4gICAgICAgIC9pbXBvcnQgZ2VuXFwucHJvdmlkZXJzXFwuKFteLl0rKSg/OlxcLmxpYik/XFwuKFteLl0rKVxcLiguKik7LztcbiAgICAgIGNvbnN0IG1hdGNoV2l0aExpYiA9IGxpbmUubWF0Y2goaW1wb3J0V2l0aExpYik7XG4gICAgICBpZiAobWF0Y2hXaXRoTGliKSB7XG4gICAgICAgIGNvbnN0IFssIHByb3ZpZGVyLCByZXNvdXJjZSwgY2xhc3NOYW1lXSA9IG1hdGNoV2l0aExpYjtcbiAgICAgICAgcmV0dXJuIGBpbXBvcnQgaW1wb3J0cy4ke3Byb3ZpZGVyfS4ke3Jlc291cmNlfS4ke2NsYXNzTmFtZX07YDtcbiAgICAgIH1cblxuICAgICAgLy8gUmVwbGFjZSB1c2luZyBsaW5lc1xuICAgICAgY29uc3QgaW1wb3J0V2l0aG91dExpYiA9IC9pbXBvcnQgZ2VuXFwucHJvdmlkZXJzXFwuKFteLl0rKVxcLihbXi5dKylcXC5cXCo7LztcbiAgICAgIGNvbnN0IG1hdGNoV2l0aG91dExpYiA9IGxpbmUubWF0Y2goaW1wb3J0V2l0aG91dExpYik7XG4gICAgICBpZiAobWF0Y2hXaXRob3V0TGliKSB7XG4gICAgICAgIGNvbnN0IFssIHByb3ZpZGVyLCByZXNvdXJjZV0gPSBtYXRjaFdpdGhvdXRMaWI7XG4gICAgICAgIHJldHVybiBgaW1wb3J0IGltcG9ydHMuJHtwcm92aWRlcn0uJHtyZXNvdXJjZX0uKjtgO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXBsYWNlIHVzaW5nIGxpbmVzXG4gICAgICBjb25zdCBpbXBvcnRNb2R1bGVzID0gL2ltcG9ydCBnZW5cXC5tb2R1bGVzXFwuKC4rKVxcLlxcKjsvO1xuICAgICAgY29uc3QgaW1wb3J0TW9kdWxlc01hdGNoID0gbGluZS5tYXRjaChpbXBvcnRNb2R1bGVzKTtcbiAgICAgIGlmIChpbXBvcnRNb2R1bGVzTWF0Y2gpIHtcbiAgICAgICAgY29uc3QgWywgbW9kdWxlXSA9IGltcG9ydE1vZHVsZXNNYXRjaDtcbiAgICAgICAgcmV0dXJuIGBpbXBvcnQgaW1wb3J0cy4ke21vZHVsZX0uKjtgO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGluZTtcbiAgICB9KVxuICAgIC5qb2luKFwiXFxuXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZUNzaGFycEltcG9ydHMoY29kZTogc3RyaW5nKSB7XG4gIHJldHVybiBjb2RlXG4gICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgLm1hcCgobGluZSkgPT4ge1xuICAgICAgLy8gUmVwbGFjZSB1c2luZyBsaW5lcyB3aXRoIGxpYlxuICAgICAgY29uc3QgZnJvbUltcG9ydExpYlJlZ2V4ID1cbiAgICAgICAgL3VzaW5nIEdlblxcLlByb3ZpZGVyc1xcLihbXi5dKikoPzpcXC5MaWIpP1xcLiguKik7LztcbiAgICAgIGNvbnN0IG1hdGNoID0gbGluZS5tYXRjaChmcm9tSW1wb3J0TGliUmVnZXgpO1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIGNvbnN0IFssIHByb3ZpZGVyLCByZXNvdXJjZV0gPSBtYXRjaDtcbiAgICAgICAgcmV0dXJuIGB1c2luZyAke2xvd2VyY2FzZUZpcnN0Q2hhcihwcm92aWRlcil9LiR7cmVzb3VyY2V9O2A7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcGxhY2UgdXNpbmcgbGluZXNcbiAgICAgIGlmIChsaW5lLnN0YXJ0c1dpdGgoXCJ1c2luZyBHZW4uUHJvdmlkZXJzLlwiKSkge1xuICAgICAgICBjb25zdCBpbXBvcnRMaW5lID0gbGluZS5yZXBsYWNlKFwidXNpbmcgR2VuLlByb3ZpZGVycy5cIiwgXCJcIik7XG5cbiAgICAgICAgcmV0dXJuIGB1c2luZyAke2ltcG9ydExpbmVcbiAgICAgICAgICAuc3Vic3RyaW5nKDAsIDEpXG4gICAgICAgICAgLnRvTG9jYWxlTG93ZXJDYXNlKCl9JHtpbXBvcnRMaW5lLnN1YnN0cmluZygxKX1gO1xuICAgICAgfVxuXG4gICAgICBpZiAobGluZS5zdGFydHNXaXRoKFwidXNpbmcgR2VuLk1vZHVsZXMuXCIpKSB7XG4gICAgICAgIGNvbnN0IGltcG9ydExpbmUgPSBsaW5lLnJlcGxhY2UoXCJ1c2luZyBHZW4uTW9kdWxlcy5cIiwgXCJcIik7XG5cbiAgICAgICAgcmV0dXJuIGB1c2luZyAke2ltcG9ydExpbmV9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpbmU7XG4gICAgfSlcbiAgICAuam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VHb0ltcG9ydHMoY29kZTogc3RyaW5nKSB7XG4gIHJldHVybiBjb2RlXG4gICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgLm1hcCgobGluZSkgPT4ge1xuICAgICAgLy8gUmVwbGFjZSB1c2luZyBsaW5lcyB3aXRoIGxpYlxuICAgICAgY29uc3QgZnJvbUltcG9ydExpYlJlZ2V4ID1cbiAgICAgICAgL2ltcG9ydCBcImdpdGh1Yi5jb21cXC9hd3Mtc2FtcGxlc1xcL2R1bW15XFwvZ2VuXFwvcHJvdmlkZXJzXFwvKFteL10qKSg/OlxcL2xpYik/XFwvKC4qKVwiLztcbiAgICAgIGNvbnN0IG1hdGNoTGliID0gbGluZS5tYXRjaChmcm9tSW1wb3J0TGliUmVnZXgpO1xuICAgICAgaWYgKG1hdGNoTGliKSB7XG4gICAgICAgIGNvbnN0IFssIHByb3ZpZGVyLCByZXNvdXJjZV0gPSBtYXRjaExpYjtcbiAgICAgICAgcmV0dXJuIGBpbXBvcnQgXCJjZGsudGYvZ28vc3RhY2svZ2VuZXJhdGVkLyR7cHJvdmlkZXJ9LyR7cmVzb3VyY2V9XCJgO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXBsYWNlIHVzaW5nIGxpbmVzXG4gICAgICBjb25zdCBmcm9tSW1wb3J0UmVnZXggPVxuICAgICAgICAvaW1wb3J0IFwiZ2l0aHViLmNvbVxcL2F3cy1zYW1wbGVzXFwvZHVtbXlcXC9nZW5cXC9wcm92aWRlcnNcXC8oW14vXSspXFwvKC4qKVwiLztcbiAgICAgIGNvbnN0IG1hdGNoID0gbGluZS5tYXRjaChmcm9tSW1wb3J0UmVnZXgpO1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIGNvbnN0IFssIHByb3ZpZGVyLCByZXNvdXJjZV0gPSBtYXRjaDtcbiAgICAgICAgcmV0dXJuIGBpbXBvcnQgXCJjZGsudGYvZ28vc3RhY2svZ2VuZXJhdGVkLyR7cHJvdmlkZXJ9LyR7cmVzb3VyY2V9XCJgO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbXBvcnRNb2R1bGVzUmVnZXggPVxuICAgICAgICAvaW1wb3J0ICguKikgXCJnaXRodWIuY29tXFwvYXdzLXNhbXBsZXNcXC9kdW1teVxcL2dlblxcL21vZHVsZXNcXC8oLiopXCIvO1xuICAgICAgY29uc3QgbWF0Y2hNb2R1bGVzID0gbGluZS5tYXRjaChpbXBvcnRNb2R1bGVzUmVnZXgpO1xuICAgICAgaWYgKG1hdGNoTW9kdWxlcykge1xuICAgICAgICBjb25zdCBbLCBuYW1lLCBtb2R1bGVdID0gbWF0Y2hNb2R1bGVzO1xuICAgICAgICByZXR1cm4gYGltcG9ydCAke25hbWV9IFwiY2RrLnRmL2dvL3N0YWNrL2dlbmVyYXRlZC8ke21vZHVsZX1cImA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsaW5lO1xuICAgIH0pXG4gICAgLmpvaW4oXCJcXG5cIik7XG59XG5cbmZ1bmN0aW9uIGxvd2VyY2FzZUZpcnN0Q2hhcihzdHI6IHN0cmluZykge1xuICByZXR1cm4gc3RyLnN1YnN0cmluZygwLCAxKS50b0xvY2FsZUxvd2VyQ2FzZSgpICsgc3RyLnN1YnN0cmluZygxKTtcbn1cbiJdfQ==
|
package/build/partialCode.js
CHANGED
|
@@ -19,15 +19,26 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
19
19
|
}) : function(o, v) {
|
|
20
20
|
o["default"] = v;
|
|
21
21
|
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || function (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
29
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.
|
|
40
|
+
exports.fillWithConfigAccessors = fillWithConfigAccessors;
|
|
41
|
+
exports.getRequiredAttributes = getRequiredAttributes;
|
|
31
42
|
const terraformSchema_1 = require("./terraformSchema");
|
|
32
43
|
const t = __importStar(require("@babel/types"));
|
|
33
44
|
const utils_1 = require("./utils");
|
|
@@ -80,7 +91,6 @@ function fillWithConfigAccessors(scope, config, path) {
|
|
|
80
91
|
return config;
|
|
81
92
|
}
|
|
82
93
|
}
|
|
83
|
-
exports.fillWithConfigAccessors = fillWithConfigAccessors;
|
|
84
94
|
function getRequiredAttributes(attributeType) {
|
|
85
95
|
if (!attributeType) {
|
|
86
96
|
return [];
|
|
@@ -112,5 +122,4 @@ function getRequiredAttributes(attributeType) {
|
|
|
112
122
|
}, []);
|
|
113
123
|
return [...requiredAttributes, ...requiredBlockTypes].sort();
|
|
114
124
|
}
|
|
115
|
-
exports.getRequiredAttributes = getRequiredAttributes;
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbENvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGFydGlhbENvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCx1REFBa0Q7QUFFbEQsZ0RBQWtDO0FBQ2xDLG1DQUFvQztBQUVwQyxTQUFTLGtCQUFrQixDQUN6QixjQUF1QyxFQUN2QyxJQUFZO0lBRVosTUFBTSxhQUFhLEdBQUcsSUFBQSxpQkFBUyxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLGFBQXVCLEVBQUUsSUFBWTtJQUM1RCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsRUFBRSxDQUFDO0lBQ04sQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FDckMsS0FBb0IsRUFDcEIsTUFBOEIsRUFDOUIsSUFBWTtJQUVaLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUks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dGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IGdldFR5cGVBdFBhdGggfSBmcm9tIFwiLi90ZXJyYWZvcm1TY2hlbWFcIjtcbmltcG9ydCB7IFJlc291cmNlU2NvcGUsIFRlcnJhZm9ybVJlc291cmNlQmxvY2sgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0ICogYXMgdCBmcm9tIFwiQGJhYmVsL3R5cGVzXCI7XG5pbXBvcnQgeyBjYW1lbENhc2UgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5mdW5jdGlvbiBnZXRDb25maWdGaWVsZE5hbWUoXG4gIHRvcExldmVsQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgbmFtZTogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IHNhbml0aXplZE5hbWUgPSBjYW1lbENhc2UobmFtZSk7XG4gIHJldHVybiBkZWR1cGxpY2F0ZU5hbWUoT2JqZWN0LmtleXModG9wTGV2ZWxDb25maWcpLCBzYW5pdGl6ZWROYW1lKTtcbn1cblxuZnVuY3Rpb24gZGVkdXBsaWNhdGVOYW1lKGV4aXN0aW5nTmFtZXM6IHN0cmluZ1tdLCBuYW1lOiBzdHJpbmcpIHtcbiAgbGV0IG5ld05hbWUgPSBuYW1lO1xuICBsZXQgaSA9IDE7XG4gIHdoaWxlIChleGlzdGluZ05hbWVzLmluY2x1ZGVzKG5ld05hbWUpKSB7XG4gICAgbmV3TmFtZSA9IGAke25hbWV9JHtpfWA7XG4gICAgaSsrO1xuICB9XG4gIHJldHVybiBuZXdOYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsbFdpdGhDb25maWdBY2Nlc3NvcnMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBjb25maWc6IFRlcnJhZm9ybVJlc291cmNlQmxvY2ssXG4gIHBhdGg6IHN0cmluZyxcbik6IGFueSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZykpIHtcbiAgICByZXR1cm4gY29uZmlnLm1hcCgoYykgPT4gZmlsbFdpdGhDb25maWdBY2Nlc3NvcnMoc2NvcGUsIGMsIGAke3BhdGh9LltdYCkpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjb25maWcgPT09IFwib2JqZWN0XCIgJiYgY29uZmlnICE9PSBudWxsKSB7XG4gICAgY29uc3QgbXV0YXRlZCA9IE9iamVjdC5lbnRyaWVzKGNvbmZpZykucmVkdWNlKFxuICAgICAgKGFjYywgW2tleSwgdmFsdWVdKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtrZXldOiBmaWxsV2l0aENvbmZpZ0FjY2Vzc29ycyhzY29wZSwgdmFsdWUsIGAke3BhdGh9LiR7a2V5fWApLFxuICAgICAgfSksXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBUZXJyYWZvcm1SZXNvdXJjZUJsb2NrPixcbiAgICApO1xuXG4gICAgLy8gR2V0IHR5cGUgb2YgdGhpcyBwYXJ0IG9mIHRoZSBjb25maWdcbiAgICBjb25zdCBhdHRyaWJ1dGVUeXBlID0gZ2V0VHlwZUF0UGF0aChzY29wZS5wcm92aWRlclNjaGVtYSwgcGF0aCk7XG4gICAgY29uc3QgcmVxdWlyZWRBdHRyaWJ1dGVzID0gZ2V0UmVxdWlyZWRBdHRyaWJ1dGVzKGF0dHJpYnV0ZVR5cGUpO1xuXG4gICAgLy8gQWRkIGFjY2Vzc29ycyBmb3IgYWxsIHJlcXVpcmVkIGF0dHJpYnV0ZXMgdGhhdCBhcmUgbWlzc2luZ1xuICAgIHJlcXVpcmVkQXR0cmlidXRlcy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gbXV0YXRlZFtrZXldO1xuICAgICAgY29uc3QgaXNOb3REaXJlY3RseUFjY2Vzc2libGUgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgICAgY29uc3QgaXNSZXBsYWNlZEJ5QXN0ID1cbiAgICAgICAgKHQuaXNOb2RlKG11dGF0ZWQpICYmIHQuaXNFeHByZXNzaW9uKG11dGF0ZWQpKSB8fFxuICAgICAgICB0LmlzRXhwcmVzc2lvbih2YWx1ZSBhcyBhbnkpO1xuICAgICAgY29uc3QgaXNFbXB0eUFycmF5ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwO1xuXG4gICAgICAvLyBJZiB0aGlzIHdhcyBhbHJlYWR5IHJlcGxhY2VkIGJ5IGFuIEFTVCBub2RlLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgICAvLyBXZSBhc3N1bWUgYWxsIGZpZWxkcyBhcmUgZmlsbGVkIGluIGJ5IHRoZSBBU1RcbiAgICAgIGlmIChpc1JlcGxhY2VkQnlBc3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNOb3REaXJlY3RseUFjY2Vzc2libGUgfHwgaXNFbXB0eUFycmF5KSB7XG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGdldENvbmZpZ0ZpZWxkTmFtZShzY29wZS50b3BMZXZlbENvbmZpZywga2V5KTtcbiAgICAgICAgbXV0YXRlZFtrZXldID0gdC5tZW1iZXJFeHByZXNzaW9uKFxuICAgICAgICAgIHQuaWRlbnRpZmllcihcImNvbmZpZ1wiKSxcbiAgICAgICAgICB0LmlkZW50aWZpZXIoZmllbGROYW1lKSxcbiAgICAgICAgKTtcbiAgICAgICAgc2NvcGUudG9wTGV2ZWxDb25maWdbZmllbGROYW1lXSA9IGAke3BhdGh9LiR7a2V5fWA7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbXV0YXRlZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG5cbnR5cGUgS2V5ID0gc3RyaW5nO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlcXVpcmVkQXR0cmlidXRlcyhcbiAgYXR0cmlidXRlVHlwZTogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0VHlwZUF0UGF0aD4sXG4pOiBLZXlbXSB7XG4gIGlmICghYXR0cmlidXRlVHlwZSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBpZiAoXG4gICAgdHlwZW9mIGF0dHJpYnV0ZVR5cGUgIT09IFwib2JqZWN0XCIgfHxcbiAgICBBcnJheS5pc0FycmF5KGF0dHJpYnV0ZVR5cGUpIHx8XG4gICAgYXR0cmlidXRlVHlwZSA9PT0gbnVsbCB8fFxuICAgIGF0dHJpYnV0ZVR5cGUgPT09IHVuZGVmaW5lZCB8fFxuICAgICEoXCJibG9ja1wiIGluIGF0dHJpYnV0ZVR5cGUpXG4gICkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHJlcXVpcmVkQXR0cmlidXRlcyA9IE9iamVjdC5lbnRyaWVzKFxuICAgIGF0dHJpYnV0ZVR5cGUuYmxvY2suYXR0cmlidXRlcyB8fCB7fSxcbiAgKS5yZWR1Y2UoXG4gICAgKGFjYywgW2tleSwgdmFsdWVdKSA9PiAodmFsdWUucmVxdWlyZWQgPyBbLi4uYWNjLCBrZXldIDogYWNjKSxcbiAgICBbXSBhcyBzdHJpbmdbXSxcbiAgKTtcblxuICAvLyBMb2dpYyB0YWtlbiBmcm9tIChhbmQgc2hvdWxkIGJlIHNoYXJlZCB3aXRoKSBwcm92aWRlciBnZW5lcmF0b3IgcmVzb3VyY2UgcGFyc2VyOiBhdHRyaWJ1dGVGb3JCbG9ja1R5cGVcbiAgY29uc3QgcmVxdWlyZWRCbG9ja1R5cGVzID0gT2JqZWN0LmVudHJpZXMoXG4gICAgYXR0cmlidXRlVHlwZS5ibG9jay5ibG9ja190eXBlcyB8fCB7fSxcbiAgKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUubmVzdGluZ19tb2RlID09PSBcInNpbmdsZVwiICYmXG4gICAgICAhT2JqZWN0LnZhbHVlcyh2YWx1ZS5ibG9jay5hdHRyaWJ1dGVzIHx8IHt9KS5zb21lKCh4KSA9PiAheC5yZXF1aXJlZClcbiAgICApIHtcbiAgICAgIHJldHVybiBbLi4uYWNjLCBrZXldO1xuICAgIH1cbiAgICBpZiAodmFsdWUubmVzdGluZ19tb2RlID09PSBcIm1hcFwiKSB7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICh2YWx1ZS5uZXN0aW5nX21vZGUgPT09IFwibGlzdFwiIHx8IHZhbHVlLm5lc3RpbmdfbW9kZSA9PT0gXCJzZXRcIikgJiZcbiAgICAgIHZhbHVlLm1pbl9pdGVtcyA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiAodmFsdWUgYXMgYW55KS5taW5faXRlbXMgPiAwXG4gICAgKSB7XG4gICAgICByZXR1cm4gWy4uLmFjYywga2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSBhcyBzdHJpbmdbXSk7XG4gIHJldHVybiBbLi4ucmVxdWlyZWRBdHRyaWJ1dGVzLCAuLi5yZXF1aXJlZEJsb2NrVHlwZXNdLnNvcnQoKTtcbn1cbiJdfQ==
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbENvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGFydGlhbENvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QkgsMERBbURDO0FBR0Qsc0RBaURDO0FBOUhELHVEQUFrRDtBQUVsRCxnREFBa0M7QUFDbEMsbUNBQW9DO0FBRXBDLFNBQVMsa0JBQWtCLENBQ3pCLGNBQXVDLEVBQ3ZDLElBQVk7SUFFWixNQUFNLGFBQWEsR0FBRyxJQUFBLGlCQUFTLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsT0FBTyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsYUFBdUIsRUFBRSxJQUFZO0lBQzVELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztJQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxFQUFFLENBQUM7SUFDTixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUNyQyxLQUFvQixFQUNwQixNQUE4QixFQUM5QixJQUFZO0lBRVosSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLE9BQU8s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b3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IGdldFR5cGVBdFBhdGggfSBmcm9tIFwiLi90ZXJyYWZvcm1TY2hlbWFcIjtcbmltcG9ydCB7IFJlc291cmNlU2NvcGUsIFRlcnJhZm9ybVJlc291cmNlQmxvY2sgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0ICogYXMgdCBmcm9tIFwiQGJhYmVsL3R5cGVzXCI7XG5pbXBvcnQgeyBjYW1lbENhc2UgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5mdW5jdGlvbiBnZXRDb25maWdGaWVsZE5hbWUoXG4gIHRvcExldmVsQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgbmFtZTogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IHNhbml0aXplZE5hbWUgPSBjYW1lbENhc2UobmFtZSk7XG4gIHJldHVybiBkZWR1cGxpY2F0ZU5hbWUoT2JqZWN0LmtleXModG9wTGV2ZWxDb25maWcpLCBzYW5pdGl6ZWROYW1lKTtcbn1cblxuZnVuY3Rpb24gZGVkdXBsaWNhdGVOYW1lKGV4aXN0aW5nTmFtZXM6IHN0cmluZ1tdLCBuYW1lOiBzdHJpbmcpIHtcbiAgbGV0IG5ld05hbWUgPSBuYW1lO1xuICBsZXQgaSA9IDE7XG4gIHdoaWxlIChleGlzdGluZ05hbWVzLmluY2x1ZGVzKG5ld05hbWUpKSB7XG4gICAgbmV3TmFtZSA9IGAke25hbWV9JHtpfWA7XG4gICAgaSsrO1xuICB9XG4gIHJldHVybiBuZXdOYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsbFdpdGhDb25maWdBY2Nlc3NvcnMoXG4gIHNjb3BlOiBSZXNvdXJjZVNjb3BlLFxuICBjb25maWc6IFRlcnJhZm9ybVJlc291cmNlQmxvY2ssXG4gIHBhdGg6IHN0cmluZyxcbik6IGFueSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZykpIHtcbiAgICByZXR1cm4gY29uZmlnLm1hcCgoYykgPT4gZmlsbFdpdGhDb25maWdBY2Nlc3NvcnMoc2NvcGUsIGMsIGAke3BhdGh9LltdYCkpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjb25maWcgPT09IFwib2JqZWN0XCIgJiYgY29uZmlnICE9PSBudWxsKSB7XG4gICAgY29uc3QgbXV0YXRlZCA9IE9iamVjdC5lbnRyaWVzKGNvbmZpZykucmVkdWNlKFxuICAgICAgKGFjYywgW2tleSwgdmFsdWVdKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtrZXldOiBmaWxsV2l0aENvbmZpZ0FjY2Vzc29ycyhzY29wZSwgdmFsdWUsIGAke3BhdGh9LiR7a2V5fWApLFxuICAgICAgfSksXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBUZXJyYWZvcm1SZXNvdXJjZUJsb2NrPixcbiAgICApO1xuXG4gICAgLy8gR2V0IHR5cGUgb2YgdGhpcyBwYXJ0IG9mIHRoZSBjb25maWdcbiAgICBjb25zdCBhdHRyaWJ1dGVUeXBlID0gZ2V0VHlwZUF0UGF0aChzY29wZS5wcm92aWRlclNjaGVtYSwgcGF0aCk7XG4gICAgY29uc3QgcmVxdWlyZWRBdHRyaWJ1dGVzID0gZ2V0UmVxdWlyZWRBdHRyaWJ1dGVzKGF0dHJpYnV0ZVR5cGUpO1xuXG4gICAgLy8gQWRkIGFjY2Vzc29ycyBmb3IgYWxsIHJlcXVpcmVkIGF0dHJpYnV0ZXMgdGhhdCBhcmUgbWlzc2luZ1xuICAgIHJlcXVpcmVkQXR0cmlidXRlcy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gbXV0YXRlZFtrZXldO1xuICAgICAgY29uc3QgaXNOb3REaXJlY3RseUFjY2Vzc2libGUgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgICAgY29uc3QgaXNSZXBsYWNlZEJ5QXN0ID1cbiAgICAgICAgKHQuaXNOb2RlKG11dGF0ZWQpICYmIHQuaXNFeHByZXNzaW9uKG11dGF0ZWQpKSB8fFxuICAgICAgICB0LmlzRXhwcmVzc2lvbih2YWx1ZSBhcyBhbnkpO1xuICAgICAgY29uc3QgaXNFbXB0eUFycmF5ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwO1xuXG4gICAgICAvLyBJZiB0aGlzIHdhcyBhbHJlYWR5IHJlcGxhY2VkIGJ5IGFuIEFTVCBub2RlLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgICAvLyBXZSBhc3N1bWUgYWxsIGZpZWxkcyBhcmUgZmlsbGVkIGluIGJ5IHRoZSBBU1RcbiAgICAgIGlmIChpc1JlcGxhY2VkQnlBc3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNOb3REaXJlY3RseUFjY2Vzc2libGUgfHwgaXNFbXB0eUFycmF5KSB7XG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGdldENvbmZpZ0ZpZWxkTmFtZShzY29wZS50b3BMZXZlbENvbmZpZywga2V5KTtcbiAgICAgICAgbXV0YXRlZFtrZXldID0gdC5tZW1iZXJFeHByZXNzaW9uKFxuICAgICAgICAgIHQuaWRlbnRpZmllcihcImNvbmZpZ1wiKSxcbiAgICAgICAgICB0LmlkZW50aWZpZXIoZmllbGROYW1lKSxcbiAgICAgICAgKTtcbiAgICAgICAgc2NvcGUudG9wTGV2ZWxDb25maWdbZmllbGROYW1lXSA9IGAke3BhdGh9LiR7a2V5fWA7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbXV0YXRlZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG5cbnR5cGUgS2V5ID0gc3RyaW5nO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlcXVpcmVkQXR0cmlidXRlcyhcbiAgYXR0cmlidXRlVHlwZTogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0VHlwZUF0UGF0aD4sXG4pOiBLZXlbXSB7XG4gIGlmICghYXR0cmlidXRlVHlwZSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBpZiAoXG4gICAgdHlwZW9mIGF0dHJpYnV0ZVR5cGUgIT09IFwib2JqZWN0XCIgfHxcbiAgICBBcnJheS5pc0FycmF5KGF0dHJpYnV0ZVR5cGUpIHx8XG4gICAgYXR0cmlidXRlVHlwZSA9PT0gbnVsbCB8fFxuICAgIGF0dHJpYnV0ZVR5cGUgPT09IHVuZGVmaW5lZCB8fFxuICAgICEoXCJibG9ja1wiIGluIGF0dHJpYnV0ZVR5cGUpXG4gICkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHJlcXVpcmVkQXR0cmlidXRlcyA9IE9iamVjdC5lbnRyaWVzKFxuICAgIGF0dHJpYnV0ZVR5cGUuYmxvY2suYXR0cmlidXRlcyB8fCB7fSxcbiAgKS5yZWR1Y2UoXG4gICAgKGFjYywgW2tleSwgdmFsdWVdKSA9PiAodmFsdWUucmVxdWlyZWQgPyBbLi4uYWNjLCBrZXldIDogYWNjKSxcbiAgICBbXSBhcyBzdHJpbmdbXSxcbiAgKTtcblxuICAvLyBMb2dpYyB0YWtlbiBmcm9tIChhbmQgc2hvdWxkIGJlIHNoYXJlZCB3aXRoKSBwcm92aWRlciBnZW5lcmF0b3IgcmVzb3VyY2UgcGFyc2VyOiBhdHRyaWJ1dGVGb3JCbG9ja1R5cGVcbiAgY29uc3QgcmVxdWlyZWRCbG9ja1R5cGVzID0gT2JqZWN0LmVudHJpZXMoXG4gICAgYXR0cmlidXRlVHlwZS5ibG9jay5ibG9ja190eXBlcyB8fCB7fSxcbiAgKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUubmVzdGluZ19tb2RlID09PSBcInNpbmdsZVwiICYmXG4gICAgICAhT2JqZWN0LnZhbHVlcyh2YWx1ZS5ibG9jay5hdHRyaWJ1dGVzIHx8IHt9KS5zb21lKCh4KSA9PiAheC5yZXF1aXJlZClcbiAgICApIHtcbiAgICAgIHJldHVybiBbLi4uYWNjLCBrZXldO1xuICAgIH1cbiAgICBpZiAodmFsdWUubmVzdGluZ19tb2RlID09PSBcIm1hcFwiKSB7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICh2YWx1ZS5uZXN0aW5nX21vZGUgPT09IFwibGlzdFwiIHx8IHZhbHVlLm5lc3RpbmdfbW9kZSA9PT0gXCJzZXRcIikgJiZcbiAgICAgIHZhbHVlLm1pbl9pdGVtcyA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiAodmFsdWUgYXMgYW55KS5taW5faXRlbXMgPiAwXG4gICAgKSB7XG4gICAgICByZXR1cm4gWy4uLmFjYywga2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSBhcyBzdHJpbmdbXSk7XG4gIHJldHVybiBbLi4ucmVxdWlyZWRBdHRyaWJ1dGVzLCAuLi5yZXF1aXJlZEJsb2NrVHlwZXNdLnNvcnQoKTtcbn1cbiJdfQ==
|