@pipeline-builder/pipeline-manager 3.4.167 → 3.4.169

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.
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoFpC;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0J9C"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoFpC;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuJ9C"}
@@ -209,10 +209,8 @@ export function version(program) {
209
209
  });
210
210
  }
211
211
  });
212
- // Also support -v and --version flags at root level
213
- program.on('option:version', () => {
214
- console.log(`${APP_NAME} v${APP_VERSION}`);
215
- process.exit(0);
216
- });
212
+ // NOTE: `-v`/`--version` is handled by commander's own `.version(...)` in
213
+ // cli.ts (registered first, so it exits before any custom option:version
214
+ // listener would run) — a duplicate listener here was dead code.
217
215
  }
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLFlBQVksQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEksTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztBQWlCOUQ7OztHQUdHO0FBQ0gsU0FBUyxhQUFhO0lBQ3BCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsUUFBUSxD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IENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgeyBBUFBfTkFNRSwgQVBQX1ZFUlNJT04sIGdlbmVyYXRlRXhlY3V0aW9uSWQgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBnZXRDZGtJbmZvIH0gZnJvbSAnLi4vdXRpbHMvY2RrLXV0aWxzLmpzJztcbmltcG9ydCB7IGdldENvbmZpZyB9IGZyb20gJy4uL3V0aWxzL2NvbmZpZy1sb2FkZXIuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludERpdmlkZXIsIHByaW50RXJyb3IsIHByaW50SW5mbywgcHJpbnRLZXlWYWx1ZSwgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5cbmNvbnN0IHsgYm9sZCwgY3lhbiwgZGltLCBncmVlbiwgbWFnZW50YSwgcmVkLCB5ZWxsb3cgfSA9IHBpY287XG5cbi8qKlxuICogUnVudGltZSBzeXN0ZW0gaW5mb3JtYXRpb24gY29sbGVjdGVkIGZvciB0aGUgYHZlcnNpb24gLS12ZXJib3NlYCBvdXRwdXQuXG4gKi9cbmludGVyZmFjZSBTeXN0ZW1JbmZvIHtcbiAgbm9kZWpzOiBzdHJpbmc7XG4gIG5wbTogc3RyaW5nIHwgbnVsbDtcbiAgcGxhdGZvcm06IHN0cmluZztcbiAgYXJjaGl0ZWN0dXJlOiBzdHJpbmc7XG4gIG1lbW9yeToge1xuICAgIHRvdGFsOiBzdHJpbmc7XG4gICAgYXZhaWxhYmxlSGVhcDogc3RyaW5nO1xuICB9O1xuICB1cHRpbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb2xsZWN0cyBydW50aW1lIHN5c3RlbSBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgTm9kZS5qcy9ucG0gdmVyc2lvbnMsXG4gKiBwbGF0Zm9ybSwgYXJjaGl0ZWN0dXJlLCBoZWFwIG1lbW9yeSB1c2FnZSwgYW5kIHByb2Nlc3MgdXB0aW1lLlxuICovXG5mdW5jdGlvbiBnZXRTeXN0ZW1JbmZvKCk6IFN5c3RlbUluZm8ge1xuICBjb25zdCBtZW0gPSBwcm9jZXNzLm1lbW9yeVVzYWdlKCk7XG4gIGNvbnN0IHRvdGFsTWVtID0gKG1lbS5oZWFwVG90YWwgLyAxMDI0IC8gMTAyNCkudG9GaXhlZCgyKTtcbiAgY29uc3QgYXZhaWxhYmxlSGVhcCA9ICgobWVtLmhlYXBUb3RhbCAtIG1lbS5oZWFwVXNlZCkgLyAxMDI0IC8gMTAyNCkudG9GaXhlZCgyKTtcbiAgY29uc3QgdXB0aW1lID0gcHJvY2Vzcy51cHRpbWUoKTtcblxuICBsZXQgbnBtOiBzdHJpbmcgfCBudWxsO1xuICB0cnkge1xuICAgIG5wbSA9IGV4ZWNTeW5jKCducG0gLS12ZXJzaW9uJywgeyBlbmNvZGluZzogJ3V0Zi04Jywgc3RkaW86ICdwaXBlJyB9KS50cmltKCk7XG4gIH0gY2F0Y2gge1xuICAgIG5wbSA9IG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5vZGVqczogcHJvY2Vzcy52ZXJzaW9uLFxuICAgIG5wbSxcbiAgICBwbGF0Zm9ybTogcHJvY2Vzcy5wbGF0Zm9ybSxcbiAgICBhcmNoaXRlY3R1cmU6IHByb2Nlc3MuYXJjaCxcbiAgICBtZW1vcnk6IHsgdG90YWw6IGAke3RvdGFsTWVtfSBNQmAsIGF2YWlsYWJsZUhlYXA6IGAke2F2YWlsYWJsZUhlYXB9IE1CYCB9LFxuICAgIHVwdGltZTogYCR7TWF0aC5mbG9vcih1cHRpbWUgLyAzNjAwKX1oICR7TWF0aC5mbG9vcigodXB0aW1lICUgMzYwMCkgLyA2MCl9bSAke01hdGguZmxvb3IodXB0aW1lICUgNjApfXNgLFxuICB9O1xufVxuXG4vKipcbiAqIEF0dGVtcHRzIHRvIGxvYWQgdGhlIENMSSBjb25maWd1cmF0aW9uIGFuZCByZXBvcnRzIHdoZXRoZXIgaXQgaXMgdmFsaWQuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBgdmFsaWQ6IHRydWVgIG9uIHN1Y2Nlc3MsIG9yIGB2YWxpZDogZmFsc2VgIHdpdGggYW4gZXJyb3IgbWVzc2FnZS5cbiAqL1xuZnVuY3Rpb24gY2hlY2tDb25maWd1cmF0aW9uKCk6IHsgdmFsaWQ6IGJvb2xlYW47IGVycm9yPzogc3RyaW5nIH0ge1xuICB0cnkge1xuICAgIGdldENvbmZpZygpO1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvciksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyB3aGljaCBrZXkgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBjdXJyZW50bHkgc2V0LlxuICogQHJldHVybnMgUHJlc2VuY2UgZmxhZ3MgZm9yIGBQTEFURk9STV9UT0tFTmAsIGBQTEFURk9STV9CQVNFX1VSTGAsIGFuZCBgQ0xJX0NPTkZJR19QQVRIYC5cbiAqL1xuZnVuY3Rpb24gZ2V0RW52aXJvbm1lbnRTdGF0dXMoKToge1xuICB0b2tlbjogYm9vbGVhbjtcbiAgdXJsOiBib29sZWFuO1xuICBjb25maWdQYXRoOiBib29sZWFuO1xufSB7XG4gIHJldHVybiB7XG4gICAgdG9rZW46ICEhcHJvY2Vzcy5lbnYuUExBVEZPUk1fVE9LRU4sXG4gICAgdXJsOiAhIXByb2Nlc3MuZW52LlBMQVRGT1JNX0JBU0VfVVJMLFxuICAgIGNvbmZpZ1BhdGg6ICEhcHJvY2Vzcy5lbnYuQ0xJX0NPTkZJR19QQVRILFxuICB9O1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgYHZlcnNpb25gIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogRGlzcGxheXMgdGhlIENMSSBuYW1lL3ZlcnNpb24sIEFXUyBDREsgc3RhdHVzLCBhbmQgb3B0aW9uYWxseVxuICogZnVsbCBzeXN0ZW0gZGlhZ25vc3RpY3MgKGAtLXZlcmJvc2VgKSBvciBjb25maWd1cmF0aW9uIHZhbGlkYXRpb25cbiAqIChgLS1jaGVjay1jb25maWdgKS4gIFN1cHBvcnRzIGAtLWpzb25gIGZvciBtYWNoaW5lLXJlYWRhYmxlIG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbSAtIFRoZSByb290IENvbW1hbmRlciBwcm9ncmFtIGluc3RhbmNlIHRvIGF0dGFjaCB0aGUgY29tbWFuZCB0by5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcnNpb24ocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ3ZlcnNpb24nKVxuICAgIC5kZXNjcmlwdGlvbignRGlzcGxheSBDTEkgdmVyc2lvbiBhbmQgZW52aXJvbm1lbnQgaW5mb3JtYXRpb24nKVxuICAgIC5vcHRpb24oJy0tdmVyYm9zZScsICdTaG93IGRldGFpbGVkIGVudmlyb25tZW50IGluZm9ybWF0aW9uJywgZmFsc2UpXG4gICAgLm9wdGlvbignLS1jaGVjay1jb25maWcnLCAnVmVyaWZ5IGNvbmZpZ3VyYXRpb24gc3RhdHVzJywgZmFsc2UpXG4gICAgLm9wdGlvbignLS1qc29uJywgJ091dHB1dCBpbiBKU09OIGZvcm1hdCcsIGZhbHNlKVxuICAgIC5hY3Rpb24oKG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gZ2VuZXJhdGVFeGVjdXRpb25JZCgpO1xuICAgICAgICBjb25zdCBjZGtJbmZvID0gZ2V0Q2RrSW5mbygpO1xuXG4gICAgICAgIC8vIEpTT04gb3V0cHV0XG4gICAgICAgIGlmIChvcHRpb25zLmpzb24pIHtcbiAgICAgICAgICBjb25zdCBzeXN0ZW1JbmZvID0gZ2V0U3lzdGVtSW5mbygpO1xuICAgICAgICAgIGNvbnN0IGNvbmZpZ1N0YXR1cyA9IG9wdGlvbnMuY2hlY2tDb25maWcgPyBjaGVja0NvbmZpZ3VyYXRpb24oKSA6IHsgdmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICBjb25zdCBlbnZTdGF0dXMgPSBnZXRFbnZpcm9ubWVudFN0YXR1cygpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgY2xpOiB7IG5hbWU6IEFQUF9OQU1FLCB2ZXJzaW9uOiBBUFBfVkVSU0lPTiB9LFxuICAgICAgICAgICAgc3lzdGVtOiBzeXN0ZW1JbmZvLFxuICAgICAgICAgICAgY2RrOiB7IGF2YWlsYWJsZTogY2RrSW5mby5hdmFpbGFibGUsIHZlcnNpb246IGNka0luZm8udmVyc2lvbiB9LFxuICAgICAgICAgICAgY29uZmlndXJhdGlvbjogeyB2YWxpZDogY29uZmlnU3RhdHVzLnZhbGlkLCBlcnJvcjogY29uZmlnU3RhdHVzLmVycm9yIH0sXG4gICAgICAgICAgICBlbnZpcm9ubWVudDogZW52U3RhdHVzLFxuICAgICAgICAgICAgZXhlY3V0aW9uSWQsXG4gICAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICB9LCBudWxsLCAyKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RhbmRhcmQgb3V0cHV0XG4gICAgICAgIHByaW50U2VjdGlvbignVmVyc2lvbiBJbmZvcm1hdGlvbicpO1xuICAgICAgICBjb25zb2xlLmxvZyhgJHttYWdlbnRhKGBbRVhFLSR7ZXhlY3V0aW9uSWR9XWApfSAke2N5YW4oYm9sZCgnQ0xJIFZlcnNpb24gQ2hlY2snKSl9YCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcblxuICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAnQ0xJIE5hbWUnOiBib2xkKEFQUF9OQU1FKSxcbiAgICAgICAgICAnQ0xJIFZlcnNpb24nOiBncmVlbihib2xkKEFQUF9WRVJTSU9OKSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByaW50RGl2aWRlcigpO1xuXG4gICAgICAgIC8vIFZlcmJvc2U6IHN5c3RlbSBlbnZpcm9ubWVudFxuICAgICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgcHJpbnRTZWN0aW9uKCdTeXN0ZW0gRW52aXJvbm1lbnQnKTtcbiAgICAgICAgICBjb25zdCBzeXN0ZW1JbmZvID0gZ2V0U3lzdGVtSW5mbygpO1xuICAgICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICAgJ05vZGUuanMnOiBzeXN0ZW1JbmZvLm5vZGVqcyxcbiAgICAgICAgICAgICducG0nOiBzeXN0ZW1JbmZvLm5wbSB8fCB5ZWxsb3coJyhub3QgYXZhaWxhYmxlKScpLFxuICAgICAgICAgICAgJ1BsYXRmb3JtJzogc3lzdGVtSW5mby5wbGF0Zm9ybSxcbiAgICAgICAgICAgICdBcmNoaXRlY3R1cmUnOiBzeXN0ZW1JbmZvLmFyY2hpdGVjdHVyZSxcbiAgICAgICAgICAgICdNZW1vcnkgKEhlYXApJzogYCR7c3lzdGVtSW5mby5tZW1vcnkudG90YWx9IHRvdGFsLCAke3N5c3RlbUluZm8ubWVtb3J5LmF2YWlsYWJsZUhlYXB9IGF2YWlsYWJsZWAsXG4gICAgICAgICAgICAnUHJvY2VzcyBVcHRpbWUnOiBzeXN0ZW1JbmZvLnVwdGltZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBwcmludERpdmlkZXIoKTtcbiAgICAgICAgICBwcmludFNlY3Rpb24oJ0FXUyBDREsnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENESyBpbmZvcm1hdGlvblxuICAgICAgICBpZiAoY2RrSW5mby5hdmFpbGFibGUgJiYgY2RrSW5mby52ZXJzaW9uKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkgcHJpbnRTdWNjZXNzKCdBV1MgQ0RLIGlzIGluc3RhbGxlZCcpO1xuICAgICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICAgJ0NESyBWZXJzaW9uJzogZ3JlZW4oY2RrSW5mby52ZXJzaW9uKSxcbiAgICAgICAgICAgICdTdGF0dXMnOiBncmVlbign4pyTIEF2YWlsYWJsZScpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgIHByaW50V2FybmluZygnQVdTIENESyBpcyBub3QgaW5zdGFsbGVkJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkaW0oJyAgSW5zdGFsbCBDREsgd2l0aDogbnBtIGluc3RhbGwgLWcgYXdzLWNkaycpKTtcbiAgICAgICAgICAgIGlmIChjZGtJbmZvLmVycm9yKSBjb25zb2xlLmxvZyhkaW0oYCAgRXJyb3I6ICR7Y2RrSW5mby5lcnJvcn1gKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICAgJ0FXUyBDREsnOiByZWQoJ+KclyBOb3QgaW5zdGFsbGVkJyksXG4gICAgICAgICAgICAnU3RhdHVzJzogcmVkKCfinJcgTm90IEF2YWlsYWJsZScpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhkaW0oJ1xcbiAgUnVuIHdpdGggLS12ZXJib3NlIGZvciBkZXRhaWxlZCBlbnZpcm9ubWVudCBpbmZvcm1hdGlvbicpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENvbmZpZ3VyYXRpb24gY2hlY2tcbiAgICAgICAgaWYgKG9wdGlvbnMuY2hlY2tDb25maWcpIHtcbiAgICAgICAgICBwcmludERpdmlkZXIoKTtcbiAgICAgICAgICBwcmludFNlY3Rpb24oJ0NvbmZpZ3VyYXRpb24gU3RhdHVzJyk7XG5cbiAgICAgICAgICBjb25zdCBjb25maWdTdGF0dXMgPSBjaGVja0NvbmZpZ3VyYXRpb24oKTtcbiAgICAgICAgICBjb25zdCBlbnZTdGF0dXMgPSBnZXRFbnZpcm9ubWVudFN0YXR1cygpO1xuXG4gICAgICAgICAgaWYgKGNvbmZpZ1N0YXR1cy52YWxpZCkge1xuICAgICAgICAgICAgcHJpbnRTdWNjZXNzKCdDb25maWd1cmF0aW9uIGlzIHZhbGlkJyk7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZygpO1xuICAgICAgICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAgICAgICAnQVBJIEJhc2UgVVJMJzogY29uZmlnLmFwaS5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICdTU0wgVmVyaWZpY2F0aW9uJzogY29uZmlnLmFwaS5yZWplY3RVbmF1dGhvcml6ZWQgPyBncmVlbignRW5hYmxlZCcpIDogeWVsbG93KCdEaXNhYmxlZCcpLFxuICAgICAgICAgICAgICAgICdUaW1lb3V0JzogYCR7Y29uZmlnLmFwaS50aW1lb3V0fW1zYCxcbiAgICAgICAgICAgICAgICAnQXV0aGVudGljYXRlZCc6IGNvbmZpZy5hdXRoLnRva2VuID8gZ3JlZW4oJ1llcycpIDogcmVkKCdObycpLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIHByaW50V2FybmluZygnQ291bGQgbm90IGxvYWQgZnVsbCBjb25maWd1cmF0aW9uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByaW50RXJyb3IoJ0NvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCcpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZ1N0YXR1cy5lcnJvcikge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWQoYCAgRXJyb3I6ICR7Y29uZmlnU3RhdHVzLmVycm9yfWApKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgICAgcHJpbnRJbmZvKCdFbnZpcm9ubWVudCBWYXJpYWJsZXMnKTtcbiAgICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAgIFBMQVRGT1JNX1RPS0VOOiBlbnZTdGF0dXMudG9rZW4gPyBncmVlbign4pyTIFNldCcpIDogcmVkKCfinJcgTm90IHNldCcpLFxuICAgICAgICAgICAgUExBVEZPUk1fQkFTRV9VUkw6IGVudlN0YXR1cy51cmwgPyBncmVlbign4pyTIFNldCcpIDogZGltKCcobm90IHNldCAtIHVzaW5nIGRlZmF1bHQpJyksXG4gICAgICAgICAgICBDTElfQ09ORklHX1BBVEg6IGVudlN0YXR1cy5jb25maWdQYXRoID8gZ3JlZW4oJ+KckyBTZXQnKSA6IGRpbSgnKG5vdCBzZXQgLSB1c2luZyBkZWZhdWx0KScpLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKCFlbnZTdGF0dXMudG9rZW4pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgICAgIHByaW50V2FybmluZygnUExBVEZPUk1fVE9LRU4gaXMgcmVxdWlyZWQgZm9yIEFQSSBvcGVyYXRpb25zJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkaW0oJyAgU2V0IGl0IHdpdGg6IGV4cG9ydCBQTEFURk9STV9UT0tFTj1cInlvdXItdG9rZW4taGVyZVwiJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhkaW0oJ1xcbiAg8J+SoSBUaXA6IFJ1biB3aXRoIC0tY2hlY2stY29uZmlnIHRvIHZlcmlmeSBjb25maWd1cmF0aW9uJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9vdGVyXG4gICAgICAgIHByaW50RGl2aWRlcigpO1xuICAgICAgICBjb25zb2xlLmxvZyhkaW0oYCAgRXhlY3V0aW9uIElEOiAke2V4ZWN1dGlvbklkfWApKTtcbiAgICAgICAgY29uc29sZS5sb2coZGltKGAgIFRpbWVzdGFtcDogJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCkpO1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG5cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5HRU5FUkFMLCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgY29tbWFuZDogJ3ZlcnNpb24nLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICB2ZXJib3NlOiBvcHRpb25zLnZlcmJvc2UsXG4gICAgICAgICAgICAgIGNoZWNrQ29uZmlnOiBvcHRpb25zLmNoZWNrQ29uZmlnLFxuICAgICAgICAgICAgICBqc29uOiBvcHRpb25zLmpzb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIC8vIEFsc28gc3VwcG9ydCAtdiBhbmQgLS12ZXJzaW9uIGZsYWdzIGF0IHJvb3QgbGV2ZWxcbiAgcHJvZ3JhbS5vbignb3B0aW9uOnZlcnNpb24nLCAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7QVBQX05BTUV9IHYke0FQUF9WRVJTSU9OfWApO1xuICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgfSk7XG59XG4iXX0=
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLFlBQVksQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEksTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztBQWlCOUQ7OztHQUdHO0FBQ0gsU0FBUyxhQUFhO0lBQ3BCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFaEMsSUFBSSxHQUFrQixDQUFDO0lBQ3ZCLElBQUksQ0FBQztRQUNILEdBQUcsR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvRSxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsR0FBRyxHQUFHLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3ZCLEdBQUc7UUFDSCxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7UUFDMUIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQzFCLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLFFBQVEsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUFHLGFBQWEsS0FBSyxFQUFFO1FBQ3pFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUc7S0FDekcsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGtCQUFrQjtJQUN6QixJQUFJLENBQUM7UUFDSCxTQUFTLEVBQUUsQ0FBQztRQUNaLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUM5RCxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLG9CQUFvQjtJQUszQixPQUFPO1FBQ0wsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWM7UUFDbkMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQjtRQUNwQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZTtLQUMxQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxPQUFnQjtJQUN0QyxPQUFPO1NBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUNsQixXQUFXLENBQUMsaURBQWlELENBQUM7U0FDOUQsTUFBTSxDQUFDLFdBQVcsRUFBRSx1Q0FBdUMsRUFBRSxLQUFLLENBQUM7U0FDbkUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLDZCQUE2QixFQUFFLEtBQUssQ0FBQztTQUM5RCxNQUFNLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLEtBQUssQ0FBQztTQUNoRCxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNsQixJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1lBQzFDLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBRTdCLGNBQWM7WUFDZCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxVQUFVLEdBQUcsYUFBYSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNsRixNQUFNLFNBQVMsR0FBRyxvQkFBb0IsRUFBRSxDQUFDO2dCQUV6QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7b0JBQ3pCLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRTtvQkFDN0MsTUFBTSxFQUFFLFVBQVU7b0JBQ2xCLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUMvRCxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBRTtvQkFDdkUsV0FBVyxFQUFFLFNBQVM7b0JBQ3RCLFdBQVc7b0JBQ1gsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2lCQUNwQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNiLE9BQU87WUFDVCxDQUFDO1lBRUQsa0JBQWtCO1lBQ2xCLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxXQUFXLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyRixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWhCLGFBQWEsQ0FBQztnQkFDWixVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDeEMsQ0FBQyxDQUFDO1lBRUgsWUFBWSxFQUFFLENBQUM7WUFFZiw4QkFBOEI7WUFDOUIsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUNuQyxNQUFNLFVBQVUsR0FBRyxhQUFhLEVBQUUsQ0FBQztnQkFDbkMsYUFBYSxDQUFDO29CQUNaLFNBQVMsRUFBRSxVQUFVLENBQUMsTUFBTTtvQkFDNUIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDO29CQUNsRCxVQUFVLEVBQUUsVUFBVSxDQUFDLFFBQVE7b0JBQy9CLGNBQWMsRUFBRSxVQUFVLENBQUMsWUFBWTtvQkFDdkMsZUFBZSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFdBQVcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLFlBQVk7b0JBQ2pHLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxNQUFNO2lCQUNwQyxDQUFDLENBQUM7Z0JBQ0gsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFFRCxrQkFBa0I7WUFDbEIsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxPQUFPLENBQUMsT0FBTztvQkFBRSxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FBQztnQkFDMUQsYUFBYSxDQUFDO29CQUNaLGFBQWEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztvQkFDckMsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUM7aUJBQy9CLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDcEIsWUFBWSxDQUFDLDBCQUEwQixDQUFDLENBQUM7b0JBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxPQUFPLENBQUMsS0FBSzt3QkFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ25FLENBQUM7Z0JBQ0QsYUFBYSxDQUFDO29CQUNaLFNBQVMsRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUM7b0JBQ2pDLFFBQVEsRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUM7aUJBQ2pDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDLENBQUM7WUFDbEYsQ0FBQztZQUVELHNCQUFzQjtZQUN0QixJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDeEIsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsWUFBWSxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0JBRXJDLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFDLE1BQU0sU0FBUyxHQUFHLG9CQUFvQixFQUFFLENBQUM7Z0JBRXpDLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN2QixZQUFZLENBQUMsd0JBQXdCLENBQUMsQ0FBQztvQkFFdkMsSUFBSSxDQUFDO3dCQUNILE1BQU0sTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO3dCQUMzQixhQUFhLENBQUM7NEJBQ1osY0FBYyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTzs0QkFDbEMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDOzRCQUN6RixTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSTs0QkFDcEMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7eUJBQzlELENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7d0JBQ2YsWUFBWSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7b0JBQ3BELENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxDQUFDO29CQUNOLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO29CQUN2QyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNyRCxDQUFDO2dCQUNILENBQUM7Z0JBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDaEIsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ25DLGFBQWEsQ0FBQztvQkFDWixjQUFjLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO29CQUNuRSxpQkFBaUIsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztvQkFDcEYsZUFBZSxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDO2lCQUMxRixDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDaEIsWUFBWSxDQUFDLCtDQUErQyxDQUFDLENBQUM7b0JBQzlELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLHdEQUF3RCxDQUFDLENBQUMsQ0FBQztnQkFDN0UsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDLENBQUM7WUFDbEYsQ0FBQztZQUVELFNBQVM7WUFDVCxZQUFZLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLG1CQUFtQixXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVsQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtnQkFDdEMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUU7b0JBQ1AsT0FBTyxFQUFFLFNBQVM7b0JBQ2xCLE9BQU8sRUFBRTt3QkFDUCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87d0JBQ3hCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVzt3QkFDaEMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO3FCQUNuQjtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLDBFQUEwRTtJQUMxRSx5RUFBeUU7SUFDekUsaUVBQWlFO0FBQ25FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgeyBBUFBfTkFNRSwgQVBQX1ZFUlNJT04sIGdlbmVyYXRlRXhlY3V0aW9uSWQgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBnZXRDZGtJbmZvIH0gZnJvbSAnLi4vdXRpbHMvY2RrLXV0aWxzLmpzJztcbmltcG9ydCB7IGdldENvbmZpZyB9IGZyb20gJy4uL3V0aWxzL2NvbmZpZy1sb2FkZXIuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludERpdmlkZXIsIHByaW50RXJyb3IsIHByaW50SW5mbywgcHJpbnRLZXlWYWx1ZSwgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5cbmNvbnN0IHsgYm9sZCwgY3lhbiwgZGltLCBncmVlbiwgbWFnZW50YSwgcmVkLCB5ZWxsb3cgfSA9IHBpY287XG5cbi8qKlxuICogUnVudGltZSBzeXN0ZW0gaW5mb3JtYXRpb24gY29sbGVjdGVkIGZvciB0aGUgYHZlcnNpb24gLS12ZXJib3NlYCBvdXRwdXQuXG4gKi9cbmludGVyZmFjZSBTeXN0ZW1JbmZvIHtcbiAgbm9kZWpzOiBzdHJpbmc7XG4gIG5wbTogc3RyaW5nIHwgbnVsbDtcbiAgcGxhdGZvcm06IHN0cmluZztcbiAgYXJjaGl0ZWN0dXJlOiBzdHJpbmc7XG4gIG1lbW9yeToge1xuICAgIHRvdGFsOiBzdHJpbmc7XG4gICAgYXZhaWxhYmxlSGVhcDogc3RyaW5nO1xuICB9O1xuICB1cHRpbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb2xsZWN0cyBydW50aW1lIHN5c3RlbSBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgTm9kZS5qcy9ucG0gdmVyc2lvbnMsXG4gKiBwbGF0Zm9ybSwgYXJjaGl0ZWN0dXJlLCBoZWFwIG1lbW9yeSB1c2FnZSwgYW5kIHByb2Nlc3MgdXB0aW1lLlxuICovXG5mdW5jdGlvbiBnZXRTeXN0ZW1JbmZvKCk6IFN5c3RlbUluZm8ge1xuICBjb25zdCBtZW0gPSBwcm9jZXNzLm1lbW9yeVVzYWdlKCk7XG4gIGNvbnN0IHRvdGFsTWVtID0gKG1lbS5oZWFwVG90YWwgLyAxMDI0IC8gMTAyNCkudG9GaXhlZCgyKTtcbiAgY29uc3QgYXZhaWxhYmxlSGVhcCA9ICgobWVtLmhlYXBUb3RhbCAtIG1lbS5oZWFwVXNlZCkgLyAxMDI0IC8gMTAyNCkudG9GaXhlZCgyKTtcbiAgY29uc3QgdXB0aW1lID0gcHJvY2Vzcy51cHRpbWUoKTtcblxuICBsZXQgbnBtOiBzdHJpbmcgfCBudWxsO1xuICB0cnkge1xuICAgIG5wbSA9IGV4ZWNTeW5jKCducG0gLS12ZXJzaW9uJywgeyBlbmNvZGluZzogJ3V0Zi04Jywgc3RkaW86ICdwaXBlJyB9KS50cmltKCk7XG4gIH0gY2F0Y2gge1xuICAgIG5wbSA9IG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5vZGVqczogcHJvY2Vzcy52ZXJzaW9uLFxuICAgIG5wbSxcbiAgICBwbGF0Zm9ybTogcHJvY2Vzcy5wbGF0Zm9ybSxcbiAgICBhcmNoaXRlY3R1cmU6IHByb2Nlc3MuYXJjaCxcbiAgICBtZW1vcnk6IHsgdG90YWw6IGAke3RvdGFsTWVtfSBNQmAsIGF2YWlsYWJsZUhlYXA6IGAke2F2YWlsYWJsZUhlYXB9IE1CYCB9LFxuICAgIHVwdGltZTogYCR7TWF0aC5mbG9vcih1cHRpbWUgLyAzNjAwKX1oICR7TWF0aC5mbG9vcigodXB0aW1lICUgMzYwMCkgLyA2MCl9bSAke01hdGguZmxvb3IodXB0aW1lICUgNjApfXNgLFxuICB9O1xufVxuXG4vKipcbiAqIEF0dGVtcHRzIHRvIGxvYWQgdGhlIENMSSBjb25maWd1cmF0aW9uIGFuZCByZXBvcnRzIHdoZXRoZXIgaXQgaXMgdmFsaWQuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBgdmFsaWQ6IHRydWVgIG9uIHN1Y2Nlc3MsIG9yIGB2YWxpZDogZmFsc2VgIHdpdGggYW4gZXJyb3IgbWVzc2FnZS5cbiAqL1xuZnVuY3Rpb24gY2hlY2tDb25maWd1cmF0aW9uKCk6IHsgdmFsaWQ6IGJvb2xlYW47IGVycm9yPzogc3RyaW5nIH0ge1xuICB0cnkge1xuICAgIGdldENvbmZpZygpO1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvciksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyB3aGljaCBrZXkgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBjdXJyZW50bHkgc2V0LlxuICogQHJldHVybnMgUHJlc2VuY2UgZmxhZ3MgZm9yIGBQTEFURk9STV9UT0tFTmAsIGBQTEFURk9STV9CQVNFX1VSTGAsIGFuZCBgQ0xJX0NPTkZJR19QQVRIYC5cbiAqL1xuZnVuY3Rpb24gZ2V0RW52aXJvbm1lbnRTdGF0dXMoKToge1xuICB0b2tlbjogYm9vbGVhbjtcbiAgdXJsOiBib29sZWFuO1xuICBjb25maWdQYXRoOiBib29sZWFuO1xufSB7XG4gIHJldHVybiB7XG4gICAgdG9rZW46ICEhcHJvY2Vzcy5lbnYuUExBVEZPUk1fVE9LRU4sXG4gICAgdXJsOiAhIXByb2Nlc3MuZW52LlBMQVRGT1JNX0JBU0VfVVJMLFxuICAgIGNvbmZpZ1BhdGg6ICEhcHJvY2Vzcy5lbnYuQ0xJX0NPTkZJR19QQVRILFxuICB9O1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgYHZlcnNpb25gIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogRGlzcGxheXMgdGhlIENMSSBuYW1lL3ZlcnNpb24sIEFXUyBDREsgc3RhdHVzLCBhbmQgb3B0aW9uYWxseVxuICogZnVsbCBzeXN0ZW0gZGlhZ25vc3RpY3MgKGAtLXZlcmJvc2VgKSBvciBjb25maWd1cmF0aW9uIHZhbGlkYXRpb25cbiAqIChgLS1jaGVjay1jb25maWdgKS4gIFN1cHBvcnRzIGAtLWpzb25gIGZvciBtYWNoaW5lLXJlYWRhYmxlIG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbSAtIFRoZSByb290IENvbW1hbmRlciBwcm9ncmFtIGluc3RhbmNlIHRvIGF0dGFjaCB0aGUgY29tbWFuZCB0by5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcnNpb24ocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ3ZlcnNpb24nKVxuICAgIC5kZXNjcmlwdGlvbignRGlzcGxheSBDTEkgdmVyc2lvbiBhbmQgZW52aXJvbm1lbnQgaW5mb3JtYXRpb24nKVxuICAgIC5vcHRpb24oJy0tdmVyYm9zZScsICdTaG93IGRldGFpbGVkIGVudmlyb25tZW50IGluZm9ybWF0aW9uJywgZmFsc2UpXG4gICAgLm9wdGlvbignLS1jaGVjay1jb25maWcnLCAnVmVyaWZ5IGNvbmZpZ3VyYXRpb24gc3RhdHVzJywgZmFsc2UpXG4gICAgLm9wdGlvbignLS1qc29uJywgJ091dHB1dCBpbiBKU09OIGZvcm1hdCcsIGZhbHNlKVxuICAgIC5hY3Rpb24oKG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gZ2VuZXJhdGVFeGVjdXRpb25JZCgpO1xuICAgICAgICBjb25zdCBjZGtJbmZvID0gZ2V0Q2RrSW5mbygpO1xuXG4gICAgICAgIC8vIEpTT04gb3V0cHV0XG4gICAgICAgIGlmIChvcHRpb25zLmpzb24pIHtcbiAgICAgICAgICBjb25zdCBzeXN0ZW1JbmZvID0gZ2V0U3lzdGVtSW5mbygpO1xuICAgICAgICAgIGNvbnN0IGNvbmZpZ1N0YXR1cyA9IG9wdGlvbnMuY2hlY2tDb25maWcgPyBjaGVja0NvbmZpZ3VyYXRpb24oKSA6IHsgdmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICBjb25zdCBlbnZTdGF0dXMgPSBnZXRFbnZpcm9ubWVudFN0YXR1cygpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgY2xpOiB7IG5hbWU6IEFQUF9OQU1FLCB2ZXJzaW9uOiBBUFBfVkVSU0lPTiB9LFxuICAgICAgICAgICAgc3lzdGVtOiBzeXN0ZW1JbmZvLFxuICAgICAgICAgICAgY2RrOiB7IGF2YWlsYWJsZTogY2RrSW5mby5hdmFpbGFibGUsIHZlcnNpb246IGNka0luZm8udmVyc2lvbiB9LFxuICAgICAgICAgICAgY29uZmlndXJhdGlvbjogeyB2YWxpZDogY29uZmlnU3RhdHVzLnZhbGlkLCBlcnJvcjogY29uZmlnU3RhdHVzLmVycm9yIH0sXG4gICAgICAgICAgICBlbnZpcm9ubWVudDogZW52U3RhdHVzLFxuICAgICAgICAgICAgZXhlY3V0aW9uSWQsXG4gICAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICB9LCBudWxsLCAyKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RhbmRhcmQgb3V0cHV0XG4gICAgICAgIHByaW50U2VjdGlvbignVmVyc2lvbiBJbmZvcm1hdGlvbicpO1xuICAgICAgICBjb25zb2xlLmxvZyhgJHttYWdlbnRhKGBbRVhFLSR7ZXhlY3V0aW9uSWR9XWApfSAke2N5YW4oYm9sZCgnQ0xJIFZlcnNpb24gQ2hlY2snKSl9YCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcblxuICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAnQ0xJIE5hbWUnOiBib2xkKEFQUF9OQU1FKSxcbiAgICAgICAgICAnQ0xJIFZlcnNpb24nOiBncmVlbihib2xkKEFQUF9WRVJTSU9OKSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByaW50RGl2aWRlcigpO1xuXG4gICAgICAgIC8vIFZlcmJvc2U6IHN5c3RlbSBlbnZpcm9ubWVudFxuICAgICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgcHJpbnRTZWN0aW9uKCdTeXN0ZW0gRW52aXJvbm1lbnQnKTtcbiAgICAgICAgICBjb25zdCBzeXN0ZW1JbmZvID0gZ2V0U3lzdGVtSW5mbygpO1xuICAgICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICAgJ05vZGUuanMnOiBzeXN0ZW1JbmZvLm5vZGVqcyxcbiAgICAgICAgICAgICducG0nOiBzeXN0ZW1JbmZvLm5wbSB8fCB5ZWxsb3coJyhub3QgYXZhaWxhYmxlKScpLFxuICAgICAgICAgICAgJ1BsYXRmb3JtJzogc3lzdGVtSW5mby5wbGF0Zm9ybSxcbiAgICAgICAgICAgICdBcmNoaXRlY3R1cmUnOiBzeXN0ZW1JbmZvLmFyY2hpdGVjdHVyZSxcbiAgICAgICAgICAgICdNZW1vcnkgKEhlYXApJzogYCR7c3lzdGVtSW5mby5tZW1vcnkudG90YWx9IHRvdGFsLCAke3N5c3RlbUluZm8ubWVtb3J5LmF2YWlsYWJsZUhlYXB9IGF2YWlsYWJsZWAsXG4gICAgICAgICAgICAnUHJvY2VzcyBVcHRpbWUnOiBzeXN0ZW1JbmZvLnVwdGltZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBwcmludERpdmlkZXIoKTtcbiAgICAgICAgICBwcmludFNlY3Rpb24oJ0FXUyBDREsnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENESyBpbmZvcm1hdGlvblxuICAgICAgICBpZiAoY2RrSW5mby5hdmFpbGFibGUgJiYgY2RrSW5mby52ZXJzaW9uKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkgcHJpbnRTdWNjZXNzKCdBV1MgQ0RLIGlzIGluc3RhbGxlZCcpO1xuICAgICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICAgJ0NESyBWZXJzaW9uJzogZ3JlZW4oY2RrSW5mby52ZXJzaW9uKSxcbiAgICAgICAgICAgICdTdGF0dXMnOiBncmVlbign4pyTIEF2YWlsYWJsZScpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgIHByaW50V2FybmluZygnQVdTIENESyBpcyBub3QgaW5zdGFsbGVkJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkaW0oJyAgSW5zdGFsbCBDREsgd2l0aDogbnBtIGluc3RhbGwgLWcgYXdzLWNkaycpKTtcbiAgICAgICAgICAgIGlmIChjZGtJbmZvLmVycm9yKSBjb25zb2xlLmxvZyhkaW0oYCAgRXJyb3I6ICR7Y2RrSW5mby5lcnJvcn1gKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICAgJ0FXUyBDREsnOiByZWQoJ+KclyBOb3QgaW5zdGFsbGVkJyksXG4gICAgICAgICAgICAnU3RhdHVzJzogcmVkKCfinJcgTm90IEF2YWlsYWJsZScpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhkaW0oJ1xcbiAgUnVuIHdpdGggLS12ZXJib3NlIGZvciBkZXRhaWxlZCBlbnZpcm9ubWVudCBpbmZvcm1hdGlvbicpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENvbmZpZ3VyYXRpb24gY2hlY2tcbiAgICAgICAgaWYgKG9wdGlvbnMuY2hlY2tDb25maWcpIHtcbiAgICAgICAgICBwcmludERpdmlkZXIoKTtcbiAgICAgICAgICBwcmludFNlY3Rpb24oJ0NvbmZpZ3VyYXRpb24gU3RhdHVzJyk7XG5cbiAgICAgICAgICBjb25zdCBjb25maWdTdGF0dXMgPSBjaGVja0NvbmZpZ3VyYXRpb24oKTtcbiAgICAgICAgICBjb25zdCBlbnZTdGF0dXMgPSBnZXRFbnZpcm9ubWVudFN0YXR1cygpO1xuXG4gICAgICAgICAgaWYgKGNvbmZpZ1N0YXR1cy52YWxpZCkge1xuICAgICAgICAgICAgcHJpbnRTdWNjZXNzKCdDb25maWd1cmF0aW9uIGlzIHZhbGlkJyk7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZygpO1xuICAgICAgICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAgICAgICAnQVBJIEJhc2UgVVJMJzogY29uZmlnLmFwaS5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICdTU0wgVmVyaWZpY2F0aW9uJzogY29uZmlnLmFwaS5yZWplY3RVbmF1dGhvcml6ZWQgPyBncmVlbignRW5hYmxlZCcpIDogeWVsbG93KCdEaXNhYmxlZCcpLFxuICAgICAgICAgICAgICAgICdUaW1lb3V0JzogYCR7Y29uZmlnLmFwaS50aW1lb3V0fW1zYCxcbiAgICAgICAgICAgICAgICAnQXV0aGVudGljYXRlZCc6IGNvbmZpZy5hdXRoLnRva2VuID8gZ3JlZW4oJ1llcycpIDogcmVkKCdObycpLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIHByaW50V2FybmluZygnQ291bGQgbm90IGxvYWQgZnVsbCBjb25maWd1cmF0aW9uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByaW50RXJyb3IoJ0NvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCcpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZ1N0YXR1cy5lcnJvcikge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWQoYCAgRXJyb3I6ICR7Y29uZmlnU3RhdHVzLmVycm9yfWApKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgICAgcHJpbnRJbmZvKCdFbnZpcm9ubWVudCBWYXJpYWJsZXMnKTtcbiAgICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAgIFBMQVRGT1JNX1RPS0VOOiBlbnZTdGF0dXMudG9rZW4gPyBncmVlbign4pyTIFNldCcpIDogcmVkKCfinJcgTm90IHNldCcpLFxuICAgICAgICAgICAgUExBVEZPUk1fQkFTRV9VUkw6IGVudlN0YXR1cy51cmwgPyBncmVlbign4pyTIFNldCcpIDogZGltKCcobm90IHNldCAtIHVzaW5nIGRlZmF1bHQpJyksXG4gICAgICAgICAgICBDTElfQ09ORklHX1BBVEg6IGVudlN0YXR1cy5jb25maWdQYXRoID8gZ3JlZW4oJ+KckyBTZXQnKSA6IGRpbSgnKG5vdCBzZXQgLSB1c2luZyBkZWZhdWx0KScpLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKCFlbnZTdGF0dXMudG9rZW4pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgICAgIHByaW50V2FybmluZygnUExBVEZPUk1fVE9LRU4gaXMgcmVxdWlyZWQgZm9yIEFQSSBvcGVyYXRpb25zJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkaW0oJyAgU2V0IGl0IHdpdGg6IGV4cG9ydCBQTEFURk9STV9UT0tFTj1cInlvdXItdG9rZW4taGVyZVwiJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhkaW0oJ1xcbiAg8J+SoSBUaXA6IFJ1biB3aXRoIC0tY2hlY2stY29uZmlnIHRvIHZlcmlmeSBjb25maWd1cmF0aW9uJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9vdGVyXG4gICAgICAgIHByaW50RGl2aWRlcigpO1xuICAgICAgICBjb25zb2xlLmxvZyhkaW0oYCAgRXhlY3V0aW9uIElEOiAke2V4ZWN1dGlvbklkfWApKTtcbiAgICAgICAgY29uc29sZS5sb2coZGltKGAgIFRpbWVzdGFtcDogJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCkpO1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG5cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5HRU5FUkFMLCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgY29tbWFuZDogJ3ZlcnNpb24nLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICB2ZXJib3NlOiBvcHRpb25zLnZlcmJvc2UsXG4gICAgICAgICAgICAgIGNoZWNrQ29uZmlnOiBvcHRpb25zLmNoZWNrQ29uZmlnLFxuICAgICAgICAgICAgICBqc29uOiBvcHRpb25zLmpzb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAvLyBOT1RFOiBgLXZgL2AtLXZlcnNpb25gIGlzIGhhbmRsZWQgYnkgY29tbWFuZGVyJ3Mgb3duIGAudmVyc2lvbiguLi4pYCBpblxuICAvLyBjbGkudHMgKHJlZ2lzdGVyZWQgZmlyc3QsIHNvIGl0IGV4aXRzIGJlZm9yZSBhbnkgY3VzdG9tIG9wdGlvbjp2ZXJzaW9uXG4gIC8vIGxpc3RlbmVyIHdvdWxkIHJ1bikg4oCUIGEgZHVwbGljYXRlIGxpc3RlbmVyIGhlcmUgd2FzIGRlYWQgY29kZS5cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"output-utils.d.ts","sourceRoot":"","sources":["../../src/utils/output-utils.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,4BAA4B,CAAC;AAMpC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACxC;AAmCD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAyC;AAC5G,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAsC;AACtG,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAsC;AACzG,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAuC;AAExG,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAEhE;AAID;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI,CAuC3E;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,CA0D5E;AAgED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAY9D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAOnE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,IAAI,CAWN;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAGrE;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAQnH;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAoCjG"}
1
+ {"version":3,"file":"output-utils.d.ts","sourceRoot":"","sources":["../../src/utils/output-utils.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,4BAA4B,CAAC;AAMpC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACxC;AAmCD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAyC;AAC5G,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAsC;AACtG,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAsC;AACzG,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAuC;AAExG,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAEhE;AAID;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI,CAuC3E;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,CA4D5E;AAgED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAY9D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAOnE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,IAAI,CAWN;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAGrE;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAQnH;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAoCjG"}
@@ -110,7 +110,10 @@ export function formatTable(data, columns) {
110
110
  return Math.max(headerWidth, dataWidth, 3);
111
111
  });
112
112
  const { border } = TABLE_OPTIONS;
113
- const horizontalLine = (left, middle, right) => left + colWidths.map(w => border.bodyJoin.repeat((w ?? 0) + 2)).join(middle) + right;
113
+ const horizontalLine = (left, middle, right) =>
114
+ // Fill with the HORIZONTAL rule glyph (`─`), not `bodyJoin` (`│`) — the latter
115
+ // rendered every rule as `┌│││││┬…` instead of `┌─────┬…`.
116
+ left + colWidths.map(w => border.topBody.repeat((w ?? 0) + 2)).join(middle) + right;
114
117
  const topLine = horizontalLine(border.topLeft, border.topJoin, border.topRight);
115
118
  const midLine = horizontalLine(border.joinLeft, border.joinJoin, border.joinRight);
116
119
  const bottomLine = horizontalLine(border.bottomLeft, border.bottomJoin, border.bottomRight);
@@ -308,4 +311,4 @@ export function extractListResponse(response, itemsKey) {
308
311
  printError('Invalid response format from API');
309
312
  throw new Error('Unexpected API response format');
310
313
  }
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL291dHB1dC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFDO0FBQzlCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBRUwsY0FBYyxFQUNkLGFBQWEsR0FDZCxNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBMEJyRSw0QkFBNEI7QUFFNUIsU0FBUyxTQUFTLENBQUMsS0FBZSxFQUFFLE9BQWUsRUFBRSxJQUFjO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDeEYsTUFBTSxRQUFRLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNoRixNQUFNLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxF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SyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgWUFNTCBmcm9tICd5YW1sJztcbmltcG9ydCB7XG4gIHR5cGUgT3V0cHV0Rm9ybWF0LFxuICBmb3JtYXRGaWxlU2l6ZSxcbiAgVEFCTEVfT1BUSU9OUyxcbn0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuXG5jb25zdCB7IGJvbGQsIGN5YW4sIGdyZWVuLCB5ZWxsb3csIHJlZCwgZGltLCBtYWdlbnRhLCB3aGl0ZSB9ID0gcGljbztcblxudHlwZSBMb2dMZXZlbCA9ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICd3YXJuJyB8ICdlcnJvcicgfCAnZGVidWcnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIG91dHB1dERhdGEgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRPcHRpb25zIHtcbiAgZm9ybWF0PzogT3V0cHV0Rm9ybWF0O1xuICBmaWxlPzogc3RyaW5nO1xuICBwcmV0dHk/OiBib29sZWFuO1xuICBzaWxlbnQ/OiBib29sZWFuO1xuICBhcHBlbmQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRhYmxlIGNvbHVtbiBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb2x1bW4ge1xuICBoZWFkZXI6IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JztcbiAgZm9ybWF0dGVyPzogKHZhbHVlOiB1bmtub3duKSA9PiBzdHJpbmc7XG59XG5cbi8vIC0tLSBMb2dnaW5nIGZ1bmN0aW9ucyAtLS1cblxuZnVuY3Rpb24gbG9nT3V0cHV0KGxldmVsOiBMb2dMZXZlbCwgbWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bik6IHZvaWQge1xuICBjb25zdCBjb2xvcnMgPSB7IGluZm86IGN5YW4sIHN1Y2Nlc3M6IGdyZWVuLCB3YXJuOiB5ZWxsb3csIGVycm9yOiByZWQsIGRlYnVnOiBtYWdlbnRhIH07XG4gIGNvbnN0IHByZWZpeGVzID0geyBpbmZvOiAn4oS5Jywgc3VjY2VzczogJ+KckycsIHdhcm46ICfimqAnLCBlcnJvcjogJ+KclycsIGRlYnVnOiAn4pePJyB9O1xuICBjb25zdCB3cml0ZXJzID0geyBlcnJvcjogY29uc29sZS5lcnJvciwgd2FybjogY29uc29sZS53YXJuLCBpbmZvOiBjb25zb2xlLmxvZywgc3VjY2VzczogY29uc29sZS5sb2csIGRlYnVnOiBjb25zb2xlLmxvZyB9O1xuXG4gIC8vIEZhbGwgYmFjayB0byBjb25zb2xlLmxvZyArIHJhdyBtZXNzYWdlIGlmIGEgY2FsbGVyIGxlYWtzIGFuIHVua25vd24gbGV2ZWxcbiAgLy8gKGUuZy4gYW4gYGFzIExvZ0xldmVsYCBjYXN0IG9uIHVzZXIgaW5wdXQpLiBUaGUgd2hvbGUgcG9pbnQgb2YgdGhlIGxvZ2dlclxuICAvLyBpcyB0byBzdXJmYWNlIGVycm9ycyDigJQgZmFpbGluZyBpbnNpZGUgdGhlIGxvZ2dlciBhbmQgbWFza2luZyB0aGUgcmVhbFxuICAvLyBlcnJvciB3aXRoIGEgVHlwZUVycm9yIGRlZmVhdHMgaXQuXG4gIGNvbnN0IGNvbG9yID0gY29sb3JzW2xldmVsXSA/PyAoKHM6IHN0cmluZykgPT4gcyk7XG4gIGNvbnN0IHByZWZpeCA9IHByZWZpeGVzW2xldmVsXSA/PyAnPyc7XG4gIGNvbnN0IHdyaXRlID0gd3JpdGVyc1tsZXZlbF0gPz8gY29uc29sZS5sb2c7XG5cbiAgd3JpdGUoYCR7Y29sb3IocHJlZml4KX0gJHttZXNzYWdlfWApO1xuICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB3cml0ZShkaW0oZm9ybWF0RGF0YUZvckxvZyhkYXRhKSkpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXREYXRhRm9yTG9nKGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSByZXR1cm4gZGF0YTtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGRhdGEpO1xuICAgIGlmIChlbnRyaWVzLmxlbmd0aCA8PSA1KSB7XG4gICAgICByZXR1cm4gJ1xcbicgKyBlbnRyaWVzLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyID0gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBgICAke2tleX06ICR7dmFsdWVTdHJ9YDtcbiAgICAgIH0pLmpvaW4oJ1xcbicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludFN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bik6IHZvaWQgeyBsb2dPdXRwdXQoJ3N1Y2Nlc3MnLCBtZXNzYWdlLCBkYXRhKTsgfVxuZXhwb3J0IGZ1bmN0aW9uIHByaW50SW5mbyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogdm9pZCB7IGxvZ091dHB1dCgnaW5mbycsIG1lc3NhZ2UsIGRhdGEpOyB9XG5leHBvcnQgZnVuY3Rpb24gcHJpbnRXYXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pOiB2b2lkIHsgbG9nT3V0cHV0KCd3YXJuJywgbWVzc2FnZSwgZGF0YSk7IH1cbmV4cG9ydCBmdW5jdGlvbiBwcmludEVycm9yKG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pOiB2b2lkIHsgbG9nT3V0cHV0KCdlcnJvcicsIG1lc3NhZ2UsIGRhdGEpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludERlYnVnKG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pOiB2b2lkIHtcbiAgaWYgKHByb2Nlc3MuZW52LkRFQlVHID09PSAndHJ1ZScpIGxvZ091dHB1dCgnZGVidWcnLCBtZXNzYWdlLCBkYXRhKTtcbn1cblxuLy8gLS0tIERhdGEgb3V0cHV0IC0tLVxuXG4vKipcbiAqIE91dHB1dCBkYXRhIGluIHNwZWNpZmllZCBmb3JtYXQgKGNvbnNvbGUgb3IgZmlsZSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG91dHB1dERhdGEoZGF0YTogdW5rbm93biwgb3B0aW9uczogT3V0cHV0T3B0aW9ucyA9IHt9KTogdm9pZCB7XG4gIGNvbnN0IHsgZm9ybWF0ID0gJ2pzb24nLCBmaWxlLCBwcmV0dHkgPSB0cnVlLCBzaWxlbnQgPSBmYWxzZSwgYXBwZW5kID0gZmFsc2UgfSA9IG9wdGlvbnM7XG5cbiAgbGV0IG91dHB1dDogc3RyaW5nO1xuXG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSAndGFibGUnOlxuICAgICAgaWYgKCFzaWxlbnQpIHByaW50SW5mbygnUmVuZGVyaW5nIGFzIHRhYmxlJyk7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSAmJiBkYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coZm9ybWF0VGFibGUoZGF0YSkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgZGF0YSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zb2xlLmxvZyhmb3JtYXRUYWJsZShbZGF0YV0pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUudGFibGUoQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSAnY3N2JzpcbiAgICAgIGlmICghc2lsZW50KSBwcmludEluZm8oJ1JlbmRlcmluZyBhcyBDU1YnKTtcbiAgICAgIG91dHB1dCA9IGZvcm1hdENzdihkYXRhKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAneWFtbCc6XG4gICAgICBpZiAoIXNpbGVudCkgcHJpbnRJbmZvKCdSZW5kZXJpbmcgYXMgWUFNTCcpO1xuICAgICAgb3V0cHV0ID0gWUFNTC5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2pzb24nOlxuICAgIGRlZmF1bHQ6XG4gICAgICBpZiAoIXNpbGVudCkgcHJpbnRJbmZvKCdSZW5kZXJpbmcgYXMgSlNPTicpO1xuICAgICAgb3V0cHV0ID0gcHJldHR5ID8gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikgOiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgaWYgKGZpbGUpIHtcbiAgICB3cml0ZVRvRmlsZShmaWxlLCBvdXRwdXQsIGZvcm1hdCwgYXBwZW5kKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyhvdXRwdXQpO1xuICB9XG59XG5cbi8vIC0tLSBUYWJsZSBmb3JtYXR0aW5nIC0tLVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGFibGUoZGF0YTogdW5rbm93bltdLCBjb2x1bW5zPzogVGFibGVDb2x1bW5bXSk6IHN0cmluZyB7XG4gIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSB8fCBkYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGRpbSgnKE5vIGRhdGEgdG8gZGlzcGxheSknKTtcblxuICBjb25zdCBmaXJzdEl0ZW0gPSBkYXRhWzBdO1xuICBpZiAodHlwZW9mIGZpcnN0SXRlbSAhPT0gJ29iamVjdCcgfHwgZmlyc3RJdGVtID09PSBudWxsKSByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XG5cbiAgY29uc3QgY29sczogVGFibGVDb2x1bW5bXSA9IGNvbHVtbnMgfHwgT2JqZWN0LmtleXMoZmlyc3RJdGVtKS5tYXAoa2V5ID0+ICh7IGhlYWRlcjoga2V5LCBrZXkgfSkpO1xuXG4gIGNvbnN0IGNvbFdpZHRoczogbnVtYmVyW10gPSBjb2xzLm1hcChjb2wgPT4ge1xuICAgIGlmIChjb2wud2lkdGgpIHJldHVybiBjb2wud2lkdGg7XG4gICAgY29uc3QgaGVhZGVyV2lkdGggPSBjb2wuaGVhZGVyLmxlbmd0aDtcbiAgICBjb25zdCBkYXRhV2lkdGggPSBNYXRoLm1heCguLi5kYXRhLm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gY29sLmZvcm1hdHRlclxuICAgICAgICA/IGNvbC5mb3JtYXR0ZXIoKGl0ZW0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2NvbC5rZXldKVxuICAgICAgICA6IFN0cmluZygoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbY29sLmtleV0gPz8gJycpO1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgICB9KSk7XG4gICAgcmV0dXJuIE1hdGgubWF4KGhlYWRlcldpZHRoLCBkYXRhV2lkdGgsIDMpO1xuICB9KTtcblxuICBjb25zdCB7IGJvcmRlciB9ID0gVEFCTEVfT1BUSU9OUztcblxuICBjb25zdCBob3Jpem9udGFsTGluZSA9IChsZWZ0OiBzdHJpbmcsIG1pZGRsZTogc3RyaW5nLCByaWdodDogc3RyaW5nKSA9PlxuICAgIGxlZnQgKyBjb2xXaWR0aHMubWFwKHcgPT4gYm9yZGVyLmJvZHlKb2luLnJlcGVhdCgodyA/PyAwKSArIDIpKS5qb2luKG1pZGRsZSkgKyByaWdodDtcblxuICBjb25zdCB0b3BMaW5lID0gaG9yaXpvbnRhbExpbmUoYm9yZGVyLnRvcExlZnQsIGJvcmRlci50b3BKb2luLCBib3JkZXIudG9wUmlnaHQpO1xuICBjb25zdCBtaWRMaW5lID0gaG9yaXpvbnRhbExpbmUoYm9yZGVyLmpvaW5MZWZ0LCBib3JkZXIuam9pbkpvaW4sIGJvcmRlci5qb2luUmlnaHQpO1xuICBjb25zdCBib3R0b21MaW5lID0gaG9yaXpvbnRhbExpbmUoYm9yZGVyLmJvdHRvbUxlZnQsIGJvcmRlci5ib3R0b21Kb2luLCBib3JkZXIuYm90dG9tUmlnaHQpO1xuXG4gIGNvbnN0IGZvcm1hdENlbGwgPSAodmFsdWU6IHN0cmluZywgd2lkdGg6IG51bWJlciwgYWxpZ246ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdsZWZ0Jyk6IHN0cmluZyA9PiB7XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+IHdpZHRoKSByZXR1cm4gdmFsdWUuc3Vic3RyaW5nKDAsIHdpZHRoIC0gMykgKyAnLi4uJztcbiAgICBpZiAoYWxpZ24gPT09ICdjZW50ZXInKSB7XG4gICAgICBjb25zdCBsZWZ0UGFkID0gTWF0aC5mbG9vcigod2lkdGggLSB2YWx1ZS5sZW5ndGgpIC8gMik7XG4gICAgICByZXR1cm4gJyAnLnJlcGVhdChsZWZ0UGFkKSArIHZhbHVlICsgJyAnLnJlcGVhdCh3aWR0aCAtIHZhbHVlLmxlbmd0aCAtIGxlZnRQYWQpO1xuICAgIH1cbiAgICByZXR1cm4gYWxpZ24gPT09ICdyaWdodCcgPyB2YWx1ZS5wYWRTdGFydCh3aWR0aCkgOiB2YWx1ZS5wYWRFbmQod2lkdGgpO1xuICB9O1xuXG4gIGNvbnN0IGhlYWRlclJvdyA9IGJvcmRlci5ib2R5TGVmdCArICcgJyArXG4gICAgY29scy5tYXAoKGNvbCwgaSkgPT4gY3lhbihib2xkKGZvcm1hdENlbGwoY29sLmhlYWRlciwgY29sV2lkdGhzW2ldID8/IDApKSkpLmpvaW4oYCAke2JvcmRlci5ib2R5Sm9pbn0gYCkgK1xuICAgIGAgJHtib3JkZXIuYm9keVJpZ2h0fWA7XG5cbiAgbGV0IHRhYmxlID0gY3lhbih0b3BMaW5lKSArICdcXG4nICsgaGVhZGVyUm93ICsgJ1xcbicgKyBjeWFuKG1pZExpbmUpICsgJ1xcbic7XG5cbiAgZGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgIGNvbnN0IHJvdyA9IGJvcmRlci5ib2R5TGVmdCArICcgJyArXG4gICAgICBjb2xzLm1hcCgoY29sLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gY29sLmZvcm1hdHRlclxuICAgICAgICAgID8gY29sLmZvcm1hdHRlcigoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbY29sLmtleV0pXG4gICAgICAgICAgOiBTdHJpbmcoKGl0ZW0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2NvbC5rZXldID8/ICcnKTtcbiAgICAgICAgcmV0dXJuIGZvcm1hdENlbGwodmFsdWUsIGNvbFdpZHRoc1tpXSA/PyAwLCBjb2wuYWxpZ24pO1xuICAgICAgfSkuam9pbihgICR7Ym9yZGVyLmJvZHlKb2lufSBgKSArXG4gICAgICBgICR7Ym9yZGVyLmJvZHlSaWdodH1gO1xuICAgIHRhYmxlICs9IHJvdyArICdcXG4nO1xuICB9KTtcblxuICB0YWJsZSArPSBjeWFuKGJvdHRvbUxpbmUpO1xuICByZXR1cm4gdGFibGU7XG59XG5cbi8vIC0tLSBDU1YgZm9ybWF0dGluZyAtLS1cblxuZnVuY3Rpb24gZm9ybWF0Q3N2KGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkgfHwgZGF0YS5sZW5ndGggPT09IDApIHJldHVybiAnJztcbiAgY29uc3QgZmlyc3RJdGVtID0gZGF0YVswXTtcbiAgaWYgKHR5cGVvZiBmaXJzdEl0ZW0gIT09ICdvYmplY3QnIHx8IGZpcnN0SXRlbSA9PT0gbnVsbCkgcmV0dXJuIGRhdGEuam9pbignLCcpO1xuXG4gIGNvbnN0IGhlYWRlcnMgPSBPYmplY3Qua2V5cyhmaXJzdEl0ZW0pO1xuICBjb25zdCByb3dzOiBzdHJpbmdbXSA9IFtoZWFkZXJzLm1hcChoID0+IGVzY2FwZUNzdlZhbHVlKGgpKS5qb2luKCcsJyldO1xuICBkYXRhLmZvckVhY2goaXRlbSA9PiB7XG4gICAgcm93cy5wdXNoKGhlYWRlcnMubWFwKGggPT4gZXNjYXBlQ3N2VmFsdWUoKGl0ZW0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2hdKSkuam9pbignLCcpKTtcbiAgfSk7XG4gIHJldHVybiByb3dzLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVDc3ZWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJyc7XG4gIGNvbnN0IHN0ciA9IFN0cmluZyh2YWx1ZSk7XG4gIGlmIChzdHIuaW5jbHVkZXMoJywnKSB8fCBzdHIuaW5jbHVkZXMoJ1wiJykgfHwgc3RyLmluY2x1ZGVzKCdcXG4nKSkge1xuICAgIHJldHVybiBgXCIke3N0ci5yZXBsYWNlKC9cIi9nLCAnXCJcIicpfVwiYDtcbiAgfVxuICByZXR1cm4gc3RyO1xufVxuXG4vLyAtLS0gRmlsZSBvcGVyYXRpb25zIC0tLVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoYXQgYSBmaWxlIHBhdGggcmVzb2x2ZXMgd2l0aGluIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuICogUHJldmVudHMgcGF0aCB0cmF2ZXJzYWwgYXR0YWNrcyAoZS5nLiwgLS1vdXRwdXQgLi4vLi4vZXRjL3Bhc3N3ZCkuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlT3V0cHV0UGF0aChmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcmVzb2x2ZWQgPSBwYXRoLnJlc29sdmUoZmlsZVBhdGgpO1xuICBjb25zdCBjd2QgPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSk7XG4gIGlmICghcmVzb2x2ZWQuc3RhcnRzV2l0aChjd2QgKyBwYXRoLnNlcCkgJiYgcmVzb2x2ZWQgIT09IGN3ZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGF0aCB0cmF2ZXJzYWwgcmVqZWN0ZWQ6IFwiJHtmaWxlUGF0aH1cIiByZXNvbHZlcyBvdXRzaWRlIHRoZSBjdXJyZW50IGRpcmVjdG9yeWApO1xuICB9XG4gIHJldHVybiByZXNvbHZlZDtcbn1cblxuZnVuY3Rpb24gd3JpdGVUb0ZpbGUoZmlsZVBhdGg6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBmb3JtYXQ6IE91dHB1dEZvcm1hdCwgYXBwZW5kOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzYWZlUGF0aCA9IHZhbGlkYXRlT3V0cHV0UGF0aChmaWxlUGF0aCk7XG4gICAgY29uc3QgZGlyID0gcGF0aC5kaXJuYW1lKHNhZmVQYXRoKTtcbiAgICBpZiAoZGlyICE9PSAnLicpIGVuc3VyZU91dHB1dERpcmVjdG9yeShkaXIpO1xuXG4gICAgaWYgKGFwcGVuZCkge1xuICAgICAgZnMuYXBwZW5kRmlsZVN5bmMoc2FmZVBhdGgsIGNvbnRlbnQgKyAnXFxuJywgJ3V0Zi04Jyk7XG4gICAgICBwcmludFN1Y2Nlc3MoJ091dHB1dCBhcHBlbmRlZCB0byBmaWxlJywgeyBwYXRoOiBzYWZlUGF0aCwgZm9ybWF0IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHNhZmVQYXRoLCBjb250ZW50LCAndXRmLTgnKTtcbiAgICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMoc2FmZVBhdGgpO1xuICAgICAgcHJpbnRTdWNjZXNzKCdPdXRwdXQgc2F2ZWQgdG8gZmlsZScsIHsgcGF0aDogc2FmZVBhdGgsIGZvcm1hdCwgc2l6ZTogZm9ybWF0RmlsZVNpemUoc3RhdHMuc2l6ZSkgfSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IoJ0ZhaWxlZCB0byB3cml0ZSBmaWxlJywge1xuICAgICAgcGF0aDogZmlsZVBhdGgsXG4gICAgICBlcnJvcjogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpLFxuICAgIH0pO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVPdXRwdXREaXJlY3Rvcnkob3V0cHV0UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChmcy5leGlzdHNTeW5jKG91dHB1dFBhdGgpKSByZXR1cm47XG4gIHRyeSB7XG4gICAgZnMubWtkaXJTeW5jKG91dHB1dFBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIHByaW50RGVidWcoJ0RpcmVjdG9yeSBjcmVhdGVkJywgeyBwYXRoOiBvdXRwdXRQYXRoIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgZGlyZWN0b3J5Jywge1xuICAgICAgcGF0aDogb3V0cHV0UGF0aCxcbiAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvciksXG4gICAgfSk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVFeGlzdHMoZmlsZVBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gZnMuZXhpc3RzU3luYyhmaWxlUGF0aCk7XG59XG5cbi8vIC0tLSBEaXNwbGF5IGhlbHBlcnMgLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludFNlY3Rpb24odGl0bGU6IHN0cmluZywgc3VidGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3Qgd2lkdGggPSBwcm9jZXNzLnN0ZG91dC5jb2x1bW5zIHx8IDgwO1xuICBjb25zb2xlLmxvZygnJyk7XG4gIGNvbnNvbGUubG9nKGN5YW4oJ+KVkCcucmVwZWF0KHdpZHRoKSkpO1xuICBjb25zb2xlLmxvZyhjeWFuKGJvbGQodGl0bGUpKSk7XG4gIGlmIChzdWJ0aXRsZSkgY29uc29sZS5sb2coZGltKHN1YnRpdGxlKSk7XG4gIGNvbnNvbGUubG9nKGN5YW4oJ+KVkCcucmVwZWF0KHdpZHRoKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRLZXlWYWx1ZShcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIG9wdGlvbnM6IHsgaW5kZW50PzogbnVtYmVyOyBzZXBhcmF0b3I/OiBzdHJpbmcgfSA9IHt9LFxuKTogdm9pZCB7XG4gIGNvbnN0IHsgaW5kZW50ID0gMCwgc2VwYXJhdG9yID0gJ+KUgicgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IG1heEtleUxlbmd0aCA9IE1hdGgubWF4KC4uLk9iamVjdC5rZXlzKGRhdGEpLm1hcChrID0+IGsubGVuZ3RoKSk7XG4gIGNvbnN0IGluZGVudFN0ciA9ICcgJy5yZXBlYXQoaW5kZW50KTtcblxuICBPYmplY3QuZW50cmllcyhkYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBjb25zdCBwYWRkZWRLZXkgPSBrZXkucGFkRW5kKG1heEtleUxlbmd0aCk7XG4gICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsXG4gICAgICA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgY29uc29sZS5sb2coYCR7aW5kZW50U3RyfSR7ZGltKHBhZGRlZEtleSl9ICR7Y3lhbihzZXBhcmF0b3IpfSAke3doaXRlKGZvcm1hdHRlZFZhbHVlKX1gKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludERpdmlkZXIoY2hhcjogc3RyaW5nID0gJ+KUgCcsIHdpZHRoPzogbnVtYmVyKTogdm9pZCB7XG4gIGNvbnN0IGVmZmVjdGl2ZVdpZHRoID0gd2lkdGggfHwgcHJvY2Vzcy5zdGRvdXQuY29sdW1ucyB8fCA4MDtcbiAgY29uc29sZS5sb2coZGltKGNoYXIucmVwZWF0KGVmZmVjdGl2ZVdpZHRoKSkpO1xufVxuXG4vLyAtLS0gUmVzcG9uc2UgcGFyc2luZyAtLS1cblxuLyoqXG4gKiBVbndyYXAgYSBzZW5kU3VjY2VzcyBBUEkgZW52ZWxvcGU6IHsgc3VjY2Vzcywgc3RhdHVzQ29kZSwgZGF0YTogeyAuLi4gfSB9XG4gKiBSZXR1cm5zIHRoZSBpbm5lciBgZGF0YWAgb2JqZWN0LCBvciB0aGUgb3JpZ2luYWwgcmVzcG9uc2UgaWYgbm90IHdyYXBwZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXBFbnZlbG9wZShyZXNwb25zZTogdW5rbm93bik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgaWYgKHJlc3BvbnNlICYmIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBvYmogPSByZXNwb25zZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBpZiAoJ3N1Y2Nlc3MnIGluIG9iaiAmJiAnZGF0YScgaW4gb2JqICYmIG9iai5kYXRhICYmIHR5cGVvZiBvYmouZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBvYmouZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuICByZXR1cm4ge307XG59XG5cbi8qKlxuICogRXh0cmFjdCBhIHNpbmdsZSBlbnRpdHkgZnJvbSBhbiBBUEkgcmVzcG9uc2UsIGhhbmRsaW5nIGVudmVsb3BlIGZvcm1hdHMuXG4gKiBUcmllczogcGF5bG9hZFtlbnRpdHlLZXldLCBwYXlsb2FkIGRpcmVjdGx5IChpZiBpZGVudGlmaWVyS2V5IGV4aXN0cyksIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTaW5nbGVSZXNwb25zZTxUPihyZXNwb25zZTogdW5rbm93biwgZW50aXR5S2V5OiBzdHJpbmcsIGlkZW50aWZpZXJLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXlsb2FkID0gdW53cmFwRW52ZWxvcGUocmVzcG9uc2UpO1xuICAvLyBEaXJlY3QgZW50aXR5OiBwYXlsb2FkIGhhcyB0aGUgaWRlbnRpZmllciAoZS5nLiBwYXlsb2FkLmlkLCBwYXlsb2FkLnByb3BzLCBwYXlsb2FkLm5hbWUpXG4gIGlmIChpZGVudGlmaWVyS2V5IGluIHBheWxvYWQpIHJldHVybiBwYXlsb2FkIGFzIHVua25vd24gYXMgVDtcbiAgLy8gTmVzdGVkIHVuZGVyIGVudGl0eSBrZXk6IHBheWxvYWQucGlwZWxpbmUsIHBheWxvYWQucGx1Z2luXG4gIGNvbnN0IG5lc3RlZCA9IHBheWxvYWRbZW50aXR5S2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgaWYgKG5lc3RlZCAmJiB0eXBlb2YgbmVzdGVkID09PSAnb2JqZWN0JyAmJiBpZGVudGlmaWVyS2V5IGluIG5lc3RlZCkgcmV0dXJuIG5lc3RlZCBhcyB1bmtub3duIGFzIFQ7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlc3BvbnNlUmVzdWx0PFQ+IHtcbiAgaXRlbXM6IFRbXTtcbiAgdG90YWw/OiBudW1iZXI7XG4gIGhhc01vcmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXh0cmFjdCBpdGVtcyBmcm9tIGFuIEFQSSBsaXN0IHJlc3BvbnNlLCBoYW5kbGluZyBtdWx0aXBsZSByZXNwb25zZSBmb3JtYXRzLlxuICogU3VwcG9ydHM6IGB7IDxrZXk+OiBUW10gfWAsIGB7IGl0ZW1zOiBUW10gfWAsIGBUW11gLCBvciBpbnZhbGlkIGZvcm1hdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0TGlzdFJlc3BvbnNlPFQ+KHJlc3BvbnNlOiB1bmtub3duLCBpdGVtc0tleTogc3RyaW5nKTogTGlzdFJlc3BvbnNlUmVzdWx0PFQ+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocmVzcG9uc2UpKSB7XG4gICAgcmV0dXJuIHsgaXRlbXM6IHJlc3BvbnNlLCB0b3RhbDogdW5kZWZpbmVkLCBoYXNNb3JlOiBmYWxzZSB9O1xuICB9XG5cbiAgaWYgKHJlc3BvbnNlICYmIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBvYmogPSB1bndyYXBFbnZlbG9wZShyZXNwb25zZSk7XG5cbiAgICAvLyBBIGB7IHN1Y2Nlc3MsIGRhdGE6IFsuLi5dIH1gIGVudmVsb3BlIHVud3JhcHMgdG8gdGhlIGJhcmUgYXJyYXkg4oCUIHJldHVybiBpdCBkaXJlY3RseVxuICAgIC8vICh0aGUgYGl0ZW1zS2V5IGluIG9iamAgLyBgJ2l0ZW1zJyBpbiBvYmpgIGNoZWNrcyBiZWxvdyBhcmUgZmFsc2UgZm9yIGFuIGFycmF5LCBzb1xuICAgIC8vIHdpdGhvdXQgdGhpcyBzdWNoIGxpc3QgZW52ZWxvcGVzIHdvdWxkIHNpbGVudGx5IHlpZWxkIHplcm8gaXRlbXMpLlxuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIHJldHVybiB7IGl0ZW1zOiBvYmogYXMgVFtdLCB0b3RhbDogdW5kZWZpbmVkLCBoYXNNb3JlOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIC8vIEV4dHJhY3QgcGFnaW5hdGlvbiBtZXRhZGF0YSBpZiBwcmVzZW50XG4gICAgY29uc3QgcGFnaW5hdGlvbiA9IG9iai5wYWdpbmF0aW9uIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHRvdGFsID0gKHBhZ2luYXRpb24/LnRvdGFsID8/IG9iai50b3RhbCkgYXMgbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGhhc01vcmUgPSAoKHBhZ2luYXRpb24/Lmhhc01vcmUgPz8gb2JqLmhhc01vcmUpIGFzIGJvb2xlYW4pIHx8IGZhbHNlO1xuXG4gICAgLy8gVHJ5IHByaW1hcnkga2V5IChlLmcuICdwaXBlbGluZXMnLCAncGx1Z2lucycpXG4gICAgaWYgKGl0ZW1zS2V5IGluIG9iaiAmJiBBcnJheS5pc0FycmF5KG9ialtpdGVtc0tleV0pKSB7XG4gICAgICByZXR1cm4geyBpdGVtczogb2JqW2l0ZW1zS2V5XSBhcyBUW10sIHRvdGFsLCBoYXNNb3JlIH07XG4gICAgfVxuXG4gICAgLy8gVHJ5IGdlbmVyaWMgJ2l0ZW1zJyBrZXlcbiAgICBpZiAoJ2l0ZW1zJyBpbiBvYmogJiYgQXJyYXkuaXNBcnJheShvYmouaXRlbXMpKSB7XG4gICAgICByZXR1cm4geyBpdGVtczogb2JqLml0ZW1zIGFzIFRbXSwgdG90YWwsIGhhc01vcmUgfTtcbiAgICB9XG5cbiAgICBwcmludFdhcm5pbmcoJ1VuZXhwZWN0ZWQgcmVzcG9uc2UgZm9ybWF0LCBhdHRlbXB0aW5nIHRvIGhhbmRsZScpO1xuICAgIHJldHVybiB7IGl0ZW1zOiBbXSwgdG90YWw6IHVuZGVmaW5lZCwgaGFzTW9yZTogZmFsc2UgfTtcbiAgfVxuXG4gIHByaW50RXJyb3IoJ0ludmFsaWQgcmVzcG9uc2UgZm9ybWF0IGZyb20gQVBJJyk7XG4gIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBBUEkgcmVzcG9uc2UgZm9ybWF0Jyk7XG59XG4iXX0=
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL291dHB1dC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFDO0FBQzlCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBRUwsY0FBYyxFQUNkLGFBQWEsR0FDZCxNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBMEJyRSw0QkFBNEI7QUFFNUIsU0FBUyxTQUFTLENBQUMsS0FBZSxFQUFFLE9BQWUsRUFBRSxJQUFjO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDeEYsTUFBTSxRQUFRLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNoRixNQUFNLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxF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QyxDQUFDO0lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBmcyBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgcGljbyBmcm9tICdwaWNvY29sb3JzJztcbmltcG9ydCBZQU1MIGZyb20gJ3lhbWwnO1xuaW1wb3J0IHtcbiAgdHlwZSBPdXRwdXRGb3JtYXQsXG4gIGZvcm1hdEZpbGVTaXplLFxuICBUQUJMRV9PUFRJT05TLFxufSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5cbmNvbnN0IHsgYm9sZCwgY3lhbiwgZ3JlZW4sIHllbGxvdywgcmVkLCBkaW0sIG1hZ2VudGEsIHdoaXRlIH0gPSBwaWNvO1xuXG50eXBlIExvZ0xldmVsID0gJ2luZm8nIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm4nIHwgJ2Vycm9yJyB8ICdkZWJ1Zyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igb3V0cHV0RGF0YSBmdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dE9wdGlvbnMge1xuICBmb3JtYXQ/OiBPdXRwdXRGb3JtYXQ7XG4gIGZpbGU/OiBzdHJpbmc7XG4gIHByZXR0eT86IGJvb2xlYW47XG4gIHNpbGVudD86IGJvb2xlYW47XG4gIGFwcGVuZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGFibGUgY29sdW1uIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbiB7XG4gIGhlYWRlcjogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuICBmb3JtYXR0ZXI/OiAodmFsdWU6IHVua25vd24pID0+IHN0cmluZztcbn1cblxuLy8gLS0tIExvZ2dpbmcgZnVuY3Rpb25zIC0tLVxuXG5mdW5jdGlvbiBsb2dPdXRwdXQobGV2ZWw6IExvZ0xldmVsLCBtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogdm9pZCB7XG4gIGNvbnN0IGNvbG9ycyA9IHsgaW5mbzogY3lhbiwgc3VjY2VzczogZ3JlZW4sIHdhcm46IHllbGxvdywgZXJyb3I6IHJlZCwgZGVidWc6IG1hZ2VudGEgfTtcbiAgY29uc3QgcHJlZml4ZXMgPSB7IGluZm86ICfihLknLCBzdWNjZXNzOiAn4pyTJywgd2FybjogJ+KaoCcsIGVycm9yOiAn4pyXJywgZGVidWc6ICfil48nIH07XG4gIGNvbnN0IHdyaXRlcnMgPSB7IGVycm9yOiBjb25zb2xlLmVycm9yLCB3YXJuOiBjb25zb2xlLndhcm4sIGluZm86IGNvbnNvbGUubG9nLCBzdWNjZXNzOiBjb25zb2xlLmxvZywgZGVidWc6IGNvbnNvbGUubG9nIH07XG5cbiAgLy8gRmFsbCBiYWNrIHRvIGNvbnNvbGUubG9nICsgcmF3IG1lc3NhZ2UgaWYgYSBjYWxsZXIgbGVha3MgYW4gdW5rbm93biBsZXZlbFxuICAvLyAoZS5nLiBhbiBgYXMgTG9nTGV2ZWxgIGNhc3Qgb24gdXNlciBpbnB1dCkuIFRoZSB3aG9sZSBwb2ludCBvZiB0aGUgbG9nZ2VyXG4gIC8vIGlzIHRvIHN1cmZhY2UgZXJyb3JzIOKAlCBmYWlsaW5nIGluc2lkZSB0aGUgbG9nZ2VyIGFuZCBtYXNraW5nIHRoZSByZWFsXG4gIC8vIGVycm9yIHdpdGggYSBUeXBlRXJyb3IgZGVmZWF0cyBpdC5cbiAgY29uc3QgY29sb3IgPSBjb2xvcnNbbGV2ZWxdID8/ICgoczogc3RyaW5nKSA9PiBzKTtcbiAgY29uc3QgcHJlZml4ID0gcHJlZml4ZXNbbGV2ZWxdID8/ICc/JztcbiAgY29uc3Qgd3JpdGUgPSB3cml0ZXJzW2xldmVsXSA/PyBjb25zb2xlLmxvZztcblxuICB3cml0ZShgJHtjb2xvcihwcmVmaXgpfSAke21lc3NhZ2V9YCk7XG4gIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHdyaXRlKGRpbShmb3JtYXREYXRhRm9yTG9nKGRhdGEpKSk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdERhdGFGb3JMb2coZGF0YTogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHJldHVybiBkYXRhO1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmIGRhdGEgIT09IG51bGwpIHtcbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoZGF0YSk7XG4gICAgaWYgKGVudHJpZXMubGVuZ3RoIDw9IDUpIHtcbiAgICAgIHJldHVybiAnXFxuJyArIGVudHJpZXMubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHIgPSB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIGAgICR7a2V5fTogJHt2YWx1ZVN0cn1gO1xuICAgICAgfSkuam9pbignXFxuJyk7XG4gICAgfVxuICB9XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW50U3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogdm9pZCB7IGxvZ091dHB1dCgnc3VjY2VzcycsIG1lc3NhZ2UsIGRhdGEpOyB9XG5leHBvcnQgZnVuY3Rpb24gcHJpbnRJbmZvKG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pOiB2b2lkIHsgbG9nT3V0cHV0KCdpbmZvJywgbWVzc2FnZSwgZGF0YSk7IH1cbmV4cG9ydCBmdW5jdGlvbiBwcmludFdhcm5pbmcobWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bik6IHZvaWQgeyBsb2dPdXRwdXQoJ3dhcm4nLCBtZXNzYWdlLCBkYXRhKTsgfVxuZXhwb3J0IGZ1bmN0aW9uIHByaW50RXJyb3IobWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bik6IHZvaWQgeyBsb2dPdXRwdXQoJ2Vycm9yJywgbWVzc2FnZSwgZGF0YSk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW50RGVidWcobWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bik6IHZvaWQge1xuICBpZiAocHJvY2Vzcy5lbnYuREVCVUcgPT09ICd0cnVlJykgbG9nT3V0cHV0KCdkZWJ1ZycsIG1lc3NhZ2UsIGRhdGEpO1xufVxuXG4vLyAtLS0gRGF0YSBvdXRwdXQgLS0tXG5cbi8qKlxuICogT3V0cHV0IGRhdGEgaW4gc3BlY2lmaWVkIGZvcm1hdCAoY29uc29sZSBvciBmaWxlKVxuICovXG5leHBvcnQgZnVuY3Rpb24gb3V0cHV0RGF0YShkYXRhOiB1bmtub3duLCBvcHRpb25zOiBPdXRwdXRPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgY29uc3QgeyBmb3JtYXQgPSAnanNvbicsIGZpbGUsIHByZXR0eSA9IHRydWUsIHNpbGVudCA9IGZhbHNlLCBhcHBlbmQgPSBmYWxzZSB9ID0gb3B0aW9ucztcblxuICBsZXQgb3V0cHV0OiBzdHJpbmc7XG5cbiAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICBjYXNlICd0YWJsZSc6XG4gICAgICBpZiAoIXNpbGVudCkgcHJpbnRJbmZvKCdSZW5kZXJpbmcgYXMgdGFibGUnKTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpICYmIGRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhmb3JtYXRUYWJsZShkYXRhKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGZvcm1hdFRhYmxlKFtkYXRhXSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS50YWJsZShBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlICdjc3YnOlxuICAgICAgaWYgKCFzaWxlbnQpIHByaW50SW5mbygnUmVuZGVyaW5nIGFzIENTVicpO1xuICAgICAgb3V0cHV0ID0gZm9ybWF0Q3N2KGRhdGEpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd5YW1sJzpcbiAgICAgIGlmICghc2lsZW50KSBwcmludEluZm8oJ1JlbmRlcmluZyBhcyBZQU1MJyk7XG4gICAgICBvdXRwdXQgPSBZQU1MLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnanNvbic6XG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICghc2lsZW50KSBwcmludEluZm8oJ1JlbmRlcmluZyBhcyBKU09OJyk7XG4gICAgICBvdXRwdXQgPSBwcmV0dHkgPyBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSA6IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBpZiAoZmlsZSkge1xuICAgIHdyaXRlVG9GaWxlKGZpbGUsIG91dHB1dCwgZm9ybWF0LCBhcHBlbmQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKG91dHB1dCk7XG4gIH1cbn1cblxuLy8gLS0tIFRhYmxlIGZvcm1hdHRpbmcgLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUYWJsZShkYXRhOiB1bmtub3duW10sIGNvbHVtbnM/OiBUYWJsZUNvbHVtbltdKTogc3RyaW5nIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpIHx8IGRhdGEubGVuZ3RoID09PSAwKSByZXR1cm4gZGltKCcoTm8gZGF0YSB0byBkaXNwbGF5KScpO1xuXG4gIGNvbnN0IGZpcnN0SXRlbSA9IGRhdGFbMF07XG4gIGlmICh0eXBlb2YgZmlyc3RJdGVtICE9PSAnb2JqZWN0JyB8fCBmaXJzdEl0ZW0gPT09IG51bGwpIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcblxuICBjb25zdCBjb2xzOiBUYWJsZUNvbHVtbltdID0gY29sdW1ucyB8fCBPYmplY3Qua2V5cyhmaXJzdEl0ZW0pLm1hcChrZXkgPT4gKHsgaGVhZGVyOiBrZXksIGtleSB9KSk7XG5cbiAgY29uc3QgY29sV2lkdGhzOiBudW1iZXJbXSA9IGNvbHMubWFwKGNvbCA9PiB7XG4gICAgaWYgKGNvbC53aWR0aCkgcmV0dXJuIGNvbC53aWR0aDtcbiAgICBjb25zdCBoZWFkZXJXaWR0aCA9IGNvbC5oZWFkZXIubGVuZ3RoO1xuICAgIGNvbnN0IGRhdGFXaWR0aCA9IE1hdGgubWF4KC4uLmRhdGEubWFwKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBjb2wuZm9ybWF0dGVyXG4gICAgICAgID8gY29sLmZvcm1hdHRlcigoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbY29sLmtleV0pXG4gICAgICAgIDogU3RyaW5nKChpdGVtIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtjb2wua2V5XSA/PyAnJyk7XG4gICAgICByZXR1cm4gdmFsdWUubGVuZ3RoO1xuICAgIH0pKTtcbiAgICByZXR1cm4gTWF0aC5tYXgoaGVhZGVyV2lkdGgsIGRhdGFXaWR0aCwgMyk7XG4gIH0pO1xuXG4gIGNvbnN0IHsgYm9yZGVyIH0gPSBUQUJMRV9PUFRJT05TO1xuXG4gIGNvbnN0IGhvcml6b250YWxMaW5lID0gKGxlZnQ6IHN0cmluZywgbWlkZGxlOiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmcpID0+XG4gICAgLy8gRmlsbCB3aXRoIHRoZSBIT1JJWk9OVEFMIHJ1bGUgZ2x5cGggKGDilIBgKSwgbm90IGBib2R5Sm9pbmAgKGDilIJgKSDigJQgdGhlIGxhdHRlclxuICAgIC8vIHJlbmRlcmVkIGV2ZXJ5IHJ1bGUgYXMgYOKUjOKUguKUguKUguKUguKUguKUrOKApmAgaW5zdGVhZCBvZiBg4pSM4pSA4pSA4pSA4pSA4pSA4pSs4oCmYC5cbiAgICBsZWZ0ICsgY29sV2lkdGhzLm1hcCh3ID0+IGJvcmRlci50b3BCb2R5LnJlcGVhdCgodyA/PyAwKSArIDIpKS5qb2luKG1pZGRsZSkgKyByaWdodDtcblxuICBjb25zdCB0b3BMaW5lID0gaG9yaXpvbnRhbExpbmUoYm9yZGVyLnRvcExlZnQsIGJvcmRlci50b3BKb2luLCBib3JkZXIudG9wUmlnaHQpO1xuICBjb25zdCBtaWRMaW5lID0gaG9yaXpvbnRhbExpbmUoYm9yZGVyLmpvaW5MZWZ0LCBib3JkZXIuam9pbkpvaW4sIGJvcmRlci5qb2luUmlnaHQpO1xuICBjb25zdCBib3R0b21MaW5lID0gaG9yaXpvbnRhbExpbmUoYm9yZGVyLmJvdHRvbUxlZnQsIGJvcmRlci5ib3R0b21Kb2luLCBib3JkZXIuYm90dG9tUmlnaHQpO1xuXG4gIGNvbnN0IGZvcm1hdENlbGwgPSAodmFsdWU6IHN0cmluZywgd2lkdGg6IG51bWJlciwgYWxpZ246ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdsZWZ0Jyk6IHN0cmluZyA9PiB7XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+IHdpZHRoKSByZXR1cm4gdmFsdWUuc3Vic3RyaW5nKDAsIHdpZHRoIC0gMykgKyAnLi4uJztcbiAgICBpZiAoYWxpZ24gPT09ICdjZW50ZXInKSB7XG4gICAgICBjb25zdCBsZWZ0UGFkID0gTWF0aC5mbG9vcigod2lkdGggLSB2YWx1ZS5sZW5ndGgpIC8gMik7XG4gICAgICByZXR1cm4gJyAnLnJlcGVhdChsZWZ0UGFkKSArIHZhbHVlICsgJyAnLnJlcGVhdCh3aWR0aCAtIHZhbHVlLmxlbmd0aCAtIGxlZnRQYWQpO1xuICAgIH1cbiAgICByZXR1cm4gYWxpZ24gPT09ICdyaWdodCcgPyB2YWx1ZS5wYWRTdGFydCh3aWR0aCkgOiB2YWx1ZS5wYWRFbmQod2lkdGgpO1xuICB9O1xuXG4gIGNvbnN0IGhlYWRlclJvdyA9IGJvcmRlci5ib2R5TGVmdCArICcgJyArXG4gICAgY29scy5tYXAoKGNvbCwgaSkgPT4gY3lhbihib2xkKGZvcm1hdENlbGwoY29sLmhlYWRlciwgY29sV2lkdGhzW2ldID8/IDApKSkpLmpvaW4oYCAke2JvcmRlci5ib2R5Sm9pbn0gYCkgK1xuICAgIGAgJHtib3JkZXIuYm9keVJpZ2h0fWA7XG5cbiAgbGV0IHRhYmxlID0gY3lhbih0b3BMaW5lKSArICdcXG4nICsgaGVhZGVyUm93ICsgJ1xcbicgKyBjeWFuKG1pZExpbmUpICsgJ1xcbic7XG5cbiAgZGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgIGNvbnN0IHJvdyA9IGJvcmRlci5ib2R5TGVmdCArICcgJyArXG4gICAgICBjb2xzLm1hcCgoY29sLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gY29sLmZvcm1hdHRlclxuICAgICAgICAgID8gY29sLmZvcm1hdHRlcigoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbY29sLmtleV0pXG4gICAgICAgICAgOiBTdHJpbmcoKGl0ZW0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2NvbC5rZXldID8/ICcnKTtcbiAgICAgICAgcmV0dXJuIGZvcm1hdENlbGwodmFsdWUsIGNvbFdpZHRoc1tpXSA/PyAwLCBjb2wuYWxpZ24pO1xuICAgICAgfSkuam9pbihgICR7Ym9yZGVyLmJvZHlKb2lufSBgKSArXG4gICAgICBgICR7Ym9yZGVyLmJvZHlSaWdodH1gO1xuICAgIHRhYmxlICs9IHJvdyArICdcXG4nO1xuICB9KTtcblxuICB0YWJsZSArPSBjeWFuKGJvdHRvbUxpbmUpO1xuICByZXR1cm4gdGFibGU7XG59XG5cbi8vIC0tLSBDU1YgZm9ybWF0dGluZyAtLS1cblxuZnVuY3Rpb24gZm9ybWF0Q3N2KGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkgfHwgZGF0YS5sZW5ndGggPT09IDApIHJldHVybiAnJztcbiAgY29uc3QgZmlyc3RJdGVtID0gZGF0YVswXTtcbiAgaWYgKHR5cGVvZiBmaXJzdEl0ZW0gIT09ICdvYmplY3QnIHx8IGZpcnN0SXRlbSA9PT0gbnVsbCkgcmV0dXJuIGRhdGEuam9pbignLCcpO1xuXG4gIGNvbnN0IGhlYWRlcnMgPSBPYmplY3Qua2V5cyhmaXJzdEl0ZW0pO1xuICBjb25zdCByb3dzOiBzdHJpbmdbXSA9IFtoZWFkZXJzLm1hcChoID0+IGVzY2FwZUNzdlZhbHVlKGgpKS5qb2luKCcsJyldO1xuICBkYXRhLmZvckVhY2goaXRlbSA9PiB7XG4gICAgcm93cy5wdXNoKGhlYWRlcnMubWFwKGggPT4gZXNjYXBlQ3N2VmFsdWUoKGl0ZW0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2hdKSkuam9pbignLCcpKTtcbiAgfSk7XG4gIHJldHVybiByb3dzLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVDc3ZWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJyc7XG4gIGNvbnN0IHN0ciA9IFN0cmluZyh2YWx1ZSk7XG4gIGlmIChzdHIuaW5jbHVkZXMoJywnKSB8fCBzdHIuaW5jbHVkZXMoJ1wiJykgfHwgc3RyLmluY2x1ZGVzKCdcXG4nKSkge1xuICAgIHJldHVybiBgXCIke3N0ci5yZXBsYWNlKC9cIi9nLCAnXCJcIicpfVwiYDtcbiAgfVxuICByZXR1cm4gc3RyO1xufVxuXG4vLyAtLS0gRmlsZSBvcGVyYXRpb25zIC0tLVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoYXQgYSBmaWxlIHBhdGggcmVzb2x2ZXMgd2l0aGluIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuICogUHJldmVudHMgcGF0aCB0cmF2ZXJzYWwgYXR0YWNrcyAoZS5nLiwgLS1vdXRwdXQgLi4vLi4vZXRjL3Bhc3N3ZCkuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlT3V0cHV0UGF0aChmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcmVzb2x2ZWQgPSBwYXRoLnJlc29sdmUoZmlsZVBhdGgpO1xuICBjb25zdCBjd2QgPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSk7XG4gIGlmICghcmVzb2x2ZWQuc3RhcnRzV2l0aChjd2QgKyBwYXRoLnNlcCkgJiYgcmVzb2x2ZWQgIT09IGN3ZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGF0aCB0cmF2ZXJzYWwgcmVqZWN0ZWQ6IFwiJHtmaWxlUGF0aH1cIiByZXNvbHZlcyBvdXRzaWRlIHRoZSBjdXJyZW50IGRpcmVjdG9yeWApO1xuICB9XG4gIHJldHVybiByZXNvbHZlZDtcbn1cblxuZnVuY3Rpb24gd3JpdGVUb0ZpbGUoZmlsZVBhdGg6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBmb3JtYXQ6IE91dHB1dEZvcm1hdCwgYXBwZW5kOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzYWZlUGF0aCA9IHZhbGlkYXRlT3V0cHV0UGF0aChmaWxlUGF0aCk7XG4gICAgY29uc3QgZGlyID0gcGF0aC5kaXJuYW1lKHNhZmVQYXRoKTtcbiAgICBpZiAoZGlyICE9PSAnLicpIGVuc3VyZU91dHB1dERpcmVjdG9yeShkaXIpO1xuXG4gICAgaWYgKGFwcGVuZCkge1xuICAgICAgZnMuYXBwZW5kRmlsZVN5bmMoc2FmZVBhdGgsIGNvbnRlbnQgKyAnXFxuJywgJ3V0Zi04Jyk7XG4gICAgICBwcmludFN1Y2Nlc3MoJ091dHB1dCBhcHBlbmRlZCB0byBmaWxlJywgeyBwYXRoOiBzYWZlUGF0aCwgZm9ybWF0IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHNhZmVQYXRoLCBjb250ZW50LCAndXRmLTgnKTtcbiAgICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMoc2FmZVBhdGgpO1xuICAgICAgcHJpbnRTdWNjZXNzKCdPdXRwdXQgc2F2ZWQgdG8gZmlsZScsIHsgcGF0aDogc2FmZVBhdGgsIGZvcm1hdCwgc2l6ZTogZm9ybWF0RmlsZVNpemUoc3RhdHMuc2l6ZSkgfSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IoJ0ZhaWxlZCB0byB3cml0ZSBmaWxlJywge1xuICAgICAgcGF0aDogZmlsZVBhdGgsXG4gICAgICBlcnJvcjogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpLFxuICAgIH0pO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVPdXRwdXREaXJlY3Rvcnkob3V0cHV0UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChmcy5leGlzdHNTeW5jKG91dHB1dFBhdGgpKSByZXR1cm47XG4gIHRyeSB7XG4gICAgZnMubWtkaXJTeW5jKG91dHB1dFBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIHByaW50RGVidWcoJ0RpcmVjdG9yeSBjcmVhdGVkJywgeyBwYXRoOiBvdXRwdXRQYXRoIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgZGlyZWN0b3J5Jywge1xuICAgICAgcGF0aDogb3V0cHV0UGF0aCxcbiAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvciksXG4gICAgfSk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVFeGlzdHMoZmlsZVBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gZnMuZXhpc3RzU3luYyhmaWxlUGF0aCk7XG59XG5cbi8vIC0tLSBEaXNwbGF5IGhlbHBlcnMgLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludFNlY3Rpb24odGl0bGU6IHN0cmluZywgc3VidGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3Qgd2lkdGggPSBwcm9jZXNzLnN0ZG91dC5jb2x1bW5zIHx8IDgwO1xuICBjb25zb2xlLmxvZygnJyk7XG4gIGNvbnNvbGUubG9nKGN5YW4oJ+KVkCcucmVwZWF0KHdpZHRoKSkpO1xuICBjb25zb2xlLmxvZyhjeWFuKGJvbGQodGl0bGUpKSk7XG4gIGlmIChzdWJ0aXRsZSkgY29uc29sZS5sb2coZGltKHN1YnRpdGxlKSk7XG4gIGNvbnNvbGUubG9nKGN5YW4oJ+KVkCcucmVwZWF0KHdpZHRoKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRLZXlWYWx1ZShcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIG9wdGlvbnM6IHsgaW5kZW50PzogbnVtYmVyOyBzZXBhcmF0b3I/OiBzdHJpbmcgfSA9IHt9LFxuKTogdm9pZCB7XG4gIGNvbnN0IHsgaW5kZW50ID0gMCwgc2VwYXJhdG9yID0gJ+KUgicgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IG1heEtleUxlbmd0aCA9IE1hdGgubWF4KC4uLk9iamVjdC5rZXlzKGRhdGEpLm1hcChrID0+IGsubGVuZ3RoKSk7XG4gIGNvbnN0IGluZGVudFN0ciA9ICcgJy5yZXBlYXQoaW5kZW50KTtcblxuICBPYmplY3QuZW50cmllcyhkYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBjb25zdCBwYWRkZWRLZXkgPSBrZXkucGFkRW5kKG1heEtleUxlbmd0aCk7XG4gICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsXG4gICAgICA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgY29uc29sZS5sb2coYCR7aW5kZW50U3RyfSR7ZGltKHBhZGRlZEtleSl9ICR7Y3lhbihzZXBhcmF0b3IpfSAke3doaXRlKGZvcm1hdHRlZFZhbHVlKX1gKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludERpdmlkZXIoY2hhcjogc3RyaW5nID0gJ+KUgCcsIHdpZHRoPzogbnVtYmVyKTogdm9pZCB7XG4gIGNvbnN0IGVmZmVjdGl2ZVdpZHRoID0gd2lkdGggfHwgcHJvY2Vzcy5zdGRvdXQuY29sdW1ucyB8fCA4MDtcbiAgY29uc29sZS5sb2coZGltKGNoYXIucmVwZWF0KGVmZmVjdGl2ZVdpZHRoKSkpO1xufVxuXG4vLyAtLS0gUmVzcG9uc2UgcGFyc2luZyAtLS1cblxuLyoqXG4gKiBVbndyYXAgYSBzZW5kU3VjY2VzcyBBUEkgZW52ZWxvcGU6IHsgc3VjY2Vzcywgc3RhdHVzQ29kZSwgZGF0YTogeyAuLi4gfSB9XG4gKiBSZXR1cm5zIHRoZSBpbm5lciBgZGF0YWAgb2JqZWN0LCBvciB0aGUgb3JpZ2luYWwgcmVzcG9uc2UgaWYgbm90IHdyYXBwZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXBFbnZlbG9wZShyZXNwb25zZTogdW5rbm93bik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgaWYgKHJlc3BvbnNlICYmIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBvYmogPSByZXNwb25zZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBpZiAoJ3N1Y2Nlc3MnIGluIG9iaiAmJiAnZGF0YScgaW4gb2JqICYmIG9iai5kYXRhICYmIHR5cGVvZiBvYmouZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBvYmouZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuICByZXR1cm4ge307XG59XG5cbi8qKlxuICogRXh0cmFjdCBhIHNpbmdsZSBlbnRpdHkgZnJvbSBhbiBBUEkgcmVzcG9uc2UsIGhhbmRsaW5nIGVudmVsb3BlIGZvcm1hdHMuXG4gKiBUcmllczogcGF5bG9hZFtlbnRpdHlLZXldLCBwYXlsb2FkIGRpcmVjdGx5IChpZiBpZGVudGlmaWVyS2V5IGV4aXN0cyksIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTaW5nbGVSZXNwb25zZTxUPihyZXNwb25zZTogdW5rbm93biwgZW50aXR5S2V5OiBzdHJpbmcsIGlkZW50aWZpZXJLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXlsb2FkID0gdW53cmFwRW52ZWxvcGUocmVzcG9uc2UpO1xuICAvLyBEaXJlY3QgZW50aXR5OiBwYXlsb2FkIGhhcyB0aGUgaWRlbnRpZmllciAoZS5nLiBwYXlsb2FkLmlkLCBwYXlsb2FkLnByb3BzLCBwYXlsb2FkLm5hbWUpXG4gIGlmIChpZGVudGlmaWVyS2V5IGluIHBheWxvYWQpIHJldHVybiBwYXlsb2FkIGFzIHVua25vd24gYXMgVDtcbiAgLy8gTmVzdGVkIHVuZGVyIGVudGl0eSBrZXk6IHBheWxvYWQucGlwZWxpbmUsIHBheWxvYWQucGx1Z2luXG4gIGNvbnN0IG5lc3RlZCA9IHBheWxvYWRbZW50aXR5S2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgaWYgKG5lc3RlZCAmJiB0eXBlb2YgbmVzdGVkID09PSAnb2JqZWN0JyAmJiBpZGVudGlmaWVyS2V5IGluIG5lc3RlZCkgcmV0dXJuIG5lc3RlZCBhcyB1bmtub3duIGFzIFQ7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlc3BvbnNlUmVzdWx0PFQ+IHtcbiAgaXRlbXM6IFRbXTtcbiAgdG90YWw/OiBudW1iZXI7XG4gIGhhc01vcmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXh0cmFjdCBpdGVtcyBmcm9tIGFuIEFQSSBsaXN0IHJlc3BvbnNlLCBoYW5kbGluZyBtdWx0aXBsZSByZXNwb25zZSBmb3JtYXRzLlxuICogU3VwcG9ydHM6IGB7IDxrZXk+OiBUW10gfWAsIGB7IGl0ZW1zOiBUW10gfWAsIGBUW11gLCBvciBpbnZhbGlkIGZvcm1hdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0TGlzdFJlc3BvbnNlPFQ+KHJlc3BvbnNlOiB1bmtub3duLCBpdGVtc0tleTogc3RyaW5nKTogTGlzdFJlc3BvbnNlUmVzdWx0PFQ+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocmVzcG9uc2UpKSB7XG4gICAgcmV0dXJuIHsgaXRlbXM6IHJlc3BvbnNlLCB0b3RhbDogdW5kZWZpbmVkLCBoYXNNb3JlOiBmYWxzZSB9O1xuICB9XG5cbiAgaWYgKHJlc3BvbnNlICYmIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBvYmogPSB1bndyYXBFbnZlbG9wZShyZXNwb25zZSk7XG5cbiAgICAvLyBBIGB7IHN1Y2Nlc3MsIGRhdGE6IFsuLi5dIH1gIGVudmVsb3BlIHVud3JhcHMgdG8gdGhlIGJhcmUgYXJyYXkg4oCUIHJldHVybiBpdCBkaXJlY3RseVxuICAgIC8vICh0aGUgYGl0ZW1zS2V5IGluIG9iamAgLyBgJ2l0ZW1zJyBpbiBvYmpgIGNoZWNrcyBiZWxvdyBhcmUgZmFsc2UgZm9yIGFuIGFycmF5LCBzb1xuICAgIC8vIHdpdGhvdXQgdGhpcyBzdWNoIGxpc3QgZW52ZWxvcGVzIHdvdWxkIHNpbGVudGx5IHlpZWxkIHplcm8gaXRlbXMpLlxuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIHJldHVybiB7IGl0ZW1zOiBvYmogYXMgVFtdLCB0b3RhbDogdW5kZWZpbmVkLCBoYXNNb3JlOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIC8vIEV4dHJhY3QgcGFnaW5hdGlvbiBtZXRhZGF0YSBpZiBwcmVzZW50XG4gICAgY29uc3QgcGFnaW5hdGlvbiA9IG9iai5wYWdpbmF0aW9uIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHRvdGFsID0gKHBhZ2luYXRpb24/LnRvdGFsID8/IG9iai50b3RhbCkgYXMgbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGhhc01vcmUgPSAoKHBhZ2luYXRpb24/Lmhhc01vcmUgPz8gb2JqLmhhc01vcmUpIGFzIGJvb2xlYW4pIHx8IGZhbHNlO1xuXG4gICAgLy8gVHJ5IHByaW1hcnkga2V5IChlLmcuICdwaXBlbGluZXMnLCAncGx1Z2lucycpXG4gICAgaWYgKGl0ZW1zS2V5IGluIG9iaiAmJiBBcnJheS5pc0FycmF5KG9ialtpdGVtc0tleV0pKSB7XG4gICAgICByZXR1cm4geyBpdGVtczogb2JqW2l0ZW1zS2V5XSBhcyBUW10sIHRvdGFsLCBoYXNNb3JlIH07XG4gICAgfVxuXG4gICAgLy8gVHJ5IGdlbmVyaWMgJ2l0ZW1zJyBrZXlcbiAgICBpZiAoJ2l0ZW1zJyBpbiBvYmogJiYgQXJyYXkuaXNBcnJheShvYmouaXRlbXMpKSB7XG4gICAgICByZXR1cm4geyBpdGVtczogb2JqLml0ZW1zIGFzIFRbXSwgdG90YWwsIGhhc01vcmUgfTtcbiAgICB9XG5cbiAgICBwcmludFdhcm5pbmcoJ1VuZXhwZWN0ZWQgcmVzcG9uc2UgZm9ybWF0LCBhdHRlbXB0aW5nIHRvIGhhbmRsZScpO1xuICAgIHJldHVybiB7IGl0ZW1zOiBbXSwgdG90YWw6IHVuZGVmaW5lZCwgaGFzTW9yZTogZmFsc2UgfTtcbiAgfVxuXG4gIHByaW50RXJyb3IoJ0ludmFsaWQgcmVzcG9uc2UgZm9ybWF0IGZyb20gQVBJJyk7XG4gIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBBUEkgcmVzcG9uc2UgZm9ybWF0Jyk7XG59XG4iXX0=
package/package.json CHANGED
@@ -42,9 +42,9 @@
42
42
  "typescript": "npm:@typescript/typescript6@^6.0.2",
43
43
  "yaml": "2.9.0",
44
44
  "zod": "4.4.3",
45
- "@pipeline-builder/api-core": "3.4.109",
46
- "@pipeline-builder/ai-core": "3.4.109",
47
- "@pipeline-builder/pipeline-core": "3.4.128"
45
+ "@pipeline-builder/api-core": "3.4.111",
46
+ "@pipeline-builder/pipeline-core": "3.4.130",
47
+ "@pipeline-builder/ai-core": "3.4.111"
48
48
  },
49
49
  "keywords": [
50
50
  "ci-cd",
@@ -99,7 +99,7 @@
99
99
  "access": "public",
100
100
  "registry": "https://registry.npmjs.org/"
101
101
  },
102
- "version": "3.4.167",
102
+ "version": "3.4.169",
103
103
  "bugs": {
104
104
  "url": "https://github.com/mwashburn160/pipeline-builder/issues"
105
105
  },