@kontur.candy/tools 2.122.0 → 2.123.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 CHANGED
@@ -1,3 +1,6 @@
1
+ <a name="2.123.0"></a>
2
+ # [2.123.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.116.0...release/tools/v2.123.0) (2021-11-22)
3
+
1
4
  <a name="2.122.0"></a>
2
5
  # [2.122.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.116.0...release/tools/v2.122.0) (2021-11-21)
3
6
 
@@ -42,26 +42,41 @@ const engineWebpack = require(_path.default.join(process.cwd(), "node_modules",
42
42
 
43
43
  const EngineWebpackDevServer = require(_path.default.join(process.cwd(), "node_modules", "webpack-dev-server"));
44
44
 
45
- const devServerVersion = getVersion(_path.default.join(process.cwd(), "node_modules", "webpack-dev-server")); // eslint-disable-next-line @typescript-eslint/no-var-requires
46
-
47
- const configs = require(_path.default.join(process.cwd(), webpackConfigFile))(webpackConfigEnv);
48
-
49
- const compiler = engineWebpack(configs);
50
- const server = devServerVersion.startsWith("3") ? // @ts-ignore
51
- new EngineWebpackDevServer(compiler, {
52
- port: port,
53
- disableHostCheck: true
54
- }) : new EngineWebpackDevServer({
55
- port: port,
56
- allowedHosts: "all"
57
- }, compiler);
58
- server.listen(port);
59
- process.send({
60
- message: "Started"
61
- });
45
+ const devServerVersion = getVersion(_path.default.join(process.cwd(), "node_modules", "webpack-dev-server"));
46
+
47
+ if (devServerVersion.startsWith("3")) {
48
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
49
+ const configs = require(_path.default.join(process.cwd(), webpackConfigFile))(webpackConfigEnv);
50
+
51
+ const compiler = engineWebpack(configs); // @ts-ignore
52
+
53
+ const server = new EngineWebpackDevServer(compiler, {
54
+ port: port,
55
+ disableHostCheck: true
56
+ });
57
+ server.listen(port);
58
+ process.send({
59
+ message: "Started"
60
+ });
61
+ } else {
62
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
63
+ const configs = require(_path.default.join(process.cwd(), webpackConfigFile))(webpackConfigEnv);
64
+
65
+ const compiler = engineWebpack(configs);
66
+ const server = new EngineWebpackDevServer({
67
+ port: port,
68
+ allowedHosts: "all"
69
+ }, compiler);
70
+ server.startCallback(() => {
71
+ // @ts-ignore
72
+ process.send({
73
+ message: "Started"
74
+ });
75
+ });
76
+ }
62
77
 
63
78
  function getVersion(packageDir) {
64
79
  const packageJson = JSON.parse((0, _fs.readFileSync)(_path.default.join(packageDir, "package.json"), "utf8"));
65
80
  return `${packageJson["version"]}`;
66
81
  }
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL1dlYnBhY2tEZXZTZXJ2ZXJXb3JrZXIvV2VicGFja0RldlNlcnZlcldvcmtlci50cyJdLCJuYW1lcyI6WyJ3ZWJwYWNrQ29uZmlnRmlsZSIsInByb2Nlc3MiLCJlbnYiLCJ3ZWJwYWNrV29ya2luZ0RpcmVjdG9yeSIsIndlYnBhY2tQb3J0IiwidW5kZWZpbmVkIiwiRXJyb3IiLCJwb3J0IiwicGFyc2VJbnQiLCJ3ZWJwYWNrQ29uZmlnRW52IiwiSlNPTiIsInBhcnNlIiwic2VuZCIsImNoZGlyIiwiZW5naW5lV2VicGFjayIsInJlcXVpcmUiLCJwYXRoIiwiam9pbiIsImN3ZCIsIkVuZ2luZVdlYnBhY2tEZXZTZXJ2ZXIiLCJkZXZTZXJ2ZXJWZXJzaW9uIiwiZ2V0VmVyc2lvbiIsImNvbmZpZ3MiLCJjb21waWxlciIsInNlcnZlciIsInN0YXJ0c1dpdGgiLCJkaXNhYmxlSG9zdENoZWNrIiwiYWxsb3dlZEhvc3RzIiwibGlzdGVuIiwibWVzc2FnZSIsInBhY2thZ2VEaXIiLCJwYWNrYWdlSnNvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOztBQUNBOzs7O0FBRkE7QUFPQSxNQUFNQSxpQkFBaUIsR0FBR0MsT0FBTyxDQUFDQyxHQUFSLENBQVlGLGlCQUF0QztBQUNBLE1BQU1HLHVCQUF1QixHQUFHRixPQUFPLENBQUNDLEdBQVIsQ0FBWUMsdUJBQTVDOztBQUNBLElBQUlGLE9BQU8sQ0FBQ0MsR0FBUixDQUFZRSxXQUFaLElBQTJCQyxTQUEvQixFQUEwQztBQUN0QyxRQUFNLElBQUlDLEtBQUosQ0FBVSw0QkFBVixDQUFOO0FBQ0g7O0FBRUQsTUFBTUMsSUFBSSxHQUFHQyxRQUFRLENBQUNQLE9BQU8sQ0FBQ0MsR0FBUixDQUFZRSxXQUFiLEVBQTBCLEVBQTFCLENBQXJCLEMsQ0FDQTs7QUFDQSxNQUFNSyxnQkFBcUIsR0FBR0MsSUFBSSxDQUFDQyxLQUFMLENBQVdWLE9BQU8sQ0FBQ0MsR0FBUixDQUFZTyxnQkFBWixJQUFnQyxJQUEzQyxDQUE5Qjs7QUFFQSxJQUFJUixPQUFPLENBQUNXLElBQVIsSUFBZ0JQLFNBQXBCLEVBQStCO0FBQzNCLFFBQU0sSUFBSUMsS0FBSixDQUFVLDJCQUFWLENBQU47QUFDSDs7QUFFRCxJQUFJSCx1QkFBdUIsSUFBSUUsU0FBL0IsRUFBMEM7QUFDdEMsUUFBTSxJQUFJQyxLQUFKLENBQVUsaUNBQVYsQ0FBTjtBQUNIOztBQUVELElBQUlOLGlCQUFpQixJQUFJSyxTQUF6QixFQUFvQztBQUNoQyxRQUFNLElBQUlDLEtBQUosQ0FBVSwyQkFBVixDQUFOO0FBQ0g7O0FBRURMLE9BQU8sQ0FBQ1ksS0FBUixDQUFjVix1QkFBZCxFLENBRUE7O0FBQ0EsTUFBTVcsYUFBYSxHQUFHQyxPQUFPLENBQUNDLGNBQUtDLElBQUwsQ0FBVWhCLE9BQU8sQ0FBQ2lCLEdBQVIsRUFBVixFQUF5QixjQUF6QixFQUF5QyxTQUF6QyxDQUFELENBQTdCLEMsQ0FDQTs7O0FBQ0EsTUFBTUMsc0JBQStDLEdBQUdKLE9BQU8sQ0FBQ0MsY0FBS0MsSUFBTCxDQUM1RGhCLE9BQU8sQ0FBQ2lCLEdBQVIsRUFENEQsRUFFNUQsY0FGNEQsRUFHNUQsb0JBSDRELENBQUQsQ0FBL0Q7O0FBS0EsTUFBTUUsZ0JBQWdCLEdBQUdDLFVBQVUsQ0FBQ0wsY0FBS0MsSUFBTCxDQUFVaEIsT0FBTyxDQUFDaUIsR0FBUixFQUFWLEVBQXlCLGNBQXpCLEVBQXlDLG9CQUF6QyxDQUFELENBQW5DLEMsQ0FDQTs7QUFDQSxNQUFNSSxPQUFPLEdBQUdQLE9BQU8sQ0FBQ0MsY0FBS0MsSUFBTCxDQUFVaEIsT0FBTyxDQUFDaUIsR0FBUixFQUFWLEVBQXlCbEIsaUJBQXpCLENBQUQsQ0FBUCxDQUFxRFMsZ0JBQXJELENBQWhCOztBQUNBLE1BQU1jLFFBQXVCLEdBQUdULGFBQWEsQ0FBQ1EsT0FBRCxDQUE3QztBQUNBLE1BQU1FLE1BQXdCLEdBQUdKLGdCQUFnQixDQUFDSyxVQUFqQixDQUE0QixHQUE1QixJQUMzQjtBQUNBLElBQUlOLHNCQUFKLENBQTJCSSxRQUEzQixFQUFxQztBQUNqQ2hCLEVBQUFBLElBQUksRUFBRUEsSUFEMkI7QUFFakNtQixFQUFBQSxnQkFBZ0IsRUFBRTtBQUZlLENBQXJDLENBRjJCLEdBTTNCLElBQUlQLHNCQUFKLENBQ0k7QUFDSVosRUFBQUEsSUFBSSxFQUFFQSxJQURWO0FBRUlvQixFQUFBQSxZQUFZLEVBQUU7QUFGbEIsQ0FESixFQUtJSixRQUxKLENBTk47QUFhQUMsTUFBTSxDQUFDSSxNQUFQLENBQWNyQixJQUFkO0FBQ0FOLE9BQU8sQ0FBQ1csSUFBUixDQUFhO0FBQUVpQixFQUFBQSxPQUFPLEVBQUU7QUFBWCxDQUFiOztBQUVPLFNBQVNSLFVBQVQsQ0FBb0JTLFVBQXBCLEVBQWdEO0FBQ25ELFFBQU1DLFdBQVcsR0FBR3JCLElBQUksQ0FBQ0MsS0FBTCxDQUFXLHNCQUFhSyxjQUFLQyxJQUFMLENBQVVhLFVBQVYsRUFBc0IsY0FBdEIsQ0FBYixFQUFvRCxNQUFwRCxDQUFYLENBQXBCO0FBQ0EsU0FBUSxHQUFFQyxXQUFXLENBQUMsU0FBRCxDQUFZLEVBQWpDO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZSBuby12YXItcmVxdWlyZXMgbm8tdW5zYWZlLWFueVxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJmc1wiO1xuXG5pbXBvcnQgeyBNdWx0aUNvbXBpbGVyIH0gZnJvbSBcIndlYnBhY2tcIjtcbmltcG9ydCBXZWJwYWNrRGV2U2VydmVyIGZyb20gXCJ3ZWJwYWNrLWRldi1zZXJ2ZXJcIjtcblxuY29uc3Qgd2VicGFja0NvbmZpZ0ZpbGUgPSBwcm9jZXNzLmVudi53ZWJwYWNrQ29uZmlnRmlsZTtcbmNvbnN0IHdlYnBhY2tXb3JraW5nRGlyZWN0b3J5ID0gcHJvY2Vzcy5lbnYud2VicGFja1dvcmtpbmdEaXJlY3Rvcnk7XG5pZiAocHJvY2Vzcy5lbnYud2VicGFja1BvcnQgPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU2hvdWxkIHNwZWNpZnkgd2VicGFja1BvcnRcIik7XG59XG5cbmNvbnN0IHBvcnQgPSBwYXJzZUludChwcm9jZXNzLmVudi53ZWJwYWNrUG9ydCwgMTApO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmNvbnN0IHdlYnBhY2tDb25maWdFbnY6IGFueSA9IEpTT04ucGFyc2UocHJvY2Vzcy5lbnYud2VicGFja0NvbmZpZ0VudiB8fCBcInt9XCIpO1xuXG5pZiAocHJvY2Vzcy5zZW5kID09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlNob3VsZCBjYWxsIHZpYSBub2RlIGZvcmtcIik7XG59XG5cbmlmICh3ZWJwYWNrV29ya2luZ0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTcGVjaWZ5IHdlYnBhY2tXb3JraW5nRGlyZWN0b3J5XCIpO1xufVxuXG5pZiAod2VicGFja0NvbmZpZ0ZpbGUgPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU3BlY2lmeSB3ZWJwYWNrQ29uZmlnRmlsZVwiKTtcbn1cblxucHJvY2Vzcy5jaGRpcih3ZWJwYWNrV29ya2luZ0RpcmVjdG9yeSk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG5jb25zdCBlbmdpbmVXZWJwYWNrID0gcmVxdWlyZShwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJub2RlX21vZHVsZXNcIiwgXCJ3ZWJwYWNrXCIpKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG5jb25zdCBFbmdpbmVXZWJwYWNrRGV2U2VydmVyOiB0eXBlb2YgV2VicGFja0RldlNlcnZlciA9IHJlcXVpcmUocGF0aC5qb2luKFxuICAgIHByb2Nlc3MuY3dkKCksXG4gICAgXCJub2RlX21vZHVsZXNcIixcbiAgICBcIndlYnBhY2stZGV2LXNlcnZlclwiXG4pKTtcbmNvbnN0IGRldlNlcnZlclZlcnNpb24gPSBnZXRWZXJzaW9uKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcIm5vZGVfbW9kdWxlc1wiLCBcIndlYnBhY2stZGV2LXNlcnZlclwiKSk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuY29uc3QgY29uZmlncyA9IHJlcXVpcmUocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIHdlYnBhY2tDb25maWdGaWxlKSkod2VicGFja0NvbmZpZ0Vudik7XG5jb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IGVuZ2luZVdlYnBhY2soY29uZmlncyk7XG5jb25zdCBzZXJ2ZXI6IFdlYnBhY2tEZXZTZXJ2ZXIgPSBkZXZTZXJ2ZXJWZXJzaW9uLnN0YXJ0c1dpdGgoXCIzXCIpXG4gICAgPyAvLyBAdHMtaWdub3JlXG4gICAgICBuZXcgRW5naW5lV2VicGFja0RldlNlcnZlcihjb21waWxlciwge1xuICAgICAgICAgIHBvcnQ6IHBvcnQsXG4gICAgICAgICAgZGlzYWJsZUhvc3RDaGVjazogdHJ1ZSxcbiAgICAgIH0pXG4gICAgOiBuZXcgRW5naW5lV2VicGFja0RldlNlcnZlcihcbiAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBvcnQ6IHBvcnQsXG4gICAgICAgICAgICAgIGFsbG93ZWRIb3N0czogXCJhbGxcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbXBpbGVyXG4gICAgICApO1xuc2VydmVyLmxpc3Rlbihwb3J0KTtcbnByb2Nlc3Muc2VuZCh7IG1lc3NhZ2U6IFwiU3RhcnRlZFwiIH0pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2lvbihwYWNrYWdlRGlyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMocGF0aC5qb2luKHBhY2thZ2VEaXIsIFwicGFja2FnZS5qc29uXCIpLCBcInV0ZjhcIikpO1xuICAgIHJldHVybiBgJHtwYWNrYWdlSnNvbltcInZlcnNpb25cIl19YDtcbn1cbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL1dlYnBhY2tEZXZTZXJ2ZXJXb3JrZXIvV2VicGFja0RldlNlcnZlcldvcmtlci50cyJdLCJuYW1lcyI6WyJ3ZWJwYWNrQ29uZmlnRmlsZSIsInByb2Nlc3MiLCJlbnYiLCJ3ZWJwYWNrV29ya2luZ0RpcmVjdG9yeSIsIndlYnBhY2tQb3J0IiwidW5kZWZpbmVkIiwiRXJyb3IiLCJwb3J0IiwicGFyc2VJbnQiLCJ3ZWJwYWNrQ29uZmlnRW52IiwiSlNPTiIsInBhcnNlIiwic2VuZCIsImNoZGlyIiwiZW5naW5lV2VicGFjayIsInJlcXVpcmUiLCJwYXRoIiwiam9pbiIsImN3ZCIsIkVuZ2luZVdlYnBhY2tEZXZTZXJ2ZXIiLCJkZXZTZXJ2ZXJWZXJzaW9uIiwiZ2V0VmVyc2lvbiIsInN0YXJ0c1dpdGgiLCJjb25maWdzIiwiY29tcGlsZXIiLCJzZXJ2ZXIiLCJkaXNhYmxlSG9zdENoZWNrIiwibGlzdGVuIiwibWVzc2FnZSIsImFsbG93ZWRIb3N0cyIsInN0YXJ0Q2FsbGJhY2siLCJwYWNrYWdlRGlyIiwicGFja2FnZUpzb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFDQTs7OztBQUZBO0FBT0EsTUFBTUEsaUJBQWlCLEdBQUdDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZRixpQkFBdEM7QUFDQSxNQUFNRyx1QkFBdUIsR0FBR0YsT0FBTyxDQUFDQyxHQUFSLENBQVlDLHVCQUE1Qzs7QUFDQSxJQUFJRixPQUFPLENBQUNDLEdBQVIsQ0FBWUUsV0FBWixJQUEyQkMsU0FBL0IsRUFBMEM7QUFDdEMsUUFBTSxJQUFJQyxLQUFKLENBQVUsNEJBQVYsQ0FBTjtBQUNIOztBQUVELE1BQU1DLElBQUksR0FBR0MsUUFBUSxDQUFDUCxPQUFPLENBQUNDLEdBQVIsQ0FBWUUsV0FBYixFQUEwQixFQUExQixDQUFyQixD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QUVDLFdBQVcsQ0FBQyxTQUFELENBQVksRUFBakM7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlIG5vLXZhci1yZXF1aXJlcyBuby11bnNhZmUtYW55XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSBcImZzXCI7XG5cbmltcG9ydCB7IE11bHRpQ29tcGlsZXIgfSBmcm9tIFwid2VicGFja1wiO1xuaW1wb3J0IFdlYnBhY2tEZXZTZXJ2ZXIgZnJvbSBcIndlYnBhY2stZGV2LXNlcnZlclwiO1xuXG5jb25zdCB3ZWJwYWNrQ29uZmlnRmlsZSA9IHByb2Nlc3MuZW52LndlYnBhY2tDb25maWdGaWxlO1xuY29uc3Qgd2VicGFja1dvcmtpbmdEaXJlY3RvcnkgPSBwcm9jZXNzLmVudi53ZWJwYWNrV29ya2luZ0RpcmVjdG9yeTtcbmlmIChwcm9jZXNzLmVudi53ZWJwYWNrUG9ydCA9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTaG91bGQgc3BlY2lmeSB3ZWJwYWNrUG9ydFwiKTtcbn1cblxuY29uc3QgcG9ydCA9IHBhcnNlSW50KHByb2Nlc3MuZW52LndlYnBhY2tQb3J0LCAxMCk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuY29uc3Qgd2VicGFja0NvbmZpZ0VudjogYW55ID0gSlNPTi5wYXJzZShwcm9jZXNzLmVudi53ZWJwYWNrQ29uZmlnRW52IHx8IFwie31cIik7XG5cbmlmIChwcm9jZXNzLnNlbmQgPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU2hvdWxkIGNhbGwgdmlhIG5vZGUgZm9ya1wiKTtcbn1cblxuaWYgKHdlYnBhY2tXb3JraW5nRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlNwZWNpZnkgd2VicGFja1dvcmtpbmdEaXJlY3RvcnlcIik7XG59XG5cbmlmICh3ZWJwYWNrQ29uZmlnRmlsZSA9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTcGVjaWZ5IHdlYnBhY2tDb25maWdGaWxlXCIpO1xufVxuXG5wcm9jZXNzLmNoZGlyKHdlYnBhY2tXb3JraW5nRGlyZWN0b3J5KTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbmNvbnN0IGVuZ2luZVdlYnBhY2sgPSByZXF1aXJlKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcIm5vZGVfbW9kdWxlc1wiLCBcIndlYnBhY2tcIikpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbmNvbnN0IEVuZ2luZVdlYnBhY2tEZXZTZXJ2ZXI6IHR5cGVvZiBXZWJwYWNrRGV2U2VydmVyID0gcmVxdWlyZShwYXRoLmpvaW4oXG4gICAgcHJvY2Vzcy5jd2QoKSxcbiAgICBcIm5vZGVfbW9kdWxlc1wiLFxuICAgIFwid2VicGFjay1kZXYtc2VydmVyXCJcbikpO1xuY29uc3QgZGV2U2VydmVyVmVyc2lvbiA9IGdldFZlcnNpb24ocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwibm9kZV9tb2R1bGVzXCIsIFwid2VicGFjay1kZXYtc2VydmVyXCIpKTtcbmlmIChkZXZTZXJ2ZXJWZXJzaW9uLnN0YXJ0c1dpdGgoXCIzXCIpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBjb25maWdzID0gcmVxdWlyZShwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgd2VicGFja0NvbmZpZ0ZpbGUpKSh3ZWJwYWNrQ29uZmlnRW52KTtcbiAgICBjb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IGVuZ2luZVdlYnBhY2soY29uZmlncyk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHNlcnZlcjogV2VicGFja0RldlNlcnZlciA9IG5ldyBFbmdpbmVXZWJwYWNrRGV2U2VydmVyKGNvbXBpbGVyLCB7XG4gICAgICAgIHBvcnQ6IHBvcnQsXG4gICAgICAgIGRpc2FibGVIb3N0Q2hlY2s6IHRydWUsXG4gICAgfSk7XG4gICAgc2VydmVyLmxpc3Rlbihwb3J0KTtcbiAgICBwcm9jZXNzLnNlbmQoeyBtZXNzYWdlOiBcIlN0YXJ0ZWRcIiB9KTtcbn0gZWxzZSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBjb25maWdzID0gcmVxdWlyZShwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgd2VicGFja0NvbmZpZ0ZpbGUpKSh3ZWJwYWNrQ29uZmlnRW52KTtcbiAgICBjb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IGVuZ2luZVdlYnBhY2soY29uZmlncyk7XG4gICAgY29uc3Qgc2VydmVyOiBXZWJwYWNrRGV2U2VydmVyID0gbmV3IEVuZ2luZVdlYnBhY2tEZXZTZXJ2ZXIoXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBvcnQ6IHBvcnQsXG4gICAgICAgICAgICBhbGxvd2VkSG9zdHM6IFwiYWxsXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBpbGVyXG4gICAgKTtcbiAgICBzZXJ2ZXIuc3RhcnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcHJvY2Vzcy5zZW5kKHsgbWVzc2FnZTogXCJTdGFydGVkXCIgfSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzaW9uKHBhY2thZ2VEaXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocGFja2FnZURpciwgXCJwYWNrYWdlLmpzb25cIiksIFwidXRmOFwiKSk7XG4gICAgcmV0dXJuIGAke3BhY2thZ2VKc29uW1widmVyc2lvblwiXX1gO1xufVxuIl19
@@ -187,15 +187,18 @@ class WebpackVirtualWatchFileSystemWatcher {
187
187
  this.paused = true;
188
188
  }
189
189
 
190
- getContextTimestamps() {
191
- return this.getFileTimestamps();
190
+ getContextTimeInfoEntries() {
191
+ return this.getFileTimeInfoEntries();
192
192
  }
193
193
 
194
- getFileTimestamps() {
194
+ getFileTimeInfoEntries() {
195
195
  const times = new Map();
196
196
 
197
197
  for (const file of this.files) {
198
- times.set(file, this.virtualFs.statSync(file).mtimeMs);
198
+ times.set(file, {
199
+ timestamp: this.virtualFs.statSync(file).mtimeMs,
200
+ safeTime: this.virtualFs.statSync(file).mtimeMs
201
+ });
199
202
  }
200
203
 
201
204
  return times;
@@ -206,10 +209,10 @@ class WebpackVirtualWatchFileSystemWatcher {
206
209
  const files = filePaths.filter(filePath => this.files.includes(filePath)).sort();
207
210
  const dirs = filePaths.filter(filePath => this.dirs.includes(filePath)).sort();
208
211
  const missing = filePaths.filter(filePath => this.missing.includes(filePath)).sort();
209
- const times = this.getFileTimestamps(); // @ts-ignore
212
+ const times = this.getFileTimeInfoEntries(); // @ts-ignore
210
213
 
211
214
  this.callback(undefined, files, dirs, missing, times, times, new Set());
212
215
  }
213
216
 
214
217
  }
215
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL1dlYnBhY2tJbk1lbW9yeVV0aWxzL1dlYnBhY2tIeWJyaWRGaWxlU3lzdGVtLnRzIl0sIm5hbWVzIjpbIldlYnBhY2tIeWJyaWRGaWxlU3lzdGVtIiwiY29uc3RydWN0b3IiLCJwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5IiwiaW5uZXJJbnB1dEZpbGVTeXN0ZW0iLCJ2aXJ0dWFsRnMiLCJ3YXRjaGVycyIsInZpcnR1YWxWb2x1bWUiLCJWb2x1bWUiLCJmcm9tSlNPTiIsInNldElubmVySW5wdXRGaWxlU3lzdGVtIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJyZWFkRmlsZSIsImZpbGVuYW1lIiwib3B0aW9ucyIsImNhbGxiYWNrIiwic3RhcnRzV2l0aCIsInJlYWRGaWxlU3luYyIsInJlYWRkaXIiLCJkaXJQYXRoIiwicmVhZGRpclN5bmMiLCJyZWFkbGluayIsInJlYWRsaW5rU3luYyIsImxpbmtQYXRoIiwic3RhdCIsImZzUGF0aCIsInN0YXRTeW5jIiwid3JpdGVCYXRjaCIsImZpbGVCYXRjaCIsImZpbGVQYXRoIiwiT2JqZWN0Iiwia2V5cyIsIm1rZGlycFN5bmMiLCJwYXRoIiwicGFyc2UiLCJkaXIiLCJ3cml0ZUZpbGVTeW5jIiwiZW1pdENoYW5nZXMiLCJ3YXRjaCIsImZpbGVzIiwiZGlycyIsIm1pc3NpbmciLCJzdGFydFRpbWUiLCJjYWxsYmFja1VuZGVsYXllZCIsInJlc3VsdCIsIldlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciIsInZhbHVlcyIsImZpbHRlciIsIngiLCJwdXNoIiwid2F0Y2hlciIsImNsb3NlZCIsInBhdXNlZCIsImZpbGVQYXRocyIsImNoYW5nZXMiLCJTZXQiLCJEYXRlIiwibm93IiwiYWRkIiwiZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzIiwiY2xvc2UiLCJwYXVzZSIsImdldENvbnRleHRUaW1lc3RhbXBzIiwiZ2V0RmlsZVRpbWVzdGFtcHMiLCJ0aW1lcyIsIk1hcCIsImZpbGUiLCJzZXQiLCJtdGltZU1zIiwiQXJyYXkiLCJmcm9tIiwiaW5jbHVkZXMiLCJzb3J0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBRUE7Ozs7OztBQUpBO0FBa0JPLE1BQU1BLHVCQUFOLENBQXlGO0FBTXJGQyxFQUFBQSxXQUFXLENBQUNDLHNCQUFELEVBQWlDO0FBQUEsU0FMbENBLHNCQUtrQztBQUFBLFNBSjNDQyxvQkFJMkM7QUFBQSxTQUhsQ0MsU0FHa0M7QUFBQSxTQUZsQ0MsUUFFa0MsR0FGaUIsRUFFakI7QUFDL0MsU0FBS0gsc0JBQUwsR0FBOEJBLHNCQUE5Qjs7QUFDQSxVQUFNSSxhQUFhLEdBQUdDLGNBQU9DLFFBQVAsQ0FBZ0IsRUFBaEIsQ0FBdEI7O0FBQ0EsU0FBS0osU0FBTCxHQUFpQiwrQkFBbUJFLGFBQW5CLENBQWpCO0FBQ0g7O0FBRU1HLEVBQUFBLHVCQUF1QixDQUFDTixvQkFBRCxFQUErQztBQUN6RSxRQUFJLEtBQUtBLG9CQUFMLElBQTZCTyxTQUFqQyxFQUE0QztBQUN4QyxZQUFNLElBQUlDLEtBQUosQ0FBVSxvQ0FBVixDQUFOO0FBQ0g7O0FBQ0QsU0FBS1Isb0JBQUwsR0FBNEJBLG9CQUE1QjtBQUNIOztBQWFNUyxFQUFBQSxRQUFRLENBQ1hDLFFBRFcsRUFFWEMsT0FGVyxFQU9YQyxRQVBXLEVBVVA7QUFDSixRQUFJRixRQUFRLENBQUNHLFVBQVQsQ0FBb0IsS0FBS2Qsc0JBQXpCLENBQUosRUFBc0Q7QUFDbEQ7QUFDQSxXQUFLRSxTQUFMLENBQWVRLFFBQWYsQ0FBd0JDLFFBQXhCLEVBQWtDQyxPQUFsQyxFQUEyQ0MsUUFBM0M7QUFDSCxLQUhELE1BR087QUFDSDtBQUNBLFdBQUtaLG9CQUFMLENBQTBCUyxRQUExQixDQUFtQ0MsUUFBbkMsRUFBNkNDLE9BQTdDLEVBQXNEQyxRQUF0RDtBQUNIO0FBQ0o7O0FBSU1FLEVBQUFBLFlBQVksQ0FD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Q0FBN0IsRUFBOEQyQyxJQUE5RCxFQUFoQjtBQUNBLFVBQU1SLEtBQUssR0FBRyxLQUFLRCxpQkFBTCxFQUFkLENBTHNELENBTXREOztBQUNBLFNBQUtoRCxRQUFMLENBQWNMLFNBQWQsRUFBeUI2QixLQUF6QixFQUFnQ0MsSUFBaEMsRUFBc0NDLE9BQXRDLEVBQStDdUIsS0FBL0MsRUFBc0RBLEtBQXRELEVBQTZELElBQUlULEdBQUosRUFBN0Q7QUFDSDs7QUF0RXlFIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXG5pbXBvcnQgeyBTdGF0cyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIElGcywgVm9sdW1lIH0gZnJvbSBcIm1lbWZzXCI7XG5pbXBvcnQgeyBURW5jb2RpbmdFeHRlbmRlZCB9IGZyb20gXCJtZW1mcy9saWIvZW5jb2RpbmdcIjtcblxuaW1wb3J0IHsgSUZpbGVXcml0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0dlbmVyYXRlRm9ybVwiO1xuXG5pbXBvcnQgeyBJSW5wdXRGaWxlU3lzdGVtIH0gZnJvbSBcIi4vSUlucHV0RmlsZVN5c3RlbVwiO1xuaW1wb3J0IHtcbiAgICBJV2F0Y2hGaWxlU3lzdGVtLFxuICAgIElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyLFxuICAgIFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrLFxuICAgIFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrVW5kZWxheWVkLFxuICAgIFdhdGNoRmlsZVN5c3RlbVdhdGNoT3B0aW9ucyxcbn0gZnJvbSBcIi4vSVdhdGNoRmlsZVN5c3RlbVwiO1xuXG5leHBvcnQgY2xhc3MgV2VicGFja0h5YnJpZEZpbGVTeXN0ZW0gaW1wbGVtZW50cyBJRmlsZVdyaXRlciwgSUlucHV0RmlsZVN5c3RlbSwgSVdhdGNoRmlsZVN5c3RlbSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBpbm5lcklucHV0RmlsZVN5c3RlbSE6IElJbnB1dEZpbGVTeXN0ZW07XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aXJ0dWFsRnM6IElGcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdhdGNoZXJzOiBXZWJwYWNrVmlydHVhbFdhdGNoRmlsZVN5c3RlbVdhdGNoZXJbXSA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk6IHN0cmluZykge1xuICAgICAgICB0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkgPSBwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5O1xuICAgICAgICBjb25zdCB2aXJ0dWFsVm9sdW1lID0gVm9sdW1lLmZyb21KU09OKHt9KTtcbiAgICAgICAgdGhpcy52aXJ0dWFsRnMgPSBjcmVhdGVGc0Zyb21Wb2x1bWUodmlydHVhbFZvbHVtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldElubmVySW5wdXRGaWxlU3lzdGVtKGlubmVySW5wdXRGaWxlU3lzdGVtOiBJSW5wdXRGaWxlU3lzdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHNldCBpbm5lciBmaWxlIHN5c3RlbSB0d2ljZVwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtID0gaW5uZXJJbnB1dEZpbGVTeXN0ZW07XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRGaWxlKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiBzdHJpbmcgfCB7IGVuY29kaW5nOiBzdHJpbmc7IGZsYWc/OiBzdHJpbmcgfSxcbiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogc3RyaW5nKSA9PiB2b2lkXG4gICAgKTogdm9pZDtcbiAgICBwdWJsaWMgcmVhZEZpbGUoXG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IHsgZmxhZz86IHN0cmluZyB9LFxuICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWRcbiAgICApOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShmaWxlbmFtZTogc3RyaW5nLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczpcbiAgICAgICAgICAgIHwgc3RyaW5nXG4gICAgICAgICAgICB8IHsgZW5jb2Rpbmc6IFRFbmNvZGluZ0V4dGVuZGVkOyBmbGFnPzogc3RyaW5nIH1cbiAgICAgICAgICAgIHwgeyBmbGFnPzogc3RyaW5nIH1cbiAgICAgICAgICAgIHwgKChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogQnVmZmVyKSA9PiB2b2lkKSxcbiAgICAgICAgY2FsbGJhY2s/OlxuICAgICAgICAgICAgfCAoKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBzdHJpbmcpID0+IHZvaWQpXG4gICAgICAgICAgICB8ICgoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZClcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGVuYW1lLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZEZpbGUoZmlsZW5hbWUsIG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZEZpbGUoZmlsZW5hbWUsIG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkRmlsZVN5bmMoZmlsZW5hbWU6IHN0cmluZywgb3B0aW9uczogc3RyaW5nIHwgeyBlbmNvZGluZzogc3RyaW5nOyBmbGFnPzogc3RyaW5nIH0pOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zPzogeyBmbGFnPzogc3RyaW5nIH0pOiBCdWZmZXI7XG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IHN0cmluZyB8IHsgZW5jb2Rpbmc6IHN0cmluZzsgZmxhZz86IHN0cmluZyB9IHwgeyBmbGFnPzogc3RyaW5nIH1cbiAgICApOiBzdHJpbmcgfCBCdWZmZXIge1xuICAgICAgICBpZiAoZmlsZW5hbWUuc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRGaWxlU3luYyhmaWxlbmFtZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGRpcihkaXJQYXRoOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyOiBFcnJvciwgZmlsZXM6IHN0cmluZ1tdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZGRpcihkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRkaXIoZGlyUGF0aCwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRkaXJTeW5jKGRpclBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZGRpclN5bmMoZGlyUGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkZGlyU3luYyhkaXJQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHJlYWRsaW5rKGRpclBhdGg6IHN0cmluZywgY2FsbGJhY2s/OiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGxpbmtTdHJpbmc6IHN0cmluZykgPT4gYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZGxpbmsoZGlyUGF0aCwgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkbGluayhkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGxpbmtTeW5jKGxpbmtQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAobGlua1BhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZGxpbmtTeW5jKGxpbmtQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRsaW5rU3luYyhsaW5rUGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBzdGF0KGZzUGF0aDogc3RyaW5nLCBjYWxsYmFjaz86IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgc3RhdHM6IFN0YXRzKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZzUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEZzLnN0YXQoZnNQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnN0YXQoZnNQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdFN5bmMoZnNQYXRoOiBzdHJpbmcpOiBTdGF0cyB7XG4gICAgICAgIGlmIChmc1BhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZnNQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnN0YXRTeW5jKGZzUGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgd3JpdGVCYXRjaChmaWxlQmF0Y2g6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgT2JqZWN0LmtleXMoZmlsZUJhdGNoKSkge1xuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMubWtkaXJwU3luYyhwYXRoLnBhcnNlKGZpbGVQYXRoKS5kaXIpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSDQotCw0Lwg0LHQsNCzINCyINGC0LDQudC/0LjQvdCz0LDRhVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgZmlsZUJhdGNoW2ZpbGVQYXRoXSwgXCJ1dGY4XCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZXMoZmlsZUJhdGNoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2F0Y2goXG4gICAgICAgIGZpbGVzOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBkaXJzOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBtaXNzaW5nOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBzdGFydFRpbWU6IG51bWJlcixcbiAgICAgICAgb3B0aW9uczogV2F0Y2hGaWxlU3lzdGVtV2F0Y2hPcHRpb25zLFxuICAgICAgICBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgICAgIGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZFxuICAgICk6IElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlcihcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEZzLFxuICAgICAgICAgICAgWy4uLmZpbGVzLnZhbHVlcygpXS5maWx0ZXIoeCA9PiB4LnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSksXG4gICAgICAgICAgICBbLi4uZGlycy52YWx1ZXMoKV0uZmlsdGVyKHggPT4geC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpLFxuICAgICAgICAgICAgWy4uLm1pc3NpbmcudmFsdWVzKCldLmZpbHRlcih4ID0+IHguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSxcbiAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgY2FsbGJhY2tVbmRlbGF5ZWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy53YXRjaGVycy5wdXNoKHJlc3VsdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0Q2hhbmdlcyhmaWxlQmF0Y2g6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9KTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3Qgd2F0Y2hlciBvZiB0aGlzLndhdGNoZXJzKSB7XG4gICAgICAgICAgICB3YXRjaGVyLmVtaXRDaGFuZ2VzKE9iamVjdC5rZXlzKGZpbGVCYXRjaCkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jbGFzcyBXZWJwYWNrVmlydHVhbFdhdGNoRmlsZVN5c3RlbVdhdGNoZXIgaW1wbGVtZW50cyBJV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aXJ0dWFsRnM6IElGcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpcnM6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWlzc2luZzogc3RyaW5nW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2s7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFja1VuZGVsYXllZDogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWQ7XG5cbiAgICBwcml2YXRlIGNsb3NlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcGF1c2VkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHZpcnR1YWxGczogSUZzLFxuICAgICAgICBmaWxlczogc3RyaW5nW10sXG4gICAgICAgIGRpcnM6IHN0cmluZ1tdLFxuICAgICAgICBtaXNzaW5nOiBzdHJpbmdbXSxcbiAgICAgICAgY2FsbGJhY2s6IFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrLFxuICAgICAgICBjYWxsYmFja1VuZGVsYXllZDogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWRcbiAgICApIHtcbiAgICAgICAgdGhpcy52aXJ0dWFsRnMgPSB2aXJ0dWFsRnM7XG4gICAgICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcbiAgICAgICAgdGhpcy5kaXJzID0gZGlycztcbiAgICAgICAgdGhpcy5taXNzaW5nID0gbWlzc2luZztcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICB0aGlzLmNhbGxiYWNrVW5kZWxheWVkID0gY2FsbGJhY2tVbmRlbGF5ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGVtaXRDaGFuZ2VzKGZpbGVQYXRoczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkIHx8IHRoaXMuY2xvc2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2hhbmdlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gICAgICAgIGlmIChmaWxlUGF0aHNbMF0gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrVW5kZWxheWVkKGZpbGVQYXRoc1swXSwgRGF0ZS5ub3coKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBmaWxlUGF0aHMpIHtcbiAgICAgICAgICAgIGNoYW5nZXMuYWRkKGZpbGVQYXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzKGNoYW5nZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXVzZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb250ZXh0VGltZXN0YW1wcygpOiBNYXA8c3RyaW5nLCBudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsZVRpbWVzdGFtcHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmlsZVRpbWVzdGFtcHMoKTogTWFwPHN0cmluZywgbnVtYmVyPiB7XG4gICAgICAgIGNvbnN0IHRpbWVzOiBNYXA8c3RyaW5nLCBudW1iZXI+ID0gbmV3IE1hcCgpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdGhpcy5maWxlcykge1xuICAgICAgICAgICAgdGltZXMuc2V0KGZpbGUsIHRoaXMudmlydHVhbEZzLnN0YXRTeW5jKGZpbGUpLm10aW1lTXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aW1lcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRBZ2dyZWdhdGVkQ2hhbmdlcyhjaGFuZ2VzOiBTZXQ8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlUGF0aHMgPSBBcnJheS5mcm9tKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCBmaWxlcyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5maWxlcy5pbmNsdWRlcyhmaWxlUGF0aCkpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgZGlycyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5kaXJzLmluY2x1ZGVzKGZpbGVQYXRoKSkuc29ydCgpO1xuICAgICAgICBjb25zdCBtaXNzaW5nID0gZmlsZVBhdGhzLmZpbHRlcihmaWxlUGF0aCA9PiB0aGlzLm1pc3NpbmcuaW5jbHVkZXMoZmlsZVBhdGgpKS5zb3J0KCk7XG4gICAgICAgIGNvbnN0IHRpbWVzID0gdGhpcy5nZXRGaWxlVGltZXN0YW1wcygpO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMuY2FsbGJhY2sodW5kZWZpbmVkLCBmaWxlcywgZGlycywgbWlzc2luZywgdGltZXMsIHRpbWVzLCBuZXcgU2V0KCkpO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElMYXp5U2V0PFQ+IHtcbiAgICB2YWx1ZXMoKTogSXRlcmFibGU8VD47XG59XG4iXX0=
218
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL1dlYnBhY2tJbk1lbW9yeVV0aWxzL1dlYnBhY2tIeWJyaWRGaWxlU3lzdGVtLnRzIl0sIm5hbWVzIjpbIldlYnBhY2tIeWJyaWRGaWxlU3lzdGVtIiwiY29uc3RydWN0b3IiLCJwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5IiwiaW5uZXJJbnB1dEZpbGVTeXN0ZW0iLCJ2aXJ0dWFsRnMiLCJ3YXRjaGVycyIsInZpcnR1YWxWb2x1bWUiLCJWb2x1bWUiLCJmcm9tSlNPTiIsInNldElubmVySW5wdXRGaWxlU3lzdGVtIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJyZWFkRmlsZSIsImZpbGVuYW1lIiwib3B0aW9ucyIsImNhbGxiYWNrIiwic3RhcnRzV2l0aCIsInJlYWRGaWxlU3luYyIsInJlYWRkaXIiLCJkaXJQYXRoIiwicmVhZGRpclN5bmMiLCJyZWFkbGluayIsInJlYWRsaW5rU3luYyIsImxpbmtQYXRoIiwic3RhdCIsImZzUGF0aCIsInN0YXRTeW5jIiwid3JpdGVCYXRjaCIsImZpbGVCYXRjaCIsImZpbGVQYXRoIiwiT2JqZWN0Iiwia2V5cyIsIm1rZGlycFN5bmMiLCJwYXRoIiwicGFyc2UiLCJkaXIiLCJ3cml0ZUZpbGVTeW5jIiwiZW1pdENoYW5nZXMiLCJ3YXRjaCIsImZpbGVzIiwiZGlycyIsIm1pc3NpbmciLCJzdGFydFRpbWUiLCJjYWxsYmFja1VuZGVsYXllZCIsInJlc3VsdCIsIldlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciIsInZhbHVlcyIsImZpbHRlciIsIngiLCJwdXNoIiwid2F0Y2hlciIsImNsb3NlZCIsInBhdXNlZCIsImZpbGVQYXRocyIsImNoYW5nZXMiLCJTZXQiLCJEYXRlIiwibm93IiwiYWRkIiwiZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzIiwiY2xvc2UiLCJwYXVzZSIsImdldENvbnRleHRUaW1lSW5mb0VudHJpZXMiLCJnZXRGaWxlVGltZUluZm9FbnRyaWVzIiwidGltZXMiLCJNYXAiLCJmaWxlIiwic2V0IiwidGltZXN0YW1wIiwibXRpbWVNcyIsInNhZmVUaW1lIiwiQXJyYXkiLCJmcm9tIiwiaW5jbHVkZXMiLCJzb3J0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBRUE7Ozs7OztBQUpBO0FBbUJPLE1BQU1BLHVCQUFOLENBQXlGO0FBTXJGQyxFQUFBQSxXQUFXLENBQUNDLHNCQUFELEVBQWlDO0FBQUEsU0FMbENBLHNCQUtrQztBQUFBLFNBSjNDQyxvQkFJMkM7QUFBQSxTQUhsQ0MsU0FHa0M7QUFBQSxTQUZsQ0MsUUFFa0MsR0FGaUIsRUFFakI7QUFDL0MsU0FBS0gsc0JBQUwsR0FBOEJBLHNCQUE5Qjs7QUFDQSxVQUFNSSxhQUFhLEdBQUdDLGNBQU9DLFFBQVAsQ0FBZ0IsRUFBaEIsQ0FBdEI7O0FBQ0EsU0FBS0osU0FBTCxHQUFpQiwrQkFBbUJFLGFBQW5CLENBQWpCO0FBQ0g7O0FBRU1HLEVBQUFBLHVCQUF1QixDQUFDTixvQkFBRCxFQUErQztBQUN6RSxRQUFJLEtBQUtBLG9CQUFMLElBQTZCTyxTQUFqQyxFQUE0QztBQUN4QyxZQUFNLElBQUlDLEtBQUosQ0FBVSxvQ0FBVixDQUFOO0FBQ0g7O0FBQ0QsU0FBS1Isb0JBQUwsR0FBNEJBLG9CQUE1QjtBQUNIOztBQWFNUyxFQUFBQSxRQUFRLENBQ1hDLFFBRFcsRUFFWEMsT0FGVyxFQU9YQyxRQVBXLEVBVVA7QUFDSixRQUFJRixRQUFRLENBQUNHLFVBQVQsQ0FBb0IsS0FBS2Qsc0JBQXpCLENBQUosRUFBc0Q7QUFDbEQ7QUFDQSxXQUFLRSxTQUFMLENBQWVRLFFBQWYsQ0FBd0JDLFFBQXhCLEVBQWtDQyxPQUFsQyxFQUEyQ0MsUUFBM0M7QUFDSCxLQUhELE1BR087QUFDSDtBQUNBLFdBQUtaLG9CQUFMLENBQTBCUyxRQUExQixDQUFtQ0MsUUFBbkMsRUFBNkNDLE9BQTdDLEVBQXNEQyxRQUF0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LENBQW1CNUMsUUFBbkIsQ0FBN0IsRUFBMkQ2QyxJQUEzRCxFQUFiO0FBQ0EsVUFBTWpDLE9BQU8sR0FBR1ksU0FBUyxDQUFDTixNQUFWLENBQWlCbEIsUUFBUSxJQUFJLEtBQUtZLE9BQUwsQ0FBYWdDLFFBQWIsQ0FBc0I1QyxRQUF0QixDQUE3QixFQUE4RDZDLElBQTlELEVBQWhCO0FBQ0EsVUFBTVYsS0FBSyxHQUFHLEtBQUtELHNCQUFMLEVBQWQsQ0FMc0QsQ0FNdEQ7O0FBQ0EsU0FBS2hELFFBQUwsQ0FBY0wsU0FBZCxFQUF5QjZCLEtBQXpCLEVBQWdDQyxJQUFoQyxFQUFzQ0MsT0FBdEMsRUFBK0N1QixLQUEvQyxFQUFzREEsS0FBdEQsRUFBNkQsSUFBSVQsR0FBSixFQUE3RDtBQUNIOztBQXpFeUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cbmltcG9ydCB7IFN0YXRzIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGNyZWF0ZUZzRnJvbVZvbHVtZSwgSUZzLCBWb2x1bWUgfSBmcm9tIFwibWVtZnNcIjtcbmltcG9ydCB7IFRFbmNvZGluZ0V4dGVuZGVkIH0gZnJvbSBcIm1lbWZzL2xpYi9lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBJRmlsZVdyaXRlciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9CdWlsZFRhc2tzL0Zvcm0vR2VuZXJhdGVGb3JtXCI7XG5cbmltcG9ydCB7IElJbnB1dEZpbGVTeXN0ZW0gfSBmcm9tIFwiLi9JSW5wdXRGaWxlU3lzdGVtXCI7XG5pbXBvcnQge1xuICAgIEZpbGVTeXN0ZW1UaW1lSW5mb0VudHJ5LFxuICAgIElXYXRjaEZpbGVTeXN0ZW0sXG4gICAgSVdhdGNoRmlsZVN5c3RlbVdhdGNoZXIsXG4gICAgV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWQsXG4gICAgV2F0Y2hGaWxlU3lzdGVtV2F0Y2hPcHRpb25zLFxufSBmcm9tIFwiLi9JV2F0Y2hGaWxlU3lzdGVtXCI7XG5cbmV4cG9ydCBjbGFzcyBXZWJwYWNrSHlicmlkRmlsZVN5c3RlbSBpbXBsZW1lbnRzIElGaWxlV3JpdGVyLCBJSW5wdXRGaWxlU3lzdGVtLCBJV2F0Y2hGaWxlU3lzdGVtIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBwcml2YXRlIGlubmVySW5wdXRGaWxlU3lzdGVtITogSUlucHV0RmlsZVN5c3RlbTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpcnR1YWxGczogSUZzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hlcnM6IFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlcltdID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aFRvVmlydHVhbERpcmVjdG9yeTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSA9IHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk7XG4gICAgICAgIGNvbnN0IHZpcnR1YWxWb2x1bWUgPSBWb2x1bWUuZnJvbUpTT04oe30pO1xuICAgICAgICB0aGlzLnZpcnR1YWxGcyA9IGNyZWF0ZUZzRnJvbVZvbHVtZSh2aXJ0dWFsVm9sdW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SW5uZXJJbnB1dEZpbGVTeXN0ZW0oaW5uZXJJbnB1dEZpbGVTeXN0ZW06IElJbnB1dEZpbGVTeXN0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3Qgc2V0IGlubmVyIGZpbGUgc3lzdGVtIHR3aWNlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0gPSBpbm5lcklucHV0RmlsZVN5c3RlbTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZEZpbGUoXG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IHN0cmluZyB8IHsgZW5jb2Rpbmc6IHN0cmluZzsgZmxhZz86IHN0cmluZyB9LFxuICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBzdHJpbmcpID0+IHZvaWRcbiAgICApOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczogeyBmbGFnPzogc3RyaW5nIH0sXG4gICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZFxuICAgICk6IHZvaWQ7XG4gICAgcHVibGljIHJlYWRGaWxlKGZpbGVuYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7XG4gICAgcHVibGljIHJlYWRGaWxlKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOlxuICAgICAgICAgICAgfCBzdHJpbmdcbiAgICAgICAgICAgIHwgeyBlbmNvZGluZzogVEVuY29kaW5nRXh0ZW5kZWQ7IGZsYWc/OiBzdHJpbmcgfVxuICAgICAgICAgICAgfCB7IGZsYWc/OiBzdHJpbmcgfVxuICAgICAgICAgICAgfCAoKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWQpLFxuICAgICAgICBjYWxsYmFjaz86XG4gICAgICAgICAgICB8ICgoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IHN0cmluZykgPT4gdm9pZClcbiAgICAgICAgICAgIHwgKChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogQnVmZmVyKSA9PiB2b2lkKVxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZW5hbWUuc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkRmlsZShmaWxlbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkRmlsZShmaWxlbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zOiBzdHJpbmcgfCB7IGVuY29kaW5nOiBzdHJpbmc7IGZsYWc/OiBzdHJpbmcgfSk6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZEZpbGVTeW5jKGZpbGVuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGZsYWc/OiBzdHJpbmcgfSk6IEJ1ZmZlcjtcbiAgICBwdWJsaWMgcmVhZEZpbGVTeW5jKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zPzogc3RyaW5nIHwgeyBlbmNvZGluZzogc3RyaW5nOyBmbGFnPzogc3RyaW5nIH0gfCB7IGZsYWc/OiBzdHJpbmcgfVxuICAgICk6IHN0cmluZyB8IEJ1ZmZlciB7XG4gICAgICAgIGlmIChmaWxlbmFtZS5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkZGlyKGRpclBhdGg6IHN0cmluZywgY2FsbGJhY2s6IChlcnI6IEVycm9yLCBmaWxlczogc3RyaW5nW10pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkZGlyKGRpclBhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZGRpcihkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGRpclN5bmMoZGlyUGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICBpZiAoZGlyUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkZGlyU3luYyhkaXJQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRkaXJTeW5jKGRpclBhdGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgcmVhZGxpbmsoZGlyUGF0aDogc3RyaW5nLCBjYWxsYmFjaz86IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgbGlua1N0cmluZzogc3RyaW5nKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkbGluayhkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRsaW5rKGRpclBhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkbGlua1N5bmMobGlua1BhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChsaW5rUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkbGlua1N5bmMobGlua1BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZGxpbmtTeW5jKGxpbmtQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHN0YXQoZnNQYXRoOiBzdHJpbmcsIGNhbGxiYWNrPzogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBzdGF0czogU3RhdHMpID0+IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoZnNQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMuc3RhdChmc1BhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0uc3RhdChmc1BhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0U3luYyhmc1BhdGg6IHN0cmluZyk6IFN0YXRzIHtcbiAgICAgICAgaWYgKGZzUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5zdGF0U3luYyhmc1BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0uc3RhdFN5bmMoZnNQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB3cml0ZUJhdGNoKGZpbGVCYXRjaDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhmaWxlQmF0Y2gpKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5ta2RpcnBTeW5jKHBhdGgucGFyc2UoZmlsZVBhdGgpLmRpcik7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlINCi0LDQvCDQsdCw0LMg0LIg0YLQsNC50L/QuNC90LPQsNGFXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBmaWxlQmF0Y2hbZmlsZVBhdGhdLCBcInV0ZjhcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlcyhmaWxlQmF0Y2gpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3YXRjaChcbiAgICAgICAgZmlsZXM6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIGRpcnM6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIG1pc3Npbmc6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIHN0YXJ0VGltZTogbnVtYmVyLFxuICAgICAgICBvcHRpb25zOiBXYXRjaEZpbGVTeXN0ZW1XYXRjaE9wdGlvbnMsXG4gICAgICAgIGNhbGxiYWNrOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFjayxcbiAgICAgICAgY2FsbGJhY2tVbmRlbGF5ZWQ6IFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrVW5kZWxheWVkXG4gICAgKTogSVdhdGNoRmlsZVN5c3RlbVdhdGNoZXIge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgV2VicGFja1ZpcnR1YWxXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyKFxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMsXG4gICAgICAgICAgICBbLi4uZmlsZXMudmFsdWVzKCldLmZpbHRlcih4ID0+IHguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSxcbiAgICAgICAgICAgIFsuLi5kaXJzLnZhbHVlcygpXS5maWx0ZXIoeCA9PiB4LnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSksXG4gICAgICAgICAgICBbLi4ubWlzc2luZy52YWx1ZXMoKV0uZmlsdGVyKHggPT4geC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpLFxuICAgICAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICAgICBjYWxsYmFja1VuZGVsYXllZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLndhdGNoZXJzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRDaGFuZ2VzKGZpbGVCYXRjaDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCB3YXRjaGVyIG9mIHRoaXMud2F0Y2hlcnMpIHtcbiAgICAgICAgICAgIHdhdGNoZXIuZW1pdENoYW5nZXMoT2JqZWN0LmtleXMoZmlsZUJhdGNoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNsYXNzIFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciBpbXBsZW1lbnRzIElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpcnR1YWxGczogSUZzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZXM6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlyczogc3RyaW5nW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBtaXNzaW5nOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGxiYWNrOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFjaztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZDtcblxuICAgIHByaXZhdGUgY2xvc2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBwYXVzZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgdmlydHVhbEZzOiBJRnMsXG4gICAgICAgIGZpbGVzOiBzdHJpbmdbXSxcbiAgICAgICAgZGlyczogc3RyaW5nW10sXG4gICAgICAgIG1pc3Npbmc6IHN0cmluZ1tdLFxuICAgICAgICBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgICAgIGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZFxuICAgICkge1xuICAgICAgICB0aGlzLnZpcnR1YWxGcyA9IHZpcnR1YWxGcztcbiAgICAgICAgdGhpcy5maWxlcyA9IGZpbGVzO1xuICAgICAgICB0aGlzLmRpcnMgPSBkaXJzO1xuICAgICAgICB0aGlzLm1pc3NpbmcgPSBtaXNzaW5nO1xuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgIHRoaXMuY2FsbGJhY2tVbmRlbGF5ZWQgPSBjYWxsYmFja1VuZGVsYXllZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdENoYW5nZXMoZmlsZVBhdGhzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYXVzZWQgfHwgdGhpcy5jbG9zZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGFuZ2VzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbiAgICAgICAgaWYgKGZpbGVQYXRoc1swXSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tVbmRlbGF5ZWQoZmlsZVBhdGhzWzBdLCBEYXRlLm5vdygpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIGZpbGVQYXRocykge1xuICAgICAgICAgICAgY2hhbmdlcy5hZGQoZmlsZVBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbWl0QWdncmVnYXRlZENoYW5nZXMoY2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdXNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRleHRUaW1lSW5mb0VudHJpZXMoKTogTWFwPHN0cmluZywgRmlsZVN5c3RlbVRpbWVJbmZvRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsZVRpbWVJbmZvRW50cmllcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWxlVGltZUluZm9FbnRyaWVzKCk6IE1hcDxzdHJpbmcsIEZpbGVTeXN0ZW1UaW1lSW5mb0VudHJ5PiB7XG4gICAgICAgIGNvbnN0IHRpbWVzOiBNYXA8c3RyaW5nLCBGaWxlU3lzdGVtVGltZUluZm9FbnRyeT4gPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiB0aGlzLmZpbGVzKSB7XG4gICAgICAgICAgICB0aW1lcy5zZXQoZmlsZSwge1xuICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZmlsZSkubXRpbWVNcyxcbiAgICAgICAgICAgICAgICBzYWZlVGltZTogdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZmlsZSkubXRpbWVNcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aW1lcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRBZ2dyZWdhdGVkQ2hhbmdlcyhjaGFuZ2VzOiBTZXQ8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlUGF0aHMgPSBBcnJheS5mcm9tKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCBmaWxlcyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5maWxlcy5pbmNsdWRlcyhmaWxlUGF0aCkpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgZGlycyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5kaXJzLmluY2x1ZGVzKGZpbGVQYXRoKSkuc29ydCgpO1xuICAgICAgICBjb25zdCBtaXNzaW5nID0gZmlsZVBhdGhzLmZpbHRlcihmaWxlUGF0aCA9PiB0aGlzLm1pc3NpbmcuaW5jbHVkZXMoZmlsZVBhdGgpKS5zb3J0KCk7XG4gICAgICAgIGNvbnN0IHRpbWVzID0gdGhpcy5nZXRGaWxlVGltZUluZm9FbnRyaWVzKCk7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy5jYWxsYmFjayh1bmRlZmluZWQsIGZpbGVzLCBkaXJzLCBtaXNzaW5nLCB0aW1lcywgdGltZXMsIG5ldyBTZXQoKSk7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSUxhenlTZXQ8VD4ge1xuICAgIHZhbHVlcygpOiBJdGVyYWJsZTxUPjtcbn1cbiJdfQ==
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
 
3
- require("@babel/polyfill");
3
+ require("core-js/stable");
4
+
5
+ require("regenerator-runtime/runtime");
4
6
 
5
7
  require("core-js/features/array/flat");
6
8
 
@@ -128,4 +130,4 @@ async function removeTemporaryWebpackConfigFiles(farmDirectory, logger) {
128
130
  await (0, _RunInitForm.runInitForm)(context, options.options, farmDirectory);
129
131
  }
130
132
  });
131
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9DYW5keUNMSS50cyJdLCJuYW1lcyI6WyJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsIm9sZFRlbXBGaWxlTmFtZXMiLCJmaWx0ZXIiLCJ4IiwiZW5kc1dpdGgiLCJsZW5ndGgiLCJsb2ciLCJmaWxlTmFtZSIsInBhdGgiLCJqb2luIiwiYXJndiIsImNvbnRleHQiLCJvcHRpb25zIiwic2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkiLCJsb2dWZXJib3NpdHkiLCJ2ZXJib3NlIiwiY3dkIiwiZmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwicmVzb2x2ZSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsInR5cGUiLCJobEZhcm1EaXJlY3RvcnlQYXRoIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUFBLGdCQUFPQyxLQUFQLEdBQWUsSUFBZjs7QUFFQSxTQUFTQyxnREFBVCxHQUFrRTtBQUM5RCxRQUFNQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsUUFBUixDQUFpQkMsT0FBakIsQ0FBeUIsZUFBekIsQ0FBcEI7O0FBQ0EsTUFBSUgsV0FBVyxLQUFLLENBQUMsQ0FBckIsRUFBd0I7QUFDcEJDLElBQUFBLE9BQU8sQ0FBQ0MsUUFBUixDQUFpQkUs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QXJCLEVBQWtDO0FBQzlCLFVBQU0sOEJBQVliLE9BQVosRUFBcUJDLE9BQU8sQ0FBQ0EsT0FBN0IsRUFBc0NkLGFBQXRDLENBQU47QUFDSDtBQUNKLENBM0ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiQGJhYmVsL3BvbHlmaWxsXCI7XG5pbXBvcnQgXCJjb3JlLWpzL2ZlYXR1cmVzL2FycmF5L2ZsYXRcIjtcbmltcG9ydCBcImNvcmUtanMvcHJvcG9zYWxzL2l0ZXJhdG9yLWhlbHBlcnNcIjtcbmltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcblxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcmVhZGRpciwgdW5saW5rIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tIFwic2hlbGxqc1wiO1xuXG5pbXBvcnQgeyBydW5Db25zb2xlQXBwbGljYXRpb24gfSBmcm9tIFwiLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25cIjtcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tIFwiLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgc2V0TG9nZ2VyIH0gZnJvbSBcIi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgcnVuQnVpbGRGb3JtcyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvUnVuQnVpbGRGb3Jtc1wiO1xuaW1wb3J0IHsgcnVuQnVpbGRTZXJ2ZXIsIHJ1bkRldkJ1aWxkU2VydmVyIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUnVuQnVpbGRTZXJ2ZXJcIjtcbmltcG9ydCB7IHJ1bkRldkJ1aWxkIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvRGV2QnVpbGQvUnVuRGV2QnVpbGRcIjtcbmltcG9ydCB7IHJ1bkZvcm1TdGF0cyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0Zvcm1TdGF0cy9SdW5Gb3JtU3RhdHNcIjtcbmltcG9ydCB7IHJ1bkluaXRGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvSW5pdEZvcm0vUnVuSW5pdEZvcm1cIjtcbmltcG9ydCB7IHJ1bkxvY2FsaXphdGlvbiB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0xvY2FsaXphdGlvbi9SdW5Mb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IHJ1blVwZ3JhZGVGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvVXBncmFkZUZvcm0vUnVuVXBncmFkZUZvcm1cIjtcbmltcG9ydCB7IHBhcnNlT3B0aW9ucyB9IGZyb20gXCIuL09wdGlvbnMvQ2FuZHlUb29sT3B0aW9uc1wiO1xuaW1wb3J0IHsgcmVhZEZhcm1Db25maWcgfSBmcm9tIFwiLi9SZWFkRmFybUNvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFZlcnNpb24gfSBmcm9tIFwiLi9TZWxmVXBkYXRlXCI7XG5cbmNvbmZpZy5mYXRhbCA9IHRydWU7XG5cbmZ1bmN0aW9uIHJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcygpOiB2b2lkIHtcbiAgICBjb25zdCBkZWJ1Z0FyZ0lkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdC1icmtcIik7XG4gICAgaWYgKGRlYnVnQXJnSWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZ0lkeCwgMSk7XG4gICAgfVxuICAgIGNvbnN0IGRlYnVnQXJnMklkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdFwiKTtcbiAgICBpZiAoZGVidWdBcmcySWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZzJJZHgsIDEpO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCByZWFkZGlyKGZhcm1EaXJlY3RvcnkpO1xuICAgIGNvbnN0IG9sZFRlbXBGaWxlTmFtZXMgPSBmaWxlcy5maWx0ZXIoeCA9PiB4LmVuZHNXaXRoKFwiLmNhbmR5LXRtcC53ZWJwYWNrLmNvbmZpZy5qc1wiKSk7XG4gICAgaWYgKG9sZFRlbXBGaWxlTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3Zpbmcgb2xkIHdlYnBhY2suY29uZmlnLmpzIGZpbGVzXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVOYW1lIG9mIG9sZFRlbXBGaWxlTmFtZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHVubGluayhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgZmlsZU5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBvbGQgd2VicGFjay5jb25maWcuanMgZmlsZXNcIik7XG4gICAgfVxufVxuXG5ydW5Db25zb2xlQXBwbGljYXRpb24oYXN5bmMgKGFyZ3YsIGNvbnRleHQpID0+IHtcbiAgICByZW1vdGVJbnNwZWN0RmxhZ1RvRGlzYWJsZURlYnVnZ2VySW5DaGlsZFByb2Nlc3MoKTtcblxuICAgIGNvbnRleHQubG9nZ2VyLmxvZyhcIkBrb250dXIuY2FuZHkvdG9vbHM6IFwiICsgKGF3YWl0IGdldEN1cnJlbnRWZXJzaW9uKCkpKTtcbiAgICBjb25zdCBvcHRpb25zID0gcGFyc2VPcHRpb25zKGFyZ3YpO1xuICAgIGNvbnRleHQuc2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkob3B0aW9ucy5vcHRpb25zLmxvZ1ZlcmJvc2l0eSk7XG4gICAgc2V0TG9nZ2VyKGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb250ZXh0LmxvZ2dlci52ZXJib3NlKGBWZXJib3NlIGxldmVsOiAke29wdGlvbnMub3B0aW9ucy5sb2dWZXJib3NpdHl9YCk7XG5cbiAgICBjb25zdCBmYXJtRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgIGNvbnN0IGZhcm1Db25maWcgPSByZWFkRmFybUNvbmZpZyhwcm9jZXNzLmN3ZCgpKTtcblxuICAgIGlmIChmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5naW5lRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuICAgIGlmIChmYXJtQ29uZmlnLnJlc291cmNlc0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2VzRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW5naW5lRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5KTtcbiAgICBjb25zdCByZXNvdXJjZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG5cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImJ1aWxkLXNlcnZlclwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkU2VydmVyKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImRldi1idWlsZC1zZXJ2ZXJcIikge1xuICAgICAgICBhd2FpdCBydW5EZXZCdWlsZFNlcnZlcihcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICBvcHRpb25zLm9wdGlvbnMsXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybUNvbmZpZy5obEZhcm1EaXJlY3RvcnlQYXRoXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJidWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkRm9ybXMoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnR5cGUgPT09IFwiZGV2LWJ1aWxkXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGQoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnR5cGUgPT09IFwiZm9ybS1zdGF0c1wiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkZvcm1TdGF0cyhjb250ZXh0LCBvcHRpb25zLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcInVwZ3JhZGVcIikge1xuICAgICAgICBhd2FpdCBydW5VcGdyYWRlRm9ybShjb250ZXh0LCBvcHRpb25zLm9wdGlvbnMsIHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnR5cGUgPT09IFwibG9jYWxpemVcIikge1xuICAgICAgICBhd2FpdCBydW5Mb2NhbGl6YXRpb24oXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImluaXQtZm9ybVwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkluaXRGb3JtKGNvbnRleHQsIG9wdGlvbnMub3B0aW9ucywgZmFybURpcmVjdG9yeSk7XG4gICAgfVxufSk7XG4iXX0=
133
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9DYW5keUNMSS50cyJdLCJuYW1lcyI6WyJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsIm9sZFRlbXBGaWxlTmFtZXMiLCJmaWx0ZXIiLCJ4IiwiZW5kc1dpdGgiLCJsZW5ndGgiLCJsb2ciLCJmaWxlTmFtZSIsInBhdGgiLCJqb2luIiwiYXJndiIsImNvbnRleHQiLCJvcHRpb25zIiwic2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkiLCJsb2dWZXJib3NpdHkiLCJ2ZXJib3NlIiwiY3dkIiwiZmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwicmVzb2x2ZSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsInR5cGUiLCJobEZhcm1EaXJlY3RvcnlQYXRoIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUFBLGdCQUFPQyxLQUFQLEdBQWUsSUFBZjs7QUFFQSxTQUFTQyxnREFBVCxHQUFrRTtBQUM5RCxRQUFNQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsUUFBUixDQUFpQkMsT0FBakIsQ0FBeUIsZUFBekIsQ0FBcEI7O0FBQ0EsTUFBSUgsV0FBVyxLQUFLLENBQUMsQ0FBckIsRUFBd0I7QUFDcEJDLElBQUFBLE9BQU8sQ0FBQ0MsUUFBUixD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QWlCLFdBQXJCLEVBQWtDO0FBQzlCLFVBQU0sOEJBQVliLE9BQVosRUFBcUJDLE9BQU8sQ0FBQ0EsT0FBN0IsRUFBc0NkLGFBQXRDLENBQU47QUFDSDtBQUNKLENBM0ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiY29yZS1qcy9zdGFibGVcIjtcbmltcG9ydCBcInJlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZVwiO1xuaW1wb3J0IFwiY29yZS1qcy9mZWF0dXJlcy9hcnJheS9mbGF0XCI7XG5pbXBvcnQgXCJjb3JlLWpzL3Byb3Bvc2Fscy9pdGVyYXRvci1oZWxwZXJzXCI7XG5pbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHJlYWRkaXIsIHVubGluayB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcInNoZWxsanNcIjtcblxuaW1wb3J0IHsgcnVuQ29uc29sZUFwcGxpY2F0aW9uIH0gZnJvbSBcIi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcbmltcG9ydCB7IHNldExvZ2dlciB9IGZyb20gXCIuL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHJ1bkJ1aWxkRm9ybXMgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9CdWlsZEZvcm1zL1J1bkJ1aWxkRm9ybXNcIjtcbmltcG9ydCB7IHJ1bkJ1aWxkU2VydmVyLCBydW5EZXZCdWlsZFNlcnZlciB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1J1bkJ1aWxkU2VydmVyXCI7XG5pbXBvcnQgeyBydW5EZXZCdWlsZCB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0RldkJ1aWxkL1J1bkRldkJ1aWxkXCI7XG5pbXBvcnQgeyBydW5Gb3JtU3RhdHMgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9Gb3JtU3RhdHMvUnVuRm9ybVN0YXRzXCI7XG5pbXBvcnQgeyBydW5Jbml0Rm9ybSB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0luaXRGb3JtL1J1bkluaXRGb3JtXCI7XG5pbXBvcnQgeyBydW5Mb2NhbGl6YXRpb24gfSBmcm9tIFwiLi9DTElDb21tYW5kcy9Mb2NhbGl6YXRpb24vUnVuTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBydW5VcGdyYWRlRm9ybSB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL1VwZ3JhZGVGb3JtL1J1blVwZ3JhZGVGb3JtXCI7XG5pbXBvcnQgeyBwYXJzZU9wdGlvbnMgfSBmcm9tIFwiLi9PcHRpb25zL0NhbmR5VG9vbE9wdGlvbnNcIjtcbmltcG9ydCB7IHJlYWRGYXJtQ29uZmlnIH0gZnJvbSBcIi4vUmVhZEZhcm1Db25maWdcIjtcbmltcG9ydCB7IGdldEN1cnJlbnRWZXJzaW9uIH0gZnJvbSBcIi4vU2VsZlVwZGF0ZVwiO1xuXG5jb25maWcuZmF0YWwgPSB0cnVlO1xuXG5mdW5jdGlvbiByZW1vdGVJbnNwZWN0RmxhZ1RvRGlzYWJsZURlYnVnZ2VySW5DaGlsZFByb2Nlc3MoKTogdm9pZCB7XG4gICAgY29uc3QgZGVidWdBcmdJZHggPSBwcm9jZXNzLmV4ZWNBcmd2LmluZGV4T2YoXCItLWluc3BlY3QtYnJrXCIpO1xuICAgIGlmIChkZWJ1Z0FyZ0lkeCAhPT0gLTEpIHtcbiAgICAgICAgcHJvY2Vzcy5leGVjQXJndi5zcGxpY2UoZGVidWdBcmdJZHgsIDEpO1xuICAgIH1cbiAgICBjb25zdCBkZWJ1Z0FyZzJJZHggPSBwcm9jZXNzLmV4ZWNBcmd2LmluZGV4T2YoXCItLWluc3BlY3RcIik7XG4gICAgaWYgKGRlYnVnQXJnMklkeCAhPT0gLTEpIHtcbiAgICAgICAgcHJvY2Vzcy5leGVjQXJndi5zcGxpY2UoZGVidWdBcmcySWR4LCAxKTtcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyhmYXJtRGlyZWN0b3J5OiBzdHJpbmcsIGxvZ2dlcjogSUxvZ2dlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgcmVhZGRpcihmYXJtRGlyZWN0b3J5KTtcbiAgICBjb25zdCBvbGRUZW1wRmlsZU5hbWVzID0gZmlsZXMuZmlsdGVyKHggPT4geC5lbmRzV2l0aChcIi5jYW5keS10bXAud2VicGFjay5jb25maWcuanNcIikpO1xuICAgIGlmIChvbGRUZW1wRmlsZU5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIlJlbW92aW5nIG9sZCB3ZWJwYWNrLmNvbmZpZy5qcyBmaWxlc1wiKTtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiBvbGRUZW1wRmlsZU5hbWVzKSB7XG4gICAgICAgICAgICBhd2FpdCB1bmxpbmsocGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIGZpbGVOYW1lKSk7XG4gICAgICAgIH1cbiAgICAgICAgbG9nZ2VyLmxvZyhcIlJlbW92ZWQgb2xkIHdlYnBhY2suY29uZmlnLmpzIGZpbGVzXCIpO1xuICAgIH1cbn1cblxucnVuQ29uc29sZUFwcGxpY2F0aW9uKGFzeW5jIChhcmd2LCBjb250ZXh0KSA9PiB7XG4gICAgcmVtb3RlSW5zcGVjdEZsYWdUb0Rpc2FibGVEZWJ1Z2dlckluQ2hpbGRQcm9jZXNzKCk7XG5cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJAa29udHVyLmNhbmR5L3Rvb2xzOiBcIiArIChhd2FpdCBnZXRDdXJyZW50VmVyc2lvbigpKSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlT3B0aW9ucyhhcmd2KTtcbiAgICBjb250ZXh0LnNldENvbnNvbGVMb2dnaW5nVmVyYm9zaXR5KG9wdGlvbnMub3B0aW9ucy5sb2dWZXJib3NpdHkpO1xuICAgIHNldExvZ2dlcihjb250ZXh0LmxvZ2dlcik7XG4gICAgY29udGV4dC5sb2dnZXIudmVyYm9zZShgVmVyYm9zZSBsZXZlbDogJHtvcHRpb25zLm9wdGlvbnMubG9nVmVyYm9zaXR5fWApO1xuXG4gICAgY29uc3QgZmFybURpcmVjdG9yeSA9IHByb2Nlc3MuY3dkKCk7XG4gICAgYXdhaXQgcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKGZhcm1EaXJlY3RvcnksIGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb25zdCBmYXJtQ29uZmlnID0gcmVhZEZhcm1Db25maWcocHJvY2Vzcy5jd2QoKSk7XG5cbiAgICBpZiAoZmFybUNvbmZpZy5lbmdpbmVEaXJlY3RvcnkgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVuZ2luZURpcmVjdG9yeSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuICAgIH1cbiAgICBpZiAoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlc291cmNlc0RpcmVjdG9yeSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGVuZ2luZURpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSk7XG4gICAgY29uc3QgcmVzb3VyY2VzRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcucmVzb3VyY2VzRGlyZWN0b3J5KTtcbiAgICBjb25zdCBjYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybURpcmVjdG9yeSwgXCIuLlwiLCBcIi5jYW5keV9tb2R1bGVzXCIpO1xuXG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJidWlsZC1zZXJ2ZXJcIikge1xuICAgICAgICBhd2FpdCBydW5CdWlsZFNlcnZlcihcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICBvcHRpb25zLm9wdGlvbnMsXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybUNvbmZpZy5obEZhcm1EaXJlY3RvcnlQYXRoXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGRTZXJ2ZXIoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnR5cGUgPT09IFwiYnVpbGRcIikge1xuICAgICAgICBhd2FpdCBydW5CdWlsZEZvcm1zKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImRldi1idWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkRldkJ1aWxkKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImZvcm0tc3RhdHNcIikge1xuICAgICAgICBhd2FpdCBydW5Gb3JtU3RhdHMoY29udGV4dCwgb3B0aW9ucy5vcHRpb25zLCBmYXJtRGlyZWN0b3J5KTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJ1cGdyYWRlXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuVXBncmFkZUZvcm0oY29udGV4dCwgb3B0aW9ucy5vcHRpb25zLCByZXNvdXJjZXNEaXJlY3RvcnksIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImxvY2FsaXplXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuTG9jYWxpemF0aW9uKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJpbml0LWZvcm1cIikge1xuICAgICAgICBhd2FpdCBydW5Jbml0Rm9ybShjb250ZXh0LCBvcHRpb25zLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbn0pO1xuIl19