@kontur.candy/tools 2.130.2 → 2.131.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +6 -6
- package/distr/Common/CandyApiClient/CandyApiClient.js +52 -2
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +17 -1
- package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +11 -0
- package/distr/Common/HttpClient/HttpClient.js +14 -2
- package/distr/Common/IterableUtils.js +6 -1
- package/distr/Common/ModelPath/Map/Map2.js +5 -45
- package/distr/Common/ModelPath/ModelPath.js +26 -1
- package/distr/Common/ModelPath/ModelPathHelper.js +13 -0
- package/distr/Common/ModelPath/PathSplitHelper.js +26 -0
- package/distr/Tools/src/BuildTasks/ReadFormSource.js +2 -1
- package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +7 -7
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +3 -5
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +1 -1
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +56 -8
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +5 -4
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +957 -2596
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +53 -38
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/package.json +9 -9
|
@@ -15,16 +15,14 @@ var _webpackDevServer = _interopRequireDefault(require("webpack-dev-server"));
|
|
|
15
15
|
|
|
16
16
|
var _AsyncUtils = require("../../../../../../Common/AsyncUtils");
|
|
17
17
|
|
|
18
|
-
var _StaticLogger = require("../../../../Commons/Logging/StaticLogger");
|
|
19
|
-
|
|
20
18
|
var _createFormWebpackConfiguration = require("../../../../FormWebpackConfiguration/createFormWebpackConfiguration");
|
|
21
19
|
|
|
22
20
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
21
|
|
|
24
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
23
|
|
|
26
|
-
async function runFormCompilationViaWebpackDevServer(gfv, farmDirectory, resourcesDirectory, resourcesHash, buildDebugOnly, fileSystem, port
|
|
27
|
-
const configs = (0, _createFormWebpackConfiguration.createConfig)({
|
|
24
|
+
async function runFormCompilationViaWebpackDevServer(gfv, farmDirectory, resourcesDirectory, resourcesHash, buildDebugOnly, fileSystem, port) {
|
|
25
|
+
const configs = await (0, _createFormWebpackConfiguration.createConfig)({
|
|
28
26
|
gfv: gfv,
|
|
29
27
|
resourcesHash: resourcesHash,
|
|
30
28
|
formsDirectoryPath: path.join(farmDirectory, "forms"),
|
|
@@ -63,4 +61,4 @@ async function runFormCompilationViaWebpackDevServer(gfv, farmDirectory, resourc
|
|
|
63
61
|
server.listen(port);
|
|
64
62
|
await (0, _AsyncUtils.delay)(1000);
|
|
65
63
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL1J1bkZvcm1Db21waWxhdGlvblZpYVdlYnBhY2tEZXZTZXJ2ZXIudHMiXSwibmFtZXMiOlsicnVuRm9ybUNvbXBpbGF0aW9uVmlhV2VicGFja0RldlNlcnZlciIsImdmdiIsImZhcm1EaXJlY3RvcnkiLCJyZXNvdXJjZXNEaXJlY3RvcnkiLCJyZXNvdXJjZXNIYXNoIiwiYnVpbGREZWJ1Z09ubHkiLCJmaWxlU3lzdGVtIiwicG9ydCIsImNvbmZpZ3MiLCJmb3Jtc0RpcmVjdG9yeVBhdGgiLCJwYXRoIiwiam9pbiIsIm1vZGVzIiwicmVzb3VyY2VzRGlyZWN0b3J5UGF0aCIsImNvbXBpbGVyIiwiaW5wdXRGaWxlU3lzdGVtIiwiY29tcGlsZXJzIiwic2V0SW5uZXJJbnB1dEZpbGVTeXN0ZW0iLCJzaW5nbGVDb21waWxlciIsIndhdGNoRmlsZVN5c3RlbSIsInNlcnZlciIsIldlYnBhY2tEZXZTZXJ2ZXIiLCJhbGxvd2VkSG9zdHMiLCJ0eXBlIiwib3B0aW9ucyIsImNlcnQiLCJyZXF1aXJlIiwicmVzb2x2ZSIsImtleSIsImNsaWVudCIsIm92ZXJsYXkiLCJ3ZWJTb2NrZXRVUkwiLCJsaXN0ZW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOzs7Ozs7QUFJTyxlQUFlQSxxQ0FBZixDQUNIQyxHQURHLEVBRUhDLGFBRkcsRUFHSEMsa0JBSEcsRUFJSEMsYUFKRyxFQUtIQyxjQUxHLEVBTUhDLFVBTkcsRUFPSEMsSUFQRyxFQVFVO0FBQ2IsUUFBTUMsT0FBTyxHQUFHLE1BQU0sa0RBQWE7QUFDL0JQLElBQUFBLEdBQUcsRUFBRUEsR0FEMEI7QUFFL0JHLElBQUFBLGFBQWEsRUFBRUEsYUFGZ0I7QUFHL0JLLElBQUFBLGtCQUFrQixFQUFFQyxJQUFJLENBQUNDLElBQUwsQ0FBVVQsYUFBVixFQUF5QixPQUF6QixDQUhXO0FBSS9CVSxJQUFBQSxLQUFLLEVBQUVQLGNBQWMsR0FBRyxDQUFDLGFBQUQsQ0FBSCxHQUFxQixDQUFDLFlBQUQsRUFBZSxhQUFmLENBSlg7QUFLL0JRLElBQUFBLHNCQUFzQixFQUFFVjtBQUxPLEdBQWIsQ0FBdEI7QUFRQSxRQUFNVyxRQUFRLEdBQUcsc0JBQVFOLE9BQVIsQ0FBakIsQ0FUYSxDQVViO0FBQ0E7O0FBQ0EsUUFBTU8sZUFBZSxHQUFHRCxRQUFRLENBQUNFLFNBQVQsQ0FBbUIsQ0FBbkIsRUFBc0JELGVBQTlDLENBWmEsQ0FhYjs7QUFDQVQsRUFBQUEsVUFBVSxDQUFDVyx1QkFBWCxDQUFtQ0YsZUFBbkMsRUFkYSxDQWViOztBQUNBLE9BQUssTUFBTUcsY0FBWCxJQUE2QkosUUFBUSxDQUFDRSxTQUF0QyxFQUEwRDtBQUN0REUsSUFBQUEsY0FBYyxDQUFDSCxlQUFmLEdBQWlDVCxVQUFqQztBQUNBWSxJQUFBQSxjQUFjLENBQUNDLGVBQWYsR0FBaUNiLFVBQWpDO0FBQ0gsR0FuQlksQ0FvQmI7QUFFQTs7O0FBQ0EsUUFBTWMsTUFBTSxHQUFHLElBQUlDLHlCQUFKLENBQ1g7QUFDSWQsSUFBQUEsSUFBSSxFQUFFQSxJQURWO0FBRUllLElBQUFBLFlBQVksRUFBRSxLQUZsQjtBQUdJRixJQUFBQSxNQUFNLEVBQUU7QUFDSkcsTUFBQUEsSUFBSSxFQUFFLE9BREY7QUFFSkMsTUFBQUEsT0FBTyxFQUFFO0FBQ0xDLFFBQUFBLElBQUksRUFBRUMsT0FBTyxDQUFDQyxPQUFSLGtDQUREO0FBRUxDLFFBQUFBLEdBQUcsRUFBRUYsT0FBTyxDQUFDQyxPQUFSO0FBRkE7QUFGTCxLQUhaO0FBVUlFLElBQUFBLE1BQU0sRUFBRTtBQUNKQyxNQUFBQSxPQUFPLEVBQUUsS0FETDtBQUVKQyxNQUFBQSxZQUFZLEVBQUcsaUNBQWdDeEIsSUFBSztBQUZoRDtBQVZaLEdBRFcsRUFnQlhPLFFBaEJXLENBQWY7QUFrQkFNLEVBQUFBLE1BQU0sQ0FBQ1ksTUFBUCxDQUFjekIsSUFBZDtBQUNBLFFBQU0sdUJBQU0sSUFBTixDQUFOO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB3ZWJwYWNrIGZyb20gXCJ3ZWJwYWNrXCI7XG5pbXBvcnQgV2VicGFja0RldlNlcnZlciBmcm9tIFwid2VicGFjay1kZXYtc2VydmVyXCI7XG5cbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL0NvbW1vbi9Bc3luY1V0aWxzXCI7XG5pbXBvcnQgeyBjcmVhdGVDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vRm9ybVdlYnBhY2tDb25maWd1cmF0aW9uL2NyZWF0ZUZvcm1XZWJwYWNrQ29uZmlndXJhdGlvblwiO1xuXG5pbXBvcnQgeyBXZWJwYWNrSHlicmlkRmlsZVN5c3RlbSB9IGZyb20gXCIuL1dlYnBhY2tJbk1lbW9yeVV0aWxzL1dlYnBhY2tIeWJyaWRGaWxlU3lzdGVtXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5Gb3JtQ29tcGlsYXRpb25WaWFXZWJwYWNrRGV2U2VydmVyKFxuICAgIGdmdjogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICByZXNvdXJjZXNIYXNoOiBzdHJpbmcsXG4gICAgYnVpbGREZWJ1Z09ubHk6IGJvb2xlYW4sXG4gICAgZmlsZVN5c3RlbTogV2VicGFja0h5YnJpZEZpbGVTeXN0ZW0sXG4gICAgcG9ydDogbnVtYmVyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb25maWdzID0gYXdhaXQgY3JlYXRlQ29uZmlnKHtcbiAgICAgICAgZ2Z2OiBnZnYsXG4gICAgICAgIHJlc291cmNlc0hhc2g6IHJlc291cmNlc0hhc2gsXG4gICAgICAgIGZvcm1zRGlyZWN0b3J5UGF0aDogcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiksXG4gICAgICAgIG1vZGVzOiBidWlsZERlYnVnT25seSA/IFtcImRldmVsb3BtZW50XCJdIDogW1wicHJvZHVjdGlvblwiLCBcImRldmVsb3BtZW50XCJdLFxuICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnlQYXRoOiByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21waWxlciA9IHdlYnBhY2soY29uZmlncyk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QgaW5wdXRGaWxlU3lzdGVtID0gY29tcGlsZXIuY29tcGlsZXJzWzBdLmlucHV0RmlsZVN5c3RlbSBhcyBhbnk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcbiAgICBmaWxlU3lzdGVtLnNldElubmVySW5wdXRGaWxlU3lzdGVtKGlucHV0RmlsZVN5c3RlbSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBmb3IgKGNvbnN0IHNpbmdsZUNvbXBpbGVyIG9mIGNvbXBpbGVyLmNvbXBpbGVycyBhcyBhbnlbXSkge1xuICAgICAgICBzaW5nbGVDb21waWxlci5pbnB1dEZpbGVTeXN0ZW0gPSBmaWxlU3lzdGVtO1xuICAgICAgICBzaW5nbGVDb21waWxlci53YXRjaEZpbGVTeXN0ZW0gPSBmaWxlU3lzdGVtO1xuICAgIH1cbiAgICAvLyB0c2xpbnQ6ZW5hYmxlIG5vLWFueSBuby11bnNhZmUtYW55XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3Qgc2VydmVyID0gbmV3IFdlYnBhY2tEZXZTZXJ2ZXIoXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBvcnQ6IHBvcnQsXG4gICAgICAgICAgICBhbGxvd2VkSG9zdHM6IFwiYWxsXCIsXG4gICAgICAgICAgICBzZXJ2ZXI6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImh0dHBzXCIsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBjZXJ0OiByZXF1aXJlLnJlc29sdmUoXCIuLi8uLi8uLi8uLi9LZXlzL2xvY2FsaG9zdC5wZW1cIiksXG4gICAgICAgICAgICAgICAgICAgIGtleTogcmVxdWlyZS5yZXNvbHZlKFwiLi4vLi4vLi4vLi4vS2V5cy9sb2NhbGhvc3Qta2V5LnBlbVwiKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsaWVudDoge1xuICAgICAgICAgICAgICAgIG92ZXJsYXk6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHdlYlNvY2tldFVSTDogYHdzczovL2xvY2FsaG9zdC50ZXN0a29udHVyLnJ1OiR7cG9ydH0vd3NgLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGlsZXJcbiAgICApO1xuICAgIHNlcnZlci5saXN0ZW4ocG9ydCk7XG4gICAgYXdhaXQgZGVsYXkoMTAwMCk7XG59XG4iXX0=
|
|
@@ -183,4 +183,4 @@ function toOptionDefinition(x) {
|
|
|
183
183
|
|
|
184
184
|
return result;
|
|
185
185
|
}
|
|
186
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Db21tb25zL09wdGlvbnMvQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlci5qcyJdLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbiIsImRlZnMiLCJjb21tYW5kRGVmaW5pdGlvbiIsIm5hbWUiLCJ0eXBlIiwib3B0aW9ucyIsImNvbW1hbmRPcHRpb25zIiwidHlwZVZhbHVlIiwiY29tbWFuZHNEZWZpbml0aW9uIiwiSW52YWxpZENvbW1hbmRMaW5lQXJndW1lbnRzRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsInVzYWdlVGV4dCIsIkNvbW1hbmRMaW5lQXJndW1lbnRzSGVscFJlcXVlc3RlZEVycm9yIiwiYnVpbGRDb21tYW5kQmFzZWRPcHRpb25zUGFyc2VyIiwiY29tbWFuZERlZmluaXRpb25zIiwicGFyc2VDb21tYW5kTGluZUFyZ3MiLCJhcmdzIiwiZGVmYXVsdE9wdGlvbiIsImRlZmF1bHRWYWx1ZSIsImFyZ3YiLCJzdG9wQXRGaXJzdFVua25vd24iLCJjb21tYW5kIiwiZ2V0Q29tbWFuZExpc3RVc2FnZSIsImZpbmQiLCJ4IiwidW5kZWZpbmVkIiwiY29tbWFuZEFyZ3MiLCJfdW5rbm93biIsInBhdGNoZWRPcHRpb25EZWZpbml0aW9ucyIsIm1hcCIsInRvT3B0aW9uRGVmaW5pdGlvbiIsImFsaWFzIiwiQm9vbGVhbiIsInBhcnNlZENvbW1hbmRPcHRpb25zIiwiZ2V0Q29tbWFuZFVzYWdlIiwicmVzdWx0Iiwib3B0aW9uRGVmaW5pdGlvbiIsIm5ld1ZhciIsIm11bHRpcGxlIiwiZGVmYXVsdFZhbHVlTWFya2VyIiwicGFyc2UiLCJlIiwiaGVhZGVyIiwiY29tbWFuZE5hbWUiLCJjb250ZW50IiwiY29tbWFuZERlc2NyaXB0aW9uIiwidXNhZ2VTdHJpbmciLCJzdW1tYXJ5IiwiZGVzY3JpcHRpb24iLCJvcHRpb25MaXN0IiwiX19ERUZBVUxUX18iLCJkb2VzTm90UmVxdWlyZVZhbHVlIl0s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RXpDLE9BQU8sQ0FBQzZDO0FBRm5CLEtBRHNCLEVBS3RCO0FBQ0VOLE1BQUFBLE1BQU0sRUFBRSxjQURWO0FBRUVPLE1BQUFBLFVBQVUsRUFBRSxDQUNWLEdBQUdqRCxpQkFBaUIsQ0FBQ0csT0FEWCxFQUVWO0FBQ0VGLFFBQUFBLElBQUksRUFBRSxNQURSO0FBRUU4QixRQUFBQSxLQUFLLEVBQUUsR0FGVDtBQUdFaUIsUUFBQUEsV0FBVyxFQUFFLG1DQUhmO0FBSUU5QyxRQUFBQSxJQUFJLEVBQUU4QjtBQUpSLE9BRlU7QUFGZCxLQUxzQixDQUFqQixDQUFQO0FBa0JEOztBQUVEakIsRUFBQUEsb0JBQW9CLENBQUNPLG1CQUFyQixHQUEyQ0EsbUJBQTNDO0FBQ0FQLEVBQUFBLG9CQUFvQixDQUFDbUIsZUFBckIsR0FBdUNBLGVBQXZDO0FBRUEsU0FBT25CLG9CQUFQO0FBQ0Q7O0FBRUQsTUFBTXdCLGtCQUFrQixHQUFHO0FBQUVXLEVBQUFBLFdBQVcsRUFBRTtBQUFmLENBQTNCOztBQUVBLFNBQVNwQixrQkFBVCxDQUE0Qk4sQ0FBNUIsRUFBK0I7QUFDN0IsTUFBSVcsTUFBTSxHQUFHO0FBQ1hsQyxJQUFBQSxJQUFJLEVBQUV1QixDQUFDLENBQUN2QixJQURHO0FBRVhpQixJQUFBQSxZQUFZLEVBQUVxQixrQkFGSDtBQUdYRCxJQUFBQSxRQUFRLEVBQUVkLENBQUMsQ0FBQ2MsUUFIRDtBQUlYckIsSUFBQUEsYUFBYSxFQUFFTyxDQUFDLENBQUNQLGFBSk47QUFLWGMsSUFBQUEsS0FBSyxFQUFFUCxDQUFDLENBQUNPO0FBTEUsR0FBYjs7QUFPQSxNQUFJUCxDQUFDLENBQUMyQixtQkFBTixFQUEyQjtBQUN6QmhCLElBQUFBLE1BQU0sQ0FBQ2pDLElBQVAsR0FBYzhCLE9BQWQ7QUFDRDs7QUFDRCxTQUFPRyxNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiO1xuaW1wb3J0IGNvbW1hbmRMaW5lVXNhZ2UgZnJvbSBcImNvbW1hbmQtbGluZS11c2FnZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gb3B0aW9uc0RlZmluaXRpb24oLi4uZGVmcykge1xuICByZXR1cm4gZGVmcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmREZWZpbml0aW9uKG5hbWUsIHR5cGUsIG9wdGlvbnMsIGNvbW1hbmRPcHRpb25zKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogbmFtZSxcbiAgICB0eXBlVmFsdWU6IHR5cGUsXG4gICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAuLi5jb21tYW5kT3B0aW9ucyxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmRzRGVmaW5pdGlvbiguLi5kZWZzKSB7XG4gIHJldHVybiBkZWZzO1xufVxuXG5leHBvcnQgY2xhc3MgSW52YWxpZENvbW1hbmRMaW5lQXJndW1lbnRzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIHVzYWdlVGV4dCkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMudXNhZ2VUZXh0ID0gdXNhZ2VUZXh0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21tYW5kTGluZUFyZ3VtZW50c0hlbHBSZXF1ZXN0ZWRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IodXNhZ2VUZXh0KSB7XG4gICAgc3VwZXIoXCJcIik7XG4gICAgdGhpcy51c2FnZVRleHQgPSB1c2FnZVRleHQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlcihjb21tYW5kRGVmaW5pdGlvbnMsIG9wdGlvbnMpIHtcbiAgZnVuY3Rpb24gcGFyc2VDb21tYW5kTGluZUFyZ3MoYXJncykge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3MoW3sgbmFtZTogXCJjb21tYW5kXCIsIGRlZmF1bHRPcHRpb246IHRydWUsIGRlZmF1bHRWYWx1ZTogXCJoZWxwXCIgfV0sIHtcbiAgICAgIGFyZ3Y6IGFyZ3MsXG4gICAgICBzdG9wQXRGaXJzdFVua25vd246IHRydWUsXG4gICAgfSk7XG4gICAgaWYgKG9wdGlvbnMuY29tbWFuZCA9PT0gXCJoZWxwXCIpIHtcbiAgICAgIHRocm93IG5ldyBDb21tYW5kTGluZUFyZ3VtZW50c0hlbHBSZXF1ZXN0ZWRFcnJvcihnZXRDb21tYW5kTGlzdFVzYWdlKCkpO1xuICAgIH1cbiAgICBjb25zdCBjb21tYW5kRGVmaW5pdGlvbiA9IGNvbW1hbmREZWZpbml0aW9ucy5maW5kKHggPT4geC5uYW1lID09PSBvcHRpb25zLmNvbW1hbmQpO1xuICAgIGlmIChjb21tYW5kRGVmaW5pdGlvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29tbWFuZExpbmVBcmd1bWVudHNFcnJvcihg0JrQvtC80LDQvdC00LAg0L3QtSDQvdCw0LnQtNC10L3QsDogJHtvcHRpb25zLmNvbW1hbmR9LmAsIGdldENvbW1hbmRMaXN0VXNhZ2UoKSk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbW1hbmRBcmdzID0gb3B0aW9ucy5fdW5rbm93biB8fCBbXTtcbiAgICAgIGxldCBwYXRjaGVkT3B0aW9uRGVmaW5pdGlvbnMgPSBbXG4gICAgICAgIC4uLmNvbW1hbmREZWZpbml0aW9uLm9wdGlvbnMubWFwKHRvT3B0aW9uRGVmaW5pdGlvbiksXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImhlbHBcIixcbiAgICAgICAgICBhbGlhczogXCJoXCIsXG4gICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgICBjb25zdCBwYXJzZWRDb21tYW5kT3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhwYXRjaGVkT3B0aW9uRGVmaW5pdGlvbnMsIHtcbiAgICAgICAgYXJndjogY29tbWFuZEFyZ3MsXG4gICAgICB9KTtcbiAgICAgIGlmIChwYXJzZWRDb21tYW5kT3B0aW9uc1tcImhlbHBcIl0pIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1hbmRMaW5lQXJndW1lbnRzSGVscFJlcXVlc3RlZEVycm9yKGdldENvbW1hbmRVc2FnZShjb21tYW5kRGVmaW5pdGlvbi5uYW1lKSk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIHR5cGU6IGNvbW1hbmREZWZpbml0aW9uLnR5cGVWYWx1ZSxcbiAgICAgICAgb3B0aW9uczoge30sXG4gICAgICB9O1xuICAgICAgZm9yIChjb25zdCBvcHRpb25EZWZpbml0aW9uIG9mIGNvbW1hbmREZWZpbml0aW9uLm9wdGlvbnMpIHtcbiAgICAgICAgbGV0IG5ld1ZhcjtcbiAgICAgICAgaWYgKG9wdGlvbkRlZmluaXRpb24ubXVsdGlwbGUpIHtcbiAgICAgICAgICBuZXdWYXIgPVxuICAgICAgICAgICAgcGFyc2VkQ29tbWFuZE9wdGlvbnNbb3B0aW9uRGVmaW5pdGlvbi5uYW1lXVswXSA9PT0gZGVmYXVsdFZhbHVlTWFya2VyXG4gICAgICAgICAgICAgID8gb3B0aW9uRGVmaW5pdGlvbi5kZWZhdWx0VmFsdWVcbiAgICAgICAgICAgICAgOiBvcHRpb25EZWZpbml0aW9uLnBhcnNlKHBhcnNlZENvbW1hbmRPcHRpb25zW29wdGlvbkRlZmluaXRpb24ubmFtZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1ZhciA9XG4gICAgICAgICAgICBwYXJzZWRDb21tYW5kT3B0aW9uc1tvcHRpb25EZWZpbml0aW9uLm5hbWVdID09PSBkZWZhdWx0VmFsdWVNYXJrZXJcbiAgICAgICAgICAgICAgPyBvcHRpb25EZWZpbml0aW9uLmRlZmF1bHRWYWx1ZVxuICAgICAgICAgICAgICA6IG9wdGlvbkRlZmluaXRpb24ucGFyc2UocGFyc2VkQ29tbWFuZE9wdGlvbnNbb3B0aW9uRGVmaW5pdGlvbi5uYW1lXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0Lm9wdGlvbnMgPSB7XG4gICAgICAgICAgLi4ucmVzdWx0Lm9wdGlvbnMsXG4gICAgICAgICAgLi4ubmV3VmFyLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIENvbW1hbmRMaW5lQXJndW1lbnRzSGVscFJlcXVlc3RlZEVycm9yKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBjb25zdCBtZXNzYWdlID0gZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZTtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29tbWFuZExpbmVBcmd1bWVudHNFcnJvcihtZXNzYWdlLCBnZXRDb21tYW5kVXNhZ2UoY29tbWFuZERlZmluaXRpb24ubmFtZSkpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGdldENvbW1hbmRMaXN0VXNhZ2UoKSB7XG4gICAgcmV0dXJuIGNvbW1hbmRMaW5lVXNhZ2UoW1xuICAgICAge1xuICAgICAgICBoZWFkZXI6IG9wdGlvbnMuY29tbWFuZE5hbWUsXG4gICAgICAgIGNvbnRlbnQ6IG9wdGlvbnMuY29tbWFuZERlc2NyaXB0aW9uLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcItCY0YHQv9C+0LvRjNC30L7QstCw0L3QuNC1XCIsXG4gICAgICAgIGNvbnRlbnQ6IG9wdGlvbnMudXNhZ2VTdHJpbmcgfHwgYCR7b3B0aW9ucy5jb21tYW5kTmFtZX0gW9C60L7QvNCw0L3QtNCwXSBb0L7Qv9GG0LjQuC4uLl1gLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcItCh0L/QuNGB0L7QuiDQutC+0LzQsNC90LRcIixcbiAgICAgICAgY29udGVudDogW1xuICAgICAgICAgIC4uLmNvbW1hbmREZWZpbml0aW9ucy5tYXAoeCA9PiAoe1xuICAgICAgICAgICAgbmFtZTogeC5uYW1lLFxuICAgICAgICAgICAgc3VtbWFyeTogeC5kZXNjcmlwdGlvbixcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgeyBuYW1lOiBcImhlbHBcIiwgc3VtbWFyeTogXCLQktGL0LLQvtC00LjRgiDRjdGC0L7RgiDRgdC/0LjRgdC+0Log0LrQvtC80LDQvdC0XCIgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCLQodC/0YDQsNCy0LrQsCDQv9C+INC60L7QvNCw0L3QtNC1XCIsXG4gICAgICAgIGNvbnRlbnQ6IGAke29wdGlvbnMuY29tbWFuZE5hbWV9IFvQutC+0LzQsNC90LTQsF0gLS1oZWxwYCxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRDb21tYW5kVXNhZ2UobmFtZSkge1xuICAgIGNvbnN0IGNvbW1hbmREZWZpbml0aW9uID0gY29tbWFuZERlZmluaXRpb25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG5hbWUpO1xuICAgIHJldHVybiBjb21tYW5kTGluZVVzYWdlKFtcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBgJHtvcHRpb25zLmNvbW1hbmROYW1lfSAke2NvbW1hbmREZWZpbml0aW9uLm5hbWV9IFvQvtC/0YbQuNC4Li4uXWAsXG4gICAgICAgIGNvbnRlbnQ6IG9wdGlvbnMuZGVzY3JpcHRpb24sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwi0KHQv9C40YHQvtC6INC+0L/RhtC40LlcIixcbiAgICAgICAgb3B0aW9uTGlzdDogW1xuICAgICAgICAgIC4uLmNvbW1hbmREZWZpbml0aW9uLm9wdGlvbnMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJoZWxwXCIsXG4gICAgICAgICAgICBhbGlhczogXCJoXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCLQktGL0LLQvtC00LjRgiDRgdC/0YDQsNCy0LrRgyDQv9C+INC00LDQvdC90L7QuSDQutC+0LzQsNC90LTQtVwiLFxuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxuXG4gIHBhcnNlQ29tbWFuZExpbmVBcmdzLmdldENvbW1hbmRMaXN0VXNhZ2UgPSBnZXRDb21tYW5kTGlzdFVzYWdlO1xuICBwYXJzZUNvbW1hbmRMaW5lQXJncy5nZXRDb21tYW5kVXNhZ2UgPSBnZXRDb21tYW5kVXNhZ2U7XG5cbiAgcmV0dXJuIHBhcnNlQ29tbWFuZExpbmVBcmdzO1xufVxuXG5jb25zdCBkZWZhdWx0VmFsdWVNYXJrZXIgPSB7IF9fREVGQVVMVF9fOiB0cnVlIH07XG5cbmZ1bmN0aW9uIHRvT3B0aW9uRGVmaW5pdGlvbih4KSB7XG4gIGxldCByZXN1bHQgPSB7XG4gICAgbmFtZTogeC5uYW1lLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFZhbHVlTWFya2VyLFxuICAgIG11bHRpcGxlOiB4Lm11bHRpcGxlLFxuICAgIGRlZmF1bHRPcHRpb246IHguZGVmYXVsdE9wdGlvbixcbiAgICBhbGlhczogeC5hbGlhcyxcbiAgfTtcbiAgaWYgKHguZG9lc05vdFJlcXVpcmVWYWx1ZSkge1xuICAgIHJlc3VsdC50eXBlID0gQm9vbGVhbjtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
|
|
186
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Db21tb25zL09wdGlvbnMvQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlci5qcyJdLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbiIsImRlZnMiLCJjb21tYW5kRGVmaW5pdGlvbiIsIm5hbWUiLCJ0eXBlIiwib3B0aW9ucyIsImNvbW1hbmRPcHRpb25zIiwidHlwZVZhbHVlIiwiY29tbWFuZHNEZWZpbml0aW9uIiwiSW52YWxpZENvbW1hbmRMaW5lQXJndW1lbnRzRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsInVzYWdlVGV4dCIsIkNvbW1hbmRMaW5lQXJndW1lbnRzSGVscFJlcXVlc3RlZEVycm9yIiwiYnVpbGRDb21tYW5kQmFzZWRPcHRpb25zUGFyc2VyIiwiY29tbWFuZERlZmluaXRpb25zIiwicGFyc2VDb21tYW5kTGluZUFyZ3MiLCJhcmdzIiwiZGVmYXVsdE9wdGlvbiIsImRlZmF1bHRWYWx1ZSIsImFyZ3YiLCJzdG9wQXRGaXJzdFVua25vd24iLCJjb21tYW5kIiwiZ2V0Q29tbWFuZExpc3RVc2FnZSIsImZpbmQiLCJ4IiwidW5kZWZpbmVkIiwiY29tbWFuZEFyZ3MiLCJfdW5rbm93biIsInBhdGNoZWRPcHRpb25EZWZpbml0aW9ucyIsIm1hcCIsInRvT3B0aW9uRGVmaW5pdGlvbiIsImFsaWFzIiwiQm9vbGVhbiIsInBhcnNlZENvbW1hbmRPcHRpb25zIiwiZ2V0Q29tbWFuZFVzYWdlIiwicmVzdWx0Iiwib3B0aW9uRGVmaW5pdGlvbiIsIm5ld1ZhciIsIm11bHRpcGxlIiwiZGVmYXVsdFZhbHVlTWFya2VyIiwicGFyc2UiLCJlIiwiaGVhZGVyIiwiY29tbWFuZE5hbWUiLCJjb250ZW50IiwiY29tbWFuZERlc2NyaXB0aW9uIiwidXNhZ2VTdHJpbmciLCJzdW1tYXJ5IiwiZGVzY3JpcHRpb24iLCJvcHRpb25MaXN0IiwiX19ERUZBVUxUX18iLCJkb2VzTm90UmVxdWlyZVZhbHVlIl0s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QyxPQUFPLENBQUM2QztBQUZyQixLQURvQixFQUtwQjtBQUNJTixNQUFBQSxNQUFNLEVBQUUsY0FEWjtBQUVJTyxNQUFBQSxVQUFVLEVBQUUsQ0FDUixHQUFHakQsaUJBQWlCLENBQUNHLE9BRGIsRUFFUjtBQUNJRixRQUFBQSxJQUFJLEVBQUUsTUFEVjtBQUVJOEIsUUFBQUEsS0FBSyxFQUFFLEdBRlg7QUFHSWlCLFFBQUFBLFdBQVcsRUFBRSxtQ0FIakI7QUFJSTlDLFFBQUFBLElBQUksRUFBRThCO0FBSlYsT0FGUTtBQUZoQixLQUxvQixDQUFqQixDQUFQO0FBa0JIOztBQUVEakIsRUFBQUEsb0JBQW9CLENBQUNPLG1CQUFyQixHQUEyQ0EsbUJBQTNDO0FBQ0FQLEVBQUFBLG9CQUFvQixDQUFDbUIsZUFBckIsR0FBdUNBLGVBQXZDO0FBRUEsU0FBT25CLG9CQUFQO0FBQ0g7O0FBRUQsTUFBTXdCLGtCQUFrQixHQUFHO0FBQUVXLEVBQUFBLFdBQVcsRUFBRTtBQUFmLENBQTNCOztBQUVBLFNBQVNwQixrQkFBVCxDQUE0Qk4sQ0FBNUIsRUFBK0I7QUFDM0IsTUFBSVcsTUFBTSxHQUFHO0FBQ1RsQyxJQUFBQSxJQUFJLEVBQUV1QixDQUFDLENBQUN2QixJQURDO0FBRVRpQixJQUFBQSxZQUFZLEVBQUVxQixrQkFGTDtBQUdURCxJQUFBQSxRQUFRLEVBQUVkLENBQUMsQ0FBQ2MsUUFISDtBQUlUckIsSUFBQUEsYUFBYSxFQUFFTyxDQUFDLENBQUNQLGFBSlI7QUFLVGMsSUFBQUEsS0FBSyxFQUFFUCxDQUFDLENBQUNPO0FBTEEsR0FBYjs7QUFPQSxNQUFJUCxDQUFDLENBQUMyQixtQkFBTixFQUEyQjtBQUN2QmhCLElBQUFBLE1BQU0sQ0FBQ2pDLElBQVAsR0FBYzhCLE9BQWQ7QUFDSDs7QUFDRCxTQUFPRyxNQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiO1xuaW1wb3J0IGNvbW1hbmRMaW5lVXNhZ2UgZnJvbSBcImNvbW1hbmQtbGluZS11c2FnZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gb3B0aW9uc0RlZmluaXRpb24oLi4uZGVmcykge1xuICAgIHJldHVybiBkZWZzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tbWFuZERlZmluaXRpb24obmFtZSwgdHlwZSwgb3B0aW9ucywgY29tbWFuZE9wdGlvbnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICB0eXBlVmFsdWU6IHR5cGUsXG4gICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgIC4uLmNvbW1hbmRPcHRpb25zLFxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21tYW5kc0RlZmluaXRpb24oLi4uZGVmcykge1xuICAgIHJldHVybiBkZWZzO1xufVxuXG5leHBvcnQgY2xhc3MgSW52YWxpZENvbW1hbmRMaW5lQXJndW1lbnRzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgdXNhZ2VUZXh0KSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnVzYWdlVGV4dCA9IHVzYWdlVGV4dDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21tYW5kTGluZUFyZ3VtZW50c0hlbHBSZXF1ZXN0ZWRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcih1c2FnZVRleHQpIHtcbiAgICAgICAgc3VwZXIoXCJcIik7XG4gICAgICAgIHRoaXMudXNhZ2VUZXh0ID0gdXNhZ2VUZXh0O1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlcihjb21tYW5kRGVmaW5pdGlvbnMsIG9wdGlvbnMpIHtcbiAgICBmdW5jdGlvbiBwYXJzZUNvbW1hbmRMaW5lQXJncyhhcmdzKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3MoW3sgbmFtZTogXCJjb21tYW5kXCIsIGRlZmF1bHRPcHRpb246IHRydWUsIGRlZmF1bHRWYWx1ZTogXCJoZWxwXCIgfV0sIHtcbiAgICAgICAgICAgIGFyZ3Y6IGFyZ3MsXG4gICAgICAgICAgICBzdG9wQXRGaXJzdFVua25vd246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAob3B0aW9ucy5jb21tYW5kID09PSBcImhlbHBcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1hbmRMaW5lQXJndW1lbnRzSGVscFJlcXVlc3RlZEVycm9yKGdldENvbW1hbmRMaXN0VXNhZ2UoKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tbWFuZERlZmluaXRpb24gPSBjb21tYW5kRGVmaW5pdGlvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gb3B0aW9ucy5jb21tYW5kKTtcbiAgICAgICAgaWYgKGNvbW1hbmREZWZpbml0aW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb21tYW5kTGluZUFyZ3VtZW50c0Vycm9yKFxuICAgICAgICAgICAgICAgIGDQmtC+0LzQsNC90LTQsCDQvdC1INC90LDQudC00LXQvdCwOiAke29wdGlvbnMuY29tbWFuZH0uYCxcbiAgICAgICAgICAgICAgICBnZXRDb21tYW5kTGlzdFVzYWdlKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29tbWFuZEFyZ3MgPSBvcHRpb25zLl91bmtub3duIHx8IFtdO1xuICAgICAgICAgICAgbGV0IHBhdGNoZWRPcHRpb25EZWZpbml0aW9ucyA9IFtcbiAgICAgICAgICAgICAgICAuLi5jb21tYW5kRGVmaW5pdGlvbi5vcHRpb25zLm1hcCh0b09wdGlvbkRlZmluaXRpb24pLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJoZWxwXCIsXG4gICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcImhcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZENvbW1hbmRPcHRpb25zID0gY29tbWFuZExpbmVBcmdzKHBhdGNoZWRPcHRpb25EZWZpbml0aW9ucywge1xuICAgICAgICAgICAgICAgIGFyZ3Y6IGNvbW1hbmRBcmdzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkQ29tbWFuZE9wdGlvbnNbXCJoZWxwXCJdKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1hbmRMaW5lQXJndW1lbnRzSGVscFJlcXVlc3RlZEVycm9yKGdldENvbW1hbmRVc2FnZShjb21tYW5kRGVmaW5pdGlvbi5uYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogY29tbWFuZERlZmluaXRpb24udHlwZVZhbHVlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0aW9uRGVmaW5pdGlvbiBvZiBjb21tYW5kRGVmaW5pdGlvbi5vcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1ZhcjtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9uRGVmaW5pdGlvbi5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdWYXIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkQ29tbWFuZE9wdGlvbnNbb3B0aW9uRGVmaW5pdGlvbi5uYW1lXVswXSA9PT0gZGVmYXVsdFZhbHVlTWFya2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBvcHRpb25EZWZpbml0aW9uLmRlZmF1bHRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogb3B0aW9uRGVmaW5pdGlvbi5wYXJzZShwYXJzZWRDb21tYW5kT3B0aW9uc1tvcHRpb25EZWZpbml0aW9uLm5hbWVdKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXdWYXIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkQ29tbWFuZE9wdGlvbnNbb3B0aW9uRGVmaW5pdGlvbi5uYW1lXSA9PT0gZGVmYXVsdFZhbHVlTWFya2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBvcHRpb25EZWZpbml0aW9uLmRlZmF1bHRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogb3B0aW9uRGVmaW5pdGlvbi5wYXJzZShwYXJzZWRDb21tYW5kT3B0aW9uc1tvcHRpb25EZWZpbml0aW9uLm5hbWVdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzdWx0Lm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdC5vcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAuLi5uZXdWYXIsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgQ29tbWFuZExpbmVBcmd1bWVudHNIZWxwUmVxdWVzdGVkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IGU7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbW1hbmRMaW5lQXJndW1lbnRzRXJyb3IobWVzc2FnZSwgZ2V0Q29tbWFuZFVzYWdlKGNvbW1hbmREZWZpbml0aW9uLm5hbWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldENvbW1hbmRMaXN0VXNhZ2UoKSB7XG4gICAgICAgIHJldHVybiBjb21tYW5kTGluZVVzYWdlKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXI6IG9wdGlvbnMuY29tbWFuZE5hbWUsXG4gICAgICAgICAgICAgICAgY29udGVudDogb3B0aW9ucy5jb21tYW5kRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcjogXCLQmNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtVwiLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wdGlvbnMudXNhZ2VTdHJpbmcgfHwgYCR7b3B0aW9ucy5jb21tYW5kTmFtZX0gW9C60L7QvNCw0L3QtNCwXSBb0L7Qv9GG0LjQuC4uLl1gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXI6IFwi0KHQv9C40YHQvtC6INC60L7QvNCw0L3QtFwiLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgICAgICAgICAgLi4uY29tbWFuZERlZmluaXRpb25zLm1hcCh4ID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB4Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB4LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJoZWxwXCIsIHN1bW1hcnk6IFwi0JLRi9Cy0L7QtNC40YIg0Y3RgtC+0YIg0YHQv9C40YHQvtC6INC60L7QvNCw0L3QtFwiIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyOiBcItCh0L/RgNCw0LLQutCwINC/0L4g0LrQvtC80LDQvdC00LVcIixcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgJHtvcHRpb25zLmNvbW1hbmROYW1lfSBb0LrQvtC80LDQvdC00LBdIC0taGVscGAsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRDb21tYW5kVXNhZ2UobmFtZSkge1xuICAgICAgICBjb25zdCBjb21tYW5kRGVmaW5pdGlvbiA9IGNvbW1hbmREZWZpbml0aW9ucy5maW5kKHggPT4geC5uYW1lID09PSBuYW1lKTtcbiAgICAgICAgcmV0dXJuIGNvbW1hbmRMaW5lVXNhZ2UoW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcjogYCR7b3B0aW9ucy5jb21tYW5kTmFtZX0gJHtjb21tYW5kRGVmaW5pdGlvbi5uYW1lfSBb0L7Qv9GG0LjQuC4uLl1gLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wdGlvbnMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcjogXCLQodC/0LjRgdC+0Log0L7Qv9GG0LjQuVwiLFxuICAgICAgICAgICAgICAgIG9wdGlvbkxpc3Q6IFtcbiAgICAgICAgICAgICAgICAgICAgLi4uY29tbWFuZERlZmluaXRpb24ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJoZWxwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhczogXCJoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCLQktGL0LLQvtC00LjRgiDRgdC/0YDQsNCy0LrRgyDQv9C+INC00LDQvdC90L7QuSDQutC+0LzQsNC90LTQtVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSk7XG4gICAgfVxuXG4gICAgcGFyc2VDb21tYW5kTGluZUFyZ3MuZ2V0Q29tbWFuZExpc3RVc2FnZSA9IGdldENvbW1hbmRMaXN0VXNhZ2U7XG4gICAgcGFyc2VDb21tYW5kTGluZUFyZ3MuZ2V0Q29tbWFuZFVzYWdlID0gZ2V0Q29tbWFuZFVzYWdlO1xuXG4gICAgcmV0dXJuIHBhcnNlQ29tbWFuZExpbmVBcmdzO1xufVxuXG5jb25zdCBkZWZhdWx0VmFsdWVNYXJrZXIgPSB7IF9fREVGQVVMVF9fOiB0cnVlIH07XG5cbmZ1bmN0aW9uIHRvT3B0aW9uRGVmaW5pdGlvbih4KSB7XG4gICAgbGV0IHJlc3VsdCA9IHtcbiAgICAgICAgbmFtZTogeC5uYW1lLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWYWx1ZU1hcmtlcixcbiAgICAgICAgbXVsdGlwbGU6IHgubXVsdGlwbGUsXG4gICAgICAgIGRlZmF1bHRPcHRpb246IHguZGVmYXVsdE9wdGlvbixcbiAgICAgICAgYWxpYXM6IHguYWxpYXMsXG4gICAgfTtcbiAgICBpZiAoeC5kb2VzTm90UmVxdWlyZVZhbHVlKSB7XG4gICAgICAgIHJlc3VsdC50eXBlID0gQm9vbGVhbjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
|
@@ -15,10 +15,14 @@ var _md = _interopRequireDefault(require("md5"));
|
|
|
15
15
|
|
|
16
16
|
var _pLimit = _interopRequireDefault(require("p-limit"));
|
|
17
17
|
|
|
18
|
+
var _nodeFetch = _interopRequireDefault(require("node-fetch"));
|
|
19
|
+
|
|
18
20
|
var _BuildCacheMode = require("../CLICommands/BuildForms/BuildCacheMode");
|
|
19
21
|
|
|
20
22
|
var _TypingUtils = require("../../../Common/TypingUtils");
|
|
21
23
|
|
|
24
|
+
var _StaticLogger = require("../Commons/Logging/StaticLogger");
|
|
25
|
+
|
|
22
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
27
|
|
|
24
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -74,8 +78,10 @@ class BuildCache {
|
|
|
74
78
|
constructor(farmDirectory, mode) {
|
|
75
79
|
this.farmDirectory = void 0;
|
|
76
80
|
this.mode = void 0;
|
|
81
|
+
this.logger = void 0;
|
|
77
82
|
this.farmDirectory = farmDirectory;
|
|
78
83
|
this.mode = mode;
|
|
84
|
+
this.logger = (0, _StaticLogger.getLogger)().withPrefix("BUILD_CACHE");
|
|
79
85
|
}
|
|
80
86
|
|
|
81
87
|
async extract(generatorSource, gfv, depsHash, resourcesDirectory) {
|
|
@@ -110,7 +116,8 @@ class BuildCache {
|
|
|
110
116
|
return false;
|
|
111
117
|
}
|
|
112
118
|
|
|
113
|
-
|
|
119
|
+
const cachedFilePath = await this.existsFileCacheOrDownload(gfv, generatorSource.version, depsHash);
|
|
120
|
+
return cachedFilePath != undefined;
|
|
114
121
|
}
|
|
115
122
|
|
|
116
123
|
async setContent(generatorSource, gfv, depsHash, resourcesDirectory, fileName, fileContent) {
|
|
@@ -125,25 +132,66 @@ class BuildCache {
|
|
|
125
132
|
content = { ...content,
|
|
126
133
|
[fileName]: fileContent
|
|
127
134
|
};
|
|
128
|
-
await (0, _fsExtra.ensureDir)(path.dirname(cacheFilePath));
|
|
129
135
|
await (0, _fsExtra.writeFile)(cacheFilePath, JSON.stringify(content), "utf-8");
|
|
130
136
|
}
|
|
131
137
|
|
|
132
|
-
createWebpackPlugin(options) {
|
|
138
|
+
async createWebpackPlugin(options) {
|
|
133
139
|
if (options.mode === _BuildCacheMode.BuildCacheMode.Disabled || options.mode === _BuildCacheMode.BuildCacheMode.ReadOnly) {
|
|
134
140
|
return undefined;
|
|
135
141
|
}
|
|
136
142
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
143
|
+
const cachedFilePath = await this.existsFileCacheOrDownload(options.gfv, options.generatorVersion, options.depsHash);
|
|
144
|
+
|
|
145
|
+
if (cachedFilePath != undefined) {
|
|
146
|
+
new CacheAssetsPlugin({
|
|
147
|
+
cacheFile: cachedFilePath
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return undefined;
|
|
140
152
|
}
|
|
141
153
|
|
|
142
154
|
getCacheFilePath(gfv, generatorVersion, depsHash) {
|
|
143
|
-
|
|
155
|
+
const fileName = `${(0, _md.default)(gfv)}-${(0, _md.default)(generatorVersion)}-${depsHash}.zip`;
|
|
156
|
+
return path.join(this.farmDirectory, ".build-cache", "compile", fileName);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
async existsFileCacheOrDownload(gfv, generatorVersion, depsHash) {
|
|
160
|
+
const filePath = this.getCacheFilePath(gfv, generatorVersion, depsHash);
|
|
161
|
+
this.logger.log(`Start search file in local ${filePath}`);
|
|
162
|
+
await (0, _fsExtra.ensureDir)(path.dirname(filePath));
|
|
163
|
+
|
|
164
|
+
if (await (0, _fsExtra.pathExists)(filePath)) {
|
|
165
|
+
this.logger.log(`Found file in local directory`);
|
|
166
|
+
return filePath;
|
|
167
|
+
} else {
|
|
168
|
+
try {
|
|
169
|
+
this.logger.log("The cache file was not found in the local directory Im looking for it in drive");
|
|
170
|
+
const response = await (0, _nodeFetch.default)(`https://api.kontur.ru/drive/v1/public/${path.basename(filePath)}`);
|
|
171
|
+
this.logger.log(`Drive response status code: ${response.status.toString()}`);
|
|
172
|
+
|
|
173
|
+
if (response.status === 200) {
|
|
174
|
+
await (0, _fsExtra.writeFile)(filePath, await response.buffer(), "utf-8");
|
|
175
|
+
return filePath;
|
|
176
|
+
} else {
|
|
177
|
+
if (response.status === 404) {
|
|
178
|
+
this.logger.error("The cache file not found in drive storage");
|
|
179
|
+
} else {
|
|
180
|
+
this.logger.error(`Drive storage send ${response.status} status code, I don't process it in any way`);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
} catch (e) {
|
|
186
|
+
this.logger.error("Drive storage responded with an error");
|
|
187
|
+
this.logger.error("The build will continue without a cache");
|
|
188
|
+
this.logger.error(e);
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
144
192
|
}
|
|
145
193
|
|
|
146
194
|
}
|
|
147
195
|
|
|
148
196
|
exports.BuildCache = BuildCache;
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtV2VicGFja0NvbmZpZ3VyYXRpb24vQ2FjaGVBc3NldHNQbHVnaW4udHMiXSwibmFtZXMiOlsic2luZ2xlTGltaXQiLCJDYWNoZUFzc2V0c1BsdWdpbiIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImFwcGx5IiwiY29tcGlsZXIiLCJob29rcyIsImVtaXQiLCJ0YXBQcm9taXNlIiwiY29tcGlsYXRpb24iLCJjYWNoZUl0ZW1zIiwiYXNzZXROYW1lIiwiT2JqZWN0Iiwia2V5cyIsImFzc2V0cyIsInNvdXJjZSIsIkJ1ZmZlciIsInR5cGUiLCJiYXNlNjRjb250ZW50IiwidG9TdHJpbmciLCJ1cGRhdGVGaWxlIiwiZmlsZVBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsImNhY2hlRmlsZSIsImNvbnRlbnQiLCJKU09OIiwicGFyc2UiLCJkaXJuYW1lIiwic3RyaW5naWZ5IiwiQnVpbGRDYWNoZSIsImZhcm1EaXJlY3RvcnkiLCJtb2RlIiwiZXh0cmFjdCIsImdlbmVyYXRvclNvdXJjZSIsImdmdiIsImRlcHNIYXNoIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiRXJyb3IiLCJnZXRDYWNoZUZpbGVQYXRoIiwidmVyc2lvbiIsImFzc2V0UGF0aCIsImNvbnRlbnRFbGVtZW50Iiwiam9pbiIsImZyb20iLCJleGlzdHMiLCJCdWlsZENhY2hlTW9kZSIsIkRpc2FibGVkIiwiRm9yY2VVcGRhdGUiLCJzZXRDb250ZW50IiwiZmlsZU5hbWUiLCJmaWxlQ29udGVudCIsImNhY2hlRmlsZVBhdGgiLCJjcmVhdGVXZWJwYWNrUGx1Z2luIiwiUmVhZE9ubHkiLCJ1bmRlZmluZWQiLCJnZW5lcmF0b3JWZXJzaW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFJQTs7QUFDQTs7Ozs7O0FBY0EsTUFBTUEsV0FBVyxHQUFHLHFCQUFPLENBQVAsQ0FBcEI7O0FBTU8sTUFBTUMsaUJBQU4sQ0FBd0I7QUFHcEJD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cEIsUUFBUyxNQUo5QyxDQUFQO0FBTUg7O0FBbEZtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZW5zdXJlRGlyLCBwYXRoRXhpc3RzLCByZWFkRmlsZSwgd3JpdGVGaWxlIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgbWQ1IGZyb20gXCJtZDVcIjtcbmltcG9ydCBwTGltaXQgZnJvbSBcInAtbGltaXRcIjtcbmltcG9ydCB3ZWJwYWNrIGZyb20gXCJ3ZWJwYWNrXCI7XG5cbmltcG9ydCB7IEdlbmVyYXRvclNvdXJjZSB9IGZyb20gXCIuLi9CdWlsZFRhc2tzL0dlbmVyYXRvci9BY3F1aXJlRm9ybUdlbmVyYXRvclwiO1xuaW1wb3J0IHsgQnVpbGRDYWNoZU1vZGUgfSBmcm9tIFwiLi4vQ0xJQ29tbWFuZHMvQnVpbGRGb3Jtcy9CdWlsZENhY2hlTW9kZVwiO1xuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbi9UeXBpbmdVdGlsc1wiO1xuXG5pbnRlcmZhY2UgQ2FjaGVBc3NldHNQbHVnaW5PcHRpb25zIHtcbiAgICBjYWNoZUZpbGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtQnVpbGRDYWNoZU9wdGlvbnMge1xuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZztcbiAgICBtb2RlOiBCdWlsZENhY2hlTW9kZTtcbiAgICBnZW5lcmF0b3JWZXJzaW9uOiBzdHJpbmc7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgZGVwc0hhc2g6IHN0cmluZztcbn1cblxuY29uc3Qgc2luZ2xlTGltaXQgPSBwTGltaXQoMSk7XG5cbmludGVyZmFjZSBCdWlsZFJlc3VsdHNTZXJpYWxpemVkIHtcbiAgICBbcGF0aDogc3RyaW5nXTogc3RyaW5nIHwgeyB0eXBlOiBcIkJ1ZmZlclwiOyBiYXNlNjRjb250ZW50OiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGNsYXNzIENhY2hlQXNzZXRzUGx1Z2luIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IENhY2hlQXNzZXRzUGx1Z2luT3B0aW9ucztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYWNoZUFzc2V0c1BsdWdpbk9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgYXBwbHkoY29tcGlsZXI6IHdlYnBhY2suQ29tcGlsZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29tcGlsZXIuaG9va3MuZW1pdC50YXBQcm9taXNlKFwiQ2FjaGVBc3NldHNQbHVnaW5cIiwgY29tcGlsYXRpb24gPT5cbiAgICAgICAgICAgIHNpbmdsZUxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWNoZUl0ZW1zOiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0ge307XG4gICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFzc2V0TmFtZSBvZiBPYmplY3Qua2V5cyhjb21waWxhdGlvbi5hc3NldHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZTogc3RyaW5nIHwgQnVmZmVyID0gY29tcGlsYXRpb24uYXNzZXRzW2Fzc2V0TmFtZV0/LnNvdXJjZSgpID8/IHJlamVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUl0ZW1zW2Fzc2V0TmFtZV0gPSB7IHR5cGU6IFwiQnVmZmVyXCIsIGJhc2U2NGNvbnRlbnQ6IHNvdXJjZS50b1N0cmluZyhcImJhc2U2NFwiKSB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJdGVtc1thc3NldE5hbWVdID0gc291cmNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlRmlsZShjYWNoZUl0ZW1zKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyB1cGRhdGVGaWxlKGNhY2hlSXRlbXM6IEJ1aWxkUmVzdWx0c1NlcmlhbGl6ZWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUodGhpcy5vcHRpb25zLmNhY2hlRmlsZSk7XG4gICAgICAgIGxldCBjb250ZW50OiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0gKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKVxuICAgICAgICAgICAgPyAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICAgICAgICBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCBcInV0Zi04XCIpKVxuICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgY29udGVudCA9IHtcbiAgICAgICAgICAgIC4uLmNvbnRlbnQsXG4gICAgICAgICAgICAuLi5jYWNoZUl0ZW1zLFxuICAgICAgICB9O1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29udGVudCksIFwidXRmLThcIik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnVpbGRDYWNoZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RlOiBCdWlsZENhY2hlTW9kZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmYXJtRGlyZWN0b3J5OiBzdHJpbmcsIG1vZGU6IEJ1aWxkQ2FjaGVNb2RlKSB7XG4gICAgICAgIHRoaXMuZmFybURpcmVjdG9yeSA9IGZhcm1EaXJlY3Rvcnk7XG4gICAgICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGV4dHJhY3QoXG4gICAgICAgIGdlbmVyYXRvclNvdXJjZTogR2VuZXJhdG9yU291cmNlLFxuICAgICAgICBnZnY6IHN0cmluZyxcbiAgICAgICAgZGVwc0hhc2g6IHN0cmluZyxcbiAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmdcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKGdlbmVyYXRvclNvdXJjZS50eXBlID09PSBcIkdlbmVyYXRvclNvdXJjZXNcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTG9jYWwgZ2VuZXJhdG9yIGRvZXMgbm90IHN1cHBvcnRzIGNhY2hpbmdcIik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICAgICAgY29uc3QgY29udGVudDogQnVpbGRSZXN1bHRzU2VyaWFsaXplZCA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICBhd2FpdCByZWFkRmlsZSh0aGlzLmdldENhY2hlRmlsZVBhdGgoZ2Z2LCBnZW5lcmF0b3JTb3VyY2UudmVyc2lvbiwgZGVwc0hhc2gpLCBcInV0Zi04XCIpXG4gICAgICAgICk7XG4gICAgICAgIGZvciAoY29uc3QgYXNzZXRQYXRoIG9mIE9iamVjdC5rZXlzKGNvbnRlbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50RWxlbWVudCA9IGNvbnRlbnRbYXNzZXRQYXRoXSA/PyByZWplY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgYXNzZXRQYXRoKTtcbiAgICAgICAgICAgIGF3YWl0IGVuc3VyZURpcihwYXRoLmRpcm5hbWUoZmlsZVBhdGgpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudEVsZW1lbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnRFbGVtZW50LCBcInV0ZjhcIik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgQnVmZmVyLmZyb20oY29udGVudEVsZW1lbnQuYmFzZTY0Y29udGVudCwgXCJiYXNlNjRcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGV4aXN0cyhnZW5lcmF0b3JTb3VyY2U6IEdlbmVyYXRvclNvdXJjZSwgZ2Z2OiBzdHJpbmcsIGRlcHNIYXNoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKGdlbmVyYXRvclNvdXJjZS50eXBlID09PSBcIkdlbmVyYXRvclNvdXJjZXNcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTG9jYWwgZ2VuZXJhdG9yIGRvZXMgbm90IHN1cHBvcnRzIGNhY2hpbmdcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gQnVpbGRDYWNoZU1vZGUuRGlzYWJsZWQgfHwgdGhpcy5tb2RlID09PSBCdWlsZENhY2hlTW9kZS5Gb3JjZVVwZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRoRXhpc3RzKHRoaXMuZ2V0Q2FjaGVGaWxlUGF0aChnZnYsIGdlbmVyYXRvclNvdXJjZS52ZXJzaW9uLCBkZXBzSGFzaCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRDb250ZW50KFxuICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IHN0cmluZyxcbiAgICAgICAgZ2Z2OiBzdHJpbmcsXG4gICAgICAgIGRlcHNIYXNoOiBzdHJpbmcsXG4gICAgICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICBmaWxlQ29udGVudDogc3RyaW5nXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGNhY2hlRmlsZVBhdGggPSB0aGlzLmdldENhY2hlRmlsZVBhdGgoZ2Z2LCBnZW5lcmF0b3JTb3VyY2UsIGRlcHNIYXNoKTtcbiAgICAgICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhjYWNoZUZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICBsZXQgY29udGVudDogQnVpbGRSZXN1bHRzU2VyaWFsaXplZCA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUoY2FjaGVGaWxlUGF0aCwgXCJ1dGYtOFwiKSk7XG4gICAgICAgIGNvbnRlbnQgPSB7XG4gICAgICAgICAgICAuLi5jb250ZW50LFxuICAgICAgICAgICAgW2ZpbGVOYW1lXTogZmlsZUNvbnRlbnQsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IGVuc3VyZURpcihwYXRoLmRpcm5hbWUoY2FjaGVGaWxlUGF0aCkpO1xuICAgICAgICBhd2FpdCB3cml0ZUZpbGUoY2FjaGVGaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29udGVudCksIFwidXRmLThcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVdlYnBhY2tQbHVnaW4ob3B0aW9uczogRm9ybUJ1aWxkQ2FjaGVPcHRpb25zKTogQ2FjaGVBc3NldHNQbHVnaW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAob3B0aW9ucy5tb2RlID09PSBCdWlsZENhY2hlTW9kZS5EaXNhYmxlZCB8fCBvcHRpb25zLm1vZGUgPT09IEJ1aWxkQ2FjaGVNb2RlLlJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQ2FjaGVBc3NldHNQbHVnaW4oe1xuICAgICAgICAgICAgY2FjaGVGaWxlOiB0aGlzLmdldENhY2hlRmlsZVBhdGgob3B0aW9ucy5nZnYsIG9wdGlvbnMuZ2VuZXJhdG9yVmVyc2lvbiwgb3B0aW9ucy5kZXBzSGFzaCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2FjaGVGaWxlUGF0aChnZnY6IHN0cmluZywgZ2VuZXJhdG9yVmVyc2lvbjogc3RyaW5nLCBkZXBzSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHBhdGguam9pbihcbiAgICAgICAgICAgIHRoaXMuZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIFwiLmJ1aWxkLWNhY2hlXCIsXG4gICAgICAgICAgICBcImNvbXBpbGVcIixcbiAgICAgICAgICAgIGAke21kNShnZnYpfS0ke21kNShnZW5lcmF0b3JWZXJzaW9uKX0tJHtkZXBzSGFzaH0uemlwYFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
197
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtV2VicGFja0NvbmZpZ3VyYXRpb24vQ2FjaGVBc3NldHNQbHVnaW4udHMiXSwibmFtZXMiOlsic2luZ2xlTGltaXQiLCJDYWNoZUFzc2V0c1BsdWdpbiIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImFwcGx5IiwiY29tcGlsZXIiLCJob29rcyIsImVtaXQiLCJ0YXBQcm9taXNlIiwiY29tcGlsYXRpb24iLCJjYWNoZUl0ZW1zIiwiYXNzZXROYW1lIiwiT2JqZWN0Iiwia2V5cyIsImFzc2V0cyIsInNvdXJjZSIsIkJ1ZmZlciIsInR5cGUiLCJiYXNlNjRjb250ZW50IiwidG9TdHJpbmciLCJ1cGRhdGVGaWxlIiwiZmlsZVBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsImNhY2hlRmlsZSIsImNvbnRlbnQiLCJKU09OIiwicGFyc2UiLCJkaXJuYW1lIiwic3RyaW5naWZ5IiwiQnVpbGRDYWNoZSIsImZhcm1EaXJlY3RvcnkiLCJtb2RlIiwibG9nZ2VyIiwid2l0aFByZWZpeCIsImV4dHJhY3QiLCJnZW5lcmF0b3JTb3VyY2UiLCJnZnYiLCJkZXBzSGFzaCIsInJlc291cmNlc0RpcmVjdG9yeSIsIkVycm9yIiwiZ2V0Q2FjaGVGaWxlUGF0aCIsInZlcnNpb24iLCJhc3NldFBhdGgiLCJjb250ZW50RWxlbWVudCIsImpvaW4iLCJmcm9tIiwiZXhpc3RzIiwiQnVpbGRDYWNoZU1vZGUiLCJEaXNhYmxlZCIsIkZvcmNlVXBkYXRlIiwiY2FjaGVkRmlsZVBhdGgiLCJleGlzdHNGaWxlQ2FjaGVPckRvd25sb2FkIiwidW5kZWZpbmVkIiwic2V0Q29udGVudCIsImZpbGVOYW1lIiwiZmlsZUNvbnRlbnQiLCJjYWNoZUZpbGVQYXRoIiwiY3JlYXRlV2VicGFja1BsdWdpbiIsIlJlYWRPbmx5IiwiZ2VuZXJhdG9yVmVyc2lvbiIsImxvZyIsInJlc3BvbnNlIiwiYmFzZW5hbWUiLCJzdGF0dXMiLCJidWZmZXIiLCJlcnJvciIsImUiXSwibWFw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TUFBVCxDQUFnQjdDLFFBQWhCLEVBQTJCLEVBQTFFOztBQUNBLFlBQUkyQyxRQUFRLENBQUNFLE1BQVQsS0FBb0IsR0FBeEIsRUFBNkI7QUFDekIsZ0JBQU0sd0JBQVUzQyxRQUFWLEVBQW9CLE1BQU15QyxRQUFRLENBQUNHLE1BQVQsRUFBMUIsRUFBNkMsT0FBN0MsQ0FBTjtBQUNBLGlCQUFPNUMsUUFBUDtBQUNILFNBSEQsTUFHTztBQUNILGNBQUl5QyxRQUFRLENBQUNFLE1BQVQsS0FBb0IsR0FBeEIsRUFBNkI7QUFDekIsaUJBQUsvQixNQUFMLENBQVlpQyxLQUFaLENBQWtCLDJDQUFsQjtBQUNILFdBRkQsTUFFTztBQUNILGlCQUFLakMsTUFBTCxDQUFZaUMsS0FBWixDQUNLLHNCQUFxQkosUUFBUSxDQUFDRSxNQUFPLDZDQUQxQztBQUdIOztBQUNELGlCQUFPWCxTQUFQO0FBQ0g7QUFDSixPQWpCRCxDQWlCRSxPQUFPYyxDQUFQLEVBQVU7QUFDUixhQUFLbEMsTUFBTCxDQUFZaUMsS0FBWixDQUFrQix1Q0FBbEI7QUFDQSxhQUFLakMsTUFBTCxDQUFZaUMsS0FBWixDQUFrQix5Q0FBbEI7QUFDQSxhQUFLakMsTUFBTCxDQUFZaUMsS0FBWixDQUFrQkMsQ0FBbEI7QUFDQSxlQUFPZCxTQUFQO0FBQ0g7QUFDSjtBQUNKOztBQTlIbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGVuc3VyZURpciwgcGF0aEV4aXN0cywgcmVhZEZpbGUsIHdyaXRlRmlsZSB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IG1kNSBmcm9tIFwibWQ1XCI7XG5pbXBvcnQgcExpbWl0IGZyb20gXCJwLWxpbWl0XCI7XG5pbXBvcnQgd2VicGFjayBmcm9tIFwid2VicGFja1wiO1xuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCI7XG5cbmltcG9ydCB7IEdlbmVyYXRvclNvdXJjZSB9IGZyb20gXCIuLi9CdWlsZFRhc2tzL0dlbmVyYXRvci9BY3F1aXJlRm9ybUdlbmVyYXRvclwiO1xuaW1wb3J0IHsgQnVpbGRDYWNoZU1vZGUgfSBmcm9tIFwiLi4vQ0xJQ29tbWFuZHMvQnVpbGRGb3Jtcy9CdWlsZENhY2hlTW9kZVwiO1xuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbi9UeXBpbmdVdGlsc1wiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcblxuaW50ZXJmYWNlIENhY2hlQXNzZXRzUGx1Z2luT3B0aW9ucyB7XG4gICAgY2FjaGVGaWxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUJ1aWxkQ2FjaGVPcHRpb25zIHtcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgbW9kZTogQnVpbGRDYWNoZU1vZGU7XG4gICAgZ2VuZXJhdG9yVmVyc2lvbjogc3RyaW5nO1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGRlcHNIYXNoOiBzdHJpbmc7XG59XG5cbmNvbnN0IHNpbmdsZUxpbWl0ID0gcExpbWl0KDEpO1xuXG5pbnRlcmZhY2UgQnVpbGRSZXN1bHRzU2VyaWFsaXplZCB7XG4gICAgW3BhdGg6IHN0cmluZ106IHN0cmluZyB8IHsgdHlwZTogXCJCdWZmZXJcIjsgYmFzZTY0Y29udGVudDogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBjbGFzcyBDYWNoZUFzc2V0c1BsdWdpbiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBDYWNoZUFzc2V0c1BsdWdpbk9wdGlvbnM7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogQ2FjaGVBc3NldHNQbHVnaW5PcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGFwcGx5KGNvbXBpbGVyOiB3ZWJwYWNrLkNvbXBpbGVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbXBpbGVyLmhvb2tzLmVtaXQudGFwUHJvbWlzZShcIkNhY2hlQXNzZXRzUGx1Z2luXCIsIGNvbXBpbGF0aW9uID0+XG4gICAgICAgICAgICBzaW5nbGVMaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FjaGVJdGVtczogQnVpbGRSZXN1bHRzU2VyaWFsaXplZCA9IHt9O1xuICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhc3NldE5hbWUgb2YgT2JqZWN0LmtleXMoY29tcGlsYXRpb24uYXNzZXRzKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2U6IHN0cmluZyB8IEJ1ZmZlciA9IGNvbXBpbGF0aW9uLmFzc2V0c1thc3NldE5hbWVdPy5zb3VyY2UoKSA/PyByZWplY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJdGVtc1thc3NldE5hbWVdID0geyB0eXBlOiBcIkJ1ZmZlclwiLCBiYXNlNjRjb250ZW50OiBzb3VyY2UudG9TdHJpbmcoXCJiYXNlNjRcIikgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlSXRlbXNbYXNzZXROYW1lXSA9IHNvdXJjZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUZpbGUoY2FjaGVJdGVtcyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgdXBkYXRlRmlsZShjYWNoZUl0ZW1zOiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMub3B0aW9ucy5jYWNoZUZpbGUpO1xuICAgICAgICBsZXQgY29udGVudDogQnVpbGRSZXN1bHRzU2VyaWFsaXplZCA9IChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSlcbiAgICAgICAgICAgID8gLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICAgICAgICAgICAgSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShmaWxlUGF0aCwgXCJ1dGYtOFwiKSlcbiAgICAgICAgICAgIDoge307XG4gICAgICAgIGNvbnRlbnQgPSB7XG4gICAgICAgICAgICAuLi5jb250ZW50LFxuICAgICAgICAgICAgLi4uY2FjaGVJdGVtcyxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguZGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGNvbnRlbnQpLCBcInV0Zi04XCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJ1aWxkQ2FjaGUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFybURpcmVjdG9yeTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kZTogQnVpbGRDYWNoZU1vZGU7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IElMb2dnZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZmFybURpcmVjdG9yeTogc3RyaW5nLCBtb2RlOiBCdWlsZENhY2hlTW9kZSkge1xuICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnkgPSBmYXJtRGlyZWN0b3J5O1xuICAgICAgICB0aGlzLm1vZGUgPSBtb2RlO1xuICAgICAgICB0aGlzLmxvZ2dlciA9IGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJCVUlMRF9DQUNIRVwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZXh0cmFjdChcbiAgICAgICAgZ2VuZXJhdG9yU291cmNlOiBHZW5lcmF0b3JTb3VyY2UsXG4gICAgICAgIGdmdjogc3RyaW5nLFxuICAgICAgICBkZXBzSGFzaDogc3RyaW5nLFxuICAgICAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZ1xuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoZ2VuZXJhdG9yU291cmNlLnR5cGUgPT09IFwiR2VuZXJhdG9yU291cmNlc1wiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJMb2NhbCBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydHMgY2FjaGluZ1wiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICBjb25zdCBjb250ZW50OiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIGF3YWl0IHJlYWRGaWxlKHRoaXMuZ2V0Q2FjaGVGaWxlUGF0aChnZnYsIGdlbmVyYXRvclNvdXJjZS52ZXJzaW9uLCBkZXBzSGFzaCksIFwidXRmLThcIilcbiAgICAgICAgKTtcbiAgICAgICAgZm9yIChjb25zdCBhc3NldFBhdGggb2YgT2JqZWN0LmtleXMoY29udGVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRFbGVtZW50ID0gY29udGVudFthc3NldFBhdGhdID8/IHJlamVjdCgpO1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBhc3NldFBhdGgpO1xuICAgICAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguZGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50RWxlbWVudCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgY29udGVudEVsZW1lbnQsIFwidXRmOFwiKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZpbGVQYXRoLCBCdWZmZXIuZnJvbShjb250ZW50RWxlbWVudC5iYXNlNjRjb250ZW50LCBcImJhc2U2NFwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZXhpc3RzKGdlbmVyYXRvclNvdXJjZTogR2VuZXJhdG9yU291cmNlLCBnZnY6IHN0cmluZywgZGVwc0hhc2g6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAoZ2VuZXJhdG9yU291cmNlLnR5cGUgPT09IFwiR2VuZXJhdG9yU291cmNlc1wiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJMb2NhbCBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydHMgY2FjaGluZ1wiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tb2RlID09PSBCdWlsZENhY2hlTW9kZS5EaXNhYmxlZCB8fCB0aGlzLm1vZGUgPT09IEJ1aWxkQ2FjaGVNb2RlLkZvcmNlVXBkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGVkRmlsZVBhdGggPSBhd2FpdCB0aGlzLmV4aXN0c0ZpbGVDYWNoZU9yRG93bmxvYWQoZ2Z2LCBnZW5lcmF0b3JTb3VyY2UudmVyc2lvbiwgZGVwc0hhc2gpO1xuICAgICAgICByZXR1cm4gY2FjaGVkRmlsZVBhdGggIT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRDb250ZW50KFxuICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IHN0cmluZyxcbiAgICAgICAgZ2Z2OiBzdHJpbmcsXG4gICAgICAgIGRlcHNIYXNoOiBzdHJpbmcsXG4gICAgICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICBmaWxlQ29udGVudDogc3RyaW5nXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGNhY2hlRmlsZVBhdGggPSB0aGlzLmdldENhY2hlRmlsZVBhdGgoZ2Z2LCBnZW5lcmF0b3JTb3VyY2UsIGRlcHNIYXNoKTtcbiAgICAgICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhjYWNoZUZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICBsZXQgY29udGVudDogQnVpbGRSZXN1bHRzU2VyaWFsaXplZCA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUoY2FjaGVGaWxlUGF0aCwgXCJ1dGYtOFwiKSk7XG4gICAgICAgIGNvbnRlbnQgPSB7XG4gICAgICAgICAgICAuLi5jb250ZW50LFxuICAgICAgICAgICAgW2ZpbGVOYW1lXTogZmlsZUNvbnRlbnQsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZShjYWNoZUZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShjb250ZW50KSwgXCJ1dGYtOFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlV2VicGFja1BsdWdpbihvcHRpb25zOiBGb3JtQnVpbGRDYWNoZU9wdGlvbnMpOiBQcm9taXNlPENhY2hlQXNzZXRzUGx1Z2luIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmIChvcHRpb25zLm1vZGUgPT09IEJ1aWxkQ2FjaGVNb2RlLkRpc2FibGVkIHx8IG9wdGlvbnMubW9kZSA9PT0gQnVpbGRDYWNoZU1vZGUuUmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGVkRmlsZVBhdGggPSBhd2FpdCB0aGlzLmV4aXN0c0ZpbGVDYWNoZU9yRG93bmxvYWQoXG4gICAgICAgICAgICBvcHRpb25zLmdmdixcbiAgICAgICAgICAgIG9wdGlvbnMuZ2VuZXJhdG9yVmVyc2lvbixcbiAgICAgICAgICAgIG9wdGlvbnMuZGVwc0hhc2hcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGNhY2hlZEZpbGVQYXRoICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbmV3IENhY2hlQXNzZXRzUGx1Z2luKHtcbiAgICAgICAgICAgICAgICBjYWNoZUZpbGU6IGNhY2hlZEZpbGVQYXRoLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENhY2hlRmlsZVBhdGgoZ2Z2OiBzdHJpbmcsIGdlbmVyYXRvclZlcnNpb246IHN0cmluZywgZGVwc0hhc2g6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7bWQ1KGdmdil9LSR7bWQ1KGdlbmVyYXRvclZlcnNpb24pfS0ke2RlcHNIYXNofS56aXBgO1xuICAgICAgICByZXR1cm4gcGF0aC5qb2luKHRoaXMuZmFybURpcmVjdG9yeSwgXCIuYnVpbGQtY2FjaGVcIiwgXCJjb21waWxlXCIsIGZpbGVOYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGV4aXN0c0ZpbGVDYWNoZU9yRG93bmxvYWQoXG4gICAgICAgIGdmdjogc3RyaW5nLFxuICAgICAgICBnZW5lcmF0b3JWZXJzaW9uOiBzdHJpbmcsXG4gICAgICAgIGRlcHNIYXNoOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZ2V0Q2FjaGVGaWxlUGF0aChnZnYsIGdlbmVyYXRvclZlcnNpb24sIGRlcHNIYXNoKTtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKGBTdGFydCBzZWFyY2ggZmlsZSBpbiBsb2NhbCAke2ZpbGVQYXRofWApO1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIubG9nKGBGb3VuZCBmaWxlIGluIGxvY2FsIGRpcmVjdG9yeWApO1xuICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coXCJUaGUgY2FjaGUgZmlsZSB3YXMgbm90IGZvdW5kIGluIHRoZSBsb2NhbCBkaXJlY3RvcnkgSW0gbG9va2luZyBmb3IgaXQgaW4gZHJpdmVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgaHR0cHM6Ly9hcGkua29udHVyLnJ1L2RyaXZlL3YxL3B1YmxpYy8ke3BhdGguYmFzZW5hbWUoZmlsZVBhdGgpfWApO1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhgRHJpdmUgcmVzcG9uc2Ugc3RhdHVzIGNvZGU6ICR7cmVzcG9uc2Uuc3RhdHVzLnRvU3RyaW5nKCl9YCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgYXdhaXQgcmVzcG9uc2UuYnVmZmVyKCksIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiVGhlIGNhY2hlIGZpbGUgbm90IGZvdW5kIGluIGRyaXZlIHN0b3JhZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgRHJpdmUgc3RvcmFnZSBzZW5kICR7cmVzcG9uc2Uuc3RhdHVzfSBzdGF0dXMgY29kZSwgSSBkb24ndCBwcm9jZXNzIGl0IGluIGFueSB3YXlgXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiRHJpdmUgc3RvcmFnZSByZXNwb25kZWQgd2l0aCBhbiBlcnJvclwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIlRoZSBidWlsZCB3aWxsIGNvbnRpbnVlIHdpdGhvdXQgYSBjYWNoZVwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -16,7 +16,7 @@ var _webpack = _interopRequireDefault(require("webpack"));
|
|
|
16
16
|
var _CacheAssetsPlugin = require("./CacheAssetsPlugin");
|
|
17
17
|
|
|
18
18
|
// tslint:disable no-any no-unsafe-any no-invalid-this
|
|
19
|
-
function createConfigVariant(options) {
|
|
19
|
+
async function createConfigVariant(options) {
|
|
20
20
|
const {
|
|
21
21
|
gfv
|
|
22
22
|
} = options;
|
|
@@ -25,6 +25,7 @@ function createConfigVariant(options) {
|
|
|
25
25
|
const formPath = _path.default.join(options.formsDirectoryPath, gfv);
|
|
26
26
|
|
|
27
27
|
const buildCache = options.buildCacheOptions != undefined ? new _CacheAssetsPlugin.BuildCache(options.buildCacheOptions.farmDirectory, options.buildCacheOptions.mode) : undefined;
|
|
28
|
+
const buildCacheWebpackPlugin = buildCache != undefined && options.buildCacheOptions != undefined ? await buildCache.createWebpackPlugin(options.buildCacheOptions) : undefined;
|
|
28
29
|
return {
|
|
29
30
|
mode: options.mode,
|
|
30
31
|
target: ["web", "es5"],
|
|
@@ -120,7 +121,7 @@ function createConfigVariant(options) {
|
|
|
120
121
|
NODE_ENV: JSON.stringify(options.mode),
|
|
121
122
|
RESOURCES_HASH: JSON.stringify(options.resourcesHash)
|
|
122
123
|
}
|
|
123
|
-
}),
|
|
124
|
+
}), buildCacheWebpackPlugin].filter(isNotNullOrUndefined)
|
|
124
125
|
};
|
|
125
126
|
}
|
|
126
127
|
|
|
@@ -142,6 +143,6 @@ function createConfig(options) {
|
|
|
142
143
|
}));
|
|
143
144
|
}
|
|
144
145
|
|
|
145
|
-
return result;
|
|
146
|
+
return Promise.all(result);
|
|
146
147
|
}
|
|
147
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtV2VicGFja0NvbmZpZ3VyYXRpb24vY3JlYXRlRm9ybVdlYnBhY2tDb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbImNyZWF0ZUNvbmZpZ1ZhcmlhbnQiLCJvcHRpb25zIiwiZ2Z2IiwiZmlsZU5hbWVTdWZmaXgiLCJtb2RlIiwiZm9ybVBhdGgiLCJwYXRoIiwiam9pbiIsImZvcm1zRGlyZWN0b3J5UGF0aCIsImJ1aWxkQ2FjaGUiLCJidWlsZENhY2hlT3B0aW9ucyIsInVuZGVmaW5lZCIsIkJ1aWxkQ2FjaGUiLCJmYXJtRGlyZWN0b3J5IiwidGFyZ2V0IiwiY29udGV4dCIsInJlc29sdmUiLCJvdXRwdXQiLCJmaWxlbmFtZSIsInJlc291cmNlc0RpcmVjdG9yeVBhdGgiLCJwdWJsaWNQYXRoIiwiYWxpYXMiLCJfX2Rpcm5hbWUiLCJ2YXJpYWJsZXMiLCJSZXNvdXJjZXMiLCJleHRlbnNpb25zIiwiZW50cnkiLCJkZXZ0b29sIiwibW9kdWxlIiwicnVsZXMiLCJ0ZXN0IiwidXNlIiwibG9hZGVyIiwiTWluaUNzc0V4dHJhY3RQbHVnaW4iLCJyZXF1aXJlIiwibW9kdWxlcyIsImxvY2FsSWRlbnROYW1lIiwicG9zdGNzc09wdGlvbnMiLCJpZGVudCIsInBsdWdpbnMiLCJvdmVycmlkZUJyb3dzZXJzbGlzdCIsImJhYmVscmMiLCJjb25maWdGaWxlIiwicHJlc2V0cyIsInRhcmdldHMiLCJicm93c2VycyIsImxvb3NlIiwibGVnYWN5IiwiZXhjbHVkZSIsIm5hbWUiLCJ3ZWJwYWNrIiwiRGVmaW5lUGx1Z2luIiwiR0ZWIiwiSlNPTiIsInN0cmluZ2lmeSIsIk5PREVfRU5WIiwiUkVTT1VSQ0VTX0hBU0giLCJyZXNvdXJjZXNIYXNoIiwiY3JlYXRlV2VicGFja1BsdWdpbiIsImZpbHRlciIsImlzTm90TnVsbE9yVW5kZWZpbmVkIiwiaW5wdXQiLCJjcmVhdGVDb25maWciLCJyZXN1bHQiLCJtb2RlcyIsInB1c2giXSwibWFw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aEI7QUFDSDs7QUFhTSxTQUFTbUQsWUFBVCxDQUFzQjdELE9BQXRCLEVBQW1GO0FBQ3RGLFFBQU04RCxNQUF1QixHQUFHLEVBQWhDOztBQUVBLE9BQUssTUFBTTNELElBQVgsSUFBbUJILE9BQU8sQ0FBQytELEtBQTNCLEVBQWtDO0FBQzlCRCxJQUFBQSxNQUFNLENBQUNFLElBQVAsQ0FDSWpFLG1CQUFtQixDQUFDO0FBQ2hCRSxNQUFBQSxHQUFHLEVBQUVELE9BQU8sQ0FBQ0MsR0FERztBQUVoQnVELE1BQUFBLGFBQWEsRUFBRXhELE9BQU8sQ0FBQ3dELGFBRlA7QUFHaEJqRCxNQUFBQSxrQkFBa0IsRUFBRVAsT0FBTyxDQUFDTyxrQkFIWjtBQUloQlcsTUFBQUEsc0JBQXNCLEVBQUVsQixPQUFPLENBQUNrQixzQkFKaEI7QUFLaEJmLE1BQUFBLElBQUksRUFBRUEsSUFMVTtBQU1oQk0sTUFBQUEsaUJBQWlCLEVBQUVULE9BQU8sQ0FBQ1M7QUFOWCxLQUFELENBRHZCO0FBVUg7O0FBQ0QsU0FBT3FELE1BQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlIG5vLWFueSBuby11bnNhZmUtYW55IG5vLWludmFsaWQtdGhpc1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IE1pbmlDc3NFeHRyYWN0UGx1Z2luIGZyb20gXCJtaW5pLWNzcy1leHRyYWN0LXBsdWdpblwiO1xuaW1wb3J0IHdlYnBhY2ssIHsgQ29uZmlndXJhdGlvbiB9IGZyb20gXCJ3ZWJwYWNrXCI7XG5cbmltcG9ydCB7IEJ1aWxkQ2FjaGUsIEZvcm1CdWlsZENhY2hlT3B0aW9ucyB9IGZyb20gXCIuL0NhY2hlQXNzZXRzUGx1Z2luXCI7XG5cbmludGVyZmFjZSBDcmVhdGVXZWJwYWNrQ29uZmlndXJhdGlvblZhcmlhbnRPcHRpb25zIHtcbiAgICBnZnY6IHN0cmluZztcbiAgICByZXNvdXJjZXNIYXNoOiBzdHJpbmc7XG4gICAgZm9ybXNEaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG4gICAgbW9kZT86IFwicHJvZHVjdGlvblwiIHwgXCJkZXZlbG9wbWVudFwiO1xuICAgIHJlc291cmNlc0RpcmVjdG9yeVBhdGg6IHN0cmluZztcbiAgICBidWlsZENhY2hlT3B0aW9ucz86IEZvcm1CdWlsZENhY2hlT3B0aW9ucztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29uZmlnVmFyaWFudChvcHRpb25zOiBDcmVhdGVXZWJwYWNrQ29uZmlndXJhdGlvblZhcmlhbnRPcHRpb25zKTogQ29uZmlndXJhdGlvbiB7XG4gICAgY29uc3QgeyBnZnYgfSA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBmaWxlTmFtZVN1ZmZpeCA9IG9wdGlvbnMubW9kZSA9PT0gXCJwcm9kdWN0aW9uXCIgPyBcIi5taW5cIiA6IFwiXCI7XG5cbiAgICBjb25zdCBmb3JtUGF0aCA9IHBhdGguam9pbihvcHRpb25zLmZvcm1zRGlyZWN0b3J5UGF0aCwgZ2Z2KTtcbiAgICBjb25zdCBidWlsZENhY2hlID1cbiAgICAgICAgb3B0aW9ucy5idWlsZENhY2hlT3B0aW9ucyAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gbmV3IEJ1aWxkQ2FjaGUob3B0aW9ucy5idWlsZENhY2hlT3B0aW9ucy5mYXJtRGlyZWN0b3J5LCBvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zLm1vZGUpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgICBtb2RlOiBvcHRpb25zLm1vZGUsXG4gICAgICAgIHRhcmdldDogW1wid2ViXCIsIFwiZXM1XCJdLFxuICAgICAgICBjb250ZXh0OiBwYXRoLnJlc29sdmUob3B0aW9ucy5mb3Jtc0RpcmVjdG9yeVBhdGgsIFwiLi5cIiksXG4gICAgICAgIG91dHB1dDoge1xuICAgICAgICAgICAgZmlsZW5hbWU6IGBwdWJsaWMvc2NyaXB0cy8ke2dmdn0ke2ZpbGVOYW1lU3VmZml4fS5qc2AsXG4gICAgICAgICAgICBwYXRoOiBvcHRpb25zLnJlc291cmNlc0RpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICBwdWJsaWNQYXRoOiBcIi9zdGF0aWMvXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgIGFsaWFzOiB7XG4gICAgICAgICAgICAgICAgXCJ2YXJpYWJsZXMubGVzc1wiOiBwYXRoLnJlc29sdmUocGF0aC5qb2luKF9fZGlybmFtZSwgXCJ2YXJpYWJsZXMubGVzc1wiKSksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiBwYXRoLnJlc29sdmUocGF0aC5qb2luKF9fZGlybmFtZSwgXCJ2YXJpYWJsZXMubGVzc1wiKSksXG4gICAgICAgICAgICAgICAgUmVzb3VyY2VzOiBwYXRoLmpvaW4oZm9ybVBhdGgsIFwiZm9ybVwiLCBcInJlc291cmNlc1wiKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleHRlbnNpb25zOiBbXCIuanNcIiwgXCIuanN4XCJdLFxuICAgICAgICB9LFxuICAgICAgICBlbnRyeTogW3BhdGguam9pbihmb3JtUGF0aCwgXCJmb3JtXCIsIFwiLi93ZWJcIildLFxuICAgICAgICBkZXZ0b29sOiBvcHRpb25zLm1vZGUgPT09IFwicHJvZHVjdGlvblwiID8gdW5kZWZpbmVkIDogXCJpbmxpbmUtc291cmNlLW1hcFwiLFxuICAgICAgICBtb2R1bGU6IHtcbiAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXN0OiAvXFwubGVzcyQvLFxuICAgICAgICAgICAgICAgICAgICB1c2U6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogTWluaUNzc0V4dHJhY3RQbHVnaW4ubG9hZGVyIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7IHB1YmxpY1BhdGg6IFwiLi4vLi4vXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVyOiByZXF1aXJlLnJlc29sdmUoXCJjc3MtbG9hZGVyXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxJZGVudE5hbWU6IFwiW2hhc2g6YmFzZTY0OjVdXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVyOiByZXF1aXJlLnJlc29sdmUoXCJwb3N0Y3NzLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rjc3NPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudDogXCJwb3N0Y3NzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZSBuby1yZXF1aXJlLWltcG9ydHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmUoXCJhdXRvcHJlZml4ZXJcIikoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyDQn9GA0L7RgdGC0L4g0LTQtdGE0L7Qu9GC0L3Ri9C1INC30L3QsNGH0LXQvdC40LUg0LjQtyDRgtC10LrRg9GJ0LXQs9C+ICgxLjcuNykgYnJvd3NlcnNsaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlQnJvd3NlcnNsaXN0OiBcIj4gMSUsIGxhc3QgMiB2ZXJzaW9ucywgRmlyZWZveCBFU1JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVyOiByZXF1aXJlLnJlc29sdmUoXCJsZXNzLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRlc3Q6IC9cXC5qc3g/JC8sXG4gICAgICAgICAgICAgICAgICAgIHVzZTogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogcmVxdWlyZS5yZXNvbHZlKFwiYmFiZWwtbG9hZGVyXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFiZWxyYzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzZXRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlLnJlc29sdmUoXCJAYmFiZWwvcHJlc2V0LXJlYWN0XCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmUucmVzb2x2ZShcIkBiYWJlbC9wcmVzZXQtZW52XCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0czogeyBicm93c2VyczogXCI+IDAlXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vc2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlLnJlc29sdmUoXCJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWRlY29yYXRvcnNcIiksIHsgbGVnYWN5OiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmUucmVzb2x2ZShcIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtY2xhc3MtcHJvcGVydGllc1wiKSwgeyBsb29zZTogdHJ1ZSB9XSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmUucmVzb2x2ZShcIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtZXhwb3J0LWRlZmF1bHQtZnJvbVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZTogWy9ub2RlX21vZHVsZXMvXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGVzdDogL1xcLihwbmd8c3ZnKSQvLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZXI6IHJlcXVpcmUucmVzb2x2ZShcImZpbGUtbG9hZGVyXCIpLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7IG5hbWU6IFwicHVibGljL2ltYWdlcy9baGFzaF0uW2V4dF1cIiB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXN0OiAvXFwuKHR0Znxlb3R8d29mZjI/KSQvLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZXI6IHJlcXVpcmUucmVzb2x2ZShcImZpbGUtbG9hZGVyXCIpLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7IG5hbWU6IFwicHVibGljL2ZvbnRzL1toYXNoXS5bZXh0XVwiIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3Ig0J/QvtGH0LjQvdC40YLRgdGPLCDQutC+0LPQtNCwINCy0YHQtSDQu9C40LHRiyDQvtCx0L3QvtCy0Y/RgtGB0Y9cbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgICAgbmV3IE1pbmlDc3NFeHRyYWN0UGx1Z2luKHtcbiAgICAgICAgICAgICAgICBmaWxlbmFtZTogYHB1YmxpYy9zdHlsZXMvJHtnZnZ9JHtmaWxlTmFtZVN1ZmZpeH0uY3NzYCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IHdlYnBhY2suRGVmaW5lUGx1Z2luKHtcbiAgICAgICAgICAgICAgICBcInByb2Nlc3MuZW52XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgR0ZWOiBKU09OLnN0cmluZ2lmeShnZnYpLFxuICAgICAgICAgICAgICAgICAgICBOT0RFX0VOVjogSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5tb2RlKSxcbiAgICAgICAgICAgICAgICAgICAgUkVTT1VSQ0VTX0hBU0g6IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMucmVzb3VyY2VzSGFzaCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgYnVpbGRDYWNoZSAhPSB1bmRlZmluZWQgJiYgb3B0aW9ucy5idWlsZENhY2hlT3B0aW9ucyAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IGJ1aWxkQ2FjaGUuY3JlYXRlV2VicGFja1BsdWdpbihvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBdLmZpbHRlcihpc05vdE51bGxPclVuZGVmaW5lZCksXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gaXNOb3ROdWxsT3JVbmRlZmluZWQ8VD4oaW5wdXQ6IFQgfCB1bmRlZmluZWQgfCBudWxsKTogaW5wdXQgaXMgVCB7XG4gICAgcmV0dXJuIGlucHV0ICE9IHVuZGVmaW5lZDtcbn1cblxudHlwZSBCdWlsZE1vZGUgPSBcInByb2R1Y3Rpb25cIiB8IFwiZGV2ZWxvcG1lbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVXZWJwYWNrQ29uZmlndXJhdGlvbk9wdGlvbnMge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIHJlc291cmNlc0hhc2g6IHN0cmluZztcbiAgICBmb3Jtc0RpcmVjdG9yeVBhdGg6IHN0cmluZztcbiAgICByZXNvdXJjZXNEaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG4gICAgbW9kZXM6IEJ1aWxkTW9kZVtdO1xuICAgIGJ1aWxkQ2FjaGVPcHRpb25zPzogRm9ybUJ1aWxkQ2FjaGVPcHRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29uZmlnKG9wdGlvbnM6IENyZWF0ZVdlYnBhY2tDb25maWd1cmF0aW9uT3B0aW9ucyk6IENvbmZpZ3VyYXRpb25bXSB7XG4gICAgY29uc3QgcmVzdWx0OiBDb25maWd1cmF0aW9uW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgbW9kZSBvZiBvcHRpb25zLm1vZGVzKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICAgY3JlYXRlQ29uZmlnVmFyaWFudCh7XG4gICAgICAgICAgICAgICAgZ2Z2OiBvcHRpb25zLmdmdixcbiAgICAgICAgICAgICAgICByZXNvdXJjZXNIYXNoOiBvcHRpb25zLnJlc291cmNlc0hhc2gsXG4gICAgICAgICAgICAgICAgZm9ybXNEaXJlY3RvcnlQYXRoOiBvcHRpb25zLmZvcm1zRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnlQYXRoOiBvcHRpb25zLnJlc291cmNlc0RpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICAgICAgbW9kZTogbW9kZSxcbiAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9uczogb3B0aW9ucy5idWlsZENhY2hlT3B0aW9ucyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
|
148
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtV2VicGFja0NvbmZpZ3VyYXRpb24vY3JlYXRlRm9ybVdlYnBhY2tDb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbImNyZWF0ZUNvbmZpZ1ZhcmlhbnQiLCJvcHRpb25zIiwiZ2Z2IiwiZmlsZU5hbWVTdWZmaXgiLCJtb2RlIiwiZm9ybVBhdGgiLCJwYXRoIiwiam9pbiIsImZvcm1zRGlyZWN0b3J5UGF0aCIsImJ1aWxkQ2FjaGUiLCJidWlsZENhY2hlT3B0aW9ucyIsInVuZGVmaW5lZCIsIkJ1aWxkQ2FjaGUiLCJmYXJtRGlyZWN0b3J5IiwiYnVpbGRDYWNoZVdlYnBhY2tQbHVnaW4iLCJjcmVhdGVXZWJwYWNrUGx1Z2luIiwidGFyZ2V0IiwiY29udGV4dCIsInJlc29sdmUiLCJvdXRwdXQiLCJmaWxlbmFtZSIsInJlc291cmNlc0RpcmVjdG9yeVBhdGgiLCJwdWJsaWNQYXRoIiwiYWxpYXMiLCJfX2Rpcm5hbWUiLCJ2YXJpYWJsZXMiLCJSZXNvdXJjZXMiLCJleHRlbnNpb25zIiwiZW50cnkiLCJkZXZ0b29sIiwibW9kdWxlIiwicnVsZXMiLCJ0ZXN0IiwidXNlIiwibG9hZGVyIiwiTWluaUNzc0V4dHJhY3RQbHVnaW4iLCJyZXF1aXJlIiwibW9kdWxlcyIsImxvY2FsSWRlbnROYW1lIiwicG9zdGNzc09wdGlvbnMiLCJpZGVudCIsInBsdWdpbnMiLCJvdmVycmlkZUJyb3dzZXJzbGlzdCIsImJhYmVscmMiLCJjb25maWdGaWxlIiwicHJlc2V0cyIsInRhcmdldHMiLCJicm93c2VycyIsImxvb3NlIiwibGVnYWN5IiwiZXhjbHVkZSIsIm5hbWUiLCJ3ZWJwYWNrIiwiRGVmaW5lUGx1Z2luIiwiR0ZWIiwiSlNPTiIsInN0cmluZ2lmeSIsIk5PREVfRU5WIiwiUkVTT1VSQ0VTX0hBU0giLCJyZXNvdXJjZXNIYXNoIiwiZmlsdGVyIiwiaXNOb3ROdWxsT3JVbmRlZmluZWQiLCJpbnB1dCIsImNyZWF0ZUNvbmZpZyIsInJl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QVpBO0FBbkdOLEdBQVA7QUFpSEg7O0FBRUQsU0FBU0Esb0JBQVQsQ0FBaUNDLEtBQWpDLEVBQTBFO0FBQ3RFLFNBQU9BLEtBQUssSUFBSW5ELFNBQWhCO0FBQ0g7O0FBYU0sU0FBU29ELFlBQVQsQ0FBc0I5RCxPQUF0QixFQUE0RjtBQUMvRixRQUFNK0QsTUFBcUMsR0FBRyxFQUE5Qzs7QUFFQSxPQUFLLE1BQU01RCxJQUFYLElBQW1CSCxPQUFPLENBQUNnRSxLQUEzQixFQUFrQztBQUM5QkQsSUFBQUEsTUFBTSxDQUFDRSxJQUFQLENBQ0lsRSxtQkFBbUIsQ0FBQztBQUNoQkUsTUFBQUEsR0FBRyxFQUFFRCxPQUFPLENBQUNDLEdBREc7QUFFaEJ5RCxNQUFBQSxhQUFhLEVBQUUxRCxPQUFPLENBQUMwRCxhQUZQO0FBR2hCbkQsTUFBQUEsa0JBQWtCLEVBQUVQLE9BQU8sQ0FBQ08sa0JBSFo7QUFJaEJhLE1BQUFBLHNCQUFzQixFQUFFcEIsT0FBTyxDQUFDb0Isc0JBSmhCO0FBS2hCakIsTUFBQUEsSUFBSSxFQUFFQSxJQUxVO0FBTWhCTSxNQUFBQSxpQkFBaUIsRUFBRVQsT0FBTyxDQUFDUztBQU5YLEtBQUQsQ0FEdkI7QUFVSDs7QUFDRCxTQUFPeUQsT0FBTyxDQUFDQyxHQUFSLENBQVlKLE1BQVosQ0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGUgbm8tYW55IG5vLXVuc2FmZS1hbnkgbm8taW52YWxpZC10aGlzXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgTWluaUNzc0V4dHJhY3RQbHVnaW4gZnJvbSBcIm1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXCI7XG5pbXBvcnQgd2VicGFjaywgeyBDb25maWd1cmF0aW9uIH0gZnJvbSBcIndlYnBhY2tcIjtcblxuaW1wb3J0IHsgQnVpbGRDYWNoZSwgRm9ybUJ1aWxkQ2FjaGVPcHRpb25zIH0gZnJvbSBcIi4vQ2FjaGVBc3NldHNQbHVnaW5cIjtcblxuaW50ZXJmYWNlIENyZWF0ZVdlYnBhY2tDb25maWd1cmF0aW9uVmFyaWFudE9wdGlvbnMge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIHJlc291cmNlc0hhc2g6IHN0cmluZztcbiAgICBmb3Jtc0RpcmVjdG9yeVBhdGg6IHN0cmluZztcbiAgICBtb2RlPzogXCJwcm9kdWN0aW9uXCIgfCBcImRldmVsb3BtZW50XCI7XG4gICAgcmVzb3VyY2VzRGlyZWN0b3J5UGF0aDogc3RyaW5nO1xuICAgIGJ1aWxkQ2FjaGVPcHRpb25zPzogRm9ybUJ1aWxkQ2FjaGVPcHRpb25zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVDb25maWdWYXJpYW50KG9wdGlvbnM6IENyZWF0ZVdlYnBhY2tDb25maWd1cmF0aW9uVmFyaWFudE9wdGlvbnMpOiBQcm9taXNlPENvbmZpZ3VyYXRpb24+IHtcbiAgICBjb25zdCB7IGdmdiB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGZpbGVOYW1lU3VmZml4ID0gb3B0aW9ucy5tb2RlID09PSBcInByb2R1Y3Rpb25cIiA/IFwiLm1pblwiIDogXCJcIjtcblxuICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5qb2luKG9wdGlvbnMuZm9ybXNEaXJlY3RvcnlQYXRoLCBnZnYpO1xuICAgIGNvbnN0IGJ1aWxkQ2FjaGUgPVxuICAgICAgICBvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBuZXcgQnVpbGRDYWNoZShvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zLmZhcm1EaXJlY3RvcnksIG9wdGlvbnMuYnVpbGRDYWNoZU9wdGlvbnMubW9kZSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYnVpbGRDYWNoZVdlYnBhY2tQbHVnaW4gPVxuICAgICAgICBidWlsZENhY2hlICE9IHVuZGVmaW5lZCAmJiBvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBhd2FpdCBidWlsZENhY2hlLmNyZWF0ZVdlYnBhY2tQbHVnaW4ob3B0aW9ucy5idWlsZENhY2hlT3B0aW9ucylcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbW9kZTogb3B0aW9ucy5tb2RlLFxuICAgICAgICB0YXJnZXQ6IFtcIndlYlwiLCBcImVzNVwiXSxcbiAgICAgICAgY29udGV4dDogcGF0aC5yZXNvbHZlKG9wdGlvbnMuZm9ybXNEaXJlY3RvcnlQYXRoLCBcIi4uXCIpLFxuICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIGZpbGVuYW1lOiBgcHVibGljL3NjcmlwdHMvJHtnZnZ9JHtmaWxlTmFtZVN1ZmZpeH0uanNgLFxuICAgICAgICAgICAgcGF0aDogb3B0aW9ucy5yZXNvdXJjZXNEaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgcHVibGljUGF0aDogXCIvc3RhdGljL1wiLFxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlOiB7XG4gICAgICAgICAgICBhbGlhczoge1xuICAgICAgICAgICAgICAgIFwidmFyaWFibGVzLmxlc3NcIjogcGF0aC5yZXNvbHZlKHBhdGguam9pbihfX2Rpcm5hbWUsIFwidmFyaWFibGVzLmxlc3NcIikpLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogcGF0aC5yZXNvbHZlKHBhdGguam9pbihfX2Rpcm5hbWUsIFwidmFyaWFibGVzLmxlc3NcIikpLFxuICAgICAgICAgICAgICAgIFJlc291cmNlczogcGF0aC5qb2luKGZvcm1QYXRoLCBcImZvcm1cIiwgXCJyZXNvdXJjZXNcIiksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXh0ZW5zaW9uczogW1wiLmpzXCIsIFwiLmpzeFwiXSxcbiAgICAgICAgfSxcbiAgICAgICAgZW50cnk6IFtwYXRoLmpvaW4oZm9ybVBhdGgsIFwiZm9ybVwiLCBcIi4vd2ViXCIpXSxcbiAgICAgICAgZGV2dG9vbDogb3B0aW9ucy5tb2RlID09PSBcInByb2R1Y3Rpb25cIiA/IHVuZGVmaW5lZCA6IFwiaW5saW5lLXNvdXJjZS1tYXBcIixcbiAgICAgICAgbW9kdWxlOiB7XG4gICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGVzdDogL1xcLmxlc3MkLyxcbiAgICAgICAgICAgICAgICAgICAgdXNlOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXI6IE1pbmlDc3NFeHRyYWN0UGx1Z2luLmxvYWRlciBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogeyBwdWJsaWNQYXRoOiBcIi4uLy4uL1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogcmVxdWlyZS5yZXNvbHZlKFwiY3NzLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsSWRlbnROYW1lOiBcIltoYXNoOmJhc2U2NDo1XVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogcmVxdWlyZS5yZXNvbHZlKFwicG9zdGNzcy1sb2FkZXJcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0Y3NzT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnQ6IFwicG9zdGNzc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUgbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlKFwiYXV0b3ByZWZpeGVyXCIpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g0J/RgNC+0YHRgtC+INC00LXRhNC+0LvRgtC90YvQtSDQt9C90LDRh9C10L3QuNC1INC40Lcg0YLQtdC60YPRidC10LPQviAoMS43LjcpIGJyb3dzZXJzbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVycmlkZUJyb3dzZXJzbGlzdDogXCI+IDElLCBsYXN0IDIgdmVyc2lvbnMsIEZpcmVmb3ggRVNSXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogcmVxdWlyZS5yZXNvbHZlKFwibGVzcy1sb2FkZXJcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXN0OiAvXFwuanN4PyQvLFxuICAgICAgICAgICAgICAgICAgICB1c2U6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXI6IHJlcXVpcmUucmVzb2x2ZShcImJhYmVsLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhYmVscmM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdGaWxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2V0czogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZS5yZXNvbHZlKFwiQGJhYmVsL3ByZXNldC1yZWFjdFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlLnJlc29sdmUoXCJAYmFiZWwvcHJlc2V0LWVudlwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldHM6IHsgYnJvd3NlcnM6IFwiPiAwJVwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3NlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZS5yZXNvbHZlKFwiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1kZWNvcmF0b3JzXCIpLCB7IGxlZ2FjeTogdHJ1ZSB9XSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlLnJlc29sdmUoXCJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWNsYXNzLXByb3BlcnRpZXNcIiksIHsgbG9vc2U6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlLnJlc29sdmUoXCJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWV4cG9ydC1kZWZhdWx0LWZyb21cIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGU6IFsvbm9kZV9tb2R1bGVzL10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRlc3Q6IC9cXC4ocG5nfHN2ZykkLyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyOiByZXF1aXJlLnJlc29sdmUoXCJmaWxlLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogeyBuYW1lOiBcInB1YmxpYy9pbWFnZXMvW2hhc2hdLltleHRdXCIgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGVzdDogL1xcLih0dGZ8ZW90fHdvZmYyPykkLyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyOiByZXF1aXJlLnJlc29sdmUoXCJmaWxlLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogeyBuYW1lOiBcInB1YmxpYy9mb250cy9baGFzaF0uW2V4dF1cIiB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yINCf0L7Rh9C40L3QuNGC0YHRjywg0LrQvtCz0LTQsCDQstGB0LUg0LvQuNCx0Ysg0L7QsdC90L7QstGP0YLRgdGPXG4gICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICAgIG5ldyBNaW5pQ3NzRXh0cmFjdFBsdWdpbih7XG4gICAgICAgICAgICAgICAgZmlsZW5hbWU6IGBwdWJsaWMvc3R5bGVzLyR7Z2Z2fSR7ZmlsZU5hbWVTdWZmaXh9LmNzc2AsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyB3ZWJwYWNrLkRlZmluZVBsdWdpbih7XG4gICAgICAgICAgICAgICAgXCJwcm9jZXNzLmVudlwiOiB7XG4gICAgICAgICAgICAgICAgICAgIEdGVjogSlNPTi5zdHJpbmdpZnkoZ2Z2KSxcbiAgICAgICAgICAgICAgICAgICAgTk9ERV9FTlY6IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMubW9kZSksXG4gICAgICAgICAgICAgICAgICAgIFJFU09VUkNFU19IQVNIOiBKU09OLnN0cmluZ2lmeShvcHRpb25zLnJlc291cmNlc0hhc2gpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGJ1aWxkQ2FjaGVXZWJwYWNrUGx1Z2luLFxuICAgICAgICBdLmZpbHRlcihpc05vdE51bGxPclVuZGVmaW5lZCksXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gaXNOb3ROdWxsT3JVbmRlZmluZWQ8VD4oaW5wdXQ6IFQgfCB1bmRlZmluZWQgfCBudWxsKTogaW5wdXQgaXMgVCB7XG4gICAgcmV0dXJuIGlucHV0ICE9IHVuZGVmaW5lZDtcbn1cblxudHlwZSBCdWlsZE1vZGUgPSBcInByb2R1Y3Rpb25cIiB8IFwiZGV2ZWxvcG1lbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVXZWJwYWNrQ29uZmlndXJhdGlvbk9wdGlvbnMge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIHJlc291cmNlc0hhc2g6IHN0cmluZztcbiAgICBmb3Jtc0RpcmVjdG9yeVBhdGg6IHN0cmluZztcbiAgICByZXNvdXJjZXNEaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG4gICAgbW9kZXM6IEJ1aWxkTW9kZVtdO1xuICAgIGJ1aWxkQ2FjaGVPcHRpb25zPzogRm9ybUJ1aWxkQ2FjaGVPcHRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29uZmlnKG9wdGlvbnM6IENyZWF0ZVdlYnBhY2tDb25maWd1cmF0aW9uT3B0aW9ucyk6IFByb21pc2U8Q29uZmlndXJhdGlvbltdPiB7XG4gICAgY29uc3QgcmVzdWx0OiBBcnJheTxQcm9taXNlPENvbmZpZ3VyYXRpb24+PiA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBtb2RlIG9mIG9wdGlvbnMubW9kZXMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgICBjcmVhdGVDb25maWdWYXJpYW50KHtcbiAgICAgICAgICAgICAgICBnZnY6IG9wdGlvbnMuZ2Z2LFxuICAgICAgICAgICAgICAgIHJlc291cmNlc0hhc2g6IG9wdGlvbnMucmVzb3VyY2VzSGFzaCxcbiAgICAgICAgICAgICAgICBmb3Jtc0RpcmVjdG9yeVBhdGg6IG9wdGlvbnMuZm9ybXNEaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeVBhdGg6IG9wdGlvbnMucmVzb3VyY2VzRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICAgICAgICBtb2RlOiBtb2RlLFxuICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGVPcHRpb25zOiBvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHJlc3VsdCk7XG59XG4iXX0=
|