cdk8s-cli 2.132.0 → 2.133.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -172,7 +172,7 @@ async function createHelmScaffolding(apiVersion, chartVersion, outdir) {
172
172
  }
173
173
  async function addCrdsToHelmChart(chartDir) {
174
174
  var _a;
175
- const crds = ((_a = config === null || config === void 0 ? void 0 : config.imports) !== null && _a !== void 0 ? _a : []).filter((imprt) => !(0, util_1.isK8sImport)(imprt));
175
+ const crds = ((_a = config === null || config === void 0 ? void 0 : config.imports) !== null && _a !== void 0 ? _a : []).filter((imprt) => (!(0, util_1.isK8sImport)(imprt) && !(0, util_1.isHelmImport)(imprt)));
176
176
  for (const crd of crds) {
177
177
  const importSpec = (0, util_1.parseImports)(crd);
178
178
  const importedCrdDef = await (0, dispatch_1.matchImporter)(importSpec, process.argv);
@@ -185,4 +185,4 @@ function getDefaultChartApiVersion(synthFormat) {
185
185
  return (synthFormat === config_1.SynthesisFormat.HELM) ? config_1.HelmChartApiVersion.V2 : undefined;
186
186
  }
187
187
  module.exports = new Command();
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3ludGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QixnREFBd0I7QUFDeEIsNkNBQStCO0FBQy9CLCtDQUFpQztBQUNqQyxtQ0FBZ0M7QUFDaEMsMkNBQTZCO0FBRTdCLHlDQUFzRztBQUV0RyxvREFBc0Q7QUFDdEQscURBQXVEO0FBQ3ZELHFDQUFpSjtBQUVqSixNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUM7QUFDckMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDO0FBQzNCLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDO0FBQ2xDLE1BQU0sbUJBQW1CLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRXpFLE1BQU0sTUFBTSxHQUFHLElBQUEsdUJBQWMsR0FBRSxDQUFDO0FBRWhDLE1BQU0sT0FBTztJQUFiO1FBQ2tCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsYUFBUSxHQUFHLDhEQUE4RCxDQUFDO1FBQzFFLFlBQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXpCLFlBQU8sR0FBRyxDQUFDLElBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUk7YUFDakQsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLDhDQUE4QyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQzthQUN6SCxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFB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QUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgeyBzc2NhZmYgfSBmcm9tICdzc2NhZmYnO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tICd5YW1sJztcbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCB7IEhlbG1DaGFydEFwaVZlcnNpb24sIFN5bnRoZXNpc0Zvcm1hdCwgVmFsaWRhdGlvbkNvbmZpZywgcmVhZENvbmZpZ1N5bmMgfSBmcm9tICcuLi8uLi9jb25maWcnO1xuaW1wb3J0IHsgSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vaW1wb3J0L2NyZCc7XG5pbXBvcnQgeyBtYXRjaEltcG9ydGVyIH0gZnJvbSAnLi4vLi4vaW1wb3J0L2Rpc3BhdGNoJztcbmltcG9ydCB7IFBsdWdpbk1hbmFnZXIgfSBmcm9tICcuLi8uLi9wbHVnaW5zL19tYW5hZ2VyJztcbmltcG9ydCB7IFN5bnRoZXNpemVkQXBwLCBjcmRzQXJlUHJlc2VudCwgZGVyaXZlRmlsZU5hbWUsIGRvd25sb2FkLCBpc0s4c0ltcG9ydCwgbWtkdGVtcCwgcGFyc2VJbXBvcnRzLCBzeW50aEFwcCwgdmFsaWRhdGVBcHAgfSBmcm9tICcuLi8uLi91dGlsJztcblxuY29uc3QgQ0hBUlRfWUFNTF9GSUxFID0gJ0NoYXJ0LnlhbWwnO1xuY29uc3QgUkVBRE1FID0gJ1JFQURNRS5tZCc7XG5jb25zdCBERUZBVUxUX09VVFBVVF9ESVIgPSAnZGlzdCc7XG5jb25zdCBERUZBVUxUX1BMVUdJTlNfRElSID0gcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgJy5jZGs4cycsICdwbHVnaW5zJyk7XG5cbmNvbnN0IGNvbmZpZyA9IHJlYWRDb25maWdTeW5jKCk7XG5cbmNsYXNzIENvbW1hbmQgaW1wbGVtZW50cyB5YXJncy5Db21tYW5kTW9kdWxlIHtcbiAgcHVibGljIHJlYWRvbmx5IGNvbW1hbmQgPSAnc3ludGgnO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpYmUgPSAnU3ludGhlc2l6ZXMgS3ViZXJuZXRlcyBtYW5pZmVzdHMgZm9yIGFsbCBjaGFydHMgaW4geW91ciBhcHAuJztcbiAgcHVibGljIHJlYWRvbmx5IGFsaWFzZXMgPSBbJ3N5bnRoZXNpemUnXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRlciA9IChhcmdzOiB5YXJncy5Bcmd2KSA9PiBhcmdzXG4gICAgLm9wdGlvbignYXBwJywgeyByZXF1aXJlZDogdHJ1ZSwgZGVmYXVsdDogY29uZmlnPy5hcHAsIGRlc2M6ICdDb21tYW5kIHRvIHVzZSBpbiBvcmRlciB0byBleGVjdXRlIGNkazhzIGFwcCcsIGFsaWFzOiAnYScgfSlcbiAgICAub3B0aW9uKCdvdXRwdXQnLCB7IHJlcXVpcmVkOiBmYWxzZSwgZGVzYzogJ091dHB1dCBkaXJlY3RvcnknLCBhbGlhczogJ28nIH0pXG4gICAgLm9wdGlvbignc3Rkb3V0JywgeyB0eXBlOiAnYm9vbGVhbicsIHJlcXVpcmVkOiBmYWxzZSwgZGVzYzogJ1dyaXRlIHN5bnRoZXNpemVkIG1hbmlmZXN0cyB0byBTVERPVVQgaW5zdGVhZCBvZiB0aGUgb3V0cHV0IGRpcmVjdG9yeScsIGFsaWFzOiAncCcgfSlcbiAgICAub3B0aW9uKCdwbHVnaW5zLWRpcicsIHsgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjOiAnRGlyZWN0b3J5IHRvIHN0b3JlIGNkazhzIHBsdWdpbnMuJyB9KVxuICAgIC5vcHRpb24oJ3ZhbGlkYXRlJywgeyB0eXBlOiAnYm9vbGVhbicsIHJlcXVpcmVkOiBmYWxzZSwgZGVzYzogJ0FwcGx5IHZhbGlkYXRpb24gcGx1Z2lucyBvbiB0aGUgcmVzdWx0aW5nIG1hbmlmZXN0cyAodXNlIC0tbm8tdmFsaWRhdGUgdG8gZGlzYWJsZSknIH0pXG4gICAgLm9wdGlvbigndmFsaWRhdGlvbi1yZXBvcnRzLW91dHB1dC1maWxlJywgeyByZXF1aXJlZDogZmFsc2UsIGRlc2M6ICdGaWxlIHRvIHdyaXRlIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsaWRhdGlvbiByZXBvcnRzIHRvJyB9KVxuICAgIC5vcHRpb24oJ2Zvcm1hdCcsIHsgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjOiAnU3ludGhlc2lzIGZvcm1hdCBmb3IgS3ViZXJuZXRlcyBtYW5pZmVzdHMuIFRoZSBkZWZhdWx0IHN5bnRoZXNpcyBmb3JtYXQgaXMgcGxhaW4ga3ViZXJuZXRlcyBtYW5pZmVzdHMuJywgdHlwZTogJ3N0cmluZycgfSlcbiAgICAub3B0aW9uKCdjaGFydC1hcGktdmVyc2lvbicsIHsgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjOiAnQ2hhcnQgQVBJIHZlcnNpb24gb2YgaGVsbSBjaGFydC4gVGhlIGRlZmF1bHQgdmFsdWUgd291bGQgYmUgXFwndjJcXCcgYXBpIHZlcnNpb24gd2hlbiBzeW50aGVzaXMgZm9ybWF0IGlzIGhlbG0uIFRoZXJlIGlzIG5vIGRlZmF1bHQgc2V0IHdoZW4gc3ludGhlc2lzIGZvcm1hdCBpcyBwbGFpbi4nLCB0eXBlOiAnc3RyaW5nJyB9KVxuICAgIC5vcHRpb24oJ2NoYXJ0LXZlcnNpb24nLCB7IHJlcXVpcmVkOiBmYWxzZSwgZGVzYzogJ0NoYXJ0IHZlcnNpb24gb2YgaGVsbSBjaGFydC4gVGhpcyBpcyByZXF1aXJlZCBpZiBzeW50aGVzaXMgZm9ybWF0IGlzIGhlbG0uJyB9KTtcblxuICBwdWJsaWMgYXN5bmMgaGFuZGxlcihhcmd2OiBhbnkpIHtcblxuICAgIGNvbnN0IGNvbW1hbmQgPSBhcmd2LmFwcDtcbiAgICBjb25zdCBzdGRvdXQgPSBhcmd2LnN0ZG91dDtcbiAgICBjb25zdCBvdXRkaXIgPSBhcmd2Lm91dHB1dCA/PyBjb25maWc/Lm91dHB1dCA/PyAoIXN0ZG91dCA/IERFRkFVTFRfT1VUUFVUX0RJUiA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdmFsaWRhdGUgPSBhcmd2LnZhbGlkYXRlID8/IHRydWU7XG4gICAgY29uc3QgcmVwb3J0RmlsZSA9IGFyZ3YudmFsaWRhdGlvblJlcG9ydHNPdXRwdXRGaWxlO1xuICAgIGNvbnN0IHBsdWdpbnNEaXIgPSBhcmd2LnBsdWdpbnNEaXIgPz8gY29uZmlnPy5wbHVnaW5zRGlyZWN0b3J5ID8/IERFRkFVTFRfUExVR0lOU19ESVI7XG4gICAgY29uc3QgZm9ybWF0ID0gYXJndi5mb3JtYXQgPz8gY29uZmlnPy5zeW50aENvbmZpZz8uZm9ybWF0ID8/IFN5bnRoZXNpc0Zvcm1hdC5QTEFJTjtcbiAgICBjb25zdCBjaGFydFZlcnNpb24gPSBhcmd2LmNoYXJ0VmVyc2lvbiA/PyBjb25maWc/LnN5bnRoQ29uZmlnPy5jaGFydFZlcnNpb247XG4gICAgY29uc3QgY2hhcnRBcGlWZXJzaW9uID0gYXJndi5jaGFydEFwaVZlcnNpb24gPz8gY29uZmlnPy5zeW50aENvbmZpZz8uY2hhcnRBcGlWZXJzaW9uID8/IGdldERlZmF1bHRDaGFydEFwaVZlcnNpb24oZm9ybWF0KTtcblxuICAgIGlmIChvdXRkaXIgJiYgb3V0ZGlyICE9PSBjb25maWc/Lm91dHB1dCAmJiBzdGRvdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignXFwnLS1vdXRwdXRcXCcgYW5kIFxcJy0tc3Rkb3V0XFwnIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIFBsZWFzZSBvbmx5IHVzZSBvbmUuJyk7XG4gICAgfVxuXG4gICAgaWYgKG91dGRpcikge1xuICAgICAgZnMucm1TeW5jKG91dGRpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGlmIChmb3JtYXQgIT0gU3ludGhlc2lzRm9ybWF0LlBMQUlOICYmIGZvcm1hdCAhPSBTeW50aGVzaXNGb3JtYXQuSEVMTSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3UgbmVlZCB0byBzcGVjaWZ5IHN5bnRoZXNpcyBmb3JtYXQgZWl0aGVyIGFzICR7U3ludGhlc2lzRm9ybWF0LlBMQUlOfSBvciAke1N5bnRoZXNpc0Zvcm1hdC5IRUxNfSBidXQgcmVjZWl2ZWQ6ICR7Zm9ybWF0fWApO1xuICAgIH1cblxuICAgIGlmIChjaGFydEFwaVZlcnNpb24gJiYgKGNoYXJ0QXBpVmVyc2lvbiAhPSBIZWxtQ2hhcnRBcGlWZXJzaW9uLlYxICYmIGNoYXJ0QXBpVmVyc2lvbiAhPSBIZWxtQ2hhcnRBcGlWZXJzaW9uLlYyKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3UgbmVlZCB0byBzcGVjaWZ5IGhlbG0gY2hhcnQgYXBpIHZlcnNpb24gZWl0aGVyIGFzICR7SGVsbUNoYXJ0QXBpVmVyc2lvbi5WMX0gb3IgJHtIZWxtQ2hhcnRBcGlWZXJzaW9uLlYyfSBidXQgcmVjZWl2ZWQ6ICR7Y2hhcnRBcGlWZXJzaW9ufWApO1xuICAgIH1cblxuICAgIGlmIChmb3JtYXQgPT09IFN5bnRoZXNpc0Zvcm1hdC5IRUxNICYmICFjaGFydFZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG5lZWQgdG8gc3BlY2lmeSBcXCctLWNoYXJ0LXZlcnNpb25cXCcgd2hlbiBcXCctLWZvcm1hdFxcJyBpcyBzZXQgYXMgXFwnaGVsbVxcJy4nKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhcnRWZXJzaW9uICYmICFzZW12ZXIudmFsaWQoY2hhcnRWZXJzaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgdmFsdWUgc3BlY2lmaWVkIGZvciAnLS1jaGFydC12ZXJzaW9uJzogJHtjaGFydFZlcnNpb259IGRvZXMgbm90IGZvbGxvdyBTZW1WZXItMihodHRwczovL3NlbXZlci5vcmcvKS5gKTtcbiAgICB9XG5cbiAgICBpZiAoc3Rkb3V0ICYmIGZvcm1hdCA9PT0gU3ludGhlc2lzRm9ybWF0LkhFTE0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSGVsbSBmb3JtYXQgc3ludGhlc2lzIGRvZXMgbm90IHN1cHBvcnQgXFwnc3Rkb3V0XFwnLiBQbGVhc2UgdXNlIFxcJ291dGRpclxcJyBpbnN0ZWFkLicpO1xuICAgIH1cblxuICAgIGlmIChmb3JtYXQgPT09IFN5bnRoZXNpc0Zvcm1hdC5QTEFJTiAmJiBjaGFydEFwaVZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG5lZWQgdG8gc3BlY2lmeSBcXCctLWZvcm1hdFxcJyBhcyBcXCdoZWxtXFwnIHdoZW4gXFwnLS1jaGFydC1hcGktdmVyc2lvblxcJyBpcyBzZXQuJyk7XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdCA9PT0gU3ludGhlc2lzRm9ybWF0LlBMQUlOICYmIGNoYXJ0VmVyc2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbmVlZCB0byBzcGVjaWZ5IFxcJy0tZm9ybWF0XFwnIGFzIFxcJ2hlbG1cXCcgd2hlbiBcXCctLWNoYXJ0LXZlcnNpb25cXCcgaXMgc2V0LicpO1xuICAgIH1cblxuICAgIGlmIChjaGFydEFwaVZlcnNpb24gPT09IEhlbG1DaGFydEFwaVZlcnNpb24uVjEgJiYgY3Jkc0FyZVByZXNlbnQoY29uZmlnPy5pbXBvcnRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3VyIGFwcGxpY2F0aW9uIHVzZXMgQ1JEcywgd2hpY2ggYXJlIG5vdCBzdXBwb3J0ZWQgd2hlbiAnLS1jaGFydC1hcGktdmVyc2lvbicgaXMgc2V0IHRvICR7SGVsbUNoYXJ0QXBpVmVyc2lvbi5WMX0uIFBsZWFzZSBlaXRoZXIgc2V0ICctLWNoYXJ0LWFwaS12ZXJzaW9uJyB0byAke0hlbG1DaGFydEFwaVZlcnNpb24uVjJ9LCBvciByZW1vdmUgdGhlIENSRHMgZnJvbSB5b3VyIGNkazhzLnlhbWwgY29uZmlndXJhdGlvbiBmaWxlYCk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGlvbnMgPSB2YWxpZGF0ZSA/IGF3YWl0IGZldGNoVmFsaWRhdGlvbnMoKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCByZWNvcmRDb25zdHJ1Y3RNZXRhZGF0YSA9ICEodmFsaWRhdGlvbnMgPT0gdW5kZWZpbmVkIHx8IHZhbGlkYXRpb25zLmxlbmd0aCA9PSAwKTtcblxuICAgIGlmIChzdGRvdXQpIHtcbiAgICAgIGF3YWl0IG1rZHRlbXAoYXN5bmMgdGVtcERpciA9PiB7XG4gICAgICAgIGNvbnN0IGFwcCA9IGF3YWl0IHN5bnRoQXBwKGNvbW1hbmQsIHRlbXBEaXIsIHN0ZG91dCwgcmVjb3JkQ29uc3RydWN0TWV0YWRhdGEpO1xuICAgICAgICBmb3IgKGNvbnN0IGYgb2YgYXBwLm1hbmlmZXN0cykge1xuICAgICAgICAgIGZzLmNyZWF0ZVJlYWRTdHJlYW0oZikucGlwZShwcm9jZXNzLnN0ZG91dCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgY29uc3QgcGx1Z2luTWFuYWdlciA9IG5ldyBQbHVnaW5NYW5hZ2VyKHBsdWdpbnNEaXIpO1xuICAgICAgICAgIGF3YWl0IHZhbGlkYXRlQXBwKGFwcCwgc3Rkb3V0LCB2YWxpZGF0aW9ucywgcGx1Z2luTWFuYWdlciwgcmVwb3J0RmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgbWFuaWZlc3RzOiBTeW50aGVzaXplZEFwcDtcblxuICAgICAgaWYgKGZvcm1hdCA9PT0gU3ludGhlc2lzRm9ybWF0LkhFTE0pIHtcbiAgICAgICAgYXdhaXQgY3JlYXRlSGVsbVNjYWZmb2xkaW5nKGNoYXJ0QXBpVmVyc2lvbiwgY2hhcnRWZXJzaW9uLCBvdXRkaXIpO1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZURpciA9IHBhdGguam9pbihvdXRkaXIsICd0ZW1wbGF0ZXMnKTtcblxuICAgICAgICBtYW5pZmVzdHMgPSBhd2FpdCBzeW50aEFwcChjb21tYW5kLCB0ZW1wbGF0ZURpciwgc3Rkb3V0LCByZWNvcmRDb25zdHJ1Y3RNZXRhZGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtYW5pZmVzdHMgPSBhd2FpdCBzeW50aEFwcChjb21tYW5kLCBvdXRkaXIsIHN0ZG91dCwgcmVjb3JkQ29uc3RydWN0TWV0YWRhdGEpO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcGx1Z2luTWFuYWdlciA9IG5ldyBQbHVnaW5NYW5hZ2VyKHBsdWdpbnNEaXIpO1xuICAgICAgICBhd2FpdCB2YWxpZGF0ZUFwcChtYW5pZmVzdHMsIHN0ZG91dCwgdmFsaWRhdGlvbnMsIHBsdWdpbk1hbmFnZXIsIHJlcG9ydEZpbGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVmFsaWRhdGlvbnMoKTogUHJvbWlzZTxWYWxpZGF0aW9uQ29uZmlnW10gfCB1bmRlZmluZWQ+IHtcbiAgaWYgKHR5cGVvZihjb25maWc/LnZhbGlkYXRpb25zKSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgZG93bmxvYWQoY29uZmlnLnZhbGlkYXRpb25zKTtcbiAgICByZXR1cm4geWFtbC5wYXJzZShjb250ZW50KSBhcyBWYWxpZGF0aW9uQ29uZmlnW107XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNvbmZpZz8udmFsaWRhdGlvbnM7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSGVsbVNjYWZmb2xkaW5nKGFwaVZlcnNpb246IHN0cmluZywgY2hhcnRWZXJzaW9uOiBzdHJpbmcsIG91dGRpcjogc3RyaW5nKSB7XG4gIGNvbnN0IHRlbXBIZWxtU3RydWN0dXJlID0gY3JlYXRlRm9sZGVyU3RydWN0dXJlKCk7XG5cbiAgY29uc3Qgc3Vic3RpdHV0ZVZhbHVlcyA9IHtcbiAgICBhcGlWZXJzaW9uOiBhcGlWZXJzaW9uLFxuICAgIHZlcnNpb246IGNoYXJ0VmVyc2lvbixcbiAgICBhcHA6IHBhdGguYmFzZW5hbWUocGF0aC5yZXNvbHZlKCkpLFxuICB9O1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgc3NjYWZmKHRlbXBIZWxtU3RydWN0dXJlLCBvdXRkaXIsIHN1YnN0aXR1dGVWYWx1ZXMpO1xuICB9IGZpbmFsbHkge1xuICAgIGZzLnJtU3luYyh0ZW1wSGVsbVN0cnVjdHVyZSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH1cblxuXG4gIGlmIChhcGlWZXJzaW9uID09PSBIZWxtQ2hhcnRBcGlWZXJzaW9uLlYyICYmIGNyZHNBcmVQcmVzZW50KGNvbmZpZz8uaW1wb3J0cykpIHtcbiAgICBhd2FpdCBhZGRDcmRzVG9IZWxtQ2hhcnQob3V0ZGlyKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUZvbGRlclN0cnVjdHVyZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJvb3QgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdoZWxtLXNjYWZmb2xkaW5nLScpKTtcblxuICAgIGZzLm1rZGlyU3luYyhwYXRoLmpvaW4ocm9vdCwgJ3RlbXBsYXRlcycpKTtcblxuICAgIGNvbnN0IGNoYXJ0WWFtbEZpbGUgPSB7XG4gICAgICBhcGlWZXJzaW9uOiAne3sgYXBpVmVyc2lvbiB9fScsXG4gICAgICBuYW1lOiAne3sgYXBwIH19JyxcbiAgICAgIHZlcnNpb246ICd7eyB2ZXJzaW9uIH19JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGVkIGNoYXJ0IGZvciB7eyBhcHAgfX0nLFxuICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uJyxcbiAgICB9O1xuXG4gICAgZnMub3V0cHV0RmlsZVN5bmMocGF0aC5qb2luKHJvb3QsIENIQVJUX1lBTUxfRklMRSksIHlhbWwuc3RyaW5naWZ5KGNoYXJ0WWFtbEZpbGUpKTtcblxuICAgIGNvbnN0IHJlYWRtZUZpbGUgPSAnVGhpcyBIZWxtIGNoYXJ0IGlzIGdlbmVyYXRlZCB1c2luZyBjZGs4cy4gQW55IG1hbnVhbCBjaGFuZ2VzIHRvIHRoZSBjaGFydCB3b3VsZCBiZSBkaXNjYXJkZWQgb25jZSBjZGs4cyBhcHAgaXMgc3ludGhlc2l6ZWQgYWdhaW4gd2l0aCBgLS1mb3JtYXQgaGVsbWAuJztcblxuICAgIGZzLm91dHB1dEZpbGVTeW5jKHBhdGguam9pbihyb290LCBSRUFETUUpLCByZWFkbWVGaWxlKTtcblxuICAgIHJldHVybiByb290O1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFkZENyZHNUb0hlbG1DaGFydChjaGFydERpcjogc3RyaW5nKSB7XG4gIGNvbnN0IGNyZHMgPSAoY29uZmlnPy5pbXBvcnRzID8/IFtdKS5maWx0ZXIoKGltcHJ0KSA9PiAhaXNLOHNJbXBvcnQoaW1wcnQpKTtcblxuICBmb3IgKGNvbnN0IGNyZCBvZiBjcmRzKSB7XG4gICAgY29uc3QgaW1wb3J0U3BlYyA9IHBhcnNlSW1wb3J0cyhjcmQpO1xuICAgIGNvbnN0IGltcG9ydGVkQ3JkRGVmID0gYXdhaXQgbWF0Y2hJbXBvcnRlcihpbXBvcnRTcGVjLCBwcm9jZXNzLmFyZ3YpIGFzIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbjtcbiAgICBjb25zdCBtYW5pZmVzdCA9IGltcG9ydGVkQ3JkRGVmLnJhd01hbmlmZXN0O1xuXG4gICAgY29uc3QgZmlsZW5hbWUgPSBkZXJpdmVGaWxlTmFtZShpbXBvcnRTcGVjLnNvdXJjZSk7XG5cbiAgICBmcy5vdXRwdXRGaWxlU3luYyhwYXRoLmpvaW4oY2hhcnREaXIsICdjcmRzJywgYCR7ZmlsZW5hbWV9LnlhbWxgKSwgbWFuaWZlc3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRDaGFydEFwaVZlcnNpb24oc3ludGhGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiAoc3ludGhGb3JtYXQgPT09IFN5bnRoZXNpc0Zvcm1hdC5IRUxNKSA/IEhlbG1DaGFydEFwaVZlcnNpb24uVjI6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgQ29tbWFuZCgpOyJdfQ==
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3ludGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QixnREFBd0I7QUFDeEIsNkNBQStCO0FBQy9CLCtDQUFpQztBQUNqQyxtQ0FBZ0M7QUFDaEMsMkNBQTZCO0FBRTdCLHlDQUFzRztBQUV0RyxvREFBc0Q7QUFDdEQscURBQXVEO0FBQ3ZELHFDQUErSjtBQUUvSixNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUM7QUFDckMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDO0FBQzNCLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDO0FBQ2xDLE1BQU0sbUJBQW1CLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRXpFLE1BQU0sTUFBTSxHQUFHLElBQUEsdUJBQWMsR0FBRSxDQUFDO0FBRWhDLE1BQU0sT0FBTztJQUFiO1FBQ2tCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsYUFBUSxHQUFHLDhEQUE4RCxDQUFDO1FBQzFFLFlBQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXpCLFlBQU8sR0FBRyxDQUFDLElBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUk7YUFDakQsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLDhDQUE4QyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQzthQUN6SCxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFB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QUFDO0FBQ3BGLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgc3NjYWZmIH0gZnJvbSAnc3NjYWZmJztcbmltcG9ydCAqIGFzIHlhbWwgZnJvbSAneWFtbCc7XG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5pbXBvcnQgeyBIZWxtQ2hhcnRBcGlWZXJzaW9uLCBTeW50aGVzaXNGb3JtYXQsIFZhbGlkYXRpb25Db25maWcsIHJlYWRDb25maWdTeW5jIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL2ltcG9ydC9jcmQnO1xuaW1wb3J0IHsgbWF0Y2hJbXBvcnRlciB9IGZyb20gJy4uLy4uL2ltcG9ydC9kaXNwYXRjaCc7XG5pbXBvcnQgeyBQbHVnaW5NYW5hZ2VyIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy9fbWFuYWdlcic7XG5pbXBvcnQgeyBTeW50aGVzaXplZEFwcCwgY3Jkc0FyZVByZXNlbnQsIGRlcml2ZUZpbGVOYW1lLCBkb3dubG9hZCwgaXNIZWxtSW1wb3J0LCBpc0s4c0ltcG9ydCwgbWtkdGVtcCwgcGFyc2VJbXBvcnRzLCBzeW50aEFwcCwgdmFsaWRhdGVBcHAgfSBmcm9tICcuLi8uLi91dGlsJztcblxuY29uc3QgQ0hBUlRfWUFNTF9GSUxFID0gJ0NoYXJ0LnlhbWwnO1xuY29uc3QgUkVBRE1FID0gJ1JFQURNRS5tZCc7XG5jb25zdCBERUZBVUxUX09VVFBVVF9ESVIgPSAnZGlzdCc7XG5jb25zdCBERUZBVUxUX1BMVUdJTlNfRElSID0gcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgJy5jZGs4cycsICdwbHVnaW5zJyk7XG5cbmNvbnN0IGNvbmZpZyA9IHJlYWRDb25maWdTeW5jKCk7XG5cbmNsYXNzIENvbW1hbmQgaW1wbGVtZW50cyB5YXJncy5Db21tYW5kTW9kdWxlIHtcbiAgcHVibGljIHJlYWRvbmx5IGNvbW1hbmQgPSAnc3ludGgnO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpYmUgPSAnU3ludGhlc2l6ZXMgS3ViZXJuZXRlcyBtYW5pZmVzdHMgZm9yIGFsbCBjaGFydHMgaW4geW91ciBhcHAuJztcbiAgcHVibGljIHJlYWRvbmx5IGFsaWFzZXMgPSBbJ3N5bnRoZXNpemUnXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRlciA9IChhcmdzOiB5YXJncy5Bcmd2KSA9PiBhcmdzXG4gICAgLm9wdGlvbignYXBwJywgeyByZXF1aXJlZDogdHJ1ZSwgZGVmYXVsdDogY29uZmlnPy5hcHAsIGRlc2M6ICdDb21tYW5kIHRvIHVzZSBpbiBvcmRlciB0byBleGVjdXRlIGNkazhzIGFwcCcsIGFsaWFzOiAnYScgfSlcbiAgICAub3B0aW9uKCdvdXRwdXQnLCB7IHJlcXVpcmVkOiBmYWxzZSwgZGVzYzogJ091dHB1dCBkaXJlY3RvcnknLCBhbGlhczogJ28nIH0pXG4gICAgLm9wdGlvbignc3Rkb3V0JywgeyB0eXBlOiAnYm9vbGVhbicsIHJlcXVpcmVkOiBmYWxzZSwgZGVzYzogJ1dyaXRlIHN5bnRoZXNpemVkIG1hbmlmZXN0cyB0byBTVERPVVQgaW5zdGVhZCBvZiB0aGUgb3V0cHV0IGRpcmVjdG9yeScsIGFsaWFzOiAncCcgfSlcbiAgICAub3B0aW9uKCdwbHVnaW5zLWRpcicsIHsgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjOiAnRGlyZWN0b3J5IHRvIHN0b3JlIGNkazhzIHBsdWdpbnMuJyB9KVxuICAgIC5vcHRpb24oJ3ZhbGlkYXRlJywgeyB0eXBlOiAnYm9vbGVhbicsIHJlcXVpcmVkOiBmYWxzZSwgZGVzYzogJ0FwcGx5IHZhbGlkYXRpb24gcGx1Z2lucyBvbiB0aGUgcmVzdWx0aW5nIG1hbmlmZXN0cyAodXNlIC0tbm8tdmFsaWRhdGUgdG8gZGlzYWJsZSknIH0pXG4gICAgLm9wdGlvbigndmFsaWRhdGlvbi1yZXBvcnRzLW91dHB1dC1maWxlJywgeyByZXF1aXJlZDogZmFsc2UsIGRlc2M6ICdGaWxlIHRvIHdyaXRlIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsaWRhdGlvbiByZXBvcnRzIHRvJyB9KVxuICAgIC5vcHRpb24oJ2Zvcm1hdCcsIHsgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjOiAnU3ludGhlc2lzIGZvcm1hdCBmb3IgS3ViZXJuZXRlcyBtYW5pZmVzdHMuIFRoZSBkZWZhdWx0IHN5bnRoZXNpcyBmb3JtYXQgaXMgcGxhaW4ga3ViZXJuZXRlcyBtYW5pZmVzdHMuJywgdHlwZTogJ3N0cmluZycgfSlcbiAgICAub3B0aW9uKCdjaGFydC1hcGktdmVyc2lvbicsIHsgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjOiAnQ2hhcnQgQVBJIHZlcnNpb24gb2YgaGVsbSBjaGFydC4gVGhlIGRlZmF1bHQgdmFsdWUgd291bGQgYmUgXFwndjJcXCcgYXBpIHZlcnNpb24gd2hlbiBzeW50aGVzaXMgZm9ybWF0IGlzIGhlbG0uIFRoZXJlIGlzIG5vIGRlZmF1bHQgc2V0IHdoZW4gc3ludGhlc2lzIGZvcm1hdCBpcyBwbGFpbi4nLCB0eXBlOiAnc3RyaW5nJyB9KVxuICAgIC5vcHRpb24oJ2NoYXJ0LXZlcnNpb24nLCB7IHJlcXVpcmVkOiBmYWxzZSwgZGVzYzogJ0NoYXJ0IHZlcnNpb24gb2YgaGVsbSBjaGFydC4gVGhpcyBpcyByZXF1aXJlZCBpZiBzeW50aGVzaXMgZm9ybWF0IGlzIGhlbG0uJyB9KTtcblxuICBwdWJsaWMgYXN5bmMgaGFuZGxlcihhcmd2OiBhbnkpIHtcblxuICAgIGNvbnN0IGNvbW1hbmQgPSBhcmd2LmFwcDtcbiAgICBjb25zdCBzdGRvdXQgPSBhcmd2LnN0ZG91dDtcbiAgICBjb25zdCBvdXRkaXIgPSBhcmd2Lm91dHB1dCA/PyBjb25maWc/Lm91dHB1dCA/PyAoIXN0ZG91dCA/IERFRkFVTFRfT1VUUFVUX0RJUiA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdmFsaWRhdGUgPSBhcmd2LnZhbGlkYXRlID8/IHRydWU7XG4gICAgY29uc3QgcmVwb3J0RmlsZSA9IGFyZ3YudmFsaWRhdGlvblJlcG9ydHNPdXRwdXRGaWxlO1xuICAgIGNvbnN0IHBsdWdpbnNEaXIgPSBhcmd2LnBsdWdpbnNEaXIgPz8gY29uZmlnPy5wbHVnaW5zRGlyZWN0b3J5ID8/IERFRkFVTFRfUExVR0lOU19ESVI7XG4gICAgY29uc3QgZm9ybWF0ID0gYXJndi5mb3JtYXQgPz8gY29uZmlnPy5zeW50aENvbmZpZz8uZm9ybWF0ID8/IFN5bnRoZXNpc0Zvcm1hdC5QTEFJTjtcbiAgICBjb25zdCBjaGFydFZlcnNpb24gPSBhcmd2LmNoYXJ0VmVyc2lvbiA/PyBjb25maWc/LnN5bnRoQ29uZmlnPy5jaGFydFZlcnNpb247XG4gICAgY29uc3QgY2hhcnRBcGlWZXJzaW9uID0gYXJndi5jaGFydEFwaVZlcnNpb24gPz8gY29uZmlnPy5zeW50aENvbmZpZz8uY2hhcnRBcGlWZXJzaW9uID8/IGdldERlZmF1bHRDaGFydEFwaVZlcnNpb24oZm9ybWF0KTtcblxuICAgIGlmIChvdXRkaXIgJiYgb3V0ZGlyICE9PSBjb25maWc/Lm91dHB1dCAmJiBzdGRvdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignXFwnLS1vdXRwdXRcXCcgYW5kIFxcJy0tc3Rkb3V0XFwnIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIFBsZWFzZSBvbmx5IHVzZSBvbmUuJyk7XG4gICAgfVxuXG4gICAgaWYgKG91dGRpcikge1xuICAgICAgZnMucm1TeW5jKG91dGRpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGlmIChmb3JtYXQgIT0gU3ludGhlc2lzRm9ybWF0LlBMQUlOICYmIGZvcm1hdCAhPSBTeW50aGVzaXNGb3JtYXQuSEVMTSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3UgbmVlZCB0byBzcGVjaWZ5IHN5bnRoZXNpcyBmb3JtYXQgZWl0aGVyIGFzICR7U3ludGhlc2lzRm9ybWF0LlBMQUlOfSBvciAke1N5bnRoZXNpc0Zvcm1hdC5IRUxNfSBidXQgcmVjZWl2ZWQ6ICR7Zm9ybWF0fWApO1xuICAgIH1cblxuICAgIGlmIChjaGFydEFwaVZlcnNpb24gJiYgKGNoYXJ0QXBpVmVyc2lvbiAhPSBIZWxtQ2hhcnRBcGlWZXJzaW9uLlYxICYmIGNoYXJ0QXBpVmVyc2lvbiAhPSBIZWxtQ2hhcnRBcGlWZXJzaW9uLlYyKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3UgbmVlZCB0byBzcGVjaWZ5IGhlbG0gY2hhcnQgYXBpIHZlcnNpb24gZWl0aGVyIGFzICR7SGVsbUNoYXJ0QXBpVmVyc2lvbi5WMX0gb3IgJHtIZWxtQ2hhcnRBcGlWZXJzaW9uLlYyfSBidXQgcmVjZWl2ZWQ6ICR7Y2hhcnRBcGlWZXJzaW9ufWApO1xuICAgIH1cblxuICAgIGlmIChmb3JtYXQgPT09IFN5bnRoZXNpc0Zvcm1hdC5IRUxNICYmICFjaGFydFZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG5lZWQgdG8gc3BlY2lmeSBcXCctLWNoYXJ0LXZlcnNpb25cXCcgd2hlbiBcXCctLWZvcm1hdFxcJyBpcyBzZXQgYXMgXFwnaGVsbVxcJy4nKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhcnRWZXJzaW9uICYmICFzZW12ZXIudmFsaWQoY2hhcnRWZXJzaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgdmFsdWUgc3BlY2lmaWVkIGZvciAnLS1jaGFydC12ZXJzaW9uJzogJHtjaGFydFZlcnNpb259IGRvZXMgbm90IGZvbGxvdyBTZW1WZXItMihodHRwczovL3NlbXZlci5vcmcvKS5gKTtcbiAgICB9XG5cbiAgICBpZiAoc3Rkb3V0ICYmIGZvcm1hdCA9PT0gU3ludGhlc2lzRm9ybWF0LkhFTE0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSGVsbSBmb3JtYXQgc3ludGhlc2lzIGRvZXMgbm90IHN1cHBvcnQgXFwnc3Rkb3V0XFwnLiBQbGVhc2UgdXNlIFxcJ291dGRpclxcJyBpbnN0ZWFkLicpO1xuICAgIH1cblxuICAgIGlmIChmb3JtYXQgPT09IFN5bnRoZXNpc0Zvcm1hdC5QTEFJTiAmJiBjaGFydEFwaVZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG5lZWQgdG8gc3BlY2lmeSBcXCctLWZvcm1hdFxcJyBhcyBcXCdoZWxtXFwnIHdoZW4gXFwnLS1jaGFydC1hcGktdmVyc2lvblxcJyBpcyBzZXQuJyk7XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdCA9PT0gU3ludGhlc2lzRm9ybWF0LlBMQUlOICYmIGNoYXJ0VmVyc2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbmVlZCB0byBzcGVjaWZ5IFxcJy0tZm9ybWF0XFwnIGFzIFxcJ2hlbG1cXCcgd2hlbiBcXCctLWNoYXJ0LXZlcnNpb25cXCcgaXMgc2V0LicpO1xuICAgIH1cblxuICAgIGlmIChjaGFydEFwaVZlcnNpb24gPT09IEhlbG1DaGFydEFwaVZlcnNpb24uVjEgJiYgY3Jkc0FyZVByZXNlbnQoY29uZmlnPy5pbXBvcnRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3VyIGFwcGxpY2F0aW9uIHVzZXMgQ1JEcywgd2hpY2ggYXJlIG5vdCBzdXBwb3J0ZWQgd2hlbiAnLS1jaGFydC1hcGktdmVyc2lvbicgaXMgc2V0IHRvICR7SGVsbUNoYXJ0QXBpVmVyc2lvbi5WMX0uIFBsZWFzZSBlaXRoZXIgc2V0ICctLWNoYXJ0LWFwaS12ZXJzaW9uJyB0byAke0hlbG1DaGFydEFwaVZlcnNpb24uVjJ9LCBvciByZW1vdmUgdGhlIENSRHMgZnJvbSB5b3VyIGNkazhzLnlhbWwgY29uZmlndXJhdGlvbiBmaWxlYCk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGlvbnMgPSB2YWxpZGF0ZSA/IGF3YWl0IGZldGNoVmFsaWRhdGlvbnMoKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCByZWNvcmRDb25zdHJ1Y3RNZXRhZGF0YSA9ICEodmFsaWRhdGlvbnMgPT0gdW5kZWZpbmVkIHx8IHZhbGlkYXRpb25zLmxlbmd0aCA9PSAwKTtcblxuICAgIGlmIChzdGRvdXQpIHtcbiAgICAgIGF3YWl0IG1rZHRlbXAoYXN5bmMgdGVtcERpciA9PiB7XG4gICAgICAgIGNvbnN0IGFwcCA9IGF3YWl0IHN5bnRoQXBwKGNvbW1hbmQsIHRlbXBEaXIsIHN0ZG91dCwgcmVjb3JkQ29uc3RydWN0TWV0YWRhdGEpO1xuICAgICAgICBmb3IgKGNvbnN0IGYgb2YgYXBwLm1hbmlmZXN0cykge1xuICAgICAgICAgIGZzLmNyZWF0ZVJlYWRTdHJlYW0oZikucGlwZShwcm9jZXNzLnN0ZG91dCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgY29uc3QgcGx1Z2luTWFuYWdlciA9IG5ldyBQbHVnaW5NYW5hZ2VyKHBsdWdpbnNEaXIpO1xuICAgICAgICAgIGF3YWl0IHZhbGlkYXRlQXBwKGFwcCwgc3Rkb3V0LCB2YWxpZGF0aW9ucywgcGx1Z2luTWFuYWdlciwgcmVwb3J0RmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgbWFuaWZlc3RzOiBTeW50aGVzaXplZEFwcDtcblxuICAgICAgaWYgKGZvcm1hdCA9PT0gU3ludGhlc2lzRm9ybWF0LkhFTE0pIHtcbiAgICAgICAgYXdhaXQgY3JlYXRlSGVsbVNjYWZmb2xkaW5nKGNoYXJ0QXBpVmVyc2lvbiwgY2hhcnRWZXJzaW9uLCBvdXRkaXIpO1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZURpciA9IHBhdGguam9pbihvdXRkaXIsICd0ZW1wbGF0ZXMnKTtcblxuICAgICAgICBtYW5pZmVzdHMgPSBhd2FpdCBzeW50aEFwcChjb21tYW5kLCB0ZW1wbGF0ZURpciwgc3Rkb3V0LCByZWNvcmRDb25zdHJ1Y3RNZXRhZGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtYW5pZmVzdHMgPSBhd2FpdCBzeW50aEFwcChjb21tYW5kLCBvdXRkaXIsIHN0ZG91dCwgcmVjb3JkQ29uc3RydWN0TWV0YWRhdGEpO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcGx1Z2luTWFuYWdlciA9IG5ldyBQbHVnaW5NYW5hZ2VyKHBsdWdpbnNEaXIpO1xuICAgICAgICBhd2FpdCB2YWxpZGF0ZUFwcChtYW5pZmVzdHMsIHN0ZG91dCwgdmFsaWRhdGlvbnMsIHBsdWdpbk1hbmFnZXIsIHJlcG9ydEZpbGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVmFsaWRhdGlvbnMoKTogUHJvbWlzZTxWYWxpZGF0aW9uQ29uZmlnW10gfCB1bmRlZmluZWQ+IHtcbiAgaWYgKHR5cGVvZihjb25maWc/LnZhbGlkYXRpb25zKSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgZG93bmxvYWQoY29uZmlnLnZhbGlkYXRpb25zKTtcbiAgICByZXR1cm4geWFtbC5wYXJzZShjb250ZW50KSBhcyBWYWxpZGF0aW9uQ29uZmlnW107XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNvbmZpZz8udmFsaWRhdGlvbnM7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSGVsbVNjYWZmb2xkaW5nKGFwaVZlcnNpb246IHN0cmluZywgY2hhcnRWZXJzaW9uOiBzdHJpbmcsIG91dGRpcjogc3RyaW5nKSB7XG4gIGNvbnN0IHRlbXBIZWxtU3RydWN0dXJlID0gY3JlYXRlRm9sZGVyU3RydWN0dXJlKCk7XG5cbiAgY29uc3Qgc3Vic3RpdHV0ZVZhbHVlcyA9IHtcbiAgICBhcGlWZXJzaW9uOiBhcGlWZXJzaW9uLFxuICAgIHZlcnNpb246IGNoYXJ0VmVyc2lvbixcbiAgICBhcHA6IHBhdGguYmFzZW5hbWUocGF0aC5yZXNvbHZlKCkpLFxuICB9O1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgc3NjYWZmKHRlbXBIZWxtU3RydWN0dXJlLCBvdXRkaXIsIHN1YnN0aXR1dGVWYWx1ZXMpO1xuICB9IGZpbmFsbHkge1xuICAgIGZzLnJtU3luYyh0ZW1wSGVsbVN0cnVjdHVyZSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH1cblxuXG4gIGlmIChhcGlWZXJzaW9uID09PSBIZWxtQ2hhcnRBcGlWZXJzaW9uLlYyICYmIGNyZHNBcmVQcmVzZW50KGNvbmZpZz8uaW1wb3J0cykpIHtcbiAgICBhd2FpdCBhZGRDcmRzVG9IZWxtQ2hhcnQob3V0ZGlyKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUZvbGRlclN0cnVjdHVyZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJvb3QgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdoZWxtLXNjYWZmb2xkaW5nLScpKTtcblxuICAgIGZzLm1rZGlyU3luYyhwYXRoLmpvaW4ocm9vdCwgJ3RlbXBsYXRlcycpKTtcblxuICAgIGNvbnN0IGNoYXJ0WWFtbEZpbGUgPSB7XG4gICAgICBhcGlWZXJzaW9uOiAne3sgYXBpVmVyc2lvbiB9fScsXG4gICAgICBuYW1lOiAne3sgYXBwIH19JyxcbiAgICAgIHZlcnNpb246ICd7eyB2ZXJzaW9uIH19JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGVkIGNoYXJ0IGZvciB7eyBhcHAgfX0nLFxuICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uJyxcbiAgICB9O1xuXG4gICAgZnMub3V0cHV0RmlsZVN5bmMocGF0aC5qb2luKHJvb3QsIENIQVJUX1lBTUxfRklMRSksIHlhbWwuc3RyaW5naWZ5KGNoYXJ0WWFtbEZpbGUpKTtcblxuICAgIGNvbnN0IHJlYWRtZUZpbGUgPSAnVGhpcyBIZWxtIGNoYXJ0IGlzIGdlbmVyYXRlZCB1c2luZyBjZGs4cy4gQW55IG1hbnVhbCBjaGFuZ2VzIHRvIHRoZSBjaGFydCB3b3VsZCBiZSBkaXNjYXJkZWQgb25jZSBjZGs4cyBhcHAgaXMgc3ludGhlc2l6ZWQgYWdhaW4gd2l0aCBgLS1mb3JtYXQgaGVsbWAuJztcblxuICAgIGZzLm91dHB1dEZpbGVTeW5jKHBhdGguam9pbihyb290LCBSRUFETUUpLCByZWFkbWVGaWxlKTtcblxuICAgIHJldHVybiByb290O1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFkZENyZHNUb0hlbG1DaGFydChjaGFydERpcjogc3RyaW5nKSB7XG4gIGNvbnN0IGNyZHMgPSAoY29uZmlnPy5pbXBvcnRzID8/IFtdKS5maWx0ZXIoKGltcHJ0KSA9PiAoIWlzSzhzSW1wb3J0KGltcHJ0KSAmJiAhaXNIZWxtSW1wb3J0KGltcHJ0KSkpO1xuXG4gIGZvciAoY29uc3QgY3JkIG9mIGNyZHMpIHtcbiAgICBjb25zdCBpbXBvcnRTcGVjID0gcGFyc2VJbXBvcnRzKGNyZCk7XG4gICAgY29uc3QgaW1wb3J0ZWRDcmREZWYgPSBhd2FpdCBtYXRjaEltcG9ydGVyKGltcG9ydFNwZWMsIHByb2Nlc3MuYXJndikgYXMgSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uO1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gaW1wb3J0ZWRDcmREZWYucmF3TWFuaWZlc3Q7XG5cbiAgICBjb25zdCBmaWxlbmFtZSA9IGRlcml2ZUZpbGVOYW1lKGltcG9ydFNwZWMuc291cmNlKTtcblxuICAgIGZzLm91dHB1dEZpbGVTeW5jKHBhdGguam9pbihjaGFydERpciwgJ2NyZHMnLCBgJHtmaWxlbmFtZX0ueWFtbGApLCBtYW5pZmVzdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdENoYXJ0QXBpVmVyc2lvbihzeW50aEZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIChzeW50aEZvcm1hdCA9PT0gU3ludGhlc2lzRm9ybWF0LkhFTE0pID8gSGVsbUNoYXJ0QXBpVmVyc2lvbi5WMjogdW5kZWZpbmVkO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBDb21tYW5kKCk7Il19
package/lib/util.d.ts CHANGED
@@ -32,4 +32,5 @@ export declare function parseImports(spec: string): ImportSpec;
32
32
  export declare function hashAndEncode(input: string, algorithm?: string, encoding?: BinaryToTextEncoding): string;
33
33
  export declare function deriveFileName(url: string): string;
34
34
  export declare function isK8sImport(value: string): boolean;
35
+ export declare function isHelmImport(value: string): boolean;
35
36
  export declare function crdsArePresent(imprts: string[] | undefined): boolean;
package/lib/util.js CHANGED
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.crdsArePresent = exports.isK8sImport = exports.deriveFileName = exports.hashAndEncode = exports.parseImports = exports.findConstructMetadata = exports.findManifests = exports.download = exports.safeParseYaml = exports.safeParseJson = exports.validateApp = exports.synthApp = exports.mkdtemp = exports.shell = exports.PREFIX_DELIM = void 0;
26
+ exports.crdsArePresent = exports.isHelmImport = exports.isK8sImport = exports.deriveFileName = exports.hashAndEncode = exports.parseImports = exports.findConstructMetadata = exports.findManifests = exports.download = exports.safeParseYaml = exports.safeParseJson = exports.validateApp = exports.synthApp = exports.mkdtemp = exports.shell = exports.PREFIX_DELIM = void 0;
27
27
  const child_process_1 = require("child_process");
28
28
  const crypto_1 = require("crypto");
29
29
  const fs_1 = require("fs");
@@ -290,8 +290,15 @@ function isK8sImport(value) {
290
290
  return true;
291
291
  }
292
292
  exports.isK8sImport = isK8sImport;
293
+ function isHelmImport(value) {
294
+ if (!value.startsWith('helm:')) {
295
+ return false;
296
+ }
297
+ return true;
298
+ }
299
+ exports.isHelmImport = isHelmImport;
293
300
  function crdsArePresent(imprts) {
294
- return (imprts !== null && imprts !== void 0 ? imprts : []).some(imprt => !isK8sImport(imprt));
301
+ return (imprts !== null && imprts !== void 0 ? imprts : []).some(imprt => (!isK8sImport(imprt) && !isHelmImport(imprt)));
295
302
  }
296
303
  exports.crdsArePresent = crdsArePresent;
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQW9EO0FBQ3BELG1DQUEwRDtBQUMxRCwyQkFBMEM7QUFDMUMsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDZCQUE0QjtBQUM1Qiw2Q0FBK0I7QUFDL0IsMkNBQTZCO0FBRTdCLGdEQUFvRDtBQUVwRCxxREFBeUc7QUFHNUYsUUFBQSxZQUFZLEdBQUcsSUFBSSxDQUFDO0FBRTFCLEtBQUssVUFBVSxLQUFLLENBQUMsT0FBZSxFQUFFLE9BQWlCLEVBQUUsRUFBRSxVQUF3QixFQUFHOztJQUMzRixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBQSxNQUFBLE9BQU8sQ0FBQyxHQUFHLDBDQUFFLFFBQVEsRUFBRSxtQ0FBSSxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ3BHLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7O1FBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUEscUJBQUssRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDMUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUNqQyxNQUFBLEtBQUssQ0FBQyxNQUFNLDBDQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFcEQsS0FBSyxDQUFDLElBQUks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QUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFGRCx3Q0FFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduLCBTcGF3bk9wdGlvbnMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IEJpbmFyeVRvVGV4dEVuY29kaW5nLCBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IGV4aXN0c1N5bmMsIHByb21pc2VzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJ3VybCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gJ3lhbWwnO1xuaW1wb3J0IHsgSW1wb3J0U3BlYywgVmFsaWRhdGlvbkNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IG1hdGNoQ3Jkc0RldlVybCB9IGZyb20gJy4vaW1wb3J0L2NyZHMtZGV2JztcbmltcG9ydCB7IFBsdWdpbk1hbmFnZXIgfSBmcm9tICcuL3BsdWdpbnMvX21hbmFnZXInO1xuaW1wb3J0IHsgVmFsaWRhdGlvblBsdWdpbiwgVmFsaWRhdGlvbkNvbnRleHQsIFZhbGlkYXRpb25SZXBvcnQsIFZhbGlkYXRpb24gfSBmcm9tICcuL3BsdWdpbnMvdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBTYWZlUmV2aXZlciB9IGZyb20gJy4vcmV2aXZlcic7XG5cbmV4cG9ydCBjb25zdCBQUkVGSVhfREVMSU0gPSAnOj0nO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hlbGwocHJvZ3JhbTogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSA9IFtdLCBvcHRpb25zOiBTcGF3bk9wdGlvbnMgPSB7IH0pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjb21tYW5kID0gYFwiJHtwcm9ncmFtfSAke2FyZ3Muam9pbignICcpfVwiIGF0ICR7cGF0aC5yZXNvbHZlKG9wdGlvbnMuY3dkPy50b1N0cmluZygpID8/ICcuJyl9YDtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChvaywga28pID0+IHtcbiAgICBjb25zdCBjaGlsZCA9IHNwYXduKHByb2dyYW0sIGFyZ3MsIHsgc3RkaW86IFsnaW5oZXJpdCcsICdwaXBlJywgJ2luaGVyaXQnXSwgLi4ub3B0aW9ucyB9KTtcbiAgICBjb25zdCBkYXRhID0gbmV3IEFycmF5PEJ1ZmZlcj4oKTtcbiAgICBjaGlsZC5zdGRvdXQ/Lm9uKCdkYXRhJywgY2h1bmsgPT4gZGF0YS5wdXNoKGNodW5rKSk7XG5cbiAgICBjaGlsZC5vbmNlKCdlcnJvcicsIGVyciA9PiBrbyhuZXcgRXJyb3IoYGNvbW1hbmQgJHtjb21tYW5kfSBmYWlsZWQ6ICR7ZXJyfWApKSk7XG4gICAgY2hpbGQub25jZSgnZXhpdCcsIGNvZGUgPT4ge1xuICAgICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG9rKEJ1ZmZlci5jb25jYXQoZGF0YSkudG9TdHJpbmcoJ3V0Zi04JykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGtvKG5ldyBFcnJvcihgY29tbWFuZCAke2NvbW1hbmR9IHJldHVybmVkIGEgbm9uLXplcm8gZXhpdCBjb2RlICR7Y29kZX1gKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWtkdGVtcChjbG9zdXJlOiAoZGlyOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgY29uc3Qgd29ya2RpciA9IGF3YWl0IGZzLm1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrOHMtJykpO1xuICB0cnkge1xuICAgIGF3YWl0IGNsb3N1cmUod29ya2Rpcik7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgZnMucmVtb3ZlKHdvcmtkaXIpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzeW50aEFwcChjb21tYW5kOiBzdHJpbmcsIG91dGRpcjogc3RyaW5nLCBzdGRvdXQ6IGJvb2xlYW4sIG1ldGFkYXRhOiBib29sZWFuKTogUHJvbWlzZTxTeW50aGVzaXplZEFwcD4ge1xuICBpZiAoIXN0ZG91dCkge1xuICAgIGNvbnNvbGUubG9nKCdTeW50aGVzaXppbmcgYXBwbGljYXRpb24nKTtcbiAgfVxuICBhd2FpdCBzaGVsbChjb21tYW5kLCBbXSwge1xuICAgIHNoZWxsOiB0cnVlLFxuICAgIGVudjoge1xuICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICBDREs4U19PVVRESVI6IG91dGRpcixcbiAgICAgIC8vIHJlY29yZCBtZXRhZGF0YSBzbyB0aGF0IHRoZSB2YWxpZGF0aW9uIHJlcG9ydFxuICAgICAgLy8gaGFzIGNvbnRydWN0IGF3YXJlIGNvbnRleHQuXG4gICAgICBDREs4U19SRUNPUkRfQ09OU1RSVUNUX01FVEFEQVRBOiBwcm9jZXNzLmVudi5DREs4U19SRUNPUkRfQ09OU1RSVUNUX01FVEFEQVRBID8/IChtZXRhZGF0YSA/ICd0cnVlJyA6ICdmYWxzZScpLFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhvdXRkaXIpKSB7XG4gICAgY29uc29sZS5lcnJvcihgRVJST1I6IHN5bnRoZXNpcyBmYWlsZWQsIGFwcCBleHBlY3RlZCB0byBjcmVhdGUgXCIke291dGRpcn1cImApO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuXG4gIGxldCBmb3VuZCA9IGZhbHNlO1xuICBjb25zdCB5YW1sRmlsZXMgPSBhd2FpdCBmaW5kTWFuaWZlc3RzKG91dGRpcik7XG4gIGlmICh5YW1sRmlsZXM/Lmxlbmd0aCkge1xuICAgIGlmICghc3Rkb3V0KSB7XG4gICAgICBmb3IgKGNvbnN0IHlhbWxGaWxlIG9mIHlhbWxGaWxlcykge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAtICR7eWFtbEZpbGV9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZm91bmQpIHtcbiAgICBjb25zb2xlLmVycm9yKCdObyBtYW5pZmVzdHMgc3ludGhlc2l6ZWQnKTtcbiAgfVxuXG4gIGNvbnN0IGNvbnN0cnVjdE1ldGFkYXRhID0gZmluZENvbnN0cnVjdE1ldGFkYXRhKG91dGRpcik7XG5cbiAgcmV0dXJuIHsgbWFuaWZlc3RzOiB5YW1sRmlsZXMsIGNvbnN0cnVjdE1ldGFkYXRhIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2YWxpZGF0ZUFwcChcbiAgYXBwOiBTeW50aGVzaXplZEFwcCxcbiAgc3Rkb3V0OiBib29sZWFuLFxuICB2YWxpZGF0aW9uczogVmFsaWRhdGlvbkNvbmZpZ1tdLFxuICBwbHVnaW5NYW5hZ2VyOiBQbHVnaW5NYW5hZ2VyLFxuICByZXBvcnRzRmlsZT86IHN0cmluZykge1xuXG4gIGNvbnN0IHZhbGlkYXRvcnM6IHsgcGx1Z2luOiBWYWxpZGF0aW9uOyBjb250ZXh0OiBWYWxpZGF0aW9uQ29udGV4dH1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgdmFsaWRhdGlvbiBvZiB2YWxpZGF0aW9ucykge1xuICAgIGNvbnN0IHsgcGx1Z2luLCBjb250ZXh0IH0gPSBWYWxpZGF0aW9uUGx1Z2luLmxvYWQodmFsaWRhdGlvbiwgYXBwLCBzdGRvdXQsIHBsdWdpbk1hbmFnZXIpO1xuICAgIHZhbGlkYXRvcnMucHVzaCh7IHBsdWdpbiwgY29udGV4dCB9KTtcbiAgfVxuXG4gIGNvbnN0IHJlcG9ydHM6IFZhbGlkYXRpb25SZXBvcnRbXSA9IFtdO1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc29sZS5sb2coJ1BlcmZvcm1pbmcgdmFsaWRhdGlvbnMnKTtcblxuICBmb3IgKGNvbnN0IHZhbGlkYXRvciBvZiB2YWxpZGF0b3JzKSB7XG4gICAgYXdhaXQgdmFsaWRhdG9yLnBsdWdpbi52YWxpZGF0ZSh2YWxpZGF0b3IuY29udGV4dCk7XG4gICAgY29uc3QgcmVwb3J0ID0gdmFsaWRhdG9yLmNvbnRleHQucmVwb3J0O1xuICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmIHJlcG9ydC5zdWNjZXNzO1xuICAgIHJlcG9ydHMucHVzaChyZXBvcnQpO1xuICB9XG5cbiAgY29uc29sZS5sb2coJ1ZhbGlkYXRpb25zIGZpbmlzaGVkJyk7XG5cbiAgLy8gbm93IHdlIGNhbiBwcmludCB0aGVtLiB3ZSBkb24ndCBpbmNyZW1lbnRhbGx5IHByaW50XG4gIC8vIHNvIHRvIG5vdCBjbHV0dGVyIHRoZSB0ZXJtaW5hbCBpbiBjYXNlIG9mIGVycm9ycy5cbiAgZm9yIChjb25zdCByZXBvcnQgb2YgcmVwb3J0cykge1xuICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICBjb25zb2xlLmxvZyhyZXBvcnQudG9TdHJpbmcoKSk7XG4gICAgY29uc29sZS5sb2coJycpO1xuICB9XG5cbiAgaWYgKHJlcG9ydHNGaWxlKSB7XG5cbiAgICBpZiAoZnMuZXhpc3RzU3luYyhyZXBvcnRzRmlsZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHdyaXRlIHZhbGlkYXRpb24gcmVwb3J0cyBmaWxlLiBBbHJlYWR5IGV4aXN0czogJHtyZXBvcnRzRmlsZX1gKTtcbiAgICB9XG4gICAgLy8gd3JpdGUgdGhlIHJlcG9ydHMgaW4gSlNPTiB0byBhIGZpbGVcbiAgICBmcy53cml0ZUZpbGVTeW5jKHJlcG9ydHNGaWxlLCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICByZXBvcnRzOiByZXBvcnRzLm1hcChyID0+IHIudG9Kc29uKCkpLFxuICAgIH0sIG51bGwsIDIpKTtcbiAgfVxuXG4gIC8vIGV4aXQgd2l0aCBmYWlsdXJlIGlmIGFueSByZXBvcnQgcmVzdWx0ZWQgaW4gYSBmYWlsdXJlXG4gIGlmICghc3VjY2Vzcykge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1ZhbGlkYXRpb24gZmFpbGVkLiBTZWUgYWJvdmUgcmVwb3J0cyBmb3IgZGV0YWlscycpO1xuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxuXG4gIGNvbnNvbGUubG9nKCdWYWxpZGF0aW9ucyBlbmRlZCBzdWNjZXNmdWxseScpO1xuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYWZlUGFyc2VKc29uKHRleHQ6IHN0cmluZywgcmV2aXZlcjogU2FmZVJldml2ZXIpOiBhbnkge1xuICBjb25zdCBqc29uID0gSlNPTi5wYXJzZSh0ZXh0KTtcbiAgcmV2aXZlci5zYW5pdGl6ZShqc29uKTtcbiAgcmV0dXJuIGpzb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYWZlUGFyc2VZYW1sKHRleHQ6IHN0cmluZywgcmV2aXZlcjogU2FmZVJldml2ZXIpOiBhbnlbXSB7XG5cbiAgLy8gcGFyc2VBbGxEb2N1bWVudHMgZG9lc250IGFjY2VwdCBhIHJldml2ZXJcbiAgLy8gc28gd2UgZmlyc3QgcGFyc2Ugbm9ybWFsbHkgYW5kIHRoYW4gdHJhbnNmb3JtXG4gIC8vIHRvIEpTIHVzaW5nIHRoZSByZXZpdmVyLlxuICBjb25zdCBwYXJzZWQgPSB5YW1sLnBhcnNlQWxsRG9jdW1lbnRzKHRleHQpO1xuICBjb25zdCBkb2NzID0gW107XG4gIGZvciAoY29uc3QgZG9jIG9mIHBhcnNlZCkge1xuICAgIGNvbnN0IGpzb24gPSBkb2MudG9KUygpO1xuICAgIHJldml2ZXIuc2FuaXRpemUoanNvbik7XG4gICAgZG9jcy5wdXNoKGpzb24pO1xuICB9XG4gIHJldHVybiBkb2NzO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bmxvYWQodXJsOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuXG4gIGxldCBjbGllbnQ6IHR5cGVvZiBodHRwIHwgdHlwZW9mIGh0dHBzO1xuICBjb25zdCBwcm90byA9IHBhcnNlKHVybCkucHJvdG9jb2w7XG5cbiAgaWYgKCFwcm90byB8fCBwcm90byA9PT0gJ2ZpbGU6Jykge1xuICAgIHJldHVybiBmcy5yZWFkRmlsZSh1cmwsICd1dGYtOCcpO1xuICB9XG5cbiAgc3dpdGNoIChwcm90bykge1xuICAgIGNhc2UgJ2h0dHBzOic6XG4gICAgICBjbGllbnQgPSBodHRwcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnaHR0cDonOlxuICAgICAgY2xpZW50ID0gaHR0cDtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgcHJvdG9jb2wgJHtwcm90b31gKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgob2ssIGtvKSA9PiB7XG4gICAgY29uc3QgcmVxID0gY2xpZW50LmdldCh1cmwsIHJlcyA9PiB7XG4gICAgICBzd2l0Y2ggKHJlcy5zdGF0dXNDb2RlKSB7XG4gICAgICAgIGNhc2UgMjAwOiB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IG5ldyBBcnJheTxCdWZmZXI+KCk7XG4gICAgICAgICAgcmVzLm9uKCdkYXRhJywgY2h1bmsgPT4gZGF0YS5wdXNoKGNodW5rKSk7XG4gICAgICAgICAgcmVzLm9uY2UoJ2VuZCcsICgpID0+IG9rKEJ1ZmZlci5jb25jYXQoZGF0YSkudG9TdHJpbmcoJ3V0Zi04JykpKTtcbiAgICAgICAgICByZXMub25jZSgnZXJyb3InLCBrbyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIDMwMTpcbiAgICAgICAgY2FzZSAzMDI6IHtcbiAgICAgICAgICBpZiAocmVzLmhlYWRlcnMubG9jYXRpb24pIHtcbiAgICAgICAgICAgIG9rKGRvd25sb2FkKHJlcy5oZWFkZXJzLmxvY2F0aW9uKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIGtvKG5ldyBFcnJvcihgJHtyZXMuc3RhdHVzTWVzc2FnZX06ICR7dXJsfWApKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVxLm9uY2UoJ2Vycm9yJywga28pO1xuICAgIHJlcS5lbmQoKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaW5kTWFuaWZlc3RzKGRpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAvLyBFbnN1cmUgcGF0aCBpcyB2YWxpZFxuICB0cnkge1xuICAgIGF3YWl0IHByb21pc2VzLmFjY2VzcyhkaXJlY3RvcnkpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvLyBSZWFkIFBhdGggY29udGVudHNcbiAgY29uc3QgZW50cmllcyA9IGF3YWl0IHByb21pc2VzLnJlYWRkaXIoZGlyZWN0b3J5LCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG5cbiAgLy8gR2V0IGZpbGVzIHdpdGhpbiB0aGUgY3VycmVudCBkaXJlY3RvcnlcbiAgY29uc3QgZmlsZXMgPSBlbnRyaWVzXG4gICAgLmZpbHRlcihmaWxlID0+ICghZmlsZS5pc0RpcmVjdG9yeSgpICYmIGZpbGUubmFtZS5lbmRzV2l0aCgnLnlhbWwnKSkpXG4gICAgLm1hcChmaWxlID0+IChkaXJlY3RvcnkgKyAnLycgKyBmaWxlLm5hbWUpKTtcblxuICAvLyBHZXQgc3ViLWZvbGRlcnMgd2l0aGluIHRoZSBjdXJyZW50IGZvbGRlclxuICBjb25zdCBmb2xkZXJzID0gZW50cmllcy5maWx0ZXIoZm9sZGVyID0+IGZvbGRlci5pc0RpcmVjdG9yeSgpKTtcblxuICBmb3IgKGNvbnN0IGZvbGRlciBvZiBmb2xkZXJzKSB7XG4gICAgZmlsZXMucHVzaCguLi5hd2FpdCBmaW5kTWFuaWZlc3RzKGAke2RpcmVjdG9yeX0vJHtmb2xkZXIubmFtZX1gKSk7XG4gIH1cblxuICByZXR1cm4gZmlsZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ29uc3RydWN0TWV0YWRhdGEoZGlyZWN0b3J5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAvLyB0aGlzIGZpbGUgaXMgb3B0aW9uYWxseSBjcmVhdGVkIGR1cmluZyBzeW50aGVzaXNcbiAgY29uc3QgcCA9IHBhdGguam9pbihkaXJlY3RvcnksICdjb25zdHJ1Y3QtbWV0YWRhdGEuanNvbicpO1xuICByZXR1cm4gZnMuZXhpc3RzU3luYyhwKSA/IHAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHN5bnRoZXNpemluZyBhbiBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTeW50aGVzaXplZEFwcCB7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIG1hbmlmZXN0cyBwcm9kdWNlZCBieSB0aGUgYXBwLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFuaWZlc3RzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdCBtZXRhZGF0YSBmaWxlIChpZiBleGlzdHMpLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0TWV0YWRhdGE/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUltcG9ydHMoc3BlYzogc3RyaW5nKTogSW1wb3J0U3BlYyB7XG4gIGNvbnN0IHNwbGl0SW1wb3J0ID0gc3BlYy5zcGxpdChQUkVGSVhfREVMSU0pO1xuXG4gIC8vIGs4c0B4LnkuelxuICAvLyBjcmQueWFtbFxuICAvLyB1cmwuY29tL2NyZC55YW1sXG4gIGlmIChzcGxpdEltcG9ydC5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc291cmNlOiBzcGVjLFxuICAgIH07XG4gIH1cblxuICAvLyBjcmQ6PWNyZC55YW1sXG4gIC8vIGNyZDo9dXJsLmNvbS9jcmQueWFtbFxuICBpZiAoc3BsaXRJbXBvcnQubGVuZ3RoID09PSAyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZHVsZU5hbWVQcmVmaXg6IHNwbGl0SW1wb3J0WzBdLFxuICAgICAgc291cmNlOiBzcGxpdEltcG9ydFsxXSxcbiAgICB9O1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcGFyc2UgaW1wb3J0IHNwZWNpZmljYXRpb24uIFN5bnRheCBpcyBbTkFNRTo9XVNQRUMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc2hBbmRFbmNvZGUoaW5wdXQ6IHN0cmluZywgYWxnb3JpdGhtOiBzdHJpbmcgPSAnc2hhMjU2JywgZW5jb2Rpbmc6IEJpbmFyeVRvVGV4dEVuY29kaW5nID0gJ2hleCcpOiBzdHJpbmcge1xuICBjb25zdCBoYXNoID0gY3JlYXRlSGFzaChhbGdvcml0aG0pO1xuICBoYXNoLnVwZGF0ZShpbnB1dCk7XG4gIHJldHVybiBoYXNoLmRpZ2VzdChlbmNvZGluZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXJpdmVGaWxlTmFtZSh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRldlVybCA9IG1hdGNoQ3Jkc0RldlVybCh1cmwpO1xuICBsZXQgZmlsZW5hbWUgPSB1bmRlZmluZWQ7XG5cbiAgaWYgKGRldlVybCkge1xuICAgIGNvbnN0IGxhc3RJbmRleE9mU2xhc2ggPSBkZXZVcmwubGFzdEluZGV4T2YoJy8nKTtcbiAgICBjb25zdCBsYXN0SW5kZXhPZkF0ID0gZGV2VXJsLmxhc3RJbmRleE9mKCdAJyk7XG4gICAgZmlsZW5hbWUgPSAobGFzdEluZGV4T2ZTbGFzaCA+IDAgJiYgbGFzdEluZGV4T2ZBdCA+IDApID8gZGV2VXJsLnNsaWNlKGxhc3RJbmRleE9mU2xhc2grMSwgbGFzdEluZGV4T2ZBdCk6IHVuZGVmaW5lZDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBsYXN0SW5kZXhPZlNsYXNoID0gdXJsLmxhc3RJbmRleE9mKCcvJyk7XG4gICAgY29uc3QgbGFzdEluZGV4T2ZZYW1sID0gdXJsLmxhc3RJbmRleE9mKCcueWFtbCcpID4gMCA/IHVybC5sYXN0SW5kZXhPZignLnlhbWwnKSA6IHVybC5sYXN0SW5kZXhPZignLnltbCcpO1xuXG4gICAgZmlsZW5hbWUgPSAobGFzdEluZGV4T2ZTbGFzaCA+IDAgJiYgbGFzdEluZGV4T2ZZYW1sID4gMCkgPyB1cmwuc2xpY2UobGFzdEluZGV4T2ZTbGFzaCsxLCBsYXN0SW5kZXhPZllhbWwpOiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoIWZpbGVuYW1lKSB7XG4gICAgLy8gSWYgdGhlIHVybCBpZiBmb3IgYSBsb2NhbCBmaWxlLCB0aGVuIGp1c3QgZW5jb2RlIHRoZSBmaWxlbmFtZSBhbmQgbm90IHRoZSBlbnRpcmUgcGF0aFxuICAgIC8vIFNpbmNlIHBhdGggY2FuIGRlcGVuZCBvbiBwbGF0Zm9ybVxuICAgIGxldCBmaWxlID0gZXhpc3RzU3luYyh1cmwpID8gcGF0aC5iYXNlbmFtZSh1cmwpIDogdXJsO1xuXG4gICAgZmlsZW5hbWUgPSBoYXNoQW5kRW5jb2RlKGZpbGUpO1xuICB9XG5cbiAgcmV0dXJuIGZpbGVuYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNLOHNJbXBvcnQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAodmFsdWUgIT09ICdrOHMnICYmICF2YWx1ZS5zdGFydHNXaXRoKCdrOHNAJykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZHNBcmVQcmVzZW50KGltcHJ0czogc3RyaW5nW10gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIChpbXBydHMgPz8gW10pLnNvbWUoaW1wcnQgPT4gIWlzSzhzSW1wb3J0KGltcHJ0KSk7XG59Il19
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQW9EO0FBQ3BELG1DQUEwRDtBQUMxRCwyQkFBMEM7QUFDMUMsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDZCQUE0QjtBQUM1Qiw2Q0FBK0I7QUFDL0IsMkNBQTZCO0FBRTdCLGdEQUFvRDtBQUVwRCxxREFBeUc7QUFHNUYsUUFBQSxZQUFZLEdBQUcsSUFBSSxDQUFDO0FBRTFCLEtBQUssVUFBVSxLQUFLLENBQUMsT0FBZSxFQUFFLE9BQWlCLEVBQUUsRUFBRSxVQUF3QixFQUFHOztJQUMzRixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBQSxNQUFBLE9BQU8sQ0FBQyxHQUFHLDBDQUFFLFFBQVEsRUFBRSxtQ0FBSSxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ3BHLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7O1FBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUEscUJBQUssRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDMUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUNqQyxNQUFBLEtBQUssQ0FBQyxNQUFNLDBDQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFcEQsS0FBSyxDQUFDLElBQUks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QU1DO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE1BQTRCO0lBQ3pELE9BQU8sQ0FBQyxNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBRkQsd0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzcGF3biwgU3Bhd25PcHRpb25zIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBCaW5hcnlUb1RleHRFbmNvZGluZywgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBleGlzdHNTeW5jLCBwcm9taXNlcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tICd1cmwnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tICd5YW1sJztcbmltcG9ydCB7IEltcG9ydFNwZWMsIFZhbGlkYXRpb25Db25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBtYXRjaENyZHNEZXZVcmwgfSBmcm9tICcuL2ltcG9ydC9jcmRzLWRldic7XG5pbXBvcnQgeyBQbHVnaW5NYW5hZ2VyIH0gZnJvbSAnLi9wbHVnaW5zL19tYW5hZ2VyJztcbmltcG9ydCB7IFZhbGlkYXRpb25QbHVnaW4sIFZhbGlkYXRpb25Db250ZXh0LCBWYWxpZGF0aW9uUmVwb3J0LCBWYWxpZGF0aW9uIH0gZnJvbSAnLi9wbHVnaW5zL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgU2FmZVJldml2ZXIgfSBmcm9tICcuL3Jldml2ZXInO1xuXG5leHBvcnQgY29uc3QgUFJFRklYX0RFTElNID0gJzo9JztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNoZWxsKHByb2dyYW06IHN0cmluZywgYXJnczogc3RyaW5nW10gPSBbXSwgb3B0aW9uczogU3Bhd25PcHRpb25zID0geyB9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgY29tbWFuZCA9IGBcIiR7cHJvZ3JhbX0gJHthcmdzLmpvaW4oJyAnKX1cIiBhdCAke3BhdGgucmVzb2x2ZShvcHRpb25zLmN3ZD8udG9TdHJpbmcoKSA/PyAnLicpfWA7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgob2ssIGtvKSA9PiB7XG4gICAgY29uc3QgY2hpbGQgPSBzcGF3bihwcm9ncmFtLCBhcmdzLCB7IHN0ZGlvOiBbJ2luaGVyaXQnLCAncGlwZScsICdpbmhlcml0J10sIC4uLm9wdGlvbnMgfSk7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBBcnJheTxCdWZmZXI+KCk7XG4gICAgY2hpbGQuc3Rkb3V0Py5vbignZGF0YScsIGNodW5rID0+IGRhdGEucHVzaChjaHVuaykpO1xuXG4gICAgY2hpbGQub25jZSgnZXJyb3InLCBlcnIgPT4ga28obmV3IEVycm9yKGBjb21tYW5kICR7Y29tbWFuZH0gZmFpbGVkOiAke2Vycn1gKSkpO1xuICAgIGNoaWxkLm9uY2UoJ2V4aXQnLCBjb2RlID0+IHtcbiAgICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICAgIHJldHVybiBvayhCdWZmZXIuY29uY2F0KGRhdGEpLnRvU3RyaW5nKCd1dGYtOCcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBrbyhuZXcgRXJyb3IoYGNvbW1hbmQgJHtjb21tYW5kfSByZXR1cm5lZCBhIG5vbi16ZXJvIGV4aXQgY29kZSAke2NvZGV9YCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1rZHRlbXAoY2xvc3VyZTogKGRpcjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+KSB7XG4gIGNvbnN0IHdvcmtkaXIgPSBhd2FpdCBmcy5ta2R0ZW1wKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2NkazhzLScpKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBjbG9zdXJlKHdvcmtkaXIpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IGZzLnJlbW92ZSh3b3JrZGlyKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3ludGhBcHAoY29tbWFuZDogc3RyaW5nLCBvdXRkaXI6IHN0cmluZywgc3Rkb3V0OiBib29sZWFuLCBtZXRhZGF0YTogYm9vbGVhbik6IFByb21pc2U8U3ludGhlc2l6ZWRBcHA+IHtcbiAgaWYgKCFzdGRvdXQpIHtcbiAgICBjb25zb2xlLmxvZygnU3ludGhlc2l6aW5nIGFwcGxpY2F0aW9uJyk7XG4gIH1cbiAgYXdhaXQgc2hlbGwoY29tbWFuZCwgW10sIHtcbiAgICBzaGVsbDogdHJ1ZSxcbiAgICBlbnY6IHtcbiAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgQ0RLOFNfT1VURElSOiBvdXRkaXIsXG4gICAgICAvLyByZWNvcmQgbWV0YWRhdGEgc28gdGhhdCB0aGUgdmFsaWRhdGlvbiByZXBvcnRcbiAgICAgIC8vIGhhcyBjb250cnVjdCBhd2FyZSBjb250ZXh0LlxuICAgICAgQ0RLOFNfUkVDT1JEX0NPTlNUUlVDVF9NRVRBREFUQTogcHJvY2Vzcy5lbnYuQ0RLOFNfUkVDT1JEX0NPTlNUUlVDVF9NRVRBREFUQSA/PyAobWV0YWRhdGEgPyAndHJ1ZScgOiAnZmFsc2UnKSxcbiAgICB9LFxuICB9KTtcblxuICBpZiAoIWF3YWl0IGZzLnBhdGhFeGlzdHMob3V0ZGlyKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoYEVSUk9SOiBzeW50aGVzaXMgZmFpbGVkLCBhcHAgZXhwZWN0ZWQgdG8gY3JlYXRlIFwiJHtvdXRkaXJ9XCJgKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgY29uc3QgeWFtbEZpbGVzID0gYXdhaXQgZmluZE1hbmlmZXN0cyhvdXRkaXIpO1xuICBpZiAoeWFtbEZpbGVzPy5sZW5ndGgpIHtcbiAgICBpZiAoIXN0ZG91dCkge1xuICAgICAgZm9yIChjb25zdCB5YW1sRmlsZSBvZiB5YW1sRmlsZXMpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAgLSAke3lhbWxGaWxlfWApO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoIWZvdW5kKSB7XG4gICAgY29uc29sZS5lcnJvcignTm8gbWFuaWZlc3RzIHN5bnRoZXNpemVkJyk7XG4gIH1cblxuICBjb25zdCBjb25zdHJ1Y3RNZXRhZGF0YSA9IGZpbmRDb25zdHJ1Y3RNZXRhZGF0YShvdXRkaXIpO1xuXG4gIHJldHVybiB7IG1hbmlmZXN0czogeWFtbEZpbGVzLCBjb25zdHJ1Y3RNZXRhZGF0YSB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVBcHAoXG4gIGFwcDogU3ludGhlc2l6ZWRBcHAsXG4gIHN0ZG91dDogYm9vbGVhbixcbiAgdmFsaWRhdGlvbnM6IFZhbGlkYXRpb25Db25maWdbXSxcbiAgcGx1Z2luTWFuYWdlcjogUGx1Z2luTWFuYWdlcixcbiAgcmVwb3J0c0ZpbGU/OiBzdHJpbmcpIHtcblxuICBjb25zdCB2YWxpZGF0b3JzOiB7IHBsdWdpbjogVmFsaWRhdGlvbjsgY29udGV4dDogVmFsaWRhdGlvbkNvbnRleHR9W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvbnMpIHtcbiAgICBjb25zdCB7IHBsdWdpbiwgY29udGV4dCB9ID0gVmFsaWRhdGlvblBsdWdpbi5sb2FkKHZhbGlkYXRpb24sIGFwcCwgc3Rkb3V0LCBwbHVnaW5NYW5hZ2VyKTtcbiAgICB2YWxpZGF0b3JzLnB1c2goeyBwbHVnaW4sIGNvbnRleHQgfSk7XG4gIH1cblxuICBjb25zdCByZXBvcnRzOiBWYWxpZGF0aW9uUmVwb3J0W10gPSBbXTtcbiAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gIGNvbnNvbGUubG9nKCdQZXJmb3JtaW5nIHZhbGlkYXRpb25zJyk7XG5cbiAgZm9yIChjb25zdCB2YWxpZGF0b3Igb2YgdmFsaWRhdG9ycykge1xuICAgIGF3YWl0IHZhbGlkYXRvci5wbHVnaW4udmFsaWRhdGUodmFsaWRhdG9yLmNvbnRleHQpO1xuICAgIGNvbnN0IHJlcG9ydCA9IHZhbGlkYXRvci5jb250ZXh0LnJlcG9ydDtcbiAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiByZXBvcnQuc3VjY2VzcztcbiAgICByZXBvcnRzLnB1c2gocmVwb3J0KTtcbiAgfVxuXG4gIGNvbnNvbGUubG9nKCdWYWxpZGF0aW9ucyBmaW5pc2hlZCcpO1xuXG4gIC8vIG5vdyB3ZSBjYW4gcHJpbnQgdGhlbS4gd2UgZG9uJ3QgaW5jcmVtZW50YWxseSBwcmludFxuICAvLyBzbyB0byBub3QgY2x1dHRlciB0aGUgdGVybWluYWwgaW4gY2FzZSBvZiBlcnJvcnMuXG4gIGZvciAoY29uc3QgcmVwb3J0IG9mIHJlcG9ydHMpIHtcbiAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgY29uc29sZS5sb2cocmVwb3J0LnRvU3RyaW5nKCkpO1xuICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgfVxuXG4gIGlmIChyZXBvcnRzRmlsZSkge1xuXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMocmVwb3J0c0ZpbGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byB3cml0ZSB2YWxpZGF0aW9uIHJlcG9ydHMgZmlsZS4gQWxyZWFkeSBleGlzdHM6ICR7cmVwb3J0c0ZpbGV9YCk7XG4gICAgfVxuICAgIC8vIHdyaXRlIHRoZSByZXBvcnRzIGluIEpTT04gdG8gYSBmaWxlXG4gICAgZnMud3JpdGVGaWxlU3luYyhyZXBvcnRzRmlsZSwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgcmVwb3J0czogcmVwb3J0cy5tYXAociA9PiByLnRvSnNvbigpKSxcbiAgICB9LCBudWxsLCAyKSk7XG4gIH1cblxuICAvLyBleGl0IHdpdGggZmFpbHVyZSBpZiBhbnkgcmVwb3J0IHJlc3VsdGVkIGluIGEgZmFpbHVyZVxuICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICBjb25zb2xlLmVycm9yKCdWYWxpZGF0aW9uIGZhaWxlZC4gU2VlIGFib3ZlIHJlcG9ydHMgZm9yIGRldGFpbHMnKTtcbiAgICBwcm9jZXNzLmV4aXQoMik7XG4gIH1cblxuICBjb25zb2xlLmxvZygnVmFsaWRhdGlvbnMgZW5kZWQgc3VjY2VzZnVsbHknKTtcblxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FmZVBhcnNlSnNvbih0ZXh0OiBzdHJpbmcsIHJldml2ZXI6IFNhZmVSZXZpdmVyKTogYW55IHtcbiAgY29uc3QganNvbiA9IEpTT04ucGFyc2UodGV4dCk7XG4gIHJldml2ZXIuc2FuaXRpemUoanNvbik7XG4gIHJldHVybiBqc29uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FmZVBhcnNlWWFtbCh0ZXh0OiBzdHJpbmcsIHJldml2ZXI6IFNhZmVSZXZpdmVyKTogYW55W10ge1xuXG4gIC8vIHBhcnNlQWxsRG9jdW1lbnRzIGRvZXNudCBhY2NlcHQgYSByZXZpdmVyXG4gIC8vIHNvIHdlIGZpcnN0IHBhcnNlIG5vcm1hbGx5IGFuZCB0aGFuIHRyYW5zZm9ybVxuICAvLyB0byBKUyB1c2luZyB0aGUgcmV2aXZlci5cbiAgY29uc3QgcGFyc2VkID0geWFtbC5wYXJzZUFsbERvY3VtZW50cyh0ZXh0KTtcbiAgY29uc3QgZG9jcyA9IFtdO1xuICBmb3IgKGNvbnN0IGRvYyBvZiBwYXJzZWQpIHtcbiAgICBjb25zdCBqc29uID0gZG9jLnRvSlMoKTtcbiAgICByZXZpdmVyLnNhbml0aXplKGpzb24pO1xuICAgIGRvY3MucHVzaChqc29uKTtcbiAgfVxuICByZXR1cm4gZG9jcztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkKHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcblxuICBsZXQgY2xpZW50OiB0eXBlb2YgaHR0cCB8IHR5cGVvZiBodHRwcztcbiAgY29uc3QgcHJvdG8gPSBwYXJzZSh1cmwpLnByb3RvY29sO1xuXG4gIGlmICghcHJvdG8gfHwgcHJvdG8gPT09ICdmaWxlOicpIHtcbiAgICByZXR1cm4gZnMucmVhZEZpbGUodXJsLCAndXRmLTgnKTtcbiAgfVxuXG4gIHN3aXRjaCAocHJvdG8pIHtcbiAgICBjYXNlICdodHRwczonOlxuICAgICAgY2xpZW50ID0gaHR0cHM7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2h0dHA6JzpcbiAgICAgIGNsaWVudCA9IGh0dHA7XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIHByb3RvY29sICR7cHJvdG99YCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFByb21pc2UoKG9rLCBrbykgPT4ge1xuICAgIGNvbnN0IHJlcSA9IGNsaWVudC5nZXQodXJsLCByZXMgPT4ge1xuICAgICAgc3dpdGNoIChyZXMuc3RhdHVzQ29kZSkge1xuICAgICAgICBjYXNlIDIwMDoge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBuZXcgQXJyYXk8QnVmZmVyPigpO1xuICAgICAgICAgIHJlcy5vbignZGF0YScsIGNodW5rID0+IGRhdGEucHVzaChjaHVuaykpO1xuICAgICAgICAgIHJlcy5vbmNlKCdlbmQnLCAoKSA9PiBvayhCdWZmZXIuY29uY2F0KGRhdGEpLnRvU3RyaW5nKCd1dGYtOCcpKSk7XG4gICAgICAgICAgcmVzLm9uY2UoJ2Vycm9yJywga28pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSAzMDE6XG4gICAgICAgIGNhc2UgMzAyOiB7XG4gICAgICAgICAgaWYgKHJlcy5oZWFkZXJzLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBvayhkb3dubG9hZChyZXMuaGVhZGVycy5sb2NhdGlvbikpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBrbyhuZXcgRXJyb3IoYCR7cmVzLnN0YXR1c01lc3NhZ2V9OiAke3VybH1gKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJlcS5vbmNlKCdlcnJvcicsIGtvKTtcbiAgICByZXEuZW5kKCk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmluZE1hbmlmZXN0cyhkaXJlY3Rvcnk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgLy8gRW5zdXJlIHBhdGggaXMgdmFsaWRcbiAgdHJ5IHtcbiAgICBhd2FpdCBwcm9taXNlcy5hY2Nlc3MoZGlyZWN0b3J5KTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLy8gUmVhZCBQYXRoIGNvbnRlbnRzXG4gIGNvbnN0IGVudHJpZXMgPSBhd2FpdCBwcm9taXNlcy5yZWFkZGlyKGRpcmVjdG9yeSwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pO1xuXG4gIC8vIEdldCBmaWxlcyB3aXRoaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5XG4gIGNvbnN0IGZpbGVzID0gZW50cmllc1xuICAgIC5maWx0ZXIoZmlsZSA9PiAoIWZpbGUuaXNEaXJlY3RvcnkoKSAmJiBmaWxlLm5hbWUuZW5kc1dpdGgoJy55YW1sJykpKVxuICAgIC5tYXAoZmlsZSA9PiAoZGlyZWN0b3J5ICsgJy8nICsgZmlsZS5uYW1lKSk7XG5cbiAgLy8gR2V0IHN1Yi1mb2xkZXJzIHdpdGhpbiB0aGUgY3VycmVudCBmb2xkZXJcbiAgY29uc3QgZm9sZGVycyA9IGVudHJpZXMuZmlsdGVyKGZvbGRlciA9PiBmb2xkZXIuaXNEaXJlY3RvcnkoKSk7XG5cbiAgZm9yIChjb25zdCBmb2xkZXIgb2YgZm9sZGVycykge1xuICAgIGZpbGVzLnB1c2goLi4uYXdhaXQgZmluZE1hbmlmZXN0cyhgJHtkaXJlY3Rvcnl9LyR7Zm9sZGVyLm5hbWV9YCkpO1xuICB9XG5cbiAgcmV0dXJuIGZpbGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZENvbnN0cnVjdE1ldGFkYXRhKGRpcmVjdG9yeTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgLy8gdGhpcyBmaWxlIGlzIG9wdGlvbmFsbHkgY3JlYXRlZCBkdXJpbmcgc3ludGhlc2lzXG4gIGNvbnN0IHAgPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCAnY29uc3RydWN0LW1ldGFkYXRhLmpzb24nKTtcbiAgcmV0dXJuIGZzLmV4aXN0c1N5bmMocCkgPyBwIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBzeW50aGVzaXppbmcgYW4gYXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGhlc2l6ZWRBcHAge1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBtYW5pZmVzdHMgcHJvZHVjZWQgYnkgdGhlIGFwcC5cbiAgICovXG4gIHJlYWRvbmx5IG1hbmlmZXN0czogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdHJ1Y3QgbWV0YWRhdGEgZmlsZSAoaWYgZXhpc3RzKS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdE1ldGFkYXRhPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbXBvcnRzKHNwZWM6IHN0cmluZyk6IEltcG9ydFNwZWMge1xuICBjb25zdCBzcGxpdEltcG9ydCA9IHNwZWMuc3BsaXQoUFJFRklYX0RFTElNKTtcblxuICAvLyBrOHNAeC55LnpcbiAgLy8gY3JkLnlhbWxcbiAgLy8gdXJsLmNvbS9jcmQueWFtbFxuICBpZiAoc3BsaXRJbXBvcnQubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNvdXJjZTogc3BlYyxcbiAgICB9O1xuICB9XG5cbiAgLy8gY3JkOj1jcmQueWFtbFxuICAvLyBjcmQ6PXVybC5jb20vY3JkLnlhbWxcbiAgaWYgKHNwbGl0SW1wb3J0Lmxlbmd0aCA9PT0gMikge1xuICAgIHJldHVybiB7XG4gICAgICBtb2R1bGVOYW1lUHJlZml4OiBzcGxpdEltcG9ydFswXSxcbiAgICAgIHNvdXJjZTogc3BsaXRJbXBvcnRbMV0sXG4gICAgfTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHBhcnNlIGltcG9ydCBzcGVjaWZpY2F0aW9uLiBTeW50YXggaXMgW05BTUU6PV1TUEVDJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoQW5kRW5jb2RlKGlucHV0OiBzdHJpbmcsIGFsZ29yaXRobTogc3RyaW5nID0gJ3NoYTI1NicsIGVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZyA9ICdoZXgnKTogc3RyaW5nIHtcbiAgY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goYWxnb3JpdGhtKTtcbiAgaGFzaC51cGRhdGUoaW5wdXQpO1xuICByZXR1cm4gaGFzaC5kaWdlc3QoZW5jb2RpbmcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVyaXZlRmlsZU5hbWUodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkZXZVcmwgPSBtYXRjaENyZHNEZXZVcmwodXJsKTtcbiAgbGV0IGZpbGVuYW1lID0gdW5kZWZpbmVkO1xuXG4gIGlmIChkZXZVcmwpIHtcbiAgICBjb25zdCBsYXN0SW5kZXhPZlNsYXNoID0gZGV2VXJsLmxhc3RJbmRleE9mKCcvJyk7XG4gICAgY29uc3QgbGFzdEluZGV4T2ZBdCA9IGRldlVybC5sYXN0SW5kZXhPZignQCcpO1xuICAgIGZpbGVuYW1lID0gKGxhc3RJbmRleE9mU2xhc2ggPiAwICYmIGxhc3RJbmRleE9mQXQgPiAwKSA/IGRldlVybC5zbGljZShsYXN0SW5kZXhPZlNsYXNoKzEsIGxhc3RJbmRleE9mQXQpOiB1bmRlZmluZWQ7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbGFzdEluZGV4T2ZTbGFzaCA9IHVybC5sYXN0SW5kZXhPZignLycpO1xuICAgIGNvbnN0IGxhc3RJbmRleE9mWWFtbCA9IHVybC5sYXN0SW5kZXhPZignLnlhbWwnKSA+IDAgPyB1cmwubGFzdEluZGV4T2YoJy55YW1sJykgOiB1cmwubGFzdEluZGV4T2YoJy55bWwnKTtcblxuICAgIGZpbGVuYW1lID0gKGxhc3RJbmRleE9mU2xhc2ggPiAwICYmIGxhc3RJbmRleE9mWWFtbCA+IDApID8gdXJsLnNsaWNlKGxhc3RJbmRleE9mU2xhc2grMSwgbGFzdEluZGV4T2ZZYW1sKTogdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKCFmaWxlbmFtZSkge1xuICAgIC8vIElmIHRoZSB1cmwgaWYgZm9yIGEgbG9jYWwgZmlsZSwgdGhlbiBqdXN0IGVuY29kZSB0aGUgZmlsZW5hbWUgYW5kIG5vdCB0aGUgZW50aXJlIHBhdGhcbiAgICAvLyBTaW5jZSBwYXRoIGNhbiBkZXBlbmQgb24gcGxhdGZvcm1cbiAgICBsZXQgZmlsZSA9IGV4aXN0c1N5bmModXJsKSA/IHBhdGguYmFzZW5hbWUodXJsKSA6IHVybDtcblxuICAgIGZpbGVuYW1lID0gaGFzaEFuZEVuY29kZShmaWxlKTtcbiAgfVxuXG4gIHJldHVybiBmaWxlbmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSzhzSW1wb3J0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHZhbHVlICE9PSAnazhzJyAmJiAhdmFsdWUuc3RhcnRzV2l0aCgnazhzQCcpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0hlbG1JbXBvcnQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIXZhbHVlLnN0YXJ0c1dpdGgoJ2hlbG06JykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZHNBcmVQcmVzZW50KGltcHJ0czogc3RyaW5nW10gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIChpbXBydHMgPz8gW10pLnNvbWUoaW1wcnQgPT4gKCFpc0s4c0ltcG9ydChpbXBydCkgJiYgIWlzSGVsbUltcG9ydChpbXBydCkpKTtcbn0iXX0=
package/package.json CHANGED
@@ -75,8 +75,8 @@
75
75
  "dependencies": {
76
76
  "@types/node": "^16",
77
77
  "ajv": "^8.12.0",
78
- "cdk8s": "^2.66.8",
79
- "cdk8s-plus-25": "^2.22.30",
78
+ "cdk8s": "^2.66.9",
79
+ "cdk8s-plus-25": "^2.22.31",
80
80
  "codemaker": "^1.90.0",
81
81
  "colors": "1.4.0",
82
82
  "constructs": "^10.3.0",
@@ -103,7 +103,7 @@
103
103
  "node": ">= 16.20.0"
104
104
  },
105
105
  "license": "Apache-2.0",
106
- "version": "2.132.0",
106
+ "version": "2.133.0",
107
107
  "jest": {
108
108
  "testMatch": [
109
109
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",