@kulupu-linku/sona 0.3.2 → 0.3.5

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/client.js CHANGED
@@ -162,4 +162,4 @@ const g = (e) => {
162
162
  export {
163
163
  g as client
164
164
  };
165
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlcyI6WyIuLi9ub2RlX21vZHVsZXMvLnBucG0vaG9ub0A0LjMuMC9ub2RlX21vZHVsZXMvaG9uby9kaXN0L3V0aWxzL2Nvb2tpZS5qcyIsIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9ob25vQDQuMy4wL25vZGVfbW9kdWxlcy9ob25vL2Rpc3QvY2xpZW50L3V0aWxzLmpzIiwiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2hvbm9ANC4zLjAvbm9kZV9tb2R1bGVzL2hvbm8vZGlzdC9jbGllbnQvY2xpZW50LmpzIiwiLi4vc3JjL2xpYi9jbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL3V0aWxzL2Nvb2tpZS50c1xuaW1wb3J0IHsgZGVjb2RlVVJJQ29tcG9uZW50XyB9IGZyb20gXCIuL3VybC5qc1wiO1xudmFyIGFsZ29yaXRobSA9IHsgbmFtZTogXCJITUFDXCIsIGhhc2g6IFwiU0hBLTI1NlwiIH07XG52YXIgZ2V0Q3J5cHRvS2V5ID0gYXN5bmMgKHNlY3JldCkgPT4ge1xuICBjb25zdCBzZWNyZXRCdWYgPSB0eXBlb2Ygc2VjcmV0ID09PSBcInN0cmluZ1wiID8gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHNlY3JldCkgOiBzZWNyZXQ7XG4gIHJldHVybiBhd2FpdCBjcnlwdG8uc3VidGxlLmltcG9ydEtleShcInJhd1wiLCBzZWNyZXRCdWYsIGFsZ29yaXRobSwgZmFsc2UsIFtcInNpZ25cIiwgXCJ2ZXJpZnlcIl0pO1xufTtcbnZhciBtYWtlU2lnbmF0dXJlID0gYXN5bmMgKHZhbHVlLCBzZWNyZXQpID0+IHtcbiAgY29uc3Qga2V5ID0gYXdhaXQgZ2V0Q3J5cHRvS2V5KHNlY3JldCk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuc2lnbihhbGdvcml0aG0ubmFtZSwga2V5LCBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodmFsdWUpKTtcbiAgcmV0dXJuIGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5uZXcgVWludDhBcnJheShzaWduYXR1cmUpKSk7XG59O1xudmFyIHZlcmlmeVNpZ25hdHVyZSA9IGFzeW5jIChiYXNlNjRTaWduYXR1cmUsIHZhbHVlLCBzZWNyZXQpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzaWduYXR1cmVCaW5TdHIgPSBhdG9iKGJhc2U2NFNpZ25hdHVyZSk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gbmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlQmluU3RyLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHNpZ25hdHVyZUJpblN0ci5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgc2lnbmF0dXJlW2ldID0gc2lnbmF0dXJlQmluU3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCBjcnlwdG8uc3VidGxlLnZlcmlmeShhbGdvcml0aG0sIHNlY3JldCwgc2lnbmF0dXJlLCBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodmFsdWUpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcbnZhciB2YWxpZENvb2tpZU5hbWVSZWdFeCA9IC9eW1xcdyEjJCUmJyouXmB8fistXSskLztcbnZhciB2YWxpZENvb2tpZVZhbHVlUmVnRXggPSAvXlsgISMtOjwtW1xcXS1+XSokLztcbnZhciBwYXJzZSA9IChjb29raWUsIG5hbWUpID0+IHtcbiAgY29uc3QgcGFpcnMgPSBjb29raWUudHJpbSgpLnNwbGl0KFwiO1wiKTtcbiAgcmV0dXJuIHBhaXJzLnJlZHVjZSgocGFyc2VkQ29va2llLCBwYWlyU3RyKSA9PiB7XG4gICAgcGFpclN0ciA9IHBhaXJTdHIudHJpbSgpO1xuICAgIGNvbnN0IHZhbHVlU3RhcnRQb3MgPSBwYWlyU3RyLmluZGV4T2YoXCI9XCIpO1xuICAgIGlmICh2YWx1ZVN0YXJ0UG9zID09PSAtMSkge1xuICAgICAgcmV0dXJuIHBhcnNlZENvb2tpZTtcbiAgICB9XG4gICAgY29uc3QgY29va2llTmFtZSA9IHBhaXJTdHIuc3Vic3RyaW5nKDAsIHZhbHVlU3RhcnRQb3MpLnRyaW0oKTtcbiAgICBpZiAobmFtZSAmJiBuYW1lICE9PSBjb29raWVOYW1lIHx8ICF2YWxpZENvb2tpZU5hbWVSZWdFeC50ZXN0KGNvb2tpZU5hbWUpKSB7XG4gICAgICByZXR1cm4gcGFyc2VkQ29va2llO1xuICAgIH1cbiAgICBsZXQgY29va2llVmFsdWUgPSBwYWlyU3RyLnN1YnN0cmluZyh2YWx1ZVN0YXJ0UG9zICsgMSkudHJpbSgpO1xuICAgIGlmIChjb29raWVWYWx1ZS5zdGFydHNXaXRoKCdcIicpICYmIGNvb2tpZVZhbHVlLmVuZHNXaXRoKCdcIicpKSB7XG4gICAgICBjb29raWVWYWx1ZSA9IGNvb2tpZVZhbHVlLnNsaWNlKDEsIC0xKTtcbiAgICB9XG4gICAgaWYgKHZhbGlkQ29va2llVmFsdWVSZWdFeC50ZXN0KGNvb2tpZVZhbHVlKSkge1xuICAgICAgcGFyc2VkQ29va2llW2Nvb2tpZU5hbWVdID0gZGVjb2RlVVJJQ29tcG9uZW50Xyhjb29raWVWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZWRDb29raWU7XG4gIH0sIHt9KTtcbn07XG52YXIgcGFyc2VTaWduZWQgPSBhc3luYyAoY29va2llLCBzZWNyZXQsIG5hbWUpID0+IHtcbiAgY29uc3QgcGFyc2VkQ29va2llID0ge307XG4gIGNvbnN0IHNlY3JldEtleSA9IGF3YWl0IGdldENyeXB0b0tleShzZWNyZXQpO1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXJzZShjb29raWUsIG5hbWUpKSkge1xuICAgIGNvbnN0IHNpZ25hdHVyZVN0YXJ0UG9zID0gdmFsdWUubGFzdEluZGV4T2YoXCIuXCIpO1xuICAgIGlmIChzaWduYXR1cmVTdGFydFBvcyA8IDEpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBzaWduZWRWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBzaWduYXR1cmVTdGFydFBvcyk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gdmFsdWUuc3Vic3RyaW5nKHNpZ25hdHVyZVN0YXJ0UG9zICsgMSk7XG4gICAgaWYgKHNpZ25hdHVyZS5sZW5ndGggIT09IDQ0IHx8ICFzaWduYXR1cmUuZW5kc1dpdGgoXCI9XCIpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgaXNWZXJpZmllZCA9IGF3YWl0IHZlcmlmeVNpZ25hdHVyZShzaWduYXR1cmUsIHNpZ25lZFZhbHVlLCBzZWNyZXRLZXkpO1xuICAgIHBhcnNlZENvb2tpZVtrZXldID0gaXNWZXJpZmllZCA/IHNpZ25lZFZhbHVlIDogZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHBhcnNlZENvb2tpZTtcbn07XG52YXIgX3NlcmlhbGl6ZSA9IChuYW1lLCB2YWx1ZSwgb3B0ID0ge30pID0+IHtcbiAgbGV0IGNvb2tpZSA9IGAke25hbWV9PSR7dmFsdWV9YDtcbiAgaWYgKG5hbWUuc3RhcnRzV2l0aChcIl9fU2VjdXJlLVwiKSAmJiAhb3B0LnNlY3VyZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIl9fU2VjdXJlLSBDb29raWUgbXVzdCBoYXZlIFNlY3VyZSBhdHRyaWJ1dGVzXCIpO1xuICB9XG4gIGlmIChuYW1lLnN0YXJ0c1dpdGgoXCJfX0hvc3QtXCIpKSB7XG4gICAgaWYgKCFvcHQuc2VjdXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJfX0hvc3QtIENvb2tpZSBtdXN0IGhhdmUgU2VjdXJlIGF0dHJpYnV0ZXNcIik7XG4gICAgfVxuICAgIGlmIChvcHQucGF0aCAhPT0gXCIvXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignX19Ib3N0LSBDb29raWUgbXVzdCBoYXZlIFBhdGggYXR0cmlidXRlcyB3aXRoIFwiL1wiJyk7XG4gICAgfVxuICAgIGlmIChvcHQuZG9tYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJfX0hvc3QtIENvb2tpZSBtdXN0IG5vdCBoYXZlIERvbWFpbiBhdHRyaWJ1dGVzXCIpO1xuICAgIH1cbiAgfVxuICBpZiAob3B0ICYmIHR5cGVvZiBvcHQubWF4QWdlID09PSBcIm51bWJlclwiICYmIG9wdC5tYXhBZ2UgPj0gMCkge1xuICAgIGlmIChvcHQubWF4QWdlID4gMzQ1NmU0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ29va2llcyBNYXgtQWdlIFNIT1VMRCBOT1QgYmUgZ3JlYXRlciB0aGFuIDQwMCBkYXlzICgzNDU2MDAwMCBzZWNvbmRzKSBpbiBkdXJhdGlvbi5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29va2llICs9IGA7IE1heC1BZ2U9JHtNYXRoLmZsb29yKG9wdC5tYXhBZ2UpfWA7XG4gIH1cbiAgaWYgKG9wdC5kb21haW4gJiYgb3B0LnByZWZpeCAhPT0gXCJob3N0XCIpIHtcbiAgICBjb29raWUgKz0gYDsgRG9tYWluPSR7b3B0LmRvbWFpbn1gO1xuICB9XG4gIGlmIChvcHQucGF0aCkge1xuICAgIGNvb2tpZSArPSBgOyBQYXRoPSR7b3B0LnBhdGh9YDtcbiAgfVxuICBpZiAob3B0LmV4cGlyZXMpIHtcbiAgICBpZiAob3B0LmV4cGlyZXMuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA+IDM0NTZlNykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNvb2tpZXMgRXhwaXJlcyBTSE9VTEQgTk9UIGJlIGdyZWF0ZXIgdGhhbiA0MDAgZGF5cyAoMzQ1NjAwMDAgc2Vjb25kcykgaW4gdGhlIGZ1dHVyZS5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29va2llICs9IGA7IEV4cGlyZXM9JHtvcHQuZXhwaXJlcy50b1VUQ1N0cmluZygpfWA7XG4gIH1cbiAgaWYgKG9wdC5odHRwT25seSkge1xuICAgIGNvb2tpZSArPSBcIjsgSHR0cE9ubHlcIjtcbiAgfVxuICBpZiAob3B0LnNlY3VyZSkge1xuICAgIGNvb2tpZSArPSBcIjsgU2VjdXJlXCI7XG4gIH1cbiAgaWYgKG9wdC5zYW1lU2l0ZSkge1xuICAgIGNvb2tpZSArPSBgOyBTYW1lU2l0ZT0ke29wdC5zYW1lU2l0ZX1gO1xuICB9XG4gIGlmIChvcHQucGFydGl0aW9uZWQpIHtcbiAgICBpZiAoIW9wdC5zZWN1cmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcnRpdGlvbmVkIENvb2tpZSBtdXN0IGhhdmUgU2VjdXJlIGF0dHJpYnV0ZXNcIik7XG4gICAgfVxuICAgIGNvb2tpZSArPSBcIjsgUGFydGl0aW9uZWRcIjtcbiAgfVxuICByZXR1cm4gY29va2llO1xufTtcbnZhciBzZXJpYWxpemUgPSAobmFtZSwgdmFsdWUsIG9wdCkgPT4ge1xuICB2YWx1ZSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gIHJldHVybiBfc2VyaWFsaXplKG5hbWUsIHZhbHVlLCBvcHQpO1xufTtcbnZhciBzZXJpYWxpemVTaWduZWQgPSBhc3luYyAobmFtZSwgdmFsdWUsIHNlY3JldCwgb3B0ID0ge30pID0+IHtcbiAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgbWFrZVNpZ25hdHVyZSh2YWx1ZSwgc2VjcmV0KTtcbiAgdmFsdWUgPSBgJHt2YWx1ZX0uJHtzaWduYXR1cmV9YDtcbiAgdmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICByZXR1cm4gX3NlcmlhbGl6ZShuYW1lLCB2YWx1ZSwgb3B0KTtcbn07XG5leHBvcnQge1xuICBwYXJzZSxcbiAgcGFyc2VTaWduZWQsXG4gIHNlcmlhbGl6ZSxcbiAgc2VyaWFsaXplU2lnbmVkXG59O1xuIiwiLy8gc3JjL2NsaWVudC91dGlscy50c1xudmFyIG1lcmdlUGF0aCA9IChiYXNlLCBwYXRoKSA9PiB7XG4gIGJhc2UgPSBiYXNlLnJlcGxhY2UoL1xcLyskLywgXCJcIik7XG4gIGJhc2UgPSBiYXNlICsgXCIvXCI7XG4gIHBhdGggPSBwYXRoLnJlcGxhY2UoL15cXC8rLywgXCJcIik7XG4gIHJldHVybiBiYXNlICsgcGF0aDtcbn07XG52YXIgcmVwbGFjZVVybFBhcmFtID0gKHVybFN0cmluZywgcGFyYW1zKSA9PiB7XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKFwiLzpcIiArIGsgKyBcIig/OntbXi9dK30pP1wiKTtcbiAgICB1cmxTdHJpbmcgPSB1cmxTdHJpbmcucmVwbGFjZShyZWcsIGAvJHt2fWApO1xuICB9XG4gIHJldHVybiB1cmxTdHJpbmc7XG59O1xudmFyIHJlcGxhY2VVcmxQcm90b2NvbCA9ICh1cmxTdHJpbmcsIHByb3RvY29sKSA9PiB7XG4gIHN3aXRjaCAocHJvdG9jb2wpIHtcbiAgICBjYXNlIFwid3NcIjpcbiAgICAgIHJldHVybiB1cmxTdHJpbmcucmVwbGFjZSgvXmh0dHAvLCBcIndzXCIpO1xuICAgIGNhc2UgXCJodHRwXCI6XG4gICAgICByZXR1cm4gdXJsU3RyaW5nLnJlcGxhY2UoL153cy8sIFwiaHR0cFwiKTtcbiAgfVxufTtcbnZhciByZW1vdmVJbmRleFN0cmluZyA9ICh1cmxTdGluZykgPT4ge1xuICBpZiAoL15odHRwcz86XFwvXFwvW15cXC9dKz9cXC9pbmRleCQvLnRlc3QodXJsU3RpbmcpKSB7XG4gICAgcmV0dXJuIHVybFN0aW5nLnJlcGxhY2UoL1xcL2luZGV4JC8sIFwiL1wiKTtcbiAgfVxuICByZXR1cm4gdXJsU3RpbmcucmVwbGFjZSgvXFwvaW5kZXgkLywgXCJcIik7XG59O1xuZnVuY3Rpb24gaXNPYmplY3QoaXRlbSkge1xuICByZXR1cm4gdHlwZW9mIGl0ZW0gPT09IFwib2JqZWN0XCIgJiYgaXRlbSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShpdGVtKTtcbn1cbmZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAoIWlzT2JqZWN0KHRhcmdldCkgJiYgIWlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICByZXR1cm4gc291cmNlO1xuICB9XG4gIGNvbnN0IG1lcmdlZCA9IHsgLi4udGFyZ2V0IH07XG4gIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgIGNvbnN0IHZhbHVlID0gc291cmNlW2tleV07XG4gICAgaWYgKGlzT2JqZWN0KG1lcmdlZFtrZXldKSAmJiBpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIG1lcmdlZFtrZXldID0gZGVlcE1lcmdlKG1lcmdlZFtrZXldLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlZFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBtZXJnZWQ7XG59XG5leHBvcnQge1xuICBkZWVwTWVyZ2UsXG4gIG1lcmdlUGF0aCxcbiAgcmVtb3ZlSW5kZXhTdHJpbmcsXG4gIHJlcGxhY2VVcmxQYXJhbSxcbiAgcmVwbGFjZVVybFByb3RvY29sXG59O1xuIiwiLy8gc3JjL2NsaWVudC9jbGllbnQudHNcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gXCIuLi91dGlscy9jb29raWUuanNcIjtcbmltcG9ydCB7XG4gIGRlZXBNZXJnZSxcbiAgbWVyZ2VQYXRoLFxuICByZW1vdmVJbmRleFN0cmluZyxcbiAgcmVwbGFjZVVybFBhcmFtLFxuICByZXBsYWNlVXJsUHJvdG9jb2xcbn0gZnJvbSBcIi4vdXRpbHMuanNcIjtcbnZhciBjcmVhdGVQcm94eSA9IChjYWxsYmFjaywgcGF0aCkgPT4ge1xuICBjb25zdCBwcm94eSA9IG5ldyBQcm94eSgoKSA9PiB7XG4gIH0sIHtcbiAgICBnZXQoX29iaiwga2V5KSB7XG4gICAgICBpZiAodHlwZW9mIGtleSAhPT0gXCJzdHJpbmdcIiB8fCBrZXkgPT09IFwidGhlblwiKSB7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlUHJveHkoY2FsbGJhY2ssIFsuLi5wYXRoLCBrZXldKTtcbiAgICB9LFxuICAgIGFwcGx5KF8xLCBfMiwgYXJncykge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgYXJnc1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHByb3h5O1xufTtcbnZhciBDbGllbnRSZXF1ZXN0SW1wbCA9IGNsYXNzIHtcbiAgdXJsO1xuICBtZXRob2Q7XG4gIHF1ZXJ5UGFyYW1zID0gdm9pZCAwO1xuICBwYXRoUGFyYW1zID0ge307XG4gIHJCb2R5O1xuICBjVHlwZSA9IHZvaWQgMDtcbiAgY29uc3RydWN0b3IodXJsLCBtZXRob2QpIHtcbiAgICB0aGlzLnVybCA9IHVybDtcbiAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgfVxuICBmZXRjaCA9IGFzeW5jIChhcmdzLCBvcHQpID0+IHtcbiAgICBpZiAoYXJncykge1xuICAgICAgaWYgKGFyZ3MucXVlcnkpIHtcbiAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoYXJncy5xdWVyeSkpIHtcbiAgICAgICAgICBpZiAodiA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcyB8fD0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHYyIG9mIHYpIHtcbiAgICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5hcHBlbmQoaywgdjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnNldChrLCB2KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChhcmdzLmZvcm0pIHtcbiAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhhcmdzLmZvcm0pKSB7XG4gICAgICAgICAgZm9ybS5hcHBlbmQoaywgdik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yQm9keSA9IGZvcm07XG4gICAgICB9XG4gICAgICBpZiAoYXJncy5qc29uKSB7XG4gICAgICAgIHRoaXMuckJvZHkgPSBKU09OLnN0cmluZ2lmeShhcmdzLmpzb24pO1xuICAgICAgICB0aGlzLmNUeXBlID0gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICB9XG4gICAgICBpZiAoYXJncy5wYXJhbSkge1xuICAgICAgICB0aGlzLnBhdGhQYXJhbXMgPSBhcmdzLnBhcmFtO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgbWV0aG9kVXBwZXJDYXNlID0gdGhpcy5tZXRob2QudG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBoZWFkZXJWYWx1ZXMgPSB7XG4gICAgICAuLi5hcmdzPy5oZWFkZXIgPz8ge30sXG4gICAgICAuLi50eXBlb2Ygb3B0Py5oZWFkZXJzID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBvcHQuaGVhZGVycygpIDogb3B0Py5oZWFkZXJzID8gb3B0LmhlYWRlcnMgOiB7fVxuICAgIH07XG4gICAgaWYgKGFyZ3M/LmNvb2tpZSkge1xuICAgICAgY29uc3QgY29va2llcyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYXJncy5jb29raWUpKSB7XG4gICAgICAgIGNvb2tpZXMucHVzaChzZXJpYWxpemUoa2V5LCB2YWx1ZSwgeyBwYXRoOiBcIi9cIiB9KSk7XG4gICAgICB9XG4gICAgICBoZWFkZXJWYWx1ZXNbXCJDb29raWVcIl0gPSBjb29raWVzLmpvaW4oXCIsXCIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jVHlwZSkge1xuICAgICAgaGVhZGVyVmFsdWVzW1wiQ29udGVudC1UeXBlXCJdID0gdGhpcy5jVHlwZTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlclZhbHVlcyA/PyB2b2lkIDApO1xuICAgIGxldCB1cmwgPSB0aGlzLnVybDtcbiAgICB1cmwgPSByZW1vdmVJbmRleFN0cmluZyh1cmwpO1xuICAgIHVybCA9IHJlcGxhY2VVcmxQYXJhbSh1cmwsIHRoaXMucGF0aFBhcmFtcyk7XG4gICAgaWYgKHRoaXMucXVlcnlQYXJhbXMpIHtcbiAgICAgIHVybCA9IHVybCArIFwiP1wiICsgdGhpcy5xdWVyeVBhcmFtcy50b1N0cmluZygpO1xuICAgIH1cbiAgICBtZXRob2RVcHBlckNhc2UgPSB0aGlzLm1ldGhvZC50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IHNldEJvZHkgPSAhKG1ldGhvZFVwcGVyQ2FzZSA9PT0gXCJHRVRcIiB8fCBtZXRob2RVcHBlckNhc2UgPT09IFwiSEVBRFwiKTtcbiAgICByZXR1cm4gKG9wdD8uZmV0Y2ggfHwgZmV0Y2gpKHVybCwge1xuICAgICAgYm9keTogc2V0Qm9keSA/IHRoaXMuckJvZHkgOiB2b2lkIDAsXG4gICAgICBtZXRob2Q6IG1ldGhvZFVwcGVyQ2FzZSxcbiAgICAgIGhlYWRlcnMsXG4gICAgICAuLi5vcHQ/LmluaXRcbiAgICB9KTtcbiAgfTtcbn07XG52YXIgaGMgPSAoYmFzZVVybCwgb3B0aW9ucykgPT4gY3JlYXRlUHJveHkoZnVuY3Rpb24gcHJveHlDYWxsYmFjayhvcHRzKSB7XG4gIGNvbnN0IHBhcnRzID0gWy4uLm9wdHMucGF0aF07XG4gIGlmIChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSA9PT0gXCJ0b1N0cmluZ1wiKSB7XG4gICAgaWYgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDJdID09PSBcIm5hbWVcIikge1xuICAgICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDNdIHx8IFwiXCI7XG4gICAgfVxuICAgIHJldHVybiBwcm94eUNhbGxiYWNrLnRvU3RyaW5nKCk7XG4gIH1cbiAgaWYgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdID09PSBcInZhbHVlT2ZcIikge1xuICAgIGlmIChwYXJ0c1twYXJ0cy5sZW5ndGggLSAyXSA9PT0gXCJuYW1lXCIpIHtcbiAgICAgIHJldHVybiBwYXJ0c1twYXJ0cy5sZW5ndGggLSAzXSB8fCBcIlwiO1xuICAgIH1cbiAgICByZXR1cm4gcHJveHlDYWxsYmFjaztcbiAgfVxuICBsZXQgbWV0aG9kID0gXCJcIjtcbiAgaWYgKC9eXFwkLy50ZXN0KHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdKSkge1xuICAgIGNvbnN0IGxhc3QgPSBwYXJ0cy5wb3AoKTtcbiAgICBpZiAobGFzdCkge1xuICAgICAgbWV0aG9kID0gbGFzdC5yZXBsYWNlKC9eXFwkLywgXCJcIik7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhdGggPSBwYXJ0cy5qb2luKFwiL1wiKTtcbiAgY29uc3QgdXJsID0gbWVyZ2VQYXRoKGJhc2VVcmwsIHBhdGgpO1xuICBpZiAobWV0aG9kID09PSBcInVybFwiKSB7XG4gICAgaWYgKG9wdHMuYXJnc1swXSAmJiBvcHRzLmFyZ3NbMF0ucGFyYW0pIHtcbiAgICAgIHJldHVybiBuZXcgVVJMKHJlcGxhY2VVcmxQYXJhbSh1cmwsIG9wdHMuYXJnc1swXS5wYXJhbSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFVSTCh1cmwpO1xuICB9XG4gIGlmIChtZXRob2QgPT09IFwid3NcIikge1xuICAgIGNvbnN0IHRhcmdldFVybCA9IHJlcGxhY2VVcmxQcm90b2NvbChcbiAgICAgIG9wdHMuYXJnc1swXSAmJiBvcHRzLmFyZ3NbMF0ucGFyYW0gPyByZXBsYWNlVXJsUGFyYW0odXJsLCBvcHRzLmFyZ3NbMF0ucGFyYW0pIDogdXJsLFxuICAgICAgXCJ3c1wiXG4gICAgKTtcbiAgICByZXR1cm4gbmV3IFdlYlNvY2tldCh0YXJnZXRVcmwpO1xuICB9XG4gIGNvbnN0IHJlcSA9IG5ldyBDbGllbnRSZXF1ZXN0SW1wbCh1cmwsIG1ldGhvZCk7XG4gIGlmIChtZXRob2QpIHtcbiAgICBvcHRpb25zID8/PSB7fTtcbiAgICBjb25zdCBhcmdzID0gZGVlcE1lcmdlKG9wdGlvbnMsIHsgLi4ub3B0cy5hcmdzWzFdID8/IHt9IH0pO1xuICAgIHJldHVybiByZXEuZmV0Y2gob3B0cy5hcmdzWzBdLCBhcmdzKTtcbiAgfVxuICByZXR1cm4gcmVxO1xufSwgW10pO1xuZXhwb3J0IHtcbiAgaGNcbn07XG4iLCJpbXBvcnQgeyBoYyB9IGZyb20gXCJob25vL2NsaWVudFwiO1xuaW1wb3J0IHR5cGUgeyBBcHBUeXBlIH0gZnJvbSBcIiRzZXJ2ZXJcIjtcblxuZXhwb3J0IGNvbnN0IGNsaWVudCA9IChhcmdzPzogeyBiYXNlVXJsPzogc3RyaW5nOyBmZXRjaD86ICh0eXBlb2YgZ2xvYmFsVGhpcylbXCJmZXRjaFwiXSB9KSA9PiB7XG5cdGNvbnN0IHsgYmFzZVVybCA9IFwiaHR0cHM6Ly9hcGkubGlua3UubGFcIiwgZmV0Y2ggPSBnbG9iYWxUaGlzLmZldGNoIH0gPSBhcmdzID8/IHt9O1xuXHRyZXR1cm4gaGM8QXBwVHlwZT4oYmFzZVVybCwge1xuXHRcdGZldGNoLFxuXHR9KTtcbn07XG5cbmV4cG9ydCB0eXBlIEFwaVR5cGUgPSBBcHBUeXBlO1xuIl0sIm5hbWVzIjpbIl9zZXJpYWxpemUiLCJuYW1lIiwidmFsdWUiLCJvcHQiLCJjb29raWUiLCJzZXJpYWxpemUiLCJtZXJnZVBhdGgiLCJiYXNlIiwicGF0aCIsInJlcGxhY2VVcmxQYXJhbSIsInVybFN0cmluZyIsInBhcmFtcyIsImsiLCJ2IiwicmVnIiwicmVwbGFjZVVybFByb3RvY29sIiwicHJvdG9jb2wiLCJyZW1vdmVJbmRleFN0cmluZyIsInVybFN0aW5nIiwiaXNPYmplY3QiLCJpdGVtIiwiZGVlcE1lcmdlIiwidGFyZ2V0Iiwic291cmNlIiwibWVyZ2VkIiwia2V5IiwiY3JlYXRlUHJveHkiLCJjYWxsYmFjayIsIl9vYmoiLCJfMSIsIl8yIiwiYXJncyIsIkNsaWVudFJlcXVlc3RJbXBsIiwidXJsIiwibWV0aG9kIiwiX19wdWJsaWNGaWVsZCIsInYyIiwiZm9ybSIsIm1ldGhvZFVwcGVyQ2FzZSIsImhlYWRlclZhbHVlcyIsImNvb2tpZXMiLCJoZWFkZXJzIiwic2V0Qm9keSIsImhjIiwiYmFzZVVybCIsIm9wdGlvbnMiLCJwcm94eUNhbGxiYWNrIiwi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
165
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlcyI6WyIuLi9ub2RlX21vZHVsZXMvLnBucG0vaG9ub0A0LjMuNi9ub2RlX21vZHVsZXMvaG9uby9kaXN0L3V0aWxzL2Nvb2tpZS5qcyIsIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9ob25vQDQuMy42L25vZGVfbW9kdWxlcy9ob25vL2Rpc3QvY2xpZW50L3V0aWxzLmpzIiwiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2hvbm9ANC4zLjYvbm9kZV9tb2R1bGVzL2hvbm8vZGlzdC9jbGllbnQvY2xpZW50LmpzIiwiLi4vc3JjL2xpYi9jbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL3V0aWxzL2Nvb2tpZS50c1xuaW1wb3J0IHsgZGVjb2RlVVJJQ29tcG9uZW50XyB9IGZyb20gXCIuL3VybC5qc1wiO1xudmFyIGFsZ29yaXRobSA9IHsgbmFtZTogXCJITUFDXCIsIGhhc2g6IFwiU0hBLTI1NlwiIH07XG52YXIgZ2V0Q3J5cHRvS2V5ID0gYXN5bmMgKHNlY3JldCkgPT4ge1xuICBjb25zdCBzZWNyZXRCdWYgPSB0eXBlb2Ygc2VjcmV0ID09PSBcInN0cmluZ1wiID8gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHNlY3JldCkgOiBzZWNyZXQ7XG4gIHJldHVybiBhd2FpdCBjcnlwdG8uc3VidGxlLmltcG9ydEtleShcInJhd1wiLCBzZWNyZXRCdWYsIGFsZ29yaXRobSwgZmFsc2UsIFtcInNpZ25cIiwgXCJ2ZXJpZnlcIl0pO1xufTtcbnZhciBtYWtlU2lnbmF0dXJlID0gYXN5bmMgKHZhbHVlLCBzZWNyZXQpID0+IHtcbiAgY29uc3Qga2V5ID0gYXdhaXQgZ2V0Q3J5cHRvS2V5KHNlY3JldCk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuc2lnbihhbGdvcml0aG0ubmFtZSwga2V5LCBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodmFsdWUpKTtcbiAgcmV0dXJuIGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5uZXcgVWludDhBcnJheShzaWduYXR1cmUpKSk7XG59O1xudmFyIHZlcmlmeVNpZ25hdHVyZSA9IGFzeW5jIChiYXNlNjRTaWduYXR1cmUsIHZhbHVlLCBzZWNyZXQpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzaWduYXR1cmVCaW5TdHIgPSBhdG9iKGJhc2U2NFNpZ25hdHVyZSk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gbmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlQmluU3RyLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHNpZ25hdHVyZUJpblN0ci5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgc2lnbmF0dXJlW2ldID0gc2lnbmF0dXJlQmluU3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCBjcnlwdG8uc3VidGxlLnZlcmlmeShhbGdvcml0aG0sIHNlY3JldCwgc2lnbmF0dXJlLCBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodmFsdWUpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcbnZhciB2YWxpZENvb2tpZU5hbWVSZWdFeCA9IC9eW1xcdyEjJCUmJyouXmB8fistXSskLztcbnZhciB2YWxpZENvb2tpZVZhbHVlUmVnRXggPSAvXlsgISMtOjwtW1xcXS1+XSokLztcbnZhciBwYXJzZSA9IChjb29raWUsIG5hbWUpID0+IHtcbiAgY29uc3QgcGFpcnMgPSBjb29raWUudHJpbSgpLnNwbGl0KFwiO1wiKTtcbiAgcmV0dXJuIHBhaXJzLnJlZHVjZSgocGFyc2VkQ29va2llLCBwYWlyU3RyKSA9PiB7XG4gICAgcGFpclN0ciA9IHBhaXJTdHIudHJpbSgpO1xuICAgIGNvbnN0IHZhbHVlU3RhcnRQb3MgPSBwYWlyU3RyLmluZGV4T2YoXCI9XCIpO1xuICAgIGlmICh2YWx1ZVN0YXJ0UG9zID09PSAtMSkge1xuICAgICAgcmV0dXJuIHBhcnNlZENvb2tpZTtcbiAgICB9XG4gICAgY29uc3QgY29va2llTmFtZSA9IHBhaXJTdHIuc3Vic3RyaW5nKDAsIHZhbHVlU3RhcnRQb3MpLnRyaW0oKTtcbiAgICBpZiAobmFtZSAmJiBuYW1lICE9PSBjb29raWVOYW1lIHx8ICF2YWxpZENvb2tpZU5hbWVSZWdFeC50ZXN0KGNvb2tpZU5hbWUpKSB7XG4gICAgICByZXR1cm4gcGFyc2VkQ29va2llO1xuICAgIH1cbiAgICBsZXQgY29va2llVmFsdWUgPSBwYWlyU3RyLnN1YnN0cmluZyh2YWx1ZVN0YXJ0UG9zICsgMSkudHJpbSgpO1xuICAgIGlmIChjb29raWVWYWx1ZS5zdGFydHNXaXRoKCdcIicpICYmIGNvb2tpZVZhbHVlLmVuZHNXaXRoKCdcIicpKSB7XG4gICAgICBjb29raWVWYWx1ZSA9IGNvb2tpZVZhbHVlLnNsaWNlKDEsIC0xKTtcbiAgICB9XG4gICAgaWYgKHZhbGlkQ29va2llVmFsdWVSZWdFeC50ZXN0KGNvb2tpZVZhbHVlKSkge1xuICAgICAgcGFyc2VkQ29va2llW2Nvb2tpZU5hbWVdID0gZGVjb2RlVVJJQ29tcG9uZW50Xyhjb29raWVWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZWRDb29raWU7XG4gIH0sIHt9KTtcbn07XG52YXIgcGFyc2VTaWduZWQgPSBhc3luYyAoY29va2llLCBzZWNyZXQsIG5hbWUpID0+IHtcbiAgY29uc3QgcGFyc2VkQ29va2llID0ge307XG4gIGNvbnN0IHNlY3JldEtleSA9IGF3YWl0IGdldENyeXB0b0tleShzZWNyZXQpO1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXJzZShjb29raWUsIG5hbWUpKSkge1xuICAgIGNvbnN0IHNpZ25hdHVyZVN0YXJ0UG9zID0gdmFsdWUubGFzdEluZGV4T2YoXCIuXCIpO1xuICAgIGlmIChzaWduYXR1cmVTdGFydFBvcyA8IDEpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBzaWduZWRWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBzaWduYXR1cmVTdGFydFBvcyk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gdmFsdWUuc3Vic3RyaW5nKHNpZ25hdHVyZVN0YXJ0UG9zICsgMSk7XG4gICAgaWYgKHNpZ25hdHVyZS5sZW5ndGggIT09IDQ0IHx8ICFzaWduYXR1cmUuZW5kc1dpdGgoXCI9XCIpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgaXNWZXJpZmllZCA9IGF3YWl0IHZlcmlmeVNpZ25hdHVyZShzaWduYXR1cmUsIHNpZ25lZFZhbHVlLCBzZWNyZXRLZXkpO1xuICAgIHBhcnNlZENvb2tpZVtrZXldID0gaXNWZXJpZmllZCA/IHNpZ25lZFZhbHVlIDogZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHBhcnNlZENvb2tpZTtcbn07XG52YXIgX3NlcmlhbGl6ZSA9IChuYW1lLCB2YWx1ZSwgb3B0ID0ge30pID0+IHtcbiAgbGV0IGNvb2tpZSA9IGAke25hbWV9PSR7dmFsdWV9YDtcbiAgaWYgKG5hbWUuc3RhcnRzV2l0aChcIl9fU2VjdXJlLVwiKSAmJiAhb3B0LnNlY3VyZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIl9fU2VjdXJlLSBDb29raWUgbXVzdCBoYXZlIFNlY3VyZSBhdHRyaWJ1dGVzXCIpO1xuICB9XG4gIGlmIChuYW1lLnN0YXJ0c1dpdGgoXCJfX0hvc3QtXCIpKSB7XG4gICAgaWYgKCFvcHQuc2VjdXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJfX0hvc3QtIENvb2tpZSBtdXN0IGhhdmUgU2VjdXJlIGF0dHJpYnV0ZXNcIik7XG4gICAgfVxuICAgIGlmIChvcHQucGF0aCAhPT0gXCIvXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignX19Ib3N0LSBDb29raWUgbXVzdCBoYXZlIFBhdGggYXR0cmlidXRlcyB3aXRoIFwiL1wiJyk7XG4gICAgfVxuICAgIGlmIChvcHQuZG9tYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJfX0hvc3QtIENvb2tpZSBtdXN0IG5vdCBoYXZlIERvbWFpbiBhdHRyaWJ1dGVzXCIpO1xuICAgIH1cbiAgfVxuICBpZiAob3B0ICYmIHR5cGVvZiBvcHQubWF4QWdlID09PSBcIm51bWJlclwiICYmIG9wdC5tYXhBZ2UgPj0gMCkge1xuICAgIGlmIChvcHQubWF4QWdlID4gMzQ1NmU0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ29va2llcyBNYXgtQWdlIFNIT1VMRCBOT1QgYmUgZ3JlYXRlciB0aGFuIDQwMCBkYXlzICgzNDU2MDAwMCBzZWNvbmRzKSBpbiBkdXJhdGlvbi5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29va2llICs9IGA7IE1heC1BZ2U9JHtNYXRoLmZsb29yKG9wdC5tYXhBZ2UpfWA7XG4gIH1cbiAgaWYgKG9wdC5kb21haW4gJiYgb3B0LnByZWZpeCAhPT0gXCJob3N0XCIpIHtcbiAgICBjb29raWUgKz0gYDsgRG9tYWluPSR7b3B0LmRvbWFpbn1gO1xuICB9XG4gIGlmIChvcHQucGF0aCkge1xuICAgIGNvb2tpZSArPSBgOyBQYXRoPSR7b3B0LnBhdGh9YDtcbiAgfVxuICBpZiAob3B0LmV4cGlyZXMpIHtcbiAgICBpZiAob3B0LmV4cGlyZXMuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA+IDM0NTZlNykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNvb2tpZXMgRXhwaXJlcyBTSE9VTEQgTk9UIGJlIGdyZWF0ZXIgdGhhbiA0MDAgZGF5cyAoMzQ1NjAwMDAgc2Vjb25kcykgaW4gdGhlIGZ1dHVyZS5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29va2llICs9IGA7IEV4cGlyZXM9JHtvcHQuZXhwaXJlcy50b1VUQ1N0cmluZygpfWA7XG4gIH1cbiAgaWYgKG9wdC5odHRwT25seSkge1xuICAgIGNvb2tpZSArPSBcIjsgSHR0cE9ubHlcIjtcbiAgfVxuICBpZiAob3B0LnNlY3VyZSkge1xuICAgIGNvb2tpZSArPSBcIjsgU2VjdXJlXCI7XG4gIH1cbiAgaWYgKG9wdC5zYW1lU2l0ZSkge1xuICAgIGNvb2tpZSArPSBgOyBTYW1lU2l0ZT0ke29wdC5zYW1lU2l0ZX1gO1xuICB9XG4gIGlmIChvcHQucGFydGl0aW9uZWQpIHtcbiAgICBpZiAoIW9wdC5zZWN1cmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcnRpdGlvbmVkIENvb2tpZSBtdXN0IGhhdmUgU2VjdXJlIGF0dHJpYnV0ZXNcIik7XG4gICAgfVxuICAgIGNvb2tpZSArPSBcIjsgUGFydGl0aW9uZWRcIjtcbiAgfVxuICByZXR1cm4gY29va2llO1xufTtcbnZhciBzZXJpYWxpemUgPSAobmFtZSwgdmFsdWUsIG9wdCkgPT4ge1xuICB2YWx1ZSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gIHJldHVybiBfc2VyaWFsaXplKG5hbWUsIHZhbHVlLCBvcHQpO1xufTtcbnZhciBzZXJpYWxpemVTaWduZWQgPSBhc3luYyAobmFtZSwgdmFsdWUsIHNlY3JldCwgb3B0ID0ge30pID0+IHtcbiAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgbWFrZVNpZ25hdHVyZSh2YWx1ZSwgc2VjcmV0KTtcbiAgdmFsdWUgPSBgJHt2YWx1ZX0uJHtzaWduYXR1cmV9YDtcbiAgdmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICByZXR1cm4gX3NlcmlhbGl6ZShuYW1lLCB2YWx1ZSwgb3B0KTtcbn07XG5leHBvcnQge1xuICBwYXJzZSxcbiAgcGFyc2VTaWduZWQsXG4gIHNlcmlhbGl6ZSxcbiAgc2VyaWFsaXplU2lnbmVkXG59O1xuIiwiLy8gc3JjL2NsaWVudC91dGlscy50c1xudmFyIG1lcmdlUGF0aCA9IChiYXNlLCBwYXRoKSA9PiB7XG4gIGJhc2UgPSBiYXNlLnJlcGxhY2UoL1xcLyskLywgXCJcIik7XG4gIGJhc2UgPSBiYXNlICsgXCIvXCI7XG4gIHBhdGggPSBwYXRoLnJlcGxhY2UoL15cXC8rLywgXCJcIik7XG4gIHJldHVybiBiYXNlICsgcGF0aDtcbn07XG52YXIgcmVwbGFjZVVybFBhcmFtID0gKHVybFN0cmluZywgcGFyYW1zKSA9PiB7XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKFwiLzpcIiArIGsgKyBcIig/OntbXi9dK30pP1wiKTtcbiAgICB1cmxTdHJpbmcgPSB1cmxTdHJpbmcucmVwbGFjZShyZWcsIGAvJHt2fWApO1xuICB9XG4gIHJldHVybiB1cmxTdHJpbmc7XG59O1xudmFyIHJlcGxhY2VVcmxQcm90b2NvbCA9ICh1cmxTdHJpbmcsIHByb3RvY29sKSA9PiB7XG4gIHN3aXRjaCAocHJvdG9jb2wpIHtcbiAgICBjYXNlIFwid3NcIjpcbiAgICAgIHJldHVybiB1cmxTdHJpbmcucmVwbGFjZSgvXmh0dHAvLCBcIndzXCIpO1xuICAgIGNhc2UgXCJodHRwXCI6XG4gICAgICByZXR1cm4gdXJsU3RyaW5nLnJlcGxhY2UoL153cy8sIFwiaHR0cFwiKTtcbiAgfVxufTtcbnZhciByZW1vdmVJbmRleFN0cmluZyA9ICh1cmxTdGluZykgPT4ge1xuICBpZiAoL15odHRwcz86XFwvXFwvW15cXC9dKz9cXC9pbmRleCQvLnRlc3QodXJsU3RpbmcpKSB7XG4gICAgcmV0dXJuIHVybFN0aW5nLnJlcGxhY2UoL1xcL2luZGV4JC8sIFwiL1wiKTtcbiAgfVxuICByZXR1cm4gdXJsU3RpbmcucmVwbGFjZSgvXFwvaW5kZXgkLywgXCJcIik7XG59O1xuZnVuY3Rpb24gaXNPYmplY3QoaXRlbSkge1xuICByZXR1cm4gdHlwZW9mIGl0ZW0gPT09IFwib2JqZWN0XCIgJiYgaXRlbSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShpdGVtKTtcbn1cbmZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAoIWlzT2JqZWN0KHRhcmdldCkgJiYgIWlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICByZXR1cm4gc291cmNlO1xuICB9XG4gIGNvbnN0IG1lcmdlZCA9IHsgLi4udGFyZ2V0IH07XG4gIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgIGNvbnN0IHZhbHVlID0gc291cmNlW2tleV07XG4gICAgaWYgKGlzT2JqZWN0KG1lcmdlZFtrZXldKSAmJiBpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIG1lcmdlZFtrZXldID0gZGVlcE1lcmdlKG1lcmdlZFtrZXldLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlZFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBtZXJnZWQ7XG59XG5leHBvcnQge1xuICBkZWVwTWVyZ2UsXG4gIG1lcmdlUGF0aCxcbiAgcmVtb3ZlSW5kZXhTdHJpbmcsXG4gIHJlcGxhY2VVcmxQYXJhbSxcbiAgcmVwbGFjZVVybFByb3RvY29sXG59O1xuIiwiLy8gc3JjL2NsaWVudC9jbGllbnQudHNcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gXCIuLi91dGlscy9jb29raWUuanNcIjtcbmltcG9ydCB7XG4gIGRlZXBNZXJnZSxcbiAgbWVyZ2VQYXRoLFxuICByZW1vdmVJbmRleFN0cmluZyxcbiAgcmVwbGFjZVVybFBhcmFtLFxuICByZXBsYWNlVXJsUHJvdG9jb2xcbn0gZnJvbSBcIi4vdXRpbHMuanNcIjtcbnZhciBjcmVhdGVQcm94eSA9IChjYWxsYmFjaywgcGF0aCkgPT4ge1xuICBjb25zdCBwcm94eSA9IG5ldyBQcm94eSgoKSA9PiB7XG4gIH0sIHtcbiAgICBnZXQoX29iaiwga2V5KSB7XG4gICAgICBpZiAodHlwZW9mIGtleSAhPT0gXCJzdHJpbmdcIiB8fCBrZXkgPT09IFwidGhlblwiKSB7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlUHJveHkoY2FsbGJhY2ssIFsuLi5wYXRoLCBrZXldKTtcbiAgICB9LFxuICAgIGFwcGx5KF8xLCBfMiwgYXJncykge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgYXJnc1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHByb3h5O1xufTtcbnZhciBDbGllbnRSZXF1ZXN0SW1wbCA9IGNsYXNzIHtcbiAgdXJsO1xuICBtZXRob2Q7XG4gIHF1ZXJ5UGFyYW1zID0gdm9pZCAwO1xuICBwYXRoUGFyYW1zID0ge307XG4gIHJCb2R5O1xuICBjVHlwZSA9IHZvaWQgMDtcbiAgY29uc3RydWN0b3IodXJsLCBtZXRob2QpIHtcbiAgICB0aGlzLnVybCA9IHVybDtcbiAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgfVxuICBmZXRjaCA9IGFzeW5jIChhcmdzLCBvcHQpID0+IHtcbiAgICBpZiAoYXJncykge1xuICAgICAgaWYgKGFyZ3MucXVlcnkpIHtcbiAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoYXJncy5xdWVyeSkpIHtcbiAgICAgICAgICBpZiAodiA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcyB8fD0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHYyIG9mIHYpIHtcbiAgICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5hcHBlbmQoaywgdjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnNldChrLCB2KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChhcmdzLmZvcm0pIHtcbiAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhhcmdzLmZvcm0pKSB7XG4gICAgICAgICAgZm9ybS5hcHBlbmQoaywgdik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yQm9keSA9IGZvcm07XG4gICAgICB9XG4gICAgICBpZiAoYXJncy5qc29uKSB7XG4gICAgICAgIHRoaXMuckJvZHkgPSBKU09OLnN0cmluZ2lmeShhcmdzLmpzb24pO1xuICAgICAgICB0aGlzLmNUeXBlID0gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICB9XG4gICAgICBpZiAoYXJncy5wYXJhbSkge1xuICAgICAgICB0aGlzLnBhdGhQYXJhbXMgPSBhcmdzLnBhcmFtO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgbWV0aG9kVXBwZXJDYXNlID0gdGhpcy5tZXRob2QudG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBoZWFkZXJWYWx1ZXMgPSB7XG4gICAgICAuLi5hcmdzPy5oZWFkZXIgPz8ge30sXG4gICAgICAuLi50eXBlb2Ygb3B0Py5oZWFkZXJzID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBvcHQuaGVhZGVycygpIDogb3B0Py5oZWFkZXJzID8gb3B0LmhlYWRlcnMgOiB7fVxuICAgIH07XG4gICAgaWYgKGFyZ3M/LmNvb2tpZSkge1xuICAgICAgY29uc3QgY29va2llcyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYXJncy5jb29raWUpKSB7XG4gICAgICAgIGNvb2tpZXMucHVzaChzZXJpYWxpemUoa2V5LCB2YWx1ZSwgeyBwYXRoOiBcIi9cIiB9KSk7XG4gICAgICB9XG4gICAgICBoZWFkZXJWYWx1ZXNbXCJDb29raWVcIl0gPSBjb29raWVzLmpvaW4oXCIsXCIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jVHlwZSkge1xuICAgICAgaGVhZGVyVmFsdWVzW1wiQ29udGVudC1UeXBlXCJdID0gdGhpcy5jVHlwZTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlclZhbHVlcyA/PyB2b2lkIDApO1xuICAgIGxldCB1cmwgPSB0aGlzLnVybDtcbiAgICB1cmwgPSByZW1vdmVJbmRleFN0cmluZyh1cmwpO1xuICAgIHVybCA9IHJlcGxhY2VVcmxQYXJhbSh1cmwsIHRoaXMucGF0aFBhcmFtcyk7XG4gICAgaWYgKHRoaXMucXVlcnlQYXJhbXMpIHtcbiAgICAgIHVybCA9IHVybCArIFwiP1wiICsgdGhpcy5xdWVyeVBhcmFtcy50b1N0cmluZygpO1xuICAgIH1cbiAgICBtZXRob2RVcHBlckNhc2UgPSB0aGlzLm1ldGhvZC50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IHNldEJvZHkgPSAhKG1ldGhvZFVwcGVyQ2FzZSA9PT0gXCJHRVRcIiB8fCBtZXRob2RVcHBlckNhc2UgPT09IFwiSEVBRFwiKTtcbiAgICByZXR1cm4gKG9wdD8uZmV0Y2ggfHwgZmV0Y2gpKHVybCwge1xuICAgICAgYm9keTogc2V0Qm9keSA/IHRoaXMuckJvZHkgOiB2b2lkIDAsXG4gICAgICBtZXRob2Q6IG1ldGhvZFVwcGVyQ2FzZSxcbiAgICAgIGhlYWRlcnMsXG4gICAgICAuLi5vcHQ/LmluaXRcbiAgICB9KTtcbiAgfTtcbn07XG52YXIgaGMgPSAoYmFzZVVybCwgb3B0aW9ucykgPT4gY3JlYXRlUHJveHkoZnVuY3Rpb24gcHJveHlDYWxsYmFjayhvcHRzKSB7XG4gIGNvbnN0IHBhcnRzID0gWy4uLm9wdHMucGF0aF07XG4gIGlmIChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSA9PT0gXCJ0b1N0cmluZ1wiKSB7XG4gICAgaWYgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDJdID09PSBcIm5hbWVcIikge1xuICAgICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDNdIHx8IFwiXCI7XG4gICAgfVxuICAgIHJldHVybiBwcm94eUNhbGxiYWNrLnRvU3RyaW5nKCk7XG4gIH1cbiAgaWYgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdID09PSBcInZhbHVlT2ZcIikge1xuICAgIGlmIChwYXJ0c1twYXJ0cy5sZW5ndGggLSAyXSA9PT0gXCJuYW1lXCIpIHtcbiAgICAgIHJldHVybiBwYXJ0c1twYXJ0cy5sZW5ndGggLSAzXSB8fCBcIlwiO1xuICAgIH1cbiAgICByZXR1cm4gcHJveHlDYWxsYmFjaztcbiAgfVxuICBsZXQgbWV0aG9kID0gXCJcIjtcbiAgaWYgKC9eXFwkLy50ZXN0KHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdKSkge1xuICAgIGNvbnN0IGxhc3QgPSBwYXJ0cy5wb3AoKTtcbiAgICBpZiAobGFzdCkge1xuICAgICAgbWV0aG9kID0gbGFzdC5yZXBsYWNlKC9eXFwkLywgXCJcIik7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhdGggPSBwYXJ0cy5qb2luKFwiL1wiKTtcbiAgY29uc3QgdXJsID0gbWVyZ2VQYXRoKGJhc2VVcmwsIHBhdGgpO1xuICBpZiAobWV0aG9kID09PSBcInVybFwiKSB7XG4gICAgaWYgKG9wdHMuYXJnc1swXSAmJiBvcHRzLmFyZ3NbMF0ucGFyYW0pIHtcbiAgICAgIHJldHVybiBuZXcgVVJMKHJlcGxhY2VVcmxQYXJhbSh1cmwsIG9wdHMuYXJnc1swXS5wYXJhbSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFVSTCh1cmwpO1xuICB9XG4gIGlmIChtZXRob2QgPT09IFwid3NcIikge1xuICAgIGNvbnN0IHRhcmdldFVybCA9IHJlcGxhY2VVcmxQcm90b2NvbChcbiAgICAgIG9wdHMuYXJnc1swXSAmJiBvcHRzLmFyZ3NbMF0ucGFyYW0gPyByZXBsYWNlVXJsUGFyYW0odXJsLCBvcHRzLmFyZ3NbMF0ucGFyYW0pIDogdXJsLFxuICAgICAgXCJ3c1wiXG4gICAgKTtcbiAgICByZXR1cm4gbmV3IFdlYlNvY2tldCh0YXJnZXRVcmwpO1xuICB9XG4gIGNvbnN0IHJlcSA9IG5ldyBDbGllbnRSZXF1ZXN0SW1wbCh1cmwsIG1ldGhvZCk7XG4gIGlmIChtZXRob2QpIHtcbiAgICBvcHRpb25zID8/PSB7fTtcbiAgICBjb25zdCBhcmdzID0gZGVlcE1lcmdlKG9wdGlvbnMsIHsgLi4ub3B0cy5hcmdzWzFdID8/IHt9IH0pO1xuICAgIHJldHVybiByZXEuZmV0Y2gob3B0cy5hcmdzWzBdLCBhcmdzKTtcbiAgfVxuICByZXR1cm4gcmVxO1xufSwgW10pO1xuZXhwb3J0IHtcbiAgaGNcbn07XG4iLCJpbXBvcnQgeyBoYyB9IGZyb20gXCJob25vL2NsaWVudFwiO1xuaW1wb3J0IHR5cGUgeyBBcHBUeXBlIH0gZnJvbSBcIi4uL3NlcnZlclwiO1xuXG5leHBvcnQgY29uc3QgY2xpZW50ID0gKGFyZ3M/OiB7IGJhc2VVcmw/OiBzdHJpbmc7IGZldGNoPzogKHR5cGVvZiBnbG9iYWxUaGlzKVtcImZldGNoXCJdIH0pID0+IHtcblx0Y29uc3QgeyBiYXNlVXJsID0gXCJodHRwczovL2FwaS5saW5rdS5sYVwiLCBmZXRjaCA9IGdsb2JhbFRoaXMuZmV0Y2ggfSA9IGFyZ3MgPz8ge307XG5cdHJldHVybiBoYzxBcHBUeXBlPihiYXNlVXJsLCB7XG5cdFx0ZmV0Y2gsXG5cdH0pO1xufTtcblxuZXhwb3J0IHR5cGUgQXBpVHlwZSA9IEFwcFR5cGU7XG4iXSwibmFtZXMiOlsiX3NlcmlhbGl6ZSIsIm5hbWUiLCJ2YWx1ZSIsIm9wdCIsImNvb2tpZSIsInNlcmlhbGl6ZSIsIm1lcmdlUGF0aCIsImJhc2UiLCJwYXRoIiwicmVwbGFjZVVybFBhcmFtIiwidXJsU3RyaW5nIiwicGFyYW1zIiwiayIsInYiLCJyZWciLCJyZXBsYWNlVXJsUHJvdG9jb2wiLCJwcm90b2NvbCIsInJlbW92ZUluZGV4U3RyaW5nIiwidXJsU3RpbmciLCJpc09iamVjdCIsIml0ZW0iLCJkZWVwTWVyZ2UiLCJ0YXJnZXQiLCJzb3VyY2UiLCJtZXJnZWQiLCJrZXkiLCJjcmVhdGVQcm94eSIsImNhbGxiYWNrIiwiX29iaiIsIl8xIiwiXzIiLCJhcmdzIiwiQ2xpZW50UmVxdWVzdEltcGwiLCJ1cmwiLCJtZXRob2QiLCJfX3B1YmxpY0ZpZWxkIiwidjIiLCJmb3JtIiwibWV0aG9kVXBwZXJDYXNlIiwiaGVhZGVyVmFsdWVzIiwiY29va2llcyIsImhlYWRlcnMiLCJzZXRCb2R5IiwiaGMiLCJiYXNlVXJsIiwib3B0aW9ucyIsInByb3h5Q2FsbGJhY2si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
package/dist/index.js CHANGED
@@ -220,4 +220,4 @@ export {
220
220
  a as Word,
221
221
  m as Words
222
222
  };
223
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IEJvb2ssIENvaW5lZEVyYSwgVXNhZ2VDYXRlZ29yeSwgV3JpdGluZ1N5c3RlbSB9IGZyb20gXCIkbGliL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlICogZnJvbSBcIiRsaWIvdHlwZXNcIjtcblxuY29uc3QgWWVhck1vbnRoID0gei5zdHJpbmcoKS5yZWdleCgvXjIwXFxkezJ9LSgwWzEtOV18MVswLTJdKSQvZyk7XG4vLyBXb3JkIGRhdGFcbmV4cG9ydCBjb25zdCBXb3JkID0gelxuXHQub2JqZWN0KHtcblx0XHRpZDogelxuXHRcdFx0LnN0cmluZygpXG5cdFx0XHQubWluKDEpXG5cdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdGBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgd29yZC4gVXN1YWxseSB0aGUgd29yZCBidXQgbWF5IGhhdmUgYW4gaW50ZWdlciBhZGRlZCBpbiBjYXNlIG9mIGEgd29yZCB3aXRoIG11bHRpcGxlIGRlZmluaXRpb25zIChsaWtlIFwid2VcIilgLFxuXHRcdFx0KSxcblx0XHRhdXRob3JfdmVyYmF0aW06IHpcblx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0LmRlc2NyaWJlKFwiVGhlIGF1dGhvcidzIG9yaWdpbmFsIGRlZmluaXRpb24sIHRha2VuIHZlcmJhdGltIGluIHRoZWlyIHdvcmRzXCIpLFxuXHRcdGF1dGhvcl92ZXJiYXRpbV9zb3VyY2U6IHpcblx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0LmRlc2NyaWJlKFwiV2hlcmUgdGhlIGF1dGhvcidzIG9yaWdpbmFsIGRlZmluaXRpb24gaXMgbG9jYXRlZCAodXN1YWxseSBEaXNjb3JkKVwiKSxcblx0XHRib29rOiBCb29rLmRlc2NyaWJlKFwiV2hpY2ggb2ZmaWNpYWwgVG9raSBQb25hIGJvb2sgd2FzIHRoaXMgd29yZCBmZWF0dXJlZCBpbiwgaWYgYW55LlwiKSxcblx0XHRjb2luZWRfZXJhOiBDb2luZWRFcmEub3Ioei5saXRlcmFsKFwiXCIpKS5kZXNjcmliZShcblx0XHRcdFwiV2hlbiB0aGlzIHdvcmQgd2FzIGNvaW5lZCAocmVsYXRpdmUgdG8gdGhlIHB1YmxpY2F0aW9uIGRhdGVzIG9mIHRoZSBvZmZpY2lhbCBUb2tpIFBvbmEgYm9va3MsIGlmIGtub3duKVwiLFxuXHRcdCksXG5cdFx0Y29pbmVkX3llYXI6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgeWVhciB3aGVuIHRoaXMgd29yZCB3YXMgY29pbmVkIChpZiBrbm93bilcIiksXG5cdFx0Y3JlYXRvcjogei5hcnJheSh6LnN0cmluZygpKS5kZXNjcmliZShcIlRoZSBwZXJzb24gd2hvIGNyZWF0ZWQgdGhpcyB3b3JkIChpZiBrbm93bilcIiksXG5cdFx0a3VfZGF0YTogelxuXHRcdFx0LnJlY29yZChcblx0XHRcdFx0ei5zdHJpbmcoKS5taW4oMSkuZGVzY3JpYmUoXCJBIHRyYW5zbGF0aW9uIG9mIHRoZSB3b3JkIGludG8gRW5nbGlzaCBwcm9wb3NlZCBpbiBrdVwiKSxcblx0XHRcdFx0elxuXHRcdFx0XHRcdC5udW1iZXIoKVxuXHRcdFx0XHRcdC5taW4oMClcblx0XHRcdFx0XHQubWF4KDEwMClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XHRcIlRoZSBwZXJjZW50YWdlIG9mIGt1IHN1cnZleSByZXNwb25kZW50cyB3aG8gcmVwb3J0IHRoaXMgdHJhbnNsYXRpb24gYXMgYWNjdXJhdGUgdG8gdGhlaXIgdXNhZ2UuXCIsXG5cdFx0XHRcdFx0KSxcblx0XHRcdClcblx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFwiVGhlIHVzYWdlIGRhdGEgb2YgdGhlIHdvcmQgYXMgZGVzY3JpYmVkIGluIGt1ICh0aGUgb2ZmaWNpYWwgVG9raSBQb25hIGRpY3Rpb25hcnkpXCIsXG5cdFx0XHQpLFxuXHRcdHNlZV9hbHNvOiB6LmFycmF5KHouc3RyaW5nKCkpLmRlc2NyaWJlKFwiQSBsaXN0IG9mIHJlbGF0ZWQgd29yZHNcIiksXG5cdFx0cmVzb3VyY2VzOiB6XG5cdFx0XHQub2JqZWN0KHtcblx0XHRcdFx0c29uYV9wb25hOiB6XG5cdFx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdFx0LnVybCgpXG5cdFx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XHRcIkEgbGluayB0byB0aGUgd29yZCdzIHBhZ2Ugb24gc29uYS5wb25hLmxhLCBhIFRva2kgUG9uYSB3aWtpLiBNYXkgcmVkaXJlY3QgZm9yIHdvcmRzIHdpdGggcmVmZXJlbmNlcyBidXQgbm8gZGVkaWNhdGVkIHBhZ2UuXCIsXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0bGlwYW1hbmthX3NlbWFudGljOiB6XG5cdFx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdFx0LnVybCgpXG5cdFx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXCJBIGxpbmsgdG8gbGlwYW1hbmthJ3MgZGVzY3JpcHRpb24gb2YgdGhlIHdvcmQncyBzZW1hbnRpYyBzcGFjZS5cIiksXG5cdFx0XHR9KVxuXHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdC5kZXNjcmliZShcIk5vbi1MaW5rdSByZXNvdXJjZXMgcmVsYXRlZCB0byB0aGUgc3BlY2lmaWMgd29yZCwgc3VjaCBhcyB3aWtpIGxpbmtzLlwiKSxcblx0XHRyZXByZXNlbnRhdGlvbnM6IHpcblx0XHRcdC5vYmplY3Qoe1xuXHRcdFx0XHRzaXRlbGVuX2Vtb3NpOiB6XG5cdFx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdFx0LmVtb2ppKClcblx0XHRcdFx0XHQub3B0aW9uYWwoKVxuXHRcdFx0XHRcdC5kZXNjcmliZShcblx0XHRcdFx0XHRcdFwiVGhlIHNpdGVsZW4gZW1vc2kgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB3b3JkLCBhIHNjcmlwdCBmb3Igd3JpdGluZyBUb2tpIFBvbmEgdXNpbmcgZW1vamlcIixcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRzaXRlbGVuX2plbG86IHpcblx0XHRcdFx0XHQuYXJyYXkoei5zdHJpbmcoKS5lbW9qaSgpKVxuXHRcdFx0XHRcdC5taW4oMSlcblx0XHRcdFx0XHQub3B0aW9uYWwoKVxuXHRcdFx0XHRcdC5kZXNjcmliZShcIk9uZSBvciBtb3JlIGV4YW1wbGUgZW1vamlzIGZvciBob3cgdGhlIHdvcmQgY2FuIGJlIHdyaXR0ZW4gaW4gc2l0ZWxlbiBqZWxvXCIpLFxuXHRcdFx0XHRsaWdhdHVyZXM6IHpcblx0XHRcdFx0XHQuYXJyYXkoei5zdHJpbmcoKS5taW4oMSkpXG5cdFx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XHRcIkEgbGlzdCBvZiBzaXRlbGVuIExhc2luYSByZXByZXNlbnRhdGlvbnMgb2YgdGhlIHdvcmQsIHVzZWQgYnkgbGlnYXR1cmUgZm9udHMgdG8gdmlzdWFsbHkgY29udmVydCBsYXRpbiBjaGFyYWN0ZXJzIGludG8gc2l0ZWxlbiBwb25hXCIsXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0c2l0ZWxlbl9zaXRlbGVuOiB6XG5cdFx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdFx0LnVybCgpXG5cdFx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXCJBIFVSTCBwb2ludGluZyB0byBhbiBpbWFnZSBvZiB0aGlzIHdvcmQncyBzaXRlbGVuIHNpdGVsZW4gaGllcm9nbHlwaGljIGJsb2NrXCIpLFxuXHRcdFx0XHR1Y3N1cjogelxuXHRcdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHRcdC5yZWdleCgvXlVcXCtbXFxkYS1mQS1GXXs0LDZ9JC9nKVxuXHRcdFx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcdFx0XCJUaGUgd29yZCdzIFVDU1VSIGNvZGVwb2ludCwgYXMgZGVmaW5lZCBpbiBodHRwczovL3d3dy5rcmVhdGl2ZWtvcnAuY29tL3Vjc3VyL2NoYXJ0cy9zaXRlbGVuLmh0bWxcIixcblx0XHRcdFx0XHQpLFxuXHRcdFx0fSlcblx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHQuZGVzY3JpYmUoXCJXYXlzIG9mIHJlcHJlc2VudGluZyB0aGlzIHdvcmQgaW4gdGhlIHJlYWwgd29ybGQsIHZpYSB0ZXh0L2NvbXB1dGVyc1wiKSxcblx0XHRzb3VyY2VfbGFuZ3VhZ2U6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgbGFuZ3VhZ2UgdGhpcyB3b3JkIG9yaWdpbmF0ZWQgZnJvbVwiKSxcblx0XHR1c2FnZV9jYXRlZ29yeTogVXNhZ2VDYXRlZ29yeS5kZXNjcmliZShcblx0XHRcdFwiVGhlIHdvcmQncyB1c2FnZSBjYXRlZ29yeSwgYWNjb3JkaW5nIHRvIGEgc3VydmV5IHBlcmZvcm1lZCBieSB0aGUgTGlua3UgUHJvamVjdFwiLFxuXHRcdCksXG5cdFx0d29yZDogelxuXHRcdFx0LnN0cmluZygpXG5cdFx0XHQuZGVzY3JpYmUoYFRoZSB3b3JkJ3MgYWN0dWFsIHRleHQsIGluIGNhc2Ugb2YgYSB3b3JkIHdpdGggbXVsdGlwbGUgZGVmaW5pdGlvbnMgKGxpa2UgXCJ3ZVwiKWApLFxuXHRcdGRlcHJlY2F0ZWQ6IHpcblx0XHRcdC5ib29sZWFuKClcblx0XHRcdC5kZXNjcmliZShcIldoZXRoZXIgb3Igbm90IHRoZSB3b3JkIGlzIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBieSBpdHMgYXV0aG9yLlwiKSxcblx0XHRldHltb2xvZ3k6IHpcblx0XHRcdC5hcnJheShcblx0XHRcdFx0ei5vYmplY3Qoe1xuXHRcdFx0XHRcdHdvcmQ6IHpcblx0XHRcdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0XHRcdC5kZXNjcmliZShcblx0XHRcdFx0XHRcdFx0XCJPbmUgb2YgdGhlIHJvb3Qgd29yZHMgb2YgdGhpcyB3b3JkLCBhcyB3cml0dGVuIG91dCBpbiBpdHMgbGFuZ3VhZ2Ugb2Ygb3JpZ2luXCIsXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdGFsdDogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKGBBIGxhdGluaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgXCJ3b3JkXCIgZmllbGRgKSxcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQuZGVzY3JpYmUoXCJVbmxvY2FsaXplZCBldHltb2xvZ2ljYWwgdmFsdWVzIHJlZ2FyZGluZyB0aGlzIHdvcmQncyBvcmlnaW5cIiksXG5cdFx0YXVkaW86IHouYXJyYXkoXG5cdFx0XHR6XG5cdFx0XHRcdC5vYmplY3Qoe1xuXHRcdFx0XHRcdGF1dGhvcjogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBhdXRob3Igb2YgdGhlIGF1ZGlvIGZpbGUgaW4gYGxpbmtgLlwiKSxcblx0XHRcdFx0XHRsaW5rOiB6XG5cdFx0XHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0XHRcdC51cmwoKVxuXHRcdFx0XHRcdFx0LmRlc2NyaWJlKFwiQSBsaW5rIHRvIHRoZSBhdWRpbyBmaWxlIGZvciB0aGUgd29yZCwgcHJvbm91bmNlZCBieSBgYXV0aG9yYC5cIiksXG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5kZXNjcmliZShcIkF1ZGlvIGZpbGVzIG9mIHRoZSB3b3JkcyBwcm9ub3VuY2VkIG91dCBsb3VkXCIpLFxuXHRcdCksXG5cdFx0cHVfdmVyYmF0aW06IHpcblx0XHRcdC5vYmplY3Qoe1xuXHRcdFx0XHRlbjogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBvcmlnaW5hbCBkZWZpbml0aW9uIGluIHRoZSBFbmdsaXNoIHZlcnNpb24gb2YgcHVcIiksXG5cdFx0XHRcdGZyOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIG9yaWdpbmFsIGRlZmluaXRpb24gaW4gdGhlIEZyZW5jaCB2ZXJzaW9uIG9mIHB1XCIpLFxuXHRcdFx0XHRkZTogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBvcmlnaW5hbCBkZWZpbml0aW9uIGluIHRoZSBHZXJtYW4gdmVyc2lvbiBvZiBwdVwiKSxcblx0XHRcdFx0ZW86IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgb3JpZ2luYWwgZGVmaW5pdGlvbiBpbiB0aGUgRXNwZXJhbnRvIHZlcnNpb24gb2YgcHVcIiksXG5cdFx0XHR9KVxuXHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdC5kZXNjcmliZShcIlRoZSBvcmlnaW5hbCBkZWZpbml0aW9uIG9mIHRoZSB3b3JkIGluIHB1LCB0aGUgZmlyc3Qgb2ZmaWNpYWwgVG9raSBQb25hIGJvb2tcIiksXG5cdFx0dXNhZ2U6IHpcblx0XHRcdC5yZWNvcmQoei5zdHJpbmcoKS5yZWdleCgvXjIwXFxkezJ9LSgwWzEtOV18MVswLTJdKSQvZyksIHoubnVtYmVyKCkubWluKDApLm1heCgxMDApKVxuXHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcIlRoZSBwZXJjZW50YWdlIG9mIHBlb3BsZSBpbiB0aGUgVG9raSBQb25hIGNvbW11bml0eSB3aG8gdXNlIHRoaXMgd29yZCwgYWNjb3JkaW5nIHRvIHN1cnZleXMgcGVyZm9ybWVkIGJ5IHRoZSBMaW5rdSBQcm9qZWN0XCIsXG5cdFx0XHQpLFxuXHR9KVxuXHQuZGVzY3JpYmUoXCJHZW5lcmFsIGluZm8gb24gYSBUb2tpIFBvbmEgd29yZFwiKTtcblxuZXhwb3J0IHR5cGUgV29yZCA9IHouaW5mZXI8dHlwZW9mIFdvcmQ+O1xuXG5leHBvcnQgY29uc3QgQ29tbWVudGFyeVRyYW5zbGF0aW9uID0gelxuXHQucmVjb3JkKHouc3RyaW5nKCkubWluKDEpLCB6LnN0cmluZygpKVxuXHQuZGVzY3JpYmUoXCJMb2NhbGl6ZWQgY29tbWVudGFyeSByZWdhcmRpbmcgVG9raSBQb25hIHdvcmRzXCIpO1xuXG5leHBvcnQgdHlwZSBDb21tZW50YXJ5VHJhbnNsYXRpb24gPSB6LmluZmVyPHR5cGVvZiBDb21tZW50YXJ5VHJhbnNsYXRpb24+O1xuXG5leHBvcnQgY29uc3QgRGVmaW5pdGlvblRyYW5zbGF0aW9uID0gelxuXHQucmVjb3JkKHouc3RyaW5nKCkubWluKDEpLCB6LnN0cmluZygpLm1pbigxKSlcblx0LmRlc2NyaWJlKFwiTG9jYWxpemVkIGRlZmluaXRpb25zIG9mIFRva2kgUG9uYSB3b3Jkc1wiKTtcblxuZXhwb3J0IHR5cGUgRGVmaW5pdGlvblRyYW5zbGF0aW9uID0gei5pbmZlcjx0eXBlb2YgRGVmaW5pdGlvblRyYW5zbGF0aW9uPjtcblxuZXhwb3J0IGNvbnN0IFNpdGVsZW5Qb25hVHJhbnNsYXRpb24gPSB6XG5cdC5yZWNvcmQoei5zdHJpbmcoKS5taW4oMSksIHouc3RyaW5nKCkpXG5cdC5kZXNjcmliZShcIkxvY2FsaXplZCBkZXNjcmlwdGlvbnMgb2YgdGhlIG9yaWdpbnMgb2YgdGhlIHNpdGVsZW4gcG9uYSBnbHlwaHMgZm9yIFRva2kgUG9uYSB3b3Jkc1wiKTtcblxuZXhwb3J0IHR5cGUgU2l0ZWxlblBvbmFUcmFuc2xhdGlvbiA9IHouaW5mZXI8dHlwZW9mIFNpdGVsZW5Qb25hVHJhbnNsYXRpb24+O1xuXG5leHBvcnQgY29uc3QgRXR5bW9sb2d5VHJhbnNsYXRpb24gPSB6XG5cdC5yZWNvcmQoXG5cdFx0ei5zdHJpbmcoKS5taW4oMSksXG5cdFx0ei5hcnJheShcblx0XHRcdHoub2JqZWN0KHtcblx0XHRcdFx0ZGVmaW5pdGlvbjogelxuXHRcdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHRcdFx0LmRlc2NyaWJlKFwiVGhlIGxvY2FsaXplZCBkZWZpbml0aW9uIG9mIHRoZSByb290IHdvcmQgaW4gaXRzIG9yaWdpbiBsYW5ndWFnZVwiKSxcblx0XHRcdFx0bGFuZ3VhZ2U6IHpcblx0XHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXCJUaGUgbG9jYWxpemVkIG5hbWUgb2YgdGhlIGxhbmd1YWdlIHRoaXMgd29yZCBvcmlnaW5hdGVkIGZyb21cIiksXG5cdFx0XHR9KSxcblx0XHQpLFxuXHQpXG5cdC5kZXNjcmliZShcIkxvY2FsaXplZCBldHltb2xvZ2ljYWwgdmFsdWVzIGZvciBUb2tpIFBvbmEgd29yZHNcIik7XG5cbmV4cG9ydCB0eXBlIEV0eW1vbG9neVRyYW5zbGF0aW9uID0gei5pbmZlcjx0eXBlb2YgRXR5bW9sb2d5VHJhbnNsYXRpb24+O1xuXG5leHBvcnQgY29uc3QgU2lnbiA9IHpcblx0Lm9iamVjdCh7XG5cdFx0ZGVmaW5pdGlvbjogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBkZWZpbml0aW9uIG9mIHRoZSBzaWduIGFzIGEgc2luZ2xlIHRva2kgcG9uYSB3b3JkLlwiKSxcblx0XHRpZDogei5zdHJpbmcoKS5kZXNjcmliZShcIkEgZ2xvYmFsbHkgdW5pcXVlIG5hbWUgZm9yIHRoZSBzaWduIHdoaWNoIGlzIGFsc28gYSBnbG9zcy5cIiksXG5cdFx0aXNfdHdvX2hhbmRlZDogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJXaGV0aGVyIHRoZSBzaWduIGlzIHR3by1oYW5kZWQgb3Igbm90LlwiKSxcblx0XHRuZXdfZ2xvc3M6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgbW9yZSByZWNlbnQsIHByZWZlcnJlZCBnbG9zcyBmb3IgdGhpcyBzaWduLlwiKSxcblx0XHRvbGRfZ2xvc3M6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgb2xkZXIgZ2xvc3MgZm9yIHRoaXMgc2lnbiwgc2ltaWxhciB0byBgaWRgLlwiKSxcblx0XHRldHltb2xvZ3k6IHpcblx0XHRcdC5hcnJheShcblx0XHRcdFx0ei5vYmplY3Qoe1xuXHRcdFx0XHRcdGxhbmd1YWdlOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIGxhbmd1YWdlIG9mIHRoZSBzaWduLlwiKSxcblx0XHRcdFx0XHRzaWduOiB6XG5cdFx0XHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XHRcdFwiVGhlIG5hbWUgb2YgdGhlIHNpZ24gc3VjaCB0aGF0IGl0IGNvdWxkIGJlIGZvdW5kIGluIGEgc2lnbiBsYW5ndWFnZSBkaWN0aW9uYXJ5LlwiLFxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQuZGVzY3JpYmUoXCJVbmxvY2FsaXplZCBldHltb2xvZ2ljYWwgdmFsdWVzIHJlZ2FyZGluZyB0aGlzIHNpZ24ncyBvcmlnaW5cIiksXG5cdFx0c2lnbndyaXRpbmc6IHpcblx0XHRcdC5vYmplY3Qoe1xuXHRcdFx0XHRmc3c6IHpcblx0XHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XHRcIlRoZSBbRm9ybWFsIFNpZ25Xcml0aW5nXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TaWduV3JpdGluZykgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNpZ24uXCIsXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0c3d1OiB6XG5cdFx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcdFx0XCJUaGUgW1NpZ25Xcml0aW5nIHdpdGggVW5pY29kZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU2lnbldyaXRpbmcpIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzaWduLlwiLFxuXHRcdFx0XHRcdCksXG5cdFx0XHR9KVxuXHRcdFx0LmRlc2NyaWJlKFwiU2NyaXB0cyBmb3IgcmVwcmVzZW50aW5nIGEgc2lnbiBhcyBjaGFyYWN0ZXJzLlwiKSxcblx0XHR2aWRlbzogelxuXHRcdFx0Lm9iamVjdCh7XG5cdFx0XHRcdGdpZjogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiQSBsaW5rIHRvIGEgZ2lmIG9mIHRoZSBzaWduIGJlaW5nIHNpZ25lZC5cIiksXG5cdFx0XHRcdG1wNDogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiYSBsaW5rIHRvIGFuIG1wNCBvZiB0aGUgc2lnbiBiZWluZyBzaWduZWQuXCIpLFxuXHRcdFx0fSlcblx0XHRcdC5kZXNjcmliZShcIlZpZGVvcyBvZiB0aGUgc2lnbiBiZWluZyBwZXJmb3JtZWQsIGJ5IGZvcm1hdC5cIiksXG5cdH0pXG5cdC5kZXNjcmliZShcIlVubG9jYWxpemVkIGluZm8gb24gYSBMdWthIFBvbmEgc2lnblwiKTtcblxuZXhwb3J0IHR5cGUgU2lnbiA9IHouaW5mZXI8dHlwZW9mIFNpZ24+O1xuXG5leHBvcnQgY29uc3QgRmluZ2Vyc3BlbGxpbmdTaWduID0gelxuXHQub2JqZWN0KHtcblx0XHRpZDogei5zdHJpbmcoKS5kZXNjcmliZShcIkEgZ2xvYmFsbHkgdW5pcXVlIG5hbWUgZm9yIHRoZSBzaWduIHdoaWNoIGlzIGFsc28gYSBnbG9zcy5cIiksXG5cdFx0aXNfdHdvX2hhbmRlZDogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJXaGV0aGVyIHRoZSBzaWduIGlzIHR3by1oYW5kZWQgb3Igbm90LlwiKSxcblx0XHRldHltb2xvZ3k6IHpcblx0XHRcdC5hcnJheShcblx0XHRcdFx0ei5vYmplY3Qoe1xuXHRcdFx0XHRcdGxhbmd1YWdlOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIGxhbmd1YWdlIG9mIHRoZSBzaWduLlwiKSxcblx0XHRcdFx0XHRzaWduOiB6XG5cdFx0XHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0XHRcdC5kZXNjcmliZShcblx0XHRcdFx0XHRcdFx0XCJUaGUgbmFtZSBvZiB0aGUgc2lnbiBzdWNoIHRoYXQgaXQgY291bGQgYmUgZm91bmQgaW4gYSBzaWduIGxhbmd1YWdlIGRpY3Rpb25hcnkuXCIsXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHR9KSxcblx0XHRcdClcblx0XHRcdC5kZXNjcmliZShcIlVubG9jYWxpemVkIGV0eW1vbG9naWNhbCB2YWx1ZXMgcmVnYXJkaW5nIHRoaXMgc2lnbidzIG9yaWdpblwiKSxcblx0XHRzaWdud3JpdGluZzogelxuXHRcdFx0Lm9iamVjdCh7XG5cdFx0XHRcdGZzdzogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBGb3JtYWwgU2lnbiBXcml0aW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzaWduLlwiKSxcblx0XHRcdFx0c3d1OiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIFNpZ24gV3JpdGluZyB3aXRoIFVuaWNvZGUgcmVwcmVzZW50YXRpb24gb2YgaHRlIHNpZ24uXCIpLFxuXHRcdFx0fSlcblx0XHRcdC5kZXNjcmliZShcIlNjcmlwdHMgZm9yIHJlcHJlc2VudGluZyBhIHNpZ24gYXMgY2hhcmFjdGVycy5cIiksXG5cdFx0dmlkZW86IHpcblx0XHRcdC5vYmplY3Qoe1xuXHRcdFx0XHRnaWY6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIkEgbGluayB0byBhIGdpZiBvZiB0aGUgc2lnbiBiZWluZyBzaWduZWQuXCIpLFxuXHRcdFx0XHRtcDQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcImEgbGluayB0byBhbiBtcDQgb2YgdGhlIHNpZ24gYmVpbmcgc2lnbmVkLlwiKSxcblx0XHRcdH0pXG5cdFx0XHQuZGVzY3JpYmUoXCJWaWRlb3Mgb2YgdGhlIHNpZ24gYmVpbmcgcGVyZm9ybWVkLCBieSBmb3JtYXQuXCIpLFxuXHR9KVxuXHQuZGVzY3JpYmUoXCJVbmxvY2FsaXplZCBpbmZvIG9uIGEgZmluZ2Vyc3BlbGxpbmcgc2lnbi5cIik7XG5cbmV4cG9ydCB0eXBlIEZpbmdlcnNwZWxsaW5nU2lnbiA9IHouaW5mZXI8dHlwZW9mIEZpbmdlcnNwZWxsaW5nU2lnbj47XG5cbmV4cG9ydCBjb25zdCBQYXJhbWV0ZXJzVHJhbnNsYXRpb24gPSB6XG5cdC5yZWNvcmQoXG5cdFx0ei5zdHJpbmcoKS5taW4oMSksXG5cdFx0ei5vYmplY3Qoe1xuXHRcdFx0aGFuZHNoYXBlOiB6XG5cdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHQub3B0aW9uYWwoKVxuXHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XCJUaGUgc2hhcGUgb2YgdGhlIGhhbmQgd2hlbiBzaWduaW5nLCBpZGVudGlmaWVkIGJ5IGl0cyBuYW1lIGluIEFTTC4gU2hvdWxkIG5vdCBiZSB0cmFuc2xhdGVkIGluIGFueSBsYW5ndWFnZSBvdGhlciB0aGFuIFRva2kgUG9uYVwiLFxuXHRcdFx0XHQpLFxuXHRcdFx0bW92ZW1lbnQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlRoZSBtb3Rpb24gb2YgdGhlIGhhbmQgd2hlbiBzaWduaW5nLlwiKSxcblx0XHRcdHBsYWNlbWVudDogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiVGhlIHBsYWNlbWVudCBvZiB0aGUgaGFuZCB3aGVuIHNpZ25pbmcuXCIpLFxuXHRcdFx0b3JpZW50YXRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlRoZSBvcmllbnRhdGlvbiBvZiB0aGUgaGFuZCB3aGVuIHNpZ25pbmcuXCIpLFxuXHRcdH0pLFxuXHQpXG5cdC5kZXNjcmliZShcIlBhcnRseSBsb2NhbGl6ZWQgZGVzY3JpcHRpb25zIG9mIGhvdyBhIHNpZ24gaXMgc2lnbmVkLlwiKTtcblxuZXhwb3J0IHR5cGUgUGFyYW1ldGVyc1RyYW5zbGF0aW9uID0gei5pbmZlcjx0eXBlb2YgUGFyYW1ldGVyc1RyYW5zbGF0aW9uPjtcblxuZXhwb3J0IGNvbnN0IEljb25UcmFuc2xhdGlvbiA9IHpcblx0LnJlY29yZCh6LnN0cmluZygpLm1pbigxKSwgei5zdHJpbmcoKSlcblx0LmRlc2NyaWJlKFwiTG9jYWxpemVkIGRlc2NyaXB0aW9ucyBvZiB0aGUgdGhpbmcgYSBzaWduIHJlcHJlc2VudHMuXCIpO1xuXG5leHBvcnQgdHlwZSBJY29uVHJhbnNsYXRpb24gPSB6LmluZmVyPHR5cGVvZiBJY29uVHJhbnNsYXRpb24+O1xuXG5leHBvcnQgY29uc3QgRm9udCA9IHpcblx0Lm9iamVjdCh7XG5cdFx0aWQ6IHouc3RyaW5nKCkubWluKDEpLmRlc2NyaWJlKFwiVGhlIGZvbnQncyB1bmlxdWUgSUQsIGlkZW50aWZ5aW5nIGl0IGFtb25nIG90aGVyIGZvbnRzXCIpLFxuXHRcdGNyZWF0b3I6IHouYXJyYXkoei5zdHJpbmcoKSkuZGVzY3JpYmUoXCJhIGxpc3Qgb2YgdGhpcyBmb250J3MgY3JlYXRvcnNcIiksXG5cdFx0ZmVhdHVyZXM6IHouYXJyYXkoei5zdHJpbmcoKSkuZGVzY3JpYmUoXCJhIGxpc3Qgb2YgZmVhdHVyZXMgdGhpcyBmb250IHN1cHBvcnRzXCIpLFxuXHRcdGZpbGVuYW1lOiB6XG5cdFx0XHQuc3RyaW5nKClcblx0XHRcdC5yZWdleCgvXig/Oi4rXFwuKHR0ZnxvdGZ8d29mZjJ8d29mZikpPyQvKVxuXHRcdFx0LmRlc2NyaWJlKFwidGhlIG5hbWUgb2YgdGhlIGZpbGUgdGhpcyBmb250IGlzIHN0b3JlZCBpbiBhdCBodHRwczovL2dpdGh1Yi5jb20vbGlwdS1saW5rdS9pam9cIiksXG5cdFx0bGFzdF91cGRhdGVkOiBZZWFyTW9udGgub3B0aW9uYWwoKS5kZXNjcmliZShcInRoZSByb3VnaCBkYXRlIG9mIHRoaXMgZm9udCdzIGxhc3QgdXBkYXRlXCIpLFxuXHRcdGxpY2Vuc2U6IHpcblx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0LmRlc2NyaWJlKFwiYW4gU1BEWCBleHByZXNzaW9uIGRlc2NyaWJpbmcgdGhpcyBmb250J3MgbGljZW5zZTogaHR0cHM6Ly9zcGR4Lm9yZy9saWNlbnNlcy9cIiksXG5cdFx0bGlnYXR1cmVzOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIndoZXRoZXIgdGhpcyBmb250IHN1cHBvcnRzIGxpZ2F0dXJlc1wiKSxcblx0XHRuYW1lOiB6LnN0cmluZygpLm1pbigxKS5kZXNjcmliZShcInRoaXMgZm9udCdzIG5hbWVcIiksXG5cdFx0c3R5bGU6IHouc3RyaW5nKCkubWluKDEpLmRlc2NyaWJlKFwidGhlIGdlbmVyYWwgc3R5bGUgb2YgdGhpcyBmb250XCIpLFxuXHRcdHVjc3VyOiB6XG5cdFx0XHQuYm9vbGVhbigpXG5cdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFwid2hldGhlciB0aGlzIGZvbnQgY29uZm9ybXMgdG8gdGhlIFVDU1VSIHN0YW5kYXJkOiBodHRwczovL3d3dy5rcmVhdGl2ZWtvcnAuY29tL3Vjc3VyL2NoYXJ0cy9zaXRlbGVuLmh0bWxcIixcblx0XHRcdCksXG5cdFx0dmVyc2lvbjogei5zdHJpbmcoKS5kZXNjcmliZShcInRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhpcyBmb250XCIpLFxuXHRcdHdyaXRpbmdfc3lzdGVtOiBXcml0aW5nU3lzdGVtLmRlc2NyaWJlKFwidGhlIHdyaXRpbmcgc3lzdGVtIHRoaXMgZm9udCB1c2VzIGFzIGl0cyBzY3JpcHRcIiksXG5cdFx0bGlua3M6IHoub2JqZWN0KHtcblx0XHRcdGZvbnRmaWxlOiB6XG5cdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHQudXJsKClcblx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcdFwiYSBsaW5rIHRvIHRoZSBmb250IGZpbGUgcHVibGlzaGVkIGJ5IHRoZSBvcmlnaW5hbCBhdXRob3IgKG5vdCB0aGUgbWlycm9yIG9uIHRoZSBMaW5rdSBQcm9qZWN0J3MgR2l0SHViKVwiLFxuXHRcdFx0XHQpLFxuXHRcdFx0cmVwbzogelxuXHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0LnVybCgpXG5cdFx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHRcdC5kZXNjcmliZShcblx0XHRcdFx0XHRcImEgbGluayB0byBhIHdlYiBob3N0ZWQgcmVwb3NpdG9yeSBvZiB0aGlzIGZvbnQncyBzb3VyY2UgZmlsZXMgKHVzdWFsbHkgaG9zdGVkIG9uIEdpdEh1YiBvciBHaXRMYWIpXCIsXG5cdFx0XHRcdCksXG5cdFx0XHR3ZWJwYWdlOiB6XG5cdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHQudXJsKClcblx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcdFwiYSBsaW5rIHRvIHRoaXMgZm9udCdzIGhvbWUgcGFnZSwgdXN1YWxseSBzaG93Y2FzaW5nIGl0cyBmZWF0dXJlcyBhbmQgdXNhZ2UvaW5zdGFsbGF0aW9uXCIsXG5cdFx0XHRcdCksXG5cdFx0fSksXG5cdH0pXG5cdC5kZXNjcmliZShcIkluZm8gb24gYSBmb250IGZvciBUb2tpIFBvbmFcIik7XG5leHBvcnQgdHlwZSBGb250ID0gei5pbmZlcjx0eXBlb2YgRm9udD47XG5cbmV4cG9ydCBjb25zdCBXb3JkcyA9IHpcblx0LnJlY29yZChcblx0XHR6LnN0cmluZygpLm1pbigxKSxcblx0XHRXb3JkLmV4dGVuZCh7XG5cdFx0XHR0cmFuc2xhdGlvbnM6IHoucmVjb3JkKFxuXHRcdFx0XHR6Lm9iamVjdCh7XG5cdFx0XHRcdFx0Y29tbWVudGFyeTogQ29tbWVudGFyeVRyYW5zbGF0aW9uLnZhbHVlU2NoZW1hLFxuXHRcdFx0XHRcdGRlZmluaXRpb246IERlZmluaXRpb25UcmFuc2xhdGlvbi52YWx1ZVNjaGVtYSxcblx0XHRcdFx0XHRldHltb2xvZ3k6IEV0eW1vbG9neVRyYW5zbGF0aW9uLnZhbHVlU2NoZW1hLFxuXHRcdFx0XHRcdHNwX2V0eW1vbG9neTogU2l0ZWxlblBvbmFUcmFuc2xhdGlvbi52YWx1ZVNjaGVtYSxcblx0XHRcdFx0fSksXG5cdFx0XHQpLFxuXHRcdH0pLFxuXHQpXG5cdC5kZXNjcmliZShcIkEgcmF3IGRhdGEgb2JqZWN0IGNvbnRhaW5pbmcgZGljdGlvbmFyeSBpbmZvIGFib3V0IFRva2kgUG9uYSB3b3Jkc1wiKTtcbmV4cG9ydCB0eXBlIFdvcmRzID0gei5pbmZlcjx0eXBlb2YgV29yZHM+O1xuZXhwb3J0IHR5cGUgTG9jYWxpemVkV29yZCA9IFdvcmRzW3N0cmluZ107XG5cbmV4cG9ydCBjb25zdCBTaWducyA9IHpcblx0LnJlY29yZChcblx0XHR6LnN0cmluZygpLm1pbigxKSxcblx0XHRTaWduLmV4dGVuZCh7XG5cdFx0XHR0cmFuc2xhdGlvbnM6IHoucmVjb3JkKFxuXHRcdFx0XHR6Lm9iamVjdCh7XG5cdFx0XHRcdFx0cGFyYW1ldGVyczogUGFyYW1ldGVyc1RyYW5zbGF0aW9uLnZhbHVlU2NoZW1hLFxuXHRcdFx0XHRcdGljb25zOiBJY29uVHJhbnNsYXRpb24udmFsdWVTY2hlbWEsXG5cdFx0XHRcdH0pLFxuXHRcdFx0KSxcblx0XHR9KSxcblx0KVxuXHQuZGVzY3JpYmUoXCJBIHJhdyBkYXRhIG9iamVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IEx1a2EgUG9uYSBzaWduc1wiKTtcbmV4cG9ydCB0eXBlIFNpZ25zID0gei5pbmZlcjx0eXBlb2YgU2lnbnM+O1xuZXhwb3J0IHR5cGUgTG9jYWxpemVkU2lnbiA9IFNpZ25zW3N0cmluZ107XG5cbmV4cG9ydCBjb25zdCBGaW5nZXJzcGVsbGluZyA9IHpcblx0LnJlY29yZChcblx0XHR6LnN0cmluZygpLm1pbigxKSxcblx0XHRGaW5nZXJzcGVsbGluZ1NpZ24uZXh0ZW5kKHtcblx0XHRcdHRyYW5zbGF0aW9uczogei5yZWNvcmQoei5vYmplY3QoeyBwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzVHJhbnNsYXRpb24udmFsdWVTY2hlbWEgfSkpLFxuXHRcdH0pLFxuXHQpXG5cdC5kZXNjcmliZShcIkEgcmF3IGRhdGEgb2JqZWN0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgTHVrYSBQb25hIGZpbmdlcnNwZWxsaW5nIHNpZ25zXCIpO1xuZXhwb3J0IHR5cGUgRmluZ2Vyc3BlbGxpbmcgPSB6LmluZmVyPHR5cGVvZiBGaW5nZXJzcGVsbGluZz47XG5leHBvcnQgdHlwZSBMb2NhbGl6ZWRGaW5nZXJzcGVsbGluZ1NpZ24gPSBGaW5nZXJzcGVsbGluZ1tzdHJpbmddO1xuXG5leHBvcnQgY29uc3QgRm9udHMgPSB6XG5cdC5yZWNvcmQoRm9udClcblx0LmRlc2NyaWJlKFwiQSByYXcgZGF0YSBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIGZvbnRzIGRhdGEgaW4gc29uYVwiKTtcbmV4cG9ydCB0eXBlIEZvbnRzID0gei5pbmZlcjx0eXBlb2YgRm9udHM+O1xuXG5leHBvcnQgY29uc3QgTGFuZ3VhZ2VzID0gei5yZWNvcmQoXG5cdHpcblx0XHQuc3RyaW5nKClcblx0XHQubWluKDIpXG5cdFx0LmRlc2NyaWJlKFwiVGhlIGxhbmd1YWdlIGNvZGUgdXNlZCBieSBDcm93ZGluLiBBcHByb3hpbWF0ZXMgMiBsZXR0ZXIgY29kZSAtPiAzIGxldHRlciBjb2RlLlwiKSxcblx0elxuXHRcdC5vYmplY3Qoe1xuXHRcdFx0aWQ6IHpcblx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdC5taW4oMilcblx0XHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcdFwiVGhlIGxhbmd1YWdlIGNvZGUgdXNlZCBieSBDcm93ZGluLiBBcHByb3hpbWF0ZXMgMiBsZXR0ZXIgY29kZSAtPiAzIGxldHRlciBjb2RlLlwiLFxuXHRcdFx0XHQpLFxuXHRcdFx0bG9jYWxlOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIGxvY2FsZSBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGxhbmd1YWdlLlwiKSxcblx0XHRcdGRpcmVjdGlvbjogelxuXHRcdFx0XHQudW5pb24oW3oubGl0ZXJhbChcImx0clwiKSwgei5saXRlcmFsKFwicnRsXCIpXSlcblx0XHRcdFx0LmRlc2NyaWJlKFwiVGhlIGRpcmVjdGlvbiBvZiB0aGUgbGFuZ3VhZ2UncyBzY3JpcHQuXCIpLFxuXHRcdFx0bmFtZTogei5vYmplY3Qoe1xuXHRcdFx0XHRlbjogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBuYW1lIG9mIHRoZSBsYW5ndWFnZSBpbiBFbmdsaXNoLlwiKSxcblx0XHRcdFx0Ly8gVGhlc2UgYXJlIG9wdGlvbmFsIGJlY2F1c2Ugd2UgY2FuIGFkZCBhIGxhbmd1YWdlIHZpYSBDcm93ZGluIGFuZCBDcm93ZGluIGRvZXNuJ3QgcHJvdmlkZSB0aGVzZS5cblx0XHRcdFx0Ly8gRG93bnN0cmVhbSBwcm9qZWN0cyBzaG91bGQgcHJlZmVyIGVuZG9ueW0gb3ZlciBuYW1lX2VuIGlmIGJvdGggYXJlIGF2YWlsYWJsZS5cblx0XHRcdFx0dG9rOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJUaGUgbmFtZSBvZiB0aGUgbGFuZ3VhZ2UgaW4gVG9raSBQb25hLlwiKSxcblx0XHRcdFx0ZW5kb255bTogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiVGhlIG5hbWUgb2YgdGhlIGxhbmd1YWdlIGluIHRoYXQgbGFuZ3VhZ2UuXCIpLFxuXHRcdFx0fSksXG5cdFx0XHQvLyBUT0RPOiBjb21wbGV0aW9uIHBlcmNlbnRhZ2Ugb24gYSBwZXItZmlsZSBiYXNpcz9cblx0XHRcdC8vIHdlIGFsc28gY2FyZSBhYm91dCBjb21wbGV0aW9uIHdpdGhpbiB1c2FnZSBjYXRlZ29yaWVzLCBzaW5jZSB0aGUgbW9zdCBpbXBvcnRhbnQgd29yZHMgYXJlIGNvcmUrd2lkZXNwcmVhZCtjb21tb25cblx0XHR9KVxuXHRcdC5kZXNjcmliZShcIlRoZSBsYW5ndWFnZXMgb2ZmZXJlZCBieSBzb25hIExpbmt1LlwiKSxcbik7XG5leHBvcnQgdHlwZSBMYW5ndWFnZXMgPSB6LmluZmVyPHR5cGVvZiBMYW5ndWFnZXM+O1xuZXhwb3J0IHR5cGUgTGFuZ3VhZ2UgPSBMYW5ndWFnZXNbc3RyaW5nXTtcbiJdLCJuYW1lcyI6WyJZZWFyTW9udGgiLCJ6IiwiV29yZCIsIkJvb2siLCJDb2luZWRFcmEiLCJVc2FnZUNhdGVnb3J5IiwiQ29tbWVudGFyeVRyYW5zbGF0aW9uIiwiRGVmaW5pdGlvblRyYW5zbGF0aW9uIiwiU2l0ZWxlblBvbmFUcmFuc2xhdGlvbiIsIkV0eW1vbG9neVRyYW5zbGF0aW9uIiwiU2lnbiIsIkZpbmdlcnNwZWxsaW5nU2lnbiIsIlBhcmFtZXRlcnNUcmFuc2xhdGlvbiIsIkljb25UcmFuc2xhdGlvbiIsIkZvbnQiLCJXcml0aW5nU3lzdGVtIiwiV29yZHMiLCJTaWducyIsIkZpbmdlcnNwZWxsaW5nIiwiRm9udHMiLCJMYW5ndWFnZXMiXSwibWFwcGluZ3MiOiI7QUFLQSxNQUFNQSxJQUFZQyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixHQUVsREMsSUFBT0QsRUFDbEIsT0FBTztBQUFBLEVBQ1AsSUFBSUEs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
223
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IEJvb2ssIENvaW5lZEVyYSwgVXNhZ2VDYXRlZ29yeSwgV3JpdGluZ1N5c3RlbSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlICogZnJvbSBcIi4vdHlwZXNcIjtcblxuY29uc3QgWWVhck1vbnRoID0gei5zdHJpbmcoKS5yZWdleCgvXjIwXFxkezJ9LSgwWzEtOV18MVswLTJdKSQvZyk7XG4vLyBXb3JkIGRhdGFcbmV4cG9ydCBjb25zdCBXb3JkID0gelxuXHQub2JqZWN0KHtcblx0XHRpZDogelxuXHRcdFx0LnN0cmluZygpXG5cdFx0XHQubWluKDEpXG5cdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdGBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgd29yZC4gVXN1YWxseSB0aGUgd29yZCBidXQgbWF5IGhhdmUgYW4gaW50ZWdlciBhZGRlZCBpbiBjYXNlIG9mIGEgd29yZCB3aXRoIG11bHRpcGxlIGRlZmluaXRpb25zIChsaWtlIFwid2VcIilgLFxuXHRcdFx0KSxcblx0XHRhdXRob3JfdmVyYmF0aW06IHpcblx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0LmRlc2NyaWJlKFwiVGhlIGF1dGhvcidzIG9yaWdpbmFsIGRlZmluaXRpb24sIHRha2VuIHZlcmJhdGltIGluIHRoZWlyIHdvcmRzXCIpLFxuXHRcdGF1dGhvcl92ZXJiYXRpbV9zb3VyY2U6IHpcblx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0LmRlc2NyaWJlKFwiV2hlcmUgdGhlIGF1dGhvcidzIG9yaWdpbmFsIGRlZmluaXRpb24gaXMgbG9jYXRlZCAodXN1YWxseSBEaXNjb3JkKVwiKSxcblx0XHRib29rOiBCb29rLmRlc2NyaWJlKFwiV2hpY2ggb2ZmaWNpYWwgVG9raSBQb25hIGJvb2sgd2FzIHRoaXMgd29yZCBmZWF0dXJlZCBpbiwgaWYgYW55LlwiKSxcblx0XHRjb2luZWRfZXJhOiBDb2luZWRFcmEub3Ioei5saXRlcmFsKFwiXCIpKS5kZXNjcmliZShcblx0XHRcdFwiV2hlbiB0aGlzIHdvcmQgd2FzIGNvaW5lZCAocmVsYXRpdmUgdG8gdGhlIHB1YmxpY2F0aW9uIGRhdGVzIG9mIHRoZSBvZmZpY2lhbCBUb2tpIFBvbmEgYm9va3MsIGlmIGtub3duKVwiLFxuXHRcdCksXG5cdFx0Y29pbmVkX3llYXI6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgeWVhciB3aGVuIHRoaXMgd29yZCB3YXMgY29pbmVkIChpZiBrbm93bilcIiksXG5cdFx0Y3JlYXRvcjogei5hcnJheSh6LnN0cmluZygpKS5kZXNjcmliZShcIlRoZSBwZXJzb24gd2hvIGNyZWF0ZWQgdGhpcyB3b3JkIChpZiBrbm93bilcIiksXG5cdFx0a3VfZGF0YTogelxuXHRcdFx0LnJlY29yZChcblx0XHRcdFx0ei5zdHJpbmcoKS5taW4oMSkuZGVzY3JpYmUoXCJBIHRyYW5zbGF0aW9uIG9mIHRoZSB3b3JkIGludG8gRW5nbGlzaCBwcm9wb3NlZCBpbiBrdVwiKSxcblx0XHRcdFx0elxuXHRcdFx0XHRcdC5udW1iZXIoKVxuXHRcdFx0XHRcdC5taW4oMClcblx0XHRcdFx0XHQubWF4KDEwMClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XHRcIlRoZSBwZXJjZW50YWdlIG9mIGt1IHN1cnZleSByZXNwb25kZW50cyB3aG8gcmVwb3J0IHRoaXMgdHJhbnNsYXRpb24gYXMgYWNjdXJhdGUgdG8gdGhlaXIgdXNhZ2UuXCIsXG5cdFx0XHRcdFx0KSxcblx0XHRcdClcblx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFwiVGhlIHVzYWdlIGRhdGEgb2YgdGhlIHdvcmQgYXMgZGVzY3JpYmVkIGluIGt1ICh0aGUgb2ZmaWNpYWwgVG9raSBQb25hIGRpY3Rpb25hcnkpXCIsXG5cdFx0XHQpLFxuXHRcdHNlZV9hbHNvOiB6LmFycmF5KHouc3RyaW5nKCkpLmRlc2NyaWJlKFwiQSBsaXN0IG9mIHJlbGF0ZWQgd29yZHNcIiksXG5cdFx0cmVzb3VyY2VzOiB6XG5cdFx0XHQub2JqZWN0KHtcblx0XHRcdFx0c29uYV9wb25hOiB6XG5cdFx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdFx0LnVybCgpXG5cdFx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XHRcIkEgbGluayB0byB0aGUgd29yZCdzIHBhZ2Ugb24gc29uYS5wb25hLmxhLCBhIFRva2kgUG9uYSB3aWtpLiBNYXkgcmVkaXJlY3QgZm9yIHdvcmRzIHdpdGggcmVmZXJlbmNlcyBidXQgbm8gZGVkaWNhdGVkIHBhZ2UuXCIsXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0bGlwYW1hbmthX3NlbWFudGljOiB6XG5cdFx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdFx0LnVybCgpXG5cdFx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXCJBIGxpbmsgdG8gbGlwYW1hbmthJ3MgZGVzY3JpcHRpb24gb2YgdGhlIHdvcmQncyBzZW1hbnRpYyBzcGFjZS5cIiksXG5cdFx0XHR9KVxuXHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdC5kZXNjcmliZShcIk5vbi1MaW5rdSByZXNvdXJjZXMgcmVsYXRlZCB0byB0aGUgc3BlY2lmaWMgd29yZCwgc3VjaCBhcyB3aWtpIGxpbmtzLlwiKSxcblx0XHRyZXByZXNlbnRhdGlvbnM6IHpcblx0XHRcdC5vYmplY3Qoe1xuXHRcdFx0XHRzaXRlbGVuX2Vtb3NpOiB6XG5cdFx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdFx0LmVtb2ppKClcblx0XHRcdFx0XHQub3B0aW9uYWwoKVxuXHRcdFx0XHRcdC5kZXNjcmliZShcblx0XHRcdFx0XHRcdFwiVGhlIHNpdGVsZW4gZW1vc2kgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB3b3JkLCBhIHNjcmlwdCBmb3Igd3JpdGluZyBUb2tpIFBvbmEgdXNpbmcgZW1vamlcIixcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRzaXRlbGVuX2plbG86IHpcblx0XHRcdFx0XHQuYXJyYXkoei5zdHJpbmcoKS5lbW9qaSgpKVxuXHRcdFx0XHRcdC5taW4oMSlcblx0XHRcdFx0XHQub3B0aW9uYWwoKVxuXHRcdFx0XHRcdC5kZXNjcmliZShcIk9uZSBvciBtb3JlIGV4YW1wbGUgZW1vamlzIGZvciBob3cgdGhlIHdvcmQgY2FuIGJlIHdyaXR0ZW4gaW4gc2l0ZWxlbiBqZWxvXCIpLFxuXHRcdFx0XHRsaWdhdHVyZXM6IHpcblx0XHRcdFx0XHQuYXJyYXkoei5zdHJpbmcoKS5taW4oMSkpXG5cdFx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XHRcIkEgbGlzdCBvZiBzaXRlbGVuIExhc2luYSByZXByZXNlbnRhdGlvbnMgb2YgdGhlIHdvcmQsIHVzZWQgYnkgbGlnYXR1cmUgZm9udHMgdG8gdmlzdWFsbHkgY29udmVydCBsYXRpbiBjaGFyYWN0ZXJzIGludG8gc2l0ZWxlbiBwb25hXCIsXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0c2l0ZWxlbl9zaXRlbGVuOiB6XG5cdFx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdFx0LnVybCgpXG5cdFx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXCJBIFVSTCBwb2ludGluZyB0byBhbiBpbWFnZSBvZiB0aGlzIHdvcmQncyBzaXRlbGVuIHNpdGVsZW4gaGllcm9nbHlwaGljIGJsb2NrXCIpLFxuXHRcdFx0XHR1Y3N1cjogelxuXHRcdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHRcdC5yZWdleCgvXlVcXCtbXFxkYS1mQS1GXXs0LDZ9JC9nKVxuXHRcdFx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcdFx0XCJUaGUgd29yZCdzIFVDU1VSIGNvZGVwb2ludCwgYXMgZGVmaW5lZCBpbiBodHRwczovL3d3dy5rcmVhdGl2ZWtvcnAuY29tL3Vjc3VyL2NoYXJ0cy9zaXRlbGVuLmh0bWxcIixcblx0XHRcdFx0XHQpLFxuXHRcdFx0fSlcblx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHQuZGVzY3JpYmUoXCJXYXlzIG9mIHJlcHJlc2VudGluZyB0aGlzIHdvcmQgaW4gdGhlIHJlYWwgd29ybGQsIHZpYSB0ZXh0L2NvbXB1dGVyc1wiKSxcblx0XHRzb3VyY2VfbGFuZ3VhZ2U6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgbGFuZ3VhZ2UgdGhpcyB3b3JkIG9yaWdpbmF0ZWQgZnJvbVwiKSxcblx0XHR1c2FnZV9jYXRlZ29yeTogVXNhZ2VDYXRlZ29yeS5kZXNjcmliZShcblx0XHRcdFwiVGhlIHdvcmQncyB1c2FnZSBjYXRlZ29yeSwgYWNjb3JkaW5nIHRvIGEgc3VydmV5IHBlcmZvcm1lZCBieSB0aGUgTGlua3UgUHJvamVjdFwiLFxuXHRcdCksXG5cdFx0d29yZDogelxuXHRcdFx0LnN0cmluZygpXG5cdFx0XHQuZGVzY3JpYmUoYFRoZSB3b3JkJ3MgYWN0dWFsIHRleHQsIGluIGNhc2Ugb2YgYSB3b3JkIHdpdGggbXVsdGlwbGUgZGVmaW5pdGlvbnMgKGxpa2UgXCJ3ZVwiKWApLFxuXHRcdGRlcHJlY2F0ZWQ6IHpcblx0XHRcdC5ib29sZWFuKClcblx0XHRcdC5kZXNjcmliZShcIldoZXRoZXIgb3Igbm90IHRoZSB3b3JkIGlzIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBieSBpdHMgYXV0aG9yLlwiKSxcblx0XHRldHltb2xvZ3k6IHpcblx0XHRcdC5hcnJheShcblx0XHRcdFx0ei5vYmplY3Qoe1xuXHRcdFx0XHRcdHdvcmQ6IHpcblx0XHRcdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0XHRcdC5kZXNjcmliZShcblx0XHRcdFx0XHRcdFx0XCJPbmUgb2YgdGhlIHJvb3Qgd29yZHMgb2YgdGhpcyB3b3JkLCBhcyB3cml0dGVuIG91dCBpbiBpdHMgbGFuZ3VhZ2Ugb2Ygb3JpZ2luXCIsXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdGFsdDogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKGBBIGxhdGluaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgXCJ3b3JkXCIgZmllbGRgKSxcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQuZGVzY3JpYmUoXCJVbmxvY2FsaXplZCBldHltb2xvZ2ljYWwgdmFsdWVzIHJlZ2FyZGluZyB0aGlzIHdvcmQncyBvcmlnaW5cIiksXG5cdFx0YXVkaW86IHouYXJyYXkoXG5cdFx0XHR6XG5cdFx0XHRcdC5vYmplY3Qoe1xuXHRcdFx0XHRcdGF1dGhvcjogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBhdXRob3Igb2YgdGhlIGF1ZGlvIGZpbGUgaW4gYGxpbmtgLlwiKSxcblx0XHRcdFx0XHRsaW5rOiB6XG5cdFx0XHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0XHRcdC51cmwoKVxuXHRcdFx0XHRcdFx0LmRlc2NyaWJlKFwiQSBsaW5rIHRvIHRoZSBhdWRpbyBmaWxlIGZvciB0aGUgd29yZCwgcHJvbm91bmNlZCBieSBgYXV0aG9yYC5cIiksXG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5kZXNjcmliZShcIkF1ZGlvIGZpbGVzIG9mIHRoZSB3b3JkcyBwcm9ub3VuY2VkIG91dCBsb3VkXCIpLFxuXHRcdCksXG5cdFx0cHVfdmVyYmF0aW06IHpcblx0XHRcdC5vYmplY3Qoe1xuXHRcdFx0XHRlbjogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBvcmlnaW5hbCBkZWZpbml0aW9uIGluIHRoZSBFbmdsaXNoIHZlcnNpb24gb2YgcHVcIiksXG5cdFx0XHRcdGZyOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIG9yaWdpbmFsIGRlZmluaXRpb24gaW4gdGhlIEZyZW5jaCB2ZXJzaW9uIG9mIHB1XCIpLFxuXHRcdFx0XHRkZTogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBvcmlnaW5hbCBkZWZpbml0aW9uIGluIHRoZSBHZXJtYW4gdmVyc2lvbiBvZiBwdVwiKSxcblx0XHRcdFx0ZW86IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgb3JpZ2luYWwgZGVmaW5pdGlvbiBpbiB0aGUgRXNwZXJhbnRvIHZlcnNpb24gb2YgcHVcIiksXG5cdFx0XHR9KVxuXHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdC5kZXNjcmliZShcIlRoZSBvcmlnaW5hbCBkZWZpbml0aW9uIG9mIHRoZSB3b3JkIGluIHB1LCB0aGUgZmlyc3Qgb2ZmaWNpYWwgVG9raSBQb25hIGJvb2tcIiksXG5cdFx0dXNhZ2U6IHpcblx0XHRcdC5yZWNvcmQoei5zdHJpbmcoKS5yZWdleCgvXjIwXFxkezJ9LSgwWzEtOV18MVswLTJdKSQvZyksIHoubnVtYmVyKCkubWluKDApLm1heCgxMDApKVxuXHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcIlRoZSBwZXJjZW50YWdlIG9mIHBlb3BsZSBpbiB0aGUgVG9raSBQb25hIGNvbW11bml0eSB3aG8gdXNlIHRoaXMgd29yZCwgYWNjb3JkaW5nIHRvIHN1cnZleXMgcGVyZm9ybWVkIGJ5IHRoZSBMaW5rdSBQcm9qZWN0XCIsXG5cdFx0XHQpLFxuXHR9KVxuXHQuZGVzY3JpYmUoXCJHZW5lcmFsIGluZm8gb24gYSBUb2tpIFBvbmEgd29yZFwiKTtcblxuZXhwb3J0IHR5cGUgV29yZCA9IHouaW5mZXI8dHlwZW9mIFdvcmQ+O1xuXG5leHBvcnQgY29uc3QgQ29tbWVudGFyeVRyYW5zbGF0aW9uID0gelxuXHQucmVjb3JkKHouc3RyaW5nKCkubWluKDEpLCB6LnN0cmluZygpKVxuXHQuZGVzY3JpYmUoXCJMb2NhbGl6ZWQgY29tbWVudGFyeSByZWdhcmRpbmcgVG9raSBQb25hIHdvcmRzXCIpO1xuXG5leHBvcnQgdHlwZSBDb21tZW50YXJ5VHJhbnNsYXRpb24gPSB6LmluZmVyPHR5cGVvZiBDb21tZW50YXJ5VHJhbnNsYXRpb24+O1xuXG5leHBvcnQgY29uc3QgRGVmaW5pdGlvblRyYW5zbGF0aW9uID0gelxuXHQucmVjb3JkKHouc3RyaW5nKCkubWluKDEpLCB6LnN0cmluZygpLm1pbigxKSlcblx0LmRlc2NyaWJlKFwiTG9jYWxpemVkIGRlZmluaXRpb25zIG9mIFRva2kgUG9uYSB3b3Jkc1wiKTtcblxuZXhwb3J0IHR5cGUgRGVmaW5pdGlvblRyYW5zbGF0aW9uID0gei5pbmZlcjx0eXBlb2YgRGVmaW5pdGlvblRyYW5zbGF0aW9uPjtcblxuZXhwb3J0IGNvbnN0IFNpdGVsZW5Qb25hVHJhbnNsYXRpb24gPSB6XG5cdC5yZWNvcmQoei5zdHJpbmcoKS5taW4oMSksIHouc3RyaW5nKCkpXG5cdC5kZXNjcmliZShcIkxvY2FsaXplZCBkZXNjcmlwdGlvbnMgb2YgdGhlIG9yaWdpbnMgb2YgdGhlIHNpdGVsZW4gcG9uYSBnbHlwaHMgZm9yIFRva2kgUG9uYSB3b3Jkc1wiKTtcblxuZXhwb3J0IHR5cGUgU2l0ZWxlblBvbmFUcmFuc2xhdGlvbiA9IHouaW5mZXI8dHlwZW9mIFNpdGVsZW5Qb25hVHJhbnNsYXRpb24+O1xuXG5leHBvcnQgY29uc3QgRXR5bW9sb2d5VHJhbnNsYXRpb24gPSB6XG5cdC5yZWNvcmQoXG5cdFx0ei5zdHJpbmcoKS5taW4oMSksXG5cdFx0ei5hcnJheShcblx0XHRcdHoub2JqZWN0KHtcblx0XHRcdFx0ZGVmaW5pdGlvbjogelxuXHRcdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHRcdFx0LmRlc2NyaWJlKFwiVGhlIGxvY2FsaXplZCBkZWZpbml0aW9uIG9mIHRoZSByb290IHdvcmQgaW4gaXRzIG9yaWdpbiBsYW5ndWFnZVwiKSxcblx0XHRcdFx0bGFuZ3VhZ2U6IHpcblx0XHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXCJUaGUgbG9jYWxpemVkIG5hbWUgb2YgdGhlIGxhbmd1YWdlIHRoaXMgd29yZCBvcmlnaW5hdGVkIGZyb21cIiksXG5cdFx0XHR9KSxcblx0XHQpLFxuXHQpXG5cdC5kZXNjcmliZShcIkxvY2FsaXplZCBldHltb2xvZ2ljYWwgdmFsdWVzIGZvciBUb2tpIFBvbmEgd29yZHNcIik7XG5cbmV4cG9ydCB0eXBlIEV0eW1vbG9neVRyYW5zbGF0aW9uID0gei5pbmZlcjx0eXBlb2YgRXR5bW9sb2d5VHJhbnNsYXRpb24+O1xuXG5leHBvcnQgY29uc3QgU2lnbiA9IHpcblx0Lm9iamVjdCh7XG5cdFx0ZGVmaW5pdGlvbjogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBkZWZpbml0aW9uIG9mIHRoZSBzaWduIGFzIGEgc2luZ2xlIHRva2kgcG9uYSB3b3JkLlwiKSxcblx0XHRpZDogei5zdHJpbmcoKS5kZXNjcmliZShcIkEgZ2xvYmFsbHkgdW5pcXVlIG5hbWUgZm9yIHRoZSBzaWduIHdoaWNoIGlzIGFsc28gYSBnbG9zcy5cIiksXG5cdFx0aXNfdHdvX2hhbmRlZDogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJXaGV0aGVyIHRoZSBzaWduIGlzIHR3by1oYW5kZWQgb3Igbm90LlwiKSxcblx0XHRuZXdfZ2xvc3M6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgbW9yZSByZWNlbnQsIHByZWZlcnJlZCBnbG9zcyBmb3IgdGhpcyBzaWduLlwiKSxcblx0XHRvbGRfZ2xvc3M6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgb2xkZXIgZ2xvc3MgZm9yIHRoaXMgc2lnbiwgc2ltaWxhciB0byBgaWRgLlwiKSxcblx0XHRldHltb2xvZ3k6IHpcblx0XHRcdC5hcnJheShcblx0XHRcdFx0ei5vYmplY3Qoe1xuXHRcdFx0XHRcdGxhbmd1YWdlOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIGxhbmd1YWdlIG9mIHRoZSBzaWduLlwiKSxcblx0XHRcdFx0XHRzaWduOiB6XG5cdFx0XHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XHRcdFwiVGhlIG5hbWUgb2YgdGhlIHNpZ24gc3VjaCB0aGF0IGl0IGNvdWxkIGJlIGZvdW5kIGluIGEgc2lnbiBsYW5ndWFnZSBkaWN0aW9uYXJ5LlwiLFxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQuZGVzY3JpYmUoXCJVbmxvY2FsaXplZCBldHltb2xvZ2ljYWwgdmFsdWVzIHJlZ2FyZGluZyB0aGlzIHNpZ24ncyBvcmlnaW5cIiksXG5cdFx0c2lnbndyaXRpbmc6IHpcblx0XHRcdC5vYmplY3Qoe1xuXHRcdFx0XHRmc3c6IHpcblx0XHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XHRcIlRoZSBbRm9ybWFsIFNpZ25Xcml0aW5nXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TaWduV3JpdGluZykgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNpZ24uXCIsXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0c3d1OiB6XG5cdFx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcdFx0XCJUaGUgW1NpZ25Xcml0aW5nIHdpdGggVW5pY29kZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU2lnbldyaXRpbmcpIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzaWduLlwiLFxuXHRcdFx0XHRcdCksXG5cdFx0XHR9KVxuXHRcdFx0LmRlc2NyaWJlKFwiU2NyaXB0cyBmb3IgcmVwcmVzZW50aW5nIGEgc2lnbiBhcyBjaGFyYWN0ZXJzLlwiKSxcblx0XHR2aWRlbzogelxuXHRcdFx0Lm9iamVjdCh7XG5cdFx0XHRcdGdpZjogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiQSBsaW5rIHRvIGEgZ2lmIG9mIHRoZSBzaWduIGJlaW5nIHNpZ25lZC5cIiksXG5cdFx0XHRcdG1wNDogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiYSBsaW5rIHRvIGFuIG1wNCBvZiB0aGUgc2lnbiBiZWluZyBzaWduZWQuXCIpLFxuXHRcdFx0fSlcblx0XHRcdC5kZXNjcmliZShcIlZpZGVvcyBvZiB0aGUgc2lnbiBiZWluZyBwZXJmb3JtZWQsIGJ5IGZvcm1hdC5cIiksXG5cdH0pXG5cdC5kZXNjcmliZShcIlVubG9jYWxpemVkIGluZm8gb24gYSBMdWthIFBvbmEgc2lnblwiKTtcblxuZXhwb3J0IHR5cGUgU2lnbiA9IHouaW5mZXI8dHlwZW9mIFNpZ24+O1xuXG5leHBvcnQgY29uc3QgRmluZ2Vyc3BlbGxpbmdTaWduID0gelxuXHQub2JqZWN0KHtcblx0XHRpZDogei5zdHJpbmcoKS5kZXNjcmliZShcIkEgZ2xvYmFsbHkgdW5pcXVlIG5hbWUgZm9yIHRoZSBzaWduIHdoaWNoIGlzIGFsc28gYSBnbG9zcy5cIiksXG5cdFx0aXNfdHdvX2hhbmRlZDogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJXaGV0aGVyIHRoZSBzaWduIGlzIHR3by1oYW5kZWQgb3Igbm90LlwiKSxcblx0XHRldHltb2xvZ3k6IHpcblx0XHRcdC5hcnJheShcblx0XHRcdFx0ei5vYmplY3Qoe1xuXHRcdFx0XHRcdGxhbmd1YWdlOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIGxhbmd1YWdlIG9mIHRoZSBzaWduLlwiKSxcblx0XHRcdFx0XHRzaWduOiB6XG5cdFx0XHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0XHRcdC5kZXNjcmliZShcblx0XHRcdFx0XHRcdFx0XCJUaGUgbmFtZSBvZiB0aGUgc2lnbiBzdWNoIHRoYXQgaXQgY291bGQgYmUgZm91bmQgaW4gYSBzaWduIGxhbmd1YWdlIGRpY3Rpb25hcnkuXCIsXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHR9KSxcblx0XHRcdClcblx0XHRcdC5kZXNjcmliZShcIlVubG9jYWxpemVkIGV0eW1vbG9naWNhbCB2YWx1ZXMgcmVnYXJkaW5nIHRoaXMgc2lnbidzIG9yaWdpblwiKSxcblx0XHRzaWdud3JpdGluZzogelxuXHRcdFx0Lm9iamVjdCh7XG5cdFx0XHRcdGZzdzogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBGb3JtYWwgU2lnbiBXcml0aW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzaWduLlwiKSxcblx0XHRcdFx0c3d1OiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIFNpZ24gV3JpdGluZyB3aXRoIFVuaWNvZGUgcmVwcmVzZW50YXRpb24gb2YgaHRlIHNpZ24uXCIpLFxuXHRcdFx0fSlcblx0XHRcdC5kZXNjcmliZShcIlNjcmlwdHMgZm9yIHJlcHJlc2VudGluZyBhIHNpZ24gYXMgY2hhcmFjdGVycy5cIiksXG5cdFx0dmlkZW86IHpcblx0XHRcdC5vYmplY3Qoe1xuXHRcdFx0XHRnaWY6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIkEgbGluayB0byBhIGdpZiBvZiB0aGUgc2lnbiBiZWluZyBzaWduZWQuXCIpLFxuXHRcdFx0XHRtcDQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcImEgbGluayB0byBhbiBtcDQgb2YgdGhlIHNpZ24gYmVpbmcgc2lnbmVkLlwiKSxcblx0XHRcdH0pXG5cdFx0XHQuZGVzY3JpYmUoXCJWaWRlb3Mgb2YgdGhlIHNpZ24gYmVpbmcgcGVyZm9ybWVkLCBieSBmb3JtYXQuXCIpLFxuXHR9KVxuXHQuZGVzY3JpYmUoXCJVbmxvY2FsaXplZCBpbmZvIG9uIGEgZmluZ2Vyc3BlbGxpbmcgc2lnbi5cIik7XG5cbmV4cG9ydCB0eXBlIEZpbmdlcnNwZWxsaW5nU2lnbiA9IHouaW5mZXI8dHlwZW9mIEZpbmdlcnNwZWxsaW5nU2lnbj47XG5cbmV4cG9ydCBjb25zdCBQYXJhbWV0ZXJzVHJhbnNsYXRpb24gPSB6XG5cdC5yZWNvcmQoXG5cdFx0ei5zdHJpbmcoKS5taW4oMSksXG5cdFx0ei5vYmplY3Qoe1xuXHRcdFx0aGFuZHNoYXBlOiB6XG5cdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHQub3B0aW9uYWwoKVxuXHRcdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFx0XCJUaGUgc2hhcGUgb2YgdGhlIGhhbmQgd2hlbiBzaWduaW5nLCBpZGVudGlmaWVkIGJ5IGl0cyBuYW1lIGluIEFTTC4gU2hvdWxkIG5vdCBiZSB0cmFuc2xhdGVkIGluIGFueSBsYW5ndWFnZSBvdGhlciB0aGFuIFRva2kgUG9uYVwiLFxuXHRcdFx0XHQpLFxuXHRcdFx0bW92ZW1lbnQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlRoZSBtb3Rpb24gb2YgdGhlIGhhbmQgd2hlbiBzaWduaW5nLlwiKSxcblx0XHRcdHBsYWNlbWVudDogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiVGhlIHBsYWNlbWVudCBvZiB0aGUgaGFuZCB3aGVuIHNpZ25pbmcuXCIpLFxuXHRcdFx0b3JpZW50YXRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlRoZSBvcmllbnRhdGlvbiBvZiB0aGUgaGFuZCB3aGVuIHNpZ25pbmcuXCIpLFxuXHRcdH0pLFxuXHQpXG5cdC5kZXNjcmliZShcIlBhcnRseSBsb2NhbGl6ZWQgZGVzY3JpcHRpb25zIG9mIGhvdyBhIHNpZ24gaXMgc2lnbmVkLlwiKTtcblxuZXhwb3J0IHR5cGUgUGFyYW1ldGVyc1RyYW5zbGF0aW9uID0gei5pbmZlcjx0eXBlb2YgUGFyYW1ldGVyc1RyYW5zbGF0aW9uPjtcblxuZXhwb3J0IGNvbnN0IEljb25UcmFuc2xhdGlvbiA9IHpcblx0LnJlY29yZCh6LnN0cmluZygpLm1pbigxKSwgei5zdHJpbmcoKSlcblx0LmRlc2NyaWJlKFwiTG9jYWxpemVkIGRlc2NyaXB0aW9ucyBvZiB0aGUgdGhpbmcgYSBzaWduIHJlcHJlc2VudHMuXCIpO1xuXG5leHBvcnQgdHlwZSBJY29uVHJhbnNsYXRpb24gPSB6LmluZmVyPHR5cGVvZiBJY29uVHJhbnNsYXRpb24+O1xuXG5leHBvcnQgY29uc3QgRm9udCA9IHpcblx0Lm9iamVjdCh7XG5cdFx0aWQ6IHouc3RyaW5nKCkubWluKDEpLmRlc2NyaWJlKFwiVGhlIGZvbnQncyB1bmlxdWUgSUQsIGlkZW50aWZ5aW5nIGl0IGFtb25nIG90aGVyIGZvbnRzXCIpLFxuXHRcdGNyZWF0b3I6IHouYXJyYXkoei5zdHJpbmcoKSkuZGVzY3JpYmUoXCJhIGxpc3Qgb2YgdGhpcyBmb250J3MgY3JlYXRvcnNcIiksXG5cdFx0ZmVhdHVyZXM6IHouYXJyYXkoei5zdHJpbmcoKSkuZGVzY3JpYmUoXCJhIGxpc3Qgb2YgZmVhdHVyZXMgdGhpcyBmb250IHN1cHBvcnRzXCIpLFxuXHRcdGZpbGVuYW1lOiB6XG5cdFx0XHQuc3RyaW5nKClcblx0XHRcdC5yZWdleCgvXig/Oi4rXFwuKHR0ZnxvdGZ8d29mZjJ8d29mZikpPyQvKVxuXHRcdFx0LmRlc2NyaWJlKFwidGhlIG5hbWUgb2YgdGhlIGZpbGUgdGhpcyBmb250IGlzIHN0b3JlZCBpbiBhdCBodHRwczovL2dpdGh1Yi5jb20vbGlwdS1saW5rdS9pam9cIiksXG5cdFx0bGFzdF91cGRhdGVkOiBZZWFyTW9udGgub3B0aW9uYWwoKS5kZXNjcmliZShcInRoZSByb3VnaCBkYXRlIG9mIHRoaXMgZm9udCdzIGxhc3QgdXBkYXRlXCIpLFxuXHRcdGxpY2Vuc2U6IHpcblx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0LmRlc2NyaWJlKFwiYW4gU1BEWCBleHByZXNzaW9uIGRlc2NyaWJpbmcgdGhpcyBmb250J3MgbGljZW5zZTogaHR0cHM6Ly9zcGR4Lm9yZy9saWNlbnNlcy9cIiksXG5cdFx0bGlnYXR1cmVzOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIndoZXRoZXIgdGhpcyBmb250IHN1cHBvcnRzIGxpZ2F0dXJlc1wiKSxcblx0XHRuYW1lOiB6LnN0cmluZygpLm1pbigxKS5kZXNjcmliZShcInRoaXMgZm9udCdzIG5hbWVcIiksXG5cdFx0c3R5bGU6IHouc3RyaW5nKCkubWluKDEpLmRlc2NyaWJlKFwidGhlIGdlbmVyYWwgc3R5bGUgb2YgdGhpcyBmb250XCIpLFxuXHRcdHVjc3VyOiB6XG5cdFx0XHQuYm9vbGVhbigpXG5cdFx0XHQuZGVzY3JpYmUoXG5cdFx0XHRcdFwid2hldGhlciB0aGlzIGZvbnQgY29uZm9ybXMgdG8gdGhlIFVDU1VSIHN0YW5kYXJkOiBodHRwczovL3d3dy5rcmVhdGl2ZWtvcnAuY29tL3Vjc3VyL2NoYXJ0cy9zaXRlbGVuLmh0bWxcIixcblx0XHRcdCksXG5cdFx0dmVyc2lvbjogei5zdHJpbmcoKS5kZXNjcmliZShcInRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhpcyBmb250XCIpLFxuXHRcdHdyaXRpbmdfc3lzdGVtOiBXcml0aW5nU3lzdGVtLmRlc2NyaWJlKFwidGhlIHdyaXRpbmcgc3lzdGVtIHRoaXMgZm9udCB1c2VzIGFzIGl0cyBzY3JpcHRcIiksXG5cdFx0bGlua3M6IHoub2JqZWN0KHtcblx0XHRcdGZvbnRmaWxlOiB6XG5cdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHQudXJsKClcblx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcdFwiYSBsaW5rIHRvIHRoZSBmb250IGZpbGUgcHVibGlzaGVkIGJ5IHRoZSBvcmlnaW5hbCBhdXRob3IgKG5vdCB0aGUgbWlycm9yIG9uIHRoZSBMaW5rdSBQcm9qZWN0J3MgR2l0SHViKVwiLFxuXHRcdFx0XHQpLFxuXHRcdFx0cmVwbzogelxuXHRcdFx0XHQuc3RyaW5nKClcblx0XHRcdFx0LnVybCgpXG5cdFx0XHRcdC5vcHRpb25hbCgpXG5cdFx0XHRcdC5kZXNjcmliZShcblx0XHRcdFx0XHRcImEgbGluayB0byBhIHdlYiBob3N0ZWQgcmVwb3NpdG9yeSBvZiB0aGlzIGZvbnQncyBzb3VyY2UgZmlsZXMgKHVzdWFsbHkgaG9zdGVkIG9uIEdpdEh1YiBvciBHaXRMYWIpXCIsXG5cdFx0XHRcdCksXG5cdFx0XHR3ZWJwYWdlOiB6XG5cdFx0XHRcdC5zdHJpbmcoKVxuXHRcdFx0XHQudXJsKClcblx0XHRcdFx0Lm9wdGlvbmFsKClcblx0XHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcdFwiYSBsaW5rIHRvIHRoaXMgZm9udCdzIGhvbWUgcGFnZSwgdXN1YWxseSBzaG93Y2FzaW5nIGl0cyBmZWF0dXJlcyBhbmQgdXNhZ2UvaW5zdGFsbGF0aW9uXCIsXG5cdFx0XHRcdCksXG5cdFx0fSksXG5cdH0pXG5cdC5kZXNjcmliZShcIkluZm8gb24gYSBmb250IGZvciBUb2tpIFBvbmFcIik7XG5leHBvcnQgdHlwZSBGb250ID0gei5pbmZlcjx0eXBlb2YgRm9udD47XG5cbmV4cG9ydCBjb25zdCBXb3JkcyA9IHpcblx0LnJlY29yZChcblx0XHR6LnN0cmluZygpLm1pbigxKSxcblx0XHRXb3JkLmV4dGVuZCh7XG5cdFx0XHR0cmFuc2xhdGlvbnM6IHoucmVjb3JkKFxuXHRcdFx0XHR6Lm9iamVjdCh7XG5cdFx0XHRcdFx0Y29tbWVudGFyeTogQ29tbWVudGFyeVRyYW5zbGF0aW9uLnZhbHVlU2NoZW1hLFxuXHRcdFx0XHRcdGRlZmluaXRpb246IERlZmluaXRpb25UcmFuc2xhdGlvbi52YWx1ZVNjaGVtYSxcblx0XHRcdFx0XHRldHltb2xvZ3k6IEV0eW1vbG9neVRyYW5zbGF0aW9uLnZhbHVlU2NoZW1hLFxuXHRcdFx0XHRcdHNwX2V0eW1vbG9neTogU2l0ZWxlblBvbmFUcmFuc2xhdGlvbi52YWx1ZVNjaGVtYSxcblx0XHRcdFx0fSksXG5cdFx0XHQpLFxuXHRcdH0pLFxuXHQpXG5cdC5kZXNjcmliZShcIkEgcmF3IGRhdGEgb2JqZWN0IGNvbnRhaW5pbmcgZGljdGlvbmFyeSBpbmZvIGFib3V0IFRva2kgUG9uYSB3b3Jkc1wiKTtcbmV4cG9ydCB0eXBlIFdvcmRzID0gei5pbmZlcjx0eXBlb2YgV29yZHM+O1xuZXhwb3J0IHR5cGUgTG9jYWxpemVkV29yZCA9IFdvcmRzW3N0cmluZ107XG5cbmV4cG9ydCBjb25zdCBTaWducyA9IHpcblx0LnJlY29yZChcblx0XHR6LnN0cmluZygpLm1pbigxKSxcblx0XHRTaWduLmV4dGVuZCh7XG5cdFx0XHR0cmFuc2xhdGlvbnM6IHoucmVjb3JkKFxuXHRcdFx0XHR6Lm9iamVjdCh7XG5cdFx0XHRcdFx0cGFyYW1ldGVyczogUGFyYW1ldGVyc1RyYW5zbGF0aW9uLnZhbHVlU2NoZW1hLFxuXHRcdFx0XHRcdGljb25zOiBJY29uVHJhbnNsYXRpb24udmFsdWVTY2hlbWEsXG5cdFx0XHRcdH0pLFxuXHRcdFx0KSxcblx0XHR9KSxcblx0KVxuXHQuZGVzY3JpYmUoXCJBIHJhdyBkYXRhIG9iamVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IEx1a2EgUG9uYSBzaWduc1wiKTtcbmV4cG9ydCB0eXBlIFNpZ25zID0gei5pbmZlcjx0eXBlb2YgU2lnbnM+O1xuZXhwb3J0IHR5cGUgTG9jYWxpemVkU2lnbiA9IFNpZ25zW3N0cmluZ107XG5cbmV4cG9ydCBjb25zdCBGaW5nZXJzcGVsbGluZyA9IHpcblx0LnJlY29yZChcblx0XHR6LnN0cmluZygpLm1pbigxKSxcblx0XHRGaW5nZXJzcGVsbGluZ1NpZ24uZXh0ZW5kKHtcblx0XHRcdHRyYW5zbGF0aW9uczogei5yZWNvcmQoei5vYmplY3QoeyBwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzVHJhbnNsYXRpb24udmFsdWVTY2hlbWEgfSkpLFxuXHRcdH0pLFxuXHQpXG5cdC5kZXNjcmliZShcIkEgcmF3IGRhdGEgb2JqZWN0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgTHVrYSBQb25hIGZpbmdlcnNwZWxsaW5nIHNpZ25zXCIpO1xuZXhwb3J0IHR5cGUgRmluZ2Vyc3BlbGxpbmcgPSB6LmluZmVyPHR5cGVvZiBGaW5nZXJzcGVsbGluZz47XG5leHBvcnQgdHlwZSBMb2NhbGl6ZWRGaW5nZXJzcGVsbGluZ1NpZ24gPSBGaW5nZXJzcGVsbGluZ1tzdHJpbmddO1xuXG5leHBvcnQgY29uc3QgRm9udHMgPSB6XG5cdC5yZWNvcmQoRm9udClcblx0LmRlc2NyaWJlKFwiQSByYXcgZGF0YSBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIGZvbnRzIGRhdGEgaW4gc29uYVwiKTtcbmV4cG9ydCB0eXBlIEZvbnRzID0gei5pbmZlcjx0eXBlb2YgRm9udHM+O1xuXG5leHBvcnQgY29uc3QgTGFuZ3VhZ2VzID0gei5yZWNvcmQoXG5cdHpcblx0XHQuc3RyaW5nKClcblx0XHQubWluKDIpXG5cdFx0LmRlc2NyaWJlKFwiVGhlIGxhbmd1YWdlIGNvZGUgdXNlZCBieSBDcm93ZGluLiBBcHByb3hpbWF0ZXMgMiBsZXR0ZXIgY29kZSAtPiAzIGxldHRlciBjb2RlLlwiKSxcblx0elxuXHRcdC5vYmplY3Qoe1xuXHRcdFx0aWQ6IHpcblx0XHRcdFx0LnN0cmluZygpXG5cdFx0XHRcdC5taW4oMilcblx0XHRcdFx0LmRlc2NyaWJlKFxuXHRcdFx0XHRcdFwiVGhlIGxhbmd1YWdlIGNvZGUgdXNlZCBieSBDcm93ZGluLiBBcHByb3hpbWF0ZXMgMiBsZXR0ZXIgY29kZSAtPiAzIGxldHRlciBjb2RlLlwiLFxuXHRcdFx0XHQpLFxuXHRcdFx0bG9jYWxlOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIGxvY2FsZSBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGxhbmd1YWdlLlwiKSxcblx0XHRcdGRpcmVjdGlvbjogelxuXHRcdFx0XHQudW5pb24oW3oubGl0ZXJhbChcImx0clwiKSwgei5saXRlcmFsKFwicnRsXCIpXSlcblx0XHRcdFx0LmRlc2NyaWJlKFwiVGhlIGRpcmVjdGlvbiBvZiB0aGUgbGFuZ3VhZ2UncyBzY3JpcHQuXCIpLFxuXHRcdFx0bmFtZTogei5vYmplY3Qoe1xuXHRcdFx0XHRlbjogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBuYW1lIG9mIHRoZSBsYW5ndWFnZSBpbiBFbmdsaXNoLlwiKSxcblx0XHRcdFx0Ly8gVGhlc2UgYXJlIG9wdGlvbmFsIGJlY2F1c2Ugd2UgY2FuIGFkZCBhIGxhbmd1YWdlIHZpYSBDcm93ZGluIGFuZCBDcm93ZGluIGRvZXNuJ3QgcHJvdmlkZSB0aGVzZS5cblx0XHRcdFx0Ly8gRG93bnN0cmVhbSBwcm9qZWN0cyBzaG91bGQgcHJlZmVyIGVuZG9ueW0gb3ZlciBuYW1lX2VuIGlmIGJvdGggYXJlIGF2YWlsYWJsZS5cblx0XHRcdFx0dG9rOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJUaGUgbmFtZSBvZiB0aGUgbGFuZ3VhZ2UgaW4gVG9raSBQb25hLlwiKSxcblx0XHRcdFx0ZW5kb255bTogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiVGhlIG5hbWUgb2YgdGhlIGxhbmd1YWdlIGluIHRoYXQgbGFuZ3VhZ2UuXCIpLFxuXHRcdFx0fSksXG5cdFx0XHQvLyBUT0RPOiBjb21wbGV0aW9uIHBlcmNlbnRhZ2Ugb24gYSBwZXItZmlsZSBiYXNpcz9cblx0XHRcdC8vIHdlIGFsc28gY2FyZSBhYm91dCBjb21wbGV0aW9uIHdpdGhpbiB1c2FnZSBjYXRlZ29yaWVzLCBzaW5jZSB0aGUgbW9zdCBpbXBvcnRhbnQgd29yZHMgYXJlIGNvcmUrd2lkZXNwcmVhZCtjb21tb25cblx0XHR9KVxuXHRcdC5kZXNjcmliZShcIlRoZSBsYW5ndWFnZXMgb2ZmZXJlZCBieSBzb25hIExpbmt1LlwiKSxcbik7XG5leHBvcnQgdHlwZSBMYW5ndWFnZXMgPSB6LmluZmVyPHR5cGVvZiBMYW5ndWFnZXM+O1xuZXhwb3J0IHR5cGUgTGFuZ3VhZ2UgPSBMYW5ndWFnZXNbc3RyaW5nXTtcbiJdLCJuYW1lcyI6WyJZZWFyTW9udGgiLCJ6IiwiV29yZCIsIkJvb2siLCJDb2luZWRFcmEiLCJVc2FnZUNhdGVnb3J5IiwiQ29tbWVudGFyeVRyYW5zbGF0aW9uIiwiRGVmaW5pdGlvblRyYW5zbGF0aW9uIiwiU2l0ZWxlblBvbmFUcmFuc2xhdGlvbiIsIkV0eW1vbG9neVRyYW5zbGF0aW9uIiwiU2lnbiIsIkZpbmdlcnNwZWxsaW5nU2lnbiIsIlBhcmFtZXRlcnNUcmFuc2xhdGlvbiIsIkljb25UcmFuc2xhdGlvbiIsIkZvbnQiLCJXcml0aW5nU3lzdGVtIiwiV29yZHMiLCJTaWducyIsIkZpbmdlcnNwZWxsaW5nIiwiRm9udHMiLCJMYW5ndWFnZXMiXSwibWFwcGluZ3MiOiI7QUFLQSxNQUFNQSxJQUFZQyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixHQUVsREMsSUFBT0QsRUFDbEIsT0FBTztBQUFBLEVBQ1AsSUFBSUEsRUFDRixP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
@@ -174,12 +174,25 @@ export declare const client: (args?: {
174
174
  eo: string;
175
175
  } | undefined;
176
176
  };
177
- } | {
177
+ };
178
+ outputFormat: "json";
179
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
180
+ } | {
181
+ input: {
182
+ query: {
183
+ lang?: string | string[] | undefined;
184
+ };
185
+ } & {
186
+ param: {
187
+ word: string | undefined;
188
+ };
189
+ };
190
+ output: {
178
191
  ok: false;
179
192
  message: string;
180
193
  };
181
194
  outputFormat: "json";
182
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
195
+ status: 400;
183
196
  };
184
197
  }>;
185
198
  };
@@ -328,12 +341,25 @@ export declare const client: (args?: {
328
341
  eo: string;
329
342
  } | undefined;
330
343
  };
331
- } | {
344
+ };
345
+ outputFormat: "json";
346
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
347
+ } | {
348
+ input: {
349
+ query: {
350
+ lang?: string | string[] | undefined;
351
+ };
352
+ } & {
353
+ param: {
354
+ word: string | undefined;
355
+ };
356
+ };
357
+ output: {
332
358
  ok: false;
333
359
  message: string;
334
360
  };
335
361
  outputFormat: "json";
336
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
362
+ status: 400;
337
363
  };
338
364
  }>;
339
365
  };
@@ -425,12 +451,25 @@ export declare const client: (args?: {
425
451
  mp4?: string | undefined;
426
452
  };
427
453
  };
428
- } | {
454
+ };
455
+ outputFormat: "json";
456
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
457
+ } | {
458
+ input: {
459
+ query: {
460
+ lang?: string | string[] | undefined;
461
+ };
462
+ } & {
463
+ param: {
464
+ sign: string | undefined;
465
+ };
466
+ };
467
+ output: {
429
468
  ok: false;
430
469
  message: string;
431
470
  };
432
471
  outputFormat: "json";
433
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
472
+ status: 400;
434
473
  };
435
474
  }>;
436
475
  };
@@ -531,12 +570,25 @@ export declare const client: (args?: {
531
570
  mp4?: string | undefined;
532
571
  };
533
572
  };
534
- } | {
573
+ };
574
+ outputFormat: "json";
575
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
576
+ } | {
577
+ input: {
578
+ query: {
579
+ lang?: string | string[] | undefined;
580
+ };
581
+ } & {
582
+ param: {
583
+ sign: string | undefined;
584
+ };
585
+ };
586
+ output: {
535
587
  ok: false;
536
588
  message: string;
537
589
  };
538
590
  outputFormat: "json";
539
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
591
+ status: 400;
540
592
  };
541
593
  }>;
542
594
  };
@@ -604,12 +656,21 @@ export declare const client: (args?: {
604
656
  };
605
657
  last_updated?: string | undefined;
606
658
  };
607
- } | {
659
+ };
660
+ outputFormat: "json";
661
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
662
+ } | {
663
+ input: {
664
+ param: {
665
+ font: string | undefined;
666
+ };
667
+ };
668
+ output: {
608
669
  ok: false;
609
670
  message: string;
610
671
  };
611
672
  outputFormat: "json";
612
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
673
+ status: 400;
613
674
  };
614
675
  }>;
615
676
  };
@@ -658,12 +719,21 @@ export declare const client: (args?: {
658
719
  locale: string;
659
720
  direction: "ltr" | "rtl";
660
721
  };
661
- } | {
722
+ };
723
+ outputFormat: "json";
724
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
725
+ } | {
726
+ input: {
727
+ param: {
728
+ language: string | undefined;
729
+ };
730
+ };
731
+ output: {
662
732
  ok: false;
663
733
  message: string;
664
734
  };
665
735
  outputFormat: "json";
666
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
736
+ status: 400;
667
737
  };
668
738
  }>;
669
739
  };
@@ -1,7 +1,7 @@
1
- import { Equal, Expect } from 'hono/utils/types';
2
- import { ClientResponse } from 'hono/client';
1
+ import { Fingerspelling, Font, Fonts, Language, Languages, LocalizedFingerspellingSign, LocalizedSign, LocalizedWord, Signs, Words } from './index';
3
2
  import { client } from './client';
4
- import { Fingerspelling, Font, Fonts, Language, Languages, LocalizedFingerspellingSign, LocalizedSign, LocalizedWord, Signs, Words } from '.';
3
+ import { ClientResponse } from 'hono/client';
4
+ import { Equal, Expect } from 'hono/utils/types';
5
5
 
6
6
  type ResponseType<F> = F extends {
7
7
  $get: (...args: any[]) => Promise<ClientResponse<infer O>>;
@@ -1,4 +1,4 @@
1
- import { Font, LocalizedWord, ParametersTranslation, Sign } from '.';
1
+ import { Font, LocalizedWord, ParametersTranslation, Sign } from './index';
2
2
 
3
3
  export type WordRepresentations = LocalizedWord["representations"];
4
4
  export type WordAudio = LocalizedWord["audio"];
@@ -147,12 +147,25 @@ declare const app: import('hono/hono-base').HonoBase<{}, {
147
147
  eo: string;
148
148
  } | undefined;
149
149
  };
150
- } | {
150
+ };
151
+ outputFormat: "json";
152
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
153
+ } | {
154
+ input: {
155
+ query: {
156
+ lang?: string | string[] | undefined;
157
+ };
158
+ } & {
159
+ param: {
160
+ word: string | undefined;
161
+ };
162
+ };
163
+ output: {
151
164
  ok: false;
152
165
  message: string;
153
166
  };
154
167
  outputFormat: "json";
155
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
168
+ status: 400;
156
169
  };
157
170
  };
158
171
  "/v1/sandbox": {
@@ -293,12 +306,25 @@ declare const app: import('hono/hono-base').HonoBase<{}, {
293
306
  eo: string;
294
307
  } | undefined;
295
308
  };
296
- } | {
309
+ };
310
+ outputFormat: "json";
311
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
312
+ } | {
313
+ input: {
314
+ query: {
315
+ lang?: string | string[] | undefined;
316
+ };
317
+ } & {
318
+ param: {
319
+ word: string | undefined;
320
+ };
321
+ };
322
+ output: {
297
323
  ok: false;
298
324
  message: string;
299
325
  };
300
326
  outputFormat: "json";
301
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
327
+ status: 400;
302
328
  };
303
329
  };
304
330
  "/v1/luka_pona/fingerspelling": {
@@ -379,12 +405,25 @@ declare const app: import('hono/hono-base').HonoBase<{}, {
379
405
  mp4?: string | undefined;
380
406
  };
381
407
  };
382
- } | {
408
+ };
409
+ outputFormat: "json";
410
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
411
+ } | {
412
+ input: {
413
+ query: {
414
+ lang?: string | string[] | undefined;
415
+ };
416
+ } & {
417
+ param: {
418
+ sign: string | undefined;
419
+ };
420
+ };
421
+ output: {
383
422
  ok: false;
384
423
  message: string;
385
424
  };
386
425
  outputFormat: "json";
387
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
426
+ status: 400;
388
427
  };
389
428
  };
390
429
  "/v1/luka_pona/signs": {
@@ -473,12 +512,25 @@ declare const app: import('hono/hono-base').HonoBase<{}, {
473
512
  mp4?: string | undefined;
474
513
  };
475
514
  };
476
- } | {
515
+ };
516
+ outputFormat: "json";
517
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
518
+ } | {
519
+ input: {
520
+ query: {
521
+ lang?: string | string[] | undefined;
522
+ };
523
+ } & {
524
+ param: {
525
+ sign: string | undefined;
526
+ };
527
+ };
528
+ output: {
477
529
  ok: false;
478
530
  message: string;
479
531
  };
480
532
  outputFormat: "json";
481
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
533
+ status: 400;
482
534
  };
483
535
  };
484
536
  "/v1/fonts": {
@@ -537,12 +589,21 @@ declare const app: import('hono/hono-base').HonoBase<{}, {
537
589
  };
538
590
  last_updated?: string | undefined;
539
591
  };
540
- } | {
592
+ };
593
+ outputFormat: "json";
594
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
595
+ } | {
596
+ input: {
597
+ param: {
598
+ font: string | undefined;
599
+ };
600
+ };
601
+ output: {
541
602
  ok: false;
542
603
  message: string;
543
604
  };
544
605
  outputFormat: "json";
545
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
606
+ status: 400;
546
607
  };
547
608
  };
548
609
  "/v1/languages": {
@@ -583,12 +644,21 @@ declare const app: import('hono/hono-base').HonoBase<{}, {
583
644
  locale: string;
584
645
  direction: "ltr" | "rtl";
585
646
  };
586
- } | {
647
+ };
648
+ outputFormat: "json";
649
+ status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
650
+ } | {
651
+ input: {
652
+ param: {
653
+ language: string | undefined;
654
+ };
655
+ };
656
+ output: {
587
657
  ok: false;
588
658
  message: string;
589
659
  };
590
660
  outputFormat: "json";
591
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
661
+ status: 400;
592
662
  };
593
663
  };
594
664
  } & {
@@ -1,5 +1,5 @@
1
- import { z } from 'zod';
2
1
  import { Hono } from 'hono';
2
+ import { z } from 'zod';
3
3
 
4
4
  export declare const BASE_URL = "https://raw.githubusercontent.com/lipu-linku/sona";
5
5
  export type ApiVersion = "v1";