cdk8s-cli 2.204.9 → 2.205.1

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/lib/import/k8s.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findApiObjectDefinitions = exports.ImportKubernetesApi = exports.DEFAULT_API_VERSION = void 0;
3
+ exports.ImportKubernetesApi = exports.DEFAULT_API_VERSION = void 0;
4
+ exports.findApiObjectDefinitions = findApiObjectDefinitions;
4
5
  const json2jsii_1 = require("json2jsii");
5
6
  const base_1 = require("./base");
6
7
  const codegen_1 = require("./codegen");
@@ -90,7 +91,7 @@ function findApiObjectDefinitions(schema, prefix) {
90
91
  throw new Error(`Unable to parse version for type: ${typename}`);
91
92
  }
92
93
  result.push({
93
- custom: false,
94
+ custom: false, // not a CRD
94
95
  fqn: type.fullname,
95
96
  group: objectName.group,
96
97
  kind: objectName.kind,
@@ -101,7 +102,6 @@ function findApiObjectDefinitions(schema, prefix) {
101
102
  }
102
103
  return result;
103
104
  }
104
- exports.findApiObjectDefinitions = findApiObjectDefinitions;
105
105
  function tryGetObjectName(def) {
106
106
  const objectNames = def[X_GROUP_VERSION_KIND];
107
107
  if (!objectNames) {
@@ -137,4 +137,4 @@ async function downloadSchema(apiVersion) {
137
137
  throw new Error(`Unable to parse schema at ${url}: ${e}`);
138
138
  }
139
139
  }
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydC9rOHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEseUNBQTBDO0FBQzFDLGlDQUFxRDtBQUNyRCx1Q0FBOEc7QUFDOUcseUNBQW1FO0FBRW5FLGtDQUFtQztBQUd0QixRQUFBLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztBQUU1QyxNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQztBQWdCekMsTUFBYSxtQkFBb0IsU0FBUSxpQkFBVTtJQUUxQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFzQixFQUFFLElBQVM7UUFDekQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xELE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSwyQkFBbUIsQ0FBQztRQUU3RCxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixVQUFVLDhDQUE4QyxDQUFDLENBQUM7U0FDcEc7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixVQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWpELE9BQU87WUFDTCxVQUFVLEVBQUUsVUFBVTtZQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUE2QixPQUFtQztRQUM5RCxLQUFLLEVBQUUsQ0FBQztRQURtQixZQUFPLEdBQVAsT0FBTyxDQUE0QjtJQUVoRSxDQUFDO0lB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QUFJLEtBQUssQ0FBQyw2QkFBNkIsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDM0Q7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSAnY29kZW1ha2VyJztcblxuLy8gd2UganVzdCBuZWVkIHRoZSB0eXBlcyBmcm9tIGpzb24tc2NoZW1hXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBKU09OU2NoZW1hNCB9IGZyb20gJ2pzb24tc2NoZW1hJztcblxuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5pbXBvcnQgeyBHZW5lcmF0ZU9wdGlvbnMsIEltcG9ydEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQXBpT2JqZWN0RGVmaW5pdGlvbiwgZW1pdEhlYWRlciwgZ2VuZXJhdGVDb25zdHJ1Y3QsIGdldFByb3BzVHlwZU5hbWUsIGdldFR5cGVOYW1lIH0gZnJvbSAnLi9jb2RlZ2VuJztcbmltcG9ydCB7IHBhcnNlQXBpVHlwZU5hbWUsIHNhZmVQYXJzZUpzb25TY2hlbWEgfSBmcm9tICcuL2s4cy11dGlsJztcbmltcG9ydCB7IEltcG9ydFNwZWMgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgZG93bmxvYWQgfSBmcm9tICcuLi91dGlsJztcblxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BUElfVkVSU0lPTiA9ICcxLjI1LjAnO1xuXG5jb25zdCBERUZBVUxUX0NMQVNTX05BTUVfUFJFRklYID0gJ0t1YmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydEt1YmVybmV0ZXNBcGlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBBUEkgdmVyc2lvbiB0byBnZW5lcmF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwaVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogRG8gbm90IGltcG9ydCB0aGVzZSB0eXBlcy4gSW5zdGVhZCwgcmVwcmVzZW50IHRoZW0gYXMgXCJhbnlcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBpbmNsdWRlIGFsbCB0eXBlcyB0aGF0IGRlcml2ZSBmcm9tIHRoZSByb290IHR5cGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgSW1wb3J0S3ViZXJuZXRlc0FwaSBleHRlbmRzIEltcG9ydEJhc2Uge1xuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgbWF0Y2goaW1wb3J0U3BlYzogSW1wb3J0U3BlYywgYXJndjogYW55KTogUHJvbWlzZTxJbXBvcnRLdWJlcm5ldGVzQXBpT3B0aW9ucyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHsgc291cmNlIH0gPSBpbXBvcnRTcGVjO1xuICAgIGlmIChzb3VyY2UgIT09ICdrOHMnICYmICFzb3VyY2Uuc3RhcnRzV2l0aCgnazhzQCcpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCBrOHNWZXJzaW9uID0gc291cmNlLnNwbGl0KCdAJylbMV0gPz8gREVGQVVMVF9BUElfVkVSU0lPTjtcblxuICAgIGNvbnN0IGs4c1ZlcnNpb25SZWdleCA9IC9eXFxkK1xcLlxcZCtcXC5cXGQrJC87XG4gICAgaWYgKCFrOHNWZXJzaW9uUmVnZXgudGVzdChrOHNWZXJzaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBrOHMgdmVyc2lvbiBcIiR7azhzVmVyc2lvbn1cIiB0byBtYXRjaCBmb3JtYXQgXCI8bWFqb3I+LjxtaW5vcj4uPHBhdGNoPlwiLmApO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoYEltcG9ydGluZyBrOHMgdiR7azhzVmVyc2lvbn0uLi5gKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhcGlWZXJzaW9uOiBrOHNWZXJzaW9uLFxuICAgICAgZXhjbHVkZTogYXJndi5leGNsdWRlLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEltcG9ydEt1YmVybmV0ZXNBcGlPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kdWxlTmFtZXMoKSB7XG4gICAgcmV0dXJuIFsnazhzJ107XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2VuZXJhdGVUeXBlU2NyaXB0KGNvZGU6IENvZGVNYWtlciwgbW9kdWxlTmFtZTogc3RyaW5nLCBvcHRpb25zOiBHZW5lcmF0ZU9wdGlvbnMpIHtcbiAgICBjb25zdCBzY2hlbWEgPSBhd2FpdCBkb3dubG9hZFNjaGVtYSh0aGlzLm9wdGlvbnMuYXBpVmVyc2lvbik7XG5cbiAgICBpZiAobW9kdWxlTmFtZSAhPT0gJ2s4cycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBtb2R1bGUgbmFtZSBcIiR7bW9kdWxlTmFtZX1cIiB3aGVuIGltcG9ydGluZyBrOHMgdHlwZXMgKGV4cGVjdGVkIFwiazhzXCIpYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy5jbGFzc05hbWVQcmVmaXggPz8gREVGQVVMVF9DTEFTU19OQU1FX1BSRUZJWDtcbiAgICBjb25zdCB0b3BMZXZlbE9iamVjdHMgPSBmaW5kQXBpT2JqZWN0RGVmaW5pdGlvbnMoc2NoZW1hLCBwcmVmaXgpO1xuXG4gICAgY29uc3QgdHlwZUdlbmVyYXRvciA9IG5ldyBUeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiBzY2hlbWEuZGVmaW5pdGlvbnMsXG4gICAgICBleGNsdWRlOiB0aGlzLm9wdGlvbnMuZXhjbHVkZSxcbiAgICAgIHJlbmRlclR5cGVOYW1lOiAoZGVmOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VBcGlUeXBlTmFtZShkZWYpO1xuICAgICAgICBpZiAoIXBhcnNlZC52ZXJzaW9uKSB7XG4gICAgICAgICAgLy8gbm90IGEgdmVyc2lvbmVkIGFwaSB0eXBlLiByZXR1cm4gYmFzZW5hbWVcbiAgICAgICAgICByZXR1cm4gcGFyc2VkLmJhc2VuYW1lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRUeXBlTmFtZShmYWxzZSwgcGFyc2VkLmJhc2VuYW1lLCBwYXJzZWQudmVyc2lvbi5yYXcpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIHJlbmFtZSBcIlByb3BzXCIgdHlwZSBmcm9tIHRoZWlyIG9yaWdpbmFsIG5hbWUgYmFzZWQgb24gdGhlIEFQSSBvYmplY3Qga2luZFxuICAgIC8vIChlLmcuIGBEZXBsb3ltZW50YCkgdG8gdGhlaXIgYWN0dWFsIHByb3BzIHR5cGUgKGBLdWJlRGVwbG95bWVudFByb3BzYCkgaW5cbiAgICAvLyBvcmRlciB0byBhdm9pZCBjb25mdXNpb24gYmV0d2VlbiBjb25zdHJ1Y3RzIChgS3ViZURlcGxveW1lbnRgKSBhbmQgdGhvc2VcbiAgICAvLyB0eXBlcy4gVGhpcyBpcyBkb25lIGJ5IHNpbXBseSByZXBsYWNpbmcgdGhlaXIgZGVmaW5pdGlvbiBpbiB0aGUgc2NoZW1hXG4gICAgLy8gd2l0aCBhICRyZWYgdG8gdGhlIGRlZmluaXRpb24gb2YgdGhlIHByb3BzIHR5cGUuXG4gICAgZm9yIChjb25zdCBvIG9mIHRvcExldmVsT2JqZWN0cykge1xuICAgICAgdHlwZUdlbmVyYXRvci5hZGREZWZpbml0aW9uKG8uZnFuLCB7ICRyZWY6IGAjL2RlZmluaXRpb25zLyR7Z2V0UHJvcHNUeXBlTmFtZShvKX1gIH0pO1xuICAgIH1cblxuICAgIC8vIGVtaXQgY29uc3RydWN0IHR5cGVzIChyZWN1cnNpdmUpXG4gICAgZm9yIChjb25zdCBvIG9mIHRvcExldmVsT2JqZWN0cykge1xuICAgICAgZ2VuZXJhdGVDb25zdHJ1Y3QodHlwZUdlbmVyYXRvciwgbyk7XG4gICAgfVxuXG4gICAgZW1pdEhlYWRlcihjb2RlLCBmYWxzZSk7XG5cbiAgICBjb2RlLmxpbmUodHlwZUdlbmVyYXRvci5yZW5kZXIoKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgbWFwIG9mIGFsbCBBUEkgb2JqZWN0cyBpbiB0aGUgc3BlYyAob2JqZWN0cyB0aGF0IGhhdmUgdGhlXG4gKiAneC1rdWJlcm5ldGVzLWdyb3VwLXZlcnNpb24ta2luZCcgYW5ub3RhdGlvbikuXG4gKlxuICogVGhlIGtleSBpcyB0aGUgYmFzZSBuYW1lIG9mIHRoZSB0eXBlIChpLmUuIGBEZXBsb3ltZW50YCkuIFNpbmNlIEFQSSBvYmplY3RzXG4gKiBtYXkgaGF2ZSBtdWx0aXBsZSB2ZXJzaW9ucywgZWFjaCB2YWx1ZSBpbiB0aGUgbWFwIGlzIGFuIGFycmF5IG9mIHR5cGUgZGVmaW5pdGlvbnNcbiAqIGFsb25nIHdpdGggdmVyc2lvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L2t1YmVybmV0ZXMtYXBpLyNhcGktdmVyc2lvbmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEFwaU9iamVjdERlZmluaXRpb25zKHNjaGVtYTogSlNPTlNjaGVtYTQsIHByZWZpeDogc3RyaW5nKTogQXBpT2JqZWN0RGVmaW5pdGlvbltdIHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PEFwaU9iamVjdERlZmluaXRpb24+KCk7XG5cbiAgZm9yIChjb25zdCBbdHlwZW5hbWUsIGFwaXNjaGVtYV0gb2YgT2JqZWN0LmVudHJpZXMoc2NoZW1hLmRlZmluaXRpb25zIHx8IHsgfSkpIHtcbiAgICBjb25zdCBvYmplY3ROYW1lID0gdHJ5R2V0T2JqZWN0TmFtZShhcGlzY2hlbWEpO1xuICAgIGlmICghb2JqZWN0TmFtZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZSA9IHBhcnNlQXBpVHlwZU5hbWUodHlwZW5hbWUpO1xuICAgIGlmICghdHlwZS52ZXJzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSB2ZXJzaW9uIGZvciB0eXBlOiAke3R5cGVuYW1lfWApO1xuICAgIH1cbiAgICByZXN1bHQucHVzaCh7XG4gICAgICBjdXN0b206IGZhbHNlLCAvLyBub3QgYSBDUkRcbiAgICAgIGZxbjogdHlwZS5mdWxsbmFtZSxcbiAgICAgIGdyb3VwOiBvYmplY3ROYW1lLmdyb3VwLFxuICAgICAga2luZDogb2JqZWN0TmFtZS5raW5kLFxuICAgICAgdmVyc2lvbjogb2JqZWN0TmFtZS52ZXJzaW9uLFxuICAgICAgc2NoZW1hOiBhcGlzY2hlbWEsXG4gICAgICBwcmVmaXgsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB0cnlHZXRPYmplY3ROYW1lKGRlZjogSlNPTlNjaGVtYTQpOiBHcm91cFZlcnNpb25LaW5kIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgb2JqZWN0TmFtZXMgPSBkZWZbWF9HUk9VUF9WRVJTSU9OX0tJTkRdIGFzIEdyb3VwVmVyc2lvbktpbmRbXTtcbiAgaWYgKCFvYmplY3ROYW1lcykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBvYmplY3ROYW1lID0gb2JqZWN0TmFtZXNbMF07XG4gIGlmICghb2JqZWN0TmFtZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBza2lwIGRlZmluaXRpb25zIHdpdGhvdXQgXCJtZXRhZGF0YVwiLiB0aGV5IGFyZSBub3QgQVBJIG9iamVjdHMgdGhhdCBjYW4gYmUgZGVmaW5lZFxuICAvLyBpbiBtYW5pZmVzdHMgKGV4YW1wbGU6IGlvLms4cy5hcGltYWNoaW5lcnkucGtnLmFwaXMubWV0YS52MS5EZWxldGVPcHRpb25zKVxuICAvLyB0aGV5IHdpbGwgYmUgdHJlYXRlZCBhcyBkYXRhIHR5cGVzXG4gIGlmICghZGVmLnByb3BlcnRpZXM/Lm1ldGFkYXRhKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBvYmplY3ROYW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwVmVyc2lvbktpbmQge1xuICByZWFkb25seSBncm91cDogc3RyaW5nO1xuICByZWFkb25seSBraW5kOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuY29uc3QgWF9HUk9VUF9WRVJTSU9OX0tJTkQgPSAneC1rdWJlcm5ldGVzLWdyb3VwLXZlcnNpb24ta2luZCc7XG5cbmFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkU2NoZW1hKGFwaVZlcnNpb246IHN0cmluZykge1xuICBjb25zdCB1cmwgPSBgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NkazhzLXRlYW0vY2RrOHMvbWFzdGVyL2t1YmVybmV0ZXMtc2NoZW1hcy92JHthcGlWZXJzaW9ufS9fZGVmaW5pdGlvbnMuanNvbmA7XG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZG93bmxvYWQodXJsKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoYENvdWxkIG5vdCBmaW5kIGEgc2NoZW1hIGZvciBrOHMgdmVyc2lvbiAke2FwaVZlcnNpb259LiBUaGUgY3VycmVudCBsaXN0IG9mIGF2YWlsYWJsZSBzY2hlbWFzIGlzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9jZGs4cy10ZWFtL2NkazhzL3RyZWUvbWFzdGVyL2t1YmVybmV0ZXMtc2NoZW1hcy5gKTtcbiAgICB0aHJvdyBlO1xuICB9XG4gIHRyeSB7XG4gICAgcmV0dXJuIHNhZmVQYXJzZUpzb25TY2hlbWEob3V0cHV0KSBhcyBKU09OU2NoZW1hNDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHBhcnNlIHNjaGVtYSBhdCAke3VybH06ICR7ZX1gKTtcbiAgfVxufVxuIl19
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydC9rOHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0hBLDREQXlCQztBQXZJRCx5Q0FBMEM7QUFDMUMsaUNBQXFEO0FBQ3JELHVDQUE4RztBQUM5Ryx5Q0FBbUU7QUFFbkUsa0NBQW1DO0FBR3RCLFFBQUEsbUJBQW1CLEdBQUcsUUFBUSxDQUFDO0FBRTVDLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDO0FBZ0J6QyxNQUFhLG1CQUFvQixTQUFRLGlCQUFVO0lBRTFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQXNCLEVBQUUsSUFBUztRQUN6RCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSwyQkFBbUIsQ0FBQztRQUU3RCxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLFVBQVUsOENBQThDLENBQUMsQ0FBQztRQUNyRyxDQUFDO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsVUFBVSxLQUFLLENBQUMsQ0FBQztRQUVqRCxPQUFPO1lBQ0wsVUFBVSxFQUFFLFVBQVU7WUFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBNkIsT0FBbUM7UUFDOUQsS0FBSyxFQUFFLENBQUM7UUFEbUIs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QUFDLDJDQUEyQyxVQUFVLG1IQUFtSCxDQUFDLENBQUM7UUFDeEwsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFBLDhCQUFtQixFQUFDLE1BQU0sQ0FBZ0IsQ0FBQztJQUNwRCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSAnY29kZW1ha2VyJztcblxuLy8gd2UganVzdCBuZWVkIHRoZSB0eXBlcyBmcm9tIGpzb24tc2NoZW1hXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBKU09OU2NoZW1hNCB9IGZyb20gJ2pzb24tc2NoZW1hJztcblxuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5pbXBvcnQgeyBHZW5lcmF0ZU9wdGlvbnMsIEltcG9ydEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQXBpT2JqZWN0RGVmaW5pdGlvbiwgZW1pdEhlYWRlciwgZ2VuZXJhdGVDb25zdHJ1Y3QsIGdldFByb3BzVHlwZU5hbWUsIGdldFR5cGVOYW1lIH0gZnJvbSAnLi9jb2RlZ2VuJztcbmltcG9ydCB7IHBhcnNlQXBpVHlwZU5hbWUsIHNhZmVQYXJzZUpzb25TY2hlbWEgfSBmcm9tICcuL2s4cy11dGlsJztcbmltcG9ydCB7IEltcG9ydFNwZWMgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgZG93bmxvYWQgfSBmcm9tICcuLi91dGlsJztcblxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BUElfVkVSU0lPTiA9ICcxLjI1LjAnO1xuXG5jb25zdCBERUZBVUxUX0NMQVNTX05BTUVfUFJFRklYID0gJ0t1YmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydEt1YmVybmV0ZXNBcGlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBBUEkgdmVyc2lvbiB0byBnZW5lcmF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwaVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogRG8gbm90IGltcG9ydCB0aGVzZSB0eXBlcy4gSW5zdGVhZCwgcmVwcmVzZW50IHRoZW0gYXMgXCJhbnlcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBpbmNsdWRlIGFsbCB0eXBlcyB0aGF0IGRlcml2ZSBmcm9tIHRoZSByb290IHR5cGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgSW1wb3J0S3ViZXJuZXRlc0FwaSBleHRlbmRzIEltcG9ydEJhc2Uge1xuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgbWF0Y2goaW1wb3J0U3BlYzogSW1wb3J0U3BlYywgYXJndjogYW55KTogUHJvbWlzZTxJbXBvcnRLdWJlcm5ldGVzQXBpT3B0aW9ucyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHsgc291cmNlIH0gPSBpbXBvcnRTcGVjO1xuICAgIGlmIChzb3VyY2UgIT09ICdrOHMnICYmICFzb3VyY2Uuc3RhcnRzV2l0aCgnazhzQCcpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCBrOHNWZXJzaW9uID0gc291cmNlLnNwbGl0KCdAJylbMV0gPz8gREVGQVVMVF9BUElfVkVSU0lPTjtcblxuICAgIGNvbnN0IGs4c1ZlcnNpb25SZWdleCA9IC9eXFxkK1xcLlxcZCtcXC5cXGQrJC87XG4gICAgaWYgKCFrOHNWZXJzaW9uUmVnZXgudGVzdChrOHNWZXJzaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBrOHMgdmVyc2lvbiBcIiR7azhzVmVyc2lvbn1cIiB0byBtYXRjaCBmb3JtYXQgXCI8bWFqb3I+LjxtaW5vcj4uPHBhdGNoPlwiLmApO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoYEltcG9ydGluZyBrOHMgdiR7azhzVmVyc2lvbn0uLi5gKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhcGlWZXJzaW9uOiBrOHNWZXJzaW9uLFxuICAgICAgZXhjbHVkZTogYXJndi5leGNsdWRlLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEltcG9ydEt1YmVybmV0ZXNBcGlPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kdWxlTmFtZXMoKSB7XG4gICAgcmV0dXJuIFsnazhzJ107XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2VuZXJhdGVUeXBlU2NyaXB0KGNvZGU6IENvZGVNYWtlciwgbW9kdWxlTmFtZTogc3RyaW5nLCBvcHRpb25zOiBHZW5lcmF0ZU9wdGlvbnMpIHtcbiAgICBjb25zdCBzY2hlbWEgPSBhd2FpdCBkb3dubG9hZFNjaGVtYSh0aGlzLm9wdGlvbnMuYXBpVmVyc2lvbik7XG5cbiAgICBpZiAobW9kdWxlTmFtZSAhPT0gJ2s4cycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBtb2R1bGUgbmFtZSBcIiR7bW9kdWxlTmFtZX1cIiB3aGVuIGltcG9ydGluZyBrOHMgdHlwZXMgKGV4cGVjdGVkIFwiazhzXCIpYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy5jbGFzc05hbWVQcmVmaXggPz8gREVGQVVMVF9DTEFTU19OQU1FX1BSRUZJWDtcbiAgICBjb25zdCB0b3BMZXZlbE9iamVjdHMgPSBmaW5kQXBpT2JqZWN0RGVmaW5pdGlvbnMoc2NoZW1hLCBwcmVmaXgpO1xuXG4gICAgY29uc3QgdHlwZUdlbmVyYXRvciA9IG5ldyBUeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiBzY2hlbWEuZGVmaW5pdGlvbnMsXG4gICAgICBleGNsdWRlOiB0aGlzLm9wdGlvbnMuZXhjbHVkZSxcbiAgICAgIHJlbmRlclR5cGVOYW1lOiAoZGVmOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VBcGlUeXBlTmFtZShkZWYpO1xuICAgICAgICBpZiAoIXBhcnNlZC52ZXJzaW9uKSB7XG4gICAgICAgICAgLy8gbm90IGEgdmVyc2lvbmVkIGFwaSB0eXBlLiByZXR1cm4gYmFzZW5hbWVcbiAgICAgICAgICByZXR1cm4gcGFyc2VkLmJhc2VuYW1lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRUeXBlTmFtZShmYWxzZSwgcGFyc2VkLmJhc2VuYW1lLCBwYXJzZWQudmVyc2lvbi5yYXcpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIHJlbmFtZSBcIlByb3BzXCIgdHlwZSBmcm9tIHRoZWlyIG9yaWdpbmFsIG5hbWUgYmFzZWQgb24gdGhlIEFQSSBvYmplY3Qga2luZFxuICAgIC8vIChlLmcuIGBEZXBsb3ltZW50YCkgdG8gdGhlaXIgYWN0dWFsIHByb3BzIHR5cGUgKGBLdWJlRGVwbG95bWVudFByb3BzYCkgaW5cbiAgICAvLyBvcmRlciB0byBhdm9pZCBjb25mdXNpb24gYmV0d2VlbiBjb25zdHJ1Y3RzIChgS3ViZURlcGxveW1lbnRgKSBhbmQgdGhvc2VcbiAgICAvLyB0eXBlcy4gVGhpcyBpcyBkb25lIGJ5IHNpbXBseSByZXBsYWNpbmcgdGhlaXIgZGVmaW5pdGlvbiBpbiB0aGUgc2NoZW1hXG4gICAgLy8gd2l0aCBhICRyZWYgdG8gdGhlIGRlZmluaXRpb24gb2YgdGhlIHByb3BzIHR5cGUuXG4gICAgZm9yIChjb25zdCBvIG9mIHRvcExldmVsT2JqZWN0cykge1xuICAgICAgdHlwZUdlbmVyYXRvci5hZGREZWZpbml0aW9uKG8uZnFuLCB7ICRyZWY6IGAjL2RlZmluaXRpb25zLyR7Z2V0UHJvcHNUeXBlTmFtZShvKX1gIH0pO1xuICAgIH1cblxuICAgIC8vIGVtaXQgY29uc3RydWN0IHR5cGVzIChyZWN1cnNpdmUpXG4gICAgZm9yIChjb25zdCBvIG9mIHRvcExldmVsT2JqZWN0cykge1xuICAgICAgZ2VuZXJhdGVDb25zdHJ1Y3QodHlwZUdlbmVyYXRvciwgbyk7XG4gICAgfVxuXG4gICAgZW1pdEhlYWRlcihjb2RlLCBmYWxzZSk7XG5cbiAgICBjb2RlLmxpbmUodHlwZUdlbmVyYXRvci5yZW5kZXIoKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgbWFwIG9mIGFsbCBBUEkgb2JqZWN0cyBpbiB0aGUgc3BlYyAob2JqZWN0cyB0aGF0IGhhdmUgdGhlXG4gKiAneC1rdWJlcm5ldGVzLWdyb3VwLXZlcnNpb24ta2luZCcgYW5ub3RhdGlvbikuXG4gKlxuICogVGhlIGtleSBpcyB0aGUgYmFzZSBuYW1lIG9mIHRoZSB0eXBlIChpLmUuIGBEZXBsb3ltZW50YCkuIFNpbmNlIEFQSSBvYmplY3RzXG4gKiBtYXkgaGF2ZSBtdWx0aXBsZSB2ZXJzaW9ucywgZWFjaCB2YWx1ZSBpbiB0aGUgbWFwIGlzIGFuIGFycmF5IG9mIHR5cGUgZGVmaW5pdGlvbnNcbiAqIGFsb25nIHdpdGggdmVyc2lvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L2t1YmVybmV0ZXMtYXBpLyNhcGktdmVyc2lvbmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEFwaU9iamVjdERlZmluaXRpb25zKHNjaGVtYTogSlNPTlNjaGVtYTQsIHByZWZpeDogc3RyaW5nKTogQXBpT2JqZWN0RGVmaW5pdGlvbltdIHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PEFwaU9iamVjdERlZmluaXRpb24+KCk7XG5cbiAgZm9yIChjb25zdCBbdHlwZW5hbWUsIGFwaXNjaGVtYV0gb2YgT2JqZWN0LmVudHJpZXMoc2NoZW1hLmRlZmluaXRpb25zIHx8IHsgfSkpIHtcbiAgICBjb25zdCBvYmplY3ROYW1lID0gdHJ5R2V0T2JqZWN0TmFtZShhcGlzY2hlbWEpO1xuICAgIGlmICghb2JqZWN0TmFtZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZSA9IHBhcnNlQXBpVHlwZU5hbWUodHlwZW5hbWUpO1xuICAgIGlmICghdHlwZS52ZXJzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSB2ZXJzaW9uIGZvciB0eXBlOiAke3R5cGVuYW1lfWApO1xuICAgIH1cbiAgICByZXN1bHQucHVzaCh7XG4gICAgICBjdXN0b206IGZhbHNlLCAvLyBub3QgYSBDUkRcbiAgICAgIGZxbjogdHlwZS5mdWxsbmFtZSxcbiAgICAgIGdyb3VwOiBvYmplY3ROYW1lLmdyb3VwLFxuICAgICAga2luZDogb2JqZWN0TmFtZS5raW5kLFxuICAgICAgdmVyc2lvbjogb2JqZWN0TmFtZS52ZXJzaW9uLFxuICAgICAgc2NoZW1hOiBhcGlzY2hlbWEsXG4gICAgICBwcmVmaXgsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB0cnlHZXRPYmplY3ROYW1lKGRlZjogSlNPTlNjaGVtYTQpOiBHcm91cFZlcnNpb25LaW5kIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgb2JqZWN0TmFtZXMgPSBkZWZbWF9HUk9VUF9WRVJTSU9OX0tJTkRdIGFzIEdyb3VwVmVyc2lvbktpbmRbXTtcbiAgaWYgKCFvYmplY3ROYW1lcykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBvYmplY3ROYW1lID0gb2JqZWN0TmFtZXNbMF07XG4gIGlmICghb2JqZWN0TmFtZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBza2lwIGRlZmluaXRpb25zIHdpdGhvdXQgXCJtZXRhZGF0YVwiLiB0aGV5IGFyZSBub3QgQVBJIG9iamVjdHMgdGhhdCBjYW4gYmUgZGVmaW5lZFxuICAvLyBpbiBtYW5pZmVzdHMgKGV4YW1wbGU6IGlvLms4cy5hcGltYWNoaW5lcnkucGtnLmFwaXMubWV0YS52MS5EZWxldGVPcHRpb25zKVxuICAvLyB0aGV5IHdpbGwgYmUgdHJlYXRlZCBhcyBkYXRhIHR5cGVzXG4gIGlmICghZGVmLnByb3BlcnRpZXM/Lm1ldGFkYXRhKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBvYmplY3ROYW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwVmVyc2lvbktpbmQge1xuICByZWFkb25seSBncm91cDogc3RyaW5nO1xuICByZWFkb25seSBraW5kOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuY29uc3QgWF9HUk9VUF9WRVJTSU9OX0tJTkQgPSAneC1rdWJlcm5ldGVzLWdyb3VwLXZlcnNpb24ta2luZCc7XG5cbmFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkU2NoZW1hKGFwaVZlcnNpb246IHN0cmluZykge1xuICBjb25zdCB1cmwgPSBgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NkazhzLXRlYW0vY2RrOHMvbWFzdGVyL2t1YmVybmV0ZXMtc2NoZW1hcy92JHthcGlWZXJzaW9ufS9fZGVmaW5pdGlvbnMuanNvbmA7XG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZG93bmxvYWQodXJsKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoYENvdWxkIG5vdCBmaW5kIGEgc2NoZW1hIGZvciBrOHMgdmVyc2lvbiAke2FwaVZlcnNpb259LiBUaGUgY3VycmVudCBsaXN0IG9mIGF2YWlsYWJsZSBzY2hlbWFzIGlzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9jZGs4cy10ZWFtL2NkazhzL3RyZWUvbWFzdGVyL2t1YmVybmV0ZXMtc2NoZW1hcy5gKTtcbiAgICB0aHJvdyBlO1xuICB9XG4gIHRyeSB7XG4gICAgcmV0dXJuIHNhZmVQYXJzZUpzb25TY2hlbWEob3V0cHV0KSBhcyBKU09OU2NoZW1hNDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHBhcnNlIHNjaGVtYSBhdCAke3VybH06ICR7ZX1gKTtcbiAgfVxufVxuIl19
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  /**
3
2
  * Information about a loaded plugin.
4
3
  */
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.PluginManager = void 0;
27
37
  const child = __importStar(require("child_process"));
@@ -120,4 +130,4 @@ exports.PluginManager = PluginManager;
120
130
  function isRange(version) {
121
131
  return new semver.Range(version).range !== version;
122
132
  }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX21hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGx1Z2lucy9fbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1QztBQUN2QywyQ0FBNkI7QUFDN0IseUNBQTJCO0FBQzNCLDZDQUErQjtBQUMvQiwrQ0FBaUM7QUFFakMsTUFBTSwyQkFBMkIsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLGtEQUFrRDtBQW1GMUc7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFFeEIsWUFBNkIsR0FBVztRQUFYLFFBQUcsR0FBSCxHQUFHLENBQVE7SUFBRyxDQUFDO0lBRXJDLElBQUksQ0FBQyxPQUFpQztRQUUzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXJGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixPQUFPLENBQUMsS0FBSyxpQkFBaUIsT0FBTyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxrQ0FBa0MsQ0FBQyxDQUFDO1NBQzVJO1FBRUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUMvRixDQUFDO0lBRU8sV0FBVyxDQUFDLEdBQVcsRUFBRSxPQUFlLEVBQUUsVUFBa0M7UUFFbEYsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDcEIs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QyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTyxPQUFPLENBQUMsSUFBWSxFQUFFLE9BQWUsRUFBRSxVQUFrQjtRQUUvRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLGlFQUFpRTtRQUNqRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFTyxTQUFTLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUVGO0FBakdELHNDQWlHQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLE9BQU8sQ0FBQyxPQUFlO0lBQzlCLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5cbmNvbnN0IE1PRFVMRV9OT1RfRk9VTkRfRVJST1JfQ09ERSA9ICdNT0RVTEVfTk9UX0ZPVU5EJzsgLy8gVE9ETyBpcyB0aGVyZSBhIGtub3duIGNvbnN0YW50IHdlIGNhbiB1c2UgaGVyZT9cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGxvYWRlZCBwbHVnaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luIHtcblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlIG9mIHRoZSBwbHVnaW4gY2xhc3MuXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZTogdW5rbm93bjtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBjbGFzcyBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xhc3M6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBwYWNrYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZTogUGFja2FnZTtcblxufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgcGx1Z2luIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZSB7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gbW9kdWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlOiBSZXR1cm5UeXBlPE5vZGVSZXF1aXJlPjtcblxuICAvKipcbiAgICAqIFRoZSBucG0gcGFja2FnZSBvZiB0aGUgcGx1Z2luLlxuICAgICovXG4gIHJlYWRvbmx5IHBrZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICogVGhlIHZlcnNpb24gb2YgdGhlIHBsdWdpbi5cbiAgICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgKiBUaGUgcGF0aCBvZiB0aGUgcGx1Z2luIG9uIHRoZSBsb2NhbCBzeXN0ZW0gKGFmdGVyIGl0cyBpbnN0YWxsZWQpLlxuICAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGxvYWRpbmcgYSBwbHVnaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luTWFuYWdlckxvYWRPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBwYWNrYWdlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBwa2c6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBwYWNrYWdlIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gcGFja2FnZSBjbGFzcy5cbiAgICovXG4gIHJlYWRvbmx5IGNsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluc3RhbGxhdGlvbiBlbnZpcm9ubWVudCAocGFzc2VkIG9uIHRvIG5wbSBpbnN0YWxsKVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFsbEVudj86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBpbnN0YW50aWF0aW9uIHByb3BlcnRpZXMuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxufVxuXG4vKipcbiAqIEEgYFBsdWdpbk1hbmFnZXJgIGlzIHJlc3BvbnNpYmxlIGZvciBsb2FkaW5nIChhbmQgaW5zdGFsbGluZykgcGx1Z2lucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpbk1hbmFnZXIge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGlyOiBzdHJpbmcpIHt9XG5cbiAgcHVibGljIGxvYWQob3B0aW9uczogUGx1Z2luTWFuYWdlckxvYWRPcHRpb25zKTogUGx1Z2luIHtcblxuICAgIGNvbnN0IHBrZyA9IHRoaXMubG9hZFBhY2thZ2Uob3B0aW9ucy5wa2csIG9wdGlvbnMudmVyc2lvbiwgb3B0aW9ucy5pbnN0YWxsRW52ID8/IHt9KTtcblxuICAgIGNvbnN0IGNsYXp6ID0gcGtnLm1vZHVsZVtvcHRpb25zLmNsYXNzXTtcbiAgICBpZiAoIWNsYXp6KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBsb2NhdGUgY2xhc3MgJyR7b3B0aW9ucy5jbGFzc30nIGluIHBhY2thZ2UgJyR7b3B0aW9ucy5wa2d9QCR7b3B0aW9ucy52ZXJzaW9ufScuIEFyZSB5b3Ugc3VyZSB5b3UgZXhwb3J0ZWQgaXQ/YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgaW5zdGFuY2U6IG5ldyBjbGF6eihvcHRpb25zLnByb3BlcnRpZXMgPz8ge30pLCBjbGFzczogb3B0aW9ucy5jbGFzcywgcGFja2FnZTogcGtnIH07XG4gIH1cblxuICBwcml2YXRlIGxvYWRQYWNrYWdlKHBrZzogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIGluc3RhbGxFbnY6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBQYWNrYWdlIHtcblxuICAgIGlmIChpc1JhbmdlKHZlcnNpb24pKSB7XG4gICAgICAvLyB3ZSBmb3JiaWQgdmVyc2lvbiByYW5nZXMgYmVjYXVzZSBpdCBtaWdodCBnaXZlIHRoZSBmYWxzZSBpbXByZXNzaW9uIHdlIHdpbGwgYmUgaW5zdGFsbGluZ1xuICAgICAgLy8gdGhlIGxhdGVzdCB2ZXJzaW9uICh3aGljaCB3ZSB3aWxsIG5vdCBiZWNhdXNlIGl0IHdvdWxkIG1lYW4gY29udGFjdGluZyBOUE0gb24gZXZlcnkgc3ludGgpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHZlcnNpb24gc3BlYyBmb3IgcGFja2FnZSAke3BrZ306ICR7dmVyc2lvbn0uIENhbm5vdCBiZSBhIHJhbmdlLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3RvID0gdXJsLnBhcnNlKHBrZykucHJvdG9jb2w7XG5cbiAgICBpZiAocHJvdG8pIHtcbiAgICAgIC8vIHVybHMgYXJlIG5vdCBzdXBwb3J0ZWQgYmVjYXVzZSB0aGV5IGRvbid0IHByb3ZpZGUgYSBuYW1lIHdpdGggd2hpY2ggd2UgY2FuICdyZXF1aXJlJyB0aGUgbW9kdWxlLlxuICAgICAgLy8gaWYgbmVlZGVkLCB3ZSBjYW4gbWFrZSB0aGUgbG9hZGVyIHNtYXJ0ZXIgYW5kIGVuYWJsZSB0aGlzLCBidXQgbm90IGZvciBub3cuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHBhY2thZ2UgcmVmZXJlbmNlOiAke3BrZ30uIENhbiBlaXRoZXIgYmUgYW4gTlBNIHBhY2thZ2UgbmFtZSwgb3IgYSBsb2NhbCBwYXRoIHRvIGEgZGlyZWN0b3J5YCk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWwgPSBwYXRoLmlzQWJzb2x1dGUocGtnKVxuICAgICAgLy8gYXNzdW1lIHJlbGF0aXZlIHBhdGhzIHN0YXJ0IHdpdGggJy4nIGJlY2F1c2Ugb3RoZXJpc2UgdGhleVxuICAgICAgLy8gYXJlIGVhc2lseSBjb25mdXNlZCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVzLlxuICAgICAgfHwgcGtnLnN0YXJ0c1dpdGgoYC4ke3BhdGguc2VwfWApO1xuXG4gICAgLy8gbG9jYWwgcGx1Z2lucyBhcmUgbG9hZGVkIGRpcmVjdGx5LCBucG0gcGFja2FnZXMgYXJlIGxvYWRlZFxuICAgIC8vIGZyb20gdGhlIHBsdWdpbnMgZGlyZWN0b3J5LlxuICAgIGNvbnN0IG1vZHVsZVBhdGggPSBsb2NhbCA/IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBwa2cpIDogdGhpcy5wbHVnaW5EaXIocGtnLCB2ZXJzaW9uKTtcbiAgICBjb25zdCBwbHVnaW5OYW1lID0gbG9jYWwgPyBtb2R1bGVQYXRoIDogcGtnO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLnJlcXVpcmUobW9kdWxlUGF0aCwgdmVyc2lvbiwgcGx1Z2luTmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG5cbiAgICAgIGlmICghW01PRFVMRV9OT1RfRk9VTkRfRVJST1JfQ09ERV0uaW5jbHVkZXMoZS5jb2RlKSkge1xuICAgICAgICAvLyBzb21lIHVuZXhwZWN0ZWQgZXJyb3JcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGxvY2FsKSB7XG4gICAgICAgIC8vIGlmIGEgbG9jYWwgcGx1Z2luIGlzIG1pc3NpbmcsIG5vdGhpbmcgd2UgY2FuIGRvIGFib3V0IGl0XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG5cbiAgICAgIC8vIG90aGVyd2lzZSwgd2UgaW5zdGFsbCBmcm9tIG5wbSBhbmQgcmUtcmVxdWlyZS5cbiAgICAgIHRoaXMuaW5zdGFsbFBhY2thZ2UocGtnLCB2ZXJzaW9uLCBpbnN0YWxsRW52KTtcbiAgICAgIHJldHVybiB0aGlzLnJlcXVpcmUobW9kdWxlUGF0aCwgdmVyc2lvbiwgcGx1Z2luTmFtZSk7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxQYWNrYWdlKHBrZzogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIGVudjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuXG4gICAgY29uc3QgcGx1Z2luRGlyID0gcGF0aC5qb2luKHRoaXMuZGlyLCBwa2csIHZlcnNpb24pO1xuICAgIGZzLm1rZGlycFN5bmMocGx1Z2luRGlyKTtcblxuICAgIGNvbnN0IGNvbW1hbmQgPSBbXG4gICAgICAnbnBtJyxcbiAgICAgICdpbnN0YWxsJywgYCR7cGtnfUAke3ZlcnNpb259YCxcbiAgICAgICctLW5vLXNhdmUnLFxuICAgICAgJy0tcHJlZml4JywgcGx1Z2luRGlyLFxuICAgIF0uam9pbignICcpO1xuXG4gICAgY29uc3QgZmluYWxFbnYgPSB7IC4uLnByb2Nlc3MuZW52IH07XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZW52KSkge1xuICAgICAgZmluYWxFbnZba2V5XSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBrZXkgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGBJbnN0YWxsaW5nIHZhbGlkYXRpb24gcGx1Z2luOiAke3BrZ31AJHt2ZXJzaW9ufSAodGhpcyBtYXkgdGFrZSBhIHdoaWxlIHRoZSBmaXJzdCB0aW1lIGFyb3VuZClgKTtcbiAgICBjaGlsZC5leGVjU3luYyhjb21tYW5kLCB7IHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ3BpcGUnXSwgZW52OiBmaW5hbEVudiB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVxdWlyZShzcGVjOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZywgcGx1Z2luTmFtZTogc3RyaW5nKTogUGFja2FnZSB7XG5cbiAgICBjb25zdCBtb2R1bGVQYXRoID0gcmVxdWlyZS5yZXNvbHZlKHNwZWMpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICBjb25zdCBtb2R1bGUgPSByZXF1aXJlKG1vZHVsZVBhdGgpO1xuXG4gICAgcmV0dXJuIHsgdmVyc2lvbiwgcGtnOiBwbHVnaW5OYW1lID8/IHNwZWMsIHBhdGg6IG1vZHVsZVBhdGgsIG1vZHVsZSB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwbHVnaW5EaXIocGtnOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykge1xuICAgIHJldHVybiBwYXRoLmpvaW4odGhpcy5kaXIsIHBrZywgdmVyc2lvbiwgJ25vZGVfbW9kdWxlcycsIHBrZyk7XG4gIH1cblxufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIHZlcnNpb24gcmVwcmVzZW50cyBhIHJhbmdlLCBvciBhIHBpbm5lZCB2ZXJzaW9uLlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogICAtICcxLnggZXhwYW5kcyB0byAnPj0xLjAuMCA8Mi4wLjAtMCdcbiAqICAgLSBgfjEuMicgZXhwYW5kcyB0byAnPj0xLjIuMCA8MS4zLjAtMCdcbiAqICAgLSAnMS4yLjMnIGV4cGFuZHMgdG8gJzEuMi4zJ1xuICovXG5mdW5jdGlvbiBpc1JhbmdlKHZlcnNpb246IHN0cmluZykge1xuICByZXR1cm4gbmV3IHNlbXZlci5SYW5nZSh2ZXJzaW9uKS5yYW5nZSAhPT0gdmVyc2lvbjtcbn0iXX0=
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX21hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGx1Z2lucy9fbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBdUM7QUFDdkMsMkNBQTZCO0FBQzdCLHlDQUEyQjtBQUMzQiw2Q0FBK0I7QUFDL0IsK0NBQWlDO0FBRWpDLE1BQU0sMkJBQTJCLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxrREFBa0Q7QUFtRjFHOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBRXhCLFlBQTZCLEdBQVc7UUFBWCxRQUFHLEdBQUgsR0FBRyxDQUFRO0lBQUcsQ0FBQztJQUVyQyxJQUFJLENBQUMsT0FBaUM7UUFFM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVyRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixPQUFPLENBQUMsS0FBSyxpQkFBaUIsT0FBTyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdJLENBQUM7UUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQy9GLENBQUM7SUFFTyxXQUFXLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxVQUFrQztRQUVsRixJQUFJLE9BQU8sQ0FBQyxP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QyxDQUFDO1FBQzdHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU8sT0FBTyxDQUFDLElBQVksRUFBRSxPQUFlLEVBQUUsVUFBa0I7UUFFL0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxpRUFBaUU7UUFDakUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5DLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRU8sU0FBUyxDQUFDLEdBQVcsRUFBRSxPQUFlO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FFRjtBQWpHRCxzQ0FpR0M7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxPQUFPLENBQUMsT0FBZTtJQUM5QixPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDO0FBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGlsZCBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB1cmwgZnJvbSAndXJsJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuXG5jb25zdCBNT0RVTEVfTk9UX0ZPVU5EX0VSUk9SX0NPREUgPSAnTU9EVUxFX05PVF9GT1VORCc7IC8vIFRPRE8gaXMgdGhlcmUgYSBrbm93biBjb25zdGFudCB3ZSBjYW4gdXNlIGhlcmU/XG5cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgYSBsb2FkZWQgcGx1Z2luLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbiB7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSBvZiB0aGUgcGx1Z2luIGNsYXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2U6IHVua25vd247XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gY2xhc3MgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGNsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gcGFja2FnZS5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2U6IFBhY2thZ2U7XG5cbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIHBsdWdpbiBwYWNrYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2Uge1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIG1vZHVsZS5cbiAgICovXG4gIHJlYWRvbmx5IG1vZHVsZTogUmV0dXJuVHlwZTxOb2RlUmVxdWlyZT47XG5cbiAgLyoqXG4gICAgKiBUaGUgbnBtIHBhY2thZ2Ugb2YgdGhlIHBsdWdpbi5cbiAgICAqL1xuICByZWFkb25seSBwa2c6IHN0cmluZztcblxuICAvKipcbiAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBwbHVnaW4uXG4gICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgICogVGhlIHBhdGggb2YgdGhlIHBsdWdpbiBvbiB0aGUgbG9jYWwgc3lzdGVtIChhZnRlciBpdHMgaW5zdGFsbGVkKS5cbiAgICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBsb2FkaW5nIGEgcGx1Z2luLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbk1hbmFnZXJMb2FkT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gcGFja2FnZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgcGtnOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gcGFja2FnZSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIHBhY2thZ2UgY2xhc3MuXG4gICAqL1xuICByZWFkb25seSBjbGFzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnN0YWxsYXRpb24gZW52aXJvbm1lbnQgKHBhc3NlZCBvbiB0byBucG0gaW5zdGFsbClcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbGxFbnY/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gaW5zdGFudGlhdGlvbiBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbn1cblxuLyoqXG4gKiBBIGBQbHVnaW5NYW5hZ2VyYCBpcyByZXNwb25zaWJsZSBmb3IgbG9hZGluZyAoYW5kIGluc3RhbGxpbmcpIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBQbHVnaW5NYW5hZ2VyIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRpcjogc3RyaW5nKSB7fVxuXG4gIHB1YmxpYyBsb2FkKG9wdGlvbnM6IFBsdWdpbk1hbmFnZXJMb2FkT3B0aW9ucyk6IFBsdWdpbiB7XG5cbiAgICBjb25zdCBwa2cgPSB0aGlzLmxvYWRQYWNrYWdlKG9wdGlvbnMucGtnLCBvcHRpb25zLnZlcnNpb24sIG9wdGlvbnMuaW5zdGFsbEVudiA/PyB7fSk7XG5cbiAgICBjb25zdCBjbGF6eiA9IHBrZy5tb2R1bGVbb3B0aW9ucy5jbGFzc107XG4gICAgaWYgKCFjbGF6eikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gbG9jYXRlIGNsYXNzICcke29wdGlvbnMuY2xhc3N9JyBpbiBwYWNrYWdlICcke29wdGlvbnMucGtnfUAke29wdGlvbnMudmVyc2lvbn0nLiBBcmUgeW91IHN1cmUgeW91IGV4cG9ydGVkIGl0P2ApO1xuICAgIH1cblxuICAgIHJldHVybiB7IGluc3RhbmNlOiBuZXcgY2xhenoob3B0aW9ucy5wcm9wZXJ0aWVzID8/IHt9KSwgY2xhc3M6IG9wdGlvbnMuY2xhc3MsIHBhY2thZ2U6IHBrZyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUGFja2FnZShwa2c6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nLCBpbnN0YWxsRW52OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogUGFja2FnZSB7XG5cbiAgICBpZiAoaXNSYW5nZSh2ZXJzaW9uKSkge1xuICAgICAgLy8gd2UgZm9yYmlkIHZlcnNpb24gcmFuZ2VzIGJlY2F1c2UgaXQgbWlnaHQgZ2l2ZSB0aGUgZmFsc2UgaW1wcmVzc2lvbiB3ZSB3aWxsIGJlIGluc3RhbGxpbmdcbiAgICAgIC8vIHRoZSBsYXRlc3QgdmVyc2lvbiAod2hpY2ggd2Ugd2lsbCBub3QgYmVjYXVzZSBpdCB3b3VsZCBtZWFuIGNvbnRhY3RpbmcgTlBNIG9uIGV2ZXJ5IHN5bnRoKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB2ZXJzaW9uIHNwZWMgZm9yIHBhY2thZ2UgJHtwa2d9OiAke3ZlcnNpb259LiBDYW5ub3QgYmUgYSByYW5nZS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm90byA9IHVybC5wYXJzZShwa2cpLnByb3RvY29sO1xuXG4gICAgaWYgKHByb3RvKSB7XG4gICAgICAvLyB1cmxzIGFyZSBub3Qgc3VwcG9ydGVkIGJlY2F1c2UgdGhleSBkb24ndCBwcm92aWRlIGEgbmFtZSB3aXRoIHdoaWNoIHdlIGNhbiAncmVxdWlyZScgdGhlIG1vZHVsZS5cbiAgICAgIC8vIGlmIG5lZWRlZCwgd2UgY2FuIG1ha2UgdGhlIGxvYWRlciBzbWFydGVyIGFuZCBlbmFibGUgdGhpcywgYnV0IG5vdCBmb3Igbm93LlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBwYWNrYWdlIHJlZmVyZW5jZTogJHtwa2d9LiBDYW4gZWl0aGVyIGJlIGFuIE5QTSBwYWNrYWdlIG5hbWUsIG9yIGEgbG9jYWwgcGF0aCB0byBhIGRpcmVjdG9yeWApO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsID0gcGF0aC5pc0Fic29sdXRlKHBrZylcbiAgICAgIC8vIGFzc3VtZSByZWxhdGl2ZSBwYXRocyBzdGFydCB3aXRoICcuJyBiZWNhdXNlIG90aGVyaXNlIHRoZXlcbiAgICAgIC8vIGFyZSBlYXNpbHkgY29uZnVzZWQgd2l0aCBucG0gcGFja2FnZSBuYW1lcy5cbiAgICAgIHx8IHBrZy5zdGFydHNXaXRoKGAuJHtwYXRoLnNlcH1gKTtcblxuICAgIC8vIGxvY2FsIHBsdWdpbnMgYXJlIGxvYWRlZCBkaXJlY3RseSwgbnBtIHBhY2thZ2VzIGFyZSBsb2FkZWRcbiAgICAvLyBmcm9tIHRoZSBwbHVnaW5zIGRpcmVjdG9yeS5cbiAgICBjb25zdCBtb2R1bGVQYXRoID0gbG9jYWwgPyBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcGtnKSA6IHRoaXMucGx1Z2luRGlyKHBrZywgdmVyc2lvbik7XG4gICAgY29uc3QgcGx1Z2luTmFtZSA9IGxvY2FsID8gbW9kdWxlUGF0aCA6IHBrZztcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXF1aXJlKG1vZHVsZVBhdGgsIHZlcnNpb24sIHBsdWdpbk5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuXG4gICAgICBpZiAoIVtNT0RVTEVfTk9UX0ZPVU5EX0VSUk9SX0NPREVdLmluY2x1ZGVzKGUuY29kZSkpIHtcbiAgICAgICAgLy8gc29tZSB1bmV4cGVjdGVkIGVycm9yXG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChsb2NhbCkge1xuICAgICAgICAvLyBpZiBhIGxvY2FsIHBsdWdpbiBpcyBtaXNzaW5nLCBub3RoaW5nIHdlIGNhbiBkbyBhYm91dCBpdFxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuXG4gICAgICAvLyBvdGhlcndpc2UsIHdlIGluc3RhbGwgZnJvbSBucG0gYW5kIHJlLXJlcXVpcmUuXG4gICAgICB0aGlzLmluc3RhbGxQYWNrYWdlKHBrZywgdmVyc2lvbiwgaW5zdGFsbEVudik7XG4gICAgICByZXR1cm4gdGhpcy5yZXF1aXJlKG1vZHVsZVBhdGgsIHZlcnNpb24sIHBsdWdpbk5hbWUpO1xuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YWxsUGFja2FnZShwa2c6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nLCBlbnY6IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcblxuICAgIGNvbnN0IHBsdWdpbkRpciA9IHBhdGguam9pbih0aGlzLmRpciwgcGtnLCB2ZXJzaW9uKTtcbiAgICBmcy5ta2RpcnBTeW5jKHBsdWdpbkRpcik7XG5cbiAgICBjb25zdCBjb21tYW5kID0gW1xuICAgICAgJ25wbScsXG4gICAgICAnaW5zdGFsbCcsIGAke3BrZ31AJHt2ZXJzaW9ufWAsXG4gICAgICAnLS1uby1zYXZlJyxcbiAgICAgICctLXByZWZpeCcsIHBsdWdpbkRpcixcbiAgICBdLmpvaW4oJyAnKTtcblxuICAgIGNvbnN0IGZpbmFsRW52ID0geyAuLi5wcm9jZXNzLmVudiB9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGVudikpIHtcbiAgICAgIGZpbmFsRW52W2tleV0gPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8ga2V5IDogSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhgSW5zdGFsbGluZyB2YWxpZGF0aW9uIHBsdWdpbjogJHtwa2d9QCR7dmVyc2lvbn0gKHRoaXMgbWF5IHRha2UgYSB3aGlsZSB0aGUgZmlyc3QgdGltZSBhcm91bmQpYCk7XG4gICAgY2hpbGQuZXhlY1N5bmMoY29tbWFuZCwgeyBzdGRpbzogWydpZ25vcmUnLCAncGlwZScsICdwaXBlJ10sIGVudjogZmluYWxFbnYgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlcXVpcmUoc3BlYzogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIHBsdWdpbk5hbWU6IHN0cmluZyk6IFBhY2thZ2Uge1xuXG4gICAgY29uc3QgbW9kdWxlUGF0aCA9IHJlcXVpcmUucmVzb2x2ZShzcGVjKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgY29uc3QgbW9kdWxlID0gcmVxdWlyZShtb2R1bGVQYXRoKTtcblxuICAgIHJldHVybiB7IHZlcnNpb24sIHBrZzogcGx1Z2luTmFtZSA/PyBzcGVjLCBwYXRoOiBtb2R1bGVQYXRoLCBtb2R1bGUgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGx1Z2luRGlyKHBrZzogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGF0aC5qb2luKHRoaXMuZGlyLCBwa2csIHZlcnNpb24sICdub2RlX21vZHVsZXMnLCBwa2cpO1xuICB9XG5cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiB2ZXJzaW9uIHJlcHJlc2VudHMgYSByYW5nZSwgb3IgYSBwaW5uZWQgdmVyc2lvbi5cbiAqIEZvciBleGFtcGxlOlxuICpcbiAqICAgLSAnMS54IGV4cGFuZHMgdG8gJz49MS4wLjAgPDIuMC4wLTAnXG4gKiAgIC0gYH4xLjInIGV4cGFuZHMgdG8gJz49MS4yLjAgPDEuMy4wLTAnXG4gKiAgIC0gJzEuMi4zJyBleHBhbmRzIHRvICcxLjIuMydcbiAqL1xuZnVuY3Rpb24gaXNSYW5nZSh2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIG5ldyBzZW12ZXIuUmFuZ2UodmVyc2lvbikucmFuZ2UgIT09IHZlcnNpb247XG59Il19
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.ValidationPlugin = exports.ValidationReport = exports.ValidationLogger = exports.ValidationContext = void 0;
27
37
  const fs = __importStar(require("fs"));
@@ -236,4 +246,4 @@ function red(s) {
236
246
  function bright(s) {
237
247
  return `\x1b[1m${s}`;
238
248
  }
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbHVnaW5zL3ZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLGlDQUE4QjtBQUM5QiwyQ0FBNkI7QUFLN0I7O0dBRUc7QUFDSCxNQUFhLGlCQUFpQjtJQWdCNUI7SUFFRTs7T0FFRztJQUNhLFNBQTRCO0lBRTVDOztPQUVHO0lBQ2EsR0FBVztJQUUzQjs7T0FFRztJQUNhLE9BQWU7SUFFL0I7O09BRUc7SUFDYSxXQUFrRSxFQUFFO0lBRXBGOztPQUVHO0lBQ2EsTUFBZ0I7UUFwQmhCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBSzVCLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFLWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBS2YsYUFBUSxHQUFSLFFBQVEsQ0FBNEQ7UUFLcEUsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUVoQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU0sYUFBYSxDQUFDLFlBQW9CO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUYsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxD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UUFDaEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRixNQUFNLFNBQVMsR0FBaUQsRUFBRSxDQUFDO1FBQ25FLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MscUJBQXFCLEtBQUssUUFBUSxDQUFDLE9BQU8sbUNBQW1DLENBQUMsQ0FBQztTQUMvSTtRQUNELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNqRSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUcsUUFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNwRDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBRW5CLENBQUM7Q0FFRjtBQTFDRCw0Q0EwQ0M7QUFjRCxTQUFTLEtBQUssQ0FBQyxDQUFTO0lBQ3RCLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQztBQUN2QixDQUFDO0FBRUQsU0FBUyxHQUFHLENBQUMsQ0FBUztJQUNwQixPQUFPLFdBQVcsQ0FBQyxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLENBQVM7SUFDdkIsT0FBTyxVQUFVLENBQUMsRUFBRSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgeyB0YWJsZSB9IGZyb20gJ3RhYmxlJztcbmltcG9ydCAqIGFzIHlhbWwgZnJvbSAneWFtbCc7XG5pbXBvcnQgeyBQbHVnaW5NYW5hZ2VyIH0gZnJvbSAnLi9fbWFuYWdlcic7XG5pbXBvcnQgeyBWYWxpZGF0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IFN5bnRoZXNpemVkQXBwIH0gZnJvbSAnLi4vdXRpbCc7XG5cbi8qKlxuICogQ29udGV4dCBhdmFpbGFibGUgdG8gcGx1Z2lucyBkdXJpbmcgdmFsaWRhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25Db250ZXh0IHtcblxuICAvKipcbiAgICogUmVwb3J0IGVtaXR0ZWQgYnkgdGhlIHZhbGlkYXRpb24uXG4gICAqXG4gICAqIFBsdWdpbnMgc2hvdWxkIGludGVyYWN0IHdpdGggdGhpcyBvYmplY3QgdG8gZ2VuZXJhdGUgdGhlIHJlcG9ydC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXBvcnQ6IFZhbGlkYXRpb25SZXBvcnQ7XG5cbiAgLyoqXG4gICAqIExvZ2dlciBmb3IgdGhlIHZhbGlkYXRpb24uXG4gICAqXG4gICAqIFBsdWdpbnMgc2hvdWxkIGludGVyYWN0IHdpdGggdGhpcyBvYmplY3QgdG8gbG9nIG1lc3NhZ2VzIGR1cmluZyB2YWxpZGF0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvZ2dlcjogVmFsaWRhdGlvbkxvZ2dlcjtcblxuICBjb25zdHJ1Y3RvcihcblxuICAgIC8qKlxuICAgICAqIFRoZSBsaXN0IG9mIG1hbmlmZXN0cyB0byB2YWxpZGF0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWFuaWZlc3RzOiByZWFkb25seSBzdHJpbmdbXSxcblxuICAgIC8qKlxuICAgICAqIFRoZSBOb2RlSlMgcGFja2FnZSBuYW1lIG9mIHRoZSBwbHVnaW4gcnVubmluZyB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcGtnOiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgTm9kZUpTIHBhY2thZ2UgdGhhdCBydW5zIHRoZSB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3QgbWV0YWRhdGEgb2YgcmVzb3VyY2VzIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWV0YWRhdGE6IHsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogUmVzb3VyY2VDb25zdHJ1Y3RNZXRhZGF0YSB9ID0ge30sXG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgc3ludGggY29tbWFuZCB3YXMgZXhlY3V0ZWQgd2l0aCAtLXN0ZG91dC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3Rkb3V0PzogYm9vbGVhbikge1xuXG4gICAgdGhpcy5yZXBvcnQgPSBuZXcgVmFsaWRhdGlvblJlcG9ydCh0aGlzLnBrZywgdGhpcy52ZXJzaW9uLCB0aGlzLm1ldGFkYXRhID8/IHt9LCBzdGRvdXQgPz8gZmFsc2UpO1xuICAgIHRoaXMubG9nZ2VyID0gbmV3IFZhbGlkYXRpb25Mb2dnZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBwYXJzZU1hbmlmZXN0KG1hbmlmZXN0UGF0aDogc3RyaW5nKTogYW55W10ge1xuICAgIGNvbnN0IHBhcnNlZCA9IHlhbWwucGFyc2VBbGxEb2N1bWVudHMoZnMucmVhZEZpbGVTeW5jKG1hbmlmZXN0UGF0aCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSk7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gcGFyc2VkIDogW3BhcnNlZF07XG4gICAgcmV0dXJuIHJlc291cmNlcy5tYXAociA9PiByLnRvSlMoKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBMb2dnZXIgYXZhaWxhYmxlIHRvIHBsdWdpbnMgZHVyaW5nIHZhbGlkYXRpb24uIFVzZSB0aGlzIGluc3RlYWQgb2YgYGNvbnNvbGUubG9nYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25Mb2dnZXIge1xuXG4gIC8qKlxuICAgKiBMb2cgYSBtZXNzYWdlLlxuICAgKi9cbiAgcHVibGljIGxvZyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnRyYWN0IGJldHdlZW4gY2RrOHMgYW5kIHRoaXJkLXBhcnRpZXMgbG9va2luZyB0byBpbXBsZW1lbnQgdmFsaWRhdGlvbiBwbHVnaW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb24ge1xuXG4gIC8qKlxuICAgKiBSdW4gdGhlIHZhbGlkYXRpb24gbG9naWMuXG4gICAqXG4gICAqIC0gVXNlIGBjb250ZXh0Lm1hbmlmZXN0c2AgdG8gcmV0cmlldmUgdGhlIGxpc3Qgb2YgbWFuaWZlc3RzIHRvIHZhbGlkYXRlLlxuICAgKiAtIFVzZSBgY29udGV4dC5yZXBvcnRgIHRvIGFjY2VzcyBhbmQgYnVpbGQgdGhlIHJlc3VsdGluZyByZXBvcnQuXG4gICAqXG4gICAqIE1ha2Ugc3VyZSB0byBjYWxsIGBjb250ZXh0LnJlcG9ydC5wYXNzKClgIG9yIGBjb250ZXh0LnJlcG9ydC5mYWlsKClgIGJlZm9yZSByZXR1cm5pbmcsIG90aGVyd2lzZSB0aGUgdmFsaWRhdGlvbiBpcyBjb25zaWRlcmVkIGluY29tcGxldGUuXG4gICAqL1xuICB2YWxpZGF0ZShjb250ZXh0OiBWYWxpZGF0aW9uQ29udGV4dCk6IFByb21pc2U8dm9pZD47XG5cbn1cblxuLyoqXG4gKiBSZXNvdXJjZSB2aW9sYXRpbmcgYSBzcGVjaWZpYyBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25WaW9sYXRpbmdSZXNvdXJjZSB7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbnMgaW4gaXRzIGNvbmZpZyB0aGF0IHBvc2UgdGhlIHZpb2xhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbnM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbWFuaWZlc3QgdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFuaWZlc3RQYXRoOiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgdmlvbGF0aW5nIGEgc3BlY2lmaWMgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uVmlvbGF0aW5nQ29uc3RydWN0IGV4dGVuZHMgVmFsaWRhdGlvblZpb2xhdGluZ1Jlc291cmNlIHtcblxuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdCBwYXRoIGFzIGRlZmluZWQgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0UGF0aD86IHN0cmluZztcblxufVxuXG4vKipcbiAqIFZpb2xhdGlvbiBwcm9kdWNlZCBieSB0aGUgdmFsaWRhdGlvbiBwbHVnaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvblZpb2xhdGlvbiB7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBydWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlY29tbWVuZGF0aW9uIHRvIHJlc29sdmUgdGhlIHZpb2xhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJlY29tbWVuZGF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvdyB0byBmaXggdGhlIHJlY29tbWVuZGF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZml4OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZXMgdmlvbGF0aW5nIHRoaXMgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHZpb2xhdGluZ1Jlc291cmNlczogcmVhZG9ubHkgVmFsaWRhdGlvblZpb2xhdGluZ1Jlc291cmNlW107XG5cbn1cblxuLyoqXG4gKiBWYWxpZGF0aW9uIHByb2R1Y2VkIGJ5IHRoZSB2YWxpZGF0aW9uIHBsdWdpbiwgaW4gY29uc3RydWN0IHRlcm1zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25WaW9sYXRpb25Db25zdHJ1Y3RBd2FyZSBleHRlbmRzIE9taXQ8VmFsaWRhdGlvblZpb2xhdGlvbiwgJ3Zpb2xhdGluZ1Jlc291cmNlcyc+IHtcblxuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdHMgdmlvbGF0aW5nIHRoaXMgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHZpb2xhdGluZ0NvbnN0cnVjdHM6IHJlYWRvbmx5IFZhbGlkYXRpb25WaW9sYXRpbmdDb25zdHJ1Y3RbXTtcbn1cblxuLy8gd2UgaW50ZW50aW9uYWxseSBkb24ndCB1c2UgYW4gZW51bSBzbyB0aGF0XG4vLyBwbHVnaW5zIGRvbid0IGhhdmUgdG8gaW1wb3J0IHRoZSBjbGkgYXQgcnVudGltZS5cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25SZXBvcnRTdGF0dXMgPSAnc3VjY2VzcycgfCAnZmFpbHVyZSc7XG5cbi8qKlxuICogU3VtbWFyeSBvZiB0aGUgcmVwb3J0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25SZXBvcnRTdW1tYXJ5IHtcblxuICByZWFkb25seSBzdGF0dXM6IFZhbGlkYXRpb25SZXBvcnRTdGF0dXM7XG5cbiAgcmVhZG9ubHkgcGx1Z2luOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxufVxuXG4vKipcbiAqIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uUmVwb3J0SnNvbiB7XG5cbiAgLyoqXG4gICAqIFJlcG9ydCB0aXRsZS5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgdmlvbGF0aW9ucyBpbiB0aGUgcmVycG90LlxuICAgKi9cbiAgcmVhZG9ubHkgdmlvbGF0aW9uczogcmVhZG9ubHkgVmFsaWRhdGlvblZpb2xhdGlvbkNvbnN0cnVjdEF3YXJlW107XG5cbiAgLyoqXG4gICAqIFJlcG9ydCBzdW1tYXJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgc3VtbWFyeTogVmFsaWRhdGlvblJlcG9ydFN1bW1hcnk7XG5cbn1cblxuLyoqXG4gKiBUaGUgcmVwb3J0IGVtaXR0ZWQgYnkgdGhlIHBsdWdpbiBhZnRlciBldmFsdWF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvblJlcG9ydCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB2aW9sYXRpb25zOiBWYWxpZGF0aW9uVmlvbGF0aW9uQ29uc3RydWN0QXdhcmVbXSA9IFtdO1xuXG4gIHByaXZhdGUgX3N1bW1hcnk/OiBWYWxpZGF0aW9uUmVwb3J0U3VtbWFyeTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBrZzogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWV0YWRhdGE6IHsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogUmVzb3VyY2VDb25zdHJ1Y3RNZXRhZGF0YSB9LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3Rkb3V0OiBib29sZWFuKSB7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdmlvbGF0aW9uIHRvIHRoZSByZXBvcnQuXG4gICAqL1xuICBwdWJsaWMgYWRkVmlvbGF0aW9uKHZpb2xhdGlvbjogVmFsaWRhdGlvblZpb2xhdGlvbikge1xuICAgIGlmICh0aGlzLl9zdW1tYXJ5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Zpb2xhdGlvbnMgY2Fubm90IGJlIGFkZGVkIHRvIHJlcG9ydCBhZnRlciBpdHMgc3VibWl0dGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdmlvbGF0aW5nQ29uc3RydWN0czogVmFsaWRhdGlvblZpb2xhdGluZ0NvbnN0cnVjdFtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHJlc291cmNlIG9mIHZpb2xhdGlvbi52aW9sYXRpbmdSZXNvdXJjZXMpIHtcbiAgICAgIGNvbnN0IGNvbnN0cnVjdFBhdGggPSB0aGlzLm1ldGFkYXRhW3Jlc291cmNlLnJlc291cmNlTmFtZV0/LnBhdGg7XG4gICAgICB2aW9sYXRpbmdDb25zdHJ1Y3RzLnB1c2goe1xuICAgICAgICAuLi5yZXNvdXJjZSxcblxuICAgICAgICAvLyBhdWdtZW50IHdpdGggY29uc3RydWN0IG1ldGFkYXRhXG4gICAgICAgIGNvbnN0cnVjdFBhdGg6IGNvbnN0cnVjdFBhdGgsXG5cbiAgICAgICAgLy8gaWYgc3ludGggaXMgZXhlY3V0ZWQgd2l0aCAtLXN0ZG91dCwgdGhlIG1hbmlmZXN0IHBhdGhcbiAgICAgICAgLy8gaGVyZSBpcyB0ZW1wb3JhcnkgYW5kIHdpbGwgYmUgZGVsZXRlZCBvbmNlIHRoZSBjb21tYW5kIGZpbmlzaGVzLlxuICAgICAgICBtYW5pZmVzdFBhdGg6IHRoaXMuc3Rkb3V0ID8gJ1NURE9VVCcgOiByZXNvdXJjZS5tYW5pZmVzdFBhdGgsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnZpb2xhdGlvbnMucHVzaCh7XG4gICAgICBydWxlTmFtZTogdmlvbGF0aW9uLnJ1bGVOYW1lLFxuICAgICAgcmVjb21tZW5kYXRpb246IHZpb2xhdGlvbi5yZWNvbW1lbmRhdGlvbixcbiAgICAgIHZpb2xhdGluZ0NvbnN0cnVjdHM6IHZpb2xhdGluZ0NvbnN0cnVjdHMsXG4gICAgICBmaXg6IHZpb2xhdGlvbi5maXgsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3VibWl0IHRoZSByZXBvcnQgd2l0aCBhIHN0YXR1cyBhbmQgYWRkaXRpb25hbCBtZXRhZGF0YS5cbiAgICovXG4gIHB1YmxpYyBzdWJtaXQoc3RhdHVzOiBWYWxpZGF0aW9uUmVwb3J0U3RhdHVzLCBtZXRhZGF0YT86IHsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIHtcbiAgICB0aGlzLl9zdW1tYXJ5ID0geyBzdGF0dXMsIHBsdWdpbjogdGhpcy5wa2csIHZlcnNpb246IHRoaXMudmVyc2lvbiwgbWV0YWRhdGEgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcmVwb3J0IHdhcyBzdWNjZXNzZnVsbC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3VjY2VzcygpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX3N1bW1hcnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGRldGVybWluZSByZXBvcnQgc3RhdHVzOiBSZXBvcnQgaXMgaW5jb21wbGV0ZS4gQ2FsbCBcXCdyZXBvcnQuc3VibWl0XFwnJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zdW1tYXJ5LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0aGUgcmVwb3J0IHRvIGEgd2VsbCBmb3JtYXR0ZWQgdGFibGUgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG5cbiAgICBjb25zdCBqc29uID0gdGhpcy50b0pzb24oKTtcbiAgICBjb25zdCBvdXRwdXQgPSBbanNvbi50aXRsZV07XG5cbiAgICBvdXRwdXQucHVzaCgnLScucmVwZWF0KGpzb24udGl0bGUubGVuZ3RoKSk7XG4gICAgb3V0cHV0LnB1c2goJycpO1xuICAgIG91dHB1dC5wdXNoKCcoU3VtbWFyeSknKTtcbiAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgb3V0cHV0LnB1c2godGFibGUoW1xuICAgICAgWydTdGF0dXMnLCBqc29uLnN1bW1hcnkuc3RhdHVzXSxcbiAgICAgIFsnUGx1Z2luJywganNvbi5zdW1tYXJ5LnBsdWdpbl0sXG4gICAgICBbJ1ZlcnNpb24nLCBqc29uLnN1bW1hcnkudmVyc2lvbl0sXG4gICAgICAuLi5PYmplY3QuZW50cmllcyhqc29uLnN1bW1hcnkubWV0YWRhdGEgPz8ge30pLFxuICAgIF0pKTtcblxuICAgIGlmIChqc29uLnZpb2xhdGlvbnMpIHtcbiAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICAgIG91dHB1dC5wdXNoKCcoVmlvbGF0aW9ucyknKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2aW9sYXRpb24gb2YganNvbi52aW9sYXRpb25zKSB7XG4gICAgICBjb25zdCBvY2N1cnJlbmNlcyA9IHZpb2xhdGlvbi52aW9sYXRpbmdDb25zdHJ1Y3RzLmZsYXRNYXAoYyA9PiBjLmxvY2F0aW9ucykubGVuZ3RoO1xuICAgICAgY29uc3QgdGl0bGUgPSByZXNldChyZWQoYnJpZ2h0KGAke3Zpb2xhdGlvbi5ydWxlTmFtZX0gKCR7b2NjdXJyZW5jZXN9IG9jY3VycmVuY2VzKWApKSk7XG4gICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgICBvdXRwdXQucHVzaCh0aXRsZSk7XG4gICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgICBvdXRwdXQucHVzaCgnICBPY2N1cnJlbmNlczonKTtcbiAgICAgIGZvciAoY29uc3QgY29uc3RydWN0IG9mIHZpb2xhdGlvbi52aW9sYXRpbmdDb25zdHJ1Y3RzKSB7XG4gICAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICAgICAgb3V0cHV0LnB1c2goYCAgICAtIENvbnN0cnVjdCBQYXRoOiAke2NvbnN0cnVjdC5jb25zdHJ1Y3RQYXRoID8/ICdOL0EnfWApO1xuICAgICAgICBvdXRwdXQucHVzaChgICAgIC0gTWFuaWZlc3QgUGF0aDogJHtjb25zdHJ1Y3QubWFuaWZlc3RQYXRofWApO1xuICAgICAgICBvdXRwdXQucHVzaChgICAgIC0gUmVzb3VyY2UgTmFtZTogJHtjb25zdHJ1Y3QucmVzb3VyY2VOYW1lfWApO1xuICAgICAgICBpZiAoY29uc3RydWN0LmxvY2F0aW9ucykge1xuICAgICAgICAgIG91dHB1dC5wdXNoKCcgICAgLSBMb2NhdGlvbnM6Jyk7XG4gICAgICAgICAgZm9yIChjb25zdCBsb2NhdGlvbiBvZiBjb25zdHJ1Y3QubG9jYXRpb25zKSB7XG4gICAgICAgICAgICBvdXRwdXQucHVzaChgICAgICAgPiAke2xvY2F0aW9ufWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgb3V0cHV0LnB1c2goJycpO1xuICAgICAgb3V0cHV0LnB1c2goYCAgUmVjb21tZW5kYXRpb246ICR7dmlvbGF0aW9uLnJlY29tbWVuZGF0aW9ufWApO1xuICAgICAgb3V0cHV0LnB1c2goYCAgSG93IHRvIGZpeDogJHt2aW9sYXRpb24uZml4fWApO1xuICAgIH1cblxuICAgIHJldHVybiBvdXRwdXQuam9pbihvcy5FT0wpO1xuXG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHRoZSByZXBvcnQgaW50byBhIEpTT04gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHRvSnNvbigpOiBWYWxpZGF0aW9uUmVwb3J0SnNvbiB7XG4gICAgaWYgKCF0aGlzLl9zdW1tYXJ5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBkZXRlcm1pbmUgcmVwb3J0IHJlc3VsdDogUmVwb3J0IGlzIGluY29tcGxldGUuIENhbGwgXFwncmVwb3J0LnN1Ym1pdFxcJycpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IGBWYWxpZGF0aW9uIFJlcG9ydCAoJHt0aGlzLnBrZ31AJHt0aGlzLnZlcnNpb259KWAsXG4gICAgICB2aW9sYXRpb25zOiB0aGlzLnZpb2xhdGlvbnMsXG4gICAgICBzdW1tYXJ5OiB0aGlzLl9zdW1tYXJ5LFxuICAgIH07XG4gIH1cblxufVxuXG4vKipcbiAqIFV0aWxpeSBjbGFzcyBmb3IgbG9hZGluZyB2YWxpZGF0aW9uIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uUGx1Z2luIHtcblxuICAvKipcbiAgICogTG9hZCB0aGUgdmFsaWRhdGlvbiBwbHVnaW4gYW5kIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IGNvbnRleHQgZm9yIGl0cyBleGVjdXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxvYWQoXG4gICAgdmFsaWRhdGlvbjogVmFsaWRhdGlvbkNvbmZpZyxcbiAgICBhcHA6IFN5bnRoZXNpemVkQXBwLFxuICAgIHN0ZG91dDogYm9vbGVhbixcbiAgICBwbHVnaW5NYW5hZ2VyOiBQbHVnaW5NYW5hZ2VyKTogeyBwbHVnaW46IFZhbGlkYXRpb247IGNvbnRleHQ6IFZhbGlkYXRpb25Db250ZXh0IH0ge1xuXG4gICAgY29uc3QgcGx1Z2luID0gcGx1Z2luTWFuYWdlci5sb2FkKHtcbiAgICAgIHBrZzogdmFsaWRhdGlvbi5wYWNrYWdlLFxuICAgICAgdmVyc2lvbjogdmFsaWRhdGlvbi52ZXJzaW9uLFxuICAgICAgY2xhc3M6IHZhbGlkYXRpb24uY2xhc3MsXG4gICAgICBwcm9wZXJ0aWVzOiB2YWxpZGF0aW9uLnByb3BlcnRpZXMsXG4gICAgICBpbnN0YWxsRW52OiB2YWxpZGF0aW9uLmluc3RhbGxFbnYsXG4gICAgfSk7XG5cbiAgICBpZiAodHlwZW9mKChwbHVnaW4uaW5zdGFuY2UgYXMgYW55KS52YWxpZGF0ZSkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW5zdGFuY2Ugb2YgY2xhc3MgJyR7dmFsaWRhdGlvbi5jbGFzc30nIGZyb20gcGFja2FnZSAnJHt2YWxpZGF0aW9uLnBhY2thZ2V9QCR7dmFsaWRhdGlvbi52ZXJzaW9ufScgaXMgbm90IGEgdmFsaWRhdGlvbiBwbHVnaW4uIEFyZSB5b3Ugc3VyZSB5b3Ugc3BlY2lmaWVkIHRoZSBjb3JyZWN0IGNsYXNzP2ApO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGFkYXRhID0gYXBwLmNvbnN0cnVjdE1ldGFkYXRhID8gdGhpcy5sb2FkQ29uc3RydWN0TWV0YWRhdGEoYXBwLmNvbnN0cnVjdE1ldGFkYXRhKSA6IHt9O1xuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgVmFsaWRhdGlvbkNvbnRleHQoYXBwLm1hbmlmZXN0cywgcGx1Z2luLnBhY2thZ2UucGtnLCBwbHVnaW4ucGFja2FnZS52ZXJzaW9uLCBtZXRhZGF0YSwgc3Rkb3V0KTtcbiAgICByZXR1cm4geyBwbHVnaW46IHBsdWdpbi5pbnN0YW5jZSBhcyBWYWxpZGF0aW9uLCBjb250ZXh0IH07XG5cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGxvYWRDb25zdHJ1Y3RNZXRhZGF0YShjb25zdHJ1Y3RNZXRhZGF0YVBhdGg6IHN0cmluZyk6IHsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogUmVzb3VyY2VDb25zdHJ1Y3RNZXRhZGF0YSB9IHtcbiAgICBjb25zdCBjb250ZW50cyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGNvbnN0cnVjdE1ldGFkYXRhUGF0aCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSk7XG4gICAgY29uc3QgcmVzb3VyY2VzOiB7IFtrZXk6IHN0cmluZ106IFJlc291cmNlQ29uc3RydWN0TWV0YWRhdGEgfSA9IHt9O1xuICAgIGlmIChjb250ZW50cy52ZXJzaW9uICE9PSAnMS4wLjAnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdmVyc2lvbiBvZiBjb25zdHJ1Y3QgbWV0YWRhdGEgYXQgJHtjb25zdHJ1Y3RNZXRhZGF0YVBhdGh9OiAke2NvbnRlbnRzLnZlcnNpb259LiBTdXBwb3J0ZWQgdmVyc2lvbnMgYXJlOiBbMS4wLjBdYCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgW25hbWUsIG1ldGFkYXRhXSBvZiBPYmplY3QuZW50cmllcyhjb250ZW50cy5yZXNvdXJjZXMpKSB7XG4gICAgICByZXNvdXJjZXNbbmFtZV0gPSB7IHBhdGg6IChtZXRhZGF0YSBhcyBhbnkpLnBhdGggfTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc291cmNlcztcblxuICB9XG5cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgcmVsYXRlZCBtZXRhZGF0YSBvbiByZXNvdXJjZXMuXG4gKi9cbmludGVyZmFjZSBSZXNvdXJjZUNvbnN0cnVjdE1ldGFkYXRhIHtcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIGNvbnN0cnVjdCBpbiB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbn1cblxuZnVuY3Rpb24gcmVzZXQoczogc3RyaW5nKSB7XG4gIHJldHVybiBgJHtzfVxceDFiWzBtYDtcbn1cblxuZnVuY3Rpb24gcmVkKHM6IHN0cmluZykge1xuICByZXR1cm4gYFxceDFiWzMxbSR7c31gO1xufVxuXG5mdW5jdGlvbiBicmlnaHQoczogc3RyaW5nKSB7XG4gIHJldHVybiBgXFx4MWJbMW0ke3N9YDtcbn0iXX0=
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbHVnaW5zL3ZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLHVDQUF5QjtBQUN6QixpQ0FBOEI7QUFDOUIsMkNBQTZCO0FBSzdCOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFnQjVCO0lBRUU7O09BRUc7SUFDYSxTQUE0QjtJQUU1Qzs7T0FFRztJQUNhLEdBQVc7SUFFM0I7O09BRUc7SUFDYSxPQUFlO0lBRS9COztPQUVHO0lBQ2EsV0FBa0UsRUFBRTtJQUVwRjs7T0FFRztJQUNhLE1BQWdCO1FBcEJoQixjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUs1QixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBS1gsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUtmLGFBQVEsR0FBUixRQUFRLENBQTREO1FBS3BFLFdBQU0sR0FBTixNQUFNLENBQVU7UUFFaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxZQUFvQjtRQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxD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QUM7UUFDbkgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBc0IsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUU1RCxDQUFDO0lBRU8sTUFBTSxDQUFDLHFCQUFxQixDQUFDLHFCQUE2QjtRQUNoRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNGLE1BQU0sU0FBUyxHQUFpRCxFQUFFLENBQUM7UUFDbkUsSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLHFCQUFxQixLQUFLLFFBQVEsQ0FBQyxPQUFPLG1DQUFtQyxDQUFDLENBQUM7UUFDaEosQ0FBQztRQUNELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xFLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRyxRQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUVuQixDQUFDO0NBRUY7QUExQ0QsNENBMENDO0FBY0QsU0FBUyxLQUFLLENBQUMsQ0FBUztJQUN0QixPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUM7QUFDdkIsQ0FBQztBQUVELFNBQVMsR0FBRyxDQUFDLENBQVM7SUFDcEIsT0FBTyxXQUFXLENBQUMsRUFBRSxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxDQUFTO0lBQ3ZCLE9BQU8sVUFBVSxDQUFDLEVBQUUsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHsgdGFibGUgfSBmcm9tICd0YWJsZSc7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gJ3lhbWwnO1xuaW1wb3J0IHsgUGx1Z2luTWFuYWdlciB9IGZyb20gJy4vX21hbmFnZXInO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBTeW50aGVzaXplZEFwcCB9IGZyb20gJy4uL3V0aWwnO1xuXG4vKipcbiAqIENvbnRleHQgYXZhaWxhYmxlIHRvIHBsdWdpbnMgZHVyaW5nIHZhbGlkYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uQ29udGV4dCB7XG5cbiAgLyoqXG4gICAqIFJlcG9ydCBlbWl0dGVkIGJ5IHRoZSB2YWxpZGF0aW9uLlxuICAgKlxuICAgKiBQbHVnaW5zIHNob3VsZCBpbnRlcmFjdCB3aXRoIHRoaXMgb2JqZWN0IHRvIGdlbmVyYXRlIHRoZSByZXBvcnQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVwb3J0OiBWYWxpZGF0aW9uUmVwb3J0O1xuXG4gIC8qKlxuICAgKiBMb2dnZXIgZm9yIHRoZSB2YWxpZGF0aW9uLlxuICAgKlxuICAgKiBQbHVnaW5zIHNob3VsZCBpbnRlcmFjdCB3aXRoIHRoaXMgb2JqZWN0IHRvIGxvZyBtZXNzYWdlcyBkdXJpbmcgdmFsaWRhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsb2dnZXI6IFZhbGlkYXRpb25Mb2dnZXI7XG5cbiAgY29uc3RydWN0b3IoXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbGlzdCBvZiBtYW5pZmVzdHMgdG8gdmFsaWRhdGUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG1hbmlmZXN0czogcmVhZG9ubHkgc3RyaW5nW10sXG5cbiAgICAvKipcbiAgICAgKiBUaGUgTm9kZUpTIHBhY2thZ2UgbmFtZSBvZiB0aGUgcGx1Z2luIHJ1bm5pbmcgdGhlIHZhbGlkYXRpb24uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHBrZzogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIHZlcnNpb24gb2YgdGhlIE5vZGVKUyBwYWNrYWdlIHRoYXQgcnVucyB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0IG1ldGFkYXRhIG9mIHJlc291cmNlcyBpbiB0aGUgYXBwbGljYXRpb24uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG1ldGFkYXRhOiB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IFJlc291cmNlQ29uc3RydWN0TWV0YWRhdGEgfSA9IHt9LFxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIHN5bnRoIGNvbW1hbmQgd2FzIGV4ZWN1dGVkIHdpdGggLS1zdGRvdXQuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHN0ZG91dD86IGJvb2xlYW4pIHtcblxuICAgIHRoaXMucmVwb3J0ID0gbmV3IFZhbGlkYXRpb25SZXBvcnQodGhpcy5wa2csIHRoaXMudmVyc2lvbiwgdGhpcy5tZXRhZGF0YSA/PyB7fSwgc3Rkb3V0ID8/IGZhbHNlKTtcbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBWYWxpZGF0aW9uTG9nZ2VyKCk7XG4gIH1cblxuICBwdWJsaWMgcGFyc2VNYW5pZmVzdChtYW5pZmVzdFBhdGg6IHN0cmluZyk6IGFueVtdIHtcbiAgICBjb25zdCBwYXJzZWQgPSB5YW1sLnBhcnNlQWxsRG9jdW1lbnRzKGZzLnJlYWRGaWxlU3luYyhtYW5pZmVzdFBhdGgsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSkpO1xuICAgIGNvbnN0IHJlc291cmNlcyA9IEFycmF5LmlzQXJyYXkocGFyc2VkKSA/IHBhcnNlZCA6IFtwYXJzZWRdO1xuICAgIHJldHVybiByZXNvdXJjZXMubWFwKHIgPT4gci50b0pTKCkpO1xuICB9XG59XG5cbi8qKlxuICogTG9nZ2VyIGF2YWlsYWJsZSB0byBwbHVnaW5zIGR1cmluZyB2YWxpZGF0aW9uLiBVc2UgdGhpcyBpbnN0ZWFkIG9mIGBjb25zb2xlLmxvZ2AuXG4gKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uTG9nZ2VyIHtcblxuICAvKipcbiAgICogTG9nIGEgbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyBsb2cobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgY29uc29sZS5sb2cobWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb250cmFjdCBiZXR3ZWVuIGNkazhzIGFuZCB0aGlyZC1wYXJ0aWVzIGxvb2tpbmcgdG8gaW1wbGVtZW50IHZhbGlkYXRpb24gcGx1Z2lucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uIHtcblxuICAvKipcbiAgICogUnVuIHRoZSB2YWxpZGF0aW9uIGxvZ2ljLlxuICAgKlxuICAgKiAtIFVzZSBgY29udGV4dC5tYW5pZmVzdHNgIHRvIHJldHJpZXZlIHRoZSBsaXN0IG9mIG1hbmlmZXN0cyB0byB2YWxpZGF0ZS5cbiAgICogLSBVc2UgYGNvbnRleHQucmVwb3J0YCB0byBhY2Nlc3MgYW5kIGJ1aWxkIHRoZSByZXN1bHRpbmcgcmVwb3J0LlxuICAgKlxuICAgKiBNYWtlIHN1cmUgdG8gY2FsbCBgY29udGV4dC5yZXBvcnQucGFzcygpYCBvciBgY29udGV4dC5yZXBvcnQuZmFpbCgpYCBiZWZvcmUgcmV0dXJuaW5nLCBvdGhlcndpc2UgdGhlIHZhbGlkYXRpb24gaXMgY29uc2lkZXJlZCBpbmNvbXBsZXRlLlxuICAgKi9cbiAgdmFsaWRhdGUoY29udGV4dDogVmFsaWRhdGlvbkNvbnRleHQpOiBQcm9taXNlPHZvaWQ+O1xuXG59XG5cbi8qKlxuICogUmVzb3VyY2UgdmlvbGF0aW5nIGEgc3BlY2lmaWMgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uVmlvbGF0aW5nUmVzb3VyY2Uge1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb25zIGluIGl0cyBjb25maWcgdGhhdCBwb3NlIHRoZSB2aW9sYXRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb25zOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG1hbmlmZXN0IHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZCBpbi5cbiAgICovXG4gIHJlYWRvbmx5IG1hbmlmZXN0UGF0aDogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29uc3RydWN0IHZpb2xhdGluZyBhIHNwZWNpZmljIHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvblZpb2xhdGluZ0NvbnN0cnVjdCBleHRlbmRzIFZhbGlkYXRpb25WaW9sYXRpbmdSZXNvdXJjZSB7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdHJ1Y3QgcGF0aCBhcyBkZWZpbmVkIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFBhdGg/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBWaW9sYXRpb24gcHJvZHVjZWQgYnkgdGhlIHZhbGlkYXRpb24gcGx1Z2luLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25WaW9sYXRpb24ge1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWNvbW1lbmRhdGlvbiB0byByZXNvbHZlIHRoZSB2aW9sYXRpb24uXG4gICAqL1xuICByZWFkb25seSByZWNvbW1lbmRhdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgdG8gZml4IHRoZSByZWNvbW1lbmRhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZpeDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2VzIHZpb2xhdGluZyB0aGlzIHJ1bGUuXG4gICAqL1xuICByZWFkb25seSB2aW9sYXRpbmdSZXNvdXJjZXM6IHJlYWRvbmx5IFZhbGlkYXRpb25WaW9sYXRpbmdSZXNvdXJjZVtdO1xuXG59XG5cbi8qKlxuICogVmFsaWRhdGlvbiBwcm9kdWNlZCBieSB0aGUgdmFsaWRhdGlvbiBwbHVnaW4sIGluIGNvbnN0cnVjdCB0ZXJtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uVmlvbGF0aW9uQ29uc3RydWN0QXdhcmUgZXh0ZW5kcyBPbWl0PFZhbGlkYXRpb25WaW9sYXRpb24sICd2aW9sYXRpbmdSZXNvdXJjZXMnPiB7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdHJ1Y3RzIHZpb2xhdGluZyB0aGlzIHJ1bGUuXG4gICAqL1xuICByZWFkb25seSB2aW9sYXRpbmdDb25zdHJ1Y3RzOiByZWFkb25seSBWYWxpZGF0aW9uVmlvbGF0aW5nQ29uc3RydWN0W107XG59XG5cbi8vIHdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIGFuIGVudW0gc28gdGhhdFxuLy8gcGx1Z2lucyBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgY2xpIGF0IHJ1bnRpbWUuXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uUmVwb3J0U3RhdHVzID0gJ3N1Y2Nlc3MnIHwgJ2ZhaWx1cmUnO1xuXG4vKipcbiAqIFN1bW1hcnkgb2YgdGhlIHJlcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uUmVwb3J0U3VtbWFyeSB7XG5cbiAgcmVhZG9ubHkgc3RhdHVzOiBWYWxpZGF0aW9uUmVwb3J0U3RhdHVzO1xuXG4gIHJlYWRvbmx5IHBsdWdpbjogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICByZWFkb25seSBtZXRhZGF0YT86IHsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbn1cblxuLyoqXG4gKiBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXBvcnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvblJlcG9ydEpzb24ge1xuXG4gIC8qKlxuICAgKiBSZXBvcnQgdGl0bGUuXG4gICAqL1xuICByZWFkb25seSB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHZpb2xhdGlvbnMgaW4gdGhlIHJlcnBvdC5cbiAgICovXG4gIHJlYWRvbmx5IHZpb2xhdGlvbnM6IHJlYWRvbmx5IFZhbGlkYXRpb25WaW9sYXRpb25Db25zdHJ1Y3RBd2FyZVtdO1xuXG4gIC8qKlxuICAgKiBSZXBvcnQgc3VtbWFyeS5cbiAgICovXG4gIHJlYWRvbmx5IHN1bW1hcnk6IFZhbGlkYXRpb25SZXBvcnRTdW1tYXJ5O1xuXG59XG5cbi8qKlxuICogVGhlIHJlcG9ydCBlbWl0dGVkIGJ5IHRoZSBwbHVnaW4gYWZ0ZXIgZXZhbHVhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25SZXBvcnQge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdmlvbGF0aW9uczogVmFsaWRhdGlvblZpb2xhdGlvbkNvbnN0cnVjdEF3YXJlW10gPSBbXTtcblxuICBwcml2YXRlIF9zdW1tYXJ5PzogVmFsaWRhdGlvblJlcG9ydFN1bW1hcnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwa2c6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1ldGFkYXRhOiB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IFJlc291cmNlQ29uc3RydWN0TWV0YWRhdGEgfSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0ZG91dDogYm9vbGVhbikge1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHZpb2xhdGlvbiB0byB0aGUgcmVwb3J0LlxuICAgKi9cbiAgcHVibGljIGFkZFZpb2xhdGlvbih2aW9sYXRpb246IFZhbGlkYXRpb25WaW9sYXRpb24pIHtcbiAgICBpZiAodGhpcy5fc3VtbWFyeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWaW9sYXRpb25zIGNhbm5vdCBiZSBhZGRlZCB0byByZXBvcnQgYWZ0ZXIgaXRzIHN1Ym1pdHRlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHZpb2xhdGluZ0NvbnN0cnVjdHM6IFZhbGlkYXRpb25WaW9sYXRpbmdDb25zdHJ1Y3RbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCByZXNvdXJjZSBvZiB2aW9sYXRpb24udmlvbGF0aW5nUmVzb3VyY2VzKSB7XG4gICAgICBjb25zdCBjb25zdHJ1Y3RQYXRoID0gdGhpcy5tZXRhZGF0YVtyZXNvdXJjZS5yZXNvdXJjZU5hbWVdPy5wYXRoO1xuICAgICAgdmlvbGF0aW5nQ29uc3RydWN0cy5wdXNoKHtcbiAgICAgICAgLi4ucmVzb3VyY2UsXG5cbiAgICAgICAgLy8gYXVnbWVudCB3aXRoIGNvbnN0cnVjdCBtZXRhZGF0YVxuICAgICAgICBjb25zdHJ1Y3RQYXRoOiBjb25zdHJ1Y3RQYXRoLFxuXG4gICAgICAgIC8vIGlmIHN5bnRoIGlzIGV4ZWN1dGVkIHdpdGggLS1zdGRvdXQsIHRoZSBtYW5pZmVzdCBwYXRoXG4gICAgICAgIC8vIGhlcmUgaXMgdGVtcG9yYXJ5IGFuZCB3aWxsIGJlIGRlbGV0ZWQgb25jZSB0aGUgY29tbWFuZCBmaW5pc2hlcy5cbiAgICAgICAgbWFuaWZlc3RQYXRoOiB0aGlzLnN0ZG91dCA/ICdTVERPVVQnIDogcmVzb3VyY2UubWFuaWZlc3RQYXRoLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy52aW9sYXRpb25zLnB1c2goe1xuICAgICAgcnVsZU5hbWU6IHZpb2xhdGlvbi5ydWxlTmFtZSxcbiAgICAgIHJlY29tbWVuZGF0aW9uOiB2aW9sYXRpb24ucmVjb21tZW5kYXRpb24sXG4gICAgICB2aW9sYXRpbmdDb25zdHJ1Y3RzOiB2aW9sYXRpbmdDb25zdHJ1Y3RzLFxuICAgICAgZml4OiB2aW9sYXRpb24uZml4LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdCB0aGUgcmVwb3J0IHdpdGggYSBzdGF0dXMgYW5kIGFkZGl0aW9uYWwgbWV0YWRhdGEuXG4gICAqL1xuICBwdWJsaWMgc3VibWl0KHN0YXR1czogVmFsaWRhdGlvblJlcG9ydFN0YXR1cywgbWV0YWRhdGE/OiB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gICAgdGhpcy5fc3VtbWFyeSA9IHsgc3RhdHVzLCBwbHVnaW46IHRoaXMucGtnLCB2ZXJzaW9uOiB0aGlzLnZlcnNpb24sIG1ldGFkYXRhIH07XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHJlcG9ydCB3YXMgc3VjY2Vzc2Z1bGwuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN1Y2Nlc3MoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLl9zdW1tYXJ5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBkZXRlcm1pbmUgcmVwb3J0IHN0YXR1czogUmVwb3J0IGlzIGluY29tcGxldGUuIENhbGwgXFwncmVwb3J0LnN1Ym1pdFxcJycpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc3VtbWFyeS5zdGF0dXMgPT09ICdzdWNjZXNzJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGhlIHJlcG9ydCB0byBhIHdlbGwgZm9ybWF0dGVkIHRhYmxlIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuXG4gICAgY29uc3QganNvbiA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3Qgb3V0cHV0ID0gW2pzb24udGl0bGVdO1xuXG4gICAgb3V0cHV0LnB1c2goJy0nLnJlcGVhdChqc29uLnRpdGxlLmxlbmd0aCkpO1xuICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICBvdXRwdXQucHVzaCgnKFN1bW1hcnkpJyk7XG4gICAgb3V0cHV0LnB1c2goJycpO1xuICAgIG91dHB1dC5wdXNoKHRhYmxlKFtcbiAgICAgIFsnU3RhdHVzJywganNvbi5zdW1tYXJ5LnN0YXR1c10sXG4gICAgICBbJ1BsdWdpbicsIGpzb24uc3VtbWFyeS5wbHVnaW5dLFxuICAgICAgWydWZXJzaW9uJywganNvbi5zdW1tYXJ5LnZlcnNpb25dLFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXMoanNvbi5zdW1tYXJ5Lm1ldGFkYXRhID8/IHt9KSxcbiAgICBdKSk7XG5cbiAgICBpZiAoanNvbi52aW9sYXRpb25zKSB7XG4gICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgICBvdXRwdXQucHVzaCgnKFZpb2xhdGlvbnMpJyk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgdmlvbGF0aW9uIG9mIGpzb24udmlvbGF0aW9ucykge1xuICAgICAgY29uc3Qgb2NjdXJyZW5jZXMgPSB2aW9sYXRpb24udmlvbGF0aW5nQ29uc3RydWN0cy5mbGF0TWFwKGMgPT4gYy5sb2NhdGlvbnMpLmxlbmd0aDtcbiAgICAgIGNvbnN0IHRpdGxlID0gcmVzZXQocmVkKGJyaWdodChgJHt2aW9sYXRpb24ucnVsZU5hbWV9ICgke29jY3VycmVuY2VzfSBvY2N1cnJlbmNlcylgKSkpO1xuICAgICAgb3V0cHV0LnB1c2goJycpO1xuICAgICAgb3V0cHV0LnB1c2godGl0bGUpO1xuICAgICAgb3V0cHV0LnB1c2goJycpO1xuICAgICAgb3V0cHV0LnB1c2goJyAgT2NjdXJyZW5jZXM6Jyk7XG4gICAgICBmb3IgKGNvbnN0IGNvbnN0cnVjdCBvZiB2aW9sYXRpb24udmlvbGF0aW5nQ29uc3RydWN0cykge1xuICAgICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgICAgIG91dHB1dC5wdXNoKGAgICAgLSBDb25zdHJ1Y3QgUGF0aDogJHtjb25zdHJ1Y3QuY29uc3RydWN0UGF0aCA/PyAnTi9BJ31gKTtcbiAgICAgICAgb3V0cHV0LnB1c2goYCAgICAtIE1hbmlmZXN0IFBhdGg6ICR7Y29uc3RydWN0Lm1hbmlmZXN0UGF0aH1gKTtcbiAgICAgICAgb3V0cHV0LnB1c2goYCAgICAtIFJlc291cmNlIE5hbWU6ICR7Y29uc3RydWN0LnJlc291cmNlTmFtZX1gKTtcbiAgICAgICAgaWYgKGNvbnN0cnVjdC5sb2NhdGlvbnMpIHtcbiAgICAgICAgICBvdXRwdXQucHVzaCgnICAgIC0gTG9jYXRpb25zOicpO1xuICAgICAgICAgIGZvciAoY29uc3QgbG9jYXRpb24gb2YgY29uc3RydWN0LmxvY2F0aW9ucykge1xuICAgICAgICAgICAgb3V0cHV0LnB1c2goYCAgICAgID4gJHtsb2NhdGlvbn1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICAgIG91dHB1dC5wdXNoKGAgIFJlY29tbWVuZGF0aW9uOiAke3Zpb2xhdGlvbi5yZWNvbW1lbmRhdGlvbn1gKTtcbiAgICAgIG91dHB1dC5wdXNoKGAgIEhvdyB0byBmaXg6ICR7dmlvbGF0aW9uLmZpeH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0cHV0LmpvaW4ob3MuRU9MKTtcblxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0aGUgcmVwb3J0IGludG8gYSBKU09OIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyB0b0pzb24oKTogVmFsaWRhdGlvblJlcG9ydEpzb24ge1xuICAgIGlmICghdGhpcy5fc3VtbWFyeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZGV0ZXJtaW5lIHJlcG9ydCByZXN1bHQ6IFJlcG9ydCBpcyBpbmNvbXBsZXRlLiBDYWxsIFxcJ3JlcG9ydC5zdWJtaXRcXCcnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiBgVmFsaWRhdGlvbiBSZXBvcnQgKCR7dGhpcy5wa2d9QCR7dGhpcy52ZXJzaW9ufSlgLFxuICAgICAgdmlvbGF0aW9uczogdGhpcy52aW9sYXRpb25zLFxuICAgICAgc3VtbWFyeTogdGhpcy5fc3VtbWFyeSxcbiAgICB9O1xuICB9XG5cbn1cblxuLyoqXG4gKiBVdGlsaXkgY2xhc3MgZm9yIGxvYWRpbmcgdmFsaWRhdGlvbiBwbHVnaW5zLlxuICovXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvblBsdWdpbiB7XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIHZhbGlkYXRpb24gcGx1Z2luIGFuZCBjcmVhdGUgdGhlIG5lY2Vzc2FyeSBjb250ZXh0IGZvciBpdHMgZXhlY3V0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsb2FkKFxuICAgIHZhbGlkYXRpb246IFZhbGlkYXRpb25Db25maWcsXG4gICAgYXBwOiBTeW50aGVzaXplZEFwcCxcbiAgICBzdGRvdXQ6IGJvb2xlYW4sXG4gICAgcGx1Z2luTWFuYWdlcjogUGx1Z2luTWFuYWdlcik6IHsgcGx1Z2luOiBWYWxpZGF0aW9uOyBjb250ZXh0OiBWYWxpZGF0aW9uQ29udGV4dCB9IHtcblxuICAgIGNvbnN0IHBsdWdpbiA9IHBsdWdpbk1hbmFnZXIubG9hZCh7XG4gICAgICBwa2c6IHZhbGlkYXRpb24ucGFja2FnZSxcbiAgICAgIHZlcnNpb246IHZhbGlkYXRpb24udmVyc2lvbixcbiAgICAgIGNsYXNzOiB2YWxpZGF0aW9uLmNsYXNzLFxuICAgICAgcHJvcGVydGllczogdmFsaWRhdGlvbi5wcm9wZXJ0aWVzLFxuICAgICAgaW5zdGFsbEVudjogdmFsaWRhdGlvbi5pbnN0YWxsRW52LFxuICAgIH0pO1xuXG4gICAgaWYgKHR5cGVvZigocGx1Z2luLmluc3RhbmNlIGFzIGFueSkudmFsaWRhdGUpICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEluc3RhbmNlIG9mIGNsYXNzICcke3ZhbGlkYXRpb24uY2xhc3N9JyBmcm9tIHBhY2thZ2UgJyR7dmFsaWRhdGlvbi5wYWNrYWdlfUAke3ZhbGlkYXRpb24udmVyc2lvbn0nIGlzIG5vdCBhIHZhbGlkYXRpb24gcGx1Z2luLiBBcmUgeW91IHN1cmUgeW91IHNwZWNpZmllZCB0aGUgY29ycmVjdCBjbGFzcz9gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhZGF0YSA9IGFwcC5jb25zdHJ1Y3RNZXRhZGF0YSA/IHRoaXMubG9hZENvbnN0cnVjdE1ldGFkYXRhKGFwcC5jb25zdHJ1Y3RNZXRhZGF0YSkgOiB7fTtcbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IFZhbGlkYXRpb25Db250ZXh0KGFwcC5tYW5pZmVzdHMsIHBsdWdpbi5wYWNrYWdlLnBrZywgcGx1Z2luLnBhY2thZ2UudmVyc2lvbiwgbWV0YWRhdGEsIHN0ZG91dCk7XG4gICAgcmV0dXJuIHsgcGx1Z2luOiBwbHVnaW4uaW5zdGFuY2UgYXMgVmFsaWRhdGlvbiwgY29udGV4dCB9O1xuXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBsb2FkQ29uc3RydWN0TWV0YWRhdGEoY29uc3RydWN0TWV0YWRhdGFQYXRoOiBzdHJpbmcpOiB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IFJlc291cmNlQ29uc3RydWN0TWV0YWRhdGEgfSB7XG4gICAgY29uc3QgY29udGVudHMgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhjb25zdHJ1Y3RNZXRhZGF0YVBhdGgsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSkpO1xuICAgIGNvbnN0IHJlc291cmNlczogeyBba2V5OiBzdHJpbmddOiBSZXNvdXJjZUNvbnN0cnVjdE1ldGFkYXRhIH0gPSB7fTtcbiAgICBpZiAoY29udGVudHMudmVyc2lvbiAhPT0gJzEuMC4wJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHZlcnNpb24gb2YgY29uc3RydWN0IG1ldGFkYXRhIGF0ICR7Y29uc3RydWN0TWV0YWRhdGFQYXRofTogJHtjb250ZW50cy52ZXJzaW9ufS4gU3VwcG9ydGVkIHZlcnNpb25zIGFyZTogWzEuMC4wXWApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZXRhZGF0YV0gb2YgT2JqZWN0LmVudHJpZXMoY29udGVudHMucmVzb3VyY2VzKSkge1xuICAgICAgcmVzb3VyY2VzW25hbWVdID0geyBwYXRoOiAobWV0YWRhdGEgYXMgYW55KS5wYXRoIH07XG4gICAgfVxuICAgIHJldHVybiByZXNvdXJjZXM7XG5cbiAgfVxuXG59XG5cbi8qKlxuICogQ29uc3RydWN0IHJlbGF0ZWQgbWV0YWRhdGEgb24gcmVzb3VyY2VzLlxuICovXG5pbnRlcmZhY2UgUmVzb3VyY2VDb25zdHJ1Y3RNZXRhZGF0YSB7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBjb25zdHJ1Y3QgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG59XG5cbmZ1bmN0aW9uIHJlc2V0KHM6IHN0cmluZykge1xuICByZXR1cm4gYCR7c31cXHgxYlswbWA7XG59XG5cbmZ1bmN0aW9uIHJlZChzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGBcXHgxYlszMW0ke3N9YDtcbn1cblxuZnVuY3Rpb24gYnJpZ2h0KHM6IHN0cmluZykge1xuICByZXR1cm4gYFxceDFiWzFtJHtzfWA7XG59Il19
package/lib/reviver.js CHANGED
@@ -94,4 +94,4 @@ SafeReviver.LEGAL_CHAR_SANITIZER = (path, value) => {
94
94
  }
95
95
  }
96
96
  };
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aXZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXZpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWNBOzs7OztHQUtHO0FBQ0gsTUFBYSxXQUFXO0lBc0R0QixZQUFZLEtBQXdCO1FBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFFLGVBQWUsSUFBSSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQWMsRUFBRSxLQUFhO1FBQ2hELEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN2QyxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdEQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsT0FBTyxTQUFTLENBQUM7YUFDbEI7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLEdBQVE7UUFDdEIsSUFBSSxHQUFHLElBQUksSUFBSTtZQUFFLE9BQU87UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFjLEVBQUUsVUFBZTtRQUNsRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyRCxJQUFJLE9BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7Z0JBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsc0NBQXNDLE9BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDM0Y7WUFFRCxJQUFJLENBQUMs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XG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB2YWx1ZSBhbmQgdGhlIHBhdGggdG8gaXQgd2l0aGluIHRoZSBwYXJlbnQgb2JqZWN0LFxuICogYW5kIGVpdGhlciB0cmFuc2Zvcm1zIGl0IG9yIGxlYXZlcyBpdCBhbG9uZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2FuaXRpemVyID0gKHBhdGg6IHN0cmluZ1tdLCB2YWx1ZTogc3RyaW5nKSA9PiB7IGFwcGxpZWQ6IGJvb2xlYW47IHNhbml0aXplZD86IHN0cmluZyB9O1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yICdTYWZlUmV2aXZlcicuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FmZVJldml2ZXJQcm9wcyB7XG4gIHJlYWRvbmx5IGFsbG93bGlzdGVkS2V5cz86IHN0cmluZ1tdO1xuICByZWFkb25seSBzYW5pdGl6ZXJzPzogQXJyYXk8U2FuaXRpemVyPjtcbn1cblxuLyoqXG4gKiBKU09OL1lBTUwgcmV2aXZlciB0aGF0OlxuICpcbiAqIC0gVGhyb3dzIHdoZW4gYW4gaWxsZWdhbCBrZXkgaXMgZGV0ZWN0ZWQuXG4gKiAtIFJlcGxhY2VzIGlsbGVnYWwgdmFsdWVzIHdpdGggYSBzcGVjaWFsIG1hcmtlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFNhZmVSZXZpdmVyIHtcblxuICAvLyAuIHwgdXNlZCBpbiByZXNvdXJjZSBmcW4gd2hpY2ggc2VydmVycyBhcyBhIGtleSAoZS5nIGlvLms4cy5hcGltYWNoaW5lcnkucGtnLmFwaXMubWV0YS52MS5BUElHcm91cClcbiAgLy8gLyB8IHVzZWQgaW4gJHJlZiB0byBwb2ludCB0byBhIGRlZmluaXRpb24gKGUuZyAjL2RlZmluaXRpb25zL2lvLms4cy5hcGltYWNoaW5lcnkucGtnLmFwaXMubWV0YS52MS5Hcm91cFZlcnNpb25Gb3JEaXNjb3ZlcnkpXG4gIC8vIC0gfCB1c2VkIGluIGFubm90YXRpb24ga2V5cyAoZS5nIHgta3ViZXJuZXRlcy1ncm91cC12ZXJzaW9uLWtpbmQpXG4gIC8vICMgfCB1c2VkIGluICRyZWYgdG8gcG9pbnQgdG8gYSBkZWZpbml0aW9uIChlLmcgIy9kZWZpbml0aW9ucy9pby5rOHMuYXBpbWFjaGluZXJ5LnBrZy5hcGlzLm1ldGEudjEuR3JvdXBWZXJzaW9uRm9yRGlzY292ZXJ5KVxuICAvLyAsIHwgdXNlZCBpbiB2YWx1ZXMgdGhhdCByZXByZXNlbnQgYSBsaXN0IChlLmcgbWVyZ2UscmV0YWluS2V5cylcbiAgLy8gKyB8IHVzZWQgaW4gdmFsdWVzIHJlcHJlc2VudGluZyBNSU1FIHR5cGVzIChlLmcgYXBwbGljYXRpb24vanNvbi1wYXRjaCtqc29uKVxuICAvLyA6IHwgdXNlZCBpbiBlLmcuIFByb21ldGhldXMgZXZlbnRzIChlLmcgcnVuOmNvbXBsZXRlZClcbiAgLy8gKiB8IHVzZWQgaW4gZS5nLiBBV1MgcG9saWNpZXMgKGUuZyBzMzpPYmplY3RDcmVhdGVkOiopXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEVHQUxfQ0hBUlMgPSAvXihcXHd8XFwufFxcL3wtfCN8LCkqJC87XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEVHQUxfQ0hBUlNfSU5fRU5VTSA9IC9eKCB8XFx3fFxcLnxcXC98LXwjfCx8XFwrfDp8XFwqfCF8PXx+KSokLztcblxuICAvLyB0aGUgc3RyaW5nIHdlIHVzZSBhcyB0aGUgc3RyaXBwZWQgdmFsdWVcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVFJJUFBFRF9WQUxVRSA9ICdfX3N0cmlwcGVkX2J5X2NkazhzX18nO1xuXG4gIC8vIHJlbW92ZSBjaGFyYWN0ZXJzIGZyb20gZGVzY3JpcHRpb25zIHRoYXQgbWlnaHQgdGVybWluYXRlIHRoZSBjb21tZW50XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVTQ1JJUFRJT05fU0FOSVRJWkVSOiBTYW5pdGl6ZXIgPSAocGF0aDogc3RyaW5nW10sIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAocGF0aC5sZW5ndGggPiAwICYmIHBhdGhbcGF0aC5sZW5ndGggLSAxXSA9PT0gJ2Rlc2NyaXB0aW9uJykge1xuICAgICAgcmV0dXJuIHsgYXBwbGllZDogdHJ1ZSwgc2FuaXRpemVkOiB2YWx1ZS5yZXBsYWNlKC9cXCpcXC8vZywgJ18vJykgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgYXBwbGllZDogZmFsc2UgfTtcbiAgICB9XG4gIH07XG5cbiAgLy8gc3RyaXAgbW9zdCBpbGxlZ2FsIHZhbHVlc1xuICAvLyB0aGUgcmVhc29uIHdlIGRvbid0IHRocm93IGlzIGJlY2F1c2Ugc29tZXRpbWVzIHRoZXNlIHR5cGUgb2YgdmFsdWVzIGV4aXN0IGluXG4gIC8vIHRoZSBvcmlnaW5hbCB0ZXh0IGZvciBnb29kIHJlYXNvbiwgbGlrZSBmb3IgZXhhbXBsZSBhIGBqc29uUGF0aGAga2V5IGluIGEgQ1JEIG1hbmlmZXN0LCBhbmQgd2UgZG9uJ3RcbiAgLy8gd2FudCB0byBmYWlsIHRoZSBlbnRpcmUgdGhpbmcuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEVHQUxfQ0hBUl9TQU5JVElaRVI6IFNhbml0aXplciA9IChwYXRoOiBzdHJpbmdbXSwgdmFsdWU6IHN0cmluZykgPT4ge1xuICAgIC8vIGNhc2UgMTogd2UgYXJlIGluIGFuIGFycmF5IG9mIGVudW1zXG4gICAgaWYgKHBhdGgubGVuZ3RoID4gMiAmJiBwYXRoW3BhdGgubGVuZ3RoIC0gMl0gPT09ICdlbnVtJyAmJiAvXlxcZCskLy50ZXN0KHBhdGhbcGF0aC5sZW5ndGggLSAxXSkpIHtcblxuICAgICAgaWYgKCFTYWZlUmV2aXZlci5MRUdBTF9DSEFSU19JTl9FTlVNLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB7IGFwcGxpZWQ6IHRydWUsIHNhbml0aXplZDogU2FmZVJldml2ZXIuU1RSSVBQRURfVkFMVUUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7IGFwcGxpZWQ6IGZhbHNlIH07XG4gICAgICB9XG5cbiAgICAvLyBjYXNlIDI6IGRlZmF1bHRcbiAgICB9IGVsc2Uge1xuXG4gICAgICBpZiAoIVNhZmVSZXZpdmVyLkxFR0FMX0NIQVJTLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB7IGFwcGxpZWQ6IHRydWUsIHNhbml0aXplZDogU2FmZVJldml2ZXIuU1RSSVBQRURfVkFMVUUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7IGFwcGxpZWQ6IGZhbHNlIH07XG4gICAgICB9XG5cbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2xpc3RlZEtleXM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcnM6IEFycmF5PFNhbml0aXplcj47XG5cbiAgY29uc3RydWN0b3IocHJvcHM/OiBTYWZlUmV2aXZlclByb3BzKSB7XG4gICAgdGhpcy5hbGxvd2xpc3RlZEtleXMgPSBwcm9wcz8uYWxsb3dsaXN0ZWRLZXlzID8/IFtdO1xuICAgIHRoaXMuc2FuaXRpemVycyA9IHByb3BzPy5zYW5pdGl6ZXJzID8/IFtdO1xuICB9XG5cbiAgcHVibGljIHNhbml0aXplVmFsdWUocGF0aDogc3RyaW5nW10sIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGZvciAoY29uc3Qgc2FuaXRpemVyIG9mIHRoaXMuc2FuaXRpemVycykge1xuICAgICAgY29uc3QgeyBhcHBsaWVkLCBzYW5pdGl6ZWQgfSA9IHNhbml0aXplcihwYXRoLCB2YWx1ZSk7XG4gICAgICBpZiAoYXBwbGllZCkge1xuICAgICAgICByZXR1cm4gc2FuaXRpemVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYW5pdGl6ZXMgYSBKU09OIG9iamVjdCBpbi1wbGFjZS5cbiAgICovXG4gIHB1YmxpYyBzYW5pdGl6ZShvYmo6IGFueSkge1xuICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuO1xuICAgIHRoaXMuX3Nhbml0aXplT2JqKFtdLCBvYmopO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2FuaXRpemVPYmoocGF0aDogc3RyaW5nW10sIHBhcnRpYWxPYmo6IGFueSkge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcnRpYWxPYmopKSB7XG4gICAgICBpZiAodHlwZW9mKGtleSkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQga2V5ICgke2tleX0pIHRvIGJlIG9mIHR5cGUgJ3N0cmluZycsIGJ1dCBnb3QgJyR7dHlwZW9mKGtleSl9J2ApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuYWxsb3dsaXN0ZWRLZXlzLmluY2x1ZGVzKGtleSkgJiYgIVNhZmVSZXZpdmVyLkxFR0FMX0NIQVJTLnRlc3Qoa2V5KSkge1xuICAgICAgICAvLyBrZXlzIGNhbm5vdCBiZSBzdHJpcHBlZCBzbyB3ZSBoYXZlIHRvIHRocm93IC0gdGhhdHMgb2ssIHdlIGRvbid0IHdhbnQgdG8gcGFyc2Ugc3VjaCBkb2NzIGF0IGFsbFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEtleSAnJHtrZXl9JyBjb250YWlucyBub24gc3RhbmRhcmQgY2hhcmFjdGVycyAoTXVzdCBtYXRjaCByZWdleCAnJHtTYWZlUmV2aXZlci5MRUdBTF9DSEFSU30nKWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjaGlsZFBhdGggPSBwYXRoLmNvbmNhdChba2V5XSk7XG5cbiAgICAgIGlmICh0eXBlb2YodmFsdWUpID09PSAnc3RyaW5nJykge1xuICAgICAgICBwYXJ0aWFsT2JqW2tleV0gPSB0aGlzLnNhbml0aXplVmFsdWUoY2hpbGRQYXRoLCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZih2YWx1ZSkgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuX3Nhbml0aXplT2JqKGNoaWxkUGF0aCwgdmFsdWUpOyAvLyByZWN1cnNpdmUgY2FsbFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aXZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXZpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWNBOzs7OztHQUtHO0FBQ0gsTUFBYSxXQUFXO0lBc0R0QixZQUFZLEtBQXdCO1FBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFFLGVBQWUsSUFBSSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQWMsRUFBRSxLQUFhO1FBQ2hELEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsR0FBUTtRQUN0QixJQUFJLEdBQUcsSUFBSSxJQUFJO1lBQUUsT0FBTztRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sWUFBWSxDQUFDLElBQWMsRUFBRSxVQUFlO1FBQ2xELEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdEQsSUFBSSxPQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsc0NBQXNDLE9BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxD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RUFBRSxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbEUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFFSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB2YWx1ZSBhbmQgdGhlIHBhdGggdG8gaXQgd2l0aGluIHRoZSBwYXJlbnQgb2JqZWN0LFxuICogYW5kIGVpdGhlciB0cmFuc2Zvcm1zIGl0IG9yIGxlYXZlcyBpdCBhbG9uZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2FuaXRpemVyID0gKHBhdGg6IHN0cmluZ1tdLCB2YWx1ZTogc3RyaW5nKSA9PiB7IGFwcGxpZWQ6IGJvb2xlYW47IHNhbml0aXplZD86IHN0cmluZyB9O1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yICdTYWZlUmV2aXZlcicuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FmZVJldml2ZXJQcm9wcyB7XG4gIHJlYWRvbmx5IGFsbG93bGlzdGVkS2V5cz86IHN0cmluZ1tdO1xuICByZWFkb25seSBzYW5pdGl6ZXJzPzogQXJyYXk8U2FuaXRpemVyPjtcbn1cblxuLyoqXG4gKiBKU09OL1lBTUwgcmV2aXZlciB0aGF0OlxuICpcbiAqIC0gVGhyb3dzIHdoZW4gYW4gaWxsZWdhbCBrZXkgaXMgZGV0ZWN0ZWQuXG4gKiAtIFJlcGxhY2VzIGlsbGVnYWwgdmFsdWVzIHdpdGggYSBzcGVjaWFsIG1hcmtlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFNhZmVSZXZpdmVyIHtcblxuICAvLyAuIHwgdXNlZCBpbiByZXNvdXJjZSBmcW4gd2hpY2ggc2VydmVycyBhcyBhIGtleSAoZS5nIGlvLms4cy5hcGltYWNoaW5lcnkucGtnLmFwaXMubWV0YS52MS5BUElHcm91cClcbiAgLy8gLyB8IHVzZWQgaW4gJHJlZiB0byBwb2ludCB0byBhIGRlZmluaXRpb24gKGUuZyAjL2RlZmluaXRpb25zL2lvLms4cy5hcGltYWNoaW5lcnkucGtnLmFwaXMubWV0YS52MS5Hcm91cFZlcnNpb25Gb3JEaXNjb3ZlcnkpXG4gIC8vIC0gfCB1c2VkIGluIGFubm90YXRpb24ga2V5cyAoZS5nIHgta3ViZXJuZXRlcy1ncm91cC12ZXJzaW9uLWtpbmQpXG4gIC8vICMgfCB1c2VkIGluICRyZWYgdG8gcG9pbnQgdG8gYSBkZWZpbml0aW9uIChlLmcgIy9kZWZpbml0aW9ucy9pby5rOHMuYXBpbWFjaGluZXJ5LnBrZy5hcGlzLm1ldGEudjEuR3JvdXBWZXJzaW9uRm9yRGlzY292ZXJ5KVxuICAvLyAsIHwgdXNlZCBpbiB2YWx1ZXMgdGhhdCByZXByZXNlbnQgYSBsaXN0IChlLmcgbWVyZ2UscmV0YWluS2V5cylcbiAgLy8gKyB8IHVzZWQgaW4gdmFsdWVzIHJlcHJlc2VudGluZyBNSU1FIHR5cGVzIChlLmcgYXBwbGljYXRpb24vanNvbi1wYXRjaCtqc29uKVxuICAvLyA6IHwgdXNlZCBpbiBlLmcuIFByb21ldGhldXMgZXZlbnRzIChlLmcgcnVuOmNvbXBsZXRlZClcbiAgLy8gKiB8IHVzZWQgaW4gZS5nLiBBV1MgcG9saWNpZXMgKGUuZyBzMzpPYmplY3RDcmVhdGVkOiopXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEVHQUxfQ0hBUlMgPSAvXihcXHd8XFwufFxcL3wtfCN8LCkqJC87XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEVHQUxfQ0hBUlNfSU5fRU5VTSA9IC9eKCB8XFx3fFxcLnxcXC98LXwjfCx8XFwrfDp8XFwqfCF8PXx+KSokLztcblxuICAvLyB0aGUgc3RyaW5nIHdlIHVzZSBhcyB0aGUgc3RyaXBwZWQgdmFsdWVcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVFJJUFBFRF9WQUxVRSA9ICdfX3N0cmlwcGVkX2J5X2NkazhzX18nO1xuXG4gIC8vIHJlbW92ZSBjaGFyYWN0ZXJzIGZyb20gZGVzY3JpcHRpb25zIHRoYXQgbWlnaHQgdGVybWluYXRlIHRoZSBjb21tZW50XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVTQ1JJUFRJT05fU0FOSVRJWkVSOiBTYW5pdGl6ZXIgPSAocGF0aDogc3RyaW5nW10sIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAocGF0aC5sZW5ndGggPiAwICYmIHBhdGhbcGF0aC5sZW5ndGggLSAxXSA9PT0gJ2Rlc2NyaXB0aW9uJykge1xuICAgICAgcmV0dXJuIHsgYXBwbGllZDogdHJ1ZSwgc2FuaXRpemVkOiB2YWx1ZS5yZXBsYWNlKC9cXCpcXC8vZywgJ18vJykgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgYXBwbGllZDogZmFsc2UgfTtcbiAgICB9XG4gIH07XG5cbiAgLy8gc3RyaXAgbW9zdCBpbGxlZ2FsIHZhbHVlc1xuICAvLyB0aGUgcmVhc29uIHdlIGRvbid0IHRocm93IGlzIGJlY2F1c2Ugc29tZXRpbWVzIHRoZXNlIHR5cGUgb2YgdmFsdWVzIGV4aXN0IGluXG4gIC8vIHRoZSBvcmlnaW5hbCB0ZXh0IGZvciBnb29kIHJlYXNvbiwgbGlrZSBmb3IgZXhhbXBsZSBhIGBqc29uUGF0aGAga2V5IGluIGEgQ1JEIG1hbmlmZXN0LCBhbmQgd2UgZG9uJ3RcbiAgLy8gd2FudCB0byBmYWlsIHRoZSBlbnRpcmUgdGhpbmcuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEVHQUxfQ0hBUl9TQU5JVElaRVI6IFNhbml0aXplciA9IChwYXRoOiBzdHJpbmdbXSwgdmFsdWU6IHN0cmluZykgPT4ge1xuICAgIC8vIGNhc2UgMTogd2UgYXJlIGluIGFuIGFycmF5IG9mIGVudW1zXG4gICAgaWYgKHBhdGgubGVuZ3RoID4gMiAmJiBwYXRoW3BhdGgubGVuZ3RoIC0gMl0gPT09ICdlbnVtJyAmJiAvXlxcZCskLy50ZXN0KHBhdGhbcGF0aC5sZW5ndGggLSAxXSkpIHtcblxuICAgICAgaWYgKCFTYWZlUmV2aXZlci5MRUdBTF9DSEFSU19JTl9FTlVNLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB7IGFwcGxpZWQ6IHRydWUsIHNhbml0aXplZDogU2FmZVJldml2ZXIuU1RSSVBQRURfVkFMVUUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7IGFwcGxpZWQ6IGZhbHNlIH07XG4gICAgICB9XG5cbiAgICAvLyBjYXNlIDI6IGRlZmF1bHRcbiAgICB9IGVsc2Uge1xuXG4gICAgICBpZiAoIVNhZmVSZXZpdmVyLkxFR0FMX0NIQVJTLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB7IGFwcGxpZWQ6IHRydWUsIHNhbml0aXplZDogU2FmZVJldml2ZXIuU1RSSVBQRURfVkFMVUUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7IGFwcGxpZWQ6IGZhbHNlIH07XG4gICAgICB9XG5cbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2xpc3RlZEtleXM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcnM6IEFycmF5PFNhbml0aXplcj47XG5cbiAgY29uc3RydWN0b3IocHJvcHM/OiBTYWZlUmV2aXZlclByb3BzKSB7XG4gICAgdGhpcy5hbGxvd2xpc3RlZEtleXMgPSBwcm9wcz8uYWxsb3dsaXN0ZWRLZXlzID8/IFtdO1xuICAgIHRoaXMuc2FuaXRpemVycyA9IHByb3BzPy5zYW5pdGl6ZXJzID8/IFtdO1xuICB9XG5cbiAgcHVibGljIHNhbml0aXplVmFsdWUocGF0aDogc3RyaW5nW10sIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGZvciAoY29uc3Qgc2FuaXRpemVyIG9mIHRoaXMuc2FuaXRpemVycykge1xuICAgICAgY29uc3QgeyBhcHBsaWVkLCBzYW5pdGl6ZWQgfSA9IHNhbml0aXplcihwYXRoLCB2YWx1ZSk7XG4gICAgICBpZiAoYXBwbGllZCkge1xuICAgICAgICByZXR1cm4gc2FuaXRpemVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYW5pdGl6ZXMgYSBKU09OIG9iamVjdCBpbi1wbGFjZS5cbiAgICovXG4gIHB1YmxpYyBzYW5pdGl6ZShvYmo6IGFueSkge1xuICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuO1xuICAgIHRoaXMuX3Nhbml0aXplT2JqKFtdLCBvYmopO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2FuaXRpemVPYmoocGF0aDogc3RyaW5nW10sIHBhcnRpYWxPYmo6IGFueSkge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcnRpYWxPYmopKSB7XG4gICAgICBpZiAodHlwZW9mKGtleSkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQga2V5ICgke2tleX0pIHRvIGJlIG9mIHR5cGUgJ3N0cmluZycsIGJ1dCBnb3QgJyR7dHlwZW9mKGtleSl9J2ApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuYWxsb3dsaXN0ZWRLZXlzLmluY2x1ZGVzKGtleSkgJiYgIVNhZmVSZXZpdmVyLkxFR0FMX0NIQVJTLnRlc3Qoa2V5KSkge1xuICAgICAgICAvLyBrZXlzIGNhbm5vdCBiZSBzdHJpcHBlZCBzbyB3ZSBoYXZlIHRvIHRocm93IC0gdGhhdHMgb2ssIHdlIGRvbid0IHdhbnQgdG8gcGFyc2Ugc3VjaCBkb2NzIGF0IGFsbFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEtleSAnJHtrZXl9JyBjb250YWlucyBub24gc3RhbmRhcmQgY2hhcmFjdGVycyAoTXVzdCBtYXRjaCByZWdleCAnJHtTYWZlUmV2aXZlci5MRUdBTF9DSEFSU30nKWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjaGlsZFBhdGggPSBwYXRoLmNvbmNhdChba2V5XSk7XG5cbiAgICAgIGlmICh0eXBlb2YodmFsdWUpID09PSAnc3RyaW5nJykge1xuICAgICAgICBwYXJ0aWFsT2JqW2tleV0gPSB0aGlzLnNhbml0aXplVmFsdWUoY2hpbGRQYXRoLCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZih2YWx1ZSkgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuX3Nhbml0aXplT2JqKGNoaWxkUGF0aCwgdmFsdWUpOyAvLyByZWN1cnNpdmUgY2FsbFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
package/lib/upgrades.js CHANGED
@@ -15,15 +15,26 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getLatestVersion = exports.upgradeAvailable = void 0;
36
+ exports.upgradeAvailable = upgradeAvailable;
37
+ exports.getLatestVersion = getLatestVersion;
27
38
  const os_1 = require("os");
28
39
  const path_1 = require("path");
29
40
  const cdk8s = __importStar(require("cdk8s"));
@@ -32,7 +43,7 @@ const _fs_1 = require("./_fs");
32
43
  // eslint-disable-next-line @typescript-eslint/no-require-imports
33
44
  const pkg = require('../package.json');
34
45
  const CACHE = {
35
- cacheTtlSec: 60 * 30,
46
+ cacheTtlSec: 60 * 30, // 30min
36
47
  cacheFile: (0, path_1.join)((0, os_1.homedir)(), '.cdk8s-cli.version'),
37
48
  };
38
49
  /**
@@ -51,7 +62,6 @@ function upgradeAvailable() {
51
62
  return undefined;
52
63
  }
53
64
  }
54
- exports.upgradeAvailable = upgradeAvailable;
55
65
  /**
56
66
  * Returns the latest version of an npm module. The version is cached for 30min
57
67
  * to ~/.cdk8s-cli.version.
@@ -103,5 +113,4 @@ function getLatestVersion(module, options) {
103
113
  }
104
114
  }
105
115
  }
106
- exports.getLatestVersion = getLatestVersion;
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXBncmFkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBNkI7QUFDN0IsK0JBQTRCO0FBQzVCLDZDQUErQjtBQUMvQix1Q0FBa0Q7QUFDbEQsK0JBQTRCO0FBRTVCLGlFQUFpRTtBQUNqRSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUV2QyxNQUFNLEtBQUssR0FBRztJQUNaLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRTtJQUNwQixTQUFTLEVBQUUsSUFBQSxXQUFJLEVBQUMsSUFBQSxZQUFPLEdBQUUsRUFBRSxvQkFBb0IsQ0FBQztDQUNqRCxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsZ0JBQWdCO0lBQzlCLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakQsSUFBSSxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRTtRQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDekM7U0FBTTtRQUNMLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQztBQVBELDRDQU9DO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsT0FBbUQ7SUFDbEcsSUFBSSxNQUFNLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLElBQUk7WUFDRixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsTUFBTSxTQUFTLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1NBQzFCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELDhDQUE4QztRQUM5QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDcEI7SUFFRCxPQUFPLE1BQU0sQ0FBQztJQUVkLFNBQVMsU0FBUztRQUNoQixJQUFJO1lBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBQSxtQkFBUSxFQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDdkQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFO2dCQUNyQyxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUVELE9BQU8sSUFBQSx1QkFBWSxFQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDeEQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVELFNBQVMsVUFBVSxDQUFDLE9BQWU7UUFDakMsSUFBSTtZQUNGLFNBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvQztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTztTQUNSO0lBQ0gsQ0FBQztBQUNILENBQUM7QUE1Q0QsNENBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaG9tZWRpciB9IGZyb20gJ29zJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNkazhzIGZyb20gJ2NkazhzJztcbmltcG9ydCB7IHJlYWRGaWxlU3luYywgc3RhdFN5bmMgfSBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBfZnMgfSBmcm9tICcuL19mcyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBwa2cgPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKTtcblxuY29uc3QgQ0FDSEUgPSB7XG4gIGNhY2hlVHRsU2VjOiA2MCAqIDMwLCAvLyAzMG1pblxuICBjYWNoZUZpbGU6IGpvaW4oaG9tZWRpcigpLCAnLmNkazhzLWNsaS52ZXJzaW9uJyksXG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGVyZSBpcyBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBDTEkgYXZhaWxhYmxlIG9uIG5wbS5cbiAqXG4gKiBAcmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGVyZSBpcyBubyB1cGdyYWRlIGF2YWlsYWJsZS4gSWYgdGhlcmUgaXMgYSBuZXdcbiAqIHZlcnNpb24sIHJldHVybnMgYW4gb2JqZWN0IHdpdGggYGxhdGVzdGAgKHRoZSBsYXRlc3QgdmVyc2lvbikgYW5kIGBjdXJyZW50YFxuICogKHRoZSBjdXJyZW50IHZlcnNpb24pLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBncmFkZUF2YWlsYWJsZSgpIHtcbiAgY29uc3QgbGF0ZXN0ID0gZ2V0TGF0ZXN0VmVyc2lvbihwa2cubmFtZSwgQ0FDSEUpO1xuICBpZiAobGF0ZXN0ICE9PSBwa2cudmVyc2lvbikge1xuICAgIHJldHVybiB7IGxhdGVzdCwgY3VycmVudDogcGtnLnZlcnNpb24gfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgYW4gbnBtIG1vZHVsZS4gVGhlIHZlcnNpb24gaXMgY2FjaGVkIGZvciAzMG1pblxuICogdG8gfi8uY2RrOHMtY2xpLnZlcnNpb24uXG4gKlxuICogTmV2ZXIgdGhyb3dzLlxuICpcbiAqIEBwYXJhbSBtb2R1bGUgVGhlIG1vZHVsZSBuYW1lXG4gKiBAcGFyYW0gb3B0aW9ucyBjYWNoZSBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uKG1vZHVsZTogc3RyaW5nLCBvcHRpb25zOiB7IGNhY2hlRmlsZTogc3RyaW5nOyBjYWNoZVR0bFNlYzogbnVtYmVyIH0pIHtcbiAgbGV0IGxhdGVzdCA9IHJlYWRDYWNoZSgpO1xuICBpZiAoIWxhdGVzdCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBpbmZvID0gY2RrOHMuWWFtbC5sb2FkKGBodHRwOi8vcmVnaXN0cnkubnBtanMub3JnLyR7bW9kdWxlfS9sYXRlc3RgKTtcbiAgICAgIGlmICghaW5mbyB8fCBpbmZvLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGxhdGVzdCA9IGluZm9bMF0udmVyc2lvbjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIGNhbm5vdCBkZXRlcm1pbmUgdmVyc2lvbiwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgICBpZiAoIWxhdGVzdCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB3cml0ZUNhY2hlKGxhdGVzdCk7XG4gIH1cblxuICByZXR1cm4gbGF0ZXN0O1xuXG4gIGZ1bmN0aW9uIHJlYWRDYWNoZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBsYXN0TW9kaWZpZWQgPSBzdGF0U3luYyhvcHRpb25zLmNhY2hlRmlsZSkubXRpbWU7XG4gICAgICBjb25zdCBkaWZmID0gKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSAtIGxhc3RNb2RpZmllZC5nZXRUaW1lKCk7XG4gICAgICBpZiAoZGlmZiA+IG9wdGlvbnMuY2FjaGVUdGxTZWMgKiAxMDAwKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZWFkRmlsZVN5bmMob3B0aW9ucy5jYWNoZUZpbGUsICd1dGYtOCcpLnRyaW0oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHdyaXRlQ2FjaGUodmVyc2lvbjogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIF9mcy53cml0ZUZpbGVTeW5jKG9wdGlvbnMuY2FjaGVGaWxlLCB2ZXJzaW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG5cbiJdfQ==
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXBncmFkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkEsNENBT0M7QUFXRCw0Q0E0Q0M7QUFuRkQsMkJBQTZCO0FBQzdCLCtCQUE0QjtBQUM1Qiw2Q0FBK0I7QUFDL0IsdUNBQWtEO0FBQ2xELCtCQUE0QjtBQUU1QixpRUFBaUU7QUFDakUsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFdkMsTUFBTSxLQUFLLEdBQUc7SUFDWixXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxRQUFRO0lBQzlCLFNBQVMsRUFBRSxJQUFBLFdBQUksRUFBQyxJQUFBLFlBQU8sR0FBRSxFQUFFLG9CQUFvQixDQUFDO0NBQ2pELENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxTQUFnQixnQkFBZ0I7SUFDOUIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRCxJQUFJLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFDLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxPQUFtRDtJQUNsRyxJQUFJLE1BQU0sR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsTUFBTSxTQUFTLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7WUFDRCxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUMzQixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7SUFFZCxTQUFTLFNBQVM7UUFDaEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxZQUFZLEdBQUcsSUFBQSxtQkFBUSxFQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDdkQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7WUFFRCxPQUFPLElBQUEsdUJBQVksRUFBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTLFVBQVUsQ0FBQyxPQUFlO1FBQ2pDLElBQUksQ0FBQztZQUNILFNBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU87UUFDVCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBob21lZGlyIH0gZnJvbSAnb3MnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2RrOHMgZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCBzdGF0U3luYyB9IGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IF9mcyB9IGZyb20gJy4vX2ZzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IHBrZyA9IHJlcXVpcmUoJy4uL3BhY2thZ2UuanNvbicpO1xuXG5jb25zdCBDQUNIRSA9IHtcbiAgY2FjaGVUdGxTZWM6IDYwICogMzAsIC8vIDMwbWluXG4gIGNhY2hlRmlsZTogam9pbihob21lZGlyKCksICcuY2RrOHMtY2xpLnZlcnNpb24nKSxcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZXJlIGlzIGEgbmV3IHZlcnNpb24gb2YgdGhlIENMSSBhdmFpbGFibGUgb24gbnBtLlxuICpcbiAqIEByZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZXJlIGlzIG5vIHVwZ3JhZGUgYXZhaWxhYmxlLiBJZiB0aGVyZSBpcyBhIG5ld1xuICogdmVyc2lvbiwgcmV0dXJucyBhbiBvYmplY3Qgd2l0aCBgbGF0ZXN0YCAodGhlIGxhdGVzdCB2ZXJzaW9uKSBhbmQgYGN1cnJlbnRgXG4gKiAodGhlIGN1cnJlbnQgdmVyc2lvbikuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGdyYWRlQXZhaWxhYmxlKCkge1xuICBjb25zdCBsYXRlc3QgPSBnZXRMYXRlc3RWZXJzaW9uKHBrZy5uYW1lLCBDQUNIRSk7XG4gIGlmIChsYXRlc3QgIT09IHBrZy52ZXJzaW9uKSB7XG4gICAgcmV0dXJuIHsgbGF0ZXN0LCBjdXJyZW50OiBwa2cudmVyc2lvbiB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBhbiBucG0gbW9kdWxlLiBUaGUgdmVyc2lvbiBpcyBjYWNoZWQgZm9yIDMwbWluXG4gKiB0byB+Ly5jZGs4cy1jbGkudmVyc2lvbi5cbiAqXG4gKiBOZXZlciB0aHJvd3MuXG4gKlxuICogQHBhcmFtIG1vZHVsZSBUaGUgbW9kdWxlIG5hbWVcbiAqIEBwYXJhbSBvcHRpb25zIGNhY2hlIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExhdGVzdFZlcnNpb24obW9kdWxlOiBzdHJpbmcsIG9wdGlvbnM6IHsgY2FjaGVGaWxlOiBzdHJpbmc7IGNhY2hlVHRsU2VjOiBudW1iZXIgfSkge1xuICBsZXQgbGF0ZXN0ID0gcmVhZENhY2hlKCk7XG4gIGlmICghbGF0ZXN0KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGluZm8gPSBjZGs4cy5ZYW1sLmxvYWQoYGh0dHA6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvJHttb2R1bGV9L2xhdGVzdGApO1xuICAgICAgaWYgKCFpbmZvIHx8IGluZm8ubGVuZ3RoIDwgMSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgbGF0ZXN0ID0gaW5mb1swXS52ZXJzaW9uO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gY2Fubm90IGRldGVybWluZSB2ZXJzaW9uLCByZXR1cm4gdW5kZWZpbmVkLlxuICAgIGlmICghbGF0ZXN0KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHdyaXRlQ2FjaGUobGF0ZXN0KTtcbiAgfVxuXG4gIHJldHVybiBsYXRlc3Q7XG5cbiAgZnVuY3Rpb24gcmVhZENhY2hlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxhc3RNb2RpZmllZCA9IHN0YXRTeW5jKG9wdGlvbnMuY2FjaGVGaWxlKS5tdGltZTtcbiAgICAgIGNvbnN0IGRpZmYgPSAobmV3IERhdGUoKS5nZXRUaW1lKCkpIC0gbGFzdE1vZGlmaWVkLmdldFRpbWUoKTtcbiAgICAgIGlmIChkaWZmID4gb3B0aW9ucy5jYWNoZVR0bFNlYyAqIDEwMDApIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlYWRGaWxlU3luYyhvcHRpb25zLmNhY2hlRmlsZSwgJ3V0Zi04JykudHJpbSgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gd3JpdGVDYWNoZSh2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgX2ZzLndyaXRlRmlsZVN5bmMob3B0aW9ucy5jYWNoZUZpbGUsIHZlcnNpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuIl19
package/lib/util.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { SpawnOptions } from 'child_process';
4
2
  import { BinaryToTextEncoding } from 'crypto';
5
3
  import { ImportSpec, ValidationConfig } from './config';