@studiokloek/vite-config 0.6.9 → 0.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -468,8 +468,8 @@ async function defineKloekViteConfig(environment) {
468
468
  case 'serve':
469
469
  config.server = {
470
470
  host: true,
471
- cors: options.config.serve.cors ?? true,
472
- https: options.config.serve.https ?? true,
471
+ cors: options.config.dev.cors ?? true,
472
+ https: options.config.dev.https ?? true,
473
473
  open: getPageToServe(options.config, options.settings.games),
474
474
  };
475
475
  config.plugins = [
@@ -531,4 +531,4 @@ async function kloekBuild(flags) {
531
531
  }
532
532
 
533
533
  export { kloekBuild, kloekDevelopment };
534
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy9nYW1lLnRzIiwiLi4vc3JjL3V0aWxzL2J1aWxkLnRzIiwiLi4vc3JjL3V0aWxzL2luZGV4LnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2hhbmRsZWJhcnMtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2h0bWwtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYmFzZS50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvcGx1Z2lucy9zZXJ2ZS50cyIsIi4uL3NyYy9jb25maWcudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB0eXBlIHtcbiAgR2FtZVNldHRpbmdzLFxuICBHYW1lU2V0dGluZ3NQcm9wZXJ0eSxcbiAgR2FtZXNTZXR0aW5ncyxcbiAgR2FtZXNTZXR0aW5nc0RhdGEsXG4gIEtsb2VrVml0ZUNvbmZpZyxcbiAgUGFja2FnZUdhbWVzU2V0dGluZ3MsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmZ1bmN0aW9uIG1lcmdlR2FtZVNldHRpbmdzKFxuICBnZW5lcmljOiBHYW1lU2V0dGluZ3MsXG4gIGdhbWU6IEdhbWVTZXR0aW5ncyxcbiAgaW5mb1R5cGVzOiBHYW1lU2V0dGluZ3NQcm9wZXJ0eVtdLFxuKTogR2FtZVNldHRpbmdzIHtcbiAgY29uc3Qgc2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgLy8gQWxsZSBwcm9wcyBvcCDDqcOpbiBsZXZlbCBkaWVwIG1lcmdlblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGluZm9UeXBlcykge1xuICAgIHNldHRpbmdzW3Byb3BlcnR5XSA9IHtcbiAgICAgIC4uLmdlbmVyaWNbcHJvcGVydHldLFxuICAgICAgLi4uZ2FtZVtwcm9wZXJ0eV0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5ncyBhcyB1bmtub3duIGFzIEdhbWVTZXR0aW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGFja2FnZUdhbWVzU2V0dGluZ3MoXG4gIHBhY2thZ2VTZXR0aW5nczogUGFja2FnZUdhbWVzU2V0dGluZ3MsXG4pOiBHYW1lc1NldHRpbmdzRGF0YSB7XG4gIC8vIE1lcmdlIHNldHRpbmdzXG4gIGNvbnN0IGluZm9UeXBlcyA9IE9iamVjdC5rZXlzKFxuICAgIHBhY2thZ2VTZXR0aW5ncy5nZW5lcmljLFxuICApIGFzIEdhbWVTZXR0aW5nc1Byb3BlcnR5W107XG4gIGNvbnN0IHtnZW5lcmljfSA9IHBhY2thZ2VTZXR0aW5ncztcbiAgY29uc3QgYWxsU2V0dGluZ3M6IEdhbWVzU2V0dGluZ3NEYXRhID0ge1xuICAgIGRldmVsb3BtZW50OiBnZW5lcmljLFxuICAgIGdhbWVzOiB7fSxcbiAgfTtcblxuICBmb3IgKGNvbnN0IGdhbWUgb2YgcGFja2FnZVNldHRpbmdzLmdhbWVzID8/IFtdKSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBtZXJnZUdhbWVTZXR0aW5ncyhnZW5lcmljLCBnYW1lLCBpbmZvVHlwZXMpO1xuXG4gICAgLy8gWm9yZyBlciB2b29yIGRhdCBwYWdlIGFsdGlqZCBnZXpldCBpc1xuICAgIGNvbnN0IHBhZ2VJZCA9IHNldHRpbmdzLmluZm8ucGFnZSA/PyBzZXR0aW5ncy5pbmZvLmlkID8/ICd1bmtub3duJztcbiAgICBzZXR0aW5ncy5pbmZvLnBhZ2UgPSBwYWdlSWQ7XG5cbiAgICAvLyBTbGEgc2V0dGluZ3Mgb3Agb25kZXIgcGFnZSBpZFxuICAgIGFsbFNldHRpbmdzLmdhbWVzW3BhZ2VJZF0gPSBzZXR0aW5ncztcbiAgfVxuXG4gIHJldHVybiBhbGxTZXR0aW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhUb0dhbWVEYXRhKFxuICBmdWxsRmlsZVBhdGg6IHN0cmluZyxcbiAgc2V0dGluZ3M6IEdhbWVzU2V0dGluZ3MsXG4pOiBHYW1lU2V0dGluZ3MgfCB1bmRlZmluZWQge1xuICAvLyBEZXRlcm1pbmUgZmlsZW5hbWUgd2l0aG91dCBleHRlbnNpb25cbiAgbGV0IGZpbGVQYXRoID0gcGF0aC5iYXNlbmFtZShmdWxsRmlsZVBhdGgsIHBhdGguZXh0bmFtZShmdWxsRmlsZVBhdGgpKTtcblxuICAvLyBEZXRlcm1pbmUgZGlyICYgcmVtb3ZlIGxlYWRpbmcgc2xhc2hcbiAgbGV0IGZpbGVEaXJlY3RvcnkgPSBwYXRoLmRpcm5hbWUoZnVsbEZpbGVQYXRoKTtcbiAgZmlsZURpcmVjdG9yeSA9IGZpbGVEaXJlY3RvcnkucmVwbGFjZSgvXlxcLysvZywgJycpO1xuXG4gIGlmIChmaWxlRGlyZWN0b3J5KSB7XG4gICAgZmlsZVBhdGggPSBgJHtmaWxlRGlyZWN0b3J5fS8ke2ZpbGVQYXRofWA7XG4gIH1cblxuICByZXR1cm4gc2V0dGluZ3NbZmlsZVBhdGhdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFnZVRvU2VydmUoXG4gIGNvbmZpZzogS2xvZWtWaXRlQ29uZmlnLFxuICBzZXR0aW5nczogR2FtZXNTZXR0aW5ncyxcbik6IHN0cmluZyB7XG4gIC8vIEhvZXZlZWwgcGFnZXMgemlqbiBlcj9cbiAgY29uc3QgcGFnZUlkcyA9IE9iamVjdC5rZXlzKHNldHRpbmdzKTtcbiAgY29uc3QgcGFnZSA9IHBhZ2VJZHMubGVuZ3RoID09PSAxID8gcGFnZUlkc1swXSA6ICdkZXZlbG9wbWVudCc7XG5cbiAgcmV0dXJuIHBhdGgucG9zaXguam9pbihcbiAgICBjb25maWcuYnVpbGQuYmFzZVBhdGgsXG4gICAgYCR7cGFnZX0uaHRtbCR7Y29uZmlnLmRldi5zZXJ2ZVBhcmFtcyA/PyAnJ31gLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFnZUlkRnJvbVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbGV0IHBhdGhuYW1lOiBzdHJpbmc7XG5cbiAgdHJ5IHtcbiAgICBwYXRobmFtZSA9IG5ldyBVUkwodXJsLCAnaHR0cHM6Ly9zdHVkaW9rbG9lay5ubCcpLnBhdGhuYW1lO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBJZiByZXF1ZXN0IGlzIG5vdCBodG1sICwgZGlyZWN0bHkgcmV0dXJuIG5leHQoKVxuICBpZiAoIXBhdGhuYW1lLmVuZHNXaXRoKCcuaHRtbCcpICYmIHBhdGhuYW1lICE9PSAnLycpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBQYWdpbmEgaWQgb3B2cmFnZW5cbiAgY29uc3QgaW5kZXggPSBwYXRobmFtZS5sYXN0SW5kZXhPZignLycpO1xuICBjb25zdCBmaWxlTmFtZSA9IGluZGV4ID09PSAtMSA/IHBhdGhuYW1lIDogcGF0aG5hbWUuc2xpY2UoaW5kZXggKyAxKTtcblxuICByZXR1cm4gZmlsZU5hbWUucmVwbGFjZSgnLmh0bWwnLCAnJyk7XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUge0J1aWxkT3B0aW9uc30gZnJvbSAndml0ZSc7XG5pbXBvcnQgdHlwZSB7Vml0ZU9wdGlvbnN9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVCdWlsZENvbmZpZyhvcHRpb25zOiBWaXRlT3B0aW9ucyk6IEJ1aWxkT3B0aW9ucyB7XG4gIGNvbnN0IGlucHV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgZm9yIChjb25zdCBnYW1lSWQgb2YgT2JqZWN0LmtleXMob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpIHtcbiAgICBpbnB1dFtnYW1lSWRdID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMucm9vdCwgYCR7Z2FtZUlkfS5odG1sYCk7XG4gIH1cblxuICAvLyBMaWJzIGRpZSBhcGFydGUganMga3JpamdlbjpcbiAgY29uc3QgdmVuZG9yQ2h1bmtzID0gWydmaXJlYmFzZScsICdwaXhpJywgJ2xvZGFzaCcsICdjYXBhY2l0b3InLCAnZ3NhcCcsICdzdHVkaW9rbG9layddO1xuXG4gIHJldHVybiB7XG4gICAgcmVwb3J0Q29tcHJlc3NlZFNpemU6IGZhbHNlLFxuICAgIGNodW5rU2l6ZVdhcm5pbmdMaW1pdDogMTAwMCxcbiAgICBvdXREaXI6ICcuLi9wdWJsaWMnLFxuICAgIGFzc2V0c0RpcjogJ2dlbmVyYXRlZCcsXG4gICAgcm9sbHVwT3B0aW9uczoge1xuICAgICAgaW5wdXQsXG4gICAgICBvdXRwdXQ6IHtcbiAgICAgICAgbWFudWFsQ2h1bmtzKGlkKSB7XG4gICAgICAgICAgaWYgKGlkLmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGlkXG4gICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgIC5zcGxpdCgnbm9kZV9tb2R1bGVzLycpWzFdXG4gICAgICAgICAgICAgIC5zcGxpdCgnLycpWzBdXG4gICAgICAgICAgICAgIC50b1N0cmluZygpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZlbmRvckNodW5rcykge1xuICAgICAgICAgICAgICBpZiAobmFtZS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIiwiaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7bm9ybWFsaXplUGF0aH0gZnJvbSAndml0ZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkSlNPTihwYXRoOiBzdHJpbmcpOiB1bmtub3duIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhID0gcmVhZEZpbGVTeW5jKHBhdGgpO1xuICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEudG9TdHJpbmcoKSk7XG4gIH0gY2F0Y2gge1xuICAgIC8vXG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBjb25zdCBjd2QgPSBub3JtYWxpemVQYXRoKHByb2Nlc3MuY3dkKCkpO1xuXG5leHBvcnQgKiBmcm9tICcuL2dhbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZCc7XG4iLCJpbXBvcnQgb3MgZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUge1BsdWdpbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgdml0ZUhhbmRsZWJhcnNQbHVnaW4gZnJvbSAndml0ZS1wbHVnaW4taGFuZGxlYmFycyc7XG5pbXBvcnQgdHlwZSB7Vml0ZU9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtnZXRQYWdlSWRGcm9tVXJsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8vIEhlbHBlcnMgdm9vciBoYW5kbGViYXJzXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlYmFyc1BsdWdpbihcbiAgcGFydGlhbERpcmVjdG9yeTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG9wdGlvbnM6IFZpdGVPcHRpb25zLFxuKTogUGx1Z2luIHtcbiAgcmV0dXJuIHZpdGVIYW5kbGViYXJzUGx1Z2luKHtcbiAgICBwYXJ0aWFsRGlyZWN0b3J5LFxuXG4gICAgaGVscGVyczoge1xuICAgICAganNvbjogKG9iamVjdDogYW55LCBpbmRlbnQgPSAwKSA9PlxuICAgICAgICBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgaW5kZW50KSxcbiAgICAgIGNvbmNhdDogKC4uLmFyZ3VtZW50c186IGFueVtdKSA9PiBhcmd1bWVudHNfLnNsaWNlKDAsIC0xKS5qb2luKCcnKSxcbiAgICAgIGVxOiAoYTogYW55LCBiOiBhbnkpID0+IGEgPT09IGIsXG4gICAgICBuZXE6IChhOiBhbnksIGI6IGFueSkgPT4gYSAhPT0gYixcbiAgICAgIGlzZGVmaW5lZDogKHZhbHVlOiB1bmRlZmluZWQpID0+IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAncmVzb2x2ZS1yb290JyhwOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gVGlqZGVsaWprZSBoYWNrIHZvb3IgYnVnIGluIGhhbmRsZWJhcnMgcGx1Z2luXG4gICAgICAgIC8vIHppZSBvb2sgaHR0cHM6Ly9naXRodWIuY29tL2FsZXhsYWZyb3NjaWEvdml0ZS1wbHVnaW4taGFuZGxlYmFycy9wdWxsLzEyOVxuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBwKTtcbiAgICAgICAgcmV0dXJuIG9zLnBsYXRmb3JtKCkgPT09ICd3aW4zMicgPyBgLyR7cmVzb2x2ZWRQYXRofWAgOiByZXNvbHZlZFBhdGg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb250ZXh0KHBhZ2VQYXRoOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgICBjb25zdCBnYW1lSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHBhZ2VQYXRoKTtcblxuICAgICAgaWYgKCFnYW1lSWQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZ2FtZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIFBhZ2luYSBzZXR0aW5ncyB0ZXJ1Z2dldmVuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW52OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgIGRhdGE6IG9wdGlvbnMuc2V0dGluZ3MuZGV2ZWxvcG1lbnQsXG4gICAgICAgICAgZ2FtZXM6IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIE9wIGJhc2lzIHZhbiBwYWQgZGF0YSBiZXBhbGVuXG4gICAgICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXNbZ2FtZUlkXTtcblxuICAgICAgLy8gUGFnaW5hIHNldHRpbmdzIHRlcnVnZ2V2ZW5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudjogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgZGF0YTogc2V0dGluZ3MgPz8ge30sXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xufVxuIiwiaW1wb3J0IHtleGlzdHNTeW5jLCBwcm9taXNlc30gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUge0NvbmZpZ0VudiwgUGx1Z2luLCBVc2VyQ29uZmlnLCBWaXRlRGV2U2VydmVyfSBmcm9tICd2aXRlJztcbmltcG9ydCB0eXBlIHtHYW1lc1NldHRpbmdzfSBmcm9tICcuLi8uLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7Y3dkLCBnZXRQYWdlSWRGcm9tVXJsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmNvbnN0IFBBR0VfVEVNUExBVEUgPSAne3s+IGdhbWUgZGF0YT1kYXRhfX0nO1xuY29uc3QgREVWRUxPUE1FTlRfVEVNUExBVEUgPSAne3s+IGRldmVsb3BtZW50IGRhdGE9ZGF0YX19JztcblxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyVGVtcG9yYXJ5RmlsZShmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIEJlc3RhYXQgZGllIGZpbGUgbm9nIG5pZXQ/XG4gIGlmICghZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAvLyBBYW5tYWtlblxuICAgIGF3YWl0IHByb21pc2VzLndyaXRlRmlsZShmaWxlUGF0aCwgUEFHRV9URU1QTEFURSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh0bWxQbHVnaW4oZ2FtZXM6IEdhbWVzU2V0dGluZ3MpOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICd2aXRlLXBsdWdpbi1rbG9lay1odG1sJyxcbiAgICBlbmZvcmNlOiAncHJlJyxcblxuICAgIGFzeW5jIGNvbmZpZyhfY29uZmlnOiBVc2VyQ29uZmlnLCBlbnZpcm9ubWVudDogQ29uZmlnRW52KSB7XG4gICAgICAvLyBCaWogZWVuIGJ1aWxkIG1ha2VuIHdlIHRpamRlbGlqayBmaWxlcyBhYW5cbiAgICAgIGlmIChlbnZpcm9ubWVudC5jb21tYW5kID09PSAnYnVpbGQnKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnM6IEFycmF5PFByb21pc2U8dm9pZD4+ID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgICAgLy8gUGFkIG5hYXIgZmlsZVxuICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsIGAke3BhZ2VJZH0uaHRtbGApO1xuICAgICAgICAgIGFjdGlvbnMucHVzaChyZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChhY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgY29uZmlndXJlU2VydmVyKHNlcnZlcjogVml0ZURldlNlcnZlcikge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgLy8gWm9yZyBlciB2b29yIGRhdCB0aWpkZW5zIGRldmVsb3BtZW50IGRlIHBhZ2luYSBnZS1yZW5kZXJlZCB0ZXJ1ZyBnZWdldmVuIHdvcmR0IHdvcmR0XG4gICAgICAgIHNlcnZlci5taWRkbGV3YXJlcy51c2UoJy8nLCBhc3luYyAocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpID0+IHtcbiAgICAgICAgICBjb25zdCB1cmwgPSByZXF1ZXN0Py51cmwgPz8gJyc7XG4gICAgICAgICAgY29uc3QgcGFnZUlkID0gZ2V0UGFnZUlkRnJvbVVybCh1cmwpO1xuXG4gICAgICAgICAgaWYgKCFwYWdlSWQpIHtcbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFnZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAvLyBEZXZlbG9wbWVudD8gZ2VlZiB0ZXJ1Zy4uLlxuICAgICAgICAgICAgcmVzcG9uc2UuZW5kKFxuICAgICAgICAgICAgICBhd2FpdCBzZXJ2ZXIudHJhbnNmb3JtSW5kZXhIdG1sKFxuICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICBERVZFTE9QTUVOVF9URU1QTEFURSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0Lm9yaWdpbmFsVXJsLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKE9iamVjdC5rZXlzKGdhbWVzKS5pbmNsdWRlcyhwYWdlSWQpKSB7XG4gICAgICAgICAgICAvLyBCZXN0YWFuZGUgZ2FtZT8gem9yZyBlciB2b29yIGRhdCBkZSB0ZW1wbGF0ZSBnZS1yZW5kZXJlZCB3b3JkdFxuICAgICAgICAgICAgcmVzcG9uc2UuZW5kKFxuICAgICAgICAgICAgICBhd2FpdCBzZXJ2ZXIudHJhbnNmb3JtSW5kZXhIdG1sKFxuICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICBQQUdFX1RFTVBMQVRFLFxuICAgICAgICAgICAgICAgIHJlcXVlc3Qub3JpZ2luYWxVcmwsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBOaWtzIGdldm9uZGVuXG4gICAgICAgICAgICByZXNwb25zZS5lbmQoJzQwNCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0sXG5cbiAgICBhc3luYyBjbG9zZUJ1bmRsZSgpIHtcbiAgICAgIC8vIFZlcndpamRlciBkZSBhYW5nZW1hYWt0ZSBmaWxlc1xuICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8UHJvbWlzZTx2b2lkPj4gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcGFnZUlkIG9mIE9iamVjdC5rZXlzKGdhbWVzKSkge1xuICAgICAgICAvLyBQYWQgbmFhciBmaWxlXG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsIGAke3BhZ2VJZH0uaHRtbGApO1xuICAgICAgICBpZiAoZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHByb21pc2VzLnJtKGZpbGVQYXRoKSk7XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvL1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChhY3Rpb25zKTtcbiAgICB9LFxuICB9O1xufVxuIiwiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7c3ZlbHRlLCB2aXRlUHJlcHJvY2Vzc30gZnJvbSAnQHN2ZWx0ZWpzL3ZpdGUtcGx1Z2luLXN2ZWx0ZSc7XG5pbXBvcnQge3R5cGUgUGx1Z2luLCB0eXBlIFBsdWdpbk9wdGlvbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgdHNjb25maWdQYXRoc1BsdWdpbiBmcm9tICd2aXRlLXRzY29uZmlnLXBhdGhzJztcbmltcG9ydCB7dHlwZSBWaXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2N3ZH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtoYW5kbGViYXJzUGx1Z2lufSBmcm9tICcuL2xpYi9oYW5kbGViYXJzLXBsdWdpbic7XG5pbXBvcnQge2h0bWxQbHVnaW59IGZyb20gJy4vbGliL2h0bWwtcGx1Z2luJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJhc2VQbHVnaW5zKFxuICBvcHRpb25zOiBWaXRlT3B0aW9ucyxcbik6IEFycmF5PFBsdWdpbiB8IFBsdWdpbk9wdGlvbj4ge1xuICByZXR1cm4gW1xuICAgIGh0bWxQbHVnaW4ob3B0aW9ucy5zZXR0aW5ncy5nYW1lcyksXG5cbiAgICAuLi5zdmVsdGUoe1xuICAgICAgcHJlcHJvY2Vzczp2aXRlUHJlcHJvY2VzcygpLFxuXG4gICAgICBvbndhcm4od2FybmluZywgd2Fybikge1xuICAgICAgICBpZiAoIXdhcm4pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBObyBhMTF5IHdhcm5pbmdzLi4uXG4gICAgICAgIGlmICh3YXJuaW5nLmNvZGUuc3RhcnRzV2l0aCgnYTExeS0nKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHdhcm4od2FybmluZyk7XG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgdHNjb25maWdQYXRoc1BsdWdpbih7XG4gICAgICByb290OiBwYXRoLnJlc29sdmUoY3dkKSxcbiAgICAgIGV4dGVuc2lvbnM6IFsnLnRzJywgJy5qc29uJ10sXG4gICAgICBsb29zZTogdHJ1ZSxcbiAgICB9KSxcbiAgXG4gICAgaGFuZGxlYmFyc1BsdWdpbihvcHRpb25zLmNvbmZpZy5zZXJ2ZS5wYXJ0aWFscywgb3B0aW9ucyksXG4gIF07XG59XG4iLCJpbXBvcnQgdHlwZSB7Q29uZmlnRW52LCBQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGltYWdlbWluUGx1Z2luMiBmcm9tICd2aXRlLXBsdWdpbi1pbWFnZW1pbic7XG5pbXBvcnQgdHlwZSB7SW1hZ2VRdWFsaXR5Q29uZmlnfSBmcm9tICcuLi8uLi91dGlscy9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlbWluUGx1Z2luKFxuICBlbnZpcm9ubWVudDogQ29uZmlnRW52LFxuICBvcHRpb25zOiBJbWFnZVF1YWxpdHlDb25maWcsXG4pOiBQbHVnaW4ge1xuICByZXR1cm4gaW1hZ2VtaW5QbHVnaW4yKHtcbiAgICBkaXNhYmxlOiBlbnZpcm9ubWVudC5tb2RlICE9PSAncHJvZHVjdGlvbicsXG4gICAgbW96anBlZzoge1xuICAgICAgcXVhbGl0eTogb3B0aW9ucz8uanBlZyA/PyA4MCxcbiAgICB9LFxuICAgIHBuZ3F1YW50OiB7XG4gICAgICBzdHJpcDogdHJ1ZSxcbiAgICAgIHNwZWVkOiAyLFxuICAgICAgZGl0aGVyaW5nOiAwLjI1LFxuICAgICAgcXVhbGl0eTogb3B0aW9ucz8ucG5nID8/IFswLjUsIDAuN10sXG4gICAgfSxcbiAgfSkgYXMgUGx1Z2luO1xufVxuIiwiaW1wb3J0IHR5cGUge1BsdWdpbiwgUmVzb2x2ZWRDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHR5cGUge0dhbWVTZXR0aW5ncywgR2FtZXNTZXR0aW5nc30gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5cbmZ1bmN0aW9uIHJlbmRlckdhbWVNYW5pZmVzdChcbiAgcGFnZUlkOiBzdHJpbmcsXG4gIHNldHRpbmdzOiBHYW1lU2V0dGluZ3MsXG4gIGNvbmZpZzogUmVzb2x2ZWRDb25maWcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBtYW5pZmVzdCA9IHtcbiAgICBzaG9ydF9uYW1lOiBgJHtzZXR0aW5ncy5tZXRhLmFwcHRpdGxlfWAsXG4gICAgbmFtZTogYCR7c2V0dGluZ3MubWV0YS50aXRsZX1gLFxuICAgIGRlc2NyaXB0aW9uOiBgJHtzZXR0aW5ncy5tZXRhLmRlc2NyaXB0aW9ufWAsXG4gICAgc2NvcGU6IGAke2NvbmZpZy5iYXNlfSR7cGFnZUlkfS5odG1sYCxcbiAgICBzdGFydF91cmw6IGAke2NvbmZpZy5iYXNlfSR7cGFnZUlkfS5odG1sYCxcbiAgICBkaXNwbGF5OiAnZnVsbHNjcmVlbicsXG4gICAgb3JpZW50YXRpb246IGAke3NldHRpbmdzLm9wdGlvbnMub3JpZW50YXRpb24gPz8gJ2xhbmRzY2FwZSd9YCxcbiAgICBpY29uczogW1xuICAgICAge1xuICAgICAgICBzcmM6IGAke2NvbmZpZy5iYXNlfW1ldGEvJHtzZXR0aW5ncy5pbmZvLmlkfS9pY29ucy9jaHJvbWUtdG91Y2gtaWNvbi0xOTJ4MTkyLnBuZ2AsXG4gICAgICAgIHR5cGU6ICdpbWFnZS9wbmcnLFxuICAgICAgICBzaXplczogJzE5MngxOTInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvaWNvbi5wbmdgLFxuICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc2l6ZXM6ICcxMDI0eDEwMjQnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGJhY2tncm91bmRfY29sb3I6IGAke3NldHRpbmdzLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yfWAsXG4gICAgdGhlbWVfY29sb3I6IGAke3NldHRpbmdzLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yfWAsXG4gIH07XG5cbiAgcmV0dXJuIGAke0pTT04uc3RyaW5naWZ5KG1hbmlmZXN0LCBudWxsLCAyKX1cXG5gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFuaWZlc3RQbHVnaW4oZ2FtZXM6IEdhbWVzU2V0dGluZ3MpOiBQbHVnaW4ge1xuICBsZXQgY29uZmlnOiBSZXNvbHZlZENvbmZpZztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICd2aXRlLXBsdWdpbi1rbG9lay1tYW5pZmVzdCcsXG4gICAgZW5mb3JjZTogJ3Bvc3QnLFxuICAgIGFwcGx5OiAnYnVpbGQnLFxuICAgIGFzeW5jIGNvbmZpZ1Jlc29sdmVkKHJlc29sdmVkQ29uZmlnOiBSZXNvbHZlZENvbmZpZykge1xuICAgICAgY29uZmlnID0gcmVzb2x2ZWRDb25maWc7XG4gICAgfSxcbiAgICBnZW5lcmF0ZUJ1bmRsZShfLCBidW5kbGUpIHtcbiAgICAgIC8vIFZvb3IgaWVkZXJlIGFwcCBlZW4gbWFuaWZlc3QgbWFrZW46XG4gICAgICBmb3IgKGNvbnN0IFtwYWdlSWQsIHNldHRpbmdzXSBvZiBPYmplY3QuZW50cmllcyhnYW1lcykpIHtcbiAgICAgICAgYnVuZGxlW2Ake3BhZ2VJZH0ud2VibWFuaWZlc3RgXSA9IHtcbiAgICAgICAgICBpc0Fzc2V0OiB0cnVlLFxuICAgICAgICAgIHR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgbmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgIHNvdXJjZTogcmVuZGVyR2FtZU1hbmlmZXN0KHBhZ2VJZCwgc2V0dGluZ3MsIGNvbmZpZyksXG4gICAgICAgICAgZmlsZU5hbWU6IGAke3BhZ2VJZH0ud2VibWFuaWZlc3RgLFxuICAgICAgICB9O1xuXG4gICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgXSA9IHtcbiAgICAgICAgICBpc0Fzc2V0OiB0cnVlLFxuICAgICAgICAgIHR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgbmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgIHNvdXJjZTogXCJzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rpb24oKSB7IHJldHVybjsgfSk7XCIsXG4gICAgICAgICAgZmlsZU5hbWU6IGAke3BhZ2VJZH0tc2VydmljZXdvcmtlci5qc2AsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCBsZWdhY3lQbHVnaW4gZnJvbSAnQHZpdGVqcy9wbHVnaW4tbGVnYWN5JztcbmltcG9ydCB0eXBlIHtQbHVnaW4sIFBsdWdpbk9wdGlvbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgYmFubmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWJhbm5lcic7XG5pbXBvcnQge2NyZWF0ZUh0bWxQbHVnaW59IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHR5cGUge1ZpdGVPcHRpb25zfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7aW1hZ2VtaW5QbHVnaW59IGZyb20gJy4vbGliL2ltYWdlLXBsdWdpbic7XG5pbXBvcnQge21hbmlmZXN0UGx1Z2lufSBmcm9tICcuL2xpYi9tYW5pZmVzdC1wbHVnaW4nO1xuXG4vLyBCdWlsZCBwbHVnaW5zXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQbHVnaW5zKFxuICBvcHRpb25zOiBWaXRlT3B0aW9ucyxcbik6IEFycmF5PFBsdWdpbiB8IFBsdWdpbk9wdGlvbj4ge1xuICAvLyBObyBidWlsZD8gbm8gcGx1Z2lucy4uXG4gIGlmIChvcHRpb25zLmVudmlyb25tZW50LmNvbW1hbmQgIT09ICdidWlsZCcpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwbHVnaW5zOiBBcnJheTxQbHVnaW4gfCBQbHVnaW5PcHRpb24+ID0gW107XG5cbiAgaWYgKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmxlZ2FjeSkge1xuICAgIC8vIE1ha2Ugc3VyZSB0aGUgcGFnZSB3b3JrcyBpbiBvbGRlciBicm93c2Vyc1xuICAgIHBsdWdpbnMucHVzaChcbiAgICAgIC4uLmxlZ2FjeVBsdWdpbih7XG4gICAgICAgIHRhcmdldHM6IChvcHRpb25zLmNvbmZpZy5idWlsZC5icm93c2Vyc2xpc3QgYXMgc3RyaW5nW10pID8/ICdkZWZhdWx0cycsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgcGFnZXMgPSBPYmplY3Qua2V5cyhvcHRpb25zLnNldHRpbmdzLmdhbWVzKS5tYXAoKGdhbWVJZCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBmaWxlbmFtZTogYCR7Z2FtZUlkfS5odG1sYCxcbiAgICAgIHRlbXBsYXRlOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgIH07XG4gIH0pO1xuXG4gIHBsdWdpbnMucHVzaChcbiAgICAvLyBNaW5pZnkgaW1hZ2UgYXNzZXRzXG4gICAgaW1hZ2VtaW5QbHVnaW4ob3B0aW9ucy5lbnZpcm9ubWVudCwgb3B0aW9ucy5jb25maWcuYnVpbGQuaW1hZ2VRdWFsaXR5KSxcblxuICAgIC8vIE1ha2UgdGhlIGh0bWwgb3V0cHV0IHNtYWxsZXJcbiAgICAuLi4oY3JlYXRlSHRtbFBsdWdpbih7bWluaWZ5OiB0cnVlLCBwYWdlc30pIGFzIFBsdWdpbltdKSxcblxuICAgIC8vIEFkZCBhIGJhbm5lciB0byBnZW5lcmF0ZWQganMvY3NzXG4gICAgYmFubmVyUGx1Z2luKFxuICAgICAgYFxuICAgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC5cblxuICAgICAgICAgX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAgICBfICAgICAgICAgICAgX1xuICAgICAgICAvICApICAgICAgICAgICAgICB8ICBvICAgICAgICAgL3wgICAvIHwgfCAgICAgICAgICB8IHxcbiAgICAgICAgXFxcXF9fIF98XyAgICAgICAgIF9ffCAgICAgIF9fICAgICB8X18vICB8IHwgIF9fICAgXyAgfCB8XG4gICAgICAgICAgIFxcXFwgfCAgfCAgIHwgIC8gIHwgIHwgIC8gIFxcXFxfICAgfCBcXFxcICAgfC8gIC8gIFxcXFxffC8gIHwvXylcbiAgICAgICAoX19fLyB8Xy8gXFxcXF8vfF8vXFxcXF8vfF8vfF8vXFxcXF9fLyAgICB8ICBcXFxcXy98X18vXFxcXF9fLyB8X18vfCBcXFxcXy9cblxuICAgICAgICBDb25jZXB0LCBvbnR3ZXJwICYgb250d2lra2VsaW5nXG4gICAgICAgIGh0dHBzOi8vc3R1ZGlva2xvZWsubmxcblxuICAgICAgICBTdHVkaW8gS2xvZWsg4p2kIFBpeGlKUywgR1NBUCAmIGhvd2xlci5qc1xuXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgYCxcbiAgICApLFxuICApO1xuXG4gIC8vIENyZWF0ZSBhIG1hbmlmZXN0IGFuZCBtaW5pbWFsIHdlYndvcmtlciBmb3IgZXZlcnkgZ2FtZVxuICBpZiAob3B0aW9ucy5jb25maWcuYnVpbGQubWFuaWZlc3QpIHtcbiAgICBwbHVnaW5zLnB1c2gobWFuaWZlc3RQbHVnaW4ob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpO1xuICB9XG5cbiAgcmV0dXJuIHBsdWdpbnM7XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHt0eXBlIFBsdWdpbiwgdHlwZSBQbHVnaW5PcHRpb259IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGZ1bGxSZWxvYWQgZnJvbSAndml0ZS1wbHVnaW4tZnVsbC1yZWxvYWQnO1xuaW1wb3J0IG1rY2VydCBmcm9tICd2aXRlLXBsdWdpbi1ta2NlcnQnO1xuaW1wb3J0IGNoZWNrZXIgZnJvbSAndml0ZS1wbHVnaW4tY2hlY2tlcic7XG5pbXBvcnQge2N3ZH0gZnJvbSAnLi4vdXRpbHMnO1xuZXhwb3J0IGZ1bmN0aW9uIHNlcnZlUGx1Z2lucygpOiBBcnJheTxQbHVnaW4gfCBQbHVnaW5PcHRpb24+IHtcbiAgcmV0dXJuIFtcbiAgICBmdWxsUmVsb2FkKFsnc2NyaXB0LyoqLyoudHMnLCAnc3ZlbHRlLyoqLyouc3ZlbHRlJ10sIHtcbiAgICAgIHJvb3Q6IHBhdGguam9pbihwYXRoLnJlc29sdmUoY3dkKSwgJ3NvdXJjZScpLFxuICAgICAgbG9nOiB0cnVlLFxuICAgICAgYWx3YXlzOiB0cnVlLFxuICAgIH0pIGFzIFBsdWdpbixcblxuICAgIG1rY2VydCgpLFxuXG4gICAgY2hlY2tlcih7XG4gICAgICB0eXBlc2NyaXB0OiB7XG4gICAgICAgIGJ1aWxkTW9kZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSksXG4gIF07XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtmaWxlVVJMVG9QYXRofSBmcm9tICdub2RlOnVybCc7XG5pbXBvcnQgdHlwZSB7Q29uZmlnRW52LCBVc2VyQ29uZmlnfSBmcm9tICd2aXRlJztcbmltcG9ydCB7YmFzZVBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucy9iYXNlJztcbmltcG9ydCB7YnVpbGRQbHVnaW5zfSBmcm9tICcuL3BsdWdpbnMvYnVpbGQnO1xuaW1wb3J0IHtzZXJ2ZVBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucy9zZXJ2ZSc7XG5pbXBvcnQge1xuICBjd2QsXG4gIGRlZmluZUJ1aWxkQ29uZmlnLFxuICBnZXRQYWdlVG9TZXJ2ZSxcbiAgcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbiAgcmVhZEpTT04sXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHR5cGUge1xuICBLbG9la1ZpdGVDb25maWcsXG4gIFBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICBWaXRlT3B0aW9ucyxcbn0gZnJvbSAnLi91dGlscy9pbnRlcmZhY2VzJztcblxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWZpbmVLbG9la1ZpdGVDb25maWcoXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4pOiBQcm9taXNlPFVzZXJDb25maWc+IHtcbiAgY29uc3QgcGtnID0gcmVhZEpTT04ocGF0aC5yZXNvbHZlKGN3ZCwgJ3BhY2thZ2UuanNvbicpKSBhcyBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHVua25vd25cbiAgPjtcbiAgY29uc3Qga2xvZWtDb25maWcgPSBwa2cudml0ZSBhcyBLbG9la1ZpdGVDb25maWc7XG4gIGNvbnN0IGJyb3dzZXJzbGlzdCA9IHBrZy5icm93c2Vyc2xpc3QgYXMgc3RyaW5nIHwgc3RyaW5nW107XG4gIGNvbnN0IG9wdGlvbnM6IFZpdGVPcHRpb25zID0ge1xuICAgIHJvb3Q6IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnKSxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBzZXR0aW5nczogcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhwa2cuc2V0dGluZ3MgYXMgUGFja2FnZUdhbWVzU2V0dGluZ3MpLFxuICAgIGNvbmZpZzoge1xuICAgICAgLi4ua2xvZWtDb25maWcsXG4gICAgICBidWlsZDogey4uLmtsb2VrQ29uZmlnLmJ1aWxkLCBicm93c2Vyc2xpc3R9LFxuICAgICAgc2VydmU6IHtcbiAgICAgICAgcGFydGlhbHM6IFtcbiAgICAgICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAncGFydGlhbHMnKSxcbiAgICAgICAgICBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3BhcnRpYWxzJyksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgY29uZmlnOiBVc2VyQ29uZmlnID0ge1xuICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgYmFzZToga2xvZWtDb25maWcuYnVpbGQuYmFzZVBhdGgsXG4gICAgcm9vdDogb3B0aW9ucy5yb290LFxuICAgIGVudkRpcjogcGF0aC5yZXNvbHZlKGN3ZCwgJ2VudicpLFxuICAgIGVudlByZWZpeDogWydLTE9FS18nLCAnVklURV8nXSxcbiAgICBwdWJsaWNEaXI6ICdzdGF0aWMnLFxuICAgIGRlZmluZToge30sXG5cbiAgICBlc2J1aWxkOiB7XG4gICAgICBsZWdhbENvbW1lbnRzOiAnbm9uZScsXG4gICAgfSxcblxuICAgIHJlc29sdmU6IHtcbiAgICAgIGRlZHVwZTogW1xuICAgICAgICAnQHN0dWRpb2tsb2VrL3RzLWNvcmUtbGliJyxcbiAgICAgICAgJ0BjYXBhY2l0b3IvYXBwJyxcbiAgICAgICAgJ0BjYXBhY2l0b3IvY29yZScsXG4gICAgICAgICdAY2FwYWNpdG9yL2RldmljZScsXG4gICAgICAgICdAY2FwYWNpdG9yL25ldHdvcmsnLFxuICAgICAgICAnQGNhcGFjaXRvci9zcGxhc2gtc2NyZWVuJyxcbiAgICAgICAgJ0BjYXBhY2l0b3Ivc3RhdHVzLWJhcicsXG4gICAgICAgICdAY2FwYWNpdG9yL3ByZWZlcmVuY2VzJyxcbiAgICAgICAgJ2Jvd3NlcicsXG4gICAgICAgICdmb250ZmFjZW9ic2VydmVyJyxcbiAgICAgICAgJ2dzYXAnLFxuICAgICAgICAnaG93bGVyJyxcbiAgICAgICAgJ2xvZGFzaC1kZWNvcmF0b3JzLWVzbScsXG4gICAgICAgICdsb2Rhc2gtZXMnLFxuICAgICAgICAncGl4aS1zcGluZScsXG4gICAgICAgICdwaXhpLmpzJyxcbiAgICAgICAgJ3B1YnN1Yi1qcycsXG4gICAgICAgICdyYW5kb20tanMnLFxuICAgICAgICAncmVzcycsXG4gICAgICAgICdzbHVnaWZ5JyxcbiAgICAgICAgJ3N1cGVyYWdlbnQnLFxuICAgICAgICAndHMtZXZlbnRzJyxcbiAgICAgICAgJ3RzLW1peGVyJyxcbiAgICAgICAgJ3RzbGliJyxcbiAgICAgIF0sXG4gICAgICBhbGlhczoge1xuICAgICAgICBsb2Rhc2g6ICdsb2Rhc2gtZXMnLFxuICAgICAgICAnQG1ldGEnOiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3N0YXRpYycsICdtZXRhJyksXG4gICAgICAgICdAZm9udHMnOiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3N0YXRpYycsICdmb250cycpLFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgY3NzOiB7XG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIHNjc3M6IHtcbiAgICAgICAgICBjaGFyc2V0OiBmYWxzZSxcbiAgICAgICAgICAvLyBBZGRpdGlvbmFsRGF0YTogYEBjaGFyc2V0IFwiVVRGLThcImAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBwbHVnaW5zOiBbLi4uYmFzZVBsdWdpbnMob3B0aW9ucyldLFxuICB9O1xuXG4gIHN3aXRjaCAoZW52aXJvbm1lbnQuY29tbWFuZCkge1xuICAgIGNhc2UgJ3NlcnZlJzpcbiAgICAgIGNvbmZpZy5zZXJ2ZXIgPSB7XG4gICAgICAgIGhvc3Q6IHRydWUsXG4gICAgICAgIGNvcnM6IG9wdGlvbnMuY29uZmlnLnNlcnZlLmNvcnMgPz8gdHJ1ZSxcbiAgICAgICAgaHR0cHM6IG9wdGlvbnMuY29uZmlnLnNlcnZlLmh0dHBzID8/IHRydWUsXG4gICAgICAgIG9wZW46IGdldFBhZ2VUb1NlcnZlKG9wdGlvbnMuY29uZmlnLCBvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcbiAgICAgIH07XG4gICAgICBjb25maWcucGx1Z2lucyA9IFtcbiAgICAgICAgLi4uKGNvbmZpZy5wbHVnaW5zID8gY29uZmlnLnBsdWdpbnMgOiBbXSksXG4gICAgICAgIC4uLnNlcnZlUGx1Z2lucygpLFxuICAgICAgXTtcblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdidWlsZCc6XG4gICAgICBjb25maWcuYnVpbGQgPSBkZWZpbmVCdWlsZENvbmZpZyhvcHRpb25zKTtcbiAgICAgIGNvbmZpZy5wbHVnaW5zID0gW1xuICAgICAgICAuLi4oY29uZmlnLnBsdWdpbnMgPyBjb25maWcucGx1Z2lucyA6IFtdKSxcbiAgICAgICAgLi4uYnVpbGRQbHVnaW5zKG9wdGlvbnMpLFxuICAgICAgXTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG4iLCJpbXBvcnQge3R5cGUgVHlwZWRGbGFnc30gZnJvbSAnbWVvdyc7XG5pbXBvcnQge2J1aWxkLCBjcmVhdGVTZXJ2ZXJ9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtkZWZpbmVLbG9la1ZpdGVDb25maWd9IGZyb20gJy4vY29uZmlnJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrRGV2ZWxvcG1lbnQoXG4gIGZsYWdzOiBUeXBlZEZsYWdzPHtcbiAgICBtb2RlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJztcbiAgICAgIGFsaWFzOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0Pzogc3RyaW5nO1xuICAgIH07XG4gIH0+LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGRlZmluZUtsb2VrVml0ZUNvbmZpZyh7XG4gICAgY29tbWFuZDogJ3NlcnZlJyxcbiAgICBtb2RlOiAnZGV2ZWxvcG1lbnQnLFxuICB9KTtcblxuICAvLyBEaWZmZXJlbnQgbW9kZVxuICBpZiAodHlwZW9mIGZsYWdzLm1vZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uZmlnLm1vZGUgPSBmbGFncy5tb2RlO1xuICB9XG5cbiAgY29uc3Qgc2VydmVyID0gYXdhaXQgY3JlYXRlU2VydmVyKHtcbiAgICBjb25maWdGaWxlOiBmYWxzZSxcbiAgICAuLi5jb25maWcsXG4gIH0pO1xuXG4gIGF3YWl0IHNlcnZlci5saXN0ZW4oKTtcbiAgc2VydmVyLnByaW50VXJscygpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24ga2xvZWtCdWlsZChcbiAgZmxhZ3M6IFR5cGVkRmxhZ3M8e1xuICAgIGVtcHR5T3V0RGlyOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbic7XG4gICAgICBhbGlhczogc3RyaW5nO1xuICAgICAgZGVmYXVsdDogdHJ1ZTtcbiAgICB9O1xuICAgIGJhc2U6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnO1xuICAgICAgYWxpYXM6IHN0cmluZztcbiAgICAgIGRlZmF1bHQ6IHN0cmluZztcbiAgICB9O1xuICAgIG1vZGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnO1xuICAgICAgYWxpYXM6IHN0cmluZztcbiAgICAgIGRlZmF1bHQ/OiBzdHJpbmc7XG4gICAgfTtcbiAgfT4sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgZGVmaW5lS2xvZWtWaXRlQ29uZmlnKHtcbiAgICBjb21tYW5kOiAnYnVpbGQnLFxuICAgIG1vZGU6ICdwcm9kdWN0aW9uJyxcbiAgfSk7XG5cbiAgLy8gRW1wdHkgb3V0IHRoZSBPdXRwdXQgZGlyIGJlZm9yZSBidWlsZGluZz9cbiAgaWYgKGZsYWdzLmVtcHR5T3V0RGlyICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25maWcuYnVpbGQgPSB7XG4gICAgICAuLi5jb25maWcuYnVpbGQsXG4gICAgICBlbXB0eU91dERpcjogZmxhZ3MuZW1wdHlPdXREaXIsXG4gICAgfTtcbiAgfVxuXG4gIC8vIERpZmZlcmVudCBiYXNlIHBhdGhcbiAgaWYgKHR5cGVvZiBmbGFncy5iYXNlID09PSAnc3RyaW5nJykge1xuICAgIGNvbmZpZy5iYXNlID0gZmxhZ3MuYmFzZTtcbiAgfVxuXG4gIC8vIERpZmZlcmVudCBtb2RlXG4gIGlmICh0eXBlb2YgZmxhZ3MubW9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25maWcubW9kZSA9IGZsYWdzLm1vZGU7XG4gIH1cblxuICBhd2FpdCBidWlsZCh7XG4gICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgLi4uY29uZmlnLFxuICB9KTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQVVBLFNBQVMsaUJBQWlCLENBQ3hCLE9BQXFCLEVBQ3JCLElBQWtCLEVBQ2xCLFNBQWlDLEVBQUE7SUFFakMsTUFBTSxRQUFRLEdBQTRCLEVBQUUsQ0FBQzs7QUFHN0MsSUFBQSxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRTtRQUNoQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUc7WUFDbkIsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3BCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUNsQixDQUFDO0FBQ0gsS0FBQTtBQUVELElBQUEsT0FBTyxRQUFtQyxDQUFDO0FBQzdDLENBQUM7QUFFSyxTQUFVLHlCQUF5QixDQUN2QyxlQUFxQyxFQUFBOztJQUdyQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUMzQixlQUFlLENBQUMsT0FBTyxDQUNFLENBQUM7QUFDNUIsSUFBQSxNQUFNLEVBQUMsT0FBTyxFQUFDLEdBQUcsZUFBZSxDQUFDO0FBQ2xDLElBQUEsTUFBTSxXQUFXLEdBQXNCO0FBQ3JDLFFBQUEsV0FBVyxFQUFFLE9BQU87QUFDcEIsUUFBQSxLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7SUFFRixLQUFLLE1BQU0sSUFBSSxJQUFJLGVBQWUsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO1FBQzlDLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7O0FBRzdELFFBQUEsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElB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
534
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy9nYW1lLnRzIiwiLi4vc3JjL3V0aWxzL2J1aWxkLnRzIiwiLi4vc3JjL3V0aWxzL2luZGV4LnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2hhbmRsZWJhcnMtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2h0bWwtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYmFzZS50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvcGx1Z2lucy9zZXJ2ZS50cyIsIi4uL3NyYy9jb25maWcudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB0eXBlIHtcbiAgR2FtZVNldHRpbmdzLFxuICBHYW1lU2V0dGluZ3NQcm9wZXJ0eSxcbiAgR2FtZXNTZXR0aW5ncyxcbiAgR2FtZXNTZXR0aW5nc0RhdGEsXG4gIEtsb2VrVml0ZUNvbmZpZyxcbiAgUGFja2FnZUdhbWVzU2V0dGluZ3MsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmZ1bmN0aW9uIG1lcmdlR2FtZVNldHRpbmdzKFxuICBnZW5lcmljOiBHYW1lU2V0dGluZ3MsXG4gIGdhbWU6IEdhbWVTZXR0aW5ncyxcbiAgaW5mb1R5cGVzOiBHYW1lU2V0dGluZ3NQcm9wZXJ0eVtdLFxuKTogR2FtZVNldHRpbmdzIHtcbiAgY29uc3Qgc2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgLy8gQWxsZSBwcm9wcyBvcCDDqcOpbiBsZXZlbCBkaWVwIG1lcmdlblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGluZm9UeXBlcykge1xuICAgIHNldHRpbmdzW3Byb3BlcnR5XSA9IHtcbiAgICAgIC4uLmdlbmVyaWNbcHJvcGVydHldLFxuICAgICAgLi4uZ2FtZVtwcm9wZXJ0eV0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5ncyBhcyB1bmtub3duIGFzIEdhbWVTZXR0aW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGFja2FnZUdhbWVzU2V0dGluZ3MoXG4gIHBhY2thZ2VTZXR0aW5nczogUGFja2FnZUdhbWVzU2V0dGluZ3MsXG4pOiBHYW1lc1NldHRpbmdzRGF0YSB7XG4gIC8vIE1lcmdlIHNldHRpbmdzXG4gIGNvbnN0IGluZm9UeXBlcyA9IE9iamVjdC5rZXlzKFxuICAgIHBhY2thZ2VTZXR0aW5ncy5nZW5lcmljLFxuICApIGFzIEdhbWVTZXR0aW5nc1Byb3BlcnR5W107XG4gIGNvbnN0IHtnZW5lcmljfSA9IHBhY2thZ2VTZXR0aW5ncztcbiAgY29uc3QgYWxsU2V0dGluZ3M6IEdhbWVzU2V0dGluZ3NEYXRhID0ge1xuICAgIGRldmVsb3BtZW50OiBnZW5lcmljLFxuICAgIGdhbWVzOiB7fSxcbiAgfTtcblxuICBmb3IgKGNvbnN0IGdhbWUgb2YgcGFja2FnZVNldHRpbmdzLmdhbWVzID8/IFtdKSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBtZXJnZUdhbWVTZXR0aW5ncyhnZW5lcmljLCBnYW1lLCBpbmZvVHlwZXMpO1xuXG4gICAgLy8gWm9yZyBlciB2b29yIGRhdCBwYWdlIGFsdGlqZCBnZXpldCBpc1xuICAgIGNvbnN0IHBhZ2VJZCA9IHNldHRpbmdzLmluZm8ucGFnZSA/PyBzZXR0aW5ncy5pbmZvLmlkID8/ICd1bmtub3duJztcbiAgICBzZXR0aW5ncy5pbmZvLnBhZ2UgPSBwYWdlSWQ7XG5cbiAgICAvLyBTbGEgc2V0dGluZ3Mgb3Agb25kZXIgcGFnZSBpZFxuICAgIGFsbFNldHRpbmdzLmdhbWVzW3BhZ2VJZF0gPSBzZXR0aW5ncztcbiAgfVxuXG4gIHJldHVybiBhbGxTZXR0aW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhUb0dhbWVEYXRhKFxuICBmdWxsRmlsZVBhdGg6IHN0cmluZyxcbiAgc2V0dGluZ3M6IEdhbWVzU2V0dGluZ3MsXG4pOiBHYW1lU2V0dGluZ3MgfCB1bmRlZmluZWQge1xuICAvLyBEZXRlcm1pbmUgZmlsZW5hbWUgd2l0aG91dCBleHRlbnNpb25cbiAgbGV0IGZpbGVQYXRoID0gcGF0aC5iYXNlbmFtZShmdWxsRmlsZVBhdGgsIHBhdGguZXh0bmFtZShmdWxsRmlsZVBhdGgpKTtcblxuICAvLyBEZXRlcm1pbmUgZGlyICYgcmVtb3ZlIGxlYWRpbmcgc2xhc2hcbiAgbGV0IGZpbGVEaXJlY3RvcnkgPSBwYXRoLmRpcm5hbWUoZnVsbEZpbGVQYXRoKTtcbiAgZmlsZURpcmVjdG9yeSA9IGZpbGVEaXJlY3RvcnkucmVwbGFjZSgvXlxcLysvZywgJycpO1xuXG4gIGlmIChmaWxlRGlyZWN0b3J5KSB7XG4gICAgZmlsZVBhdGggPSBgJHtmaWxlRGlyZWN0b3J5fS8ke2ZpbGVQYXRofWA7XG4gIH1cblxuICByZXR1cm4gc2V0dGluZ3NbZmlsZVBhdGhdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFnZVRvU2VydmUoXG4gIGNvbmZpZzogS2xvZWtWaXRlQ29uZmlnLFxuICBzZXR0aW5nczogR2FtZXNTZXR0aW5ncyxcbik6IHN0cmluZyB7XG4gIC8vIEhvZXZlZWwgcGFnZXMgemlqbiBlcj9cbiAgY29uc3QgcGFnZUlkcyA9IE9iamVjdC5rZXlzKHNldHRpbmdzKTtcbiAgY29uc3QgcGFnZSA9IHBhZ2VJZHMubGVuZ3RoID09PSAxID8gcGFnZUlkc1swXSA6ICdkZXZlbG9wbWVudCc7XG5cbiAgcmV0dXJuIHBhdGgucG9zaXguam9pbihcbiAgICBjb25maWcuYnVpbGQuYmFzZVBhdGgsXG4gICAgYCR7cGFnZX0uaHRtbCR7Y29uZmlnLmRldi5zZXJ2ZVBhcmFtcyA/PyAnJ31gLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFnZUlkRnJvbVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbGV0IHBhdGhuYW1lOiBzdHJpbmc7XG5cbiAgdHJ5IHtcbiAgICBwYXRobmFtZSA9IG5ldyBVUkwodXJsLCAnaHR0cHM6Ly9zdHVkaW9rbG9lay5ubCcpLnBhdGhuYW1lO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBJZiByZXF1ZXN0IGlzIG5vdCBodG1sICwgZGlyZWN0bHkgcmV0dXJuIG5leHQoKVxuICBpZiAoIXBhdGhuYW1lLmVuZHNXaXRoKCcuaHRtbCcpICYmIHBhdGhuYW1lICE9PSAnLycpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBQYWdpbmEgaWQgb3B2cmFnZW5cbiAgY29uc3QgaW5kZXggPSBwYXRobmFtZS5sYXN0SW5kZXhPZignLycpO1xuICBjb25zdCBmaWxlTmFtZSA9IGluZGV4ID09PSAtMSA/IHBhdGhuYW1lIDogcGF0aG5hbWUuc2xpY2UoaW5kZXggKyAxKTtcblxuICByZXR1cm4gZmlsZU5hbWUucmVwbGFjZSgnLmh0bWwnLCAnJyk7XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUge0J1aWxkT3B0aW9uc30gZnJvbSAndml0ZSc7XG5pbXBvcnQgdHlwZSB7Vml0ZU9wdGlvbnN9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVCdWlsZENvbmZpZyhvcHRpb25zOiBWaXRlT3B0aW9ucyk6IEJ1aWxkT3B0aW9ucyB7XG4gIGNvbnN0IGlucHV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgZm9yIChjb25zdCBnYW1lSWQgb2YgT2JqZWN0LmtleXMob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpIHtcbiAgICBpbnB1dFtnYW1lSWRdID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMucm9vdCwgYCR7Z2FtZUlkfS5odG1sYCk7XG4gIH1cblxuICAvLyBMaWJzIGRpZSBhcGFydGUganMga3JpamdlbjpcbiAgY29uc3QgdmVuZG9yQ2h1bmtzID0gWydmaXJlYmFzZScsICdwaXhpJywgJ2xvZGFzaCcsICdjYXBhY2l0b3InLCAnZ3NhcCcsICdzdHVkaW9rbG9layddO1xuXG4gIHJldHVybiB7XG4gICAgcmVwb3J0Q29tcHJlc3NlZFNpemU6IGZhbHNlLFxuICAgIGNodW5rU2l6ZVdhcm5pbmdMaW1pdDogMTAwMCxcbiAgICBvdXREaXI6ICcuLi9wdWJsaWMnLFxuICAgIGFzc2V0c0RpcjogJ2dlbmVyYXRlZCcsXG4gICAgcm9sbHVwT3B0aW9uczoge1xuICAgICAgaW5wdXQsXG4gICAgICBvdXRwdXQ6IHtcbiAgICAgICAgbWFudWFsQ2h1bmtzKGlkKSB7XG4gICAgICAgICAgaWYgKGlkLmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGlkXG4gICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgIC5zcGxpdCgnbm9kZV9tb2R1bGVzLycpWzFdXG4gICAgICAgICAgICAgIC5zcGxpdCgnLycpWzBdXG4gICAgICAgICAgICAgIC50b1N0cmluZygpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZlbmRvckNodW5rcykge1xuICAgICAgICAgICAgICBpZiAobmFtZS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIiwiaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7bm9ybWFsaXplUGF0aH0gZnJvbSAndml0ZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkSlNPTihwYXRoOiBzdHJpbmcpOiB1bmtub3duIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhID0gcmVhZEZpbGVTeW5jKHBhdGgpO1xuICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEudG9TdHJpbmcoKSk7XG4gIH0gY2F0Y2gge1xuICAgIC8vXG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBjb25zdCBjd2QgPSBub3JtYWxpemVQYXRoKHByb2Nlc3MuY3dkKCkpO1xuXG5leHBvcnQgKiBmcm9tICcuL2dhbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZCc7XG4iLCJpbXBvcnQgb3MgZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUge1BsdWdpbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgdml0ZUhhbmRsZWJhcnNQbHVnaW4gZnJvbSAndml0ZS1wbHVnaW4taGFuZGxlYmFycyc7XG5pbXBvcnQgdHlwZSB7Vml0ZU9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtnZXRQYWdlSWRGcm9tVXJsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8vIEhlbHBlcnMgdm9vciBoYW5kbGViYXJzXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlYmFyc1BsdWdpbihcbiAgcGFydGlhbERpcmVjdG9yeTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG9wdGlvbnM6IFZpdGVPcHRpb25zLFxuKTogUGx1Z2luIHtcbiAgcmV0dXJuIHZpdGVIYW5kbGViYXJzUGx1Z2luKHtcbiAgICBwYXJ0aWFsRGlyZWN0b3J5LFxuXG4gICAgaGVscGVyczoge1xuICAgICAganNvbjogKG9iamVjdDogYW55LCBpbmRlbnQgPSAwKSA9PlxuICAgICAgICBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgaW5kZW50KSxcbiAgICAgIGNvbmNhdDogKC4uLmFyZ3VtZW50c186IGFueVtdKSA9PiBhcmd1bWVudHNfLnNsaWNlKDAsIC0xKS5qb2luKCcnKSxcbiAgICAgIGVxOiAoYTogYW55LCBiOiBhbnkpID0+IGEgPT09IGIsXG4gICAgICBuZXE6IChhOiBhbnksIGI6IGFueSkgPT4gYSAhPT0gYixcbiAgICAgIGlzZGVmaW5lZDogKHZhbHVlOiB1bmRlZmluZWQpID0+IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAncmVzb2x2ZS1yb290JyhwOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gVGlqZGVsaWprZSBoYWNrIHZvb3IgYnVnIGluIGhhbmRsZWJhcnMgcGx1Z2luXG4gICAgICAgIC8vIHppZSBvb2sgaHR0cHM6Ly9naXRodWIuY29tL2FsZXhsYWZyb3NjaWEvdml0ZS1wbHVnaW4taGFuZGxlYmFycy9wdWxsLzEyOVxuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBwKTtcbiAgICAgICAgcmV0dXJuIG9zLnBsYXRmb3JtKCkgPT09ICd3aW4zMicgPyBgLyR7cmVzb2x2ZWRQYXRofWAgOiByZXNvbHZlZFBhdGg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb250ZXh0KHBhZ2VQYXRoOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgICBjb25zdCBnYW1lSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHBhZ2VQYXRoKTtcblxuICAgICAgaWYgKCFnYW1lSWQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZ2FtZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIFBhZ2luYSBzZXR0aW5ncyB0ZXJ1Z2dldmVuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW52OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgIGRhdGE6IG9wdGlvbnMuc2V0dGluZ3MuZGV2ZWxvcG1lbnQsXG4gICAgICAgICAgZ2FtZXM6IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIE9wIGJhc2lzIHZhbiBwYWQgZGF0YSBiZXBhbGVuXG4gICAgICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXNbZ2FtZUlkXTtcblxuICAgICAgLy8gUGFnaW5hIHNldHRpbmdzIHRlcnVnZ2V2ZW5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudjogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgZGF0YTogc2V0dGluZ3MgPz8ge30sXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xufVxuIiwiaW1wb3J0IHtleGlzdHNTeW5jLCBwcm9taXNlc30gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUge0NvbmZpZ0VudiwgUGx1Z2luLCBVc2VyQ29uZmlnLCBWaXRlRGV2U2VydmVyfSBmcm9tICd2aXRlJztcbmltcG9ydCB0eXBlIHtHYW1lc1NldHRpbmdzfSBmcm9tICcuLi8uLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7Y3dkLCBnZXRQYWdlSWRGcm9tVXJsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmNvbnN0IFBBR0VfVEVNUExBVEUgPSAne3s+IGdhbWUgZGF0YT1kYXRhfX0nO1xuY29uc3QgREVWRUxPUE1FTlRfVEVNUExBVEUgPSAne3s+IGRldmVsb3BtZW50IGRhdGE9ZGF0YX19JztcblxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyVGVtcG9yYXJ5RmlsZShmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIEJlc3RhYXQgZGllIGZpbGUgbm9nIG5pZXQ/XG4gIGlmICghZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAvLyBBYW5tYWtlblxuICAgIGF3YWl0IHByb21pc2VzLndyaXRlRmlsZShmaWxlUGF0aCwgUEFHRV9URU1QTEFURSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh0bWxQbHVnaW4oZ2FtZXM6IEdhbWVzU2V0dGluZ3MpOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICd2aXRlLXBsdWdpbi1rbG9lay1odG1sJyxcbiAgICBlbmZvcmNlOiAncHJlJyxcblxuICAgIGFzeW5jIGNvbmZpZyhfY29uZmlnOiBVc2VyQ29uZmlnLCBlbnZpcm9ubWVudDogQ29uZmlnRW52KSB7XG4gICAgICAvLyBCaWogZWVuIGJ1aWxkIG1ha2VuIHdlIHRpamRlbGlqayBmaWxlcyBhYW5cbiAgICAgIGlmIChlbnZpcm9ubWVudC5jb21tYW5kID09PSAnYnVpbGQnKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnM6IEFycmF5PFByb21pc2U8dm9pZD4+ID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgICAgLy8gUGFkIG5hYXIgZmlsZVxuICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsIGAke3BhZ2VJZH0uaHRtbGApO1xuICAgICAgICAgIGFjdGlvbnMucHVzaChyZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChhY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgY29uZmlndXJlU2VydmVyKHNlcnZlcjogVml0ZURldlNlcnZlcikge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgLy8gWm9yZyBlciB2b29yIGRhdCB0aWpkZW5zIGRldmVsb3BtZW50IGRlIHBhZ2luYSBnZS1yZW5kZXJlZCB0ZXJ1ZyBnZWdldmVuIHdvcmR0IHdvcmR0XG4gICAgICAgIHNlcnZlci5taWRkbGV3YXJlcy51c2UoJy8nLCBhc3luYyAocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpID0+IHtcbiAgICAgICAgICBjb25zdCB1cmwgPSByZXF1ZXN0Py51cmwgPz8gJyc7XG4gICAgICAgICAgY29uc3QgcGFnZUlkID0gZ2V0UGFnZUlkRnJvbVVybCh1cmwpO1xuXG4gICAgICAgICAgaWYgKCFwYWdlSWQpIHtcbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFnZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAvLyBEZXZlbG9wbWVudD8gZ2VlZiB0ZXJ1Zy4uLlxuICAgICAgICAgICAgcmVzcG9uc2UuZW5kKFxuICAgICAgICAgICAgICBhd2FpdCBzZXJ2ZXIudHJhbnNmb3JtSW5kZXhIdG1sKFxuICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICBERVZFTE9QTUVOVF9URU1QTEFURSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0Lm9yaWdpbmFsVXJsLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKE9iamVjdC5rZXlzKGdhbWVzKS5pbmNsdWRlcyhwYWdlSWQpKSB7XG4gICAgICAgICAgICAvLyBCZXN0YWFuZGUgZ2FtZT8gem9yZyBlciB2b29yIGRhdCBkZSB0ZW1wbGF0ZSBnZS1yZW5kZXJlZCB3b3JkdFxuICAgICAgICAgICAgcmVzcG9uc2UuZW5kKFxuICAgICAgICAgICAgICBhd2FpdCBzZXJ2ZXIudHJhbnNmb3JtSW5kZXhIdG1sKFxuICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICBQQUdFX1RFTVBMQVRFLFxuICAgICAgICAgICAgICAgIHJlcXVlc3Qub3JpZ2luYWxVcmwsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBOaWtzIGdldm9uZGVuXG4gICAgICAgICAgICByZXNwb25zZS5lbmQoJzQwNCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0sXG5cbiAgICBhc3luYyBjbG9zZUJ1bmRsZSgpIHtcbiAgICAgIC8vIFZlcndpamRlciBkZSBhYW5nZW1hYWt0ZSBmaWxlc1xuICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8UHJvbWlzZTx2b2lkPj4gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcGFnZUlkIG9mIE9iamVjdC5rZXlzKGdhbWVzKSkge1xuICAgICAgICAvLyBQYWQgbmFhciBmaWxlXG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsIGAke3BhZ2VJZH0uaHRtbGApO1xuICAgICAgICBpZiAoZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHByb21pc2VzLnJtKGZpbGVQYXRoKSk7XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvL1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChhY3Rpb25zKTtcbiAgICB9LFxuICB9O1xufVxuIiwiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7c3ZlbHRlLCB2aXRlUHJlcHJvY2Vzc30gZnJvbSAnQHN2ZWx0ZWpzL3ZpdGUtcGx1Z2luLXN2ZWx0ZSc7XG5pbXBvcnQge3R5cGUgUGx1Z2luLCB0eXBlIFBsdWdpbk9wdGlvbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgdHNjb25maWdQYXRoc1BsdWdpbiBmcm9tICd2aXRlLXRzY29uZmlnLXBhdGhzJztcbmltcG9ydCB7dHlwZSBWaXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2N3ZH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtoYW5kbGViYXJzUGx1Z2lufSBmcm9tICcuL2xpYi9oYW5kbGViYXJzLXBsdWdpbic7XG5pbXBvcnQge2h0bWxQbHVnaW59IGZyb20gJy4vbGliL2h0bWwtcGx1Z2luJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJhc2VQbHVnaW5zKFxuICBvcHRpb25zOiBWaXRlT3B0aW9ucyxcbik6IEFycmF5PFBsdWdpbiB8IFBsdWdpbk9wdGlvbj4ge1xuICByZXR1cm4gW1xuICAgIGh0bWxQbHVnaW4ob3B0aW9ucy5zZXR0aW5ncy5nYW1lcyksXG5cbiAgICAuLi5zdmVsdGUoe1xuICAgICAgcHJlcHJvY2Vzczp2aXRlUHJlcHJvY2VzcygpLFxuXG4gICAgICBvbndhcm4od2FybmluZywgd2Fybikge1xuICAgICAgICBpZiAoIXdhcm4pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBObyBhMTF5IHdhcm5pbmdzLi4uXG4gICAgICAgIGlmICh3YXJuaW5nLmNvZGUuc3RhcnRzV2l0aCgnYTExeS0nKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHdhcm4od2FybmluZyk7XG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgdHNjb25maWdQYXRoc1BsdWdpbih7XG4gICAgICByb290OiBwYXRoLnJlc29sdmUoY3dkKSxcbiAgICAgIGV4dGVuc2lvbnM6IFsnLnRzJywgJy5qc29uJ10sXG4gICAgICBsb29zZTogdHJ1ZSxcbiAgICB9KSxcbiAgXG4gICAgaGFuZGxlYmFyc1BsdWdpbihvcHRpb25zLmNvbmZpZy5zZXJ2ZS5wYXJ0aWFscywgb3B0aW9ucyksXG4gIF07XG59XG4iLCJpbXBvcnQgdHlwZSB7Q29uZmlnRW52LCBQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGltYWdlbWluUGx1Z2luMiBmcm9tICd2aXRlLXBsdWdpbi1pbWFnZW1pbic7XG5pbXBvcnQgdHlwZSB7SW1hZ2VRdWFsaXR5Q29uZmlnfSBmcm9tICcuLi8uLi91dGlscy9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlbWluUGx1Z2luKFxuICBlbnZpcm9ubWVudDogQ29uZmlnRW52LFxuICBvcHRpb25zOiBJbWFnZVF1YWxpdHlDb25maWcsXG4pOiBQbHVnaW4ge1xuICByZXR1cm4gaW1hZ2VtaW5QbHVnaW4yKHtcbiAgICBkaXNhYmxlOiBlbnZpcm9ubWVudC5tb2RlICE9PSAncHJvZHVjdGlvbicsXG4gICAgbW96anBlZzoge1xuICAgICAgcXVhbGl0eTogb3B0aW9ucz8uanBlZyA/PyA4MCxcbiAgICB9LFxuICAgIHBuZ3F1YW50OiB7XG4gICAgICBzdHJpcDogdHJ1ZSxcbiAgICAgIHNwZWVkOiAyLFxuICAgICAgZGl0aGVyaW5nOiAwLjI1LFxuICAgICAgcXVhbGl0eTogb3B0aW9ucz8ucG5nID8/IFswLjUsIDAuN10sXG4gICAgfSxcbiAgfSkgYXMgUGx1Z2luO1xufVxuIiwiaW1wb3J0IHR5cGUge1BsdWdpbiwgUmVzb2x2ZWRDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHR5cGUge0dhbWVTZXR0aW5ncywgR2FtZXNTZXR0aW5nc30gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5cbmZ1bmN0aW9uIHJlbmRlckdhbWVNYW5pZmVzdChcbiAgcGFnZUlkOiBzdHJpbmcsXG4gIHNldHRpbmdzOiBHYW1lU2V0dGluZ3MsXG4gIGNvbmZpZzogUmVzb2x2ZWRDb25maWcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBtYW5pZmVzdCA9IHtcbiAgICBzaG9ydF9uYW1lOiBgJHtzZXR0aW5ncy5tZXRhLmFwcHRpdGxlfWAsXG4gICAgbmFtZTogYCR7c2V0dGluZ3MubWV0YS50aXRsZX1gLFxuICAgIGRlc2NyaXB0aW9uOiBgJHtzZXR0aW5ncy5tZXRhLmRlc2NyaXB0aW9ufWAsXG4gICAgc2NvcGU6IGAke2NvbmZpZy5iYXNlfSR7cGFnZUlkfS5odG1sYCxcbiAgICBzdGFydF91cmw6IGAke2NvbmZpZy5iYXNlfSR7cGFnZUlkfS5odG1sYCxcbiAgICBkaXNwbGF5OiAnZnVsbHNjcmVlbicsXG4gICAgb3JpZW50YXRpb246IGAke3NldHRpbmdzLm9wdGlvbnMub3JpZW50YXRpb24gPz8gJ2xhbmRzY2FwZSd9YCxcbiAgICBpY29uczogW1xuICAgICAge1xuICAgICAgICBzcmM6IGAke2NvbmZpZy5iYXNlfW1ldGEvJHtzZXR0aW5ncy5pbmZvLmlkfS9pY29ucy9jaHJvbWUtdG91Y2gtaWNvbi0xOTJ4MTkyLnBuZ2AsXG4gICAgICAgIHR5cGU6ICdpbWFnZS9wbmcnLFxuICAgICAgICBzaXplczogJzE5MngxOTInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvaWNvbi5wbmdgLFxuICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc2l6ZXM6ICcxMDI0eDEwMjQnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGJhY2tncm91bmRfY29sb3I6IGAke3NldHRpbmdzLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yfWAsXG4gICAgdGhlbWVfY29sb3I6IGAke3NldHRpbmdzLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yfWAsXG4gIH07XG5cbiAgcmV0dXJuIGAke0pTT04uc3RyaW5naWZ5KG1hbmlmZXN0LCBudWxsLCAyKX1cXG5gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFuaWZlc3RQbHVnaW4oZ2FtZXM6IEdhbWVzU2V0dGluZ3MpOiBQbHVnaW4ge1xuICBsZXQgY29uZmlnOiBSZXNvbHZlZENvbmZpZztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICd2aXRlLXBsdWdpbi1rbG9lay1tYW5pZmVzdCcsXG4gICAgZW5mb3JjZTogJ3Bvc3QnLFxuICAgIGFwcGx5OiAnYnVpbGQnLFxuICAgIGFzeW5jIGNvbmZpZ1Jlc29sdmVkKHJlc29sdmVkQ29uZmlnOiBSZXNvbHZlZENvbmZpZykge1xuICAgICAgY29uZmlnID0gcmVzb2x2ZWRDb25maWc7XG4gICAgfSxcbiAgICBnZW5lcmF0ZUJ1bmRsZShfLCBidW5kbGUpIHtcbiAgICAgIC8vIFZvb3IgaWVkZXJlIGFwcCBlZW4gbWFuaWZlc3QgbWFrZW46XG4gICAgICBmb3IgKGNvbnN0IFtwYWdlSWQsIHNldHRpbmdzXSBvZiBPYmplY3QuZW50cmllcyhnYW1lcykpIHtcbiAgICAgICAgYnVuZGxlW2Ake3BhZ2VJZH0ud2VibWFuaWZlc3RgXSA9IHtcbiAgICAgICAgICBpc0Fzc2V0OiB0cnVlLFxuICAgICAgICAgIHR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgbmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgIHNvdXJjZTogcmVuZGVyR2FtZU1hbmlmZXN0KHBhZ2VJZCwgc2V0dGluZ3MsIGNvbmZpZyksXG4gICAgICAgICAgZmlsZU5hbWU6IGAke3BhZ2VJZH0ud2VibWFuaWZlc3RgLFxuICAgICAgICB9O1xuXG4gICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgXSA9IHtcbiAgICAgICAgICBpc0Fzc2V0OiB0cnVlLFxuICAgICAgICAgIHR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgbmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgIHNvdXJjZTogXCJzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rpb24oKSB7IHJldHVybjsgfSk7XCIsXG4gICAgICAgICAgZmlsZU5hbWU6IGAke3BhZ2VJZH0tc2VydmljZXdvcmtlci5qc2AsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCBsZWdhY3lQbHVnaW4gZnJvbSAnQHZpdGVqcy9wbHVnaW4tbGVnYWN5JztcbmltcG9ydCB0eXBlIHtQbHVnaW4sIFBsdWdpbk9wdGlvbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgYmFubmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWJhbm5lcic7XG5pbXBvcnQge2NyZWF0ZUh0bWxQbHVnaW59IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHR5cGUge1ZpdGVPcHRpb25zfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7aW1hZ2VtaW5QbHVnaW59IGZyb20gJy4vbGliL2ltYWdlLXBsdWdpbic7XG5pbXBvcnQge21hbmlmZXN0UGx1Z2lufSBmcm9tICcuL2xpYi9tYW5pZmVzdC1wbHVnaW4nO1xuXG4vLyBCdWlsZCBwbHVnaW5zXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQbHVnaW5zKFxuICBvcHRpb25zOiBWaXRlT3B0aW9ucyxcbik6IEFycmF5PFBsdWdpbiB8IFBsdWdpbk9wdGlvbj4ge1xuICAvLyBObyBidWlsZD8gbm8gcGx1Z2lucy4uXG4gIGlmIChvcHRpb25zLmVudmlyb25tZW50LmNvbW1hbmQgIT09ICdidWlsZCcpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwbHVnaW5zOiBBcnJheTxQbHVnaW4gfCBQbHVnaW5PcHRpb24+ID0gW107XG5cbiAgaWYgKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmxlZ2FjeSkge1xuICAgIC8vIE1ha2Ugc3VyZSB0aGUgcGFnZSB3b3JrcyBpbiBvbGRlciBicm93c2Vyc1xuICAgIHBsdWdpbnMucHVzaChcbiAgICAgIC4uLmxlZ2FjeVBsdWdpbih7XG4gICAgICAgIHRhcmdldHM6IChvcHRpb25zLmNvbmZpZy5idWlsZC5icm93c2Vyc2xpc3QgYXMgc3RyaW5nW10pID8/ICdkZWZhdWx0cycsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgcGFnZXMgPSBPYmplY3Qua2V5cyhvcHRpb25zLnNldHRpbmdzLmdhbWVzKS5tYXAoKGdhbWVJZCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBmaWxlbmFtZTogYCR7Z2FtZUlkfS5odG1sYCxcbiAgICAgIHRlbXBsYXRlOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgIH07XG4gIH0pO1xuXG4gIHBsdWdpbnMucHVzaChcbiAgICAvLyBNaW5pZnkgaW1hZ2UgYXNzZXRzXG4gICAgaW1hZ2VtaW5QbHVnaW4ob3B0aW9ucy5lbnZpcm9ubWVudCwgb3B0aW9ucy5jb25maWcuYnVpbGQuaW1hZ2VRdWFsaXR5KSxcblxuICAgIC8vIE1ha2UgdGhlIGh0bWwgb3V0cHV0IHNtYWxsZXJcbiAgICAuLi4oY3JlYXRlSHRtbFBsdWdpbih7bWluaWZ5OiB0cnVlLCBwYWdlc30pIGFzIFBsdWdpbltdKSxcblxuICAgIC8vIEFkZCBhIGJhbm5lciB0byBnZW5lcmF0ZWQganMvY3NzXG4gICAgYmFubmVyUGx1Z2luKFxuICAgICAgYFxuICAgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC5cblxuICAgICAgICAgX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAgICBfICAgICAgICAgICAgX1xuICAgICAgICAvICApICAgICAgICAgICAgICB8ICBvICAgICAgICAgL3wgICAvIHwgfCAgICAgICAgICB8IHxcbiAgICAgICAgXFxcXF9fIF98XyAgICAgICAgIF9ffCAgICAgIF9fICAgICB8X18vICB8IHwgIF9fICAgXyAgfCB8XG4gICAgICAgICAgIFxcXFwgfCAgfCAgIHwgIC8gIHwgIHwgIC8gIFxcXFxfICAgfCBcXFxcICAgfC8gIC8gIFxcXFxffC8gIHwvXylcbiAgICAgICAoX19fLyB8Xy8gXFxcXF8vfF8vXFxcXF8vfF8vfF8vXFxcXF9fLyAgICB8ICBcXFxcXy98X18vXFxcXF9fLyB8X18vfCBcXFxcXy9cblxuICAgICAgICBDb25jZXB0LCBvbnR3ZXJwICYgb250d2lra2VsaW5nXG4gICAgICAgIGh0dHBzOi8vc3R1ZGlva2xvZWsubmxcblxuICAgICAgICBTdHVkaW8gS2xvZWsg4p2kIFBpeGlKUywgR1NBUCAmIGhvd2xlci5qc1xuXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgYCxcbiAgICApLFxuICApO1xuXG4gIC8vIENyZWF0ZSBhIG1hbmlmZXN0IGFuZCBtaW5pbWFsIHdlYndvcmtlciBmb3IgZXZlcnkgZ2FtZVxuICBpZiAob3B0aW9ucy5jb25maWcuYnVpbGQubWFuaWZlc3QpIHtcbiAgICBwbHVnaW5zLnB1c2gobWFuaWZlc3RQbHVnaW4ob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpO1xuICB9XG5cbiAgcmV0dXJuIHBsdWdpbnM7XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHt0eXBlIFBsdWdpbiwgdHlwZSBQbHVnaW5PcHRpb259IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGZ1bGxSZWxvYWQgZnJvbSAndml0ZS1wbHVnaW4tZnVsbC1yZWxvYWQnO1xuaW1wb3J0IG1rY2VydCBmcm9tICd2aXRlLXBsdWdpbi1ta2NlcnQnO1xuaW1wb3J0IGNoZWNrZXIgZnJvbSAndml0ZS1wbHVnaW4tY2hlY2tlcic7XG5pbXBvcnQge2N3ZH0gZnJvbSAnLi4vdXRpbHMnO1xuZXhwb3J0IGZ1bmN0aW9uIHNlcnZlUGx1Z2lucygpOiBBcnJheTxQbHVnaW4gfCBQbHVnaW5PcHRpb24+IHtcbiAgcmV0dXJuIFtcbiAgICBmdWxsUmVsb2FkKFsnc2NyaXB0LyoqLyoudHMnLCAnc3ZlbHRlLyoqLyouc3ZlbHRlJ10sIHtcbiAgICAgIHJvb3Q6IHBhdGguam9pbihwYXRoLnJlc29sdmUoY3dkKSwgJ3NvdXJjZScpLFxuICAgICAgbG9nOiB0cnVlLFxuICAgICAgYWx3YXlzOiB0cnVlLFxuICAgIH0pIGFzIFBsdWdpbixcblxuICAgIG1rY2VydCgpLFxuXG4gICAgY2hlY2tlcih7XG4gICAgICB0eXBlc2NyaXB0OiB7XG4gICAgICAgIGJ1aWxkTW9kZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSksXG4gIF07XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtmaWxlVVJMVG9QYXRofSBmcm9tICdub2RlOnVybCc7XG5pbXBvcnQgdHlwZSB7Q29uZmlnRW52LCBVc2VyQ29uZmlnfSBmcm9tICd2aXRlJztcbmltcG9ydCB7YmFzZVBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucy9iYXNlJztcbmltcG9ydCB7YnVpbGRQbHVnaW5zfSBmcm9tICcuL3BsdWdpbnMvYnVpbGQnO1xuaW1wb3J0IHtzZXJ2ZVBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucy9zZXJ2ZSc7XG5pbXBvcnQge1xuICBjd2QsXG4gIGRlZmluZUJ1aWxkQ29uZmlnLFxuICBnZXRQYWdlVG9TZXJ2ZSxcbiAgcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbiAgcmVhZEpTT04sXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHR5cGUge1xuICBLbG9la1ZpdGVDb25maWcsXG4gIFBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICBWaXRlT3B0aW9ucyxcbn0gZnJvbSAnLi91dGlscy9pbnRlcmZhY2VzJztcblxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWZpbmVLbG9la1ZpdGVDb25maWcoXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4pOiBQcm9taXNlPFVzZXJDb25maWc+IHtcbiAgY29uc3QgcGtnID0gcmVhZEpTT04ocGF0aC5yZXNvbHZlKGN3ZCwgJ3BhY2thZ2UuanNvbicpKSBhcyBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHVua25vd25cbiAgPjtcbiAgY29uc3Qga2xvZWtDb25maWcgPSBwa2cudml0ZSBhcyBLbG9la1ZpdGVDb25maWc7XG4gIGNvbnN0IGJyb3dzZXJzbGlzdCA9IHBrZy5icm93c2Vyc2xpc3QgYXMgc3RyaW5nIHwgc3RyaW5nW107XG4gIGNvbnN0IG9wdGlvbnM6IFZpdGVPcHRpb25zID0ge1xuICAgIHJvb3Q6IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnKSxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBzZXR0aW5nczogcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhwa2cuc2V0dGluZ3MgYXMgUGFja2FnZUdhbWVzU2V0dGluZ3MpLFxuICAgIGNvbmZpZzoge1xuICAgICAgLi4ua2xvZWtDb25maWcsXG4gICAgICBidWlsZDogey4uLmtsb2VrQ29uZmlnLmJ1aWxkLCBicm93c2Vyc2xpc3R9LFxuICAgICAgc2VydmU6IHtcbiAgICAgICAgcGFydGlhbHM6IFtcbiAgICAgICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAncGFydGlhbHMnKSxcbiAgICAgICAgICBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3BhcnRpYWxzJyksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgY29uZmlnOiBVc2VyQ29uZmlnID0ge1xuICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgYmFzZToga2xvZWtDb25maWcuYnVpbGQuYmFzZVBhdGgsXG4gICAgcm9vdDogb3B0aW9ucy5yb290LFxuICAgIGVudkRpcjogcGF0aC5yZXNvbHZlKGN3ZCwgJ2VudicpLFxuICAgIGVudlByZWZpeDogWydLTE9FS18nLCAnVklURV8nXSxcbiAgICBwdWJsaWNEaXI6ICdzdGF0aWMnLFxuICAgIGRlZmluZToge30sXG5cbiAgICBlc2J1aWxkOiB7XG4gICAgICBsZWdhbENvbW1lbnRzOiAnbm9uZScsXG4gICAgfSxcblxuICAgIHJlc29sdmU6IHtcbiAgICAgIGRlZHVwZTogW1xuICAgICAgICAnQHN0dWRpb2tsb2VrL3RzLWNvcmUtbGliJyxcbiAgICAgICAgJ0BjYXBhY2l0b3IvYXBwJyxcbiAgICAgICAgJ0BjYXBhY2l0b3IvY29yZScsXG4gICAgICAgICdAY2FwYWNpdG9yL2RldmljZScsXG4gICAgICAgICdAY2FwYWNpdG9yL25ldHdvcmsnLFxuICAgICAgICAnQGNhcGFjaXRvci9zcGxhc2gtc2NyZWVuJyxcbiAgICAgICAgJ0BjYXBhY2l0b3Ivc3RhdHVzLWJhcicsXG4gICAgICAgICdAY2FwYWNpdG9yL3ByZWZlcmVuY2VzJyxcbiAgICAgICAgJ2Jvd3NlcicsXG4gICAgICAgICdmb250ZmFjZW9ic2VydmVyJyxcbiAgICAgICAgJ2dzYXAnLFxuICAgICAgICAnaG93bGVyJyxcbiAgICAgICAgJ2xvZGFzaC1kZWNvcmF0b3JzLWVzbScsXG4gICAgICAgICdsb2Rhc2gtZXMnLFxuICAgICAgICAncGl4aS1zcGluZScsXG4gICAgICAgICdwaXhpLmpzJyxcbiAgICAgICAgJ3B1YnN1Yi1qcycsXG4gICAgICAgICdyYW5kb20tanMnLFxuICAgICAgICAncmVzcycsXG4gICAgICAgICdzbHVnaWZ5JyxcbiAgICAgICAgJ3N1cGVyYWdlbnQnLFxuICAgICAgICAndHMtZXZlbnRzJyxcbiAgICAgICAgJ3RzLW1peGVyJyxcbiAgICAgICAgJ3RzbGliJyxcbiAgICAgIF0sXG4gICAgICBhbGlhczoge1xuICAgICAgICBsb2Rhc2g6ICdsb2Rhc2gtZXMnLFxuICAgICAgICAnQG1ldGEnOiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3N0YXRpYycsICdtZXRhJyksXG4gICAgICAgICdAZm9udHMnOiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3N0YXRpYycsICdmb250cycpLFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgY3NzOiB7XG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIHNjc3M6IHtcbiAgICAgICAgICBjaGFyc2V0OiBmYWxzZSxcbiAgICAgICAgICAvLyBBZGRpdGlvbmFsRGF0YTogYEBjaGFyc2V0IFwiVVRGLThcImAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBwbHVnaW5zOiBbLi4uYmFzZVBsdWdpbnMob3B0aW9ucyldLFxuICB9O1xuXG4gIHN3aXRjaCAoZW52aXJvbm1lbnQuY29tbWFuZCkge1xuICAgIGNhc2UgJ3NlcnZlJzpcbiAgICAgIGNvbmZpZy5zZXJ2ZXIgPSB7XG4gICAgICAgIGhvc3Q6IHRydWUsXG4gICAgICAgIGNvcnM6IG9wdGlvbnMuY29uZmlnLmRldi5jb3JzID8/IHRydWUsXG4gICAgICAgIGh0dHBzOiBvcHRpb25zLmNvbmZpZy5kZXYuaHR0cHMgPz8gdHJ1ZSxcbiAgICAgICAgb3BlbjogZ2V0UGFnZVRvU2VydmUob3B0aW9ucy5jb25maWcsIG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLFxuICAgICAgfTtcbiAgICAgIGNvbmZpZy5wbHVnaW5zID0gW1xuICAgICAgICAuLi4oY29uZmlnLnBsdWdpbnMgPyBjb25maWcucGx1Z2lucyA6IFtdKSxcbiAgICAgICAgLi4uc2VydmVQbHVnaW5zKCksXG4gICAgICBdO1xuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2J1aWxkJzpcbiAgICAgIGNvbmZpZy5idWlsZCA9IGRlZmluZUJ1aWxkQ29uZmlnKG9wdGlvbnMpO1xuICAgICAgY29uZmlnLnBsdWdpbnMgPSBbXG4gICAgICAgIC4uLihjb25maWcucGx1Z2lucyA/IGNvbmZpZy5wbHVnaW5zIDogW10pLFxuICAgICAgICAuLi5idWlsZFBsdWdpbnMob3B0aW9ucyksXG4gICAgICBdO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cbiIsImltcG9ydCB7dHlwZSBUeXBlZEZsYWdzfSBmcm9tICdtZW93JztcbmltcG9ydCB7YnVpbGQsIGNyZWF0ZVNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQge2RlZmluZUtsb2VrVml0ZUNvbmZpZ30gZnJvbSAnLi9jb25maWcnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24ga2xvZWtEZXZlbG9wbWVudChcbiAgZmxhZ3M6IFR5cGVkRmxhZ3M8e1xuICAgIG1vZGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnO1xuICAgICAgYWxpYXM6IHN0cmluZztcbiAgICAgIGRlZmF1bHQ/OiBzdHJpbmc7XG4gICAgfTtcbiAgfT4sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgZGVmaW5lS2xvZWtWaXRlQ29uZmlnKHtcbiAgICBjb21tYW5kOiAnc2VydmUnLFxuICAgIG1vZGU6ICdkZXZlbG9wbWVudCcsXG4gIH0pO1xuXG4gIC8vIERpZmZlcmVudCBtb2RlXG4gIGlmICh0eXBlb2YgZmxhZ3MubW9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25maWcubW9kZSA9IGZsYWdzLm1vZGU7XG4gIH1cblxuICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBjcmVhdGVTZXJ2ZXIoe1xuICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgIC4uLmNvbmZpZyxcbiAgfSk7XG5cbiAgYXdhaXQgc2VydmVyLmxpc3RlbigpO1xuICBzZXJ2ZXIucHJpbnRVcmxzKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBrbG9la0J1aWxkKFxuICBmbGFnczogVHlwZWRGbGFnczx7XG4gICAgZW1wdHlPdXREaXI6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJztcbiAgICAgIGFsaWFzOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0OiB0cnVlO1xuICAgIH07XG4gICAgYmFzZToge1xuICAgICAgdHlwZTogJ3N0cmluZyc7XG4gICAgICBhbGlhczogc3RyaW5nO1xuICAgICAgZGVmYXVsdDogc3RyaW5nO1xuICAgIH07XG4gICAgbW9kZToge1xuICAgICAgdHlwZTogJ3N0cmluZyc7XG4gICAgICBhbGlhczogc3RyaW5nO1xuICAgICAgZGVmYXVsdD86IHN0cmluZztcbiAgICB9O1xuICB9Pixcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb25maWcgPSBhd2FpdCBkZWZpbmVLbG9la1ZpdGVDb25maWcoe1xuICAgIGNvbW1hbmQ6ICdidWlsZCcsXG4gICAgbW9kZTogJ3Byb2R1Y3Rpb24nLFxuICB9KTtcblxuICAvLyBFbXB0eSBvdXQgdGhlIE91dHB1dCBkaXIgYmVmb3JlIGJ1aWxkaW5nP1xuICBpZiAoZmxhZ3MuZW1wdHlPdXREaXIgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbmZpZy5idWlsZCA9IHtcbiAgICAgIC4uLmNvbmZpZy5idWlsZCxcbiAgICAgIGVtcHR5T3V0RGlyOiBmbGFncy5lbXB0eU91dERpcixcbiAgICB9O1xuICB9XG5cbiAgLy8gRGlmZmVyZW50IGJhc2UgcGF0aFxuICBpZiAodHlwZW9mIGZsYWdzLmJhc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uZmlnLmJhc2UgPSBmbGFncy5iYXNlO1xuICB9XG5cbiAgLy8gRGlmZmVyZW50IG1vZGVcbiAgaWYgKHR5cGVvZiBmbGFncy5tb2RlID09PSAnc3RyaW5nJykge1xuICAgIGNvbmZpZy5tb2RlID0gZmxhZ3MubW9kZTtcbiAgfVxuXG4gIGF3YWl0IGJ1aWxkKHtcbiAgICBjb25maWdGaWxlOiBmYWxzZSxcbiAgICAuLi5jb25maWcsXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUEsU0FBUyxpQkFBaUIsQ0FDeEIsT0FBcUIsRUFDckIsSUFBa0IsRUFDbEIsU0FBaUMsRUFBQTtJQUVqQyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFDOztBQUc3QyxJQUFBLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1FBQ2hDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRztZQUNuQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDcEIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xCLENBQUM7QUFDSCxLQUFBO0FBRUQsSUFBQSxPQUFPLFFBQW1DLENBQUM7QUFDN0MsQ0FBQztBQUVLLFNBQVUseUJBQXlCLENBQ3ZDLGVBQXFDLEVBQUE7O0lBR3JDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzNCLGVBQWUsQ0FBQyxPQUFPLENBQ0UsQ0FBQztBQUM1QixJQUFBLE1BQU0sRUFBQyxPQUFPLEVBQUMsR0FBRyxlQUFlLENBQUM7QUFDbEMsSUFBQSxNQUFNLFdBQVcsR0FBc0I7QUFDckMsUUFBQSxXQUFXLEVBQUUsT0FBTztBQUNwQixRQUFBLEtBQUssRUFBRSxFQUFFO0tBQ1YsQ0FBQztJQUVGLEtBQUssTUFBTSxJQUFJLElBQUksZUFBZSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUU7UUFDOUMsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQzs7QUFHN0QsUUFBQSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxD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
@@ -5,11 +5,11 @@ export type ImageQualityConfig = {
5
5
  };
6
6
  export type KloekViteDevConfig = {
7
7
  serveParams: string;
8
+ cors?: boolean;
9
+ https?: boolean;
8
10
  };
9
11
  export type KloekViteServeConfig = {
10
12
  partials: string | string[];
11
- cors?: boolean;
12
- https?: boolean;
13
13
  };
14
14
  export type KloekViteBuildConfig = {
15
15
  basePath: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studiokloek/vite-config",
3
- "version": "0.6.9",
3
+ "version": "0.6.10",
4
4
  "license": "MIT",
5
5
  "author": "Martijn Swart <opensource@studiokloek.nl> (https://studiokloek.nl)",
6
6
  "description": "Base Vite config for usage in our projects.",