gitlab-ci-local 4.48.0 → 4.48.2

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.
@@ -49,7 +49,7 @@ class VariablesFromFiles {
49
49
  const url = match.groups?.url;
50
50
  const file = match.groups?.file;
51
51
  const ref = match.groups?.ref;
52
- const res = await utils_1.Utils.bash(`git archive --remote=${url} ${ref} ${file} | tar -xO ${file}`, cwd);
52
+ const res = await utils_1.Utils.bash(`set -eou pipefail; git archive --remote=${url} ${ref} ${file} | tar -xO ${file}`, cwd);
53
53
  remoteFileData = yaml.load(`${res.stdout}`);
54
54
  }
55
55
  if (await fs.pathExists(homeVariablesFile)) {
@@ -147,4 +147,4 @@ class VariablesFromFiles {
147
147
  }
148
148
  }
149
149
  exports.VariablesFromFiles = VariablesFromFiles;
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLWZyb20tZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ2YXJpYWJsZXMtZnJvbS1maWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDZDQUErQjtBQUMvQiw4Q0FBZ0M7QUFDaEMsa0RBQTBCO0FBRTFCLG9EQUE0QjtBQUM1QixtQ0FBOEI7QUFhOUIsTUFBYSxrQkFBa0I7SUFFM0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUUsSUFBVSxFQUFFLFlBQTBCLEVBQUUsT0FBZ0I7UUFDdkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM3QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzNDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxPQUFPLElBQUksUUFBUSxnQkFBZ0IsQ0FBQztRQUNqRSxNQUFNLFNBQVMsR0FBbUMsRUFBRSxDQUFDO1FBQ3JELElBQUksY0FBYyxHQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLFlBQVksR0FBUSxFQUFFLENBQUM7UUFFM0IsSUFBSSxlQUFlLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyQyxNQUFNLEtBQUssR0FBRyx5Q0FBeUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDOUUsSUFBQSxnQkFBTSxFQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsNkdBQTZHLENBQUMsQ0FBQztZQUNySSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUM5QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFF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LENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLENBQUMsbUJBQW1CLENBQUUsR0FBVyxFQUFFLFlBQTBCO1FBQy9ELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ25DLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBQSxlQUFLLEVBQUEsa0NBQWtDLEdBQUcsU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEcsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0o7QUFySEQsZ0RBcUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtXcml0ZVN0cmVhbXN9IGZyb20gXCIuL3dyaXRlLXN0cmVhbXNcIjtcbmltcG9ydCB7R2l0RGF0YX0gZnJvbSBcIi4vZ2l0LWRhdGFcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tIFwianMteWFtbFwiO1xuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHtBcmd2fSBmcm9tIFwiLi9hcmd2XCI7XG5pbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCB7VXRpbHN9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ0lDRFZhcmlhYmxlIHtcbiAgICB0eXBlOiBcImZpbGVcIiB8IFwidmFyaWFibGVcIjtcbiAgICBlbnZpcm9ubWVudHM6IHtcbiAgICAgICAgY29udGVudDogc3RyaW5nO1xuICAgICAgICByZWdleHA6IFJlZ0V4cDtcbiAgICAgICAgcmVnZXhwUHJpb3JpdHk6IG51bWJlcjtcbiAgICAgICAgc2NvcGVQcmlvcml0eTogbnVtYmVyO1xuICAgICAgICBmaWxlU291cmNlPzogc3RyaW5nO1xuICAgIH1bXTtcbn1cblxuZXhwb3J0IGNsYXNzIFZhcmlhYmxlc0Zyb21GaWxlcyB7XG5cbiAgICBzdGF0aWMgYXN5bmMgaW5pdCAoYXJndjogQXJndiwgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMsIGdpdERhdGE6IEdpdERhdGEpOiBQcm9taXNlPHtbbmFtZTogc3RyaW5nXTogQ0lDRFZhcmlhYmxlfT4ge1xuICAgICAgICBjb25zdCBjd2QgPSBhcmd2LmN3ZDtcbiAgICAgICAgY29uc3Qgc3RhdGVEaXIgPSBhcmd2LnN0YXRlRGlyO1xuICAgICAgICBjb25zdCBob21lRGlyID0gYXJndi5ob21lO1xuICAgICAgICBjb25zdCByZW1vdGVWYXJpYWJsZXMgPSBhcmd2LnJlbW90ZVZhcmlhYmxlcztcbiAgICAgICAgY29uc3QgYXV0b0NvbXBsZXRpbmcgPSBhcmd2LmF1dG9Db21wbGV0aW5nO1xuICAgICAgICBjb25zdCBob21lVmFyaWFibGVzRmlsZSA9IGAke2hvbWVEaXJ9LyR7c3RhdGVEaXJ9L3ZhcmlhYmxlcy55bWxgO1xuICAgICAgICBjb25zdCB2YXJpYWJsZXM6IHtbbmFtZTogc3RyaW5nXTogQ0lDRFZhcmlhYmxlfSA9IHt9O1xuICAgICAgICBsZXQgcmVtb3RlRmlsZURhdGE6IGFueSA9IHt9O1xuICAgICAgICBsZXQgaG9tZUZpbGVEYXRhOiBhbnkgPSB7fTtcblxuICAgICAgICBpZiAocmVtb3RlVmFyaWFibGVzICYmICFhdXRvQ29tcGxldGluZykge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSAvKD88dXJsPmdpdEAuKj8pPSg/PGZpbGU+Lio/KT0oPzxyZWY+LiopLy5leGVjKHJlbW90ZVZhcmlhYmxlcyk7XG4gICAgICAgICAgICBhc3NlcnQobWF0Y2ggIT0gbnVsbCwgXCItLXJlbW90ZS12YXJpYWJsZXMgaXMgbWFsZm9ybWVkIHVzZSAnZ2l0QGdpdGxhYi5jb206ZmlyZWNvdy9leGFtcGxlLmdpdD1naXRsYWItdmFyaWFibGVzLnltbD1tYXN0ZXInIHN5bnRheFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IG1hdGNoLmdyb3Vwcz8udXJsO1xuICAgICAgICAgICAgY29uc3QgZmlsZSA9IG1hdGNoLmdyb3Vwcz8uZmlsZTtcbiAgICAgICAgICAgIGNvbnN0IHJlZiA9IG1hdGNoLmdyb3Vwcz8ucmVmO1xuICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgVXRpbHMuYmFzaChgZ2l0IGFyY2hpdmUgLS1yZW1vdGU9JHt1cmx9ICR7cmVmfSAke2ZpbGV9IHwgdGFyIC14TyAke2ZpbGV9YCwgY3dkKTtcbiAgICAgICAgICAgIHJlbW90ZUZpbGVEYXRhID0geWFtbC5sb2FkKGAke3Jlcy5zdGRvdXR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXdhaXQgZnMucGF0aEV4aXN0cyhob21lVmFyaWFibGVzRmlsZSkpIHtcbiAgICAgICAgICAgIGhvbWVGaWxlRGF0YSA9IHlhbWwubG9hZChhd2FpdCBmcy5yZWFkRmlsZShob21lVmFyaWFibGVzRmlsZSwgXCJ1dGY4XCIpLCB7c2NoZW1hOiB5YW1sLkZBSUxTQUZFX1NDSEVNQX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdW5wYWNrID0gKHY6IGFueSk6IHt2YWx1ZXM6IGFueTsgdHlwZTogXCJmaWxlXCIgfCBcInZhcmlhYmxlXCIgfCBudWxsfSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYXRjaEFsbDoge3ZhbHVlczogYW55OyB0eXBlOiBcImZpbGVcIiB8IFwidmFyaWFibGVcIiB8IG51bGx9ID0ge3ZhbHVlczoge30sIHR5cGU6IG51bGx9O1xuICAgICAgICAgICAgICAgIGNhdGNoQWxsLnZhbHVlcyA9IHt9O1xuICAgICAgICAgICAgICAgIGNhdGNoQWxsLnZhbHVlc1tcIipcIl0gPSB2O1xuICAgICAgICAgICAgICAgIHJldHVybiBjYXRjaEFsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdi50eXBlID0gdi50eXBlID8/IFwidmFyaWFibGVcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBhZGRUb1ZhcmlhYmxlcyA9IGFzeW5jIChrZXk6IHN0cmluZywgdmFsOiBhbnksIHNjb3BlUHJpb3JpdHk6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qge3R5cGUsIHZhbHVlc30gPSB1bnBhY2sodmFsKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW21hdGNoZXIsIGNvbnRlbnRdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICBhc3NlcnQodHlwZW9mIGNvbnRlbnQgPT0gXCJzdHJpbmdcIiwgYCR7a2V5fS4ke21hdGNoZXJ9IGNvbnRlbnQgbXVzdCBiZSB0ZXh0IG9yIG11bHRpbGluZSB0ZXh0YCk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IFwidmFyaWFibGVcIiB8fCAodHlwZSA9PT0gbnVsbCAmJiAhL15bL3x+XS8uZXhlYyhjb250ZW50KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnZXhwID0gbWF0Y2hlciA9PT0gXCIqXCIgPyAvLiovZyA6IG5ldyBSZWdFeHAoYF4ke21hdGNoZXIucmVwbGFjZSgvXFwqL2csIFwiLipcIil9JGAsIFwiZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzW2tleV0gPSB2YXJpYWJsZXNba2V5XSA/PyB7dHlwZTogXCJ2YXJpYWJsZVwiLCBlbnZpcm9ubWVudHM6IFtdfTtcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzW2tleV0uZW52aXJvbm1lbnRzLnB1c2goe2NvbnRlbnQsIHJlZ2V4cCwgcmVnZXhwUHJpb3JpdHk6IG1hdGNoZXIubGVuZ3RoLCBzY29wZVByaW9yaXR5fSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBudWxsICYmIC9eWy98fl0vLmV4ZWMoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZVNvdXJjZSA9IGNvbnRlbnQucmVwbGFjZSgvXn5cXC8oLiopLywgYCR7aG9tZURpcn0vJDFgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnZXhwID0gbWF0Y2hlciA9PT0gXCIqXCIgPyAvLiovZyA6IG5ldyBSZWdFeHAoYF4ke21hdGNoZXIucmVwbGFjZSgvXFwqL2csIFwiLipcIil9JGAsIFwiZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzW2tleV0gPSB2YXJpYWJsZXNba2V5XSA/PyB7dHlwZTogXCJmaWxlXCIsIGVudmlyb25tZW50czogW119O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhmaWxlU291cmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzW2tleV0uZW52aXJvbm1lbnRzLnB1c2goe2NvbnRlbnQsIHJlZ2V4cCwgcmVnZXhwUHJpb3JpdHk6IG1hdGNoZXIubGVuZ3RoLCBzY29wZVByaW9yaXR5LCBmaWxlU291cmNlfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXNba2V5XS5lbnZpcm9ubWVudHMucHVzaCh7Y29udGVudDogYHdhcm46ICR7a2V5fSBpcyBwb2ludGluZyB0byBpbnZhbGlkIHBhdGhcXG5gLCByZWdleHAsIHJlZ2V4cFByaW9yaXR5OiBtYXRjaGVyLmxlbmd0aCwgc2NvcGVQcmlvcml0eX0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcImZpbGVcIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdleHAgPSBtYXRjaGVyID09PSBcIipcIiA/IC8uKi9nIDogbmV3IFJlZ0V4cChgXiR7bWF0Y2hlci5yZXBsYWNlKC9cXCovZywgXCIuKlwiKX0kYCwgXCJnXCIpO1xuICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXNba2V5XSA9IHZhcmlhYmxlc1trZXldID8/IHt0eXBlOiBcImZpbGVcIiwgZW52aXJvbm1lbnRzOiBbXX07XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlc1trZXldLmVudmlyb25tZW50cy5wdXNoKHtjb250ZW50LCByZWdleHAsIHJlZ2V4cFByaW9yaXR5OiBtYXRjaGVyLmxlbmd0aCwgc2NvcGVQcmlvcml0eX0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgYCR7a2V5fSB3YXMgbm90IGhhbmRsZWQgcHJvcGVybHlgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgYWRkVmFyaWFibGVGaWxlVG9WYXJpYWJsZXMgPSBhc3luYyAoZmlsZURhdGE6IGFueSwgZmlsZVByaW9yaXR5OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2dsb2JhbEtleSwgZ2xvYmFsRW50cnldIG9mIE9iamVjdC5lbnRyaWVzKGZpbGVEYXRhPy5nbG9iYWwgPz8ge30pKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgYWRkVG9WYXJpYWJsZXMoZ2xvYmFsS2V5LCBnbG9iYWxFbnRyeSwgMSArIGZpbGVQcmlvcml0eSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGdyb3VwVXJsID0gYCR7Z2l0RGF0YS5yZW1vdGUuaG9zdH0vJHtnaXREYXRhLnJlbW90ZS5ncm91cH0vYDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2dyb3VwS2V5LCBncm91cEVudHJpZXNdIG9mIE9iamVjdC5lbnRyaWVzKGZpbGVEYXRhPy5ncm91cCA/PyB7fSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWdyb3VwVXJsLmluY2x1ZGVzKHRoaXMubm9ybWFsaXplUHJvamVjdEtleShncm91cEtleSwgd3JpdGVTdHJlYW1zKSkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGFzc2VydChncm91cEVudHJpZXMgIT0gbnVsbCwgXCJncm91cEVudHJpZXMgY2Fubm90IGJlIG51bGwvdW5kZWZpbmVkXCIpO1xuICAgICAgICAgICAgICAgIGFzc2VydChVdGlscy5pc09iamVjdChncm91cEVudHJpZXMpLCBcImdyb3VwIGVudHJpZXMgaW4gdmFyaWFibGUgZmlsZXMgbXVzdCBiZSBhbiBvYmplY3RcIik7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoZ3JvdXBFbnRyaWVzKSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBhZGRUb1ZhcmlhYmxlcyhrLCB2LCAyICsgZmlsZVByaW9yaXR5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHByb2plY3RVcmwgPSBgJHtnaXREYXRhLnJlbW90ZS5ob3N0fS8ke2dpdERhdGEucmVtb3RlLmdyb3VwfS8ke2dpdERhdGEucmVtb3RlLnByb2plY3R9LmdpdGA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtwcm9qZWN0S2V5LCBwcm9qZWN0RW50cmllc10gb2YgT2JqZWN0LmVudHJpZXMoZmlsZURhdGE/LnByb2plY3QgPz8gW10pKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0VXJsLmluY2x1ZGVzKHRoaXMubm9ybWFsaXplUHJvamVjdEtleShwcm9qZWN0S2V5LCB3cml0ZVN0cmVhbXMpKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgYXNzZXJ0KHByb2plY3RFbnRyaWVzICE9IG51bGwsIFwicHJvamVjdEVudHJpZXMgY2Fubm90IGJlIG51bGwvdW5kZWZpbmVkXCIpO1xuICAgICAgICAgICAgICAgIGFzc2VydChVdGlscy5pc09iamVjdChwcm9qZWN0RW50cmllcyksIFwicHJvamVjdCBlbnRyaWVzIGluIHZhcmlhYmxlIGZpbGVzIG11c3QgYmUgYW4gb2JqZWN0XCIpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHByb2plY3RFbnRyaWVzKSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBhZGRUb1ZhcmlhYmxlcyhrLCB2LCAzICsgZmlsZVByaW9yaXR5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgYXdhaXQgYWRkVmFyaWFibGVGaWxlVG9WYXJpYWJsZXMocmVtb3RlRmlsZURhdGEsIDApO1xuICAgICAgICBhd2FpdCBhZGRWYXJpYWJsZUZpbGVUb1ZhcmlhYmxlcyhob21lRmlsZURhdGEsIDEwKTtcblxuICAgICAgICBjb25zdCBwcm9qZWN0VmFyaWFibGVzRmlsZSA9IGAke2FyZ3YuY3dkfS8uZ2l0bGFiLWNpLWxvY2FsLXZhcmlhYmxlcy55bWxgO1xuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhwcm9qZWN0VmFyaWFibGVzRmlsZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb2plY3RWYXJpYWJsZXNGaWxlRGF0YTogYW55ID0geWFtbC5sb2FkKGF3YWl0IGZzLnJlYWRGaWxlKHByb2plY3RWYXJpYWJsZXNGaWxlLCBcInV0ZjhcIiksIHtzY2hlbWE6IHlhbWwuRkFJTFNBRkVfU0NIRU1BfSkgPz8ge307XG4gICAgICAgICAgICBhc3NlcnQocHJvamVjdFZhcmlhYmxlc0ZpbGVEYXRhICE9IG51bGwsIFwicHJvamVjdEVudHJpZXMgY2Fubm90IGJlIG51bGwvdW5kZWZpbmVkXCIpO1xuICAgICAgICAgICAgYXNzZXJ0KFV0aWxzLmlzT2JqZWN0KHByb2plY3RWYXJpYWJsZXNGaWxlRGF0YSksIGAke2FyZ3YuY3dkfS8uZ2l0bGFiLWNpLWxvY2FsLXZhcmlhYmxlcy55bWwgbXVzdCBjb250YWluIGFuIG9iamVjdGApO1xuICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocHJvamVjdFZhcmlhYmxlc0ZpbGVEYXRhKSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGFkZFRvVmFyaWFibGVzKGssIHYsIDI0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgdmFyT2JqIG9mIE9iamVjdC52YWx1ZXModmFyaWFibGVzKSkge1xuICAgICAgICAgICAgdmFyT2JqLmVudmlyb25tZW50cy5zb3J0KChhLCBiKSA9PiBiLnNjb3BlUHJpb3JpdHkgLSBhLnNjb3BlUHJpb3JpdHkpO1xuICAgICAgICAgICAgdmFyT2JqLmVudmlyb25tZW50cy5zb3J0KChhLCBiKSA9PiBiLnJlZ2V4cFByaW9yaXR5IC0gYS5yZWdleHBQcmlvcml0eSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFyaWFibGVzO1xuICAgIH1cblxuICAgIHN0YXRpYyBub3JtYWxpemVQcm9qZWN0S2V5IChrZXk6IHN0cmluZywgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWtleS5pbmNsdWRlcyhcIjpcIikpIHJldHVybiBrZXk7XG4gICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBXQVJOSU5HOiBJbnRlcnByZXRpbmcgJyR7a2V5fScgYXMgJyR7a2V5LnJlcGxhY2UoXCI6XCIsIFwiL1wiKX0nfVxcbmApO1xuICAgICAgICByZXR1cm4ga2V5LnJlcGxhY2UoXCI6XCIsIFwiL1wiKTtcbiAgICB9XG59XG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLWZyb20tZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ2YXJpYWJsZXMtZnJvbS1maWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDZDQUErQjtBQUMvQiw4Q0FBZ0M7QUFDaEMsa0RBQTBCO0FBRTFCLG9EQUE0QjtBQUM1QixtQ0FBOEI7QUFhOUIsTUFBYSxrQkFBa0I7SUFFM0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUUsSUFBVSxFQUFFLFlBQTBCLEVBQUUsT0FBZ0I7UUFDdkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM3QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzNDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxPQUFPLElBQUksUUFBUSxnQkFBZ0IsQ0FBQztRQUNqRSxNQUFNLFNBQVMsR0FBbUMsRUFBRSxDQUFDO1FBQ3JELElBQUksY0FBYyxHQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLFlBQVksR0FBUSxFQUFFLENBQUM7UUFFM0IsSUFBSSxlQUFlLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyQyxNQUFNLEtBQUssR0FBRyx5Q0FBeUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDOUUsSUFBQSxnQkFBTSxFQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsNkdBQTZHLENBQUMsQ0FBQztZQUNySSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUM5QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFF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LENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLENBQUMsbUJBQW1CLENBQUUsR0FBVyxFQUFFLFlBQTBCO1FBQy9ELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ25DLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBQSxlQUFLLEVBQUEsa0NBQWtDLEdBQUcsU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEcsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0o7QUFySEQsZ0RBcUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtXcml0ZVN0cmVhbXN9IGZyb20gXCIuL3dyaXRlLXN0cmVhbXNcIjtcbmltcG9ydCB7R2l0RGF0YX0gZnJvbSBcIi4vZ2l0LWRhdGFcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tIFwianMteWFtbFwiO1xuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHtBcmd2fSBmcm9tIFwiLi9hcmd2XCI7XG5pbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCB7VXRpbHN9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ0lDRFZhcmlhYmxlIHtcbiAgICB0eXBlOiBcImZpbGVcIiB8IFwidmFyaWFibGVcIjtcbiAgICBlbnZpcm9ubWVudHM6IHtcbiAgICAgICAgY29udGVudDogc3RyaW5nO1xuICAgICAgICByZWdleHA6IFJlZ0V4cDtcbiAgICAgICAgcmVnZXhwUHJpb3JpdHk6IG51bWJlcjtcbiAgICAgICAgc2NvcGVQcmlvcml0eTogbnVtYmVyO1xuICAgICAgICBmaWxlU291cmNlPzogc3RyaW5nO1xuICAgIH1bXTtcbn1cblxuZXhwb3J0IGNsYXNzIFZhcmlhYmxlc0Zyb21GaWxlcyB7XG5cbiAgICBzdGF0aWMgYXN5bmMgaW5pdCAoYXJndjogQXJndiwgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMsIGdpdERhdGE6IEdpdERhdGEpOiBQcm9taXNlPHtbbmFtZTogc3RyaW5nXTogQ0lDRFZhcmlhYmxlfT4ge1xuICAgICAgICBjb25zdCBjd2QgPSBhcmd2LmN3ZDtcbiAgICAgICAgY29uc3Qgc3RhdGVEaXIgPSBhcmd2LnN0YXRlRGlyO1xuICAgICAgICBjb25zdCBob21lRGlyID0gYXJndi5ob21lO1xuICAgICAgICBjb25zdCByZW1vdGVWYXJpYWJsZXMgPSBhcmd2LnJlbW90ZVZhcmlhYmxlcztcbiAgICAgICAgY29uc3QgYXV0b0NvbXBsZXRpbmcgPSBhcmd2LmF1dG9Db21wbGV0aW5nO1xuICAgICAgICBjb25zdCBob21lVmFyaWFibGVzRmlsZSA9IGAke2hvbWVEaXJ9LyR7c3RhdGVEaXJ9L3ZhcmlhYmxlcy55bWxgO1xuICAgICAgICBjb25zdCB2YXJpYWJsZXM6IHtbbmFtZTogc3RyaW5nXTogQ0lDRFZhcmlhYmxlfSA9IHt9O1xuICAgICAgICBsZXQgcmVtb3RlRmlsZURhdGE6IGFueSA9IHt9O1xuICAgICAgICBsZXQgaG9tZUZpbGVEYXRhOiBhbnkgPSB7fTtcblxuICAgICAgICBpZiAocmVtb3RlVmFyaWFibGVzICYmICFhdXRvQ29tcGxldGluZykge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSAvKD88dXJsPmdpdEAuKj8pPSg/PGZpbGU+Lio/KT0oPzxyZWY+LiopLy5leGVjKHJlbW90ZVZhcmlhYmxlcyk7XG4gICAgICAgICAgICBhc3NlcnQobWF0Y2ggIT0gbnVsbCwgXCItLXJlbW90ZS12YXJpYWJsZXMgaXMgbWFsZm9ybWVkIHVzZSAnZ2l0QGdpdGxhYi5jb206ZmlyZWNvdy9leGFtcGxlLmdpdD1naXRsYWItdmFyaWFibGVzLnltbD1tYXN0ZXInIHN5bnRheFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IG1hdGNoLmdyb3Vwcz8udXJsO1xuICAgICAgICAgICAgY29uc3QgZmlsZSA9IG1hdGNoLmdyb3Vwcz8uZmlsZTtcbiAgICAgICAgICAgIGNvbnN0IHJlZiA9IG1hdGNoLmdyb3Vwcz8ucmVmO1xuICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgVXRpbHMuYmFzaChgc2V0IC1lb3UgcGlwZWZhaWw7IGdpdCBhcmNoaXZlIC0tcmVtb3RlPSR7dXJsfSAke3JlZn0gJHtmaWxlfSB8IHRhciAteE8gJHtmaWxlfWAsIGN3ZCk7XG4gICAgICAgICAgICByZW1vdGVGaWxlRGF0YSA9IHlhbWwubG9hZChgJHtyZXMuc3Rkb3V0fWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGF3YWl0IGZzLnBhdGhFeGlzdHMoaG9tZVZhcmlhYmxlc0ZpbGUpKSB7XG4gICAgICAgICAgICBob21lRmlsZURhdGEgPSB5YW1sLmxvYWQoYXdhaXQgZnMucmVhZEZpbGUoaG9tZVZhcmlhYmxlc0ZpbGUsIFwidXRmOFwiKSwge3NjaGVtYTogeWFtbC5GQUlMU0FGRV9TQ0hFTUF9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVucGFjayA9ICh2OiBhbnkpOiB7dmFsdWVzOiBhbnk7IHR5cGU6IFwiZmlsZVwiIHwgXCJ2YXJpYWJsZVwiIHwgbnVsbH0gPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2F0Y2hBbGw6IHt2YWx1ZXM6IGFueTsgdHlwZTogXCJmaWxlXCIgfCBcInZhcmlhYmxlXCIgfCBudWxsfSA9IHt2YWx1ZXM6IHt9LCB0eXBlOiBudWxsfTtcbiAgICAgICAgICAgICAgICBjYXRjaEFsbC52YWx1ZXMgPSB7fTtcbiAgICAgICAgICAgICAgICBjYXRjaEFsbC52YWx1ZXNbXCIqXCJdID0gdjtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2F0Y2hBbGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHYudHlwZSA9IHYudHlwZSA/PyBcInZhcmlhYmxlXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYWRkVG9WYXJpYWJsZXMgPSBhc3luYyAoa2V5OiBzdHJpbmcsIHZhbDogYW55LCBzY29wZVByaW9yaXR5OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHt0eXBlLCB2YWx1ZXN9ID0gdW5wYWNrKHZhbCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFttYXRjaGVyLCBjb250ZW50XSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZiBjb250ZW50ID09IFwic3RyaW5nXCIsIGAke2tleX0uJHttYXRjaGVyfSBjb250ZW50IG11c3QgYmUgdGV4dCBvciBtdWx0aWxpbmUgdGV4dGApO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBcInZhcmlhYmxlXCIgfHwgKHR5cGUgPT09IG51bGwgJiYgIS9eWy98fl0vLmV4ZWMoY29udGVudCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4cCA9IG1hdGNoZXIgPT09IFwiKlwiID8gLy4qL2cgOiBuZXcgUmVnRXhwKGBeJHttYXRjaGVyLnJlcGxhY2UoL1xcKi9nLCBcIi4qXCIpfSRgLCBcImdcIik7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlc1trZXldID0gdmFyaWFibGVzW2tleV0gPz8ge3R5cGU6IFwidmFyaWFibGVcIiwgZW52aXJvbm1lbnRzOiBbXX07XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlc1trZXldLmVudmlyb25tZW50cy5wdXNoKHtjb250ZW50LCByZWdleHAsIHJlZ2V4cFByaW9yaXR5OiBtYXRjaGVyLmxlbmd0aCwgc2NvcGVQcmlvcml0eX0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gbnVsbCAmJiAvXlsvfH5dLy5leGVjKGNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVTb3VyY2UgPSBjb250ZW50LnJlcGxhY2UoL15+XFwvKC4qKS8sIGAke2hvbWVEaXJ9LyQxYCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4cCA9IG1hdGNoZXIgPT09IFwiKlwiID8gLy4qL2cgOiBuZXcgUmVnRXhwKGBeJHttYXRjaGVyLnJlcGxhY2UoL1xcKi9nLCBcIi4qXCIpfSRgLCBcImdcIik7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlc1trZXldID0gdmFyaWFibGVzW2tleV0gPz8ge3R5cGU6IFwiZmlsZVwiLCBlbnZpcm9ubWVudHM6IFtdfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoZmlsZVNvdXJjZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlc1trZXldLmVudmlyb25tZW50cy5wdXNoKHtjb250ZW50LCByZWdleHAsIHJlZ2V4cFByaW9yaXR5OiBtYXRjaGVyLmxlbmd0aCwgc2NvcGVQcmlvcml0eSwgZmlsZVNvdXJjZX0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzW2tleV0uZW52aXJvbm1lbnRzLnB1c2goe2NvbnRlbnQ6IGB3YXJuOiAke2tleX0gaXMgcG9pbnRpbmcgdG8gaW52YWxpZCBwYXRoXFxuYCwgcmVnZXhwLCByZWdleHBQcmlvcml0eTogbWF0Y2hlci5sZW5ndGgsIHNjb3BlUHJpb3JpdHl9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJmaWxlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnZXhwID0gbWF0Y2hlciA9PT0gXCIqXCIgPyAvLiovZyA6IG5ldyBSZWdFeHAoYF4ke21hdGNoZXIucmVwbGFjZSgvXFwqL2csIFwiLipcIil9JGAsIFwiZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzW2tleV0gPSB2YXJpYWJsZXNba2V5XSA/PyB7dHlwZTogXCJmaWxlXCIsIGVudmlyb25tZW50czogW119O1xuICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXNba2V5XS5lbnZpcm9ubWVudHMucHVzaCh7Y29udGVudCwgcmVnZXhwLCByZWdleHBQcmlvcml0eTogbWF0Y2hlci5sZW5ndGgsIHNjb3BlUHJpb3JpdHl9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsIGAke2tleX0gd2FzIG5vdCBoYW5kbGVkIHByb3Blcmx5YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGFkZFZhcmlhYmxlRmlsZVRvVmFyaWFibGVzID0gYXN5bmMgKGZpbGVEYXRhOiBhbnksIGZpbGVQcmlvcml0eTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtnbG9iYWxLZXksIGdsb2JhbEVudHJ5XSBvZiBPYmplY3QuZW50cmllcyhmaWxlRGF0YT8uZ2xvYmFsID8/IHt9KSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGFkZFRvVmFyaWFibGVzKGdsb2JhbEtleSwgZ2xvYmFsRW50cnksIDEgKyBmaWxlUHJpb3JpdHkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBncm91cFVybCA9IGAke2dpdERhdGEucmVtb3RlLmhvc3R9LyR7Z2l0RGF0YS5yZW1vdGUuZ3JvdXB9L2A7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtncm91cEtleSwgZ3JvdXBFbnRyaWVzXSBvZiBPYmplY3QuZW50cmllcyhmaWxlRGF0YT8uZ3JvdXAgPz8ge30pKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFncm91cFVybC5pbmNsdWRlcyh0aGlzLm5vcm1hbGl6ZVByb2plY3RLZXkoZ3JvdXBLZXksIHdyaXRlU3RyZWFtcykpKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBhc3NlcnQoZ3JvdXBFbnRyaWVzICE9IG51bGwsIFwiZ3JvdXBFbnRyaWVzIGNhbm5vdCBiZSBudWxsL3VuZGVmaW5lZFwiKTtcbiAgICAgICAgICAgICAgICBhc3NlcnQoVXRpbHMuaXNPYmplY3QoZ3JvdXBFbnRyaWVzKSwgXCJncm91cCBlbnRyaWVzIGluIHZhcmlhYmxlIGZpbGVzIG11c3QgYmUgYW4gb2JqZWN0XCIpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGdyb3VwRW50cmllcykpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYWRkVG9WYXJpYWJsZXMoaywgdiwgMiArIGZpbGVQcmlvcml0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0VXJsID0gYCR7Z2l0RGF0YS5yZW1vdGUuaG9zdH0vJHtnaXREYXRhLnJlbW90ZS5ncm91cH0vJHtnaXREYXRhLnJlbW90ZS5wcm9qZWN0fS5naXRgO1xuICAgICAgICAgICAgZm9yIChjb25zdCBbcHJvamVjdEtleSwgcHJvamVjdEVudHJpZXNdIG9mIE9iamVjdC5lbnRyaWVzKGZpbGVEYXRhPy5wcm9qZWN0ID8/IFtdKSkge1xuICAgICAgICAgICAgICAgIGlmICghcHJvamVjdFVybC5pbmNsdWRlcyh0aGlzLm5vcm1hbGl6ZVByb2plY3RLZXkocHJvamVjdEtleSwgd3JpdGVTdHJlYW1zKSkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGFzc2VydChwcm9qZWN0RW50cmllcyAhPSBudWxsLCBcInByb2plY3RFbnRyaWVzIGNhbm5vdCBiZSBudWxsL3VuZGVmaW5lZFwiKTtcbiAgICAgICAgICAgICAgICBhc3NlcnQoVXRpbHMuaXNPYmplY3QocHJvamVjdEVudHJpZXMpLCBcInByb2plY3QgZW50cmllcyBpbiB2YXJpYWJsZSBmaWxlcyBtdXN0IGJlIGFuIG9iamVjdFwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwcm9qZWN0RW50cmllcykpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYWRkVG9WYXJpYWJsZXMoaywgdiwgMyArIGZpbGVQcmlvcml0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGF3YWl0IGFkZFZhcmlhYmxlRmlsZVRvVmFyaWFibGVzKHJlbW90ZUZpbGVEYXRhLCAwKTtcbiAgICAgICAgYXdhaXQgYWRkVmFyaWFibGVGaWxlVG9WYXJpYWJsZXMoaG9tZUZpbGVEYXRhLCAxMCk7XG5cbiAgICAgICAgY29uc3QgcHJvamVjdFZhcmlhYmxlc0ZpbGUgPSBgJHthcmd2LmN3ZH0vLmdpdGxhYi1jaS1sb2NhbC12YXJpYWJsZXMueW1sYDtcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocHJvamVjdFZhcmlhYmxlc0ZpbGUpKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0VmFyaWFibGVzRmlsZURhdGE6IGFueSA9IHlhbWwubG9hZChhd2FpdCBmcy5yZWFkRmlsZShwcm9qZWN0VmFyaWFibGVzRmlsZSwgXCJ1dGY4XCIpLCB7c2NoZW1hOiB5YW1sLkZBSUxTQUZFX1NDSEVNQX0pID8/IHt9O1xuICAgICAgICAgICAgYXNzZXJ0KHByb2plY3RWYXJpYWJsZXNGaWxlRGF0YSAhPSBudWxsLCBcInByb2plY3RFbnRyaWVzIGNhbm5vdCBiZSBudWxsL3VuZGVmaW5lZFwiKTtcbiAgICAgICAgICAgIGFzc2VydChVdGlscy5pc09iamVjdChwcm9qZWN0VmFyaWFibGVzRmlsZURhdGEpLCBgJHthcmd2LmN3ZH0vLmdpdGxhYi1jaS1sb2NhbC12YXJpYWJsZXMueW1sIG11c3QgY29udGFpbiBhbiBvYmplY3RgKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHByb2plY3RWYXJpYWJsZXNGaWxlRGF0YSkpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBhZGRUb1ZhcmlhYmxlcyhrLCB2LCAyNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHZhck9iaiBvZiBPYmplY3QudmFsdWVzKHZhcmlhYmxlcykpIHtcbiAgICAgICAgICAgIHZhck9iai5lbnZpcm9ubWVudHMuc29ydCgoYSwgYikgPT4gYi5zY29wZVByaW9yaXR5IC0gYS5zY29wZVByaW9yaXR5KTtcbiAgICAgICAgICAgIHZhck9iai5lbnZpcm9ubWVudHMuc29ydCgoYSwgYikgPT4gYi5yZWdleHBQcmlvcml0eSAtIGEucmVnZXhwUHJpb3JpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlcztcbiAgICB9XG5cbiAgICBzdGF0aWMgbm9ybWFsaXplUHJvamVjdEtleSAoa2V5OiBzdHJpbmcsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFrZXkuaW5jbHVkZXMoXCI6XCIpKSByZXR1cm4ga2V5O1xuICAgICAgICB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHt5ZWxsb3cgV0FSTklORzogSW50ZXJwcmV0aW5nICcke2tleX0nIGFzICcke2tleS5yZXBsYWNlKFwiOlwiLCBcIi9cIil9J31cXG5gKTtcbiAgICAgICAgcmV0dXJuIGtleS5yZXBsYWNlKFwiOlwiLCBcIi9cIik7XG4gICAgfVxufVxuIl19