@studiokloek/vite-config 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/config.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { ConfigEnv, UserConfig } from 'vite';
1
+ import type { ConfigEnv, UserConfig } from 'vite';
2
2
  export declare function defineKloekViteConfig(environment: ConfigEnv): Promise<UserConfig>;
package/dist/index.js CHANGED
@@ -456,7 +456,7 @@ async function defineKloekViteConfig(environment) {
456
456
  switch (environment.command) {
457
457
  case 'serve':
458
458
  config.server = {
459
- host: 'localhost',
459
+ host: true,
460
460
  https: true,
461
461
  open: getPageToServe(options.config, options.settings.games),
462
462
  };
@@ -507,4 +507,4 @@ async function kloekBuild(flags) {
507
507
  }
508
508
 
509
509
  export { kloekBuild, kloekDevelopment };
510
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvdXRpbHMvZ2FtZS50cyIsIi4uL3NyYy91dGlscy9idWlsZC50cyIsIi4uL3NyYy91dGlscy9pbmRleC50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9oYW5kbGViYXJzLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9odG1sLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL3NlcnZlLnRzIiwiLi4vc3JjL2NvbmZpZy50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ0VudiwgUGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCBpbWFnZW1pblBsdWdpbjIgZnJvbSAndml0ZS1wbHVnaW4taW1hZ2VtaW4nO1xuaW1wb3J0IHtJbWFnZVF1YWxpdHlDb25maWd9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2VtaW5QbHVnaW4oXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4gIG9wdGlvbnM6IEltYWdlUXVhbGl0eUNvbmZpZyxcbik6IFBsdWdpbiB7XG4gIHJldHVybiBpbWFnZW1pblBsdWdpbjIoe1xuICAgIGRpc2FibGU6IGVudmlyb25tZW50Lm1vZGUgIT09ICdwcm9kdWN0aW9uJyxcbiAgICBtb3pqcGVnOiB7XG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5qcGVnID8/IDgwLFxuICAgIH0sXG4gICAgcG5ncXVhbnQ6IHtcbiAgICAgIHN0cmlwOiB0cnVlLFxuICAgICAgc3BlZWQ6IDIsXG4gICAgICBkaXRoZXJpbmc6IDAuMjUsXG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5wbmcgPz8gWzAuNSwgMC43XSxcbiAgICB9LFxuICB9KSBhcyBQbHVnaW47XG59XG4iLCJpbXBvcnQge1BsdWdpbiwgUmVzb2x2ZWRDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtHYW1lU2V0dGluZ3MsIEdhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5mdW5jdGlvbiByZW5kZXJHYW1lTWFuaWZlc3QoXG4gIHBhZ2VJZDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZVNldHRpbmdzLFxuICBjb25maWc6IFJlc29sdmVkQ29uZmlnLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWFuaWZlc3QgPSB7XG4gICAgc2hvcnRfbmFtZTogYCR7c2V0dGluZ3MubWV0YS5hcHB0aXRsZX1gLFxuICAgIG5hbWU6IGAke3NldHRpbmdzLm1ldGEudGl0bGV9YCxcbiAgICBkZXNjcmlwdGlvbjogYCR7c2V0dGluZ3MubWV0YS5kZXNjcmlwdGlvbn1gLFxuICAgIHNjb3BlOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgc3RhcnRfdXJsOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgZGlzcGxheTogJ2Z1bGxzY3JlZW4nLFxuICAgIG9yaWVudGF0aW9uOiBgJHtzZXR0aW5ncy5vcHRpb25zLm9yaWVudGF0aW9uID8/ICdsYW5kc2NhcGUnfWAsXG4gICAgaWNvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvY2hyb21lLXRvdWNoLWljb24tMTkyeDE5Mi5wbmdgLFxuICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc2l6ZXM6ICcxOTJ4MTkyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNyYzogYCR7Y29uZmlnLmJhc2V9bWV0YS8ke3NldHRpbmdzLmluZm8uaWR9L2ljb25zL2ljb24ucG5nYCxcbiAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgIHNpemVzOiAnMTAyNHgxMDI0JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBiYWNrZ3JvdW5kX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICAgIHRoZW1lX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICB9O1xuXG4gIHJldHVybiBgJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgMil9XFxuYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hbmlmZXN0UGx1Z2luKGdhbWVzOiBHYW1lc1NldHRpbmdzKTogUGx1Z2luIHtcbiAgbGV0IGNvbmZpZzogUmVzb2x2ZWRDb25maWc7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndml0ZS1wbHVnaW4ta2xvZWstbWFuaWZlc3QnLFxuICAgIGVuZm9yY2U6ICdwb3N0JyxcbiAgICBhcHBseTogJ2J1aWxkJyxcbiAgICBhc3luYyBjb25maWdSZXNvbHZlZChyZXNvbHZlZENvbmZpZzogUmVzb2x2ZWRDb25maWcpIHtcbiAgICAgIGNvbmZpZyA9IHJlc29sdmVkQ29uZmlnO1xuICAgIH0sXG4gICAgZ2VuZXJhdGVCdW5kbGUoXywgYnVuZGxlKSB7XG4gICAgICAvLyBWb29yIGllZGVyZSBhcHAgZWVuIG1hbmlmZXN0IG1ha2VuOlxuICAgICAgZm9yIChjb25zdCBbcGFnZUlkLCBzZXR0aW5nc10gb2YgT2JqZWN0LmVudHJpZXMoZ2FtZXMpKSB7XG4gICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LndlYm1hbmlmZXN0YF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IHJlbmRlckdhbWVNYW5pZmVzdChwYWdlSWQsIHNldHRpbmdzLCBjb25maWcpLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LndlYm1hbmlmZXN0YCxcbiAgICAgICAgfTtcblxuICAgICAgICBidW5kbGVbYCR7cGFnZUlkfS1zZXJ2aWNld29ya2VyLmpzYF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IFwic2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKCkgeyByZXR1cm47IH0pO1wiLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgbGVnYWN5UGx1Z2luIGZyb20gJ0B2aXRlanMvcGx1Z2luLWxlZ2FjeSc7XG5pbXBvcnQge1BsdWdpbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgYmFubmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWJhbm5lcic7XG5pbXBvcnQge2NyZWF0ZUh0bWxQbHVnaW59IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHtWaXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2ltYWdlbWluUGx1Z2lufSBmcm9tICcuL2xpYi9pbWFnZS1wbHVnaW4nO1xuaW1wb3J0IHttYW5pZmVzdFBsdWdpbn0gZnJvbSAnLi9saWIvbWFuaWZlc3QtcGx1Z2luJztcblxuLy8gQnVpbGQgcGx1Z2luc1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGx1Z2lucyhvcHRpb25zOiBWaXRlT3B0aW9ucyk6IFBsdWdpbltdIHtcbiAgLy8gTm8gYnVpbGQ/IG5vIHBsdWdpbnMuLlxuICBpZiAob3B0aW9ucy5lbnZpcm9ubWVudC5jb21tYW5kICE9PSAnYnVpbGQnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcGx1Z2luczogUGx1Z2luW10gPSBbXTtcblxuICBpZiAob3B0aW9ucy5jb25maWcuYnVpbGQubGVnYWN5KSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBwYWdlIHdvcmtzIGluIG9sZGVyIGJyb3dzZXJzXG4gICAgcGx1Z2lucy5wdXNoKFxuICAgICAgLi4ubGVnYWN5UGx1Z2luKHtcbiAgICAgICAgdGFyZ2V0czogKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmJyb3dzZXJzbGlzdCBhcyBzdHJpbmdbXSkgPz8gJ2RlZmF1bHRzJyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLm1hcCgoZ2FtZUlkKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVuYW1lOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgICAgdGVtcGxhdGU6IGAke2dhbWVJZH0uaHRtbGAsXG4gICAgfTtcbiAgfSk7XG5cbiAgcGx1Z2lucy5wdXNoKFxuICAgIC8vIE1pbmlmeSBpbWFnZSBhc3NldHNcbiAgICBpbWFnZW1pblBsdWdpbihvcHRpb25zLmVudmlyb25tZW50LCBvcHRpb25zLmNvbmZpZy5idWlsZC5pbWFnZVF1YWxpdHkpLFxuXG4gICAgLy8gTWFrZSB0aGUgaHRtbCBvdXRwdXQgc21hbGxlclxuICAgIC4uLihjcmVhdGVIdG1sUGx1Z2luKHttaW5pZnk6IHRydWUsIHBhZ2VzfSkgYXMgUGx1Z2luW10pLFxuXG4gICAgLy8gQWRkIGEgYmFubmVyIHRvIGdlbmVyYXRlZCBqcy9jc3NcbiAgICBiYW5uZXJQbHVnaW4oXG4gICAgICBgXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgICAgICBfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgICAgIF8gICAgICAgICAgICBfXG4gICAgICAgIC8gICkgICAgICAgICAgICAgIHwgIG8gICAgICAgICAvfCAgIC8gfCB8ICAgICAgICAgIHwgfFxuICAgICAgICBcXFxcX18gX3xfICAgICAgICAgX198ICAgICAgX18gICAgIHxfXy8gIHwgfCAgX18gICBfICB8IHxcbiAgICAgICAgICAgXFxcXCB8ICB8ICAgfCAgLyAgfCAgfCAgLyAgXFxcXF8gICB8IFxcXFwgICB8LyAgLyAgXFxcXF98LyAgfC9fKVxuICAgICAgIChfX18vIHxfLyBcXFxcXy98Xy9cXFxcXy98Xy98Xy9cXFxcX18vICAgIHwgIFxcXFxfL3xfXy9cXFxcX18vIHxfXy98IFxcXFxfL1xuXG4gICAgICAgIENvbmNlcHQsIG9udHdlcnAgJiBvbnR3aWtrZWxpbmdcbiAgICAgICAgaHR0cHM6Ly9zdHVkaW9rbG9lay5ubFxuXG4gICAgICAgIFN0dWRpbyBLbG9layDinaQgUGl4aUpTLCBHU0FQICYgaG93bGVyLmpzXG5cbiAgICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuXG5cbiAgICBgLFxuICAgICksXG4gICk7XG5cbiAgLy8gQ3JlYXRlIGEgbWFuaWZlc3QgYW5kIG1pbmltYWwgd2Vid29ya2VyIGZvciBldmVyeSBnYW1lXG4gIGlmIChvcHRpb25zLmNvbmZpZy5idWlsZC5tYW5pZmVzdCkge1xuICAgIHBsdWdpbnMucHVzaChtYW5pZmVzdFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSk7XG4gIH1cblxuICByZXR1cm4gcGx1Z2lucztcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge1xuICBHYW1lU2V0dGluZ3MsXG4gIEdhbWVTZXR0aW5nc1Byb3BlcnR5LFxuICBHYW1lc1NldHRpbmdzLFxuICBHYW1lc1NldHRpbmdzRGF0YSxcbiAgS2xvZWtWaXRlQ29uZmlnLFxuICBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZnVuY3Rpb24gbWVyZ2VHYW1lU2V0dGluZ3MoXG4gIGdlbmVyaWM6IEdhbWVTZXR0aW5ncyxcbiAgZ2FtZTogR2FtZVNldHRpbmdzLFxuICBpbmZvVHlwZXM6IEdhbWVTZXR0aW5nc1Byb3BlcnR5W10sXG4pOiBHYW1lU2V0dGluZ3Mge1xuICBjb25zdCBzZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAvLyBBbGxlIHByb3BzIG9wIMOpw6luIGxldmVsIGRpZXAgbWVyZ2VuXG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgaW5mb1R5cGVzKSB7XG4gICAgc2V0dGluZ3NbcHJvcGVydHldID0ge1xuICAgICAgLi4uZ2VuZXJpY1twcm9wZXJ0eV0sXG4gICAgICAuLi5nYW1lW3Byb3BlcnR5XSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHNldHRpbmdzIGFzIHVua25vd24gYXMgR2FtZVNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhcbiAgcGFja2FnZVNldHRpbmdzOiBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVzU2V0dGluZ3NEYXRhIHtcbiAgLy8gTWVyZ2Ugc2V0dGluZ3NcbiAgY29uc3QgaW5mb1R5cGVzID0gT2JqZWN0LmtleXMoXG4gICAgcGFja2FnZVNldHRpbmdzLmdlbmVyaWMsXG4gICkgYXMgR2FtZVNldHRpbmdzUHJvcGVydHlbXTtcbiAgY29uc3Qge2dlbmVyaWN9ID0gcGFja2FnZVNldHRpbmdzO1xuICBjb25zdCBhbGxTZXR0aW5nczogR2FtZXNTZXR0aW5nc0RhdGEgPSB7XG4gICAgZGV2ZWxvcG1lbnQ6IGdlbmVyaWMsXG4gICAgZ2FtZXM6IHt9LFxuICB9O1xuXG4gIGZvciAoY29uc3QgZ2FtZSBvZiBwYWNrYWdlU2V0dGluZ3MuZ2FtZXMgPz8gW10pIHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IG1lcmdlR2FtZVNldHRpbmdzKGdlbmVyaWMsIGdhbWUsIGluZm9UeXBlcyk7XG5cbiAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHBhZ2UgYWx0aWpkIGdlemV0IGlzXG4gICAgY29uc3QgcGFnZUlkID0gc2V0dGluZ3MuaW5mby5wYWdlID8/IHNldHRpbmdzLmluZm8uaWQgPz8gJ3Vua25vd24nO1xuICAgIHNldHRpbmdzLmluZm8ucGFnZSA9IHBhZ2VJZDtcblxuICAgIC8vIFNsYSBzZXR0aW5ncyBvcCBvbmRlciBwYWdlIGlkXG4gICAgYWxsU2V0dGluZ3MuZ2FtZXNbcGFnZUlkXSA9IHNldHRpbmdzO1xuICB9XG5cbiAgcmV0dXJuIGFsbFNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aFRvR2FtZURhdGEoXG4gIGZ1bGxGaWxlUGF0aDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gIC8vIERldGVybWluZSBmaWxlbmFtZSB3aXRob3V0IGV4dGVuc2lvblxuICBsZXQgZmlsZVBhdGggPSBwYXRoLmJhc2VuYW1lKGZ1bGxGaWxlUGF0aCwgcGF0aC5leHRuYW1lKGZ1bGxGaWxlUGF0aCkpO1xuXG4gIC8vIERldGVybWluZSBkaXIgJiByZW1vdmUgbGVhZGluZyBzbGFzaFxuICBsZXQgZmlsZURpcmVjdG9yeSA9IHBhdGguZGlybmFtZShmdWxsRmlsZVBhdGgpO1xuICBmaWxlRGlyZWN0b3J5ID0gZmlsZURpcmVjdG9yeS5yZXBsYWNlKC9eXFwvKy9nLCAnJyk7XG5cbiAgaWYgKGZpbGVEaXJlY3RvcnkpIHtcbiAgICBmaWxlUGF0aCA9IGAke2ZpbGVEaXJlY3Rvcnl9LyR7ZmlsZVBhdGh9YDtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5nc1tmaWxlUGF0aF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlVG9TZXJ2ZShcbiAgY29uZmlnOiBLbG9la1ZpdGVDb25maWcsXG4gIHNldHRpbmdzOiBHYW1lc1NldHRpbmdzLFxuKTogc3RyaW5nIHtcbiAgLy8gSG9ldmVlbCBwYWdlcyB6aWpuIGVyP1xuICBjb25zdCBwYWdlSWRzID0gT2JqZWN0LmtleXMoc2V0dGluZ3MpO1xuICBjb25zdCBwYWdlID0gcGFnZUlkcy5sZW5ndGggPT09IDEgPyBwYWdlSWRzWzBdIDogJ2RldmVsb3BtZW50JztcblxuICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKFxuICAgIGNvbmZpZy5idWlsZC5iYXNlUGF0aCxcbiAgICBgJHtwYWdlfS5odG1sJHtjb25maWcuZGV2LnNlcnZlUGFyYW1zID8/ICcnfWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlSWRGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgcGF0aG5hbWU6IHN0cmluZztcblxuICB0cnkge1xuICAgIHBhdGhuYW1lID0gbmV3IFVSTCh1cmwsICdodHRwczovL3N0dWRpb2tsb2VrLm5sJykucGF0aG5hbWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIElmIHJlcXVlc3QgaXMgbm90IGh0bWwgLCBkaXJlY3RseSByZXR1cm4gbmV4dCgpXG4gIGlmICghcGF0aG5hbWUuZW5kc1dpdGgoJy5odG1sJykgJiYgcGF0aG5hbWUgIT09ICcvJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIFBhZ2luYSBpZCBvcHZyYWdlblxuICBjb25zdCBpbmRleCA9IHBhdGhuYW1lLmxhc3RJbmRleE9mKCcvJyk7XG4gIGNvbnN0IGZpbGVOYW1lID0gaW5kZXggPT09IC0xID8gcGF0aG5hbWUgOiBwYXRobmFtZS5zbGljZShpbmRleCArIDEpO1xuXG4gIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKCcuaHRtbCcsICcnKTtcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge0J1aWxkT3B0aW9uc30gZnJvbSAndml0ZSc7XG5pbXBvcnQge1ZpdGVPcHRpb25zfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQnVpbGRDb25maWcob3B0aW9uczogVml0ZU9wdGlvbnMpOiBCdWlsZE9wdGlvbnMge1xuICBjb25zdCBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGZvciAoY29uc3QgZ2FtZUlkIG9mIE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpKSB7XG4gICAgaW5wdXRbZ2FtZUlkXSA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnJvb3QsIGAke2dhbWVJZH0uaHRtbGApO1xuICB9XG5cbiAgLy8gTGlicyBkaWUgYXBhcnRlIGpzIGtyaWpnZW46XG4gIGNvbnN0IHZlbmRvckNodW5rcyA9IFsnZmlyZWJhc2UnLCAncGl4aScsICdsb2Rhc2gnLCAnY2FwYWNpdG9yJywgJ2dzYXAnXTtcblxuICByZXR1cm4ge1xuICAgIHJlcG9ydENvbXByZXNzZWRTaXplOiBmYWxzZSxcbiAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IDEwMDAsXG4gICAgb3V0RGlyOiAnLi4vcHVibGljJyxcbiAgICBhc3NldHNEaXI6ICdnZW5lcmF0ZWQnLFxuICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgIGlucHV0LFxuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIG1hbnVhbENodW5rcyhpZCkge1xuICAgICAgICAgIGlmIChpZC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBpZFxuICAgICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAuc3BsaXQoJ25vZGVfbW9kdWxlcy8nKVsxXVxuICAgICAgICAgICAgICAuc3BsaXQoJy8nKVswXVxuICAgICAgICAgICAgICAudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2ZW5kb3JDaHVua3MpIHtcbiAgICAgICAgICAgICAgaWYgKG5hbWUuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCB7cmVhZEZpbGVTeW5jfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJ3ZpdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEpTT04ocGF0aDogc3RyaW5nKTogdW5rbm93biB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IHJlYWRGaWxlU3luYyhwYXRoKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhLnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIHtcbiAgICAvL1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgY3dkID0gbm9ybWFsaXplUGF0aChwcm9jZXNzLmN3ZCgpKTtcblxuZXhwb3J0ICogZnJvbSAnLi9nYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQnO1xuIiwiaW1wb3J0IG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7UGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCB2aXRlSGFuZGxlYmFyc1BsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1oYW5kbGViYXJzJztcbmltcG9ydCB7Vml0ZU9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtnZXRQYWdlSWRGcm9tVXJsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8vIEhlbHBlcnMgdm9vciBoYW5kbGViYXJzXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlYmFyc1BsdWdpbihcbiAgcGFydGlhbERpcmVjdG9yeTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG9wdGlvbnM6IFZpdGVPcHRpb25zLFxuKTogUGx1Z2luIHtcbiAgcmV0dXJuIHZpdGVIYW5kbGViYXJzUGx1Z2luKHtcbiAgICBwYXJ0aWFsRGlyZWN0b3J5LFxuXG4gICAgaGVscGVyczoge1xuICAgICAganNvbjogKG9iamVjdDogYW55LCBpbmRlbnQgPSAwKSA9PlxuICAgICAgICBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgaW5kZW50KSxcbiAgICAgIGNvbmNhdDogKC4uLmFyZ3VtZW50c186IGFueVtdKSA9PiBhcmd1bWVudHNfLnNsaWNlKDAsIC0xKS5qb2luKCcnKSxcbiAgICAgIGVxOiAoYTogYW55LCBiOiBhbnkpID0+IGEgPT09IGIsXG4gICAgICBuZXE6IChhOiBhbnksIGI6IGFueSkgPT4gYSAhPT0gYixcbiAgICAgIGlzZGVmaW5lZDogKHZhbHVlOiB1bmRlZmluZWQpID0+IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAncmVzb2x2ZS1yb290JyhwOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gVGlqZGVsaWprZSBoYWNrIHZvb3IgYnVnIGluIGhhbmRsZWJhcnMgcGx1Z2luXG4gICAgICAgIC8vIHppZSBvb2sgaHR0cHM6Ly9naXRodWIuY29tL2FsZXhsYWZyb3NjaWEvdml0ZS1wbHVnaW4taGFuZGxlYmFycy9wdWxsLzEyOVxuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBwKTtcbiAgICAgICAgcmV0dXJuIG9zLnBsYXRmb3JtKCkgPT09ICd3aW4zMicgPyBgLyR7cmVzb2x2ZWRQYXRofWAgOiByZXNvbHZlZFBhdGg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb250ZXh0KHBhZ2VQYXRoOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgICBjb25zdCBnYW1lSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHBhZ2VQYXRoKTtcblxuICAgICAgaWYgKCFnYW1lSWQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZ2FtZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIFBhZ2luYSBzZXR0aW5ncyB0ZXJ1Z2dldmVuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW52OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgIGRhdGE6IG9wdGlvbnMuc2V0dGluZ3MuZGV2ZWxvcG1lbnQsXG4gICAgICAgICAgZ2FtZXM6IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIE9wIGJhc2lzIHZhbiBwYWQgZGF0YSBiZXBhbGVuXG4gICAgICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXNbZ2FtZUlkXTtcblxuICAgICAgLy8gUGFnaW5hIHNldHRpbmdzIHRlcnVnZ2V2ZW5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudjogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgZGF0YTogc2V0dGluZ3MgPz8ge30sXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xufVxuIiwiaW1wb3J0IHtleGlzdHNTeW5jLCBwcm9taXNlc30gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtDb25maWdFbnYsIFBsdWdpbiwgVXNlckNvbmZpZywgVml0ZURldlNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQge0dhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtjd2QsIGdldFBhZ2VJZEZyb21Vcmx9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgUEFHRV9URU1QTEFURSA9ICd7ez4gZ2FtZSBkYXRhPWRhdGF9fSc7XG5jb25zdCBERVZFTE9QTUVOVF9URU1QTEFURSA9ICd7ez4gZGV2ZWxvcG1lbnQgZGF0YT1kYXRhfX0nO1xuXG5hc3luYyBmdW5jdGlvbiByZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gQmVzdGFhdCBkaWUgZmlsZSBub2cgbmlldD9cbiAgaWYgKCFleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgIC8vIEFhbm1ha2VuXG4gICAgYXdhaXQgcHJvbWlzZXMud3JpdGVGaWxlKGZpbGVQYXRoLCBQQUdFX1RFTVBMQVRFKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbFBsdWdpbihnYW1lczogR2FtZXNTZXR0aW5ncyk6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3ZpdGUtcGx1Z2luLWtsb2VrLWh0bWwnLFxuICAgIGVuZm9yY2U6ICdwcmUnLFxuXG4gICAgYXN5bmMgY29uZmlnKF9jb25maWc6IFVzZXJDb25maWcsIGVudmlyb25tZW50OiBDb25maWdFbnYpIHtcbiAgICAgIC8vIEJpaiBlZW4gYnVpbGQgbWFrZW4gd2UgdGlqZGVsaWprIGZpbGVzIGFhblxuICAgICAgaWYgKGVudmlyb25tZW50LmNvbW1hbmQgPT09ICdidWlsZCcpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8UHJvbWlzZTx2b2lkPj4gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhZ2VJZCBvZiBPYmplY3Qua2V5cyhnYW1lcykpIHtcbiAgICAgICAgICAvLyBQYWQgbmFhciBmaWxlXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgICAgYWN0aW9ucy5wdXNoKHJlbmRlclRlbXBvcmFyeUZpbGUoZmlsZVBhdGgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyOiBWaXRlRGV2U2VydmVyKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHRpamRlbnMgZGV2ZWxvcG1lbnQgZGUgcGFnaW5hIGdlLXJlbmRlcmVkIHRlcnVnIGdlZ2V2ZW4gd29yZHQgd29yZHRcbiAgICAgICAgc2VydmVyLm1pZGRsZXdhcmVzLnVzZSgnLycsIGFzeW5jIChyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVybCA9IHJlcXVlc3Q/LnVybCA/PyAnJztcbiAgICAgICAgICBjb25zdCBwYWdlSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHVybCk7XG5cbiAgICAgICAgICBpZiAoIXBhZ2VJZCkge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYWdlSWQgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIC8vIERldmVsb3BtZW50PyBnZWVmIHRlcnVnLi4uXG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIERFVkVMT1BNRU5UX1RFTVBMQVRFLFxuICAgICAgICAgICAgICAgIHJlcXVlc3Qub3JpZ2luYWxVcmwsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LmtleXMoZ2FtZXMpLmluY2x1ZGVzKHBhZ2VJZCkpIHtcbiAgICAgICAgICAgIC8vIEJlc3RhYW5kZSBnYW1lPyB6b3JnIGVyIHZvb3IgZGF0IGRlIHRlbXBsYXRlIGdlLXJlbmRlcmVkIHdvcmR0XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIFBBR0VfVEVNUExBVEUsXG4gICAgICAgICAgICAgICAgcmVxdWVzdC5vcmlnaW5hbFVybCxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5pa3MgZ2V2b25kZW5cbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgnNDA0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSxcblxuICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgLy8gVmVyd2lqZGVyIGRlIGFhbmdlbWFha3RlIGZpbGVzXG4gICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxQcm9taXNlPHZvaWQ+PiA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgIGlmIChleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2gocHJvbWlzZXMucm0oZmlsZVBhdGgpKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtzdmVsdGV9IGZyb20gJ0BzdmVsdGVqcy92aXRlLXBsdWdpbi1zdmVsdGUnO1xuaW1wb3J0IHtQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGZ1bGxSZWxvYWQgZnJvbSAndml0ZS1wbHVnaW4tZnVsbC1yZWxvYWQnO1xuaW1wb3J0IHRzY29uZmlnUGF0aHNQbHVnaW4gZnJvbSAndml0ZS10c2NvbmZpZy1wYXRocyc7XG5pbXBvcnQgbWtjZXJ0IGZyb20gJ3ZpdGUtcGx1Z2luLW1rY2VydCc7XG5pbXBvcnQge1ZpdGVPcHRpb25zfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7Y3dkfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2hhbmRsZWJhcnNQbHVnaW59IGZyb20gJy4vbGliL2hhbmRsZWJhcnMtcGx1Z2luJztcbmltcG9ydCB7aHRtbFBsdWdpbn0gZnJvbSAnLi9saWIvaHRtbC1wbHVnaW4nO1xuaW1wb3J0IGNoZWNrZXIgZnJvbSAndml0ZS1wbHVnaW4tY2hlY2tlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2ZVBsdWdpbnMob3B0aW9uczogVml0ZU9wdGlvbnMpOiBQbHVnaW5bXSB7XG4gIHJldHVybiBbXG4gICAgaHRtbFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcblxuICAgIC4uLnN2ZWx0ZSh7XG4gICAgICAvLyBIb3Q6IGZhbHNlLFxuICAgICAgZXhwZXJpbWVudGFsOiB7XG4gICAgICAgIHByZWJ1bmRsZVN2ZWx0ZUxpYnJhcmllczogdHJ1ZSxcbiAgICAgICAgdXNlVml0ZVByZXByb2Nlc3M6IHRydWUsXG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgdHNjb25maWdQYXRoc1BsdWdpbih7XG4gICAgICByb290OiBwYXRoLnJlc29sdmUoY3dkKSxcbiAgICAgIGV4dGVuc2lvbnM6IFsnLnRzJywgJy5qc29uJ10sXG4gICAgICBsb29zZTogdHJ1ZSxcbiAgICB9KSxcblxuICAgIGZ1bGxSZWxvYWQoWydzY3JpcHQvKiovKi50cycsICdzdmVsdGUvKiovKi5zdmVsdGUnXSwge1xuICAgICAgcm9vdDogcGF0aC5qb2luKHBhdGgucmVzb2x2ZShjd2QpLCAnc291cmNlJyksXG4gICAgICBsb2c6IHRydWUsXG4gICAgICBhbHdheXM6IHRydWUsXG4gICAgfSkgYXMgUGx1Z2luLFxuXG4gICAgaGFuZGxlYmFyc1BsdWdpbihvcHRpb25zLmNvbmZpZy5zZXJ2ZS5wYXJ0aWFscywgb3B0aW9ucyksXG5cbiAgICBta2NlcnQoKSxcblxuICAgIGNoZWNrZXIoeyBcbiAgICAgIHR5cGVzY3JpcHQ6IHtcbiAgICAgICAgYnVpbGRNb2RlOnRydWVcbiAgICAgIH1cbiAgICB9KSxcbiAgXTtcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge2ZpbGVVUkxUb1BhdGh9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7Q29uZmlnRW52LCBVc2VyQ29uZmlnfSBmcm9tICd2aXRlJztcbmltcG9ydCB7YnVpbGRQbHVnaW5zfSBmcm9tICcuL3BsdWdpbnMvYnVpbGQnO1xuaW1wb3J0IHtzZXJ2ZVBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucy9zZXJ2ZSc7XG5pbXBvcnQge1xuICBjd2QsXG4gIGRlZmluZUJ1aWxkQ29uZmlnLFxuICBnZXRQYWdlVG9TZXJ2ZSxcbiAgcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbiAgcmVhZEpTT04sXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgS2xvZWtWaXRlQ29uZmlnLFxuICBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbiAgVml0ZU9wdGlvbnMsXG59IGZyb20gJy4vdXRpbHMvaW50ZXJmYWNlcyc7XG5cbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVmaW5lS2xvZWtWaXRlQ29uZmlnKFxuICBlbnZpcm9ubWVudDogQ29uZmlnRW52LFxuKTogUHJvbWlzZTxVc2VyQ29uZmlnPiB7XG4gIGNvbnN0IHBrZyA9IHJlYWRKU09OKHBhdGgucmVzb2x2ZShjd2QsICdwYWNrYWdlLmpzb24nKSkgYXMgUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB1bmtub3duXG4gID47XG4gIGNvbnN0IGtsb2VrQ29uZmlnID0gcGtnLnZpdGUgYXMgS2xvZWtWaXRlQ29uZmlnO1xuICBjb25zdCBicm93c2Vyc2xpc3QgPSBwa2cuYnJvd3NlcnNsaXN0IGFzIHN0cmluZyB8IHN0cmluZ1tdO1xuICBjb25zdCBvcHRpb25zOiBWaXRlT3B0aW9ucyA9IHtcbiAgICByb290OiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJyksXG4gICAgZW52aXJvbm1lbnQsXG4gICAgc2V0dGluZ3M6IHBhcnNlUGFja2FnZUdhbWVzU2V0dGluZ3MocGtnLnNldHRpbmdzIGFzIFBhY2thZ2VHYW1lc1NldHRpbmdzKSxcbiAgICBjb25maWc6IHtcbiAgICAgIC4uLmtsb2VrQ29uZmlnLFxuICAgICAgYnVpbGQ6IHsuLi5rbG9la0NvbmZpZy5idWlsZCwgYnJvd3NlcnNsaXN0fSxcbiAgICAgIHNlcnZlOiB7XG4gICAgICAgIHBhcnRpYWxzOiBbXG4gICAgICAgICAgcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3BhcnRpYWxzJyksXG4gICAgICAgICAgcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdwYXJ0aWFscycpLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGNvbmZpZzogVXNlckNvbmZpZyA9IHtcbiAgICBsb2dMZXZlbDogJ2luZm8nLFxuICAgIGJhc2U6IGtsb2VrQ29uZmlnLmJ1aWxkLmJhc2VQYXRoLFxuICAgIHJvb3Q6IG9wdGlvbnMucm9vdCxcbiAgICBlbnZEaXI6IHBhdGgucmVzb2x2ZShjd2QsICdlbnYnKSxcbiAgICBlbnZQcmVmaXg6IFsnS0xPRUtfJywgJ1ZJVEVfJ10sXG4gICAgcHVibGljRGlyOiAnc3RhdGljJyxcbiAgICBkZWZpbmU6IHt9LFxuXG4gICAgZXNidWlsZDoge1xuICAgICAgbGVnYWxDb21tZW50czogJ25vbmUnLFxuICAgIH0sXG5cbiAgICByZXNvbHZlOiB7XG4gICAgICBkZWR1cGU6IFtcbiAgICAgICAgJ0BzdHVkaW9rbG9lay90cy1jb3JlLWxpYicsXG4gICAgICAgICdAY2FwYWNpdG9yL2FwcCcsXG4gICAgICAgICdAY2FwYWNpdG9yL2NvcmUnLFxuICAgICAgICAnQGNhcGFjaXRvci9kZXZpY2UnLFxuICAgICAgICAnQGNhcGFjaXRvci9uZXR3b3JrJyxcbiAgICAgICAgJ0BjYXBhY2l0b3Ivc3BsYXNoLXNjcmVlbicsXG4gICAgICAgICdAY2FwYWNpdG9yL3N0YXR1cy1iYXInLFxuICAgICAgICAnQGNhcGFjaXRvci9wcmVmZXJlbmNlcycsXG4gICAgICAgICdib3dzZXInLFxuICAgICAgICAnZm9udGZhY2VvYnNlcnZlcicsXG4gICAgICAgICdnc2FwJyxcbiAgICAgICAgJ2hvd2xlcicsXG4gICAgICAgICdsb2Rhc2gtZGVjb3JhdG9ycy1lc20nLFxuICAgICAgICAnbG9kYXNoLWVzJyxcbiAgICAgICAgJ3BpeGktc3BpbmUnLFxuICAgICAgICAncGl4aS5qcycsXG4gICAgICAgICdwdWJzdWItanMnLFxuICAgICAgICAncmFuZG9tLWpzJyxcbiAgICAgICAgJ3Jlc3MnLFxuICAgICAgICAnc2x1Z2lmeScsXG4gICAgICAgICdzdXBlcmFnZW50JyxcbiAgICAgICAgJ3RzLWV2ZW50cycsXG4gICAgICAgICd0cy1taXhlcicsXG4gICAgICAgICd0c2xpYicsXG4gICAgICBdLFxuICAgICAgYWxpYXM6IHtcbiAgICAgICAgbG9kYXNoOiAnbG9kYXNoLWVzJyxcbiAgICAgICAgJ0BtZXRhJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnbWV0YScpLFxuICAgICAgICAnQGZvbnRzJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnZm9udHMnKSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGNzczoge1xuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBzY3NzOiB7XG4gICAgICAgICAgY2hhcnNldDogZmFsc2UsXG4gICAgICAgICAgLy8gQWRkaXRpb25hbERhdGE6IGBAY2hhcnNldCBcIlVURi04XCJgLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgcGx1Z2luczogWy4uLnNlcnZlUGx1Z2lucyhvcHRpb25zKV0sXG4gIH07XG5cbiAgc3dpdGNoIChlbnZpcm9ubWVudC5jb21tYW5kKSB7XG4gICAgY2FzZSAnc2VydmUnOlxuICAgICAgY29uZmlnLnNlcnZlciA9IHtcbiAgICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICAgIGh0dHBzOiB0cnVlLFxuICAgICAgICBvcGVuOiBnZXRQYWdlVG9TZXJ2ZShvcHRpb25zLmNvbmZpZywgb3B0aW9ucy5zZXR0aW5ncy5nYW1lcyksXG4gICAgICB9O1xuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2J1aWxkJzpcbiAgICAgIGNvbmZpZy5idWlsZCA9IGRlZmluZUJ1aWxkQ29uZmlnKG9wdGlvbnMpO1xuICAgICAgY29uZmlnLnBsdWdpbnMgPSBbXG4gICAgICAgIC4uLihjb25maWcucGx1Z2lucyA/IGNvbmZpZy5wbHVnaW5zIDogW10pLFxuICAgICAgICAuLi5idWlsZFBsdWdpbnMob3B0aW9ucyksXG4gICAgICBdO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cbiIsImltcG9ydCB7VHlwZWRGbGFnc30gZnJvbSAnbWVvdyc7XG5pbXBvcnQge2J1aWxkLCBjcmVhdGVTZXJ2ZXJ9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtkZWZpbmVLbG9la1ZpdGVDb25maWd9IGZyb20gJy4vY29uZmlnJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrRGV2ZWxvcG1lbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGRlZmluZUtsb2VrVml0ZUNvbmZpZyh7XG4gICAgY29tbWFuZDogJ3NlcnZlJyxcbiAgICBtb2RlOiAnZGV2ZWxvcG1lbnQnLFxuICB9KTtcblxuICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBjcmVhdGVTZXJ2ZXIoe1xuICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgIC4uLmNvbmZpZyxcbiAgfSk7XG5cbiAgYXdhaXQgc2VydmVyLmxpc3RlbigpO1xuICBzZXJ2ZXIucHJpbnRVcmxzKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBrbG9la0J1aWxkKFxuICBmbGFnczogVHlwZWRGbGFnczx7XG4gICAgZW1wdHlPdXREaXI6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJztcbiAgICAgIGFsaWFzOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0OiB0cnVlO1xuICAgIH07XG4gICAgYmFzZToge1xuICAgICAgdHlwZTogJ3N0cmluZyc7XG4gICAgICBhbGlhczogc3RyaW5nO1xuICAgICAgZGVmYXVsdDogc3RyaW5nO1xuICAgIH07XG4gIH0+LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGRlZmluZUtsb2VrVml0ZUNvbmZpZyh7XG4gICAgY29tbWFuZDogJ2J1aWxkJyxcbiAgICBtb2RlOiAncHJvZHVjdGlvbicsXG4gIH0pO1xuXG4gIC8vIEVtcHR5IG91dCB0aGUgT3V0cHV0IGRpciBiZWZvcmUgYnVpbGRpbmc/XG4gIGlmIChmbGFncy5lbXB0eU91dERpciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uZmlnLmJ1aWxkID0ge1xuICAgICAgLi4uY29uZmlnLmJ1aWxkLFxuICAgICAgZW1wdHlPdXREaXI6IGZsYWdzLmVtcHR5T3V0RGlyLFxuICAgIH07XG4gIH1cblxuICAvLyBEaWZmZXJlbnQgYmFzZSBwYXRoXG4gIGlmICh0eXBlb2YgZmxhZ3MuYmFzZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25maWcuYmFzZSA9IGZsYWdzLmJhc2U7XG4gIH1cblxuICBhd2FpdCBidWlsZCh7XG4gICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgLi4uY29uZmlnLFxuICB9KTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUlnQixTQUFBLGNBQWMsQ0FDNUIsV0FBc0IsRUFDdEIsT0FBMkIsRUFBQTtBQUUzQixJQUFBLE9BQU8sZUFBZSxDQUFDO0FBQ3JCLFFBQUEsT0FBTyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEtBQUssWUFBWTtBQUMxQyxRQUFB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
510
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvdXRpbHMvZ2FtZS50cyIsIi4uL3NyYy91dGlscy9idWlsZC50cyIsIi4uL3NyYy91dGlscy9pbmRleC50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9oYW5kbGViYXJzLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9odG1sLXBsdWdpbi50cyIsIi4uL3NyYy9wbHVnaW5zL3NlcnZlLnRzIiwiLi4vc3JjL2NvbmZpZy50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ0VudiwgUGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCBpbWFnZW1pblBsdWdpbjIgZnJvbSAndml0ZS1wbHVnaW4taW1hZ2VtaW4nO1xuaW1wb3J0IHtJbWFnZVF1YWxpdHlDb25maWd9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2VtaW5QbHVnaW4oXG4gIGVudmlyb25tZW50OiBDb25maWdFbnYsXG4gIG9wdGlvbnM6IEltYWdlUXVhbGl0eUNvbmZpZyxcbik6IFBsdWdpbiB7XG4gIHJldHVybiBpbWFnZW1pblBsdWdpbjIoe1xuICAgIGRpc2FibGU6IGVudmlyb25tZW50Lm1vZGUgIT09ICdwcm9kdWN0aW9uJyxcbiAgICBtb3pqcGVnOiB7XG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5qcGVnID8/IDgwLFxuICAgIH0sXG4gICAgcG5ncXVhbnQ6IHtcbiAgICAgIHN0cmlwOiB0cnVlLFxuICAgICAgc3BlZWQ6IDIsXG4gICAgICBkaXRoZXJpbmc6IDAuMjUsXG4gICAgICBxdWFsaXR5OiBvcHRpb25zPy5wbmcgPz8gWzAuNSwgMC43XSxcbiAgICB9LFxuICB9KSBhcyBQbHVnaW47XG59XG4iLCJpbXBvcnQge1BsdWdpbiwgUmVzb2x2ZWRDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtHYW1lU2V0dGluZ3MsIEdhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5mdW5jdGlvbiByZW5kZXJHYW1lTWFuaWZlc3QoXG4gIHBhZ2VJZDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZVNldHRpbmdzLFxuICBjb25maWc6IFJlc29sdmVkQ29uZmlnLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWFuaWZlc3QgPSB7XG4gICAgc2hvcnRfbmFtZTogYCR7c2V0dGluZ3MubWV0YS5hcHB0aXRsZX1gLFxuICAgIG5hbWU6IGAke3NldHRpbmdzLm1ldGEudGl0bGV9YCxcbiAgICBkZXNjcmlwdGlvbjogYCR7c2V0dGluZ3MubWV0YS5kZXNjcmlwdGlvbn1gLFxuICAgIHNjb3BlOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgc3RhcnRfdXJsOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgZGlzcGxheTogJ2Z1bGxzY3JlZW4nLFxuICAgIG9yaWVudGF0aW9uOiBgJHtzZXR0aW5ncy5vcHRpb25zLm9yaWVudGF0aW9uID8/ICdsYW5kc2NhcGUnfWAsXG4gICAgaWNvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvY2hyb21lLXRvdWNoLWljb24tMTkyeDE5Mi5wbmdgLFxuICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc2l6ZXM6ICcxOTJ4MTkyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNyYzogYCR7Y29uZmlnLmJhc2V9bWV0YS8ke3NldHRpbmdzLmluZm8uaWR9L2ljb25zL2ljb24ucG5nYCxcbiAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgIHNpemVzOiAnMTAyNHgxMDI0JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBiYWNrZ3JvdW5kX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICAgIHRoZW1lX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICB9O1xuXG4gIHJldHVybiBgJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgMil9XFxuYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hbmlmZXN0UGx1Z2luKGdhbWVzOiBHYW1lc1NldHRpbmdzKTogUGx1Z2luIHtcbiAgbGV0IGNvbmZpZzogUmVzb2x2ZWRDb25maWc7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndml0ZS1wbHVnaW4ta2xvZWstbWFuaWZlc3QnLFxuICAgIGVuZm9yY2U6ICdwb3N0JyxcbiAgICBhcHBseTogJ2J1aWxkJyxcbiAgICBhc3luYyBjb25maWdSZXNvbHZlZChyZXNvbHZlZENvbmZpZzogUmVzb2x2ZWRDb25maWcpIHtcbiAgICAgIGNvbmZpZyA9IHJlc29sdmVkQ29uZmlnO1xuICAgIH0sXG4gICAgZ2VuZXJhdGVCdW5kbGUoXywgYnVuZGxlKSB7XG4gICAgICAvLyBWb29yIGllZGVyZSBhcHAgZWVuIG1hbmlmZXN0IG1ha2VuOlxuICAgICAgZm9yIChjb25zdCBbcGFnZUlkLCBzZXR0aW5nc10gb2YgT2JqZWN0LmVudHJpZXMoZ2FtZXMpKSB7XG4gICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LndlYm1hbmlmZXN0YF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IHJlbmRlckdhbWVNYW5pZmVzdChwYWdlSWQsIHNldHRpbmdzLCBjb25maWcpLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LndlYm1hbmlmZXN0YCxcbiAgICAgICAgfTtcblxuICAgICAgICBidW5kbGVbYCR7cGFnZUlkfS1zZXJ2aWNld29ya2VyLmpzYF0gPSB7XG4gICAgICAgICAgaXNBc3NldDogdHJ1ZSxcbiAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzb3VyY2U6IFwic2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKCkgeyByZXR1cm47IH0pO1wiLFxuICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgbGVnYWN5UGx1Z2luIGZyb20gJ0B2aXRlanMvcGx1Z2luLWxlZ2FjeSc7XG5pbXBvcnQge1BsdWdpbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgYmFubmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWJhbm5lcic7XG5pbXBvcnQge2NyZWF0ZUh0bWxQbHVnaW59IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHtWaXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2ltYWdlbWluUGx1Z2lufSBmcm9tICcuL2xpYi9pbWFnZS1wbHVnaW4nO1xuaW1wb3J0IHttYW5pZmVzdFBsdWdpbn0gZnJvbSAnLi9saWIvbWFuaWZlc3QtcGx1Z2luJztcblxuLy8gQnVpbGQgcGx1Z2luc1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGx1Z2lucyhvcHRpb25zOiBWaXRlT3B0aW9ucyk6IFBsdWdpbltdIHtcbiAgLy8gTm8gYnVpbGQ/IG5vIHBsdWdpbnMuLlxuICBpZiAob3B0aW9ucy5lbnZpcm9ubWVudC5jb21tYW5kICE9PSAnYnVpbGQnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcGx1Z2luczogUGx1Z2luW10gPSBbXTtcblxuICBpZiAob3B0aW9ucy5jb25maWcuYnVpbGQubGVnYWN5KSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBwYWdlIHdvcmtzIGluIG9sZGVyIGJyb3dzZXJzXG4gICAgcGx1Z2lucy5wdXNoKFxuICAgICAgLi4ubGVnYWN5UGx1Z2luKHtcbiAgICAgICAgdGFyZ2V0czogKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmJyb3dzZXJzbGlzdCBhcyBzdHJpbmdbXSkgPz8gJ2RlZmF1bHRzJyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLm1hcCgoZ2FtZUlkKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVuYW1lOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgICAgdGVtcGxhdGU6IGAke2dhbWVJZH0uaHRtbGAsXG4gICAgfTtcbiAgfSk7XG5cbiAgcGx1Z2lucy5wdXNoKFxuICAgIC8vIE1pbmlmeSBpbWFnZSBhc3NldHNcbiAgICBpbWFnZW1pblBsdWdpbihvcHRpb25zLmVudmlyb25tZW50LCBvcHRpb25zLmNvbmZpZy5idWlsZC5pbWFnZVF1YWxpdHkpLFxuXG4gICAgLy8gTWFrZSB0aGUgaHRtbCBvdXRwdXQgc21hbGxlclxuICAgIC4uLihjcmVhdGVIdG1sUGx1Z2luKHttaW5pZnk6IHRydWUsIHBhZ2VzfSkgYXMgUGx1Z2luW10pLFxuXG4gICAgLy8gQWRkIGEgYmFubmVyIHRvIGdlbmVyYXRlZCBqcy9jc3NcbiAgICBiYW5uZXJQbHVnaW4oXG4gICAgICBgXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgICAgICBfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgICAgIF8gICAgICAgICAgICBfXG4gICAgICAgIC8gICkgICAgICAgICAgICAgIHwgIG8gICAgICAgICAvfCAgIC8gfCB8ICAgICAgICAgIHwgfFxuICAgICAgICBcXFxcX18gX3xfICAgICAgICAgX198ICAgICAgX18gICAgIHxfXy8gIHwgfCAgX18gICBfICB8IHxcbiAgICAgICAgICAgXFxcXCB8ICB8ICAgfCAgLyAgfCAgfCAgLyAgXFxcXF8gICB8IFxcXFwgICB8LyAgLyAgXFxcXF98LyAgfC9fKVxuICAgICAgIChfX18vIHxfLyBcXFxcXy98Xy9cXFxcXy98Xy98Xy9cXFxcX18vICAgIHwgIFxcXFxfL3xfXy9cXFxcX18vIHxfXy98IFxcXFxfL1xuXG4gICAgICAgIENvbmNlcHQsIG9udHdlcnAgJiBvbnR3aWtrZWxpbmdcbiAgICAgICAgaHR0cHM6Ly9zdHVkaW9rbG9lay5ubFxuXG4gICAgICAgIFN0dWRpbyBLbG9layDinaQgUGl4aUpTLCBHU0FQICYgaG93bGVyLmpzXG5cbiAgICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuXG5cbiAgICBgLFxuICAgICksXG4gICk7XG5cbiAgLy8gQ3JlYXRlIGEgbWFuaWZlc3QgYW5kIG1pbmltYWwgd2Vid29ya2VyIGZvciBldmVyeSBnYW1lXG4gIGlmIChvcHRpb25zLmNvbmZpZy5idWlsZC5tYW5pZmVzdCkge1xuICAgIHBsdWdpbnMucHVzaChtYW5pZmVzdFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSk7XG4gIH1cblxuICByZXR1cm4gcGx1Z2lucztcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge1xuICBHYW1lU2V0dGluZ3MsXG4gIEdhbWVTZXR0aW5nc1Byb3BlcnR5LFxuICBHYW1lc1NldHRpbmdzLFxuICBHYW1lc1NldHRpbmdzRGF0YSxcbiAgS2xvZWtWaXRlQ29uZmlnLFxuICBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZnVuY3Rpb24gbWVyZ2VHYW1lU2V0dGluZ3MoXG4gIGdlbmVyaWM6IEdhbWVTZXR0aW5ncyxcbiAgZ2FtZTogR2FtZVNldHRpbmdzLFxuICBpbmZvVHlwZXM6IEdhbWVTZXR0aW5nc1Byb3BlcnR5W10sXG4pOiBHYW1lU2V0dGluZ3Mge1xuICBjb25zdCBzZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAvLyBBbGxlIHByb3BzIG9wIMOpw6luIGxldmVsIGRpZXAgbWVyZ2VuXG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgaW5mb1R5cGVzKSB7XG4gICAgc2V0dGluZ3NbcHJvcGVydHldID0ge1xuICAgICAgLi4uZ2VuZXJpY1twcm9wZXJ0eV0sXG4gICAgICAuLi5nYW1lW3Byb3BlcnR5XSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHNldHRpbmdzIGFzIHVua25vd24gYXMgR2FtZVNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhcbiAgcGFja2FnZVNldHRpbmdzOiBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVzU2V0dGluZ3NEYXRhIHtcbiAgLy8gTWVyZ2Ugc2V0dGluZ3NcbiAgY29uc3QgaW5mb1R5cGVzID0gT2JqZWN0LmtleXMoXG4gICAgcGFja2FnZVNldHRpbmdzLmdlbmVyaWMsXG4gICkgYXMgR2FtZVNldHRpbmdzUHJvcGVydHlbXTtcbiAgY29uc3Qge2dlbmVyaWN9ID0gcGFja2FnZVNldHRpbmdzO1xuICBjb25zdCBhbGxTZXR0aW5nczogR2FtZXNTZXR0aW5nc0RhdGEgPSB7XG4gICAgZGV2ZWxvcG1lbnQ6IGdlbmVyaWMsXG4gICAgZ2FtZXM6IHt9LFxuICB9O1xuXG4gIGZvciAoY29uc3QgZ2FtZSBvZiBwYWNrYWdlU2V0dGluZ3MuZ2FtZXMgPz8gW10pIHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IG1lcmdlR2FtZVNldHRpbmdzKGdlbmVyaWMsIGdhbWUsIGluZm9UeXBlcyk7XG5cbiAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHBhZ2UgYWx0aWpkIGdlemV0IGlzXG4gICAgY29uc3QgcGFnZUlkID0gc2V0dGluZ3MuaW5mby5wYWdlID8/IHNldHRpbmdzLmluZm8uaWQgPz8gJ3Vua25vd24nO1xuICAgIHNldHRpbmdzLmluZm8ucGFnZSA9IHBhZ2VJZDtcblxuICAgIC8vIFNsYSBzZXR0aW5ncyBvcCBvbmRlciBwYWdlIGlkXG4gICAgYWxsU2V0dGluZ3MuZ2FtZXNbcGFnZUlkXSA9IHNldHRpbmdzO1xuICB9XG5cbiAgcmV0dXJuIGFsbFNldHRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aFRvR2FtZURhdGEoXG4gIGZ1bGxGaWxlUGF0aDogc3RyaW5nLFxuICBzZXR0aW5nczogR2FtZXNTZXR0aW5ncyxcbik6IEdhbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gIC8vIERldGVybWluZSBmaWxlbmFtZSB3aXRob3V0IGV4dGVuc2lvblxuICBsZXQgZmlsZVBhdGggPSBwYXRoLmJhc2VuYW1lKGZ1bGxGaWxlUGF0aCwgcGF0aC5leHRuYW1lKGZ1bGxGaWxlUGF0aCkpO1xuXG4gIC8vIERldGVybWluZSBkaXIgJiByZW1vdmUgbGVhZGluZyBzbGFzaFxuICBsZXQgZmlsZURpcmVjdG9yeSA9IHBhdGguZGlybmFtZShmdWxsRmlsZVBhdGgpO1xuICBmaWxlRGlyZWN0b3J5ID0gZmlsZURpcmVjdG9yeS5yZXBsYWNlKC9eXFwvKy9nLCAnJyk7XG5cbiAgaWYgKGZpbGVEaXJlY3RvcnkpIHtcbiAgICBmaWxlUGF0aCA9IGAke2ZpbGVEaXJlY3Rvcnl9LyR7ZmlsZVBhdGh9YDtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5nc1tmaWxlUGF0aF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlVG9TZXJ2ZShcbiAgY29uZmlnOiBLbG9la1ZpdGVDb25maWcsXG4gIHNldHRpbmdzOiBHYW1lc1NldHRpbmdzLFxuKTogc3RyaW5nIHtcbiAgLy8gSG9ldmVlbCBwYWdlcyB6aWpuIGVyP1xuICBjb25zdCBwYWdlSWRzID0gT2JqZWN0LmtleXMoc2V0dGluZ3MpO1xuICBjb25zdCBwYWdlID0gcGFnZUlkcy5sZW5ndGggPT09IDEgPyBwYWdlSWRzWzBdIDogJ2RldmVsb3BtZW50JztcblxuICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKFxuICAgIGNvbmZpZy5idWlsZC5iYXNlUGF0aCxcbiAgICBgJHtwYWdlfS5odG1sJHtjb25maWcuZGV2LnNlcnZlUGFyYW1zID8/ICcnfWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlSWRGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgcGF0aG5hbWU6IHN0cmluZztcblxuICB0cnkge1xuICAgIHBhdGhuYW1lID0gbmV3IFVSTCh1cmwsICdodHRwczovL3N0dWRpb2tsb2VrLm5sJykucGF0aG5hbWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIElmIHJlcXVlc3QgaXMgbm90IGh0bWwgLCBkaXJlY3RseSByZXR1cm4gbmV4dCgpXG4gIGlmICghcGF0aG5hbWUuZW5kc1dpdGgoJy5odG1sJykgJiYgcGF0aG5hbWUgIT09ICcvJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIFBhZ2luYSBpZCBvcHZyYWdlblxuICBjb25zdCBpbmRleCA9IHBhdGhuYW1lLmxhc3RJbmRleE9mKCcvJyk7XG4gIGNvbnN0IGZpbGVOYW1lID0gaW5kZXggPT09IC0xID8gcGF0aG5hbWUgOiBwYXRobmFtZS5zbGljZShpbmRleCArIDEpO1xuXG4gIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKCcuaHRtbCcsICcnKTtcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge0J1aWxkT3B0aW9uc30gZnJvbSAndml0ZSc7XG5pbXBvcnQge1ZpdGVPcHRpb25zfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQnVpbGRDb25maWcob3B0aW9uczogVml0ZU9wdGlvbnMpOiBCdWlsZE9wdGlvbnMge1xuICBjb25zdCBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGZvciAoY29uc3QgZ2FtZUlkIG9mIE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpKSB7XG4gICAgaW5wdXRbZ2FtZUlkXSA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnJvb3QsIGAke2dhbWVJZH0uaHRtbGApO1xuICB9XG5cbiAgLy8gTGlicyBkaWUgYXBhcnRlIGpzIGtyaWpnZW46XG4gIGNvbnN0IHZlbmRvckNodW5rcyA9IFsnZmlyZWJhc2UnLCAncGl4aScsICdsb2Rhc2gnLCAnY2FwYWNpdG9yJywgJ2dzYXAnXTtcblxuICByZXR1cm4ge1xuICAgIHJlcG9ydENvbXByZXNzZWRTaXplOiBmYWxzZSxcbiAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IDEwMDAsXG4gICAgb3V0RGlyOiAnLi4vcHVibGljJyxcbiAgICBhc3NldHNEaXI6ICdnZW5lcmF0ZWQnLFxuICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgIGlucHV0LFxuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIG1hbnVhbENodW5rcyhpZCkge1xuICAgICAgICAgIGlmIChpZC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBpZFxuICAgICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAuc3BsaXQoJ25vZGVfbW9kdWxlcy8nKVsxXVxuICAgICAgICAgICAgICAuc3BsaXQoJy8nKVswXVxuICAgICAgICAgICAgICAudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2ZW5kb3JDaHVua3MpIHtcbiAgICAgICAgICAgICAgaWYgKG5hbWUuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCB7cmVhZEZpbGVTeW5jfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJ3ZpdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEpTT04ocGF0aDogc3RyaW5nKTogdW5rbm93biB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IHJlYWRGaWxlU3luYyhwYXRoKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhLnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIHtcbiAgICAvL1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgY3dkID0gbm9ybWFsaXplUGF0aChwcm9jZXNzLmN3ZCgpKTtcblxuZXhwb3J0ICogZnJvbSAnLi9nYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQnO1xuIiwiaW1wb3J0IG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7UGx1Z2lufSBmcm9tICd2aXRlJztcbmltcG9ydCB2aXRlSGFuZGxlYmFyc1BsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1oYW5kbGViYXJzJztcbmltcG9ydCB7Vml0ZU9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtnZXRQYWdlSWRGcm9tVXJsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8vIEhlbHBlcnMgdm9vciBoYW5kbGViYXJzXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlYmFyc1BsdWdpbihcbiAgcGFydGlhbERpcmVjdG9yeTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG9wdGlvbnM6IFZpdGVPcHRpb25zLFxuKTogUGx1Z2luIHtcbiAgcmV0dXJuIHZpdGVIYW5kbGViYXJzUGx1Z2luKHtcbiAgICBwYXJ0aWFsRGlyZWN0b3J5LFxuXG4gICAgaGVscGVyczoge1xuICAgICAganNvbjogKG9iamVjdDogYW55LCBpbmRlbnQgPSAwKSA9PlxuICAgICAgICBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgaW5kZW50KSxcbiAgICAgIGNvbmNhdDogKC4uLmFyZ3VtZW50c186IGFueVtdKSA9PiBhcmd1bWVudHNfLnNsaWNlKDAsIC0xKS5qb2luKCcnKSxcbiAgICAgIGVxOiAoYTogYW55LCBiOiBhbnkpID0+IGEgPT09IGIsXG4gICAgICBuZXE6IChhOiBhbnksIGI6IGFueSkgPT4gYSAhPT0gYixcbiAgICAgIGlzZGVmaW5lZDogKHZhbHVlOiB1bmRlZmluZWQpID0+IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAncmVzb2x2ZS1yb290JyhwOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gVGlqZGVsaWprZSBoYWNrIHZvb3IgYnVnIGluIGhhbmRsZWJhcnMgcGx1Z2luXG4gICAgICAgIC8vIHppZSBvb2sgaHR0cHM6Ly9naXRodWIuY29tL2FsZXhsYWZyb3NjaWEvdml0ZS1wbHVnaW4taGFuZGxlYmFycy9wdWxsLzEyOVxuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBwKTtcbiAgICAgICAgcmV0dXJuIG9zLnBsYXRmb3JtKCkgPT09ICd3aW4zMicgPyBgLyR7cmVzb2x2ZWRQYXRofWAgOiByZXNvbHZlZFBhdGg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb250ZXh0KHBhZ2VQYXRoOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgICBjb25zdCBnYW1lSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHBhZ2VQYXRoKTtcblxuICAgICAgaWYgKCFnYW1lSWQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZ2FtZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIFBhZ2luYSBzZXR0aW5ncyB0ZXJ1Z2dldmVuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW52OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgIGRhdGE6IG9wdGlvbnMuc2V0dGluZ3MuZGV2ZWxvcG1lbnQsXG4gICAgICAgICAgZ2FtZXM6IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIE9wIGJhc2lzIHZhbiBwYWQgZGF0YSBiZXBhbGVuXG4gICAgICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXNbZ2FtZUlkXTtcblxuICAgICAgLy8gUGFnaW5hIHNldHRpbmdzIHRlcnVnZ2V2ZW5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudjogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgZGF0YTogc2V0dGluZ3MgPz8ge30sXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xufVxuIiwiaW1wb3J0IHtleGlzdHNTeW5jLCBwcm9taXNlc30gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtDb25maWdFbnYsIFBsdWdpbiwgVXNlckNvbmZpZywgVml0ZURldlNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQge0dhbWVzU2V0dGluZ3N9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtjd2QsIGdldFBhZ2VJZEZyb21Vcmx9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgUEFHRV9URU1QTEFURSA9ICd7ez4gZ2FtZSBkYXRhPWRhdGF9fSc7XG5jb25zdCBERVZFTE9QTUVOVF9URU1QTEFURSA9ICd7ez4gZGV2ZWxvcG1lbnQgZGF0YT1kYXRhfX0nO1xuXG5hc3luYyBmdW5jdGlvbiByZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gQmVzdGFhdCBkaWUgZmlsZSBub2cgbmlldD9cbiAgaWYgKCFleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgIC8vIEFhbm1ha2VuXG4gICAgYXdhaXQgcHJvbWlzZXMud3JpdGVGaWxlKGZpbGVQYXRoLCBQQUdFX1RFTVBMQVRFKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbFBsdWdpbihnYW1lczogR2FtZXNTZXR0aW5ncyk6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3ZpdGUtcGx1Z2luLWtsb2VrLWh0bWwnLFxuICAgIGVuZm9yY2U6ICdwcmUnLFxuXG4gICAgYXN5bmMgY29uZmlnKF9jb25maWc6IFVzZXJDb25maWcsIGVudmlyb25tZW50OiBDb25maWdFbnYpIHtcbiAgICAgIC8vIEJpaiBlZW4gYnVpbGQgbWFrZW4gd2UgdGlqZGVsaWprIGZpbGVzIGFhblxuICAgICAgaWYgKGVudmlyb25tZW50LmNvbW1hbmQgPT09ICdidWlsZCcpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8UHJvbWlzZTx2b2lkPj4gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhZ2VJZCBvZiBPYmplY3Qua2V5cyhnYW1lcykpIHtcbiAgICAgICAgICAvLyBQYWQgbmFhciBmaWxlXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgICAgYWN0aW9ucy5wdXNoKHJlbmRlclRlbXBvcmFyeUZpbGUoZmlsZVBhdGgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyOiBWaXRlRGV2U2VydmVyKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAvLyBab3JnIGVyIHZvb3IgZGF0IHRpamRlbnMgZGV2ZWxvcG1lbnQgZGUgcGFnaW5hIGdlLXJlbmRlcmVkIHRlcnVnIGdlZ2V2ZW4gd29yZHQgd29yZHRcbiAgICAgICAgc2VydmVyLm1pZGRsZXdhcmVzLnVzZSgnLycsIGFzeW5jIChyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVybCA9IHJlcXVlc3Q/LnVybCA/PyAnJztcbiAgICAgICAgICBjb25zdCBwYWdlSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHVybCk7XG5cbiAgICAgICAgICBpZiAoIXBhZ2VJZCkge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYWdlSWQgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIC8vIERldmVsb3BtZW50PyBnZWVmIHRlcnVnLi4uXG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIERFVkVMT1BNRU5UX1RFTVBMQVRFLFxuICAgICAgICAgICAgICAgIHJlcXVlc3Qub3JpZ2luYWxVcmwsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LmtleXMoZ2FtZXMpLmluY2x1ZGVzKHBhZ2VJZCkpIHtcbiAgICAgICAgICAgIC8vIEJlc3RhYW5kZSBnYW1lPyB6b3JnIGVyIHZvb3IgZGF0IGRlIHRlbXBsYXRlIGdlLXJlbmRlcmVkIHdvcmR0XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGF3YWl0IHNlcnZlci50cmFuc2Zvcm1JbmRleEh0bWwoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIFBBR0VfVEVNUExBVEUsXG4gICAgICAgICAgICAgICAgcmVxdWVzdC5vcmlnaW5hbFVybCxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5pa3MgZ2V2b25kZW5cbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZCgnNDA0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSxcblxuICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgLy8gVmVyd2lqZGVyIGRlIGFhbmdlbWFha3RlIGZpbGVzXG4gICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxQcm9taXNlPHZvaWQ+PiA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgIGlmIChleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2gocHJvbWlzZXMucm0oZmlsZVBhdGgpKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtzdmVsdGV9IGZyb20gJ0BzdmVsdGVqcy92aXRlLXBsdWdpbi1zdmVsdGUnO1xuaW1wb3J0IHtQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGZ1bGxSZWxvYWQgZnJvbSAndml0ZS1wbHVnaW4tZnVsbC1yZWxvYWQnO1xuaW1wb3J0IHRzY29uZmlnUGF0aHNQbHVnaW4gZnJvbSAndml0ZS10c2NvbmZpZy1wYXRocyc7XG5pbXBvcnQgbWtjZXJ0IGZyb20gJ3ZpdGUtcGx1Z2luLW1rY2VydCc7XG5pbXBvcnQge1ZpdGVPcHRpb25zfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7Y3dkfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2hhbmRsZWJhcnNQbHVnaW59IGZyb20gJy4vbGliL2hhbmRsZWJhcnMtcGx1Z2luJztcbmltcG9ydCB7aHRtbFBsdWdpbn0gZnJvbSAnLi9saWIvaHRtbC1wbHVnaW4nO1xuaW1wb3J0IGNoZWNrZXIgZnJvbSAndml0ZS1wbHVnaW4tY2hlY2tlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2ZVBsdWdpbnMob3B0aW9uczogVml0ZU9wdGlvbnMpOiBQbHVnaW5bXSB7XG4gIHJldHVybiBbXG4gICAgaHRtbFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcblxuICAgIC4uLnN2ZWx0ZSh7XG4gICAgICAvLyBIb3Q6IGZhbHNlLFxuICAgICAgZXhwZXJpbWVudGFsOiB7XG4gICAgICAgIHByZWJ1bmRsZVN2ZWx0ZUxpYnJhcmllczogdHJ1ZSxcbiAgICAgICAgdXNlVml0ZVByZXByb2Nlc3M6IHRydWUsXG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgdHNjb25maWdQYXRoc1BsdWdpbih7XG4gICAgICByb290OiBwYXRoLnJlc29sdmUoY3dkKSxcbiAgICAgIGV4dGVuc2lvbnM6IFsnLnRzJywgJy5qc29uJ10sXG4gICAgICBsb29zZTogdHJ1ZSxcbiAgICB9KSxcblxuICAgIGZ1bGxSZWxvYWQoWydzY3JpcHQvKiovKi50cycsICdzdmVsdGUvKiovKi5zdmVsdGUnXSwge1xuICAgICAgcm9vdDogcGF0aC5qb2luKHBhdGgucmVzb2x2ZShjd2QpLCAnc291cmNlJyksXG4gICAgICBsb2c6IHRydWUsXG4gICAgICBhbHdheXM6IHRydWUsXG4gICAgfSkgYXMgUGx1Z2luLFxuXG4gICAgaGFuZGxlYmFyc1BsdWdpbihvcHRpb25zLmNvbmZpZy5zZXJ2ZS5wYXJ0aWFscywgb3B0aW9ucyksXG5cbiAgICBta2NlcnQoKSxcblxuICAgIGNoZWNrZXIoeyBcbiAgICAgIHR5cGVzY3JpcHQ6IHtcbiAgICAgICAgYnVpbGRNb2RlOnRydWVcbiAgICAgIH1cbiAgICB9KSxcbiAgXTtcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge2ZpbGVVUkxUb1BhdGh9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB0eXBlIHtDb25maWdFbnYsIFVzZXJDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtidWlsZFBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucy9idWlsZCc7XG5pbXBvcnQge3NlcnZlUGx1Z2luc30gZnJvbSAnLi9wbHVnaW5zL3NlcnZlJztcbmltcG9ydCB7XG4gIGN3ZCxcbiAgZGVmaW5lQnVpbGRDb25maWcsXG4gIGdldFBhZ2VUb1NlcnZlLFxuICBwYXJzZVBhY2thZ2VHYW1lc1NldHRpbmdzLFxuICByZWFkSlNPTixcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgdHlwZSB7XG4gIEtsb2VrVml0ZUNvbmZpZyxcbiAgUGFja2FnZUdhbWVzU2V0dGluZ3MsXG4gIFZpdGVPcHRpb25zLFxufSBmcm9tICcuL3V0aWxzL2ludGVyZmFjZXMnO1xuXG5jb25zdCBfX2Rpcm5hbWUgPSBwYXRoLmRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlZmluZUtsb2VrVml0ZUNvbmZpZyhcbiAgZW52aXJvbm1lbnQ6IENvbmZpZ0Vudixcbik6IFByb21pc2U8VXNlckNvbmZpZz4ge1xuICBjb25zdCBwa2cgPSByZWFkSlNPTihwYXRoLnJlc29sdmUoY3dkLCAncGFja2FnZS5qc29uJykpIGFzIFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgdW5rbm93blxuICA+O1xuICBjb25zdCBrbG9la0NvbmZpZyA9IHBrZy52aXRlIGFzIEtsb2VrVml0ZUNvbmZpZztcbiAgY29uc3QgYnJvd3NlcnNsaXN0ID0gcGtnLmJyb3dzZXJzbGlzdCBhcyBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgY29uc3Qgb3B0aW9uczogVml0ZU9wdGlvbnMgPSB7XG4gICAgcm9vdDogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScpLFxuICAgIGVudmlyb25tZW50LFxuICAgIHNldHRpbmdzOiBwYXJzZVBhY2thZ2VHYW1lc1NldHRpbmdzKHBrZy5zZXR0aW5ncyBhcyBQYWNrYWdlR2FtZXNTZXR0aW5ncyksXG4gICAgY29uZmlnOiB7XG4gICAgICAuLi5rbG9la0NvbmZpZyxcbiAgICAgIGJ1aWxkOiB7Li4ua2xvZWtDb25maWcuYnVpbGQsIGJyb3dzZXJzbGlzdH0sXG4gICAgICBzZXJ2ZToge1xuICAgICAgICBwYXJ0aWFsczogW1xuICAgICAgICAgIHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdwYXJ0aWFscycpLFxuICAgICAgICAgIHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnLCAncGFydGlhbHMnKSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBjb25maWc6IFVzZXJDb25maWcgPSB7XG4gICAgbG9nTGV2ZWw6ICdpbmZvJyxcbiAgICBiYXNlOiBrbG9la0NvbmZpZy5idWlsZC5iYXNlUGF0aCxcbiAgICByb290OiBvcHRpb25zLnJvb3QsXG4gICAgZW52RGlyOiBwYXRoLnJlc29sdmUoY3dkLCAnZW52JyksXG4gICAgZW52UHJlZml4OiBbJ0tMT0VLXycsICdWSVRFXyddLFxuICAgIHB1YmxpY0RpcjogJ3N0YXRpYycsXG4gICAgZGVmaW5lOiB7fSxcblxuICAgIGVzYnVpbGQ6IHtcbiAgICAgIGxlZ2FsQ29tbWVudHM6ICdub25lJyxcbiAgICB9LFxuXG4gICAgcmVzb2x2ZToge1xuICAgICAgZGVkdXBlOiBbXG4gICAgICAgICdAc3R1ZGlva2xvZWsvdHMtY29yZS1saWInLFxuICAgICAgICAnQGNhcGFjaXRvci9hcHAnLFxuICAgICAgICAnQGNhcGFjaXRvci9jb3JlJyxcbiAgICAgICAgJ0BjYXBhY2l0b3IvZGV2aWNlJyxcbiAgICAgICAgJ0BjYXBhY2l0b3IvbmV0d29yaycsXG4gICAgICAgICdAY2FwYWNpdG9yL3NwbGFzaC1zY3JlZW4nLFxuICAgICAgICAnQGNhcGFjaXRvci9zdGF0dXMtYmFyJyxcbiAgICAgICAgJ0BjYXBhY2l0b3IvcHJlZmVyZW5jZXMnLFxuICAgICAgICAnYm93c2VyJyxcbiAgICAgICAgJ2ZvbnRmYWNlb2JzZXJ2ZXInLFxuICAgICAgICAnZ3NhcCcsXG4gICAgICAgICdob3dsZXInLFxuICAgICAgICAnbG9kYXNoLWRlY29yYXRvcnMtZXNtJyxcbiAgICAgICAgJ2xvZGFzaC1lcycsXG4gICAgICAgICdwaXhpLXNwaW5lJyxcbiAgICAgICAgJ3BpeGkuanMnLFxuICAgICAgICAncHVic3ViLWpzJyxcbiAgICAgICAgJ3JhbmRvbS1qcycsXG4gICAgICAgICdyZXNzJyxcbiAgICAgICAgJ3NsdWdpZnknLFxuICAgICAgICAnc3VwZXJhZ2VudCcsXG4gICAgICAgICd0cy1ldmVudHMnLFxuICAgICAgICAndHMtbWl4ZXInLFxuICAgICAgICAndHNsaWInLFxuICAgICAgXSxcbiAgICAgIGFsaWFzOiB7XG4gICAgICAgIGxvZGFzaDogJ2xvZGFzaC1lcycsXG4gICAgICAgICdAbWV0YSc6IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnLCAnc3RhdGljJywgJ21ldGEnKSxcbiAgICAgICAgJ0Bmb250cyc6IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnLCAnc3RhdGljJywgJ2ZvbnRzJyksXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjc3M6IHtcbiAgICAgIHByZXByb2Nlc3Nvck9wdGlvbnM6IHtcbiAgICAgICAgc2Nzczoge1xuICAgICAgICAgIGNoYXJzZXQ6IGZhbHNlLFxuICAgICAgICAgIC8vIEFkZGl0aW9uYWxEYXRhOiBgQGNoYXJzZXQgXCJVVEYtOFwiYCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHBsdWdpbnM6IFsuLi5zZXJ2ZVBsdWdpbnMob3B0aW9ucyldLFxuICB9O1xuXG4gIHN3aXRjaCAoZW52aXJvbm1lbnQuY29tbWFuZCkge1xuICAgIGNhc2UgJ3NlcnZlJzpcbiAgICAgIGNvbmZpZy5zZXJ2ZXIgPSB7XG4gICAgICAgIGhvc3Q6IHRydWUsXG4gICAgICAgIGh0dHBzOiB0cnVlLFxuICAgICAgICBvcGVuOiBnZXRQYWdlVG9TZXJ2ZShvcHRpb25zLmNvbmZpZywgb3B0aW9ucy5zZXR0aW5ncy5nYW1lcyksXG4gICAgICB9O1xuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2J1aWxkJzpcbiAgICAgIGNvbmZpZy5idWlsZCA9IGRlZmluZUJ1aWxkQ29uZmlnKG9wdGlvbnMpO1xuICAgICAgY29uZmlnLnBsdWdpbnMgPSBbXG4gICAgICAgIC4uLihjb25maWcucGx1Z2lucyA/IGNvbmZpZy5wbHVnaW5zIDogW10pLFxuICAgICAgICAuLi5idWlsZFBsdWdpbnMob3B0aW9ucyksXG4gICAgICBdO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cbiIsImltcG9ydCB7VHlwZWRGbGFnc30gZnJvbSAnbWVvdyc7XG5pbXBvcnQge2J1aWxkLCBjcmVhdGVTZXJ2ZXJ9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtkZWZpbmVLbG9la1ZpdGVDb25maWd9IGZyb20gJy4vY29uZmlnJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrRGV2ZWxvcG1lbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGRlZmluZUtsb2VrVml0ZUNvbmZpZyh7XG4gICAgY29tbWFuZDogJ3NlcnZlJyxcbiAgICBtb2RlOiAnZGV2ZWxvcG1lbnQnLFxuICB9KTtcblxuICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBjcmVhdGVTZXJ2ZXIoe1xuICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgIC4uLmNvbmZpZyxcbiAgfSk7XG5cbiAgYXdhaXQgc2VydmVyLmxpc3RlbigpO1xuICBzZXJ2ZXIucHJpbnRVcmxzKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBrbG9la0J1aWxkKFxuICBmbGFnczogVHlwZWRGbGFnczx7XG4gICAgZW1wdHlPdXREaXI6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJztcbiAgICAgIGFsaWFzOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0OiB0cnVlO1xuICAgIH07XG4gICAgYmFzZToge1xuICAgICAgdHlwZTogJ3N0cmluZyc7XG4gICAgICBhbGlhczogc3RyaW5nO1xuICAgICAgZGVmYXVsdDogc3RyaW5nO1xuICAgIH07XG4gIH0+LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGRlZmluZUtsb2VrVml0ZUNvbmZpZyh7XG4gICAgY29tbWFuZDogJ2J1aWxkJyxcbiAgICBtb2RlOiAncHJvZHVjdGlvbicsXG4gIH0pO1xuXG4gIC8vIEVtcHR5IG91dCB0aGUgT3V0cHV0IGRpciBiZWZvcmUgYnVpbGRpbmc/XG4gIGlmIChmbGFncy5lbXB0eU91dERpciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uZmlnLmJ1aWxkID0ge1xuICAgICAgLi4uY29uZmlnLmJ1aWxkLFxuICAgICAgZW1wdHlPdXREaXI6IGZsYWdzLmVtcHR5T3V0RGlyLFxuICAgIH07XG4gIH1cblxuICAvLyBEaWZmZXJlbnQgYmFzZSBwYXRoXG4gIGlmICh0eXBlb2YgZmxhZ3MuYmFzZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25maWcuYmFzZSA9IGZsYWdzLmJhc2U7XG4gIH1cblxuICBhd2FpdCBidWlsZCh7XG4gICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgLi4uY29uZmlnLFxuICB9KTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUlnQixTQUFBLGNBQWMsQ0FDNUIsV0FBc0IsRUFDdEIsT0FBMkIsRUFBQTtBQUUzQixJQUFBLE9BQU8sZUFBZSxDQUFDO0FBQ3JCLFFBQUEsT0FBTyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEtBQUssWUFBWTtBQUMxQyxR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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studiokloek/vite-config",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
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.",
@@ -90,7 +90,7 @@
90
90
  "sass": "^1.54.9",
91
91
  "svelte": "^3.50.1",
92
92
  "terser": "^5.15.0",
93
- "vite": "v3.1.0",
93
+ "vite": "v3.1.1",
94
94
  "vite-plugin-banner": "^0.5.0",
95
95
  "vite-plugin-checker": "^0.5.1",
96
96
  "vite-plugin-full-reload": "^1.0.4",
@@ -102,10 +102,10 @@
102
102
  "vite-tsconfig-paths": "^3.5.0"
103
103
  },
104
104
  "devDependencies": {
105
- "@microsoft/api-extractor": "^7.31.0",
105
+ "@microsoft/api-extractor": "^7.31.1",
106
106
  "@rollup/plugin-node-resolve": "^14.1.0",
107
107
  "@rollup/plugin-typescript": "^8.5.0",
108
- "@sveltejs/kit": "^1.0.0-next.481",
108
+ "@sveltejs/kit": "^1.0.0-next.483",
109
109
  "@types/ejs": "^3.1.1",
110
110
  "@types/estree": "^1.0.0",
111
111
  "@types/html-minifier-terser": "^7.0.0",
@@ -119,6 +119,6 @@
119
119
  "resolutions": {
120
120
  "@types/estree": "^1.0.0",
121
121
  "@types/node": "^18.7.18",
122
- "vite": "v3.1.0"
122
+ "vite": "v3.1.1"
123
123
  }
124
124
  }