@cichol/logger 5.3.0 → 5.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dists/index.js +4 -4
- package/package.json +6 -6
package/dists/index.js
CHANGED
|
@@ -418,7 +418,7 @@ function decorateStatusCode(statusCode) {
|
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
420
|
}
|
|
421
|
-
function formatForMorgan(tokens, request, response) {
|
|
421
|
+
function formatForMorgan$1(tokens, request, response) {
|
|
422
422
|
function _(token, ...subArgs) {
|
|
423
423
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
424
424
|
return tokens[token](request, response, ...subArgs);
|
|
@@ -443,7 +443,7 @@ function formatForMorgan(tokens, request, response) {
|
|
|
443
443
|
const metadata = `(${$contentLength}, ${$responseTime})`;
|
|
444
444
|
return [`→ ${$method} ${URL} ${$version}`, `← ${$version} ${$statusCode} ${metadata}`].join('\n');
|
|
445
445
|
}
|
|
446
|
-
var formatForMorgan
|
|
446
|
+
var formatForMorgan = executionMode === ExecutionMode.DevelopmentMode ? formatForMorgan$1 : morgan.combined;
|
|
447
447
|
|
|
448
448
|
var _context;
|
|
449
449
|
|
|
@@ -466,7 +466,7 @@ class Logger {
|
|
|
466
466
|
})],
|
|
467
467
|
exitOnError: false
|
|
468
468
|
});
|
|
469
|
-
#morgan = morgan(formatForMorgan
|
|
469
|
+
#morgan = morgan(formatForMorgan, {
|
|
470
470
|
stream: new PassThrough({
|
|
471
471
|
objectMode: true
|
|
472
472
|
}).on('data', data => {
|
|
@@ -535,4 +535,4 @@ class Logger {
|
|
|
535
535
|
var logger = _Reflect$construct(Logger, [], Logger);
|
|
536
536
|
|
|
537
537
|
export { logger as default };
|
|
538
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZXMvaGVscGVycy9sb2dnaW5nLWxldmVsLnRzIiwiLi4vc291cmNlcy9oZWxwZXJzL2NvbG9yLXNjaGVtZS50cyIsIi4uL3NvdXJjZXMvaGVscGVycy9sYWJlbC1kZWNvcmF0b3IudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL2Vycm9yLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9mYXRhbC50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvd2FybmluZy50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvbm90aWNlLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9pbmZvLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9odHRwLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9xdWVyeS50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvdmVyYm9zZS50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvZGVidWcudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL2luZGV4LnRzIiwiLi4vc291cmNlcy9mb3JtYXR0ZXJzL2NvbW1hbmQtbGluZS50cyIsIi4uL3NvdXJjZXMvaGVscGVycy9jb25zdGFudHMudHMiLCIuLi9zb3VyY2VzL2Zvcm1hdHRlcnMvbW9yZ2FuLnRzIiwiLi4vc291cmNlcy9jbGFzc2VzL2xvZ2dlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBMb2dnaW5nTGV2ZWwgPSB7XG5cdC8vIENyaXRpY2FsIGxldmVscy4gKEl0IHdpbGwgY3Jhc2ggdGhlIHByb2Nlc3MpXG5cdEZhdGFsOiAwLFxuXHRFcnJvcjogMSxcblxuXHQvLyBXYXJuaW5nIGxldmVscy4gKEl0IGp1c3QgcmVwb3J0IHdhcm5pbmcgaW5mb3JtYXRpb24sIG5vdCBjcmFzaCB0aGUgcHJvY2Vzcylcblx0V2FybmluZzogMixcblxuXHQvLyBSZWd1bGFyIGxldmVsIGFuZCBhbGlhc2VzLlxuXHROb3RpY2U6IDMsXG5cdEluZm86IDMsXG5cblx0Ly8gTWF5YmUgc2Vuc2l0aXZlIGxldmVscy4gKEluIGdlbmVyYWwsIGRvZXMgbm90IHVzZWZ1bClcblx0SHR0cDogNCxcblx0UXVlcnk6IDQsXG5cblx0Ly8gTG91ZCBsZXZlbHMuXG5cdFZlcmJvc2U6IDUsXG5cdERlYnVnOiA1LFxufSBhcyBjb25zdFxuXG50eXBlIExvZ2dpbmdMZXZlbCA9IHR5cGVvZiBMb2dnaW5nTGV2ZWxba2V5b2YgdHlwZW9mIExvZ2dpbmdMZXZlbF1cblxuZXhwb3J0IGRlZmF1bHQgTG9nZ2luZ0xldmVsXG4iLCIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNoYWxrLCB7IHR5cGUgQ2hhbGtJbnN0YW5jZSB9IGZyb20gJ2NoYWxrJ1xuXG4vLyBDb25zdGFudHMuXG5jb25zdCBjb2xvcml6ZXJNYXAgPSBuZXcgTWFwPG51bWJlciwgQ2hhbGtJbnN0YW5jZT4oKVxuXG4vLyBIZWxwZXJzLlxuZnVuY3Rpb24gY3JlYXRlU2NoZW1lKG9wdGlvbnM6IHsgYmFja2dyb3VuZDogQ29sb3JWYWx1ZSwgZm9yZWdyb3VuZDogQ29sb3JWYWx1ZSB9KTogbnVtYmVyIHtcblx0Y29uc3QgbmV4dEluZGV4ID0gY29sb3JpemVyTWFwLnNpemVcblx0Y29uc3QgY29sb3JpemVyID0gY2hhbGsuYmdIZXgob3B0aW9ucy5iYWNrZ3JvdW5kKS5oZXgob3B0aW9ucy5mb3JlZ3JvdW5kKVxuXG5cdGNvbG9yaXplck1hcC5zZXQobmV4dEluZGV4LCBjb2xvcml6ZXIpXG5cblx0cmV0dXJuIG5leHRJbmRleFxufVxuXG4vLyBDb2xvciBkZWZpbml0aW9ucy5cbmNvbnN0IENvbG9yVmFsdWUgPSB7XG5cdC8vIEJhc2ljIGNvbG9ycy5cblx0V2hpdGU6ICcjRkZGRkZGJyxcblx0R3JheTogJyM4MDgwODAnLFxuXHRCbGFjazogJyMwMDAwMDAnLFxuXG5cdC8vIFNwZWNpYWxpemVkIGNvbG9ycy5cblx0Q3JpdGljYWw6ICcjRDYzMDMxJyxcblx0V2FybmluZzogJyNGRENCNkUnLFxuXHRSZWd1bGFyOiAnIzA5ODRFMycsXG5cdEh0dHA6ICcjNkFCMDRDJyxcblx0UXVlcnk6ICcjMzk5QUYzJyxcbn0gYXMgY29uc3RcblxudHlwZSBDb2xvclZhbHVlID0gdHlwZW9mIENvbG9yVmFsdWVba2V5b2YgdHlwZW9mIENvbG9yVmFsdWVdXG5cbmNvbnN0IENvbG9yU2NoZW1lID0ge1xuXHRDcml0aWNhbDogY3JlYXRlU2NoZW1lKHtcblx0XHRiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLkNyaXRpY2FsLFxuXHRcdGZvcmVncm91bmQ6IENvbG9yVmFsdWUuQmxhY2ssXG5cdH0pLFxuXG5cdFdhcm5pbmc6IGNyZWF0ZVNjaGVtZSh7XG5cdFx0YmFja2dyb3VuZDogQ29sb3JWYWx1ZS5XYXJuaW5nLFxuXHRcdGZvcmVncm91bmQ6IENvbG9yVmFsdWUuQmxhY2ssXG5cdH0pLFxuXG5cdFJlZ3VsYXI6IGNyZWF0ZVNjaGVtZSh7XG5cdFx0YmFja2dyb3VuZDogQ29sb3JWYWx1ZS5SZWd1bGFyLFxuXHRcdGZvcmVncm91bmQ6IENvbG9yVmFsdWUuV2hpdGUsXG5cdH0pLFxuXG5cdEh0dHA6IGNyZWF0ZVNjaGVtZSh7XG5cdFx0YmFja2dyb3VuZDogQ29sb3JWYWx1ZS5IdHRwLFxuXHRcdGZvcmVncm91bmQ6IENvbG9yVmFsdWUuQmxhY2ssXG5cdH0pLFxuXG5cdFF1ZXJ5OiBjcmVhdGVTY2hlbWUoe1xuXHRcdGJhY2tncm91bmQ6IENvbG9yVmFsdWUuUXVlcnksXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5CbGFjayxcblx0fSksXG5cblx0TG91ZDogY3JlYXRlU2NoZW1lKHtcblx0XHRiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLkJsYWNrLFxuXHRcdGZvcmVncm91bmQ6IENvbG9yVmFsdWUuR3JheSxcblx0fSksXG59IGFzIGNvbnN0XG5cbnR5cGUgQ29sb3JTY2hlbWUgPSB0eXBlb2YgQ29sb3JTY2hlbWVba2V5b2YgdHlwZW9mIENvbG9yU2NoZW1lXVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbGtPZihjb2xvclNldDogQ29sb3JTY2hlbWUpOiBDaGFsa0luc3RhbmNlIHtcblx0cmV0dXJuIGNvbG9yaXplck1hcC5nZXQoY29sb3JTZXQpID8/IGNoYWxrXG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbG9yU2NoZW1lXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdwcm9jZXNzJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IENvbG9yU2NoZW1lLCB7IGdldENoYWxrT2YgfSBmcm9tICcuL2NvbG9yLXNjaGVtZSdcblxuLy8gQ29uc3RhbnRzLlxuY29uc3QgeyBpc1RUWSB9ID0gcHJvY2Vzcy5zdGRvdXRcbmNvbnN0IGlzTm90T25DTEkgPSAhaXNUVFlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVjb3JhdGVMYWJlbDxUIGV4dGVuZHMgc3RyaW5nPihsYWJlbDogVCwgc2NoZW1lOiBDb2xvclNjaGVtZSk6IFQge1xuXHRpZiAoaXNOb3RPbkNMSSkgcmV0dXJuIGxhYmVsXG5cblx0Y29uc3QgY2hhbGsgPSBnZXRDaGFsa09mKHNjaGVtZSlcblx0Y29uc3QgZGVjb3JhdGVkTGFiZWwgPSBjaGFsay5ib2xkKGAgJHtsYWJlbH0gYClcblxuXHRyZXR1cm4gZGVjb3JhdGVkTGFiZWwgYXMgVFxufVxuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBwcm9jZXNzLCB7IHZlcnNpb24gfSBmcm9tICdwcm9jZXNzJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcuLi9oZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbnR5cGUgTG9nZ2luZ0RhdGEgPSB7IGxldmVsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyB9ICYgUmVjb3JkPFByb3BlcnR5S2V5LCBhbnk+XG50eXBlIEhhbmRsZWREYXRhID0geyBsYWJlbDogc3RyaW5nLCBwYXlsb2FkOiBzdHJpbmcgfVxuXG4vLyBDb25zdGFudHMuXG5jb25zdCByb290UGF0aCA9IHByb2Nlc3MuY3dkKClcbmNvbnN0IGNvbmp1bmN0aW9uID0gYCAke2NoYWxrLmJsdWUoJ+KUgOKUgCcpfSBgXG5jb25zdCBzcGxhdDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbC5mb3IoJ3NwbGF0JylcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2Vycm9yJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkVycm9yXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdFUlJPUicsIENvbG9yU2NoZW1lLkNyaXRpY2FsKVxuXG5mdW5jdGlvbiBzaW1wbGlmeURhdGFVUkkoZGF0YVVSSTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgWyAsIGFjdHVhbENvbnRlbnQgXSA9IGRhdGFVUkkuc3BsaXQoJzonKVxuXHRjb25zdCBwaXZvdCA9IGFjdHVhbENvbnRlbnQuaW5kZXhPZignLCcpICsgMVxuXHRjb25zdCBtaW1lSW5kaWNhdG9yID0gYWN0dWFsQ29udGVudC5zbGljZSgwLCBwaXZvdClcblx0Y29uc3QgY29udGVudFByZWZpeCA9IGFjdHVhbENvbnRlbnQuc2xpY2UocGl2b3QsIHBpdm90ICsgNClcblx0Y29uc3QgY29udGVudFN1ZmZpeCA9IGFjdHVhbENvbnRlbnQuc2xpY2UoLTQpXG5cblx0cmV0dXJuIGBkYXRhOiR7bWltZUluZGljYXRvciArIGNvbnRlbnRQcmVmaXh9Li4uJHtjb250ZW50U3VmZml4fWBcbn1cblxuZnVuY3Rpb24gaXNEYXRhVVJJKGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIGZpbGVuYW1lLnN0YXJ0c1dpdGgoJ2RhdGE6Jylcbn1cblxuZnVuY3Rpb24gaXNBYnNvbHV0ZU9yRGF0YVVSSShmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdHJldHVybiBwYXRoLmlzQWJzb2x1dGUoZmlsZW5hbWUpIHx8IGlzRGF0YVVSSShmaWxlbmFtZSlcbn1cblxuZnVuY3Rpb24gbWFwTG9jYXRpb25PZkVycm9yVGhyb3duKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRsZXQgdGFyZ2V0ID0gcGF0aC5yZWxhdGl2ZShyb290UGF0aCwgZmlsZW5hbWUpXG5cblx0aWYgKGlzRGF0YVVSSShmaWxlbmFtZSkpIHtcblx0XHR0YXJnZXQgPSBjaGFsay5ncmF5KHNpbXBsaWZ5RGF0YVVSSShmaWxlbmFtZSkpXG5cdH0gZWxzZSBpZiAodGFyZ2V0LmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkge1xuXHRcdHRhcmdldCA9IGNoYWxrLmdyYXkoXG5cdFx0XHR0YXJnZXQuc2xpY2UodGFyZ2V0Lmxhc3RJbmRleE9mKCdub2RlX21vZHVsZXMnKSksXG5cdFx0KS5yZXBsYWNlKFxuXHRcdFx0L25vZGVfbW9kdWxlc1tcXFxcL10oKD86QFteXFxcXC9dK1tcXFxcL10pP1teXFxcXC9dKykoLiopLyxcblx0XHRcdChfLCBtb2R1bGVOYW1lOiBzdHJpbmcsIHRyYWlsaW5nOiBzdHJpbmcpID0+IChcblx0XHRcdFx0YG5vZGVfbW9kdWxlcyR7cGF0aC5zZXB9JHtjaGFsay5ib2xkLnVuZGVybGluZShtb2R1bGVOYW1lKX0ke2NoYWxrLmdyYXkodHJhaWxpbmcpfWBcblx0XHRcdCksXG5cdFx0KVxuXHR9IGVsc2Uge1xuXHRcdHRhcmdldCA9IGAke2NoYWxrLmdyYXkocGF0aC5kaXJuYW1lKHRhcmdldCkgKyBwYXRoLnNlcCl9JHtjaGFsay5ib2xkLnVuZGVybGluZShwYXRoLmJhc2VuYW1lKHRhcmdldCkpfWBcblx0fVxuXG5cdHJldHVybiB0YXJnZXRcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaGFuZGxlKGRhdGE6IExvZ2dpbmdEYXRhKTogSGFuZGxlZERhdGEgfCB1bmRlZmluZWQge1xuXHRjb25zdCB7IFtzcGxhdF06IFsgZXJyb3IgXSA9IFtdIH0gPSBkYXRhIGFzIGFueVxuXG5cdGlmICghKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZFxuXHR9XG5cblx0Y29uc3QgeyBuYW1lOiBlcnJvck5hbWUsIG1lc3NhZ2UsIHN0YWNrOiByYXdTdGFjayA9ICcnIH0gPSBlcnJvclxuXG5cdGNvbnN0IHN0YWNrID0gcmF3U3RhY2tcblx0XHQuc2xpY2UoZXJyb3JOYW1lLmxlbmd0aCArIG1lc3NhZ2UubGVuZ3RoICsgMylcblx0XHQuc3BsaXQoJ1xcbicpXG5cdFx0Lm1hcChsaW5lID0+IGxpbmUucmVwbGFjZSgvXlxccythdCAvZywgJycpKVxuXHRcdC5tYXAobGluZSA9PiAoaXNBYnNvbHV0ZU9yRGF0YVVSSShsaW5lKSA/IGA8YW5vbnltb3VzPiR7Y29uanVuY3Rpb259JHttYXBMb2NhdGlvbk9mRXJyb3JUaHJvd24obGluZSl9YCA6IGxpbmUpKVxuXHRcdC5tYXAobGluZSA9PiBsaW5lLnJlcGxhY2UoL14oLispIFxcKCguKylcXCkkLywgKF8sIGNvbnRleHROYW1lOiBzdHJpbmcsIHJhd0xvY2F0aW9uOiBzdHJpbmcpID0+IHtcblx0XHRcdGxldCBsb2NhdGlvbiA9ICcnXG5cblx0XHRcdHN3aXRjaCAodHJ1ZSkge1xuXHRcdFx0Y2FzZSAocmF3TG9jYXRpb24gPT09ICc8YW5vbnltb3VzPicpOiB7XG5cdFx0XHRcdGxvY2F0aW9uID0gY2hhbGsuZ3JheShyYXdMb2NhdGlvbilcblxuXHRcdFx0XHRicmVha1xuXHRcdFx0fVxuXG5cdFx0XHRjYXNlIChpc0RhdGFVUkkocmF3TG9jYXRpb24pKToge1xuXHRcdFx0XHRsb2NhdGlvbiA9IGNoYWxrLmdyYXkoc2ltcGxpZnlEYXRhVVJJKHJhd0xvY2F0aW9uKSlcblxuXHRcdFx0XHRicmVha1xuXHRcdFx0fVxuXG5cdFx0XHRjYXNlIChyYXdMb2NhdGlvbi5zdGFydHNXaXRoKCdub2RlOicpKToge1xuXHRcdFx0XHRjb25zdCBbIGZpbGVuYW1lLCBvY2N1cnJlZExpbmUgXSA9IHJhd0xvY2F0aW9uLnNsaWNlKDUpLnNwbGl0KCc6JylcblxuXHRcdFx0XHRsb2NhdGlvbiA9IGNoYWxrLmdyYXkoYGh0dHBzOi8vZ2l0aHViLmNvbS8ke2NoYWxrLmJvbGQudW5kZXJsaW5lKCdub2RlanMnKX0vbm9kZS9ibG9iLyR7dmVyc2lvbn0vbGliLyR7ZmlsZW5hbWV9LmpzI0wke29jY3VycmVkTGluZX1gKVxuXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHR9XG5cblx0XHRcdGRlZmF1bHQ6IHtcblx0XHRcdFx0Y29uc3QgWyBmaWxlbmFtZSwgb2NjdXJyZWRMaW5lLCBvY2N1cnJlZENvbHVtbiBdID0gcmF3TG9jYXRpb24uc3BsaXQoJzonKVxuXG5cdFx0XHRcdGlmICghcGF0aC5pc0Fic29sdXRlKGZpbGVuYW1lKSkgYnJlYWtcblxuXHRcdFx0XHRjb25zdCB0YXJnZXQgPSBtYXBMb2NhdGlvbk9mRXJyb3JUaHJvd24ocGF0aC5yZWxhdGl2ZShyb290UGF0aCwgZmlsZW5hbWUpKVxuXHRcdFx0XHRjb25zdCB0cmFpbGluZyA9IGNoYWxrLmdyYXkoYDoke29jY3VycmVkTGluZX06JHtvY2N1cnJlZENvbHVtbn1gKVxuXG5cdFx0XHRcdGxvY2F0aW9uID0gdGFyZ2V0ICsgdHJhaWxpbmdcblx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGAke2NvbnRleHROYW1lfSR7Y29uanVuY3Rpb259JHtsb2NhdGlvbn1gXG5cdFx0fSkpXG5cdFx0LmpvaW4oJ1xcbicpXG5cblx0Y29uc3QgZGVjb3JhdGVkTGFiZWwgPSBkZWNvcmF0ZUxhYmVsKGVycm9yTmFtZSwgQ29sb3JTY2hlbWUuQ3JpdGljYWwpXG5cdGNvbnN0IHBheWxvYWQgPSBgJHttZXNzYWdlfVxcblxcbiR7c3RhY2t9XFxuYFxuXG5cdHJldHVybiB7IGxhYmVsOiBkZWNvcmF0ZWRMYWJlbCwgcGF5bG9hZCB9XG59XG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcuLi9oZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2ZhdGFsJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkZhdGFsXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdGQVRBTCcsIENvbG9yU2NoZW1lLkNyaXRpY2FsKVxuXG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi9lcnJvcicgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1yZXN0cmljdGVkLWV4cG9ydHNcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJy4uL2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnd2FybmluZydcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5XYXJuaW5nXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdXQVJOSU5HJywgQ29sb3JTY2hlbWUuV2FybmluZylcblxuZXhwb3J0IGRlZmF1bHQgbnVsbFxuIiwiLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnLi4vaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuaW1wb3J0IENvbG9yU2NoZW1lIGZyb20gJy4uL2hlbHBlcnMvY29sb3Itc2NoZW1lJ1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InXG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdub3RpY2UnXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuTm90aWNlXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdOT1RJQ0UnLCBDb2xvclNjaGVtZS5SZWd1bGFyKVxuXG5leHBvcnQgZGVmYXVsdCBudWxsXG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcuLi9oZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2luZm8nXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuSW5mb1xuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnSU5GTycsIENvbG9yU2NoZW1lLlJlZ3VsYXIpXG5cbmV4cG9ydCBkZWZhdWx0IG51bGxcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJy4uL2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnaHR0cCdcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5IdHRwXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdIVFRQJywgQ29sb3JTY2hlbWUuSHR0cClcblxuZXhwb3J0IGRlZmF1bHQgbnVsbFxuIiwiLy8gSGlnaGxpZ2h0LmpzXG5pbXBvcnQgaGlnaGxpZ2h0IGZyb20gJ2NsaS1oaWdobGlnaHQnXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJy4uL2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBUeXBlIGRlZmluaXRpb25zLlxudHlwZSBMb2dnaW5nRGF0YSA9IHsgbGV2ZWw6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH0gJiBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT5cbnR5cGUgSGFuZGxlZERhdGEgPSB7IGxhYmVsOiBzdHJpbmcsIHBheWxvYWQ6IHN0cmluZyB9XG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdxdWVyeSdcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5RdWVyeVxuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnUVVFUlknLCBDb2xvclNjaGVtZS5RdWVyeSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaGFuZGxlKGRhdGE6IExvZ2dpbmdEYXRhKTogSGFuZGxlZERhdGEgfCB1bmRlZmluZWQge1xuXHRjb25zdCBwYXlsb2FkID0gaGlnaGxpZ2h0KGRhdGEubWVzc2FnZSwgeyBsYW5ndWFnZTogJ3NxbCcgfSlcblxuXHRyZXR1cm4geyBsYWJlbCwgcGF5bG9hZCB9XG59XG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcuLi9oZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ3ZlcmJvc2UnXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuVmVyYm9zZVxuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnVkVSQk9TRScsIENvbG9yU2NoZW1lLkxvdWQpXG5cbmV4cG9ydCBkZWZhdWx0IG51bGxcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJy4uL2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnZGVidWcnXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuRGVidWdcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ0RFQlVHJywgQ29sb3JTY2hlbWUuTG91ZClcblxuZXhwb3J0IGRlZmF1bHQgbnVsbFxuIiwiLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgKiBhcyBGYXRhbEhhbmRsZXIgZnJvbSAnLi9mYXRhbCdcbmltcG9ydCAqIGFzIEVycm9ySGFuZGxlciBmcm9tICcuL2Vycm9yJ1xuaW1wb3J0ICogYXMgV2FybmluZ0hhbmRsZXIgZnJvbSAnLi93YXJuaW5nJ1xuaW1wb3J0ICogYXMgTm90aWNlSGFuZGxlciBmcm9tICcuL25vdGljZSdcbmltcG9ydCAqIGFzIEluZm9IYW5kbGVyIGZyb20gJy4vaW5mbydcbmltcG9ydCAqIGFzIEh0dHBIYW5kbGVyIGZyb20gJy4vaHR0cCdcbmltcG9ydCAqIGFzIFF1ZXJ5SGFuZGxlciBmcm9tICcuL3F1ZXJ5J1xuaW1wb3J0ICogYXMgVmVyYm9zZUhhbmRsZXIgZnJvbSAnLi92ZXJib3NlJ1xuaW1wb3J0ICogYXMgRGVidWdIYW5kbGVyIGZyb20gJy4vZGVidWcnXG5cbmNvbnN0IGhhbmRsZXJzID0gW1xuXHRGYXRhbEhhbmRsZXIsXG5cdEVycm9ySGFuZGxlcixcblx0V2FybmluZ0hhbmRsZXIsXG5cdE5vdGljZUhhbmRsZXIsXG5cdEluZm9IYW5kbGVyLFxuXHRIdHRwSGFuZGxlcixcblx0UXVlcnlIYW5kbGVyLFxuXHRWZXJib3NlSGFuZGxlcixcblx0RGVidWdIYW5kbGVyLFxuXVxuXG5leHBvcnQgdHlwZSBMb2dnaW5nTGV2ZWxOYW1lID0gKHR5cGVvZiBoYW5kbGVycyBleHRlbmRzIChpbmZlciBUKVtdID8gVCA6IG5ldmVyKVsnbmFtZSddXG5leHBvcnQgZGVmYXVsdCBoYW5kbGVyc1xuIiwiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBjaGFsayBmcm9tICdjaGFsaydcbmltcG9ydCByVHJhY2VyIGZyb20gJ2Nscy1ydHJhY2VyJ1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbidcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ3dpbnN0b24nXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcblxuLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgaGFuZGxlcnMgZnJvbSAnLi4vaGFuZGxlcnMnXG5cbmV4cG9ydCBkZWZhdWx0IGZvcm1hdC5wcmludGYoZGF0YSA9PiB7XG5cdGNvbnN0IHRpbWVzdGFtcCA9IGNoYWxrLmdyYXkoRGF0ZVRpbWUubm93KCkudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiB0cnVlIH0pKVxuXHRjb25zdCBoYW5kbGVyID0gaGFuZGxlcnMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IGRhdGEubGV2ZWwpXG5cdGNvbnN0IGZhbGxiYWNrID0geyBsYWJlbDogaGFuZGxlcj8ubGFiZWwsIHBheWxvYWQ6IGRhdGEubWVzc2FnZSB9XG5cdGNvbnN0IHBlcmZvcm1IYW5kbGUgPSBoYW5kbGVyPy5kZWZhdWx0ID8/ICgoKTogdHlwZW9mIGZhbGxiYWNrID0+IGZhbGxiYWNrKVxuXG5cdC8vIEV4ZWN1dGUgaGFuZGxlciBhbmQgdGhlbiwgZ2V0IGRlY29yYXRlZCBwYXlsb2FkLlxuXHRjb25zdCB7IGxhYmVsLCBwYXlsb2FkIH0gPSBSZWZsZWN0LmFwcGx5KHBlcmZvcm1IYW5kbGUsIHVuZGVmaW5lZCwgWyBkYXRhIF0pID8/IGZhbGxiYWNrXG5cblx0bGV0IGV4dHJhRmluZ2VycHJpbnQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG5cdGlmIChoYW5kbGVyPy5sZXZlbCA9PT0gTG9nZ2luZ0xldmVsLkh0dHApIHtcblx0XHRleHRyYUZpbmdlcnByaW50ID0gZGF0YS50cmFuc2FjdGlvbklkXG5cdFx0XHQ/IGAoVHJhbnNhY3Rpb24tSUQgPSAke2RhdGEudHJhbnNhY3Rpb25JZCBhcyBzdHJpbmd9KWBcblx0XHRcdDogYChSZXF1ZXN0LUlEID0gJHtyVHJhY2VyLmlkKCkgYXMgc3RyaW5nfSlgXG5cdH1cblxuXHRyZXR1cm4gYCR7bGFiZWwgYXMgc3RyaW5nfSAke3RpbWVzdGFtcH0ke2V4dHJhRmluZ2VycHJpbnQgPyBgICR7ZXh0cmFGaW5nZXJwcmludH1gIDogJyd9XFxuJHtwYXlsb2FkIGFzIHN0cmluZ31gXG59KVxuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IGNsdXN0ZXIgZnJvbSAnY2x1c3RlcidcbmltcG9ydCB7IGVudiBhcyBlbnZpcm9ubWVudHMgfSBmcm9tICdwcm9jZXNzJ1xuaW1wb3J0IHsgaXNNYWluVGhyZWFkIH0gZnJvbSAnd29ya2VyX3RocmVhZHMnXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgY29uc3QgRXhlY3V0aW9uTW9kZSA9IHtcblx0RGV2ZWxvcG1lbnRNb2RlOiAnZGV2ZWxvcG1lbnQnLFxuXHRQcm9kdWN0aW9uTW9kZTogJ3Byb2R1Y3Rpb24nLFxufSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgQ2x1c3RlcmluZ01vZGUgPSB7XG5cdE1hc3RlclByb2Nlc3M6IDAsXG5cdFdvcmtlclByb2Nlc3M6IDEsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBUaHJlYWRpbmdNb2RlID0ge1xuXHRNYWluVGhyZWFkOiAwLFxuXHRXb3JrZXJUaHJlYWQ6IDEsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGlvbk1vZGUgPSB0eXBlb2YgRXhlY3V0aW9uTW9kZVtrZXlvZiB0eXBlb2YgRXhlY3V0aW9uTW9kZV1cbmV4cG9ydCB0eXBlIENsdXN0ZXJpbmdNb2RlID0gdHlwZW9mIENsdXN0ZXJpbmdNb2RlW2tleW9mIHR5cGVvZiBDbHVzdGVyaW5nTW9kZV1cbmV4cG9ydCB0eXBlIFRocmVhZGluZ01vZGUgPSB0eXBlb2YgVGhyZWFkaW5nTW9kZVtrZXlvZiB0eXBlb2YgVGhyZWFkaW5nTW9kZV1cblxuLy8gRXhwb3J0aW5ncy5cbmV4cG9ydCBjb25zdCBleGVjdXRpb25Nb2RlID0gZW52aXJvbm1lbnRzLk5PREVfRU5WIGFzIEV4ZWN1dGlvbk1vZGUgPz8gRXhlY3V0aW9uTW9kZS5EZXZlbG9wbWVudE1vZGVcblxuZXhwb3J0IGNvbnN0IGNsdXN0ZXJpbmdNb2RlOiBDbHVzdGVyaW5nTW9kZSA9IGNsdXN0ZXIuaXNQcmltYXJ5ID8/IGNsdXN0ZXIuaXNNYXN0ZXJcblx0PyBDbHVzdGVyaW5nTW9kZS5NYXN0ZXJQcm9jZXNzXG5cdDogQ2x1c3RlcmluZ01vZGUuV29ya2VyUHJvY2Vzc1xuXG5leHBvcnQgY29uc3QgdGhyZWFkaW5nTW9kZTogVGhyZWFkaW5nTW9kZSA9IGlzTWFpblRocmVhZFxuXHQ/IFRocmVhZGluZ01vZGUuTWFpblRocmVhZFxuXHQ6IFRocmVhZGluZ01vZGUuV29ya2VyVGhyZWFkXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQge1xuXHRTVEFUVVNfQ09ERVMsXG5cdEluY29taW5nTWVzc2FnZSBhcyBIdHRwUmVxdWVzdCxcblx0U2VydmVyUmVzcG9uc2UgYXMgSHR0cFJlc3BvbnNlLFxufSBmcm9tICdodHRwJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJ1xuaW1wb3J0IG1vcmdhbiBmcm9tICdtb3JnYW4nXG5pbXBvcnQgcHJldHR5Qnl0ZXMgZnJvbSAncHJldHR5LWJ5dGVzJ1xuaW1wb3J0IHByZXR0eU1zIGZyb20gJ3ByZXR0eS1tcydcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB7IEV4ZWN1dGlvbk1vZGUsIGV4ZWN1dGlvbk1vZGUgfSBmcm9tICcuLi9oZWxwZXJzL2NvbnN0YW50cydcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmRlY2xhcmUgbW9kdWxlICdtb3JnYW4nIHtcblx0Y29uc3QgY29tYmluZWQ6IG1vcmdhbi5Gb3JtYXRGblxufVxuXG5pbnRlcmZhY2UgVG9rZW5JbmRleGVyIHtcblx0W3Rva2VuTmFtZTogc3RyaW5nXTogKFxuXHRcdHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LFxuXHRcdHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UsXG5cdFx0Li4uYXJnczogYW55W11cblx0KSA9PiBzdHJpbmcgfCB1bmRlZmluZWRcbn1cblxuLy8gSGVscGVycy5cbmZ1bmN0aW9uIGRlY29yYXRlU3RhdHVzQ29kZShzdGF0dXNDb2RlOiBrZXlvZiB0eXBlb2YgU1RBVFVTX0NPREVTKTogc3RyaW5nIHtcblx0Y29uc3QgZ3JvdXBPZkNvZGUgPSBNYXRoLmZsb29yKE51bWJlcihzdGF0dXNDb2RlKSAvIDEwMCkgKiAxMDBcblx0Y29uc3QgYmFzZU1lc3NhZ2UgPSBgJHtzdGF0dXNDb2RlfSAke1NUQVRVU19DT0RFU1tzdGF0dXNDb2RlXSBhcyBzdHJpbmd9YFxuXG5cdHN3aXRjaCAoZ3JvdXBPZkNvZGUpIHtcblx0Y2FzZSAyMDA6IHtcblx0XHRyZXR1cm4gY2hhbGsuZ3JlZW4oYmFzZU1lc3NhZ2UpXG5cdH1cblxuXHRjYXNlIDMwMDoge1xuXHRcdHJldHVybiBjaGFsay5tYWdlbnRhKGJhc2VNZXNzYWdlKVxuXHR9XG5cdGNhc2UgNDAwOlxuXHRjYXNlIDUwMDoge1xuXHRcdHJldHVybiBjaGFsay5yZWQoYmFzZU1lc3NhZ2UpXG5cdH1cblxuXHRkZWZhdWx0OiB7XG5cdFx0cmV0dXJuIGNoYWxrLmdyYXkoYmFzZU1lc3NhZ2UpXG5cdH1cblx0fVxufVxuXG5mdW5jdGlvbiBmb3JtYXRGb3JNb3JnYW4odG9rZW5zOiBhbnksIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCByZXNwb25zZTogSHR0cFJlc3BvbnNlKTogc3RyaW5nIHtcblx0ZnVuY3Rpb24gXyh0b2tlbjogc3RyaW5nLCAuLi5zdWJBcmdzOiBhbnlbXSk6IHN0cmluZyB8IHZvaWQge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG5cdFx0cmV0dXJuICh0b2tlbnMgYXMgVG9rZW5JbmRleGVyKVt0b2tlbl0ocmVxdWVzdCwgcmVzcG9uc2UsIC4uLnN1YkFyZ3MpXG5cdH1cblxuXHQvLyBSYXcgdmFsdWVzLlxuXHRjb25zdCBtZXRob2QgPSBfKCdtZXRob2QnKVxuXHRjb25zdCBVUkwgPSBfKCd1cmwnKVxuXHRjb25zdCBodHRwVmVyc2lvbiA9IGBIVFRQLyR7XygnaHR0cC12ZXJzaW9uJykgYXMgc3RyaW5nfWBcblx0Y29uc3Qgc3RhdHVzQ29kZSA9IE51bWJlcihfKCdzdGF0dXMnKSlcblx0Y29uc3QgY29udGVudExlbmd0aCA9IE51bWJlcihfKCdyZXMnLCAnY29udGVudC1sZW5ndGgnKSA/PyAtMSlcblx0Y29uc3QgcmVzcG9uc2VUaW1lID0gTnVtYmVyKF8oJ3Jlc3BvbnNlLXRpbWUnKSA/PyAtMSlcblxuXHQvLyBEZWNvcmF0ZWQgdmFsdWVzLlxuXHRjb25zdCAkbWV0aG9kID0gY2hhbGsuYm9sZChtZXRob2QpXG5cdGNvbnN0ICR2ZXJzaW9uID0gY2hhbGsucmdiKDk4LCAxNzcsIDI1NSkoaHR0cFZlcnNpb24pXG5cdGNvbnN0ICRzdGF0dXNDb2RlID0gZGVjb3JhdGVTdGF0dXNDb2RlKHN0YXR1c0NvZGUpXG5cdGNvbnN0ICRjb250ZW50TGVuZ3RoID0gY29udGVudExlbmd0aCA+PSAwID8gcHJldHR5Qnl0ZXMoY29udGVudExlbmd0aCkgOiAnPyBCJ1xuXHRjb25zdCAkcmVzcG9uc2VUaW1lID0gcmVzcG9uc2VUaW1lID49IDAgPyBwcmV0dHlNcyhyZXNwb25zZVRpbWUpIDogJydcblxuXHQvLyBBZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuXHRjb25zdCBtZXRhZGF0YSA9IGAoJHskY29udGVudExlbmd0aH0sICR7JHJlc3BvbnNlVGltZX0pYFxuXG5cdHJldHVybiBbXG5cdFx0YOKGkiAkeyRtZXRob2R9ICR7VVJMIGFzIHN0cmluZ30gJHskdmVyc2lvbn1gLFxuXHRcdGDihpAgJHskdmVyc2lvbn0gJHskc3RhdHVzQ29kZX0gJHttZXRhZGF0YX1gLFxuXHRdLmpvaW4oJ1xcbicpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGV4ZWN1dGlvbk1vZGUgPT09IEV4ZWN1dGlvbk1vZGUuRGV2ZWxvcG1lbnRNb2RlID8gZm9ybWF0Rm9yTW9yZ2FuIDogbW9yZ2FuLmNvbWJpbmVkXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UgYXMgSHR0cFJlcXVlc3QsIFNlcnZlclJlc3BvbnNlIGFzIEh0dHBSZXNwb25zZSB9IGZyb20gJ2h0dHAnXG5pbXBvcnQgeyBQYXNzVGhyb3VnaCB9IGZyb20gJ3N0cmVhbSdcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnXG5cbi8vIFRoaXJkLXBhcnR5IG1vZHVsZXMuXG5pbXBvcnQgbW9yZ2FuIGZyb20gJ21vcmdhbidcbmltcG9ydCAqIGFzIHdpbnN0b24gZnJvbSAnd2luc3RvbidcbmltcG9ydCB0eXBlIHsgbGV2ZWwgYXMgTG9nZ2luZ0xldmVsLCBMb2dnZXIgYXMgQmFzZUxvZ2dlciB9IGZyb20gJ3dpbnN0b24nXG5cbi8vIEZvcm1hdHRlcnMuXG5pbXBvcnQgZm9ybWF0Rm9yQ0xJIGZyb20gJy4uL2Zvcm1hdHRlcnMvY29tbWFuZC1saW5lJ1xuaW1wb3J0IGZvcm1hdEZvck1vcmdhbiBmcm9tICcuLi9mb3JtYXR0ZXJzL21vcmdhbidcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB7IEV4ZWN1dGlvbk1vZGUsIGV4ZWN1dGlvbk1vZGUgfSBmcm9tICcuLi9oZWxwZXJzL2NvbnN0YW50cydcblxuLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgdHlwZSB7IExvZ2dpbmdMZXZlbE5hbWUgfSBmcm9tICcuLi9oYW5kbGVycydcbmltcG9ydCBoYW5kbGVycyBmcm9tICcuLi9oYW5kbGVycydcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbnR5cGUgTW9yZ2FuID0gKHJlcTogSHR0cFJlcXVlc3QsIHJlczogSHR0cFJlc3BvbnNlLCBuZXh0OiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZCkgPT4gdm9pZFxuXG4vLyBUcmFuc3BvcnRzLlxuY29uc3QgeyBDb25zb2xlOiBDb25zb2xlVHJhbnNwb3J0IH0gPSB3aW5zdG9uLnRyYW5zcG9ydHNcblxuY2xhc3MgTG9nZ2VyIHtcblx0c3RhdGljICNpbnN0YW5jZT86IExvZ2dlclxuXG5cdCNsb2dnZXI6IEJhc2VMb2dnZXIgPSB3aW5zdG9uLmNyZWF0ZUxvZ2dlcih7XG5cdFx0bGV2ZWxzOiBPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRoYW5kbGVyc1xuXHRcdFx0XHQubWFwKCh7IG5hbWUsIGxldmVsIH0pID0+IFsgbmFtZSwgbGV2ZWwgXSBhcyBjb25zdClcblx0XHRcdFx0LmZpbHRlcigoWyAsIGxldmVsIF0pID0+IHR5cGVvZiBsZXZlbCA9PT0gJ251bWJlcicpLFxuXHRcdCksXG5cblx0XHRsZXZlbDogKGV4ZWN1dGlvbk1vZGUgPT09IEV4ZWN1dGlvbk1vZGUuUHJvZHVjdGlvbk1vZGUgPyAnaHR0cCcgOiAndmVyYm9zZScpIGFzIHR5cGVvZiBMb2dnaW5nTGV2ZWwsXG5cblx0XHR0cmFuc3BvcnRzOiBbXG5cdFx0XHRuZXcgQ29uc29sZVRyYW5zcG9ydCh7IGZvcm1hdDogZm9ybWF0Rm9yQ0xJIH0pLFxuXHRcdF0sXG5cblx0XHRleGl0T25FcnJvcjogZmFsc2UsXG5cdH0pXG5cblx0I21vcmdhbjogTW9yZ2FuID0gbW9yZ2FuKGZvcm1hdEZvck1vcmdhbiwge1xuXHRcdHN0cmVhbTogbmV3IFBhc3NUaHJvdWdoKHsgb2JqZWN0TW9kZTogdHJ1ZSB9KS5vbignZGF0YScsIChkYXRhOiBzdHJpbmcpID0+IHtcblx0XHRcdHRoaXMubG9nKCdodHRwJywgZGF0YS50cmltKCkpXG5cdFx0fSksXG5cdH0pIGFzIE1vcmdhblxuXG5cdHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG5cdFx0aWYgKG5ldy50YXJnZXQgIT09IExvZ2dlcikge1xuXHRcdFx0dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCdMb2dnZXIgY2xhc3MgaXMgbm90IGluaGVyaXRhYmxlJylcblx0XHR9XG5cblx0XHRpZiAoTG9nZ2VyLiNpbnN0YW5jZSkge1xuXHRcdFx0dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCdMb2dnZXIgY2xhc3MgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGluIGRpcmVjdGx5Jylcblx0XHR9XG5cblx0XHRMb2dnZXIuI2luc3RhbmNlID0gdGhpc1xuXHR9XG5cblx0LyoqXG5cdCAqIExvZ2dpbmcgbWVzc2FnZSB3aXRoIHNwZWNpZmljIGxldmVsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbGV2ZWxcblx0ICogQHBhcmFtIG1lc3NhZ2Vcblx0ICogQHBhcmFtIGFyZ3MgQWRkaXRpb25hbCBtZXRhZGF0YS5cblx0ICovXG5cdHB1YmxpYyBsb2cobGV2ZWw6IExvZ2dpbmdMZXZlbE5hbWUsIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkXG5cblx0LyoqXG5cdCAqIExvZ2dpbmcgSFRUUCBJL08uXG5cdCAqXG5cdCAqIEBwYXJhbSByZXF1ZXN0IE5vZGUuanMgYnVpbHQtaW4gYEluY29taW5nTWVzc2FnZWAgaW5zdGFuY2UgZnJvbSBgaHR0cGAgbW9kdWxlLlxuXHQgKiBAcGFyYW0gcmVzcG9uc2UgTm9kZS5qcyBidWlsdC1pbiBgU2VydmVyUmVzcG9uc2VgIGluc3RhbmNlIGZyb20gYGh0dHBgIG1vZHVsZS5cblx0ICovXG5cdHB1YmxpYyBsb2cocmVxdWVzdDogSHR0cFJlcXVlc3QsIHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+XG5cblx0LyoqXG5cdCAqIExvZ2dpbmcgZXJyb3JzIGluIGRldGFpbC5cblx0ICpcblx0ICogQHBhcmFtIGVycm9yXG5cdCAqL1xuXHRwdWJsaWMgbG9nKGVycm9yOiBFcnJvcik6IHZvaWRcblxuXHRwdWJsaWMgbG9nKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGxvZ2dlciA9IHRoaXMuI2xvZ2dlclxuXHRcdGNvbnN0IGZvcm1hdCA9IHRoaXMuI21vcmdhblxuXG5cdFx0c3dpdGNoICh0cnVlKSB7XG5cdFx0Y2FzZSAoYXJncy5sZW5ndGggPj0gMiAmJiBhcmdzWzBdIGluc3RhbmNlb2YgSHR0cFJlcXVlc3QgJiYgYXJnc1sxXSBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSk6IHtcblx0XHRcdGNvbnN0IFsgcmVxdWVzdCwgcmVzcG9uc2UgXSA9IGFyZ3MgYXMgWyBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIF1cblxuXHRcdFx0cmV0dXJuIHByb21pc2lmeShmb3JtYXQpKHJlcXVlc3QsIHJlc3BvbnNlKVxuXHRcdH1cblxuXHRcdGNhc2UgKGFyZ3MubGVuZ3RoID49IDEgJiYgYXJnc1swXSBpbnN0YW5jZW9mIEVycm9yKToge1xuXHRcdFx0Y29uc3QgWyBlcnJvciwgLi4uZGF0YSBdID0gYXJncyBhcyBbIEVycm9yLCAuLi5hbnlbXSBdXG5cblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG5cdFx0XHRsb2dnZXIubG9nKCdlcnJvcicsIGVycm9yLm1lc3NhZ2UsIGVycm9yLCAuLi5kYXRhKVxuXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkXG5cdFx0fVxuXG5cdFx0ZGVmYXVsdDoge1xuXHRcdFx0Y29uc3QgWyBsZXZlbCwgbWVzc2FnZSwgLi4uZGF0YSBdID0gYXJncyBhcyBbIHR5cGVvZiBMb2dnaW5nTGV2ZWwsIHN0cmluZywgLi4uYW55W10gXVxuXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudFxuXHRcdFx0bG9nZ2VyLmxvZyhsZXZlbCwgbWVzc2FnZSwgLi4uZGF0YSlcblxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZFxuXHRcdH1cblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVmbGVjdC5jb25zdHJ1Y3QoTG9nZ2VyLCBbXSwgTG9nZ2VyKSBhcyBMb2dnZXJcbiJdLCJuYW1lcyI6WyJMb2dnaW5nTGV2ZWwiLCJGYXRhbCIsIkVycm9yIiwiV2FybmluZyIsIk5vdGljZSIsIkluZm8iLCJIdHRwIiwiUXVlcnkiLCJWZXJib3NlIiwiRGVidWciLCJjb2xvcml6ZXJNYXAiLCJfTWFwIiwiY3JlYXRlU2NoZW1lIiwib3B0aW9ucyIsIm5leHRJbmRleCIsInNpemUiLCJjb2xvcml6ZXIiLCJjaGFsayIsImJnSGV4IiwiYmFja2dyb3VuZCIsImhleCIsImZvcmVncm91bmQiLCJzZXQiLCJDb2xvclZhbHVlIiwiV2hpdGUiLCJHcmF5IiwiQmxhY2siLCJDcml0aWNhbCIsIlJlZ3VsYXIiLCJDb2xvclNjaGVtZSIsIkxvdWQiLCJnZXRDaGFsa09mIiwiY29sb3JTZXQiLCJnZXQiLCJpc1RUWSIsInByb2Nlc3MiLCJzdGRvdXQiLCJpc05vdE9uQ0xJIiwiZGVjb3JhdGVMYWJlbCIsImxhYmVsIiwic2NoZW1lIiwiZGVjb3JhdGVkTGFiZWwiLCJib2xkIiwicm9vdFBhdGgiLCJjd2QiLCJjb25qdW5jdGlvbiIsImJsdWUiLCJzcGxhdCIsIl9TeW1ib2wkZm9yIiwibmFtZSIsImxldmVsIiwic2ltcGxpZnlEYXRhVVJJIiwiZGF0YVVSSSIsImFjdHVhbENvbnRlbnQiLCJzcGxpdCIsInBpdm90IiwiX2luZGV4T2ZJbnN0YW5jZVByb3BlcnR5IiwiY2FsbCIsIm1pbWVJbmRpY2F0b3IiLCJfc2xpY2VJbnN0YW5jZVByb3BlcnR5IiwiY29udGVudFByZWZpeCIsImNvbnRlbnRTdWZmaXgiLCJpc0RhdGFVUkkiLCJmaWxlbmFtZSIsIl9zdGFydHNXaXRoSW5zdGFuY2VQcm9wZXJ0eSIsImlzQWJzb2x1dGVPckRhdGFVUkkiLCJwYXRoIiwiaXNBYnNvbHV0ZSIsIm1hcExvY2F0aW9uT2ZFcnJvclRocm93biIsInRhcmdldCIsInJlbGF0aXZlIiwiZ3JheSIsIl9pbmNsdWRlc0luc3RhbmNlUHJvcGVydHkiLCJfbGFzdEluZGV4T2ZJbnN0YW5jZVByb3BlcnR5IiwicmVwbGFjZSIsIl8iLCJtb2R1bGVOYW1lIiwidHJhaWxpbmciLCJzZXAiLCJ1bmRlcmxpbmUiLCJkaXJuYW1lIiwiYmFzZW5hbWUiLCJoYW5kbGUiLCJkYXRhIiwiX2NvbnRleHQiLCJfY29udGV4dDIiLCJfY29udGV4dDMiLCJlcnJvciIsInVuZGVmaW5lZCIsImVycm9yTmFtZSIsIm1lc3NhZ2UiLCJzdGFjayIsInJhd1N0YWNrIiwiX21hcEluc3RhbmNlUHJvcGVydHkiLCJsZW5ndGgiLCJsaW5lIiwiY29udGV4dE5hbWUiLCJyYXdMb2NhdGlvbiIsImxvY2F0aW9uIiwib2NjdXJyZWRMaW5lIiwidmVyc2lvbiIsIm9jY3VycmVkQ29sdW1uIiwiam9pbiIsInBheWxvYWQiLCJoaWdobGlnaHQiLCJsYW5ndWFnZSIsImhhbmRsZXJzIiwiRmF0YWxIYW5kbGVyIiwiRXJyb3JIYW5kbGVyIiwiV2FybmluZ0hhbmRsZXIiLCJOb3RpY2VIYW5kbGVyIiwiSW5mb0hhbmRsZXIiLCJIdHRwSGFuZGxlciIsIlF1ZXJ5SGFuZGxlciIsIlZlcmJvc2VIYW5kbGVyIiwiRGVidWdIYW5kbGVyIiwiZm9ybWF0IiwicHJpbnRmIiwidGltZXN0YW1wIiwiRGF0ZVRpbWUiLCJub3ciLCJ0b0lTTyIsImluY2x1ZGVPZmZzZXQiLCJoYW5kbGVyIiwiX2ZpbmRJbnN0YW5jZVByb3BlcnR5IiwiZmFsbGJhY2siLCJwZXJmb3JtSGFuZGxlIiwiZGVmYXVsdCIsIl9SZWZsZWN0JGFwcGx5IiwiZXh0cmFGaW5nZXJwcmludCIsInRyYW5zYWN0aW9uSWQiLCJyVHJhY2VyIiwiaWQiLCJFeGVjdXRpb25Nb2RlIiwiRGV2ZWxvcG1lbnRNb2RlIiwiUHJvZHVjdGlvbk1vZGUiLCJDbHVzdGVyaW5nTW9kZSIsIk1hc3RlclByb2Nlc3MiLCJXb3JrZXJQcm9jZXNzIiwiZXhlY3V0aW9uTW9kZSIsImVudmlyb25tZW50cyIsIk5PREVfRU5WIiwiY2x1c3RlciIsImlzUHJpbWFyeSIsImlzTWFzdGVyIiwiZGVjb3JhdGVTdGF0dXNDb2RlIiwic3RhdHVzQ29kZSIsImdyb3VwT2ZDb2RlIiwiTWF0aCIsImZsb29yIiwiTnVtYmVyIiwiYmFzZU1lc3NhZ2UiLCJTVEFUVVNfQ09ERVMiLCJncmVlbiIsIm1hZ2VudGEiLCJyZWQiLCJmb3JtYXRGb3JNb3JnYW4iLCJ0b2tlbnMiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJ0b2tlbiIsInN1YkFyZ3MiLCJtZXRob2QiLCJVUkwiLCJodHRwVmVyc2lvbiIsImNvbnRlbnRMZW5ndGgiLCJyZXNwb25zZVRpbWUiLCIkbWV0aG9kIiwiJHZlcnNpb24iLCJyZ2IiLCIkc3RhdHVzQ29kZSIsIiRjb250ZW50TGVuZ3RoIiwicHJldHR5Qnl0ZXMiLCIkcmVzcG9uc2VUaW1lIiwicHJldHR5TXMiLCJtZXRhZGF0YSIsIm1vcmdhbiIsImNvbWJpbmVkIiwiQ29uc29sZSIsIkNvbnNvbGVUcmFuc3BvcnQiLCJ3aW5zdG9uIiwidHJhbnNwb3J0cyIsIkxvZ2dlciIsImNyZWF0ZUxvZ2dlciIsImxldmVscyIsIl9PYmplY3QkZnJvbUVudHJpZXMiLCJfZmlsdGVySW5zdGFuY2VQcm9wZXJ0eSIsImZvcm1hdEZvckNMSSIsImV4aXRPbkVycm9yIiwic3RyZWFtIiwiUGFzc1Rocm91Z2giLCJvYmplY3RNb2RlIiwib24iLCJsb2ciLCJfdHJpbUluc3RhbmNlUHJvcGVydHkiLCJjb25zdHJ1Y3RvciIsIm5ldyIsIlJlZmVyZW5jZUVycm9yIiwiYXJncyIsImxvZ2dlciIsIkh0dHBSZXF1ZXN0IiwiSHR0cFJlc3BvbnNlIiwicHJvbWlzaWZ5IiwiX1JlZmxlY3QkY29uc3RydWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTUEsWUFBWSxHQUFHO0FBQ3BCO0FBQ0FDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBQ1JDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBRVI7QUFDQUMsRUFBQUEsT0FBTyxFQUFFLENBQUM7QUFFVjtBQUNBQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQztBQUNUQyxFQUFBQSxJQUFJLEVBQUUsQ0FBQztBQUVQO0FBQ0FDLEVBQUFBLElBQUksRUFBRSxDQUFDO0FBQ1BDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBRVI7QUFDQUMsRUFBQUEsT0FBTyxFQUFFLENBQUM7QUFDVkMsRUFBQUEsS0FBSyxFQUFFO0FBQ1IsQ0FBVTs7QUNoQlY7QUFDQSxNQUFNQyxZQUFZLEdBQUcsSUFBQUMsSUFBQSxFQUFnQzs7QUFFckQ7QUFDQSxTQUFTQyxZQUFZQSxDQUFDQyxPQUEyRCxFQUFVO0FBQzFGLEVBQUEsTUFBTUMsU0FBUyxHQUFHSixZQUFZLENBQUNLLElB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
|
|
538
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZXMvaGVscGVycy9sb2dnaW5nLWxldmVsLnRzIiwiLi4vc291cmNlcy9oZWxwZXJzL2NvbG9yLXNjaGVtZS50cyIsIi4uL3NvdXJjZXMvaGVscGVycy9sYWJlbC1kZWNvcmF0b3IudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL2Vycm9yLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9mYXRhbC50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvd2FybmluZy50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvbm90aWNlLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9pbmZvLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9odHRwLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9xdWVyeS50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvdmVyYm9zZS50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvZGVidWcudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL2luZGV4LnRzIiwiLi4vc291cmNlcy9mb3JtYXR0ZXJzL2NvbW1hbmQtbGluZS50cyIsIi4uL3NvdXJjZXMvaGVscGVycy9jb25zdGFudHMudHMiLCIuLi9zb3VyY2VzL2Zvcm1hdHRlcnMvbW9yZ2FuLnRzIiwiLi4vc291cmNlcy9jbGFzc2VzL2xvZ2dlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBMb2dnaW5nTGV2ZWwgPSB7XG5cdC8vIENyaXRpY2FsIGxldmVscy4gKEl0IHdpbGwgY3Jhc2ggdGhlIHByb2Nlc3MpXG5cdEZhdGFsOiAwLFxuXHRFcnJvcjogMSxcblxuXHQvLyBXYXJuaW5nIGxldmVscy4gKEl0IGp1c3QgcmVwb3J0IHdhcm5pbmcgaW5mb3JtYXRpb24sIG5vdCBjcmFzaCB0aGUgcHJvY2Vzcylcblx0V2FybmluZzogMixcblxuXHQvLyBSZWd1bGFyIGxldmVsIGFuZCBhbGlhc2VzLlxuXHROb3RpY2U6IDMsXG5cdEluZm86IDMsXG5cblx0Ly8gTWF5YmUgc2Vuc2l0aXZlIGxldmVscy4gKEluIGdlbmVyYWwsIGRvZXMgbm90IHVzZWZ1bClcblx0SHR0cDogNCxcblx0UXVlcnk6IDQsXG5cblx0Ly8gTG91ZCBsZXZlbHMuXG5cdFZlcmJvc2U6IDUsXG5cdERlYnVnOiA1LFxufSBhcyBjb25zdFxuXG50eXBlIExvZ2dpbmdMZXZlbCA9IHR5cGVvZiBMb2dnaW5nTGV2ZWxba2V5b2YgdHlwZW9mIExvZ2dpbmdMZXZlbF1cblxuZXhwb3J0IGRlZmF1bHQgTG9nZ2luZ0xldmVsXG4iLCIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNoYWxrLCB7IHR5cGUgQ2hhbGtJbnN0YW5jZSB9IGZyb20gJ2NoYWxrJ1xuXG4vLyBDb25zdGFudHMuXG5jb25zdCBjb2xvcml6ZXJNYXAgPSBuZXcgTWFwPG51bWJlciwgQ2hhbGtJbnN0YW5jZT4oKVxuXG4vLyBIZWxwZXJzLlxuZnVuY3Rpb24gY3JlYXRlU2NoZW1lKG9wdGlvbnM6IHsgYmFja2dyb3VuZDogQ29sb3JWYWx1ZSwgZm9yZWdyb3VuZDogQ29sb3JWYWx1ZSB9KTogbnVtYmVyIHtcblx0Y29uc3QgbmV4dEluZGV4ID0gY29sb3JpemVyTWFwLnNpemVcblx0Y29uc3QgY29sb3JpemVyID0gY2hhbGsuYmdIZXgob3B0aW9ucy5iYWNrZ3JvdW5kKS5oZXgob3B0aW9ucy5mb3JlZ3JvdW5kKVxuXG5cdGNvbG9yaXplck1hcC5zZXQobmV4dEluZGV4LCBjb2xvcml6ZXIpXG5cblx0cmV0dXJuIG5leHRJbmRleFxufVxuXG4vLyBDb2xvciBkZWZpbml0aW9ucy5cbmNvbnN0IENvbG9yVmFsdWUgPSB7XG5cdC8vIEJhc2ljIGNvbG9ycy5cblx0V2hpdGU6ICcjRkZGRkZGJyxcblx0R3JheTogJyM4MDgwODAnLFxuXHRCbGFjazogJyMwMDAwMDAnLFxuXG5cdC8vIFNwZWNpYWxpemVkIGNvbG9ycy5cblx0Q3JpdGljYWw6ICcjRDYzMDMxJyxcblx0V2FybmluZzogJyNGRENCNkUnLFxuXHRSZWd1bGFyOiAnIzA5ODRFMycsXG5cdEh0dHA6ICcjNkFCMDRDJyxcblx0UXVlcnk6ICcjMzk5QUYzJyxcbn0gYXMgY29uc3RcblxudHlwZSBDb2xvclZhbHVlID0gdHlwZW9mIENvbG9yVmFsdWVba2V5b2YgdHlwZW9mIENvbG9yVmFsdWVdXG5cbmNvbnN0IENvbG9yU2NoZW1lID0ge1xuXHRDcml0aWNhbDogY3JlYXRlU2NoZW1lKHtcblx0XHRiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLkNyaXRpY2FsLFxuXHRcdGZvcmVncm91bmQ6IENvbG9yVmFsdWUuQmxhY2ssXG5cdH0pLFxuXG5cdFdhcm5pbmc6IGNyZWF0ZVNjaGVtZSh7XG5cdFx0YmFja2dyb3VuZDogQ29sb3JWYWx1ZS5XYXJuaW5nLFxuXHRcdGZvcmVncm91bmQ6IENvbG9yVmFsdWUuQmxhY2ssXG5cdH0pLFxuXG5cdFJlZ3VsYXI6IGNyZWF0ZVNjaGVtZSh7XG5cdFx0YmFja2dyb3VuZDogQ29sb3JWYWx1ZS5SZWd1bGFyLFxuXHRcdGZvcmVncm91bmQ6IENvbG9yVmFsdWUuV2hpdGUsXG5cdH0pLFxuXG5cdEh0dHA6IGNyZWF0ZVNjaGVtZSh7XG5cdFx0YmFja2dyb3VuZDogQ29sb3JWYWx1ZS5IdHRwLFxuXHRcdGZvcmVncm91bmQ6IENvbG9yVmFsdWUuQmxhY2ssXG5cdH0pLFxuXG5cdFF1ZXJ5OiBjcmVhdGVTY2hlbWUoe1xuXHRcdGJhY2tncm91bmQ6IENvbG9yVmFsdWUuUXVlcnksXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5CbGFjayxcblx0fSksXG5cblx0TG91ZDogY3JlYXRlU2NoZW1lKHtcblx0XHRiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLkJsYWNrLFxuXHRcdGZvcmVncm91bmQ6IENvbG9yVmFsdWUuR3JheSxcblx0fSksXG59IGFzIGNvbnN0XG5cbnR5cGUgQ29sb3JTY2hlbWUgPSB0eXBlb2YgQ29sb3JTY2hlbWVba2V5b2YgdHlwZW9mIENvbG9yU2NoZW1lXVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbGtPZihjb2xvclNldDogQ29sb3JTY2hlbWUpOiBDaGFsa0luc3RhbmNlIHtcblx0cmV0dXJuIGNvbG9yaXplck1hcC5nZXQoY29sb3JTZXQpID8/IGNoYWxrXG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbG9yU2NoZW1lXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdwcm9jZXNzJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IENvbG9yU2NoZW1lLCB7IGdldENoYWxrT2YgfSBmcm9tICcuL2NvbG9yLXNjaGVtZSdcblxuLy8gQ29uc3RhbnRzLlxuY29uc3QgeyBpc1RUWSB9ID0gcHJvY2Vzcy5zdGRvdXRcbmNvbnN0IGlzTm90T25DTEkgPSAhaXNUVFlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVjb3JhdGVMYWJlbDxUIGV4dGVuZHMgc3RyaW5nPihsYWJlbDogVCwgc2NoZW1lOiBDb2xvclNjaGVtZSk6IFQge1xuXHRpZiAoaXNOb3RPbkNMSSkgcmV0dXJuIGxhYmVsXG5cblx0Y29uc3QgY2hhbGsgPSBnZXRDaGFsa09mKHNjaGVtZSlcblx0Y29uc3QgZGVjb3JhdGVkTGFiZWwgPSBjaGFsay5ib2xkKGAgJHtsYWJlbH0gYClcblxuXHRyZXR1cm4gZGVjb3JhdGVkTGFiZWwgYXMgVFxufVxuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBwcm9jZXNzLCB7IHZlcnNpb24gfSBmcm9tICdwcm9jZXNzJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcuLi9oZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbnR5cGUgTG9nZ2luZ0RhdGEgPSB7IGxldmVsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyB9ICYgUmVjb3JkPFByb3BlcnR5S2V5LCBhbnk+XG50eXBlIEhhbmRsZWREYXRhID0geyBsYWJlbDogc3RyaW5nLCBwYXlsb2FkOiBzdHJpbmcgfVxuXG4vLyBDb25zdGFudHMuXG5jb25zdCByb290UGF0aCA9IHByb2Nlc3MuY3dkKClcbmNvbnN0IGNvbmp1bmN0aW9uID0gYCAke2NoYWxrLmJsdWUoJ+KUgOKUgCcpfSBgXG5jb25zdCBzcGxhdDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbC5mb3IoJ3NwbGF0JylcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2Vycm9yJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkVycm9yXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdFUlJPUicsIENvbG9yU2NoZW1lLkNyaXRpY2FsKVxuXG5mdW5jdGlvbiBzaW1wbGlmeURhdGFVUkkoZGF0YVVSSTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgWyAsIGFjdHVhbENvbnRlbnQgXSA9IGRhdGFVUkkuc3BsaXQoJzonKVxuXHRjb25zdCBwaXZvdCA9IGFjdHVhbENvbnRlbnQuaW5kZXhPZignLCcpICsgMVxuXHRjb25zdCBtaW1lSW5kaWNhdG9yID0gYWN0dWFsQ29udGVudC5zbGljZSgwLCBwaXZvdClcblx0Y29uc3QgY29udGVudFByZWZpeCA9IGFjdHVhbENvbnRlbnQuc2xpY2UocGl2b3QsIHBpdm90ICsgNClcblx0Y29uc3QgY29udGVudFN1ZmZpeCA9IGFjdHVhbENvbnRlbnQuc2xpY2UoLTQpXG5cblx0cmV0dXJuIGBkYXRhOiR7bWltZUluZGljYXRvciArIGNvbnRlbnRQcmVmaXh9Li4uJHtjb250ZW50U3VmZml4fWBcbn1cblxuZnVuY3Rpb24gaXNEYXRhVVJJKGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIGZpbGVuYW1lLnN0YXJ0c1dpdGgoJ2RhdGE6Jylcbn1cblxuZnVuY3Rpb24gaXNBYnNvbHV0ZU9yRGF0YVVSSShmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdHJldHVybiBwYXRoLmlzQWJzb2x1dGUoZmlsZW5hbWUpIHx8IGlzRGF0YVVSSShmaWxlbmFtZSlcbn1cblxuZnVuY3Rpb24gbWFwTG9jYXRpb25PZkVycm9yVGhyb3duKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRsZXQgdGFyZ2V0ID0gcGF0aC5yZWxhdGl2ZShyb290UGF0aCwgZmlsZW5hbWUpXG5cblx0aWYgKGlzRGF0YVVSSShmaWxlbmFtZSkpIHtcblx0XHR0YXJnZXQgPSBjaGFsay5ncmF5KHNpbXBsaWZ5RGF0YVVSSShmaWxlbmFtZSkpXG5cdH0gZWxzZSBpZiAodGFyZ2V0LmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkge1xuXHRcdHRhcmdldCA9IGNoYWxrLmdyYXkoXG5cdFx0XHR0YXJnZXQuc2xpY2UodGFyZ2V0Lmxhc3RJbmRleE9mKCdub2RlX21vZHVsZXMnKSksXG5cdFx0KS5yZXBsYWNlKFxuXHRcdFx0L25vZGVfbW9kdWxlc1tcXFxcL10oKD86QFteXFxcXC9dK1tcXFxcL10pP1teXFxcXC9dKykoLiopLyxcblx0XHRcdChfLCBtb2R1bGVOYW1lOiBzdHJpbmcsIHRyYWlsaW5nOiBzdHJpbmcpID0+IChcblx0XHRcdFx0YG5vZGVfbW9kdWxlcyR7cGF0aC5zZXB9JHtjaGFsay5ib2xkLnVuZGVybGluZShtb2R1bGVOYW1lKX0ke2NoYWxrLmdyYXkodHJhaWxpbmcpfWBcblx0XHRcdCksXG5cdFx0KVxuXHR9IGVsc2Uge1xuXHRcdHRhcmdldCA9IGAke2NoYWxrLmdyYXkocGF0aC5kaXJuYW1lKHRhcmdldCkgKyBwYXRoLnNlcCl9JHtjaGFsay5ib2xkLnVuZGVybGluZShwYXRoLmJhc2VuYW1lKHRhcmdldCkpfWBcblx0fVxuXG5cdHJldHVybiB0YXJnZXRcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaGFuZGxlKGRhdGE6IExvZ2dpbmdEYXRhKTogSGFuZGxlZERhdGEgfCB1bmRlZmluZWQge1xuXHRjb25zdCB7IFtzcGxhdF06IFsgZXJyb3IgXSA9IFtdIH0gPSBkYXRhIGFzIGFueVxuXG5cdGlmICghKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZFxuXHR9XG5cblx0Y29uc3QgeyBuYW1lOiBlcnJvck5hbWUsIG1lc3NhZ2UsIHN0YWNrOiByYXdTdGFjayA9ICcnIH0gPSBlcnJvclxuXG5cdGNvbnN0IHN0YWNrID0gcmF3U3RhY2tcblx0XHQuc2xpY2UoZXJyb3JOYW1lLmxlbmd0aCArIG1lc3NhZ2UubGVuZ3RoICsgMylcblx0XHQuc3BsaXQoJ1xcbicpXG5cdFx0Lm1hcChsaW5lID0+IGxpbmUucmVwbGFjZSgvXlxccythdCAvZywgJycpKVxuXHRcdC5tYXAobGluZSA9PiAoaXNBYnNvbHV0ZU9yRGF0YVVSSShsaW5lKSA/IGA8YW5vbnltb3VzPiR7Y29uanVuY3Rpb259JHttYXBMb2NhdGlvbk9mRXJyb3JUaHJvd24obGluZSl9YCA6IGxpbmUpKVxuXHRcdC5tYXAobGluZSA9PiBsaW5lLnJlcGxhY2UoL14oLispIFxcKCguKylcXCkkLywgKF8sIGNvbnRleHROYW1lOiBzdHJpbmcsIHJhd0xvY2F0aW9uOiBzdHJpbmcpID0+IHtcblx0XHRcdGxldCBsb2NhdGlvbiA9ICcnXG5cblx0XHRcdHN3aXRjaCAodHJ1ZSkge1xuXHRcdFx0Y2FzZSAocmF3TG9jYXRpb24gPT09ICc8YW5vbnltb3VzPicpOiB7XG5cdFx0XHRcdGxvY2F0aW9uID0gY2hhbGsuZ3JheShyYXdMb2NhdGlvbilcblxuXHRcdFx0XHRicmVha1xuXHRcdFx0fVxuXG5cdFx0XHRjYXNlIChpc0RhdGFVUkkocmF3TG9jYXRpb24pKToge1xuXHRcdFx0XHRsb2NhdGlvbiA9IGNoYWxrLmdyYXkoc2ltcGxpZnlEYXRhVVJJKHJhd0xvY2F0aW9uKSlcblxuXHRcdFx0XHRicmVha1xuXHRcdFx0fVxuXG5cdFx0XHRjYXNlIChyYXdMb2NhdGlvbi5zdGFydHNXaXRoKCdub2RlOicpKToge1xuXHRcdFx0XHRjb25zdCBbIGZpbGVuYW1lLCBvY2N1cnJlZExpbmUgXSA9IHJhd0xvY2F0aW9uLnNsaWNlKDUpLnNwbGl0KCc6JylcblxuXHRcdFx0XHRsb2NhdGlvbiA9IGNoYWxrLmdyYXkoYGh0dHBzOi8vZ2l0aHViLmNvbS8ke2NoYWxrLmJvbGQudW5kZXJsaW5lKCdub2RlanMnKX0vbm9kZS9ibG9iLyR7dmVyc2lvbn0vbGliLyR7ZmlsZW5hbWV9LmpzI0wke29jY3VycmVkTGluZX1gKVxuXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHR9XG5cblx0XHRcdGRlZmF1bHQ6IHtcblx0XHRcdFx0Y29uc3QgWyBmaWxlbmFtZSwgb2NjdXJyZWRMaW5lLCBvY2N1cnJlZENvbHVtbiBdID0gcmF3TG9jYXRpb24uc3BsaXQoJzonKVxuXG5cdFx0XHRcdGlmICghcGF0aC5pc0Fic29sdXRlKGZpbGVuYW1lKSkgYnJlYWtcblxuXHRcdFx0XHRjb25zdCB0YXJnZXQgPSBtYXBMb2NhdGlvbk9mRXJyb3JUaHJvd24ocGF0aC5yZWxhdGl2ZShyb290UGF0aCwgZmlsZW5hbWUpKVxuXHRcdFx0XHRjb25zdCB0cmFpbGluZyA9IGNoYWxrLmdyYXkoYDoke29jY3VycmVkTGluZX06JHtvY2N1cnJlZENvbHVtbn1gKVxuXG5cdFx0XHRcdGxvY2F0aW9uID0gdGFyZ2V0ICsgdHJhaWxpbmdcblx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGAke2NvbnRleHROYW1lfSR7Y29uanVuY3Rpb259JHtsb2NhdGlvbn1gXG5cdFx0fSkpXG5cdFx0LmpvaW4oJ1xcbicpXG5cblx0Y29uc3QgZGVjb3JhdGVkTGFiZWwgPSBkZWNvcmF0ZUxhYmVsKGVycm9yTmFtZSwgQ29sb3JTY2hlbWUuQ3JpdGljYWwpXG5cdGNvbnN0IHBheWxvYWQgPSBgJHttZXNzYWdlfVxcblxcbiR7c3RhY2t9XFxuYFxuXG5cdHJldHVybiB7IGxhYmVsOiBkZWNvcmF0ZWRMYWJlbCwgcGF5bG9hZCB9XG59XG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcuLi9oZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2ZhdGFsJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkZhdGFsXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdGQVRBTCcsIENvbG9yU2NoZW1lLkNyaXRpY2FsKVxuXG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi9lcnJvcicgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1yZXN0cmljdGVkLWV4cG9ydHNcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJy4uL2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnd2FybmluZydcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5XYXJuaW5nXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdXQVJOSU5HJywgQ29sb3JTY2hlbWUuV2FybmluZylcblxuZXhwb3J0IGRlZmF1bHQgbnVsbFxuIiwiLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnLi4vaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuaW1wb3J0IENvbG9yU2NoZW1lIGZyb20gJy4uL2hlbHBlcnMvY29sb3Itc2NoZW1lJ1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InXG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdub3RpY2UnXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuTm90aWNlXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdOT1RJQ0UnLCBDb2xvclNjaGVtZS5SZWd1bGFyKVxuXG5leHBvcnQgZGVmYXVsdCBudWxsXG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcuLi9oZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2luZm8nXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuSW5mb1xuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnSU5GTycsIENvbG9yU2NoZW1lLlJlZ3VsYXIpXG5cbmV4cG9ydCBkZWZhdWx0IG51bGxcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJy4uL2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnaHR0cCdcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5IdHRwXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdIVFRQJywgQ29sb3JTY2hlbWUuSHR0cClcblxuZXhwb3J0IGRlZmF1bHQgbnVsbFxuIiwiLy8gSGlnaGxpZ2h0LmpzXG5pbXBvcnQgaGlnaGxpZ2h0IGZyb20gJ2NsaS1oaWdobGlnaHQnXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJy4uL2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBUeXBlIGRlZmluaXRpb25zLlxudHlwZSBMb2dnaW5nRGF0YSA9IHsgbGV2ZWw6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH0gJiBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT5cbnR5cGUgSGFuZGxlZERhdGEgPSB7IGxhYmVsOiBzdHJpbmcsIHBheWxvYWQ6IHN0cmluZyB9XG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdxdWVyeSdcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5RdWVyeVxuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnUVVFUlknLCBDb2xvclNjaGVtZS5RdWVyeSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaGFuZGxlKGRhdGE6IExvZ2dpbmdEYXRhKTogSGFuZGxlZERhdGEgfCB1bmRlZmluZWQge1xuXHRjb25zdCBwYXlsb2FkID0gaGlnaGxpZ2h0KGRhdGEubWVzc2FnZSwgeyBsYW5ndWFnZTogJ3NxbCcgfSlcblxuXHRyZXR1cm4geyBsYWJlbCwgcGF5bG9hZCB9XG59XG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcuLi9oZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ3ZlcmJvc2UnXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuVmVyYm9zZVxuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnVkVSQk9TRScsIENvbG9yU2NoZW1lLkxvdWQpXG5cbmV4cG9ydCBkZWZhdWx0IG51bGxcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJy4uL2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnZGVidWcnXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuRGVidWdcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ0RFQlVHJywgQ29sb3JTY2hlbWUuTG91ZClcblxuZXhwb3J0IGRlZmF1bHQgbnVsbFxuIiwiLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgKiBhcyBGYXRhbEhhbmRsZXIgZnJvbSAnLi9mYXRhbCdcbmltcG9ydCAqIGFzIEVycm9ySGFuZGxlciBmcm9tICcuL2Vycm9yJ1xuaW1wb3J0ICogYXMgV2FybmluZ0hhbmRsZXIgZnJvbSAnLi93YXJuaW5nJ1xuaW1wb3J0ICogYXMgTm90aWNlSGFuZGxlciBmcm9tICcuL25vdGljZSdcbmltcG9ydCAqIGFzIEluZm9IYW5kbGVyIGZyb20gJy4vaW5mbydcbmltcG9ydCAqIGFzIEh0dHBIYW5kbGVyIGZyb20gJy4vaHR0cCdcbmltcG9ydCAqIGFzIFF1ZXJ5SGFuZGxlciBmcm9tICcuL3F1ZXJ5J1xuaW1wb3J0ICogYXMgVmVyYm9zZUhhbmRsZXIgZnJvbSAnLi92ZXJib3NlJ1xuaW1wb3J0ICogYXMgRGVidWdIYW5kbGVyIGZyb20gJy4vZGVidWcnXG5cbmNvbnN0IGhhbmRsZXJzID0gW1xuXHRGYXRhbEhhbmRsZXIsXG5cdEVycm9ySGFuZGxlcixcblx0V2FybmluZ0hhbmRsZXIsXG5cdE5vdGljZUhhbmRsZXIsXG5cdEluZm9IYW5kbGVyLFxuXHRIdHRwSGFuZGxlcixcblx0UXVlcnlIYW5kbGVyLFxuXHRWZXJib3NlSGFuZGxlcixcblx0RGVidWdIYW5kbGVyLFxuXVxuXG5leHBvcnQgdHlwZSBMb2dnaW5nTGV2ZWxOYW1lID0gKHR5cGVvZiBoYW5kbGVycyBleHRlbmRzIChpbmZlciBUKVtdID8gVCA6IG5ldmVyKVsnbmFtZSddXG5leHBvcnQgZGVmYXVsdCBoYW5kbGVyc1xuIiwiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBjaGFsayBmcm9tICdjaGFsaydcbmltcG9ydCByVHJhY2VyIGZyb20gJ2Nscy1ydHJhY2VyJ1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbidcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ3dpbnN0b24nXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcblxuLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgaGFuZGxlcnMgZnJvbSAnLi4vaGFuZGxlcnMnXG5cbmV4cG9ydCBkZWZhdWx0IGZvcm1hdC5wcmludGYoZGF0YSA9PiB7XG5cdGNvbnN0IHRpbWVzdGFtcCA9IGNoYWxrLmdyYXkoRGF0ZVRpbWUubm93KCkudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiB0cnVlIH0pKVxuXHRjb25zdCBoYW5kbGVyID0gaGFuZGxlcnMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IGRhdGEubGV2ZWwpXG5cdGNvbnN0IGZhbGxiYWNrID0geyBsYWJlbDogaGFuZGxlcj8ubGFiZWwsIHBheWxvYWQ6IGRhdGEubWVzc2FnZSB9XG5cdGNvbnN0IHBlcmZvcm1IYW5kbGUgPSBoYW5kbGVyPy5kZWZhdWx0ID8/ICgoKTogdHlwZW9mIGZhbGxiYWNrID0+IGZhbGxiYWNrKVxuXG5cdC8vIEV4ZWN1dGUgaGFuZGxlciBhbmQgdGhlbiwgZ2V0IGRlY29yYXRlZCBwYXlsb2FkLlxuXHRjb25zdCB7IGxhYmVsLCBwYXlsb2FkIH0gPSBSZWZsZWN0LmFwcGx5KHBlcmZvcm1IYW5kbGUsIHVuZGVmaW5lZCwgWyBkYXRhIF0pID8/IGZhbGxiYWNrXG5cblx0bGV0IGV4dHJhRmluZ2VycHJpbnQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG5cdGlmIChoYW5kbGVyPy5sZXZlbCA9PT0gTG9nZ2luZ0xldmVsLkh0dHApIHtcblx0XHRleHRyYUZpbmdlcnByaW50ID0gZGF0YS50cmFuc2FjdGlvbklkXG5cdFx0XHQ/IGAoVHJhbnNhY3Rpb24tSUQgPSAke2RhdGEudHJhbnNhY3Rpb25JZCBhcyBzdHJpbmd9KWBcblx0XHRcdDogYChSZXF1ZXN0LUlEID0gJHtyVHJhY2VyLmlkKCkgYXMgc3RyaW5nfSlgXG5cdH1cblxuXHRyZXR1cm4gYCR7bGFiZWwgYXMgc3RyaW5nfSAke3RpbWVzdGFtcH0ke2V4dHJhRmluZ2VycHJpbnQgPyBgICR7ZXh0cmFGaW5nZXJwcmludH1gIDogJyd9XFxuJHtwYXlsb2FkIGFzIHN0cmluZ31gXG59KVxuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IGNsdXN0ZXIgZnJvbSAnY2x1c3RlcidcbmltcG9ydCB7IGVudiBhcyBlbnZpcm9ubWVudHMgfSBmcm9tICdwcm9jZXNzJ1xuaW1wb3J0IHsgaXNNYWluVGhyZWFkIH0gZnJvbSAnd29ya2VyX3RocmVhZHMnXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgY29uc3QgRXhlY3V0aW9uTW9kZSA9IHtcblx0RGV2ZWxvcG1lbnRNb2RlOiAnZGV2ZWxvcG1lbnQnLFxuXHRQcm9kdWN0aW9uTW9kZTogJ3Byb2R1Y3Rpb24nLFxufSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgQ2x1c3RlcmluZ01vZGUgPSB7XG5cdE1hc3RlclByb2Nlc3M6IDAsXG5cdFdvcmtlclByb2Nlc3M6IDEsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBUaHJlYWRpbmdNb2RlID0ge1xuXHRNYWluVGhyZWFkOiAwLFxuXHRXb3JrZXJUaHJlYWQ6IDEsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGlvbk1vZGUgPSB0eXBlb2YgRXhlY3V0aW9uTW9kZVtrZXlvZiB0eXBlb2YgRXhlY3V0aW9uTW9kZV1cbmV4cG9ydCB0eXBlIENsdXN0ZXJpbmdNb2RlID0gdHlwZW9mIENsdXN0ZXJpbmdNb2RlW2tleW9mIHR5cGVvZiBDbHVzdGVyaW5nTW9kZV1cbmV4cG9ydCB0eXBlIFRocmVhZGluZ01vZGUgPSB0eXBlb2YgVGhyZWFkaW5nTW9kZVtrZXlvZiB0eXBlb2YgVGhyZWFkaW5nTW9kZV1cblxuLy8gRXhwb3J0aW5ncy5cbmV4cG9ydCBjb25zdCBleGVjdXRpb25Nb2RlID0gZW52aXJvbm1lbnRzLk5PREVfRU5WIGFzIEV4ZWN1dGlvbk1vZGUgPz8gRXhlY3V0aW9uTW9kZS5EZXZlbG9wbWVudE1vZGVcblxuZXhwb3J0IGNvbnN0IGNsdXN0ZXJpbmdNb2RlOiBDbHVzdGVyaW5nTW9kZSA9IGNsdXN0ZXIuaXNQcmltYXJ5ID8/IGNsdXN0ZXIuaXNNYXN0ZXJcblx0PyBDbHVzdGVyaW5nTW9kZS5NYXN0ZXJQcm9jZXNzXG5cdDogQ2x1c3RlcmluZ01vZGUuV29ya2VyUHJvY2Vzc1xuXG5leHBvcnQgY29uc3QgdGhyZWFkaW5nTW9kZTogVGhyZWFkaW5nTW9kZSA9IGlzTWFpblRocmVhZFxuXHQ/IFRocmVhZGluZ01vZGUuTWFpblRocmVhZFxuXHQ6IFRocmVhZGluZ01vZGUuV29ya2VyVGhyZWFkXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQge1xuXHRTVEFUVVNfQ09ERVMsXG5cdEluY29taW5nTWVzc2FnZSBhcyBIdHRwUmVxdWVzdCxcblx0U2VydmVyUmVzcG9uc2UgYXMgSHR0cFJlc3BvbnNlLFxufSBmcm9tICdodHRwJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJ1xuaW1wb3J0IG1vcmdhbiBmcm9tICdtb3JnYW4nXG5pbXBvcnQgcHJldHR5Qnl0ZXMgZnJvbSAncHJldHR5LWJ5dGVzJ1xuaW1wb3J0IHByZXR0eU1zIGZyb20gJ3ByZXR0eS1tcydcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB7IEV4ZWN1dGlvbk1vZGUsIGV4ZWN1dGlvbk1vZGUgfSBmcm9tICcuLi9oZWxwZXJzL2NvbnN0YW50cydcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmRlY2xhcmUgbW9kdWxlICdtb3JnYW4nIHtcblx0Y29uc3QgY29tYmluZWQ6IG1vcmdhbi5Gb3JtYXRGblxufVxuXG5pbnRlcmZhY2UgVG9rZW5JbmRleGVyIHtcblx0W3Rva2VuTmFtZTogc3RyaW5nXTogKFxuXHRcdHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LFxuXHRcdHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UsXG5cdFx0Li4uYXJnczogYW55W11cblx0KSA9PiBzdHJpbmcgfCB1bmRlZmluZWRcbn1cblxuLy8gSGVscGVycy5cbmZ1bmN0aW9uIGRlY29yYXRlU3RhdHVzQ29kZShzdGF0dXNDb2RlOiBrZXlvZiB0eXBlb2YgU1RBVFVTX0NPREVTKTogc3RyaW5nIHtcblx0Y29uc3QgZ3JvdXBPZkNvZGUgPSBNYXRoLmZsb29yKE51bWJlcihzdGF0dXNDb2RlKSAvIDEwMCkgKiAxMDBcblx0Y29uc3QgYmFzZU1lc3NhZ2UgPSBgJHtzdGF0dXNDb2RlfSAke1NUQVRVU19DT0RFU1tzdGF0dXNDb2RlXSBhcyBzdHJpbmd9YFxuXG5cdHN3aXRjaCAoZ3JvdXBPZkNvZGUpIHtcblx0Y2FzZSAyMDA6IHtcblx0XHRyZXR1cm4gY2hhbGsuZ3JlZW4oYmFzZU1lc3NhZ2UpXG5cdH1cblxuXHRjYXNlIDMwMDoge1xuXHRcdHJldHVybiBjaGFsay5tYWdlbnRhKGJhc2VNZXNzYWdlKVxuXHR9XG5cdGNhc2UgNDAwOlxuXHRjYXNlIDUwMDoge1xuXHRcdHJldHVybiBjaGFsay5yZWQoYmFzZU1lc3NhZ2UpXG5cdH1cblxuXHRkZWZhdWx0OiB7XG5cdFx0cmV0dXJuIGNoYWxrLmdyYXkoYmFzZU1lc3NhZ2UpXG5cdH1cblx0fVxufVxuXG5mdW5jdGlvbiBmb3JtYXRGb3JNb3JnYW4odG9rZW5zOiBhbnksIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCByZXNwb25zZTogSHR0cFJlc3BvbnNlKTogc3RyaW5nIHtcblx0ZnVuY3Rpb24gXyh0b2tlbjogc3RyaW5nLCAuLi5zdWJBcmdzOiBhbnlbXSk6IHN0cmluZyB8IHZvaWQge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG5cdFx0cmV0dXJuICh0b2tlbnMgYXMgVG9rZW5JbmRleGVyKVt0b2tlbl0ocmVxdWVzdCwgcmVzcG9uc2UsIC4uLnN1YkFyZ3MpXG5cdH1cblxuXHQvLyBSYXcgdmFsdWVzLlxuXHRjb25zdCBtZXRob2QgPSBfKCdtZXRob2QnKVxuXHRjb25zdCBVUkwgPSBfKCd1cmwnKVxuXHRjb25zdCBodHRwVmVyc2lvbiA9IGBIVFRQLyR7XygnaHR0cC12ZXJzaW9uJykgYXMgc3RyaW5nfWBcblx0Y29uc3Qgc3RhdHVzQ29kZSA9IE51bWJlcihfKCdzdGF0dXMnKSlcblx0Y29uc3QgY29udGVudExlbmd0aCA9IE51bWJlcihfKCdyZXMnLCAnY29udGVudC1sZW5ndGgnKSA/PyAtMSlcblx0Y29uc3QgcmVzcG9uc2VUaW1lID0gTnVtYmVyKF8oJ3Jlc3BvbnNlLXRpbWUnKSA/PyAtMSlcblxuXHQvLyBEZWNvcmF0ZWQgdmFsdWVzLlxuXHRjb25zdCAkbWV0aG9kID0gY2hhbGsuYm9sZChtZXRob2QpXG5cdGNvbnN0ICR2ZXJzaW9uID0gY2hhbGsucmdiKDk4LCAxNzcsIDI1NSkoaHR0cFZlcnNpb24pXG5cdGNvbnN0ICRzdGF0dXNDb2RlID0gZGVjb3JhdGVTdGF0dXNDb2RlKHN0YXR1c0NvZGUpXG5cdGNvbnN0ICRjb250ZW50TGVuZ3RoID0gY29udGVudExlbmd0aCA+PSAwID8gcHJldHR5Qnl0ZXMoY29udGVudExlbmd0aCkgOiAnPyBCJ1xuXHRjb25zdCAkcmVzcG9uc2VUaW1lID0gcmVzcG9uc2VUaW1lID49IDAgPyBwcmV0dHlNcyhyZXNwb25zZVRpbWUpIDogJydcblxuXHQvLyBBZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuXHRjb25zdCBtZXRhZGF0YSA9IGAoJHskY29udGVudExlbmd0aH0sICR7JHJlc3BvbnNlVGltZX0pYFxuXG5cdHJldHVybiBbXG5cdFx0YOKGkiAkeyRtZXRob2R9ICR7VVJMIGFzIHN0cmluZ30gJHskdmVyc2lvbn1gLFxuXHRcdGDihpAgJHskdmVyc2lvbn0gJHskc3RhdHVzQ29kZX0gJHttZXRhZGF0YX1gLFxuXHRdLmpvaW4oJ1xcbicpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGV4ZWN1dGlvbk1vZGUgPT09IEV4ZWN1dGlvbk1vZGUuRGV2ZWxvcG1lbnRNb2RlID8gZm9ybWF0Rm9yTW9yZ2FuIDogbW9yZ2FuLmNvbWJpbmVkXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UgYXMgSHR0cFJlcXVlc3QsIFNlcnZlclJlc3BvbnNlIGFzIEh0dHBSZXNwb25zZSB9IGZyb20gJ2h0dHAnXG5pbXBvcnQgeyBQYXNzVGhyb3VnaCB9IGZyb20gJ3N0cmVhbSdcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnXG5cbi8vIFRoaXJkLXBhcnR5IG1vZHVsZXMuXG5pbXBvcnQgbW9yZ2FuIGZyb20gJ21vcmdhbidcbmltcG9ydCAqIGFzIHdpbnN0b24gZnJvbSAnd2luc3RvbidcbmltcG9ydCB0eXBlIHsgbGV2ZWwgYXMgTG9nZ2luZ0xldmVsLCBMb2dnZXIgYXMgQmFzZUxvZ2dlciB9IGZyb20gJ3dpbnN0b24nXG5cbi8vIEZvcm1hdHRlcnMuXG5pbXBvcnQgZm9ybWF0Rm9yQ0xJIGZyb20gJy4uL2Zvcm1hdHRlcnMvY29tbWFuZC1saW5lJ1xuaW1wb3J0IGZvcm1hdEZvck1vcmdhbiBmcm9tICcuLi9mb3JtYXR0ZXJzL21vcmdhbidcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB7IEV4ZWN1dGlvbk1vZGUsIGV4ZWN1dGlvbk1vZGUgfSBmcm9tICcuLi9oZWxwZXJzL2NvbnN0YW50cydcblxuLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgdHlwZSB7IExvZ2dpbmdMZXZlbE5hbWUgfSBmcm9tICcuLi9oYW5kbGVycydcbmltcG9ydCBoYW5kbGVycyBmcm9tICcuLi9oYW5kbGVycydcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbnR5cGUgTW9yZ2FuID0gKHJlcTogSHR0cFJlcXVlc3QsIHJlczogSHR0cFJlc3BvbnNlLCBuZXh0OiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZCkgPT4gdm9pZFxuXG4vLyBUcmFuc3BvcnRzLlxuY29uc3QgeyBDb25zb2xlOiBDb25zb2xlVHJhbnNwb3J0IH0gPSB3aW5zdG9uLnRyYW5zcG9ydHNcblxuY2xhc3MgTG9nZ2VyIHtcblx0c3RhdGljICNpbnN0YW5jZT86IExvZ2dlclxuXG5cdCNsb2dnZXI6IEJhc2VMb2dnZXIgPSB3aW5zdG9uLmNyZWF0ZUxvZ2dlcih7XG5cdFx0bGV2ZWxzOiBPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRoYW5kbGVyc1xuXHRcdFx0XHQubWFwKCh7IG5hbWUsIGxldmVsIH0pID0+IFsgbmFtZSwgbGV2ZWwgXSBhcyBjb25zdClcblx0XHRcdFx0LmZpbHRlcigoWyAsIGxldmVsIF0pID0+IHR5cGVvZiBsZXZlbCA9PT0gJ251bWJlcicpLFxuXHRcdCksXG5cblx0XHRsZXZlbDogKGV4ZWN1dGlvbk1vZGUgPT09IEV4ZWN1dGlvbk1vZGUuUHJvZHVjdGlvbk1vZGUgPyAnaHR0cCcgOiAndmVyYm9zZScpIGFzIHR5cGVvZiBMb2dnaW5nTGV2ZWwsXG5cblx0XHR0cmFuc3BvcnRzOiBbXG5cdFx0XHRuZXcgQ29uc29sZVRyYW5zcG9ydCh7IGZvcm1hdDogZm9ybWF0Rm9yQ0xJIH0pLFxuXHRcdF0sXG5cblx0XHRleGl0T25FcnJvcjogZmFsc2UsXG5cdH0pXG5cblx0I21vcmdhbjogTW9yZ2FuID0gbW9yZ2FuKGZvcm1hdEZvck1vcmdhbiwge1xuXHRcdHN0cmVhbTogbmV3IFBhc3NUaHJvdWdoKHsgb2JqZWN0TW9kZTogdHJ1ZSB9KS5vbignZGF0YScsIChkYXRhOiBzdHJpbmcpID0+IHtcblx0XHRcdHRoaXMubG9nKCdodHRwJywgZGF0YS50cmltKCkpXG5cdFx0fSksXG5cdH0pIGFzIE1vcmdhblxuXG5cdHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG5cdFx0aWYgKG5ldy50YXJnZXQgIT09IExvZ2dlcikge1xuXHRcdFx0dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCdMb2dnZXIgY2xhc3MgaXMgbm90IGluaGVyaXRhYmxlJylcblx0XHR9XG5cblx0XHRpZiAoTG9nZ2VyLiNpbnN0YW5jZSkge1xuXHRcdFx0dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCdMb2dnZXIgY2xhc3MgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGluIGRpcmVjdGx5Jylcblx0XHR9XG5cblx0XHRMb2dnZXIuI2luc3RhbmNlID0gdGhpc1xuXHR9XG5cblx0LyoqXG5cdCAqIExvZ2dpbmcgbWVzc2FnZSB3aXRoIHNwZWNpZmljIGxldmVsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbGV2ZWxcblx0ICogQHBhcmFtIG1lc3NhZ2Vcblx0ICogQHBhcmFtIGFyZ3MgQWRkaXRpb25hbCBtZXRhZGF0YS5cblx0ICovXG5cdHB1YmxpYyBsb2cobGV2ZWw6IExvZ2dpbmdMZXZlbE5hbWUsIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkXG5cblx0LyoqXG5cdCAqIExvZ2dpbmcgSFRUUCBJL08uXG5cdCAqXG5cdCAqIEBwYXJhbSByZXF1ZXN0IE5vZGUuanMgYnVpbHQtaW4gYEluY29taW5nTWVzc2FnZWAgaW5zdGFuY2UgZnJvbSBgaHR0cGAgbW9kdWxlLlxuXHQgKiBAcGFyYW0gcmVzcG9uc2UgTm9kZS5qcyBidWlsdC1pbiBgU2VydmVyUmVzcG9uc2VgIGluc3RhbmNlIGZyb20gYGh0dHBgIG1vZHVsZS5cblx0ICovXG5cdHB1YmxpYyBsb2cocmVxdWVzdDogSHR0cFJlcXVlc3QsIHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+XG5cblx0LyoqXG5cdCAqIExvZ2dpbmcgZXJyb3JzIGluIGRldGFpbC5cblx0ICpcblx0ICogQHBhcmFtIGVycm9yXG5cdCAqL1xuXHRwdWJsaWMgbG9nKGVycm9yOiBFcnJvcik6IHZvaWRcblxuXHRwdWJsaWMgbG9nKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGxvZ2dlciA9IHRoaXMuI2xvZ2dlclxuXHRcdGNvbnN0IGZvcm1hdCA9IHRoaXMuI21vcmdhblxuXG5cdFx0c3dpdGNoICh0cnVlKSB7XG5cdFx0Y2FzZSAoYXJncy5sZW5ndGggPj0gMiAmJiBhcmdzWzBdIGluc3RhbmNlb2YgSHR0cFJlcXVlc3QgJiYgYXJnc1sxXSBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSk6IHtcblx0XHRcdGNvbnN0IFsgcmVxdWVzdCwgcmVzcG9uc2UgXSA9IGFyZ3MgYXMgWyBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIF1cblxuXHRcdFx0cmV0dXJuIHByb21pc2lmeShmb3JtYXQpKHJlcXVlc3QsIHJlc3BvbnNlKVxuXHRcdH1cblxuXHRcdGNhc2UgKGFyZ3MubGVuZ3RoID49IDEgJiYgYXJnc1swXSBpbnN0YW5jZW9mIEVycm9yKToge1xuXHRcdFx0Y29uc3QgWyBlcnJvciwgLi4uZGF0YSBdID0gYXJncyBhcyBbIEVycm9yLCAuLi5hbnlbXSBdXG5cblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG5cdFx0XHRsb2dnZXIubG9nKCdlcnJvcicsIGVycm9yLm1lc3NhZ2UsIGVycm9yLCAuLi5kYXRhKVxuXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkXG5cdFx0fVxuXG5cdFx0ZGVmYXVsdDoge1xuXHRcdFx0Y29uc3QgWyBsZXZlbCwgbWVzc2FnZSwgLi4uZGF0YSBdID0gYXJncyBhcyBbIHR5cGVvZiBMb2dnaW5nTGV2ZWwsIHN0cmluZywgLi4uYW55W10gXVxuXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudFxuXHRcdFx0bG9nZ2VyLmxvZyhsZXZlbCwgbWVzc2FnZSwgLi4uZGF0YSlcblxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZFxuXHRcdH1cblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVmbGVjdC5jb25zdHJ1Y3QoTG9nZ2VyLCBbXSwgTG9nZ2VyKSBhcyBMb2dnZXJcbiJdLCJuYW1lcyI6WyJMb2dnaW5nTGV2ZWwiLCJGYXRhbCIsIkVycm9yIiwiV2FybmluZyIsIk5vdGljZSIsIkluZm8iLCJIdHRwIiwiUXVlcnkiLCJWZXJib3NlIiwiRGVidWciLCJjb2xvcml6ZXJNYXAiLCJfTWFwIiwiY3JlYXRlU2NoZW1lIiwib3B0aW9ucyIsIm5leHRJbmRleCIsInNpemUiLCJjb2xvcml6ZXIiLCJjaGFsayIsImJnSGV4IiwiYmFja2dyb3VuZCIsImhleCIsImZvcmVncm91bmQiLCJzZXQiLCJDb2xvclZhbHVlIiwiV2hpdGUiLCJHcmF5IiwiQmxhY2siLCJDcml0aWNhbCIsIlJlZ3VsYXIiLCJDb2xvclNjaGVtZSIsIkxvdWQiLCJnZXRDaGFsa09mIiwiY29sb3JTZXQiLCJnZXQiLCJpc1RUWSIsInByb2Nlc3MiLCJzdGRvdXQiLCJpc05vdE9uQ0xJIiwiZGVjb3JhdGVMYWJlbCIsImxhYmVsIiwic2NoZW1lIiwiZGVjb3JhdGVkTGFiZWwiLCJib2xkIiwicm9vdFBhdGgiLCJjd2QiLCJjb25qdW5jdGlvbiIsImJsdWUiLCJzcGxhdCIsIl9TeW1ib2wkZm9yIiwibmFtZSIsImxldmVsIiwic2ltcGxpZnlEYXRhVVJJIiwiZGF0YVVSSSIsImFjdHVhbENvbnRlbnQiLCJzcGxpdCIsInBpdm90IiwiX2luZGV4T2ZJbnN0YW5jZVByb3BlcnR5IiwiY2FsbCIsIm1pbWVJbmRpY2F0b3IiLCJfc2xpY2VJbnN0YW5jZVByb3BlcnR5IiwiY29udGVudFByZWZpeCIsImNvbnRlbnRTdWZmaXgiLCJpc0RhdGFVUkkiLCJmaWxlbmFtZSIsIl9zdGFydHNXaXRoSW5zdGFuY2VQcm9wZXJ0eSIsImlzQWJzb2x1dGVPckRhdGFVUkkiLCJwYXRoIiwiaXNBYnNvbHV0ZSIsIm1hcExvY2F0aW9uT2ZFcnJvclRocm93biIsInRhcmdldCIsInJlbGF0aXZlIiwiZ3JheSIsIl9pbmNsdWRlc0luc3RhbmNlUHJvcGVydHkiLCJfbGFzdEluZGV4T2ZJbnN0YW5jZVByb3BlcnR5IiwicmVwbGFjZSIsIl8iLCJtb2R1bGVOYW1lIiwidHJhaWxpbmciLCJzZXAiLCJ1bmRlcmxpbmUiLCJkaXJuYW1lIiwiYmFzZW5hbWUiLCJoYW5kbGUiLCJkYXRhIiwiX2NvbnRleHQiLCJfY29udGV4dDIiLCJfY29udGV4dDMiLCJlcnJvciIsInVuZGVmaW5lZCIsImVycm9yTmFtZSIsIm1lc3NhZ2UiLCJzdGFjayIsInJhd1N0YWNrIiwiX21hcEluc3RhbmNlUHJvcGVydHkiLCJsZW5ndGgiLCJsaW5lIiwiY29udGV4dE5hbWUiLCJyYXdMb2NhdGlvbiIsImxvY2F0aW9uIiwib2NjdXJyZWRMaW5lIiwidmVyc2lvbiIsIm9jY3VycmVkQ29sdW1uIiwiam9pbiIsInBheWxvYWQiLCJoaWdobGlnaHQiLCJsYW5ndWFnZSIsImhhbmRsZXJzIiwiRmF0YWxIYW5kbGVyIiwiRXJyb3JIYW5kbGVyIiwiV2FybmluZ0hhbmRsZXIiLCJOb3RpY2VIYW5kbGVyIiwiSW5mb0hhbmRsZXIiLCJIdHRwSGFuZGxlciIsIlF1ZXJ5SGFuZGxlciIsIlZlcmJvc2VIYW5kbGVyIiwiRGVidWdIYW5kbGVyIiwiZm9ybWF0IiwicHJpbnRmIiwidGltZXN0YW1wIiwiRGF0ZVRpbWUiLCJub3ciLCJ0b0lTTyIsImluY2x1ZGVPZmZzZXQiLCJoYW5kbGVyIiwiX2ZpbmRJbnN0YW5jZVByb3BlcnR5IiwiZmFsbGJhY2siLCJwZXJmb3JtSGFuZGxlIiwiZGVmYXVsdCIsIl9SZWZsZWN0JGFwcGx5IiwiZXh0cmFGaW5nZXJwcmludCIsInRyYW5zYWN0aW9uSWQiLCJyVHJhY2VyIiwiaWQiLCJFeGVjdXRpb25Nb2RlIiwiRGV2ZWxvcG1lbnRNb2RlIiwiUHJvZHVjdGlvbk1vZGUiLCJDbHVzdGVyaW5nTW9kZSIsIk1hc3RlclByb2Nlc3MiLCJXb3JrZXJQcm9jZXNzIiwiZXhlY3V0aW9uTW9kZSIsImVudmlyb25tZW50cyIsIk5PREVfRU5WIiwiY2x1c3RlciIsImlzUHJpbWFyeSIsImlzTWFzdGVyIiwiZGVjb3JhdGVTdGF0dXNDb2RlIiwic3RhdHVzQ29kZSIsImdyb3VwT2ZDb2RlIiwiTWF0aCIsImZsb29yIiwiTnVtYmVyIiwiYmFzZU1lc3NhZ2UiLCJTVEFUVVNfQ09ERVMiLCJncmVlbiIsIm1hZ2VudGEiLCJyZWQiLCJmb3JtYXRGb3JNb3JnYW4iLCJ0b2tlbnMiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJ0b2tlbiIsInN1YkFyZ3MiLCJtZXRob2QiLCJVUkwiLCJodHRwVmVyc2lvbiIsImNvbnRlbnRMZW5ndGgiLCJyZXNwb25zZVRpbWUiLCIkbWV0aG9kIiwiJHZlcnNpb24iLCJyZ2IiLCIkc3RhdHVzQ29kZSIsIiRjb250ZW50TGVuZ3RoIiwicHJldHR5Qnl0ZXMiLCIkcmVzcG9uc2VUaW1lIiwicHJldHR5TXMiLCJtZXRhZGF0YSIsIm1vcmdhbiIsImNvbWJpbmVkIiwiQ29uc29sZSIsIkNvbnNvbGVUcmFuc3BvcnQiLCJ3aW5zdG9uIiwidHJhbnNwb3J0cyIsIkxvZ2dlciIsImNyZWF0ZUxvZ2dlciIsImxldmVscyIsIl9PYmplY3QkZnJvbUVudHJpZXMiLCJfZmlsdGVySW5zdGFuY2VQcm9wZXJ0eSIsImZvcm1hdEZvckNMSSIsImV4aXRPbkVycm9yIiwic3RyZWFtIiwiUGFzc1Rocm91Z2giLCJvYmplY3RNb2RlIiwib24iLCJsb2ciLCJfdHJpbUluc3RhbmNlUHJvcGVydHkiLCJjb25zdHJ1Y3RvciIsIm5ldyIsIlJlZmVyZW5jZUVycm9yIiwiYXJncyIsImxvZ2dlciIsIkh0dHBSZXF1ZXN0IiwiSHR0cFJlc3BvbnNlIiwicHJvbWlzaWZ5IiwiX1JlZmxlY3QkY29uc3RydWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTUEsWUFBWSxHQUFHO0FBQ3BCO0FBQ0FDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBQ1JDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBRVI7QUFDQUMsRUFBQUEsT0FBTyxFQUFFLENBQUM7QUFFVjtBQUNBQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQztBQUNUQyxFQUFBQSxJQUFJLEVBQUUsQ0FBQztBQUVQO0FBQ0FDLEVBQUFBLElBQUksRUFBRSxDQUFDO0FBQ1BDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBRVI7QUFDQUMsRUFBQUEsT0FBTyxFQUFFLENBQUM7QUFDVkMsRUFBQUEsS0FBSyxFQUFFO0FBQ1IsQ0FBVTs7QUNoQlY7QUFDQSxNQUFNQyxZQUFZLEdBQUcsSUFBQUMsSUFBQSxFQUFnQzs7QUFFckQ7QUFDQSxTQUFTQyxZQUFZQSxDQUFDQyxPQUEyRCxFQUFVO0FBQzFGLEVBQUEsTUFBTUMsU0FBUyxHQUFHSixZQUFZLENBQUNLLElB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cichol/logger",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.1",
|
|
4
4
|
"description": "A logger based on `winston` for personal projects.",
|
|
5
5
|
"homepage": "https://github.com/morrighan/packages",
|
|
6
6
|
"bugs": {
|
|
@@ -35,20 +35,20 @@
|
|
|
35
35
|
"directory": "packages/logger"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@babel/runtime-corejs3": "^7.
|
|
38
|
+
"@babel/runtime-corejs3": "^7.29.0",
|
|
39
39
|
"chalk": "^5.6.2",
|
|
40
40
|
"cli-highlight": "^2.1.11",
|
|
41
41
|
"cls-rtracer": "^2.6.3",
|
|
42
|
-
"core-js-pure": "^3.
|
|
42
|
+
"core-js-pure": "^3.48.0",
|
|
43
43
|
"luxon": "^3.7.2",
|
|
44
44
|
"morgan": "^1.10.1",
|
|
45
45
|
"pretty-bytes": "^7.1.0",
|
|
46
46
|
"pretty-ms": "^9.3.0",
|
|
47
|
-
"winston": "^3.
|
|
47
|
+
"winston": "^3.19.0"
|
|
48
48
|
},
|
|
49
49
|
"engines": {
|
|
50
|
-
"node": "^
|
|
51
|
-
"npm": "^11.6.
|
|
50
|
+
"node": "^22.21.1 || ^24.11.1",
|
|
51
|
+
"npm": "^11.6.4"
|
|
52
52
|
},
|
|
53
53
|
"publishConfig": {
|
|
54
54
|
"registry": "https://registry.npmjs.org/",
|