Skip to content

Instantly share code, notes, and snippets.

@Zjaaspoer
Created October 4, 2017 17:44
Show Gist options
  • Save Zjaaspoer/ca97a466c9171cae9de67ddcf1cc96cb to your computer and use it in GitHub Desktop.
Save Zjaaspoer/ca97a466c9171cae9de67ddcf1cc96cb to your computer and use it in GitHub Desktop.
OS: darwin x64
Adapter node: v7.9.0 x64
vscode-chrome-debug-core: 3.17.2
19:42:00, 2017-10-4
node-debug2: 1.16.9
From client: initialize({"clientID":"vscode","adapterID":"node2","pathFormat":"path","linesStartAt1":true,"columnsStartAt1":true,"supportsVariableType":true,"supportsVariablePaging":true,"supportsRunInTerminalRequest":true})
To client: {"seq":0,"type":"response","request_seq":1,"command":"initialize","success":true,"body":{"exceptionBreakpointFilters":[{"label":"All Exceptions","filter":"all","default":false},{"label":"Uncaught Exceptions","filter":"uncaught","default":true}],"supportsConfigurationDoneRequest":true,"supportsSetVariable":true,"supportsConditionalBreakpoints":true,"supportsCompletionsRequest":true,"supportsHitConditionalBreakpoints":true,"supportsRestartFrame":true,"supportsExceptionInfoRequest":true,"supportsDelayedStackTraceLoading":true,"supportsValueFormattingOptions":true}}
From client: launch({"name":"app","outFiles":["/Techs/projects/bleeve/frontend-router/app.js"],"program":"/Techs/projects/bleeve/frontend-router/app.ts","request":"launch","sourceMaps":true,"trace":true,"type":"node2","cwd":"/Techs/projects/bleeve/frontend-router","__nodeVersion":"v8.6.0","__sessionId":"5b755b5a-34eb-4205-af85-efd560688ee2"})
SourceMaps: preloading sourcemaps for scripts in globs: ["/Techs/projects/bleeve/frontend-router/app.js"]
To client: {"seq":0,"type":"event","event":"output","body":{"category":"telemetry","output":"debugStarted","data":{"request":"launch","args":["name","outFiles","program","request","sourceMaps","trace","type","cwd","__nodeVersion","__sessionId","sourceMapPathOverrides","showAsyncStacks"]}}}
SourceMaps: expanded globs and found 1 scripts
SourceMaps: sourcemap url parsed from end of generated content: data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2svYm9vdHN0cmFwIDZlZWUyODg4OWVlYzE4MTNiZmRlIiwiL2FwcC50cyIsIi9hcHAvYmxlZXZlUm91dGVyLnRzIiwiL2FwcC9jdXN0b21SZWRpcmVjdGlvbnMudHMiLCIvYXBwL2RldGVybWluZUFuZFZhbGlkYXRlSG9zdC50cyIsIi9hcHAvcHJlcmVuZGVyLnRzIiwiL2FwcC9yZWdpb25hYWxlbmVyZ2llbG9rZXRSb3V0ZXIudHMiLCIvY29uZmlnL2VudlZhcmlhYmxlcy9lbnZWYXJpYWJsZXMudHMiLCIvY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9hbmd1bGFyUmVhY3RSb3V0ZXMudHMiLCIvY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9ibGVldmVSZWRpcmVjdHMudHMiLCIvY3VzdG9tTGliL2ZvcmNlL2ZvcmNlLnRzIiwiZXh0ZXJuYWwgXCJleHByZXNzXCIiLCJleHRlcm5hbCBcImV4cHJlc3MtaHR0cC1wcm94eVwiIiwiZXh0ZXJuYWwgXCJsb2Rhc2hcIiIsImV4dGVybmFsIFwibW9yZ2FuXCIiLCJleHRlcm5hbCBcIm5ld3JlbGljXCIiLCJleHRlcm5hbCBcInByZXJlbmRlci1ub2RlXCIiLCJleHRlcm5hbCBcInJlcXVlc3QtcHJvbWlzZS1uYXRpdmVcIiIsImV4dGVybmFsIFwidXJsXCIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtE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LEVBQUMsUUFBUSxFQUFFLGFBQWEsRUFBTSxRQUFRLEVBQUUsaUJBQWlCLEVBQUMsRUFBSyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxxQ0FBcUMsRUFBVSxRQUFRLEVBQUUsOEJBQThCLEVBQUM7SUFDakwsRUFBQyxLQUFLLEVBQUUsRUFBQyxRQUFRLEVBQUUsNEJBQTRCLEVBQUUsUUFBUSxFQUFFLDhCQUE4QixFQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsa0VBQWtFLEVBQUUsUUFBUSxFQUFFLHdEQUF3RCxFQUFDO0NBQ3JQOzs7Ozs7Ozs7OztBQ3pCWSxhQUFLLEdBQUcsQ0FBSSxLQUF1QixFQUFFLEVBQUU7SUFFbkQsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQztRQUVsQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDO0lBRXBFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7UUFFdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQztJQUUxRSxNQUFNLENBQUMsS0FBSztBQUViLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUNaRCxvQzs7Ozs7OztBQ0FBLCtDOzs7Ozs7O0FDQUEsbUM7Ozs7Ozs7QUNBQSxtQzs7Ozs7OztBQ0FBLHFDOzs7Ozs7O0FDQUEsMkM7Ozs7Ozs7QUNBQSxtRDs7Ozs7OztBQ0FBLGdDIiwiZmlsZSI6ImFwcC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIDZlZWUyODg4OWVlYzE4MTNiZmRlIiwiaW1wb3J0ICduZXdyZWxpYycgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbXBvcnQtc2lkZS1lZmZlY3RcblxucHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgZXJyID0+IHsgdGhyb3cgZXJyIH0pXG5cbmltcG9ydCAqIGFzIGV4cHJlc3MgZnJvbSAnZXhwcmVzcydcbmltcG9ydCB7XG4gIGdldCxcbiAgaW5jbHVkZXMsXG4gIG1hcCxcbn0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0ICogYXMgbW9yZ2FuIGZyb20gJ21vcmdhbidcbmltcG9ydCAqIGFzIHJlcXVlc3QgZnJvbSAncmVxdWVzdC1wcm9taXNlLW5hdGl2ZSdcbmltcG9ydCB7XG4gIGJsZWV2ZVJvdXRlcixcbiAgcm91dGVJc0JsZWV2ZSxcbn0gZnJvbSAnLi9hcHAvYmxlZXZlUm91dGVyJ1xuaW1wb3J0IHtjdXN0b21SZWRpcmVjdGlvbnN9IGZyb20gJy4vYXBwL2N1c3RvbVJlZGlyZWN0aW9ucydcbmltcG9ydCB7ZGV0ZXJtaW5lQW5kVmFsaWRhdGVIb3N0fSBmcm9tICcuL2FwcC9kZXRlcm1pbmVBbmRWYWxpZGF0ZUhvc3QnXG5pbXBvcnQge3ByZXJlbmRlcn0gZnJvbSAnLi9hcHAvcHJlcmVuZGVyJ1xuaW1wb3J0IHtcbiAgcmVnaW9uYWFsZW5lcmdpZWxva2V0Um91dGVyLFxuICByb3V0ZUlzUmVnaW9uYWFsZW5lcmdpZWxva2V0LFxufSBmcm9tICcuL2FwcC9yZWdpb25hYWxlbmVyZ2llbG9rZXRSb3V0ZXInXG5pbXBvcnQge2VudlZhcmlhYmxlc30gZnJvbSAnLi9jb25maWcvZW52VmFyaWFibGVzL2VudlZhcmlhYmxlcydcbmltcG9ydCB7XG4gIEJsZWV2ZVJlZGlyZWN0LFxuICBibGVldmVSZWRpcmVjdHMsXG59IGZyb20gJy4vY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9ibGVldmVSZWRpcmVjdHMnXG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKVxuXG5hcHBcblxuICAuZ2V0KCcvc3RhdHVzJywgKF9yZXEsIHJlcykgPT4gcmVzLnNlbmRTdGF0dXMoMjAwKSlcblxuICAudXNlKG1vcmdhbignY29tYmluZWQnKSlcblxuICAudXNlKChyZXEsIF9yZXMsIG5leHQpID0+IHtcbiAgICBjb25zb2xlLmxvZygnbGFtYmRhQGVkZ2UnLCByZXEuZ2V0KCdob3N0JyksIHJlcS5wYXRoLCBKU09OLnN0cmluZ2lmeShyZXEucmF3SGVhZGVycykpIC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8tY29uc29sZVxuICAgIG5leHQoKVxuICB9KVxuXG4gIC5kaXNhYmxlKCd4LXBvd2VyZWQtYnknKVxuXG4gIC51c2UoKF9yZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIHJlcy5zZXRIZWFkZXIoJ1gtUmVsZWFzZS1WZXJzaW9uJywgZW52VmFyaWFibGVzLlJFTEVBU0VfVkVSU0lPTilcbiAgICBuZXh0KClcbiAgfSlcblxuICAudXNlKGN1c3RvbVJlZGlyZWN0aW9ucylcblxuICAudXNlKGRldGVybWluZUFuZFZhbGlkYXRlSG9zdClcblxuICAudXNlKHByZXJlbmRlcilcblxuICAuZ2V0KCcqJywgcm91dGVJc0JsZWV2ZSwgYmxlZXZlUm91dGVyKVxuICAuZ2V0KCcqJywgcm91dGVJc1JlZ2lvbmFhbGVuZXJnaWVsb2tldCwgcmVnaW9uYWFsZW5lcmdpZWxva2V0Um91dGVyKVxuXG4gIC5saXN0ZW4oODA4MCwgKCkgPT4geyBjb25zb2xlLmxvZyhgJHsgZW52VmFyaWFibGVzLlJFUE9fSU5TVEFOQ0VfTkFNRSB9ICgkeyBlbnZWYXJpYWJsZXMuUkVMRUFTRV9WRVJTSU9OIH0pIGxpc3RlbmluZyBhdCA4MDgwYCkgfSkgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1jb25zb2xlXG5cbmNvbnN0IGNoZWNrM3h4UmVkaXJlY3QgPSBhc3luYyAoYmxlZXZlUmVkaXJlY3Q6IEJsZWV2ZVJlZGlyZWN0KSA9PiB7XG5cbiAgdHJ5IHtcblxuICAgIGNvbnN0IHtzdGF0dXNDb2RlfSA9IGF3YWl0IHJlcXVlc3Qoe1xuICAgICAgZm9sbG93UmVkaXJlY3Q6ICAgICAgICAgIGZhbHNlLFxuICAgICAgcmVzb2x2ZVdpdGhGdWxsUmVzcG9uc2U6IHRydWUsXG4gICAgICB1cmk6ICAgICAgICAgICAgICAgICAgICAgYmxlZXZlUmVkaXJlY3QuY2hlY2tVcmwsXG4gICAgfSlcblxuICAgIGlmIChzdGF0dXNDb2RlID09PSAyMDApXG5cbiAgICAgIHJldHVybiBgcmVkaXJlY3QgZ2F2ZSBiYWNrIDIwMCAod2hpbGUgaXQgc2hvdWxkbid0KTogJHsgbG9nQmxlZXZlUmVkaXJlY3QoYmxlZXZlUmVkaXJlY3QpIH1gXG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQ6ICE9PSAyMDAnKVxuXG4gIH1cblxuICBjYXRjaCAoe3Jlc3BvbnNlOiB7aGVhZGVyczoge2xvY2F0aW9ufSwgc3RhdHVzQ29kZX19KSB7XG4gIC8vIGNhdGNoIChlcnIpIHtcblxuICAgIC8vIGNvbnN0IHtyZXNwb25zZToge2hlYWRlcnM6IHtsb2NhdGlvbn0sIHN0YXR1c0NvZGV9fSA9IGVyclxuXG4gICAgLy8gY29uc29sZS5sb2coZXJyLnJlc3BvbnNlKVxuXG4gICAgaWYgKHN0YXR1c0NvZGUgIT09IGJsZWV2ZVJlZGlyZWN0LnN0YXR1cylcblxuICAgICAgcmV0dXJuIGB1bmV4cGVjdGVkIHN0YXR1cyBjb2RlICR7IHN0YXR1c0NvZGUgfTogJHsgbG9nQmxlZXZlUmVkaXJlY3QoYmxlZXZlUmVkaXJlY3QpIH1gXG5cbiAgICBpZiAobG9jYXRpb24gIT09IGJsZWV2ZVJlZGlyZWN0LnVybClcblxuICAgICAgcmV0dXJuIGBsb2NhdGlvbiBoZWFkZXIgKCR7IGxvY2F0aW9uIH0pIG5vdCB0aGUgZXhwZWN0ZWQgdXJsICgkeyBibGVldmVSZWRpcmVjdC51cmwgfSlgXG5cbiAgfVxuXG4gIHRyeSB7XG5cbiAgICAvKiBjb25zdCByZXNwb25zZSA9ICAqL2F3YWl0IHJlcXVlc3Qoe1xuICAgICAgbWF4UmVkaXJlY3RzOiAgICAgICAgICAgIDEsXG4gICAgICByZXNvbHZlV2l0aEZ1bGxSZXNwb25zZTogdHJ1ZSxcbiAgICAgIHVyaTogICAgICAgICAgICAgICAgICAgICBibGVldmVSZWRpcmVjdC5jaGVja1VybCxcbiAgICB9KVxuXG4gICAgLy8gY29uc29sZS5sb2cocmVzcG9uc2UpXG4gICAgLy8gY29uc29sZS5sb2cob21pdChyZXNwb25zZSwgWydib2R5JywgJ3JlcScsICdyZXF1ZXN0J10pKVxuXG4gICAgLy8gaWYgKHJlc3BvbnNlLlVSTCAhPT0gYmxlZXZlUmVkaXJlY3QudXJsKVxuXG4gICAgICAvLyByZXR1cm4gYHJlZGlyZWN0IGRpZG4ndCBnYXZlIGJhY2sgdGhlIHJpZ2h0IHVybCAoJHsgcmVzcG9uc2UuVVJMIH0pOiAkeyBsb2dCbGVldmVSZWRpcmVjdChibGVldmVSZWRpcmVjdCkgfWBcblxuICB9XG5cbiAgY2F0Y2ggKGVycikge1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGdldDxzdHJpbmc+KGVyci5lcnJvciwgJ21lc3NhZ2UnKVxuXG4gICAgaWYgKGluY2x1ZGVzKG1lc3NhZ2UsICdtYXhSZWRpcmVjdHMnKSlcblxuICAgICAgcmV0dXJuIGB0b28gbWFueSByZWRpcmVjdHM6ICR7IGxvZ0JsZWV2ZVJlZGlyZWN0KGJsZWV2ZVJlZGlyZWN0KSB9YFxuXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IGdldDxudW1iZXI+KGVyci5yZXNwb25zZSwgJ3N0YXR1c0NvZGUnKVxuXG4gICAgaWYgKHN0YXR1c0NvZGUgIT09IDIwMClcblxuICAgICAgcmV0dXJuIGByZWRpcmVjdCBkaWRuJ3QgZ2F2ZSBiYWNrIDIwMCAod2hpbGUgaXQgc2hvdWxkKS4gaXQgd2FzICR7IHN0YXR1c0NvZGUgfTogJHsgbG9nQmxlZXZlUmVkaXJlY3QoYmxlZXZlUmVkaXJlY3QpIH1gXG5cbiAgfVxuXG4gIHJldHVybiBudWxsXG5cbn1cblxuY29uc3QgY2hlY2tCbGVldmVSZWRpcmVjdCA9IGFzeW5jIChibGVldmVSZWRpcmVjdDogQmxlZXZlUmVkaXJlY3QpID0+IHtcblxuICBzd2l0Y2ggKGJsZWV2ZVJlZGlyZWN0LnN0YXR1cykge1xuICAgIGNhc2UgMzAxOlxuICAgIGNhc2UgMzAyOlxuICAgIGNhc2UgMzA3OlxuICAgICAgcmV0dXJuIGNoZWNrM3h4UmVkaXJlY3QoYmxlZXZlUmVkaXJlY3QpXG4gIH1cblxufVxuXG5jb25zdCBsb2dCbGVldmVSZWRpcmVjdCA9ICh7Y2hlY2tVcmwsIHN0YXR1cywgdXJsfTogQmxlZXZlUmVkaXJlY3QpID0+XG4gIGAkeyBjaGVja1VybCB9ID0+ICR7IHN0YXR1cyB9ID0+ICR7IHVybCB9YFxuXG5jb25zdCBlcnJvclByb21pc2VzID0gbWFwKGJsZWV2ZVJlZGlyZWN0cywgY2hlY2tCbGVldmVSZWRpcmVjdCk7XG5cbihhc3luYyAoKSA9PiB7XG5cbiAgY29uc3QgZXJyb3JzID0gYXdhaXQgUHJvbWlzZS5hbGwoZXJyb3JQcm9taXNlcylcblxuICAvLyBjb25zb2xlLmxvZyhgXFxuJHsgZXJyb3JzLmpvaW4oJ1xcbicpIH1cXG5gKVxuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShlcnJvcnMsIG51bGwsICdcXHQnKSlcbiAgLy8gY29uc29sZS5sb2coZXJyb3JzKVxuXG59KSgpXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hcHAudHMiLCJpbXBvcnQge1xuICBOZXh0RnVuY3Rpb24sXG4gIFJlcXVlc3QsXG4gIFJlc3BvbnNlLFxuICBSb3V0ZXIsXG4gIFJvdXRlciBhcyBSb3V0ZXJJbnRlcmZhY2UsXG59IGZyb20gJ2V4cHJlc3MnXG5pbXBvcnQgKiBhcyBwcm94eSBmcm9tICdleHByZXNzLWh0dHAtcHJveHknXG5pbXBvcnQge3JlZHVjZX0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHtlbnZWYXJpYWJsZXN9IGZyb20gJy4uL2NvbmZpZy9lbnZWYXJpYWJsZXMvZW52VmFyaWFibGVzJ1xuaW1wb3J0IHtcbiAgQW5ndWxhclJlYWN0Um91dGUsXG4gIGFuZ3VsYXJSZWFjdFJvdXRlcyxcbn0gZnJvbSAnLi4vY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9hbmd1bGFyUmVhY3RSb3V0ZXMnXG5cbmNvbnN0IGFuZ3VsYXJQcm94eSA9IHByb3h5KGVudlZhcmlhYmxlcy5BTkdVTEFSX0lOREVYX1VSTCwge1xuICBwcm94eVJlcVBhdGhSZXNvbHZlcjogcmVxID0+IHtcbiAgICBjb25zb2xlLmxvZyhgZm9yd2FyZGluZyB0byAvIG9mIGFuZ3VsYXI6ICR7IHJlcS5vcmlnaW5hbFVybCB9YCkgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1jb25zb2xlXG4gICAgcmV0dXJuICcvJ1xuICB9LFxufSlcblxuY29uc3QgcmVhY3RQcm94eSA9IHByb3h5KGVudlZhcmlhYmxlcy5SRUFDVF9JTkRFWF9VUkwsIHtcbiAgcHJveHlSZXFQYXRoUmVzb2x2ZXI6IHJlcSA9PiB7XG4gICAgY29uc29sZS5sb2coYGZvcndhcmRpbmcgdG8gLyBvZiByZWFjdDogJHsgcmVxLm9yaWdpbmFsVXJsIH1gKSAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWNvbnNvbGVcbiAgICByZXR1cm4gJy8nXG4gIH0sXG59KVxuXG5leHBvcnQgY29uc3QgYmxlZXZlUm91dGVyID0gcmVkdWNlKFxuICBhbmd1bGFyUmVhY3RSb3V0ZXMsXG4gIChyb3V0ZXI6IFJvdXRlckludGVyZmFjZSwgYW5ndWxhclJlYWN0Um91dGU6IEFuZ3VsYXJSZWFjdFJvdXRlKSA9PiB7XG4gICAgc3dpdGNoIChhbmd1bGFyUmVhY3RSb3V0ZS50eXBlKSB7XG4gICAgICBjYXNlICdhbmd1bGFyJzpcbiAgICAgICAgcmV0dXJuIHJvdXRlci5nZXQoYW5ndWxhclJlYWN0Um91dGUucm91dGUsIGFuZ3VsYXJQcm94eSlcbiAgICAgIGNhc2UgJ3JlYWN0JzpcbiAgICAgICAgcmV0dXJuIHJvdXRlci5nZXQoYW5ndWxhclJlYWN0Um91dGUucm91dGUsIHJlYWN0UHJveHkpXG4gICAgfVxuICB9LFxuICBSb3V0ZXIoKSxcbilcblxuICAvLyAuZ2V0KC9eXFwvP1thLXpBLVowLTlfXStcXC9hc3NldHNcXC8vLCBwcm94eShlbnZWYXJpYWJsZXMuUkVBQ1RfSU5ERVhfVVJMKSlcblxuICAuZ2V0KCcqJywgYW5ndWxhclByb3h5KVxuXG5leHBvcnQgY29uc3Qgcm91dGVJc0JsZWV2ZSA9IChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pID0+IHtcbiAgaWYgKHJlcy5sb2NhbHMuaXNCbGVldmUpXG4gICAgbmV4dCgpXG4gIGVsc2VcbiAgICAgIG5leHQoJ3JvdXRlJylcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2FwcC9ibGVldmVSb3V0ZXIudHMiLCJpbXBvcnQge1xuICBOZXh0RnVuY3Rpb24sXG4gIFJlcXVlc3QsXG4gIFJlc3BvbnNlLFxufSBmcm9tICdleHByZXNzJ1xuaW1wb3J0IHtmaW5kfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQge3BhcnNlfSBmcm9tICd1cmwnXG5pbXBvcnQge2JsZWV2ZVJlZGlyZWN0c30gZnJvbSAnLi4vY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9ibGVldmVSZWRpcmVjdHMnXG5pbXBvcnQge2ZvcmNlfSBmcm9tICcuLi9jdXN0b21MaWIvZm9yY2UvZm9yY2UnXG5cbmV4cG9ydCBjb25zdCBjdXN0b21SZWRpcmVjdGlvbnMgPSAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pID0+IHtcblxuICBjb25zdCBob3N0ID0gZm9yY2UocmVxLmdldCgnaG9zdCcpKVxuICBjb25zdCB7cGF0aG5hbWV9ID0gcGFyc2UocmVxLm9yaWdpbmFsVXJsKVxuXG4gIGNvbnN0IGJsZWV2ZVJlZGlyZWN0ID0gZmluZChibGVldmVSZWRpcmVjdHMsIGIgPT4ge1xuXG4gICAgaWYgKGIubWF0Y2guaG9zdG5hbWUgJiYgIWIubWF0Y2guaG9zdG5hbWUudGVzdChob3N0KSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIGlmIChiLm1hdGNoLnBhdGhuYW1lICYmICFiLm1hdGNoLnBhdGhuYW1lLnRlc3QocGF0aG5hbWUgfHwgJycpKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgaWYgKGIubWF0Y2gucHJvdG9jb2wgJiYgYi5tYXRjaC5wcm90b2NvbCAhPT0gcmVxLnByb3RvY29sKVxuICAgICAgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gdHJ1ZVxuXG4gIH0pXG5cbiAgaWYgKGJsZWV2ZVJlZGlyZWN0KSAvKiB7XG5cbiAgICBjb25zb2xlLmxvZyhob3N0LCBwYXRobmFtZSwgJ3JlZGlyZWN0ZWQnKSAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWNvbnNvbGUgKi9cblxuICAgIHJlcy5yZWRpcmVjdChibGVldmVSZWRpcmVjdC5zdGF0dXMsIGJsZWV2ZVJlZGlyZWN0LnVybClcblxuICAvLyB9XG5cbiAgZWxzZSAvKiB7XG5cbiAgICBjb25zb2xlLmxvZyhob3N0LCBwYXRobmFtZSwgJ25vdCByZWRpcmVjdGVkJykgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1jb25zb2xlICovXG5cbiAgICBuZXh0KClcblxuICAvLyB9XG5cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2FwcC9jdXN0b21SZWRpcmVjdGlvbnMudHMiLCJpbXBvcnQge1xuICBOZXh0RnVuY3Rpb24sXG4gIFJlcXVlc3QsXG4gIFJlc3BvbnNlLFxufSBmcm9tICdleHByZXNzJ1xuaW1wb3J0IHtmb3JjZX0gZnJvbSAnLi4vY3VzdG9tTGliL2ZvcmNlL2ZvcmNlJ1xuXG5leHBvcnQgY29uc3QgZGV0ZXJtaW5lQW5kVmFsaWRhdGVIb3N0ID0gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gIGNvbnN0IGhvc3QgPSBmb3JjZShyZXEuZ2V0KCdob3N0JykpXG4gIGlmICgvYmxlZXZlXFwubmwvLnRlc3QoaG9zdCkpIHtcbiAgICByZXMubG9jYWxzLmlzQmxlZXZlID0gdHJ1ZVxuICAgIG5leHQoKVxuICB9XG4gIGVsc2UgaWYgKC9yZWdpb25hYWxlbmVyZ2llbG9rZXRcXC5ubC8udGVzdChob3N0KSkge1xuICAgIHJlcy5sb2NhbHMuaXNSZWdpb25hYWxlbmVyZ2llbG9rZXQgPSB0cnVlXG4gICAgbmV4dCgpXG4gIH1cbiAgZWxzZVxuICAgIHJlcy5zdGF0dXMoNDA0KS5zZW5kKGBob3N0ICgkeyBob3N0IH0pIG5vdCBrbm93bmApXG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hcHAvZGV0ZXJtaW5lQW5kVmFsaWRhdGVIb3N0LnRzIiwiaW1wb3J0IHtcbiAgTmV4dEZ1bmN0aW9uLFxuICBSZXF1ZXN0LFxuICBSZXNwb25zZSxcbn0gZnJvbSAnZXhwcmVzcydcbmltcG9ydCAqIGFzIHByZXJlbmRlck5vZGUgZnJvbSAncHJlcmVuZGVyLW5vZGUnXG5pbXBvcnQge2VudlZhcmlhYmxlc30gZnJvbSAnLi4vY29uZmlnL2VudlZhcmlhYmxlcy9lbnZWYXJpYWJsZXMnXG5cbmNvbnN0IHByZXJlbmRlck1pZGRsZXdhcmUgPSBwcmVyZW5kZXJOb2RlLnNldCgncHJvdG9jb2wnLCAnaHR0cHMnKVxuXG5leHBvcnQgY29uc3QgcHJlcmVuZGVyID0gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gIGNvbnN0IGtleSA9IHJlcy5sb2NhbHMuaXNCbGVldmUgPyBlbnZWYXJpYWJsZXMuUFJFUkVOREVSX0JMRUVWRV9LRVkgOiBlbnZWYXJpYWJsZXMuUFJFUkVOREVSX1JFR0lPTkFBTEVORVJHSUVMT0tFVF9LRVlcbiAgcmV0dXJuIHByZXJlbmRlck1pZGRsZXdhcmUuc2V0KCdwcmVyZW5kZXJUb2tlbicsIGtleSkocmVxLCByZXMsIG5leHQpXG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hcHAvcHJlcmVuZGVyLnRzIiwiaW1wb3J0IHtcbiAgTmV4dEZ1bmN0aW9uLFxuICBSZXF1ZXN0LFxuICBSZXNwb25zZSxcbiAgUm91dGVyLFxufSBmcm9tICdleHByZXNzJ1xuaW1wb3J0ICogYXMgcHJveHkgZnJvbSAnZXhwcmVzcy1odHRwLXByb3h5J1xuaW1wb3J0IHtlbnZWYXJpYWJsZXN9IGZyb20gJy4uL2NvbmZpZy9lbnZWYXJpYWJsZXMvZW52VmFyaWFibGVzJ1xuXG5leHBvcnQgY29uc3QgcmVnaW9uYWFsZW5lcmdpZWxva2V0Um91dGVyID0gUm91dGVyKClcbiAgLy8gLmdldCgvXlxcLz9bYS16QS1aMC05X10rXFwvYXNzZXRzXFwvLywgcHJveHkoZW52VmFyaWFibGVzLlJFR0lPTkFBTEVORVJHSUVMT0tFVF9JTkRFWF9VUkwpKVxuICAuZ2V0KCcqJywgcHJveHkoZW52VmFyaWFibGVzLlJFR0lPTkFBTEVORVJHSUVMT0tFVF9JTkRFWF9VUkwsIHtcbiAgICBwcm94eVJlcVBhdGhSZXNvbHZlcjogKCkgPT4gJy8nLFxuICB9KSlcblxuZXhwb3J0IGNvbnN0IHJvdXRlSXNSZWdpb25hYWxlbmVyZ2llbG9rZXQgPSAoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gIGlmIChyZXMubG9jYWxzLmlzUmVnaW9uYWFsZW5lcmdpZWxva2V0KVxuICAgIG5leHQoKVxuICBlbHNlXG4gICAgICBuZXh0KCdyb3V0ZScpXG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hcHAvcmVnaW9uYWFsZW5lcmdpZWxva2V0Um91dGVyLnRzIiwiaW1wb3J0IHtFbnZWYXJpYWJsZXN9IGZyb20gJy4vRW52VmFyaWFibGVzSW50ZXJmYWNlJ1xuXG5leHBvcnQgY29uc3QgZW52VmFyaWFibGVzOiBFbnZWYXJpYWJsZXMgPSB7XG4gIEFOR1VMQVJfSU5ERVhfVVJMOiAnaHR0cDovL3FhLWJsZWV2ZS1ubC0tRUxCLTc4NjUyNDcxLmV1LXdlc3QtMS5lbGIuYW1hem9uYXdzLmNvbScsXG4gIEFTU0VUU19TVUJESVI6ICcnLFxuICBBV1NfQUNDRVNTX0tFWV9JRDogJ0FLSUFJN0VLSlo2UFRYM0hHTE1BJyxcbiAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiAncTlHWE1scnZnOWpuUUNXck1OTUcvc2o3eGlvd29PNWNMREFTd3VPTCcsXG4gIERPQ0tFUl9JTUFHRV9OQU1FOiAnYmxlZXZlL2Zyb250ZW5kLXJvdXRlcicsXG4gIERPQ0tFUl9SRVBPX1VSTDogJzI0Mzg2NTMyMjE5Ny5ka3IuZWNyLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tJyxcbiAgRU5WSVJPTk1FTlQ6ICdsb2NhbGhvc3QnLFxuICBORVdfUkVMSUNfQVBQX05BTUU6IG51bGwsXG4gIE5FV19SRUxJQ19FTkFCTEVEOiBmYWxzZSxcbiAgTkVXX1JFTElDX0xJQ0VOU0VfS0VZOiAnNDYwODg0OGFlNGEwODk2NmQyYWM3YjFlYjZmYWYyMjJjMjY3OTk0YycsXG4gIE5PREVfRU5WOiBudWxsLFxuICBQT1JUX1BSRUZJWDogbnVsbCxcbiAgUFJFUkVOREVSX0JMRUVWRV9LRVk6ICdwNUNtcWM3b2UxTEtEblcxNGJ6YycsXG4gIFBSRVJFTkRFUl9SRUdJT05BQUxFTkVSR0lFTE9LRVRfS0VZOiAndUVpOHlWMG5LMXVPRUhRU1NPbTEnLFxuICBSRUFDVF9JTkRFWF9VUkw6ICdodHRwOi8vbmwuYmxlZXZlLnFhLnMzLXdlYnNpdGUtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20nLFxuICBSRUdJT05BQUxFTkVSR0lFTE9LRVRfSU5ERVhfVVJMOiAnaHR0cDovL25sLnJlZ2lvbmFhbGVuZXJnaWVsb2tldC5xYS5zMy13ZWJzaXRlLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tJyxcbiAgUkVMRUFTRV9WRVJTSU9OOiAnbG9jYWxob3N0JyxcbiAgUkVQT19JTlNUQU5DRV9OQU1FOiBudWxsLFxuICBSRVBPX05BTUU6ICdmcm9udGVuZC1yb3V0ZXInLFxuICBSRVBPX1RZUEU6ICdtaWNyb3NlcnZpY2UnLFxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vY29uZmlnL2VudlZhcmlhYmxlcy9lbnZWYXJpYWJsZXMudHMiLCJleHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJSZWFjdFJvdXRlIHtcblx0cmVhZG9ubHkgcm91dGU6IFJlZ0V4cCxcblx0cmVhZG9ubHkgdHlwZTpcdCdhbmd1bGFyJyB8ICdyZWFjdCcsXG59XG5cbmV4cG9ydCBjb25zdCBhbmd1bGFyUmVhY3RSb3V0ZXM6IEFuZ3VsYXJSZWFjdFJvdXRlW10gPSBbXG5cdHtyb3V0ZTogL15cXC8kLyxcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvYmVkcmlqdmVuXFwvLyxcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcLz8kLyxcdFx0XHRcdFx0XHRcdHR5cGU6ICdhbmd1bGFyJ30sXG5cdHtyb3V0ZTogL15cXC9lbmVyZ2llLWJlc3BhcmVuXFwvZGFraXNvbGF0aWVcXC8/JC8sXHRcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcL2dldmVsaXNvbGF0aWVcXC8/JC8sXHRcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL2VuZXJnaWUtYmVzcGFyZW5cXC9pbmZyYXJvb2RwYW5lbGVuXFwvPyQvLFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcL2lzb2xhdGllZ2xhc1xcLz8kLyxcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcL2lzb2xlcmVuZGdsYXNcXC8/JC8sXHRcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL2VuZXJnaWUtYmVzcGFyZW5cXC9zcG91d211dXJpc29sYXRpZVxcLz8kLyxcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL2VuZXJnaWUtYmVzcGFyZW5cXC92ZW50aWxhdGlld2FybXRlcG9tcFxcLz8kLyxcdHR5cGU6ICdhbmd1bGFyJ30sXG5cdHtyb3V0ZTogL15cXC9lbmVyZ2llLWJlc3BhcmVuXFwvdmxvZXJpc29sYXRpZVxcLz8kLyxcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcL3dhcm10ZXBvbXBcXC8/JC8sXHRcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcL3pvbm5lYm9pbGVyXFwvPyQvLFx0XHRcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL2VuZXJnaWUtYmVzcGFyZW5cXC96b25uZXBhbmVsZW5cXC8/JC8sXHRcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL2dhcmFudGllXFwvPyQvLFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdyZWFjdCd9LFxuXHR7cm91dGU6IC9eXFwvaHVpc3NjYW5cXC8vLFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdhbmd1bGFyJ30sXG5cdHtyb3V0ZTogL15cXC9uaWV0LWdldm9uZGVuXFwvPyQvLFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAncmVhY3QnfSxcblx0e3JvdXRlOiAvXlxcL29mZmVydGVcXC8/JC8sXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL292ZXItb25zXFwvPyQvLFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdyZWFjdCd9LFxuXHR7cm91dGU6IC9eXFwvcHJpdmFjeVxcLz8kLyxcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAncmVhY3QnfSxcblx0e3JvdXRlOiAvXlxcL3Jlc3BvbnNpYmxlLWRpc2Nsb3N1cmVcXC8/JC8sXHRcdFx0XHRcdHR5cGU6ICdyZWFjdCd9LFxuXHR7cm91dGU6IC9eXFwvdm9vci1iZWRyaWp2ZW5cXC8/JC8sXHRcdFx0XHRcdFx0XHR0eXBlOiAncmVhY3QnfSxcblx0e3JvdXRlOiAvXlxcL3dhYXJvbS1ibGVldmVcXC8/JC8sXHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdyZWFjdCd9LFxuXVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9hbmd1bGFyUmVhY3RSb3V0ZXMudHMiLCJleHBvcnQgaW50ZXJmYWNlIEJsZWV2ZVJlZGlyZWN0IHtcblx0cmVhZG9ubHkgY2hlY2tVcmw6XHRzdHJpbmcsXG5cdHJlYWRvbmx5IG1hdGNoOlx0XHRNYXRjaCxcblx0cmVhZG9ubHkgc3RhdHVzOlx0U3RhdHVzLFxuXHRyZWFkb25seSB1cmw6XHRcdHN0cmluZyxcbn1cblxuLy8gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS91cmwuaHRtbCN1cmxfdXJsX3N0cmluZ3NfYW5kX3VybF9vYmplY3RzXG5pbnRlcmZhY2UgTWF0Y2gge1xuXHRyZWFkb25seSBob3N0bmFtZT86XHRSZWdFeHAsXG5cdHJlYWRvbmx5IHBhdGhuYW1lPzpcdFJlZ0V4cCxcblx0cmVhZG9ubHkgcHJvdG9jb2w/Olx0J2h0dHAnIHwgJ2h0dHBzJyxcbn1cblxuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGlzdF9vZl9IVFRQX3N0YXR1c19jb2Rlc1xudHlwZSBTdGF0dXMgPVxuMzAxIHxcdC8vIFBlcm1hbmVudCBSZWRpcmVjdFxuMzAyIHxcdC8vIFRlbXBvcmFyeSBSZWRpcmVjdCAoVEVNUDogb25seSBvcHRpb24gZm9yIENsb3VkRmxhcmUsIG1ha2UgMzA3IGxhdGVyKVxuMzA3XHRcdC8vIFRlbXBvcmFyeSBSZWRpcmVjdFxuXG5leHBvcnQgY29uc3QgYmxlZXZlUmVkaXJlY3RzOiBCbGVldmVSZWRpcmVjdFtdID0gW1xuXHR7bWF0Y2g6IHtob3N0bmFtZTogL2JsZWV2ZVxcLm5sJC8sXHRcdFx0XHRcdHBhdGhuYW1lOiAvXlxcL2h1aXNzY2FuXFwvPyQvfSxcdFx0XHRcdHN0YXR1czogMzAxLFx0dXJsOiAnL2h1aXNzY2FuL3Bvc3Rjb2RlJyxcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNoZWNrVXJsOiAnaHR0cHM6Ly9ibGVldmUubmwvaHVpc3NjYW4nfSxcblx0e21hdGNoOiB7aG9zdG5hbWU6IC9ibGVldmVcXC5ubCQvLFx0XHRcdFx0XHRwYXRobmFtZTogL15cXC9yYWJvYmFua1xcLz8kL30sXHRcdFx0XHRzdGF0dXM6IDMwMixcdHVybDogJ2h0dHBzOi8vd3d3Mi5ibGVldmUubmwvcmFib2JhbmsnLFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2hlY2tVcmw6ICdodHRwczovL2JsZWV2ZS5ubC9yYWJvYmFuayd9LFxuXHR7bWF0Y2g6IHtob3N0bmFtZTogL2JsZWV2ZVxcLm5sJC8sXHRcdFx0XHRcdHBhdGhuYW1lOiAvXlxcL2h1aXNzY2FuXFwvMSQvfSxcdFx0XHRcdHN0YXR1czogMzAxLFx0dXJsOiAnaHR0cHM6Ly9ibGVldmUubmwvaHVpc3NjYW4vcG9zdGNvZGUnLFx0XHRcdFx0XHRcdFx0XHRcdGNoZWNrVXJsOiAnaHR0cHM6Ly9ibGVldmUubmwvaHVpc3NjYW4vMSd9LFxuXHR7bWF0Y2g6IHtob3N0bmFtZTogL3JlZ2lvbmFhbGVuZXJnaWVsb2tldFxcLm5sJC8sXHRwYXRobmFtZTogL15cXC9hbXN0ZWxsYW5kLW1lZXJsYW5kZW5cXC8/JC99LFx0c3RhdHVzOiAzMDEsXHR1cmw6ICdodHRwczovL3JlZ2lvbmFhbGVuZXJnaWVsb2tldC5ubC9hbXN0ZXJkYW0tYW1zdGVsbGFuZC1tZWVybGFuZGVuJyxcdGNoZWNrVXJsOiAnaHR0cHM6Ly9yZWdpb25hYWxlbmVyZ2llbG9rZXQubmwvYW1zdGVsbGFuZC1tZWVybGFuZGVuJ30sXG5dXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9jdXN0b21MaWIvYmxlZXZlUm91dGVzL2JsZWV2ZVJlZGlyZWN0cy50cyIsImV4cG9ydCBjb25zdCBmb3JjZSA9IDxUPihpbnB1dDogbnVsbHxUfHVuZGVmaW5lZCkgPT4ge1xuXG5cdGlmIChpbnB1dCA9PT0gbnVsbClcblxuXHRcdHRocm93IG5ldyBFcnJvcignYSBudWxsIHZhbHVlIHdhcyBwYXNzZWQgb24gdG8gdGhlIGZvcmNlIGZ1bmN0aW9uJylcblxuXHRpZiAoaW5wdXQgPT09IHVuZGVmaW5lZClcblxuXHRcdHRocm93IG5ldyBFcnJvcignYW4gdW5kZWZpbmVkIHZhbHVlIHdhcyBwYXNzZWQgb24gdG8gdGhlIGZvcmNlIGZ1bmN0aW9uJylcblxuXHRyZXR1cm4gaW5wdXRcblxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vY3VzdG9tTGliL2ZvcmNlL2ZvcmNlLnRzIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcImV4cHJlc3NcIlxuLy8gbW9kdWxlIGlkID0gZXhwcmVzc1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJleHByZXNzLWh0dHAtcHJveHlcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJleHByZXNzLWh0dHAtcHJveHlcIlxuLy8gbW9kdWxlIGlkID0gZXhwcmVzcy1odHRwLXByb3h5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImxvZGFzaFwiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcImxvZGFzaFwiXG4vLyBtb2R1bGUgaWQgPSBsb2Rhc2hcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibW9yZ2FuXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwibW9yZ2FuXCJcbi8vIG1vZHVsZSBpZCA9IG1vcmdhblxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJuZXdyZWxpY1wiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIm5ld3JlbGljXCJcbi8vIG1vZHVsZSBpZCA9IG5ld3JlbGljXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInByZXJlbmRlci1ub2RlXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwicHJlcmVuZGVyLW5vZGVcIlxuLy8gbW9kdWxlIGlkID0gcHJlcmVuZGVyLW5vZGVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVxdWVzdC1wcm9taXNlLW5hdGl2ZVwiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcInJlcXVlc3QtcHJvbWlzZS1uYXRpdmVcIlxuLy8gbW9kdWxlIGlkID0gcmVxdWVzdC1wcm9taXNlLW5hdGl2ZVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJ1cmxcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJ1cmxcIlxuLy8gbW9kdWxlIGlkID0gdXJsXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=
SourceMaps.getMapForGeneratedPath: Finding SourceMap for /Techs/projects/bleeve/frontend-router/app.js by URI: data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2svYm9vdHN0cmFwIDZlZWUyODg4OWVlYzE4MTNiZmRlIiwiL2FwcC50cyIsIi9hcHAvYmxlZXZlUm91dGVyLnRzIiwiL2FwcC9jdXN0b21SZWRpcmVjdGlvbnMudHMiLCIvYXBwL2RldGVybWluZUFuZFZhbGlkYXRlSG9zdC50cyIsIi9hcHAvcHJlcmVuZGVyLnRzIiwiL2FwcC9yZWdpb25hYWxlbmVyZ2llbG9rZXRSb3V0ZXIudHMiLCIvY29uZmlnL2VudlZhcmlhYmxlcy9lbnZWYXJpYWJsZXMudHMiLCIvY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9hbmd1bGFyUmVhY3RSb3V0ZXMudHMiLCIvY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9ibGVldmVSZWRpcmVjdHMudHMiLCIvY3VzdG9tTGliL2ZvcmNlL2ZvcmNlLnRzIiwiZXh0ZXJuYWwgXCJleHByZXNzXCIiLCJleHRlcm5hbCBcImV4cHJlc3MtaHR0cC1wcm94eVwiIiwiZXh0ZXJuYWwgXCJsb2Rhc2hcIiIsImV4dGVybmFsIFwibW9yZ2FuXCIiLCJleHRlcm5hbCBcIm5ld3JlbGljXCIiLCJleHRlcm5hbCBcInByZXJlbmRlci1ub2RlXCIiLCJleHRlcm5hbCBcInJlcXVlc3QtcHJvbWlzZS1uYXRpdmVcIiIsImV4dGVybmFsIFwidXJsXCIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtE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LEVBQUMsUUFBUSxFQUFFLGFBQWEsRUFBTSxRQUFRLEVBQUUsaUJBQWlCLEVBQUMsRUFBSyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxxQ0FBcUMsRUFBVSxRQUFRLEVBQUUsOEJBQThCLEVBQUM7SUFDakwsRUFBQyxLQUFLLEVBQUUsRUFBQyxRQUFRLEVBQUUsNEJBQTRCLEVBQUUsUUFBUSxFQUFFLDhCQUE4QixFQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsa0VBQWtFLEVBQUUsUUFBUSxFQUFFLHdEQUF3RCxFQUFDO0NBQ3JQOzs7Ozs7Ozs7OztBQ3pCWSxhQUFLLEdBQUcsQ0FBSSxLQUF1QixFQUFFLEVBQUU7SUFFbkQsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQztRQUVsQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDO0lBRXBFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7UUFFdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQztJQUUxRSxNQUFNLENBQUMsS0FBSztBQUViLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUNaRCxvQzs7Ozs7OztBQ0FBLCtDOzs7Ozs7O0FDQUEsbUM7Ozs7Ozs7QUNBQSxtQzs7Ozs7OztBQ0FBLHFDOzs7Ozs7O0FDQUEsMkM7Ozs7Ozs7QUNBQSxtRDs7Ozs7OztBQ0FBLGdDIiwiZmlsZSI6ImFwcC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIDZlZWUyODg4OWVlYzE4MTNiZmRlIiwiaW1wb3J0ICduZXdyZWxpYycgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbXBvcnQtc2lkZS1lZmZlY3RcblxucHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgZXJyID0+IHsgdGhyb3cgZXJyIH0pXG5cbmltcG9ydCAqIGFzIGV4cHJlc3MgZnJvbSAnZXhwcmVzcydcbmltcG9ydCB7XG4gIGdldCxcbiAgaW5jbHVkZXMsXG4gIG1hcCxcbn0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0ICogYXMgbW9yZ2FuIGZyb20gJ21vcmdhbidcbmltcG9ydCAqIGFzIHJlcXVlc3QgZnJvbSAncmVxdWVzdC1wcm9taXNlLW5hdGl2ZSdcbmltcG9ydCB7XG4gIGJsZWV2ZVJvdXRlcixcbiAgcm91dGVJc0JsZWV2ZSxcbn0gZnJvbSAnLi9hcHAvYmxlZXZlUm91dGVyJ1xuaW1wb3J0IHtjdXN0b21SZWRpcmVjdGlvbnN9IGZyb20gJy4vYXBwL2N1c3RvbVJlZGlyZWN0aW9ucydcbmltcG9ydCB7ZGV0ZXJtaW5lQW5kVmFsaWRhdGVIb3N0fSBmcm9tICcuL2FwcC9kZXRlcm1pbmVBbmRWYWxpZGF0ZUhvc3QnXG5pbXBvcnQge3ByZXJlbmRlcn0gZnJvbSAnLi9hcHAvcHJlcmVuZGVyJ1xuaW1wb3J0IHtcbiAgcmVnaW9uYWFsZW5lcmdpZWxva2V0Um91dGVyLFxuICByb3V0ZUlzUmVnaW9uYWFsZW5lcmdpZWxva2V0LFxufSBmcm9tICcuL2FwcC9yZWdpb25hYWxlbmVyZ2llbG9rZXRSb3V0ZXInXG5pbXBvcnQge2VudlZhcmlhYmxlc30gZnJvbSAnLi9jb25maWcvZW52VmFyaWFibGVzL2VudlZhcmlhYmxlcydcbmltcG9ydCB7XG4gIEJsZWV2ZVJlZGlyZWN0LFxuICBibGVldmVSZWRpcmVjdHMsXG59IGZyb20gJy4vY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9ibGVldmVSZWRpcmVjdHMnXG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKVxuXG5hcHBcblxuICAuZ2V0KCcvc3RhdHVzJywgKF9yZXEsIHJlcykgPT4gcmVzLnNlbmRTdGF0dXMoMjAwKSlcblxuICAudXNlKG1vcmdhbignY29tYmluZWQnKSlcblxuICAudXNlKChyZXEsIF9yZXMsIG5leHQpID0+IHtcbiAgICBjb25zb2xlLmxvZygnbGFtYmRhQGVkZ2UnLCByZXEuZ2V0KCdob3N0JyksIHJlcS5wYXRoLCBKU09OLnN0cmluZ2lmeShyZXEucmF3SGVhZGVycykpIC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8tY29uc29sZVxuICAgIG5leHQoKVxuICB9KVxuXG4gIC5kaXNhYmxlKCd4LXBvd2VyZWQtYnknKVxuXG4gIC51c2UoKF9yZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIHJlcy5zZXRIZWFkZXIoJ1gtUmVsZWFzZS1WZXJzaW9uJywgZW52VmFyaWFibGVzLlJFTEVBU0VfVkVSU0lPTilcbiAgICBuZXh0KClcbiAgfSlcblxuICAudXNlKGN1c3RvbVJlZGlyZWN0aW9ucylcblxuICAudXNlKGRldGVybWluZUFuZFZhbGlkYXRlSG9zdClcblxuICAudXNlKHByZXJlbmRlcilcblxuICAuZ2V0KCcqJywgcm91dGVJc0JsZWV2ZSwgYmxlZXZlUm91dGVyKVxuICAuZ2V0KCcqJywgcm91dGVJc1JlZ2lvbmFhbGVuZXJnaWVsb2tldCwgcmVnaW9uYWFsZW5lcmdpZWxva2V0Um91dGVyKVxuXG4gIC5saXN0ZW4oODA4MCwgKCkgPT4geyBjb25zb2xlLmxvZyhgJHsgZW52VmFyaWFibGVzLlJFUE9fSU5TVEFOQ0VfTkFNRSB9ICgkeyBlbnZWYXJpYWJsZXMuUkVMRUFTRV9WRVJTSU9OIH0pIGxpc3RlbmluZyBhdCA4MDgwYCkgfSkgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1jb25zb2xlXG5cbmNvbnN0IGNoZWNrM3h4UmVkaXJlY3QgPSBhc3luYyAoYmxlZXZlUmVkaXJlY3Q6IEJsZWV2ZVJlZGlyZWN0KSA9PiB7XG5cbiAgdHJ5IHtcblxuICAgIGNvbnN0IHtzdGF0dXNDb2RlfSA9IGF3YWl0IHJlcXVlc3Qoe1xuICAgICAgZm9sbG93UmVkaXJlY3Q6ICAgICAgICAgIGZhbHNlLFxuICAgICAgcmVzb2x2ZVdpdGhGdWxsUmVzcG9uc2U6IHRydWUsXG4gICAgICB1cmk6ICAgICAgICAgICAgICAgICAgICAgYmxlZXZlUmVkaXJlY3QuY2hlY2tVcmwsXG4gICAgfSlcblxuICAgIGlmIChzdGF0dXNDb2RlID09PSAyMDApXG5cbiAgICAgIHJldHVybiBgcmVkaXJlY3QgZ2F2ZSBiYWNrIDIwMCAod2hpbGUgaXQgc2hvdWxkbid0KTogJHsgbG9nQmxlZXZlUmVkaXJlY3QoYmxlZXZlUmVkaXJlY3QpIH1gXG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQ6ICE9PSAyMDAnKVxuXG4gIH1cblxuICBjYXRjaCAoe3Jlc3BvbnNlOiB7aGVhZGVyczoge2xvY2F0aW9ufSwgc3RhdHVzQ29kZX19KSB7XG4gIC8vIGNhdGNoIChlcnIpIHtcblxuICAgIC8vIGNvbnN0IHtyZXNwb25zZToge2hlYWRlcnM6IHtsb2NhdGlvbn0sIHN0YXR1c0NvZGV9fSA9IGVyclxuXG4gICAgLy8gY29uc29sZS5sb2coZXJyLnJlc3BvbnNlKVxuXG4gICAgaWYgKHN0YXR1c0NvZGUgIT09IGJsZWV2ZVJlZGlyZWN0LnN0YXR1cylcblxuICAgICAgcmV0dXJuIGB1bmV4cGVjdGVkIHN0YXR1cyBjb2RlICR7IHN0YXR1c0NvZGUgfTogJHsgbG9nQmxlZXZlUmVkaXJlY3QoYmxlZXZlUmVkaXJlY3QpIH1gXG5cbiAgICBpZiAobG9jYXRpb24gIT09IGJsZWV2ZVJlZGlyZWN0LnVybClcblxuICAgICAgcmV0dXJuIGBsb2NhdGlvbiBoZWFkZXIgKCR7IGxvY2F0aW9uIH0pIG5vdCB0aGUgZXhwZWN0ZWQgdXJsICgkeyBibGVldmVSZWRpcmVjdC51cmwgfSlgXG5cbiAgfVxuXG4gIHRyeSB7XG5cbiAgICAvKiBjb25zdCByZXNwb25zZSA9ICAqL2F3YWl0IHJlcXVlc3Qoe1xuICAgICAgbWF4UmVkaXJlY3RzOiAgICAgICAgICAgIDEsXG4gICAgICByZXNvbHZlV2l0aEZ1bGxSZXNwb25zZTogdHJ1ZSxcbiAgICAgIHVyaTogICAgICAgICAgICAgICAgICAgICBibGVldmVSZWRpcmVjdC5jaGVja1VybCxcbiAgICB9KVxuXG4gICAgLy8gY29uc29sZS5sb2cocmVzcG9uc2UpXG4gICAgLy8gY29uc29sZS5sb2cob21pdChyZXNwb25zZSwgWydib2R5JywgJ3JlcScsICdyZXF1ZXN0J10pKVxuXG4gICAgLy8gaWYgKHJlc3BvbnNlLlVSTCAhPT0gYmxlZXZlUmVkaXJlY3QudXJsKVxuXG4gICAgICAvLyByZXR1cm4gYHJlZGlyZWN0IGRpZG4ndCBnYXZlIGJhY2sgdGhlIHJpZ2h0IHVybCAoJHsgcmVzcG9uc2UuVVJMIH0pOiAkeyBsb2dCbGVldmVSZWRpcmVjdChibGVldmVSZWRpcmVjdCkgfWBcblxuICB9XG5cbiAgY2F0Y2ggKGVycikge1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGdldDxzdHJpbmc+KGVyci5lcnJvciwgJ21lc3NhZ2UnKVxuXG4gICAgaWYgKGluY2x1ZGVzKG1lc3NhZ2UsICdtYXhSZWRpcmVjdHMnKSlcblxuICAgICAgcmV0dXJuIGB0b28gbWFueSByZWRpcmVjdHM6ICR7IGxvZ0JsZWV2ZVJlZGlyZWN0KGJsZWV2ZVJlZGlyZWN0KSB9YFxuXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IGdldDxudW1iZXI+KGVyci5yZXNwb25zZSwgJ3N0YXR1c0NvZGUnKVxuXG4gICAgaWYgKHN0YXR1c0NvZGUgIT09IDIwMClcblxuICAgICAgcmV0dXJuIGByZWRpcmVjdCBkaWRuJ3QgZ2F2ZSBiYWNrIDIwMCAod2hpbGUgaXQgc2hvdWxkKS4gaXQgd2FzICR7IHN0YXR1c0NvZGUgfTogJHsgbG9nQmxlZXZlUmVkaXJlY3QoYmxlZXZlUmVkaXJlY3QpIH1gXG5cbiAgfVxuXG4gIHJldHVybiBudWxsXG5cbn1cblxuY29uc3QgY2hlY2tCbGVldmVSZWRpcmVjdCA9IGFzeW5jIChibGVldmVSZWRpcmVjdDogQmxlZXZlUmVkaXJlY3QpID0+IHtcblxuICBzd2l0Y2ggKGJsZWV2ZVJlZGlyZWN0LnN0YXR1cykge1xuICAgIGNhc2UgMzAxOlxuICAgIGNhc2UgMzAyOlxuICAgIGNhc2UgMzA3OlxuICAgICAgcmV0dXJuIGNoZWNrM3h4UmVkaXJlY3QoYmxlZXZlUmVkaXJlY3QpXG4gIH1cblxufVxuXG5jb25zdCBsb2dCbGVldmVSZWRpcmVjdCA9ICh7Y2hlY2tVcmwsIHN0YXR1cywgdXJsfTogQmxlZXZlUmVkaXJlY3QpID0+XG4gIGAkeyBjaGVja1VybCB9ID0+ICR7IHN0YXR1cyB9ID0+ICR7IHVybCB9YFxuXG5jb25zdCBlcnJvclByb21pc2VzID0gbWFwKGJsZWV2ZVJlZGlyZWN0cywgY2hlY2tCbGVldmVSZWRpcmVjdCk7XG5cbihhc3luYyAoKSA9PiB7XG5cbiAgY29uc3QgZXJyb3JzID0gYXdhaXQgUHJvbWlzZS5hbGwoZXJyb3JQcm9taXNlcylcblxuICAvLyBjb25zb2xlLmxvZyhgXFxuJHsgZXJyb3JzLmpvaW4oJ1xcbicpIH1cXG5gKVxuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShlcnJvcnMsIG51bGwsICdcXHQnKSlcbiAgLy8gY29uc29sZS5sb2coZXJyb3JzKVxuXG59KSgpXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hcHAudHMiLCJpbXBvcnQge1xuICBOZXh0RnVuY3Rpb24sXG4gIFJlcXVlc3QsXG4gIFJlc3BvbnNlLFxuICBSb3V0ZXIsXG4gIFJvdXRlciBhcyBSb3V0ZXJJbnRlcmZhY2UsXG59IGZyb20gJ2V4cHJlc3MnXG5pbXBvcnQgKiBhcyBwcm94eSBmcm9tICdleHByZXNzLWh0dHAtcHJveHknXG5pbXBvcnQge3JlZHVjZX0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHtlbnZWYXJpYWJsZXN9IGZyb20gJy4uL2NvbmZpZy9lbnZWYXJpYWJsZXMvZW52VmFyaWFibGVzJ1xuaW1wb3J0IHtcbiAgQW5ndWxhclJlYWN0Um91dGUsXG4gIGFuZ3VsYXJSZWFjdFJvdXRlcyxcbn0gZnJvbSAnLi4vY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9hbmd1bGFyUmVhY3RSb3V0ZXMnXG5cbmNvbnN0IGFuZ3VsYXJQcm94eSA9IHByb3h5KGVudlZhcmlhYmxlcy5BTkdVTEFSX0lOREVYX1VSTCwge1xuICBwcm94eVJlcVBhdGhSZXNvbHZlcjogcmVxID0+IHtcbiAgICBjb25zb2xlLmxvZyhgZm9yd2FyZGluZyB0byAvIG9mIGFuZ3VsYXI6ICR7IHJlcS5vcmlnaW5hbFVybCB9YCkgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1jb25zb2xlXG4gICAgcmV0dXJuICcvJ1xuICB9LFxufSlcblxuY29uc3QgcmVhY3RQcm94eSA9IHByb3h5KGVudlZhcmlhYmxlcy5SRUFDVF9JTkRFWF9VUkwsIHtcbiAgcHJveHlSZXFQYXRoUmVzb2x2ZXI6IHJlcSA9PiB7XG4gICAgY29uc29sZS5sb2coYGZvcndhcmRpbmcgdG8gLyBvZiByZWFjdDogJHsgcmVxLm9yaWdpbmFsVXJsIH1gKSAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWNvbnNvbGVcbiAgICByZXR1cm4gJy8nXG4gIH0sXG59KVxuXG5leHBvcnQgY29uc3QgYmxlZXZlUm91dGVyID0gcmVkdWNlKFxuICBhbmd1bGFyUmVhY3RSb3V0ZXMsXG4gIChyb3V0ZXI6IFJvdXRlckludGVyZmFjZSwgYW5ndWxhclJlYWN0Um91dGU6IEFuZ3VsYXJSZWFjdFJvdXRlKSA9PiB7XG4gICAgc3dpdGNoIChhbmd1bGFyUmVhY3RSb3V0ZS50eXBlKSB7XG4gICAgICBjYXNlICdhbmd1bGFyJzpcbiAgICAgICAgcmV0dXJuIHJvdXRlci5nZXQoYW5ndWxhclJlYWN0Um91dGUucm91dGUsIGFuZ3VsYXJQcm94eSlcbiAgICAgIGNhc2UgJ3JlYWN0JzpcbiAgICAgICAgcmV0dXJuIHJvdXRlci5nZXQoYW5ndWxhclJlYWN0Um91dGUucm91dGUsIHJlYWN0UHJveHkpXG4gICAgfVxuICB9LFxuICBSb3V0ZXIoKSxcbilcblxuICAvLyAuZ2V0KC9eXFwvP1thLXpBLVowLTlfXStcXC9hc3NldHNcXC8vLCBwcm94eShlbnZWYXJpYWJsZXMuUkVBQ1RfSU5ERVhfVVJMKSlcblxuICAuZ2V0KCcqJywgYW5ndWxhclByb3h5KVxuXG5leHBvcnQgY29uc3Qgcm91dGVJc0JsZWV2ZSA9IChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pID0+IHtcbiAgaWYgKHJlcy5sb2NhbHMuaXNCbGVldmUpXG4gICAgbmV4dCgpXG4gIGVsc2VcbiAgICAgIG5leHQoJ3JvdXRlJylcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2FwcC9ibGVldmVSb3V0ZXIudHMiLCJpbXBvcnQge1xuICBOZXh0RnVuY3Rpb24sXG4gIFJlcXVlc3QsXG4gIFJlc3BvbnNlLFxufSBmcm9tICdleHByZXNzJ1xuaW1wb3J0IHtmaW5kfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQge3BhcnNlfSBmcm9tICd1cmwnXG5pbXBvcnQge2JsZWV2ZVJlZGlyZWN0c30gZnJvbSAnLi4vY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9ibGVldmVSZWRpcmVjdHMnXG5pbXBvcnQge2ZvcmNlfSBmcm9tICcuLi9jdXN0b21MaWIvZm9yY2UvZm9yY2UnXG5cbmV4cG9ydCBjb25zdCBjdXN0b21SZWRpcmVjdGlvbnMgPSAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pID0+IHtcblxuICBjb25zdCBob3N0ID0gZm9yY2UocmVxLmdldCgnaG9zdCcpKVxuICBjb25zdCB7cGF0aG5hbWV9ID0gcGFyc2UocmVxLm9yaWdpbmFsVXJsKVxuXG4gIGNvbnN0IGJsZWV2ZVJlZGlyZWN0ID0gZmluZChibGVldmVSZWRpcmVjdHMsIGIgPT4ge1xuXG4gICAgaWYgKGIubWF0Y2guaG9zdG5hbWUgJiYgIWIubWF0Y2guaG9zdG5hbWUudGVzdChob3N0KSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIGlmIChiLm1hdGNoLnBhdGhuYW1lICYmICFiLm1hdGNoLnBhdGhuYW1lLnRlc3QocGF0aG5hbWUgfHwgJycpKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgaWYgKGIubWF0Y2gucHJvdG9jb2wgJiYgYi5tYXRjaC5wcm90b2NvbCAhPT0gcmVxLnByb3RvY29sKVxuICAgICAgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gdHJ1ZVxuXG4gIH0pXG5cbiAgaWYgKGJsZWV2ZVJlZGlyZWN0KSAvKiB7XG5cbiAgICBjb25zb2xlLmxvZyhob3N0LCBwYXRobmFtZSwgJ3JlZGlyZWN0ZWQnKSAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWNvbnNvbGUgKi9cblxuICAgIHJlcy5yZWRpcmVjdChibGVldmVSZWRpcmVjdC5zdGF0dXMsIGJsZWV2ZVJlZGlyZWN0LnVybClcblxuICAvLyB9XG5cbiAgZWxzZSAvKiB7XG5cbiAgICBjb25zb2xlLmxvZyhob3N0LCBwYXRobmFtZSwgJ25vdCByZWRpcmVjdGVkJykgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1jb25zb2xlICovXG5cbiAgICBuZXh0KClcblxuICAvLyB9XG5cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2FwcC9jdXN0b21SZWRpcmVjdGlvbnMudHMiLCJpbXBvcnQge1xuICBOZXh0RnVuY3Rpb24sXG4gIFJlcXVlc3QsXG4gIFJlc3BvbnNlLFxufSBmcm9tICdleHByZXNzJ1xuaW1wb3J0IHtmb3JjZX0gZnJvbSAnLi4vY3VzdG9tTGliL2ZvcmNlL2ZvcmNlJ1xuXG5leHBvcnQgY29uc3QgZGV0ZXJtaW5lQW5kVmFsaWRhdGVIb3N0ID0gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gIGNvbnN0IGhvc3QgPSBmb3JjZShyZXEuZ2V0KCdob3N0JykpXG4gIGlmICgvYmxlZXZlXFwubmwvLnRlc3QoaG9zdCkpIHtcbiAgICByZXMubG9jYWxzLmlzQmxlZXZlID0gdHJ1ZVxuICAgIG5leHQoKVxuICB9XG4gIGVsc2UgaWYgKC9yZWdpb25hYWxlbmVyZ2llbG9rZXRcXC5ubC8udGVzdChob3N0KSkge1xuICAgIHJlcy5sb2NhbHMuaXNSZWdpb25hYWxlbmVyZ2llbG9rZXQgPSB0cnVlXG4gICAgbmV4dCgpXG4gIH1cbiAgZWxzZVxuICAgIHJlcy5zdGF0dXMoNDA0KS5zZW5kKGBob3N0ICgkeyBob3N0IH0pIG5vdCBrbm93bmApXG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hcHAvZGV0ZXJtaW5lQW5kVmFsaWRhdGVIb3N0LnRzIiwiaW1wb3J0IHtcbiAgTmV4dEZ1bmN0aW9uLFxuICBSZXF1ZXN0LFxuICBSZXNwb25zZSxcbn0gZnJvbSAnZXhwcmVzcydcbmltcG9ydCAqIGFzIHByZXJlbmRlck5vZGUgZnJvbSAncHJlcmVuZGVyLW5vZGUnXG5pbXBvcnQge2VudlZhcmlhYmxlc30gZnJvbSAnLi4vY29uZmlnL2VudlZhcmlhYmxlcy9lbnZWYXJpYWJsZXMnXG5cbmNvbnN0IHByZXJlbmRlck1pZGRsZXdhcmUgPSBwcmVyZW5kZXJOb2RlLnNldCgncHJvdG9jb2wnLCAnaHR0cHMnKVxuXG5leHBvcnQgY29uc3QgcHJlcmVuZGVyID0gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gIGNvbnN0IGtleSA9IHJlcy5sb2NhbHMuaXNCbGVldmUgPyBlbnZWYXJpYWJsZXMuUFJFUkVOREVSX0JMRUVWRV9LRVkgOiBlbnZWYXJpYWJsZXMuUFJFUkVOREVSX1JFR0lPTkFBTEVORVJHSUVMT0tFVF9LRVlcbiAgcmV0dXJuIHByZXJlbmRlck1pZGRsZXdhcmUuc2V0KCdwcmVyZW5kZXJUb2tlbicsIGtleSkocmVxLCByZXMsIG5leHQpXG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hcHAvcHJlcmVuZGVyLnRzIiwiaW1wb3J0IHtcbiAgTmV4dEZ1bmN0aW9uLFxuICBSZXF1ZXN0LFxuICBSZXNwb25zZSxcbiAgUm91dGVyLFxufSBmcm9tICdleHByZXNzJ1xuaW1wb3J0ICogYXMgcHJveHkgZnJvbSAnZXhwcmVzcy1odHRwLXByb3h5J1xuaW1wb3J0IHtlbnZWYXJpYWJsZXN9IGZyb20gJy4uL2NvbmZpZy9lbnZWYXJpYWJsZXMvZW52VmFyaWFibGVzJ1xuXG5leHBvcnQgY29uc3QgcmVnaW9uYWFsZW5lcmdpZWxva2V0Um91dGVyID0gUm91dGVyKClcbiAgLy8gLmdldCgvXlxcLz9bYS16QS1aMC05X10rXFwvYXNzZXRzXFwvLywgcHJveHkoZW52VmFyaWFibGVzLlJFR0lPTkFBTEVORVJHSUVMT0tFVF9JTkRFWF9VUkwpKVxuICAuZ2V0KCcqJywgcHJveHkoZW52VmFyaWFibGVzLlJFR0lPTkFBTEVORVJHSUVMT0tFVF9JTkRFWF9VUkwsIHtcbiAgICBwcm94eVJlcVBhdGhSZXNvbHZlcjogKCkgPT4gJy8nLFxuICB9KSlcblxuZXhwb3J0IGNvbnN0IHJvdXRlSXNSZWdpb25hYWxlbmVyZ2llbG9rZXQgPSAoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gIGlmIChyZXMubG9jYWxzLmlzUmVnaW9uYWFsZW5lcmdpZWxva2V0KVxuICAgIG5leHQoKVxuICBlbHNlXG4gICAgICBuZXh0KCdyb3V0ZScpXG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hcHAvcmVnaW9uYWFsZW5lcmdpZWxva2V0Um91dGVyLnRzIiwiaW1wb3J0IHtFbnZWYXJpYWJsZXN9IGZyb20gJy4vRW52VmFyaWFibGVzSW50ZXJmYWNlJ1xuXG5leHBvcnQgY29uc3QgZW52VmFyaWFibGVzOiBFbnZWYXJpYWJsZXMgPSB7XG4gIEFOR1VMQVJfSU5ERVhfVVJMOiAnaHR0cDovL3FhLWJsZWV2ZS1ubC0tRUxCLTc4NjUyNDcxLmV1LXdlc3QtMS5lbGIuYW1hem9uYXdzLmNvbScsXG4gIEFTU0VUU19TVUJESVI6ICcnLFxuICBBV1NfQUNDRVNTX0tFWV9JRDogJ0FLSUFJN0VLSlo2UFRYM0hHTE1BJyxcbiAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiAncTlHWE1scnZnOWpuUUNXck1OTUcvc2o3eGlvd29PNWNMREFTd3VPTCcsXG4gIERPQ0tFUl9JTUFHRV9OQU1FOiAnYmxlZXZlL2Zyb250ZW5kLXJvdXRlcicsXG4gIERPQ0tFUl9SRVBPX1VSTDogJzI0Mzg2NTMyMjE5Ny5ka3IuZWNyLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tJyxcbiAgRU5WSVJPTk1FTlQ6ICdsb2NhbGhvc3QnLFxuICBORVdfUkVMSUNfQVBQX05BTUU6IG51bGwsXG4gIE5FV19SRUxJQ19FTkFCTEVEOiBmYWxzZSxcbiAgTkVXX1JFTElDX0xJQ0VOU0VfS0VZOiAnNDYwODg0OGFlNGEwODk2NmQyYWM3YjFlYjZmYWYyMjJjMjY3OTk0YycsXG4gIE5PREVfRU5WOiBudWxsLFxuICBQT1JUX1BSRUZJWDogbnVsbCxcbiAgUFJFUkVOREVSX0JMRUVWRV9LRVk6ICdwNUNtcWM3b2UxTEtEblcxNGJ6YycsXG4gIFBSRVJFTkRFUl9SRUdJT05BQUxFTkVSR0lFTE9LRVRfS0VZOiAndUVpOHlWMG5LMXVPRUhRU1NPbTEnLFxuICBSRUFDVF9JTkRFWF9VUkw6ICdodHRwOi8vbmwuYmxlZXZlLnFhLnMzLXdlYnNpdGUtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20nLFxuICBSRUdJT05BQUxFTkVSR0lFTE9LRVRfSU5ERVhfVVJMOiAnaHR0cDovL25sLnJlZ2lvbmFhbGVuZXJnaWVsb2tldC5xYS5zMy13ZWJzaXRlLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tJyxcbiAgUkVMRUFTRV9WRVJTSU9OOiAnbG9jYWxob3N0JyxcbiAgUkVQT19JTlNUQU5DRV9OQU1FOiBudWxsLFxuICBSRVBPX05BTUU6ICdmcm9udGVuZC1yb3V0ZXInLFxuICBSRVBPX1RZUEU6ICdtaWNyb3NlcnZpY2UnLFxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vY29uZmlnL2VudlZhcmlhYmxlcy9lbnZWYXJpYWJsZXMudHMiLCJleHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJSZWFjdFJvdXRlIHtcblx0cmVhZG9ubHkgcm91dGU6IFJlZ0V4cCxcblx0cmVhZG9ubHkgdHlwZTpcdCdhbmd1bGFyJyB8ICdyZWFjdCcsXG59XG5cbmV4cG9ydCBjb25zdCBhbmd1bGFyUmVhY3RSb3V0ZXM6IEFuZ3VsYXJSZWFjdFJvdXRlW10gPSBbXG5cdHtyb3V0ZTogL15cXC8kLyxcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvYmVkcmlqdmVuXFwvLyxcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcLz8kLyxcdFx0XHRcdFx0XHRcdHR5cGU6ICdhbmd1bGFyJ30sXG5cdHtyb3V0ZTogL15cXC9lbmVyZ2llLWJlc3BhcmVuXFwvZGFraXNvbGF0aWVcXC8/JC8sXHRcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcL2dldmVsaXNvbGF0aWVcXC8/JC8sXHRcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL2VuZXJnaWUtYmVzcGFyZW5cXC9pbmZyYXJvb2RwYW5lbGVuXFwvPyQvLFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcL2lzb2xhdGllZ2xhc1xcLz8kLyxcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcL2lzb2xlcmVuZGdsYXNcXC8/JC8sXHRcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL2VuZXJnaWUtYmVzcGFyZW5cXC9zcG91d211dXJpc29sYXRpZVxcLz8kLyxcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL2VuZXJnaWUtYmVzcGFyZW5cXC92ZW50aWxhdGlld2FybXRlcG9tcFxcLz8kLyxcdHR5cGU6ICdhbmd1bGFyJ30sXG5cdHtyb3V0ZTogL15cXC9lbmVyZ2llLWJlc3BhcmVuXFwvdmxvZXJpc29sYXRpZVxcLz8kLyxcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcL3dhcm10ZXBvbXBcXC8/JC8sXHRcdFx0XHR0eXBlOiAnYW5ndWxhcid9LFxuXHR7cm91dGU6IC9eXFwvZW5lcmdpZS1iZXNwYXJlblxcL3pvbm5lYm9pbGVyXFwvPyQvLFx0XHRcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL2VuZXJnaWUtYmVzcGFyZW5cXC96b25uZXBhbmVsZW5cXC8/JC8sXHRcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL2dhcmFudGllXFwvPyQvLFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdyZWFjdCd9LFxuXHR7cm91dGU6IC9eXFwvaHVpc3NjYW5cXC8vLFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdhbmd1bGFyJ30sXG5cdHtyb3V0ZTogL15cXC9uaWV0LWdldm9uZGVuXFwvPyQvLFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAncmVhY3QnfSxcblx0e3JvdXRlOiAvXlxcL29mZmVydGVcXC8/JC8sXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ2FuZ3VsYXInfSxcblx0e3JvdXRlOiAvXlxcL292ZXItb25zXFwvPyQvLFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdyZWFjdCd9LFxuXHR7cm91dGU6IC9eXFwvcHJpdmFjeVxcLz8kLyxcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAncmVhY3QnfSxcblx0e3JvdXRlOiAvXlxcL3Jlc3BvbnNpYmxlLWRpc2Nsb3N1cmVcXC8/JC8sXHRcdFx0XHRcdHR5cGU6ICdyZWFjdCd9LFxuXHR7cm91dGU6IC9eXFwvdm9vci1iZWRyaWp2ZW5cXC8/JC8sXHRcdFx0XHRcdFx0XHR0eXBlOiAncmVhY3QnfSxcblx0e3JvdXRlOiAvXlxcL3dhYXJvbS1ibGVldmVcXC8/JC8sXHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdyZWFjdCd9LFxuXVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vY3VzdG9tTGliL2JsZWV2ZVJvdXRlcy9hbmd1bGFyUmVhY3RSb3V0ZXMudHMiLCJleHBvcnQgaW50ZXJmYWNlIEJsZWV2ZVJlZGlyZWN0IHtcblx0cmVhZG9ubHkgY2hlY2tVcmw6XHRzdHJpbmcsXG5cdHJlYWRvbmx5IG1hdGNoOlx0XHRNYXRjaCxcblx0cmVhZG9ubHkgc3RhdHVzOlx0U3RhdHVzLFxuXHRyZWFkb25seSB1cmw6XHRcdHN0cmluZyxcbn1cblxuLy8gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS91cmwuaHRtbCN1cmxfdXJsX3N0cmluZ3NfYW5kX3VybF9vYmplY3RzXG5pbnRlcmZhY2UgTWF0Y2gge1xuXHRyZWFkb25seSBob3N0bmFtZT86XHRSZWdFeHAsXG5cdHJlYWRvbmx5IHBhdGhuYW1lPzpcdFJlZ0V4cCxcblx0cmVhZG9ubHkgcHJvdG9jb2w/Olx0J2h0dHAnIHwgJ2h0dHBzJyxcbn1cblxuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGlzdF9vZl9IVFRQX3N0YXR1c19jb2Rlc1xudHlwZSBTdGF0dXMgPVxuMzAxIHxcdC8vIFBlcm1hbmVudCBSZWRpcmVjdFxuMzAyIHxcdC8vIFRlbXBvcmFyeSBSZWRpcmVjdCAoVEVNUDogb25seSBvcHRpb24gZm9yIENsb3VkRmxhcmUsIG1ha2UgMzA3IGxhdGVyKVxuMzA3XHRcdC8vIFRlbXBvcmFyeSBSZWRpcmVjdFxuXG5leHBvcnQgY29uc3QgYmxlZXZlUmVkaXJlY3RzOiBCbGVldmVSZWRpcmVjdFtdID0gW1xuXHR7bWF0Y2g6IHtob3N0bmFtZTogL2JsZWV2ZVxcLm5sJC8sXHRcdFx0XHRcdHBhdGhuYW1lOiAvXlxcL2h1aXNzY2FuXFwvPyQvfSxcdFx0XHRcdHN0YXR1czogMzAxLFx0dXJsOiAnL2h1aXNzY2FuL3Bvc3Rjb2RlJyxcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNoZWNrVXJsOiAnaHR0cHM6Ly9ibGVldmUubmwvaHVpc3NjYW4nfSxcblx0e21hdGNoOiB7aG9zdG5hbWU6IC9ibGVldmVcXC5ubCQvLFx0XHRcdFx0XHRwYXRobmFtZTogL15cXC9yYWJvYmFua1xcLz8kL30sXHRcdFx0XHRzdGF0dXM6IDMwMixcdHVybDogJ2h0dHBzOi8vd3d3Mi5ibGVldmUubmwvcmFib2JhbmsnLFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2hlY2tVcmw6ICdodHRwczovL2JsZWV2ZS5ubC9yYWJvYmFuayd9LFxuXHR7bWF0Y2g6IHtob3N0bmFtZTogL2JsZWV2ZVxcLm5sJC8sXHRcdFx0XHRcdHBhdGhuYW1lOiAvXlxcL2h1aXNzY2FuXFwvMSQvfSxcdFx0XHRcdHN0YXR1czogMzAxLFx0dXJsOiAnaHR0cHM6Ly9ibGVldmUubmwvaHVpc3NjYW4vcG9zdGNvZGUnLFx0XHRcdFx0XHRcdFx0XHRcdGNoZWNrVXJsOiAnaHR0cHM6Ly9ibGVldmUubmwvaHVpc3NjYW4vMSd9LFxuXHR7bWF0Y2g6IHtob3N0bmFtZTogL3JlZ2lvbmFhbGVuZXJnaWVsb2tldFxcLm5sJC8sXHRwYXRobmFtZTogL15cXC9hbXN0ZWxsYW5kLW1lZXJsYW5kZW5cXC8/JC99LFx0c3RhdHVzOiAzMDEsXHR1cmw6ICdodHRwczovL3JlZ2lvbmFhbGVuZXJnaWVsb2tldC5ubC9hbXN0ZXJkYW0tYW1zdGVsbGFuZC1tZWVybGFuZGVuJyxcdGNoZWNrVXJsOiAnaHR0cHM6Ly9yZWdpb25hYWxlbmVyZ2llbG9rZXQubmwvYW1zdGVsbGFuZC1tZWVybGFuZGVuJ30sXG5dXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9jdXN0b21MaWIvYmxlZXZlUm91dGVzL2JsZWV2ZVJlZGlyZWN0cy50cyIsImV4cG9ydCBjb25zdCBmb3JjZSA9IDxUPihpbnB1dDogbnVsbHxUfHVuZGVmaW5lZCkgPT4ge1xuXG5cdGlmIChpbnB1dCA9PT0gbnVsbClcblxuXHRcdHRocm93IG5ldyBFcnJvcignYSBudWxsIHZhbHVlIHdhcyBwYXNzZWQgb24gdG8gdGhlIGZvcmNlIGZ1bmN0aW9uJylcblxuXHRpZiAoaW5wdXQgPT09IHVuZGVmaW5lZClcblxuXHRcdHRocm93IG5ldyBFcnJvcignYW4gdW5kZWZpbmVkIHZhbHVlIHdhcyBwYXNzZWQgb24gdG8gdGhlIGZvcmNlIGZ1bmN0aW9uJylcblxuXHRyZXR1cm4gaW5wdXRcblxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vY3VzdG9tTGliL2ZvcmNlL2ZvcmNlLnRzIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcImV4cHJlc3NcIlxuLy8gbW9kdWxlIGlkID0gZXhwcmVzc1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJleHByZXNzLWh0dHAtcHJveHlcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJleHByZXNzLWh0dHAtcHJveHlcIlxuLy8gbW9kdWxlIGlkID0gZXhwcmVzcy1odHRwLXByb3h5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImxvZGFzaFwiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcImxvZGFzaFwiXG4vLyBtb2R1bGUgaWQgPSBsb2Rhc2hcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibW9yZ2FuXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwibW9yZ2FuXCJcbi8vIG1vZHVsZSBpZCA9IG1vcmdhblxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJuZXdyZWxpY1wiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIm5ld3JlbGljXCJcbi8vIG1vZHVsZSBpZCA9IG5ld3JlbGljXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInByZXJlbmRlci1ub2RlXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwicHJlcmVuZGVyLW5vZGVcIlxuLy8gbW9kdWxlIGlkID0gcHJlcmVuZGVyLW5vZGVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVxdWVzdC1wcm9taXNlLW5hdGl2ZVwiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcInJlcXVlc3QtcHJvbWlzZS1uYXRpdmVcIlxuLy8gbW9kdWxlIGlkID0gcmVxdWVzdC1wcm9taXNlLW5hdGl2ZVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJ1cmxcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJ1cmxcIlxuLy8gbW9kdWxlIGlkID0gdXJsXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=
SourceMaps.getMapForGeneratedPath: Using inlined sourcemap in /Techs/projects/bleeve/frontend-router/app.js
SourceMap: creating for /Techs/projects/bleeve/frontend-router/app.js
SourceMap: sourceRoot:
SourceMap: sources: ["webpack/bootstrap 6eee28889eec1813bfde","/app.ts","/app/bleeveRouter.ts","/app/customRedirections.ts","/app/determineAndValidateHost.ts","/app/prerender.ts","/app/regionaalenergieloketRouter.ts","/config/envVariables/envVariables.ts","/customLib/bleeveRoutes/angularReactRoutes.ts","/customLib/bleeveRoutes/bleeveRedirects.ts","/customLib/force/force.ts","external \"express\"","external \"express-http-proxy\"","external \"lodash\"","external \"morgan\"","external \"newrelic\"","external \"prerender-node\"","external \"request-promise-native\"","external \"url\""]
SourceMap: no sourceRoot specified, using script dirname: /Techs/projects/bleeve/frontend-router
To client: {"seq":0,"type":"response","request_seq":2,"command":"launch","success":false,"message":"Cannot launch program '{path}'; setting the 'outDir or outFiles' attribute might help.","body":{"error":{"id":2003,"format":"Cannot launch program '{path}'; setting the 'outDir or outFiles' attribute might help.","variables":{"path":"/Techs/projects/bleeve/frontend-router/app.ts"}}}}
From client: disconnect({"restart":false})
Terminated: Got disconnect request
To client: {"seq":0,"type":"event","event":"output","body":{"category":"telemetry","output":"debugStopped","data":{"reason":"Got disconnect request"}}}
To client: {"seq":0,"type":"response","request_seq":3,"command":"disconnect","success":true}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment