Comparing version 0.0.8 to 0.0.9
@@ -339,3 +339,3 @@ 'use strict'; | ||
// check if command | ||
const cmd = this.lookup.commands[arg]; | ||
const cmd = $args.contexts[0].lookup.commands[arg]; | ||
if (cmd) { | ||
@@ -526,2 +526,2 @@ log(`Found command: ${cmd.name}`); | ||
exports.default = Context; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbnRleHQuanMiXSwibmFtZXMiOlsibG9nIiwib3B0UkUiLCJkYXNoT3B0IiwibmVnYXRlUmVnRXhwIiwiQ29udGV4dCIsImNvbnN0cnVjdG9yIiwib3B0cyIsImFyZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJUeXBlRXJyb3IiLCJjb21tYW5kcyIsIm9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJncm91cHMiLCJsb29rdXAiLCJsb25nIiwic2hvcnQiLCJ0b1N0cmluZyIsInMiLCJrZXlzIiwibGVuZ3RoIiwicHVzaCIsIm5hbWUiLCJqb2luIiwiY2FtZWxDYXNlIiwiY29tbWFuZCIsImdyb3VwIiwiZ3JvdXBPck9wdGlvbiIsImZvcm1hdCIsIm9wdGlvbiIsImFyZyIsImFyZ3VtZW50IiwiYWN0aW9uIiwicGFyZW50IiwiY21kIiwiYWxpYXNlcyIsImFsaWFzIiwicGFyYW1zIiwib3B0IiwicGFyc2UiLCIkYXJncyIsImNvbnRleHRzIiwicGFyc2VBcmciLCJob29rIiwiY3R4IiwiaSIsInR5cGUiLCJvcmlnIiwibSIsIm1hdGNoIiwidmFsdWUiLCJzbGljZSIsImZpbGwiLCJuZWdhdGVkIiwidHJhbnNmb3JtIiwiY2FsbGJhY2siLCJuZXdWYWx1ZSIsInVuZGVmaW5lZCIsInVuc2hpZnQiLCJyZWR1Y2UiLCJwcm9taXNlIiwidGhlbiIsIiRhIiwiUHJvbWlzZSIsInJlc29sdmUiLCJwcnVuZSIsImxpbmsiLCJlbnYiLCJkZWZhdWx0IiwiYXJndiIsIm5lZ2F0ZSIsInByb2Nlc3MiLCJfIiwicmVuZGVySGVscCIsImFkZCIsImJ1Y2tldCIsImNvbHVtbnMiLCJsIiwibGVuIiwiU3RyaW5nIiwibWF4V2lkdGhzIiwibGlzdCIsImRlc2MiLCJoaWRkZW4iLCJoaW50IiwidXNhZ2UiLCJ3YWxrIiwiZmlsdGVyIiwibWFwIiwicmVxdWlyZWQiLCJsYWJlbCIsIm1heCIsImxpbmUiLCJwYWRFbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFD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aUUsV0FBUzNFLFFBQVF1RSxJQUFSLENBQWE3RCxNQUFiLEdBQXNCLFlBQXRCLEdBQXFDLEVBQTlDO0FBQ0F0QixNQUFLLEdBQUV1RixLQUFNLElBQWI7O0FBRUEsUUFBTUosT0FBTyxDQUFDUyxLQUFELEVBQVFmLE1BQVIsS0FBbUI7QUFDL0IsT0FBSUEsT0FBT00sSUFBUCxDQUFZN0QsTUFBaEIsRUFBd0I7QUFDdkJ0QixRQUFLLEdBQUU0RixLQUFNLEdBQWI7QUFDQSxVQUFNQyxNQUFNaEIsT0FBT0ssU0FBUCxDQUFpQixDQUFqQixDQUFaO0FBQ0EsU0FBSyxNQUFNWSxJQUFYLElBQW1CakIsT0FBT00sSUFBMUIsRUFBZ0M7QUFBQSxnQ0FDUlcsSUFEUTs7QUFBQSxXQUN2QnRFLElBRHVCO0FBQUEsV0FDakI0RCxJQURpQjs7QUFFL0JwRixTQUFLLEtBQUl3QixLQUFLdUUsTUFBTCxDQUFZRixHQUFaLENBQWlCLEtBQUlULFFBQVEsRUFBRyxFQUF6QztBQUNBO0FBQ0RwRjtBQUNBO0FBQ0QsR0FWRDs7QUFZQW1GLE9BQUssVUFBTCxFQUFpQnhFLFFBQWpCO0FBQ0F3RSxPQUFLLFdBQUwsRUFBa0I1RSxJQUFsQjtBQUNBNEUsT0FBSyxTQUFMLEVBQWdCdkUsT0FBaEI7QUFDQTtBQS9jK0M7a0JBQTVCUixPIiwiZmlsZSI6ImNvbnRleHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXJndW1lbnQgZnJvbSAnLi9hcmd1bWVudCc7XG5pbXBvcnQgQXJndW1lbnRzIGZyb20gJy4vYXJndW1lbnRzJztcbmltcG9ydCBDb21tYW5kIGZyb20gJy4vY29tbWFuZCc7XG5pbXBvcnQgSG9va0VtaXR0ZXIgZnJvbSAnaG9vay1lbWl0dGVyJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IE9wdGlvbiBmcm9tICcuL29wdGlvbic7XG5cbmltcG9ydCB7IGNhbWVsQ2FzZSB9IGZyb20gJy4vdXRpbCc7XG5cbmNvbnN0IHsgbG9nIH0gPSBsb2dnZXIoJ2NsaS1raXQ6Y29udGV4dCcpO1xuXG5jb25zdCBvcHRSRSA9IC9eKD86LS184oCUKSg/OihbXj1dKykoPzo9KFtcXHNcXFNdKikpPyk/JC87XG5jb25zdCBkYXNoT3B0ID0gL14oPzotfOKAlCkoLispJC87XG5jb25zdCBuZWdhdGVSZWdFeHAgPSAvXm5vLSguKykkLztcblxuLyoqXG4gKiBEZWZpbmVzIGEgY29udGV4dCBmb3IgY29tbWFuZHMsIG9wdGlvbnMsIGFuZCBhcmdzLlxuICpcbiAqIEBleHRlbmRzIHtIb29rRW1pdHRlcn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGV4dCBleHRlbmRzIEhvb2tFbWl0dGVyIHtcblx0LyoqXG5cdCAqIENvbnN0cnVjdHMgYSBjb250ZXh0IGluc3RhbmNlLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gVmFyaW91cyBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge0FycmF5PE9iamVjdD59IFtvcHRzLmFyZ3NdIC0gQW4gYXJyYXkgb2YgYXJndW1lbnRzLlxuXHQgKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRzLmNhbWVsQ2FzZT10cnVlXSAtIENhbWVsIGNhc2Ugb3B0aW9uIG5hbWVzLlxuXHQgKiBAcGFyYW0ge09iamVjdH0gW29wdHMuY29tbWFuZHNdIC0gQSBtYXAgb2YgY29tbWFuZCBuYW1lcyB0byBjb21tYW5kIGRlc2NyaXB0b3JzLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW3BhcmFtcy5kZXNjXSAtIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgY29udGV4dCB1c2VkIGluIHRoZSBoZWxwIGRpc3BsYXkuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5uYW1lXSAtIFRoZSBuYW1lIG9mIHRoZSBjb250ZXh0IHN1Y2ggYXMgdGhlIHByb2dyYW0gb3IgdGhlIGNvbW1hbmQgbmFtZS5cblx0ICogQHBhcmFtIHtBcnJheTxPYmplY3Q+fE9iamVjdH0gW29wdHMub3B0aW9uc10gLSBBbiBhcnJheSBvZiBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge0NvbnRleHR9IFtvcHRzLnBhcmVudF0gLSBQYXJlbnQgY29udGV4dC5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnRpdGxlXSAtIENvbnRleHQgdGl0bGUuXG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihvcHRzID0ge30pIHtcblx0XHRpZiAob3B0cy5hcmdzICYmICFBcnJheS5pc0FycmF5KG9wdHMuYXJncykpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGFyZ3MgdG8gYmUgYW4gYXJyYXknKTtcblx0XHR9XG5cblx0XHRpZiAob3B0cy5jb21tYW5kcyAmJiAodHlwZW9mIG9wdHMuY29tbWFuZHMgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkob3B0cy5jb21tYW5kcykpKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBjb21tYW5kcyB0byBiZSBhbiBvYmplY3QnKTtcblx0XHR9XG5cblx0XHRpZiAob3B0cy5vcHRpb25zICYmIHR5cGVvZiBvcHRzLm9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBvcHRpb25zIHRvIGJlIGFuIG9iamVjdCBvciBhbiBhcnJheScpO1xuXHRcdH1cblxuXHRcdHN1cGVyKCk7XG5cblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIG9wdHMpO1xuXG5cdFx0dGhpcy5hcmdzICAgICAgPSBbXTtcblx0XHR0aGlzLmNvbW1hbmRzICA9IHt9O1xuXHRcdHRoaXMub3B0aW9ucyAgID0gW107XG5cdFx0dGhpcy5ncm91cHMgICAgPSB7fTtcblxuXHRcdC8vIGluaXRpYWxpemUgdGhlIGFsaWFzIGxvb2t1cCB0YWJsZXNcblx0XHR0aGlzLmxvb2t1cCA9IHtcblx0XHRcdGNvbW1hbmRzOiB7fSxcblx0XHRcdGxvbmc6ICAgICB7fSxcblx0XHRcdHNob3J0OiAgICB7fSxcblx0XHRcdHRvU3RyaW5nOiAoKSA9PiB7XG5cdFx0XHRcdGxldCBzID0gW107XG5cdFx0XHRcdGlmIChPYmplY3Qua2V5cyh0aGlzLmxvb2t1cC5jb21tYW5kcykubGVuZ3RoKSB7XG5cdFx0XHRcdFx0cy5wdXNoKCcgIENvbW1hbmRzOicpO1xuXHRcdFx0XHRcdGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyh0aGlzLmxvb2t1cC5jb21tYW5kcykpIHtcblx0XHRcdFx0XHRcdHMucHVzaChgICAgICR7bmFtZX0gPT4gJHt0aGlzLmxvb2t1cC5jb21tYW5kc1tuYW1lXS5uYW1lfWApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoT2JqZWN0LmtleXModGhpcy5sb29rdXAubG9uZykubGVuZ3RoIHx8IE9iamVjdC5rZXlzKHRoaXMubG9va3VwLnNob3J0KS5sZW5ndGgpIHtcblx0XHRcdFx0XHRzLnB1c2goJyAgT3B0aW9uczonKTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXModGhpcy5sb29rdXAubG9uZykpIHtcblx0XHRcdFx0XHRcdHMucHVzaChgICAgIC0tJHtuYW1lfSA9PiAke3RoaXMubG9va3VwLmxvbmdbbmFtZV0ubmFtZX1gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKHRoaXMubG9va3VwLnNob3J0KSkge1xuXHRcdFx0XHRcdFx0cy5wdXNoKGAgICAgLSR7bmFtZX0gPT4gJHt0aGlzLmxvb2t1cC5zaG9ydFtuYW1lXS5uYW1lfWApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gcy5sZW5ndGggPyBgQ29udGV4dCBMb29rdXA6XFxuJHtzLmpvaW4oJ1xcbicpfWAgOiAnJztcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0dGhpcy5jYW1lbENhc2UgPSBvcHRzLmNhbWVsQ2FzZSAhPT0gZmFsc2U7XG5cblx0XHQvLyBpbml0aWFsaXplIHRoZSBjb21tYW5kc1xuXHRcdGlmIChvcHRzLmNvbW1hbmRzKSB7XG5cdFx0XHRmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMob3B0cy5jb21tYW5kcykpIHtcblx0XHRcdFx0dGhpcy5jb21tYW5kKG5hbWUsIG9wdHMuY29tbWFuZHNbbmFtZV0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIGluaXRpYWxpemUgdGhlIG9wdGlvbnNcblx0XHRpZiAoQXJyYXkuaXNBcnJheShvcHRzLm9wdGlvbnMpKSB7XG5cdFx0XHRsZXQgZ3JvdXAgPSBudWxsO1xuXHRcdFx0Zm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIG9wdHMub3B0aW9ucykge1xuXHRcdFx0XHRpZiAoIWdyb3VwT3JPcHRpb24gfHwgKHR5cGVvZiBncm91cE9yT3B0aW9uICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgZ3JvdXBPck9wdGlvbiAhPT0gJ29iamVjdCcpIHx8IEFycmF5LmlzQXJyYXkoZ3JvdXBPck9wdGlvbikpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBvcHRpb25zIGFycmF5IGVsZW1lbnQgdG8gYmUgYSBzdHJpbmcgb3IgYW4gb2JqZWN0Jyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHR5cGVvZiBncm91cE9yT3B0aW9uID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdGdyb3VwID0gZ3JvdXBPck9wdGlvbjtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IGZvcm1hdCBvZiBPYmplY3Qua2V5cyhncm91cE9yT3B0aW9uKSkge1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24oZm9ybWF0LCBncm91cCwgZ3JvdXBPck9wdGlvbltmb3JtYXRdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKG9wdHMub3B0aW9ucykge1xuXHRcdFx0Zm9yIChjb25zdCBmb3JtYXQgb2YgT2JqZWN0LmtleXMob3B0cy5vcHRpb25zKSkge1xuXHRcdFx0XHR0aGlzLm9wdGlvbihmb3JtYXQsIG9wdHMub3B0aW9uc1tmb3JtYXRdKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoQXJyYXkuaXNBcnJheShvcHRzLmFyZ3MpKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGFyZyBvZiBvcHRzLmFyZ3MpIHtcblx0XHRcdFx0dGhpcy5hcmd1bWVudChhcmcpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGFyZ3VtZW50KGFyZyA9IHt9KSB7XG5cdFx0dGhpcy5hcmdzLnB1c2goYXJnIGluc3RhbmNlb2YgQXJndW1lbnQgPyBhcmcgOiBuZXcgQXJndW1lbnQoYXJnKSk7XG5cdH1cblxuXHRjb21tYW5kKG5hbWUsIG9wdHMpIHtcblx0XHRpZiAobmFtZSAmJiB0eXBlb2YgbmFtZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkobmFtZSkgJiYgbmFtZS5uYW1lKSB7XG5cdFx0XHRvcHRzID0gbmFtZTtcblx0XHRcdG5hbWUgPSBvcHRzLm5hbWU7XG5cdFx0fVxuXG5cdFx0aWYgKCFuYW1lIHx8IHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgbmFtZSB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIG9wdHMgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdG9wdHMgPSB7XG5cdFx0XHRcdGFjdGlvbjogb3B0c1xuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKCFvcHRzKSB7XG5cdFx0XHRvcHRzID0ge307XG5cdFx0fVxuXG5cdFx0aWYgKHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KG9wdHMpKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBhcmd1bWVudCB0byBiZSBhbiBvYmplY3QnKTtcblx0XHR9XG5cblx0XHRvcHRzLnBhcmVudCA9IHRoaXM7XG5cblx0XHRsb2coYEFkZGluZyBjb21tYW5kOiAke25hbWV9YCk7XG5cblx0XHRjb25zdCBjbWQgPSBuZXcgQ29tbWFuZChuYW1lLCBvcHRzKTtcblx0XHR0aGlzLmNvbW1hbmRzW25hbWVdID0gY21kO1xuXG5cdFx0dGhpcy5sb29rdXAuY29tbWFuZHNbbmFtZV0gPSBjbWQ7XG5cdFx0aWYgKGNtZC5hbGlhc2VzKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGFsaWFzIG9mIE9iamVjdC5rZXlzKGNtZC5hbGlhc2VzKSkge1xuXHRcdFx0XHRpZiAoIXRoaXMuY29tbWFuZHNbYWxpYXNdKSB7XG5cdFx0XHRcdFx0dGhpcy5sb29rdXAuY29tbWFuZHNbYWxpYXNdID0gY21kO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRvcHRpb24oZm9ybWF0LCBncm91cCwgcGFyYW1zKSB7XG5cdFx0aWYgKGdyb3VwICYmIHR5cGVvZiBncm91cCA9PT0gJ29iamVjdCcpIHtcblx0XHRcdHBhcmFtcyA9IGdyb3VwO1xuXHRcdFx0Z3JvdXAgPSBudWxsO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9wdCA9IG5ldyBPcHRpb24oZm9ybWF0LCBwYXJhbXMpO1xuXHRcdHRoaXMub3B0aW9ucy5wdXNoKG9wdCk7XG5cblx0XHR0aGlzLmdyb3Vwc1tncm91cCB8fCAnJ10gPSBvcHQ7XG5cblx0XHRpZiAob3B0LmxvbmcpIHtcblx0XHRcdHRoaXMubG9va3VwLmxvbmdbb3B0LmxvbmddID0gb3B0O1xuXHRcdH1cblxuXHRcdGlmIChvcHQuc2hvcnQpIHtcblx0XHRcdHRoaXMubG9va3VwLnNob3J0W29wdC5zaG9ydF0gPSBvcHQ7XG5cdFx0fVxuXG5cdFx0bGV0IGFsaWFzO1xuXHRcdGZvciAoYWxpYXMgb2YgT2JqZWN0LmtleXMob3B0LmFsaWFzZXMubG9uZykpIHtcblx0XHRcdHRoaXMubG9va3VwLmxvbmdbYWxpYXNdID0gb3B0O1xuXHRcdH1cblxuXHRcdGZvciAoYWxpYXMgb2YgT2JqZWN0LmtleXMob3B0LmFsaWFzZXMuc2hvcnQpKSB7XG5cdFx0XHR0aGlzLmxvb2t1cC5zaG9ydFthbGlhc10gPSBvcHQ7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwYXJzZSgkYXJncykge1xuXHRcdGlmICghKCRhcmdzIGluc3RhbmNlb2YgQXJndW1lbnRzKSkge1xuXHRcdFx0JGFyZ3MgPSBuZXcgQXJndW1lbnRzKCRhcmdzKTtcblx0XHRcdCRhcmdzLmNvbnRleHRzLnB1c2godGhpcyk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgY29tbWFuZCA9ICRhcmdzLmNvbnRleHRzWzBdO1xuXG5cdFx0bG9nKHRoaXMubG9va3VwLnRvU3RyaW5nKCkpO1xuXG5cdFx0Ly8gdGhlIHBhcnNlIGFyZyBob29rXG5cdFx0Y29uc3QgcGFyc2VBcmcgPSB0aGlzLmhvb2soJ3BhcnNlQXJnJywgYXN5bmMgKCRhcmdzLCBjdHgsIGFyZywgaSwgYXJncykgPT4ge1xuXHRcdFx0Ly8gaWYgd2UgaGF2ZSBhbiB1bmtub3duIG9wdGlvbiwgdGhlbiB3ZSBuZWVkIHRvIHJlY29uc3RydWN0IGl0IHRvXG5cdFx0XHQvLyBtYWtlIG91ciByZWdleGVzIGJlbG93IHdvcmtcblx0XHRcdGlmIChhcmcgJiYgYXJnLnR5cGUgPT09ICd1bmtub3duIG9wdGlvbicpIHtcblx0XHRcdFx0YXJnID0gYXJnLm9yaWc7XG5cblx0XHRcdC8vIGFyZyBpcyBudWxsLCBlbXB0eSwgb3IgYWxyZWFkeSBwcm9jZXNzZWQsIHNvIHNraXAgaXRcblx0XHRcdH0gZWxzZSBpZiAoIWFyZyB8fCB0eXBlb2YgYXJnID09PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRyZXR1cm4gJGFyZ3M7XG5cdFx0XHR9XG5cblx0XHRcdGxvZygnUGFyc2luZyBhcmd1bWVudDonLCBhcmcpO1xuXG5cdFx0XHRsZXQgbSA9IGFyZy5tYXRjaChvcHRSRSk7XG5cblx0XHRcdC8vIGNoZWNrIGlmIGAtLWBcblx0XHRcdGlmIChtICYmICFtWzFdKSB7XG5cdFx0XHRcdGFyZ3NbaV0gPSB7IHR5cGU6ICdleHRyYScsIHZhbHVlOiBhcmdzLnNsaWNlKGkgKyAxKSB9O1xuXHRcdFx0XHRhcmdzLmZpbGwobnVsbCwgaSArIDEpO1xuXHRcdFx0XHRyZXR1cm4gJGFyZ3M7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGNoZWNrIGlmIGxvbmcgb3B0aW9uXG5cdFx0XHRpZiAobSkge1xuXHRcdFx0XHQvLyAtLXNvbWV0aGluZyBvciAtLXNvbWV0aGluZz1mb29cblx0XHRcdFx0Y29uc3QgbmVnYXRlZCA9IG1bMV0ubWF0Y2gobmVnYXRlUmVnRXhwKTtcblx0XHRcdFx0Y29uc3QgbmFtZSA9IG5lZ2F0ZWQgPyBuZWdhdGVkWzFdIDogbVsxXTtcblx0XHRcdFx0Y29uc3Qgb3B0aW9uID0gdGhpcy5sb29rdXAubG9uZ1tuYW1lXTtcblxuXHRcdFx0XHRpZiAob3B0aW9uKSB7XG5cdFx0XHRcdFx0bG9nKGBGb3VuZCBvcHRpb246ICR7b3B0aW9uLm5hbWV9YCk7XG5cdFx0XHRcdFx0bG9nKGBOZWdhdGVkPyAkeyEhbmVnYXRlZH1gKTtcblxuXHRcdFx0XHRcdGlmIChtWzJdKSB7XG5cdFx0XHRcdFx0XHQvLyAtLXNvbWV0aGluZz1mb29cblx0XHRcdFx0XHRcdGFyZ3NbaV0gPSB7IHR5cGU6ICdvcHRpb24nLCBvcHRpb24sIHZhbHVlOiBvcHRpb24udHJhbnNmb3JtKG1bMl0sIG5lZ2F0ZWQpIH07XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIGlmIHZhbHVlIGlzIGBudWxsYCwgdGhlbiB3ZSBhcmUgbWlzc2luZyB0aGUgdmFsdWVcblx0XHRcdFx0XHRcdGxldCB2YWx1ZSA9IG51bGw7XG5cblx0XHRcdFx0XHRcdGlmIChvcHRpb24udHlwZSA9PT0gJ2Jvb2wnKSB7XG5cdFx0XHRcdFx0XHRcdHZhbHVlID0gIW5lZ2F0ZWQ7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGkgKyAxIDwgYXJncy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0dmFsdWUgPSBvcHRpb24udHJhbnNmb3JtKGFyZ3NbaSArIDFdKTtcblx0XHRcdFx0XHRcdFx0YXJnc1tpICsgMV0gPSBudWxsO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRhcmdzW2ldID0geyB0eXBlOiAnb3B0aW9uJywgb3B0aW9uLCB2YWx1ZSB9O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmICh0eXBlb2Ygb3B0aW9uLmNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBuZXdWYWx1ZSA9IGF3YWl0IG9wdGlvbi5jYWxsYmFjayhhcmdzW2ldLnZhbHVlKTtcblx0XHRcdFx0XHRcdGlmIChuZXdWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0XHRcdGFyZ3NbaV0udmFsdWUgPSBuZXdWYWx1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gdHJlYXQgdW5rbm93biBvcHRpb25zIGFzIGZsYWdzXG5cdFx0XHRcdFx0YXJnc1tpXSA9IHsgdHlwZTogJ3Vua25vd24gb3B0aW9uJywgb3JpZzogYXJnIH07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gJGFyZ3M7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGNoZWNrIGlmIHNob3J0IG9wdGlvblxuXHRcdFx0aWYgKG0gPSBhcmcubWF0Y2goZGFzaE9wdCkpIHtcblx0XHRcdFx0Ly8gLXhcblxuXHRcdFx0XHQvLyBjb25zdCBvcHRpb24gPSB0aGlzLmxvb2t1cC5zaG9ydFttWzFdXTtcblx0XHRcdFx0Ly8gaWYgKG9wdGlvbikge1xuXHRcdFx0XHQvLyBcdGxvZyhgRm91bmQgb3B0aW9uOiAke29wdGlvbi5uYW1lfWApO1xuXHRcdFx0XHQvL1xuXHRcdFx0XHQvLyBcdGlmIChtWzJdKSB7XG5cdFx0XHRcdC8vIFx0XHQvLyAtLXg9Zm9vXG5cdFx0XHRcdC8vIFx0XHRhcmdzW2ldID0geyB0eXBlOiAnb3B0aW9uJywgb3B0aW9uLCB2YWx1ZTogb3B0aW9uLnRyYW5zZm9ybShtWzJdKSB9O1xuXHRcdFx0XHQvLyBcdFx0cmV0dXJuICRhcmdzO1xuXHRcdFx0XHQvLyBcdH1cblx0XHRcdFx0Ly9cblx0XHRcdFx0Ly8gXHQvLyBpZiB2YWx1ZSBpcyBgbnVsbGAsIHRoZW4gd2UgYXJlIG1pc3NpbmcgdGhlIHZhbHVlXG5cdFx0XHRcdC8vIFx0bGV0IHZhbHVlID0gbnVsbDtcblx0XHRcdFx0Ly9cblx0XHRcdFx0Ly8gXHRpZiAob3B0aW9uLnR5cGUgPT09ICdib29sJykge1xuXHRcdFx0XHQvLyBcdFx0dmFsdWUgPSB0cnVlO1xuXHRcdFx0XHQvLyBcdH0gZWxzZSBpZiAoaSArIDEgPCBhcmdzLmxlbmd0aCkge1xuXHRcdFx0XHQvLyBcdFx0dmFsdWUgPSBvcHRpb24udHJhbnNmb3JtKGFyZ3NbaSArIDFdKTtcblx0XHRcdFx0Ly8gXHRcdGFyZ3NbaSArIDFdID0gbnVsbDtcblx0XHRcdFx0Ly8gXHR9XG5cdFx0XHRcdC8vXG5cdFx0XHRcdC8vIFx0YXJnc1tpXSA9IHsgdHlwZTogJ29wdGlvbicsIG9wdGlvbiwgdmFsdWUgfTtcblx0XHRcdFx0Ly8gXHRyZXR1cm4gJGFyZ3M7XG5cdFx0XHRcdC8vIH1cblxuXHRcdFx0XHQvLyBhcmdzW2ldID0geyB0eXBlOiAndW5rbm93biBvcHRpb24nLCBuYW1lOiBtWzFdLCBvcmlnOiBhcmcgfTtcblx0XHRcdFx0Ly8gcmV0dXJuICRhcmdzO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBjaGVjayBpZiBjb21tYW5kXG5cdFx0XHRjb25zdCBjbWQgPSB0aGlzLmxvb2t1cC5jb21tYW5kc1thcmddO1xuXHRcdFx0aWYgKGNtZCkge1xuXHRcdFx0XHRsb2coYEZvdW5kIGNvbW1hbmQ6ICR7Y21kLm5hbWV9YCk7XG5cdFx0XHRcdGFyZ3NbaV0gPSB7IHR5cGU6ICdjb21tYW5kJywgY29tbWFuZDogY21kIH07XG5cdFx0XHRcdCRhcmdzLmNvbnRleHRzLnVuc2hpZnQoY21kKTtcblx0XHRcdFx0cmV0dXJuICRhcmdzO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gJGFyZ3M7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gdGhpcy5ob29rKCdwYXJzZScsICRhcmdzID0+IHtcblx0XHRcdGxvZygnUGFyc2luZzonLCAkYXJncy5hcmdzKTtcblx0XHRcdHJldHVybiAkYXJncy5hcmdzXG5cdFx0XHRcdC5yZWR1Y2UoKHByb21pc2UsIGFyZywgaSwgYXJncykgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBwcm9taXNlXG5cdFx0XHRcdFx0XHQudGhlbigkYXJncyA9PiBwYXJzZUFyZygkYXJncywgdGhpcywgYXJnLCBpLCBhcmdzKSlcblx0XHRcdFx0XHRcdC50aGVuKCRhID0+ICRhIHx8ICRhcmdzKTtcblx0XHRcdFx0fSwgUHJvbWlzZS5yZXNvbHZlKCRhcmdzKSlcblx0XHRcdFx0LnRoZW4oJGFyZ3MgPT4gJGFyZ3MucHJ1bmUoKSlcblx0XHRcdFx0LnRoZW4oJGFyZ3MgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGNtZCA9ICRhcmdzLmNvbnRleHRzWzBdO1xuXG5cdFx0XHRcdFx0aWYgKGNtZCAmJiBjbWQgIT09IGNvbW1hbmQpIHtcblx0XHRcdFx0XHRcdGxvZygnRGVzY2VuZGluZyBpbnRvIG5leHQgY29udGV4dFxcJ3MgcGFyc2VyJyk7XG5cdFx0XHRcdFx0XHRjbWQubGluayh0aGlzKTtcblx0XHRcdFx0XHRcdHJldHVybiBjbWQucGFyc2UoJGFyZ3MpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGxvZygnRmluYWxpemluZyBwYXJzaW5nJyk7XG5cblx0XHRcdFx0XHRjb25zdCBlbnYgPSB7fTtcblxuXHRcdFx0XHRcdC8vIGxvb3Agb3ZlciBlYWNoIGNvbnRleHQgYW5kIGdhdGhlciB0aGUgb3B0aW9uIGRlZmF1bHRzIGFuZFxuXHRcdFx0XHRcdC8vIGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlZGVmYXVsdCBvcHRpb25zXG5cdFx0XHRcdFx0bG9nKGBQcm9jZXNzaW5nIGRlZmF1bHQgb3B0aW9ucyBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciAkeyRhcmdzLmNvbnRleHRzLmxlbmd0aH0gY29udGV4dHNgKTtcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gJGFyZ3MuY29udGV4dHMubGVuZ3RoOyBpOyBpLS0pIHtcblx0XHRcdFx0XHRcdGZvciAoY29uc3Qgb3B0aW9uIG9mICRhcmdzLmNvbnRleHRzW2kgLSAxXS5vcHRpb25zKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChvcHRpb24ubmFtZSkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IG5hbWUgPSBvcHRpb24uY2FtZWxDYXNlID09PSBmYWxzZSB8fCAhdGhpcy5jYW1lbENhc2UgPyBvcHRpb24ubmFtZSA6IGNhbWVsQ2FzZShvcHRpb24ubmFtZSk7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbi5kZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdCRhcmdzLmFyZ3ZbbmFtZV0gPSBvcHRpb24uZGVmYXVsdDtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG9wdGlvbi50eXBlID09PSAnYm9vbCcpIHtcblx0XHRcdFx0XHRcdFx0XHRcdCRhcmdzLmFyZ3ZbbmFtZV0gPSAhIW9wdGlvbi5uZWdhdGU7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGlmIChvcHRpb24uZW52ICYmIHByb2Nlc3MuZW52W29wdGlvbi5lbnZdICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGVudltuYW1lXSA9IG9wdGlvbi50cmFuc2Zvcm0ocHJvY2Vzcy5lbnZbb3B0aW9uLmVudl0pO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIGZpbGwgYXJndiBhbmQgX1xuXHRcdFx0XHRcdGxvZygnRmlsbGluZyBhcmd2IGFuZCBfJyk7XG5cdFx0XHRcdFx0bGV0IGkgPSAwO1xuXHRcdFx0XHRcdGZvciAoY29uc3QgYXJnIG9mICRhcmdzLmFyZ3MpIHtcblx0XHRcdFx0XHRcdGlmICh0eXBlb2YgYXJnID09PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRcdFx0XHRzd2l0Y2ggKGFyZy50eXBlKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSAnb3B0aW9uJzpcblx0XHRcdFx0XHRcdFx0XHRcdCRhcmdzLmFyZ3ZbYXJnLm9wdGlvbi5jYW1lbENhc2UgPT09IGZhbHNlIHx8ICF0aGlzLmNhbWVsQ2FzZSA/IGFyZy5vcHRpb24ubmFtZSA6IGNhbWVsQ2FzZShhcmcub3B0aW9uLm5hbWUpXSA9IGFyZy52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdGNhc2UgJ3Vua25vd24gb3B0aW9uJzpcblx0XHRcdFx0XHRcdFx0XHRcdCRhcmdzLmFyZ3ZbdGhpcy5jYW1lbENhc2UgPyBjYW1lbENhc2UoYXJnLm5hbWUpIDogYXJnLm5hbWVdID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5hcmdzW2ldKSB7XG5cdFx0XHRcdFx0XHRcdFx0JGFyZ3MuXy5wdXNoKHRoaXMuYXJnc1tpXS50cmFuc2Zvcm0oYXJnKSk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0JGFyZ3MuXy5wdXNoKGFyZyk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aSsrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIHByb2Nlc3MgZW52IHZhcnNcblx0XHRcdFx0XHRsb2coJ01peGluZyBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB2YWx1ZXMnKTtcblx0XHRcdFx0XHRPYmplY3QuYXNzaWduKCRhcmdzLmFyZ3YsIGVudik7XG5cblx0XHRcdFx0XHRyZXR1cm4gJGFyZ3M7XG5cdFx0XHRcdH0pO1xuXHRcdH0pKCRhcmdzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZW5kZXJzIHRoZSBoZWxwIHNjcmVlbiBmb3IgdGhpcyBjb250ZXh0IGluY2x1ZGluZyB0aGUgcGFyZW50IGNvbnRleHRzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufSBsb2cgLSBUaGUgZnVuY3Rpb24gdG8gd3JpdGUgb3V0cHV0IHRvLlxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0cmVuZGVySGVscChsb2cpIHtcblx0XHRjb25zdCBhZGQgPSAoYnVja2V0LCBjb2x1bW5zKSA9PiB7XG5cdFx0XHRmb3IgKGxldCBpID0gMCwgbCA9IGNvbHVtbnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IGxlbiA9IGNvbHVtbnNbaV0gIT09IHVuZGVmaW5lZCAmJiBjb2x1bW5zW2ldICE9PSBudWxsID8gU3RyaW5nKGNvbHVtbnNbaV0pLmxlbmd0aCA6IDA7XG5cdFx0XHRcdGlmICghYnVja2V0Lm1heFdpZHRoc1tpXSB8fCBsZW4gPiBidWNrZXQubWF4V2lkdGhzW2ldKSB7XG5cdFx0XHRcdFx0YnVja2V0Lm1heFdpZHRoc1tpXSA9IGxlbjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0YnVja2V0Lmxpc3QucHVzaChjb2x1bW5zKTtcblx0XHR9O1xuXG5cdFx0Y29uc3QgY29tbWFuZHMgPSB7XG5cdFx0XHRsaXN0OiBbXSxcblx0XHRcdG1heFdpZHRoczogW11cblx0XHR9O1xuXHRcdGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyh0aGlzLmNvbW1hbmRzKSkge1xuXHRcdFx0Y29uc3QgeyBkZXNjLCBoaWRkZW4gfSA9IHRoaXMuY29tbWFuZHNbbmFtZV07XG5cdFx0XHRpZiAoIWhpZGRlbikge1xuXHRcdFx0XHRhZGQoY29tbWFuZHMsIFsgbmFtZSwgZGVzYyBdKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBhcmdzID0ge1xuXHRcdFx0bGlzdDogW10sXG5cdFx0XHRtYXhXaWR0aHM6IFtdXG5cdFx0fTtcblx0XHRmb3IgKGNvbnN0IHsgZGVzYywgaGlkZGVuLCBuYW1lIH0gb2YgdGhpcy5hcmdzKSB7XG5cdFx0XHRpZiAoIWhpZGRlbikge1xuXHRcdFx0XHRhZGQoYXJncywgWyBgPCR7bmFtZX0+YCwgZGVzYyBdKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBvcHRpb25zID0ge1xuXHRcdFx0bGlzdDogW10sXG5cdFx0XHRtYXhXaWR0aHM6IFtdXG5cdFx0fTtcblx0XHRmb3IgKGNvbnN0IG9wdCBvZiB0aGlzLm9wdGlvbnMpIHtcblx0XHRcdGlmICghb3B0LmhpZGRlbikge1xuXHRcdFx0XHRpZiAob3B0Lm5lZ2F0ZSkge1xuXHRcdFx0XHRcdGFkZChvcHRpb25zLCBbIGAtLW5vLSR7b3B0Lm5hbWV9YCwgb3B0LmRlc2MgXSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0bGV0IHMgPSAnJztcblx0XHRcdFx0XHRpZiAob3B0LnNob3J0KSB7XG5cdFx0XHRcdFx0XHRzICs9IGAtJHtvcHQuc2hvcnR9YDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKG9wdC5sb25nKSB7XG5cdFx0XHRcdFx0XHRzICs9IChzLmxlbmd0aCA/ICcsICcgOiAnJykgKyBgLS0ke29wdC5sb25nfWA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChvcHQudHlwZSAhPT0gJ2Jvb2wnKSB7XG5cdFx0XHRcdFx0XHRzICs9IGA9PCR7b3B0LmhpbnQgfHwgJ3ZhbHVlJ30+YDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YWRkKG9wdGlvbnMsIFsgcywgb3B0LmRlc2MgXSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRsZXQgdXNhZ2UgPSAnVXNhZ2U6ICc7XG5cdFx0aWYgKHRoaXMucGFyZW50KSB7XG5cdFx0XHQvLyBhZGQgaW4gdGhlIGNoYWluIG9mIGNvbW1hbmRzXG5cdFx0XHR1c2FnZSArPSAoZnVuY3Rpb24gd2FsayhjdHgpIHtcblx0XHRcdFx0cmV0dXJuIChjdHgucGFyZW50ID8gd2FsayhjdHgucGFyZW50KSArICcgJyA6ICcnKSArIGN0eC5uYW1lO1xuXHRcdFx0fSh0aGlzKSk7XG5cblx0XHRcdHVzYWdlICs9IHRoaXMuYXJnc1xuXHRcdFx0XHQuZmlsdGVyKGFyZyA9PiAhYXJnLmhpZGRlbilcblx0XHRcdFx0Lm1hcChhcmcgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBhcmcucmVxdWlyZWQgPyBgIDwke2FyZy5uYW1lfT5gIDogYCBbPCR7YXJnLm5hbWV9Pl1gO1xuXHRcdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dXNhZ2UgKz0gYCR7dGhpcy5uYW1lfSR7Y29tbWFuZHMubGlzdC5sZW5ndGggPyAnIDxjb21tYW5kPicgOiAnJ31gO1xuXHRcdH1cblx0XHR1c2FnZSArPSBvcHRpb25zLmxpc3QubGVuZ3RoID8gJyBbb3B0aW9uc10nIDogJyc7XG5cdFx0bG9nKGAke3VzYWdlfVxcbmApO1xuXG5cdFx0Y29uc3QgbGlzdCA9IChsYWJlbCwgYnVja2V0KSA9PiB7XG5cdFx0XHRpZiAoYnVja2V0Lmxpc3QubGVuZ3RoKSB7XG5cdFx0XHRcdGxvZyhgJHtsYWJlbH06YCk7XG5cdFx0XHRcdGNvbnN0IG1heCA9IGJ1Y2tldC5tYXhXaWR0aHNbMF07XG5cdFx0XHRcdGZvciAoY29uc3QgbGluZSBvZiBidWNrZXQubGlzdCkge1xuXHRcdFx0XHRcdGNvbnN0IFsgbmFtZSwgZGVzYyBdID0gbGluZTtcblx0XHRcdFx0XHRsb2coYCAgJHtuYW1lLnBhZEVuZChtYXgpfSAgJHtkZXNjIHx8ICcnfWApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxvZygpO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRsaXN0KCdDb21tYW5kcycsIGNvbW1hbmRzKTtcblx0XHRsaXN0KCdBcmd1bWVudHMnLCBhcmdzKTtcblx0XHRsaXN0KCdPcHRpb25zJywgb3B0aW9ucyk7XG5cdH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbnRleHQuanMiXSwibmFtZXMiOlsibG9nIiwib3B0UkUiLCJkYXNoT3B0IiwibmVnYXRlUmVnRXhwIiwiQ29udGV4dCIsImNvbnN0cnVjdG9yIiwib3B0cyIsImFyZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJUeXBlRXJyb3IiLCJjb21tYW5kcyIsIm9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJncm91cHMiLCJsb29rdXAiLCJsb25nIiwic2hvcnQiLCJ0b1N0cmluZyIsInMiLCJrZXlzIiwibGVuZ3RoIiwicHVzaCIsIm5hbWUiLCJqb2luIiwiY2FtZWxDYXNlIiwiY29tbWFuZCIsImdyb3VwIiwiZ3JvdXBPck9wdGlvbiIsImZvcm1hdCIsIm9wdGlvbiIsImFyZyIsImFyZ3VtZW50IiwiYWN0aW9uIiwicGFyZW50IiwiY21kIiwiYWxpYXNlcyIsImFsaWFzIiwicGFyYW1zIiwib3B0IiwicGFyc2UiLCIkYXJncyIsImNvbnRleHRzIiwicGFyc2VBcmciLCJob29rIiwiY3R4IiwiaSIsInR5cGUiLCJvcmlnIiwibSIsIm1hdGNoIiwidmFsdWUiLCJzbGljZSIsImZpbGwiLCJuZWdhdGVkIiwidHJhbnNmb3JtIiwiY2FsbGJhY2siLCJuZXdWYWx1ZSIsInVuZGVmaW5lZCIsInVuc2hpZnQiLCJyZWR1Y2UiLCJwcm9taXNlIiwidGhlbiIsIiRhIiwiUHJvbWlzZSIsInJlc29sdmUiLCJwcnVuZSIsImxpbmsiLCJlbnYiLCJkZWZhdWx0IiwiYXJndiIsIm5lZ2F0ZSIsInByb2Nlc3MiLCJfIiwicmVuZGVySGVscCIsImFkZCIsImJ1Y2tldCIsImNvbHVtbnMiLCJsIiwibGVuIiwiU3RyaW5nIiwibWF4V2lkdGhzIiwibGlzdCIsImRlc2MiLCJoaWRkZW4iLCJoaW50IiwidXNhZ2UiLCJ3YWxrIiwiZmlsdGVyIiwibWFwIiwicmVxdWlyZWQiLCJsYWJlbCIsIm1heCIsImxpbmUiLCJwYWRFbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFD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R0FBc0MsRUFBRyxFQUFqRTtBQUNBO0FBQ0RpRSxXQUFTM0UsUUFBUXVFLElBQVIsQ0FBYTdELE1BQWIsR0FBc0IsWUFBdEIsR0FBcUMsRUFBOUM7QUFDQXRCLE1BQUssR0FBRXVGLEtBQU0sSUFBYjs7QUFFQSxRQUFNSixPQUFPLENBQUNTLEtBQUQsRUFBUWYsTUFBUixLQUFtQjtBQUMvQixPQUFJQSxPQUFPTSxJQUFQLENBQVk3RCxNQUFoQixFQUF3QjtBQUN2QnRCLFFBQUssR0FBRTRGLEtBQU0sR0FBYjtBQUNBLFVBQU1DLE1BQU1oQixPQUFPSyxTQUFQLENBQWlCLENBQWpCLENBQVo7QUFDQSxTQUFLLE1BQU1ZLElBQVgsSUFBbUJqQixPQUFPTSxJQUExQixFQUFnQztBQUFBLGdDQUNSVyxJQURROztBQUFBLFdBQ3ZCdEUsSUFEdUI7QUFBQSxXQUNqQjRELElBRGlCOztBQUUvQnBGLFNBQUssS0FBSXdCLEtBQUt1RSxNQUFMLENBQVlGLEdBQVosQ0FBaUIsS0FBSVQsUUFBUSxFQUFHLEVBQXpDO0FBQ0E7QUFDRHBGO0FBQ0E7QUFDRCxHQVZEOztBQVlBbUYsT0FBSyxVQUFMLEVBQWlCeEUsUUFBakI7QUFDQXdFLE9BQUssV0FBTCxFQUFrQjVFLElBQWxCO0FBQ0E0RSxPQUFLLFNBQUwsRUFBZ0J2RSxPQUFoQjtBQUNBO0FBL2MrQztrQkFBNUJSLE8iLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBcmd1bWVudCBmcm9tICcuL2FyZ3VtZW50JztcbmltcG9ydCBBcmd1bWVudHMgZnJvbSAnLi9hcmd1bWVudHMnO1xuaW1wb3J0IENvbW1hbmQgZnJvbSAnLi9jb21tYW5kJztcbmltcG9ydCBIb29rRW1pdHRlciBmcm9tICdob29rLWVtaXR0ZXInO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgT3B0aW9uIGZyb20gJy4vb3B0aW9uJztcblxuaW1wb3J0IHsgY2FtZWxDYXNlIH0gZnJvbSAnLi91dGlsJztcblxuY29uc3QgeyBsb2cgfSA9IGxvZ2dlcignY2xpLWtpdDpjb250ZXh0Jyk7XG5cbmNvbnN0IG9wdFJFID0gL14oPzotLXzigJQpKD86KFtePV0rKSg/Oj0oW1xcc1xcU10qKSk/KT8kLztcbmNvbnN0IGRhc2hPcHQgPSAvXig/Oi184oCUKSguKykkLztcbmNvbnN0IG5lZ2F0ZVJlZ0V4cCA9IC9ebm8tKC4rKSQvO1xuXG4vKipcbiAqIERlZmluZXMgYSBjb250ZXh0IGZvciBjb21tYW5kcywgb3B0aW9ucywgYW5kIGFyZ3MuXG4gKlxuICogQGV4dGVuZHMge0hvb2tFbWl0dGVyfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250ZXh0IGV4dGVuZHMgSG9va0VtaXR0ZXIge1xuXHQvKipcblx0ICogQ29uc3RydWN0cyBhIGNvbnRleHQgaW5zdGFuY2UuXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBWYXJpb3VzIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSB7QXJyYXk8T2JqZWN0Pn0gW29wdHMuYXJnc10gLSBBbiBhcnJheSBvZiBhcmd1bWVudHMuXG5cdCAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdHMuY2FtZWxDYXNlPXRydWVdIC0gQ2FtZWwgY2FzZSBvcHRpb24gbmFtZXMuXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cy5jb21tYW5kc10gLSBBIG1hcCBvZiBjb21tYW5kIG5hbWVzIHRvIGNvbW1hbmQgZGVzY3JpcHRvcnMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbcGFyYW1zLmRlc2NdIC0gVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBjb250ZXh0IHVzZWQgaW4gdGhlIGhlbHAgZGlzcGxheS5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLm5hbWVdIC0gVGhlIG5hbWUgb2YgdGhlIGNvbnRleHQgc3VjaCBhcyB0aGUgcHJvZ3JhbSBvciB0aGUgY29tbWFuZCBuYW1lLlxuXHQgKiBAcGFyYW0ge0FycmF5PE9iamVjdD58T2JqZWN0fSBbb3B0cy5vcHRpb25zXSAtIEFuIGFycmF5IG9mIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSB7Q29udGV4dH0gW29wdHMucGFyZW50XSAtIFBhcmVudCBjb250ZXh0LlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMudGl0bGVdIC0gQ29udGV4dCB0aXRsZS5cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGNvbnN0cnVjdG9yKG9wdHMgPSB7fSkge1xuXHRcdGlmIChvcHRzLmFyZ3MgJiYgIUFycmF5LmlzQXJyYXkob3B0cy5hcmdzKSkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYXJncyB0byBiZSBhbiBhcnJheScpO1xuXHRcdH1cblxuXHRcdGlmIChvcHRzLmNvbW1hbmRzICYmICh0eXBlb2Ygb3B0cy5jb21tYW5kcyAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShvcHRzLmNvbW1hbmRzKSkpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGNvbW1hbmRzIHRvIGJlIGFuIG9iamVjdCcpO1xuXHRcdH1cblxuXHRcdGlmIChvcHRzLm9wdGlvbnMgJiYgdHlwZW9mIG9wdHMub3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0IG9yIGFuIGFycmF5Jyk7XG5cdFx0fVxuXG5cdFx0c3VwZXIoKTtcblxuXHRcdE9iamVjdC5hc3NpZ24odGhpcywgb3B0cyk7XG5cblx0XHR0aGlzLmFyZ3MgICAgICA9IFtdO1xuXHRcdHRoaXMuY29tbWFuZHMgID0ge307XG5cdFx0dGhpcy5vcHRpb25zICAgPSBbXTtcblx0XHR0aGlzLmdyb3VwcyAgICA9IHt9O1xuXG5cdFx0Ly8gaW5pdGlhbGl6ZSB0aGUgYWxpYXMgbG9va3VwIHRhYmxlc1xuXHRcdHRoaXMubG9va3VwID0ge1xuXHRcdFx0Y29tbWFuZHM6IHt9LFxuXHRcdFx0bG9uZzogICAgIHt9LFxuXHRcdFx0c2hvcnQ6ICAgIHt9LFxuXHRcdFx0dG9TdHJpbmc6ICgpID0+IHtcblx0XHRcdFx0bGV0IHMgPSBbXTtcblx0XHRcdFx0aWYgKE9iamVjdC5rZXlzKHRoaXMubG9va3VwLmNvbW1hbmRzKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRzLnB1c2goJyAgQ29tbWFuZHM6Jyk7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKHRoaXMubG9va3VwLmNvbW1hbmRzKSkge1xuXHRcdFx0XHRcdFx0cy5wdXNoKGAgICAgJHtuYW1lfSA9PiAke3RoaXMubG9va3VwLmNvbW1hbmRzW25hbWVdLm5hbWV9YCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChPYmplY3Qua2V5cyh0aGlzLmxvb2t1cC5sb25nKS5sZW5ndGggfHwgT2JqZWN0LmtleXModGhpcy5sb29rdXAuc2hvcnQpLmxlbmd0aCkge1xuXHRcdFx0XHRcdHMucHVzaCgnICBPcHRpb25zOicpO1xuXHRcdFx0XHRcdGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyh0aGlzLmxvb2t1cC5sb25nKSkge1xuXHRcdFx0XHRcdFx0cy5wdXNoKGAgICAgLS0ke25hbWV9ID0+ICR7dGhpcy5sb29rdXAubG9uZ1tuYW1lXS5uYW1lfWApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXModGhpcy5sb29rdXAuc2hvcnQpKSB7XG5cdFx0XHRcdFx0XHRzLnB1c2goYCAgICAtJHtuYW1lfSA9PiAke3RoaXMubG9va3VwLnNob3J0W25hbWVdLm5hbWV9YCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBzLmxlbmd0aCA/IGBDb250ZXh0IExvb2t1cDpcXG4ke3Muam9pbignXFxuJyl9YCA6ICcnO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHR0aGlzLmNhbWVsQ2FzZSA9IG9wdHMuY2FtZWxDYXNlICE9PSBmYWxzZTtcblxuXHRcdC8vIGluaXRpYWxpemUgdGhlIGNvbW1hbmRzXG5cdFx0aWYgKG9wdHMuY29tbWFuZHMpIHtcblx0XHRcdGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhvcHRzLmNvbW1hbmRzKSkge1xuXHRcdFx0XHR0aGlzLmNvbW1hbmQobmFtZSwgb3B0cy5jb21tYW5kc1tuYW1lXSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gaW5pdGlhbGl6ZSB0aGUgb3B0aW9uc1xuXHRcdGlmIChBcnJheS5pc0FycmF5KG9wdHMub3B0aW9ucykpIHtcblx0XHRcdGxldCBncm91cCA9IG51bGw7XG5cdFx0XHRmb3IgKGNvbnN0IGdyb3VwT3JPcHRpb24gb2Ygb3B0cy5vcHRpb25zKSB7XG5cdFx0XHRcdGlmICghZ3JvdXBPck9wdGlvbiB8fCAodHlwZW9mIGdyb3VwT3JPcHRpb24gIT09ICdzdHJpbmcnICYmIHR5cGVvZiBncm91cE9yT3B0aW9uICE9PSAnb2JqZWN0JykgfHwgQXJyYXkuaXNBcnJheShncm91cE9yT3B0aW9uKSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIG9wdGlvbnMgYXJyYXkgZWxlbWVudCB0byBiZSBhIHN0cmluZyBvciBhbiBvYmplY3QnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodHlwZW9mIGdyb3VwT3JPcHRpb24gPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0Z3JvdXAgPSBncm91cE9yT3B0aW9uO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgZm9ybWF0IG9mIE9iamVjdC5rZXlzKGdyb3VwT3JPcHRpb24pKSB7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbihmb3JtYXQsIGdyb3VwLCBncm91cE9yT3B0aW9uW2Zvcm1hdF0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAob3B0cy5vcHRpb25zKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGZvcm1hdCBvZiBPYmplY3Qua2V5cyhvcHRzLm9wdGlvbnMpKSB7XG5cdFx0XHRcdHRoaXMub3B0aW9uKGZvcm1hdCwgb3B0cy5vcHRpb25zW2Zvcm1hdF0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChBcnJheS5pc0FycmF5KG9wdHMuYXJncykpIHtcblx0XHRcdGZvciAoY29uc3QgYXJnIG9mIG9wdHMuYXJncykge1xuXHRcdFx0XHR0aGlzLmFyZ3VtZW50KGFyZyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0YXJndW1lbnQoYXJnID0ge30pIHtcblx0XHR0aGlzLmFyZ3MucHVzaChhcmcgaW5zdGFuY2VvZiBBcmd1bWVudCA/IGFyZyA6IG5ldyBBcmd1bWVudChhcmcpKTtcblx0fVxuXG5cdGNvbW1hbmQobmFtZSwgb3B0cykge1xuXHRcdGlmIChuYW1lICYmIHR5cGVvZiBuYW1lID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShuYW1lKSAmJiBuYW1lLm5hbWUpIHtcblx0XHRcdG9wdHMgPSBuYW1lO1xuXHRcdFx0bmFtZSA9IG9wdHMubmFtZTtcblx0XHR9XG5cblx0XHRpZiAoIW5hbWUgfHwgdHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBuYW1lIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuXHRcdH1cblxuXHRcdGlmICh0eXBlb2Ygb3B0cyA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0b3B0cyA9IHtcblx0XHRcdFx0YWN0aW9uOiBvcHRzXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAoIW9wdHMpIHtcblx0XHRcdG9wdHMgPSB7fTtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIG9wdHMgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkob3B0cykpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGFyZ3VtZW50IHRvIGJlIGFuIG9iamVjdCcpO1xuXHRcdH1cblxuXHRcdG9wdHMucGFyZW50ID0gdGhpcztcblxuXHRcdGxvZyhgQWRkaW5nIGNvbW1hbmQ6ICR7bmFtZX1gKTtcblxuXHRcdGNvbnN0IGNtZCA9IG5ldyBDb21tYW5kKG5hbWUsIG9wdHMpO1xuXHRcdHRoaXMuY29tbWFuZHNbbmFtZV0gPSBjbWQ7XG5cblx0XHR0aGlzLmxvb2t1cC5jb21tYW5kc1tuYW1lXSA9IGNtZDtcblx0XHRpZiAoY21kLmFsaWFzZXMpIHtcblx0XHRcdGZvciAoY29uc3QgYWxpYXMgb2YgT2JqZWN0LmtleXMoY21kLmFsaWFzZXMpKSB7XG5cdFx0XHRcdGlmICghdGhpcy5jb21tYW5kc1thbGlhc10pIHtcblx0XHRcdFx0XHR0aGlzLmxvb2t1cC5jb21tYW5kc1thbGlhc10gPSBjbWQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdG9wdGlvbihmb3JtYXQsIGdyb3VwLCBwYXJhbXMpIHtcblx0XHRpZiAoZ3JvdXAgJiYgdHlwZW9mIGdyb3VwID09PSAnb2JqZWN0Jykge1xuXHRcdFx0cGFyYW1zID0gZ3JvdXA7XG5cdFx0XHRncm91cCA9IG51bGw7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb3B0ID0gbmV3IE9wdGlvbihmb3JtYXQsIHBhcmFtcyk7XG5cdFx0dGhpcy5vcHRpb25zLnB1c2gob3B0KTtcblxuXHRcdHRoaXMuZ3JvdXBzW2dyb3VwIHx8ICcnXSA9IG9wdDtcblxuXHRcdGlmIChvcHQubG9uZykge1xuXHRcdFx0dGhpcy5sb29rdXAubG9uZ1tvcHQubG9uZ10gPSBvcHQ7XG5cdFx0fVxuXG5cdFx0aWYgKG9wdC5zaG9ydCkge1xuXHRcdFx0dGhpcy5sb29rdXAuc2hvcnRbb3B0LnNob3J0XSA9IG9wdDtcblx0XHR9XG5cblx0XHRsZXQgYWxpYXM7XG5cdFx0Zm9yIChhbGlhcyBvZiBPYmplY3Qua2V5cyhvcHQuYWxpYXNlcy5sb25nKSkge1xuXHRcdFx0dGhpcy5sb29rdXAubG9uZ1thbGlhc10gPSBvcHQ7XG5cdFx0fVxuXG5cdFx0Zm9yIChhbGlhcyBvZiBPYmplY3Qua2V5cyhvcHQuYWxpYXNlcy5zaG9ydCkpIHtcblx0XHRcdHRoaXMubG9va3VwLnNob3J0W2FsaWFzXSA9IG9wdDtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHBhcnNlKCRhcmdzKSB7XG5cdFx0aWYgKCEoJGFyZ3MgaW5zdGFuY2VvZiBBcmd1bWVudHMpKSB7XG5cdFx0XHQkYXJncyA9IG5ldyBBcmd1bWVudHMoJGFyZ3MpO1xuXHRcdFx0JGFyZ3MuY29udGV4dHMucHVzaCh0aGlzKTtcblx0XHR9XG5cblx0XHRjb25zdCBjb21tYW5kID0gJGFyZ3MuY29udGV4dHNbMF07XG5cblx0XHRsb2codGhpcy5sb29rdXAudG9TdHJpbmcoKSk7XG5cblx0XHQvLyB0aGUgcGFyc2UgYXJnIGhvb2tcblx0XHRjb25zdCBwYXJzZUFyZyA9IHRoaXMuaG9vaygncGFyc2VBcmcnLCBhc3luYyAoJGFyZ3MsIGN0eCwgYXJnLCBpLCBhcmdzKSA9PiB7XG5cdFx0XHQvLyBpZiB3ZSBoYXZlIGFuIHVua25vd24gb3B0aW9uLCB0aGVuIHdlIG5lZWQgdG8gcmVjb25zdHJ1Y3QgaXQgdG9cblx0XHRcdC8vIG1ha2Ugb3VyIHJlZ2V4ZXMgYmVsb3cgd29ya1xuXHRcdFx0aWYgKGFyZyAmJiBhcmcudHlwZSA9PT0gJ3Vua25vd24gb3B0aW9uJykge1xuXHRcdFx0XHRhcmcgPSBhcmcub3JpZztcblxuXHRcdFx0Ly8gYXJnIGlzIG51bGwsIGVtcHR5LCBvciBhbHJlYWR5IHByb2Nlc3NlZCwgc28gc2tpcCBpdFxuXHRcdFx0fSBlbHNlIGlmICghYXJnIHx8IHR5cGVvZiBhcmcgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdHJldHVybiAkYXJncztcblx0XHRcdH1cblxuXHRcdFx0bG9nKCdQYXJzaW5nIGFyZ3VtZW50OicsIGFyZyk7XG5cblx0XHRcdGxldCBtID0gYXJnLm1hdGNoKG9wdFJFKTtcblxuXHRcdFx0Ly8gY2hlY2sgaWYgYC0tYFxuXHRcdFx0aWYgKG0gJiYgIW1bMV0pIHtcblx0XHRcdFx0YXJnc1tpXSA9IHsgdHlwZTogJ2V4dHJhJywgdmFsdWU6IGFyZ3Muc2xpY2UoaSArIDEpIH07XG5cdFx0XHRcdGFyZ3MuZmlsbChudWxsLCBpICsgMSk7XG5cdFx0XHRcdHJldHVybiAkYXJncztcblx0XHRcdH1cblxuXHRcdFx0Ly8gY2hlY2sgaWYgbG9uZyBvcHRpb25cblx0XHRcdGlmIChtKSB7XG5cdFx0XHRcdC8vIC0tc29tZXRoaW5nIG9yIC0tc29tZXRoaW5nPWZvb1xuXHRcdFx0XHRjb25zdCBuZWdhdGVkID0gbVsxXS5tYXRjaChuZWdhdGVSZWdFeHApO1xuXHRcdFx0XHRjb25zdCBuYW1lID0gbmVnYXRlZCA/IG5lZ2F0ZWRbMV0gOiBtWzFdO1xuXHRcdFx0XHRjb25zdCBvcHRpb24gPSB0aGlzLmxvb2t1cC5sb25nW25hbWVdO1xuXG5cdFx0XHRcdGlmIChvcHRpb24pIHtcblx0XHRcdFx0XHRsb2coYEZvdW5kIG9wdGlvbjogJHtvcHRpb24ubmFtZX1gKTtcblx0XHRcdFx0XHRsb2coYE5lZ2F0ZWQ/ICR7ISFuZWdhdGVkfWApO1xuXG5cdFx0XHRcdFx0aWYgKG1bMl0pIHtcblx0XHRcdFx0XHRcdC8vIC0tc29tZXRoaW5nPWZvb1xuXHRcdFx0XHRcdFx0YXJnc1tpXSA9IHsgdHlwZTogJ29wdGlvbicsIG9wdGlvbiwgdmFsdWU6IG9wdGlvbi50cmFuc2Zvcm0obVsyXSwgbmVnYXRlZCkgfTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Ly8gaWYgdmFsdWUgaXMgYG51bGxgLCB0aGVuIHdlIGFyZSBtaXNzaW5nIHRoZSB2YWx1ZVxuXHRcdFx0XHRcdFx0bGV0IHZhbHVlID0gbnVsbDtcblxuXHRcdFx0XHRcdFx0aWYgKG9wdGlvbi50eXBlID09PSAnYm9vbCcpIHtcblx0XHRcdFx0XHRcdFx0dmFsdWUgPSAhbmVnYXRlZDtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoaSArIDEgPCBhcmdzLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHR2YWx1ZSA9IG9wdGlvbi50cmFuc2Zvcm0oYXJnc1tpICsgMV0pO1xuXHRcdFx0XHRcdFx0XHRhcmdzW2kgKyAxXSA9IG51bGw7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdGFyZ3NbaV0gPSB7IHR5cGU6ICdvcHRpb24nLCBvcHRpb24sIHZhbHVlIH07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBvcHRpb24uY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdGNvbnN0IG5ld1ZhbHVlID0gYXdhaXQgb3B0aW9uLmNhbGxiYWNrKGFyZ3NbaV0udmFsdWUpO1xuXHRcdFx0XHRcdFx0aWYgKG5ld1ZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdFx0YXJnc1tpXS52YWx1ZSA9IG5ld1ZhbHVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyB0cmVhdCB1bmtub3duIG9wdGlvbnMgYXMgZmxhZ3Ncblx0XHRcdFx0XHRhcmdzW2ldID0geyB0eXBlOiAndW5rbm93biBvcHRpb24nLCBvcmlnOiBhcmcgfTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiAkYXJncztcblx0XHRcdH1cblxuXHRcdFx0Ly8gY2hlY2sgaWYgc2hvcnQgb3B0aW9uXG5cdFx0XHRpZiAobSA9IGFyZy5tYXRjaChkYXNoT3B0KSkge1xuXHRcdFx0XHQvLyAteFxuXG5cdFx0XHRcdC8vIGNvbnN0IG9wdGlvbiA9IHRoaXMubG9va3VwLnNob3J0W21bMV1dO1xuXHRcdFx0XHQvLyBpZiAob3B0aW9uKSB7XG5cdFx0XHRcdC8vIFx0bG9nKGBGb3VuZCBvcHRpb246ICR7b3B0aW9uLm5hbWV9YCk7XG5cdFx0XHRcdC8vXG5cdFx0XHRcdC8vIFx0aWYgKG1bMl0pIHtcblx0XHRcdFx0Ly8gXHRcdC8vIC0teD1mb29cblx0XHRcdFx0Ly8gXHRcdGFyZ3NbaV0gPSB7IHR5cGU6ICdvcHRpb24nLCBvcHRpb24sIHZhbHVlOiBvcHRpb24udHJhbnNmb3JtKG1bMl0pIH07XG5cdFx0XHRcdC8vIFx0XHRyZXR1cm4gJGFyZ3M7XG5cdFx0XHRcdC8vIFx0fVxuXHRcdFx0XHQvL1xuXHRcdFx0XHQvLyBcdC8vIGlmIHZhbHVlIGlzIGBudWxsYCwgdGhlbiB3ZSBhcmUgbWlzc2luZyB0aGUgdmFsdWVcblx0XHRcdFx0Ly8gXHRsZXQgdmFsdWUgPSBudWxsO1xuXHRcdFx0XHQvL1xuXHRcdFx0XHQvLyBcdGlmIChvcHRpb24udHlwZSA9PT0gJ2Jvb2wnKSB7XG5cdFx0XHRcdC8vIFx0XHR2YWx1ZSA9IHRydWU7XG5cdFx0XHRcdC8vIFx0fSBlbHNlIGlmIChpICsgMSA8IGFyZ3MubGVuZ3RoKSB7XG5cdFx0XHRcdC8vIFx0XHR2YWx1ZSA9IG9wdGlvbi50cmFuc2Zvcm0oYXJnc1tpICsgMV0pO1xuXHRcdFx0XHQvLyBcdFx0YXJnc1tpICsgMV0gPSBudWxsO1xuXHRcdFx0XHQvLyBcdH1cblx0XHRcdFx0Ly9cblx0XHRcdFx0Ly8gXHRhcmdzW2ldID0geyB0eXBlOiAnb3B0aW9uJywgb3B0aW9uLCB2YWx1ZSB9O1xuXHRcdFx0XHQvLyBcdHJldHVybiAkYXJncztcblx0XHRcdFx0Ly8gfVxuXG5cdFx0XHRcdC8vIGFyZ3NbaV0gPSB7IHR5cGU6ICd1bmtub3duIG9wdGlvbicsIG5hbWU6IG1bMV0sIG9yaWc6IGFyZyB9O1xuXHRcdFx0XHQvLyByZXR1cm4gJGFyZ3M7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGNoZWNrIGlmIGNvbW1hbmRcblx0XHRcdGNvbnN0IGNtZCA9ICRhcmdzLmNvbnRleHRzWzBdLmxvb2t1cC5jb21tYW5kc1thcmddO1xuXHRcdFx0aWYgKGNtZCkge1xuXHRcdFx0XHRsb2coYEZvdW5kIGNvbW1hbmQ6ICR7Y21kLm5hbWV9YCk7XG5cdFx0XHRcdGFyZ3NbaV0gPSB7IHR5cGU6ICdjb21tYW5kJywgY29tbWFuZDogY21kIH07XG5cdFx0XHRcdCRhcmdzLmNvbnRleHRzLnVuc2hpZnQoY21kKTtcblx0XHRcdFx0cmV0dXJuICRhcmdzO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gJGFyZ3M7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gdGhpcy5ob29rKCdwYXJzZScsICRhcmdzID0+IHtcblx0XHRcdGxvZygnUGFyc2luZzonLCAkYXJncy5hcmdzKTtcblx0XHRcdHJldHVybiAkYXJncy5hcmdzXG5cdFx0XHRcdC5yZWR1Y2UoKHByb21pc2UsIGFyZywgaSwgYXJncykgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBwcm9taXNlXG5cdFx0XHRcdFx0XHQudGhlbigkYXJncyA9PiBwYXJzZUFyZygkYXJncywgdGhpcywgYXJnLCBpLCBhcmdzKSlcblx0XHRcdFx0XHRcdC50aGVuKCRhID0+ICRhIHx8ICRhcmdzKTtcblx0XHRcdFx0fSwgUHJvbWlzZS5yZXNvbHZlKCRhcmdzKSlcblx0XHRcdFx0LnRoZW4oJGFyZ3MgPT4gJGFyZ3MucHJ1bmUoKSlcblx0XHRcdFx0LnRoZW4oJGFyZ3MgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGNtZCA9ICRhcmdzLmNvbnRleHRzWzBdO1xuXG5cdFx0XHRcdFx0aWYgKGNtZCAmJiBjbWQgIT09IGNvbW1hbmQpIHtcblx0XHRcdFx0XHRcdGxvZygnRGVzY2VuZGluZyBpbnRvIG5leHQgY29udGV4dFxcJ3MgcGFyc2VyJyk7XG5cdFx0XHRcdFx0XHRjbWQubGluayh0aGlzKTtcblx0XHRcdFx0XHRcdHJldHVybiBjbWQucGFyc2UoJGFyZ3MpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGxvZygnRmluYWxpemluZyBwYXJzaW5nJyk7XG5cblx0XHRcdFx0XHRjb25zdCBlbnYgPSB7fTtcblxuXHRcdFx0XHRcdC8vIGxvb3Agb3ZlciBlYWNoIGNvbnRleHQgYW5kIGdhdGhlciB0aGUgb3B0aW9uIGRlZmF1bHRzIGFuZFxuXHRcdFx0XHRcdC8vIGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlZGVmYXVsdCBvcHRpb25zXG5cdFx0XHRcdFx0bG9nKGBQcm9jZXNzaW5nIGRlZmF1bHQgb3B0aW9ucyBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciAkeyRhcmdzLmNvbnRleHRzLmxlbmd0aH0gY29udGV4dHNgKTtcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gJGFyZ3MuY29udGV4dHMubGVuZ3RoOyBpOyBpLS0pIHtcblx0XHRcdFx0XHRcdGZvciAoY29uc3Qgb3B0aW9uIG9mICRhcmdzLmNvbnRleHRzW2kgLSAxXS5vcHRpb25zKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChvcHRpb24ubmFtZSkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IG5hbWUgPSBvcHRpb24uY2FtZWxDYXNlID09PSBmYWxzZSB8fCAhdGhpcy5jYW1lbENhc2UgPyBvcHRpb24ubmFtZSA6IGNhbWVsQ2FzZShvcHRpb24ubmFtZSk7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbi5kZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdCRhcmdzLmFyZ3ZbbmFtZV0gPSBvcHRpb24uZGVmYXVsdDtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG9wdGlvbi50eXBlID09PSAnYm9vbCcpIHtcblx0XHRcdFx0XHRcdFx0XHRcdCRhcmdzLmFyZ3ZbbmFtZV0gPSAhIW9wdGlvbi5uZWdhdGU7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGlmIChvcHRpb24uZW52ICYmIHByb2Nlc3MuZW52W29wdGlvbi5lbnZdICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGVudltuYW1lXSA9IG9wdGlvbi50cmFuc2Zvcm0ocHJvY2Vzcy5lbnZbb3B0aW9uLmVudl0pO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIGZpbGwgYXJndiBhbmQgX1xuXHRcdFx0XHRcdGxvZygnRmlsbGluZyBhcmd2IGFuZCBfJyk7XG5cdFx0XHRcdFx0bGV0IGkgPSAwO1xuXHRcdFx0XHRcdGZvciAoY29uc3QgYXJnIG9mICRhcmdzLmFyZ3MpIHtcblx0XHRcdFx0XHRcdGlmICh0eXBlb2YgYXJnID09PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRcdFx0XHRzd2l0Y2ggKGFyZy50eXBlKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSAnb3B0aW9uJzpcblx0XHRcdFx0XHRcdFx0XHRcdCRhcmdzLmFyZ3ZbYXJnLm9wdGlvbi5jYW1lbENhc2UgPT09IGZhbHNlIHx8ICF0aGlzLmNhbWVsQ2FzZSA/IGFyZy5vcHRpb24ubmFtZSA6IGNhbWVsQ2FzZShhcmcub3B0aW9uLm5hbWUpXSA9IGFyZy52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdGNhc2UgJ3Vua25vd24gb3B0aW9uJzpcblx0XHRcdFx0XHRcdFx0XHRcdCRhcmdzLmFyZ3ZbdGhpcy5jYW1lbENhc2UgPyBjYW1lbENhc2UoYXJnLm5hbWUpIDogYXJnLm5hbWVdID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5hcmdzW2ldKSB7XG5cdFx0XHRcdFx0XHRcdFx0JGFyZ3MuXy5wdXNoKHRoaXMuYXJnc1tpXS50cmFuc2Zvcm0oYXJnKSk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0JGFyZ3MuXy5wdXNoKGFyZyk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aSsrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIHByb2Nlc3MgZW52IHZhcnNcblx0XHRcdFx0XHRsb2coJ01peGluZyBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB2YWx1ZXMnKTtcblx0XHRcdFx0XHRPYmplY3QuYXNzaWduKCRhcmdzLmFyZ3YsIGVudik7XG5cblx0XHRcdFx0XHRyZXR1cm4gJGFyZ3M7XG5cdFx0XHRcdH0pO1xuXHRcdH0pKCRhcmdzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZW5kZXJzIHRoZSBoZWxwIHNjcmVlbiBmb3IgdGhpcyBjb250ZXh0IGluY2x1ZGluZyB0aGUgcGFyZW50IGNvbnRleHRzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufSBsb2cgLSBUaGUgZnVuY3Rpb24gdG8gd3JpdGUgb3V0cHV0IHRvLlxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0cmVuZGVySGVscChsb2cpIHtcblx0XHRjb25zdCBhZGQgPSAoYnVja2V0LCBjb2x1bW5zKSA9PiB7XG5cdFx0XHRmb3IgKGxldCBpID0gMCwgbCA9IGNvbHVtbnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IGxlbiA9IGNvbHVtbnNbaV0gIT09IHVuZGVmaW5lZCAmJiBjb2x1bW5zW2ldICE9PSBudWxsID8gU3RyaW5nKGNvbHVtbnNbaV0pLmxlbmd0aCA6IDA7XG5cdFx0XHRcdGlmICghYnVja2V0Lm1heFdpZHRoc1tpXSB8fCBsZW4gPiBidWNrZXQubWF4V2lkdGhzW2ldKSB7XG5cdFx0XHRcdFx0YnVja2V0Lm1heFdpZHRoc1tpXSA9IGxlbjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0YnVja2V0Lmxpc3QucHVzaChjb2x1bW5zKTtcblx0XHR9O1xuXG5cdFx0Y29uc3QgY29tbWFuZHMgPSB7XG5cdFx0XHRsaXN0OiBbXSxcblx0XHRcdG1heFdpZHRoczogW11cblx0XHR9O1xuXHRcdGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyh0aGlzLmNvbW1hbmRzKSkge1xuXHRcdFx0Y29uc3QgeyBkZXNjLCBoaWRkZW4gfSA9IHRoaXMuY29tbWFuZHNbbmFtZV07XG5cdFx0XHRpZiAoIWhpZGRlbikge1xuXHRcdFx0XHRhZGQoY29tbWFuZHMsIFsgbmFtZSwgZGVzYyBdKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBhcmdzID0ge1xuXHRcdFx0bGlzdDogW10sXG5cdFx0XHRtYXhXaWR0aHM6IFtdXG5cdFx0fTtcblx0XHRmb3IgKGNvbnN0IHsgZGVzYywgaGlkZGVuLCBuYW1lIH0gb2YgdGhpcy5hcmdzKSB7XG5cdFx0XHRpZiAoIWhpZGRlbikge1xuXHRcdFx0XHRhZGQoYXJncywgWyBgPCR7bmFtZX0+YCwgZGVzYyBdKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBvcHRpb25zID0ge1xuXHRcdFx0bGlzdDogW10sXG5cdFx0XHRtYXhXaWR0aHM6IFtdXG5cdFx0fTtcblx0XHRmb3IgKGNvbnN0IG9wdCBvZiB0aGlzLm9wdGlvbnMpIHtcblx0XHRcdGlmICghb3B0LmhpZGRlbikge1xuXHRcdFx0XHRpZiAob3B0Lm5lZ2F0ZSkge1xuXHRcdFx0XHRcdGFkZChvcHRpb25zLCBbIGAtLW5vLSR7b3B0Lm5hbWV9YCwgb3B0LmRlc2MgXSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0bGV0IHMgPSAnJztcblx0XHRcdFx0XHRpZiAob3B0LnNob3J0KSB7XG5cdFx0XHRcdFx0XHRzICs9IGAtJHtvcHQuc2hvcnR9YDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKG9wdC5sb25nKSB7XG5cdFx0XHRcdFx0XHRzICs9IChzLmxlbmd0aCA/ICcsICcgOiAnJykgKyBgLS0ke29wdC5sb25nfWA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChvcHQudHlwZSAhPT0gJ2Jvb2wnKSB7XG5cdFx0XHRcdFx0XHRzICs9IGA9PCR7b3B0LmhpbnQgfHwgJ3ZhbHVlJ30+YDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YWRkKG9wdGlvbnMsIFsgcywgb3B0LmRlc2MgXSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRsZXQgdXNhZ2UgPSAnVXNhZ2U6ICc7XG5cdFx0aWYgKHRoaXMucGFyZW50KSB7XG5cdFx0XHQvLyBhZGQgaW4gdGhlIGNoYWluIG9mIGNvbW1hbmRzXG5cdFx0XHR1c2FnZSArPSAoZnVuY3Rpb24gd2FsayhjdHgpIHtcblx0XHRcdFx0cmV0dXJuIChjdHgucGFyZW50ID8gd2FsayhjdHgucGFyZW50KSArICcgJyA6ICcnKSArIGN0eC5uYW1lO1xuXHRcdFx0fSh0aGlzKSk7XG5cblx0XHRcdHVzYWdlICs9IHRoaXMuYXJnc1xuXHRcdFx0XHQuZmlsdGVyKGFyZyA9PiAhYXJnLmhpZGRlbilcblx0XHRcdFx0Lm1hcChhcmcgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBhcmcucmVxdWlyZWQgPyBgIDwke2FyZy5uYW1lfT5gIDogYCBbPCR7YXJnLm5hbWV9Pl1gO1xuXHRcdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dXNhZ2UgKz0gYCR7dGhpcy5uYW1lfSR7Y29tbWFuZHMubGlzdC5sZW5ndGggPyAnIDxjb21tYW5kPicgOiAnJ31gO1xuXHRcdH1cblx0XHR1c2FnZSArPSBvcHRpb25zLmxpc3QubGVuZ3RoID8gJyBbb3B0aW9uc10nIDogJyc7XG5cdFx0bG9nKGAke3VzYWdlfVxcbmApO1xuXG5cdFx0Y29uc3QgbGlzdCA9IChsYWJlbCwgYnVja2V0KSA9PiB7XG5cdFx0XHRpZiAoYnVja2V0Lmxpc3QubGVuZ3RoKSB7XG5cdFx0XHRcdGxvZyhgJHtsYWJlbH06YCk7XG5cdFx0XHRcdGNvbnN0IG1heCA9IGJ1Y2tldC5tYXhXaWR0aHNbMF07XG5cdFx0XHRcdGZvciAoY29uc3QgbGluZSBvZiBidWNrZXQubGlzdCkge1xuXHRcdFx0XHRcdGNvbnN0IFsgbmFtZSwgZGVzYyBdID0gbGluZTtcblx0XHRcdFx0XHRsb2coYCAgJHtuYW1lLnBhZEVuZChtYXgpfSAgJHtkZXNjIHx8ICcnfWApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxvZygpO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRsaXN0KCdDb21tYW5kcycsIGNvbW1hbmRzKTtcblx0XHRsaXN0KCdBcmd1bWVudHMnLCBhcmdzKTtcblx0XHRsaXN0KCdPcHRpb25zJywgb3B0aW9ucyk7XG5cdH1cbn1cbiJdfQ== |
{ | ||
"name": "cli-kit", | ||
"version": "0.0.8", | ||
"version": "0.0.9", | ||
"description": "Everything you need to create awesome command line interfaces", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.js", |
262606