diff --git a/CHANGELOG.md b/CHANGELOG.md index 94177e2..5acfb85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,14 @@ See this project's [releases](/../../../releases). ## [Unreleased] +### Fixed + +- Inline Code right spacing bug fixed + +### Added + +- Compatibility with slides core plugin + ## [1.1.1] - 2023-11-27 ### Fixed diff --git a/main.js b/main.js index 79619c2..31ece10 100644 --- a/main.js +++ b/main.js @@ -18444,8 +18444,9 @@ async function readingViewCodeblockDecoratingPostProcessor(element3, { sourcePat if (!sourcePath || !element3 || ((_a2 = frontmatter != null ? frontmatter : cache == null ? void 0 : cache.frontmatter) == null ? void 0 : _a2["code-styler-ignore"]) === true) return; editingEmbeds = editingEmbeds || Boolean(element3.matchParent(".cm-embed-block")); + console.log(element3); const specific = !element3.querySelector(".view-content > *"); - const printing = Boolean(element3.querySelector("div.print > *")); + const printing = Boolean(element3.querySelector("div.print > *")) || Boolean(element3.querySelector("div.slides > *")); if (printing && !plugin.settings.decoratePrint) return; const codeblockPreElements = await getCodeblockPreElements(element3, specific, editingEmbeds); @@ -18827,4 +18828,4 @@ var CodeStylerPlugin = class extends import_obsidian7.Plugin { @simonwep/pickr/dist/pickr.min.js: (*! Pickr 1.9.0 MIT | https://github.com/Simonwep/pickr *) */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ib290c3RyYXAiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3V0aWxzL3V0aWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdXRpbHMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy91dGlscy9oc3ZhY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy9saWJzL21vdmVhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvbGlicy9zZWxlY3RhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdGVtcGxhdGUuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3NyYy9pbmRleC50cyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3BpY2tyLmpzIiwgIm5vZGVfbW9kdWxlcy9qc29uNS9kaXN0L2luZGV4LmpzIiwgInNyYy9tYWluLnRzIiwgInNyYy9TZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3NUYWIudHMiLCAibm9kZV9tb2R1bGVzL2NvbG9ydHJhbnNsYXRvci9lc20vaW5kZXguanMiLCAic3JjL0FwcGx5U3R5bGluZy50cyIsICJzcmMvRWRpdGluZ1ZpZXcudHMiLCAic3JjL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZy50cyIsICJzcmMvRXh0ZXJuYWwvRXhlY3V0ZUNvZGUvQ29kZUJsb2NrQXJncy50cyIsICJzcmMvUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZy50cyIsICJzcmMvQ29kZWJsb2NrRGVjb3JhdGluZy50cyIsICJzcmMvUmVhZGluZ1ZpZXcudHMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtaXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2NvbG9yLmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kZXZsb3AvbGliL2RlZmF1bHQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3NjaGVtYS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvbWVyZ2UuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9ub3JtYWxpemUuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2luZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3R5cGVzLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9kZWZpbmVkLWluZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2NyZWF0ZS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3hsaW5rLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sbnMuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9hcmlhLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3N2Zy5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL2ZpbmQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3IvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0c2NyaXB0L2xpYi9jcmVhdGUtaC5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLXBhcnNlNS9ub2RlX21vZHVsZXMvdmZpbGUtbG9jYXRpb24vbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy93ZWItbmFtZXNwYWNlcy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20tcGFyc2U1L2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL3VuaWNvZGUuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9lcnJvci1jb2Rlcy5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdG9rZW5pemVyL3ByZXByb2Nlc3Nvci5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL3Rva2VuLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvbm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS1odG1sLnRzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvbm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS14bWwudHMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9ub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9kZWNvZGVfY29kZXBvaW50LnRzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvbm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZGVjb2RlLnRzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdG9rZW5pemVyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9wYXJzZXIvb3Blbi1lbGVtZW50LXN0YWNrLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9wYXJzZXIvZm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL2RvY3R5cGUuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L25vZGVfbW9kdWxlcy9lbnRpdGllcy9saWIvZXNtL2VzY2FwZS50cyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3Qvc2VyaWFsaXplci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9ub2RlX21vZHVsZXMvdmZpbGUtbWVzc2FnZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wYXRoLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wcm9jLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuc2hhcmVkLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1odG1sL25vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWludXJsLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9saWIvZXJyb3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1odG1sL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaHRtbC12b2lkLWVsZW1lbnRzL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy96d2l0Y2gvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvcmUuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8taGV4YWRlY2ltYWwuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8tZGVjaW1hbC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3kvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9jaGFyYWN0ZXItZW50aXRpZXMtaHRtbDQvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvbnN0YW50L2Rhbmdlcm91cy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvdXRpbC90by1uYW1lZC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvdXRpbC9mb3JtYXQtc21hcnQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2NvbW1lbnQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL2Njb3VudC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXdoaXRlc3BhY2UvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vdXRpbC9zaWJsaW5ncy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL29taXNzaW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vY2xvc2luZy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL29wZW5pbmcuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZWxlbWVudC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS90ZXh0LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3Jhdy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9yb290LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIlBpY2tyXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIlBpY2tyXCJdID0gZmFjdG9yeSgpO1xufSkoc2VsZiwgKCkgPT4ge1xucmV0dXJuICIsICIvLyBUaGUgcmVxdWlyZSBzY29wZVxudmFyIF9fd2VicGFja19yZXF1aXJlX18gPSB7fTtcblxuIiwgIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsICJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwgIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsICIvKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItcmVzdC1wYXJhbXMgKi9cbmZ1bmN0aW9uIGV2ZW50TGlzdGVuZXIobWV0aG9kLCBlbGVtZW50cywgZXZlbnRzLCBmbiwgb3B0aW9ucyA9IHt9KSB7XG5cbiAgICAvLyBOb3JtYWxpemUgYXJyYXlcbiAgICBpZiAoZWxlbWVudHMgaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbiB8fCBlbGVtZW50cyBpbnN0YW5jZW9mIE5vZGVMaXN0KSB7XG4gICAgICAgIGVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50cyk7XG4gICAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheShlbGVtZW50cykpIHtcbiAgICAgICAgZWxlbWVudHMgPSBbZWxlbWVudHNdO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShldmVudHMpKSB7XG4gICAgICAgIGV2ZW50cyA9IFtldmVudHNdO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBldiBvZiBldmVudHMpIHtcbiAgICAgICAgICAgIGVsW21ldGhvZF0oZXYsIGZuLCB7Y2FwdHVyZTogZmFsc2UsIC4uLm9wdGlvbnN9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xufVxuXG4vKipcbiAqIEFkZCBldmVudChzKSB0byBlbGVtZW50KHMpLlxuICogQHBhcmFtIGVsZW1lbnRzIERPTS1FbGVtZW50c1xuICogQHBhcmFtIGV2ZW50cyBFdmVudCBuYW1lc1xuICogQHBhcmFtIGZuIENhbGxiYWNrXG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBvcHRpb25zXG4gKiBAcmV0dXJuIEFycmF5IHBhc3NlZCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IG9uID0gZXZlbnRMaXN0ZW5lci5iaW5kKG51bGwsICdhZGRFdmVudExpc3RlbmVyJyk7XG5cbi8qKlxuICogUmVtb3ZlIGV2ZW50KHMpIGZyb20gZWxlbWVudChzKS5cbiAqIEBwYXJhbSBlbGVtZW50cyBET00tRWxlbWVudHNcbiAqIEBwYXJhbSBldmVudHMgRXZlbnQgbmFtZXNcbiAqIEBwYXJhbSBmbiBDYWxsYmFja1xuICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9uc1xuICogQHJldHVybiBBcnJheSBwYXNzZWQgYXJndW1lbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBvZmYgPSBldmVudExpc3RlbmVyLmJpbmQobnVsbCwgJ3JlbW92ZUV2ZW50TGlzdGVuZXInKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIERPTS1FbGVtZW50IG91dCBvZiBhIHN0cmluZyAoU2luZ2xlIGVsZW1lbnQpLlxuICogQHBhcmFtIGh0bWwgSFRNTCByZXByZXNlbnRpbmcgYSBzaW5nbGUgZWxlbWVudFxuICogQHJldHVybnMge0VsZW1lbnQgfCBudWxsfSBUaGUgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nKGh0bWwpIHtcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBkaXYuaW5uZXJIVE1MID0gaHRtbC50cmltKCk7XG4gICAgcmV0dXJuIGRpdi5maXJzdEVsZW1lbnRDaGlsZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGh0bWwgZWxlbWVudCwgZXZlcnkgZWxlbWVudCB3aGljaCBoYXNcbiAqIGEgJzpyZWYnIGF0dHJpYnV0ZSB3aWxsIGJlIHNhdmVkIGluIGEgb2JqZWN0ICh3aGljaCB3aWxsIGJlIHJldHVybmVkKVxuICogd2hlcmUgdGhlIHZhbHVlIG9mICc6cmVmJyBpcyB0aGUgb2JqZWN0LWtleSBhbmQgdGhlIHZhbHVlIHRoZSBIVE1MRWxlbWVudC5cbiAqXG4gKiBJdCdzIHBvc3NpYmxlIHRvIGNyZWF0ZSBhIGhpZXJhcmNoeSBpZiB5b3UgYWRkIGEgJzpvYmonIGF0dHJpYnV0ZS4gRXZlcnlcbiAqIHNpYmxpbmcgd2lsbCBiZSBhZGRlZCB0byB0aGUgb2JqZWN0IHdoaWNoIHdpbGwgZ2V0IHRoZSBuYW1lIGZyb20gdGhlICdkYXRhLWNvbicgYXR0cmlidXRlLlxuICpcbiAqIElmIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBBcnJheSBvdXQgb2YgbXVsdGlwbGUgZWxlbWVudHMsIHlvdSBjYW4gdXNlIHRoZSAnOmFycicgYXR0cmlidXRlLFxuICogdGhlIHZhbHVlIGRlZmluZXMgdGhlIGtleSBhbmQgYWxsIGVsZW1lbnRzLCB3aGljaCBoYXMgdGhlIHNhbWUgcGFyZW50IGFuZCB0aGUgc2FtZSAnZGF0YS1hcnInIGF0dHJpYnV0ZSxcbiAqIHdvdWxkIGJlIGFkZGVkIHRvIGl0LlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgSFRNTCBTdHJpbmcuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZyb21UZW1wbGF0ZShzdHIpIHtcblxuICAgIC8vIFJlbW92ZXMgYW4gYXR0cmlidXRlIGZyb20gYSBIVE1MRWxlbWVudCBhbmQgcmV0dXJucyB0aGUgdmFsdWUuXG4gICAgY29uc3QgcmVtb3ZlQXR0cmlidXRlID0gKGVsLCBuYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZWwuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgLy8gUmVjdXJzaXZlIGZ1bmN0aW9uIHRvIHJlc29sdmUgdGVtcGxhdGVcbiAgICBjb25zdCByZXNvbHZlID0gKGVsZW1lbnQsIGJhc2UgPSB7fSkgPT4ge1xuXG4gICAgICAgIC8vIENoZWNrIGtleSBhbmQgY29udGFpbmVyIGF0dHJpYnV0ZVxuICAgICAgICBjb25zdCBjb24gPSByZW1vdmVBdHRyaWJ1dGUoZWxlbWVudCwgJzpvYmonKTtcbiAgICAgICAgY29uc3Qga2V5ID0gcmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQsICc6cmVmJyk7XG4gICAgICAgIGNvbnN0IHN1YnRyZWUgPSBjb24gPyAoYmFzZVtjb25dID0ge30pIDogYmFzZTtcblxuICAgICAgICAvLyBDaGVjayBhbmQgc2F2ZSBlbGVtZW50XG4gICAgICAgIGtleSAmJiAoYmFzZVtrZXldID0gZWxlbWVudCk7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgQXJyYXkuZnJvbShlbGVtZW50LmNoaWxkcmVuKSkge1xuICAgICAgICAgICAgY29uc3QgYXJyID0gcmVtb3ZlQXR0cmlidXRlKGNoaWxkLCAnOmFycicpO1xuICAgICAgICAgICAgY29uc3Qgc3ViID0gcmVzb2x2ZShjaGlsZCwgYXJyID8ge30gOiBzdWJ0cmVlKTtcblxuICAgICAgICAgICAgaWYgKGFycikge1xuXG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBhcnJheSBhbmQgYWRkIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAoc3VidHJlZVthcnJdIHx8IChzdWJ0cmVlW2Fycl0gPSBbXSkpXG4gICAgICAgICAgICAgICAgICAgIC5wdXNoKE9iamVjdC5rZXlzKHN1YikubGVuZ3RoID8gc3ViIDogY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfTtcblxuICAgIHJldHVybiByZXNvbHZlKGNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nKHN0cikpO1xufVxuXG4vKipcbiAqIFBvbHlmaWxsIGZvciBzYWZhcmkgJiBmaXJlZm94IGZvciB0aGUgZXZlbnRQYXRoIGV2ZW50IHByb3BlcnR5LlxuICogQHBhcmFtIGV2dCBUaGUgZXZlbnQgb2JqZWN0LlxuICogQHJldHVybiBbU3RyaW5nXSBldmVudCBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRQYXRoKGV2dCkge1xuICAgIGxldCBwYXRoID0gZXZ0LnBhdGggfHwgKGV2dC5jb21wb3NlZFBhdGggJiYgZXZ0LmNvbXBvc2VkUGF0aCgpKTtcbiAgICBpZiAocGF0aCkge1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG5cbiAgICBsZXQgZWwgPSBldnQudGFyZ2V0LnBhcmVudEVsZW1lbnQ7XG4gICAgcGF0aCA9IFtldnQudGFyZ2V0LCBlbF07XG4gICAgd2hpbGUgKGVsID0gZWwucGFyZW50RWxlbWVudCkge1xuICAgICAgICBwYXRoLnB1c2goZWwpO1xuICAgIH1cblxuICAgIHBhdGgucHVzaChkb2N1bWVudCwgd2luZG93KTtcbiAgICByZXR1cm4gcGF0aDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIEhUTUxFbGVtZW50IGJ5IHF1ZXJ5LlxuICogQHBhcmFtIHZhbFxuICogQHJldHVybnMge251bGx8RG9jdW1lbnR8RWxlbWVudH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVFbGVtZW50KHZhbCkge1xuICAgIGlmICh2YWwgaW5zdGFuY2VvZiBFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdmFsLnNwbGl0KC8+Pi9nKS5yZWR1Y2UoKHB2LCBjdiwgY2ksIGEpID0+IHtcbiAgICAgICAgICAgIHB2ID0gcHYucXVlcnlTZWxlY3Rvcihjdik7XG4gICAgICAgICAgICByZXR1cm4gY2kgPCBhLmxlbmd0aCAtIDEgPyBwdi5zaGFkb3dSb290IDogcHY7XG4gICAgICAgIH0sIGRvY3VtZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBhYmlsaXR5IHRvIGNoYW5nZSBudW1iZXJzIGluIGFuIGlucHV0IGZpZWxkIHdpdGggdGhlIHNjcm9sbC13aGVlbC5cbiAqIEBwYXJhbSBlbFxuICogQHBhcmFtIG1hcHBlclxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0YWJsZUlucHV0TnVtYmVycyhlbCwgbWFwcGVyID0gdiA9PiB2KSB7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVTY3JvbGwoZSkge1xuICAgICAgICBjb25zdCBpbmMgPSAoWzAuMDAxLCAwLjAxLCAwLjFdKVtOdW1iZXIoZS5zaGlmdEtleSB8fCBlLmN0cmxLZXkgKiAyKV0gKiAoZS5kZWx0YVkgPCAwID8gMSA6IC0xKTtcblxuICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICBsZXQgb2ZmID0gZWwuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIGVsLnZhbHVlID0gZWwudmFsdWUucmVwbGFjZSgvW1xcZC5dKy9nLCAodiwgaSkgPT4ge1xuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiBudW1iZXIgaXMgaW4gY3Vyc29yIHJhbmdlIGFuZCBpbmNyZWFzZSBpdFxuICAgICAgICAgICAgaWYgKGkgPD0gb2ZmICYmIGkgKyB2Lmxlbmd0aCA+PSBvZmYpIHtcbiAgICAgICAgICAgICAgICBvZmYgPSBpO1xuICAgICAgICAgICAgICAgIHJldHVybiBtYXBwZXIoTnVtYmVyKHYpLCBpbmMsIGluZGV4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICB9KTtcblxuICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICBlbC5zZXRTZWxlY3Rpb25SYW5nZShvZmYsIG9mZik7XG5cbiAgICAgICAgLy8gUHJldmVudCBkZWZhdWx0IGFuZCB0cmlnZ2VyIGlucHV0IGV2ZW50XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgIH1cblxuICAgIC8vIEJpbmQgZXZlbnRzXG4gICAgb24oZWwsICdmb2N1cycsICgpID0+IG9uKHdpbmRvdywgJ3doZWVsJywgaGFuZGxlU2Nyb2xsLCB7cGFzc2l2ZTogZmFsc2V9KSk7XG4gICAgb24oZWwsICdibHVyJywgKCkgPT4gb2ZmKHdpbmRvdywgJ3doZWVsJywgaGFuZGxlU2Nyb2xsKSk7XG59XG4iLCAiLy8gU2hvcnRoYW5kc1xuY29uc3Qge21pbiwgbWF4LCBmbG9vciwgcm91bmR9ID0gTWF0aDtcblxuLyoqXG4gKiBUcmllcyB0byBjb252ZXJ0IGEgY29sb3IgbmFtZSB0byByZ2IvYSBoZXggcmVwcmVzZW50YXRpb25cbiAqIEBwYXJhbSBuYW1lXG4gKiBAcmV0dXJucyB7c3RyaW5nIHwgQ2FudmFzR3JhZGllbnQgfCBDYW52YXNQYXR0ZXJufVxuICovXG5mdW5jdGlvbiBzdGFuZGFyZGl6ZUNvbG9yKG5hbWUpIHtcblxuICAgIC8vIFNpbmNlIGludmFsaWQgY29sb3IncyB3aWxsIGJlIHBhcnNlZCBhcyBibGFjaywgZmlsdGVyIHRoZW0gb3V0XG4gICAgaWYgKG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2JsYWNrJykge1xuICAgICAgICByZXR1cm4gJyMwMDAnO1xuICAgIH1cblxuICAgIGNvbnN0IGN0eCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQoJzJkJyk7XG4gICAgY3R4LmZpbGxTdHlsZSA9IG5hbWU7XG4gICAgcmV0dXJuIGN0eC5maWxsU3R5bGUgPT09ICcjMDAwJyA/IG51bGwgOiBjdHguZmlsbFN0eWxlO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSFNWIHNwZWN0cnVtIHRvIFJHQi5cbiAqIEBwYXJhbSBoIEh1ZVxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICogQHBhcmFtIHYgVmFsdWVcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gQXJyYXkgd2l0aCByZ2IgdmFsdWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9SZ2IoaCwgcywgdikge1xuICAgIGggPSAoaCAvIDM2MCkgKiA2O1xuICAgIHMgLz0gMTAwO1xuICAgIHYgLz0gMTAwO1xuXG4gICAgY29uc3QgaSA9IGZsb29yKGgpO1xuXG4gICAgY29uc3QgZiA9IGggLSBpO1xuICAgIGNvbnN0IHAgPSB2ICogKDEgLSBzKTtcbiAgICBjb25zdCBxID0gdiAqICgxIC0gZiAqIHMpO1xuICAgIGNvbnN0IHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XG5cbiAgICBjb25zdCBtb2QgPSBpICUgNjtcbiAgICBjb25zdCByID0gW3YsIHEsIHAsIHAsIHQsIHZdW21vZF07XG4gICAgY29uc3QgZyA9IFt0LCB2LCB2LCBxLCBwLCBwXVttb2RdO1xuICAgIGNvbnN0IGIgPSBbcCwgcCwgdCwgdiwgdiwgcV1bbW9kXTtcblxuICAgIHJldHVybiBbXG4gICAgICAgIHIgKiAyNTUsXG4gICAgICAgIGcgKiAyNTUsXG4gICAgICAgIGIgKiAyNTVcbiAgICBdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSFNWIHNwZWN0cnVtIHRvIEhleC5cbiAqIEBwYXJhbSBoIEh1ZVxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICogQHBhcmFtIHYgVmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmdbXX0gSGV4IHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9IZXgoaCwgcywgdikge1xuICAgIHJldHVybiBoc3ZUb1JnYihoLCBzLCB2KS5tYXAodiA9PlxuICAgICAgICByb3VuZCh2KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKVxuICAgICk7XG59XG5cbi8qKlxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gQ01ZSy5cbiAqIEBwYXJhbSBoIEh1ZVxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICogQHBhcmFtIHYgVmFsdWVcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gQ01ZSyB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvQ215ayhoLCBzLCB2KSB7XG4gICAgY29uc3QgcmdiID0gaHN2VG9SZ2IoaCwgcywgdik7XG4gICAgY29uc3QgciA9IHJnYlswXSAvIDI1NTtcbiAgICBjb25zdCBnID0gcmdiWzFdIC8gMjU1O1xuICAgIGNvbnN0IGIgPSByZ2JbMl0gLyAyNTU7XG5cbiAgICBjb25zdCBrID0gbWluKDEgLSByLCAxIC0gZywgMSAtIGIpO1xuICAgIGNvbnN0IGMgPSBrID09PSAxID8gMCA6ICgxIC0gciAtIGspIC8gKDEgLSBrKTtcbiAgICBjb25zdCBtID0gayA9PT0gMSA/IDAgOiAoMSAtIGcgLSBrKSAvICgxIC0gayk7XG4gICAgY29uc3QgeSA9IGsgPT09IDEgPyAwIDogKDEgLSBiIC0gaykgLyAoMSAtIGspO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgYyAqIDEwMCxcbiAgICAgICAgbSAqIDEwMCxcbiAgICAgICAgeSAqIDEwMCxcbiAgICAgICAgayAqIDEwMFxuICAgIF07XG59XG5cbi8qKlxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gSFNMLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge251bWJlcltdfSBIU0wgdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb0hzbChoLCBzLCB2KSB7XG4gICAgcyAvPSAxMDA7XG4gICAgdiAvPSAxMDA7XG5cbiAgICBjb25zdCBsID0gKDIgLSBzKSAqIHYgLyAyO1xuXG4gICAgaWYgKGwgIT09IDApIHtcbiAgICAgICAgaWYgKGwgPT09IDEpIHtcbiAgICAgICAgICAgIHMgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGwgPCAwLjUpIHtcbiAgICAgICAgICAgIHMgPSBzICogdiAvIChsICogMik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzID0gcyAqIHYgLyAoMiAtIGwgKiAyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAgIGgsXG4gICAgICAgIHMgKiAxMDAsXG4gICAgICAgIGwgKiAxMDBcbiAgICBdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgUkdCIHRvIEhTVi5cbiAqIEBwYXJhbSByIFJlZFxuICogQHBhcmFtIGcgR3JlZW5cbiAqIEBwYXJhbSBiIEJsdWVcbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxuICovXG5mdW5jdGlvbiByZ2JUb0hzdihyLCBnLCBiKSB7XG4gICAgciAvPSAyNTU7XG4gICAgZyAvPSAyNTU7XG4gICAgYiAvPSAyNTU7XG5cbiAgICBjb25zdCBtaW5WYWwgPSBtaW4ociwgZywgYik7XG4gICAgY29uc3QgbWF4VmFsID0gbWF4KHIsIGcsIGIpO1xuICAgIGNvbnN0IGRlbHRhID0gbWF4VmFsIC0gbWluVmFsO1xuXG4gICAgbGV0IGgsIHM7XG4gICAgY29uc3QgdiA9IG1heFZhbDtcbiAgICBpZiAoZGVsdGEgPT09IDApIHtcbiAgICAgICAgaCA9IHMgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHMgPSBkZWx0YSAvIG1heFZhbDtcbiAgICAgICAgY29uc3QgZHIgPSAoKChtYXhWYWwgLSByKSAvIDYpICsgKGRlbHRhIC8gMikpIC8gZGVsdGE7XG4gICAgICAgIGNvbnN0IGRnID0gKCgobWF4VmFsIC0gZykgLyA2KSArIChkZWx0YSAvIDIpKSAvIGRlbHRhO1xuICAgICAgICBjb25zdCBkYiA9ICgoKG1heFZhbCAtIGIpIC8gNikgKyAoZGVsdGEgLyAyKSkgLyBkZWx0YTtcblxuICAgICAgICBpZiAociA9PT0gbWF4VmFsKSB7XG4gICAgICAgICAgICBoID0gZGIgLSBkZztcbiAgICAgICAgfSBlbHNlIGlmIChnID09PSBtYXhWYWwpIHtcbiAgICAgICAgICAgIGggPSAoMSAvIDMpICsgZHIgLSBkYjtcbiAgICAgICAgfSBlbHNlIGlmIChiID09PSBtYXhWYWwpIHtcbiAgICAgICAgICAgIGggPSAoMiAvIDMpICsgZGcgLSBkcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoIDwgMCkge1xuICAgICAgICAgICAgaCArPSAxO1xuICAgICAgICB9IGVsc2UgaWYgKGggPiAxKSB7XG4gICAgICAgICAgICBoIC09IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgICBoICogMzYwLFxuICAgICAgICBzICogMTAwLFxuICAgICAgICB2ICogMTAwXG4gICAgXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IENNWUsgdG8gSFNWLlxuICogQHBhcmFtIGMgQ3lhblxuICogQHBhcmFtIG0gTWFnZW50YVxuICogQHBhcmFtIHkgWWVsbG93XG4gKiBAcGFyYW0gayBLZXkgKEJsYWNrKVxuICogQHJldHVybiB7bnVtYmVyW119IEhTViB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGNteWtUb0hzdihjLCBtLCB5LCBrKSB7XG4gICAgYyAvPSAxMDA7XG4gICAgbSAvPSAxMDA7XG4gICAgeSAvPSAxMDA7XG4gICAgayAvPSAxMDA7XG5cbiAgICBjb25zdCByID0gKDEgLSBtaW4oMSwgYyAqICgxIC0gaykgKyBrKSkgKiAyNTU7XG4gICAgY29uc3QgZyA9ICgxIC0gbWluKDEsIG0gKiAoMSAtIGspICsgaykpICogMjU1O1xuICAgIGNvbnN0IGIgPSAoMSAtIG1pbigxLCB5ICogKDEgLSBrKSArIGspKSAqIDI1NTtcblxuICAgIHJldHVybiBbLi4ucmdiVG9Ic3YociwgZywgYildO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSFNMIHRvIEhTVi5cbiAqIEBwYXJhbSBoIEh1ZVxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICogQHBhcmFtIGwgTGlnaHRuZXNzXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gSFNWIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gaHNsVG9Ic3YoaCwgcywgbCkge1xuICAgIHMgLz0gMTAwO1xuICAgIGwgLz0gMTAwO1xuICAgIHMgKj0gbCA8IDAuNSA/IGwgOiAxIC0gbDtcblxuICAgIGNvbnN0IG5zID0gKDIgKiBzIC8gKGwgKyBzKSkgKiAxMDA7XG4gICAgY29uc3QgdiA9IChsICsgcykgKiAxMDA7XG4gICAgcmV0dXJuIFtoLCBpc05hTihucykgPyAwIDogbnMsIHZdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSEVYIHRvIEhTVi5cbiAqIEBwYXJhbSBoZXggSGV4YWRlY2ltYWwgc3RyaW5nIG9mIHJnYiBjb2xvcnMsIGNhbiBoYXZlIGxlbmd0aCAzIG9yIDYuXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gSFNWIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gaGV4VG9Ic3YoaGV4KSB7XG4gICAgcmV0dXJuIHJnYlRvSHN2KC4uLmhleC5tYXRjaCgvLnsyfS9nKS5tYXAodiA9PiBwYXJzZUludCh2LCAxNikpKTtcbn1cblxuLyoqXG4gKiBUcnkncyB0byBwYXJzZSBhIHN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgY29sb3IgdG8gYSBIU1YgYXJyYXkuXG4gKiBDdXJyZW50IHN1cHBvcnRlZCB0eXBlcyBhcmUgY215aywgcmdiYSwgaHNsYSBhbmQgaGV4YWRlY2ltYWwuXG4gKiBAcGFyYW0gc3RyXG4gKiBAcmV0dXJuIHsqfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUb0hTVkEoc3RyKSB7XG5cbiAgICAvLyBDaGVjayBpZiBzdHJpbmcgaXMgYSBjb2xvci1uYW1lXG4gICAgc3RyID0gc3RyLm1hdGNoKC9eW2EtekEtWl0rJC8pID8gc3RhbmRhcmRpemVDb2xvcihzdHIpIDogc3RyO1xuXG4gICAgLy8gUmVndWxhciBleHByZXNzaW9ucyB0byBtYXRjaCBkaWZmZXJlbnQgdHlwZXMgb2YgY29sb3IgcmVwcmVzZW50aW9uXG4gICAgY29uc3QgcmVnZXggPSB7XG4gICAgICAgIGNteWs6IC9eY215a1xcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKykvaSxcbiAgICAgICAgcmdiYTogL15yZ2JhP1xcRCsoW1xcZC5dKykoJT8pXFxEKyhbXFxkLl0rKSglPylcXEQrKFtcXGQuXSspKCU/KVxcRCo/KChbXFxkLl0rKSglPyl8JCkvaSxcbiAgICAgICAgaHNsYTogL15oc2xhP1xcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCo/KChbXFxkLl0rKSglPyl8JCkvaSxcbiAgICAgICAgaHN2YTogL15oc3ZhP1xcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCo/KChbXFxkLl0rKSglPyl8JCkvaSxcbiAgICAgICAgaGV4YTogL14jPygoW1xcZEEtRmEtZl17Myw0fSl8KFtcXGRBLUZhLWZdezZ9KXwoW1xcZEEtRmEtZl17OH0pKSQvaVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyBhbiBBcnJheSBvZiBhbnkgdHlwZSwgY29udmVydCBzdHJpbmdzIHdoaWNoIHJlcHJlc2VudHNcbiAgICAgKiBhIG51bWJlciB0byBhIG51bWJlciBhbiBhbnl0aGluZyBlbHNlIHRvIHVuZGVmaW5lZC5cbiAgICAgKiBAcGFyYW0gYXJyYXlcbiAgICAgKiBAcmV0dXJuIHsqfVxuICAgICAqL1xuICAgIGNvbnN0IG51bWFyaXplID0gYXJyYXkgPT4gYXJyYXkubWFwKHYgPT4gL14ofFxcZCspXFwuXFxkK3xcXGQrJC8udGVzdCh2KSA/IE51bWJlcih2KSA6IHVuZGVmaW5lZCk7XG5cbiAgICBsZXQgbWF0Y2g7XG4gICAgaW52YWxpZDogZm9yIChjb25zdCB0eXBlIGluIHJlZ2V4KSB7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY3VycmVudCBzY2hlbWUgcGFzc2VkXG4gICAgICAgIGlmICghKG1hdGNoID0gcmVnZXhbdHlwZV0uZXhlYyhzdHIpKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcnkgdG8gY29udmVydFxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2NteWsnOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgWywgYywgbSwgeSwga10gPSBudW1hcml6ZShtYXRjaCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoYyA+IDEwMCB8fCBtID4gMTAwIHx8IHkgPiAxMDAgfHwgayA+IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBicmVhayBpbnZhbGlkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWVzOiBjbXlrVG9Ic3YoYywgbSwgeSwgayksIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAncmdiYSc6IHtcbiAgICAgICAgICAgICAgICBsZXQgWywgciwgLCBnLCAsIGIsICwgLCBhXSA9IG51bWFyaXplKG1hdGNoKTtcblxuICAgICAgICAgICAgICAgIHIgPSBtYXRjaFsyXSA9PT0gJyUnID8gKHIgLyAxMDApICogMjU1IDogcjtcbiAgICAgICAgICAgICAgICBnID0gbWF0Y2hbNF0gPT09ICclJyA/IChnIC8gMTAwKSAqIDI1NSA6IGc7XG4gICAgICAgICAgICAgICAgYiA9IG1hdGNoWzZdID09PSAnJScgPyAoYiAvIDEwMCkgKiAyNTUgOiBiO1xuICAgICAgICAgICAgICAgIGEgPSBtYXRjaFs5XSA9PT0gJyUnID8gKGEgLyAxMDApIDogYTtcblxuICAgICAgICAgICAgICAgIGlmIChyID4gMjU1IHx8IGcgPiAyNTUgfHwgYiA+IDI1NSB8fCBhIDwgMCB8fCBhID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhayBpbnZhbGlkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWVzOiBbLi4ucmdiVG9Ic3YociwgZywgYiksIGFdLCBhLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2hleGEnOiB7XG4gICAgICAgICAgICAgICAgbGV0IFssIGhleF0gPSBtYXRjaDtcblxuICAgICAgICAgICAgICAgIGlmIChoZXgubGVuZ3RoID09PSA0IHx8IGhleC5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgaGV4ID0gaGV4LnNwbGl0KCcnKS5tYXAodiA9PiB2ICsgdikuam9pbignJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcmF3ID0gaGV4LnN1YnN0cmluZygwLCA2KTtcbiAgICAgICAgICAgICAgICBsZXQgYSA9IGhleC5zdWJzdHJpbmcoNik7XG5cbiAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IDAgLSAyNTUgdG8gMCAtIDEgZm9yIG9wYWNpdHlcbiAgICAgICAgICAgICAgICBhID0gYSA/IChwYXJzZUludChhLCAxNikgLyAyNTUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFsuLi5oZXhUb0hzdihyYXcpLCBhXSwgYSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdoc2xhJzoge1xuICAgICAgICAgICAgICAgIGxldCBbLCBoLCBzLCBsLCAsIGFdID0gbnVtYXJpemUobWF0Y2gpO1xuICAgICAgICAgICAgICAgIGEgPSBtYXRjaFs2XSA9PT0gJyUnID8gKGEgLyAxMDApIDogYTtcblxuICAgICAgICAgICAgICAgIGlmIChoID4gMzYwIHx8IHMgPiAxMDAgfHwgbCA+IDEwMCB8fCBhIDwgMCB8fCBhID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhayBpbnZhbGlkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWVzOiBbLi4uaHNsVG9Ic3YoaCwgcywgbCksIGFdLCBhLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2hzdmEnOiB7XG4gICAgICAgICAgICAgICAgbGV0IFssIGgsIHMsIHYsICwgYV0gPSBudW1hcml6ZShtYXRjaCk7XG4gICAgICAgICAgICAgICAgYSA9IG1hdGNoWzZdID09PSAnJScgPyAoYSAvIDEwMCkgOiBhO1xuXG4gICAgICAgICAgICAgICAgaWYgKGggPiAzNjAgfHwgcyA+IDEwMCB8fCB2ID4gMTAwIHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFtoLCBzLCB2LCBhXSwgYSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge3ZhbHVlczogbnVsbCwgdHlwZTogbnVsbH07XG59XG4iLCAiaW1wb3J0IHtoc3ZUb0NteWssIGhzdlRvSGV4LCBoc3ZUb0hzbCwgaHN2VG9SZ2J9IGZyb20gJy4vY29sb3InO1xuXG4vKipcbiAqIFNpbXBsZSBjbGFzcyB3aGljaCBob2xkcyB0aGUgcHJvcGVydGllc1xuICogb2YgdGhlIGNvbG9yIHJlcHJlc2VudGlvbiBtb2RlbCBoc2xhIChodWUgc2F0dXJhdGlvbiBsaWdodG5lc3MgYWxwaGEpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBIU1ZhQ29sb3IoaCA9IDAsIHMgPSAwLCB2ID0gMCwgYSA9IDEpIHtcbiAgICBjb25zdCBtYXBwZXIgPSAob3JpZ2luYWwsIG5leHQpID0+IChwcmVjaXNpb24gPSAtMSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dCh+cHJlY2lzaW9uID8gb3JpZ2luYWwubWFwKHYgPT4gTnVtYmVyKHYudG9GaXhlZChwcmVjaXNpb24pKSkgOiBvcmlnaW5hbCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHRoYXQgPSB7XG4gICAgICAgIGgsIHMsIHYsIGEsXG5cbiAgICAgICAgdG9IU1ZBKCkge1xuICAgICAgICAgICAgY29uc3QgaHN2YSA9IFt0aGF0LmgsIHRoYXQucywgdGhhdC52LCB0aGF0LmFdO1xuICAgICAgICAgICAgaHN2YS50b1N0cmluZyA9IG1hcHBlcihoc3ZhLCBhcnIgPT4gYGhzdmEoJHthcnJbMF19LCAke2FyclsxXX0lLCAke2FyclsyXX0lLCAke3RoYXQuYX0pYCk7XG4gICAgICAgICAgICByZXR1cm4gaHN2YTtcbiAgICAgICAgfSxcblxuICAgICAgICB0b0hTTEEoKSB7XG4gICAgICAgICAgICBjb25zdCBoc2xhID0gWy4uLmhzdlRvSHNsKHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYpLCB0aGF0LmFdO1xuICAgICAgICAgICAgaHNsYS50b1N0cmluZyA9IG1hcHBlcihoc2xhLCBhcnIgPT4gYGhzbGEoJHthcnJbMF19LCAke2FyclsxXX0lLCAke2FyclsyXX0lLCAke3RoYXQuYX0pYCk7XG4gICAgICAgICAgICByZXR1cm4gaHNsYTtcbiAgICAgICAgfSxcblxuICAgICAgICB0b1JHQkEoKSB7XG4gICAgICAgICAgICBjb25zdCByZ2JhID0gWy4uLmhzdlRvUmdiKHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYpLCB0aGF0LmFdO1xuICAgICAgICAgICAgcmdiYS50b1N0cmluZyA9IG1hcHBlcihyZ2JhLCBhcnIgPT4gYHJnYmEoJHthcnJbMF19LCAke2FyclsxXX0sICR7YXJyWzJdfSwgJHt0aGF0LmF9KWApO1xuICAgICAgICAgICAgcmV0dXJuIHJnYmE7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9DTVlLKCkge1xuICAgICAgICAgICAgY29uc3QgY215ayA9IGhzdlRvQ215ayh0aGF0LmgsIHRoYXQucywgdGhhdC52KTtcbiAgICAgICAgICAgIGNteWsudG9TdHJpbmcgPSBtYXBwZXIoY215aywgYXJyID0+IGBjbXlrKCR7YXJyWzBdfSUsICR7YXJyWzFdfSUsICR7YXJyWzJdfSUsICR7YXJyWzNdfSUpYCk7XG4gICAgICAgICAgICByZXR1cm4gY215aztcbiAgICAgICAgfSxcblxuICAgICAgICB0b0hFWEEoKSB7XG4gICAgICAgICAgICBjb25zdCBoZXggPSBoc3ZUb0hleCh0aGF0LmgsIHRoYXQucywgdGhhdC52KTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgYWxwaGEgY2hhbm5lbCBtYWtlIHNlbnNlLCBjb252ZXJ0IGl0IHRvIDI1NSBudW1iZXIgc3BhY2UsIGNvbnZlcnRcbiAgICAgICAgICAgIC8vIFRvIGhleCBhbmQgcGFkIGl0IHdpdGggemVyb3MgaWYgbmVlZGV0LlxuICAgICAgICAgICAgY29uc3QgYWxwaGEgPSB0aGF0LmEgPj0gMSA/ICcnIDogTnVtYmVyKCh0aGF0LmEgKiAyNTUpLnRvRml4ZWQoMCkpXG4gICAgICAgICAgICAgICAgLnRvU3RyaW5nKDE2KVxuICAgICAgICAgICAgICAgIC50b1VwcGVyQ2FzZSgpLnBhZFN0YXJ0KDIsICcwJyk7XG5cbiAgICAgICAgICAgIGFscGhhICYmIGhleC5wdXNoKGFscGhhKTtcbiAgICAgICAgICAgIGhleC50b1N0cmluZyA9ICgpID0+IGAjJHtoZXguam9pbignJykudG9VcHBlckNhc2UoKX1gO1xuICAgICAgICAgICAgcmV0dXJuIGhleDtcbiAgICAgICAgfSxcblxuICAgICAgICBjbG9uZTogKCkgPT4gSFNWYUNvbG9yKHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYsIHRoYXQuYSlcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoYXQ7XG59XG4iLCAiaW1wb3J0ICogYXMgXyBmcm9tICcuLi91dGlscy91dGlscyc7XG5cbmNvbnN0IGNsYW1wID0gdiA9PiBNYXRoLm1heChNYXRoLm1pbih2LCAxKSwgMCk7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNb3ZlYWJsZShvcHQpIHtcblxuICAgIGNvbnN0IHRoYXQgPSB7XG5cbiAgICAgICAgLy8gQXNzaWduIGRlZmF1bHQgdmFsdWVzXG4gICAgICAgIG9wdGlvbnM6IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgbG9jazogbnVsbCxcbiAgICAgICAgICAgIG9uY2hhbmdlOiAoKSA9PiAwLFxuICAgICAgICAgICAgb25zdG9wOiAoKSA9PiAwXG4gICAgICAgIH0sIG9wdCksXG5cbiAgICAgICAgX2tleWJvYXJkKGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoYXQ7XG4gICAgICAgICAgICBjb25zdCB7dHlwZSwga2V5fSA9IGU7XG5cbiAgICAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgTW92YWJsZSBpcyBmb2N1c2VkIGFuZCB0aGVuIG1vdmUgaXQgYmFzZWQgb24gYXJyb3cga2V5IGlucHV0c1xuICAgICAgICAgICAgLy8gRm9yIGltcHJvdmVkIGFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBvcHRpb25zLndyYXBwZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7bG9ja30gPSB0aGF0Lm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgY29uc3QgdXAgPSBrZXkgPT09ICdBcnJvd1VwJztcbiAgICAgICAgICAgICAgICBjb25zdCByaWdodCA9IGtleSA9PT0gJ0Fycm93UmlnaHQnO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRvd24gPSBrZXkgPT09ICdBcnJvd0Rvd24nO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBrZXkgPT09ICdBcnJvd0xlZnQnO1xuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdrZXlkb3duJyAmJiAodXAgfHwgcmlnaHQgfHwgZG93biB8fCBsZWZ0KSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgeG0gPSAwO1xuICAgICAgICAgICAgICAgICAgICBsZXQgeW0gPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NrID09PSAndicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtID0gKHVwIHx8IHJpZ2h0KSA/IDEgOiAtMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NrID09PSAnaCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtID0gKHVwIHx8IHJpZ2h0KSA/IC0xIDogMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHltID0gdXAgPyAtMSA6IChkb3duID8gMSA6IDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgeG0gPSBsZWZ0ID8gLTEgOiAocmlnaHQgPyAxIDogMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGF0LnVwZGF0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYW1wKHRoYXQuY2FjaGUueCArICgwLjAxICogeG0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYW1wKHRoYXQuY2FjaGUueSArICgwLjAxICogeW0pKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkuc3RhcnRzV2l0aCgnQXJyb3cnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0Lm9wdGlvbnMub25zdG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgX3RhcHN0YXJ0KGV2dCkge1xuICAgICAgICAgICAgXy5vbihkb2N1bWVudCwgWydtb3VzZXVwJywgJ3RvdWNoZW5kJywgJ3RvdWNoY2FuY2VsJ10sIHRoYXQuX3RhcHN0b3ApO1xuICAgICAgICAgICAgXy5vbihkb2N1bWVudCwgWydtb3VzZW1vdmUnLCAndG91Y2htb3ZlJ10sIHRoYXQuX3RhcG1vdmUpO1xuXG4gICAgICAgICAgICBpZiAoZXZ0LmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVHJpZ2dlclxuICAgICAgICAgICAgdGhhdC5fdGFwbW92ZShldnQpO1xuICAgICAgICB9LFxuXG4gICAgICAgIF90YXBtb3ZlKGV2dCkge1xuICAgICAgICAgICAgY29uc3Qge29wdGlvbnMsIGNhY2hlfSA9IHRoYXQ7XG4gICAgICAgICAgICBjb25zdCB7bG9jaywgZWxlbWVudCwgd3JhcHBlcn0gPSBvcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgYiA9IHdyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgIGxldCB4ID0gMCwgeSA9IDA7XG4gICAgICAgICAgICBpZiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG91Y2ggPSBldnQgJiYgZXZ0LnRvdWNoZXMgJiYgZXZ0LnRvdWNoZXNbMF07XG4gICAgICAgICAgICAgICAgeCA9IGV2dCA/ICh0b3VjaCB8fCBldnQpLmNsaWVudFggOiAwO1xuICAgICAgICAgICAgICAgIHkgPSBldnQgPyAodG91Y2ggfHwgZXZ0KS5jbGllbnRZIDogMDtcblxuICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRvIGJvdW5kc1xuICAgICAgICAgICAgICAgIGlmICh4IDwgYi5sZWZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIHggPSBiLmxlZnQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh4ID4gYi5sZWZ0ICsgYi53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB4ID0gYi5sZWZ0ICsgYi53aWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHkgPCBiLnRvcCkge1xuICAgICAgICAgICAgICAgICAgICB5ID0gYi50b3A7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh5ID4gYi50b3AgKyBiLmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICB5ID0gYi50b3AgKyBiLmhlaWdodDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBOb3JtYWxpemVcbiAgICAgICAgICAgICAgICB4IC09IGIubGVmdDtcbiAgICAgICAgICAgICAgICB5IC09IGIudG9wO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjYWNoZSkge1xuICAgICAgICAgICAgICAgIHggPSBjYWNoZS54ICogYi53aWR0aDtcbiAgICAgICAgICAgICAgICB5ID0gY2FjaGUueSAqIGIuaGVpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobG9jayAhPT0gJ2gnKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gYGNhbGMoJHt4IC8gYi53aWR0aCAqIDEwMH0lIC0gJHtlbGVtZW50Lm9mZnNldFdpZHRoIC8gMn1weClgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobG9jayAhPT0gJ3YnKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSBgY2FsYygke3kgLyBiLmhlaWdodCAqIDEwMH0lIC0gJHtlbGVtZW50Lm9mZnNldEhlaWdodCAvIDJ9cHgpYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhhdC5jYWNoZSA9IHt4OiB4IC8gYi53aWR0aCwgeTogeSAvIGIuaGVpZ2h0fTtcbiAgICAgICAgICAgIGNvbnN0IGN4ID0gY2xhbXAoeCAvIGIud2lkdGgpO1xuICAgICAgICAgICAgY29uc3QgY3kgPSBjbGFtcCh5IC8gYi5oZWlnaHQpO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKGxvY2spIHtcbiAgICAgICAgICAgICAgICBjYXNlICd2JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMub25jaGFuZ2UoY3gpO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5vbmNoYW5nZShjeSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMub25jaGFuZ2UoY3gsIGN5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBfdGFwc3RvcCgpIHtcbiAgICAgICAgICAgIHRoYXQub3B0aW9ucy5vbnN0b3AoKTtcbiAgICAgICAgICAgIF8ub2ZmKGRvY3VtZW50LCBbJ21vdXNldXAnLCAndG91Y2hlbmQnLCAndG91Y2hjYW5jZWwnXSwgdGhhdC5fdGFwc3RvcCk7XG4gICAgICAgICAgICBfLm9mZihkb2N1bWVudCwgWydtb3VzZW1vdmUnLCAndG91Y2htb3ZlJ10sIHRoYXQuX3RhcG1vdmUpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRyaWdnZXIoKSB7XG4gICAgICAgICAgICB0aGF0Ll90YXBtb3ZlKCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdXBkYXRlKHggPSAwLCB5ID0gMCkge1xuICAgICAgICAgICAgY29uc3Qge2xlZnQsIHRvcCwgd2lkdGgsIGhlaWdodH0gPSB0aGF0Lm9wdGlvbnMud3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5sb2NrID09PSAnaCcpIHtcbiAgICAgICAgICAgICAgICB5ID0geDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhhdC5fdGFwbW92ZSh7XG4gICAgICAgICAgICAgICAgY2xpZW50WDogbGVmdCArIHdpZHRoICogeCxcbiAgICAgICAgICAgICAgICBjbGllbnRZOiB0b3AgKyBoZWlnaHQgKiB5XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXN0cm95KCkge1xuICAgICAgICAgICAgY29uc3Qge29wdGlvbnMsIF90YXBzdGFydCwgX2tleWJvYXJkfSA9IHRoYXQ7XG4gICAgICAgICAgICBfLm9mZihkb2N1bWVudCwgWydrZXlkb3duJywgJ2tleXVwJ10sIF9rZXlib2FyZCk7XG4gICAgICAgICAgICBfLm9mZihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAnbW91c2Vkb3duJywgX3RhcHN0YXJ0KTtcbiAgICAgICAgICAgIF8ub2ZmKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICd0b3VjaHN0YXJ0JywgX3RhcHN0YXJ0LCB7XG4gICAgICAgICAgICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8vIEluaXRpbGl6ZVxuICAgIGNvbnN0IHtvcHRpb25zLCBfdGFwc3RhcnQsIF9rZXlib2FyZH0gPSB0aGF0O1xuICAgIF8ub24oW29wdGlvbnMud3JhcHBlciwgb3B0aW9ucy5lbGVtZW50XSwgJ21vdXNlZG93bicsIF90YXBzdGFydCk7XG4gICAgXy5vbihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAndG91Y2hzdGFydCcsIF90YXBzdGFydCwge1xuICAgICAgICBwYXNzaXZlOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgXy5vbihkb2N1bWVudCwgWydrZXlkb3duJywgJ2tleXVwJ10sIF9rZXlib2FyZCk7XG5cbiAgICByZXR1cm4gdGhhdDtcbn1cbiIsICJpbXBvcnQgKiBhcyBfIGZyb20gJy4uL3V0aWxzL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2VsZWN0YWJsZShvcHQgPSB7fSkge1xuICAgIG9wdCA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBvbmNoYW5nZTogKCkgPT4gMCxcbiAgICAgICAgY2xhc3NOYW1lOiAnJyxcbiAgICAgICAgZWxlbWVudHM6IFtdXG4gICAgfSwgb3B0KTtcblxuICAgIGNvbnN0IG9uVGFwID0gXy5vbihvcHQuZWxlbWVudHMsICdjbGljaycsIGV2dCA9PiB7XG4gICAgICAgIG9wdC5lbGVtZW50cy5mb3JFYWNoKGUgPT5cbiAgICAgICAgICAgIGUuY2xhc3NMaXN0W2V2dC50YXJnZXQgPT09IGUgPyAnYWRkJyA6ICdyZW1vdmUnXShvcHQuY2xhc3NOYW1lKVxuICAgICAgICApO1xuXG4gICAgICAgIG9wdC5vbmNoYW5nZShldnQpO1xuXG4gICAgICAgIC8vIEZpeCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL1NpbW9ud2VwL3BpY2tyL2lzc3Vlcy8yNDNcbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGVzdHJveTogKCkgPT4gXy5vZmYoLi4ub25UYXApXG4gICAgfTtcbn1cbiIsICJpbXBvcnQgKiBhcyBfIGZyb20gJy4vdXRpbHMvdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBpbnN0YW5jZSA9PiB7XG5cbiAgICBjb25zdCB7XG4gICAgICAgIGNvbXBvbmVudHMsXG4gICAgICAgIHVzZUFzQnV0dG9uLFxuICAgICAgICBpbmxpbmUsXG4gICAgICAgIGFwcENsYXNzLFxuICAgICAgICB0aGVtZSxcbiAgICAgICAgbG9ja09wYWNpdHlcbiAgICB9ID0gaW5zdGFuY2Uub3B0aW9ucztcblxuICAgIC8vIFV0aWxzXG4gICAgY29uc3QgaGlkZGVuID0gY29uID0+IGNvbiA/ICcnIDogJ3N0eWxlPVwiZGlzcGxheTpub25lXCIgaGlkZGVuJztcbiAgICBjb25zdCB0ID0gc3RyID0+IGluc3RhbmNlLl90KHN0cik7XG5cbiAgICBjb25zdCByb290ID0gXy5jcmVhdGVGcm9tVGVtcGxhdGUoYFxuICAgICAgPGRpdiA6cmVmPVwicm9vdFwiIGNsYXNzPVwicGlja3JcIj5cblxuICAgICAgICAke3VzZUFzQnV0dG9uID8gJycgOiAnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgOnJlZj1cImJ1dHRvblwiIGNsYXNzPVwicGNyLWJ1dHRvblwiPjwvYnV0dG9uPid9XG5cbiAgICAgICAgPGRpdiA6cmVmPVwiYXBwXCIgY2xhc3M9XCJwY3ItYXBwICR7YXBwQ2xhc3MgfHwgJyd9XCIgZGF0YS10aGVtZT1cIiR7dGhlbWV9XCIgJHtpbmxpbmUgPyAnc3R5bGU9XCJwb3NpdGlvbjogdW5zZXRcIicgOiAnJ30gYXJpYS1sYWJlbD1cIiR7dCgndWk6ZGlhbG9nJywgJ2NvbG9yIHBpY2tlciBkaWFsb2cnKX1cIiByb2xlPVwid2luZG93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBjci1zZWxlY3Rpb25cIiAke2hpZGRlbihjb21wb25lbnRzLnBhbGV0dGUpfT5cbiAgICAgICAgICAgIDxkaXYgOm9iaj1cInByZXZpZXdcIiBjbGFzcz1cInBjci1jb2xvci1wcmV2aWV3XCIgJHtoaWRkZW4oY29tcG9uZW50cy5wcmV2aWV3KX0+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIDpyZWY9XCJsYXN0Q29sb3JcIiBjbGFzcz1cInBjci1sYXN0LWNvbG9yXCIgYXJpYS1sYWJlbD1cIiR7dCgnYnRuOmxhc3QtY29sb3InKX1cIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwiY3VycmVudENvbG9yXCIgY2xhc3M9XCJwY3ItY3VycmVudC1jb2xvclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgOm9iaj1cInBhbGV0dGVcIiBjbGFzcz1cInBjci1jb2xvci1wYWxldHRlXCI+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInBpY2tlclwiIGNsYXNzPVwicGNyLXBpY2tlclwiPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJwYWxldHRlXCIgY2xhc3M9XCJwY3ItcGFsZXR0ZVwiIHRhYmluZGV4PVwiMFwiIGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6cGFsZXR0ZScpfVwiIHJvbGU9XCJsaXN0Ym94XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiA6b2JqPVwiaHVlXCIgY2xhc3M9XCJwY3ItY29sb3ItY2hvb3NlclwiICR7aGlkZGVuKGNvbXBvbmVudHMuaHVlKX0+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInBpY2tlclwiIGNsYXNzPVwicGNyLXBpY2tlclwiPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJzbGlkZXJcIiBjbGFzcz1cInBjci1odWUgcGNyLXNsaWRlclwiIHRhYmluZGV4PVwiMFwiIGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6aHVlJyl9XCIgcm9sZT1cInNsaWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgOm9iaj1cIm9wYWNpdHlcIiBjbGFzcz1cInBjci1jb2xvci1vcGFjaXR5XCIgJHtoaWRkZW4oY29tcG9uZW50cy5vcGFjaXR5KX0+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInBpY2tlclwiIGNsYXNzPVwicGNyLXBpY2tlclwiPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJzbGlkZXJcIiBjbGFzcz1cInBjci1vcGFjaXR5IHBjci1zbGlkZXJcIiB0YWJpbmRleD1cIjBcIiBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOm9wYWNpdHknLCAnb3BhY2l0eSBzZWxlY3Rpb24gc2xpZGVyJyl9XCIgcm9sZT1cInNsaWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGNyLXN3YXRjaGVzICR7Y29tcG9uZW50cy5wYWxldHRlID8gJycgOiAncGNyLWxhc3QnfVwiIDpyZWY9XCJzd2F0Y2hlc1wiPjwvZGl2PlxuXG4gICAgICAgICAgPGRpdiA6b2JqPVwiaW50ZXJhY3Rpb25cIiBjbGFzcz1cInBjci1pbnRlcmFjdGlvblwiICR7aGlkZGVuKE9iamVjdC5rZXlzKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24pLmxlbmd0aCl9PlxuICAgICAgICAgICAgPGlucHV0IDpyZWY9XCJyZXN1bHRcIiBjbGFzcz1cInBjci1yZXN1bHRcIiB0eXBlPVwidGV4dFwiIHNwZWxsY2hlY2s9XCJmYWxzZVwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uaW5wdXQpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmlucHV0JywgJ2NvbG9yIGlucHV0IGZpZWxkJyl9XCI+XG5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJIRVhBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ0hFWCcgOiAnSEVYQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uaGV4KX0+XG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiUkdCQVwiIHZhbHVlPVwiJHtsb2NrT3BhY2l0eSA/ICdSR0InIDogJ1JHQkEnfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLnJnYmEpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJIU0xBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ0hTTCcgOiAnSFNMQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uaHNsYSl9PlxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkhTVkFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnSFNWJyA6ICdIU1ZBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5oc3ZhKX0+XG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiQ01ZS1wiIHZhbHVlPVwiQ01ZS1wiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmNteWspfT5cblxuICAgICAgICAgICAgPGlucHV0IDpyZWY9XCJzYXZlXCIgY2xhc3M9XCJwY3Itc2F2ZVwiIHZhbHVlPVwiJHt0KCdidG46c2F2ZScpfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLnNhdmUpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmJ0bjpzYXZlJyl9XCI+XG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cImNhbmNlbFwiIGNsYXNzPVwicGNyLWNhbmNlbFwiIHZhbHVlPVwiJHt0KCdidG46Y2FuY2VsJyl9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uY2FuY2VsKX0gYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpidG46Y2FuY2VsJyl9XCI+XG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cImNsZWFyXCIgY2xhc3M9XCJwY3ItY2xlYXJcIiB2YWx1ZT1cIiR7dCgnYnRuOmNsZWFyJyl9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uY2xlYXIpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmJ0bjpjbGVhcicpfVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGApO1xuXG4gICAgY29uc3QgaW50ID0gcm9vdC5pbnRlcmFjdGlvbjtcblxuICAgIC8vIFNlbGVjdCBvcHRpb24gd2hpY2ggaXMgbm90IGhpZGRlblxuICAgIGludC5vcHRpb25zLmZpbmQobyA9PiAhby5oaWRkZW4gJiYgIW8uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJykpO1xuXG4gICAgLy8gQXBwZW5kIG1ldGhvZCB0byBmaW5kIGN1cnJlbnRseSBhY3RpdmUgb3B0aW9uXG4gICAgaW50LnR5cGUgPSAoKSA9PiBpbnQub3B0aW9ucy5maW5kKGUgPT4gZS5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKTtcbiAgICByZXR1cm4gcm9vdDtcbn07XG4iLCAidHlwZSBEaXJlY3Rpb24gPSAndG9wJyB8ICdsZWZ0JyB8ICdib3R0b20nIHwgJ3JpZ2h0JztcbnR5cGUgQWxpZ25tZW50ID0gJ3N0YXJ0JyB8ICdtaWRkbGUnIHwgJ2VuZCc7XG5cbmV4cG9ydCB0eXBlIFZhcmlhbnRGbGlwT3JkZXIgPSB7XG4gICAgc3RhcnQ6IHN0cmluZztcbiAgICBtaWRkbGU6IHN0cmluZztcbiAgICBlbmQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFBvc2l0aW9uRmxpcE9yZGVyID0ge1xuICAgIHRvcDogc3RyaW5nO1xuICAgIHJpZ2h0OiBzdHJpbmc7XG4gICAgYm90dG9tOiBzdHJpbmc7XG4gICAgbGVmdDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTmFub1BvcFBvc2l0aW9uID0gYCR7RGlyZWN0aW9ufS0ke0FsaWdubWVudH1gIHwgRGlyZWN0aW9uO1xuXG5leHBvcnQgdHlwZSBOYW5vUG9wT3B0aW9ucyA9IHtcbiAgICBjb250YWluZXI6IERPTVJlY3Q7XG4gICAgcG9zaXRpb246IE5hbm9Qb3BQb3NpdGlvbjtcbiAgICB2YXJpYW50RmxpcE9yZGVyOiBWYXJpYW50RmxpcE9yZGVyO1xuICAgIHBvc2l0aW9uRmxpcE9yZGVyOiBQb3NpdGlvbkZsaXBPcmRlcjtcbiAgICBtYXJnaW46IG51bWJlcjtcbiAgICByZWZlcmVuY2U/OiBIVE1MRWxlbWVudDtcbiAgICBwb3BwZXI/OiBIVE1MRWxlbWVudDtcbiAgICBhcnJvdz86IEhUTUxFbGVtZW50O1xuICAgIHBhZGRpbmc/OiBudW1iZXI7XG59O1xuXG50eXBlIEF2YWlsYWJsZVBvc2l0aW9ucyA9IHtcbiAgICB0OiBudW1iZXI7XG4gICAgYjogbnVtYmVyO1xuICAgIGw6IG51bWJlcjtcbiAgICByOiBudW1iZXI7XG59O1xuXG50eXBlIEF2YWlsYWJsZVZhcmlhbnRzID0ge1xuICAgIHZzOiBudW1iZXI7XG4gICAgdm06IG51bWJlcjtcbiAgICB2ZTogbnVtYmVyO1xuICAgIGhzOiBudW1iZXI7XG4gICAgaG06IG51bWJlcjtcbiAgICBoZTogbnVtYmVyO1xufTtcblxudHlwZSBQb3NpdGlvblBhaXJzID0gW0RpcmVjdGlvbiwgRGlyZWN0aW9uXTtcblxuZXhwb3J0IHR5cGUgUG9zaXRpb25NYXRjaCA9ICd0cycgfCAndG0nIHwgJ3RlJyB8ICdicycgfCAnYm0nIHwgJ2JlJyB8ICdscycgfCAnbG0nIHwgJ2xlJyB8ICdycycgfCAncm0nIHwgJ3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBOYW5vUG9wIHtcbiAgICB1cGRhdGUodXBkYXRlZE9wdGlvbnM/OiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPik6IFBvc2l0aW9uTWF0Y2ggfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hbm9Qb3BDb25zdHJ1Y3RvciB7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gcmVmZXJlbmNlIFJlZmVyZW5jZSBlbGVtZW50XG4gICAgICogQHBhcmFtIHBvcHBlciBBY3R1YWwgcG9wcGVyIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBvcHRpb25zXG4gICAgICovXG4gICAgKHJlZmVyZW5jZTogSFRNTEVsZW1lbnQsIHBvcHBlcjogSFRNTEVsZW1lbnQsIG9wdGlvbnM/OiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPik6IE5hbm9Qb3A7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBQYXJ0aWFsIG9wdGlvbnMgd2hpY2ggZ2V0IG1lcmdlZCB3aXRoIHRoZSBjdXJyZW50IG9uZVxuICAgICAqL1xuICAgIChvcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4pOiBOYW5vUG9wO1xufVxuXG4vLyBFeHBvcnQgY3VycmVudCB2ZXJzaW9uXG5leHBvcnQgY29uc3QgdmVyc2lvbiA9IFZFUlNJT047XG5cbi8vIEV4cG9ydCBkZWZhdWx0XG5leHBvcnQgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgdmFyaWFudEZsaXBPcmRlcjoge3N0YXJ0OiAnc21lJywgbWlkZGxlOiAnbXNlJywgZW5kOiAnZW1zJ30sXG4gICAgcG9zaXRpb25GbGlwT3JkZXI6IHt0b3A6ICd0YnJsJywgcmlnaHQ6ICdybHRiJywgYm90dG9tOiAnYnRybCcsIGxlZnQ6ICdscmJ0J30sXG4gICAgcG9zaXRpb246ICdib3R0b20nLFxuICAgIG1hcmdpbjogOCxcbiAgICBwYWRkaW5nOiAwXG59O1xuXG4vKipcbiAqIFJlcG9zaXRpb25zIGFuIGVsZW1lbnQgb25jZSB1c2luZyB0aGUgcHJvdmlkZWQgb3B0aW9ucyBhbmQgZWxlbWVudHMuXG4gKiBAcGFyYW0gcmVmZXJlbmNlIFJlZmVyZW5jZSBlbGVtZW50XG4gKiBAcGFyYW0gcG9wcGVyIFBvcHBlciBlbGVtZW50XG4gKiBAcGFyYW0gb3B0IE9wdGlvbmFsLCBhZGRpdGlvbmFsIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcG9zaXRpb24gPSAoXG4gICAgcmVmZXJlbmNlOiBIVE1MRWxlbWVudCxcbiAgICBwb3BwZXI6IEhUTUxFbGVtZW50LFxuICAgIG9wdD86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+XG4pOiBQb3NpdGlvbk1hdGNoIHwgbnVsbCA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgICBjb250YWluZXIsXG4gICAgICAgIGFycm93LFxuICAgICAgICBtYXJnaW4sXG4gICAgICAgIHBhZGRpbmcsXG4gICAgICAgIHBvc2l0aW9uLFxuICAgICAgICB2YXJpYW50RmxpcE9yZGVyLFxuICAgICAgICBwb3NpdGlvbkZsaXBPcmRlclxuICAgIH0gPSB7XG4gICAgICAgIGNvbnRhaW5lcjogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAuLi5kZWZhdWx0cyxcbiAgICAgICAgLi4ub3B0XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlc2V0IHBvc2l0aW9uIHRvIHJlc29sdmUgdmlld3BvcnRcbiAgICAgKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3Bvc2l0aW9uI2ZpeGVkXG4gICAgICovXG4gICAgY29uc3Qge2xlZnQ6IG9yaWdpbmFsTGVmdCwgdG9wOiBvcmlnaW5hbFRvcH0gPSBwb3BwZXIuc3R5bGU7XG4gICAgcG9wcGVyLnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgcG9wcGVyLnN0eWxlLnRvcCA9ICcwJztcblxuICAgIGNvbnN0IHJlZkJveCA9IHJlZmVyZW5jZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBwb3BCb3ggPSBwb3BwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAvKipcbiAgICAgKiBIb2xkcyBjb29yZGluYXRlcyBvZiB0b3AsIGxlZnQsIGJvdHRvbSBhbmQgcmlnaHQgYWxpZ25tZW50XG4gICAgICovXG4gICAgY29uc3QgcG9zaXRpb25TdG9yZTogQXZhaWxhYmxlUG9zaXRpb25zID0ge1xuICAgICAgICB0OiByZWZCb3gudG9wIC0gcG9wQm94LmhlaWdodCAtIG1hcmdpbixcbiAgICAgICAgYjogcmVmQm94LmJvdHRvbSArIG1hcmdpbixcbiAgICAgICAgcjogcmVmQm94LnJpZ2h0ICsgbWFyZ2luLFxuICAgICAgICBsOiByZWZCb3gubGVmdCAtIHBvcEJveC53aWR0aCAtIG1hcmdpblxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBIb2xkcyBjb3JyZXNwb25kaW5nIHZhcmlhbnRzIChzdGFydCwgbWlkZGxlLCBlbmQpLlxuICAgICAqIFRoZSB2YWx1ZXMgZGVwZW5kIG9uIGhvcml6b250YWwgLyB2ZXJ0aWNhbCBvcmllbnRhdGlvblxuICAgICAqL1xuICAgIGNvbnN0IHZhcmlhbnRTdG9yZTogQXZhaWxhYmxlVmFyaWFudHMgPSB7XG4gICAgICAgIHZzOiByZWZCb3gubGVmdCxcbiAgICAgICAgdm06IHJlZkJveC5sZWZ0ICsgcmVmQm94LndpZHRoIC8gMiAtIHBvcEJveC53aWR0aCAvIDIsXG4gICAgICAgIHZlOiByZWZCb3gubGVmdCArIHJlZkJveC53aWR0aCAtIHBvcEJveC53aWR0aCxcbiAgICAgICAgaHM6IHJlZkJveC50b3AsXG4gICAgICAgIGhtOiByZWZCb3guYm90dG9tIC0gcmVmQm94LmhlaWdodCAvIDIgLSBwb3BCb3guaGVpZ2h0IC8gMixcbiAgICAgICAgaGU6IHJlZkJveC5ib3R0b20gLSBwb3BCb3guaGVpZ2h0XG4gICAgfTtcblxuICAgIC8vIEV4dHJhY3QgcG9zaXRpb24gYW5kIHZhcmlhbnRcbiAgICAvLyBUb3Atc3RhcnQgLT4gdG9wIGlzIFwicG9zaXRpb25cIiBhbmQgXCJzdGFydFwiIGlzIHRoZSB2YXJpYW50XG4gICAgY29uc3QgW3Bvc0tleSwgdmFyS2V5ID0gJ21pZGRsZSddID0gcG9zaXRpb24uc3BsaXQoJy0nKTtcbiAgICBjb25zdCBwb3NpdGlvbnMgPSBwb3NpdGlvbkZsaXBPcmRlcltwb3NLZXkgYXMga2V5b2YgUG9zaXRpb25GbGlwT3JkZXJdO1xuICAgIGNvbnN0IHZhcmlhbnRzID0gdmFyaWFudEZsaXBPcmRlclt2YXJLZXkgYXMga2V5b2YgVmFyaWFudEZsaXBPcmRlcl07XG5cbiAgICAvLyBUcnkgb3V0IGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMsIHN0YXJ0aW5nIHdpdGggdGhlIHByZWZlcnJlZCBvbmUuXG4gICAgY29uc3Qge3RvcCwgbGVmdCwgYm90dG9tLCByaWdodH0gPSBjb250YWluZXI7XG5cbiAgICBmb3IgKGNvbnN0IHAgb2YgcG9zaXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsID0gKHAgPT09ICd0JyB8fCBwID09PSAnYicpO1xuXG4gICAgICAgIC8vIFRoZSBwb3NpdGlvbi12YWx1ZVxuICAgICAgICBsZXQgcG9zaXRpb25WYWwgPSBwb3NpdGlvblN0b3JlW3AgYXMga2V5b2YgQXZhaWxhYmxlUG9zaXRpb25zXTtcblxuICAgICAgICAvLyBXaGljaCBwcm9wZXJ0eSBoYXMgdG8gYmUgY2hhbmdlcy5cbiAgICAgICAgY29uc3QgW3Bvc2l0aW9uS2V5LCB2YXJpYW50S2V5XSA9ICh2ZXJ0aWNhbCA/IFsndG9wJywgJ2xlZnQnXSA6IFsnbGVmdCcsICd0b3AnXSkgYXMgUG9zaXRpb25QYWlycztcblxuICAgICAgICAvKipcbiAgICAgICAgICogYm94IHJlZmVycyB0byB0aGUgc2l6ZSBvZiB0aGUgcG9wcGVyIGVsZW1lbnQuIERlcGVuZGluZyBvbiB0aGUgb3JpZW50YXRpb24gdGhpcyBpcyB3aWR0aCBvciBoZWlnaHQuXG4gICAgICAgICAqIFRoZSBsaW1pdCBpcyB0aGUgY29ycmVzcG9uZGluZywgbWF4aW11bSB2YWx1ZSBmb3IgdGhpcyBwb3NpdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IFtwb3NpdGlvblNpemUsIHZhcmlhbnRTaXplXSA9IHZlcnRpY2FsID8gW3BvcEJveC5oZWlnaHQsIHBvcEJveC53aWR0aF0gOiBbcG9wQm94LndpZHRoLCBwb3BCb3guaGVpZ2h0XTtcblxuICAgICAgICBjb25zdCBbcG9zaXRpb25NYXhpbXVtLCB2YXJpYW50TWF4aW11bV0gPSB2ZXJ0aWNhbCA/IFtib3R0b20sIHJpZ2h0XSA6IFtyaWdodCwgYm90dG9tXTtcbiAgICAgICAgY29uc3QgW3Bvc2l0aW9uTWluaW11bSwgdmFyaWFudE1pbmltdW1dID0gdmVydGljYWwgPyBbdG9wLCBsZWZ0XSA6IFtsZWZ0LCB0b3BdO1xuXG4gICAgICAgIC8vIFNraXAgcHJlLWNsaXBwZWQgdmFsdWVzXG4gICAgICAgIGlmIChwb3NpdGlvblZhbCA8IHBvc2l0aW9uTWluaW11bSB8fCAocG9zaXRpb25WYWwgKyBwb3NpdGlvblNpemUgKyBwYWRkaW5nKSA+IHBvc2l0aW9uTWF4aW11bSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFyaWFudHMpIHtcblxuICAgICAgICAgICAgLy8gVGhlIHBvc2l0aW9uLXZhbHVlLCB0aGUgcmVsYXRlZCBzaXplIHZhbHVlIG9mIHRoZSBwb3BwZXIgYW5kIHRoZSBsaW1pdFxuICAgICAgICAgICAgbGV0IHZhcmlhbnRWYWwgPSB2YXJpYW50U3RvcmVbKCh2ZXJ0aWNhbCA/ICd2JyA6ICdoJykgKyB2KSBhcyBrZXlvZiBBdmFpbGFibGVWYXJpYW50c107XG5cbiAgICAgICAgICAgIGlmICh2YXJpYW50VmFsIDwgdmFyaWFudE1pbmltdW0gfHwgKHZhcmlhbnRWYWwgKyB2YXJpYW50U2l6ZSArIHBhZGRpbmcpID4gdmFyaWFudE1heGltdW0pIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU3VidHJhY3QgcG9wQm94J3MgaW5pdGlhbCBwb3NpdGlvblxuICAgICAgICAgICAgdmFyaWFudFZhbCAtPSBwb3BCb3hbdmFyaWFudEtleV07XG4gICAgICAgICAgICBwb3NpdGlvblZhbCAtPSBwb3BCb3hbcG9zaXRpb25LZXldO1xuXG4gICAgICAgICAgICAvLyBBcHBseSBzdHlsZXMgYW5kIG5vcm1hbGl6ZSB2aWV3cG9ydFxuICAgICAgICAgICAgcG9wcGVyLnN0eWxlW3ZhcmlhbnRLZXldID0gYCR7dmFyaWFudFZhbH1weGA7XG4gICAgICAgICAgICBwb3BwZXIuc3R5bGVbcG9zaXRpb25LZXldID0gYCR7cG9zaXRpb25WYWx9cHhgO1xuXG4gICAgICAgICAgICBpZiAoYXJyb3cpIHtcbiAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgcmVmQm94J3MgY2VudGVyIG9mZnNldCBmcm9tIGl0cyB2YXJpYW50IHBvc2l0aW9uIGZvciBhcnJvdyBwb3NpdGlvbmluZ1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZkJveENlbnRlck9mZnNldCA9IHZlcnRpY2FsID8gcmVmQm94LndpZHRoIC8gMiA6IHJlZkJveC5oZWlnaHQgLyAyO1xuXG4gICAgICAgICAgICAgICAgLy8gV2hlbiByZWZCb3ggaXMgbGFyZ2VyIHRoYW4gcG9wQm94LCBoYXZlIHRoZSBhcnJvdydzIHZhcmlhbnQgcG9zaXRpb24gYmUgdGhlIGNlbnRlciBvZiBwb3BCb3ggaW5zdGVhZC5cbiAgICAgICAgICAgICAgICBjb25zdCBhcnJvd1ZhcmlhbnRWYWwgPSByZWZCb3hDZW50ZXJPZmZzZXQgKiAyIDwgdmFyaWFudFNpemUgP1xuICAgICAgICAgICAgICAgICAgICByZWZCb3hbdmFyaWFudEtleV0gKyByZWZCb3hDZW50ZXJPZmZzZXQgOiB2YXJpYW50VmFsICsgdmFyaWFudFNpemUgLyAyO1xuXG4gICAgICAgICAgICAgICAgLy8gQXJyb3cgcG9zaXRpb24gaXMgZWl0aGVyIG9uIG9uZSBzaWRlIG9mIHRoZSBwb3BCb3ggb3IgdGhlIG90aGVyLlxuICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvblZhbCA8IHJlZkJveFtwb3NpdGlvbktleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25WYWwgKz0gcG9zaXRpb25TaXplO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEFwcGx5IHN0eWxlcyB0byBhcnJvd1xuICAgICAgICAgICAgICAgIGFycm93LnN0eWxlW3ZhcmlhbnRLZXldID0gYCR7YXJyb3dWYXJpYW50VmFsfXB4YDtcbiAgICAgICAgICAgICAgICBhcnJvdy5zdHlsZVtwb3NpdGlvbktleV0gPSBgJHtwb3NpdGlvblZhbH1weGA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAocCArIHYpIGFzIFBvc2l0aW9uTWF0Y2g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXZlcnQgc3R5bGUgdmFsdWVzICh3b24ndCB3b3JrIHdpdGggc3R5bGVkLWVsZW1lbnRzIG9yIHNpbWlsYXIgc3lzdGVtcylcbiAgICAvLyBcIkZpeFwiIGZvciBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvbmFub3BvcC9pc3N1ZXMvN1xuICAgIHBvcHBlci5zdHlsZS5sZWZ0ID0gb3JpZ2luYWxMZWZ0O1xuICAgIHBvcHBlci5zdHlsZS50b3AgPSBvcmlnaW5hbFRvcDtcblxuICAgIHJldHVybiBudWxsO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgc3RhdGVmdWwgcG9wcGVyLlxuICogWW91IGNhbiBlaXRoZXIuLi5cbiAqIC4uLiBwYXNzIGFuIG9wdGlvbnMgb2JqZWN0OiBjcmVhdGVQb3BwZXIoPG9wdGlvbnM+KVxuICogLi4uIHBhc3MgYm90aCB0aGUgcmVmZXJlbmNlIGFuZCBwb3BwZXI6IGNyZWF0ZSg8cmVmPiwgPGVsPiwgPD9vcHRpb25zPilcbiAqIC4uLiBwYXNzIG5vdGhpbmcsIGluIHRoaXMgY2FzZSB5b3UnbGwgaGF2ZSB0byBzZXQgYXQgbGVhc3QgYm90aCBhIHJlZmVyZW5jZSBhbmQgYSBwb3BwZXIgaW4gdXBkYXRlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgfCBvcHRpb25zIFJlZmVyZW5jZSBlbGVtZW50IG9yIG9wdGlvbnNcbiAqIEBwYXJhbSBwb3BwZXIgUG9wcGVyIGVsZW1lbnRcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIGFkZGl0aW9uYWwgb3B0aW9uc1xuICovXG5leHBvcnQgY29uc3QgY3JlYXRlUG9wcGVyOiBOYW5vUG9wQ29uc3RydWN0b3IgPSAoXG4gICAgcmVmZXJlbmNlPzogSFRNTEVsZW1lbnQgfCBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPixcbiAgICBwb3BwZXI/OiBIVE1MRWxlbWVudCxcbiAgICBvcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz5cbik6IE5hbm9Qb3AgPT4ge1xuXG4gICAgLy8gUmVzb2x2ZSBvcHRpb25zXG4gICAgY29uc3QgYmFzZU9wdGlvbnM6IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+ID0gdHlwZW9mIHJlZmVyZW5jZSA9PT0gJ29iamVjdCcgJiYgIShyZWZlcmVuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgP1xuICAgICAgICByZWZlcmVuY2UgOiB7cmVmZXJlbmNlLCBwb3BwZXIsIC4uLm9wdGlvbnN9O1xuXG4gICAgcmV0dXJuIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUmVwb3NpdGlvbnMgdGhlIGN1cnJlbnQgcG9wcGVyLlxuICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBvcHRpb25zIHdoaWNoIGdldCBtZXJnZWQgd2l0aCB0aGUgY3VycmVudCBvbmVzLlxuICAgICAgICAgKi9cbiAgICAgICAgdXBkYXRlKG9wdGlvbnM6IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+ID0gYmFzZU9wdGlvbnMpOiBQb3NpdGlvbk1hdGNoIHwgbnVsbCB7XG4gICAgICAgICAgICBjb25zdCB7cmVmZXJlbmNlLCBwb3BwZXJ9ID0gT2JqZWN0LmFzc2lnbihiYXNlT3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGlmICghcG9wcGVyIHx8ICFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BvcHBlci0gb3IgcmVmZXJlbmNlLWVsZW1lbnQgbWlzc2luZy4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlcG9zaXRpb24ocmVmZXJlbmNlLCBwb3BwZXIsIGJhc2VPcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi91dGlscy91dGlscyc7XG5pbXBvcnQge3BhcnNlVG9IU1ZBfSBmcm9tICcuL3V0aWxzL2NvbG9yJztcbmltcG9ydCB7SFNWYUNvbG9yfSBmcm9tICcuL3V0aWxzL2hzdmFjb2xvcic7XG5pbXBvcnQgTW92ZWFibGUgZnJvbSAnLi9saWJzL21vdmVhYmxlJztcbmltcG9ydCBTZWxlY3RhYmxlIGZyb20gJy4vbGlicy9zZWxlY3RhYmxlJztcbmltcG9ydCBidWlsZFBpY2tyIGZyb20gJy4vdGVtcGxhdGUnO1xuaW1wb3J0IHtjcmVhdGVQb3BwZXJ9IGZyb20gJ25hbm9wb3AnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQaWNrciB7XG5cbiAgICAvLyBFeHBvc2UgcGlja3IgdXRpbHNcbiAgICBzdGF0aWMgdXRpbHMgPSBfO1xuXG4gICAgLy8gQXNzaWduIHZlcnNpb24gYW5kIGV4cG9ydFxuICAgIHN0YXRpYyB2ZXJzaW9uID0gVkVSU0lPTjtcblxuICAgIC8vIERlZmF1bHQgc3RyaW5nc1xuICAgIHN0YXRpYyBJMThOX0RFRkFVTFRTID0ge1xuXG4gICAgICAgIC8vIFN0cmluZ3MgdmlzaWJsZSBpbiB0aGUgVUlcbiAgICAgICAgJ3VpOmRpYWxvZyc6ICdjb2xvciBwaWNrZXIgZGlhbG9nJyxcbiAgICAgICAgJ2J0bjp0b2dnbGUnOiAndG9nZ2xlIGNvbG9yIHBpY2tlciBkaWFsb2cnLFxuICAgICAgICAnYnRuOnN3YXRjaCc6ICdjb2xvciBzd2F0Y2gnLFxuICAgICAgICAnYnRuOmxhc3QtY29sb3InOiAndXNlIHByZXZpb3VzIGNvbG9yJyxcbiAgICAgICAgJ2J0bjpzYXZlJzogJ1NhdmUnLFxuICAgICAgICAnYnRuOmNhbmNlbCc6ICdDYW5jZWwnLFxuICAgICAgICAnYnRuOmNsZWFyJzogJ0NsZWFyJyxcblxuICAgICAgICAvLyBTdHJpbmdzIHVzZWQgZm9yIGFyaWEtbGFiZWxzXG4gICAgICAgICdhcmlhOmJ0bjpzYXZlJzogJ3NhdmUgYW5kIGNsb3NlJyxcbiAgICAgICAgJ2FyaWE6YnRuOmNhbmNlbCc6ICdjYW5jZWwgYW5kIGNsb3NlJyxcbiAgICAgICAgJ2FyaWE6YnRuOmNsZWFyJzogJ2NsZWFyIGFuZCBjbG9zZScsXG4gICAgICAgICdhcmlhOmlucHV0JzogJ2NvbG9yIGlucHV0IGZpZWxkJyxcbiAgICAgICAgJ2FyaWE6cGFsZXR0ZSc6ICdjb2xvciBzZWxlY3Rpb24gYXJlYScsXG4gICAgICAgICdhcmlhOmh1ZSc6ICdodWUgc2VsZWN0aW9uIHNsaWRlcicsXG4gICAgICAgICdhcmlhOm9wYWNpdHknOiAnc2VsZWN0aW9uIHNsaWRlcidcbiAgICB9O1xuXG4gICAgLy8gRGVmYXVsdCBvcHRpb25zXG4gICAgc3RhdGljIERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgICAgICAgYXBwQ2xhc3M6IG51bGwsXG4gICAgICAgIHRoZW1lOiAnY2xhc3NpYycsXG4gICAgICAgIHVzZUFzQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgcGFkZGluZzogOCxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBjb21wYXJpc29uOiB0cnVlLFxuICAgICAgICBjbG9zZU9uU2Nyb2xsOiBmYWxzZSxcbiAgICAgICAgb3V0cHV0UHJlY2lzaW9uOiAwLFxuICAgICAgICBsb2NrT3BhY2l0eTogZmFsc2UsXG4gICAgICAgIGF1dG9SZXBvc2l0aW9uOiB0cnVlLFxuICAgICAgICBjb250YWluZXI6ICdib2R5JyxcblxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICBpbnRlcmFjdGlvbjoge31cbiAgICAgICAgfSxcblxuICAgICAgICBpMThuOiB7fSxcbiAgICAgICAgc3dhdGNoZXM6IG51bGwsXG4gICAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICAgIHNsaWRlcnM6IG51bGwsXG5cbiAgICAgICAgZGVmYXVsdDogJyM0MjQ0NWEnLFxuICAgICAgICBkZWZhdWx0UmVwcmVzZW50YXRpb246IG51bGwsXG4gICAgICAgIHBvc2l0aW9uOiAnYm90dG9tLW1pZGRsZScsXG4gICAgICAgIGFkanVzdGFibGVOdW1iZXJzOiB0cnVlLFxuICAgICAgICBzaG93QWx3YXlzOiBmYWxzZSxcblxuICAgICAgICBjbG9zZVdpdGhLZXk6ICdFc2NhcGUnXG4gICAgfTtcblxuICAgIC8vIFdpbGwgYmUgdXNlZCB0byBwcmV2ZW50IHNwZWNpZmljIGFjdGlvbnMgZHVyaW5nIGluaXRpbGl6YXRpb25cbiAgICBfaW5pdGlhbGl6aW5nQWN0aXZlID0gdHJ1ZTtcblxuICAgIC8vIElmIHRoZSBjdXJyZW50IGNvbG9yIHZhbHVlIHNob3VsZCBiZSByZWNhbGN1bGF0ZWRcbiAgICBfcmVjYWxjID0gdHJ1ZTtcblxuICAgIC8vIFBvc2l0aW9uaW5nIGVuZ2luZSBhbmQgRE9NLVRyZWVcbiAgICBfbmFub3BvcCA9IG51bGw7XG4gICAgX3Jvb3QgPSBudWxsO1xuXG4gICAgLy8gQ3VycmVudCBhbmQgbGFzdCBjb2xvciBmb3IgY29tcGFyaXNvblxuICAgIF9jb2xvciA9IEhTVmFDb2xvcigpO1xuICAgIF9sYXN0Q29sb3IgPSBIU1ZhQ29sb3IoKTtcbiAgICBfc3dhdGNoQ29sb3JzID0gW107XG5cbiAgICAvLyBBbmltYXRpb24gZnJhbWUgdXNlZCBmb3Igc2V0dXAuXG4gICAgLy8gV2lsbCBiZSBjYW5jZWxsZWQgaW4gY2FzZSBvZiBkZXN0cnVjdGlvbi5cbiAgICBfc2V0dXBBbmltYXRpb25GcmFtZSA9IG51bGw7XG5cbiAgICAvLyBFdmVubGlzdGVuZXIgbmFtZTogW2NhbGxiYWNrc11cbiAgICBfZXZlbnRMaXN0ZW5lciA9IHtcbiAgICAgICAgaW5pdDogW10sXG4gICAgICAgIHNhdmU6IFtdLFxuICAgICAgICBoaWRlOiBbXSxcbiAgICAgICAgc2hvdzogW10sXG4gICAgICAgIGNsZWFyOiBbXSxcbiAgICAgICAgY2hhbmdlOiBbXSxcbiAgICAgICAgY2hhbmdlc3RvcDogW10sXG4gICAgICAgIGNhbmNlbDogW10sXG4gICAgICAgIHN3YXRjaHNlbGVjdDogW11cbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3Iob3B0KSB7XG5cbiAgICAgICAgLy8gQXNzaWduIGRlZmF1bHQgdmFsdWVzXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdCA9IE9iamVjdC5hc3NpZ24oey4uLlBpY2tyLkRFRkFVTFRfT1BUSU9OU30sIG9wdCk7XG5cbiAgICAgICAgY29uc3Qge3N3YXRjaGVzLCBjb21wb25lbnRzLCB0aGVtZSwgc2xpZGVycywgbG9ja09wYWNpdHksIHBhZGRpbmd9ID0gb3B0O1xuXG4gICAgICAgIGlmIChbJ25hbm8nLCAnbW9ub2xpdGgnXS5pbmNsdWRlcyh0aGVtZSkgJiYgIXNsaWRlcnMpIHtcbiAgICAgICAgICAgIG9wdC5zbGlkZXJzID0gJ2gnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaW50ZXJhY3Rpb24gc2VjdGlvblxuICAgICAgICBpZiAoIWNvbXBvbmVudHMuaW50ZXJhY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbXBvbmVudHMuaW50ZXJhY3Rpb24gPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE92ZXJ3cml0ZSBwYWxldHRlIGlmIHByZXZpZXcsIG9wYWNpdHkgb3IgaHVlIGFyZSB0cnVlXG4gICAgICAgIGNvbnN0IHtwcmV2aWV3LCBvcGFjaXR5LCBodWUsIHBhbGV0dGV9ID0gY29tcG9uZW50cztcbiAgICAgICAgY29tcG9uZW50cy5vcGFjaXR5ID0gKCFsb2NrT3BhY2l0eSAmJiBvcGFjaXR5KTtcbiAgICAgICAgY29tcG9uZW50cy5wYWxldHRlID0gcGFsZXR0ZSB8fCBwcmV2aWV3IHx8IG9wYWNpdHkgfHwgaHVlO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgcGlja2VyXG4gICAgICAgIHRoaXMuX3ByZUJ1aWxkKCk7XG4gICAgICAgIHRoaXMuX2J1aWxkQ29tcG9uZW50cygpO1xuICAgICAgICB0aGlzLl9iaW5kRXZlbnRzKCk7XG4gICAgICAgIHRoaXMuX2ZpbmFsQnVpbGQoKTtcblxuICAgICAgICAvLyBBcHBlbmQgcHJlLWRlZmluZWQgc3dhdGNoIGNvbG9yc1xuICAgICAgICBpZiAoc3dhdGNoZXMgJiYgc3dhdGNoZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzd2F0Y2hlcy5mb3JFYWNoKGNvbG9yID0+IHRoaXMuYWRkU3dhdGNoKGNvbG9yKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbml0aWFsaXplIHBvc2l0aW9uaW5nIGVuZ2luZVxuICAgICAgICBjb25zdCB7YnV0dG9uLCBhcHB9ID0gdGhpcy5fcm9vdDtcbiAgICAgICAgdGhpcy5fbmFub3BvcCA9IGNyZWF0ZVBvcHBlcihidXR0b24sIGFwcCwge1xuICAgICAgICAgICAgbWFyZ2luOiBwYWRkaW5nXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgYWNjZXNzaWJpbGl0eVxuICAgICAgICBidXR0b24uc2V0QXR0cmlidXRlKCdyb2xlJywgJ2J1dHRvbicpO1xuICAgICAgICBidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgdGhpcy5fdCgnYnRuOnRvZ2dsZScpKTtcblxuICAgICAgICAvLyBJbml0aWxpemF0aW9uIGlzIGZpbmlzaCwgcGlja3IgaXMgdmlzaWJsZSBhbmQgcmVhZHkgZm9yIHVzYWdlXG4gICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICB0aGlzLl9zZXR1cEFuaW1hdGlvbkZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbiBjYigpIHtcblxuICAgICAgICAgICAgLy8gVE9ETzogUGVyZm9ybWFuY2UgaXNzdWUgZHVlIHRvIGhpZ2ggY2FsbC1yYXRlP1xuICAgICAgICAgICAgaWYgKCFhcHAub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQXBwbHkgZGVmYXVsdCBjb2xvclxuICAgICAgICAgICAgdGhhdC5zZXRDb2xvcihvcHQuZGVmYXVsdCk7XG4gICAgICAgICAgICB0aGF0Ll9yZVBvc2l0aW9uaW5nUGlja2VyKCk7XG5cbiAgICAgICAgICAgIC8vIEluaXRpYWxpemUgY29sb3IgcmVwcmVzZW50YXRpb25cbiAgICAgICAgICAgIGlmIChvcHQuZGVmYXVsdFJlcHJlc2VudGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhhdC5fcmVwcmVzZW50YXRpb24gPSBvcHQuZGVmYXVsdFJlcHJlc2VudGF0aW9uO1xuICAgICAgICAgICAgICAgIHRoYXQuc2V0Q29sb3JSZXByZXNlbnRhdGlvbih0aGF0Ll9yZXByZXNlbnRhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNob3cgcGlja3IgaWYgbG9ja2VkXG4gICAgICAgICAgICBpZiAob3B0LnNob3dBbHdheXMpIHtcbiAgICAgICAgICAgICAgICB0aGF0LnNob3coKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSW5pdGlhbGl6YXRpb24gaXMgZG9uZSAtIHBpY2tyIGlzIHVzYWJsZSwgZmlyZSBpbml0IGV2ZW50XG4gICAgICAgICAgICB0aGF0Ll9pbml0aWFsaXppbmdBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoYXQuX2VtaXQoJ2luaXQnKTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBpbnN0YW5jZSB2aWEgbWV0aG9kXG4gICAgc3RhdGljIGNyZWF0ZSA9IG9wdGlvbnMgPT4gbmV3IFBpY2tyKG9wdGlvbnMpO1xuXG4gICAgLy8gRG9lcyBvbmx5IHRoZSBhYnNvbHV0bHkgYmFzaWMgdGhpbmcgdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50c1xuICAgIF9wcmVCdWlsZCgpIHtcbiAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICAvLyBSZXNvbHZlIGVsZW1lbnRzXG4gICAgICAgIGZvciAoY29uc3QgdHlwZSBvZiBbJ2VsJywgJ2NvbnRhaW5lciddKSB7XG4gICAgICAgICAgICBvcHRpb25zW3R5cGVdID0gXy5yZXNvbHZlRWxlbWVudChvcHRpb25zW3R5cGVdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBlbGVtZW50IGFuZCBhcHBlbmQgaXQgdG8gYm9keSB0b1xuICAgICAgICAvLyBQcmV2ZW50IGluaXRpYWxpemF0aW9uIGVycm9yc1xuICAgICAgICB0aGlzLl9yb290ID0gYnVpbGRQaWNrcih0aGlzKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBhIGN1c3RvbSBidXR0b24gaXMgdXNlZFxuICAgICAgICBpZiAob3B0aW9ucy51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgdGhpcy5fcm9vdC5idXR0b24gPSBvcHRpb25zLmVsOyAvLyBSZXBsYWNlIGJ1dHRvbiB3aXRoIGN1c3RvbWl6ZWQgYnV0dG9uXG4gICAgICAgIH1cblxuICAgICAgICBvcHRpb25zLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLl9yb290LnJvb3QpO1xuICAgIH1cblxuICAgIF9maW5hbEJ1aWxkKCkge1xuICAgICAgICBjb25zdCBvcHQgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLl9yb290O1xuXG4gICAgICAgIC8vIFJlbW92ZSBmcm9tIGJvZHlcbiAgICAgICAgb3B0LmNvbnRhaW5lci5yZW1vdmVDaGlsZChyb290LnJvb3QpO1xuXG4gICAgICAgIGlmIChvcHQuaW5saW5lKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBvcHQuZWwucGFyZW50RWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKG9wdC5lbC5uZXh0U2libGluZykge1xuICAgICAgICAgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUocm9vdC5hcHAsIG9wdC5lbC5uZXh0U2libGluZyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChyb290LmFwcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHQuY29udGFpbmVyLmFwcGVuZENoaWxkKHJvb3QuYXBwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERvbid0IHJlcGxhY2UgdGhlIHRoZSBlbGVtZW50IGlmIGEgY3VzdG9tIGJ1dHRvbiBpcyB1c2VkXG4gICAgICAgIGlmICghb3B0LnVzZUFzQnV0dG9uKSB7XG5cbiAgICAgICAgICAgIC8vIFJlcGxhY2UgZWxlbWVudCB3aXRoIGFjdHVhbCBjb2xvci1waWNrZXJcbiAgICAgICAgICAgIG9wdC5lbC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChyb290LnJvb3QsIG9wdC5lbCk7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0LmlubGluZSkge1xuICAgICAgICAgICAgb3B0LmVsLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgaXQgc2hvdWxkIGJlIGltbWVkaWF0bHkgZGlzYWJsZWRcbiAgICAgICAgaWYgKG9wdC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBjb2xvciBjb21wYXJpc29uIGlzIGRpc2FibGVkLCBpZiB5ZXMgLSByZW1vdmUgdHJhbnNpdGlvbnMgc28gZXZlcnl0aGluZyBrZWVwcyBzbW9vdGhseVxuICAgICAgICBpZiAoIW9wdC5jb21wYXJpc29uKSB7XG4gICAgICAgICAgICByb290LmJ1dHRvbi5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuXG4gICAgICAgICAgICBpZiAoIW9wdC51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgICAgIHJvb3QucHJldmlldy5sYXN0Q29sb3Iuc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIF9idWlsZENvbXBvbmVudHMoKSB7XG5cbiAgICAgICAgLy8gSW5zdGFuY2UgcmVmZXJlbmNlXG4gICAgICAgIGNvbnN0IGluc3QgPSB0aGlzO1xuICAgICAgICBjb25zdCBjcyA9IHRoaXMub3B0aW9ucy5jb21wb25lbnRzO1xuICAgICAgICBjb25zdCBzbGlkZXJzID0gKGluc3Qub3B0aW9ucy5zbGlkZXJzIHx8ICd2JykucmVwZWF0KDIpO1xuICAgICAgICBjb25zdCBbc28sIHNoXSA9IHNsaWRlcnMubWF0Y2goL15bdmhdKyQvZykgPyBzbGlkZXJzIDogW107XG5cbiAgICAgICAgLy8gUmUtYXNzaWduIGlmIG51bGxcbiAgICAgICAgY29uc3QgZ2V0Q29sb3IgPSAoKSA9PlxuICAgICAgICAgICAgdGhpcy5fY29sb3IgfHwgKHRoaXMuX2NvbG9yID0gdGhpcy5fbGFzdENvbG9yLmNsb25lKCkpO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSB7XG5cbiAgICAgICAgICAgIHBhbGV0dGU6IE1vdmVhYmxlKHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnN0Ll9yb290LnBhbGV0dGUucGlja2VyLFxuICAgICAgICAgICAgICAgIHdyYXBwZXI6IGluc3QuX3Jvb3QucGFsZXR0ZS5wYWxldHRlLFxuXG4gICAgICAgICAgICAgICAgb25zdG9wOiAoKSA9PiBpbnN0Ll9lbWl0KCdjaGFuZ2VzdG9wJywgJ3NsaWRlcicsIGluc3QpLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKHgsIHkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcy5wYWxldHRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHtfcm9vdCwgb3B0aW9uc30gPSBpbnN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7bGFzdENvbG9yLCBjdXJyZW50Q29sb3J9ID0gX3Jvb3QucHJldmlldztcblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGlucHV0IGZpZWxkIG9ubHkgaWYgdGhlIHVzZXIgaXMgY3VycmVudGx5IG5vdCB0eXBpbmdcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3QuX3JlY2FsYykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgc2F0dXJhdGlvbiBiYXNlZCBvbiB0aGUgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnMgPSB4ICogMTAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci52ID0gMTAwIC0geSAqIDEwMDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJldmVudCBmYWxsaW5nIHVuZGVyIHplcm9cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnYgPCAwID8gY29sb3IudiA9IDAgOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zdC5fdXBkYXRlT3V0cHV0KCdzbGlkZXInKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCBwaWNrZXIgYW5kIGdyYWRpZW50IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc1JHQmFTdHJpbmcgPSBjb2xvci50b1JHQkEoKS50b1N0cmluZygwKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBjc3NSR0JhU3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyYXBwZXIuc3R5bGUuYmFja2dyb3VuZCA9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgJHtjb2xvci5hfSksIHRyYW5zcGFyZW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCBoc2xhKCR7Y29sb3IuaH0sIDEwMCUsIDUwJSwgJHtjb2xvci5hfSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgJHtjb2xvci5hfSkpXG4gICAgICAgICAgICAgICAgICAgIGA7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgY29sb3IgaXMgbG9ja2VkXG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5jb21wYXJpc29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfcm9vdC5idXR0b24uc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGNvbG9yLCByZW1vdmUgdGhlIGNsZWFyZWQgaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgX3Jvb3QuYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2NsZWFyJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMudXNlQXNCdXR0b24gJiYgIWluc3QuX2xhc3RDb2xvcikge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBseSBjb2xvciB0byBib3RoIHRoZSBsYXN0IGFuZCBjdXJyZW50IGNvbG9yIHNpbmNlIHRoZSBjdXJyZW50IHN0YXRlIGlzIGNsZWFyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlJ3MgYSBzd2F0Y2ggd2hpY2ggY29sb3IgbWF0Y2hlcyB0aGUgY3VycmVudCBvbmVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGV4YSA9IGNvbG9yLnRvSEVYQSgpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qge2VsLCBjb2xvcn0gb2YgaW5zdC5fc3dhdGNoQ29sb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3RbaGV4YSA9PT0gY29sb3IudG9IRVhBKCkudG9TdHJpbmcoKSA/ICdhZGQnIDogJ3JlbW92ZSddKCdwY3ItYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGFuZ2UgY3VycmVudCBjb2xvclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIGh1ZTogTW92ZWFibGUoe1xuICAgICAgICAgICAgICAgIGxvY2s6IHNoID09PSAndicgPyAnaCcgOiAndicsXG4gICAgICAgICAgICAgICAgZWxlbWVudDogaW5zdC5fcm9vdC5odWUucGlja2VyLFxuICAgICAgICAgICAgICAgIHdyYXBwZXI6IGluc3QuX3Jvb3QuaHVlLnNsaWRlcixcblxuICAgICAgICAgICAgICAgIG9uc3RvcDogKCkgPT4gaW5zdC5fZW1pdCgnY2hhbmdlc3RvcCcsICdzbGlkZXInLCBpbnN0KSxcbiAgICAgICAgICAgICAgICBvbmNoYW5nZSh2KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3MuaHVlIHx8ICFjcy5wYWxldHRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGh1ZVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdC5fcmVjYWxjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5oID0gdiAqIDM2MDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjb2xvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYGhzbCgke2NvbG9yLmh9LCAxMDAlLCA1MCUpYDtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cy5wYWxldHRlLnRyaWdnZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgb3BhY2l0eTogTW92ZWFibGUoe1xuICAgICAgICAgICAgICAgIGxvY2s6IHNvID09PSAndicgPyAnaCcgOiAndicsXG4gICAgICAgICAgICAgICAgZWxlbWVudDogaW5zdC5fcm9vdC5vcGFjaXR5LnBpY2tlcixcbiAgICAgICAgICAgICAgICB3cmFwcGVyOiBpbnN0Ll9yb290Lm9wYWNpdHkuc2xpZGVyLFxuXG4gICAgICAgICAgICAgICAgb25zdG9wOiAoKSA9PiBpbnN0Ll9lbWl0KCdjaGFuZ2VzdG9wJywgJ3NsaWRlcicsIGluc3QpLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcy5vcGFjaXR5IHx8ICFjcy5wYWxldHRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIG9wYWNpdHlcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3QuX3JlY2FsYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IuYSA9IE1hdGgucm91bmQodiAqIDFlMikgLyAxMDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBgcmdiYSgwLCAwLCAwLCAke2NvbG9yLmF9KWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMucGFsZXR0ZS50cmlnZ2VyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIHNlbGVjdGFibGU6IFNlbGVjdGFibGUoe1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzOiBpbnN0Ll9yb290LmludGVyYWN0aW9uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYWN0aXZlJyxcblxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zdC5fcmVwcmVzZW50YXRpb24gPSBlLnRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGluc3QuX3JlY2FsYyAmJiBpbnN0Ll91cGRhdGVPdXRwdXQoJ3N3YXRjaCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fY29tcG9uZW50cyA9IGNvbXBvbmVudHM7XG4gICAgfVxuXG4gICAgX2JpbmRFdmVudHMoKSB7XG4gICAgICAgIGNvbnN0IHtfcm9vdCwgb3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIGNvbnN0IGV2ZW50QmluZGluZ3MgPSBbXG5cbiAgICAgICAgICAgIC8vIENsZWFyIGNvbG9yXG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLmNsZWFyLCAnY2xpY2snLCAoKSA9PiB0aGlzLl9jbGVhckNvbG9yKCkpLFxuXG4gICAgICAgICAgICAvLyBTZWxlY3QgbGFzdCBjb2xvciBvbiBjbGlja1xuICAgICAgICAgICAgXy5vbihbXG4gICAgICAgICAgICAgICAgX3Jvb3QuaW50ZXJhY3Rpb24uY2FuY2VsLFxuICAgICAgICAgICAgICAgIF9yb290LnByZXZpZXcubGFzdENvbG9yXG4gICAgICAgICAgICBdLCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRIU1ZBKC4uLih0aGlzLl9sYXN0Q29sb3IgfHwgdGhpcy5fY29sb3IpLnRvSFNWQSgpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjYW5jZWwnKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBTYXZlIGNvbG9yXG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLnNhdmUsICdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAhdGhpcy5hcHBseUNvbG9yKCkgJiYgIW9wdGlvbnMuc2hvd0Fsd2F5cyAmJiB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBVc2VyIGlucHV0XG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLnJlc3VsdCwgWydrZXl1cCcsICdpbnB1dCddLCBlID0+IHtcblxuICAgICAgICAgICAgICAgIC8vIEZpcmUgbGlzdGVuZXIgaWYgaW5pdGlhbGl6YXRpb24gaXMgZmluaXNoIGFuZCBjaGFuZ2VkIGNvbG9yIHdhcyB2YWxpZFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldENvbG9yKGUudGFyZ2V0LnZhbHVlLCB0cnVlKSAmJiAhdGhpcy5faW5pdGlhbGl6aW5nQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NoYW5nZScsIHRoaXMuX2NvbG9yLCAnaW5wdXQnLCB0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlc3RvcCcsICdpbnB1dCcsIHRoaXMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gRGV0ZWN0IHVzZXIgaW5wdXQgYW5kIGRpc2FibGUgYXV0by1yZWNhbGN1bGF0aW9uXG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLnJlc3VsdCwgWydmb2N1cycsICdibHVyJ10sIGUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlY2FsYyA9IGUudHlwZSA9PT0gJ2JsdXInO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlY2FsYyAmJiB0aGlzLl91cGRhdGVPdXRwdXQobnVsbCk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gQ2FuY2VsIGlucHV0IGRldGVjdGlvbiBvbiBjb2xvciBjaGFuZ2VcbiAgICAgICAgICAgIF8ub24oW1xuICAgICAgICAgICAgICAgIF9yb290LnBhbGV0dGUucGFsZXR0ZSxcbiAgICAgICAgICAgICAgICBfcm9vdC5wYWxldHRlLnBpY2tlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5odWUuc2xpZGVyLFxuICAgICAgICAgICAgICAgIF9yb290Lmh1ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3Qub3BhY2l0eS5zbGlkZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3Qub3BhY2l0eS5waWNrZXJcbiAgICAgICAgICAgIF0sIFsnbW91c2Vkb3duJywgJ3RvdWNoc3RhcnQnXSwgKCkgPT4gdGhpcy5fcmVjYWxjID0gdHJ1ZSwge3Bhc3NpdmU6IHRydWV9KVxuICAgICAgICBdO1xuXG4gICAgICAgIC8vIFByb3ZpZGUgaGlkaW5nIC8gc2hvd2luZyBhYmlsaXRpZXMgb25seSBpZiBzaG93QWx3YXlzIGlzIGZhbHNlXG4gICAgICAgIGlmICghb3B0aW9ucy5zaG93QWx3YXlzKSB7XG4gICAgICAgICAgICBjb25zdCBjayA9IG9wdGlvbnMuY2xvc2VXaXRoS2V5O1xuXG4gICAgICAgICAgICBldmVudEJpbmRpbmdzLnB1c2goXG5cbiAgICAgICAgICAgICAgICAvLyBTYXZlIGFuZCBoaWRlIC8gc2hvdyBwaWNrZXJcbiAgICAgICAgICAgICAgICBfLm9uKF9yb290LmJ1dHRvbiwgJ2NsaWNrJywgKCkgPT4gdGhpcy5pc09wZW4oKSA/IHRoaXMuaGlkZSgpIDogdGhpcy5zaG93KCkpLFxuXG4gICAgICAgICAgICAgICAgLy8gQ2xvc2Ugd2l0aCBlc2NhcGUga2V5XG4gICAgICAgICAgICAgICAgXy5vbihkb2N1bWVudCwgJ2tleXVwJywgZSA9PiB0aGlzLmlzT3BlbigpICYmIChlLmtleSA9PT0gY2sgfHwgZS5jb2RlID09PSBjaykgJiYgdGhpcy5oaWRlKCkpLFxuXG4gICAgICAgICAgICAgICAgLy8gQ2FuY2VsIHNlbGVjdGluZyBpZiB0aGUgdXNlciB0YXBzIGJlaGluZCB0aGUgY29sb3IgcGlja2VyXG4gICAgICAgICAgICAgICAgXy5vbihkb2N1bWVudCwgWyd0b3VjaHN0YXJ0JywgJ21vdXNlZG93biddLCBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPcGVuKCkgJiYgIV8uZXZlbnRQYXRoKGUpLnNvbWUoZWwgPT4gZWwgPT09IF9yb290LmFwcCB8fCBlbCA9PT0gX3Jvb3QuYnV0dG9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7Y2FwdHVyZTogdHJ1ZX0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFrZSBpbnB1dCBhZGp1c3RhYmxlIGlmIGVuYWJsZWRcbiAgICAgICAgaWYgKG9wdGlvbnMuYWRqdXN0YWJsZU51bWJlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlcyA9IHtcbiAgICAgICAgICAgICAgICByZ2JhOiBbMjU1LCAyNTUsIDI1NSwgMV0sXG4gICAgICAgICAgICAgICAgaHN2YTogWzM2MCwgMTAwLCAxMDAsIDFdLFxuICAgICAgICAgICAgICAgIGhzbGE6IFszNjAsIDEwMCwgMTAwLCAxXSxcbiAgICAgICAgICAgICAgICBjbXlrOiBbMTAwLCAxMDAsIDEwMCwgMTAwXVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgXy5hZGp1c3RhYmxlSW5wdXROdW1iZXJzKF9yb290LmludGVyYWN0aW9uLnJlc3VsdCwgKG8sIHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSByYW5nZXNbdGhpcy5nZXRDb2xvclJlcHJlc2VudGF0aW9uKCkudG9Mb3dlckNhc2UoKV07XG5cbiAgICAgICAgICAgICAgICBpZiAocmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4ID0gcmFuZ2VbaW5kZXhdO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBuZXh0IHJlYXNvbmFibGUgbnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG52ID0gbyArIChtYXggPj0gMTAwID8gc3RlcCAqIDEwMDAgOiBzdGVwKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBBcHBseSByYW5nZSBvZiB6ZXJvIHVwIHRvIG1heCwgZml4IGZsb2F0aW5nLXBvaW50IGlzc3Vlc1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnYgPD0gMCA/IDAgOiBOdW1iZXIoKG52IDwgbWF4ID8gbnYgOiBtYXgpLnRvUHJlY2lzaW9uKDMpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuYXV0b1JlcG9zaXRpb24gJiYgIW9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICBsZXQgdGltZW91dCA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcblxuICAgICAgICAgICAgLy8gUmUtY2FsYyBwb3NpdGlvbiBvbiB3aW5kb3cgcmVzaXplLCBzY3JvbGwgYW5kIHdoZWVsXG4gICAgICAgICAgICBldmVudEJpbmRpbmdzLnB1c2goXG4gICAgICAgICAgICAgICAgXy5vbih3aW5kb3csIFsnc2Nyb2xsJywgJ3Jlc2l6ZSddLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LmlzT3BlbigpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmNsb3NlT25TY3JvbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWVvdXQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aW1lb3V0ID0gbnVsbCwgMTAwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBwb3NpdGlvbiBvbiBldmVyeSBmcmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiBycygpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcmVQb3NpdGlvbmluZ1BpY2tlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGltZW91dCAhPT0gbnVsbCkgJiYgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRpbWVvdXQgPSBudWxsLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwge2NhcHR1cmU6IHRydWV9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNhdmUgYmluZGluZ3NcbiAgICAgICAgdGhpcy5fZXZlbnRCaW5kaW5ncyA9IGV2ZW50QmluZGluZ3M7XG4gICAgfVxuXG4gICAgX3JlUG9zaXRpb25pbmdQaWNrZXIoKSB7XG4gICAgICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gTm8gcmVwb3NpdGlvbmluZyBuZWVkZWQgaWYgaW5saW5lXG4gICAgICAgIGlmICghb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0aGlzLl9uYW5vcG9wLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyOiBkb2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBvcHRpb25zLnBvc2l0aW9uXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLl9yb290LmFwcDtcbiAgICAgICAgICAgICAgICBjb25zdCBlYiA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGVsLnN0eWxlLnRvcCA9IGAkeyh3aW5kb3cuaW5uZXJIZWlnaHQgLSBlYi5oZWlnaHQpIC8gMn1weGA7XG4gICAgICAgICAgICAgICAgZWwuc3R5bGUubGVmdCA9IGAkeyh3aW5kb3cuaW5uZXJXaWR0aCAtIGViLndpZHRoKSAvIDJ9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3VwZGF0ZU91dHB1dChldmVudFNvdXJjZSkge1xuICAgICAgICBjb25zdCB7X3Jvb3QsIF9jb2xvciwgb3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNvbXBvbmVudCBpcyBwcmVzZW50XG4gICAgICAgIGlmIChfcm9vdC5pbnRlcmFjdGlvbi50eXBlKCkpIHtcblxuICAgICAgICAgICAgLy8gQ29uc3RydWN0IGZ1bmN0aW9uIG5hbWUgYW5kIGNhbGwgaWYgcHJlc2VudFxuICAgICAgICAgICAgY29uc3QgbWV0aG9kID0gYHRvJHtfcm9vdC5pbnRlcmFjdGlvbi50eXBlKCkuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKX1gO1xuICAgICAgICAgICAgX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LnZhbHVlID0gdHlwZW9mIF9jb2xvclttZXRob2RdID09PSAnZnVuY3Rpb24nID9cbiAgICAgICAgICAgICAgICBfY29sb3JbbWV0aG9kXSgpLnRvU3RyaW5nKG9wdGlvbnMub3V0cHV0UHJlY2lzaW9uKSA6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlyZSBsaXN0ZW5lciBpZiBpbml0aWFsaXphdGlvbiBpcyBmaW5pc2hcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUgJiYgdGhpcy5fcmVjYWxjKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2UnLCBfY29sb3IsIGV2ZW50U291cmNlLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9jbGVhckNvbG9yKHNpbGVudCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHtfcm9vdCwgb3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIENoYW5nZSBvbmx5IHRoZSBidXR0b24gY29sb3IgaWYgaXQgaXNuJ3QgY3VzdG9taXplZFxuICAgICAgICBpZiAoIW9wdGlvbnMudXNlQXNCdXR0b24pIHtcbiAgICAgICAgICAgIF9yb290LmJ1dHRvbi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCAncmdiYSgwLCAwLCAwLCAwLjE1KScpO1xuICAgICAgICB9XG5cbiAgICAgICAgX3Jvb3QuYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2NsZWFyJyk7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLnNob3dBbHdheXMpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbGFzdENvbG9yID0gbnVsbDtcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUgJiYgIXNpbGVudCkge1xuXG4gICAgICAgICAgICAvLyBGaXJlIGxpc3RlbmVyXG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdzYXZlJywgbnVsbCk7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdjbGVhcicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3BhcnNlTG9jYWxDb2xvcihzdHIpIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlcywgdHlwZSwgYX0gPSBwYXJzZVRvSFNWQShzdHIpO1xuICAgICAgICBjb25zdCB7bG9ja09wYWNpdHl9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCBhbHBoYU1ha2VzQUNoYW5nZSA9IGEgIT09IHVuZGVmaW5lZCAmJiBhICE9PSAxO1xuXG4gICAgICAgIC8vIElmIG5vIG9wYWNpdHkgaXMgYXBwbGllZCwgYWRkIHVuZGVmaW5lZCBhdCB0aGUgdmVyeSBlbmQgd2hpY2ggZ2V0c1xuICAgICAgICAvLyBTZXQgdG8gMSBpbiBzZXRIU1ZBXG4gICAgICAgIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgICAgdmFsdWVzWzNdID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlczogKCF2YWx1ZXMgfHwgKGxvY2tPcGFjaXR5ICYmIGFscGhhTWFrZXNBQ2hhbmdlKSkgPyBudWxsIDogdmFsdWVzLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIF90KGtleSkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmkxOG5ba2V5XSB8fCBQaWNrci5JMThOX0RFRkFVTFRTW2tleV07XG4gICAgfVxuXG4gICAgX2VtaXQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lcltldmVudF0uZm9yRWFjaChjYiA9PiBjYiguLi5hcmdzLCB0aGlzKSk7XG4gICAgfVxuXG4gICAgb24oZXZlbnQsIGNiKSB7XG4gICAgICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJbZXZlbnRdLnB1c2goY2IpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBvZmYoZXZlbnQsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNhbGxCYWNrcyA9ICh0aGlzLl9ldmVudExpc3RlbmVyW2V2ZW50XSB8fCBbXSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2FsbEJhY2tzLmluZGV4T2YoY2IpO1xuXG4gICAgICAgIGlmICh+aW5kZXgpIHtcbiAgICAgICAgICAgIGNhbGxCYWNrcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBwZW5kcyBhIGNvbG9yIHRvIHRoZSBzd2F0Y2ggcGFsZXR0ZVxuICAgICAqIEBwYXJhbSBjb2xvclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIGFkZFN3YXRjaChjb2xvcikge1xuICAgICAgICBjb25zdCB7dmFsdWVzfSA9IHRoaXMuX3BhcnNlTG9jYWxDb2xvcihjb2xvcik7XG5cbiAgICAgICAgaWYgKHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3Qge19zd2F0Y2hDb2xvcnMsIF9yb290fSA9IHRoaXM7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9IEhTVmFDb2xvciguLi52YWx1ZXMpO1xuXG4gICAgICAgICAgICAvLyBDcmVhdGUgbmV3IHN3YXRjaCBIVE1MRWxlbWVudFxuICAgICAgICAgICAgY29uc3QgZWwgPSBfLmNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nKFxuICAgICAgICAgICAgICAgIGA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBzdHlsZT1cIi0tcGNyLWNvbG9yOiAke2NvbG9yLnRvUkdCQSgpLnRvU3RyaW5nKDApfVwiIGFyaWEtbGFiZWw9XCIke3RoaXMuX3QoJ2J0bjpzd2F0Y2gnKX1cIi8+YFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gQXBwZW5kIGVsZW1lbnQgYW5kIHNhdmUgc3dhdGNoIGRhdGFcbiAgICAgICAgICAgIF9yb290LnN3YXRjaGVzLmFwcGVuZENoaWxkKGVsKTtcbiAgICAgICAgICAgIF9zd2F0Y2hDb2xvcnMucHVzaCh7ZWwsIGNvbG9yfSk7XG5cbiAgICAgICAgICAgIC8vIEJpbmQgZXZlbnRcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50QmluZGluZ3MucHVzaChcbiAgICAgICAgICAgICAgICBfLm9uKGVsLCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SFNWQSguLi5jb2xvci50b0hTVkEoKSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3N3YXRjaHNlbGVjdCcsIGNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlJywgY29sb3IsICdzd2F0Y2gnLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHN3YXRjaCBjb2xvciBieSBpdCdzIGluZGV4XG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgcmVtb3ZlU3dhdGNoKGluZGV4KSB7XG4gICAgICAgIGNvbnN0IHN3YXRjaENvbG9yID0gdGhpcy5fc3dhdGNoQ29sb3JzW2luZGV4XTtcblxuICAgICAgICAvLyBDaGVjayBzd2F0Y2ggZGF0YVxuICAgICAgICBpZiAoc3dhdGNoQ29sb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHtlbH0gPSBzd2F0Y2hDb2xvcjtcblxuICAgICAgICAgICAgLy8gUmVtb3ZlIEhUTUwgY2hpbGQgYW5kIHN3YXRjaCBkYXRhXG4gICAgICAgICAgICB0aGlzLl9yb290LnN3YXRjaGVzLnJlbW92ZUNoaWxkKGVsKTtcbiAgICAgICAgICAgIHRoaXMuX3N3YXRjaENvbG9ycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgYXBwbHlDb2xvcihzaWxlbnQgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCB7cHJldmlldywgYnV0dG9ufSA9IHRoaXMuX3Jvb3Q7XG5cbiAgICAgICAgLy8gQ2hhbmdlIHByZXZpZXcgYW5kIGN1cnJlbnQgY29sb3JcbiAgICAgICAgY29uc3QgY3NzUkdCYVN0cmluZyA9IHRoaXMuX2NvbG9yLnRvUkdCQSgpLnRvU3RyaW5nKDApO1xuICAgICAgICBwcmV2aWV3Lmxhc3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcblxuICAgICAgICAvLyBDaGFuZ2Ugb25seSB0aGUgYnV0dG9uIGNvbG9yIGlmIGl0IGlzbid0IGN1c3RvbWl6ZWRcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMudXNlQXNCdXR0b24pIHtcbiAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVzZXIgY2hhbmdlZCB0aGUgY29sb3Igc28gcmVtb3ZlIHRoZSBjbGVhciBjbGFzXG4gICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdjbGVhcicpO1xuXG4gICAgICAgIC8vIFNhdmUgbGFzdCBjb2xvclxuICAgICAgICB0aGlzLl9sYXN0Q29sb3IgPSB0aGlzLl9jb2xvci5jbG9uZSgpO1xuXG4gICAgICAgIC8vIEZpcmUgbGlzdGVuZXJcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUgJiYgIXNpbGVudCkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnc2F2ZScsIHRoaXMuX2NvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc3Ryb3kncyBhbGwgZnVuY3Rpb25hbGl0eXNcbiAgICAgKi9cbiAgICBkZXN0cm95KCkge1xuXG4gICAgICAgIC8vIENhbmNlbCBzZXR1cC1mcmFtZSBpZiBzZXRcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fc2V0dXBBbmltYXRpb25GcmFtZSk7XG5cbiAgICAgICAgLy8gVW5iaW5kIGV2ZW50c1xuICAgICAgICB0aGlzLl9ldmVudEJpbmRpbmdzLmZvckVhY2goYXJncyA9PiBfLm9mZiguLi5hcmdzKSk7XG5cbiAgICAgICAgLy8gRGVzdHJveSBzdWItY29tcG9uZW50c1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLl9jb21wb25lbnRzKVxuICAgICAgICAgICAgLmZvckVhY2goa2V5ID0+IHRoaXMuX2NvbXBvbmVudHNba2V5XS5kZXN0cm95KCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc3Ryb3kncyBhbGwgZnVuY3Rpb25hbGl0eXMgYW5kIHJlbW92ZXNcbiAgICAgKiB0aGUgcGlja3IgZWxlbWVudC5cbiAgICAgKi9cbiAgICBkZXN0cm95QW5kUmVtb3ZlKCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgY29uc3Qge3Jvb3QsIGFwcH0gPSB0aGlzLl9yb290O1xuXG4gICAgICAgIC8vIFJlbW92ZSBlbGVtZW50XG4gICAgICAgIGlmIChyb290LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJvb3QucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChyb290KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSAucGNyLWFwcFxuICAgICAgICBhcHAucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChhcHApO1xuXG4gICAgICAgIC8vIFRoZXJlIGFyZSByZWZlcmVuY2VzIHRvIHZhcmlvdXMgRE9NIGVsZW1lbnRzIHN0b3JlZCBpbiB0aGUgcGlja3IgaW5zdGFuY2VcbiAgICAgICAgLy8gVGhpcyBjbGVhbnMgYWxsIG9mIHRoZW0gdG8gYXZvaWQgZGV0YWNoZWQgRE9Nc1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzKVxuICAgICAgICAgICAgLmZvckVhY2goa2V5ID0+IHRoaXNba2V5XSA9IG51bGwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGVzIHRoZSBjb2xvci1waWNrZXIgdWkuXG4gICAgICovXG4gICAgaGlkZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QuYXBwLmNsYXNzTGlzdC5yZW1vdmUoJ3Zpc2libGUnKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2hpZGUnKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3dzIHRoZSBjb2xvci1waWNrZXIgdWkuXG4gICAgICovXG4gICAgc2hvdygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQgJiYgIXRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QuYXBwLmNsYXNzTGlzdC5hZGQoJ3Zpc2libGUnKTtcbiAgICAgICAgICAgIHRoaXMuX3JlUG9zaXRpb25pbmdQaWNrZXIoKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3Nob3cnLCB0aGlzLl9jb2xvcik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBJZiB0aGUgY29sb3IgcGlja2VyIGlzIGN1cnJlbnRseSBvcGVuXG4gICAgICovXG4gICAgaXNPcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdC5hcHAuY2xhc3NMaXN0LmNvbnRhaW5zKCd2aXNpYmxlJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGEgc3BlY2lmaWMgY29sb3IuXG4gICAgICogQHBhcmFtIGggSHVlXG4gICAgICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICAgICAqIEBwYXJhbSB2IFZhbHVlXG4gICAgICogQHBhcmFtIGEgQWxwaGEgY2hhbm5lbCAoMCAtIDEpXG4gICAgICogQHBhcmFtIHNpbGVudCBJZiB0aGUgYnV0dG9uIHNob3VsZCBub3QgY2hhbmdlIHRoZSBjb2xvclxuICAgICAqIEByZXR1cm4gYm9vbGVhbiBpZiB0aGUgY29sb3IgaGFzIGJlZW4gYWNjZXB0ZWRcbiAgICAgKi9cbiAgICBzZXRIU1ZBKGggPSAzNjAsIHMgPSAwLCB2ID0gMCwgYSA9IDEsIHNpbGVudCA9IGZhbHNlKSB7XG5cbiAgICAgICAgLy8gRGVhY3RpdmF0ZSBjb2xvciBjYWxjdWxhdGlvblxuICAgICAgICBjb25zdCByZWNhbGMgPSB0aGlzLl9yZWNhbGM7IC8vIFNhdmUgc3RhdGVcbiAgICAgICAgdGhpcy5fcmVjYWxjID0gZmFsc2U7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgaW5wdXRcbiAgICAgICAgaWYgKGggPCAwIHx8IGggPiAzNjAgfHwgcyA8IDAgfHwgcyA+IDEwMCB8fCB2IDwgMCB8fCB2ID4gMTAwIHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPdmVycmlkZSBjdXJyZW50IGNvbG9yIGFuZCByZS1hY3RpdmUgY29sb3IgY2FsY3VsYXRpb25cbiAgICAgICAgdGhpcy5fY29sb3IgPSBIU1ZhQ29sb3IoaCwgcywgdiwgYSk7XG5cbiAgICAgICAgLy8gVXBkYXRlIHNsaWRlciBhbmQgcGFsZXR0ZVxuICAgICAgICBjb25zdCB7aHVlLCBvcGFjaXR5LCBwYWxldHRlfSA9IHRoaXMuX2NvbXBvbmVudHM7XG4gICAgICAgIGh1ZS51cGRhdGUoKGggLyAzNjApKTtcbiAgICAgICAgb3BhY2l0eS51cGRhdGUoYSk7XG4gICAgICAgIHBhbGV0dGUudXBkYXRlKHMgLyAxMDAsIDEgLSAodiAvIDEwMCkpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNhbGwgaXMgc2lsZW50XG4gICAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVwZGF0ZSBvdXRwdXQgaWYgcmVjYWxjdWxhdGlvbiBpcyBlbmFibGVkXG4gICAgICAgIGlmIChyZWNhbGMpIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU91dHB1dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVzdG9yZSBvbGQgc3RhdGVcbiAgICAgICAgdGhpcy5fcmVjYWxjID0gcmVjYWxjO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmllcyB0byBwYXJzZSBhIHN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgY29sb3IuXG4gICAgICogRXhhbXBsZXM6ICNmZmZcbiAgICAgKiAgICAgICAgICAgcmdiIDEwIDEwIDIwMFxuICAgICAqICAgICAgICAgICBoc3ZhIDEwIDIwIDUgMC41XG4gICAgICogQHBhcmFtIHN0cmluZ1xuICAgICAqIEBwYXJhbSBzaWxlbnRcbiAgICAgKi9cbiAgICBzZXRDb2xvcihzdHJpbmcsIHNpbGVudCA9IGZhbHNlKSB7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgbnVsbFxuICAgICAgICBpZiAoc3RyaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jbGVhckNvbG9yKHNpbGVudCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHt2YWx1ZXMsIHR5cGV9ID0gdGhpcy5fcGFyc2VMb2NhbENvbG9yKHN0cmluZyk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY29sb3IgaXMgb2tcbiAgICAgICAgaWYgKHZhbHVlcykge1xuXG4gICAgICAgICAgICAvLyBDaGFuZ2Ugc2VsZWN0ZWQgY29sb3IgZm9ybWF0XG4gICAgICAgICAgICBjb25zdCB1dHlwZSA9IHR5cGUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoaXMuX3Jvb3QuaW50ZXJhY3Rpb247XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBvcHRpb25zLmZpbmQoZWwgPT4gZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKSA9PT0gdXR5cGUpO1xuXG4gICAgICAgICAgICAvLyBBdXRvIHNlbGVjdCBvbmx5IGlmIG5vdCBoaWRkZW5cbiAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgIXRhcmdldC5oaWRkZW4pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVsIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0W2VsID09PSB0YXJnZXQgPyAnYWRkJyA6ICdyZW1vdmUnXSgnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBVcGRhdGUgY29sb3IgKGZpcmVzICdzYXZlJyBldmVudCBpZiBzaWxlbnQgaXMgJ2ZhbHNlJylcbiAgICAgICAgICAgIGlmICghdGhpcy5zZXRIU1ZBKC4uLnZhbHVlcywgc2lsZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVXBkYXRlIHJlcHJlc2VudGF0aW9uIChmaXJlcyAnY2hhbmdlJyBldmVudClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldENvbG9yUmVwcmVzZW50YXRpb24odXR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZXMgdGhlIGNvbG9yIF9yZXByZXNlbnRhdGlvbi5cbiAgICAgKiBBbGxvd2VkIHZhbHVlcyBhcmUgSEVYLCBSR0IsIEhTViwgSFNMIGFuZCBDTVlLXG4gICAgICogQHBhcmFtIHR5cGVcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gaWYgdGhlIHNlbGVjdGVkIHR5cGUgd2FzIHZhbGlkLlxuICAgICAqL1xuICAgIHNldENvbG9yUmVwcmVzZW50YXRpb24odHlwZSkge1xuXG4gICAgICAgIC8vIEZvcmNlIHVwcGVyY2FzZSB0byBhbGxvdyBhIGNhc2Utc2Vuc2l0aXYgY29tcGFyaXNvblxuICAgICAgICB0eXBlID0gdHlwZS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgICAgIC8vIEZpbmQgYnV0dG9uIHdpdGggZ2l2ZW4gdHlwZSBhbmQgdHJpZ2dlciBjbGljayBldmVudFxuICAgICAgICByZXR1cm4gISF0aGlzLl9yb290LmludGVyYWN0aW9uLm9wdGlvbnNcbiAgICAgICAgICAgIC5maW5kKHYgPT4gdi5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpLnN0YXJ0c1dpdGgodHlwZSkgJiYgIXYuY2xpY2soKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBjb2xvciByZXByZXNlbnRhaW9uLiBTZWUgc2V0Q29sb3JSZXByZXNlbnRhdGlvblxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIGdldENvbG9yUmVwcmVzZW50YXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXByZXNlbnRhdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBIU1ZhQ29sb3IgQ3VycmVudCBIU1ZhQ29sb3Igb2JqZWN0LlxuICAgICAqL1xuICAgIGdldENvbG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGNvbG9yLlxuICAgICAqIEByZXR1cm5zIHt7YSwgdG9IU1ZBLCB0b0hFWEEsIHMsIHYsIGgsIGNsb25lLCB0b0NNWUssIHRvSFNMQSwgdG9SR0JBfX1cbiAgICAgKi9cbiAgICBnZXRTZWxlY3RlZENvbG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFzdENvbG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIFRoZSByb290IEhUTUxFbGVtZW50IHdpdGggYWxsIGhpcyBjb21wb25lbnRzLlxuICAgICAqL1xuICAgIGdldFJvb3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb290O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc2FibGUgcGlja3JcbiAgICAgKi9cbiAgICBkaXNhYmxlKCkge1xuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgdGhpcy5vcHRpb25zLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fcm9vdC5idXR0b24uY2xhc3NMaXN0LmFkZCgnZGlzYWJsZWQnKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlIHBpY2tyXG4gICAgICovXG4gICAgZW5hYmxlKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fcm9vdC5idXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnZGlzYWJsZWQnKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuIiwgIihmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG5cdHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyA/IG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpIDpcblx0dHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKGZhY3RvcnkpIDpcblx0KGdsb2JhbC5KU09ONSA9IGZhY3RvcnkoKSk7XG59KHRoaXMsIChmdW5jdGlvbiAoKSB7ICd1c2Ugc3RyaWN0JztcblxuXHRmdW5jdGlvbiBjcmVhdGVDb21tb25qc01vZHVsZShmbiwgbW9kdWxlKSB7XG5cdFx0cmV0dXJuIG1vZHVsZSA9IHsgZXhwb3J0czoge30gfSwgZm4obW9kdWxlLCBtb2R1bGUuZXhwb3J0cyksIG1vZHVsZS5leHBvcnRzO1xuXHR9XG5cblx0dmFyIF9nbG9iYWwgPSBjcmVhdGVDb21tb25qc01vZHVsZShmdW5jdGlvbiAobW9kdWxlKSB7XG5cdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG5cdHZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuXHQgID8gd2luZG93IDogdHlwZW9mIHNlbGYgIT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5NYXRoID09IE1hdGggPyBzZWxmXG5cdCAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jXG5cdCAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHRpZiAodHlwZW9mIF9fZyA9PSAnbnVtYmVyJykgeyBfX2cgPSBnbG9iYWw7IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXHR9KTtcblxuXHR2YXIgX2NvcmUgPSBjcmVhdGVDb21tb25qc01vZHVsZShmdW5jdGlvbiAobW9kdWxlKSB7XG5cdHZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjYuNScgfTtcblx0aWYgKHR5cGVvZiBfX2UgPT0gJ251bWJlcicpIHsgX19lID0gY29yZTsgfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cdH0pO1xuXHR2YXIgX2NvcmVfMSA9IF9jb3JlLnZlcnNpb247XG5cblx0dmFyIF9pc09iamVjdCA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG5cdH07XG5cblx0dmFyIF9hbk9iamVjdCA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIGlmICghX2lzT2JqZWN0KGl0KSkgeyB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhbiBvYmplY3QhJyk7IH1cblx0ICByZXR1cm4gaXQ7XG5cdH07XG5cblx0dmFyIF9mYWlscyA9IGZ1bmN0aW9uIChleGVjKSB7XG5cdCAgdHJ5IHtcblx0ICAgIHJldHVybiAhIWV4ZWMoKTtcblx0ICB9IGNhdGNoIChlKSB7XG5cdCAgICByZXR1cm4gdHJ1ZTtcblx0ICB9XG5cdH07XG5cblx0Ly8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxuXHR2YXIgX2Rlc2NyaXB0b3JzID0gIV9mYWlscyhmdW5jdGlvbiAoKSB7XG5cdCAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG5cdH0pO1xuXG5cdHZhciBkb2N1bWVudCA9IF9nbG9iYWwuZG9jdW1lbnQ7XG5cdC8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxuXHR2YXIgaXMgPSBfaXNPYmplY3QoZG9jdW1lbnQpICYmIF9pc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcblx0dmFyIF9kb21DcmVhdGUgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xuXHR9O1xuXG5cdHZhciBfaWU4RG9tRGVmaW5lID0gIV9kZXNjcmlwdG9ycyAmJiAhX2ZhaWxzKGZ1bmN0aW9uICgpIHtcblx0ICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KF9kb21DcmVhdGUoJ2RpdicpLCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcblx0fSk7XG5cblx0Ly8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG5cblx0Ly8gaW5zdGVhZCBvZiB0aGUgRVM2IHNwZWMgdmVyc2lvbiwgd2UgZGlkbid0IGltcGxlbWVudCBAQHRvUHJpbWl0aXZlIGNhc2Vcblx0Ly8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcblx0dmFyIF90b1ByaW1pdGl2ZSA9IGZ1bmN0aW9uIChpdCwgUykge1xuXHQgIGlmICghX2lzT2JqZWN0KGl0KSkgeyByZXR1cm4gaXQ7IH1cblx0ICB2YXIgZm4sIHZhbDtcblx0ICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIV9pc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHsgcmV0dXJuIHZhbDsgfVxuXHQgIGlmICh0eXBlb2YgKGZuID0gaXQudmFsdWVPZikgPT0gJ2Z1bmN0aW9uJyAmJiAhX2lzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgeyByZXR1cm4gdmFsOyB9XG5cdCAgaWYgKCFTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhX2lzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgeyByZXR1cm4gdmFsOyB9XG5cdCAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xuXHR9O1xuXG5cdHZhciBkUCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuXHR2YXIgZiA9IF9kZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpIHtcblx0ICBfYW5PYmplY3QoTyk7XG5cdCAgUCA9IF90b1ByaW1pdGl2ZShQLCB0cnVlKTtcblx0ICBfYW5PYmplY3QoQXR0cmlidXRlcyk7XG5cdCAgaWYgKF9pZThEb21EZWZpbmUpIHsgdHJ5IHtcblx0ICAgIHJldHVybiBkUChPLCBQLCBBdHRyaWJ1dGVzKTtcblx0ICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH0gfVxuXHQgIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHsgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTsgfVxuXHQgIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIHsgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7IH1cblx0ICByZXR1cm4gTztcblx0fTtcblxuXHR2YXIgX29iamVjdERwID0ge1xuXHRcdGY6IGZcblx0fTtcblxuXHR2YXIgX3Byb3BlcnR5RGVzYyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG5cdCAgcmV0dXJuIHtcblx0ICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG5cdCAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG5cdCAgICB3cml0YWJsZTogIShiaXRtYXAgJiA0KSxcblx0ICAgIHZhbHVlOiB2YWx1ZVxuXHQgIH07XG5cdH07XG5cblx0dmFyIF9oaWRlID0gX2Rlc2NyaXB0b3JzID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuXHQgIHJldHVybiBfb2JqZWN0RHAuZihvYmplY3QsIGtleSwgX3Byb3BlcnR5RGVzYygxLCB2YWx1ZSkpO1xuXHR9IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuXHQgIG9iamVjdFtrZXldID0gdmFsdWU7XG5cdCAgcmV0dXJuIG9iamVjdDtcblx0fTtcblxuXHR2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblx0dmFyIF9oYXMgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuXHQgIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuXHR9O1xuXG5cdHZhciBpZCA9IDA7XG5cdHZhciBweCA9IE1hdGgucmFuZG9tKCk7XG5cdHZhciBfdWlkID0gZnVuY3Rpb24gKGtleSkge1xuXHQgIHJldHVybiAnU3ltYm9sKCcuY29uY2F0KGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXksICcpXycsICgrK2lkICsgcHgpLnRvU3RyaW5nKDM2KSk7XG5cdH07XG5cblx0dmFyIF9saWJyYXJ5ID0gZmFsc2U7XG5cblx0dmFyIF9zaGFyZWQgPSBjcmVhdGVDb21tb25qc01vZHVsZShmdW5jdGlvbiAobW9kdWxlKSB7XG5cdHZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcblx0dmFyIHN0b3JlID0gX2dsb2JhbFtTSEFSRURdIHx8IChfZ2xvYmFsW1NIQVJFRF0gPSB7fSk7XG5cblx0KG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcblx0ICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcblx0fSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuXHQgIHZlcnNpb246IF9jb3JlLnZlcnNpb24sXG5cdCAgbW9kZTogX2xpYnJhcnkgPyAncHVyZScgOiAnZ2xvYmFsJyxcblx0ICBjb3B5cmlnaHQ6ICdcdTAwQTkgMjAxOSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcblx0fSk7XG5cdH0pO1xuXG5cdHZhciBfZnVuY3Rpb25Ub1N0cmluZyA9IF9zaGFyZWQoJ25hdGl2ZS1mdW5jdGlvbi10by1zdHJpbmcnLCBGdW5jdGlvbi50b1N0cmluZyk7XG5cblx0dmFyIF9yZWRlZmluZSA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0dmFyIFNSQyA9IF91aWQoJ3NyYycpO1xuXG5cdHZhciBUT19TVFJJTkcgPSAndG9TdHJpbmcnO1xuXHR2YXIgVFBMID0gKCcnICsgX2Z1bmN0aW9uVG9TdHJpbmcpLnNwbGl0KFRPX1NUUklORyk7XG5cblx0X2NvcmUuaW5zcGVjdFNvdXJjZSA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIHJldHVybiBfZnVuY3Rpb25Ub1N0cmluZy5jYWxsKGl0KTtcblx0fTtcblxuXHQobW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywga2V5LCB2YWwsIHNhZmUpIHtcblx0ICB2YXIgaXNGdW5jdGlvbiA9IHR5cGVvZiB2YWwgPT0gJ2Z1bmN0aW9uJztcblx0ICBpZiAoaXNGdW5jdGlvbikgeyBfaGFzKHZhbCwgJ25hbWUnKSB8fCBfaGlkZSh2YWwsICduYW1lJywga2V5KTsgfVxuXHQgIGlmIChPW2tleV0gPT09IHZhbCkgeyByZXR1cm47IH1cblx0ICBpZiAoaXNGdW5jdGlvbikgeyBfaGFzKHZhbCwgU1JDKSB8fCBfaGlkZSh2YWwsIFNSQywgT1trZXldID8gJycgKyBPW2tleV0gOiBUUEwuam9pbihTdHJpbmcoa2V5KSkpOyB9XG5cdCAgaWYgKE8gPT09IF9nbG9iYWwpIHtcblx0ICAgIE9ba2V5XSA9IHZhbDtcblx0ICB9IGVsc2UgaWYgKCFzYWZlKSB7XG5cdCAgICBkZWxldGUgT1trZXldO1xuXHQgICAgX2hpZGUoTywga2V5LCB2YWwpO1xuXHQgIH0gZWxzZSBpZiAoT1trZXldKSB7XG5cdCAgICBPW2tleV0gPSB2YWw7XG5cdCAgfSBlbHNlIHtcblx0ICAgIF9oaWRlKE8sIGtleSwgdmFsKTtcblx0ICB9XG5cdC8vIGFkZCBmYWtlIEZ1bmN0aW9uI3RvU3RyaW5nIGZvciBjb3JyZWN0IHdvcmsgd3JhcHBlZCBtZXRob2RzIC8gY29uc3RydWN0b3JzIHdpdGggbWV0aG9kcyBsaWtlIExvRGFzaCBpc05hdGl2ZVxuXHR9KShGdW5jdGlvbi5wcm90b3R5cGUsIFRPX1NUUklORywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG5cdCAgcmV0dXJuIHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgJiYgdGhpc1tTUkNdIHx8IF9mdW5jdGlvblRvU3RyaW5nLmNhbGwodGhpcyk7XG5cdH0pO1xuXHR9KTtcblxuXHR2YXIgX2FGdW5jdGlvbiA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIGlmICh0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJykgeyB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uIScpOyB9XG5cdCAgcmV0dXJuIGl0O1xuXHR9O1xuXG5cdC8vIG9wdGlvbmFsIC8gc2ltcGxlIGNvbnRleHQgYmluZGluZ1xuXG5cdHZhciBfY3R4ID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcblx0ICBfYUZ1bmN0aW9uKGZuKTtcblx0ICBpZiAodGhhdCA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiBmbjsgfVxuXHQgIHN3aXRjaCAobGVuZ3RoKSB7XG5cdCAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbiAoYSkge1xuXHQgICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhKTtcblx0ICAgIH07XG5cdCAgICBjYXNlIDI6IHJldHVybiBmdW5jdGlvbiAoYSwgYikge1xuXHQgICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcblx0ICAgIH07XG5cdCAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbiAoYSwgYiwgYykge1xuXHQgICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiLCBjKTtcblx0ICAgIH07XG5cdCAgfVxuXHQgIHJldHVybiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuXHQgICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG5cdCAgfTtcblx0fTtcblxuXHR2YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cblx0dmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG5cdCAgdmFyIElTX0ZPUkNFRCA9IHR5cGUgJiAkZXhwb3J0LkY7XG5cdCAgdmFyIElTX0dMT0JBTCA9IHR5cGUgJiAkZXhwb3J0Lkc7XG5cdCAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG5cdCAgdmFyIElTX1BST1RPID0gdHlwZSAmICRleHBvcnQuUDtcblx0ICB2YXIgSVNfQklORCA9IHR5cGUgJiAkZXhwb3J0LkI7XG5cdCAgdmFyIHRhcmdldCA9IElTX0dMT0JBTCA/IF9nbG9iYWwgOiBJU19TVEFUSUMgPyBfZ2xvYmFsW25hbWVdIHx8IChfZ2xvYmFsW25hbWVdID0ge30pIDogKF9nbG9iYWxbbmFtZV0gfHwge30pW1BST1RPVFlQRV07XG5cdCAgdmFyIGV4cG9ydHMgPSBJU19HTE9CQUwgPyBfY29yZSA6IF9jb3JlW25hbWVdIHx8IChfY29yZVtuYW1lXSA9IHt9KTtcblx0ICB2YXIgZXhwUHJvdG8gPSBleHBvcnRzW1BST1RPVFlQRV0gfHwgKGV4cG9ydHNbUFJPVE9UWVBFXSA9IHt9KTtcblx0ICB2YXIga2V5LCBvd24sIG91dCwgZXhwO1xuXHQgIGlmIChJU19HTE9CQUwpIHsgc291cmNlID0gbmFtZTsgfVxuXHQgIGZvciAoa2V5IGluIHNvdXJjZSkge1xuXHQgICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG5cdCAgICBvd24gPSAhSVNfRk9SQ0VEICYmIHRhcmdldCAmJiB0YXJnZXRba2V5XSAhPT0gdW5kZWZpbmVkO1xuXHQgICAgLy8gZXhwb3J0IG5hdGl2ZSBvciBwYXNzZWRcblx0ICAgIG91dCA9IChvd24gPyB0YXJnZXQgOiBzb3VyY2UpW2tleV07XG5cdCAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuXHQgICAgZXhwID0gSVNfQklORCAmJiBvd24gPyBfY3R4KG91dCwgX2dsb2JhbCkgOiBJU19QUk9UTyAmJiB0eXBlb2Ygb3V0ID09ICdmdW5jdGlvbicgPyBfY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG5cdCAgICAvLyBleHRlbmQgZ2xvYmFsXG5cdCAgICBpZiAodGFyZ2V0KSB7IF9yZWRlZmluZSh0YXJnZXQsIGtleSwgb3V0LCB0eXBlICYgJGV4cG9ydC5VKTsgfVxuXHQgICAgLy8gZXhwb3J0XG5cdCAgICBpZiAoZXhwb3J0c1trZXldICE9IG91dCkgeyBfaGlkZShleHBvcnRzLCBrZXksIGV4cCk7IH1cblx0ICAgIGlmIChJU19QUk9UTyAmJiBleHBQcm90b1trZXldICE9IG91dCkgeyBleHBQcm90b1trZXldID0gb3V0OyB9XG5cdCAgfVxuXHR9O1xuXHRfZ2xvYmFsLmNvcmUgPSBfY29yZTtcblx0Ly8gdHlwZSBiaXRtYXBcblx0JGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcblx0JGV4cG9ydC5HID0gMjsgICAvLyBnbG9iYWxcblx0JGV4cG9ydC5TID0gNDsgICAvLyBzdGF0aWNcblx0JGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuXHQkZXhwb3J0LkIgPSAxNjsgIC8vIGJpbmRcblx0JGV4cG9ydC5XID0gMzI7ICAvLyB3cmFwXG5cdCRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuXHQkZXhwb3J0LlIgPSAxMjg7IC8vIHJlYWwgcHJvdG8gbWV0aG9kIGZvciBgbGlicmFyeWBcblx0dmFyIF9leHBvcnQgPSAkZXhwb3J0O1xuXG5cdC8vIDcuMS40IFRvSW50ZWdlclxuXHR2YXIgY2VpbCA9IE1hdGguY2VpbDtcblx0dmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblx0dmFyIF90b0ludGVnZXIgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICByZXR1cm4gaXNOYU4oaXQgPSAraXQpID8gMCA6IChpdCA+IDAgPyBmbG9vciA6IGNlaWwpKGl0KTtcblx0fTtcblxuXHQvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxuXHR2YXIgX2RlZmluZWQgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICBpZiAoaXQgPT0gdW5kZWZpbmVkKSB7IHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uICBcIiArIGl0KTsgfVxuXHQgIHJldHVybiBpdDtcblx0fTtcblxuXHQvLyB0cnVlICAtPiBTdHJpbmcjYXRcblx0Ly8gZmFsc2UgLT4gU3RyaW5nI2NvZGVQb2ludEF0XG5cdHZhciBfc3RyaW5nQXQgPSBmdW5jdGlvbiAoVE9fU1RSSU5HKSB7XG5cdCAgcmV0dXJuIGZ1bmN0aW9uICh0aGF0LCBwb3MpIHtcblx0ICAgIHZhciBzID0gU3RyaW5nKF9kZWZpbmVkKHRoYXQpKTtcblx0ICAgIHZhciBpID0gX3RvSW50ZWdlcihwb3MpO1xuXHQgICAgdmFyIGwgPSBzLmxlbmd0aDtcblx0ICAgIHZhciBhLCBiO1xuXHQgICAgaWYgKGkgPCAwIHx8IGkgPj0gbCkgeyByZXR1cm4gVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7IH1cblx0ICAgIGEgPSBzLmNoYXJDb2RlQXQoaSk7XG5cdCAgICByZXR1cm4gYSA8IDB4ZDgwMCB8fCBhID4gMHhkYmZmIHx8IGkgKyAxID09PSBsIHx8IChiID0gcy5jaGFyQ29kZUF0KGkgKyAxKSkgPCAweGRjMDAgfHwgYiA+IDB4ZGZmZlxuXHQgICAgICA/IFRPX1NUUklORyA/IHMuY2hhckF0KGkpIDogYVxuXHQgICAgICA6IFRPX1NUUklORyA/IHMuc2xpY2UoaSwgaSArIDIpIDogKGEgLSAweGQ4MDAgPDwgMTApICsgKGIgLSAweGRjMDApICsgMHgxMDAwMDtcblx0ICB9O1xuXHR9O1xuXG5cdHZhciAkYXQgPSBfc3RyaW5nQXQoZmFsc2UpO1xuXHRfZXhwb3J0KF9leHBvcnQuUCwgJ1N0cmluZycsIHtcblx0ICAvLyAyMS4xLjMuMyBTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0KHBvcylcblx0ICBjb2RlUG9pbnRBdDogZnVuY3Rpb24gY29kZVBvaW50QXQocG9zKSB7XG5cdCAgICByZXR1cm4gJGF0KHRoaXMsIHBvcyk7XG5cdCAgfVxuXHR9KTtcblxuXHR2YXIgY29kZVBvaW50QXQgPSBfY29yZS5TdHJpbmcuY29kZVBvaW50QXQ7XG5cblx0dmFyIG1heCA9IE1hdGgubWF4O1xuXHR2YXIgbWluID0gTWF0aC5taW47XG5cdHZhciBfdG9BYnNvbHV0ZUluZGV4ID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcblx0ICBpbmRleCA9IF90b0ludGVnZXIoaW5kZXgpO1xuXHQgIHJldHVybiBpbmRleCA8IDAgPyBtYXgoaW5kZXggKyBsZW5ndGgsIDApIDogbWluKGluZGV4LCBsZW5ndGgpO1xuXHR9O1xuXG5cdHZhciBmcm9tQ2hhckNvZGUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlO1xuXHR2YXIgJGZyb21Db2RlUG9pbnQgPSBTdHJpbmcuZnJvbUNvZGVQb2ludDtcblxuXHQvLyBsZW5ndGggc2hvdWxkIGJlIDEsIG9sZCBGRiBwcm9ibGVtXG5cdF9leHBvcnQoX2V4cG9ydC5TICsgX2V4cG9ydC5GICogKCEhJGZyb21Db2RlUG9pbnQgJiYgJGZyb21Db2RlUG9pbnQubGVuZ3RoICE9IDEpLCAnU3RyaW5nJywge1xuXHQgIC8vIDIxLjEuMi4yIFN0cmluZy5mcm9tQ29kZVBvaW50KC4uLmNvZGVQb2ludHMpXG5cdCAgZnJvbUNvZGVQb2ludDogZnVuY3Rpb24gZnJvbUNvZGVQb2ludCh4KSB7XG5cdCAgICB2YXIgYXJndW1lbnRzJDEgPSBhcmd1bWVudHM7XG5cdCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG5cdCAgICB2YXIgcmVzID0gW107XG5cdCAgICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG5cdCAgICB2YXIgaSA9IDA7XG5cdCAgICB2YXIgY29kZTtcblx0ICAgIHdoaWxlIChhTGVuID4gaSkge1xuXHQgICAgICBjb2RlID0gK2FyZ3VtZW50cyQxW2krK107XG5cdCAgICAgIGlmIChfdG9BYnNvbHV0ZUluZGV4KGNvZGUsIDB4MTBmZmZmKSAhPT0gY29kZSkgeyB0aHJvdyBSYW5nZUVycm9yKGNvZGUgKyAnIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQnKTsgfVxuXHQgICAgICByZXMucHVzaChjb2RlIDwgMHgxMDAwMFxuXHQgICAgICAgID8gZnJvbUNoYXJDb2RlKGNvZGUpXG5cdCAgICAgICAgOiBmcm9tQ2hhckNvZGUoKChjb2RlIC09IDB4MTAwMDApID4+IDEwKSArIDB4ZDgwMCwgY29kZSAlIDB4NDAwICsgMHhkYzAwKVxuXHQgICAgICApO1xuXHQgICAgfSByZXR1cm4gcmVzLmpvaW4oJycpO1xuXHQgIH1cblx0fSk7XG5cblx0dmFyIGZyb21Db2RlUG9pbnQgPSBfY29yZS5TdHJpbmcuZnJvbUNvZGVQb2ludDtcblxuXHQvLyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBlZGl0LlxuXHR2YXIgU3BhY2VfU2VwYXJhdG9yID0gL1tcXHUxNjgwXFx1MjAwMC1cXHUyMDBBXFx1MjAyRlxcdTIwNUZcXHUzMDAwXS87XG5cdHZhciBJRF9TdGFydCA9IC9bXFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjEtXFx1MDU4N1xcdTA1RDAtXFx1MDVFQVxcdTA1RjAtXFx1MDVGMlxcdTA2MjAtXFx1MDY0QVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RTVcXHUwNkU2XFx1MDZFRVxcdTA2RUZcXHUwNkZBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMFxcdTA3MTItXFx1MDcyRlxcdTA3NEQtXFx1MDdBNVxcdTA3QjFcXHUwN0NBLVxcdTA3RUFcXHUwN0Y0XFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MTVcXHUwODFBXFx1MDgyNFxcdTA4MjhcXHUwODQwLVxcdTA4NThcXHUwODYwLVxcdTA4NkFcXHUwOEEwLVxcdTA4QjRcXHUwOEI2LVxcdTA4QkRcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk4MFxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTA5RkNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTcyLVxcdTBBNzRcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMFxcdTBBRTFcXHUwQUY5XFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OC1cXHUwQzVBXFx1MEM2MFxcdTBDNjFcXHUwQzgwXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCRFxcdTBDREVcXHUwQ0UwXFx1MENFMVxcdTBDRjFcXHUwQ0YyXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRFxcdTBENEVcXHUwRDU0LVxcdTBENTZcXHUwRDVGLVxcdTBENjFcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MEUwMS1cXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwLVxcdTBFNDZcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCMFxcdTBFQjJcXHUwRUIzXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEY0MC1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY4OC1cXHUwRjhDXFx1MTAwMC1cXHUxMDJBXFx1MTAzRlxcdTEwNTAtXFx1MTA1NVxcdTEwNUEtXFx1MTA1RFxcdTEwNjFcXHUxMDY1XFx1MTA2NlxcdTEwNkUtXFx1MTA3MFxcdTEwNzUtXFx1MTA4MVxcdTEwOEVcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y1XFx1MTNGOC1cXHUxM0ZEXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZFRS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzExXFx1MTcyMC1cXHUxNzMxXFx1MTc0MC1cXHUxNzUxXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc4MC1cXHUxN0IzXFx1MTdEN1xcdTE3RENcXHUxODIwLVxcdTE4NzdcXHUxODgwLVxcdTE4ODRcXHUxODg3LVxcdTE4QThcXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTk1MC1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MUEwMC1cXHUxQTE2XFx1MUEyMC1cXHUxQTU0XFx1MUFBN1xcdTFCMDUtXFx1MUIzM1xcdTFCNDUtXFx1MUI0QlxcdTFCODMtXFx1MUJBMFxcdTFCQUVcXHUxQkFGXFx1MUJCQS1cXHUxQkU1XFx1MUMwMC1cXHUxQzIzXFx1MUM0RC1cXHUxQzRGXFx1MUM1QS1cXHUxQzdEXFx1MUM4MC1cXHUxQzg4XFx1MUNFOS1cXHUxQ0VDXFx1MUNFRS1cXHUxQ0YxXFx1MUNGNVxcdTFDRjZcXHUxRDAwLVxcdTFEQkZcXHUxRTAwLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE2MC1cXHUyMTg4XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyRTJGXFx1MzAwNS1cXHUzMDA3XFx1MzAyMS1cXHUzMDI5XFx1MzAzMS1cXHUzMDM1XFx1MzAzOC1cXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5RC1cXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGQy1cXHUzMEZGXFx1MzEwNS1cXHUzMTJFXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkVBXFx1QTAwMC1cXHVBNDhDXFx1QTREMC1cXHVBNEZEXFx1QTUwMC1cXHVBNjBDXFx1QTYxMC1cXHVBNjFGXFx1QTYyQVxcdUE2MkJcXHVBNjQwLVxcdUE2NkVcXHVBNjdGLVxcdUE2OURcXHVBNkEwLVxcdUE2RUZcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3QUVcXHVBN0IwLVxcdUE3QjdcXHVBN0Y3LVxcdUE4MDFcXHVBODAzLVxcdUE4MDVcXHVBODA3LVxcdUE4MEFcXHVBODBDLVxcdUE4MjJcXHVBODQwLVxcdUE4NzNcXHVBODgyLVxcdUE4QjNcXHVBOEYyLVxcdUE4RjdcXHVBOEZCXFx1QThGRFxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBOUUwLVxcdUE5RTRcXHVBOUU2LVxcdUE5RUZcXHVBOUZBLVxcdUE5RkVcXHVBQTAwLVxcdUFBMjhcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE3RS1cXHVBQUFGXFx1QUFCMVxcdUFBQjVcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNjVcXHVBQjcwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdfFxcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERDQwLVxcdURENzRcXHVERTgwLVxcdURFOUNcXHVERUEwLVxcdURFRDBcXHVERjAwLVxcdURGMUZcXHVERjJELVxcdURGNEFcXHVERjUwLVxcdURGNzVcXHVERjgwLVxcdURGOURcXHVERkEwLVxcdURGQzNcXHVERkM4LVxcdURGQ0ZcXHVERkQxLVxcdURGRDVdfFxcdUQ4MDFbXFx1REMwMC1cXHVEQzlEXFx1RENCMC1cXHVEQ0QzXFx1RENEOC1cXHVEQ0ZCXFx1REQwMC1cXHVERDI3XFx1REQzMC1cXHVERDYzXFx1REUwMC1cXHVERjM2XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjY3XXxcXHVEODAyW1xcdURDMDAtXFx1REMwNVxcdURDMDhcXHVEQzBBLVxcdURDMzVcXHVEQzM3XFx1REMzOFxcdURDM0NcXHVEQzNGLVxcdURDNTVcXHVEQzYwLVxcdURDNzZcXHVEQzgwLVxcdURDOUVcXHVEQ0UwLVxcdURDRjJcXHVEQ0Y0XFx1RENGNVxcdUREMDAtXFx1REQxNVxcdUREMjAtXFx1REQzOVxcdUREODAtXFx1RERCN1xcdUREQkVcXHVEREJGXFx1REUwMFxcdURFMTAtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzM1xcdURFNjAtXFx1REU3Q1xcdURFODAtXFx1REU5Q1xcdURFQzAtXFx1REVDN1xcdURFQzktXFx1REVFNFxcdURGMDAtXFx1REYzNVxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY3MlxcdURGODAtXFx1REY5MV18XFx1RDgwM1tcXHVEQzAwLVxcdURDNDhcXHVEQzgwLVxcdURDQjJcXHVEQ0MwLVxcdURDRjJdfFxcdUQ4MDRbXFx1REMwMy1cXHVEQzM3XFx1REM4My1cXHVEQ0FGXFx1RENEMC1cXHVEQ0U4XFx1REQwMy1cXHVERDI2XFx1REQ1MC1cXHVERDcyXFx1REQ3NlxcdUREODMtXFx1RERCMlxcdUREQzEtXFx1RERDNFxcdUREREFcXHVERERDXFx1REUwMC1cXHVERTExXFx1REUxMy1cXHVERTJCXFx1REU4MC1cXHVERTg2XFx1REU4OFxcdURFOEEtXFx1REU4RFxcdURFOEYtXFx1REU5RFxcdURFOUYtXFx1REVBOFxcdURFQjAtXFx1REVERVxcdURGMDUtXFx1REYwQ1xcdURGMEZcXHVERjEwXFx1REYxMy1cXHVERjI4XFx1REYyQS1cXHVERjMwXFx1REYzMlxcdURGMzNcXHVERjM1LVxcdURGMzlcXHVERjNEXFx1REY1MFxcdURGNUQtXFx1REY2MV18XFx1RDgwNVtcXHVEQzAwLVxcdURDMzRcXHVEQzQ3LVxcdURDNEFcXHVEQzgwLVxcdURDQUZcXHVEQ0M0XFx1RENDNVxcdURDQzdcXHVERDgwLVxcdUREQUVcXHVEREQ4LVxcdUREREJcXHVERTAwLVxcdURFMkZcXHVERTQ0XFx1REU4MC1cXHVERUFBXFx1REYwMC1cXHVERjE5XXxcXHVEODA2W1xcdURDQTAtXFx1RENERlxcdURDRkZcXHVERTAwXFx1REUwQi1cXHVERTMyXFx1REUzQVxcdURFNTBcXHVERTVDLVxcdURFODNcXHVERTg2LVxcdURFODlcXHVERUMwLVxcdURFRjhdfFxcdUQ4MDdbXFx1REMwMC1cXHVEQzA4XFx1REMwQS1cXHVEQzJFXFx1REM0MFxcdURDNzItXFx1REM4RlxcdUREMDAtXFx1REQwNlxcdUREMDhcXHVERDA5XFx1REQwQi1cXHVERDMwXFx1REQ0Nl18XFx1RDgwOFtcXHVEQzAwLVxcdURGOTldfFxcdUQ4MDlbXFx1REMwMC1cXHVEQzZFXFx1REM4MC1cXHVERDQzXXxbXFx1RDgwQ1xcdUQ4MUMtXFx1RDgyMFxcdUQ4NDAtXFx1RDg2OFxcdUQ4NkEtXFx1RDg2Q1xcdUQ4NkYtXFx1RDg3MlxcdUQ4NzQtXFx1RDg3OV1bXFx1REMwMC1cXHVERkZGXXxcXHVEODBEW1xcdURDMDAtXFx1REMyRV18XFx1RDgxMVtcXHVEQzAwLVxcdURFNDZdfFxcdUQ4MUFbXFx1REMwMC1cXHVERTM4XFx1REU0MC1cXHVERTVFXFx1REVEMC1cXHVERUVEXFx1REYwMC1cXHVERjJGXFx1REY0MC1cXHVERjQzXFx1REY2My1cXHVERjc3XFx1REY3RC1cXHVERjhGXXxcXHVEODFCW1xcdURGMDAtXFx1REY0NFxcdURGNTBcXHVERjkzLVxcdURGOUZcXHVERkUwXFx1REZFMV18XFx1RDgyMVtcXHVEQzAwLVxcdURGRUNdfFxcdUQ4MjJbXFx1REMwMC1cXHVERUYyXXxcXHVEODJDW1xcdURDMDAtXFx1REQxRVxcdURENzAtXFx1REVGQl18XFx1RDgyRltcXHVEQzAwLVxcdURDNkFcXHVEQzcwLVxcdURDN0NcXHVEQzgwLVxcdURDODhcXHVEQzkwLVxcdURDOTldfFxcdUQ4MzVbXFx1REMwMC1cXHVEQzU0XFx1REM1Ni1cXHVEQzlDXFx1REM5RVxcdURDOUZcXHVEQ0EyXFx1RENBNVxcdURDQTZcXHVEQ0E5LVxcdURDQUNcXHVEQ0FFLVxcdURDQjlcXHVEQ0JCXFx1RENCRC1cXHVEQ0MzXFx1RENDNS1cXHVERDA1XFx1REQwNy1cXHVERDBBXFx1REQwRC1cXHVERDE0XFx1REQxNi1cXHVERDFDXFx1REQxRS1cXHVERDM5XFx1REQzQi1cXHVERDNFXFx1REQ0MC1cXHVERDQ0XFx1REQ0NlxcdURENEEtXFx1REQ1MFxcdURENTItXFx1REVBNVxcdURFQTgtXFx1REVDMFxcdURFQzItXFx1REVEQVxcdURFREMtXFx1REVGQVxcdURFRkMtXFx1REYxNFxcdURGMTYtXFx1REYzNFxcdURGMzYtXFx1REY0RVxcdURGNTAtXFx1REY2RVxcdURGNzAtXFx1REY4OFxcdURGOEEtXFx1REZBOFxcdURGQUEtXFx1REZDMlxcdURGQzQtXFx1REZDQl18XFx1RDgzQVtcXHVEQzAwLVxcdURDQzRcXHVERDAwLVxcdURENDNdfFxcdUQ4M0JbXFx1REUwMC1cXHVERTAzXFx1REUwNS1cXHVERTFGXFx1REUyMVxcdURFMjJcXHVERTI0XFx1REUyN1xcdURFMjktXFx1REUzMlxcdURFMzQtXFx1REUzN1xcdURFMzlcXHVERTNCXFx1REU0MlxcdURFNDdcXHVERTQ5XFx1REU0QlxcdURFNEQtXFx1REU0RlxcdURFNTFcXHVERTUyXFx1REU1NFxcdURFNTdcXHVERTU5XFx1REU1QlxcdURFNURcXHVERTVGXFx1REU2MVxcdURFNjJcXHVERTY0XFx1REU2Ny1cXHVERTZBXFx1REU2Qy1cXHVERTcyXFx1REU3NC1cXHVERTc3XFx1REU3OS1cXHVERTdDXFx1REU3RVxcdURFODAtXFx1REU4OVxcdURFOEItXFx1REU5QlxcdURFQTEtXFx1REVBM1xcdURFQTUtXFx1REVBOVxcdURFQUItXFx1REVCQl18XFx1RDg2OVtcXHVEQzAwLVxcdURFRDZcXHVERjAwLVxcdURGRkZdfFxcdUQ4NkRbXFx1REMwMC1cXHVERjM0XFx1REY0MC1cXHVERkZGXXxcXHVEODZFW1xcdURDMDAtXFx1REMxRFxcdURDMjAtXFx1REZGRl18XFx1RDg3M1tcXHVEQzAwLVxcdURFQTFcXHVERUIwLVxcdURGRkZdfFxcdUQ4N0FbXFx1REMwMC1cXHVERkUwXXxcXHVEODdFW1xcdURDMDAtXFx1REUxRF0vO1xuXHR2YXIgSURfQ29udGludWUgPSAvW1xceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzAwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0ODMtXFx1MDQ4N1xcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYxLVxcdTA1ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNUQwLVxcdTA1RUFcXHUwNUYwLVxcdTA1RjJcXHUwNjEwLVxcdTA2MUFcXHUwNjIwLVxcdTA2NjlcXHUwNjZFLVxcdTA2RDNcXHUwNkQ1LVxcdTA2RENcXHUwNkRGLVxcdTA2RThcXHUwNkVBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMC1cXHUwNzRBXFx1MDc0RC1cXHUwN0IxXFx1MDdDMC1cXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgyRFxcdTA4NDAtXFx1MDg1QlxcdTA4NjAtXFx1MDg2QVxcdTA4QTAtXFx1MDhCNFxcdTA4QjYtXFx1MDhCRFxcdTA4RDQtXFx1MDhFMVxcdTA4RTMtXFx1MDk2M1xcdTA5NjYtXFx1MDk2RlxcdTA5NzEtXFx1MDk4M1xcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkMtXFx1MDlDNFxcdTA5QzdcXHUwOUM4XFx1MDlDQi1cXHUwOUNFXFx1MDlEN1xcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUzXFx1MDlFNi1cXHUwOUYxXFx1MDlGQ1xcdTBBMDEtXFx1MEEwM1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEEzQ1xcdTBBM0UtXFx1MEE0MlxcdTBBNDdcXHUwQTQ4XFx1MEE0Qi1cXHUwQTREXFx1MEE1MVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTY2LVxcdTBBNzVcXHUwQTgxLVxcdTBBODNcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkMtXFx1MEFDNVxcdTBBQzctXFx1MEFDOVxcdTBBQ0ItXFx1MEFDRFxcdTBBRDBcXHUwQUUwLVxcdTBBRTNcXHUwQUU2LVxcdTBBRUZcXHUwQUY5LVxcdTBBRkZcXHUwQjAxLVxcdTBCMDNcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzQy1cXHUwQjQ0XFx1MEI0N1xcdTBCNDhcXHUwQjRCLVxcdTBCNERcXHUwQjU2XFx1MEI1N1xcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYzXFx1MEI2Ni1cXHUwQjZGXFx1MEI3MVxcdTBCODJcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCQkUtXFx1MEJDMlxcdTBCQzYtXFx1MEJDOFxcdTBCQ0EtXFx1MEJDRFxcdTBCRDBcXHUwQkQ3XFx1MEJFNi1cXHUwQkVGXFx1MEMwMC1cXHUwQzAzXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRC1cXHUwQzQ0XFx1MEM0Ni1cXHUwQzQ4XFx1MEM0QS1cXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQzU4LVxcdTBDNUFcXHUwQzYwLVxcdTBDNjNcXHUwQzY2LVxcdTBDNkZcXHUwQzgwLVxcdTBDODNcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JDLVxcdTBDQzRcXHUwQ0M2LVxcdTBDQzhcXHUwQ0NBLVxcdTBDQ0RcXHUwQ0Q1XFx1MENENlxcdTBDREVcXHUwQ0UwLVxcdTBDRTNcXHUwQ0U2LVxcdTBDRUZcXHUwQ0YxXFx1MENGMlxcdTBEMDAtXFx1MEQwM1xcdTBEMDUtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQ0NFxcdTBENDYtXFx1MEQ0OFxcdTBENEEtXFx1MEQ0RVxcdTBENTQtXFx1MEQ1N1xcdTBENUYtXFx1MEQ2M1xcdTBENjYtXFx1MEQ2RlxcdTBEN0EtXFx1MEQ3RlxcdTBEODJcXHUwRDgzXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBEQ0FcXHUwRENGLVxcdTBERDRcXHUwREQ2XFx1MEREOC1cXHUwRERGXFx1MERFNi1cXHUwREVGXFx1MERGMlxcdTBERjNcXHUwRTAxLVxcdTBFM0FcXHUwRTQwLVxcdTBFNEVcXHUwRTUwLVxcdTBFNTlcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCOVxcdTBFQkItXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRUM4LVxcdTBFQ0RcXHUwRUQwLVxcdTBFRDlcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEYxOFxcdTBGMTlcXHUwRjIwLVxcdTBGMjlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjNFLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjcxLVxcdTBGODRcXHUwRjg2LVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAwMC1cXHUxMDQ5XFx1MTA1MC1cXHUxMDlEXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzNUQtXFx1MTM1RlxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxNFxcdTE3MjAtXFx1MTczNFxcdTE3NDAtXFx1MTc1M1xcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3NzJcXHUxNzczXFx1MTc4MC1cXHUxN0QzXFx1MTdEN1xcdTE3RENcXHUxN0REXFx1MTdFMC1cXHUxN0U5XFx1MTgwQi1cXHUxODBEXFx1MTgxMC1cXHUxODE5XFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTkyMC1cXHUxOTJCXFx1MTkzMC1cXHUxOTNCXFx1MTk0Ni1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MTlEMC1cXHUxOUQ5XFx1MUEwMC1cXHUxQTFCXFx1MUEyMC1cXHUxQTVFXFx1MUE2MC1cXHUxQTdDXFx1MUE3Ri1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUFBN1xcdTFBQjAtXFx1MUFCRFxcdTFCMDAtXFx1MUI0QlxcdTFCNTAtXFx1MUI1OVxcdTFCNkItXFx1MUI3M1xcdTFCODAtXFx1MUJGM1xcdTFDMDAtXFx1MUMzN1xcdTFDNDAtXFx1MUM0OVxcdTFDNEQtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDRDAtXFx1MUNEMlxcdTFDRDQtXFx1MUNGOVxcdTFEMDAtXFx1MURGOVxcdTFERkItXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDNGXFx1MjA0MFxcdTIwNTRcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRjBcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE2MC1cXHUyMTg4XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ3Ri1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkRFMC1cXHUyREZGXFx1MkUyRlxcdTMwMDUtXFx1MzAwN1xcdTMwMjEtXFx1MzAyRlxcdTMwMzEtXFx1MzAzNVxcdTMwMzgtXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOTlcXHUzMDlBXFx1MzA5RC1cXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGQy1cXHUzMEZGXFx1MzEwNS1cXHUzMTJFXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkVBXFx1QTAwMC1cXHVBNDhDXFx1QTREMC1cXHVBNEZEXFx1QTUwMC1cXHVBNjBDXFx1QTYxMC1cXHVBNjJCXFx1QTY0MC1cXHVBNjZGXFx1QTY3NC1cXHVBNjdEXFx1QTY3Ri1cXHVBNkYxXFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0FFXFx1QTdCMC1cXHVBN0I3XFx1QTdGNy1cXHVBODI3XFx1QTg0MC1cXHVBODczXFx1QTg4MC1cXHVBOEM1XFx1QThEMC1cXHVBOEQ5XFx1QThFMC1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOTAwLVxcdUE5MkRcXHVBOTMwLVxcdUE5NTNcXHVBOTYwLVxcdUE5N0NcXHVBOTgwLVxcdUE5QzBcXHVBOUNGLVxcdUE5RDlcXHVBOUUwLVxcdUE5RkVcXHVBQTAwLVxcdUFBMzZcXHVBQTQwLVxcdUFBNERcXHVBQTUwLVxcdUFBNTlcXHVBQTYwLVxcdUFBNzZcXHVBQTdBLVxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUZcXHVBQUYyLVxcdUFBRjZcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNjVcXHVBQjcwLVxcdUFCRUFcXHVBQkVDXFx1QUJFRFxcdUFCRjAtXFx1QUJGOVxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMUQtXFx1RkIyOFxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZCXFx1RkUwMC1cXHVGRTBGXFx1RkUyMC1cXHVGRTJGXFx1RkUzM1xcdUZFMzRcXHVGRTRELVxcdUZFNEZcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjEwLVxcdUZGMTlcXHVGRjIxLVxcdUZGM0FcXHVGRjNGXFx1RkY0MS1cXHVGRjVBXFx1RkY2Ni1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDXXxcXHVEODAwW1xcdURDMDAtXFx1REMwQlxcdURDMEQtXFx1REMyNlxcdURDMjgtXFx1REMzQVxcdURDM0NcXHVEQzNEXFx1REMzRi1cXHVEQzREXFx1REM1MC1cXHVEQzVEXFx1REM4MC1cXHVEQ0ZBXFx1REQ0MC1cXHVERDc0XFx1RERGRFxcdURFODAtXFx1REU5Q1xcdURFQTAtXFx1REVEMFxcdURFRTBcXHVERjAwLVxcdURGMUZcXHVERjJELVxcdURGNEFcXHVERjUwLVxcdURGN0FcXHVERjgwLVxcdURGOURcXHVERkEwLVxcdURGQzNcXHVERkM4LVxcdURGQ0ZcXHVERkQxLVxcdURGRDVdfFxcdUQ4MDFbXFx1REMwMC1cXHVEQzlEXFx1RENBMC1cXHVEQ0E5XFx1RENCMC1cXHVEQ0QzXFx1RENEOC1cXHVEQ0ZCXFx1REQwMC1cXHVERDI3XFx1REQzMC1cXHVERDYzXFx1REUwMC1cXHVERjM2XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjY3XXxcXHVEODAyW1xcdURDMDAtXFx1REMwNVxcdURDMDhcXHVEQzBBLVxcdURDMzVcXHVEQzM3XFx1REMzOFxcdURDM0NcXHVEQzNGLVxcdURDNTVcXHVEQzYwLVxcdURDNzZcXHVEQzgwLVxcdURDOUVcXHVEQ0UwLVxcdURDRjJcXHVEQ0Y0XFx1RENGNVxcdUREMDAtXFx1REQxNVxcdUREMjAtXFx1REQzOVxcdUREODAtXFx1RERCN1xcdUREQkVcXHVEREJGXFx1REUwMC1cXHVERTAzXFx1REUwNVxcdURFMDZcXHVERTBDLVxcdURFMTNcXHVERTE1LVxcdURFMTdcXHVERTE5LVxcdURFMzNcXHVERTM4LVxcdURFM0FcXHVERTNGXFx1REU2MC1cXHVERTdDXFx1REU4MC1cXHVERTlDXFx1REVDMC1cXHVERUM3XFx1REVDOS1cXHVERUU2XFx1REYwMC1cXHVERjM1XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjcyXFx1REY4MC1cXHVERjkxXXxcXHVEODAzW1xcdURDMDAtXFx1REM0OFxcdURDODAtXFx1RENCMlxcdURDQzAtXFx1RENGMl18XFx1RDgwNFtcXHVEQzAwLVxcdURDNDZcXHVEQzY2LVxcdURDNkZcXHVEQzdGLVxcdURDQkFcXHVEQ0QwLVxcdURDRThcXHVEQ0YwLVxcdURDRjlcXHVERDAwLVxcdUREMzRcXHVERDM2LVxcdUREM0ZcXHVERDUwLVxcdURENzNcXHVERDc2XFx1REQ4MC1cXHVEREM0XFx1RERDQS1cXHVERENDXFx1REREMC1cXHVERERBXFx1REREQ1xcdURFMDAtXFx1REUxMVxcdURFMTMtXFx1REUzN1xcdURFM0VcXHVERTgwLVxcdURFODZcXHVERTg4XFx1REU4QS1cXHVERThEXFx1REU4Ri1cXHVERTlEXFx1REU5Ri1cXHVERUE4XFx1REVCMC1cXHVERUVBXFx1REVGMC1cXHVERUY5XFx1REYwMC1cXHVERjAzXFx1REYwNS1cXHVERjBDXFx1REYwRlxcdURGMTBcXHVERjEzLVxcdURGMjhcXHVERjJBLVxcdURGMzBcXHVERjMyXFx1REYzM1xcdURGMzUtXFx1REYzOVxcdURGM0MtXFx1REY0NFxcdURGNDdcXHVERjQ4XFx1REY0Qi1cXHVERjREXFx1REY1MFxcdURGNTdcXHVERjVELVxcdURGNjNcXHVERjY2LVxcdURGNkNcXHVERjcwLVxcdURGNzRdfFxcdUQ4MDVbXFx1REMwMC1cXHVEQzRBXFx1REM1MC1cXHVEQzU5XFx1REM4MC1cXHVEQ0M1XFx1RENDN1xcdURDRDAtXFx1RENEOVxcdUREODAtXFx1RERCNVxcdUREQjgtXFx1RERDMFxcdURERDgtXFx1RERERFxcdURFMDAtXFx1REU0MFxcdURFNDRcXHVERTUwLVxcdURFNTlcXHVERTgwLVxcdURFQjdcXHVERUMwLVxcdURFQzlcXHVERjAwLVxcdURGMTlcXHVERjFELVxcdURGMkJcXHVERjMwLVxcdURGMzldfFxcdUQ4MDZbXFx1RENBMC1cXHVEQ0U5XFx1RENGRlxcdURFMDAtXFx1REUzRVxcdURFNDdcXHVERTUwLVxcdURFODNcXHVERTg2LVxcdURFOTlcXHVERUMwLVxcdURFRjhdfFxcdUQ4MDdbXFx1REMwMC1cXHVEQzA4XFx1REMwQS1cXHVEQzM2XFx1REMzOC1cXHVEQzQwXFx1REM1MC1cXHVEQzU5XFx1REM3Mi1cXHVEQzhGXFx1REM5Mi1cXHVEQ0E3XFx1RENBOS1cXHVEQ0I2XFx1REQwMC1cXHVERDA2XFx1REQwOFxcdUREMDlcXHVERDBCLVxcdUREMzZcXHVERDNBXFx1REQzQ1xcdUREM0RcXHVERDNGLVxcdURENDdcXHVERDUwLVxcdURENTldfFxcdUQ4MDhbXFx1REMwMC1cXHVERjk5XXxcXHVEODA5W1xcdURDMDAtXFx1REM2RVxcdURDODAtXFx1REQ0M118W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzldW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkVdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFNjAtXFx1REU2OVxcdURFRDAtXFx1REVFRFxcdURFRjAtXFx1REVGNFxcdURGMDAtXFx1REYzNlxcdURGNDAtXFx1REY0M1xcdURGNTAtXFx1REY1OVxcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERjAwLVxcdURGNDRcXHVERjUwLVxcdURGN0VcXHVERjhGLVxcdURGOUZcXHVERkUwXFx1REZFMV18XFx1RDgyMVtcXHVEQzAwLVxcdURGRUNdfFxcdUQ4MjJbXFx1REMwMC1cXHVERUYyXXxcXHVEODJDW1xcdURDMDAtXFx1REQxRVxcdURENzAtXFx1REVGQl18XFx1RDgyRltcXHVEQzAwLVxcdURDNkFcXHVEQzcwLVxcdURDN0NcXHVEQzgwLVxcdURDODhcXHVEQzkwLVxcdURDOTlcXHVEQzlEXFx1REM5RV18XFx1RDgzNFtcXHVERDY1LVxcdURENjlcXHVERDZELVxcdURENzJcXHVERDdCLVxcdUREODJcXHVERDg1LVxcdUREOEJcXHVEREFBLVxcdUREQURcXHVERTQyLVxcdURFNDRdfFxcdUQ4MzVbXFx1REMwMC1cXHVEQzU0XFx1REM1Ni1cXHVEQzlDXFx1REM5RVxcdURDOUZcXHVEQ0EyXFx1RENBNVxcdURDQTZcXHVEQ0E5LVxcdURDQUNcXHVEQ0FFLVxcdURDQjlcXHVEQ0JCXFx1RENCRC1cXHVEQ0MzXFx1RENDNS1cXHVERDA1XFx1REQwNy1cXHVERDBBXFx1REQwRC1cXHVERDE0XFx1REQxNi1cXHVERDFDXFx1REQxRS1cXHVERDM5XFx1REQzQi1cXHVERDNFXFx1REQ0MC1cXHVERDQ0XFx1REQ0NlxcdURENEEtXFx1REQ1MFxcdURENTItXFx1REVBNVxcdURFQTgtXFx1REVDMFxcdURFQzItXFx1REVEQVxcdURFREMtXFx1REVGQVxcdURFRkMtXFx1REYxNFxcdURGMTYtXFx1REYzNFxcdURGMzYtXFx1REY0RVxcdURGNTAtXFx1REY2RVxcdURGNzAtXFx1REY4OFxcdURGOEEtXFx1REZBOFxcdURGQUEtXFx1REZDMlxcdURGQzQtXFx1REZDQlxcdURGQ0UtXFx1REZGRl18XFx1RDgzNltcXHVERTAwLVxcdURFMzZcXHVERTNCLVxcdURFNkNcXHVERTc1XFx1REU4NFxcdURFOUItXFx1REU5RlxcdURFQTEtXFx1REVBRl18XFx1RDgzOFtcXHVEQzAwLVxcdURDMDZcXHVEQzA4LVxcdURDMThcXHVEQzFCLVxcdURDMjFcXHVEQzIzXFx1REMyNFxcdURDMjYtXFx1REMyQV18XFx1RDgzQVtcXHVEQzAwLVxcdURDQzRcXHVEQ0QwLVxcdURDRDZcXHVERDAwLVxcdURENEFcXHVERDUwLVxcdURENTldfFxcdUQ4M0JbXFx1REUwMC1cXHVERTAzXFx1REUwNS1cXHVERTFGXFx1REUyMVxcdURFMjJcXHVERTI0XFx1REUyN1xcdURFMjktXFx1REUzMlxcdURFMzQtXFx1REUzN1xcdURFMzlcXHVERTNCXFx1REU0MlxcdURFNDdcXHVERTQ5XFx1REU0QlxcdURFNEQtXFx1REU0RlxcdURFNTFcXHVERTUyXFx1REU1NFxcdURFNTdcXHVERTU5XFx1REU1QlxcdURFNURcXHVERTVGXFx1REU2MVxcdURFNjJcXHVERTY0XFx1REU2Ny1cXHVERTZBXFx1REU2Qy1cXHVERTcyXFx1REU3NC1cXHVERTc3XFx1REU3OS1cXHVERTdDXFx1REU3RVxcdURFODAtXFx1REU4OVxcdURFOEItXFx1REU5QlxcdURFQTEtXFx1REVBM1xcdURFQTUtXFx1REVBOVxcdURFQUItXFx1REVCQl18XFx1RDg2OVtcXHVEQzAwLVxcdURFRDZcXHVERjAwLVxcdURGRkZdfFxcdUQ4NkRbXFx1REMwMC1cXHVERjM0XFx1REY0MC1cXHVERkZGXXxcXHVEODZFW1xcdURDMDAtXFx1REMxRFxcdURDMjAtXFx1REZGRl18XFx1RDg3M1tcXHVEQzAwLVxcdURFQTFcXHVERUIwLVxcdURGRkZdfFxcdUQ4N0FbXFx1REMwMC1cXHVERkUwXXxcXHVEODdFW1xcdURDMDAtXFx1REUxRF18XFx1REI0MFtcXHVERDAwLVxcdURERUZdLztcblxuXHR2YXIgdW5pY29kZSA9IHtcblx0XHRTcGFjZV9TZXBhcmF0b3I6IFNwYWNlX1NlcGFyYXRvcixcblx0XHRJRF9TdGFydDogSURfU3RhcnQsXG5cdFx0SURfQ29udGludWU6IElEX0NvbnRpbnVlXG5cdH07XG5cblx0dmFyIHV0aWwgPSB7XG5cdCAgICBpc1NwYWNlU2VwYXJhdG9yOiBmdW5jdGlvbiBpc1NwYWNlU2VwYXJhdG9yIChjKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSAnc3RyaW5nJyAmJiB1bmljb2RlLlNwYWNlX1NlcGFyYXRvci50ZXN0KGMpXG5cdCAgICB9LFxuXG5cdCAgICBpc0lkU3RhcnRDaGFyOiBmdW5jdGlvbiBpc0lkU3RhcnRDaGFyIChjKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSAnc3RyaW5nJyAmJiAoXG5cdCAgICAgICAgICAgIChjID49ICdhJyAmJiBjIDw9ICd6JykgfHxcblx0ICAgICAgICAoYyA+PSAnQScgJiYgYyA8PSAnWicpIHx8XG5cdCAgICAgICAgKGMgPT09ICckJykgfHwgKGMgPT09ICdfJykgfHxcblx0ICAgICAgICB1bmljb2RlLklEX1N0YXJ0LnRlc3QoYylcblx0ICAgICAgICApXG5cdCAgICB9LFxuXG5cdCAgICBpc0lkQ29udGludWVDaGFyOiBmdW5jdGlvbiBpc0lkQ29udGludWVDaGFyIChjKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSAnc3RyaW5nJyAmJiAoXG5cdCAgICAgICAgICAgIChjID49ICdhJyAmJiBjIDw9ICd6JykgfHxcblx0ICAgICAgICAoYyA+PSAnQScgJiYgYyA8PSAnWicpIHx8XG5cdCAgICAgICAgKGMgPj0gJzAnICYmIGMgPD0gJzknKSB8fFxuXHQgICAgICAgIChjID09PSAnJCcpIHx8IChjID09PSAnXycpIHx8XG5cdCAgICAgICAgKGMgPT09ICdcXHUyMDBDJykgfHwgKGMgPT09ICdcXHUyMDBEJykgfHxcblx0ICAgICAgICB1bmljb2RlLklEX0NvbnRpbnVlLnRlc3QoYylcblx0ICAgICAgICApXG5cdCAgICB9LFxuXG5cdCAgICBpc0RpZ2l0OiBmdW5jdGlvbiBpc0RpZ2l0IChjKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSAnc3RyaW5nJyAmJiAvWzAtOV0vLnRlc3QoYylcblx0ICAgIH0sXG5cblx0ICAgIGlzSGV4RGlnaXQ6IGZ1bmN0aW9uIGlzSGV4RGlnaXQgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIC9bMC05QS1GYS1mXS8udGVzdChjKVxuXHQgICAgfSxcblx0fTtcblxuXHR2YXIgc291cmNlO1xuXHR2YXIgcGFyc2VTdGF0ZTtcblx0dmFyIHN0YWNrO1xuXHR2YXIgcG9zO1xuXHR2YXIgbGluZTtcblx0dmFyIGNvbHVtbjtcblx0dmFyIHRva2VuO1xuXHR2YXIga2V5O1xuXHR2YXIgcm9vdDtcblxuXHR2YXIgcGFyc2UgPSBmdW5jdGlvbiBwYXJzZSAodGV4dCwgcmV2aXZlcikge1xuXHQgICAgc291cmNlID0gU3RyaW5nKHRleHQpO1xuXHQgICAgcGFyc2VTdGF0ZSA9ICdzdGFydCc7XG5cdCAgICBzdGFjayA9IFtdO1xuXHQgICAgcG9zID0gMDtcblx0ICAgIGxpbmUgPSAxO1xuXHQgICAgY29sdW1uID0gMDtcblx0ICAgIHRva2VuID0gdW5kZWZpbmVkO1xuXHQgICAga2V5ID0gdW5kZWZpbmVkO1xuXHQgICAgcm9vdCA9IHVuZGVmaW5lZDtcblxuXHQgICAgZG8ge1xuXHQgICAgICAgIHRva2VuID0gbGV4KCk7XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdCAgICAgICAgLy8gaWYgKCFwYXJzZVN0YXRlc1twYXJzZVN0YXRlXSkge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkUGFyc2VTdGF0ZSgpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgcGFyc2VTdGF0ZXNbcGFyc2VTdGF0ZV0oKTtcblx0ICAgIH0gd2hpbGUgKHRva2VuLnR5cGUgIT09ICdlb2YnKVxuXG5cdCAgICBpZiAodHlwZW9mIHJldml2ZXIgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICByZXR1cm4gaW50ZXJuYWxpemUoeycnOiByb290fSwgJycsIHJldml2ZXIpXG5cdCAgICB9XG5cblx0ICAgIHJldHVybiByb290XG5cdH07XG5cblx0ZnVuY3Rpb24gaW50ZXJuYWxpemUgKGhvbGRlciwgbmFtZSwgcmV2aXZlcikge1xuXHQgICAgdmFyIHZhbHVlID0gaG9sZGVyW25hbWVdO1xuXHQgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuXHQgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIga2V5ID0gU3RyaW5nKGkpO1xuXHQgICAgICAgICAgICAgICAgdmFyIHJlcGxhY2VtZW50ID0gaW50ZXJuYWxpemUodmFsdWUsIGtleSwgcmV2aXZlcik7XG5cdCAgICAgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtrZXldO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsdWUsIGtleSwge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVwbGFjZW1lbnQsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgfSk7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBmb3IgKHZhciBrZXkkMSBpbiB2YWx1ZSkge1xuXHQgICAgICAgICAgICAgICAgdmFyIHJlcGxhY2VtZW50JDEgPSBpbnRlcm5hbGl6ZSh2YWx1ZSwga2V5JDEsIHJldml2ZXIpO1xuXHQgICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50JDEgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtrZXkkMV07XG5cdCAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwga2V5JDEsIHtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlcGxhY2VtZW50JDEsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgfSk7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiByZXZpdmVyLmNhbGwoaG9sZGVyLCBuYW1lLCB2YWx1ZSlcblx0fVxuXG5cdHZhciBsZXhTdGF0ZTtcblx0dmFyIGJ1ZmZlcjtcblx0dmFyIGRvdWJsZVF1b3RlO1xuXHR2YXIgc2lnbjtcblx0dmFyIGM7XG5cblx0ZnVuY3Rpb24gbGV4ICgpIHtcblx0ICAgIGxleFN0YXRlID0gJ2RlZmF1bHQnO1xuXHQgICAgYnVmZmVyID0gJyc7XG5cdCAgICBkb3VibGVRdW90ZSA9IGZhbHNlO1xuXHQgICAgc2lnbiA9IDE7XG5cblx0ICAgIGZvciAoOzspIHtcblx0ICAgICAgICBjID0gcGVlaygpO1xuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQgICAgICAgIC8vIGlmICghbGV4U3RhdGVzW2xleFN0YXRlXSkge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkTGV4U3RhdGUobGV4U3RhdGUpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgdmFyIHRva2VuID0gbGV4U3RhdGVzW2xleFN0YXRlXSgpO1xuXHQgICAgICAgIGlmICh0b2tlbikge1xuXHQgICAgICAgICAgICByZXR1cm4gdG9rZW5cblx0ICAgICAgICB9XG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiBwZWVrICgpIHtcblx0ICAgIGlmIChzb3VyY2VbcG9zXSkge1xuXHQgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChzb3VyY2UuY29kZVBvaW50QXQocG9zKSlcblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIHJlYWQgKCkge1xuXHQgICAgdmFyIGMgPSBwZWVrKCk7XG5cblx0ICAgIGlmIChjID09PSAnXFxuJykge1xuXHQgICAgICAgIGxpbmUrKztcblx0ICAgICAgICBjb2x1bW4gPSAwO1xuXHQgICAgfSBlbHNlIGlmIChjKSB7XG5cdCAgICAgICAgY29sdW1uICs9IGMubGVuZ3RoO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgICBjb2x1bW4rKztcblx0ICAgIH1cblxuXHQgICAgaWYgKGMpIHtcblx0ICAgICAgICBwb3MgKz0gYy5sZW5ndGg7XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBjXG5cdH1cblxuXHR2YXIgbGV4U3RhdGVzID0ge1xuXHQgICAgZGVmYXVsdDogZnVuY3Rpb24gZGVmYXVsdCQxICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdcXHQnOlxuXHQgICAgICAgIGNhc2UgJ1xcdic6XG5cdCAgICAgICAgY2FzZSAnXFxmJzpcblx0ICAgICAgICBjYXNlICcgJzpcblx0ICAgICAgICBjYXNlICdcXHUwMEEwJzpcblx0ICAgICAgICBjYXNlICdcXHVGRUZGJzpcblx0ICAgICAgICBjYXNlICdcXG4nOlxuXHQgICAgICAgIGNhc2UgJ1xccic6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOCc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOSc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcvJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdjb21tZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2VvZicpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNTcGFjZVNlcGFyYXRvcihjKSkge1xuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0ICAgICAgICAvLyBpZiAoIWxleFN0YXRlc1twYXJzZVN0YXRlXSkge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkTGV4U3RhdGUocGFyc2VTdGF0ZSlcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICByZXR1cm4gbGV4U3RhdGVzW3BhcnNlU3RhdGVdKClcblx0ICAgIH0sXG5cblx0ICAgIGNvbW1lbnQ6IGZ1bmN0aW9uIGNvbW1lbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyonOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ211bHRpTGluZUNvbW1lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJy8nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3NpbmdsZUxpbmVDb21tZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgbXVsdGlMaW5lQ29tbWVudDogZnVuY3Rpb24gbXVsdGlMaW5lQ29tbWVudCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnKic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnbXVsdGlMaW5lQ29tbWVudEFzdGVyaXNrJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgIH0sXG5cblx0ICAgIG11bHRpTGluZUNvbW1lbnRBc3RlcmlzazogZnVuY3Rpb24gbXVsdGlMaW5lQ29tbWVudEFzdGVyaXNrICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcqJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJy8nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlZmF1bHQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIGxleFN0YXRlID0gJ211bHRpTGluZUNvbW1lbnQnO1xuXHQgICAgfSxcblxuXHQgICAgc2luZ2xlTGluZUNvbW1lbnQ6IGZ1bmN0aW9uIHNpbmdsZUxpbmVDb21tZW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdcXG4nOlxuXHQgICAgICAgIGNhc2UgJ1xccic6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOCc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOSc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVmYXVsdCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdlb2YnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgIH0sXG5cblx0ICAgIHZhbHVlOiBmdW5jdGlvbiB2YWx1ZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAneyc6XG5cdCAgICAgICAgY2FzZSAnWyc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblxuXHQgICAgICAgIGNhc2UgJ24nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ3VsbCcpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bGwnLCBudWxsKVxuXG5cdCAgICAgICAgY2FzZSAndCc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgncnVlJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignYm9vbGVhbicsIHRydWUpXG5cblx0ICAgICAgICBjYXNlICdmJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCdhbHNlJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignYm9vbGVhbicsIGZhbHNlKVxuXG5cdCAgICAgICAgY2FzZSAnLSc6XG5cdCAgICAgICAgY2FzZSAnKyc6XG5cdCAgICAgICAgICAgIGlmIChyZWFkKCkgPT09ICctJykge1xuXHQgICAgICAgICAgICAgICAgc2lnbiA9IC0xO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnc2lnbic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnLic6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbFBvaW50TGVhZGluZyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnMCc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnemVybyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnMSc6XG5cdCAgICAgICAgY2FzZSAnMic6XG5cdCAgICAgICAgY2FzZSAnMyc6XG5cdCAgICAgICAgY2FzZSAnNCc6XG5cdCAgICAgICAgY2FzZSAnNSc6XG5cdCAgICAgICAgY2FzZSAnNic6XG5cdCAgICAgICAgY2FzZSAnNyc6XG5cdCAgICAgICAgY2FzZSAnOCc6XG5cdCAgICAgICAgY2FzZSAnOSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEludGVnZXInO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ0knOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ25maW5pdHknKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgSW5maW5pdHkpXG5cblx0ICAgICAgICBjYXNlICdOJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCdhTicpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBOYU4pXG5cblx0ICAgICAgICBjYXNlICdcIic6XG5cdCAgICAgICAgY2FzZSBcIidcIjpcblx0ICAgICAgICAgICAgZG91YmxlUXVvdGUgPSAocmVhZCgpID09PSAnXCInKTtcblx0ICAgICAgICAgICAgYnVmZmVyID0gJyc7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3N0cmluZyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGlkZW50aWZpZXJOYW1lU3RhcnRFc2NhcGU6IGZ1bmN0aW9uIGlkZW50aWZpZXJOYW1lU3RhcnRFc2NhcGUgKCkge1xuXHQgICAgICAgIGlmIChjICE9PSAndScpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICB2YXIgdSA9IHVuaWNvZGVFc2NhcGUoKTtcblx0ICAgICAgICBzd2l0Y2ggKHUpIHtcblx0ICAgICAgICBjYXNlICckJzpcblx0ICAgICAgICBjYXNlICdfJzpcblx0ICAgICAgICAgICAgYnJlYWtcblxuXHQgICAgICAgIGRlZmF1bHQ6XG5cdCAgICAgICAgICAgIGlmICghdXRpbC5pc0lkU3RhcnRDaGFyKHUpKSB7XG5cdCAgICAgICAgICAgICAgICB0aHJvdyBpbnZhbGlkSWRlbnRpZmllcigpXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBicmVha1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGJ1ZmZlciArPSB1O1xuXHQgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lJztcblx0ICAgIH0sXG5cblx0ICAgIGlkZW50aWZpZXJOYW1lOiBmdW5jdGlvbiBpZGVudGlmaWVyTmFtZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnJCc6XG5cdCAgICAgICAgY2FzZSAnXyc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAwQyc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAwRCc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXFxcXCc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWVFc2NhcGUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0lkQ29udGludWVDaGFyKGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignaWRlbnRpZmllcicsIGJ1ZmZlcilcblx0ICAgIH0sXG5cblx0ICAgIGlkZW50aWZpZXJOYW1lRXNjYXBlOiBmdW5jdGlvbiBpZGVudGlmaWVyTmFtZUVzY2FwZSAoKSB7XG5cdCAgICAgICAgaWYgKGMgIT09ICd1Jykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHZhciB1ID0gdW5pY29kZUVzY2FwZSgpO1xuXHQgICAgICAgIHN3aXRjaCAodSkge1xuXHQgICAgICAgIGNhc2UgJyQnOlxuXHQgICAgICAgIGNhc2UgJ18nOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMEMnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMEQnOlxuXHQgICAgICAgICAgICBicmVha1xuXG5cdCAgICAgICAgZGVmYXVsdDpcblx0ICAgICAgICAgICAgaWYgKCF1dGlsLmlzSWRDb250aW51ZUNoYXIodSkpIHtcblx0ICAgICAgICAgICAgICAgIHRocm93IGludmFsaWRJZGVudGlmaWVyKClcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGJyZWFrXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHU7XG5cdCAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWUnO1xuXHQgICAgfSxcblxuXHQgICAgc2lnbjogZnVuY3Rpb24gc2lnbiQxICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcuJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsUG9pbnRMZWFkaW5nJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcwJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICd6ZXJvJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcxJzpcblx0ICAgICAgICBjYXNlICcyJzpcblx0ICAgICAgICBjYXNlICczJzpcblx0ICAgICAgICBjYXNlICc0Jzpcblx0ICAgICAgICBjYXNlICc1Jzpcblx0ICAgICAgICBjYXNlICc2Jzpcblx0ICAgICAgICBjYXNlICc3Jzpcblx0ICAgICAgICBjYXNlICc4Jzpcblx0ICAgICAgICBjYXNlICc5Jzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsSW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnSSc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnbmZpbml0eScpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogSW5maW5pdHkpXG5cblx0ICAgICAgICBjYXNlICdOJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCdhTicpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBOYU4pXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgemVybzogZnVuY3Rpb24gemVybyAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLic6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxQb2ludCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnZSc6XG5cdCAgICAgICAgY2FzZSAnRSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAneCc6XG5cdCAgICAgICAgY2FzZSAnWCc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2hleGFkZWNpbWFsJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIDApXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsSW50ZWdlcjogZnVuY3Rpb24gZGVjaW1hbEludGVnZXIgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJy4nOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsUG9pbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ2UnOlxuXHQgICAgICAgIGNhc2UgJ0UnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxQb2ludExlYWRpbmc6IGZ1bmN0aW9uIGRlY2ltYWxQb2ludExlYWRpbmcgKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEZyYWN0aW9uJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbFBvaW50OiBmdW5jdGlvbiBkZWNpbWFsUG9pbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ2UnOlxuXHQgICAgICAgIGNhc2UgJ0UnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxGcmFjdGlvbic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxGcmFjdGlvbjogZnVuY3Rpb24gZGVjaW1hbEZyYWN0aW9uICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdlJzpcblx0ICAgICAgICBjYXNlICdFJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsRXhwb25lbnQ6IGZ1bmN0aW9uIGRlY2ltYWxFeHBvbmVudCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnKyc6XG5cdCAgICAgICAgY2FzZSAnLSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudFNpZ24nO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudEludGVnZXInO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsRXhwb25lbnRTaWduOiBmdW5jdGlvbiBkZWNpbWFsRXhwb25lbnRTaWduICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudEludGVnZXInO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsRXhwb25lbnRJbnRlZ2VyOiBmdW5jdGlvbiBkZWNpbWFsRXhwb25lbnRJbnRlZ2VyICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIGhleGFkZWNpbWFsOiBmdW5jdGlvbiBoZXhhZGVjaW1hbCAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdoZXhhZGVjaW1hbEludGVnZXInO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBoZXhhZGVjaW1hbEludGVnZXI6IGZ1bmN0aW9uIGhleGFkZWNpbWFsSW50ZWdlciAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpXG5cdCAgICB9LFxuXG5cdCAgICBzdHJpbmc6IGZ1bmN0aW9uIHN0cmluZyAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnXFxcXCc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IGVzY2FwZSgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICAgICAgaWYgKGRvdWJsZVF1b3RlKSB7XG5cdCAgICAgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3N0cmluZycsIGJ1ZmZlcilcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSBcIidcIjpcblx0ICAgICAgICAgICAgaWYgKCFkb3VibGVRdW90ZSkge1xuXHQgICAgICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdzdHJpbmcnLCBidWZmZXIpXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ1xcbic6XG5cdCAgICAgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOCc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOSc6XG5cdCAgICAgICAgICAgIHNlcGFyYXRvckNoYXIoYyk7XG5cdCAgICAgICAgICAgIGJyZWFrXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICB9LFxuXG5cdCAgICBzdGFydDogZnVuY3Rpb24gc3RhcnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ3snOlxuXHQgICAgICAgIGNhc2UgJ1snOlxuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgdGhlIGRlZmF1bHQgbGV4U3RhdGUgaGFuZGxlcyBlb2YuXG5cdCAgICAgICAgLy8gY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgLy8gICAgIHJldHVybiBuZXdUb2tlbignZW9mJylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBsZXhTdGF0ZSA9ICd2YWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVQcm9wZXJ0eU5hbWU6IGZ1bmN0aW9uIGJlZm9yZVByb3BlcnR5TmFtZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnJCc6XG5cdCAgICAgICAgY2FzZSAnXyc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ1xcXFwnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lU3RhcnRFc2NhcGUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ30nOlxuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cblx0ICAgICAgICBjYXNlICdcIic6XG5cdCAgICAgICAgY2FzZSBcIidcIjpcblx0ICAgICAgICAgICAgZG91YmxlUXVvdGUgPSAocmVhZCgpID09PSAnXCInKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnc3RyaW5nJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNJZFN0YXJ0Q2hhcihjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyUHJvcGVydHlOYW1lOiBmdW5jdGlvbiBhZnRlclByb3BlcnR5TmFtZSAoKSB7XG5cdCAgICAgICAgaWYgKGMgPT09ICc6Jykge1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlUHJvcGVydHlWYWx1ZTogZnVuY3Rpb24gYmVmb3JlUHJvcGVydHlWYWx1ZSAoKSB7XG5cdCAgICAgICAgbGV4U3RhdGUgPSAndmFsdWUnO1xuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBhZnRlclByb3BlcnR5VmFsdWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJywnOlxuXHQgICAgICAgIGNhc2UgJ30nOlxuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlQXJyYXlWYWx1ZTogZnVuY3Rpb24gYmVmb3JlQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgaWYgKGMgPT09ICddJykge1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgbGV4U3RhdGUgPSAndmFsdWUnO1xuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJBcnJheVZhbHVlOiBmdW5jdGlvbiBhZnRlckFycmF5VmFsdWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJywnOlxuXHQgICAgICAgIGNhc2UgJ10nOlxuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgZW5kOiBmdW5jdGlvbiBlbmQgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGRlZmF1bHQgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKGMgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgIC8vICAgICByZWFkKClcblx0ICAgICAgICAvLyAgICAgcmV0dXJuIG5ld1Rva2VuKCdlb2YnKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cdH07XG5cblx0ZnVuY3Rpb24gbmV3VG9rZW4gKHR5cGUsIHZhbHVlKSB7XG5cdCAgICByZXR1cm4ge1xuXHQgICAgICAgIHR5cGU6IHR5cGUsXG5cdCAgICAgICAgdmFsdWU6IHZhbHVlLFxuXHQgICAgICAgIGxpbmU6IGxpbmUsXG5cdCAgICAgICAgY29sdW1uOiBjb2x1bW4sXG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiBsaXRlcmFsIChzKSB7XG5cdCAgICBmb3IgKHZhciBpID0gMCwgbGlzdCA9IHM7IGkgPCBsaXN0Lmxlbmd0aDsgaSArPSAxKSB7XG5cdCAgICAgICAgdmFyIGMgPSBsaXN0W2ldO1xuXG5cdCAgICAgICAgdmFyIHAgPSBwZWVrKCk7XG5cblx0ICAgICAgICBpZiAocCAhPT0gYykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gZXNjYXBlICgpIHtcblx0ICAgIHZhciBjID0gcGVlaygpO1xuXHQgICAgc3dpdGNoIChjKSB7XG5cdCAgICBjYXNlICdiJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXGInXG5cblx0ICAgIGNhc2UgJ2YnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcZidcblxuXHQgICAgY2FzZSAnbic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFxuJ1xuXG5cdCAgICBjYXNlICdyJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXHInXG5cblx0ICAgIGNhc2UgJ3QnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcdCdcblxuXHQgICAgY2FzZSAndic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFx2J1xuXG5cdCAgICBjYXNlICcwJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChwZWVrKCkpKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gJ1xcMCdcblxuXHQgICAgY2FzZSAneCc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiBoZXhFc2NhcGUoKVxuXG5cdCAgICBjYXNlICd1Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuIHVuaWNvZGVFc2NhcGUoKVxuXG5cdCAgICBjYXNlICdcXG4nOlxuXHQgICAgY2FzZSAnXFx1MjAyOCc6XG5cdCAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICcnXG5cblx0ICAgIGNhc2UgJ1xccic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIGlmIChwZWVrKCkgPT09ICdcXG4nKSB7XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gJydcblxuXHQgICAgY2FzZSAnMSc6XG5cdCAgICBjYXNlICcyJzpcblx0ICAgIGNhc2UgJzMnOlxuXHQgICAgY2FzZSAnNCc6XG5cdCAgICBjYXNlICc1Jzpcblx0ICAgIGNhc2UgJzYnOlxuXHQgICAgY2FzZSAnNyc6XG5cdCAgICBjYXNlICc4Jzpcblx0ICAgIGNhc2UgJzknOlxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblxuXHQgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gcmVhZCgpXG5cdH1cblxuXHRmdW5jdGlvbiBoZXhFc2NhcGUgKCkge1xuXHQgICAgdmFyIGJ1ZmZlciA9ICcnO1xuXHQgICAgdmFyIGMgPSBwZWVrKCk7XG5cblx0ICAgIGlmICghdXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfVxuXG5cdCAgICBidWZmZXIgKz0gcmVhZCgpO1xuXG5cdCAgICBjID0gcGVlaygpO1xuXHQgICAgaWYgKCF1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9XG5cblx0ICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cblx0ICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludChidWZmZXIsIDE2KSlcblx0fVxuXG5cdGZ1bmN0aW9uIHVuaWNvZGVFc2NhcGUgKCkge1xuXHQgICAgdmFyIGJ1ZmZlciA9ICcnO1xuXHQgICAgdmFyIGNvdW50ID0gNDtcblxuXHQgICAgd2hpbGUgKGNvdW50LS0gPiAwKSB7XG5cdCAgICAgICAgdmFyIGMgPSBwZWVrKCk7XG5cdCAgICAgICAgaWYgKCF1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludChidWZmZXIsIDE2KSlcblx0fVxuXG5cdHZhciBwYXJzZVN0YXRlcyA9IHtcblx0ICAgIHN0YXJ0OiBmdW5jdGlvbiBzdGFydCAoKSB7XG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHB1c2goKTtcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZVByb3BlcnR5TmFtZTogZnVuY3Rpb24gYmVmb3JlUHJvcGVydHlOYW1lICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcblx0ICAgICAgICBjYXNlICdpZGVudGlmaWVyJzpcblx0ICAgICAgICBjYXNlICdzdHJpbmcnOlxuXHQgICAgICAgICAgICBrZXkgPSB0b2tlbi52YWx1ZTtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlclByb3BlcnR5TmFtZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAncHVuY3R1YXRvcic6XG5cdCAgICAgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgICAgICAvLyBpZiAodG9rZW4udmFsdWUgIT09ICd9Jykge1xuXHQgICAgICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgICAgIHBvcCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ2VvZic6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICB9LFxuXG5cdCAgICBhZnRlclByb3BlcnR5TmFtZTogZnVuY3Rpb24gYWZ0ZXJQcm9wZXJ0eU5hbWUgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmICh0b2tlbi50eXBlICE9PSAncHVuY3R1YXRvcicgfHwgdG9rZW4udmFsdWUgIT09ICc6Jykge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZVByb3BlcnR5VmFsdWUnO1xuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlUHJvcGVydHlWYWx1ZTogZnVuY3Rpb24gYmVmb3JlUHJvcGVydHlWYWx1ZSAoKSB7XG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHB1c2goKTtcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZUFycmF5VmFsdWU6IGZ1bmN0aW9uIGJlZm9yZUFycmF5VmFsdWUgKCkge1xuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ3B1bmN0dWF0b3InICYmIHRva2VuLnZhbHVlID09PSAnXScpIHtcblx0ICAgICAgICAgICAgcG9wKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHB1c2goKTtcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyUHJvcGVydHlWYWx1ZTogZnVuY3Rpb24gYWZ0ZXJQcm9wZXJ0eVZhbHVlICgpIHtcblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAodG9rZW4udHlwZSAhPT0gJ3B1bmN0dWF0b3InKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcblx0ICAgICAgICBjYXNlICcsJzpcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdiZWZvcmVQcm9wZXJ0eU5hbWUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ30nOlxuXHQgICAgICAgICAgICBwb3AoKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJBcnJheVZhbHVlOiBmdW5jdGlvbiBhZnRlckFycmF5VmFsdWUgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmICh0b2tlbi50eXBlICE9PSAncHVuY3R1YXRvcicpIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuXHQgICAgICAgIGNhc2UgJywnOlxuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZUFycmF5VmFsdWUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ10nOlxuXHQgICAgICAgICAgICBwb3AoKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgfSxcblxuXHQgICAgZW5kOiBmdW5jdGlvbiBlbmQgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmICh0b2tlbi50eXBlICE9PSAnZW9mJykge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgIC8vIH1cblx0ICAgIH0sXG5cdH07XG5cblx0ZnVuY3Rpb24gcHVzaCAoKSB7XG5cdCAgICB2YXIgdmFsdWU7XG5cblx0ICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuXHQgICAgY2FzZSAncHVuY3R1YXRvcic6XG5cdCAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuXHQgICAgICAgIGNhc2UgJ3snOlxuXHQgICAgICAgICAgICB2YWx1ZSA9IHt9O1xuXHQgICAgICAgICAgICBicmVha1xuXG5cdCAgICAgICAgY2FzZSAnWyc6XG5cdCAgICAgICAgICAgIHZhbHVlID0gW107XG5cdCAgICAgICAgICAgIGJyZWFrXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnJlYWtcblxuXHQgICAgY2FzZSAnbnVsbCc6XG5cdCAgICBjYXNlICdib29sZWFuJzpcblx0ICAgIGNhc2UgJ251bWVyaWMnOlxuXHQgICAgY2FzZSAnc3RyaW5nJzpcblx0ICAgICAgICB2YWx1ZSA9IHRva2VuLnZhbHVlO1xuXHQgICAgICAgIGJyZWFrXG5cblx0ICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0ICAgIC8vIGRlZmF1bHQ6XG5cdCAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgIH1cblxuXHQgICAgaWYgKHJvb3QgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgIHJvb3QgPSB2YWx1ZTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgICAgdmFyIHBhcmVudCA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuXHQgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmVudCkpIHtcblx0ICAgICAgICAgICAgcGFyZW50LnB1c2godmFsdWUpO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYXJlbnQsIGtleSwge1xuXHQgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuXHQgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICB9KTtcblx0ICAgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cdCAgICAgICAgc3RhY2sucHVzaCh2YWx1ZSk7XG5cblx0ICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdiZWZvcmVBcnJheVZhbHVlJztcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZVByb3BlcnR5TmFtZSc7XG5cdCAgICAgICAgfVxuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgICB2YXIgY3VycmVudCA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuXHQgICAgICAgIGlmIChjdXJyZW50ID09IG51bGwpIHtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdlbmQnO1xuXHQgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50KSkge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyQXJyYXlWYWx1ZSc7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlclByb3BlcnR5VmFsdWUnO1xuXHQgICAgICAgIH1cblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIHBvcCAoKSB7XG5cdCAgICBzdGFjay5wb3AoKTtcblxuXHQgICAgdmFyIGN1cnJlbnQgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcblx0ICAgIGlmIChjdXJyZW50ID09IG51bGwpIHtcblx0ICAgICAgICBwYXJzZVN0YXRlID0gJ2VuZCc7XG5cdCAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudCkpIHtcblx0ICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyQXJyYXlWYWx1ZSc7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJQcm9wZXJ0eVZhbHVlJztcblx0ICAgIH1cblx0fVxuXG5cdC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0Ly8gZnVuY3Rpb24gaW52YWxpZFBhcnNlU3RhdGUgKCkge1xuXHQvLyAgICAgcmV0dXJuIG5ldyBFcnJvcihgSlNPTjU6IGludmFsaWQgcGFyc2Ugc3RhdGUgJyR7cGFyc2VTdGF0ZX0nYClcblx0Ly8gfVxuXG5cdC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0Ly8gZnVuY3Rpb24gaW52YWxpZExleFN0YXRlIChzdGF0ZSkge1xuXHQvLyAgICAgcmV0dXJuIG5ldyBFcnJvcihgSlNPTjU6IGludmFsaWQgbGV4IHN0YXRlICcke3N0YXRlfSdgKVxuXHQvLyB9XG5cblx0ZnVuY3Rpb24gaW52YWxpZENoYXIgKGMpIHtcblx0ICAgIGlmIChjID09PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICByZXR1cm4gc3ludGF4RXJyb3IoKFwiSlNPTjU6IGludmFsaWQgZW5kIG9mIGlucHV0IGF0IFwiICsgbGluZSArIFwiOlwiICsgY29sdW1uKSlcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHN5bnRheEVycm9yKChcIkpTT041OiBpbnZhbGlkIGNoYXJhY3RlciAnXCIgKyAoZm9ybWF0Q2hhcihjKSkgKyBcIicgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHR9XG5cblx0ZnVuY3Rpb24gaW52YWxpZEVPRiAoKSB7XG5cdCAgICByZXR1cm4gc3ludGF4RXJyb3IoKFwiSlNPTjU6IGludmFsaWQgZW5kIG9mIGlucHV0IGF0IFwiICsgbGluZSArIFwiOlwiICsgY29sdW1uKSlcblx0fVxuXG5cdC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0Ly8gZnVuY3Rpb24gaW52YWxpZFRva2VuICgpIHtcblx0Ly8gICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQvLyAgICAgICAgIHJldHVybiBzeW50YXhFcnJvcihgSlNPTjU6IGludmFsaWQgZW5kIG9mIGlucHV0IGF0ICR7bGluZX06JHtjb2x1bW59YClcblx0Ly8gICAgIH1cblxuXHQvLyAgICAgY29uc3QgYyA9IFN0cmluZy5mcm9tQ29kZVBvaW50KHRva2VuLnZhbHVlLmNvZGVQb2ludEF0KDApKVxuXHQvLyAgICAgcmV0dXJuIHN5bnRheEVycm9yKGBKU09ONTogaW52YWxpZCBjaGFyYWN0ZXIgJyR7Zm9ybWF0Q2hhcihjKX0nIGF0ICR7bGluZX06JHtjb2x1bW59YClcblx0Ly8gfVxuXG5cdGZ1bmN0aW9uIGludmFsaWRJZGVudGlmaWVyICgpIHtcblx0ICAgIGNvbHVtbiAtPSA1O1xuXHQgICAgcmV0dXJuIHN5bnRheEVycm9yKChcIkpTT041OiBpbnZhbGlkIGlkZW50aWZpZXIgY2hhcmFjdGVyIGF0IFwiICsgbGluZSArIFwiOlwiICsgY29sdW1uKSlcblx0fVxuXG5cdGZ1bmN0aW9uIHNlcGFyYXRvckNoYXIgKGMpIHtcblx0ICAgIGNvbnNvbGUud2FybigoXCJKU09ONTogJ1wiICsgKGZvcm1hdENoYXIoYykpICsgXCInIGluIHN0cmluZ3MgaXMgbm90IHZhbGlkIEVDTUFTY3JpcHQ7IGNvbnNpZGVyIGVzY2FwaW5nXCIpKTtcblx0fVxuXG5cdGZ1bmN0aW9uIGZvcm1hdENoYXIgKGMpIHtcblx0ICAgIHZhciByZXBsYWNlbWVudHMgPSB7XG5cdCAgICAgICAgXCInXCI6IFwiXFxcXCdcIixcblx0ICAgICAgICAnXCInOiAnXFxcXFwiJyxcblx0ICAgICAgICAnXFxcXCc6ICdcXFxcXFxcXCcsXG5cdCAgICAgICAgJ1xcYic6ICdcXFxcYicsXG5cdCAgICAgICAgJ1xcZic6ICdcXFxcZicsXG5cdCAgICAgICAgJ1xcbic6ICdcXFxcbicsXG5cdCAgICAgICAgJ1xccic6ICdcXFxccicsXG5cdCAgICAgICAgJ1xcdCc6ICdcXFxcdCcsXG5cdCAgICAgICAgJ1xcdic6ICdcXFxcdicsXG5cdCAgICAgICAgJ1xcMCc6ICdcXFxcMCcsXG5cdCAgICAgICAgJ1xcdTIwMjgnOiAnXFxcXHUyMDI4Jyxcblx0ICAgICAgICAnXFx1MjAyOSc6ICdcXFxcdTIwMjknLFxuXHQgICAgfTtcblxuXHQgICAgaWYgKHJlcGxhY2VtZW50c1tjXSkge1xuXHQgICAgICAgIHJldHVybiByZXBsYWNlbWVudHNbY11cblx0ICAgIH1cblxuXHQgICAgaWYgKGMgPCAnICcpIHtcblx0ICAgICAgICB2YXIgaGV4U3RyaW5nID0gYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KTtcblx0ICAgICAgICByZXR1cm4gJ1xcXFx4JyArICgnMDAnICsgaGV4U3RyaW5nKS5zdWJzdHJpbmcoaGV4U3RyaW5nLmxlbmd0aClcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIGNcblx0fVxuXG5cdGZ1bmN0aW9uIHN5bnRheEVycm9yIChtZXNzYWdlKSB7XG5cdCAgICB2YXIgZXJyID0gbmV3IFN5bnRheEVycm9yKG1lc3NhZ2UpO1xuXHQgICAgZXJyLmxpbmVOdW1iZXIgPSBsaW5lO1xuXHQgICAgZXJyLmNvbHVtbk51bWJlciA9IGNvbHVtbjtcblx0ICAgIHJldHVybiBlcnJcblx0fVxuXG5cdHZhciBzdHJpbmdpZnkgPSBmdW5jdGlvbiBzdHJpbmdpZnkgKHZhbHVlLCByZXBsYWNlciwgc3BhY2UpIHtcblx0ICAgIHZhciBzdGFjayA9IFtdO1xuXHQgICAgdmFyIGluZGVudCA9ICcnO1xuXHQgICAgdmFyIHByb3BlcnR5TGlzdDtcblx0ICAgIHZhciByZXBsYWNlckZ1bmM7XG5cdCAgICB2YXIgZ2FwID0gJyc7XG5cdCAgICB2YXIgcXVvdGU7XG5cblx0ICAgIGlmIChcblx0ICAgICAgICByZXBsYWNlciAhPSBudWxsICYmXG5cdCAgICAgICAgdHlwZW9mIHJlcGxhY2VyID09PSAnb2JqZWN0JyAmJlxuXHQgICAgICAgICFBcnJheS5pc0FycmF5KHJlcGxhY2VyKVxuXHQgICAgKSB7XG5cdCAgICAgICAgc3BhY2UgPSByZXBsYWNlci5zcGFjZTtcblx0ICAgICAgICBxdW90ZSA9IHJlcGxhY2VyLnF1b3RlO1xuXHQgICAgICAgIHJlcGxhY2VyID0gcmVwbGFjZXIucmVwbGFjZXI7XG5cdCAgICB9XG5cblx0ICAgIGlmICh0eXBlb2YgcmVwbGFjZXIgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICByZXBsYWNlckZ1bmMgPSByZXBsYWNlcjtcblx0ICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyZXBsYWNlcikpIHtcblx0ICAgICAgICBwcm9wZXJ0eUxpc3QgPSBbXTtcblx0ICAgICAgICBmb3IgKHZhciBpID0gMCwgbGlzdCA9IHJlcGxhY2VyOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuXHQgICAgICAgICAgICB2YXIgdiA9IGxpc3RbaV07XG5cblx0ICAgICAgICAgICAgdmFyIGl0ZW0gPSAodm9pZCAwKTtcblxuXHQgICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdzdHJpbmcnKSB7XG5cdCAgICAgICAgICAgICAgICBpdGVtID0gdjtcblx0ICAgICAgICAgICAgfSBlbHNlIGlmIChcblx0ICAgICAgICAgICAgICAgIHR5cGVvZiB2ID09PSAnbnVtYmVyJyB8fFxuXHQgICAgICAgICAgICAgICAgdiBpbnN0YW5jZW9mIFN0cmluZyB8fFxuXHQgICAgICAgICAgICAgICAgdiBpbnN0YW5jZW9mIE51bWJlclxuXHQgICAgICAgICAgICApIHtcblx0ICAgICAgICAgICAgICAgIGl0ZW0gPSBTdHJpbmcodik7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBpZiAoaXRlbSAhPT0gdW5kZWZpbmVkICYmIHByb3BlcnR5TGlzdC5pbmRleE9mKGl0ZW0pIDwgMCkge1xuXHQgICAgICAgICAgICAgICAgcHJvcGVydHlMaXN0LnB1c2goaXRlbSk7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIGlmIChzcGFjZSBpbnN0YW5jZW9mIE51bWJlcikge1xuXHQgICAgICAgIHNwYWNlID0gTnVtYmVyKHNwYWNlKTtcblx0ICAgIH0gZWxzZSBpZiAoc3BhY2UgaW5zdGFuY2VvZiBTdHJpbmcpIHtcblx0ICAgICAgICBzcGFjZSA9IFN0cmluZyhzcGFjZSk7XG5cdCAgICB9XG5cblx0ICAgIGlmICh0eXBlb2Ygc3BhY2UgPT09ICdudW1iZXInKSB7XG5cdCAgICAgICAgaWYgKHNwYWNlID4gMCkge1xuXHQgICAgICAgICAgICBzcGFjZSA9IE1hdGgubWluKDEwLCBNYXRoLmZsb29yKHNwYWNlKSk7XG5cdCAgICAgICAgICAgIGdhcCA9ICcgICAgICAgICAgJy5zdWJzdHIoMCwgc3BhY2UpO1xuXHQgICAgICAgIH1cblx0ICAgIH0gZWxzZSBpZiAodHlwZW9mIHNwYWNlID09PSAnc3RyaW5nJykge1xuXHQgICAgICAgIGdhcCA9IHNwYWNlLnN1YnN0cigwLCAxMCk7XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBzZXJpYWxpemVQcm9wZXJ0eSgnJywgeycnOiB2YWx1ZX0pXG5cblx0ICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZVByb3BlcnR5IChrZXksIGhvbGRlcikge1xuXHQgICAgICAgIHZhciB2YWx1ZSA9IGhvbGRlcltrZXldO1xuXHQgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG5cdCAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUudG9KU09ONSA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50b0pTT041KGtleSk7XG5cdCAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlLnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50b0pTT04oa2V5KTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmIChyZXBsYWNlckZ1bmMpIHtcblx0ICAgICAgICAgICAgdmFsdWUgPSByZXBsYWNlckZ1bmMuY2FsbChob2xkZXIsIGtleSwgdmFsdWUpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWJlcikge1xuXHQgICAgICAgICAgICB2YWx1ZSA9IE51bWJlcih2YWx1ZSk7XG5cdCAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZykge1xuXHQgICAgICAgICAgICB2YWx1ZSA9IFN0cmluZyh2YWx1ZSk7XG5cdCAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJvb2xlYW4pIHtcblx0ICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS52YWx1ZU9mKCk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuXHQgICAgICAgIGNhc2UgbnVsbDogcmV0dXJuICdudWxsJ1xuXHQgICAgICAgIGNhc2UgdHJ1ZTogcmV0dXJuICd0cnVlJ1xuXHQgICAgICAgIGNhc2UgZmFsc2U6IHJldHVybiAnZmFsc2UnXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHF1b3RlU3RyaW5nKHZhbHVlLCBmYWxzZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuXHQgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHNlcmlhbGl6ZUFycmF5KHZhbHVlKSA6IHNlcmlhbGl6ZU9iamVjdCh2YWx1ZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHF1b3RlU3RyaW5nICh2YWx1ZSkge1xuXHQgICAgICAgIHZhciBxdW90ZXMgPSB7XG5cdCAgICAgICAgICAgIFwiJ1wiOiAwLjEsXG5cdCAgICAgICAgICAgICdcIic6IDAuMixcblx0ICAgICAgICB9O1xuXG5cdCAgICAgICAgdmFyIHJlcGxhY2VtZW50cyA9IHtcblx0ICAgICAgICAgICAgXCInXCI6IFwiXFxcXCdcIixcblx0ICAgICAgICAgICAgJ1wiJzogJ1xcXFxcIicsXG5cdCAgICAgICAgICAgICdcXFxcJzogJ1xcXFxcXFxcJyxcblx0ICAgICAgICAgICAgJ1xcYic6ICdcXFxcYicsXG5cdCAgICAgICAgICAgICdcXGYnOiAnXFxcXGYnLFxuXHQgICAgICAgICAgICAnXFxuJzogJ1xcXFxuJyxcblx0ICAgICAgICAgICAgJ1xccic6ICdcXFxccicsXG5cdCAgICAgICAgICAgICdcXHQnOiAnXFxcXHQnLFxuXHQgICAgICAgICAgICAnXFx2JzogJ1xcXFx2Jyxcblx0ICAgICAgICAgICAgJ1xcMCc6ICdcXFxcMCcsXG5cdCAgICAgICAgICAgICdcXHUyMDI4JzogJ1xcXFx1MjAyOCcsXG5cdCAgICAgICAgICAgICdcXHUyMDI5JzogJ1xcXFx1MjAyOScsXG5cdCAgICAgICAgfTtcblxuXHQgICAgICAgIHZhciBwcm9kdWN0ID0gJyc7XG5cblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgIHZhciBjID0gdmFsdWVbaV07XG5cdCAgICAgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBjYXNlICdcIic6XG5cdCAgICAgICAgICAgICAgICBxdW90ZXNbY10rKztcblx0ICAgICAgICAgICAgICAgIHByb2R1Y3QgKz0gYztcblx0ICAgICAgICAgICAgICAgIGNvbnRpbnVlXG5cblx0ICAgICAgICAgICAgY2FzZSAnXFwwJzpcblx0ICAgICAgICAgICAgICAgIGlmICh1dGlsLmlzRGlnaXQodmFsdWVbaSArIDFdKSkge1xuXHQgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QgKz0gJ1xcXFx4MDAnO1xuXHQgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlXG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnRzW2NdKSB7XG5cdCAgICAgICAgICAgICAgICBwcm9kdWN0ICs9IHJlcGxhY2VtZW50c1tjXTtcblx0ICAgICAgICAgICAgICAgIGNvbnRpbnVlXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBpZiAoYyA8ICcgJykge1xuXHQgICAgICAgICAgICAgICAgdmFyIGhleFN0cmluZyA9IGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNik7XG5cdCAgICAgICAgICAgICAgICBwcm9kdWN0ICs9ICdcXFxceCcgKyAoJzAwJyArIGhleFN0cmluZykuc3Vic3RyaW5nKGhleFN0cmluZy5sZW5ndGgpO1xuXHQgICAgICAgICAgICAgICAgY29udGludWVcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIHByb2R1Y3QgKz0gYztcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB2YXIgcXVvdGVDaGFyID0gcXVvdGUgfHwgT2JqZWN0LmtleXMocXVvdGVzKS5yZWR1Y2UoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIChxdW90ZXNbYV0gPCBxdW90ZXNbYl0pID8gYSA6IGI7IH0pO1xuXG5cdCAgICAgICAgcHJvZHVjdCA9IHByb2R1Y3QucmVwbGFjZShuZXcgUmVnRXhwKHF1b3RlQ2hhciwgJ2cnKSwgcmVwbGFjZW1lbnRzW3F1b3RlQ2hhcl0pO1xuXG5cdCAgICAgICAgcmV0dXJuIHF1b3RlQ2hhciArIHByb2R1Y3QgKyBxdW90ZUNoYXJcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplT2JqZWN0ICh2YWx1ZSkge1xuXHQgICAgICAgIGlmIChzdGFjay5pbmRleE9mKHZhbHVlKSA+PSAwKSB7XG5cdCAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcignQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTjUnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN0YWNrLnB1c2godmFsdWUpO1xuXG5cdCAgICAgICAgdmFyIHN0ZXBiYWNrID0gaW5kZW50O1xuXHQgICAgICAgIGluZGVudCA9IGluZGVudCArIGdhcDtcblxuXHQgICAgICAgIHZhciBrZXlzID0gcHJvcGVydHlMaXN0IHx8IE9iamVjdC5rZXlzKHZhbHVlKTtcblx0ICAgICAgICB2YXIgcGFydGlhbCA9IFtdO1xuXHQgICAgICAgIGZvciAodmFyIGkgPSAwLCBsaXN0ID0ga2V5czsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcblx0ICAgICAgICAgICAgdmFyIGtleSA9IGxpc3RbaV07XG5cblx0ICAgICAgICAgICAgdmFyIHByb3BlcnR5U3RyaW5nID0gc2VyaWFsaXplUHJvcGVydHkoa2V5LCB2YWx1ZSk7XG5cdCAgICAgICAgICAgIGlmIChwcm9wZXJ0eVN0cmluZyAhPT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgbWVtYmVyID0gc2VyaWFsaXplS2V5KGtleSkgKyAnOic7XG5cdCAgICAgICAgICAgICAgICBpZiAoZ2FwICE9PSAnJykge1xuXHQgICAgICAgICAgICAgICAgICAgIG1lbWJlciArPSAnICc7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgICAgICBtZW1iZXIgKz0gcHJvcGVydHlTdHJpbmc7XG5cdCAgICAgICAgICAgICAgICBwYXJ0aWFsLnB1c2gobWVtYmVyKTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBmaW5hbDtcblx0ICAgICAgICBpZiAocGFydGlhbC5sZW5ndGggPT09IDApIHtcblx0ICAgICAgICAgICAgZmluYWwgPSAne30nO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIHZhciBwcm9wZXJ0aWVzO1xuXHQgICAgICAgICAgICBpZiAoZ2FwID09PSAnJykge1xuXHQgICAgICAgICAgICAgICAgcHJvcGVydGllcyA9IHBhcnRpYWwuam9pbignLCcpO1xuXHQgICAgICAgICAgICAgICAgZmluYWwgPSAneycgKyBwcm9wZXJ0aWVzICsgJ30nO1xuXHQgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgdmFyIHNlcGFyYXRvciA9ICcsXFxuJyArIGluZGVudDtcblx0ICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBwYXJ0aWFsLmpvaW4oc2VwYXJhdG9yKTtcblx0ICAgICAgICAgICAgICAgIGZpbmFsID0gJ3tcXG4nICsgaW5kZW50ICsgcHJvcGVydGllcyArICcsXFxuJyArIHN0ZXBiYWNrICsgJ30nO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3RhY2sucG9wKCk7XG5cdCAgICAgICAgaW5kZW50ID0gc3RlcGJhY2s7XG5cdCAgICAgICAgcmV0dXJuIGZpbmFsXG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZUtleSAoa2V5KSB7XG5cdCAgICAgICAgaWYgKGtleS5sZW5ndGggPT09IDApIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHF1b3RlU3RyaW5nKGtleSwgdHJ1ZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB2YXIgZmlyc3RDaGFyID0gU3RyaW5nLmZyb21Db2RlUG9pbnQoa2V5LmNvZGVQb2ludEF0KDApKTtcblx0ICAgICAgICBpZiAoIXV0aWwuaXNJZFN0YXJ0Q2hhcihmaXJzdENoYXIpKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBxdW90ZVN0cmluZyhrZXksIHRydWUpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgZm9yICh2YXIgaSA9IGZpcnN0Q2hhci5sZW5ndGg7IGkgPCBrZXkubGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgaWYgKCF1dGlsLmlzSWRDb250aW51ZUNoYXIoU3RyaW5nLmZyb21Db2RlUG9pbnQoa2V5LmNvZGVQb2ludEF0KGkpKSkpIHtcblx0ICAgICAgICAgICAgICAgIHJldHVybiBxdW90ZVN0cmluZyhrZXksIHRydWUpXG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4ga2V5XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZUFycmF5ICh2YWx1ZSkge1xuXHQgICAgICAgIGlmIChzdGFjay5pbmRleE9mKHZhbHVlKSA+PSAwKSB7XG5cdCAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcignQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTjUnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN0YWNrLnB1c2godmFsdWUpO1xuXG5cdCAgICAgICAgdmFyIHN0ZXBiYWNrID0gaW5kZW50O1xuXHQgICAgICAgIGluZGVudCA9IGluZGVudCArIGdhcDtcblxuXHQgICAgICAgIHZhciBwYXJ0aWFsID0gW107XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICB2YXIgcHJvcGVydHlTdHJpbmcgPSBzZXJpYWxpemVQcm9wZXJ0eShTdHJpbmcoaSksIHZhbHVlKTtcblx0ICAgICAgICAgICAgcGFydGlhbC5wdXNoKChwcm9wZXJ0eVN0cmluZyAhPT0gdW5kZWZpbmVkKSA/IHByb3BlcnR5U3RyaW5nIDogJ251bGwnKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB2YXIgZmluYWw7XG5cdCAgICAgICAgaWYgKHBhcnRpYWwubGVuZ3RoID09PSAwKSB7XG5cdCAgICAgICAgICAgIGZpbmFsID0gJ1tdJztcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBpZiAoZ2FwID09PSAnJykge1xuXHQgICAgICAgICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBwYXJ0aWFsLmpvaW4oJywnKTtcblx0ICAgICAgICAgICAgICAgIGZpbmFsID0gJ1snICsgcHJvcGVydGllcyArICddJztcblx0ICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgIHZhciBzZXBhcmF0b3IgPSAnLFxcbicgKyBpbmRlbnQ7XG5cdCAgICAgICAgICAgICAgICB2YXIgcHJvcGVydGllcyQxID0gcGFydGlhbC5qb2luKHNlcGFyYXRvcik7XG5cdCAgICAgICAgICAgICAgICBmaW5hbCA9ICdbXFxuJyArIGluZGVudCArIHByb3BlcnRpZXMkMSArICcsXFxuJyArIHN0ZXBiYWNrICsgJ10nO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3RhY2sucG9wKCk7XG5cdCAgICAgICAgaW5kZW50ID0gc3RlcGJhY2s7XG5cdCAgICAgICAgcmV0dXJuIGZpbmFsXG5cdCAgICB9XG5cdH07XG5cblx0dmFyIEpTT041ID0ge1xuXHQgICAgcGFyc2U6IHBhcnNlLFxuXHQgICAgc3RyaW5naWZ5OiBzdHJpbmdpZnksXG5cdH07XG5cblx0dmFyIGxpYiA9IEpTT041O1xuXG5cdHZhciBlczUgPSBsaWI7XG5cblx0cmV0dXJuIGVzNTtcblxufSkpKTtcbiIsICJpbXBvcnQgeyBQbHVnaW4sIE1hcmtkb3duVmlldywgV29ya3NwYWNlTGVhZiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBjb252ZXJ0U2V0dGluZ3MsIERFRkFVTFRfU0VUVElOR1MsIExBTkdVQUdFX0lDT05TX0RBVEEsIENvZGVTdHlsZXJTZXR0aW5ncyB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1RhYiB9IGZyb20gXCIuL1NldHRpbmdzVGFiXCI7XG5pbXBvcnQgeyByZW1vdmVTdHlsZXNBbmRDbGFzc2VzLCB1cGRhdGVTdHlsaW5nIH0gZnJvbSBcIi4vQXBwbHlTdHlsaW5nXCI7XG5pbXBvcnQgeyBjcmVhdGVDb2RlYmxvY2tDb2RlTWlycm9yRXh0ZW5zaW9ucywgZWRpdGluZ0RvY3VtZW50Rm9sZCB9IGZyb20gXCIuL0VkaXRpbmdWaWV3XCI7XG5pbXBvcnQgeyBkZXN0cm95UmVhZGluZ01vZGVFbGVtZW50cywgcmVhZGluZ0RvY3VtZW50Rm9sZCwgZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLCByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yLCByZWFkaW5nVmlld0lubGluZURlY29yYXRpbmdQb3N0UHJvY2Vzc29yIH0gZnJvbSBcIi4vUmVhZGluZ1ZpZXdcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29kZVN0eWxlclBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3M7XG5cdGV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblx0bGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+O1xuXHRzaXplczoge1xuXHRcdGZvbnQ6IHN0cmluZztcblx0XHR6b29tOiBzdHJpbmc7XG5cdH07XG5cdFxuXHRhc3luYyBvbmxvYWQoKSB7XG5cdFx0YXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTsgLy8gTG9hZCBTZXR0aW5nc1xuXHRcdGNvbnN0IHNldHRpbmdzVGFiID0gbmV3IFNldHRpbmdzVGFiKHRoaXMuYXBwLHRoaXMpO1xuXHRcdHRoaXMuYWRkU2V0dGluZ1RhYihzZXR0aW5nc1RhYik7XG5cblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlclwiKTsgLy8gTG9hZCBTdHlsZXNcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXG5cdFx0dGhpcy5sYW5ndWFnZUljb25zID0gT2JqZWN0LmtleXMoTEFOR1VBR0VfSUNPTlNfREFUQSkucmVkdWNlKChyZXN1bHQ6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LCBrZXk6IHN0cmluZykgPT4geyAvLyBMb2FkIEljb25zXG5cdFx0XHRyZXN1bHRba2V5XSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtMQU5HVUFHRV9JQ09OU19EQVRBW2tleV19PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9LHt9KTtcblx0XHR0aGlzLnNpemVzID0ge1xuXHRcdFx0Zm9udDogZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS1mb250LXRleHQtc2l6ZVwiKSxcblx0XHRcdHpvb206IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tem9vbS1mYWN0b3JcIiksXG5cdFx0fTtcblxuXHRcdHRoaXMuZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyID0gZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyOyAvLyBBZGQgZXhlY3V0ZSBjb2RlIG11dGF0aW9uIG9ic2VydmVyXG5cdFx0XG5cdFx0dGhpcy5yZWdpc3Rlck1hcmtkb3duUG9zdFByb2Nlc3Nvcihhc3luYyAoZWwsY3R4KSA9PiB7YXdhaXQgcmVhZGluZ1ZpZXdDb2RlYmxvY2tEZWNvcmF0aW5nUG9zdFByb2Nlc3NvcihlbCxjdHgsdGhpcyk7fSk7IC8vIEFkZCBjb2RlYmxvY2sgZGVjb3JhdGluZyBtYXJrZG93blBvc3RQcm9jZXNzb3Jcblx0XHR0aGlzLnJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yKGFzeW5jIChlbCxjdHgpID0+IHthd2FpdCByZWFkaW5nVmlld0lubGluZURlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsLGN0eCx0aGlzKTt9KTsgLy8gQWRkIGlubGluZSBjb2RlIGRlY29yYXRpbmcgbWFya2Rvd25Qb3N0UHJvY2Vzc29yXG5cblx0XHR0aGlzLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKGNyZWF0ZUNvZGVibG9ja0NvZGVNaXJyb3JFeHRlbnNpb25zKHRoaXMuc2V0dGluZ3MsdGhpcykpOyAvLyBBZGQgY29kZW1pcnJvciBleHRlbnNpb25zXG5cblx0XHRsZXQgem9vbVRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pO1xuXHRcdHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oXCJjc3MtY2hhbmdlXCIsKCk9Pntcblx0XHRcdHVwZGF0ZVN0eWxpbmcodGhpcy5zZXR0aW5ncyx0aGlzLmFwcCk7IC8vIFVwZGF0ZSBzdHlsaW5nIG9uIGNzcyBjaGFuZ2VzXG5cdFx0XHRjb25zdCBjdXJyZW50Rm9udFNpemUgPSBkb2N1bWVudC5ib2R5LmdldENzc1Byb3BlcnR5VmFsdWUoXCItLWZvbnQtdGV4dC1zaXplXCIpO1xuXHRcdFx0aWYgKHRoaXMuc2l6ZXMuZm9udCAhPT0gY3VycmVudEZvbnRTaXplKSB7XG5cdFx0XHRcdHRoaXMuc2l6ZXMuZm9udCA9IGN1cnJlbnRGb250U2l6ZTtcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHpvb21UaW1lb3V0KTtcblx0XHRcdFx0em9vbVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57XG5cdFx0XHRcdFx0dGhpcy5yZW5kZXJSZWFkaW5nVmlldygpOyAvLyBSZS1yZW5kZXIgb24gZm9udCBzaXplIGNoYW5nZXNcblx0XHRcdFx0fSwxMDAwKTtcblx0XHRcdH1cblx0XHR9LHRoaXMpKTtcblx0XHR0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy5hcHAud29ya3NwYWNlLm9uKFwicmVzaXplXCIsKCk9Pntcblx0XHRcdGNvbnN0IGN1cnJlbnRab29tU2l6ZSA9IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tem9vbS1mYWN0b3JcIik7XG5cdFx0XHRpZiAodGhpcy5zaXplcy56b29tICE9PSBjdXJyZW50Wm9vbVNpemUpIHtcblx0XHRcdFx0dGhpcy5zaXplcy56b29tID0gY3VycmVudFpvb21TaXplO1xuXHRcdFx0XHRjbGVhclRpbWVvdXQoem9vbVRpbWVvdXQpO1xuXHRcdFx0XHR6b29tVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0XHR0aGlzLnJlbmRlclJlYWRpbmdWaWV3KCk7IC8vIFJlLXJlbmRlciBvbiB6b29tIGNoYW5nZXNcblx0XHRcdFx0fSwxMDAwKTtcblx0XHRcdH1cblx0XHR9LHRoaXMpKTtcblxuXHRcdHRoaXMuYWRkQ29tbWFuZCh7aWQ6IFwiZm9sZC1hbGxcIiwgbmFtZTogXCJGb2xkIGFsbCBjb2RlYmxvY2tzXCIsIGNhbGxiYWNrOiAoKT0+e1xuXHRcdFx0Y29uc3QgYWN0aXZlVmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XG5cdFx0XHRpZiAoYWN0aXZlVmlldykge1xuXHRcdFx0XHRpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRcdHJlYWRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5jb250ZW50RWwsdHJ1ZSk7XG5cdFx0XHRcdGVsc2UgaWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInNvdXJjZVwiKVxuXHRcdFx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRcdFx0ZWRpdGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmVkaXRvci5jbS5kb2NWaWV3LnZpZXcsdHJ1ZSk7XG5cdFx0XHR9XG5cdFx0fX0pO1xuXHRcdHRoaXMuYWRkQ29tbWFuZCh7aWQ6IFwidW5mb2xkLWFsbFwiLCBuYW1lOiBcIlVuZm9sZCBhbGwgY29kZWJsb2Nrc1wiLCBjYWxsYmFjazogKCk9Pntcblx0XHRcdGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xuXHRcdFx0aWYgKGFjdGl2ZVZpZXcpIHtcblx0XHRcdFx0aWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInByZXZpZXdcIilcblx0XHRcdFx0XHRyZWFkaW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuY29udGVudEVsLGZhbHNlKTtcblx0XHRcdFx0ZWxzZSBpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwic291cmNlXCIpXG5cdFx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0XHRlZGl0aW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuZWRpdG9yLmNtLmRvY1ZpZXcudmlldyxmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fX0pO1xuXHRcdHRoaXMuYWRkQ29tbWFuZCh7aWQ6IFwicmVzZXQtYWxsXCIsIG5hbWU6IFwiUmVzZXQgZm9sZCBzdGF0ZSBmb3IgYWxsIGNvZGVibG9ja3NcIiwgY2FsbGJhY2s6ICgpPT57XG5cdFx0XHRjb25zdCBhY3RpdmVWaWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcblx0XHRcdGlmIChhY3RpdmVWaWV3KSB7XG5cdFx0XHRcdGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdFx0cmVhZGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmNvbnRlbnRFbCk7XG5cdFx0XHRcdGVsc2UgaWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInNvdXJjZVwiKVxuXHRcdFx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRcdFx0ZWRpdGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmVkaXRvci5jbS5kb2NWaWV3LnZpZXcpO1xuXHRcdFx0fVxuXHRcdH19KTtcblxuXHRcdHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KCgpPT57dGhpcy5yZW5kZXJSZWFkaW5nVmlldygpO30pOyAvLyBBZGQgZGVjb3JhdGlvbiBvbiBlbmFibGluZyBvZiBwbHVnaW5cblxuXHRcdGNvbnNvbGUubG9nKFwiTG9hZGVkIHBsdWdpbjogQ29kZSBTdHlsZXJcIik7XG5cdH1cblx0XG5cdG9udW5sb2FkKCkge1xuXHRcdHRoaXMuZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHRyZW1vdmVTdHlsZXNBbmRDbGFzc2VzKCk7XG5cdFx0ZGVzdHJveVJlYWRpbmdNb2RlRWxlbWVudHMoKTtcblx0XHRmb3IgKGNvbnN0IHVybCBvZiBPYmplY3QudmFsdWVzKHRoaXMubGFuZ3VhZ2VJY29ucykpIC8vIFVubG9hZCBpY29uc1xuXHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuXHRcdGNvbnNvbGUubG9nKFwiVW5sb2FkZWQgcGx1Z2luOiBDb2RlIFN0eWxlclwiKTtcblx0fVxuXG5cdGFzeW5jIGxvYWRTZXR0aW5ncygpIHtcblx0XHR0aGlzLnNldHRpbmdzID0gey4uLnN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1NFVFRJTkdTKSwgLi4uY29udmVydFNldHRpbmdzKGF3YWl0IHRoaXMubG9hZERhdGEoKSl9O1xuXHR9XG5cblx0YXN5bmMgc2F2ZVNldHRpbmdzKCkge1xuXHRcdGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLnVwZGF0ZU9wdGlvbnMoKTtcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXHR9XG5cblx0cmVuZGVyUmVhZGluZ1ZpZXcoKSB7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLml0ZXJhdGVSb290TGVhdmVzKChsZWFmOiBXb3Jrc3BhY2VMZWFmKSA9PiB7XG5cdFx0XHRpZiAobGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRsZWFmLnZpZXcucHJldmlld01vZGUucmVyZW5kZXIodHJ1ZSk7XG5cdFx0fSk7XG5cdH1cbn1cbiIsICIvLyBUeXBpbmdcbmV4cG9ydCB0eXBlIEhFWCA9IGAjJHtzdHJpbmd9YDtcbmV4cG9ydCB0eXBlIENTUyA9IGAtLSR7c3RyaW5nfWA7XG5leHBvcnQgdHlwZSBDb2xvdXIgPSBIRVggfCBDU1M7XG5leHBvcnQgdHlwZSBQZXJjZW50YWdlID0gYCR7bnVtYmVyfSVgO1xuZXhwb3J0IHR5cGUgRGlzcGxheSA9IFwibm9uZVwiIHwgXCJpZl9oZWFkZXJfc2hvd25cIiB8IFwiYWx3YXlzXCI7XG5cbi8vIEludGVyZmFjZSBDcmVhdGlvblxuZXhwb3J0IGludGVyZmFjZSBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3VycyB7XG5cdGNvZGVibG9jazoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlVGV4dENvbG91cjogQ29sb3VyO1xuXHR9LFxuXHRoZWFkZXI6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHR9LFxuXHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0fSxcblx0XHRsaW5lQ29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogQ29sb3VyO1xuXHRcdGRlZmF1bHRDb2xvdXI6IENvbG91cjtcblx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IFJlY29yZDxzdHJpbmcsQ29sb3VyPjtcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0dGl0bGVUZXh0Q29sb3VyOiBDb2xvdXJcblx0fVxuXHRhZHZhbmNlZDoge1xuXHRcdGJ1dHRvbkNvbG91cjogQ29sb3VyO1xuXHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogQ29sb3VyO1xuXHR9XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzIHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0bGluZU51bWJlcnM6IGJvb2xlYW47XG5cdFx0dW53cmFwTGluZXM6IGJvb2xlYW47XG5cdFx0d3JhcExpbmVzQWN0aXZlOiBib29sZWFuO1xuXHRcdGN1cnZhdHVyZTogbnVtYmVyO1xuXHR9LFxuXHRndXR0ZXI6IHtcblx0XHRoaWdobGlnaHQ6IGJvb2xlYW47XG5cdFx0YWN0aXZlTGluZTogYm9vbGVhbjtcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRGb250OiBzdHJpbmc7XG5cdFx0XHR0ZXh0Qm9sZDogYm9vbGVhbjtcblx0XHRcdHRleHRJdGFsaWM6IGJvb2xlYW47XG5cdFx0fSxcblx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0ZGlzcGxheTogRGlzcGxheTtcblx0XHRcdHRleHRGb250OiBzdHJpbmc7XG5cdFx0XHR0ZXh0Qm9sZDogYm9vbGVhbjtcblx0XHRcdHRleHRJdGFsaWM6IGJvb2xlYW47XG5cdFx0fSxcblx0XHRsYW5ndWFnZUljb246IHtcblx0XHRcdGRpc3BsYXk6IERpc3BsYXk7XG5cdFx0XHRkaXNwbGF5Q29sb3VyOiBib29sZWFuO1xuXHRcdH0sXG5cdFx0Zm9udFNpemU6IG51bWJlcjtcblx0XHRmb2xkUGxhY2Vob2xkZXI6IHN0cmluZztcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmU6IGJvb2xlYW47XG5cdFx0YWN0aXZlRWRpdG9yTGluZTogYm9vbGVhbjtcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0c3ludGF4SGlnaGxpZ2h0OiBib29sZWFuO1xuXHRcdHN0eWxlOiBib29sZWFuO1xuXHRcdGZvbnRXZWlnaHQ6IG51bWJlcjtcblx0XHRjdXJ2YXR1cmU6IG51bWJlcjtcblx0XHRwYWRkaW5nVmVydGljYWw6IG51bWJlcjtcblx0XHRwYWRkaW5nSG9yaXpvbnRhbDogbnVtYmVyO1xuXHRcdG1hcmdpbkhvcml6b250YWw6IG51bWJlcjtcblx0XHR0aXRsZUZvbnRXZWlnaHQ6IG51bWJlcjtcblx0fSxcblx0YWR2YW5jZWQ6IHtcblx0XHRncmFkaWVudEhpZ2hsaWdodHM6IGJvb2xlYW47XG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDogUGVyY2VudGFnZTtcblx0XHRsYW5ndWFnZUJvcmRlckNvbG91cjogYm9vbGVhbjtcblx0XHRsYW5ndWFnZUJvcmRlcldpZHRoOiBudW1iZXI7XG5cdFx0aWNvblNpemU6IG51bWJlcjtcblx0fTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclRoZW1lQ29sb3VycyB7XG5cdGxpZ2h0OiBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3Vycztcblx0ZGFyazogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnM7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZSB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncztcblx0Y29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclNldHRpbmdzIHtcblx0dGhlbWVzOiBSZWNvcmQ8c3RyaW5nLENvZGVTdHlsZXJUaGVtZT47XG5cdHNlbGVjdGVkVGhlbWU6IHN0cmluZztcblx0Y3VycmVudFRoZW1lOiBDb2RlU3R5bGVyVGhlbWU7XG5cdG5ld1RoZW1lOiBzdHJpbmc7XG5cdG5ld0hpZ2hsaWdodDogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVyczogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrQ29udGVudDogc3RyaW5nO1xuXHRleGFtcGxlSW5saW5lQ29kZTogc3RyaW5nO1xuXHRkZWNvcmF0ZVByaW50OiBib29sZWFuO1xuXHRleGNsdWRlZExhbmd1YWdlczogc3RyaW5nO1xuXHRwcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0OiBzdHJpbmc7XG5cdHJlZGlyZWN0TGFuZ3VhZ2VzOiBSZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9Pjtcblx0dmVyc2lvbjogc3RyaW5nO1xufVxuXG4vLyBUaGVtZSBEZWZhdWx0c1xuY29uc3QgVEhFTUVfREVGQVVMVF9TRVRUSU5HUzogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MgPSB7XG5cdGNvZGVibG9jazoge1xuXHRcdGxpbmVOdW1iZXJzOiB0cnVlLFxuXHRcdHVud3JhcExpbmVzOiB0cnVlLFxuXHRcdHdyYXBMaW5lc0FjdGl2ZTogZmFsc2UsXG5cdFx0Y3VydmF0dXJlOiA0LFxuXHR9LFxuXHRndXR0ZXI6IHtcblx0XHRoaWdobGlnaHQ6IHRydWUsXG5cdFx0YWN0aXZlTGluZTogZmFsc2UsXG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdHRpdGxlOiB7XG5cdFx0XHR0ZXh0Rm9udDogXCJcIixcblx0XHRcdHRleHRCb2xkOiBmYWxzZSxcblx0XHRcdHRleHRJdGFsaWM6IHRydWUsXG5cdFx0fSxcblx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0ZGlzcGxheTogXCJub25lXCIsXG5cdFx0XHR0ZXh0Rm9udDogXCJcIixcblx0XHRcdHRleHRCb2xkOiB0cnVlLFxuXHRcdFx0dGV4dEl0YWxpYzogZmFsc2UsXG5cdFx0fSxcblx0XHRsYW5ndWFnZUljb246IHtcblx0XHRcdGRpc3BsYXk6IFwibm9uZVwiLFxuXHRcdFx0ZGlzcGxheUNvbG91cjogdHJ1ZSxcblx0XHR9LFxuXHRcdGZvbnRTaXplOiAxNCxcblx0XHRmb2xkUGxhY2Vob2xkZXI6IFwiXCIsXG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lOiBmYWxzZSxcblx0XHRhY3RpdmVFZGl0b3JMaW5lOiBmYWxzZSxcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0c3ludGF4SGlnaGxpZ2h0OiB0cnVlLFxuXHRcdHN0eWxlOiB0cnVlLFxuXHRcdGZvbnRXZWlnaHQ6IDQsXG5cdFx0Y3VydmF0dXJlOiA2LFxuXHRcdHBhZGRpbmdWZXJ0aWNhbDogNSxcblx0XHRwYWRkaW5nSG9yaXpvbnRhbDogNSxcblx0XHRtYXJnaW5Ib3Jpem9udGFsOiAwLFxuXHRcdHRpdGxlRm9udFdlaWdodDogOCxcblx0fSxcblx0YWR2YW5jZWQ6IHtcblx0XHRncmFkaWVudEhpZ2hsaWdodHM6IGZhbHNlLFxuXHRcdGdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3A6IFwiNzAlXCIsXG5cdFx0bGFuZ3VhZ2VCb3JkZXJDb2xvdXI6IGZhbHNlLFxuXHRcdGxhbmd1YWdlQm9yZGVyV2lkdGg6IDUsXG5cdFx0aWNvblNpemU6IDI4LFxuXHR9LFxufTtcbmV4cG9ydCBjb25zdCBUSEVNRV9GQUxMQkFDS19DT0xPVVJTOiBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3VycyA9IHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRleHRDb2xvdXI6IFwiLS1jb2RlLW5vcm1hbFwiLFxuXHR9LFxuXHRndXR0ZXI6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0dGV4dENvbG91cjogXCItLXRleHQtZmFpbnRcIixcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHR9LFxuXHRoZWFkZXI6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRDb2xvdXI6IFwiLS1jb2RlLWNvbW1lbnRcIixcblx0XHR9LFxuXHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0XHR0ZXh0Q29sb3VyOiBcIi0tY29kZS1jb21tZW50XCIsXG5cdFx0fSxcblx0XHRsaW5lQ29sb3VyOiBcIi0tY29sb3ItYmFzZS0zMFwiLFxuXHR9LFxuXHRoaWdobGlnaHRzOiB7XG5cdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogXCItLWNvbG9yLWJhc2UtMzBcIixcblx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBcIi0tY29sb3ItYmFzZS0yMFwiLFxuXHRcdGRlZmF1bHRDb2xvdXI6IFwiLS10ZXh0LWhpZ2hsaWdodC1iZ1wiLFxuXHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG5cdH0sXG5cdGlubGluZToge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0ZXh0Q29sb3VyOiBcIi0tY29kZS1ub3JtYWxcIixcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIi0tY29kZS1ub3JtYWxcIixcblx0XHR0aXRsZVRleHRDb2xvdXI6IFwiLS1jb2RlLWNvbW1lbnRcIixcblx0fSxcblx0YWR2YW5jZWQ6IHtcblx0XHRidXR0b25Db2xvdXI6IFwiLS10ZXh0LW11dGVkXCIsXG5cdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcblx0fVxufTtcblxuLy8gQ29sb3IgU2NoZW1lc1xuY29uc3QgU09MQVJJWkVEOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG5cdFwiYmFzZTAzXCI6IFwiIzAwMmIzNlwiLFxuXHRcImJhc2UwMlwiOiBcIiMwNzM2NDJcIixcblx0XCJiYXNlMDFcIjogXCIjNTg2ZTc1XCIsXG5cdFwiYmFzZTAwXCI6IFwiIzY1N2I4M1wiLFxuXHRcImJhc2UwXCI6IFwiIzgzOTQ5NlwiLFxuXHRcImJhc2UxXCI6IFwiIzkzYTFhMVwiLFxuXHRcImJhc2UyXCI6IFwiI2VlZThkNVwiLFxuXHRcImJhc2UzXCI6IFwiI2ZkZjZlM1wiLFxuXHRcInllbGxvd1wiOiBcIiNiNTg5MDBcIixcblx0XCJvcmFuZ2VcIjogXCIjY2I0YjE2XCIsXG5cdFwicmVkXCI6IFwiI2RjMzIyZlwiLFxuXHRcIm1hZ2VudGFcIjogXCIjZDMzNjgyXCIsXG5cdFwidmlvbGV0XCI6IFwiIzZjNzFjNFwiLFxuXHRcImJsdWVcIjogXCIjMjY4YmQyXCIsXG5cdFwiY3lhblwiOiBcIiMyYWExOThcIixcblx0XCJncmVlblwiOiBcIiM4NTk5MDBcIixcbn07XG4vLyBjb25zdCBDQVRQVUNDSU46IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcbi8vIFx0bGF0dGU6IHtcbi8vIFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiI2VmZjFmNVwiLFxuLy8gXHRcdGZvcmVncm91bmRDb2xvcjogXCIjNGM0ZjY5XCIsXG4vLyBcdFx0c2VsZWN0aW9uQ29sb3I6IFwiI2FjYjBiZVwiLFxuLy8gXHRcdGN1cnNvckNvbG9yOiBcIiNkYzhhNzhcIixcbi8vIFx0XHRjdXJzb3JBY2NlbnRDb2xvcjogXCIjZWZmMWY1XCIsXG4vLyBcdFx0Y29sb3JzOiB7XG4vLyBcdFx0XHRibGFjazogXCIjNWM1Zjc3XCIsXG4vLyBcdFx0XHRibHVlOiBcIiMxZTY2ZjVcIixcbi8vIFx0XHRcdHJlZDogXCIjZDIwZjM5XCIsXG4vLyBcdFx0XHRncmVlbjogXCIjNDBhMDJiXCIsXG4vLyBcdFx0XHR5ZWxsb3c6IFwiI2RmOGUxZFwiLFxuLy8gXHRcdFx0bWFnZW50YTogXCIjZWE3NmNiXCIsXG4vLyBcdFx0XHRjeWFuOiBcIiMxNzkyOTlcIixcbi8vIFx0XHRcdHdoaXRlOiBcIiNhY2IwYmVcIixcbi8vIFx0XHRcdGxpZ2h0QmxhY2s6IFwiIzZjNmY4NVwiLFxuLy8gXHRcdFx0bGlnaHRXaGl0ZTogXCIjYmNjMGNjXCIsXG4vLyBcdFx0XHRsaWdodEJsdWU6IFwiIzFlNjZmNVwiLFxuLy8gXHRcdFx0bGlnaHRSZWQ6IFwiI2QyMGYzOVwiLFxuLy8gXHRcdFx0bGlnaHRHcmVlbjogXCIjNDBhMDJiXCIsXG4vLyBcdFx0XHRsaWdodFllbGxvdzogXCIjZGY4ZTFkXCIsXG4vLyBcdFx0XHRsaWdodE1hZ2VudGE6IFwiI2VhNzZjYlwiLFxuLy8gXHRcdFx0bGlnaHRDeWFuOiBcIiMxNzkyOTlcIixcbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gXHRmcmFwcFx1MDBFOToge1xuLy8gXHRcdGJhY2tncm91bmRDb2xvcjogXCIjMzAzNDQ2XCIsXG4vLyBcdFx0Zm9yZWdyb3VuZENvbG9yOiBcIiNjNmQwZjVcIixcbi8vIFx0XHRzZWxlY3Rpb25Db2xvcjogXCIjNjI2ODgwXCIsXG4vLyBcdFx0Y3Vyc29yQ29sb3I6IFwiI2YyZDVjZlwiLFxuLy8gXHRcdGN1cnNvckFjY2VudENvbG9yOiBcIiMyMzI2MzRcIixcbi8vIFx0XHRjb2xvcnM6IHtcbi8vIFx0XHRcdGJsYWNrOiBcIiM1MTU3NmRcIixcbi8vIFx0XHRcdGJsdWU6IFwiIzhjYWFlZVwiLFxuLy8gXHRcdFx0cmVkOiBcIiNlNzgyODRcIixcbi8vIFx0XHRcdGdyZWVuOiBcIiNhNmQxODlcIixcbi8vIFx0XHRcdHllbGxvdzogXCIjZTVjODkwXCIsXG4vLyBcdFx0XHRtYWdlbnRhOiBcIiNmNGI4ZTRcIixcbi8vIFx0XHRcdGN5YW46IFwiIzgxYzhiZVwiLFxuLy8gXHRcdFx0d2hpdGU6IFwiI2I1YmZlMlwiLFxuLy8gXHRcdFx0bGlnaHRCbGFjazogXCIjNjI2ODgwXCIsXG4vLyBcdFx0XHRsaWdodFdoaXRlOiBcIiNhNWFkY2VcIixcbi8vIFx0XHRcdGxpZ2h0Qmx1ZTogXCIjOGNhYWVlXCIsXG4vLyBcdFx0XHRsaWdodFJlZDogXCIjZTc4Mjg0XCIsXG4vLyBcdFx0XHRsaWdodEdyZWVuOiBcIiNhNmQxODlcIixcbi8vIFx0XHRcdGxpZ2h0WWVsbG93OiBcIiNlNWM4OTBcIixcbi8vIFx0XHRcdGxpZ2h0TWFnZW50YTogXCIjZjRiOGU0XCIsXG4vLyBcdFx0XHRsaWdodEN5YW46IFwiIzgxYzhiZVwiLFxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyBcdG1hY2NoaWF0bzoge1xuLy8gXHRcdGJhY2tncm91bmRDb2xvcjogXCIjMjQyNzNhXCIsXG4vLyBcdFx0Zm9yZWdyb3VuZENvbG9yOiBcIiNjYWQzZjVcIixcbi8vIFx0XHRzZWxlY3Rpb25Db2xvcjogXCIjNWI2MDc4XCIsXG4vLyBcdFx0Y3Vyc29yQ29sb3I6IFwiI2Y0ZGJkNlwiLFxuLy8gXHRcdGN1cnNvckFjY2VudENvbG9yOiBcIiMxODE5MjZcIixcbi8vIFx0XHRjb2xvcnM6IHtcbi8vIFx0XHRcdGJsYWNrOiBcIiM0OTRkNjRcIixcbi8vIFx0XHRcdGJsdWU6IFwiIzhhYWRmNFwiLFxuLy8gXHRcdFx0cmVkOiBcIiNlZDg3OTZcIixcbi8vIFx0XHRcdGdyZWVuOiBcIiNhNmRhOTVcIixcbi8vIFx0XHRcdHllbGxvdzogXCIjZWVkNDlmXCIsXG4vLyBcdFx0XHRtYWdlbnRhOiBcIiNmNWJkZTZcIixcbi8vIFx0XHRcdGN5YW46IFwiIzhiZDVjYThiZDVjYVwiLFxuLy8gXHRcdFx0d2hpdGU6IFwiI2I4YzBlMFwiLFxuLy8gXHRcdFx0bGlnaHRCbGFjazogXCIjNWI2MDc4XCIsXG4vLyBcdFx0XHRsaWdodFdoaXRlOiBcIiNhNWFkY2JcIixcbi8vIFx0XHRcdGxpZ2h0Qmx1ZTogXCIjOGFhZGY0XCIsXG4vLyBcdFx0XHRsaWdodFJlZDogXCIjZWQ4Nzk2XCIsXG4vLyBcdFx0XHRsaWdodEdyZWVuOiBcIiNhNmRhOTVcIixcbi8vIFx0XHRcdGxpZ2h0WWVsbG93OiBcIiNlZWQ0OWZcIixcbi8vIFx0XHRcdGxpZ2h0TWFnZW50YTogXCIjZjViZGU2XCIsXG4vLyBcdFx0XHRsaWdodEN5YW46IFwiIzhiZDVjYVwiLFxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyBcdG1vY2hhOiB7XG4vLyBcdFx0YmFja2dyb3VuZENvbG9yOiBcIiMxZTFlMmVcIixcbi8vIFx0XHRmb3JlZ3JvdW5kQ29sb3I6IFwiI2NkZDZmNFwiLFxuLy8gXHRcdHNlbGVjdGlvbkNvbG9yOiBcIiM1ODViNzBcIixcbi8vIFx0XHRjdXJzb3JDb2xvcjogXCIjZjVlMGRjXCIsXG4vLyBcdFx0Y3Vyc29yQWNjZW50Q29sb3I6IFwiIzExMTExYlwiLFxuLy8gXHRcdGNvbG9yczoge1xuLy8gXHRcdFx0YmxhY2s6IFwiIzQ1NDc1QVwiLFxuLy8gXHRcdFx0Ymx1ZTogXCIjODliNGZhXCIsXG4vLyBcdFx0XHRyZWQ6IFwiI2YzOGJhOFwiLFxuLy8gXHRcdFx0Z3JlZW46IFwiI2E2ZTNhMVwiLFxuLy8gXHRcdFx0eWVsbG93OiBcIiNmOWUyYWZcIixcbi8vIFx0XHRcdG1hZ2VudGE6IFwiI2Y1YzJlN1wiLFxuLy8gXHRcdFx0Y3lhbjogXCIjOTRlMmQ1XCIsXG4vLyBcdFx0XHR3aGl0ZTogXCIjYmFjMmRlXCIsXG4vLyBcdFx0XHRsaWdodEJsYWNrOiBcIiM1ODViNzBcIixcbi8vIFx0XHRcdGxpZ2h0V2hpdGU6IFwiI2E2YWRjOFwiLFxuLy8gXHRcdFx0bGlnaHRCbHVlOiBcIiM4OWI0ZmFcIixcbi8vIFx0XHRcdGxpZ2h0UmVkOiBcIiNmMzhiYThcIixcbi8vIFx0XHRcdGxpZ2h0R3JlZW46IFwiI2E2ZTNhMVwiLFxuLy8gXHRcdFx0bGlnaHRZZWxsb3c6IFwiI2Y5ZTJhZlwiLFxuLy8gXHRcdFx0bGlnaHRNYWdlbnRhOiBcIiNmNWMyZTdcIixcbi8vIFx0XHRcdGxpZ2h0Q3lhbjogXCIjOTRlMmQ1XCIsXG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIH07XG4vLyBjb25zdCBHUlVWQk9YOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG4vLyBcdGRhcmswX2hhcmQ6IFwiIzFkMjAyMVwiLFxuLy8gXHRkYXJrMDogXCIjMjgyODI4XCIsXG4vLyBcdGRhcmswX3NvZnQ6IFwiIzMyMzAyZlwiLFxuLy8gXHRkYXJrMTogXCIjM2MzODM2XCIsXG4vLyBcdGRhcmsyOiBcIiM1MDQ5NDVcIixcbi8vIFx0ZGFyazM6IFwiIzY2NWM1NFwiLFxuLy8gXHRkYXJrNDogXCIjN2M2ZjY0XCIsXG5cbi8vIFx0Z3JheV8yNDU6IFwiIzkyODM3NFwiLFxuLy8gXHRncmF5XzI0NDogXCIjOTI4Mzc0XCIsXG5cbi8vIFx0bGlnaHQwX2hhcmQ6IFwiI2Y5ZjVkN1wiLFxuLy8gXHRsaWdodDA6IFwiI2ZiZjFjN1wiLFxuLy8gXHRsaWdodDBfc29mdDogXCIjZjJlNWJjXCIsXG4vLyBcdGxpZ2h0MTogXCIjZWJkYmIyXCIsXG4vLyBcdGxpZ2h0MjogXCIjZDVjNGExXCIsXG4vLyBcdGxpZ2h0MzogXCIjYmRhZTkzXCIsXG4vLyBcdGxpZ2h0NDogXCIjYTg5OTg0XCIsXG5cbi8vIFx0YnJpZ2h0X3JlZDogXCIjZmI0OTM0XCIsXG4vLyBcdGJyaWdodF9ncmVlbjogXCIjYjhiYjI2XCIsXG4vLyBcdGJyaWdodF95ZWxsb3c6IFwiI2ZhYmQyZlwiLFxuLy8gXHRicmlnaHRfYmx1ZTogXCIjODNhNTk4XCIsXG4vLyBcdGJyaWdodF9wdXJwbGU6IFwiI2QzODY5YlwiLFxuLy8gXHRicmlnaHRfYXF1YTogXCIjOGVjMDdjXCIsXG4vLyBcdGJyaWdodF9vcmFuZ2U6IFwiI2ZlODAxOVwiLFxuXG4vLyBcdG5ldXRyYWxfcmVkOiBcIiNjYzI0MWRcIixcbi8vIFx0bmV1dHJhbF9ncmVlbjogXCIjOTg5NzFhXCIsXG4vLyBcdG5ldXRyYWxfeWVsbG93OiBcIiNkNzk5MjFcIixcbi8vIFx0bmV1dHJhbF9ibHVlOiBcIiM0NTg1ODhcIixcbi8vIFx0bmV1dHJhbF9wdXJwbGU6IFwiI2IxNjI4NlwiLFxuLy8gXHRuZXV0cmFsX2FxdWE6IFwiIzY4OWQ2YVwiLFxuLy8gXHRuZXV0cmFsX29yYW5nZTogXCIjZDY1ZDBlXCIsXG5cbi8vIFx0ZmFkZWRfcmVkOiBcIiM5ZDAwMDZcIixcbi8vIFx0ZmFkZWRfZ3JlZW46IFwiIzc5NzQwZVwiLFxuLy8gXHRmYWRlZF95ZWxsb3c6IFwiI2I1NzYxNFwiLFxuLy8gXHRmYWRlZF9ibHVlOiBcIiMwNzY2NzhcIixcbi8vIFx0ZmFkZWRfcHVycGxlOiBcIiM4ZjNmNzFcIixcbi8vIFx0ZmFkZWRfYXF1YTogXCIjNDI3YjU4XCIsXG4vLyBcdGZhZGVkX29yYW5nZTogXCIjYWYzYTAzXCIsXG4vLyB9O1xuLy8gY29uc3QgTk9SRDogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuXG4vLyB9O1xuLy8gY29uc3QgRFJBQ1VMQTogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuXG4vLyB9O1xuXG4vLyBUaGVtZSBDcmVhdGlvblxuY29uc3QgREVGQVVMVF9USEVNRTogQ29kZVN0eWxlclRoZW1lID0ge1xuXHRzZXR0aW5nczogVEhFTUVfREVGQVVMVF9TRVRUSU5HUyxcblx0Y29sb3Vyczoge1xuXHRcdGxpZ2h0OiBUSEVNRV9GQUxMQkFDS19DT0xPVVJTLFxuXHRcdGRhcms6IFRIRU1FX0ZBTExCQUNLX0NPTE9VUlMsXG5cdH0sXG59O1xuY29uc3QgU09MQVJJWkVEX1RIRU1FOiBDb2RlU3R5bGVyVGhlbWUgPSB7XG5cdHNldHRpbmdzOiBUSEVNRV9ERUZBVUxUX1NFVFRJTkdTLFxuXHRjb2xvdXJzOiB7XG5cdFx0bGlnaHQ6IHtcblx0XHRcdGNvZGVibG9jazoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTMsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0fSxcblx0XHRcdGd1dHRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTIsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiIzZjNmM2Y1wiLFxuXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiM4YzhjOGNcIixcblx0XHRcdH0sXG5cdFx0XHRoZWFkZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjRDVDQ0I0XCIsXG5cdFx0XHRcdHRpdGxlOiB7XG5cdFx0XHRcdFx0dGV4dENvbG91cjogXCIjODY2NzA0XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjQjhCNUFBXCIsXG5cdFx0XHRcdFx0dGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGxpbmVDb2xvdXI6IFwiI0VERDQ4OVwiLFxuXHRcdFx0fSxcblx0XHRcdGhpZ2hsaWdodHM6IHtcblx0XHRcdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogU09MQVJJWkVELmJhc2UyLFxuXHRcdFx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBcIiM2MDQ2MDYzM1wiLFxuXHRcdFx0XHRkZWZhdWx0Q29sb3VyOiBcIiNFOURGQkFcIixcblx0XHRcdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcblx0XHRcdH0sXG5cdFx0XHRpbmxpbmU6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG5cdFx0XHR9LFxuXHRcdFx0YWR2YW5jZWQ6IHtcblx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0ZGFyazoge1xuXHRcdFx0Y29kZWJsb2NrOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMDMsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0fSxcblx0XHRcdGd1dHRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAyLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM2YzZjNmNcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjNGM0YzRjXCIsXG5cdFx0XHR9LFxuXHRcdFx0aGVhZGVyOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzBhNDU1NFwiLFxuXHRcdFx0XHR0aXRsZToge1xuXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2RhZGFkYVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzAwODA4MFwiLFxuXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiM0NmNjZWRcIixcblx0XHRcdH0sXG5cdFx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMDIsXG5cdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzQ2OGVlYjMzXCIsXG5cdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiIzA1NGI1Y1wiLFxuXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuXHRcdFx0fSxcblx0XHRcdGlubGluZToge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjMDAwMDAwXCIsXG5cdFx0XHR9LFxuXHRcdFx0YWR2YW5jZWQ6IHtcblx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuXHRcdFx0fVxuXHRcdH0sXG5cdH0sXG59O1xuLy8gY29uc3QgTk9SRF9USEVNRSA9IHtcblxuLy8gfTtcbi8vIGNvbnN0IERSQUNVTEFfVEhFTUUgPSB7XG5cbi8vIH07XG4vLyBjb25zdCBDQVRQVUNDSU5fVEhFTUUgPSB7XG5cbi8vIH07XG4vLyBjb25zdCBHUlVWQk9YX1RIRU1FID0ge1xuLy8gXHRzZXR0aW5nczogVEhFTUVfREVGQVVMVF9TRVRUSU5HUyxcbi8vIFx0Y29sb3Vyczoge1xuLy8gXHRcdGxpZ2h0OiB7XG4vLyBcdFx0XHRjb2RlYmxvY2s6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5saWdodDAsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGd1dHRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MSxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG4vLyBcdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzhjOGM4Y1wiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGhlYWRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNENUNDQjRcIixcbi8vIFx0XHRcdFx0dGl0bGU6IHtcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM4NjY3MDRcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNCOEI1QUFcIixcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNDMjVGMzBcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGluZUNvbG91cjogXCIjRURENDg5XCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGlnaGxpZ2h0czoge1xuLy8gXHRcdFx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MSxcbi8vIFx0XHRcdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCIjNjA0NjA2MzNcIixcbi8vIFx0XHRcdFx0ZGVmYXVsdENvbG91cjogXCIjRTlERkJBXCIsXG4vLyBcdFx0XHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aW5saW5lOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1gubGlnaHQwLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0YWR2YW5jZWQ6IHtcbi8vIFx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuLy8gXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuLy8gXHRcdFx0fVxuLy8gXHRcdH0sXG4vLyBcdFx0ZGFyazoge1xuLy8gXHRcdFx0Y29kZWJsb2NrOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1guZGFyazAsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGd1dHRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmRhcmsxLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM2YzZjNmNcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjNGM0YzRjXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGVhZGVyOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzBhNDU1NFwiLFxuLy8gXHRcdFx0XHR0aXRsZToge1xuLy8gXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2RhZGFkYVwiLFxuLy8gXHRcdFx0XHR9LFxuLy8gXHRcdFx0XHRsYW5ndWFnZVRhZzoge1xuLy8gXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzAwODA4MFwiLFxuLy8gXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuLy8gXHRcdFx0XHR9LFxuLy8gXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiM0NmNjZWRcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRoaWdobGlnaHRzOiB7XG4vLyBcdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IEdSVVZCT1guZGFyazEsXG4vLyBcdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzQ2OGVlYjMzXCIsXG4vLyBcdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiIzA1NGI1Y1wiLFxuLy8gXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGlubGluZToge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmRhcmswLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjMDAwMDAwXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0YWR2YW5jZWQ6IHtcbi8vIFx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuLy8gXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuLy8gXHRcdFx0fVxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyB9O1xuXG5leHBvcnQgY29uc3QgSU5CVUlMVF9USEVNRVM6IFJlY29yZDxzdHJpbmcsQ29kZVN0eWxlclRoZW1lPiA9IHtcblx0XCJEZWZhdWx0XCI6IERFRkFVTFRfVEhFTUUsXG5cdFwiU29sYXJpemVkXCI6IFNPTEFSSVpFRF9USEVNRSxcbn07XG5cbi8vIERlZmF1bHQgVmFsdWVzXG5leHBvcnQgY29uc3QgRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUyA9IFwicHl0aG9uIHRpdGxlOmZvb1wiO1xuZXhwb3J0IGNvbnN0IEVYQU1QTEVfQ09ERUJMT0NLX0NPTlRFTlQgPSBcInByaW50KFxcXCJUaGlzIGxpbmUgaXMgdmVyeSBsb25nIGFuZCBzaG91bGQgYmUgdXNlZCBhcyBhbiBleGFtcGxlIGZvciBob3cgdGhlIHBsdWdpbiBkZWFscyB3aXRoIHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIHZlcnkgbG9uZyBsaW5lcyBnaXZlbiB0aGUgY2hvaWNlIG9mIGNvZGVibG9jayBwYXJhbWV0ZXJzIGFuZCBzZXR0aW5ncy5cXFwiKVxcbnByaW50KFxcXCJUaGlzIGxpbmUgaXMgaGlnaGxpZ2h0ZWQuXFxcIilcIjtcbmV4cG9ydCBjb25zdCBFWEFNUExFX0lOTElORV9DT0RFID0gXCJ7cHl0aG9uIGljb24gdGl0bGU6Zm9vfSBwcmludChcXFwiVGhpcyBpcyBpbmxpbmUgY29kZVxcXCIpXCI7XG5leHBvcnQgY29uc3QgRVhDTFVERURfTEFOR1VBR0VTID0gXCJhZC0qXCI7XG5leHBvcnQgY29uc3QgV0hJVEVMSVNUX0NPREVCTE9DS1MgPSBcInJ1bi0qXCI7XG5cbi8vIFBsdWdpbiBkZWZhdWx0IHNldHRpbmdzXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVRUSU5HUzogQ29kZVN0eWxlclNldHRpbmdzID0ge1xuXHR0aGVtZXM6IHN0cnVjdHVyZWRDbG9uZShJTkJVSUxUX1RIRU1FUyksXG5cdHNlbGVjdGVkVGhlbWU6IFwiRGVmYXVsdFwiLFxuXHRjdXJyZW50VGhlbWU6IHN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1RIRU1FKSxcblx0bmV3VGhlbWU6IFwiXCIsXG5cdG5ld0hpZ2hsaWdodDogXCJcIixcblx0ZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnM6IEVYQU1QTEVfQ09ERUJMT0NLX1BBUkFNRVRFUlMsXG5cdGV4YW1wbGVDb2RlYmxvY2tDb250ZW50OiBFWEFNUExFX0NPREVCTE9DS19DT05URU5ULFxuXHRleGFtcGxlSW5saW5lQ29kZTogRVhBTVBMRV9JTkxJTkVfQ09ERSxcblx0ZGVjb3JhdGVQcmludDogdHJ1ZSxcblx0ZXhjbHVkZWRMYW5ndWFnZXM6IEVYQ0xVREVEX0xBTkdVQUdFUyxcblx0cHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdDogV0hJVEVMSVNUX0NPREVCTE9DS1MsXG5cdHJlZGlyZWN0TGFuZ3VhZ2VzOiB7fSxcblx0dmVyc2lvbjogXCIxLjEuMVwiLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTZXR0aW5ncyhzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0aWYgKHR5cGVvZiBzZXR0aW5ncz8udmVyc2lvbiA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gc2V0dGluZ3NDbGVhcigpO1xuXHR3aGlsZSAoc2VtdmVyTmV3ZXIoREVGQVVMVF9TRVRUSU5HUy52ZXJzaW9uLHNldHRpbmdzLnZlcnNpb24pKSB7XG5cdFx0aWYgKHNldHRpbmdzLnZlcnNpb24gaW4gc2V0dGluZ3NVcGRhdGVycylcblx0XHRcdHNldHRpbmdzID0gc2V0dGluZ3NVcGRhdGVyc1tzZXR0aW5ncy52ZXJzaW9uXShzZXR0aW5ncyk7XG5cdFx0ZWxzZVxuXHRcdFx0c2V0dGluZ3MgPSBzZXR0aW5nc0NsZWFyKCk7XG5cdH1cblx0cmV0dXJuIHNldHRpbmdzO1xufVxuZnVuY3Rpb24gc2VtdmVyTmV3ZXIobmV3VmVyc2lvbjogc3RyaW5nLCBvbGRWZXJzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIG5ld1ZlcnNpb24ubG9jYWxlQ29tcGFyZShvbGRWZXJzaW9uLCB1bmRlZmluZWQsIHsgbnVtZXJpYzogdHJ1ZSB9KSA9PT0gMTtcbn1cbmZ1bmN0aW9uIHNldHRpbmdzVmVyc2lvblVwZGF0ZShzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzLCB0aGVtZVVwZGF0ZXI6ICh0aGVtZTogQ29kZVN0eWxlclRoZW1lKT0+Q29kZVN0eWxlclRoZW1lID0gKHRoZW1lKT0+dGhlbWUsIG90aGVyU2V0dGluZ3NVcGRhdGVyOiAoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncyk9PkNvZGVTdHlsZXJTZXR0aW5ncyA9IChzZXR0aW5ncyk9PnNldHRpbmdzLCByZWRpcmVjdExhbmd1YWdlc1VwZGF0ZXI6IChyZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT4pPT5SZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9PiA9IChyZWRpcmVjdExhbmd1YWdlcyk9PnJlZGlyZWN0TGFuZ3VhZ2VzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0Zm9yIChjb25zdCBbbmFtZSwgdGhlbWVdIG9mIE9iamVjdC5lbnRyaWVzKHNldHRpbmdzLnRoZW1lcykpIHtcblx0XHRzZXR0aW5ncy50aGVtZXNbbmFtZV0gPSB0aGVtZVVwZGF0ZXIodGhlbWUpO1xuXHR9XG5cdHNldHRpbmdzLmN1cnJlbnRUaGVtZSA9IHN0cnVjdHVyZWRDbG9uZShzZXR0aW5ncy50aGVtZXNbc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0pO1xuXHRzZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyA9IHJlZGlyZWN0TGFuZ3VhZ2VzVXBkYXRlcihzZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyk7XG5cdHNldHRpbmdzID0gb3RoZXJTZXR0aW5nc1VwZGF0ZXIoc2V0dGluZ3MpO1xuXHRzZXR0aW5ncy52ZXJzaW9uID0gT2JqZWN0LmtleXMoc2V0dGluZ3NVcGRhdGVycykuZmluZCgodmFsdWUsaW5kZXgsYXJyYXkpPT5hcnJheT8uW2luZGV4LTFdPT09c2V0dGluZ3MudmVyc2lvbikgPz8gXCIxLjAuMFwiO1xuXHRyZXR1cm4gc2V0dGluZ3M7XG59XG5mdW5jdGlvbiBzZXR0aW5nc1ByZXNlcnZlKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpOiBDb2RlU3R5bGVyU2V0dGluZ3Mge1xuXHRzZXR0aW5ncy52ZXJzaW9uID0gT2JqZWN0LmtleXMoc2V0dGluZ3NVcGRhdGVycykuZmluZCgodmFsdWUsaW5kZXgsYXJyYXkpPT5hcnJheT8uW2luZGV4LTFdPT09c2V0dGluZ3MudmVyc2lvbikgPz8gXCIxLjAuMFwiO1xuXHRyZXR1cm4gc2V0dGluZ3M7XG59XG5mdW5jdGlvbiBzZXR0aW5nc0NsZWFyKCk6IENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdHJldHVybiBERUZBVUxUX1NFVFRJTkdTO1xufVxuXG5jb25zdCBzZXR0aW5nc1VwZGF0ZXJzOiBSZWNvcmQ8c3RyaW5nLChzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKT0+Q29kZVN0eWxlclNldHRpbmdzPiA9IHtcblx0XCIxLjAuMFwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC4xXCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjJcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuM1wiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC40XCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjVcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuNlwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC43XCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4wLjhcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjAuOVwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMC4xMFwiOiAoc2V0dGluZ3MpPT5zZXR0aW5nc1ZlcnNpb25VcGRhdGUoc2V0dGluZ3MsKHRoZW1lKT0+e1xuXHRcdHRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSA9IHRydWU7XG5cdFx0cmV0dXJuIHRoZW1lO1xuXHR9LChzZXR0aW5ncyk9PnsvL0B0cy1leHBlY3QtZXJyb3IgT2xkZXIgaW50ZXJmYWNlIHZlcnNpb25zXG5cdFx0ZGVsZXRlIHNldHRpbmdzLnNwZWNpYWxMYW5ndWFnZXM7XG5cdFx0cmV0dXJuIHNldHRpbmdzO1xuXHR9KSxcblx0XCIxLjAuMTFcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuMFwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS4xXCI6IHNldHRpbmdzUHJlc2VydmUsXG59O1xuXG4vLyBDb25zdGFudHNcbmV4cG9ydCBjb25zdCBGT0xEX1BMQUNFSE9MREVSID0gXCJGb2xkZWQgQ29kZVwiO1xuZXhwb3J0IGNvbnN0IFBBUkFNRVRFUlMgPSBbXCJ0aXRsZVwiLFwiZm9sZFwiLFwibG5cIixcIndyYXBcIixcInVud3JhcFwiLFwiaWdub3JlXCJdO1xuZXhwb3J0IGNvbnN0IFRSQU5TSVRJT05fTEVOR1RIID0gMjQwOyAvLyAyNDBtc1xuZXhwb3J0IGNvbnN0IFNQRUNJQUxfTEFOR1VBR0VTID0gW1wiXnByZXZpZXckXCIsXCJeaW5jbHVkZSRcIixcIl5vdXRwdXQkXCIsXCJecnVuLS4rJFwiXTtcbmV4cG9ydCBjb25zdCBTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCA9IFwiQENvZGUtU3R5bGVyLVNldHRpbmdzOlwiO1xuXG5jb25zdCBQUklTTV9MQU5HVUFHRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0geyAvLyBQcmlzbSBMYW5ndWFnZXM6IGh0dHBzOi8vcHJpc21qcy5jb20vcGx1Z2lucy9zaG93LWxhbmd1YWdlL1xuXHQvLyBcIm5vbmVcIjogXCJQbGFpbiB0ZXh0XCIsIC8vIE5PVEU6IE9ic2lkaWFuIHVzZXMgdGhpcyBmb3IgY29kZWJsb2NrcyB3aXRob3V0IGxhbmd1YWdlIG5hbWVzXG5cdFwicGxhaW5cIjogXCJQbGFpbiB0ZXh0XCIsXG5cdFwicGxhaW50ZXh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInRleHRcIjogXCJQbGFpbiB0ZXh0XCIsXG5cdFwidHh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcImh0bWxcIjogXCJIVE1MXCIsXG5cdFwieG1sXCI6IFwiWE1MXCIsXG5cdFwic3ZnXCI6IFwiU1ZHXCIsXG5cdFwibWF0aG1sXCI6IFwiTWF0aE1MXCIsXG5cdFwic3NtbFwiOiBcIlNTTUxcIixcblx0XCJyc3NcIjogXCJSU1NcIixcblx0XCJjc3NcIjogXCJDU1NcIixcblx0XCJjbGlrZVwiOiBcIkMtbGlrZVwiLFxuXHRcImpzXCI6IFwiSmF2YVNjcmlwdFwiLFxuXHRcImFiYXBcIjogXCJBQkFQXCIsXG5cdFwiYWJuZlwiOiBcIkFCTkZcIixcblx0XCJhbFwiOiBcIkFMXCIsXG5cdFwiYW50bHI0XCI6IFwiQU5UTFI0XCIsXG5cdFwiZzRcIjogXCJBTlRMUjRcIixcblx0XCJhcGFjaGVjb25mXCI6IFwiQXBhY2hlIENvbmZpZ3VyYXRpb25cIixcblx0XCJhcGxcIjogXCJBUExcIixcblx0XCJhcWxcIjogXCJBUUxcIixcblx0XCJpbm9cIjogXCJBcmR1aW5vXCIsXG5cdFwiYXJmZlwiOiBcIkFSRkZcIixcblx0XCJhcm1hc21cIjogXCJBUk0gQXNzZW1ibHlcIixcblx0XCJhcm0tYXNtXCI6IFwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJ0XCI6IFwiQXJ0dXJvXCIsXG5cdFwiYXNjaWlkb2NcIjogXCJBc2NpaURvY1wiLFxuXHRcImFkb2NcIjogXCJBc2NpaURvY1wiLFxuXHRcImFzcG5ldFwiOiBcIkFTUC5ORVQgKEMjKVwiLFxuXHRcImFzbTY1MDJcIjogXCI2NTAyIEFzc2VtYmx5XCIsXG5cdFwiYXNtYXRtZWxcIjogXCJBdG1lbCBBVlIgQXNzZW1ibHlcIixcblx0XCJhdXRvaG90a2V5XCI6IFwiQXV0b0hvdGtleVwiLFxuXHRcImF1dG9pdFwiOiBcIkF1dG9JdFwiLFxuXHRcImF2aXN5bnRoXCI6IFwiQXZpU3ludGhcIixcblx0XCJhdnNcIjogXCJBdmlTeW50aFwiLFxuXHRcImF2cm8taWRsXCI6IFwiQXZybyBJRExcIixcblx0XCJhdmRsXCI6IFwiQXZybyBJRExcIixcblx0XCJhd2tcIjogXCJBV0tcIixcblx0XCJnYXdrXCI6IFwiR0FXS1wiLFxuXHRcInNoXCI6IFwiU2hlbGxcIixcblx0XCJiYXNpY1wiOiBcIkJBU0lDXCIsXG5cdFwiYmJjb2RlXCI6IFwiQkJjb2RlXCIsXG5cdFwiYmJqXCI6IFwiQkJqXCIsXG5cdFwiYm5mXCI6IFwiQk5GXCIsXG5cdFwicmJuZlwiOiBcIlJCTkZcIixcblx0XCJicW5cIjogXCJCUU5cIixcblx0XCJic2xcIjogXCJCU0wgKDFDOkVudGVycHJpc2UpXCIsXG5cdFwib3NjcmlwdFwiOiBcIk9uZVNjcmlwdFwiLFxuXHRcImNzaGFycFwiOiBcIkMjXCIsXG5cdFwiY3NcIjogXCJDI1wiLFxuXHRcImRvdG5ldFwiOiBcIkMjXCIsXG5cdFwiY3BwXCI6IFwiQysrXCIsXG5cdFwiY2ZzY3JpcHRcIjogXCJDRlNjcmlwdFwiLFxuXHRcImNmY1wiOiBcIkNGU2NyaXB0XCIsXG5cdFwiY2lsXCI6IFwiQ0lMXCIsXG5cdFwiY2lsa2NcIjogXCJDaWxrL0NcIixcblx0XCJjaWxrLWNcIjogXCJDaWxrL0NcIixcblx0XCJjaWxrY3BwXCI6IFwiQ2lsay9DKytcIixcblx0XCJjaWxrLWNwcFwiOiBcIkNpbGsvQysrXCIsXG5cdFwiY2lsa1wiOiBcIkNpbGsvQysrXCIsXG5cdFwiY21ha2VcIjogXCJDTWFrZVwiLFxuXHRcImNvYm9sXCI6IFwiQ09CT0xcIixcblx0XCJjb2ZmZWVcIjogXCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb25jXCI6IFwiQ29uY3VybmFzXCIsXG5cdFwiY3NwXCI6IFwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIixcblx0XCJjc3MtZXh0cmFzXCI6IFwiQ1NTIEV4dHJhc1wiLFxuXHRcImNzdlwiOiBcIkNTVlwiLFxuXHRcImN1ZVwiOiBcIkNVRVwiLFxuXHRcImRhdGF3ZWF2ZVwiOiBcIkRhdGFXZWF2ZVwiLFxuXHRcImRheFwiOiBcIkRBWFwiLFxuXHRcImRqYW5nb1wiOiBcIkRqYW5nby9KaW5qYTJcIixcblx0XCJqaW5qYTJcIjogXCJEamFuZ28vSmluamEyXCIsXG5cdFwiZG5zLXpvbmUtZmlsZVwiOiBcIkROUyB6b25lIGZpbGVcIixcblx0XCJkbnMtem9uZVwiOiBcIkROUyB6b25lIGZpbGVcIixcblx0XCJkb2NrZXJmaWxlXCI6IFwiRG9ja2VyXCIsXG5cdFwiZG90XCI6IFwiRE9UIChHcmFwaHZpeilcIixcblx0XCJndlwiOiBcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZWJuZlwiOiBcIkVCTkZcIixcblx0XCJlZGl0b3Jjb25maWdcIjogXCJFZGl0b3JDb25maWdcIixcblx0XCJlanNcIjogXCJFSlNcIixcblx0XCJldGx1YVwiOiBcIkVtYmVkZGVkIEx1YSB0ZW1wbGF0aW5nXCIsXG5cdFwiZXJiXCI6IFwiRVJCXCIsXG5cdFwiZXhjZWwtZm9ybXVsYVwiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHN4XCI6IFwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc1wiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJmc2hhcnBcIjogXCJGI1wiLFxuXHRcImZpcmVzdG9yZS1zZWN1cml0eS1ydWxlc1wiOiBcIkZpcmVzdG9yZSBzZWN1cml0eSBydWxlc1wiLFxuXHRcImZ0bFwiOiBcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIixcblx0XCJnbWxcIjogXCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYW1lbWFrZXJsYW5ndWFnZVwiOiBcIkdhbWVNYWtlciBMYW5ndWFnZVwiLFxuXHRcImdhcFwiOiBcIkdBUCAoQ0FTKVwiLFxuXHRcImdjb2RlXCI6IFwiRy1jb2RlXCIsXG5cdFwiZ2RzY3JpcHRcIjogXCJHRFNjcmlwdFwiLFxuXHRcImdlZGNvbVwiOiBcIkdFRENPTVwiLFxuXHRcImdldHRleHRcIjogXCJnZXR0ZXh0XCIsXG5cdFwicG9cIjogXCJnZXR0ZXh0XCIsXG5cdFwiZ2xzbFwiOiBcIkdMU0xcIixcblx0XCJnblwiOiBcIkdOXCIsXG5cdFwiZ25pXCI6IFwiR05cIixcblx0XCJsaW5rZXItc2NyaXB0XCI6IFwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJsZFwiOiBcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwiZ28tbW9kdWxlXCI6IFwiR28gbW9kdWxlXCIsXG5cdFwiZ28tbW9kXCI6IFwiR28gbW9kdWxlXCIsXG5cdFwiZ3JhcGhxbFwiOiBcIkdyYXBoUUxcIixcblx0XCJoYnNcIjogXCJIYW5kbGViYXJzXCIsXG5cdFwiaHNcIjogXCJIYXNrZWxsXCIsXG5cdFwiaGNsXCI6IFwiSENMXCIsXG5cdFwiaGxzbFwiOiBcIkhMU0xcIixcblx0XCJodHRwXCI6IFwiSFRUUFwiLFxuXHRcImhwa3BcIjogXCJIVFRQIFB1YmxpYy1LZXktUGluc1wiLFxuXHRcImhzdHNcIjogXCJIVFRQIFN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHlcIixcblx0XCJpY2hpZ29qYW1cIjogXCJJY2hpZ29KYW1cIixcblx0XCJpY3UtbWVzc2FnZS1mb3JtYXRcIjogXCJJQ1UgTWVzc2FnZSBGb3JtYXRcIixcblx0XCJpZHJcIjogXCJJZHJpc1wiLFxuXHRcImlnbm9yZVwiOiBcIi5pZ25vcmVcIixcblx0XCJnaXRpZ25vcmVcIjogXCIuZ2l0aWdub3JlXCIsXG5cdFwiaGdpZ25vcmVcIjogXCIuaGdpZ25vcmVcIixcblx0XCJucG1pZ25vcmVcIjogXCIubnBtaWdub3JlXCIsXG5cdFwiaW5mb3JtN1wiOiBcIkluZm9ybSA3XCIsXG5cdFwiamF2YWRvY1wiOiBcIkphdmFEb2NcIixcblx0XCJqYXZhZG9jbGlrZVwiOiBcIkphdmFEb2MtbGlrZVwiLFxuXHRcImphdmFzdGFja3RyYWNlXCI6IFwiSmF2YSBzdGFjayB0cmFjZVwiLFxuXHRcImpxXCI6IFwiSlFcIixcblx0XCJqc2RvY1wiOiBcIkpTRG9jXCIsXG5cdFwianMtZXh0cmFzXCI6IFwiSlMgRXh0cmFzXCIsXG5cdFwianNvblwiOiBcIkpTT05cIixcblx0XCJ3ZWJtYW5pZmVzdFwiOiBcIldlYiBBcHAgTWFuaWZlc3RcIixcblx0XCJqc29uNVwiOiBcIkpTT041XCIsXG5cdFwianNvbnBcIjogXCJKU09OUFwiLFxuXHRcImpzc3RhY2t0cmFjZVwiOiBcIkpTIHN0YWNrIHRyYWNlXCIsXG5cdFwianMtdGVtcGxhdGVzXCI6IFwiSlMgVGVtcGxhdGVzXCIsXG5cdFwia2VlcGFsaXZlZFwiOiBcIktlZXBhbGl2ZWQgQ29uZmlndXJlXCIsXG5cdFwia3RzXCI6IFwiS290bGluIFNjcmlwdFwiLFxuXHRcImt0XCI6IFwiS290bGluXCIsXG5cdFwia3VtaXJcIjogXCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1bVwiOiBcIkt1TWlyIChcdTA0MUFcdTA0NDNcdTA0MUNcdTA0MzhcdTA0NDApXCIsXG5cdFwibGF0ZXhcIjogXCJMYVRlWFwiLFxuXHRcInRleFwiOiBcIlRlWFwiLFxuXHRcImNvbnRleHRcIjogXCJDb25UZVh0XCIsXG5cdFwibGlseXBvbmRcIjogXCJMaWx5UG9uZFwiLFxuXHRcImx5XCI6IFwiTGlseVBvbmRcIixcblx0XCJlbWFjc1wiOiBcIkxpc3BcIixcblx0XCJlbGlzcFwiOiBcIkxpc3BcIixcblx0XCJlbWFjcy1saXNwXCI6IFwiTGlzcFwiLFxuXHRcImxsdm1cIjogXCJMTFZNIElSXCIsXG5cdFwibG9nXCI6IFwiTG9nIGZpbGVcIixcblx0XCJsb2xjb2RlXCI6IFwiTE9MQ09ERVwiLFxuXHRcIm1hZ21hXCI6IFwiTWFnbWEgKENBUylcIixcblx0XCJtZFwiOiBcIk1hcmtkb3duXCIsXG5cdFwibWFya3VwLXRlbXBsYXRpbmdcIjogXCJNYXJrdXAgdGVtcGxhdGluZ1wiLFxuXHRcIm1hdGxhYlwiOiBcIk1BVExBQlwiLFxuXHRcIm1heHNjcmlwdFwiOiBcIk1BWFNjcmlwdFwiLFxuXHRcIm1lbFwiOiBcIk1FTFwiLFxuXHRcIm1ldGFmb250XCI6IFwiTUVUQUZPTlRcIixcblx0XCJtb25nb2RiXCI6IFwiTW9uZ29EQlwiLFxuXHRcIm1vb25cIjogXCJNb29uU2NyaXB0XCIsXG5cdFwibjFxbFwiOiBcIk4xUUxcIixcblx0XCJuNGpzXCI6IFwiTjRKU1wiLFxuXHRcIm40anNkXCI6IFwiTjRKU1wiLFxuXHRcIm5hbmQydGV0cmlzLWhkbFwiOiBcIk5hbmQgVG8gVGV0cmlzIEhETFwiLFxuXHRcIm5hbmlzY3JpcHRcIjogXCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFuaVwiOiBcIk5hbmlub3ZlbCBTY3JpcHRcIixcblx0XCJuYXNtXCI6IFwiTkFTTVwiLFxuXHRcIm5lb25cIjogXCJORU9OXCIsXG5cdFwibmdpbnhcIjogXCJuZ2lueFwiLFxuXHRcIm5zaXNcIjogXCJOU0lTXCIsXG5cdFwib2JqZWN0aXZlY1wiOiBcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2JqY1wiOiBcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2NhbWxcIjogXCJPQ2FtbFwiLFxuXHRcIm9wZW5jbFwiOiBcIk9wZW5DTFwiLFxuXHRcIm9wZW5xYXNtXCI6IFwiT3BlblFhc21cIixcblx0XCJxYXNtXCI6IFwiT3BlblFhc21cIixcblx0XCJwYXJpZ3BcIjogXCJQQVJJL0dQXCIsXG5cdFwib2JqZWN0cGFzY2FsXCI6IFwiT2JqZWN0IFBhc2NhbFwiLFxuXHRcInBzbFwiOiBcIlBBVFJPTCBTY3JpcHRpbmcgTGFuZ3VhZ2VcIixcblx0XCJwY2F4aXNcIjogXCJQQy1BeGlzXCIsXG5cdFwicHhcIjogXCJQQy1BeGlzXCIsXG5cdFwicGVvcGxlY29kZVwiOiBcIlBlb3BsZUNvZGVcIixcblx0XCJwY29kZVwiOiBcIlBlb3BsZUNvZGVcIixcblx0XCJwaHBcIjogXCJQSFBcIixcblx0XCJwaHBkb2NcIjogXCJQSFBEb2NcIixcblx0XCJwaHAtZXh0cmFzXCI6IFwiUEhQIEV4dHJhc1wiLFxuXHRcInBsYW50LXVtbFwiOiBcIlBsYW50VU1MXCIsXG5cdFwicGxhbnR1bWxcIjogXCJQbGFudFVNTFwiLFxuXHRcInBsc3FsXCI6IFwiUEwvU1FMXCIsXG5cdFwicG93ZXJxdWVyeVwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJwcVwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJtc2NyaXB0XCI6IFwiUG93ZXJRdWVyeVwiLFxuXHRcInBvd2Vyc2hlbGxcIjogXCJQb3dlclNoZWxsXCIsXG5cdFwicHJvbXFsXCI6IFwiUHJvbVFMXCIsXG5cdFwicHJvcGVydGllc1wiOiBcIi5wcm9wZXJ0aWVzXCIsXG5cdFwicHJvdG9idWZcIjogXCJQcm90b2NvbCBCdWZmZXJzXCIsXG5cdFwicHVyZWJhc2ljXCI6IFwiUHVyZUJhc2ljXCIsXG5cdFwicGJmYXNtXCI6IFwiUHVyZUJhc2ljXCIsXG5cdFwicHVyc1wiOiBcIlB1cmVTY3JpcHRcIixcblx0XCJweVwiOiBcIlB5dGhvblwiLFxuXHRcInFzaGFycFwiOiBcIlEjXCIsXG5cdFwicXNcIjogXCJRI1wiLFxuXHRcInFcIjogXCJRIChrZGIrIGRhdGFiYXNlKVwiLFxuXHRcInFtbFwiOiBcIlFNTFwiLFxuXHRcInJrdFwiOiBcIlJhY2tldFwiLFxuXHRcImNzaHRtbFwiOiBcIlJhem9yIEMjXCIsXG5cdFwicmF6b3JcIjogXCJSYXpvciBDI1wiLFxuXHRcImpzeFwiOiBcIlJlYWN0IEpTWFwiLFxuXHRcInRzeFwiOiBcIlJlYWN0IFRTWFwiLFxuXHRcInJlbnB5XCI6IFwiUmVuJ3B5XCIsXG5cdFwicnB5XCI6IFwiUmVuJ3B5XCIsXG5cdFwicmVzXCI6IFwiUmVTY3JpcHRcIixcblx0XCJyZXN0XCI6IFwicmVTVCAocmVTdHJ1Y3R1cmVkVGV4dClcIixcblx0XCJyb2JvdGZyYW1ld29ya1wiOiBcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJvYm90XCI6IFwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicmJcIjogXCJSdWJ5XCIsXG5cdFwic2FzXCI6IFwiU0FTXCIsXG5cdFwic2Fzc1wiOiBcIlNhc3MgKFNhc3MpXCIsXG5cdFwic2Nzc1wiOiBcIlNhc3MgKFNDU1MpXCIsXG5cdFwic2hlbGwtc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaC1zZXNzaW9uXCI6IFwiU2hlbGwgc2Vzc2lvblwiLFxuXHRcInNoZWxsc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzbWxcIjogXCJTTUxcIixcblx0XCJzbWxualwiOiBcIlNNTC9OSlwiLFxuXHRcInNvbGlkaXR5XCI6IFwiU29saWRpdHkgKEV0aGVyZXVtKVwiLFxuXHRcInNvbFwiOiBcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2x1dGlvbi1maWxlXCI6IFwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNsblwiOiBcIlNvbHV0aW9uIGZpbGVcIixcblx0XCJzb3lcIjogXCJTb3kgKENsb3N1cmUgVGVtcGxhdGUpXCIsXG5cdFwic3BhcnFsXCI6IFwiU1BBUlFMXCIsXG5cdFwicnFcIjogXCJTUEFSUUxcIixcblx0XCJzcGx1bmstc3BsXCI6IFwiU3BsdW5rIFNQTFwiLFxuXHRcInNxZlwiOiBcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiLFxuXHRcInNxbFwiOiBcIlNRTFwiLFxuXHRcInN0YXRhXCI6IFwiU3RhdGEgQWRvXCIsXG5cdFwiaWVjc3RcIjogXCJTdHJ1Y3R1cmVkIFRleHQgKElFQyA2MTEzMS0zKVwiLFxuXHRcInN1cGVyY29sbGlkZXJcIjogXCJTdXBlckNvbGxpZGVyXCIsXG5cdFwic2NsYW5nXCI6IFwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInN5c3RlbWRcIjogXCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiLFxuXHRcInQ0LXRlbXBsYXRpbmdcIjogXCJUNCB0ZW1wbGF0aW5nXCIsXG5cdFwidDQtY3NcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDRcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDQtdmJcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCIsXG5cdFwidGFwXCI6IFwiVEFQXCIsXG5cdFwidHQyXCI6IFwiVGVtcGxhdGUgVG9vbGtpdCAyXCIsXG5cdFwidG9tbFwiOiBcIlRPTUxcIixcblx0XCJ0cmlja2xlXCI6IFwidHJpY2tsZVwiLFxuXHRcInRyb3lcIjogXCJ0cm95XCIsXG5cdFwidHJpZ1wiOiBcIlRyaUdcIixcblx0XCJ0c1wiOiBcIlR5cGVTY3JpcHRcIixcblx0XCJ0c2NvbmZpZ1wiOiBcIlRTQ29uZmlnXCIsXG5cdFwidXNjcmlwdFwiOiBcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVjXCI6IFwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidW9yYXpvclwiOiBcIlVPIFJhem9yIFNjcmlwdFwiLFxuXHRcInVyaVwiOiBcIlVSSVwiLFxuXHRcInVybFwiOiBcIlVSTFwiLFxuXHRcInZibmV0XCI6IFwiVkIuTmV0XCIsXG5cdFwidmhkbFwiOiBcIlZIRExcIixcblx0XCJ2aW1cIjogXCJ2aW1cIixcblx0XCJ2aXN1YWwtYmFzaWNcIjogXCJWaXN1YWwgQmFzaWNcIixcblx0XCJ2YmFcIjogXCJWQkFcIixcblx0XCJ2YlwiOiBcIlZpc3VhbCBCYXNpY1wiLFxuXHRcIndhc21cIjogXCJXZWJBc3NlbWJseVwiLFxuXHRcIndlYi1pZGxcIjogXCJXZWIgSURMXCIsXG5cdFwid2ViaWRsXCI6IFwiV2ViIElETFwiLFxuXHRcIndnc2xcIjogXCJXR1NMXCIsXG5cdFwid2lraVwiOiBcIldpa2kgbWFya3VwXCIsXG5cdFwid29sZnJhbVwiOiBcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJuYlwiOiBcIk1hdGhlbWF0aWNhIE5vdGVib29rXCIsXG5cdFwid2xcIjogXCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwieGVvcmFjdWJlXCI6IFwiWGVvcmFDdWJlXCIsXG5cdFwieG1sLWRvY1wiOiBcIlhNTCBkb2MgKC5uZXQpXCIsXG5cdFwieG9qb1wiOiBcIlhvam8gKFJFQUxiYXNpYylcIixcblx0XCJ4cXVlcnlcIjogXCJYUXVlcnlcIixcblx0XCJ5YW1sXCI6IFwiWUFNTFwiLFxuXHRcInltbFwiOiBcIllBTUxcIixcblx0XCJ5YW5nXCI6IFwiWUFOR1wiLFxufTsgXG5jb25zdCBNQU5VQUxfUFJJU01fTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gTWFudWFsbHkgZ2VuZXJhdGVkIGxpc3QgZnJvbSBodHRwczovL3ByaXNtanMuY29tLyAgLSAgMjk3IGxhbmd1YWdlc1xuXHRcImNzc1wiOlwiQ1NTXCIsXG5cdFwiY2xpa2VcIjpcIkMtbGlrZVwiLFxuXHRcImphdmFzY3JpcHRcIjpcIkphdmFTY3JpcHRcIixcblx0XCJqc1wiOlwiSmF2YVNjcmlwdFwiLFxuXHRcImFiYXBcIjpcIkFCQVBcIixcblx0XCJhYm5mXCI6XCJBQk5GXCIsXG5cdFwiYWN0aW9uc2NyaXB0XCI6XCJBY3Rpb25TY3JpcHRcIixcblx0XCJhZGFcIjpcIkFkYVwiLFxuXHRcImFnZGFcIjpcIkFnZGFcIixcblx0XCJhbFwiOlwiQUxcIixcblx0XCJhbnRscjRcIjpcIkFOVExSNFwiLFxuXHRcImc0XCI6XCJBTlRMUjRcIixcblx0XCJhcGFjaGVjb25mXCI6XCJBcGFjaGUgQ29uZmlndXJhdGlvblwiLFxuXHRcImFwZXhcIjpcIkFwZXhcIixcblx0XCJhcGxcIjpcIkFQTFwiLFxuXHRcImFwcGxlc2NyaXB0XCI6XCJBcHBsZVNjcmlwdFwiLFxuXHRcImFxbFwiOlwiQVFMXCIsXG5cdFwiYXJkdWlub1wiOlwiQXJkdWlub1wiLFxuXHRcImlub1wiOlwiQXJkdWlub1wiLFxuXHRcImFyZmZcIjpcIkFSRkZcIixcblx0XCJhcm1hc21cIjpcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFybS1hc21cIjpcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFydHVyb1wiOlwiQXJ0dXJvXCIsXG5cdFwiYXJ0XCI6XCJBcnR1cm9cIixcblx0XCJhc2NpaWRvY1wiOlwiQXNjaWlEb2NcIixcblx0XCJhZG9jXCI6XCJBc2NpaURvY1wiLFxuXHRcImFzcG5ldFwiOlwiQVNQLk5FVCAoQyMpXCIsXG5cdFwiYXNtNjUwMlwiOlwiNjUwMiBBc3NlbWJseVwiLFxuXHRcImFzbWF0bWVsXCI6XCJBdG1lbCBBVlIgQXNzZW1ibHlcIixcblx0XCJhdXRvaG90a2V5XCI6XCJBdXRvSG90a2V5XCIsXG5cdFwiYXV0b2l0XCI6XCJBdXRvSXRcIixcblx0XCJhdmlzeW50aFwiOlwiQXZpU3ludGhcIixcblx0XCJhdnNcIjpcIkF2aVN5bnRoXCIsXG5cdFwiYXZyby1pZGxcIjpcIkF2cm8gSURMXCIsXG5cdFwiYXZkbFwiOlwiQXZybyBJRExcIixcblx0XCJhd2tcIjpcIkFXS1wiLFxuXHRcImdhd2tcIjpcIkdBV0tcIixcblx0XCJiYXNoXCI6XCJCYXNoXCIsXG5cdFwic2hcIjpcIlNoZWxsXCIsXG5cdFwic2hlbGxcIjpcIlNoZWxsXCIsXG5cdFwiYmFzaWNcIjpcIkJBU0lDXCIsXG5cdFwiYmF0Y2hcIjpcIkJhdGNoXCIsXG5cdFwiYmJjb2RlXCI6XCJCQmNvZGVcIixcblx0XCJzaG9ydGNvZGVcIjpcIkJCY29kZVwiLFxuXHRcImJialwiOlwiQkJqXCIsXG5cdFwiYmlyYlwiOlwiQmlyYlwiLFxuXHRcImJpc29uXCI6XCJCaXNvblwiLFxuXHRcImJuZlwiOlwiQk5GXCIsXG5cdFwicmJuZlwiOlwiQk5GXCIsXG5cdFwiYnFuXCI6XCJCUU5cIixcblx0XCJicmFpbmZ1Y2tcIjpcIkJyYWluZnVja1wiLFxuXHRcImJyaWdodHNjcmlwdFwiOlwiQnJpZ2h0U2NyaXB0XCIsXG5cdFwiYnJvXCI6XCJCcm9cIixcblx0XCJic2xcIjpcIkJTTCAoMUMpXCIsXG5cdFwib3NjcmlwdFwiOlwiQlNMICgxQylcIixcblx0XCJjXCI6XCJDXCIsXG5cdFwiY3NoYXJwXCI6XCJDI1wiLFxuXHRcImNzXCI6XCJDI1wiLFxuXHRcImRvdG5ldFwiOlwiQyNcIixcblx0XCJjcHBcIjpcIkMrK1wiLFxuXHRcImNmc2NyaXB0XCI6XCJDRlNjcmlwdFwiLFxuXHRcImNmY1wiOlwiQ0ZTY3JpcHRcIixcblx0XCJjaGFpc2NyaXB0XCI6XCJDaGFpU2NyaXB0XCIsXG5cdFwiY2lsXCI6XCJDSUxcIixcblx0XCJjaWxrY1wiOlwiQ2lsay9DXCIsXG5cdFwiY2lsay1jXCI6XCJDaWxrL0NcIixcblx0XCJjaWxrY3BwXCI6XCJDaWxrL0MrK1wiLFxuXHRcImNpbGstY3BwXCI6XCJDaWxrL0MrK1wiLFxuXHRcImNpbGtcIjpcIkNpbGsvQysrXCIsXG5cdFwiY2xvanVyZVwiOlwiQ2xvanVyZVwiLFxuXHRcImNtYWtlXCI6XCJDTWFrZVwiLFxuXHRcImNvYm9sXCI6XCJDT0JPTFwiLFxuXHRcImNvZmZlZXNjcmlwdFwiOlwiQ29mZmVlU2NyaXB0XCIsXG5cdFwiY29mZmVlXCI6XCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb25jdXJuYXNcIjpcIkNvbmN1cm5hc1wiLFxuXHRcImNvbmNcIjpcIkNvbmN1cm5hc1wiLFxuXHRcImNzcFwiOlwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIixcblx0XCJjb29rbGFuZ1wiOlwiQ29va2xhbmdcIixcblx0XCJjb3FcIjpcIkNvcVwiLFxuXHRcImNyeXN0YWxcIjpcIkNyeXN0YWxcIixcblx0XCJjc3MtZXh0cmFzXCI6XCJDU1MgRXh0cmFzXCIsXG5cdFwiY3N2XCI6XCJDU1ZcIixcblx0XCJjdWVcIjpcIkNVRVwiLFxuXHRcImN5cGhlclwiOlwiQ3lwaGVyXCIsXG5cdFwiZFwiOlwiRFwiLFxuXHRcImRhcnRcIjpcIkRhcnRcIixcblx0XCJkYXRhd2VhdmVcIjpcIkRhdGFXZWF2ZVwiLFxuXHRcImRheFwiOlwiREFYXCIsXG5cdFwiZGhhbGxcIjpcIkRoYWxsXCIsXG5cdFwiZGlmZlwiOlwiRGlmZlwiLFxuXHRcImRqYW5nb1wiOlwiRGphbmdvL0ppbmphMlwiLFxuXHRcImppbmphMlwiOlwiRGphbmdvL0ppbmphMlwiLFxuXHRcImRucy16b25lLWZpbGVcIjpcIkROUyB6b25lIGZpbGVcIixcblx0XCJkbnMtem9uZVwiOlwiRE5TIHpvbmUgZmlsZVwiLFxuXHRcImRvY2tlclwiOlwiRG9ja2VyXCIsXG5cdFwiZG9ja2VyZmlsZVwiOlwiRG9ja2VyXCIsXG5cdFwiZG90XCI6XCJET1QgKEdyYXBodml6KVwiLFxuXHRcImd2XCI6XCJET1QgKEdyYXBodml6KVwiLFxuXHRcImVibmZcIjpcIkVCTkZcIixcblx0XCJlZGl0b3Jjb25maWdcIjpcIkVkaXRvckNvbmZpZ1wiLFxuXHRcImVpZmZlbFwiOlwiRWlmZmVsXCIsXG5cdFwiZWpzXCI6XCJFSlNcIixcblx0XCJldGFcIjpcIkVKU1wiLFxuXHRcImVsaXhpclwiOlwiRWxpeGlyXCIsXG5cdFwiZWxtXCI6XCJFbG1cIixcblx0XCJldGx1YVwiOlwiRW1iZWRkZWQgTHVhIHRlbXBsYXRpbmdcIixcblx0XCJlcmJcIjpcIkVSQlwiLFxuXHRcImVybGFuZ1wiOlwiRXJsYW5nXCIsXG5cdFwiZXhjZWwtZm9ybXVsYVwiOlwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc3hcIjpcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHNcIjpcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJmc2hhcnBcIjpcIkYjXCIsXG5cdFwiZmFjdG9yXCI6XCJGYWN0b3JcIixcblx0XCJmYWxzZVwiOlwiRmFsc2VcIixcblx0XCJmaXJlc3RvcmUtc2VjdXJpdHktcnVsZXNcIjpcIkZpcmVzdG9yZSBzZWN1cml0eSBydWxlc1wiLFxuXHRcImZsb3dcIjpcIkZsb3dcIixcblx0XCJmb3J0cmFuXCI6XCJGb3J0cmFuXCIsXG5cdFwiZnRsXCI6XCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCIsXG5cdFwiZ21sXCI6XCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYW1lbWFrZXJsYW5ndWFnZVwiOlwiR2FtZU1ha2VyIExhbmd1YWdlXCIsXG5cdFwiZ2FwXCI6XCJHQVAgKENBUylcIixcblx0XCJnY29kZVwiOlwiRy1jb2RlXCIsXG5cdFwiZ2RzY3JpcHRcIjpcIkdEU2NyaXB0XCIsXG5cdFwiZ2VkY29tXCI6XCJHRURDT01cIixcblx0XCJnZXR0ZXh0XCI6XCJnZXR0ZXh0XCIsXG5cdFwicG9cIjpcImdldHRleHRcIixcblx0XCJnaGVya2luXCI6XCJHaGVya2luXCIsXG5cdFwiZ2l0XCI6XCJHaXRcIixcblx0XCJnbHNsXCI6XCJHTFNMXCIsXG5cdFwiZ25cIjpcIkdOXCIsXG5cdFwiZ25pXCI6XCJHTlwiLFxuXHRcImxpbmtlci1zY3JpcHRcIjpcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwibGRcIjpcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwiZ29cIjpcIkdvXCIsXG5cdFwiZ28tbW9kdWxlXCI6XCJHbyBtb2R1bGVcIixcblx0XCJnby1tb2RcIjpcIkdvIG1vZHVsZVwiLFxuXHRcImdyYWRsZVwiOlwiR3JhZGxlXCIsXG5cdFwiZ3JhcGhxbFwiOlwiR3JhcGhRTFwiLFxuXHRcImdyb292eVwiOlwiR3Jvb3Z5XCIsXG5cdFwiaGFtbFwiOlwiSGFtbFwiLFxuXHRcImhhbmRsZWJhcnNcIjpcIkhhbmRsZWJhcnNcIixcblx0XCJoYnNcIjpcIkhhbmRsZWJhcnNcIixcblx0XCJtdXN0YWNoZVwiOlwiSGFuZGxlYmFyc1wiLFxuXHRcImhhc2tlbGxcIjpcIkhhc2tlbGxcIixcblx0XCJoc1wiOlwiSGFza2VsbFwiLFxuXHRcImhheGVcIjpcIkhheGVcIixcblx0XCJoY2xcIjpcIkhDTFwiLFxuXHRcImhsc2xcIjpcIkhMU0xcIixcblx0XCJob29uXCI6XCJIb29uXCIsXG5cdFwiaHR0cFwiOlwiSFRUUFwiLFxuXHRcImhwa3BcIjpcIkhUVFAgUHVibGljLUtleS1QaW5zXCIsXG5cdFwiaHN0c1wiOlwiSFRUUCBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5XCIsXG5cdFwiaWNoaWdvamFtXCI6XCJJY2hpZ29KYW1cIixcblx0XCJpY29uXCI6XCJJY29uXCIsXG5cdFwiaWN1LW1lc3NhZ2UtZm9ybWF0XCI6XCJJQ1UgTWVzc2FnZSBGb3JtYXRcIixcblx0XCJpZHJpc1wiOlwiSWRyaXNcIixcblx0XCJpZHJcIjpcIklkcmlzXCIsXG5cdFwiaW5mb3JtN1wiOlwiSW5mb3JtIDdcIixcblx0XCJpbmlcIjpcIkluaVwiLFxuXHRcImlvXCI6XCJJb1wiLFxuXHRcImpcIjpcIkpcIixcblx0XCJqYXZhXCI6XCJKYXZhXCIsXG5cdFwiamF2YWRvY1wiOlwiSmF2YURvY1wiLFxuXHRcImphdmFkb2NsaWtlXCI6XCJKYXZhRG9jLWxpa2VcIixcblx0XCJqYXZhc3RhY2t0cmFjZVwiOlwiSmF2YSBzdGFjayB0cmFjZVwiLFxuXHRcImpleGxcIjpcIkpleGxcIixcblx0XCJqb2xpZVwiOlwiSm9saWVcIixcblx0XCJqcVwiOlwiSlFcIixcblx0XCJqc2RvY1wiOlwiSlNEb2NcIixcblx0XCJqcy1leHRyYXNcIjpcIkpTIEV4dHJhc1wiLFxuXHRcImpzb25cIjpcIkpTT05cIixcblx0XCJ3ZWJtYW5pZmVzdFwiOlwiSlNPTlwiLFxuXHRcImpzb241XCI6XCJKU09ONVwiLFxuXHRcImpzb25wXCI6XCJKU09OUFwiLFxuXHRcImpzc3RhY2t0cmFjZVwiOlwiSlMgc3RhY2sgdHJhY2VcIixcblx0XCJqcy10ZW1wbGF0ZXNcIjpcIkpTIFRlbXBsYXRlc1wiLFxuXHRcImp1bGlhXCI6XCJKdWxpYVwiLFxuXHRcImtlZXBhbGl2ZWRcIjpcIktlZXBhbGl2ZWQgQ29uZmlndXJlXCIsXG5cdFwia2V5bWFuXCI6XCJLZXltYW5cIixcblx0XCJrb3RsaW5cIjpcIktvdGxpblwiLFxuXHRcImt0XCI6XCJLb3RsaW5cIixcblx0XCJrdHNcIjpcIktvdGxpblwiLFxuXHRcImt1bWlyXCI6XCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1bVwiOlwiS3VNaXIgKFx1MDQxQVx1MDQ0M1x1MDQxQ1x1MDQzOFx1MDQ0MClcIixcblx0XCJrdXN0b1wiOlwiS3VzdG9cIixcblx0XCJsYXRleFwiOlwiTGFUZVhcIixcblx0XCJ0ZXhcIjpcIkxhVGVYXCIsXG5cdFwiY29udGV4dFwiOlwiTGFUZVhcIixcblx0XCJsYXR0ZVwiOlwiTGF0dGVcIixcblx0XCJsZXNzXCI6XCJMZXNzXCIsXG5cdFwibGlseXBvbmRcIjpcIkxpbHlQb25kXCIsXG5cdFwibHlcIjpcIkxpbHlQb25kXCIsXG5cdFwibGlxdWlkXCI6XCJMaXF1aWRcIixcblx0XCJsaXNwXCI6XCJMaXNwXCIsXG5cdFwiZW1hY3NcIjpcIkxpc3BcIixcblx0XCJlbGlzcFwiOlwiTGlzcFwiLFxuXHRcImVtYWNzLWxpc3BcIjpcIkxpc3BcIixcblx0XCJsaXZlc2NyaXB0XCI6XCJMaXZlU2NyaXB0XCIsXG5cdFwibGx2bVwiOlwiTExWTSBJUlwiLFxuXHRcImxvZ1wiOlwiTG9nIGZpbGVcIixcblx0XCJsb2xjb2RlXCI6XCJMT0xDT0RFXCIsXG5cdFwibHVhXCI6XCJMdWFcIixcblx0XCJtYWdtYVwiOlwiTWFnbWEgKENBUylcIixcblx0XCJtYWtlZmlsZVwiOlwiTWFrZWZpbGVcIixcblx0XCJtYXJrZG93blwiOlwiTWFya2Rvd25cIixcblx0XCJtZFwiOlwiTWFya2Rvd25cIixcblx0XCJtYXJrdXAtdGVtcGxhdGluZ1wiOlwiTWFya3VwIHRlbXBsYXRpbmdcIixcblx0XCJtYXRhXCI6XCJNYXRhXCIsXG5cdFwibWF0bGFiXCI6XCJNQVRMQUJcIixcblx0XCJtYXhzY3JpcHRcIjpcIk1BWFNjcmlwdFwiLFxuXHRcIm1lbFwiOlwiTUVMXCIsXG5cdFwibWVybWFpZFwiOlwiTWVybWFpZFwiLFxuXHRcIm1ldGFmb250XCI6XCJNRVRBRk9OVFwiLFxuXHRcIm1pemFyXCI6XCJNaXphclwiLFxuXHRcIm1vbmdvZGJcIjpcIk1vbmdvREJcIixcblx0XCJtb25rZXlcIjpcIk1vbmtleVwiLFxuXHRcIm1vb25zY3JpcHRcIjpcIk1vb25TY3JpcHRcIixcblx0XCJtb29uXCI6XCJNb29uU2NyaXB0XCIsXG5cdFwibjFxbFwiOlwiTjFRTFwiLFxuXHRcIm40anNcIjpcIk40SlNcIixcblx0XCJuNGpzZFwiOlwiTjRKU1wiLFxuXHRcIm5hbmQydGV0cmlzLWhkbFwiOlwiTmFuZCBUbyBUZXRyaXMgSERMXCIsXG5cdFwibmFuaXNjcmlwdFwiOlwiTmFuaW5vdmVsIFNjcmlwdFwiLFxuXHRcIm5hbmlcIjpcIk5hbmlub3ZlbCBTY3JpcHRcIixcblx0XCJuYXNtXCI6XCJOQVNNXCIsXG5cdFwibmVvblwiOlwiTkVPTlwiLFxuXHRcIm5ldm9kXCI6XCJOZXZvZFwiLFxuXHRcIm5naW54XCI6XCJuZ2lueFwiLFxuXHRcIm5pbVwiOlwiTmltXCIsXG5cdFwibml4XCI6XCJOaXhcIixcblx0XCJuc2lzXCI6XCJOU0lTXCIsXG5cdFwib2JqZWN0aXZlY1wiOlwiT2JqZWN0aXZlLUNcIixcblx0XCJvYmpjXCI6XCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9jYW1sXCI6XCJPQ2FtbFwiLFxuXHRcIm9kaW5cIjpcIk9kaW5cIixcblx0XCJvcGVuY2xcIjpcIk9wZW5DTFwiLFxuXHRcIm9wZW5xYXNtXCI6XCJPcGVuUWFzbVwiLFxuXHRcInFhc21cIjpcIk9wZW5RYXNtXCIsXG5cdFwib3pcIjpcIk96XCIsXG5cdFwicGFyaWdwXCI6XCJQQVJJL0dQXCIsXG5cdFwicGFyc2VyXCI6XCJQYXJzZXJcIixcblx0XCJwYXNjYWxcIjpcIlBhc2NhbFwiLFxuXHRcInBhc2NhbGlnb1wiOlwiUGFzY2FsaWdvXCIsXG5cdFwicHNsXCI6XCJQQVRST0wgU2NyaXB0aW5nIExhbmd1YWdlXCIsXG5cdFwicGNheGlzXCI6XCJQQy1BeGlzXCIsXG5cdFwicHhcIjpcIlBDLUF4aXNcIixcblx0XCJwZW9wbGVjb2RlXCI6XCJQZW9wbGVDb2RlXCIsXG5cdFwicGNvZGVcIjpcIlBlb3BsZUNvZGVcIixcblx0XCJwZXJsXCI6XCJQZXJsXCIsXG5cdFwicGhwXCI6XCJQSFBcIixcblx0XCJwaHBkb2NcIjpcIlBIUERvY1wiLFxuXHRcInBocC1leHRyYXNcIjpcIlBIUCBFeHRyYXNcIixcblx0XCJwbGFudC11bWxcIjpcIlBsYW50VU1MXCIsXG5cdFwicGxhbnR1bWxcIjpcIlBsYW50VU1MXCIsXG5cdFwicGxzcWxcIjpcIlBML1NRTFwiLFxuXHRcInBvd2VycXVlcnlcIjpcIlBvd2VyUXVlcnlcIixcblx0XCJwcVwiOlwiUG93ZXJRdWVyeVwiLFxuXHRcIm1zY3JpcHRcIjpcIlBvd2VyUXVlcnlcIixcblx0XCJwb3dlcnNoZWxsXCI6XCJQb3dlclNoZWxsXCIsXG5cdFwicHJvY2Vzc2luZ1wiOlwiUHJvY2Vzc2luZ1wiLFxuXHRcInByb2xvZ1wiOlwiUHJvbG9nXCIsXG5cdFwicHJvbXFsXCI6XCJQcm9tUUxcIixcblx0XCJwcm9wZXJ0aWVzXCI6XCIucHJvcGVydGllc1wiLFxuXHRcInByb3RvYnVmXCI6XCJQcm90b2NvbCBCdWZmZXJzXCIsXG5cdFwicHVnXCI6XCJQdWdcIixcblx0XCJwdXBwZXRcIjpcIlB1cHBldFwiLFxuXHRcInB1cmVcIjpcIlB1cmVcIixcblx0XCJwdXJlYmFzaWNcIjpcIlB1cmVCYXNpY1wiLFxuXHRcInBiZmFzbVwiOlwiUHVyZUJhc2ljXCIsXG5cdFwicHVyZXNjcmlwdFwiOlwiUHVyZVNjcmlwdFwiLFxuXHRcInB1cnNcIjpcIlB1cmVTY3JpcHRcIixcblx0XCJweXRob25cIjpcIlB5dGhvblwiLFxuXHRcInB5XCI6XCJQeXRob25cIixcblx0XCJxc2hhcnBcIjpcIlEjXCIsXG5cdFwicXNcIjpcIlEjXCIsXG5cdFwicVwiOlwiUSAoa2RiKyBkYXRhYmFzZSlcIixcblx0XCJxbWxcIjpcIlFNTFwiLFxuXHRcInFvcmVcIjpcIlFvcmVcIixcblx0XCJyXCI6XCJSXCIsXG5cdFwicmFja2V0XCI6XCJSYWNrZXRcIixcblx0XCJya3RcIjpcIlJhY2tldFwiLFxuXHRcImNzaHRtbFwiOlwiUmF6b3IgQyNcIixcblx0XCJqc3hcIjpcIlJlYWN0IEpTWFwiLFxuXHRcInRzeFwiOlwiUmVhY3QgVFNYXCIsXG5cdFwicmVhc29uXCI6XCJSZWFzb25cIixcblx0XCJyZWdleFwiOlwiUmVnZXhcIixcblx0XCJyZWdvXCI6XCJSZWdvXCIsXG5cdFwicmVucHlcIjpcIlJlbidweVwiLFxuXHRcInJweVwiOlwiUmVuJ3B5XCIsXG5cdFwicmVzY3JpcHRcIjpcIlJlU2NyaXB0XCIsXG5cdFwicmVzXCI6XCJSZVNjcmlwdFwiLFxuXHRcInJlc3RcIjpcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCIsXG5cdFwicmlwXCI6XCJSaXBcIixcblx0XCJyb2JvY29uZlwiOlwiUm9ib2NvbmZcIixcblx0XCJyb2JvdGZyYW1ld29ya1wiOlwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicm9ib3RcIjpcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJ1YnlcIjpcIlJ1YnlcIixcblx0XCJyYlwiOlwiUnVieVwiLFxuXHRcInJ1c3RcIjpcIlJ1c3RcIixcblx0XCJzYXNcIjpcIlNBU1wiLFxuXHRcInNhc3NcIjpcIlNhc3MgKFNhc3MpXCIsXG5cdFwic2Nzc1wiOlwiU2FzcyAoU0NTUylcIixcblx0XCJzY2FsYVwiOlwiU2NhbGFcIixcblx0XCJzY2hlbWVcIjpcIlNjaGVtZVwiLFxuXHRcInNoZWxsLXNlc3Npb25cIjpcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaC1zZXNzaW9uXCI6XCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic2hlbGxzZXNzaW9uXCI6XCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic21hbGlcIjpcIlNtYWxpXCIsXG5cdFwic21hbGx0YWxrXCI6XCJTbWFsbHRhbGtcIixcblx0XCJzbWFydHlcIjpcIlNtYXJ0eVwiLFxuXHRcInNtbFwiOlwiU01MXCIsXG5cdFwic21sbmpcIjpcIlNNTFwiLFxuXHRcInNvbGlkaXR5XCI6XCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sXCI6XCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sdXRpb24tZmlsZVwiOlwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNsblwiOlwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNveVwiOlwiU295IChDbG9zdXJlIFRlbXBsYXRlKVwiLFxuXHRcInNwYXJxbFwiOlwiU1BBUlFMXCIsXG5cdFwicnFcIjpcIlNQQVJRTFwiLFxuXHRcInNwbHVuay1zcGxcIjpcIlNwbHVuayBTUExcIixcblx0XCJzcWZcIjpcIlNRRlwiLFxuXHRcInNxbFwiOlwiU1FMXCIsXG5cdFwic3F1aXJyZWxcIjpcIlNxdWlycmVsXCIsXG5cdFwic3RhblwiOlwiU3RhblwiLFxuXHRcInN0YXRhXCI6XCJTdGF0YSBBZG9cIixcblx0XCJpZWNzdFwiOlwiU3RydWN0dXJlZCBUZXh0IChJRUMgNjExMzEtMylcIixcblx0XCJzdHlsdXNcIjpcIlN0eWx1c1wiLFxuXHRcInN1cGVyY29sbGlkZXJcIjpcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzY2xhbmdcIjpcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzd2lmdFwiOlwiU3dpZnRcIixcblx0XCJzeXN0ZW1kXCI6XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiLFxuXHRcInQ0LXRlbXBsYXRpbmdcIjpcIlQ0IHRlbXBsYXRpbmdcIixcblx0XCJ0NC1jc1wiOlwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0XCI6XCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDQtdmJcIjpcIlQ0IFRleHQgVGVtcGxhdGVzIChWQilcIixcblx0XCJ0YXBcIjpcIlRBUFwiLFxuXHRcInRjbFwiOlwiVGNsXCIsXG5cdFwidHQyXCI6XCJUZW1wbGF0ZSBUb29sa2l0IDJcIixcblx0XCJ0ZXh0aWxlXCI6XCJUZXh0aWxlXCIsXG5cdFwidG9tbFwiOlwiVE9NTFwiLFxuXHRcInRyZW1vclwiOlwiVHJlbW9yXCIsXG5cdFwidHJpY2tsZVwiOlwiVHJlbW9yXCIsXG5cdFwidHJveVwiOlwiVHJlbW9yXCIsXG5cdFwidHVydGxlXCI6XCJUdXJ0bGVcIixcblx0XCJ0cmlnXCI6XCJUdXJ0bGVcIixcblx0XCJ0d2lnXCI6XCJUd2lnXCIsXG5cdFwidHlwZXNjcmlwdFwiOlwiVHlwZVNjcmlwdFwiLFxuXHRcInRzXCI6XCJUeXBlU2NyaXB0XCIsXG5cdFwidHlwb3NjcmlwdFwiOlwiVHlwb1NjcmlwdFwiLFxuXHRcInRzY29uZmlnXCI6XCJUU0NvbmZpZ1wiLFxuXHRcInVucmVhbHNjcmlwdFwiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidXNjcmlwdFwiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidWNcIjpcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVvcmF6b3JcIjpcIlVPIFJhem9yIFNjcmlwdFwiLFxuXHRcInVyaVwiOlwiVVJJXCIsXG5cdFwidXJsXCI6XCJVUklcIixcblx0XCJ2XCI6XCJWXCIsXG5cdFwidmFsYVwiOlwiVmFsYVwiLFxuXHRcInZibmV0XCI6XCJWQi5OZXRcIixcblx0XCJ2ZWxvY2l0eVwiOlwiVmVsb2NpdHlcIixcblx0XCJ2ZXJpbG9nXCI6XCJWZXJpbG9nXCIsXG5cdFwidmhkbFwiOlwiVkhETFwiLFxuXHRcInZpbVwiOlwidmltXCIsXG5cdFwidmlzdWFsLWJhc2ljXCI6XCJWaXN1YWwgQmFzaWNcIixcblx0XCJ2YlwiOlwiVmlzdWFsIEJhc2ljXCIsXG5cdFwid2FycHNjcmlwdFwiOlwiV2FycFNjcmlwdFwiLFxuXHRcIndhc21cIjpcIldlYkFzc2VtYmx5XCIsXG5cdFwid2ViLWlkbFwiOlwiV2ViIElETFwiLFxuXHRcIndlYmlkbFwiOlwiV2ViIElETFwiLFxuXHRcIndnc2xcIjpcIldHU0xcIixcblx0XCJ3aWtpXCI6XCJXaWtpIG1hcmt1cFwiLFxuXHRcIndvbGZyYW1cIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJtYXRoZW1hdGljYVwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIm5iXCI6XCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwid2xcIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJ3cmVuXCI6XCJXcmVuXCIsXG5cdFwieGVvcmFcIjpcIlhlb3JhXCIsXG5cdFwieGVvcmFjdWJlXCI6XCJYZW9yYVwiLFxuXHRcInhtbC1kb2NcIjpcIlhNTCBkb2MgKC5uZXQpXCIsXG5cdFwieG9qb1wiOlwiWG9qbyAoUkVBTGJhc2ljKVwiLFxuXHRcInhxdWVyeVwiOlwiWFF1ZXJ5XCIsXG5cdFwieWFtbFwiOlwiWUFNTFwiLFxuXHRcInltbFwiOlwiWUFNTFwiLFxuXHRcInlhbmdcIjpcIllBTkdcIixcblx0XCJ6aWdcIjpcIlppZ1wiXG59O1xuY29uc3QgTUFOVUFMX0xBTkdVQUdFUzoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7IC8vIE1hbnVhbGx5IGNyZWF0ZWQgbGlzdFxuXHRcImZpc2hcIjpcIkZpc2hcIixcblx0XCJvY3RhdmVcIjpcIk9jdGF2ZVwiLFxuXHRcIm1heGltYVwiOlwiTWF4aW1hXCIsXG5cdFwibXlzcWxcIjpcIlNRTFwiLFxuXHRcInBvc3RncmVzcWxcIjpcIlNRTFwiLFxuXHRcInJzY3JpcHRcIjpcIlJcIixcblx0XCJzaGVsbHNjcmlwdFwiOlwiU2hlbGxcIixcblx0XCJzcWxpdGVcIjpcIlNRTFwiLFxuXHRcInpzaFwiOlwiWnNoXCIsXG59O1xuZXhwb3J0IGNvbnN0IExBTkdVQUdFX05BTUVTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsuLi5QUklTTV9MQU5HVUFHRVMsLi4uTUFOVUFMX1BSSVNNX0xBTkdVQUdFUywuLi5NQU5VQUxfTEFOR1VBR0VTfTtcbmV4cG9ydCBjb25zdCBMQU5HVUFHRV9JQ09OU19EQVRBOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gSWNvbnMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdnNjb2RlLWljb25zL3ZzY29kZS1pY29ucy93aWtpL0xpc3RPZkZpbGVzIGFuZCBodHRwczovL2Rldmljb24uZGV2L1xuXHRcIi5naXRpZ25vcmVcIjogXCI8cGF0aCBkPVxcXCJNMjkuNDcyLDE0Ljc1MywxNy4yNDcsMi41MjhhMS44LDEuOCwwLDAsMC0yLjU1LDBMMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNCwyLjUyOCwxNC43YTEuOCwxLjgsMCwwLDAsMCwyLjU1MUwxNC43NTMsMjkuNDcyYTEuOCwxLjgsMCwwLDAsMi41NSwwTDI5LjQ3MiwxNy4zYTEuOCwxLjgsMCwwLDAsMC0yLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2RkNGMzNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNTgsNS4wNjdsMy4yMiwzLjIyYTIuMTQxLDIuMTQxLDAsMCwxLDIuNzEyLDIuNzNsMy4xLDMuMWEyLjE0MywyLjE0MywwLDEsMS0xLjI4NSwxLjIxbC0yLjg5NS0yLjg5NXY3LjYxN2EyLjE0MSwyLjE0MSwwLDEsMS0xLjc2NC0uMDYyVjEyLjNhMi4xNDYsMi4xNDYsMCwwLDEtMS4xNjUtMi44MTRMMTAuOTExLDYuMzE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiLmhnaWdub3JlXCI6IFwiPHBhdGggZD1cXFwiTTI4LjA0MiwyMy4xNzJjNC45ODktOC4zLTEuMDU0LTIxLjc1MS0xMi4xLTIwLjM4NEM1Ljk1NSw0LjAyMiw1Ljc5NCwxNC41MywxNC41OTMsMTcuMDI2YzcuNjE0LDIuMTYyLDEuNTczLDYuOTkyLDEuNzQ5LDEwLjIwOHM2LjYyLDQuMzgyLDExLjctNC4wNjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48Y2lyY2xlIGN4PVxcXCI5Ljc4NFxcXCIgY3k9XFxcIjI0LjI1N1xcXCIgcj1cXFwiNC4zMzJcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48Y2lyY2xlIGN4PVxcXCI0LjgzNVxcXCIgY3k9XFxcIjE1LjA5OVxcXCIgcj1cXFwiMi44MzVcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48cGF0aCBkPVxcXCJNMjguMjMxLDIyLjgzNWM0Ljk4OS04LjMtMS4wNTQtMjEuNzUxLTEyLjEtMjAuMzg0QzYuMTQ0LDMuNjg2LDUuOTgzLDE0LjE5NCwxNC43ODEsMTYuNjljNy42MTQsMi4xNjIsMS41NzMsNi45OTIsMS43NDksMTAuMjA4czYuNjIsNC4zODIsMTEuNy00LjA2M1xcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjkuOTcyXFxcIiBjeT1cXFwiMjMuOTIxXFxcIiByPVxcXCI0LjMzMlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjUuMDIzXFxcIiBjeT1cXFwiMTQuNzYyXFxcIiByPVxcXCIyLjgzNVxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44MTEsMjguMTY4YS42NjkuNjY5LDAsMCwxLC42MzUtLjk5NCw3LDcsMCwwLDAsMy43LS43NDZjMy4yNDctMS44NDEsOC4yNDQtMTAuNyw1LjczMS0xNi4yODVBMTIuNzcsMTIuNzcsMCwwLDAsMjUuMDQ5LDUuN2MtLjIzNi0uMjQ5LS4xLS4yMzYuMDU5LS4xNTJhMTAuMDgsMTAuMDgsMCwwLDEsMi44NTcsMy42NzYsMTQuNTc4LDE0LjU3OCwwLDAsMSwxLjEsMTAuMjc5Yy0uNDk0LDEuODE3LTIuMiw1LjkyOC00LjY5MSw3LjcwNnMtNS40MjQsMi44LTYuNTYzLjk1NU0xNS41NDgsMTYuNjczYy0xLjctLjUtMy44OTQtMS4yMDgtNS4xNjMtMi44NjdBOC4wODgsOC4wODgsMCwwLDEsOC44NTQsMTAuNDljLS4wNDMtLjI3LS4wOC0uNSwwLS41NThhMjEuODgyLDIxLjg4MiwwLDAsMCwxLjY4OCwyLjcyMyw2LjQ4Nyw2LjQ4NywwLDAsMCwzLjUyNiwyLjI1NiwxMi4zODMsMTIuMzgzLDAsMCwxLDMuODY3LDEuMzdjLjczOS42MjkuOCwxLjk4OS41NTIsMi4xNDJzLS43NTktMS4xLTIuOTM4LTEuNzQ5bS04LjE1NSwxMC40YzMuMzY5LDMuMTIxLDguNDM5LTEuMTY2LDYuMjA3LTQuOTU0LS4yNTEtLjQyNS0uNTc2LS43NDktLjQ2OS0uNDIzLjcxNCwyLjE3OC4wNTQsMy45LTEuMTc2LDQuNzg4YTQuMDYzLDQuMDYzLDAsMCwxLTQuMTkyLjMyOGMtLjM5LS4yLS41NTEuMDkyLS4zNy4yNjFtLTMuOTMtMTAuMTZjLjAxOC4yLjI5Mi40NTguNzIyLjU3NmEyLjk2OSwyLjk2OSwwLDAsMCwyLjU1LS40MTMsMi43NTksMi43NTksMCwwLDAsLjgxLTMuNDUyYy0uMTcyLS4zMDgtLjQtLjUzMy0uMjE4LS4wNDFBMi42OCwyLjY4LDAsMCwxLDYuMTQ4LDE2LjUzYTIuNDM5LDIuNDM5LDAsMCwxLTIuMS4xNjRjLS4zOTEtLjExOS0uNi4wMTYtLjU4LjIyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wNTYsMjguNDA3Yy0uMDMzLjM4OS40MTQuNDY2LDEuMDE2LjM3NmE2Ljc1NSw2Ljc1NSwwLDAsMCwyLjMxMy0uNjQ4LDkuNTQsOS41NCwwLDAsMCwzLjMxNC0yLjYzYzIuNjYyLTMuNDczLDMuNi03LjU4MiwzLjQ2LTguMTczQTE2LjE3MiwxNi4xNzIsMCwwLDEsMjcsMjIuNjkyYy0xLjg4OCwyLjk2OC0zLjI1Niw0LjU0OC02LjQxMyw1LjMxNC0uODc5LjIxMy0xLjQ4NS0uMTEyLTEuNTI5LjRtLTctMTMuNUE3Ljk2Nyw3Ljk2NywwLDAsMCwxNC42LDE2LjA4OWExMi4yLDEyLjIsMCwwLDEsMi45NiwxLjMxYy4zNzguMjUzLjYxOC44MTkuNjQyLjMxN3MtLjI4NS0uOTM0LS45NzYtMS4xNjRhMTUuMjc0LDE1LjI3NCwwLDAsMC0yLjAwOS0uNjc0Yy0uNDg1LS4xLTEuMjczLS4yODUtMS45NDktLjQ5My0uMzcxLS4xMTQtLjc0OC0uMzEzLTEuMjE0LS40ODNNMTAuMDM3LDI3LjcxOGMuNDI5LS4wOSwyLjkyNC0uNzM2LDMuNTEtMi43ODguMTgzLS42NC4yMTUtLjUxMS4xNjQtLjE2NWEzLjgsMy44LDAsMCwxLTMuMzU4LDMuMTIzYy0uMjg5LjAzLS42NjgtLjEtLjMxNS0uMTdNNS4wNDYsMTcuMmE3Ljk5MSw3Ljk5MSwwLDAsMCwxLjE5NS0uMzM2LDIuMzgzLDIuMzgzLDAsMCwwLDEuMjMyLTEuNzQxYy4wNjQtLjUwNS4wODMtLjM3OC4xMDktLjFhMi42MjcsMi42MjcsMCwwLDEtMi4xNDcsMi4zMjRjLS4yLjAyOC0uNTYuMDExLS4zODktLjE0M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NCwxNy40NDZjMi4xMjQtNi4xMjMtMi4zMjEtMTUuMzctMTEuMzE1LTE0LjI1OC04LjEyNiwxLTguMjU3LDkuNTU3LTEuMSwxMS41OSw4LjExMiwxLjIyOCwzLjIyNyw3LjM0NywyLjUzNSwxMC40MzMtLjYyMSwyLjc2Niw2LjU1NSwzLjIyMSw5Ljg3Ni03Ljc2NU03LjIxOSwyNi4yYTIuMDI4LDIuMDI4LDAsMCwxLDEuMzMyLjQ0MiwzLjUyNSwzLjUyNSwwLDAsMCwzLjc1NS0uOTgzQTQuMTU0LDQuMTU0LDAsMCwwLDEyLjg2OSwyMmMtLjgwNi0yLjMxOS00LjIyOS0yLjI3OC01Ljc1OC0uMzUzLTEuNjU0LDIuMTUtLjQsNC41MzkuMTA4LDQuNTQ4TTIuNjc2LDE1LjQ1MWExLjE2NiwxLjE2NiwwLDAsMCwuOTA4Ljg2M2MuNzMxLjEuODguNDM0LDEuNzQzLjI2M0EyLjQ2NCwyLjQ2NCwwLDAsMCw3LjEsMTQuOTE2YTEuNzcxLDEuNzcxLDAsMCwwLS44MjQtMi4xNCwyLjY4OSwyLjY4OSwwLDAsMC0zLjA0Ny4zNjMsMi4yNjMsMi4yNjMsMCwwLDAtLjU1OCwyLjMxMlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5OVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45ODEsMjIuMjI4Yy0yLjItLjI3Mi01LjM2LDQuNjktMi4zNzgsNC4xMDloMGE1LjY0NSw1LjY0NSwwLDAsMCwzLjY4My0xLjkzMiwyMy4xMzYsMjMuMTM2LDAsMCwwLDQuMDU1LTcuMmMuNS0xLjg2MS4yNTEtNC43NDUtLjI2OS0yLjAzNi0uNTMzLDIuNzgxLTIuODkzLDcuMzM2LTUuMDkxLDcuMDY0TTEwLjUyMywyNi4zNjJBMi43NzgsMi43NzgsMCwwLDAsMTIuNSwyMi45OWMtLjE2NS0xLjI3Ni0uODYxLDEuNTg0LTIuMTUsMi4wMTItMS45NTMuNjQ4LTEuNzMzLDEuODYxLjE3NiwxLjM2MW0tNC45NzgtMTAuMmMuNjYzLS4xNzMsMS41NC0xLjA3NywxLjEtMS43NjctLjUzNy0uODUtMi4wMzMtLjEyMi0yLjA4NC44MjRzLjI3NywxLjEyNy45NzkuOTQzXFxcIiBzdHlsZT1cXFwiZmlsbDojZjNmM2YzXFxcIi8+XCIsXG5cdFwiLm5wbWlnbm9yZVwiOiBcIjxwYXRoIGQ9XFxcIk0yLDEwLjU1NUgzMHY5LjMzNUgxNnYxLjU1Nkg5Ljc3OFYxOS44ODlIMlptMS41NTYsNy43NzlINi42NjdWMTMuNjY2SDguMjIydjQuNjY3SDkuNzc4VjEyLjExMUgzLjU1NlptNy43NzgtNi4yMjN2Ny43NzloMy4xMTFWMTguMzM0aDMuMTExVjEyLjExMVptMy4xMTEsMS41NTZIMTZ2My4xMTJIMTQuNDQ0Wm00LjY2Ny0xLjU1NnY2LjIyM2gzLjExMVYxMy42NjZoMS41NTZ2NC42NjdoMS41NTZWMTMuNjY2aDEuNTU2djQuNjY3aDEuNTU2VjEyLjExMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjYjM4MzdcXFwiLz5cIixcblx0XCIucHJvcGVydGllc1wiOiBcIjxwYXRoIGQ9XFxcIk0yMy4yNjUsMjQuMzgxbC45LS44OTRjNC4xNjQuMTM2LDQuMjI4LS4wMSw0LjQxMS0uNDM4bDEuMTQ0LTIuNzg1TDI5LjgwNSwyMGwtLjA5My0uMjMxYy0uMDQ5LS4xMjItLjItLjQ4Ni0yLjgtMi45NjVWMTUuNWMzLTIuODksMi45MzYtMy4wMzgsMi43NjUtMy40NjFMMjguNTM4LDkuMjI1Yy0uMTcxLS40MjItLjIzNi0uNTg3LTQuMzctLjQ3NGwtLjktLjkzYTIwLjE2NiwyMC4xNjYsMCwwLDAtLjE0MS00LjEwNmwtLjExNi0uMjYzLTIuOTc0LTEuM2MtLjQzOC0uMi0uNTkyLS4yNzItMy40LDIuNzg2bC0xLjI2Mi0uMDE5Yy0yLjg5MS0zLjA4Ni0zLjAyOC0zLjAzLTMuNDYxLTIuODU1TDkuMTQ5LDMuMTgyYy0uNDMzLjE3NS0uNTg2LjIzNy0uNDE4LDQuNDM3bC0uODkzLjg5Yy00LjE2Mi0uMTM2LTQuMjI2LjAxMi00LjQwNy40MzhMMi4yODUsMTEuNzMzLDIuMTk1LDEybC4wOTQuMjMyYy4wNDkuMTIuMTk0LjQ4LDIuOCwyLjk2MmwwLDEuM2MtMywyLjg5LTIuOTM1LDMuMDM4LTIuNzYzLDMuNDYybDEuMTM4LDIuODE3Yy4xNzQuNDMxLjIzNi41ODQsNC4zNjkuNDc2bC45LjkzNWEyMC4yNDMsMjAuMjQzLDAsMCwwLC4xMzcsNC4xbC4xMTYuMjY1LDIuOTkzLDEuMzA4Yy40MzUuMTgyLjU4Ni4yNDcsMy4zODYtMi44bDEuMjYyLjAxNmMyLjg5NSwzLjA5LDMuMDQzLDMuMDMsMy40NjYsMi44NTlsMi43NTktMS4xMTVDMjMuMjg4LDI4LjY0NCwyMy40NCwyOC41ODMsMjMuMjY1LDI0LjM4MVpNMTEuNDA3LDE3Ljg1N2E0Ljk1Nyw0Ljk1NywwLDEsMSw2LjQ4OCwyLjgyNEE1LjAxNCw1LjAxNCwwLDAsMSwxMS40MDcsMTcuODU3WlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5YjhjNFxcXCIvPlwiLFxuXHRcIjY1MDIgQXNzZW1ibHlcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCI4MzYuNjNcXFwiIHkxPVxcXCIzNi4yMDVcXFwiIHgyPVxcXCI4NDMuODAyXFxcIiB5Mj1cXFwiMTQuNDhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNTI1LjkyMiAzMC4yNDkpIHJvdGF0ZSgxODApIHNjYWxlKDAuNjA3IDAuNjA3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMjc1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hc3NlbWJseTwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LDJjLTEuMjQ2LDMuMDU2LTIsNS4wNTctMy4zOTEsOC4wMjJBMjEuODg0LDIxLjg4NCwwLDAsMCwxNi4yLDEzLjE1NmExNC44NTgsMTQuODU4LDAsMCwxLTQtMi4yODNDMTAuNDMsMTQuNTc5LDcuNjQ2LDE5Ljg1NSwyLDMwYzUuMTg2LTIuOTk0LDkuMDEyLTQuNjQ4LDEyLjY5MS00Ljk2NlYyNC4yaC0uODM0di0uODM3aC44MzRWMjQuMmgxLjY3NVYyMi41MjFIMTQuNjkxdi0uODM0aC0uODM0VjIwLjAxM2guODM0di0uODM0aDEuNjc1di44MzRIMTcuMnYuODM3aC0uODM3di0uODM3SDE0LjY5MXYxLjY3NWgxLjY3NXYuODM0SDE3LjJWMjQuMmgtLjgzN3YuNzgzYzMuOTguMSw4LjAwNiwxLjc3MiwxMy42MzQsNS4wMjEtLjg2My0xLjU4OS0xLjYzNi0zLjAyMS0yLjM3Mi00LjM4NWEyNS41MjYsMjUuNTI2LDAsMCwwLTQuODMzLTMuMzMzQTE0LjQzNiwxNC40MzYsMCwwLDEsMjYuNjUsMjMuOEMxOS4xNyw5Ljg3MiwxOC41NjUsOC4wMiwxNiwyWk0xMC41MTEsMTkuMTc5aDEuNjcxdi44MzRoLjgzN3Y1LjAyMWgtLjgzN1YyMi41MjFIMTAuNTExdjIuNTEySDkuNjczVjIwLjAxM2guODM3Wm0wLC44MzR2MS42NzVoMS42NzFWMjAuMDEzWm03LjUyNi0uODM0aC44Mzd2LjgzNGguODM3di44MzdoLjgzNHYtLjgzN2guODM3di0uODM0aC44Mzd2NS44NTVoLS44MzdWMjAuODVoLS44Mzd2LjgzN2gtLjgzNFYyMC44NWgtLjgzN3Y0LjE4NGgtLjgzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwYmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuODgxLDE4LjY0MmMtNi4wNjktOC4yMzctNy40NzYtMTQuODc2LTcuODMyLTE2LjQ2MUExNzUuMjE3LDE3NS4yMTcsMCwwLDAsMjMuODgxLDE4LjY0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1vcGFjaXR5OjAuMTY1NjgwNDY4MDgyNDI4XFxcIi8+PHBhdGggZD1cXFwiTTE2LjA1MSwyLjEyLDE1LjYsMy4yMjdjLS4xNTkuMzkxLS4zMTEuNzY1LS40NjEsMS4xMzFzLS4zLjcyNC0uNDQ4LDEuMDc3LS4zLjctLjQ0OCwxLjA1My0uMy43MDYtLjQ2NSwxLjA2Ni0uMzI5LjcyOS0uNTA2LDEuMTExLS4zNjIuNzc4LS41NjEsMS4xOTNjLS4wMjguMDU3LS4wNjEuMTIzLS4wODkuMTgxQTIxLjg3MiwyMS44NzIsMCwwLDAsMTYuMiwxMy4xNTZhMTQuODc5LDE0Ljg3OSwwLDAsMS0zLjk4OS0yLjI3NmwtLjE0LjI4N2MtLjA2NS4xMzMtLjE0NC4yODMtLjIxMi40MmwtLjEwNi4yMTljLS44NzgsMS43OTMtMi4wMDYsMy45ODQtMy41MjQsNi44MjIsMy41NTEtMiw3LjM4MS00Ljg4NywxNC4zMzgtMi40LS4zNDktLjY2MS0uNjctMS4yOC0uOTcxLTEuODYzcy0uNTgxLTEuMTI4LS44NDEtMS42NDQtLjUtMS0uNzI1LTEuNDYzLS40MzMtLjktLjYyOS0xLjMxMy0uMzgtLjgxOC0uNTU0LTEuMi0uMzM5LS43NTQtLjUtMS4xMThTMTguMDQ3LDYuOSwxNy45LDYuNTQ2cy0uMjkxLS43MDktLjQzNC0xLjA2NmMtLjAzNi0uMDkxLS4wNzMtLjE4Ni0uMTA5LS4yNzdDMTYuOTQ5LDQuMjQ3LDE2LjUzNiwzLjI1OCwxNi4wNTEsMi4xMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XCJBY3Rpb25TY3JpcHRcIjogXCI8cGF0aCBkPVxcXCJNMiwxNS4yODFjMS45MTgsMCwyLjExLTEuMDU1LDIuMTEtMS45MThhMTcuMTE5LDE3LjExOSwwLDAsMC0uMTkyLTIuMjA1LDE4LjcyMywxOC43MjMsMCwwLDEtLjE5Mi0yLjIwNWMwLTIuNCwxLjYzLTMuNDUyLDMuODM2LTMuNDUyaC41NzVWNi45MzhINy42NThjLTEuNTM0LDAtMi4xMS43NjctMi4xMSwyLjIwNWExNC40MTIsMTQuNDEyLDAsMCwwLC4xOTIsMS45MTgsMTQuMzA2LDE0LjMwNiwwLDAsMSwuMTkyLDIuMDE0YzAsMS43MjYtLjY3MSwyLjQ5My0xLjkxOCwyLjg3N3YuMWMxLjE1MS4yODgsMS45MTgsMS4xNTEsMS45MTgsMi44NzdhMTQuMzA2LDE0LjMwNiwwLDAsMS0uMTkyLDIuMDE0LDEzLDEzLDAsMCwwLS4xOTIsMS45MThjMCwxLjQzOC41NzUsMi4zLDIuMTEsMi4zaC40NzlWMjYuNkg3LjU2MmMtMi4yMDUsMC0zLjgzNi0uOTU5LTMuODM2LTMuNjQ0YTE4LjcyMywxOC43MjMsMCwwLDEsLjE5Mi0yLjIwNSwxNS42OCwxNS42OCwwLDAsMCwuMTkyLTIuMTFjMC0uODYzLS4yODgtMS45MTgtMi4xMS0xLjkxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNDE3MThcXFwiLz48cGF0aCBkPVxcXCJNOS40NzksMTguMDYyLDguMjMzLDIxLjhINi42TDEwLjYzLDkuOTExaDEuODIyTDE2LjQ3OSwyMS44SDE0Ljk0NUwxMy43LDE4LjA2MlptMy45MzItMS4xNTFMMTIuMjYsMTMuNDU5YTkuMzY0LDkuMzY0LDAsMCwxLS41NzUtMi4yMDVoMGMtLjE5Mi42NzEtLjM4NCwxLjQzOC0uNTc1LDIuMTFMOS45NTksMTYuODE1aDMuNDUyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2M0MTcxOFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45MTgsMTkuOTc5YTUuOTQxLDUuOTQxLDAsMCwwLDIuNzgxLjc2N2MxLjUzNCwwLDIuNDkzLS44NjMsMi40OTMtMi4wMTRzLS42NzEtMS43MjYtMi4yMDUtMi40Yy0xLjkxOC0uNjcxLTMuMTY0LTEuNzI2LTMuMTY0LTMuMzU2LDAtMS44MjIsMS41MzQtMy4yNiwzLjgzNi0zLjI2YTUuMTM1LDUuMTM1LDAsMCwxLDIuNTg5LjU3NWwtLjM4NCwxLjI0N2E1LjUxOSw1LjUxOSwwLDAsMC0yLjMtLjQ3OWMtMS42MywwLTIuMjA1Ljk1OS0yLjIwNSwxLjgyMiwwLDEuMTUxLjc2NywxLjYzLDIuNCwyLjMsMi4wMTQuNzY3LDMuMDY4LDEuNzI2LDMuMDY4LDMuNDUyLDAsMS44MjItMS4zNDIsMy40NTItNC4xMjMsMy40NTJhNS44MDcsNS44MDcsMCwwLDEtMy4wNjgtLjc2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNDE3MThcXFwiLz48cGF0aCBkPVxcXCJNMzAsMTYuNjIzYy0xLjkxOCwwLTIuMTEsMS4xNTEtMi4xMSwxLjkxOGExNS42OCwxNS42OCwwLDAsMCwuMTkyLDIuMTEsMTUuNzM4LDE1LjczOCwwLDAsMSwuMTkyLDIuMjA1YzAsMi42ODUtMS42MywzLjY0NC0zLjgzNiwzLjY0NGgtLjU3NVYyNS4wNjJoLjQ3OWMxLjQzOCwwLDIuMTEtLjg2MywyLjExLTIuM2ExMywxMywwLDAsMC0uMTkyLTEuOTE4LDE0LjMwNiwxNC4zMDYsMCwwLDEtLjE5Mi0yLjAxNGMwLTEuNzI2Ljc2Ny0yLjU4OSwxLjkxOC0yLjg3N3YtLjFjLTEuMTUxLS4yODgtMS45MTgtMS4xNTEtMS45MTgtMi44NzdhMTQuMzA2LDE0LjMwNiwwLDAsMSwuMTkyLTIuMDE0LDEzLDEzLDAsMCwwLC4xOTItMS45MThjMC0xLjQzOC0uNTc1LTIuMjA1LTIuMTEtMi4zaC0uNDc5VjUuNGguNTc1YzIuMjA1LDAsMy44MzYsMS4wNTUsMy44MzYsMy40NTJhMTcuMTE5LDE3LjExOSwwLDAsMS0uMTkyLDIuMjA1LDE3LjExOSwxNy4xMTksMCwwLDAtLjE5MiwyLjIwNWMwLC45NTkuMjg4LDEuOTE4LDIuMTEsMS45MThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzQxNzE4XFxcIi8+XCIsXG5cdFwiQWRhXCI6IFwiPHBhdGggZD1cXFwiTTI0LjU1NCwyMC4wNzVjLjIwOS4yNywxLjM1Ni45NjEsMS4zNywxLjI0NmE2LjkyMSw2LjkyMSwwLDAsMC0xLjQtLjMyNGMtLjQ2OC0uMTQyLS45NTEtLjI5My0xLjQxMi0uNDhhOS4yLDkuMiwwLDAsMS0yLjM3NS0xLjNBMy4xNDYsMy4xNDYsMCwwLDEsMTkuMywxNi43NWExLjcyMiwxLjcyMiwwLDAsMSwxLjc2Ny0xLjgyMiwzLjU4NCwzLjU4NCwwLDAsMSwxLjU5My4zMjFjLjE0Ni4wNjYsMS4zMS42MDYsMS4yNTYuODA5YTUuNSw1LjUsMCwwLDAtMS40MS0uMTEyYy0uNjQ5LjI0NC0uNC44MjgtLjE2OCwxLjMxMWE3Ljg3Nyw3Ljg3NywwLDAsMCwxLjA3OCwxLjU1NEMyMy41OCwxOS4wMDUsMjQuMywyMC4wODIsMjQuNTU0LDIwLjA3NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZjIzYzNcXFwiLz48cGF0aCBkPVxcXCJNMjQuMTQxLDE2LjI3NmMuMTI4LS41OS44MTktMS4zODQsMS4zNDQtLjc3M2E0LjIsNC4yLDAsMCwxLC41NzgsMS45MThjLjEyLjY1Ni4yLDEuMzI3LjI2MSwxLjk4Mi4wMzguMzc5LjM0LDEuNzk0LjEyMywyLjA3NWEyMy4yNCwyMy4yNCwwLDAsMS0yLjkyMi0yLjgzOCwzLjc2MywzLjc2MywwLDAsMS0uOTI1LTEuN0MyMi41LDE1Ljg2NywyMy40NzksMTYuMjEsMjQuMTQxLDE2LjI3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTE5NzhcXFwiLz48cGF0aCBkPVxcXCJNMjYuMywxNy43ODFjLjE0MS0uNzMyLS40MDYtMi41OTItMS4wNjctMi45NDlhLjA2LjA2LDAsMCwwLC4wNDQtLjAwN2MtLjE1Ni0uNDQ0LTEuMzU5LDEuMTE2LTEuMjI4LDEuMTc0LS4zMTYtLjEzOC43NzQtMS45ODQuOTg4LTIuMTYuNy0uNTc4LDEuMzcyLS4wODYsMS44NDUuNTQzYTYuMDM2LDYuMDM2LDAsMCwxLC43MzMsNC40MzQsNC41LDQuNSwwLDAsMS0uNDIxLDEuMzEyYy0uMS4yMi0uNDUsMS4xLS42ODIsMS4xNzRBMTQuNzU0LDE0Ljc1NCwwLDAsMCwyNi4zLDE3Ljc4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZjIzYzNcXFwiLz48cGF0aCBkPVxcXCJNMy42ODcsOC40Yy4xNzktLjE4OC0uMDQxLTEuNTI3LjMyNC0xLjU0OC4yNjItLjAxNS41NTMsMS43NDEuNjI3LDEuOTY4YTkuMiw5LjIsMCwwLDAsMS4xMjcsMi4zMjksNy41MjksNy41MjksMCwwLDAsNC4wMTYsMi45NzgsNC41NSw0LjU1LDAsMCwwLDIuMzY2LjJjLjkzMS0uMjA4LDEuODItLjU3NywyLjc1Ny0uNzY1LDEuMzUtLjI3LDMuMzQyLS4zNTIsNC40MzguNjQ3LjcuNjQxLjM3Ni43Ni4wNDMsMS40MjFhMi40NDUsMi40NDUsMCwwLDAsLjE3OCwyLjU2MmMuMjM1LjM0MiwxLjAzMy44MjcuNjc1LDEuMDk0LS41NjcuNDI0LTEuMjc3LS40NTItMS42MzYtLjc3Ni0xLjQtMS4yNjQtMi43MTEtMS4zMTMtNC40OTItMS4wNzRhOC45ODcsOC45ODcsMCwwLDEtNC44ODMtLjcwOEE5LjQ2OSw5LjQ2OSwwLDAsMSwzLjY4Nyw4LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0MSwzMGEzLjYxNSwzLjYxNSwwLDAsMS0yLjMyNS0uODE3Yy40NjktLjA5MiwxLjAyMS4wMjUsMS41MDgtLjA0NGE5LjcsOS43LDAsMCwwLDEuNzU0LS40M0ExMC41MzcsMTAuNTM3LDAsMCwwLDIzLjksMjcuMTU1YTYuNTUsNi41NSwwLDAsMCwyLjc1Ny01LjIxNGMuMTQ5LS4wODguMzE2LDEuMDM0LjMxOSwxLjA5MWE1Ljc4OSw1Ljc4OSwwLDAsMS0uMTksMS43MjcsNi44NjcsNi44NjcsMCwwLDEtMS40MjMsMi43NzRBNy4yODYsNy4yODYsMCwwLDEsMTkuOTQxLDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC45NjIsMTkuMTA5YTUuNzYsNS43NiwwLDAsMS0yLjA1Ljg1OSwxMy4zOCwxMy4zOCwwLDAsMS0yLjIyNC41NDksOC44NjEsOC44NjEsMCwwLDEtNC40MzUtLjUxLDkuOTM5LDkuOTM5LDAsMCwxLTMuODQ5LTIuNEM2LjA1MiwxNy4yNCw0LjMsMTUuMTksNC44NTYsMTQuNTU3Yy4yNDgtLjI4Mi44NzUuODQ2LDEsLjk5MmE1LDUsMCwwLDAsMS4zNTcsMS4xMSwxMC45MTcsMTAuOTE3LDAsMCwwLDQuMDM1LDEuNDU2LDYuNjkzLDYuNjkzLDAsMCwwLDIuMzQtLjA5NCwxMi43NDMsMTIuNzQzLDAsMCwxLDEuNjk0LS40ODUsNCw0LDAsMCwxLDIuMTEzLjQ1N0MxNy43MzksMTguMTYzLDE4LjkxOCwxOC43MzYsMTguOTYyLDE5LjEwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjguMzEzLDE1LjA3OGExOS4yNzcsMTkuMjc3LDAsMCwxLS40NTMsMy43NzRjLS4xNzYtLjI0Mi4wMTYtMS40NywwLTEuNzkyYTYuMDMyLDYuMDMyLDAsMCwwLS4zODQtMi4wODdBNC45MjUsNC45MjUsMCwwLDAsMjYuMSwxMy4zMTJhMTQuNzI4LDE0LjcyOCwwLDAsMS0xLjI3LTEuNTM2Yy0xLjgzNy0yLjM4Mi0zLjI0NS01LjIxMS0yLjktOC4zLjAzNC0uMzA4LjA2OS0xLjQ0OC40MTEtMS40NDUuMTUyLDAsLjI2NiwxLjU2MS4yOSwxLjcxOGExMi41MjcsMTIuNTI3LDAsMCwwLDEuMjI0LDQuMTE2Yy42NywxLjIyMiwxLjk0NywyLjAyMywyLjgyNSwzLjFBNi41NzksNi41NzksMCwwLDEsMjguMzEzLDE1LjA3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTUuNywyNi45MzVhMTAuODQ1LDEwLjg0NSwwLDAsMCw2LjQzNi0uNjg3LDYuOTQxLDYuOTQxLDAsMCwwLDQuMjc4LTQuNDE4Yy4zMTkuMi0uMDQ4LDEuNTI5LS4xMjgsMS43ODFhNS43MjYsNS43MjYsMCwwLDEtMS4wMSwxLjgxMyw4LjkzMyw4LjkzMywwLDAsMS0zLjI1NywyLjUxNEMyMC4zMTYsMjguNzEsMTYuMzU3LDI5LjU5LDE1LjcsMjYuOTM1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4xNTEsMTkuMzc2Yy4zNjcsMi4xMDctMi45NTcsMy4xMjQtNC40NzgsMy4yMTMtMS44NTkuMTEtNC45MjktLjI5Mi02LjA2LTIuMDMxLS42NzMtMS4wMzUuNzgxLS4wOSwxLjE4OC4wNThhOC42NjMsOC42NjMsMCwwLDAsMy4wNi41LDExLjYsMTEuNiwwLDAsMCwzLjMwNS0uNSwxMy43MjUsMTMuNzI1LDAsMCwwLDEuNTMzLS41NzZDMTgsMTkuOTA4LDE4LjgyMywxOS4zNDksMTkuMTUxLDE5LjM3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjQuMTQyLDIzLjQ2Yy40LS45NDUtMS44ODMtMS41NzgtMi40NDUtMS44NThhNC44NTcsNC44NTcsMCwwLDEtMS4zMTUtLjg2N2MtLjE4MS0uMTgxLS44NzItLjkyLS44MDctMS4yMTlhNC45MTIsNC45MTIsMCwwLDEsMS4wODctLjE3NSw1LjkzLDUuOTMsMCwwLDEsLjg1NS41ODgsMTAuMzIzLDEwLjMyMywwLDAsMCwuOTY0LjVBMTUuNjE1LDE1LjYxNSwwLDAsMCwyNC42LDIxLjJjLjMwOC4wOSwxLjU0OS4yMDgsMS43MjcuNDI4QzI2LjI4NywyMS45MjQsMjQuMzU3LDIzLjY0OSwyNC4xNDIsMjMuNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI2LjEsMjIuMTcyYy4yNjUuNDMtMS4wOCwxLjgzMS0xLjM2MywyLjEwNWE5LjM0LDkuMzQsMCwwLDEtMi41NjYsMS43MjgsNy43NDgsNy43NDgsMCwwLDEtMi41Ni43NTNjLS42NzkuMDU4LTEuOTY2LS4xMjQtMi4xNDEtLjk3OWE2Ljk1MSw2Ljk1MSwwLDAsMSwxLjE3Ny0uMDg2Yy40NjItLjA1OS45MjEtLjE0OSwxLjM3Ni0uMjQ2YTEzLjA2NSwxMy4wNjUsMCwwLDAsMi4xODQtLjY0NSwxMS41MDYsMTEuNTA2LDAsMCwwLDIuMDg0LTEuMTEsMTAuODcyLDEwLjg3MiwwLDAsMCwxLjA3OC0uODIyQzI1LjQ3NCwyMi43ODEsMjUuOTg2LDIyLjE2OCwyNi4xLDIyLjE3MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTguNzU4LDExLjk2NWMtLjEtMS4zMDgsMi42MTItMS4zLDMuMjcxLTEuMDkyYTUuOTc2LDUuOTc2LDAsMCwxLDIuOTgyLDIuNDc1Yy0xLjA4Mi44LTIuNDQ5LjA5NC0zLjMtLjY1NGE0LjMyNCw0LjMyNCwwLDAsMC0xLjQ4MS0xLjAyOUMxOS40MjEsMTEuNCwxOS40MTIsMTEuNzU5LDE4Ljc1OCwxMS45NjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI1Ljc4MywxMy4zNDFjLS40NDQtLjAyOS0uMzE2LjA3MS0uNjQ3LS4yMTItLjM1OC0uMzA3LS42MTQtLjc5NS0uOTQ1LTEuMTQxLS41MzQtLjU1OC0xLjI0Mi0uODk1LTEuNzIzLTEuNDg1YTcuMjY5LDcuMjY5LDAsMCwxLTEuNjI0LTQuODQ4Yy4wMTgtMS40ODkuNDA3LjE4Ny41NTEuNjc1YTEyLjI3NiwxMi4yNzYsMCwwLDAsMS4xMjYsMi43MDgsNDYuMDU1LDQ2LjA1NSwwLDAsMCwzLjQsNC4zMjFDMjUuODgyLDEzLjM2MSwyNS44MjQsMTMuMzM4LDI1Ljc4MywxMy4zNDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTIwLjA2OCwxNC43NTZjLjAzMy0uNjI1LS45MTEtLjc5Mi0xLjIxMS0xLjQyLS4xNjQtLjM0My0uMjExLS41NjkuMDI5LS43LjA4Mi0uMDQ1LjM4My4wMTIuNS0uMDIuMjcxLS4wNzYuMzM1LS4yNzMuNTgxLS40QTEuMTkzLDEuMTkzLDAsMCwxLDIxLjYsMTMuMjM3LDEuODIxLDEuODIxLDAsMCwxLDIwLjA2OCwxNC43NTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUsMTQuNzQ1YTEuOTMxLDEuOTMxLDAsMCwwLDEuMzIzLTEuN2MuNTI0LjEzOS45MjguNjU4LDEuNTIxLjc3MWEyLjU4NCwyLjU4NCwwLDAsMCwxLjAyOS0uMDE3Yy4yMDctLjA0NS41NC0uMjc0LjcyMS0uMjU5LS4wMzMuMTYzLS40NjQuNTQ2LS41NjUuNzE3YTQuMjQyLDQuMjQyLDAsMCwwLS4zODguOWMtLjIyOS43NDEtLjA2MS43MzktLjcwOS4zMTFhNC4yODQsNC4yODQsMCwwLDAtMS45NTctLjcyQzIxLjIwOSwxNC43MjIsMjAuNTk0LDE0Ljc2NywyMC41LDE0Ljc0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTA1LDIwLjczNGEyLjAwOCwyLjAwOCwwLDAsMS0xLjQsMS43MTJjLS4yMDUuMDkxLTIuMDE4LjczMy0yLjAzMi4zNDgtLjAwNy0uMiwxLjYyNC0uOTU0LDEuODA5LTEuMTFhMy4zNTUsMy4zNTUsMCwwLDAsLjg2Ny0xLjA3MWMuMDU1LS4xMTIuMjMyLS45MjUuMjcxLS45NDNDMTkuNjQ0LDE5LjU2NCwxOS45MDgsMjAuNiwxOS45MDUsMjAuNzM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4zNzMsMTIuNTMyYTEwLjYyNSwxMC42MjUsMCwwLDEsMy43MS0uOTE0LDEwLjI4MiwxMC4yODIsMCwwLDEsMS44NjUuMDI0Yy4zNjYuMDM5LDEuNDY5LjA1NCwxLjc0LjM0M2EuMjU1LjI1NSwwLDAsMS0uMjczLjE3M2MtLjAzNy4wNzcuMjUxLjM3MS4zLjQyNS0uMDM0LjAzNC0xLjQ0NS0uNC0xLjU3Mi0uNDI0YTEwLjYzMiwxMC42MzIsMCwwLDAtMi4yODItLjEzNCwxNiwxNiwwLDAsMC0xLjg0MS4xOTRBNi4yMjQsNi4yMjQsMCwwLDEsMTEuMzczLDEyLjUzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTEyLDEwLjczMWExLjg4OCwxLjg4OCwwLDAsMS0xLjUxNy0uNmMtLjI0Ny0uMzQ5LS43MzctMS42OTItLjM4NS0yLjAyMS4yMDktLjIuMzg0LjY2Mi40ODQuODQ2QTEwLjgyMiwxMC44MjIsMCwwLDAsMjIuNTEyLDEwLjczMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjcuNzg4LDE5LjJhMTkuMjEyLDE5LjIxMiwwLDAsMS0uNzQ5LDMuMzEzYy0uMTczLS4wNzctLjI3NS0uNzc4LS41NjItLjk1YTQuMDcsNC4wNywwLDAsMCwuNzYtMS4xNTRDMjcuMzg5LDIwLjEwNywyNy41NCwxOS4zNjMsMjcuNzg4LDE5LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk4MSwxMS44NDNjLS4xMzIuMjY4LS45MzIsMS4xLTEuMTE4LjQ4MUMxOC43NTYsMTEuOTY4LDE5LjczOSwxMS40ODMsMTkuOTgxLDExLjg0M1ptLS43NDcuNDVjLjIyOC4wMDYuMDEyLS4yNDguMDEyLS4yNjZDMTkuMjQ1LDExLjk4NCwxOC44NzgsMTIuMjkzLDE5LjIzNCwxMi4yOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+XCIsXG5cdFwiQUxcIjogXCI8cGF0aCBkPVxcXCJNMTEuNjE2LDcuOTg2QTEuNTU5LDEuNTU5LDAsMCwwLDEwLjE2LDdIMTAuMWExLjU1OCwxLjU1OCwwLDAsMC0xLjQ1Ni45ODZMMiwyNUg1LjgwNmwxLjAxNS0yLjgzNGg2LjYyMUwxNC40NTcsMjVoMy44Wk03Ljk0NCwxOC45NTZsMi4xODgtNi4xMTEsMi4xODgsNi4xMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmVhOThlXFxcIi8+PHBhdGggZD1cXFwiTTIzLjgyOSwyMS42NzFWNy4xMjlIMjAuM1YyMi43NDdBMi4zNDYsMi4zNDYsMCwwLDAsMjIuNTcsMjVIMzBWMjEuNjcyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzJlYTk4ZVxcXCIvPlwiLFxuXHRcIkFOVExSNFwiOiBcIjxwYXRoIGQ9XFxcIk0xNC4xNzcsNy4yNzhhMi4wOCwyLjA4LDAsMCwxLDMuMDQxLS44QTMuNTcxLDMuNTcxLDAsMCwxLDE4LjIsOC4wMjJjMS4zNTYsMy4xMjIsMi45LDYuMTY1LDQuMTE5LDkuMzQ1LjY0NSwxLjUsMS40MjksMi45MzgsMS45OTQsNC40NjhhMS40NTUsMS40NTUsMCwwLDEtMi4yNTgsMS4zNzZjLTIuOC0xLjU3Mi01LjYyOC0zLjA5NC04LjM4NS00LjczMSwyLjAwOS4wMDgsNC4wMTgtLjAwOCw2LjAyNS4wMTNhMTkuNzA3LDE5LjcwNywwLDAsMC0xLjI4OC0yLjkxOGMtLjc4MS0xLjg1OC0xLjYtMy43LTIuMzU4LTUuNTY1YTkuNzgzLDkuNzgzLDAsMCwwLTEuMDMyLDIuMTI1Yy0xLjMsMy4xODItMi44Nyw2LjI0MS00LjEzNiw5LjQzNS0uMjgxLjU5LS40MjQsMS4zNDQtMS4wMzUsMS42OWExLjQ0NywxLjQ0NywwLDAsMS0yLjA5NC0uNzM4Yy0uMjQxLS42MS4xNTEtMS4yLjM4Mi0xLjc0My43NzktMS43MjUsMS42NDUtMy40MTMsMi4yODMtNS4yQzExLjY1LDEyLjgsMTIuOTE2LDEwLjA0MSwxNC4xNzcsNy4yNzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmVmZWZlXFxcIi8+PHBhdGggZD1cXFwiTTEzLjgxNywyLjJBMTMuOTIzLDEzLjkyMywwLDAsMSwyOS41MjYsMTIuNTQ5YTEzLjczMywxMy43MzMsMCwwLDEtMi4wODIsMTEuNTE5QTE0LjA3NCwxNC4wNzQsMCwwLDEsNy43MzgsMjcuMjkzYTEzLjg1MiwxMy44NTIsMCwwLDEtNS42MTUtOS40ODNBMTQuMTUyLDE0LjE1MiwwLDAsMSwzLjQ1MSw5Ljg1LDEzLjk2MSwxMy45NjEsMCwwLDEsMTMuODE3LDIuMm0uMzU5LDUuMDhjLTEuMjYxLDIuNzYyLTIuNTI2LDUuNTI1LTMuNzYyLDguMy0uNjM4LDEuNzg2LTEuNSwzLjQ3My0yLjI4Myw1LjItLjIzMS41NDItLjYyMywxLjEzMy0uMzgyLDEuNzQzYTEuNDQ3LDEuNDQ3LDAsMCwwLDIuMDk0LjczOGMuNjEtLjM0Ny43NTMtMS4xLDEuMDM1LTEuNjksMS4yNjYtMy4xOTQsMi44MzMtNi4yNTMsNC4xMzYtOS40MzVhOS43ODMsOS43ODMsMCwwLDEsMS4wMzItMi4xMjVjLjc1NiwxLjg2OCwxLjU3NywzLjcwNywyLjM1OCw1LjU2NWExOS43MDcsMTkuNzA3LDAsMCwxLDEuMjg4LDIuOTE4Yy0yLjAwNy0uMDItNC4wMTYtLjAwNS02LjAyNS0uMDEzLDIuNzU3LDEuNjM3LDUuNTg4LDMuMTU5LDguMzg1LDQuNzMxYTEuNDU1LDEuNDU1LDAsMCwwLDIuMjU4LTEuMzc2Yy0uNTY1LTEuNTI5LTEuMzQ5LTIuOTcxLTEuOTk0LTQuNDY4LTEuMjItMy4xNzktMi43NjItNi4yMjMtNC4xMTktOS4zNDVhMy41NzEsMy41NzEsMCwwLDAtLjk4Mi0xLjU0NEEyLjA4LDIuMDgsMCwwLDAsMTQuMTc3LDcuMjc4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2U0NGEzMlxcXCIvPlwiLFxuXHRcIkFwYWNoZSBDb25maWd1cmF0aW9uXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTU2MDIuNjgyXFxcIiB5MT1cXFwiNzY4LjU0MVxcXCIgeDI9XFxcIi01NTk4LjcyN1xcXCIgeTI9XFxcIjc2My45MTdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC40MjMsIC0wLjkwNiwgLTAuOTA2LCAtMC40MjMsIDMwODIuODUzLCAtNDc0OC41NTEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjY5OTIzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMxMlxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y3OWEyM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44MzhcXFwiIHN0b3AtY29sb3I9XFxcIiNlOTc4MjZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi01NjMxLjk1MlxcXCIgeTE9XFxcIjc2OS4wNTJcXFwiIHgyPVxcXCItNTYwMy43MzdcXFwiIHkyPVxcXCI3NjkuMDUyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuNDIzLCAtMC45MDYsIC0wLjkwNiwgLTAuNDIzLCAzMDgyLjg1MywgLTQ3NDguNTUxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4zMjNcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZTIwNjRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjNcXFwiIHN0b3AtY29sb3I9XFxcIiNjOTIwMzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzUxXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2QyMzM1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTk3ODI2XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNTYyOC41NDZcXFwiIHkxPVxcXCI3NjYuMjIxXFxcIiB4Mj1cXFwiLTU2MTEuNzMzXFxcIiB5Mj1cXFwiNzY2LjIyMVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjQyMywgLTAuOTA2LCAtMC45MDYsIC0wLjQyMywgMzA4Mi44NTMsIC00NzQ4LjU1MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMyODI2NjJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDk1XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjYyZThkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc4OFxcXCIgc3RvcC1jb2xvcj1cXFwiIzlmMjA2NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45NDlcXFwiIHN0b3AtY29sb3I9XFxcIiNjZDIwMzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi01NjMwLjM2N1xcXCIgeTE9XFxcIjc2OS4zMTZcXFwiIHgyPVxcXCItNTYwMi4xNTJcXFwiIHkyPVxcXCI3NjkuMzE2XFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIi01NjI4LjMxXFxcIiB5MT1cXFwiNzY4LjkzM1xcXCIgeDI9XFxcIi01NjEzLjQ4MlxcXCIgeTI9XFxcIjc2OC45MzNcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmXFxcIiB4MT1cXFwiLTU2MzAuMzY3XFxcIiB5MT1cXFwiNzY2LjM5NFxcXCIgeDI9XFxcIi01NjAyLjE1MlxcXCIgeTI9XFxcIjc2Ni4zOTRcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJnXFxcIiB4MT1cXFwiLTU2MzIuMTE4XFxcIiB5MT1cXFwiNzY2LjUzOVxcXCIgeDI9XFxcIi01NjAzLjkwMlxcXCIgeTI9XFxcIjc2Ni41MzlcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiLTU2MzAuMzY3XFxcIiB5MT1cXFwiNzY1LjUyNlxcXCIgeDI9XFxcIi01NjAyLjE1MlxcXCIgeTI9XFxcIjc2NS41MjZcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpXFxcIiB4MT1cXFwiLTU2MzAuMzY3XFxcIiB5MT1cXFwiNzY1LjYyNVxcXCIgeDI9XFxcIi01NjAyLjE1MlxcXCIgeTI9XFxcIjc2NS42MjVcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiLTU2MTQuNTE2XFxcIiB5MT1cXFwiNzY1LjY0NVxcXCIgeDI9XFxcIi01NjA4LjI4XFxcIiB5Mj1cXFwiNzY1LjY0NVxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hcGFjaGU8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xOS45OTMsMi4xMzNhMTAuMjY3LDEwLjI2NywwLDAsMC0yLjA0LDIuMDU2bC44LDEuNTFhMTkuNzMzLDE5LjczMywwLDAsMSwxLjcwOC0yLjE0NGMuMDQ0LS4wNDkuMDY4LS4wNzIuMDY4LS4wNzJsLS4wNjguMDcyYTE3Ljg2NSwxNy44NjUsMCwwLDAtMS42LDIuMTc0LDMwLjEsMzAuMSwwLDAsMCwzLjExMS0uMzg1LDMuMjg4LDMuMjg4LDAsMCwwLS4zLTIuNVMyMC45LDEuNiwxOS45OTMsMi4xMzNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE4LjYzOCwxMC43NDlsLjAxOCwwLS4xMTUuMDEzLS4wMjEuMDA5WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44MjEsMTMuNDU1Yy0uMDY2LjAxNS0uMTMyLjAyNi0uMi4wMzZDMTcuNjg5LDEzLjQ4MSwxNy43NTYsMTMuNDY5LDE3LjgyMSwxMy40NTVaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTEyLjI3LDE5LjUyNGMuMDA5LS4wMjMuMDE3LS4wNDUuMDI1LS4wNjhxLjI2NC0uNy41MjMtMS4zNTcuMjkxLS43NDEuNTc1LTEuNDM2LjMtLjczMy41OS0xLjQxOC4zMDUtLjcxOC42LTEuMzg0LjI0LS41NDIuNDc0LTEuMDQ5LjA3OC0uMTY5LjE1NS0uMzM1LjE1My0uMzI5LjMtLjY0NS4xMzgtLjI5MS4yNzQtLjU3Yy4wMy0uMDYyLjA2LS4xMjMuMDktLjE4NWwuMDE1LS4wMy0uMS4wMTEtLjA3OC0uMTU0Yy0uMDA3LjAxNS0uMDE1LjAzLS4wMjMuMDQ1cS0uMjExLjQxOC0uNDE3Ljg0NS0uMTE5LjI0Ni0uMjM4LjQ5NS0uMzI4LjY4OS0uNjQ1LDEuMzg5VDEzLjc2NiwxNS4xcS0uMy43LS41OTQsMS40dC0uNTY3LDEuMzg3cS0uMjg5LjcyLS41NjIsMS40MjYtLjA2Mi4xNTktLjEyMy4zMTgtLjIxOS41NjktLjQyNiwxLjEyNGwuMTIzLjI0My4xMS0uMDEyLjAxMi0uMDMzUTEyLjAwOCwyMC4yMTYsMTIuMjcsMTkuNTI0WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NywxMy41WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zMDUsMTQuODE4bC0uMzE1LjA1NWgwbC4xNjEtLjAyNUMxNy4yLDE0LjgzOSwxNy4yNTMsMTQuODI5LDE3LjMwNSwxNC44MThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMwNSwxNC44MThsLS4zMTUuMDU1aDBsLjE2MS0uMDI1QzE3LjIsMTQuODM5LDE3LjI1MywxNC44MjksMTcuMzA1LDE0LjgxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTczLDEzLjVoMGwuMDUtLjAwN2MuMDY4LS4wMS4xMzUtLjAyMi4yLS4wMzZsLS4yNDguMDQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NzMsMTMuNWgwbC4wNS0uMDA3Yy4wNjgtLjAxLjEzNS0uMDIyLjItLjAzNmwtLjI0OC4wNDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlO29wYWNpdHk6MC4zNDk5OTk5OTQwMzk1MzU1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE2LjM5NCw5LjZxLjM2NS0uNjgyLjczOS0xLjMzMi4zODgtLjY3NC43ODQtMS4zMDVsLjA0Ni0uMDc1cS4zOTItLjYyLjc5LTEuMTkxbC0uOC0xLjUxLS4xODIuMjI1Yy0uMjMxLjI4OC0uNDcuNi0uNzE2LjkyNS0uMjc3LjM3LS41NjIuNzY0LS44NTEsMS4xNzktLjI2Ny4zODMtLjUzOC43ODQtLjgwOSwxLjItLjIzMS4zNTMtLjQ2Mi43MTctLjY5MiwxLjA5bC0uMDI2LjA0MkwxNS43MTgsMTAuOVExNi4wNTIsMTAuMjQ0LDE2LjM5NCw5LjZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTExLjY1MSwyMS4xOTJxLS4yMDcuNTY4LS40MTUsMS4xNTlsLS4wMDYuMDE3LS4wNTkuMTY3Yy0uMDkzLjI2Ni0uMTc1LjUtLjM2MSwxLjA0OWEyLjEwNywyLjEwNywwLDAsMSwuNzg2LjkyNiwxLjY4LDEuNjgsMCwwLDAtLjU0NC0xLjE1NCwzLjYyMSwzLjYyMSwwLDAsMCwzLjQ4OS0xLjQyLDIuNzkxLDIuNzkxLDAsMCwwLC4xNjUtLjMxMywxLjQ1MSwxLjQ1MSwwLDAsMS0xLjQuNTEzbDAsMCwwLDBhNC4wNTksNC4wNTksMCwwLDAsMi4wNDYtMS42NzJjLjExMS0uMTc4LjIxOC0uMzcyLjMyOC0uNTg3YTMuMywzLjMsMCwwLDEtMy4xMDksMS4wMWwtLjg0Mi4wOTJDMTEuNywyMS4wNSwxMS42NzcsMjEuMTIxLDExLjY1MSwyMS4xOTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTEyLjA0NCwxOS4zMDZxLjI3My0uNzA2LjU2Mi0xLjQyNi4yNzYtLjY5LjU2Ny0xLjM4N3QuNTk0LTEuNHEuMzA4LS43MTEuNjI5LTEuNDE5dC42NDUtMS4zODlxLjExOC0uMjQ4LjIzOC0uNDk1LjIwNy0uNDI2LjQxNy0uODQ1Yy4wMDctLjAxNS4wMTUtLjAzLjAyMy0uMDQ1TDE0LjY3Nyw4Ljg0N2wtLjA1MS4wODNjLS4yNDIuNC0uNDg0LjgtLjcyMSwxLjIxNnMtLjQ3NS44NDQtLjcsMS4yNzZxLS4yOTEuNTQ3LS41NjgsMS4xbC0uMTEuMjI1Yy0uMjI3LjQ2Ny0uNDMyLjkxOC0uNjE3LDEuMzUycS0uMzE1LjczNy0uNTU2LDEuNDA2Yy0uMTA3LjI5My0uMi41NzYtLjI5Mi44NDctLjA3My4yMzItLjE0Mi40NjQtLjIwOC43cS0uMjM0LjgxOC0uNCwxLjYzMUwxMS41LDIwLjc0OHEuMjA4LS41NTQuNDI2LTEuMTI0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40MzUsMTguNzU1YTE2LjA3LDE2LjA3LDAsMCwwLS4yNzIsMS45NzRjMCwuMDIzLDAsLjA0Ni0uMDA1LjA2OWE0LjE1LDQuMTUsMCwwLDAtMS4yLTEuMDI5LDUuODI1LDUuODI1LDAsMCwxLDEuMTcyLDIuNjkzLDIuNjQyLDIuNjQyLDAsMCwxLTEuMzI1LS4yMjYsMi42NjIsMi42NjIsMCwwLDAsMS4xMy42ODYsMy4yNDcsMy4yNDcsMCwwLDAtMS41NzEuNzgzLDMuMzU5LDMuMzU5LDAsMCwxLDEuODYxLS4zNDJDOS41MSwyNS4zODksOC43OTMsMjcuNjI2LDguMDc2LDMwYS42MjUuNjI1LDAsMCwwLC40MjUtLjQxM2MuMTI4LS40My45NzYtMy4yNTEsMi4zMDYtNi45NTlsLjExNS0uMzE4LjAzMi0uMDg5cS4yMTEtLjU4My40MzctMS4xOWwuMS0uMjc3LDAtLjAwNUwxMC40NSwxOC42ODRDMTAuNDQ1LDE4LjcwNywxMC40MzksMTguNzMxLDEwLjQzNSwxOC43NTVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTE1Ljg4LDExLjA3OGwtLjA5LjE4NXEtLjEzNS4yNzktLjI3NC41Ny0uMTUuMzE1LS4zLjY0NWMtLjA1Mi4xMTEtLjEuMjIyLS4xNTUuMzM1cS0uMjM0LjUwOC0uNDc0LDEuMDQ5LS4zLjY2Ni0uNiwxLjM4NC0uMjkxLjY4NS0uNTksMS40MTgtLjI4NC43LS41NzUsMS40MzYtLjI1OS42NjEtLjUyMywxLjM1N2MtLjAwOS4wMjMtLjAxNy4wNDUtLjAyNS4wNjhxLS4yNjIuNjkzLS41MjksMS40MjJsLS4wMTIuMDMzLjg0Mi0uMDkyLS4wNS0uMDA5YTYsNiwwLDAsMCwzLjIxLTEuODA3LDcuOTg0LDcuOTg0LDAsMCwwLDEuMS0xLjUyNCwxMy4xMzksMTMuMTM5LDAsMCwwLC43MDYtMS40NjdjLjE5NS0uNDcyLjM4Mi0uOTgyLjU2Mi0xLjUzNmEzLjA1MywzLjA1MywwLDAsMS0uNzg4LjI3NGMtLjA1MS4wMTEtLjEuMDIxLS4xNTYuMDNzLS4xMDcuMDE4LS4xNjEuMDI1aDBhMy42NjgsMy42NjgsMCwwLDAsMS45NjItMS45MTMsMy4zNDQsMy4zNDQsMCwwLDEtMS4xMy40OTVjLS4wNjYuMDE1LS4xMzIuMDI2LS4yLjAzNmwtLjA1LjAwN2gwYTMuODIxLDMuODIxLDAsMCwwLC44MzktLjQ2OWMuMDUxLS4wMzguMS0uMDc4LjE0OC0uMTIuMDczLS4wNjMuMTQyLS4xMjkuMjA4LS4yLjA0Mi0uMDQ0LjA4My0uMDkuMTIzLS4xMzhhMy4yNywzLjI3LDAsMCwwLC4yNjMtLjM2MmMuMDI1LS4wNC4wNS0uMDguMDc0LS4xMjIuMDMxLS4wNi4wNjEtLjExOS4wOS0uMTc4LjEzMS0uMjY0LjIzNi0uNS4zMTktLjcwNi4wNDItLjEuMDc4LS4yLjEwOS0uMjg4LjAxMy0uMDM1LjAyNS0uMDcuMDM2LS4xLjAzMy0uMS4wNi0uMTg3LjA4MS0uMjY1YTIuNjA1LDIuNjA1LDAsMCwwLC4wNjItLjI3NWgwYTEuMDEsMS4wMSwwLDAsMS0uMTA5LjA3NSwzLjk2NSwzLjk2NSwwLDAsMS0xLjE2Mi40bC43NzMtLjA4NS0uNzczLjA4NS0uMDE4LDAtLjExOS4wMTkuMDIxLS4wMDktMi42NDUuMjlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljg1OCw1LjczYy0uMjM1LjM2MS0uNDkyLjc3MS0uNzY4LDEuMjM2bC0uMDQ0LjA3NHEtLjM1OC42LS43NTksMS4zMjctLjM0Ni42MjYtLjcxOSwxLjM0Ny0uMzI2LjYyOS0uNjcyLDEuMzM2bDIuNjQ1LS4yOUEzLjIxNiwzLjIxNiwwLDAsMCwxOS45OSw5LjYyYy4wODktLjEyOC4xNzgtLjI2Mi4yNjctLjQuMjcyLS40MjQuNTM4LS44OTEuNzc2LTEuMzU1YTE0LjA3NCwxNC4wNzQsMCwwLDAsLjU4OC0xLjI5NCw2LjgsNi44LDAsMCwwLC4yMzMtLjdjLjA0OC0uMTg0LjA4Ni0uMzU4LjExNS0uNTI0QTMwLjE1MiwzMC4xNTIsMCwwLDEsMTguODU4LDUuNzNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2cpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjE0OSwxNC44NDhjLS4wNTMuMDA5LS4xMDcuMDE4LS4xNjEuMDI1aDBDMTcuMDQyLDE0Ljg2NiwxNy4xLDE0Ljg1NywxNy4xNDksMTQuODQ4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4xNDksMTQuODQ4Yy0uMDUzLjAwOS0uMTA3LjAxOC0uMTYxLjAyNWgwQzE3LjA0MiwxNC44NjYsMTcuMSwxNC44NTcsMTcuMTQ5LDE0Ljg0OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTcuMTQ5LDE0Ljg0OGMtLjA1My4wMDktLjEwNy4wMTgtLjE2MS4wMjVoMEMxNy4wNDIsMTQuODY2LDE3LjEsMTQuODU3LDE3LjE0OSwxNC44NDhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3LDEzLjVsLjA1LS4wMDctLjA1LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcsMTMuNWwuMDUtLjAwNy0uMDUuMDA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZTtvcGFjaXR5OjAuMzQ5OTk5OTk0MDM5NTM1NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NywxMy41bC4wNS0uMDA3LS4wNS4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2kpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3MiwxMy41aDBaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3MiwxMy41aDBaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlO29wYWNpdHk6MC4zNDk5OTk5OTQwMzk1MzU1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3MiwxMy41aDBaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+XCIsXG5cdFwiQXBleFwiOiBcIjxwYXRoIGQ9XFxcIk0xMy42NTIsOC4zMzhBNC45MDYsNC45MDYsMCwwLDEsMTcuMiw2LjgxNGE0Ljk1Nyw0Ljk1NywwLDAsMSw0LjMyLDIuNTYsNS45NzIsNS45NzIsMCwwLDEsMi40NDItLjUxOSw2LjA4OSw2LjA4OSwwLDEsMS0xLjE4OSwxMi4wNiw0LjQxMiw0LjQxMiwwLDAsMS01Ljc4MiwxLjgxNkE1LjAzNCw1LjAzNCwwLDAsMSw3LjYzNCwyMi41YTQuNjQ2LDQuNjQ2LDAsMCwxLS45Ni4xLDQuNzMyLDQuNzMyLDAsMCwxLTIuMzM3LTguODEyLDUuNDM4LDUuNDM4LDAsMCwxLDkuMzE1LTUuNDUzXFxcIiBzdHlsZT1cXFwiZmlsbDojMGY5YmQ3XFxcIi8+PHBhdGggZD1cXFwiTTI1LjM3NiwzMC45NjZoLS41NjFhNC42NTgsNC42NTgsMCwwLDEtMS4yODQtLjEzNywxLjksMS45LDAsMCwxLS44MTgtLjQ4MiwxLjcyNiwxLjcyNiwwLDAsMS0uNDU1LS44NDMsNi43Nyw2Ljc3LDAsMCwxLS4xMDYtMS40MTMsNS44ODksNS44ODksMCwwLDAtLjA4NC0xLjMzLDEsMSwwLDAsMC0uMy0uNTQ0LDEuMjIzLDEuMjIzLDAsMCwwLS42Ni0uMTc5bC0uMjM2LS4wMTRWMjQuMTQ1bC4yMzYtLjAxNGExLjQ4MiwxLjQ4MiwwLDAsMCwuNTQ5LS4xLjcwNi43MDYsMCwwLDAsLjI3My0uMjY0LDEuMzk0LDEuMzk0LDAsMCwwLC4xODEtLjUyOSw2LjY4Myw2LjY4MywwLDAsMCwuMDQ0LS45MzksOC4xMzIsOC4xMzIsMCwwLDEsLjExMi0xLjY0MywxLjcsMS43LDAsMCwxLC40NDgtLjg0MSwyLjE0NCwyLjE0NCwwLDAsMSwuOTA2LS40OTIsNC41MTQsNC41MTQsMCwwLDEsMS4yLS4xMTZoLjU2MXYxLjloLS4yNWEyLjU4OSwyLjU4OSwwLDAsMC0uNzQzLjA1Ni4yODQuMjg0LDAsMCwwLS4xNDguMTE3LjgzOS44MzksMCwwLDAtLjA1NC4zODZxMCwuMzcyLS4wNTMsMS40MTNhMy43NCwzLjc0LDAsMCwxLS4xNjYsMS4wMDksMS45NDUsMS45NDUsMCwwLDEtLjY5MywxLDIuMDEsMi4wMSwwLDAsMSwuNywxLjA0NCw0LjYyNyw0LjYyNywwLDAsMSwuMTYzLDEuMDc5Yy4wMjcuNjU3LjA0MSwxLjA3NC4wNDEsMS4yNTZhLjg3MS44NzEsMCwwLDAsLjA1Ny40MDhBLjM0My4zNDMsMCwwLDAsMjQuNCwyOWEyLjM4MiwyLjM4MiwwLDAsMCwuNzI4LjA2aC4yNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjEuMTE4LDI1Ljc4OFYyNC4zODJhMS43NTIsMS43NTIsMCwwLDAsLjY0NS0uMTI5LjkzNi45MzYsMCwwLDAsLjM3NS0uMzU0LDEuNjIxLDEuNjIxLDAsMCwwLC4yMTctLjYyNEE2Ljg4LDYuODgsMCwwLDAsMjIuNCwyMi4zYTgsOCwwLDAsMSwuMTA1LTEuNTg1LDEuNDU2LDEuNDU2LDAsMCwxLC4zODEtLjcyMSwxLjksMS45LDAsMCwxLC44LS40MzEsNC4zMzYsNC4zMzYsMCwwLDEsMS4xMjUtLjEwNWguMzExdjEuNGEyLjg3NiwyLjg3NiwwLDAsMC0uODM1LjA3My41My41MywwLDAsMC0uMjcyLjIyMywxLjA3OSwxLjA3OSwwLDAsMC0uMDg4LjUxM3EwLC4zNjktLjA1MywxLjRhMy41MzEsMy41MzEsMCwwLDEtLjE1Mi45NCwxLjkxOCwxLjkxOCwwLDAsMS0uMzEzLjU5NSwyLjQ3LDIuNDcsMCwwLDEtLjU4My40ODYsMi4wNDUsMi4wNDUsMCwwLDEsLjU2NS40NjYsMS44NjksMS44NjksMCwwLDEsLjMzNy42NDcsNC40MSw0LjQxLDAsMCwxLC4xNTIsMS4wMnEuMDQxLjk3My4wNDEsMS4yNDJhMS4xLDEuMSwwLDAsMCwuMDk0LjUzOS41ODQuNTg0LDAsMCwwLC4yODQuMjMxLDIuNjQ5LDIuNjQ5LDAsMCwwLC44MjMuMDc5djEuNDA2aC0uMzExQTQuNDc0LDQuNDc0LDAsMCwxLDIzLjYsMzAuNTlhMS42NDQsMS42NDQsMCwwLDEtLjcxMi0uNDE5LDEuNDc4LDEuNDc4LDAsMCwxLS4zOS0uNzI0LDYuNjIxLDYuNjIxLDAsMCwxLS4xLTEuMzU2LDYuMzc0LDYuMzc0LDAsMCwwLS4wOTQtMS40LDEuMjMyLDEuMjMyLDAsMCwwLS4zOS0uNjcxQTEuNDMxLDEuNDMxLDAsMCwwLDIxLjExOCwyNS43ODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3MmEwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjAxMSwzMC45NjZIMjYuNDVWMjkuMDU5aC4yNUEyLjMyOSwyLjMyOSwwLDAsMCwyNy40MjYsMjlhLjMyMy4zMjMsMCwwLDAsLjE2NS0uMTI3LjgxMi44MTIsMCwwLDAsLjA1OC0uMzc5cTAtLjM2LjA1LTEuMzc1YTMuNzI1LDMuNzI1LDAsMCwxLC4xNzMtMS4wNDcsMi4yMjMsMi4yMjMsMCwwLDEsLjM4Ny0uNywyLjE0NSwyLjE0NSwwLDAsMSwuMy0uMjkyLDIuMTQxLDIuMTQxLDAsMCwxLS40LS40LDIuNjEyLDIuNjEyLDAsMCwxLS40MjEtMS4wOTIsMTcuNTI1LDE3LjUyNSwwLDAsMS0uMS0xLjg0MSwxLjM1NywxLjM1NywwLDAsMC0uMDUzLS40NzljLS4wMDgtLjAxNi0uMDMxLS4wNjItLjEzNi0uMTA2YTIuNTI0LDIuNTI0LDAsMCwwLS43NTctLjA2aC0uMjVWMTkuMmguNTYxYTQuNzkzLDQuNzkzLDAsMCwxLDEuMjgzLjEzMywxLjg0MSwxLjg0MSwwLDAsMSwuODE4LjQ4NSwxLjc4MSwxLjc4MSwwLDAsMSwuNDUzLjg0Myw2LjYsNi42LDAsMCwxLC4xMDksMS40MTQsNi4zNTksNi4zNTksMCwwLDAsLjA3OSwxLjMzNi45OTIuOTkyLDAsMCwwLC4zLjUzNywxLjIyNiwxLjIyNiwwLDAsMCwuNjY0LjE4bC4yMzYuMDE0djEuODc5bC0uMjM2LjAxNGExLjQ4MiwxLjQ4MiwwLDAsMC0uNTQ5LjEuNjg2LjY4NiwwLDAsMC0uMjcuMjYyLDEuNDg0LDEuNDg0LDAsMCwwLS4xODYuNTM0LDYuNzQzLDYuNzQzLDAsMCwwLS4wNDMuOTMxLDguMzgzLDguMzgzLDAsMCwxLS4xMDgsMS42NDQsMS42OTQsMS42OTQsMCwwLDEtLjQ0Ni44NDYsMi4xNDMsMi4xNDMsMCwwLDEtLjkxMy40OTJBNC41LDQuNSwwLDAsMSwyNy4wMTEsMzAuOTY2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0zMC43MDgsMjUuNzg4YTEuNzUyLDEuNzUyLDAsMCwwLS42NDUuMTI5LjkxOC45MTgsMCwwLDAtLjM3Mi4zNTQsMS43MjUsMS43MjUsMCwwLDAtLjIyLjYyNCw2LjgyLDYuODIsMCwwLDAtLjA0Ny45NzMsOC4yNyw4LjI3LDAsMCwxLS4xLDEuNTg4LDEuNDM5LDEuNDM5LDAsMCwxLS4zNzguNzI0LDEuOSwxLjksMCwwLDEtLjgwOS40MzEsNC4zMzYsNC4zMzYsMCwwLDEtMS4xMjUuMTA1SDI2LjdWMjkuMzFhMi42NTIsMi42NTIsMCwwLDAsLjgyLS4wNzlBLjU3Mi41NzIsMCwwLDAsMjcuOCwyOSwxLjA1LDEuMDUsMCwwLDAsMjcuOSwyOC41cTAtLjM1Ny4wNS0xLjM2NWEzLjUzLDMuNTMsMCwwLDEsLjE1OC0uOTc2LDEuOTc2LDEuOTc2LDAsMCwxLC4zNDMtLjYyMUEyLjAzOCwyLjAzOCwwLDAsMSwyOSwyNS4wODVhMi40MTYsMi40MTYsMCwwLDEtLjYzMy0uNTUxLDIuMzM5LDIuMzM5LDAsMCwxLS4zNzUtLjk4NCwxNy41NjQsMTcuNTY0LDAsMCwxLS4wOTQtMS44LDEuNTcxLDEuNTcxLDAsMCwwLS4wNzktLjU4Ni40ODcuNDg3LDAsMCwwLS4yNjQtLjIyNiwyLjgsMi44LDAsMCwwLS44NTMtLjA3OXYtMS40aC4zMTFhNC41NzYsNC41NzYsMCwwLDEsMS4yMTMuMTIzLDEuNTg3LDEuNTg3LDAsMCwxLC43MDkuNDE5LDEuNTI5LDEuNTI5LDAsMCwxLC4zOS43MjcsNi40MzYsNi40MzYsMCwwLDEsLjEsMS4zNTYsNi44NDIsNi44NDIsMCwwLDAsLjA4OCwxLjQsMS4yMjMsMS4yMjMsMCwwLDAsLjM5My42NzEsMS40NDcsMS40NDcsMCwwLDAsLjguMjMxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzJhMFxcXCIvPlwiLFxuXHRcIkFQTFwiOiBcIjxwYXRoIGQ9XFxcIk0zMCwyOC4yNzUsMTYsMiwyLDI4LjI3NUgxNC4xNjJWMzBoMy42NzZWMjguMjc1Wk0xNy44MzgsMjQuODI2VjEzLjE2MWw2LjIxNSwxMS42NjVabS05Ljg5MSwwLDYuMjE1LTExLjY2NVYyNC44MjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+XCIsXG5cdFwiQXBwbGVTY3JpcHRcIjogXCI8cGF0aCBkPVxcXCJNMTcuMTgxLDQuNDM3QTUuOTkzLDUuOTkzLDAsMCwxLDIxLjU3OSwyYTUuOTc5LDUuOTc5LDAsMCwxLTEuNDQ3LDQuNDc2LDQuNzI5LDQuNzI5LDAsMCwxLTQuMTcsMS45NjFBNS4yLDUuMiwwLDAsMSwxNy4xODEsNC40MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYThjMmFiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIsMTAuMDM0Yy45NDYsMCwyLjctMS4zLDQuOTg5LTEuM2E2LjI0OSw2LjI0OSwwLDAsMSw1LjQ4NCwyLjgsNi4wOCw2LjA4LDAsMCwwLTMuMDI4LDUuMyw2LjIzNSw2LjIzNSwwLDAsMCwzLjc3Miw1LjdzLTIuNjM3LDcuNDIyLTYuMiw3LjQyMmMtMS42MzYsMC0yLjkwOC0xLjEtNC42MzEtMS4xLTEuNzU3LDAtMy41LDEuMTQ0LTQuNjM1LDEuMTQ0QzguNywzMCw0LjU4NywyMi45NTksNC41ODcsMTcuM2MwLTUuNTY4LDMuNDc4LTguNDg5LDYuNzQtOC40ODlDMTMuNDQ4LDguODExLDE1LjA5MywxMC4wMzQsMTYuMiwxMC4wMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYThjMmFiXFxcIi8+XCIsXG5cdFwiQXJkdWlub1wiOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIjc2Ny4xNzlcXFwiIGN5PVxcXCI1MTY5LjU0M1xcXCIgcj1cXFwiMTQuOTg5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC03MTguMTEyIC00OTUzLjkxNykgc2NhbGUoMC45NTUgMC45NjIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzZiYWMwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMmQ5MDk0XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hcmR1aW5vPC90aXRsZT48cGF0aCBkPVxcXCJNMjkuNjQ1LDE1LjkyNUExMy43NywxMy43NywwLDEsMSwxNS44NzYsMi4wNTYsMTMuODE5LDEzLjgxOSwwLDAsMSwyOS42NDUsMTUuOTI1WlxcXCIgc3R5bGU9XFxcInN0cm9rZTojMDI3OTdlO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MS4xMzY3MjI4NDU0OTY5MjY3cHg7ZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjU4MSwxMS42NDhjMi40MS0uMDc2LDMuMzU5LjgzNCw0LjYwNSwyLjA2OS4yODUuMjgyLjU3OS41OS45LjkyMWwuOTIyLS45OTFhNi4yMjMsNi4yMjMsMCwwLDEsMy4yNTYtMS45M2MxLjkzOS0uMjExLDMuMTE5LS4xMjIsNC4zMTEuODE0YTUuMDIzLDUuMDIzLDAsMCwxLDIuMjQ1LDMuOSw1LjY1Myw1LjY1MywwLDAsMS0zLjI1LDUuMTU2LDUuOTc1LDUuOTc1LDAsMCwxLTMuOTEzLjEzNSw3LjY1Niw3LjY1NiwwLDAsMS0zLjU0MS0yLjk4N2MtMS42NzgsMi4xNDItMy4xODcsMy4yNTMtNS4yMzUsMy4xNTUtNy40NTItLjM1NC02Ljg0Mi0xMC4wNzUtLjMtMTAuMjQ3Wm0xLjY1Nyw3Ljk5NGE5LjE5Myw5LjE5MywwLDAsMCwyLjg1Ni0yLjljLS43NC0xLjI0My0yLjIwOS0yLjgyNC0zLjQ1NS0zLjEzNGE0LjMyOCw0LjMyOCwwLDAsMC0zLjIyNC43NzcsMy4zODQsMy4zODQsMCwwLDAtLjc2MiwzLjY4NiwzLjY3NCwzLjY3NCwwLDAsMCw0LjU4NSwxLjU3Wm0tMi45OC0zLjQ4NywzLjI3OC4wMDV2MS4yMWwtMy4yODMuMDA1Wm0xMy40NDgsMy42QTMuODQzLDMuODQzLDAsMCwwLDI0LjkzNywxN2EzLjQ1OCwzLjQ1OCwwLDAsMC0xLjg2My0zLjEwOSwzLjY0OCwzLjY0OCwwLDAsMC00LjIuNzI4LDcuMzY0LDcuMzY0LDAsMCwwLTEuNjQ5LDIuMTUxQTguOTM2LDguOTM2LDAsMCwwLDE5LjIsMTkuMjUyLDQuMDIyLDQuMDIyLDAsMCwwLDIyLjcwNiwxOS43NTRabS0xLjk1NS0yLjM3Ni0xLjA4OC0uMDA4LDAtMS4yMTcsMS4wOTEsMFYxNS4wNzVsMS4xMDctLjAwOC0uMDA3LDEuMDkzLDEuMDg1LDB2MS4xNjVsLTEuMDIxLS4wMDh2MS4xMkgyMC43NTNaXFxcIiBzdHlsZT1cXFwic3Ryb2tlOiMwMDA7c3Ryb2tlLXdpZHRoOjAuMTIxMDMwOTY0ODA5Mjc0ODJweDtvcGFjaXR5OjAuMTY4MDk5OTk5NDI3Nzk1NDtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk00LjkxNywxNi4zMzdjMCw1LjM0OCw3LjM1NCw3LjM0LDEwLjk4NywxLjg5NCwzLjc2NSw1LjY0NywxMC44MjQsMy4yOCwxMC44MjQtMS45UzE5LjcsOC42NTYsMTUuOSwxNC40NDFjLTMuNi01LjcxOS0xMC45ODctMy40NTMtMTAuOTg3LDEuOVptMS45MzEsMGMwLTMuODYsNS40NTUtNS4wNzgsNy45OTIsMC0yLjU4OCw0Ljg4OS03Ljk5MiwzLjg1OS03Ljk5MiwwWm0xMC4xMTksMGMyLjI4Ni01LjE3OCw3Ljg4OS0zLjc1MSw3Ljg3Mi4wMDhTMTkuMTg2LDIxLjI3NywxNi45NjcsMTYuMzM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MC4yNDIwNjE5Mjk2MTg1NDk2NHB4XFxcIi8+PHJlY3QgeD1cXFwiOC44OThcXFwiIHk9XFxcIjE1Ljc5NVxcXCIgd2lkdGg9XFxcIjMuMjM3XFxcIiBoZWlnaHQ9XFxcIjEuMDY3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC42NDQgMTYuODQ2IDE5LjU3NiAxNi44NDYgMTkuNTc2IDE1LjcxMiAyMC42NDQgMTUuNzEyIDIwLjY0NCAxNC42NDQgMjEuNzc5IDE0LjY0NCAyMS43NzkgMTUuNzEyIDIyLjg0NyAxNS43MTIgMjIuODQ3IDE2Ljg0NiAyMS43NzkgMTYuODQ2IDIxLjc3OSAxNy45MTQgMjAuNjQ0IDE3LjkxNCAyMC42NDQgMTYuODQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiQVJNIEFzc2VtYmx5XCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiODM2LjYzXFxcIiB5MT1cXFwiMzYuMjA1XFxcIiB4Mj1cXFwiODQzLjgwMlxcXCIgeTI9XFxcIjE0LjQ4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDUyNS45MjIgMzAuMjQ5KSByb3RhdGUoMTgwKSBzY2FsZSgwLjYwNyAwLjYwNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjI3NVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfYXNzZW1ibHk8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyYy0xLjI0NiwzLjA1Ni0yLDUuMDU3LTMuMzkxLDguMDIyQTIxLjg4NCwyMS44ODQsMCwwLDAsMTYuMiwxMy4xNTZhMTQuODU4LDE0Ljg1OCwwLDAsMS00LTIuMjgzQzEwLjQzLDE0LjU3OSw3LjY0NiwxOS44NTUsMiwzMGM1LjE4Ni0yLjk5NCw5LjAxMi00LjY0OCwxMi42OTEtNC45NjZWMjQuMmgtLjgzNHYtLjgzN2guODM0VjI0LjJoMS42NzVWMjIuNTIxSDE0LjY5MXYtLjgzNGgtLjgzNFYyMC4wMTNoLjgzNHYtLjgzNGgxLjY3NXYuODM0SDE3LjJ2LjgzN2gtLjgzN3YtLjgzN0gxNC42OTF2MS42NzVoMS42NzV2LjgzNEgxNy4yVjI0LjJoLS44Mzd2Ljc4M2MzLjk4LjEsOC4wMDYsMS43NzIsMTMuNjM0LDUuMDIxLS44NjMtMS41ODktMS42MzYtMy4wMjEtMi4zNzItNC4zODVhMjUuNTI2LDI1LjUyNiwwLDAsMC00LjgzMy0zLjMzM0ExNC40MzYsMTQuNDM2LDAsMCwxLDI2LjY1LDIzLjhDMTkuMTcsOS44NzIsMTguNTY1LDguMDIsMTYsMlpNMTAuNTExLDE5LjE3OWgxLjY3MXYuODM0aC44Mzd2NS4wMjFoLS44MzdWMjIuNTIxSDEwLjUxMXYyLjUxMkg5LjY3M1YyMC4wMTNoLjgzN1ptMCwuODM0djEuNjc1aDEuNjcxVjIwLjAxM1ptNy41MjYtLjgzNGguODM3di44MzRoLjgzN3YuODM3aC44MzR2LS44MzdoLjgzN3YtLjgzNGguODM3djUuODU1aC0uODM3VjIwLjg1aC0uODM3di44MzdoLS44MzRWMjAuODVoLS44Mzd2NC4xODRoLS44MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAwMGJmXFxcIi8+PHBhdGggZD1cXFwiTTIzLjg4MSwxOC42NDJjLTYuMDY5LTguMjM3LTcuNDc2LTE0Ljg3Ni03LjgzMi0xNi40NjFBMTc1LjIxNywxNzUuMjE3LDAsMCwwLDIzLjg4MSwxOC42NDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtb3BhY2l0eTowLjE2NTY4MDQ2ODA4MjQyOFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wNTEsMi4xMiwxNS42LDMuMjI3Yy0uMTU5LjM5MS0uMzExLjc2NS0uNDYxLDEuMTMxcy0uMy43MjQtLjQ0OCwxLjA3Ny0uMy43LS40NDgsMS4wNTMtLjMuNzA2LS40NjUsMS4wNjYtLjMyOS43MjktLjUwNiwxLjExMS0uMzYyLjc3OC0uNTYxLDEuMTkzYy0uMDI4LjA1Ny0uMDYxLjEyMy0uMDg5LjE4MUEyMS44NzIsMjEuODcyLDAsMCwwLDE2LjIsMTMuMTU2YTE0Ljg3OSwxNC44NzksMCwwLDEtMy45ODktMi4yNzZsLS4xNC4yODdjLS4wNjUuMTMzLS4xNDQuMjgzLS4yMTIuNDJsLS4xMDYuMjE5Yy0uODc4LDEuNzkzLTIuMDA2LDMuOTg0LTMuNTI0LDYuODIyLDMuNTUxLTIsNy4zODEtNC44ODcsMTQuMzM4LTIuNC0uMzQ5LS42NjEtLjY3LTEuMjgtLjk3MS0xLjg2M3MtLjU4MS0xLjEyOC0uODQxLTEuNjQ0LS41LTEtLjcyNS0xLjQ2My0uNDMzLS45LS42MjktMS4zMTMtLjM4LS44MTgtLjU1NC0xLjItLjMzOS0uNzU0LS41LTEuMTE4UzE4LjA0Nyw2LjksMTcuOSw2LjU0NnMtLjI5MS0uNzA5LS40MzQtMS4wNjZjLS4wMzYtLjA5MS0uMDczLS4xODYtLjEwOS0uMjc3QzE2Ljk0OSw0LjI0NywxNi41MzYsMy4yNTgsMTYuMDUxLDIuMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdFwiQXNjaWlEb2NcIjogXCI8cGF0aCBkPVxcXCJNMzAsMzBIMlYySDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2U0MDA0NlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy43MzEsMjQuODNhLjU4OS41ODksMCwwLDEtLjc2My0uMzM3TDE2LjcyNCw5LjI2OSwxMy45MywxNS45OWgxLjgzM2EuNTkuNTksMCwwLDEtLjAyNCwxLjE4SDguOWEuNTkuNTksMCwwLDEsLjAyNC0xLjE4aDMuNzI3bDAtLjAxM0wxNi4xODQsNy41YS41OTEuNTkxLDAsMCwxLC41MzMtLjM2M2gwYS41OTIuNTkyLDAsMCwxLC41NTcuMzY2bDYuNzg1LDE2LjU0Ni4wMDkuMDIxQS41OS41OSwwLDAsMSwyMy43MzEsMjQuODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE0LjUxNiwxOC43OTFINy42NzlhLjU5LjU5LDAsMCwwLS4wMjQsMS4xOEgxMUw5LjMwOSwyNC4wNDNhLjU5LjU5LDAsMCwwLDEuMDg1LjQ2NGwwLS4wMTEsMS44NzUtNC41MDkuMDA1LS4wMTZoMi4yMTVhLjU5LjU5LDAsMCwwLC4wMjMtMS4xOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJBU1AuTkVUIChDIylcIjogXCI8dGl0bGU+ZmlsZV90eXBlX2FzcHg8L3RpdGxlPjxwb2x5Z29uIHBvaW50cz1cXFwiMjIuNzUgMiA2LjM1IDIgNi4zNSAzMCAyOS42NSAzMCAyOS42NSA5IDIyLjc1IDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNWM1YzVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI3LjM1IDI3LjcgOC43NSAyNy43IDguNzUgNC4zIDIwLjQ1IDQuMyAyMC40NSAxMS4zIDI3LjQ1IDExLjMgMjcuNDUgMjcuNyAyNy4zNSAyNy43XFxcIiBzdHlsZT1cXFwiZmlsbDojZjVmNWY1XFxcIi8+PHBhdGggZD1cXFwiTTEyLjEsMzAuOTk0QTExLjA5NCwxMS4wOTQsMCwxLDEsMjMuMTk0LDE5LjksMTEuMTA2LDExLjEwNiwwLDAsMSwxMi4xLDMwLjk5NFptMC0yMC4zQTkuMiw5LjIsMCwxLDAsMjEuMywxOS45LDkuMjE2LDkuMjE2LDAsMCwwLDEyLjEsMTAuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGNcXFwiLz48cmVjdCB4PVxcXCIyLjA5OVxcXCIgeT1cXFwiMTkuNDU1XFxcIiB3aWR0aD1cXFwiMjAuMDAzXFxcIiBoZWlnaHQ9XFxcIjAuODlcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNMTIuMzI1LDE1Ljc2M2EzMS45MywzMS45MywwLDAsMS04LjQ4NC0xLjExbC4yNDItLjgwN2EzMS4zNzQsMzEuMzc0LDAsMCwwLDE1Ljk5MiwwbC4yMzkuODA3QTI4LjA3NiwyOC4wNzYsMCwwLDEsMTIuMzI1LDE1Ljc2M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNNC4xLDI1LjcyNGwtLjIzOS0uODA3YTMxLjY1MiwzMS42NTIsMCwwLDEsMTYuNDcyLDBsLS4yNDIuODA3QTMxLjM4LDMxLjM4LDAsMCwwLDQuMSwyNS43MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+PHBhdGggZD1cXFwiTTguNTM2LDI5LjA1NUEyNS40MzgsMjUuNDM4LDAsMCwxLDgsMTAuNjA4bC43NzYuMzMxYTI0LjU1OCwyNC41NTgsMCwwLDAsLjUzMywxNy43ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+PHBhdGggZD1cXFwiTTE1LjYsMjkuMDU1bC0uNzc2LS4zMzNhMjQuNTU5LDI0LjU1OSwwLDAsMCwuNTMxLTE3Ljc4M2wuNzc2LS4zMzFBMjUuNDQzLDI1LjQ0MywwLDAsMSwxNS42LDI5LjA1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cmVjdCB4PVxcXCIxMS42NTVcXFwiIHk9XFxcIjkuODk4XFxcIiB3aWR0aD1cXFwiMC44ODlcXFwiIGhlaWdodD1cXFwiMjAuMzcxXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+XCIsXG5cdFwiQXV0b0hvdGtleVwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjU0LjYwNFxcXCIgeTE9XFxcIjE2OC4zODhcXFwiIHgyPVxcXCI1NC42MDRcXFwiIHkyPVxcXCIxOTQuODg1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zOC42MDQgLTE2NS42MzYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDhkOGQ4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTNhM2EzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCI2OC43NTZcXFwiIHkxPVxcXCIyMDkuMTUyXFxcIiB4Mj1cXFwiOTEuNjM4XFxcIiB5Mj1cXFwiMjA5LjE1MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNTAuNjAxIC0xNTkuNDQ5KSBzY2FsZSgwLjgzMiAwLjgzNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkN2Q3ZDdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U3ZTdlN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2Q3ZDdkN1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfYXV0b2hvdGtleTwvdGl0bGU+PHJlY3QgeD1cXFwiMlxcXCIgeT1cXFwiMi44MjRcXFwiIHdpZHRoPVxcXCIyOFxcXCIgaGVpZ2h0PVxcXCIyNi4zNTNcXFwiIHJ4PVxcXCIzLjA4OFxcXCIgcnk9XFxcIjMuMDg4XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljg1NiwyOS4xODFINS4xNDRBMy4xNDgsMy4xNDgsMCwwLDEsMiwyNi4wMzdWNS45NjNBMy4xNDgsMy4xNDgsMCwwLDEsNS4xNDQsMi44MTlIMjYuODU2QTMuMTQ4LDMuMTQ4LDAsMCwxLDMwLDUuOTYzVjI2LjAzN0EzLjE0OCwzLjE0OCwwLDAsMSwyNi44NTYsMjkuMTgxWk01LjE0NCwyLjk2M2EzLDMsMCwwLDAtMywzaDBWMjYuMDM3YTMsMywwLDAsMCwzLDNIMjYuODU2YTMsMywwLDAsMCwzLTNWNS45NjNhMywzLDAsMCwwLTMtM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDhkOGRcXFwiLz48cmVjdCB4PVxcXCI0LjMxM1xcXCIgeT1cXFwiNC42NDFcXFwiIHdpZHRoPVxcXCIyMy4xNjlcXFwiIGhlaWdodD1cXFwiMjEuOTRcXFwiIHJ4PVxcXCIyLjU3MVxcXCIgcnk9XFxcIjIuNTcxXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTI0LjkxMSwyNi42NDFINi44ODRBMi42MzQsMi42MzQsMCwwLDEsNC4yNTMsMjQuMDFWNy4yMTJBMi42MzQsMi42MzQsMCwwLDEsNi44ODQsNC41ODFIMjQuOTExYTIuNjM0LDIuNjM0LDAsMCwxLDIuNjMxLDIuNjMxdjE2LjhBMi42MzQsMi42MzQsMCwwLDEsMjQuOTExLDI2LjY0MVpNNi44ODQsNC43QTIuNTE0LDIuNTE0LDAsMCwwLDQuMzczLDcuMjEydjE2LjhhMi41MTQsMi41MTQsMCwwLDAsMi41MTEsMi41MTFIMjQuOTExYTIuNTE0LDIuNTE0LDAsMCwwLDIuNTExLTIuNTExVjcuMjEyQTIuNTE0LDIuNTE0LDAsMCwwLDI0LjkxMSw0LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjhmOGY4XFxcIi8+PHBhdGggZD1cXFwiTTYuMTQ1LDIzLjlsMi4zNDMtNi4xaC44N2wyLjUsNi4xaC0uOTJsLS43MTItMS44NDhINy42NzNMNywyMy45Wk03LjksMjEuNEg5Ljk3NGwtLjYzNy0xLjdxLS4yOTEtLjc3LS40MzMtMS4yNjVBNy43NzYsNy43NzYsMCwwLDEsOC41NzYsMTkuNlpcXFwiLz48cGF0aCBkPVxcXCJNMTMuNjA3LDIzLjlWMTcuOGguODA3djIuNWgzLjE3MVYxNy44aC44MDd2Ni4xaC0uODA3VjIxLjAyMWgtMy4xN1YyMy45WlxcXCIvPjxwYXRoIGQ9XFxcIk0yMC40NzgsMjMuOVYxNy44aC44MDd2My4wMjVsMy4wMy0zLjAyNWgxLjA5NEwyMi44NSwyMC4yNjcsMjUuNTIyLDIzLjlIMjQuNDU2bC0yLjE3Mi0zLjA4OC0xLC45NzRWMjMuOVpcXFwiLz5cIixcblx0XCJBdXRvSXRcIjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxMi41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ZDgzYWNcXFwiLz48cGF0aCBkPVxcXCJNMiwxNkExNCwxNCwwLDEsMSwxNiwzMCwxNCwxNCwwLDAsMSwyLDE2Wk0xNiw0Ljc4OUExMS4yMTEsMTEuMjExLDAsMSwwLDI3LjIxMSwxNiwxMS4yMTEsMTEuMjExLDAsMCwwLDE2LDQuNzg5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YwZjBmMFxcXCIvPjxwYXRoIGQ9XFxcIk0yNC41NzYsMjAuMTU2bC02LjQtOS4yNjRhMy4xMzEsMy4xMzEsMCwwLDAtLjgxOS0uODE5LDIuMzYsMi4zNiwwLDAsMC0yLjQ0Mi4wMjMsMy41NDMsMy41NDMsMCwwLDAtLjgxMi44TDcuNTMzLDIwLjE1NmgzLjc1Mmw0LjgwOC02LjgsMS44MzgsMi43MXEuMjYuMzY4LjU0NC43ODl0LjUuN3EtLjM2OC0uMDMxLS44NjUtLjAzMWgtMy41M2wtMS45MTQsMi42MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjBmMGYwXFxcIi8+XCIsXG5cdFwiQXZybyBJRExcIjogXCI8cGF0aCBkPVxcXCJNMiwxMS42NDloLjAyNWE0Ljc4NSw0Ljc4NSwwLDAsMCwyLjkxMSwxLjMzNmMyLjMwOC4yMjEsNC41OS0uNDg1LDYuOS0uMzI2YTcuMDMsNy4wMywwLDAsMSwyLjY4LjY2NGMuNS0uMzE5Ljk4OS0uNjYyLDEuNDg2LS45ODkuNS4zMjcuOTg0LjY3NCwxLjQ4OC45ODlhNi44MzQsNi44MzQsMCwwLDEsMi40ODctLjY1YzEuOTk1LS4xNjcsMy45NjcuMzA4LDUuOTU3LjM1OWE1LjIsNS4yLDAsMCwwLDQuMDI2LTEuMzgzSDMwdi4yMzZjLS4xNzguNzQ3LS44ODIsMS4xNzYtMS4yODQsMS43OWE0Ljk0OCw0Ljk0OCwwLDAsMS0uNzMxLjc5MSwzLjgsMy44LDAsMCwxLS41NjUuNzQ4LDIuNTUxLDIuNTUxLDAsMCwwLS41OTQuNTQxLDIuMTgxLDIuMTgxLDAsMCwxLS45Ni43NDksMS4xNDksMS4xNDksMCwwLDEtLjU2NS41Niw2LjY5LDYuNjksMCwwLDEtMS45NC4xODRjLjcyMy41NDgsMS41LDEuMDIsMi4yNDYsMS41MzUuNzgyLjUxMywxLjU0LDEuMDYxLDIuMzI2LDEuNTY4SDQuMDg5YzEuNS0xLjA1OCwzLjA1Ny0yLjAzNSw0LjU1LTMuMUE2LjgsNi44LDAsMCwxLDYuNywxNy4wNjVhMS4xNTUsMS4xNTUsMCwwLDEtLjU2OS0uNTYyLDIuMjgsMi4yOCwwLDAsMS0xLjA0My0uODZjLS4yNjgtLjMtLjY3LS40NjYtLjg1My0uODQzLS4yLS40MzYtLjY1OC0uNjY0LS45MDktMS4wNjctLjQtLjY0Mi0xLjEzNy0xLjA3Ni0xLjMyNy0xLjg0NnYtLjIzOW0yLjkzOSw4LjUyOHExMS4wNTkuMDA5LDIyLjEyLDBjLTMuNjY4LTIuNTEtNy4zNzYtNC45NjEtMTEuMDU5LTcuNDQ4LTMuNjg0LDIuNDg3LTcuMzkyLDQuOTQxLTExLjA2MSw3LjQ0OU00LjE2NywxMy4yYTcuODQyLDcuODQyLDAsMCwwLDIuODQuNzMxYzEuMTYzLjEyMywyLjM0MS4wNDYsMy41LjIzNmEyLjcsMi43LDAsMCwxLDEuNjA3Ljc4MWMuNjU5LS40NTIsMS4zMzItLjg4NSwxLjk4Ny0xLjM0MmwuMDEyLS4wNjRhNS4yOTQsNS4yOTQsMCwwLDAtMS44NzctLjVjLTIuNjkzLS4zMTYtNS4zODcuNzEyLTguMDY3LjE2bTEzLjY1Mi4zNTZjLjY4OC40NjYsMS4zODIuOTI1LDIuMDcsMS4zOTJhMi40ODgsMi40ODgsMCwwLDEsMS4zLS43MTksMTkuODU5LDE5Ljg1OSwwLDAsMSwzLjEzNy0uMjQ4LDkuMTA1LDkuMTA1LDAsMCwwLDMuNS0uNzY4Yy0yLjU4Mi41LTUuMTY4LS40MDktNy43NjEtLjJhNi4yNTYsNi4yNTYsMCwwLDAtMi4yNDUuNTQ1TTMuMzM5LDEzLjE2NmE3LjI2NCw3LjI2NCwwLDAsMCwyLjcyMywxLjNjLS4yMTktLjE1My0uMzc2LS40MTYtLjY1Ny0uNDU3YTcuOTU1LDcuOTU1LDAsMCwxLTIuMDY2LS44NDRtMjMuMzMzLjgyNWMtLjMxNy4wMjMtLjUuMy0uNzMzLjQ3M2E3LjIzMiw3LjIzMiwwLDAsMCwyLjcyNC0xLjMsOC4xMDYsOC4xMDYsMCwwLDEtMS45OTEuODI0bS0yMi41LjEyNmE1LjEyMSw1LjEyMSwwLDAsMCwyLjU4OSwxLjFjLS4xMTUtLjEyOC0uMjA5LS4zMTItLjQtLjMzNGExMC40NTksMTAuNDU5LDAsMCwxLTIuMTktLjc3MW0yMS40NjcuNzY4Yy0uMTg5LjAyMi0uMjg0LjItLjM5NC4zMzZhNS4xODcsNS4xODcsMCwwLDAsMi42LTEuMTA5LDEwLjQ3NywxMC40NzcsMCwwLDEtMi4yLjc3M002LjMsMTQuMjA2YTMuMjQzLDMuMjQzLDAsMCwwLDIuNDQ1LjM1MmMtLjEtLjA4LS4xODEtLjIxNS0uMzI1LS4yMDZxLTEuMDYzLS4wNC0yLjEyLS4xNDZtMTcuMzUxLjEzOWMtLjE3MS0uMDE5LS4yOTEuMS0uNDA2LjIxMWEzLjEwOCwzLjEwOCwwLDAsMCwyLjQyLS4zNTJxLTEsLjExMi0yLjAxNC4xNDFtLTE2Ljc0MS41MzhhMy42NjksMy42NjksMCwwLDAsMi40ODIuMzE5LDEuMTA3LDEuMTA3LDAsMCwwLS4yODEtLjM3Niw1LjE1OCw1LjE1OCwwLDAsMS0yLjIuMDU3bTE1LjcuMzE4YTMuNjc4LDMuNjc4LDAsMCwwLDIuNDg3LS4zMTksNS4xMjcsNS4xMjcsMCwwLDEtMi4yLS4wNTcsMS4xLDEuMSwwLDAsMC0uMjgzLjM3Nk00LjgzOCwxNC45NzdhNC4xMSw0LjExLDAsMCwwLDIuMTMzLjg0MWMtLjA1Ny0uMDg0LS4xMTQtLjE2OC0uMTcxLS4yNTRhNi45NDgsNi45NDgsMCwwLDEtMS45NjItLjU4N20yMC4zNjEuNTg5LS4xNjkuMjUzYTQuMTQxLDQuMTQxLDAsMCwwLDIuMTM2LS44NDMsNy4wMTUsNy4wMTUsMCwwLDEtMS45NjcuNTltLTE4LjEtLjEzYS44LjgsMCwwLDAsLjUzNC4zMSw3LjU3OSw3LjU3OSwwLDAsMCwyLjAzNy0uMDczYy0uMDA5LS4wMy0uMDI3LS4wOS0uMDM2LS4xMi0uNDU3LS4wNTEtLjkyMy4wNzQtMS4zODUuMDQ3QTcuMDU0LDcuMDU0LDAsMCwxLDcuMSwxNS40MzdtMTYuMTkxLjE1MWE2LjI4LDYuMjgsMCwwLDAtLjkxMy0uMDQxbC0uMDQyLjEyNmE3LjQxNiw3LjQxNiwwLDAsMCwyLjA0NS4wNzIuNy43LDAsMCwwLC41MjItLjMzMSw0LjM0OSw0LjM0OSwwLDAsMS0xLjYxMy4xNzRtLTE3LjUyLjMyN2EzLjEyLDMuMTIsMCwwLDAsMS43NTQuNDgxYy0uMDY1LS4yNC0uMzM0LS4yLS41MjMtLjIzNi0uNDE5LS4wNDEtLjgxNi0uMTg2LTEuMjMxLS4yNDZNMjUsMTYuMTYzYy0uMTg4LjA0MS0uNDUyLS4wMDYtLjUyMS4yMzJhMi44NzQsMi44NzQsMCwwLDAsMS43MzItLjQ4MmMtLjQuMDc5LS44LjIwNy0xLjIxMS4yNTFNNy43MzUsMTYuMTE5YTEsMSwwLDAsMCwuNzg5LjI3NSw5LjMzMSw5LjMzMSwwLDAsMCwxLjMyNS0uMTU4Yy0uMDIxLS4wOTMtLjAwOS0uMjc4LS4xNjMtLjIyOGE5Ljk4Myw5Ljk4MywwLDAsMS0xLjk1MS4xMTFtMTQuNDE1LjExOGE4LjE1Nyw4LjE1NywwLDAsMCwxLjQxMi4xNTQuOS45LDAsMCwwLC43LS4yNzQsOS4zODcsOS4zODcsMCwwLDEtMS45MzQtLjExYy0uMTYtLjA2LS4xNTUuMTMyLS4xNzYuMjNtLTE1LjQzOC40NGExLjk2MiwxLjk2MiwwLDAsMCwxLjMuMTgxbC0uMDkxLS4xMjZjLS40LjAwNi0uODA3LS4wMjItMS4yMDktLjA1NW0xLjYxNS4wNDNhMS4wMywxLjAzLDAsMCwwLC43MTYuMjk0Yy4xNzktLjEyNS4zNTgtLjI1Mi41MzEtLjM4NmE1Ljc0Nyw1Ljc0NywwLDAsMS0xLjI0Ny4wOTJtMTQuMS0uMDkzYy4yMzcuMTQ0LjQ2Ny40NzcuNzgyLjM0NS4xNjYtLjA1LjM2OS0uMDg5LjQ2MS0uMjU3YTUuMjcxLDUuMjcxLDAsMCwxLTEuMjQzLS4wODhtMS43MTMuMjYzYTIuMDA3LDIuMDA3LDAsMCwwLDEuMTQ1LS4yMTMsMTAuMjY5LDEwLjI2OSwwLDAsMS0xLjE0NC4wNDlDMjMuOTkzLDE2LjY2NywyMy45ODQsMTYuOTYxLDI0LjEzOCwxNi44OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQwZmZcXFwiLz48cGF0aCBkPVxcXCJNNy40MzUsMTguODg2UTExLjcxOSwxNi4wMTMsMTYsMTMuMTM3bDkuMyw2LjI0NGMuMjIxLjE0Ny40MzkuMy42NDguNDY0cS05Ljk0Ny0uMDEtMTkuODk0LDBjLjQ0My0uMzQ0LjkyLS42NCwxLjM4My0uOTU4bTguMjU1LTUuMDY2Yy0uNDU3LDEuODU5LS45MDcsMy43MTktMS4zNzUsNS41NzYuNTIuMDE1LDEuMDQxLjAxMiwxLjU2MiwwcS0uMDEzLTIuODQxLDAtNS42OGwtLjE4NC4xbS0yLjUsMS42ODRjLjI1NS44NTkuNDgsMS43MjguNzYzLDIuNTc5LjI4OS0xLjIzOC42LTIuNDcxLjktMy43MDctLjU1LjM4Ni0xLjExNC43NS0xLjY2OCwxLjEyOW0zLjM1Ny0uODczYy0uMDA2LjY4MiwwLDEuMzY0LDAsMi4wNDZhMi4xLDIuMSwwLDAsMCwxLjAxNC0uMjU0Yy4xOTMtLjE0NS4xLS40MDkuMDExLS41ODZhNC4yNzYsNC4yNzYsMCwwLDAtMS4wMjQtMS4yMDdNMTguMzI3LDE2LjRjLS4xLjU0NC0uNjY2Ljc5Mi0xLjE1MS45LjQ3NC43Ljk2LDEuMzg5LDEuNDE2LDIuMS40NjkuMDI0Ljk0LjAxMSwxLjQxMS4wMDlhMS42MzEsMS42MzEsMCwwLDEsLjE2LTIuOTc2Yy0uODM0LS42LTEuNy0xLjE0LTIuNTQ0LTEuNzI3LjM0OS41LjgzMSwxLjAzNy43MDgsMS43bS02LjgyMi4yNDJjLjI2Ny45MjEuNTI5LDEuODQ1Ljc5NCwyLjc2Ny40NCwwLC44OC4wMDgsMS4zMjEtLjAwNy0uMzM5LTEuMTYxLS42ODUtMi4zMTktMS4wMDktMy40ODQtLjM4NS4yMTUtLjczNy40ODItMS4xLjcyNG04LjguNDUyYS45NDYuOTQ2LDAsMCwwLC4wNTcsMS43Yy41MzMuMDkuODU1LS41MzMuNzc5LS45OS0uMDI2LS40LS40LS44NjEtLjgzNi0uNzE0TTcuNCwxOS40cTEuMzI0LjAxOCwyLjY1LDBjLjI1Ni0uNy40MTMtMS40NjguNjI5LTIuMi0xLjEuNzE1LTIuMTg3LDEuNDYxLTMuMjc5LDIuMTk0bTE0LjM3Ny0xLjlhMS42MTYsMS42MTYsMCwwLDEtLjg3NiwxLjljMS4yMzMuMDE4LDIuNDY1LjAxNSwzLjcsMC0uOTM0LS42NDQtMS44ODMtMS4yNjYtMi44MjItMS45bS01LjIyMy4xMTVjLS4wMS42LDAsMS4yLDAsMS44LjQxNSwwLC44MzEsMCwxLjI0OCwwLS40MTktLjYtLjgtMS4yMTktMS4yNDMtMS43OTRtLTUuNTQ2Ljk0MWguMzQ2Yy0uMDU1LS4xODctLjEwOC0uMzc2LS4xNjYtLjU2MmEzLjc1MSwzLjc1MSwwLDAsMC0uMTgxLjU2M20tLjE4LjY5M2MtLjAxNS4wNC0uMDQ1LjExOS0uMDYxLjE1OS4yNzUtLjAyNi41OS4wNzEuODQyLS4wNUMxMS40NTMsMTkuMTEyLDExLjA3NCwxOS4yNzUsMTAuODI2LDE5LjI0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQwZmZcXFwiLz5cIixcblx0XCJBV0tcIjogXCI8cGF0aCBkPVxcXCJNMjYuOTI1LDI3LjczN0MyMy40MzEsMjYuMSwyNC42MDYsMTQuNTg4LDEzLjgxLDguMzE5LDE0LjA4OSw1Ljc5MiwxNC43NTgtLjUsNy45NjEsMyw2Ljg0NSwzLjEyOCw0LjkwNywyLjMzMSw0LDQuODMxdi4xMTRDMTYuOTE4LDMuOS4wODgsMTAuNTMsMTYuNzUsMjUuODQ0Yy0uMzczLjE3Ni0uNjc0LS4zMjUtMS45Ny4xbC0uMDE0LjAxNmMtMS43MjIsMS4xMzUsMS45MzMuNzY4LDQuMTU0LDEuMjc0LTEuNjExLjQxNy01LjU5NC0xLjEzNy02LjMsMS42NDUuODc3LS4zNywxLC4zMjksMS4wNzYsMS4wNzdBMjYuMjc3LDI2LjI3NywwLDAsMSwyMi4zNzksMjcuNWMxLjEuMjg1LDQuMTE4LDIuMDQ5LDUuMTIyLjU1MUMyNy41MTksMjcuOTMsMjcuMjIxLDI3Ljg3NiwyNi45MjUsMjcuNzM3WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40NDYsMi45N2wtLjEyMS4wODhhLjI2Ni4yNjYsMCwwLDAtLjAxMS4zNzcuMjExLjIxMSwwLDAsMCwuMDQ1LjAzOS40MTYuNDE2LDAsMCwwLC41MjEtLjA2My4yNjMuMjYzLDAsMCwwLC4wNzgtLjM2NGwtLjAxLS4wMTRjLS4wNzYtLjE0My0uMTYzLS4xNzctLjM0LS4xMjdDMTAuNTUzLDIuOTI1LDEwLjUsMi45NDYsMTAuNDQ2LDIuOTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE4LDI2LjM2OGMuMTUxLS4wNDEuMzE4LS44MjguMTc0LS45NDlBNi4yOSw2LjI5LDAsMCwwLDE5LjQsMjYuNDg1YzEuMDIzLDEuMDA3LDIuNjY1LS4wMzIsMy40ODIuNzU5YTEwLjczNiwxMC43MzYsMCwwLDAsMS45NTcsMS4wMjdjLS4xMzktLjE1MS0uMDI5LS4xNDQuMTc5LS4wMTEtLjEzLS4zMzgtNC40MjEtNS4xNTYtNS4yMjYtNy4xOC4wOTUuMjkzLTEuNjA4LS44MjQtMi4wNzYtMS40MTktLjAyOC4wNTYtLjA5Mi0uMjUxLS4yMjgtLjQzNC0uMDQxLjA1LS4yLS40MzMtLjMtLjcyOC4wMzcuMTg3LS40NjItLjUtLjY1LS44MTgtLjA1Ni4wOS0uNzE5LjM3Mi0uODA5LjI4Ni0uNzI5LS40LDIuNTI5LDQuMDY2LjEyMiwyLjU1OS42NzYuNjgzLjYxNC40LTEuMDk1LS44NTIuMzY0LjQ1Mi0uMzE3LjMxMi0xLjU1My0xLjUyMy4xODYuMi0uMjE4LS41NzYtLjIxOC0uNTc2YTIuNjkyLDIuNjkyLDAsMCwwLS4xMzMtLjQ4M2MtLjA1Ni0uMzItLjI0MS0uNzIzLS4xMi0uNjUtMS40NDQtMS41NTYsMS4zMTQtMy4zLjcxOS0zLjY3MS0uMTExLDAtLjAyNy4wMTctLjE1MS0uMTA2LS4wOSwwLS40NjguMjg1LS41ODctLjIzNC4wMDYuMTMyLS4wMzQuNDA2LS4xNTMtLjEtLjAyMy4wNTIuMDE1LjEtLjAzLjE0NS0uMjI1LS41NzYtLjc3Mi0xLjYtMS4yMTctMi41MzktLjE1OC4xNTUtLjEzOC0uMDc2LS4xOTMtMS4wOTIuMDUzLjE0NC0uMjI1LDEuOTIxLS4yLjEzLS4xMjguMDA3LjEwOCwxLjI1OC0uMzQzLjIxLS4xNDEuMDUtLjMwNS0uMzYzLS4zNDEtMS4xNzgtLjA0OC42MjMtLjI5LjE4Ny0uNS0uOTIzLS4yNjkuNTA4LTEuNiwxLjc0My0uMzMzLDcuNjIyLS4wNTMtLjMxMy4xODYuMzQxLjc1NSwyLjQyNy4wMjEtLjAzOS0uMDIyLS4wODMuMDM4LS4xMzFhNi4zMjQsNi4zMjQsMCwwLDAsLjY3NywxLjM2NWMuNTQ0LjY1OC45OTUsMi4wNzQuOCwxLjI3N2ExMS44NjcsMTEuODY3LDAsMCwwLDIuNTU0LDMuMjQ5QTM0LjQyMywzNC40MjMsMCwwLDAsMTgsMjYuMzY4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC44MjMsMi41NTdhLjI5MS4yOTEsMCwwLDAtLjA1MS0uMDIyYy0uMjIxLS4wNC0uNDI5LjE1My0uNjU0LjAzMi0uMTQ1LjA4NS0uMjU3LS4wMzYtLjM3NS0uMDczYS4yMjQuMjI0LDAsMCwwLS4yLjAxNCw1LjgyMyw1LjgyMywwLDAsMC0uODE0LjU4MiwxLjAzNywxLjAzNywwLDAsMC0uMjczLjQ0OWMtLjAyMS4wNDgtLjAzNy4xMjYuMDUuMTM3YTIuMywyLjMsMCwwLDAsLjY4Mi4wNDVjLjE3Ny0uMDI4LjI3Ny0uMTUyLjQxOC0uMjIxYTEuMiwxLjIsMCwwLDAsLjU5Mi0uNjhjLjA2NC0uMTc1LjE2MS0uMTY3LjI4LS4yUzEwLjcsMi42MiwxMC44MjMsMi41NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTEwLjMyNSwzLjA1OGwuMTIxLS4wODhhLjExNy4xMTcsMCwwLDEsLjEyLjA2NGMuMDQ0LjEuMTA2LjExMi4xOTMuMDQ3LjAzMy0uMDI1LjA3MS0uMDU4LjExOC0uMDI3YS4xMTkuMTE5LDAsMCwxLC4wNDEuMTI4LjI3Ni4yNzYsMCwwLDEtLjE4Ny4yNDguMjY2LjI2NiwwLDAsMS0uMy0uMDNDMTAuMzQxLDMuMzA4LDEwLjI2LDMuMiwxMC4zMjUsMy4wNThaXFxcIi8+XCIsXG5cdFwiQmF0Y2hcIjogXCI8cGF0aCBkPVxcXCJNMjkuNCwyNy42SDIuNVY0LjVIMjkuNFptLTI1LjktMUgyOC40VjUuNUgzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjA3NyAxOS4zMTYgNS41MjIgMTguNDg0IDEwLjM2NiAxNS4yNTUgNS40NzkgMTEuMTg0IDYuMTIgMTAuNDE2IDEyLjAzNSAxNS4zNDQgNi4wNzcgMTkuMzE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMTIuN1xcXCIgeT1cXFwiMTguMlxcXCIgd2lkdGg9XFxcIjcuOFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI1LjVcXFwiIHdpZHRoPVxcXCIyNi45XFxcIiBoZWlnaHQ9XFxcIjEuOVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPlwiLFxuXHRcIkMjXCI6IFwiPHRpdGxlPmZpbGVfdHlwZV9jc2hhcnA8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xOS43OTIsNy4wNzFoMi41NTNWOS42MjRIMjQuOVY3LjA3MWgyLjU1MlY5LjYyNEgzMHYyLjU1MmgtMi41NXYyLjU1MUgzMFYxNy4yOEgyNy40NDl2Mi41NTJIMjQuOXYtMi41NWwtMi41NSwwLDAsMi41NTJIMTkuNzkzdi0yLjU1bC0yLjU1MywwVjE0LjcyNWgyLjU1M1YxMi4xNzlIMTcuMjRWOS42MjJoMi41NTRabTIuNTUzLDcuNjU4SDI0LjlWMTIuMTc2SDIyLjM0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNjg4MzJcXFwiLz48cGF0aCBkPVxcXCJNMTQuNjg5LDI0LjAxM2ExMC4yLDEwLjIsMCwwLDEtNC42NTMuOTE1LDcuNiw3LjYsMCwwLDEtNS44OS0yLjMzNkE4LjgzOSw4LjgzOSwwLDAsMSwyLDE2LjM2Nyw5LjQzNiw5LjQzNiwwLDAsMSw0LjQxMiw5LjY0OGE4LjE4MSw4LjE4MSwwLDAsMSw2LjI1OS0yLjU3NywxMS4xLDExLjEsMCwwLDEsNC4wMTguNjM4djMuNzQ1YTYuODEsNi44MSwwLDAsMC0zLjcyMy0xLjAzNiw0Ljc5Myw0Ljc5MywwLDAsMC0zLjcsMS41MjksNS44NzksNS44NzksMCwwLDAtMS40MDcsNC4xNDIsNS43NzQsNS43NzQsMCwwLDAsMS4zMjgsMy45OTIsNC41NTEsNC41NTEsMCwwLDAsMy41NzUsMS40ODcsNy4yODgsNy4yODgsMCwwLDAsMy45MjctMS4xMDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzY4ODMyXFxcIi8+XCIsXG5cdFwiQ1wiOiBcIjx0aXRsZT5maWxlX3R5cGVfYzwvdGl0bGU+PHBhdGggZD1cXFwiTTEwLjY3NiwxNS45NzNhMTAuMDUyLDEwLjA1MiwwLDAsMCwxLjE3NSw1LjE1MSw1LjQ0Niw1LjQ0NiwwLDAsMCw2LjMwNiwyLjQwOCw0LjI4NCw0LjI4NCwwLDAsMCwzLjA5LTMuNmMuMTA3LS42LjEwOS0uNjEuMTA5LS42MSwxLjczNy4yNTEsNC41MzcuNjU4LDYuMjc0LjkwNmwtLjExLjQ0YTExLjI1NiwxMS4yNTYsMCwwLDEtMi43LDUuMzksOS40MzksOS40MzksMCwwLDEtNS4zNjYsMi42ODgsMTQuNjEsMTQuNjEsMCwwLDEtOC4yNzctLjgxOUExMC4xNTEsMTAuMTUxLDAsMCwxLDUuNCwyMS42ODdhMTYuMjI1LDE2LjIyNSwwLDAsMSwuMDE5LTExLjQ1LDEwLjUzOCwxMC41MzgsMCwwLDEsOC45NjMtNy4wNTQsMTMuMzUzLDEzLjM1MywwLDAsMSw2LjY2Ni41NTUsOS41NzEsOS41NzEsMCwwLDEsNi4xNjcsNi45Yy4wOTQuMzUyLjExNC40MTcuMTE0LjQxNy0xLjkzMi4zNTEtNC4zMTkuOC02LjIzOCwxLjIxNS0uMzYyLTEuOTE1LTEuMjY1LTMuNDI4LTMuMi0zLjlhNS4yNjMsNS4yNjMsMCwwLDAtNi42MTYsMy41NywxMC40OSwxMC40OSwwLDAsMC0uMzg1LDEuNDM5QTEyLjMxLDEyLjMxLDAsMCwwLDEwLjY3NiwxNS45NzNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1ZjkxXFxcIi8+XCIsXG5cdFwiQysrXCI6IFwiPHRpdGxlPmZpbGVfdHlwZV9jcHA8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNC43NDIsMjQuMDQ3YTEwLjI0MiwxMC4yNDIsMCwwLDEtNC42NzMuOTE5QTcuNjI4LDcuNjI4LDAsMCwxLDQuMTU1LDIyLjYyLDguODc2LDguODc2LDAsMCwxLDIsMTYuMzY5LDkuNDc2LDkuNDc2LDAsMCwxLDQuNDIyLDkuNjIxYTguMjE2LDguMjE2LDAsMCwxLDYuMjg1LTIuNTg4LDExLjE1MSwxMS4xNTEsMCwwLDEsNC4wMzUuNjQxdjMuNzYxQTYuODM5LDYuODM5LDAsMCwwLDExLDEwLjM5NSw0LjgxMyw0LjgxMywwLDAsMCw3LjI4OCwxMS45M2E1LjksNS45LDAsMCwwLTEuNDEzLDQuMTU5QTUuOCw1LjgsMCwwLDAsNy4yMDksMjAuMWE0LjU3LDQuNTcsMCwwLDAsMy41OSwxLjQ5Myw3LjMxOSw3LjMxOSwwLDAsMCwzLjk0My0xLjExM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ODRjOTNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjExMiAxNC44MjkgMTcuMTEyIDEyLjQ4NSAxOS40NTYgMTIuNDg1IDE5LjQ1NiAxNC44MjkgMjEuOCAxNC44MjkgMjEuOCAxNy4xNzIgMTkuNDU2IDE3LjE3MiAxOS40NTYgMTkuNTE1IDE3LjExMiAxOS41MTUgMTcuMTEyIDE3LjE3MiAxNC43NyAxNy4xNzIgMTQuNzcgMTQuODI4IDE3LjExMiAxNC44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ODRjOTNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjMxMyAxNC44MjkgMjUuMzEzIDEyLjQ4NSAyNy42NTcgMTIuNDg1IDI3LjY1NyAxNC44MjkgMzAgMTQuODI5IDMwIDE3LjE3MiAyNy42NTcgMTcuMTcyIDI3LjY1NyAxOS41MTUgMjUuMzEzIDE5LjUxNSAyNS4zMTMgMTcuMTcyIDIyLjk3MSAxNy4xNzIgMjIuOTcxIDE0LjgyOCAyNS4zMTMgMTQuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojOTg0YzkzXFxcIi8+XCIsXG5cdFwiQ2xvanVyZVwiOiBcIjxwYXRoIGQ9XFxcIk0xNiwyQTE0LDE0LDAsMSwwLDMwLDE2LDE0LjAxNiwxNC4wMTYsMCwwLDAsMTYsMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS40ODgsMTYuMjUyYy0uMTI2LjI3My0uMjY1LjU3OS0uNDA4LjlBMjIuOTYzLDIyLjk2MywwLDAsMCwxMy44LDIwLjYwNWE1LjE4MSw1LjE4MSwwLDAsMC0uMTE5LDEuMTU1YzAsLjE3NC4wMDkuMzU2LjAyNC41NDJhNi42NTgsNi42NTgsMCwwLDAsNC40MTMuMDY3LDMuOTY2LDMuOTY2LDAsMCwxLS40NC0uNDY2Yy0uOS0xLjE0Ni0xLjQtMi44MjctMi4xOTQtNS42NTJcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MWRjNDdcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTY5LDEwLjU1NmE2LjY3Nyw2LjY3NywwLDAsMC0uMDc3LDEwLjg4MWMuNDExLTEuNzEsMS40NC0zLjI3NiwyLjk4My02LjQxNS0uMDkyLS4yNTItLjItLjUyNy0uMzEzLS44MTdhMTAuMjA3LDEwLjIwNywwLDAsMC0xLjYtMi44ODIsNC40MzksNC40MzksMCwwLDAtMS0uNzY3XFxcIiBzdHlsZT1cXFwiZmlsbDojOTFkYzQ3XFxcIi8+PHBhdGggZD1cXFwiTTIxLjg0LDIzLjdhMTAuODc3LDEwLjg3NywwLDAsMS0yLjI1Ny0uNDcxQTguMDM2LDguMDM2LDAsMCwxLDEwLjcxNiw5Ljk4MmE1LjksNS45LDAsMCwwLTEuNC0uMTcxYy0yLjM1OC4wMjItNC44NDgsMS4zMjctNS44ODQsNC44NTJhNi42MDYsNi42MDYsMCwwLDAtLjA3NCwxLjM2MSwxMi42NDksMTIuNjQ5LDAsMCwwLDIzLDcuMjc0LDE0LjczNywxNC43MzcsMCwwLDEtMy40NDguNDU5QTguODgxLDguODgxLDAsMCwxLDIxLjg0LDIzLjdcXFwiIHN0eWxlPVxcXCJmaWxsOiM2M2IxMzJcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDYzLDIxLjI0NGEzLjUzLDMuNTMsMCwwLDAsLjUuMTcyQTYuNjksNi42OSwwLDAsMCwyMi43LDE2LjAyM2gwYTYuNjgxLDYuNjgxLDAsMCwwLTguNzktNi4zNDhjMS4zNTgsMS41NDgsMi4wMTEsMy43NjEsMi42NDMsNi4xODF2MHMuMi42NzMuNTQ3LDEuNTYyYTE1LjQzNCwxNS40MzQsMCwwLDAsMS4zNjMsMi43ODgsMi45MjQsMi45MjQsMCwwLDAsMSwxLjAzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzkwYjRmZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMTMsMy4zNzJBMTIuNjMyLDEyLjYzMiwwLDAsMCw1LjczMSw4LjY1NmE2LjQyNSw2LjQyNSwwLDAsMSwzLjQ4LTEuMDA5LDYuOCw2LjgsMCwwLDEsMy4xODIuNzcyYy4xMzQuMDc3LjI2MS4xNi4zODYuMjQ2YTguMDM4LDguMDM4LDAsMCwxLDExLjI3Myw3LjM1OGgwYTguMDEzLDguMDEzLDAsMCwxLTIuMzkxLDUuNzE5LDkuODcxLDkuODcxLDAsMCwwLDEuMTQzLjA2NCw2LjI0LDYuMjQsMCwwLDAsNC4wNTEtMS4yNjMsNS4zNDgsNS4zNDgsMCwwLDAsMS43LTIuOTA2QTEyLjYzMiwxMi42MzIsMCwwLDAsMTYuMDEzLDMuMzcyXFxcIiBzdHlsZT1cXFwiZmlsbDojNTg4MWQ4XFxcIi8+XCIsXG5cdFwiQ01ha2VcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCI5Ljk1NVxcXCIgeTE9XFxcIjkuMDk2XFxcIiB4Mj1cXFwiMTYuNjhcXFwiIHkyPVxcXCIyMy4zMjRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzEwMTFhMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY5NjllMVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMTYuMjMxXFxcIiB5MT1cXFwiMTkuNjU1XFxcIiB4Mj1cXFwiMjUuNjE4XFxcIiB5Mj1cXFwiMy43ODJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2I0MGUwZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmNTk1OVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiMjEuNjYzXFxcIiB5MT1cXFwiNC44MjNcXFwiIHgyPVxcXCI4LjM4MVxcXCIgeTI9XFxcIjUuOTM4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAzMilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwMWEzMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMwMWRmMDBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIjE0LjY0M1xcXCIgeTE9XFxcIjguMzY4XFxcIiB4Mj1cXFwiMTQuNDcyXFxcIiB5Mj1cXFwiMTQuMTQ1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAzMilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4NDg0ODRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNkMmQyZDJcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2NtYWtlPC90aXRsZT48cGF0aCBkPVxcXCJNMTcuMjU3LDE2LjkxOSwyLjI0NiwyOS43NDksMTUuOTk0LDIuMjgzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjI2MiwyOS43NjhsLS4wMzgtLjAzTDE2LjAxMiwyLjE5M2wuMDA4LjA4OEwxNy4yODMsMTYuOTNsLS4wMS4wMDhaTTE1Ljk3NywyLjM3NCwyLjMyNCwyOS42NDksMTcuMjMsMTYuOTA4WlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45NTIsMjQuOTMxLDE2LDIuMjgsMjkuNzY3LDI5Ljc1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjkuODE4LDI5LjhsLS4wNjEtLjAyNUwxNy45MjksMjQuOTQ4bDAtLjAxNUwxNS45NzUsMi4yODJsLjA0Ny0uMDEzWk0xNy45NzYsMjQuOTEzLDI5LjcxNSwyOS43LDE2LjAzNiwyLjQwOFpcXFwiLz48cGF0aCBkPVxcXCJNMTEuMTYsMjIuMDk0bDE4LjYyMSw3LjY1NEgyLjI1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS43ODEsMjkuNzczSDIuMTgzbC4wNTEtLjA0NCw4LjkyMS03LjY2NS4wMTQuMDA2LDE4LjYyMiw3LjY1NVptLTI3LjQ2NC0uMDVIMjkuNjU0bC0xOC40ODktNy42WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4xODksMjIuMTEybDYuMDU5LTUuMTY4Ljg0Myw3Ljk4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4xNDksMjVsLS4wNzctLjAzMi02Ljk3OC0yLjg0Miw2LjE5NC01LjI4My4wMS4wOTRabS02Ljg2NS0yLjksNi43NDgsMi43NDktLjgyNC03LjhaXFxcIi8+PHBhdGggZD1cXFwiTTI5LjcsMjkuOTExSDIuMjg1YS4yMjEuMjIxLDAsMCwxLS4xODItLjA4OC4yMjIuMjIyLDAsMCwxLC4wMjItLjJMMTUuODY0LDIuMTg3YS4xNjkuMTY5LDAsMCwxLC4xNC0uMWgwYS4xNTQuMTU0LDAsMCwxLC4xMy4wODVMMjkuODY3LDI5LjYwN2EuMjM4LjIzOCwwLDAsMSwuMDIuMjI2QS4yMTEuMjExLDAsMCwxLDI5LjcsMjkuOTExWm0tMjcuNDY4LS4xNmEuNDg0LjQ4NCwwLDAsMCwuMDU3LjAxMWgyNy40bC4wNzMtLjAwOWEuMjIxLjIyMSwwLDAsMC0uMDI4LS4wNzdMMTYsMi4yNDgsMTYsMi4yNiwyLjI2MSwyOS42ODRhLjI3OS4yNzksMCwwLDAtLjAyNS4wNjdaXFxcIi8+XCIsXG5cdFwiQ09CT0xcIjogXCI8cGF0aCBkPVxcXCJNMjIuMjQsNi41NDZhNC40NDksNC40NDksMCwwLDAsMS43NjUtMi41MjIsNC42MzYsNC42MzYsMCwwLDEtLjAxOCwyLjE1N2MtLjIyMy41ODItLjU2NywxLjEwNy0uODM0LDEuNjY5YTIxLjc3MiwyMS43NzIsMCwwLDEsNC41NTktMi45MzhDMjcuMjMsNi40LDI1Ljg5MSw3LjMsMjQuOTA3LDguNDQyYy4xOS40MDkuMjguOTg5LjgsMS4xMDlhNS4wMzYsNS4wMzYsMCwwLDAsMi41LjE1NWMuOTEyLS4zMTMsMS4zNDUtMS4yNTgsMS44LTIuMDM1VjkuMTRhMTUuNzM4LDE1LjczOCwwLDAsMS0uNTgyLDEuNzQ4Yy4yLjU0Ny40MDksMS4wOTIuNTgyLDEuNjQ3di45NTJjLS4yMTQuMzY4LS40NDIuNzI2LS42NjMsMS4wODlhNS4yOTMsNS4yOTMsMCwwLDAtMS4wNjgtMS4xNjIsNC4wMyw0LjAzLDAsMCwwLTEuODUxLS4xMjUsMy4yMTIsMy4yMTIsMCwwLDAsMi40MTMsMS40N2MtLjM1OS4zNy0uNjYzLjkxMi0xLjIzLjk2OS0xLjY0MS4yNDctMy4yMDctLjUwNS00LjgzOS0uNS0uMjgyLjAyLS43MDcuMDI0LS43ODUuMzcyLDAsLjczNS4yMTcsMS40NTMuMTksMi4xODgtLjA1OSwxLjI1OC0uNTEyLDIuNDY2LS41MjksMy43MjZhMTMuNzg1LDEzLjc4NSwwLDAsMCwuODM4LDMuNDQ4Yy0uNTIzLS4wNzctMS4wNDQtLjE2Ni0xLjU2Mi0uMjYtLjEuMjA4LS4xODQuNDItLjI2LjYzNEE0LjUxNCw0LjUxNCwwLDAsMCwyMS44LDI2LjUzMWMtLjA2MS4xMjctLjE4Mi4zODEtLjI0MS41MDhsLS41NzMuMTM4Yy0uMTMxLjI0Ny0uMjYzLjQ5Mi0uNC43MzlhNC40MjEsNC40MjEsMCwwLDAtMi4yLjA2MWMtLjQ2Ni0uMTg2LS45MjgtLjM3Ni0xLjM4OS0uNTY3YTUuOTM5LDUuOTM5LDAsMCwwLC40MDctMi4zMTVjLS4yODItLjk4Mi0xLjYtLjk4NC0yLTEuODc3YTYuMjMzLDYuMjMzLDAsMCwxLTEuMDIyLTIuODUxYy0uODIzLS40MzMtMS40NTUtMS4yMjEtMi40LTEuNC0uMDQ4LjQwOS0uMDgzLjgyLS4xNTMsMS4yMjdBNi4wMTUsNi4wMTUsMCwwLDEsMTAuNDgxLDIyLjZjLjAzOS40MjIuMDc5Ljg0Mi4xMiwxLjI2NS4zNDYuMzI0LjY5MS42NDgsMS4wMzMuOTc0YTkuNzUyLDkuNzUyLDAsMCwxLTEuNDI2LjcxMywxMS4xMTQsMTEuMTE0LDAsMCwxLTEuNjg3LjA3N2MtLjI1OC0uMjU0LS41MTgtLjUwOC0uNzc3LS43NjRhNC44NzEsNC44NzEsMCwwLDAsLjExNC0yLjYwOGMuMTcxLS40LjMyNi0uODEyLjQ3NS0xLjIyMWE1LjU2NSw1LjU2NSwwLDAsMS0zLjAxLjIwNiw1LjEyLDUuMTIsMCwwLDEtMy4yOS00LjMzLDMuODU5LDMuODU5LDAsMCwxLDEuNDA3LTMuMjY4QTYuNDEsNi40MSwwLDAsMCwzLjIsMTYuMjU5YTMuMDM4LDMuMDM4LDAsMCwwLDIuNSwyLjQ2NiwzLjQ2MiwzLjQ2MiwwLDAsMCwxLjk2LS42NDMsNy40OCw3LjQ4LDAsMCwxLC4zNjMtNC4xMzMsNS41MjQsNS41MjQsMCwwLDEsMy41ODYtMi42Niw0LjIzNSw0LjIzNSwwLDAsMCwyLjAxMS0xLjU2NiwxMC42NywxMC42NywwLDAsMSwxLjUyOS0xLjMzYy0uMjI4LS4yMTktLjQ1My0uNDQtLjY4LS42NTlBMi4xNTQsMi4xNTQsMCwwLDAsMTUuOSw2LjAyM2MxLjI4NC0uMywyLjU1MS0uNjYxLDMuODItMS4wMTFhMy43OTMsMy43OTMsMCwwLDAsMS40MTUuNjA2Yy4zMTcuMzQ2LjQ5NCwxLjE1NywxLjEuOTI4TTE4LjQ1OCwxOS45MDhjLjA0Mi43NjgtLjA0OCwxLjY2NS42NzQsMi4xNTUsMC0uNzU1LS4wNDYtMS41MDctLjEtMi4yNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDVjYTVcXFwiLz5cIixcblx0XCJDb2ZmZWVTY3JpcHRcIjogXCI8cGF0aCBkPVxcXCJNMTMuMTE0LDUuNzI4Yy4wMjUuMTUzLS4wNTEuMjgtLjMwNi40MDhhMy40NTcsMy40NTcsMCwwLDAtMS42My0uMjI5Yy0uNjM3LjA1MS0xLjE3Mi4yNTUtMS4xLjY4OC4xLjQzMy43MTMuNjg4LDEuODA4LjU4NiwyLjY3NC0uMjI5LDIuNjQ5LTIuMDM4LDYuNTcxLTIuMzk0LDMuMDU2LS4yOCw0Ljc2My42NjIsNC45OTIsMS44MDguMTc4Ljg5MS0uNTYsMS43NTctMi43NzYsMS45MzYtMS45NjEuMTc4LTMuMTA3LS4zNTctMy4yMDktLjg5MS0uMDUxLS4yOC4xLS42ODgsMS4wNDQtLjc5LjEuNDMzLjYzNy44OTEsMS45MS43NjRDMjEuMzQxLDcuNTM2LDIyLjEsNy4yLDIyLDYuN2MtLjEtLjUzNS0xLjA3LS44NC0yLjYtLjcxMy0zLjEwNy4yOC0zLjg3MSwxLjk4Ny02LjUyLDIuMjE2QzExLDguMzc2LDkuNDcyLDcuNjg5LDkuMjY4LDYuNjdjLS4wNzYtLjM4Mi0uMDc2LTEuMjczLDEuOTEtMS40NTIsMS4wMTktLjA3NiwxLjgzNC4xLDEuOTM2LjUwOVpNMy4xODEsMTYuMzc0QTUuMjc5LDUuMjc5LDAsMCwwLDIuMDEsMTkuOTlhNC4yMDYsNC4yMDYsMCwwLDAsMS42NTUsMy4wNTYsNCw0LDAsMCwwLDMuMzYyLjc5LDExLjQzNCwxMS40MzQsMCwwLDAsMS41LS40ODQsNC4yMzgsNC4yMzgsMCwwLDEtMi43NTEtMS4wMTksNC4xMyw0LjEzLDAsMCwxLTEuNzMyLTIuODI3QTMuNzksMy43OSwwLDAsMSw0LjY1OCwxNi41LDMuOTc3LDMuOTc3LDAsMCwxLDcuNDA5LDE1YTQuODA2LDQuODA2LDAsMCwxLDMuMjA5Ljk0Miw2Ljk1LDYuOTUsMCwwLDAtLjg2Ni0uODY2LDQuMSw0LjEsMCwwLDAtMy40NjQtLjY4OCw1LjIsNS4yLDAsMCwwLTMuMTA3LDEuOTg3Wk0xNi44MzMsMTAuNDlBNDAuODM3LDQwLjgzNywwLDAsMSw4LjUsOS43QzYuMjM3LDkuMTQsNS4wNCw4LjUyOSw1LjA0LDcuNzRjMC0uMzMxLjE1My0uNjExLjYxMS0uOTQyLTEuNDI2LjU2LTIuMTksMS4wMTktMi4xOSwxLjczMi4wNzYuNzksMS4zNSwxLjU3OSwzLjk0OCwyLjE5YTM5LjQ0MywzOS40NDMsMCwwLDAsOS4zNDcuOTQyQTM4Ljk5MywzOC45OTMsMCwwLDAsMjYuMSwxMC43MmMyLjYtLjYxMSwzLjg0Ni0xLjQyNiwzLjg0Ni0yLjE5LDAtLjU2LS41Ni0xLjEtMS41NzktMS41YS44NjIuODYyLDAsMCwxLC40MDguNjg4YzAsLjc5LTEuMTcyLDEuNDI2LTMuNTQsMS45NjFBMzkuMzI0LDM5LjMyNCwwLDAsMSwxNi44MzMsMTAuNDlabTkuMzczLDIuMTlhNDIuMzE1LDQyLjMxNSwwLDAsMS05LjM0Ny45NDIsNDQuMTQ0LDQ0LjE0NCwwLDAsMS05LjQyNC0uOTQyYy0yLjE5LS41Ni0zLjM2Mi0xLjE3Mi0zLjc2OS0xLjgwOGEyMy4xODYsMjMuMTg2LDAsMCwwLDIuNiw3LjY0MWMuOTQyLDEuNDI2LDEuODg1LDIuNjc0LDIuODI3LDQuMDI0YTkuODgzLDkuODgzLDAsMCwxLC44NjYsMi4zNjksNC41NTksNC41NTksMCwwLDAsMi42LDEuNzMyLDEwLjYxMSwxMC42MTEsMCwwLDAsNC4xNzcuNjExaC4xNTNhMTEuODM5LDExLjgzOSwwLDAsMCw0LjMtLjYxMSw0Ljg2OSw0Ljg2OSwwLDAsMCwyLjUyMS0xLjczMmguMDc2YTkuNTkyLDkuNTkyLDAsMCwxLC43OS0yLjM2OWMuOTQyLTEuMzUsMS44ODUtMi42LDIuODI3LTQuMDI0QTI0LjYyLDI0LjYyLDAsMCwwLDMwLDEwLjg3MkMyOS40OTEsMTEuNTg1LDI4LjMxOSwxMi4yLDI2LjIwNSwxMi42ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojNmY0ZTM3XFxcIi8+XCIsXG5cdFwiQ3J5c3RhbFwiOiBcIjxwYXRoIGQ9XFxcIk0yOS45NDEsMTkuODE2LDE5LjgsMjkuOTI4Yy0uMDI4LjAyOC0uMDg1LjAyOC0uMTY5LjAyOEw1LjgsMjYuMjY3Yy0uMDI4LDAtLjA4NC0uMDI4LS4xMTMtLjExM0wyLDEyLjM1MmEuNDE5LjQxOSwwLDAsMSwuMDI4LS4xNjlMMTIuMTY4LDIuMDcyYy4wMjgtLjAyOC4wODQtLjAyOC4xNjktLjAyOGwxMy44MywzLjcxOGMuMDI4LDAsLjA4NC4wMjguMTEzLjExM2wzLjY5LDEzLjhDMzAuMDI2LDE5LjczMiwzMCwxOS43ODgsMjkuOTQxLDE5LjgxNlpNMTYuMzkzLDguODMyLDIuODE3LDEyLjQ5M3EtLjA0MiwwLDAsLjA4NEwxMi43NiwyMi41MmMuMDI4LjAyOC4wMjgsMCwuMDg0LDBMMTYuNTA2LDguOTcyQzE2LjQ0OSw4LjgzMiwxNi4zOTMsOC44MzIsMTYuMzkzLDguODMyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2M4YzhjOFxcXCIvPlwiLFxuXHRcIkNTU1wiOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiNS45MDIgMjcuMjAxIDMuNjU2IDIgMjguMzQ0IDIgMjYuMDk1IDI3LjE5NyAxNS45ODUgMzAgNS45MDIgMjcuMjAxXFxcIiBzdHlsZT1cXFwiZmlsbDojMTU3MmI2XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAyNy44NTggMjQuMTcgMjUuNTkzIDI2LjA5MiA0LjA2MSAxNiA0LjA2MSAxNiAyNy44NThcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDEzLjE5MSAyMC4wOSAxMy4xOTEgMjAuMzcyIDEwLjAyNiAxNiAxMC4wMjYgMTYgNi45MzUgMTYuMDExIDYuOTM1IDIzLjc1IDYuOTM1IDIzLjY3NiA3Ljc2NCAyMi45MTcgMTYuMjgyIDE2IDE2LjI4MiAxNiAxMy4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2LjAxOSAyMS4yMTggMTYuMDA1IDIxLjIyMiAxMi41NjMgMjAuMjkyIDEyLjM0MyAxNy44MjcgMTAuNjcgMTcuODI3IDkuMjQgMTcuODI3IDkuNjczIDIyLjY4IDE2LjAwNCAyNC40MzggMTYuMDE5IDI0LjQzNCAxNi4wMTkgMjEuMjE4XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOS44MjcgMTYuMTUxIDE5LjQ1NSAyMC4yOSAxNi4wMDggMjEuMjIgMTYuMDA4IDI0LjQzNiAyMi4zNDQgMjIuNjggMjIuMzkxIDIyLjE1OCAyMi45MjggMTYuMTUxIDE5LjgyNyAxNi4xNTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2LjAxMSA2LjkzNSAxNi4wMTEgOC44NTUgMTYuMDExIDEwLjAxOCAxNi4wMTEgMTAuMDI2IDguNTU1IDEwLjAyNiA4LjU1NSAxMC4wMjYgOC41NDUgMTAuMDI2IDguNDgzIDkuMzMxIDguMzQyIDcuNzY0IDguMjY4IDYuOTM1IDE2LjAxMSA2LjkzNVxcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMTMuMTkxIDE2IDE1LjExMSAxNiAxNi4yNzQgMTYgMTYuMjgyIDEyLjYxMSAxNi4yODIgMTIuNjExIDE2LjI4MiAxMi42MDEgMTYuMjgyIDEyLjUzOSAxNS41ODcgMTIuMzk5IDE0LjAyIDEyLjMyNSAxMy4xOTEgMTYgMTMuMTkxXFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+XCIsXG5cdFwiQ1NWXCI6IFwiPHBhdGggZD1cXFwiTTIyLjAzOCwySDYuMzc1YTEuNzU1LDEuNzU1LDAsMCwwLTEuNzUsMS43NXYyNC41QTEuNzU1LDEuNzU1LDAsMCwwLDYuMzc1LDMwaDE5LjI1YTEuNzU1LDEuNzU1LDAsMCwwLDEuNzUtMS43NVY2Ljg1NlptLjUyNSwyLjg0NCwxLjY2MywxLjUzMUgyMi41NjNaTTYuMzc1LDI4LjI1VjMuNzVIMjAuODEzVjguMTI1aDQuODEzVjI4LjI1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxNS4wOTdcXFwiIHdpZHRoPVxcXCIxMy4wNzZcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIyNC40MzlcXFwiIHdpZHRoPVxcXCI5Ljc2MlxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjE5Ljc2M1xcXCIgd2lkdGg9XFxcIjE1Ljc1XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTAuMjNcXFwiIHdpZHRoPVxcXCIxNS43NVxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+XCIsXG5cdFwiRFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE4NS40NTVcXFwiIHkxPVxcXCIxNjAxLjY0MVxcXCIgeDI9XFxcIjE4MS45NTVcXFwiIHkyPVxcXCIxNjMwLjIyNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNjIuNTIzIC02NjYuNjQ2KSBzY2FsZSgwLjQyNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMTc2LjEzNlxcXCIgeTE9XFxcIjE2MDAuNVxcXCIgeDI9XFxcIjE3Mi42MzZcXFwiIHkyPVxcXCIxNjI5LjA4M1xcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9kbGFuZzwvdGl0bGU+PHBhdGggZD1cXFwiTTMuOTc4LDE1LjQ2MiwzLjk2OSw4LjUwOUEuNTg4LjU4OCwwLDAsMSw0LjUsNy45NDdhLjY1OC42NTgsMCwwLDEsLjA3NiwwbDYuMDc0LS4wMDlhMTUuNywxNS43LDAsMCwxLDYuMDY3Ljk1LDguOSw4LjksMCwwLDEsMi4yNDQsMS4zNTksNC40NjksNC40NjksMCwwLDEsMi45NDYtMS4wODMsNC4xMSw0LjExLDAsMCwxLDQuMjc2LDMuOTJBNC4xMSw0LjExLDAsMCwxLDIxLjkwNywxN2MtLjA4OSwwLS4xNzctLjAwOC0uMjY1LS4wMTJhNi42MTcsNi42MTcsMCwwLDEtLjIzMi45NTMsODUuMzgzLDg1LjM4MywwLDAsMSw4LjU5LDIuNlYySDJWMTUuNFEyLjk5MiwxNS40MiwzLjk3OCwxNS40NjJabTIyLjgtNy45NDRhMS4zMiwxLjMyLDAsMCwxLDEuMzc0LDEuMjU5LDEuMzc5LDEuMzc5LDAsMCwxLTIuNzQ3LDBBMS4zMiwxLjMyLDAsMCwxLDI2Ljc4LDcuNTE3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2IwMzkzMVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44NjEsMTUuNzg3YTQuMTE0LDQuMTE0LDAsMCwwLTEuNzQ4LTMuNDU4LDUuODE0LDUuODE0LDAsMCwwLTEuNTA4LS44MjIsNy4zNTQsNy4zNTQsMCwwLDAtMS42MjktLjQzOCwyMS42MjksMjEuNjI5LDAsMCwwLTIuNTg4LS4xbC0yLjYxOSwwLC4wMDYsNC43MzdhODguODI3LDg4LjgyNywwLDAsMSw5LjkxLDEuNDA4QTQuOTE5LDQuOTE5LDAsMCwwLDE3Ljg2MSwxNS43ODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjAzOTMxXFxcIi8+PHBhdGggZD1cXFwiTTIwLjk5MywxOC45NzlhNy45MDYsNy45MDYsMCwwLDEtMi4xMjgsMi41ODIsOS43MzksOS43MzksMCwwLDEtMy4yNTYsMS43MSwxMS41NTgsMTEuNTU4LDAsMCwxLTEuOTcxLjQ3MmgtLjAxNWEzMS44NTcsMzEuODU3LDAsMCwxLTMuMzI2LjExMWwtNS42MjUuMDIyYS42MTYuNjE2LDAsMCwxLS42ODYtLjY4MWwtLjAxLTcuNzM0UTIuOTkyLDE1LjQyLDIsMTUuNFYzMEgzMFYyMC41NDRhODUuMzgzLDg1LjM4MywwLDAsMC04LjU5LTIuNkE2Ljk4NSw2Ljk4NSwwLDAsMSwyMC45OTMsMTguOTc5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2IwMzkzMVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45OTMsMTguOTc5YTcuOTA2LDcuOTA2LDAsMCwxLTIuMTI4LDIuNTgyLDkuNzM5LDkuNzM5LDAsMCwxLTMuMjU2LDEuNzEsMTEuNTU4LDExLjU1OCwwLDAsMS0xLjk3MS40NzJoLS4wMTVhMzEuODU3LDMxLjg1NywwLDAsMS0zLjMyNi4xMTFsLTUuNjI1LjAyMmEuNjE2LjYxNiwwLDAsMS0uNjg2LS42ODFsLS4wMS03LjczNFEyLjk5MiwxNS40MiwyLDE1LjRWMzBIMzBWMjAuNTQ0YTg1LjM4Myw4NS4zODMsMCwwLDAtOC41OS0yLjZBNi45ODUsNi45ODUsMCwwLDEsMjAuOTkzLDE4Ljk3OVpcXFwiIHN0eWxlPVxcXCJvcGFjaXR5OjAuMzAwMDAwMDExOTIwOTI5O2lzb2xhdGlvbjppc29sYXRlO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40NzcsMjAuODM1YTE2LjAxNCwxNi4wMTQsMCwwLDAsMi44NzctLjIsNy42MzMsNy42MzMsMCwwLDAsMS42MjgtLjUsNS42MjgsNS42MjgsMCwwLDAsMS4xODctLjc0OCw0LjQ1Nyw0LjQ1NywwLDAsMCwxLjUxOC0yLjI3MSw4OC42OTEsODguNjkxLDAsMCwwLTkuOTEtMS40MDhsLjAwNiw1LjEzM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMDM5MzFcXFwiLz48cGF0aCBkPVxcXCJNMTAuNDc3LDIwLjgzNWExNi4wMTQsMTYuMDE0LDAsMCwwLDIuODc3LS4yLDcuNjMzLDcuNjMzLDAsMCwwLDEuNjI4LS41LDUuNjI4LDUuNjI4LDAsMCwwLDEuMTg3LS43NDgsNC40NTcsNC40NTcsMCwwLDAsMS41MTgtMi4yNzEsODguNjkxLDg4LjY5MSwwLDAsMC05LjkxLTEuNDA4bC4wMDYsNS4xMzNaXFxcIiBzdHlsZT1cXFwib3BhY2l0eTowLjMwMDAwMDAxMTkyMDkyOTtpc29sYXRpb246aXNvbGF0ZTtmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjAuMzgzLDExLjc0NmE2Ljk5Myw2Ljk5MywwLDAsMSwxLjM2LDQuMTQ4LDYuNjE4LDYuNjE4LDAsMCwxLS4xLDEuMWMuMDg4LDAsLjE3Ni4wMTIuMjY1LjAxMmE0LjExLDQuMTEsMCwwLDAsNC4yNzYtMy45Miw0LjExLDQuMTEsMCwwLDAtNC4yNzYtMy45Miw0LjQ3LDQuNDcsMCwwLDAtMi45NDYsMS4wODNBOC4xMjMsOC4xMjMsMCwwLDEsMjAuMzgzLDExLjc0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMjYuNzhcXFwiIGN5PVxcXCI4Ljc3N1xcXCIgcng9XFxcIjEuMzc0XFxcIiByeT1cXFwiMS4yNTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNC42NzMsMjMuODc3bDUuNjI1LS4wMjJhMzEuODcxLDMxLjg3MSwwLDAsMCwzLjMyNi0uMTExaC4wMTVhMTEuNDksMTEuNDksMCwwLDAsMS45NzEtLjQ3Miw5LjczOSw5LjczOSwwLDAsMCwzLjI1Ni0xLjcxLDcuOTA2LDcuOTA2LDAsMCwwLDIuMTI4LTIuNTgyLDYuOTg1LDYuOTg1LDAsMCwwLC40MTctMS4wMzQsNy4wNTYsNy4wNTYsMCwwLDAsLjMzMi0yLjA1MSw2Ljk5Miw2Ljk5MiwwLDAsMC0xLjM2LTQuMTQ4LDguMSw4LjEsMCwwLDAtMS40MjEtMS41LDguODc4LDguODc4LDAsMCwwLTIuMjQ0LTEuMzU5LDE1LjY4NiwxNS42ODYsMCwwLDAtNi4wNjctLjk1bC02LjA3NC4wMDlhLjY1OC42NTgsMCwwLDAtLjA3NiwwLC41ODguNTg4LDAsMCwwLS41MzIuNTYybC4wMDksNi45NTIuMDEsNy43MzRBLjYxNi42MTYsMCwwLDAsNC42NzMsMjMuODc3Wm0zLjEtMTIuOTA4LDIuNjE5LDBhMjEuNjIzLDIxLjYyMywwLDAsMSwyLjU4OC4xLDcuMzU0LDcuMzU0LDAsMCwxLDEuNjI5LjQzOCw1LjgxNCw1LjgxNCwwLDAsMSwxLjUwOC44MjIsNC4xMTYsNC4xMTYsMCwwLDEsMS43NDgsMy40NTgsNC45MDUsNC45MDUsMCwwLDEtLjE3NSwxLjMyNyw0LjQ1Nyw0LjQ1NywwLDAsMS0xLjUxOCwyLjI3MSw1LjYxMyw1LjYxMywwLDAsMS0xLjE4Ny43NDgsNy42NjYsNy42NjYsMCwwLDEtMS42MjguNSwxNi4wMDksMTYuMDA5LDAsMCwxLTIuODc3LjJsLTIuNjk0LDAtLjAwNi01LjEzM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJEYXJ0XCI6IFwiPHBhdGggZD1cXFwiTTE2LjczOSwyLjAzN2ExLjMxNCwxLjMxNCwwLDAsMC0uOTE2LjM3N2wtLjAxMy4wMUw3LjIyLDcuMzg5bDguNTY2LDguNTY2di4wMDZsMTAuMywxMC4zLDEuOTYzLTMuNTM2TDIwLjk2OCw1LjcyOGwtMy4zLTMuM2ExLjMwNywxLjMwNywwLDAsMC0uOTI3LS4zODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjZjM2ZhXFxcIi8+PHBhdGggZD1cXFwiTTcuMjUsNy4zNSwyLjI4OCwxNS45MzFsLS4wMS4wMTNhMS4zMjIsMS4zMjIsMCwwLDAtLjM3OC45MTksMS4zLDEuMywwLDAsMCwuMzg3LjkyNEw2LjQsMjEuOWwxNi4wODQsNi4zMjcsMy42MzYtMi4wMi0uMS0uMS0uMDI1LDAtMTAuMDgzLTEwLjFIMTUuOUw3LjI1LDcuMzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjE1ODk2XFxcIi8+PHBhdGggZD1cXFwiTTcuMTkyLDcuMzYybDguNzY0LDguNzczaC4wMTNsMTAuMDg3LDEwLjEsMy44MzktLjczMkwyOS45LDE0LjE0bC00LjA1NC0zLjk3M2E2LjUyMSw2LjUyMSwwLDAsMC0zLjYyNC0xLjYxNmwwLS4wNDRMNy4xOTIsNy4zNjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjM1OTk3XFxcIi8+PHBhdGggZD1cXFwiTTcuMjU2LDcuNDExbDguNzY4LDguNzY4di4wMTNMMjYuMTE2LDI2LjI4NGwtLjczNCwzLjgzOUgxNC4wMjJsLTMuOTcxLTQuMDU2YTYuNTIyLDYuNTIyLDAsMCwxLTEuNjE0LTMuNjI1bC0uMDQ0LDBMNy4yNTYsNy40MTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojNThiNmYwXFxcIi8+XCIsXG5cdFwiRGhhbGxcIjogXCI8cGF0aCBkPVxcXCJNMTYsMi4wN0ExMy45MywxMy45MywwLDEsMSwyLDE2LDEzLjkzLDEzLjkzLDAsMCwxLDE2LDIuMDdaTTEzLjI4LDIyLjMyYTEuNDksMS40OSwwLDEsMS0xLDEuODNBMS40OSwxLjQ5LDAsMCwxLDEzLjI4LDIyLjMyWm04LTE1LjY4YS41My41MywwLDAsMSwuMzguNjYuNTIuNTIsMCwwLDEtLjY1LjM4bC0uNS0uMTNhNDIuNjcsNDIuNjcsMCwwLDAtLjM3LDcuMDdDMTguMDYsMTYuNDUsMTQuMzksMjIsMTQuMzksMjJsMS45My03LjE4YTEsMSwwLDAsMCwuODktLjY1LjkxLjkxLDAsMCwwLTEuNzUtLjQ3LDEsMSwwLDAsMCwuNDUsMUwxNCwyMS44NWE2OC4zOCw2OC4zOCwwLDAsMC0xLjM0LTkuMjUsMzQuMjgsMzQuMjgsMCwwLDAsMy4yMS02LjMxbC0uNS0uMTNBLjU1LjU1LDAsMCwxLDE1LDUuNWEuNTMuNTMsMCwwLDEsLjY2LS4zOGw1LjY4LDEuNTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjdiN2I3O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdFwiRGlmZlwiOiBcIjxyZWN0IHg9XFxcIjYuOTc1XFxcIiB5PVxcXCIzXFxcIiB3aWR0aD1cXFwiMTguMDVcXFwiIGhlaWdodD1cXFwiNi4wMTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMDAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMTIuOTkyLDEwLjk1djYuMDE3SDYuOTc1djYuMDE3aDYuMDE3VjI5aDYuMDE3VjIyLjk4M2g2LjAxN1YxNi45NjdIMTkuMDA4VjEwLjk1WlxcXCIgc3R5bGU9XFxcImZpbGw6Z3JlZW5cXFwiLz5cIixcblx0XCJEamFuZ28vSmluamEyXCI6IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiMTZcXFwiIGN5PVxcXCItMTE5LjI4M1xcXCIgcj1cXFwiMTMuNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMC45NDUsIDAsIC05Ni43MzUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTc1NzU3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMmYyZjJmXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9qaW5qYTwvdGl0bGU+PHBhdGggZD1cXFwiTTI5LjM0LDMuMjQxYTM4LjI3MSwzOC4yNzEsMCwwLDEtOS40NTEsMy4wNGMtNC4yNDEuNTUtMTIuMzI5LDEuMS0xMy45MzUuNzEyQTIzLjMsMjMuMywwLDAsMSwzLjIsNi4xNTFsLjMzNCwxLjEzMkwyLjUsOC4xODhsLjE4My4zMjMuNDI0LjAzMiwxLjMuMTYyLjE4My41ODIuNzI3LjA2Ni4zNjQsMS4yMjhzMS41NDQuMTMsMiwuMTMsMS4zNjMtLjA2NCwxLjM2My0uMDY0bC4wMy40ODUuMzM0LjA2NHYuNTVsLS43MjguNjQ4LjE4My4wMzJ2LjIyNWExNS44MTYsMTUuODE2LDAsMCwxLTIuMy4wMzRjLS42NjYtLjEtLjc4OC0uMS0uNzg4LS4xbC0uMDYuMDY0LS4wMy4yOTFoLjE1MWwuMDYsMS4yNjIsMy4zNjMtLjEzLS4yNDMsNC4zNjUtLjAzLjU0OS0yLjg0OC0uMTYyLS4wMy0xLjE2NGguNjM1bC4wNjEtLjQ1My41NzUtLjEzLjA5MS0uMTI4LTIuMTUxLS41MTgtMS42MzYuNDg1LjI3My4yMjdoLjI3M2wuMDMuMzg5LjU3NS4wMzJWMTguN2wtLjYzNS4xNjIuMTIxLjI1Ny4xNTEuMXYuODczaC4zOTR2NC4wNDFsLS42MzcuMS4wOTEsMS4xNjQuMzkzLjA2Ni0uMDYsMi42NTEsMS43MjcuMDMyLS4zNjQtMi42MTksMi42MDUtLjA2NC0uMTgxLDEuNDIyLS4yNDMsMSwyLjYzNS4wMzIuMDMtMi41ODYsMS44MTctLjE2Mi0uMDksMS42NDktLjA2MS45NjloMS41NDZsLS4wNjEtMi42NTEuMjEzLjAzNC4wNi0xLjI2MmgtLjI0M2wtLjA5LS41MThMMTMuOCwyMS45bC4wNi0xLjcxM2guMzMzVjE5LjE0OWwtLjQyNC4wMzIuMDYxLTEuMjIuNDkzLS4wNDkuMDIzLS40LjI4LS4wNDEuMjg3LS4yMThMMTMuMTg3LDE2LjlsLTEuNzEyLjM3OS4xNjcuMjc0LjE4MS0uMDE1LjIxMS0uMDA4LjAzOS41LjQ3Ny0uMDIzLjAwOSwxLjA4Mi0yLjA1My0uMDQ3LjA2OS0xLjE1Ni4wNjctMS4wNTFWMTUuNDU1TDEwLjcsMTRsNC4xMTEtLjIxLDQuODkyLS4yODIuMDQ2LjkyOS0uMTc0LDIuMjMxTDE5LjUsMTguNzQ0bC0xLjgtLjAzMi0uMDA5LTEuNDU1LjY2Ny0uMDI0LjAzLS40MTEuMjczLS4wNDEtLjAxNC0uMDgxLjI3My0uMDE1LjE1MS0uMkwxNy4wMzQsMTYsMTUsMTYuNDRsLjE0NC4yNTEuMjI3LS4wMTd2LjExNGguMjh2LjQ2bC42LjAwOC0uMDA3LDEuMjc3aC0uNjA1bC0uMDA5LjI5MS4yMTMuMDI0LS4wMjMsMS4xMDguNDQ3LjAyNC0uMDUzLDQuMzktLjU5MS4xMi4wMDcuMjFoLjIwNnYxLjEyNGguMzRsLS4wOSwxLjUzNkwxNS45NzQsMjguN2wyLjE1MS4wNTYtLjA2OS0xLjE2NC0uMTU4LS45NjktLjAzMS0uODQxLDEuODI2LS4wMzItLjA1MywxLjMtLjAwOSwxLjM3NCwxLjAzMS4wODEsMS40LS4wNTYuNDQtLjEzLS4yNDMtLjczNi0uMDYtMS4xNTYtLjExNC0uODI0LDEuNzQyLS4wNjQtLjA3NiwxLjAxLS4wMDcsMS41ODUuNy4wNjQuNjktLjAxNS4zMzMtLjEwNS0uMi0xLjVMMjUuMiwyNS40NDVsLjMtLjAzMkwyNS41LDI0LjRsLjA4My0uMDE3LS4wMTQtLjIxOGgtLjM0MWwtLjA2OS0uNzQ0TDI1LjEzLDIwLjJsLjI1Ny0uMDA4VjE5LjEzM2wuMTA3LjAxN3YtLjIxbC0uMzgtLjAzNC4wMDktMS4yMjguNjM1LS4wNTYtLjAzNy0uNDEzLjI4LS4wMjQtLjAxNi0uMDgxLjM3MS0uMTg2LTEuODg2LS4zNzktMS45MTYuMzg5LjEyMS4yMjYuMy0uMDI0LjAxNi4xaC4yNWwuMDE0LjQ4NS42MjEtLjAwOC4wNTMsMS4xODgtMi4yLS4wMTctLjI1Ny0xLjc4Ni0uMjA2LS45NDYtLjE2Ni0xLjcuMS0uOTkzLDQuMzc3LS4zMzIuMDE0LTEuNDc5LjIyLS4wNTYtLjAxNC0uMjI1LS4xNjctLjFzLTIuMzkzLjM1NS0zLjE1MS40MzZsLS4zNzEuMDQtLjAyMy0uMjc0LS45MDUtLjQ3NC4wMTEtLjU1Mi4zMTEtLjAwOS4wMjMtLjc1OWEyNC44MDcsMjQuODA3LDAsMCwwLDIuNTQ0LS4yODNjLjY4OS0uMTYyLDEuNjY2LS4zMjMsMS42NjYtLjMyM0wyNi4yLDcuODA5bC45MTctLjI2Ny4wNzYtLjIxLDIuMDc0LS41NzQuMjM2LS4xOTQtLjc4OC0xLjcyMi4wNzYtLjM4OS40LS4yMS4yODgtLjg4MVpNMTkuMzc0LDkuOGwtLjAxMS42MjYuNDcuMDItLjAzLjU5NC0uOTIxLjYtLjA1Ny4xNzQuMzcxLDAsMCwuMTQ2LTIuODE0LjEzNy4wMTktLjQxNi4xMjgtLjIwNy4wMDktLjEzMywwLS4yODYuMDgtLjE5LjAzLS4xNTR2LS4xMWwuMTIxLS40ODVabS01Ljg4NS41MzMtLjA2OS40MjEuMjIuMjU5LS4wMTQuNDUzLjIuMzE1LS4wNTMuMzcyLjE1MS4yMTgtMi44NzEuMTEzLS4wMDctLjEuMzMzLS4wNDEuMDE2LS4xMjItLjcyNy0uMzk1LS4wMzktLjYzMS4zNDgtLjAxNy4wMy0uNjhabTQuMjQ5LDkuNywxLjc0Mi4xMTNMMTkuNDIsMjIuNWwuMjI3LDEuOTIzTDE3LjgsMjQuMzU0Wm0tMTEuNjYzLjEsMi43ODguMTQ1TDguNjIsMjEuOXYxLjM1OWwuMi43NTktMi43MjcuMTNabTE3Ljg0My4wMTV2NC4wMWwtMS43NzIuMTMtLjA2MS0yLjExOC0uMi0xLjk3M1pNMTAuNSwyMC4yNGwyLjA2LjAwOC4wMjEsMy43MThMMTAuNjU3LDI0bC0uMS0xLjIwNS0uMDA3LTEuMlpcXFwiIHN0eWxlPVxcXCJzdHJva2U6cmVkO3N0cm9rZS13aWR0aDowLjVweDtmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XCJEb2NrZXJcIjogXCI8cGF0aCBkPVxcXCJNMTYuNTQsMTIuNjYzSDE5LjR2Mi45MjRoMS40NDZhNi4yNzIsNi4yNzIsMCwwLDAsMS45ODgtLjMzMyw1LjA5MSw1LjA5MSwwLDAsMCwuOTY2LS40MzYsMy41ODQsMy41ODQsMCwwLDEtLjY3LTEuODQ5LDMuOTA3LDMuOTA3LDAsMCwxLC43LTIuNzUzbC4zLS4zNDguMzU4LjI4OGE0LjU1OCw0LjU1OCwwLDAsMSwxLjc5NSwyLjg5Miw0LjM3NSw0LjM3NSwwLDAsMSwzLjMxOS4zMDlsLjM5My4yMjYtLjIwNy40YTQuMTQxLDQuMTQxLDAsMCwxLTQuMTU3LDEuOTgzYy0yLjQ4LDYuMTY4LTcuODcxLDkuMDg4LTE0LjQwOSw5LjA4OC0zLjM3OCwwLTYuNDc2LTEuMjYzLTguMjQxLTQuMjU5bC0uMDI5LS4wNDlMMi43LDIwLjIyN2E4LjMxNiw4LjMxNiwwLDAsMS0uNjU5LTQuMjA4bC4wNC0uNDMzSDQuNTI2VjEyLjY2M0g3LjM4N1Y5LjhoNS43MjFWNi45NDJIMTYuNTR2NS43MjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA5NmU2XFxcIi8+PHBhdGggZD1cXFwiTTEyLjAwNiwyNC41NjdhNi4wMjIsNi4wMjIsMCwwLDEtMy4xNC0zLjA4OSwxMC4zMjksMTAuMzI5LDAsMCwxLTIuMjY0LjM0M3EtLjUuMDI4LTEuMDQ1LjAyOC0uNjMyLDAtMS4zMzEtLjAzN2E5LjA1MSw5LjA1MSwwLDAsMCw3LDIuNzY5UTExLjYxOCwyNC41ODEsMTIuMDA2LDI0LjU2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNy4wOCwxMy4zNDZoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3SDYuN1YxMy4zNDZabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzY4LDBoLjJ2Mi4wNjdoLS4yVjEzLjM0NlpNNSwxMy4xNEg3LjQ4MnYyLjQ3OUg1Wm0yLjg1OS0yLjg2MWgyLjQ4djIuNDc5SDcuODYzWm0yLjA3Ny4yMDdoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJWMTAuNDg2Wm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzY4LDBoLjJ2Mi4wNjZoLS4yWm0tLjIwNywyLjY1M2gyLjQ4djIuNDhINy44NjNWMTMuMTRabTIuMDc3LjIwN2guMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlYxMy4zNDZabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNjgsMGguMnYyLjA2N2gtLjJabTIuNjU0LS4yMDdIMTMuMnYyLjQ4aC0yLjQ4VjEzLjE0Wm0yLjA3Ni4yMDdIMTN2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNjgsMGguMnYyLjA2N2gtLjJabS0uMjA2LTMuMDY3SDEzLjJ2Mi40NzloLTIuNDhWMTAuMjc5Wm0yLjA3Ni4yMDdIMTN2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNjgsMGguMnYyLjA2NmgtLjJabTIuNjU0LDIuNjUzaDIuNDc5djIuNDhoLTIuNDhWMTMuMTRabTIuMDc2LjIwN2guMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM2OCwwaC4xOTJ2Mi4wNjdoLS4yVjEzLjM0NlptLS4yMDYtMy4wNjdoMi40Nzl2Mi40NzloLTIuNDhWMTAuMjc5Wm0yLjA3Ni4yMDdoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNjgsMGguMTkydjIuMDY2aC0uMlYxMC40ODZabS0uMjA2LTMuMDY3aDIuNDc5VjkuOWgtMi40OFY3LjQxOVptMi4wNzYuMjA2aC4yVjkuNjkxaC0uMlptLS4zNzYsMGguMlY5LjY5MWgtLjJabS0uMzc2LDBoLjJWOS42OTFoLS4yWm0tLjM3NiwwaC4yVjkuNjkxaC0uMlptLS4zNzYsMGguMlY5LjY5MWgtLjJabS0uMzY4LDBoLjE5MlY5LjY5MWgtLjJWNy42MjVabTIuNjU0LDUuNTE0aDIuNDc5djIuNDhoLTIuNDhWMTMuMTRabTIuMDc2LjIwN2guMTk1djIuMDY3aC0uMlYxMy4zNDZabS0uMzc2LDBoLjIwNnYyLjA2N2gtLjIwNlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMjA1VjEzLjM0NlptLS4zNjgsMGguMnYyLjA2N2gtLjE5NFYxMy4zNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEwLjE4OCwxOS42MzhhLjY4NC42ODQsMCwxLDEtLjY4NC42ODRBLjY4NC42ODQsMCwwLDEsMTAuMTg4LDE5LjYzOFptMCwuMTk0YS40ODkuNDg5LDAsMCwxLC4xNzcuMDMzLjIuMiwwLDEsMCwuMjc1LjI2OS40OS40OSwwLDEsMS0uNDUzLS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIkRPVCAoR3JhcGh2aXopXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCIyMy45NDIgMzAgMTIuNjc5IDMwIDEuNDE3IDMwIDEuNDE3IDE2IDEuNDE3IDIgMTIuNjc5IDIgMjMuOTQyIDIgMjMuOTQyIDE2IDIzLjk0MiAzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2U2ZTZlNlxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIzLjIwMlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI3LjQyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjExLjYzOFxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxNS44NTZcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjAuMDc0XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI0LjI5M1xcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyOC41MTFcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIzLjIwMlxcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjU3M1xcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjYuMjE4XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjEwLjQzNlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxNC42NTVcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTguODczXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIzLjA5MVxcXCIgeT1cXFwiMy4yMDJcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS41NzNcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjVcXFwiPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyNy40NTZcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjYuNDAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI1LjM0N1xcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyMy4yMzhcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjIuMTg0XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjIxLjEyOVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxOS4wMlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxNy45NjVcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTYuOTExXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE0LjgwMlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxMy43NDdcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTIuNjkzXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjEwLjU4M1xcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI5LjUyOVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI4LjQ3NFxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI2LjM2NVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI1LjMxMVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI0LjI1NlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjwvZz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjVcXFwiPjxyZWN0IHg9XFxcIjIyLjAzNlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyMC45ODJcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTkuOTI3XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE3LjgxOFxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxNi43NjRcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTUuNzA5XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjEzLjZcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTIuNTQ1XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjExLjQ5MVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI5LjM4MlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI4LjMyN1xcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI3LjI3M1xcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI1LjE2NFxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI0LjEwOVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIzLjA1NVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48L2c+PHBhdGggZD1cXFwiTTEzLDguOTc2Yy0yLjMwOCwwLTQuMTMxLTEuMjc0LTQuMTkzLTIuOTY5aDBhMi43NzUsMi43NzUsMCwwLDEsMS4yNTMtMi4zMiw1LjMsNS4zLDAsMCwxLDIuOTQzLS45NjMsNS4yOTQsNS4yOTQsMCwwLDEsMy4wMDYuNzQzLDIuNzc1LDIuNzc1LDAsMCwxLDEuNDIxLDIuMjIxYy4wNjUsMS43NTItMS43NzksMy4xOTQtNC4yLDMuMjgzQzEzLjE1OCw4Ljk3NCwxMy4wOCw4Ljk3NiwxMyw4Ljk3NlptLjIzMi01LjJxLS4wOTUsMC0uMTksMGE0LjIzOCw0LjIzOCwwLDAsMC0yLjM1NC43NTYsMS43NjEsMS43NjEsMCwwLDAtLjgyOCwxLjQzNUM5LjksNy4wOSwxMS40MjgsNy45NzgsMTMuMiw3LjkxN3MzLjIyMy0xLjA2OSwzLjE4MS0yLjE5MWExLjc2MSwxLjc2MSwwLDAsMC0uOTMyLTEuMzY5QTQuMTY1LDQuMTY1LDAsMCwwLDEzLjIzNCwzLjc3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNNi40LDI5LjI4MUE1LjIzOCw1LjIzOCwwLDAsMSwzLjYsMjguNTE5YTIuNzc1LDIuNzc1LDAsMCwxLTEuNDEtMi4yMjljLS4wNTYtMS43NTIsMS44LTMuMTg1LDQuMjEzLTMuMjYyczQuMzU2LDEuMjM2LDQuNDEyLDIuOTg4QTIuNzc1LDIuNzc1LDAsMCwxLDkuNTQ4LDI4LjMzYTUuMyw1LjMsMCwwLDEtMi45NDguOTQ4UTYuNSwyOS4yODEsNi40LDI5LjI4MVptLjE4Ni01LjItLjE1NiwwYy0xLjc2Ni4wNTYtMy4yMjksMS4wNTItMy4xOTMsMi4xNzRhMS43NjEsMS43NjEsMCwwLDAsLjkyNCwxLjM3NCw0LjIzNSw0LjIzNSwwLDAsMCwyLjQuNTkzLDQuMjM1LDQuMjM1LDAsMCwwLDIuMzU3LS43NDQsMS43NjEsMS43NjEsMCwwLDAsLjgzNS0xLjQzQzkuNzI0LDI0Ljk2MSw4LjI5LDI0LjA4LDYuNTkxLDI0LjA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4yNjEsMjkuMjZhNS4yMzgsNS4yMzgsMCwwLDEtMi44MDctLjc2MiwyLjc3NSwyLjc3NSwwLDAsMS0xLjQxLTIuMjI5aDBjLS4wNTUtMS43NTIsMS44LTMuMTg1LDQuMjEzLTMuMjYyYTUuMyw1LjMsMCwwLDEsMywuNzU5QTIuNiwyLjYsMCwwLDEsMjIuNCwyOC4zMWE1LjMsNS4zLDAsMCwxLTIuOTQ4Ljk0OFExOS4zNTgsMjkuMjYsMTkuMjYxLDI5LjI2Wk0xNi4xLDI2LjIzNmExLjc2MSwxLjc2MSwwLDAsMCwuOTI0LDEuMzc0LDQuNTcsNC41NywwLDAsMCw0Ljc1Ny0uMTUxLDEuNTU4LDEuNTU4LDAsMCwwLS4wODktMi44LDQuMjI2LDQuMjI2LDAsMCwwLTIuNC0uNTkzYy0xLjc2Ni4wNTYtMy4yMjgsMS4wNTItMy4xOTMsMi4xNzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTYuMiwyMy40NzdBMjcuNCwyNy40LDAsMCwxLDkuNzY5LDguOTg2bC42ODcuMzkxQTI2LjYwOSwyNi42MDksMCwwLDAsNi45ODYsMjMuNDVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTEwLjg1Myw3Ljk1N2E3LjE3MSw3LjE3MSwwLDAsMC0uMDc1LDIuMzJsLS43NTgtLjkzLTEuMTc4LS4yM0E3LjE2NSw3LjE2NSwwLDAsMCwxMC44NTMsNy45NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg1NCwyMy40NzdsLS43OS0uMDI3YTI2LjU5LDI2LjU5LDAsMCwwLS45MTUtNy44ODQsMjYuNjI0LDI2LjYyNCwwLDAsMC0yLjU1NC02LjE4OWwuNjg3LS4zOTFhMjcuNDIzLDI3LjQyMywwLDAsMSwyLjYzLDYuMzczQTI3LjM3MiwyNy4zNzIsMCwwLDEsMTkuODU0LDIzLjQ3N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTUuMiw3Ljk1N2E3LjE3MSw3LjE3MSwwLDAsMCwyLjAxMSwxLjE1OWwtMS4xNzguMjMtLjc1OC45M0E3LjE2NSw3LjE2NSwwLDAsMCwxNS4yLDcuOTU3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxyZWN0IHg9XFxcIjExLjM0OFxcXCIgeT1cXFwiOS45NDVcXFwiIHdpZHRoPVxcXCIzLjUxNVxcXCIgaGVpZ2h0PVxcXCIwLjc5MVxcXCIgdHJhbnNmb3JtPVxcXCJtYXRyaXgoMC4wMTYsIC0xLCAxLCAwLjAxNiwgMi41NTcsIDIzLjI3OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTMuMDU0LDEzLjUyOWE3LjE3MSw3LjE3MSwwLDAsMC0xLjEtMi4wNDZsMS4xMjIuNDI2LDEuMTM1LS4zOUE3LjE2NSw3LjE2NSwwLDAsMCwxMy4wNTQsMTMuNTI5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxyZWN0IHg9XFxcIjcuODA5XFxcIiB5PVxcXCIyMC4wODFcXFwiIHdpZHRoPVxcXCI0Ljc1N1xcXCIgaGVpZ2h0PVxcXCIwLjc5MVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTEyLjU2IDE4LjEwOCkgcm90YXRlKC01Ny42MDMpXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTguMTQ3LDIzLjY5NGE3LjE3MSw3LjE3MSwwLDAsMCwuMTMzLTIuMzE3bC43MzQuOTQ5LDEuMTcxLjI2QTcuMTY1LDcuMTY1LDAsMCwwLDguMTQ3LDIzLjY5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cmVjdCB4PVxcXCIxNS40MThcXFwiIHk9XFxcIjE4LjA1MVxcXCIgd2lkdGg9XFxcIjAuNzkxXFxcIiBoZWlnaHQ9XFxcIjQuOTE5XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtOC4yNTcgMTAuOTUxKSByb3RhdGUoLTMwLjcwOClcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTcuOCwyMy44NTZhNy4xNzEsNy4xNzEsMCwwLDAtMi4wMDYtMS4xNjhsMS4xNzktLjIyNS43NjItLjkyN0E3LjE2NSw3LjE2NSwwLDAsMCwxNy44LDIzLjg1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTMuMDI0LDE5LjEyNWE1LjIzOCw1LjIzOCwwLDAsMS0yLjgwNy0uNzYyLDIuNzc1LDIuNzc1LDAsMCwxLTEuNDEtMi4yMjksMi43NzUsMi43NzUsMCwwLDEsMS4yNjYtMi4zMTQsNS4zLDUuMywwLDAsMSwyLjk0OC0uOTQ4LDYuNzEyLDYuNzEyLDAsMCwxLDIuMTM0LjMxM2wtLjMzMSwxYTUuNjY4LDUuNjY4LDAsMCwwLTEuNzY5LS4yNjEsNC4yMzgsNC4yMzgsMCwwLDAtMi4zNTguNzQ0LDEuNzYxLDEuNzYxLDAsMCwwLS44MzUsMS40MywxLjc2MSwxLjc2MSwwLDAsMCwuOTI0LDEuMzc0LDQuMjQyLDQuMjQyLDAsMCwwLDIuNC41OTMsNS43LDUuNywwLDAsMCwxLjY3OC0uMzc4bC4zNzguOTg1YTYuODQ0LDYuODQ0LDAsMCwxLTIuMDIyLjQ0OFExMy4xMjEsMTkuMTI1LDEzLjAyNCwxOS4xMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE1LjQzNSwxMi44NzZhNC4zMzgsNC4zMzgsMCwwLDAtLjk4NCwxLjYyMiwyLjA2NCwyLjA2NCwwLDAsMS0uMDE2LDIuODA2LDQuNCw0LjQsMCwwLDAsLjk4MiwxLjYsMy45MzIsMy45MzIsMCwwLDAsLjA3OC01Ljk4NkMxNS40NzYsMTIuOSwxNS40NTQsMTIuODkzLDE1LjQzNSwxMi44NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE5LjUyNSwxNS4yNzhhMjcuOTMxLDI3LjkzMSwwLDAsMC0xLjI2My0zLjc0Miw0LjM3Niw0LjM3NiwwLDAsMC0xLjc3Ny41MTcsMjYuMDYzLDI2LjA2MywwLDAsMSwxLjI1MywzLjY4NSwyNi4wMzgsMjYuMDM4LDAsMCwxLC43MzQsNC41MzQsNC4zNDcsNC4zNDcsMCwwLDAsMS44MjUtLjM1MUEyNy45LDI3LjksMCwwLDAsMTkuNTI1LDE1LjI3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTUzLDEyLjIyOUE0LjQzNyw0LjQzNywwLDEsMCwyMi4zLDEzLjUsNC40MzcsNC40MzcsMCwwLDAsMTYuMTUzLDEyLjIyOVptNC44MTIsNy4zMzJhNC4zNDYsNC4zNDYsMCwxLDEsMS4yNDktNi4wMThBNC4zNDYsNC4zNDYsMCwwLDEsMjAuOTY1LDE5LjU2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyYzI5MjhcXFwiLz48cGF0aCBkPVxcXCJNMjIuMDE1LDE5LjE4NmEuODIyLjgyMiwwLDAsMC0uMTkyLS4yMDksNC4zNDcsNC4zNDcsMCwwLDEtLjMzMy4zMTksNC41MjIsNC41MjIsMCwwLDEtLjQ0Ni4zMzcsNC43Myw0LjczLDAsMCwxLS45NC40NzcuNjY5LjY2OSwwLDAsMCwuMDMxLjEuNjQuNjQsMCwwLDAsLjA0Ny4wOTRsLjQ4Ny44TDIyLjUsMTkuOTg0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI4MjgyOFxcXCIvPjxyZWN0IHg9XFxcIjIwLjc5M1xcXCIgeT1cXFwiMjAuNzg0XFxcIiB3aWR0aD1cXFwiMi4xNDdcXFwiIGhlaWdodD1cXFwiMC40NFxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTcuNzQgMTQuNDY1KSByb3RhdGUoLTMxLjM5NClcXFwiIHN0eWxlPVxcXCJmaWxsOiMyODI4MjhcXFwiLz48cmVjdCB4PVxcXCIyMi44NjhcXFwiIHk9XFxcIjIwLjk2XFxcIiB3aWR0aD1cXFwiMi4xNDdcXFwiIGhlaWdodD1cXFwiNi44ODdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC05LjIwNyAxNi4wNDQpIHJvdGF0ZSgtMzEuMzk0KVxcXCIgc3R5bGU9XFxcImZpbGw6IzI4MjgyOFxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wNTQsMjcuNDQzbC0uMjM2LS4zODctMS44MzMsMS4xMTkuMjM2LjM4N2EuOTI0LjkyNCwwLDAsMCwxLjI3OS4xNTlsLjExLS4wNjdBLjkyNC45MjQsMCwwLDAsMjcuMDU0LDI3LjQ0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyODI4MjhcXFwiLz48cGF0aCBkPVxcXCJNMjAuNjgsMTQuODQ1YS4zMTUuMzE1LDAsMCwxLC4zMzguMDI3LDEuMDc4LDEuMDc4LDAsMCwxLC4yOTQuNTc4LDEuMSwxLjEsMCwwLDEsLjAyOS42NTQuMzI3LjMyNywwLDAsMS0uMjc4LjIuNDY4LjQ2OCwwLDAsMS0uMzctLjEuOTIyLjkyMiwwLDAsMS0uMjYyLS41Ljk1NS45NTUsMCwwLDEtLjAxLS41ODVBLjQ2Ni40NjYsMCwwLDEsMjAuNjgsMTQuODQ1Wm0uMDYuMjI3YS4xNDkuMTQ5LDAsMCwwLS4wNzQuMDYzLjI0Ny4yNDcsMCwwLDAtLjAyNy4xMzIsMS42MjYsMS42MjYsMCwwLDAsLjA2NC4zNTUsMS41OTIsMS41OTIsMCwwLDAsLjExMi4zMjkuMjY4LjI2OCwwLDAsMCwuMDk0LjExLjE0Mi4xNDIsMCwwLDAsLjA5NC4wMTUuMTIxLjEyMSwwLDAsMCwuMDc4LS4wNDguMjExLjIxMSwwLDAsMCwuMDI4LS4xMjgsMi42NDMsMi42NDMsMCwwLDAtLjE4Ni0uNzIyLjIzNS4yMzUsMCwwLDAtLjA5My0uMTA3QS4xMTYuMTE2LDAsMCwwLDIwLjczOSwxNS4wNzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjY5NCwxNC40YS4zLjMsMCwwLDEsLjM0Ni4wNTcsMS40OTMsMS40OTMsMCwwLDEsLjMyNS43LDEuNTIxLDEuNTIxLDAsMCwxLC4wNi43NzEuMzEuMzEsMCwwLDEtLjI3LjIyOC40NDYuNDQ2LDAsMCwxLS4zNzktLjEzNywxLjMxLDEuMzEsMCwwLDEtLjI5Mi0uNjE3LDEuMzQxLDEuMzQxLDAsMCwxLS4wNDEtLjdBLjQ0MS40NDEsMCwwLDEsMjEuNjk0LDE0LjRabS4wNzIuMjczYS4xMzYuMTM2LDAsMCwwLS4wNzIuMDY5LjMxNS4zMTUsMCwwLDAtLjAyMS4xNTUsMi4zNTEsMi4zNTEsMCwwLDAsLjA4NC40MjcsMi4zMSwyLjMxLDAsMCwwLC4xMzEuNC4zNDcuMzQ3LDAsMCwwLC4xLjEzNS4xMy4xMywwLDAsMCwuMS4wMjEuMTEuMTEsMCwwLDAsLjA3Ni0uMDU0LjI3NS4yNzUsMCwwLDAsLjAyMi0uMTUsMy43NzMsMy43NzMsMCwwLDAtLjIyNC0uODYyLjMxMS4zMTEsMCwwLDAtLjEtLjEzMkEuMS4xLDAsMCwwLDIxLjc2NiwxNC42NzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTIzLjQ3MiwxNS45MzRsLS4yNjkuMDM4LS4zNzktMS40MzlhLjk1NS45NTUsMCwwLDEtLjI1Ny4zOTJsLS4wODctLjMzMWEuODQxLjg0MSwwLDAsMCwuMTY5LS4yNi44NzQuODc0LDAsMCwwLC4wNzUtLjM4M2wuMi0uMDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNC40NTUsMTUuNzk0bC0uMjY5LjAzOC0uNDI5LTEuNjI1YTEsMSwwLDAsMS0uMjQ3LjQyOWwtLjEtLjM3NmEuODc0Ljg3NCwwLDAsMCwuMTYyLS4yODQsMS4wMjgsMS4wMjgsMCwwLDAsLjA2NC0uNDI0bC4yLS4wODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjYzNiwxMy4xMTdjLjEyNy0uMDU1LjI0OS0uMDA4LjM2OS4xNDRhMy4xMSwzLjExLDAsMCwxLC40MTYsMS4wMzQsMy4xNDMsMy4xNDMsMCwwLDEsLjE1MSwxLjExYy0uMDI5LjE5LS4xMTEuMjk0LS4yNDcuMzEycy0uMjcyLS4wNTktLjQtLjIzMWEyLjg1NSwyLjg1NSwwLDAsMS0uMzgxLS45NSwyLjg3MSwyLjg3MSwwLDAsMS0uMTMyLTEuMDM5QS40MzcuNDM3LDAsMCwxLDI0LjYzNiwxMy4xMTdabS4xMDcuNGEuMTI0LjEyNCwwLDAsMC0uMDY3LjA4OC41ODQuNTg0LDAsMCwwLDAsLjIyMSw1LjIxOCw1LjIxOCwwLDAsMCwuMTM5LjYzNSw1LjE1Myw1LjE1MywwLDAsMCwuMTg0LjYuNjYuNjYsMCwwLDAsLjEyLjIwOC4xMTguMTE4LDAsMCwwLC4xLjA0LjEuMSwwLDAsMCwuMDcxLS4wNzIuNTI4LjUyOCwwLDAsMCwwLS4yMTYsNS40NDIsNS40NDIsMCwwLDAtLjE0NC0uNjUzLDUuNDQ3LDUuNDQ3LDAsMCwwLS4xODktLjYxOS42MTIuNjEyLDAsMCwwLS4xMTktLjIwNUEuMDkzLjA5MywwLDAsMCwyNC43NDMsMTMuNTIyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi42MzgsMTUuNDg4bC0uMjY5LjAzOC0uNTQtMi4wMzlBMS4xNTEsMS4xNTEsMCwwLDEsMjUuNiwxNGwtLjEyNi0uNDc1YS45OS45OSwwLDAsMCwuMTQ4LS4zMzcsMS40MzYsMS40MzYsMCwwLDAsLjAzOS0uNTE1bC4yLS4wODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI2LjY2NiwxMi4yMzZjLjEyNy0uMDU1LjI1NS4wMTIuMzg1LjJhNC41ODQsNC41ODQsMCwwLDEsLjQ3OCwxLjI2OCw0LjYyLDQuNjIsMCwwLDEsLjIxMywxLjM0M2MtLjAxOC4yMjktLjEuMzUyLS4yMzIuMzdzLS4yNzgtLjA4MS0uNDIxLS4zYTQuMjg0LDQuMjg0LDAsMCwxLS40NDMtMS4xNzksNC4yODMsNC4yODMsMCwwLDEtLjE5NC0xLjI3MkMyNi40NjgsMTIuNDM4LDI2LjUzOSwxMi4yOTEsMjYuNjY2LDEyLjIzNlptLjEzMS41cS0uMDQ2LjAxOC0uMDY0LjFhLjgyOS44MjksMCwwLDAsLjAwOS4yNjYsNy44NTYsNy44NTYsMCwwLDAsLjE3OC43NzlxLjE0My41NDEuMjIxLjczOGEuOTQ3Ljk0NywwLDAsMCwuMTM0LjI1OC4xMTkuMTE5LDAsMCwwLC4xLjA1MnEuMDQ4LS4wMDkuMDY4LS4wODVhLjc2Mi43NjIsMCwwLDAtLjAwOC0uMjYyLDguMTE3LDguMTE3LDAsMCwwLS4xODItLjhxLS4xNDgtLjU1Ny0uMjI3LS43NTdhLjg5Mi44OTIsMCwwLDAtLjEzMy0uMjU2UTI2Ljg0MywxMi43MTQsMjYuOCwxMi43MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjY4MSwxMS44Yy4xMjctLjA1NS4yNTcuMDIzLjM5My4yMzRhNS40MzEsNS40MzEsMCwwLDEsLjUwOSwxLjM4NSw1LjQ2Nyw1LjQ2NywwLDAsMSwuMjQ0LDEuNDZjLS4wMTMuMjQ5LS4wODguMzgxLS4yMjQuNHMtLjI4MS0uMDkyLS40My0uMzI4YTUuMTEsNS4xMSwwLDAsMS0uNDczLTEuMjk0LDUuMSw1LjEsMCwwLDEtLjIyNS0xLjM4OEMyNy40ODYsMTIuMDA4LDI3LjU1NSwxMS44NTEsMjcuNjgxLDExLjhabS4xNDQuNTQycS0uMDQ2LjAxOC0uMDYyLjEwNmEuOTcuOTcsMCwwLDAsLjAxNS4yODlxLjA0LjI1OS4yLjg1MXQuMjQuODA3YTEuMTEyLDEuMTEyLDAsMCwwLC4xNC4yODRxLjA1Ny4wNjcuMTA2LjA1OXQuMDY2LS4wOTFhLjkuOSwwLDAsMC0uMDE0LS4yODRxLS4wNC0uMjYtLjItLjg2N3QtLjI0NS0uODI3YTEuMDUzLDEuMDUzLDAsMCwwLS4xNC0uMjgxUTI3Ljg3MSwxMi4zMiwyNy44MjUsMTIuMzM4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yOS45MTUsMTUuMDM0bC0uMjcuMDM3LS43MDYtMi42NjFhMS40NzgsMS40NzgsMCwwLDEtLjE5Mi42MzZsLS4xNjYtLjYyNUExLjI0OCwxLjI0OCwwLDAsMCwyOC43MDgsMTJhMi4yMTQsMi4yMTQsMCwwLDAsMC0uNjUzbC4yLS4wODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI5LjcxMiwxMC45MjFjLjEyNy0uMDU0LjI2My4wNDMuNDA5LjI5NGE3LjM0NSw3LjM0NSwwLDAsMSwuNTcyLDEuNjE5QTcuMzgyLDcuMzgyLDAsMCwxLDMxLDE0LjUyN2MwLC4yODgtLjA3Mi40NC0uMjA5LjQ1OHMtLjI4Ni0uMTE0LS40NDctLjM5M2E2Ljk4NCw2Ljk4NCwwLDAsMS0uNTM1LTEuNTI0LDYuOTQ0LDYuOTQ0LDAsMCwxLS4yODctMS42MjFDMjkuNTIzLDExLjE1MSwyOS41ODYsMTAuOTc1LDI5LjcxMiwxMC45MjFabS4xNjguNjMzcS0uMDQ2LjAxOC0uMDU5LjExOWExLjI4NywxLjI4NywwLDAsMCwuMDI3LjMzNHEuMDUxLjMuMjM1Ljk5NHQuMjc3Ljk0NmExLjQ4NCwxLjQ4NCwwLDAsMCwuMTU0LjMzNHEuMDYuMDguMTA5LjA3MXQuMDYzLS4xYTEuMiwxLjIsMCwwLDAtLjAyNi0uMzNxLS4wNTEtLjMtLjIzOS0xLjAxMXQtLjI4Mi0uOTY1YTEuNDIsMS40MiwwLDAsMC0uMTUzLS4zMzJRMjkuOTI2LDExLjUzNiwyOS44OCwxMS41NTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjE2NywxNi4zNjJhLjQyMi40MjIsMCwwLDEsLjMxOC4xODUsMS4wMDUsMS4wMDUsMCwwLDEtLjI3NywxLjAzLjQyLjQyLDAsMCwxLS4zNjYsMCwuNTkuNTksMCwwLDEtLjMxMS0uMjYxLjgwOC44MDgsMCwwLDEsLjI1NC0uODkzQS41NjEuNTYxLDAsMCwxLDIxLjE2NywxNi4zNjJabS0uMDUxLjE4OWEuMTc1LjE3NSwwLDAsMC0uMTkyLjA4NywxLjQ4NywxLjQ4NywwLDAsMC0uMTU1LjU2Ny4yMTYuMjE2LDAsMCwwLC4wMzkuMTI0LjE5MS4xOTEsMCwwLDAsLjA4NC4wNTguMTQ1LjE0NSwwLDAsMCwuMTg4LS4wNjksMS42NjYsMS42NjYsMCwwLDAsLjE2NC0uNi4xODkuMTg5LDAsMCwwLS4wNC0uMTIxQS4xNjMuMTYzLDAsMCwwLDIxLjExNywxNi41NTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTIyLjM3NiwxNi41NDhhLjM4Mi4zODIsMCwwLDEsLjMxMS4yMTIsMS4wMjQsMS4wMjQsMCwwLDEtLjAxOS42NiwxLjAyMiwxLjAyMiwwLDAsMS0uMzE1LjU4MS4zOC4zOCwwLDAsMS0uMzczLjAyNS41MzMuNTMzLDAsMCwxLS4zLS4yOSwxLjE4OSwxLjE4OSwwLDAsMSwuMzA5LTEuMUEuNS41LDAsMCwxLDIyLjM3NiwxNi41NDhabS0uMDYyLjIzYS4xNjcuMTY3LDAsMCwwLS4xLjAxMy4yMzUuMjM1LDAsMCwwLS4xLjEsMi4yMTksMi4yMTksMCwwLDAtLjE4OS42OTQuMjY5LjI2OSwwLDAsMCwuMDMzLjE0Ny4xNjcuMTY3LDAsMCwwLC4wODMuMDY0LjE0My4xNDMsMCwwLDAsLjEsMCwuMjA2LjIwNiwwLDAsMCwuMDk0LS4xLDIuNDM2LDIuNDM2LDAsMCwwLC4yLS43MjcuMjQuMjQsMCwwLDAtLjAzNC0uMTQ0QS4xNDEuMTQxLDAsMCwwLDIyLjMxNCwxNi43NzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTIzLjM3LDE4LjU0MWwtLjI4MS0uMTEuMzI4LTEuMjI1YTEsMSwwLDAsMS0uNDQyLjE1MmwuMDc1LS4yODFhLjg4MS44ODEsMCwwLDAsLjI5Mi0uMS42OC42OCwwLDAsMCwuMjU5LS4yMzhsLjI0Mi4wMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI0Ljc5MywxNi45MTlhLjM0OC4zNDgsMCwwLDEsLjMuMjY2LDEuNzUxLDEuNzUxLDAsMCwxLS4wNzUuODcsMS43NDksMS43NDksMCwwLDEtLjM3MS43OTEuMzQ1LjM0NSwwLDAsMS0uMzg4LjA3OC40ODguNDg4LDAsMCwxLS4yODgtLjM0OCwxLjU4NywxLjU4NywwLDAsMSwuMDY3LS43OSwxLjU3NywxLjU3NywwLDAsMSwuMzU0LS43MjdBLjQ1Ny40NTcsMCwwLDEsMjQuNzkzLDE2LjkxOVptLS4wODQuMzEyYS4xNDMuMTQzLDAsMCwwLS4xMDcuMDI1LjM1My4zNTMsMCwwLDAtLjEwNi4xNDEsNC4xMjYsNC4xMjYsMCwwLDAtLjI1Ny45NDguNDA4LjQwOCwwLDAsMCwuMDIxLjE5Mi4xNDMuMTQzLDAsMCwwLC4wOC4wNzUuMTIuMTIsMCwwLDAsLjEtLjAxMS4zMTguMzE4LDAsMCwwLC4xMDUtLjEzNyw0LjQxOCw0LjQxOCwwLDAsMCwuMjY2LS45ODEuMzc0LjM3NCwwLDAsMC0uMDIyLS4xODlBLjExOS4xMTksMCwwLDAsMjQuNzEsMTcuMjMxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNS42NDksMTkuNDNsLS4yODEtLjExLjQyOC0xLjZhMS4wMzMsMS4wMzMsMCwwLDEtLjQ2Mi4yMjdsLjEtLjM3MWEuOS45LDAsMCwwLC4zLS4xNTEuOTMuOTMsMCwwLDAsLjI4MS0uMzIxbC4yNDIuMDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4yMTEsMTcuMjkxYS4zNDQuMzQ0LDAsMCwxLC4yODIuMzE5LDIuNjkyLDIuNjkyLDAsMCwxLS4xMzEsMS4wOCwyLjY5LDIuNjksMCwwLDEtLjQyNywxLC4zNC4zNCwwLDAsMS0uNC4xMy40ODcuNDg3LDAsMCwxLS4yNzMtLjQwNSwyLjQ5NCwyLjQ5NCwwLDAsMSwuMTIyLTEsMi40NywyLjQ3LDAsMCwxLC40MS0uOTM3QS40NTEuNDUxLDAsMCwxLDI3LjIxMSwxNy4yOTFabS0uMTA2LjM5NGEuMTMzLjEzMywwLDAsMC0uMTEuMDM2LjUwOS41MDksMCwwLDAtLjExNy4xODIsNi42MjIsNi42MjIsMCwwLDAtLjMyNSwxLjIuNTkxLjU5MSwwLDAsMCwuMDA5LjIzNy4xMzMuMTMzLDAsMCwwLC4wNzcuMDg2LjExLjExLDAsMCwwLC4xMDctLjAyMy40NjUuNDY1LDAsMCwwLC4xMTYtLjE3OCw0LjYzOSw0LjYzOSwwLDAsMCwuMi0uNjE5LDQuNjU4LDQuNjU4LDAsMCwwLC4xMzYtLjYxNS41NTIuNTUyLDAsMCwwLS4wMS0uMjM1QS4xMS4xMSwwLDAsMCwyNy4xMDUsMTcuNjg1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNy45MjcsMjAuMzJsLS4yODEtLjExLjUyOC0xLjk3MWExLjEzNCwxLjEzNCwwLDAsMS0uNDgyLjNsLjEyMy0uNDZhLjk3Mi45NzIsMCwwLDAsLjMxNy0uMiwxLjI0OCwxLjI0OCwwLDAsMCwuMy0uNGwuMjQyLjAzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjguOTUzLDIwLjcyMWwtLjI4MS0uMTEuNTczLTIuMTM5YTEuMiwxLjIsMCwwLDEtLjQ5MS4zMzZsLjEzNC0uNWExLjAyLDEuMDIsMCwwLDAsLjMyMy0uMjIsMS40MTMsMS40MTMsMCwwLDAsLjMxNC0uNDRsLjI0Mi4wMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTMwLjcxNywxNy44M2MuMTUxLjAyMy4yMzguMTU1LjI2Mi40YTQuNDM2LDQuNDM2LDAsMCwxLS4yMTMsMS4zODUsNC40MzQsNC40MzQsMCwwLDEtLjUwOSwxLjMwN2MtLjE0LjE5NS0uMjguMjYzLS40MjIuMjA3cy0uMjI2LS4yMi0uMjUtLjQ4OWE0LjE5NCw0LjE5NCwwLDAsMSwuMi0xLjMsNC4xNDMsNC4xNDMsMCwwLDEsLjQ5Mi0xLjI0MUMzMC40MiwxNy45LDMwLjU2NiwxNy44MDcsMzAuNzE3LDE3LjgzWm0tLjEzNy41MTNhLjEzMi4xMzIsMCwwLDAtLjExNS4wNTMuOC44LDAsMCwwLS4xMzMuMjQxLDcuNTg3LDcuNTg3LDAsMCwwLS4yNDQuNzkxLDcuNTM5LDcuNTM5LDAsMCwwLS4xOC43NzkuOTMuOTMsMCwwLDAtLjAwOS4zLjEzMS4xMzEsMCwwLDAsLjA3My4xLjEwOC4xMDgsMCwwLDAsLjExMS0uMDM5Ljc0Mi43NDIsMCwwLDAsLjEzMi0uMjM3LDcuOCw3LjgsMCwwLDAsLjI0OC0uODA2LDcuODM1LDcuODM1LDAsMCwwLC4xODUtLjguODg0Ljg4NCwwLDAsMCwuMDA4LS4zUTMwLjYzMywxOC4zNTMsMzAuNTgsMTguMzQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPlwiLFxuXHRcIkVkaXRvckNvbmZpZ1wiOiBcIjxwYXRoIGQ9XFxcIk04LjcwOSwxOC4zNTFhMS4yNjcsMS4yNjcsMCwwLDAsLjUzMi0xLjM3OUM4LjY5MiwxNy4yMDcsOC43MTgsMTcuNzQ5LDguNzA5LDE4LjM1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlM2UzZjhcXFwiLz48cGF0aCBkPVxcXCJNMTQuOTI0LDE5Ljg1MmEuODcxLjg3MSwwLDAsMCwuNjItMS4xMzVBMS40MywxLjQzLDAsMCwwLDE0LjkyNCwxOS44NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTNlM2Y4XFxcIi8+PHBhdGggZD1cXFwiTTIuNzEzLDI3LjA3OWExLjUzOCwxLjUzOCwwLDAsMCwuNTI0LDEuMzUzYzEuNDE0Ljc5NCw2LjM3Mi4xNzUsOC4wNTYtLjJhMTQuOTk0LDE0Ljk5NCwwLDAsMCwyLjQyNi0xLjIxMywyMi42NDMsMjIuNjQzLDAsMCwwLDQuNzEzLTIuNTU3YzEuMDgyLS43OTQsMi44LTMuMDI5LDIuOTg1LTQuMzY0bC0xLjQ3NS0uMzMyYy0uMDM1LDEuNS0uMzc1LDEuODQyLTEuNzExLDIuMTkxYTEwLjY2MiwxMC42NjIsMCwwLDEtMy41Ny4xNCwzLjM2MiwzLjM2MiwwLDAsMS0yLjMxMy0xLjU2MmMtMS4wNjUtMS40MTQuMjM2LTIuNC0xLjQ0OS0yLjUtMS43NzIsMi4xNzMtNC45LjYxMS02LjI2Ny4zOTNhMzAuMDY2LDMwLjA2NiwwLDAsMC0xLjkzOCw3LjYsMi43NDgsMi43NDgsMCwwLDEsMi4xMzguMzIzYzIuNjg4LDEuMDM5LjM0LDEuOTU1LS43MzMsMS42ODVDMy4zNjgsMjcuODY0LDMuMTQxLDI3LjM4NCwyLjcxMywyNy4wNzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmZGZkXFxcIi8+PHBhdGggZD1cXFwiTTYuMjMxLDE0LjUzN2ExMS41MzksMTEuNTM5LDAsMCwxLDIuOTg1LDEuMTI2YzEuNTEuNzUxLDEuNzgxLjY0NiwxLjkyLDEuNjkzLjAxNy4xOTItLjAxNy4zLjUzMi40NzEuOTI1LjI4OC0uNTMyLS4yMjcsMS45NDYtLjIxOEExNi42NCwxNi42NCwwLDAsMSwxOS41NTksMTguOWMuNDU0LjI4OC4zNjcuNjU1LDEuOS42MTFhMTguNzY3LDE4Ljc2NywwLDAsMC0xLjItNi4xNjJjLS44NjQtMi4wMDctMi4wMDctMi4zMTMtNC4zMzgtMy4wNjQtMS4zNjItLjQzNi01LjM1OS0uOTE2LTYuNi0uMTQ4LTEuMTYxLjcyNC0xLjM3OSwxLjU4OS0yLjQ2MSwzLjEwN0E1LjM2Niw1LjM2NiwwLDAsMCw2LjIzMSwxNC41MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmZGZkXFxcIi8+PHBhdGggZD1cXFwiTTE1Ljg0LDE4LjI0NmMuODczLjM1OC0uMDQ0LDIuNjcxLTEuMjU3LDIuMTEyLS4zOTMtMS4xMDguNTQxLTEuNzM3Ljc5NC0yLjIzNGE4LjUxLDguNTEsMCwwLDAtMi40NjEtLjE0OGMtLjU3Ni4yMTgtLjcwNywxLjQ0OS0uNDEsMi4wMjUsMS40LDIuNzQxLDcuNTY3LDIuMTU2LDYuOTEzLjAyNi0uMjYyLS44NjQtLjUwNi0xLTEuMzg4LTEuM0E2Ljg4NSw2Ljg4NSwwLDAsMCwxNS44NCwxOC4yNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmZGZkXFxcIi8+PHBhdGggZD1cXFwiTTQuODY5LDE3Ljk0MWMuNy42NzIsMi4yNzguNzc3LDMuMy44MjlDOC4zLDE3LjQxNyw4LjQxMywxNi40LDkuNSwxNi40ODNhMS42LDEuNiwwLDAsMS0uMzA1LDIuMTMsMS4zODYsMS4zODYsMCwwLDAsMS4zNjItMS43NjMsMTQuNTQyLDE0LjU0MiwwLDAsMC00LjQ2LTEuODk0QTkuNTA2LDkuNTA2LDAsMCwwLDQuODY5LDE3Ljk0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNMy4yMjgsMjYuNTgxYy41NzYtLjA1MiwyLjA3Ny4zODQsMi4yLjg3M0M0LjQ5NCwyNy41NjgsMy4zMDcsMjcuNDgsMy4yMjgsMjYuNTgxWm0tLjUxNS41Yy40MjguMzA1LjY1NS43ODYsMS4zODguOTYsMS4wNzQuMjcxLDMuNDIxLS42NDYuNzMzLTEuNjg1QTIuNzQ4LDIuNzQ4LDAsMCwwLDIuNywyNi4wMzJhMzAuMDY2LDMwLjA2NiwwLDAsMSwxLjkzOC03LjZjMS4zNy4yMTgsNC40OTUsMS43ODEsNi4yNjctLjM5MywxLjY4NS4xLjM4NCwxLjA4MiwxLjQ0OSwyLjVBMy4zNjIsMy4zNjIsMCwwLDAsMTQuNjYyLDIyLjFhMTAuNjYyLDEwLjY2MiwwLDAsMCwzLjU3LS4xNGMxLjMzNS0uMzQ5LDEuNjc2LS42OSwxLjcxMS0yLjE5MWwxLjQ3NS4zMzJjLS4xODMsMS4zMzUtMS45LDMuNTctMi45ODUsNC4zNjRhMjIuNjQzLDIyLjY0MywwLDAsMS00LjcxMywyLjU1NywxNC45OTQsMTQuOTk0LDAsMCwxLTIuNDI2LDEuMjEzYy0xLjY4NS4zNzUtNi42NDIsMS04LjA1Ni4yQTEuNTM4LDEuNTM4LDAsMCwxLDIuNzEzLDI3LjA3OVptMTIuMjExLTcuMjI3YTEuNDMsMS40MywwLDAsMSwuNjItMS4xMzVBLjg3MS44NzEsMCwwLDEsMTQuOTI0LDE5Ljg1MlptLjkxNi0xLjYwNmE2Ljg4NSw2Ljg4NSwwLDAsMSwyLjE5MS40OGMuODgyLjMsMS4xMjYuNDM2LDEuMzg4LDEuMy42NTUsMi4xMy01LjUxNiwyLjcxNC02LjkxMy0uMDI2LS4zLS41NzYtLjE2Ni0xLjgwNy40MS0yLjAyNWE4LjUxLDguNTEsMCwwLDEsMi40NjEuMTQ4Yy0uMjUzLjUtMS4xODcsMS4xMjYtLjc5NCwyLjIzNEMxNS44LDIwLjkxNywxNi43MTMsMTguNiwxNS44NCwxOC4yNDZabS03LjEzMS4xYy4wMDktLjYtLjAxNy0xLjE0My41MzItMS4zNzlBMS4yNjcsMS4yNjcsMCwwLDEsOC43MDksMTguMzUxWm0tMy44NC0uNDFhOS41MDYsOS41MDYsMCwwLDEsMS4yMjItMi45ODUsMTQuNTQyLDE0LjU0MiwwLDAsMSw0LjQ2LDEuODk0QTEuMzg2LDEuMzg2LDAsMCwxLDkuMTksMTguNjEzYTEuNiwxLjYsMCwwLDAsLjMwNS0yLjEzYy0xLjA4Mi0uMDc5LTEuMi45MzQtMS4zMjcsMi4yODdDNy4xNDcsMTguNzE3LDUuNTY3LDE4LjYxMyw0Ljg2OSwxNy45NDFaTTQsMTcuMjQyYy0uMzIzLS44OS0uMzIzLTIuMjc4LDEuMDQ3LTIuMzkybC0uNywxLjk0NkM0LjE2MiwxNy4yMTYsNC4xNjIsMTcuMTIsNCwxNy4yNDJabTIuMjM0LTIuNzA2YTUuMzY2LDUuMzY2LDAsMCwxLC42MjgtMS4yOTJjMS4wODItMS41MTksMS4zLTIuMzgzLDIuNDYxLTMuMTA3LDEuMjM5LS43NjgsNS4yMzctLjI4OCw2LjYuMTQ4LDIuMzMuNzUxLDMuNDc0LDEuMDU2LDQuMzM4LDMuMDY0YTE4Ljc2NywxOC43NjcsMCwwLDEsMS4yLDYuMTYyYy0xLjUzNi4wNDQtMS40NDktLjMyMy0xLjktLjYxMWExNi42NCwxNi42NCwwLDAsMC01Ljk0NC0xLjI5MmMtMi40NzktLjAwOS0xLjAyMS41MDYtMS45NDYuMjE4LS41NS0uMTc1LS41MTUtLjI3OS0uNTMyLS40NzEtLjE0LTEuMDQ3LS40MS0uOTQzLTEuOTItMS42OTNBMTEuNTM5LDExLjUzOSwwLDAsMCw2LjIzMSwxNC41MzdabTE1LjQ0OS0uNDI4Yy0uMTY2LS41NS4xNC0uNTE1LjY3Mi0uODlhOS4wMjEsOS4wMjEsMCwwLDEsLjkyNS0uNjU1YzEuNDA1LS43ODYsNC4wMjQtLjkxNiw1LjE0MS4wMTdBMi40NzksMi40NzksMCwwLDEsMjkuNSwxNC42NWE1LjgzOCw1LjgzOCwwLDAsMS0yLjYxOCwzLjgzMiw1LjIxMyw1LjIxMywwLDAsMS00Ljc4MywxLjJjLS4xNTctLjM4NC0uMDM1LTIuODE5LS4yMTgtMy43MTgtLjE2Ni0uOC0uMDc5LS44OS4zODQtMS4zNywxLjM2Mi0xLjQxNCw0LjMxMi0yLjQ0NCw1Ljk4OC0xLjIzMS43MDcuNTI0LjUwNi43MjQuODczLDEuMTI2LjQ1NC0uNDg5LS4zOTMtMi4xMy0zLjUxNy0yLjAyNUMyMy40ODYsMTIuNTI5LDIyLjU3LDE0LjE4NywyMS42OCwxNC4xMDlaTTguOTcxLDkuMTQzYTguMDk0LDguMDk0LDAsMCwxLDIuMjc4LTQuNkMxMi42LDMuNSwxNC4wMTYsMi41MDksMTYuMDk0LDMuNjg3Yy41MTUuMjg4LjQ4OS40MzYuNTQxLDEuMTUyYTMuMzEyLDMuMzEyLDAsMCwxLS4xOTIsMS41Yy0xLjM3OSw0LjQ1MS0yLjUzMSwxLjg5NC02Ljk0OCwyLjk1YTYuMzc0LDYuMzc0LDAsMCwxLDIuMTIxLTMuNDEzYzEuMi0xLjE2MSwyLjA2LTEuOTExLDMuODU4LTEuNjY3YTEuODQyLDEuODQyLDAsMCwxLS4wNTIsMi4zMjJjLS44LDEuMjkyLTEsMS4yMTMtLjg4MiwyLjA5NS42MjgtLjE1Ny44Mi0uNzY4LDEuMTA4LTEuMzc5LDEuNzU0LTMuNjY2LS43OTQtNC4xMTEtMi4zNTctMy40MzlBMTAuMzcyLDEwLjM3MiwwLDAsMCw5Ljc2Niw3LjU1NGMtLjEyMi4yNDQtLjI1My41NTktLjM2Ny44MjlabTYuOTEzLjE4M0MxNi4wNjcsOC4yMzUsMTcuMTUsNy45NjQsMTcuMTUsNC42YzAtMS40NDktMS43ODEtMi43NDktNC4xMTEtMS43ODEtMiwuODItMi4zLDEuNDQ5LTMuMzY5LDMuMDU1LTEsMS41MTktLjk2OSwzLjE4Ni0xLjgzMyw0LjU5MS0uMjUzLjQtLjQ4LjU0MS0uNzU5Ljk0My0uMi4zLS4zNDkuNjcyLS41NSwxLjAyMUExMi45NCwxMi45NCwwLDAsMCw1LjM2NywxNC40Yy0xLjA0Ny4wMjYtMS45MjkuMDQ0LTIuMDM0LDEuMTI2LS4xNCwxLjQ4NC41NTksMS44NS41NTksMi40MDktLjAwOS42LTIuNDUzLDYuNjc3LTEuNzcyLDEwLjMuMTkyLDEsLjg0NywxLDEuODk0LDEuMTI2YTE3LjkzLDE3LjkzLDAsMCwwLDguMDU2LS43MDdsNC4xLTEuOTY0YTE4Ljg1LDE4Ljg1LDAsMCwwLDMuNTYxLTIuNSwxMi4zODMsMTIuMzgzLDAsMCwwLDEuMzA5LTEuNzE5LDMuMjEzLDMuMjEzLDAsMCwwLC44LTIuMjA4LDguNDczLDguNDczLDAsMCwxLDIuOTg1LDFjLS4wNjEuNi0uMzU4LjMxNC0uMzU4Ljg1NWExLjM1NSwxLjM1NSwwLDAsMCwxLjA0Ny0uODljLS4zNTgtLjUyNC0uNzMzLS40MzYtMS4yNDgtLjg1NWE4LjIxMiw4LjIxMiwwLDAsMSwxLjcxOS0uNzA3YzEuMjIyLS41MDYsMy4zMDgtMi4wNDIsMy44MjMtMy40MzlhNC40NDksNC40NDksMCwwLDAtLjU1OS0zLjczNiw1LjQ0NCw1LjQ0NCwwLDAsMC0zLjY0OC0xLjE2MWMtMS41OCwwLTMuMjEyLDEuMTM1LTQuNDg2LDEuNjIzLS40ODktLjQyOC0uNTI0LS45MTYtLjg4Mi0xLjM4OEExMi4yODEsMTIuMjgxLDAsMCwwLDE1Ljg4NCw5LjMyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMjAyMDJcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjgsMTQuMTA5Yy44OS4wNzksMS44MDctMS41OCwzLjkyOC0xLjY1LDMuMTI1LS4xLDMuOTcxLDEuNTM2LDMuNTE3LDIuMDI1LS4zNjctLjQtLjE2Ni0uNi0uODczLTEuMTI2LTEuNjc2LTEuMjEzLTQuNjI2LS4xODMtNS45ODgsMS4yMzEtLjQ2My40OC0uNTUuNTY3LS4zODQsMS4zNy4xODMuOS4wNjEsMy4zMzQuMjE4LDMuNzE4YTUuMjEzLDUuMjEzLDAsMCwwLDQuNzgzLTEuMkE1LjgzOCw1LjgzOCwwLDAsMCwyOS41LDE0LjY1YTIuNDc5LDIuNDc5LDAsMCwwLTEuMDgyLTIuMDY5Yy0xLjExNy0uOTM0LTMuNzM2LS44LTUuMTQxLS4wMTdhOS4wMjEsOS4wMjEsMCwwLDAtLjkyNS42NTVDMjEuODE5LDEzLjU5NCwyMS41MTQsMTMuNTU5LDIxLjY4LDE0LjEwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGYyZjJcXFwiLz48cGF0aCBkPVxcXCJNOC45NzEsOS4xNDMsOS40LDguMzgzYy4xMTMtLjI3MS4yNDQtLjU4NS4zNjctLjgyOUExMC4zNzIsMTAuMzcyLDAsMCwxLDEzLjI5MiwzLjgxYzEuNTYyLS42NzIsNC4xMTEtLjIyNywyLjM1NywzLjQzOS0uMjg4LjYxMS0uNDgsMS4yMjItMS4xMDgsMS4zNzktLjEyMi0uODgyLjA3OS0uOC44ODItMi4wOTVhMS44NDIsMS44NDIsMCwwLDAsLjA1Mi0yLjMyMmMtMS44LS4yNDQtMi42NjIuNTA2LTMuODU4LDEuNjY3QTYuMzc0LDYuMzc0LDAsMCwwLDkuNSw5LjI5MWM0LjQxNi0xLjA1Niw1LjU2OSwxLjUsNi45NDgtMi45NWEzLjMxMiwzLjMxMiwwLDAsMCwuMTkyLTEuNWMtLjA1Mi0uNzE2LS4wMjYtLjg2NC0uNTQxLTEuMTUyLTIuMDc3LTEuMTc4LTMuNDkxLS4xOTItNC44NDQuODU1QTguMDk0LDguMDk0LDAsMCwwLDguOTcxLDkuMTQzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZlZjNmM1xcXCIvPjxwYXRoIGQ9XFxcIk00LDE3LjI0MmMuMTY2LS4xMjIuMTY2LS4wMjYuMzQ5LS40NDVsLjctMS45NDZDMy42NzMsMTQuOTY0LDMuNjczLDE2LjM1Miw0LDE3LjI0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZmVmZWZcXFwiLz48cGF0aCBkPVxcXCJNNS40MjgsMjcuNDU0Yy0uMTIyLS40ODktMS42MjMtLjkyNS0yLjItLjg3M0MzLjMwNywyNy40OCw0LjQ5NCwyNy41NjgsNS40MjgsMjcuNDU0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZjFmMVxcXCIvPlwiLFxuXHRcIkVKU1wiOiBcIjxwYXRoIGQ9XFxcIk0yLDE3LjY3MlYxNC4zMjhsMTEuODYtNi4yVjExLjJMNS4xLDE1LjkzOWw4Ljc2Miw0LjgzNXYzLjFabTI3LjgxNC04Ljg4TDE5LjQ2NSwyMy4yMjlIMTUuOTEyTDI2LjI4MSw4Ljc5MVpNMjYuOTQ3LDIxLjVhLjc5NC43OTQsMCwwLDAsLjYxOS0uMjc4LDEuMDYxLDEuMDYxLDAsMCwwLC4yNDgtLjczMiwxLjE0MSwxLjE0MSwwLDAsMC0uMjQ4LS43NTMuNzY4Ljc2OCwwLDAsMC0xLjIxNywwLDEuMTQxLDEuMTQxLDAsMCwwLS4yNDguNzUzLDEuMDksMS4wOSwwLDAsMCwuMjM3LjczMkEuNzYzLjc2MywwLDAsMCwyNi45NDcsMjEuNVptMi4xODYsMS4wNDJhMy4yMzcsMy4yMzcsMCwwLDEtNC4zNTItLjAxLDIuODY0LDIuODY0LDAsMCwxLDAtNC4xLDMuMjIzLDMuMjIzLDAsMCwxLDQuMzUyLDBBMi43NzMsMi43NzMsMCwwLDEsMzAsMjAuNDg2LDIuNzQsMi43NCwwLDAsMSwyOS4xMzQsMjIuNTM4Wk0xOC44MjEsMTMuMDYxYS43OTQuNzk0LDAsMCwwLC42MTktLjI3OCwxLjA2MSwxLjA2MSwwLDAsMCwuMjQ4LS43MzIsMS4xNDEsMS4xNDEsMCwwLDAtLjI0OC0uNzUzLjc2OS43NjksMCwwLDAtMS4yMTcsMCwxLjE0MSwxLjE0MSwwLDAsMC0uMjQ4Ljc1MywxLjA5LDEuMDksMCwwLDAsLjIzNy43MzJBLjc2My43NjMsMCwwLDAsMTguODIxLDEzLjA2MVpNMjEuMDA3LDE0LjFhMy4yMzcsMy4yMzcsMCwwLDEtNC4zNTItLjAxLDIuODY0LDIuODY0LDAsMCwxLDAtNC4xLDMuMjIzLDMuMjIzLDAsMCwxLDQuMzUyLDAsMi43NzMsMi43NzMsMCwwLDEsLjg2NiwyLjA2M0EyLjc0LDIuNzQsMCwwLDEsMjEuMDA3LDE0LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTBhOTNhXFxcIi8+XCIsXG5cdFwiRWxpeGlyXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTcuMjQ5XFxcIiB5MT1cXFwiLTMzNS41OTdcXFwiIHgyPVxcXCIxNC45NzNcXFwiIHkyPVxcXCItMzA5Ljk5NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgLTMwNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y3ZjZmOFxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjA0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWE5Y2IzXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMzlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMlxcXCIgc3RvcC1jb2xvcj1cXFwiIzZmNTY3ZVxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjY2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMyXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDUyNDU5XFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuODZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJkMDg0M1xcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjYwMDNkXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9lbGl4aXI8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNy44LDguNTkxYzIuMDc5LDQuNTg0LDcuNjQsNi41LDcuMTQxLDEyLjQ3NC0uNTgyLDcuMDE3LTUuNTUxLDguNzg0LTguMzE2LDguOTA5YTguODE1LDguODE1LDAsMCwxLTkuNC03LjQ4NUM1LjYxOCwxNS4wNDYsMTIuNjU1LDMuNjMyLDE2LjcwOSwyQTE1LjA4MywxNS4wODMsMCwwLDAsMTcuOCw4LjU5MVptLS4xNjYsMTguODU3YS40MjMuNDIzLDAsMCwwLS4wNTctLjMyN2MtLjU5My0xLjEtNS44MS0xLjY0NS02LjkwNy0xLjc1MmE4LjI3Miw4LjI3MiwwLDAsMCwxLjYzNSwxLjMsNy43NjYsNy43NjYsMCwwLDAsMi44MTQsMS4wNDFDMTUuOTIyLDI3LjgzMSwxNy40NjcsMjcuOTMzLDE3LjYzNSwyNy40NDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2M2NDhmXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC4yNVxcXCI+PHBhdGggZD1cXFwiTTE4LjI0OCwxMC42MThjNC40Nyw0LjgyMyw2LjQ0NSw0Ljk3OSw2LjIzNywxMC40NzgtLjI0OSw2LjQ3Ni00LjU0Myw4LjE5MS03LjA1OCw4LjQyLTQuMi41NTEtNy40OTUtMS41MjgtOC4zNTgtNS42ODZDNy4zMTIsMTcuMDYzLDEyLjk3OCw2LjAyMywxNi42MzcsNC4zNkExNS4zMjMsMTUuMzIzLDAsMCwwLDE4LjI1OCwxMC42WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MDAzZFxcXCIvPjwvZz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjc1XFxcIj48cGF0aCBkPVxcXCJNMTcuMzg1LDkuOTIxQzIwLjM2OSwxNCwyNC4zMTksMTMuNywyNSwxOS42NDFjLjA5NCw2LjkyMy0zLjYsOS4yODMtNi4yMzcsOS45NDgtNC41LDEuMjc5LTguNTE0LS42NDUtMTAuMDk0LTUtMy4wMzUtNywyLjY1MS0xOC41MTQsNi4zMS0yMC45MTVhMTUuMDgzLDE1LjA4MywwLDAsMCwyLjM3LDYuMjM3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjwvZz5cIixcblx0XCJFbG1cIjogXCI8cGF0aCBkPVxcXCJNMTYsMTYuNzY4LDIuNzY4LDMwSDI5LjIzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ZmI0Y2JcXFwiLz48cGF0aCBkPVxcXCJNMjQuMTMsMjMuMzYyLDMwLDI5LjIzMlYxNy40OTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVhNDAwXFxcIi8+PHBhdGggZD1cXFwiTTE1LjIzMiwxNiwyLDIuNzY4VjI5LjIzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OTYyNzdcXFwiLz48cGF0aCBkPVxcXCJNMzAsMTQuNDQ4VjJIMTcuNTUyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzVmYjRjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4zOTIsOS4zNzZsNi41OTQsNi41OTQtNi42MjQsNi42MjRMMTYuNzY4LDE2Wk0yLjc2OCwyLDguODYzLDguMUgyMi4xMTFMMTYuMDE2LDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGNkNjM2XFxcIi8+PHBhdGggZD1cXFwiTTE2LDE1LjIzMmw2LjA1MS02LjA1MUg5Ljk0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWE0MDBcXFwiLz5cIixcblx0XCJFUkJcIjogXCI8cGF0aCBkPVxcXCJNNy4yNSwyNC43NWgxNy41TDEyLjUsMTIuNSw3LjI1LDE3Ljc1Wk0yLDMwSDMwVjJIMTZMMiwxNlptMjUuMzc1LTIuNjI1SDQuNjI1di0xMC41bDEyLjI1LTEyLjI1aDEwLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTIxYTFlXFxcIi8+XCIsXG5cdFwiRXJsYW5nXCI6IFwiPHBhdGggZD1cXFwiTTYuMzg4LDIzLjg2N2ExMS4wMTIsMTEuMDEyLDAsMCwxLTMuNDQxLTguMjM0LDEwLjc2NSwxMC43NjUsMCwwLDEsMi44NjQtNy41SDJ2MTUuNzNabTIwLjA2NiwwYTE2LjQ0LDE2LjQ0LDAsMCwwLDIuNTM3LTMuMTM2bC00LjIxOC0xLjg3M2E4LjMwNiw4LjMwNiwwLDAsMS02LjY0MSw0LjEyYy00LjM1OS0uMDE0LTYuMDcyLTMuMzI5LTYuMDYzLTcuNTg0SDI4LjM2YTYuNDY1LDYuNDY1LDAsMCwwLDAtLjkzNSw5LjA1Nyw5LjA1NywwLDAsMC0yLjAyOS02LjMyNkgzMHYxNS43M0gyNi40NTZaTTEyLjMzMiwxMS43NDJhMy43MjMsMy43MjMsMCwwLDEsMy45LTMuMjMsMy4yOSwzLjI5LDAsMCwxLDMuNTMyLDMuMjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojYTIwMDNlXFxcIi8+XCIsXG5cdFwiRiNcIjogXCI8cGF0aCBkPVxcXCJNMiwxNiwxNS4yODgsMi43MTJWOS4zNTZMOC42NDQsMTZsNi42NDQsNi42NDR2Ni42NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzc4YmJhXFxcIi8+PHBhdGggZD1cXFwiTTEwLjU0MiwxNmw0Ljc0Ni00Ljc0NnY5LjQ5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNzhiYmFcXFwiLz48cGF0aCBkPVxcXCJNMzAsMTYsMTYuMjM3LDIuNzEyVjkuMzU2TDIyLjg4MSwxNmwtNi42NDQsNi42NDR2Ni42NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzBiOWRiXFxcIi8+XCIsXG5cdFwiRmlyZXN0b3JlIHNlY3VyaXR5IHJ1bGVzXCI6IFwiPHBhdGggZD1cXFwiTTUuOCwyNC42bC4xNy0uMjM3TDEzLjk5LDkuMTQ5bC4wMTctLjE2MS0zLjUzNS02LjY0YS42NTYuNjU2LDAsMCwwLTEuMjI3LjIwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmMyNGFcXFwiLz48cGF0aCBkPVxcXCJNNS45LDI0LjQybC4xMjgtLjI1TDEzLjk2NSw5LjExNCwxMC40MzksMi40NDhhLjYuNiwwLDAsMC0xLjEzMy4yMDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZhNzEyXFxcIi8+PHBhdGggZD1cXFwiTTE2LjU4NCwxNC4wMWwyLjYzMi0yLjdMMTYuNTgzLDYuMjg5YS42NzguNjc4LDAsMCwwLTEuMTk1LDBMMTMuOTgxLDguOTcxVjkuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNGJkNjJcXFwiLz48cGF0aCBkPVxcXCJNMTYuNTM3LDEzLjksMTkuMSwxMS4yOCwxNi41MzcsNi40YS41ODkuNTg5LDAsMCwwLTEuMDc0LS4wNDdMMTQuMDQ5LDkuMDgybC0uMDQyLjEzOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmE1MGVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjUuODAyIDI0LjYwMSA1Ljg3OSAyNC41MjMgNi4xNTggMjQuNDEgMTYuNDE4IDE0LjE4OCAxNi41NDggMTMuODM0IDEzLjk4OSA4Ljk1NiA1LjgwMiAyNC42MDFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNjgyMGNcXFwiLz48cGF0aCBkPVxcXCJNMTYuOTEyLDI5Ljc1NiwyNi4yLDI0LjU3NywyMy41NDYsOC4yNDZBLjYzNS42MzUsMCwwLDAsMjIuNDcxLDcuOUw1LjgsMjQuNmw5LjIzMyw1LjE1NWExLjkyNywxLjkyNywwLDAsMCwxLjg3OCwwXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRlMDY4XFxcIi8+PHBhdGggZD1cXFwiTTI2LjExNSwyNC41MzQsMjMuNDgzLDguMzI2YS41NTcuNTU3LDAsMCwwLS45NjctLjM1M0w1LjksMjQuNTY5bDkuMTMxLDUuMWExLjkxMiwxLjkxMiwwLDAsMCwxLjg2MywwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZjY2EzZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi45MTIsMjkuNmExLjkyNywxLjkyNywwLDAsMS0xLjg3OCwwTDUuODc2LDI0LjUyMiw1LjgsMjQuNmw5LjIzMyw1LjE1NWExLjkyNywxLjkyNywwLDAsMCwxLjg3OCwwTDI2LjIsMjQuNTc3bC0uMDIzLS4xNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWFiMzdcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjIwMSAxMyAxNS40MDUgMTYuNTM0IDE1LjQwNSAyNy42MDMgMjEuNjI1IDI0Ljc4NSAyMS42MjUgMzEgMzEgMjYuNzQzIDMxIDE2LjUzNCAyMy4yMDEgMTNcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjIwMSAxNC43MyAxNi45ODUgMTcuNTQ5IDE2Ljk4NSAyMC4zMjcgMjMuMjAxIDE3LjUwNyAyOS40MjEgMjAuMzI3IDI5LjQyMSAxNy41NDkgMjMuMjAxIDE0LjczXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMy4yMDEgMTkuNTY0IDE2Ljk4NSAyMi4zODEgMTYuOTg1IDI1LjE1OCAyMy4yMDEgMjIuMzM3IDI5LjQyMSAyNS4xNTggMjkuNDIxIDIyLjM4MSAyMy4yMDEgMTkuNTY0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC42MDYgMjYuMDk4IDI1LjU1MSAyNC43MTIgMjMuMjAxIDI1Ljc3OCAyMy4yMDEgMjguNTQ4IDI4LjYwNiAyNi4wOThcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJGbG93XCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTY3LjkwN1xcXCIgeTE9XFxcIi0zMDguNTUxXFxcIiB4Mj1cXFwiLTY3Ljg1N1xcXCIgeTI9XFxcIi0zMDguNTY0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDg3LjgyMiwgMCwgMCwgLTg4LjUzMywgNTk4NC41MzIsIC0yNzI5MC42MTcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNDQxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZiMDQ3XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItNjcuNjc0XFxcIiB5MT1cXFwiLTMxMC4xMjFcXFwiIHgyPVxcXCItNjcuNjQ3XFxcIiB5Mj1cXFwiLTMxMC4wNjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODcuODIyLCAwLCAwLCAtODguNTMzLCA1OTY0LjY2NywgLTI3NDQzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDc1NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmYjUzMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiLTY3LjAyOVxcXCIgeTE9XFxcIi0zMTAuOTFcXFwiIHgyPVxcXCItNjcuMDI5XFxcIiB5Mj1cXFwiLTMxMC44NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg4Ny44MjIsIDAsIDAsIC04OC41MzMsIDU5MDIuOCwgLTI3NTE4LjczMylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ2NDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ0NDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmI1MzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi02Ni4yNTJcXFwiIHkxPVxcXCItMzEwLjM3N1xcXCIgeDI9XFxcIi02Ni4zMlxcXCIgeTI9XFxcIi0zMTAuMzYyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEwNi4xOTgsIDAsIDAsIC04OC41NTEsIDcwNDguNDI4LCAtMjc0NzQuMTY3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDQ0MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmYTgyOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZmxvdzwvdGl0bGU+PHBhdGggZD1cXFwiTTIzLjQyNiwyOS40MVYyMi4xNzJoLTcuMThsNy4xOCw3LjIzOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGY1MTtmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzFcXFwiLz48cGF0aCBkPVxcXCJNMjQuMjMxLDI1LjMwNlYxNy40NzdIMTYuNDY2bDcuNzY2LDcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4OTAwO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS41MTUsMjIuMTcxVjMwaDcuNzY2bC03Ljc2Ni03LjgyOVxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MTtmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjIuNjA4LDE4VjExLjgwOUgxNi40NjZMMjIuNjA4LDE4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkZjRmO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS41MjQsMTYuNTI1VjguN0gxNy43NTlsNy43NjYsNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC43OTk5OTk5NTIzMTYyODQ7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTEyLjI4OCwyVjkuODI5aDcuNzY2TDEyLjI4OCwyXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuODAwMDAwMDExOTIwOTI5O2ZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMSwxNC4yNjJWNi40MzNINC43MTlsNy43MzIsNy44MywxLjY1OSwwXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuODc5OTk5OTk1MjMxNjI4O2ZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMSwyOS45NThWMjAuNDg3SDQuNzE5bDkuMzkxLDkuNDcxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiNzAwO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMTIsMjIuMTE0VjE0LjI4NUg2LjM0Nmw3Ljc2Niw3LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjcwMDtmaWxsLW9wYWNpdHk6MC41XFxcIi8+PHBhdGggZD1cXFwiTTE2LjQ2NSwxMS44MDl2Ny44MjloNy43NjZsLTcuNzY2LTcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZjZDI1O2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4wOTIsMTIuNjkxVjQuODYySDYuMzI2bDcuNzY2LDcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4OTAwO2ZpbGwtb3BhY2l0eTowLjcwMDAwMDA0NzY4MzcxNlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yNDYsMjIuMTcxVjMwaDcuNzY2bC03Ljc2Ni03LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODkwMDtmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzFcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjEyMiAyMi4xNzIgMTguNjA5IDE5LjYzOCAxNi40NjUgMTkuNjM4IDE2LjQ2NiAxMS44MDkgMjAuODQ3IDExLjgwOSAxOC44ODIgOS44MjkgMTQuMDkyIDkuODI5IDE0LjExIDE0LjI2MiAxNC4xMSAyMC40ODcgMTQuMTEgMzAgMTYuMjQ2IDMwIDE2LjI0NiAyMi4xNzIgMjEuMTIyIDIyLjE3MlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIkZvcnRyYW5cIjogXCI8ZyBpZD1cXFwiZzM3NjhcXFwiPjxyZWN0IGlkPVxcXCJyZWN0ODgxXFxcIiB4PVxcXCIyLjM0XFxcIiB5PVxcXCIyLjM0XFxcIiB3aWR0aD1cXFwiMjcuMzNcXFwiIGhlaWdodD1cXFwiMjcuMzNcXFwiIHJ4PVxcXCI1LjA4XFxcIiBzdHlsZT1cXFwiZmlsbDojNzM0Zjk2XFxcIi8+PHBhdGggaWQ9XFxcInBhdGgxNDEyXFxcIiBkPVxcXCJNNi4wNiwyNS41YzAtMS4wOSwwLTEuMTkuMS0xLjE5bDEuMjUtLjA2YzEsMCwxLjE4LS4wNiwxLjQyLS4xOWEuNzQuNzQsMCwwLDAsLjM5LS4zN2MuMTItLjIzLjEyLS4yOS4xMi03LjcyLDAtNywwLTcuNS0uMS03LjY3YTEuMDYsMS4wNiwwLDAsMC0uNjMtLjUsMTAuMjMsMTAuMjMsMCwwLDAtMS4zOC0uMWwtMS4xNywwVjUuMzJIMjUuOTR2OC44MkgyNC44OWE4LjU2LDguNTYsMCwwLDEtMS4yLS4wNWMtLjE0LDAtLjE1LS4wNS0uMjItLjk1YTEyLjczLDEyLjczLDAsMCwwLS4zNS0yLjQzLDMuMjIsMy4yMiwwLDAsMC0yLjYzLTIuODFjLS41Ny0uMS0zLjEtLjItNS4xOS0uMkgxMy44N3Y2LjYzbC43NSwwQTYuMzMsNi4zMywwLDAsMCwxNi40OSwxNGExLjg4LDEuODgsMCwwLDAsLjg5LS45MSw1Ljg2LDUuODYsMCwwLDAsLjM5LTEuNzVjMC0uMzMuMDgtLjY2LjEtLjczczAtLjEzLDEuMTgtLjEzSDIwLjJWMjEuMDZIMTcuODVsMC0uNjFhNy44NSw3Ljg1LDAsMCwwLS41NC0yLjY2Yy0uMzYtLjY4LTEuMDUtMS0yLjQ1LTEuMDhsLS43Ni0uMDctLjIsMCwwLDMuMzRjMCwzLjUxLDAsMy42NS4zLDMuOTRzLjQzLjMyLDMuMjIuNDJjLjA1LDAsLjA3LjI4LjA3LDEuMTl2MS4xOEg2LjA2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjwvZz5cIixcblx0XCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCI6IFwiPHBhdGggZD1cXFwiTTI0LjAyMywyMC45LDI1LjQwOCwyM2w0LjYxNS03TDI1LjQwOCw5bC0xLjM4NSwyLjFMMjcuMjU1LDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTBiMlxcXCIvPjxwYXRoIGQ9XFxcIk03Ljk3NywxMS4xLDYuNTkyLDksMS45NzcsMTZsNC42MTUsNywxLjM4NS0yLjFMNC43NDUsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MGIyXFxcIi8+PHBhdGggZD1cXFwiTTEzLjAzNSw5aDIuOGwtLjQ5NCwyLjhoMi44TDE4LjYzNSw5aDIuOGwtLjQ5NCwyLjhoMi44bC0uNDk1LDIuOGgtMi44bC0uNDkzLDIuOGgyLjhsLS40OTQsMi44aC0yLjhMMTguOTY3LDIzaC0yLjhsLjQ5My0yLjgtMi44LDBMMTMuMzc1LDIzSDEwLjU2N2wuNDkzLTIuOC0yLjgsMCwuNDk0LTIuOGgyLjhsLjQ5My0yLjc5M2gtMi44TDkuNzQxLDExLjhoMi44Wm0xLjMxOSw4LjRoMi44bC40OTQtMi44aC0yLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MGIyXFxcIi8+XCIsXG5cdFwiR2FtZU1ha2VyIExhbmd1YWdlXCI6IFwiPHBhdGggZD1cXFwiTTE0LjIxNiwyNC4xNjdoLS45ODlhMy4yNCwzLjI0LDAsMCwxLTIuODExLTEuNjQ5TDYuNjY3LDE2bDQuNjgxLTguMTY3SDE2LjJsLTQuMzQsOC4xNzYuMDU3LjAzMkwxMy45MzYsMTkuNUgxNi44MlpNOC40NTUsMTAuNTM1bC0xLjI3LTIuMjFhMSwxLDAsMCwwLS44NTktLjQ5MkgybDQsNi45OTJaTTIxLjU0LDkuNDgyYTMuMjM5LDMuMjM5LDAsMCwwLTIuODEyLTEuNjQ5SDE3LjUyM0wxNS4wNDUsMTIuNUgxOC4wMkwyMC4wODMsMTZsLTQuNTMxLDguMTY3aDUuMDU2TDI1LjMzMywxNlpNMjYsMTcuMTcybC0yLjQ3LDQuMjcsMS4yODMsMi4yMzNhMSwxLDAsMCwwLC44NTkuNDkySDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhiYzM0YVxcXCIvPlwiLFxuXHRcIkctY29kZVwiOiBcIjxwYXRoIGQ9XFxcIk0xNy4zMzMsMTYuMzU2aDBMMTcuMzA5LDIwLjhsLTIuMS0xLjAxOC4wMjMtNC40MzdoMGwxMC41NTgtMy4wMzgsMi4xMDYsMS4wMTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGUwMDAwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjQ5MiwxOC41NzZhMTQuOTA5LDE0LjkwOSwwLDAsMS0xLjM0MywzLjA3NCw3Ljg2LDcuODYsMCwwLDEtMS4zOSwxLjgyOSw2LjgsNi44LDAsMCwxLTEuNywxLjMyNCw3LjQwNSw3LjQwNSwwLDAsMS0yLjAwNi44NTUsNiw2LDAsMCwxLTMuMDcyLjIzQTQuNjY4LDQuNjY4LDAsMCwxLDEyLjQ0LDI0LjY0YTUuMzIyLDUuMzIyLDAsMCwxLS42MzYtLjYyOWwtLjUwOC0uMjQ0YTQuNzE3LDQuNzE3LDAsMCwwLC40NTcuMTgxLDUuNTIsNS41MiwwLDAsMS0xLjAxNS0xLjc1OCw4LjEzNSw4LjEzNSwwLDAsMS0uNDMtMS41MzNjLS4wMjMtLjEzMS0uMDQzLS4yMzktLjA2MS0uMzRhNy4yOTIsNy4yOTIsMCwwLDAsLjM3NywxLjM1NCw1LjgzNiw1LjgzNiwwLDAsMCwxLjYxNCwyLjMxOWMuMDYuMDU0LjEyNy4xLjE5LjE0OC4wNC4wMDguMDc4LjAyMi4xMTkuMDI5YTYuNDU0LDYuNDU0LDAsMCwwLDIuOTI4LS4yMTksOC40LDguNCwwLDAsMCwxLjkxLS44MDcsNy42NTgsNy42NTgsMCwwLDAsMS41ODktMS4yMjcsOC42NjIsOC42NjIsMCwwLDAsMS4yOS0xLjY5LDEyLjY2NywxMi42NjcsMCwwLDAsMS4wMTktMi4xOTRMMjMuMywxOWMuMDU2LS4xNTMuMDkxLS4yNTQuMDkxLS4yNTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGUwMDAwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjUyNCw0LjAxM2ExMS42LDExLjYsMCwwLDAtNi41ODgtMS45OTQsMTMuOCwxMy44LDAsMCwwLTkuMzczLDQuODRBMTguMjQzLDE4LjI0MywwLDAsMCw0LDE4LjhjLjAyMSwzLjg1MSwxLjQ4MSw3LjgwNiw1LjExMiw5LjU3NWExMy41NjMsMTMuNTYzLDAsMCwwLDQuMTU5LDEuNTY0LDEyLjExNCwxMi4xMTQsMCwwLDAsNi44NjktMS41MjljLTIuNzM0LDEuMzMzLTYuMTIsMS45OTMtOC44OTQuNC0yLjY4OS0xLjU0My0zLjk4My00LjcyNC00LjIyMS03LjctLjUxMi02LjQsMy4xLTEzLjY0LDkuMTMyLTE2LjI4MSwzLjUxMi0xLjUzNyw3LjMwNy0xLjU4NSwxMC4yMzksMS4xQzI2LjcyNyw1LjI0NCwyNSw0LjMwNSwyNC41MjQsNC4wMTNabS0xNC4zNTksMjQuOC0uMTM4LS4wOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGUwMDAwXFxcIi8+PHBhdGggZD1cXFwiTTIyLjUyOSwyNi43ODhjLTMuMDQ0LDIuNTgyLTcuOTIsNC4xNDktMTEuNTU0LDEuODU3QzcuMjQsMjYuMjg5LDYuNTMsMjEuMDg5LDcuMjEyLDE3LjA4M2ExNy4yMTgsMTcuMjE4LDAsMCwxLDYuNy0xMC45N2MzLjc3MS0yLjYzNiw4Ljg4LTMuNDksMTIuNDg5LS4xODJsLTIuMjcsMy4yOTFjLTIuNTEtMi4zNTUtNi4zLTEuOTU2LTguOTQ1LS4wNTJBMTIuNDM0LDEyLjQzNCwwLDAsMCwxMC41LDE2LjJjLS42NjIsMi42MjMtLjUsNi4wMTEsMS41LDguMDQ3LDIuMDg4LDIuMTI5LDUuMTEyLDIuMTE2LDcuNjU2LjhBMTAuMzM0LDEwLjMzNCwwLDAsMCwyNC41LDE4LjYzNkwxNy4zMDcsMjAuOGwuMDIyLTQuNDM4TDI3Ljg5LDEzLjMxOWwuMS44MDZoMEExNi42MjUsMTYuNjI1LDAsMCwxLDIyLjUyOSwyNi43ODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmEwMDAwXFxcIi8+XCIsXG5cdFwiR0RTY3JpcHRcIjogXCI8cGF0aCBkPVxcXCJNMjguMTY2LDIxLjAyOXYxLjY1MmEuMzc0LjM3NCwwLDAsMS0uMjYuMzU3bC0yLjYuODQxYS4zNjcuMzY3LDAsMCwxLS4zMzUtLjA1NC4zNzQuMzc0LDAsMCwxLS4xNTUtLjN2LTEuOGwtMi40MzguNDY0VjI0LjAyYS4zNzUuMzc1LDAsMCwxLS4zMjUuMzcxbC0zLjUyNS40ODNjLS4wMTYsMC0uMDM0LDAtLjA1MSwwQS4zNzQuMzc0LDAsMCwxLDE4LjEsMjQuNVYyMi41NTdsLTEuODE5LjAwOGgtLjI2N2wtMS44MTktLjAwOFYyNC41YS4zNzUuMzc1LDAsMCwxLS4zNzUuMzc2Yy0uMDE3LDAtLjAzNCwwLS4wNTIsMGwtMy41MjUtLjQ4M2EuMzc1LjM3NSwwLDAsMS0uMzI0LS4zNzFWMjIuMTg0bC0yLjQzOS0uNDY0djEuOGEuMzc0LjM3NCwwLDAsMS0uMTU0LjMuMzcuMzcsMCwwLDEtLjMzNi4wNTRsLTIuNi0uODQxYS4zNzQuMzc0LDAsMCwxLS4yNTktLjM1N1YyMS4wMjlsLTEuNjA4LS41NDFhNC41NTgsNC41NTgsMCwwLDAtLjEyNCwxLjA0YzAsNC4zMTcsNi4wODIsNy42NSwxMy42LDcuNjc0aC4wMTljNy41MTctLjAyNCwxMy42LTMuMzU2LDEzLjYtNy42NzRhNC41NCw0LjU0LDAsMCwwLS4xLS45NVpcXFwiIGZpbGw9XFxcIiM0NzhjYmZcXFwiLz48cGF0aCBkPVxcXCJNMy43MTEsMTMuMzczVjIwLjFsLjkwNy4zMDZhLjM3NC4zNzQsMCwwLDEsLjI1Ni4zNTV2MS42NWwxLjg1NS42VjIxLjI2N2EuMzc2LjM3NiwwLDAsMSwuNDQ1LS4zNjlsMy4xODkuNjA5YS4zNzQuMzc0LDAsMCwxLC4zMDUuMzY4djEuODE4bDIuNzc1LjM3OXYtMS44OWEuMzc0LjM3NCwwLDAsMSwuMzc2LS4zNzVoMGwyLjMyNy4wMDksMi4zMjYtLjAwOWEuMzc0LjM3NCwwLDAsMSwuMzc3LjM3NXYxLjg5bDIuNzc1LS4zNzlWMjEuODc0YS4zNzMuMzczLDAsMCwxLC4zLS4zNjhsMy4xODktLjYwOWEuMzc3LjM3NywwLDAsMSwuNDQ2LjM2OXYxLjc0MWwxLjg1NS0uNlYyMC43NmEuMzc0LjM3NCwwLDAsMSwuMjU1LS4zNTVsLjYxOC0uMjA4VjEzLjM3M2guMDE3QTI2Ljc5MiwyNi43OTIsMCwwLDAsMzAsMTAuOTMxYTE5LjAyLDE5LjAyLDAsMCwwLTIuNTA5LTMuMjg4QTI0LjUwNywyNC41MDcsMCwwLDAsMjUsOS4wOTFhMTMuMDEsMTMuMDEsMCwwLDAtMS4yNzktMS4wNTIsMTUuMzY1LDE1LjM2NSwwLDAsMC0xLjM3NS0uODk0LDI4LjM1MywyOC4zNTMsMCwwLDAsLjIzMi0zLjA3MUExNS45NjgsMTUuOTY4LDAsMCwwLDE4Ljg0NywyLjhhMjYuNDQsMjYuNDQsMCwwLDAtMS4zODUsMi43LDkuNDYsOS40NiwwLDAsMC0xLjQ1My0uMTE2aC0uMDE4YTkuNDU3LDkuNDU3LDAsMCwwLTEuNDU0LjExNiwyNi4yNzUsMjYuMjc1LDAsMCwwLTEuMzg1LTIuN0ExNS45NjEsMTUuOTYxLDAsMCwwLDkuNDIyLDQuMDc1YTI4LjE0MiwyOC4xNDIsMCwwLDAsLjIzMiwzLjA3MSwxNS4zMTIsMTUuMzEyLDAsMCwwLTEuMzc2Ljg5NEExMy4wNiwxMy4wNiwwLDAsMCw3LDkuMDkxYTI0LjU1MywyNC41NTMsMCwwLDAtMi40OS0xLjQ0OEExOS4wMiwxOS4wMiwwLDAsMCwyLDEwLjkzMWEyNi43OTIsMjYuNzkyLDAsMCwwLDEuNjk0LDIuNDQzWlxcXCIgZmlsbD1cXFwiIzQ3OGNiZlxcXCIvPjxwYXRoIGQ9XFxcIm0xMi40NjIgMTYuNmEyLjczOSAyLjczOSAwIDEgMS0yLjc0LTIuNzM4IDIuNzM5IDIuNzM5IDAgMCAxIDIuNzQgMi43MzhcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJtMTEuOCAxNi43NjRhMS44MTkgMS44MTkgMCAxIDEtMS44MTktMS44MTkgMS44MTcgMS44MTcgMCAwIDEgMS44MTkgMS44MTlcXFwiIGZpbGw9XFxcIiM0MTQwNDJcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTY2LDE5LjU5YS44NDQuODQ0LDAsMCwxLS44ODItLjhWMTYuMjY3YS44ODYuODg2LDAsMCwxLDEuNzY0LDB2Mi41MjJhLjg0NS44NDUsMCwwLDEtLjg4My44XFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwibTE5Ljg3MSAxNi42YTIuNzM5IDIuNzM5IDAgMSAwIDIuNzQtMi43MzggMi43MzkgMi43MzkgMCAwIDAtMi43NCAyLjczOFxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIm0yMC41MzEgMTYuNzY0YTEuODE4IDEuODE4IDAgMSAwIDEuODE3LTEuODE5IDEuODE3IDEuODE3IDAgMCAwLTEuODE3IDEuODE5XFxcIiBmaWxsPVxcXCIjNDE0MDQyXFxcIi8+XCIsXG5cdFwiR2l0XCI6IFwiPHBhdGggZD1cXFwiTTI5LjQ3MiwxNC43NTMsMTcuMjQ3LDIuNTI4YTEuOCwxLjgsMCwwLDAtMi41NSwwTDEyLjE1OCw1LjA2N2wzLjIyLDMuMjJhMi4xNDEsMi4xNDEsMCwwLDEsMi43MTIsMi43M2wzLjEsMy4xYTIuMTQzLDIuMTQzLDAsMSwxLTEuMjg1LDEuMjFsLTIuODk1LTIuODk1djcuNjE3YTIuMTQxLDIuMTQxLDAsMSwxLTEuNzY0LS4wNjJWMTIuM2EyLjE0NiwyLjE0NiwwLDAsMS0xLjE2NS0yLjgxNEwxMC45MTEsNi4zMTQsMi41MjgsMTQuN2ExLjgsMS44LDAsMCwwLDAsMi41NTFMMTQuNzUzLDI5LjQ3MmExLjgsMS44LDAsMCwwLDIuNTUsMEwyOS40NzIsMTcuM2ExLjgsMS44LDAsMCwwLDAtMi41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDRjMzVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIkdMU0xcIjogXCI8cGF0aCBkPVxcXCJNNy43NzksMTguOTIzQTIuMzMzLDIuMzMzLDAsMCwxLDUuNCwxNy4xNmMuMzA2LDEuNDYyLDEuOTYxLDIuODkyLDcuMTgzLDMuNTI5YTE0LjIyOCwxNC4yMjgsMCwwLDAsOS4yMzItMS42MTJzLjczMy0uMzIyLjI5My4xNzZjMCwwLTMuMTA3LDIuODczLTkuMiwyLjlTMS45NywxOS4xMDcsMiwxNmMtLjAyOS0zLjEwNyw0LjgwNi02LjE4NSwxMC45LTYuMTU1czkuMiwyLjksOS4yLDIuOWMuNDQuNS0uMjkzLjE3Ni0uMjkzLjE3Ni0xLjA4NC0uNy00LjI4Ni0yLjA4OS05LjIzMi0xLjYxMi00Ljg2Ni40NjktNi40NTMsMi4xMjItNi45ODEsMy4yMzVhMy4yNTQsMy4yNTQsMCwwLDAtLjMxOCwxLjI0LDIuNDI0LDIuNDI0LDAsMCwxLDIuNS0yLjMxNkEyLjUwNywyLjUwNywwLDAsMSwxMC4zLDE2LjE5NSwyLjUwNiwyLjUwNiwwLDAsMSw3Ljc3OSwxOC45MlptMTkuNjQ3LTEuMDc0SDMwdi45MzdIMjYuMzQ0VjEzLjYwOWgxLjA4MnY0LjI0Wk0yMy40NTQsMTZoMi4xNjN2Mi43OTFIMjQuOWwtLjEwOC0uNjQ5YTEuOSwxLjksMCwwLDEtMS42MTQuNzg2LDIuNDE0LDIuNDE0LDAsMCwxLTIuMzc5LTIuNzExLDIuNDg1LDIuNDg1LDAsMCwxLDIuNTMxLTIuNzRBMi4wNTMsMi4wNTMsMCwwLDEsMjUuNiwxNS4yMTdIMjQuNTE1YTEuMTM2LDEuMTM2LDAsMCwwLTEuMTMyLS44NTFjLS43NzEsMC0xLjQ4NS41MzQtMS40ODUsMS44NiwwLDEuNDEzLjc3MSwxLjc4MSwxLjUwNiwxLjc4MWExLjI4LDEuMjgsMCwwLDAsMS4yNTQtMS4xMzloLTEuMlYxNlpNNy43ODEsMTQuMWExLjg2LDEuODYsMCwwLDAtMS44LDIuMTA1LDEuODYsMS44NiwwLDAsMCwxLjgsMi4xMDUsMS44NiwxLjg2LDAsMCwwLDEuOC0yLjEwNUExLjg2LDEuODYsMCwwLDAsNy43ODEsMTQuMVptMi45MTEsMS4zODNoLjUyNXYuNDY4aC4wMTNhMS4xMiwxLjEyLDAsMCwxLC45ODctLjU2MywxLjU2NSwxLjU2NSwwLDAsMSwxLjUwNiwxLjY3NywxLjY3NSwxLjY3NSwwLDAsMS0xLjU4MywxLjgyNCwxLDEsMCwwLDEtLjg4LS40NDNoLS4wMTNWMjAuMWgtLjU1N1YxNS40NzlaTTEyLjEsMTguNGMuNjA4LDAsMS4wMTktLjUyNywxLjAxOS0xLjI1NCwwLS40MjQtLjE3MS0xLjI2NC0xLjAzMi0xLjI2NC0uOCwwLS44OTMuODY3LS44OTMsMS40MDYsMCwuODguNTUxLDEuMTE0LjkwNSwxLjExNFptNS0uNjUyYTEuMzc4LDEuMzc4LDAsMCwxLTEuNDg4LDEuMTMzLDEuNDg3LDEuNDg3LDAsMCwxLTEuNDgyLTEuNjU4YzAtMS4wMjUuNDk0LTEuODQyLDEuNTg4LTEuODQyLjk1NiwwLDEuNDI0Ljc2LDEuNDI0LDEuOTMxSDE0LjcyMWMwLC42OS4zMjMsMS4wODkuOTYyLDEuMDg5YS44NDEuODQxLDAsMCwwLC44NTQtLjY1MkgxNy4xWm0tLjU5LS44OGMtLjAzMi0uNTEzLS4yNDctLjk4Ny0uOTI0LS45ODdhLjk3Mi45NzIsMCwwLDAtLjkxOC45ODdoMS44NDJabTMuNzEzLDEuOTE3aC0uNTU3VjE2Ljc1MWMwLS41NzYtLjE2NS0uODY3LS43MDktLjg2Ny0uMzE3LDAtLjg3NC4yLS44NzQsMS4xdjEuOGgtLjU1N1YxNS40NzloLjUyNXYuNDY4aC4wMTNhMS4yLDEuMiwwLDAsMSwxLS41NjMsMS4wNDYsMS4wNDYsMCwwLDEsMS4xNTgsMS4xNTJ2Mi4yNTNcXFwiIHN0eWxlPVxcXCJmaWxsOiM0Mzg2YjVcXFwiLz5cIixcblx0XCJHbyBtb2R1bGVcIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDI1NC41IDIyNVxcXCI+PHRpdGxlPmZpbGVfdHlwZV9nb19wYWNrYWdlPC90aXRsZT48cGF0aCBkPVxcXCJNNjEuOTQ5LDEzLjA2OGMxNi4wNi0uMTQ3LDMyLjE0MywwLDQ4LjIxMS0uMDYyLTMuODEsMTYuNDA4LTcuNDY2LDMyLjg2Mi0xMS4yNjEsNDkuMjc3SDI1LjU0OGMtMi4zMTksMC00LjYzNy4wNzctNi45NTYtLjA5M0MzMyw0NS43NzUsNDcuNTY2LDI5LjUsNjEuOTQ5LDEzLjA2OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMmU2YzlcXFwiLz48cGF0aCBkPVxcXCJNMTQzLjUwOSwxMy4wMTRoNDguMDcyYzE0LjQzNywxNi40MzEsMjkuMDEzLDMyLjcyMyw0My40MTEsNDkuMTc3LTkuMjc0LjE5My0xOC41NDksMC0yNy44MjMuMDg1SDE1NC42NTRDMTUxLjAwNiw0NS44MzcsMTQ3LjExMSwyOS40NiwxNDMuNTA5LDEzLjAxNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMmU2YzlcXFwiLz48cGF0aCBkPVxcXCJNMTEwLjE2LDEzLjAxNGgzMy4zNDljMy42LDE2LjQ0Niw3LjQ4OSwzMi44MjMsMTEuMTYsNDkuMjU0SDk4LjlDMTAyLjY5NCw0NS44NjgsMTA2LjM1LDI5LjQyMiwxMTAuMTYsMTMuMDE0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmYzc1ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC41OTIsNjIuMTgzYzIuMzE5LjE3LDQuNjM3LjA4NSw2Ljk1Ni4wOTNIOTguOXEwLDI2LjAyNi4wNTQsNTIuMDUyYTE4Ljg1NywxOC44NTcsMCwwLDAsMS45NzkuMTM5aDUyLjExNGExNC42OTMsMTQuNjkzLDAsMCwwLDEuNTQ2LS4xMDhjLjE0Ny0xNy4zNjYsMC0zNC43MzIuMDctNTIuMWg1Mi41MTZjOS4yNzQtLjA0NiwxOC41NDkuMTA4LDI3LjgyMy0uMDg1VjIxMi42MkgxOC42UTE4LjU5MiwxMzcuNDA1LDE4LjU5Miw2Mi4xODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTdiZjU1XFxcIi8+PHBhdGggZD1cXFwiTTk4LjksNjIuMjkxaDU1Ljc2OWMtLjA2MiwxNy4zNjYuMDg1LDM0LjczMi0uMDcsNTIuMS0uNTE4LjA1NC0xLjAzNi4wOTMtMS41NDYuMTA4SDEwMC45NGExOC44NTcsMTguODU3LDAsMCwxLTEuOTcxLS4xMzFDOTguODYxLDk2Ljk5Myw5OC45NjksNzkuNjM0LDk4LjksNjIuMjkxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2RiYjU1MVxcXCIvPjxyZWN0IHg9XFxcIjM0LjM4OVxcXCIgeT1cXFwiMTYzLjY4MlxcXCIgd2lkdGg9XFxcIjcyLjQxN1xcXCIgaGVpZ2h0PVxcXCIyNy44ODVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMmYyZjJcXFwiLz48cGF0aCBkPVxcXCJNNjEuNDIyLDEzNy4wODVjLS4zODgsMC0uNDg3LS4xOTQtLjI5MS0uNDg3bDIuMDQxLTIuNjI1YTEuMzkzLDEuMzkzLDAsMCwxLDEuMDY5LS40ODdoMzQuN2MuMzg4LDAsLjQ4Ny4yOTEuMjkxLjU4NEw5Ny41ODIsMTM2LjZhMS40ODEsMS40ODEsMCwwLDEtLjk3Mi41ODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PHBhdGggZD1cXFwiTTQ2Ljc0LDE0Ni4wMjhjLS4zODgsMC0uNDg3LS4xOTQtLjI5MS0uNDg3bDIuMDQxLTIuNjI1YTEuMzkzLDEuMzkzLDAsMCwxLDEuMDY5LS40ODdIOTMuODlhLjQ0Ny40NDcsMCwwLDEsLjQ4Ny41ODRsLS43NzgsMi4zMzNhLjg1Ljg1LDAsMCwxLS44NzUuNTg0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjxwYXRoIGQ9XFxcIk03MC4yNjQsMTU0Ljk3MWMtLjM4OCwwLS40ODctLjI5MS0uMjkxLS41ODRsMS4zNTctMi40M2ExLjI4OSwxLjI4OSwwLDAsMSwuOTcyLS41ODRIOTEuNzQ3Yy4zODgsMCwuNTg0LjI5MS41ODQuNjgxbC0uMTk0LDIuMzMzYS43MzEuNzMxLDAsMCwxLS42ODEuNjgxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjxwYXRoIGQ9XFxcIk0xNzEuMTYzLDEzNS4zMzVjLTYuMTI0LDEuNTU2LTEwLjMsMi43MjItMTYuMzMsNC4yOC0xLjQ2Mi4zODgtMS41NTYuNDg3LTIuODE5LS45NzJhMTMuMDExLDEzLjAxMSwwLDAsMC00LjU2OS0zLjY5NGMtNi4xMjQtMy4wMTMtMTIuMDU0LTIuMTM4LTE3LjU5NCwxLjQ2MmEyMC42NzEsMjAuNjcxLDAsMCwwLTkuOTE4LDE4LjQ2OSwxNS4yNDIsMTUuMjQyLDAsMCwwLDEzLjEyMywxNS4yNjFjNi42MS44NzUsMTIuMTUxLTEuNDYyLDE2LjUyNS02LjQxNS44NzUtMS4wNjksMS42NTMtMi4yMzYsMi42MjUtMy42SDEzMy40NDZjLTIuMDQxLDAtMi41MjgtMS4yNjMtMS44NDctMi45MTYsMS4yNjMtMy4wMTMsMy42LTguMDY4LDQuOTU4LTEwLjZhMi42MjUsMi42MjUsMCwwLDEsMi40My0xLjU1NmgzNS4zODRjLS4xOTQsMi42MjUtLjE5NCw1LjI0OS0uNTg0LDcuODc0YTQxLjQ1Niw0MS40NTYsMCwwLDEtNy45NjcsMTkuMDQyYy02Ljk5NSw5LjIzNC0xNi4xMzYsMTQuOTctMjcuNywxNi41MjUtOS41MjYsMS4yNjMtMTguMzc0LS41ODQtMjYuMTQ4LTYuNDE1QTMwLjUzMywzMC41MzMsMCwwLDEsOTkuNjI1LDE2MC41MWMtMS4yNjMtMTAuNiwxLjg0Ny0yMC4xMjIsOC4yNjItMjguNDgxQTQzLjEzNyw0My4xMzcsMCwwLDEsMTM1LjEsMTE1LjIxMmM5LjEzNy0xLjY1MywxNy44ODYtLjU4NCwyNS43Niw0Ljc2M0EzMC40NzEsMzAuNDcxLDAsMCwxLDE3Mi4xNCwxMzMuNjhDMTcyLjcxOSwxMzQuNTU4LDE3Mi4zMywxMzUuMDQ0LDE3MS4xNjMsMTM1LjMzNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48cGF0aCBkPVxcXCJNMjAzLjMzOCwxODkuMDljLTguODQ2LS4xOTQtMTYuOTEzLTIuNzIyLTIzLjcxOS04LjU1NGEzMC40ODUsMzAuNDg1LDAsMCwxLTEwLjUtMTguNzYxYy0xLjc1LTEwLjk4NCwxLjI2My0yMC43LDcuODc0LTI5LjM1Niw3LjEtOS4zMzEsMTUuNjUxLTE0LjE5MiwyNy4yMTgtMTYuMjMzLDkuOTE4LTEuNzUsMTkuMjQ3LS43NzgsMjcuNyw0Ljk1OCw3LjY4LDUuMjQ5LDEyLjQ0MiwxMi4zNDUsMTMuNzA2LDIxLjY3NiwxLjY1MywxMy4xMjMtMi4xMzgsMjMuODE2LTExLjE3OSwzMi45NTNhNDQuNTQyLDQ0LjU0MiwwLDAsMS0yMy4zMjksMTIuNDQyQzIwOC40OSwxODguNywyMDUuODY2LDE4OC44LDIwMy4zMzgsMTg5LjA5Wm0yMy4xMzUtMzkuMjcxYTI3Ljk3OCwyNy45NzgsMCwwLDAtLjI5MS0zLjIwOCwxNi4wMTMsMTYuMDEzLDAsMCwwLTE4LjM3NS0xMy4yMzVxLS43MzQuMTE5LTEuNDU0LjMwNmMtOS4wNCwyLjA0MS0xNC44NzMsNy43NzctMTcuMDExLDE2LjkxM2ExNi4wMDksMTYuMDA5LDAsMCwwLDguOTQzLDE4LjM3NCwxNy44MiwxNy44MiwwLDAsMCwxNS44NDUtLjU4NGM3LjY3OS0zLjk4NSwxMS44NTktMTAuMjA2LDEyLjM0OC0xOC41NjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PC9zdmc+XCIsXG5cdFwiR29cIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDI1NC41IDIyNVxcXCI+PHRpdGxlPmZpbGVfdHlwZV9nbzwvdGl0bGU+PHBhdGggZD1cXFwiTS00Ni45MjYsODljLS42MjEsMC0uNzc3LS4zMTEtLjQ2Ni0uNzc3bDMuMjYyLTQuMTk0YTIuMjI1LDIuMjI1LDAsMCwxLDEuNzA4LS43NzdIMTMuMDI2Yy42MjEsMCwuNzc3LjQ2Ni40NjYuOTMybC0yLjY0LDQuMDM4YTIuMzY3LDIuMzY3LDAsMCwxLTEuNTUzLjkzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48cGF0aCBkPVxcXCJNLTcwLjM3OSwxMDMuMjg1Yy0uNjIxLDAtLjc3Ny0uMzExLS40NjYtLjc3N2wzLjI2Mi00LjE5NGEyLjIyNSwyLjIyNSwwLDAsMSwxLjcwOC0uNzc3SDQuOTVhLjcxNC43MTQsMCwwLDEsLjc3Ny45MzJMNC40ODQsMTAyLjJhMS4zNTgsMS4zNTgsMCwwLDEtMS40LjkzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48cGF0aCBkPVxcXCJNLTMyLjc5MiwxMTcuNTc0Yy0uNjIxLDAtLjc3Ny0uNDY2LS40NjYtLjkzMmwyLjE3NC0zLjg4M2EyLjA2LDIuMDYsMCwwLDEsMS41NTMtLjkzMkgxLjUzM2MuNjIxLDAsLjkzMi40NjYuOTMyLDEuMDg3bC0uMzExLDMuNzI4YTEuMTY3LDEuMTY3LDAsMCwxLTEuMDg3LDEuMDg3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0xMjguNDI2LDg2LjJjLTkuNzg1LDIuNDg1LTE2LjQ2NCw0LjM0OS0yNi4wOTMsNi44MzQtMi4zMy42MjEtMi40ODUuNzc3LTQuNS0xLjU1My0yLjMzLTIuNjQtNC4wMzgtNC4zNDktNy4zLTUuOS05Ljc4NS00LjgxNS0xOS4yNTktMy40MTctMjguMTEyLDIuMzMtMTAuNTYxLDYuODM0LTE2LDE2LjkyOS0xNS44NDIsMjkuNTEuMTU1LDEyLjQyNSw4LjcsMjIuNjc2LDIwLjk2OCwyNC4zODUsMTAuNTYxLDEuNCwxOS40MTQtMi4zMywyNi40LTEwLjI1MSwxLjQtMS43MDgsMi42NC0zLjU3Miw0LjE5NC01Ljc0N0g2OC4xNjNjLTMuMjYyLDAtNC4wMzgtMi4wMTktMi45NTEtNC42NTksMi4wMTktNC44MTUsNS43NDctMTIuODkxLDcuOTIxLTE2LjkyOWE0LjE5NCw0LjE5NCwwLDAsMSwzLjg4My0yLjQ4NWg1Ni41MzVjLS4zMTEsNC4xOTQtLjMxMSw4LjM4Ny0uOTMyLDEyLjU4MWE2Ni4yMzksNjYuMjM5LDAsMCwxLTEyLjczNiwzMC40NDJDMTA4LjcsMTU5LjUxLDk0LjEsMTY4LjY3Myw3NS42MTgsMTcxLjE1OGMtMTUuMjIxLDIuMDE5LTI5LjM1NS0uOTMyLTQxLjc4LTEwLjI1MWE0OC43ODUsNDguNzg1LDAsMCwxLTE5LjcyNS0zNC40OGMtMi4wMTktMTYuOTI5LDIuOTUxLTMyLjE1LDEzLjItNDUuNTA4QzM4LjM0Miw2Ni40NzUsNTIuOTQyLDU3LjMxMiw3MC44LDU0LjA1YzE0LjYtMi42NCwyOC41NzgtLjkzMiw0MS4xNTksNy42MWE0OC42ODYsNDguNjg2LDAsMCwxLDE4LjAxNywyMS45QzEzMC45MTEsODQuOTU4LDEzMC4yODksODUuNzM1LDEyOC40MjYsODYuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48cGF0aCBkPVxcXCJNMTc5LjgzNSwxNzIuMDljLTE0LjEzNC0uMzExLTI3LjAyNS00LjM0OS0zNy45LTEzLjY2OGE0OC43MTEsNDguNzExLDAsMCwxLTE2Ljc3NC0yOS45NzZjLTIuOC0xNy41NTEsMi4wMTktMzMuMDgyLDEyLjU4MS00Ni45MDUsMTEuMzM4LTE0LjkxLDI1LjAwNi0yMi42NzYsNDMuNDg4LTI1LjkzOCwxNS44NDItMi44LDMwLjc1My0xLjI0Myw0NC4yNjUsNy45MjEsMTIuMjcsOC4zODcsMTkuODgsMTkuNzI1LDIxLjksMzQuNjM1LDIuNjQsMjAuOTY4LTMuNDE3LDM4LjA1Mi0xNy44NjEsNTIuNjUyYTcxLjE3LDcxLjE3LDAsMCwxLTM3LjI3NiwxOS44OEMxODguMDY3LDE3MS40NjksMTgzLjg3NCwxNzEuNjI0LDE3OS44MzUsMTcyLjA5Wk0yMTYuOCwxMDkuMzQzYTQ0LjcsNDQuNywwLDAsMC0uNDY2LTUuMTI1Yy0yLjgtMTUuMzc2LTE2LjkyOS0yNC4wNzQtMzEuNjg0LTIwLjY1Ny0xNC40NDQsMy4yNjItMjMuNzYzLDEyLjQyNS0yNy4xOCwyNy4wMjVhMjUuNTc5LDI1LjU3OSwwLDAsMCwxNC4yODksMjkuMzU1YzguNTQyLDMuNzI4LDE3LjA4NSwzLjI2MiwyNS4zMTctLjkzMkMyMDkuMzQ1LDEzMi42NCwyMTYuMDI0LDEyMi43LDIxNi44LDEwOS4zNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBhY2Q3XFxcIi8+PC9zdmc+XCIsXG5cdFwiR3JhZGxlXCI6IFwiPHBhdGggZD1cXFwiTTEzLjUsNi45NjVoNy45MjNsNCw2Ljg4N0gyOS45OEExNC4xLDE0LjEsMCwwLDAsMTEuMDI0LDIuOTMyTDEzLjUsNi45NjVcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDY1MzNcXFwiLz48cGF0aCBkPVxcXCJNMjUuNjI4LDE4bC00LjIwOSw3LjI1MkgxMC44MDZMNS41LDE2LjEwOCw5LjczOSw4LjgsNy40LDQuOTgxQTE0LjAzLDE0LjAzLDAsMSwwLDMwLDE4SDI1LjYyOFxcXCIgc3R5bGU9XFxcImZpbGw6IzgyYjgxNlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4wNjEsMTUuOTYzYTUuMDI2LDUuMDI2LDAsMSwxLTUuMDI2LTUsNS4wMTMsNS4wMTMsMCwwLDEsNS4wMjYsNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjUzMlxcXCIvPlwiLFxuXHRcIkdyYXBoUUxcIjogXCI8cmVjdCB4PVxcXCItMC40M1xcXCIgeT1cXFwiMTIuNTM0XFxcIiB3aWR0aD1cXFwiMjIuOTAxXFxcIiBoZWlnaHQ9XFxcIjEuMTg3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNS44NTggMTYuMTA3KSByb3RhdGUoLTU5Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCI0LjU0NVxcXCIgeT1cXFwiMjEuMTYyXFxcIiB3aWR0aD1cXFwiMjIuOTAyXFxcIiBoZWlnaHQ9XFxcIjEuMTg3XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMTAuNDNcXFwiIHk9XFxcIjE4LjAwOFxcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjEzLjIyN1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTE1LjgxMiAyMS44NTcpIHJvdGF0ZSgtNTkuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjIwLjM4MVxcXCIgeT1cXFwiMC43NzFcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIxMy4yMjdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDQuMDkyIDIxLjg1Nikgcm90YXRlKC01OS45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiNC40MTJcXFwiIHk9XFxcIjYuNzg3XFxcIiB3aWR0aD1cXFwiMTMuMjI3XFxcIiBoZWlnaHQ9XFxcIjEuMTg3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMi4yMTMgNi41MDIpIHJvdGF0ZSgtMzAuMDAxKVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjIwLjM4OVxcXCIgeT1cXFwiMS42NzdcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIyMi45MDFcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjc1MyAxMi4yNSkgcm90YXRlKC0zMC4wMDEpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiNS40NTRcXFwiIHk9XFxcIjkuMzg2XFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMTMuMjI4XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMjUuMzZcXFwiIHk9XFxcIjkuMzg2XFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMTMuMjI4XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMTUuMjIyXFxcIiB5PVxcXCIyNC4wOTdcXFwiIHdpZHRoPVxcXCIxMS41MDRcXFwiIGhlaWdodD1cXFwiMS4wMzdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC05LjQ5OCAxMy43ODUpIHJvdGF0ZSgtMzAuMDAxKVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0yOC4xMiwyM2EyLjUsMi41LDAsMSwxLS45MTUtMy40MTFBMi41LDIuNSwwLDAsMSwyOC4xMiwyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk04LjIsMTEuNWEyLjUsMi41LDAsMSwxLS45MTUtMy40MTFBMi41LDIuNSwwLDAsMSw4LjIsMTEuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0zLjg4LDIzYTIuNSwyLjUsMCwxLDEsMy40MTEuOTE1QTIuNSwyLjUsMCwwLDEsMy44OCwyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0yMy44LDExLjVhMi41LDIuNSwwLDEsMSwzLjQxMS45MTVBMi41LDIuNSwwLDAsMSwyMy44LDExLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNDkzLDIuNDkzLDAsMCwxLDE2LDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTE2LDYuOTkxYTIuNSwyLjUsMCwxLDEsMi41LTIuNSwyLjQ5MywyLjQ5MywwLDAsMS0yLjUsMi41XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+XCIsXG5cdFwiR3Jvb3Z5XCI6IFwiPHBhdGggZD1cXFwiTTcuNDUzLDI5Ljg2NWMwLS4wNzQuNDk0LTEuNzE3LDEuMS0zLjY1MUEyMS44MDgsMjEuODA4LDAsMCwwLDkuNSwyMi42Yy0uMDc5LS4wNTYtLjM1LjA0NS0uNi4yMjQtLjc2NC41MzgtLjkyLjQtMS40OTEtMS4zNTYtLjYxNy0xLjktLjYzOS0yLjA5MS0uMzE3LTIuODEuMjEtLjQ3LjItLjU3OS0uMTQ3LTEuMjc3YTMuNzUsMy43NSwwLDAsMS0uMzc3LTEuMDQ0YzAtLjI2LTEuNDEzLTEuNDM4LTMuNjQ3LTMuMDRBMy44NDUsMy44NDUsMCwwLDEsMiwxMi41YTEwLjQ3NywxMC40NzcsMCwwLDEsMi4zNzgtLjAzOWwyLjM3OC4xLjIzMi0uNzQxYy45ODEtMy4xMywyLjQ2My01Ljk1NywzLjEyMi01Ljk1Ny4xMzcsMCwuNDE2LjI2NS42MTkuNTg4LjMzMS41MjcuMzc2Ljg1My40MzUsMy4xMjZhMjMuMDEzLDIzLjAxMywwLDAsMCwuMTY1LDIuNzM5Yy4wNTUuMTEuMjI4LS4wMzUuMzg1LS4zMjIuMi0uMzY3LjQxMi0uNDY3LjcxLS4zMzVzLjQ4NS4wNDMuNjQ2LS4zNDVjLjI0Mi0uNTgyLDEuNDU1LTQuNTEzLDEuNDU1LTQuNzE3LDAtLjA2OS4yNC0uOS41MzQtMS44NDZzLjYzMS0yLjAzNi43NTEtMi40MjRjLjIxMy0uNjg4LjI0Ni0uNjA3LDEuNTI0LDMuNzI2LDEuMzIsNC40NzQsMi4wMyw2LjEyNCwyLjM4NSw1LjU0NC4yNDgtLjQsMS41NS0uNDI4LDEuOTE0LS4wMzQuMjA3LjIyNC4zMzguMjIxLjQ1My0uMDEuMjM3LS40OC44LS40Ljk1My4xNC4xMTcuNDIzLjE0Ny40MjMuMzIsMGEuODEyLjgxMiwwLDAsMSwuNjkyLS40NjZjLjM4OSwwLC41MzguMTY0LjY2Ni43MzVsLjE2NS43MzUsMi41NTgtLjE4M0ExMS41MjEsMTEuNTIxLDAsMCwxLDMwLDEyLjQ2OGEyMC43OSwyMC43OSwwLDAsMS0yLjMyMSwxLjg4OWMtMS4yNzcuOTYtMi4zNDIsMS43NzUtMi4zNjgsMS44MWExNy42MDcsMTcuNjA3LDAsMCwwLC4xMjgsMS44NjcsMTEuMDc1LDExLjA3NSwwLDAsMS0uNTQ0LDUuNzEzLDQuMzA4LDQuMzA4LDAsMCwxLTEuMDIxLDEuNDljLS4yNzguMTg2LS41MDYuNC0uNTA2LjQ4NnMuMywxLjA3Ny42NiwyLjIxMkE5LjY4Miw5LjY4MiwwLDAsMSwyNC41NjgsMzBjLS4xMDksMC0yLjc1Ny0yLjA3LTYuODc2LTUuMzczYTExLjE0MywxMS4xNDMsMCwwLDAtMS42NDMtMS4xODRjLS4xNzEsMC0xLjY0OSwxLjEzMy01Ljk4NCw0LjU4OC0yLjUxNCwyLTIuNjEyLDIuMDczLTIuNjEyLDEuODM1Wm01LjE1OC00LjcyN2MxLjMzNy0xLjA1MSwyLjY2NC0yLjA3OCwyLjk0Ny0yLjI4Mi40ODgtLjM1MS42NTEtLjI2MywzLjAyMSwxLjYzMSwxLjM3OCwxLjEsMi43MzcsMi4xNzQsMy4wMjEsMi4zODRzLjg2OC42NjYsMS4zLDEuMDEzYy40OTEuNC43NDIuNDkyLjY3NC4yNTYtLjc3LTIuNjM0LS43OTMtMi42NzgtMS4zMjctMi40NzYtLjY0NC4yNDQtMS4wNDMtLjAwNi0xLjI0OS0uNzgzYTEuNzM5LDEuNzM5LDAsMCwxLC4yNC0xLjQ1MSwyLjM3NywyLjM3NywwLDAsMC0uMjIxLTIuNzMxLDQuMjg5LDQuMjg5LDAsMCwxLS42ODYtMS41M2wtLjI0MS0xLjAyMy0uNTE3LjcxYy0uNjM2Ljg3My0xLjQxMS45MTgtMi4wNTkuMTE5bC0uNDc3LS41ODgtLjU1NC43NjJjLS41NTUuNzYzLTEuMTk0Ljg2Mi0xLjg0NC4yODQtLjE3OS0uMTU5LS4yNTgtLjEtLjI1OC4yYTEuMjQsMS4yNCwwLDAsMS0uMzc1Ljc3N2MtLjYxOS41Ny0xLjIyMy40MTktMS42MzMtLjQwOUwxMiwxOS4yNDlsLS4zLjc3NWE3LjAzMiw3LjAzMiwwLDAsMS0uODUzLDEuNDc5LDEzLjg5MSwxMy44OTEsMCwwLDAtMS40NTUsMy42NjNjLS41LDEuNjI3LS45LDMuMDQyLS45LDMuMTQzcy4zODEtLjE0MS44NDctLjUzOCwxLjk0Mi0xLjU4MiwzLjI3OS0yLjYzM1ptMTEuMzQzLTEuMTMxYzEuMDE1LTEuMTU0LDEuMjUtMy4yODguOC03LjI3MS0uMzc1LTMuMzI5LS41NjItNC40MTktLjc4NC00LjU2NS0uMTU0LS4xLS4xNzcuMDEtLjA5MS40MjYuNTYyLDIuNy41OTMsNC4wNTMuMSw0LjQzNC0uMzM3LjI2Mi0uNjk1LS43MTktLjk3Ni0yLjY3NS0uMjE4LTEuNTE1LS40NDUtMi4yLS42MTctMS44NWEzLjM1OSwzLjM1OSwwLDAsMCwuMTYsMS4wNywyNi43MTgsMjYuNzE4LDAsMCwxLC4zOTQsMy4zODEsMjEuNzU3LDIxLjc1NywwLDAsMCwuMzc1LDMuMTUxYy4zMDkuOTg1LjguNzQ3LDEuMTE4LS41NHMuMzUtLjQyNS4wNDQsMS4wNTVjLS4zMTcsMS41MzYtMS4yNiwyLTIuMzUyLDEuMTUtLjE3NS0uMTM2LS4yMzQsMC0uMjM0LjU1NWE0Ljk4OCw0Ljk4OCwwLDAsMS0uMywxLjVsLS4zLjc2NS40MDguMTM5QTIuMjQ3LDIuMjQ3LDAsMCwwLDIzLjk1NCwyNC4wMDdaTTkuMzQ2LDIxLjQ2OGMyLjExOC0xLjIzMiwyLjUtMi42NjgsMS43OTMtNi44MDVhMjEuOTQxLDIxLjk0MSwwLDAsMS0uMy0yLjNjMC0xLjAyOS0uMjU2LS41NTQtLjQ0OC44MzItLjI1NCwxLjgzMi0xLjAxNiwzLjM4OS0xLjY1NywzLjM4My0uNTU3LS4wMDUtLjczOC0uMjEtLjk2OC0xLjA5NC0uNDEzLTEuNTg1LjAzNy00LjAxOCwxLjE4NC02LjQwNi44NC0xLjc0OSwxLjMtMS45MDgsMS4zLS40NDgsMCwyLjI3Ni0uNzc2LDUuNjI1LTEuMTg0LDUuMTE1YTMuODE0LDMuODE0LDAsMCwxLC4wNjUtMi4yYy4yLS43Mi4xNTctMS44MTgtLjA2Ni0xLjgxOC0uMjU5LDAtLjc3MywxLjkxLS44NDEsMy4xMjctLjA2LDEuMDc2LS4wMjIsMS4zMzguMjMxLDEuNjEyLjg4OC45NjIsMi4wNTItMS45NzMsMi4xMTEtNS4zMjMuMDMxLTEuNzU5LS4xMzgtMi4yNTQtLjY3NC0xLjk4Mi0uNzgxLjQtMi44ODMsNS44ODMtMi44ODMsNy41MjMsMCwxLjI4My4zMTksMi4xODYuODgsMi40OTEuOTU0LjUxOSwxLjg3Ni0uNCwyLjUyOS0yLjUzMWwuMjc1LS44OTRWMTQuOTdjMCwxLjc1OS0uNTY3LDIuNjg2LTIuMzU3LDMuODUyYTguODkzLDguODkzLDAsMCwwLS44NTIuNiw5Ljc1OCw5Ljc1OCwwLDAsMCwuODkyLDIuNTM0LDUuMjgzLDUuMjgzLDAsMCwwLC45NjktLjQ4NFptMTIuNzY0LTIuMTg0Yy4yMTMtLjQ3NS4yNS0uOTkyLjItMi44MTctLjA1LTEuOTg2LS4xLTIuMzM3LS40ODYtMy4xNDQtLjY5MS0xLjQ1OC0xLjU0NC0xLjA4Ni0xLjA0NS40NTUuMjY1LjgyLjU4OS42OC40NzUtLjIwNS0uMDkxLS43LjA3OS0uNzIzLjM3NS0uMDQxLjU1NiwxLjI4MS40MTYsMy4wNTUtLjI0MiwzLjA1NS0uNDUsMC0uNTktLjM5LS44ODMtMi40NTlhNi43NTIsNi43NTIsMCwwLDAtLjM2Mi0xLjcxNGMtLjIxNywwLS4zMTQuMzg4LS4xNzkuNzE4YTI4LjIzLDI4LjIzLDAsMCwxLC40NTIsMi44NTljLjQ0MSwzLjUwNywxLjA1Nyw0LjcwNywxLjY5LDMuMjkzWm0tOC4zOC4wNTZhMy4zODUsMy4zODUsMCwwLDAsLjA5NS0xLjMzYy0uMDYtMS4wMDgtLjA5NC0xLjA4MS0uMzY0LS43OS0uMzg3LjQxOS0uOC0uMzc1LS45NDQtMS44LS4xMDctMS4wODItLjE0LTEuMDYxLjY0LS40MTUuMS4wODEuMzQ2LS4xOTQuNTUzLS42MTEuMzc3LS43NjMuNS0xLjY4LjIyOC0xLjY4LS4wODEsMC0uMTQ3LjEzNC0uMTQ3LjMsMCwuNDI5LS40LjM2OC0uNDk0LS4wNzUtLjA1My0uMjU4LS4xNjYtLjE2Ny0uMzY3LjMtLjE2LjM2OS0uMzU2LjY3MS0uNDM0LjY3MXMtLjE4NS0uMy0uMjM3LS42NzFjLS4wOS0uNjQ2LS4xLS42NS0uMy0uMTEzYS45NTEuOTUxLDAsMCwwLS4wMS45NjQsMTguODE4LDE4LjgxOCwwLDAsMSwuNTIxLDMuNzkxYzAsMS4xNzQuOCwyLjEsMS4yNjcsMS40NjNabTIuNjg4LTEuNTU2YTcuMDU1LDcuMDU1LDAsMCwwLC40MTYtNC4yNTljLS4yMzYtMS4xNDEtLjY0NS0xLjU2OC0xLjIyMi0xLjI3NS0uNDI5LjIxOC0xLjA4MiwyLjc0Ni0xLjA4NCw0LjIsMCwyLjI2MiwxLjA2LDMuMDE1LDEuODksMS4zMzdabS0xLjAwNy0xLjc5MmEzLjc3LDMuNzcsMCwwLDEtLjI5LTEuNDE2YzAtLjc0NS4wMjItLjc3Mi4yLS4zLjIyLjU4Ni42MTEuNjg4Ljc2MS4yYTEuMDM1LDEuMDM1LDAsMCwwLS4wNjUtLjY1NmMtLjIzMi0uNDY5LS4yLTEuMTA3LjA0OS0xLjEwNy4yOCwwLC42NzIsMS4xNTQuNjcyLDEuOTgyLDAsLjYwOS0uNjEzLDEuODkzLS45LDEuODkzLS4wNywwLS4yNi0uMjY4LS40MjItLjZaTTE5LjM0OCwxNy43YTYuNDQ3LDYuNDQ3LDAsMCwwLS4xNDEtNC45MThjLS4zNTgtLjc3My0xLjE1My0uOTA2LTEuNDc5LS4yNDhhMTEuNjA3LDExLjYwNywwLDAsMC0uNDg5LDMuODk1QzE3LjQ3NywxOC4zNDgsMTguNzE2LDE5LjEsMTkuMzQ4LDE3LjdaTTE4LjEsMTUuNTI3YTIuNDkyLDIuNDkyLDAsMCwxLS4zMTgtMS41NjVjLjAwOC0uOTA5LjAzMS0uOTkxLjEzNS0uNDcyLjE1My43NjQuNDczLDEuMDUyLjc1My42NzkuMTc0LS4yMzEuMTY2LS4zNDEtLjA1LS42NzYtLjI4OC0uNDQ3LS4zNDQtMS4wNzktLjEtMS4wNzlhNS4wMzcsNS4wMzcsMCwwLDEsMS4wMTcsMi4yNWMwLC40OC0uNTY0LDEuMzI3LS44ODQsMS4zMjdDMTguNTI3LDE1Ljk5MSwxOC4yNzYsMTUuNzgyLDE4LjEsMTUuNTI3Wm04LjY2Mi0xLjMxOCwxLjU0Ny0xLjE3NS0xLjY1OC0uMDEyYy0xLjQ4NC0uMDExLTEuNjU4LjA0My0xLjY1Ni41MWExMS41MzIsMTEuNTMyLDAsMCwwLC4yLDEuODU3Yy4wMTEsMCwuNzE2LS41MzQsMS41NjctMS4xOFpNNi41MzUsMTRsLjE1OC0uOTQ5TDUuMywxMi45NTZjLS43NjQtLjA1Mi0xLjM4OS0uMDEyLTEuMzg5LjA4OGExNC4xLDE0LjEsMCwwLDAsMi40NDcsMS45MzRDNi4zNzEsMTQuOTYxLDYuNDQ4LDE0LjUyMSw2LjUzNSwxNFptOS41MjYtMi45NDFhMS42MjQsMS42MjQsMCwwLDEsLjgxOS42Yy4xOTIuMzQ5LjI3Ni4zMjYuNTczLS4xNjMuMTkxLS4zMTUuNDQtLjU3Mi41NTMtLjU3MnMuMi0uMDY2LjItLjE0NmMwLS4yNzgtMi4xMjItNy4zMDYtMi4yLTcuM3MtMi4yNyw3LjM4Ni0yLjMzNyw3LjkyNWMtLjAyOC4yMjYuMDYuMzA5LjIzMS4yMTkuMTUyLS4wODEuMzYzLjA2My40NjguMzE5LjE3LjQxNS4yNC4zODIuNjQ0LS4zMDYuMzg0LS42NTQuNTQ0LS43NDIsMS4wNDgtLjU3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMzNcXFwiLz48cGF0aCBkPVxcXCJNMTQuNSwxMi4xNzVhLjg1Ljg1LDAsMCwxLS4xMTUtLjIuNzM3LjczNywwLDAsMC0uMTk0LS4yOS4yODEuMjgxLDAsMCwwLS4zLS4wNjFjLS4wODcuMDM1LS4xMTEuMDM5LS4xNS4wMjQtLjA2NS0uMDI2LS4wODktLjEwNi0uMDctLjI0Mi4wMjMtLjE2OS4yLS44MjUuNTQ4LTIuMDU0LjcxMS0yLjUsMS42NjYtNS42NDYsMS43NzItNS44MzkuMDEyLS4wMjEuMDEyLS4wMjEuMDI0LDAsLjA2My4xMTQuNDMyLDEuMjY2LjkzNywyLjkyMi42ODIsMi4yNCwxLjI1LDQuMjEsMS4yNSw0LjMzOSwwLC4wNzktLjA2LjEyNy0uMTg2LjE0Ny0uMTU3LjAyNi0uMzM5LjIxMi0uNTg3LjZhMS42NzQsMS42NzQsMCwwLDEtLjIyNi4zMWMtLjA0OC4wNDYtLjA1Mi4wNDgtLjEuMDQ4cy0uMDU2LDAtLjEtLjA0M2EuOTU4Ljk1OCwwLDAsMS0uMS0uMTQ0LDEuMjY4LDEuMjY4LDAsMCwwLS40MTQtLjQyMiwxLjUyNSwxLjUyNSwwLDAsMC0uNzM4LS4yODEuNDM0LjQzNCwwLDAsMC0uNC4xNTYsMi43MTgsMi43MTgsMCwwLDAtLjQxNi42Yy0uMjU3LjQyNS0uMzQ4LjUxMy0uNDQxLjQyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2Mzk4YWFcXFwiLz48cGF0aCBkPVxcXCJNNi4yNTIsMTQuOTI4YTE5LjA1NSwxOS4wNTUsMCwwLDEtMi4zLTEuODM4Yy0uMDMxLS4wMzgtLjAzNC0uMDQ0LS4wMjUtLjA1N2EyLjcsMi43LDAsMCwxLDEuMTQtLjA4NWMuMjMuMDEyLDEuNjE5LjEsMS42MjEuMTA4cy0uMywxLjc3OS0uMzIxLDEuODgxQzYuMzU3LDE0Ljk4MSw2LjMzNywxNC45NzksNi4yNTIsMTQuOTI4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzOThhYVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS4xNzcsMTUuMzVBMTQuMjM5LDE0LjIzOSwwLDAsMSwyNSwxMy41NmEuNTUzLjU1MywwLDAsMSwuMDQ0LS4yOWMuMDgxLS4xNTEuMjQ1LS4yMDUuNy0uMjMuMjI4LS4wMTMsMS4yODEtLjAxNSwyLjAyNSwwbC41MjEuMDA4TDI3LjAyOSwxNGMtMS4xNDQuODY3LTEuODEsMS4zNjktMS44MzQsMS4zODItLjAwNiwwLS4wMTItLjAwNi0uMDE4LS4wMjdoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2Mzk4YWFcXFwiLz48cGF0aCBkPVxcXCJNOC41MDYsMjguMjgxYzAtLjA3MS4xNDktLjYuNTI3LTEuODc4LjkwNS0zLjA1NywxLjMxOS00LjE2NSwxLjgyNy00Ljg5MmE3LjY2NCw3LjY2NCwwLDAsMCwuOTY5LTEuNzkyTDEyLDE5LjI5MmwuMjI1LjQ0OGMuMzk0Ljc4NC42MzIsMS4wMTEsMS4wNjIsMS4wMTZhMS4yMzksMS4yMzksMCwwLDAsMS4xLTEuMTM3YzAtLjEyNC4wNDQtLjI1MS4wODYtLjI1MWExLjExOSwxLjExOSwwLDAsMSwuMjI2LjE0LDEuMjcxLDEuMjcxLDAsMCwwLC42NjYuMy44NzkuODc5LDAsMCwwLC42MDktLjE0OCwyLjQ3LDIuNDcsMCwwLDAsLjcxMS0uNzY0Yy4xODctLjI1Mi4zNDctLjQ1OS4zNTQtLjQ1OXMuMTQzLjE1OS4zLjM1MmE1LjA5MSw1LjA5MSwwLDAsMCwuNDIyLjQ2NywxLjA0OSwxLjA0OSwwLDAsMCwxLjU0OS0uMDgsNi4xMTEsNi4xMTEsMCwwLDAsLjQ2Ny0uNTcyYy4xNjgtLjIyOC4zMDctLjQxLjMxLS40cy4wNjYuMjY5LjE0MS41ODQuMTY5LjY3LjIwOS43ODlhMy44MjYsMy44MjYsMCwwLDAsLjY0MiwxLjIzNCwyLjE3LDIuMTcsMCwwLDEsLjQ2NiwxLjI0NiwzLjA1MSwzLjA1MSwwLDAsMS0uMzUyLDEuNDQ3LDIuMDcsMi4wNywwLDAsMC0uMjY3LjkzNCwyLjAxNywyLjAxNywwLDAsMCwuMjEzLjg1MS43NzMuNzczLDAsMCwwLDEuMDY5LjQxMywxLjM1MSwxLjM1MSwwLDAsMSwuMzE2LS4wNjhjLjIsMCwuMzE1LjE5My41NDIuODgxLjE1Ny40NzQuNSwxLjYzNy41LDEuNjk1LDAsLjAzLS4wMTYuMDUxLS4wMzkuMDUxYTEuNDg2LDEuNDg2LDAsMCwxLS40MDctLjIyNGMtLjItLjE0NC0yLjYxMi0yLjAyOS0zLjQwOC0yLjY2My0yLjEyOC0xLjY5My0yLjgyOC0yLjIzMy0zLjE3MS0yLjQ0Ni0uMzctLjIzLS42MjItLjI4NS0uODI3LS4xNzctLjI1NC4xMzMtMy43MjYsMi44NDctNS43NTEsNC41QTEwLjg0NiwxMC44NDYsMCwwLDEsOC42NSwyOC4yNTFjLS4xNDkuMDgzLS4xNDMuMDgxLS4xNDMuMDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjM5OGFhXFxcIi8+XCIsXG5cdFwiSGFtbFwiOiBcIjxwYXRoIGQ9XFxcIk0xNS4zMTEsMTYuMDQzLDEzLjQsMjkuNzI2YTYuMzIyLDYuMzIyLDAsMCwxLTUuOTU2LTEuMjVsMy4xLTEzLjI2Nkw0LjY5LDMuMzRhOC4wMzEsOC4wMzEsMCwwLDEsMy43OS0uNjQ2bDUuMTQ0LDkuNyw4LjkxNC03LjU4MXMzLDEuMDQxLDMuMjcsMi4wNDFsLTEwLjUsOS4xODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWNkZmE3XFxcIi8+PHBhdGggZD1cXFwiTTI3LjAxNiwxNy40MTFhNC4yNDQsNC4yNDQsMCwwLDAtLjU0MS0uODEyLDUuNyw1LjcsMCwwLDAtMS40NTgtMS4xODcsNy4zMzEsNy4zMzEsMCwwLDAtMS42ODctLjc5MWwtLjIyOS0uMDYyLS4xODctLjA2MmMtLjEyNS0uMDQyLS4yMjktLjEtLjMzMy0uMTQ2YTEuMjgyLDEuMjgyLDAsMCwxLS40NTgtLjQxN0ExLjc1NCwxLjc1NCwwLDAsMSwyMiwxMi42NDJhMi41MTgsMi41MTgsMCwwLDEsLjEtLjM3NWMuMDQyLS4xMjUuMDgzLS4yNS4xMjUtLjRhMi42OTEsMi42OTEsMCwwLDAsLjA2Mi0uNmwuMS0uMDgzLDEuMjUtMS4wNDFjLjIyOS0uMTg3LjQ1OC0uNC42ODctLjU4M2EyLjIsMi4yLDAsMCwxLC4yMjkuMTQ2cy42NDYuMDYyLDEtLjkxNmwtLjE4Ny0uMTI1LjEyNS0uMS4zMTItLjI3MWEuNjEzLjYxMywwLDAsMCwuMjI5LS4zNzUuNTI5LjUyOSwwLDAsMC0uNDE3LjEyNWwtLjMzMy4yNS0uMjI5LjE2N0wyMi4xODQsNi40NzhjLjE0Ni0uMTI1LjI3MS0uMjI5LjQxNy0uMzU0bC42LS41NDEuMDYyLS4wNjJjLjA2Mi4wNDIuMS4wODMuMTY3LjEyNS4xNDYuMS4zMTIuMjA4LjQ1OC4yOTJsLjkxNi41Yy4yOTIuMTY3LjYuMzMzLjkxNi40NzlhMy4zMjMsMy4zMjMsMCwwLDAsLjQ3OS4yMDhjLjA4My4wMjEuMTY3LjA2Mi4yNS4wODMuMDQyLDAsLjEuMDIxLjE0Ni4wMjFoLjFhLjE1MS4xNTEsMCwwLDAsLjEyNS0uMDgzVjcuMTIzYS4wNzcuMDc3LDAsMCwxLC4wMjEtLjA2MlY2Ljk3N2EuMTA4LjEwOCwwLDAsMC0uMDQyLS4wODNjLS4wMjEtLjA0Mi0uMDYyLS4wODMtLjA4My0uMTI1YTEuNTksMS41OSwwLDAsMC0uMTg3LS4xODdjLS4xMjUtLjEyNS0uMjcxLS4yMjktLjQtLjMzMy0uMjcxLS4yMDgtLjU2Mi0uNC0uODU0LS41ODNhNy41NDUsNy41NDUsMCwwLDAtLjktLjUsMy4zMjMsMy4zMjMsMCwwLDAtLjQ3OS0uMjA4Yy0uMDgzLS4wMjEtLjE2Ny0uMDYyLS4yNzEtLjA4My0uMDQyLDAtLjEtLjAyMS0uMTY3LS4wMjFhLjMxLjMxLDAsMCwwLS4xMjUuMDIxLjUyMi41MjIsMCwwLDAtLjE2Ny4xLDEuNiwxLjYsMCwwLDAtLjM3NS4yMDhsLS42MjUuMzU0Yy0uMTg3LjE0Ni0uNC4zMTItLjU4My40NThsLS4yMDgtLjE0NnMtLjg3NS4wODMtLjU4My42NDZsLjA4My4wODNjLS44MzMuNjg3LTEuNjQ1LDEuNC0yLjQ1NywyLjA4My0uODMzLjcwOC0xLjY0NSwxLjQxNi0yLjQ3OCwyLjE0NWwtMS4yMjksMS4wODNhMS44NzgsMS44NzgsMCwwLDEtLjIwOC4xODdjLS4wNDItLjEyNS0uMS0uMjI5LS4xNDYtLjMzM2wtLjI5Mi0uNjI1LS41NjItMS4yNWMtLjM3NS0uODMzLS43NS0xLjY2Ni0xLjE0NS0yLjVMMTEuMjA5LDQuODk1bC0uMTg3LS4zNzVoLjI1cy4wODMtLjY4Ny0uNDE3LS44MTJhMS40LDEuNCwwLDAsMC0uMjA4LjAyMWMtLjE4Ny0uMzc1LS4zNTQtLjc1LS41NDEtMS4xMjVoMGwtLjA4My0uMzEyQS4zMy4zMywwLDAsMCw5LjksMi4xYS4zNTIuMzUyLDAsMCwwLS4xLS4wNDJjLS4wNjItLjAyMS0uMS0uMDIxLS4xNjctLjA0MkExLjI4MSwxLjI4MSwwLDAsMCw5LjM1NSwyYTQuMDU3LDQuMDU3LDAsMCwwLS41MjEuMDQyLDguNzY3LDguNzY3LDAsMCwwLTEuMDIuMTg3Yy0uMzMzLjA4My0uNjY2LjE2Ny0xLC4yNzFhMy4yNzIsMy4yNzIsMCwwLDAtLjQ3OS4xODdsLS4yNS4xMjVjLS4wNDIuMDIxLS4wODMuMDYyLS4xMjUuMDgzTDUuOSwyLjk1OGMtLjAyMS4wMjEtLjAyMS4wNDItLjA0Mi4wNjJ2LjA2MmgwVjMuMWEuMTY0LjE2NCwwLDAsMCwuMS4xMjVjLjA0Mi4wMjEuMDYyLjA0Mi4wODMuMDQyYTEuMzI3LDEuMzI3LDAsMCwxLC4xNDYuMDQyLDEuMTg4LDEuMTg4LDAsMCwwLC4yNzEuMDIxLDQuMzg0LDQuMzg0LDAsMCwwLC41MjEtLjA0MmMuMzMzLS4wNDIuNjg3LS4wODMsMS4wMi0uMTQ2bDEuMDItLjE2N2MuMTY3LS4wMjEuMzMzLS4wNjIuNTIxLS4xLjE0Ni4yOTIuMjkyLjYuNDM3LjktLjk1OC4wODMtMi40NTcuMjA4LTMuMzk1LjMxMi0uMS0uMTg3LS4xODctLjM1NC0uMjkyLS41NDFhLjEyNy4xMjcsMCwwLDAtLjE0Ni0uMDYyLjEwOC4xMDgsMCwwLDAtLjA2Mi4xNDZjLjA2Mi4xNjcuMTI1LjMxMi4xODcuNDc5YTEuMTY3LDEuMTY3LDAsMCwwLS41LjEyNUExLjgyOCwxLjgyOCwwLDAsMCw2LjQsNS42NDVhMy41NjcsMy41NjcsMCwwLDEsLjQ1OC0uMTI1bC40MzcsMSwxLjI1LDIuODMyLDEuMjcsMi44MzJjLjQxNy45MzcuODU0LDEuODc0LDEuMjkxLDIuODMyaDBhLjAyLjAyLDAsMCwwLC4wMjEuMDIxbC0uMTg3LjYyNS0uNSwxLjc0OWMtLjMxMiwxLjE2Ni0uNiwyLjM1My0uOSwzLjUyTDkuMTA1LDIyLjdsLS40MTcsMS43N2MtLjI5MiwxLjE4Ny0uNTYyLDIuMzUzLS45LDMuNTJhLjEyNS4xMjUsMCwwLDAsLjAyMS4wODMsMy4wNzYsMy4wNzYsMCwwLDAsLjYuNTYyLDYuMDQ4LDYuMDQ4LDAsMCwwLC42ODcuNDE3LDkuNCw5LjQsMCwwLDAsMS41LjYsNi45NzIsNi45NzIsMCwwLDAsMS42MjQuMjcxLDMuNzI4LDMuNzI4LDAsMCwwLC44MzMtLjA0Miw2LjU0Nyw2LjU0NywwLDAsMCwuODMzLS4xNjcuMjU0LjI1NCwwLDAsMCwuMTY3LS4xODd2LS4wMjFjLjIyOS0xLjE0NS40MTctMi4zMTIuNjI1LTMuNDU3bC41ODMtMy40NzhjLjE4Ny0xLjE2Ni40LTIuMzEyLjU4My0zLjQ3OC4wMjEtLjEyNS4wNDItLjI3MS4wNjItLjQuMDQyLjA0Mi4wNjIuMS4xLjE0NmE0LjEzNyw0LjEzNywwLDAsMCwuNzA4LjY0Niw3LjIxMiw3LjIxMiwwLDAsMCwxLjU4My44MzMsMTEuNzc0LDExLjc3NCwwLDAsMCwxLjY2Ni41LDEwLjE4MiwxMC4xODIsMCwwLDAsMS4xLjE4NywyLjYyMSwyLjYyMSwwLDAsMC0uMjUsMS4yMDguMTE1LjExNSwwLDAsMCwuMDYyLjFoLjAyMWE1LjE2NCw1LjE2NCwwLDAsMCwxLjI3LjQ3OSw0LjMzMyw0LjMzMywwLDAsMCwxLjM3NS4wNjIsMi42MjcsMi42MjcsMCwwLDAsMS4zMzMtLjU2MiwyLjgyNCwyLjgyNCwwLDAsMCwuODEyLTEuMTY2bC4wMjEtLjAyMVYyMS4xbC4wNjItLjU2MnYtLjAyMWE1LjQyNyw1LjQyNywwLDAsMCwuNjI1LS40MTcsMi43MSwyLjcxLDAsMCwwLC42NDYtLjcyOSwxLjgzMywxLjgzMywwLDAsMCwuMjUtMSwyLjU2MywyLjU2MywwLDAsMC0uMjkyLS45NThabS0uNC0xMC41Wm0tMS40NzktMS4xYTcuMTIsNy4xMiwwLDAsMSwuODMzLjU0MWMuMTI1LjEuMjcxLjE4Ny40LjMxMmExLjI1NywxLjI1NywwLDAsMSwuMTY3LjE2N2wuMDQyLjA0MmgtLjA0MmMtLjA4My0uMDIxLS4xNDYtLjA0Mi0uMjI5LS4wNjItLjE0Ni0uMDYyLS4zMTItLjEyNS0uNDU4LS4xODdhNy4xMzIsNy4xMzIsMCwwLDEtLjg3NS0uNDc5QTUuNjEsNS42MSwwLDAsMSwyNC4yLDUuNTJhMi41LDIuNSwwLDAsMS0uMjI5LS4yNWwuMzEyLjEyNWE2LjQsNi40LDAsMCwxLC44NTQuNDE3Wm0tMS40MTYtLjkxNi4wMjEuMDIxdi4wNDJhLjAyLjAyLDAsMCwwLS4wMjEtLjAyMVY0Ljg5NVpNOC44NzYsMi41NjJhNS4wMjEsNS4wMjEsMCwwLDEtLjkzNy4zMzMsNS4zNDcsNS4zNDcsMCwwLDEtLjk3OS4xNjcsNC4wMTMsNC4wMTMsMCwwLDEtLjUuMDIxLjc4MS43ODEsMCwwLDEtLjIyOS0uMDIxSDYuMTY5Yy4wMjEsMCwuMDIxLS4wMjEuMDQyLS4wMjEuMDYyLS4wNDIuMTQ2LS4wNjIuMjA4LS4xLjE0Ni0uMDYyLjMxMi0uMS40NTgtLjE2Ny4zMTItLjA4My42NDYtLjE2Ny45NzktLjIyOWE4LjQsOC40LDAsMCwxLC45NzktLjEyNUExLjU3NiwxLjU3NiwwLDAsMCw5LjE0NywyLjRhMS41MzYsMS41MzYsMCwwLDEtLjI3MS4xNjdabTE0LjQ1Myw3LjEtMS4yOTEsMS0xLjI5MSwxLjAyYy0uMzU0LjI5Mi0uNzA4LjU4My0xLjA2Mi44NTQuMDIxLS4wMjEuMDQyLS4wNjIuMDYyLS4wODMuMTY3LS4yMjkuMzMzLS40MzcuNS0uNjQ2LjM1NC0uNDE3LjY4Ny0uODU0LDEuMDYyLTEuMjVzLjc3MS0uNzkxLDEuMTY2LTEuMTQ1YTQuODcyLDQuODcyLDAsMCwxLC42NDYtLjVsLjE4Ny0uMTI1Yy4xODcuMTQ2LjQuMjkyLjU4My40MzctLjE2Ny4xNDYtLjM3NS4yOTItLjU2Mi40MzdaTTguMDY0LDcuMWwuMS4xYTUuNjMsNS42MywwLDAsMSwuNTgzLjY0NiwyLjIxLDIuMjEsMCwwLDEsLjM3NS43MjkuOTIxLjkyMSwwLDAsMS0uMDYyLjYyNWwtLjAyMS0uMDYyTDguMDY0LDcuMVptMS4wMiwyLjE2NmEuNzIuNzIsMCwwLDAsLjE0Ni0uMjUuODY2Ljg2NiwwLDAsMCwuMDQyLS40NThBMS43LDEuNywwLDAsMCw4LjksNy43MjdhNC4wMTUsNC4wMTUsMCwwLDAtLjk3OS0uOWwtLjIyOS0uNDc5Yy0uMTQ2LS4zMTItLjI5Mi0uNjI1LS40NTgtLjkxNi4zMTItLjA4My42ODctLjIwOCwxLjEtLjMxMkEyMC4zMTMsMjAuMzEzLDAsMCwxLDkuMzU1LDdhNy45NjMsNy45NjMsMCwwLDEsLjc3MSwyLjU0MWMuMDIxLjIwOCwwLC40MzcsMCwuNjY2czAsLjQ1OC4wMjEuNjg3YTcuNjA5LDcuNjA5LDAsMCwwLC4xNDYuOTU4TDkuMDg0LDkuMjY4Wk0xNCwyNi4yNDJhLjkuOSwwLDAsMS0uMTg3LjIwOC40LjQsMCwwLDEtLjMzMy4xLjM1OC4zNTgsMCwwLDEtLjIyOS0uMjI5Ljk4MS45ODEsMCwwLDEtLjA4My0uMzU0LDIuMjc1LDIuMjc1LDAsMCwxLC4wNDItLjc1LDIuODE2LDIuODE2LDAsMCwxLC4yMjktLjcwOCwxLjQ3OCwxLjQ3OCwwLDAsMSwuMjA4LS4yOTIuMzQxLjM0MSwwLDAsMSwuMjkyLS4xMjVjLjEsMCwuMjA4LjEuMjcxLjIwOGEuNzQuNzQsMCwwLDEsLjA4My4xODdsLS4yNSwxLjQ3OWMtLjAyMS4xLS4wMjEuMTg3LS4wNDIuMjcxWm0xLjIyOS03LjE4NS0uMzc1LDIuMTg3YTMuMzI5LDMuMzI5LDAsMCwwLS4xLS40MzdjLS4xLS40LS4yMjktLjc3MS0uMzU0LTEuMTQ1YTE1LjUzNywxNS41MzcsMCwwLDAtLjk1OC0yLjE2NmMuMjI5Ljc3MS41LDEuNS43NzEsMi4yNDkuMTQ2LjM3NS4yNzEuNzUuNCwxLjFsLjE4Ny41NjJjMCwuMDIxLjAyMS4wNjIuMDIxLjA4My0uMDYyLjMzMy0uMTI1LjY2Ni0uMTY3LDEuMDJsLS4zMTIsMS45Yy0uMDIxLS4wNDItLjAyMS0uMDgzLS4wNDItLjEyNWEuNDg2LjQ4NiwwLDAsMC0uMzEyLS4yOTIuNTI1LjUyNSwwLDAsMC0uNDE3LjEyNSwxLjk0NCwxLjk0NCwwLDAsMC0uMjcxLjMxMiwyLjAzNiwyLjAzNiwwLDAsMC0uMjcxLjc1LDIuMTMxLDIuMTMxLDAsMCwwLDAsLjgxMiwxLjAyMSwxLjAyMSwwLDAsMCwuMTQ2LjQuNDg2LjQ4NiwwLDAsMCwuMzMzLjI3MS40MjguNDI4LDAsMCwwLC4zNzUtLjE2N2MuMDQyLS4wNDIuMDgzLS4xLjEyNS0uMTQ2LS4xNDYuOTc5LS4zMTIsMS45NTgtLjQ1OCwyLjk1N2EyLjcyNywyLjcyNywwLDAsMS0uNTYyLjEyNWMtLjI1LjA0Mi0uNS4wNjItLjc1LjA4M2E1LjUzMSw1LjUzMSwwLDAsMS0xLjU0MS0uMTQ2LDcuODQ2LDcuODQ2LDAsMCwxLTEuNS0uNDc5LDMuNjI1LDMuNjI1LDAsMCwxLTEuMjI5LS44NTRjLjMxMi0xLjE0NS42NjYtMi4yOTEsMS4wMi0zLjQzNmwuNTQxLTEuNzI5LjUyMS0xLjc0OWMuMzU0LTEuMTY2LjcwOC0yLjMzMywxLjA0MS0zLjUuMTY3LS41ODMuMzEyLTEuMTY2LjQ3OS0xLjc0OWEzLjYyNiwzLjYyNiwwLDAsMCwuMTg3LTEuODMzdi0uMDIxYy0uMDIxLS4wMjEtLjA0Mi0uMDIxLS4wNDIsMGEzLjEwOSwzLjEwOSwwLDAsMC0uMjUuMjkyYy0uMjI5LS41MjEtLjQ3OS0xLjAyLS43MDgtMS41NDFhNC43NjUsNC43NjUsMCwwLDEtLjE2Ny0uNTgzLDcuMTY1LDcuMTY1LDAsMCwxLS4yMDgtMS4zMTJjLS4wMjEtLjIyOS0uMDIxLS40MzctLjAyMS0uNjY2cy4wMjEtLjQ1OCwwLS42ODdhNy42MjUsNy42MjUsMCwwLDAtLjgzMy0yLjYsMTIuNTg3LDEyLjU4NywwLDAsMC0xLjEtMS44MzNjLjY4Ny0uMTg3LDEuNDE2LS4zNzUsMi0uNDc5LjA4My4xODcuMTg3LjM1NC4yNzEuNTQxTDExLjkzOCw3LjZsMS4yNSwyLjQzNy42MjUsMS4yMDguMzEyLjZjLjA4My4xMjUuMTI1LjI3MS4yMDguMzc1bC0uODEyLjc1YS4wNjkuMDY5LDAsMCwwLDAsLjEuMDczLjA3MywwLDAsMCwuMS4wMjFjLjQzNy0uMzEyLjg3NS0uNjQ2LDEuMzEyLS45NzlsMS4zMTItMWMuODc1LS42NjYsMS43MjktMS4zMzMsMi41ODItMnMxLjcwOC0xLjM1NCwyLjU2Mi0yLjA0MWwuMDIxLS4wMjFhMjQuMzE2LDI0LjMxNiwwLDAsMCwxLjg3NCwxLjY0NSw2LjE2Miw2LjE2MiwwLDAsMC0uODc1LjU0MSw4Ljk0Myw4Ljk0MywwLDAsMC0xLjIyOSwxLjEyNSwxMi4yNzksMTIuMjc5LDAsMCwwLTEuMDQxLDEuMjkxLDExLjc3OCwxMS43NzgsMCwwLDAtLjY0NiwxYy0xLjI3LDEuMDQxLTIuNTIsMi4xLTMuNzI4LDMuMjA3YS4xMjguMTI4LDAsMCwwLS4wMjEuMTQ2LjEzOC4xMzgsMCwwLDAsLjE0Ni4wNDIsOS4xMzQsOS4xMzQsMCwwLDAtLjMxMiwxLjI1Yy0uMTI1LjU4My0uMjUsMS4xNjYtLjM1NCwxLjc0OVptOS4yMDUsMi43OTFhMi41MjcsMi41MjcsMCwwLDEtMS4wMi40NTgsMy43NjcsMy43NjcsMCwwLDEtMS4xODcuMDQyLDcuMzYxLDcuMzYxLDAsMCwxLTEuMTQ1LS4yMDgsMi4wMzcsMi4wMzcsMCwwLDEsLjE2Ny0xLjA0MWMuMTQ2LjAyMS4yNzEuMDIxLjQxNy4wNDJhLjExNC4xMTQsMCwwLDAsLjEyNS0uMDgzLjEyNC4xMjQsMCwwLDAtLjA4My0uMTY3aDBjLS4xLS4wNDItLjE4Ny0uMDYyLS4yOTItLjFhMi43NzEsMi43NzEsMCwwLDEsLjI5Mi0uNGMuMTI1LS4xMjUuMjUtLjI1LjM3NS0uMzU0YTMuOTkyLDMuOTkyLDAsMCwwLC44NTQuNCwyLjg4MSwyLjg4MSwwLDAsMCwxLjEyNS4xLDEuNTUsMS41NSwwLDAsMCwxLjAyLS41NDEsMS41MjQsMS41MjQsMCwwLDAsLjM1NC0uOTE2Ljg1Ljg1LDAsMCwxLC4wMjEuNCw0LjUxMSw0LjUxMSwwLDAsMS0uMDgzLjUyMWwtLjA2Mi4zMTJMMjUsMjAuNDk0YS45MTkuOTE5LDAsMCwwLS4zMzMuMzU0Ljc1MS43NTEsMCwwLDAsLjQ3OSwwYy4wMjEsMCwuMDIxLS4wMjEuMDQyLS4wMjEtLjAyMS4wNjItLjAyMS4xLS4wNDIuMTY3YTIuNTUyLDIuNTUyLDAsMCwxLS43MDguODU0Wk0yNi41LDE5LjExOWEyLjIsMi4yLDAsMCwxLS40NTguNjI1LDIuNjM4LDIuNjM4LDAsMCwxLS4yNzEuMjI5LDIuNTg1LDIuNTg1LDAsMCwwLS4wNjItLjU2MiwxLjUzNCwxLjUzNCwwLDAsMC0uMDgzLS4yOTIuNTMxLjUzMSwwLDAsMC0uMTg3LS4yNWgwYy0uMDIxLDAtLjA0MiwwLS4wNDIuMDIxaDBhMS45NSwxLjk1LDAsMCwxLS41NjIuNzcxLDEuNDI5LDEuNDI5LDAsMCwxLS44MTIuMjkyLDIuODU3LDIuODU3LDAsMCwxLS45MTYtLjEyNWMtLjMxMi0uMDgzLS42MjUtLjE4Ny0uOTM3LS4yOTJsLS4wNDItLjAyMWEuMi4yLDAsMCwwLS4xODcuMDQyYy0uMTY3LjIwOC0uMjkyLjQtLjQzNy42LS4xLjE2Ny0uMTg3LjMxMi0uMjcxLjQ3OS0uMzc1LS4xNDYtLjcyOS0uMjcxLTEuMS0uNDE3LS41MjEtLjIwOC0xLjA0MS0uNDE3LTEuNTItLjY2NmE3LjY0OCw3LjY0OCwwLDAsMS0xLjQtLjgxMiwyLjk0OSwyLjk0OSwwLDAsMS0uOTc5LTEuMDYydi0uMDIxYS40MDkuNDA5LDAsMCwwLS4xODctLjE4N2MwLS4wNDIuMDIxLS4xLjAyMS0uMTQ2YTcuMzcsNy4zNywwLDAsMCwuMS0xLjUyYzEuNjg3LTEuMTg3LDMuMzMyLTIuNDM3LDQuOTU3LTMuNzI4bC0uMDYyLjE4N2EzLjI3LDMuMjcsMCwwLDAtLjE0NiwxLjAyQTIuMDg5LDIuMDg5LDAsMCwwLDIyLjEyMiwxNS4xYTIuODI1LDIuODI1LDAsMCwwLC40NzkuMTg3bC4yNS4wNjIuMjA4LjA0MmE2LjY0NSw2LjY0NSwwLDAsMSwxLjU0MS42MjUsNi4xNTYsNi4xNTYsMCwwLDEsMS4zMTIuOTc5LDIuMjc1LDIuMjc1LDAsMCwxLC43MDgsMS4zMzMsMS41MSwxLjUxLDAsMCwxLS4xMjUuNzkxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzNmM2UyOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi42NjcsMjMuOTA5YTIuMTYxLDIuMTYxLDAsMCwwLS4zNTQuNzcxLDEuNTU2LDEuNTU2LDAsMCwwLS4wNjIuNDE3bC0uMDIxLjQxN2E0LjUzMyw0LjUzMywwLDAsMCwuMTQ2LDEuNjY2LDcuNjQ3LDcuNjQ3LDAsMCwwLC42NjYsMS41MmMtLjA4My0uMjcxLS4xODctLjUyMS0uMjcxLS43NzFzLS4xNjctLjUyMS0uMjI5LS43OTFhNS44OSw1Ljg5LDAsMCwxLS4xLTEuNmwuMDIxLS40MTdhMi41NTIsMi41NTIsMCwwLDEsLjA0Mi0uNCwzLjEzNywzLjEzNywwLDAsMSwuMjkyLS43MjksMi45NjcsMi45NjcsMCwwLDEsLjUyMS0uNjI1LDIuNTkxLDIuNTkxLDAsMCwxLC42NjYtLjQ3OSwyLjc2LDIuNzYsMCwwLDAtMS4zMTIsMS4wMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzZjNlMjlcXFwiLz5cIixcblx0XCJIYW5kbGViYXJzXCI6IFwiPHBhdGggZD1cXFwiTTEyLjMsMTMuMWE0LjIzOCw0LjIzOCwwLDAsMSwyLjcyOC45QTQuNTkyLDQuNTkyLDAsMCwxLDE2LDE1LjEyN2E0LjE0NCw0LjE0NCwwLDAsMSwyLjAzOS0xLjc0Nyw0Ljc1Nyw0Ljc1NywwLDAsMSwzLjI4Ni4wMTksNy44MzMsNy44MzMsMCwwLDEsMi40NDMsMS41NThjLjU2OC41LDEuMDk0LDEuMDUsMS42NzksMS41MzNhMy40LDMuNCwwLDAsMCwxLjAxOS42MTQsMS40MiwxLjQyLDAsMCwwLDEuNDYtLjM3OS45NjUuOTY1LDAsMCwwLS4wNTUtMS4zMjMuNTQ1LjU0NSwwLDAsMC0uOC4xMDguNjU5LjY1OSwwLDAsMCwuMDUuNjg2LDEuMjIyLDEuMjIyLDAsMCwxLS42LS45MjYsMS4wMjIsMS4wMjIsMCwwLDEsLjY5MS0xLjAzMiwyLjAwNSwyLjAwNSwwLDAsMSwyLjMxMi42NjEsMy4yNTgsMy4yNTgsMCwwLDEsLjQ0LDIuMzA4LDIuNzYyLDIuNzYyLDAsMCwxLTEuMTM3LDEuODcyLDUuMDUxLDUuMDUxLDAsMCwxLTMuMDEzLjgsOC40ODgsOC40ODgsMCwwLDEtMi45MzItLjYzYy0xLjU1OC0uNjI2LTMuMDE2LTEuNDkyLTQuNjI1LTEuOTkyYTEzLjk3NywxMy45NzcsMCwwLDAtMS43LS4zNjNjLS40My4wMDctLjg2MS0uMDE1LTEuMjkuMDE1YTUuNjkyLDUuNjkyLDAsMCwwLTEuNTM0LjM0OWMtMS42MzYuNTA5LTMuMTE2LDEuNC00LjcsMi4wMjRhNy42MjUsNy42MjUsMCwwLDEtNC4yNDkuNDc0LDMuNzQsMy43NCwwLDAsMS0yLjEyNS0xLjE0QTIuODU2LDIuODU2LDAsMCwxLDIsMTYuNjY4YTIuNzIyLDIuNzIyLDAsMCwxLC41NTUtMS44NzQsMS45OTQsMS45OTQsMCwwLDEsMS42ODctLjY4LDEuNDI1LDEuNDI1LDAsMCwxLDEuMDYzLjUyLDEuMDQsMS4wNCwwLDAsMSwuMTIyLjkxMSwxLjQ1NywxLjQ1NywwLDAsMS0uNTU2LjY0NC42NDMuNjQzLDAsMCwwLC4wNTEtLjY4MS41NDcuNTQ3LDAsMCwwLS44MzEtLjA3OS45NzUuOTc1LDAsMCwwLS4xNTEsMS4xMSwxLjMzMSwxLjMzMSwwLDAsMCwxLjAzMi42MjMsMi4zMzIsMi4zMzIsMCwwLDAsMS42LS43QTI4LjUyNiwyOC41MjYsMCwwLDEsOS40LDE0LjA1Myw1LjI1MSw1LjI1MSwwLDAsMSwxMi4zLDEzLjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzE5NzcwXFxcIi8+XCIsXG5cdFwiSGFza2VsbFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjAuOTk2XFxcIiB5MT1cXFwiLTIwNi4wNTdcXFwiIHgyPVxcXCIwLjk1MVxcXCIgeTI9XFxcIi0yMDYuMDU3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDI1OS45NDEsIDAsIDAsIC0xODMuNDg3LCAtMjM3Ljk0MSwgLTM3NzkyLjc4OClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYWJhMDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiNDJjMDFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2hhc2tlbGwyPC90aXRsZT48cGF0aCBkPVxcXCJNMiwyNS44ODIsOC41ODgsMTYsMiw2LjExOEg2Ljk0MUwxMy41MjksMTYsNi45NDEsMjUuODgyWm02LjU4OCwwTDE1LjE3NywxNiw4LjU4OCw2LjExOGg0Ljk0MUwyNi43MDYsMjUuODgySDIxLjc2NWwtNC4xMTctNi4xNzYtNC4xMTgsNi4xNzZaTTI0LjUxLDIwLjExOGwtMi4yLTMuMjk0SDMwdjMuMjk0Wm0tMy4yOTQtNC45NDEtMi4yLTMuMjk0SDMwdjMuMjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHRcIkhheGVcIjogXCI8cGF0aCBkPVxcXCJNMTYsNS41LDUuNSwxNiwxNiwyNi41LDI2LjUsMTYsMTYsNS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZjY4NzEyXFxcIi8+PHBhdGggZD1cXFwiTTIsMiwxNiw1LjUsNS41LDE2LDIsMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhYjIwYlxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwyLDI2LjUsMTYsMTYsNS41LDMwLDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNDcyMTZcXFwiLz48cGF0aCBkPVxcXCJNMzAsMzAsMTYsMjYuNSwyNi41LDE2LDMwLDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZjI1YzE5XFxcIi8+PHBhdGggZD1cXFwiTTIsMzAsNS41LDE2LDE2LDI2LjUsMiwzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2Y4OWMwZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNiw1LjUsMiwySDlsNywzLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYmM3MDdcXFwiLz48cGF0aCBkPVxcXCJNMTYsNS41LDMwLDJIMjNMMTYsNS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZmJjNzA3XFxcIi8+PHBhdGggZD1cXFwiTTE2LDI2LjUsMzAsMzBIMjNsLTctMy41XFxcIiBzdHlsZT1cXFwiZmlsbDojZjY4NzEyXFxcIi8+PHBhdGggZD1cXFwiTTE2LDI2LjUsMiwzMEg5bDctMy41XFxcIiBzdHlsZT1cXFwiZmlsbDojZjI1YzE5XFxcIi8+PHBhdGggZD1cXFwiTTUuNSwxNiwyLDMwVjIzbDMuNS03XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmMjAwXFxcIi8+PHBhdGggZD1cXFwiTTUuNSwxNiwyLDJWOWwzLjUsN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjIwMFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi41LDE2LDMwLDJWOWwtMy41LDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTQ3MWRcXFwiLz48cGF0aCBkPVxcXCJNMjYuNSwxNiwzMCwzMFYyM2wtMy41LTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTQ3MWRcXFwiLz5cIixcblx0XCJITFNMXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI5LjUyNSAyMS45NDcgNy41NiAyMS45NDcgNy41NiAxNy4xIDMuOTU4IDE3LjEgMy45NTggMjEuOTQ3IDIgMjEuOTQ3IDIgMTAuMDQ0IDMuOTU4IDEwLjA0NCAzLjk1OCAxNC43OTIgNy41NiAxNC43OTIgNy41NiAxMC4wNDQgOS41MjUgMTAuMDQ0IDkuNTI1IDIxLjk0N1xcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuNjkyIDIxLjk0NyAxMS41MTMgMjEuOTQ3IDExLjUxMyAxMC4wNDQgMTMuNDcyIDEwLjA0NCAxMy40NzIgMTkuNzczIDE2LjY5MiAxOS43NzMgMTYuNjkyIDIxLjk0N1xcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy40NjIsMjEuNDkxVjE4LjgzNGEzLjY3NiwzLjY3NiwwLDAsMCwxLjE0Ni45MDksMi44MDksMi44MDksMCwwLDAsMS4yNDkuMywyLjA1LDIuMDUsMCwwLDAsLjY0Ni0uMDkyLDEuMzA5LDEuMzA5LDAsMCwwLC40NjEtLjI1MiwxLjAyOSwxLjAyOSwwLDAsMCwuMjc2LS4zODIsMS4yMzEsMS4yMzEsMCwwLDAsLjA5MS0uNDc4LDEuMywxLjMsMCwwLDAtLjE0NS0uNjIzLDEuOTA3LDEuOTA3LDAsMCwwLS40LS41MDYsNC4wNzcsNC4wNzcsMCwwLDAtLjYtLjQ0OHEtLjM0Ni0uMjE1LS43NDYtLjQzOWE0LjA0NSw0LjA0NSwwLDAsMS0xLjUxOS0xLjQxOSwzLjg4NCwzLjg4NCwwLDAsMS0uNS0yLjAyNiw0LjIzMiw0LjIzMiwwLDAsMSwuMjczLTEuNiwzLjAyLDMuMDIsMCwwLDEsLjc0NC0xLjEsMi45MzgsMi45MzgsMCwwLDEsMS4wODgtLjYzNCw0LjE2Nyw0LjE2NywwLDAsMSwxLjMxLS4yLDUuODE2LDUuODE2LDAsMCwxLDEuMi4xMTEsMy44LDMuOCwwLDAsMSwuOTY3LjM0NXYyLjQ4MmEyLjg1OSwyLjg1OSwwLDAsMC0uNDc2LS4zNjUsMy4yMTIsMy4yMTIsMCwwLDAtLjUzLS4yNjJBMy4xLDMuMSwwLDAsMCwyMS40NiwxMmEyLjc5NCwyLjc5NCwwLDAsMC0uNTEyLS4wNSwxLjk5NCwxLjk5NCwwLDAsMC0uNjA2LjA4NywxLjM0NywxLjM0NywwLDAsMC0uNDYxLjI0NSwxLjA5MiwxLjA5MiwwLDAsMC0uMjkxLjM3NywxLjE0NCwxLjE0NCwwLDAsMC0uMS40OTQsMS4yLDEuMiwwLDAsMCwuMTE1LjUzNiwxLjY1NywxLjY1NywwLDAsMCwuMzI4LjQ0OCwzLjQ2MSwzLjQ2MSwwLDAsMCwuNTE1LjQxNWMuMi4xMzYuNDMuMjc1LjY4Ni40MTlhNy4wOTQsNy4wOTQsMCwwLDEsLjkzNi42MzUsMy43MTIsMy43MTIsMCwwLDEsLjcxMy43NTksMy4yNjksMy4yNjksMCwwLDEsLjQ1NS45NjcsNC41NzMsNC41NzMsMCwwLDEsLjE1OCwxLjI2Niw0LjQzOSw0LjQzOSwwLDAsMS0uMjc3LDEuNjcyLDIuODg4LDIuODg4LDAsMCwxLS43NDksMS4xLDIuODIzLDIuODIzLDAsMCwxLTEuMS42LDQuNzQyLDQuNzQyLDAsMCwxLTEuMzI1LjE4Miw1LjQ3Niw1LjQ3NiwwLDAsMS0xLjM2MS0uMTY2QTMuNDEsMy40MSwwLDAsMSwxNy40NjIsMjEuNDkxWlxcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMzAgMjEuOTQ3IDI0LjgyMiAyMS45NDcgMjQuODIyIDEwLjA0NCAyNi43OCAxMC4wNDQgMjYuNzggMTkuNzczIDMwIDE5Ljc3MyAzMCAyMS45NDdcXFwiIHN0eWxlPVxcXCJmaWxsOmJsdWVcXFwiLz5cIixcblx0XCJIVE1MXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI1LjkwMiAyNy4yMDEgMy42NTUgMiAyOC4zNDUgMiAyNi4wOTUgMjcuMTk3IDE1Ljk4NSAzMCA1LjkwMiAyNy4yMDFcXFwiIHN0eWxlPVxcXCJmaWxsOiNlNDRmMjZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDI3Ljg1OCAyNC4xNyAyNS41OTMgMjYuMDkyIDQuMDYxIDE2IDQuMDYxIDE2IDI3Ljg1OFxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMTMuNDA3IDExLjkxIDEzLjQwNyAxMS42MjggMTAuMjQyIDE2IDEwLjI0MiAxNiA3LjE1MSAxNS45ODkgNy4xNTEgOC4yNSA3LjE1MSA4LjMyNCA3Ljk4MSA5LjA4MyAxNi40OTggMTYgMTYuNDk4IDE2IDEzLjQwN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMjEuNDM0IDE1Ljk4NiAyMS40MzggMTIuNTQ0IDIwLjUwOSAxMi4zMjQgMTguMDQ0IDEwLjY1MSAxOC4wNDQgOS4yMjEgMTguMDQ0IDkuNjU0IDIyLjg5NiAxNS45ODYgMjQuNjU0IDE2IDI0LjY1IDE2IDIxLjQzNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuOTg5IDEzLjQwNyAxNS45ODkgMTYuNDk4IDE5Ljc5NSAxNi40OTggMTkuNDM3IDIwLjUwNyAxNS45ODkgMjEuNDM3IDE1Ljk4OSAyNC42NTMgMjIuMzI2IDIyLjg5NiAyMi4zNzIgMjIuMzc0IDIzLjA5OCAxNC4yMzcgMjMuMTc0IDEzLjQwNyAyMi4zNDEgMTMuNDA3IDE1Ljk4OSAxMy40MDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljk4OSA3LjE1MSAxNS45ODkgOS4wNzEgMTUuOTg5IDEwLjIzNSAxNS45ODkgMTAuMjQyIDIzLjQ0NSAxMC4yNDIgMjMuNDQ1IDEwLjI0MiAyMy40NTUgMTAuMjQyIDIzLjUxNyA5LjU0OCAyMy42NTggNy45ODEgMjMuNzMyIDcuMTUxIDE1Ljk4OSA3LjE1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIkhUVFBcIjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCIxMi4yNzhcXFwiIGN5PVxcXCIyNC41NTdcXFwiIHI9XFxcIjE4LjM3MVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgLTAuMDAxLCAzNC4wMDEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDNlOWZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE1NVxcXCIgc3RvcC1jb2xvcj1cXFwiI2QzZTlmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NVxcXCIgc3RvcC1jb2xvcj1cXFwiIzQwNzRhZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzM2NDg2Y1xcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJiXFxcIiBjeD1cXFwiMTAuNjU3XFxcIiBjeT1cXFwiMjYuNzQ2XFxcIiByPVxcXCIyNi42NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgLTAuMDAxLCAzNC4wMDEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMTY1XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImNcXFwiIGN4PVxcXCItNDUuMDVcXFwiIGN5PVxcXCI5LjI4NVxcXCIgcj1cXFwiNC4xMTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTIxLjk3MSA0MS45NDIpIHJvdGF0ZSgxNDMuNzM0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImRcXFwiIGN4PVxcXCItNDEuNDU2XFxcIiBjeT1cXFwiMzIuMTU0XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgzLjU3MSA4Ny4wNzUpIHJvdGF0ZSgxNDMuNzM0KSBzY2FsZSgxLjI5NylcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJlXFxcIiBjeD1cXFwiLTQ4LjQ4NVxcXCIgY3k9XFxcIjEzLjIzOVxcXCIgcj1cXFwiNC4xMTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTIzLjA4NCA1NS40MTMpIHJvdGF0ZSgxNDMuNzM0KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImZcXFwiIGN4PVxcXCItNDAuODgzXFxcIiBjeT1cXFwiMTYuMDM2XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC44NywgMC42MzksIC0wLjYzOCwgLTAuODcsIC05LjM1MSwgNDcuNzA2KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNjYuNTAyXFxcIiB5MT1cXFwiMi4yMTlcXFwiIHgyPVxcXCItNjQuNjI2XFxcIiB5Mj1cXFwiNi43NDlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC45MzksIC0wLjg3OSwgLTAuNjgzLCAtMC43MywgODQuODEsIC0zMy42MjgpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIi0yNi43OTFcXFwiIHkxPVxcXCIzOS4xNTlcXFwiIHgyPVxcXCItMjQuOTk5XFxcIiB5Mj1cXFwiNDQuNjgzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuMTMxLCAwLjYxMywgMC40NzcsIC0wLjg3OSwgMjEuNjQ4LCA2OS4wNzEpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaVxcXCIgeDE9XFxcIi02My4zODRcXFwiIHkxPVxcXCI4LjE3N1xcXCIgeDI9XFxcIi02My41N1xcXCIgeTI9XFxcIjQuNjlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC45MTgsIC0wLjg1OSwgLTAuNjY4LCAtMC43MTMsIDc3Ljg1NywgLTM2LjQ5MylcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiLTk5LjI1OVxcXCIgeTE9XFxcIjg5LjU0NVxcXCIgeDI9XFxcIi05OC44MjVcXFwiIHkyPVxcXCI5My4wMjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoLTEuMjgsIC0wLjEyNiwgLTAuMDk4LCAwLjk5NSwgLTEwMS42MzcsIC05My4wMTUpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwia1xcXCIgY3g9XFxcIi0yMC43MTJcXFwiIGN5PVxcXCI1Ny42MVxcXCIgcj1cXFwiMi44MzZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMCwgLTAuODQzLCAtMC43MjEsIDAsIDI2LjYyNSwgLTIxLjY5NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM3MjlmY2ZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzYjYxYTZcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwibFxcXCIgY3g9XFxcIi0yMC43MTJcXFwiIGN5PVxcXCIzOS44NThcXFwiIHI9XFxcIjIuODM2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI2LjYyNSA2My4wOTYpIHJvdGF0ZSg5MCkgc2NhbGUoMC44NDMgMC43MjEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzI5ZmNmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTA5ZTJmXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9odHRwPC90aXRsZT48cGF0aCBkPVxcXCJNMjguMDI2LDE0LjJBMTEuODc3LDExLjg3NywwLDEsMSwxNi4xNDksMi4zMjUsMTEuODc4LDExLjg3OCwwLDAsMSwyOC4wMjYsMTQuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTQ5LDI2LjM4NkExMi4xODMsMTIuMTgzLDAsMSwxLDI4LjMzMywxNC4yLDEyLjIsMTIuMiwwLDAsMSwxNi4xNDksMjYuMzg2Wm0wLTIzLjc1NEExMS41NzEsMTEuNTcxLDAsMSwwLDI3LjcyLDE0LjIsMTEuNTg0LDExLjU4NCwwLDAsMCwxNi4xNDksMi42MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzkzOTZjXFxcIi8+PHBhdGggZD1cXFwiTTI3LjY5MywxMi40MjRoMGwtLjMyOC4zNzFhNyw3LDAsMCwwLS42NTYtLjY0NGwtLjUuMDc0LS40Ni0uNTE5di42NDNsLjM5NC4zLjI2Mi4zLjM1LS40Yy4wODguMTY1LjE3NS4zMy4yNjMuNXYuNDk1bC0uMzk0LjQ0NS0uNzIyLjUtLjU0Ni41NDUtLjM1LS40LjE3NS0uNDQ1LS4zNS0uNC0uNTkxLTEuMjYyLS41LS41NjlMMjMuNiwxMi4xbC4yLjcxOC4zNzEuNDIxYTE3LjA2OSwxNy4wNjksMCwwLDAsLjcsMS43ODMsOS45NzksOS45NzksMCwwLDAsMS4yNjgtLjF2LjM0N2wtLjUyNSwxLjI4Ny0uNDgxLjU0NC0uMzk0Ljg0M1YxOS4zM2wuMTMyLjU0NS0uMjE5LjI0Ny0uNDgyLjMtLjUuNDIxLjQxNi40Ny0uNTY5LjUuMTA5LjMyMS0uODUzLjk2NkgyMi4ybC0uNDgxLjNoLS4zMDd2LS40bC0uMTMtLjc5M2MtLjE2OS0uNS0uMzQ2LS45OTEtLjUyNS0xLjQ4NCwwLS4zNjQuMDIyLS43MjUuMDQ0LTEuMDg5bC4yMTktLjQ5NS0uMzA3LS41OTUuMDIyLS44MTctLjQxNi0uNDcuMjA4LS42OC0uMzM4LS4zODRIMTkuNmwtLjItLjIyMy0uNTkxLjM3Mi0uMjQtLjI3My0uNTQ3LjQ3TDE2LjkxMSwxNS4yN2wtLjQzNy0xLjA0LjM5NC0uNTkzLS4yMTktLjI0Ny40ODEtMS4xMzljLjM5NS0uNDkxLjgwNy0uOTYzLDEuMjI1LTEuNDM2bC43NDQtLjIuODMxLS4xLjU2OS4xNDkuODA5LjgxNi4yODQtLjMyMS4zOTMtLjA0OS43NDQuMjQ3SDIzLjNsLjM5NC0uMzQ3LjE3NS0uMjQ3LS4zOTQtLjI0Ny0uNjU2LS4wNDlhNi42LDYuNiwwLDAsMC0uNTY4LS43NDNsLS4yMTkuMS0uMDg4LjY0NC0uMzk0LS40NDUtLjA4Ny0uNS0uNDM3LS4zNDZoLS4xNzZsLjQzOC40OTUtLjE3NS40NDUtLjM1LjEuMjE5LS40NDUtLjM5NC0uMi0uMzQ5LS40LS42NTcuMTQ4LS4wODcuMi0uMzk0LjI0OC0uMjE5LjU0NS0uNTQ2LjI3Mi0uMjQxLS4yNzJIMTcuODNWOS40MjhsLjU2OS0uM2guNDM3bC0uMDg4LS4zNDZMMTguNCw4LjQzOGwuNTktLjEyNC4zMjgtLjM3MS4yNjItLjQ0NmguNDgybC0uMTMyLS4zNDYuMzA3LS4ydi40bC42NTYuMTQ4LjY1Ni0uNTQ0LjA0NC0uMjQ4LjU2OC0uNGE0LjM1Myw0LjM1MywwLDAsMC0uNjEyLjFWNS45NjNsLjIxOS0uNWgtLjIxOWwtLjQ4LjQ0NS0uMTMyLjI0OC4xMzIuMzQ3LS4yMTkuNTkzLS4zNS0uMi0uMzA2LS4zNDYtLjQ4Mi4zNDYtLjE3NS0uNzkyLjgzMS0uNTQ0di0uM2wuNTI1LS4zNDYuODMxLS4yLjU2OS4yLDEuMDQ5LjItLjI2Mi4zSDIyLjUxbC41NjkuNTk0LjQzNy0uNDk1LjEzMy0uMjE4YTE1LjUzLDE1LjUzLDAsMCwxLDIuNjM1LDMuMTQ3QTExLjQ1MiwxMS40NTIsMCwwLDEsMjcuNjkzLDEyLjQyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi44NjEsNS41MTdsLS4wNDQuMy4zMDcuMi41MjQtLjM0Ni0uMjYyLS4zLS4zNS4yLS4xNzQtLjA1XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTcuMzQzLDMuNDg4bC0xLjEzOC0uNDQ2LTEuMzEyLjE0OC0xLjYxOS40NDUtLjMwNi4zLDEuMDA2LjY5M3YuNGwtLjM5NC40LjUyNSwxLjA0LjM0OS0uMi40MzgtLjY5M2ExNS4wNTMsMTUuMDUzLDAsMCwwLDEuOTI0LS43NDNsLjUyNS0xLjMzN1xcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE4LjUyNCw3LjY0NywxOC4zNDksNy4ybC0uMzA3LjEuMDg4LjU0NC4zOTQtLjJcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC43LDcuNTQ3bC0uMDg4LjU5NS40ODEtLjEuMzUtLjM0Ni0uMzA2LS4zYy0uMS0uMjc0LS4yMjEtLjUyOS0uMzUtLjc5MmgtLjI2MnYuM2wuMTc0LjJ2LjQ0NVxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTEyLjIyNSwxNi45NTNsLS4zNS0uNjkzLS42NTYtLjE0OC0uMzUtLjk0LS44NzUuMS0uNzQzLS41NDQtLjc4OC42OTN2LjEwOWEzLDMsMCwwLDEtLjc0My0uMjA5bC0uMTc1LS40OTVWMTQuMjhsLS41MjUuMDQ5cS4wNjYtLjUyLjEzMS0xLjAzOUg2Ljg0NWwtLjMwNi40LS4zMDYuMTQ4TDUuOCwxMy41ODdsLS4wNDQtLjU0NS4wODgtLjU5NC42NTYtLjQ5NUg3LjAybC4wODctLjMuNjU2LjE0OC40ODEuNTk1LjA4OC0uOTkxLjgzMS0uNjkzLjMwNi0uNzQzLjYxMi0uMjQ3LjM1LS40OTUuNzg3LS4xNDkuMzk0LS41OTNIMTAuNDMybC43NDQtLjM0N0gxMS43bC43NDQtLjI0OC4wODgtLjMtLjI2My0uMjQ4LS4zMDYtLjEuMDg4LS4zLS4yMTktLjQ0NS0uNTI1LjIuMDg4LS40LS42MTItLjM0N0wxMC4zLDYuOGwuMDQ0LjMtLjQ4MS4yLS4zMDYuNjQzLS4xMzEtLjU5NEw4LjU5NCw3bC0uMTMxLS40NDUsMS4wOTQtLjY0NC40ODEtLjQ0NS4wNDQtLjU0NC0uMjYyLS4xNDktLjM1LS4wNS0uMjE5LjU0NXMtLjM2Ni4wNzItLjQ2LjA5NUExMi41LDEyLjUsMCwwLDAsNC42LDEzLjM3MWE2Ljc4OSw2Ljc4OSwwLDAsMCwuNDA5LjcxMWwuOTE4LjU0NC45MTguMjQ4LjM5NC41LjYxMi40NDUuMzUtLjA0OS4yNjIuMTE4di4wOGwtLjM1Ljk0LS4yNjMuNC4wODguMi0uMjE5Ljc0Mi43ODcsMS40MzYuNzg3LjY5My4zNS40OTVMOS42LDIxLjlsLjI2My41OTNMOS42LDIzLjYzN3MtLjAyMS0uMDA3LjAxMy4xMDdhNS4yNzgsNS4yNzgsMCwwLDAsMS40ODguODA5bC4xNjEtLjEyMy0uMDg3LS4yNDcuMzUtLjM0Ny4xMzEtLjM0Ny41NjktLjIuNDM3LTEuMDg5LS4xMzEtLjMuMzA2LS40NDUuNjU2LS4xNDkuMzUtLjc5Mi0uMDg4LS45OS41MjUtLjc0My4wODgtLjc0M2MtLjcxOC0uMzU2LTEuNDMtLjcyMy0yLjE0My0xLjA4OVxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTExLjI2Myw1LjcxNWwuNDM3LjNoLjM1VjUuNjY2bC0uNDM3LS4yLS4zNS4yNDdcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4xMjYsNS4zMTlsLS4yMTkuNTQ0aC40MzhsLjIxOS0uNWMuMTg5LS4xMzMuMzc2LS4yNjguNTY4LS40bC40MzguMTQ5Ljg3NS41OTQuNDM4LS40LS40ODItLjItLjIxOS0uNDQ2LS44MzEtLjEtLjA0NC0uMjQ4LS4zOTQuMS0uMTc1LjM0Ni0uMjE5LS40NDYtLjA4Ny4yLjA0NC41LS4zNS4zXFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTEuNyw0LjA4MWwuMjE5LS4yLjQzOC0uMWE2LjksNi45LDAsMCwxLC45MTgtLjM0N2wtLjE3NC0uMy0uNTY1LjA4MS0uMjY3LjI2Ni0uNDQuMDY0LS4zOTEuMTg0LS4xOS4wOTItLjExNi4xNTUuNTY4LjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40NDQsOC43ODVsLjI2My0uNC0uMzk0LS4zLjEzMS42OTNcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNDksMjUuNzgzQTExLjU4LDExLjU4LDAsMSwxLDI3LjcyOSwxNC4yLDExLjU5MywxMS41OTMsMCwwLDEsMTYuMTQ5LDI1Ljc4M1ptMC0yMi41NDhBMTAuOTY4LDEwLjk2OCwwLDEsMCwyNy4xMTcsMTQuMiwxMC45OCwxMC45OCwwLDAsMCwxNi4xNDksMy4yMzVaXFxcIiBzdHlsZT1cXFwib3BhY2l0eTowLjM5NTYwNDQwMTgyNjg1ODU7aXNvbGF0aW9uOmlzb2xhdGU7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTUuNTQxLDEwLjI0MWE0LjExNSw0LjExNSwwLDEsMCw2LjYzNi00Ljg2NmgwQTQuMTE1LDQuMTE1LDAsMCwwLDUuNTQsMTAuMjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTcuODM2LDguNTU4YTEuMjY4LDEuMjY4LDAsMSwwLDIuMDQ2LTEuNWgwYTEuMjY4LDEuMjY4LDAsMCwwLTIuMDQ2LDEuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTUyLDI0LjhhNS4zMzcsNS4zMzcsMCwxLDAsOC42MDctNi4zMTJ2MEE1LjMzNyw1LjMzNywwLDAsMCwxNy45NSwyNC44WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45MjgsMjIuNjE2YTEuNjQ1LDEuNjQ1LDAsMSwwLDIuNjUzLTEuOTQ2aDBhMS42NDUsMS42NDUsMCwwLDAtMi42NTMsMS45NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTQuODU5LDE4LjQ5M0E0LjExNSw0LjExNSwwLDEsMCwxMS41LDEzLjYyNmgwYTQuMTE1LDQuMTE1LDAsMCwwLTYuNjM2LDQuODY2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjE1NCwxNi44MDlhMS4yNjgsMS4yNjgsMCwxLDAsMi4wNDYtMS41aDBhMS4yNjgsMS4yNjgsMCwwLDAtMi4wNDYsMS41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40MDgsMTAuMjY5QTQuNDQxLDQuNDQxLDAsMSwwLDE5LjU3LDUuMDE2aDBhNC40NDEsNC40NDEsMCwxLDAtNy4xNjIsNS4yNTNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTE0Ljg4NSw4LjQ1MmExLjM2OSwxLjM2OSwwLDEsMCwyLjIwOC0xLjYxOWgwYTEuMzY5LDEuMzY5LDAsMSwwLTIuMjA4LDEuNjE5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMi42OCwyNi4yMzhhMy44MywzLjgzLDAsMCwxLTIuOTA5LTEuMDg3Yy0xLjEzMy0xLjIxLTEuMi0zLjI1NS0uMi01Ljc1N2EyMS41NDIsMjEuNTQyLDAsMCwxLDUuMzA3LTcuMzI2QzIwLjA2NCw3LjIxNSwyNS45NDUsNS4zNTYsMjguMjcsNy44MzljMS4xMzMsMS4yMTEsMS4yLDMuMjU1LjIsNS43NTdhMjEuNTUzLDIxLjU1MywwLDAsMS01LjMwOCw3LjMyNkEyMS41NTEsMjEuNTUxLDAsMCwxLDE1LjUsMjUuNzMzLDkuMjI5LDkuMjI5LDAsMCwxLDEyLjY4LDI2LjIzOFpNMjUuMzQyLDcuMjhjLTIuNywwLTYuNiwxLjkwOC0xMC4xLDUuMTgzQTIxLDIxLDAsMCwwLDEwLjA3MSwxOS42Yy0uOTIxLDIuMy0uODg3LDQuMTM4LjA5NCw1LjE4N3MyLjgxNywxLjIsNS4xNjkuNDM3YTIxLDIxLDAsMCwwLDcuNDYtNC42OTIsMjEsMjEsMCwwLDAsNS4xNzUtNy4xMzJjLjkyMS0yLjMuODg4LTQuMTM4LS4wOTUtNS4xODdBMy4zNCwzLjM0LDAsMCwwLDI1LjM0Miw3LjI4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42ODEsMjIuMDk0YTIwLjYzMywyMC42MzMsMCwwLDEtOS4zMzktMi43NTlDNi4xLDE1Ljk1LDIuNDczLDEwLjk1Nyw0LjA5NCw3Ljk2OGMuNzktMS40NTgsMi43LTIuMTc1LDUuNC0yLjAxMkEyMS41NDIsMjEuNTQyLDAsMCwxLDE4LjEyLDguNjc0YTIxLjU0NSwyMS41NDUsMCwwLDEsNi45ODcsNS43NDZjMS42LDIuMTY3LDIuMDUxLDQuMTYzLDEuMjYxLDUuNjIxQzI1LjYyMiwyMS40MTYsMjMuOTE1LDIyLjA5NCwyMS42ODEsMjIuMDk0Wk04Ljc1OSw2LjQ3NGMtMi4xLDAtMy41NzIuNjEyLTQuMTksMS43NTFDMy4xMTcsMTAuOSw2LjcyLDE1LjY3NCwxMi42LDE4Ljg2czExLjg0MywzLjYsMTMuMjk0LjkyNGMuNjg1LTEuMjYzLjI1MS0zLjA1NC0xLjIyLTUuMDQyYTIxLDIxLDAsMCwwLTYuODEtNS41OTNBMjEsMjEsMCwwLDAsOS40NTksNi41UTkuMSw2LjQ3NCw4Ljc1OSw2LjQ3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMTAsMjQuMDc4YTMuNzU3LDMuNzU3LDAsMCwxLTIuODUxLTEuMDY1Yy0xLjExLTEuMTg3LTEuMTgxLTMuMTg5LS4yLTUuNjM5YTIxLjA2MiwyMS4wNjIsMCwwLDEsNS4xODktNy4xNjNjNS4wNzMtNC43NDcsMTAuODMtNi41NjMsMTMuMS00LjEzMmgwYzIuMjc1LDIuNDMxLjA4Myw4LjA1My00Ljk5LDEyLjhhMjEuMDU5LDIxLjA1OSwwLDAsMS03LjQ5MSw0LjdBOS4wMjQsOS4wMjQsMCwwLDEsMTAsMjQuMDc4Wk0yMi4zNzMsNS41NTNjLTIuNjMsMC02LjQzOSwxLjg2NC05Ljg1Niw1LjA2MkEyMC41LDIwLjUsMCwwLDAsNy40NjMsMTcuNThjLS45LDIuMjM5LS44NjYsNC4wMzQuMDksNS4wNTVzMi43NDUsMS4xNzIsNS4wMzguNDI0YTIwLjUxMywyMC41MTMsMCwwLDAsNy4yODQtNC41ODJjNC43NjYtNC40Niw2Ljk5NC05Ljg1Myw0Ljk2NS0xMi4wMmgwQTMuMjU2LDMuMjU2LDAsMCwwLDIyLjM3Myw1LjU1M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTEyLDE5LjQxM2MtLjg2LDAtMS43NDgtLjA0My0yLjY1OS0uMTMzQzcuNzg0LDE4LjU4NCwyLjUwNywxNS4zODgsMi44NCwxMmgwYy4zMzMtMy4zODMsNi4xMzMtNS40OSwxMy4yLTQuNzkxczEyLjM0NSwzLjg5MiwxMi4wMTIsNy4yNzVDMjcuNzYzLDE3LjQzNiwyMy4zMjQsMTkuNDEzLDE3LjUxMiwxOS40MTNaTTMuMzc4LDEyLjA1N2MtLjMsMy4wMzEsNC44NzMsNi4wMywxMS41MjgsNi42ODZzMTIuMzEyLTEuMjc3LDEyLjYxMS00LjMwOFMyMi42NDQsOC40MDYsMTUuOTg4LDcuNzUsMy42NzcsOS4wMjcsMy4zNzgsMTIuMDU3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNqKVxcXCIvPjxwYXRoIGQ9XFxcIk02LjI1MSwyOS45NjZoNi42NzRWMjAuODA5aDIuOTgxTDkuNTQ4LDExLjQzNCwzLjI5NSwyMC43ODJsMi45NTguMDMxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNrKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi45MjQsMzAuMDQ1SDYuMjUxYS4wNDkuMDQ5LDAsMCwxLS4wMzktLjAyM2MtLjAxLS4wMTUtLjAxNi0zLjEzNS0uMDE2LTMuMTU2bDAtNS45NzUtMi45LS4wM2EuMDYuMDYsMCwwLDEtLjA1MS0uMDQ4LjEuMSwwLDAsMSwuMDExLS4wODVMOS41MDgsMTEuMzhhLjA1Ni4wNTYsMCwwLDEsLjA0MS0uMDI1LjA1LjA1LDAsMCwxLC4wNC4wMjRsNi4zNTcsOS4zNzVhLjEuMSwwLDAsMSwuMDExLjA4Ni4wNTkuMDU5LDAsMCwxLS4wNTEuMDQ4SDEyLjk4djkuMDc4QzEyLjk4LDMwLjAxLDEyLjk1NSwzMC4wNDUsMTIuOTI0LDMwLjA0NVptLTYuNjE4LS4xNThoNi41NjJWMjAuODA5YzAtLjA0NC4wMjUtLjA3OS4wNTYtLjA3OWgyLjg1TDkuNTQ5LDExLjU0OSwzLjQyNCwyMC43bDIuODMuMDNjLjAzMSwwLC4wNTUuMDM2LjA1NS4wNzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMTgzODY4XFxcIi8+PHBhdGggZD1cXFwiTTE5LjA1MywyMC41ODdsLTIuOTU4LjAzMSw2LjI1NCw5LjM0OCw2LjM1Ny05LjM3NUgyNS43MjRWMTEuNDM0SDE5LjA1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbClcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzgsMTEuNDM0djkuMDc4aDIuOTI1YS4wNTkuMDU5LDAsMCwxLC4wNTEuMDQ4LjEuMSwwLDAsMS0uMDExLjA4NmwtNi4zNTcsOS4zNzVhLjA1LjA1LDAsMCwxLS4wNC4wMjQuMDU2LjA1NiwwLDAsMS0uMDQxLS4wMjVsLTYuMjU0LTkuMzQ4YS4xLjEsMCwwLDEtLjAxMS0uMDg1LjA2LjA2LDAsMCwxLC4wNTEtLjA0OGwyLjktLjAzLDAtNS45NzVjMC0uMDIxLjAwNi0zLjE0MS4wMTYtMy4xNTZhLjA0OS4wNDksMCwwLDEsLjAzOS0uMDIzaDYuNjc0QzI1Ljc1NSwxMS4zNTUsMjUuNzgsMTEuMzksMjUuNzgsMTEuNDM0Wm0tNi42NzIsOS4xNTNjMCwuMDQzLS4wMjUuMDc5LS4wNTUuMDc5bC0yLjgzLjAzLDYuMTI1LDkuMTU2LDYuMjI2LTkuMTgxaC0yLjg1Yy0uMDMxLDAtLjA1Ni0uMDM1LS4wNTYtLjA3OVYxMS41MTNIMTkuMTA3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzE4Mzg2OFxcXCIvPlwiLFxuXHRcIklkcmlzXCI6IFwiPHBhdGggZD1cXFwiTTEzLjM3Niw2LjJjMy42LDEuMSw0LjUsMiw1LjgsNS4yLS4zLTQtMS45LTUuNi01LjgtNS4yWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhhMDgxOVxcXCIvPjxwYXRoIGQ9XFxcIk04LjM3NiwxMi40YzIuMy43LDUsMS4zLDYsNS43LjQtNS41LTIuMi01LjgtNi01LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+PHBhdGggZD1cXFwiTTkuOTc2LDguOGMzLjUuNyw1LjcsMS43LDcsNi4yLjMtNS44LTIuOS02LjQtNy02LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+PHBhdGggZD1cXFwiTTE0LjU3NiwyYzE5LjEsMTIuNC00LjIsMTIuNy44LDI3LjFsMywuOWMtOC4zLTExLjIsMTguNC0xNy0zLjgtMjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+XCIsXG5cdFwiSW5pXCI6IFwiPHBhdGggZD1cXFwiTTIzLjI2NSwyNC4zODFsLjktLjg5NGM0LjE2NC4xMzYsNC4yMjgtLjAxLDQuNDExLS40MzhsMS4xNDQtMi43ODVMMjkuODA1LDIwbC0uMDkzLS4yMzFjLS4wNDktLjEyMi0uMi0uNDg2LTIuOC0yLjk2NVYxNS41YzMtMi44OSwyLjkzNi0zLjAzOCwyLjc2NS0zLjQ2MUwyOC41MzgsOS4yMjVjLS4xNzEtLjQyMi0uMjM2LS41ODctNC4zNy0uNDc0bC0uOS0uOTNhMjAuMTY2LDIwLjE2NiwwLDAsMC0uMTQxLTQuMTA2bC0uMTE2LS4yNjMtMi45NzQtMS4zYy0uNDM4LS4yLS41OTItLjI3Mi0zLjQsMi43ODZsLTEuMjYyLS4wMTljLTIuODkxLTMuMDg2LTMuMDI4LTMuMDMtMy40NjEtMi44NTVMOS4xNDksMy4xODJjLS40MzMuMTc1LS41ODYuMjM3LS40MTgsNC40MzdsLS44OTMuODljLTQuMTYyLS4xMzYtNC4yMjYuMDEyLTQuNDA3LjQzOEwyLjI4NSwxMS43MzMsMi4xOTUsMTJsLjA5NC4yMzJjLjA0OS4xMi4xOTQuNDgsMi44LDIuOTYybDAsMS4zYy0zLDIuODktMi45MzUsMy4wMzgtMi43NjMsMy40NjJsMS4xMzgsMi44MTdjLjE3NC40MzEuMjM2LjU4NCw0LjM2OS40NzZsLjkuOTM1YTIwLjI0MywyMC4yNDMsMCwwLDAsLjEzNyw0LjFsLjExNi4yNjUsMi45OTMsMS4zMDhjLjQzNS4xODIuNTg2LjI0NywzLjM4Ni0yLjhsMS4yNjIuMDE2YzIuODk1LDMuMDksMy4wNDMsMy4wMywzLjQ2NiwyLjg1OWwyLjc1OS0xLjExNUMyMy4yODgsMjguNjQ0LDIzLjQ0LDI4LjU4MywyMy4yNjUsMjQuMzgxWk0xMS40MDcsMTcuODU3YTQuOTU3LDQuOTU3LDAsMSwxLDYuNDg4LDIuODI0QTUuMDE0LDUuMDE0LDAsMCwxLDExLjQwNywxNy44NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTliOGM0XFxcIi8+XCIsXG5cdFwiSW9cIjogXCI8cGF0aCBkPVxcXCJNMiwyLjg4N0g3LjA3NVY3LjUxSDJabS4wNTIsNi44M0g3LjA0VjI4LjYyNkgyLjA1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTMuMjcxLDI2LjQ1NGE5Ljc5MSw5Ljc5MSwwLDAsMS0yLjYxNi03LjE3OCwxMC4xNDgsMTAuMTQ4LDAsMCwxLDIuNjE2LTcuMzQzLDkuMzIxLDkuMzIxLDAsMCwxLDcuMDQ3LTIuNzIsOS4zNCw5LjM0LDAsMCwxLDcuMDc1LDIuNzJBMTAuMTY4LDEwLjE2OCwwLDAsMSwzMCwxOS4yNzZhOS44MDksOS44MDksMCwwLDEtMi42MDcsNy4xNzgsOS40NTYsOS40NTYsMCwwLDEtNy4wNzUsMi42NTlBOS40MzYsOS40MzYsMCwwLDEsMTMuMjcxLDI2LjQ1NFptMTAuNDM2LTIuOTcyYTYuNyw2LjcsMCwwLDAsMS4xNjYtNC4yNTgsNi45NDMsNi45NDMsMCwwLDAtMS4xNjYtNC4zNTQsNC4wNDcsNC4wNDcsMCwwLDAtMy4zODktMS40ODYsNC4wMjIsNC4wMjIsMCwwLDAtMy4zOCwxLjQ4Niw2Ljk5MSw2Ljk5MSwwLDAsMC0xLjE1Niw0LjM1NCw2Ljc0NCw2Ljc0NCwwLDAsMCwxLjE1Niw0LjI1OCw0LjA1Myw0LjA1MywwLDAsMCwzLjM4LDEuNDZBNC4wNzgsNC4wNzgsMCwwLDAsMjMuNzA3LDIzLjQ4MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0XCJKYXZhXCI6IFwiPHBhdGggZD1cXFwiTTEyLjMyNSwyMy42NTRzLTEuMDcuNjIyLjc2MS44MzNhMTYuMDIzLDE2LjAyMywwLDAsMCw1LjgtLjI0NiwxMC4wODgsMTAuMDg4LDAsMCwwLDEuNTQxLjc1MmMtNS40ODEsMi4zNDktMTIuNDA1LS4xMzYtOC4xLTEuMzM5XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTExLjY1NiwyMC41ODhzLTEuMi44ODguNjMzLDEuMDc4YTIyLjYxOCwyMi42MTgsMCwwLDAsNy40ODEtLjM1OSwzLjMyLDMuMzIsMCwwLDAsMS4xNTIuN2MtNi42MjcsMS45MzgtMTQuMDA5LjE1My05LjI2Ni0xLjQyMVxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zLDE1LjM4OGEyLjA1MSwyLjA1MSwwLDAsMS0uMzU1LDIuOTU0czMuNDI5LTEuNzcsMS44NTQtMy45ODdjLTEuNDcxLTIuMDY3LTIuNi0zLjA5NSwzLjUwOC02LjYzNiwwLDAtOS41ODYsMi4zOTQtNS4wMDcsNy42NjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNTUyLDI1LjkyMXMuNzkyLjY1Mi0uODcyLDEuMTU3Yy0zLjE2NC45NTgtMTMuMTY4LDEuMjQ4LTE1Ljk0OC4wMzgtMS0uNDM1Ljg3NC0xLjAzOCwxLjQ2NC0xLjE2NGEzLjgsMy44LDAsMCwxLC45NjYtLjEwOGMtMS4xMTEtLjc4My03LjE4MSwxLjUzNy0zLjA4MywyLjIsMTEuMTc2LDEuODEyLDIwLjM3Mi0uODE2LDE3LjQ3My0yLjEyNFxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi44NCwxNy40MTJzLTUuMDg5LDEuMjA5LTEuOCwxLjY0OGEzOC4yMjUsMzguMjI1LDAsMCwwLDYuNzMxLS4wNzJjMi4xMDYtLjE3OCw0LjIyMS0uNTU1LDQuMjIxLS41NTVhOC45MzQsOC45MzQsMCwwLDAtMS4yOC42ODVjLTUuMTY4LDEuMzU5LTE1LjE1MS43MjctMTIuMjc3LS42NjNhOS42MjksOS42MjksMCwwLDEsNC40MDctMS4wNDJcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMjEuOTY5LDIyLjUxNWM1LjI1My0yLjczLDIuODI0LTUuMzUzLDEuMTI5LTVhMy45MzIsMy45MzIsMCwwLDAtLjYuMTYxLjk1Ny45NTcsMCwwLDEsLjQ0OS0uMzQ2YzMuMzU0LTEuMTc5LDUuOTMzLDMuNDc4LTEuMDgzLDUuMzIyYS40NTguNDU4LDAsMCwwLC4xMDYtLjEzOFxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC44LDJzMi45MDksMi45MS0yLjc1OSw3LjM4NmMtNC41NDYsMy41OS0xLjAzNyw1LjYzNywwLDcuOTc1LTIuNjUzLTIuMzk0LTQuNi00LjUtMy4yOTQtNi40NjNDMTQuNjY0LDguMDE5LDE5Ljk3Niw2LjYyMywxOC44LDJcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMTMuMzU2LDI5LjkxMmM1LjA0Mi4zMjMsMTIuNzg2LS4xNzksMTIuOTY5LTIuNTY1LDAsMC0uMzUzLjktNC4xNjcsMS42MjNhNDEuNDU4LDQxLjQ1OCwwLDAsMS0xMi43Ni4ycy42NDUuNTMzLDMuOTU5Ljc0NlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPlwiLFxuXHRcIkphdmFTY3JpcHRcIjogXCI8cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNWRlMTlcXFwiLz48cGF0aCBkPVxcXCJNMjAuODA5LDIzLjg3NWEyLjg2NiwyLjg2NiwwLDAsMCwyLjYsMS42YzEuMDksMCwxLjc4Ny0uNTQ1LDEuNzg3LTEuMywwLS45LS43MTYtMS4yMjItMS45MTYtMS43NDdsLS42NTgtLjI4MmMtMS45LS44MDktMy4xNi0xLjgyMi0zLjE2LTMuOTY0LDAtMS45NzMsMS41LTMuNDc2LDMuODUzLTMuNDc2YTMuODg5LDMuODg5LDAsMCwxLDMuNzQyLDIuMTA3TDI1LDE4LjEyOEExLjc4OSwxLjc4OSwwLDAsMCwyMy4zMTEsMTdhMS4xNDUsMS4xNDUsMCwwLDAtMS4yNTksMS4xMjhjMCwuNzg5LjQ4OSwxLjEwOSwxLjYxOCwxLjZsLjY1OC4yODJjMi4yMzYuOTU5LDMuNSwxLjkzNiwzLjUsNC4xMzMsMCwyLjM2OS0xLjg2MSwzLjY2Ny00LjM2LDMuNjY3YTUuMDU1LDUuMDU1LDAsMCwxLTQuNzk1LTIuNjkxWm0tOS4yOTUuMjI4Yy40MTMuNzMzLjc4OSwxLjM1MywxLjY5MywxLjM1My44NjQsMCwxLjQxLS4zMzgsMS40MS0xLjY1M1YxNC44NTZoMi42MzF2OC45ODJjMCwyLjcyNC0xLjYsMy45NjQtMy45MjksMy45NjRhNC4wODUsNC4wODUsMCwwLDEtMy45NDctMi40WlxcXCIvPlwiLFxuXHRcIkpTT05cIjogXCI8cGF0aCBkPVxcXCJNNC4wMTQsMTQuOTc2YTIuNTEsMi41MSwwLDAsMCwxLjU2Ny0uNTE4QTIuMzc3LDIuMzc3LDAsMCwwLDYuMzg2LDEzLjEsMTUuMjYxLDE1LjI2MSwwLDAsMCw2LjYsMTAuMTU2cS4wMTItMi4wODUuMDc1LTIuNzQ3YTUuMjM2LDUuMjM2LDAsMCwxLC40MTgtMS42ODYsMy4wMjUsMy4wMjUsMCwwLDEsLjc1NS0xLjAxOEEzLjA0NiwzLjA0NiwwLDAsMSw5LDQuMTI1LDYuNzYyLDYuNzYyLDAsMCwxLDEwLjU0NCw0aC43VjUuOTZoLS4zODdhMi4zMzgsMi4zMzgsMCwwLDAtMS43MjMuNDY4QTMuNCwzLjQsMCwwLDAsOC43MDksOC41MmEzNi4wNTQsMzYuMDU0LDAsMCwxLS4xMzcsNC4xMzMsNC43MzQsNC43MzQsMCwwLDEtLjc2OCwyLjA2QTQuNTY3LDQuNTY3LDAsMCwxLDYuMSwxNmEzLjgwOSwzLjgwOSwwLDAsMSwxLjk5MiwxLjc1NCw4Ljg2MSw4Ljg2MSwwLDAsMSwuNjE4LDMuODY1cTAsMi40MzUuMDUsMi45QTEuNzU1LDEuNzU1LDAsMCwwLDkuMjY0LDI1LjdhMi42MzksMi42MzksMCwwLDAsMS41OTIuMzM3aC4zODdWMjhoLS43YTUuNjU1LDUuNjU1LDAsMCwxLTEuNzczLS4yLDIuOTcsMi45NywwLDAsMS0xLjMyNC0uOTMsMy4zNTMsMy4zNTMsMCwwLDEtLjY4MS0xLjYzQTI0LjE3NSwyNC4xNzUsMCwwLDEsNi42LDIyLjAwNiwxNi40NjksMTYuNDY5LDAsMCwwLDYuMzg2LDE4LjlhMi40MDgsMi40MDgsMCwwLDAtLjgwNS0xLjM2MSwyLjQ4OSwyLjQ4OSwwLDAsMC0xLjU2Ny0uNTI0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y1ZGUxOVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy45ODYsMTcuMDExYTIuNDg5LDIuNDg5LDAsMCwwLTEuNTY3LjUyNCwyLjQwOCwyLjQwOCwwLDAsMC0uODA1LDEuMzYxLDE2LjQ2OSwxNi40NjksMCwwLDAtLjIxMiwzLjEwOSwyNC4xNzUsMjQuMTc1LDAsMCwxLS4xNjksMy4yMzQsMy4zNTMsMy4zNTMsMCwwLDEtLjY4MSwxLjYzLDIuOTcsMi45NywwLDAsMS0xLjMyNC45Myw1LjY1NSw1LjY1NSwwLDAsMS0xLjc3My4yaC0uN1YyNi4wNGguMzg3YTIuNjM5LDIuNjM5LDAsMCwwLDEuNTkyLS4zMzcsMS43NTUsMS43NTUsMCwwLDAsLjUwNi0xLjE4NnEuMDUtLjQ2Mi4wNS0yLjlhOC44NjEsOC44NjEsMCwwLDEsLjYxOC0zLjg2NUEzLjgwOSwzLjgwOSwwLDAsMSwyNS45LDE2YTQuNTY3LDQuNTY3LDAsMCwxLTEuNy0xLjI4Niw0LjczNCw0LjczNCwwLDAsMS0uNzY4LTIuMDYsMzYuMDU0LDM2LjA1NCwwLDAsMS0uMTM3LTQuMTMzLDMuNCwzLjQsMCwwLDAtLjQyNS0yLjA5MiwyLjMzOCwyLjMzOCwwLDAsMC0xLjcyMy0uNDY4aC0uMzg3VjRoLjdBNi43NjIsNi43NjIsMCwwLDEsMjMsNC4xMjVhMy4wNDYsMy4wNDYsMCwwLDEsMS4xNDkuNTgxLDMuMDI1LDMuMDI1LDAsMCwxLC43NTUsMS4wMTgsNS4yMzYsNS4yMzYsMCwwLDEsLjQxOCwxLjY4NnEuMDYyLjY2Mi4wNzUsMi43NDdhMTUuMjYxLDE1LjI2MSwwLDAsMCwuMjEyLDIuOTQ3LDIuMzc3LDIuMzc3LDAsMCwwLC44MDUsMS4zNTUsMi41MSwyLjUxLDAsMCwwLDEuNTY3LjUxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNWRlMTlcXFwiLz5cIixcblx0XCJKU09ONVwiOiBcIjxwYXRoIGQ9XFxcIk0xMi44MTUsMTUuMTY3bC42OC01LjY3Nmg2LjQ4OXYyaC00LjRMMTUuMzI5LDEzLjdhMi40LDIuNCwwLDAsMSwuMjUyLS4xMjIsMi45NjIsMi45NjIsMCwwLDEsLjM3NC0uMTMsMi45LDIuOSwwLDAsMSwuNDU4LS4xMDYsMi44MzQsMi44MzQsMCwwLDEsLjUxMi0uMDQ2LDMuOTgzLDMuOTgzLDAsMCwxLDEuNDY2LjI1MiwyLjczNiwyLjczNiwwLDAsMSwxLjA3Ni43MjMsMy4xNjcsMy4xNjcsMCwwLDEsLjY2NCwxLjE2OCw1LDUsMCwwLDEsLjIyOCwxLjU4OCw0LjE1Nyw0LjE1NywwLDAsMS0uMjM2LDEuMzg3LDMuMzA3LDMuMzA3LDAsMCwxLTEuOSwyLjAyOSw0LjMsNC4zLDAsMCwxLTEuNzE1LjMxMiw0Ljc1LDQuNzUsMCwwLDEtMS40NTgtLjIyOCw0LjA1NCw0LjA1NCwwLDAsMS0xLjI1Mi0uNjU2LDMuMzU5LDMuMzU5LDAsMCwxLS44NzgtMS4wNDYsMi43ODcsMi43ODcsMCwwLDEtLjMyLTEuMzgySDE1LjE4YTEuNDU4LDEuNDU4LDAsMCwwLC4zOS45NywxLjM4MywxLjM4MywwLDAsMCwxLjU1OC4yMDYsMS4wODksMS4wODksMCwwLDAsLjQtLjQxMiwxLjc0OSwxLjc0OSwwLDAsMCwuMjA2LS42MTgsNC4zLDQuMywwLDAsMCwuMDYyLS43NCwyLjcwOSwyLjcwOSwwLDAsMC0uMDkyLS43NCwxLjUwNiwxLjUwNiwwLDAsMC0uMjgyLS41NTgsMS4yMjksMS4yMjksMCwwLDAtLjUtLjM0OSwxLjc4LDEuNzgsMCwwLDAtLjcxOC0uMTMsMi4xMjEsMi4xMjEsMCwwLDAtLjUuMDU0LDEuODA1LDEuODA1LDAsMCwwLS4zODIuMTM4LDEuMzE4LDEuMzE4LDAsMCwwLS4yNzQuMTksMS4yOCwxLjI4LDAsMCwwLS4xOS4ybC0yLjA0OC0uNDgyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTUuOTg1LDIzLjM0M2E0LjQ1LDQuNDUsMCwwLDEtMS4zMTEtLjU4LDMuMiwzLjIsMCwwLDEtLjg0OC0uODI0LDMuMDEyLDMuMDEyLDAsMCwxLS40NTgtMS4wMDgsNC44NzksNC44NzksMCwwLDEtLjEzLTEuMTQzdi0xLjU1YTIuMywyLjMsMCwwLDAtLjA3Ni0uNjE4LDEuMTg0LDEuMTg0LDAsMCwwLS4yMjItLjQ2Ni45NjkuOTY5LDAsMCwwLS4zODItLjMwNkExLjMyNCwxLjMyNCwwLDAsMCwyLDE2Ljc0NFYxNS4wMTJhMS4wNzQsMS4wNzQsMCwwLDAsLjkzNy0uNCwxLjg0MSwxLjg0MSwwLDAsMCwuMy0xLjF2LTEuNTVhNC44NzksNC44NzksMCwwLDEsLjEzLTEuMTQzLDMuMDM3LDMuMDM3LDAsMCwxLC40NTgtMS4wMDhBMy4xNywzLjE3LDAsMCwxLDQuNjcxLDlhNC40ODIsNC40ODIsMCwwLDEsMS4zMTEtLjU4bC40OCwxLjM0NGExLjIyMiwxLjIyMiwwLDAsMC0uNDg4LjMyOCwxLjc0MiwxLjc0MiwwLDAsMC0uMzA2LjUsMi41MjQsMi41MjQsMCwwLDAtLjE2LjYzNCw1LjgyNyw1LjgyNywwLDAsMC0uMDQ2Ljc0djEuNTVBMi44NDQsMi44NDQsMCwwLDEsNS4xMjYsMTQuOWEyLjM3LDIuMzcsMCwwLDEtMS4wNzYuOTgzLDIuMzU2LDIuMzU2LDAsMCwxLDEuMDc2Ljk5MiwyLjgwOCwyLjgwOCwwLDAsMSwuMzM2LDEuMzc0djEuNTVhNS44MjcsNS44MjcsMCwwLDAsLjA0Ni43NCwyLjU4NiwyLjU4NiwwLDAsMCwuMTYuNjM0LDEuNjg0LDEuNjg0LDAsMCwwLC4zMDYuNUExLjIyMiwxLjIyMiwwLDAsMCw2LjQ2MiwyMmMwLS4wMDUtLjQ3NywxLjM0NC0uNDc3LDEuMzQ0XFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTguMjE1LDE5LjM5M2ExLjI4OSwxLjI4OSwwLDAsMSwuMS0uNTEyLDEuMjEyLDEuMjEyLDAsMCwxLC4yOS0uNCwxLjM3MywxLjM3MywwLDAsMSwuNDUtLjI3NCwxLjYzNywxLjYzNywwLDAsMSwuNTgtLjEsMS41NTUsMS41NTUsMCwwLDEsLjU3Mi4xLDEuMjY5LDEuMjY5LDAsMCwxLC40NS4yNzQsMS4wNzcsMS4wNzcsMCwwLDEsLjI5LjQsMS4yOTQsMS4yOTQsMCwwLDEsMCwxLjAyNCwxLjE1MSwxLjE1MSwwLDAsMS0uMjkuNDEyLDEuMzg4LDEuMzg4LDAsMCwxLS40NS4yNjgsMS42MTMsMS42MTMsMCwwLDEtLjU3Mi4xLDEuNTc4LDEuNTc4LDAsMCwxLS41OC0uMSwxLjQwOSwxLjQwOSwwLDAsMS0uNDUtLjI2OCwxLjIyOSwxLjIyOSwwLDAsMS0uMzktLjkyNG0wLTYuMDg4YTEuMjg5LDEuMjg5LDAsMCwxLC4xLS41MTIsMS4yMTIsMS4yMTIsMCwwLDEsLjI5LS40LDEuMzczLDEuMzczLDAsMCwxLC40NS0uMjc0LDEuNjM3LDEuNjM3LDAsMCwxLC41OC0uMSwxLjU1NSwxLjU1NSwwLDAsMSwuNTcyLjEsMS4yNjksMS4yNjksMCwwLDEsLjQ1LjI3NCwxLjA3NywxLjA3NywwLDAsMSwuMjkuNCwxLjI5NCwxLjI5NCwwLDAsMSwwLDEuMDI0LDEuMTUxLDEuMTUxLDAsMCwxLS4yOS40MTIsMS4zODgsMS4zODgsMCwwLDEtLjQ1LjI2OCwxLjYxMywxLjYxMywwLDAsMS0uNTcyLjEsMS41NzgsMS41NzgsMCwwLDEtLjU4LS4xLDEuNDA5LDEuNDA5LDAsMCwxLS40NS0uMjY4LDEuMjI5LDEuMjI5LDAsMCwxLS4zOS0uOTI0XFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTI0LjI0LDIwLjI5M2EzLjY0OCwzLjY0OCwwLDAsMS0uMTIyLjkyOSw0LjUzNCw0LjUzNCwwLDAsMS0uMzM2Ljg5MSw0LjcwNiw0LjcwNiwwLDAsMS0uNS44MDcsNC4wMDUsNC4wMDUsMCwwLDEtLjYxLjY2NGwtMS4zLS42MWMuMDgxLS4xNzMuMTY4LS4zNDkuMjYtLjUyNmE0Ljg0Niw0Ljg0NiwwLDAsMCwuMjY4LS41NTgsNC40NDMsNC40NDMsMCwwLDAsLjIwNi0uNjU2LDMuNDA2LDMuNDA2LDAsMCwwLC4wODQtLjhWMTguNjU2aDIuMDU5bC0uMDA4LDEuNjM2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTI1LjUzOCwyMS45OTRhMS4yNTEsMS4yNTEsMCwwLDAsLjQ4OC0uMzI4LDEuNzA3LDEuNzA3LDAsMCwwLC4zMDYtLjUsMi41MjUsMi41MjUsMCwwLDAsLjE2LS42MzQsNS44MjYsNS44MjYsMCwwLDAsLjA0Ni0uNzR2LTEuNTVhMi44NDQsMi44NDQsMCwwLDEsLjMzNi0xLjM4MiwyLjM2NCwyLjM2NCwwLDAsMSwxLjA4NC0uOTgzLDIuMzY0LDIuMzY0LDAsMCwxLTEuMDg0LS45ODMsMi44NDQsMi44NDQsMCwwLDEtLjMzNi0xLjM4MnYtMS41NWE1LjgyNyw1LjgyNywwLDAsMC0uMDQ2LS43NCwyLjU4NiwyLjU4NiwwLDAsMC0uMTYtLjYzNCwxLjY4NCwxLjY4NCwwLDAsMC0uMzA2LS41LDEuMjIyLDEuMjIyLDAsMCwwLS40ODgtLjMyOGwuNDgtMS4zMzhBNC40NSw0LjQ1LDAsMCwxLDI3LjMyOSw5YTMuMDkyLDMuMDkyLDAsMCwxLC44NDguODE1LDIuODkyLDIuODkyLDAsMCwxLC40NSwxLjAwOCw0LjYwNiw0LjYwNiwwLDAsMSwuMTM4LDEuMTQzdjEuNTVhMi42NTUsMi42NTUsMCwwLDAsLjA2OC42MjYsMS40NDgsMS40NDgsMCwwLDAsLjIyMi40NzQsMS4wMzcsMS4wMzcsMCwwLDAsLjM4Mi4zLDEuMzc2LDEuMzc2LDAsMCwwLC41NjQuMTA2djEuNzMxYTEuMDc3LDEuMDc3LDAsMCwwLS45NDYuNDEyLDEuODI4LDEuODI4LDAsMCwwLS4yOSwxLjA4NHYxLjU1YTQuNjA2LDQuNjA2LDAsMCwxLS4xMzgsMS4xNDMsMi45MTUsMi45MTUsMCwwLDEtLjQ1LDEuMDA4LDMuMTU3LDMuMTU3LDAsMCwxLS44NDguODI0LDQuNDgyLDQuNDgyLDAsMCwxLTEuMzExLjU4bC0uNDgtMS4zNTJcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz5cIixcblx0XCJKdWxpYVwiOiBcIjxwYXRoIGQ9XFxcIk03LjQ0OCwyMS45ODNWMTMuNzc1bC0yLjQzMi42Njl2OC43MjlhMi42NiwyLjY2LDAsMCwxLS4xMDYuOTI5LjMzNi4zMzYsMCwwLDEtLjMwOC4yMzkuNDA1LjQwNSwwLDAsMS0uMjEyLS4wNzQsMS4yODIsMS4yODIsMCwwLDEtLjI4Ny0uMywyLjgxMywyLjgxMywwLDAsMC0uMzc3LS40MDkuODc0Ljg3NCwwLDAsMC0uNjExLS4yMDcsMS4yMiwxLjIyLDAsMCwwLS44MTIuMjU1Ljc4OS43ODksMCwwLDAtLjMuNjI3QS45MDcuOTA3LDAsMCwwLDIuNTQyLDI1YTMuMTE1LDMuMTE1LDAsMCwwLDEuNTYxLjMxOSw3LjA2NSw3LjA2NSwwLDAsMCwxLjM3LS4xMjIsMi4zNjEsMi4zNjEsMCwwLDAsMS4wNTctLjQ4MywyLjI5MiwyLjI5MiwwLDAsMCwuNjgtMS4wMTQsNS4wOTQsNS4wOTQsMCwwLDAsLjIzOS0xLjcxNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cGF0aCBkPVxcXCJNMTAuODI1LDE0LjAwOEg4LjR2NS42MThhMi4yNDEsMi4yNDEsMCwwLDAsLjIxOC45NzcsMi40ODksMi40ODksMCwwLDAsLjYuOCwyLjksMi45LDAsMCwwLC44OTIuNTM2LDMuMDQ1LDMuMDQ1LDAsMCwwLDEuMS4yLDIuNTUsMi41NSwwLDAsMCwxLjA1MS0uMjQ0LDQuMzQ3LDQuMzQ3LDAsMCwwLDEuMDE5LS42NDh2Ljc0M0gxNS43MVYxNC4wMDhIMTMuMjg5djUuNzU2YTIuNzY0LDIuNzY0LDAsMCwxLS42NDguNzA2LDEuMTM5LDEuMTM5LDAsMCwxLS42NDguMjgxLDEuMTU1LDEuMTU1LDAsMCwxLS40NTctLjA5LDEuMjYzLDEuMjYzLDAsMCwxLS4zNzItLjIzOSwxLjA2LDEuMDYsMCwwLDEtLjI1LS4zNTYsMS4wOTEsMS4wOTEsMCwwLDEtLjA5LS40NDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBhdGggZD1cXFwiTTE5LjA3NCwyMS45ODNWMTAuMTMybC0yLjQxMS42NjlWMjEuOTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMzgsMTQuNDQ0djcuNTRoMi40MjFWMTMuNzc1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NjgsMTcuODYzdjIuM3EtLjM3Mi4yNzYtLjY3NC40NTdhMS4xNjUsMS4xNjUsMCwwLDEtLjYuMTgxLjQ2OC40NjgsMCwwLDEtLjI3Ni0uMDksMSwxLDAsMCwxLS4yMzQtLjIzOSwxLjEzOCwxLjEzOCwwLDAsMS0uMTY1LS4zNTYsMS41NzYsMS41NzYsMCwwLDEtLjA1OC0uNDMuOTY4Ljk2OCwwLDAsMSwuMTgxLS41NTIsMi4zMDYsMi4zMDYsMCwwLDEsLjQ3My0uNSw0LjU3Miw0LjU3MiwwLDAsMSwuNjQ4LS40Myw3LjYxMiw3LjYxMiwwLDAsMSwuNzA2LS4zNDVaTTMwLDIxLjk4M1YxNmEyLjA4MywyLjA4MywwLDAsMC0uMTkxLS45LDEuNzc5LDEuNzc5LDAsMCwwLS41OTUtLjY5LDMuMDA2LDMuMDA2LDAsMCwwLTEuMDI1LS40NDEsNi4yMjUsNi4yMjUsMCwwLDAtMS40ODEtLjE1NCw1LjczNSw1LjczNSwwLDAsMC0xLjMyNy4xNDksNC42LDQuNiwwLDAsMC0xLjEuNCwyLjM3MywyLjM3MywwLDAsMC0uNzU5LjYxMSwxLjIxNiwxLjIxNiwwLDAsMC0uMjgxLjc3Ljk1OC45NTgsMCwwLDAsLjMxOS43MzgsMS4xNzgsMS4xNzgsMCwwLDAsLjgyOC4yOTIsMS4zNjQsMS4zNjQsMCwwLDAsLjU0Ny0uMS44LjgsMCwwLDAsLjMzNS0uMjU1Ljk4Ni45ODYsMCwwLDAsLjE2NS0uMzcyLDEuOTc4LDEuOTc4LDAsMCwwLC4wNDgtLjQzNSwxLjAzMSwxLjAzMSwwLDAsMSwuMjIzLS42NjkuOTc1Ljk3NSwwLDAsMSwuOC0uMjc2LDEuMDA4LDEuMDA4LDAsMCwxLC43ODEuMzE5LDEuNTk0LDEuNTk0LDAsMCwxLC4yOTIsMS4wODN2Ljc4NmwtLjI2NS4wNjRxLS40ODguMTQ5LS45ODguMzEzdC0uOTYxLjM2MWE3Ljg4NCw3Ljg4NCwwLDAsMC0uODY1LjQzLDMuNTExLDMuNTExLDAsMCwwLS43MDYuNTMxLDIuMzE5LDIuMzE5LDAsMCwwLS40NzguNjY5LDEuOTE4LDEuOTE4LDAsMCwwLS4xNzUuODI4LDIuMDM0LDIuMDM0LDAsMCwwLC4xNjUuODIzLDEuODc2LDEuODc2LDAsMCwwLC40NzMuNjUzLDIuMjU1LDIuMjU1LDAsMCwwLC43NDkuNDM1LDIuOTA3LDIuOTA3LDAsMCwwLC45OTMuMTU5LDMuNjc5LDMuNjc5LDAsMCwwLC43LS4wNTgsMi41MDksMi41MDksMCwwLDAsLjUzNi0uMTY1LDIuMjA5LDIuMjA5LDAsMCwwLC40My0uMjVxLjE5MS0uMTQzLjM5My0uMzEzdi42MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PGNpcmNsZSBjeD1cXFwiNi4yMDRcXFwiIGN5PVxcXCIxMS42NzJcXFwiIHI9XFxcIjEuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzY2ODJkZlxcXCIvPjxwYXRoIGQ9XFxcIk02LjIsMTMuMjg3YTEuNjE1LDEuNjE1LDAsMSwxLDEuNjE1LTEuNjE1QTEuNjE3LDEuNjE3LDAsMCwxLDYuMiwxMy4yODdabTAtM2ExLjM4NSwxLjM4NSwwLDEsMCwxLjM4NSwxLjM4NUExLjM4NiwxLjM4NiwwLDAsMCw2LjIsMTAuMjg3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQwNjNkOFxcXCIvPjxjaXJjbGUgY3g9XFxcIjIxLjQxN1xcXCIgY3k9XFxcIjExLjY3MlxcXCIgcj1cXFwiMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZDU2MzVjXFxcIi8+PHBhdGggZD1cXFwiTTIxLjQxNywxMy4yODdhMS42MTUsMS42MTUsMCwxLDEsMS42MTUtMS42MTVBMS42MTcsMS42MTcsMCwwLDEsMjEuNDE3LDEzLjI4N1ptMC0zQTEuMzg1LDEuMzg1LDAsMSwwLDIyLjgsMTEuNjcyLDEuMzg2LDEuMzg2LDAsMCwwLDIxLjQxNywxMC4yODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2IzYzMzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjMuMzg1XFxcIiBjeT1cXFwiOC4yOTdcXFwiIHI9XFxcIjEuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzYwYWQ1MVxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4zODUsOS45MTJBMS42MTUsMS42MTUsMCwxLDEsMjUsOC4zLDEuNjE3LDEuNjE3LDAsMCwxLDIzLjM4NSw5LjkxMlptMC0zQTEuMzg1LDEuMzg1LDAsMSwwLDI0Ljc3LDguMywxLjM4NiwxLjM4NiwwLDAsMCwyMy4zODUsNi45MTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzg5ODI2XFxcIi8+PGNpcmNsZSBjeD1cXFwiMjUuMzU0XFxcIiBjeT1cXFwiMTEuNjcyXFxcIiByPVxcXCIxLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNhYTc5YzFcXFwiLz48cGF0aCBkPVxcXCJNMjUuMzU0LDEzLjI4N2ExLjYxNSwxLjYxNSwwLDEsMSwxLjYxNS0xLjYxNUExLjYxNywxLjYxNywwLDAsMSwyNS4zNTQsMTMuMjg3Wm0wLTNhMS4zODUsMS4zODUsMCwxLDAsMS4zODUsMS4zODVBMS4zODYsMS4zODYsMCwwLDAsMjUuMzU0LDEwLjI4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5NTU4YjJcXFwiLz5cIixcblx0XCJLb3RsaW5cIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIzMTEuMzM2XFxcIiB5MT1cXFwiMTQ1Mi4wNjRcXFwiIHgyPVxcXCIyODMuMzQyXFxcIiB5Mj1cXFwiMTQ4MC4wNThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTI4MS40IC0xNDUwKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U0NDg1N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzlkNGI5ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzZkNWZhYVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfa290bGluPC90aXRsZT48cGF0aCBkPVxcXCJNMzAsMzBIMlYySDMwTDE2LDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHRcIkt1c3RvXCI6IFwiPHJlY3QgeD1cXFwiMC41NVxcXCIgeT1cXFwiMjIuMzM5XFxcIiB3aWR0aD1cXFwiMTUuNDMzXFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC40MzlcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xNC4zNjMgMTIuNzk3KSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNiOGQ0MzJcXFwiLz48cmVjdCB4PVxcXCIxLjM3MlxcXCIgeT1cXFwiMTYuMzgyXFxcIiB3aWR0aD1cXFwiOS44NTlcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjQzOVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTEwLjcyNyA5LjY2Mykgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojYjhkNDMyXFxcIi8+PHJlY3QgeD1cXFwiOS4yMzJcXFwiIHk9XFxcIjI0LjMwMVxcXCIgd2lkdGg9XFxcIjkuODU5XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC40MzlcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xNC4wMjQgMTcuNTQxKSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNiOGQ0MzJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjMwIDIgMiAyIDMwIDI5Ljk5OSAzMCAyXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3OGQ0XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMC4yODIgMTAuMjgyIDIxLjcxOCAyMS43MTggMzAgMTMuNDM2IDMwIDIgMTguNTY0IDIgMTAuMjgyIDEwLjI4MlxcXCIgc3R5bGU9XFxcImZpbGw6IzU5YjRkOVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMzAgMjkuOTk5IDMwIDIgMTYgMTYgMzAgMjkuOTk5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO29wYWNpdHk6MC4yMDAwMDAwMDI5ODAyMzIyNDtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxyZWN0IHg9XFxcIjE2LjIyNlxcXCIgeT1cXFwiOS4wMDFcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMi4xOTIgMTUuNTA3KSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIyMC4xOFxcXCIgeT1cXFwiNS4wNDhcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgxLjc2MiAxNy4xNDYpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjIwLjE4XFxcIiB5PVxcXCIxMi45NTVcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy44MjkgMTkuNDYxKSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIyNC4xMzNcXFwiIHk9XFxcIjkuMDAyXFxcIiB3aWR0aD1cXFwiMi43OTZcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjYyMlxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMC4xMjQgMjEuMDk5KSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJMYVRlWFwiOiBcIjxwYXRoIGQ9XFxcIk0xMS4zMzMsMTMuMTIyYy0uMTI4LTEuNTYyLS4yNDEtMi43NTYtMi4yODctMi43NTZINy45MXY4LjRoMi4xNDV2LjYxMWwtMy4wODMtLjAyOS0zLjA4Mi4wMjl2LS42MTFINi4wMzR2LTguNEg0Ljg4NGMtMi4wNDYsMC0yLjE1OSwxLjIwOC0yLjI4NywyLjc1NkgybC4yODQtMy4zNjdoOS4zNjJsLjI4NCwzLjM2N2gtLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyMi41M0gxMC40MVYyMS45MmgxLjUwNlYxMy40NjdIMTAuNDF2LS42MTFoOC42MzdsLjQxMiwzLjM2N2gtLjZjLS4yMTMtMS44MzMtLjY4Mi0yLjc1Ni0yLjg1NS0yLjc1NkgxMy43OTFWMTcuMmguODM4YzEuMzY0LDAsMS41MDUtLjYsMS41MDUtMS42NjJoLjZ2My45MzVoLS42YzAtMS4wOC0uMTQyLTEuNjYyLTEuNTA1LTEuNjYyaC0uODM4djQuMTA2aDIuMjE2YzIuNDcyLDAsMy0xLjEwOCwzLjMtMy4yMjVoLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjcyNywxOS4xODZjLS41NCwwLTEuOTYsMC0yLjQxNS4wMjlWMTguNmgxLjE3OWwtMi41NTctMy41NTItMi41MjksMy4zODFBNC4xLDQuMSwwLDAsMCwyMi43LDE4LjZ2LjYxMWMtLjM1NS0uMDI5LTEuNTc2LS4wMjktMi4wMTctLjAyOS0uNCwwLTEuNTQ4LDAtMS44NzUuMDI5VjE4LjZoLjM4M2E3LjQ1OSw3LjQ1OSwwLDAsMCwuODI0LS4wNDNjLjUtLjA0My41NC0uMDg1LjY2Ny0uMjU2TDIzLjUzNiwxNC41bC0zLjE1My00LjQxOEgxOVY5LjQ3Yy4zODQuMDI4LDEuNzkuMDI4LDIuMjczLjAyOC41ODIsMCwxLjkxOCwwLDIuNDI5LS4wMjh2LjYxMUgyMi41MjhsMi4xMTcsMi45NTUsMi4wNzQtMi43ODRhNC4xLDQuMSwwLDAsMC0xLjI5My0uMTdWOS40N2MuMzU2LjAyOCwxLjU5MS4wMjgsMi4wMzIuMDI4LjQsMCwxLjUzNCwwLDEuODYxLS4wMjh2LjYxMWgtLjM2OWE1LjI2NCw1LjI2NCwwLDAsMC0uODM4LjA0M2MtLjQ2OS4wNDMtLjUyNi4wNzEtLjY2Ny4yNTZsLTIuNCwzLjIxTDI4LjYzNiwxOC42SDMwdi42MTFDMjkuNjQ1LDE5LjE4NiwyOC4xODIsMTkuMTg2LDI3LjcyNywxOS4xODZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+XCIsXG5cdFwiTGVzc1wiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0zLjYwOVxcXCIgeTE9XFxcIi00OTIuNjg1XFxcIiB4Mj1cXFwiLTMuNjA5XFxcIiB5Mj1cXFwiLTQ4MC4yNzFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMTkuNzEyIDUwMi44OTEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjE1XFxcIiBzdG9wLWNvbG9yPVxcXCIjMmE0Zjg0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM4OFxcXCIgc3RvcC1jb2xvcj1cXFwiIzI5NGU4MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzE3MmU0ZVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbGVzczwvdGl0bGU+PHBhdGggZD1cXFwiTTI4LjU1OSwyMC4yMjZhMi40LDIuNCwwLDAsMS0yLjM5NCwyLjM5NEg2LjA0YTIuNCwyLjQsMCwwLDEtMi4zOTQtMi4zOTRWMTIuNkEyLjQsMi40LDAsMCwxLDYuMDQsMTAuMjA2SDI2LjE2NUEyLjQsMi40LDAsMCwxLDI4LjU1OSwxMi42WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4zNDksMTYuMjVhMS45NzIsMS45NzIsMCwwLDEsMS41NzgsMS44OTEsMS42OSwxLjY5LDAsMCwxLS42NTMsMS40LDIuOTM0LDIuOTM0LDAsMCwxLTEuODYyLjU1OSw0LjU1OCw0LjU1OCwwLDAsMS0yLjI0MS0uNjE4LDEuOTg2LDEuOTg2LDAsMCwxLC4xNi0uNjY5LDEuODMsMS44MywwLDAsMSwuMzUtLjU3NiwzLjcsMy43LDAsMCwwLDEuNjQ5LjQ5My45NjUuOTY1LDAsMCwwLC41MS0uMTEyLjMzOS4zMzksMCwwLDAsLjE3OC0uM3EwLS4zNTMtLjU0Ni0uNTI5bC0uNjUzLS4yNDdxLTEuNDgyLS41NC0xLjQ4Mi0xLjc2MmExLjc1MywxLjc1MywwLDAsMSwuNjIzLTEuNDE2LDIuNTg3LDIuNTg3LDAsMCwxLDEuNjc4LS42NDgsNS4wOTQsNS4wOTQsMCwwLDEsMS4xNS4xNDcsNC41NTUsNC41NTUsMCwwLDEsMS4wMzIuNDcyLDEuNjY4LDEuNjY4LDAsMCwxLS4xMy43MjIsMS4yMiwxLjIyLDAsMCwxLS4zOC41NTgsNC4yNjEsNC4yNjEsMCwwLDAtMS42Ni0uNDQ2LjU0NC41NDQsMCwwLDAtLjM2Mi4xMDYuMzM4LjMzOCwwLDAsMC0uMTI0LjI3cTAsLjI4Mi40NTEuNDQ2bC43MzYuMjU5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4xLDE2LjI1YTEuOTcyLDEuOTcyLDAsMCwxLDEuNTc3LDEuODkxLDEuNjkxLDEuNjkxLDAsMCwxLS42NTIsMS40LDIuOTM3LDIuOTM3LDAsMCwxLTEuODYyLjU1OSw0LjU2LDQuNTYsMCwwLDEtMi4yNDEtLjYxOCwxLjk4MSwxLjk4MSwwLDAsMSwuMTYtLjY2OSwxLjgyMSwxLjgyMSwwLDAsMSwuMzUtLjU3NiwzLjcsMy43LDAsMCwwLDEuNjQ5LjQ5My45NjMuOTYzLDAsMCwwLC41MS0uMTEyLjM0LjM0LDAsMCwwLC4xNzgtLjNxMC0uMzUzLS41NDYtLjUyOWwtLjY1My0uMjQ3cS0xLjQ4Mi0uNTQtMS40ODItMS43NjJhMS43NTIsMS43NTIsMCwwLDEsLjYyMy0xLjQxNiwyLjU4NSwyLjU4NSwwLDAsMSwxLjY3Ny0uNjQ4LDUuMDg4LDUuMDg4LDAsMCwxLDEuMTUuMTQ3LDQuNTUyLDQuNTUyLDAsMCwxLDEuMDMyLjQ3MiwxLjY2OCwxLjY2OCwwLDAsMS0uMTMuNzIyLDEuMjIsMS4yMiwwLDAsMS0uMzguNTU4LDQuMjYzLDQuMjYzLDAsMCwwLTEuNjYxLS40NDYuNTQzLjU0MywwLDAsMC0uMzYyLjEwNi4zMzkuMzM5LDAsMCwwLS4xMjQuMjdxMCwuMjgyLjQ1MS40NDZsLjczNi4yNTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2XFxcIi8+PHBhdGggZD1cXFwiTTE1LjI2NCwxNi4zMzNhMi44MjIsMi44MjIsMCwwLDAtLjE3Mi0xLDIuMjM5LDIuMjM5LDAsMCwwLS40OTItLjc4NywyLjI4LDIuMjgsMCwwLDAtLjc3Ny0uNTE3LDIuNzM3LDIuNzM3LDAsMCwwLTEuMDI2LS4zMTQsMi44LDIuOCwwLDAsMC0xLjE4LjM2MSwyLjI1NiwyLjI1NiwwLDAsMC0uODMuNjQ2LDIuNzY1LDIuNzY1LDAsMCwwLS40ODcuOTY5LDQuNCw0LjQsMCwwLDAtLjE2LDEuMjE2LDUuNjgxLDUuNjgxLDAsMCwwLC4xMywxLjI1NywyLjYyOCwyLjYyOCwwLDAsMCwuNDQ1LDEsMi4xMDcsMi4xMDcsMCwwLDAsLjgxOC42NTcsMi45MzUsMi45MzUsMCwwLDAsMS4yNTEuMjc3LDMuOTUyLDMuOTUyLDAsMCwwLDIuMzI0LS43MTIsMS44NjUsMS44NjUsMCwwLDAtLjQ4NC0xLjA4MSw2LjE4OCw2LjE4OCwwLDAsMS0uODU3LjI2MiwzLjIwOCwzLjIwOCwwLDAsMS0uNjU2LjA3OSwxLjAxNywxLjAxNywwLDAsMS0uODE1LS4yOSwxLjE4NywxLjE4NywwLDAsMS0uMjcxLS43N2gzLjA4M0E0LjQ0Nyw0LjQ0NywwLDAsMCwxNS4yNjQsMTYuMzMzWm0tMy4yNDguMDgxYTIuNDMzLDIuNDMzLDAsMCwxLC4yMTgtMSwuNjMyLjYzMiwwLDAsMSwuNTU5LS4yNjQuNjYuNjYsMCwwLDEsLjU4Mi4yODIsMS43NDksMS43NDksMCwwLDEsLjE5NC44NTZ2LjEzSDEyLjAxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjZcXFwiLz48cGF0aCBkPVxcXCJNMjkuMTgsMTcuMmExLjYwNSwxLjYwNSwwLDAsMC0uNTMsMS4yNjV2Mi4wNTFhMS44MSwxLjgxLDAsMCwxLS42ODMsMS41NTcsMi44LDIuOCwwLDAsMS0xLjY1NC41NDlsLS4zNzMsMFYyMS41OTRhMS4yNDEsMS4yNDEsMCwwLDAsLjU5NS0uMzM0LDEuMzY5LDEuMzY5LDAsMCwwLC40MTktMS4wNDdWMTguNTU2YTIuNTQ1LDIuNTQ1LDAsMCwxLC4yNTctMS4zMjMsMi41LDIuNSwwLDAsMSwxLjItLjgzOCwyLjUyOCwyLjUyOCwwLDAsMS0xLjMyNC0xLjE3OSwyLjk1NiwyLjk1NiwwLDAsMS0uMTM1LTEuMTY1VjEyLjUzM2ExLjQ1OCwxLjQ1OCwwLDAsMC0uMzY2LTEuMDU0LDEuMTUyLDEuMTUyLDAsMCwwLS42NDgtLjMxNHYtLjk2Yy40NDUsMCwuNjY5LDAsLjkyOCwwYTEuNjc2LDEuNjc2LDAsMCwxLDEuMDIzLjQ0MiwyLDIsMCwwLDEsLjY3MywxLjAwOSwyLjMzLDIuMzMsMCwwLDEsLjA4Ni43djEuNzU3YTEuODQ2LDEuODQ2LDAsMCwwLC41LDEuMzgzLDIuMTEzLDIuMTEzLDAsMCwwLC44NTQuNDc5di43OTRhMS45NDMsMS45NDMsMCwwLDAtLjgyLjQyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjY7c3Ryb2tlOiM0MDQwNDA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjVweFxcXCIvPjxwYXRoIGQ9XFxcIk01LjU5NCwxMC4yMDZINS4yNmExLjY3MywxLjY3MywwLDAsMC0xLjAyMy40NDIsMS43MSwxLjcxLDAsMCwwLS42NzMsMS4wMDksMy41MzEsMy41MzEsMCwwLDAtLjAzOC43djEuNzU3QTEuODY3LDEuODY3LDAsMCwxLDIuOTgxLDE1LjUsMi44NDcsMi44NDcsMCwwLDEsMiwxNS45Nzd2Ljc5M2EyLjU1MiwyLjU1MiwwLDAsMSwuOTQ3LjQyNiwxLjYzOCwxLjYzOCwwLDAsMSwuNTc3LDEuMjY1djIuMDUxQTEuNzgxLDEuNzgxLDAsMCwwLDQuMTYsMjIuMDdhMi44LDIuOCwwLDAsMCwxLjY1NC41NWwuNDIxLDBWMjEuNTk0YTEuNDcsMS40NywwLDAsMS0uNjQzLS4zMzQsMS4zNTUsMS4zNTUsMCwwLDEtLjM3MS0xLjA0N1YxOC41NTdhMi41MTYsMi41MTYsMCwwLDAtLjMwNS0xLjMyMywyLjUsMi41LDAsMCwwLTEuMi0uODM4LDIuNTI5LDIuNTI5LDAsMCwwLDEuMzI0LTEuMTc4LDIuODU3LDIuODU3LDAsMCwwLC4xODMtMS4xNjVWMTIuNTM0QTEuNDYyLDEuNDYyLDAsMCwxLDUuNTQsMTEuNDhhMS4zMTMsMS4zMTMsMCwwLDEsLjU3NS0uMjcxbC40MjgsMFYxMC4yMDZINS41OTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2O3N0cm9rZTojNDA0MDQwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjI1cHhcXFwiLz48cGF0aCBkPVxcXCJNOS41MzcsMTguNTI5aC0uMzJjLS4zNDgsMC0uNDc5LS4xODMtLjQ3OS0uNTUxVjExLjIxOWExLjI1NiwxLjI1NiwwLDAsMC0uMjY4LS44NTZjLS4xNS0uMTY0LS40MTEtLjE2Mi0uNzgzLS4xNjJINi45NjRsLS4wODUsMHY4LjEwNmExLjg3NSwxLjg3NSwwLDAsMCwuMzUyLDEuMjQsMS40NDEsMS40NDEsMCwwLDAsMS4xNDUuMzkzLDcuODU5LDcuODU5LDAsMCwwLDEuMjY5LS4xMTgsMi4yMywyLjIzLDAsMCwwLC4wMzYtLjUwOSwyLjI3OCwyLjI3OCwwLDAsMC0uMTQyLS43ODJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2XFxcIi8+XCIsXG5cdFwiTGlxdWlkXCI6IFwiPHBhdGggZD1cXFwiTTI5Ljk4OCwyMi4zNzJsLS43NDguMDQ4YTUuMjA5LDUuMjA5LDAsMCwxLTIuOTktLjY3MSw3LjgsNy44LDAsMCwwLTcuOCwwLDUuMjc1LDUuMjc1LDAsMCwxLTUuMy4wMUE3LjI2Miw3LjI2MiwwLDAsMCw5LjI2MywyMC43YTcuMjI5LDcuMjI5LDAsMCwwLTMuOTQsMS4wNiw0Ljc1MSw0Ljc1MSwwLDAsMS0yLjQ3LjdsLS44MzgsMGMwLC44ODktLjAwOSwxLjczOS0uMDE1LDIuNTE1bC44NjEsMGE3LjIzNyw3LjIzNywwLDAsMCwzLjc1LTEuMDUyLDQuNzYzLDQuNzYzLDAsMCwxLDIuNjU5LS43LDQuODM1LDQuODM1LDAsMCwxLDIuNjM0LjcxOCw3Ljc5NCw3Ljc5NCwwLDAsMCw3LjgsMCw1LjI4Nyw1LjI4NywwLDAsMSw1LjMxOSwwLDcuNzA5LDcuNzA5LDAsMCwwLDQuNC45ODlMMzAsMjQuODg4QzI5Ljk5NSwyNC4xLDI5Ljk5MSwyMy4yNDksMjkuOTg4LDIyLjM3MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQ5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjkuOTgzLDE1LjU4MWwtLjc0My4wNDdhNS4yMjYsNS4yMjYsMCwwLDEtMi45OS0uNjcxLDcuOCw3LjgsMCwwLDAtNy44LDAsNS4yNzgsNS4yNzgsMCwwLDEtNS4zLjAxQTcuMzEyLDcuMzEyLDAsMCwwLDkuMjYzLDEzLjkxYTcuMyw3LjMsMCwwLDAtMy45NDEsMS4wNiw0Ljc0Miw0Ljc0MiwwLDAsMS0yLjQ2OS43bC0uODI4LDBjMCwuODQ5LDAsMS42OTMsMCwyLjUxNWwuODQsMGE3LjIzNyw3LjIzNywwLDAsMCwzLjc1LTEuMDUyLDQuNyw0LjcsMCwwLDEsMi42NTktLjcsNC44LDQuOCwwLDAsMSwyLjYzNC43MTgsNy43OTQsNy43OTQsMCwwLDAsNy44LDAsNS4yODcsNS4yODcsMCwwLDEsNS4zMTksMCw3LjcwOSw3LjcwOSwwLDAsMCw0LjQuOTg5bC41NjgtLjAzN0MyOS45ODMsMTcuMjY5LDI5Ljk4MywxNi40MjQsMjkuOTgzLDE1LjU4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQ5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjkuMjQsOS4xMzdhNS4yNTQsNS4yNTQsMCwwLDEtMi45OS0uNjcxLDcuOCw3LjgsMCwwLDAtNy44LDAsNS4yNzUsNS4yNzUsMCwwLDEtNS4zLjAwOUE3LjE2LDcuMTYsMCwwLDAsOS4yNjMsNy40MmE3LjE1OSw3LjE1OSwwLDAsMC0zLjk0LDEuMDU5LDQuNzM4LDQuNzM4LDAsMCwxLTIuNDY5LjdsLS44MzQsMGMwLC44MiwwLDEuNjY0LDAsMi41MTdsLjgzNiwwYTcuMjM3LDcuMjM3LDAsMCwwLDMuNzUtMS4wNTIsNC43MzgsNC43MzgsMCwwLDEsMi42NTktLjcwNiw0LjgxNCw0LjgxNCwwLDAsMSwyLjYzNC43MTksNy43OTEsNy43OTEsMCwwLDAsNy44LDAsNS4yOTMsNS4yOTMsMCwwLDEsNS4zMTksMCw3LjczMiw3LjczMiwwLDAsMCw0LjQuOTg4bC41NjgtLjAzN2MwLS44NTksMC0xLjcuMDA3LTIuNTE2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDk5OVxcXCIvPlwiLFxuXHRcIkxpc3BcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxOTI1Ljc4NVxcXCIgeTE9XFxcIi0xMzgzLjA3NVxcXCIgeDI9XFxcIjIzMDIuMzUxXFxcIiB5Mj1cXFwiLTE4NjguNTU3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuMDQ4LCAwLCAwLCAtMC4wNDUsIC04Mi41MzksIC01NC42NSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4MzgxYzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTY2XFxcIiBzdG9wLWNvbG9yPVxcXCIjN2U1NWIzXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuOTk2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTUyZWNiXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuOTkyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIyMjE0LjE4N1xcXCIgeTE9XFxcIi0xNzUwLjIyNVxcXCIgeDI9XFxcIjE5MzAuOTc0XFxcIiB5Mj1cXFwiLTE0MDguMzQyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuMDU0LCAwLCAwLCAtMC4wNTQsIC05NS4xODgsIC02OC40ODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDExZjVkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNWIyYTg1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9lbWFjczwvdGl0bGU+PHBhdGggZD1cXFwiTTI5LjM2MywxNkExMy4zNjQsMTMuMzY0LDAsMSwxLDE2LDIuNSwxMy40MzIsMTMuNDMyLDAsMCwxLDI5LjM2MywxNlpcXFwiIHN0eWxlPVxcXCJzdHJva2Utd2lkdGg6MC43NXB4O2ZpbGw6dXJsKCNhKTtzdHJva2U6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS40MDYsMjUuNDgzYTE4LjE1NywxOC4xNTcsMCwwLDAsMi41ODctLjA0OCw0MS43MjgsNDEuNzI4LDAsMCwwLDQuNS0uNjM5LDMwLjY3MSwzMC42NzEsMCwwLDAsMy4xMzItLjgzOWMxLjE0Mi0uNDIxLDEuNzY0LS43NzgsMi4wNDMtMS4yODRhLjYyLjYyLDAsMCwwLS40NDEtLjY5MmMtMS4zNDctLjU2NS0yLjkwOC0uNDYzLTYtLjUyOC0zLjQyNy0uMTE4LTQuNTY3LS42OTEtNS4xNzQtMS4xNTMtLjU4Mi0uNDY5LS4yOS0xLjc2NSwyLjIwNi0yLjkwN2E1NC4yNjYsNTQuMjY2LDAsMCwxLDYuMTg0LTEuNzNjLTEuNjU5LS44Mi00Ljc1My0yLjI2Mi01LjM4OS0yLjU3My0uNTU4LS4yNzMtMS40NTEtLjY4NC0xLjY0NC0xLjE4Mi0uMjE5LS40NzguNTE4LS44ODkuOTMtMS4wMDdhMjAuMywyMC4zLDAsMCwxLDQuOS0uNjQ3LDQuMzA4LDQuMzA4LDAsMCwwLDEtLjA2OUExLjc2NywxLjc2NywwLDAsMCwyMS44NzksNy45YTIuNzc1LDIuNzc1LDAsMCwwLTMuMjg2LTEuODFDMTcuMjIsNi4zMzgsMTMuOTA4LDcuMywxMy45MDgsNy4zYzQuMDkzLS4wMzUsNC43NzkuMDMzLDUuMDg1LjQ2MS4xODEuMjUzLS4wODIuNi0xLjE3NC43NzctMS4xODkuMTk0LTMuNjU5LjQyOC0zLjY1OS40MjgtMi4zNy4xNDEtNC4wNC4xNS00LjU0LDEuMjEtLjMyNy42OTMuMzQ5LDEuMy42NDUsMS42ODhhMTIuNzI4LDEyLjcyOCwwLDAsMCw0LjIyNSwyLjdjLjQzOC4yMDgsMS43MjMuNiwxLjcyMy42YTExLjUyLDExLjUyLDAsMCwwLTguMSwyLjI4N2MtMS44MDcsMS42NzItMS4wMDgsMy42NjUsMi42OTUsNC44OTFhMTIuNzU1LDEyLjc1NSwwLDAsMCw2LjUzNC43NzJjMS45MjItLjEsMi4yMjQtLjA0MiwyLjI0NC4xMTYuMDI3LjIyMi0yLjEzNC43NzMtMi43MjQuOTQ0LTEuNS40MzMtNS40MzYsMS4zMDctNS40NTYsMS4zMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiTGl2ZVNjcmlwdFwiOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiNS41MDQgMi4wMDcgOC45ODYgMiA4Ljk4NiAyMS43NDYgMTAuNzU5IDE5Ljk4NyAxMC43NTkgMy43NTUgMTIuNDk3IDMuNzU1IDEyLjQ5NyAxOC4yNCAxNC4yNTMgMTYuNDg3IDE0LjI1MyAzLjc1NSAxNS45OTcgMy43NTUgMTUuOTk3IDE0LjcyOSAxNy43MzUgMTIuOTYyIDE3LjczNSAzLjc1NSAxOS40NjEgMy43NTUgMTkuNDYxIDExLjIyNSAyMS4yNDUgOS40NjEgMjEuMjQ1IDMuNzU1IDIyLjk3MiAzLjc1NSAyMi45NzIgNy43MjMgMjQuNzM4IDUuOTc1IDI0LjczOSAzLjc1NSAyNi40ODMgMy43NTUgMjYuNDgzIDUuNDgyIDI4LjIwOSA1LjQ4MiAyOC4yMDkgNy4yNjcgMjUuOTExIDcuMjY4IDI0LjE4NCA4Ljk5MyAyOC4yMDkgOC45OTMgMjguMjA5IDEwLjcxOSAyMi40MzggMTAuNzE5IDIwLjY5OCAxMi41MDQgMjguMjA5IDEyLjUwNCAyOC4yMDkgMTQuMjMgMTguOTYxIDE0LjIzIDE3LjIwNSAxNi4wMTQgMjguMjA5IDE2LjAxNCAyOC4yMDkgMTcuNzQxIDE1LjQ1NSAxNy43NDEgMTMuNzE1IDE5LjQ5NiAyOC4yMDkgMTkuNDk2IDI4LjIwOSAyMS4yNTIgMTEuOTggMjEuMjUyIDEwLjI0MiAyMi45NzggMjkuOTgyIDIyLjk3OCAyOS45ODkgMjYuNDg5IDguOTg2IDI2LjQ4OSA4Ljk4NiAzMCA1LjUwNCAzMCA1LjUwNCAyNi40ODkgMi4wMTEgMjYuNDg5IDIuMDExIDIyLjk3OCA1LjUwNCAyMi45NzggNS41MDMgMiA1LjUwNCAyLjAwN1xcXCIgc3R5bGU9XFxcImZpbGw6IzMxN2VhY1xcXCIvPlwiLFxuXHRcIkxvZyBmaWxlXCI6IFwiPHBhdGggZD1cXFwiTTI5LjQsMjcuNkgyLjVWNC41SDI5LjRabS0yNS45LTFIMjguNFY1LjVIMy41WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjIuNVxcXCIgeT1cXFwiNS41XFxcIiB3aWR0aD1cXFwiMjYuOVxcXCIgaGVpZ2h0PVxcXCIxLjlcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjkuNVxcXCIgd2lkdGg9XFxcIjguMTY3XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjEyLjA4M1xcXCIgd2lkdGg9XFxcIjEyLjVcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjMzM1xcXCIgeT1cXFwiMTQuNzVcXFwiIHdpZHRoPVxcXCIxMC42MTdcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjMzM1xcXCIgeT1cXFwiMTcuNTgzXFxcIiB3aWR0aD1cXFwiMTQuMTY3XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjIwLjVcXFwiIHdpZHRoPVxcXCI5LjgzNFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuNVxcXCIgeT1cXFwiMjMuMDgzXFxcIiB3aWR0aD1cXFwiMTIuMTY3XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjkuNVxcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjEyLjA4M1xcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjEyLjA4M1xcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjE0LjY2N1xcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjE3LjI1XFxcIiB3aWR0aD1cXFwiNC4zMzNcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjUuNVxcXCIgeT1cXFwiMjAuNVxcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjIzLjA4M1xcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz5cIixcblx0XCJMT0xDT0RFXCI6IFwiPHBhdGggZD1cXFwiTTIxLjMsMy43M2EzLjk0LDMuOTQsMCwwLDEsMS4wNDEtLjYyLDguNDM1LDguNDM1LDAsMCwxLC41NTYsMy4zODUsMjQuODY1LDI0Ljg2NSwwLDAsMS0uNjQzLDUuMDE5Yy0uMzY4LS4xOC0uNzM2LS4zNjQtMS4xLS41NTRhMTEuNzU0LDExLjc1NCwwLDAsMCwuMjczLTMuNzQ3LDMuMDgsMy4wOCwwLDAsMC0uMjU1LS44NjUsNS4xNDIsNS4xNDIsMCwwLDAtMi4wMTYsMi4wN2MtLjMxOS0uMjQtLjY1Mi0uNDU5LS45ODUtLjY3NkExNS43MTYsMTUuNzE2LDAsMCwxLDIxLjMsMy43M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDUxLDguNmE0LjU3NCw0LjU3NCwwLDAsMSwxLjUwOS0xLjU2Myw2LjY4NSw2LjY4NSwwLDAsMSwuMDksMi42NzFDMjAuNTE3LDkuMzQzLDE5Ljk3NSw4Ljk4NywxOS40NTEsOC42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VkZWRlZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi40NjEsMTAuMDc2Yy0uMDM4LTEuMTM0LS4wMzEtMi4yNjktLjAyNi0zLjQtLjkuNDkzLTEuNzU4LDEuMDcxLTIuNjQ4LDEuNTg5LS40NTMuMjctLjkwOC41MzYtMS4zNi44MDguMjI0LS4xNjMuNDU3LS4zMTIuNjktLjQ2Mi0uODYxLTEuMjI0LTEuOTcxLTIuNS0zLjUzLTIuNzQ4YTEwLjk2NCwxMC45NjQsMCwwLDAtLjM2NSw1LjE0N2MuMzE4LS4xOTUuNjMzLS40Ljk2Mi0uNTcyLS40NzQuMzE5LS45NjQuNjE1LTEuNDQ2LjkyLS45NTcuNi0xLjkyMiwxLjE5Mi0yLjg5MiwxLjc3N2ExLjIzMiwxLjIzMiwwLDAsMC0uMzkxLjMyYy0uMSwxLjM5NS0uMzQsNC4zOTItLjM0LDQuMzkyLS4yNTQsMy42NjgtLjUyMiw3LjMzNi0uODI2LDExLDQuMDYyLjM0Myw4LjExOC43NDIsMTIuMTc5LDEuMDc2QzE2LjQ1OCwyMy4zLDE2LjQ3MiwxNi42OSwxNi40NjEsMTAuMDc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VkZWRlZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4xLDIuOTc3QTUuODg0LDUuODg0LDAsMCwxLDIyLjcwNiwyYTEwLjA2NCwxMC4wNjQsMCwwLDEsLjc3Miw0LjYwNiwyNC41OTEsMjQuNTkxLDAsMCwxLS41MDgsNC40NTljMS4yLjg0NiwyLjQzMywxLjY0NSwzLjYxOCwyLjUwOXEuNDQsNi4zOC45MDcsMTIuNzU4Yy4wNjYuODM5LjA5NCwxLjY4LjIxNiwyLjUxMy0zLjAyOS4yNzktNi4wNTcuNTkxLTkuMDg1Ljg4NmExOS4xMzcsMTkuMTM3LDAsMCwwLTIuMTU4LjI3di0uMDgzYy0uMDEtNi42MTQsMC0xMy4yMjctLjAwNy0xOS44NDEtLjAzOC0xLjEzNC0uMDMxLTIuMjY5LS4wMjYtMy40di0uMWMuNDA2LjI5Mi44MjYuNTYyLDEuMjQzLjgzOUExNi4yNzQsMTYuMjc0LDAsMCwxLDIxLjEsMi45NzdabS4yLjc1MmExNS43MTYsMTUuNzE2LDAsMCwwLTMuMTI4LDQuMDExYy4zMzQuMjE3LjY2Ni40MzcuOTg1LjY3NmE1LjE0Miw1LjE0MiwwLDAsMSwyLjAxNi0yLjA3LDMuMDgsMy4wOCwwLDAsMSwuMjU1Ljg2NSwxMS43NTQsMTEuNzU0LDAsMCwxLS4yNzMsMy43NDdjLjM2NC4xOS43MzEuMzc0LDEuMS41NTRhMjQuODY1LDI0Ljg2NSwwLDAsMCwuNjQzLTUuMDE5LDguNDM1LDguNDM1LDAsMCwwLS41NTYtMy4zODVBMy45NCwzLjk0LDAsMCwwLDIxLjMsMy43M1pNMTkuNDUxLDguNmMuNTI0LjM4MywxLjA2Ni43MzksMS42LDEuMTA4YTYuNjg1LDYuNjg1LDAsMCwwLS4wOS0yLjY3MUE0LjU3NCw0LjU3NCwwLDAsMCwxOS40NTEsOC42WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk05LjIxOSw1LjA2MmEzLjU4MSwzLjU4MSwwLDAsMSwyLjIwNS43NDhBMTIuOSwxMi45LDAsMCwxLDEzLjc4OCw4LjI2Yy0uNDUzLjI3LS45MDguNTM2LTEuMzYuODA4LjIyNC0uMTYzLjQ1Ny0uMzEyLjY5LS40NjItLjg2MS0xLjIyNC0xLjk3MS0yLjUtMy41My0yLjc0OGExMC45NjQsMTAuOTY0LDAsMCwwLS4zNjUsNS4xNDdjLjMxOC0uMTk1LjYzMy0uNC45NjItLjU3Mi0uNDc0LjMxOS0uOTY0LjYxNS0xLjQ0Ni45MkExNC4xLDE0LjEsMCwwLDEsOS4yMTksNS4wNjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUwNyw4LjQ3NmEyLjQ1NSwyLjQ1NSwwLDAsMSwxLjUxNy44OGwtLjM2LjJBMi42OSwyLjY5LDAsMCwwLDEwLjczOSw5YTMuMzE4LDMuMzE4LDAsMCwwLS4xNjUsMS4yODFsLS4zNDQuMTFBNy4wMjEsNy4wMjEsMCwwLDEsMTAuNTA3LDguNDc2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xMzksMTAuNjkzYS40ODcuNDg3LDAsMCwxLC41NDIuMDEsMS41NTIsMS41NTIsMCwwLDEsLjA2Mi42Yy0uMDM5Ljc4NC4wMjQsMS41NzMtLjA3NiwyLjM1NGExLjAxMywxLjAxMywwLDAsMS0xLjAxMi44ODZjLS4yMzMtLjA1LS4yNzgtLjM0MS0uMjc4LS41NDEsMC0uNjc1LjEtMS4zNDcuMDY2LTIuMDI0QTEuMywxLjMsMCwwLDEsMTIuMTM5LDEwLjY5M1ptLjE1LDEuMDg0YS44OTEuODkxLDAsMCwwLC4yNTEtLjg2NkMxMi4yMTgsMTEuMDYxLDExLjksMTEuNTA3LDEyLjI4OSwxMS43NzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTE0LjUsMTMuNzI4YTE3LjY3MSwxNy42NzEsMCwwLDEsMS45MjgtLjgyMmMtLjAyNC4wNjQtLjA2OS4xOTEtLjA5Mi4yNTUtLjY0OS4zNTgtMS4zNi42LTIuMDIxLjkzOGExMi4xMTgsMTIuMTE4LDAsMCwwLTMuMjM4LDIuMjQ4QTcuMiw3LjIsMCwwLDEsMTAsMTcuMzgxYTQuMTY2LDQuMTY2LDAsMCwxLC45OC0xLjI0NkExMi43MjcsMTIuNzI3LDAsMCwxLDE0LjUsMTMuNzI4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk03LjYyOCwxMy4yMzFhLjk4OS45ODksMCwwLDEsLjU5NC0uMTUyLDE4LjExNCwxOC4xMTQsMCwwLDEtLjEsMi42NTQuNzEzLjcxMywwLDAsMS0uODkyLjY1OCwyMS4xLDIxLjEsMCwwLDEsLjA4Mi0yLjIyNkExLjM4MywxLjM4MywwLDAsMSw3LjYyOCwxMy4yMzFabS4xNzkuODMxYy4yNjgtLjExMi4zMTktLjQxMy40MTItLjY1NEM3LjgyLDEzLjMxMiw3Ljc3NSwxMy43ODMsNy44MDcsMTQuMDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC44MjMsMTcuMDk0YTEzLjkzNCwxMy45MzQsMCwwLDEsNC42MTItMS45NjhjLS4wMS4wNjgtLjAyOS4yMDYtLjAzOS4yNzRhMTQuMjczLDE0LjI3MywwLDAsMC00LjQ3NSwxLjkxNCwyLjYyNiwyLjYyNiwwLDAsMS0uNjgxLjM0M0MxMC4zLDE3LjM1NiwxMC42LDE3LjI0OSwxMC44MjMsMTcuMDk0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk01LjI2NCwxNy41OUE1LjE0NCw1LjE0NCwwLDAsMSw4LDE3LjFhMS41LDEuNSwwLDAsMSwxLjE0Mi42NjVBNi44NTQsNi44NTQsMCwwLDAsNy42LDE3LjI3OGE2Ljk2Nyw2Ljk2NywwLDAsMC0yLjQ4NC41NjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTEwLjU3OCwxNy43MjVhOS41OSw5LjU5LDAsMCwxLDMuNjEtLjU2NmMuMjQuMDIxLjMyMS4yLjMxMy40MjRhMy4yMzgsMy4yMzgsMCwwLDAtMS45NTYtLjA5LDIxLjY4OCwyMS42ODgsMCwwLDAtMi41NTcuNjU4QzkuOTk1LDE3LjgyOSwxMC4zNDUsMTcuODA5LDEwLjU3OCwxNy43MjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTkuMjY4LDE3LjY3NmMuMTQ5LS4xNzYuNTMzLS4zMzIuNjY0LS4wNjJhMS4zLDEuMywwLDAsMS0uNTE2Ljk5M0M5LjI2OCwxOC4zMzcsOC45NzMsMTcuOTUyLDkuMjY4LDE3LjY3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNS43NDQsMTguNjI5YTUuOSw1LjksMCwwLDEsMy4xODItLjYxOGMtLjE4Mi4yMzUtLjQ5My4xNzgtLjc1MS4yMDhhNS42NjMsNS42NjMsMCwwLDAtMS43Mi4zM2MtLjM0NC4xMjgtLjY2NS4zMS0xLjAyLjQwOUEuNi42LDAsMCwxLDUuNzQ0LDE4LjYyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNi45LDE5LjExNGE5LjY3Niw5LjY3NiwwLDAsMSwyLjItLjg1NGMtLjEuMy0uNDQxLjMzOC0uNy40NDRhNy44MzksNy44MzksMCwwLDAtMi41NjQsMS40MTVDNS45MzgsMTkuNTg0LDYuNDg4LDE5LjM2OSw2LjksMTkuMTE0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS42MzUsMTkuN2EzLjExLDMuMTEsMCwwLDAsMS45MS0xLjM4M2MuMzQ3LS4xLjI3My4yNzUuMjYuNDk0YTIuMDU2LDIuMDU2LDAsMCwxLS45NSwxLjAzNiwxMi4zNjUsMTIuMzY1LDAsMCwxLTEuODI3LDYuNDE5QTIuMzQyLDIuMzQyLDAsMCwxLDguODc5LDI3LjVhMi4yNTEsMi4yNTEsMCwwLDEtMS41MzUtMS40OSwxMC44OTQsMTAuODk0LDAsMCwxLS42OS00LjY2NWMtLjE1Ny0uMTEyLS4zNjktLjE3OS0uNDYtLjM2Mi0uMTMtLjIuMDExLS40MjUuMDQ3LS42MzEuMTkuMTUxLjM0NS4zOTIuNjA2LjQyYTMuNjE3LDMuNjE3LDAsMCwwLDEuODYzLS40LDEuNTg4LDEuNTg4LDAsMCwwLC43MDktLjY2MiwzLjg4MSwzLjg4MSwwLDAsMCwuNDMxLjI2NkE0LjI4LDQuMjgsMCwwLDAsMTEuNjM1LDE5LjdabS0yLjIuODM1YTQuMTMyLDQuMTMyLDAsMCwxLTIuNDYyLjgwOSwxMS4wNDksMTEuMDQ5LDAsMCwwLC4zNTgsMy41MjYsMy4yMjYsMy4yMjYsMCwwLDEsLjktMS4yODIsMi4wNTUsMi4wNTUsMCwwLDEsMi4zLS4yLDIuMywyLjMsMCwwLDEsLjg4NCwxLjE3MiwxNC42NTksMTQuNjU5LDAsMCwwLDEuMDA1LTQuNDg5QTUuMTY3LDUuMTY3LDAsMCwxLDkuNDM1LDIwLjUzMlptLS4zMjksMy4yNmEyLjI3MywyLjI3MywwLDAsMC0xLjUsMS40MzRjLS4xMjMuMjY5LjEuNTE3LjIyNS43MzguMzMxLjQ2Mi43OTUsMSwxLjQzMS44OTNhMi44NjgsMi44NjgsMCwwLDAsMS43NjktMS42QTEuNiwxLjYsMCwwLDAsOS4xMDYsMjMuNzkyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPlwiLFxuXHRcIkx1YVwiOiBcIjxwYXRoIGQ9XFxcIk0xNi41LDMwbC0uMDExLS4zMjFjLjQtLjAxNC44LS4wNDUsMS4xOS0uMDk0bC4wMzkuMzE5QzE3LjMxMiwyOS45NTIsMTYuOSwyOS45ODQsMTYuNSwzMFptLTEuMjIyLS4wMTFjLS40LS4wMjEtLjgxNC0uMDYxLTEuMjE2LS4xMThsLjA0NS0uMzE4Yy4zOTMuMDU1Ljc5My4wOTQsMS4xODguMTE1Wk0xOC45MiwyOS43bC0uMDY3LS4zMTRjLjM4Ny0uMDgzLjc3Ni0uMTg0LDEuMTU1LS4zbC4wOTQuMzA3QzE5LjcxNCwyOS41MTEsMTkuMzE2LDI5LjYxNSwxOC45MiwyOS43Wm0tNi4wNjMtLjA1M2MtLjQtLjA5MS0uNzkxLS4yLTEuMTc3LS4zMjZsLjEtLjMwNmMuMzc3LjEyMi43NjQuMjMsMS4xNS4zMTlabTguNC0uNjY1LS4xMjEtLjNjLjM2NC0uMTQ4LjcyOC0uMzE0LDEuMDgtLjQ5M2wuMDA2LDAsLjE0NS4yODYsMCwwQzIyLDI4LjY2MSwyMS42MjYsMjguODMxLDIxLjI1MywyOC45ODJabS0xMC43MTgtLjA4OGMtLjM3NC0uMTU4LS43NDUtLjMzNS0xLjEtLjUyNGwuMTUtLjI4NGMuMzUuMTg2LjcxMy4zNTgsMS4wNzguNTEyWm0xMi44OTMtMS4wMjEtLjE3LS4yNzNjLjMzNy0uMjEuNjY4LS40MzcuOTg0LS42NzVsLjE5My4yNTdDMjQuMTExLDI3LjQyNSwyMy43NzIsMjcuNjU4LDIzLjQyOCwyNy44NzNaTTguMzc5LDI3Ljc1MWMtLjM0MS0uMjItLjY3Ni0uNDU5LTEtLjcwOGwuMi0uMjUzYy4zMTIuMjQzLjY0LjQ3Ni45NzIuNjkxWm0xNy0xLjM0Ni0uMjE1LS4yMzljLjI5NC0uMjY1LjU4LS41NDYuODUxLS44MzZsLjIzNS4yMTlDMjUuOTcyLDI1Ljg0NiwyNS42NzksMjYuMTM0LDI1LjM3OCwyNi40Wk02LjQ1NCwyNi4yNTJjLS4zLS4yNzYtLjU4NS0uNTY5LS44NTYtLjg3bC4yMzktLjIxNWMuMjY1LjI5NC41NDcuNTguODM2Ljg1Wk0yNy4wNDEsMjQuNjJsLS4yNTMtLjJjLjI0NC0uMzEyLjQ3Ni0uNjM5LjY5Mi0uOTcybC4yNy4xNzVDMjcuNTI5LDIzLjk2NiwyNy4yOSwyNC4zLDI3LjA0MSwyNC42MlpNNC44MiwyNC40MzljLS4yNDQtLjMyNC0uNDc2LS42NjItLjY5Mi0xLjAwN2wuMjcyLS4xN2MuMjEuMzM3LjQzOC42NjguNjc2Ljk4NFptMjMuNTQ3LTEuODY3LS4yODQtLjE1MWMuMTg2LS4zNS4zNTgtLjcxMy41MTMtMS4wNzhsLjMuMTI1QzI4LjczNSwyMS44NDMsMjguNTU4LDIyLjIxNCwyOC4zNjgsMjIuNTcyWm0tMjQuODQxLS4yLS4wMDYtLjAxMmMtLjE4My0uMzU5LS4zNTItLjcyOC0uNS0xLjFsLjMtLjEyMWMuMTQ3LjM2Mi4zMTIuNzI0LjQ5MSwxLjA3NGwuMDA2LjAxMlpNMjkuMzIsMjAuMzI1bC0uMzA2LS4xYy4xMjItLjM3Ny4yMy0uNzY0LjMxOS0xLjE1bC4zMTMuMDcyQzI5LjU1NSwxOS41NDMsMjkuNDQ2LDE5LjkzOSwyOS4zMiwyMC4zMjVaTTIuNjA4LDIwLjEwN2MtLjEyLS4zODgtLjIyMy0uNzg2LS4zMDgtMS4xODJsLjMxNC0uMDY3Yy4wODMuMzg3LjE4NC43NzYuMywxLjE1NVpNMjkuODcsMTcuOTQ2bC0uMzE4LS4wNDVjLjA1Ni0uMzkzLjA5NC0uNzkzLjExNS0xLjE4OGwuMzIxLjAxN0MyOS45NjcsMTcuMTM1LDI5LjkyNywxNy41NDQsMjkuODcsMTcuOTQ2Wk0yLjEsMTcuNzJjLS4wNS0uNC0uMDgyLS44MTItLjEtMS4yMThsLjMyMS0uMDExYy4wMTQuNC4wNDYuOC4wOTQsMS4xOVptMjcuNTgyLTIuMmMtLjAxNC0uNC0uMDQ1LS44LS4wOTMtMS4xOWwuMzE5LS4wMzljLjA0OS40LjA4Mi44MTMuMSwxLjIxOFpNMi4zMzEsMTUuMywyLjAxLDE1LjI4Yy4wMjEtLjQwNS4wNjEtLjgxNC4xMTctMS4yMTZsLjMxOC4wNDVDMi4zOSwxNC41LDIuMzUyLDE0LjksMi4zMzEsMTUuM1ptMjcuMDU3LTIuMTQ0Yy0uMDgzLS4zODctLjE4NC0uNzc2LS4zLTEuMTU1TDI5LjQsMTEuOWMuMTE5LjM4OC4yMjMuNzg2LjMwNywxLjE4M1pNMi42NjMsMTIuOTM0bC0uMzEzLS4wNzJjLjA5MS0uNC4yLS43OTEuMzI2LTEuMTc3bC4zMDYuMUMyLjg1OSwxMi4xNjEsMi43NTIsMTIuNTQ4LDIuNjYzLDEyLjkzNFptMjYuMDI2LTIuMDYyYy0uMTQ5LS4zNjYtLjMxNS0uNzMyLS41LTEuMDg2bC4yODYtLjE0NmMuMTg1LjM2My4zNTUuNzM2LjUwNywxLjExMVpNMy40LDEwLjY2NWwtLjMtLjEyNWMuMTU4LS4zNzQuMzM0LS43NDUuNTI0LTEuMWwuMjg0LjE1QzMuNzI0LDkuOTM3LDMuNTUyLDEwLjMsMy40LDEwLjY2NVpNNC41MTMsOC41NTdsLS4yNy0uMTc0Yy4yMi0uMzQxLjQ1OC0uNjc2LjcwNy0xbC4yNTQuMkM0Ljk2MSw3LjksNC43MjgsOC4yMjQsNC41MTMsOC41NTdaTTUuOTc3LDYuNjc2bC0uMjM1LS4yMTljLjI3Ni0uMy41NjktLjU4NS44Ny0uODU3bC4yMTUuMjM5QzYuNTMzLDYuMSw2LjI0Nyw2LjM4Niw1Ljk3Nyw2LjY3NlptMS43Ny0xLjYtLjE5My0uMjU3Yy4zMjMtLjI0NC42NjItLjQ3NywxLjAwNy0uNjkybC4xNy4yNzJDOC4zOTQsNC42MTQsOC4wNjMsNC44NDEsNy43NDcsNS4wNzlabTE1LjcwNS0uNTU4LS4wMTgtLjAxMi4xNzUtLjI3LjAxOC4wMTFabS0xLjA0Ny0uNjE2Yy0uMzUtLjE4Ni0uNzEzLS4zNTgtMS4wNzgtLjUxMmwuMTI1LS4zYy4zNzQuMTU4Ljc0NS4zMzQsMS4xLjUyNFpNOS43NjksMy44MTVsLS4xNDYtLjI4Ni4wMTgtLjAwOWMuMzU2LS4xODEuNzI0LS4zNDksMS4wOTMtLjVsLjEyMS4zYy0uMzYxLjE0Ny0uNzIuMzExLTEuMDY4LjQ4OFptMTAuNDQtLjgzOGMtLjM3Ny0uMTIyLS43NjQtLjIyOS0xLjE1MS0uMzE3bC4wNzItLjMxM2MuNC4wOTEuNzkyLjIsMS4xNzguMzI1Wm0tOC4yMjktLjA2LS4wOTQtLjMwN2MuMzg4LS4xMTkuNzg2LS4yMjMsMS4xODItLjMwOGwuMDY3LjMxNEMxMi43NDcsMi43LDEyLjM1OSwyLjgsMTEuOTgsMi45MTdabTUuOS0uNDczYy0uMzkzLS4wNTUtLjc5My0uMDkyLTEuMTg4LS4xMTNsLjAxNi0uMzIxYy40MDUuMDIxLjgxNC4wNTksMS4yMTYuMTE1Wm0tMy41NzItLjAyNi0uMDQtLjMxOWMuNC0uMDUuODEyLS4wODMsMS4yMTgtLjFsLjAxMi4zMjFDMTUuMTA2LDIuMzM3LDE0LjcwNSwyLjM2OSwxNC4zMTIsMi40MThaXFxcIiBzdHlsZT1cXFwiZmlsbDpncmF5XFxcIi8+PGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNS45OThcXFwiIHI9XFxcIjEwLjcwOFxcXCIgc3R5bGU9XFxcImZpbGw6bmF2eVxcXCIvPjxjaXJjbGUgY3g9XFxcIjIwLjQzNVxcXCIgY3k9XFxcIjExLjU2MlxcXCIgcj1cXFwiMy4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIyNi43MDhcXFwiIGN5PVxcXCI1LjI5XFxcIiByPVxcXCIzLjEzN1xcXCIgc3R5bGU9XFxcImZpbGw6bmF2eVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4xLDIxLjM1MnYtLjc5SDkuNjI5VjE0LjMyNmgtLjl2Ny4wMjZIMTMuMVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45MTYsMjEuMzUyVjE2LjNoLS44djIuNzg1YzAsMS4wMzEtLjU0LDEuNzA2LTEuMzc4LDEuNzA2QS45NS45NSwwLDAsMSwxNC43LDE5LjhWMTYuM2gtLjh2My44MTdjMCwuODM4LjYyNiwxLjM3OCwxLjYwOSwxLjM3OGExLjg2MywxLjg2MywwLDAsMCwxLjY4Ny0uOTI1di43ODFoLjcyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy43OTEsMjEuMzMzdi0uNjA3YS42NjQuNjY0LDAsMCwxLS4xNzMuMDE5Yy0uMjc5LDAtLjQzNC0uMTQ1LS40MzQtLjRWMTcuNTM2YzAtLjktLjY1NS0xLjM3OC0xLjktMS4zNzgtMS4yMjQsMC0xLjk3Ni40NzItMi4wMjQsMS42MzhoLjgxYy4wNjctLjYxNy40MzQtLjksMS4xODUtLjkuNzIzLDAsMS4xMjguMjcsMS4xMjguNzUydi4yMTJjMCwuMzM3LS4yLjQ4Mi0uODM4LjU1OWE1Ljc2Myw1Ljc2MywwLDAsMC0xLjYxOS4zMDgsMS4zMjcsMS4zMjcsMCwwLDAtLjg4NywxLjMxMWMwLC45MTYuNjM2LDEuNDU1LDEuNjU4LDEuNDU1YTIuMzYzLDIuMzYzLDAsMCwwLDEuNzE1LS43NDIuODU1Ljg1NSwwLDAsMCwuODI5LjY2NSwxLjk2NywxLjk2NywwLDAsMCwuNTQ5LS4wODdtLTEuNDA3LTEuNzI1YTEuMzY2LDEuMzY2LDAsMCwxLTEuNTEzLDEuMTg1Yy0uNjI2LDAtLjk5My0uMjIyLS45OTMtLjc3MSwwLS41My4zNTctLjc2MSwxLjIxNC0uODg3YTQsNCwwLDAsMCwxLjI5MS0uMjc5di43NTJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJNYXJrZG93blwiOiBcIjxyZWN0IHg9XFxcIjIuNVxcXCIgeT1cXFwiNy45NTVcXFwiIHdpZHRoPVxcXCIyN1xcXCIgaGVpZ2h0PVxcXCIxNi4wOTFcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiM3NTU4MzhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjUuOTA5IDIwLjYzNiA1LjkwOSAxMS4zNjQgOC42MzYgMTEuMzY0IDExLjM2NCAxNC43NzMgMTQuMDkxIDExLjM2NCAxNi44MTggMTEuMzY0IDE2LjgxOCAyMC42MzYgMTQuMDkxIDIwLjYzNiAxNC4wOTEgMTUuMzE4IDExLjM2NCAxOC43MjcgOC42MzYgMTUuMzE4IDguNjM2IDIwLjYzNiA1LjkwOSAyMC42MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiM3NTU4MzhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIyLjk1NSAyMC42MzYgMTguODY0IDE2LjEzNiAyMS41OTEgMTYuMTM2IDIxLjU5MSAxMS4zNjQgMjQuMzE4IDExLjM2NCAyNC4zMTggMTYuMTM2IDI3LjA0NSAxNi4xMzYgMjIuOTU1IDIwLjYzNlxcXCIgc3R5bGU9XFxcImZpbGw6Izc1NTgzOFxcXCIvPlwiLFxuXHRcIk1BVExBQlwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2LjgwM1xcXCIgeTE9XFxcIjE2LjYzMVxcXCIgeDI9XFxcIjE1LjAxM1xcXCIgeTI9XFxcIjIyLjQxMVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgMzIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTEyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIzXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTIzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM2XFxcIiBzdG9wLWNvbG9yPVxcXCIjNTM0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjQ1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY2XFxcIiBzdG9wLWNvbG9yPVxcXCIjNTY4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjg0XFxcIiBzdG9wLWNvbG9yPVxcXCIjMjlkXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIyOS43MVxcXCIgeTE9XFxcIjE4Ljk4M1xcXCIgeDI9XFxcIjExLjcxXFxcIiB5Mj1cXFwiMTQuNTYzXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjA4MVxcXCIgc3RvcC1jb2xvcj1cXFwiI2MzM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xODlcXFwiIHN0b3AtY29sb3I9XFxcIiNkZTUyMzlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzEzXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjA2ZTNlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQyMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZhODA0MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmU4NjQzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmE3ZjQyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY5NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2VmNmMzZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44MzNcXFwiIHN0b3AtY29sb3I9XFxcIiNkYzRjMzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTE2XFxcIiBzdG9wLWNvbG9yPVxcXCIjY2YzNjMzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9tYXRsYWI8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yLDE3LjU1bDcuOTctMy4yMmEyMC43LDIwLjcsMCwwLDEsMi43Mi0yLjk1Yy42Ni0uMzUsMS45LS4xNiw0LjE3LTIuOTgsMi4yLTIuNzUsMi45LTUuMSwzLjkzLTUuMSwxLjYzLDAsMi44MywzLjUyLDQuNjUsOC44NUExMTUuNjI5LDExNS42MjksMCwwLDAsMzAsMjQuMTJjLTEuOS0xLjc3LTMuNTItMy42OC01LjM3LTMuNjMtMS43Mi4wNC0zLjYzLDIuMDgtNS43Miw0LjctMS42NiwyLjEtMy44NiwzLjU0LTQuNzIsMy41MSwwLDAtMi4yMi02LjI4LTQuMDgtNy4zYTIuNjQxLDIuNjQxLDAsMCwwLTIuMzkuMkwyLDE3LjU0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ5ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44LDQuMDJjLS42Ny45LTEuNDgsMi41NS0yLjk0LDQuMzgtMi4yNywyLjgyLTMuNSwyLjYzLTQuMTcsMi45OGExOS42NzQsMTkuNjc0LDAsMCwwLTIuNzIsMi45NWwzLjMsMi40MWMyLjgtMy44Miw0LjMtNy45Niw1LjQ3LTEwLjY0QTEzLjU3OSwxMy41NzksMCwwLDEsMTkuOCw0LjAyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC44LDMuM2MtMi4xOCwwLTMuNjcsMTEuNDgtMTEuNzIsMTcuODksMi4yNi0uMzcsNC4yMiw1LjI0LDUuMTIsNy41MSw0LS42OCw3LjItOC4zMywxMC40My04LjIxLDEuODUuMDcsMy40NywxLjg2LDUuMzcsMy42M0MyNS42NiwxNSwyMy42MywzLjMsMjAuOCwzLjNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+XCIsXG5cdFwiTUFYU2NyaXB0XCI6IFwiPHBhdGggZD1cXFwiTTE0LjQsNy41NjgsMjAuMjEyLDJINy4yNzNMNC44NDgsNy41MzZsOS41NTcuMDMyWk00Ljg0OCw3LjUzNmw2Ljg0NCwyLjZMMTQuNCw3LjU2OG0tLjAxMywzLjYyMi0yLjctMS4wNTNMNS4yNjMsMTYuMWw2LjI4Niw1LjgyMywyLjgwOC0xLjFMMTQuNCw3LjU2OG0wLDAsMTIuOCw4LjM3NkwyMC4yMTIsMk0yNy4yLDE1Ljk0NCwxNC4zOTEsMTEuMTltLS4wMzUsOS42MzYtLjAzMiwzLjY4NU0yMC4yMjgsMzBsLTguNjc5LTguMDczTDQuOCwyNC40NjQsNy4yNTcsMzBabTAsMEwyNy4yLDE1Ljk0NCwxNC4zMjUsMjQuNTEyTTI3LjIsMTUuOTQ0LDE0LjM1NywyMC44MjZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMxZDFkMWI7c3Ryb2tlLW1pdGVybGltaXQ6MjIuOTI1NTg0NzkzMDkwODI7c3Ryb2tlLXdpZHRoOjAuMDI4MzQ5OTk5MzM4Mzg4NDQzcHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjM5MSAxMS4xOSAyNy4yIDE1Ljk0NCAxNC40MDUgNy41NjggMTQuMzkxIDExLjE5IDE0LjM5MSAxMS4xOVxcXCIgc3R5bGU9XFxcImZpbGw6IzE4MWIxNztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjcuMiAxNS45NDQgMTQuMzU3IDIwLjgyNiAxNC4zMjUgMjQuNTA5IDE0LjMyNiAyNC41MTEgMjcuMiAxNS45NDQgMjcuMiAxNS45NDRcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTFkMWE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQwNSA3LjU2OCAyNy4yIDE1Ljk0NCAyMC4yMTIgMiAxNC40MDUgNy41NjggMTQuNDA1IDcuNTY4XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1ZjVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNy4yIDE1Ljk0NCAxNC4zMjYgMjQuNTExIDIwLjIyOCAzMCAyNy4yIDE1Ljk0NCAyNy4yIDE1Ljk0NFxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDI0MjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAyNy4yIDE1Ljk0NCAxNC4zOTEgMTEuMTkgMTQuMzU3IDIwLjgyNiAxNC4zNTcgMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTUyO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zNTcgMjAuODI2IDE0LjM5MSAxMS4xOSAxMS42OTIgMTAuMTM3IDUuMjYzIDE2LjEwNCAxMS41NDkgMjEuOTI3IDE0LjM1NyAyMC44MjYgMTQuMzU3IDIwLjgyNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjk2YjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuNjkyIDEwLjEzNyAxNC4zOTEgMTEuMTkgMTQuNDA1IDcuNTY4IDExLjY5MiAxMC4xMzcgMTEuNjkyIDEwLjEzN1xcXCIgc3R5bGU9XFxcImZpbGw6IzFiMjcyNTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAxMS41NDkgMjEuOTI3IDE0LjMyNSAyNC41MDkgMTQuMzU3IDIwLjgyNiAxNC4zNTcgMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDojMWMyNjI0O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zMjUgMjQuNTEyIDQuOCAyNC40NjQgNy4yNTcgMzAgMjAuMjI4IDMwIDE0LjMyNiAyNC41MTEgMTQuMzI1IDI0LjUxMiAxNC4zMjUgMjQuNTEyXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA2NDY2O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0Ljg0OCA3LjUzNiAxNC40MDUgNy41NjggMjAuMjEyIDIgNy4yNzMgMiA0Ljg0OCA3LjUzNiA0Ljg0OCA3LjUzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzY3YTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuNDA1IDcuNTY4IDQuODQ4IDcuNTM2IDExLjY5MiAxMC4xMzcgMTQuNDA1IDcuNTY4IDE0LjQwNSA3LjU2OFxcXCIgc3R5bGU9XFxcImZpbGw6IzFlMzkzODtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuNTQ5IDIxLjkyNyA0LjggMjQuNDY0IDE0LjMyNSAyNC41MTIgMTQuMzI1IDI0LjUwOSAxMS41NDkgMjEuOTI3IDExLjU0OSAyMS45MjdcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDMwMmU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0XCJNRUxcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjExLjM0OFxcXCIgeTE9XFxcIi02Ny40ODhcXFwiIHgyPVxcXCItNjAwLjI3MlxcXCIgeTI9XFxcIi02NS4zMzVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwZjYwNjdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzA1YWJhY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzU4YmVjNFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTYwMy41OTRcXFwiIHkxPVxcXCItNzcuNjk5XFxcIiB4Mj1cXFwiLTYwMi4wMTFcXFwiIHkyPVxcXCItNTkuNjA0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTE3YzgzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMyMWI1YjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZWQ0ZDRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02MTIuNzU3XFxcIiB5MT1cXFwiLTU5LjkwNlxcXCIgeDI9XFxcIi02MTYuOTM0XFxcIiB5Mj1cXFwiLTcyLjc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWFjY2QzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM3MmFlYjNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzMTdkN2ZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi02MjEuODUxXFxcIiB5MT1cXFwiLTc0LjU3OVxcXCIgeDI9XFxcIi02MTQuODRcXFwiIHkyPVxcXCItNzIuMzAxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjE2MjZlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMxNTdjODRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMwM2EzYTVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIi02MTYuMzY5XFxcIiB5MT1cXFwiLTY0LjQ2OVxcXCIgeDI9XFxcIi02MjUuMzRcXFwiIHkyPVxcXCItNzIuODM1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGI3YzgxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMwNjhkOTBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNmIxYjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIi02MDguMDcyXFxcIiB5MT1cXFwiLTc0LjY3OFxcXCIgeDI9XFxcIi02MDMuNDg4XFxcIiB5Mj1cXFwiLTcwLjk2NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzBhOGE4ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMGY3YzgyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMWE1OTY0XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNjAxLjEzNFxcXCIgeTE9XFxcIi03MC4xMTNcXFwiIHgyPVxcXCItNjA2LjAwOFxcXCIgeTI9XFxcIi02Ny4wNjdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMyNTZhNzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzBkOTQ5OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzA2YTBhMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbWF5YTwvdGl0bGU+PHBhdGggZD1cXFwiTTIxLjYsMy40NjJIMzBMMTguNzY3LDI0LjIxMXMtMS44OTMtNS41LTIuNzA2LTcuNDU5XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY2OSwyOS4xMThIMzBWMy40NjJDMjkuOTk1LDE2Ljg2OSwyNC4zNiwyOS4xMTgsMjMuNjY5LDI5LjExOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTguNzY3LDI0LjIxMUgxMy41NDFMMiwzLjQ2MmMyLjA0Ny0uMjYsNi4xMzUtLjYxMSw4LjE2LS43NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTguNjkzLDE2LjAxOUM2Ljk2LDIyLjg2NiwxLjk5NSwyOS4zMiwyLDI5LjMxNGM1Ljc1MiwwLDYuOTkxLS44MzUsNi45OTEtMS4yNzZWMTYuNTRDOC44OSwxNi4zNyw4Ljc5NCwxNi4xOTQsOC42OTMsMTYuMDE5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLDMuNDYyVjI5LjMxNGMzLjE0Ny01LjIsNC45ODEtOC42LDYuNi0xMy40NUM0LjYsOC43OTQsMiwzLjQ2MiwyLDMuNDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjIzLjIzMyAyOC4xMDIgMjMuNjY5IDI5LjExOCAyMy42NjkgMTUuNjQ3IDIzLjIzMyAxNi4zNzVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjQ3LDE1LjY3M3YxMy40bC4wMTYuMDQzYy40NTIsMCw2LjMzMi0xNC41LDYuMzMyLTI1LjY1NkMyOS45OTUsMy40NjIsMjYuNDA2LDEwLjk0NywyMy42NDcsMTUuNjczWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPlwiLFxuXHRcIk1vbmdvREJcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjQ1LjczMlxcXCIgeTE9XFxcIjgzOS4xODhcXFwiIHgyPVxcXCItNjU0LjU5XFxcIiB5Mj1cXFwiODM5LjI1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjk3NywgLTAuMzIzLCAtMC4yOSwgMC44NzcsIC0zNzUuOTQ0LCAtOTI4LjI4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMjMxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOTk5ODc1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzliOTk3N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42ODNcXFwiIHN0b3AtY29sb3I9XFxcIiNhMDlmN2VcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzY4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTlhODg5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgzN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2I3YjY5YVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44OTZcXFwiIHN0b3AtY29sb3I9XFxcIiNjOWM3YjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTQ4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGVkZGNiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y4ZjZlYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZiZjllZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTY0NC4yODdcXFwiIHkxPVxcXCI4MjMuNDA1XFxcIiB4Mj1cXFwiLTY1Ny4wMjhcXFwiIHkyPVxcXCI4NDUuNDc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjk3NywgLTAuMzIzLCAtMC4yOSwgMC44NzcsIC0zNzUuOTQ0LCAtOTI4LjI4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM0OGE1NDdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzZjkxNDNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02NDMuMzg2XFxcIiB5MT1cXFwiODM5LjQ4NVxcXCIgeDI9XFxcIi02NTIuNDE4XFxcIiB5Mj1cXFwiODMzLjQxN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC45NzcsIC0wLjMyMywgLTAuMjksIDAuODc3LCAtMzc1Ljk0NCwgLTkyOC4yODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDFhMjQ3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzRiYTc0YlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45NTZcXFwiIHN0b3AtY29sb3I9XFxcIiM2N2I1NTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM2OWI2NTVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX21vbmdvPC90aXRsZT48cGF0aCBkPVxcXCJNMTYuNjIsMzBsLS43NTEtLjI0OXMuMS0zLjgtMS4yNzUtNC4wNjdjLS45LTEuMDQ4LjEzMy00NC43NDEsMy40MjMtLjE0OWEyLjcxMiwyLjcxMiwwLDAsMC0xLjMzMywxLjUyM0ExNC4xLDE0LjEsMCwwLDAsMTYuNjIsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjAyNiwyNi4zMjlhMTMuMjIzLDEzLjIyMywwLDAsMCw1LTEzLjIyNUMyMC41NTYsNi42MTksMTcuMDc1LDQuNDg3LDE2LjcsMy42NzNhOS43OTIsOS43OTIsMCwwLDEtLjgyNS0xLjZsLjI3NywxOC4wNjlTMTUuNTc4LDI1LjY2NCwxNy4wMjYsMjYuMzI5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS40ODcsMjYuNTY5UzkuMzY2LDIyLjQsOS43MiwxNS4wMjVBMTUuNTQsMTUuNTQsMCwwLDEsMTUuMjM5LDMuMzc3LDEuNzI1LDEuNzI1LDAsMCwwLDE1Ljg0NiwyYy4zODEuODIuMzE5LDEyLjI0My4zNTksMTMuNTc5QzE2LjM2LDIwLjc3NiwxNS45MTYsMjUuNTg4LDE1LjQ4NywyNi41NjlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+XCIsXG5cdFwibmdpbnhcIjogXCI8cGF0aCBkPVxcXCJNMTUuOTQ4LDJoLjA2NWExMC40MTgsMTAuNDE4LDAsMCwxLC45NzIuNTI4UTIyLjQxNCw1LjY1LDI3Ljg0Myw4Ljc3NGEuNzkyLjc5MiwwLDAsMSwuNDE0Ljc4OGMtLjAwOCw0LjM4OSwwLDguNzc3LS4wMDUsMTMuMTY0YS44MTMuODEzLDAsMCwxLS4zNTYuNTA3cS01Ljc3MywzLjMyNC0xMS41NDcsNi42NDRhLjU4Ny41ODcsMCwwLDEtLjY1Ny4wMzdROS45MTIsMjYuNiw0LjE0MywyMy4yNzRhLjcuNywwLDAsMS0uNC0uNjY2cTAtNi41ODIsMC0xMy4xNjNhLjY5My42OTMsMCwwLDEsLjM4Ny0uNjdROS41NTIsNS42NTcsMTQuOTc0LDIuNTM1Yy4zMjItLjE4NC42MzgtLjM3OS45NzQtLjUzNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAxOTYzOVxcXCIvPjxwYXRoIGQ9XFxcIk04Ljc2NywxMC41MzhxMCw1LjQyOSwwLDEwLjg1OWExLjUwOSwxLjUwOSwwLDAsMCwuNDI3LDEuMDg3LDEuNjQ3LDEuNjQ3LDAsMCwwLDIuMDYuMjA2LDEuNTY0LDEuNTY0LDAsMCwwLC42ODUtMS4yOTNjMC0yLjYyLS4wMDUtNS4yNCwwLTcuODZxMy41ODMsNC4yOSw3LjE4MSw4LjU2OGEyLjgzMywyLjgzMywwLDAsMCwyLjYuNzgyLDEuNTYxLDEuNTYxLDAsMCwwLDEuMjUxLTEuMzcxcS4wMDgtNS41NDEsMC0xMS4wODFhMS41ODIsMS41ODIsMCwwLDAtMy4xNTIsMGMwLDIuNjYyLS4wMTYsNS4zMjEsMCw3Ljk4Mi0yLjM0Ni0yLjc2Ni00LjY2My01LjU1Ni03LTguMzMyQTIuODE3LDIuODE3LDAsMCwwLDEwLjE3LDkuMDMzLDEuNTc5LDEuNTc5LDAsMCwwLDguNzY3LDEwLjUzOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJOaW1cIjogXCI8cGF0aCBkPVxcXCJNMTYuMTExLDYuNDA1cy0xLjA3My44NDctMi4xNjcsMS42OWExNS4zNjEsMTUuMzYxLDAsMCwwLTQuNTI3LjY1MWMtMS4xLS43LTIuMDctMS40NjktMi4wNy0xLjQ2OVM2LjUyLDguNyw2LDkuNTM1YTExLjM4MiwxMS4zODIsMCwwLDAtMi4yMzYsMS40ODJDMi45NjEsMTAuNywyLjAzLDEwLjMxLDIsMTAuM2MxLjA2MywyLjE0NSwxLjc3OCw0LjI5MiwzLjcyMiw1LjU4MywzLjEtNC44ODksMTcuNDgtNC40MzksMjAuNjM5LS4wMjhDMjguNCwxNC43ODcsMjkuMiwxMi41LDMwLDEwLjM4Yy0uMDg4LjAyOS0xLjE4MS4zOTUtMS44ODkuNjY1YTExLjQ4OSwxMS40ODksMCwwLDAtMS45ODYtMS41MWMtLjUzNy0uOTg0LTEuMzE5LTIuMzEzLTEuMzE5LTIuMzEzcy0uOTI3LjY4OS0yLDEuNDRhMjEuMjY1LDIxLjI2NSwwLDAsMC00LjY4MS0uNTEyYy0xLS44MjYtMi4wMTQtMS43NDYtMi4wMTQtMS43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjNkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTMuMSwxNC44NTRsMi41NTQsNi4xODVjNC40MzUsNS44NSwxNS43NTksNi4yNTcsMjAuNy4xMTMsMS4xNjgtMi42MzMsMi43NDUtNi4zMzMsMi43NDUtNi4zMzNhMTMuMzc5LDEzLjM3OSwwLDAsMS00LjYsMy44NjksMTIuMjE3LDEyLjIxNywwLDAsMS0yLjk4My43OTNsLTUuNDY1LTIuODMyLTUuNSwyLjc3NWExNS42NzksMTUuNjc5LDAsMCwxLTIuOTgzLS43NjRBMTQuMDc2LDE0LjA3NiwwLDAsMSwzLjEsMTQuODU0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTk1M1xcXCIvPlwiLFxuXHRcIk5peFwiOiBcIjxwYXRoIGQ9XFxcIk0xMywxMS4xMTUsNi4xODMsMjMuNzYsNC41OSwyMC44N2wxLjgzOS0zLjM4Ny0zLjY1MS0uMDFMMiwxNi4wMjlsLjgtMS40NzcsNS4yLjAxOCwxLjg2OC0zLjQ0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZWJhZTQ7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTMuNTI3LDIxLjIyM2gxMy42NGwtMS41NDEsMi45MjItMy42NTgtLjAxMSwxLjgxNywzLjM4OS0uNzc5LDEuNDQ5LTEuNTkzLDAtMi41ODQtNC44MjUtMy43MjItLjAwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZWJhZTQ7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDY3LDE1LjY4MiwxNC42NDcsMy4wMzdsMy4xMzQtLjAzMkwxOS42LDYuNGwxLjgzNC0zLjM3OWgxLjU1N0wyMy43ODYsNC41LDIxLjE3NCw5LjMwN2wxLjg1NCwzLjQ1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZWJhZTQ7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTQyLDE2LjMyNGw2LjgyMSwxMi42NDVMMTQuMjI5LDI5bC0xLjgyMS0zLjQtMS44MzQsMy4zOEg5LjAxNmwtLjgtMS40NzZMMTAuODMxLDIyLjcsOC45NzYsMTkuMjQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyNzdjMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOC40NjQsMTAuNzUxSDQuODIzTDYuMzY1LDcuODI5bDMuNjU4LjAxMUw4LjIwNyw0LjQ1MSw4Ljk4NiwzbDEuNTkyLDAsMi41ODQsNC44MjUsMy43MjIuMDA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyNzdjMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOSwyMC44ODgsMjUuODE3LDguMjQ0bDEuNTkzLDIuODlMMjUuNTcxLDE0LjUybDMuNjUxLjAxTDMwLDE1Ljk3OWwtLjgsMS40NzctNS4yLS4wMTgtMS44NjgsMy40NDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTI3N2MzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdFwiTlNJU1wiOiBcIjxwYXRoIGQ9XFxcIk0yNy40MzUsMTYuMDM3LDIyLjAxMiwyMS40Nmw1LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTc3YlxcXCIvPjxwYXRoIGQ9XFxcIk0yNi44ODQsMTUuNUgxNi4wNDhsNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDc5YWFcXFwiLz48cGF0aCBkPVxcXCJNMjYuODg0LDE0LjcxMiwyMS40NjEsOS4yODlsLTUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA5NmQzXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUyOCw5LjEzMUg5LjY4M2w1LjQyMyw1LjQyM00yNy40MzUsMy4zMjUsMjIuMDEyLDguNzQ4bDUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojMDFiMGYwXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUyOCw4LjM1NiwxNS4xMDUsMi45MzMsOS42ODMsOC4zNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyN2JjZjNcXFwiLz48cGF0aCBkPVxcXCJNMTQuMTcyLDIuNzc1SDMuMzI3TDguNzQ5LDguMlxcXCIgc3R5bGU9XFxcImZpbGw6IzRmYzlmNVxcXCIvPjxwYXRoIGQ9XFxcIk00LjU2OCwxNS45NjMsOS45OTEsMTAuNTQsNC41NjgsNS4xMTdcXFwiIHN0eWxlPVxcXCJmaWxsOiM3OTIwMWJcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTQxLDExLjA5MSw1LjExOSwxNi41MTNIMTUuOTY0XFxcIiBzdHlsZT1cXFwiZmlsbDojYTQyZDI2XFxcIi8+PHBhdGggZD1cXFwiTTUuMTE5LDE3LjI4OGw1LjQyMyw1LjQyMyw1LjQyMy01LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2NjMzgyZlxcXCIvPjxwYXRoIGQ9XFxcIk00LjU2OCwxNy44MjlWMjguNjc1bDUuNDIzLTUuNDIzTDguNCwyMS42NjVtMTMuOTE2LDEuMkwxNi45LDE3LjQ0N2wtNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMDQ1M2ZcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDc1LDIzLjY0NCwxNi45LDI5LjA2N2w1LjQyMy01LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2YyNjI1ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44NCwyOS4yMjVIMjguNjg1TDIzLjI2MywyMy44XFxcIiBzdHlsZT1cXFwiZmlsbDojZjQ3ZjdkXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljg4OSwyOS4zMzdsLTEuNjgtMS42OFYyLjM5MmEuMzc0LjM3NCwwLDAsMC0uMjQzLS4zNTVBLjI2My4yNjMsMCwwLDAsMjcuODI3LDJhLjM1OS4zNTksMCwwLDAtLjI3MS4xMTJMMjEuNDcxLDguMiwxNS4zODUsMi4xMTIsMTUuMywyLjAzN2gtLjAzN0EuMzA3LjMwNywwLDAsMCwxNS4xMDUsMkgyLjRhLjQzNC40MzQsMCwwLDAtLjI4OS4xMTJBLjM4LjM4LDAsMCwwLDIsMi4zOTJhLjM1OS4zNTksMCwwLDAsLjExMi4yNzFsMS42OCwxLjY4VjI5LjYxN2EuMzc0LjM3NCwwLDAsMCwuMjQzLjM1NUEuMzg3LjM4NywwLDAsMCw0LjE4NSwzMGEuMzU5LjM1OSwwLDAsMCwuMjcxLS4xMTJMMTAuNTQxLDIzLjhsNi4wODUsNi4wODUuMDg0LjA3NWguMDM3QS4yNTQuMjU0LDAsMCwwLDE2LjksMzBIMjkuNjA5YS4zOTUuMzk1LDAsMCwwLC4yOC0uNjYzWk0yNy40MzUsMy4zMjVWMTQuMTcxTDIyLjAxMiw4Ljc0OGw1LjQyMy01LjQyM1pNOS45OTEsMTAuNTQsNC41NjgsMTUuOTYzVjUuMTE3TDkuOTkxLDEwLjU0Wk05LjY4Myw5LjEzMUgyMC41MjhsLTUuNDIzLDUuNDIzTDkuNjgzLDkuMTMxWm0uODU5LDEuOTYsNS40MjMsNS40MjNINS4xMTlsNS40MjMtNS40MjNaTTE2LjksMTcuNDQ3bDUuNDIzLDUuNDIzSDExLjQ3NUwxNi45LDE3LjQ0N1pNMTYuMDQ4LDE1LjVIMjYuODkzbC01LjQyMyw1LjQyM0wxNi4wNDgsMTUuNVptNS45NjQsNS45NjQsNS40MjMtNS40MjNWMjYuODgzTDIyLjAxMiwyMS40NlptNC44NzItNi43NDhIMTYuMDQ4bDUuNDIzLTUuNDIzLDUuNDEzLDUuNDIzWk0yMC41MjgsOC4zNTZIOS42ODNsNS40MjMtNS40MjMsNS40MjMsNS40MjNaTTMuMzI3LDIuNzc1SDE0LjE3Mkw4Ljc0OSw4LjJabTEuMjQxLDI1LjlWMTcuODI5TDguNCwyMS42NjVsMS41ODcsMS41ODdMNC41NjgsMjguNjc1Wm0uNTUxLTExLjM4N0gxNS45NjRsLTUuNDIzLDUuNDIzTDUuMTE5LDE3LjI4OFpNMTYuOSwyOS4wNjdsLTUuNDIzLTUuNDIzSDIyLjMyTDE2LjksMjkuMDY3Wm0uOTQzLjE1OUwyMy4yNjMsMjMuOGw1LjQyMyw1LjQyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NjQwNDlcXFwiLz5cIixcblx0XCJPYmplY3QgUGFzY2FsXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTZcXFwiIHkxPVxcXCItMC40NDNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjIyLjA0MlxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZjBjMTVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YTBjMGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2RlbHBoaTwvdGl0bGU+PGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTRcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTQ1LDE2LjI0M0g0LjkyNGEuOTE0LjkxNCwwLDAsMC0xLjA5Mi44MnEuMDMzLjQyOS4xLjg0OWExMi40LDEyLjQsMCwwLDAsMjQuNTMyLDBxLjA3NS0uNS4xMDgtMS4wMjFDMjguNDc4LDE2LjUyMywyOC4yMTEsMTYuMjA3LDI3LjU0NSwxNi4yNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2NDQzXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTguNDggMTEuNjQgMjMuNzA3IDcuMjY2IDE5Ljc4NyA1Ljg4IDE2IDExLjA1M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjE1LjY4IDExLjAyNiAxOC42NCA1Ljg4IDE0Ljg1MyA1Ljg4IDEzLjMwNyAxMS4yOTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMy4wNCAxMS4zNzMgMTMuNiA2LjcwNiAxMC41ODcgNy45NiAxMS4wMTMgMTIuNzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMC43NDcgMTMgOS43ODcgOC43NiA3LjcwNyAxMC44NCA5LjY1MyAxNC42OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMzg3IDE1LjA1MyA3LjQ5MyAxMi4zNzYgNi42NCAxNC40NjYgOS4wNCAxNi41MTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjA0IDE2Ljc1NyA2LjY0IDE1LjIxMyA2LjQ4IDE3LjQgOS4yIDE4LjMzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMjI3IDE4Ljg0NiA2LjY0IDE4LjA0IDcuMjI3IDE5LjggOS41NDcgMTkuOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuNzA3IDIwLjA5MyA3LjcwNyAyMC4zODYgOC42MjcgMjEuNzQ2IDEwLjI2NyAyMVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMjMsMTMuMDg5YTYuNjEsNi42MSwwLDAsMC00LjUzLTJBNi4yOTMsNi4yOTMsMCwwLDAsMTEuMywyMi4wN2w0Ljk0MS4xMjktMi4wOC00LjE2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41LDIyLjM2NmwtNS4yNjctLjEzOC0uMDQ0LS4wMzlhNi40NTMsNi40NTMsMCwwLDEsNC4zLTExLjI2NCw2Ljc4Nyw2Ljc4NywwLDAsMSw0LjY0MywyLjA1bC4xMjMuMTIzLTUuOSw0Ljk4MlptLTUuMTQtLjQ1NSw0LjYxNi4xMjFMMTMuOTYxLDE4bDUuODI1LTQuOTE5YTYuNDMsNi40MywwLDAsMC00LjI5Mi0xLjgzNSw2LjEzMyw2LjEzMywwLDAsMC00LjEzMSwxMC42NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTEyLjAxMywyMC40OTNjLTQuMTczLTUuODEzLDIuMTA5LTguMTcyLDIuNDc4LTguNDUzLjQ1MS0uMzQ0LTcuNTksMS43ODUtMy4yMjYsOC44OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMDRlMzE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjcyIDEyLjYgMTMuNTIgMTcuNTY3IDEzLjczMyAxOC41NzMgMjEuNDY3IDE3LjAyNiAyMC43MiAxMi42XFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTEzLjYxLDE4Ljc2MSwxMy4zNDEsMTcuNWw3LjQ5NS01LjE3LjgxNCw0LjgyOFptLjA4OS0xLjEyMy4xNTguNzQ3TDIxLjI4MywxNi45LDIwLjYsMTIuODc0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43MjMsMjEuMzE5Yy0zLjkzLS42NjgtNC4yODMuNDI4LTQuMjgzLjQyOEwxMC4yNjcsMjQuNDRzMS4xMi0uOTA3LDUuNDkzLDBsLjc2LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2RkMGMxMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMjIsMjEuNmMtLjAyLS4yLTEuMS0uMzE5LTEuNjc3LS4xMjMtLjczMi4yNDktMS4yMTksMS4xNDItMS4wNDUsMS4yMTNhMS45NzUsMS45NzUsMCwwLDEsMS4xMjUtLjk4NkMxMy40NDcsMjEuNDkzLDE0LjE0MiwyMS44LDE0LjEyMiwyMS42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmNmU0ZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS41MiwxOC42MDZhMTEuMSwxMS4xLDAsMCwwLDEuNTQ3LDEuNDg3LDYuOSw2LjksMCwwLDEsMi43Miw0LjEwN2MtLjEwNywxLjA2Ny0xLjk3MywxLjc2LTEuOTczLDEuNzZsLTMuMzA3LTcuMTk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy43MywyNi4xNjFsLTMuNDU3LTcuNTIxLDEuMzItLjIwOC4wNTcuMDgxYTEwLjg2OSwxMC44NjksMCwwLDAsMS41MTIsMS40NTEsNyw3LDAsMCwxLDIuNzgyLDQuMjA3bDAsLjAyMiwwLC4wMjJjLS4xMTUsMS4xNTMtMiwxLjg2NC0yLjA3NywxLjg5NFptLTIuOTktNy4yNywzLjE1NSw2Ljg2M2MuNDE0LS4xNzgsMS42My0uNzYzLDEuNzMtMS41NDhhNi43OTMsNi43OTMsMCwwLDAtMi42NDgtMy45ODFsLS4wMS0uMDA3YTExLjk0LDExLjk0LDAsMCwxLTEuNTE3LTEuNDM5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yOCwxMi43NDJjLjAyNS4zOTQuMDM0Ljc5Mi4wMjUsMS4xOTRhMTMuOTQ2LDEzLjk0NiwwLDAsMS0xOS45LDEyLjNBMTIuODYsMTIuODYsMCwwLDAsMjgsMTIuNzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0yLjM4MywxMy44OTNBMTMuOTQxLDEzLjk0MSwwLDAsMSwyNS43LDUuODNzLTUuMDA5LDUuOTc5LTEwLjU4NCw3LjkwN1MyLjM4MywxMy44OTMsMi4zODMsMTMuODkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0zLjYxOCwxOC42OTRjLS4wNDQtLjM5Mi0uMDcyLS43OS0uMDgzLTEuMTkxQzMuMzI5LDkuODA3LDEwLjAxMiw0LjIsMTcuNzA4LDMuOTkxYTE0LjIsMTQuMiwwLDAsMSw1LjcxOSwxLjQ1OCwxMy4xMjgsMTMuMTI4LDAsMCwwLTcuMTg4LTIuMzY5Yy03LjEuMTktMTMuMzA2LDUuMy0xMy4xMTYsMTIuNEExMi44NzMsMTIuODczLDAsMCwwLDMuNjE4LDE4LjY5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYWUwZGY7ZmlsbC1ydWxlOmV2ZW5vZGQ7b3BhY2l0eTowLjJcXFwiLz5cIixcblx0XCJPYmplY3RpdmUtQ1wiOiBcIjxwYXRoIGQ9XFxcIk0xMS4yOSwxNS45NzZhOC44OTIsOC44OTIsMCwwLDAsMS4wMzksNC41NTcsNC44MTgsNC44MTgsMCwwLDAsNS41NzksMi4xMywzLjc4OSwzLjc4OSwwLDAsMCwyLjczNC0zLjE4MWMuMDk1LS41MzUuMS0uNTQuMS0uNTQsMS41MzcuMjIyLDQuMDE0LjU4Miw1LjU1LjhsLS4xLjM4OUE5Ljk1OCw5Ljk1OCwwLDAsMSwyMy44LDI0LjlhOC4zNSw4LjM1LDAsMCwxLTQuNzQ3LDIuMzc4LDEyLjkyNSwxMi45MjUsMCwwLDEtNy4zMjItLjcyNSw4Ljk4LDguOTgsMCwwLDEtNS4xMDYtNS41MjRBMTQuMzUzLDE0LjM1MywwLDAsMSw2LjY0MiwxMC45YTkuMzIzLDkuMzIzLDAsMCwxLDcuOTI5LTYuMjQsMTEuODEyLDExLjgxMiwwLDAsMSw1LjkuNDkxLDguNDY3LDguNDY3LDAsMCwxLDUuNDU2LDYuMWMuMDgzLjMxMS4xLjM2OS4xLjM2OS0xLjcwOS4zMTEtMy44MjEuNzA1LTUuNTE4LDEuMDc1QzIwLjE4NiwxMSwxOS4zODcsOS42NjYsMTcuNjc4LDkuMjVhNC42NTYsNC42NTYsMCwwLDAtNS44NTMsMy4xNTgsOS4yOCw5LjI4LDAsMCwwLS4zNDEsMS4yNzNBMTAuODksMTAuODksMCwwLDAsMTEuMjksMTUuOTc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi4wMzMgMzAgMi4wMzMgMiA3Ljk2NyAyIDcuOTY3IDQuMjI3IDQuNzIzIDQuMjI3IDQuNzIzIDI3Ljc3MyA3Ljk2NyAyNy43NzMgNy45NjcgMzAgMi4wMzMgMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI5Ljk2NyAyOS45OTkgMjQuMDMzIDI5Ljk5OSAyNC4wMzMgMjcuNzcxIDI3LjI3NyAyNy43NzEgMjcuMjc3IDQuMjI2IDI0LjAzMyA0LjIyNiAyNC4wMzMgMS45OTkgMjkuOTY3IDEuOTk5IDI5Ljk2NyAyOS45OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0XCJPQ2FtbFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi03NDUuNjIzXFxcIiB5MT1cXFwiLTkyLjc2XFxcIiB4Mj1cXFwiLTc0NS42MjNcXFwiIHkyPVxcXCItODUuMTA4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDc1OCAxMTMuMjgpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjI5MTA0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZWM2ODEzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItNzQxLjk5XFxcIiB5MT1cXFwiLTEwOS40NzdcXFwiIHgyPVxcXCItNzQxLjk5XFxcIiB5Mj1cXFwiLTg1LjA5OVxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNzUyLjExMVxcXCIgeTE9XFxcIi05My45MThcXFwiIHgyPVxcXCItNzUyLjExMVxcXCIgeTI9XFxcIi04NS4yODRcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfb2NhbWw8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNi41NzEsMjUuMjQ2YTQuMjgsNC4yOCwwLDAsMC0uMDM5LS43MDljLS4wNTktLjItLjItLjIxNy0uMy0uMzc0YTMuNTA3LDMuNTA3LDAsMCwxLS41MzItMS40NzdjLS4wMi0uNDUzLS4yLS44ODYtLjIxNy0xLjMzOS0uMDItLjIxNy4wMi0uNDUzLDAtLjY2OWExLjk2MywxLjk2MywwLDAsMC0uMDM5LS4zMTUsMS4xMzMsMS4xMzMsMCwwLDAtLjAzOS0uMmwuMDU5LS4xMzhhMi43MiwyLjcyLDAsMCwxLC42NS0uMDM5Yy4yNTYsMCwuNTEyLjAyLjc2OC4wMmE3Ljk2MSw3Ljk2MSwwLDAsMCwxLjUzNi0uMDU5LDMuNzIyLDMuNzIyLDAsMCwwLDEuOTQ5LS44NDcsNC45NDYsNC45NDYsMCwwLDAsMS41MzYtMi4wMDhjLjE3Ny0uMzk0LjE3Ny0xLjA4My41NTEtMS40LjQzMy0uMzc0LDEuMTgxLS4zMzUsMS42OTMtLjU3MWExLjE4NywxLjE4NywwLDAsMSwuODA3LS4xMzhjLjIxNy4wMzkuNjMuMzE1LjcyOS0uMDU5LS4wNzktLjAzOS0uMS0uMTM4LS4xMzgtLjE3Ny40MTQtLjAzOSwwLTEtLjE1OC0xLjJBMi4yMjUsMi4yMjUsMCwwLDAsMjQuMjUsMTNhMy41MDksMy41MDksMCwwLDAtMS41MzYtLjIxN2MtLjg4Ni4xNzctLjgyNy0uMzM1LTEuMzM5LS4zMzUtLjYzLDAtMS43MzMuMDM5LTEuOTMuNjNhMS41NCwxLjU0LDAsMCwxLS4zMzUuNTEyYy0uMTM4LjE3Ny4wMi4zNTQtLjAzOS41NzEtLjA3OS4yMTctLjE3Ny45ODUtLjI3NiwxLjI2LS4xNzcuNDUzLS4zOTQsMS4wMjQtLjc4OCwxLjAyNGEzLjE1MiwzLjE1MiwwLDAsMS0xLjQzNy0uMDc5Yy0uMjc2LS4xLS43MjktLjI1Ni0uOTQ1LS4zMzUtMS4wMjQtLjQzMy0xLjItLjkwNi0xLjItLjkwNmEzLjAyNiwzLjAyNiwwLDAsMS0uNTEyLS44NjZjLS4xMTgtLjQxNC0uMzE1LS43NjgtLjM5NC0xcy0uMy0uNTkxLS40NTMtLjk4NWEyLjY2NywyLjY2NywwLDAsMC0uNzA5LTEuMDYzYy0uMzE1LS4yNzYtLjYxLS43MjktMS4yNi0uNTkxYTEuNjQxLDEuNjQxLDAsMCwwLS44NjYuMzE1Yy0uMjE3LjE3Ny0uMy41NzEtLjQ5Mi44ODYtLjExOC4xNzctLjMxNS43MDktLjUxMiwxLjE2MmExLjkyOSwxLjkyOSwwLDAsMS0uMzM1LjY1Yy0uMTE4LjA3OS0uMjU2LjItLjQxNC4xMzhhLjkyNC45MjQsMCwwLDEtLjMxNS0uMiw1LjMzNCw1LjMzNCwwLDAsMS0uNzA5LTEuMTIyLDExLjEsMTEuMSwwLDAsMC0uNzg4LTEuMjQxLDEuMDE2LDEuMDE2LDAsMCwwLS45ODUtLjU1MWMtMS4wMjQsMC0xLjEuNTcxLTEuNTU2LDEuNDE4YTUuNTc0LDUuNTc0LDAsMCwxLS42NjksMS40Yy0uMjM2LjI1Ni0uOTQ1LDEuMzM5LTEuNDU3LDEuNTE2SDJ2Ny42MmMuMDM5LS4xLjA1OS0uMi4xLS4yNzYuMi0uNDE0LjY1LS44MDcuOTA2LTEuMjIxYTMuNSwzLjUsMCwwLDAsLjM3NC0uNzA5LDMuNzQzLDMuNzQzLDAsMCwxLC4yMzYtLjcwOS43OTQuNzk0LDAsMCwxLC41NzEtLjMzNWMuMzU0LS4wNTkuNjUuNDkyLDEuMDgzLjcwOS4yLjA3OSwxLjA2My4zOTQsMS4zMTkuNDUzLjQzMy4xLjkwNi4yLDEuMzM5LjI3Ni4yMzYuMDM5LjQ1My4wNzkuNzA5LjFhNy4zLDcuMywwLDAsMSwxLjA4My4xLDIuMjc3LDIuMjc3LDAsMCwwLS44MDcsMS4yMjFjLS4xNTguNDMzLS4yNzYuOTI1LS40NzMsMS4zMzktLjIxNy40NzMtLjY2OS42NjktLjYxLDEuMjIxYTIuNjY4LDIuNjY4LDAsMCwxLC4wMi42ODksNC4wMDksNC4wMDksMCwwLDEtLjIxNy42ODljLS4xLjMxNS0uMjE3LDEuMzU5LS4zNTQsMS42NzRsLjkwNi0uMTE4aDBBMTAuNjkyLDEwLjY5MiwwLDAsMCw4LjQsMjYuMzg4YTMuNzM3LDMuNzM3LDAsMCwxLC43MjktMS4yOGMuMzM1LS4zNzQuMzE1LS44NDcuNTEyLTEuM2ExMi40ODgsMTIuNDg4LDAsMCwxLC43NjgtMS4zYy40OTItLjgwNy44MDctMS44MTIsMS44NTEtMi4wMjhhMy4zLDMuMywwLDAsMSwxLjAyNC43MDksNC40NTIsNC40NTIsMCwwLDEsLjg4NiwxLjEsMTIuODUxLDEyLjg1MSwwLDAsMSwuODg2LDIuNjc4LDEuMjI3LDEuMjI3LDAsMCwwLC4zOTQuNzA5LDUuNDYyLDUuNDYyLDAsMCwxLC40MzMuNzI5Yy4wNzkuMTc3LjIuNTcxLjMuNzg4YTYuMjY3LDYuMjY3LDAsMCwxLC4zMTUuODI3bC44NDctLjAyaC4wMnYtLjAyQTkuNzU0LDkuNzU0LDAsMCwxLDE2LjU3MSwyNS4yNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIxNywyNy4yMzVjLS4xLS4yLS4yMTctLjYxLS4zLS43ODhhNS40NjIsNS40NjIsMCwwLDAtLjQzMy0uNzI5LDEuMTE5LDEuMTE5LDAsMCwxLS4zOTQtLjcwOSwxMi40ODcsMTIuNDg3LDAsMCwwLS44ODYtMi42NzgsNC40NTIsNC40NTIsMCwwLDAtLjg4Ni0xLjEsMy4zLDMuMywwLDAsMC0xLjAyNC0uNzA5Yy0xLjA0NC4yLTEuMzU5LDEuMjIxLTEuODUxLDIuMDI4YTEyLjQ4OCwxMi40ODgsMCwwLDAtLjc2OCwxLjNjLS4yLjQzMy0uMTc3LjkyNS0uNTEyLDEuM2EzLjQ0MywzLjQ0MywwLDAsMC0uNzI5LDEuMjhjLS4wMzkuMS0uMTE4LDEuMDgzLS4yMTcsMS4zMTloMGwxLjUzNi0uMWMxLjQzNy4xLDEuMDI0LjY1LDMuMjQ5LjUzMmwzLjUyNS0uMTE4aDBBNi4yNjcsNi4yNjcsMCwwLDAsMTYuMjE3LDI3LjIzNVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjYuNDU2LDMuOEg1LjU0NEEzLjUyMSwzLjUyMSwwLDAsMCwyLjAyLDcuMzI4djcuNjc5aDBjLjUxMi0uMTc3LDEuMjIxLTEuMjYsMS40NTctMS41MTZhNS45MTMsNS45MTMsMCwwLDAsLjY2OS0xLjRjLjQ1My0uODI3LjUzMi0xLjQxOCwxLjU1Ni0xLjQxOGExLjAxNiwxLjAxNiwwLDAsMSwuOTg1LjU1MSw5LjU0Nyw5LjU0NywwLDAsMSwuNzg4LDEuMjQxLDQuODQ5LDQuODQ5LDAsMCwwLC43MDksMS4xMjIsMiwyLDAsMCwwLC4zMTUuMmMuMTU4LjA1OS4zLS4wNTkuNDE0LS4xMzhBMS45MjksMS45MjksMCwwLDAsOS4yNDYsMTNjLjItLjQ1My4zOTQtLjk2NS41MTItMS4xNjIuMi0uMzE1LjI3Ni0uNzA5LjQ5Mi0uODg2YTEuNTksMS41OSwwLDAsMSwuODY2LS4zMTVjLjY1LS4xMzguOTQ1LjMxNSwxLjI2LjU5MWEzLjI4NSwzLjI4NSwwLDAsMSwuNzA5LDEuMDYzYy4xNTguMzk0LjM1NC43NjguNDUzLjk4NWE4Ljk0Niw4Ljk0NiwwLDAsMSwuMzk0LDEsMy43MTMsMy43MTMsMCwwLDAsLjUxMi44NjZzLjE3Ny40NzMsMS4yLjkwNmE4Ljc0OSw4Ljc0OSwwLDAsMCwuOTQ1LjMzNSwzLjE1MiwzLjE1MiwwLDAsMCwxLjQzNy4wNzljLjM5NCwwLC42MS0uNTcxLjc4OC0xLjAyNC4xLS4yNzYuMjE3LTEuMDQ0LjI3Ni0xLjI2cy0uMS0uMzc0LjAzOS0uNTcxYy4xNTgtLjIxNy4yNTYtLjIzNi4zMzUtLjUxMi4yLS42MSwxLjMtLjYzLDEuOTMtLjYzLjUzMiwwLC40NTMuNTEyLDEuMzM5LjMzNWEzLjI0MywzLjI0MywwLDAsMSwxLjUzNi4yMTcsMi4yMjUsMi4yMjUsMCwwLDEsMS4xNDIuNTUxYy4xNTguMi41NzEsMS4xNjIuMTU4LDEuMi4wMzkuMDM5LjA3OS4xMzguMTM4LjE3Ny0uMS4zNzQtLjQ5Mi4xLS43MjkuMDU5YTEuMTg3LDEuMTg3LDAsMCwwLS44MDcuMTM4Yy0uNTEyLjIxNy0xLjI0MS4yLTEuNjkzLjU3MS0uMzc0LjMxNS0uMzc0LDEtLjU1MSwxLjRhNS4xNjcsNS4xNjcsMCwwLDEtMS41MzYsMi4wMDgsMy45LDMuOSwwLDAsMS0xLjk0OS44NDcsNy45NjEsNy45NjEsMCwwLDEtMS41MzYuMDU5Yy0uMjU2LS4wMi0uNTEyLS4wMi0uNzY4LS4wMi0uMTU4LDAtLjY2OS0uMDItLjY1LjAzOWwtLjA1OS4xMzhhLjcuNywwLDAsMCwuMDM5LjJjLjAyLjExOC4wMi4yMTcuMDM5LjMxNSwwLC4yMTctLjAyLjQ1MywwLC42NjkuMDIuNDUzLjIuODY2LjIxNywxLjMzOWEzLjI2LDMuMjYsMCwwLDAsLjUzMiwxLjQ3N2MuMS4xNTguMjM2LjE3Ny4zLjM3NGE0LjE2Myw0LjE2MywwLDAsMSwuMDM5LjcwOSw5LjY4NSw5LjY4NSwwLDAsMCwuODI3LDIuNzU3di4wMmgwYy41MTItLjA3OSwxLjA0NC0uMjc2LDEuNzEzLS4zNzQsMS4yNDEtLjE3NywyLjk1NC0uMSw0LjA1Ni0uMiwyLjgtLjI1Niw0LjMxMiwxLjE0Miw2LjgxMy41NzFWNy4zMjhBMy41NTEsMy41NTEsMCwwLDAsMjYuNDU2LDMuOFpNMTYuMDIsMjAuMzQzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk04LjQ3OCwyMy41NzNjLjItLjQzMy4zMTUtLjkwNi40NzMtMS4zMzlhMi4yNzcsMi4yNzcsMCwwLDEsLjgwNy0xLjIyMSw3LjMsNy4zLDAsMCwwLTEuMDgzLS4xYy0uMjM2LS4wMi0uNDczLS4wNTktLjcwOS0uMS0uNDMzLS4wNzktLjkyNS0uMTc3LTEuMzM5LS4yNzYtLjI1Ni0uMDU5LTEuMTQyLS4zNzQtMS4zMTktLjQ1My0uNDUzLS4yLS43NDgtLjc2OC0xLjA4My0uNzA5YS43OTQuNzk0LDAsMCwwLS41NzEuMzM1LDMuNzQzLDMuNzQzLDAsMCwwLS4yMzYuNzA5Yy0uMS4yMzYtLjI1Ni40NzMtLjM3NC43MDlhMTIuMjg5LDEyLjI4OSwwLDAsMC0uOTI1LDEuMmMtLjAzOS4xLS4wNTkuMi0uMS4zdjQuNzQ1YTUuNCw1LjQsMCwwLDEsLjcyOS4xNTgsOC43Nyw4Ljc3LDAsMCwwLDQuMzcxLjM1NGwuMTc3LS4wMmgwYy4xMzgtLjMxNS4yNTYtMS4zNTkuMzU0LTEuNjc0YTUuNDk0LDUuNDk0LDAsMCwwLC4yMTctLjY4OSwyLjY2OCwyLjY2OCwwLDAsMC0uMDItLjY4OUM3LjgwOSwyNC4yNDIsOC4yNjIsMjQuMDQ1LDguNDc4LDIzLjU3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz5cIixcblx0XCJPY3RhdmVcIjogXCI8ZGVmcyBpZD1cXFwiZGVmczI4NzRcXFwiPiA8cmFkaWFsR3JhZGllbnQgY3g9XFxcIjE4Mi45ODM3XFxcIiBjeT1cXFwiMzk1LjA0ODcxXFxcIiByPVxcXCIxNDguOTUzMDlcXFwiIGZ4PVxcXCIxODIuOTgzN1xcXCIgZnk9XFxcIjM5NS4wNDg3MVxcXCIgaWQ9XFxcInJhZGlhbEdyYWRpZW50MzAzM1xcXCIgeGxpbms6aHJlZj1cXFwiI2xpbmVhckdyYWRpZW50Mzc1NVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC4yMjkxNDMzNCwtMC4yNDkwMTQ3OSwwLjc2NDM1NzIsMC44MzA2NDI2OCwtMjcyLjg1MzM3LC0xNTkuNjk0ODIpXFxcIiAvPiA8bGluZWFyR3JhZGllbnQgaWQ9XFxcImxpbmVhckdyYWRpZW50Mzc1NVxcXCI+IDxzdG9wIGlkPVxcXCJzdG9wMzc1N1xcXCIgc3R5bGU9XFxcInN0b3AtY29sb3I6IzAwOGNiZTtzdG9wLW9wYWNpdHk6MVxcXCIgb2Zmc2V0PVxcXCIwXFxcIiAvPiA8c3RvcCBpZD1cXFwic3RvcDM3NTlcXFwiIHN0eWxlPVxcXCJzdG9wLWNvbG9yOiNiMmZmZmY7c3RvcC1vcGFjaXR5OjFcXFwiIG9mZnNldD1cXFwiMVxcXCIgLz4gPC9saW5lYXJHcmFkaWVudD4gPC9kZWZzPiA8ZyBpZD1cXFwibGF5ZXIxXFxcIiB0cmFuc2Zvcm09XFxcInNjYWxlKDAuMTEyOTYpIHRyYW5zbGF0ZSgtMjMzLjM1NTQ0LC0zOTAuNzE4MDIpXFxcIj4gPGcgdHJhbnNmb3JtPVxcXCJtYXRyaXgoOC40NTE5NzIzLDAsMCw4LjQ1MTk3MjMsLTI3OC40NTAxMiwtNDAzLjgyOTc1KVxcXCIgaWQ9XFxcImczMDI1XFxcIj4gPHBhdGggZD1cXFwibSA2Ni40MzIxMDMsOTcuNDg4Njc5IGMgLTUuMTk1ODQsNS42NDY0MzEgLTMuOTM2NjEsMTYuMTY5MDMxIDIuODExMDcsMjMuNTAxODcxIDYuNzQ3NjgsNy4zMzI4NSAxNi40Mjg5OCw4LjY5OTU1IDIxLjYyNDgzLDMuMDUzMTIgNS4xOTU4NSwtNS42NDY0MyAzLjk0MDIsLTE2LjE2OTQ2IC0yLjgwNzQ5LC0yMy41MDIzIC02Ljc0NzY4LC03LjMzMjg2MSAtMTYuNDMyNTYsLTguNjk5MTMxIC0yMS42Mjg0MSwtMy4wNTI2OTEgeiBtIDQuNzExNDksMi4zNDU1MyBjIDQuMDgyNTYsLTQuNDM2NTkgMTEuNTg5LC0zLjQ3MTUyIDE2Ljc2NzQxLDIuMTU1OTYxIDUuMTc4NDIsNS42Mjc1IDYuMDY2NDcsMTMuNzg0OTEgMS45ODM5MSwxOC4yMjE1IC00LjA4MjU2LDQuNDM2NTggLTExLjU5MDk3LDMuNDczNjkgLTE2Ljc2OTM5LC0yLjE1MzgxIC01LjE3ODQyLC01LjYyNzUgLTYuMDY0NDksLTEzLjc4NzA0IC0xLjk4MTkzLC0xOC4yMjM2NTEgelxcXCIgaWQ9XFxcInBhdGg1ODc0XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50MzAzMyk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmVcXFwiIC8+IDxyZWN0IHdpZHRoPVxcXCI0LjM0OTg1NFxcXCIgaGVpZ2h0PVxcXCI0LjM0OTg1NFxcXCIgcng9XFxcIjAuNzY5NTg5NjZcXFwiIHJ5PVxcXCIwLjc2OTU4OTY2XFxcIiB4PVxcXCI4NS4zODE1NjFcXFwiIHk9XFxcIjk5LjQ5Mzg4MVxcXCIgaWQ9XFxcInJlY3Q1ODc2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY3ZjJhO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojZDQ1NTAwO3N0cm9rZS13aWR0aDowLjc0NDAzNzk5O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lXFxcIiAvPiA8cmVjdCB3aWR0aD1cXFwiMTAuMjQ1NDM2XFxcIiBoZWlnaHQ9XFxcIjEwLjI0NTQzNlxcXCIgcng9XFxcIjEuODEyNjU0NVxcXCIgcnk9XFxcIjEuODEyNjU0NVxcXCIgeD1cXFwiNjAuOTI2NTlcXFwiIHk9XFxcIjEwNS4yMjQ1XFxcIiBpZD1cXFwicmVjdDU4NzhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjdmMmE7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiNkNDU1MDA7c3Ryb2tlLXdpZHRoOjAuNzQ0MDM3OTk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmVcXFwiIC8+IDxyZWN0IHdpZHRoPVxcXCI2LjE4OTc1MzFcXFwiIGhlaWdodD1cXFwiNi4xODk3NTMxXFxcIiByeD1cXFwiMS4wOTUxMTAyXFxcIiByeT1cXFwiMS4wOTUxMTAyXFxcIiB4PVxcXCI4Ny40MDQ3MzlcXFwiIHk9XFxcIjExOC42MzcwNVxcXCIgaWQ9XFxcInJlY3Q1ODgwXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY3ZjJhO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojZDQ1NTAwO3N0cm9rZS13aWR0aDowLjc0NDAzNzk5O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lXFxcIiAvPiA8L2c+IDwvZz5cIixcblx0XCJPcGVuQ0xcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIyOS42NjJcXFwiIHkxPVxcXCIxOC4wMjZcXFwiIHgyPVxcXCIyMS40MTlcXFwiIHkyPVxcXCIyMC4yMzRcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcInJlZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmNmE2YVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjQuNTg4XFxcIiB5MT1cXFwiOS43NDhcXFwiIHgyPVxcXCIxOC43NzZcXFwiIHkyPVxcXCIxNS41NlxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCIxOC40NjZcXFwiIHkxPVxcXCI2LjYxOVxcXCIgeDI9XFxcIjE1LjkyNFxcXCIgeTI9XFxcIjEzLjYwM1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2NmYTQwY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VkZDQ4MFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTMuMTdcXFwiIHkxPVxcXCI2LjUxXFxcIiB4Mj1cXFwiMTMuMTdcXFwiIHkyPVxcXCIxMi45OTdcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiOC44MDhcXFwiIHkxPVxcXCI4LjQ4NlxcXCIgeDI9XFxcIjEwLjk4OFxcXCIgeTI9XFxcIjEzLjE2MVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCI1LjUwNVxcXCIgeTE9XFxcIjExLjQ3N1xcXCIgeDI9XFxcIjguNTQ2XFxcIiB5Mj1cXFwiMTQuNTE5XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTFhMTE5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzdhZTNkXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCIzLjYzOVxcXCIgeTE9XFxcIjE0LjI4NVxcXCIgeDI9XFxcIjYuODgzXFxcIiB5Mj1cXFwiMTYuMTU4XFxcIiB4bGluazpocmVmPVxcXCIjZlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIjIuMjY1XFxcIiB5MT1cXFwiMTcuNzk5XFxcIiB4Mj1cXFwiNS4zNzlcXFwiIHkyPVxcXCIxOC45MzNcXFwiIHhsaW5rOmhyZWY9XFxcIiNmXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpXFxcIiB4MT1cXFwiMlxcXCIgeTE9XFxcIjIxLjYxNFxcXCIgeDI9XFxcIjQuODMzXFxcIiB5Mj1cXFwiMjEuNjE0XFxcIiB4bGluazpocmVmPVxcXCIjZlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwialxcXCIgeDE9XFxcIjIwLjY2MlxcXCIgeTE9XFxcIjE4Ljk0OVxcXCIgeDI9XFxcIjE4LjAyNlxcXCIgeTI9XFxcIjE3LjQyOFxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjQ2NDY0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2JjYmNiXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImtcXFwiIHgxPVxcXCIxNi4wMjFcXFwiIHkxPVxcXCIyNS4yNjRcXFwiIHgyPVxcXCIxNi4wMjFcXFwiIHkyPVxcXCIyMi42OTFcXFwiIHhsaW5rOmhyZWY9XFxcIiNqXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfb3BlbmNsPC90aXRsZT48cGF0aCBkPVxcXCJNMjcuODI4LDEzLjU3NGExNC42NzYsMTQuNjc2LDAsMCwxLC44MzUsMS41NDJBMTQuOTY0LDE0Ljk2NCwwLDAsMSwyOS45MiwyMi45SDIyLjEzM2ExMC4zNzcsMTAuMzc3LDAsMCwwLS45NjctNC40MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljc1MywxNC40M2ExMC4wNzQsMTAuMDc0LDAsMCwxLDIuNzcyLDIuODc4bDYuMjczLTUuMmExNS41NCwxNS41NCwwLDAsMC00Ljk4OC00LjE1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC43ODEsMTMuMDg2YTguODI3LDguODI3LDAsMCwxLDIuMzc2Ljk2NkwyMC42NjYsNy40M2ExMi43LDEyLjcsMCwwLDAtNC42NDUtLjk1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTQuMzY0LDEzbC42MTItNi40ODhhMTIuNDYsMTIuNDYsMCwwLDAtMy42MTEuODEzbC41MDcsNS42MzhBNy4yMTksNy4yMTksMCwwLDEsMTQuMzY0LDEzXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjk0OCwxMy4xNzlsLS42ODMtNS4zNzNBMTQuNTg4LDE0LjU4OCwwLDAsMCw3Ljc3Myw5LjM3OWwxLjc0LDQuNDJhNy41MTgsNy41MTgsMCwwLDEsMS40MzUtLjYxOVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk04Ljg2LDE0LjIwNiw2LjQ3NCwxMC41MTFjLS40NTMuNDQtLjc5LjgyLTEuMDA2LDEuMDc0cS0uMjI3LjI2Ny0uNDM2LjUzOEw3LjQ4LDE1LjM4N2E4Ljg3LDguODcsMCwwLDEsMS4zOC0xLjE4MlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjA0NiwxNS44NzUsNC4zMzUsMTMuMTEyYTE0LjI1OSwxNC4yNTksMCwwLDAtMS4yNSwyLjQyOWwzLjAwNywxLjcxYTkuODI2LDkuODI2LDAsMCwxLC45NTQtMS4zNzZcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNNS41MjcsMTguMzkzbC0yLjc3LTEuOTQ1YTE1LjQ1MiwxNS40NTIsMCwwLDAtLjYzLDIuODNsMi45MDYuNjA3YTEwLjM0MywxMC4zNDMsMCwwLDEsLjQ5NC0xLjQ5MlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk00LjgzMywyMC45YTEwLjY4NCwxMC42ODQsMCwwLDAtLjEsMkgyLjA5M2ExNC4zMzMsMTQuMzMzLDAsMCwxLS4wNjQtMi41NzNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2kpXFxcIi8+PHBhdGggZD1cXFwiTTIyLjU1MSwxMi40NzgsMTQuNzUxLDIzLjFBMS41NDQsMS41NDQsMCwwLDEsMTcuNSwyNC40MjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAyMSwyNS41MjJhMS41NDQsMS41NDQsMCwxLDEsMS4wOTItLjQ1MkExLjUzMywxLjUzMywwLDAsMSwxNi4wMjEsMjUuNTIyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzY0NjQ2NFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zMDgsMjMuOTc4YTEuMjg3LDEuMjg3LDAsMSwxLS4zNzctLjkxQTEuMjgzLDEuMjgzLDAsMCwxLDE3LjMwOCwyMy45NzhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2spXFxcIi8+XCIsXG5cdFwiUGFzY2FsXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTZcXFwiIHkxPVxcXCItMC40NDNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjIyLjA0MlxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZjBjMTVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YTBjMGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2RlbHBoaTwvdGl0bGU+PGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTRcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTQ1LDE2LjI0M0g0LjkyNGEuOTE0LjkxNCwwLDAsMC0xLjA5Mi44MnEuMDMzLjQyOS4xLjg0OWExMi40LDEyLjQsMCwwLDAsMjQuNTMyLDBxLjA3NS0uNS4xMDgtMS4wMjFDMjguNDc4LDE2LjUyMywyOC4yMTEsMTYuMjA3LDI3LjU0NSwxNi4yNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2NDQzXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTguNDggMTEuNjQgMjMuNzA3IDcuMjY2IDE5Ljc4NyA1Ljg4IDE2IDExLjA1M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjE1LjY4IDExLjAyNiAxOC42NCA1Ljg4IDE0Ljg1MyA1Ljg4IDEzLjMwNyAxMS4yOTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMy4wNCAxMS4zNzMgMTMuNiA2LjcwNiAxMC41ODcgNy45NiAxMS4wMTMgMTIuNzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMC43NDcgMTMgOS43ODcgOC43NiA3LjcwNyAxMC44NCA5LjY1MyAxNC42OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMzg3IDE1LjA1MyA3LjQ5MyAxMi4zNzYgNi42NCAxNC40NjYgOS4wNCAxNi41MTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjA0IDE2Ljc1NyA2LjY0IDE1LjIxMyA2LjQ4IDE3LjQgOS4yIDE4LjMzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMjI3IDE4Ljg0NiA2LjY0IDE4LjA0IDcuMjI3IDE5LjggOS41NDcgMTkuOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuNzA3IDIwLjA5MyA3LjcwNyAyMC4zODYgOC42MjcgMjEuNzQ2IDEwLjI2NyAyMVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMjMsMTMuMDg5YTYuNjEsNi42MSwwLDAsMC00LjUzLTJBNi4yOTMsNi4yOTMsMCwwLDAsMTEuMywyMi4wN2w0Ljk0MS4xMjktMi4wOC00LjE2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41LDIyLjM2NmwtNS4yNjctLjEzOC0uMDQ0LS4wMzlhNi40NTMsNi40NTMsMCwwLDEsNC4zLTExLjI2NCw2Ljc4Nyw2Ljc4NywwLDAsMSw0LjY0MywyLjA1bC4xMjMuMTIzLTUuOSw0Ljk4MlptLTUuMTQtLjQ1NSw0LjYxNi4xMjFMMTMuOTYxLDE4bDUuODI1LTQuOTE5YTYuNDMsNi40MywwLDAsMC00LjI5Mi0xLjgzNSw2LjEzMyw2LjEzMywwLDAsMC00LjEzMSwxMC42NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTEyLjAxMywyMC40OTNjLTQuMTczLTUuODEzLDIuMTA5LTguMTcyLDIuNDc4LTguNDUzLjQ1MS0uMzQ0LTcuNTksMS43ODUtMy4yMjYsOC44OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMDRlMzE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjcyIDEyLjYgMTMuNTIgMTcuNTY3IDEzLjczMyAxOC41NzMgMjEuNDY3IDE3LjAyNiAyMC43MiAxMi42XFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTEzLjYxLDE4Ljc2MSwxMy4zNDEsMTcuNWw3LjQ5NS01LjE3LjgxNCw0LjgyOFptLjA4OS0xLjEyMy4xNTguNzQ3TDIxLjI4MywxNi45LDIwLjYsMTIuODc0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43MjMsMjEuMzE5Yy0zLjkzLS42NjgtNC4yODMuNDI4LTQuMjgzLjQyOEwxMC4yNjcsMjQuNDRzMS4xMi0uOTA3LDUuNDkzLDBsLjc2LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2RkMGMxMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMjIsMjEuNmMtLjAyLS4yLTEuMS0uMzE5LTEuNjc3LS4xMjMtLjczMi4yNDktMS4yMTksMS4xNDItMS4wNDUsMS4yMTNhMS45NzUsMS45NzUsMCwwLDEsMS4xMjUtLjk4NkMxMy40NDcsMjEuNDkzLDE0LjE0MiwyMS44LDE0LjEyMiwyMS42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmNmU0ZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS41MiwxOC42MDZhMTEuMSwxMS4xLDAsMCwwLDEuNTQ3LDEuNDg3LDYuOSw2LjksMCwwLDEsMi43Miw0LjEwN2MtLjEwNywxLjA2Ny0xLjk3MywxLjc2LTEuOTczLDEuNzZsLTMuMzA3LTcuMTk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy43MywyNi4xNjFsLTMuNDU3LTcuNTIxLDEuMzItLjIwOC4wNTcuMDgxYTEwLjg2OSwxMC44NjksMCwwLDAsMS41MTIsMS40NTEsNyw3LDAsMCwxLDIuNzgyLDQuMjA3bDAsLjAyMiwwLC4wMjJjLS4xMTUsMS4xNTMtMiwxLjg2NC0yLjA3NywxLjg5NFptLTIuOTktNy4yNywzLjE1NSw2Ljg2M2MuNDE0LS4xNzgsMS42My0uNzYzLDEuNzMtMS41NDhhNi43OTMsNi43OTMsMCwwLDAtMi42NDgtMy45ODFsLS4wMS0uMDA3YTExLjk0LDExLjk0LDAsMCwxLTEuNTE3LTEuNDM5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yOCwxMi43NDJjLjAyNS4zOTQuMDM0Ljc5Mi4wMjUsMS4xOTRhMTMuOTQ2LDEzLjk0NiwwLDAsMS0xOS45LDEyLjNBMTIuODYsMTIuODYsMCwwLDAsMjgsMTIuNzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0yLjM4MywxMy44OTNBMTMuOTQxLDEzLjk0MSwwLDAsMSwyNS43LDUuODNzLTUuMDA5LDUuOTc5LTEwLjU4NCw3LjkwN1MyLjM4MywxMy44OTMsMi4zODMsMTMuODkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0zLjYxOCwxOC42OTRjLS4wNDQtLjM5Mi0uMDcyLS43OS0uMDgzLTEuMTkxQzMuMzI5LDkuODA3LDEwLjAxMiw0LjIsMTcuNzA4LDMuOTkxYTE0LjIsMTQuMiwwLDAsMSw1LjcxOSwxLjQ1OCwxMy4xMjgsMTMuMTI4LDAsMCwwLTcuMTg4LTIuMzY5Yy03LjEuMTktMTMuMzA2LDUuMy0xMy4xMTYsMTIuNEExMi44NzMsMTIuODczLDAsMCwwLDMuNjE4LDE4LjY5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYWUwZGY7ZmlsbC1ydWxlOmV2ZW5vZGQ7b3BhY2l0eTowLjJcXFwiLz5cIixcblx0XCJQZXJsXCI6IFwiPHBhdGggZD1cXFwiTTI5LjI1LDEzLjhhNi44ODgsNi44ODgsMCwwLDAtLjc0Mi0yLjI2OCwxLjAxMSwxLjAxMSwwLDAsMC0uMTcyLS4yMzMsOS40NzEsOS40NzEsMCwwLDEtMS43MjUtMi40LDguNjMyLDguNjMyLDAsMCwwLTEuMzk1LTIuMzgyQTYuOTA2LDYuOTA2LDAsMCwxLDI0LjEsNC42NDQsNC41NzIsNC41NzIsMCwwLDAsMjEuOTksMS43MjdhMS4wMDksMS4wMDksMCwwLDAtLjEtLjA1NCw4Ljg4Niw4Ljg4NiwwLDAsMC0xLjMtLjQ2OCwxLjAyMiwxLjAyMiwwLDAsMC0uMjYzLS4wMzUsMS4wMDksMS4wMDksMCwwLDAtLjIuMDIxLDUuNjA3LDUuNjA3LDAsMCwxLS44MDcuMTA3Yy0uMDUsMC0uMS0uMDA2LS4xNDktLjAwNmEyLjg0MiwyLjg0MiwwLDAsMC0xLjQxNi40NTNjLS4wOTQuMDUyLS4xODguMTA2LS4yODQuMTQ5cS0uMDQxLjAxOC0uMDc4LjAzOUExLjYzNywxLjYzNywwLDAsMSwxNy4wNjYsMmEzLjEwOSwzLjEwOSwwLDAsMC0uNzcyLjE5NCwxLDEsMCwwLDAtLjUwOC40ODMsMi4xODQsMi4xODQsMCwwLDEtLjQ2OS41QTQuMzgyLDQuMzgyLDAsMCwwLDE0LjU1NSw0YS45NjQuOTY0LDAsMCwwLS4xMTYuMjM0LDQuNjg3LDQuNjg3LDAsMCwxLTEuNTc0LDIuMiw2LjQ3MSw2LjQ3MSwwLDAsMC0uOC42MTMsMi43MzQsMi43MzQsMCwwLDAtLjYyNy0xLjYzNGMtLjAxNy0uMDE5LS4wMzUtLjAzOC0uMDUzLS4wNTZsMC0uMDE0YTIuMzc4LDIuMzc4LDAsMCwwLS4xMzUtLjU4NiwxLDEsMCwwLDAtLjEzMi0uMjM2QTUuMTY3LDUuMTY3LDAsMCwwLDkuNTExLDMuMTEzYS45ODguOTg4LDAsMCwwLS4zNDYtLjExOSwxLjUsMS41LDAsMCwxLS4xNDgtLjA3NywyLjA2LDIuMDYsMCwwLDAtMS0uMzExLDEuNDc2LDEuNDc2LDAsMCwwLS42ODEuMTY2Ljk4Ny45ODcsMCwwLDAtLjI3NC4yMDYsMS4zMjgsMS4zMjgsMCwwLDEtLjEyNS4wNjMsMS45LDEuOSwwLDAsMC0uOTA4Ljc3OCwyLjUzOSwyLjUzOSwwLDAsMC0uNTQxLjEwNiwxLjY1NiwxLjY1NiwwLDAsMS0uMzgzLjA1NywyLjMsMi4zLDAsMCwwLTEuNS41NDVsLS4xMDYuMWEyLjUzMywyLjUzMywwLDAsMC0xLDIuNTI1LDEuMDgsMS4wOCwwLDAsMCwuMDY4LjE2NUEyLjI5NCwyLjI5NCwwLDAsMCw0LjQ0Niw4LjQ3OGMtLjEuMjM4LS4yLjQ3My0uMzE0LjdhMS4wMDksMS4wMDksMCwwLDAtLjA4Ny4yOTNBMTEuMDUyLDExLjA1MiwwLDAsMCw0LDEyLjAzOWMwLC4wMiwwLC4wNC4wMDcuMDZhNS4yNzgsNS4yNzgsMCwwLDEsLjA0MS41NDcsMi45MjYsMi45MjYsMCwwLDAsLjkzMSwyLjRjLjAxNy4wMTQuMDM0LjAyNi4wNTIuMDM5bC4wMDguMDMxYTIuOCwyLjgsMCwwLDAsLjE1MS40NDcsMS4xODUsMS4xODUsMCwwLDAsLjYzMi42MTcsMS4yODksMS4yODksMCwwLDAsLjI0OC41NzEsMSwxLDAsMCwwLC4zMzIuMjc5LDIuNDUzLDIuNDUzLDAsMCwwLC40NjUuMTc2bC4wNjQuMDE4YS45NzYuOTc2LDAsMCwwLC4xOTIuMTcxQTUuODc5LDUuODc5LDAsMCwxLDcuODczLDE4YTEuMTMsMS4xMywwLDAsMCwxLjM1MS40MjcsMS41LDEuNSwwLDAsMCwuNzY1LjIxNSwxLjQyMSwxLjQyMSwwLDAsMCwuNjI0LS4xNDVsLjExNC0uMDI2Yy4wMjQuNDA4LjAzMy44MTcuMDI4LDEuMjIzYTEuMDQzLDEuMDQzLDAsMCwwLC4wMjYuMjQyLDEwLjc0NCwxMC43NDQsMCwwLDEsLjI2NiwxLjgyOC45MzEuOTMxLDAsMCwwLC4wMzEuMiw4LjQ5Miw4LjQ5MiwwLDAsMSwuMjY4LDEuODE1YzAsLjAzMSwwLC4wNjMuMDA4LjA5NGE2LjA4Myw2LjA4MywwLDAsMS0uNjEsMy41NzUuOTk0Ljk5NCwwLDAsMC0uMDg5LjI2MSwxLjA5MywxLjA5MywwLDAsMC0uMjM0LjA3OWwtLjA1LjAyMmEyLjAxMywyLjAxMywwLDAsMC0xLjIsMS4wNjUsMS4zMjIsMS4zMjIsMCwwLDAsLjA3NCwxLjA1NCwxLDEsMCwwLDAsLjMyNC4zNzEsMy41NDcsMy41NDcsMCwwLDAsMy41MDkuMywxLjU0NiwxLjU0NiwwLDAsMCwuODI5LTEuNjUzbC0uMDA1LS4wNjdhLjk4OS45ODksMCwwLDAsLjA1Ni0uMTU4LDExLjE4NiwxMS4xODYsMCwwLDAsLjI4OC0yLjA2OCw4LjkzOSw4LjkzOSwwLDAsMSwuMjU5LTEuODIyLDQuNzI3LDQuNzI3LDAsMCwwLC4zODktMS41ODhsLjA0Mi4wNDhhMTIuNjYxLDEyLjY2MSwwLDAsMCwxLjI1NSwxLjEyOSwxMC4zLDEwLjMsMCwwLDEsMS4xLjk4OWwtLjAxMS4wMzhhLjUzMi41MzIsMCwwLDEtLjM0Mi4zNTlsLS4wNDkuMDE3YTEuOTIxLDEuOTIxLDAsMCwwLTEuMTg0LDEuMzM0LDEuMzEzLDEuMzEzLDAsMCwwLC40NTIsMS4yMzQsMSwxLDAsMCwwLC40NDEuMjIyLDQuOTA4LDQuOTA4LDAsMCwwLDIuNzM1LS4xODEsMS41NTYsMS41NTYsMCwwLDAsLjI2Ni0uMTI0LDEuNDExLDEuNDExLDAsMCwwLC45Ny4zNzIsMi4zMjYsMi4zMjYsMCwwLDAsMS0uMjc0Yy4wNDktLjAyMy4xLS4wNDUuMTQtLjA2MmExLDEsMCwwLDAsLjYzNy0uODY0LDQuNTUzLDQuNTUzLDAsMCwwLS40NjgtMi4zNDMsMS41NiwxLjU2LDAsMCwwLS41MS0uNiwxMC44LDEwLjgsMCwwLDEsMS4zLTIuMTUsMi4xOTMsMi4xOTMsMCwwLDAsLjQ1MS0yLjAyNiwyLjUxOSwyLjUxOSwwLDAsMS0uMDQzLS4zOTQsMS4wNDYsMS4wNDYsMCwwLDAsMC0uMTQ4LDUuNzU2LDUuNzU2LDAsMCwxLC4wMTItMS4yNzksNy4xNjEsNy4xNjEsMCwwLDAsLjk1MSwxLjc5Myw3Ljg5Miw3Ljg5MiwwLDAsMSwuMTMzLDEuMSwxMC43MzMsMTAuNzMzLDAsMCwwLC4xMzMsMS4xODYsOS4zNiw5LjM2LDAsMCwxLS4yMjQsMy45LDEsMSwwLDAsMC0uMDMyLjM0aDBhLjk4Ljk4LDAsMCwwLS4xLjE3OSwyLjIzOCwyLjIzOCwwLDAsMC0uMzEyLDEuMjM1LDEuMDA3LDEuMDA3LDAsMCwwLC4wMzkuMiwxLjMxNSwxLjMxNSwwLDAsMCwxLjMyOC45NjNjLjA4NiwwLC4xNzctLjAwNi4yNjgtLjAxNGwuMDE5LDAsLjAzOC4wMTNhMi4xMDksMi4xMDksMCwwLDAsMi41MTctMS4wODgsMSwxLDAsMCwwLC4wNTgtLjczNSw1LjI4NSw1LjI4NSwwLDAsMS0uMjA4LTEuMDI3LDEuMDExLDEuMDExLDAsMCwwLS4wNDYtLjIxNyw2LjQ3LDYuNDcsMCwwLDEtLjIyMS0zLjIyLDEuMTEyLDEuMTEyLDAsMCwwLC4wMTUtLjExNCwzLjkwNywzLjkwNywwLDAsMSwuMDc0LS40NDMsMi43MzgsMi43MzgsMCwwLDAtLjE5My0yLjEsNC4zMzksNC4zMzksMCwwLDEsLjAyMS0uNDc2Yy4wMTEtLjE0Ny4wMjMtLjMuMDI3LS40NjNhMS41OSwxLjU5LDAsMCwwLC44NjItLjg1MSwxMi44MywxMi44MywwLDAsMCwuOTQ3LTIuMjMsMS43MTksMS43MTksMCwwLDAsLjE3Mi0xLjE4NSwxLjIzNCwxLjIzNCwwLDAsMCwuMTExLS4yNTFBMS40NjcsMS40NjcsMCwwLDAsMjkuMjUsMTMuOFpNMTguODYzLDIyLjc2OGMtLjAyNiwwLS4wNTMtLjAwOC0uMDgtLjAxbC0uMDI0LDBhMi43NDgsMi43NDgsMCwwLDEtLjIzNi0uMzIzYy0uMDU5LS4wODgtLjExOC0uMTc1LS4xNzgtLjI1OGEyLjI1MywyLjI1MywwLDAsMCwuMjA4LS4yMzQsMS4yNTUsMS4yNTUsMCwwLDAsLjYyOS0uMzIxQTMuMTg2LDMuMTg2LDAsMCwxLDE4Ljg2MywyMi43NjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWRlZGVkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyLjNjLS41NDgtLjA2NS0uOTYxLjMtMS40MTkuNTA2LS4zNjguMjA2LS44MTUuMTUyLTEuMTg1LjMwOS0uMjgyLjU3OS0uOTQxLjkwOC0xLjMsMS40NDNhNS43LDUuNywwLDAsMS0xLjk0MiwyLjY5NCw1LjQ2NCw1LjQ2NCwwLDAsMC0yLjM2OCwzLjM5NGMtLjE0NS4zLS4xMjIuNzQ2LS4yNzcsMS0uNTExLjE0My0uMjM5LS41MTYtLjMtLjgyNS0uMDc0LS40Ny4zNDEtLjc3LjM3My0xLjIyNmExLjgzNCwxLjgzNCwwLDAsMCwuMjA5LTEuMDUzYy0uMDU2LS44MTQuMTg5LTEuODA3LS4zOTMtMi40NzctLjM0OS0uMi0uMjM5LS42MjMtLjM2Ni0uOTQ3YTQuMjE0LDQuMjE0LDAsMCwwLTEuMy0xLjEzOWMtLjQxOS0uMDQxLS44MDYtLjU0Mi0xLjIzMi0uMzIzLS4yNjYuMzA5LS43NjMuMzA1LS45MjIuNzEzLS4xLjUxNi0uNjg4LjM3NC0xLjA2OC41LS40ODguMTg1LTEuMTE4LjAwNi0xLjUxOC4zODItLjQxMS40MS0xLjAzNC45NjEtLjgzNSwxLjYwNi40NTcuODgyLDEuNjQ1LjQzOCwyLjMxNy45NzRBMTcuOTksMTcuOTksMCwwLDEsNS4wMzYsOS42MWExMC4wNTEsMTAuMDUxLDAsMCwwLS4wNDQsMi4zMzJjLjEyMy43NzMtLjA4MywxLjc3Mi42MDYsMi4zMTkuMzguMTM3LjM1Ny41NzIuNS44ODcuMTM0LjI5LjQyNy0uMTEzLjU0My4xOTMuMzM4LjE4NC4wMzcuNTYxLjIyLjguMjYzLjEzNy42MzkuMTI4LjgyMi40MjZhNi44NDQsNi44NDQsMCwwLDEsLjk3NS44MDZjLjIzLjQ2Ny41MzEtLjQ1NC43ODMtLjEwOS4xNy4yODUuNTA2LjUyMi44MTkuMjg1YTIuOTkzLDIuOTkzLDAsMCwwLDEuMzI0LS41NTYsMTguMDMzLDE4LjAzMywwLDAsMSwuMTcxLDIuNzE4LDExLjczMywxMS43MzMsMCwwLDEsLjI5LDIsOS40MDksOS40MDksMCwwLDEsLjMsMi4wMyw3LjExMSw3LjExMSwwLDAsMS0uNzA5LDQuMTYsMS4wMTIsMS4wMTIsMCwwLDEtLjgwNy44Yy0uMjkxLjEzLS45LjM2Ni0uNjkyLjc3NmEyLjU0OSwyLjU0OSwwLDAsMCwyLjUyLjIxNGMuNTEtLjI0My4wNzMtLjg1OC4zMzQtMS4yMjYuMzQzLTEuMy4xNzQtMi42OTEuNTc1LTMuOTg1YTMuNzYyLDMuNzYyLDAsMCwwLC4zLTIuMWMuMDc5LS40NC0uMTA1LS45NjkuMTg3LTEuMzI5YTEuODEzLDEuODEzLDAsMCwxLC40ODMtMS4yLDE0Ljc2MiwxNC43NjIsMCwwLDAsLjE0NC0yLjAyNiwzLjIxNCwzLjIxNCwwLDAsMSwxLjI2Ny0uMTI3Yy4wMTguMzc1LS4yNzIuODEyLS4xOSwxLjIzNEExLjk0OCwxLjk0OCwwLDAsMSwxNS41LDIwLjNhMi44NDksMi44NDksMCwwLDAsLjE2OCwyLjMwOGMuNzgyLjgzOSwxLjgsMS40MzIsMi41MzYsMi4zMjcuMzE0LjIwNS4yLjUxNy4wMzguNzg0YTEuNTI4LDEuNTI4LDAsMCwxLS45ODcsMS4wMzRjLS4zMDguMTIxLS44MDYuNTY2LS40NDIuODgyYTMuOTA2LDMuOTA2LDAsMCwwLDIuMTc4LS4xNDRjLjQ3Ni0uMTcxLjMtLjczOC40ODgtMS4wODguMy4yMzMuNDIzLjc2NS43MTEsMS4wNjkuMy40MzMuODA3LjA3MywxLjE1Ni0uMDYyYTMuNTQ5LDMuNTQ5LDAsMCwwLS4zNzItMS44NDJjLS4xNjctLjM3OC0uOC0uMzg1LS43Ny0uODUyYTExLjc2MSwxMS43NjEsMCwwLDEsMS43MTItM2MuNTEtLjQ3OS4xMy0xLjE5MS4xNTgtMS44QTYuNzY1LDYuNzY1LDAsMCwxLDIzLjE1OCwxNS41YTE1Ljg4OSwxNS44ODksMCwwLDAsLjY5MiwyLjE0LDYuMjMsNi4yMywwLDAsMCwxLjEsMi4yNDZjLjIzNy44MTEuMTc2LDEuNzEuMzMxLDIuNTUxYTEwLjQ0LDEwLjQ0LDAsMCwxLS4yNDIsNC4zNDdjLjA0LjUxOC0uNDU3LjktLjQxNSwxLjQwOC4xNC40NjkuNy4wOTMuOTkuMjlhMS4xMSwxLjExLDAsMCwwLDEuMzI0LS41NzIsNi4yMTIsNi4yMTIsMCwwLDEtLjI0Ny0xLjIyMyw3LjQ1NCw3LjQ1NCwwLDAsMS0uMjU1LTMuNzE5Yy4wNDYtLjY2OS40NTctMS41LS4wNzMtMi4wNzItLjE0OC0uNjE5LjEtMS4yODUtLjA0OS0xLjkxNWExMi44NzcsMTIuODc3LDAsMCwxLS4xMjItNC45MzNjLjA5My0uMjI3LjAxMy0uNjQ5LjI0Ny0uNzc1YTEuODUxLDEuODUxLDAsMCwxLC4zMTUsMS4yMzIsMy43LDMuNywwLDAsMSwuMDc5LDIuMDgxYy0uNDI0LjUzMS0uMTYzLDEuMjQ4LS4xMDksMS44NS4wNjguNDIyLjUxNi4xMTguNTg5LS4xNDRhMTEuODUxLDExLjg1MSwwLDAsMCwuOTQ0LTIuMjQxYy4yNjktLjM1Ni4wMTQtLjc3LDAtMS4xNDIuNDEzLS4wNDkuMjU2LS41MDYuMDM1LS43YTUuOTMsNS45MywwLDAsMC0uNjY3LTIuMiwxMC40NjQsMTAuNDY0LDAsMCwxLTEuOTQxLTIuNzIzYy0uNTI4LTEuNjM5LTIuMDQyLTIuNzI2LTIuNTU2LTQuMzc5YTMuNTU2LDMuNTU2LDAsMCwwLTEuNjUyLTIuMzE3QTcuODgxLDcuODgxLDAsMCwwLDIwLjMyLDIuMTcsNi41LDYuNSwwLDAsMSwxOS4yODksMi4zWm0uNCwxNC42NmEzOC45MDcsMzguOTA3LDAsMCwxLC41LDQuMjkxLDQuMTc1LDQuMTc1LDAsMCwxLS43NiwyLjUxN2MtLjEyLjQyNS0uNDg2LjAxMi0uNzUxLS4wMTYtLjY0My0uMDE4LS44ODItLjY4My0xLjIzMi0xLjEwNy0uMzYtLjM0NC0uMS0uOC4xMzMtMS4xMzEuMjUyLS4xNzkuMzUtLjU3OS43MDgtLjU0OC40LS4wMDcuMzE2LS40ODcuMjYtLjc0My4yMzgtLjM2Mi4wOTItLjg5Mi4zMjgtMS4yODMuNDE5LS4xODIuMjk0LS44Mi40NDItMS4xOC4xMTUtLjI1Ni4wMTctLjc0OS4zMzQtLjg1NC4wMzctLjAwNi4wNDkuMDEyLjA0Mi4wNTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojM2EzYzViXFxcIi8+XCIsXG5cdFwiUEhQXCI6IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiLTE2LjExNFxcXCIgY3k9XFxcIjIwLjUzMlxcXCIgcj1cXFwiMTguMzg0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI2LjUyIC05LjMwNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzRjNmI5NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzIzMWYyMFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcGhwPC90aXRsZT48ZWxsaXBzZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcng9XFxcIjE0XFxcIiByeT1cXFwiNy4zNjVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcng9XFxcIjEzLjQ1M1xcXCIgcnk9XFxcIjYuODE4XFxcIiBzdHlsZT1cXFwiZmlsbDojNjI4MGI2XFxcIi8+PHBhdGggZD1cXFwiTTE4LjcyNSwxOC4ybC42NjctMy40MzRhMS43NTIsMS43NTIsMCwwLDAtLjM3Mi0xLjcxOSwyLjkyOSwyLjkyOSwwLDAsMC0yLS41MjVIMTUuODY3bC4zMzEtMS43YS4yMTkuMjE5LDAsMCwwLS4yMTUtLjI2aC0xLjZhLjIxOS4yMTksMCwwLDAtLjIxNS4xNzdsLS43MDksMy42NDZhMi4wNTEsMi4wNTEsMCwwLDAtLjQ3Ny0xLjA1NCwyLjc4MywyLjc4MywwLDAsMC0yLjItLjgwN0g3LjdhLjIxOS4yMTksMCwwLDAtLjIxNS4xNzdsLTEuNDM0LDcuMzhhLjIxOS4yMTksMCwwLDAsLjIxNS4yNkg3Ljg2OWEuMjE5LjIxOSwwLDAsMCwuMjE1LS4xNzdsLjM0Ny0xLjc4NWgxLjJhNS4xNjcsNS4xNjcsMCwwLDAsMS41NjgtLjIsMy4wNjgsMy4wNjgsMCwwLDAsMS4xNS0uNjg5LDMuNTM4LDMuNTM4LDAsMCwwLC42OC0uODQ0bC0uMjg3LDEuNDc1YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZoMS42YS4yMTkuMjE5LDAsMCwwLC4yMTUtLjE3N2wuNzg3LTQuMDUxaDEuMDk0Yy40NjYsMCwuNi4wOTMuNjQuMTMzcy4xLjE2NS4wMjUuNTY5bC0uNjM1LDMuMjY1YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZoMS42MkEuMjE5LjIxOSwwLDAsMCwxOC43MjUsMTguMlpNMTEuMzMsMTUuMzY2YTEuNzQ5LDEuNzQ5LDAsMCwxLS41NjEsMS4wOTIsMi4xNzEsMi4xNzEsMCwwLDEtMS4zMTUuMzIxSDguNzQybC41MTUtMi42NTFoLjkyMWMuNjc3LDAsLjk0OS4xNDUsMS4wNTkuMjY2QTEuMTgxLDEuMTgxLDAsMCwxLDExLjMzLDE1LjM2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNTQ2LDEzLjMzMmEyLjc4MywyLjc4MywwLDAsMC0yLjItLjgwN0gyMC4yNTVhLjIxOS4yMTksMCwwLDAtLjIxNS4xNzdsLTEuNDM0LDcuMzhhLjIxOS4yMTksMCwwLDAsLjIxNS4yNmgxLjYwOGEuMjE5LjIxOSwwLDAsMCwuMjE1LS4xNzdsLjM0Ny0xLjc4NWgxLjJhNS4xNjcsNS4xNjcsMCwwLDAsMS41NjgtLjIsMy4wNjgsMy4wNjgsMCwwLDAsMS4xNS0uNjg5LDMuNDI1LDMuNDI1LDAsMCwwLDEuMDc2LTEuOTI3QTIuNTEyLDIuNTEyLDAsMCwwLDI1LjU0NiwxMy4zMzJabS0xLjY2NywyLjAzNGExLjc0OSwxLjc0OSwwLDAsMS0uNTYxLDEuMDkyQTIuMTcxLDIuMTcxLDAsMCwxLDIyLDE2Ljc3OEgyMS4yOWwuNTE1LTIuNjUxaC45MjFjLjY3NywwLC45NDkuMTQ1LDEuMDU5LjI2NkExLjE4MSwxLjE4MSwwLDAsMSwyMy44NzksMTUuMzY2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4xNzgsMTMuOTA4YTEuNjQ1LDEuNjQ1LDAsMCwxLDEuMjIxLjMzOCwxLjM0LDEuMzQsMCwwLDEsLjE0NSwxLjE2MSwxLjk0NSwxLjk0NSwwLDAsMS0uNjQyLDEuMjIzQTIuMzYxLDIuMzYxLDAsMCwxLDkuNDU0LDE3SDguNDc2bC42LTMuMDg5Wk02LjI2MSwyMC4xMjRINy44NjlsLjM4MS0xLjk2Mkg5LjYyN2E0LjkzMSw0LjkzMSwwLDAsMCwxLjUtLjE5MSwyLjg0LDIuODQsMCwwLDAsMS4wNy0uNjQyLDMuMjA3LDMuMjA3LDAsMCwwLDEuMDEtMS44MDgsMi4zLDIuMywwLDAsMC0uMzg1LTIuMDQ0LDIuNTY4LDIuNTY4LDAsMCwwLTIuMDM1LS43MzJINy43WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMDAwNFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4zODcsMTAuNzgyaDEuNkwxNS42LDEyLjc0NGgxLjQyMWEyLjc2NywyLjc2NywwLDAsMSwxLjg1LjQ2OCwxLjU0OCwxLjU0OCwwLDAsMSwuMzA1LDEuNTE2bC0uNjY3LDMuNDM0SDE2Ljg5bC42MzUtMy4yNjVhLjg4Ni44ODYsMCwwLDAtLjA4LS43NiwxLjEyMSwxLjEyMSwwLDAsMC0uOC0uMkgxNS4zN2wtLjgyMiw0LjIyOGgtMS42WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMDAwNFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi43MjcsMTMuOTA4YTEuNjQ1LDEuNjQ1LDAsMCwxLDEuMjIxLjMzOCwxLjM0LDEuMzQsMCwwLDEsLjE0NSwxLjE2MSwxLjk0NSwxLjk0NSwwLDAsMS0uNjQyLDEuMjIzQTIuMzYxLDIuMzYxLDAsMCwxLDIyLDE3aC0uOTc4bC42LTMuMDg5Wk0xOC44MSwyMC4xMjRoMS42MDhsLjM4MS0xLjk2MmgxLjM3N2E0LjkzMSw0LjkzMSwwLDAsMCwxLjUtLjE5MSwyLjg0LDIuODQsMCwwLDAsMS4wNy0uNjQyLDMuMjA3LDMuMjA3LDAsMCwwLDEuMDEtMS44MDgsMi4zLDIuMywwLDAsMC0uMzg1LTIuMDQ0LDIuNTY4LDIuNTY4LDAsMCwwLTIuMDM1LS43MzJIMjAuMjQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMDAwNFxcXCIvPlwiLFxuXHRcIlBML1NRTFwiOiBcIjxwYXRoIGQ9XFxcIk04LjU2MiwxNS4yNTZBMjEuMTU5LDIxLjE1OSwwLDAsMCwxNiwxNi40NDlhMjEuMTU5LDIxLjE1OSwwLDAsMCw3LjQzOC0xLjE5NGMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJWOS43YTEwLjM1NywxMC4zNTcsMCwwLDEtMi4wODQsMS4wNzZBMjIuMjkzLDIyLjI5MywwLDAsMSwxNiwxMi4wNzhhMjIuMzYsMjIuMzYsMCwwLDEtNy44NzktMS4zQTEwLjI4LDEwLjI4LDAsMCwxLDYuMDM3LDkuN3YzLjU1QzYuMDM3LDEzLjcyNCw2LjcsMTQuNTI4LDguNTYyLDE1LjI1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxwYXRoIGQ9XFxcIk04LjU2MiwyMS45NjFhMTUuNjExLDE1LjYxMSwwLDAsMCwyLjYuNzQxQTI0LjksMjQuOSwwLDAsMCwxNiwyMy4xNTVhMjQuOSwyNC45LDAsMCwwLDQuODM4LS40NTIsMTUuNjE0LDE1LjYxNCwwLDAsMCwyLjYtLjc0MWMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJ2LTMuMzlhMTAuNzA2LDEwLjcwNiwwLDAsMS0xLjY5Mi44MjVBMjMuNDksMjMuNDksMCwwLDEsMTYsMTguNzRhMjMuNDksMjMuNDksMCwwLDEtOC4yNzEtMS4zNDgsMTAuODI5LDEwLjgyOSwwLDAsMS0xLjY5Mi0uODI1VjE5Ljk2QzYuMDM3LDIwLjQyNiw2LjcsMjEuMjMxLDguNTYyLDIxLjk2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGM1LjUsMCw5Ljk2My0xLjc0NCw5Ljk2My0zLjg5NFYyMy4yNjlhMTAuNSwxMC41LDAsMCwxLTEuNTM1Ljc2MmwtLjE1Ny4wNjNBMjMuNDg3LDIzLjQ4NywwLDAsMSwxNiwyNS40NDVhMjMuNDIyLDIzLjQyMiwwLDAsMS04LjI3MS0xLjM1MWMtLjA1NC0uMDItLjEwNi0uMDQzLS4xNTctLjA2M2ExMC41LDEwLjUsMCwwLDEtMS41MzUtLjc2MnYyLjgzN0M2LjAzNywyOC4yNTYsMTAuNSwzMCwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjUuODk0XFxcIiByeD1cXFwiOS45NjNcXFwiIHJ5PVxcXCIzLjg5NFxcXCIgc3R5bGU9XFxcImZpbGw6cmVkXFxcIi8+XCIsXG5cdFwiUGxhaW4gdGV4dFwiOiBcIjxwYXRoIGQ9XFxcIk0yMi4wMzgsMkg2LjM3NWExLjc1NSwxLjc1NSwwLDAsMC0xLjc1LDEuNzV2MjQuNUExLjc1NSwxLjc1NSwwLDAsMCw2LjM3NSwzMGgxOS4yNWExLjc1NSwxLjc1NSwwLDAsMCwxLjc1LTEuNzVWNi44NTZabS41MjUsMi44NDQsMS42NjMsMS41MzFIMjIuNTYzWk02LjM3NSwyOC4yNVYzLjc1SDIwLjgxM1Y4LjEyNWg0LjgxM1YyOC4yNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTUuMDk3XFxcIiB3aWR0aD1cXFwiMTMuMDc2XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMjQuNDM5XFxcIiB3aWR0aD1cXFwiOS43NjJcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxOS43NjNcXFwiIHdpZHRoPVxcXCIxNS43NVxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjEwLjIzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPlwiLFxuXHRcIlBsYW50VU1MXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTMzLjQyM1xcXCIgeTE9XFxcIi0yNTAuOTExXFxcIiB4Mj1cXFwiLTMzLjM1M1xcXCIgeTI9XFxcIi0yNTAuODU4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDM3LjEzNCwgMjYuMDAxLCAxMy41NzUsIC0xOS4zODcsIDQ2NzMuNDczLCAtMzk4Mi4wMTkpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzY3Njc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMzIuMTA3XFxcIiB5MT1cXFwiLTI0Mi41NjNcXFwiIHgyPVxcXCItMzIuMDI4XFxcIiB5Mj1cXFwiLTI0Mi41ODZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODEuMDgxLCA1Ni43NzQsIDE3LjMwNiwgLTI0LjcxNSwgNjgwNC4wMjEsIC00MTQ5LjY0NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwMDc5YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi0zMy4yODJcXFwiIHkxPVxcXCItMjQzLjQyM1xcXCIgeDI9XFxcIi0zMy4yMjRcXFwiIHkyPVxcXCItMjQzLjQ1NVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg2MC4wMDMsIDQyLjAxNSwgMzQuMTg0LCAtNDguODIsIDEwMzQzLjAwNSwgLTEwNDY5LjA4NClcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTIuMzU2XFxcIiB5MT1cXFwiMjYuMjY4XFxcIiB4Mj1cXFwiMTQuMDExXFxcIiB5Mj1cXFwiMjYuMjY4XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTk1OTU5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzZlNmU2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNDJcXFwiIHN0b3AtY29sb3I9XFxcIiM4YzhjOGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTRhNGE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU3N1xcXCIgc3RvcC1jb2xvcj1cXFwiI2I1YjViNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NjVcXFwiIHN0b3AtY29sb3I9XFxcIiNiZmJmYmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNjMmMyYzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIjE4LjI5MVxcXCIgeTE9XFxcIjI2LjE3MVxcXCIgeDI9XFxcIjE5Ljk0NlxcXCIgeTI9XFxcIjI2LjE3MVxcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCIyNC40NFxcXCIgeTE9XFxcIjI2LjE3MVxcXCIgeDI9XFxcIjI2LjA5NlxcXCIgeTI9XFxcIjI2LjE3MVxcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9wbGFudHVtbDwvdGl0bGU+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC4zMDUgMTcuODcyIDI3LjE2IDIyLjQxOCAyMS43MiAyNS40OTMgMTQuODYxIDIwLjk5OSAyMC4zMDUgMTcuODcyXFxcIiBzdHlsZT1cXFwiZmlsbDojMWMwYTQyXFxcIi8+PHBhdGggZD1cXFwiTTIxLjcxNiwyNS42MTlsLS4wNTUtLjAzNi03LjAwNS00LjU5LDUuNjUzLTMuMjQ3LDcuMDU2LDQuNjhabS02LjY1LTQuNjEzLDYuNjU4LDQuMzYyLDUuMjMxLTIuOTU3TDIwLjMsMThaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNi40MDEgMTEuOTA5IDI5LjQxOCAxMy41OTIgMjcuMDcgMTUuMDg4IDI0LjIxMyAxMy4yNDcgMjYuNDAxIDExLjkwOVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wNjksMTUuMjE1bC0zLjA1OC0xLjk3LDIuMzg3LTEuNDYsMy4yMjgsMS44Wm0tMi42NTQtMS45NjZMMjcuMDcsMTQuOTYsMjkuMjA4LDEzLjZsLTIuOC0xLjU2NVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQ5OCAxNy44MDcgMjEuMzU0IDIyLjM1NCAxNS45MTQgMjUuNDI5IDkuMDU1IDIwLjkzNSAxNC40OTggMTcuODA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiZDNmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjkxLDI1LjU1NGwtLjA1NS0uMDM2TDguODUsMjAuOTI5LDE0LjUsMTcuNjgxbDcuMDU2LDQuNjhaTTkuMjYsMjAuOTQxLDE1LjkxOCwyNS4zbDUuMjMxLTIuOTU3LTYuNjU0LTQuNDEzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNy45OSAxNy45NjYgMTQuOTU0IDIyLjM2NiA5LjU3NyAyNS41MDQgMi4yMTggMjAuODQ5IDcuOTkgMTcuOTY2XFxcIiBzdHlsZT1cXFwiZmlsbDojYTExZjQwXFxcIi8+PHBhdGggZD1cXFwiTTkuNTc1LDI1LjYyOSwyLDIwLjgzOGw2LTMsNy4xNjQsNC41MjdaTTIuNDM2LDIwLjg2LDkuNTgsMjUuMzc4bDUuMTY4LTMuMDE2TDcuOTg0LDE4LjA4OVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuMTExIDIxLjAyMSA5LjQ0MyAyNS41MTUgOS40NDMgMjkuMDYzIDIuMTExIDI0LjMzMiAyLjExMSAyMS4wMjFcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNOS41NSwyOS4yNiwyLDI0LjM5MVYyMC44MjlMOS41NSwyNS40NTVaTTIuMjE4LDI0LjI3NGw3LjExOCw0LjU5MlYyNS41NzVMMi4yMTgsMjEuMjEzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjQuMDcxIDEzLjM0MyAyNy4wMDkgMTUuMjIyIDI3LjAwOSAyMi4xMzEgMjQuMDcxIDIwLjI0NyAyNC4wNzEgMTMuMzQzXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTI3LjA2MywyMi4yMjlsLTMuMDQ1LTEuOTUzVjEzLjI0NWwzLjA0NSwxLjk0N1ptLTIuOTM4LTIuMDEyLDIuODMxLDEuODE1VjE1LjI1MWwtMi44MzEtMS44MVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI3LjE0OSAyMi41MjYgMjcuMTQ5IDE1LjE5NCAyOS41MTQgMTMuNzc1IDI5LjUxNCAyOS4xNDkgMjguMzMxIDI5LjE0OSA5LjY0NiAyOS4xNDkgOS42NDYgMjUuNjAxIDE1LjA4NiAyMi41MjYgMTUuNzg1IDI1LjYwMSAxNS43OTYgMjUuNjAxIDIxLjQ3MiAyMi41MjYgMjEuODkxIDI1LjYwMSAyMS45NDUgMjUuNjAxIDI3LjE0OSAyMi41MjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNjIxLDI5LjI1Nkg5LjUzOVYyNS41MzhsNS42Mi0zLjE3Ny43LDMuMDgzLDUuNy0zLjA4Ny40MjIsMy4xLDUuMDYxLTIuOTkxVjE1LjEzM2wyLjU4LTEuNTQ4Wk05Ljc1MywyOS4wNDFIMjkuNDA3VjEzLjk2NGwtMi4xNTEsMS4yOXY3LjMzMmwtLjA1My4wMzEtNS4yMjksMy4wOUgyMS44bC0uNDExLTMuMDE0LTUuNTY0LDMuMDE0SDE1LjdsLS42ODYtMy4wMTgtNS4yNiwyLjk3M1pcXFwiLz48cmVjdCB4PVxcXCIxMi4zNTZcXFwiIHk9XFxcIjI1LjQ0XFxcIiB3aWR0aD1cXFwiMS42NTZcXFwiIGhlaWdodD1cXFwiMS42NTZcXFwiIHJ4PVxcXCIwLjIxNVxcXCIgcnk9XFxcIjAuMjE1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEzLjgsMjcuMkgxMi41N2EuMzIyLjMyMiwwLDAsMS0uMzIyLS4zMjJWMjUuNjU1YS4zMjIuMzIyLDAsMCwxLC4zMjItLjMyMkgxMy44YS4zMjIuMzIyLDAsMCwxLC4zMjIuMzIydjEuMjI2QS4zMjIuMzIyLDAsMCwxLDEzLjgsMjcuMlpNMTIuNTcsMjUuNTQ3YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3SDEzLjhhLjEwOC4xMDgsMCwwLDAsLjEwNy0uMTA3VjI1LjY1NWEuMTA4LjEwOCwwLDAsMC0uMTA3LS4xMDdaXFxcIi8+PHJlY3QgeD1cXFwiMTguMjkxXFxcIiB5PVxcXCIyNS4zNDNcXFwiIHdpZHRoPVxcXCIxLjY1NlxcXCIgaGVpZ2h0PVxcXCIxLjY1NlxcXCIgcng9XFxcIjAuMjE1XFxcIiByeT1cXFwiMC4yMTVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuNzMyLDI3LjEwNkgxOC41MDVhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjU1OGEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJoMS4yMjZhLjMyMi4zMjIsMCwwLDEsLjMyMi4zMjJ2MS4yMjZBLjMyMi4zMjIsMCwwLDEsMTkuNzMyLDI3LjEwNlptLTEuMjI2LTEuNjU2YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3aDEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS41NThhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxyZWN0IHg9XFxcIjI0LjQ0XFxcIiB5PVxcXCIyNS4zNDNcXFwiIHdpZHRoPVxcXCIxLjY1NlxcXCIgaGVpZ2h0PVxcXCIxLjY1NlxcXCIgcng9XFxcIjAuMjE1XFxcIiByeT1cXFwiMC4yMTVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjUuODgxLDI3LjEwNkgyNC42NTVhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjU1OGEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJoMS4yMjZhLjMyMi4zMjIsMCwwLDEsLjMyMi4zMjJ2MS4yMjZBLjMyMi4zMjIsMCwwLDEsMjUuODgxLDI3LjEwNlptLTEuMjI2LTEuNjU2YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3aDEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS41NThhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4yMTUsMTEuMjNjLS4wNTIuMDY5LS40MTctLjI2Mi0uNjUzLS41MjZhNC40MDgsNC40MDgsMCwwLDEtLjUxNi0uNzNBMi42LDIuNiwwLDAsMSwyNS43LDkuMmEyLjM1OCwyLjM1OCwwLDAsMS0uMDUyLS42ODIsMi45NTksMi45NTksMCwwLDEsLjEyOS0uNzQ5LDMuMTQyLDMuMTQyLDAsMCwxLC43ODctMS4yMDcsMTUuNTMyLDE1LjUzMiwwLDAsMCwxLjI4My0xLjQsMy4wNjIsMy4wNjIsMCwwLDAsLjQ3OS0uOTI3LDMuOTc5LDMuOTc5LDAsMCwwLC4xNTEtLjg1NWMuMDE5LS4zNjQtLjAyNS0uNTkzLjAyMy0uNjEzcy4yMTUuMjc0LjI4Ny41NjRhMy4xNjcsMy4xNjcsMCwwLDEtLjQ1OCwyLjEsNi45LDYuOSwwLDAsMS0xLjA5NCwxLjQ0OCwyLjgsMi44LDAsMCwwLS44NDksMS4yMzRBMi40NjYsMi40NjYsMCwwLDAsMjYuMyw4LjhhMy40NjUsMy40NjUsMCwwLDAsLjQ3NiwxLjU0MkMyNy4wNjQsMTAuOTE0LDI3LjI1NiwxMS4xNzUsMjcuMjE1LDExLjIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhMmQyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4xOTMsMTEuMjY2Yy0uMTI0LDAtLjQ5Mi0uMzY1LS42NTEtLjU0NGE0LjQ3OCw0LjQ3OCwwLDAsMS0uNTItLjczNCwyLjYyOCwyLjYyOCwwLDAsMS0uMzQ2LS43ODEsMi4zNzUsMi4zNzUsMCwwLDEtLjA1My0uNjksMi45NzgsMi45NzgsMCwwLDEsLjEzLS43NTYsMy4yMDgsMy4yMDgsMCwwLDEsLjc5My0xLjIxNmMuMjk0LS4zMzEuNS0uNTI4LjY1OS0uNjg2YTQuMzkzLDQuMzkzLDAsMCwwLC42MjItLjcxMSwzLjA1MiwzLjA1MiwwLDAsMCwuNDc2LS45MTksMy45NTEsMy45NTEsMCwwLDAsLjE1LS44NDljLjAwOC0uMTU5LDAtLjI5NCwwLS4zOTMsMC0uMTU5LS4wMDYtLjIyNS4wMzgtLjI0M2EuMDUuMDUsMCwwLDEsLjA0MywwLDEuMjI2LDEuMjI2LDAsMCwxLC4yOC41NzksMy4xNjcsMy4xNjcsMCwwLDEtLjQ2LDIuMTIxLDYuOTI4LDYuOTI4LDAsMCwxLTEuMSwxLjQ1M2MtLjA1NS4wNi0uMTA5LjExNi0uMTYyLjE3MWEyLjMsMi4zLDAsMCwwLS42ODEsMS4wNTIsMi40NywyLjQ3LDAsMCwwLS4wODIuNjczLDMuNDU4LDMuNDU4LDAsMCwwLC40NzMsMS41M2MuMTE0LjIzMS4yMTUuNDE1LjI4OS41NDkuMTI5LjIzNS4xNzguMzIzLjE0Mi4zNjloMGEuMDUxLjA1MSwwLDAsMS0uMDQuMDJaTTI4LjUxMiwyLjhhLjg2My44NjMsMCwwLDAsMCwuMTljMCwuMS4wMDcuMjM2LDAsLjRhNC4wMjEsNC4wMjEsMCwwLDEtLjE1Mi44NjEsMy4xMDYsMy4xMDYsMCwwLDEtLjQ4My45MzQsNC40MzcsNC40MzcsMCwwLDEtLjYyOS43MTljLS4xNjIuMTU4LS4zNjQuMzU0LS42NTcuNjgzYTMuMTY4LDMuMTY4LDAsMCwwLS43ODIsMS4yLDIuOTMzLDIuOTMzLDAsMCwwLS4xMjguNzQzLDIuMzI1LDIuMzI1LDAsMCwwLC4wNTIuNjc1LDIuNTksMi41OSwwLDAsMCwuMzQxLjc2Nyw0LjQyMiw0LjQyMiwwLDAsMCwuNTEzLjcyNSwyLjAzNSwyLjAzNSwwLDAsMCwuNjExLjUyNiwxLjE4MywxLjE4MywwLDAsMC0uMTQ3LS4zMWMtLjA3NC0uMTM0LS4xNzUtLjMxOC0uMjktLjU1MUEzLjUsMy41LDAsMCwxLDI2LjI3OCw4LjhhMi41MywyLjUzLDAsMCwxLC4wODQtLjY4OCwyLjM3NSwyLjM3NSwwLDAsMSwuNjk0LTEuMDc1Yy4wNTItLjA1NS4xMDYtLjExMS4xNjEtLjE3MWE2Ljg3OSw2Ljg3OSwwLDAsMCwxLjA5LTEuNDQyLDMuMTE5LDMuMTE5LDAsMCwwLC40NTYtMi4wODNBMS4yODEsMS4yODEsMCwwLDAsMjguNTEyLDIuOFpcXFwiLz48cGF0aCBkPVxcXCJNMjkuOTcyLDYuMDg3Yy0uMDE5LS4wODgtLjQzMi0uMDQtLjc2Ni4wNzNhMi42LDIuNiwwLDAsMC0xLjA1OS43MjIsMi44LDIuOCwwLDAsMC0uOTE2LDEuODU1LDIuOTcyLDIuOTcyLDAsMCwwLC4yNTgsMS4wNmMuMjIxLjU3Mi40NTUuNzczLjQ0NCwxLjIyNS0uMDA3LjMtLjExNC40ODQtLjA0OC41NDlzLjMxNC0uMS40NjItLjMxM2ExLjgsMS44LDAsMCwwLC4yNTktMS4wMjJjLS4wNDYtLjgxNS0uNi0xLjAxNS0uNjA4LTEuOGExLjg1OCwxLjg1OCwwLDAsMSwuMTI5LS42NzZDMjguNTcsNi41MDksMzAuMDA4LDYuMjUyLDI5Ljk3Miw2LjA4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYTJkMmVcXFwiLz48cGF0aCBkPVxcXCJNMjcuOTM0LDExLjYxN2EuMDk0LjA5NCwwLDAsMS0uMDY5LS4wMjZjLS4wNDYtLjA0Ni0uMDMtLjEyMi0uMDA1LS4yMzdhMS43MTgsMS43MTgsMCwwLDAsLjA0NS0uMzMxLDEuMzc0LDEuMzc0LDAsMCwwLS4yMTQtLjcyLDUsNSwwLDAsMS0uMjI4LS40OTUsMi45OCwyLjk4LDAsMCwxLS4yNTktMS4wNywyLjgxLDIuODEsMCwwLDEsLjkyMy0xLjg3NCwyLjY0LDIuNjQsMCwwLDEsMS4wNy0uNzI5LDEuNDgyLDEuNDgyLDAsMCwxLC43NjYtLjFBLjA2NS4wNjUsMCwwLDEsMzAsNi4wODFoMGMuMDE1LjA3LS4wOTIuMTIxLS4zMDYuMjI0YTIuNzMsMi43MywwLDAsMC0xLjU0MiwxLjQ2MywxLjgyNywxLjgyNywwLDAsMC0uMTI3LjY2NywxLjY0NSwxLjY0NSwwLDAsMCwuMjkxLjg4NSwxLjg4OSwxLjg4OSwwLDAsMSwuMzE3LjkxNCwxLjgxNCwxLjgxNCwwLDAsMS0uMjY0LDEuMDM5LjgwOS44MDksMCwwLDEtLjQyMS4zNDJabTEuODg5LTUuNTQ5YTIuMTE3LDIuMTE3LDAsMCwwLS42MDguMTE3LDIuNTg4LDIuNTg4LDAsMCwwLTEuMDQ4LjcxNSwyLjc2NCwyLjc2NCwwLDAsMC0uOTA5LDEuODM3LDIuOTM1LDIuOTM1LDAsMCwwLC4yNTYsMS4wNSw0Ljk1NSw0Ljk1NSwwLDAsMCwuMjI1LjQ5LDEuNDMzLDEuNDMzLDAsMCwxLC4yMi43NDUsMS43NjUsMS43NjUsMCwwLDEtLjA0Ny4zNDFjLS4wMTkuMDkxLS4wMzUuMTYzLS4wMDkuMTg4YS4wNDYuMDQ2LDAsMCwwLC4wMzguMDEuNzY5Ljc2OSwwLDAsMCwuMzgyLS4zMiwxLjc5MywxLjc5MywwLDAsMCwuMjU0LTEuMDA1LDEuODQ0LDEuODQ0LDAsMCwwLS4zMS0uODksMS43MTEsMS43MTEsMCwwLDEtLjMtLjkxMSwxLjg3NywxLjg3NywwLDAsMSwuMTMtLjY4NkEyLjc3NiwyLjc3NiwwLDAsMSwyOS42Nyw2LjI1N2MuMTI2LS4wNjEuMjgzLS4xMzYuMjc3LS4xNjRsLS4wMDgtLjAwN0EuMjY0LjI2NCwwLDAsMCwyOS44MjMsNi4wNjhaXFxcIi8+XCIsXG5cdFwiUG93ZXJRdWVyeVwiOiBcIjxwYXRoIGQ9XFxcIk0zMCwyNS41ODNIMjUuNzU3VjE1LjM3OGE4LjI3MSw4LjI3MSwwLDAsMC0uODMyLTQuMjYxQTMuMDYxLDMuMDYxLDAsMCwwLDIyLjExOCw5LjhhMy4zODMsMy4zODMsMCwwLDAtMi44MjYsMS42NjQsNi43OTEsNi43OTEsMCwwLDAtMS4xNjEsMy45ODdWMjUuNTgzSDEzLjg2OVYxNS4wMzFxMC01LjIzMS0zLjY5NC01LjIzMWEzLjMzMiwzLjMzMiwwLDAsMC0yLjgyNiwxLjU3Myw2LjkzNSw2LjkzNSwwLDAsMC0xLjEwNiw0LjA3OFYyNS41ODNIMlY2Ljg1Nkg2LjI0M1Y5LjgxOGguMDczYTYuNDg4LDYuNDg4LDAsMCwxLDUuOTA3LTMuNCw1LjU2OSw1LjU2OSwwLDAsMSwzLjM5MywxLjA3QTUuMzI4LDUuMzI4LDAsMCwxLDE3LjYsMTAuMjk0YTYuNjgzLDYuNjgzLDAsMCwxLDYuMjE4LTMuODc3UTMwLDYuNDE3LDMwLDE0LjA0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz5cIixcblx0XCJQb3dlclNoZWxsXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMjMuMzI1XFxcIiB5MT1cXFwiLTExOC41NDNcXFwiIHgyPVxcXCI3LjI2XFxcIiB5Mj1cXFwiLTEwNC4xOTNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIC05NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM1MzkxZmVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzZTZkYmZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjcuMVxcXCIgeTE9XFxcIi0xMDQuMDAyXFxcIiB4Mj1cXFwiMjMuMDAxXFxcIiB5Mj1cXFwiLTExOC4yOTJcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcG93ZXJzaGVsbDwvdGl0bGU+PHBhdGggZD1cXFwiTTMuMTc0LDI2LjU4OWExLjE1NCwxLjE1NCwwLDAsMS0uOTI4LS40MjMsMS4yMzQsMS4yMzQsMCwwLDEtLjIxLTEuMDUyTDYuMjMzLDYuNzhBMS44LDEuOCwwLDAsMSw3LjkxNCw1LjQxSDI4LjgyNmExLjE1NywxLjE1NywwLDAsMSwuOTI4LjQyMywxLjIzNSwxLjIzNSwwLDAsMSwuMjEsMS4wNTJsLTQuMiwxOC4zMzVhMS44LDEuOCwwLDAsMS0xLjY4MSwxLjM3SDMuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjkxNCw1LjY0NkgyOC44MjZhLjkxMy45MTMsMCwwLDEsLjkwOCwxLjE4N2wtNC4yLDE4LjMzNGExLjU3NSwxLjU3NSwwLDAsMS0xLjQ1MSwxLjE4N0gzLjE3NGEuOTEzLjkxMywwLDAsMS0uOTA4LTEuMTg3bDQuMi0xOC4zMzRBMS41NzQsMS41NzQsMCwwLDEsNy45MTQsNS42NDZaXFxcIiBzdHlsZT1cXFwiZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE2LjA0LDIxLjU0NGg1LjA4NmExLjExOCwxLjExOCwwLDAsMSwwLDIuMjM0SDE2LjA0YTEuMTE4LDEuMTE4LDAsMCwxLDAtMi4yMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmM1NTkxO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjMzOSwxNi41NzhhMS43NjIsMS43NjIsMCwwLDEtLjU5MS42TDkuMzA5LDIzLjk1M2ExLjIyNCwxLjIyNCwwLDAsMS0xLjQzOC0xLjk3N2w4LjUxMi02LjE2NHYtLjEyNkwxMS4wMzUsMTBhMS4yMjQsMS4yMjQsMCwwLDEsMS43ODItMS42NzJsNi40MTgsNi44MjdBMS4xNjYsMS4xNjYsMCwwLDEsMTkuMzM5LDE2LjU3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyYzU1OTE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMSwxNi4zNDJhMS43NDksMS43NDksMCwwLDEtLjU5LjZMOS4wNzQsMjMuNzE4YTEuMjI1LDEuMjI1LDAsMCwxLTEuNDM5LTEuOTc3bDguNTEzLTYuMTY0VjE1LjQ1TDEwLjgsOS43NjFhMS4yMjQsMS4yMjQsMCwwLDEsMS43ODMtMS42NzJMMTksMTQuOTE2QTEuMTYyLDEuMTYyLDAsMCwxLDE5LjEsMTYuMzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45LDIxLjQxMmg1LjA4NmExLjA1OSwxLjA1OSwwLDEsMSwwLDIuMTE4SDE1LjlhMS4wNTksMS4wNTksMCwxLDEsMC0yLjExOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIiwgIFxuXHRcIlByb2Nlc3NpbmdcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIjNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjI5XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMWM0YzcwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGMyYjQyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9wcm9jZXNzaW5nbGFuZzwvdGl0bGU+PHBhdGggZD1cXFwiTTE1LjkyMiwxOS45NjJhMTMsMTMsMCwwLDEtMS42NDctLjA3N3Y1LjU1MmEyNy43NiwyNy43NiwwLDAsMSwzLjMzMi40NjFWMjlINS45NjhWMjUuOUEyNy45ODgsMjcuOTg4LDAsMCwxLDkuMywyNS40MzhWNi43MTVhMjguMjE1LDI4LjIxNSwwLDAsMS0zLjMzMS0uNDZ2LTMuMUg4Ljk1NUMxMC4xOCwzLjE1MywxMy41NDksMywxNi4yMywzYzYuMzE4LDAsOS44LDIuOTQ4LDkuOCw4QzI2LjAzMSwxNi4wMTgsMjIuMiwxOS45NjIsMTUuOTIyLDE5Ljk2MlpNMTYsNy4wNThjLS42MTMsMC0xLjE0OSwwLTEuNzIzLjAzOHY4LjYxNWE5LjY5NCw5LjY5NCwwLDAsMCwxLjQ1NS4xMTVjMy4wMjUtLjAzOCw1LjEzLTEuNzIzLDUuMTMtNC41MTlDMjAuODYyLDguNywxOS40MDcsNy4wNTgsMTYsNy4wNThaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdFwiUHJvbG9nXCI6IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiMTM0MS4yNVxcXCIgY3k9XFxcIi0zMzk2Ljg2NlxcXCIgcj1cXFwiMTguMjk5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xMzI3LjA3NyAzNDA1LjkzNSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTgxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmJmYmZiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM2NVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VmZWZmMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NTJcXFwiIHN0b3AtY29sb3I9XFxcIiNkYWRiZGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzM4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmViZmMyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgyNFxcXCIgc3RvcC1jb2xvcj1cXFwiI2FlYjBiM1xcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJiXFxcIiBjeD1cXFwiNi42NzhcXFwiIGN5PVxcXCI4NC43NFxcXCIgcj1cXFwiMTUuNTU0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xLjg4NCAtODYuMTU0KSBzY2FsZSgxLjA3MiAxLjE2NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYWZkZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDc5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWVmNWZhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIyXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2ZkZmVjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwN1xcXCIgc3RvcC1jb2xvcj1cXFwiIzlkYmJkNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MzFcXFwiIHN0b3AtY29sb3I9XFxcIiM1ODhhYjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzQ1XFxcIiBzdG9wLWNvbG9yPVxcXCIjMzI2ZmE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc5OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJiNjY5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44OTdcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzRlNzhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTk0XFxcIiBzdG9wLWNvbG9yPVxcXCIjMDAzMTUyXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImNcXFwiIGN4PVxcXCIxMS4yNDFcXFwiIGN5PVxcXCItOS44OTdcXFwiIHI9XFxcIjE2LjU5NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgwIDIyLjYzMSkgc2NhbGUoMSAxLjA2MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ1NDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjY3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWMxYzI0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzc2MDAwMFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJkXFxcIiBjeD1cXFwiMTIuMjg2XFxcIiBjeT1cXFwiMjYuMTI3XFxcIiByPVxcXCIyLjA4M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RkZGZlMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNzRcXFwiIHN0b3AtY29sb3I9XFxcIiNkOWRiZGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzUxXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2RjZmQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2I4YmFiYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YzllOWZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODkxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzg3OTdiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNWU1ZjYxXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImVcXFwiIGN4PVxcXCIxOS4wNjRcXFwiIGN5PVxcXCIyNi4xMjdcXFwiIHI9XFxcIjIuMDgzXFxcIiB4bGluazpocmVmPVxcXCIjZFxcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZlxcXCIgY3g9XFxcIjE1LjQzNFxcXCIgY3k9XFxcIjE2LjE5MVxcXCIgcj1cXFwiMi42ODdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMCAwLjQ2MSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNkXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcHJvbG9nPC90aXRsZT48ZyBzdHlsZT1cXFwiaXNvbGF0aW9uOmlzb2xhdGVcXFwiPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE0XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNi42MDIgMTQuOTIpIHJvdGF0ZSgtNDIuMjY1KVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45MzgsNi4zMDlhOS43ODUsOS43ODUsMCwwLDAtNi41LTIuMzM5QzguNTY0LDMuOTcsMy43NzQsNy43LDMuNDA1LDE0Ljk2MWMtLjQsNy44LDQuNzUsMTIuODYyLDEyLDEyLjg2MiwxMC43MzMsMCwxNi42NzItOS43OCwxMC4wMjctMjAuMzg4LDQuNjcxLDEwLjYtLjUyNywxNy4yNzktNy4yMzYsMTcuMjc5LTUuNDQxLDAtOS42MS0zLjY1MS05LjYxLTEwLjM0NUM4LjU4Miw0LjcwOSwxNS44MjMsNC4wMzksMTkuOTM4LDYuMzA5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMi43LDEwLjQxNWMtLjI5My0uOTQtLjY0NS0yLjc4OC42MzQtMy44NmEzLjcyOSwzLjcyOSwwLDAsMC0zLjg0NCwxLjUzNEE5LjE2NSw5LjE2NSwwLDAsMCwxMiw4LjEsMy43MjksMy43MjksMCwwLDAsOC4xNTIsNi41NTVjMS4zMDksMS4xLjkxLDMuMDA1LjYxNCwzLjkyM0ExMC41MTcsMTAuNTE3LDAsMCwwLDYuMSwxNy41MjRjMCwyLjE3NCwxLjQsNC42NDUsMS42NzUsNy45NTVsMS43NjgtMS41MzJhMTEuNzQzLDExLjc0MywwLDAsMCw2LjIxMiwxLjQzMywxMS43NDEsMTEuNzQxLDAsMCwwLDYuMjEyLTEuNDMzbDEuNzY5LDEuNTMyYy4yOC0zLjMxLDEuNjc1LTUuNzgxLDEuNjc1LTcuOTU1QTEwLjUxMiwxMC41MTIsMCwwLDAsMjIuNywxMC40MTVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjcyMiwyNy44NjdhMS42MjEsMS42MjEsMCwxLDEsMy4yNCwwYzAsLjAxOCwwLC4wMzUsMCwuMDUzYTIuMjM0LDIuMjM0LDAsMSwwLTMuMjI4LjEyNkMxMC43MjUsMjcuOTg3LDEwLjcyMiwyNy45MjcsMTAuNzIyLDI3Ljg2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMjAuNjI5LDI3Ljg2N2ExLjYyMSwxLjYyMSwwLDEsMC0zLjI0LDBjMCwuMDE4LDAsLjAzNSwwLC4wNTNhMi4yMzQsMi4yMzQsMCwxLDEsMy4yMjguMTI2QTEuNjc4LDEuNjc4LDAsMCwwLDIwLjYyOSwyNy44NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC41MzttaXgtYmxlbmQtbW9kZTptdWx0aXBseVxcXCI+PHBhdGggZD1cXFwiTTguMzQ2LDE4LjRjLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3QTEuMzU5LDEuMzU5LDAsMCwxLDYuODA5LDE4LjFhMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMCw4LjM0NiwxOC40WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4wMDgsMTguNzM3Yy0uMTMyLjY2Ny0uOTcyLjg3Ny0uOTcyLjg3N2ExLjM2LDEuMzYsMCwwLDEtLjU2Ni0xLjE4MiwyLjkyOSwyLjkyOSwwLDAsMCwuNDQ0LDEuNzkzQTIuOTI2LDIuOTI2LDAsMCwwLDEwLjAwOCwxOC43MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTguODMzLDIwLjI0OWMtLjEzMi42NjctLjk3MS44NzctLjk3MS44NzdBMS4zNTksMS4zNTksMCwwLDEsNy4zLDE5Ljk0NGEyLjkyOSwyLjkyOSwwLDAsMCwuNDQzLDEuNzkzQTIuOTI1LDIuOTI1LDAsMCwwLDguODMzLDIwLjI0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMTAuNSwyMC41ODNjLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3YTEuMzYsMS4zNiwwLDAsMS0uNTY2LTEuMTgyQTIuOTI5LDIuOTI5LDAsMCwwLDkuNCwyMi4wNzIsMi45MjcsMi45MjcsMCwwLDAsMTAuNSwyMC41ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTkuMzI4LDIyLjEyMWMtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNiwxLjM2LDAsMCwxLS41NjUtMS4xODIsMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMCw5LjMyOCwyMi4xMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTExLjY2NCwxOS4wN2MtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNTksMS4zNTksMCwwLDEtLjU2NS0xLjE4MiwyLjkzLDIuOTMsMCwwLDAsLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMCwxMS42NjQsMTkuMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNTM7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHlcXFwiPjxwYXRoIGQ9XFxcIk0yMy4xNTcsMTguNGMuMTMyLjY2Ny45NzEuODc3Ljk3MS44NzdhMS4zNTksMS4zNTksMCwwLDAsLjU2Ni0xLjE4MiwyLjkzLDIuOTMsMCwwLDEtLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMy4xNTcsMTguNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDk1LDE4LjczN2MuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNiwxLjM2LDAsMCwwLC41NjUtMS4xODIsMi45MzEsMi45MzEsMCwwLDEtLjQ0NCwxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMSwyMS40OTUsMTguNzM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi42NjksMjAuMjQ5Yy4xMzIuNjY3Ljk3MS44NzcuOTcxLjg3N2ExLjM2LDEuMzYsMCwwLDAsLjU2Ni0xLjE4MiwyLjkyOSwyLjkyOSwwLDAsMS0uNDQzLDEuNzkzQTIuOTI2LDIuOTI2LDAsMCwxLDIyLjY2OSwyMC4yNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjAwOCwyMC41ODNjLjEzMi42NjcuOTcxLjg3Ny45NzEuODc3YTEuMzU5LDEuMzU5LDAsMCwwLC41NjUtMS4xODIsMi45MjgsMi45MjgsMCwwLDEtLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMS4wMDgsMjAuNTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi4xNzUsMjIuMTIxYy4xMzIuNjY3Ljk3Mi44NzcuOTcyLjg3N2ExLjM2LDEuMzYsMCwwLDAsLjU2NS0xLjE4MiwyLjkyOCwyLjkyOCwwLDAsMS0uNDQ0LDEuNzkzQTIuOTI3LDIuOTI3LDAsMCwxLDIyLjE3NSwyMi4xMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTE5LjgzOCwxOS4wN2MuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNTksMS4zNTksMCwwLDAsLjU2NS0xLjE4MiwyLjkyOCwyLjkyOCwwLDAsMS0uNDQzLDEuNzkzQTIuOTI4LDIuOTI4LDAsMCwxLDE5LjgzOCwxOS4wN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48L2c+PGNpcmNsZSBjeD1cXFwiMTEuMzM5XFxcIiBjeT1cXFwiMTQuMDc0XFxcIiByPVxcXCIzLjgxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjEzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjg2MVxcXCIgc3R5bGU9XFxcImZpbGw6I2JkYmZjMVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjEzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjE5MVxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxjaXJjbGUgY3g9XFxcIjExLjYwM1xcXCIgY3k9XFxcIjE0LjAyN1xcXCIgcj1cXFwiMC4zNTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC4xMTJcXFwiIGN5PVxcXCIxNC4wNzRcXFwiIHI9XFxcIjMuODE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjAuOTAzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjg2MVxcXCIgc3R5bGU9XFxcImZpbGw6I2JkYmZjMVxcXCIvPjxjaXJjbGUgY3g9XFxcIjIwLjkwM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC4zNzVcXFwiIGN5PVxcXCIxNC4wMjdcXFwiIHI9XFxcIjAuMzU3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcwNiwyMS41MmMwLTEuNDEyLDIuMTU3LTMuNDEzLDIuMTU3LTQuODg3YTIuMTU3LDIuMTU3LDAsMCwwLTQuMzEzLDBDMTMuNTUsMTguMTA3LDE1LjcwNiwyMC4xMDgsMTUuNzA2LDIxLjUyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjwvZz5cIixcblx0XCJQcm90b2NvbCBCdWZmZXJzXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCIxNS45OTYgMy4yMiAyNi45NjYgOS43IDI2Ljk1NCAyMi4zIDE2IDI4Ljc4IDUuMDM4IDIyLjQwOCA1LjAzNCA5LjYyOCAxNS45OTYgMy4yMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyLDMuOTg3LDkuMDJsMCwxNEwxNiwzMGwxMi03LjEuMDEzLTEzLjhaTTI2Ljk1NCwyMi4zLDE2LDI4Ljc4LDUuMDM4LDIyLjQwOGwwLTEyLjc4TDE2LDMuMjIsMjYuOTY2LDkuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxNzFjMWVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjU2OSAxMy42NTQgMTkuOTQ2IDE2Ljk2NCAxOS45NDMgMjQuODkgMjUuNTkgMjEuNTY1IDI1LjU2OSAxMy42NTRcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZWE4ZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjI4MiAxMi4zMDMgMjUuNTY5IDEzLjY1NCAxOS45NDYgMTYuOTY0IDE5Ljk0MyAyNC44OSAxNy4zMjcgMjMuMzcgMTcuMzQ4IDE1Ljg3NSAyMy4yODIgMTIuMzAzXFxcIiBzdHlsZT1cXFwiZmlsbDojNTBiZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi41MTIgMTAuMzUgMjIuNTE0IDExLjgxNiAxNi40MTEgMTUuNDk4IDE2LjQxOCAyMy41OTcgMTQuOTk4IDI0LjQzMSAxNC45OTQgMTQuODU2IDIyLjUxMiAxMC4zNVxcXCIgc3R5bGU9XFxcImZpbGw6Izk3ZmYyN1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuMDA4IDguODcxIDIyLjUxMiAxMC4zNSAxNC45OTQgMTQuODU2IDE0Ljk5OCAyNC40MzEgMTIuMTk0IDIyLjgwMSAxMi4xODkgMTMuNDEzIDIwLjAwOCA4Ljg3MVxcXCIgc3R5bGU9XFxcImZpbGw6I2MyZmY3MlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuMjI2IDYuNjA2IDE5LjIyNiA4LjM3NCAxMS4yMSAxMy4wNzQgMTEuMjEgMjMuMTcyIDkuODA4IDIzLjk4OCA5LjgzNSAxMi4yNzcgMTkuMjI2IDYuNjA2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmYyNzRiXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi4xNiA0Ljc4NCA2LjUzIDEwLjM5NCA2LjUyOSAyMi4wNzEgOS44MjcgMjMuOTg4IDkuODM1IDEyLjI3NyAxOS4yMzUgNi42MDYgMTYuMTYgNC43ODRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjVjNzdcXFwiLz5cIixcblx0XCJQdWdcIjogXCI8cGF0aCBkPVxcXCJNMjUuNTE0LDEyLjg0NmMtLjA1Mi0uOTM4LjIwOS0xLjgyNS0uMjA5LTIuNTU0LTEuMDQzLTEuODI1LTMuNjQ5LTIuODY3LTguODYzLTIuODY3VjcuMzcyaDB2LjA1MmMtNS43MzUsMC04LjE4NSwxLjA0My05LjIyNywyLjg2N2E1LjYsNS42LDAsMCwwLS40NjksMi41NTQsOS41NDYsOS41NDYsMCwwLDAtLjI2MSwyLjQ1Yy4xNTYsMS4xNDcuMjYxLDIuMjk0LjQxNywzLjMzNi4xNTYuODg2LDEuNDA4LDEuNTY0LDEuNTY0LDIuNC4zMTMsMi4yNDIsMi4yOTQsMy4yODQsOC4wMjgsMy4yODR2LjI2MWgtLjF2LS4yNjFjNS4yMTMsMCw3LjQtMS4wNDMsNy43MTYtMy4yODQuMS0uODM0LDEuMTQ3LTEuNTEyLDEuMy0yLjQuMTU2LTEuMDQzLjIwOS0yLjE5LjM2NS0zLjMzNkExMS43NzQsMTEuNzc0LDAsMCwwLDI1LjUxNCwxMi44NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjY2EzXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxMy42OGEzLjI0MSwzLjI0MSwwLDAsMSwyLjE5LDEuMTQ3Yy43My42MjYsMS45MjksMS4wNDMsMi40NSwxLjYxNmE0LjcxNSw0LjcxNSwwLDAsMSwxLjQwOCwxLjk4MSw4LjksOC45LDAsMCwxLC4zMTMsMi4yNDJjMCwuMjYxLjE1Ni4yMDkuNTczLDBhOS4wMiw5LjAyLDAsMCwwLDIuMTktMS44NzdjLS4xNTYuODg2LTEuMjUxLDEuNjY4LTEuMzU1LDIuNS0uMzEzLDIuMjQyLTIuNSwzLjMzNi03Ljg3MiwzLjMzNmguMzEzXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjUxOSwxMS45MDhjLjIwOS42NzguODg2LDMuMDI0LS40NjksMi4yNDJhMi41NTcsMi41NTcsMCwwLDEsLjkzOCwxLjU2NCwxLjgzMSwxLjgzMSwwLDAsMCwxLjMsMS40MDgsMy40NzksMy40NzksMCwwLDAsMi41NTQtLjYyNiwyLjk1NiwyLjk1NiwwLDAsMCwuNjc4LTMuMjg0LDIuNDMsMi40MywwLDAsMC0yLjEzNy0xLjYxNkMyMS40LDExLjMzNCwxOS4zMSwxMS4xMjYsMTkuNTE5LDExLjkwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMi4xNzhcXFwiIGN5PVxcXCIxNC40MVxcXCIgcj1cXFwiMS45MjlcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMS42NTZcXFwiIGN5PVxcXCIxMy41MjRcXFwiIHI9XFxcIjAuNTIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjIwNiwxNC4zMDZhMTcuNjgsMTcuNjgsMCwwLDEsMi43MTEsMi4zNDZjLjkzOCwxLjIuOTM4LDEuNDA4LjkzOCwxLjQwOGwtLjY3OC4zMTNhNy4xLDcuMSwwLDAsMC0yLjEzNy0yLjVjLTEuMi0uNjc4LTEuMzU1LTEuMjUxLTEuMzU1LTEuMjUxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmY2NhM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yMzUsMTMuNjhhMy42MDUsMy42MDUsMCwwLDAtMi4zNDYsMS4xNDdjLS43My42MjYtMi4wMzMsMS4wNDMtMi41LDEuNjE2YTQuODA2LDQuODA2LDAsMCwwLTEuNDYsMS45ODEsOC45LDguOSwwLDAsMC0uMzEzLDIuMjQyYzAsLjI2MS4wNTIuMzEzLS42MjYsMEE3Ljk3Miw3Ljk3MiwwLDAsMSw2LjgsMTguNzg5Yy4xNTYuODg2LDEuMjUxLDEuNjY4LDEuMzU1LDIuNS4zMTMsMi4xOSwyLjUsMy4yODQsNy44NzIsMy4yODRoLjM2NVxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4yMzksMTcuMjc3YTYuNTUyLDYuNTUyLDAsMCwwLTUuMTA5LTIuNjA3aDBhNi42MzgsNi42MzgsMCwwLDAtNS4xMDksMi42MDcsMy44NjEsMy44NjEsMCwwLDAtMS4wNDMsMy4xOGMwLDQuNjQsMS42MTYsMy4yMzIsMi43MTEsMy44MDZhNy40NjYsNy40NjYsMCwwLDAsMy4zODkuMzEzaDBhNy40LDcuNCwwLDAsMCwzLjM4OS0uMzEzYzEuMDk1LS41NzMsMi43MTEuODM0LDIuNzExLTMuODA2QTMuMzg2LDMuMzg2LDAsMCwwLDIxLjIzOSwxNy4yNzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAyNiwxNS45NzRhOS41NDksOS41NDksMCwwLDEtLjQ2OSwyLjU1NGwuNTczLS4xNTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxNS45NzRhOS41NDksOS41NDksMCwwLDAsLjQ2OSwyLjU1NGwtLjU3My0uMTU2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4zNTgsMTUuNDUzYy0uMjA5LS41MjEuNTczLTEuMzU1LDEuODI1LTEuMzU1czIuMDMzLjgzNCwxLjgyNSwxLjM1NS0xLjA0My42NzgtMS44MjUuNjc4QzE1LjM0OCwxNi4xMywxNC41NjYsMTUuOTc0LDE0LjM1OCwxNS40NTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxNS45NzRjMC0uMS43My0uMSwxLjE0Ny0uMzY1LDAsMC0uODM0LjI2MS0uOTkxLjE1NmEuNjU2LjY1NiwwLDAsMS0uMjA5LS4zNjUuNjU2LjY1NiwwLDAsMS0uMjA5LjM2NWMtLjE1Ni4xLTEuMDk1LS4xNTYtMS4wOTUtLjE1NmE4LjA1OCw4LjA1OCwwLDAsMSwxLjIuMzY1di40MTdhMTAuNDkyLDEwLjQ5MiwwLDAsMCwuMSwyLjAzM2MuMTU2LjIwOS4xLTEuNDYuMS0yLjAzM0ExLjMsMS4zLDAsMCwxLDE2LjE4MiwxNS45NzRaXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxOC45NDVhMy4zNSwzLjM1LDAsMCwxLDEuNjE2LjY3OCwzLjEyMSwzLjEyMSwwLDAsMC0xLjYxNi0xLjA5NSwzLjAzNiwzLjAzNiwwLDAsMC0xLjgyNSwxLjJBMy4zMTIsMy4zMTIsMCwwLDEsMTYuMTgyLDE4Ljk0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZjRhNDFcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDc4LDIyLjhhOC45LDguOSwwLDAsMS0yLjQtLjQ2OWMtLjE1Ni0uMDUyLS4zMTMuMDUyLS40NjksMGE2LjE3Miw2LjE3MiwwLDAsMS0zLjE4LTIuMTM3di4yMDljMCw0LjY0LDEuNjE2LDMuMjMyLDIuNzExLDMuODA2YTcuNDY2LDcuNDY2LDAsMCwwLDMuMzg5LjMxM2gwYTcuNCw3LjQsMCwwLDAsMy4zODktLjMxM2MxLjA5NS0uNTczLDIuNzExLjgzNCwyLjcxMS0zLjgwNnYtLjQ2OUE1LjkxNCw1LjkxNCwwLDAsMSwxOSwyMi4yODJjLS4xNTYuMDUyLS40MTctLjA1Mi0uNTczLS4wNTJBNy4wNDUsNy4wNDUsMCwwLDEsMTYuMDc4LDIyLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTEzLjk0MSwyMC4zcy0uNTczLDEuNjY4LS4xNTYsMi40bC0uNTIxLS4yMDlBMTUuNDMzLDE1LjQzMywwLDAsMSwxMy45NDEsMjAuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTguMzIsMjAuM3MuNTczLDEuNjY4LjE1NiwyLjRMMTksMjIuNDkxQTEwLjYyOSwxMC42MjksMCwwLDAsMTguMzIsMjAuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTIuNTg1LDExLjkwOGMtLjIwOS42NzgtLjg4NiwzLjAyNC40NjksMi4yNDJhMi41NTcsMi41NTcsMCwwLDAtLjkzOCwxLjU2NCwxLjgzMSwxLjgzMSwwLDAsMS0xLjMsMS40MDhBMy40NzksMy40NzksMCwwLDEsOC4yNTgsMTYuNWEyLjk1NiwyLjk1NiwwLDAsMS0uNjc4LTMuMjg0LDIuNDMsMi40MywwLDAsMSwyLjEzNy0xLjYxNkMxMC43MDksMTEuMzM0LDEyLjc5NCwxMS4xMjYsMTIuNTg1LDExLjkwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTMsMTguNTI4YTMuMzkzLDMuMzkzLDAsMCwxLDIuNDUsMi44Njd2LS4xYTMuMDUxLDMuMDUxLDAsMCwwLTIuNDUtMi45MTksMywzLDAsMCwwLTIuNDUsMi45MTl2LjFBMy40NjMsMy40NjMsMCwwLDEsMTYuMTMsMTguNTI4WlxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNi41NDZcXFwiIGN5PVxcXCIxNS4xMzhcXFwiIHJ4PVxcXCIwLjE1NlxcXCIgcnk9XFxcIjAuMzEzXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy4yNTYgNC42MTEpIHJvdGF0ZSgtMTQuNDYpXFxcIiBzdHlsZT1cXFwiZmlsbDojMzMxNzEyXFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE1LjYwOVxcXCIgY3k9XFxcIjE1LjE0NlxcXCIgcng9XFxcIjAuMzEzXFxcIiByeT1cXFwiMC4xNTZcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjQ4MiAyNS41NjcpIHJvdGF0ZSgtNzIuNzY1KVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzMTcxMlxcXCIvPjxjaXJjbGUgY3g9XFxcIjEwLjAzMVxcXCIgY3k9XFxcIjE0LjQxXFxcIiByPVxcXCIxLjkyOVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEwLjU1MlxcXCIgY3k9XFxcIjEzLjUyNFxcXCIgcj1cXFwiMC41MjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYuNywxNC40MXMtLjUyMS4yMDktLjYyNi4yNjFhMi40OTIsMi40OTIsMCwwLDEtLjYyNi0uMjYxSDE2LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2Y0YTQxXFxcIi8+PHBhdGggZD1cXFwiTTEyLjksMTQuMzA2YTE3LjY4LDE3LjY4LDAsMCwwLTIuNzExLDIuMzQ2Yy0uOTM4LDEuMi0uOTM4LDEuNDA4LS45MzgsMS40MDhsLjY3OC4zMTNhNy4xLDcuMSwwLDAsMSwyLjEzNy0yLjVjMS4yLS42NzgsMS4zNTUtMS4yNTEsMS4zNTUtMS4yNTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjY2EzXFxcIi8+PHBhdGggZD1cXFwiTTkuMDkyLDEwLjgxM2E0LjUxOSw0LjUxOSwwLDAsMS0xLjkyOSwyLjI5NEEyLjE5LDIuMTksMCwwLDAsOS4wOTIsMTAuODEzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi45MDgsMTAuODEzYTQuNTE5LDQuNTE5LDAsMCwwLDEuOTI5LDIuMjk0QTIuMTksMi4xOSwwLDAsMSwyMi45MDgsMTAuODEzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4zMSwxMy44MzZhNS4xNiw1LjE2LDAsMCwwLTMuMDc2LTEuNDA4aC4xNTZhMy44NTIsMy44NTIsMCwwLDAtMy4wMjQsMS40MDgsNC44MzIsNC44MzIsMCwwLDEsMy4wMjQtMS4wNDNoMEE1Ljc4NSw1Ljc4NSwwLDAsMSwxOS4zMSwxMy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljc0NiwxMC45NjlhMi40NTUsMi40NTUsMCwwLDAtMS41NjQtLjkzOGguMTU2YTEuNzg2LDEuNzg2LDAsMCwwLTEuNTEyLjkzOCwyLjE4NywyLjE4NywwLDAsMSwxLjUxMi0uNjc4aDBBMS44OTQsMS44OTQsMCwwLDEsMTcuNzQ2LDEwLjk2OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTAuMDMxLDE3Ljc0NmEyLjU0NSwyLjU0NSwwLDAsMS0xLjc3My4yMDlIOC4wNWEzLjY4LDMuNjgsMCwwLDEtLjg4Ni0xLjUxMkEyLjI3LDIuMjcsMCwwLDAsMTAuMDMxLDE3Ljc0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjIuMTI2LDE3Ljc0NmEyLjU0NSwyLjU0NSwwLDAsMCwxLjc3My4yMDlIMjMuNjlhMS43NDksMS43NDksMCwwLDAsMS4wOTUtMS41MTJBMi4wMiwyLjAyLDAsMCwxLDIyLjEyNiwxNy43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTExLjIzLDEwLjcwOWE0Ljc1LDQuNzUsMCwwLDEsMi4yNDIuMWMuOTM4LjMxMy4yMDksMS41NjQuMzY1LDEuNjE2YTIuODY1LDIuODY1LDAsMCwxLDIuMjQyLS43M2MxLjc3My4xLDEuOTgxLjg4NiwyLjI0Mi43My4yNjEtLjEtLjI2MS0yLjE5LDIuNDUtMS43MiwwLDAtMi43NjMtLjczLTIuNjU5LDEuMjUxYTMuNjc1LDMuNjc1LDAsMCwwLTMuODU4LS4xUzE0LjgyNyw5LjkyNywxMS4yMywxMC43MDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUsOHMtMi40LDIuOTcyLTIuNzExLDQuMTE4Yy0uMzY1LDEuMTQ3LS42MjYsNS45NDMtLjkzOCw2LjYyMUw1Ljc1NiwxNC4wNDVsMi4wMzMtNC45WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42NTYsOHMyLjQsMi45NzIsMi43MTEsNC4xMThjLjM2NSwxLjE0Ny42MjYsNS45NDMuOTM4LDYuNjIxTDI2LjQsMTQuMDQ1bC0yLjAzMy00LjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTIxLjUsOGExMS42MTcsMTEuNjE3LDAsMCwxLDMuMjg0LDQuNTg4Yy43MywyLjQ1LjQxNyw1LjQ3NC45OTEsNS44MzkuODM0LjUyMSwxLjcyLTIuNjA3LDIuMDMzLTIuOTE5LjQ2OS0uNTIxLDIuMDg1LTEuODc3LDIuMTktMi4xMzdzLTMuMjMyLTMuOTEtNC43NDQtNC42NEMyMy41ODUsNy44OTMsMjEuNCw3Ljc4OSwyMS41LDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY5LDkuM2ExNS4zNzksMTUuMzc5LDAsMCwxLDIuOTcyLDguNjU0bDEuMi0yLjQ1QTE2LjU2NCwxNi41NjQsMCwwLDAsMjMuNjksOS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xMC41LDhhMTEuNjE3LDExLjYxNywwLDAsMC0zLjI4NCw0LjU4OGMtLjczLDIuNDUtLjQxNyw1LjQ3NC0uOTkxLDUuODM5LS44MzQuNTIxLTEuNzItMi42MDctMi4wMzMtMi45MTktLjQ2OS0uNTIxLTIuMDg1LTEuODc3LTIuMTktMi4xMzdzMy4yMzItMy45MSw0Ljc0NC00LjY0QzguNDE1LDcuODkzLDEwLjYsNy43ODksMTAuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk04LjMxLDkuM2ExNS4zNzksMTUuMzc5LDAsMCwwLTIuOTcyLDguNjU0TDQuMTQsMTUuNUExNi41NjQsMTYuNTY0LDAsMCwxLDguMzEsOS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk02LjY0MiwxOC4wMDdhNC4xMTgsNC4xMTgsMCwwLDAsLjU3MywxLjU2NGMuMzY1LjM2NS4xLS4zMTMuMS0uMzEzcy0uMzY1LS4yMDktLjMxMy0xLjcyUzYuNjQyLDE4LjAwNyw2LjY0MiwxOC4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTI1LjQxLDE4LjAwN2E0LjExOCw0LjExOCwwLDAsMS0uNTczLDEuNTY0Yy0uMzY1LjM2NS0uMS0uMzEzLS4xLS4zMTNzLjM2NS0uMjA5LjMxMy0xLjcyQzI0Ljk5MywxNi4wNzgsMjUuNDEsMTguMDA3LDI1LjQxLDE4LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMy44ODlcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTIuODQ2XFxcIiBjeT1cXFwiMTguMjE2XFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjUzM1xcXCIgY3k9XFxcIjE3LjEyMVxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48Y2lyY2xlIGN4PVxcXCIxOC4xNjRcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTkuMTU0XFxcIiBjeT1cXFwiMTguMjE2XFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjE5LjQ2N1xcXCIgY3k9XFxcIjE3LjEyMVxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz5cIixcblx0XCJQdXBwZXRcIjogXCI8cGF0aCBkPVxcXCJNMjUuMDg5LDExLjgyMkgxOC43TDE1LjI2Nyw4LjM4OFYySDYuOTExdjguMzU3SDEzLjNsMy40MjIsMy40MjJoMHY0LjQzMWgwbC0zLjQzNCwzLjQzNEg2LjkxMVYzMGg4LjM1N1YyMy42MTJoMEwxOC43LDIwLjE3OGg2LjM4OFpNOS43LDQuNzg2aDIuNzg2VjcuNTcxSDkuN1pNMTIuNDgyLDI3LjJIOS43VjI0LjQxN2gyLjc4NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmFlMWFcXFwiLz5cIixcblx0XCJQdXJlU2NyaXB0XCI6IFwiPHJlY3Qgd2lkdGg9XFxcIjMyXFxcIiBoZWlnaHQ9XFxcIjMyXFxcIiBzdHlsZT1cXFwiZmlsbDojMTYxNzFiXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMS44OTIgMjIuMTM2IDE5LjcwNiAyMC4wOTUgMTAuMTA3IDIwLjA5NSAxMi4yOTMgMjIuMTM2IDIxLjg5MiAyMi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjI5MyAxNC45OCAxMC4xMDcgMTcuMDIxIDE5LjcwNiAxNy4wMjEgMjEuODkyIDE0Ljk4IDEyLjI5MyAxNC45OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuODkxIDExLjkwNiAxOS43MDYgOS44NjQgMTAuMTA3IDkuODY0IDEyLjI5MyAxMS45MDYgMjEuODkxIDExLjkwNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk05LjEsMTMuOTI2LDcuNjUyLDEyLjQ4MiwyLjMsMTcuODM2YTEuMDIzLDEuMDIzLDAsMCwwLDAsMS40NDNsNS4zNTQsNS4zNTRMOS4xLDIzLjE5LDQuNDY0LDE4LjU1OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNywxMi43MjEsMjQuMzQ4LDcuMzY2LDIyLjksOC44MWw0LjYzLDQuNjMyTDIyLjksMTguMDc1bDEuNDQzLDEuNDQzTDI5LjcsMTQuMTY1YTEuMDIxLDEuMDIxLDAsMCwwLDAtMS40NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiUHl0aG9uXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzMy4yNjhcXFwiIHkxPVxcXCItMjAyLjkxXFxcIiB4Mj1cXFwiLTEzMy4xOThcXFwiIHkyPVxcXCItMjAyLjg0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI1MjQzLjA2MSAzODUxOS4xNykgc2NhbGUoMTg5LjM4IDE4OS44MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMzODdlYjhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzNjY5OTRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi0xMzMuNTc1XFxcIiB5MT1cXFwiLTIwMy4yMDNcXFwiIHgyPVxcXCItMTMzLjQ5NVxcXCIgeTI9XFxcIi0yMDMuMTMzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI1MzA5LjA2MSAzODU4My40Mikgc2NhbGUoMTg5LjM4IDE4OS44MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmUwNTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmMzMzFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3B5dGhvbjwvdGl0bGU+PHBhdGggZD1cXFwiTTE1Ljg4NSwyLjFjLTcuMSwwLTYuNjUxLDMuMDctNi42NTEsMy4wN1Y4LjM2aDYuNzUydjFINi41NDVTMiw4LjgsMiwxNi4wMDVzNC4wMTMsNi45MTIsNC4wMTMsNi45MTJIOC4zM1YxOS41NTZzLS4xMy00LjAxMywzLjktNC4wMTNoNi43NjJzMy43NzIuMDYsMy43NzItMy42NTJWNS44cy41NzItMy43MTItNi44NDItMy43MTJoMFpNMTIuMTUzLDQuMjM3YTEuMjE0LDEuMjE0LDAsMSwxLTEuMTgzLDEuMjQ0di0uMDJhMS4yMTQsMS4yMTQsMCwwLDEsMS4yMTQtMS4yMTRoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDg1LDI5LjkxYzcuMSwwLDYuNjUxLTMuMDgsNi42NTEtMy4wOFYyMy42NUgxNS45ODV2LTFoOS40N1MzMCwyMy4xNTgsMzAsMTUuOTk1cy00LjAxMy02LjkxMi00LjAxMy02LjkxMkgyMy42NFYxMi40cy4xMyw0LjAxMy0zLjksNC4wMTNIMTIuOTc1UzkuMiwxNi4zNTYsOS4yLDIwLjA2OFYyNi4ycy0uNTcyLDMuNzEyLDYuODQyLDMuNzEyaC4wNFptMy43MzItMi4xNDdBMS4yMTQsMS4yMTQsMCwxLDEsMjEsMjYuNTE5di4wM2ExLjIxNCwxLjIxNCwwLDAsMS0xLjIxNCwxLjIxNGguMDNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+XCIsXG5cdFwiUSAoa2RiKyBkYXRhYmFzZSlcIjogXCI8cGF0aCBkPVxcXCJNMjAuMDkyLDI5VjE5LjY4MkE2Ljk1Myw2Ljk1MywwLDAsMSwxNy43LDIxLjY0NWE2Ljc0Myw2Ljc0MywwLDAsMS0zLjA4OS43MjRBNi41NTcsNi41NTcsMCwwLDEsOS40MTMsMjAsMTEuMDgxLDExLjA4MSwwLDAsMSw3LDEyLjQ3NSwxMC4wMzMsMTAuMDMzLDAsMCwxLDkuMjY0LDUuNSw3LjI1MSw3LjI1MSwwLDAsMSwxNC44NzQsM2E2LjI2Niw2LjI2NiwwLDAsMSwzLjIuNzg1LDcuMzI5LDcuMzI5LDAsMCwxLDIuNCwyLjM3M1YzLjQxOUgyNVYyOVptLjE1Ny0xNi41NDJhNi40OTIsNi40OTIsMCwwLDAtMS4xNi00LjIzMiwzLjYzNCwzLjYzNCwwLDAsMC0yLjkwNS0xLjM4NywzLjc0MiwzLjc0MiwwLDAsMC0yLjk3NSwxLjQxMyw2Ljg4MSw2Ljg4MSwwLDAsMC0xLjIsNC40ODUsNi43NjcsNi43NjcsMCwwLDAsMS4xNTIsNC40MDZBMy41OTMsMy41OTMsMCwwLDAsMTYuMDA5LDE4LjVhMy43ODYsMy43ODYsMCwwLDAsMi45NjYtMS41MThBNi44ODksNi44ODksMCwwLDAsMjAuMjQ5LDEyLjQ1OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTc4YjNcXFwiLz5cIixcblx0XCJRI1wiOiBcIjxwYXRoIGQ9XFxcIk0xOS40NTEsNi4yMThoMi42MzhWOC44NTZoMi42MzdWNi4yMThoMi42MzdWOC44NTZIMzBWMTEuNUgyNy4zNjR2Mi42MzZIMzBWMTYuNzdIMjcuMzY0djIuNjM3SDI0LjcyN1YxNi43NjlIMjIuMDkxbDAsMi42MzdIMTkuNDUzVjE2Ljc2OEgxNi44MTVWMTQuMTI3aDIuNjM4VjExLjVIMTYuODE1VjguODUzaDIuNjM5Wm0yLjYzOCw3LjkxNGgyLjYzN1YxMS41SDIyLjA4OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2NcXFwiLz48cGF0aCBkPVxcXCJNMTQuMDE4LDIxLjUyNGExMS40MzYsMTEuNDM2LDAsMCwwLDEuNTcyLTYuMTkyLDEwLjg3NywxMC44NzcsMCwwLDAtMS44NTgtNi42QTUuODg5LDUuODg5LDAsMCwwLDguODA4LDYuMTUzYTUuOTIxLDUuOTIxLDAsMCwwLTQuOTQsMi41ODFBMTAuODQyLDEwLjg0MiwwLDAsMCwyLDE1LjMzM2ExMC44NTMsMTAuODUzLDAsMCwwLDEuODY4LDYuNTkyLDUuOTE4LDUuOTE4LDAsMCwwLDQuOTQxLDIuNTg4LDUuNzQzLDUuNzQzLDAsMCwwLDMuMjYtLjk4N2wyLjMwNiwyLjMyMSwxLjU3Ny0yLjRabS01LjE3LTEuMjE4LDEuMTE3LDEuMTIxYTMuMjI5LDMuMjI5LDAsMCwxLTEuMTc0LjIxNywzLjMzNSwzLjMzNSwwLDAsMS0yLjgzNy0xLjU5Myw4LjEyNSw4LjEyNSwwLDAsMS0xLjE4LTQuNzE5LDguMSw4LjEsMCwwLDEsMS4xODQtNC43MjQsMy4zNzIsMy4zNzIsMCwwLDEsMi44Ny0xLjU4OCwzLjMxLDMuMzEsMCwwLDEsMi44MTksMS41ODUsOC4xNzgsOC4xNzgsMCwwLDEsMS4xNzIsNC43MjYsOS4xMTMsOS4xMTMsMCwwLDEtLjgzMyw0LjE1bC0xLjU2LTEuNTcxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzY1xcXCIvPlwiLFxuXHRcIlFNTFwiOiBcIjxwYXRoIGQ9XFxcIk0yNy4zLDVINS44ODZMMiw4Ljk1OFYyNkgyNi4xMTRMMzAsMjIuMDQyVjVaTTE2LjksMjMuMDdsLTEuODI4Ljg1MkwxMy41LDIxLjMzMWEzLjk2OCwzLjk2OCwwLDAsMS0xLjA4Mi4xMDZjLTEuODQ1LDAtMy4xMjMtLjUtMy44NS0xLjQ5YTguMDMsOC4wMywwLDAsMS0xLjA4Mi00LjcsOC4zNTEsOC4zNTEsMCwwLDEsMS4xLTQuNzczLDQuMzc5LDQuMzc5LDAsMCwxLDMuODMzLTEuNTYxYzEuODI4LDAsMy4wODcuNTE1LDMuODMzLDEuNTQ0YTguMzUxLDguMzUxLDAsMCwxLDEuMSw0Ljc3MywxMC44MDksMTAuODA5LDAsMCwxLS40NTIsMy40NCwzLjksMy45LDAsMCwxLTEuNDczLDJabTUuODQ4LTEuNjdhMi43MzUsMi43MzUsMCwwLDEtMi4xNjgtLjY5MkE0LjE5Miw0LjE5MiwwLDAsMSwyMCwxOC4xVjE0SDE5VjEyaDFWOWgydjNoMnYySDIydjMuOWEzLjkwNywzLjkwNywwLDAsMCwuMTY4LDEuNDM3Yy4xMTIuMjMxLjM5My4zNTUuODYuMzU1bDEuNTMzLS4wNTMuMDkzLDEuNTQ0QTEyLjUxOSwxMi41MTksMCwwLDEsMjIuNzQ4LDIxLjRaTTEyLjQxNiwxMC42MTRhMi40LDIuNCwwLDAsMC0yLjI4OSwxLjEsNy42NTcsNy42NTcsMCwwLDAtLjYsMy41MTMsNy4xMzEsNy4xMzEsMCwwLDAsLjYsMy40NDJBMi40NCwyLjQ0LDAsMCwwLDEyLjQzMywxOS43YTIuNDE3LDIuNDE3LDAsMCwwLDIuMjg5LTEuMDExLDcuMzQzLDcuMzQzLDAsMCwwLC41ODYtMy40NDIsNy42OTIsNy42OTIsMCwwLDAtLjYtMy41MzFBMi40LDIuNCwwLDAsMCwxMi40MTYsMTAuNjE0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQxY2Q1MlxcXCIvPlwiLFxuXHRcIlJcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMTM0LjgxMVxcXCIgeTE9XFxcIi0xMDMuMjg0XFxcIiB4Mj1cXFwiLTEzNC43NzJcXFwiIHkyPVxcXCItMTAzLjMyM1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg3MjEuMDk0LCAwLCAwLCAtNDgyLjkzNywgOTcyMTMuNTk1LCAtNDk4NzQuNTEyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2NiY2VkMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODM4YlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTEzNS4zNzhcXFwiIHkxPVxcXCItMTAyLjk4NVxcXCIgeDI9XFxcIi0xMzUuMzM5XFxcIiB5Mj1cXFwiLTEwMy4wMjRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMzk4LCAwLCAwLCAtNDA2LjEyNCwgNTM4OTMsIC00MTgxMi44MzYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjc2ZGMzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTY1Y2FhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9yPC90aXRsZT48cGF0aCBkPVxcXCJNMTYsMjMuOTU2Yy03LjczMiwwLTE0LTQuMi0xNC05LjM3NlM4LjI2OCw1LjIsMTYsNS4yLDMwLDkuNCwzMCwxNC41OCwyMy43MzIsMjMuOTU2LDE2LDIzLjk1NlpNMTguMTQzLDguODdDMTIuMjY2LDguODcsNy41LDExLjc0LDcuNSwxNS4yOHM0Ljc2NCw2LjQxLDEwLjY0MSw2LjQxLDEwLjIxNC0xLjk2MiwxMC4yMTQtNi40MVMyNC4wMiw4Ljg3LDE4LjE0Myw4Ljg3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4zMjEsMTkuNzI2YTEwLjU0NSwxMC41NDUsMCwwLDEsMS4zNC41LDIuNTkxLDIuNTkxLDAsMCwxLC42OC40ODUsMS44MzUsMS44MzUsMCwwLDEsLjMxMS40NDdsMy4zMzksNS42My01LjQsMC0yLjUyNC00Ljc0YTYuMSw2LjEsMCwwLDAtLjgzNS0xLjE0NS44NzkuODc5LDAsMCwwLS42NDEtLjI5MUgxOC4zMTF2Ni4xNzNsLTQuNzc2LDBWMTEuMDI2aDkuNTkxUzI3LjUsMTEuMSwyNy41LDE1LjI2MSwyMy4zMjEsMTkuNzI2LDIzLjMyMSwxOS43MjZabS0yLjA3Ny01LjI4LTIuODkxLDB2Mi42ODFoMi44OTNhMS4zMjMsMS4zMjMsMCwwLDAsMS4zNC0xLjM2NEExLjI0NywxLjI0NywwLDAsMCwyMS4yNDQsMTQuNDQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPlwiLFxuXHRcIlJhY2tldFwiOiBcIjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjAxNiwyNC42NDFhMTQsMTQsMCwwLDAtMTUuOC0yMS44QzE2LjksNS44MjIsMjQuNDEzLDE1LjU0OSwyNy4wMTYsMjQuNjQxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzNlNWJhOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy45OTUsMTAuOTNhMjQuMywyNC4zLDAsMCwwLTcuMjItNS40NkExNCwxNCwwLDAsMCw1LjQ2MywyNS4yMTcsMzkuNTYsMzkuNTYsMCwwLDEsMTMuOTk1LDEwLjkzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzlmMWQyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41NzUsMTQuMUEzMi42NDUsMzIuNjQ1LDAsMCwwLDkuNDMsMjguMzY1YTE0LjAxNiwxNC4wMTYsMCwwLDAsMTMuMy0uMDg5QTM4LjY0MiwzOC42NDIsMCwwLDAsMTYuNTc1LDE0LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojOWYxZDIwXFxcIi8+XCIsXG5cdFwiUmF6b3IgQyNcIjogXCI8cGF0aCBkPVxcXCJNMjMuODQ0LDI3LjY5MmExNi4zMzIsMTYuMzMyLDAsMCwxLTYuNjQ1LDEuM3EtNi4zNjQsMC0xMC4wMTMtMy4yNDNhMTEuMywxMS4zLDAsMCwxLTMuNjQ5LTguOUExMy43MTYsMTMuNzE2LDAsMCwxLDcuMzIyLDYuOTUxLDEyLjcxNiwxMi43MTYsMCwwLDEsMTYuOSwzLjAwOGExMS42NzYsMTEuNjc2LDAsMCwxLDguNDI1LDMuMDA2LDkuOTk0LDkuOTk0LDAsMCwxLDMuMTQyLDcuNTMzLDEwLjE4NywxMC4xODcsMCwwLDEtMi4zMTgsNy4xMTQsNy41MzIsNy41MzIsMCwwLDEtNS44MTcsMi41NDcsMi42MTMsMi42MTMsMCwwLDEtMS44NDUtLjY0MiwyLjMyMywyLjMyMywwLDAsMS0uNzY0LTEuNiw0LjksNC45LDAsMCwxLTQuMTQ4LDIuMjQzLDQuNiw0LjYsMCwwLDEtMy41MDctMS40NzksNS43MDYsNS43MDYsMCwwLDEtMS4zODQtNC4wNjMsOS45MTMsOS45MTMsMCwwLDEsMi4yLTYuMzU3cTIuMi0yLjc2Myw0LjgtMi43NjNhNS4wNjMsNS4wNjMsMCwwLDEsNC4yNTYsMS43MTZsLjMxMS0xLjMzOGgyLjQwNWwtMi4wODEsOS4wOGExMC43MTYsMTAuNzE2LDAsMCwwLS4zNTIsMi4yNDNxMCwuOTcyLjc0NC45NzJhNC44MTksNC44MTksMCwwLDAsMy44NzctMi4wNDcsOC45Myw4LjkzLDAsMCwwLDEuNjIxLTUuNjgxLDcuOTgsNy45OCwwLDAsMC0yLjY3NS02LjE3NSw5Ljg4Nyw5Ljg4NywwLDAsMC02LjkxOS0yLjQzMkExMC42LDEwLjYsMCwwLDAsOC43MTMsOC4zNTJhMTIuMDY2LDEyLjA2NiwwLDAsMC0zLjIsOC40OTUsOS41NjEsOS41NjEsMCwwLDAsMy4wNiw3LjU3M3EzLjA2LDIuNyw4LjU4NiwyLjdhMTMuNzU3LDEzLjc1NywwLDAsMCw1LjY3NS0xLjA1NFpNMTkuNDY2LDEyLjI1YTMuOTc3LDMuOTc3LDAsMCwwLTMuNi0xLjcxNnEtMS44MjQsMC0zLjI2MywyLjIzYTguNzI2LDguNzI2LDAsMCwwLTEuNDM5LDQuODI0cTAsMy42MzUsMi45MDUsMy42MzVBMy43NzEsMy43NzEsMCwwLDAsMTYuNzIsMjAuMDRhNi4zMDksNi4zMDksMCwwLDAsMS43LTMuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNjg4MzJcXFwiLz5cIixcblx0XCJSZWFjdCBKU1hcIjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE1Ljk3NFxcXCIgcj1cXFwiMi41XFxcIiBzdHlsZT1cXFwiZmlsbDojMDBkOGZmXFxcIi8+PHBhdGggZD1cXFwiTTE2LDIxLjcwNmEyOC4zODUsMjguMzg1LDAsMCwxLTguODgtMS4yLDExLjMsMTEuMywwLDAsMS0zLjY1Ny0xLjk1OEEzLjU0MywzLjU0MywwLDAsMSwyLDE1Ljk3NGMwLTEuNjUzLDEuODE2LTMuMjczLDQuODU4LTQuMzMzQTI4Ljc1NSwyOC43NTUsMCwwLDEsMTYsMTAuMjkzYTI4LjY3NCwyOC42NzQsMCwwLDEsOS4wMjIsMS4zMjQsMTEuMzc2LDExLjM3NiwwLDAsMSwzLjUzOCwxLjg2NkEzLjM5MSwzLjM5MSwwLDAsMSwzMCwxNS45NzRjMCwxLjcxOC0yLjAzLDMuNDU5LTUuMyw0LjU0MUEyOC44LDI4LjgsMCwwLDEsMTYsMjEuNzA2Wm0wLTEwLjIxN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTguNzQ5LDEuMjgyYy0yLjguOTc3LTQuMDU1LDIuMzEzLTQuMDU1LDMuMiwwLC45MjgsMS4zNDksMi4zODcsNC4zMTEsMy40QTI3LjIxLDI3LjIxLDAsMCwwLDE2LDIwLjUxYTI3LjYsMjcuNiwwLDAsMCw4LjMyNS0xLjEzQzI3LjQsMTguMzYxLDI4LjgsMTYuOSwyOC44LDE1Ljk3NGEyLjMyNywyLjMyNywwLDAsMC0xLjAxLTEuNTczLDEwLjE5NCwxMC4xOTQsMCwwLDAtMy4xNjEtMS42NTRBMjcuNDYyLDI3LjQ2MiwwLDAsMCwxNiwxMS40ODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBkOGZmXFxcIi8+PHBhdGggZD1cXFwiTTEwLjMyLDI4LjQ0M2EyLjYzOSwyLjYzOSwwLDAsMS0xLjMzNi0uMzI4Yy0xLjQzMi0uODI2LTEuOTI4LTMuMjA4LTEuMzI3LTYuMzczYTI4Ljc1NSwyOC43NTUsMCwwLDEsMy40LTguNTkzaDBBMjguNjc2LDI4LjY3NiwwLDAsMSwxNi43MSw1Ljk5NWExMS4zNzYsMTEuMzc2LDAsMCwxLDMuMzg0LTIuMTMzLDMuMzkxLDMuMzkxLDAsMCwxLDIuODc4LDBjMS40ODkuODU4LDEuOTgyLDMuNDg2LDEuMjg3LDYuODU5YTI4LjgwNiwyOC44MDYsMCwwLDEtMy4zMTYsOC4xMzMsMjguMzg1LDI4LjM4NSwwLDAsMS01LjQ3Niw3LjA5MywxMS4zLDExLjMsMCwwLDEtMy41MjMsMi4xODlBNC45MjYsNC45MjYsMCwwLDEsMTAuMzIsMjguNDQzWm0xLjc3My0xNC43YTI3Ljk0OCwyNy45NDgsMCwwLDAtMy4yNiw4LjIxOWMtLjU1MywyLjkxNS0uMDIyLDQuNjY4Ljc1LDUuMTE0LjguNDYzLDIuNzQyLjAyNCw1LjEtMi4wMzZhMjcuMjA5LDI3LjIwOSwwLDAsMCw1LjIyNy02Ljc5LDI3LjYsMjcuNiwwLDAsMCwzLjE4MS03Ljc3NmMuNjU0LTMuMTc1LjA4OS01LjExOS0uNzEzLTUuNTgxYTIuMzI3LDIuMzI3LDAsMCwwLTEuODY4LjA4OUExMC4xOTQsMTAuMTk0LDAsMCwwLDE3LjUsNi45YTI3LjQ2NCwyNy40NjQsMCwwLDAtNS40LDYuODQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42NzcsMjguNDU2Yy0xLjM1NSwwLTMuMDc2LS44Mi00Ljg2OC0yLjM2MWEyOC43NTYsMjguNzU2LDAsMCwxLTUuNzQ3LTcuMjM3aDBhMjguNjc2LDI4LjY3NiwwLDAsMS0zLjM3NC04LjQ3MSwxMS4zNzYsMTEuMzc2LDAsMCwxLS4xNTgtNEEzLjM5MSwzLjM5MSwwLDAsMSw4Ljk2NCwzLjljMS40ODctLjg2MSw0LjAxLjAyNCw2LjU4NSwyLjMxYTI4LjgsMjguOCwwLDAsMSw1LjM5LDYuOTM0LDI4LjM4NCwyOC4zODQsMCwwLDEsMy40MSw4LjI4NywxMS4zLDExLjMsMCwwLDEsLjEzNyw0LjE0NiwzLjU0MywzLjU0MywwLDAsMS0xLjQ5NCwyLjU1NUEyLjU5LDIuNTksMCwwLDEsMjEuNjc3LDI4LjQ1NlptLTkuNTgtMTAuMmEyNy45NDksMjcuOTQ5LDAsMCwwLDUuNDkyLDYuOTI5YzIuMjQ5LDEuOTM1LDQuMDMzLDIuMzUxLDQuOCwxLjkuOC0uNDY1LDEuMzktMi4zNjMuNzgyLTUuNDM0QTI3LjIxMiwyNy4yMTIsMCwwLDAsMTkuOSwxMy43NCwyNy42LDI3LjYsMCwwLDAsMTQuNzU1LDcuMWMtMi40MjQtMi4xNTItNC4zOS0yLjYzMy01LjE5MS0yLjE2OWEyLjMyNywyLjMyNywwLDAsMC0uODU1LDEuNjYyLDEwLjE5NCwxMC4xOTQsMCwwLDAsLjE1MywzLjU2NSwyNy40NjUsMjcuNDY1LDAsMCwwLDMuMjM2LDguMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGQ4ZmZcXFwiLz5cIixcblx0XCJSZWFjdCBUU1hcIjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE1Ljk3NFxcXCIgcj1cXFwiMi41XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+PHBhdGggZD1cXFwiTTE2LDIxLjcwNmEyOC4zODUsMjguMzg1LDAsMCwxLTguODgtMS4yLDExLjMsMTEuMywwLDAsMS0zLjY1Ny0xLjk1OEEzLjU0MywzLjU0MywwLDAsMSwyLDE1Ljk3NGMwLTEuNjUzLDEuODE2LTMuMjczLDQuODU4LTQuMzMzQTI4Ljc1NSwyOC43NTUsMCwwLDEsMTYsMTAuMjkzYTI4LjY3NCwyOC42NzQsMCwwLDEsOS4wMjIsMS4zMjQsMTEuMzc2LDExLjM3NiwwLDAsMSwzLjUzOCwxLjg2NkEzLjM5MSwzLjM5MSwwLDAsMSwzMCwxNS45NzRjMCwxLjcxOC0yLjAzLDMuNDU5LTUuMyw0LjU0MUEyOC44LDI4LjgsMCwwLDEsMTYsMjEuNzA2Wm0wLTEwLjIxN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTguNzQ5LDEuMjgyYy0yLjguOTc3LTQuMDU1LDIuMzEzLTQuMDU1LDMuMiwwLC45MjgsMS4zNDksMi4zODcsNC4zMTEsMy40QTI3LjIxLDI3LjIxLDAsMCwwLDE2LDIwLjUxYTI3LjYsMjcuNiwwLDAsMCw4LjMyNS0xLjEzQzI3LjQsMTguMzYxLDI4LjgsMTYuOSwyOC44LDE1Ljk3NGEyLjMyNywyLjMyNywwLDAsMC0xLjAxLTEuNTczLDEwLjE5NCwxMC4xOTQsMCwwLDAtMy4xNjEtMS42NTRBMjcuNDYyLDI3LjQ2MiwwLDAsMCwxNiwxMS40ODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+PHBhdGggZD1cXFwiTTEwLjMyLDI4LjQ0M2EyLjYzOSwyLjYzOSwwLDAsMS0xLjMzNi0uMzI4Yy0xLjQzMi0uODI2LTEuOTI4LTMuMjA4LTEuMzI3LTYuMzczYTI4Ljc1NSwyOC43NTUsMCwwLDEsMy40LTguNTkzaDBBMjguNjc2LDI4LjY3NiwwLDAsMSwxNi43MSw1Ljk5NWExMS4zNzYsMTEuMzc2LDAsMCwxLDMuMzg0LTIuMTMzLDMuMzkxLDMuMzkxLDAsMCwxLDIuODc4LDBjMS40ODkuODU4LDEuOTgyLDMuNDg2LDEuMjg3LDYuODU5YTI4LjgwNiwyOC44MDYsMCwwLDEtMy4zMTYsOC4xMzMsMjguMzg1LDI4LjM4NSwwLDAsMS01LjQ3Niw3LjA5MywxMS4zLDExLjMsMCwwLDEtMy41MjMsMi4xODlBNC45MjYsNC45MjYsMCwwLDEsMTAuMzIsMjguNDQzWm0xLjc3My0xNC43YTI3Ljk0OCwyNy45NDgsMCwwLDAtMy4yNiw4LjIxOWMtLjU1MywyLjkxNS0uMDIyLDQuNjY4Ljc1LDUuMTE0LjguNDYzLDIuNzQyLjAyNCw1LjEtMi4wMzZhMjcuMjA5LDI3LjIwOSwwLDAsMCw1LjIyNy02Ljc5LDI3LjYsMjcuNiwwLDAsMCwzLjE4MS03Ljc3NmMuNjU0LTMuMTc1LjA4OS01LjExOS0uNzEzLTUuNTgxYTIuMzI3LDIuMzI3LDAsMCwwLTEuODY4LjA4OUExMC4xOTQsMTAuMTk0LDAsMCwwLDE3LjUsNi45YTI3LjQ2NCwyNy40NjQsMCwwLDAtNS40LDYuODQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0yMS42NzcsMjguNDU2Yy0xLjM1NSwwLTMuMDc2LS44Mi00Ljg2OC0yLjM2MWEyOC43NTYsMjguNzU2LDAsMCwxLTUuNzQ3LTcuMjM3aDBhMjguNjc2LDI4LjY3NiwwLDAsMS0zLjM3NC04LjQ3MSwxMS4zNzYsMTEuMzc2LDAsMCwxLS4xNTgtNEEzLjM5MSwzLjM5MSwwLDAsMSw4Ljk2NCwzLjljMS40ODctLjg2MSw0LjAxLjAyNCw2LjU4NSwyLjMxYTI4LjgsMjguOCwwLDAsMSw1LjM5LDYuOTM0LDI4LjM4NCwyOC4zODQsMCwwLDEsMy40MSw4LjI4NywxMS4zLDExLjMsMCwwLDEsLjEzNyw0LjE0NiwzLjU0MywzLjU0MywwLDAsMS0xLjQ5NCwyLjU1NUEyLjU5LDIuNTksMCwwLDEsMjEuNjc3LDI4LjQ1NlptLTkuNTgtMTAuMmEyNy45NDksMjcuOTQ5LDAsMCwwLDUuNDkyLDYuOTI5YzIuMjQ5LDEuOTM1LDQuMDMzLDIuMzUxLDQuOCwxLjkuOC0uNDY1LDEuMzktMi4zNjMuNzgyLTUuNDM0QTI3LjIxMiwyNy4yMTIsMCwwLDAsMTkuOSwxMy43NCwyNy42LDI3LjYsMCwwLDAsMTQuNzU1LDcuMWMtMi40MjQtMi4xNTItNC4zOS0yLjYzMy01LjE5MS0yLjE2OWEyLjMyNywyLjMyNywwLDAsMC0uODU1LDEuNjYyLDEwLjE5NCwxMC4xOTQsMCwwLDAsLjE1MywzLjU2NSwyNy40NjUsMjcuNDY1LDAsMCwwLDMuMjM2LDguMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz5cIixcblx0XCJSZWFzb25cIjogXCI8cG9seWxpbmUgcG9pbnRzPVxcXCIyIDIgMzAgMiAzMCAzMCAyIDMwIDIgMlxcXCIgc3R5bGU9XFxcImZpbGw6I2RkNGIzOVxcXCIvPjxwYXRoIGQ9XFxcIk05LjA1MSwxNy41MjdxMi41MzcsMCw1LjA3MiwwQTQuOTQ3LDQuOTQ3LDAsMCwxLDE3LjEsMTguNWEzLjI5LDMuMjksMCwwLDEsMS4xMjgsMi4yNjcsNC4xMTcsNC4xMTcsMCwwLDEtLjc3OCwzLjAyMiwzLjYsMy42LDAsMCwxLTEuMTM3LjkwNWwyLjI0NywzLjU0OS0zLjA2MSwwLTEuNi0zLjA0My0yLjE1NCwwLDAsMy4wMzJIOS4wNTFWMTcuNTI3bTIuNjksMi4xMjgsMCwzLjQzOCwxLjk4OSwwYTIuMTg0LDIuMTg0LDAsMCwwLDEuNDY4LS40NTIsMS44MTQsMS44MTQsMCwwLDAsLjQ4Mi0xLjU0NCwxLjQ2OSwxLjQ2OSwwLDAsMC0uNzA1LTEuMTgsMi43NjgsMi43NjgsMCwwLDAtMS40MzctLjI2OUMxMi45NCwxOS42NTQsMTEuNzQxLDE5LjY1NSwxMS43NDEsMTkuNjU1Wm04LjM4NC0yLjEzaDguMzV2Mi4xM2gtNS42NlYyMS44bDUuMTEsMHYyLjExOUgyMi44MlYyNi4xaDUuODI0djIuMTQySDIwLjEyNVYxNy41MjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiUmVnb1wiOiBcIjxkZWZzPjxjbGlwUGF0aCBpZD1cXFwiYVxcXCI+PHBhdGggZD1cXFwiTTcuMDU1LDE2LjI0MWMzLjQxNS0xMC4yMiwxNC43NTktOS40NzMsMTcuOTI0LDBsLjEsNS44OTNhMTUuNTYyLDE1LjU2MiwwLDAsMC05LjAzNiw3LjI0NkExNy42NDEsMTcuNjQxLDAsMCwwLDcuMDMsMjIuMzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjwvY2xpcFBhdGg+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcmVnbzwvdGl0bGU+PHBhdGggZD1cXFwiTTcuMDMsMTYuMjQxbDIuNi00LjU1OWMtMi40MTgtLjMxMi0yLjYwNi0zLjQzMS0uOC05LjA2MkMzLjgwOSw4Ljg1MywyLjQyLDEwLjIyOCw3LjAzLDE2LjI0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZmJmYmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMjQuOTcsMTYuMjQxbC0yLjU5NS00LjU1OWMyLjQxOC0uMzEyLDIuNjA2LTMuNDMxLjgtOS4wNjJDMjguMTkxLDguODUzLDI5LjU4LDEwLjIyOCwyNC45NywxNi4yNDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTcuMDU1LDE2LjI0MWMzLjQxNS0xMC4yMiwxNC43NTktOS40NzMsMTcuOTI0LDBsLjEsNS44OTNhMTUuNTYyLDE1LjU2MiwwLDAsMC05LjAzNiw3LjI0NkExNy42NDEsMTcuNjQxLDAsMCwwLDcuMDMsMjIuMzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjxnIHN0eWxlPVxcXCJjbGlwLXBhdGg6dXJsKCNhKVxcXCI+PHJlY3QgeD1cXFwiMTYuMDUzXFxcIiB5PVxcXCI3Ljk2MlxcXCIgd2lkdGg9XFxcIjkuNTQ5XFxcIiBoZWlnaHQ9XFxcIjIxLjg5OVxcXCIgc3R5bGU9XFxcImZpbGw6IzUzNjM2N1xcXCIvPjxyZWN0IHg9XFxcIjUuMzIyXFxcIiB5PVxcXCI3Ljk2MlxcXCIgd2lkdGg9XFxcIjEwLjczMlxcXCIgaGVpZ2h0PVxcXCIyMS44OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ODkyOWFcXFwiLz48L2c+PGNpcmNsZSBjeD1cXFwiMTYuMDRcXFwiIGN5PVxcXCIxNi4yNDFcXFwiIHI9XFxcIjEuMTY2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiUmVTY3JpcHRcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxMS40MjFcXFwiIHkxPVxcXCItMjIxLjcwNVxcXCIgeDI9XFxcIjIxLjUwOVxcXCIgeTI9XFxcIi0yNDguNzkyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtMjE4KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U4NGY0ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MDlcXFwiIHN0b3AtY29sb3I9XFxcIiNkYjQ2NDZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjY2IzOTM5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9yZXNjcmlwdDwvdGl0bGU+PHBhdGggZD1cXFwiTTIsMTAuOTdjMC0zLjczOCwwLTUuNi45NTItNi45MTZhNC45OTIsNC45OTIsMCwwLDEsMS4xLTEuMUM1LjM2NCwyLDcuMjMzLDIsMTAuOTY5LDJIMjEuMDNjMy43MzgsMCw1LjYwNSwwLDYuOTE2Ljk1MWE0Ljk5Miw0Ljk5MiwwLDAsMSwxLjEsMS4xQzMwLDUuMzY0LDMwLDcuMjMyLDMwLDEwLjk3VjIxLjAzYzAsMy43MzcsMCw1LjYwNS0uOTUyLDYuOTE2YTQuOTY2LDQuOTY2LDAsMCwxLTEuMSwxLjFDMjYuNjM2LDMwLDI0Ljc2OCwzMCwyMS4wMywzMEgxMC45NjljLTMuNzM2LDAtNS42LDAtNi45MTUtLjk1MmE0Ljk2Niw0Ljk2NiwwLDAsMS0xLjEtMS4xQzIsMjYuNjM2LDIsMjQuNzY3LDIsMjEuMDNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjk3NCwxNS41NTRhMy4zMjUsMy4zMjUsMCwxLDAtMy4zMjQtMy4zMjVBMy4zMjUsMy4zMjUsMCwwLDAsMjAuOTc0LDE1LjU1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNOS4zMTYsMTEuODA5YTQuNjc2LDQuNjc2LDAsMCwxLC4yMDYtMS45ODdBMS44ODYsMS44ODYsMCwwLDEsMTAuMzQ1LDlhNC43LDQuNywwLDAsMSwxLjk4Ny0uMjA1aDIuNjRWMjEuMDQ1YTQuNjg2LDQuNjg2LDAsMCwxLS4xNDQsMS42NjQsMS44OTIsMS44OTIsMCwwLDEtMS4wMiwxLjAyLDQuNzIsNC43MiwwLDAsMS0xLjY2NC4xNDMsNC43MTcsNC43MTcsMCwwLDEtMS42NjQtLjE0MywxLjg5MiwxLjg5MiwwLDAsMS0xLjAyLTEuMDIsNC43Miw0LjcyLDAsMCwxLS4xNDMtMS42NjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwicmVTVCAocmVTdHJ1Y3R1cmVkVGV4dClcIjogXCI8cGF0aCBkPVxcXCJNMTYsMzBBMTMuODU5LDEzLjg1OSwwLDAsMSwyLjI4NiwxNiwxNC4xNDksMTQuMTQ5LDAsMCwxLDYuMyw2LjEsMTMuNTE3LDEzLjUxNywwLDAsMSwyNS43LDYuMSwxNC4xNDksMTQuMTQ5LDAsMCwxLDI5LjcxNCwxNiwxMy44NTksMTMuODU5LDAsMCwxLDE2LDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlM2YzMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS44NjksMjMuMDE1aC0uNGE0LjI2Myw0LjI2MywwLDAsMS0xLjA0OC0uMTEzLDEuMzg3LDEuMzg3LDAsMCwxLS43NjctLjU0OCwyLjIsMi4yLDAsMCwxLS40MDktMS4wMjZBMTMuMjgsMTMuMjgsMCwwLDEsOS4xNTksMTkuNmExMi43OCwxMi43OCwwLDAsMC0uMDgtMS42ODcsMS43NzMsMS43NzMsMCwwLDAtLjQwNS0uOTI0LDEuMzI1LDEuMzI1LDAsMCwwLTEuMDI2LS4zOTFWMTUuNGExLjMyNSwxLjMyNSwwLDAsMCwxLjAyNi0uMzkxLDEuNzczLDEuNzczLDAsMCwwLC40MDUtLjkyNCwxMi43OCwxMi43OCwwLDAsMCwuMDgtMS42ODcsMTMuMjgsMTMuMjgsMCwwLDEsLjA4NC0xLjczMSwyLjIsMi4yLDAsMCwxLC40MDktMS4wMjYsMS4zODcsMS4zODcsMCwwLDEsLjc2Ny0uNTQ4LDQuMjYzLDQuMjYzLDAsMCwxLDEuMDQ4LS4xMTNoLjR2MS4xNGgtLjIyNnEtLjc2LDAtLjkzMS40YTcuNzIsNy43MiwwLDAsMC0uMTcyLDIuMTcsNC44NzYsNC44NzYsMCwwLDEtLjQxNiwyLjMxNkEyLjExNywyLjExNywwLDAsMSw4Ljg1OSwxNmEyLjA4OSwyLjA4OSwwLDAsMSwxLjI2NC45ODZBNC44NzYsNC44NzYsMCwwLDEsMTAuNTQsMTkuM2E3LjcyLDcuNzIsMCwwLDAsLjE3MiwyLjE3cS4xNzIuNC45MzEuNGguMjI2Wm0xLjYtMy4xNDFoMS4wMzVWMTYuNDJoMS40NTlsMS45NywzLjQ1NGgxLjE4NEwxNy4wNCwxNi4zMDhhMi4yNDMsMi4yNDMsMCwwLDAsMS44MzMtMi4zMTljMC0xLjctMS4yLTIuMjk0LTIuODU1LTIuMjk0SDEzLjQ3NFptMS4wMzUtNC4zVjEyLjUzaDEuMzU5YzEuMjcyLDAsMS45Ny4zODYsMS45NywxLjQ1OXMtLjcsMS41ODMtMS45NywxLjU4M1ptNS41NTctNi41OTFoLjRhNC4yNjMsNC4yNjMsMCwwLDEsMS4wNDguMTEzLDEuMzg3LDEuMzg3LDAsMCwxLC43NjcuNTQ4LDIuMiwyLjIsMCwwLDEsLjQwOSwxLjAyNiwxMy4yOCwxMy4yOCwwLDAsMSwuMDg0LDEuNzMxLDEyLjc4LDEyLjc4LDAsMCwwLC4wOCwxLjY4NywxLjc3MywxLjc3MywwLDAsMCwuNDA1LjkyNCwxLjMyNSwxLjMyNSwwLDAsMCwxLjAyNi4zOTF2MS4xOTFhMS4zMjUsMS4zMjUsMCwwLDAtMS4wMjYuMzkxLDEuNzczLDEuNzczLDAsMCwwLS40MDUuOTI0LDEyLjc4LDEyLjc4LDAsMCwwLS4wOCwxLjY4NywxMy4yOCwxMy4yOCwwLDAsMS0uMDg0LDEuNzMxLDIuMiwyLjIsMCwwLDEtLjQwOSwxLjAyNiwxLjM4NywxLjM4NywwLDAsMS0uNzY3LjU0OCw0LjI2Myw0LjI2MywwLDAsMS0xLjA0OC4xMTNoLS40di0xLjE0aC4yMjZxLjc2LDAsLjkzMS0uNEE3LjcyLDcuNzIsMCwwLDAsMjEuNCwxOS4zYTQuODc2LDQuODc2LDAsMCwxLC40MTYtMi4zMTZBMi4wODksMi4wODksMCwwLDEsMjMuMDc1LDE2YTIuMTE3LDIuMTE3LDAsMCwxLTEuMjY0LS45OTQsNC44NzYsNC44NzYsMCwwLDEtLjQxNi0yLjMxNiw3LjcyLDcuNzIsMCwwLDAtLjE3Mi0yLjE3cS0uMTcyLS40LS45MzEtLjRoLS4yMjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiUm9ib3QgRnJhbWV3b3JrXCI6IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMzg3LDE0LjZhMi43MjcsMi43MjcsMCwwLDEsNS40NTMsMCwuOTkuOTksMCwxLDEtMS45OCwwLC43NDYuNzQ2LDAsMCwwLTEuNDkyLDAsLjk5Ljk5LDAsMSwxLTEuOTgsMG0xMS4zLDQuNTg2YS45OTEuOTkxLDAsMCwxLS45OTIuOTkySDExLjUwOGEuOTkyLjk5MiwwLDAsMSwwLTEuOTg0aDkuMTg0YS45OTQuOTk0LDAsMCwxLC45OTIuOTkyTTE3LjM5MSwxNS4xNmEuOTkyLjk5MiwwLDAsMSwuMjctMS4zNzVsMi4yOTMtMS41NTFhLjk4OS45ODksMCwxLDEsMS4xMDksMS42MzdsLTIuMywxLjU1MWEuOTY1Ljk2NSwwLDAsMS0uNTUxLjE3Mi45OTQuOTk0LDAsMCwxLS44MjQtLjQzNG02LjI4OSw2LjA5NGEuNzA3LjcwNywwLDAsMS0uMjA3LjVsLTEuNzA3LDEuNzA3YS43MDcuNzA3LDAsMCwxLS41LjIwN0gxMC44YS43MDcuNzA3LDAsMCwxLS41LS4yMDdMOC42LDIxLjc1NGEuNzA3LjcwNywwLDAsMS0uMjA3LS41VjEwLjhhLjcwNy43MDcsMCwwLDEsLjIwNy0uNUwxMC4zLDguNTk0YS43MDcuNzA3LDAsMCwxLC41LS4yMDdIMjEuMjY2YS43MDcuNzA3LDAsMCwxLC41LjIwN0wyMy40NzMsMTAuM2EuNzA3LjcwNywwLDAsMSwuMjA3LjVaTTI1LjEyOSw5LjE2LDIyLjksNi45M0ExLjgwNywxLjgwNywwLDAsMCwyMS42MjksNi40SDEwLjQzOGExLjgwNywxLjgwNywwLDAsMC0xLjI3My41MjdMNi45MzgsOS4xNmExLjgsMS44LDAsMCwwLS41MjcsMS4yN1YyMS42MjFhMS44LDEuOCwwLDAsMCwuNTI3LDEuMjczbDIuMjI3LDIuMjNhMS44MSwxLjgxLDAsMCwwLDEuMjczLjUyM0gyMS42MjlhMS44LDEuOCwwLDAsMCwxLjI3My0uNTIzbDIuMjI3LTIuMjNhMS43ODQsMS43ODQsMCwwLDAsLjUyNy0xLjI3M1YxMC40MzRhMS43ODQsMS43ODQsMCwwLDAtLjUyNy0xLjI3M1xcXCIvPlwiLFxuXHRcIlJ1YnlcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMjM1Ljk1N1xcXCIgeTE9XFxcIi0zMDguNTc5XFxcIiB4Mj1cXFwiLTIzNS45ODZcXFwiIHkyPVxcXCItMzA4LjUyN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgyMDIuOTM1LCAwLCAwLCAtMjAyLjc4LCA0NzkxMC40NjEsIC02MjU0MS4xNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYjc2NTVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDFcXFwiIHN0b3AtY29sb3I9XFxcIiNlNDJiMWVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM5MDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5MDBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi0yMzUuNTcxXFxcIiB5MT1cXFwiLTMwOS4wODdcXFwiIHgyPVxcXCItMjM1LjY5N1xcXCIgeTI9XFxcIi0zMDkuMDQxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDYwLjMwOCwgMCwgMCwgLTExMS43NzgsIDE0MjM2LjM1MSwgLTM0NTI1LjM5NSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4NzExMDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM5MTEyMDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5MTEyMDlcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi0yMzUuODk2XFxcIiB5MT1cXFwiLTMxMy4zNjJcXFwiIHgyPVxcXCItMjM1LjkzN1xcXCIgeTI9XFxcIi0zMTMuMTI5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE4OC4zMiwgMCwgMCwgLTIxLjk4NiwgNDQ0NDcuMzAyLCAtNjg1Ni44ODIpXFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi0yMzMuNTE1XFxcIiB5MT1cXFwiLTMwOS4wODJcXFwiIHgyPVxcXCItMjMzLjQ5N1xcXCIgeTI9XFxcIi0zMDkuMTYxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDY1LjIyMiwgMCwgMCwgLTk3LjEsIDE1MjM3LjgwMiwgLTI5OTkxLjgxNClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjNcXFwiIHN0b3AtY29sb3I9XFxcIiNlNTcyNTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDZcXFwiIHN0b3AtY29sb3I9XFxcIiNkZTNiMjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhNjAwMDNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhNjAwMDNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIi0yMzUuMzE0XFxcIiB5MT1cXFwiLTMwOS41MzRcXFwiIHgyPVxcXCItMjM1LjMxXFxcIiB5Mj1cXFwiLTMwOS42MDdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTA1LjMyLCAwLCAwLCAtMTA2LjgyNSwgMjQ3OTguOTI1LCAtMzMwNTMuMTUyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2U0NzE0ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2JlMWEwZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmXFxcIiB4MT1cXFwiLTIzNS44ODJcXFwiIHkxPVxcXCItMzExLjg1MVxcXCIgeDI9XFxcIi0yMzUuODY5XFxcIiB5Mj1cXFwiLTMxMS45MzVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoOTQuMzIxLCAwLCAwLCAtNjYuNDE4LCAyMjI3MS40OTksIC0yMDcwNy4wMDQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZTQ2MzQyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjRcXFwiIHN0b3AtY29sb3I9XFxcIiNjODI0MTBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMDBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIi0yMzUuNDEyXFxcIiB5MT1cXFwiLTMyMS4wNzRcXFwiIHgyPVxcXCItMjM1LjMzM1xcXCIgeTI9XFxcIi0zMjAuOTU4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDcwLjc2NywgMCwgMCwgLTI0LjMwMSwgMTY2NzguMTE2LCAtNzc5OC42NDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU0XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzgxZjExXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmYwOTA1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYmYwOTA1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImhcXFwiIHgxPVxcXCItMjIzLjgyMVxcXCIgeTE9XFxcIi0zMTAuMTE2XFxcIiB4Mj1cXFwiLTIyMy43OTZcXFwiIHkyPVxcXCItMzEwLjE4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE4LjE3NywgMCwgMCwgLTcyLjY0NSwgNDA3MS4wMTcsIC0yMjUxMC4yMzMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGU0MDI0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmYxOTBiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYmYxOTBiXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImlcXFwiIHgxPVxcXCItMjM1LjU2MVxcXCIgeTE9XFxcIi0zMDkuMjU4XFxcIiB4Mj1cXFwiLTIzNS40MjRcXFwiIHkyPVxcXCItMzA5LjExNlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxNTguMTYyLCAwLCAwLCAtMTU3LjkzNywgMzcyNTYuMzEzLCAtNDg4MTkuMzgyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2JkMDAxMlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2M4MmYxY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzgyMGMwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2EzMTYwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MlxcXCIgc3RvcC1jb2xvcj1cXFwiI2IzMTMwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U4MjYwOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U4MjYwOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiLTIzNS40MjRcXFwiIHkxPVxcXCItMzA5LjE0M1xcXCIgeDI9XFxcIi0yMzUuNDc2XFxcIiB5Mj1cXFwiLTMwOS4xMjZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTI3LjA3NCwgMCwgMCwgLTk3LjQwOSwgMjk5MzIuMjI5LCAtMzAwODYuOTQ3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzhjMGMwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzk5MGMwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwZVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJrXFxcIiB4MT1cXFwiLTIzNS44MzlcXFwiIHkxPVxcXCItMzA5LjYwNFxcXCIgeDI9XFxcIi0yMzUuOTAxXFxcIiB5Mj1cXFwiLTMwOS41NTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoOTQuMDExLCAwLCAwLCAtMTA1LjYwMywgMjIxOTguNzQzLCAtMzI2NzYuODU2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzdlMTEwYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzllMGMwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzllMGMwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJsXFxcIiB4MT1cXFwiLTIzNS44NTRcXFwiIHkxPVxcXCItMzExLjI0XFxcIiB4Mj1cXFwiLTIzNS44OTFcXFwiIHkyPVxcXCItMzExLjIwMlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg3OS43MDIsIDAsIDAsIC04MS43OTEsIDE4ODI3LjM5NywgLTI1NDQ3LjkwNSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM3OTEzMGRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZTEyMGJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZTEyMGJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwibVxcXCIgY3g9XFxcIi0yMzUuODgyXFxcIiBjeT1cXFwiLTMxMi41NDNcXFwiIHI9XFxcIjAuMDc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDkzLjExMywgMCwgMCwgLTQ4LjY1NSwgMjE5ODYuMDczLCAtMTUxOTMuNjEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjN2UwZTA4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjN2UwZTA4XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcIm5cXFwiIGN4PVxcXCItMjM1LjI4MlxcXCIgY3k9XFxcIi0zMDkuNzA0XFxcIiByPVxcXCIwLjA5N1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg5Ny40MzQsIDAsIDAsIC03NS44NDgsIDIyOTM3LjA1NywgLTIzNDY3Ljg0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2EzMGMwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzgwMGUwOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzgwMGUwOFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJvXFxcIiB4MT1cXFwiLTIzMS4yNDFcXFwiIHkxPVxcXCItMzA5LjQzNVxcXCIgeDI9XFxcIi0yMzEuMjk5XFxcIiB5Mj1cXFwiLTMwOS4zMzdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNDAuMTM3LCAwLCAwLCAtODEuMTQzLCA5Mjg2Ljk5OCwgLTI1MDc4LjU4OSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4YjIxMTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDNcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZTEwMGFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiMzEwMGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiMzEwMGNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwicFxcXCIgeDE9XFxcIi0yMzUuODk4XFxcIiB5MT1cXFwiLTMxNy40NjZcXFwiIHgyPVxcXCItMjM1LjgzMVxcXCIgeTI9XFxcIi0zMTcuNTM3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDc4LjA5OSwgMCwgMCwgLTMyLjYyNCwgMTg0NDcuMzYxLCAtMTAzNTMuNTUzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2IzMTAwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzkxMGYwOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzc5MWMxMlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzc5MWMxMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcnVieTwvdGl0bGU+PHBhdGggZD1cXFwiTTIzLjY5MywyMC40NjksNy43MDcsMjkuOTYxbDIwLjctMS40TDMwLDcuNjg1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOC40NCwyOC41NDIsMjYuNjYxLDE2LjI2M2wtNC44NDYsNi40WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOC40NjQsMjguNTQyLDE1LjQzLDI3LjUxOSw3Ljc3NiwyOS45MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTcuNzk0LDI5LjkzNywxMS4wNSwxOS4yNywzLjg4NSwyMC44WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS44MTMsMjIuN2wtMy0xMS43MzVMMTAuMjQzLDE5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS4zMiwxMS4xMjdsLTguMS02LjYxOS0yLjI1Nyw3LjNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTI1LjUzLDIuMTQ4LDIwLjc2Myw0Ljc4MmwtMy4wMDctMi42N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNMiwyNC4zOGwyLTMuNjQyTDIuMzgyLDE2LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTIuMjc0LDE2LjI2MywzLjksMjAuODczbDcuMDYyLTEuNTg0TDE5LjAyNCwxMS44LDIxLjMsNC41NjlsLTMuNTgzLTIuNTMtNi4wOTEsMi4yOEM5LjcwNiw2LjEsNS45ODIsOS42MzUsNS44NDgsOS43cy0yLjQ1OSw0LjQ2NC0zLjU3NCw2LjU2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNy45ODEsNy45ODFDMTIuMTQsMy44NTgsMTcuNSwxLjQyMSwxOS41NTksMy41cy0uMTI0LDcuMTIxLTQuMjgzLDExLjI0NFM1LjgyMSwyMS40MzQsMy43NjUsMTkuMzU4LDMuODIyLDEyLjEsNy45ODEsNy45ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2kpXFxcIi8+PHBhdGggZD1cXFwiTTcuNzk0LDI5LjkzM2wzLjIzMS0xMC43LDEwLjcyOSwzLjQ0N2MtMy44NzksMy42MzgtOC4xOTQsNi43MTMtMTMuOTYsNy4yNTRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTE5LjAzOCwxMS43NzRsMi43NTQsMTAuOTFjMy4yNC0zLjQwNyw2LjE0OS03LjA3LDcuNTczLTExLjZsLTEwLjMyOC42OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2spXFxcIi8+PHBhdGggZD1cXFwiTTI5LjMzNywxMS4xMzljMS4xLTMuMzI3LDEuMzU3LTguMS0zLjg0MS04Ljk4NUwyMS4yMzEsNC41MDlsOC4xMDYsNi42MjlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2wpXFxcIi8+PHBhdGggZD1cXFwiTTIsMjQuMzMyYy4xNTMsNS40OSw0LjExNCw1LjU3Miw1LjgsNS42MmwtMy45LTkuMUwyLDI0LjMzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ZTEyMDlcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDUzLDExLjc5MWMyLjQ5LDEuNTMxLDcuNTA5LDQuNiw3LjYxLDQuNjYxYTE3LjU1MiwxNy41NTIsMCwwLDAsMi42MTktNS4zNDNsLTEwLjIyOS42ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI20pXFxcIi8+PHBhdGggZD1cXFwiTTExLjAyMSwxOS4yMzJsNC4zMTksOC4zMzJhMjcuOTI0LDI3LjkyNCwwLDAsMCw2LjM4NS00Ljg4bC0xMC43LTMuNDUyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNuKVxcXCIvPjxwYXRoIGQ9XFxcIk0zLjg4NywyMC44NjFsLS42MTIsNy4yODdjMS4xNTUsMS41NzcsMi43NDMsMS43MTQsNC40MDksMS41OTEtMS4yMDUtMy0zLjYxNC05LTMuOC04Ljg3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbylcXFwiLz48cGF0aCBkPVxcXCJNMjEuMjA2LDQuNTI4bDguNTgsMS4yYy0uNDU4LTEuOTQtMS44NjQtMy4xOTItNC4yNjEtMy41ODRsLTQuMzE5LDIuMzhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3ApXFxcIi8+XCIsXG5cdFwiUnVzdFwiOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIi00OTIuMDM1XFxcIiBjeT1cXFwiLTg4My4zN1xcXCIgcj1cXFwiMTMuOTk4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuODY2LCAtMC41LCAtMC4zLCAtMC41MiwgMTc3LjEwNiwgLTY4OS4wMzMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjN2Q3ZDdkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjI2N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzdlN2M3YVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NVxcXCIgc3RvcC1jb2xvcj1cXFwiIzgxNzg3MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MDhcXFwiIHN0b3AtY29sb3I9XFxcIiM4NjcxNjJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzUzXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGQ2ODRjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjg4NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzk2NWMzMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2EwNGYxMlxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcnVzdDwvdGl0bGU+PHBhdGggZD1cXFwiTTE1LjEyNCw1LjNhLjgzMi44MzIsMCwxLDEsLjgzMi44MzJoMGEuODMxLjgzMSwwLDAsMS0uODMyLS44MzJNNS4yLDEyLjgzNGEuODMyLjgzMiwwLDEsMSwuODMyLjgzMmgwYS44MzIuODMyLDAsMCwxLS44MzItLjgzMm0xOS44NTYuMDM5YS44MzIuODMyLDAsMSwxLC44MzIuODMyLjgzMS44MzEsMCwwLDEtLjgzMi0uODMyaDBNNy42MDUsMTQuMDEzYS43Ni43NiwwLDAsMCwuMzg2LTFsLS4zNjktLjgzNUg5LjA3NHY2LjU0NUg2LjE0NGExMC4yNDcsMTAuMjQ3LDAsMCwxLS4zMzItMy45MTFabTYuMDc0LjE2MVYxMi4yNDVoMy40NThjLjE3OSwwLDEuMjYxLjIwNiwxLjI2MSwxLjAxNiwwLC42NzItLjgzLjkxMy0xLjUxMy45MTNaTTguOTU4LDI0LjU2MWEuODMyLjgzMiwwLDEsMSwuODMyLjgzMi44MzEuODMxLDAsMCwxLS44MzItLjgzMmgwbTEyLjMzMS4wMzlhLjgzMi44MzIsMCwxLDEsLjgzMi44MzIuODMyLjgzMiwwLDAsMS0uODMyLS44MzJoMG0uMjU3LTEuODg3YS43NTguNzU4LDAsMCwwLS45LjU4NGwtLjQxOCwxLjk0OWExMC4yNDksMTAuMjQ5LDAsMCwxLTguNTQ1LS4wNDFsLS40MTctMS45NDlhLjc1OS43NTksMCwwLDAtLjktLjU4M2gwbC0xLjcyMS4zN2ExMC4yMzMsMTAuMjMzLDAsMCwxLS44OS0xLjA0OWg4LjM3NGMuMDk1LDAsLjE1OC0uMDE3LjE1OC0uMVYxOC45MjhjMC0uMDg2LS4wNjMtLjEtLjE1OC0uMWgtMi40NVYxNi45NDdoMi42NDlhMS42NjUsMS42NjUsMCwwLDEsMS42MjksMS40MTJjLjEwNS40MTMuMzM2LDEuNzU3LjQ5NCwyLjE4Ny4xNTcuNDgzLjgsMS40NDcsMS40ODIsMS40NDdoNC4zMjNhMTAuMjQzLDEwLjI0MywwLDAsMS0uOTQ5LDEuMVptNC42NS03LjgyMWExMC4yNjEsMTAuMjYxLDAsMCwxLC4wMjIsMS43NzlIMjUuMTY3Yy0uMTA1LDAtLjE0OC4wNjktLjE0OC4xNzJ2LjQ4M2MwLDEuMTM2LS42NDEsMS4zODQtMS4yLDEuNDQ3LS41MzUuMDYtMS4xMjgtLjIyNC0xLjItLjU1MWEzLjYxNiwzLjYxNiwwLDAsMC0xLjY3MS0yLjgwOGMxLjAzLS42NTQsMi4xLTEuNjE5LDIuMS0yLjkxMUEzLjI5MiwzLjI5MiwwLDAsMCwyMS40NCw5LjhhNC41NTksNC41NTksMCwwLDAtMi4yLS43MjRIOC4zNjdBMTAuMjQ2LDEwLjI0NiwwLDAsMSwxNC4xLDUuODRsMS4yODIsMS4zNDRhLjc1OC43NTgsMCwwLDAsMS4wNzIuMDI2aDBsMS40MzQtMS4zNzJhMTAuMjQ4LDEwLjI0OCwwLDAsMSw3LjAxNSw1bC0uOTgyLDIuMjE3YS43NjEuNzYxLDAsMCwwLC4zODYsMVptMi40NDguMDM2LS4wMzMtLjM0MywxLjAxMS0uOTQzYS40Mi40MiwwLDAsMC0uMDEzLS41OTUuNDI4LjQyOCwwLDAsMC0uMTIxLS4wODFMMjguMiwxMi40ODNsLS4xLS4zMzQuODA2LTEuMTJhLjQyMi40MjIsMCwwLDAtLjEzLS41ODEuNDMuNDMsMCwwLDAtLjEzMy0uMDU1bC0xLjM2My0uMjIyLS4xNjQtLjMwNi41NzMtMS4yNTdhLjQxOS40MTksMCwwLDAtLjIzNi0uNTQ0LjQyNi40MjYsMCwwLDAtLjE0Ni0uMDI5bC0xLjM4My4wNDhMMjUuNyw3LjgxOWwuMzE4LTEuMzQ3YS40MjEuNDIxLDAsMCwwLS4zNDMtLjQ4Ny40MzUuNDM1LDAsMCwwLS4xNDQsMEwyNC4xODMsNi4zbC0uMjY2LS4yMTlMMjMuOTY2LDQuN2EuNDIxLjQyMSwwLDAsMC0uNDMxLS40MTEuNDI2LjQyNiwwLDAsMC0uMTQxLjAyOGwtMS4yNTcuNTczLS4zMDYtLjE2NC0uMjIyLTEuMzYzYS40MjEuNDIxLDAsMCwwLS41LS4zMTguNDMuNDMsMCwwLDAtLjEzMy4wNTVsLTEuMTIxLjgwNi0uMzMzLS4xLS40ODMtMS4yOTNhLjQyMS40MjEsMCwwLDAtLjU1NS0uMjE1LjQ0Mi40NDIsMCwwLDAtLjEyLjA4TDE3LjQxOCwzLjM5bC0uMzQzLS4wMzNMMTYuMzQ3LDIuMThhLjQyMS40MjEsMCwwLDAtLjY4OCwwbC0uNzI4LDEuMTc3LS4zNDMuMDMzLS45NDMtMS4wMTJhLjQyMS40MjEsMCwwLDAtLjU5NS4wMTUuNDQyLjQ0MiwwLDAsMC0uMDguMTJMMTIuNDgzLDMuOGwtLjMzMy4xLTEuMTItLjhhLjQyMi40MjIsMCwwLDAtLjU4MS4xMy40My40MywwLDAsMC0uMDU1LjEzM2wtLjIyMiwxLjM2My0uMzA2LjE2NEw4LjYwOCw0LjMxN2EuNDIxLjQyMSwwLDAsMC0uNTQ0LjIzOS40NDQuNDQ0LDAsMCwwLS4wMjguMTQ0bC4wNDgsMS4zODNMNy44MTgsNi4zLDYuNDcxLDUuOTg0YS40MjEuNDIxLDAsMCwwLS40ODcuMzQzLjQzNS40MzUsMCwwLDAsMCwuMTQ0TDYuMyw3LjgxOWwtLjIxOC4yNjVMNC43LDguMDM2YS40MjIuNDIyLDAsMCwwLS4zODMuNTczTDQuODksOS44NjZsLS4xNjQuMzA2LTEuMzYzLjIyMmEuNDIuNDIsMCwwLDAtLjMxOC41LjQzLjQzLDAsMCwwLC4wNTUuMTMzbC44MDYsMS4xMi0uMS4zMzQtMS4yOTMuNDgzYS40MjEuNDIxLDAsMCwwLS4yMTUuNTU1LjQxNC40MTQsMCwwLDAsLjA4MS4xMjFsMS4wMTEuOTQzLS4wMzMuMzQzLTEuMTc3LjcyOGEuNDIxLjQyMSwwLDAsMCwwLC42ODhsMS4xNzcuNzI4LjAzMy4zNDMtMS4wMTEuOTQzYS40MjEuNDIxLDAsMCwwLC4wMTUuNTk1LjQzNi40MzYsMCwwLDAsLjExOS4wOGwxLjI5My40ODMuMS4zMzRMMy4xLDIwLjk3MmEuNDIxLjQyMSwwLDAsMCwuMTMxLjU4MS40My40MywwLDAsMCwuMTMzLjA1NWwxLjM2My4yMjIuMTY0LjMwNy0uNTczLDEuMjU3YS40MjIuNDIyLDAsMCwwLC4yNC41NDUuNDM4LjQzOCwwLDAsMCwuMTQzLjAyOGwxLjM4My0uMDQ4LjIxOS4yNjYtLjMxNywxLjM0OGEuNDIuNDIsMCwwLDAsLjM0MS40ODYuNC40LDAsMCwwLC4xNDYsMEw3LjgxOCwyNS43bC4yNjYuMjE4TDguMDM1LDI3LjNhLjQxOS40MTksMCwwLDAsLjQyOS40MS40MTMuNDEzLDAsMCwwLC4xNDMtLjAyOGwxLjI1Ny0uNTczLjMwNi4xNjQuMjIyLDEuMzYyYS40MjEuNDIxLDAsMCwwLC41LjMxOS40MDcuNDA3LDAsMCwwLC4xMzMtLjA1NWwxLjEyLS44MDcuMzM0LjEuNDgzLDEuMjkyYS40MjIuNDIyLDAsMCwwLC41NTYuMjE0LjQzNi40MzYsMCwwLDAsLjExOS0uMDhsLjk0My0xLjAxMS4zNDMuMDM0LjcyOCwxLjE3N2EuNDIyLjQyMiwwLDAsMCwuNTg4LjEuNDEzLjQxMywwLDAsMCwuMS0uMWwuNzI4LTEuMTc3LjM0My0uMDM0Ljk0MywxLjAxMWEuNDIxLjQyMSwwLDAsMCwuNTk1LS4wMTUuNDM2LjQzNiwwLDAsMCwuMDgtLjExOWwuNDgzLTEuMjkyLjMzNC0uMSwxLjEyLjgwN2EuNDIxLjQyMSwwLDAsMCwuNTgxLS4xMzEuNDMuNDMsMCwwLDAsLjA1NS0uMTMzbC4yMjItMS4zNjIuMzA2LS4xNjQsMS4yNTcuNTczYS40MjEuNDIxLDAsMCwwLC41NDQtLjIzOS40MzguNDM4LDAsMCwwLC4wMjgtLjE0M2wtLjA0OC0xLjM4NC4yNjUtLjIxOCwxLjM0Ny4zMTdhLjQyMS40MjEsMCwwLDAsLjQ4Ny0uMzQuNDQ3LjQ0NywwLDAsMCwwLS4xNDZMMjUuNywyNC4xODNsLjIxOC0uMjY2LDEuMzgzLjA0OGEuNDIxLjQyMSwwLDAsMCwuNDEtLjQzMS40LjQsMCwwLDAtLjAyOC0uMTQybC0uNTczLTEuMjU3LjE2NC0uMzA3LDEuMzYzLS4yMjJhLjQyMS40MjEsMCwwLDAsLjMxOS0uNS40MzQuNDM0LDAsMCwwLS4wNTYtLjEzNWwtLjgwNi0xLjEyLjEtLjMzNCwxLjI5My0uNDgzYS40Mi40MiwwLDAsMCwuMjE1LS41NTQuNDE0LjQxNCwwLDAsMC0uMDgxLS4xMjFsLTEuMDExLS45NDMuMDMzLS4zNDMsMS4xNzctLjcyOGEuNDIxLjQyMSwwLDAsMCwwLS42ODhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdFwiU0FTXCI6IFwiPHBhdGggZD1cXFwiTTE2LjAxOCwzMEExNCwxNCwwLDEsMSwzMCwxNi4yLDE0LDE0LDAsMCwxLDE2LjAxOCwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDJiYjVcXFwiLz48cGF0aCBkPVxcXCJNOS4xNywyMi42M2MuMDI2LjA2MS4wNDYuMTI0LjA3Ny4xODMsMi4yMTUsNC4yMDYsNy43MzgsNC42MTYsMTAuNzU2LDIuNDU0YTYuMDE3LDYuMDE3LDAsMCwwLDEuNzMxLTguNTgzLDE1LjcsMTUuNywwLDAsMC0xLjMxOC0xLjczMWMtLjg4MS0xLjA2Ny0xLjc1NS0yLjE0LTIuNjM2LTMuMjA3LS4zNjYtLjQ0My0uNzY3LS44MzUtMS40MTYtLjY4M2ExLjM5MywxLjM5MywwLDAsMC0uODE2LDIuMzExYy44ODgsMS4xMDYsMS44MTksMi4xNzcsMi43LDMuMjg2YTMuODc0LDMuODc0LDAsMCwxLC41ODksNC40LDUuNDIzLDUuNDIzLDAsMCwxLTUsMy4xMzRBNi42LDYuNiwwLDAsMSw5LjE3LDIyLjYzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi40OTQsOS42MDljLjA4LS4yNDgtLjA2Ni0uMzctLjE0MS0uNTA5QTcuNDc3LDcuNDc3LDAsMCwwLDEyLjYsNi4yMzdjLTMuMywxLjYzLTUuMSw1LjM1Mi0yLjYzNyw5LjE0N2E1Ni41Myw1Ni41MywwLDAsMCw0LjEzNSw1LjEyLDEuMDEyLDEuMDEyLDAsMCwwLC43MDkuMzQ1LDEuMzg0LDEuMzg0LDAsMCwwLDEuNDI4LS43NjUsMS4yNDcsMS4yNDcsMCwwLDAtLjE3My0xLjUwN2MtLjg3Ni0xLjA1MS0xLjc2OS0yLjA4OC0yLjYxNS0zLjE2MmE0LjEzLDQuMTMsMCwwLDEsLjMyMy01Ljc3MUE2LjA1NCw2LjA1NCwwLDAsMSwxOS45ODQsOC4xMyw1LjE5LDUuMTksMCwwLDEsMjIuNDk0LDkuNjA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlNhc3MgKFNhc3MpXCI6IFwiPHBhdGggZD1cXFwiTTI2LjExLDE3LjU3MmE1LjgsNS44LDAsMCwwLTIuNTM3LjU4OCw1LjM0NSw1LjM0NSwwLDAsMS0uNTY4LTEuMzE0LDMuNTMsMy41MywwLDAsMS0uMDUxLTEuMSw5LjgxMSw5LjgxMSwwLDAsMSwuMzMyLTEuMTkyYy0uMDA1LS4wNTEtLjA2MS0uMjkyLS42MjQtLjNzLTEuMDQ4LjEwNy0xLjEuMjU2YTYuMTcxLDYuMTcxLDAsMCwwLS4yMzUuODM0LDE5LjY4NiwxOS42ODYsMCwwLDEtMS43MTMsMy4yOTQsMy4xODYsMy4xODYsMCwwLDEtLjQ0LTIuMDY2LDkuODExLDkuODExLDAsMCwxLC4zMzItMS4xOTJjLS4wMDUtLjA1MS0uMDYxLS4yOTItLjYyNC0uM3MtMS4wNDguMTA3LTEuMS4yNTYtLjExOC41LS4yMzUuODM0LTEuNDgzLDMuMzg2LTEuODQxLDQuMTczYy0uMTg0LjQtLjM0My43MjYtLjQ1NS45NDZoMGEuMjMzLjIzMywwLDAsMS0uMDIuMDQxYy0uMS4xODktLjE1My4yOTItLjE1My4yOTJ2LjAwNWMtLjA3Ny4xMzgtLjE1OS4yNjYtLjIuMjY2YTEuNzExLDEuNzExLDAsMCwxLC4wMS0uODY5Yy4yLTEuMDU5LjY5LTIuNzA1LjY4NS0yLjc2MiwwLS4wMzEuMDkyLS4zMTctLjMxNy0uNDY1YS41MDguNTA4LDAsMCwwLS41NzguMWMtLjAzNiwwLS4wNjEuMDg3LS4wNjEuMDg3cy40NDUtMS44NTEtLjg0OS0xLjg1MWEzLjg1NSwzLjg1NSwwLDAsMC0yLjQ3NSwxLjY4M2MtLjM0OC4xODktMS4wODkuNTkzLTEuODgyLDEuMDI4LS4zLjE2OS0uNjE0LjMzOC0uOTA1LjUtLjAyLS4wMi0uMDQxLS4wNDYtLjA2MS0uMDY2QzYuODcsMTcuNiwzLjk3NSwxNi40MTYsNC4xLDE0LjE3MWMuMDQ2LS44MTguMzI3LTIuOTY2LDUuNTU5LTUuNTc1LDQuMzA2LTIuMTIyLDcuNzMzLTEuNTM0LDguMzI2LS4yMy44NDksMS44NjItMS44MzYsNS4zMTktNi4yODUsNS44MmEzLjM1MSwzLjM1MSwwLDAsMS0yLjgxMy0uNzExYy0uMjM1LS4yNTYtLjI3MS0uMjcxLS4zNTgtLjIyLS4xNDMuMDc3LS4wNTEuMzA3LDAsLjQ0YTIuNjI2LDIuNjI2LDAsMCwwLDEuNjA2LDEuMjYzLDguNTUsOC41NSwwLDAsMCw1LjIxNy0uNTE3YzIuNy0xLjA0Myw0LjgtMy45NDMsNC4xODQtNi4zNzItLjYxOS0yLjQ2NS00LjcxLTMuMjc4LTguNTgyLTEuOUExOS41LDE5LjUsMCwwLDAsNC4zNTksOS45NTJjLTIuMTMzLDEuOTk1LTIuNDcsMy43MjgtMi4zMzIsNC40NTUuNSwyLjU3OCw0LjA1MSw0LjI1NSw1LjQ3Miw1LjUtLjA3Mi4wNDEtLjEzOC4wNzctLjE5NC4xMDctLjcxMS4zNTMtMy40MjEsMS43Ny00LjEsMy4yNjgtLjc2NywxLjcuMTIzLDIuOTE1LjcxMSwzLjA3OWE0LjM3NCw0LjM3NCwwLDAsMCw0LjcxLTEuOTA4QTQuNzI1LDQuNzI1LDAsMCwwLDkuMDQ5LDIwLjFhLjEwNy4xMDcsMCwwLDAtLjAyLS4wMzFsLjU1Ny0uMzI3Yy4zNjMtLjIxNS43MjEtLjQxNCwxLjAyOC0uNTc4YTYuNzQsNi43NCwwLDAsMC0uMzYzLDEuODYyLDMuODg2LDMuODg2LDAsMCwwLC44MzQsMi43LjkyMS45MjEsMCwwLDAsLjY3NS4yMmMuNiwwLC44NzUtLjUsMS4xNzYtMS4wOTQuMzY4LS43MjYuNy0xLjU3LjctMS41N3MtLjQxNCwyLjI4MS43MTEsMi4yODFjLjQwOSwwLC44MjMtLjUzMiwxLjAwOC0uOHYuMDA1cy4wMS0uMDE1LjAzMS0uMDUxbC4wNjYtLjEwN3YtLjAxYy4xNjQtLjI4Ni41MzItLjkzNiwxLjA3OS0yLjAxNS43MDYtMS4zOTEsMS4zODYtMy4xMywxLjM4Ni0zLjEzYTguODg4LDguODg4LDAsMCwwLC4yNzEsMS4xMywxMC42NDMsMTAuNjQzLDAsMCwwLC41ODMsMS4zMDljLS4xNjQuMjMtLjI2Ni4zNTgtLjI2Ni4zNThsLjAwNS4wMDVjLS4xMzMuMTc0LS4yNzYuMzYzLS40MzUuNTQ3YTE2LjMsMTYuMywwLDAsMC0xLjMxNCwxLjY0Ny40NDcuNDQ3LDAsMCwwLC4xMjMuNiwxLjExNiwxLjExNiwwLDAsMCwuNjg1LjExMywzLjE0NywzLjE0NywwLDAsMCwxLjAyOC0uMjM1LDMuNDUsMy40NSwwLDAsMCwuODg1LS40NjUsMS45OCwxLjk4LDAsMCwwLC44NDktMS43NDQsMy41MjEsMy41MjEsMCwwLDAtLjMyMi0xLjIzM2MuMDUxLS4wNzIuMS0uMTQzLjE0OC0uMjE1YTIzLjQyOCwyMy40MjgsMCwwLDAsMS41MzQtMi42NDksOC44ODgsOC44ODgsMCwwLDAsLjI3MSwxLjEzLDcuNTcsNy41NywwLDAsMCwuNSwxLjEyNUE0Ljg2MSw0Ljg2MSwwLDAsMCwyMC45NjUsMjAuOGMtLjMyMi45MzEtLjA3MiwxLjM1LjQsMS40NDdhMS40MjUsMS40MjUsMCwwLDAsLjc0Ny0uMTUzLDMuNCwzLjQsMCwwLDAsLjk0Ni0uNDg2LDIuMTI2LDIuMTI2LDAsMCwwLDEuMDQzLTEuNzI5LDMuMjY4LDMuMjY4LDAsMCwwLS4yMzUtMS4wMjMsNS4zNTYsNS4zNTYsMCwwLDEsMi43MTYtLjMxMmMyLjQzNC4yODYsMi45MTUsMS44MDUsMi44MjMsMi40NDVhMS42MTgsMS42MTgsMCwwLDEtLjc3MiwxLjA5NGMtLjE2OS4xMDctLjIyNS4xNDMtLjIxLjIyLjAyLjExMy4xLjEwNy4yNDUuMDg3QTEuOSwxLjksMCwwLDAsMzAsMjAuN2MuMDc3LTEuNS0xLjM1NS0zLjE0NS0zLjg4Ny0zLjEzWk03LjMzLDIzLjljLS44MDguODgtMS45MzMsMS4yMTItMi40MTkuOTMxLS41MjItLjMtLjMxNy0xLjYuNjc1LTIuNTMyYTEyLjg4NCwxMi44ODQsMCwwLDEsMS45LTEuNDE3Yy4xMTgtLjA3Mi4yOTItLjE3NC41LS4zbC4wNTYtLjAzMWgwbC4xMjMtLjA3N0EzLjQ5MywzLjQ5MywwLDAsMSw3LjMzLDIzLjlabTUuODgxLTRjLS4yODEuNjg1LS44NjksMi40NC0xLjIyNywyLjM0Mi0uMzA3LS4wODItLjUtMS40MTItLjA2MS0yLjcyNmE2LjE5Myw2LjE5MywwLDAsMSwuOTU2LTEuNzU0Yy40NC0uNDkxLjkyNi0uNjU1LDEuMDQzLS40NTVhOS4wNjIsOS4wNjIsMCwwLDEtLjcxMSwyLjU5M1ptNC44NTMsMi4zMjJjLS4xMTguMDYxLS4yMy4xLS4yODEuMDcyLS4wMzYtLjAyLjA1MS0uMS4wNTEtLjFzLjYwOS0uNjU1Ljg0OS0uOTUxYy4xMzgtLjE3NC4zLS4zNzguNDc2LS42MDlWMjAuN2MwLC43ODItLjc1NywxLjMwOS0xLjA5NCwxLjUyNFptMy43NDQtLjg1NGMtLjA4Ny0uMDYxLS4wNzItLjI2Ni4yMi0uOTA1YTMuNDA4LDMuNDA4LDAsMCwxLC44MzQtMS4wNzQsMS40NDgsMS40NDgsMCwwLDEsLjA4Mi40NzEsMS41NDcsMS41NDcsMCwwLDEtMS4xMzUsMS41MDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2Q2Nzk5XFxcIi8+XCIsXG5cdFwiU2FzcyAoU0NTUylcIjogXCI8cGF0aCBkPVxcXCJNMTYuMTcxLDE4LjdjLS40ODEuMjIxLTEuMDA4LjUwOS0yLjA2MywxLjA4OC0uNC4yMjUtLjgxOC40NS0xLjIwNy42NjItLjAyNy0uMDI3LS4wNTUtLjA2MS0uMDgyLS4wODktMi4wODctMi4yMy01Ljk0Ny0zLjgwNS01Ljc4My02LjguMDYxLTEuMDkxLjQzNi0zLjk1NSw3LjQxMy03LjQzMyw1Ljc0Mi0yLjgzLDEwLjMxMS0yLjA0NiwxMS4xLS4zMDdDMjYuNjgzLDguMywyMy4xLDEyLjkxMywxNy4xNywxMy41ODJhNC40NjksNC40NjksMCwwLDEtMy43NTEtLjk0OGMtLjMxNC0uMzQxLS4zNjEtLjM2MS0uNDc3LS4yOTMtLjE5MS4xLS4wNjguNDA5LDAsLjU4NmEzLjUsMy41LDAsMCwwLDIuMTQxLDEuNjg0LDExLjQsMTEuNCwwLDAsMCw2Ljk1Ni0uNjg5YzMuNTk0LTEuMzkxLDYuNC01LjI1OCw1LjU3OC04LjUtLjgyNS0zLjI4Ny02LjI4MS00LjM3MS0xMS40NDMtMi41MzdhMjYsMjYsMCwwLDAtOC43OSw1LjA0N2MtMi44NDQsMi42Ni0zLjI5NCw0Ljk3Mi0zLjExLDUuOTQuNjYyLDMuNDM3LDUuNCw1LjY3NCw3LjMsNy4zMzEtLjEuMDU1LS4xODQuMS0uMjU5LjE0My0uOTQ4LjQ3MS00LjU2MiwyLjM2LTUuNDYzLDQuMzU4LTEuMDIzLDIuMjY0LjE2NCwzLjg4Ny45NDgsNC4xMDVhNS44MzIsNS44MzIsMCwwLDAsNi4yODEtMi41NDQsNi4zLDYuMywwLDAsMCwuNTU5LTUuOCw1LjAzLDUuMDMsMCwwLDEsLjcxNi0uNDc3Yy40ODQtLjI4Ni45NDUtLjU2OCwxLjM1NC0uNzg2bDAsMGExMC40NzUsMTAuNDc1LDAsMCwxLDQuNDc1LS45ODljMy4yNDYuMzgyLDMuODg3LDIuNDA3LDMuNzY0LDMuMjZhMi4xNTcsMi4xNTcsMCwwLDEtMS4wMywxLjQ1OWMtLjIyNS4xNDMtLjMuMTkxLS4yOC4yOTMuMDI3LjE1LjEzNi4xNDMuMzI3LjExNmEyLjUzNSwyLjUzNSwwLDAsMCwxLjc2Ni0yLjI1N2MuMS0yLTEuODA3LTQuMTk0LTUuMTgzLTQuMTc0YTcuNzUzLDcuNzUzLDAsMCwwLTIuOTQ2LjU4N3EtLjIyNS4wOTMtLjQzNy4yWm0tNC44MjUsNy44MzljLTEuMDc4LDEuMTczLTIuNTc4LDEuNjE2LTMuMjI2LDEuMjQxLS43LS40LS40MjMtMi4xMzUuOS0zLjM3NmExNy4xOCwxNy4xOCwwLDAsMSwyLjUzLTEuODg5Yy4xNTctLjEuMzg5LS4yMzIuNjY4LS40LjA0OC0uMDI3LjA3NS0uMDQxLjA3NS0uMDQxbC4xNjQtLjFBNC42NTgsNC42NTgsMCwwLDEsMTEuMzQ2LDI2LjUzOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZDY3OTlcXFwiLz5cIixcblx0XCJTY2FsYVwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0xMzQuOTA3XFxcIiB5MT1cXFwiMjA0LjU3MlxcXCIgeDI9XFxcIi0xMzQuODk2XFxcIiB5Mj1cXFwiMjA0LjU3MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxNTM4LCAwLCAwLCAtOTYxLjI1LCAyMDc0OTUsIDE5NjY2MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNjJkMmFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2RmM2YzZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGYzZjNkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTYyZDJhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMTM0LjkwN1xcXCIgeTE9XFxcIjIwMy43ODFcXFwiIHgyPVxcXCItMTM0Ljg5NlxcXCIgeTI9XFxcIjIwMy43ODFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTUzOCwgMCwgMCwgLTk2MS4yNSwgMjA3NDk1LCAxOTU4OTIpXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi0xMzQuOTA3XFxcIiB5MT1cXFwiMjA1LjM2M1xcXCIgeDI9XFxcIi0xMzQuODk2XFxcIiB5Mj1cXFwiMjA1LjM2M1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxNTM4LCAwLCAwLCAtOTYxLjI1LCAyMDc0OTUsIDE5NzQzMClcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfc2NhbGE8L3RpdGxlPjxwYXRoIGQ9XFxcIk03LjM4NCwxOS4yMzF2Mi4xNTRjMCwuMzYzLDcuODMzLjk3MSwxMi45MzcsMi4xNTQsMi40NjUtLjU3MSw0LjI5NS0xLjI3Nyw0LjI5NS0yLjE1NFYxOS4yMzFjMC0uODc3LTEuODMtMS41ODItNC4yOTUtMi4xNTQtNS4xLDEuMTgzLTEyLjkzNywxLjc5MS0xMi45MzcsMi4xNTRcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZjBjMWRcXFwiLz48cGF0aCBkPVxcXCJNNy4zODQsMTAuNjE1djIuMTU0YzAsLjM2Myw3LjgzMy45NzEsMTIuOTM3LDIuMTU0LDIuNDY1LS41NzEsNC4yOTUtMS4yNzcsNC4yOTUtMi4xNTRWMTAuNjE1YzAtLjg3Ny0xLjgzLTEuNTgyLTQuMjk1LTIuMTU0LTUuMSwxLjE4My0xMi45MzcsMS43OTEtMTIuOTM3LDIuMTU0XFxcIiBzdHlsZT1cXFwiZmlsbDojN2YwYzFkXFxcIi8+PHBhdGggZD1cXFwiTTcuMzg0LDE0LjkyM3Y2LjQ2MmMwLS41MzgsMTcuMjMyLTEuNjE1LDE3LjIzMi00LjMwOFYxMC42MTVjMCwyLjY5Mi0xNy4yMzIsMy43NjktMTcuMjMyLDQuMzA4XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTcuMzg0LDYuMzA4VjEyLjc3YzAtLjUzOCwxNy4yMzItMS42MTUsMTcuMjMyLTQuMzA4VjJjMCwyLjY5Mi0xNy4yMzIsMy43NjktMTcuMjMyLDQuMzA4XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTcuMzg0LDIzLjUzOFYzMGMwLS41MzgsMTcuMjMyLTEuNjE1LDE3LjIzMi00LjMwOFYxOS4yMzFjMCwyLjY5Mi0xNy4yMzIsMy43NjktMTcuMjMyLDQuMzA4XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+XCIsXG5cdFwiU2hlbGwgc2Vzc2lvblwiOiBcIjxwYXRoIGQ9XFxcIk0yOS40LDI3LjZIMi41VjQuNUgyOS40Wm0tMjUuOS0xSDI4LjRWNS41SDMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuMDc3IDE5LjMxNiA1LjUyMiAxOC40ODQgMTAuMzY2IDE1LjI1NSA1LjQ3OSAxMS4xODQgNi4xMiAxMC40MTYgMTIuMDM1IDE1LjM0NCA2LjA3NyAxOS4zMTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIxMi43XFxcIiB5PVxcXCIxOC4yXFxcIiB3aWR0aD1cXFwiNy44XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjUuNVxcXCIgd2lkdGg9XFxcIjI2LjlcXFwiIGhlaWdodD1cXFwiMS45XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+XCIsXG5cdFwiU2hlbGxcIjogXCI8cGF0aCBkPVxcXCJNMjkuNCwyNy42SDIuNVY0LjVIMjkuNFptLTI1LjktMUgyOC40VjUuNUgzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjA3NyAxOS4zMTYgNS41MjIgMTguNDg0IDEwLjM2NiAxNS4yNTUgNS40NzkgMTEuMTg0IDYuMTIgMTAuNDE2IDEyLjAzNSAxNS4zNDQgNi4wNzcgMTkuMzE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMTIuN1xcXCIgeT1cXFwiMTguMlxcXCIgd2lkdGg9XFxcIjcuOFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI1LjVcXFwiIHdpZHRoPVxcXCIyNi45XFxcIiBoZWlnaHQ9XFxcIjEuOVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPlwiLFxuXHRcIlNtYXJ0eVwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjEzLjg1OVxcXCIgeTE9XFxcIjI5LjIxOVxcXCIgeDI9XFxcIjE4LjEwNlxcXCIgeTI9XFxcIjI5LjIxOVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMzRcXFwiIHN0b3AtY29sb3I9XFxcIiM2MzYzNjFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTc4XFxcIiBzdG9wLWNvbG9yPVxcXCIjNmM2ZDcwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzZmNzE3NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zMDlcXFwiIHN0b3AtY29sb3I9XFxcIiM2MTYzNjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDgxXFxcIiBzdG9wLWNvbG9yPVxcXCIjM2MzZDNmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxNlxcXCIgc3RvcC1jb2xvcj1cXFwiIzAxMDEwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM2MzZhNmVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjE1LjE3OFxcXCIgeTE9XFxcIjI5LjczNFxcXCIgeDI9XFxcIjE2Ljc4N1xcXCIgeTI9XFxcIjI5LjczNFxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCIxNS4yNzdcXFwiIHkxPVxcXCIyOS44ODFcXFwiIHgyPVxcXCIxNi42ODhcXFwiIHkyPVxcXCIyOS44ODFcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWI5Yjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjEzMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E0YTVhN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhZWIxYjhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzUyXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWZhNGFiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjYwNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzc4ODE4OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2NTcwNzZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM4Yjk0OWFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZFxcXCIgY3g9XFxcIi04LjQ1NlxcXCIgY3k9XFxcIi0xNi42MTZcXFwiIHI9XFxcIjE5LjM4M1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgzNC4wNDIgMzcuMDYzKSBzY2FsZSgxLjA1NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNzA3MDZlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjExMlxcXCIgc3RvcC1jb2xvcj1cXFwiIzYxNjI2MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiM0NjQ3NGFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA4XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDg0OTRjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzRlNTA1M1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NDRcXFwiIHN0b3AtY29sb3I9XFxcIiM1YTVjNWZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTkyXFxcIiBzdG9wLWNvbG9yPVxcXCIjNmE2ZTcxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjYzM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzdmODU4OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42NjdcXFwiIHN0b3AtY29sb3I9XFxcIiM5NzllYTFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjM2Q0NDQ3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjU2YzcwXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCIxNi4xMjZcXFwiIHkxPVxcXCIyOC4xMDhcXFwiIHgyPVxcXCIxNi4wNVxcXCIgeTI9XFxcIjI2Ljg5M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMzRcXFwiIHN0b3AtY29sb3I9XFxcIiM5YjliOThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTVhNmE3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIxOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2JhYmNjNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zMTFcXFwiIHN0b3AtY29sb3I9XFxcIiNhYmFlYjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDg3XFxcIiBzdG9wLWNvbG9yPVxcXCIjODQ4OThmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzQ4NTA1NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzhiOTQ5YVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmXFxcIiB4MT1cXFwiMTYuMDEzXFxcIiB5MT1cXFwiMjYuNTQyXFxcIiB4Mj1cXFwiMTUuODk1XFxcIiB5Mj1cXFwiMjQuNjM1XFxcIiB4bGluazpocmVmPVxcXCIjZVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIjE2LjAyM1xcXCIgeTE9XFxcIjI1LjU0NlxcXCIgeDI9XFxcIjE1Ljg4N1xcXCIgeTI9XFxcIjIzLjM1NVxcXCIgeGxpbms6aHJlZj1cXFwiI2VcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImhcXFwiIHgxPVxcXCIxNi4wMTNcXFwiIHkxPVxcXCIyNy42MjdcXFwiIHgyPVxcXCIxNS44OTVcXFwiIHkyPVxcXCIyNS43MlxcXCIgeGxpbms6aHJlZj1cXFwiI2VcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCIxMy42OFxcXCIgeTE9XFxcIjI4LjgwNVxcXCIgeDI9XFxcIjE4LjI4NFxcXCIgeTI9XFxcIjI4LjgwNVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMzRcXFwiIHN0b3AtY29sb3I9XFxcIiM1NDU0NTNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDcxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjE2MjYyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE0M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODU4OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhZWIxYjhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzUyXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWZhNGFiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjYwNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzc4ODE4OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2NTcwNzZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM1MDU2NTlcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwia1xcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI1LjgxM1xcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI1LjgxM1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U1ZTFkZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RkZGFkNlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wMzhcXFwiIHN0b3AtY29sb3I9XFxcIiNjZWNjYzlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTEyXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTdhOWE4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIxMlxcXCIgc3RvcC1jb2xvcj1cXFwiIzY5NzA3MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNjRcXFwiIHN0b3AtY29sb3I9XFxcIiM0NjUwNTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzAzXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2YzZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM5OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1YWFhY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NzhcXFwiIHN0b3AtY29sb3I9XFxcIiNkNWQ3ZDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTM5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZjNmNGY1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU3M1xcXCIgc3RvcC1jb2xvcj1cXFwiI2ZlZmVmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MlxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y0ZjVmNlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42OTlcXFwiIHN0b3AtY29sb3I9XFxcIiNkYWRjZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2IwYjRiOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44NzZcXFwiIHN0b3AtY29sb3I9XFxcIiM4YjkyOThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNkMWQzZDRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhN2E5YWNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwibFxcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI0LjcyOFxcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI0LjcyOFxcXCIgeGxpbms6aHJlZj1cXFwiI2tcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcIm1cXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyMy41NDhcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyMy41NDhcXFwiIHhsaW5rOmhyZWY9XFxcIiNrXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJuXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjYuODk4XFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjYuODk4XFxcIiB4bGluazpocmVmPVxcXCIja1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwib1xcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI1Ljk2N1xcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI1Ljk2N1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U1ZTFkZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RkZThkMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2QyZjNiYVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wMzZcXFwiIHN0b3AtY29sb3I9XFxcIiNjNWU0YjFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTRiZDk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE5OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzZlN2Y3MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNjRcXFwiIHN0b3AtY29sb3I9XFxcIiM0NjUwNTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzAzXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2YzZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM5OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1YWFhY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NzhcXFwiIHN0b3AtY29sb3I9XFxcIiNkNWQ3ZDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTM5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZjNmNGY1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU3M1xcXCIgc3RvcC1jb2xvcj1cXFwiI2ZlZmVmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MlxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y0ZjVmNlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42OTlcXFwiIHN0b3AtY29sb3I9XFxcIiNkYWRjZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2IwYjRiOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44NzZcXFwiIHN0b3AtY29sb3I9XFxcIiM4YjkyOThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNkMWQzZDRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhN2E5YWNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwicFxcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI0Ljg4M1xcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI0Ljg4M1xcXCIgeGxpbms6aHJlZj1cXFwiI29cXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcInFcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNy4wNVxcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI3LjA1XFxcIiB4bGluazpocmVmPVxcXCIjb1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiclxcXCIgeDE9XFxcIjExLjkwMlxcXCIgeTE9XFxcIjIzLjIwMVxcXCIgeDI9XFxcIjE5Ljg4NFxcXCIgeTI9XFxcIjIzLjIwMVxcXCIgeGxpbms6aHJlZj1cXFwiI2VcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcInNcXFwiIGN4PVxcXCItMTYuOTgzXFxcIiBjeT1cXFwiLTIyLjk0OFxcXCIgcj1cXFwiMTAuNzE4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDM0LjA0MiAzNy4wNjMpIHNjYWxlKDEuMDU0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZmZkMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41MDVcXFwiIHN0b3AtY29sb3I9XFxcIiNmZjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTY4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmRmNzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY2NFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y2ZTIwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43ODJcXFwiIHN0b3AtY29sb3I9XFxcIiNlYmJmMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTA2XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGU5MjAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGE5ODE5XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zbWFydHk8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xMy44NTksMjguNzc2YS4yNDIuMjQyLDAsMCwwLC4xMjguMTkxLDEyLDEyLDAsMCwwLDEuMzkyLjYyMiw0LjMsNC4zLDAsMCwwLC41NzguMDcyaC4wNTJhNC4zLDQuMywwLDAsMCwuNTc4LS4wNzIsMTIuMDE0LDEyLjAxNCwwLDAsMCwxLjM5Mi0uNjIyLjI0My4yNDMsMCwwLDAsLjEyOC0uMTkxbC0yLjEzNy4xOTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAxNCwzMGExLjEyMywxLjEyMywwLDAsMCwuNjg4LS4yNDcuMTc1LjE3NSwwLDAsMCwuMDg1LS4xMjZ2LS4xMDVhMy4yMzUsMy4yMzUsMCwwLDAtLjc3My0uMDUzaC0uMDYzYTMuMjM3LDMuMjM3LDAsMCwwLS43NzMuMDUzdi4xMDVhLjE3NS4xNzUsMCwwLDAsLjA4NS4xMjYsMS4xMjIsMS4xMjIsMCwwLDAsLjY4OC4yNDdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE1Ljk1MSwyOS44MDdhNC43MzIsNC43MzIsMCwwLDEtLjY3NC0uMDQ0LDEuMTA1LDEuMTA1LDAsMCwwLC42NzQuMjM3aC4wNjNhMS4xMDYsMS4xMDYsMCwwLDAsLjY3NS0uMjM3LDQuNzMzLDQuNzMzLDAsMCwxLS42NzUuMDQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44MDksMjYuODM4YTEsMSwwLDAsMC0uMjM0LjM4OWMtLjAzNi4xODEtLjEuNTg1LTEuMzI2LDEuNDA2bC0uMDI1LjAxN2EuNDM1LjQzNSwwLDAsMS0uMDg2LjAzNyw5Ljk2OCw5Ljk2OCwwLDAsMS0yLjE1NS4yMDksOS45NjgsOS45NjgsMCwwLDEtMi4xNTYtLjIwOS40MzYuNDM2LDAsMCwxLS4wODUtLjAzNmwtLjAyNS0uMDE3YTQuNTc5LDQuNTc5LDAsMCwxLTEuMTItLjk1N2MtLjE2NC0uMjE5LS4zNzMtLjI1Ny0uMzktLjM0NWEyMS4wNTUsMjEuMDU1LDAsMCwwLDMuODU1LjA1NywxMy4wNDksMTMuMDQ5LDAsMCwwLDMuNzYxLS42NTRBLjY5Mi42OTIsMCwwLDEsMTkuODA5LDI2LjgzOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMTkuNzcyLDI2Ljg4YS45ODUuOTg1LDAsMCwxLS4yNDYuMTI5Yy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNSwyNS4xNSwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOGExLjA2MiwxLjA2MiwwLDAsMS0uMTQtLjAyOCwxLjAxNiwxLjAxNiwwLDAsMSwuMTQuMTA3Yy4xNi4wMTMuMzE5LjAxOS4zMTkuMDE5YTI2Ljg2NCwyNi44NjQsMCwwLDAsNi43NDMtLjMyM2wuMDA5LS4wNDJBLjg4NS44ODUsMCwwLDEsMTkuNzcyLDI2Ljg4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS40MzksMjUuMzgycy4yNDUtLjA3LjI0NS0uMTYyYS4xMTQuMTE0LDAsMCwwLS4wMTMtLjA2NS4yMTQuMjE0LDAsMCwxLS4wNjEtLjE0NC40MzcuNDM3LDAsMCwxLC4xMTktLjI3LDEuMDY5LDEuMDY5LDAsMCwxLS4yLjFjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE1MSwyNS4xNTEsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNTUsMS4wNTUsMCwwLDEtLjE4MS0uMDQxLjM3Ny4zNzcsMCwwLDEsLjA3OC4yMTcuNzE2LjcxNiwwLDAsMS0uMjU0LjQzMi42NzMuNjczLDAsMCwxLC4zNjgtLjA3OUEyNi4yLDI2LjIsMCwwLDAsMTkuNDM5LDI1LjM4MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI0LjIyOXMuMjQ1LS4wNzguMjQ1LS4xODJhLjE0My4xNDMsMCwwLDAtLjAxMy0uMDczLjI1NC4yNTQsMCwwLDEtLjA2MS0uMTYyLjUxNC41MTQsMCwwLDEsLjExOS0uMywxLjAyNiwxLjAyNiwwLDAsMS0uMi4xMTFjLS4wNzYuMDMyLS4yNDUuMDg4LS4yNDUuMDg4YTIyLjUwNywyMi41MDcsMCwwLDEtNi40NTguNDg5Yy0uMTM2LS4wMS0uMzItLjAzMi0uMzItLjAzMmEuOTUzLjk1MywwLDAsMS0uMTgxLS4wNDYuNDU1LjQ1NSwwLDAsMSwuMDc4LjI0My44MjUuODI1LDAsMCwxLS4yNTQuNDg0LjYxNC42MTQsMCwwLDEsLjM2OC0uMDg5QzEzLjAxNCwyNC43NTgsMTYuOTM1LDI1LjA0MSwxOS40MzksMjQuMjI5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS40MzksMjYuNDY3cy4yNDUtLjA3LjI0NS0uMTYzYS4xMTUuMTE1LDAsMCwwLS4wMTMtLjA2NS4yMTQuMjE0LDAsMCwxLS4wNjEtLjE0NC40MzUuNDM1LDAsMCwxLC4xMTktLjI3LDEuMDcsMS4wNywwLDAsMS0uMi4xYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNjIsMjUuMTYyLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4YTEuMDQyLDEuMDQyLDAsMCwxLS4xODEtLjA0MS4zNzcuMzc3LDAsMCwxLC4wNzguMjE3LjcxNy43MTcsMCwwLDEtLjI1NC40MzIuNjcuNjcsMCwwLDEsLjM2OC0uMDc5QTI2LjIwNywyNi4yMDcsMCwwLDAsMTkuNDM5LDI2LjQ2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI2LjQ2N3MuMjQ1LS4wNy4yNDUtLjE2M2EuMTE1LjExNSwwLDAsMC0uMDEzLS4wNjUuMjE0LjIxNCwwLDAsMS0uMDYxLS4xNDQuNDM1LjQzNSwwLDAsMSwuMTE5LS4yNywxLjA3LDEuMDcsMCwwLDEtLjIuMWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTY4LDI1LjE2OCwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOGExLjA0MiwxLjA0MiwwLDAsMS0uMTgxLS4wNDEuMzc2LjM3NiwwLDAsMSwuMDc4LjIxNy43MTcuNzE3LDAsMCwxLS4yNTQuNDMyLjY3LjY3LDAsMCwxLC4zNjgtLjA3OUEyNi4yMDcsMjYuMjA3LDAsMCwwLDE5LjQzOSwyNi40NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTE4LjIyNCwyOC42NWEuNDM1LjQzNSwwLDAsMS0uMDg2LjAzNyw5Ljk2OCw5Ljk2OCwwLDAsMS0yLjE1NS4yMDksOS45NjgsOS45NjgsMCwwLDEtMi4xNTYtLjIwOS40MzYuNDM2LDAsMCwxLS4wODUtLjAzNmwtLjAyNS0uMDE3LS4wMjktLjAxOWEuMTEyLjExMiwwLDAsMCwwLC4wNzNjLjAyNC4wNzMuMTQ3LjEuMTQ3LjFhOS45NDMsOS45NDMsMCwwLDAsMi4xNS4yMDksOS45NDIsOS45NDIsMCwwLDAsMi4xNS0uMjA5cy4xMjYtLjAyOS4xNDctLjFhLjExOC4xMTgsMCwwLDAsMC0uMDczbC0uMDI5LjAxOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQ0LDI1LjVzLjA0MS4yNTItLjQxOC40MjNjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE2MiwyNS4xNjIsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjgtLjI3Ni0uMDM4LS40NjctLjE2LS40NTUtLjMwOCwwLDAtLjAzMy0uMjQ5LjQ2Ni0uMjQ5YTI2LjIsMjYuMiwwLDAsMCw2LjkyNS0uNDcycy4yNDUtLjA3LjI0NS0uMTYyYS4xMTEuMTExLDAsMCwwLS4wMTMtLjA2NlMxOS45NDQsMjUuMzEyLDE5Ljk0NCwyNS41WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNrKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45NDQsMjQuNDE2cy4wNDEuMjUyLS40MTguNDIzYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNTEsMjUuMTUxLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4LS4yNzYtLjAzOC0uNDY3LS4xNi0uNDU1LS4zMDgsMCwwLS4wMzMtLjI0OC40NjYtLjI0OGEyNi4xOTMsMjYuMTkzLDAsMCwwLDYuOTI1LS40NzJzLjI0NS0uMDcuMjQ1LS4xNjJhLjExLjExLDAsMCwwLS4wMTMtLjA2NVMxOS45NDQsMjQuMjI3LDE5Ljk0NCwyNC40MTZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2wpXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyNC40MDZ2LS4wMjFjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI2LS4yNDUuMDczLS4yNDUuMDczYTIyLjM3MiwyMi4zNzIsMCwwLDEtNS4xLjVoMGEyMi4xNTUsMjIuMTU1LDAsMCwwLDUuMS0uNDQxcy4xNjktLjA0Ny4yNDUtLjA3M0MxOS45MzMsMjQuNjQzLDE5Ljg5MywyNC40MDYsMTkuODkzLDI0LjQwNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuODkzLDI1LjQ5MVYyNS40N2MtLjAxMi4wNzYtLjA3OC4yMzYtLjQxNy4zNTUtLjA3Ni4wMjctLjI0NS4wNzMtLjI0NS4wNzNhMjIuMzgsMjIuMzgsMCwwLDEtNS4xLjVoMGEyMi4xNzEsMjIuMTcxLDAsMCwwLDUuMS0uNDQxcy4xNjktLjA0Ny4yNDUtLjA3M0MxOS45MzMsMjUuNzI4LDE5Ljg5MywyNS40OTEsMTkuODkzLDI1LjQ5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQ0LDIzLjAzNHMuMDQxLjMyOS0uNDE4LjU1MmMtLjA3Ni4wMzctLjI0NS4xLS4yNDUuMWExOS40MDksMTkuNDA5LDAsMCwxLTYuNDU4LjU2OWMtLjEzNi0uMDEyLS4zMi0uMDM3LS4zMi0uMDM3LS4yNzYtLjA1LS40NjctLjIwOS0uNDU1LS40LDAsMC0uMDMzLS4zMjQuNDY2LS4zMjRhMTguMjgzLDE4LjI4MywwLDAsMCw2LjkyNS0uNDYxLDEuMDE0LDEuMDE0LDAsMCwwLC40NDQtLjIzOEEuNTMuNTMsMCwwLDEsMTkuOTQ0LDIzLjAzNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQ0LDI2LjU4NnMuMDQxLjI1Mi0uNDE4LjQyM2MtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUsMjUuMTUsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjgtLjI3Ni0uMDM4LS40NjctLjE2LS40NTUtLjMwOCwwLDAtLjAzMy0uMjQ4LjQ2Ni0uMjQ4YTI2LjIwNywyNi4yMDcsMCwwLDAsNi45MjUtLjQ3MnMuMjQ1LS4wNy4yNDUtLjE2M2EuMTExLjExMSwwLDAsMC0uMDEzLS4wNjVTMTkuOTQ0LDI2LjQsMTkuOTQ0LDI2LjU4NlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbilcXFwiLz48cGF0aCBkPVxcXCJNMTkuODkzLDI2LjU3NnYtLjAyMWMtLjAxMi4wNzYtLjA3OC4yMzYtLjQxNy4zNTUtLjA3Ni4wMjYtLjI0NS4wNzMtLjI0NS4wNzNhMjIuMzcyLDIyLjM3MiwwLDAsMS01LjEuNWgwYTIyLjE2MywyMi4xNjMsMCwwLDAsNS4xLS40NDFzLjE2OS0uMDQ3LjI0NS0uMDczQzE5LjkzMywyNi44MTMsMTkuODkzLDI2LjU3NiwxOS44OTMsMjYuNTc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44OTMsMjMuMzIxVjIzLjNjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI3LS4yNDUuMDczLS4yNDUuMDczYTIyLjM3MiwyMi4zNzIsMCwwLDEtNS4xLjVoMGEyMi4xNTYsMjIuMTU2LDAsMCwwLDUuMS0uNDQxcy4xNjktLjA0Ny4yNDUtLjA3M0MxOS45MzMsMjMuNTU4LDE5Ljg5MywyMy4zMjEsMTkuODkzLDIzLjMyMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTIuNDE3LDI1Ljg4MXMtLjIzNiwwLS4yNDEuMDguMjQ2LjA4NS4yNDYuMDg1LjE3NSwwLC4zLjAwNWMuNjE5LS4wMTMsMS45OTMtLjAzOCwzLjQzNy0uMTY2QzE0LjM4NCwyNS45NTgsMTIuNzIzLDI1Ljg4MywxMi40MTcsMjUuODgxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNvKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40MTcsMjQuOHMtLjIzNiwwLS4yNDEuMDguMjQ2LjA4NS4yNDYuMDg1LjE3NSwwLC4zLjAwNWMuNjE5LS4wMTIsMS45OTMtLjAzOCwzLjQzNy0uMTY2QzE0LjM4NCwyNC44NzQsMTIuNzIzLDI0LjgsMTIuNDE3LDI0LjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3ApXFxcIi8+PHBhdGggZD1cXFwiTTEyLjQxNywyNi45NjVzLS4yMzYsMC0uMjQxLjA4LjI0Ni4wODUuMjQ2LjA4NS4xNzUsMCwuMy4wMDVjLjYxOS0uMDEyLDEuOTkzLS4wMzgsMy40MzctLjE2NkMxNC4zODQsMjcuMDQyLDEyLjcyMywyNi45NjYsMTIuNDE3LDI2Ljk2NVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcSlcXFwiLz48cGF0aCBkPVxcXCJNMTEuOTY1LDIyLjc3OXMtLjI3NC4zMTUuMzE5LjcxMWMwLDAsNS43NzUuNTg3LDcuNi0uNjk1QzE5Ljg4NCwyMi43OTUsMTMuNjIzLDIzLjMyLDExLjk2NSwyMi43NzlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3IpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjAzNSwyMi43NzlhNC40NDksNC40NDksMCwwLDAsLjgxLTEuMTU1LDMuMzg2LDMuMzg2LDAsMCwwLC4yLTEuMTE1LDYuNzMzLDYuNzMzLDAsMCwxLC42MzItMi45MWMuNTM0LTEuMDE0LDIuODEtNC40NDcsMi44MS03LjQ2MkE4LjAxMiw4LjAxMiwwLDAsMCwxNiwyYTguMDEyLDguMDEyLDAsMCwwLTguNDgzLDguMTM2YzAsMy4wMTUsMi4yNzYsNi40NDgsMi44MSw3LjQ2MmE2LjczMSw2LjczMSwwLDAsMSwuNjMyLDIuOTEsMy4zODQsMy4zODQsMCwwLDAsLjIsMS4xMTUsNC40NTMsNC40NTMsMCwwLDAsLjgxLDEuMTU1LDEzLjg2NiwxMy44NjYsMCwwLDAsMy45ODcuMzdBMTUuMTUxLDE1LjE1MSwwLDAsMCwyMC4wMzUsMjIuNzc5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNzKVxcXCIvPlwiLFxuXHRcIlNvbGlkaXR5IChFdGhlcmV1bSlcIjogXCI8cGF0aCBkPVxcXCJNMjAuNDc3LDJsLTQuNSw4aC05bDQuNS04aDlcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjQ1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTExLjUyLDMwbDQuNS04aDlsLTQuNSw4aC05XFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC40NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45NzUsMTBoOWwtNC41LThoLTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC42O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAyMiwyMmgtOWw0LjUsOGg5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNjtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS40NzcsMThsNC41LTgtNC41LTgtNC41LDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC44O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUyLDE0bC00LjUsOCw0LjUsOCw0LjUtOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjg7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz5cIixcblx0XCJTb2x1dGlvbiBmaWxlXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTZcXFwiIHkxPVxcXCItMTgyLjA3MlxcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiLTIwOS45MjhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIC0xODApXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3NsbjwvdGl0bGU+PHBhdGggZD1cXFwiTTYuMDQ1LDIzLjk5MWExLjE2NiwxLjE2NiwwLDAsMS0xLjIwOC4xOTFMMi43MTgsMjMuM0ExLjE2OCwxLjE2OCwwLDAsMSwyLDIyLjIyMlY5Ljc3OEExLjE2NSwxLjE2NSwwLDAsMSwyLjcxOCw4LjdsMi4xMTktLjg4M2ExLjE2OSwxLjE2OSwwLDAsMSwxLjIwOC4xOTFsLjQ3Ni40MDhBLjY0Ni42NDYsMCwwLDAsNS41LDguOTQyVjIzLjA1OGEuNjQ2LjY0NiwwLDAsMCwxLjAyMS41MjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTIyMThhXFxcIi8+PHBhdGggZD1cXFwiTTIuNzE4LDIzLjNBMS4xNjksMS4xNjksMCwwLDEsMiwyMi4yMjJ2LS4xYS42NzQuNjc0LDAsMCwwLDEuMTc0LjQ1MkwyMS4yNSwyLjU4M2ExLjc0MywxLjc0MywwLDAsMSwxLjk5LS4zMzhsNS43NjksMi43NzhBMS43NDksMS43NDksMCwwLDEsMzAsNi42di4wNjdhMS4xLDEuMSwwLDAsMC0xLjgtLjg1NEw2LjUyMSwyMy41ODNsLS40NzYuNDA4YTEuMTY2LDEuMTY2LDAsMCwxLTEuMjA4LjE5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2YzMzYWZcXFwiLz48cGF0aCBkPVxcXCJNMi43MTgsOC43QTEuMTY4LDEuMTY4LDAsMCwwLDIsOS43Nzh2LjFhLjY3NC42NzQsMCwwLDEsMS4xNzQtLjQ1MkwyMS4yNSwyOS40MTZhMS43NDMsMS43NDMsMCwwLDAsMS45OS4zMzhsNS43NjktMi43NzhBMS43NDcsMS43NDcsMCwwLDAsMzAsMjUuNHYtLjA2OGExLjEsMS4xLDAsMCwxLTEuOC44NTVMNi41MjEsOC40MTdsLS40NzYtLjQwOGExLjE2NiwxLjE2NiwwLDAsMC0xLjIwOC0uMTkxWlxcXCIgc3R5bGU9XFxcImZpbGw6Izg1NGNjN1xcXCIvPjxwYXRoIGQ9XFxcIk0yMy4yNCwyOS43NTVhMS43NDMsMS43NDMsMCwwLDEtMS45OS0uMzM4QTEuMDI1LDEuMDI1LDAsMCwwLDIzLDI4LjY5MlYzLjMwOGExLjAyNSwxLjAyNSwwLDAsMC0xLjc1LS43MjUsMS43NDMsMS43NDMsMCwwLDEsMS45OS0uMzM4bDUuNzY4LDIuNzc0QTEuNzQ5LDEuNzQ5LDAsMCwxLDMwLDYuNlYyNS40MDVhMS43NTEsMS43NTEsMCwwLDEtLjk5MSwxLjU3N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMTc5ZjFcXFwiLz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjI1XFxcIj48cGF0aCBkPVxcXCJNMjIuMDkzLDI5Ljg4M2ExLjc0LDEuNzQsMCwwLDAsMS4xNDctLjEyOGw1Ljc2OC0yLjc3NEExLjc0OSwxLjc0OSwwLDAsMCwzMCwyNS40VjYuNmExLjc1LDEuNzUsMCwwLDAtLjk5Mi0xLjU3N0wyMy4yNCwyLjI0NWExLjc0MiwxLjc0MiwwLDAsMC0xLjk5LjMzOWwtOS4zLDEwLjI4NEw2LjUyMSw4LjQxNmwtLjQ3Ni0uNDA4YTEuMTY4LDEuMTY4LDAsMCwwLTEuMjA3LS4xOTFMMi43MTksOC43QTEuMTY3LDEuMTY3LDAsMCwwLDIsOS42ODljMCwuMDI5LDAsLjA1OSwwLC4wODhWMjIuMjIxYzAsLjAzLDAsLjA1OSwwLC4wODhhMS4xNjcsMS4xNjcsMCwwLDAsLjcxNS45ODlsMi4xMTkuODgzYTEuMjI2LDEuMjI2LDAsMCwwLC4xNTUuMDUyLDEuMTY1LDEuMTY1LDAsMCwwLDEuMDUyLS4yNDNsLjQ3Ni0uNDA4LDUuNDMtNC40NTIsOS4zLDEwLjI4NUExLjczMywxLjczMywwLDAsMCwyMi4wOTMsMjkuODgzWk0yMywxMC4wNzIsMTUuNzcsMTYsMjMsMjEuOTI3Wk01LjUsMTJsMy42MTksNEw1LjUsMjBaXFxcIiBzdHlsZT1cXFwiZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI2EpXFxcIi8+PC9nPlwiLFxuXHRcIlNQQVJRTFwiOiBcIjxwYXRoIGQ9XFxcIk0yNi4yODQsMjAuMzYxYy0uMTY1LS4wODQtLjM1OS0uMTY0LS41MjMtLjI0OEgyNS45cy0xLjE1OC0uNS0xLjI0LTQuMTc2Yy0uMTExLTMuNjU1LDEuMS00LjI4OSwxLjEtNC4yODlhNC45Niw0Ljk2LDAsMCwwLDIuMTc2LTIuMTQzLDUuMTIyLDUuMTIyLDAsMCwwLTIuMTIyLTYuOTI3LDUuMzQyLDUuMzQyLDAsMCwwLTcuMTM4LDIuMTQ2LDUuMDY3LDUuMDY3LDAsMCwwLS41MjMsMy4yMTRMMTguMSw3Ljg1NXMuMywxLjMxOS0yLjgzOSwzLjI3MmMtMy4xMTUsMS45NS00LjU0OS45NjItNC41NDkuOTYybC4wODIuMTM4YTIuMTMxLDIuMTMxLDAsMCwwLS4yNzMtLjE2Nyw1LjExNyw1LjExNywwLDEsMCwuODI1LDguNTJsLS4wMjUuMDU1czEuMTI5LS45MzMsNC40MDcuODI3YzIuNTkyLDEuMzc0LDIuOTc5LDIuNzQ4LDMuMDMzLDMuMjRhNS4xLDUuMSwwLDAsMCwyLjcsNC43LDUuMTI0LDUuMTI0LDAsMSwwLDQuODI1LTkuMDQxWm0tNS43OS42ODVjLS40MTIuMTM4LTEuNi4zLTQuMDc3LTEuMDE3LTIuNy0xLjQ1NC0zLjExNS0yLjY2NC0zLjE2OS0zLjAyMWE1LjQwNiw1LjQwNiwwLDAsMC0uMDU3LTEuMzE5bC4wMjkuMDI2UzEzLDE0LjUzNCwxNi4wODQsMTIuNjM5YzIuNzU3LTEuNzA1LDQuMDI2LTEuMzc0LDQuMjQ1LTEuMjkzYTIuODMsMi44MywwLDAsMCwuNDcuMjc3LDQuMDgyLDQuMDgyLDAsMCwwLC45NjQuMzgzYy4zODcuMzU3LDEuMDc2LDEuMzc0LDEuMTU4LDQuMXMtLjcxNywzLjc2NC0xLjE1OCw0LjEyMUE1LjA0LDUuMDQsMCwwLDAsMjAuNDk0LDIxLjA0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwYzQ3OWNcXFwiLz48cGF0aCBkPVxcXCJNMjAuMTM1LDQuMjI5YTMuODYxLDMuODYxLDAsMCwwLS4wODIsNS4zODZjLS43MTctLjY4NS0uNjg4LTIuMTE3LjAyOS0zLjQ2MmEuNjczLjY3MywwLDAsMSwuNzQ2LS4yNzdjLjAyNSwwLC4wNTQuMDI5LjA4Mi4wMjlhLjk5My45OTMsMCwwLDAsLjI3Ni4wMjZBMS4wNTYsMS4wNTYsMCwwLDAsMjIuMiw0LjgwNWEuOTM0LjkzNCwwLDAsMC0uMy0uNjg1YzEuMzgtLjkwNywyLjk1LTEuMDE3LDMuNjEtLjQxMmguMDI5QTMuODI2LDMuODI2LDAsMCwwLDIwLjEzNSw0LjIyOVpNNS4xNDUsMTMuODQ2YTMuODU5LDMuODU5LDAsMCwwLS4wODIsNS4zODljLS43MTctLjY4OS0uNjkyLTIuMTE3LjAyNS0zLjQ2NWEuNjY4LjY2OCwwLDAsMSwuNzQ2LS4yNzNjLjAyNSwwLC4wNTQuMDI5LjA4Mi4wMjlhMSwxLDAsMCwwLC4yNzYuMDI2QTEuMDU2LDEuMDU2LDAsMCwwLDcuMjEsMTQuNDI1YS45NDUuOTQ1LDAsMCwwLS4zLS42ODljMS4zNzctLjkwNywyLjk0Ny0xLjAxNywzLjYxLS40MTJoLjAyNUEzLjg1MiwzLjg1MiwwLDAsMCw1LjE0NSwxMy44NDZabTE1Ljg3Miw4LjE2M2EzLjg2NSwzLjg2NSwwLDAsMC0uMDgyLDUuMzg5Yy0uNzE3LS42ODktLjY4OC0yLjExNy4wMjktMy40NjVhLjY2OC42NjgsMCwwLDEsLjc0Ni0uMjczYy4wMjUsMCwuMDU0LjAyNi4wODIuMDI2YS44ODcuODg3LDAsMCwwLC4yNzYuMDI5LDEuMDU3LDEuMDU3LDAsMCwwLDEuMDE4LTEuMTI2LjkzNi45MzYsMCwwLDAtLjMtLjY4OWMxLjM4LS45MDcsMi45NS0xLjAxNywzLjYxLS40MTJoLjAyOUEzLjgyOSwzLjgyOSwwLDAsMCwyMS4wMTcsMjIuMDA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlNRRlwiOiBcIjxwYXRoIGQ9XFxcIk0yNSwyMy41SDdhNS4wMTUsNS4wMTUsMCwwLDEtNS01di02YTUuMDE1LDUuMDE1LDAsMCwxLDUtNUgyNWE1LjAxNSw1LjAxNSwwLDAsMSw1LDV2NmE1LjAxNSw1LjAxNSwwLDAsMS01LDVaXFxcIi8+PHBhdGggZD1cXFwiTTcsMTkuNDYxYTQuODEsNC44MSwwLDAsMS0xLjQxNC0uMiw1LjA1Miw1LjA1MiwwLDAsMS0xLjExMS0uNDcybC0uNC40MzJoLS41TDMuNSwxNi4wNTJINGE4LjQ2Miw4LjQ2MiwwLDAsMCwuNDMxLjk1Myw0LjYzOCw0LjYzOCwwLDAsMCwuNjA2LjksMy4xNzcsMy4xNzcsMCwwLDAsLjguNjc1LDEuOTg1LDEuOTg1LDAsMCwwLDEuMDI5LjI2LDEuNjcyLDEuNjcyLDAsMCwwLDEuMjE2LS40MTFBMS4zODIsMS4zODIsMCwwLDAsOC41LDE3LjM5MWExLjE1NiwxLjE1NiwwLDAsMC0uMzU5LS44NjIsMi45NDUsMi45NDUsMCwwLDAtMS4xMTEtLjZxLS40OS0uMTY3LS45LS4zMXQtLjc3My0uMjkyYTIuNTgsMi41OCwwLDAsMS0xLjIzOS0xLjAwNywyLjczLDIuNzMsMCwwLDEtLjQwNS0xLjQ2NSwyLjQwNiwyLjQwNiwwLDAsMSwuMjEtLjk4NiwyLjYwOCwyLjYwOCwwLDAsMSwuNjEyLS44NSwyLjk2NywyLjk2NywwLDAsMSwuOTg1LS41NzUsMy43MjIsMy43MjIsMCwwLDEsMS4zMDYtLjIyMywzLjk4NCwzLjk4NCwwLDAsMSwxLjI4OC4yLDUuMTUxLDUuMTUxLDAsMCwxLC45NDQuNDA4bC4zNTYtLjM3aC41MDdsLjA0NywyLjk4OGgtLjVxLS4xNzUtLjQ4My0uNDExLS45ODdhNC4zMzIsNC4zMzIsMCwwLDAtLjUtLjgzOSwyLjMsMi4zLDAsMCwwLS42NTktLjU3MywxLjcyOSwxLjcyOSwwLDAsMC0uODc1LS4yMTRBMS40MzcsMS40MzcsMCwwLDAsNiwxMS4yMTJhMS4yMzMsMS4yMzMsMCwwLDAtLjQuOTM0LDEuMTQxLDEuMTQxLDAsMCwwLC4zNDcuODYsMi45NTEsMi45NTEsMCwwLDAsMS4wODIuNTg4cS40MzEuMTU0Ljg4LjMwOXQuOC4zYTIuODg1LDIuODg1LDAsMCwxLDEuMjg2Ljk1NSwyLjUxMiwyLjUxMiwwLDAsMSwuNDQsMS41MTIsMi42MzIsMi42MzIsMCwwLDEtLjkyNywxLjk4NSwzLjM2NywzLjM2NywwLDAsMS0xLjA3OS42QTQuMzkxLDQuMzkxLDAsMCwxLDcsMTkuNDYxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC45MjEsMTEuNDM0YTQuMzM4LDQuMzM4LDAsMCwxLC45NzEsMS40MzIsNC44MzQsNC44MzQsMCwwLDEsLjM1OSwxLjkxNCw0Ljk1OCw0Ljk1OCwwLDAsMS0uNzIsMi42OCw0LjAzNiw0LjAzNiwwLDAsMS0yLjAzOCwxLjY2MSwyLjE1MSwyLjE1MSwwLDAsMCwuNDIsMS4yNzIsMS4xNjgsMS4xNjgsMCwwLDAsLjk1LjUzNywzLjU2MywzLjU2MywwLDAsMCwuNTkyLS4wNDNxLjI1NC0uMDQzLjQ1OC0uMXYuNTQzYTUuNzUzLDUuNzUzLDAsMCwxLS45ODUuMyw2LjA1NCw2LjA1NCwwLDAsMS0xLjM3LjE1MSwyLjIwNiwyLjIwNiwwLDAsMS0xLjYxMi0uNjIxLDIuNTc0LDIuNTc0LDAsMCwxLS43MDgtMS43MzJBNC41NzksNC41NzksMCwwLDEsMTMuNywxOWE0LjE4Niw0LjE4NiwwLDAsMS0xLjI1My0uOTMyLDQuMzg4LDQuMzg4LDAsMCwxLS44NDItMS4zNzcsNC43NjksNC43NjksMCwwLDEtLjMxMi0xLjc1Myw1LjIzNyw1LjIzNywwLDAsMSwuMzQ3LTEuOTQ4LDQuNSw0LjUsMCwwLDEsLjk1My0xLjUsNC4xMTksNC4xMTksMCwwLDEsMS40MjUtLjk0Miw0Ljg2LDQuODYsMCwwLDEsMy41LS4wMDlBNC4yNDcsNC4yNDcsMCwwLDEsMTguOTIxLDExLjQzNFptLTEuNSw2LjI2NmE0Ljg1Nyw0Ljg1NywwLDAsMCwuMzc5LTEuMjczLDkuOTgxLDkuOTgxLDAsMCwwLC4xMTctMS42MDYsMTAuNTM0LDEwLjUzNCwwLDAsMC0uMS0xLjQ4LDQuOTM2LDQuOTM2LDAsMCwwLS4zNDctMS4yODIsMi40MSwyLjQxLDAsMCwwLS42NjUtLjksMS41NzEsMS41NzEsMCwwLDAtMS4wMzItLjM0LDEuNzMsMS43MywwLDAsMC0xLjYsMS4wNiw2LjYzNCw2LjYzNCwwLDAsMC0uNTQ4LDIuOTkzLDkuNTgzLDkuNTgzLDAsMCwwLC4xMiwxLjU1MSw0LjgsNC44LDAsMCwwLC4zNzYsMS4yNzMsMi4yODYsMi4yODYsMCwwLDAsLjY2NS44NTYsMS41OTEsMS41OTEsMCwwLDAsLjk5MS4zMDYsMS42MTEsMS42MTEsMCwwLDAsLjk5MS0uMzA5QTIuMTM1LDIuMTM1LDAsMCwwLDE3LjQyMywxNy43WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC41LDEyLjhoLS40NTVhMy45MywzLjkzLDAsMCwwLS42LTEuMDg2LDEuMzg1LDEuMzg1LDAsMCwwLS44MTItLjYzYy0uMTE2LS4wMTYtLjI3Mi0uMDMxLS40NjUtLjA0M3MtLjM3My0uMDE5LS41MzUtLjAxOUgyNC4zNDl2My40MzNoLjgyMmExLjk2OSwxLjk2OSwwLDAsMCwuNjA2LS4wODMsMS4wNTQsMS4wNTQsMCwwLDAsLjQ1NS0uMywxLjU5MSwxLjU5MSwwLDAsMCwuMjgzLS41MTYsMi42MzUsMi42MzUsMCwwLDAsLjE2Ni0uNjIxaC40NDN2My42ODZoLS40NDNhMi40NzEsMi40NzEsMCwwLDAtLjE4MS0uNjc2LDIuMDk0LDIuMDk0LDAsMCwwLS4yNjgtLjUyOCwxLjAxMiwxLjAxMiwwLDAsMC0uNDMxLS4yOTMsMS44NDIsMS44NDIsMCwwLDAtLjYzLS4xaC0uODIydjIuOWEuODQyLjg0MiwwLDAsMCwuMDc5LjM4LjU4LjU4LDAsMCwwLC4zLjI1NiwxLjg3LDEuODcsMCwwLDAsLjM1My4xcS4yMjQuMDQ2LjQ0Ni4wNzF2LjQ4MmgtNC40NnYtLjQ4MmwuNDQ5LS4wNTJhMS41MjUsMS41MjUsMCwwLDAsLjM5MS0uMDgzLjU0Ny41NDcsMCwwLDAsLjI5Mi0uMjQxLjg0Mi44NDIsMCwwLDAsLjA4Mi0uNHYtNi4xOGEuODY3Ljg2NywwLDAsMC0uMDczLS4zNjcuNTc1LjU3NSwwLDAsMC0uMy0uMjYyLDIuMzQxLDIuMzQxLDAsMCwwLS40MzEtLjEzNnEtLjI2OC0uMDYyLS40MDgtLjA4di0uNDgySDI4LjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+XCIsXG5cdFwiU1FGOiBTdGF0dXMgUXVvIEZ1bmN0aW9uIChBcm1hIDMpXCI6IFwiPHBhdGggZD1cXFwiTTI1LDIzLjVIN2E1LjAxNSw1LjAxNSwwLDAsMS01LTV2LTZhNS4wMTUsNS4wMTUsMCwwLDEsNS01SDI1YTUuMDE1LDUuMDE1LDAsMCwxLDUsNXY2YTUuMDE1LDUuMDE1LDAsMCwxLTUsNVpcXFwiLz48cGF0aCBkPVxcXCJNNywxOS40NjFhNC44MSw0LjgxLDAsMCwxLTEuNDE0LS4yLDUuMDUyLDUuMDUyLDAsMCwxLTEuMTExLS40NzJsLS40LjQzMmgtLjVMMy41LDE2LjA1Mkg0YTguNDYyLDguNDYyLDAsMCwwLC40MzEuOTUzLDQuNjM4LDQuNjM4LDAsMCwwLC42MDYuOSwzLjE3NywzLjE3NywwLDAsMCwuOC42NzUsMS45ODUsMS45ODUsMCwwLDAsMS4wMjkuMjYsMS42NzIsMS42NzIsMCwwLDAsMS4yMTYtLjQxMUExLjM4MiwxLjM4MiwwLDAsMCw4LjUsMTcuMzkxYTEuMTU2LDEuMTU2LDAsMCwwLS4zNTktLjg2MiwyLjk0NSwyLjk0NSwwLDAsMC0xLjExMS0uNnEtLjQ5LS4xNjctLjktLjMxdC0uNzczLS4yOTJhMi41OCwyLjU4LDAsMCwxLTEuMjM5LTEuMDA3LDIuNzMsMi43MywwLDAsMS0uNDA1LTEuNDY1LDIuNDA2LDIuNDA2LDAsMCwxLC4yMS0uOTg2LDIuNjA4LDIuNjA4LDAsMCwxLC42MTItLjg1LDIuOTY3LDIuOTY3LDAsMCwxLC45ODUtLjU3NSwzLjcyMiwzLjcyMiwwLDAsMSwxLjMwNi0uMjIzLDMuOTg0LDMuOTg0LDAsMCwxLDEuMjg4LjIsNS4xNTEsNS4xNTEsMCwwLDEsLjk0NC40MDhsLjM1Ni0uMzdoLjUwN2wuMDQ3LDIuOTg4aC0uNXEtLjE3NS0uNDgzLS40MTEtLjk4N2E0LjMzMiw0LjMzMiwwLDAsMC0uNS0uODM5LDIuMywyLjMsMCwwLDAtLjY1OS0uNTczLDEuNzI5LDEuNzI5LDAsMCwwLS44NzUtLjIxNEExLjQzNywxLjQzNywwLDAsMCw2LDExLjIxMmExLjIzMywxLjIzMywwLDAsMC0uNC45MzQsMS4xNDEsMS4xNDEsMCwwLDAsLjM0Ny44NiwyLjk1MSwyLjk1MSwwLDAsMCwxLjA4Mi41ODhxLjQzMS4xNTQuODguMzA5dC44LjNhMi44ODUsMi44ODUsMCwwLDEsMS4yODYuOTU1LDIuNTEyLDIuNTEyLDAsMCwxLC40NCwxLjUxMiwyLjYzMiwyLjYzMiwwLDAsMS0uOTI3LDEuOTg1LDMuMzY3LDMuMzY3LDAsMCwxLTEuMDc5LjZBNC4zOTEsNC4zOTEsMCwwLDEsNywxOS40NjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTE4LjkyMSwxMS40MzRhNC4zMzgsNC4zMzgsMCwwLDEsLjk3MSwxLjQzMiw0LjgzNCw0LjgzNCwwLDAsMSwuMzU5LDEuOTE0LDQuOTU4LDQuOTU4LDAsMCwxLS43MiwyLjY4LDQuMDM2LDQuMDM2LDAsMCwxLTIuMDM4LDEuNjYxLDIuMTUxLDIuMTUxLDAsMCwwLC40MiwxLjI3MiwxLjE2OCwxLjE2OCwwLDAsMCwuOTUuNTM3LDMuNTYzLDMuNTYzLDAsMCwwLC41OTItLjA0M3EuMjU0LS4wNDMuNDU4LS4xdi41NDNhNS43NTMsNS43NTMsMCwwLDEtLjk4NS4zLDYuMDU0LDYuMDU0LDAsMCwxLTEuMzcuMTUxLDIuMjA2LDIuMjA2LDAsMCwxLTEuNjEyLS42MjEsMi41NzQsMi41NzQsMCwwLDEtLjcwOC0xLjczMkE0LjU3OSw0LjU3OSwwLDAsMSwxMy43LDE5YTQuMTg2LDQuMTg2LDAsMCwxLTEuMjUzLS45MzIsNC4zODgsNC4zODgsMCwwLDEtLjg0Mi0xLjM3Nyw0Ljc2OSw0Ljc2OSwwLDAsMS0uMzEyLTEuNzUzLDUuMjM3LDUuMjM3LDAsMCwxLC4zNDctMS45NDgsNC41LDQuNSwwLDAsMSwuOTUzLTEuNSw0LjExOSw0LjExOSwwLDAsMSwxLjQyNS0uOTQyLDQuODYsNC44NiwwLDAsMSwzLjUtLjAwOUE0LjI0Nyw0LjI0NywwLDAsMSwxOC45MjEsMTEuNDM0Wm0tMS41LDYuMjY2YTQuODU3LDQuODU3LDAsMCwwLC4zNzktMS4yNzMsOS45ODEsOS45ODEsMCwwLDAsLjExNy0xLjYwNiwxMC41MzQsMTAuNTM0LDAsMCwwLS4xLTEuNDgsNC45MzYsNC45MzYsMCwwLDAtLjM0Ny0xLjI4MiwyLjQxLDIuNDEsMCwwLDAtLjY2NS0uOSwxLjU3MSwxLjU3MSwwLDAsMC0xLjAzMi0uMzQsMS43MywxLjczLDAsMCwwLTEuNiwxLjA2LDYuNjM0LDYuNjM0LDAsMCwwLS41NDgsMi45OTMsOS41ODMsOS41ODMsMCwwLDAsLjEyLDEuNTUxLDQuOCw0LjgsMCwwLDAsLjM3NiwxLjI3MywyLjI4NiwyLjI4NiwwLDAsMCwuNjY1Ljg1NiwxLjU5MSwxLjU5MSwwLDAsMCwuOTkxLjMwNiwxLjYxMSwxLjYxMSwwLDAsMCwuOTkxLS4zMDlBMi4xMzUsMi4xMzUsMCwwLDAsMTcuNDIzLDE3LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTI4LjUsMTIuOGgtLjQ1NWEzLjkzLDMuOTMsMCwwLDAtLjYtMS4wODYsMS4zODUsMS4zODUsMCwwLDAtLjgxMi0uNjNjLS4xMTYtLjAxNi0uMjcyLS4wMzEtLjQ2NS0uMDQzcy0uMzczLS4wMTktLjUzNS0uMDE5SDI0LjM0OXYzLjQzM2guODIyYTEuOTY5LDEuOTY5LDAsMCwwLC42MDYtLjA4MywxLjA1NCwxLjA1NCwwLDAsMCwuNDU1LS4zLDEuNTkxLDEuNTkxLDAsMCwwLC4yODMtLjUxNiwyLjYzNSwyLjYzNSwwLDAsMCwuMTY2LS42MjFoLjQ0M3YzLjY4NmgtLjQ0M2EyLjQ3MSwyLjQ3MSwwLDAsMC0uMTgxLS42NzYsMi4wOTQsMi4wOTQsMCwwLDAtLjI2OC0uNTI4LDEuMDEyLDEuMDEyLDAsMCwwLS40MzEtLjI5MywxLjg0MiwxLjg0MiwwLDAsMC0uNjMtLjFoLS44MjJ2Mi45YS44NDIuODQyLDAsMCwwLC4wNzkuMzguNTguNTgsMCwwLDAsLjMuMjU2LDEuODcsMS44NywwLDAsMCwuMzUzLjFxLjIyNC4wNDYuNDQ2LjA3MXYuNDgyaC00LjQ2di0uNDgybC40NDktLjA1MmExLjUyNSwxLjUyNSwwLDAsMCwuMzkxLS4wODMuNTQ3LjU0NywwLDAsMCwuMjkyLS4yNDEuODQyLjg0MiwwLDAsMCwuMDgyLS40di02LjE4YS44NjcuODY3LDAsMCwwLS4wNzMtLjM2Ny41NzUuNTc1LDAsMCwwLS4zLS4yNjIsMi4zNDEsMi4zNDEsMCwwLDAtLjQzMS0uMTM2cS0uMjY4LS4wNjItLjQwOC0uMDh2LS40ODJIMjguNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0XCJTUUxcIjogXCI8cGF0aCBkPVxcXCJNOC41NjIsMTUuMjU2QTIxLjE1OSwyMS4xNTksMCwwLDAsMTYsMTYuNDQ5YTIxLjE1OSwyMS4xNTksMCwwLDAsNy40MzgtMS4xOTRjMS44NjQtLjcyNywyLjUyNS0xLjUzNSwyLjUyNS0yVjkuN2ExMC4zNTcsMTAuMzU3LDAsMCwxLTIuMDg0LDEuMDc2QTIyLjI5MywyMi4yOTMsMCwwLDEsMTYsMTIuMDc4YTIyLjM2LDIyLjM2LDAsMCwxLTcuODc5LTEuM0ExMC4yOCwxMC4yOCwwLDAsMSw2LjAzNyw5Ljd2My41NUM2LjAzNywxMy43MjQsNi43LDE0LjUyOCw4LjU2MiwxNS4yNTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+PHBhdGggZD1cXFwiTTguNTYyLDIxLjk2MWExNS42MTEsMTUuNjExLDAsMCwwLDIuNi43NDFBMjQuOSwyNC45LDAsMCwwLDE2LDIzLjE1NWEyNC45LDI0LjksMCwwLDAsNC44MzgtLjQ1MiwxNS42MTQsMTUuNjE0LDAsMCwwLDIuNi0uNzQxYzEuODY0LS43MjcsMi41MjUtMS41MzUsMi41MjUtMnYtMy4zOWExMC43MDYsMTAuNzA2LDAsMCwxLTEuNjkyLjgyNUEyMy40OSwyMy40OSwwLDAsMSwxNiwxOC43NGEyMy40OSwyMy40OSwwLDAsMS04LjI3MS0xLjM0OCwxMC44MjksMTAuODI5LDAsMCwxLTEuNjkyLS44MjVWMTkuOTZDNi4wMzcsMjAuNDI2LDYuNywyMS4yMzEsOC41NjIsMjEuOTYxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGE0NFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGM1LjUsMCw5Ljk2My0xLjc0NCw5Ljk2My0zLjg5NFYyMy4yNjlhMTAuNSwxMC41LDAsMCwxLTEuNTM1Ljc2MmwtLjE1Ny4wNjNBMjMuNDg3LDIzLjQ4NywwLDAsMSwxNiwyNS40NDVhMjMuNDIyLDIzLjQyMiwwLDAsMS04LjI3MS0xLjM1MWMtLjA1NC0uMDItLjEwNi0uMDQzLS4xNTctLjA2M2ExMC41LDEwLjUsMCwwLDEtMS41MzUtLjc2MnYyLjgzN0M2LjAzNywyOC4yNTYsMTAuNSwzMCwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRhNDRcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCI1Ljg5NFxcXCIgcng9XFxcIjkuOTYzXFxcIiByeT1cXFwiMy44OTRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRhNDRcXFwiLz5cIixcblx0XCJTcXVpcnJlbFwiOiBcIjxwYXRoIGQ9XFxcIk0xMi45NjYsMjcuM2ExOC45MjYsMTguOTI2LDAsMCwxLTUuNzA3LS45MTVjLTEuODMyLS41OTItNC4wNDQtMS41NC00LjkzMS0zLjY0NWEuNTU3LjU1NywwLDAsMS0uMDI1LS4wNzMsMTIuMjE0LDEyLjIxNCwwLDAsMSwuNzYzLTcuNTMxYzEuNTIyLTQuMDA4LDMuNzEtNi43MzksNi41LTguMTE2YTEwLjQyMiwxMC40MjIsMCwwLDEsNy42LS41NSwxMC40MjYsMTAuNDI2LDAsMCwxLDYuMDQsNC42MzksMTEuMDU3LDExLjA1NywwLDAsMSwxLjA1OCwyLjMyNiwxMC42NiwxMC42NiwwLDAsMS01LjM3OCwxMi42ODlsLS4wMi4wMDlBMTQuODMyLDE0LjgzMiwwLDAsMSwxMi45NjYsMjcuM1pcXFwiLz48cGF0aCBkPVxcXCJNMjIuNzIsMTEuMzkzYTEwLjE0NCwxMC4xNDQsMCwwLDAtMTIuOS0zLjg2OUM2LjcsOS4wNjEsNC43ODQsMTIuMiwzLjU5MywxNS4zMzRhMTEuOSwxMS45LDAsMCwwLS43NDYsNy4xODdjLjc4MywxLjg2LDIuNzc5LDIuNzQ0LDQuNTgyLDMuMzI3YTE2LjIwNiwxNi4yMDYsMCwwLDAsMTEuMjEzLS4yMzJBMTAuMTEsMTAuMTEsMCwwLDAsMjMuNzI3LDEzLjYsMTAuNDg4LDEwLjQ4OCwwLDAsMCwyMi43MiwxMS4zOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojYTA1YTJjXFxcIi8+PHBhdGggZD1cXFwiTTE1Ljc4Miw2LjcyQTguMjYzLDguMjYzLDAsMCwxLDE3LjY0LDguMDg0LDkuNjUsOS42NSwwLDAsMSwxOS4wOCw5LjhhOS4zMTcsOS4zMTcsMCwwLDEtMS41MzEsMTEuOTIxQTE0LjkzMywxNC45MzMsMCwwLDEsNy42NTYsMjQuN2E3LjU4MSw3LjU4MSwwLDAsMS00LjEzNS0xLjEsOC40NTQsOC40NTQsMCwwLDAsMy45MDcsMi4yNDEsMTYuMjA4LDE2LjIwOCwwLDAsMCwxMS4yMTQtLjIzM0ExMC4xMTIsMTAuMTEyLDAsMCwwLDIzLjcyNywxMy42YTEwLjQ4NywxMC40ODcsMCwwLDAtMS4wMDctMi4yMTFBOS45NzMsOS45NzMsMCwwLDAsMTUuNzgyLDYuNzJaXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuMzEzNzI1NTAxMjk4OTA0NFxcXCIvPjxwYXRoIGQ9XFxcIk0yMy40NzYsMTMuMzg5bC0xLjA2Mi0yLjg5NS4xNTItLjIzNkE2Ljg3NSw2Ljg3NSwwLDAsMSwyNy41MDksNy43YTIuMTc3LDIuMTc3LDAsMCwxLDEuODc5LjU4OCwzLjM3NiwzLjM3NiwwLDAsMSwuMSwzLjcyOWMtLjM0My4yOTItLjc1MS4xMjQtMS4yMjItLjA3YTIuODIxLDIuODIxLDAsMCwwLTIuMTMzLS4yNywxMC4yLDEwLjIsMCwwLDAtMi4wNDcsMS4yMDlaXFxcIi8+PHBhdGggZD1cXFwiTTIzLjAzOSwxMC41NjNjMS4yMjMtMS45LDUuMTA3LTIuOTE1LDUuOTEyLTEuOTIzYTIuOTcsMi45NywwLDAsMSwuMTc3LDIuOTQ1Yy0uMjQ1LjIwNy0xLjgzNy0xLjA1OS0zLjIyNS0uNDIzQTEwLjU3NCwxMC41NzQsMCwwLDAsMjMuNzMsMTIuNDVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTAyZDE2XFxcIi8+PHBhdGggZD1cXFwiTTI5LjQsOS43MjdhLjguOCwwLDAsMS0uMi40NjljLS4yMjkuMTYyLTEuOS0uNTA2LTMuMjM4LjA1NmExMi40MzksMTIuNDM5LDAsMCwwLTIuMDcxLDEuMDdMMjMuMiwxMC4zNGMtLjA1Ny4wNzQtLjExNi4xNDctLjE2NS4yMjNsLjY5MiwxLjg4NkExMC41NzcsMTAuNTc3LDAsMCwxLDI1LjksMTEuMTYyYzEuMzg4LS42MzYsMi45OC42MzEsMy4yMjUuNDIzQTIuODQ2LDIuODQ2LDAsMCwwLDI5LjQsOS43MjdaXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuMzEzNzI1NTAxMjk4OTA0NFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4zODIsMjUuMThhMi4yMzYsMi4yMzYsMCwwLDEtMS4xNDctLjMyMy41NjMuNTYzLDAsMCwxLS4wODItLjg4OGMuNzM3LS42ODQuNjA3LTIuMTczLS40MS00LjY4OWEzNi41MjYsMzYuNTI2LDAsMCwwLTUuMTIzLTguODI1bC0uMzUtLjQzYy0xLjUxMi0xLjg2NS0yLjM1OC0yLjgxNS0zLjU1NC0yLjNhLjU2Mi41NjIsMCwwLDEtLjQxMy4wMTYuNTcxLjU3MSwwLDAsMS0uMzc3LS41OTIsMi4xMTksMi4xMTksMCwwLDEsMS40NjEtMmM0LjcxNi0xLjQ4MSwxMC4yNi44MTQsMTIuOTA1LDUuMzQ0YTExLjIsMTEuMiwwLDAsMS0xLjQzMSwxMy45OTFBMS45MTksMS45MTksMCwwLDEsMjEuMzgyLDI1LjE4WlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy44MTIsMTAuNzgzYy0yLjQ0NC00LjE5Mi03LjczLTYuNTI4LTEyLjI3LTUuMDkzLTEuMDA3LjI0OC0xLjA2NSwxLjUzNS0xLjA1MiwxLjUxNywxLjc3Ni0uNzY3LDIuOTUzLjkxOSw0LjU2NiwyLjg5YTM2LjksMzYuOSwwLDAsMSw1LjIwOSw4Ljk3MWMuODksMi4yLDEuNCw0LjI2Ny4yNyw1LjMxMmExLjUsMS41LDAsMCwwLDEuOTA5LS4yNzRBMTAuNjQ2LDEwLjY0NiwwLDAsMCwyMy44MTIsMTAuNzgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzUwMmQxNlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy42NDksMTAuMzQ2YTkuMzE0LDkuMzE0LDAsMCwxLTIuNTE4LDcuNzI1Yy0uNDU1LjQ4Ni0uODczLjE3Ny0xLjI2My4wNjMuMTM4LjMxMy4yNzEuNjI2LjQuOTM2Ljg5LDIuMiwxLjQsNC4yNjYuMjcxLDUuMzEyYTEuNSwxLjUsMCwwLDAsMS45MDktLjI3NEMyNi4wODksMjAuMTgzLDI2LjM1NywxNC45MTksMjMuNjQ5LDEwLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC4zMTM3MjU1MDEyOTg5MDQ0XFxcIi8+XCIsXG5cdFwiU3RhblwiOiBcIjx0aXRsZT5maWxlX3R5cGVfc3RhbjwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LDJBMTQsMTQsMCwwLDAsNS42ODgsMjUuNDY5YzEuNy0uNTE0LDMuNDExLS45OTIsNC44MDYtMS4zNTcsNC4wMzctMS4wNTQsMTAuOTQ4LTIuODM2LDExLjk0Ni01LjA4Mi0uMjguNzgtMS4yMTgsMi44Ny0xLjIxOCwyLjg3LTEuMjc5LDEuMjQ3LTcuMDksMi42MzEtMTAuOTE3LDMuMzY3LTEuMjIuMjM1LTIuNjE0LjUwNy00LjAyNi44MDZBMTQsMTQsMCwwLDAsMjguNDY3LDkuNjI4Yy0yLjUyNi40MDgtMTAuNSwxLjg1NC0xMi41MzksMi4zMTUtMi4yNTUuNTA5LTYuNzg5LDEuNDMzLTcuNjk0LDIuOTkzQzguOCwxMy41LDEwLjQ5Miw5Ljc0NCwxMC40OTIsOS43NDRjMS4yMTYtMiw2LjYtMy40MjUsMTAuMzU4LTQuNDYzLjg3Ni0uMjQyLDEuOTIyLS41MzksMy4wMjMtLjg1OEExMy45MzQsMTMuOTM0LDAsMCwwLDE2LDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjIwMDFkXFxcIi8+PHBhdGggZD1cXFwiTTguMjIzLDE0Ljk4N2MtLjI1MiwxLjE3NSwzLjUyLDIuMzEzLDYuOTIxLDMuMzg5YTI2LjM2MiwyNi4zNjIsMCwwLDEsNS42NjcsMi4xOTIsMy4wODUsMy4wODUsMCwwLDAsMS42NjItMS42MTRjLjM3Ny0xLjQ4OS0zLjAxMy0zLjM5My01LjI3NC00LjIyOWEzMy4zMzcsMzMuMzM3LDAsMCwxLTQuNDA3LTIuMDQyYy00LjMxNiwxLjE0My00LjU2OSwyLjMtNC41NjksMi4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzU5MDgxNVxcXCIvPlwiLFxuXHRcIlN0YXRhIEFkb1wiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiMlxcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMzBcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4YWE3YzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzYzZlOGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3N0YXRhPC90aXRsZT48cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHJ4PVxcXCIxLjU1NlxcXCIgcnk9XFxcIjEuNTU2XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHJlY3QgeD1cXFwiMTMuMTcxXFxcIiB5PVxcXCI2LjAxNVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMzI2XFxcIiB5PVxcXCI2LjAxNVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMzI2XFxcIiB5PVxcXCIxMy4xNzFcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjEzLjE3MVxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCI2LjAxNVxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCI2LjAxNVxcXCIgeT1cXFwiMjAuMzI2XFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIxMy4xNzFcXFwiIHk9XFxcIjIwLjMyNlxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiU3R5bHVzXCI6IFwiPHRpdGxlPmZpbGVfdHlwZV9zdHlsdXM8L3RpdGxlPjxwYXRoIGQ9XFxcIk02LjMxNSwyMC43NzZjLjcyNi0uODY5LjgxMi0xLjc2Ni4yNDktMy40MzItLjM1Ni0xLjA1NC0uOTQ3LTEuODY1LS41MTMtMi41MjEuNDYzLS43LDEuNDQ1LS4wMjEuNjI3LjkxMWwuMTY0LjExNGMuOTgzLjExNCwxLjQ2Ny0xLjIzMi43MzMtMS42MTYtMS45MzctMS4wMTEtMy42MzEuOTMzLTIuODg0LDMuMTgzLjMyLjk1NC43NjksMS45NjUuNDA2LDIuNzdBMS43OTQsMS43OTQsMCwwLDEsMy43NzMsMjEuM2MtLjg0Ny4wNDMtLjI4NS0xLjkuNjkxLTIuMzg1LjA4NS0uMDQzLjIwNi0uMS4wOTMtLjI0MmEyLjEzNCwyLjEzNCwwLDAsMC0yLjMxNCwxLjJDMS4wNjEsMjIuMTIxLDQuNDg1LDIyLjk1NCw2LjMxNSwyMC43NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTI3LjQ2MiwxNC4xNGMuMjc4LjY4NC43LDEuMzYuNDQ5LDEuOTU4LS4yMDYuNTEzLS40NzcuNzI2LS43NzYuNzc2LS40Mi4wNzEtLjMwNi0xLjI0Ni40MTMtMS42MzguMDY0LS4wMzYuMTU3LS4yMDYuMDcxLS4zMDZhMS42MzYsMS42MzYsMCwwLDAtMS43Ljk2MWMtLjgsMS42ODcsMS44MjMsMi4xNSwzLjExMi40OTEuNTEzLS42NjIuNTM0LTEuMzE3LjA0My0yLjUwNi0uMzEzLS43NTUtLjc5LTEuMzE3LS40OTEtMS44MTYuMzItLjUyNywxLjA4OS0uMDcxLjUxMy42MzRsLjEyOC4wNzFjLjc0OC4wNDMsMS4wNTQtLjk1NC40ODQtMS4yQTEuODM0LDEuODM0LDAsMCwwLDI3LjQ2MiwxNC4xNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTUsMTIuMzM4Yy0uNTItLjQxMy0xLjk3OS4yNzgtMi4zOTIsMS4zYTE2LjIxMywxNi4yMTMsMCwwLDEtMi4wNDMsNC4wMzdjLS44Ljg3Ni0uODc2LjItLjgtLjMwNkExNS4zMjcsMTUuMzI3LDAsMCwxLDE0LjcsMTIuNjUyYy0uMjM1LS4zNDktMS43NzMtLjMtMi44NDEsMS4zNi0uNC42MjctMS4zMSwyLjcxMy0yLjMyMSw0LjM1OC0uMjIxLjM1Ni0uNS4xMDctLjI4NS0uNzI2YTM5LjgsMzkuOCwwLDAsMSwxLjg3My01LjY4MiwzOS4wNzIsMzkuMDcyLDAsMCwxLDYuOTIxLS44MTljLjI2My0uMDcxLjQ0MS0uMzA2LDAtLjMyYTQ2Ljc3OCw0Ni43NzgsMCwwLDAtNi41OTMuNDQxLDQuOTIzLDQuOTIzLDAsMCwxLDEuNDQ1LTEuOTQ0LDEuNzg3LDEuNzg3LDAsMCwwLTIuMjY0LjcxOSwxMi4yODcsMTIuMjg3LDAsMCwwLS44MTksMS40NTMsMjQuMTk0LDI0LjE5NCwwLDAsMC0zLjk4Ljg2MmMtLjc4My4zLS43LDEuMjQ2LS4yMjEsMS4wNjhhMzEuNjMxLDMxLjYzMSwwLDAsMSwzLjgxNi0xLjEsMzAuMjkyLDMwLjI5MiwwLDAsMC0xLjg2NSw1LjY4MmMtLjQ0MSwyLjQ5MiwxLjEsMi40NzgsMS44NTgsMS41LjgxOS0xLjA3NSwyLjUyOC00Ljg1NiwyLjc5MS01LjI1NS4wNzgtLjEzNS4xODUtLjA2NC4xMjguMDU3LTEuOTA4LDMuODA5LTEuNzQ0LDUuMjgzLS4yLDQuOTU2YTQuOTI5LDQuOTI5LDAsMCwwLDIuMjE0LTEuOTY1Yy4wNjQtLjE1LjItLjEzNS4xNzEtLjA3MS0xLjIxLDMuMTQtMi43NDgsNS42ODItMy43ODEsNi40NzktLjk0LjcxOS0xLjYzOC0uODQsMS42ODctMy4wNzYuNDkxLS4zMzUuMjYzLS43OS0uMjkyLS42MzRoMGEyOS43OTMsMjkuNzkzLDAsMCwwLTguNzg2LDMuMzI1Yy0uMTY0LjExNC0uMzEzLjIwNi0uMzA2LjQ0MS4wMDcuMTM1LjI0Mi4wODUuMzU2LjAxNEEyMi43NzEsMjIuNzcxLDAsMCwxLDExLjEsMjAuOWEuMTU4LjE1OCwwLDAsMCwuMTE0LjAwN2MuMTIxLS4wMjguMTE0LjAzNi4wMzYuMDg1LS4xNzguMS0uMzU2LjE5Mi0uNC4yMDYtMS43NjYuNjkxLTIuODM0LDIuMjE0LTIuNDU2LDIuOTkuMzIuNjY5LDIuMDUxLjQyNywyLjg2OS0uMDE0LDIuMDA4LTEuMDg5LDMuNDY4LTMuMjI1LDQuNDY0LTYuMTczQzE2LjYsMTUuMzg2LDE3LjY5MywxMi40MjQsMTcuOTUsMTIuMzM4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS42MiwxOC4zNjlhNDguMTQ1LDQ4LjE0NSwwLDAsMC0xMy40MjkuOTY4Yy0uOTI2LjI0Mi0uNjY5LjczMy0uMi42NDEuMDA3LDAsLjIwNi0uMDUuMjE0LS4wNWE0Mi4yNzksNDIuMjc5LDAsMCwxLDEyLjM3NS0uMjQyQzI5LjAxNCwxOS43NjUsMzAuMzE3LDE4LjQ2MiwyOS42MiwxOC4zNjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljg2MSwxNy45ODVjLjkxMS0uNDU2LDIuMjY0LTMuMjc1LDMuMTU0LTQuODIuMDY0LS4xMTQuMTc4LS4wMjEuMTE0LjA1Ny0yLjI1LDMuODczLTEuMyw0LjMyMi0uNDA2LDQuMjY1LDEuMTg5LS4wNzEsMi4yODYtMS43OCwyLjUyOC0yLjE2NS4xLS4xNS4xNTctLjAyOC4xLjA3OC0uMDU3LjE3OC0uMjYzLjQ5MS0uNDU2LjkxOS0uMjcxLjYwNS4wMTQuODQuMjQ5Ljk0Ny4zNy4xNzgsMS4zODEuMDY0LDEuNTM4LS41NTUtMS4wMTEtLjAyMSwxLjQxLTQuNzkyLDEuNjU5LTUuMDg0YTEuNzE4LDEuNzE4LDAsMCwwLTIuMi45NzVjLTEuMDE4LDIuMDE1LTEuODczLDMuNjM4LTIuNDA3LDMuNjY3LTEuMDQuMDU3LDEuMi00LjQ5MywxLjU1OS00LjYzNS0uMjIxLS4zMi0xLjYzOC0uMTg1LTIuNDI4LDEuMDQtLjI4NS40NDEtMi4wMjIsMy41MTctMi40NDksNC4wMjMtLjc1NS45LS44MTIuMTI4LS42LS43NjlhMTAuNTY5LDEwLjU2OSwwLDAsMSwuMzQ5LTEuMTMyLDUuMzI0LDUuMzI0LDAsMCwxLDEuMzYtMS44NDRjMi4yLTIuNDQyLDMuNDYtNC40MjIsMi45NjItNS4yLS40NDEtLjY5MS0xLjkxNS0uMzg0LTIuODYyLDEuMDQtMS43NDQsMi42MTMtMy4zNTQsNi4xOTUtMy41Niw3LjgzMlMxOC4wNTYsMTguMzgzLDE4Ljg2MSwxNy45ODVabS45MjYtNC43OTJjLjA3OC0uMTc4LjEyOC0uMjI4LjI2My0uNTI3aDBBMjQuOTM0LDI0LjkzNCwwLDAsMSwyMi40OTIsOC4yOGMuNDItLjQ0MSwxLjAxMS4xNTctLjA1NywxLjc5NGExNi40NjIsMTYuNDYyLDAsMCwxLTIuMTE1LDIuNjQydi4wMDdjLS4yLjIyMS0uMzc3LjQwNi0uNDU2LjUxM0MxOS44MDgsMTMuMzA3LDE5Ljc0NCwxMy4yOTIsMTkuNzg3LDEzLjE5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0XCJTVkdcIjogXCI8cGF0aCBkPVxcXCJNNy42NzQsMTQuNDg4YTIuMjE4LDIuMjE4LDAsMSwwLDAsMy4xMzdIMjQuMzI2YTIuMjE4LDIuMjE4LDAsMSwwLDAtMy4xMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMTEuMjIyLDkuMDZBMi4yMTgsMi4yMTgsMCwxLDAsOSwxMS4yNzhMMjAuNzc4LDIzLjA1MkEyLjIxOCwyLjIxOCwwLDEsMCwyMywyMC44MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTY4LDcuNzNhMi4yMTgsMi4yMTgsMCwxLDAtMy4xMzcsMFYyNC4zODJhMi4yMTgsMi4yMTgsMCwxLDAsMy4xMzcsMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmIxM2I7c3Ryb2tlOiMwMDA7c3Ryb2tlLXdpZHRoOjMuNzMwMDAwMDE5MDczNDlweFxcXCIvPjxwYXRoIGQ9XFxcIk0yMywxMS4yNzhBMi4yMTgsMi4yMTgsMCwxLDAsMjAuNzc4LDkuMDZMOSwyMC44MzRhMi4yMTgsMi4yMTgsMCwxLDAsMi4yMTgsMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNNy42NzQsMTQuNDg4YTIuMjE4LDIuMjE4LDAsMSwwLDAsMy4xMzdIMjQuMzI2YTIuMjE4LDIuMjE4LDAsMSwwLDAtMy4xMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiXFxcIi8+PHBhdGggZD1cXFwiTTExLjIyMiw5LjA2QTIuMjE4LDIuMjE4LDAsMSwwLDksMTEuMjc4TDIwLjc3OCwyMy4wNTJBMi4yMTgsMi4yMTgsMCwxLDAsMjMsMjAuODM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NjgsNy43M2EyLjIxOCwyLjIxOCwwLDEsMC0zLjEzNywwVjI0LjM4MmEyLjIxOCwyLjIxOCwwLDEsMCwzLjEzNywwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMywxMS4yNzhBMi4yMTgsMi4yMTgsMCwxLDAsMjAuNzc4LDkuMDZMOSwyMC44MzRhMi4yMTgsMi4yMTgsMCwxLDAsMi4yMTgsMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiXFxcIi8+PHBhdGggZD1cXFwiTTIsMTYuMDU2SDMwVjI1Ljk1YTQuMDM1LDQuMDM1LDAsMCwxLTQuMTA2LDQuMTA2SDYuMTA2QTQuMDM1LDQuMDM1LDAsMCwxLDIsMjUuOTVaXFxcIi8+PHBhdGggZD1cXFwiTTYuMiwyMy4wNDVBMy42MjgsMy42MjgsMCwxLDEsMTIuNCwyMC40OEgxMC4yN0ExLjUsMS41LDAsMSwwLDcuNywyMS41NDFoMGExLjYsMS42LDAsMCwwLDEuMDYyLjQ0MWgwYTQuMTE4LDQuMTE4LDAsMCwxLDIuNTY2LDEuMDYzaDBhMy42MjgsMy42MjgsMCwxLDEtNi4xOTQsMi41NjVINy4yNjRBMS41LDEuNSwwLDEsMCw5LjgzLDI0LjU1aDBhMS45NDgsMS45NDgsMCwwLDAtMS4wNjMtLjQ0aDBBNC40NjUsNC40NjUsMCwwLDEsNi4yLDIzLjA0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuNjUxLDE2Ljg1MiwxNy4wODUsMjkuMjRIMTQuOTZMMTIuNCwxNi44NTJIMTQuNTJsMS41LDcuMjU1LDEuNS03LjI1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjgsMjEuOTgzaDMuNjI4djMuNjI4aDBhMy42MjgsMy42MjgsMCwxLDEtNy4yNTcsMGgwVjIwLjQ4aDBhMy42MjgsMy42MjgsMCwwLDEsNy4yNTcsMEgyNC43ODNhMS41LDEuNSwwLDEsMC0zLjAwNSwwdjUuMTNoMGExLjUsMS41LDAsMCwwLDMuMDA1LDBoMHYtMS41aC0xLjVWMjEuOTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlN3aWZ0XCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzNC40OTRcXFwiIHkxPVxcXCItMTcxLjgyXFxcIiB4Mj1cXFwiLTEzNC40OTdcXFwiIHkyPVxcXCItMTcxLjg5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDI0MCwgMCwgMCwgLTIwNS42LCAzMjI5NSwgLTM1MzEyLjU4NSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmODg1MzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZDIyMjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3N3aWZ0PC90aXRsZT48cGF0aCBkPVxcXCJNMTkuNDIyLDQuMDA3czYuMjE3LDMuNTU0LDcuODQ0LDkuMmMxLjQ2Niw1LjEuMjkyLDcuNTM0LjI5Miw3LjUzNGE4LjkxNSw4LjkxNSwwLDAsMSwxLjc0MiwyLjgsNC44MjUsNC44MjUsMCwwLDEsLjI5LDQuNDUzcy0uMS0yLjA4LTMuMi0yLjUxMWMtMi44NDEtLjQtMy44NzQsMi4zNjYtOS4zLDIuMjMyQTE4LjQzNSwxOC40MzUsMCwwLDEsMiwxOS4zNTRDNC42NTEsMjAuOCw4LjEyNCwyMy4wNDUsMTIuNDQ5LDIyLjdzNS4yMjgtMS42NzQsNS4yMjgtMS42NzRBNjYuOSw2Ni45LDAsMCwxLDQuODkxLDcuNjQzYzMuNCwyLjg0NSwxMS44MjIsOC41MDcsMTEuNjI2LDguMzYzQTc1LjgyNiw3NS44MjYsMCwwLDEsOC4wOTIsNi4yNFMyMC43MjgsMTYuNjI5LDIxLjc0NSwxNi41NjNjLjQxOC0uODYxLDIuNTc5LTUuMzE4LTIuMzI0LTEyLjU1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiOiBcIjxwYXRoIGQ9XFxcIk0yLDEydjhINS4yNTZWMTguNzY5SDMuM1YxMy4yMzFINS4yNTZWMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljc0NCwxMnYxLjIzMUgyOC43djUuNTM4SDI2Ljc0NFYyMEgzMFYxMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTcuNjI4LDE2bDUuMjEtMi43Njl2NS41MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzBkNDc1XFxcIi8+PGVsbGlwc2UgY3g9XFxcIjEyLjA5M1xcXCIgY3k9XFxcIjE2XFxcIiByeD1cXFwiMi45M1xcXCIgcnk9XFxcIjIuNzY5XFxcIiBzdHlsZT1cXFwiZmlsbDojMzBkNDc1XFxcIi8+XCIsXG5cdFwiVDQgdGVtcGxhdGluZ1wiOiBcIjxwYXRoIGQ9XFxcIk0xOS41NDUsNi4wMzVIMTMuMjdWMjRIOC4zVjYuMDM1SDIuMDU1VjJoMTcuNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+PHBhdGggZD1cXFwiTTI3LjU2NywxMFYyMi42MDhoMi40VjI1LjloLTIuNFYzMEgyMy41NTFWMjUuOUgxNC44MzRWMjIuNDU1cTEuMTU4LTEuMywyLjQtMi44Mzh0Mi40LTMuMTczcTEuMTU4LTEuNjMyLDIuMTU1LTMuMjg1QTMyLjkyNSwzMi45MjUsMCwwLDAsMjMuNDgxLDEwWk0xOC43ODEsMjIuNjA4aDQuNzdWMTUuNjIxcS0uNDg4LjkwNy0xLjA2LDEuODM0dC0xLjIsMS44MjdxLS42MjguOS0xLjI2OSwxLjc0M1QxOC43ODEsMjIuNjA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPlwiLFxuXHRcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIjogXCI8cGF0aCBkPVxcXCJNMTkuNTQ1LDYuMDM1SDEzLjI3VjI0SDguM1Y2LjAzNUgyLjA1NVYyaDE3LjQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NjcsMTBWMjIuNjA4aDIuNFYyNS45aC0yLjRWMzBIMjMuNTUxVjI1LjlIMTQuODM0VjIyLjQ1NXExLjE1OC0xLjMsMi40LTIuODM4dDIuNC0zLjE3M3ExLjE1OC0xLjYzMiwyLjE1NS0zLjI4NUEzMi45MjUsMzIuOTI1LDAsMCwwLDIzLjQ4MSwxMFpNMTguNzgxLDIyLjYwOGg0Ljc3VjE1LjYyMXEtLjQ4OC45MDctMS4wNiwxLjgzNHQtMS4yLDEuODI3cS0uNjI4LjktMS4yNjksMS43NDNUMTguNzgxLDIyLjYwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz5cIixcblx0XCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCI6IFwiPHBhdGggZD1cXFwiTTE5LjU0NSw2LjAzNUgxMy4yN1YyNEg4LjNWNi4wMzVIMi4wNTVWMmgxNy40OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTY3LDEwVjIyLjYwOGgyLjRWMjUuOWgtMi40VjMwSDIzLjU1MVYyNS45SDE0LjgzNFYyMi40NTVxMS4xNTgtMS4zLDIuNC0yLjgzOHQyLjQtMy4xNzNxMS4xNTgtMS42MzIsMi4xNTUtMy4yODVBMzIuOTI1LDMyLjkyNSwwLDAsMCwyMy40ODEsMTBaTTE4Ljc4MSwyMi42MDhoNC43N1YxNS42MjFxLS40ODguOTA3LTEuMDYsMS44MzR0LTEuMiwxLjgyN3EtLjYyOC45LTEuMjY5LDEuNzQzVDE4Ljc4MSwyMi42MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+XCIsXG5cdFwiVGNsXCI6IFwiPHBhdGggZD1cXFwiTTIxLjk0MiwyLjg3NmMuMDQsMi40NjgtLjAzMyw0LjkxLTIuMTY5LDcuMjNsLS4wNzkuMDg5aC4xMTlsLjg3My4wMTNjLTEuNDE4LDIuOTUtMi4zNDEsNS44OTItNC4zOCw4LjgzbC0uMDczLjEwNi4xMjYtLjAyMywxLjA3OC0uMmE1Ljg1MSw1Ljg1MSwwLDAsMS0zLjQ4NCwzLjY1Yy0uMzktNS40NTUsMi4zMzMtMTAuMjcsNC42NDUtMTUuMDcxbC4wMDctLjAxMy0uMDg2LS4wNmMtMy43ODYsNC4yMzMtNS40OTEsMTAuMi02LjEzNiwxNS4xMjdhNC41ODIsNC41ODIsMCwwLDEtMi4xNDUtMi45ODhsLjkuMzc3LjA5My4wNC0uMDItLjFjLS42ODEtMy4wMjguMzc2LTUuMiwxLjQtOC4wNTZsLjczNy40OTMuMDg2LjA2LDAtLjFjLS4wNTgtMi4zMiwxLjUtNC42NDksMy41NzctNi43MjdsLjI4OC43Ny4wNC4xLjA1Ni0uMS42MzEtMS4wNTEsMC0uMDA3QTYuMSw2LjEsMCwwLDEsMjEuOTQyLDIuODc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MzYjE1ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NDgsMi44NzVhNi4xMzEsNi4xMzEsMCwwLDAtMy45MjYsMi4zODhsMCwuMDA3LS42MzEsMS4wNTEtLjA1Ni4xLS4wNC0uMUwxNyw1LjU0NGMtMi4wNzIsMi4wNzgtMy42MzUsNC40MDctMy41NzcsNi43MjdsMCwuMS0uMDg2LS4wNi0uNzM3LS40OTNjLTEuMDI1LDIuODU2LTIuMDgzLDUuMDI5LTEuNCw4LjA1NmwuMDIuMS0uMDkzLS4wNC0uODg2LS4zNzRjMCwuMDE4LjAwNy4wMzUuMDEuMDUzYTQuNTMzLDQuNTMzLDAsMCwwLDIuMTI2LDIuOTMyYy4wNS0uMzgxLjEwNS0uNzcxLjE2OS0xLjE2NC0xLjU0My0zLjYxNC0uMi02LjI3MS40MDctOC42NjFsLjkzOS41NDJjLS4xMy0yLjIzOCwxLjE4NC00LjY1MSwyLjg5My02Ljc1N2wuNS44NzNDMTguNTU1LDQuNzY5LDE5LjU2LDMuNzIsMjEuOTQ4LDIuODc1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmZjFjYjtzdHJva2U6I2VmZjFjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi41MTgsMmwtLjA1Ni4wMWMtMi4wODIuMzYzLTQuMTIxLDEuMTI4LTUuMDE1LDIuOTU5bC0uMzc3LS42NTgtLjAzMy0uMDYtLjA1LjA1YTIwLjg1LDIwLjg1LDAsMCwwLTIuOTM5LDMuNUE1LjkzOSw1LjkzOSwwLDAsMCwxMi44MzUsMTFsLS41MzItLjY2NC0uMDUzLS4wNjYtLjAzNi4wNzZhMjcuNTM1LDI3LjUzNSwwLDAsMC0xLjY5Myw0LjcsNi43Myw2LjczLDAsMCwwLS4xNTksMy43MTlsLS44NzYtLjUwOS0uMDczLS4wNDMtLjAwNy4wODZhNS41MjksNS41MjksMCwwLDAsMi4wMTcsNC44NDNsLS45NzIuMjQxLS4yLjA1LjIuMDUzYTQuMjU4LDQuMjU4LDAsMCwxLDEuNDU1LjYsMS4zMjUsMS4zMjUsMCwwLDEsLjUxNiwxLjNWMjguMWwuMDEuMDEzLDEuMjE3LDEuNzQ1LjEuMTM5VjI1LjcxOWEzLjQ2NiwzLjQ2NiwwLDAsMSwuNjIxLTEuNDg0QTEuNjM5LDEuNjM5LDAsMCwxLDE1LjUsMjMuN2wuMTgyLS4wMjMtLjE2NS0uMDc2LS42NDEtLjNhOS4xMTIsOS4xMTIsMCwwLDAsMy42OTMtNS4zMjJsLjAyLS4wODYtLjA4My4wMjMtLjc5My4yMTVhMTEuNjY5LDExLjY2OSwwLDAsMCwyLjA4OS0zLjVDMjAuNTEyLDEzLDIxLjE4LDExLjE2NiwyMS43MjgsOS43bC4wMy0uMDc5LS4wODMuMDA3LS42MTIuMDQzYTYuNjU1LDYuNjU1LDAsMCwwLDEuMzgyLTMuNTI3LDE3LjAzOSwxNy4wMzksMCwwLDAsLjA3OS00LjA4NlptLS41NzUuODc2Yy4wNCwyLjQ2OC0uMDMzLDQuOTEtMi4xNjksNy4yM2wtLjA3OS4wODloLjExOWwuODczLjAxM2MtMS40MTgsMi45NS0yLjM0MSw1Ljg5Mi00LjM4LDguODNsLS4wNzMuMTA2LjEyNi0uMDIzLDEuMDc4LS4yYTUuODUxLDUuODUxLDAsMCwxLTMuNDg0LDMuNjVjLS4zOS01LjQ1NSwyLjMzMy0xMC4yNyw0LjY0NS0xNS4wNzFsLjAwNy0uMDEzLS4wODYtLjA2Yy0zLjc4Niw0LjIzMy01LjQ5MSwxMC4yLTYuMTM2LDE1LjEyN2E0LjU4Miw0LjU4MiwwLDAsMS0yLjE0NS0yLjk4OGwuOS4zNzcuMDkzLjA0LS4wMi0uMWMtLjY4MS0zLjAyOC4zNzYtNS4yLDEuNC04LjA1NmwuNzM3LjQ5My4wODYuMDYsMC0uMWMtLjA1OC0yLjMyLDEuNS00LjY0OSwzLjU3Ny02LjcyN2wuMjg4Ljc3LjA0LjEuMDU2LS4xLjYzMS0xLjA1MSwwLS4wMDdBNi4xLDYuMSwwLDAsMSwyMS45NDIsMi44NzZaXFxcIi8+XCIsXG5cdFwiVGVtcGxhdGUgVG9vbGtpdCAyXCI6IFwiPHBhdGggZD1cXFwiTTguOTA3LDIzLjAyMUg4Ljg3OGEzLjMwNSwzLjMwNSwwLDAsMS0yLjAxMS0uNjYxQTIuNTYxLDIuNTYxLDAsMCwxLDUuODMsMjAuMzM0VjE2LjFINC4yODhhMy4wNSwzLjA1LDAsMCwxLTIuNzM4LTEuNjksMy4zLDMuMywwLDAsMSwuNDQxLTMuNTMsMi4yNjUsMi4yNjUsMCwwLDEsMS44MTUtLjloOS42NWEzLjA1LDMuMDUsMCwwLDEsMi43MzgsMS42OSwzLjMsMy4zLDAsMCwxLS40NDEsMy41MywyLjI2NSwyLjI2NSwwLDAsMS0xLjgxNS45SDExLjk1NXY0LjIzMWEyLjU2MSwyLjU2MSwwLDAsMS0xLjAzNywyLjAyNkEzLjMwNSwzLjMwNSwwLDAsMSw4LjkwNywyMy4wMjFaTTQuMjY0LDExLjYzNmExLjM5LDEuMzksMCwwLDAtMS4zODgsMS4zODh2LjAzM2ExLjM5LDEuMzksMCwwLDAsMS4zODgsMS4zODhINy40ODd2NS44ODFjMCwuNTcyLjYyNCwxLjAzNywxLjM5LDEuMDM3aC4wMjljLjc2NywwLDEuMzktLjQ2NSwxLjM5LTEuMDM3VjE0LjQ0NmgzLjIyM2ExLjM5LDEuMzksMCwwLDAsMS4zODgtMS4zODh2LS4wMzNhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAxNWQ5YVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45ODEsMTIuOTUzdi4wMzNhMS41MzMsMS41MzMsMCwwLDEtMS41MzMsMS41MzNIMTAuMzd2NS43MzdhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUsMS4xODFIOC44MDZhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUtMS4xODFWMTQuNTE4SDQuMTkyQTEuNTMzLDEuNTMzLDAsMCwxLDIuNjYsMTIuOTg2di0uMDMzQTEuNTMzLDEuNTMzLDAsMCwxLDQuMTkyLDExLjQyaDkuMjU3QTEuNTMzLDEuNTMzLDAsMCwxLDE0Ljk4MSwxMi45NTNabS00LjIyMyw5LjIyMmEyLjQxOCwyLjQxOCwwLDAsMCwuOTgtMS45MTJWMTUuODg4aDIuMTI3YTIuMTE0LDIuMTE0LDAsMCwwLDEuNy0uODQ2LDIuOTkyLDIuOTkyLDAsMCwwLTIuMTgtNC45OUgzLjczNWEyLjExNCwyLjExNCwwLDAsMC0xLjcuODQ2LDIuOTkyLDIuOTkyLDAsMCwwLDIuMTgsNC45OUg1Ljl2NC4zNzVhMi40MTgsMi40MTgsMCwwLDAsLjk4LDEuOTEyLDMuMTYsMy4xNiwwLDAsMCwxLjkyMy42MzFoLjAyOUEzLjE2LDMuMTYsMCwwLDAsMTAuNzU4LDIyLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYmNlZmNcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjA3LDIzLjAyMWgtLjAyOWEzLjMwNSwzLjMwNSwwLDAsMS0yLjAxMS0uNjYxLDIuNTYxLDIuNTYxLDAsMCwxLTEuMDM3LTIuMDI2VjE2LjFIMTguOTg4YTMuMDUsMy4wNSwwLDAsMS0yLjczOC0xLjY5LDMuMywzLjMsMCwwLDEsLjQ0MS0zLjUzLDIuMjY1LDIuMjY1LDAsMCwxLDEuODE1LS45aDkuNjVhMy4wNSwzLjA1LDAsMCwxLDIuNzM4LDEuNjksMy4zLDMuMywwLDAsMS0uNDQxLDMuNTMsMi4yNjUsMi4yNjUsMCwwLDEtMS44MTUuOUgyNi42NTV2NC4yMzFhMi41NjEsMi41NjEsMCwwLDEtMS4wMzcsMi4wMjZBMy4zMDUsMy4zMDUsMCwwLDEsMjMuNjA3LDIzLjAyMVpNMTguOTY0LDExLjYzNmExLjM5LDEuMzksMCwwLDAtMS4zODgsMS4zODh2LjAzM2ExLjM5LDEuMzksMCwwLDAsMS4zODgsMS4zODhoMy4yMjN2NS44ODFjMCwuNTcyLjYyNCwxLjAzNywxLjM5LDEuMDM3aC4wMjljLjc2NywwLDEuMzktLjQ2NSwxLjM5LTEuMDM3VjE0LjQ0NmgzLjIyM2ExLjM5LDEuMzksMCwwLDAsMS4zODgtMS4zODh2LS4wMzNhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAxNWQ5YVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS42ODEsMTIuOTUzdi4wMzNhMS41MzMsMS41MzMsMCwwLDEtMS41MzMsMS41MzNIMjUuMDd2NS43MzdhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUsMS4xODFoLS4wMjlhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUtMS4xODFWMTQuNTE4SDE4Ljg5MmExLjUzMywxLjUzMywwLDAsMS0xLjUzMy0xLjUzM3YtLjAzM2ExLjUzMywxLjUzMywwLDAsMSwxLjUzMy0xLjUzM2g5LjI1N0ExLjUzMywxLjUzMywwLDAsMSwyOS42ODEsMTIuOTUzWm0tNC4yMjMsOS4yMjJhMi40MTgsMi40MTgsMCwwLDAsLjk4LTEuOTEyVjE1Ljg4OGgyLjEyN2EyLjExNCwyLjExNCwwLDAsMCwxLjctLjg0NiwyLjk5MiwyLjk5MiwwLDAsMC0yLjE4LTQuOTloLTkuNjVhMi4xMTQsMi4xMTQsMCwwLDAtMS43Ljg0NiwyLjk5MiwyLjk5MiwwLDAsMCwyLjE4LDQuOTlIMjAuNnY0LjM3NWEyLjQxOCwyLjQxOCwwLDAsMCwuOTgsMS45MTIsMy4xNiwzLjE2LDAsMCwwLDEuOTIzLjYzMWguMDI5QTMuMTYsMy4xNiwwLDAsMCwyNS40NTgsMjIuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzNiY2VmY1xcXCIvPlwiLFxuXHRcIlRlWFwiOiBcIjxwYXRoIGQ9XFxcIk0xMS4zMzMsMTMuMTIyYy0uMTI4LTEuNTYyLS4yNDEtMi43NTYtMi4yODctMi43NTZINy45MXY4LjRoMi4xNDV2LjYxMWwtMy4wODMtLjAyOS0zLjA4Mi4wMjl2LS42MTFINi4wMzR2LTguNEg0Ljg4NGMtMi4wNDYsMC0yLjE1OSwxLjIwOC0yLjI4NywyLjc1NkgybC4yODQtMy4zNjdoOS4zNjJsLjI4NCwzLjM2N2gtLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyMi41M0gxMC40MVYyMS45MmgxLjUwNlYxMy40NjdIMTAuNDF2LS42MTFoOC42MzdsLjQxMiwzLjM2N2gtLjZjLS4yMTMtMS44MzMtLjY4Mi0yLjc1Ni0yLjg1NS0yLjc1NkgxMy43OTFWMTcuMmguODM4YzEuMzY0LDAsMS41MDUtLjYsMS41MDUtMS42NjJoLjZ2My45MzVoLS42YzAtMS4wOC0uMTQyLTEuNjYyLTEuNTA1LTEuNjYyaC0uODM4djQuMTA2aDIuMjE2YzIuNDcyLDAsMy0xLjEwOCwzLjMtMy4yMjVoLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjcyNywxOS4xODZjLS41NCwwLTEuOTYsMC0yLjQxNS4wMjlWMTguNmgxLjE3OWwtMi41NTctMy41NTItMi41MjksMy4zODFBNC4xLDQuMSwwLDAsMCwyMi43LDE4LjZ2LjYxMWMtLjM1NS0uMDI5LTEuNTc2LS4wMjktMi4wMTctLjAyOS0uNCwwLTEuNTQ4LDAtMS44NzUuMDI5VjE4LjZoLjM4M2E3LjQ1OSw3LjQ1OSwwLDAsMCwuODI0LS4wNDNjLjUtLjA0My41NC0uMDg1LjY2Ny0uMjU2TDIzLjUzNiwxNC41bC0zLjE1My00LjQxOEgxOVY5LjQ3Yy4zODQuMDI4LDEuNzkuMDI4LDIuMjczLjAyOC41ODIsMCwxLjkxOCwwLDIuNDI5LS4wMjh2LjYxMUgyMi41MjhsMi4xMTcsMi45NTUsMi4wNzQtMi43ODRhNC4xLDQuMSwwLDAsMC0xLjI5My0uMTdWOS40N2MuMzU2LjAyOCwxLjU5MS4wMjgsMi4wMzIuMDI4LjQsMCwxLjUzNCwwLDEuODYxLS4wMjh2LjYxMWgtLjM2OWE1LjI2NCw1LjI2NCwwLDAsMC0uODM4LjA0M2MtLjQ2OS4wNDMtLjUyNi4wNzEtLjY2Ny4yNTZsLTIuNCwzLjIxTDI4LjYzNiwxOC42SDMwdi42MTFDMjkuNjQ1LDE5LjE4NiwyOC4xODIsMTkuMTg2LDI3LjcyNywxOS4xODZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+XCIsXG5cdFwiVGV4dGlsZVwiOiBcIjxwYXRoIGQ9XFxcIk0yOC42ODEsMjYuMDc1SDMuMzE5QTEuMzE3LDEuMzE3LDAsMCwxLDIsMjQuNzU2VjcuMjQ0QTEuMzE3LDEuMzE3LDAsMCwxLDMuMzE5LDUuOTI1SDI4LjY4MUExLjMxNywxLjMxNywwLDAsMSwzMCw3LjI0NFYyNC43NkExLjMxNiwxLjMxNiwwLDAsMSwyOC42ODEsMjYuMDc1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTdhY1xcXCIvPjxwYXRoIGQ9XFxcIk02LjA2NiwxMi44NDhhNC45ODcsNC45ODcsMCwwLDEsMS41MDgtLjY1OVYxMC42NjRhMy43LDMuNywwLDAsMSwuNzQzLS4zMyw3Ljg2OSw3Ljg2OSwwLDAsMSwxLjMyNy0uMzQ3aC42NDJ2Mi4zOTFoMi40ODRWMTMuNkgxMC4yODZ2NC44NDhhMy4xNzIsMy4xNzIsMCwwLDAsLjI5LDEuNjA5LDEuMDcsMS4wNywwLDAsMCwuOTcxLjQ0OCw3LjEyNyw3LjEyNywwLDAsMCwuNzYtLjA0OCwzLjMzOCwzLjMzOCwwLDAsMCwuNzgyLS4xOGwuMTMyLjYyYTIuMzg4LDIuMzg4LDAsMCwxLS41LjM1Niw1LjQ1Nyw1LjQ1NywwLDAsMS0uNzUyLjM1Niw1LjgzNyw1LjgzNywwLDAsMS0uOTIzLjI4MUE0Ljc2OSw0Ljc2OSwwLDAsMSwxMCwyMmEyLjM4NSwyLjM4NSwwLDAsMS0xLjgyNC0uNjM3LDIuOTQ3LDIuOTQ3LDAsMCwxLS42LTIuMDYyVjEzLjU5MUg2LjA2NlpcXFwiLz48cGF0aCBkPVxcXCJNMTQuNjA3LDIwLjQ1M2ExLjQ0NywxLjQ0NywwLDAsMSwuNDMxLTEuMDksMS41OTEsMS41OTEsMCwwLDEsMS4xNDctLjQxMywxLjY0OSwxLjY0OSwwLDAsMSwxLjE2NS40MTMsMS40MjIsMS40MjIsMCwwLDEsLjQ1MywxLjA5LDEuMzY5LDEuMzY5LDAsMCwxLS40NTMsMS4wODEsMS42OTIsMS42OTIsMCwwLDEtMS4xNjUuNCwxLjYxLDEuNjEsMCwwLDEtMS4xNDctLjRBMS40MjcsMS40MjcsMCwwLDEsMTQuNjA3LDIwLjQ1M1pcXFwiLz5cIixcblx0XCJUT01MXCI6IFwiPHBhdGggZD1cXFwiTTIyLjc2LDYuODN2My4yNWgtNVYyNS4xN0gxNC4yNlYxMC4wOGgtNVY2LjgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzdmN2Y3ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yLDJIOC4yVjUuMDlINS4zNHYyMS44SDguMlYzMEgyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwzMEgyMy44VjI2LjkxaDIuODZWNS4xMUgyMy44VjJIMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+XCIsXG5cdFwiVFNDb25maWdcIjogXCI8cGF0aCBkPVxcXCJNMjMuODI3LDguMjQzQTQuNDI0LDQuNDI0LDAsMCwxLDI2LjA1LDkuNTI0YTUuODUzLDUuODUzLDAsMCwxLC44NTIsMS4xNDNjLjAxMS4wNDUtMS41MzQsMS4wODMtMi40NzEsMS42NjItLjAzNC4wMjMtLjE2OS0uMTI0LS4zMjItLjM1YTIuMDE0LDIuMDE0LDAsMCwwLTEuNjctMWMtMS4wNzctLjA3NC0xLjc3MS40OS0xLjc2NiwxLjQzM2ExLjMsMS4zLDAsMCwwLC4xNTMuNjY2Yy4yMzcuNDkuNjc3Ljc4NCwyLjA1OSwxLjM4MywyLjU0NCwxLjEsMy42MzYsMS44MTcsNC4zMSwyLjg0M2E1LjE1OCw1LjE1OCwwLDAsMSwuNDE2LDQuMzMzLDQuNzY0LDQuNzY0LDAsMCwxLTMuOTMyLDIuODE1LDEwLjksMTAuOSwwLDAsMS0yLjcwOC0uMDI4LDYuNTMxLDYuNTMxLDAsMCwxLTMuNjE2LTEuODg0LDYuMjc4LDYuMjc4LDAsMCwxLS45MjYtMS4zNzEsMi42NTUsMi42NTUsMCwwLDEsLjMyNy0uMjA4Yy4xNTgtLjA5Ljc1Ni0uNDM0LDEuMzItLjc2MWwxLjAyNC0uNi4yMTQuMzEyYTQuNzcxLDQuNzcxLDAsMCwwLDEuMzUsMS4yOTIsMy4zLDMuMywwLDAsMCwzLjQ1OC0uMTc1LDEuNTQ1LDEuNTQ1LDAsMCwwLC4yLTEuOTc0Yy0uMjc2LS40LS44NC0uNzI3LTIuNDQzLTEuNDIyYTguOCw4LjgsMCwwLDEtMy4zNDktMi4wNTUsNC42ODcsNC42ODcsMCwwLDEtLjk3Ni0xLjc3Nyw3LjExNiw3LjExNiwwLDAsMS0uMDYyLTIuMjY4LDQuMzMyLDQuMzMyLDAsMCwxLDMuNjQ0LTMuMzc0QTksOSwwLDAsMSwyMy44MjcsOC4yNDNaTTE1LjQ4NCw5LjcyNmwuMDExLDEuNDU0aC00LjYzVjI0LjMyOEg3LjZWMTEuMTgzSDIuOTdWOS43NTVhMTMuOTg2LDEzLjk4NiwwLDAsMSwuMDQtMS40NjZjLjAxNy0uMDIzLDIuODMyLS4wMzQsNi4yNDUtLjAyOGw2LjIxMS4wMTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+PHBhdGggZD1cXFwiTTI3LjA3NSwyNS4xMDdsLjM2My0uMzYxYzEuNjguMDU1LDEuNzA2LDAsMS43OC0uMTc3bC40NjItMS4xMjQuMDM0LS4xMDctLjAzOC0uMDkzYy0uMDItLjA0OS0uMDgxLS4yLTEuMTMtMS4ydi0uNTI2YzEuMjExLTEuMTY2LDEuMTg1LTEuMjI2LDEuMTE2LTEuNGwtLjQ2LTEuMTM2Yy0uMDY5LS4xNy0uMS0uMjM3LTEuNzYzLS4xOTFsLS4zNjQtLjM2N2E4LjEzOCw4LjEzOCwwLDAsMC0uMDU3LTEuNjU3bC0uMDQ3LS4xMDYtMS4yLS41MjVjLS4xNzctLjA4MS0uMjM5LS4xMS0xLjM3MiwxLjEyNGwtLjUwOS0uMDA4Yy0xLjE2Ny0xLjI0NS0xLjIyMi0xLjIyMy0xLjQtMS4xNTJsLTEuMTE1LjQ1MmMtLjE3NS4wNzEtLjIzNi4xLS4xNjksMS43OWwtLjM2LjM1OWMtMS42OC0uMDU1LTEuNywwLTEuNzc4LjE3N0wxOC42MDYsMjBsLS4wMzYuMTA4LjAzOC4wOTRjLjAyLjA0OC4wNzguMTk0LDEuMTMsMS4ydi41MjVjLTEuMjExLDEuMTY2LTEuMTg0LDEuMjI2LTEuMTE1LDEuNGwuNDU5LDEuMTM3Yy4wNy4xNzQuMS4yMzYsMS43NjMuMTkybC4zNjMuMzc3YTguMTY5LDguMTY5LDAsMCwwLC4wNTUsMS42NTRsLjA0Ny4xMDcsMS4yMDguNTI4Yy4xNzYuMDczLjIzNi4xLDEuMzY2LTEuMTNsLjUwOS4wMDZjMS4xNjgsMS4yNDcsMS4yMjgsMS4yMjMsMS40LDEuMTU0bDEuMTEzLS40NUMyNy4wODIsMjYuODI3LDI3LjE0MywyNi44LDI3LjA3NSwyNS4xMDdabS00Ljc4OC0yLjYzMmEyLDIsMCwxLDEsMi42MTgsMS4xNEEyLjAyMywyLjAyMywwLDAsMSwyMi4yODcsMjIuNDc1WlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5YjhjNFxcXCIvPlwiLFxuXHRcIlR3aWdcIjogXCI8cGF0aCBkPVxcXCJNNC41NzQsNS40NjNjLjI2Mi40LDIuNS0xLjYwOCw0LjQ1NC0xLjE2MSwyLjA2MS40NzIsNC4wMTQsMy43MjQsNC44NDgsMTMuN2E0MC4xOCw0MC4xOCwwLDAsMSwzLjU0MSwzLjYxcS41My42MTQsMS4wMTMsMS4yMmExMS44NDcsMTEuODQ3LDAsMCwxLC4yMjktMS40LDEyLjMsMTIuMywwLDAsMSwxLjk4MS00LjRBMTkuMTUxLDE5LjE1MSwwLDAsMCwxNy4yNzIsNy45Yy0xLjAzLTEuNDQ1LTQuNi02LjQ3OC04LjU0Ni01Ljg0M0M2LjE4MiwyLjQ2NSw0LjMsNS4wNTQsNC41NzQsNS40NjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjNiZjZhXFxcIi8+PHBhdGggZD1cXFwiTTI0LjQsMzBjLS4zMi0yLjU2Ny0uNDQ4LTQuNzYtLjUtNi40NDktLjA5NC0zLjIzMi4xLTQuNTQxLjktNS43NTYuMTkzLS4yOTUsMS4yODgtMS45NzUsMi41OC0xLjg2MywxLjQ2Ni4xMjgsMi4yMTMsMi40MTQsMi4zNjIsMi4zMzcuMTc1LS4wOS0uMzYtMy41NDMtMi41MzItNC40MzEtMi42LTEuMDYzLTYuMzEyLDIuMDctNy44LDUuMTU0YTEyLjIyMywxMi4yMjMsMCwwLDAtLjg1NywyLjgxLDMyLjU1NSwzMi41NTUsMCwwLDAtLjcxLDguMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3NGQ3NGRcXFwiLz48cGF0aCBkPVxcXCJNMi4yMzgsMTMuOTM1Yy4xNDUtLjQ0NywyLjQ2OC0uMjU5LDQuNTQuMjkzLDIuNS42NjYsNywyLjM0NCwxMS42NTEsOC42MDZBMTIuNTQ0LDEyLjU0NCwwLDAsMSwyMC4yNzksMzBIMTAuMzg2YTIxLjg3NSwyMS44NzUsMCwwLDAtLjE3NS00LjYyLDE0LjksMTQuOSwwLDAsMC0yLjQ1OS03LjE1OEM1LjQ0MSwxNS4xNTksMi4wNTUsMTQuNSwyLjIzOCwxMy45MzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNzhkYzUwXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMsMjEuMzIzYTEuNzUzLDEuNzUzLDAsMSwxLS41MTMtMS4yNEExLjc0OCwxLjc0OCwwLDAsMSwxNy4zLDIxLjMyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjEuOTc1LDIxLjMyM2ExLjc1MywxLjc1MywwLDEsMS0uNTEzLTEuMjRBMS43NDgsMS43NDgsMCwwLDEsMjEuOTc1LDIxLjMyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJUeXBlU2NyaXB0XCI6IFwiPHJlY3QgeD1cXFwiMlxcXCIgeT1cXFwiMlxcXCIgd2lkdGg9XFxcIjI4XFxcIiBoZWlnaHQ9XFxcIjI4XFxcIiByeD1cXFwiMS4zMTJcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMTc4YzZcXFwiLz48cGF0aCBkPVxcXCJNMTguMjQ1LDIzLjc1OXYzLjA2OGE2LjQ5Miw2LjQ5MiwwLDAsMCwxLjc2NC41NzUsMTEuNTYsMTEuNTYsMCwwLDAsMi4xNDYuMTkyLDkuOTY4LDkuOTY4LDAsMCwwLDIuMDg4LS4yMTEsNS4xMSw1LjExLDAsMCwwLDEuNzM1LS43LDMuNTQyLDMuNTQyLDAsMCwwLDEuMTgxLTEuMjY2LDQuNDY5LDQuNDY5LDAsMCwwLC4xODYtMy4zOTQsMy40MDksMy40MDksMCwwLDAtLjcxNy0xLjExNyw1LjIzNiw1LjIzNiwwLDAsMC0xLjEyMy0uODc3LDEyLjAyNywxMi4wMjcsMCwwLDAtMS40NzctLjczNHEtLjYtLjI0OS0xLjA4LS40ODRhNS41LDUuNSwwLDAsMS0uODEzLS40NzksMi4wODksMi4wODksMCwwLDEtLjUxNi0uNTE4LDEuMDkxLDEuMDkxLDAsMCwxLS4xODEtLjYxOCwxLjAzOSwxLjAzOSwwLDAsMSwuMTYyLS41NzEsMS40LDEuNCwwLDAsMSwuNDU5LS40MzYsMi40MzksMi40MzksMCwwLDEsLjcyNi0uMjgzLDQuMjExLDQuMjExLDAsMCwxLC45NTYtLjEsNS45NDIsNS45NDIsMCwwLDEsLjgwOC4wNTgsNi4yOTIsNi4yOTIsMCwwLDEsLjg1Ni4xNzcsNS45OTQsNS45OTQsMCwwLDEsLjgzNi4zLDQuNjU3LDQuNjU3LDAsMCwxLC43NTEuNDIyVjEzLjlhNy41MDksNy41MDksMCwwLDAtMS41MjUtLjQsMTIuNDI2LDEyLjQyNiwwLDAsMC0xLjktLjEyOSw4Ljc2Nyw4Ljc2NywwLDAsMC0yLjA2NC4yMzUsNS4yMzksNS4yMzksMCwwLDAtMS43MTYuNzMzLDMuNjU1LDMuNjU1LDAsMCwwLTEuMTcxLDEuMjcxLDMuNzMxLDMuNzMxLDAsMCwwLS40MzEsMS44NDUsMy41ODgsMy41ODgsMCwwLDAsLjc4OSwyLjM0LDYsNiwwLDAsMCwyLjM5NSwxLjYzOXEuNjMuMjYsMS4xNzUuNTA5YTYuNDU4LDYuNDU4LDAsMCwxLC45NDIuNTE3LDIuNDYzLDIuNDYzLDAsMCwxLC42MjYuNTg1LDEuMiwxLjIsMCwwLDEsLjIzLjcxOSwxLjEsMS4xLDAsMCwxLS4xNDQuNTUyLDEuMjY5LDEuMjY5LDAsMCwxLS40MzUuNDQxLDIuMzgxLDIuMzgxLDAsMCwxLS43MjYuMjkyLDQuMzc3LDQuMzc3LDAsMCwxLTEuMDE4LjEwNSw1Ljc3Myw1Ljc3MywwLDAsMS0xLjk2OS0uMzVBNS44NzQsNS44NzQsMCwwLDEsMTguMjQ1LDIzLjc1OVptLTUuMTU0LTcuNjM4aDRWMTMuNTk0SDUuOTM4djIuNTI3SDkuOTJWMjcuMzc1aDMuMTcxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPlwiLFxuXHRcIlR5cG9TY3JpcHRcIjogXCI8cGF0aCBkPVxcXCJNMjMuMDkzLDIxLjNhMy44NDcsMy44NDcsMCwwLDEtMS4xOC4xNjVjLTMuNTU1LDAtOC43NzgtMTIuNDI0LTguNzc4LTE2LjU1OSwwLTEuNTIzLjM2Mi0yLjAzMS44Ny0yLjQ2NkM5LjY1MywyLjk0Myw0LjQzLDQuNTM5LDIuNzYxLDYuNTdhNC4wNDgsNC4wNDgsMCwwLDAtLjU4LDIuMzIxQzIuMTgxLDE1LjM0OCw5LjA3MiwzMCwxMy45MzMsMzBjMi4yNDgsMCw2LjA0MS0zLjcsOS4xNi04LjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg3MDBcXFwiLz48cGF0aCBkPVxcXCJNMjAuODIzLDJjNC41LDAsOSwuNzI1LDksMy4yNjQsMCw1LjE1MS0zLjI2NCwxMS4zODktNC45MzMsMTEuMzg5LTIuOTc0LDAtNi42NzMtOC4yNjktNi42NzMtMTIuNCwwLTEuODg2LjcyNS0yLjI0OSwyLjYxMS0yLjI0OVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODcwMFxcXCIvPlwiLFxuXHRcIlZcIjogXCI8cGF0aCBkPVxcXCJNMjAuNDY3LDI5LjI4OCwyOS45NTIsMi45MTNhLjUuNSwwLDAsMC0uNTY2LS43MjhMMjEuOTI3LDIuOWExLjQ2NCwxLjQ2NCwwLDAsMC0xLjE0MS45TDEyLjAwNywyOS4wMDZhLjU3My41NzMsMCwwLDAsLjU3OC44MTNoNy4yNmEuNjU3LjY1NywwLDAsMCwuNTc3LS40WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzNmI4YVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjYxNCwyLjE4NWw3LjQ1OS43MTlhMS40NjYsMS40NjYsMCwwLDEsMS4xNDIuOUwyMC4xOCwyOS40MTNhLjI4Ni4yODYsMCwwLDEtLjI4OS40MDZIMTIuNTg1YTEuMzExLDEuMzExLDAsMCwxLTEuMTUyLS44MUwyLjA0OCwyLjkxM0EuNS41LDAsMCwxLDIuNjE0LDIuMTg1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzVkODdiZlxcXCIvPlwiLFxuXHRcIlZhbGFcIjogXCI8cGF0aCBkPVxcXCJNMTIuNTA5LDE3LjE5M2MtLjE2NS02LjgzNi0uMzI1LTEyLjQ1NS0uMzU3LTEyLjQ4N0E3LjkxNiw3LjkxNiwwLDAsMCw5Ljg3OSw1Ljg3NCw3LjYwNiw3LjYwNiwwLDAsMCw3LjMyNCw5LjE4OGE4LjQyMiw4LjQyMiwwLDAsMC0uNTg3LDMuNTQzLDQuNjY1LDQuNjY1LDAsMCwwLC4yLDEuOTYyLDMuNDE3LDMuNDE3LDAsMCwxLC4xODIuNTZjLS4wMTIuMDA5LS4zMzgtLjAxOC0uNzI0LS4wNjEtMS44NjgtLjIwNy0yLjc4Ni0xLjA1LTMtMi43NTdBNi4zMTIsNi4zMTIsMCwwLDEsNC44NSw3LjcxOWExNS4xMzQsMTUuMTM0LDAsMCwxLDguNDE0LTUuMTYzLDEyLjg5MSwxMi44OTEsMCwwLDEsMi41NDItLjIzNWwxLjc0OC0uMDUuMDU5LDIuNTA2Yy4wMzIsMS4zNzguMSw2LjM1OC4xNjEsMTEuMDY3cy0uMjUyLDguMjktLjIxOSw4LjRDMTkuNSwxNy44NzksMjIsMTMuMDczLDI0LjM2Nyw2LjI1M2wxLjQyNy0zLjk4M0gyOC41NGMtLjAyMi4wNjMtMi43NTEsNi41LTUuNTE0LDEzLjkxNmwtNS40NzMsMTMuNTVIMTIuOTc2QzEyLjk3NiwyNy45MDYsMTIuNTM1LDE4LjQ4NiwxMi41MDksMTcuMTkzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQwMzc1N1xcXCIvPjxwYXRoIGQ9XFxcIk0xNy43MzIsMzBIMTIuNzEzdi0uMjYzYzAtMS4xMzctLjE3LTUuMTkyLS4zMDctOC40NTItLjA4MS0xLjkyOS0uMTUtMy42LS4xNjEtNC4wODctLjE1Ni02LjQ3OS0uMjg2LTExLS4zMzYtMTIuMTYzYTExLjY3NCwxMS42NzQsMCwwLDAtMS44NzQsMS4wNDksNy4zNDgsNy4zNDgsMCwwLDAtMi40NjYsMy4yQTguMTQ2LDguMTQ2LDAsMCwwLDcsMTIuNzMxLDQuMzcsNC4zNywwLDAsMCw3LjE4NSwxNC42Yy4yMTUuNTY5LjI3My43MjMuMS44NTktLjA5My4wNzMtLjEwNy4wODQtLjkxNi0uMDA3LTEuOTc2LS4yMTktMy0xLjE2Ny0zLjIzNC0yLjk4NkE2LjU2OCw2LjU2OCwwLDAsMSw0LjY0LDcuNTYxLDE1LjQzOSwxNS40MzksMCwwLDEsMTMuMiwyLjMsMTMuMTc2LDEzLjE3NiwwLDAsMSwxNS44LDIuMDU4TDE3LjgxMSwybC4wNjUsMi43N2MuMDMyLDEuMzkyLjEwNiw2LjQ2MS4xNjEsMTEuMDcuMDMxLDIuNjE2LS4wNTIsNC45MTUtLjEyNCw2LjQzLjkzMS0yLjc2MywxLjk1OC01LjI3LDMuMDMzLTcuOSwxLjA0My0yLjU0NywyLjEyMi01LjE4LDMuMTczLTguMjA3bDEuNDkxLTQuMTZoMy4zbC0uMTI1LjM1MWMwLC4wMDctLjAzMS4wNzYtLjA4NC4yLTEuMSwyLjYyMi0zLjI1OSw3Ljg4OS01LjQzLDEzLjcxN1ptLTQuNDk1LS41MjZoNC4xNGw1LjQwNy0xMy4zODZjMi4xMjQtNS43LDQuMjQzLTEwLjg3Niw1LjM2Mi0xMy41NTVIMjUuOTc5TDI0LjYxNCw2LjM0MmMtMS4wNTUsMy4wMzgtMi4xMzcsNS42NzgtMy4xODMsOC4yMzEtMS4zMTEsMy4yLTIuNTUsNi4yMjYtMy42MjYsOS43NDdsLS4yNTUuODMxLS4yNDgtLjgzM2EzLjI3NCwzLjI3NCwwLDAsMSwuMDIxLS44MzljLjA3NC0xLjM1LjIyOS00LjE1OC4xODgtNy42MzMtLjA1NS00LjYwNy0uMTI5LTkuNjc0LS4xNjEtMTEuMDY0TDE3LjMsMi41NDFsLTEuNDg0LjA0M2ExMi43MjksMTIuNzI5LDAsMCwwLTIuNDkuMjI4QTE0Ljg4NywxNC44ODcsMCwwLDAsNS4wNiw3Ljg3N2E2LjA3MSw2LjA3MSwwLDAsMC0xLjQsNC41MjRjLjIsMS41OCwxLjAyOCwyLjMzNiwyLjc3LDIuNTI5bC4zMzMuMDM1Yy0uMDE5LS4wNTQtLjA0MS0uMTE0LS4wNjYtLjE3OWE0Ljg5Myw0Ljg5MywwLDAsMS0uMjE5LTIuMDU1LDguNyw4LjcsMCwwLDEsLjYtMy42MzgsNy44ODMsNy44ODMsMCwwLDEsMi42NDQtMy40M2MuMDIyLS4wMTYsMi4yMzItMS41MjUsMi42MTUtMS4xNDIuMDkyLjA5Mi4xMzEuMTMxLjQzMywxMi42NjZoMGMuMDEuNDg1LjA4LDIuMTQ5LjE2LDQuMDc2QzEzLjA2LDI0LjMxMywxMy4yMTcsMjguMDYsMTMuMjM3LDI5LjQ3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjOGM4YzhcXFwiLz5cIixcblx0XCJWQi5OZXRcIjogXCI8cGF0aCBkPVxcXCJNNi42Nyw3LjgzNiw5LDE4LjkxNSwxMS4zMzYsNy44MzZIMTZMMTEuMzM2LDI0LjE2NEg2LjY3MkwyLDcuODM2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE5YVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4zMzEsNy44MzZoNy42YTQuMDgsNC4wOCwwLDAsMSwyLjksMS43NDksMy43OCwzLjc4LDAsMCwxLC41NzEsMi4wNCwzLjk4NSwzLjk4NSwwLDAsMS0uNTcxLDIuMDM0LDQuMTA4LDQuMTA4LDAsMCwxLTIuMzQxLDEuNzYzLDQuMSw0LjEsMCwwLDEsMi45MjksMS43NTYsMy44LDMuOCwwLDAsMSwuNTgsMi4xLDQuNjYzLDQuNjYzLDAsMCwxLS41NzksMi41NDYsNS4wNDcsNS4wNDcsMCwwLDEtMy41LDIuMzM4SDE4LjMzMVpNMjMsMTQuMjUyaDEuMTY2YTEuNzU0LDEuNzU0LDAsMCwwLDAtMy41SDIzWm0wLDdIMjQuMzlhMi4wNDcsMi4wNDcsMCwwLDAsMC00LjA4OUgyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUxOWFcXFwiLz5cIixcblx0XCJWQkFcIjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjEwLjQ1NyAxMS4wOTIgMTYuMDE0IDEzLjgzOSAxNi4wMTQgMTguMzA3IDEwLjQ1NyAxNS4zODIgMTAuNDU3IDExLjA5MlxcXCIgc3R5bGU9XFxcImZpbGw6IzY0ODNjMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yLDE4LjYxM2wtNS45MjYtMy4xMlYxMC44TDE2LjIsMTMuNzI0Wk0xMC42NDIsMTUuMjcsMTUuODMsMThWMTMuOTUzbC01LjE4OC0yLjU2NFpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2LjM3MSAxMy44MzkgMTYuMzcxIDE4LjMwNyAyMS4zMTUgMTUuODE0IDIxLjMxNSAxMS4zNTQgMTYuMzcxIDEzLjgzOVxcXCIgc3R5bGU9XFxcImZpbGw6IzY0ODNjMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODYsMTguNjA3VjEzLjcyNWw1LjMxMy0yLjY3djQuODczWm0uMzY5LTQuNjU1djQuMDU1TDIxLjEzLDE1LjdWMTEuNjUzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTAuNzAzIDEwLjc5NyAxNi4xODYgMTMuNTggMjEuMDgyIDExLjA2NCAxNS43NzcgOC4zODkgMTAuNzAzIDEwLjc5N1xcXCIgc3R5bGU9XFxcImZpbGw6IzY0ODNjMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODcsMTMuNzg4bC01LjktMyw1LjUtMi42MDgsNS43MDksMi44NzlaTTExLjEyMiwxMC44bDUuMDY0LDIuNTcsNC40OS0yLjMwOC00LjktMi40NzFaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC45NTcgMTUuODI5IDI0LjUxNSAxOC41NzUgMjQuNTE1IDIzLjA0MyAxOC45NTcgMjAuMTE4IDE4Ljk1NyAxNS44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM5NTI3ODFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNywyMy4zNDlsLTUuOTI2LTMuMTJ2LTQuN0wyNC43LDE4LjQ2Wm0tNS41NTctMy4zNDMsNS4xODgsMi43MzFWMTguNjg5bC01LjE4OC0yLjU2NFpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI0Ljg3MSAxOC41NzUgMjQuODcxIDIzLjA0MyAyOS44MTUgMjAuNTUgMjkuODE1IDE2LjA5IDI0Ljg3MSAxOC41NzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM5NTI3ODFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNjg3LDIzLjM0M1YxOC40NjFMMzAsMTUuNzkxdjQuODczWm0uMzY5LTQuNjU1djQuMDU1bDQuNTc1LTIuMzA4VjE2LjM4OVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjIwMyAxNS41NDYgMjQuNjg3IDE4LjMyOSAyOS41ODMgMTUuODEyIDI0LjM2NCAxMy4zNDYgMTkuMjAzIDE1LjU0NlxcXCIgc3R5bGU9XFxcImZpbGw6Izk1Mjc4MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC42ODcsMTguNTM2bC01LjkyLTMuMDA1LDUuNi0yLjM4N0wzMCwxNS44MDVaTTE5LjY0LDE1LjU2bDUuMDQ2LDIuNTYxLDQuNDc5LTIuMy00LjgwNi0yLjI3WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi4xOSAxNS40OTYgNy43NDggMTguMjQzIDcuNzQ4IDIyLjcxMSAyLjE5IDE5Ljc4NiAyLjE5IDE1LjQ5NlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q4N2IzMFxcXCIvPjxwYXRoIGQ9XFxcIk03LjkzMiwyMy4wMTcsMi4wMDYsMTkuOVYxNS4ybDUuOTI2LDIuOTI5Wk0yLjM3NSwxOS42NzRsNS4xODgsMi43MzFWMTguMzU3TDIuMzc1LDE1Ljc5M1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjguMTA0IDE4LjI0MyA4LjEwNCAyMi43MTEgMTMuMDQ4IDIwLjIxOCAxMy4wNDggMTUuNzU4IDguMTA0IDE4LjI0M1xcXCIgc3R5bGU9XFxcImZpbGw6I2Q4N2IzMFxcXCIvPjxwYXRoIGQ9XFxcIk03LjkyLDIzLjAxMVYxOC4xMjlsNS4zMTMtMi42N3Y0Ljg3M1ptLjM2OS00LjY1NXY0LjA1NUwxMi44NjQsMjAuMVYxNi4wNTdaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjQzNiAxNS4yMTMgNy45MiAxNy45OTcgMTIuODE2IDE1LjQ4IDcuNTk3IDEzLjAxNCAyLjQzNiAxNS4yMTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNkODdiMzBcXFwiLz48cGF0aCBkPVxcXCJNNy45MiwxOC4yLDIsMTUuMmw1LjYtMi4zODcsNS42MzIsMi42NjFaTTIuODczLDE1LjIyOGw1LjA0NiwyLjU2MSw0LjQ3OS0yLjMtNC44MDYtMi4yN1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEwLjg3NSAxNi4yOTYgMTYuNDMyIDE5LjA0MiAxNi40MzIgMjMuNTExIDEwLjg3NSAyMC41ODUgMTAuODc1IDE2LjI5NlxcXCIgc3R5bGU9XFxcImZpbGw6I2UwZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi42MTcsMjMuODE2LDEwLjY5MSwyMC43VjE2bDUuOTI2LDIuOTI5Wk0xMS4wNiwyMC40NzRsNS4xODgsMi43MzFWMTkuMTU3TDExLjA2LDE2LjU5M1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2Ljc4OSAxOS4wNDIgMTYuNzg5IDIzLjUxMSAyMS43MzMgMjEuMDE3IDIxLjczMyAxNi41NTcgMTYuNzg5IDE5LjA0MlxcXCIgc3R5bGU9XFxcImZpbGw6I2UwZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi42LDIzLjgxMVYxOC45MjlsNS4zMTMtMi42N3Y0Ljg3M1ptLjM2OS00LjY1NXY0LjA1NUwyMS41NDksMjAuOVYxNi44NTdaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMS4xMjEgMTYuMDAxIDE2LjYwNSAxOC43ODQgMjEuNTAxIDE2LjI2NyAxNi4xOTYgMTMuNTkzIDExLjEyMSAxNi4wMDFcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMGQ0MDBcXFwiLz48cGF0aCBkPVxcXCJNMTYuNjA1LDE4Ljk5MWwtNS45LTMsNS41LTIuNjA4LDUuNzA5LDIuODc5Wk0xMS41NCwxNi4wMDZsNS4wNjQsMi41Nyw0LjQ5LTIuMzA4LTQuOS0yLjQ3MVpcXFwiLz5cIixcblx0XCJWZWxvY2l0eVwiOiBcIjxwYXRoIGQ9XFxcIk0xNi4yNDUsMjQuMTg3QTguMzUyLDguMzUyLDAsMSwxLDI0LjYsMTUuODM1LDguMzYyLDguMzYyLDAsMCwxLDE2LjI0NSwyNC4xODdabTAtMTQuNzYyYTYuNDEsNi40MSwwLDEsMCw2LjQxLDYuNDFBNi40MTcsNi40MTcsMCwwLDAsMTYuMjQ1LDkuNDI1WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjkuMTMyIDguNTUxIDI1LjQ1MSA2LjUzMSAyNS40NTEgNy40NzQgMTUuODIxIDcuNDc0IDE1LjgyMSA5LjQyNCAyNS40NTEgOS40MjQgMjUuNDUxIDEwLjU3MSAyOS4xMzIgOC41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNjI2OTJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjguOTg0IDIgNi45NjQgNS42ODcgNy45MDYgNS42ODcgNy45MDYgMTUuMzI4IDkuODU3IDE1LjMyOCA5Ljg1NyA1LjY4NyAxMS4wMDQgNS42ODcgOC45ODQgMlxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuNzA1IDMwIDIxLjY4NSAyNi4yNDMgMjIuNjI4IDI2LjI0MyAyMi42MjggMTYuNDE3IDI0LjU3OCAxNi40MTcgMjQuNTc4IDI2LjI0MyAyNS43MjUgMjYuMjQzIDIzLjcwNSAzMFxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi44NjggMjMuMzIgNi42MzQgMjEuMyA2LjYzNCAyMi4yNDIgMTYuNDg0IDIyLjI0MiAxNi40ODQgMjQuMTkyIDYuNjM0IDI0LjE5MiA2LjYzNCAyNS4zNCAyLjg2OCAyMy4zMlxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5MlxcXCIvPlwiLFxuXHRcIlZlcmlsb2dcIjogXCI8cGF0aCBkPVxcXCJNMjkuMDA3LDE3LjRoLjAzN2ExLjQ0OSwxLjQ0OSwwLDAsMCwuOTM4LS4zMTYsMS40NzMsMS40NzMsMCwwLDAsLjUxOS0xLjAzMVYxNS45YTEuNDEzLDEuNDEzLDAsMCwwLTEuMzc2LTEuM2gtLjAwOWMtLjY4NywwLTEuMzc0LDAtMi4wNjIsMEgyNS41VjExLjk1NmwzLjUxMywwaC4wMzRBMS40MTEsMS40MTEsMCwwLDAsMzAuNSwxMC42bDAtLjA5LDAtLjAzMmExLjQxMiwxLjQxMiwwLDAsMC0uNjQ2LTEuMSwxLjQ1NSwxLjQ1NSwwLDAsMC0uODM1LS4yMjVIMjUuNDU2YTIuOTYsMi45NiwwLDAsMC0uMjc4LTEuMDM0LDIuOTA5LDIuOTA5LDAsMCwwLTEuNy0xLjQ2MSwyLjY4NCwyLjY4NCwwLDAsMC0uNjI5LS4xM1Y0Ljk0N2MwLS42OSwwLTEuMzgsMC0yLjA2M0ExLjQxNCwxLjQxNCwwLDAsMCwyMS40ODEsMS41aC0uMTE2YTEuNCwxLjQsMCwwLDAtMS4zMTksMS4zODhxMCwxLjE1NCwwLDIuMzA2VjYuNUgxNy40VjQuOTgxYzAtLjcsMC0xLjQsMC0yLjA4N0ExLjQxLDEuNDEsMCwwLDAsMTYuMDUzLDEuNUgxNS45YTEuNDA4LDEuNDA4LDAsMCwwLTEuMywxLjM4M2MwLC42ODgsMCwxLjM3NiwwLDIuMDY0VjYuNTA4cS0xLjMxOSwwLTIuNjM5LDBWNC44ODhjMC0uNjY2LDAtMS4zMzIsMC0xLjk4OWExLjM2NiwxLjM2NiwwLDAsMC0uNC0uOTc1LDEuNCwxLjQsMCwwLDAtLjk4NC0uNDI0SDEwLjVBMS40MSwxLjQxLDAsMCwwLDkuMTU5LDIuODgxYzAsLjY4MywwLDEuMzY2LDAsMi4wNDl2MS42YTIuOTMzLDIuOTMzLDAsMCwwLTIuNDY2LDEuOSwyLjg3OCwyLjg3OCwwLDAsMC0uMTYxLjcyNkg0Ljk1N2MtLjY5MywwLTEuMzg2LDAtMi4wNzMsMEgyLjg3NkExLjQxMywxLjQxMywwLDAsMCwxLjUsMTAuNXYuMDk1YTEuNDE3LDEuNDE3LDAsMCwwLC41NzUsMS4wOTEsMS40NjMsMS40NjMsMCwwLDAsLjg4Ny4yNzNoLjAxN2wzLjUyMiwwVjE0LjZINC45NDhjLS42ODYsMC0xLjM3NSwwLTIuMDU3LDBBMS40MjgsMS40MjgsMCwwLDAsMS41LDE1LjkxM1YxNi4xYTEuNCwxLjQsMCwwLDAsMS4zODYsMS4zYy43MTEsMCwxLjQyMywwLDIuMTM1LDBINi41VjIwLjA1bC0uMjkyLDBjLS42MTMtLjAwNy0xLjIyNiwwLTEuODM4LDBIMy4wODdhMS42MzMsMS42MzMsMCwwLDAtLjkxOC4yMTFBMS40MzcsMS40MzcsMCwwLDAsMS41LDIxLjRWMjEuNWExLjQxNywxLjQxNywwLDAsMCwxLjM3NSwxLjMzN2guMDA1cS42NDUsMCwxLjI5LDBINi41NDZhMi44MzIsMi44MzIsMCwwLDAsMS45NzgsMi41LDIuNzEyLDIuNzEyLDAsMCwwLC42MzEuMTI4djEuNjJjMCwuNjc4LDAsMS4zNTQsMCwyLjAyNWExLjQsMS40LDAsMSwwLDIuOC0uMDkybDAtMy41MjdIMTQuNnYzLjUxNkExLjQxNCwxLjQxNCwwLDAsMCwxNS45NDcsMzAuNUgxNi4xYTEuNDExLDEuNDExLDAsMCwwLDEuMy0xLjM4NXEuMDA2LTEuMDY2LDAtMi4xMzFWMjUuNWgyLjY0NFYyOS4xQTEuNDIzLDEuNDIzLDAsMCwwLDIxLjQsMzAuNWguMTE5YTEuNDA4LDEuNDA4LDAsMCwwLDEuMTYtLjc0MSwxLjY0MywxLjY0MywwLDAsMCwuMTY3LS44MzNWMjUuNDc0YTIuNjcxLDIuNjcxLDAsMCwwLC42Mi0uMTI4LDIuOTI4LDIuOTI4LDAsMCwwLDEuODg2LTEuODg4LDIuODM0LDIuODM0LDAsMCwwLC4xMjMtLjYxM2gxLjU4MWMuNjg3LDAsMS4zNzUsMCwyLjA1NywwaC4wMDhBMS40MjIsMS40MjIsMCwwLDAsMzAuNSwyMS40ODF2LS4xMThhMS40MDksMS40MDksMCwwLDAtMS4zODItMS4zMThoMGMtLjcxOCwwLTEuNDM2LDAtMi4xNTQsMEgyNS41VjE3LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzVjNWM1O29wYWNpdHk6MC4zXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUxNSwyaC4wNTZhLjkxLjkxLDAsMCwxLC44ODYuODkzYy4wMDYsMS4xMDgsMCwyLjIxNiwwLDMuMzI0LS42LDAtMS4yLDAtMS44LDAsMC0xLjExMSwwLTIuMjIyLDAtMy4zMzNBLjkwNy45MDcsMCwwLDEsMTAuNTE1LDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjkzNywyaC4xMTZhLjkxMi45MTIsMCwwLDEsLjg0Ni44ODljLjAwNiwxLjEwOSwwLDIuMjE5LDAsMy4zMjlIMTUuMWMwLTEuMTEsMC0yLjIyLDAtMy4zM0EuOTExLjkxMSwwLDAsMSwxNS45MzcsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjEuMzkyLDJoLjA4OWEuOTA3LjkwNywwLDAsMSwuODU5Ljg4MWMuMDA3LDEuMTEyLDAsMi4yMjUsMCwzLjMzN2gtMS44YzAtMS4xMDksMC0yLjIxNywwLTMuMzI2QS45MTIuOTEyLDAsMCwxLDIxLjM5MiwyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yLDEwLjUxOGEuOTA4LjkwOCwwLDAsMSwuODgyLS44NTljMS4xMTItLjAwNywyLjIyMywwLDMuMzM0LDBxMCwuOSwwLDEuOGMtMS4wNzksMC0yLjE1OCwwLTMuMjM3LDBhLjk4My45ODMsMCwwLDEtLjYtLjE3M0EuOTI0LjkyNCwwLDAsMSwyLDEwLjU3MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzg2LDkuNjU1aDMuMjMzYTEsMSwwLDAsMSwuNTYxLjE0My45MjQuOTI0LDAsMCwxLC40Mi43MTZ2LjA1OGEuOTMzLjkzMywwLDAsMS0uMy42NTEuOTU3Ljk1NywwLDAsMS0uNjc3LjIzNGMtMS4wNzksMC0yLjE1OCwwLTMuMjM3LDBRMjUuNzg2LDEwLjU1NiwyNS43ODYsOS42NTVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIsMTUuOTQ0YS45MTMuOTEzLDAsMCwxLC44ODgtLjg0MmMxLjEwOS0uMDA3LDIuMjE5LDAsMy4zMjgsMHEwLC45LDAsMS44Yy0xLjEwOSwwLTIuMjE3LDAtMy4zMjYsMEEuOTE1LjkxNSwwLDAsMSwyLDE2LjA2M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzg2LDE1LjFjMS4xMDksMCwyLjIxOCwwLDMuMzI2LDBhLjkxNC45MTQsMCwwLDEsLjg4OS44MzV2LjExN2EuOTQ2Ljk0NiwwLDAsMS0uMzMxLjY0MS45NzMuOTczLDAsMCwxLS42NTEuMjA3SDI1Ljc4NlEyNS43ODUsMTYsMjUuNzg2LDE1LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIuNDMzLDIwLjY3OGExLjEyMSwxLjEyMSwwLDAsMSwuNjQzLS4xMzZjMS4wNDMuMDA2LDIuMDg2LS4wMDYsMy4xMjkuMDA2LjAyOC42LDAsMS4yLjAxMiwxLjgtMS4xMSwwLTIuMjIxLDAtMy4zMzEsMEEuOTExLjkxMSwwLDAsMSwyLDIxLjQ4M1YyMS40QS45MjUuOTI1LDAsMCwxLDIuNDMzLDIwLjY3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzg2LDIwLjU0M2MxLjEwOCwwLDIuMjE2LDAsMy4zMjQsMGEuOTE0LjkxNCwwLDAsMSwuODkuODQ3di4wOWEuOTExLjkxMSwwLDAsMS0uODg4Ljg1OWMtMS4xMDkuMDA3LTIuMjE4LDAtMy4zMjYsMEMyNS43ODYsMjEuNzQzLDI1Ljc4NSwyMS4xNDMsMjUuNzg2LDIwLjU0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNOS42NTYsMjUuNzgxaDEuOGMwLDEuMDgxLDAsMi4xNjIsMCwzLjI0M2EuOTU3Ljk1NywwLDAsMS0uMjM1LjY3Ny45MzEuOTMxLDAsMCwxLS42NTMuM2gtLjA1MmEuOTA3LjkwNywwLDAsMS0uODYtLjg4MkM5LjY1MSwyOC4wMDYsOS42NTgsMjYuODk0LDkuNjU2LDI1Ljc4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMTUuMSwyNS43ODFoMS44YzAsMS4xMSwwLDIuMjIsMCwzLjMzYS45MTQuOTE0LDAsMCwxLS44MzYuODg5aC0uMTE2YS45NC45NCwwLDAsMS0uNjE5LS4zMDYuOTYyLjk2MiwwLDAsMS0uMjI4LS42NzNRMTUuMSwyNy40LDE1LjEsMjUuNzgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMC41NDcsMjkuMTA2YzAtMS4xMDgsMC0yLjIxNywwLTMuMzI1aDEuOGMwLDEuMDQ4LDAsMi4xLDAsMy4xNDRhMS4xNzgsMS4xNzgsMCwwLDEtLjEwNS41OS45Mi45MiwwLDAsMS0uNzU2LjQ4NEgyMS40QS45MTEuOTExLDAsMCwxLDIwLjU0NywyOS4xMDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTI0LjczMiw4LjM0OUEyLjQyOSwyLjQyOSwwLDAsMCwyMy4zMSw3LjEzMSwzLjI0NSwzLjI0NSwwLDAsMCwyMi4yNTQsN2MtNC4zLjAwOC04LjYtLjAxMS0xMi45MDUuMDFBMi40MzYsMi40MzYsMCwwLDAsNy4xNTcsOC42MDYsMy42MTEsMy42MTEsMCwwLDAsNyw5LjkzNHEwLDYuMjUsMCwxMi41YTIuNjczLDIuNjczLDAsMCwwLC4yNjgsMS4yMTlBMi40MzEsMi40MzEsMCwwLDAsOC42ODgsMjQuODcsMy43NTYsMy43NTYsMCwwLDAsOS45MjcsMjVIMjIuMDdhMy43NjIsMy43NjIsMCwwLDAsMS4yNDMtLjEyN0EyLjQyOSwyLjQyOSwwLDAsMCwyNC44NzUsMjMuMywzLjgsMy44LDAsMCwwLDI1LDIyLjA3MXEwLTYuMjUsMC0xMi41QTIuNjg2LDIuNjg2LDAsMCwwLDI0LjczMiw4LjM0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNNy41LDguMzA3bC4wODQtLjJxLjk2OCwwLDEuOTM1LjAyNGguMzk0cS4xNzksMCwuMzk0LS4wMTIuNzc2LS4wMzYsMi44MDctLjAzNi40MDYsMCwuNzg4LjAwNnQuNzQxLjAxOGEuMjM0LjIzNCwwLDAsMSwuMTA4LjEwOGwtLjAyNC4xOTFxLS4wNzIuMTE5LS4zNTguMTE5aC0uMWExMC4zLDEwLjMsMCwwLDAtMS4xLjA1NCwyLjE3OSwyLjE3OSwwLDAsMC0xLC4yNDUuNDMyLjQzMiwwLDAsMC0uMTU1LjM0Niw0LjA1LDQuMDUsMCwwLDAsLjM5NCwxLjRsMS44MTgsNC4yMTcuNjM0LDEuNHEuOTIxLDIuMjIyLDEuODE5LDQuNTM5LjEuMjUxLjE3OS40NTRsLjgtMS45NTlxLjYyLTEuNDgxLDEuMjUyLTMuMTU0bC44MjMtMi4yNDZxLjAyNC0uMDcyLjEzMS0uNDc4YTE3LjAyNiwxNy4wMjYsMCwwLDAsMS4xNTctNCwuNTYxLjU2MSwwLDAsMC0uMTYxLS4zNjQsMS4xNjUsMS4xNjUsMCwwLDAtLjUyLS4zLDcuNzIzLDcuNzIzLDAsMCwwLS45MzItLjE0M2wtLjg4NC0uMTA4YS4zMzcuMzM3LDAsMCwxLS4xMDgtLjJsLjAzNi0uMSwzLjg3LS4wMzZIMjMuNmEzLjEsMy4xLDAsMCwxLC44ODUuMDg0bC4wMTIuMWEuNjQxLjY0MSwwLDAsMS0uMDcyLjI1MSwyLjQ0OSwyLjQ0OSwwLDAsMS0uNTI2LjExOSwzLjYsMy42LDAsMCwwLTEuMjQ0LjI4MSwxLjgxNSwxLjgxNSwwLDAsMC0uNS42ODdsLTMuMTM0LDcuNzY1cS0xLjQ2NiwzLjUtMi4wODYsNS40MjNsLS4zNDUsMS4wMzlhLjUzMS41MzEsMCwwLDEtLjI2My4xLDEuMzgzLDEuMzgzLDAsMCwxLS4zLS4wMzZxLTEuNDIyLTMuNjc2LTIuMzE4LTUuNjgxTDEwLjA1NSw5LjkyYTMuMjQ3LDMuMjQ3LDAsMCwwLS41OTEtLjg5LDUuNDYzLDUuNDYzLDAsMCwwLTEuMzc5LS40MjQsNC4zNDcsNC4zNDcsMCwwLDEtLjQ2Ni0uMTE5QS4zMjYuMzI2LDAsMCwxLDcuNSw4LjMwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNWMyZmZcXFwiLz5cIixcblx0XCJWSERMXCI6IFwiPHBhdGggZD1cXFwiTTIsMkgzMFYzMEgyWm0xLjY4OS4wNjdBMS42MjQsMS42MjQsMCwwLDAsMi4wNjMsMy42OTJWMjguMzE0QTEuNjI1LDEuNjI1LDAsMCwwLDMuNjg5LDI5Ljk0SDI4LjMxNmExLjYyNSwxLjYyNSwwLDAsMCwxLjYyNi0xLjYyNlYzLjY5MmExLjYyNCwxLjYyNCwwLDAsMC0xLjYyNi0xLjYyNVpNMy4wMDgsMjguMDc5YS45MTEuOTExLDAsMCwwLC45MTEuOTEySDI4LjA4M2EuOTExLjkxMSwwLDAsMCwuOTExLS45MTJWMy45MTlhLjkxLjkxLDAsMCwwLS45MTEtLjkxMUgzLjkxOWEuOTEuOTEsMCwwLDAtLjkxMS45MTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMGQ5YjM1XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNS41MiA1LjUwMiAxOC44NTggMjYuNDkxIDEzLjE1NCAyNi40OTEgNi40OTIgNS41MDIgMTAuNTA4IDUuNTAyIDE2LjAyOSAyMi43OTUgMjEuNTA0IDUuNTAyIDI1LjUyIDUuNTAyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwidmltXCI6IFwiPGRlZnM+PGNsaXBQYXRoIGlkPVxcXCJhXFxcIj48cG9seWdvbiBwb2ludHM9XFxcIjIgMiAzMCAyIDMwIDMwIDIgMzAgMiAyIDIgMlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtjbGlwLXJ1bGU6ZXZlbm9kZFxcXCIvPjwvY2xpcFBhdGg+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfdmltPC90aXRsZT48cG9seWdvbiBwb2ludHM9XFxcIjI5Ljk4OSAxNS44NTYgMTUuODU2IDIuMDExIDIuMDExIDE2LjEzNiAxNS44NTYgMjkuOTg5IDI5Ljk4OSAxNS44NTYgMjkuOTg5IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxnIHN0eWxlPVxcXCJjbGlwLXBhdGg6dXJsKCNhKVxcXCI+PHBvbHlnb24gcG9pbnRzPVxcXCIyOS45ODkgMTUuODU2IDE1Ljg1NiAyLjAxMSAyLjAxMSAxNi4xMzYgMTUuODU2IDI5Ljk4OSAyOS45ODkgMTUuODU2IDI5Ljk4OSAxNS44NTZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48L2c+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDI5LjQyMiAxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMjguNTc1IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzI5Njk1ZDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguNTc1IDE1Ljg1NiAyOS40MjIgMTUuODU2IDE1Ljg1NiAyOS40MjIgMTUuODU2IDI4LjU3NSAyOC41NzUgMTUuODU2IDI4LjU3NSAxNS44NTZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuNTc4IDE2LjEzNiAzLjQyNSAxNi4xMzYgMTUuODU2IDI4LjU3NSAxNS44NTYgMjkuNDIyIDIuNTc4IDE2LjEzNiAyLjU3OCAxNi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMTczNjc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuNTc4IDE2LjEzNiAzLjQyNSAxNi4xMzYgMTUuODU2IDI4LjU3NSAxNS44NTYgMjkuNDIyIDIuNTc4IDE2LjEzNiAyLjU3OCAxNi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAzLjQxOCAxNS44NTYgMi41NzggMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMy40MTggMTUuODU2IDMuNDE4XFxcIiBzdHlsZT1cXFwiZmlsbDojNjBjMmFjO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMy40MTggMTUuODU2IDIuNTc4IDIuNTc4IDE2LjEzNiAzLjQyNSAxNi4xMzYgMTUuODU2IDMuNDE4IDE1Ljg1NiAzLjQxOFxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDIuNTc4IDE1Ljg1NiAzLjQxOCAyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDIuNTc4IDE1Ljg1NiAyLjU3OFxcXCIgc3R5bGU9XFxcImZpbGw6IzQzYjU0YTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDIuNTc4IDE1Ljg1NiAzLjQxOCAyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDIuNTc4IDE1Ljg1NiAyLjU3OFxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDI4LjU3NSAyOC41NzUgMTUuODU2IDE1Ljg1NiAzLjQxOCAzLjQyNSAxNi4xMzYgMTUuODU2IDI4LjU3NSAxNS44NTYgMjguNTc1XFxcIiBzdHlsZT1cXFwiZmlsbDojM2M4Mzc2O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMTUuODU2IDMuNDE4IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOC41NzVcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4LjQ5OCA2LjI0NiAxOS4zNDUgNy4xIDEzLjUwMiAxMy4wMjggMTMuNTAyIDcuMSAxNC4wNjkgNy4xIDE0LjkxNiA2LjI0NiAxNC45MTYgMy45OTIgMTQuMDY5IDMuMTM4IDQuNjUyIDMuMTM4IDMuODA1IDMuOTkyIDMuODA1IDYuMjQ2IDQuNjUyIDcuMSA1LjMxMiA3LjEgNS4zMTIgMjYuMzE0IDYuMzQ2IDI3LjE2MSA5LjI2NyAyNy4xNjEgMjkuNTE2IDYuMjQ2IDI5LjUxNiAzLjk5MiAyOC42NjkgMy4xMzggMTkuNDM4IDMuMTM4IDE4LjQ5OCAzLjk5MiAxOC40OTggNi4yNDYgMTguNDk4IDYuMjQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC40OTggNi4yNDYgMTkuMzQ1IDcuMSAxMy41MDIgMTMuMDI4IDEzLjUwMiA3LjEgMTQuMDY5IDcuMSAxNC45MTYgNi4yNDYgMTQuOTE2IDMuOTkyIDE0LjA2OSAzLjEzOCA0LjY1MiAzLjEzOCAzLjgwNSAzLjk5MiAzLjgwNSA2LjI0NiA0LjY1MiA3LjEgNS4zMTIgNy4xIDUuMzEyIDI2LjMxNCA2LjM0NiAyNy4xNjEgOS4yNjcgMjcuMTYxIDI5LjUxNiA2LjI0NiAyOS41MTYgMy45OTIgMjguNjY5IDMuMTM4IDE5LjQzOCAzLjEzOCAxOC40OTggMy45OTIgMTguNDk4IDYuMjQ2IDE4LjQ5OCA2LjI0NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNC45MzIgNi41MzMgNC4zNjUgNS45NjYgNC4zNjUgNC4yNzIgNC45MzIgMy43MDUgMTMuNzg5IDMuNjk4IDE0LjM0OSA0LjI3MiAxMy43ODkgNC41NDQgMTMuNTAyIDQuMjcyIDQuOTMyIDUuNjc5IDQuOTMyIDYuNTMzIDQuOTMyIDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0LjkzMiA2LjUzMyA0LjM2NSA1Ljk2NiA0LjM2NSA0LjI3MiA0LjkzMiAzLjcwNSAxMy43ODkgMy42OTggMTQuMzQ5IDQuMjcyIDEzLjc4OSA0LjU0NCAxMy41MDIgNC4yNzIgNC45MzIgNS42NzkgNC45MzIgNi41MzMgNC45MzIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuNjI2IDI2LjU5NCA1Ljk2NiAyNi4wMjcgNS45NjYgNi41MjYgNi42MjYgNS45NjYgNi42MjYgMjYuNTk0IDYuNjI2IDI2LjU5NFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi42MjYgMjYuNTk0IDUuOTY2IDI2LjAyNyA1Ljk2NiA2LjUyNiA2LjYyNiA1Ljk2NiA2LjYyNiAyNi41OTQgNi42MjYgMjYuNTk0XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC43NTkgNi41MzMgMjEuMzI2IDUuOTY2IDIxLjMyNiA3LjEgMTEuOTAyIDE2LjcwMyAxMi45NDIgMTQuNDQyIDIwLjc1OSA2LjUzMyAyMC43NTkgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjc1OSA2LjUzMyAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNzAzIDEyLjk0MiAxNC40NDIgMjAuNzU5IDYuNTMzIDIwLjc1OSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi44MiA1LjY4NiA2LjYyNiA1Ljk2NiA1Ljk2NiA2LjUzMyA0LjkzMiA2LjUzMyA0LjkzMiA1LjM5OSA2LjgyIDUuNjg2IDYuODIgNS42ODZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuODIgNS42ODYgNi42MjYgNS45NjYgNS45NjYgNi41MzMgNC45MzIgNi41MzMgNC45MzIgNS4zOTkgNi44MiA1LjY4NiA2LjgyIDUuNjg2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMi45NDIgNi41MzMgMTIuOTQyIDE0LjQ0MiAxMS45MDIgMTYuNjk2IDExLjkwMiA1Ljk1OCAxMy41MDIgNS45NTggMTMuNzg5IDUuNjc4IDEzLjUwMiA0LjI3MiAxNC4zNDkgNC4yNzIgMTQuMzQ5IDUuOTY2IDEzLjc4OSA2LjUzMyAxMi45NDIgNi41MzMgMTIuOTQyIDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDojOTI5NDk3O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMi45NDIgNi41MzMgMTIuOTQyIDE0LjQ0MiAxMS45MDIgMTYuNjk2IDExLjkwMiA1Ljk1OCAxMy41MDIgNS45NTggMTMuNzg5IDUuNjc4IDEzLjUwMiA0LjI3MiAxNC4zNDkgNC4yNzIgMTQuMzQ5IDUuOTY2IDEzLjc4OSA2LjUzMyAxMi45NDIgNi41MzMgMTIuOTQyIDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOS42MjUgNi41MzMgMTkuMDY1IDUuOTY2IDE5LjA2NSA0LjI3MiAxOS43MTggMy43MDUgMjguMjk1IDMuNzA1IDI4Ljk1NiA0LjI3MiAyOC4wMDggNS4xMTkgMTkuNjI1IDUuNjc5IDE5LjYyNSA2LjUzMyAxOS42MjUgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjYyNSA2LjUzMyAxOS4wNjUgNS45NjYgMTkuMDY1IDQuMjcyIDE5LjcxOCAzLjcwNSAyOC4yOTUgMy43MDUgMjguOTU2IDQuMjcyIDI4LjAwOCA1LjExOSAxOS42MjUgNS42NzkgMTkuNjI1IDYuNTMzIDE5LjYyNSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguOTU2IDUuOTY2IDkuMDc0IDI2LjU5NCA2LjYyNiAyNi41OTQgNi42MjYgMjUuNzQ3IDguNDIgMjUuNzQ3IDI4LjI5NSA1LjM5OSAyOC4wMDggNC4yNzIgMjguOTU2IDQuMjcyIDI4Ljk1NiA1Ljk2NiAyOC45NTYgNS45NjZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4Ljk1NiA1Ljk2NiA5LjA3NCAyNi41OTQgNi42MjYgMjYuNTk0IDYuNjI2IDI1Ljc0NyA4LjQyIDI1Ljc0NyAyOC4yOTUgNS4zOTkgMjguMDA4IDQuMjcyIDI4Ljk1NiA0LjI3MiAyOC45NTYgNS45NjYgMjguOTU2IDUuOTY2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMS41MTIgNS42ODYgMjEuMzE5IDUuOTY2IDIwLjc1OSA2LjUzMyAxOS42MjUgNi41MzMgMTkuNjI1IDUuMzk5IDIxLjUxMiA1LjY4NiAyMS41MTIgNS42ODZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjUxMiA1LjY4NiAyMS4zMTkgNS45NjYgMjAuNzU5IDYuNTMzIDE5LjYyNSA2LjUzMyAxOS42MjUgNS4zOTkgMjEuNTEyIDUuNjg2IDIxLjUxMiA1LjY4NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuOTAyIDE2LjY5NiAxMS45MDIgNS45NTggMTMuNTAyIDUuOTU4IDEzLjc4OSA1LjY3OSAxMy43ODkgNC41NDQgMTMuNTAyIDQuMjY1IDUuMjEyIDQuMjY1IDQuOTMyIDQuNTQ0IDQuOTMyIDUuNjc5IDUuMjEyIDUuOTU4IDYuNjI2IDUuOTU4IDYuNjI2IDI1Ljc0NyA2Ljk5MiAyNi4wMjcgOC42MDcgMjYuMDI3IDI4LjM4OSA1LjM5OSAyOC4zODkgNC41ODggMjguMTAyIDQuMjY1IDE5LjkxMiA0LjI2NSAxOS42MjUgNC41NDQgMTkuNjI1IDUuNjg2IDE5LjkxMiA1Ljk2NiAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNjk2IDExLjkwMiAxNi42OTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMGQyZDM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjkwMiAxNi42OTYgMTEuOTAyIDUuOTU4IDEzLjUwMiA1Ljk1OCAxMy43ODkgNS42NzkgMTMuNzg5IDQuNTQ0IDEzLjUwMiA0LjI2NSA1LjIxMiA0LjI2NSA0LjkzMiA0LjU0NCA0LjkzMiA1LjY3OSA1LjIxMiA1Ljk1OCA2LjYyNiA1Ljk1OCA2LjYyNiAyNS43NDcgNi45OTIgMjYuMDI3IDguNjA3IDI2LjAyNyAyOC4zODkgNS4zOTkgMjguMzg5IDQuNTg4IDI4LjEwMiA0LjI2NSAxOS45MTIgNC4yNjUgMTkuNjI1IDQuNTQ0IDE5LjYyNSA1LjY4NiAxOS45MTIgNS45NjYgMjEuMzI2IDUuOTY2IDIxLjMyNiA3LjEgMTEuOTAyIDE2LjY5NiAxMS45MDIgMTYuNjk2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy4wNDEgMTYuNzExIDE3LjcwMSAxNi4xNDQgMTkuMzk1IDE2LjE0NCAxOS44NjkgMTYuNzExIDE5LjMwMiAxOC40MDUgMTguNjQ5IDE4Ljk3MiAxNi45NTUgMTguOTcyIDE2LjQ3NCAxOC40MDUgMTcuMDQxIDE2LjcxMSAxNy4wNDEgMTYuNzExXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy4wNDEgMTYuNzExIDE3LjcwMSAxNi4xNDQgMTkuMzk1IDE2LjE0NCAxOS44NjkgMTYuNzExIDE5LjMwMiAxOC40MDUgMTguNjQ5IDE4Ljk3MiAxNi45NTUgMTguOTcyIDE2LjQ3NCAxOC40MDUgMTcuMDQxIDE2LjcxMSAxNy4wNDEgMTYuNzExXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy42MDggMjYuMDM0IDE5LjMwOSAyMC45NTMgMTguNzQyIDIwLjk1MyAxOS4zMDkgMTkuMjUxIDIxLjg0MyAxOS4yNTEgMjIuNDEgMTkuODE5IDIyLjc5IDE5LjgxOSAyMy4zNSAxOS4yNTEgMjUuMjM4IDE5LjI1MSAyNS44MDUgMTkuODE5IDI2LjE3OCAxOS44MTkgMjYuNzQ1IDE5LjI1MSAyOC44MTIgMTkuMjUxIDI5LjU2NiAyMC4zODYgMjguMzMxIDI0LjQwNSAyOC44OTEgMjQuNDA1IDI4LjM0NiAyNi4wMzQgMjQuOTUxIDI2LjAzNCAyNi4yNzggMjIuMDc5IDI1LjQzMSAyMi4wNzkgMjQuNjQ5IDI0LjM5MSAyNS4yMDkgMjQuMzkxIDI0LjY3OCAyNi4wMzQgMjEuMjgzIDI2LjAzNCAyMi42MDMgMjIuMDc5IDIxLjc1NiAyMi4wNzkgMjAuOTY3IDI0LjQwNSAyMS41MzQgMjQuNDA1IDIxLjAwMyAyNi4wMzQgMTcuNjA4IDI2LjAzNCAxNy42MDggMjYuMDM0XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy42MDggMjYuMDM0IDE5LjMwOSAyMC45NTMgMTguNzQyIDIwLjk1MyAxOS4zMDkgMTkuMjUxIDIxLjg0MyAxOS4yNTEgMjIuNDEgMTkuODE5IDIyLjc5IDE5LjgxOSAyMy4zNSAxOS4yNTEgMjUuMjM4IDE5LjI1MSAyNS44MDUgMTkuODE5IDI2LjE3OCAxOS44MTkgMjYuNzQ1IDE5LjI1MSAyOC44MTIgMTkuMjUxIDI5LjU2NiAyMC4zODYgMjguMzMxIDI0LjQwNSAyOC44OTEgMjQuNDA1IDI4LjM0NiAyNi4wMzQgMjQuOTUxIDI2LjAzNCAyNi4yNzggMjIuMDc5IDI1LjQzMSAyMi4wNzkgMjQuNjQ5IDI0LjM5MSAyNS4yMDkgMjQuMzkxIDI0LjY3OCAyNi4wMzQgMjEuMjgzIDI2LjAzNCAyMi42MDMgMjIuMDc5IDIxLjc1NiAyMi4wNzkgMjAuOTY3IDI0LjQwNSAyMS41MzQgMjQuNDA1IDIxLjAwMyAyNi4wMzQgMTcuNjA4IDI2LjAzNCAxNy42MDggMjYuMDM0XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC41NTQgMTkuODE5IDI4Ljk5MiAyMC40NDMgMjcuNTk5IDI0LjkwNyAyOC4xNTkgMjQuOTA3IDI3Ljk3MiAyNS40NjcgMjUuNzExIDI1LjQ2NyAyNy4wMzIgMjEuNTEyIDI1LjA1MSAyMS41MTIgMjMuOTI0IDI0LjkwNyAyNC40ODQgMjQuOTA3IDI0LjI5NyAyNS40NjcgMjIuMDM2IDI1LjQ2NyAyMy4zNTcgMjEuNTEyIDIxLjM3NiAyMS41MTIgMjAuMjQ5IDI0LjkwNyAyMC44MTYgMjQuOTA3IDIwLjYyMiAyNS40NjcgMTguMzYxIDI1LjQ2NyAyMC4wNjMgMjAuMzg2IDE5LjQ5NSAyMC4zODYgMTkuNjgyIDE5LjgxOSAyMS43NTYgMTkuODE5IDIyLjMyMyAyMC4zODYgMjIuODgzIDIwLjM4NiAyMy40NSAxOS44MTkgMjUuMTQ0IDE5LjgxOSAyNS43MTEgMjAuMzg2IDI2LjI3OCAyMC4zODYgMjYuODQ1IDE5LjgxOSAyOC41NTQgMTkuODE5IDI4LjU1NCAxOS44MTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMGQyZDM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjU1NCAxOS44MTkgMjguOTkyIDIwLjQ0MyAyNy41OTkgMjQuOTA3IDI4LjE1OSAyNC45MDcgMjcuOTcyIDI1LjQ2NyAyNS43MTEgMjUuNDY3IDI3LjAzMiAyMS41MTIgMjUuMDUxIDIxLjUxMiAyMy45MjQgMjQuOTA3IDI0LjQ4NCAyNC45MDcgMjQuMjk3IDI1LjQ2NyAyMi4wMzYgMjUuNDY3IDIzLjM1NyAyMS41MTIgMjEuMzc2IDIxLjUxMiAyMC4yNDkgMjQuOTA3IDIwLjgxNiAyNC45MDcgMjAuNjIyIDI1LjQ2NyAxOC4zNjEgMjUuNDY3IDIwLjA2MyAyMC4zODYgMTkuNDk1IDIwLjM4NiAxOS42ODIgMTkuODE5IDIxLjc1NiAxOS44MTkgMjIuMzIzIDIwLjM4NiAyMi44ODMgMjAuMzg2IDIzLjQ1IDE5LjgxOSAyNS4xNDQgMTkuODE5IDI1LjcxMSAyMC4zODYgMjYuMjc4IDIwLjM4NiAyNi44NDUgMTkuODE5IDI4LjU1NCAxOS44MTkgMjguNTU0IDE5LjgxOVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wMjIsMTkuMjUxLDE3LjI5MiwyNC40aC41ODlsLS41NiwxLjYzN0gxMy45MzNsMS42OTQtNS4wODJIMTUuMDZsMy45NjItMS43Wm0tMy45NjIsMS43LjU2Ny0xLjdoMy40bC0zLjk2MiwxLjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjAyMiwxOS4yNTEsMTcuMjkyLDI0LjRoLjU4OWwtLjU2LDEuNjM3SDEzLjkzM2wxLjY5NC01LjA4MkgxNS4wNmwzLjk2Mi0xLjdabS0zLjk2MiwxLjcuNTY3LTEuN2gzLjRsLTMuOTYyLDEuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2Ljk0NyAyNS40NjcgMTcuMTM0IDI0LjkwNyAxNi41NjcgMjQuOTA3IDE4LjI2OCAxOS44MTkgMTUuOTE0IDE5LjgxOSAxNS43MiAyMC4zODYgMTYuMzggMjAuMzg2IDE0LjY4NiAyNS40NjcgMTYuOTQ3IDI1LjQ2NyAxNi45NDcgMjUuNDY3XFxcIiBzdHlsZT1cXFwiZmlsbDojZDBkMmQzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi45NDcgMjUuNDY3IDE3LjEzNCAyNC45MDcgMTYuNTY3IDI0LjkwNyAxOC4yNjggMTkuODE5IDE1LjkxNCAxOS44MTkgMTUuNzIgMjAuMzg2IDE2LjM4IDIwLjM4NiAxNC42ODYgMjUuNDY3IDE2Ljk0NyAyNS40NjcgMTYuOTQ3IDI1LjQ2N1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguODI4IDE4LjEyNSAxOS4yMDggMTYuOTkxIDE5LjAyMiAxNi43MTEgMTcuODg4IDE2LjcxMSAxNy41MTQgMTYuOTkxIDE3LjEzNCAxOC4xMjUgMTcuMzI4IDE4LjQwNSAxOC40NjIgMTguNDA1IDE4LjgyOCAxOC4xMjUgMTguODI4IDE4LjEyNVxcXCIgc3R5bGU9XFxcImZpbGw6I2QwZDJkMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguODI4IDE4LjEyNSAxOS4yMDggMTYuOTkxIDE5LjAyMiAxNi43MTEgMTcuODg4IDE2LjcxMSAxNy41MTQgMTYuOTkxIDE3LjEzNCAxOC4xMjUgMTcuMzI4IDE4LjQwNSAxOC40NjIgMTguNDA1IDE4LjgyOCAxOC4xMjUgMTguODI4IDE4LjEyNVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPlwiLFxuXHRcIlZpc3VhbCBCYXNpY1wiOiBcIjxwYXRoIGQ9XFxcIk02LjY3LDcuODM2LDksMTguOTE1LDExLjMzNiw3LjgzNkgxNkwxMS4zMzYsMjQuMTY0SDYuNjcyTDIsNy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTlhXFxcIi8+PHBhdGggZD1cXFwiTTE4LjMzMSw3LjgzNmg3LjZhNC4wOCw0LjA4LDAsMCwxLDIuOSwxLjc0OSwzLjc4LDMuNzgsMCwwLDEsLjU3MSwyLjA0LDMuOTg1LDMuOTg1LDAsMCwxLS41NzEsMi4wMzQsNC4xMDgsNC4xMDgsMCwwLDEtMi4zNDEsMS43NjMsNC4xLDQuMSwwLDAsMSwyLjkyOSwxLjc1NiwzLjgsMy44LDAsMCwxLC41OCwyLjEsNC42NjMsNC42NjMsMCwwLDEtLjU3OSwyLjU0Niw1LjA0Nyw1LjA0NywwLDAsMS0zLjUsMi4zMzhIMTguMzMxWk0yMywxNC4yNTJoMS4xNjZhMS43NTQsMS43NTQsMCwwLDAsMC0zLjVIMjNabTAsN0gyNC4zOWEyLjA0NywyLjA0NywwLDAsMCwwLTQuMDg5SDIzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE5YVxcXCIvPlwiLFxuXHRcIldlYkFzc2VtYmx5XCI6IFwiPHBhdGggZD1cXFwiTTE5LjE1MywyLjM1VjIuNWEzLjIsMy4yLDAsMSwxLTYuNCwwaDBWMi4zNUgyVjMwLjI2OUgyOS45MTlWMi4zNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTRmZjBcXFwiLz48cGF0aCBkPVxcXCJNOC40ODUsMTcuNGgxLjg1TDExLjYsMjQuMTIzaC4wMjNMMTMuMTQsMTcuNGgxLjczMWwxLjM3MSw2LjgxaC4wMjdsMS40NC02LjgxaDEuODE1bC0yLjM1OCw5Ljg4NUgxNS4zMjlsLTEuMzYtNi43MjhoLS4wMzZsLTEuNDU2LDYuNzI4aC0xLjg3Wm0xMy4xMjQsMGgyLjkxN2wyLjksOS44ODVIMjUuNTE1bC0uNjMtMi4ySDIxLjU2MmwtLjQ4NiwyLjJIMTkuMjE3Wm0xLjExLDIuNDM3LS44MDcsMy42MjdoMi41MTJMMjMuNSwxOS44MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiV29sZnJhbSBsYW5ndWFnZVwiOiBcIjxwYXRoIGQ9XFxcIk0zMCwyMC41NSwyNS45NCwxNiwzMCwxMS40NWwtNS45NDgtMS4yOTQuNTk1LTYuMDY3TDE5LjA3MSw2LjU0MywxNS45OTMsMS4yNzksMTIuOTI5LDYuNTQzLDcuMzUzLDQuMDg5bC41OTUsNi4wNjdMMiwxMS40NSw2LjA1OSwxNiwyLDIwLjU1bDUuOTQ4LDEuMjk0LS41OTUsNi4wNjcsNS41NzYtMi40NTQsMy4wNzgsNS4yNjQsMy4wNjMtNS4yNjQsNS41OTEsMi40NTQtLjYxLTYuMDY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QxMFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4zNTMsMTEuNDVhNi45NjgsNi45NjgsMCwwLDEtMy40Mi44NjIsNS40NDYsNS40NDYsMCwwLDEtMy4yMTItLjg2MkE3LjEsNy4xLDAsMCwxLDEyLjUsMTQuOGE2LjIyNSw2LjIyNSwwLDAsMS0xLjg3NCwyLjkxNCw3LjQ1NCw3LjQ1NCwwLDAsMSwzLjEzOCwxLjE5LDkuNjU5LDkuNjU5LDAsMCwxLDIuMjE2LDIuNzIxLDguMTk0LDguMTk0LDAsMCwxLDIuMTQxLTIuNjkxLDcuNjA1LDcuNjA1LDAsMCwxLDMuMjQyLTEuMiwxMi41NjIsMTIuNTYyLDAsMCwxLTEuOTMzLTIuOTQ0QTYuNzE4LDYuNzE4LDAsMCwxLDE5LjM1MywxMS40NVptLTEuOSw2LjU0M2E1LjIzMyw1LjIzMywwLDAsMC0xLjQ1NywxLjYzNiw2LjIzNiw2LjIzNiwwLDAsMC0xLjUtMS42MjEsNS4xOTEsNS4xOTEsMCwwLDAtMS45NDgtLjg0OCw2LjgzOSw2LjgzOSwwLDAsMCwxLjExNS0yLjAwNyw2LjE4LDYuMTgsMCwwLDAsLjIyMy0yLjA4Miw2LjMxNyw2LjMxNywwLDAsMCwyLjA4Mi40NDYsNi41NTIsNi41NTIsMCwwLDAsMi4xNzEtLjQ2MSw0LjUyMSw0LjUyMSwwLDAsMCwuMDc0LDIuMTU2LDYuNzEsNi43MSwwLDAsMCwxLjI0OSwxLjkzM0E3LjAzMSw3LjAzMSwwLDAsMCwxNy40NSwxNy45OTNabTQuMjM4LTQuMDE1Yy0uMzU3LTEuMTc1LjY1NC02LjcwNi42NTQtNi43MDZTMTguNTUsOS44NDQsMTUuODg4LDkuODQ0cy02LjIzLTIuNTcyLTYuMjMtMi41NzIsMS4xNzUsNC4wMTUuNDYxLDYuNTg3LTQuMzg3LDUuNDcyLTQuMzg3LDUuNDcyLDQuNzg4LjI4Myw2LjYsMS41LDMuNjU4LDUuOTQ4LDMuNjU4LDUuOTQ4LDIuNDU0LTUuMiwzLjQ4LTUuOTQ4LDYuOC0xLjUsNi44LTEuNS00LjIyMy00LjE3OC00LjU4LTUuMzUzWm0tMi44NCw1Ljk2M2E5LjQ0NCw5LjQ0NCwwLDAsMC0yLjg0LDQuMTc4cy0xLjQxMy0zLjE1Mi0yLjk3NC00LjIyM1M4LjMsMTguNTQzLDguMywxOC41NDNzMi40NTQtMi4xNzEsMy4wNDgtNC4xYTExLjkyMywxMS45MjMsMCwwLDAtLjEtNC45NTIsMTEuMywxMS4zLDAsMCwwLDQuNjY5LDEuNjIxYzIuMDM3LDAsNC44NDgtMS42MjEsNC44NDgtMS42MjFzLS44MTgsMy4wMzMtLjE2NCw0LjkyMiwzLjEwOCw0LjEzNCwzLjEwOCw0LjEzNGExMC41NTcsMTAuNTU3LDAsMCwwLTQuODYyLDEuNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJYTUxcIjogXCI8cGF0aCBkPVxcXCJNMjAuNDIsMjEuMTU3bDIuMjExLDIuMjExTDMwLDE2LDIyLjYzMSw4LjYzMSwyMC40MiwxMC44NDMsMjUuNTgsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+PHBhdGggZD1cXFwiTTExLjU4LDEwLjg0Myw5LjM2OSw4LjYzMSwyLDE2bDcuMzY5LDcuMzY5LDIuMjExLTIuMjExTDYuNDIsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+PHBhdGggZD1cXFwiTTE3LjQxMSw3LjY3N2wxLjYuNDM3LTQuNDIsMTYuMjA5LTEuNi0uNDM3LDQuNDItMTYuMjA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPlwiLFxuXHRcIlhRdWVyeVwiOiBcIjxwYXRoIGQ9XFxcIk0yMC40MiwyMS4xNTdsMi4yMTEsMi4yMTFMMzAsMTYsMjIuNjMxLDguNjMxLDIwLjQyLDEwLjg0MywyNS41OCwxNlpNMTEuNTgsMTAuODQzLDkuMzY5LDguNjMxLDIsMTZsNy4zNjksNy4zNjksMi4yMTEtMi4yMTFMNi40MiwxNlptNS44MzEtMy4xNjYsMS42LjQzNy00LjQyLDE2LjIwOS0xLjYtLjQzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz48cGF0aCBkPVxcXCJNMjAuMzMyLDE4LjQ2MmEzLjM1NCwzLjM1NCwwLDAsMSwuOTc1LTEuNDIzLDQuMDE0LDQuMDE0LDAsMCwxLDEuNjE3LS44QTkuMTE4LDkuMTE4LDAsMCwxLDI1LjEzOCwxNmE1LjQ3Miw1LjQ3MiwwLDAsMSwzLjY4MSwxLjAzOUEzLjUsMy41LDAsMCwxLDMwLDE5LjgwOGE0LjQ3LDQuNDcsMCwwLDEtLjI0LDEuNDkxLDMuMTI0LDMuMTI0LDAsMCwxLS44MzgsMS4yMzlsLTEuNjc1LDEuNmExLjUxMiwxLjUxMiwwLDAsMC0uNDI0Ljc4OSw1LjMwNyw1LjMwNywwLDAsMC0uMSwxLjFIMjN2LS41NGE2LjMyLDYuMzIsMCwwLDEsLjIwNy0xLjc3OCwyLjg4NiwyLjg4NiwwLDAsMSwuNzgtMS4yNGwxLjM1Mi0xLjI4OWExLjg0LDEuODQsMCwwLDAsLjU2My0uODk0LDMuNjgyLDMuNjgyLDAsMCwwLC4xLS44LDEuNSwxLjUsMCwwLDAtLjI1Mi0uOS45LjksMCwwLDAtLjc3OS0uMzQ2LDEuMjU1LDEuMjU1LDAsMCwwLS40ODMuMDg2LjcyNC43MjQsMCwwLDAtLjM0NC4zMzcsMi4zNDcsMi4zNDcsMCwwLDAtLjIxNy43MjEsNy42MTQsNy42MTQsMCwwLDAtLjA4MSwxLjI0SDIwQTYuMTU1LDYuMTU1LDAsMCwxLDIwLjMzMiwxOC40NjJabTYuNDU3LDguNVYzMEgyMi45MzZWMjYuOTYyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZjYmEwMFxcXCIvPlwiLFxuXHRcIllBTUxcIjogXCI8cGF0aCBkPVxcXCJNMiwxMi4yMThjLjc1NSwwLDEuNTEtLjAwOCwyLjI2NCwwbC4wNTMuMDM4UTUuNywxMy42MzgsNy4wNzgsMTUuMDE0Yy44OTEtLjkwNiwxLjgtMS43OTQsMi43LTIuNy4wNTMtLjA1Mi4xMS0uMTEzLjE5Mi0uMS42MDgsMCwxLjIxNSwwLDEuODIzLDBhMS40LDEuNCwwLDAsMSwuMzUzLjAxOWMtLjcuNjctMS4zNzcsMS4zNjktMi4wNjksMi4wNUw1LjU0NSwxOC44Yy0uMzMxLjMyNC0uNjQ4LjY2My0uOTg5Ljk3NS0uNzU0LjAyMi0xLjUxMS4wMDctMi4yNjYuMDA3LDEuMjIzLTEuMjA5LDIuNDMxLTIuNDMzLDMuNjU4LTMuNjM3QzQuNjI3LDE0Ljg0MSwzLjMxOCwxMy41MjUsMiwxMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+PHBhdGggZD1cXFwiTTEyLjcsMTIuMjE4Yy42MTMsMCwxLjIyNiwwLDEuODM5LDBxMCwzLjc4MywwLDcuNTY2Yy0uNjExLDAtMS4yMjIuMDEyLTEuODMyLS4wMDgsMC0xLjY2NCwwLTMuMzI5LDAtNC45OTQtMS42LDEuNjA3LTMuMjA5LDMuMi00LjgxMSw0LjgtLjA4OS4wOC0uMTY2LjIxNy0uMzA1LjE5NC0uODI0LS4wMDYtMS42NDksMC0yLjQ3NCwwUTguOTE2LDE2LDEyLjcsMTIuMjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTg4NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45NTgsMTIuMjJjLjQ3LS4wMDkuOTM5LDAsMS40MDksMCwuODM2Ljg1MywxLjY5LDEuNjg5LDIuNTM2LDIuNTMycTEuMjY4LTEuMjY3LDIuNTM5LTIuNTMyLjcsMCwxLjQsMC0uMDA4LDMuNzg0LDAsNy41NjdjLS40NzEsMC0uOTQzLjAwNi0xLjQxNCwwcS4wMDgtMi4zODcsMC00Ljc3M2MtLjg0NC44NDMtMS42NzYsMS43LTIuNTI2LDIuNTM2LS44NTYtLjgzNS0xLjY4Ny0xLjY5NS0yLjUzMi0yLjU0MSwwLDEuNTk0LS4wMDYsMy4xODguMDA2LDQuNzgxLS40NzIsMC0uOTQzLjAwNS0xLjQxNSwwUTE0Ljk1OCwxNiwxNC45NTgsMTIuMjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+PHBhdGggZD1cXFwiTTIzLjI1OSwxMi4yMTdjLjQ3MiwwLC45NDQtLjAwNywxLjQxNiwwcS0uMDA3LDMuMDgzLDAsNi4xNjZjMS4yNiwwLDIuNTIxLDAsMy43ODIsMCwuMDYzLjAwNi4xNDQtLjAxMi4xOTEuMDQ1LjQ0OC40NTQuOTA3LjksMS4zNTMsMS4zNTRxLTMuMzcxLjAwNy02Ljc0MSwwUTIzLjI2NywxNiwyMy4yNTksMTIuMjE3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTg4NVxcXCIvPlwiLFxuXHRcIllBTkdcIjogXCI8cGF0aCBkPVxcXCJNOC44NzcsMjMuMTU5YzAtNS41MzUsMy45OTItNy4xNjgsNy44OTQtNy4xNjgsMy4zNTcsMCw1Ljk4OC0zLjgxMSw1Ljk4OC02LjYyNCwwLTMuNjIxLTIuNDg3LTUuODMxLTQuODgyLTcuMTJBMTMuODgxLDEzLjg4MSwwLDEsMCwxNC41LDI5LjhDMTAuNDkxLDI4LjI0OCw4Ljg3NywyNS4zMjQsOC44NzcsMjMuMTU5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNC40ODIsMjkuOTE3QTE0LDE0LDAsMCwxLDE2LDJhMTQuMTU0LDE0LjE1NCwwLDAsMSwxLjg5My4xMzFsLjA0LjAxM2MyLjI1NSwxLjIxMyw0Ljk0NCwzLjQ1Miw0Ljk0NCw3LjIyMywwLDIuNzE1LTIuNTY0LDYuNzQxLTYuMTA2LDYuNzQxLTIuOSwwLTcuNzc2LjkxNi03Ljc3Niw3LjA1LDAsMi4wMjIsMS40NTEsNC45NDYsNS41NDIsNi41MzFaTTE2LDIuMjM2QTEzLjc2NSwxMy43NjUsMCwwLDAsMTMuNjM3LDI5LjU2Yy0zLjU4MS0xLjY4NC00Ljg3Ny00LjQ0Ny00Ljg3Ny02LjQsMC02LjU3Niw1LjYtNy4yODYsOC4wMTItNy4yODYsMy40MDYsMCw1Ljg3LTMuODg2LDUuODctNi41MDYsMC0zLjY0NS0yLjYwNi01LjgyLTQuOC03LjAwNkExMy45MjgsMTMuOTI4LDAsMCwwLDE2LDIuMjM2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yOS44ODIsMTZhMTMuODgyLDEzLjg4MiwwLDAsMC0xMi0xMy43NTJjMi40LDEuMjg5LDQuODgyLDMuNSw0Ljg4Miw3LjEyLDAsMi44MTMtMi42MzEsNi42MjQtNS45ODgsNi42MjQtMy45LDAtNy44OTQsMS42MzMtNy44OTQsNy4xNjgsMCwyLjE2NiwxLjYxMyw1LjA4OSw1LjYxOCw2LjY0MUExMy44NzUsMTMuODc1LDAsMCwwLDI5Ljg4MiwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBhMTQuMiwxNC4yLDAsMCwxLTEuNTE4LS4wODNsLS4wMy0uMDA3Yy00LjItMS42MjgtNS42OTMtNC42NTQtNS42OTMtNi43NSwwLTYuNTc2LDUuNi03LjI4Niw4LjAxMi03LjI4NiwzLjQwNiwwLDUuODctMy44ODYsNS44Ny02LjUwNiwwLTMuNjU1LTIuNjIxLTUuODMzLTQuODItNy4wMTZsLjA3Mi0uMjIxQTE0LDE0LDAsMCwxLDE2LDMwWm0tMS40NzctLjMxNkExMy43NTYsMTMuNzU2LDAsMCwwLDI5Ljc2NCwxNiwxMy44MDcsMTMuODA3LDAsMCwwLDE4LjUsMi40NjZjMi4xMTUsMS4yNzIsNC4zNzcsMy40NDEsNC4zNzcsNi45LDAsMi43MTUtMi41NjQsNi43NDEtNi4xMDYsNi43NDEtMi45LDAtNy43NzYuOTE2LTcuNzc2LDcuMDVDOSwyNS4xNzgsMTAuNDQzLDI4LjEsMTQuNTIzLDI5LjY4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48Y2lyY2xlIGN4PVxcXCIxNS45NDNcXFwiIGN5PVxcXCIyMi43ODdcXFwiIHI9XFxcIjEuNTA2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTYuMDA3XFxcIiBjeT1cXFwiOS4xNDJcXFwiIHI9XFxcIjEuNTA2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+XCIsXG5cdFwiWmlnXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI1LjczMyAxOS43MzEgNS43MzMgMTIuMjY0IDguNTMzIDEyLjI2NCA4LjUzMyA4LjUzMSAyIDguNTMxIDIgMjMuNDY0IDUuNTQ3IDIzLjQ2NCA4LjkwNyAxOS43MzEgNS43MzMgMTkuNzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojZjdhNDFkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNi40NTMgOC41MzEgMjMuMDkzIDEyLjI2NCAyNi4yNjcgMTIuMjY0IDI2LjI2NyAxOS43MzEgMjMuNDY3IDE5LjczMSAyMy40NjcgMjMuNDY0IDMwIDIzLjQ2NCAzMCA4LjUzMSAyNi40NTMgOC41MzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmN2E0MWRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI2Ljg3NSA2LjcwNyAyMC41MTMgOC41MzEgOS40NjcgOC41MzEgOS40NjcgMTIuMjY0IDE2Ljg0NyAxMi4yNjQgNS4xMTUgMjUuMjkzIDExLjQ5NyAyMy40NjQgMjIuNTMzIDIzLjQ2NCAyMi41MzMgMTkuNzMxIDE1LjE0OCAxOS43MzEgMjYuODc1IDYuNzA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZjdhNDFkXFxcIi8+XCJcbn07XG5leHBvcnQgY29uc3QgTEFOR1VBR0VfQ09MT1VSUyA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuXHRcIi5naXRpZ25vcmVcIjogXCIjZGQ0YzM1XCIsXG5cdFwiLmhnaWdub3JlXCI6IFwiI2JmYmZiZlwiLFxuXHRcIi5ucG1pZ25vcmVcIjogXCIjY2IzODM3XCIsXG5cdFwiLnByb3BlcnRpZXNcIjogXCIjOTliOGM0XCIsXG5cdFwiNjUwMiBBc3NlbWJseVwiOiBcIiMwMDAwYmZcIixcblx0XCJBY3Rpb25TY3JpcHRcIjogXCIjYzQxNzE4XCIsXG5cdFwiQWRhXCI6IFwiIzBmMjNjM1wiLFxuXHRcIkFMXCI6IFwiIzJlYTk4ZVwiLFxuXHRcIkFOVExSNFwiOiBcIiNlNDRhMzJcIixcblx0XCJBcGFjaGUgQ29uZmlndXJhdGlvblwiOiBcIiNjOTIwMzdcIixcblx0XCJBcGV4XCI6IFwiIzBmOWJkN1wiLFxuXHRcIkFQTFwiOiBcIiNkMmQyZDJcIixcblx0XCJBcHBsZVNjcmlwdFwiOiBcIiNhOGMyYWJcIixcblx0XCJBcmR1aW5vXCI6IFwiIzJkOTA5NFwiLFxuXHRcIkFSTSBBc3NlbWJseVwiOiBcIiMwMDAwYmZcIixcblx0XCJBc2NpaURvY1wiOiBcIiNlNDAwNDZcIixcblx0XCJBU1AuTkVUIChDIylcIjogXCIjMzNhOWRjXCIsXG5cdFwiQXV0b0hvdGtleVwiOiBcIiNkOGQ4ZDhcIixcblx0XCJBdXRvSXRcIjogXCIjNWQ4M2FjXCIsXG5cdFwiQXZybyBJRExcIjogXCIjMDA0MGZmXCIsXG5cdFwiQVdLXCI6IFwiI2QyZDJkMlwiLFxuXHRcIkJhdGNoXCI6IFwiI2Q5YjQwMFwiLFxuXHRcIkMjXCI6IFwiIzM2ODgzMlwiLFxuXHRcIkNcIjogXCIjMDA1ZjkxXCIsXG5cdFwiQysrXCI6IFwiIzk4NGM5M1wiLFxuXHRcIkNsb2p1cmVcIjogXCIjOTFkYzQ3XCIsXG5cdFwiQ01ha2VcIjogXCIjMDFhMzAwXCIsXG5cdFwiQ09CT0xcIjogXCIjMDA1Y2E1XCIsXG5cdFwiQ29mZmVlU2NyaXB0XCI6IFwiIzZmNGUzN1wiLFxuXHRcIkNyeXN0YWxcIjogXCIjYzhjOGM4XCIsXG5cdFwiQ1NTXCI6IFwiIzE1NzJiNlwiLFxuXHRcIkNTVlwiOiBcIiNjMmMyYzJcIixcblx0XCJEXCI6IFwiI2IwMzkzMVwiLFxuXHRcIkRhcnRcIjogXCIjNThiNmYwXCIsXG5cdFwiRGhhbGxcIjogXCIjYjdiN2I3XCIsXG5cdFwiRGlmZlwiOiBcIiNjMDAwMDBcIixcblx0XCJEamFuZ28vSmluamEyXCI6IFwiI2ZmMDAwMFwiLFxuXHRcIkRvY2tlclwiOiBcIiMwMDk2ZTZcIixcblx0XCJET1QgKEdyYXBodml6KVwiOiBcIiM0ZWQxZjhcIixcblx0XCJFZGl0b3JDb25maWdcIjogXCIjZTNlM2Y4XCIsXG5cdFwiRUpTXCI6IFwiIzkwYTkzYVwiLFxuXHRcIkVsaXhpclwiOiBcIiM0NTI0NTlcIixcblx0XCJFbG1cIjogXCIjOGNkNjM2XCIsXG5cdFwiRVJCXCI6IFwiIzkyMWExZVwiLFxuXHRcIkVybGFuZ1wiOiBcIiNhMjAwM2VcIixcblx0XCJGI1wiOiBcIiMzNzhiYmFcIixcblx0XCJGaXJlc3RvcmUgc2VjdXJpdHkgcnVsZXNcIjogXCIjZjY4MjBjXCIsXG5cdFwiRmxvd1wiOiBcIiNmZmIwNDdcIixcblx0XCJGb3J0cmFuXCI6IFwiIzczNGY5NlwiLFxuXHRcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIjogXCIjMDA1MGIyXCIsXG5cdFwiR2FtZU1ha2VyIExhbmd1YWdlXCI6IFwiIzhiYzM0YVwiLFxuXHRcIkctY29kZVwiOiBcIiNiYTAwMDBcIixcblx0XCJHRFNjcmlwdFwiOiBcIiM0NzhjYmZcIixcblx0XCJHaXRcIjogXCIjZGQ0YzM1XCIsXG5cdFwiR0xTTFwiOiBcIiM0Mzg2YjVcIixcblx0XCJHbyBtb2R1bGVcIjogXCIjY2UzMjYyXCIsXG5cdFwiR29cIjogXCIjMDBhY2Q3XCIsXG5cdFwiR3JhZGxlXCI6IFwiIzAwNjUzM1wiLFxuXHRcIkdyYXBoUUxcIjogXCIjZTEwMDk4XCIsXG5cdFwiR3Jvb3Z5XCI6IFwiIzYzOThhYVwiLFxuXHRcIkhhbWxcIjogXCIjZWNkZmE3XCIsXG5cdFwiSGFuZGxlYmFyc1wiOiBcIiNjMTk3NzBcIixcblx0XCJIYXNrZWxsXCI6IFwiI0MwNDUwNFwiLFxuXHRcIkhheGVcIjogXCIjZjY4NzEyXCIsXG5cdFwiSExTTFwiOiBcIiMwMDAwZmZcIixcblx0XCJIVE1MXCI6IFwiI2U0NGYyNlwiLFxuXHRcIkhUVFBcIjogXCIjM2I2MWE2XCIsXG5cdFwiSWRyaXNcIjogXCIjOGEwODE5XCIsXG5cdFwiSW5pXCI6IFwiIzk5YjhjNFwiLFxuXHRcIklvXCI6IFwiI2MyYzJjMlwiLFxuXHRcIkphdmFcIjogXCIjNTM4MmExXCIsXG5cdFwiSmF2YVNjcmlwdFwiOiBcIiNmNWRlMTlcIixcblx0XCJKU09OXCI6IFwiI2Y1ZGUxOVwiLFxuXHRcIkpTT041XCI6IFwiIzkwOTA5MFwiLFxuXHRcIkp1bGlhXCI6IFwiIzQwNjNkOFwiLFxuXHRcIktvdGxpblwiOiBcIiM5ZDRiOWRcIixcblx0XCJLdXN0b1wiOiBcIiM1OWI0ZDlcIixcblx0XCJMYVRlWFwiOiBcIiNjZmNmY2ZcIixcblx0XCJMZXNzXCI6IFwiIzJhNGY4NFwiLFxuXHRcIkxpcXVpZFwiOiBcIiMwMDQ5OTlcIixcblx0XCJMaXNwXCI6IFwiIzgzODFjNVwiLFxuXHRcIkxpdmVTY3JpcHRcIjogXCIjMzE3ZWFjXCIsXG5cdFwiTG9nIGZpbGVcIjogXCIjMDBiZDAyXCIsXG5cdFwiTE9MQ09ERVwiOiBcIiM4ZDI3MDFcIixcblx0XCJMdWFcIjogXCIjMDUwMDgwXCIsXG5cdFwiTWFya2Rvd25cIjogXCIjNzU1ODM4XCIsXG5cdFwiTUFUTEFCXCI6IFwiI2VmNmMzZVwiLFxuXHRcIk1BWFNjcmlwdFwiOiBcIiMwMDY5NmJcIixcblx0XCJNRUxcIjogXCIjMDZhMGEyXCIsXG5cdFwiTW9uZ29EQlwiOiBcIiM0MWEyNDdcIixcblx0XCJuZ2lueFwiOiBcIiMwMTk2MzlcIixcblx0XCJOaW1cIjogXCIjZmZlOTUzXCIsXG5cdFwiTml4XCI6IFwiIzUyNzdjM1wiLFxuXHRcIk5TSVNcIjogXCIjYTQyZDI2XCIsXG5cdFwiT2JqZWN0IFBhc2NhbFwiOiBcIiNGRjYzNDRcIixcblx0XCJPYmplY3RpdmUtQ1wiOiBcIiNjMmMyYzJcIixcblx0XCJPQ2FtbFwiOiBcIiNmMjkxMDRcIixcblx0XCJPY3RhdmVcIjogXCIjNzdjY2UxXCIsXG5cdFwiT3BlbkNMXCI6IFwiI0ZGMUMxQVwiLFxuXHRcIlBhc2NhbFwiOiBcIiNGRjYzNDRcIixcblx0XCJQZXJsXCI6IFwiIzNhM2M1YlwiLFxuXHRcIlBIUFwiOiBcIiM0YzZiOTZcIixcblx0XCJQTC9TUUxcIjogXCIjZmYwMDAwXCIsXG5cdFwiUGxhaW4gdGV4dFwiOiBcIiNjMmMyYzJcIixcblx0XCJQbGFudFVNTFwiOiBcIiNBMTFGNDFcIixcblx0XCJQb3dlclF1ZXJ5XCI6IFwiI2NmY2ZjZlwiLFxuXHRcIlBvd2VyU2hlbGxcIjogXCIjNTM5MWZlXCIsXG5cdFwiUHJvY2Vzc2luZ1wiOiBcIiMxYzRjNzBcIixcblx0XCJQcm9sb2dcIjogXCIjZWMxYzI0XCIsXG5cdFwiUHJvdG9jb2wgQnVmZmVyc1wiOiBcIiM5N2ZmMjdcIixcblx0XCJQdWdcIjogXCIjNDQyODIzXCIsXG5cdFwiUHVwcGV0XCI6IFwiI2ZmYWUxYVwiLFxuXHRcIlB1cmVTY3JpcHRcIjogXCIjMTYxNzFiXCIsXG5cdFwiUHl0aG9uXCI6IFwiIzM2NzFBMVwiLFxuXHRcIlEgKGtkYisgZGF0YWJhc2UpXCI6IFwiIzFlNzhiM1wiLFxuXHRcIlEjXCI6IFwiIzMzMzNjY1wiLFxuXHRcIlFNTFwiOiBcIiM0MWNkNTJcIixcblx0XCJSXCI6IFwiIzI3NmRjM1wiLFxuXHRcIlJhY2tldFwiOiBcIiM5ZjFkMjBcIixcblx0XCJSYXpvciBDI1wiOiBcIiMzNjg4MzJcIixcblx0XCJSZWFjdCBKU1hcIjogXCIjMDBkOGZmXCIsXG5cdFwiUmVhY3QgVFNYXCI6IFwiIzAwN2FjY1wiLFxuXHRcIlJlYXNvblwiOiBcIiNkZDRiMzlcIixcblx0XCJSZWdvXCI6IFwiIzc4OTI5YVwiLFxuXHRcIlJlU2NyaXB0XCI6IFwiI2U4NGY0ZlwiLFxuXHRcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCI6IFwiI2NlM2YzMVwiLFxuXHRcIlJvYm90IEZyYW1ld29ya1wiOiBcIlwiLFxuXHRcIlJ1YnlcIjogXCIjYjMxMzAxXCIsXG5cdFwiUnVzdFwiOiBcIiNhMDRmMTJcIixcblx0XCJTQVNcIjogXCIjMDAyYmI1XCIsXG5cdFwiU2FzcyAoU2FzcylcIjogXCIjY2Q2Nzk5XCIsXG5cdFwiU2FzcyAoU0NTUylcIjogXCIjY2Q2Nzk5XCIsXG5cdFwiU2NhbGFcIjogXCIjZTYyZDJhIFwiLFxuXHRcIlNoZWxsIHNlc3Npb25cIjogXCIjZDliNDAwXCIsXG5cdFwiU2hlbGxcIjogXCIjZDliNDAwXCIsXG5cdFwiU21hcnR5XCI6IFwiI2Y2ZTIwMFwiLFxuXHRcIlNvbGlkaXR5IChFdGhlcmV1bSlcIjogXCIjYzFjMWMxXCIsXG5cdFwiU29sdXRpb24gZmlsZVwiOiBcIiM4NTRjYzdcIixcblx0XCJTUEFSUUxcIjogXCIjMGM0NzljXCIsXG5cdFwiU1FGXCI6IFwiI2MyYzJjMlwiLFxuXHRcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiOiBcIiNjMmMyYzJcIixcblx0XCJTUUxcIjogXCIjZmZkYTQ0XCIsXG5cdFwiU3F1aXJyZWxcIjogXCIjYTA1YTJjXCIsXG5cdFwiU3RhblwiOiBcIiNiMjAwMWRcIixcblx0XCJTdGF0YSBBZG9cIjogXCIjM2M2ZThmXCIsXG5cdFwiU3R5bHVzXCI6IFwiI2MyYzJjMlwiLFxuXHRcIlNWR1wiOiBcIiNmZmIxM2JcIixcblx0XCJTd2lmdFwiOiBcIiNGQTVEMkRcIixcblx0XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiOiBcIiMzMGQ0NzVcIixcblx0XCJUNCB0ZW1wbGF0aW5nXCI6IFwiIzFlODhlNVwiLFxuXHRcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIjogXCIjMWU4OGU1XCIsXG5cdFwiVDQgVGV4dCBUZW1wbGF0ZXMgKFZCKVwiOiBcIiMxZTg4ZTVcIixcblx0XCJUY2xcIjogXCIjZWZmMWNiXCIsXG5cdFwiVGVtcGxhdGUgVG9vbGtpdCAyXCI6IFwiIzNiY2VmY1wiLFxuXHRcIlRlWFwiOiBcIiNjZmNmY2ZcIixcblx0XCJUZXh0aWxlXCI6IFwiI2ZmZTdhY1wiLFxuXHRcIlRPTUxcIjogXCIjYmZiZmJmXCIsXG5cdFwiVFNDb25maWdcIjogXCIjMDA3YWNjXCIsXG5cdFwiVHdpZ1wiOiBcIiM3OGRjNTBcIixcblx0XCJUeXBlU2NyaXB0XCI6IFwiIzMxNzhjNlwiLFxuXHRcIlR5cG9TY3JpcHRcIjogXCIjZmY4NzAwXCIsXG5cdFwiVlwiOiBcIiM1ZDg3YmZcIixcblx0XCJWYWxhXCI6IFwiIzQwMzc1N1wiLFxuXHRcIlZCLk5ldFwiOiBcIiMwMDUxOWFcIixcblx0XCJWQkFcIjogXCIjZDg3YjMwXCIsXG5cdFwiVmVsb2NpdHlcIjogXCIjMjYyNjkyXCIsXG5cdFwiVmVyaWxvZ1wiOiBcIiMxYTM0OGZcIixcblx0XCJWSERMXCI6IFwiIzBkOWIzNVwiLFxuXHRcInZpbVwiOiBcIiM0M2I1NGFcIixcblx0XCJWaXN1YWwgQmFzaWNcIjogXCIjMDA1MTlhXCIsXG5cdFwiV2ViQXNzZW1ibHlcIjogXCIjNjU0ZmYwXCIsXG5cdFwiV29sZnJhbSBsYW5ndWFnZVwiOiBcIiNkMDEwMDBcIixcblx0XCJYTUxcIjogXCIjZjE2NjJhXCIsXG5cdFwiWFF1ZXJ5XCI6IFwiI2YxNjYyYVwiLFxuXHRcIllBTUxcIjogXCIjZmZlODg1XCIsXG5cdFwiWUFOR1wiOiBcIiMyMzFmMjBcIixcblx0XCJaaWdcIjogXCIjZjdhNDFkXCJcbn07XG5cbmNvbnN0IEVYRUNVVEVfQ09ERV9MQU5HVUFHRV9BTElBU0VTOiBBcnJheTxzdHJpbmc+ID0gW1wiamF2YXNjcmlwdFwiLFwidHlwZXNjcmlwdFwiLFwiYmFzaFwiLFwiY3NoYXJwXCIsXCJ3b2xmcmFtXCIsXCJuYlwiLFwid2xcIixcImhzXCIsXCJweVwiLFwic2NwdFwiXTtcbmNvbnN0IEVYRUNVVEVfQ09ERV9DQU5PTklDQUxfTEFOR1VBR0VTOiBBcnJheTxzdHJpbmc+ID0gW1wianNcIixcInRzXCIsXCJjc1wiLFwibGVhblwiLFwibHVhXCIsXCJweXRob25cIixcImNwcFwiLFwicHJvbG9nXCIsXCJzaGVsbFwiLFwiZ3Jvb3Z5XCIsXCJyXCIsXCJnb1wiLFwicnVzdFwiLFwiamF2YVwiLFwicG93ZXJzaGVsbFwiLFwia290bGluXCIsXCJtYXRoZW1hdGljYVwiLFwiaGFza2VsbFwiLFwic2NhbGFcIixcInJhY2tldFwiLFwiZnNoYXJwXCIsXCJjXCIsXCJkYXJ0XCIsXCJydWJ5XCIsXCJiYXRjaFwiLFwic3FsXCIsXCJvY3RhdmVcIixcIm1heGltYVwiLFwiYXBwbGVzY3JpcHRcIl07XG5cbmV4cG9ydCBjb25zdCBFWEVDVVRFX0NPREVfU1VQUE9SVEVEX0xBTkdVQUdFUyA9IFsuLi5FWEVDVVRFX0NPREVfTEFOR1VBR0VfQUxJQVNFUywuLi5FWEVDVVRFX0NPREVfQ0FOT05JQ0FMX0xBTkdVQUdFU107XG4iLCAiaW1wb3J0IHsgQXBwLCBQbHVnaW5TZXR0aW5nVGFiLCBTZXR0aW5nLCBOb3RpY2UsIFRleHRDb21wb25lbnQsIERyb3Bkb3duQ29tcG9uZW50LCBTbGlkZXJDb21wb25lbnQsIFRvZ2dsZUNvbXBvbmVudCwgRXh0cmFCdXR0b25Db21wb25lbnQsIE1hcmtkb3duUmVuZGVyZXIsIENvbXBvbmVudCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IFBpY2tyIGZyb20gXCJAc2ltb253ZXAvcGlja3JcIjtcbmltcG9ydCB7IENvbG9yVHJhbnNsYXRvciB9IGZyb20gXCJjb2xvcnRyYW5zbGF0b3JcIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuaW1wb3J0IHsgQ29sb3VyLCBDU1MsIEhFWCwgRGlzcGxheSwgQ29kZVN0eWxlclNldHRpbmdzLCBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBGT0xEX1BMQUNFSE9MREVSLCBQQVJBTUVURVJTLCBERUZBVUxUX1NFVFRJTkdTLCBMQU5HVUFHRV9OQU1FUywgTEFOR1VBR0VfSUNPTlNfREFUQSwgU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgsIEVYQU1QTEVfSU5MSU5FX0NPREUsIEVYQU1QTEVfQ09ERUJMT0NLX1BBUkFNRVRFUlMsIEVYQU1QTEVfQ09ERUJMT0NLX0NPTlRFTlQsIEVYQ0xVREVEX0xBTkdVQUdFUywgV0hJVEVMSVNUX0NPREVCTE9DS1MsIElOQlVJTFRfVEhFTUVTLCBDb2RlU3R5bGVyVGhlbWUgfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuXG5jb25zdCBTRVRUSU5HU19QQUdFUzogUmVjb3JkPHN0cmluZyxzdHJpbmc+ID0ge1xuXHRcIm1haW5cIjogXCJDb3JlIFNldHRpbmdzXCIsXG5cdFwiY29kZWJsb2NrXCI6IFwiQ29kZWJsb2NrIFN0eWxpbmdcIixcblx0XCJpbmxpbmVcIjogXCJJbmxpbmUgQ29kZSBTdHlsaW5nXCIsXG59O1xuY29uc3QgQ09ERUJMT0NLX1BBR0VTOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4gPSB7XG5cdFwiYm9keVwiOiBcIkNvZGVibG9jayBCb2R5XCIsXG5cdFwiZ3V0dGVyXCI6IFwiQ29kZWJsb2NrIEd1dHRlclwiLFxuXHRcImhlYWRlclwiOiBcIkNvZGVibG9jayBIZWFkZXJcIixcblx0XCJoaWdobGlnaHRcIjogXCJDb2RlYmxvY2sgSGlnaGxpZ2h0aW5nXCIsXG5cdFwibGFuZ3VhZ2VzXCI6IFwiQ29kZWJsb2NrIExhbmd1YWdlc1wiLFxuXHQvLyBcInBsdWdpbnNcIjogXCJQbHVnaW4gQ29tcGF0aWJpbGl0eVwiLFxuXHRcImV4YW1wbGVcIjogXCJFeGFtcGxlIENvZGVibG9jayBDb250ZW50XCIsXG59O1xuY29uc3QgRElTUExBWV9PUFRJT05TOiBSZWNvcmQ8RGlzcGxheSxzdHJpbmc+ID0ge1xuXHRcIm5vbmVcIjogXCJOZXZlclwiLFxuXHRcImlmX2hlYWRlcl9zaG93blwiOiBcIklmIEhlYWRlciBTaG93blwiLFxuXHRcImFsd2F5c1wiOiBcIkFsd2F5c1wiLFxufTtcblxuZXhwb3J0IGNsYXNzIFNldHRpbmdzVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG5cdHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbjtcblx0cGlja3JzOiBSZWNvcmQ8c3RyaW5nLFBpY2tyUmVzZXR0YWJsZT47XG5cdHBhZ2U6IHN0cmluZztcblx0Y29kZWJsb2NrUGFnZTogc3RyaW5nO1xuXHRoaWRlQWR2YW5jZWQ6IGJvb2xlYW47XG5cdGNvZGVibG9ja1NldHRpbmdFbDogSFRNTEVsZW1lbnQ7XG5cdGFkdmFuY2VkU2V0dGluZ3NDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRleGFtcGxlQ29kZWJsb2NrQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0ZXhhbXBsZUlubGluZUNvZGVDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHR3cmFwTGluZXNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRsaW5lTnVtYmVyc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGhlYWRlclRhZ3NDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRoZWFkZXJJY29uc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGlubGluZUNvZGVTdHlsZXNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRkaXNhYmxlYWJsZUNvbXBvbmVudHM6IFJlY29yZDxzdHJpbmcsQXJyYXk8VG9nZ2xlQ29tcG9uZW50IHwgU2xpZGVyQ29tcG9uZW50IHwgVGV4dENvbXBvbmVudCB8IEV4dHJhQnV0dG9uQ29tcG9uZW50Pj47XG5cblx0Y29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRcdHN1cGVyKGFwcCwgcGx1Z2luKTtcblx0XHR0aGlzLnBsdWdpbiA9IHBsdWdpbjtcblx0XHR0aGlzLnBpY2tycyA9IHt9O1xuXHRcdHRoaXMucGFnZSA9IFwibWFpblwiO1xuXHRcdHRoaXMuY29kZWJsb2NrUGFnZSA9IFwiYm9keVwiO1xuXHRcdHRoaXMuaGlkZUFkdmFuY2VkID0gdHJ1ZTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50cyA9IHt9O1xuXHR9XG5cblx0LyoqXG5cdCAqICBCdWlsZHMgdGhlIGh0bWwgcGFnZSB0aGF0IGlzIHNob3dlZCBpbiB0aGUgc2V0dGluZ3MuXG5cdCAqL1xuXHRkaXNwbGF5KCkge1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzID0ge1xuXHRcdFx0XCJlZGl0b3JBY3RpdmVMaW5lSGlnaGxpZ2h0XCI6IFtdLFxuXHRcdFx0XCJjb2RlYmxvY2tBY3RpdmVMaW5lSGlnaGxpZ2h0XCI6IFtdLFxuXHRcdFx0XCJncmFkaWVudEhpZ2hsaWdodGluZ1wiOiBbXSxcblx0XHRcdFwibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIjogW10sXG5cdFx0fTtcblx0XHR0aGlzLmhpZGVBZHZhbmNlZCA9IHRydWU7XG5cdFx0dGhpcy5nZW5lcmF0ZVNldHRpbmdzKHRoaXMuY29udGFpbmVyRWwpO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIFNldHRpbmdzIFBhZ2VzXG5cdGRpc3BsYXlNYWluU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5lbXB0eVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3NTd2l0Y2hlcihjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVDb3JlU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVBZHZhbmNlZEhlYWRpbmcoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVBZHZhbmNlZFNldHRpbmdzKCk7XG5cdFx0dGhpcy5nZW5lcmF0ZURvbmF0aW9uRm9vdGVyKGNvbnRhaW5lckVsKTtcblx0fVxuXHRkaXNwbGF5Q29kZWJsb2NrU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5lbXB0eVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3NTd2l0Y2hlcihjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaHJcIik7XG5cdFx0dGhpcy5leGFtcGxlQ29kZWJsb2NrQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrU3R5bGluZ1N3aXRjaGVyKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmNvZGVibG9ja1NldHRpbmdFbCA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tTZXR0aW5nKCk7XG5cblx0fVxuXHRkaXNwbGF5SW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdHRoaXMuZW1wdHlTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVNldHRpbmdzU3dpdGNoZXIoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVUaGVtZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImhyXCIpO1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKTtcblx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdH1cblxuXHQvLyBDcmVhdGUgU2V0dGluZ3MgR3JvdXBzXG5cdGVtcHR5U2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuZW1wdHkoKTtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgxXCIsIHt0ZXh0OiBcIlNldHRpbmdzIGZvciB0aGUgQ29kZSBTdHlsZXIgUGx1Z2luLlwifSk7XG5cdH1cblx0Z2VuZXJhdGVTZXR0aW5nc1N3aXRjaGVyKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDaG9vc2UgU2V0dGluZ3MgUGFnZVwiKVxuXHRcdFx0LnNldERlc2MoXCJDaGFuZ2UgZHJvcGRvd24gdG8gbW9kaWZ5IGRpZmZlcmVudCBncm91cHMgb2Ygc2V0dGluZ3NcIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKFNFVFRJTkdTX1BBR0VTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wYWdlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBhZ2UgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRpZiAodGhpcy5wYWdlID09PSBcIm1haW5cIilcblx0XHRcdHRoaXMuZGlzcGxheU1haW5TZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5wYWdlID09PSBcImNvZGVibG9ja1wiKVxuXHRcdFx0dGhpcy5kaXNwbGF5Q29kZWJsb2NrU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMucGFnZSA9PT0gXCJpbmxpbmVcIilcblx0XHRcdHRoaXMuZGlzcGxheUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tTdHlsaW5nU3dpdGNoZXIoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNob29zZSBDb2RlYmxvY2sgU2V0dGluZ3NcIilcblx0XHRcdC5zZXREZXNjKFwiQ2hhbmdlIGRyb3Bkb3duIHRvIG1vZGlmeSBzdHlsZXMgYW5kIHNldHRpbmdzIG9mIGRpZmZlcmVudCBjb2RlYmxvY2sgc2VjdGlvbnNcIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKENPREVCTE9DS19QQUdFUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMuY29kZWJsb2NrUGFnZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYWdlID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja1NldHRpbmcoKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrU2V0dGluZygpIHtcblx0XHR0aGlzLmNvZGVibG9ja1NldHRpbmdFbC5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiYm9keVwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0JvZHlTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcImd1dHRlclwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0d1dHRlclNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiaGVhZGVyXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrSGVhZGVyU2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJoaWdobGlnaHRcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tIaWdobGlnaHRTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcImxhbmd1YWdlc1wiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0xhbmd1YWdlU2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJwbHVnaW5zXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlUGx1Z2luQ29tcGF0aWJpbGl0eVNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiZXhhbXBsZVwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2tTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdH1cblx0Z2VuZXJhdGVDb3JlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlN0eWxlIENvZGUgb24gRXhwb3J0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIHN0eWxpbmcgd2lsbCBiZSBhcHBsaWVkIHdoZW4gZXhwb3J0aW5nIHRvIFBERi5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmRlY29yYXRlUHJpbnQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICAgICAgIFxuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVUaGVtZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDJcIiwge3RleHQ6IFwiVGhlbWUgU2V0dGluZ3NcIn0pO1xuXHRcdGxldCB0aGVtZURyb3Bkb3duOiBEcm9wZG93bkNvbXBvbmVudDtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU2VsZWN0IFRoZW1lXCIpXG5cdFx0XHQuYWRkRHJvcGRvd24oKGRyb3Bkb3duKSA9PiB7XG5cdFx0XHRcdHRoZW1lRHJvcGRvd24gPSBkcm9wZG93bjtcblx0XHRcdFx0dGhpcy51cGRhdGVEcm9wZG93bih0aGVtZURyb3Bkb3duLHRoaXMucGx1Z2luLnNldHRpbmdzKTtcblx0XHRcdFx0dGhlbWVEcm9wZG93bi5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEV4dHJhQnV0dG9uKGJ1dHRvbiA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRUb29sdGlwKFwiVXBkYXRlIHRoZW1lXCIpO1xuXHRcdFx0XHRidXR0b24uc2V0SWNvbihcInNhdmVcIik7XG5cdFx0XHRcdGJ1dHRvbi5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0gPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZX0gdGhlbWUgc2F2ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuYWRkRXh0cmFCdXR0b24oYnV0dG9uID0+IHtcblx0XHRcdFx0YnV0dG9uLnNldFRvb2x0aXAoXCJEZWxldGUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwidHJhc2hcIik7XG5cdFx0XHRcdGJ1dHRvbi5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZS50cmltKCkubGVuZ3RoID09PSAwKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIlNlbGVjdCBhIHRoZW1lIGZpcnN0IHRvIGRlbGV0ZVwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSBpbiBERUZBVUxUX1NFVFRJTkdTLnRoZW1lcylcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoXCJZb3UgY2Fubm90IGRlbGV0ZSB0aGUgZGVmYXVsdCB0aGVtZXNcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0ZGVsZXRlIHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXTtcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZX0gdGhlbWUgZGVsZXRlZCBzdWNjZXNzZnVsbHkhYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSA9IFwiRGVmYXVsdFwiO1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSk7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRsZXQgbmV3VGhlbWVOYW1lOiBUZXh0Q29tcG9uZW50O1xuXHRcdGxldCBuZXdUaGVtZURlZmF1bHQ6IFRvZ2dsZUNvbXBvbmVudDtcblx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSA9IFwiXCI7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkFkZCBOZXcgVGhlbWVcIilcblx0XHRcdC5zZXREZXNjKFwiQ3JlYXRlIGEgbmV3IHRoZW1lIGZyb20gdGhlIGN1cnJlbnQgc2V0dGluZ3MuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHtuZXdUaGVtZU5hbWUgPSB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihcIk5ldyB0aGVtZSBuYW1lXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gdmFsdWU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRFeHRyYUJ1dHRvbihidXR0b24gPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0VG9vbHRpcChcIlNhdmUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwicGx1c1wiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZS50cmltKCkubGVuZ3RoID09PSAwKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIlNldCBhIG5hbWUgZm9yIHlvdXIgdGhlbWVcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lIGluIERFRkFVTFRfU0VUVElOR1MudGhlbWVzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIllvdSBjYW4ndCBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgdGhlbWVzXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSBpbiB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXMpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKGAke3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lfSB0aGVtZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWVdID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWV9IHRoZW1lIHNhdmVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWU7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gXCJcIjtcblx0XHRcdFx0XHRcdG5ld1RoZW1lTmFtZS5zZXRWYWx1ZShcIlwiKTtcblx0XHRcdFx0XHRcdG5ld1RoZW1lRGVmYXVsdC5zZXRWYWx1ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0JvZHlTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkNvZGVibG9jayBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2suYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2suYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNvZGVibG9jayBUZXh0IENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImNvZGVibG9ja190ZXh0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uY29kZWJsb2NrLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uY29kZWJsb2NrLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDb2RlYmxvY2sgQ3VydmF0dXJlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IHJvdW5kZWQgdGhlIGNvZGVibG9ja3MgYXBwZWFyIGluIHBpeGVscy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDI1LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGN1cnZhdHVyZVwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmU7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkxhbmd1YWdlIENvbG91cmVkIEJvcmRlcnNcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgbGFuZ3VhZ2VzIHdpdGggaWNvbnMgZGlzcGxheSBhIGxlZnQgYm9yZGVyIHdpdGggdGhlIGNvbG91ciBvZiB0aGUgaWNvbi4gVGhlIHNsaWRlciBzZXRzIHRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXIgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxhbmd1YWdlQm9yZGVyQ29sb3VyXCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDIwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGggPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxhbmd1YWdlQm9yZGVyQ29sb3VyXCJdLnB1c2gocmVzZXR0YWJsZVNsaWRlcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRsZXQgcmVzZXRCdXR0b246IEV4dHJhQnV0dG9uQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtyZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXIgc3RvcFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGg7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIl0ucHVzaChyZXNldEJ1dHRvbik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlVud3JhcCBjb2RlYmxvY2sgbGluZXNcIilcblx0XHRcdC5zZXREZXNjKFwiQ2hvb3NlIHdoZXRoZXIgdG8gdW53cmFwIGxpbmVzIGluIHJlYWRpbmcgbW9kZVwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVXcmFwTGluZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7ICBcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMud3JhcExpbmVzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVdyYXBMaW5lU2V0dGluZ3MoKTtcblx0fVxuXHRnZW5lcmF0ZVdyYXBMaW5lU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy53cmFwTGluZXNDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXMpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy53cmFwTGluZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIldyYXAgTGluZXMgb24gQ2xpY2tcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaW4gcmVhZGluZyBtb2RlLCBob2xkaW5nIGNsaWNrIG9uIGEgY29kZWJsb2NrIHdpbGwgd3JhcCB0aGUgbGluZXMgZm9yIGJldHRlciB2aXNpYmlsaXR5LlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLndyYXBMaW5lc0FjdGl2ZSlcblx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay53cmFwTGluZXNBY3RpdmUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTsgXG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0d1dHRlclNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiR3V0dGVyIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFbmFibGUgTGluZSBOdW1iZXJzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGRpc2FibGVkLCB0aGUgYmVsb3cgc2V0dGluZ3MgYXJlIGRpc2FibGVkIHRvby5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrTGluZU51bWJlclNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7ICAgICAgICAgXG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0xpbmVOdW1iZXJTZXR0aW5ncygpO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrTGluZU51bWJlclNldHRpbmdzKCkge1xuXHRcdHRoaXMubGluZU51bWJlcnNDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiR3V0dGVyIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMubGluZU51bWJlcnNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJndXR0ZXJfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJMaW5lIE51bWJlciBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImxpbmVfbnVtYmVyXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMubGluZU51bWJlcnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkhpZ2hsaWdodCBMaW5lIE51bWJlcnNcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyB3aWxsIGFsc28gaGlnaGxpZ2h0IHRoZSBsaW5lIG51bWJlcnMuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0KVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmhpZ2hsaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmRpY2F0ZSBDdXJyZW50IExpbmUgTnVtYmVyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyIGluIGNvZGVibG9ja3Mgd2lsbCBiZSBpbmRpY2F0ZWQgd2l0aCBhIHNlcGFyYXRlIGNvbG91ci5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNwYWNlZFwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuYWN0aXZlTGluZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pXG5cdFx0XHQpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMubGluZU51bWJlcnNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJhY3RpdmVfbGluZV9udW1iZXJcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYWN0aXZlVGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYWN0aXZlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tIZWFkZXJTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkhlYWRlciBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBGb250IFNpemVcIilcblx0XHRcdC5zZXREZXNjKFwiU2V0IHRoZSBmb250IHNpemUgZm9yIGhlYWRlciBsYW5ndWFnZSB0YWdzIGFuZCB0aXRsZXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoNiwzMiwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgZm9udCBzaXplXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemU7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIFRpdGxlIFRleHQgU3R5bGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJTdHlsZSB0aGUgaGVhZGVyIHRpdGxlIHRleHQgdXNpbmcgYm9sZCBhbmQgaXRhbGljIHRvZ2dsZXMsIGJ5IHNldHRpbmcgYSBmb250IG9yIGJ5IHNldHRpbmcgYSB0ZXh0IGNvbG91ci5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHt0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgYm9sZCB0aXRsZSB0ZXh0XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Qm9sZCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHt0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgaXRhbGljIHRpdGxlIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEl0YWxpYylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEl0YWxpYyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4ge3RleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiRm9udFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Rm9udClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEZvbnQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX3RpdGxlX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIudGl0bGUudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIudGl0bGUudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bGV0IGZvbGRQbGFjZWhvbGRlclRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJGb2xkIFBsYWNlaG9sZGVyIFRleHRcIilcblx0XHRcdC5zZXREZXNjKFwiVGl0bGUgcGxhY2Vob2xkZXIgdGV4dCBmb3IgZm9sZGVkIGNvZGUgd2hlbiBubyB0aXRsZSBwYXJhbWV0ZXIgaXMgc2V0LlwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihGT0xEX1BMQUNFSE9MREVSKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb2xkUGxhY2Vob2xkZXIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KGZvbGRQbGFjZWhvbGRlclRpbWVvdXQpO1xuXHRcdFx0XHRcdGZvbGRQbGFjZWhvbGRlclRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnJlcmVuZGVyKCksMTAwMCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIFNlcGFyYXRvciBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiQ29sb3VyIG9mIHRoZSBsaW5lIHNlcGFyYXRpbmcgdGhlIGNvZGVibG9jayBoZWFkZXIgYW5kIHRoZSBjb2RlYmxvY2suXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX3NlcGFyYXRvclwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5saW5lQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5saW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRcdFxuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDVcIiwge3RleHQ6IFwiSGVhZGVyIExhbmd1YWdlIFRhZyBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRGlzcGxheSBIZWFkZXIgTGFuZ3VhZ2UgVGFnc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmUgd2hlbiB0byBzaG93IGxhbmd1YWdlIHRhZ3MgaW4gdGhlIGhlYWRlci4gXFxcIlRpdGxlIE9ubHlcXFwiIHdpbGwgb25seSBzaG93IGxhbmd1YWdlIHRhZ3Mgd2hlbiB0aGUgdGl0bGUgcGFyYW1ldGVyIGlzIHNldC5cIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKERJU1BMQVlfT1BUSU9OUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZTogRGlzcGxheSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVIZWFkZXJUYWdTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpO1xuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUhlYWRlclRhZ1NldHRpbmdzKCk7XG5cdFx0XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoNVwiLCB7dGV4dDogXCJIZWFkZXIgTGFuZ3VhZ2UgSWNvbiBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRGlzcGxheSBIZWFkZXIgTGFuZ3VhZ2UgSWNvbnNcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lIHdoZW4gdG8gc2hvdyBsYW5ndWFnZSBpY29ucyB3aGVyZSBhdmFpbGFibGUuIFxcXCJUaXRsZSBPbmx5XFxcIiB3aWxsIG9ubHkgc2hvdyBsYW5ndWFnZSB0YWdzIHdoZW4gdGhlIHRpdGxlIHBhcmFtZXRlciBpcyBzZXQuXCIpXG5cdFx0XHQuYWRkRHJvcGRvd24oKGRyb3Bkb3duKSA9PiBkcm9wZG93blxuXHRcdFx0XHQuYWRkT3B0aW9ucyhESVNQTEFZX09QVElPTlMpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBEaXNwbGF5KSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVIZWFkZXJJY29uU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMuaGVhZGVySWNvbnNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlSGVhZGVySWNvblNldHRpbmdzKCk7XG5cdH1cblx0Z2VuZXJhdGVIZWFkZXJUYWdTZXR0aW5ncygpIHtcblx0XHR0aGlzLmhlYWRlclRhZ3NDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID09PSBcIm5vbmVcIilcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlclRhZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBMYW5ndWFnZSBUYWcgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX2xhbmd1YWdlX3RhZ19iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxhbmd1YWdlVGFnLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxhbmd1YWdlVGFnLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIExhbmd1YWdlIFRhZyBUZXh0IFN0eWxpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiU3R5bGUgdGhlIGhlYWRlciBsYW5ndWFnZSB0YWcgdGV4dCB1c2luZyBib2xkIGFuZCBpdGFsaWMgdG9nZ2xlcywgYnkgc2V0dGluZyBhIGZvbnQgb3IgYnkgc2V0dGluZyBhIHRleHQgY29sb3VyLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiVG9nZ2xlIGJvbGQgbGFuZ3VhZ2UgdGFnIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBpdGFsaWMgbGFuZ3VhZ2UgdGFnIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEl0YWxpYylcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0SXRhbGljID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiRm9udFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udClcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmhlYWRlclRhZ3NDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfbGFuZ3VhZ2VfdGFnX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdH1cblx0Z2VuZXJhdGVIZWFkZXJJY29uU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5oZWFkZXJJY29uc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBcIm5vbmVcIilcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlckljb25zQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJMYW5ndWFnZSBJY29ucyBDb2xvdXJlZFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBkaXNhYmxlZCwgbGFuZ3VhZ2UgaWNvbnMgd2lsbCBiZSBibGFjayBhbmQgd2hpdGUuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXlDb2xvdXIpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5Q29sb3VyID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVySWNvbnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkxhbmd1YWdlIEljb24gU2l6ZVwiKVxuXHRcdFx0LnNldERlc2MoXCJTZXQgdGhlIHNpemUgb2YgdGhlIGRpc3BsYXllZCBsYW5ndWFnZSBpY29ucy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygxMCw0MCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuaWNvblNpemUpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGljb24gc2l6ZVwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSkpO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tIaWdobGlnaHRTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkhpZ2hsaWdodGluZyBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIEFjdGl2ZSBMaW5lIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHRoZSBhY3RpdmUgbGluZSBpbnNpZGUgY29kZWJsb2Nrcy5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNwYWNlZFwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3JldHVybiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lID0gdmFsdWU7IFxuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiY29kZWJsb2NrQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImNvZGVibG9ja19hY3RpdmVfbGluZV9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiAhdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSxcblx0XHRcdCk7fSk7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJjb2RlYmxvY2tBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLnB1c2godGhpcy5waWNrcnNbXCJjb2RlYmxvY2tfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCJdLnJlc2V0QnV0dG9uKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRGVmYXVsdCBIaWdobGlnaHQgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlVzZWQgYnkgdGhlICdobCcgcGFyYW1ldGVyLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImRlZmF1bHRfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuZGVmYXVsdENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bGV0IG5ld0hpZ2hsaWdodFRleHQ6IFRleHRDb21wb25lbnQ7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkFkZCBBbHRlcm5hdGl2ZSBIaWdobGlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiRGVmaW5lIGEgbmV3IGFsdGVybmF0aXZlIGhpZ2hsaWdodCBuYW1lLiBUaGUgY29sb3VyIGNhbiBiZSBtb2RpZmllZCBhZnRlciBpdCBpcyBhZGRlZC5cIilcblx0XHRcdC5hZGRUZXh0KHZhbHVlID0+IHtuZXdIaWdobGlnaHRUZXh0ID0gdmFsdWVcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiZS5nLiBlcnJvciwgd2FyblwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRCdXR0b24oKGJ1dHRvbikgPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0QnV0dG9uVGV4dChcIkFkZFwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQudHJpbSgpID09PSBcIlwiKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIlBsZWFzZSBlbnRlciBhIGNvbG91ciBuYW1lLlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAoIS9eW15cXGRdXFx3KiQvLnRlc3QodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0KSlcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIgaXMgbm90IGEgdmFsaWQgY29sb3VyIG5hbWUuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gXCJobFwiKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIkNhbm5vdCBvdmVycmlkZSB0aGUgZGVmYXVsdCBoaWdobGlnaHQgcGFyYW1ldGVyLlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAoUEFSQU1FVEVSUy5pbmNsdWRlcyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQudHJpbSgpLnRvTG93ZXJDYXNlKCkpKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIkNhbm5vdCB1c2Ugb3RoZXIgZGVmYXVsdCBwYXJhbWV0ZXJzLlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0IGluIHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgQSBoaWdobGlnaHQgd2l0aCB0aGUgbmFtZSBcIiR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0fVwiIGFscmVhZHkgZXhpc3RzLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgRnV0dXJlOiBGb2N1cyBvbiBleGlzdGluZyBoaWdobGlnaHRlciAtIGByZW5kZXJNYXRjaGVzYFxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc3QgbmV3Q29sb3VyID0gZ2V0UmFuZG9tQ29sb3VyKCk7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHRdID0gbmV3Q29sb3VyO1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMuZGFyay5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHRdID0gbmV3Q29sb3VyO1xuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYEFkZGVkIGhpZ2hsaWdodCBcIiR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0fVwiLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodCA9IFwiXCI7XG5cdFx0XHRcdFx0XHRuZXdIaWdobGlnaHRUZXh0LnNldFZhbHVlKFwiXCIpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdHRoaXMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiR3JhZGllbnQgSGlnaGxpZ2h0aW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGhpZ2hsaWdodHMgZmFkZSBhd2F5IHRvIHRoZSByaWdodC4gVGhlIHNsaWRlciBzZXRzIHRoZSBncmFkaWVudCBjb2xvdXIgc3RvcCBhcyBhIHBlcmNlbnRhZ2UuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJncmFkaWVudEhpZ2hsaWdodGluZ1wiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMDAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUoK3RoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wLnNsaWNlKDAsLTEpKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cylcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wID0gYCR7dmFsdWV9JWA7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJncmFkaWVudEhpZ2hsaWdodGluZ1wiXS5wdXNoKHJlc2V0dGFibGVTbGlkZXIpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0bGV0IHJlc2V0QnV0dG9uOiBFeHRyYUJ1dHRvbkNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7cmVzZXRCdXR0b24gPSBidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGNvbG91ciBzdG9wXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3AgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUoK3RoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wLnNsaWNlKDAsLTEpKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZ3JhZGllbnRIaWdobGlnaHRpbmdcIl0ucHVzaChyZXNldEJ1dHRvbik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tMYW5ndWFnZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGxldCBleGNsdWRlVGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkV4Y2x1ZGUgTGFuZ3VhZ2VzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRlZmluZSBsYW5ndWFnZXMgaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCB3aGljaCB0aGUgcGx1Z2luIHNob3VsZCBub3QgZGVjb3JhdGUuIFlvdSBjYW4gdXNlIGEgd2lsZGNhcmQgKCopIGVpdGhlciBhdCB0aGUgYmVnaW5uaW5nLCBvciBhdCB0aGUgZW5kLiBGb3IgZXhhbXBsZTogYWQtKiB3aWxsIGV4Y2x1ZGUgY29kZWJsb2NrcyB3aGVyZSB0aGUgbGFuZ3VhZ2Ugc3RhcnRzIHdpdGggYWQtIGUuZy46IGFkLWluZm8sIGFkLWVycm9yIGV0Yy5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoYGUuZy4gJHtFWENMVURFRF9MQU5HVUFHRVN9IGV0Yy5gKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KGV4Y2x1ZGVUaW1lb3V0KTtcblx0XHRcdFx0XHRleGNsdWRlVGltZW91dCA9IHNldFRpbWVvdXQoKCk9PnRoaXMucmVyZW5kZXIoKSwxMDAwKTtcblx0XHRcdFx0fSkpO1xuXHRcdGxldCB3aGl0ZWxpc3RUaW1lb3V0OiBOb2RlSlMuVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pnt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiV2hpdGVsaXN0ZWQgUHJvY2Vzc2VkIENvZGVibG9ja3NcIilcblx0XHRcdC5zZXREZXNjKFwiRGVmaW5lIGxhbmd1YWdlcyBpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IHdoaWNoIHRoZSBwbHVnaW4gc2hvdWxkIHN0eWxlIGRlc3BpdGUgYmVpbmcgcHJvY2Vzc2VkIGJ5IGFub3RoZXIgcGx1Z2luLiBZb3UgY2FuIHVzZSBhIHdpbGRjYXJkICgqKSBlaXRoZXIgYXQgdGhlIGJlZ2lubmluZywgb3IgYXQgdGhlIGVuZC4gRm9yIGV4YW1wbGU6IGFkLSogd2lsbCBleGNsdWRlIGNvZGVibG9ja3Mgd2hlcmUgdGhlIGxhbmd1YWdlIHN0YXJ0cyB3aXRoIGFkLSBlLmcuOiBhZC1pbmZvLCBhZC1lcnJvciBldGMuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKGBlLmcuICR7V0hJVEVMSVNUX0NPREVCTE9DS1N9IGV0Yy5gKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdGNsZWFyVGltZW91dCh3aGl0ZWxpc3RUaW1lb3V0KTtcblx0XHRcdFx0XHR3aGl0ZWxpc3RUaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+dGhpcy5yZXJlbmRlcigpLDEwMDApO1xuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlJlZGlyZWN0IExhbmd1YWdlIFNldHRpbmdzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlVzZSB0aGlzIHRleHRib3ggdG8gcmVkaXJlY3Qgc3BlY2lmaWMgbGFuZ3VhZ2UgY29sb3VycyBhbmQgaWNvbnMgYXMgYSBKU09OIHdpdGggbGFuZ3VhZ2UgbmFtZXMgYXMga2V5cyBhbmQgZWl0aGVyIGEgY29sb3VyIGtleSwgYW4gaWNvbiBrZXkgb3IgYm90aCBhcyB0aGUgdmFsdWUgZm9yIGEgZ2l2ZW4gbGFuZ3VhZ2UuIENvbG91cnMgc2hvdWxkIGJlIHBhc3NlZCBhcyBDU1MgY29sb3VycyBhbmQgaWNvbnMgc2hvdWxkIGJlIHBhc3NlZCBhcyBhIHN0cmluZyBvZiB0aGUgaW5zaWRlIG9mIGFuIHN2ZyBlbGVtZW50LiBUaGlzIHNldHRpbmcgaXMgdGhlbWUgaW5kZXBlbmRlbnQuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtYXJlYVwiKVxuXHRcdFx0LmFkZFRleHRBcmVhKHRleHRBcmVhID0+IHRleHRBcmVhXG5cdFx0XHRcdC5zZXRWYWx1ZShKU09OLnN0cmluZ2lmeSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyk9PT1cInt9XCI/XCJcIjpKU09OLnN0cmluZ2lmeSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyxudWxsLDQpKVxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoSlNPTi5zdHJpbmdpZnkoe3RvbWw6IHtjb2xvdXI6IFwiIzAxMjM0NVwiLCBpY29uOiBMQU5HVUFHRV9JQ09OU19EQVRBW1wiQVBMXCJdfX0sbnVsbCw0KSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSk9Pntcblx0XHRcdFx0XHRpZiAodmFsdWUgPT09IFwiXCIpIHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzID0ge307XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyA9IEpTT04ucGFyc2UodmFsdWUpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLnJlZGlyZWN0TGFuZ3VhZ2VzKCk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIkludmFsaWQgSlNPTlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgUmUtcmVuZGVyIChUZXN0KVxuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoM1wiLCB7dGV4dDogXCJJbmxpbmUgQ29kZSBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU3ludGF4IEhpZ2hsaWdodCBJbmxpbmUgQ29kZVwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBpbiByZWFkaW5nIG1vZGUsIGlubGluZSBjb2RlIHdpbGwgYmUgc3ludGF4IGhpZ2hsaWdodGVkIGJhc2VkIG9uIGEgbGFuZ3VhZ2Ugc2V0IHdpdGggYHtsYW5ndWFnZX0gaGlnaGxpZ2h0ZWRfaW5saW5lX2NvZGVgLiBTZWUgdGhlIFJFQURNRSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpOyAgICBcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTdHlsZSBJbmxpbmUgQ29kZVwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBpbmxpbmUgY29kZSB3aWxsIGJlIHN0eWxlZC5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3R5bGUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlSW5saW5lQ29kZVN0eWxlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVJbmxpbmVDb2RlU3R5bGVTZXR0aW5ncygpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVGl0bGUgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRoZSB0ZXh0IGNvbG91ciBvZiBpbmxpbmUgY29kZSB0aXRsZXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcInRpdGxlX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUudGl0bGVUZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50aXRsZVRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVGl0bGUgRm9udCBXZWlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgYm9sZCBpbmxpbmUgY29kZSB0aXRsZXMgYXBwZWFyLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDEsOSwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHdlaWdodFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQ7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0KTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVJbmxpbmVDb2RlU3R5bGVTZXR0aW5ncygpIHtcblx0XHR0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3R5bGUpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBCYWNrZ3JvdW5kIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJpbmxpbmVfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIFRleHQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImlubGluZV90ZXh0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgQWN0aXZlIFRleHQgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRoZSB0ZXh0IGNvbG91ciB3aGVuIGVkaXRpbmcgaW5saW5lIGNvZGUuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImlubGluZV9hY3RpdmVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS5hY3RpdmVUZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS5hY3RpdmVUZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEZvbnQgV2VpZ2h0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IGJvbGQgaW5saW5lIGNvZGUgYXBwZWFycy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygxLDksMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0KVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHdlaWdodFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0KTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBDdXJ2YXR1cmVcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgcm91bmRlZCBpbmxpbmUgY29kZSBhcHBlYXIgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMTIsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY3VydmF0dXJlXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIFZlcnRpY2FsIFBhZGRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgbXVjaCB2ZXJ0aWNhbCBpbm5lciBwYWRkaW5nIGluIHBpeGVscyBpbmxpbmUgY29kZSBoYXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCB2ZXJ0aWNhbCBwYWRkaW5nXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWwgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWwpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEhvcml6b250YWwgUGFkZGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIGhvcml6b250YWwgaW5uZXIgcGFkZGluZyBpbiBwaXhlbHMgaW5saW5lIGNvZGUgaGFzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMTAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGhvcml6b250YWwgcGFkZGluZ1wiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBIb3Jpem9udGFsIE1hcmdpblwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIGhvcml6b250YWwgb3V0ZXIgbWFyZ2luIGlzIGFkZGVkIHRvIHRoZSBpbmxpbmUgY29kZSBpbiBwaXhlbHMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCw4LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgaG9yaXpvbnRhbCBtYXJnaW5cIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLm1hcmdpbkhvcml6b250YWwgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLm1hcmdpbkhvcml6b250YWw7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlQWR2YW5jZWRIZWFkaW5nKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnN0IGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nID0gY29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7dGV4dDogXCJBZHZhbmNlZCBTZXR0aW5nc1wiLCBjbHM6IGBhZHZhbmNlZC1zZXR0aW5ncy1oZWFkZXIke3RoaXMuaGlkZUFkdmFuY2VkP1wiIGhlYWRlci1mb2xkZWRcIjpcIlwifWB9KTtcblx0XHRhZHZhbmNlZFNldHRpbmdzSGVhZGluZy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwoKT0+e1xuXHRcdFx0dGhpcy5oaWRlQWR2YW5jZWQgPSAhdGhpcy5oaWRlQWR2YW5jZWQ7XG5cdFx0XHRhZHZhbmNlZFNldHRpbmdzSGVhZGluZy5jbGFzc0xpc3QudG9nZ2xlKFwiaGVhZGVyLWZvbGRlZFwiLHRoaXMuaGlkZUFkdmFuY2VkKTtcblx0XHRcdHRoaXMuZ2VuZXJhdGVBZHZhbmNlZFNldHRpbmdzKCk7XG5cdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVBZHZhbmNlZFNldHRpbmdzKCkge1xuXHRcdHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLmhpZGVBZHZhbmNlZClcblx0XHRcdHJldHVybjtcblx0XHR0aGlzLmdlbmVyYXRlSW50ZXJmYWNlU2V0dGluZ3ModGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkVkaXRvciBBY3RpdmUgTGluZSBIaWdobGlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyB0aGUgYWN0aXZlIGxpbmUgb3V0c2lkZSBjb2RlYmxvY2tzLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc3BhY2VkXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgZWRpdG9yIGFjdGl2ZSBsaW5lIGhpZ2hsaWdodGluZ1wiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImVkaXRvckFjdGl2ZUxpbmVIaWdobGlnaHRcIl0uZm9yRWFjaChjb21wb25lbnQgPT4ge2NvbXBvbmVudC5zZXREaXNhYmxlZCghdmFsdWUpO30pO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJlZGl0b3JfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZUNvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0KCkgPT4gIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUsXG5cdFx0XHQpO30pO1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZWRpdG9yQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5wdXNoKHRoaXMucGlja3JzW1wiZWRpdG9yX2FjdGl2ZV9saW5lX2hpZ2hsaWdodFwiXS5yZXNldEJ1dHRvbik7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJSZXNldCBpbmJ1aWx0IHRoZW1lc1wiKVxuXHRcdFx0LnNldERlc2MoXCJUaGlzIHdpbGwgcmV0dXJuIGFsbCBpbmJ1aWx0IHRoZW1lcyB0byB0aGUgcGx1Z2luIGRlZmF1bHRzXCIpXG5cdFx0XHQuYWRkQnV0dG9uKGJ1dHRvbiA9PiBidXR0b25cblx0XHRcdFx0LnNldEJ1dHRvblRleHQoXCJSZXNldFwiKVxuXHRcdFx0XHQub25DbGljaygoKT0+e1xuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKElOQlVJTFRfVEhFTUVTKS5mb3JFYWNoKChbdGhlbWVOYW1lLHRoZW1lXTogW3N0cmluZyxDb2RlU3R5bGVyVGhlbWVdKSA9PiB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhlbWVOYW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGVtZSkpO1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lIGluIElOQlVJTFRfVEhFTUVTKVxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUludGVyZmFjZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJCdXR0b24gQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlVzZWQgZm9yIFVJIGJ1dHRvbnMgbGlrZSB0aGUgY29weSBjb2RlIGJ1dHRvbi5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJkZWZhdWx0X2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25Db2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJCdXR0b24gQWN0aXZlIENvbG91clwiKVxuXHRcdFx0LnNldERlc2MoXCJDb2xvdXIgYnV0dG9ucyB1c2Ugd2hlbiBhY3RpdmF0ZWQuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiZGVmYXVsdF9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25BY3RpdmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uYWR2YW5jZWQuYnV0dG9uQWN0aXZlQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0fVxuXHRnZW5lcmF0ZVBsdWdpbkNvbXBhdGliaWxpdHlTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVTcGFuKFwiTmVlZHMgY29tcGxldGluZ1wiKTsgLy9UT0RPIChAbWF5dXJhbmt2KSBDb21wbGV0ZVxuXHRcdC8vIEV4ZWN1dGUgQ29kZSBTZXR0aW5nc1xuXHR9XG5cdGdlbmVyYXRlRXhhbXBsZUNvZGVibG9ja1NldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFeGFtcGxlIENvZGVibG9jayBQYXJhbWV0ZXIgU3RyaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlBhcmFtZXRlcnMgYW5kIGxhbmd1YWdlIHdoaWNoIHdvdWxkIGZvbGxvdyBjb2RlYmxvY2sgZGVsaW1pdGVyLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LXdpZGVcIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tQYXJhbWV0ZXJzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrKCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRXhhbXBsZSBDb2RlYmxvY2sgUGFyYW1ldGVyIFN0cmluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJDb250ZW50IGZvciBleGFtcGxlIGNvZGVibG9jay5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC1hcmVhXCIpXG5cdFx0XHQuYWRkVGV4dEFyZWEodGV4dEFyZWEgPT4gdGV4dEFyZWFcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tDb250ZW50KVxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRVhBTVBMRV9DT0RFQkxPQ0tfQ09OVEVOVClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSk9Pntcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlQ29kZWJsb2NrQ29udGVudCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpIHtcblx0XHR0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIuZW1wdHkoKTtcblx0XHRjb25zdCBjb2RlYmxvY2tTdHJpbmcgPSBcImBgYGBgYGBcIit0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVycytcIlxcblwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tDb250ZW50K1wiXFxuYGBgYGBgYFwiO1xuXHRcdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHRoaXMucGx1Z2luLmFwcCxjb2RlYmxvY2tTdHJpbmcsdGhpcy5leGFtcGxlQ29kZWJsb2NrQ29udGFpbmVyLFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYK2NvZGVibG9ja1N0cmluZyxuZXcgQ29tcG9uZW50KCkpO1xuXHRcdHRoaXMuZXhhbXBsZUNvZGVibG9ja0NvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwicHJlID4gYnV0dG9uLmNvcHktY29kZS1idXR0b25cIik/LmNsYXNzTGlzdD8uYWRkKFwiY29kZS1zdHlsZXItc2V0dGluZ3MtYnV0dG9uXCIpO1xuXHR9XG5cdGdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgRXhhbXBsZVwiKVxuXHRcdFx0LnNldERlc2MoXCJUZXh0IHRvIHJlbmRlciBhcyBleGFtcGxlIGluc2lkZSBjb2RlIGRlbGltaXRlcnMuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtd2lkZVwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihFWEFNUExFX0lOTElORV9DT0RFKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUlubGluZUNvZGUpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlSW5saW5lQ29kZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVJbmxpbmVDb2RlKCk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUV4YW1wbGVJbmxpbmVDb2RlKCkge1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIuZW1wdHkoKTtcblx0XHRNYXJrZG93blJlbmRlcmVyLnJlbmRlcih0aGlzLnBsdWdpbi5hcHAsXCJgXCIrdGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUlubGluZUNvZGUrXCJgXCIsdGhpcy5leGFtcGxlSW5saW5lQ29kZUNvbnRhaW5lcixTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCxuZXcgQ29tcG9uZW50KCkpO1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIucXVlcnlTZWxlY3RvcihcImNvZGVcIik/LmNsYXNzTGlzdD8uYWRkKFwiY29kZS1zdHlsZXItc2V0dGluZ3MtaW5saW5lLWNvZGVcIik7XG5cdH1cblx0Z2VuZXJhdGVEb25hdGlvbkZvb3Rlcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImhyXCIpO1xuXHRcdGNvbnN0IGRvbmF0aW9uRGl2ID0gY29udGFpbmVyRWwuY3JlYXRlRWwoXCJkaXZcIiwgeyBjbHM6IFwiY29kZS1zdHlsZXItZG9uYXRpb25cIiwgfSk7ICAgIFxuXHRcdGNvbnN0IGRvbmF0aW9uVGV4dCA9IGNyZWF0ZUVsKFwicFwiLCB7dGV4dDogXCJJZiB5b3UgbGlrZSB0aGlzIHBsdWdpbiwgYW5kIHdvdWxkIGxpa2UgdG8gaGVscCBzdXBwb3J0IGNvbnRpbnVlZCBkZXZlbG9wbWVudCwgdXNlIHRoZSBidXR0b24gYmVsb3chXCJ9KTtcblx0XHRkb25hdGlvbkRpdi5hcHBlbmRDaGlsZChkb25hdGlvblRleHQpO1xuXHRcdGNvbnN0IGRvbmF0aW9uQnV0dG9uID0gY3JlYXRlRWwoXCJhXCIsIHsgaHJlZjogXCJodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL21heXVyYW5rdjJcIn0pO1xuXHRcdGRvbmF0aW9uQnV0dG9uLmlubmVySFRNTCA9IFwiPGltZyBzcmM9XFxcImh0dHBzOi8vaW1nLmJ1eW1lYWNvZmZlZS5jb20vYnV0dG9uLWFwaS8/dGV4dD1CdXkgbWUgYSBjb2ZmZWUmZW1vamk9JnNsdWc9bWF5dXJhbmt2MiZidXR0b25fY29sb3VyPWUzZTdlZmEwJmZvbnRfY29sb3VyPTI2MjYyNiZmb250X2ZhbWlseT1JbnRlciZvdXRsaW5lX2NvbG91cj0yNjI2MjYmY29mZmVlX2NvbG91cj1hMDUyMmRcXFwiIGhlaWdodD1cXFwiNDJweFxcXCI+XCI7XG5cdFx0ZG9uYXRpb25EaXYuYXBwZW5kQ2hpbGQoZG9uYXRpb25CdXR0b24pO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIFNldHRpbmdzXG5cdGNyZWF0ZVBpY2tyKHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50LCBzZXR0aW5nOiBTZXR0aW5nLCBpZDogc3RyaW5nLCBnZXRSZWxldmFudFRoZW1lQ29sb3VyOiAocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpPT5Db2xvdXIsIHNhdmVSZWxldmFudFRoZW1lQ29sb3VyOiAocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cik9PnZvaWQsIGRpc2FibGVkPzogKCk9PmJvb2xlYW4pIHtcblx0XHRjb25zdCBwaWNrcjogUGlja3JSZXNldHRhYmxlID0gbmV3IFBpY2tyUmVzZXR0YWJsZShwbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxnZXRSZWxldmFudFRoZW1lQ29sb3VyLHNhdmVSZWxldmFudFRoZW1lQ29sb3VyKTtcblx0XHRwaWNrclxuXHRcdFx0Lm9uKFwic2hvd1wiLCAoY29sb3VyOiBQaWNrci5IU1ZhQ29sb3IsIGluc3RhbmNlOiBQaWNrcikgPT4ge1xuXHRcdFx0XHRpZiAodHlwZW9mIGRpc2FibGVkICE9PSBcInVuZGVmaW5lZFwiICYmIGRpc2FibGVkKCkpXG5cdFx0XHRcdFx0aW5zdGFuY2UuaGlkZSgpO1xuXHRcdFx0XHQvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IChpbnN0YW5jZS5nZXRSb290KCkgYXMgYW55KS5pbnRlcmFjdGlvbi5yZXN1bHQuc2VsZWN0KCkpKVxuXHRcdFx0fSlcblx0XHRcdC5vbihcInNhdmVcIiwgKGNvbG91cjogUGlja3IuSFNWYUNvbG9yLCBpbnN0YW5jZTogUGlja3JSZXNldHRhYmxlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNhdmVkQ29sb3VyOiBDb2xvdXIgPSBgIyR7Y29sb3VyLnRvSEVYQSgpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDEpfWA7XG5cdFx0XHRcdGluc3RhbmNlLmhpZGUoKTtcblx0XHRcdFx0aW5zdGFuY2UuYWRkU3dhdGNoKHNhdmVkQ29sb3VyKTtcblx0XHRcdFx0aW5zdGFuY2Uuc2F2ZUNvbG91cihzYXZlZENvbG91cik7XG5cdFx0XHR9KVxuXHRcdFx0Lm9uKFwiY2FuY2VsXCIsIChpbnN0YW5jZTogUGlja3JSZXNldHRhYmxlKSA9PiB7aW5zdGFuY2UuaGlkZSgpO30pO1xuXHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge3BpY2tyLnJlc2V0QnV0dG9uID0gYnV0dG9uXG5cdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHQuc2V0RGlzYWJsZWQodHlwZW9mIGRpc2FibGVkICE9PSBcInVuZGVmaW5lZFwiICYmIGRpc2FibGVkKCkpXG5cdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXJcIilcblx0XHRcdC5vbkNsaWNrKCgpID0+IHtwaWNrci5yZXNldENvbG91cigpO30pO1xuXHRcdH0pO1xuXHRcdHRoaXMucGlja3JzW2lkXT1waWNrcjtcblx0fVxuXHRcblx0Ly8gVXBkYXRlIFNldHRpbmdzXG5cdHNhdmVTZXR0aW5ncyhyZXJlbmRlcjogYm9vbGVhbj1mYWxzZSkge1xuXHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRpZiAocmVyZW5kZXIpXG5cdFx0XHR0aGlzLnJlcmVuZGVyKCk7XG5cdH1cblx0cmVyZW5kZXIoKSB7XG5cdFx0dGhpcy5wbHVnaW4ucmVuZGVyUmVhZGluZ1ZpZXcoKTtcblx0XHRpZiAodGhpcy5wYWdlID09PSBcImNvZGVibG9ja1wiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRlbHNlIGlmICh0aGlzLnBhZ2UgPT09IFwiaW5saW5lXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKTtcblx0fVxuXHR1cGRhdGVEcm9wZG93bihkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQsIHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpIHtcblx0XHRkcm9wZG93bi5zZWxlY3RFbC5lbXB0eSgpO1xuXHRcdE9iamVjdC5rZXlzKHNldHRpbmdzLnRoZW1lcykuZm9yRWFjaCgodGhlbWVfbmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRkcm9wZG93bi5hZGRPcHRpb24odGhlbWVfbmFtZSwgdGhlbWVfbmFtZSk7ICAgICAgICAgICAgXG5cdFx0fSk7XG5cdFx0ZHJvcGRvd24uc2V0VmFsdWUoc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSk7XG5cdH1cblx0dXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKCkge1xuXHRcdGlmICh0aGlzLnBhZ2UgIT09IFwiY29kZWJsb2NrXCIgfHwgdGhpcy5jb2RlYmxvY2tQYWdlICE9PSBcImhpZ2hsaWdodFwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdHRoaXMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0T2JqZWN0LmtleXModGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLmZvckVhY2goKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSkgPT4ge1xuXHRcdFx0bmV3IFNldHRpbmcodGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIpXG5cdFx0XHRcdC5zZXROYW1lKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSlcblx0XHRcdFx0LnNldERlc2MoYFRvIGhpZ2hsaWdodCBsaW5lcyB3aXRoIHRoaXMgaGlnaGxpZ2h0LCB1c2UgdGhlICR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfSBwYXJhbWV0ZXIuYClcblx0XHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XHRcdGBhbHRlcm5hdGl2ZV9oaWdobGlnaHRfJHthbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWV9YCxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lIGluIHJlbGV2YW50VGhlbWVDb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzP3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZV06dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdFx0LnNldEljb24oXCJ0cmFzaFwiKVxuXHRcdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJEZWxldGUgaGlnaGxpZ2h0XCIpXG5cdFx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMuZGFyay5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKGBSZW1vdmVkIGhpZ2hsaWdodCBcIiR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfVwiLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXHRyZWRpcmVjdExhbmd1YWdlcygpIHtcblx0XHRPYmplY3QuZW50cmllcyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcykuZm9yRWFjaCgoW2xhbmd1YWdlTmFtZSwgbGFuZ3VhZ2VTZXR0aW5nc106IFtzdHJpbmcsIHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9XSk9Pntcblx0XHRcdGlmIChcImljb25cIiBpbiBsYW5ndWFnZVNldHRpbmdzKSB7XG5cdFx0XHRcdGlmIChMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdIGluIHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpXG5cdFx0XHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLnBsdWdpbi5sYW5ndWFnZUljb25zW0xBTkdVQUdFX05BTUVTW2xhbmd1YWdlTmFtZV1dKTtcblx0XHRcdFx0dGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29uc1tMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdXSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtsYW5ndWFnZVNldHRpbmdzLmljb259PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG5cbi8vIEV4dGVuZCBQaWNrciBDbGFzc1xuY2xhc3MgUGlja3JSZXNldHRhYmxlIGV4dGVuZHMgUGlja3Ige1xuXHRzYXZlQ29sb3VyOiAoc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZDtcblx0cmVzZXRDb2xvdXI6ICgpPT52b2lkO1xuXHRnZXRDdXJyZW50Q29sb3VyOiAoYWNjZXNzVGhlbWU6IGJvb2xlYW4pPT52b2lkO1xuXHRyZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cblx0Y29uc3RydWN0b3IocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIHNldHRpbmc6IFNldHRpbmcsIGdldFJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycyk9PkNvbG91ciwgc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZCwgdG9vbHRpcD86IHN0cmluZykge1xuXHRcdGNvbnN0IHNldHRpbmdzOiBQaWNrci5PcHRpb25zID0ge1xuXHRcdFx0ZWw6IHNldHRpbmcuY29udHJvbEVsLmNyZWF0ZURpdih7Y2xzOiBcInBpY2tlclwifSksXG5cdFx0XHR0aGVtZTogXCJuYW5vXCIsXG5cdFx0XHRkZWZhdWx0OiBnZXRDb2xvdXIoZ2V0UmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpKSxcblx0XHRcdHBvc2l0aW9uOiBcImxlZnQtbWlkZGxlXCIsXG5cdFx0XHRsb2NrT3BhY2l0eTogZmFsc2UsXG5cdFx0XHRjb21wb25lbnRzOiB7XG5cdFx0XHRcdHByZXZpZXc6IHRydWUsXG5cdFx0XHRcdGh1ZTogdHJ1ZSxcblx0XHRcdFx0b3BhY2l0eTogdHJ1ZSxcblx0XHRcdFx0aW50ZXJhY3Rpb246IHtcblx0XHRcdFx0XHRoZXg6IHRydWUsXG5cdFx0XHRcdFx0cmdiYTogdHJ1ZSxcblx0XHRcdFx0XHRoc2xhOiBmYWxzZSxcblx0XHRcdFx0XHRpbnB1dDogdHJ1ZSxcblx0XHRcdFx0XHRjYW5jZWw6IHRydWUsXG5cdFx0XHRcdFx0c2F2ZTogdHJ1ZSxcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0XHRpMThuOiB7XG5cdFx0XHRcdFwidWk6ZGlhbG9nXCI6IFwiQ29sb3VyIHBpY2tlciBkaWFsb2dcIixcblx0XHRcdFx0XCJidG46dG9nZ2xlXCI6ICh0eXBlb2YgdG9vbHRpcCAhPT0gXCJ1bmRlZmluZWRcIik/dG9vbHRpcDpcIlNlbGVjdCBjb2xvdXJcIixcblx0XHRcdFx0XCJidG46c3dhdGNoXCI6IFwiQ29sb3VyIHN3YXRjaFwiLFxuXHRcdFx0XHRcImJ0bjpsYXN0LWNvbG9yXCI6IFwiVXNlIHByZXZpb3VzIGNvbG91clwiLFxuXHRcdFx0fVxuXHRcdH07XG5cdFx0aWYgKGNvbnRhaW5lckVsLnBhcmVudEVsZW1lbnQgIT09IG51bGwpXG5cdFx0XHRzZXR0aW5ncy5jb250YWluZXIgPSBjb250YWluZXJFbC5wYXJlbnRFbGVtZW50O1xuXHRcdHN1cGVyKHNldHRpbmdzKTtcblx0XHR0aGlzLnNhdmVDb2xvdXIgPSAoc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7XG5cdFx0XHRzYXZlUmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMsc2F2ZUNvbG91cik7XG5cdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdH07XG5cdFx0dGhpcy5yZXNldENvbG91ciA9ICgpID0+IHtcblx0XHRcdGNvbnN0IHJlc2V0Q29sb3VyOiBDb2xvdXIgPSBnZXRSZWxldmFudFRoZW1lQ29sb3VyKHBsdWdpbi5zZXR0aW5ncy50aGVtZXNbcGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLmNvbG91cnMpO1xuXHRcdFx0dGhpcy5zZXRDb2xvcihnZXRDb2xvdXIocmVzZXRDb2xvdXIpKTtcblx0XHRcdHRoaXMuc2F2ZUNvbG91cihyZXNldENvbG91cik7XG5cdFx0fTtcblx0fVxufVxuXG4vLyBDb2xvdXIgTWFuYWdlbWVudFxuZnVuY3Rpb24gZ2V0UmFuZG9tQ29sb3VyKCk6IENvbG91ciB7XG5cdGNvbnN0IGxldHRlcnMgPSBcIjAxMjM0NTY3ODlBQkNERUZcIjtcblx0bGV0IGNvbG91ciA9IFwiXCI7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKVxuXHRcdGNvbG91ciArPSBsZXR0ZXJzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KV07XG5cdHJldHVybiBgIyR7Y29sb3VyfUZGYDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xvdXIodGhlbWVDb2xvdXI6IENvbG91cik6IENvbG91ciB7XG5cdHJldHVybiBpc0Nzcyh0aGVtZUNvbG91cik/Z2V0Q3NzVmFyaWFibGUodGhlbWVDb2xvdXIpOnRoZW1lQ29sb3VyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3NzKHBvc3NpYmxlQ3NzOiBzdHJpbmcpOiBwb3NzaWJsZUNzcyBpcyBDU1Mge1xuXHRyZXR1cm4gcG9zc2libGVDc3Muc3RhcnRzV2l0aChcIi0tXCIpICYmIHR5cGVvZiBwb3NzaWJsZUNzcyA9PT0gXCJzdHJpbmdcIjtcbn1cbmZ1bmN0aW9uIGdldENzc1ZhcmlhYmxlKGNzc1ZhcmlhYmxlOiBDU1MpOiBIRVgge1xuXHRjb25zdCB2YXJpYWJsZVZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZShjc3NWYXJpYWJsZSkudHJpbSgpO1xuXHRpZiAodHlwZW9mIHZhcmlhYmxlVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFyaWFibGVWYWx1ZS5zdGFydHNXaXRoKFwiI1wiKSlcblx0XHRyZXR1cm4gYCMke3ZhcmlhYmxlVmFsdWUudHJpbSgpLnN1YnN0cmluZygxKX1gO1xuXHRlbHNlIGlmICh2YXJpYWJsZVZhbHVlLnN0YXJ0c1dpdGgoXCJyZ2JcIikpXG5cdFx0cmV0dXJuIGAjJHtDb2xvclRyYW5zbGF0b3IudG9IRVhBKHZhcmlhYmxlVmFsdWUucmVwbGFjZSgvY2FsY1xcKCguKj8pXFwpL2csKG1hdGNoLGNhcHR1cmUpPT5jYWxjKGNhcHR1cmUpKSkuc3Vic3RyaW5nKDEpfWA7XG5cdGVsc2UgaWYgKHZhcmlhYmxlVmFsdWUuc3RhcnRzV2l0aChcImhzbFwiKSlcblx0XHRyZXR1cm4gYCMke0NvbG9yVHJhbnNsYXRvci50b0hFWEEodmFyaWFibGVWYWx1ZS5yZXBsYWNlKC9jYWxjXFwoKC4qPylcXCkvZywobWF0Y2gsY2FwdHVyZSk9PmNhbGMoY2FwdHVyZSkpKS5zdWJzdHJpbmcoMSl9YDtcblx0ZWxzZVxuXHRcdGNvbnNvbGUud2FybihgV2FybmluZzogQ291bGRuJ3QgZGV0ZXJtaW5lIGNvbG91ciBmb3JtYXQgLSAke3ZhcmlhYmxlVmFsdWV9YCk7XG5cdHJldHVybiBgIyR7Q29sb3JUcmFuc2xhdG9yLnRvSEVYQSh2YXJpYWJsZVZhbHVlKS5zdWJzdHJpbmcoMSl9YDtcbn1cbmZ1bmN0aW9uIGNhbGMoY2FsY1N0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgc3BsaXRTdHJpbmcgPSBjYWxjU3RyaW5nLnRyaW0oKS5yZXBsYWNlKC8oXFxkKiklL2csXCIkMVwiKS5zcGxpdChcIiBcIik7XG5cdGNvbnN0IG9wZXJhdG9yczoge1trZXk6IHN0cmluZ106IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpID0+IG51bWJlcn0gPSB7XG5cdFx0XCIrXCI6IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xK251bTIsMCksXG5cdFx0XCItXCI6IChudW0xOm51bWJlciAsbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xLW51bTIsMCksXG5cdH07XG5cdGlmIChzcGxpdFN0cmluZy5sZW5ndGggPT09IDMpXG5cdFx0aWYgKHNwbGl0U3RyaW5nWzFdIGluIG9wZXJhdG9ycylcblx0XHRcdHJldHVybiBgJHtvcGVyYXRvcnNbc3BsaXRTdHJpbmdbMV1dKHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMF0pLHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMl0pKX0lYDtcblx0XG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IHBhcnNlIGNhbGMgc3RyaW5nXCIpO1xuXHRyZXR1cm4gY2FsY1N0cmluZztcbn1cblxuLy8gRmV0Y2ggU2V0dGluZ3NcbmZ1bmN0aW9uIGdldEN1cnJlbnRNb2RlKCkge1xuXHRjb25zdCBib2R5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImJvZHlcIik7XG5cdGlmIChib2R5ICE9PSBudWxsKXtcblx0XHRpZiAoYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1saWdodFwiKSlcblx0XHRcdHJldHVybiBcImxpZ2h0XCI7XG5cdFx0ZWxzZSBpZiAoYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1kYXJrXCIpKVxuXHRcdFx0cmV0dXJuIFwiZGFya1wiO1xuXHR9XG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IGdldCBjdXJyZW50IHRoZW1lXCIpO1xuXHRyZXR1cm4gXCJsaWdodFwiO1xufVxuIiwgInZhciB0PWZ1bmN0aW9uKCl7cmV0dXJuIHQ9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pO3JldHVybiB0fSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gZSh0LGUsbil7aWYobnx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciByLGk9MCxvPWUubGVuZ3RoO2k8bztpKyspIXImJmkgaW4gZXx8KHJ8fChyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMCxpKSkscltpXT1lW2ldKTtyZXR1cm4gdC5jb25jYXQocnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpfXZhciBuLHIsaSxvOyFmdW5jdGlvbih0KXt0LkhFWD1cIkhFWFwiLHQuUkdCPVwiUkdCXCIsdC5IU0w9XCJIU0xcIix0LkNNWUs9XCJDTVlLXCJ9KG58fChuPXt9KSksZnVuY3Rpb24odCl7dC5BTkFMT0dPVVM9XCJBTkFMT0dPVVNcIix0LkNPTVBMRU1FTlRBUlk9XCJDT01QTEVNRU5UQVJZXCIsdC5TUExJVF9DT01QTEVNRU5UQVJZPVwiU1BMSVRfQ09NUExFTUVOVEFSWVwiLHQuVFJJQURJQz1cIlRSSUFESUNcIix0LlRFVFJBRElDPVwiVEVUUkFESUNcIix0LlNRVUFSRT1cIlNRVUFSRVwifShyfHwocj17fSkpLGZ1bmN0aW9uKHQpe3QuQURESVRJVkU9XCJBRERJVElWRVwiLHQuU1VCVFJBQ1RJVkU9XCJTVUJUUkFDVElWRVwifShpfHwoaT17fSkpLGZ1bmN0aW9uKHQpe3QuYmxhY2s9XCIjMDAwMDAwXCIsdC5zaWx2ZXI9XCIjQzBDMEMwXCIsdC5ncmF5PVwiIzgwODA4MFwiLHQud2hpdGU9XCIjRkZGRkZGXCIsdC5tYXJvb249XCIjODAwMDAwXCIsdC5yZWQ9XCIjRkYwMDAwXCIsdC5wdXJwbGU9XCIjODAwMDgwXCIsdC5mdWNoc2lhPVwiI0ZGMDBGRlwiLHQuZ3JlZW49XCIjMDA4MDAwXCIsdC5saW1lPVwiIzAwRkYwMFwiLHQub2xpdmU9XCIjODA4MDAwXCIsdC55ZWxsb3c9XCIjRkZGRjAwXCIsdC5uYXZ5PVwiIzAwMDA4MFwiLHQuYmx1ZT1cIiMwMDAwRkZcIix0LnRlYWw9XCIjMDA4MDgwXCIsdC5hcXVhPVwiIzAwRkZGRlwiLHQub3JhbmdlPVwiI0ZGQTUwMFwiLHQuYWxpY2VibHVlPVwiI0YwRjhGRlwiLHQuYW50aXF1ZXdoaXRlPVwiI0ZBRUJEN1wiLHQuYXF1YW1hcmluZT1cIiM3RkZGRDRcIix0LmF6dXJlPVwiI0YwRkZGRlwiLHQuYmVpZ2U9XCIjRjVGNURDXCIsdC5iaXNxdWU9XCIjRkZFNEM0XCIsdC5ibGFuY2hlZGFsbW9uZD1cIiNGRkVCQ0RcIix0LmJsdWV2aW9sZXQ9XCIjOEEyQkUyXCIsdC5icm93bj1cIiNBNTJBMkFcIix0LmJ1cmx5d29vZD1cIiNERUI4ODdcIix0LmNhZGV0Ymx1ZT1cIiM1RjlFQTBcIix0LmNoYXJ0cmV1c2U9XCIjN0ZGRjAwXCIsdC5jaG9jb2xhdGU9XCIjRDI2OTFFXCIsdC5jb3JhbD1cIiNGRjdGNTBcIix0LmNvcm5mbG93ZXJibHVlPVwiIzY0OTVFRFwiLHQuY29ybnNpbGs9XCIjRkZGOERDXCIsdC5jcmltc29uPVwiI0RDMTQzQ1wiLHQuY3lhbj1cIiMwMEZGRkZcIix0LmRhcmtibHVlPVwiIzAwMDA4QlwiLHQuZGFya2N5YW49XCIjMDA4QjhCXCIsdC5kYXJrZ29sZGVucm9kPVwiI0I4ODYwQlwiLHQuZGFya2dyYXk9XCIjQTlBOUE5XCIsdC5kYXJrZ3JlZW49XCIjMDA2NDAwXCIsdC5kYXJrZ3JleT1cIiNBOUE5QTlcIix0LmRhcmtraGFraT1cIiNCREI3NkJcIix0LmRhcmttYWdlbnRhPVwiIzhCMDA4QlwiLHQuZGFya29saXZlZ3JlZW49XCIjNTU2QjJGXCIsdC5kYXJrb3JhbmdlPVwiI0ZGOEMwMFwiLHQuZGFya29yY2hpZD1cIiM5OTMyQ0NcIix0LmRhcmtyZWQ9XCIjOEIwMDAwXCIsdC5kYXJrc2FsbW9uPVwiI0U5OTY3QVwiLHQuZGFya3NlYWdyZWVuPVwiIzhGQkM4RlwiLHQuZGFya3NsYXRlYmx1ZT1cIiM0ODNEOEJcIix0LmRhcmtzbGF0ZWdyYXk9XCIjMkY0RjRGXCIsdC5kYXJrc2xhdGVncmV5PVwiIzJGNEY0RlwiLHQuZGFya3R1cnF1b2lzZT1cIiMwMENFRDFcIix0LmRhcmt2aW9sZXQ9XCIjOTQwMEQzXCIsdC5kZWVwcGluaz1cIiNGRjE0OTNcIix0LmRlZXBza3libHVlPVwiIzAwQkZGRlwiLHQuZGltZ3JheT1cIiM2OTY5NjlcIix0LmRpbWdyZXk9XCIjNjk2OTY5XCIsdC5kb2RnZXJibHVlPVwiIzFFOTBGRlwiLHQuZmlyZWJyaWNrPVwiI0IyMjIyMlwiLHQuZmxvcmFsd2hpdGU9XCIjRkZGQUYwXCIsdC5mb3Jlc3RncmVlbj1cIiMyMjhCMjJcIix0LmdhaW5zYm9ybz1cIiNEQ0RDRENcIix0Lmdob3N0d2hpdGU9XCIjRjhGOEZGXCIsdC5nb2xkPVwiI0ZGRDcwMFwiLHQuZ29sZGVucm9kPVwiI0RBQTUyMFwiLHQuZ3JlZW55ZWxsb3c9XCIjQURGRjJGXCIsdC5ncmV5PVwiIzgwODA4MFwiLHQuaG9uZXlkZXc9XCIjRjBGRkYwXCIsdC5ob3RwaW5rPVwiI0ZGNjlCNFwiLHQuaW5kaWFucmVkPVwiI0NENUM1Q1wiLHQuaW5kaWdvPVwiIzRCMDA4MlwiLHQuaXZvcnk9XCIjRkZGRkYwXCIsdC5raGFraT1cIiNGMEU2OENcIix0LmxhdmVuZGVyPVwiI0U2RTZGQVwiLHQubGF2ZW5kZXJibHVzaD1cIiNGRkYwRjVcIix0Lmxhd25ncmVlbj1cIiM3Q0ZDMDBcIix0LmxlbW9uY2hpZmZvbj1cIiNGRkZBQ0RcIix0LmxpZ2h0Ymx1ZT1cIiNBREQ4RTZcIix0LmxpZ2h0Y29yYWw9XCIjRjA4MDgwXCIsdC5saWdodGN5YW49XCIjRTBGRkZGXCIsdC5saWdodGdvbGRlbnJvZHllbGxvdz1cIiNGQUZBRDJcIix0LmxpZ2h0Z3JheT1cIiNEM0QzRDNcIix0LmxpZ2h0Z3JlZW49XCIjOTBFRTkwXCIsdC5saWdodGdyZXk9XCIjRDNEM0QzXCIsdC5saWdodHBpbms9XCIjRkZCNkMxXCIsdC5saWdodHNhbG1vbj1cIiNGRkEwN0FcIix0LmxpZ2h0c2VhZ3JlZW49XCIjMjBCMkFBXCIsdC5saWdodHNreWJsdWU9XCIjODdDRUZBXCIsdC5saWdodHNsYXRlZ3JheT1cIiM3Nzg4OTlcIix0LmxpZ2h0c2xhdGVncmV5PVwiIzc3ODg5OVwiLHQubGlnaHRzdGVlbGJsdWU9XCIjQjBDNERFXCIsdC5saWdodHllbGxvdz1cIiNGRkZGRTBcIix0LmxpbWVncmVlbj1cIiMzMkNEMzJcIix0LmxpbmVuPVwiI0ZBRjBFNlwiLHQubWFnZW50YT1cIiNGRjAwRkZcIix0Lm1lZGl1bWFxdWFtYXJpbmU9XCIjNjZDREFBXCIsdC5tZWRpdW1ibHVlPVwiIzAwMDBDRFwiLHQubWVkaXVtb3JjaGlkPVwiI0JBNTVEM1wiLHQubWVkaXVtcHVycGxlPVwiIzkzNzBEQlwiLHQubWVkaXVtc2VhZ3JlZW49XCIjM0NCMzcxXCIsdC5tZWRpdW1zbGF0ZWJsdWU9XCIjN0I2OEVFXCIsdC5tZWRpdW1zcHJpbmdncmVlbj1cIiMwMEZBOUFcIix0Lm1lZGl1bXR1cnF1b2lzZT1cIiM0OEQxQ0NcIix0Lm1lZGl1bXZpb2xldHJlZD1cIiNDNzE1ODVcIix0Lm1pZG5pZ2h0Ymx1ZT1cIiMxOTE5NzBcIix0Lm1pbnRjcmVhbT1cIiNGNUZGRkFcIix0Lm1pc3R5cm9zZT1cIiNGRkU0RTFcIix0Lm1vY2Nhc2luPVwiI0ZGRTRCNVwiLHQubmF2YWpvd2hpdGU9XCIjRkZERUFEXCIsdC5vbGRsYWNlPVwiI0ZERjVFNlwiLHQub2xpdmVkcmFiPVwiIzZCOEUyM1wiLHQub3JhbmdlcmVkPVwiI0ZGNDUwMFwiLHQub3JjaGlkPVwiI0RBNzBENlwiLHQucGFsZWdvbGRlbnJvZD1cIiNFRUU4QUFcIix0LnBhbGVncmVlbj1cIiM5OEZCOThcIix0LnBhbGV0dXJxdW9pc2U9XCIjQUZFRUVFXCIsdC5wYWxldmlvbGV0cmVkPVwiI0RCNzA5M1wiLHQucGFwYXlhd2hpcD1cIiNGRkVGRDVcIix0LnBlYWNocHVmZj1cIiNGRkRBQjlcIix0LnBlcnU9XCIjQ0Q4NTNGXCIsdC5waW5rPVwiI0ZGQzBDQlwiLHQucGx1bT1cIiNEREEwRERcIix0LnBvd2RlcmJsdWU9XCIjQjBFMEU2XCIsdC5yb3N5YnJvd249XCIjQkM4RjhGXCIsdC5yb3lhbGJsdWU9XCIjNDE2OUUxXCIsdC5zYWRkbGVicm93bj1cIiM4QjQ1MTNcIix0LnNhbG1vbj1cIiNGQTgwNzJcIix0LnNhbmR5YnJvd249XCIjRjRBNDYwXCIsdC5zZWFncmVlbj1cIiMyRThCNTdcIix0LnNlYXNoZWxsPVwiI0ZGRjVFRVwiLHQuc2llbm5hPVwiI0EwNTIyRFwiLHQuc2t5Ymx1ZT1cIiM4N0NFRUJcIix0LnNsYXRlYmx1ZT1cIiM2QTVBQ0RcIix0LnNsYXRlZ3JheT1cIiM3MDgwOTBcIix0LnNsYXRlZ3JleT1cIiM3MDgwOTBcIix0LnNub3c9XCIjRkZGQUZBXCIsdC5zcHJpbmdncmVlbj1cIiMwMEZGN0ZcIix0LnN0ZWVsYmx1ZT1cIiM0NjgyQjRcIix0LnRhbj1cIiNEMkI0OENcIix0LnRoaXN0bGU9XCIjRDhCRkQ4XCIsdC50b21hdG89XCIjRkY2MzQ3XCIsdC50dXJxdW9pc2U9XCIjNDBFMEQwXCIsdC52aW9sZXQ9XCIjRUU4MkVFXCIsdC53aGVhdD1cIiNGNURFQjNcIix0LndoaXRlc21va2U9XCIjRjVGNUY1XCIsdC55ZWxsb3dncmVlbj1cIiM5QUNEMzJcIix0LnJlYmVjY2FwdXJwbGU9XCIjNjYzMzk5XCJ9KG98fChvPXt9KSk7dmFyIGEsYyx1PU9iamVjdC5rZXlzKG8pLHM9e0hFWDpbXCJyXCIsXCJnXCIsXCJiXCIsXCJhXCJdLFJHQjpbXCJyXCIsXCJnXCIsXCJiXCIsXCJhXCJdLEhTTDpbXCJoXCIsXCJzXCIsXCJsXCIsXCJhXCJdLENNWUs6W1wiY1wiLFwibVwiLFwieVwiLFwia1wiLFwiYVwiXX0sZD17QkdSOm4uUkdCLEFCR1I6bi5SR0IsSExTOm4uSFNMLEFITFM6bi5IU0wsQ0tNWTpuLkNNWUssQUNLTVk6bi5DTVlLfTshZnVuY3Rpb24odCl7dC5OVU1CRVI9XCJudW1iZXJcIix0LkJPT0xFQU49XCJib29sZWFuXCJ9KGF8fChhPXt9KSk7dmFyIGwsZixoLHA9KChjPXt9KVtuLkhFWF09L14jKD86KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKT98KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KT8pJC9pLGNbbi5SR0JdPS9ecmdiYT9cXHMqXFwoXFxzKig/OigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKD86XFxzKlxcL1xccyooKD86XFxkKlxcLik/XFxkKyU/KSk/KVxccypcXCkkLyxjW24uSFNMXT0vXmhzbGE/XFxzKlxcKFxccyooPzooLT8oPzpcXGQqXFwuKT9cXGQrKD86ZGVnfGdyYWR8cmFkfHR1cm4pPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyklXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCspJSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgtPyg/OlxcZCpcXC4pP1xcZCsoPzpkZWd8Z3JhZHxyYWR8dHVybik/KVxccyooKD86XFxkKlxcLik/XFxkKyklXFxzKigoPzpcXGQqXFwuKT9cXGQrKSUoPzpcXHMqXFwvXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKT8pXFxzKlxcKSQvLGNbbi5DTVlLXT0vXig/OmRldmljZS1jbXlrfGNteWspXFxzKlxcKFxccyooPzooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKD86XFxzKlxcL1xccyooKD86XFxkKlxcLik/XFxkKyU/KSk/KVxccypcXCkkLyxjKSxnPS9eKC0/KD86XFxkKlxcLik/XFxkKykoKD86ZGVnfGdyYWR8cmFkfHR1cm4pPykkLyxtPS9eKFxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKyklJC8sYj0vXjB4KFthLWZcXGRdezEsMn0pJC9pLEE9L1xceyhcXGQrKVxcfS9nLHk9LywoICt8XFxkKykvZyxFPS8gKy8sRj1cIlRoZSBwcm92aWRlZCBzdHJpbmcgY29sb3IgZG9lc24ndCBoYXZlIGEgY29ycmVjdCBmb3JtYXRcIix2PVwiVGhlIHByb3ZpZGVkIGNvbG9yIG9iamVjdCBkb2Vzbid0IGhhdmUgdGhlIHByb3BlciBrZXlzIG9yIGZvcm1hdFwiOyFmdW5jdGlvbih0KXt0Lk5PTkU9XCJub25lXCIsdC5ERUdSRUVTPVwiZGVnXCIsdC5HUkFESUFOUz1cImdyYWRcIix0LlJBRElBTlM9XCJyYWRcIix0LlRVUk5TPVwidHVyblwifShsfHwobD17fSkpLGZ1bmN0aW9uKHQpe3QuTk9ORT1cIm5vbmVcIix0LlBFUkNFTlQ9XCJwZXJjZW50XCJ9KGZ8fChmPXt9KSksZnVuY3Rpb24odCl7dC5ERVZJQ0VfQ01ZSz1cImRldmljZS1jbXlrXCIsdC5DTVlLPVwiY215a1wifShofHwoaD17fSkpO3ZhciBILEIsQyxTLFIsTSxEPXtkZWNpbWFsczo2LGxlZ2FjeUNTUzohMSxzcGFjZXNBZnRlckNvbW1hczohMSxhbmdsZXNVbml0OmwuTk9ORSxyZ2JVbml0OmYuTk9ORSxjbXlrVW5pdDpmLlBFUkNFTlQsYWxwaGFVbml0OmYuTk9ORSxjbXlrRnVuY3Rpb246aC5ERVZJQ0VfQ01ZS30sTz1mdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX0sTD1mdW5jdGlvbih0KXtyZXR1cm4rXCJcIi5jb25jYXQodCkucmVwbGFjZShtLFwiJDFcIil9LEc9ZnVuY3Rpb24odCl7cmV0dXJuIG0udGVzdChcIlwiLmNvbmNhdCh0KSk/TCh0KTpNYXRoLm1pbigrdCwxMDApfSxrPWZ1bmN0aW9uKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJih0Kz10KSxwYXJzZUludCh0LDE2KX0saj1mdW5jdGlvbih0KXt2YXIgZT1LKHQsMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIDE9PT1lLmxlbmd0aD9cIjB4MFwiLmNvbmNhdChlKTpcIjB4XCIuY29uY2F0KGUpfSxYPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSExKSwhZSYmbS50ZXN0KHQpP01hdGgubWluKDI1NSpMKHQpLzEwMCwyNTUpOmIudGVzdCh0KT8oMz09PXQubGVuZ3RoJiYodCs9dC5zbGljZSgtMSkpLGU/Syh0KS8yNTU6Syh0KSk6TWF0aC5taW4oK3QsZT8xOjI1NSl9LEk9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWluKG0udGVzdCh0KT9MKHQpLzEwMDordCwxKX0sWT1mdW5jdGlvbih0KXtyZXR1cm4gZShbXSx0LCEwKS5zb3J0KCkuam9pbihcIlwiKS50b1VwcGVyQ2FzZSgpfSxLPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9Nik7dmFyIG49TWF0aC5wb3coMTAsZSk7cmV0dXJuIE1hdGgucm91bmQoK3Qqbikvbn0sTj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgubWF4KGUsTWF0aC5taW4odCxuKSl9LFQ9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpe3ZhciBlPXQubWF0Y2goZyksbj0rZVsxXTtzd2l0Y2goZVsyXSl7Y2FzZSBsLlJBRElBTlM6dD1LKDE4MCpuL01hdGguUEkpO2JyZWFrO2Nhc2UgbC5UVVJOUzp0PUsoMzYwKm4pO2JyZWFrO2Nhc2UgbC5HUkFESUFOUzp0PUsoLjkqbik7YnJlYWs7Y2FzZSBsLkRFR1JFRVM6ZGVmYXVsdDp0PW59fXJldHVybih0PjM2MHx8dDwwKSYmKHQtPTM2MCpNYXRoLmZsb29yKHQvMzYwKSksdH0sUD1mdW5jdGlvbih0LGUpe3ZhciBuO3N3aXRjaChlKXtjYXNlIGwuUkFESUFOUzpuPUsoZnVuY3Rpb24odCl7cmV0dXJuIHQqTWF0aC5QSS8xODB9KHQpKTticmVhaztjYXNlIGwuVFVSTlM6bj1LKHQvMzYwKTticmVhaztjYXNlIGwuR1JBRElBTlM6bj1LKDEwLzkqdCk7YnJlYWs7Y2FzZSBsLkRFR1JFRVM6Y2FzZSBsLk5PTkU6ZGVmYXVsdDpuPXR9cmV0dXJuIG59LFU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07Zm9yKHZhciByPVtdLGk9W10sbz1bXSxjPVtdLHU9W10scz1PYmplY3QudmFsdWVzKGwpLGQ9T2JqZWN0LnZhbHVlcyhmKSxiPU9iamVjdC52YWx1ZXMoaCksQT17bGVnYWN5Q1NTOjAsc3BhY2VzQWZ0ZXJDb21tYXM6MCxjbXlrRnVuY3Rpb246MH0sRj0wLHY9ZTtGPHYubGVuZ3RoO0YrKyl7dmFyIEg9dltGXTtpZihcInN0cmluZ1wiPT10eXBlb2YgSCl7aWYoci5wdXNoKEgpLEguaW5jbHVkZXMoXCIsXCIpKXtBLmxlZ2FjeUNTUysrO3ZhciBCPUgubWF0Y2goeSk7MT09PW5ldyBTZXQoQikuc2l6ZSYmRS50ZXN0KEJbMF0uc2xpY2UoMSkpJiZBLnNwYWNlc0FmdGVyQ29tbWFzKyt9aWYoSC5tYXRjaChwLkhTTCkpe3ZhciBDPShrPUgubWF0Y2gocC5IU0wpKVsxXXx8a1s1XSxTPWtbOF0sUj1DLm1hdGNoKGcpWzJdO2kucHVzaChcIlwiPT09Uj9sLk5PTkU6UiksdS5wdXNoKG0udGVzdChTKSk7Y29udGludWV9aWYocC5SR0IudGVzdChIKSl7dmFyIE09KGs9SC5tYXRjaChwLlJHQikpWzFdfHxrWzVdLE89a1syXXx8a1s2XSxMPWtbM118fGtbN10sRz1rWzhdO28ucHVzaChtLnRlc3QoTSkmJm0udGVzdChPKSYmbS50ZXN0KEwpKSx1LnB1c2gobS50ZXN0KEcpKTtjb250aW51ZX1pZihILm1hdGNoKHAuQ01ZSykpe3ZhciBrLGo9KGs9SC5tYXRjaChwLkNNWUspKVsxXXx8a1s2XSxYPWtbMl18fGtbN10sST1rWzNdfHxrWzhdLFk9a1s0XXx8a1s5XTtHPWtbMTBdO2MucHVzaChtLnRlc3QoaikmJm0udGVzdChYKSYmbS50ZXN0KEkpJiZtLnRlc3QoWSkpLEguc3RhcnRzV2l0aChcImNteWtcIikmJkEuY215a0Z1bmN0aW9uKyssdS5wdXNoKG0udGVzdChHKSl9fX1yZXR1cm57ZGVjaW1hbHM6dHlwZW9mIHQuZGVjaW1hbHM9PT1hLk5VTUJFUj90LmRlY2ltYWxzOkQuZGVjaW1hbHMsbGVnYWN5Q1NTOnR5cGVvZiB0LmxlZ2FjeUNTUz09PWEuQk9PTEVBTj90LmxlZ2FjeUNTUzpCb29sZWFuKHIubGVuZ3RoJiZBLmxlZ2FjeUNTUz09PXIubGVuZ3RoKXx8RC5sZWdhY3lDU1Msc3BhY2VzQWZ0ZXJDb21tYXM6dHlwZW9mIHQuc3BhY2VzQWZ0ZXJDb21tYXM9PT1hLkJPT0xFQU4/dC5zcGFjZXNBZnRlckNvbW1hczpCb29sZWFuKHIubGVuZ3RoJiZBLnNwYWNlc0FmdGVyQ29tbWFzPT09ci5sZW5ndGgpfHxELnNwYWNlc0FmdGVyQ29tbWFzLGFuZ2xlc1VuaXQ6dC5hbmdsZXNVbml0JiZzLmluY2x1ZGVzKHQuYW5nbGVzVW5pdCk/dC5hbmdsZXNVbml0OjE9PT1uZXcgU2V0KGkpLnNpemU/aVswXTpELmFuZ2xlc1VuaXQscmdiVW5pdDp0LnJnYlVuaXQmJmQuaW5jbHVkZXModC5yZ2JVbml0KT90LnJnYlVuaXQ6MT09PW5ldyBTZXQobykuc2l6ZSYmb1swXT9mLlBFUkNFTlQ6RC5yZ2JVbml0LGNteWtVbml0OnQuY215a1VuaXQmJmQuaW5jbHVkZXModC5jbXlrVW5pdCk/dC5jbXlrVW5pdDoxIT09bmV3IFNldChjKS5zaXplfHxjWzBdP0QuY215a1VuaXQ6Zi5OT05FLGFscGhhVW5pdDp0LmFscGhhVW5pdCYmZC5pbmNsdWRlcyh0LmFscGhhVW5pdCk/dC5hbHBoYVVuaXQ6MT09PW5ldyBTZXQodSkuc2l6ZSYmdVswXT9mLlBFUkNFTlQ6RC5hbHBoYVVuaXQsY215a0Z1bmN0aW9uOnQuY215a0Z1bmN0aW9uJiZiLmluY2x1ZGVzKHQuY215a0Z1bmN0aW9uKT90LmNteWtGdW5jdGlvbjpjLmxlbmd0aCYmYy5sZW5ndGg9PT1BLmNteWtGdW5jdGlvbj9oLkNNWUs6RC5jbXlrRnVuY3Rpb259fSx3PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbjwwJiYobis9Niksbj49NiYmKG4tPTYpLEsobjwxPzI1NSooKGUtdCkqbit0KTpuPDM/MjU1KmU6bjw0PzI1NSooKGUtdCkqKDQtbikrdCk6MjU1KnQpfSx4PWZ1bmN0aW9uKHQsZSxuKXtlLz0xMDA7dmFyIHI9KG4vPTEwMCk8PS41P24qKGUrMSk6bitlLW4qZSxpPTIqbi1yO3JldHVybntyOncoaSxyLCh0Lz02MCkrMiksZzp3KGkscix0KSxiOncoaSxyLHQtMil9fSxWPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybntyOksoMjU1KigxLXQpKihyPTEtcikpLGc6SygyNTUqKDEtZSkqciksYjpLKDI1NSooMS1uKSpyKX19LHE9ZnVuY3Rpb24odCxlLG4pe3QvPTI1NSxlLz0yNTUsbi89MjU1O3ZhciByPTEtTWF0aC5tYXgodCxlLG4pLGk9MS1yLG89aSYmKGktZSkvaSxhPWkmJihpLW4pL2k7cmV0dXJue2M6SygxMDAqKGkmJihpLXQpL2kpKSxtOksoMTAwKm8pLHk6SygxMDAqYSksazpLKDEwMCpyKX19LF89ZnVuY3Rpb24odCxlLG4scil7dm9pZCAwPT09ciYmKHI9MSksdC89MjU1LGUvPTI1NSxuLz0yNTUscj1NYXRoLm1pbihyLDEpO3ZhciBpPU1hdGgubWF4KHQsZSxuKSxvPU1hdGgubWluKHQsZSxuKSxhPWktbyxjPTAsdT0wLHM9KGkrbykvMjtpZigwIT09YSl7c3dpdGNoKGkpe2Nhc2UgdDpjPShlLW4pL2ElNjticmVhaztjYXNlIGU6Yz0obi10KS9hKzI7YnJlYWs7Y2FzZSBuOmM9KHQtZSkvYSs0fShjPUsoNjAqYykpPDAmJihjKz0zNjApLHU9YS8oMS1NYXRoLmFicygyKnMtMSkpfXJldHVybntoOmMsczpLKDEwMCp1KSxsOksoMTAwKnMpLGE6cn19LCQ9ZnVuY3Rpb24odCxlKXtpZih0PDAmJih0Kz0zNjApLHQ+MzYwJiYodC09MzYwKSwzNjA9PT10fHwwPT09dClyZXR1cm4gdDt2YXIgbj1bWzAsMTIwXSxbMTIwLDE4MF0sWzE4MCwyNDBdLFsyNDAsMzYwXV0scj1bWzAsNjBdLFs2MCwxMjBdLFsxMjAsMjQwXSxbMjQwLDM2MF1dLGk9ZT9yOm4sbz0wLGE9MCxjPTAsdT0wO3JldHVybihlP246cikuZmluZCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD49ZVswXSYmdDxlWzFdJiYobz1lWzBdLGE9ZVsxXSxjPWlbbl1bMF0sdT1pW25dWzFdLCEwKX0pKSxjKyh1LWMpLyhhLW8pKih0LW8pfSx6PWZ1bmN0aW9uKHQpe3JldHVybiB0P1wiLCBcIjpcIixcIn0sUT1mdW5jdGlvbih0LGUpe3ZhciBuPVkoT2JqZWN0LmtleXModCkpO3JldHVybiBzW2Rbbl1dLnJlZHVjZSgoZnVuY3Rpb24obixyLGkpe3ZhciBvPXRbcl07cmV0dXJuIHZvaWQgMCE9PW8mJm4ucHVzaChlKG8saSkpLG59KSxbXSl9LFc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5yZXBsYWNlKEEsKGZ1bmN0aW9uKHQsbil7cmV0dXJuXCJcIi5jb25jYXQoZVsrbi0xXSl9KSl9LEo9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmFscGhhVW5pdCxyPWUubGVnYWN5Q1NTLGk9ZS5kZWNpbWFscztyZXR1cm4gbiE9PWYuUEVSQ0VOVHx8cj9LKHQsaSk6XCJcIi5jb25jYXQoSygxMDAqdCxpKSxcIiVcIil9LFo9KChIPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7dmFyIGU9USh0LChmdW5jdGlvbih0KXtyZXR1cm4gZT1LKHQpLDE9PT0obj1LKGUsMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkpLmxlbmd0aCYmKG49XCIwXCIuY29uY2F0KG4pKSxuO3ZhciBlLG59KSksbj00PT09ZS5sZW5ndGg/XCIjezF9ezJ9ezN9ezR9XCI6XCIjezF9ezJ9ezN9XCI7cmV0dXJuIFcobixlKX0sSFtuLlJHQl09ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmRlY2ltYWxzLHI9ZS5sZWdhY3lDU1MsaT1lLnNwYWNlc0FmdGVyQ29tbWFzLG89ZS5yZ2JVbml0LGE9eihpKSxjPVEodCwoZnVuY3Rpb24odCxyKXtyZXR1cm4gbz09PWYuUEVSQ0VOVCYmcjwzP1wiXCIuY29uY2F0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEsodC8yNTUqMTAwLGUpfSh0LG4pLFwiJVwiKTozPT09cj9KKHQsZSk6Syh0LG4pfSkpLHU9cj80PT09Yy5sZW5ndGg/XCJyZ2JhKHsxfVwiLmNvbmNhdChhLFwiezJ9XCIpLmNvbmNhdChhLFwiezN9XCIpLmNvbmNhdChhLFwiezR9KVwiKTpcInJnYih7MX1cIi5jb25jYXQoYSxcInsyfVwiKS5jb25jYXQoYSxcInszfSlcIik6ND09PWMubGVuZ3RoP1wicmdiKHsxfSB7Mn0gezN9IC8gezR9KVwiOlwicmdiKHsxfSB7Mn0gezN9KVwiO3JldHVybiBXKHUsYyl9LEhbbi5IU0xdPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5kZWNpbWFscyxyPWUubGVnYWN5Q1NTLGk9ZS5zcGFjZXNBZnRlckNvbW1hcyxvPWUuYW5nbGVzVW5pdCxhPXooaSksYz1RKHQsKGZ1bmN0aW9uKHQscil7aWYoMD09PXImJm8hPT1sLk5PTkUpe3ZhciBpPUsoUCh0LG8pLG4pO3JldHVyblwiXCIuY29uY2F0KGkpLmNvbmNhdChvKX1yZXR1cm4gMz09PXI/Sih0LGUpOksodCxuKX0pKSx1PXI/ND09PWMubGVuZ3RoP1wiaHNsYSh7MX1cIi5jb25jYXQoYSxcInsyfSVcIikuY29uY2F0KGEsXCJ7M30lXCIpLmNvbmNhdChhLFwiezR9KVwiKTpcImhzbCh7MX1cIi5jb25jYXQoYSxcInsyfSVcIikuY29uY2F0KGEsXCJ7M30lKVwiKTo0PT09Yy5sZW5ndGg/XCJoc2woezF9IHsyfSUgezN9JSAvIHs0fSlcIjpcImhzbCh7MX0gezJ9JSB7M30lKVwiO3JldHVybiBXKHUsYyl9LEhbbi5DTVlLXT1mdW5jdGlvbih0LGUpe3ZhciBuPWUuZGVjaW1hbHMscj1lLmxlZ2FjeUNTUyxpPWUuc3BhY2VzQWZ0ZXJDb21tYXMsbz1lLmNteWtVbml0LGE9ZS5jbXlrRnVuY3Rpb24sYz16KGkpLHU9USh0LChmdW5jdGlvbih0LHIpe3JldHVybiBvPT09Zi5QRVJDRU5UJiZyPDQ/XCJcIi5jb25jYXQoSyh0LG4pLFwiJVwiKTo0PT09cj9KKHQsZSk6Syh0LzEwMCxuKX0pKSxzPXI/NT09PXUubGVuZ3RoP1wiXCIuY29uY2F0KGEsXCIoezF9XCIpLmNvbmNhdChjLFwiezJ9XCIpLmNvbmNhdChjLFwiezN9XCIpLmNvbmNhdChjLFwiezR9XCIpLmNvbmNhdChjLFwiezV9KVwiKTpcIlwiLmNvbmNhdChhLFwiKHsxfVwiKS5jb25jYXQoYyxcInsyfVwiKS5jb25jYXQoYyxcInszfVwiKS5jb25jYXQoYyxcIns0fSlcIik6NT09PXUubGVuZ3RoP1wiXCIuY29uY2F0KGEsXCIoezF9IHsyfSB7M30gezR9IC8gezV9KVwiKTpcIlwiLmNvbmNhdChhLFwiKHsxfSB7Mn0gezN9IHs0fSlcIik7cmV0dXJuIFcocyx1KX0sSCksdHQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PW0udGVzdCh0KT9MKHQpLzEwMDordCksaXNOYU4oK3QpfHx0PjE/MTpLKHQpfSxldD1mdW5jdGlvbihuLHIsbyl7cmV0dXJuIHIucmVkdWNlKChmdW5jdGlvbihyLGEpe3JldHVybiBlKGUoW10sciwhMCksW3QodCh7fSxuKSx7aDpvPT09aS5BRERJVElWRT9UKG4uaCthKTpUKCQoJChuLmgsITEpK2EsITApKX0pXSwhMSl9KSxbdCh7fSxuKV0pfSxudD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFszMCwtMzBdLGUpfSxydD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFsxODBdLGUpfSxpdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFsxNTAsLTE1MF0sZSl9LG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV0KHQsWzEyMCwtMTIwXSxlKX0sYXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbNjAsLTEyMCwxODBdLGUpfSxjdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFs5MCwtOTAsMTgwXSxlKX0sdXQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7dmFyIGU7aWYoT2JqZWN0LmtleXMobikuc29tZSgoZnVuY3Rpb24obil7aWYocFtuXS50ZXN0KHQpKXJldHVybiBlPW4sITB9KSksIWUmJn51LmluZGV4T2YodCkmJihlPW4uSEVYKSwhZSl0aHJvdyBuZXcgRXJyb3IoRik7cmV0dXJuIGV9KHQpOmZ1bmN0aW9uKHQpe3ZhciBlLHI9ITEsaT1ZKE9iamVjdC5rZXlzKHQpKTtpZihkW2ldJiYoZT1kW2ldKSxlJiZlPT09bi5SR0Ipe3ZhciBvPU9iamVjdC5lbnRyaWVzKHQpLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiFiLnRlc3QoXCJcIi5jb25jYXQodFsxXSkpfSkpLGE9T2JqZWN0LmVudHJpZXModCkuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIShtLnRlc3QoXCJcIi5jb25jYXQodFsxXSkpfHwhYi50ZXN0KFwiXCIuY29uY2F0KHRbMV0pKSYmIWlzTmFOKCt0WzFdKSYmK3RbMV08PTI1NSl9KSk7byYmYSYmKHI9ITApLG98fChlPW4uSEVYKX1pZighZXx8cil0aHJvdyBuZXcgRXJyb3Iodik7cmV0dXJuIGV9KHQpfSxzdD0oKEI9e30pW24uSEVYXT1mdW5jdGlvbih0KXt2YXIgZT0ofnUuaW5kZXhPZih0KT9vW3RdOnQpLm1hdGNoKHAuSEVYKSxuPXtyOmsoZVsxXXx8ZVs1XSksZzprKGVbMl18fGVbNl0pLGI6ayhlWzNdfHxlWzddKX0scj1lWzRdfHxlWzhdO3JldHVybiB2b2lkIDAhPT1yJiYobi5hPWsocikvMjU1KSxufSxCW24uUkdCXT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHAuUkdCKSxuPVgoZVsxXXx8ZVs1XSkscj1YKGVbMl18fGVbNl0pLGk9WChlWzNdfHxlWzddKSxvPWVbNF18fGVbOF0sYT17cjpNYXRoLm1pbihuLDI1NSksZzpNYXRoLm1pbihyLDI1NSksYjpNYXRoLm1pbihpLDI1NSl9O3JldHVybiB2b2lkIDAhPT1vJiYoYS5hPXR0KG8pKSxhfSxCW24uSFNMXT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHAuSFNMKSxuPVQoZVsxXXx8ZVs1XSkscj1HKGVbMl18fGVbNl0pLGk9RyhlWzNdfHxlWzddKSxvPWVbNF18fGVbOF0sYT14KG4scixpKTtyZXR1cm4gdm9pZCAwIT09byYmKGEuYT10dChvKSksYX0sQltuLkNNWUtdPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2gocC5DTVlLKSxuPUkoZVsxXXx8ZVs2XSkscj1JKGVbMl18fGVbN10pLGk9SShlWzNdfHxlWzhdKSxvPUkoZVs0XXx8ZVs5XSksYT1lWzVdfHxlWzEwXSxjPVYobixyLGksbyk7cmV0dXJuIHZvaWQgMCE9PWEmJihjLmE9dHQoYSkpLGN9LEIpLGR0PSgoQz17fSlbbi5IRVhdPWZ1bmN0aW9uKHQpe3ZhciBlPXtyOlgoXCJcIi5jb25jYXQodC5yKSksZzpYKFwiXCIuY29uY2F0KHQuZykpLGI6WChcIlwiLmNvbmNhdCh0LmIpKX07cmV0dXJuIE8odCxcImFcIikmJihlLmE9TWF0aC5taW4oWChcIlwiLmNvbmNhdCh0LmEpLCEwKSwxKSksZX0sQ1tuLlJHQl09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSEVYKHQpfSxDW24uSFNMXT1mdW5jdGlvbih0KXt2YXIgZT1HKFwiXCIuY29uY2F0KHQucykpLG49RyhcIlwiLmNvbmNhdCh0LmwpKSxyPXgoVCh0LmgpLGUsbik7cmV0dXJuIE8odCxcImFcIikmJihyLmE9dHQodC5hKSkscn0sQ1tuLkNNWUtdPWZ1bmN0aW9uKHQpe3ZhciBlPUkoXCJcIi5jb25jYXQodC5jKSksbj1JKFwiXCIuY29uY2F0KHQubSkpLHI9SShcIlwiLmNvbmNhdCh0LnkpKSxpPUkoXCJcIi5jb25jYXQodC5rKSksbz1WKGUsbixyLGkpO3JldHVybiBPKHQsXCJhXCIpJiYoby5hPXR0KHQuYSkpLG99LEMpLGx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXV0KHQpKSxcInN0cmluZ1wiPT10eXBlb2YgdD9zdFtlXSh0KTpkdFtlXSh0KX0sZnQ9KChTPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7cmV0dXJue3I6aih0LnIpLGc6aih0LmcpLGI6aih0LmIpfX0sUy5IRVhBPWZ1bmN0aW9uKHQpe3ZhciBlPWZ0LkhFWCh0KTtyZXR1cm4gZS5hPU8odCxcImFcIik/aigyNTUqdC5hKTpcIjB4RkZcIixlfSxTW24uUkdCXT1mdW5jdGlvbih0LGUpe3ZhciBuPW10KHQsZSk7cmV0dXJuIE8obixcImFcIikmJmRlbGV0ZSBuLmEsbn0sUy5SR0JBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuUkdCKHQsZSk7cmV0dXJuIG4uYT1PKHQsXCJhXCIpP0sodC5hKToxLG59LFNbbi5IU0xdPWZ1bmN0aW9uKHQsZSl7dmFyIG49Xyh0LnIsdC5nLHQuYik7cmV0dXJuIGRlbGV0ZSBuLmEsYnQobixlKX0sUy5IU0xBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuSFNMKHQsZSk7cmV0dXJuIG4uYT1PKHQsXCJhXCIpP0sodC5hLGUpOjEsbn0sU1tuLkNNWUtdPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEF0KHEodC5yLHQuZyx0LmIpLGUpfSxTLkNNWUtBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuQ01ZSyh0LGUpO3JldHVybiBuLmE9Tyh0LFwiYVwiKT9LKHQuYSxlKToxLG59LFMpLGh0PWZ1bmN0aW9uKGUscixpLG8pe3ZhciBhPXV0KGUpLGM9XCJzdHJpbmdcIj09dHlwZW9mIGUsdT1sdChlLGEpLHM9XCJzdHJpbmdcIj09dHlwZW9mIGUmJk8odSxcImFcIil8fFwic3RyaW5nXCIhPXR5cGVvZiBlJiZPKGUsXCJhXCIpLGQ9Xyh1LnIsdS5nLHUuYix1LmEpO3N8fGRlbGV0ZSBkLmE7dmFyIGw9aT9kLmwvKHIrMSk6KDEwMC1kLmwpLyhyKzEpLGY9QXJyYXkocikuZmlsbChudWxsKS5tYXAoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQodCh7fSxkKSx7bDpkLmwrbCoobisxKSooMS0yKitpKX0pfSkpO3N3aXRjaChhKXtjYXNlIG4uSEVYOmRlZmF1bHQ6cmV0dXJuIGYubWFwKChmdW5jdGlvbihlKXt2YXIgbj14KGUuaCxlLnMsZS5sKTtyZXR1cm4gcyYmKG4uYT1lLmEpLGM/cz9aLkhFWCh0KHQoe30sbikse2E6SygyNTUqbi5hKX0pKTpaLkhFWChuKTpzP2Z0LkhFWEEobik6ZnQuSEVYKG4pfSkpO2Nhc2Ugbi5SR0I6cmV0dXJuIGYubWFwKChmdW5jdGlvbih0KXt2YXIgZT14KHQuaCx0LnMsdC5sKTtyZXR1cm4gcyYmKGUuYT10LmEpLGM/Wi5SR0IoZSxvKTpzP2Z0LlJHQkEoZSxvLmRlY2ltYWxzKTpmdC5SR0IoZSxvLmRlY2ltYWxzKX0pKTtjYXNlIG4uSFNMOnJldHVybiBmLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGM/Wi5IU0woZSxvKTpzP2Z0LkhTTEEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTplLmF9KSxvLmRlY2ltYWxzKTpmdC5IU0woeChlLmgsZS5zLGUubCksby5kZWNpbWFscyl9KSl9fSxwdD0oKFI9e2J1aWxkSGFybW9ueTpmdW5jdGlvbih0LGUscixpKXt2YXIgbz11dCh0KSxhPWx0KHQsbyksYz1fKGEucixhLmcsYS5iLGEuYSksdT1cInN0cmluZ1wiPT10eXBlb2YgdCYmTyhhLFwiYVwiKXx8XCJzdHJpbmdcIiE9dHlwZW9mIHQmJk8odCxcImFcIikscz1cInN0cmluZ1wiPT10eXBlb2YgdDtzd2l0Y2gobyl7Y2FzZSBuLkhFWDpkZWZhdWx0OnJldHVybiB1P3RoaXMuSEVYQShidChjLDApLGUscixzKTp0aGlzLkhFWChidChjLDApLGUscixzKTtjYXNlIG4uSFNMOnJldHVybiB1P3RoaXMuSFNMQShjLGUscixzLGkpOnRoaXMuSFNMKGMsZSxyLHMsaSk7Y2FzZSBuLlJHQjpyZXR1cm4gdT90aGlzLlJHQkEoYyxlLHIscyxpKTp0aGlzLlJHQihjLGUscixzLGkpfX19KVtuLkhFWF09ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouSEVYKHgodC5oLHQucyx0LmwpKTpmdC5IRVgoeCh0LmgsdC5zLHQubCkpfSkpfSxSLkhFWEE9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIG4oZSxyKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpP1ouSEVYKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6MjU1KnR0KGUuYSl9KSk6ZnQuSEVYQSh0KHQoe30seChlLmgsZS5zLGUubCkpLHthOnR0KGUuYSl9KSl9KSl9LFJbbi5SR0JdPWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouUkdCKHgodC5oLHQucyx0LmwpLGkpOmZ0LlJHQih4KHQuaCx0LnMsdC5sKSxpLmRlY2ltYWxzKX0pKX0sUi5SR0JBPWZ1bmN0aW9uKGUsbixyLGksbyl7cmV0dXJuIG4oZSxyKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpP1ouUkdCKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pLG8pOmZ0LlJHQkEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTp0dChlLmEpfSksby5kZWNpbWFscyl9KSl9LFJbbi5IU0xdPWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouSFNMKHtoOnQuaCxzOnQucyxsOnQubH0saSk6ZnQuSFNMKHgodC5oLHQucyx0LmwpLGkuZGVjaW1hbHMpfSkpfSxSLkhTTEE9ZnVuY3Rpb24oZSxuLHIsaSxvKXtyZXR1cm4gbihlLHIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGk/Wi5IU0wodCh0KHt9LGUpLHthOnR0KGUuYSl9KSxvKTpmdC5IU0xBKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pLG8uZGVjaW1hbHMpfSkpfSxSKSxndD0oKE09e21peDpmdW5jdGlvbihlLG4pe3ZhciByLG8sYSxjLHUscyxkLGwsZixoLHAsZyxtLGIsQSx5PWUubWFwKChmdW5jdGlvbih0KXt2YXIgZT11dCh0KTtyZXR1cm4gbHQodCxlKX0pKSxFPW49PT1pLlNVQlRSQUNUSVZFP3kubWFwKChmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEsYyx1LHMsZCxsLGYsaCxwLGc9KGU9dC5yLG49dC5nLHI9dC5iLGk9TWF0aC5taW4oZSxuLHIpLG89TWF0aC5taW4oMjU1LWUsMjU1LW4sMjU1LXIpLGE9ZS1pLGM9bi1pLHU9ci1pLHM9TWF0aC5taW4oYSxjKSxkPWEtcyxsPShjK3MpLzIsZj0odStjLXMpLzIsaD1NYXRoLm1heChkLGwsZikvTWF0aC5tYXgoYSxjLHUpLHA9aXNOYU4oaCl8fGg9PT0xLzB8fGg8PTA/MTpoLHtyOmQvcCtvLHk6bC9wK28sYjpmL3Arb30pO3JldHVybiBPKHQsXCJhXCIpJiYoZy5hPXQuYSksZ30pKTpudWxsO2Z1bmN0aW9uIEYoZSl7dmFyIHI9bj09PWkuQURESVRJVkU/e3I6MCxnOjAsYjowLGE6MH06e3I6MCx5OjAsYjowLGE6MH07cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLHIpe3ZhciBvPU8ocixcImFcIik/ci5hOjEsYT17cjpNYXRoLm1pbihlLnIrci5yKm8sMjU1KSxiOk1hdGgubWluKGUuYityLmIqbywyNTUpLGE6MS0oMS1vKSooMS1lLmEpfSxjPVwiZ1wiaW4gZT9lLmc6ZS55LHU9XCJnXCJpbiByP3IuZzpyLnk7cmV0dXJuIHQodCh7fSxhKSxuPT09aS5BRERJVElWRT97ZzpNYXRoLm1pbihjK3UqbywyNTUpfTp7eTpNYXRoLm1pbihjK3UqbywyNTUpfSl9KSxyKX1pZihuPT09aS5BRERJVElWRSlyPUYoeSk7ZWxzZXt2YXIgdj1GKEUpO289di5yLGE9di55LGM9di5iLHU9TWF0aC5taW4obyxhLGMpLHM9TWF0aC5taW4oMjU1LW8sMjU1LWEsMjU1LWMpLGQ9by11LGw9YS11LGY9Yy11LGg9TWF0aC5taW4obCxmKSxwPWQrbC1oLGc9bCtoLG09MiooZi1oKSxiPU1hdGgubWF4KHAsZyxtKS9NYXRoLm1heChkLGwsZiksQT1pc05hTihiKXx8Yj09PTEvMHx8Yjw9MD8xOmIsKHI9e3I6cC9BK3MsZzpnL0ErcyxiOm0vQStzfSkuYT12LmF9cmV0dXJue3I6SyhyLnIpLGc6SyhyLmcpLGI6SyhyLmIpLGE6TihyLmEsMCwxKX19fSlbbi5IRVhdPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLm1peCh0LGUpO3JldHVybiBkZWxldGUgci5hLG4/Wi5IRVgocik6ZnQuSEVYKHIpfSxNLkhFWEE9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMubWl4KHQsZSk7cmV0dXJuIHIuYT1uPzI1NSp0dChyLmEpOnR0KHIuYSksbj9aLkhFWChyKTpmdC5IRVhBKHIpfSxNW24uUkdCXT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLm1peCh0LGUpO3JldHVybiBkZWxldGUgaS5hLG4/Wi5SR0IoaSxyKTpmdC5SR0IoaSxyLmRlY2ltYWxzKX0sTS5SR0JBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSk7cmV0dXJuIG4/Wi5SR0IoaSxyKTpmdC5SR0JBKGksci5kZWNpbWFscyl9LE1bbi5IU0xdPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSksbz1fKGkucixpLmcsaS5iKTtyZXR1cm4gZGVsZXRlIGkuYSxkZWxldGUgby5hLG4/Wi5IU0wobyxyKTpmdC5IU0woaSxyLmRlY2ltYWxzKX0sTS5IU0xBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSksbz1fKGkucixpLmcsaS5iLGkuYSk7cmV0dXJuIG4/Wi5IU0wobyxyKTpmdC5IU0xBKGksci5kZWNpbWFscyl9LE0pLG10PWZ1bmN0aW9uKGUsbil7dmFyIHI9SyhlLnIsbiksaT1LKGUuZyxuKSxvPUsoZS5iLG4pO3JldHVybiB0KHtyOnIsZzppLGI6b30sTyhlLFwiYVwiKT97YTpLKGUuYSxuKX06e30pfSxidD1mdW5jdGlvbihlLG4pe3JldHVybiB0KHtoOksoZS5oLG4pLHM6SyhlLnMsbiksbDpLKGUubCxuKX0sTyhlLFwiYVwiKT97YTpLKGUuYSxuKX06e30pfSxBdD1mdW5jdGlvbih0LGUpe3JldHVybntjOksodC5jLGUpLG06Syh0Lm0sZSkseTpLKHQueSxlKSxrOksodC5rLGUpfX0seXQ9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHIobHQodCxlKSxuKX0sRXQ9ZnVuY3Rpb24odCxlLG4scixpKXtuPDEmJihuPTUpO3ZhciBvPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uLTEsaT0oZS5yLXQucikvcixvPShlLmctdC5nKS9yLGE9KGUuYi10LmIpL3IsYz10dCh0LmEpLHU9KHR0KGUuYSktYykvcjtyZXR1cm4gQXJyYXkobikuZmlsbChudWxsKS5tYXAoKGZ1bmN0aW9uKG4scyl7cmV0dXJuIDA9PT1zP3Q6cz09PXI/ZTp7cjpLKHQucitpKnMpLGc6Syh0LmcrbypzKSxiOksodC5iK2EqcyksYTpLKGMrdSpzKX19KSl9KGx0KHQpLGx0KGUpLG4pO3JldHVybiBvLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCxyKX0pKX0sRnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuX29wdGlvbnM9VShlLHQpLHRoaXMucmdiPWx0KHQpLHRoaXMudXBkYXRlSFNMKCksdGhpcy51cGRhdGVDTVlLKCl9cmV0dXJuIG4ucHJvdG90eXBlLnVwZGF0ZVJHQj1mdW5jdGlvbigpe3RoaXMucmdiPXQodCh7fSx4KHRoaXMuaHNsLmgsdGhpcy5oc2wucyx0aGlzLmhzbC5sKSkse2E6dGhpcy5oc2wuYX0pfSxuLnByb3RvdHlwZS51cGRhdGVSR0JGcm9tQ01ZSz1mdW5jdGlvbigpe3RoaXMucmdiPXQodCh7fSxWKHRoaXMuY215ay5jLHRoaXMuY215ay5tLHRoaXMuY215ay55LHRoaXMuY215ay5rKSkse2E6dGhpcy5yZ2IuYX0pfSxuLnByb3RvdHlwZS51cGRhdGVIU0w9ZnVuY3Rpb24oKXt0aGlzLmhzbD1fKHRoaXMucmdiLnIsdGhpcy5yZ2IuZyx0aGlzLnJnYi5iLHRoaXMucmdiLmEpfSxuLnByb3RvdHlwZS51cGRhdGVDTVlLPWZ1bmN0aW9uKCl7dGhpcy5jbXlrPXEodGhpcy5yZ2Iucix0aGlzLnJnYi5nLHRoaXMucmdiLmIpfSxuLnByb3RvdHlwZS51cGRhdGVSR0JBbmRDTVlLPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBkYXRlUkdCKCksdGhpcy51cGRhdGVDTVlLKCksdGhpc30sbi5wcm90b3R5cGUudXBkYXRlSFNMQW5kQ01ZSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZUhTTCgpLHRoaXMudXBkYXRlQ01ZSygpLHRoaXN9LG4ucHJvdG90eXBlLnVwZGF0ZVJHQkFuZEhTTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZVJHQkZyb21DTVlLKCksdGhpcy51cGRhdGVIU0woKSx0aGlzfSxuLnByb3RvdHlwZS5zZXRPcHRpb25zPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5fb3B0aW9ucz10KHQoe30sdGhpcy5fb3B0aW9ucyksZSksdGhpc30sbi5wcm90b3R5cGUuc2V0SD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wuaD1UKHQpLHRoaXMudXBkYXRlUkdCQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRTPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhzbC5zPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaHNsLmw9Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0Uj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZ2Iucj1OKHQsMCwyNTUpLHRoaXMudXBkYXRlSFNMQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRHPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJnYi5nPU4odCwwLDI1NSksdGhpcy51cGRhdGVIU0xBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmdiLmI9Tih0LDAsMjU1KSx0aGlzLnVwZGF0ZUhTTEFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0QT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wuYT10aGlzLnJnYi5hPU4odCwwLDEpLHRoaXN9LG4ucHJvdG90eXBlLnNldEM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay5jPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sbi5wcm90b3R5cGUuc2V0TT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXlrLm09Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZEhTTCgpfSxuLnByb3RvdHlwZS5zZXRZPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNteWsueT1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kSFNMKCl9LG4ucHJvdG90eXBlLnNldEs9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay5rPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwib3B0aW9uc1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3B0aW9uc30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmgsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJTXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLnMsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJMXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmwsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLnIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJHXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLmcsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJCXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLmIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmEsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay5jLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiTVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmNteWsubSx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIllcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5jbXlrLnksdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJLXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay5rLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSEVYT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiBmdC5IRVgodGhpcy5yZ2IpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWEFPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ0LkhFWEEodGhpcy5yZ2IpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQk9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57cjp0aGlzLlIsZzp0aGlzLkcsYjp0aGlzLkJ9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQkFPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQodCh7fSx0aGlzLlJHQk9iamVjdCkse2E6dGhpcy5BfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybntoOnRoaXMuSCxzOnRoaXMuUyxsOnRoaXMuTH19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMQU9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCh0KHt9LHRoaXMuSFNMT2JqZWN0KSx7YTp0aGlzLkF9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDTVlLT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybntjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuS319LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS0FPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQodCh7fSx0aGlzLkNNWUtPYmplY3QpLHthOnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IRVgoe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSEVYQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IRVgoe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CLGE6MjU1KnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQlwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5SR0Ioe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CfSx0aGlzLm9wdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQkFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouUkdCKHtyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQixhOnRoaXMuQX0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIU0xcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouSFNMKHtoOnRoaXMuSCxzOnRoaXMuUyxsOnRoaXMuTH0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIU0xBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLkhTTCh7aDp0aGlzLkgsczp0aGlzLlMsbDp0aGlzLkwsYTp0aGlzLkF9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5DTVlLKHtjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuS30sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDTVlLQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5DTVlLKHtjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuSyxhOnRoaXMuQX0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxuLnRvSEVYT2JqZWN0PWZ1bmN0aW9uKHQpe3ZhciBlPXV0KHQpO3JldHVybiB5dCh0LGUsMCxmdC5IRVgpfSxuLnRvSEVYPWZ1bmN0aW9uKHQpe3JldHVybiBaLkhFWChuLnRvSEVYT2JqZWN0KHQpKX0sbi50b0hFWEFPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9dXQodCk7cmV0dXJuIHl0KHQsZSwwLGZ0LkhFWEEpfSxuLnRvSEVYQT1mdW5jdGlvbih0KXtyZXR1cm4gWi5IRVgobi50b0hFWEFPYmplY3QodCkpfSxuLnRvUkdCT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5SR0IpfSxuLnRvUkdCPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuUkdCKTtyZXR1cm4gWi5SR0IoaSxyKX0sbi50b1JHQkFPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LlJHQkEpfSxuLnRvUkdCQT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LlJHQkEpO3JldHVybiBaLlJHQihpLHIpfSxuLnRvSFNMT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5IU0wpfSxuLnRvSFNMPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuSFNMKTtyZXR1cm4gWi5IU0woaSxyKX0sbi50b0hTTEFPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkhTTEEpfSxuLnRvSFNMQT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LkhTTEEpO3JldHVybiBaLkhTTChpLHIpfSxuLnRvQ01ZS09iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuQ01ZSyl9LG4udG9DTVlLPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuQ01ZSyk7cmV0dXJuIFouQ01ZSyhpLHIpfSxuLnRvQ01ZS0FPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkNNWUtBKX0sbi50b0NNWUtBPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuQ01ZS0EpO3JldHVybiBaLkNNWUsoaSxyKX0sbi5nZXRCbGVuZEhFWE9iamVjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLEV0KHQsZSxuLDAsZnQuSEVYKX0sbi5nZXRCbGVuZEhFWD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPTUpLG4uZ2V0QmxlbmRIRVhPYmplY3QodCxlLHIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKHQpfSkpfSxuLmdldEJsZW5kSEVYQU9iamVjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLEV0KHQsZSxuLDAsZnQuSEVYQSl9LG4uZ2V0QmxlbmRIRVhBPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9NSksbi5nZXRCbGVuZEhFWEFPYmplY3QodCxlLHIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKHQpfSkpfSxuLmdldEJsZW5kUkdCT2JqZWN0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sci5kZWNpbWFscyxmdC5SR0IpfSxuLmdldEJsZW5kUkdCPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sNixmdC5SR0IpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIFouUkdCKG4sVShyLHQsZSkpfSkpfSxuLmdldEJsZW5kUkdCQU9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuUkdCQSl9LG4uZ2V0QmxlbmRSR0JBPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sNixmdC5SR0JBKS5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBaLlJHQihuLFUocix0LGUpKX0pKX0sbi5nZXRCbGVuZEhTTE9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuSFNMKX0sbi5nZXRCbGVuZEhTTD1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSk7dmFyIGk9VShyLHQsZSk7cmV0dXJuIEV0KHQsZSxuLDYsZnQuSFNMKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhTTCh0LGkpfSkpfSxuLmdldEJsZW5kSFNMQU9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuSFNMQSl9LG4uZ2V0QmxlbmRIU0xBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KTt2YXIgaT1VKHIsdCxlKTtyZXR1cm4gRXQodCxlLG4sNixmdC5IU0xBKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhTTCh0LGkpfSkpfSxuLmdldE1peEhFWE9iamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVgodCxlLCExKX0sbi5nZXRNaXhIRVg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aS5BRERJVElWRSksZ3QuSEVYKHQsZSwhMCl9LG4uZ2V0TWl4SEVYQU9iamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVhBKHQsZSwhMSl9LG4uZ2V0TWl4SEVYQT1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVhBKHQsZSwhMCl9LG4uZ2V0TWl4UkdCT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQih0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhSR0I9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuUkdCKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peFJHQkFPYmplY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuUkdCQSh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhSR0JBPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQkEodCxuLCEwLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4SFNMT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTCh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0w9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuSFNMKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peEhTTEFPYmplY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuSFNMQSh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0xBPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTEEodCxuLCEwLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0U2hhZGVzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLGh0KHQsZSwhMCxVKG4sdCkpfSxuLmdldFRpbnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLGh0KHQsZSwhMSxVKG4sdCkpfSxuLmdldEhhcm1vbnk9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXIuQ09NUExFTUVOVEFSWSksdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09byYmKG89e30pLGZ1bmN0aW9uKHQsZSxuLGkpe3ZhciBvO3JldHVybihvPXt9LG9bci5BTkFMT0dPVVNdPXB0LmJ1aWxkSGFybW9ueShlLG50LG4saSksb1tyLkNPTVBMRU1FTlRBUlldPXB0LmJ1aWxkSGFybW9ueShlLHJ0LG4saSksb1tyLlNQTElUX0NPTVBMRU1FTlRBUlldPXB0LmJ1aWxkSGFybW9ueShlLGl0LG4saSksb1tyLlRSSUFESUNdPXB0LmJ1aWxkSGFybW9ueShlLG90LG4saSksb1tyLlRFVFJBRElDXT1wdC5idWlsZEhhcm1vbnkoZSxhdCxuLGkpLG9bci5TUVVBUkVdPXB0LmJ1aWxkSGFybW9ueShlLGN0LG4saSksbylbdF19KGUsdCxuLFUobyx0KSl9LG59KCk7ZXhwb3J0e0Z0IGFzIENvbG9yVHJhbnNsYXRvcixyIGFzIEhhcm1vbnksaSBhcyBNaXh9O1xuIiwgImltcG9ydCB7IEFwcCB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBDb2RlU3R5bGVyU2V0dGluZ3MsIENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzLCBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgQ29sb3VyLCBMQU5HVUFHRV9OQU1FUywgTEFOR1VBR0VfQ09MT1VSUyB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBpc0NzcyB9IGZyb20gXCIuL1NldHRpbmdzVGFiXCI7XG5cbmludGVyZmFjZSBUaGVtZVN0eWxlIHtcblx0Ym9yZGVyPzoge1xuXHRcdHNpemU6IG51bWJlcjtcblx0XHRzdHlsZTogc3RyaW5nO1xuXHR9LFxuXHRzY3JvbGxiYXI/OiBib29sZWFuO1xuXHRleHRyYT86IHN0cmluZztcbn1cblxuY29uc3QgU1RZTEVfSUQgPSBcImNvZGUtc3R5bGVyLXN0eWxlc1wiO1xuY29uc3QgVEhFTUVfU1RZTEVTOiBSZWNvcmQ8c3RyaW5nLFRoZW1lU3R5bGU+ID0ge1xuXHRcIlByaXNtXCI6IHtcblx0XHRib3JkZXI6IHtcblx0XHRcdHNpemU6IDEsXG5cdFx0XHRzdHlsZTogXCIxcHggc29saWQgdmFyKC0td2luZG93LWJvcmRlci1jb2xvcilcIixcblx0XHR9LFxuXHR9LFxuXHRcIlNoaW1tZXJpbmcgRm9jdXNcIjoge1xuXHRcdGJvcmRlcjoge1xuXHRcdFx0c2l6ZTogMSxcblx0XHRcdHN0eWxlOiBcInZhcigtLXRoaW4tbXV0ZWQtYm9yZGVyKVwiLFxuXHRcdH0sXG5cdH0sXG5cdFwiTWluaW1hbFwiOiB7XG5cdFx0ZXh0cmE6IGBcblx0XHRcdC5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202LmlzLXJlYWRhYmxlLWxpbmUtd2lkdGggOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdH1cblx0XHRgLFxuXHR9LFxuXHRcIk9ic2lkaWFuaXRlXCI6IHtcblx0XHRzY3JvbGxiYXI6IHRydWUsXG5cdH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVTdHlsaW5nKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MsIGFwcDogQXBwKTogdm9pZCB7XG5cdGNvbnN0IGN1cnJlbnRUaGVtZSA9IGdldEN1cnJlbnRUaGVtZShhcHApO1xuXHRsZXQgc3R5bGVUYWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChTVFlMRV9JRCk7XG5cdGlmICghc3R5bGVUYWcpIHtcblx0XHRzdHlsZVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcblx0XHRzdHlsZVRhZy5pZCA9IFNUWUxFX0lEO1xuXHRcdGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXS5hcHBlbmRDaGlsZChzdHlsZVRhZyk7XG5cdH1cblx0c3R5bGVUYWcuaW5uZXJUZXh0ID0gKHN0eWxlVGhlbWVDb2xvdXJzKHNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzKStzdHlsZVRoZW1lU2V0dGluZ3Moc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLGN1cnJlbnRUaGVtZSkrc3R5bGVMYW5ndWFnZUNvbG91cnMoc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLHNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzLGN1cnJlbnRUaGVtZSkpLnRyaW0oKS5yZXBsYWNlKC9cXHMrL2csXCIgXCIpO1xuXHRhZGRUaGVtZVNldHRpbmdzQ2xhc3NlcyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MpO1xufVxuXG5mdW5jdGlvbiBzdHlsZVRoZW1lQ29sb3VycyAodGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKHRoZW1lQ29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cykucmVkdWNlKChyZXN1bHQ6IHN0cmluZywgYWx0ZXJuYXRpdmVIaWdobGlnaHQ6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiByZXN1bHQgKyBgXG5cdFx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkLSR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfSB7XG5cdFx0XHRcdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLSR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfS1oaWdobGlnaHQtY29sb3VyKSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdGA7XG5cdH0sYFxuXHRcdGJvZHkuY29kZS1zdHlsZXIudGhlbWUtbGlnaHQge1xuXHRcdFx0JHtnZXRUaGVtZUNvbG91cnModGhlbWVDb2xvdXJzLmxpZ2h0KX1cblx0XHR9XG5cdFx0Ym9keS5jb2RlLXN0eWxlci50aGVtZS1kYXJrIHtcblx0XHRcdCR7Z2V0VGhlbWVDb2xvdXJzKHRoZW1lQ29sb3Vycy5kYXJrKX1cblx0XHR9XG5cdGApO1xufVxuXG5mdW5jdGlvbiBnZXRUaGVtZUNvbG91cnMgKHRoZW1lTW9kZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKHtcblx0XHRcImNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiY29kZWJsb2NrLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuY29kZWJsb2NrLnRleHRDb2xvdXIsXG5cdFx0XCJndXR0ZXItYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5ndXR0ZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcImd1dHRlci10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci50ZXh0Q29sb3VyLFxuXHRcdFwiZ3V0dGVyLWFjdGl2ZS10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci5hY3RpdmVUZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLWJhY2tncm91bmQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGVhZGVyLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XCJoZWFkZXItdGl0bGUtdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIudGl0bGUudGV4dENvbG91cixcblx0XHRcImhlYWRlci1sYW5ndWFnZS10YWctYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGFuZ3VhZ2VUYWcuYmFja2dyb3VuZENvbG91cixcblx0XHRcImhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dENvbG91cixcblx0XHRcImhlYWRlci1zZXBhcmF0b3ItY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGVhZGVyLmxpbmVDb2xvdXIsXG5cdFx0XCJhY3RpdmUtY29kZWJsb2NrLWxpbmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyLFxuXHRcdFwiYWN0aXZlLWVkaXRvci1saW5lLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZUNvbG91cixcblx0XHRcImRlZmF1bHQtaGlnaGxpZ2h0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhpZ2hsaWdodHMuZGVmYXVsdENvbG91cixcblx0XHRcImJ1dHRvbi1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5hZHZhbmNlZC5idXR0b25Db2xvdXIsXG5cdFx0XCJidXR0b24tYWN0aXZlLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmFkdmFuY2VkLmJ1dHRvbkFjdGl2ZUNvbG91cixcblx0XHRcImlubGluZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUudGV4dENvbG91cixcblx0XHRcImlubGluZS1jb2xvdXItYWN0aXZlXCI6IHRoZW1lTW9kZUNvbG91cnMuaW5saW5lLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XCJpbmxpbmUtYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUuYmFja2dyb3VuZENvbG91cixcblx0XHRcImlubGluZS10aXRsZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUudGl0bGVUZXh0Q29sb3VyLFxuXHRcdC4uLk9iamVjdC5lbnRyaWVzKHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLnJlZHVjZSgocmVzdWx0OiBSZWNvcmQ8c3RyaW5nLENvbG91cj4sW2FsdGVybmF0aXZlSGlnaGxpZ2h0LGNvbG91cl06IFtzdHJpbmcsQ29sb3VyXSk6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9PiB7XG5cdFx0XHRyZXN1bHRbYCR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfS1oaWdobGlnaHQtY29sb3VyYF0gPSBjb2xvdXI7XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0se30pXG5cdH0pLnJlZHVjZSgocmVzdWx0OiBzdHJpbmcsIFtjc3NWYXJpYWJsZSxjb2xvdXJdOiBbc3RyaW5nLENvbG91cl0pOiBzdHJpbmcgPT4ge1xuXHRcdGNvbnN0IHN0eWxlQ29sb3VyID0gaXNDc3MoY29sb3VyKT9gdmFyKCR7Y29sb3VyfSlgOmNvbG91cjtcblx0XHRyZXR1cm4gcmVzdWx0ICsgYC0tY29kZS1zdHlsZXItJHtjc3NWYXJpYWJsZX06ICR7c3R5bGVDb2xvdXJ9O2A7XG5cdH0sXCJcIik7XG59XG5cbmZ1bmN0aW9uIHN0eWxlVGhlbWVTZXR0aW5ncyAodGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIGN1cnJlbnRUaGVtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIGBcblx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWJvbGQ6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQ/XCJib2xkXCI6XCJub3JtYWxcIn07XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1pdGFsaWM6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEl0YWxpYz9cIml0YWxpY1wiOlwibm9ybWFsXCJ9O1xuXHRcdFx0Zm9udC1mYW1pbHk6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQhPT1cIlwiP3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250OlwidmFyKC0tZm9udC10ZXh0KVwifTtcblx0XHR9XG5cdFx0Ym9keS5jb2RlLXN0eWxlciAuY29kZS1zdHlsZXItaGVhZGVyLXRleHQge1xuXHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItdGl0bGUtdGV4dC1ib2xkOiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkP1wiYm9sZFwiOlwibm9ybWFsXCJ9O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItdGl0bGUtdGV4dC1pdGFsaWM6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEl0YWxpYz9cIml0YWxpY1wiOlwibm9ybWFsXCJ9O1xuXHRcdFx0Zm9udC1mYW1pbHk6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQhPT1cIlwiP3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250OlwidmFyKC0tZm9udC10ZXh0KVwifTtcblx0XHR9XG5cdFx0Ym9keS5jb2RlLXN0eWxlciB7XG5cdFx0XHQtLWJvcmRlci1yYWRpdXM6ICR7dGhlbWVTZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlfXB4O1xuXHRcdFx0LS1sYW5ndWFnZS1pY29uLXNpemU6ICR7dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZX1weDtcblx0XHRcdC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcDogJHt0aGVtZVNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cz90aGVtZVNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3A6XCIxMDAlXCJ9O1xuXHRcdFx0LS1oZWFkZXItZm9udC1zaXplOiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplfXB4O1xuXHRcdFx0LS1saW5lLXdyYXBwaW5nOiAke3RoZW1lU2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzP1wicHJlXCI6XCJwcmUtd3JhcFwifTtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLWZvbnQtd2VpZ2h0OiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHR9MDA7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzOiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZX1weDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctdmVydGljYWw6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsOiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWw6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbH1weDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWZvbnQtd2VpZ2h0OiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodH0wMDtcblx0XHRcdCR7IXRoZW1lU2V0dGluZ3MuY29kZWJsb2NrLndyYXBMaW5lc0FjdGl2ZT9cIlwiOlwiLS1saW5lLWFjdGl2ZS13cmFwcGluZzogcHJlLXdyYXA7XCJ9XG5cdFx0XHQke3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5Q29sb3VyP1wiXCI6XCItLWljb24tZmlsdGVyOiBncmF5c2NhbGUoMSk7XCJ9XG5cdFx0fVxuXHRcdCR7VEhFTUVfU1RZTEVTPy5bY3VycmVudFRoZW1lXT8uYm9yZGVyP2Bcblx0XHRcdC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRcdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXI6YCsgLy9AdHMtZXhwZWN0LWVycm9yIERvZXMgRXhpc3Rcblx0XHRcdFx0XHRUSEVNRV9TVFlMRVNbY3VycmVudFRoZW1lXS5ib3JkZXIuc3R5bGUrYDtcblx0XHRcdFx0LS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoLXBhZGRpbmc6IGNhbGModmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkgLSBgKyAvL0B0cy1leHBlY3QtZXJyb3IgRG9lcyBFeGlzdFxuXHRcdFx0XHRcdFRIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmJvcmRlci5zaXplK2BweCk7XG5cdFx0XHRcdC0tZm9sZGVkLWJvdHRvbS1ib3JkZXI6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXIpO1xuXHRcdFx0fVxuXHRcdGA6XCJcIn1cblx0XHQke1RIRU1FX1NUWUxFUz8uW2N1cnJlbnRUaGVtZV0/LnNjcm9sbGJhcj9gXG5cdFx0XHRwcmUuY29kZS1zdHlsZXItcHJlOjotd2Via2l0LXNjcm9sbGJhcixcblx0XHRcdHByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlOjotd2Via2l0LXNjcm9sbGJhciB7XG5cdFx0XHRcdHdpZHRoOiB2YXIoLS1jb2RlLXBhZGRpbmcpO1xuXHRcdFx0XHRoZWlnaHQ6IHZhcigtLWNvZGUtcGFkZGluZyk7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdFx0XHR9XG5cdFx0YDpcIlwifVxuXHRcdCR7VEhFTUVfU1RZTEVTPy5bY3VycmVudFRoZW1lXT8uZXh0cmE/VEhFTUVfU1RZTEVTW2N1cnJlbnRUaGVtZV0uZXh0cmE6XCJcIn1cblx0YDtcbn1cblxuZnVuY3Rpb24gc3R5bGVMYW5ndWFnZUNvbG91cnMgKHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCByZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT4sIGN1cnJlbnRUaGVtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKExBTkdVQUdFX05BTUVTKS5yZWR1Y2UoKHJlc3VsdDogc3RyaW5nLFtsYW5ndWFnZU5hbWUsIGxhbmd1YWdlRGlzcGxheU5hbWVdOiBbc3RyaW5nLHN0cmluZ10pOiBzdHJpbmcgPT4ge1xuXHRcdGlmIChsYW5ndWFnZURpc3BsYXlOYW1lIGluIExBTkdVQUdFX0NPTE9VUlMgfHwgKGxhbmd1YWdlTmFtZSBpbiByZWRpcmVjdExhbmd1YWdlcyAmJiBcImNvbG91clwiIGluIHJlZGlyZWN0TGFuZ3VhZ2VzW2xhbmd1YWdlTmFtZV0pKSB7XG5cdFx0XHRyZXN1bHQgKz0gYFxuXHRcdFx0XHQubGFuZ3VhZ2UtJHtsYW5ndWFnZU5hbWV9IHtcblx0XHRcdFx0XHQtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXI6ICR7cmVkaXJlY3RMYW5ndWFnZXM/LltsYW5ndWFnZU5hbWVdPy5bXCJjb2xvdXJcIl0gPz8gTEFOR1VBR0VfQ09MT1VSU1tsYW5ndWFnZURpc3BsYXlOYW1lXX07XG5cdFx0XHRcdFx0LS1sYW5ndWFnZS1ib3JkZXItd2lkdGg6ICR7dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cj90aGVtZVNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGg6MH1weDtcblx0XHRcdFx0fVxuXHRcdFx0YDtcblx0XHRcdGlmIChUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5ib3JkZXIpIHtcblx0XHRcdFx0cmVzdWx0ICs9IGBcblx0XHRcdFx0XHQubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLmxhbmd1YWdlLSR7bGFuZ3VhZ2VOYW1lfSAge1xuXHRcdFx0XHRcdFx0LS1sYW5ndWFnZS1ib3JkZXItd2lkdGg6ICR7IC8vQHRzLWV4cGVjdC1lcnJvciBEb2VzIGV4aXN0XG5cdHRoZW1lU2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXI/dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoK1RIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmJvcmRlci5zaXplOjB9cHg7XG5cdFx0XHRcdFx0fWA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0sXCJcIik7XG59XG5cbmZ1bmN0aW9uIGFkZFRoZW1lU2V0dGluZ3NDbGFzc2VzICh0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyk6IHZvaWQge1xuXHR0aGVtZVNldHRpbmdzLmlubGluZS5zdHlsZSA/IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLXN0eWxlLWlubGluZVwiKSA6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLXN0eWxlLWlubGluZVwiKTtcblx0dGhlbWVTZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0ID8gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodFwiKSA6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHRcIik7XG5cdHRoZW1lU2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUgPyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIikgOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIik7XG5cdFxuXHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHRcIixcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2tcIixcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1lZGl0b3JcIik7IC8vVE9ETyAoQG1heXVyYW5rdikgSXMgdGhpcyBzZWN0aW9uIG5lY2Vzc2FyeT8gSXMgdGhpcyBmdW5jdGlvbiBuZWNlc3Nhcnk/XG5cdGlmICh0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSAmJiB0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSkgLy8gSW5zaWRlIGFuZCBvdXRzaWRlIG9mIGNvZGVibG9ja3Mgd2l0aCBkaWZmZXJlbnQgY29sb3Vyc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodFwiKTtcblx0ZWxzZSBpZiAodGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgJiYgIXRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lKSAvLyBPbmx5IG91dHNpZGUgY29kZWJsb2Nrc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1lZGl0b3JcIik7XG5cdGVsc2UgaWYgKCF0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSAmJiB0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSkgLy8gT25seSBpbnNpZGUgY29kZWJsb2Nrc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2tcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVTdHlsZXNBbmRDbGFzc2VzKCk6IHZvaWQge1xuXHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZChTVFlMRV9JRCk/LnJlbW92ZSgpO1xuXHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXG5cdFx0XCJjb2RlLXN0eWxlclwiLFxuXHRcdFwiY29kZS1zdHlsZXItc2hvdy1saW5lLW51bWJlcnNcIixcblx0XHRcImNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHRcIixcblx0XHRcImNvZGUtc3R5bGVyLWd1dHRlci1hY3RpdmUtbGluZVwiLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VGhlbWUoYXBwOiBBcHApOiBzdHJpbmcge1xuXHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRyZXR1cm4gYXBwLnZhdWx0LmdldENvbmZpZyhcImNzc1RoZW1lXCIpO1xufVxuIiwgImltcG9ydCB7IGVkaXRvckVkaXRvckZpZWxkLCBlZGl0b3JJbmZvRmllbGQsIGVkaXRvckxpdmVQcmV2aWV3RmllbGQgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IEVkaXRvclZpZXcsIFZpZXdVcGRhdGUsIERlY29yYXRpb24sIERlY29yYXRpb25TZXQsIFdpZGdldFR5cGUgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuaW1wb3J0IHsgRXh0ZW5zaW9uLCBFZGl0b3JTdGF0ZSwgU3RhdGVGaWVsZCwgU3RhdGVFZmZlY3QsIFN0YXRlRWZmZWN0VHlwZSwgUmFuZ2UsIFJhbmdlU2V0QnVpbGRlciwgVHJhbnNhY3Rpb24sIExpbmUsIFNlbGVjdGlvblJhbmdlLCBDb21wYXJ0bWVudCB9IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuaW1wb3J0IHsgc3ludGF4VHJlZSwgdG9rZW5DbGFzc05vZGVQcm9wIH0gZnJvbSBcIkBjb2RlbWlycm9yL2xhbmd1YWdlXCI7XG5pbXBvcnQgeyBTeW50YXhOb2RlUmVmIH0gZnJvbSBcIkBsZXplci9jb21tb25cIjtcblxuaW1wb3J0IHsgQ29kZVN0eWxlclNldHRpbmdzLCBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgU1BFQ0lBTF9MQU5HVUFHRVMgfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgQ29kZWJsb2NrUGFyYW1ldGVycywgcGFyc2VDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0ZXN0T3BlbmluZ0xpbmUsIHRyaW1QYXJhbWV0ZXJMaW5lLCBpc0NvZGVibG9ja0lnbm9yZWQsIGlzTGFuZ3VhZ2VJZ25vcmVkIH0gZnJvbSBcIi4vUGFyc2luZy9Db2RlYmxvY2tQYXJzaW5nXCI7XG5pbXBvcnQgeyBJbmxpbmVDb2RlUGFyYW1ldGVycywgcGFyc2VJbmxpbmVDb2RlIH0gZnJvbSBcIi4vUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZ1wiO1xuaW1wb3J0IHsgY3JlYXRlSGVhZGVyLCBjcmVhdGVJbmxpbmVPcGVuZXIsIGdldExhbmd1YWdlSWNvbiwgZ2V0TGluZUNsYXNzLCBpc0hlYWRlckhpZGRlbiB9IGZyb20gXCIuL0NvZGVibG9ja0RlY29yYXRpbmdcIjtcbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuL21haW5cIjtcblxuaW50ZXJmYWNlIFNldHRpbmdzU3RhdGUge1xuXHRleGNsdWRlZExhbmd1YWdlczogc3RyaW5nO1xuXHRwcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb2RlYmxvY2tDb2RlTWlycm9yRXh0ZW5zaW9ucyhzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0Y29uc3QgbGl2ZVByZXZpZXdDb21wYXJ0bWVudCA9IG5ldyBDb21wYXJ0bWVudDtcblx0Y29uc3QgaWdub3JlQ29tcGFydG1lbnQgPSBuZXcgQ29tcGFydG1lbnQ7XG5cblx0Y29uc3QgaWdub3JlTGlzdGVuZXIgPSBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGU6IFZpZXdVcGRhdGUpID0+IHsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSBtYWtlIHRoaXMgc3RhcnRTdGF0ZSBvbmx5PyBEb2VzIGl0IG5lZWQgdG8gYmU/XG5cdFx0Y29uc3QgbGl2ZVByZXZpZXdFeHRlbnNpb25zID0gbGl2ZVByZXZpZXdDb21wYXJ0bWVudC5nZXQodXBkYXRlLnN0YXRlKTtcblx0XHRjb25zdCB0b0lnbm9yZSA9IGlzU291cmNlTW9kZSh1cGRhdGUuc3RhdGUpO1xuXHRcdGNvbnN0IGZpbGVJZ25vcmUgPSBpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgIShBcnJheS5pc0FycmF5KGxpdmVQcmV2aWV3RXh0ZW5zaW9ucykgJiYgbGl2ZVByZXZpZXdFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCk7XG5cdFx0Y29uc3QgZmlsZVVuaWdub3JlID0gIXRvSWdub3JlICYmICFpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgKEFycmF5LmlzQXJyYXkobGl2ZVByZXZpZXdFeHRlbnNpb25zKSAmJiBsaXZlUHJldmlld0V4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRpZiAoaXNTb3VyY2VNb2RlKHVwZGF0ZS5zdGFydFN0YXRlKSAhPT0gdG9JZ25vcmUgfHwgZmlsZUlnbm9yZSB8fCBmaWxlVW5pZ25vcmUpIHtcblx0XHRcdHVwZGF0ZS52aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBsaXZlUHJldmlld0NvbXBhcnRtZW50LnJlY29uZmlndXJlKCh0b0lnbm9yZXx8ZmlsZUlnbm9yZSk/W106W2hlYWRlckRlY29yYXRpb25zLGxpbmVEZWNvcmF0aW9ucyxmb2xkRGVjb3JhdGlvbnMsaGlkZGVuRGVjb3JhdGlvbnNdKX0pO1xuXHRcdFx0aWYgKCF0b0lnbm9yZSAmJiAhZmlsZUlnbm9yZSlcblx0XHRcdFx0dXBkYXRlLnZpZXcuZGlzcGF0Y2goe2VmZmVjdHM6IGZvbGRBbGwub2Yoe30pfSk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaWdub3JlRmlsZUxpc3RlbmVyID0gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodXBkYXRlOiBWaWV3VXBkYXRlKSA9PiB7XG5cdFx0Y29uc3QgaWdub3JlRXh0ZW5zaW9ucyA9IGlnbm9yZUNvbXBhcnRtZW50LmdldCh1cGRhdGUuc3RhdGUpO1xuXHRcdGNvbnN0IGZpbGVJZ25vcmUgPSBpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgIShBcnJheS5pc0FycmF5KGlnbm9yZUV4dGVuc2lvbnMpICYmIGlnbm9yZUV4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRjb25zdCBmaWxlVW5pZ25vcmUgPSAhaXNGaWxlSWdub3JlZCh1cGRhdGUuc3RhdGUpICYmIChBcnJheS5pc0FycmF5KGlnbm9yZUV4dGVuc2lvbnMpICYmIGlnbm9yZUV4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRpZiAoZmlsZUlnbm9yZSB8fCBmaWxlVW5pZ25vcmUpXG5cdFx0XHR1cGRhdGUudmlldy5kaXNwYXRjaCh7ZWZmZWN0czogaWdub3JlQ29tcGFydG1lbnQucmVjb25maWd1cmUoZmlsZUlnbm9yZT9bXTppbmxpbmVEZWNvcmF0aW9ucyl9KTtcblx0fSk7XG5cblx0Y29uc3Qgc2V0dGluZ3NTdGF0ZSA9IFN0YXRlRmllbGQuZGVmaW5lPFNldHRpbmdzU3RhdGU+KHtcblx0XHRjcmVhdGUoKTogU2V0dGluZ3NTdGF0ZSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRleGNsdWRlZExhbmd1YWdlczogc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMsXG5cdFx0XHRcdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QsXG5cdFx0XHR9O1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBTZXR0aW5nc1N0YXRlKTogU2V0dGluZ3NTdGF0ZSB7XG5cdFx0XHRpZiAodmFsdWUucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCAhPT0gc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCB8fCB2YWx1ZS5leGNsdWRlZExhbmd1YWdlcyAhPT0gc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpXG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0ZXhjbHVkZWRMYW5ndWFnZXM6IHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLFxuXHRcdFx0XHRcdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QsXG5cdFx0XHRcdH07XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgY2hhcldpZHRoU3RhdGUgPSBTdGF0ZUZpZWxkLmRlZmluZTxudW1iZXI+KHsgLy9UT0RPIChAbWF5dXJhbmt2KSBJbXByb3ZlIGltcGxlbWVudGF0aW9uXG5cdFx0Y3JlYXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IG51bWJlciB7XG5cdFx0XHRyZXR1cm4oc3RhdGUuZmllbGQoZWRpdG9yRWRpdG9yRmllbGQpLmRlZmF1bHRDaGFyYWN0ZXJXaWR0aCAqIDEuMTA1KTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBudW1iZXIge1xuXHRcdFx0cmV0dXJuKHRyYW5zYWN0aW9uLnN0YXRlLmZpZWxkKGVkaXRvckVkaXRvckZpZWxkKS5kZWZhdWx0Q2hhcmFjdGVyV2lkdGggKiAxLjEwNSk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaGVhZGVyRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7IC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlIChkb2VzIHRoaXMgbmVlZCB0byBiZSB1cGRhdGVkIGluIHRoaXMgbWFubmVyPylcblx0XHRjcmVhdGUoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRyZXR1cm4gYnVpbGRIZWFkZXJEZWNvcmF0aW9ucyhzdGF0ZSk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkSGVhZGVyRGVjb3JhdGlvbnModHJhbnNhY3Rpb24uc3RhdGUsKHBvc2l0aW9uKT0+aXNGb2xkZWQodHJhbnNhY3Rpb24uc3RhdGUscG9zaXRpb24pKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgbGluZURlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oeyAvL1RPRE8gKEBtYXl1cmFua3YpIERlYWwgd2l0aCBzb3VyY2UgbW9kZSAtIG1ha2UgYXBwbHkgc3R5bGluZyBpbiBzb3VyY2UgbW9kZVxuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZExpbmVEZWNvcmF0aW9ucyhzdGF0ZSk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkTGluZURlY29yYXRpb25zKHRyYW5zYWN0aW9uLnN0YXRlKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgZm9sZERlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oe1xuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSBjaGFuZ2UgdGhpcz9cblx0XHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdFx0aWYgKCFpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkKVxuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0XHRidWlsZGVyLmFkZChmb2xkU3RhcnQuZnJvbSxmb2xkRW5kLnRvLGZvbGREZWNvcmF0aW9uKChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogRGVjb3JhdGlvblNldCwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKS51cGRhdGUoe2ZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlcik9PmZyb20hPT10b30pO1xuXHRcdFx0dmFsdWUgPSB2YWx1ZS51cGRhdGUoe2FkZDogdHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT4oZWZmZWN0LmlzKGZvbGQpfHxlZmZlY3QuaXModW5oaWRlRm9sZCkpKS5tYXAoZWZmZWN0PT5mb2xkUmVnaW9uKGVmZmVjdC52YWx1ZSkpfSk7IC8vVE9ETyAoQG1heXVyYW5rdikgQ2FuIEkgcmVtb3ZlIGAsIHNvcnQ6IHRydWVgXG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PihlZmZlY3QuaXModW5mb2xkKXx8ZWZmZWN0LmlzKGhpZGVGb2xkKSkpLmZvckVhY2goZWZmZWN0PT52YWx1ZT12YWx1ZS51cGRhdGUodW5mb2xkUmVnaW9uKGVmZmVjdC52YWx1ZSkpKTtcblx0XHRcdHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+ZWZmZWN0LmlzKHJlbW92ZUZvbGQpKS5mb3JFYWNoKGVmZmVjdD0+dmFsdWU9dmFsdWUudXBkYXRlKHJlbW92ZUZvbGRMYW5ndWFnZXMoZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH0sXG5cdFx0cHJvdmlkZShmaWVsZDogU3RhdGVGaWVsZDxEZWNvcmF0aW9uU2V0Pik6IEV4dGVuc2lvbiB7XG5cdFx0XHRyZXR1cm4gRWRpdG9yVmlldy5kZWNvcmF0aW9ucy5mcm9tKGZpZWxkKTtcblx0XHR9LFxuXHR9KTtcblx0Y29uc3QgaGlkZGVuRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7XG5cdFx0Y3JlYXRlKCk6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIERlY29yYXRpb24ubm9uZTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogRGVjb3JhdGlvblNldCwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRpZiAodHJhbnNhY3Rpb24uZWZmZWN0cy5zb21lKGVmZmVjdD0+ZWZmZWN0LmlzKGZvbGRBbGwpKSlcblx0XHRcdFx0cmV0dXJuIERlY29yYXRpb24ubm9uZTtcblx0XHRcdHZhbHVlID0gdmFsdWUubWFwKHRyYW5zYWN0aW9uLmNoYW5nZXMpLnVwZGF0ZSh7ZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKT0+ZnJvbSE9PXRvfSk7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLnVwZGF0ZSh7YWRkOiB0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyhoaWRlRm9sZCkpLm1hcChlZmZlY3Q9PmVmZmVjdC52YWx1ZSl9KTsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSByZW1vdmUgYCwgc29ydDogdHJ1ZWBcblx0XHRcdHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+ZWZmZWN0LmlzKHVuaGlkZUZvbGQpKS5mb3JFYWNoKGVmZmVjdD0+dmFsdWU9dmFsdWUudXBkYXRlKHVuaGlkZUZvbGRVcGRhdGUoZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0dHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT5lZmZlY3QuaXMocmVtb3ZlRm9sZCkpLmZvckVhY2goZWZmZWN0PT52YWx1ZT12YWx1ZS51cGRhdGUocmVtb3ZlRm9sZExhbmd1YWdlcyhlZmZlY3QudmFsdWUpKSk7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaW5saW5lRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7XG5cdFx0Y3JlYXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGUpO1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBEZWNvcmF0aW9uU2V0LCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZElubGluZURlY29yYXRpb25zKHRyYW5zYWN0aW9uLnN0YXRlKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblxuXHRmdW5jdGlvbiBzZXR0aW5nc0NoYW5nZUV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbikgPT4ge1xuXHRcdFx0bGV0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0Y29uc3QgaW5pdGlhbFNldHRpbmdzID0gdHJhbnNhY3Rpb24uc3RhcnRTdGF0ZS5maWVsZChzZXR0aW5nc1N0YXRlKTtcblx0XHRcdGxldCByZWFkZEZvbGRMYW5ndWFnZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0XHRcdGxldCByZW1vdmVGb2xkTGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cdFx0XHRpZiAoaW5pdGlhbFNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QgIT09IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpIHtcblx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0Y29uc3QgY29kZWJsb2NrUHJvY2Vzc29ycyA9IE9iamVjdC5rZXlzKE1hcmtkb3duUHJldmlld1JlbmRlcmVyLmNvZGVCbG9ja1Bvc3RQcm9jZXNzb3JzKTtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcyA9IGNvZGVibG9ja1Byb2Nlc3NvcnMuZmlsdGVyKGxhbmc9PiFpbml0aWFsU2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdC5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKS5pbmNsdWRlcyhsYW5nKSk7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MgPSBjb2RlYmxvY2tQcm9jZXNzb3JzLmZpbHRlcihsYW5nPT4hc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdC5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKS5pbmNsdWRlcyhsYW5nKSk7XG5cdFx0XHRcdHJlbW92ZUZvbGRMYW5ndWFnZXMgPSByZW1vdmVGb2xkTGFuZ3VhZ2VzLmNvbmNhdChzZXREaWZmZXJlbmNlKGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MsaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHRcdHJlYWRkRm9sZExhbmd1YWdlcyA9IHJlYWRkRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShpbml0aWFsRXhjbHVkZWRDb2RlYmxvY2tzLGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MpIGFzIEFycmF5PHN0cmluZz4pO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGluaXRpYWxTZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcyAhPT0gc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpIHtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbEV4Y2x1ZGVkTGFuZ3VhZ2VzID0gaW5pdGlhbFNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLnNwbGl0KFwiLFwiKS5tYXAobGFuZz0+bGFuZy50cmltKCkpO1xuXHRcdFx0XHRjb25zdCBjdXJyZW50RXhjbHVkZWRMYW5ndWFnZXMgPSBzZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcy5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKTtcblx0XHRcdFx0cmVtb3ZlRm9sZExhbmd1YWdlcyA9IHJlbW92ZUZvbGRMYW5ndWFnZXMuY29uY2F0KHNldERpZmZlcmVuY2UoY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzLGluaXRpYWxFeGNsdWRlZExhbmd1YWdlcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHRcdHJlYWRkRm9sZExhbmd1YWdlcyA9IHJlYWRkRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShpbml0aWFsRXhjbHVkZWRMYW5ndWFnZXMsY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzKSBhcyBBcnJheTxzdHJpbmc+KTtcblx0XHRcdH1cblx0XHRcdGlmIChyZW1vdmVGb2xkTGFuZ3VhZ2VzLmxlbmd0aCAhPT0gMClcblx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKHJlbW92ZUZvbGQub2YocmVtb3ZlRm9sZExhbmd1YWdlcykpO1xuXHRcdFx0aWYgKHJlYWRkRm9sZExhbmd1YWdlcy5sZW5ndGggIT09IDApXG5cdFx0XHRcdGFkZEVmZmVjdHMgPSBhZGRFZmZlY3RzLmNvbmNhdChjb252ZXJ0UmVhZGRGb2xkKHRyYW5zYWN0aW9uLHJlYWRkRm9sZExhbmd1YWdlcykpO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0ZnVuY3Rpb24gY3Vyc29yRm9sZEV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcblx0XHRcdGNvbnN0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0Y29uc3QgZm9sZERlY29yYXRpb25zU3RhdGUgPSB0cmFuc2FjdGlvbi5zdGFydFN0YXRlLmZpZWxkKGZvbGREZWNvcmF0aW9ucyxmYWxzZSk/Lm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHRjb25zdCBoaWRkZW5EZWNvcmF0aW9uc1N0YXRlID0gdHJhbnNhY3Rpb24uc3RhcnRTdGF0ZS5maWVsZChoaWRkZW5EZWNvcmF0aW9ucyxmYWxzZSk/Lm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHR0cmFuc2FjdGlvbi5uZXdTZWxlY3Rpb24ucmFuZ2VzLmZvckVhY2goKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9Pntcblx0XHRcdFx0Zm9sZERlY29yYXRpb25zU3RhdGUuYmV0d2VlbihyYW5nZS5mcm9tLCByYW5nZS50bywgKGZvbGRGcm9tLCBmb2xkVG8sIGRlY29yYXRpb25WYWx1ZSkgPT4ge1xuXHRcdFx0XHRcdGlmIChyYW5nZUludGVyYWN0aW9uKGZvbGRGcm9tLGZvbGRUbyxyYW5nZSkpXG5cdFx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2goaGlkZUZvbGQub2Yoe2Zyb206IGZvbGRGcm9tLCB0bzogZm9sZFRvLCB2YWx1ZTogZGVjb3JhdGlvblZhbHVlfSkpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Zm9yIChsZXQgaXRlciA9IGhpZGRlbkRlY29yYXRpb25zU3RhdGUuaXRlcigpOyBpdGVyLnZhbHVlICE9PSBudWxsOyBpdGVyLm5leHQoKSkge1xuXHRcdFx0XHRcdGlmICghcmFuZ2VJbnRlcmFjdGlvbihpdGVyLmZyb20saXRlci50byxyYW5nZSkpXG5cdFx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2godW5oaWRlRm9sZC5vZih7ZnJvbTogaXRlci5mcm9tLCB0bzogaXRlci50bywgdmFsdWU6IGl0ZXIudmFsdWV9KSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0ZnVuY3Rpb24gZG9jdW1lbnRGb2xkRXh0ZW5kZXIoKSB7XG5cdFx0cmV0dXJuIEVkaXRvclN0YXRlLnRyYW5zYWN0aW9uRXh0ZW5kZXIub2YoKHRyYW5zYWN0aW9uKSA9PiB7XG5cdFx0XHRsZXQgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyhmb2xkQWxsKSkuZm9yRWFjaChlZmZlY3Q9Pntcblx0XHRcdFx0aWYgKHR5cGVvZiBlZmZlY3QudmFsdWU/LnRvRm9sZCAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdFx0XHRhZGRFZmZlY3RzID0gYWRkRWZmZWN0cy5jb25jYXQoZG9jdW1lbnRGb2xkKHRyYW5zYWN0aW9uLnN0YXJ0U3RhdGUsZWZmZWN0LnZhbHVlLnRvRm9sZCkpOyAvL1RPRE8gKEBtYXl1cmFua3YpIERvZXMgdGhpcyBuZWVkIHRvIGJlIHN0YXRlXG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRhZGRFZmZlY3RzID0gYWRkRWZmZWN0cy5jb25jYXQoZG9jdW1lbnRGb2xkKHRyYW5zYWN0aW9uLnN0YXJ0U3RhdGUpKTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBVcmdlbnQ6IEF1dG8gYWRkIHRlbXAgdW5mb2xkIG9uIHR5cGUgb2YgZm9sZCBhbmQgcmVtb3ZlIGJvdGggZm9sZCBhbmQgdGVtcCB1bmZvbGQgZm9yIHJlbW92YWxcblxuXHRjbGFzcyBMaW5lTnVtYmVyV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0bGluZU51bWJlcjogbnVtYmVyO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0bWF4TGluZU51bTogbnVtYmVyO1xuXHRcdGVtcHR5OiBib29sZWFuO1xuXHRcblx0XHRjb25zdHJ1Y3RvcihsaW5lTnVtYmVyOiBudW1iZXIsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIG1heExpbmVOdW06IG51bWJlciwgZW1wdHk6IGJvb2xlYW4gPSBmYWxzZSkge1xuXHRcdFx0c3VwZXIoKTtcblx0XHRcdHRoaXMubGluZU51bWJlciA9IGxpbmVOdW1iZXI7XG5cdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRcdFx0dGhpcy5tYXhMaW5lTnVtID0gbWF4TGluZU51bTtcblx0XHRcdHRoaXMuZW1wdHkgPSBlbXB0eTtcblx0XHR9XG5cdFxuXHRcdGVxKG90aGVyOiBMaW5lTnVtYmVyV2lkZ2V0KTogYm9vbGVhbiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5saW5lTnVtYmVyID09PSBvdGhlci5saW5lTnVtYmVyICYmIHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgJiYgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkICYmIHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0ICYmIHRoaXMubWF4TGluZU51bSA9PT0gb3RoZXIubWF4TGluZU51bSAmJiB0aGlzLmVtcHR5ID09PSBvdGhlci5lbXB0eTtcblx0XHR9XG5cdFxuXHRcdHRvRE9NKCk6IEhUTUxFbGVtZW50IHtcblx0XHRcdHJldHVybiBjcmVhdGVTcGFuKHthdHRyOiB7c3R5bGU6IHRoaXMubWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCA+ICh0aGlzLmxpbmVOdW1iZXIgKyB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpLmxlbmd0aD9cIndpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpO1wiOlwiXCJ9LCBjbHM6IFwiY29kZS1zdHlsZXItbGluZS1udW1iZXJcIiwgdGV4dDogdGhpcy5lbXB0eT9cIlwiOih0aGlzLmxpbmVOdW1iZXIgKyB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpfSk7XG5cdFx0fVxuXHR9XG5cdGNsYXNzIEhlYWRlcldpZGdldCBleHRlbmRzIFdpZGdldFR5cGUge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0dGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3M7XG5cdFx0c291cmNlUGF0aDogc3RyaW5nO1xuXHRcdHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbjtcblx0XHRpY29uVVJMOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdFx0Zm9sZGVkOiBib29sZWFuO1xuXHRcdGhpZGRlbjogYm9vbGVhbjtcblx0XG5cdFx0Y29uc3RydWN0b3IoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgZm9sZGVkOiBib29sZWFuLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMgPSBzdHJ1Y3R1cmVkQ2xvbmUoY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhlbWVTZXR0aW5ncyk7XG5cdFx0XHR0aGlzLnNvdXJjZVBhdGggPSBzb3VyY2VQYXRoO1xuXHRcdFx0dGhpcy5wbHVnaW4gPSBwbHVnaW47XG5cdFx0XHR0aGlzLmljb25VUkwgPSBnZXRMYW5ndWFnZUljb24odGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpO1xuXHRcdFx0dGhpcy5mb2xkZWQgPSBmb2xkZWQ7XG5cdFx0XHR0aGlzLmhpZGRlbiA9IGlzSGVhZGVySGlkZGVuKHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyx0aGlzLnRoZW1lU2V0dGluZ3MsdGhpcy5pY29uVVJMKTtcblx0XHR9XG5cdFx0XHRcblx0XHRlcShvdGhlcjogSGVhZGVyV2lkZ2V0KTogYm9vbGVhbiB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlICYmXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlICYmXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkICYmXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLnBsYWNlaG9sZGVyID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQucGxhY2Vob2xkZXIgJiZcblx0XHRcdFx0dGhpcy50aGVtZVNldHRpbmdzLmhlYWRlci5mb2xkUGxhY2Vob2xkZXIgPT09IG90aGVyLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciAmJlxuXHRcdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBvdGhlci50aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSAmJlxuXHRcdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IG90aGVyLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgJiZcblx0XHRcdFx0dGhpcy5mb2xkZWQgPT09IG90aGVyLmZvbGRlZCAmJlxuXHRcdFx0XHR0aGlzLmljb25VUkwgPT09IG90aGVyLmljb25VUkxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdFx0XG5cdFx0dG9ET00odmlldzogRWRpdG9yVmlldyk6IEhUTUxFbGVtZW50IHtcblx0XHRcdGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IGNyZWF0ZUhlYWRlcih0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMsdGhpcy50aGVtZVNldHRpbmdzLHRoaXMuc291cmNlUGF0aCx0aGlzLnBsdWdpbik7XG5cdFx0XHRpZiAodGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlIT09XCJcIilcblx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYGxhbmd1YWdlLSR7dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApO1xuXHRcdFx0aWYgKHRoaXMuZm9sZGVkKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWhlYWRlci1mb2xkZWRcIik7XG5cdFx0XHRoZWFkZXJDb250YWluZXIub25jbGljayA9IChldmVudCkgPT4ge1xuXHRcdFx0XHRpZiAoIShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpPy5jbGFzc0xpc3Q/LmNvbnRhaW5zKFwiaW50ZXJuYWwtbGlua1wiKSlcblx0XHRcdFx0XHRmb2xkT25DbGljayh2aWV3LGhlYWRlckNvbnRhaW5lcix0aGlzLmZvbGRlZCx0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpO1xuXHRcdFx0fTtcblx0XHRcdHJldHVybiBoZWFkZXJDb250YWluZXI7XG5cdFx0fVxuXHR9XG5cdGNsYXNzIE9wZW5lcldpZGdldCBleHRlbmRzIFdpZGdldFR5cGUge1xuXHRcdGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycztcblx0XHRwbHVnaW46IENvZGVTdHlsZXJQbHVnaW47XG5cblx0XHRjb25zdHJ1Y3RvciAoaW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzID0gaW5saW5lQ29kZVBhcmFtZXRlcnM7XG5cdFx0XHR0aGlzLnBsdWdpbiA9IHBsdWdpbjtcblx0XHR9XG5cblx0XHRlcShvdGhlcjogT3BlbmVyV2lkZ2V0KTogYm9vbGVhbiB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlID09IG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlICYmXG5cdFx0XHRcdHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUgPT0gb3RoZXIuaW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUgJiZcblx0XHRcdFx0dGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uID09IG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLmljb24gJiZcblx0XHRcdFx0Z2V0TGFuZ3VhZ2VJY29uKHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMubGFuZ3VhZ2UsdGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29ucykgPT0gZ2V0TGFuZ3VhZ2VJY29uKG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlLG90aGVyLnBsdWdpbi5sYW5ndWFnZUljb25zKVxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHR0b0RPTSgpOiBIVE1MRWxlbWVudCB7XG5cdFx0XHRyZXR1cm4gY3JlYXRlSW5saW5lT3BlbmVyKHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMsdGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29ucyxbXCJjb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyXCIsXCJjbS1pbmxpbmUtY29kZVwiXSk7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gYnVpbGRIZWFkZXJEZWNvcmF0aW9ucyhzdGF0ZTogRWRpdG9yU3RhdGUsIGZvbGRWYWx1ZTogKHBvc2l0aW9uOiBudW1iZXIsIGRlZmF1bHRGb2xkOiBib29sZWFuKT0+Ym9vbGVhbiA9IChwb3NpdGlvbixkZWZhdWx0Rm9sZCk9PmRlZmF1bHRGb2xkKSB7XG5cdFx0Y29uc3QgYnVpbGRlciA9IG5ldyBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4oKTtcblx0XHRjb25zdCBzb3VyY2VQYXRoID0gc3RhdGUuZmllbGQoZWRpdG9ySW5mb0ZpZWxkKT8uZmlsZT8ucGF0aCA/PyBcIlwiO1xuXHRcdGxldCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRcdHN5bnRheFRyZWUoc3RhdGUpLml0ZXJhdGUoe1xuXHRcdFx0ZW50ZXI6IChzeW50YXhOb2RlKSA9PiB7XG5cdFx0XHRcdGlmIChzeW50YXhOb2RlLnR5cGUubmFtZS5pbmNsdWRlcyhcIkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luXCIpKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc3RhcnRMaW5lID0gc3RhdGUuZG9jLmxpbmVBdChzeW50YXhOb2RlLmZyb20pO1xuXHRcdFx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwYXJzZUNvZGVibG9ja1BhcmFtZXRlcnModHJpbVBhcmFtZXRlckxpbmUoc3RhcnRMaW5lLnRleHQudG9TdHJpbmcoKSksc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFx0XHRpZiAoIWlzTGFuZ3VhZ2VJZ25vcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2Usc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpICYmICFpc0NvZGVibG9ja0lnbm9yZWQoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxzZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSAmJiAhY29kZWJsb2NrUGFyYW1ldGVycy5pZ25vcmUpIHtcblx0XHRcdFx0XHRcdGlmICghU1BFQ0lBTF9MQU5HVUFHRVMuc29tZShyZWdFeHAgPT4gbmV3IFJlZ0V4cChyZWdFeHApLnRlc3QoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpKVxuXHRcdFx0XHRcdFx0XHRidWlsZGVyLmFkZChzdGFydExpbmUuZnJvbSxzdGFydExpbmUuZnJvbSxEZWNvcmF0aW9uLndpZGdldCh7d2lkZ2V0OiBuZXcgSGVhZGVyV2lkZ2V0KGNvZGVibG9ja1BhcmFtZXRlcnMsZm9sZFZhbHVlKHN0YXJ0TGluZS5mcm9tLGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkKSxzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3Msc291cmNlUGF0aCxwbHVnaW4pLCBibG9jazogdHJ1ZSwgc2lkZTogLTF9KSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIGJ1aWxkZXIuZmluaXNoKCk7XG5cdH1cblx0ZnVuY3Rpb24gYnVpbGRMaW5lRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0Y29uc3QgYnVpbGRlciA9IG5ldyBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4oKTtcblx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdGNvbnN0IGZvbGRTdGFydCA9IHN0YXRlLmRvYy5saW5lQXQoaXRlci5mcm9tKTtcblx0XHRcdGNvbnN0IHN0YXJ0RGVsaW1pdGVyID0gdGVzdE9wZW5pbmdMaW5lKGZvbGRTdGFydC50ZXh0LnRvU3RyaW5nKCkpO1xuXHRcdFx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVycyA9IGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRcdGNvbnN0IHNob3dMaW5lTnVtYmVycyA9IChzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQ7XG5cdFx0XHRsZXQgZm9sZEVuZDogTGluZSB8IG51bGwgPSBudWxsO1xuXHRcdFx0bGV0IG1heExpbmVOdW06IG51bWJlciA9IDA7XG5cdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0bWF4TGluZU51bSA9IGZvbGRFbmQudG8tZm9sZFN0YXJ0LmZyb20tMStjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldDtcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgbGluZU51bWJlck1hcmdpbiA9IChtYXhMaW5lTnVtLnRvU3RyaW5nKCkubGVuZ3RoID4gMik/bWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCAqIHN0YXRlLmZpZWxkKGNoYXJXaWR0aFN0YXRlKTp1bmRlZmluZWQ7XG5cdFx0XHRidWlsZGVyLmFkZChmb2xkU3RhcnQuZnJvbSxmb2xkU3RhcnQuZnJvbSxEZWNvcmF0aW9uLmxpbmUoe2F0dHJpYnV0ZXM6IHtzdHlsZTogYC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoOiAke2xpbmVOdW1iZXJNYXJnaW4/bGluZU51bWJlck1hcmdpbitcInB4XCI6XCJjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweClcIn07YCwgY2xhc3M6IFwiY29kZS1zdHlsZXItbGluZVwiKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdGlmIChzaG93TGluZU51bWJlcnMpXG5cdFx0XHRcdGJ1aWxkZXIuYWRkKGZvbGRTdGFydC5mcm9tLGZvbGRTdGFydC5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KDAsY29kZWJsb2NrUGFyYW1ldGVycyxtYXhMaW5lTnVtLHRydWUpfSkpO1xuXHRcdFx0Zm9yIChsZXQgaSA9IGZvbGRTdGFydC5udW1iZXIrMTsgaSA8PSBzdGF0ZS5kb2MubGluZXM7IGkrKykge1xuXHRcdFx0XHRjb25zdCBsaW5lID0gc3RhdGUuZG9jPy5saW5lKGkpO1xuXHRcdFx0XHRpZiAoIWxpbmUpXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNvbnN0IGxpbmVUZXh0ID0gbGluZS50ZXh0LnRvU3RyaW5nKCk7XG5cdFx0XHRcdGlmICh0ZXN0T3BlbmluZ0xpbmUobGluZVRleHQpID09PSBzdGFydERlbGltaXRlcikge1xuXHRcdFx0XHRcdGZvbGRFbmQgPSBsaW5lO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJ1aWxkZXIuYWRkKGxpbmUuZnJvbSxsaW5lLmZyb20sRGVjb3JhdGlvbi5saW5lKHthdHRyaWJ1dGVzOiB7c3R5bGU6IGAtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aDogJHtsaW5lTnVtYmVyTWFyZ2luP2xpbmVOdW1iZXJNYXJnaW4rXCJweFwiOlwiY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKSAtIDEycHgpXCJ9O2AsIGNsYXNzOiAoKFNQRUNJQUxfTEFOR1VBR0VTLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKSk/XCJjb2RlLXN0eWxlci1saW5lXCI6Z2V0TGluZUNsYXNzKGNvZGVibG9ja1BhcmFtZXRlcnMsaS1mb2xkU3RhcnQubnVtYmVyLGxpbmUudGV4dCkuam9pbihcIiBcIikpKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdFx0aWYgKHNob3dMaW5lTnVtYmVycylcblx0XHRcdFx0XHRidWlsZGVyLmFkZChsaW5lLmZyb20sbGluZS5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KGktZm9sZFN0YXJ0Lm51bWJlcixjb2RlYmxvY2tQYXJhbWV0ZXJzLG1heExpbmVOdW0pfSkpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGZvbGRFbmQgIT09IG51bGwpIHtcblx0XHRcdFx0YnVpbGRlci5hZGQoZm9sZEVuZC5mcm9tLGZvbGRFbmQuZnJvbSxEZWNvcmF0aW9uLmxpbmUoe2F0dHJpYnV0ZXM6IHtzdHlsZTogYC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoOiAke2xpbmVOdW1iZXJNYXJnaW4/bGluZU51bWJlck1hcmdpbitcInB4XCI6XCJjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweClcIn07YCwgY2xhc3M6IFwiY29kZS1zdHlsZXItbGluZVwiKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdFx0aWYgKHNob3dMaW5lTnVtYmVycylcblx0XHRcdFx0XHRidWlsZGVyLmFkZChmb2xkRW5kLmZyb20sZm9sZEVuZC5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KDAsY29kZWJsb2NrUGFyYW1ldGVycyxtYXhMaW5lTnVtLHRydWUpfSkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0fVxuXHRmdW5jdGlvbiBidWlsZElubGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdGlmICghc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQpXG5cdFx0XHRyZXR1cm4gRGVjb3JhdGlvbi5ub25lO1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0Y29uc3Qgc291cmNlTW9kZSA9IGlzU291cmNlTW9kZShzdGF0ZSk7XG5cdFx0c3ludGF4VHJlZShzdGF0ZSkuaXRlcmF0ZSh7XG5cdFx0XHRlbnRlcjogKHN5bnRheE5vZGUpPT57XG5cdFx0XHRcdGNvbnN0IHJhbmdlcyA9IGdldElubGluZUNvZGVSYW5nZXMoc3RhdGUsc3ludGF4Tm9kZSk7XG5cdFx0XHRcdGlmIChyYW5nZXMgPT09IG51bGwpXG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRjb25zdCB7cGFyYW1ldGVycyx0ZXh0LHNlY3Rpb259ID0gcmFuZ2VzO1xuXHRcdFx0XHRpZiAocGFyYW1ldGVycy52YWx1ZSA9PT0gbnVsbClcblx0XHRcdFx0XHRhZGRVbnN0eWxlZElubGluZURlY29yYXRpb25zKHN0YXRlLGJ1aWxkZXIscGFyYW1ldGVycyBhcyB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogbnVsbH0sdGV4dCxzZWN0aW9uLHNvdXJjZU1vZGUpO1xuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0YWRkU3R5bGVkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGUsYnVpbGRlcixwYXJhbWV0ZXJzIGFzIHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBJbmxpbmVDb2RlUGFyYW1ldGVyc30sdGV4dCxzZWN0aW9uLHNvdXJjZU1vZGUpO1xuXHRcdFx0fSxcblx0XHR9KTtcblx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0fVxuXHRmdW5jdGlvbiBhZGRTdHlsZWRJbmxpbmVEZWNvcmF0aW9ucyhzdGF0ZTogRWRpdG9yU3RhdGUsIGJ1aWxkZXI6IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPiwgcGFyYW1ldGVyczoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IElubGluZUNvZGVQYXJhbWV0ZXJzfSwgdGV4dDoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHN0cmluZ30sIHNlY3Rpb246IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9LCBzb3VyY2VNb2RlOiBib29sZWFuKSB7XG5cdFx0aWYgKHNvdXJjZU1vZGUgfHwgc3RhdGUuc2VsZWN0aW9uLnJhbmdlcy5zb21lKChyYW5nZTogU2VsZWN0aW9uUmFuZ2UpPT5yYW5nZS50byA+PSBzZWN0aW9uLmZyb20gJiYgcmFuZ2UuZnJvbSA8PSBzZWN0aW9uLnRvKSlcblx0XHRcdGJ1aWxkZXIuYWRkKHBhcmFtZXRlcnMuZnJvbSwgcGFyYW1ldGVycy50bywgRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogXCJjb2RlLXN0eWxlci1pbmxpbmUtcGFyYW1ldGVyc1wifSkpO1xuXHRcdGVsc2Uge1xuXHRcdFx0YnVpbGRlci5hZGQocGFyYW1ldGVycy5mcm9tLCBwYXJhbWV0ZXJzLnRvLCBEZWNvcmF0aW9uLnJlcGxhY2Uoe30pKTtcblx0XHRcdGlmIChwYXJhbWV0ZXJzLnZhbHVlPy50aXRsZSB8fCAocGFyYW1ldGVycy52YWx1ZT8uaWNvbiAmJiBnZXRMYW5ndWFnZUljb24ocGFyYW1ldGVycy52YWx1ZS5sYW5ndWFnZSxwbHVnaW4ubGFuZ3VhZ2VJY29ucykpKVxuXHRcdFx0XHRidWlsZGVyLmFkZChwYXJhbWV0ZXJzLmZyb20sIHBhcmFtZXRlcnMuZnJvbSwgRGVjb3JhdGlvbi5yZXBsYWNlKHt3aWRnZXQ6IG5ldyBPcGVuZXJXaWRnZXQocGFyYW1ldGVycy52YWx1ZSxwbHVnaW4pfSkpO1xuXHRcdH1cblx0XHRtb2RlSGlnaGxpZ2h0KHtzdGFydDogcGFyYW1ldGVycy50bywgdGV4dDogdGV4dC52YWx1ZSwgbGFuZ3VhZ2U6IHBhcmFtZXRlcnMudmFsdWUubGFuZ3VhZ2V9LGJ1aWxkZXIpO1xuXHR9XG5cdFxuXHRmdW5jdGlvbiBjb252ZXJ0UmVhZGRGb2xkKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiwgcmVhZGRMYW5ndWFnZXM6IEFycmF5PHN0cmluZz4pIHtcblx0XHRjb25zdCBhZGRFZmZlY3RzOiBBcnJheTxTdGF0ZUVmZmVjdDx1bmtub3duPj4gPSBbXTtcblx0XHRmb3IgKGxldCBpdGVyID0gKHRyYW5zYWN0aW9uLnN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHsgLy9UT0RPIChAbWF5dXJhbmt2KSBSZWZhY3RvcjogVHJ5IGFuZCBtYWtlIHRoaXMgc3RhcnRTdGF0ZVxuXHRcdFx0aWYgKCFpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkIHx8ICFyZWFkZExhbmd1YWdlcy5pbmNsdWRlcyhpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKVxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdGNvZGVibG9ja0ZvbGRDYWxsYmFjayhpdGVyLmZyb20sdHJhbnNhY3Rpb24uc3RhdGUsKGZvbGRTdGFydCxmb2xkRW5kKT0+e1xuXHRcdFx0XHRhZGRFZmZlY3RzLnB1c2goZm9sZC5vZih7ZnJvbTogZm9sZFN0YXJ0LmZyb20sdG86IGZvbGRFbmQudG8sdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9fX0pKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gYWRkRWZmZWN0cztcblx0fVxuXHRmdW5jdGlvbiBpc0ZvbGRlZChzdGF0ZTogRWRpdG9yU3RhdGUsIHBvc2l0aW9uOiBudW1iZXIpOiBib29sZWFuIHtcblx0XHRsZXQgZm9sZGVkID0gZmFsc2U7XG5cdFx0c3RhdGUuZmllbGQoZm9sZERlY29yYXRpb25zLGZhbHNlKT8uYmV0d2Vlbihwb3NpdGlvbixwb3NpdGlvbiwoKT0+e1xuXHRcdFx0Zm9sZGVkID0gdHJ1ZTtcblx0XHR9KTtcblx0XHRyZXR1cm4gZm9sZGVkO1xuXHR9XG5cdGZ1bmN0aW9uIGRvY3VtZW50Rm9sZChzdGF0ZTogRWRpdG9yU3RhdGUsIHRvRm9sZD86IGJvb2xlYW4pOiBBcnJheTxTdGF0ZUVmZmVjdDx1bmtub3duPj4ge1xuXHRcdGNvbnN0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdGNvbnN0IHJlc2V0ID0gKHR5cGVvZiB0b0ZvbGQgPT09IFwidW5kZWZpbmVkXCIpO1xuXHRcdGZvciAobGV0IGl0ZXIgPSAoc3RhdGUuZmllbGQoaGVhZGVyRGVjb3JhdGlvbnMsZmFsc2UpID8/IERlY29yYXRpb24ubm9uZSkuaXRlcigpOyBpdGVyLnZhbHVlICE9PSBudWxsOyBpdGVyLm5leHQoKSkge1xuXHRcdFx0aWYgKGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuaGlkZGVuKVxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdGNvbnN0IGZvbGRlZCA9IGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuZm9sZGVkO1xuXHRcdFx0Y29uc3QgZGVmYXVsdEZvbGQgPSBpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkO1xuXHRcdFx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKGl0ZXIuZnJvbSxzdGF0ZSwoZm9sZFN0YXJ0LGZvbGRFbmQpPT57XG5cdFx0XHRcdGlmICgoIXJlc2V0ICYmIHRvRm9sZCAmJiAhZm9sZGVkKSB8fCAocmVzZXQgJiYgIWZvbGRlZCAmJiBkZWZhdWx0Rm9sZCkpXG5cdFx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKGZvbGQub2Yoe2Zyb206IGZvbGRTdGFydC5mcm9tLCB0bzogZm9sZEVuZC50bywgdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9fX0pKTtcblx0XHRcdFx0ZWxzZSBpZiAoKCFyZXNldCAmJiAhdG9Gb2xkICYmIGZvbGRlZCkgfHwgKHJlc2V0ICYmIGZvbGRlZCAmJiAhZGVmYXVsdEZvbGQpKVxuXHRcdFx0XHRcdGFkZEVmZmVjdHMucHVzaCh1bmZvbGQub2Yoe2Zyb206IGZvbGRTdGFydC5mcm9tLCB0bzogZm9sZEVuZC50b30pKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gYWRkRWZmZWN0cztcblx0fVxuXG5cdHJldHVybiBbXG5cdFx0aWdub3JlTGlzdGVuZXIsaWdub3JlRmlsZUxpc3RlbmVyLFxuXHRcdGN1cnNvckZvbGRFeHRlbmRlcigpLGRvY3VtZW50Rm9sZEV4dGVuZGVyKCksc2V0dGluZ3NDaGFuZ2VFeHRlbmRlcigpLFxuXHRcdHNldHRpbmdzU3RhdGUsY2hhcldpZHRoU3RhdGUsbGl2ZVByZXZpZXdDb21wYXJ0bWVudC5vZihbXSksaWdub3JlQ29tcGFydG1lbnQub2YoW10pLFxuXHRdO1xufVxuXG5jb25zdCBmb2xkOiBTdGF0ZUVmZmVjdFR5cGU8e2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IHN0cmluZ319fT4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IHVuZm9sZDogU3RhdGVFZmZlY3RUeXBlPHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuY29uc3QgaGlkZUZvbGQ6IFN0YXRlRWZmZWN0VHlwZTxSYW5nZTxEZWNvcmF0aW9uPj4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IHVuaGlkZUZvbGQ6IFN0YXRlRWZmZWN0VHlwZTxSYW5nZTxEZWNvcmF0aW9uPj4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IHJlbW92ZUZvbGQ6IFN0YXRlRWZmZWN0VHlwZTxBcnJheTxzdHJpbmc+PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuY29uc3QgZm9sZEFsbDogU3RhdGVFZmZlY3RUeXBlPHt0b0ZvbGQ/OiBib29sZWFufT4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcblxuZnVuY3Rpb24gY29kZWJsb2NrRm9sZENhbGxiYWNrKHN0YXJ0UG9zaXRpb246IG51bWJlciwgc3RhdGU6IEVkaXRvclN0YXRlLCBmb2xkQ2FsbGJhY2s6IChmb2xkU3RhcnQ6IExpbmUsIGZvbGRFbmQ6IExpbmUpPT52b2lkKSB7XG5cdGNvbnN0IGZvbGRTdGFydCA9IHN0YXRlLmRvYy5saW5lQXQoc3RhcnRQb3NpdGlvbik7XG5cdGNvbnN0IHN0YXJ0RGVsaW1pdGVyID0gdGVzdE9wZW5pbmdMaW5lKGZvbGRTdGFydC50ZXh0LnRvU3RyaW5nKCkpO1xuXHRsZXQgZm9sZEVuZDogTGluZSB8IG51bGwgPSBudWxsO1xuXHRmb3IgKGxldCBpID0gZm9sZFN0YXJ0Lm51bWJlcisxOyBpIDw9IHN0YXRlLmRvYy5saW5lczsgaSsrKSB7XG5cdFx0Y29uc3QgbGluZSA9IHN0YXRlLmRvYy5saW5lKGkpO1xuXHRcdGNvbnN0IGxpbmVUZXh0ID0gbGluZS50ZXh0LnRvU3RyaW5nKCk7XG5cdFx0aWYgKHRlc3RPcGVuaW5nTGluZShsaW5lVGV4dCkgPT09IHN0YXJ0RGVsaW1pdGVyKSB7XG5cdFx0XHRmb2xkRW5kID0gbGluZTtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXHRpZiAoZm9sZEVuZCAhPT0gbnVsbClcblx0XHRmb2xkQ2FsbGJhY2soZm9sZFN0YXJ0LGZvbGRFbmQpO1xufVxuXG5mdW5jdGlvbiBnZXRJbmxpbmVDb2RlUmFuZ2VzKHN0YXRlOiBFZGl0b3JTdGF0ZSwgc3ludGF4Tm9kZTogU3ludGF4Tm9kZVJlZik6IHtwYXJhbWV0ZXJzOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogSW5saW5lQ29kZVBhcmFtZXRlcnMgfCBudWxsfSwgdGV4dDoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHN0cmluZ30sIHNlY3Rpb246IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9fSB8IG51bGwge1xuXHRjb25zdCBkZWxpbWl0ZXJTaXplID0gZ2V0SW5saW5lRGVsaW1pdGVyU2l6ZShzeW50YXhOb2RlKTtcblx0aWYgKGRlbGltaXRlclNpemUgPT09IG51bGwpXG5cdFx0cmV0dXJuIG51bGw7XG5cdGNvbnN0IGlubGluZUNvZGVUZXh0ID0gc3RhdGUuZG9jLnNsaWNlU3RyaW5nKHN5bnRheE5vZGUuZnJvbSwgc3ludGF4Tm9kZS50byk7XG5cdGNvbnN0IHtwYXJhbWV0ZXJzLHRleHR9ID0gcGFyc2VJbmxpbmVDb2RlKGlubGluZUNvZGVUZXh0KTtcblx0Y29uc3QgcGFyYW1ldGVyc0xlbmd0aCA9IGlubGluZUNvZGVUZXh0Lmxhc3RJbmRleE9mKHRleHQpO1xuXHRyZXR1cm4ge3BhcmFtZXRlcnM6IHtmcm9tOiBzeW50YXhOb2RlLmZyb20sIHRvOiBzeW50YXhOb2RlLmZyb20rcGFyYW1ldGVyc0xlbmd0aCwgdmFsdWU6IHBhcmFtZXRlcnN9LCB0ZXh0OiB7ZnJvbTogc3ludGF4Tm9kZS5mcm9tK3BhcmFtZXRlcnNMZW5ndGgrMSx0bzogc3ludGF4Tm9kZS50byAsdmFsdWU6IHRleHR9LCBzZWN0aW9uOiB7ZnJvbTogc3ludGF4Tm9kZS5mcm9tLWRlbGltaXRlclNpemUsIHRvOiBzeW50YXhOb2RlLnRvK2RlbGltaXRlclNpemV9fTtcbn1cbmZ1bmN0aW9uIGdldElubGluZURlbGltaXRlclNpemUoc3ludGF4Tm9kZTogU3ludGF4Tm9kZVJlZik6IG51bWJlciB8IG51bGwge1xuXHRjb25zdCBwcm9wZXJ0aWVzID0gbmV3IFNldChzeW50YXhOb2RlLm5vZGUudHlwZS5wcm9wPHN0cmluZz4odG9rZW5DbGFzc05vZGVQcm9wKT8uc3BsaXQoXCIgXCIpKTtcblx0aWYgKCEocHJvcGVydGllcy5oYXMoXCJpbmxpbmUtY29kZVwiKSAmJiAhcHJvcGVydGllcy5oYXMoXCJmb3JtYXR0aW5nXCIpKSlcblx0XHRyZXR1cm4gbnVsbDtcblx0Y29uc3QgcHJldmlvdXNTaWJsaW5nID0gc3ludGF4Tm9kZS5ub2RlLnByZXZTaWJsaW5nO1xuXHRpZiAoIXByZXZpb3VzU2libGluZylcblx0XHRyZXR1cm4gbnVsbDtcblx0cmV0dXJuIHByZXZpb3VzU2libGluZy50by1wcmV2aW91c1NpYmxpbmcuZnJvbTtcbn1cbmZ1bmN0aW9uIGFkZFVuc3R5bGVkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlLCBidWlsZGVyOiBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4sIHBhcmFtZXRlcnM6IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBudWxsfSwgdGV4dDoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHN0cmluZ30sIHNlY3Rpb246IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9LCBzb3VyY2VNb2RlOiBib29sZWFuKSB7XG5cdGlmICh0ZXh0LnZhbHVlKSB7XG5cdFx0aWYgKCFzdGF0ZS5zZWxlY3Rpb24ucmFuZ2VzLnNvbWUoKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9PnJhbmdlLnRvID49IHNlY3Rpb24uZnJvbSAmJiByYW5nZS5mcm9tIDw9IHNlY3Rpb24udG8pICYmICFzb3VyY2VNb2RlKVxuXHRcdFx0YnVpbGRlci5hZGQocGFyYW1ldGVycy5mcm9tLCBwYXJhbWV0ZXJzLnRvLCBEZWNvcmF0aW9uLnJlcGxhY2Uoe30pKTtcblx0fVxufVxuZnVuY3Rpb24gbW9kZUhpZ2hsaWdodCh7c3RhcnQsdGV4dCxsYW5ndWFnZX06IHtzdGFydDogbnVtYmVyLCB0ZXh0OiBzdHJpbmcsIGxhbmd1YWdlOiBzdHJpbmd9LCBidWlsZGVyOiBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4pIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0Y29uc3QgbW9kZSA9IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUod2luZG93LkNvZGVNaXJyb3IuZGVmYXVsdHMsd2luZG93LkNvZGVNaXJyb3IuZmluZE1vZGVCeU5hbWUobGFuZ3VhZ2UpPy5taW1lKTtcblx0Y29uc3Qgc3RhdGUgPSB3aW5kb3cuQ29kZU1pcnJvci5zdGFydFN0YXRlKG1vZGUpO1xuXHRpZiAobW9kZT8udG9rZW4pIHtcblx0XHRjb25zdCBzdHJlYW0gPSBuZXcgd2luZG93LkNvZGVNaXJyb3IuU3RyaW5nU3RyZWFtKHRleHQpO1xuXHRcdHdoaWxlICghc3RyZWFtLmVvbCgpKSB7XG5cdFx0XHRjb25zdCBzdHlsZSA9IG1vZGUudG9rZW4oc3RyZWFtLHN0YXRlKTtcblx0XHRcdGlmIChzdHlsZSlcblx0XHRcdFx0YnVpbGRlci5hZGQoc3RhcnQrc3RyZWFtLnN0YXJ0LCBzdGFydCtzdHJlYW0ucG9zLCBEZWNvcmF0aW9uLm1hcmsoe2NsYXNzOiBgY20tJHtzdHlsZX1gfSkpO1xuXHRcdFx0c3RyZWFtLnN0YXJ0ID0gc3RyZWFtLnBvcztcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVkaXRpbmdEb2N1bWVudEZvbGQodmlldzogRWRpdG9yVmlldywgdG9Gb2xkPzogYm9vbGVhbikge1xuXHR2aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBmb2xkQWxsLm9mKCh0eXBlb2YgdG9Gb2xkICE9PSBcInVuZGVmaW5lZFwiKT97dG9Gb2xkOiB0b0ZvbGR9Ont9KX0pO1xuXHR2aWV3LnJlcXVlc3RNZWFzdXJlKCk7XG59XG5mdW5jdGlvbiBmb2xkT25DbGljayh2aWV3OiBFZGl0b3JWaWV3LCB0YXJnZXQ6IEhUTUxFbGVtZW50LCBmb2xkZWQ6IGJvb2xlYW4sIGxhbmd1YWdlOiBzdHJpbmcpIHtcblx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKHZpZXcucG9zQXRET00odGFyZ2V0KSx2aWV3LnN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHR2aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBmb2xkTGluZXMoIWZvbGRlZCx7ZnJvbTogZm9sZFN0YXJ0LmZyb20sIHRvOiBmb2xkRW5kLnRvLCB2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogbGFuZ3VhZ2V9fX0pfSk7XG5cdFx0dmlldy5yZXF1ZXN0TWVhc3VyZSgpO1xuXHR9KTtcbn1cbmZ1bmN0aW9uIGZvbGRMaW5lcyh0b0ZvbGQ6IGJvb2xlYW4sIGZvbGRJbmZvOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiBzdHJpbmd9fX0pOiBTdGF0ZUVmZmVjdDx1bmtub3duPiB7XG5cdHJldHVybiB0b0ZvbGQ/Zm9sZC5vZihmb2xkSW5mbyk6dW5mb2xkLm9mKHtmcm9tOiBmb2xkSW5mby5mcm9tLCB0bzogZm9sZEluZm8udG99KTtcbn1cbmZ1bmN0aW9uIGZvbGRSZWdpb24oe2Zyb206IGZvbGRGcm9tLCB0bzogZm9sZFRvLCB2YWx1ZToge3NwZWM6IHtsYW5ndWFnZX19fToge2Zyb206IG51bWJlciwgdG86IG51bWJlcix2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogc3RyaW5nfX19KTogUmFuZ2U8RGVjb3JhdGlvbj4ge1xuXHRyZXR1cm4gZm9sZERlY29yYXRpb24obGFuZ3VhZ2UpLnJhbmdlKGZvbGRGcm9tLGZvbGRUbyk7XG59XG5mdW5jdGlvbiB1bmZvbGRSZWdpb24oe2Zyb206IGZvbGRGcm9tLCB0bzogZm9sZFRvfToge2Zyb206IG51bWJlciwgdG86IG51bWJlcn0pIHtcblx0cmV0dXJuIHtmaWx0ZXI6IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpID0+ICh0byA8PSBmb2xkRnJvbSB8fCBmcm9tID49IGZvbGRUbyksIGZpbHRlckZyb206IGZvbGRGcm9tLCBmaWx0ZXJUbzogZm9sZFRvfTtcbn1cbmZ1bmN0aW9uIHJlbW92ZUZvbGRMYW5ndWFnZXMobGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+KSB7XG5cdHJldHVybiB7ZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogRGVjb3JhdGlvbikgPT4gIWxhbmd1YWdlcy5pbmNsdWRlcyh2YWx1ZT8uc3BlYz8ubGFuZ3VhZ2UpfTtcbn1cbmZ1bmN0aW9uIHVuaGlkZUZvbGRVcGRhdGUocmFuZ2U6IFJhbmdlPERlY29yYXRpb24+KSB7XG5cdHJldHVybiB7ZmlsdGVyRnJvbTogcmFuZ2UuZnJvbSwgZmlsdGVyVG86IHJhbmdlLnRvLCBmaWx0ZXI6IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpPT4hKGZyb20gPT09IHJhbmdlLmZyb20gJiYgdG8gPT09IHJhbmdlLnRvKX07XG59XG5mdW5jdGlvbiBmb2xkRGVjb3JhdGlvbihsYW5ndWFnZTogc3RyaW5nKTogRGVjb3JhdGlvbiB7XG5cdHJldHVybiBEZWNvcmF0aW9uLnJlcGxhY2Uoe2Jsb2NrOiB0cnVlLCBsYW5ndWFnZTogbGFuZ3VhZ2V9KTtcbn1cbmZ1bmN0aW9uIHJhbmdlSW50ZXJhY3Rpb24oZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCByYW5nZTogU2VsZWN0aW9uUmFuZ2UpOiBib29sZWFuIHtcblx0cmV0dXJuIChmcm9tIDw9IHJhbmdlLmhlYWQgJiYgcmFuZ2UuaGVhZCA8PSB0bykgfHwgKGZyb20gPD0gcmFuZ2UuYW5jaG9yICYmIHJhbmdlLmFuY2hvciA8PSB0byk7XG59XG5cbmZ1bmN0aW9uIGlzRmlsZUlnbm9yZWQoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG5cdGNvbnN0IGZpbGVQYXRoID0gc3RhdGUuZmllbGQoZWRpdG9ySW5mb0ZpZWxkKT8uZmlsZT8ucGF0aDtcblx0aWYgKHR5cGVvZiBmaWxlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gdGhpcy5hcHAubWV0YWRhdGFDYWNoZS5nZXRDYWNoZShmaWxlUGF0aCk/LmZyb250bWF0dGVyPy5bXCJjb2RlLXN0eWxlci1pZ25vcmVcIl0/LnRvU3RyaW5nKCkgPT09IFwidHJ1ZVwiO1xuXHRyZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc1NvdXJjZU1vZGUoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG5cdHJldHVybiAhc3RhdGUuZmllbGQoZWRpdG9yTGl2ZVByZXZpZXdGaWVsZCk7XG59XG5mdW5jdGlvbiBzZXREaWZmZXJlbmNlKGFycmF5MTogQXJyYXk8dW5rbm93bj4sIGFycmF5MjogQXJyYXk8dW5rbm93bj4pIHtcblx0cmV0dXJuIGFycmF5MS5maWx0ZXIoZWxlbWVudCA9PiAhYXJyYXkyLmluY2x1ZGVzKGVsZW1lbnQpKTtcbn1cbiIsICJpbXBvcnQgeyBNYXJrZG93blByZXZpZXdSZW5kZXJlciwgUGx1Z2luLCBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgQ29kZVN0eWxlclBsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xuaW1wb3J0IHsgQ29kZVN0eWxlclRoZW1lLCBFWEVDVVRFX0NPREVfU1VQUE9SVEVEX0xBTkdVQUdFUyB9IGZyb20gXCIuLi9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgQ29kZUJsb2NrQXJncywgZ2V0QXJncyB9IGZyb20gXCIuLi9FeHRlcm5hbC9FeGVjdXRlQ29kZS9Db2RlQmxvY2tBcmdzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGxhbmd1YWdlOiBzdHJpbmc7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdHJlZmVyZW5jZTogc3RyaW5nO1xuXHRmb2xkOiB7XG5cdFx0ZW5hYmxlZDogYm9vbGVhbjtcblx0XHRwbGFjZWhvbGRlcjogc3RyaW5nO1xuXHR9XG5cdGxpbmVOdW1iZXJzOiB7XG5cdFx0YWx3YXlzRW5hYmxlZDogYm9vbGVhbjtcblx0XHRhbHdheXNEaXNhYmxlZDogYm9vbGVhbjtcblx0XHRvZmZzZXQ6IG51bWJlcjtcblx0fSxcblx0bGluZVVud3JhcDoge1xuXHRcdGFsd2F5c0VuYWJsZWQ6IGJvb2xlYW47XG5cdFx0YWx3YXlzRGlzYWJsZWQ6IGJvb2xlYW47XG5cdFx0YWN0aXZlV3JhcDogYm9vbGVhbjtcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGRlZmF1bHQ6IEhpZ2hsaWdodHM7XG5cdFx0YWx0ZXJuYXRpdmU6IFJlY29yZDxzdHJpbmcsSGlnaGxpZ2h0cz5cblx0fSxcblx0aWdub3JlOiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBIaWdobGlnaHRzIHtcblx0bGluZU51bWJlcnM6IEFycmF5PG51bWJlcj47XG5cdHBsYWluVGV4dDogQXJyYXk8c3RyaW5nPjtcblx0cmVndWxhckV4cHJlc3Npb25zOiBBcnJheTxSZWdFeHA+O1xufVxuaW50ZXJmYWNlIEV4dGVybmFsUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcblx0c3VwcG9ydGVkTGFuZ3VhZ2VzPzogQXJyYXk8c3RyaW5nPjtcblx0Y29kZT86IChzb3VyY2U6IHN0cmluZywgc291cmNlUGF0aD86IHN0cmluZyk9PlByb21pc2U8e1xuXHRcdHN0YXJ0OiBudW1iZXI7XG5cdFx0Y29kZTogc3RyaW5nO1xuXHRcdGxhbmd1YWdlOiBzdHJpbmc7XG5cdFx0aGlnaGxpZ2h0OiBzdHJpbmc7XG5cdFx0bGluZXM6IEFycmF5PHN0cmluZz47XG5cdFx0ZmlsZVBhdGg6IHN0cmluZztcblx0XHRsaW5lbnVtYmVyOiBudW1iZXI7XG5cdH0+O1xuXHRhbmFseXplSGlnaExpZ2h0TGluZXM/OiAobGluZXM6IHN0cmluZ1tdLCBzb3VyY2U6IHN0cmluZyB8IHN0cmluZ1tdKT0+TWFwPG51bWJlcixib29sZWFuPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrU291cmNlKGNvZGVTZWN0aW9uOiBBcnJheTxzdHJpbmc+LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPHtjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4sIG5lc3RlZDogYm9vbGVhbn0+IHtcblx0Ly8gQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdGNvbnN0IHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+ID0gcGx1Z2luLmFwcC5wbHVnaW5zLnBsdWdpbnM7XG5cdGNvbnN0IGFkbW9uaXRpb25zOiBib29sZWFuID0gKFwib2JzaWRpYW4tYWRtb25pdGlvblwiIGluIHBsdWdpbnMpO1xuXHRjb25zdCBjb2RlYmxvY2tzOiBBcnJheTxBcnJheTxzdHJpbmc+PiA9IFtdO1xuXHRmdW5jdGlvbiBwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb246IEFycmF5PHN0cmluZz4pOiB2b2lkIHtcblx0XHRpZiAoY29kZVNlY3Rpb24ubGVuZ3RoID09PSAwKVxuXHRcdFx0cmV0dXJuO1xuXHRcdFxuXHRcdGNvbnN0IG9wZW5pbmdDb2RlYmxvY2tMaW5lID0gZ2V0T3BlbmluZ0xpbmUoY29kZVNlY3Rpb24pO1xuXHRcdGlmICghb3BlbmluZ0NvZGVibG9ja0xpbmUpXG5cdFx0XHRyZXR1cm47XG5cdFx0XG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlciA9IC9eXFxzKig/Oj5cXHMqKSooKD86YGBgK3x+fn4rKSkuKiQvLmV4ZWMob3BlbmluZ0NvZGVibG9ja0xpbmUpPy5bMV07XG5cdFx0aWYgKCFvcGVuRGVsaW1pdGVyKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlckluZGV4ID0gY29kZVNlY3Rpb24uaW5kZXhPZihvcGVuaW5nQ29kZWJsb2NrTGluZSk7XG5cdFx0Y29uc3QgY2xvc2VEZWxpbWl0ZXJJbmRleCA9IGNvZGVTZWN0aW9uLnNsaWNlKG9wZW5EZWxpbWl0ZXJJbmRleCsxKS5maW5kSW5kZXgoKGxpbmUpPT5uZXcgUmVnRXhwKGBeXFxcXHMqKD86PlxcXFxzKikqJHtvcGVuRGVsaW1pdGVyfSg/ISR7b3BlbkRlbGltaXRlclswXX0pJGApLnRlc3QobGluZSkpO1xuXHRcdGlmICghYWRtb25pdGlvbnMgfHwgIS9eXFxzKig/Oj5cXHMqKSooPzpgYGArfH5+fispICphZC0uKiQvLnRlc3Qob3BlbmluZ0NvZGVibG9ja0xpbmUpKVxuXHRcdFx0Y29kZWJsb2Nrcy5wdXNoKGNvZGVTZWN0aW9uLnNsaWNlKDAsb3BlbkRlbGltaXRlckluZGV4KzIrY2xvc2VEZWxpbWl0ZXJJbmRleCkpO1xuXHRcdGVsc2Vcblx0XHRcdHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbi5zbGljZShvcGVuRGVsaW1pdGVySW5kZXgrMSxvcGVuRGVsaW1pdGVySW5kZXgrMStjbG9zZURlbGltaXRlckluZGV4KSk7XG4gICAgICAgIFxuXHRcdHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbi5zbGljZShvcGVuRGVsaW1pdGVySW5kZXgrMStjbG9zZURlbGltaXRlckluZGV4KzEpKTtcblx0fVxuXHRwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb24pO1xuXHRyZXR1cm4ge2NvZGVibG9ja3NQYXJhbWV0ZXJzOiBhd2FpdCAodHlwZW9mIHNvdXJjZVBhdGggIT09IFwidW5kZWZpbmVkXCI/cGFyc2VDb2RlYmxvY2tzKGNvZGVibG9ja3MscGx1Z2luLHBsdWdpbnMsc291cmNlUGF0aCk6cGFyc2VDb2RlYmxvY2tzKGNvZGVibG9ja3MscGx1Z2luLHBsdWdpbnMpKSwgbmVzdGVkOiBjb2RlYmxvY2tzWzBdPyFhcnJheXNFcXVhbChjb2RlU2VjdGlvbixjb2RlYmxvY2tzWzBdKTp0cnVlfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFyc2VDb2RlYmxvY2tzKGNvZGVibG9ja3M6IEFycmF5PEFycmF5PHN0cmluZz4+LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBzb3VyY2VQYXRoPzogc3RyaW5nKTogUHJvbWlzZTxBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPj4ge1xuXHRjb25zdCBjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4gPSBbXTtcblx0Zm9yIChjb25zdCBjb2RlYmxvY2tMaW5lcyBvZiBjb2RlYmxvY2tzKSB7XG5cdFx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVycyA9IGF3YWl0ICh0eXBlb2Ygc291cmNlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIj9wYXJzZUNvZGVibG9jayhjb2RlYmxvY2tMaW5lcyxwbHVnaW4scGx1Z2lucyxzb3VyY2VQYXRoKTpwYXJzZUNvZGVibG9jayhjb2RlYmxvY2tMaW5lcyxwbHVnaW4scGx1Z2lucykpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzICE9PSBudWxsKVxuXHRcdFx0Y29kZWJsb2Nrc1BhcmFtZXRlcnMucHVzaChjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0fVxuXHRyZXR1cm4gY29kZWJsb2Nrc1BhcmFtZXRlcnM7XG59XG5hc3luYyBmdW5jdGlvbiBwYXJzZUNvZGVibG9jayhjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8Q29kZWJsb2NrUGFyYW1ldGVycyB8IG51bGw+IHtcblx0Y29uc3QgcGFyYW1ldGVyTGluZSA9IGdldFBhcmFtZXRlckxpbmUoY29kZWJsb2NrTGluZXMpO1xuXHRpZiAoIXBhcmFtZXRlckxpbmUpXG5cdFx0cmV0dXJuIG51bGw7XG5cdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwYXJzZUNvZGVibG9ja1BhcmFtZXRlcnMocGFyYW1ldGVyTGluZSxwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcblx0aWYgKGlzQ29kZWJsb2NrSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSlcblx0XHRyZXR1cm4gbnVsbDtcblxuXHRyZXR1cm4gYXdhaXQgKHR5cGVvZiBzb3VyY2VQYXRoICE9PSBcInVuZGVmaW5lZFwiP3BsdWdpbkFkanVzdFBhcmFtZXRlcnMoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW4scGx1Z2lucyxjb2RlYmxvY2tMaW5lcyxzb3VyY2VQYXRoKTpwbHVnaW5BZGp1c3RQYXJhbWV0ZXJzKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2luLHBsdWdpbnMsY29kZWJsb2NrTGluZXMpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvZGVibG9ja1BhcmFtZXRlcnMocGFyYW1ldGVyTGluZTogc3RyaW5nLCB0aGVtZTogQ29kZVN0eWxlclRoZW1lKTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMgPSB7XG5cdFx0bGFuZ3VhZ2U6IFwiXCIsXG5cdFx0dGl0bGU6IFwiXCIsXG5cdFx0cmVmZXJlbmNlOiBcIlwiLFxuXHRcdGZvbGQ6IHtcblx0XHRcdGVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0cGxhY2Vob2xkZXI6IFwiXCIsXG5cdFx0fSxcblx0XHRsaW5lTnVtYmVyczoge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRvZmZzZXQ6IDAsXG5cdFx0fSxcblx0XHRsaW5lVW53cmFwOiB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH0sXG5cdFx0aGlnaGxpZ2h0czoge1xuXHRcdFx0ZGVmYXVsdDoge1xuXHRcdFx0XHRsaW5lTnVtYmVyczogW10sXG5cdFx0XHRcdHBsYWluVGV4dDogW10sXG5cdFx0XHRcdHJlZ3VsYXJFeHByZXNzaW9uczogW10sXG5cdFx0XHR9LFxuXHRcdFx0YWx0ZXJuYXRpdmU6IHt9LFxuXHRcdH0sXG5cdFx0aWdub3JlOiBmYWxzZSxcblx0fTtcblxuXHRpZiAocGFyYW1ldGVyTGluZS5zdGFydHNXaXRoKFwiYGBgXCIpKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBwYXJhbWV0ZXJMaW5lLnJlcGxhY2UoL15gYGArKD89W15gXXwkKS8sXCJcIik7XG5cdGVsc2UgaWYgKHBhcmFtZXRlckxpbmUuc3RhcnRzV2l0aChcIn5+flwiKSlcblx0XHRwYXJhbWV0ZXJMaW5lID0gcGFyYW1ldGVyTGluZS5yZXBsYWNlKC9efn5+Kyg/PVtefl18JCkvLFwiXCIpO1xuXHRlbHNlXG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cblx0Y29uc3Qgcm1kTWF0Y2ggPSAvXlxceyguKylcXH0gKiQvLmV4ZWMocGFyYW1ldGVyTGluZSk7XG5cdGlmIChybWRNYXRjaClcblx0XHRwYXJhbWV0ZXJMaW5lID0gcm1kTWF0Y2hbMV07XG5cblx0Y29uc3QgbGFuZ3VhZ2VCcmVhayA9IHBhcmFtZXRlckxpbmUuaW5kZXhPZihcIiBcIik7XG5cdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKDAsKGxhbmd1YWdlQnJlYWsgIT09IC0xKT9sYW5ndWFnZUJyZWFrOnBhcmFtZXRlckxpbmUubGVuZ3RoKS50b0xvd2VyQ2FzZSgpO1xuXHRpZiAobGFuZ3VhZ2VCcmVhayA9PT0gLTEpXG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cdHBhcmFtZXRlckxpbmUgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKGxhbmd1YWdlQnJlYWsrMSk7XG5cdGlmIChybWRNYXRjaClcblx0XHRwYXJhbWV0ZXJMaW5lID0gXCJ0aXRsZTpcIiArIHBhcmFtZXRlckxpbmU7XG5cblx0Y29uc3QgcGFyYW1ldGVyU3RyaW5ncyA9IHBhcmFtZXRlckxpbmUubWF0Y2goLyg/OlteXFxzXCInXSt8XCJbXlwiXSpcInwnW14nXSonKSsvZyk7XG5cdGlmICghcGFyYW1ldGVyU3RyaW5ncylcblx0XHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcblx0XG5cdHBhcmFtZXRlclN0cmluZ3MuZm9yRWFjaCgocGFyYW1ldGVyU3RyaW5nKSA9PiBwYXJzZUNvZGVibG9ja1BhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmcucmVwbGFjZSgvKD86Xix8LCQpL2csIFwiXCIpLGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWUpKTtcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5hc3luYyBmdW5jdGlvbiBwbHVnaW5BZGp1c3RQYXJhbWV0ZXJzKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBzb3VyY2VQYXRoPzogc3RyaW5nKTogUHJvbWlzZTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiB7XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID09PSBcInByZXZpZXdcIilcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gYXdhaXQgKHR5cGVvZiBzb3VyY2VQYXRoICE9PSBcInVuZGVmaW5lZFwiP3BsdWdpbkFkanVzdFByZXZpZXdDb2RlKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2lucyxjb2RlYmxvY2tMaW5lcyxzb3VyY2VQYXRoKTpwbHVnaW5BZGp1c3RQcmV2aWV3Q29kZShjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMpKTtcblx0ZWxzZSBpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gXCJpbmNsdWRlXCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IHBsdWdpbkFkanVzdEZpbGVJbmNsdWRlKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2lucyxjb2RlYmxvY2tMaW5lcyk7XG5cdGVsc2UgaWYgKC9ydW4tXFx3Ki8udGVzdChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSlcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGx1Z2luQWRqdXN0RXhlY3V0ZUNvZGVSdW4oY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW4scGx1Z2lucyk7XG5cdGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwbHVnaW5BZGp1c3RFeGVjdXRlQ29kZShjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMpO1xuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmFzeW5jIGZ1bmN0aW9uIHBsdWdpbkFkanVzdFByZXZpZXdDb2RlKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8Q29kZWJsb2NrUGFyYW1ldGVycz4ge1xuXHRpZiAocGx1Z2lucz8uW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdPy5jb2RlICYmIHBsdWdpbnM/LltcIm9ic2lkaWFuLWNvZGUtcHJldmlld1wiXT8uYW5hbHl6ZUhpZ2hMaWdodExpbmVzKSB7XG5cdFx0Y29uc3QgY29kZVByZXZpZXdQYXJhbXMgPSBhd2FpdCBwbHVnaW5zW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdLmNvZGUoY29kZWJsb2NrTGluZXMuc2xpY2UoMSwtMSkuam9pbihcIlxcblwiKSxzb3VyY2VQYXRoKTtcblx0XHRpZiAoIWNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQgJiYgIWNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCkge1xuXHRcdFx0aWYgKHR5cGVvZiBjb2RlUHJldmlld1BhcmFtcy5zdGFydCA9PT0gXCJudW1iZXJcIilcblx0XHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQgPSBjb2RlUHJldmlld1BhcmFtcy5zdGFydCAtIDE7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgPSBCb29sZWFuKGNvZGVQcmV2aWV3UGFyYW1zLmxpbmVudW1iZXIpO1xuXHRcdH1cblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5saW5lTnVtYmVycyA9IFsuLi5uZXcgU2V0KGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LmxpbmVOdW1iZXJzLmNvbmNhdChBcnJheS5mcm9tKHBsdWdpbnNbXCJvYnNpZGlhbi1jb2RlLXByZXZpZXdcIl0uYW5hbHl6ZUhpZ2hMaWdodExpbmVzKGNvZGVQcmV2aWV3UGFyYW1zLmxpbmVzLGNvZGVQcmV2aWV3UGFyYW1zLmhpZ2hsaWdodCksKHBhaXI6IFtudW1iZXIsYm9vbGVhbl0pPT4ocGFpclswXSkpKSldO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID09PSBcIlwiKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IGNvZGVQcmV2aWV3UGFyYW1zLmZpbGVQYXRoLnNwbGl0KFwiXFxcXFwiKS5wb3AoKT8uc3BsaXQoXCIvXCIpLnBvcCgpID8/IFwiXCI7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IGNvZGVQcmV2aWV3UGFyYW1zLmxhbmd1YWdlO1xuXHR9XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gcGx1Z2luQWRqdXN0RmlsZUluY2x1ZGUoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGlmIChcImZpbGUtaW5jbHVkZVwiIGluIHBsdWdpbnMpIHtcblx0XHRjb25zdCBmaWxlSW5jbHVkZUxhbmd1YWdlID0gL2luY2x1ZGUgKFxcdyspLy5leGVjKGNvZGVibG9ja0xpbmVzWzBdKT8uWzFdO1xuXHRcdGlmICh0eXBlb2YgZmlsZUluY2x1ZGVMYW5ndWFnZSAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBmaWxlSW5jbHVkZUxhbmd1YWdlO1xuXHR9XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gcGx1Z2luQWRqdXN0RXhlY3V0ZUNvZGUoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGlmIChcImV4ZWN1dGUtY29kZVwiIGluIHBsdWdpbnMpIHtcblx0XHRjb25zdCBjb2RlYmxvY2tBcmdzOiBDb2RlQmxvY2tBcmdzID0gZ2V0QXJncyhjb2RlYmxvY2tMaW5lc1swXSk7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPz8gY29kZWJsb2NrQXJncz8ubGFiZWwgPz8gXCJcIjtcblx0fVxuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIHBsdWdpbkFkanVzdEV4ZWN1dGVDb2RlUnVuKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4pOiBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0aWYgKFwiZXhlY3V0ZS1jb2RlXCIgaW4gcGx1Z2lucykge1xuXHRcdGlmIChFWEVDVVRFX0NPREVfU1VQUE9SVEVEX0xBTkdVQUdFUy5pbmNsdWRlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLnNsaWNlKDQpKSAmJiAhaXNDb2RlYmxvY2tJZ25vcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UscGx1Z2luLnNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2Uuc2xpY2UoNCk7XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZTogQ29kZVN0eWxlclRoZW1lKTogdm9pZCB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwiaWdub3JlXCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5pZ25vcmUgPSB0cnVlO1xuXHRlbHNlIGlmICgvXnRpdGxlWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKVxuXHRcdG1hbmFnZVRpdGxlKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL15yZWZbOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykgfHwgL15yZWZlcmVuY2VbOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykpXG5cdFx0bWFuYWdlUmVmZXJlbmNlKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL15mb2xkWzo9XT8vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRtYW5hZ2VGb2xkaW5nKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL15sbls6PV0vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRtYW5hZ2VMaW5lTnVtYmVyaW5nKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL151bndyYXBbOj1dPy8udGVzdChwYXJhbWV0ZXJTdHJpbmcpIHx8IHBhcmFtZXRlclN0cmluZyA9PT0gXCJ3cmFwXCIpXG5cdFx0bWFuYWdlV3JhcHBpbmcocGFyYW1ldGVyU3RyaW5nLGNvZGVibG9ja1BhcmFtZXRlcnMpO1xuXHRlbHNlXG5cdFx0YWRkSGlnaGxpZ2h0cyhwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZSk7XG59XG5mdW5jdGlvbiBtYW5hZ2VUaXRsZShwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRjb25zdCB0aXRsZU1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcInRpdGxlOlwiLmxlbmd0aCkpO1xuXHRpZiAodGl0bGVNYXRjaClcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID0gdGl0bGVNYXRjaFsyXS50cmltKCk7XG5cdGNvbnN0IHJlZlRpdGxlTWF0Y2ggPSAvXFxbXFxbKFtefF0qPylcXHw/KFtefF0qPylcXF1cXF0vLmV4ZWMocGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidGl0bGU6XCIubGVuZ3RoKSk7XG5cdGlmIChyZWZUaXRsZU1hdGNoKSB7XG5cdFx0aWYgKHJlZlRpdGxlTWF0Y2hbMV0gPT09IFwiXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSByZWZUaXRsZU1hdGNoWzJdLnRyaW0oKTtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID0gcmVmVGl0bGVNYXRjaFsyXS50cmltKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSByZWZUaXRsZU1hdGNoWzJdLnRyaW0oKTtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID0gcmVmVGl0bGVNYXRjaFsxXS50cmltKCk7XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBtYW5hZ2VSZWZlcmVuY2UocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpIHtcblx0aWYgKC9ecmVmWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKVxuXHRcdHBhcmFtZXRlclN0cmluZy5zbGljZShcInJlZjpcIi5sZW5ndGgpO1xuXHRlbHNlXG5cdFx0cGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwicmVmZXJlbmNlOlwiLmxlbmd0aCk7XG5cdFxuXHRjb25zdCByZWZNYXRjaCA9IC9cXFtcXFsoW158XSo/KSg/OlxcfFtefF0qPyk/XFxdXFxdLy5leGVjKHBhcmFtZXRlclN0cmluZyk7XG5cdGlmIChyZWZNYXRjaCkge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID0gcmVmTWF0Y2hbMV0udHJpbSgpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID09PSBcIlwiKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IHJlZk1hdGNoWzFdLnRyaW0oKTtcblx0fVxufVxuZnVuY3Rpb24gbWFuYWdlRm9sZGluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcImZvbGRcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZCA9IHtcblx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRwbGFjZWhvbGRlcjogXCJcIixcblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGNvbnN0IGZvbGRQbGFjZWhvbGRlck1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcImZvbGQ6XCIubGVuZ3RoKSk7XG5cdFx0aWYgKGZvbGRQbGFjZWhvbGRlck1hdGNoKSB7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQgPSB7XG5cdFx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdHBsYWNlaG9sZGVyOiBmb2xkUGxhY2Vob2xkZXJNYXRjaFsyXS50cmltKCksXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuZnVuY3Rpb24gbWFuYWdlTGluZU51bWJlcmluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRwYXJhbWV0ZXJTdHJpbmcgPSBwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJsbjpcIi5sZW5ndGgpO1xuXHRpZiAoL15cXGQrJC8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycyA9IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRvZmZzZXQ6IHBhcnNlSW50KHBhcmFtZXRlclN0cmluZyktMSxcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0b2Zmc2V0OiAwLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nLnRvTG93ZXJDYXNlKCkgPT09IFwiZmFsc2VcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiB0cnVlLFxuXHRcdFx0b2Zmc2V0OiAwLFxuXHRcdH07XG5cdH1cbn1cbmZ1bmN0aW9uIG1hbmFnZVdyYXBwaW5nKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKSB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwid3JhcFwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogdHJ1ZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcInVud3JhcFwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0cGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidW53cmFwOlwiLmxlbmd0aCk7XG5cdFx0aWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImluYWN0aXZlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRhY3RpdmVXcmFwOiB0cnVlLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIikge1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImZhbHNlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRcdGFsd2F5c0Rpc2FibGVkOiB0cnVlLFxuXHRcdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBhZGRIaWdobGlnaHRzKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZTogQ29kZVN0eWxlclRoZW1lKSB7XG5cdGNvbnN0IGhpZ2hsaWdodE1hdGNoID0gL14oXFx3KylbOj1dKC4rKSQvLmV4ZWMocGFyYW1ldGVyU3RyaW5nKTtcblx0aWYgKGhpZ2hsaWdodE1hdGNoKSB7XG5cdFx0aWYgKGhpZ2hsaWdodE1hdGNoWzFdID09PSBcImhsXCIpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdCA9IHBhcnNlSGlnaGxpZ2h0ZWRMaW5lcyhoaWdobGlnaHRNYXRjaFsyXSk7XG5cdFx0ZWxzZSBpZiAoaGlnaGxpZ2h0TWF0Y2hbMV0gaW4gdGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cylcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZVtoaWdobGlnaHRNYXRjaFsxXV0gPSBwYXJzZUhpZ2hsaWdodGVkTGluZXMoaGlnaGxpZ2h0TWF0Y2hbMl0pO1xuXHR9IGVsc2UgaWYgKC9ee1tcXGQtLF0rfSQvLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdCA9IHBhcnNlSGlnaGxpZ2h0ZWRMaW5lcyhwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoMSwtMSkpO1xufVxuZnVuY3Rpb24gcGFyc2VIaWdobGlnaHRlZExpbmVzKGhpZ2hsaWdodGVkTGluZXNTdHJpbmc6IHN0cmluZyk6IEhpZ2hsaWdodHMge1xuXHRjb25zdCBoaWdobGlnaHRSdWxlcyA9IGhpZ2hsaWdodGVkTGluZXNTdHJpbmcuc3BsaXQoXCIsXCIpO1xuXHRjb25zdCBsaW5lTnVtYmVyczogU2V0PG51bWJlcj4gPSBuZXcgU2V0KCk7XG5cdGNvbnN0IHBsYWluVGV4dDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cdGNvbnN0IHJlZ3VsYXJFeHByZXNzaW9uczogU2V0PFJlZ0V4cD4gPSBuZXcgU2V0KCk7XG5cdGhpZ2hsaWdodFJ1bGVzLmZvckVhY2goaGlnaGxpZ2h0UnVsZSA9PiB7XG5cdFx0aWYgKC9cXGQrLVxcZCsvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIHsgLy8gTnVtYmVyIFJhbmdlXG5cdFx0XHRjb25zdCBbc3RhcnQsZW5kXSA9IGhpZ2hsaWdodFJ1bGUuc3BsaXQoXCItXCIpLm1hcChudW0gPT4gcGFyc2VJbnQobnVtKSk7XG5cdFx0XHRpZiAoc3RhcnQgJiYgZW5kICYmIHN0YXJ0IDw9IGVuZClcblx0XHRcdFx0QXJyYXkuZnJvbSh7bGVuZ3RoOmVuZC1zdGFydCsxfSwgKF8sbnVtKSA9PiBudW0gKyBzdGFydCkuZm9yRWFjaChsaW5lTnVtYmVyID0+IGxpbmVOdW1iZXJzLmFkZChsaW5lTnVtYmVyKSk7XG5cdFx0fSBlbHNlIGlmICgvXlxcLyguKilcXC8kLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSB7IC8vIFJlZ2V4XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRyZWd1bGFyRXhwcmVzc2lvbnMuYWRkKG5ldyBSZWdFeHAoaGlnaGxpZ2h0UnVsZS5yZXBsYWNlKC9eXFwvKC4qKVxcLyQvLFwiJDFcIikpKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHQvL3Bhc3Ncblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKC9cIi4qXCIvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIHsgLy8gUGxhaW4gVGV4dFxuXHRcdFx0cGxhaW5UZXh0LmFkZChoaWdobGlnaHRSdWxlLnN1YnN0cmluZygxLGhpZ2hsaWdodFJ1bGUubGVuZ3RoLTEpKTtcblx0XHR9IGVsc2UgaWYgKC8nLionLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSB7IC8vIFBsYWluIFRleHRcblx0XHRcdHBsYWluVGV4dC5hZGQoaGlnaGxpZ2h0UnVsZS5zdWJzdHJpbmcoMSxoaWdobGlnaHRSdWxlLmxlbmd0aC0xKSk7XG5cdFx0fSBlbHNlIGlmICgvXFxELy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSB7IC8vIFBsYWluIFRleHRcblx0XHRcdHBsYWluVGV4dC5hZGQoaGlnaGxpZ2h0UnVsZSk7XG5cdFx0fSBlbHNlIGlmICgvXFxkKy8udGVzdChoaWdobGlnaHRSdWxlKSkgeyAvLyBQbGFpbiBOdW1iZXJcblx0XHRcdGxpbmVOdW1iZXJzLmFkZChwYXJzZUludChoaWdobGlnaHRSdWxlKSk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIHtcblx0XHRsaW5lTnVtYmVyczogWy4uLmxpbmVOdW1iZXJzXSxcblx0XHRwbGFpblRleHQ6IFsuLi5wbGFpblRleHRdLFxuXHRcdHJlZ3VsYXJFeHByZXNzaW9uczogWy4uLnJlZ3VsYXJFeHByZXNzaW9uc10sXG5cdH07XG59XG5leHBvcnQgZnVuY3Rpb24gaXNMYW5ndWFnZUlnbm9yZWQobGFuZ3VhZ2U6IHN0cmluZywgZXhjbHVkZWRMYW5ndWFnZXNTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gcGFyc2VSZWdleEV4Y2x1ZGVkTGFuZ3VhZ2VzKGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nKS5zb21lKHJlZ2V4RXhjbHVkZWRMYW5ndWFnZT0+cmVnZXhFeGNsdWRlZExhbmd1YWdlLnRlc3QobGFuZ3VhZ2UpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0NvZGVibG9ja0lnbm9yZWQobGFuZ3VhZ2U6IHN0cmluZywgd2hpdGVsaXN0ZWRDb2RlYmxvY2tzU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0cmV0dXJuIChsYW5ndWFnZSBpbiBNYXJrZG93blByZXZpZXdSZW5kZXJlci5jb2RlQmxvY2tQb3N0UHJvY2Vzc29ycykgJiYgIXBhcnNlUmVnZXhFeGNsdWRlZExhbmd1YWdlcyh3aGl0ZWxpc3RlZENvZGVibG9ja3NTdHJpbmcpLnNvbWUocmVnZXhFeGNsdWRlZExhbmd1YWdlPT5yZWdleEV4Y2x1ZGVkTGFuZ3VhZ2UudGVzdChsYW5ndWFnZSkpO1xufVxuZnVuY3Rpb24gcGFyc2VSZWdleEV4Y2x1ZGVkTGFuZ3VhZ2VzKGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nOiBzdHJpbmcpOiBBcnJheTxSZWdFeHA+IHtcblx0cmV0dXJuIGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nLnNwbGl0KFwiLFwiKS5tYXAocmVnZXhMYW5ndWFnZSA9PiBuZXcgUmVnRXhwKGBeJHtyZWdleExhbmd1YWdlLnRyaW0oKS5yZXBsYWNlKC9cXCovZyxcIi4rXCIpfSRgLFwiaVwiKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJhbWV0ZXJMaW5lKGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0bGV0IG9wZW5pbmdDb2RlYmxvY2tMaW5lID0gZ2V0T3BlbmluZ0xpbmUoY29kZWJsb2NrTGluZXMpO1xuXHRpZiAob3BlbmluZ0NvZGVibG9ja0xpbmUgJiYgKG9wZW5pbmdDb2RlYmxvY2tMaW5lICE9PSBjb2RlYmxvY2tMaW5lc1swXSB8fCAvPlxccyooPzpbYH5dKS8udGVzdChvcGVuaW5nQ29kZWJsb2NrTGluZSkpKVxuXHRcdG9wZW5pbmdDb2RlYmxvY2tMaW5lID0gY2xlYW5QYXJhbWV0ZXJMaW5lKG9wZW5pbmdDb2RlYmxvY2tMaW5lKTtcblx0cmV0dXJuIG9wZW5pbmdDb2RlYmxvY2tMaW5lO1xufVxuZnVuY3Rpb24gZ2V0T3BlbmluZ0xpbmUoY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gY29kZWJsb2NrTGluZXMuZmluZCgobGluZTogc3RyaW5nKT0+Qm9vbGVhbih0ZXN0T3BlbmluZ0xpbmUobGluZSkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0T3BlbmluZ0xpbmUoY29kZWJsb2NrTGluZTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgbGluZU1hdGNoID0gL14oXFxzKig/Oj5cXHMqKSopKGBgYCt8fn5+KykvLmV4ZWMoY29kZWJsb2NrTGluZSk7XG5cdGlmICghbGluZU1hdGNoKVxuXHRcdHJldHVybiBcIlwiO1xuXHRpZiAoY29kZWJsb2NrTGluZS5pbmRleE9mKGxpbmVNYXRjaFsyXSxsaW5lTWF0Y2hbMV0ubGVuZ3RoK2xpbmVNYXRjaFsyXS5sZW5ndGgrMSk9PT0tMSlcblx0XHRyZXR1cm4gbGluZU1hdGNoWzJdO1xuXHRyZXR1cm4gXCJcIjtcbn1cbmZ1bmN0aW9uIGNsZWFuUGFyYW1ldGVyTGluZShwYXJhbWV0ZXJMaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gdHJpbVBhcmFtZXRlckxpbmUocGFyYW1ldGVyTGluZSkucmVwbGFjZSgvXig/Oj5cXHMqKSooYGBgK3x+fn4rKS8sXCIkMVwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0cmltUGFyYW1ldGVyTGluZShwYXJhbWV0ZXJMaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gcGFyYW1ldGVyTGluZS50cmltKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGaWxlQ29udGVudExpbmVzKHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkPiB7XG5cdGNvbnN0IGZpbGUgPSBwbHVnaW4uYXBwLnZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChzb3VyY2VQYXRoKTtcblx0aWYgKCFmaWxlKSB7XG5cdFx0Y29uc29sZS5lcnJvcihgRmlsZSBub3QgZm91bmQ6ICR7c291cmNlUGF0aH1gKTtcblx0XHRyZXR1cm47XG5cdH1cblx0Y29uc3QgZmlsZUNvbnRlbnQgPSBhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmNhY2hlZFJlYWQoPFRGaWxlPiBmaWxlKS5jYXRjaCgoZXJyb3IpID0+IHtcblx0XHRjb25zb2xlLmVycm9yKGBFcnJvciByZWFkaW5nIGZpbGU6ICR7ZXJyb3IubWVzc2FnZX1gKTtcblx0XHRyZXR1cm4gXCJcIjtcblx0fSk7XG5cdGlmICghZmlsZUNvbnRlbnQpXG5cdFx0cmV0dXJuO1xuXHRyZXR1cm4gZmlsZUNvbnRlbnQuc3BsaXQoL1xcbi9nKTtcbn1cblxuZnVuY3Rpb24gYXJyYXlzRXF1YWwoYXJyYXkxOiBBcnJheTx1bmtub3duPixhcnJheTI6IEFycmF5PHVua25vd24+KTogYm9vbGVhbiB7XG5cdHJldHVybiBhcnJheTEubGVuZ3RoID09PSBhcnJheTIubGVuZ3RoICYmIGFycmF5MS5ldmVyeSgoZWwpID0+IGFycmF5Mi5pbmNsdWRlcyhlbCkpO1xufVxuIiwgImltcG9ydCB7Tm90aWNlfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCAqIGFzIEpTT041IGZyb20gXCJqc29uNVwiO1xuXG5leHBvcnQgdHlwZSBFeHBvcnRUeXBlID0gXCJwcmVcIiB8IFwicG9zdFwiO1xuXG4vKipcbiAqIEFyZ3VtZW50cyBmb3IgY29kZSBibG9ja3MsIHNwZWNpZmllZCBuZXh0IHRvIHRoZSBsYW5ndWFnZSBpZGVudGlmaWVyIGFzIEpTT05cbiAqIEBleGFtcGxlIGBgYHB5dGhvbiB7XCJleHBvcnRcIjogXCJwcmVcIn1cbiAqIEBleGFtcGxlIGBgYGNwcCB7XCJpZ25vcmVFeHBvcnRcIjogW1wicG9zdFwiXX1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQmxvY2tBcmdzIHtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdGltcG9ydD86IHN0cmluZyB8IHN0cmluZ1tdO1xuXHRleHBvcnQ/OiBFeHBvcnRUeXBlIHwgRXhwb3J0VHlwZVtdO1xuXHRpZ25vcmU/OiAoRXhwb3J0VHlwZSB8IFwiZ2xvYmFsXCIpW10gfCBFeHBvcnRUeXBlIHwgXCJnbG9iYWxcIiB8IFwiYWxsXCI7XG59XG5cbi8qKlxuICogR2V0IGNvZGUgYmxvY2sgYXJncyBnaXZlbiB0aGUgZmlyc3QgbGluZSBvZiB0aGUgY29kZSBibG9jay5cbiAqXG4gKiBAcGFyYW0gZmlyc3RMaW5lT2ZDb2RlIFRoZSBmaXJzdCBsaW5lIG9mIGEgY29kZSBibG9jayB0aGF0IGNvbnRhaW5zIHRoZSBsYW5ndWFnZSBuYW1lLlxuICogQHJldHVybnMgVGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBjb2RlIGJsb2NrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXJncyhmaXJzdExpbmVPZkNvZGU6IHN0cmluZyk6IENvZGVCbG9ja0FyZ3Mge1xuXHQvLyBObyBhcmdzIHNwZWNpZmllZFxuXHRpZiAoIWZpcnN0TGluZU9mQ29kZS5jb250YWlucyhcIntcIikgJiYgIWZpcnN0TGluZU9mQ29kZS5jb250YWlucyhcIn1cIikpXG5cdFx0cmV0dXJuIHt9O1xuXHR0cnkge1xuXHRcdGxldCBhcmdzID0gZmlyc3RMaW5lT2ZDb2RlLnN1YnN0cmluZyhmaXJzdExpbmVPZkNvZGUuaW5kZXhPZihcIntcIikgKyAxKS50cmltKCk7XG5cdFx0Ly8gVHJhbnNmb3JtIGN1c3RvbSBzeW50YXggdG8gSlNPTjVcblx0XHRhcmdzID0gYXJncy5yZXBsYWNlKC89L2csIFwiOlwiKTtcblx0XHQvLyBIYW5kbGUgdW5uYW1lZCBleHBvcnQgYXJnIC0gcHJlIC8gcG9zdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcmdzIHdpdGhvdXQgYW55IGFyZyBuYW1lXG5cdFx0Y29uc3QgZXhwb3J0czogRXhwb3J0VHlwZVtdID0gW107XG5cdFx0Y29uc3QgaGFuZGxlVW5uYW1lZEV4cG9ydCA9IChleHBvcnROYW1lOiBFeHBvcnRUeXBlKSA9PiB7XG5cdFx0XHRsZXQgaSA9IGFyZ3MuaW5kZXhPZihleHBvcnROYW1lKTtcblx0XHRcdHdoaWxlIChpICE9PSAtMSkge1xuXHRcdFx0XHRjb25zdCBuZXh0Q2hhciA9IGFyZ3NbaSArIGV4cG9ydE5hbWUubGVuZ3RoXTtcblx0XHRcdFx0aWYgKG5leHRDaGFyICE9PSBcIlxcXCJcIiAmJiBuZXh0Q2hhciAhPT0gXCInXCIpIHtcblx0XHRcdFx0XHQvLyBSZW1vdmUgZnJvbSBhcmdzIHN0cmluZ1xuXHRcdFx0XHRcdGFyZ3MgPSBhcmdzLnN1YnN0cmluZygwLCBpKSArIGFyZ3Muc3Vic3RyaW5nKGkgKyBleHBvcnROYW1lLmxlbmd0aCArIChuZXh0Q2hhciA9PT0gXCJ9XCIgPyAwIDogMSkpO1xuXHRcdFx0XHRcdGV4cG9ydHMucHVzaChleHBvcnROYW1lKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpID0gYXJncy5pbmRleE9mKGV4cG9ydE5hbWUsIGkgKyAxKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdGhhbmRsZVVubmFtZWRFeHBvcnQoXCJwcmVcIik7XG5cdFx0aGFuZGxlVW5uYW1lZEV4cG9ydChcInBvc3RcIik7XG5cdFx0YXJncyA9IGB7ZXhwb3J0OiBbJyR7ZXhwb3J0cy5qb2luKFwiJywgJ1wiKX0nXSwgJHthcmdzfWA7XG5cdFx0cmV0dXJuIEpTT041LnBhcnNlKGFyZ3MpO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHRuZXcgTm90aWNlKGBGYWlsZWQgdG8gcGFyc2UgY29kZSBibG9jayBhcmd1bWVudHMgZnJvbSBsaW5lOlxcbiR7Zmlyc3RMaW5lT2ZDb2RlfVxcblxcbkZhaWxlZCB3aXRoIGVycm9yOlxcbiR7ZXJyfWApO1xuXHRcdHJldHVybiB7fTtcblx0fVxufVxuIiwgIlxuZXhwb3J0IGludGVyZmFjZSBJbmxpbmVDb2RlUGFyYW1ldGVycyB7XG5cdGxhbmd1YWdlOiBzdHJpbmc7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdGljb246IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUlubGluZUNvZGUoY29kZVRleHQ6IHN0cmluZyk6IHtwYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycyB8IG51bGwsIHRleHQ6IHN0cmluZ30ge1xuXHRjb25zdCBtYXRjaCA9IC9eeyggKig/OlxcdysoPzogKyg/Oig/OlteXFxzXCInXSt8XCJbXlwiXSpcInwnW14nXSonKSspKSopPyAqKX0gKj8oW14gXS4qPykkLy5leGVjKGNvZGVUZXh0KTtcblxuXHRpZiAodHlwZW9mIG1hdGNoPy5bMV0gIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIG1hdGNoPy5bMl0gIT09IFwidW5kZWZpbmVkXCIpIHtcblx0XHRpZiAobWF0Y2hbMV0gPT09IFwiXCIpXG5cdFx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IG51bGwsIHRleHQ6IG1hdGNoWzJdfTtcblx0XHRlbHNlXG5cdFx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlcnMobWF0Y2hbMV0pLCB0ZXh0OiBtYXRjaFsyXX07XG5cdH0gZWxzZSBcblx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IG51bGwsIHRleHQ6IGNvZGVUZXh0fTtcbn1cbmZ1bmN0aW9uIHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlcnMocGFyYW1ldGVyTGluZTogc3RyaW5nKTogSW5saW5lQ29kZVBhcmFtZXRlcnMge1xuXHRjb25zdCBpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMgPSB7XG5cdFx0bGFuZ3VhZ2U6IFwiXCIsXG5cdFx0dGl0bGU6IFwiXCIsXG5cdFx0aWNvbjogZmFsc2UsXG5cdH07XG5cdGNvbnN0IGxhbmd1YWdlQnJlYWsgPSBwYXJhbWV0ZXJMaW5lLmluZGV4T2YoXCIgXCIpO1xuXHRpbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSA9IHBhcmFtZXRlckxpbmUuc2xpY2UoMCxsYW5ndWFnZUJyZWFrICE9PSAtMT9sYW5ndWFnZUJyZWFrOnBhcmFtZXRlckxpbmUubGVuZ3RoKS50b0xvd2VyQ2FzZSgpO1xuXHRpZiAobGFuZ3VhZ2VCcmVhayA9PT0gLTEpXG5cdFx0cmV0dXJuIGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRjb25zdCBwYXJhbWV0ZXJTdHJpbmdzID0gcGFyYW1ldGVyTGluZS5zbGljZShsYW5ndWFnZUJyZWFrKzEpLm1hdGNoKC8oPzpbXlxcc1wiJ10rfFwiW15cIl0qXCJ8J1teJ10qJykrL2cpO1xuXHRpZiAoIXBhcmFtZXRlclN0cmluZ3MpXG5cdFx0cmV0dXJuIGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRwYXJhbWV0ZXJTdHJpbmdzLmZvckVhY2goKHBhcmFtZXRlclN0cmluZykgPT4gcGFyc2VJbmxpbmVDb2RlUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZyxpbmxpbmVDb2RlUGFyYW1ldGVycykpO1xuXHRyZXR1cm4gaW5saW5lQ29kZVBhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJTdHJpbmcocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycyk6IHZvaWQge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nLnN0YXJ0c1dpdGgoXCJ0aXRsZTpcIikpIHtcblx0XHRjb25zdCB0aXRsZU1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcInRpdGxlOlwiLmxlbmd0aCkpO1xuXHRcdGlmICh0aXRsZU1hdGNoKVxuXHRcdFx0aW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUgPSB0aXRsZU1hdGNoWzJdLnRyaW0oKTtcblx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwiaWNvblwiIHx8IChwYXJhbWV0ZXJTdHJpbmcuc3RhcnRzV2l0aChcImljb246XCIpICYmIHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImljb246dHJ1ZVwiKSlcblx0XHRpbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uID0gdHJ1ZTtcbn1cblxuIiwgImltcG9ydCB7IExBTkdVQUdFX05BTUVTLCBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgRk9MRF9QTEFDRUhPTERFUiB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBIaWdobGlnaHRzIH0gZnJvbSBcIi4vUGFyc2luZy9Db2RlYmxvY2tQYXJzaW5nXCI7XG5pbXBvcnQgeyBJbmxpbmVDb2RlUGFyYW1ldGVycyB9IGZyb20gXCIuL1BhcnNpbmcvSW5saW5lQ29kZVBhcnNpbmdcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGVhZGVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEhUTUxFbGVtZW50IHtcblx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlRGl2KCk7XG5cdGNvbnN0IGljb25VUkwgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlP2dldExhbmd1YWdlSWNvbihjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5sYW5ndWFnZUljb25zKTp1bmRlZmluZWQ7XG5cdGlmICghaXNIZWFkZXJIaWRkZW4oY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZVNldHRpbmdzLGljb25VUkwpKSB7XG5cdFx0aGVhZGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyXCIpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlICE9PSBcIlwiKSB7XG5cdFx0XHRpZiAoaXNMYW5ndWFnZUljb25TaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzLHRoZW1lU2V0dGluZ3MsaWNvblVSTCkpXG5cdFx0XHRcdGhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVJbWFnZVdyYXBwZXIoaWNvblVSTCBhcyBzdHJpbmcsY3JlYXRlRGl2KCkpKTtcblx0XHRcdGlmIChpc0xhbmd1YWdlVGFnU2hvd24oY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZVNldHRpbmdzKSlcblx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWdcIiwgdGV4dDogZ2V0TGFuZ3VhZ2VUYWcoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSl9KSk7XG5cdFx0fVxuXHRcdGNvbnN0IHRpdGxlQ29udGFpbmVyID0gY3JlYXRlVGl0bGVDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5ncywgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQodGl0bGVDb250YWluZXIpO1xuXHR9IGVsc2Vcblx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuXCIpO1xuXHRyZXR1cm4gaGVhZGVyQ29udGFpbmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlVGl0bGVDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogSFRNTEVsZW1lbnQge1xuXHRjb25zdCB0aXRsZUNvbnRhaW5lciA9IGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWhlYWRlci10ZXh0XCJ9KTtcblx0Y29uc3QgdGl0bGUgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlIHx8IChjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZD8oY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLnBsYWNlaG9sZGVyIHx8IHRoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciB8fCBGT0xEX1BMQUNFSE9MREVSKTpcIlwiKTtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID09PSBcIlwiKVxuXHRcdHRpdGxlQ29udGFpbmVyLmlubmVyVGV4dCA9IHRpdGxlO1xuXHRlbHNlIHtcblx0XHRNYXJrZG93blJlbmRlcmVyLnJlbmRlcihwbHVnaW4uYXBwLGBbWyR7Y29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2V9fCR7dGl0bGV9XV1gLHRpdGxlQ29udGFpbmVyLHNvdXJjZVBhdGgsbmV3IENvbXBvbmVudCgpKTsgLy9UT0RPIChAbWF5dXJhbmt2KSBBZGQgbGlua3MgdG8gbWV0YWRhdGEgY2FjaGUgcHJvcGVybHlcblx0fVxuXHRyZXR1cm4gdGl0bGVDb250YWluZXI7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5saW5lT3BlbmVyKGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycywgbGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+LCBjb250YWluZXJDbGFzc2VzOiBBcnJheTxzdHJpbmc+ID0gW1wiY29kZS1zdHlsZXItaW5saW5lLW9wZW5lclwiXSk6IEhUTUxFbGVtZW50IHtcblx0Y29uc3Qgb3BlbmVyQ29udGFpbmVyID0gY3JlYXRlU3Bhbih7Y2xzOiBjb250YWluZXJDbGFzc2VzLmpvaW4oXCIgXCIpfSk7XG5cdGlmIChpbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uKSB7XG5cdFx0Y29uc3QgaWNvblVSTCA9IGdldExhbmd1YWdlSWNvbihpbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSxsYW5ndWFnZUljb25zKTtcblx0XHRpZiAodHlwZW9mIGljb25VUkwgIT09IFwidW5kZWZpbmVkXCIpXG5cdFx0XHRvcGVuZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlSW1hZ2VXcmFwcGVyKGljb25VUkwsY3JlYXRlU3BhbigpLFwiY29kZS1zdHlsZXItaW5saW5lLWljb25cIikpO1xuXHR9XG5cdGlmIChpbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZSlcblx0XHRvcGVuZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbih7Y2xzOiBcImNvZGUtc3R5bGVyLWlubGluZS10aXRsZVwiLCB0ZXh0OiBpbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZX0pKTtcblx0cmV0dXJuIG9wZW5lckNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUltYWdlV3JhcHBlcihpY29uVVJMOiBzdHJpbmcsIGltYWdlV3JhcHBlcjogSFRNTEVsZW1lbnQsIGltZ0NsYXNzID0gXCJjb2RlLXN0eWxlci1pY29uXCIpOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIik7XG5cdGltZy5jbGFzc0xpc3QuYWRkKGltZ0NsYXNzKTtcblx0aW1nLnNyYyA9IGljb25VUkw7XG5cdGltYWdlV3JhcHBlci5hcHBlbmRDaGlsZChpbWcpO1xuXHRyZXR1cm4gaW1hZ2VXcmFwcGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VJY29uKGxhbmd1YWdlOiBzdHJpbmcsIGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBsYW5ndWFnZUljb25zPy5bZ2V0TGFuZ3VhZ2VUYWcobGFuZ3VhZ2UpXTtcbn1cbmZ1bmN0aW9uIGdldExhbmd1YWdlVGFnKGxhbmd1YWdlOiBzdHJpbmcpIHtcblx0cmV0dXJuIExBTkdVQUdFX05BTUVTPy5bbGFuZ3VhZ2VdID8/IChsYW5ndWFnZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGxhbmd1YWdlLnNsaWNlKDEpIHx8IFwiXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSGVhZGVySGlkZGVuKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBpY29uVVJMOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0cmV0dXJuICFpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMpICYmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID09PSBcIlwiIHx8ICh0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ICE9PSBcImFsd2F5c1wiICYmICh0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSAhPT0gXCJhbHdheXNcIiB8fCAodHlwZW9mIGljb25VUkwgPT0gXCJ1bmRlZmluZWRcIikpKSk7XG59XG5mdW5jdGlvbiBpc0xhbmd1YWdlSWNvblNob3duKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBpY29uVVJMOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0cmV0dXJuICh0eXBlb2YgaWNvblVSTCAhPT0gXCJ1bmRlZmluZWRcIikgJiYgKHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBcImFsd2F5c1wiIHx8IChpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMpICYmIHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBcImlmX2hlYWRlcl9zaG93blwiKSk7XG59XG5mdW5jdGlvbiBpc0xhbmd1YWdlVGFnU2hvd24oY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MpOiBib29sZWFuIHtcblx0cmV0dXJuIHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IFwiYWx3YXlzXCIgfHwgKGlzSGVhZGVyUmVxdWlyZWQoY29kZWJsb2NrUGFyYW1ldGVycykgJiYgdGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gXCJpZl9oZWFkZXJfc2hvd25cIik7XG59XG5mdW5jdGlvbiBpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpOiBib29sZWFuIHtcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgIT09IFwiXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5lQ2xhc3MoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgbGluZU51bWJlcjogbnVtYmVyLCBsaW5lOiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcblx0bGV0IGNsYXNzTGlzdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQubGluZU51bWJlcnMuaW5jbHVkZXMobGluZU51bWJlcitjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQucGxhaW5UZXh0LnNvbWUodGV4dCA9PiBsaW5lLmluZGV4T2YodGV4dCkgPiAtMSkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQucmVndWxhckV4cHJlc3Npb25zLnNvbWUocmVnRXhwID0+IHJlZ0V4cC50ZXN0KGxpbmUpKSlcblx0XHRjbGFzc0xpc3QucHVzaChcImNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWRcIik7XG5cdE9iamVjdC5lbnRyaWVzKGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZSkuZm9yRWFjaCgoW2FsdGVybmF0aXZlSGlnaGxpZ2h0LGhpZ2hsaWdodGVkTGluZXNdOiBbc3RyaW5nLEhpZ2hsaWdodHNdKSA9PiB7XG5cdFx0aWYgKGhpZ2hsaWdodGVkTGluZXMubGluZU51bWJlcnMuaW5jbHVkZXMobGluZU51bWJlcitjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkgfHwgaGlnaGxpZ2h0ZWRMaW5lcy5wbGFpblRleHQuc29tZSh0ZXh0ID0+IGxpbmUuaW5kZXhPZih0ZXh0KSA+IC0xKSB8fCBoaWdobGlnaHRlZExpbmVzLnJlZ3VsYXJFeHByZXNzaW9ucy5zb21lKHJlZ0V4cCA9PiByZWdFeHAudGVzdChsaW5lKSkpXG5cdFx0XHRjbGFzc0xpc3QucHVzaChgY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZC0ke2FsdGVybmF0aXZlSGlnaGxpZ2h0LnJlcGxhY2UoL1xccysvZywgXCItXCIpLnRvTG93ZXJDYXNlKCl9YCk7XG5cdH0pO1xuXHRpZiAoY2xhc3NMaXN0Lmxlbmd0aCA9PT0gMClcblx0XHRjbGFzc0xpc3QgPSBbXCJjb2RlLXN0eWxlci1saW5lXCJdO1xuXHRyZXR1cm4gY2xhc3NMaXN0O1xufVxuIiwgImltcG9ydCB7IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uLCBDYWNoZWRNZXRhZGF0YSwgc2FuaXRpemVIVE1MVG9Eb20sIEZyb250TWF0dGVyQ2FjaGUsIE1hcmtkb3duUmVuZGVyZXIsIENvbXBvbmVudCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgdmlzaXRQYXJlbnRzIH0gZnJvbSBcInVuaXN0LXV0aWwtdmlzaXQtcGFyZW50c1wiO1xuaW1wb3J0IHsgZnJvbUh0bWwgfSBmcm9tIFwiaGFzdC11dGlsLWZyb20taHRtbFwiO1xuaW1wb3J0IHsgdG9IdG1sIH0gZnJvbSBcImhhc3QtdXRpbC10by1odG1sXCI7XG5cbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuL21haW5cIjtcbmltcG9ydCB7IFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYLCBUUkFOU0lUSU9OX0xFTkdUSCB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBnZXRGaWxlQ29udGVudExpbmVzLCBpc0NvZGVibG9ja0lnbm9yZWQsIGlzTGFuZ3VhZ2VJZ25vcmVkLCBwYXJzZUNvZGVibG9ja1NvdXJjZSB9IGZyb20gXCIuL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZ1wiO1xuaW1wb3J0IHsgSW5saW5lQ29kZVBhcmFtZXRlcnMsIHBhcnNlSW5saW5lQ29kZSB9IGZyb20gXCIuL1BhcnNpbmcvSW5saW5lQ29kZVBhcnNpbmdcIjtcbmltcG9ydCB7IGNyZWF0ZUhlYWRlciwgY3JlYXRlSW5saW5lT3BlbmVyLCBnZXRMaW5lQ2xhc3MgYXMgZ2V0TGluZUNsYXNzZXMgfSBmcm9tIFwiLi9Db2RlYmxvY2tEZWNvcmF0aW5nXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB7c291cmNlUGF0aCxnZXRTZWN0aW9uSW5mbyxmcm9udG1hdHRlcn06IHtzb3VyY2VQYXRoOiBzdHJpbmcsIGdldFNlY3Rpb25JbmZvOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCwgZnJvbnRtYXR0ZXI6IEZyb250TWF0dGVyQ2FjaGUgfCB1bmRlZmluZWR9LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGVkaXRpbmdFbWJlZHMgPSBmYWxzZSkge1xuXHRjb25zdCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsID0gcGx1Z2luLmFwcC5tZXRhZGF0YUNhY2hlLmdldENhY2hlKHNvdXJjZVBhdGgpO1xuXHRpZiAoIXNvdXJjZVBhdGggfHwgIWVsZW1lbnQgfHwgKGZyb250bWF0dGVyID8/IGNhY2hlPy5mcm9udG1hdHRlcik/LltcImNvZGUtc3R5bGVyLWlnbm9yZVwiXSA9PT0gdHJ1ZSlcblx0XHRyZXR1cm47XG5cblx0ZWRpdGluZ0VtYmVkcyA9IGVkaXRpbmdFbWJlZHMgfHwgQm9vbGVhbihlbGVtZW50Lm1hdGNoUGFyZW50KFwiLmNtLWVtYmVkLWJsb2NrXCIpKTtcblx0Y29uc3Qgc3BlY2lmaWMgPSAhZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnZpZXctY29udGVudCA+ICpcIik7XG5cdGNvbnN0IHByaW50aW5nID0gQm9vbGVhbihlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJkaXYucHJpbnQgPiAqXCIpKTtcblx0aWYgKHByaW50aW5nICYmICFwbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludClcblx0XHRyZXR1cm47XG5cblx0Y29uc3QgY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50PiA9IGF3YWl0IGdldENvZGVibG9ja1ByZUVsZW1lbnRzKGVsZW1lbnQsc3BlY2lmaWMsZWRpdGluZ0VtYmVkcyk7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50cy5sZW5ndGggPT09IDAgJiYgIShlZGl0aW5nRW1iZWRzICYmIHNwZWNpZmljKSlcblx0XHRyZXR1cm47XG5cblx0Y29uc3QgY29kZWJsb2NrU2VjdGlvbkluZm86IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCA9IGdldFNlY3Rpb25JbmZvKGNvZGVibG9ja1ByZUVsZW1lbnRzWzBdKTtcblx0aWYgKGNvZGVibG9ja1NlY3Rpb25JbmZvICYmIHNwZWNpZmljICYmICFlZGl0aW5nRW1iZWRzKVxuXHRcdGF3YWl0IHJlbmRlclNwZWNpZmljUmVhZGluZ1NlY3Rpb24oY29kZWJsb2NrUHJlRWxlbWVudHMsc291cmNlUGF0aCxjb2RlYmxvY2tTZWN0aW9uSW5mbyxwbHVnaW4pO1xuXHRlbHNlIGlmIChzcGVjaWZpYyAmJiBzb3VyY2VQYXRoLnN0YXJ0c1dpdGgoU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgpKVxuXHRcdGF3YWl0IHJlbmRlclNldHRpbmdzKGNvZGVibG9ja1ByZUVsZW1lbnRzLHNvdXJjZVBhdGgscGx1Z2luKTtcblx0ZWxzZSBpZiAoc3BlY2lmaWMgJiYgIXByaW50aW5nKVxuXHRcdGF3YWl0IHJldHJpZ2dlclByb2Nlc3NvcihlbGVtZW50LHtzb3VyY2VQYXRoLGdldFNlY3Rpb25JbmZvLGZyb250bWF0dGVyfSxwbHVnaW4sZWRpdGluZ0VtYmVkcyk7XG5cdGVsc2Vcblx0XHRhd2FpdCByZW5kZXJEb2N1bWVudChjb2RlYmxvY2tQcmVFbGVtZW50cyxzb3VyY2VQYXRoLGNhY2hlLGVkaXRpbmdFbWJlZHMscHJpbnRpbmcscGx1Z2luKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkaW5nVmlld0lubGluZURlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB7c291cmNlUGF0aH06IHtzb3VyY2VQYXRoOiBzdHJpbmcsIGdldFNlY3Rpb25JbmZvOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCwgZnJvbnRtYXR0ZXI6IEZyb250TWF0dGVyQ2FjaGUgfCB1bmRlZmluZWR9LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0aWYgKCFzb3VyY2VQYXRoIHx8ICFlbGVtZW50KVxuXHRcdHJldHVybjtcblx0Zm9yIChjb25zdCBpbmxpbmVDb2RlRWxlbWVudCBvZiBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcIjpub3QocHJlKSA+IGNvZGVcIikpKSB7XG5cdFx0YXdhaXQgcmVtYWtlSW5saW5lQ29kZShpbmxpbmVDb2RlRWxlbWVudCBhcyBIVE1MRWxlbWVudCxwbHVnaW4pO1xuXHR9XG59XG5leHBvcnQgZnVuY3Rpb24gZGVzdHJveVJlYWRpbmdNb2RlRWxlbWVudHMoKTogdm9pZCB7XG5cdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuY29kZS1zdHlsZXItcHJlLXBhcmVudFwiKS5mb3JFYWNoKGNvZGVibG9ja1ByZVBhcmVudCA9PiB7XG5cdFx0Y29kZWJsb2NrUHJlUGFyZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1wcmUtcGFyZW50XCIpO1xuXHR9KTtcblx0W1xuXHRcdC4uLkFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmUgZGl2W2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddXCIpKSxcblx0XHQuLi5BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUuY29kZS1zdHlsZXItcHJlIGRpdltjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ11cIikpLFxuXHRcdC4uLkFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIjpub3QocHJlKSA+IGNvZGUgc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyXCIpKSxcblx0XS5mb3JFYWNoKGVsZW1lbnQgPT4gZWxlbWVudC5yZW1vdmUoKSk7XG5cdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUuY29kZS1zdHlsZXItcHJlXCIpLmZvckVhY2goKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItcHJlXCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS10cnVlLWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS1saW5lLW51bWJlci1tYXJnaW5cIik7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIik7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIndoaXRlLXNwYWNlXCIpO1xuXHR9KTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZSA+IGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dFwiKS5mb3JFYWNoKChleGVjdXRlQ29kZU91dHB1dDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRleGVjdXRlQ29kZU91dHB1dC5jbGFzc0xpc3QucmVtb3ZlKFwiZXhlY3V0ZS1jb2RlLW91dHB1dFwiKTtcblx0XHRleGVjdXRlQ29kZU91dHB1dC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tdHJ1ZS1oZWlnaHRcIik7XG5cdFx0ZXhlY3V0ZUNvZGVPdXRwdXQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCJtYXgtaGVpZ2h0XCIpO1xuXHR9KTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZSA+IGNvZGU6bnRoLW9mLXR5cGUoMSlcIikuZm9yRWFjaCgoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLXRydWUtaGVpZ2h0XCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS1saW5lLXdyYXBwaW5nXCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS1saW5lLWFjdGl2ZS13cmFwcGluZ1wiKTtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCJ3aGl0ZS1zcGFjZVwiKTtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5pbm5lckhUTUwgPSBBcnJheS5mcm9tKGNvZGVibG9ja0NvZGVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJjb2RlID4gW2NsYXNzKj1cXFwiY29kZS1zdHlsZXItbGluZVxcXCJdXCIpKS5yZWR1Y2UoKHJlY29uc3RydWN0ZWRDb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPiwgY29kZWJsb2NrTGluZTogSFRNTEVsZW1lbnQpOiBBcnJheTxzdHJpbmc+ID0+IHtcblx0XHRcdGNvbnN0IGNvZGVibG9ja0xpbmVUZXh0ID0gKGNvZGVibG9ja0xpbmUuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCk7XG5cdFx0XHRpZiAoY29kZWJsb2NrTGluZVRleHQpXG5cdFx0XHRcdHJlY29uc3RydWN0ZWRDb2RlYmxvY2tMaW5lcy5wdXNoKGNvZGVibG9ja0xpbmVUZXh0LmlubmVySFRNTCk7XG5cdFx0XHRyZXR1cm4gcmVjb25zdHJ1Y3RlZENvZGVibG9ja0xpbmVzO1xuXHRcdH0sW10pLmpvaW4oXCJcXG5cIikrXCJcXG5cIjtcblx0fSk7XG5cdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCI6bm90KHByZSkgPiBjb2RlXCIpLmZvckVhY2goKGlubGluZUNvZGVFbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1oaWdobGlnaHRlZFwiKTtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItaGlnaGxpZ2h0LWlnbm9yZVwiKTtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5pbm5lclRleHQgPSBpbmxpbmVDb2RlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJwYXJhbWV0ZXJzXCIpICsgaW5saW5lQ29kZUVsZW1lbnQuaW5uZXJUZXh0O1xuXHR9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbihjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIGNvZGVibG9ja1NlY3Rpb25JbmZvOiBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzID0gKGF3YWl0IHBhcnNlQ29kZWJsb2NrU291cmNlKEFycmF5LmZyb20oe2xlbmd0aDogY29kZWJsb2NrU2VjdGlvbkluZm8ubGluZUVuZC1jb2RlYmxvY2tTZWN0aW9uSW5mby5saW5lU3RhcnQrMX0sIChfLG51bSkgPT4gbnVtICsgY29kZWJsb2NrU2VjdGlvbkluZm8ubGluZVN0YXJ0KS5tYXAoKGxpbmVOdW1iZXIpPT5jb2RlYmxvY2tTZWN0aW9uSW5mby50ZXh0LnNwbGl0KFwiXFxuXCIpW2xpbmVOdW1iZXJdKSxwbHVnaW4sc291cmNlUGF0aCkpLmNvZGVibG9ja3NQYXJhbWV0ZXJzO1xuXHRhd2FpdCByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzLGNvZGVibG9ja3NQYXJhbWV0ZXJzLHNvdXJjZVBhdGgsdHJ1ZSxmYWxzZSxwbHVnaW4pO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyU2V0dGluZ3MoY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Piwgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0Y29uc3QgY29kZWJsb2Nrc1BhcmFtZXRlcnMgPSAoYXdhaXQgcGFyc2VDb2RlYmxvY2tTb3VyY2Uoc291cmNlUGF0aC5zdWJzdHJpbmcoU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgubGVuZ3RoKS5zcGxpdChcIlxcblwiKSxwbHVnaW4pKS5jb2RlYmxvY2tzUGFyYW1ldGVycztcblx0YXdhaXQgcmVtYWtlQ29kZWJsb2Nrcyhjb2RlYmxvY2tQcmVFbGVtZW50cyxjb2RlYmxvY2tzUGFyYW1ldGVycyxzb3VyY2VQYXRoLHRydWUsZmFsc2UscGx1Z2luKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlckRvY3VtZW50KGNvZGVibG9ja1ByZUVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD4sIHNvdXJjZVBhdGg6IHN0cmluZywgY2FjaGU6IENhY2hlZE1ldGFkYXRhIHwgbnVsbCwgZWRpdGluZ0VtYmVkczogYm9vbGVhbiwgcHJpbnRpbmc6IGJvb2xlYW4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4gPSBhd2FpdCBnZXRDb2RlYmxvY2tzUGFyYW1ldGVycyhzb3VyY2VQYXRoLGNhY2hlLHBsdWdpbixlZGl0aW5nRW1iZWRzKTtcblx0YXdhaXQgcmVtYWtlQ29kZWJsb2Nrcyhjb2RlYmxvY2tQcmVFbGVtZW50cyxjb2RlYmxvY2tzUGFyYW1ldGVycyxzb3VyY2VQYXRoLCFwcmludGluZyx0cnVlLHBsdWdpbik7XG59XG5hc3luYyBmdW5jdGlvbiByZXRyaWdnZXJQcm9jZXNzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ6IHtzb3VyY2VQYXRoOiBzdHJpbmcsIGdldFNlY3Rpb25JbmZvOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCwgZnJvbnRtYXR0ZXI6IEZyb250TWF0dGVyQ2FjaGUgfCB1bmRlZmluZWR9LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGVkaXRpbmdFbWJlZHM6IGJvb2xlYW4pIHtcblx0aWYgKGVsZW1lbnQubWF0Y2hQYXJlbnQoXCJkaXYuYmxvY2stbGFuZ3VhZ2UtZGF0YXZpZXdqc1wiKSAmJiBpc0NvZGVibG9ja0lnbm9yZWQoXCJkYXRhdmlld2pzXCIscGx1Z2luLnNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpKVxuXHRcdHJldHVybjtcblx0YXdhaXQgc2xlZXAoNTApO1xuXHRlZGl0aW5nRW1iZWRzID0gZWRpdGluZ0VtYmVkcyB8fCBCb29sZWFuKGVsZW1lbnQubWF0Y2hQYXJlbnQoXCIuY20tZW1iZWQtYmxvY2tcIikpO1xuXHRpZiAoZWRpdGluZ0VtYmVkcyB8fCAhZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJhZG1vbml0aW9uLWNvbnRlbnRcIikpIHtcblx0XHRjb25zdCBjb250ZW50RWwgPSBlbGVtZW50Lm1hdGNoUGFyZW50KFwiLnZpZXctY29udGVudFwiKSA/PyBlbGVtZW50Lm1hdGNoUGFyZW50KFwiZGl2LnByaW50XCIpO1xuXHRcdGlmIChjb250ZW50RWwgIT09IG51bGwpXG5cdFx0XHRhd2FpdCByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGNvbnRlbnRFbCBhcyBIVE1MRWxlbWVudCxjb250ZXh0LHBsdWdpbixlZGl0aW5nRW1iZWRzKTsgLy8gUmUtcmVuZGVyIHdob2xlIGRvY3VtZW50XG5cdH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtYWtlQ29kZWJsb2Nrcyhjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+LCBjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4sIHNvdXJjZVBhdGg6IHN0cmluZywgZHluYW1pYzogYm9vbGVhbiwgc2tpcFN0eWxlZDogYm9vbGVhbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50cy5sZW5ndGggIT09IGNvZGVibG9ja3NQYXJhbWV0ZXJzLmxlbmd0aClcblx0XHRyZXR1cm47XG5cdGZvciAoY29uc3QgW2tleSxjb2RlYmxvY2tQcmVFbGVtZW50XSBvZiBBcnJheS5mcm9tKGNvZGVibG9ja1ByZUVsZW1lbnRzKS5lbnRyaWVzKCkpIHtcblx0XHRjb25zdCBjb2RlYmxvY2tQYXJhbWV0ZXJzID0gY29kZWJsb2Nrc1BhcmFtZXRlcnNba2V5XTtcblx0XHRjb25zdCBjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gY29kZWJsb2NrUHJlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwicHJlID4gY29kZVwiKTtcblx0XHRpZiAoIWNvZGVibG9ja0NvZGVFbGVtZW50KVxuXHRcdFx0cmV0dXJuO1xuXHRcdGlmIChBcnJheS5mcm9tKGNvZGVibG9ja0NvZGVFbGVtZW50LmNsYXNzTGlzdCkuc29tZShjbGFzc05hbWUgPT4gL15sYW5ndWFnZS1cXFMrLy50ZXN0KGNsYXNzTmFtZSkpKVxuXHRcdFx0d2hpbGUoIWNvZGVibG9ja0NvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImlzLWxvYWRlZFwiKSlcblx0XHRcdFx0YXdhaXQgc2xlZXAoMik7XG5cdFx0aWYgKHNraXBTdHlsZWQgJiYgY29kZWJsb2NrQ29kZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcImNvZGUgW2NsYXNzKj0nY29kZS1zdHlsZXItbGluZSddXCIpKVxuXHRcdFx0Y29udGludWU7XG5cdFx0aWYgKGlzTGFuZ3VhZ2VJZ25vcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UscGx1Z2luLnNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmlnbm9yZSlcblx0XHRcdGNvbnRpbnVlO1xuXHRcdGF3YWl0IHJlbWFrZUNvZGVibG9jayhjb2RlYmxvY2tDb2RlRWxlbWVudCxjb2RlYmxvY2tQcmVFbGVtZW50LGNvZGVibG9ja1BhcmFtZXRlcnMsc291cmNlUGF0aCxkeW5hbWljLHBsdWdpbik7XG5cdH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtYWtlQ29kZWJsb2NrKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCwgY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGg6IHN0cmluZywgZHluYW1pYzogYm9vbGVhbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGlmIChkeW5hbWljKVxuXHRcdHBsdWdpbi5leGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShjb2RlYmxvY2tQcmVFbGVtZW50LHtjaGlsZExpc3Q6IHRydWUsc3VidHJlZTogdHJ1ZSxhdHRyaWJ1dGVzOiB0cnVlLGNoYXJhY3RlckRhdGE6IHRydWV9KTsgLy8gQWRkIEV4ZWN1dGUgQ29kZSBPYnNlcnZlclxuXHRcblx0aW5zZXJ0SGVhZGVyKGNvZGVibG9ja1ByZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxzb3VyY2VQYXRoLHBsdWdpbixkeW5hbWljKTtcblx0XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi5nZXRQcmVDbGFzc2VzKGNvZGVibG9ja1BhcmFtZXRlcnMsZHluYW1pYykpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LnNldEF0dHJpYnV0ZShcImRlZmF1bHRGb2xkXCIsY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQudG9TdHJpbmcoKSk7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50LnBhcmVudEVsZW1lbnQpXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1wcmUtcGFyZW50XCIpO1xuXHRcblx0aWYgKCFjb2RlYmxvY2tDb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiY29kZSBbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ11cIikpIC8vIElnbm9yZSBzdHlsZWQgbGluZXNcblx0XHRkZWNvcmF0ZUNvZGVibG9ja0xpbmVzKGNvZGVibG9ja0NvZGVFbGVtZW50LGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVtYWtlSW5saW5lQ29kZShpbmxpbmVDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8dm9pZD4ge1xuXHRpZiAoIXBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodCB8fCBpbmxpbmVDb2RlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJjb2RlLXN0eWxlci1pbmxpbmVcIikpXG5cdFx0cmV0dXJuO1xuXHRjb25zdCBpbmxpbmVDb2RlVGV4dCA9IGlubGluZUNvZGVFbGVtZW50LmlubmVyVGV4dDtcblx0Y29uc3Qge3BhcmFtZXRlcnMsdGV4dH0gPSBwYXJzZUlubGluZUNvZGUoaW5saW5lQ29kZVRleHQpO1xuXHRpZiAocGFyYW1ldGVycykge1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVySFRNTCA9IGF3YWl0IGdldEhpZ2hsaWdodGVkSFRNTChwYXJhbWV0ZXJzLHRleHQscGx1Z2luKTtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5pbm5lckhUTUwgPSBpbmxpbmVDb2RlRWxlbWVudC5pbm5lckhUTUwgKyBcIiZaZXJvV2lkdGhTcGFjZTtcIjtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaW5saW5lXCIpO1xuXHRcdGNvbnN0IHBhcmFtZXRlclN0cmluZyA9IGlubGluZUNvZGVUZXh0LnN1YnN0cmluZygwLGlubGluZUNvZGVUZXh0Lmxhc3RJbmRleE9mKHRleHQpKTtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJwYXJhbWV0ZXJzXCIscGFyYW1ldGVyU3RyaW5nKTsgLy8gU3RvcmUgcGFyYW1ldGVyIHN0cmluZyBhcyBhdHRyaWJ1dGUgc28gb3JpZ2luYWwgdGV4dCBjYW4gYmUgcmVzdG9yZWQgb24gcGx1Z2luIHJlbW92YWxcblx0XHRpZiAocGFyYW1ldGVycy5pY29uIHx8IHBhcmFtZXRlcnMudGl0bGUpXG5cdFx0XHRpbmxpbmVDb2RlRWxlbWVudC5pbnNlcnRCZWZvcmUoY3JlYXRlSW5saW5lT3BlbmVyKHBhcmFtZXRlcnMscGx1Z2luLmxhbmd1YWdlSWNvbnMpLGlubGluZUNvZGVFbGVtZW50LmNoaWxkTm9kZXNbMF0pO1xuXHR9IGVsc2UgaWYgKCFwYXJhbWV0ZXJzICYmIHRleHQpIHtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5pbm5lclRleHQgPSB0ZXh0O1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1pbmxpbmVcIik7XG5cdH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29kZWJsb2NrUHJlRWxlbWVudHMoZWxlbWVudDogSFRNTEVsZW1lbnQsIHNwZWNpZmljOiBib29sZWFuLGVkaXRpbmdFbWJlZHM6IGJvb2xlYW4pOiBQcm9taXNlPEFycmF5PEhUTUxFbGVtZW50Pj4ge1xuXHRsZXQgY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Pjtcblx0aWYgKCFlZGl0aW5nRW1iZWRzICYmICFzcGVjaWZpYylcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cyA9IEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLm1hcmtkb3duLXJlYWRpbmctdmlldyBwcmU6bm90KC5mcm9udG1hdHRlcilcIikpO1xuXHRlbHNlIGlmIChlZGl0aW5nRW1iZWRzICYmICFzcGVjaWZpYylcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cyA9IEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLm1hcmtkb3duLXNvdXJjZS12aWV3IC5jbS1lbWJlZC1ibG9jayBwcmU6bm90KC5mcm9udG1hdHRlcilcIikpO1xuXHRlbHNlIGlmICghZWRpdGluZ0VtYmVkcyAmJiBzcGVjaWZpYykge1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmU6bm90KC5mcm9udG1hdHRlcilcIikpO1xuXHRcdGNvbnN0IGFkbW9uaXRpb25Db2RlRWxlbWVudCA9IGNvZGVibG9ja1ByZUVsZW1lbnRzPy5bMF0/LnF1ZXJ5U2VsZWN0b3IoXCJwcmU6bm90KFtjbGFzc10pID4gY29kZVtjbGFzcyo9XFxcImxhbmd1YWdlLWFkLVxcXCJdXCIpO1xuXHRcdGlmIChhZG1vbml0aW9uQ29kZUVsZW1lbnQpIHtcblx0XHRcdGF3YWl0IHNsZWVwKDUwKTsgLy9UT0RPXG5cdFx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cyA9IEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlOm5vdCguZnJvbnRtYXR0ZXIpXCIpKTtcblx0XHR9XG5cdH0gZWxzZVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gW107XG5cdHJldHVybiBjb2RlYmxvY2tQcmVFbGVtZW50cztcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldENvZGVibG9ja3NQYXJhbWV0ZXJzKHNvdXJjZVBhdGg6IHN0cmluZywgY2FjaGU6IENhY2hlZE1ldGFkYXRhIHwgbnVsbCwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBlZGl0aW5nRW1iZWRzOiBib29sZWFuKTogUHJvbWlzZTxBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPj4ge1xuXHRsZXQgY29kZWJsb2Nrc1BhcmFtZXRlcnM6IEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+ID0gW107XG5cdGNvbnN0IGZpbGVDb250ZW50TGluZXMgPSBhd2FpdCBnZXRGaWxlQ29udGVudExpbmVzKHNvdXJjZVBhdGgscGx1Z2luKTtcblx0aWYgKCFmaWxlQ29udGVudExpbmVzKVxuXHRcdHJldHVybiBbXTtcblxuXHRpZiAodHlwZW9mIGNhY2hlPy5zZWN0aW9ucyAhPT0gXCJ1bmRlZmluZWRcIikge1xuXHRcdGZvciAoY29uc3Qgc2VjdGlvbiBvZiBjYWNoZS5zZWN0aW9ucykge1xuXHRcdFx0aWYgKCFlZGl0aW5nRW1iZWRzIHx8IHNlY3Rpb24udHlwZSA9PT0gXCJjb2RlXCIgfHwgc2VjdGlvbi50eXBlID09PSBcImNhbGxvdXRcIikge1xuXHRcdFx0XHRjb25zdCBwYXJzZWRDb2RlYmxvY2tzUGFyYW1ldGVycyA9IGF3YWl0IHBhcnNlQ29kZWJsb2NrU291cmNlKGZpbGVDb250ZW50TGluZXMuc2xpY2Uoc2VjdGlvbi5wb3NpdGlvbi5zdGFydC5saW5lLHNlY3Rpb24ucG9zaXRpb24uZW5kLmxpbmUrMSkscGx1Z2luLHNvdXJjZVBhdGgpO1xuXHRcdFx0XHRpZiAoIWVkaXRpbmdFbWJlZHMgfHwgcGFyc2VkQ29kZWJsb2Nrc1BhcmFtZXRlcnMubmVzdGVkKVxuXHRcdFx0XHRcdGNvZGVibG9ja3NQYXJhbWV0ZXJzID0gY29kZWJsb2Nrc1BhcmFtZXRlcnMuY29uY2F0KHBhcnNlZENvZGVibG9ja3NQYXJhbWV0ZXJzLmNvZGVibG9ja3NQYXJhbWV0ZXJzKTtcblx0XHRcdH1cblx0XHR9XG5cdH0gZWxzZVxuXHRcdGNvbnNvbGUuZXJyb3IoYE1ldGFkYXRhIGNhY2hlIG5vdCBmb3VuZCBmb3IgZmlsZTogJHtzb3VyY2VQYXRofWApO1xuXHRyZXR1cm4gY29kZWJsb2Nrc1BhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBpbnNlcnRIZWFkZXIoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBkeW5hbWljOiBib29sZWFuKTogdm9pZCB7XG5cdGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IGNyZWF0ZUhlYWRlcihjb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLCBzb3VyY2VQYXRoLCBwbHVnaW4pO1xuXHRpZiAoZHluYW1pYylcblx0XHRoZWFkZXJDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsKCk9Pnt0b2dnbGVGb2xkKGNvZGVibG9ja1ByZUVsZW1lbnQpO30pOyAvLyBBZGQgbGlzdGVuZXIgZm9yIGhlYWRlciBmb2xkaW5nIG9uIGNsaWNrXG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGhlYWRlckNvbnRhaW5lcixjb2RlYmxvY2tQcmVFbGVtZW50LmNoaWxkTm9kZXNbMF0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRpbmdEb2N1bWVudEZvbGQoY29udGVudEVsOiBIVE1MRWxlbWVudCwgZm9sZD86IGJvb2xlYW4pIHtcblx0Y29uc3QgY29kZWJsb2NrUHJlRWxlbWVudHMgPSBjb250ZW50RWwucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmVcIik7XG5cdGlmICh0eXBlb2YgZm9sZCA9PT0gXCJ1bmRlZmluZWRcIikgLy9SZXR1cm4gYWxsIGJsb2NrcyB0byBvcmlnaW5hbCBzdGF0ZVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzLmZvckVhY2goKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50KT0+e3RvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudCwoY29kZWJsb2NrUHJlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkZWZhdWx0Rm9sZFwiKT8/XCJmYWxzZVwiKT09PVwidHJ1ZVwiKTt9KTtcblx0ZWxzZSAvL0ZvbGQgb3IgdW5mb2xkIGFsbCBibG9ja3Ncblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cy5mb3JFYWNoKChjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCk9Pnt0b2dnbGVGb2xkKGNvZGVibG9ja1ByZUVsZW1lbnQsZm9sZCk7fSk7XG59XG5hc3luYyBmdW5jdGlvbiB0b2dnbGVGb2xkKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBmb2xkPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuXHRpZiAoY29kZWJsb2NrUHJlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZD8uY2xhc3NMaXN0Py5jb250YWlucyhcImNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuXCIpKVxuXHRcdHJldHVybjtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZVwiKS5mb3JFYWNoKChjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpPT5jb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcIm1heC1oZWlnaHRcIixgY2FsYygke01hdGguY2VpbChjb2RlYmxvY2tDb2RlRWxlbWVudC5zY3JvbGxIZWlnaHQrMC4wMSl9cHggKyB2YXIoLS1jb2RlLXBhZGRpbmcpICogJHtjb2RlYmxvY2tDb2RlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJleGVjdXRlLWNvZGUtb3V0cHV0XCIpP1wiMy41ICsgdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aClcIjpcIjJcIn0pYCkpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJoaWRlLXNjcm9sbFwiKTtcblx0YXdhaXQgc2xlZXAoMSk7XG5cdGlmICh0eXBlb2YgZm9sZCA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJjb2RlLXN0eWxlci1mb2xkZWRcIik7XG5cdGVsc2Vcblx0XHRmb2xkP2NvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTpjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1mb2xkZWRcIik7XG5cdGF3YWl0IHNsZWVwKFRSQU5TSVRJT05fTEVOR1RIKTtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZVwiKS5mb3JFYWNoKChjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpPT5jb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIikpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRlLXNjcm9sbFwiKTtcbn1cbmZ1bmN0aW9uIGdldFByZUNsYXNzZXMoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgZHluYW1pYzogYm9vbGVhbik6IEFycmF5PHN0cmluZz4ge1xuXHRjb25zdCBwcmVDbGFzc0xpc3QgPSBbXCJjb2RlLXN0eWxlci1wcmVcIl07XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKVxuXHRcdHByZUNsYXNzTGlzdC5wdXNoKGBsYW5ndWFnZS0ke2NvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9YCk7XG5cdGlmIChkeW5hbWljKSB7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkKVxuXHRcdFx0cHJlQ2xhc3NMaXN0LnB1c2goXCJjb2RlLXN0eWxlci1mb2xkZWRcIik7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcC5hbHdheXNFbmFibGVkKVxuXHRcdFx0cHJlQ2xhc3NMaXN0LnB1c2goY29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwLmFjdGl2ZVdyYXA/XCJ1bndyYXBwZWQtaW5hY3RpdmVcIjpcInVud3JhcHBlZFwiKTtcblx0XHRlbHNlIGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAuYWx3YXlzRGlzYWJsZWQpXG5cdFx0XHRwcmVDbGFzc0xpc3QucHVzaChcIndyYXBwZWRcIik7XG5cdH1cblx0cmV0dXJuIHByZUNsYXNzTGlzdDtcbn1cbmZ1bmN0aW9uIGRlY29yYXRlQ29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBzaG93TGluZU51bWJlcnM6IGJvb2xlYW4pOiB2b2lkIHtcblx0Z2V0Q29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQpLmZvckVhY2goKGxpbmUsaW5kZXgsY29kZWJsb2NrTGluZXMpID0+IHtcblx0XHRpZiAoaW5kZXggIT09IGNvZGVibG9ja0xpbmVzLmxlbmd0aC0xKVxuXHRcdFx0aW5zZXJ0TGluZVdyYXBwZXIoY29kZWJsb2NrQ29kZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxpbmRleCsxLGxpbmUsc2hvd0xpbmVOdW1iZXJzKTtcblx0fSk7XG59XG5mdW5jdGlvbiBnZXRDb2RlYmxvY2tMaW5lcyhjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpOiBBcnJheTxzdHJpbmc+IHtcblx0Y29uc3QgaHRtbFRyZWUgPSBmcm9tSHRtbChjb2RlYmxvY2tDb2RlRWxlbWVudC5pbm5lckhUTUwucmVwbGFjZSgvXFxuL2csXCI8YnI+XCIpLHtmcmFnbWVudDogdHJ1ZX0pO1xuXHRsZXQgY29kZWJsb2NrSFRNTCA9IGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTDtcblx0dmlzaXRQYXJlbnRzKGh0bWxUcmVlLFtcInRleHRcIixcImVsZW1lbnRcIl0sKG5vZGUsYW5jZXN0b3JzKT0+e1xuXHRcdGlmIChub2RlLnR5cGUgPT09IFwiZWxlbWVudFwiICYmIG5vZGUudGFnTmFtZSA9PT0gXCJiclwiKSB7XG5cdFx0XHRpZiAoYW5jZXN0b3JzLmxlbmd0aCA+PSAyKSB7XG5cdFx0XHRcdGNvZGVibG9ja0hUTUwgPSBjb2RlYmxvY2tIVE1MLnJlcGxhY2UoL1xcbi8sYW5jZXN0b3JzLnNsaWNlKDEpLnJlZHVjZSgocmVzdWx0LGVsZW1lbnQpPT57XG5cdFx0XHRcdFx0Y29uc3QgZWxlbWVudENvcHkgPSBzdHJ1Y3R1cmVkQ2xvbmUoZWxlbWVudCk7XG5cdFx0XHRcdFx0ZWxlbWVudENvcHkuY2hpbGRyZW4gPSBbXTtcblx0XHRcdFx0XHRjb25zdCBzcGxpdFRhZyA9IHRvSHRtbChlbGVtZW50Q29weSkuc3BsaXQoLyg/PD0+KSg/PTxcXC8pLyk7XG5cdFx0XHRcdFx0cmV0dXJuIHNwbGl0VGFnLnNwbGljZSgtMSkrcmVzdWx0K3NwbGl0VGFnLmpvaW4oXCJcIik7XG5cdFx0XHRcdH0sXCI8YnI+XCIpKTtcblx0XHRcdH0gZWxzZVxuXHRcdFx0XHRjb2RlYmxvY2tIVE1MID0gY29kZWJsb2NrSFRNTC5yZXBsYWNlKC9cXG4vLFwiPGJyPlwiKTtcblx0XHR9XG5cdH0pO1xuXHRsZXQgY29kZWJsb2NrTGluZXMgPSBjb2RlYmxvY2tIVE1MLnNwbGl0KFwiPGJyPlwiKTtcblx0aWYgKGNvZGVibG9ja0xpbmVzLmxlbmd0aCA9PT0gMSlcblx0XHRjb2RlYmxvY2tMaW5lcyA9IFtcIlwiLFwiXCJdO1xuXHRjb2RlYmxvY2tDb2RlRWxlbWVudC5pbm5lckhUTUwgPSBcIlwiO1xuXHRyZXR1cm4gY29kZWJsb2NrTGluZXM7XG59XG5mdW5jdGlvbiBpbnNlcnRMaW5lV3JhcHBlcihjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIGxpbmVOdW1iZXI6IG51bWJlciwgbGluZTogc3RyaW5nLCBzaG93TGluZU51bWJlcnM6IGJvb2xlYW4pOiB2b2lkIHtcblx0Y29uc3QgbGluZVdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuXHRjb2RlYmxvY2tDb2RlRWxlbWVudC5hcHBlbmRDaGlsZChsaW5lV3JhcHBlcik7XG5cdGdldExpbmVDbGFzc2VzKGNvZGVibG9ja1BhcmFtZXRlcnMsbGluZU51bWJlcixsaW5lKS5mb3JFYWNoKChsaW5lQ2xhc3MpID0+IGxpbmVXcmFwcGVyLmNsYXNzTGlzdC5hZGQobGluZUNsYXNzKSk7XG5cdGlmICgoc2hvd0xpbmVOdW1iZXJzICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQpXG5cdFx0bGluZVdyYXBwZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2KHtjbHM6IFwiY29kZS1zdHlsZXItbGluZS1udW1iZXJcIiwgdGV4dDogKGxpbmVOdW1iZXIrY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQpLnRvU3RyaW5nKCl9KSk7XG5cdGxpbmVXcmFwcGVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWxpbmUtdGV4dFwiLCB0ZXh0OiBzYW5pdGl6ZUhUTUxUb0RvbShsaW5lICE9PSBcIlwiID8gbGluZSA6IFwiPGJyPlwiKX0pKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldEhpZ2hsaWdodGVkSFRNTChwYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycywgdGV4dDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHN0cmluZz4ge1xuXHRjb25zdCB0ZW1wb3JhcnlSZW5kZXJpbmdDb250YWluZXIgPSBjcmVhdGVEaXYoKTtcblx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCxbXCJgYGBcIixwYXJhbWV0ZXJzLmxhbmd1YWdlLFwiXFxuXCIsdGV4dCxcIlxcblwiLFwiYGBgXCJdLmpvaW4oXCJcIiksdGVtcG9yYXJ5UmVuZGVyaW5nQ29udGFpbmVyLFwiXCIsbmV3IENvbXBvbmVudCgpKTtcblx0Y29uc3QgcmVuZGVyZWRDb2RlRWxlbWVudCA9IHRlbXBvcmFyeVJlbmRlcmluZ0NvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiY29kZVwiKTtcblx0aWYgKCFyZW5kZXJlZENvZGVFbGVtZW50KVxuXHRcdHJldHVybiBcIkVSUk9SOiBDb3VsZCBub3QgcmVuZGVyIGhpZ2hsaWdodGVkIGNvZGVcIjtcblx0d2hpbGUocGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0ICYmICFyZW5kZXJlZENvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImlzLWxvYWRlZFwiKSlcblx0XHRhd2FpdCBzbGVlcCgyKTtcblx0cmV0dXJuIHJlbmRlcmVkQ29kZUVsZW1lbnQuaW5uZXJIVE1MO1xufVxuXG5leHBvcnQgY29uc3QgZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuXHRtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSA9PiB7XG5cdFx0aWYgKG11dGF0aW9uLnR5cGUgPT09IFwiY2hpbGRMaXN0XCIgJiYgKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkudGFnTmFtZSA9PT0gXCJQUkVcIikgeyAvLyBBZGQgZXhlY3V0ZSBjb2RlIG91dHB1dFxuXHRcdFx0Y29uc3QgZXhlY3V0ZUNvZGVPdXRwdXQgPSAobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKFwicHJlID4gY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0XCIpIGFzIEhUTUxFbGVtZW50O1xuXHRcdFx0aWYgKGV4ZWN1dGVDb2RlT3V0cHV0KVxuXHRcdFx0XHRleGVjdXRlQ29kZU91dHB1dC5jbGFzc0xpc3QuYWRkKFwiZXhlY3V0ZS1jb2RlLW91dHB1dFwiKTtcblx0XHR9XG5cdH0pO1xufSk7XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUGFyZW50fSBQYXJlbnRcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBGblxuICogQHRlbXBsYXRlIEZhbGxiYWNrXG4gKiBAdHlwZWRlZiB7Rm4gZXh0ZW5kcyAodmFsdWU6IGFueSkgPT4gdmFsdWUgaXMgaW5mZXIgVGhpbmcgPyBUaGluZyA6IEZhbGxiYWNrfSBQcmVkaWNhdGVcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBDaGVja1xuICogICBDaGVjayB0aGF0IGFuIGFyYml0cmFyeSB2YWx1ZSBpcyBhIG5vZGUuXG4gKiBAcGFyYW0ge3Vua25vd259IHRoaXNcbiAqICAgVGhlIGdpdmVuIGNvbnRleHQuXG4gKiBAcGFyYW0ge3Vua25vd259IFtub2RlXVxuICogICBBbnl0aGluZyAodHlwaWNhbGx5IGEgbm9kZSkuXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtpbmRleF1cbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBvc2l0aW9uIGluIGl0cyBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudCB8IG51bGwgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwYXJlbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGlzIGlzIGEgbm9kZSBhbmQgcGFzc2VzIGEgdGVzdC5cbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBOb2RlfSBQcm9wc1xuICogICBPYmplY3QgdG8gY2hlY2sgZm9yIGVxdWl2YWxlbmNlLlxuICpcbiAqICAgTm90ZTogYE5vZGVgIGlzIGluY2x1ZGVkIGFzIGl0IGlzIGNvbW1vbiBidXQgaXMgbm90IGluZGV4YWJsZS5cbiAqXG4gKiBAdHlwZWRlZiB7QXJyYXk8UHJvcHMgfCBUZXN0RnVuY3Rpb24gfCBzdHJpbmc+IHwgUHJvcHMgfCBUZXN0RnVuY3Rpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBUZXN0XG4gKiAgIENoZWNrIGZvciBhbiBhcmJpdHJhcnkgbm9kZS5cbiAqXG4gKiBAY2FsbGJhY2sgVGVzdEZ1bmN0aW9uXG4gKiAgIENoZWNrIGlmIGEgbm9kZSBwYXNzZXMgYSB0ZXN0LlxuICogQHBhcmFtIHt1bmtub3dufSB0aGlzXG4gKiAgIFRoZSBnaXZlbiBjb250ZXh0LlxuICogQHBhcmFtIHtOb2RlfSBub2RlXG4gKiAgIEEgbm9kZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBbaW5kZXhdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwb3NpdGlvbiBpbiBpdHMgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnQgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwYXJlbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbiB8IHVuZGVmaW5lZCB8IHZvaWR9XG4gKiAgIFdoZXRoZXIgdGhpcyBub2RlIHBhc3NlcyB0aGUgdGVzdC5cbiAqXG4gKiAgIE5vdGU6IGB2b2lkYCBpcyBpbmNsdWRlZCB1bnRpbCBUUyBzZWVzIG5vIHJldHVybiBhcyBgdW5kZWZpbmVkYC5cbiAqL1xuXG4vKipcbiAqIENoZWNrIGlmIGBub2RlYCBpcyBhIGBOb2RlYCBhbmQgd2hldGhlciBpdCBwYXNzZXMgdGhlIGdpdmVuIHRlc3QuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBub2RlXG4gKiAgIFRoaW5nIHRvIGNoZWNrLCB0eXBpY2FsbHkgYE5vZGVgLlxuICogQHBhcmFtIHtUZXN0fSB0ZXN0XG4gKiAgIEEgY2hlY2sgZm9yIGEgc3BlY2lmaWMgbm9kZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBvc2l0aW9uIGluIGl0cyBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudCB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBUaGUgbm9kZVx1MjAxOXMgcGFyZW50LlxuICogQHBhcmFtIHt1bmtub3dufSBjb250ZXh0XG4gKiAgIENvbnRleHQgb2JqZWN0IChgdGhpc2ApIHRvIHBhc3MgdG8gYHRlc3RgIGZ1bmN0aW9ucy5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIGBub2RlYCBpcyBhIG5vZGUgYW5kIHBhc3NlcyBhIHRlc3QuXG4gKi9cbmV4cG9ydCBjb25zdCBpcyA9XG4gIC8vIE5vdGU6IG92ZXJsb2FkcyBpbiBKU0RvYyBjYW5cdTIwMTl0IHlldCB1c2UgZGlmZmVyZW50IGBAdGVtcGxhdGVgcy5cbiAgLyoqXG4gICAqIEB0eXBlIHsoXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBzdHJpbmc+KG5vZGU6IHVua25vd24sIHRlc3Q6IENvbmRpdGlvbiwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYge3R5cGU6IENvbmRpdGlvbn0pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFByb3BzPihub2RlOiB1bmtub3duLCB0ZXN0OiBDb25kaXRpb24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIENvbmRpdGlvbikgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgVGVzdEZ1bmN0aW9uPihub2RlOiB1bmtub3duLCB0ZXN0OiBDb25kaXRpb24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIFByZWRpY2F0ZTxDb25kaXRpb24sIE5vZGU+KSAmXG4gICAqICAgKChub2RlPzogbnVsbCB8IHVuZGVmaW5lZCkgPT4gZmFsc2UpICZcbiAgICogICAoKG5vZGU6IHVua25vd24sIHRlc3Q/OiBudWxsIHwgdW5kZWZpbmVkLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUpICZcbiAgICogICAoKG5vZGU6IHVua25vd24sIHRlc3Q/OiBUZXN0LCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBib29sZWFuKVxuICAgKiApfVxuICAgKi9cbiAgKFxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7dW5rbm93bn0gW25vZGVdXG4gICAgICogQHBhcmFtIHtUZXN0fSBbdGVzdF1cbiAgICAgKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtpbmRleF1cbiAgICAgKiBAcGFyYW0ge1BhcmVudCB8IG51bGwgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gICAgICogQHBhcmFtIHt1bmtub3dufSBbY29udGV4dF1cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXBhcmFtc1xuICAgIGZ1bmN0aW9uIChub2RlLCB0ZXN0LCBpbmRleCwgcGFyZW50LCBjb250ZXh0KSB7XG4gICAgICBjb25zdCBjaGVjayA9IGNvbnZlcnQodGVzdClcblxuICAgICAgaWYgKFxuICAgICAgICBpbmRleCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICh0eXBlb2YgaW5kZXggIT09ICdudW1iZXInIHx8XG4gICAgICAgICAgaW5kZXggPCAwIHx8XG4gICAgICAgICAgaW5kZXggPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHBvc2l0aXZlIGZpbml0ZSBpbmRleCcpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgcGFyZW50ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgcGFyZW50ICE9PSBudWxsICYmXG4gICAgICAgICghaXMocGFyZW50KSB8fCAhcGFyZW50LmNoaWxkcmVuKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgcGFyZW50IG5vZGUnKVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIChwYXJlbnQgPT09IHVuZGVmaW5lZCB8fCBwYXJlbnQgPT09IG51bGwpICE9PVxuICAgICAgICAoaW5kZXggPT09IHVuZGVmaW5lZCB8fCBpbmRleCA9PT0gbnVsbClcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGJvdGggcGFyZW50IGFuZCBpbmRleCcpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsb29rc0xpa2VBTm9kZShub2RlKVxuICAgICAgICA/IGNoZWNrLmNhbGwoY29udGV4dCwgbm9kZSwgaW5kZXgsIHBhcmVudClcbiAgICAgICAgOiBmYWxzZVxuICAgIH1cbiAgKVxuXG4vKipcbiAqIEdlbmVyYXRlIGFuIGFzc2VydGlvbiBmcm9tIGEgdGVzdC5cbiAqXG4gKiBVc2VmdWwgaWYgeW91XHUyMDE5cmUgZ29pbmcgdG8gdGVzdCBtYW55IG5vZGVzLCBmb3IgZXhhbXBsZSB3aGVuIGNyZWF0aW5nIGFcbiAqIHV0aWxpdHkgd2hlcmUgc29tZXRoaW5nIGVsc2UgcGFzc2VzIGEgY29tcGF0aWJsZSB0ZXN0LlxuICpcbiAqIFRoZSBjcmVhdGVkIGZ1bmN0aW9uIGlzIGEgYml0IGZhc3RlciBiZWNhdXNlIGl0IGV4cGVjdHMgdmFsaWQgaW5wdXQgb25seTpcbiAqIGEgYG5vZGVgLCBgaW5kZXhgLCBhbmQgYHBhcmVudGAuXG4gKlxuICogQHBhcmFtIHtUZXN0fSB0ZXN0XG4gKiAgICogICB3aGVuIG51bGxpc2gsIGNoZWNrcyBpZiBgbm9kZWAgaXMgYSBgTm9kZWAuXG4gKiAgICogICB3aGVuIGBzdHJpbmdgLCB3b3JrcyBsaWtlIHBhc3NpbmcgYChub2RlKSA9PiBub2RlLnR5cGUgPT09IHRlc3RgLlxuICogICAqICAgd2hlbiBgZnVuY3Rpb25gIGNoZWNrcyBpZiBmdW5jdGlvbiBwYXNzZWQgdGhlIG5vZGUgaXMgdHJ1ZS5cbiAqICAgKiAgIHdoZW4gYG9iamVjdGAsIGNoZWNrcyB0aGF0IGFsbCBrZXlzIGluIHRlc3QgYXJlIGluIG5vZGUsIGFuZCB0aGF0IHRoZXkgaGF2ZSAoc3RyaWN0bHkpIGVxdWFsIHZhbHVlcy5cbiAqICAgKiAgIHdoZW4gYGFycmF5YCwgY2hlY2tzIGlmIGFueSBvbmUgb2YgdGhlIHN1YnRlc3RzIHBhc3MuXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKiAgIEFuIGFzc2VydGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnZlcnQgPVxuICAvLyBOb3RlOiBvdmVybG9hZHMgaW4gSlNEb2MgY2FuXHUyMDE5dCB5ZXQgdXNlIGRpZmZlcmVudCBgQHRlbXBsYXRlYHMuXG4gIC8qKlxuICAgKiBAdHlwZSB7KFxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgc3RyaW5nPih0ZXN0OiBDb25kaXRpb24pID0+IChub2RlOiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiB7dHlwZTogQ29uZGl0aW9ufSkgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgUHJvcHM+KHRlc3Q6IENvbmRpdGlvbikgPT4gKG5vZGU6IHVua25vd24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIENvbmRpdGlvbikgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgVGVzdEZ1bmN0aW9uPih0ZXN0OiBDb25kaXRpb24pID0+IChub2RlOiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBQcmVkaWNhdGU8Q29uZGl0aW9uLCBOb2RlPikgJlxuICAgKiAgICgodGVzdD86IG51bGwgfCB1bmRlZmluZWQpID0+IChub2RlPzogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlKSAmXG4gICAqICAgKCh0ZXN0PzogVGVzdCkgPT4gQ2hlY2spXG4gICAqICl9XG4gICAqL1xuICAoXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtUZXN0fSBbdGVzdF1cbiAgICAgKiBAcmV0dXJucyB7Q2hlY2t9XG4gICAgICovXG4gICAgZnVuY3Rpb24gKHRlc3QpIHtcbiAgICAgIGlmICh0ZXN0ID09PSBudWxsIHx8IHRlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gb2tcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBjYXN0RmFjdG9yeSh0ZXN0KVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRlc3QgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRlc3QpID8gYW55RmFjdG9yeSh0ZXN0KSA6IHByb3BzRmFjdG9yeSh0ZXN0KVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRlc3QgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0eXBlRmFjdG9yeSh0ZXN0KVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGZ1bmN0aW9uLCBzdHJpbmcsIG9yIG9iamVjdCBhcyB0ZXN0JylcbiAgICB9XG4gIClcblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PFByb3BzIHwgVGVzdEZ1bmN0aW9uIHwgc3RyaW5nPn0gdGVzdHNcbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gYW55RmFjdG9yeSh0ZXN0cykge1xuICAvKiogQHR5cGUge0FycmF5PENoZWNrPn0gKi9cbiAgY29uc3QgY2hlY2tzID0gW11cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHRlc3RzLmxlbmd0aCkge1xuICAgIGNoZWNrc1tpbmRleF0gPSBjb252ZXJ0KHRlc3RzW2luZGV4XSlcbiAgfVxuXG4gIHJldHVybiBjYXN0RmFjdG9yeShhbnkpXG5cbiAgLyoqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiBAdHlwZSB7VGVzdEZ1bmN0aW9ufVxuICAgKi9cbiAgZnVuY3Rpb24gYW55KC4uLnBhcmFtZXRlcnMpIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBjaGVja3MubGVuZ3RoKSB7XG4gICAgICBpZiAoY2hlY2tzW2luZGV4XS5hcHBseSh0aGlzLCBwYXJhbWV0ZXJzKSkgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gYW4gb2JqZWN0IGludG8gYSB0ZXN0IGZvciBhIG5vZGUgd2l0aCBhIGNlcnRhaW4gZmllbGRzLlxuICpcbiAqIEBwYXJhbSB7UHJvcHN9IGNoZWNrXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKi9cbmZ1bmN0aW9uIHByb3BzRmFjdG9yeShjaGVjaykge1xuICBjb25zdCBjaGVja0FzUmVjb3JkID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKGNoZWNrKVxuXG4gIHJldHVybiBjYXN0RmFjdG9yeShhbGwpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGZ1bmN0aW9uIGFsbChub2RlKSB7XG4gICAgY29uc3Qgbm9kZUFzUmVjb3JkID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKFxuICAgICAgLyoqIEB0eXBlIHt1bmtub3dufSAqLyAobm9kZSlcbiAgICApXG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQga2V5XG5cbiAgICBmb3IgKGtleSBpbiBjaGVjaykge1xuICAgICAgaWYgKG5vZGVBc1JlY29yZFtrZXldICE9PSBjaGVja0FzUmVjb3JkW2tleV0pIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGEgc3RyaW5nIGludG8gYSB0ZXN0IGZvciBhIG5vZGUgd2l0aCBhIGNlcnRhaW4gdHlwZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hlY2tcbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gdHlwZUZhY3RvcnkoY2hlY2spIHtcbiAgcmV0dXJuIGNhc3RGYWN0b3J5KHR5cGUpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICAgKi9cbiAgZnVuY3Rpb24gdHlwZShub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS50eXBlID09PSBjaGVja1xuICB9XG59XG5cbi8qKlxuICogVHVybiBhIGN1c3RvbSB0ZXN0IGludG8gYSB0ZXN0IGZvciBhIG5vZGUgdGhhdCBwYXNzZXMgdGhhdCB0ZXN0LlxuICpcbiAqIEBwYXJhbSB7VGVzdEZ1bmN0aW9ufSB0ZXN0RnVuY3Rpb25cbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gY2FzdEZhY3RvcnkodGVzdEZ1bmN0aW9uKSB7XG4gIHJldHVybiBjaGVja1xuXG4gIC8qKlxuICAgKiBAdGhpcyB7dW5rbm93bn1cbiAgICogQHR5cGUge0NoZWNrfVxuICAgKi9cbiAgZnVuY3Rpb24gY2hlY2sodmFsdWUsIGluZGV4LCBwYXJlbnQpIHtcbiAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgIGxvb2tzTGlrZUFOb2RlKHZhbHVlKSAmJlxuICAgICAgICB0ZXN0RnVuY3Rpb24uY2FsbChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIHR5cGVvZiBpbmRleCA9PT0gJ251bWJlcicgPyBpbmRleCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBwYXJlbnQgfHwgdW5kZWZpbmVkXG4gICAgICAgIClcbiAgICApXG4gIH1cbn1cblxuZnVuY3Rpb24gb2soKSB7XG4gIHJldHVybiB0cnVlXG59XG5cbi8qKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogQHJldHVybnMge3ZhbHVlIGlzIE5vZGV9XG4gKi9cbmZ1bmN0aW9uIGxvb2tzTGlrZUFOb2RlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICd0eXBlJyBpbiB2YWx1ZVxufVxuIiwgIi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2xvcihkKSB7XG4gIHJldHVybiBkXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IFVuaXN0Tm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5QYXJlbnR9IFVuaXN0UGFyZW50XG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7RXhjbHVkZTxpbXBvcnQoJ3VuaXN0LXV0aWwtaXMnKS5UZXN0LCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkfSBUZXN0XG4gKiAgIFRlc3QgZnJvbSBgdW5pc3QtdXRpbC1pc2AuXG4gKlxuICogICBOb3RlOiB3ZSBoYXZlIHJlbW92ZSBhbmQgYWRkIGB1bmRlZmluZWRgLCBiZWNhdXNlIG90aGVyd2lzZSB3aGVuIGdlbmVyYXRpbmdcbiAqICAgYXV0b21hdGljIGAuZC50c2AgZmlsZXMsIFRTIHRyaWVzIHRvIGZsYXR0ZW4gcGF0aHMgZnJvbSBhIGxvY2FsIHBlcnNwZWN0aXZlLFxuICogICB3aGljaCBkb2Vzblx1MjAxOXQgd29yayB3aGVuIHB1Ymxpc2hpbmcgb24gbnBtLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgRm4gZXh0ZW5kcyAodmFsdWU6IGFueSkgPT4gdmFsdWUgaXMgaW5mZXIgVGhpbmdcbiAqICAgPyBUaGluZ1xuICogICA6IEZhbGxiYWNrXG4gKiApfSBQcmVkaWNhdGVcbiAqICAgR2V0IHRoZSB2YWx1ZSBvZiBhIHR5cGUgZ3VhcmQgYEZuYC5cbiAqIEB0ZW1wbGF0ZSBGblxuICogICBWYWx1ZTsgdHlwaWNhbGx5IGZ1bmN0aW9uIHRoYXQgaXMgYSB0eXBlIGd1YXJkIChzdWNoIGFzIGAoeCk6IHggaXMgWWApLlxuICogQHRlbXBsYXRlIEZhbGxiYWNrXG4gKiAgIFZhbHVlIHRvIHlpZWxkIGlmIGBGbmAgaXMgbm90IGEgdHlwZSBndWFyZC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIENoZWNrIGV4dGVuZHMgbnVsbCB8IHVuZGVmaW5lZCAvLyBObyB0ZXN0LlxuICogICA/IFZhbHVlXG4gKiAgIDogVmFsdWUgZXh0ZW5kcyB7dHlwZTogQ2hlY2t9IC8vIFN0cmluZyAodHlwZSkgdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IFZhbHVlIGV4dGVuZHMgQ2hlY2sgLy8gUGFydGlhbCB0ZXN0LlxuICogICA/IFZhbHVlXG4gKiAgIDogQ2hlY2sgZXh0ZW5kcyBGdW5jdGlvbiAvLyBGdW5jdGlvbiB0ZXN0LlxuICogICA/IFByZWRpY2F0ZTxDaGVjaywgVmFsdWU+IGV4dGVuZHMgVmFsdWVcbiAqICAgICA/IFByZWRpY2F0ZTxDaGVjaywgVmFsdWU+XG4gKiAgICAgOiBuZXZlclxuICogICA6IG5ldmVyIC8vIFNvbWUgb3RoZXIgdGVzdD9cbiAqICl9IE1hdGNoZXNPbmVcbiAqICAgQ2hlY2sgd2hldGhlciBhIG5vZGUgbWF0Y2hlcyBhIHByaW1pdGl2ZSBjaGVjayBpbiB0aGUgdHlwZSBzeXN0ZW0uXG4gKiBAdGVtcGxhdGUgVmFsdWVcbiAqICAgVmFsdWU7IHR5cGljYWxseSB1bmlzdCBgTm9kZWAuXG4gKiBAdGVtcGxhdGUgQ2hlY2tcbiAqICAgVmFsdWU7IHR5cGljYWxseSBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LCBidXQgbm90IGFycmF5cy5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIENoZWNrIGV4dGVuZHMgQXJyYXk8YW55PlxuICogICA/IE1hdGNoZXNPbmU8VmFsdWUsIENoZWNrW2tleW9mIENoZWNrXT5cbiAqICAgOiBNYXRjaGVzT25lPFZhbHVlLCBDaGVjaz5cbiAqICl9IE1hdGNoZXNcbiAqICAgQ2hlY2sgd2hldGhlciBhIG5vZGUgbWF0Y2hlcyBhIGNoZWNrIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSBWYWx1ZVxuICogICBWYWx1ZTsgdHlwaWNhbGx5IHVuaXN0IGBOb2RlYC5cbiAqIEB0ZW1wbGF0ZSBDaGVja1xuICogICBWYWx1ZTsgdHlwaWNhbGx5IGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7MCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB8IDcgfCA4IHwgOSB8IDEwfSBVaW50XG4gKiAgIE51bWJlcjsgY2FwcGVkIHJlYXNvbmFibHkuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SSBleHRlbmRzIDAgPyAxIDogSSBleHRlbmRzIDEgPyAyIDogSSBleHRlbmRzIDIgPyAzIDogSSBleHRlbmRzIDMgPyA0IDogSSBleHRlbmRzIDQgPyA1IDogSSBleHRlbmRzIDUgPyA2IDogSSBleHRlbmRzIDYgPyA3IDogSSBleHRlbmRzIDcgPyA4IDogSSBleHRlbmRzIDggPyA5IDogMTB9IEluY3JlbWVudFxuICogICBJbmNyZW1lbnQgYSBudW1iZXIgaW4gdGhlIHR5cGUgc3lzdGVtLlxuICogQHRlbXBsYXRlIHtVaW50fSBbST0wXVxuICogICBJbmRleC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIE5vZGUgZXh0ZW5kcyBVbmlzdFBhcmVudFxuICogICA/IE5vZGUgZXh0ZW5kcyB7Y2hpbGRyZW46IEFycmF5PGluZmVyIENoaWxkcmVuPn1cbiAqICAgICA/IENoaWxkIGV4dGVuZHMgQ2hpbGRyZW4gPyBOb2RlIDogbmV2ZXJcbiAqICAgICA6IG5ldmVyXG4gKiAgIDogbmV2ZXJcbiAqICl9IEludGVybmFsUGFyZW50XG4gKiAgIENvbGxlY3Qgbm9kZXMgdGhhdCBjYW4gYmUgcGFyZW50cyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IE5vZGVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtJbnRlcm5hbFBhcmVudDxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGlsZD59IFBhcmVudFxuICogICBDb2xsZWN0IG5vZGVzIGluIGBUcmVlYCB0aGF0IGNhbiBiZSBwYXJlbnRzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgRGVwdGggZXh0ZW5kcyBNYXhcbiAqICAgPyBuZXZlclxuICogICA6XG4gKiAgICAgfCBJbnRlcm5hbFBhcmVudDxOb2RlLCBDaGlsZD5cbiAqICAgICB8IEludGVybmFsQW5jZXN0b3I8Tm9kZSwgSW50ZXJuYWxQYXJlbnQ8Tm9kZSwgQ2hpbGQ+LCBNYXgsIEluY3JlbWVudDxEZXB0aD4+XG4gKiApfSBJbnRlcm5hbEFuY2VzdG9yXG4gKiAgIENvbGxlY3Qgbm9kZXMgaW4gYFRyZWVgIHRoYXQgY2FuIGJlIGFuY2VzdG9ycyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IE5vZGVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW01heD0xMF1cbiAqICAgTWF4OyBzZWFyY2hlcyB1cCB0byB0aGlzIGRlcHRoLlxuICogQHRlbXBsYXRlIHtVaW50fSBbRGVwdGg9MF1cbiAqICAgQ3VycmVudCBkZXB0aC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtJbnRlcm5hbEFuY2VzdG9yPEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoaWxkPn0gQW5jZXN0b3JcbiAqICAgQ29sbGVjdCBub2RlcyBpbiBgVHJlZWAgdGhhdCBjYW4gYmUgYW5jZXN0b3JzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgVHJlZSBleHRlbmRzIFVuaXN0UGFyZW50XG4gKiAgICAgPyBEZXB0aCBleHRlbmRzIE1heFxuICogICAgICAgPyBUcmVlXG4gKiAgICAgICA6IFRyZWUgfCBJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWVbJ2NoaWxkcmVuJ11bbnVtYmVyXSwgTWF4LCBJbmNyZW1lbnQ8RGVwdGg+PlxuICogICAgIDogVHJlZVxuICogKX0gSW5jbHVzaXZlRGVzY2VuZGFudFxuICogICBDb2xsZWN0IGFsbCAoaW5jbHVzaXZlKSBkZXNjZW5kYW50cyBvZiBgVHJlZWAuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRoaXMgc2VlbXMgdG8gYmUgdGhlIGZhc3Rlc3Qgd2F5IHRvXG4gKiAgID4gcmVjdXJzZSB3aXRob3V0IGFjdHVhbGx5IHJ1bm5pbmcgaW50byBhbiBpbmZpbml0ZSBsb29wLCB3aGljaCB0aGVcbiAqICAgPiBwcmV2aW91cyB2ZXJzaW9uIGRpZC5cbiAqICAgPlxuICogICA+IFByYWN0aWNhbGx5LCBhIG1heCBvZiBgMmAgaXMgdHlwaWNhbGx5IGVub3VnaCBhc3N1bWluZyBhIGBSb290YCBpc1xuICogICA+IHBhc3NlZCwgYnV0IGl0IGRvZXNuXHUyMDE5dCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxuICogICA+IEl0IGdldHMgaGlnaGVyIHdpdGggYExpc3QgPiBMaXN0SXRlbSA+IFRhYmxlID4gVGFibGVSb3cgPiBUYWJsZUNlbGxgLlxuICogICA+IFVzaW5nIHVwIHRvIGAxMGAgZG9lc25cdTIwMTl0IGh1cnQgb3IgaGVscCBlaXRoZXIuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBUcmVlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtNYXg9MTBdXG4gKiAgIE1heDsgc2VhcmNoZXMgdXAgdG8gdGhpcyBkZXB0aC5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0RlcHRoPTBdXG4gKiAgIEN1cnJlbnQgZGVwdGguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7J3NraXAnIHwgYm9vbGVhbn0gQWN0aW9uXG4gKiAgIFVuaW9uIG9mIHRoZSBhY3Rpb24gdHlwZXMuXG4gKlxuICogQHR5cGVkZWYge251bWJlcn0gSW5kZXhcbiAqICAgTW92ZSB0byB0aGUgc2libGluZyBhdCBgaW5kZXhgIG5leHQgKGFmdGVyIG5vZGUgaXRzZWxmIGlzIGNvbXBsZXRlbHlcbiAqICAgdHJhdmVyc2VkKS5cbiAqXG4gKiAgIFVzZWZ1bCBpZiBtdXRhdGluZyB0aGUgdHJlZSwgc3VjaCBhcyByZW1vdmluZyB0aGUgbm9kZSB0aGUgdmlzaXRvciBpc1xuICogICBjdXJyZW50bHkgb24sIG9yIGFueSBvZiBpdHMgcHJldmlvdXMgc2libGluZ3MuXG4gKiAgIFJlc3VsdHMgbGVzcyB0aGFuIDAgb3IgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGBjaGlsZHJlbi5sZW5ndGhgIHN0b3BcbiAqICAgdHJhdmVyc2luZyB0aGUgcGFyZW50LlxuICpcbiAqIEB0eXBlZGVmIHtbKEFjdGlvbiB8IG51bGwgfCB1bmRlZmluZWQgfCB2b2lkKT8sIChJbmRleCB8IG51bGwgfCB1bmRlZmluZWQpP119IEFjdGlvblR1cGxlXG4gKiAgIExpc3Qgd2l0aCBvbmUgb3IgdHdvIHZhbHVlcywgdGhlIGZpcnN0IGFuIGFjdGlvbiwgdGhlIHNlY29uZCBhbiBpbmRleC5cbiAqXG4gKiBAdHlwZWRlZiB7QWN0aW9uIHwgQWN0aW9uVHVwbGUgfCBJbmRleCB8IG51bGwgfCB1bmRlZmluZWQgfCB2b2lkfSBWaXNpdG9yUmVzdWx0XG4gKiAgIEFueSB2YWx1ZSB0aGF0IGNhbiBiZSByZXR1cm5lZCBmcm9tIGEgdmlzaXRvci5cbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBWaXNpdG9yXG4gKiAgIEhhbmRsZSBhIG5vZGUgKG1hdGNoaW5nIGB0ZXN0YCwgaWYgZ2l2ZW4pLlxuICpcbiAqICAgVmlzaXRvcnMgYXJlIGZyZWUgdG8gdHJhbnNmb3JtIGBub2RlYC5cbiAqICAgVGhleSBjYW4gYWxzbyB0cmFuc2Zvcm0gdGhlIHBhcmVudCBvZiBub2RlICh0aGUgbGFzdCBvZiBgYW5jZXN0b3JzYCkuXG4gKlxuICogICBSZXBsYWNpbmcgYG5vZGVgIGl0c2VsZiwgaWYgYFNLSVBgIGlzIG5vdCByZXR1cm5lZCwgc3RpbGwgY2F1c2VzIGl0c1xuICogICBkZXNjZW5kYW50cyB0byBiZSB3YWxrZWQgKHdoaWNoIGlzIGEgYnVnKS5cbiAqXG4gKiAgIFdoZW4gYWRkaW5nIG9yIHJlbW92aW5nIHByZXZpb3VzIHNpYmxpbmdzIG9mIGBub2RlYCAob3IgbmV4dCBzaWJsaW5ncywgaW5cbiAqICAgY2FzZSBvZiByZXZlcnNlKSwgdGhlIGBWaXNpdG9yYCBzaG91bGQgcmV0dXJuIGEgbmV3IGBJbmRleGAgdG8gc3BlY2lmeSB0aGVcbiAqICAgc2libGluZyB0byB0cmF2ZXJzZSBhZnRlciBgbm9kZWAgaXMgdHJhdmVyc2VkLlxuICogICBBZGRpbmcgb3IgcmVtb3ZpbmcgbmV4dCBzaWJsaW5ncyBvZiBgbm9kZWAgKG9yIHByZXZpb3VzIHNpYmxpbmdzLCBpbiBjYXNlXG4gKiAgIG9mIHJldmVyc2UpIGlzIGhhbmRsZWQgYXMgZXhwZWN0ZWQgd2l0aG91dCBuZWVkaW5nIHRvIHJldHVybiBhIG5ldyBgSW5kZXhgLlxuICpcbiAqICAgUmVtb3ZpbmcgdGhlIGNoaWxkcmVuIHByb3BlcnR5IG9mIGFuIGFuY2VzdG9yIHN0aWxsIHJlc3VsdHMgaW4gdGhlbSBiZWluZ1xuICogICB0cmF2ZXJzZWQuXG4gKiBAcGFyYW0ge1Zpc2l0ZWR9IG5vZGVcbiAqICAgRm91bmQgbm9kZS5cbiAqIEBwYXJhbSB7QXJyYXk8VmlzaXRlZFBhcmVudHM+fSBhbmNlc3RvcnNcbiAqICAgQW5jZXN0b3JzIG9mIGBub2RlYC5cbiAqIEByZXR1cm5zIHtWaXNpdG9yUmVzdWx0fVxuICogICBXaGF0IHRvIGRvIG5leHQuXG4gKlxuICogICBBbiBgSW5kZXhgIGlzIHRyZWF0ZWQgYXMgYSB0dXBsZSBvZiBgW0NPTlRJTlVFLCBJbmRleF1gLlxuICogICBBbiBgQWN0aW9uYCBpcyB0cmVhdGVkIGFzIGEgdHVwbGUgb2YgYFtBY3Rpb25dYC5cbiAqXG4gKiAgIFBhc3NpbmcgYSB0dXBsZSBiYWNrIG9ubHkgbWFrZXMgc2Vuc2UgaWYgdGhlIGBBY3Rpb25gIGlzIGBTS0lQYC5cbiAqICAgV2hlbiB0aGUgYEFjdGlvbmAgaXMgYEVYSVRgLCB0aGF0IGFjdGlvbiBjYW4gYmUgcmV0dXJuZWQuXG4gKiAgIFdoZW4gdGhlIGBBY3Rpb25gIGlzIGBDT05USU5VRWAsIGBJbmRleGAgY2FuIGJlIHJldHVybmVkLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFtWaXNpdGVkPVVuaXN0Tm9kZV1cbiAqICAgVmlzaXRlZCBub2RlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1VuaXN0UGFyZW50fSBbVmlzaXRlZFBhcmVudHM9VW5pc3RQYXJlbnRdXG4gKiAgIEFuY2VzdG9yIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7VmlzaXRvcjxNYXRjaGVzPEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoZWNrPiwgQW5jZXN0b3I8VHJlZSwgTWF0Y2hlczxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGVjaz4+Pn0gQnVpbGRWaXNpdG9yXG4gKiAgIEJ1aWxkIGEgdHlwZWQgYFZpc2l0b3JgIGZ1bmN0aW9uIGZyb20gYSB0cmVlIGFuZCBhIHRlc3QuXG4gKlxuICogICBJdCB3aWxsIGluZmVyIHdoaWNoIHZhbHVlcyBhcmUgcGFzc2VkIGFzIGBub2RlYCBhbmQgd2hpY2ggYXMgYHBhcmVudHNgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFtUcmVlPVVuaXN0Tm9kZV1cbiAqICAgVHJlZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBbQ2hlY2s9VGVzdF1cbiAqICAgVGVzdCB0eXBlLlxuICovXG5cbmltcG9ydCB7Y29udmVydH0gZnJvbSAndW5pc3QtdXRpbC1pcydcbmltcG9ydCB7Y29sb3J9IGZyb20gJ3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cy9kby1ub3QtdXNlLWNvbG9yJ1xuXG4vKiogQHR5cGUge1JlYWRvbmx5PEFjdGlvblR1cGxlPn0gKi9cbmNvbnN0IGVtcHR5ID0gW11cblxuLyoqXG4gKiBDb250aW51ZSB0cmF2ZXJzaW5nIGFzIG5vcm1hbC5cbiAqL1xuZXhwb3J0IGNvbnN0IENPTlRJTlVFID0gdHJ1ZVxuXG4vKipcbiAqIFN0b3AgdHJhdmVyc2luZyBpbW1lZGlhdGVseS5cbiAqL1xuZXhwb3J0IGNvbnN0IEVYSVQgPSBmYWxzZVxuXG4vKipcbiAqIERvIG5vdCB0cmF2ZXJzZSB0aGlzIG5vZGVcdTIwMTlzIGNoaWxkcmVuLlxuICovXG5leHBvcnQgY29uc3QgU0tJUCA9ICdza2lwJ1xuXG4vKipcbiAqIFZpc2l0IG5vZGVzLCB3aXRoIGFuY2VzdHJhbCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBUaGlzIGFsZ29yaXRobSBwZXJmb3JtcyAqZGVwdGgtZmlyc3QqICp0cmVlIHRyYXZlcnNhbCogaW4gKnByZW9yZGVyKlxuICogKCoqTkxSKiopIG9yIGlmIGByZXZlcnNlYCBpcyBnaXZlbiwgaW4gKnJldmVyc2UgcHJlb3JkZXIqICgqKk5STCoqKS5cbiAqXG4gKiBZb3UgY2FuIGNob29zZSBmb3Igd2hpY2ggbm9kZXMgYHZpc2l0b3JgIGlzIGNhbGxlZCBieSBwYXNzaW5nIGEgYHRlc3RgLlxuICogRm9yIGNvbXBsZXggdGVzdHMsIHlvdSBzaG91bGQgdGVzdCB5b3Vyc2VsZiBpbiBgdmlzaXRvcmAsIGFzIGl0IHdpbGwgYmVcbiAqIGZhc3RlciBhbmQgd2lsbCBoYXZlIGltcHJvdmVkIHR5cGUgaW5mb3JtYXRpb24uXG4gKlxuICogV2Fsa2luZyB0aGUgdHJlZSBpcyBhbiBpbnRlbnNpdmUgdGFzay5cbiAqIE1ha2UgdXNlIG9mIHRoZSByZXR1cm4gdmFsdWVzIG9mIHRoZSB2aXNpdG9yIHdoZW4gcG9zc2libGUuXG4gKiBJbnN0ZWFkIG9mIHdhbGtpbmcgYSB0cmVlIG11bHRpcGxlIHRpbWVzLCB3YWxrIGl0IG9uY2UsIHVzZSBgdW5pc3QtdXRpbC1pc2BcbiAqIHRvIGNoZWNrIGlmIGEgbm9kZSBtYXRjaGVzLCBhbmQgdGhlbiBwZXJmb3JtIGRpZmZlcmVudCBvcGVyYXRpb25zLlxuICpcbiAqIFlvdSBjYW4gY2hhbmdlIHRoZSB0cmVlLlxuICogU2VlIGBWaXNpdG9yYCBmb3IgbW9yZSBpbmZvLlxuICpcbiAqIEBvdmVybG9hZFxuICogQHBhcmFtIHtUcmVlfSB0cmVlXG4gKiBAcGFyYW0ge0NoZWNrfSBjaGVja1xuICogQHBhcmFtIHtCdWlsZFZpc2l0b3I8VHJlZSwgQ2hlY2s+fSB2aXNpdG9yXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmV2ZXJzZV1cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKlxuICogQG92ZXJsb2FkXG4gKiBAcGFyYW0ge1RyZWV9IHRyZWVcbiAqIEBwYXJhbSB7QnVpbGRWaXNpdG9yPFRyZWU+fSB2aXNpdG9yXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmV2ZXJzZV1cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKlxuICogQHBhcmFtIHtVbmlzdE5vZGV9IHRyZWVcbiAqICAgVHJlZSB0byB0cmF2ZXJzZS5cbiAqIEBwYXJhbSB7VmlzaXRvciB8IFRlc3R9IHRlc3RcbiAqICAgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdFxuICogQHBhcmFtIHtWaXNpdG9yIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt2aXNpdG9yXVxuICogICBIYW5kbGUgZWFjaCBub2RlLlxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiAgIFRyYXZlcnNlIGluIHJldmVyc2UgcHJlb3JkZXIgKE5STCkgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBwcmVvcmRlciAoTkxSKS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgTm9kZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBDaGVja1xuICogICBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmlzaXRQYXJlbnRzKHRyZWUsIHRlc3QsIHZpc2l0b3IsIHJldmVyc2UpIHtcbiAgLyoqIEB0eXBlIHtUZXN0fSAqL1xuICBsZXQgY2hlY2tcblxuICBpZiAodHlwZW9mIHRlc3QgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZpc2l0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXZlcnNlID0gdmlzaXRvclxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igbm8gdmlzaXRvciBnaXZlbiwgc28gYHZpc2l0b3JgIGlzIHRlc3QuXG4gICAgdmlzaXRvciA9IHRlc3RcbiAgfSBlbHNlIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHZpc2l0b3IgZ2l2ZW4sIHNvIGB0ZXN0YCBpc25cdTIwMTl0IGEgdmlzaXRvci5cbiAgICBjaGVjayA9IHRlc3RcbiAgfVxuXG4gIGNvbnN0IGlzID0gY29udmVydChjaGVjaylcbiAgY29uc3Qgc3RlcCA9IHJldmVyc2UgPyAtMSA6IDFcblxuICBmYWN0b3J5KHRyZWUsIHVuZGVmaW5lZCwgW10pKClcblxuICAvKipcbiAgICogQHBhcmFtIHtVbmlzdE5vZGV9IG5vZGVcbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gICAqIEBwYXJhbSB7QXJyYXk8VW5pc3RQYXJlbnQ+fSBwYXJlbnRzXG4gICAqL1xuICBmdW5jdGlvbiBmYWN0b3J5KG5vZGUsIGluZGV4LCBwYXJlbnRzKSB7XG4gICAgY29uc3QgdmFsdWUgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAqLyAoXG4gICAgICBub2RlICYmIHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyA/IG5vZGUgOiB7fVxuICAgIClcblxuICAgIGlmICh0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IG5hbWUgPVxuICAgICAgICAvLyBgaGFzdGBcbiAgICAgICAgdHlwZW9mIHZhbHVlLnRhZ05hbWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyB2YWx1ZS50YWdOYW1lXG4gICAgICAgICAgOiAvLyBgeGFzdGBcbiAgICAgICAgICB0eXBlb2YgdmFsdWUubmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IHZhbHVlLm5hbWVcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmlzaXQsICduYW1lJywge1xuICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAnbm9kZSAoJyArIGNvbG9yKG5vZGUudHlwZSArIChuYW1lID8gJzwnICsgbmFtZSArICc+JyA6ICcnKSkgKyAnKSdcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0XG5cbiAgICBmdW5jdGlvbiB2aXNpdCgpIHtcbiAgICAgIC8qKiBAdHlwZSB7UmVhZG9ubHk8QWN0aW9uVHVwbGU+fSAqL1xuICAgICAgbGV0IHJlc3VsdCA9IGVtcHR5XG4gICAgICAvKiogQHR5cGUge1JlYWRvbmx5PEFjdGlvblR1cGxlPn0gKi9cbiAgICAgIGxldCBzdWJyZXN1bHRcbiAgICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgICAgbGV0IG9mZnNldFxuICAgICAgLyoqIEB0eXBlIHtBcnJheTxVbmlzdFBhcmVudD59ICovXG4gICAgICBsZXQgZ3JhbmRwYXJlbnRzXG5cbiAgICAgIGlmICghdGVzdCB8fCBpcyhub2RlLCBpbmRleCwgcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdIHx8IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYHZpc2l0b3JgIGlzIG5vdyBhIHZpc2l0b3IuXG4gICAgICAgIHJlc3VsdCA9IHRvUmVzdWx0KHZpc2l0b3Iobm9kZSwgcGFyZW50cykpXG5cbiAgICAgICAgaWYgKHJlc3VsdFswXSA9PT0gRVhJVCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoJ2NoaWxkcmVuJyBpbiBub2RlICYmIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3Qgbm9kZUFzUGFyZW50ID0gLyoqIEB0eXBlIHtVbmlzdFBhcmVudH0gKi8gKG5vZGUpXG5cbiAgICAgICAgaWYgKG5vZGVBc1BhcmVudC5jaGlsZHJlbiAmJiByZXN1bHRbMF0gIT09IFNLSVApIHtcbiAgICAgICAgICBvZmZzZXQgPSAocmV2ZXJzZSA/IG5vZGVBc1BhcmVudC5jaGlsZHJlbi5sZW5ndGggOiAtMSkgKyBzdGVwXG4gICAgICAgICAgZ3JhbmRwYXJlbnRzID0gcGFyZW50cy5jb25jYXQobm9kZUFzUGFyZW50KVxuXG4gICAgICAgICAgd2hpbGUgKG9mZnNldCA+IC0xICYmIG9mZnNldCA8IG5vZGVBc1BhcmVudC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZUFzUGFyZW50LmNoaWxkcmVuW29mZnNldF1cblxuICAgICAgICAgICAgc3VicmVzdWx0ID0gZmFjdG9yeShjaGlsZCwgb2Zmc2V0LCBncmFuZHBhcmVudHMpKClcblxuICAgICAgICAgICAgaWYgKHN1YnJlc3VsdFswXSA9PT0gRVhJVCkge1xuICAgICAgICAgICAgICByZXR1cm4gc3VicmVzdWx0XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9mZnNldCA9XG4gICAgICAgICAgICAgIHR5cGVvZiBzdWJyZXN1bHRbMV0gPT09ICdudW1iZXInID8gc3VicmVzdWx0WzFdIDogb2Zmc2V0ICsgc3RlcFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHVybiBhIHJldHVybiB2YWx1ZSBpbnRvIGEgY2xlYW4gcmVzdWx0LlxuICpcbiAqIEBwYXJhbSB7VmlzaXRvclJlc3VsdH0gdmFsdWVcbiAqICAgVmFsaWQgcmV0dXJuIHZhbHVlcyBmcm9tIHZpc2l0b3JzLlxuICogQHJldHVybnMge1JlYWRvbmx5PEFjdGlvblR1cGxlPn1cbiAqICAgQ2xlYW4gcmVzdWx0LlxuICovXG5mdW5jdGlvbiB0b1Jlc3VsdCh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIFtDT05USU5VRSwgdmFsdWVdXG4gIH1cblxuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/IGVtcHR5IDogW3ZhbHVlXVxufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBkZXByZWNhdGUoZm4pIHtcbiAgcmV0dXJuIGZuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcXVhbCgpIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBvaygpIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnJlYWNoYWJsZSgpIHt9XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2luZm8uanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgSW5mbz59IFByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBOb3JtYWxcbiAqL1xuXG5leHBvcnQgY2xhc3MgU2NoZW1hIHtcbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge1Byb3BlcnRpZXN9IHByb3BlcnR5XG4gICAqIEBwYXJhbSB7Tm9ybWFsfSBub3JtYWxcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzcGFjZV1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5LCBub3JtYWwsIHNwYWNlKSB7XG4gICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5XG4gICAgdGhpcy5ub3JtYWwgPSBub3JtYWxcbiAgICBpZiAoc3BhY2UpIHtcbiAgICAgIHRoaXMuc3BhY2UgPSBzcGFjZVxuICAgIH1cbiAgfVxufVxuXG4vKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG5TY2hlbWEucHJvdG90eXBlLnByb3BlcnR5ID0ge31cbi8qKiBAdHlwZSB7Tm9ybWFsfSAqL1xuU2NoZW1hLnByb3RvdHlwZS5ub3JtYWwgPSB7fVxuLyoqIEB0eXBlIHtzdHJpbmd8bnVsbH0gKi9cblNjaGVtYS5wcm90b3R5cGUuc3BhY2UgPSBudWxsXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NjaGVtYS5qcycpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hLmpzJykuTm9ybWFsfSBOb3JtYWxcbiAqL1xuXG5pbXBvcnQge1NjaGVtYX0gZnJvbSAnLi9zY2hlbWEuanMnXG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWFbXX0gZGVmaW5pdGlvbnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc3BhY2VdXG4gKiBAcmV0dXJucyB7U2NoZW1hfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2UoZGVmaW5pdGlvbnMsIHNwYWNlKSB7XG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydHkgPSB7fVxuICAvKiogQHR5cGUge05vcm1hbH0gKi9cbiAgY29uc3Qgbm9ybWFsID0ge31cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGRlZmluaXRpb25zLmxlbmd0aCkge1xuICAgIE9iamVjdC5hc3NpZ24ocHJvcGVydHksIGRlZmluaXRpb25zW2luZGV4XS5wcm9wZXJ0eSlcbiAgICBPYmplY3QuYXNzaWduKG5vcm1hbCwgZGVmaW5pdGlvbnNbaW5kZXhdLm5vcm1hbClcbiAgfVxuXG4gIHJldHVybiBuZXcgU2NoZW1hKHByb3BlcnR5LCBub3JtYWwsIHNwYWNlKVxufVxuIiwgIi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpXG59XG4iLCAiZXhwb3J0IGNsYXNzIEluZm8ge1xuICAvKipcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgYXR0cmlidXRlKSB7XG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5XG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgdGhpcy5hdHRyaWJ1dGUgPSBhdHRyaWJ1dGVcbiAgfVxufVxuXG4vKiogQHR5cGUge3N0cmluZ3xudWxsfSAqL1xuSW5mby5wcm90b3R5cGUuc3BhY2UgPSBudWxsXG5JbmZvLnByb3RvdHlwZS5ib29sZWFuID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmJvb2xlYW5pc2ggPSBmYWxzZVxuSW5mby5wcm90b3R5cGUub3ZlcmxvYWRlZEJvb2xlYW4gPSBmYWxzZVxuSW5mby5wcm90b3R5cGUubnVtYmVyID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmNvbW1hU2VwYXJhdGVkID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLnNwYWNlU2VwYXJhdGVkID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmNvbW1hT3JTcGFjZVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5tdXN0VXNlUHJvcGVydHkgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUuZGVmaW5lZCA9IGZhbHNlXG4iLCAibGV0IHBvd2VycyA9IDBcblxuZXhwb3J0IGNvbnN0IGJvb2xlYW4gPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IGJvb2xlYW5pc2ggPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IG92ZXJsb2FkZWRCb29sZWFuID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBudW1iZXIgPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IHNwYWNlU2VwYXJhdGVkID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBjb21tYVNlcGFyYXRlZCA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3QgY29tbWFPclNwYWNlU2VwYXJhdGVkID0gaW5jcmVtZW50KClcblxuZnVuY3Rpb24gaW5jcmVtZW50KCkge1xuICByZXR1cm4gMiAqKiArK3Bvd2Vyc1xufVxuIiwgImltcG9ydCB7SW5mb30gZnJvbSAnLi9pbmZvLmpzJ1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi90eXBlcy5qcydcblxuLyoqIEB0eXBlIHtBcnJheTxrZXlvZiB0eXBlcz59ICovXG4vLyBAdHMtZXhwZWN0LWVycm9yOiBodXNoLlxuY29uc3QgY2hlY2tzID0gT2JqZWN0LmtleXModHlwZXMpXG5cbmV4cG9ydCBjbGFzcyBEZWZpbmVkSW5mbyBleHRlbmRzIEluZm8ge1xuICAvKipcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfG51bGx9IFttYXNrXVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3NwYWNlXVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcGVydHksIGF0dHJpYnV0ZSwgbWFzaywgc3BhY2UpIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgc3VwZXIocHJvcGVydHksIGF0dHJpYnV0ZSlcblxuICAgIG1hcmsodGhpcywgJ3NwYWNlJywgc3BhY2UpXG5cbiAgICBpZiAodHlwZW9mIG1hc2sgPT09ICdudW1iZXInKSB7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGNoZWNrcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgY2hlY2sgPSBjaGVja3NbaW5kZXhdXG4gICAgICAgIG1hcmsodGhpcywgY2hlY2tzW2luZGV4XSwgKG1hc2sgJiB0eXBlc1tjaGVja10pID09PSB0eXBlc1tjaGVja10pXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkRlZmluZWRJbmZvLnByb3RvdHlwZS5kZWZpbmVkID0gdHJ1ZVxuXG4vKipcbiAqIEBwYXJhbSB7RGVmaW5lZEluZm99IHZhbHVlc1xuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICovXG5mdW5jdGlvbiBtYXJrKHZhbHVlcywga2V5LCB2YWx1ZSkge1xuICBpZiAodmFsdWUpIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBhc3N1bWUgYHZhbHVlYCBtYXRjaGVzIHRoZSBleHBlY3RlZCB2YWx1ZSBvZiBga2V5YC5cbiAgICB2YWx1ZXNba2V5XSA9IHZhbHVlXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hLmpzJykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9zY2hlbWEuanMnKS5Ob3JtYWx9IE5vcm1hbFxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBBdHRyaWJ1dGVzXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gRGVmaW5pdGlvblxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBudW1iZXJ8bnVsbD59IHByb3BlcnRpZXNcbiAqIEBwcm9wZXJ0eSB7KGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZXMsIHByb3BlcnR5OiBzdHJpbmcpID0+IHN0cmluZ30gdHJhbnNmb3JtXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3NwYWNlXVxuICogQHByb3BlcnR5IHtBdHRyaWJ1dGVzfSBbYXR0cmlidXRlc11cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gW211c3RVc2VQcm9wZXJ0eV1cbiAqL1xuXG5pbXBvcnQge25vcm1hbGl6ZX0gZnJvbSAnLi4vbm9ybWFsaXplLmpzJ1xuaW1wb3J0IHtTY2hlbWF9IGZyb20gJy4vc2NoZW1hLmpzJ1xuaW1wb3J0IHtEZWZpbmVkSW5mb30gZnJvbSAnLi9kZWZpbmVkLWluZm8uanMnXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogQHBhcmFtIHtEZWZpbml0aW9ufSBkZWZpbml0aW9uXG4gKiBAcmV0dXJucyB7U2NoZW1hfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKGRlZmluaXRpb24pIHtcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICBjb25zdCBwcm9wZXJ0eSA9IHt9XG4gIC8qKiBAdHlwZSB7Tm9ybWFsfSAqL1xuICBjb25zdCBub3JtYWwgPSB7fVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IHByb3BcblxuICBmb3IgKHByb3AgaW4gZGVmaW5pdGlvbi5wcm9wZXJ0aWVzKSB7XG4gICAgaWYgKG93bi5jYWxsKGRlZmluaXRpb24ucHJvcGVydGllcywgcHJvcCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZGVmaW5pdGlvbi5wcm9wZXJ0aWVzW3Byb3BdXG4gICAgICBjb25zdCBpbmZvID0gbmV3IERlZmluZWRJbmZvKFxuICAgICAgICBwcm9wLFxuICAgICAgICBkZWZpbml0aW9uLnRyYW5zZm9ybShkZWZpbml0aW9uLmF0dHJpYnV0ZXMgfHwge30sIHByb3ApLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgZGVmaW5pdGlvbi5zcGFjZVxuICAgICAgKVxuXG4gICAgICBpZiAoXG4gICAgICAgIGRlZmluaXRpb24ubXVzdFVzZVByb3BlcnR5ICYmXG4gICAgICAgIGRlZmluaXRpb24ubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKHByb3ApXG4gICAgICApIHtcbiAgICAgICAgaW5mby5tdXN0VXNlUHJvcGVydHkgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIHByb3BlcnR5W3Byb3BdID0gaW5mb1xuXG4gICAgICBub3JtYWxbbm9ybWFsaXplKHByb3ApXSA9IHByb3BcbiAgICAgIG5vcm1hbFtub3JtYWxpemUoaW5mby5hdHRyaWJ1dGUpXSA9IHByb3BcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFNjaGVtYShwcm9wZXJ0eSwgbm9ybWFsLCBkZWZpbml0aW9uLnNwYWNlKVxufVxuIiwgImltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuXG5leHBvcnQgY29uc3QgeGxpbmsgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3hsaW5rJyxcbiAgdHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgICByZXR1cm4gJ3hsaW5rOicgKyBwcm9wLnNsaWNlKDUpLnRvTG93ZXJDYXNlKClcbiAgfSxcbiAgcHJvcGVydGllczoge1xuICAgIHhMaW5rQWN0dWF0ZTogbnVsbCxcbiAgICB4TGlua0FyY1JvbGU6IG51bGwsXG4gICAgeExpbmtIcmVmOiBudWxsLFxuICAgIHhMaW5rUm9sZTogbnVsbCxcbiAgICB4TGlua1Nob3c6IG51bGwsXG4gICAgeExpbmtUaXRsZTogbnVsbCxcbiAgICB4TGlua1R5cGU6IG51bGxcbiAgfVxufSlcbiIsICJpbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcblxuZXhwb3J0IGNvbnN0IHhtbCA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAneG1sJyxcbiAgdHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgICByZXR1cm4gJ3htbDonICsgcHJvcC5zbGljZSgzKS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHt4bWxMYW5nOiBudWxsLCB4bWxCYXNlOiBudWxsLCB4bWxTcGFjZTogbnVsbH1cbn0pXG4iLCAiLyoqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIGF0dHJpYnV0ZSkge1xuICByZXR1cm4gYXR0cmlidXRlIGluIGF0dHJpYnV0ZXMgPyBhdHRyaWJ1dGVzW2F0dHJpYnV0ZV0gOiBhdHRyaWJ1dGVcbn1cbiIsICJpbXBvcnQge2Nhc2VTZW5zaXRpdmVUcmFuc2Zvcm19IGZyb20gJy4vY2FzZS1zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gYXR0cmlidXRlc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIHByb3BlcnR5KSB7XG4gIHJldHVybiBjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIHByb3BlcnR5LnRvTG93ZXJDYXNlKCkpXG59XG4iLCAiaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5pbXBvcnQge2Nhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG5leHBvcnQgY29uc3QgeG1sbnMgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3htbG5zJyxcbiAgYXR0cmlidXRlczoge3htbG5zeGxpbms6ICd4bWxuczp4bGluayd9LFxuICB0cmFuc2Zvcm06IGNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybSxcbiAgcHJvcGVydGllczoge3htbG5zOiBudWxsLCB4bWxuc1hMaW5rOiBudWxsfVxufSlcbiIsICJpbXBvcnQge2Jvb2xlYW5pc2gsIG51bWJlciwgc3BhY2VTZXBhcmF0ZWR9IGZyb20gJy4vdXRpbC90eXBlcy5qcydcbmltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuXG5leHBvcnQgY29uc3QgYXJpYSA9IGNyZWF0ZSh7XG4gIHRyYW5zZm9ybShfLCBwcm9wKSB7XG4gICAgcmV0dXJuIHByb3AgPT09ICdyb2xlJyA/IHByb3AgOiAnYXJpYS0nICsgcHJvcC5zbGljZSg0KS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhcmlhQWN0aXZlRGVzY2VuZGFudDogbnVsbCxcbiAgICBhcmlhQXRvbWljOiBib29sZWFuaXNoLFxuICAgIGFyaWFBdXRvQ29tcGxldGU6IG51bGwsXG4gICAgYXJpYUJ1c3k6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNoZWNrZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNvbENvdW50OiBudW1iZXIsXG4gICAgYXJpYUNvbEluZGV4OiBudW1iZXIsXG4gICAgYXJpYUNvbFNwYW46IG51bWJlcixcbiAgICBhcmlhQ29udHJvbHM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFDdXJyZW50OiBudWxsLFxuICAgIGFyaWFEZXNjcmliZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYURldGFpbHM6IG51bGwsXG4gICAgYXJpYURpc2FibGVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFEcm9wRWZmZWN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhRXJyb3JNZXNzYWdlOiBudWxsLFxuICAgIGFyaWFFeHBhbmRlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhRmxvd1RvOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhR3JhYmJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhSGFzUG9wdXA6IG51bGwsXG4gICAgYXJpYUhpZGRlbjogYm9vbGVhbmlzaCxcbiAgICBhcmlhSW52YWxpZDogbnVsbCxcbiAgICBhcmlhS2V5U2hvcnRjdXRzOiBudWxsLFxuICAgIGFyaWFMYWJlbDogbnVsbCxcbiAgICBhcmlhTGFiZWxsZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUxldmVsOiBudW1iZXIsXG4gICAgYXJpYUxpdmU6IG51bGwsXG4gICAgYXJpYU1vZGFsOiBib29sZWFuaXNoLFxuICAgIGFyaWFNdWx0aUxpbmU6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU11bHRpU2VsZWN0YWJsZTogYm9vbGVhbmlzaCxcbiAgICBhcmlhT3JpZW50YXRpb246IG51bGwsXG4gICAgYXJpYU93bnM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFQbGFjZWhvbGRlcjogbnVsbCxcbiAgICBhcmlhUG9zSW5TZXQ6IG51bWJlcixcbiAgICBhcmlhUHJlc3NlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUmVhZE9ubHk6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJlbGV2YW50OiBudWxsLFxuICAgIGFyaWFSZXF1aXJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhUm93Q291bnQ6IG51bWJlcixcbiAgICBhcmlhUm93SW5kZXg6IG51bWJlcixcbiAgICBhcmlhUm93U3BhbjogbnVtYmVyLFxuICAgIGFyaWFTZWxlY3RlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhU2V0U2l6ZTogbnVtYmVyLFxuICAgIGFyaWFTb3J0OiBudWxsLFxuICAgIGFyaWFWYWx1ZU1heDogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU1pbjogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU5vdzogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZVRleHQ6IG51bGwsXG4gICAgcm9sZTogbnVsbFxuICB9XG59KVxuIiwgImltcG9ydCB7XG4gIGJvb2xlYW4sXG4gIG92ZXJsb2FkZWRCb29sZWFuLFxuICBib29sZWFuaXNoLFxuICBudW1iZXIsXG4gIHNwYWNlU2VwYXJhdGVkLFxuICBjb21tYVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvY2FzZS1pbnNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbmV4cG9ydCBjb25zdCBodG1sID0gY3JlYXRlKHtcbiAgc3BhY2U6ICdodG1sJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VwdGNoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gICAgY2xhc3NuYW1lOiAnY2xhc3MnLFxuICAgIGh0bWxmb3I6ICdmb3InLFxuICAgIGh0dHBlcXVpdjogJ2h0dHAtZXF1aXYnXG4gIH0sXG4gIHRyYW5zZm9ybTogY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtLFxuICBtdXN0VXNlUHJvcGVydHk6IFsnY2hlY2tlZCcsICdtdWx0aXBsZScsICdtdXRlZCcsICdzZWxlY3RlZCddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLy8gU3RhbmRhcmQgUHJvcGVydGllcy5cbiAgICBhYmJyOiBudWxsLFxuICAgIGFjY2VwdDogY29tbWFTZXBhcmF0ZWQsXG4gICAgYWNjZXB0Q2hhcnNldDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYWNjZXNzS2V5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhY3Rpb246IG51bGwsXG4gICAgYWxsb3c6IG51bGwsXG4gICAgYWxsb3dGdWxsU2NyZWVuOiBib29sZWFuLFxuICAgIGFsbG93UGF5bWVudFJlcXVlc3Q6IGJvb2xlYW4sXG4gICAgYWxsb3dVc2VyTWVkaWE6IGJvb2xlYW4sXG4gICAgYWx0OiBudWxsLFxuICAgIGFzOiBudWxsLFxuICAgIGFzeW5jOiBib29sZWFuLFxuICAgIGF1dG9DYXBpdGFsaXplOiBudWxsLFxuICAgIGF1dG9Db21wbGV0ZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXV0b0ZvY3VzOiBib29sZWFuLFxuICAgIGF1dG9QbGF5OiBib29sZWFuLFxuICAgIGNhcHR1cmU6IGJvb2xlYW4sXG4gICAgY2hhclNldDogbnVsbCxcbiAgICBjaGVja2VkOiBib29sZWFuLFxuICAgIGNpdGU6IG51bGwsXG4gICAgY2xhc3NOYW1lOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjb2xzOiBudW1iZXIsXG4gICAgY29sU3BhbjogbnVsbCxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGNvbnRlbnRFZGl0YWJsZTogYm9vbGVhbmlzaCxcbiAgICBjb250cm9sczogYm9vbGVhbixcbiAgICBjb250cm9sc0xpc3Q6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGNvb3JkczogbnVtYmVyIHwgY29tbWFTZXBhcmF0ZWQsXG4gICAgY3Jvc3NPcmlnaW46IG51bGwsXG4gICAgZGF0YTogbnVsbCxcbiAgICBkYXRlVGltZTogbnVsbCxcbiAgICBkZWNvZGluZzogbnVsbCxcbiAgICBkZWZhdWx0OiBib29sZWFuLFxuICAgIGRlZmVyOiBib29sZWFuLFxuICAgIGRpcjogbnVsbCxcbiAgICBkaXJOYW1lOiBudWxsLFxuICAgIGRpc2FibGVkOiBib29sZWFuLFxuICAgIGRvd25sb2FkOiBvdmVybG9hZGVkQm9vbGVhbixcbiAgICBkcmFnZ2FibGU6IGJvb2xlYW5pc2gsXG4gICAgZW5jVHlwZTogbnVsbCxcbiAgICBlbnRlcktleUhpbnQ6IG51bGwsXG4gICAgZm9ybTogbnVsbCxcbiAgICBmb3JtQWN0aW9uOiBudWxsLFxuICAgIGZvcm1FbmNUeXBlOiBudWxsLFxuICAgIGZvcm1NZXRob2Q6IG51bGwsXG4gICAgZm9ybU5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgZm9ybVRhcmdldDogbnVsbCxcbiAgICBoZWFkZXJzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBoaWRkZW46IGJvb2xlYW4sXG4gICAgaGlnaDogbnVtYmVyLFxuICAgIGhyZWY6IG51bGwsXG4gICAgaHJlZkxhbmc6IG51bGwsXG4gICAgaHRtbEZvcjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaHR0cEVxdWl2OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpZDogbnVsbCxcbiAgICBpbWFnZVNpemVzOiBudWxsLFxuICAgIGltYWdlU3JjU2V0OiBudWxsLFxuICAgIGlucHV0TW9kZTogbnVsbCxcbiAgICBpbnRlZ3JpdHk6IG51bGwsXG4gICAgaXM6IG51bGwsXG4gICAgaXNNYXA6IGJvb2xlYW4sXG4gICAgaXRlbUlkOiBudWxsLFxuICAgIGl0ZW1Qcm9wOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtUmVmOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtU2NvcGU6IGJvb2xlYW4sXG4gICAgaXRlbVR5cGU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGtpbmQ6IG51bGwsXG4gICAgbGFiZWw6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsYW5ndWFnZTogbnVsbCxcbiAgICBsaXN0OiBudWxsLFxuICAgIGxvYWRpbmc6IG51bGwsXG4gICAgbG9vcDogYm9vbGVhbixcbiAgICBsb3c6IG51bWJlcixcbiAgICBtYW5pZmVzdDogbnVsbCxcbiAgICBtYXg6IG51bGwsXG4gICAgbWF4TGVuZ3RoOiBudW1iZXIsXG4gICAgbWVkaWE6IG51bGwsXG4gICAgbWV0aG9kOiBudWxsLFxuICAgIG1pbjogbnVsbCxcbiAgICBtaW5MZW5ndGg6IG51bWJlcixcbiAgICBtdWx0aXBsZTogYm9vbGVhbixcbiAgICBtdXRlZDogYm9vbGVhbixcbiAgICBuYW1lOiBudWxsLFxuICAgIG5vbmNlOiBudWxsLFxuICAgIG5vTW9kdWxlOiBib29sZWFuLFxuICAgIG5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgb25BYm9ydDogbnVsbCxcbiAgICBvbkFmdGVyUHJpbnQ6IG51bGwsXG4gICAgb25BdXhDbGljazogbnVsbCxcbiAgICBvbkJlZm9yZU1hdGNoOiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWZvcmVVbmxvYWQ6IG51bGwsXG4gICAgb25CbHVyOiBudWxsLFxuICAgIG9uQ2FuY2VsOiBudWxsLFxuICAgIG9uQ2FuUGxheTogbnVsbCxcbiAgICBvbkNhblBsYXlUaHJvdWdoOiBudWxsLFxuICAgIG9uQ2hhbmdlOiBudWxsLFxuICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgb25DbG9zZTogbnVsbCxcbiAgICBvbkNvbnRleHRMb3N0OiBudWxsLFxuICAgIG9uQ29udGV4dE1lbnU6IG51bGwsXG4gICAgb25Db250ZXh0UmVzdG9yZWQ6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9ybURhdGE6IG51bGwsXG4gICAgb25IYXNoQ2hhbmdlOiBudWxsLFxuICAgIG9uSW5wdXQ6IG51bGwsXG4gICAgb25JbnZhbGlkOiBudWxsLFxuICAgIG9uS2V5RG93bjogbnVsbCxcbiAgICBvbktleVByZXNzOiBudWxsLFxuICAgIG9uS2V5VXA6IG51bGwsXG4gICAgb25MYW5ndWFnZUNoYW5nZTogbnVsbCxcbiAgICBvbkxvYWQ6IG51bGwsXG4gICAgb25Mb2FkZWREYXRhOiBudWxsLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6IG51bGwsXG4gICAgb25Mb2FkRW5kOiBudWxsLFxuICAgIG9uTG9hZFN0YXJ0OiBudWxsLFxuICAgIG9uTWVzc2FnZTogbnVsbCxcbiAgICBvbk1lc3NhZ2VFcnJvcjogbnVsbCxcbiAgICBvbk1vdXNlRG93bjogbnVsbCxcbiAgICBvbk1vdXNlRW50ZXI6IG51bGwsXG4gICAgb25Nb3VzZUxlYXZlOiBudWxsLFxuICAgIG9uTW91c2VNb3ZlOiBudWxsLFxuICAgIG9uTW91c2VPdXQ6IG51bGwsXG4gICAgb25Nb3VzZU92ZXI6IG51bGwsXG4gICAgb25Nb3VzZVVwOiBudWxsLFxuICAgIG9uT2ZmbGluZTogbnVsbCxcbiAgICBvbk9ubGluZTogbnVsbCxcbiAgICBvblBhZ2VIaWRlOiBudWxsLFxuICAgIG9uUGFnZVNob3c6IG51bGwsXG4gICAgb25QYXN0ZTogbnVsbCxcbiAgICBvblBhdXNlOiBudWxsLFxuICAgIG9uUGxheTogbnVsbCxcbiAgICBvblBsYXlpbmc6IG51bGwsXG4gICAgb25Qb3BTdGF0ZTogbnVsbCxcbiAgICBvblByb2dyZXNzOiBudWxsLFxuICAgIG9uUmF0ZUNoYW5nZTogbnVsbCxcbiAgICBvblJlamVjdGlvbkhhbmRsZWQ6IG51bGwsXG4gICAgb25SZXNldDogbnVsbCxcbiAgICBvblJlc2l6ZTogbnVsbCxcbiAgICBvblNjcm9sbDogbnVsbCxcbiAgICBvblNjcm9sbEVuZDogbnVsbCxcbiAgICBvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOiBudWxsLFxuICAgIG9uU2Vla2VkOiBudWxsLFxuICAgIG9uU2Vla2luZzogbnVsbCxcbiAgICBvblNlbGVjdDogbnVsbCxcbiAgICBvblNsb3RDaGFuZ2U6IG51bGwsXG4gICAgb25TdGFsbGVkOiBudWxsLFxuICAgIG9uU3RvcmFnZTogbnVsbCxcbiAgICBvblN1Ym1pdDogbnVsbCxcbiAgICBvblN1c3BlbmQ6IG51bGwsXG4gICAgb25UaW1lVXBkYXRlOiBudWxsLFxuICAgIG9uVG9nZ2xlOiBudWxsLFxuICAgIG9uVW5oYW5kbGVkUmVqZWN0aW9uOiBudWxsLFxuICAgIG9uVW5sb2FkOiBudWxsLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiBudWxsLFxuICAgIG9uV2FpdGluZzogbnVsbCxcbiAgICBvbldoZWVsOiBudWxsLFxuICAgIG9wZW46IGJvb2xlYW4sXG4gICAgb3B0aW11bTogbnVtYmVyLFxuICAgIHBhdHRlcm46IG51bGwsXG4gICAgcGluZzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcGxhY2Vob2xkZXI6IG51bGwsXG4gICAgcGxheXNJbmxpbmU6IGJvb2xlYW4sXG4gICAgcG9zdGVyOiBudWxsLFxuICAgIHByZWxvYWQ6IG51bGwsXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4sXG4gICAgcmVmZXJyZXJQb2xpY3k6IG51bGwsXG4gICAgcmVsOiBzcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZDogYm9vbGVhbixcbiAgICByZXZlcnNlZDogYm9vbGVhbixcbiAgICByb3dzOiBudW1iZXIsXG4gICAgcm93U3BhbjogbnVtYmVyLFxuICAgIHNhbmRib3g6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHNjb3BlOiBudWxsLFxuICAgIHNjb3BlZDogYm9vbGVhbixcbiAgICBzZWFtbGVzczogYm9vbGVhbixcbiAgICBzZWxlY3RlZDogYm9vbGVhbixcbiAgICBzaGFwZTogbnVsbCxcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc2l6ZXM6IG51bGwsXG4gICAgc2xvdDogbnVsbCxcbiAgICBzcGFuOiBudW1iZXIsXG4gICAgc3BlbGxDaGVjazogYm9vbGVhbmlzaCxcbiAgICBzcmM6IG51bGwsXG4gICAgc3JjRG9jOiBudWxsLFxuICAgIHNyY0xhbmc6IG51bGwsXG4gICAgc3JjU2V0OiBudWxsLFxuICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgc3RlcDogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICB0YWJJbmRleDogbnVtYmVyLFxuICAgIHRhcmdldDogbnVsbCxcbiAgICB0aXRsZTogbnVsbCxcbiAgICB0cmFuc2xhdGU6IG51bGwsXG4gICAgdHlwZTogbnVsbCxcbiAgICB0eXBlTXVzdE1hdGNoOiBib29sZWFuLFxuICAgIHVzZU1hcDogbnVsbCxcbiAgICB2YWx1ZTogYm9vbGVhbmlzaCxcbiAgICB3aWR0aDogbnVtYmVyLFxuICAgIHdyYXA6IG51bGwsXG5cbiAgICAvLyBMZWdhY3kuXG4gICAgLy8gU2VlOiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNvdGhlci1lbGVtZW50cywtYXR0cmlidXRlcy1hbmQtYXBpc1xuICAgIGFsaWduOiBudWxsLCAvLyBTZXZlcmFsLiBVc2UgQ1NTIGB0ZXh0LWFsaWduYCBpbnN0ZWFkLFxuICAgIGFMaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTphY3RpdmUge2NvbG9yfWAgaW5zdGVhZFxuICAgIGFyY2hpdmU6IHNwYWNlU2VwYXJhdGVkLCAvLyBgPG9iamVjdD5gLiBMaXN0IG9mIFVSSXMgdG8gYXJjaGl2ZXNcbiAgICBheGlzOiBudWxsLCAvLyBgPHRkPmAgYW5kIGA8dGg+YC4gVXNlIGBzY29wZWAgb24gYDx0aD5gXG4gICAgYmFja2dyb3VuZDogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGJhY2tncm91bmQtaW1hZ2VgIGluc3RlYWRcbiAgICBiZ0NvbG9yOiBudWxsLCAvLyBgPGJvZHk+YCBhbmQgdGFibGUgZWxlbWVudHMuIFVzZSBDU1MgYGJhY2tncm91bmQtY29sb3JgIGluc3RlYWRcbiAgICBib3JkZXI6IG51bWJlciwgLy8gYDx0YWJsZT5gLiBVc2UgQ1NTIGBib3JkZXItd2lkdGhgIGluc3RlYWQsXG4gICAgYm9yZGVyQ29sb3I6IG51bGwsIC8vIGA8dGFibGU+YC4gVXNlIENTUyBgYm9yZGVyLWNvbG9yYCBpbnN0ZWFkLFxuICAgIGJvdHRvbU1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIGNlbGxQYWRkaW5nOiBudWxsLCAvLyBgPHRhYmxlPmBcbiAgICBjZWxsU3BhY2luZzogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgY2hhcjogbnVsbCwgLy8gU2V2ZXJhbCB0YWJsZSBlbGVtZW50cy4gV2hlbiBgYWxpZ249Y2hhcmAsIHNldHMgdGhlIGNoYXJhY3RlciB0byBhbGlnbiBvblxuICAgIGNoYXJPZmY6IG51bGwsIC8vIFNldmVyYWwgdGFibGUgZWxlbWVudHMuIFdoZW4gYGNoYXJgLCBvZmZzZXRzIHRoZSBhbGlnbm1lbnRcbiAgICBjbGFzc0lkOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY2xlYXI6IG51bGwsIC8vIGA8YnI+YC4gVXNlIENTUyBgY2xlYXJgIGluc3RlYWRcbiAgICBjb2RlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29kZUJhc2U6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2RlVHlwZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvbG9yOiBudWxsLCAvLyBgPGZvbnQ+YCBhbmQgYDxocj5gLiBVc2UgQ1NTIGluc3RlYWRcbiAgICBjb21wYWN0OiBib29sZWFuLCAvLyBMaXN0cy4gVXNlIENTUyB0byByZWR1Y2Ugc3BhY2UgYmV0d2VlbiBpdGVtcyBpbnN0ZWFkXG4gICAgZGVjbGFyZTogYm9vbGVhbiwgLy8gYDxvYmplY3Q+YFxuICAgIGV2ZW50OiBudWxsLCAvLyBgPHNjcmlwdD5gXG4gICAgZmFjZTogbnVsbCwgLy8gYDxmb250PmAuIFVzZSBDU1MgaW5zdGVhZFxuICAgIGZyYW1lOiBudWxsLCAvLyBgPHRhYmxlPmBcbiAgICBmcmFtZUJvcmRlcjogbnVsbCwgLy8gYDxpZnJhbWU+YC4gVXNlIENTUyBgYm9yZGVyYCBpbnN0ZWFkXG4gICAgaFNwYWNlOiBudW1iZXIsIC8vIGA8aW1nPmAgYW5kIGA8b2JqZWN0PmBcbiAgICBsZWZ0TWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6bGluayB7Y29sb3I6ICp9YCBpbnN0ZWFkXG4gICAgbG9uZ0Rlc2M6IG51bGwsIC8vIGA8ZnJhbWU+YCwgYDxpZnJhbWU+YCwgYW5kIGA8aW1nPmAuIFVzZSBhbiBgPGE+YFxuICAgIGxvd1NyYzogbnVsbCwgLy8gYDxpbWc+YC4gVXNlIGEgYDxwaWN0dXJlPmBcbiAgICBtYXJnaW5IZWlnaHQ6IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBtYXJnaW5XaWR0aDogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIG5vUmVzaXplOiBib29sZWFuLCAvLyBgPGZyYW1lPmBcbiAgICBub0hyZWY6IGJvb2xlYW4sIC8vIGA8YXJlYT5gLiBVc2Ugbm8gaHJlZiBpbnN0ZWFkIG9mIGFuIGV4cGxpY2l0IGBub2hyZWZgXG4gICAgbm9TaGFkZTogYm9vbGVhbiwgLy8gYDxocj5gLiBVc2UgYmFja2dyb3VuZC1jb2xvciBhbmQgaGVpZ2h0IGluc3RlYWQgb2YgYm9yZGVyc1xuICAgIG5vV3JhcDogYm9vbGVhbiwgLy8gYDx0ZD5gIGFuZCBgPHRoPmBcbiAgICBvYmplY3Q6IG51bGwsIC8vIGA8YXBwbGV0PmBcbiAgICBwcm9maWxlOiBudWxsLCAvLyBgPGhlYWQ+YFxuICAgIHByb21wdDogbnVsbCwgLy8gYDxpc2luZGV4PmBcbiAgICByZXY6IG51bGwsIC8vIGA8bGluaz5gXG4gICAgcmlnaHRNYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBydWxlczogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgc2NoZW1lOiBudWxsLCAvLyBgPG1ldGE+YFxuICAgIHNjcm9sbGluZzogYm9vbGVhbmlzaCwgLy8gYDxmcmFtZT5gLiBVc2Ugb3ZlcmZsb3cgaW4gdGhlIGNoaWxkIGNvbnRleHRcbiAgICBzdGFuZGJ5OiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgc3VtbWFyeTogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgdGV4dDogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGNvbG9yYCBpbnN0ZWFkXG4gICAgdG9wTWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgdmFsdWVUeXBlOiBudWxsLCAvLyBgPHBhcmFtPmBcbiAgICB2ZXJzaW9uOiBudWxsLCAvLyBgPGh0bWw+YC4gVXNlIGEgZG9jdHlwZS5cbiAgICB2QWxpZ246IG51bGwsIC8vIFNldmVyYWwuIFVzZSBDU1MgYHZlcnRpY2FsLWFsaWduYCBpbnN0ZWFkXG4gICAgdkxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOnZpc2l0ZWQge2NvbG9yfWAgaW5zdGVhZFxuICAgIHZTcGFjZTogbnVtYmVyLCAvLyBgPGltZz5gIGFuZCBgPG9iamVjdD5gXG5cbiAgICAvLyBOb24tc3RhbmRhcmQgUHJvcGVydGllcy5cbiAgICBhbGxvd1RyYW5zcGFyZW5jeTogbnVsbCxcbiAgICBhdXRvQ29ycmVjdDogbnVsbCxcbiAgICBhdXRvU2F2ZTogbnVsbCxcbiAgICBkaXNhYmxlUGljdHVyZUluUGljdHVyZTogYm9vbGVhbixcbiAgICBkaXNhYmxlUmVtb3RlUGxheWJhY2s6IGJvb2xlYW4sXG4gICAgcHJlZml4OiBudWxsLFxuICAgIHByb3BlcnR5OiBudWxsLFxuICAgIHJlc3VsdHM6IG51bWJlcixcbiAgICBzZWN1cml0eTogbnVsbCxcbiAgICB1bnNlbGVjdGFibGU6IG51bGxcbiAgfVxufSlcbiIsICJpbXBvcnQge1xuICBib29sZWFuLFxuICBudW1iZXIsXG4gIHNwYWNlU2VwYXJhdGVkLFxuICBjb21tYVNlcGFyYXRlZCxcbiAgY29tbWFPclNwYWNlU2VwYXJhdGVkXG59IGZyb20gJy4vdXRpbC90eXBlcy5qcydcbmltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuaW1wb3J0IHtjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvY2FzZS1zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG5leHBvcnQgY29uc3Qgc3ZnID0gY3JlYXRlKHtcbiAgc3BhY2U6ICdzdmcnLFxuICBhdHRyaWJ1dGVzOiB7XG4gICAgYWNjZW50SGVpZ2h0OiAnYWNjZW50LWhlaWdodCcsXG4gICAgYWxpZ25tZW50QmFzZWxpbmU6ICdhbGlnbm1lbnQtYmFzZWxpbmUnLFxuICAgIGFyYWJpY0Zvcm06ICdhcmFiaWMtZm9ybScsXG4gICAgYmFzZWxpbmVTaGlmdDogJ2Jhc2VsaW5lLXNoaWZ0JyxcbiAgICBjYXBIZWlnaHQ6ICdjYXAtaGVpZ2h0JyxcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgY2xpcFBhdGg6ICdjbGlwLXBhdGgnLFxuICAgIGNsaXBSdWxlOiAnY2xpcC1ydWxlJyxcbiAgICBjb2xvckludGVycG9sYXRpb246ICdjb2xvci1pbnRlcnBvbGF0aW9uJyxcbiAgICBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJyxcbiAgICBjb2xvclByb2ZpbGU6ICdjb2xvci1wcm9maWxlJyxcbiAgICBjb2xvclJlbmRlcmluZzogJ2NvbG9yLXJlbmRlcmluZycsXG4gICAgY3Jvc3NPcmlnaW46ICdjcm9zc29yaWdpbicsXG4gICAgZGF0YVR5cGU6ICdkYXRhdHlwZScsXG4gICAgZG9taW5hbnRCYXNlbGluZTogJ2RvbWluYW50LWJhc2VsaW5lJyxcbiAgICBlbmFibGVCYWNrZ3JvdW5kOiAnZW5hYmxlLWJhY2tncm91bmQnLFxuICAgIGZpbGxPcGFjaXR5OiAnZmlsbC1vcGFjaXR5JyxcbiAgICBmaWxsUnVsZTogJ2ZpbGwtcnVsZScsXG4gICAgZmxvb2RDb2xvcjogJ2Zsb29kLWNvbG9yJyxcbiAgICBmbG9vZE9wYWNpdHk6ICdmbG9vZC1vcGFjaXR5JyxcbiAgICBmb250RmFtaWx5OiAnZm9udC1mYW1pbHknLFxuICAgIGZvbnRTaXplOiAnZm9udC1zaXplJyxcbiAgICBmb250U2l6ZUFkanVzdDogJ2ZvbnQtc2l6ZS1hZGp1c3QnLFxuICAgIGZvbnRTdHJldGNoOiAnZm9udC1zdHJldGNoJyxcbiAgICBmb250U3R5bGU6ICdmb250LXN0eWxlJyxcbiAgICBmb250VmFyaWFudDogJ2ZvbnQtdmFyaWFudCcsXG4gICAgZm9udFdlaWdodDogJ2ZvbnQtd2VpZ2h0JyxcbiAgICBnbHlwaE5hbWU6ICdnbHlwaC1uYW1lJyxcbiAgICBnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDogJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnLFxuICAgIGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbDogJ2dseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsJyxcbiAgICBocmVmTGFuZzogJ2hyZWZsYW5nJyxcbiAgICBob3JpekFkdlg6ICdob3Jpei1hZHYteCcsXG4gICAgaG9yaXpPcmlnaW5YOiAnaG9yaXotb3JpZ2luLXgnLFxuICAgIGhvcml6T3JpZ2luWTogJ2hvcml6LW9yaWdpbi15JyxcbiAgICBpbWFnZVJlbmRlcmluZzogJ2ltYWdlLXJlbmRlcmluZycsXG4gICAgbGV0dGVyU3BhY2luZzogJ2xldHRlci1zcGFjaW5nJyxcbiAgICBsaWdodGluZ0NvbG9yOiAnbGlnaHRpbmctY29sb3InLFxuICAgIG1hcmtlckVuZDogJ21hcmtlci1lbmQnLFxuICAgIG1hcmtlck1pZDogJ21hcmtlci1taWQnLFxuICAgIG1hcmtlclN0YXJ0OiAnbWFya2VyLXN0YXJ0JyxcbiAgICBuYXZEb3duOiAnbmF2LWRvd24nLFxuICAgIG5hdkRvd25MZWZ0OiAnbmF2LWRvd24tbGVmdCcsXG4gICAgbmF2RG93blJpZ2h0OiAnbmF2LWRvd24tcmlnaHQnLFxuICAgIG5hdkxlZnQ6ICduYXYtbGVmdCcsXG4gICAgbmF2TmV4dDogJ25hdi1uZXh0JyxcbiAgICBuYXZQcmV2OiAnbmF2LXByZXYnLFxuICAgIG5hdlJpZ2h0OiAnbmF2LXJpZ2h0JyxcbiAgICBuYXZVcDogJ25hdi11cCcsXG4gICAgbmF2VXBMZWZ0OiAnbmF2LXVwLWxlZnQnLFxuICAgIG5hdlVwUmlnaHQ6ICduYXYtdXAtcmlnaHQnLFxuICAgIG9uQWJvcnQ6ICdvbmFib3J0JyxcbiAgICBvbkFjdGl2YXRlOiAnb25hY3RpdmF0ZScsXG4gICAgb25BZnRlclByaW50OiAnb25hZnRlcnByaW50JyxcbiAgICBvbkJlZm9yZVByaW50OiAnb25iZWZvcmVwcmludCcsXG4gICAgb25CZWdpbjogJ29uYmVnaW4nLFxuICAgIG9uQ2FuY2VsOiAnb25jYW5jZWwnLFxuICAgIG9uQ2FuUGxheTogJ29uY2FucGxheScsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogJ29uY2FucGxheXRocm91Z2gnLFxuICAgIG9uQ2hhbmdlOiAnb25jaGFuZ2UnLFxuICAgIG9uQ2xpY2s6ICdvbmNsaWNrJyxcbiAgICBvbkNsb3NlOiAnb25jbG9zZScsXG4gICAgb25Db3B5OiAnb25jb3B5JyxcbiAgICBvbkN1ZUNoYW5nZTogJ29uY3VlY2hhbmdlJyxcbiAgICBvbkN1dDogJ29uY3V0JyxcbiAgICBvbkRibENsaWNrOiAnb25kYmxjbGljaycsXG4gICAgb25EcmFnOiAnb25kcmFnJyxcbiAgICBvbkRyYWdFbmQ6ICdvbmRyYWdlbmQnLFxuICAgIG9uRHJhZ0VudGVyOiAnb25kcmFnZW50ZXInLFxuICAgIG9uRHJhZ0V4aXQ6ICdvbmRyYWdleGl0JyxcbiAgICBvbkRyYWdMZWF2ZTogJ29uZHJhZ2xlYXZlJyxcbiAgICBvbkRyYWdPdmVyOiAnb25kcmFnb3ZlcicsXG4gICAgb25EcmFnU3RhcnQ6ICdvbmRyYWdzdGFydCcsXG4gICAgb25Ecm9wOiAnb25kcm9wJyxcbiAgICBvbkR1cmF0aW9uQ2hhbmdlOiAnb25kdXJhdGlvbmNoYW5nZScsXG4gICAgb25FbXB0aWVkOiAnb25lbXB0aWVkJyxcbiAgICBvbkVuZDogJ29uZW5kJyxcbiAgICBvbkVuZGVkOiAnb25lbmRlZCcsXG4gICAgb25FcnJvcjogJ29uZXJyb3InLFxuICAgIG9uRm9jdXM6ICdvbmZvY3VzJyxcbiAgICBvbkZvY3VzSW46ICdvbmZvY3VzaW4nLFxuICAgIG9uRm9jdXNPdXQ6ICdvbmZvY3Vzb3V0JyxcbiAgICBvbkhhc2hDaGFuZ2U6ICdvbmhhc2hjaGFuZ2UnLFxuICAgIG9uSW5wdXQ6ICdvbmlucHV0JyxcbiAgICBvbkludmFsaWQ6ICdvbmludmFsaWQnLFxuICAgIG9uS2V5RG93bjogJ29ua2V5ZG93bicsXG4gICAgb25LZXlQcmVzczogJ29ua2V5cHJlc3MnLFxuICAgIG9uS2V5VXA6ICdvbmtleXVwJyxcbiAgICBvbkxvYWQ6ICdvbmxvYWQnLFxuICAgIG9uTG9hZGVkRGF0YTogJ29ubG9hZGVkZGF0YScsXG4gICAgb25Mb2FkZWRNZXRhZGF0YTogJ29ubG9hZGVkbWV0YWRhdGEnLFxuICAgIG9uTG9hZFN0YXJ0OiAnb25sb2Fkc3RhcnQnLFxuICAgIG9uTWVzc2FnZTogJ29ubWVzc2FnZScsXG4gICAgb25Nb3VzZURvd246ICdvbm1vdXNlZG93bicsXG4gICAgb25Nb3VzZUVudGVyOiAnb25tb3VzZWVudGVyJyxcbiAgICBvbk1vdXNlTGVhdmU6ICdvbm1vdXNlbGVhdmUnLFxuICAgIG9uTW91c2VNb3ZlOiAnb25tb3VzZW1vdmUnLFxuICAgIG9uTW91c2VPdXQ6ICdvbm1vdXNlb3V0JyxcbiAgICBvbk1vdXNlT3ZlcjogJ29ubW91c2VvdmVyJyxcbiAgICBvbk1vdXNlVXA6ICdvbm1vdXNldXAnLFxuICAgIG9uTW91c2VXaGVlbDogJ29ubW91c2V3aGVlbCcsXG4gICAgb25PZmZsaW5lOiAnb25vZmZsaW5lJyxcbiAgICBvbk9ubGluZTogJ29ub25saW5lJyxcbiAgICBvblBhZ2VIaWRlOiAnb25wYWdlaGlkZScsXG4gICAgb25QYWdlU2hvdzogJ29ucGFnZXNob3cnLFxuICAgIG9uUGFzdGU6ICdvbnBhc3RlJyxcbiAgICBvblBhdXNlOiAnb25wYXVzZScsXG4gICAgb25QbGF5OiAnb25wbGF5JyxcbiAgICBvblBsYXlpbmc6ICdvbnBsYXlpbmcnLFxuICAgIG9uUG9wU3RhdGU6ICdvbnBvcHN0YXRlJyxcbiAgICBvblByb2dyZXNzOiAnb25wcm9ncmVzcycsXG4gICAgb25SYXRlQ2hhbmdlOiAnb25yYXRlY2hhbmdlJyxcbiAgICBvblJlcGVhdDogJ29ucmVwZWF0JyxcbiAgICBvblJlc2V0OiAnb25yZXNldCcsXG4gICAgb25SZXNpemU6ICdvbnJlc2l6ZScsXG4gICAgb25TY3JvbGw6ICdvbnNjcm9sbCcsXG4gICAgb25TZWVrZWQ6ICdvbnNlZWtlZCcsXG4gICAgb25TZWVraW5nOiAnb25zZWVraW5nJyxcbiAgICBvblNlbGVjdDogJ29uc2VsZWN0JyxcbiAgICBvblNob3c6ICdvbnNob3cnLFxuICAgIG9uU3RhbGxlZDogJ29uc3RhbGxlZCcsXG4gICAgb25TdG9yYWdlOiAnb25zdG9yYWdlJyxcbiAgICBvblN1Ym1pdDogJ29uc3VibWl0JyxcbiAgICBvblN1c3BlbmQ6ICdvbnN1c3BlbmQnLFxuICAgIG9uVGltZVVwZGF0ZTogJ29udGltZXVwZGF0ZScsXG4gICAgb25Ub2dnbGU6ICdvbnRvZ2dsZScsXG4gICAgb25VbmxvYWQ6ICdvbnVubG9hZCcsXG4gICAgb25Wb2x1bWVDaGFuZ2U6ICdvbnZvbHVtZWNoYW5nZScsXG4gICAgb25XYWl0aW5nOiAnb253YWl0aW5nJyxcbiAgICBvblpvb206ICdvbnpvb20nLFxuICAgIG92ZXJsaW5lUG9zaXRpb246ICdvdmVybGluZS1wb3NpdGlvbicsXG4gICAgb3ZlcmxpbmVUaGlja25lc3M6ICdvdmVybGluZS10aGlja25lc3MnLFxuICAgIHBhaW50T3JkZXI6ICdwYWludC1vcmRlcicsXG4gICAgcGFub3NlMTogJ3Bhbm9zZS0xJyxcbiAgICBwb2ludGVyRXZlbnRzOiAncG9pbnRlci1ldmVudHMnLFxuICAgIHJlZmVycmVyUG9saWN5OiAncmVmZXJyZXJwb2xpY3knLFxuICAgIHJlbmRlcmluZ0ludGVudDogJ3JlbmRlcmluZy1pbnRlbnQnLFxuICAgIHNoYXBlUmVuZGVyaW5nOiAnc2hhcGUtcmVuZGVyaW5nJyxcbiAgICBzdG9wQ29sb3I6ICdzdG9wLWNvbG9yJyxcbiAgICBzdG9wT3BhY2l0eTogJ3N0b3Atb3BhY2l0eScsXG4gICAgc3RyaWtldGhyb3VnaFBvc2l0aW9uOiAnc3RyaWtldGhyb3VnaC1wb3NpdGlvbicsXG4gICAgc3RyaWtldGhyb3VnaFRoaWNrbmVzczogJ3N0cmlrZXRocm91Z2gtdGhpY2tuZXNzJyxcbiAgICBzdHJva2VEYXNoQXJyYXk6ICdzdHJva2UtZGFzaGFycmF5JyxcbiAgICBzdHJva2VEYXNoT2Zmc2V0OiAnc3Ryb2tlLWRhc2hvZmZzZXQnLFxuICAgIHN0cm9rZUxpbmVDYXA6ICdzdHJva2UtbGluZWNhcCcsXG4gICAgc3Ryb2tlTGluZUpvaW46ICdzdHJva2UtbGluZWpvaW4nLFxuICAgIHN0cm9rZU1pdGVyTGltaXQ6ICdzdHJva2UtbWl0ZXJsaW1pdCcsXG4gICAgc3Ryb2tlT3BhY2l0eTogJ3N0cm9rZS1vcGFjaXR5JyxcbiAgICBzdHJva2VXaWR0aDogJ3N0cm9rZS13aWR0aCcsXG4gICAgdGFiSW5kZXg6ICd0YWJpbmRleCcsXG4gICAgdGV4dEFuY2hvcjogJ3RleHQtYW5jaG9yJyxcbiAgICB0ZXh0RGVjb3JhdGlvbjogJ3RleHQtZGVjb3JhdGlvbicsXG4gICAgdGV4dFJlbmRlcmluZzogJ3RleHQtcmVuZGVyaW5nJyxcbiAgICB0eXBlT2Y6ICd0eXBlb2YnLFxuICAgIHVuZGVybGluZVBvc2l0aW9uOiAndW5kZXJsaW5lLXBvc2l0aW9uJyxcbiAgICB1bmRlcmxpbmVUaGlja25lc3M6ICd1bmRlcmxpbmUtdGhpY2tuZXNzJyxcbiAgICB1bmljb2RlQmlkaTogJ3VuaWNvZGUtYmlkaScsXG4gICAgdW5pY29kZVJhbmdlOiAndW5pY29kZS1yYW5nZScsXG4gICAgdW5pdHNQZXJFbTogJ3VuaXRzLXBlci1lbScsXG4gICAgdkFscGhhYmV0aWM6ICd2LWFscGhhYmV0aWMnLFxuICAgIHZIYW5naW5nOiAndi1oYW5naW5nJyxcbiAgICB2SWRlb2dyYXBoaWM6ICd2LWlkZW9ncmFwaGljJyxcbiAgICB2TWF0aGVtYXRpY2FsOiAndi1tYXRoZW1hdGljYWwnLFxuICAgIHZlY3RvckVmZmVjdDogJ3ZlY3Rvci1lZmZlY3QnLFxuICAgIHZlcnRBZHZZOiAndmVydC1hZHYteScsXG4gICAgdmVydE9yaWdpblg6ICd2ZXJ0LW9yaWdpbi14JyxcbiAgICB2ZXJ0T3JpZ2luWTogJ3ZlcnQtb3JpZ2luLXknLFxuICAgIHdvcmRTcGFjaW5nOiAnd29yZC1zcGFjaW5nJyxcbiAgICB3cml0aW5nTW9kZTogJ3dyaXRpbmctbW9kZScsXG4gICAgeEhlaWdodDogJ3gtaGVpZ2h0JyxcbiAgICAvLyBUaGVzZSB3ZXJlIGNhbWVsY2FzZWQgaW4gVGlueS4gTm93IGxvd2VyY2FzZWQgaW4gU1ZHIDJcbiAgICBwbGF5YmFja09yZGVyOiAncGxheWJhY2tvcmRlcicsXG4gICAgdGltZWxpbmVCZWdpbjogJ3RpbWVsaW5lYmVnaW4nXG4gIH0sXG4gIHRyYW5zZm9ybTogY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybSxcbiAgcHJvcGVydGllczoge1xuICAgIGFib3V0OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgYWNjZW50SGVpZ2h0OiBudW1iZXIsXG4gICAgYWNjdW11bGF0ZTogbnVsbCxcbiAgICBhZGRpdGl2ZTogbnVsbCxcbiAgICBhbGlnbm1lbnRCYXNlbGluZTogbnVsbCxcbiAgICBhbHBoYWJldGljOiBudW1iZXIsXG4gICAgYW1wbGl0dWRlOiBudW1iZXIsXG4gICAgYXJhYmljRm9ybTogbnVsbCxcbiAgICBhc2NlbnQ6IG51bWJlcixcbiAgICBhdHRyaWJ1dGVOYW1lOiBudWxsLFxuICAgIGF0dHJpYnV0ZVR5cGU6IG51bGwsXG4gICAgYXppbXV0aDogbnVtYmVyLFxuICAgIGJhbmR3aWR0aDogbnVsbCxcbiAgICBiYXNlbGluZVNoaWZ0OiBudWxsLFxuICAgIGJhc2VGcmVxdWVuY3k6IG51bGwsXG4gICAgYmFzZVByb2ZpbGU6IG51bGwsXG4gICAgYmJveDogbnVsbCxcbiAgICBiZWdpbjogbnVsbCxcbiAgICBiaWFzOiBudW1iZXIsXG4gICAgYnk6IG51bGwsXG4gICAgY2FsY01vZGU6IG51bGwsXG4gICAgY2FwSGVpZ2h0OiBudW1iZXIsXG4gICAgY2xhc3NOYW1lOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjbGlwOiBudWxsLFxuICAgIGNsaXBQYXRoOiBudWxsLFxuICAgIGNsaXBQYXRoVW5pdHM6IG51bGwsXG4gICAgY2xpcFJ1bGU6IG51bGwsXG4gICAgY29sb3I6IG51bGwsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uOiBudWxsLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6IG51bGwsXG4gICAgY29sb3JQcm9maWxlOiBudWxsLFxuICAgIGNvbG9yUmVuZGVyaW5nOiBudWxsLFxuICAgIGNvbnRlbnQ6IG51bGwsXG4gICAgY29udGVudFNjcmlwdFR5cGU6IG51bGwsXG4gICAgY29udGVudFN0eWxlVHlwZTogbnVsbCxcbiAgICBjcm9zc09yaWdpbjogbnVsbCxcbiAgICBjdXJzb3I6IG51bGwsXG4gICAgY3g6IG51bGwsXG4gICAgY3k6IG51bGwsXG4gICAgZDogbnVsbCxcbiAgICBkYXRhVHlwZTogbnVsbCxcbiAgICBkZWZhdWx0QWN0aW9uOiBudWxsLFxuICAgIGRlc2NlbnQ6IG51bWJlcixcbiAgICBkaWZmdXNlQ29uc3RhbnQ6IG51bWJlcixcbiAgICBkaXJlY3Rpb246IG51bGwsXG4gICAgZGlzcGxheTogbnVsbCxcbiAgICBkdXI6IG51bGwsXG4gICAgZGl2aXNvcjogbnVtYmVyLFxuICAgIGRvbWluYW50QmFzZWxpbmU6IG51bGwsXG4gICAgZG93bmxvYWQ6IGJvb2xlYW4sXG4gICAgZHg6IG51bGwsXG4gICAgZHk6IG51bGwsXG4gICAgZWRnZU1vZGU6IG51bGwsXG4gICAgZWRpdGFibGU6IG51bGwsXG4gICAgZWxldmF0aW9uOiBudW1iZXIsXG4gICAgZW5hYmxlQmFja2dyb3VuZDogbnVsbCxcbiAgICBlbmQ6IG51bGwsXG4gICAgZXZlbnQ6IG51bGwsXG4gICAgZXhwb25lbnQ6IG51bWJlcixcbiAgICBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOiBudWxsLFxuICAgIGZpbGw6IG51bGwsXG4gICAgZmlsbE9wYWNpdHk6IG51bWJlcixcbiAgICBmaWxsUnVsZTogbnVsbCxcbiAgICBmaWx0ZXI6IG51bGwsXG4gICAgZmlsdGVyUmVzOiBudWxsLFxuICAgIGZpbHRlclVuaXRzOiBudWxsLFxuICAgIGZsb29kQ29sb3I6IG51bGwsXG4gICAgZmxvb2RPcGFjaXR5OiBudWxsLFxuICAgIGZvY3VzYWJsZTogbnVsbCxcbiAgICBmb2N1c0hpZ2hsaWdodDogbnVsbCxcbiAgICBmb250RmFtaWx5OiBudWxsLFxuICAgIGZvbnRTaXplOiBudWxsLFxuICAgIGZvbnRTaXplQWRqdXN0OiBudWxsLFxuICAgIGZvbnRTdHJldGNoOiBudWxsLFxuICAgIGZvbnRTdHlsZTogbnVsbCxcbiAgICBmb250VmFyaWFudDogbnVsbCxcbiAgICBmb250V2VpZ2h0OiBudWxsLFxuICAgIGZvcm1hdDogbnVsbCxcbiAgICBmcjogbnVsbCxcbiAgICBmcm9tOiBudWxsLFxuICAgIGZ4OiBudWxsLFxuICAgIGZ5OiBudWxsLFxuICAgIGcxOiBjb21tYVNlcGFyYXRlZCxcbiAgICBnMjogY29tbWFTZXBhcmF0ZWQsXG4gICAgZ2x5cGhOYW1lOiBjb21tYVNlcGFyYXRlZCxcbiAgICBnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDogbnVsbCxcbiAgICBnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6IG51bGwsXG4gICAgZ2x5cGhSZWY6IG51bGwsXG4gICAgZ3JhZGllbnRUcmFuc2Zvcm06IG51bGwsXG4gICAgZ3JhZGllbnRVbml0czogbnVsbCxcbiAgICBoYW5kbGVyOiBudWxsLFxuICAgIGhhbmdpbmc6IG51bWJlcixcbiAgICBoYXRjaENvbnRlbnRVbml0czogbnVsbCxcbiAgICBoYXRjaFVuaXRzOiBudWxsLFxuICAgIGhlaWdodDogbnVsbCxcbiAgICBocmVmOiBudWxsLFxuICAgIGhyZWZMYW5nOiBudWxsLFxuICAgIGhvcml6QWR2WDogbnVtYmVyLFxuICAgIGhvcml6T3JpZ2luWDogbnVtYmVyLFxuICAgIGhvcml6T3JpZ2luWTogbnVtYmVyLFxuICAgIGlkOiBudWxsLFxuICAgIGlkZW9ncmFwaGljOiBudW1iZXIsXG4gICAgaW1hZ2VSZW5kZXJpbmc6IG51bGwsXG4gICAgaW5pdGlhbFZpc2liaWxpdHk6IG51bGwsXG4gICAgaW46IG51bGwsXG4gICAgaW4yOiBudWxsLFxuICAgIGludGVyY2VwdDogbnVtYmVyLFxuICAgIGs6IG51bWJlcixcbiAgICBrMTogbnVtYmVyLFxuICAgIGsyOiBudW1iZXIsXG4gICAgazM6IG51bWJlcixcbiAgICBrNDogbnVtYmVyLFxuICAgIGtlcm5lbE1hdHJpeDogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIGtlcm5lbFVuaXRMZW5ndGg6IG51bGwsXG4gICAga2V5UG9pbnRzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtleVNwbGluZXM6IG51bGwsIC8vIFNFTUlfQ09MT05fU0VQQVJBVEVEXG4gICAga2V5VGltZXM6IG51bGwsIC8vIFNFTUlfQ09MT05fU0VQQVJBVEVEXG4gICAga2VybmluZzogbnVsbCxcbiAgICBsYW5nOiBudWxsLFxuICAgIGxlbmd0aEFkanVzdDogbnVsbCxcbiAgICBsZXR0ZXJTcGFjaW5nOiBudWxsLFxuICAgIGxpZ2h0aW5nQ29sb3I6IG51bGwsXG4gICAgbGltaXRpbmdDb25lQW5nbGU6IG51bWJlcixcbiAgICBsb2NhbDogbnVsbCxcbiAgICBtYXJrZXJFbmQ6IG51bGwsXG4gICAgbWFya2VyTWlkOiBudWxsLFxuICAgIG1hcmtlclN0YXJ0OiBudWxsLFxuICAgIG1hcmtlckhlaWdodDogbnVsbCxcbiAgICBtYXJrZXJVbml0czogbnVsbCxcbiAgICBtYXJrZXJXaWR0aDogbnVsbCxcbiAgICBtYXNrOiBudWxsLFxuICAgIG1hc2tDb250ZW50VW5pdHM6IG51bGwsXG4gICAgbWFza1VuaXRzOiBudWxsLFxuICAgIG1hdGhlbWF0aWNhbDogbnVsbCxcbiAgICBtYXg6IG51bGwsXG4gICAgbWVkaWE6IG51bGwsXG4gICAgbWVkaWFDaGFyYWN0ZXJFbmNvZGluZzogbnVsbCxcbiAgICBtZWRpYUNvbnRlbnRFbmNvZGluZ3M6IG51bGwsXG4gICAgbWVkaWFTaXplOiBudW1iZXIsXG4gICAgbWVkaWFUaW1lOiBudWxsLFxuICAgIG1ldGhvZDogbnVsbCxcbiAgICBtaW46IG51bGwsXG4gICAgbW9kZTogbnVsbCxcbiAgICBuYW1lOiBudWxsLFxuICAgIG5hdkRvd246IG51bGwsXG4gICAgbmF2RG93bkxlZnQ6IG51bGwsXG4gICAgbmF2RG93blJpZ2h0OiBudWxsLFxuICAgIG5hdkxlZnQ6IG51bGwsXG4gICAgbmF2TmV4dDogbnVsbCxcbiAgICBuYXZQcmV2OiBudWxsLFxuICAgIG5hdlJpZ2h0OiBudWxsLFxuICAgIG5hdlVwOiBudWxsLFxuICAgIG5hdlVwTGVmdDogbnVsbCxcbiAgICBuYXZVcFJpZ2h0OiBudWxsLFxuICAgIG51bU9jdGF2ZXM6IG51bGwsXG4gICAgb2JzZXJ2ZXI6IG51bGwsXG4gICAgb2Zmc2V0OiBudWxsLFxuICAgIG9uQWJvcnQ6IG51bGwsXG4gICAgb25BY3RpdmF0ZTogbnVsbCxcbiAgICBvbkFmdGVyUHJpbnQ6IG51bGwsXG4gICAgb25CZWZvcmVQcmludDogbnVsbCxcbiAgICBvbkJlZ2luOiBudWxsLFxuICAgIG9uQ2FuY2VsOiBudWxsLFxuICAgIG9uQ2FuUGxheTogbnVsbCxcbiAgICBvbkNhblBsYXlUaHJvdWdoOiBudWxsLFxuICAgIG9uQ2hhbmdlOiBudWxsLFxuICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgb25DbG9zZTogbnVsbCxcbiAgICBvbkNvcHk6IG51bGwsXG4gICAgb25DdWVDaGFuZ2U6IG51bGwsXG4gICAgb25DdXQ6IG51bGwsXG4gICAgb25EYmxDbGljazogbnVsbCxcbiAgICBvbkRyYWc6IG51bGwsXG4gICAgb25EcmFnRW5kOiBudWxsLFxuICAgIG9uRHJhZ0VudGVyOiBudWxsLFxuICAgIG9uRHJhZ0V4aXQ6IG51bGwsXG4gICAgb25EcmFnTGVhdmU6IG51bGwsXG4gICAgb25EcmFnT3ZlcjogbnVsbCxcbiAgICBvbkRyYWdTdGFydDogbnVsbCxcbiAgICBvbkRyb3A6IG51bGwsXG4gICAgb25EdXJhdGlvbkNoYW5nZTogbnVsbCxcbiAgICBvbkVtcHRpZWQ6IG51bGwsXG4gICAgb25FbmQ6IG51bGwsXG4gICAgb25FbmRlZDogbnVsbCxcbiAgICBvbkVycm9yOiBudWxsLFxuICAgIG9uRm9jdXM6IG51bGwsXG4gICAgb25Gb2N1c0luOiBudWxsLFxuICAgIG9uRm9jdXNPdXQ6IG51bGwsXG4gICAgb25IYXNoQ2hhbmdlOiBudWxsLFxuICAgIG9uSW5wdXQ6IG51bGwsXG4gICAgb25JbnZhbGlkOiBudWxsLFxuICAgIG9uS2V5RG93bjogbnVsbCxcbiAgICBvbktleVByZXNzOiBudWxsLFxuICAgIG9uS2V5VXA6IG51bGwsXG4gICAgb25Mb2FkOiBudWxsLFxuICAgIG9uTG9hZGVkRGF0YTogbnVsbCxcbiAgICBvbkxvYWRlZE1ldGFkYXRhOiBudWxsLFxuICAgIG9uTG9hZFN0YXJ0OiBudWxsLFxuICAgIG9uTWVzc2FnZTogbnVsbCxcbiAgICBvbk1vdXNlRG93bjogbnVsbCxcbiAgICBvbk1vdXNlRW50ZXI6IG51bGwsXG4gICAgb25Nb3VzZUxlYXZlOiBudWxsLFxuICAgIG9uTW91c2VNb3ZlOiBudWxsLFxuICAgIG9uTW91c2VPdXQ6IG51bGwsXG4gICAgb25Nb3VzZU92ZXI6IG51bGwsXG4gICAgb25Nb3VzZVVwOiBudWxsLFxuICAgIG9uTW91c2VXaGVlbDogbnVsbCxcbiAgICBvbk9mZmxpbmU6IG51bGwsXG4gICAgb25PbmxpbmU6IG51bGwsXG4gICAgb25QYWdlSGlkZTogbnVsbCxcbiAgICBvblBhZ2VTaG93OiBudWxsLFxuICAgIG9uUGFzdGU6IG51bGwsXG4gICAgb25QYXVzZTogbnVsbCxcbiAgICBvblBsYXk6IG51bGwsXG4gICAgb25QbGF5aW5nOiBudWxsLFxuICAgIG9uUG9wU3RhdGU6IG51bGwsXG4gICAgb25Qcm9ncmVzczogbnVsbCxcbiAgICBvblJhdGVDaGFuZ2U6IG51bGwsXG4gICAgb25SZXBlYXQ6IG51bGwsXG4gICAgb25SZXNldDogbnVsbCxcbiAgICBvblJlc2l6ZTogbnVsbCxcbiAgICBvblNjcm9sbDogbnVsbCxcbiAgICBvblNlZWtlZDogbnVsbCxcbiAgICBvblNlZWtpbmc6IG51bGwsXG4gICAgb25TZWxlY3Q6IG51bGwsXG4gICAgb25TaG93OiBudWxsLFxuICAgIG9uU3RhbGxlZDogbnVsbCxcbiAgICBvblN0b3JhZ2U6IG51bGwsXG4gICAgb25TdWJtaXQ6IG51bGwsXG4gICAgb25TdXNwZW5kOiBudWxsLFxuICAgIG9uVGltZVVwZGF0ZTogbnVsbCxcbiAgICBvblRvZ2dsZTogbnVsbCxcbiAgICBvblVubG9hZDogbnVsbCxcbiAgICBvblZvbHVtZUNoYW5nZTogbnVsbCxcbiAgICBvbldhaXRpbmc6IG51bGwsXG4gICAgb25ab29tOiBudWxsLFxuICAgIG9wYWNpdHk6IG51bGwsXG4gICAgb3BlcmF0b3I6IG51bGwsXG4gICAgb3JkZXI6IG51bGwsXG4gICAgb3JpZW50OiBudWxsLFxuICAgIG9yaWVudGF0aW9uOiBudWxsLFxuICAgIG9yaWdpbjogbnVsbCxcbiAgICBvdmVyZmxvdzogbnVsbCxcbiAgICBvdmVybGF5OiBudWxsLFxuICAgIG92ZXJsaW5lUG9zaXRpb246IG51bWJlcixcbiAgICBvdmVybGluZVRoaWNrbmVzczogbnVtYmVyLFxuICAgIHBhaW50T3JkZXI6IG51bGwsXG4gICAgcGFub3NlMTogbnVsbCxcbiAgICBwYXRoOiBudWxsLFxuICAgIHBhdGhMZW5ndGg6IG51bWJlcixcbiAgICBwYXR0ZXJuQ29udGVudFVuaXRzOiBudWxsLFxuICAgIHBhdHRlcm5UcmFuc2Zvcm06IG51bGwsXG4gICAgcGF0dGVyblVuaXRzOiBudWxsLFxuICAgIHBoYXNlOiBudWxsLFxuICAgIHBpbmc6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHBpdGNoOiBudWxsLFxuICAgIHBsYXliYWNrT3JkZXI6IG51bGwsXG4gICAgcG9pbnRlckV2ZW50czogbnVsbCxcbiAgICBwb2ludHM6IG51bGwsXG4gICAgcG9pbnRzQXRYOiBudW1iZXIsXG4gICAgcG9pbnRzQXRZOiBudW1iZXIsXG4gICAgcG9pbnRzQXRaOiBudW1iZXIsXG4gICAgcHJlc2VydmVBbHBoYTogbnVsbCxcbiAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBudWxsLFxuICAgIHByaW1pdGl2ZVVuaXRzOiBudWxsLFxuICAgIHByb3BhZ2F0ZTogbnVsbCxcbiAgICBwcm9wZXJ0eTogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHI6IG51bGwsXG4gICAgcmFkaXVzOiBudWxsLFxuICAgIHJlZmVycmVyUG9saWN5OiBudWxsLFxuICAgIHJlZlg6IG51bGwsXG4gICAgcmVmWTogbnVsbCxcbiAgICByZWw6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXY6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZW5kZXJpbmdJbnRlbnQ6IG51bGwsXG4gICAgcmVwZWF0Q291bnQ6IG51bGwsXG4gICAgcmVwZWF0RHVyOiBudWxsLFxuICAgIHJlcXVpcmVkRXh0ZW5zaW9uczogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkRmVhdHVyZXM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZEZvbnRzOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWRGb3JtYXRzOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVzb3VyY2U6IG51bGwsXG4gICAgcmVzdGFydDogbnVsbCxcbiAgICByZXN1bHQ6IG51bGwsXG4gICAgcm90YXRlOiBudWxsLFxuICAgIHJ4OiBudWxsLFxuICAgIHJ5OiBudWxsLFxuICAgIHNjYWxlOiBudWxsLFxuICAgIHNlZWQ6IG51bGwsXG4gICAgc2hhcGVSZW5kZXJpbmc6IG51bGwsXG4gICAgc2lkZTogbnVsbCxcbiAgICBzbG9wZTogbnVsbCxcbiAgICBzbmFwc2hvdFRpbWU6IG51bGwsXG4gICAgc3BlY3VsYXJDb25zdGFudDogbnVtYmVyLFxuICAgIHNwZWN1bGFyRXhwb25lbnQ6IG51bWJlcixcbiAgICBzcHJlYWRNZXRob2Q6IG51bGwsXG4gICAgc3BhY2luZzogbnVsbCxcbiAgICBzdGFydE9mZnNldDogbnVsbCxcbiAgICBzdGREZXZpYXRpb246IG51bGwsXG4gICAgc3RlbWg6IG51bGwsXG4gICAgc3RlbXY6IG51bGwsXG4gICAgc3RpdGNoVGlsZXM6IG51bGwsXG4gICAgc3RvcENvbG9yOiBudWxsLFxuICAgIHN0b3BPcGFjaXR5OiBudWxsLFxuICAgIHN0cmlrZXRocm91Z2hQb3NpdGlvbjogbnVtYmVyLFxuICAgIHN0cmlrZXRocm91Z2hUaGlja25lc3M6IG51bWJlcixcbiAgICBzdHJpbmc6IG51bGwsXG4gICAgc3Ryb2tlOiBudWxsLFxuICAgIHN0cm9rZURhc2hBcnJheTogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHN0cm9rZURhc2hPZmZzZXQ6IG51bGwsXG4gICAgc3Ryb2tlTGluZUNhcDogbnVsbCxcbiAgICBzdHJva2VMaW5lSm9pbjogbnVsbCxcbiAgICBzdHJva2VNaXRlckxpbWl0OiBudW1iZXIsXG4gICAgc3Ryb2tlT3BhY2l0eTogbnVtYmVyLFxuICAgIHN0cm9rZVdpZHRoOiBudWxsLFxuICAgIHN0eWxlOiBudWxsLFxuICAgIHN1cmZhY2VTY2FsZTogbnVtYmVyLFxuICAgIHN5bmNCZWhhdmlvcjogbnVsbCxcbiAgICBzeW5jQmVoYXZpb3JEZWZhdWx0OiBudWxsLFxuICAgIHN5bmNNYXN0ZXI6IG51bGwsXG4gICAgc3luY1RvbGVyYW5jZTogbnVsbCxcbiAgICBzeW5jVG9sZXJhbmNlRGVmYXVsdDogbnVsbCxcbiAgICBzeXN0ZW1MYW5ndWFnZTogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHRhYkluZGV4OiBudW1iZXIsXG4gICAgdGFibGVWYWx1ZXM6IG51bGwsXG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHRhcmdldFg6IG51bWJlcixcbiAgICB0YXJnZXRZOiBudW1iZXIsXG4gICAgdGV4dEFuY2hvcjogbnVsbCxcbiAgICB0ZXh0RGVjb3JhdGlvbjogbnVsbCxcbiAgICB0ZXh0UmVuZGVyaW5nOiBudWxsLFxuICAgIHRleHRMZW5ndGg6IG51bGwsXG4gICAgdGltZWxpbmVCZWdpbjogbnVsbCxcbiAgICB0aXRsZTogbnVsbCxcbiAgICB0cmFuc2Zvcm1CZWhhdmlvcjogbnVsbCxcbiAgICB0eXBlOiBudWxsLFxuICAgIHR5cGVPZjogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHRvOiBudWxsLFxuICAgIHRyYW5zZm9ybTogbnVsbCxcbiAgICB1MTogbnVsbCxcbiAgICB1MjogbnVsbCxcbiAgICB1bmRlcmxpbmVQb3NpdGlvbjogbnVtYmVyLFxuICAgIHVuZGVybGluZVRoaWNrbmVzczogbnVtYmVyLFxuICAgIHVuaWNvZGU6IG51bGwsXG4gICAgdW5pY29kZUJpZGk6IG51bGwsXG4gICAgdW5pY29kZVJhbmdlOiBudWxsLFxuICAgIHVuaXRzUGVyRW06IG51bWJlcixcbiAgICB2YWx1ZXM6IG51bGwsXG4gICAgdkFscGhhYmV0aWM6IG51bWJlcixcbiAgICB2TWF0aGVtYXRpY2FsOiBudW1iZXIsXG4gICAgdmVjdG9yRWZmZWN0OiBudWxsLFxuICAgIHZIYW5naW5nOiBudW1iZXIsXG4gICAgdklkZW9ncmFwaGljOiBudW1iZXIsXG4gICAgdmVyc2lvbjogbnVsbCxcbiAgICB2ZXJ0QWR2WTogbnVtYmVyLFxuICAgIHZlcnRPcmlnaW5YOiBudW1iZXIsXG4gICAgdmVydE9yaWdpblk6IG51bWJlcixcbiAgICB2aWV3Qm94OiBudWxsLFxuICAgIHZpZXdUYXJnZXQ6IG51bGwsXG4gICAgdmlzaWJpbGl0eTogbnVsbCxcbiAgICB3aWR0aDogbnVsbCxcbiAgICB3aWR0aHM6IG51bGwsXG4gICAgd29yZFNwYWNpbmc6IG51bGwsXG4gICAgd3JpdGluZ01vZGU6IG51bGwsXG4gICAgeDogbnVsbCxcbiAgICB4MTogbnVsbCxcbiAgICB4MjogbnVsbCxcbiAgICB4Q2hhbm5lbFNlbGVjdG9yOiBudWxsLFxuICAgIHhIZWlnaHQ6IG51bWJlcixcbiAgICB5OiBudWxsLFxuICAgIHkxOiBudWxsLFxuICAgIHkyOiBudWxsLFxuICAgIHlDaGFubmVsU2VsZWN0b3I6IG51bGwsXG4gICAgejogbnVsbCxcbiAgICB6b29tQW5kUGFuOiBudWxsXG4gIH1cbn0pXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3V0aWwvc2NoZW1hLmpzJykuU2NoZW1hfSBTY2hlbWFcbiAqL1xuXG5pbXBvcnQge25vcm1hbGl6ZX0gZnJvbSAnLi9ub3JtYWxpemUuanMnXG5pbXBvcnQge0RlZmluZWRJbmZvfSBmcm9tICcuL3V0aWwvZGVmaW5lZC1pbmZvLmpzJ1xuaW1wb3J0IHtJbmZvfSBmcm9tICcuL3V0aWwvaW5mby5qcydcblxuY29uc3QgdmFsaWQgPSAvXmRhdGFbLVxcdy46XSskL2lcbmNvbnN0IGRhc2ggPSAvLVthLXpdL2dcbmNvbnN0IGNhcCA9IC9bQS1aXS9nXG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7SW5mb31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmQoc2NoZW1hLCB2YWx1ZSkge1xuICBjb25zdCBub3JtYWwgPSBub3JtYWxpemUodmFsdWUpXG4gIGxldCBwcm9wID0gdmFsdWVcbiAgbGV0IFR5cGUgPSBJbmZvXG5cbiAgaWYgKG5vcm1hbCBpbiBzY2hlbWEubm9ybWFsKSB7XG4gICAgcmV0dXJuIHNjaGVtYS5wcm9wZXJ0eVtzY2hlbWEubm9ybWFsW25vcm1hbF1dXG4gIH1cblxuICBpZiAobm9ybWFsLmxlbmd0aCA+IDQgJiYgbm9ybWFsLnNsaWNlKDAsIDQpID09PSAnZGF0YScgJiYgdmFsaWQudGVzdCh2YWx1ZSkpIHtcbiAgICAvLyBBdHRyaWJ1dGUgb3IgcHJvcGVydHkuXG4gICAgaWYgKHZhbHVlLmNoYXJBdCg0KSA9PT0gJy0nKSB7XG4gICAgICAvLyBUdXJuIGl0IGludG8gYSBwcm9wZXJ0eS5cbiAgICAgIGNvbnN0IHJlc3QgPSB2YWx1ZS5zbGljZSg1KS5yZXBsYWNlKGRhc2gsIGNhbWVsY2FzZSlcbiAgICAgIHByb3AgPSAnZGF0YScgKyByZXN0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcmVzdC5zbGljZSgxKVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUdXJuIGl0IGludG8gYW4gYXR0cmlidXRlLlxuICAgICAgY29uc3QgcmVzdCA9IHZhbHVlLnNsaWNlKDQpXG5cbiAgICAgIGlmICghZGFzaC50ZXN0KHJlc3QpKSB7XG4gICAgICAgIGxldCBkYXNoZXMgPSByZXN0LnJlcGxhY2UoY2FwLCBrZWJhYilcblxuICAgICAgICBpZiAoZGFzaGVzLmNoYXJBdCgwKSAhPT0gJy0nKSB7XG4gICAgICAgICAgZGFzaGVzID0gJy0nICsgZGFzaGVzXG4gICAgICAgIH1cblxuICAgICAgICB2YWx1ZSA9ICdkYXRhJyArIGRhc2hlc1xuICAgICAgfVxuICAgIH1cblxuICAgIFR5cGUgPSBEZWZpbmVkSW5mb1xuICB9XG5cbiAgcmV0dXJuIG5ldyBUeXBlKHByb3AsIHZhbHVlKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24ga2ViYWIoJDApIHtcbiAgcmV0dXJuICctJyArICQwLnRvTG93ZXJDYXNlKClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGNhbWVsY2FzZSgkMCkge1xuICByZXR1cm4gJDAuY2hhckF0KDEpLnRvVXBwZXJDYXNlKClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL3V0aWwvaW5mby5qcycpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL3V0aWwvc2NoZW1hLmpzJykuU2NoZW1hfSBTY2hlbWFcbiAqL1xuXG5pbXBvcnQge21lcmdlfSBmcm9tICcuL2xpYi91dGlsL21lcmdlLmpzJ1xuaW1wb3J0IHt4bGlua30gZnJvbSAnLi9saWIveGxpbmsuanMnXG5pbXBvcnQge3htbH0gZnJvbSAnLi9saWIveG1sLmpzJ1xuaW1wb3J0IHt4bWxuc30gZnJvbSAnLi9saWIveG1sbnMuanMnXG5pbXBvcnQge2FyaWF9IGZyb20gJy4vbGliL2FyaWEuanMnXG5pbXBvcnQge2h0bWwgYXMgaHRtbEJhc2V9IGZyb20gJy4vbGliL2h0bWwuanMnXG5pbXBvcnQge3N2ZyBhcyBzdmdCYXNlfSBmcm9tICcuL2xpYi9zdmcuanMnXG5cbmV4cG9ydCB7ZmluZH0gZnJvbSAnLi9saWIvZmluZC5qcydcbmV4cG9ydCB7aGFzdFRvUmVhY3R9IGZyb20gJy4vbGliL2hhc3QtdG8tcmVhY3QuanMnXG5leHBvcnQge25vcm1hbGl6ZX0gZnJvbSAnLi9saWIvbm9ybWFsaXplLmpzJ1xuZXhwb3J0IGNvbnN0IGh0bWwgPSBtZXJnZShbeG1sLCB4bGluaywgeG1sbnMsIGFyaWEsIGh0bWxCYXNlXSwgJ2h0bWwnKVxuZXhwb3J0IGNvbnN0IHN2ZyA9IG1lcmdlKFt4bWwsIHhsaW5rLCB4bWxucywgYXJpYSwgc3ZnQmFzZV0sICdzdmcnKVxuIiwgIi8qKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uIGZvciBgc3RyaW5naWZ5YC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3BhZExlZnQ9dHJ1ZV1cbiAqICAgV2hldGhlciB0byBwYWQgYSBzcGFjZSBiZWZvcmUgYSB0b2tlbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3BhZFJpZ2h0PWZhbHNlXVxuICogICBXaGV0aGVyIHRvIHBhZCBhIHNwYWNlIGFmdGVyIGEgdG9rZW4uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T3B0aW9uc30gU3RyaW5naWZ5T3B0aW9uc1xuICogICBQbGVhc2UgdXNlIGBTdHJpbmdpZnlPcHRpb25zYCBpbnN0ZWFkLlxuICovXG5cbi8qKlxuICogUGFyc2UgY29tbWEtc2VwYXJhdGVkIHRva2VucyB0byBhbiBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgQ29tbWEtc2VwYXJhdGVkIHRva2Vucy5cbiAqIEByZXR1cm5zIHtBcnJheTxzdHJpbmc+fVxuICogICBMaXN0IG9mIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKHZhbHVlKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgdG9rZW5zID0gW11cbiAgY29uc3QgaW5wdXQgPSBTdHJpbmcodmFsdWUgfHwgJycpXG4gIGxldCBpbmRleCA9IGlucHV0LmluZGV4T2YoJywnKVxuICBsZXQgc3RhcnQgPSAwXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IGVuZCA9IGZhbHNlXG5cbiAgd2hpbGUgKCFlbmQpIHtcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICBpbmRleCA9IGlucHV0Lmxlbmd0aFxuICAgICAgZW5kID0gdHJ1ZVxuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gaW5wdXQuc2xpY2Uoc3RhcnQsIGluZGV4KS50cmltKClcblxuICAgIGlmICh0b2tlbiB8fCAhZW5kKSB7XG4gICAgICB0b2tlbnMucHVzaCh0b2tlbilcbiAgICB9XG5cbiAgICBzdGFydCA9IGluZGV4ICsgMVxuICAgIGluZGV4ID0gaW5wdXQuaW5kZXhPZignLCcsIHN0YXJ0KVxuICB9XG5cbiAgcmV0dXJuIHRva2Vuc1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBzdHJpbmdzIG9yIG51bWJlcnMgdG8gY29tbWEtc2VwYXJhdGVkIHRva2Vucy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZ3xudW1iZXI+fSB2YWx1ZXNcbiAqICAgTGlzdCBvZiB0b2tlbnMuXG4gKiBAcGFyYW0ge09wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIGZvciBgc3RyaW5naWZ5YCAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgQ29tbWEtc2VwYXJhdGVkIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZXMsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgLy8gRW5zdXJlIHRoZSBsYXN0IGVtcHR5IGVudHJ5IGlzIHNlZW4uXG4gIGNvbnN0IGlucHV0ID0gdmFsdWVzW3ZhbHVlcy5sZW5ndGggLSAxXSA9PT0gJycgPyBbLi4udmFsdWVzLCAnJ10gOiB2YWx1ZXNcblxuICByZXR1cm4gaW5wdXRcbiAgICAuam9pbihcbiAgICAgIChzZXR0aW5ncy5wYWRSaWdodCA/ICcgJyA6ICcnKSArXG4gICAgICAgICcsJyArXG4gICAgICAgIChzZXR0aW5ncy5wYWRMZWZ0ID09PSBmYWxzZSA/ICcnIDogJyAnKVxuICAgIClcbiAgICAudHJpbSgpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7c3RyaW5nfSBTaW1wbGVTZWxlY3RvclxuICogICBTZWxlY3RvciB0eXBlLlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IERlZmF1bHRUYWdOYW1lXG4gKiAgIERlZmF1bHQgdGFnIG5hbWUuXG4gKiBAdHlwZWRlZiB7KFxuICogICBTaW1wbGVTZWxlY3RvciBleHRlbmRzICcnXG4gKiAgICAgPyBEZWZhdWx0VGFnTmFtZVxuICogICAgIDogU2ltcGxlU2VsZWN0b3IgZXh0ZW5kcyBgJHtpbmZlciBUYWdOYW1lfS4ke2luZmVyIFJlc3R9YFxuICogICAgID8gRXh0cmFjdFRhZ05hbWU8VGFnTmFtZSwgRGVmYXVsdFRhZ05hbWU+XG4gKiAgICAgOiBTaW1wbGVTZWxlY3RvciBleHRlbmRzIGAke2luZmVyIFRhZ05hbWV9IyR7aW5mZXIgUmVzdH1gXG4gKiAgICAgPyBFeHRyYWN0VGFnTmFtZTxUYWdOYW1lLCBEZWZhdWx0VGFnTmFtZT5cbiAqICAgICA6IFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgc3RyaW5nXG4gKiAgICAgPyBTaW1wbGVTZWxlY3RvclxuICogICAgIDogRGVmYXVsdFRhZ05hbWVcbiAqICl9IEV4dHJhY3RUYWdOYW1lXG4gKiAgIEV4dHJhY3QgdGFnIG5hbWUgZnJvbSBhIHNpbXBsZSBzZWxlY3Rvci5cbiAqL1xuXG5jb25zdCBzZWFyY2ggPSAvWyMuXS9nXG5cbi8qKlxuICogQ3JlYXRlIGEgaGFzdCBlbGVtZW50IGZyb20gYSBzaW1wbGUgQ1NTIHNlbGVjdG9yLlxuICpcbiAqIEB0ZW1wbGF0ZSB7c3RyaW5nfSBTZWxlY3RvclxuICogICBUeXBlIG9mIHNlbGVjdG9yLlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IFtEZWZhdWx0VGFnTmFtZT0nZGl2J11cbiAqICAgVHlwZSBvZiBkZWZhdWx0IHRhZyBuYW1lIChkZWZhdWx0OiBgJ2RpdidgKS5cbiAqIEBwYXJhbSB7U2VsZWN0b3IgfCBudWxsIHwgdW5kZWZpbmVkfSBbc2VsZWN0b3JdXG4gKiAgIFNpbXBsZSBDU1Mgc2VsZWN0b3IgKG9wdGlvbmFsKS5cbiAqXG4gKiAgIENhbiBjb250YWluIGEgdGFnIG5hbWUgKGBmb29gKSwgY2xhc3NlcyAoYC5iYXJgKSwgYW5kIGFuIElEIChgI2JhemApLlxuICogICBNdWx0aXBsZSBjbGFzc2VzIGFyZSBhbGxvd2VkLlxuICogICBVc2VzIHRoZSBsYXN0IElEIGlmIG11bHRpcGxlIElEcyBhcmUgZm91bmQuXG4gKiBAcGFyYW0ge0RlZmF1bHRUYWdOYW1lIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2RlZmF1bHRUYWdOYW1lPSdkaXYnXVxuICogICBUYWcgbmFtZSB0byB1c2UgaWYgYHNlbGVjdG9yYCBkb2VzIG5vdCBzcGVjaWZ5IG9uZSAoZGVmYXVsdDogYCdkaXYnYCkuXG4gKiBAcmV0dXJucyB7RWxlbWVudCAmIHt0YWdOYW1lOiBFeHRyYWN0VGFnTmFtZTxTZWxlY3RvciwgRGVmYXVsdFRhZ05hbWU+fX1cbiAqICAgQnVpbHQgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2VsZWN0b3Ioc2VsZWN0b3IsIGRlZmF1bHRUYWdOYW1lKSB7XG4gIGNvbnN0IHZhbHVlID0gc2VsZWN0b3IgfHwgJydcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICBjb25zdCBwcm9wcyA9IHt9XG4gIGxldCBzdGFydCA9IDBcbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGxldCBwcmV2aW91c1xuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHRhZ05hbWVcblxuICB3aGlsZSAoc3RhcnQgPCB2YWx1ZS5sZW5ndGgpIHtcbiAgICBzZWFyY2gubGFzdEluZGV4ID0gc3RhcnRcbiAgICBjb25zdCBtYXRjaCA9IHNlYXJjaC5leGVjKHZhbHVlKVxuICAgIGNvbnN0IHN1YnZhbHVlID0gdmFsdWUuc2xpY2Uoc3RhcnQsIG1hdGNoID8gbWF0Y2guaW5kZXggOiB2YWx1ZS5sZW5ndGgpXG5cbiAgICBpZiAoc3VidmFsdWUpIHtcbiAgICAgIGlmICghcHJldmlvdXMpIHtcbiAgICAgICAgdGFnTmFtZSA9IHN1YnZhbHVlXG4gICAgICB9IGVsc2UgaWYgKHByZXZpb3VzID09PSAnIycpIHtcbiAgICAgICAgcHJvcHMuaWQgPSBzdWJ2YWx1ZVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHByb3BzLmNsYXNzTmFtZSkpIHtcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lLnB1c2goc3VidmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wcy5jbGFzc05hbWUgPSBbc3VidmFsdWVdXG4gICAgICB9XG5cbiAgICAgIHN0YXJ0ICs9IHN1YnZhbHVlLmxlbmd0aFxuICAgIH1cblxuICAgIGlmIChtYXRjaCkge1xuICAgICAgcHJldmlvdXMgPSBtYXRjaFswXVxuICAgICAgc3RhcnQrK1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRhZyBuYW1lIGlzIHBhcnNlZC5cbiAgICB0YWdOYW1lOiB0YWdOYW1lIHx8IGRlZmF1bHRUYWdOYW1lIHx8ICdkaXYnLFxuICAgIHByb3BlcnRpZXM6IHByb3BzLFxuICAgIGNoaWxkcmVuOiBbXVxuICB9XG59XG4iLCAiLyoqXG4gKiBQYXJzZSBzcGFjZS1zZXBhcmF0ZWQgdG9rZW5zIHRvIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFNwYWNlLXNlcGFyYXRlZCB0b2tlbnMuXG4gKiBAcmV0dXJucyB7QXJyYXk8c3RyaW5nPn1cbiAqICAgTGlzdCBvZiB0b2tlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZSh2YWx1ZSkge1xuICBjb25zdCBpbnB1dCA9IFN0cmluZyh2YWx1ZSB8fCAnJykudHJpbSgpXG4gIHJldHVybiBpbnB1dCA/IGlucHV0LnNwbGl0KC9bIFxcdFxcblxcclxcZl0rL2cpIDogW11cbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYW4gYXJyYXkgb2Ygc3RyaW5ncyBhcyBzcGFjZSBzZXBhcmF0ZWQtdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nfG51bWJlcj59IHZhbHVlc1xuICogICBMaXN0IG9mIHRva2Vucy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNwYWNlLXNlcGFyYXRlZCB0b2tlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkodmFsdWVzKSB7XG4gIHJldHVybiB2YWx1ZXMuam9pbignICcpLnRyaW0oKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290fSBSb290XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpLlNjaGVtYX0gU2NoZW1hXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7RWxlbWVudCB8IFJvb3R9IFJlc3VsdFxuICogICBSZXN1bHQgZnJvbSBhIGBoYCAob3IgYHNgKSBjYWxsLlxuICpcbiAqIEB0eXBlZGVmIHtudW1iZXIgfCBzdHJpbmd9IFN0eWxlVmFsdWVcbiAqICAgVmFsdWUgZm9yIGEgQ1NTIHN0eWxlIGZpZWxkLlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIFN0eWxlVmFsdWU+fSBTdHlsZVxuICogICBTdXBwb3J0ZWQgdmFsdWUgb2YgYSBgc3R5bGVgIHByb3AuXG4gKiBAdHlwZWRlZiB7Ym9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFByaW1pdGl2ZVZhbHVlXG4gKiAgIFByaW1pdGl2ZSBwcm9wZXJ0eSB2YWx1ZS5cbiAqIEB0eXBlZGVmIHtBcnJheTxudW1iZXIgfCBzdHJpbmc+fSBBcnJheVZhbHVlXG4gKiAgIExpc3Qgb2YgcHJvcGVydHkgdmFsdWVzIGZvciBzcGFjZS0gb3IgY29tbWEgc2VwYXJhdGVkIHZhbHVlcyAoc3VjaCBhcyBgY2xhc3NOYW1lYCkuXG4gKiBAdHlwZWRlZiB7QXJyYXlWYWx1ZSB8IFByaW1pdGl2ZVZhbHVlfSBQcm9wZXJ0eVZhbHVlXG4gKiAgIFByaW1pdGl2ZSB2YWx1ZSBvciBsaXN0IHZhbHVlLlxuICogQHR5cGVkZWYge3tbcHJvcGVydHk6IHN0cmluZ106IFByb3BlcnR5VmFsdWUgfCBTdHlsZX19IFByb3BlcnRpZXNcbiAqICAgQWNjZXB0YWJsZSB2YWx1ZSBmb3IgZWxlbWVudCBwcm9wZXJ0aWVzLlxuICpcbiAqIEB0eXBlZGVmIHtudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBQcmltaXRpdmVDaGlsZFxuICogICBQcmltaXRpdmUgY2hpbGRyZW4sIGVpdGhlciBpZ25vcmVkIChudWxsaXNoKSwgb3IgdHVybmVkIGludG8gdGV4dCBub2Rlcy5cbiAqIEB0eXBlZGVmIHtBcnJheTxBcnJheUNoaWxkTmVzdGVkIHwgTm9kZXMgfCBQcmltaXRpdmVDaGlsZD59IEFycmF5Q2hpbGRcbiAqICAgTGlzdCBvZiBjaGlsZHJlbi5cbiAqIEB0eXBlZGVmIHtBcnJheTxOb2RlcyB8IFByaW1pdGl2ZUNoaWxkPn0gQXJyYXlDaGlsZE5lc3RlZFxuICogICBMaXN0IG9mIGNoaWxkcmVuIChkZWVwKS5cbiAqIEB0eXBlZGVmIHtBcnJheUNoaWxkIHwgTm9kZXMgfCBQcmltaXRpdmVDaGlsZH0gQ2hpbGRcbiAqICAgQWNjZXB0YWJsZSBjaGlsZCB2YWx1ZS5cbiAqL1xuXG5pbXBvcnQge3BhcnNlIGFzIGNvbW1hc30gZnJvbSAnY29tbWEtc2VwYXJhdGVkLXRva2VucydcbmltcG9ydCB7cGFyc2VTZWxlY3Rvcn0gZnJvbSAnaGFzdC11dGlsLXBhcnNlLXNlbGVjdG9yJ1xuaW1wb3J0IHtmaW5kLCBub3JtYWxpemV9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtwYXJzZSBhcyBzcGFjZXN9IGZyb20gJ3NwYWNlLXNlcGFyYXRlZC10b2tlbnMnXG5cbmNvbnN0IGJ1dHRvblR5cGVzID0gbmV3IFNldChbJ2J1dHRvbicsICdtZW51JywgJ3Jlc2V0JywgJ3N1Ym1pdCddKVxuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEBwYXJhbSB7U2NoZW1hfSBzY2hlbWFcbiAqICAgU2NoZW1hIHRvIHVzZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkZWZhdWx0VGFnTmFtZVxuICogICBEZWZhdWx0IHRhZyBuYW1lLlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkfSBbY2FzZVNlbnNpdGl2ZV1cbiAqICAgQ2FzZS1zZW5zaXRpdmUgdGFnIG5hbWVzIChkZWZhdWx0OiBgdW5kZWZpbmVkYCkuXG4gKiBAcmV0dXJuc1xuICogICBgaGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIKHNjaGVtYSwgZGVmYXVsdFRhZ05hbWUsIGNhc2VTZW5zaXRpdmUpIHtcbiAgY29uc3QgYWRqdXN0ID0gY2FzZVNlbnNpdGl2ZSAmJiBjcmVhdGVBZGp1c3RNYXAoY2FzZVNlbnNpdGl2ZSlcblxuICAvKipcbiAgICogSHlwZXJzY3JpcHQgY29tcGF0aWJsZSBEU0wgZm9yIGNyZWF0aW5nIHZpcnR1YWwgaGFzdCB0cmVlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7bnVsbCB8IHVuZGVmaW5lZH0gW3NlbGVjdG9yXVxuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiBAcmV0dXJucyB7Um9vdH1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgKiBAcGFyYW0ge1Byb3BlcnRpZXN9IHByb3BlcnRpZXNcbiAgICogQHBhcmFtIHsuLi5DaGlsZH0gY2hpbGRyZW5cbiAgICogQHJldHVybnMge0VsZW1lbnR9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICogQHBhcmFtIHsuLi5DaGlsZH0gY2hpbGRyZW5cbiAgICogQHJldHVybnMge0VsZW1lbnR9XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NlbGVjdG9yXVxuICAgKiAgIFNlbGVjdG9yLlxuICAgKiBAcGFyYW0ge0NoaWxkIHwgUHJvcGVydGllcyB8IG51bGwgfCB1bmRlZmluZWR9IFtwcm9wZXJ0aWVzXVxuICAgKiAgIFByb3BlcnRpZXMgKG9yIGZpcnN0IGNoaWxkKSAoZGVmYXVsdDogYHVuZGVmaW5lZGApLlxuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiAgIENoaWxkcmVuLlxuICAgKiBAcmV0dXJucyB7UmVzdWx0fVxuICAgKiAgIFJlc3VsdC5cbiAgICovXG4gIGZ1bmN0aW9uIGgoc2VsZWN0b3IsIHByb3BlcnRpZXMsIC4uLmNoaWxkcmVuKSB7XG4gICAgbGV0IGluZGV4ID0gLTFcbiAgICAvKiogQHR5cGUge1Jlc3VsdH0gKi9cbiAgICBsZXQgbm9kZVxuXG4gICAgaWYgKHNlbGVjdG9yID09PSB1bmRlZmluZWQgfHwgc2VsZWN0b3IgPT09IG51bGwpIHtcbiAgICAgIG5vZGUgPSB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogW119XG4gICAgICAvLyBQcm9wZXJ0aWVzIGFyZSBub3Qgc3VwcG9ydGVkIGZvciByb290cy5cbiAgICAgIGNvbnN0IGNoaWxkID0gLyoqIEB0eXBlIHtDaGlsZH0gKi8gKHByb3BlcnRpZXMpXG4gICAgICBjaGlsZHJlbi51bnNoaWZ0KGNoaWxkKVxuICAgIH0gZWxzZSB7XG4gICAgICBub2RlID0gcGFyc2VTZWxlY3RvcihzZWxlY3RvciwgZGVmYXVsdFRhZ05hbWUpXG4gICAgICAvLyBOb3JtYWxpemUgdGhlIG5hbWUuXG4gICAgICBub2RlLnRhZ05hbWUgPSBub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgaWYgKGFkanVzdCAmJiBvd24uY2FsbChhZGp1c3QsIG5vZGUudGFnTmFtZSkpIHtcbiAgICAgICAgbm9kZS50YWdOYW1lID0gYWRqdXN0W25vZGUudGFnTmFtZV1cbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHByb3BzLlxuICAgICAgaWYgKGlzUHJvcGVydGllcyhwcm9wZXJ0aWVzLCBub2RlLnRhZ05hbWUpKSB7XG4gICAgICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgICAgICBsZXQga2V5XG5cbiAgICAgICAgZm9yIChrZXkgaW4gcHJvcGVydGllcykge1xuICAgICAgICAgIGlmIChvd24uY2FsbChwcm9wZXJ0aWVzLCBrZXkpKSB7XG4gICAgICAgICAgICBhZGRQcm9wZXJ0eShzY2hlbWEsIG5vZGUucHJvcGVydGllcywga2V5LCBwcm9wZXJ0aWVzW2tleV0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGlsZHJlbi51bnNoaWZ0KHByb3BlcnRpZXMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGNoaWxkcmVuLlxuICAgIHdoaWxlICgrK2luZGV4IDwgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICBhZGRDaGlsZChub2RlLmNoaWxkcmVuLCBjaGlsZHJlbltpbmRleF0pXG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5vZGUudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgbm9kZS5jb250ZW50ID0ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IG5vZGUuY2hpbGRyZW59XG4gICAgICBub2RlLmNoaWxkcmVuID0gW11cbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZVxuICB9XG5cbiAgcmV0dXJuIGhcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBzb21ldGhpbmcgaXMgcHJvcGVydGllcyBvciBhIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Q2hpbGQgfCBQcm9wZXJ0aWVzfSB2YWx1ZVxuICogICBWYWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFRhZyBuYW1lLlxuICogQHJldHVybnMge3ZhbHVlIGlzIFByb3BlcnRpZXN9XG4gKiAgIFdoZXRoZXIgYHZhbHVlYCBpcyBhIHByb3BlcnRpZXMgb2JqZWN0LlxuICovXG5mdW5jdGlvbiBpc1Byb3BlcnRpZXModmFsdWUsIG5hbWUpIHtcbiAgaWYgKFxuICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgIHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHxcbiAgICBBcnJheS5pc0FycmF5KHZhbHVlKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChuYW1lID09PSAnaW5wdXQnIHx8ICF2YWx1ZS50eXBlIHx8IHR5cGVvZiB2YWx1ZS50eXBlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoJ2NoaWxkcmVuJyBpbiB2YWx1ZSAmJiBBcnJheS5pc0FycmF5KHZhbHVlLmNoaWxkcmVuKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG5hbWUgPT09ICdidXR0b24nKSB7XG4gICAgcmV0dXJuIGJ1dHRvblR5cGVzLmhhcyh2YWx1ZS50eXBlLnRvTG93ZXJDYXNlKCkpXG4gIH1cblxuICByZXR1cm4gISgndmFsdWUnIGluIHZhbHVlKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7U2NoZW1hfSBzY2hlbWFcbiAqICAgU2NoZW1hLlxuICogQHBhcmFtIHtQcm9wZXJ0aWVzfSBwcm9wZXJ0aWVzXG4gKiAgIFByb3BlcnRpZXMgb2JqZWN0LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogICBQcm9wZXJ0eSBuYW1lLlxuICogQHBhcmFtIHtQcm9wZXJ0eVZhbHVlIHwgU3R5bGV9IHZhbHVlXG4gKiAgIFByb3BlcnR5IHZhbHVlLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYWRkUHJvcGVydHkoc2NoZW1hLCBwcm9wZXJ0aWVzLCBrZXksIHZhbHVlKSB7XG4gIGNvbnN0IGluZm8gPSBmaW5kKHNjaGVtYSwga2V5KVxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge1Byb3BlcnR5VmFsdWV9ICovXG4gIGxldCByZXN1bHRcblxuICAvLyBJZ25vcmUgbnVsbGlzaCBhbmQgTmFOIHZhbHVlcy5cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHJldHVyblxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgLy8gSWdub3JlIE5hTi5cbiAgICBpZiAoTnVtYmVyLmlzTmFOKHZhbHVlKSkgcmV0dXJuXG5cbiAgICByZXN1bHQgPSB2YWx1ZVxuICB9XG4gIC8vIEJvb2xlYW5zLlxuICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgIHJlc3VsdCA9IHZhbHVlXG4gIH1cbiAgLy8gSGFuZGxlIGxpc3QgdmFsdWVzLlxuICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGluZm8uc3BhY2VTZXBhcmF0ZWQpIHtcbiAgICAgIHJlc3VsdCA9IHNwYWNlcyh2YWx1ZSlcbiAgICB9IGVsc2UgaWYgKGluZm8uY29tbWFTZXBhcmF0ZWQpIHtcbiAgICAgIHJlc3VsdCA9IGNvbW1hcyh2YWx1ZSlcbiAgICB9IGVsc2UgaWYgKGluZm8uY29tbWFPclNwYWNlU2VwYXJhdGVkKSB7XG4gICAgICByZXN1bHQgPSBzcGFjZXMoY29tbWFzKHZhbHVlKS5qb2luKCcgJykpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IHBhcnNlUHJpbWl0aXZlKGluZm8sIGluZm8ucHJvcGVydHksIHZhbHVlKVxuICAgIH1cbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJlc3VsdCA9IHZhbHVlLmNvbmNhdCgpXG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gaW5mby5wcm9wZXJ0eSA9PT0gJ3N0eWxlJyA/IHN0eWxlKHZhbHVlKSA6IFN0cmluZyh2YWx1ZSlcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAvKiogQHR5cGUge0FycmF5PG51bWJlciB8IHN0cmluZz59ICovXG4gICAgY29uc3QgZmluYWxSZXN1bHQgPSBbXVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCByZXN1bHQubGVuZ3RoKSB7XG4gICAgICAvLyBBc3N1bWUgbm8gYm9vbGVhbnMgaW4gYXJyYXkuXG4gICAgICBjb25zdCB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyIHwgc3RyaW5nfSAqLyAoXG4gICAgICAgIHBhcnNlUHJpbWl0aXZlKGluZm8sIGluZm8ucHJvcGVydHksIHJlc3VsdFtpbmRleF0pXG4gICAgICApXG4gICAgICBmaW5hbFJlc3VsdFtpbmRleF0gPSB2YWx1ZVxuICAgIH1cblxuICAgIHJlc3VsdCA9IGZpbmFsUmVzdWx0XG4gIH1cblxuICAvLyBDbGFzcyBuYW1lcyAod2hpY2ggY2FuIGJlIGFkZGVkIGJvdGggb24gdGhlIGBzZWxlY3RvcmAgYW5kIGhlcmUpLlxuICBpZiAoaW5mby5wcm9wZXJ0eSA9PT0gJ2NsYXNzTmFtZScgJiYgQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzLmNsYXNzTmFtZSkpIHtcbiAgICAvLyBBc3N1bWUgbm8gYm9vbGVhbnMgaW4gYGNsYXNzTmFtZWAuXG4gICAgY29uc3QgdmFsdWUgPSAvKiogQHR5cGUge251bWJlciB8IHN0cmluZ30gKi8gKHJlc3VsdClcbiAgICByZXN1bHQgPSBwcm9wZXJ0aWVzLmNsYXNzTmFtZS5jb25jYXQodmFsdWUpXG4gIH1cblxuICBwcm9wZXJ0aWVzW2luZm8ucHJvcGVydHldID0gcmVzdWx0XG59XG5cbi8qKlxuICogQHBhcmFtIHtBcnJheTxSb290Q29udGVudD59IG5vZGVzXG4gKiAgIENoaWxkcmVuLlxuICogQHBhcmFtIHtDaGlsZH0gdmFsdWVcbiAqICAgQ2hpbGQuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhZGRDaGlsZChub2RlcywgdmFsdWUpIHtcbiAgbGV0IGluZGV4ID0gLTFcblxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIC8vIEVtcHR5LlxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIG5vZGVzLnB1c2goe3R5cGU6ICd0ZXh0JywgdmFsdWU6IFN0cmluZyh2YWx1ZSl9KVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgd2hpbGUgKCsraW5kZXggPCB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIGFkZENoaWxkKG5vZGVzLCB2YWx1ZVtpbmRleF0pXG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ3R5cGUnIGluIHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlLnR5cGUgPT09ICdyb290Jykge1xuICAgICAgYWRkQ2hpbGQobm9kZXMsIHZhbHVlLmNoaWxkcmVuKVxuICAgIH0gZWxzZSB7XG4gICAgICBub2Rlcy5wdXNoKHZhbHVlKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIG5vZGUsIG5vZGVzLCBvciBzdHJpbmcsIGdvdCBgJyArIHZhbHVlICsgJ2AnKVxuICB9XG59XG5cbi8qKlxuICogUGFyc2UgYSBzaW5nbGUgcHJpbWl0aXZlcy5cbiAqXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqICAgUHJvcGVydHkgaW5mb3JtYXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBQcm9wZXJ0eSBuYW1lLlxuICogQHBhcmFtIHtQcmltaXRpdmVWYWx1ZX0gdmFsdWVcbiAqICAgUHJvcGVydHkgdmFsdWUuXG4gKiBAcmV0dXJucyB7UHJpbWl0aXZlVmFsdWV9XG4gKiAgIFByb3BlcnR5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBwYXJzZVByaW1pdGl2ZShpbmZvLCBuYW1lLCB2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGlmIChpbmZvLm51bWJlciAmJiB2YWx1ZSAmJiAhTnVtYmVyLmlzTmFOKE51bWJlcih2YWx1ZSkpKSB7XG4gICAgICByZXR1cm4gTnVtYmVyKHZhbHVlKVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIChpbmZvLmJvb2xlYW4gfHwgaW5mby5vdmVybG9hZGVkQm9vbGVhbikgJiZcbiAgICAgICh2YWx1ZSA9PT0gJycgfHwgbm9ybWFsaXplKHZhbHVlKSA9PT0gbm9ybWFsaXplKG5hbWUpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYSBgc3R5bGVgIG9iamVjdCBhcyBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge1N0eWxlfSB2YWx1ZVxuICogICBTdHlsZSBvYmplY3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDU1Mgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBzdHlsZSh2YWx1ZSkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQga2V5XG5cbiAgZm9yIChrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAob3duLmNhbGwodmFsdWUsIGtleSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKFtrZXksIHZhbHVlW2tleV1dLmpvaW4oJzogJykpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCc7ICcpXG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbWFwIHRvIGFkanVzdCBjYXNpbmcuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSB2YWx1ZXNcbiAqICAgTGlzdCBvZiBwcm9wZXJseSBjYXNlZCBrZXlzLlxuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKiAgIE1hcCBvZiBsb3dlcmNhc2Uga2V5cyB0byB1cHBlcmNhc2Uga2V5cy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQWRqdXN0TWFwKHZhbHVlcykge1xuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdCA9IHt9XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgcmVzdWx0W3ZhbHVlc1tpbmRleF0udG9Mb3dlckNhc2UoKV0gPSB2YWx1ZXNbaW5kZXhdXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG4iLCAiZXhwb3J0IGNvbnN0IHN2Z0Nhc2VTZW5zaXRpdmVUYWdOYW1lcyA9IFtcbiAgJ2FsdEdseXBoJyxcbiAgJ2FsdEdseXBoRGVmJyxcbiAgJ2FsdEdseXBoSXRlbScsXG4gICdhbmltYXRlQ29sb3InLFxuICAnYW5pbWF0ZU1vdGlvbicsXG4gICdhbmltYXRlVHJhbnNmb3JtJyxcbiAgJ2NsaXBQYXRoJyxcbiAgJ2ZlQmxlbmQnLFxuICAnZmVDb2xvck1hdHJpeCcsXG4gICdmZUNvbXBvbmVudFRyYW5zZmVyJyxcbiAgJ2ZlQ29tcG9zaXRlJyxcbiAgJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAnZmVEaWZmdXNlTGlnaHRpbmcnLFxuICAnZmVEaXNwbGFjZW1lbnRNYXAnLFxuICAnZmVEaXN0YW50TGlnaHQnLFxuICAnZmVEcm9wU2hhZG93JyxcbiAgJ2ZlRmxvb2QnLFxuICAnZmVGdW5jQScsXG4gICdmZUZ1bmNCJyxcbiAgJ2ZlRnVuY0cnLFxuICAnZmVGdW5jUicsXG4gICdmZUdhdXNzaWFuQmx1cicsXG4gICdmZUltYWdlJyxcbiAgJ2ZlTWVyZ2UnLFxuICAnZmVNZXJnZU5vZGUnLFxuICAnZmVNb3JwaG9sb2d5JyxcbiAgJ2ZlT2Zmc2V0JyxcbiAgJ2ZlUG9pbnRMaWdodCcsXG4gICdmZVNwZWN1bGFyTGlnaHRpbmcnLFxuICAnZmVTcG90TGlnaHQnLFxuICAnZmVUaWxlJyxcbiAgJ2ZlVHVyYnVsZW5jZScsXG4gICdmb3JlaWduT2JqZWN0JyxcbiAgJ2dseXBoUmVmJyxcbiAgJ2xpbmVhckdyYWRpZW50JyxcbiAgJ3JhZGlhbEdyYWRpZW50JyxcbiAgJ3NvbGlkQ29sb3InLFxuICAndGV4dEFyZWEnLFxuICAndGV4dFBhdGgnXG5dXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NyZWF0ZS1oLmpzJykuQ2hpbGR9IENoaWxkXG4gKiAgIEFjY2VwdGFibGUgY2hpbGQgdmFsdWUuXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NyZWF0ZS1oLmpzJykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICogICBBY2NlcHRhYmxlIHZhbHVlIGZvciBlbGVtZW50IHByb3BlcnRpZXMuXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NyZWF0ZS1oLmpzJykuUmVzdWx0fSBSZXN1bHRcbiAqICAgUmVzdWx0IGZyb20gYSBgaGAgKG9yIGBzYCkgY2FsbC5cbiAqL1xuXG4vLyBSZWdpc3RlciB0aGUgSlNYIG5hbWVzcGFjZSBvbiBgaGAuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50fSBoLkpTWC5FbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuRWxlbWVudENoaWxkcmVuQXR0cmlidXRlfSBoLkpTWC5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNBdHRyaWJ1dGVzfSBoLkpTWC5JbnRyaW5zaWNBdHRyaWJ1dGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuSW50cmluc2ljRWxlbWVudHN9IGguSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gKi9cblxuLy8gUmVnaXN0ZXIgdGhlIEpTWCBuYW1lc3BhY2Ugb24gYHNgLlxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuRWxlbWVudH0gcy5KU1guRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkVsZW1lbnRDaGlsZHJlbkF0dHJpYnV0ZX0gcy5KU1guRWxlbWVudENoaWxkcmVuQXR0cmlidXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuSW50cmluc2ljQXR0cmlidXRlc30gcy5KU1guSW50cmluc2ljQXR0cmlidXRlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkludHJpbnNpY0VsZW1lbnRzfSBzLkpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICovXG5cbmltcG9ydCB7aHRtbCwgc3ZnfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7Y3JlYXRlSH0gZnJvbSAnLi9jcmVhdGUtaC5qcydcbmltcG9ydCB7c3ZnQ2FzZVNlbnNpdGl2ZVRhZ05hbWVzfSBmcm9tICcuL3N2Zy1jYXNlLXNlbnNpdGl2ZS10YWctbmFtZXMuanMnXG5cbi8vIE5vdGU6IHRoaXMgZXhwbGljaXQgdHlwZSBpcyBuZWVkZWQsIG90aGVyd2lzZSBUUyBjcmVhdGVzIGJyb2tlbiB0eXBlcy5cbi8qKiBAdHlwZSB7UmV0dXJuVHlwZTxjcmVhdGVIPn0gKi9cbmV4cG9ydCBjb25zdCBoID0gY3JlYXRlSChodG1sLCAnZGl2JylcblxuLy8gTm90ZTogdGhpcyBleHBsaWNpdCB0eXBlIGlzIG5lZWRlZCwgb3RoZXJ3aXNlIFRTIGNyZWF0ZXMgYnJva2VuIHR5cGVzLlxuLyoqIEB0eXBlIHtSZXR1cm5UeXBlPGNyZWF0ZUg+fSAqL1xuZXhwb3J0IGNvbnN0IHMgPSBjcmVhdGVIKHN2ZywgJ2cnLCBzdmdDYXNlU2Vuc2l0aXZlVGFnTmFtZXMpXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZGaWxlfSBWRmlsZVxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUnKS5WYWx1ZX0gVmFsdWVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFVuaXN0UG9pbnRcbiAqL1xuXG4vKipcbiAqXG4gKiBAdHlwZWRlZiBQb2ludExpa2VcbiAqICAgdW5pc3QgcG9pbnQsIGFsbG93ZWQgYXMgaW5wdXQuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtsaW5lXVxuICogICBMaW5lLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sdW1uXVxuICogICBDb2x1bW4uXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtvZmZzZXRdXG4gKiAgIE9mZnNldC5cbiAqXG4gKiBAY2FsbGJhY2sgVG9Qb2ludFxuICogICBHZXQgdGhlIGxpbmUvY29sdW1uIGJhc2VkIGBQb2ludGAgZm9yIGBvZmZzZXRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICpcbiAqICAgUmV0dXJucyBgdW5kZWZpbmVkYCB3aGVuIGdpdmVuIG91dCBvZiBib3VuZHMgaW5wdXQuXG4gKlxuICogICBBbHNvIGltcGxlbWVudGVkIGluIFJ1c3QgaW4gW2B3b29vcm0vbWFya2Rvd24tcnNgXVttYXJrZG93bi1yc10uXG4gKlxuICogICBbbWFya2Rvd24tcnNdOiBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL21hcmtkb3duLXJzL2Jsb2IvbWFpbi9zcmMvdXRpbC9sb2NhdGlvbi5yc1xuICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbb2Zmc2V0XVxuICogICBTb21ldGhpbmcgdGhhdCBzaG91bGQgYmUgYW4gYG9mZnNldC5cbiAqIEByZXR1cm5zIHtVbmlzdFBvaW50IHwgdW5kZWZpbmVkfVxuICogICBQb2ludCwgaWYgYG9mZnNldGAgaXMgdmFsaWQgYW5kIGluLWJvdW5kcyBpbnB1dC5cbiAqXG4gKiBAY2FsbGJhY2sgVG9PZmZzZXRcbiAqICAgR2V0IHRoZSBgb2Zmc2V0YCBmcm9tIGEgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBpbiB0aGUgYm91bmQgaW5kaWNlcy5cbiAqIEBwYXJhbSB7UG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BvaW50XVxuICogICBTb21ldGhpbmcgdGhhdCBzaG91bGQgYmUgYSBgcG9pbnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyIHwgdW5kZWZpbmVkfVxuICogICBPZmZzZXQgKGBudW1iZXJgKSBvciBgdW5kZWZpbmVkYCBmb3IgaW52YWxpZCBvciBvdXQgb2YgYm91bmRzIGlucHV0LlxuICpcbiAqIEB0eXBlZGVmIExvY2F0aW9uXG4gKiAgIEFjY2Vzc29ycyBmb3IgaW5kZXguXG4gKiBAcHJvcGVydHkge1RvUG9pbnR9IHRvUG9pbnRcbiAqICAgR2V0IHRoZSBsaW5lL2NvbHVtbiBiYXNlZCBgUG9pbnRgIGZvciBgb2Zmc2V0YCBpbiB0aGUgYm91bmQgaW5kaWNlcy5cbiAqIEBwcm9wZXJ0eSB7VG9PZmZzZXR9IHRvT2Zmc2V0XG4gKiAgIEdldCB0aGUgYG9mZnNldGAgZnJvbSBhIGxpbmUvY29sdW1uIGJhc2VkIGBQb2ludGAgaW4gdGhlIGJvdW5kIGluZGljZXMuXG4gKi9cblxuY29uc3Qgc2VhcmNoID0gL1xccj9cXG58XFxyL2dcblxuLyoqXG4gKiBDcmVhdGUgYW4gaW5kZXggb2YgdGhlIGdpdmVuIGRvY3VtZW50IHRvIHRyYW5zbGF0ZSBiZXR3ZWVuIGxpbmUvY29sdW1uIGFuZFxuICogb2Zmc2V0IGJhc2VkIHBvc2l0aW9uYWwgaW5mby5cbiAqXG4gKiBBbHNvIGltcGxlbWVudGVkIGluIFJ1c3QgaW4gW2B3b29vcm0vbWFya2Rvd24tcnNgXVttYXJrZG93bi1yc10uXG4gKlxuICogW21hcmtkb3duLXJzXTogaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9tYXJrZG93bi1ycy9ibG9iL21haW4vc3JjL3V0aWwvbG9jYXRpb24ucnNcbiAqXG4gKiBAcGFyYW0ge1ZGaWxlIHwgVmFsdWV9IGZpbGVcbiAqICAgRmlsZSB0byBpbmRleC5cbiAqIEByZXR1cm5zIHtMb2NhdGlvbn1cbiAqICAgQWNjZXNzb3JzIGZvciBpbmRleC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2F0aW9uKGZpbGUpIHtcbiAgY29uc3QgdmFsdWUgPSBTdHJpbmcoZmlsZSlcbiAgLyoqXG4gICAqIExpc3QsIHdoZXJlIGVhY2ggaW5kZXggaXMgYSBsaW5lIG51bWJlciAoMC1iYXNlZCksIGFuZCBlYWNoIHZhbHVlIGlzIHRoZVxuICAgKiBieXRlIGluZGV4ICphZnRlciogd2hlcmUgdGhlIGxpbmUgZW5kcy5cbiAgICpcbiAgICogQHR5cGUge0FycmF5PG51bWJlcj59XG4gICAqL1xuICBjb25zdCBpbmRpY2VzID0gW11cblxuICBzZWFyY2gubGFzdEluZGV4ID0gMFxuXG4gIHdoaWxlIChzZWFyY2gudGVzdCh2YWx1ZSkpIHtcbiAgICBpbmRpY2VzLnB1c2goc2VhcmNoLmxhc3RJbmRleClcbiAgfVxuXG4gIGluZGljZXMucHVzaCh2YWx1ZS5sZW5ndGggKyAxKVxuXG4gIHJldHVybiB7dG9Qb2ludCwgdG9PZmZzZXR9XG5cbiAgLyoqIEB0eXBlIHtUb1BvaW50fSAqL1xuICBmdW5jdGlvbiB0b1BvaW50KG9mZnNldCkge1xuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2Ygb2Zmc2V0ID09PSAnbnVtYmVyJyAmJlxuICAgICAgb2Zmc2V0ID4gLTEgJiZcbiAgICAgIG9mZnNldCA8IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXVxuICAgICkge1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBpbmRpY2VzLmxlbmd0aCkge1xuICAgICAgICBpZiAoaW5kaWNlc1tpbmRleF0gPiBvZmZzZXQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGluZTogaW5kZXggKyAxLFxuICAgICAgICAgICAgY29sdW1uOiBvZmZzZXQgLSAoaW5kZXggPiAwID8gaW5kaWNlc1tpbmRleCAtIDFdIDogMCkgKyAxLFxuICAgICAgICAgICAgb2Zmc2V0XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEB0eXBlIHtUb09mZnNldH0gKi9cbiAgZnVuY3Rpb24gdG9PZmZzZXQocG9pbnQpIHtcbiAgICBjb25zdCBsaW5lID0gcG9pbnQgJiYgcG9pbnQubGluZVxuICAgIGNvbnN0IGNvbHVtbiA9IHBvaW50ICYmIHBvaW50LmNvbHVtblxuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGxpbmUgPT09ICdudW1iZXInICYmXG4gICAgICB0eXBlb2YgY29sdW1uID09PSAnbnVtYmVyJyAmJlxuICAgICAgIU51bWJlci5pc05hTihsaW5lKSAmJlxuICAgICAgIU51bWJlci5pc05hTihjb2x1bW4pICYmXG4gICAgICBsaW5lIC0gMSBpbiBpbmRpY2VzXG4gICAgKSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSAoaW5kaWNlc1tsaW5lIC0gMl0gfHwgMCkgKyBjb2x1bW4gLSAxIHx8IDBcblxuICAgICAgaWYgKG9mZnNldCA+IC0xICYmIG9mZnNldCA8IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSkge1xuICAgICAgICByZXR1cm4gb2Zmc2V0XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCAiLyoqXG4gKiBNYXAgb2Ygd2ViIG5hbWVzcGFjZXMuXG4gKlxuICogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCB3ZWJOYW1lc3BhY2VzID0ge1xuICBodG1sOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsXG4gIG1hdGhtbDogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnLFxuICBzdmc6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gIHhsaW5rOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycsXG4gIHhtbDogJ2h0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZScsXG4gIHhtbG5zOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8nXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnREYXRhfSBFbGVtZW50RGF0YVxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290Q29udGVudH0gUm9vdENvbnRlbnRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5EZWZhdWx0VHJlZUFkYXB0ZXJNYXB9IERlZmF1bHRUcmVlQWRhcHRlck1hcFxuICogQHR5cGVkZWYge2ltcG9ydCgncGFyc2U1JykuVG9rZW4uRWxlbWVudExvY2F0aW9ufSBQNUVsZW1lbnRMb2NhdGlvblxuICogQHR5cGVkZWYge2ltcG9ydCgncGFyc2U1JykuVG9rZW4uTG9jYXRpb259IFA1TG9jYXRpb25cbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpLlNjaGVtYX0gU2NoZW1hXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUnKS5WRmlsZX0gVkZpbGVcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2RvY3VtZW50J119IFA1RG9jdW1lbnRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2RvY3VtZW50RnJhZ21lbnQnXX0gUDVEb2N1bWVudEZyYWdtZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydkb2N1bWVudFR5cGUnXX0gUDVEb2N1bWVudFR5cGVcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2NvbW1lbnROb2RlJ119IFA1Q29tbWVudFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsndGV4dE5vZGUnXX0gUDVUZXh0XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydlbGVtZW50J119IFA1RWxlbWVudFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnbm9kZSddfSBQNU5vZGVcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ3RlbXBsYXRlJ119IFA1VGVtcGxhdGVcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7U3BhY2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3BhY2U9J2h0bWwnXVxuICogICBXaGljaCBzcGFjZSB0aGUgZG9jdW1lbnQgaXMgaW4gKGRlZmF1bHQ6IGAnaHRtbCdgKS5cbiAqXG4gKiAgIFdoZW4gYW4gYDxzdmc+YCBlbGVtZW50IGlzIGZvdW5kIGluIHRoZSBIVE1MIHNwYWNlLCB0aGlzIHBhY2thZ2UgYWxyZWFkeVxuICogICBhdXRvbWF0aWNhbGx5IHN3aXRjaGVzIHRvIGFuZCBmcm9tIHRoZSBTVkcgc3BhY2Ugd2hlbiBlbnRlcmluZyBhbmQgZXhpdGluZ1xuICogICBpdC5cbiAqIEBwcm9wZXJ0eSB7VkZpbGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbZmlsZV1cbiAqICAgRmlsZSB1c2VkIHRvIGFkZCBwb3NpdGlvbmFsIGluZm8gdG8gbm9kZXMgKG9wdGlvbmFsKS5cbiAqXG4gKiAgIElmIGdpdmVuLCB0aGUgZmlsZSBzaG91bGQgcmVwcmVzZW50IHRoZSBvcmlnaW5hbCBIVE1MIHNvdXJjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt2ZXJib3NlPWZhbHNlXVxuICogICBXaGV0aGVyIHRvIGFkZCBleHRyYSBwb3NpdGlvbmFsIGluZm8gYWJvdXQgc3RhcnRpbmcgdGFncywgY2xvc2luZyB0YWdzLFxuICogICBhbmQgYXR0cmlidXRlcyB0byBlbGVtZW50cyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogb25seSB1c2VkIHdoZW4gYGZpbGVgIGlzIGdpdmVuLlxuICpcbiAqIEB0eXBlZGVmIHsnaHRtbCcgfCAnc3ZnJ30gU3BhY2VcbiAqICAgTmFtZXNwYWNlLlxuICpcbiAqIEB0eXBlZGVmIFN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwcm9wZXJ0eSB7VkZpbGUgfCB1bmRlZmluZWR9IGZpbGVcbiAqICAgQ29ycmVzcG9uZGluZyBmaWxlLlxuICogQHByb3BlcnR5IHtib29sZWFufSBsb2NhdGlvblxuICogICBXaGV0aGVyIGxvY2F0aW9uIGluZm8gd2FzIGZvdW5kLlxuICogQHByb3BlcnR5IHtTY2hlbWF9IHNjaGVtYVxuICogICBDdXJyZW50IHNjaGVtYS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gdmVyYm9zZVxuICogICBBZGQgZXh0cmEgcG9zaXRpb25hbCBpbmZvLlxuICovXG5cbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5pbXBvcnQge2gsIHN9IGZyb20gJ2hhc3RzY3JpcHQnXG5pbXBvcnQge2ZpbmQsIGh0bWwsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge2xvY2F0aW9ufSBmcm9tICd2ZmlsZS1sb2NhdGlvbidcbmltcG9ydCB7d2ViTmFtZXNwYWNlc30gZnJvbSAnd2ViLW5hbWVzcGFjZXMnXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG4vKiogQHR5cGUge3Vua25vd259ICovXG4vLyB0eXBlLWNvdmVyYWdlOmlnbm9yZS1uZXh0LWxpbmVcbmNvbnN0IHByb3RvID0gT2JqZWN0LnByb3RvdHlwZVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhIGBwYXJzZTVgIEFTVCB0byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7UDVOb2RlfSB0cmVlXG4gKiAgIGBwYXJzZTVgIHRyZWUgdG8gdHJhbnNmb3JtLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtOb2Rlc31cbiAqICAgaGFzdCB0cmVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVBhcnNlNSh0cmVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fVxuXG4gIHJldHVybiBvbmUoXG4gICAge1xuICAgICAgZmlsZTogc2V0dGluZ3MuZmlsZSB8fCB1bmRlZmluZWQsXG4gICAgICBsb2NhdGlvbjogZmFsc2UsXG4gICAgICBzY2hlbWE6IHNldHRpbmdzLnNwYWNlID09PSAnc3ZnJyA/IHN2ZyA6IGh0bWwsXG4gICAgICB2ZXJib3NlOiBzZXR0aW5ncy52ZXJib3NlIHx8IGZhbHNlXG4gICAgfSxcbiAgICB0cmVlXG4gIClcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBub2RlLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7UDVOb2RlfSBub2RlXG4gKiAgIHA1IG5vZGUuXG4gKiBAcmV0dXJucyB7Tm9kZXN9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZnVuY3Rpb24gb25lKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7Tm9kZXN9ICovXG4gIGxldCByZXN1bHRcblxuICBzd2l0Y2ggKG5vZGUubm9kZU5hbWUpIHtcbiAgICBjYXNlICcjY29tbWVudCc6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVDb21tZW50fSAqLyAobm9kZSlcbiAgICAgIHJlc3VsdCA9IHt0eXBlOiAnY29tbWVudCcsIHZhbHVlOiByZWZlcmVuY2UuZGF0YX1cbiAgICAgIHBhdGNoKHN0YXRlLCByZWZlcmVuY2UsIHJlc3VsdClcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICBjYXNlICcjZG9jdW1lbnQnOlxuICAgIGNhc2UgJyNkb2N1bWVudC1mcmFnbWVudCc6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVEb2N1bWVudCB8IFA1RG9jdW1lbnRGcmFnbWVudH0gKi8gKG5vZGUpXG4gICAgICBjb25zdCBxdWlya3NNb2RlID1cbiAgICAgICAgJ21vZGUnIGluIHJlZmVyZW5jZVxuICAgICAgICAgID8gcmVmZXJlbmNlLm1vZGUgPT09ICdxdWlya3MnIHx8IHJlZmVyZW5jZS5tb2RlID09PSAnbGltaXRlZC1xdWlya3MnXG4gICAgICAgICAgOiBmYWxzZVxuXG4gICAgICByZXN1bHQgPSB7XG4gICAgICAgIHR5cGU6ICdyb290JyxcbiAgICAgICAgY2hpbGRyZW46IGFsbChzdGF0ZSwgbm9kZS5jaGlsZE5vZGVzKSxcbiAgICAgICAgZGF0YToge3F1aXJrc01vZGV9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZS5maWxlICYmIHN0YXRlLmxvY2F0aW9uKSB7XG4gICAgICAgIGNvbnN0IGRvYyA9IFN0cmluZyhzdGF0ZS5maWxlKVxuICAgICAgICBjb25zdCBsb2MgPSBsb2NhdGlvbihkb2MpXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gbG9jLnRvUG9pbnQoMClcbiAgICAgICAgY29uc3QgZW5kID0gbG9jLnRvUG9pbnQoZG9jLmxlbmd0aClcbiAgICAgICAgLy8gQWx3YXlzIGRlZmluZWQgYXMgd2UgZ2l2ZSB2YWxpZCBpbnB1dC5cbiAgICAgICAgYXNzZXJ0KHN0YXJ0LCAnZXhwZWN0ZWQgYHN0YXJ0YCcpXG4gICAgICAgIGFzc2VydChlbmQsICdleHBlY3RlZCBgZW5kYCcpXG4gICAgICAgIHJlc3VsdC5wb3NpdGlvbiA9IHtzdGFydCwgZW5kfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgY2FzZSAnI2RvY3VtZW50VHlwZSc6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVEb2N1bWVudFR5cGV9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0ge3R5cGU6ICdkb2N0eXBlJ31cbiAgICAgIHBhdGNoKHN0YXRlLCByZWZlcmVuY2UsIHJlc3VsdClcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICBjYXNlICcjdGV4dCc6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVUZXh0fSAqLyAobm9kZSlcbiAgICAgIHJlc3VsdCA9IHt0eXBlOiAndGV4dCcsIHZhbHVlOiByZWZlcmVuY2UudmFsdWV9XG4gICAgICBwYXRjaChzdGF0ZSwgcmVmZXJlbmNlLCByZXN1bHQpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgLy8gRWxlbWVudC5cbiAgICBkZWZhdWx0OiB7XG4gICAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1RWxlbWVudH0gKi8gKG5vZGUpXG4gICAgICByZXN1bHQgPSBlbGVtZW50KHN0YXRlLCByZWZlcmVuY2UpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7QXJyYXk8UDVOb2RlPn0gbm9kZXNcbiAqICAgTm9kZXMuXG4gKiBAcmV0dXJucyB7QXJyYXk8Um9vdENvbnRlbnQ+fVxuICogICBoYXN0IG5vZGVzLlxuICovXG5mdW5jdGlvbiBhbGwoc3RhdGUsIG5vZGVzKSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7QXJyYXk8Um9vdENvbnRlbnQ+fSAqL1xuICBjb25zdCByZXN1bHRzID0gW11cblxuICB3aGlsZSAoKytpbmRleCA8IG5vZGVzLmxlbmd0aCkge1xuICAgIC8vIEFzc3VtZSBubyByb290cyBpbiBgbm9kZXNgLlxuICAgIGNvbnN0IHJlc3VsdCA9IC8qKiBAdHlwZSB7Um9vdENvbnRlbnR9ICovIChvbmUoc3RhdGUsIG5vZGVzW2luZGV4XSkpXG4gICAgcmVzdWx0cy5wdXNoKHJlc3VsdClcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzXG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGFuIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQNUVsZW1lbnR9IG5vZGVcbiAqICAgYHBhcnNlNWAgbm9kZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5mdW5jdGlvbiBlbGVtZW50KHN0YXRlLCBub2RlKSB7XG4gIGNvbnN0IHNjaGVtYSA9IHN0YXRlLnNjaGVtYVxuXG4gIHN0YXRlLnNjaGVtYSA9IG5vZGUubmFtZXNwYWNlVVJJID09PSB3ZWJOYW1lc3BhY2VzLnN2ZyA/IHN2ZyA6IGh0bWxcblxuICAvLyBQcm9wcy5cbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSAqL1xuICBjb25zdCBwcm9wcyA9IHt9XG5cbiAgd2hpbGUgKCsraW5kZXggPCBub2RlLmF0dHJzLmxlbmd0aCkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9IG5vZGUuYXR0cnNbaW5kZXhdXG4gICAgY29uc3QgbmFtZSA9XG4gICAgICAoYXR0cmlidXRlLnByZWZpeCA/IGF0dHJpYnV0ZS5wcmVmaXggKyAnOicgOiAnJykgKyBhdHRyaWJ1dGUubmFtZVxuICAgIGlmICghb3duLmNhbGwocHJvdG8sIG5hbWUpKSB7XG4gICAgICBwcm9wc1tuYW1lXSA9IGF0dHJpYnV0ZS52YWx1ZVxuICAgIH1cbiAgfVxuXG4gIC8vIEJ1aWxkLlxuICBjb25zdCBmbiA9IHN0YXRlLnNjaGVtYS5zcGFjZSA9PT0gJ3N2ZycgPyBzIDogaFxuICBjb25zdCByZXN1bHQgPSBmbihub2RlLnRhZ05hbWUsIHByb3BzLCBhbGwoc3RhdGUsIG5vZGUuY2hpbGROb2RlcykpXG4gIHBhdGNoKHN0YXRlLCBub2RlLCByZXN1bHQpXG5cbiAgLy8gU3dpdGNoIGNvbnRlbnQuXG4gIGlmIChyZXN1bHQudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJykge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVUZW1wbGF0ZX0gKi8gKG5vZGUpXG4gICAgY29uc3QgcG9zID0gcmVmZXJlbmNlLnNvdXJjZUNvZGVMb2NhdGlvblxuICAgIGNvbnN0IHN0YXJ0VGFnID0gcG9zICYmIHBvcy5zdGFydFRhZyAmJiBwb3NpdGlvbihwb3Muc3RhcnRUYWcpXG4gICAgY29uc3QgZW5kVGFnID0gcG9zICYmIHBvcy5lbmRUYWcgJiYgcG9zaXRpb24ocG9zLmVuZFRhZylcblxuICAgIC8vIFJvb3QgaW4sIHJvb3Qgb3V0LlxuICAgIGNvbnN0IGNvbnRlbnQgPSAvKiogQHR5cGUge1Jvb3R9ICovIChvbmUoc3RhdGUsIHJlZmVyZW5jZS5jb250ZW50KSlcblxuICAgIGlmIChzdGFydFRhZyAmJiBlbmRUYWcgJiYgc3RhdGUuZmlsZSkge1xuICAgICAgY29udGVudC5wb3NpdGlvbiA9IHtzdGFydDogc3RhcnRUYWcuZW5kLCBlbmQ6IGVuZFRhZy5zdGFydH1cbiAgICB9XG5cbiAgICByZXN1bHQuY29udGVudCA9IGNvbnRlbnRcbiAgfVxuXG4gIHN0YXRlLnNjaGVtYSA9IHNjaGVtYVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBQYXRjaCBwb3NpdGlvbmFsIGluZm8gZnJvbSBgZnJvbWAgb250byBgdG9gLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7UDVOb2RlfSBmcm9tXG4gKiAgIHA1IG5vZGUuXG4gKiBAcGFyYW0ge05vZGVzfSB0b1xuICogICBoYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBwYXRjaChzdGF0ZSwgZnJvbSwgdG8pIHtcbiAgaWYgKCdzb3VyY2VDb2RlTG9jYXRpb24nIGluIGZyb20gJiYgZnJvbS5zb3VyY2VDb2RlTG9jYXRpb24gJiYgc3RhdGUuZmlsZSkge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gY3JlYXRlTG9jYXRpb24oc3RhdGUsIHRvLCBmcm9tLnNvdXJjZUNvZGVMb2NhdGlvbilcblxuICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgc3RhdGUubG9jYXRpb24gPSB0cnVlXG4gICAgICB0by5wb3NpdGlvbiA9IHBvc2l0aW9uXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGNsZWFuIHBvc2l0aW9uYWwgaW5mb3JtYXRpb24uXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtOb2Rlc30gbm9kZVxuICogICBoYXN0IG5vZGUuXG4gKiBAcGFyYW0ge1A1RWxlbWVudExvY2F0aW9ufSBsb2NhdGlvblxuICogICBwNSBsb2NhdGlvbiBpbmZvLlxuICogQHJldHVybnMge1Bvc2l0aW9uIHwgdW5kZWZpbmVkfVxuICogICBQb3NpdGlvbiwgb3Igbm90aGluZy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlTG9jYXRpb24oc3RhdGUsIG5vZGUsIGxvY2F0aW9uKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHBvc2l0aW9uKGxvY2F0aW9uKVxuXG4gIGlmIChub2RlLnR5cGUgPT09ICdlbGVtZW50Jykge1xuICAgIGNvbnN0IHRhaWwgPSBub2RlLmNoaWxkcmVuW25vZGUuY2hpbGRyZW4ubGVuZ3RoIC0gMV1cblxuICAgIC8vIEJ1ZyBmb3IgdW5jbG9zZWQgd2l0aCBjaGlsZHJlbi5cbiAgICAvLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L2lzc3Vlcy8xMDk+LlxuICAgIGlmIChcbiAgICAgIHJlc3VsdCAmJlxuICAgICAgIWxvY2F0aW9uLmVuZFRhZyAmJlxuICAgICAgdGFpbCAmJlxuICAgICAgdGFpbC5wb3NpdGlvbiAmJlxuICAgICAgdGFpbC5wb3NpdGlvbi5lbmRcbiAgICApIHtcbiAgICAgIHJlc3VsdC5lbmQgPSBPYmplY3QuYXNzaWduKHt9LCB0YWlsLnBvc2l0aW9uLmVuZClcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUudmVyYm9zZSkge1xuICAgICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBQb3NpdGlvbiB8IHVuZGVmaW5lZD59ICovXG4gICAgICBjb25zdCBwcm9wcyA9IHt9XG4gICAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICAgIGxldCBrZXlcblxuICAgICAgaWYgKGxvY2F0aW9uLmF0dHJzKSB7XG4gICAgICAgIGZvciAoa2V5IGluIGxvY2F0aW9uLmF0dHJzKSB7XG4gICAgICAgICAgaWYgKG93bi5jYWxsKGxvY2F0aW9uLmF0dHJzLCBrZXkpKSB7XG4gICAgICAgICAgICBwcm9wc1tmaW5kKHN0YXRlLnNjaGVtYSwga2V5KS5wcm9wZXJ0eV0gPSBwb3NpdGlvbihcbiAgICAgICAgICAgICAgbG9jYXRpb24uYXR0cnNba2V5XVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhc3NlcnQobG9jYXRpb24uc3RhcnRUYWcsICdhIHN0YXJ0IHRhZyBzaG91bGQgZXhpc3QnKVxuICAgICAgY29uc3Qgb3BlbmluZyA9IHBvc2l0aW9uKGxvY2F0aW9uLnN0YXJ0VGFnKVxuICAgICAgY29uc3QgY2xvc2luZyA9IGxvY2F0aW9uLmVuZFRhZyA/IHBvc2l0aW9uKGxvY2F0aW9uLmVuZFRhZykgOiB1bmRlZmluZWRcbiAgICAgIC8qKiBAdHlwZSB7RWxlbWVudERhdGFbJ3Bvc2l0aW9uJ119ICovXG4gICAgICBjb25zdCBkYXRhID0ge29wZW5pbmd9XG4gICAgICBpZiAoY2xvc2luZykgZGF0YS5jbG9zaW5nID0gY2xvc2luZ1xuICAgICAgZGF0YS5wcm9wZXJ0aWVzID0gcHJvcHNcblxuICAgICAgbm9kZS5kYXRhID0ge3Bvc2l0aW9uOiBkYXRhfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBUdXJuIGEgcDUgbG9jYXRpb24gaW50byBhIHBvc2l0aW9uLlxuICpcbiAqIEBwYXJhbSB7UDVMb2NhdGlvbn0gbG9jXG4gKiAgIExvY2F0aW9uLlxuICogQHJldHVybnMge1Bvc2l0aW9uIHwgdW5kZWZpbmVkfVxuICogICBQb3NpdGlvbiBvciBub3RoaW5nLlxuICovXG5mdW5jdGlvbiBwb3NpdGlvbihsb2MpIHtcbiAgY29uc3Qgc3RhcnQgPSBwb2ludCh7XG4gICAgbGluZTogbG9jLnN0YXJ0TGluZSxcbiAgICBjb2x1bW46IGxvYy5zdGFydENvbCxcbiAgICBvZmZzZXQ6IGxvYy5zdGFydE9mZnNldFxuICB9KVxuICBjb25zdCBlbmQgPSBwb2ludCh7XG4gICAgbGluZTogbG9jLmVuZExpbmUsXG4gICAgY29sdW1uOiBsb2MuZW5kQ29sLFxuICAgIG9mZnNldDogbG9jLmVuZE9mZnNldFxuICB9KVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IHdlIGRvIHVzZSBgdW5kZWZpbmVkYCBmb3IgcG9pbnRzIGlmIG9uZSBvciB0aGUgb3RoZXJcbiAgLy8gZXhpc3RzLlxuICByZXR1cm4gc3RhcnQgfHwgZW5kID8ge3N0YXJ0LCBlbmR9IDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogRmlsdGVyIG91dCBpbnZhbGlkIHBvaW50cy5cbiAqXG4gKiBAcGFyYW0ge1BvaW50fSBwb2ludFxuICogICBQb2ludCB3aXRoIHBvdGVudGlhbGx5IGB1bmRlZmluZWRgIHZhbHVlcy5cbiAqIEByZXR1cm5zIHtQb2ludCB8IHVuZGVmaW5lZH1cbiAqICAgUG9pbnQgb3Igbm90aGluZy5cbiAqL1xuZnVuY3Rpb24gcG9pbnQocG9pbnQpIHtcbiAgcmV0dXJuIHBvaW50LmxpbmUgJiYgcG9pbnQuY29sdW1uID8gcG9pbnQgOiB1bmRlZmluZWRcbn1cbiIsICJjb25zdCBVTkRFRklORURfQ09ERV9QT0lOVFMgPSBuZXcgU2V0KFtcbiAgICA2NTUzNCwgNjU1MzUsIDEzMTA3MCwgMTMxMDcxLCAxOTY2MDYsIDE5NjYwNywgMjYyMTQyLCAyNjIxNDMsIDMyNzY3OCwgMzI3Njc5LCAzOTMyMTQsXG4gICAgMzkzMjE1LCA0NTg3NTAsIDQ1ODc1MSwgNTI0Mjg2LCA1MjQyODcsIDU4OTgyMiwgNTg5ODIzLCA2NTUzNTgsIDY1NTM1OSwgNzIwODk0LFxuICAgIDcyMDg5NSwgNzg2NDMwLCA3ODY0MzEsIDg1MTk2NiwgODUxOTY3LCA5MTc1MDIsIDkxNzUwMywgOTgzMDM4LCA5ODMwMzksIDEwNDg1NzQsXG4gICAgMTA0ODU3NSwgMTExNDExMCwgMTExNDExMSxcbl0pO1xuZXhwb3J0IGNvbnN0IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiA9ICdcXHVGRkZEJztcbmV4cG9ydCB2YXIgQ09ERV9QT0lOVFM7XG4oZnVuY3Rpb24gKENPREVfUE9JTlRTKSB7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFT0ZcIl0gPSAtMV0gPSBcIkVPRlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTlVMTFwiXSA9IDBdID0gXCJOVUxMXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJUQUJVTEFUSU9OXCJdID0gOV0gPSBcIlRBQlVMQVRJT05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkNBUlJJQUdFX1JFVFVSTlwiXSA9IDEzXSA9IFwiQ0FSUklBR0VfUkVUVVJOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMSU5FX0ZFRURcIl0gPSAxMF0gPSBcIkxJTkVfRkVFRFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRk9STV9GRUVEXCJdID0gMTJdID0gXCJGT1JNX0ZFRURcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlNQQUNFXCJdID0gMzJdID0gXCJTUEFDRVwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRVhDTEFNQVRJT05fTUFSS1wiXSA9IDMzXSA9IFwiRVhDTEFNQVRJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiUVVPVEFUSU9OX01BUktcIl0gPSAzNF0gPSBcIlFVT1RBVElPTl9NQVJLXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJOVU1CRVJfU0lHTlwiXSA9IDM1XSA9IFwiTlVNQkVSX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkFNUEVSU0FORFwiXSA9IDM4XSA9IFwiQU1QRVJTQU5EXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJBUE9TVFJPUEhFXCJdID0gMzldID0gXCJBUE9TVFJPUEhFXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJIWVBIRU5fTUlOVVNcIl0gPSA0NV0gPSBcIkhZUEhFTl9NSU5VU1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiU09MSURVU1wiXSA9IDQ3XSA9IFwiU09MSURVU1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRElHSVRfMFwiXSA9IDQ4XSA9IFwiRElHSVRfMFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRElHSVRfOVwiXSA9IDU3XSA9IFwiRElHSVRfOVwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiU0VNSUNPTE9OXCJdID0gNTldID0gXCJTRU1JQ09MT05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxFU1NfVEhBTl9TSUdOXCJdID0gNjBdID0gXCJMRVNTX1RIQU5fU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRVFVQUxTX1NJR05cIl0gPSA2MV0gPSBcIkVRVUFMU19TSUdOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJHUkVBVEVSX1RIQU5fU0lHTlwiXSA9IDYyXSA9IFwiR1JFQVRFUl9USEFOX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlFVRVNUSU9OX01BUktcIl0gPSA2M10gPSBcIlFVRVNUSU9OX01BUktcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfQVwiXSA9IDY1XSA9IFwiTEFUSU5fQ0FQSVRBTF9BXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9DQVBJVEFMX0ZcIl0gPSA3MF0gPSBcIkxBVElOX0NBUElUQUxfRlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9YXCJdID0gODhdID0gXCJMQVRJTl9DQVBJVEFMX1hcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfWlwiXSA9IDkwXSA9IFwiTEFUSU5fQ0FQSVRBTF9aXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJSSUdIVF9TUVVBUkVfQlJBQ0tFVFwiXSA9IDkzXSA9IFwiUklHSFRfU1FVQVJFX0JSQUNLRVRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkdSQVZFX0FDQ0VOVFwiXSA9IDk2XSA9IFwiR1JBVkVfQUNDRU5UXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9BXCJdID0gOTddID0gXCJMQVRJTl9TTUFMTF9BXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9GXCJdID0gMTAyXSA9IFwiTEFUSU5fU01BTExfRlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fU01BTExfWFwiXSA9IDEyMF0gPSBcIkxBVElOX1NNQUxMX1hcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX1pcIl0gPSAxMjJdID0gXCJMQVRJTl9TTUFMTF9aXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJSRVBMQUNFTUVOVF9DSEFSQUNURVJcIl0gPSA2NTUzM10gPSBcIlJFUExBQ0VNRU5UX0NIQVJBQ1RFUlwiO1xufSkoQ09ERV9QT0lOVFMgPSBDT0RFX1BPSU5UUyB8fCAoQ09ERV9QT0lOVFMgPSB7fSkpO1xuZXhwb3J0IGNvbnN0IFNFUVVFTkNFUyA9IHtcbiAgICBEQVNIX0RBU0g6ICctLScsXG4gICAgQ0RBVEFfU1RBUlQ6ICdbQ0RBVEFbJyxcbiAgICBET0NUWVBFOiAnZG9jdHlwZScsXG4gICAgU0NSSVBUOiAnc2NyaXB0JyxcbiAgICBQVUJMSUM6ICdwdWJsaWMnLFxuICAgIFNZU1RFTTogJ3N5c3RlbScsXG59O1xuLy9TdXJyb2dhdGVzXG5leHBvcnQgZnVuY3Rpb24gaXNTdXJyb2dhdGUoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gNTUyOTYgJiYgY3AgPD0gNTczNDM7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNTdXJyb2dhdGVQYWlyKGNwKSB7XG4gICAgcmV0dXJuIGNwID49IDU2MzIwICYmIGNwIDw9IDU3MzQzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFN1cnJvZ2F0ZVBhaXJDb2RlUG9pbnQoY3AxLCBjcDIpIHtcbiAgICByZXR1cm4gKGNwMSAtIDU1Mjk2KSAqIDEwMjQgKyA5MjE2ICsgY3AyO1xufVxuLy9OT1RFOiBleGNsdWRpbmcgTlVMTCBhbmQgQVNDSUkgd2hpdGVzcGFjZVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbENvZGVQb2ludChjcCkge1xuICAgIHJldHVybiAoKGNwICE9PSAweDIwICYmIGNwICE9PSAweDBhICYmIGNwICE9PSAweDBkICYmIGNwICE9PSAweDA5ICYmIGNwICE9PSAweDBjICYmIGNwID49IDB4MDEgJiYgY3AgPD0gMHgxZikgfHxcbiAgICAgICAgKGNwID49IDB4N2YgJiYgY3AgPD0gMHg5ZikpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkQ29kZVBvaW50KGNwKSB7XG4gICAgcmV0dXJuIChjcCA+PSA2NDk3NiAmJiBjcCA8PSA2NTAwNykgfHwgVU5ERUZJTkVEX0NPREVfUE9JTlRTLmhhcyhjcCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11bmljb2RlLmpzLm1hcCIsICJleHBvcnQgdmFyIEVSUjtcbihmdW5jdGlvbiAoRVJSKSB7XG4gICAgRVJSW1wiY29udHJvbENoYXJhY3RlckluSW5wdXRTdHJlYW1cIl0gPSBcImNvbnRyb2wtY2hhcmFjdGVyLWluLWlucHV0LXN0cmVhbVwiO1xuICAgIEVSUltcIm5vbmNoYXJhY3RlckluSW5wdXRTdHJlYW1cIl0gPSBcIm5vbmNoYXJhY3Rlci1pbi1pbnB1dC1zdHJlYW1cIjtcbiAgICBFUlJbXCJzdXJyb2dhdGVJbklucHV0U3RyZWFtXCJdID0gXCJzdXJyb2dhdGUtaW4taW5wdXQtc3RyZWFtXCI7XG4gICAgRVJSW1wibm9uVm9pZEh0bWxFbGVtZW50U3RhcnRUYWdXaXRoVHJhaWxpbmdTb2xpZHVzXCJdID0gXCJub24tdm9pZC1odG1sLWVsZW1lbnQtc3RhcnQtdGFnLXdpdGgtdHJhaWxpbmctc29saWR1c1wiO1xuICAgIEVSUltcImVuZFRhZ1dpdGhBdHRyaWJ1dGVzXCJdID0gXCJlbmQtdGFnLXdpdGgtYXR0cmlidXRlc1wiO1xuICAgIEVSUltcImVuZFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXNcIl0gPSBcImVuZC10YWctd2l0aC10cmFpbGluZy1zb2xpZHVzXCI7XG4gICAgRVJSW1widW5leHBlY3RlZFNvbGlkdXNJblRhZ1wiXSA9IFwidW5leHBlY3RlZC1zb2xpZHVzLWluLXRhZ1wiO1xuICAgIEVSUltcInVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyXCJdID0gXCJ1bmV4cGVjdGVkLW51bGwtY2hhcmFjdGVyXCI7XG4gICAgRVJSW1widW5leHBlY3RlZFF1ZXN0aW9uTWFya0luc3RlYWRPZlRhZ05hbWVcIl0gPSBcInVuZXhwZWN0ZWQtcXVlc3Rpb24tbWFyay1pbnN0ZWFkLW9mLXRhZy1uYW1lXCI7XG4gICAgRVJSW1wiaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lXCJdID0gXCJpbnZhbGlkLWZpcnN0LWNoYXJhY3Rlci1vZi10YWctbmFtZVwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRFcXVhbHNTaWduQmVmb3JlQXR0cmlidXRlTmFtZVwiXSA9IFwidW5leHBlY3RlZC1lcXVhbHMtc2lnbi1iZWZvcmUtYXR0cmlidXRlLW5hbWVcIjtcbiAgICBFUlJbXCJtaXNzaW5nRW5kVGFnTmFtZVwiXSA9IFwibWlzc2luZy1lbmQtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkQ2hhcmFjdGVySW5BdHRyaWJ1dGVOYW1lXCJdID0gXCJ1bmV4cGVjdGVkLWNoYXJhY3Rlci1pbi1hdHRyaWJ1dGUtbmFtZVwiO1xuICAgIEVSUltcInVua25vd25OYW1lZENoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwidW5rbm93bi1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1wibWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJtaXNzaW5nLXNlbWljb2xvbi1hZnRlci1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1widW5leHBlY3RlZENoYXJhY3RlckFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWFmdGVyLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkQ2hhcmFjdGVySW5VbnF1b3RlZEF0dHJpYnV0ZVZhbHVlXCJdID0gXCJ1bmV4cGVjdGVkLWNoYXJhY3Rlci1pbi11bnF1b3RlZC1hdHRyaWJ1dGUtdmFsdWVcIjtcbiAgICBFUlJbXCJlb2ZCZWZvcmVUYWdOYW1lXCJdID0gXCJlb2YtYmVmb3JlLXRhZy1uYW1lXCI7XG4gICAgRVJSW1wiZW9mSW5UYWdcIl0gPSBcImVvZi1pbi10YWdcIjtcbiAgICBFUlJbXCJtaXNzaW5nQXR0cmlidXRlVmFsdWVcIl0gPSBcIm1pc3NpbmctYXR0cmlidXRlLXZhbHVlXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuQXR0cmlidXRlc1wiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWJldHdlZW4tYXR0cmlidXRlc1wiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZFwiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWFmdGVyLWRvY3R5cGUtcHVibGljLWtleXdvcmRcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnNcIl0gPSBcIm1pc3Npbmctd2hpdGVzcGFjZS1iZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnNcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmRcIl0gPSBcIm1pc3Npbmctd2hpdGVzcGFjZS1hZnRlci1kb2N0eXBlLXN5c3RlbS1rZXl3b3JkXCI7XG4gICAgRVJSW1wibWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJcIl0gPSBcIm1pc3NpbmctcXVvdGUtYmVmb3JlLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1xdW90ZS1iZWZvcmUtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlUHVibGljSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wibWlzc2luZ0RvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJhYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllclwiXSA9IFwiYWJydXB0LWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJhYnJ1cHREb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwiYWJydXB0LWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJjZGF0YUluSHRtbENvbnRlbnRcIl0gPSBcImNkYXRhLWluLWh0bWwtY29udGVudFwiO1xuICAgIEVSUltcImluY29ycmVjdGx5T3BlbmVkQ29tbWVudFwiXSA9IFwiaW5jb3JyZWN0bHktb3BlbmVkLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJlb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHRcIl0gPSBcImVvZi1pbi1zY3JpcHQtaHRtbC1jb21tZW50LWxpa2UtdGV4dFwiO1xuICAgIEVSUltcImVvZkluRG9jdHlwZVwiXSA9IFwiZW9mLWluLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJuZXN0ZWRDb21tZW50XCJdID0gXCJuZXN0ZWQtY29tbWVudFwiO1xuICAgIEVSUltcImFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudFwiXSA9IFwiYWJydXB0LWNsb3Npbmctb2YtZW1wdHktY29tbWVudFwiO1xuICAgIEVSUltcImVvZkluQ29tbWVudFwiXSA9IFwiZW9mLWluLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJpbmNvcnJlY3RseUNsb3NlZENvbW1lbnRcIl0gPSBcImluY29ycmVjdGx5LWNsb3NlZC1jb21tZW50XCI7XG4gICAgRVJSW1wiZW9mSW5DZGF0YVwiXSA9IFwiZW9mLWluLWNkYXRhXCI7XG4gICAgRVJSW1wiYWJzZW5jZU9mRGlnaXRzSW5OdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJhYnNlbmNlLW9mLWRpZ2l0cy1pbi1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJudWxsQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJudWxsLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJzdXJyb2dhdGVDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcInN1cnJvZ2F0ZS1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1wiY2hhcmFjdGVyUmVmZXJlbmNlT3V0c2lkZVVuaWNvZGVSYW5nZVwiXSA9IFwiY2hhcmFjdGVyLXJlZmVyZW5jZS1vdXRzaWRlLXVuaWNvZGUtcmFuZ2VcIjtcbiAgICBFUlJbXCJjb250cm9sQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJjb250cm9sLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJub25jaGFyYWN0ZXJDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm5vbmNoYXJhY3Rlci1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VCZWZvcmVEb2N0eXBlTmFtZVwiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWJlZm9yZS1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZU5hbWVcIl0gPSBcIm1pc3NpbmctZG9jdHlwZS1uYW1lXCI7XG4gICAgRVJSW1wiaW52YWxpZENoYXJhY3RlclNlcXVlbmNlQWZ0ZXJEb2N0eXBlTmFtZVwiXSA9IFwiaW52YWxpZC1jaGFyYWN0ZXItc2VxdWVuY2UtYWZ0ZXItZG9jdHlwZS1uYW1lXCI7XG4gICAgRVJSW1wiZHVwbGljYXRlQXR0cmlidXRlXCJdID0gXCJkdXBsaWNhdGUtYXR0cmlidXRlXCI7XG4gICAgRVJSW1wibm9uQ29uZm9ybWluZ0RvY3R5cGVcIl0gPSBcIm5vbi1jb25mb3JtaW5nLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZVwiXSA9IFwibWlzc2luZy1kb2N0eXBlXCI7XG4gICAgRVJSW1wibWlzcGxhY2VkRG9jdHlwZVwiXSA9IFwibWlzcGxhY2VkLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJlbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudFwiXSA9IFwiZW5kLXRhZy13aXRob3V0LW1hdGNoaW5nLW9wZW4tZWxlbWVudFwiO1xuICAgIEVSUltcImNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHNcIl0gPSBcImNsb3Npbmctb2YtZWxlbWVudC13aXRoLW9wZW4tY2hpbGQtZWxlbWVudHNcIjtcbiAgICBFUlJbXCJkaXNhbGxvd2VkQ29udGVudEluTm9zY3JpcHRJbkhlYWRcIl0gPSBcImRpc2FsbG93ZWQtY29udGVudC1pbi1ub3NjcmlwdC1pbi1oZWFkXCI7XG4gICAgRVJSW1wib3BlbkVsZW1lbnRzTGVmdEFmdGVyRW9mXCJdID0gXCJvcGVuLWVsZW1lbnRzLWxlZnQtYWZ0ZXItZW9mXCI7XG4gICAgRVJSW1wiYWJhbmRvbmVkSGVhZEVsZW1lbnRDaGlsZFwiXSA9IFwiYWJhbmRvbmVkLWhlYWQtZWxlbWVudC1jaGlsZFwiO1xuICAgIEVSUltcIm1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnRcIl0gPSBcIm1pc3BsYWNlZC1zdGFydC10YWctZm9yLWhlYWQtZWxlbWVudFwiO1xuICAgIEVSUltcIm5lc3RlZE5vc2NyaXB0SW5IZWFkXCJdID0gXCJuZXN0ZWQtbm9zY3JpcHQtaW4taGVhZFwiO1xuICAgIEVSUltcImVvZkluRWxlbWVudFRoYXRDYW5Db250YWluT25seVRleHRcIl0gPSBcImVvZi1pbi1lbGVtZW50LXRoYXQtY2FuLWNvbnRhaW4tb25seS10ZXh0XCI7XG59KShFUlIgPSBFUlIgfHwgKEVSUiA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvci1jb2Rlcy5qcy5tYXAiLCAiaW1wb3J0IHsgQ09ERV9QT0lOVFMgYXMgJCwgZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludCwgaXNDb250cm9sQ29kZVBvaW50LCBpc1N1cnJvZ2F0ZSwgaXNTdXJyb2dhdGVQYWlyLCBpc1VuZGVmaW5lZENvZGVQb2ludCwgfSBmcm9tICcuLi9jb21tb24vdW5pY29kZS5qcyc7XG5pbXBvcnQgeyBFUlIgfSBmcm9tICcuLi9jb21tb24vZXJyb3ItY29kZXMuanMnO1xuLy9Db25zdFxuY29uc3QgREVGQVVMVF9CVUZGRVJfV0FURVJMSU5FID0gMSA8PCAxNjtcbi8vUHJlcHJvY2Vzc29yXG4vL05PVEU6IEhUTUwgaW5wdXQgcHJlcHJvY2Vzc2luZ1xuLy8oc2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtKVxuZXhwb3J0IGNsYXNzIFByZXByb2Nlc3NvciB7XG4gICAgY29uc3RydWN0b3IoaGFuZGxlcikge1xuICAgICAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB0aGlzLmh0bWwgPSAnJztcbiAgICAgICAgdGhpcy5wb3MgPSAtMTtcbiAgICAgICAgLy8gTk9URTogSW5pdGlhbCBgbGFzdEdhcFBvc2AgaXMgLTIsIHRvIGVuc3VyZSBgY29sYCBvbiBpbml0aWFsaXNhdGlvbiBpcyAwXG4gICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IC0yO1xuICAgICAgICB0aGlzLmdhcFN0YWNrID0gW107XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdENodW5rV3JpdHRlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idWZmZXJXYXRlcmxpbmUgPSBERUZBVUxUX0JVRkZFUl9XQVRFUkxJTkU7XG4gICAgICAgIHRoaXMuaXNFb2wgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5saW5lU3RhcnRQb3MgPSAwO1xuICAgICAgICB0aGlzLmRyb3BwZWRCdWZmZXJTaXplID0gMDtcbiAgICAgICAgdGhpcy5saW5lID0gMTtcbiAgICAgICAgLy9OT1RFOiBhdm9pZCByZXBvcnRpbmcgZXJyb3JzIHR3aWNlIG9uIGFkdmFuY2UvcmV0cmVhdFxuICAgICAgICB0aGlzLmxhc3RFcnJPZmZzZXQgPSAtMTtcbiAgICB9XG4gICAgLyoqIFRoZSBjb2x1bW4gb24gdGhlIGN1cnJlbnQgbGluZS4gSWYgd2UganVzdCBzYXcgYSBnYXAgKGVnLiBhIHN1cnJvZ2F0ZSBwYWlyKSwgcmV0dXJuIHRoZSBpbmRleCBiZWZvcmUuICovXG4gICAgZ2V0IGNvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zIC0gdGhpcy5saW5lU3RhcnRQb3MgKyBOdW1iZXIodGhpcy5sYXN0R2FwUG9zICE9PSB0aGlzLnBvcyk7XG4gICAgfVxuICAgIGdldCBvZmZzZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRyb3BwZWRCdWZmZXJTaXplICsgdGhpcy5wb3M7XG4gICAgfVxuICAgIGdldEVycm9yKGNvZGUpIHtcbiAgICAgICAgY29uc3QgeyBsaW5lLCBjb2wsIG9mZnNldCB9ID0gdGhpcztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICBzdGFydExpbmU6IGxpbmUsXG4gICAgICAgICAgICBlbmRMaW5lOiBsaW5lLFxuICAgICAgICAgICAgc3RhcnRDb2w6IGNvbCxcbiAgICAgICAgICAgIGVuZENvbDogY29sLFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IG9mZnNldCxcbiAgICAgICAgICAgIGVuZE9mZnNldDogb2Zmc2V0LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfZXJyKGNvZGUpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlci5vblBhcnNlRXJyb3IgJiYgdGhpcy5sYXN0RXJyT2Zmc2V0ICE9PSB0aGlzLm9mZnNldCkge1xuICAgICAgICAgICAgdGhpcy5sYXN0RXJyT2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25QYXJzZUVycm9yKHRoaXMuZ2V0RXJyb3IoY29kZSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9hZGRHYXAoKSB7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sucHVzaCh0aGlzLmxhc3RHYXBQb3MpO1xuICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLnBvcztcbiAgICB9XG4gICAgX3Byb2Nlc3NTdXJyb2dhdGUoY3ApIHtcbiAgICAgICAgLy9OT1RFOiB0cnkgdG8gcGVlayBhIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICAgIGlmICh0aGlzLnBvcyAhPT0gdGhpcy5odG1sLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRDcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zICsgMSk7XG4gICAgICAgICAgICBpZiAoaXNTdXJyb2dhdGVQYWlyKG5leHRDcCkpIHtcbiAgICAgICAgICAgICAgICAvL05PVEU6IHdlIGhhdmUgYSBzdXJyb2dhdGUgcGFpci4gUGVlayBwYWlyIGNoYXJhY3RlciBhbmQgcmVjYWxjdWxhdGUgY29kZSBwb2ludC5cbiAgICAgICAgICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICAgICAgICAgIC8vTk9URTogYWRkIGEgZ2FwIHRoYXQgc2hvdWxkIGJlIGF2b2lkZWQgZHVyaW5nIHJldHJlYXRcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRHYXAoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcCwgbmV4dENwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IHdlIGFyZSBhdCB0aGUgZW5kIG9mIGEgY2h1bmssIHRoZXJlZm9yZSB3ZSBjYW4ndCBpbmZlciB0aGUgc3Vycm9nYXRlIHBhaXIgeWV0LlxuICAgICAgICBlbHNlIGlmICghdGhpcy5sYXN0Q2h1bmtXcml0dGVuKSB7XG4gICAgICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuICQuRU9GO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogaXNvbGF0ZWQgc3Vycm9nYXRlXG4gICAgICAgIHRoaXMuX2VycihFUlIuc3Vycm9nYXRlSW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIHJldHVybiBjcDtcbiAgICB9XG4gICAgd2lsbERyb3BQYXJzZWRDaHVuaygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zID4gdGhpcy5idWZmZXJXYXRlcmxpbmU7XG4gICAgfVxuICAgIGRyb3BQYXJzZWRDaHVuaygpIHtcbiAgICAgICAgaWYgKHRoaXMud2lsbERyb3BQYXJzZWRDaHVuaygpKSB7XG4gICAgICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKHRoaXMucG9zKTtcbiAgICAgICAgICAgIHRoaXMubGluZVN0YXJ0UG9zIC09IHRoaXMucG9zO1xuICAgICAgICAgICAgdGhpcy5kcm9wcGVkQnVmZmVyU2l6ZSArPSB0aGlzLnBvcztcbiAgICAgICAgICAgIHRoaXMucG9zID0gMDtcbiAgICAgICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IC0yO1xuICAgICAgICAgICAgdGhpcy5nYXBTdGFjay5sZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlKGNodW5rLCBpc0xhc3RDaHVuaykge1xuICAgICAgICBpZiAodGhpcy5odG1sLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCArPSBjaHVuaztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCA9IGNodW5rO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxhc3RDaHVua1dyaXR0ZW4gPSBpc0xhc3RDaHVuaztcbiAgICB9XG4gICAgaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuaykge1xuICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKDAsIHRoaXMucG9zICsgMSkgKyBjaHVuayArIHRoaXMuaHRtbC5zdWJzdHJpbmcodGhpcy5wb3MgKyAxKTtcbiAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG4gICAgfVxuICAgIHN0YXJ0c1dpdGgocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICAvLyBDaGVjayBpZiBvdXIgYnVmZmVyIGhhcyBlbm91Z2ggY2hhcmFjdGVyc1xuICAgICAgICBpZiAodGhpcy5wb3MgKyBwYXR0ZXJuLmxlbmd0aCA+IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0bWwuc3RhcnRzV2l0aChwYXR0ZXJuLCB0aGlzLnBvcyk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zICsgaSkgfCAweDIwO1xuICAgICAgICAgICAgaWYgKGNwICE9PSBwYXR0ZXJuLmNoYXJDb2RlQXQoaSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHBlZWsob2Zmc2V0KSB7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMucG9zICsgb2Zmc2V0O1xuICAgICAgICBpZiAocG9zID49IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29kZSA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHBvcyk7XG4gICAgICAgIHJldHVybiBjb2RlID09PSAkLkNBUlJJQUdFX1JFVFVSTiA/ICQuTElORV9GRUVEIDogY29kZTtcbiAgICB9XG4gICAgYWR2YW5jZSgpIHtcbiAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgLy9OT1RFOiBMRiBzaG91bGQgYmUgaW4gdGhlIGxhc3QgY29sdW1uIG9mIHRoZSBsaW5lXG4gICAgICAgIGlmICh0aGlzLmlzRW9sKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW9sID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmxpbmUrKztcbiAgICAgICAgICAgIHRoaXMubGluZVN0YXJ0UG9zID0gdGhpcy5wb3M7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zID49IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGNwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MpO1xuICAgICAgICAvL05PVEU6IGFsbCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgY2hhcmFjdGVycyBtdXN0IGJlIGNvbnZlcnRlZCB0byBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyc1xuICAgICAgICBpZiAoY3AgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW9sID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiAkLkxJTkVfRkVFRDtcbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IGFueSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVycyB0aGF0IGltbWVkaWF0ZWx5IGZvbGxvdyBhIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSBjaGFyYWN0ZXJcbiAgICAgICAgLy9tdXN0IGJlIGlnbm9yZWQuXG4gICAgICAgIGlmIChjcCA9PT0gJC5MSU5FX0ZFRUQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2tpcE5leHROZXdMaW5lKSB7XG4gICAgICAgICAgICAgICAgLy8gYGxpbmVgIHdpbGwgYmUgYnVtcGVkIGFnYWluIGluIHRoZSByZWN1cnNpdmUgY2FsbC5cbiAgICAgICAgICAgICAgICB0aGlzLmxpbmUtLTtcbiAgICAgICAgICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEdhcCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFkdmFuY2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBpZiAoaXNTdXJyb2dhdGUoY3ApKSB7XG4gICAgICAgICAgICBjcCA9IHRoaXMuX3Byb2Nlc3NTdXJyb2dhdGUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIC8vT1BUSU1JWkFUSU9OOiBmaXJzdCBjaGVjayBpZiBjb2RlIHBvaW50IGlzIGluIHRoZSBjb21tb24gYWxsb3dlZFxuICAgICAgICAvL3JhbmdlIChBU0NJSSBhbHBoYW51bWVyaWMsIHdoaXRlc3BhY2VzLCBiaWcgY2h1bmsgb2YgQk1QKVxuICAgICAgICAvL2JlZm9yZSBnb2luZyBpbnRvIGRldGFpbGVkIHBlcmZvcm1hbmNlIGNvc3QgdmFsaWRhdGlvbi5cbiAgICAgICAgY29uc3QgaXNDb21tb25WYWxpZFJhbmdlID0gdGhpcy5oYW5kbGVyLm9uUGFyc2VFcnJvciA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgKGNwID4gMHgxZiAmJiBjcCA8IDB4N2YpIHx8XG4gICAgICAgICAgICBjcCA9PT0gJC5MSU5FX0ZFRUQgfHxcbiAgICAgICAgICAgIGNwID09PSAkLkNBUlJJQUdFX1JFVFVSTiB8fFxuICAgICAgICAgICAgKGNwID4gMHg5ZiAmJiBjcCA8IDY0OTc2KTtcbiAgICAgICAgaWYgKCFpc0NvbW1vblZhbGlkUmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrRm9yUHJvYmxlbWF0aWNDaGFyYWN0ZXJzKGNwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3A7XG4gICAgfVxuICAgIF9jaGVja0ZvclByb2JsZW1hdGljQ2hhcmFjdGVycyhjcCkge1xuICAgICAgICBpZiAoaXNDb250cm9sQ29kZVBvaW50KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNVbmRlZmluZWRDb2RlUG9pbnQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5vbmNoYXJhY3RlckluSW5wdXRTdHJlYW0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHJlYXQoY291bnQpIHtcbiAgICAgICAgdGhpcy5wb3MgLT0gY291bnQ7XG4gICAgICAgIHdoaWxlICh0aGlzLnBvcyA8IHRoaXMubGFzdEdhcFBvcykge1xuICAgICAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gdGhpcy5nYXBTdGFjay5wb3AoKTtcbiAgICAgICAgICAgIHRoaXMucG9zLS07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZXByb2Nlc3Nvci5qcy5tYXAiLCAiZXhwb3J0IHZhciBUb2tlblR5cGU7XG4oZnVuY3Rpb24gKFRva2VuVHlwZSkge1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJDSEFSQUNURVJcIl0gPSAwXSA9IFwiQ0hBUkFDVEVSXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIk5VTExfQ0hBUkFDVEVSXCJdID0gMV0gPSBcIk5VTExfQ0hBUkFDVEVSXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIldISVRFU1BBQ0VfQ0hBUkFDVEVSXCJdID0gMl0gPSBcIldISVRFU1BBQ0VfQ0hBUkFDVEVSXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIlNUQVJUX1RBR1wiXSA9IDNdID0gXCJTVEFSVF9UQUdcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiRU5EX1RBR1wiXSA9IDRdID0gXCJFTkRfVEFHXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNPTU1FTlRcIl0gPSA1XSA9IFwiQ09NTUVOVFwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJET0NUWVBFXCJdID0gNl0gPSBcIkRPQ1RZUEVcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiRU9GXCJdID0gN10gPSBcIkVPRlwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJISUJFUk5BVElPTlwiXSA9IDhdID0gXCJISUJFUk5BVElPTlwiO1xufSkoVG9rZW5UeXBlID0gVG9rZW5UeXBlIHx8IChUb2tlblR5cGUgPSB7fSkpO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRva2VuQXR0cih0b2tlbiwgYXR0ck5hbWUpIHtcbiAgICBmb3IgKGxldCBpID0gdG9rZW4uYXR0cnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgaWYgKHRva2VuLmF0dHJzW2ldLm5hbWUgPT09IGF0dHJOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW4uYXR0cnNbaV0udmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD10b2tlbi5qcy5tYXAiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiLyoqIEFsbCB2YWxpZCBuYW1lc3BhY2VzIGluIEhUTUwuICovXG5leHBvcnQgdmFyIE5TO1xuKGZ1bmN0aW9uIChOUykge1xuICAgIE5TW1wiSFRNTFwiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiO1xuICAgIE5TW1wiTUFUSE1MXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI7XG4gICAgTlNbXCJTVkdcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI7XG4gICAgTlNbXCJYTElOS1wiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiO1xuICAgIE5TW1wiWE1MXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIjtcbiAgICBOU1tcIlhNTE5TXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zL1wiO1xufSkoTlMgPSBOUyB8fCAoTlMgPSB7fSkpO1xuZXhwb3J0IHZhciBBVFRSUztcbihmdW5jdGlvbiAoQVRUUlMpIHtcbiAgICBBVFRSU1tcIlRZUEVcIl0gPSBcInR5cGVcIjtcbiAgICBBVFRSU1tcIkFDVElPTlwiXSA9IFwiYWN0aW9uXCI7XG4gICAgQVRUUlNbXCJFTkNPRElOR1wiXSA9IFwiZW5jb2RpbmdcIjtcbiAgICBBVFRSU1tcIlBST01QVFwiXSA9IFwicHJvbXB0XCI7XG4gICAgQVRUUlNbXCJOQU1FXCJdID0gXCJuYW1lXCI7XG4gICAgQVRUUlNbXCJDT0xPUlwiXSA9IFwiY29sb3JcIjtcbiAgICBBVFRSU1tcIkZBQ0VcIl0gPSBcImZhY2VcIjtcbiAgICBBVFRSU1tcIlNJWkVcIl0gPSBcInNpemVcIjtcbn0pKEFUVFJTID0gQVRUUlMgfHwgKEFUVFJTID0ge30pKTtcbi8qKlxuICogVGhlIG1vZGUgb2YgdGhlIGRvY3VtZW50LlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1kb2N1bWVudC1saW1pdGVkLXF1aXJrc31cbiAqL1xuZXhwb3J0IHZhciBET0NVTUVOVF9NT0RFO1xuKGZ1bmN0aW9uIChET0NVTUVOVF9NT0RFKSB7XG4gICAgRE9DVU1FTlRfTU9ERVtcIk5PX1FVSVJLU1wiXSA9IFwibm8tcXVpcmtzXCI7XG4gICAgRE9DVU1FTlRfTU9ERVtcIlFVSVJLU1wiXSA9IFwicXVpcmtzXCI7XG4gICAgRE9DVU1FTlRfTU9ERVtcIkxJTUlURURfUVVJUktTXCJdID0gXCJsaW1pdGVkLXF1aXJrc1wiO1xufSkoRE9DVU1FTlRfTU9ERSA9IERPQ1VNRU5UX01PREUgfHwgKERPQ1VNRU5UX01PREUgPSB7fSkpO1xuZXhwb3J0IHZhciBUQUdfTkFNRVM7XG4oZnVuY3Rpb24gKFRBR19OQU1FUykge1xuICAgIFRBR19OQU1FU1tcIkFcIl0gPSBcImFcIjtcbiAgICBUQUdfTkFNRVNbXCJBRERSRVNTXCJdID0gXCJhZGRyZXNzXCI7XG4gICAgVEFHX05BTUVTW1wiQU5OT1RBVElPTl9YTUxcIl0gPSBcImFubm90YXRpb24teG1sXCI7XG4gICAgVEFHX05BTUVTW1wiQVBQTEVUXCJdID0gXCJhcHBsZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJBUkVBXCJdID0gXCJhcmVhXCI7XG4gICAgVEFHX05BTUVTW1wiQVJUSUNMRVwiXSA9IFwiYXJ0aWNsZVwiO1xuICAgIFRBR19OQU1FU1tcIkFTSURFXCJdID0gXCJhc2lkZVwiO1xuICAgIFRBR19OQU1FU1tcIkJcIl0gPSBcImJcIjtcbiAgICBUQUdfTkFNRVNbXCJCQVNFXCJdID0gXCJiYXNlXCI7XG4gICAgVEFHX05BTUVTW1wiQkFTRUZPTlRcIl0gPSBcImJhc2Vmb250XCI7XG4gICAgVEFHX05BTUVTW1wiQkdTT1VORFwiXSA9IFwiYmdzb3VuZFwiO1xuICAgIFRBR19OQU1FU1tcIkJJR1wiXSA9IFwiYmlnXCI7XG4gICAgVEFHX05BTUVTW1wiQkxPQ0tRVU9URVwiXSA9IFwiYmxvY2txdW90ZVwiO1xuICAgIFRBR19OQU1FU1tcIkJPRFlcIl0gPSBcImJvZHlcIjtcbiAgICBUQUdfTkFNRVNbXCJCUlwiXSA9IFwiYnJcIjtcbiAgICBUQUdfTkFNRVNbXCJCVVRUT05cIl0gPSBcImJ1dHRvblwiO1xuICAgIFRBR19OQU1FU1tcIkNBUFRJT05cIl0gPSBcImNhcHRpb25cIjtcbiAgICBUQUdfTkFNRVNbXCJDRU5URVJcIl0gPSBcImNlbnRlclwiO1xuICAgIFRBR19OQU1FU1tcIkNPREVcIl0gPSBcImNvZGVcIjtcbiAgICBUQUdfTkFNRVNbXCJDT0xcIl0gPSBcImNvbFwiO1xuICAgIFRBR19OQU1FU1tcIkNPTEdST1VQXCJdID0gXCJjb2xncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIkREXCJdID0gXCJkZFwiO1xuICAgIFRBR19OQU1FU1tcIkRFU0NcIl0gPSBcImRlc2NcIjtcbiAgICBUQUdfTkFNRVNbXCJERVRBSUxTXCJdID0gXCJkZXRhaWxzXCI7XG4gICAgVEFHX05BTUVTW1wiRElBTE9HXCJdID0gXCJkaWFsb2dcIjtcbiAgICBUQUdfTkFNRVNbXCJESVJcIl0gPSBcImRpclwiO1xuICAgIFRBR19OQU1FU1tcIkRJVlwiXSA9IFwiZGl2XCI7XG4gICAgVEFHX05BTUVTW1wiRExcIl0gPSBcImRsXCI7XG4gICAgVEFHX05BTUVTW1wiRFRcIl0gPSBcImR0XCI7XG4gICAgVEFHX05BTUVTW1wiRU1cIl0gPSBcImVtXCI7XG4gICAgVEFHX05BTUVTW1wiRU1CRURcIl0gPSBcImVtYmVkXCI7XG4gICAgVEFHX05BTUVTW1wiRklFTERTRVRcIl0gPSBcImZpZWxkc2V0XCI7XG4gICAgVEFHX05BTUVTW1wiRklHQ0FQVElPTlwiXSA9IFwiZmlnY2FwdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIkZJR1VSRVwiXSA9IFwiZmlndXJlXCI7XG4gICAgVEFHX05BTUVTW1wiRk9OVFwiXSA9IFwiZm9udFwiO1xuICAgIFRBR19OQU1FU1tcIkZPT1RFUlwiXSA9IFwiZm9vdGVyXCI7XG4gICAgVEFHX05BTUVTW1wiRk9SRUlHTl9PQkpFQ1RcIl0gPSBcImZvcmVpZ25PYmplY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJGT1JNXCJdID0gXCJmb3JtXCI7XG4gICAgVEFHX05BTUVTW1wiRlJBTUVcIl0gPSBcImZyYW1lXCI7XG4gICAgVEFHX05BTUVTW1wiRlJBTUVTRVRcIl0gPSBcImZyYW1lc2V0XCI7XG4gICAgVEFHX05BTUVTW1wiSDFcIl0gPSBcImgxXCI7XG4gICAgVEFHX05BTUVTW1wiSDJcIl0gPSBcImgyXCI7XG4gICAgVEFHX05BTUVTW1wiSDNcIl0gPSBcImgzXCI7XG4gICAgVEFHX05BTUVTW1wiSDRcIl0gPSBcImg0XCI7XG4gICAgVEFHX05BTUVTW1wiSDVcIl0gPSBcImg1XCI7XG4gICAgVEFHX05BTUVTW1wiSDZcIl0gPSBcImg2XCI7XG4gICAgVEFHX05BTUVTW1wiSEVBRFwiXSA9IFwiaGVhZFwiO1xuICAgIFRBR19OQU1FU1tcIkhFQURFUlwiXSA9IFwiaGVhZGVyXCI7XG4gICAgVEFHX05BTUVTW1wiSEdST1VQXCJdID0gXCJoZ3JvdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJIUlwiXSA9IFwiaHJcIjtcbiAgICBUQUdfTkFNRVNbXCJIVE1MXCJdID0gXCJodG1sXCI7XG4gICAgVEFHX05BTUVTW1wiSVwiXSA9IFwiaVwiO1xuICAgIFRBR19OQU1FU1tcIklNR1wiXSA9IFwiaW1nXCI7XG4gICAgVEFHX05BTUVTW1wiSU1BR0VcIl0gPSBcImltYWdlXCI7XG4gICAgVEFHX05BTUVTW1wiSU5QVVRcIl0gPSBcImlucHV0XCI7XG4gICAgVEFHX05BTUVTW1wiSUZSQU1FXCJdID0gXCJpZnJhbWVcIjtcbiAgICBUQUdfTkFNRVNbXCJLRVlHRU5cIl0gPSBcImtleWdlblwiO1xuICAgIFRBR19OQU1FU1tcIkxBQkVMXCJdID0gXCJsYWJlbFwiO1xuICAgIFRBR19OQU1FU1tcIkxJXCJdID0gXCJsaVwiO1xuICAgIFRBR19OQU1FU1tcIkxJTktcIl0gPSBcImxpbmtcIjtcbiAgICBUQUdfTkFNRVNbXCJMSVNUSU5HXCJdID0gXCJsaXN0aW5nXCI7XG4gICAgVEFHX05BTUVTW1wiTUFJTlwiXSA9IFwibWFpblwiO1xuICAgIFRBR19OQU1FU1tcIk1BTElHTk1BUktcIl0gPSBcIm1hbGlnbm1hcmtcIjtcbiAgICBUQUdfTkFNRVNbXCJNQVJRVUVFXCJdID0gXCJtYXJxdWVlXCI7XG4gICAgVEFHX05BTUVTW1wiTUFUSFwiXSA9IFwibWF0aFwiO1xuICAgIFRBR19OQU1FU1tcIk1FTlVcIl0gPSBcIm1lbnVcIjtcbiAgICBUQUdfTkFNRVNbXCJNRVRBXCJdID0gXCJtZXRhXCI7XG4gICAgVEFHX05BTUVTW1wiTUdMWVBIXCJdID0gXCJtZ2x5cGhcIjtcbiAgICBUQUdfTkFNRVNbXCJNSVwiXSA9IFwibWlcIjtcbiAgICBUQUdfTkFNRVNbXCJNT1wiXSA9IFwibW9cIjtcbiAgICBUQUdfTkFNRVNbXCJNTlwiXSA9IFwibW5cIjtcbiAgICBUQUdfTkFNRVNbXCJNU1wiXSA9IFwibXNcIjtcbiAgICBUQUdfTkFNRVNbXCJNVEVYVFwiXSA9IFwibXRleHRcIjtcbiAgICBUQUdfTkFNRVNbXCJOQVZcIl0gPSBcIm5hdlwiO1xuICAgIFRBR19OQU1FU1tcIk5PQlJcIl0gPSBcIm5vYnJcIjtcbiAgICBUQUdfTkFNRVNbXCJOT0ZSQU1FU1wiXSA9IFwibm9mcmFtZXNcIjtcbiAgICBUQUdfTkFNRVNbXCJOT0VNQkVEXCJdID0gXCJub2VtYmVkXCI7XG4gICAgVEFHX05BTUVTW1wiTk9TQ1JJUFRcIl0gPSBcIm5vc2NyaXB0XCI7XG4gICAgVEFHX05BTUVTW1wiT0JKRUNUXCJdID0gXCJvYmplY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJPTFwiXSA9IFwib2xcIjtcbiAgICBUQUdfTkFNRVNbXCJPUFRHUk9VUFwiXSA9IFwib3B0Z3JvdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJPUFRJT05cIl0gPSBcIm9wdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIlBcIl0gPSBcInBcIjtcbiAgICBUQUdfTkFNRVNbXCJQQVJBTVwiXSA9IFwicGFyYW1cIjtcbiAgICBUQUdfTkFNRVNbXCJQTEFJTlRFWFRcIl0gPSBcInBsYWludGV4dFwiO1xuICAgIFRBR19OQU1FU1tcIlBSRVwiXSA9IFwicHJlXCI7XG4gICAgVEFHX05BTUVTW1wiUkJcIl0gPSBcInJiXCI7XG4gICAgVEFHX05BTUVTW1wiUlBcIl0gPSBcInJwXCI7XG4gICAgVEFHX05BTUVTW1wiUlRcIl0gPSBcInJ0XCI7XG4gICAgVEFHX05BTUVTW1wiUlRDXCJdID0gXCJydGNcIjtcbiAgICBUQUdfTkFNRVNbXCJSVUJZXCJdID0gXCJydWJ5XCI7XG4gICAgVEFHX05BTUVTW1wiU1wiXSA9IFwic1wiO1xuICAgIFRBR19OQU1FU1tcIlNDUklQVFwiXSA9IFwic2NyaXB0XCI7XG4gICAgVEFHX05BTUVTW1wiU0VDVElPTlwiXSA9IFwic2VjdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIlNFTEVDVFwiXSA9IFwic2VsZWN0XCI7XG4gICAgVEFHX05BTUVTW1wiU09VUkNFXCJdID0gXCJzb3VyY2VcIjtcbiAgICBUQUdfTkFNRVNbXCJTTUFMTFwiXSA9IFwic21hbGxcIjtcbiAgICBUQUdfTkFNRVNbXCJTUEFOXCJdID0gXCJzcGFuXCI7XG4gICAgVEFHX05BTUVTW1wiU1RSSUtFXCJdID0gXCJzdHJpa2VcIjtcbiAgICBUQUdfTkFNRVNbXCJTVFJPTkdcIl0gPSBcInN0cm9uZ1wiO1xuICAgIFRBR19OQU1FU1tcIlNUWUxFXCJdID0gXCJzdHlsZVwiO1xuICAgIFRBR19OQU1FU1tcIlNVQlwiXSA9IFwic3ViXCI7XG4gICAgVEFHX05BTUVTW1wiU1VNTUFSWVwiXSA9IFwic3VtbWFyeVwiO1xuICAgIFRBR19OQU1FU1tcIlNVUFwiXSA9IFwic3VwXCI7XG4gICAgVEFHX05BTUVTW1wiVEFCTEVcIl0gPSBcInRhYmxlXCI7XG4gICAgVEFHX05BTUVTW1wiVEJPRFlcIl0gPSBcInRib2R5XCI7XG4gICAgVEFHX05BTUVTW1wiVEVNUExBVEVcIl0gPSBcInRlbXBsYXRlXCI7XG4gICAgVEFHX05BTUVTW1wiVEVYVEFSRUFcIl0gPSBcInRleHRhcmVhXCI7XG4gICAgVEFHX05BTUVTW1wiVEZPT1RcIl0gPSBcInRmb290XCI7XG4gICAgVEFHX05BTUVTW1wiVERcIl0gPSBcInRkXCI7XG4gICAgVEFHX05BTUVTW1wiVEhcIl0gPSBcInRoXCI7XG4gICAgVEFHX05BTUVTW1wiVEhFQURcIl0gPSBcInRoZWFkXCI7XG4gICAgVEFHX05BTUVTW1wiVElUTEVcIl0gPSBcInRpdGxlXCI7XG4gICAgVEFHX05BTUVTW1wiVFJcIl0gPSBcInRyXCI7XG4gICAgVEFHX05BTUVTW1wiVFJBQ0tcIl0gPSBcInRyYWNrXCI7XG4gICAgVEFHX05BTUVTW1wiVFRcIl0gPSBcInR0XCI7XG4gICAgVEFHX05BTUVTW1wiVVwiXSA9IFwidVwiO1xuICAgIFRBR19OQU1FU1tcIlVMXCJdID0gXCJ1bFwiO1xuICAgIFRBR19OQU1FU1tcIlNWR1wiXSA9IFwic3ZnXCI7XG4gICAgVEFHX05BTUVTW1wiVkFSXCJdID0gXCJ2YXJcIjtcbiAgICBUQUdfTkFNRVNbXCJXQlJcIl0gPSBcIndiclwiO1xuICAgIFRBR19OQU1FU1tcIlhNUFwiXSA9IFwieG1wXCI7XG59KShUQUdfTkFNRVMgPSBUQUdfTkFNRVMgfHwgKFRBR19OQU1FUyA9IHt9KSk7XG4vKipcbiAqIFRhZyBJRHMgYXJlIG51bWVyaWMgSURzIGZvciBrbm93biB0YWcgbmFtZXMuXG4gKlxuICogV2UgdXNlIHRhZyBJRHMgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2YgdGFnIG5hbWUgY29tcGFyaXNvbnMuXG4gKi9cbmV4cG9ydCB2YXIgVEFHX0lEO1xuKGZ1bmN0aW9uIChUQUdfSUQpIHtcbiAgICBUQUdfSURbVEFHX0lEW1wiVU5LTk9XTlwiXSA9IDBdID0gXCJVTktOT1dOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFcIl0gPSAxXSA9IFwiQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBRERSRVNTXCJdID0gMl0gPSBcIkFERFJFU1NcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQU5OT1RBVElPTl9YTUxcIl0gPSAzXSA9IFwiQU5OT1RBVElPTl9YTUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVBQTEVUXCJdID0gNF0gPSBcIkFQUExFVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUkVBXCJdID0gNV0gPSBcIkFSRUFcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVJUSUNMRVwiXSA9IDZdID0gXCJBUlRJQ0xFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFTSURFXCJdID0gN10gPSBcIkFTSURFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJcIl0gPSA4XSA9IFwiQlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCQVNFXCJdID0gOV0gPSBcIkJBU0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkFTRUZPTlRcIl0gPSAxMF0gPSBcIkJBU0VGT05UXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJHU09VTkRcIl0gPSAxMV0gPSBcIkJHU09VTkRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQklHXCJdID0gMTJdID0gXCJCSUdcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkxPQ0tRVU9URVwiXSA9IDEzXSA9IFwiQkxPQ0tRVU9URVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCT0RZXCJdID0gMTRdID0gXCJCT0RZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJSXCJdID0gMTVdID0gXCJCUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCVVRUT05cIl0gPSAxNl0gPSBcIkJVVFRPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDQVBUSU9OXCJdID0gMTddID0gXCJDQVBUSU9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNFTlRFUlwiXSA9IDE4XSA9IFwiQ0VOVEVSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNPREVcIl0gPSAxOV0gPSBcIkNPREVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ09MXCJdID0gMjBdID0gXCJDT0xcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ09MR1JPVVBcIl0gPSAyMV0gPSBcIkNPTEdST1VQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkREXCJdID0gMjJdID0gXCJERFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJERVNDXCJdID0gMjNdID0gXCJERVNDXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRFVEFJTFNcIl0gPSAyNF0gPSBcIkRFVEFJTFNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRElBTE9HXCJdID0gMjVdID0gXCJESUFMT0dcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRElSXCJdID0gMjZdID0gXCJESVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRElWXCJdID0gMjddID0gXCJESVZcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRExcIl0gPSAyOF0gPSBcIkRMXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRUXCJdID0gMjldID0gXCJEVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJFTVwiXSA9IDMwXSA9IFwiRU1cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRU1CRURcIl0gPSAzMV0gPSBcIkVNQkVEXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZJRUxEU0VUXCJdID0gMzJdID0gXCJGSUVMRFNFVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGSUdDQVBUSU9OXCJdID0gMzNdID0gXCJGSUdDQVBUSU9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZJR1VSRVwiXSA9IDM0XSA9IFwiRklHVVJFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZPTlRcIl0gPSAzNV0gPSBcIkZPTlRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9PVEVSXCJdID0gMzZdID0gXCJGT09URVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9SRUlHTl9PQkpFQ1RcIl0gPSAzN10gPSBcIkZPUkVJR05fT0JKRUNUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZPUk1cIl0gPSAzOF0gPSBcIkZPUk1cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRlJBTUVcIl0gPSAzOV0gPSBcIkZSQU1FXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZSQU1FU0VUXCJdID0gNDBdID0gXCJGUkFNRVNFVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIMVwiXSA9IDQxXSA9IFwiSDFcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDJcIl0gPSA0Ml0gPSBcIkgyXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkgzXCJdID0gNDNdID0gXCJIM1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJINFwiXSA9IDQ0XSA9IFwiSDRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDVcIl0gPSA0NV0gPSBcIkg1XCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkg2XCJdID0gNDZdID0gXCJINlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIRUFEXCJdID0gNDddID0gXCJIRUFEXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhFQURFUlwiXSA9IDQ4XSA9IFwiSEVBREVSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhHUk9VUFwiXSA9IDQ5XSA9IFwiSEdST1VQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhSXCJdID0gNTBdID0gXCJIUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIVE1MXCJdID0gNTFdID0gXCJIVE1MXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklcIl0gPSA1Ml0gPSBcIklcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSU1HXCJdID0gNTNdID0gXCJJTUdcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSU1BR0VcIl0gPSA1NF0gPSBcIklNQUdFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklOUFVUXCJdID0gNTVdID0gXCJJTlBVVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJRlJBTUVcIl0gPSA1Nl0gPSBcIklGUkFNRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJLRVlHRU5cIl0gPSA1N10gPSBcIktFWUdFTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMQUJFTFwiXSA9IDU4XSA9IFwiTEFCRUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTElcIl0gPSA1OV0gPSBcIkxJXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkxJTktcIl0gPSA2MF0gPSBcIkxJTktcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTElTVElOR1wiXSA9IDYxXSA9IFwiTElTVElOR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQUlOXCJdID0gNjJdID0gXCJNQUlOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BTElHTk1BUktcIl0gPSA2M10gPSBcIk1BTElHTk1BUktcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUFSUVVFRVwiXSA9IDY0XSA9IFwiTUFSUVVFRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQVRIXCJdID0gNjVdID0gXCJNQVRIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1FTlVcIl0gPSA2Nl0gPSBcIk1FTlVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUVUQVwiXSA9IDY3XSA9IFwiTUVUQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNR0xZUEhcIl0gPSA2OF0gPSBcIk1HTFlQSFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNSVwiXSA9IDY5XSA9IFwiTUlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTU9cIl0gPSA3MF0gPSBcIk1PXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1OXCJdID0gNzFdID0gXCJNTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNU1wiXSA9IDcyXSA9IFwiTVNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTVRFWFRcIl0gPSA3M10gPSBcIk1URVhUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk5BVlwiXSA9IDc0XSA9IFwiTkFWXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk5PQlJcIl0gPSA3NV0gPSBcIk5PQlJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9GUkFNRVNcIl0gPSA3Nl0gPSBcIk5PRlJBTUVTXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk5PRU1CRURcIl0gPSA3N10gPSBcIk5PRU1CRURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9TQ1JJUFRcIl0gPSA3OF0gPSBcIk5PU0NSSVBUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9CSkVDVFwiXSA9IDc5XSA9IFwiT0JKRUNUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9MXCJdID0gODBdID0gXCJPTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJPUFRHUk9VUFwiXSA9IDgxXSA9IFwiT1BUR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT1BUSU9OXCJdID0gODJdID0gXCJPUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUFwiXSA9IDgzXSA9IFwiUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQQVJBTVwiXSA9IDg0XSA9IFwiUEFSQU1cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUExBSU5URVhUXCJdID0gODVdID0gXCJQTEFJTlRFWFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUFJFXCJdID0gODZdID0gXCJQUkVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUkJcIl0gPSA4N10gPSBcIlJCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJQXCJdID0gODhdID0gXCJSUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVFwiXSA9IDg5XSA9IFwiUlRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlRDXCJdID0gOTBdID0gXCJSVENcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlVCWVwiXSA9IDkxXSA9IFwiUlVCWVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTXCJdID0gOTJdID0gXCJTXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNDUklQVFwiXSA9IDkzXSA9IFwiU0NSSVBUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNFQ1RJT05cIl0gPSA5NF0gPSBcIlNFQ1RJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0VMRUNUXCJdID0gOTVdID0gXCJTRUxFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU09VUkNFXCJdID0gOTZdID0gXCJTT1VSQ0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU01BTExcIl0gPSA5N10gPSBcIlNNQUxMXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNQQU5cIl0gPSA5OF0gPSBcIlNQQU5cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1RSSUtFXCJdID0gOTldID0gXCJTVFJJS0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1RST05HXCJdID0gMTAwXSA9IFwiU1RST05HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNUWUxFXCJdID0gMTAxXSA9IFwiU1RZTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VCXCJdID0gMTAyXSA9IFwiU1VCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNVTU1BUllcIl0gPSAxMDNdID0gXCJTVU1NQVJZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNVUFwiXSA9IDEwNF0gPSBcIlNVUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUQUJMRVwiXSA9IDEwNV0gPSBcIlRBQkxFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRCT0RZXCJdID0gMTA2XSA9IFwiVEJPRFlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEVNUExBVEVcIl0gPSAxMDddID0gXCJURU1QTEFURVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURVhUQVJFQVwiXSA9IDEwOF0gPSBcIlRFWFRBUkVBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRGT09UXCJdID0gMTA5XSA9IFwiVEZPT1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVERcIl0gPSAxMTBdID0gXCJURFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUSFwiXSA9IDExMV0gPSBcIlRIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRIRUFEXCJdID0gMTEyXSA9IFwiVEhFQURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVElUTEVcIl0gPSAxMTNdID0gXCJUSVRMRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUUlwiXSA9IDExNF0gPSBcIlRSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRSQUNLXCJdID0gMTE1XSA9IFwiVFJBQ0tcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVFRcIl0gPSAxMTZdID0gXCJUVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJVXCJdID0gMTE3XSA9IFwiVVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJVTFwiXSA9IDExOF0gPSBcIlVMXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNWR1wiXSA9IDExOV0gPSBcIlNWR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJWQVJcIl0gPSAxMjBdID0gXCJWQVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiV0JSXCJdID0gMTIxXSA9IFwiV0JSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlhNUFwiXSA9IDEyMl0gPSBcIlhNUFwiO1xufSkoVEFHX0lEID0gVEFHX0lEIHx8IChUQUdfSUQgPSB7fSkpO1xuY29uc3QgVEFHX05BTUVfVE9fSUQgPSBuZXcgTWFwKFtcbiAgICBbVEFHX05BTUVTLkEsIFRBR19JRC5BXSxcbiAgICBbVEFHX05BTUVTLkFERFJFU1MsIFRBR19JRC5BRERSRVNTXSxcbiAgICBbVEFHX05BTUVTLkFOTk9UQVRJT05fWE1MLCBUQUdfSUQuQU5OT1RBVElPTl9YTUxdLFxuICAgIFtUQUdfTkFNRVMuQVBQTEVULCBUQUdfSUQuQVBQTEVUXSxcbiAgICBbVEFHX05BTUVTLkFSRUEsIFRBR19JRC5BUkVBXSxcbiAgICBbVEFHX05BTUVTLkFSVElDTEUsIFRBR19JRC5BUlRJQ0xFXSxcbiAgICBbVEFHX05BTUVTLkFTSURFLCBUQUdfSUQuQVNJREVdLFxuICAgIFtUQUdfTkFNRVMuQiwgVEFHX0lELkJdLFxuICAgIFtUQUdfTkFNRVMuQkFTRSwgVEFHX0lELkJBU0VdLFxuICAgIFtUQUdfTkFNRVMuQkFTRUZPTlQsIFRBR19JRC5CQVNFRk9OVF0sXG4gICAgW1RBR19OQU1FUy5CR1NPVU5ELCBUQUdfSUQuQkdTT1VORF0sXG4gICAgW1RBR19OQU1FUy5CSUcsIFRBR19JRC5CSUddLFxuICAgIFtUQUdfTkFNRVMuQkxPQ0tRVU9URSwgVEFHX0lELkJMT0NLUVVPVEVdLFxuICAgIFtUQUdfTkFNRVMuQk9EWSwgVEFHX0lELkJPRFldLFxuICAgIFtUQUdfTkFNRVMuQlIsIFRBR19JRC5CUl0sXG4gICAgW1RBR19OQU1FUy5CVVRUT04sIFRBR19JRC5CVVRUT05dLFxuICAgIFtUQUdfTkFNRVMuQ0FQVElPTiwgVEFHX0lELkNBUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuQ0VOVEVSLCBUQUdfSUQuQ0VOVEVSXSxcbiAgICBbVEFHX05BTUVTLkNPREUsIFRBR19JRC5DT0RFXSxcbiAgICBbVEFHX05BTUVTLkNPTCwgVEFHX0lELkNPTF0sXG4gICAgW1RBR19OQU1FUy5DT0xHUk9VUCwgVEFHX0lELkNPTEdST1VQXSxcbiAgICBbVEFHX05BTUVTLkRELCBUQUdfSUQuRERdLFxuICAgIFtUQUdfTkFNRVMuREVTQywgVEFHX0lELkRFU0NdLFxuICAgIFtUQUdfTkFNRVMuREVUQUlMUywgVEFHX0lELkRFVEFJTFNdLFxuICAgIFtUQUdfTkFNRVMuRElBTE9HLCBUQUdfSUQuRElBTE9HXSxcbiAgICBbVEFHX05BTUVTLkRJUiwgVEFHX0lELkRJUl0sXG4gICAgW1RBR19OQU1FUy5ESVYsIFRBR19JRC5ESVZdLFxuICAgIFtUQUdfTkFNRVMuREwsIFRBR19JRC5ETF0sXG4gICAgW1RBR19OQU1FUy5EVCwgVEFHX0lELkRUXSxcbiAgICBbVEFHX05BTUVTLkVNLCBUQUdfSUQuRU1dLFxuICAgIFtUQUdfTkFNRVMuRU1CRUQsIFRBR19JRC5FTUJFRF0sXG4gICAgW1RBR19OQU1FUy5GSUVMRFNFVCwgVEFHX0lELkZJRUxEU0VUXSxcbiAgICBbVEFHX05BTUVTLkZJR0NBUFRJT04sIFRBR19JRC5GSUdDQVBUSU9OXSxcbiAgICBbVEFHX05BTUVTLkZJR1VSRSwgVEFHX0lELkZJR1VSRV0sXG4gICAgW1RBR19OQU1FUy5GT05ULCBUQUdfSUQuRk9OVF0sXG4gICAgW1RBR19OQU1FUy5GT09URVIsIFRBR19JRC5GT09URVJdLFxuICAgIFtUQUdfTkFNRVMuRk9SRUlHTl9PQkpFQ1QsIFRBR19JRC5GT1JFSUdOX09CSkVDVF0sXG4gICAgW1RBR19OQU1FUy5GT1JNLCBUQUdfSUQuRk9STV0sXG4gICAgW1RBR19OQU1FUy5GUkFNRSwgVEFHX0lELkZSQU1FXSxcbiAgICBbVEFHX05BTUVTLkZSQU1FU0VULCBUQUdfSUQuRlJBTUVTRVRdLFxuICAgIFtUQUdfTkFNRVMuSDEsIFRBR19JRC5IMV0sXG4gICAgW1RBR19OQU1FUy5IMiwgVEFHX0lELkgyXSxcbiAgICBbVEFHX05BTUVTLkgzLCBUQUdfSUQuSDNdLFxuICAgIFtUQUdfTkFNRVMuSDQsIFRBR19JRC5INF0sXG4gICAgW1RBR19OQU1FUy5INSwgVEFHX0lELkg1XSxcbiAgICBbVEFHX05BTUVTLkg2LCBUQUdfSUQuSDZdLFxuICAgIFtUQUdfTkFNRVMuSEVBRCwgVEFHX0lELkhFQURdLFxuICAgIFtUQUdfTkFNRVMuSEVBREVSLCBUQUdfSUQuSEVBREVSXSxcbiAgICBbVEFHX05BTUVTLkhHUk9VUCwgVEFHX0lELkhHUk9VUF0sXG4gICAgW1RBR19OQU1FUy5IUiwgVEFHX0lELkhSXSxcbiAgICBbVEFHX05BTUVTLkhUTUwsIFRBR19JRC5IVE1MXSxcbiAgICBbVEFHX05BTUVTLkksIFRBR19JRC5JXSxcbiAgICBbVEFHX05BTUVTLklNRywgVEFHX0lELklNR10sXG4gICAgW1RBR19OQU1FUy5JTUFHRSwgVEFHX0lELklNQUdFXSxcbiAgICBbVEFHX05BTUVTLklOUFVULCBUQUdfSUQuSU5QVVRdLFxuICAgIFtUQUdfTkFNRVMuSUZSQU1FLCBUQUdfSUQuSUZSQU1FXSxcbiAgICBbVEFHX05BTUVTLktFWUdFTiwgVEFHX0lELktFWUdFTl0sXG4gICAgW1RBR19OQU1FUy5MQUJFTCwgVEFHX0lELkxBQkVMXSxcbiAgICBbVEFHX05BTUVTLkxJLCBUQUdfSUQuTEldLFxuICAgIFtUQUdfTkFNRVMuTElOSywgVEFHX0lELkxJTktdLFxuICAgIFtUQUdfTkFNRVMuTElTVElORywgVEFHX0lELkxJU1RJTkddLFxuICAgIFtUQUdfTkFNRVMuTUFJTiwgVEFHX0lELk1BSU5dLFxuICAgIFtUQUdfTkFNRVMuTUFMSUdOTUFSSywgVEFHX0lELk1BTElHTk1BUktdLFxuICAgIFtUQUdfTkFNRVMuTUFSUVVFRSwgVEFHX0lELk1BUlFVRUVdLFxuICAgIFtUQUdfTkFNRVMuTUFUSCwgVEFHX0lELk1BVEhdLFxuICAgIFtUQUdfTkFNRVMuTUVOVSwgVEFHX0lELk1FTlVdLFxuICAgIFtUQUdfTkFNRVMuTUVUQSwgVEFHX0lELk1FVEFdLFxuICAgIFtUQUdfTkFNRVMuTUdMWVBILCBUQUdfSUQuTUdMWVBIXSxcbiAgICBbVEFHX05BTUVTLk1JLCBUQUdfSUQuTUldLFxuICAgIFtUQUdfTkFNRVMuTU8sIFRBR19JRC5NT10sXG4gICAgW1RBR19OQU1FUy5NTiwgVEFHX0lELk1OXSxcbiAgICBbVEFHX05BTUVTLk1TLCBUQUdfSUQuTVNdLFxuICAgIFtUQUdfTkFNRVMuTVRFWFQsIFRBR19JRC5NVEVYVF0sXG4gICAgW1RBR19OQU1FUy5OQVYsIFRBR19JRC5OQVZdLFxuICAgIFtUQUdfTkFNRVMuTk9CUiwgVEFHX0lELk5PQlJdLFxuICAgIFtUQUdfTkFNRVMuTk9GUkFNRVMsIFRBR19JRC5OT0ZSQU1FU10sXG4gICAgW1RBR19OQU1FUy5OT0VNQkVELCBUQUdfSUQuTk9FTUJFRF0sXG4gICAgW1RBR19OQU1FUy5OT1NDUklQVCwgVEFHX0lELk5PU0NSSVBUXSxcbiAgICBbVEFHX05BTUVTLk9CSkVDVCwgVEFHX0lELk9CSkVDVF0sXG4gICAgW1RBR19OQU1FUy5PTCwgVEFHX0lELk9MXSxcbiAgICBbVEFHX05BTUVTLk9QVEdST1VQLCBUQUdfSUQuT1BUR1JPVVBdLFxuICAgIFtUQUdfTkFNRVMuT1BUSU9OLCBUQUdfSUQuT1BUSU9OXSxcbiAgICBbVEFHX05BTUVTLlAsIFRBR19JRC5QXSxcbiAgICBbVEFHX05BTUVTLlBBUkFNLCBUQUdfSUQuUEFSQU1dLFxuICAgIFtUQUdfTkFNRVMuUExBSU5URVhULCBUQUdfSUQuUExBSU5URVhUXSxcbiAgICBbVEFHX05BTUVTLlBSRSwgVEFHX0lELlBSRV0sXG4gICAgW1RBR19OQU1FUy5SQiwgVEFHX0lELlJCXSxcbiAgICBbVEFHX05BTUVTLlJQLCBUQUdfSUQuUlBdLFxuICAgIFtUQUdfTkFNRVMuUlQsIFRBR19JRC5SVF0sXG4gICAgW1RBR19OQU1FUy5SVEMsIFRBR19JRC5SVENdLFxuICAgIFtUQUdfTkFNRVMuUlVCWSwgVEFHX0lELlJVQlldLFxuICAgIFtUQUdfTkFNRVMuUywgVEFHX0lELlNdLFxuICAgIFtUQUdfTkFNRVMuU0NSSVBULCBUQUdfSUQuU0NSSVBUXSxcbiAgICBbVEFHX05BTUVTLlNFQ1RJT04sIFRBR19JRC5TRUNUSU9OXSxcbiAgICBbVEFHX05BTUVTLlNFTEVDVCwgVEFHX0lELlNFTEVDVF0sXG4gICAgW1RBR19OQU1FUy5TT1VSQ0UsIFRBR19JRC5TT1VSQ0VdLFxuICAgIFtUQUdfTkFNRVMuU01BTEwsIFRBR19JRC5TTUFMTF0sXG4gICAgW1RBR19OQU1FUy5TUEFOLCBUQUdfSUQuU1BBTl0sXG4gICAgW1RBR19OQU1FUy5TVFJJS0UsIFRBR19JRC5TVFJJS0VdLFxuICAgIFtUQUdfTkFNRVMuU1RST05HLCBUQUdfSUQuU1RST05HXSxcbiAgICBbVEFHX05BTUVTLlNUWUxFLCBUQUdfSUQuU1RZTEVdLFxuICAgIFtUQUdfTkFNRVMuU1VCLCBUQUdfSUQuU1VCXSxcbiAgICBbVEFHX05BTUVTLlNVTU1BUlksIFRBR19JRC5TVU1NQVJZXSxcbiAgICBbVEFHX05BTUVTLlNVUCwgVEFHX0lELlNVUF0sXG4gICAgW1RBR19OQU1FUy5UQUJMRSwgVEFHX0lELlRBQkxFXSxcbiAgICBbVEFHX05BTUVTLlRCT0RZLCBUQUdfSUQuVEJPRFldLFxuICAgIFtUQUdfTkFNRVMuVEVNUExBVEUsIFRBR19JRC5URU1QTEFURV0sXG4gICAgW1RBR19OQU1FUy5URVhUQVJFQSwgVEFHX0lELlRFWFRBUkVBXSxcbiAgICBbVEFHX05BTUVTLlRGT09ULCBUQUdfSUQuVEZPT1RdLFxuICAgIFtUQUdfTkFNRVMuVEQsIFRBR19JRC5URF0sXG4gICAgW1RBR19OQU1FUy5USCwgVEFHX0lELlRIXSxcbiAgICBbVEFHX05BTUVTLlRIRUFELCBUQUdfSUQuVEhFQURdLFxuICAgIFtUQUdfTkFNRVMuVElUTEUsIFRBR19JRC5USVRMRV0sXG4gICAgW1RBR19OQU1FUy5UUiwgVEFHX0lELlRSXSxcbiAgICBbVEFHX05BTUVTLlRSQUNLLCBUQUdfSUQuVFJBQ0tdLFxuICAgIFtUQUdfTkFNRVMuVFQsIFRBR19JRC5UVF0sXG4gICAgW1RBR19OQU1FUy5VLCBUQUdfSUQuVV0sXG4gICAgW1RBR19OQU1FUy5VTCwgVEFHX0lELlVMXSxcbiAgICBbVEFHX05BTUVTLlNWRywgVEFHX0lELlNWR10sXG4gICAgW1RBR19OQU1FUy5WQVIsIFRBR19JRC5WQVJdLFxuICAgIFtUQUdfTkFNRVMuV0JSLCBUQUdfSUQuV0JSXSxcbiAgICBbVEFHX05BTUVTLlhNUCwgVEFHX0lELlhNUF0sXG5dKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWdJRCh0YWdOYW1lKSB7XG4gICAgdmFyIF9hO1xuICAgIHJldHVybiAoX2EgPSBUQUdfTkFNRV9UT19JRC5nZXQodGFnTmFtZSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFRBR19JRC5VTktOT1dOO1xufVxuY29uc3QgJCA9IFRBR19JRDtcbmV4cG9ydCBjb25zdCBTUEVDSUFMX0VMRU1FTlRTID0ge1xuICAgIFtOUy5IVE1MXTogbmV3IFNldChbXG4gICAgICAgICQuQUREUkVTUyxcbiAgICAgICAgJC5BUFBMRVQsXG4gICAgICAgICQuQVJFQSxcbiAgICAgICAgJC5BUlRJQ0xFLFxuICAgICAgICAkLkFTSURFLFxuICAgICAgICAkLkJBU0UsXG4gICAgICAgICQuQkFTRUZPTlQsXG4gICAgICAgICQuQkdTT1VORCxcbiAgICAgICAgJC5CTE9DS1FVT1RFLFxuICAgICAgICAkLkJPRFksXG4gICAgICAgICQuQlIsXG4gICAgICAgICQuQlVUVE9OLFxuICAgICAgICAkLkNBUFRJT04sXG4gICAgICAgICQuQ0VOVEVSLFxuICAgICAgICAkLkNPTCxcbiAgICAgICAgJC5DT0xHUk9VUCxcbiAgICAgICAgJC5ERCxcbiAgICAgICAgJC5ERVRBSUxTLFxuICAgICAgICAkLkRJUixcbiAgICAgICAgJC5ESVYsXG4gICAgICAgICQuREwsXG4gICAgICAgICQuRFQsXG4gICAgICAgICQuRU1CRUQsXG4gICAgICAgICQuRklFTERTRVQsXG4gICAgICAgICQuRklHQ0FQVElPTixcbiAgICAgICAgJC5GSUdVUkUsXG4gICAgICAgICQuRk9PVEVSLFxuICAgICAgICAkLkZPUk0sXG4gICAgICAgICQuRlJBTUUsXG4gICAgICAgICQuRlJBTUVTRVQsXG4gICAgICAgICQuSDEsXG4gICAgICAgICQuSDIsXG4gICAgICAgICQuSDMsXG4gICAgICAgICQuSDQsXG4gICAgICAgICQuSDUsXG4gICAgICAgICQuSDYsXG4gICAgICAgICQuSEVBRCxcbiAgICAgICAgJC5IRUFERVIsXG4gICAgICAgICQuSEdST1VQLFxuICAgICAgICAkLkhSLFxuICAgICAgICAkLkhUTUwsXG4gICAgICAgICQuSUZSQU1FLFxuICAgICAgICAkLklNRyxcbiAgICAgICAgJC5JTlBVVCxcbiAgICAgICAgJC5MSSxcbiAgICAgICAgJC5MSU5LLFxuICAgICAgICAkLkxJU1RJTkcsXG4gICAgICAgICQuTUFJTixcbiAgICAgICAgJC5NQVJRVUVFLFxuICAgICAgICAkLk1FTlUsXG4gICAgICAgICQuTUVUQSxcbiAgICAgICAgJC5OQVYsXG4gICAgICAgICQuTk9FTUJFRCxcbiAgICAgICAgJC5OT0ZSQU1FUyxcbiAgICAgICAgJC5OT1NDUklQVCxcbiAgICAgICAgJC5PQkpFQ1QsXG4gICAgICAgICQuT0wsXG4gICAgICAgICQuUCxcbiAgICAgICAgJC5QQVJBTSxcbiAgICAgICAgJC5QTEFJTlRFWFQsXG4gICAgICAgICQuUFJFLFxuICAgICAgICAkLlNDUklQVCxcbiAgICAgICAgJC5TRUNUSU9OLFxuICAgICAgICAkLlNFTEVDVCxcbiAgICAgICAgJC5TT1VSQ0UsXG4gICAgICAgICQuU1RZTEUsXG4gICAgICAgICQuU1VNTUFSWSxcbiAgICAgICAgJC5UQUJMRSxcbiAgICAgICAgJC5UQk9EWSxcbiAgICAgICAgJC5URCxcbiAgICAgICAgJC5URU1QTEFURSxcbiAgICAgICAgJC5URVhUQVJFQSxcbiAgICAgICAgJC5URk9PVCxcbiAgICAgICAgJC5USCxcbiAgICAgICAgJC5USEVBRCxcbiAgICAgICAgJC5USVRMRSxcbiAgICAgICAgJC5UUixcbiAgICAgICAgJC5UUkFDSyxcbiAgICAgICAgJC5VTCxcbiAgICAgICAgJC5XQlIsXG4gICAgICAgICQuWE1QLFxuICAgIF0pLFxuICAgIFtOUy5NQVRITUxdOiBuZXcgU2V0KFskLk1JLCAkLk1PLCAkLk1OLCAkLk1TLCAkLk1URVhULCAkLkFOTk9UQVRJT05fWE1MXSksXG4gICAgW05TLlNWR106IG5ldyBTZXQoWyQuVElUTEUsICQuRk9SRUlHTl9PQkpFQ1QsICQuREVTQ10pLFxuICAgIFtOUy5YTElOS106IG5ldyBTZXQoKSxcbiAgICBbTlMuWE1MXTogbmV3IFNldCgpLFxuICAgIFtOUy5YTUxOU106IG5ldyBTZXQoKSxcbn07XG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXJlZEhlYWRlcih0bikge1xuICAgIHJldHVybiB0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INjtcbn1cbmNvbnN0IFVORVNDQVBFRF9URVhUID0gbmV3IFNldChbXG4gICAgVEFHX05BTUVTLlNUWUxFLFxuICAgIFRBR19OQU1FUy5TQ1JJUFQsXG4gICAgVEFHX05BTUVTLlhNUCxcbiAgICBUQUdfTkFNRVMuSUZSQU1FLFxuICAgIFRBR19OQU1FUy5OT0VNQkVELFxuICAgIFRBR19OQU1FUy5OT0ZSQU1FUyxcbiAgICBUQUdfTkFNRVMuUExBSU5URVhULFxuXSk7XG5leHBvcnQgZnVuY3Rpb24gaGFzVW5lc2NhcGVkVGV4dCh0biwgc2NyaXB0aW5nRW5hYmxlZCkge1xuICAgIHJldHVybiBVTkVTQ0FQRURfVEVYVC5oYXModG4pIHx8IChzY3JpcHRpbmdFbmFibGVkICYmIHRuID09PSBUQUdfTkFNRVMuTk9TQ1JJUFQpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aHRtbC5qcy5tYXAiLCAiaW1wb3J0IHsgUHJlcHJvY2Vzc29yIH0gZnJvbSAnLi9wcmVwcm9jZXNzb3IuanMnO1xuaW1wb3J0IHsgQ09ERV9QT0lOVFMgYXMgJCwgU0VRVUVOQ0VTIGFzICQkLCBSRVBMQUNFTUVOVF9DSEFSQUNURVIsIGlzU3Vycm9nYXRlLCBpc1VuZGVmaW5lZENvZGVQb2ludCwgaXNDb250cm9sQ29kZVBvaW50LCB9IGZyb20gJy4uL2NvbW1vbi91bmljb2RlLmpzJztcbmltcG9ydCB7IFRva2VuVHlwZSwgZ2V0VG9rZW5BdHRyLCB9IGZyb20gJy4uL2NvbW1vbi90b2tlbi5qcyc7XG5pbXBvcnQgeyBodG1sRGVjb2RlVHJlZSwgQmluVHJpZUZsYWdzLCBkZXRlcm1pbmVCcmFuY2ggfSBmcm9tICdlbnRpdGllcy9saWIvZGVjb2RlLmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG5pbXBvcnQgeyBUQUdfSUQsIGdldFRhZ0lEIH0gZnJvbSAnLi4vY29tbW9uL2h0bWwuanMnO1xuLy9DMSBVbmljb2RlIGNvbnRyb2wgY2hhcmFjdGVyIHJlZmVyZW5jZSByZXBsYWNlbWVudHNcbmNvbnN0IEMxX0NPTlRST0xTX1JFRkVSRU5DRV9SRVBMQUNFTUVOVFMgPSBuZXcgTWFwKFtcbiAgICBbMHg4MCwgODM2NF0sXG4gICAgWzB4ODIsIDgyMThdLFxuICAgIFsweDgzLCA0MDJdLFxuICAgIFsweDg0LCA4MjIyXSxcbiAgICBbMHg4NSwgODIzMF0sXG4gICAgWzB4ODYsIDgyMjRdLFxuICAgIFsweDg3LCA4MjI1XSxcbiAgICBbMHg4OCwgNzEwXSxcbiAgICBbMHg4OSwgODI0MF0sXG4gICAgWzB4OGEsIDM1Ml0sXG4gICAgWzB4OGIsIDgyNDldLFxuICAgIFsweDhjLCAzMzhdLFxuICAgIFsweDhlLCAzODFdLFxuICAgIFsweDkxLCA4MjE2XSxcbiAgICBbMHg5MiwgODIxN10sXG4gICAgWzB4OTMsIDgyMjBdLFxuICAgIFsweDk0LCA4MjIxXSxcbiAgICBbMHg5NSwgODIyNl0sXG4gICAgWzB4OTYsIDgyMTFdLFxuICAgIFsweDk3LCA4MjEyXSxcbiAgICBbMHg5OCwgNzMyXSxcbiAgICBbMHg5OSwgODQ4Ml0sXG4gICAgWzB4OWEsIDM1M10sXG4gICAgWzB4OWIsIDgyNTBdLFxuICAgIFsweDljLCAzMzldLFxuICAgIFsweDllLCAzODJdLFxuICAgIFsweDlmLCAzNzZdLFxuXSk7XG4vL1N0YXRlc1xudmFyIFN0YXRlO1xuKGZ1bmN0aW9uIChTdGF0ZSkge1xuICAgIFN0YXRlW1N0YXRlW1wiREFUQVwiXSA9IDBdID0gXCJEQVRBXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFcIl0gPSAxXSA9IFwiUkNEQVRBXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUXCJdID0gMl0gPSBcIlJBV1RFWFRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBXCJdID0gM10gPSBcIlNDUklQVF9EQVRBXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJQTEFJTlRFWFRcIl0gPSA0XSA9IFwiUExBSU5URVhUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJUQUdfT1BFTlwiXSA9IDVdID0gXCJUQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRU5EX1RBR19PUEVOXCJdID0gNl0gPSBcIkVORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiVEFHX05BTUVcIl0gPSA3XSA9IFwiVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQV9MRVNTX1RIQU5fU0lHTlwiXSA9IDhdID0gXCJSQ0RBVEFfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQV9FTkRfVEFHX09QRU5cIl0gPSA5XSA9IFwiUkNEQVRBX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBX0VORF9UQUdfTkFNRVwiXSA9IDEwXSA9IFwiUkNEQVRBX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkFXVEVYVF9MRVNTX1RIQU5fU0lHTlwiXSA9IDExXSA9IFwiUkFXVEVYVF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkFXVEVYVF9FTkRfVEFHX09QRU5cIl0gPSAxMl0gPSBcIlJBV1RFWFRfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUX0VORF9UQUdfTkFNRVwiXSA9IDEzXSA9IFwiUkFXVEVYVF9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOXCJdID0gMTRdID0gXCJTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOXCJdID0gMTVdID0gXCJTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRVwiXSA9IDE2XSA9IFwiU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRcIl0gPSAxN10gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hcIl0gPSAxOF0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEXCJdID0gMTldID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hcIl0gPSAyMF0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hcIl0gPSAyMV0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOXCJdID0gMjJdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTlwiXSA9IDIzXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FXCJdID0gMjRdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVFwiXSA9IDI1XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURcIl0gPSAyNl0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIXCJdID0gMjddID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hcIl0gPSAyOF0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIl0gPSAyOV0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORFwiXSA9IDMwXSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9BVFRSSUJVVEVfTkFNRVwiXSA9IDMxXSA9IFwiQkVGT1JFX0FUVFJJQlVURV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfTkFNRVwiXSA9IDMyXSA9IFwiQVRUUklCVVRFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0FUVFJJQlVURV9OQU1FXCJdID0gMzNdID0gXCJBRlRFUl9BVFRSSUJVVEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0FUVFJJQlVURV9WQUxVRVwiXSA9IDM0XSA9IFwiQkVGT1JFX0FUVFJJQlVURV9WQUxVRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURcIl0gPSAzNV0gPSBcIkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRFwiXSA9IDM2XSA9IFwiQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRFwiXSA9IDM3XSA9IFwiQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEXCJdID0gMzhdID0gXCJBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTRUxGX0NMT1NJTkdfU1RBUlRfVEFHXCJdID0gMzldID0gXCJTRUxGX0NMT1NJTkdfU1RBUlRfVEFHXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCT0dVU19DT01NRU5UXCJdID0gNDBdID0gXCJCT0dVU19DT01NRU5UXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJNQVJLVVBfREVDTEFSQVRJT05fT1BFTlwiXSA9IDQxXSA9IFwiTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfU1RBUlRcIl0gPSA0Ml0gPSBcIkNPTU1FTlRfU1RBUlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfU1RBUlRfREFTSFwiXSA9IDQzXSA9IFwiQ09NTUVOVF9TVEFSVF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UXCJdID0gNDRdID0gXCJDT01NRU5UXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOXCJdID0gNDVdID0gXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdcIl0gPSA0Nl0gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hcIl0gPSA0N10gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSF9EQVNIXCJdID0gNDhdID0gXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0VORF9EQVNIXCJdID0gNDldID0gXCJDT01NRU5UX0VORF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0VORFwiXSA9IDUwXSA9IFwiQ09NTUVOVF9FTkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfRU5EX0JBTkdcIl0gPSA1MV0gPSBcIkNPTU1FTlRfRU5EX0JBTkdcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVcIl0gPSA1Ml0gPSBcIkRPQ1RZUEVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9ET0NUWVBFX05BTUVcIl0gPSA1M10gPSBcIkJFRk9SRV9ET0NUWVBFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfTkFNRVwiXSA9IDU0XSA9IFwiRE9DVFlQRV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX05BTUVcIl0gPSA1NV0gPSBcIkFGVEVSX0RPQ1RZUEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRFwiXSA9IDU2XSA9IFwiQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJcIl0gPSA1N10gPSBcIkJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIl0gPSA1OF0gPSBcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCJdID0gNTldID0gXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJcIl0gPSA2MF0gPSBcIkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSU1wiXSA9IDYxXSA9IFwiQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEXCJdID0gNjJdID0gXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUlwiXSA9IDYzXSA9IFwiQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiXSA9IDY0XSA9IFwiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIl0gPSA2NV0gPSBcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUlwiXSA9IDY2XSA9IFwiQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQk9HVVNfRE9DVFlQRVwiXSA9IDY3XSA9IFwiQk9HVVNfRE9DVFlQRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ0RBVEFfU0VDVElPTlwiXSA9IDY4XSA9IFwiQ0RBVEFfU0VDVElPTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ0RBVEFfU0VDVElPTl9CUkFDS0VUXCJdID0gNjldID0gXCJDREFUQV9TRUNUSU9OX0JSQUNLRVRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNEQVRBX1NFQ1RJT05fRU5EXCJdID0gNzBdID0gXCJDREFUQV9TRUNUSU9OX0VORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDcxXSA9IFwiQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiTkFNRURfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDcyXSA9IFwiTkFNRURfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQU1CSUdVT1VTX0FNUEVSU0FORFwiXSA9IDczXSA9IFwiQU1CSUdVT1VTX0FNUEVSU0FORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzRdID0gXCJOVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfU1RBUlRcIl0gPSA3NV0gPSBcIkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfU1RBUlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3Nl0gPSBcIkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRFQ0lNQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDc3XSA9IFwiREVDSU1BTF9DSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJOVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EXCJdID0gNzhdID0gXCJOVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EXCI7XG59KShTdGF0ZSB8fCAoU3RhdGUgPSB7fSkpO1xuLy9Ub2tlbml6ZXIgaW5pdGlhbCBzdGF0ZXMgZm9yIGRpZmZlcmVudCBtb2Rlc1xuZXhwb3J0IGNvbnN0IFRva2VuaXplck1vZGUgPSB7XG4gICAgREFUQTogU3RhdGUuREFUQSxcbiAgICBSQ0RBVEE6IFN0YXRlLlJDREFUQSxcbiAgICBSQVdURVhUOiBTdGF0ZS5SQVdURVhULFxuICAgIFNDUklQVF9EQVRBOiBTdGF0ZS5TQ1JJUFRfREFUQSxcbiAgICBQTEFJTlRFWFQ6IFN0YXRlLlBMQUlOVEVYVCxcbiAgICBDREFUQV9TRUNUSU9OOiBTdGF0ZS5DREFUQV9TRUNUSU9OLFxufTtcbi8vVXRpbHNcbi8vT1BUSU1JWkFUSU9OOiB0aGVzZSB1dGlsaXR5IGZ1bmN0aW9ucyBzaG91bGQgbm90IGJlIG1vdmVkIG91dCBvZiB0aGlzIG1vZHVsZS4gVjggQ3JhbmtzaGFmdCB3aWxsIG5vdCBpbmxpbmVcbi8vdGhpcyBmdW5jdGlvbnMgaWYgdGhleSB3aWxsIGJlIHNpdHVhdGVkIGluIGFub3RoZXIgbW9kdWxlIGR1ZSB0byBjb250ZXh0IHN3aXRjaC5cbi8vQWx3YXlzIHBlcmZvcm0gaW5saW5pbmcgY2hlY2sgYmVmb3JlIG1vZGlmeWluZyB0aGlzIGZ1bmN0aW9ucyAoJ25vZGUgLS10cmFjZS1pbmxpbmluZycpLlxuZnVuY3Rpb24gaXNBc2NpaURpZ2l0KGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuRElHSVRfMCAmJiBjcCA8PSAkLkRJR0lUXzk7XG59XG5mdW5jdGlvbiBpc0FzY2lpVXBwZXIoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9DQVBJVEFMX0EgJiYgY3AgPD0gJC5MQVRJTl9DQVBJVEFMX1o7XG59XG5mdW5jdGlvbiBpc0FzY2lpTG93ZXIoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9TTUFMTF9BICYmIGNwIDw9ICQuTEFUSU5fU01BTExfWjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMZXR0ZXIoY3ApIHtcbiAgICByZXR1cm4gaXNBc2NpaUxvd2VyKGNwKSB8fCBpc0FzY2lpVXBwZXIoY3ApO1xufVxuZnVuY3Rpb24gaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkge1xuICAgIHJldHVybiBpc0FzY2lpTGV0dGVyKGNwKSB8fCBpc0FzY2lpRGlnaXQoY3ApO1xufVxuZnVuY3Rpb24gaXNBc2NpaVVwcGVySGV4RGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9DQVBJVEFMX0EgJiYgY3AgPD0gJC5MQVRJTl9DQVBJVEFMX0Y7XG59XG5mdW5jdGlvbiBpc0FzY2lpTG93ZXJIZXhEaWdpdChjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX1NNQUxMX0EgJiYgY3AgPD0gJC5MQVRJTl9TTUFMTF9GO1xufVxuZnVuY3Rpb24gaXNBc2NpaUhleERpZ2l0KGNwKSB7XG4gICAgcmV0dXJuIGlzQXNjaWlEaWdpdChjcCkgfHwgaXNBc2NpaVVwcGVySGV4RGlnaXQoY3ApIHx8IGlzQXNjaWlMb3dlckhleERpZ2l0KGNwKTtcbn1cbmZ1bmN0aW9uIHRvQXNjaWlMb3dlcihjcCkge1xuICAgIHJldHVybiBjcCArIDMyO1xufVxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNwKSB7XG4gICAgcmV0dXJuIGNwID09PSAkLlNQQUNFIHx8IGNwID09PSAkLkxJTkVfRkVFRCB8fCBjcCA9PT0gJC5UQUJVTEFUSU9OIHx8IGNwID09PSAkLkZPUk1fRkVFRDtcbn1cbmZ1bmN0aW9uIGlzRW50aXR5SW5BdHRyaWJ1dGVJbnZhbGlkRW5kKG5leHRDcCkge1xuICAgIHJldHVybiBuZXh0Q3AgPT09ICQuRVFVQUxTX1NJR04gfHwgaXNBc2NpaUFscGhhTnVtZXJpYyhuZXh0Q3ApO1xufVxuZnVuY3Rpb24gaXNTY3JpcHREYXRhRG91YmxlRXNjYXBlU2VxdWVuY2VFbmQoY3ApIHtcbiAgICByZXR1cm4gaXNXaGl0ZXNwYWNlKGNwKSB8fCBjcCA9PT0gJC5TT0xJRFVTIHx8IGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOO1xufVxuLy9Ub2tlbml6ZXJcbmV4cG9ydCBjbGFzcyBUb2tlbml6ZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMsIGhhbmRsZXIpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5oYW5kbGVyID0gaGFuZGxlcjtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcbiAgICAgICAgLyoqIEVuc3VyZXMgdGhhdCB0aGUgcGFyc2luZyBsb29wIGlzbid0IHJ1biBtdWx0aXBsZSB0aW1lcyBhdCBvbmNlLiAqL1xuICAgICAgICB0aGlzLmluTG9vcCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgYWRqdXN0ZWQgbm9kZSBleGlzdHMsIGlzIG5vdCBhbiBlbGVtZW50IGluIHRoZSBIVE1MIG5hbWVzcGFjZSxcbiAgICAgICAgICogYW5kIHRoYXQgaXQgaXMgbm90IGFuIGludGVncmF0aW9uIHBvaW50IGZvciBlaXRoZXIgTWF0aE1MIG9yIEhUTUwuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCN0cmVlLWNvbnN0cnVjdGlvbn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaW5Gb3JlaWduTm9kZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxhc3RTdGFydFRhZ05hbWUgPSAnJztcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gLTE7XG4gICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90ID0gLTE7XG4gICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuID0gbnVsbDtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyID0geyBuYW1lOiAnJywgdmFsdWU6ICcnIH07XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yID0gbmV3IFByZXByb2Nlc3NvcihoYW5kbGVyKTtcbiAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigtMSk7XG4gICAgfVxuICAgIC8vRXJyb3JzXG4gICAgX2Vycihjb2RlKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIChfYiA9IChfYSA9IHRoaXMuaGFuZGxlcikub25QYXJzZUVycm9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgdGhpcy5wcmVwcm9jZXNzb3IuZ2V0RXJyb3IoY29kZSkpO1xuICAgIH1cbiAgICAvLyBOT1RFOiBgb2Zmc2V0YCBtYXkgbmV2ZXIgcnVuIGFjcm9zcyBsaW5lIGJvdW5kYXJpZXMuXG4gICAgZ2V0Q3VycmVudExvY2F0aW9uKG9mZnNldCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RhcnRMaW5lOiB0aGlzLnByZXByb2Nlc3Nvci5saW5lLFxuICAgICAgICAgICAgc3RhcnRDb2w6IHRoaXMucHJlcHJvY2Vzc29yLmNvbCAtIG9mZnNldCxcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0OiB0aGlzLnByZXByb2Nlc3Nvci5vZmZzZXQgLSBvZmZzZXQsXG4gICAgICAgICAgICBlbmRMaW5lOiAtMSxcbiAgICAgICAgICAgIGVuZENvbDogLTEsXG4gICAgICAgICAgICBlbmRPZmZzZXQ6IC0xLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfcnVuUGFyc2luZ0xvb3AoKSB7XG4gICAgICAgIGlmICh0aGlzLmluTG9vcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5pbkxvb3AgPSB0cnVlO1xuICAgICAgICB3aGlsZSAodGhpcy5hY3RpdmUgJiYgIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA9IDA7XG4gICAgICAgICAgICBjb25zdCBjcCA9IHRoaXMuX2NvbnN1bWUoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhbGxTdGF0ZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbkxvb3AgPSBmYWxzZTtcbiAgICB9XG4gICAgLy9BUElcbiAgICBwYXVzZSgpIHtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXN1bWUod3JpdGVDYWxsYmFjaykge1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcnNlciB3YXMgYWxyZWFkeSByZXN1bWVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gTmVjZXNzYXJ5IGZvciBzeW5jaHJvbm91cyByZXN1bWUuXG4gICAgICAgIGlmICh0aGlzLmluTG9vcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTtcbiAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgd3JpdGVDYWxsYmFjayA9PT0gbnVsbCB8fCB3cml0ZUNhbGxiYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3cml0ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGUoY2h1bmssIGlzTGFzdENodW5rLCB3cml0ZUNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3Iud3JpdGUoY2h1bmssIGlzTGFzdENodW5rKTtcbiAgICAgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTtcbiAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgd3JpdGVDYWxsYmFjayA9PT0gbnVsbCB8fCB3cml0ZUNhbGxiYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3cml0ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuaykge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmluc2VydEh0bWxBdEN1cnJlbnRQb3MoY2h1bmspO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgIH1cbiAgICAvL0hpYmVybmF0aW9uXG4gICAgX2Vuc3VyZUhpYmVybmF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3IuZW5kT2ZDaHVua0hpdCkge1xuICAgICAgICAgICAgdGhpcy5fdW5jb25zdW1lKHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90KTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vQ29uc3VtcHRpb25cbiAgICBfY29uc3VtZSgpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QrKztcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlcHJvY2Vzc29yLmFkdmFuY2UoKTtcbiAgICB9XG4gICAgX3VuY29uc3VtZShjb3VudCkge1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCAtPSBjb3VudDtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IucmV0cmVhdChjb3VudCk7XG4gICAgfVxuICAgIF9yZWNvbnN1bWVJblN0YXRlKHN0YXRlLCBjcCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgICAgIHRoaXMuX2NhbGxTdGF0ZShjcCk7XG4gICAgfVxuICAgIF9hZHZhbmNlQnkoY291bnQpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgKz0gY291bnQ7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuYWR2YW5jZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKHBhdHRlcm4sIGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkpIHtcbiAgICAgICAgICAgIC8vIFdlIHdpbGwgYWxyZWFkeSBoYXZlIGNvbnN1bWVkIG9uZSBjaGFyYWN0ZXIgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuXG4gICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkocGF0dGVybi5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy9Ub2tlbiBjcmVhdGlvblxuICAgIF9jcmVhdGVTdGFydFRhZ1Rva2VuKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5TVEFSVF9UQUcsXG4gICAgICAgICAgICB0YWdOYW1lOiAnJyxcbiAgICAgICAgICAgIHRhZ0lEOiBUQUdfSUQuVU5LTk9XTixcbiAgICAgICAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFja1NlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGF0dHJzOiBbXSxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigxKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUVuZFRhZ1Rva2VuKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5FTkRfVEFHLFxuICAgICAgICAgICAgdGFnTmFtZTogJycsXG4gICAgICAgICAgICB0YWdJRDogVEFHX0lELlVOS05PV04sXG4gICAgICAgICAgICBzZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgICAgICBhY2tTZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgICAgICBhdHRyczogW10sXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMiksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVDb21tZW50VG9rZW4ob2Zmc2V0KSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkNPTU1FTlQsXG4gICAgICAgICAgICBkYXRhOiAnJyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbihvZmZzZXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfY3JlYXRlRG9jdHlwZVRva2VuKGluaXRpYWxOYW1lKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkRPQ1RZUEUsXG4gICAgICAgICAgICBuYW1lOiBpbml0aWFsTmFtZSxcbiAgICAgICAgICAgIGZvcmNlUXVpcmtzOiBmYWxzZSxcbiAgICAgICAgICAgIHB1YmxpY0lkOiBudWxsLFxuICAgICAgICAgICAgc3lzdGVtSWQ6IG51bGwsXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5jdXJyZW50TG9jYXRpb24sXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaGFycykge1xuICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBjaGFycyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmN1cnJlbnRMb2NhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy9UYWcgYXR0cmlidXRlc1xuICAgIF9jcmVhdGVBdHRyKGF0dHJOYW1lRmlyc3RDaCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyID0ge1xuICAgICAgICAgICAgbmFtZTogYXR0ck5hbWVGaXJzdENoLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDApO1xuICAgIH1cbiAgICBfbGVhdmVBdHRyTmFtZSgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB2YXIgX2I7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIGlmIChnZXRUb2tlbkF0dHIodG9rZW4sIHRoaXMuY3VycmVudEF0dHIubmFtZSkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzLnB1c2godGhpcy5jdXJyZW50QXR0cik7XG4gICAgICAgICAgICBpZiAodG9rZW4ubG9jYXRpb24gJiYgdGhpcy5jdXJyZW50TG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRyTG9jYXRpb25zID0gKChfYSA9IChfYiA9IHRva2VuLmxvY2F0aW9uKS5hdHRycykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKF9iLmF0dHJzID0gT2JqZWN0LmNyZWF0ZShudWxsKSkpO1xuICAgICAgICAgICAgICAgIGF0dHJMb2NhdGlvbnNbdGhpcy5jdXJyZW50QXR0ci5uYW1lXSA9IHRoaXMuY3VycmVudExvY2F0aW9uO1xuICAgICAgICAgICAgICAgIC8vIFNldCBlbmQgbG9jYXRpb25cbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5kdXBsaWNhdGVBdHRyaWJ1dGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9sZWF2ZUF0dHJWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudExvY2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbi5lbmRMaW5lID0gdGhpcy5wcmVwcm9jZXNzb3IubGluZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZENvbCA9IHRoaXMucHJlcHJvY2Vzc29yLmNvbDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZE9mZnNldCA9IHRoaXMucHJlcHJvY2Vzc29yLm9mZnNldDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1Rva2VuIGVtaXNzaW9uXG4gICAgcHJlcGFyZVRva2VuKGN0KSB7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4oY3QubG9jYXRpb24pO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIGlmIChjdC5sb2NhdGlvbikge1xuICAgICAgICAgICAgY3QubG9jYXRpb24uZW5kTGluZSA9IHRoaXMucHJlcHJvY2Vzc29yLmxpbmU7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRDb2wgPSB0aGlzLnByZXByb2Nlc3Nvci5jb2wgKyAxO1xuICAgICAgICAgICAgY3QubG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5wcmVwcm9jZXNzb3Iub2Zmc2V0ICsgMTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKC0xKTtcbiAgICB9XG4gICAgZW1pdEN1cnJlbnRUYWdUb2tlbigpIHtcbiAgICAgICAgY29uc3QgY3QgPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICBjdC50YWdJRCA9IGdldFRhZ0lEKGN0LnRhZ05hbWUpO1xuICAgICAgICBpZiAoY3QudHlwZSA9PT0gVG9rZW5UeXBlLlNUQVJUX1RBRykge1xuICAgICAgICAgICAgdGhpcy5sYXN0U3RhcnRUYWdOYW1lID0gY3QudGFnTmFtZTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vblN0YXJ0VGFnKGN0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdC5hdHRycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lbmRUYWdXaXRoQXR0cmlidXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3Quc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVuZFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uRW5kVGFnKGN0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICB9XG4gICAgZW1pdEN1cnJlbnRDb21tZW50KGN0KSB7XG4gICAgICAgIHRoaXMucHJlcGFyZVRva2VuKGN0KTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uQ29tbWVudChjdCk7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudERvY3R5cGUoY3QpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICB0aGlzLmhhbmRsZXIub25Eb2N0eXBlKGN0KTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG4gICAgfVxuICAgIF9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKG5leHRMb2NhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBhIHBlbmRpbmcgY2hhcmFjdGVyIHRva2VuLCBtYWtlIGl0J3MgZW5kIGxvY2F0aW9uIGVxdWFsIHRvIHRoZVxuICAgICAgICAgICAgLy9jdXJyZW50IHRva2VuJ3Mgc3RhcnQgbG9jYXRpb24uXG4gICAgICAgICAgICBpZiAobmV4dExvY2F0aW9uICYmIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kTGluZSA9IG5leHRMb2NhdGlvbi5zdGFydExpbmU7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kQ29sID0gbmV4dExvY2F0aW9uLnN0YXJ0Q29sO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZE9mZnNldCA9IG5leHRMb2NhdGlvbi5zdGFydE9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25DaGFyYWN0ZXIodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uTnVsbENoYXJhY3Rlcih0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25XaGl0ZXNwYWNlQ2hhcmFjdGVyKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9lbWl0RU9GVG9rZW4oKSB7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMCk7XG4gICAgICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kTGluZSA9IGxvY2F0aW9uLnN0YXJ0TGluZTtcbiAgICAgICAgICAgIGxvY2F0aW9uLmVuZENvbCA9IGxvY2F0aW9uLnN0YXJ0Q29sO1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kT2Zmc2V0ID0gbG9jYXRpb24uc3RhcnRPZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbihsb2NhdGlvbik7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkVvZih7IHR5cGU6IFRva2VuVHlwZS5FT0YsIGxvY2F0aW9uIH0pO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgICAvL0NoYXJhY3RlcnMgZW1pc3Npb25cbiAgICAvL09QVElNSVpBVElPTjogc3BlY2lmaWNhdGlvbiB1c2VzIG9ubHkgb25lIHR5cGUgb2YgY2hhcmFjdGVyIHRva2VucyAob25lIHRva2VuIHBlciBjaGFyYWN0ZXIpLlxuICAgIC8vVGhpcyBjYXVzZXMgYSBodWdlIG1lbW9yeSBvdmVyaGVhZCBhbmQgYSBsb3Qgb2YgdW5uZWNlc3NhcnkgcGFyc2VyIGxvb3BzLiBwYXJzZTUgdXNlcyAzIGdyb3VwcyBvZiBjaGFyYWN0ZXJzLlxuICAgIC8vSWYgd2UgaGF2ZSBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUgZ3JvdXAsIHRoZSBwYXJzZXIgY2FuIHByb2Nlc3MgaXRcbiAgICAvL2FzIGEgc2luZ2xlIHNvbGlkIGNoYXJhY3RlciB0b2tlbi5cbiAgICAvL1NvLCB0aGVyZSBhcmUgMyB0eXBlcyBvZiBjaGFyYWN0ZXIgdG9rZW5zIGluIHBhcnNlNTpcbiAgICAvLzEpVG9rZW5UeXBlLk5VTExfQ0hBUkFDVEVSIC0gXFx1MDAwMC1jaGFyYWN0ZXIgc2VxdWVuY2VzIChlLmcuICdcXHUwMDAwXFx1MDAwMFxcdTAwMDAnKVxuICAgIC8vMilUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVIgLSBhbnkgd2hpdGVzcGFjZS9uZXctbGluZSBjaGFyYWN0ZXIgc2VxdWVuY2VzIChlLmcuICdcXG4gIFxcclxcdCAgIFxcZicpXG4gICAgLy8zKVRva2VuVHlwZS5DSEFSQUNURVIgLSBhbnkgY2hhcmFjdGVyIHNlcXVlbmNlIHdoaWNoIGRvbid0IGJlbG9uZyB0byBncm91cHMgMSBhbmQgMiAoZS5nLiAnYWJjZGVmMTIzNEBAIyQlXicpXG4gICAgX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi50eXBlICE9PSB0eXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKHRoaXMuY3VycmVudExvY2F0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmNoYXJzICs9IGNoO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jcmVhdGVDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaCk7XG4gICAgfVxuICAgIF9lbWl0Q29kZVBvaW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBpc1doaXRlc3BhY2UoY3ApXG4gICAgICAgICAgICA/IFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUlxuICAgICAgICAgICAgOiBjcCA9PT0gJC5OVUxMXG4gICAgICAgICAgICAgICAgPyBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVJcbiAgICAgICAgICAgICAgICA6IFRva2VuVHlwZS5DSEFSQUNURVI7XG4gICAgICAgIHRoaXMuX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbih0eXBlLCBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCkpO1xuICAgIH1cbiAgICAvL05PVEU6IHVzZWQgd2hlbiB3ZSBlbWl0IGNoYXJhY3RlcnMgZXhwbGljaXRseS5cbiAgICAvL1RoaXMgaXMgYWx3YXlzIGZvciBub24td2hpdGVzcGFjZSBhbmQgbm9uLW51bGwgY2hhcmFjdGVycywgd2hpY2ggYWxsb3dzIHVzIHRvIGF2b2lkIGFkZGl0aW9uYWwgY2hlY2tzLlxuICAgIF9lbWl0Q2hhcnMoY2gpIHtcbiAgICAgICAgdGhpcy5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKFRva2VuVHlwZS5DSEFSQUNURVIsIGNoKTtcbiAgICB9XG4gICAgLy8gQ2hhcmFjdGVyIHJlZmVyZW5jZSBoZWxwZXJzXG4gICAgX21hdGNoTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG4gICAgICAgIGxldCBleGNlc3MgPSAwO1xuICAgICAgICBsZXQgd2l0aG91dFNlbWljb2xvbiA9IGZhbHNlO1xuICAgICAgICBmb3IgKGxldCBpID0gMCwgY3VycmVudCA9IGh0bWxEZWNvZGVUcmVlWzBdOyBpID49IDA7IGNwID0gdGhpcy5fY29uc3VtZSgpKSB7XG4gICAgICAgICAgICBpID0gZGV0ZXJtaW5lQnJhbmNoKGh0bWxEZWNvZGVUcmVlLCBjdXJyZW50LCBpICsgMSwgY3ApO1xuICAgICAgICAgICAgaWYgKGkgPCAwKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZXhjZXNzICs9IDE7XG4gICAgICAgICAgICBjdXJyZW50ID0gaHRtbERlY29kZVRyZWVbaV07XG4gICAgICAgICAgICBjb25zdCBtYXNrZWQgPSBjdXJyZW50ICYgQmluVHJpZUZsYWdzLlZBTFVFX0xFTkdUSDtcbiAgICAgICAgICAgIC8vIElmIHRoZSBicmFuY2ggaXMgYSB2YWx1ZSwgc3RvcmUgaXQgYW5kIGNvbnRpbnVlXG4gICAgICAgICAgICBpZiAobWFza2VkKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIG1hc2sgaXMgdGhlIG51bWJlciBvZiBieXRlcyBvZiB0aGUgdmFsdWUsIGluY2x1ZGluZyB0aGUgY3VycmVudCBieXRlLlxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlTGVuZ3RoID0gKG1hc2tlZCA+PiAxNCkgLSAxO1xuICAgICAgICAgICAgICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZXMgdGhhdCBhcmVuJ3QgdGVybWluYXRlZCBwcm9wZXJseSBhcmVuJ3QgcGFyc2VkLCBhbmQgc2hvdWxkbid0IGxlYWQgdG8gYSBwYXJzZXIgZXJyb3IuXG4gICAgICAgICAgICAgICAgLy8gU2VlIHRoZSBleGFtcGxlIGluIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlLXN0YXRlXG4gICAgICAgICAgICAgICAgaWYgKGNwICE9PSAkLlNFTUlDT0xPTiAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgaXNFbnRpdHlJbkF0dHJpYnV0ZUludmFsaWRFbmQodGhpcy5wcmVwcm9jZXNzb3IucGVlaygxKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9OT1RFOiB3ZSBkb24ndCBmbHVzaCBhbGwgY29uc3VtZWQgY29kZSBwb2ludHMgaGVyZSwgYW5kIGluc3RlYWQgc3dpdGNoIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHN0YXRlIGFmdGVyXG4gICAgICAgICAgICAgICAgICAgIC8vZW1pdHRpbmcgYW4gYW1wZXJzYW5kLiBUaGlzIGlzIGZpbmUsIGFzIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHdvbid0IGJlIHBhcnNlZCBkaWZmZXJlbnRseSBpbiBhdHRyaWJ1dGVzLlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBbJC5BTVBFUlNBTkRdO1xuICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIG92ZXIgdGhlIHZhbHVlLlxuICAgICAgICAgICAgICAgICAgICBpICs9IHZhbHVlTGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHN1cnJvZ2F0ZSBwYWlyLCBjb25zdW1lIHRoZSBuZXh0IHR3byBieXRlcy5cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlTGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbaHRtbERlY29kZVRyZWVbaV0gJiB+QmluVHJpZUZsYWdzLlZBTFVFX0xFTkdUSF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlTGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gW2h0bWxEZWNvZGVUcmVlWysraV1dXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW2h0bWxEZWNvZGVUcmVlWysraV0sIGh0bWxEZWNvZGVUcmVlWysraV1dO1xuICAgICAgICAgICAgICAgICAgICBleGNlc3MgPSAwO1xuICAgICAgICAgICAgICAgICAgICB3aXRob3V0U2VtaWNvbG9uID0gY3AgIT09ICQuU0VNSUNPTE9OO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodmFsdWVMZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIHplcm8tbGVuZ3RoLCB3ZSdyZSBkb25lLlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25zdW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl91bmNvbnN1bWUoZXhjZXNzKTtcbiAgICAgICAgaWYgKHdpdGhvdXRTZW1pY29sb24gJiYgIXRoaXMucHJlcHJvY2Vzc29yLmVuZE9mQ2h1bmtIaXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXZSB3YW50IHRvIGVtaXQgdGhlIGVycm9yIGFib3ZlIG9uIHRoZSBjb2RlIHBvaW50IGFmdGVyIHRoZSBlbnRpdHkuXG4gICAgICAgIC8vIFdlIGFsd2F5cyBjb25zdW1lIG9uZSBjb2RlIHBvaW50IHRvbyBtYW55IGluIHRoZSBsb29wLCBhbmQgd2Ugd2FpdCB0b1xuICAgICAgICAvLyB1bmNvbnN1bWUgaXQgdW50aWwgYWZ0ZXIgdGhlIGVycm9yIGlzIGVtaXR0ZWQuXG4gICAgICAgIHRoaXMuX3VuY29uc3VtZSgxKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgX2lzQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGUoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5yZXR1cm5TdGF0ZSA9PT0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQgfHxcbiAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPT09IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEIHx8XG4gICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID09PSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQpO1xuICAgIH1cbiAgICBfZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLl9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ2FsbGluZyBzdGF0ZXMgdGhpcyB3YXkgdHVybnMgb3V0IHRvIGJlIG11Y2ggZmFzdGVyIHRoYW4gYW55IG90aGVyIGFwcHJvYWNoLlxuICAgIF9jYWxsU3RhdGUoY3ApIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRBVEE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURhdGEoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlBMQUlOVEVYVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUGxhaW50ZXh0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQV9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQV9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0TGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVF9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVF9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVTdGFydERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hEYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVFbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0FUVFJJQlVURV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX1ZBTFVFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVBdHRyaWJ1dGVWYWx1ZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTZWxmQ2xvc2luZ1N0YXJ0VGFnKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQk9HVVNfQ09NTUVOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNDb21tZW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZU1hcmt1cERlY2xhcmF0aW9uT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfU1RBUlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRTdGFydChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfU1RBUlRfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudFN0YXJ0RGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50TGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Rhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Rhc2hEYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9FTkRfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudEVuZERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudEVuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfRU5EX0JBTkc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmRCYW5nKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlUHVibGljSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJTaW5nbGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQk9HVVNfRE9DVFlQRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ0RBVEFfU0VDVElPTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ0RBVEFfU0VDVElPTl9CUkFDS0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb25CcmFja2V0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ0RBVEFfU0VDVElPTl9FTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbkVuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLk5BTUVEX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQU1CSUdVT1VTX0FNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQW1iaWd1b3VzQW1wZXJzYW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2VTdGFydChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUhleGFkZW1pY2FsQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuREVDSU1BTF9DSEFSQUNURVJfUkVGRVJFTkNFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEZWNpbWFsQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZUVuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHN0YXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU3RhdGUgbWFjaGluZVxuICAgIC8vIERhdGEgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURhdGEoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlRBR19PUEVOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyAgUkNEQVRBIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSY2RhdGEoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSYXd0ZXh0KGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFBMQUlOVEVYVCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUGxhaW50ZXh0KGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gVGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVTdGFydFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgICAgICBjYXNlICQuRVhDTEFNQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU47XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRU5EX1RBR19PUEVOO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlFVRVNUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkUXVlc3Rpb25NYXJrSW5zdGVhZE9mVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigxKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNDb21tZW50KGNwKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZCZWZvcmVUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmludmFsaWRGaXJzdENoYXJhY3Rlck9mVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEYXRhKGNwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIC8vIEVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRW5kVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkJlZm9yZVRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmludmFsaWRGaXJzdENoYXJhY3Rlck9mVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNDb21tZW50KGNwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIC8vIFRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVUYWdOYW1lKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0VMRl9DTE9TSU5HX1NUQVJUX1RBRztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi50YWdOYW1lICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi50YWdOYW1lICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGlzQXNjaWlVcHBlcihjcCkgPyB0b0FzY2lpTG93ZXIoY3ApIDogY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJDREFUQSBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhTGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBX0VORF9UQUdfT1BFTjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQ0RBVEEgZW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSY2RhdGFFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQV9FTkRfVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoYW5kbGVTcGVjaWFsRW5kVGFnKF9jcCkge1xuICAgICAgICBpZiAoIXRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgodGhpcy5sYXN0U3RhcnRUYWdOYW1lLCBmYWxzZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbigpO1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICB0b2tlbi50YWdOYW1lID0gdGhpcy5sYXN0U3RhcnRUYWdOYW1lO1xuICAgICAgICBjb25zdCBjcCA9IHRoaXMucHJlcHJvY2Vzc29yLnBlZWsodGhpcy5sYXN0U3RhcnRUYWdOYW1lLmxlbmd0aCk7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkodGhpcy5sYXN0U3RhcnRUYWdOYW1lLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeSh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0VMRl9DTE9TSU5HX1NUQVJUX1RBRztcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkodGhpcy5sYXN0U3RhcnRUYWdOYW1lLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQ0RBVEEgZW5kIHRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSY2RhdGFFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJBV1RFWFQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfT1BFTjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJBV1RFWFQgZW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSYXd0ZXh0RW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJBV1RFWFQgZW5kIHRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSYXd0ZXh0RW5kVGFnTmFtZShjcCkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVTcGVjaWFsRW5kVGFnKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhTGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwhJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZW5kIHRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRW5kVGFnTmFtZShjcCkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVTcGVjaWFsRW5kVGFnKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVTdGFydChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0g7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlIHN0YXJ0IGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVTdGFydERhc2goY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIO1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJz4nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkTGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydChjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnTmFtZShjcCkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVTcGVjaWFsRW5kVGFnKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIHN0YXJ0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnQoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgoJCQuU0NSSVBULCBmYWxzZSkgJiZcbiAgICAgICAgICAgIGlzU2NyaXB0RGF0YURvdWJsZUVzY2FwZVNlcXVlbmNlRW5kKHRoaXMucHJlcHJvY2Vzc29yLnBlZWsoJCQuU0NSSVBULmxlbmd0aCkpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgJCQuU0NSSVBULmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludCh0aGlzLl9jb25zdW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoRGFzaChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc+Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZExlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EO1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCcvJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZUVuZChjcCkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aCgkJC5TQ1JJUFQsIGZhbHNlKSAmJlxuICAgICAgICAgICAgaXNTY3JpcHREYXRhRG91YmxlRXNjYXBlU2VxdWVuY2VFbmQodGhpcy5wcmVwcm9jZXNzb3IucGVlaygkJC5TQ1JJUFQubGVuZ3RoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAkJC5TQ1JJUFQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KHRoaXMuX2NvbnN1bWUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIGF0dHJpYnV0ZSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FUVVBTFNfU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCc9Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzpcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJOYW1lKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FUVVBTFNfU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0ck5hbWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9WQUxVRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzpcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOlxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkQ2hhcmFjdGVySW5BdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChpc0FzY2lpVXBwZXIoY3ApID8gdG9Bc2NpaUxvd2VyKGNwKSA6IGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBhdHRyaWJ1dGUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVOYW1lKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0VMRl9DTE9TSU5HX1NUQVJUX1RBRztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FUVVBTFNfU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX1ZBTFVFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIGF0dHJpYnV0ZSB2YWx1ZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlQXR0cmlidXRlVmFsdWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0F0dHJpYnV0ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIHZhbHVlIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIHZhbHVlICh1bnF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRTpcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5FUVVBTFNfU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5HUkFWRV9BQ0NFTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIGF0dHJpYnV0ZSB2YWx1ZSAocXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTZWxmLWNsb3Npbmcgc3RhcnQgdGFnIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTZWxmQ2xvc2luZ1N0YXJ0VGFnKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgdG9rZW4uc2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZFNvbGlkdXNJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJvZ3VzIGNvbW1lbnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJvZ3VzQ29tbWVudChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBNYXJrdXAgZGVjbGFyYXRpb24gb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkRBU0hfREFTSCwgdHJ1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigkJC5EQVNIX0RBU0gubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9TVEFSVDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkRPQ1RZUEUsIGZhbHNlKSkge1xuICAgICAgICAgICAgLy8gTk9URTogRG9jdHlwZXMgdG9rZW5zIGFyZSBjcmVhdGVkIHdpdGhvdXQgZml4ZWQgb2Zmc2V0cy4gV2Uga2VlcCB0cmFjayBvZiB0aGUgbW9tZW50IGEgZG9jdHlwZSAqbWlnaHQqIHN0YXJ0IGhlcmUuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKCQkLkRPQ1RZUEUubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkNEQVRBX1NUQVJULCB0cnVlKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jZGF0YUluSHRtbENvbnRlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigkJC5DREFUQV9TVEFSVC5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhID0gJ1tDREFUQVsnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogU2VxdWVuY2UgbG9va3VwcyBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSwgbG9va3VwXG4gICAgICAgIC8vcmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGFuZCB3ZSB3aWxsIG5lZWQgdG8gc3RhcnQgb3Zlci5cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50KTtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigyKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRTdGFydChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfU1RBUlRfREFTSDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgc3RhcnQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudFN0YXJ0RGFzaChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICc8JztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFORztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJzwnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZyhjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0g7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kRGFzaChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIGRhc2ggZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoRGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgIT09ICQuR1JFQVRFUl9USEFOX1NJR04gJiYgY3AgIT09ICQuRU9GKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5lc3RlZENvbW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORDtcbiAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kKGNwKTtcbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZERhc2goY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRFbmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkRfQkFORztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgZW5kIGJhbmcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRFbmRCYW5nKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctLSEnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbmNvcnJlY3RseUNsb3NlZENvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4obnVsbCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZWZvcmVEb2N0eXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIERPQ1RZUEUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihTdHJpbmcuZnJvbUNoYXJDb2RlKHRvQXNjaWlMb3dlcihjcCkpKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX05BTUU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4oUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4oU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLm5hbWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLm5hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVOYW1lKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLlBVQkxJQywgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLlNZU1RFTSwgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvL05PVEU6IHNlcXVlbmNlIGxvb2t1cCBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSBsb29rdXBcbiAgICAgICAgICAgICAgICAvL3Jlc3VsdHMgYXJlIG5vIGxvbmdlciB2YWxpZCBhbmQgd2Ugd2lsbCBuZWVkIHRvIHN0YXJ0IG92ZXIuXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHB1YmxpYyBrZXl3b3JkIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZCk7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZCk7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTaW5nbGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSUztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZXR3ZWVuIERPQ1RZUEUgcHVibGljIGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgc3lzdGVtIGtleXdvcmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCb2d1cyBET0NUWVBFIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCb2d1c0RvY3R5cGUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENEQVRBIHNlY3Rpb24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNkYXRhU2VjdGlvbihjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUklHSFRfU1FVQVJFX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTl9CUkFDS0VUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5DZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ0RBVEEgc2VjdGlvbiBicmFja2V0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDZGF0YVNlY3Rpb25CcmFja2V0KGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5SSUdIVF9TUVVBUkVfQlJBQ0tFVCkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT05fRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTjtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDREFUQSBzZWN0aW9uIGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ2RhdGFTZWN0aW9uRW5kKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlJJR0hUX1NRVUFSRV9CUkFDS0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddXScpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLk5VTUJFUl9TSUdOKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlBbHBoYU51bWVyaWMoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTkFNRURfQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUodGhpcy5yZXR1cm5TdGF0ZSwgY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoUmVzdWx0ID0gdGhpcy5fbWF0Y2hOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIC8vTk9URTogTWF0Y2hpbmcgY2FuIGJlIGFicnVwdGVkIGJ5IGhpYmVybmF0aW9uLiBJbiB0aGF0IGNhc2UsIG1hdGNoXG4gICAgICAgIC8vcmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGFuZCB3ZSB3aWxsIG5lZWQgdG8gc3RhcnQgb3Zlci5cbiAgICAgICAgaWYgKHRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIC8vIFN0YXkgaW4gdGhlIHN0YXRlLCB0cnkgYWdhaW4uXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobWF0Y2hSZXN1bHQpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0Y2hSZXN1bHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UobWF0Y2hSZXN1bHRbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucmV0dXJuU3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFNQklHVU9VU19BTVBFUlNBTkQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQW1iaWd1b3MgYW1wZXJzYW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBbWJpZ3VvdXNBbXBlcnNhbmQoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlBbHBoYU51bWVyaWMoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNwID09PSAkLlNFTUlDT0xPTikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUodGhpcy5yZXR1cm5TdGF0ZSwgY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gMDtcbiAgICAgICAgaWYgKGNwID09PSAkLkxBVElOX1NNQUxMX1ggfHwgY3AgPT09ICQuTEFUSU5fQ0FQSVRBTF9YKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVDtcbiAgICAgICAgfVxuICAgICAgICAvLyBJbmxpbmVkIGRlY2ltYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGFydCBzdGF0ZVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpRGlnaXQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREVDSU1BTF9DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVEZWNpbWFsQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJzZW5jZU9mRGlnaXRzSW5OdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLkFNUEVSU0FORCk7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5OVU1CRVJfU0lHTik7XG4gICAgICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKHRoaXMucmV0dXJuU3RhdGUsIGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBIZXhhZGVtaWNhbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXJ0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZVN0YXJ0KGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpSGV4RGlnaXQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLk5VTUJFUl9TSUdOKTtcbiAgICAgICAgICAgIHRoaXMuX3VuY29uc3VtZSgyKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLnJldHVyblN0YXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEhleGFkZW1pY2FsIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUhleGFkZW1pY2FsQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpVXBwZXJIZXhEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSB0aGlzLmNoYXJSZWZDb2RlICogMTYgKyBjcCAtIDB4Mzc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VySGV4RGlnaXQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gdGhpcy5jaGFyUmVmQ29kZSAqIDE2ICsgY3AgLSAweDU3O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSB0aGlzLmNoYXJSZWZDb2RlICogMTYgKyBjcCAtIDB4MzA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3AgPT09ICQuU0VNSUNPTE9OKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlRW5kKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBEZWNpbWFsIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURlY2ltYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSB0aGlzLmNoYXJSZWZDb2RlICogMTAgKyBjcCAtIDB4MzA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3AgPT09ICQuU0VNSUNPTE9OKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlRW5kKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBOdW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UgZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlRW5kKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmNoYXJSZWZDb2RlID09PSAkLk5VTEwpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubnVsbENoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gJC5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5jaGFyUmVmQ29kZSA+IDExMTQxMTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuY2hhcmFjdGVyUmVmZXJlbmNlT3V0c2lkZVVuaWNvZGVSYW5nZSk7XG4gICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gJC5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNTdXJyb2dhdGUodGhpcy5jaGFyUmVmQ29kZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuc3Vycm9nYXRlQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1VuZGVmaW5lZENvZGVQb2ludCh0aGlzLmNoYXJSZWZDb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5ub25jaGFyYWN0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzQ29udHJvbENvZGVQb2ludCh0aGlzLmNoYXJSZWZDb2RlKSB8fCB0aGlzLmNoYXJSZWZDb2RlID09PSAkLkNBUlJJQUdFX1JFVFVSTikge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jb250cm9sQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gQzFfQ09OVFJPTFNfUkVGRVJFTkNFX1JFUExBQ0VNRU5UUy5nZXQodGhpcy5jaGFyUmVmQ29kZSk7XG4gICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSByZXBsYWNlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UodGhpcy5jaGFyUmVmQ29kZSk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUodGhpcy5yZXR1cm5TdGF0ZSwgY3ApO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsICJpbXBvcnQgeyBUQUdfSUQgYXMgJCwgTlMsIGlzTnVtYmVyZWRIZWFkZXIgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG4vL0VsZW1lbnQgdXRpbHNcbmNvbnN0IElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRUQgPSBuZXcgU2V0KFskLkRELCAkLkRULCAkLkxJLCAkLk9QVEdST1VQLCAkLk9QVElPTiwgJC5QLCAkLlJCLCAkLlJQLCAkLlJULCAkLlJUQ10pO1xuY29uc3QgSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRF9USE9ST1VHSExZID0gbmV3IFNldChbXG4gICAgLi4uSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRCxcbiAgICAkLkNBUFRJT04sXG4gICAgJC5DT0xHUk9VUCxcbiAgICAkLlRCT0RZLFxuICAgICQuVEQsXG4gICAgJC5URk9PVCxcbiAgICAkLlRILFxuICAgICQuVEhFQUQsXG4gICAgJC5UUixcbl0pO1xuY29uc3QgU0NPUElOR19FTEVNRU5UX05TID0gbmV3IE1hcChbXG4gICAgWyQuQVBQTEVULCBOUy5IVE1MXSxcbiAgICBbJC5DQVBUSU9OLCBOUy5IVE1MXSxcbiAgICBbJC5IVE1MLCBOUy5IVE1MXSxcbiAgICBbJC5NQVJRVUVFLCBOUy5IVE1MXSxcbiAgICBbJC5PQkpFQ1QsIE5TLkhUTUxdLFxuICAgIFskLlRBQkxFLCBOUy5IVE1MXSxcbiAgICBbJC5URCwgTlMuSFRNTF0sXG4gICAgWyQuVEVNUExBVEUsIE5TLkhUTUxdLFxuICAgIFskLlRILCBOUy5IVE1MXSxcbiAgICBbJC5BTk5PVEFUSU9OX1hNTCwgTlMuTUFUSE1MXSxcbiAgICBbJC5NSSwgTlMuTUFUSE1MXSxcbiAgICBbJC5NTiwgTlMuTUFUSE1MXSxcbiAgICBbJC5NTywgTlMuTUFUSE1MXSxcbiAgICBbJC5NUywgTlMuTUFUSE1MXSxcbiAgICBbJC5NVEVYVCwgTlMuTUFUSE1MXSxcbiAgICBbJC5ERVNDLCBOUy5TVkddLFxuICAgIFskLkZPUkVJR05fT0JKRUNULCBOUy5TVkddLFxuICAgIFskLlRJVExFLCBOUy5TVkddLFxuXSk7XG5jb25zdCBOQU1FRF9IRUFERVJTID0gWyQuSDEsICQuSDIsICQuSDMsICQuSDQsICQuSDUsICQuSDZdO1xuY29uc3QgVEFCTEVfUk9XX0NPTlRFWFQgPSBbJC5UUiwgJC5URU1QTEFURSwgJC5IVE1MXTtcbmNvbnN0IFRBQkxFX0JPRFlfQ09OVEVYVCA9IFskLlRCT0RZLCAkLlRGT09ULCAkLlRIRUFELCAkLlRFTVBMQVRFLCAkLkhUTUxdO1xuY29uc3QgVEFCTEVfQ09OVEVYVCA9IFskLlRBQkxFLCAkLlRFTVBMQVRFLCAkLkhUTUxdO1xuY29uc3QgVEFCTEVfQ0VMTFMgPSBbJC5URCwgJC5USF07XG4vL1N0YWNrIG9mIG9wZW4gZWxlbWVudHNcbmV4cG9ydCBjbGFzcyBPcGVuRWxlbWVudFN0YWNrIHtcbiAgICBnZXQgY3VycmVudFRtcGxDb250ZW50T3JOb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNJblRlbXBsYXRlKCkgPyB0aGlzLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudCh0aGlzLmN1cnJlbnQpIDogdGhpcy5jdXJyZW50O1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCwgdHJlZUFkYXB0ZXIsIGhhbmRsZXIpIHtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyO1xuICAgICAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB0aGlzLml0ZW1zID0gW107XG4gICAgICAgIHRoaXMudGFnSURzID0gW107XG4gICAgICAgIHRoaXMuc3RhY2tUb3AgPSAtMTtcbiAgICAgICAgdGhpcy50bXBsQ291bnQgPSAwO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdJZCA9ICQuVU5LTk9XTjtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gZG9jdW1lbnQ7XG4gICAgfVxuICAgIC8vSW5kZXggb2YgZWxlbWVudFxuICAgIF9pbmRleE9mKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMubGFzdEluZGV4T2YoZWxlbWVudCwgdGhpcy5zdGFja1RvcCk7XG4gICAgfVxuICAgIC8vVXBkYXRlIGN1cnJlbnQgZWxlbWVudFxuICAgIF9pc0luVGVtcGxhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRUYWdJZCA9PT0gJC5URU1QTEFURSAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmN1cnJlbnQpID09PSBOUy5IVE1MO1xuICAgIH1cbiAgICBfdXBkYXRlQ3VycmVudEVsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IHRoaXMuaXRlbXNbdGhpcy5zdGFja1RvcF07XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gdGhpcy50YWdJRHNbdGhpcy5zdGFja1RvcF07XG4gICAgfVxuICAgIC8vTXV0YXRpb25zXG4gICAgcHVzaChlbGVtZW50LCB0YWdJRCkge1xuICAgICAgICB0aGlzLnN0YWNrVG9wKys7XG4gICAgICAgIHRoaXMuaXRlbXNbdGhpcy5zdGFja1RvcF0gPSBlbGVtZW50O1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLnRhZ0lEc1t0aGlzLnN0YWNrVG9wXSA9IHRhZ0lEO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdJZCA9IHRhZ0lEO1xuICAgICAgICBpZiAodGhpcy5faXNJblRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgIHRoaXMudG1wbENvdW50Kys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVB1c2goZWxlbWVudCwgdGFnSUQsIHRydWUpO1xuICAgIH1cbiAgICBwb3AoKSB7XG4gICAgICAgIGNvbnN0IHBvcHBlZCA9IHRoaXMuY3VycmVudDtcbiAgICAgICAgaWYgKHRoaXMudG1wbENvdW50ID4gMCAmJiB0aGlzLl9pc0luVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgdGhpcy50bXBsQ291bnQtLTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWNrVG9wLS07XG4gICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkl0ZW1Qb3AocG9wcGVkLCB0cnVlKTtcbiAgICB9XG4gICAgcmVwbGFjZShvbGRFbGVtZW50LCBuZXdFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2Yob2xkRWxlbWVudCk7XG4gICAgICAgIHRoaXMuaXRlbXNbaWR4XSA9IG5ld0VsZW1lbnQ7XG4gICAgICAgIGlmIChpZHggPT09IHRoaXMuc3RhY2tUb3ApIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudCA9IG5ld0VsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0QWZ0ZXIocmVmZXJlbmNlRWxlbWVudCwgbmV3RWxlbWVudCwgbmV3RWxlbWVudElEKSB7XG4gICAgICAgIGNvbnN0IGluc2VydGlvbklkeCA9IHRoaXMuX2luZGV4T2YocmVmZXJlbmNlRWxlbWVudCkgKyAxO1xuICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld0VsZW1lbnQpO1xuICAgICAgICB0aGlzLnRhZ0lEcy5zcGxpY2UoaW5zZXJ0aW9uSWR4LCAwLCBuZXdFbGVtZW50SUQpO1xuICAgICAgICB0aGlzLnN0YWNrVG9wKys7XG4gICAgICAgIGlmIChpbnNlcnRpb25JZHggPT09IHRoaXMuc3RhY2tUb3ApIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVB1c2godGhpcy5jdXJyZW50LCB0aGlzLmN1cnJlbnRUYWdJZCwgaW5zZXJ0aW9uSWR4ID09PSB0aGlzLnN0YWNrVG9wKTtcbiAgICB9XG4gICAgcG9wVW50aWxUYWdOYW1lUG9wcGVkKHRhZ05hbWUpIHtcbiAgICAgICAgbGV0IHRhcmdldElkeCA9IHRoaXMuc3RhY2tUb3AgKyAxO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICB0YXJnZXRJZHggPSB0aGlzLnRhZ0lEcy5sYXN0SW5kZXhPZih0YWdOYW1lLCB0YXJnZXRJZHggLSAxKTtcbiAgICAgICAgfSB3aGlsZSAodGFyZ2V0SWR4ID4gMCAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW3RhcmdldElkeF0pICE9PSBOUy5IVE1MKTtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgodGFyZ2V0SWR4IDwgMCA/IDAgOiB0YXJnZXRJZHgpO1xuICAgIH1cbiAgICBzaG9ydGVuVG9MZW5ndGgoaWR4KSB7XG4gICAgICAgIHdoaWxlICh0aGlzLnN0YWNrVG9wID49IGlkeCkge1xuICAgICAgICAgICAgY29uc3QgcG9wcGVkID0gdGhpcy5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKHRoaXMudG1wbENvdW50ID4gMCAmJiB0aGlzLl9pc0luVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wbENvdW50IC09IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YWNrVG9wLS07XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChwb3BwZWQsIHRoaXMuc3RhY2tUb3AgPCBpZHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHBvcFVudGlsRWxlbWVudFBvcHBlZChlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICB9XG4gICAgcG9wVW50aWxQb3BwZWQodGFnTmFtZXMsIHRhcmdldE5TKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgdGFyZ2V0TlMpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aChpZHggPCAwID8gMCA6IGlkeCk7XG4gICAgfVxuICAgIHBvcFVudGlsTnVtYmVyZWRIZWFkZXJQb3BwZWQoKSB7XG4gICAgICAgIHRoaXMucG9wVW50aWxQb3BwZWQoTkFNRURfSEVBREVSUywgTlMuSFRNTCk7XG4gICAgfVxuICAgIHBvcFVudGlsVGFibGVDZWxsUG9wcGVkKCkge1xuICAgICAgICB0aGlzLnBvcFVudGlsUG9wcGVkKFRBQkxFX0NFTExTLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcG9wQWxsVXBUb0h0bWxFbGVtZW50KCkge1xuICAgICAgICAvL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgdGhlIHJvb3QgPGh0bWw+IGVsZW1lbnQgaXMgYWx3YXlzIGZpcnN0IGluIHRoZSBvcGVuIGVsZW1lbnQgc3RhY2ssIHNvXG4gICAgICAgIC8vd2UgcGVyZm9ybSB0aGlzIGZhc3Qgc3RhY2sgY2xlYW4gdXAuXG4gICAgICAgIHRoaXMudG1wbENvdW50ID0gMDtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgoMSk7XG4gICAgfVxuICAgIF9pbmRleE9mVGFnTmFtZXModGFnTmFtZXMsIG5hbWVzcGFjZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmICh0YWdOYW1lcy5pbmNsdWRlcyh0aGlzLnRhZ0lEc1tpXSkgJiYgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSkgPT09IG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG8odGFnTmFtZXMsIHRhcmdldE5TKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgdGFyZ2V0TlMpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aChpZHggKyAxKTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJCYWNrVG8oVEFCTEVfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIGNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9CT0RZX0NPTlRFWFQsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBjbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9ST1dfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIHJlbW92ZShlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCk7XG4gICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFnSURzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbkl0ZW1Qb3AoZWxlbWVudCwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vU2VhcmNoXG4gICAgdHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKSB7XG4gICAgICAgIC8vUHJvcGVybHkgbmVzdGVkIDxib2R5PiBlbGVtZW50IChzaG91bGQgYmUgc2Vjb25kIGVsZW1lbnQgaW4gc3RhY2spLlxuICAgICAgICByZXR1cm4gdGhpcy5zdGFja1RvcCA+PSAxICYmIHRoaXMudGFnSURzWzFdID09PSAkLkJPRFkgPyB0aGlzLml0ZW1zWzFdIDogbnVsbDtcbiAgICB9XG4gICAgY29udGFpbnMoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5kZXhPZihlbGVtZW50KSA+IC0xO1xuICAgIH1cbiAgICBnZXRDb21tb25BbmNlc3RvcihlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRJZHggPSB0aGlzLl9pbmRleE9mKGVsZW1lbnQpIC0gMTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRJZHggPj0gMCA/IHRoaXMuaXRlbXNbZWxlbWVudElkeF0gOiBudWxsO1xuICAgIH1cbiAgICBpc1Jvb3RIdG1sRWxlbWVudEN1cnJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID09PSAwICYmIHRoaXMudGFnSURzWzBdID09PSAkLkhUTUw7XG4gICAgfVxuICAgIC8vRWxlbWVudCBpbiBzY29wZVxuICAgIGhhc0luU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoU0NPUElOR19FTEVNRU5UX05TLmdldCh0bikgPT09IG5zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNOdW1iZXJlZEhlYWRlckluU2NvcGUoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAoaXNOdW1iZXJlZEhlYWRlcih0bikgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc0luTGlzdEl0ZW1TY29wZSh0YWdOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoKHRuID09PSAkLlVMIHx8IHRuID09PSAkLk9MKSAmJiBucyA9PT0gTlMuSFRNTCkgfHwgU0NPUElOR19FTEVNRU5UX05TLmdldCh0bikgPT09IG5zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJbkJ1dHRvblNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCh0biA9PT0gJC5CVVRUT04gJiYgbnMgPT09IE5TLkhUTUwpIHx8IFNDT1BJTkdfRUxFTUVOVF9OUy5nZXQodG4pID09PSBucykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzSW5UYWJsZVNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChucyAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuVEVNUExBVEUgfHwgdG4gPT09ICQuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChucyAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRGT09UKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzSW5TZWxlY3RTY29wZSh0YWdOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAobnMgIT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuICE9PSAkLk9QVElPTiAmJiB0biAhPT0gJC5PUFRHUk9VUCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy9JbXBsaWVkIGVuZCB0YWdzXG4gICAgZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpIHtcbiAgICAgICAgd2hpbGUgKElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRUQuaGFzKHRoaXMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZW5lcmF0ZUltcGxpZWRFbmRUYWdzVGhvcm91Z2hseSgpIHtcbiAgICAgICAgd2hpbGUgKElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRURfVEhPUk9VR0hMWS5oYXModGhpcy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKGV4Y2x1c2lvbklkKSB7XG4gICAgICAgIHdoaWxlICh0aGlzLmN1cnJlbnRUYWdJZCAhPT0gZXhjbHVzaW9uSWQgJiYgSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRF9USE9ST1VHSExZLmhhcyh0aGlzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1vcGVuLWVsZW1lbnQtc3RhY2suanMubWFwIiwgIi8vQ29uc3RcbmNvbnN0IE5PQUhfQVJLX0NBUEFDSVRZID0gMztcbmV4cG9ydCB2YXIgRW50cnlUeXBlO1xuKGZ1bmN0aW9uIChFbnRyeVR5cGUpIHtcbiAgICBFbnRyeVR5cGVbRW50cnlUeXBlW1wiTWFya2VyXCJdID0gMF0gPSBcIk1hcmtlclwiO1xuICAgIEVudHJ5VHlwZVtFbnRyeVR5cGVbXCJFbGVtZW50XCJdID0gMV0gPSBcIkVsZW1lbnRcIjtcbn0pKEVudHJ5VHlwZSA9IEVudHJ5VHlwZSB8fCAoRW50cnlUeXBlID0ge30pKTtcbmNvbnN0IE1BUktFUiA9IHsgdHlwZTogRW50cnlUeXBlLk1hcmtlciB9O1xuLy9MaXN0IG9mIGZvcm1hdHRpbmcgZWxlbWVudHNcbmV4cG9ydCBjbGFzcyBGb3JtYXR0aW5nRWxlbWVudExpc3Qge1xuICAgIGNvbnN0cnVjdG9yKHRyZWVBZGFwdGVyKSB7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0cmVlQWRhcHRlcjtcbiAgICAgICAgdGhpcy5lbnRyaWVzID0gW107XG4gICAgICAgIHRoaXMuYm9va21hcmsgPSBudWxsO1xuICAgIH1cbiAgICAvL05vYWggQXJrJ3MgY29uZGl0aW9uXG4gICAgLy9PUFRJTUlaQVRJT046IGF0IGZpcnN0IHdlIHRyeSB0byBmaW5kIHBvc3NpYmxlIGNhbmRpZGF0ZXMgZm9yIGV4Y2x1c2lvbiB1c2luZ1xuICAgIC8vbGlnaHR3ZWlnaHQgaGV1cmlzdGljcyB3aXRob3V0IHRob3JvdWdoIGF0dHJpYnV0ZXMgY2hlY2suXG4gICAgX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzKG5ld0VsZW1lbnQsIG5lQXR0cnMpIHtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IFtdO1xuICAgICAgICBjb25zdCBuZUF0dHJzTGVuZ3RoID0gbmVBdHRycy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG5lVGFnTmFtZSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShuZXdFbGVtZW50KTtcbiAgICAgICAgY29uc3QgbmVOYW1lc3BhY2VVUkkgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShuZXdFbGVtZW50KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5lbnRyaWVzW2ldO1xuICAgICAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5NYXJrZXIpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgZWxlbWVudCB9ID0gZW50cnk7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSBuZVRhZ05hbWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSA9PT0gbmVOYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50QXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50QXR0cnMubGVuZ3RoID09PSBuZUF0dHJzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMucHVzaCh7IGlkeDogaSwgYXR0cnM6IGVsZW1lbnRBdHRycyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZXM7XG4gICAgfVxuICAgIF9lbnN1cmVOb2FoQXJrQ29uZGl0aW9uKG5ld0VsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW50cmllcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmVBdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QobmV3RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSB0aGlzLl9nZXROb2FoQXJrQ29uZGl0aW9uQ2FuZGlkYXRlcyhuZXdFbGVtZW50LCBuZUF0dHJzKTtcbiAgICAgICAgaWYgKGNhbmRpZGF0ZXMubGVuZ3RoIDwgTk9BSF9BUktfQ0FQQUNJVFkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vTk9URTogYnVpbGQgYXR0cnMgbWFwIGZvciB0aGUgbmV3IGVsZW1lbnQsIHNvIHdlIGNhbiBwZXJmb3JtIGZhc3QgbG9va3Vwc1xuICAgICAgICBjb25zdCBuZUF0dHJzTWFwID0gbmV3IE1hcChuZUF0dHJzLm1hcCgobmVBdHRyKSA9PiBbbmVBdHRyLm5hbWUsIG5lQXR0ci52YWx1ZV0pKTtcbiAgICAgICAgbGV0IHZhbGlkQ2FuZGlkYXRlcyA9IDA7XG4gICAgICAgIC8vTk9URTogcmVtb3ZlIGJvdHRvbW1vc3QgY2FuZGlkYXRlcywgdW50aWwgTm9haCdzIEFyayBjb25kaXRpb24gd2lsbCBub3QgYmUgbWV0XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FuZGlkYXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gY2FuZGlkYXRlc1tpXTtcbiAgICAgICAgICAgIC8vIFdlIGtub3cgdGhhdCBgY2FuZGlkYXRlLmF0dHJzLmxlbmd0aCA9PT0gbmVBdHRycy5sZW5ndGhgXG4gICAgICAgICAgICBpZiAoY2FuZGlkYXRlLmF0dHJzLmV2ZXJ5KChjQXR0cikgPT4gbmVBdHRyc01hcC5nZXQoY0F0dHIubmFtZSkgPT09IGNBdHRyLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkQ2FuZGlkYXRlcyArPSAxO1xuICAgICAgICAgICAgICAgIGlmICh2YWxpZENhbmRpZGF0ZXMgPj0gTk9BSF9BUktfQ0FQQUNJVFkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShjYW5kaWRhdGUuaWR4LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9NdXRhdGlvbnNcbiAgICBpbnNlcnRNYXJrZXIoKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51bnNoaWZ0KE1BUktFUik7XG4gICAgfVxuICAgIHB1c2hFbGVtZW50KGVsZW1lbnQsIHRva2VuKSB7XG4gICAgICAgIHRoaXMuX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24oZWxlbWVudCk7XG4gICAgICAgIHRoaXMuZW50cmllcy51bnNoaWZ0KHtcbiAgICAgICAgICAgIHR5cGU6IEVudHJ5VHlwZS5FbGVtZW50LFxuICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaW5zZXJ0RWxlbWVudEFmdGVyQm9va21hcmsoZWxlbWVudCwgdG9rZW4pIHtcbiAgICAgICAgY29uc3QgYm9va21hcmtJZHggPSB0aGlzLmVudHJpZXMuaW5kZXhPZih0aGlzLmJvb2ttYXJrKTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShib29rbWFya0lkeCwgMCwge1xuICAgICAgICAgICAgdHlwZTogRW50cnlUeXBlLkVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZW1vdmVFbnRyeShlbnRyeSkge1xuICAgICAgICBjb25zdCBlbnRyeUluZGV4ID0gdGhpcy5lbnRyaWVzLmluZGV4T2YoZW50cnkpO1xuICAgICAgICBpZiAoZW50cnlJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGVudHJ5SW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgbGlzdCBvZiBmb3JtYXR0aW5nIGVsZW1lbnRzIHVwIHRvIHRoZSBsYXN0IG1hcmtlci5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI2NsZWFyLXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLXVwLXRvLXRoZS1sYXN0LW1hcmtlclxuICAgICAqL1xuICAgIGNsZWFyVG9MYXN0TWFya2VyKCkge1xuICAgICAgICBjb25zdCBtYXJrZXJJZHggPSB0aGlzLmVudHJpZXMuaW5kZXhPZihNQVJLRVIpO1xuICAgICAgICBpZiAobWFya2VySWR4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoMCwgbWFya2VySWR4ICsgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMubGVuZ3RoID0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1NlYXJjaFxuICAgIGdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSh0YWdOYW1lKSB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5lbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyIHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbnRyeS5lbGVtZW50KSA9PT0gdGFnTmFtZSk7XG4gICAgICAgIHJldHVybiBlbnRyeSAmJiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuRWxlbWVudCA/IGVudHJ5IDogbnVsbDtcbiAgICB9XG4gICAgZ2V0RWxlbWVudEVudHJ5KGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cmllcy5maW5kKChlbnRyeSkgPT4gZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLkVsZW1lbnQgJiYgZW50cnkuZWxlbWVudCA9PT0gZWxlbWVudCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMubWFwIiwgImltcG9ydCB7IERPQ1VNRU5UX01PREUgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG5mdW5jdGlvbiBjcmVhdGVUZXh0Tm9kZSh2YWx1ZSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5vZGVOYW1lOiAnI3RleHQnLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRUcmVlQWRhcHRlciA9IHtcbiAgICAvL05vZGUgY29uc3RydWN0aW9uXG4gICAgY3JlYXRlRG9jdW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBub2RlTmFtZTogJyNkb2N1bWVudCcsXG4gICAgICAgICAgICBtb2RlOiBET0NVTUVOVF9NT0RFLk5PX1FVSVJLUyxcbiAgICAgICAgICAgIGNoaWxkTm9kZXM6IFtdLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50LWZyYWdtZW50JyxcbiAgICAgICAgICAgIGNoaWxkTm9kZXM6IFtdLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBuYW1lc3BhY2VVUkksIGF0dHJzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBub2RlTmFtZTogdGFnTmFtZSxcbiAgICAgICAgICAgIHRhZ05hbWUsXG4gICAgICAgICAgICBhdHRycyxcbiAgICAgICAgICAgIG5hbWVzcGFjZVVSSSxcbiAgICAgICAgICAgIGNoaWxkTm9kZXM6IFtdLFxuICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGNyZWF0ZUNvbW1lbnROb2RlKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiAnI2NvbW1lbnQnLFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgICAgIH07XG4gICAgfSxcbiAgICAvL1RyZWUgbXV0YXRpb25cbiAgICBhcHBlbmRDaGlsZChwYXJlbnROb2RlLCBuZXdOb2RlKSB7XG4gICAgICAgIHBhcmVudE5vZGUuY2hpbGROb2Rlcy5wdXNoKG5ld05vZGUpO1xuICAgICAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIH0sXG4gICAgaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIG5ld05vZGUsIHJlZmVyZW5jZU5vZGUpIHtcbiAgICAgICAgY29uc3QgaW5zZXJ0aW9uSWR4ID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2YocmVmZXJlbmNlTm9kZSk7XG4gICAgICAgIHBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoaW5zZXJ0aW9uSWR4LCAwLCBuZXdOb2RlKTtcbiAgICAgICAgbmV3Tm9kZS5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgICB9LFxuICAgIHNldFRlbXBsYXRlQ29udGVudCh0ZW1wbGF0ZUVsZW1lbnQsIGNvbnRlbnRFbGVtZW50KSB7XG4gICAgICAgIHRlbXBsYXRlRWxlbWVudC5jb250ZW50ID0gY29udGVudEVsZW1lbnQ7XG4gICAgfSxcbiAgICBnZXRUZW1wbGF0ZUNvbnRlbnQodGVtcGxhdGVFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZUVsZW1lbnQuY29udGVudDtcbiAgICB9LFxuICAgIHNldERvY3VtZW50VHlwZShkb2N1bWVudCwgbmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKSB7XG4gICAgICAgIGNvbnN0IGRvY3R5cGVOb2RlID0gZG9jdW1lbnQuY2hpbGROb2Rlcy5maW5kKChub2RlKSA9PiBub2RlLm5vZGVOYW1lID09PSAnI2RvY3VtZW50VHlwZScpO1xuICAgICAgICBpZiAoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgICAgIGRvY3R5cGVOb2RlLm5hbWUgPSBuYW1lO1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUucHVibGljSWQgPSBwdWJsaWNJZDtcbiAgICAgICAgICAgIGRvY3R5cGVOb2RlLnN5c3RlbUlkID0gc3lzdGVtSWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0ge1xuICAgICAgICAgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50VHlwZScsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBwdWJsaWNJZCxcbiAgICAgICAgICAgICAgICBzeXN0ZW1JZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGRlZmF1bHRUcmVlQWRhcHRlci5hcHBlbmRDaGlsZChkb2N1bWVudCwgbm9kZSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNldERvY3VtZW50TW9kZShkb2N1bWVudCwgbW9kZSkge1xuICAgICAgICBkb2N1bWVudC5tb2RlID0gbW9kZTtcbiAgICB9LFxuICAgIGdldERvY3VtZW50TW9kZShkb2N1bWVudCkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQubW9kZTtcbiAgICB9LFxuICAgIGRldGFjaE5vZGUobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSBub2RlLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKG5vZGUpO1xuICAgICAgICAgICAgbm9kZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBpbnNlcnRUZXh0KHBhcmVudE5vZGUsIHRleHQpIHtcbiAgICAgICAgaWYgKHBhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2Tm9kZSA9IHBhcmVudE5vZGUuY2hpbGROb2Rlc1twYXJlbnROb2RlLmNoaWxkTm9kZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBpZiAoZGVmYXVsdFRyZWVBZGFwdGVyLmlzVGV4dE5vZGUocHJldk5vZGUpKSB7XG4gICAgICAgICAgICAgICAgcHJldk5vZGUudmFsdWUgKz0gdGV4dDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHBhcmVudE5vZGUsIGNyZWF0ZVRleHROb2RlKHRleHQpKTtcbiAgICB9LFxuICAgIGluc2VydFRleHRCZWZvcmUocGFyZW50Tm9kZSwgdGV4dCwgcmVmZXJlbmNlTm9kZSkge1xuICAgICAgICBjb25zdCBwcmV2Tm9kZSA9IHBhcmVudE5vZGUuY2hpbGROb2Rlc1twYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihyZWZlcmVuY2VOb2RlKSAtIDFdO1xuICAgICAgICBpZiAocHJldk5vZGUgJiYgZGVmYXVsdFRyZWVBZGFwdGVyLmlzVGV4dE5vZGUocHJldk5vZGUpKSB7XG4gICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmluc2VydEJlZm9yZShwYXJlbnROb2RlLCBjcmVhdGVUZXh0Tm9kZSh0ZXh0KSwgcmVmZXJlbmNlTm9kZSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGFkb3B0QXR0cmlidXRlcyhyZWNpcGllbnQsIGF0dHJzKSB7XG4gICAgICAgIGNvbnN0IHJlY2lwaWVudEF0dHJzTWFwID0gbmV3IFNldChyZWNpcGllbnQuYXR0cnMubWFwKChhdHRyKSA9PiBhdHRyLm5hbWUpKTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBhdHRycy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgaWYgKCFyZWNpcGllbnRBdHRyc01hcC5oYXMoYXR0cnNbal0ubmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZWNpcGllbnQuYXR0cnMucHVzaChhdHRyc1tqXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIC8vVHJlZSB0cmF2ZXJzaW5nXG4gICAgZ2V0Rmlyc3RDaGlsZChub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLmNoaWxkTm9kZXNbMF07XG4gICAgfSxcbiAgICBnZXRDaGlsZE5vZGVzKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGROb2RlcztcbiAgICB9LFxuICAgIGdldFBhcmVudE5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5wYXJlbnROb2RlO1xuICAgIH0sXG4gICAgZ2V0QXR0ckxpc3QoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5hdHRycztcbiAgICB9LFxuICAgIC8vTm9kZSBkYXRhXG4gICAgZ2V0VGFnTmFtZShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnRhZ05hbWU7XG4gICAgfSxcbiAgICBnZXROYW1lc3BhY2VVUkkoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5uYW1lc3BhY2VVUkk7XG4gICAgfSxcbiAgICBnZXRUZXh0Tm9kZUNvbnRlbnQodGV4dE5vZGUpIHtcbiAgICAgICAgcmV0dXJuIHRleHROb2RlLnZhbHVlO1xuICAgIH0sXG4gICAgZ2V0Q29tbWVudE5vZGVDb250ZW50KGNvbW1lbnROb2RlKSB7XG4gICAgICAgIHJldHVybiBjb21tZW50Tm9kZS5kYXRhO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRUeXBlTm9kZU5hbWUoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGRvY3R5cGVOb2RlLm5hbWU7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlUHVibGljSWQoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGRvY3R5cGVOb2RlLnB1YmxpY0lkO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRUeXBlTm9kZVN5c3RlbUlkKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N0eXBlTm9kZS5zeXN0ZW1JZDtcbiAgICB9LFxuICAgIC8vTm9kZSB0eXBlc1xuICAgIGlzVGV4dE5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJyN0ZXh0JztcbiAgICB9LFxuICAgIGlzQ29tbWVudE5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJyNjb21tZW50JztcbiAgICB9LFxuICAgIGlzRG9jdW1lbnRUeXBlTm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2RvY3VtZW50VHlwZSc7XG4gICAgfSxcbiAgICBpc0VsZW1lbnROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChub2RlLCAndGFnTmFtZScpO1xuICAgIH0sXG4gICAgLy8gU291cmNlIGNvZGUgbG9jYXRpb25cbiAgICBzZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKG5vZGUsIGxvY2F0aW9uKSB7XG4gICAgICAgIG5vZGUuc291cmNlQ29kZUxvY2F0aW9uID0gbG9jYXRpb247XG4gICAgfSxcbiAgICBnZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuc291cmNlQ29kZUxvY2F0aW9uO1xuICAgIH0sXG4gICAgdXBkYXRlTm9kZVNvdXJjZUNvZGVMb2NhdGlvbihub2RlLCBlbmRMb2NhdGlvbikge1xuICAgICAgICBub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiA9IHsgLi4ubm9kZS5zb3VyY2VDb2RlTG9jYXRpb24sIC4uLmVuZExvY2F0aW9uIH07XG4gICAgfSxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0LmpzLm1hcCIsICJpbXBvcnQgeyBET0NVTUVOVF9NT0RFIH0gZnJvbSAnLi9odG1sLmpzJztcbi8vQ29uc3RcbmNvbnN0IFZBTElEX0RPQ1RZUEVfTkFNRSA9ICdodG1sJztcbmNvbnN0IFZBTElEX1NZU1RFTV9JRCA9ICdhYm91dDpsZWdhY3ktY29tcGF0JztcbmNvbnN0IFFVSVJLU19NT0RFX1NZU1RFTV9JRCA9ICdodHRwOi8vd3d3LmlibS5jb20vZGF0YS9kdGQvdjExL2libXhodG1sMS10cmFuc2l0aW9uYWwuZHRkJztcbmNvbnN0IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFtcbiAgICAnKy8vc2lsbWFyaWwvL2R0ZCBodG1sIHBybyB2MHIxMSAxOTk3MDEwMS8vJyxcbiAgICAnLS8vYXMvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vYWR2YXNvZnQgbHRkLy9kdGQgaHRtbCAzLjAgYXN3ZWRpdCArIGV4dGVuc2lvbnMvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0IGxldmVsIDIvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4xZS8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4wLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjIgZmluYWwvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDMuMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMS8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDAvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDMvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwvLycsXG4gICAgJy0vL21ldHJpdXMvL2R0ZCBtZXRyaXVzIHByZXNlbnRhdGlvbmFsLy8nLFxuICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgaHRtbCBzdHJpY3QvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sLy8nLFxuICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgdGFibGVzLy8nLFxuICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgaHRtbCBzdHJpY3QvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sLy8nLFxuICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgdGFibGVzLy8nLFxuICAgICctLy9uZXRzY2FwZSBjb21tLiBjb3JwLi8vZHRkIGh0bWwvLycsXG4gICAgJy0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgc3RyaWN0IGh0bWwvLycsXG4gICAgXCItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgMi4wLy9cIixcbiAgICBcIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCBleHRlbmRlZCAxLjAvL1wiLFxuICAgIFwiLS8vbydyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIGV4dGVuZGVkIHJlbGF4ZWQgMS4wLy9cIixcbiAgICAnLS8vc3EvL2R0ZCBodG1sIDIuMCBob3RtZXRhbCArIGV4dGVuc2lvbnMvLycsXG4gICAgJy0vL3NvZnRxdWFkIHNvZnR3YXJlLy9kdGQgaG90bWV0YWwgcHJvIDYuMDo6MTk5OTA2MDE6OmV4dGVuc2lvbnMgdG8gaHRtbCA0LjAvLycsXG4gICAgJy0vL3NvZnRxdWFkLy9kdGQgaG90bWV0YWwgcHJvIDQuMDo6MTk5NzEwMTA6OmV4dGVuc2lvbnMgdG8gaHRtbCA0LjAvLycsXG4gICAgJy0vL3NweWdsYXNzLy9kdGQgaHRtbCAyLjAgZXh0ZW5kZWQvLycsXG4gICAgJy0vL3N1biBtaWNyb3N5c3RlbXMgY29ycC4vL2R0ZCBob3RqYXZhIGh0bWwvLycsXG4gICAgJy0vL3N1biBtaWNyb3N5c3RlbXMgY29ycC4vL2R0ZCBob3RqYXZhIHN0cmljdCBodG1sLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMgMTk5NS0wMy0yNC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjIgZHJhZnQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yIGZpbmFsLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMi8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjJzIGRyYWZ0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMCBmcmFtZXNldC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAgdHJhbnNpdGlvbmFsLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIGV4cGVyaW1lbnRhbCAxOTk2MDcxMi8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCBleHBlcmltZW50YWwgOTcwNDIxLy8nLFxuICAgICctLy93M2MvL2R0ZCB3MyBodG1sLy8nLFxuICAgICctLy93M28vL2R0ZCB3MyBodG1sIDMuMC8vJyxcbiAgICAnLS8vd2VidGVjaHMvL2R0ZCBtb3ppbGxhIGh0bWwgMi4wLy8nLFxuICAgICctLy93ZWJ0ZWNocy8vZHRkIG1vemlsbGEgaHRtbC8vJyxcbl07XG5jb25zdCBRVUlSS1NfTU9ERV9OT19TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgIC4uLlFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAxIGZyYW1lc2V0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgdHJhbnNpdGlvbmFsLy8nLFxuXTtcbmNvbnN0IFFVSVJLU19NT0RFX1BVQkxJQ19JRFMgPSBuZXcgU2V0KFtcbiAgICAnLS8vdzNvLy9kdGQgdzMgaHRtbCBzdHJpY3QgMy4wLy9lbi8vJyxcbiAgICAnLS93M2MvZHRkIGh0bWwgNC4wIHRyYW5zaXRpb25hbC9lbicsXG4gICAgJ2h0bWwnLFxuXSk7XG5jb25zdCBMSU1JVEVEX1FVSVJLU19QVUJMSUNfSURfUFJFRklYRVMgPSBbJy0vL3czYy8vZHRkIHhodG1sIDEuMCBmcmFtZXNldC8vJywgJy0vL3czYy8vZHRkIHhodG1sIDEuMCB0cmFuc2l0aW9uYWwvLyddO1xuY29uc3QgTElNSVRFRF9RVUlSS1NfV0lUSF9TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgIC4uLkxJTUlURURfUVVJUktTX1BVQkxJQ19JRF9QUkVGSVhFUyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAxIGZyYW1lc2V0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgdHJhbnNpdGlvbmFsLy8nLFxuXTtcbi8vVXRpbHNcbmZ1bmN0aW9uIGhhc1ByZWZpeChwdWJsaWNJZCwgcHJlZml4ZXMpIHtcbiAgICByZXR1cm4gcHJlZml4ZXMuc29tZSgocHJlZml4KSA9PiBwdWJsaWNJZC5zdGFydHNXaXRoKHByZWZpeCkpO1xufVxuLy9BUElcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbmZvcm1pbmcodG9rZW4pIHtcbiAgICByZXR1cm4gKHRva2VuLm5hbWUgPT09IFZBTElEX0RPQ1RZUEVfTkFNRSAmJlxuICAgICAgICB0b2tlbi5wdWJsaWNJZCA9PT0gbnVsbCAmJlxuICAgICAgICAodG9rZW4uc3lzdGVtSWQgPT09IG51bGwgfHwgdG9rZW4uc3lzdGVtSWQgPT09IFZBTElEX1NZU1RFTV9JRCkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERvY3VtZW50TW9kZSh0b2tlbikge1xuICAgIGlmICh0b2tlbi5uYW1lICE9PSBWQUxJRF9ET0NUWVBFX05BTUUpIHtcbiAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgIH1cbiAgICBjb25zdCB7IHN5c3RlbUlkIH0gPSB0b2tlbjtcbiAgICBpZiAoc3lzdGVtSWQgJiYgc3lzdGVtSWQudG9Mb3dlckNhc2UoKSA9PT0gUVVJUktTX01PREVfU1lTVEVNX0lEKSB7XG4gICAgICAgIHJldHVybiBET0NVTUVOVF9NT0RFLlFVSVJLUztcbiAgICB9XG4gICAgbGV0IHsgcHVibGljSWQgfSA9IHRva2VuO1xuICAgIGlmIChwdWJsaWNJZCAhPT0gbnVsbCkge1xuICAgICAgICBwdWJsaWNJZCA9IHB1YmxpY0lkLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChRVUlSS1NfTU9ERV9QVUJMSUNfSURTLmhhcyhwdWJsaWNJZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9NT0RFLlFVSVJLUztcbiAgICAgICAgfVxuICAgICAgICBsZXQgcHJlZml4ZXMgPSBzeXN0ZW1JZCA9PT0gbnVsbCA/IFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgOiBRVUlSS1NfTU9ERV9QVUJMSUNfSURfUFJFRklYRVM7XG4gICAgICAgIGlmIChoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgICAgICB9XG4gICAgICAgIHByZWZpeGVzID1cbiAgICAgICAgICAgIHN5c3RlbUlkID09PSBudWxsID8gTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTIDogTElNSVRFRF9RVUlSS1NfV0lUSF9TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTO1xuICAgICAgICBpZiAoaGFzUHJlZml4KHB1YmxpY0lkLCBwcmVmaXhlcykpIHtcbiAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9NT0RFLkxJTUlURURfUVVJUktTO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBET0NVTUVOVF9NT0RFLk5PX1FVSVJLUztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRvY3R5cGUuanMubWFwIiwgImltcG9ydCB7IFRBR19JRCBhcyAkLCBOUywgQVRUUlMsIGdldFRhZ0lEIH0gZnJvbSAnLi9odG1sLmpzJztcbi8vTUlNRSB0eXBlc1xuY29uc3QgTUlNRV9UWVBFUyA9IHtcbiAgICBURVhUX0hUTUw6ICd0ZXh0L2h0bWwnLFxuICAgIEFQUExJQ0FUSU9OX1hNTDogJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsXG59O1xuLy9BdHRyaWJ1dGVzXG5jb25zdCBERUZJTklUSU9OX1VSTF9BVFRSID0gJ2RlZmluaXRpb251cmwnO1xuY29uc3QgQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUiA9ICdkZWZpbml0aW9uVVJMJztcbmNvbnN0IFNWR19BVFRSU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgICdhdHRyaWJ1dGVOYW1lJyxcbiAgICAnYXR0cmlidXRlVHlwZScsXG4gICAgJ2Jhc2VGcmVxdWVuY3knLFxuICAgICdiYXNlUHJvZmlsZScsXG4gICAgJ2NhbGNNb2RlJyxcbiAgICAnY2xpcFBhdGhVbml0cycsXG4gICAgJ2RpZmZ1c2VDb25zdGFudCcsXG4gICAgJ2VkZ2VNb2RlJyxcbiAgICAnZmlsdGVyVW5pdHMnLFxuICAgICdnbHlwaFJlZicsXG4gICAgJ2dyYWRpZW50VHJhbnNmb3JtJyxcbiAgICAnZ3JhZGllbnRVbml0cycsXG4gICAgJ2tlcm5lbE1hdHJpeCcsXG4gICAgJ2tlcm5lbFVuaXRMZW5ndGgnLFxuICAgICdrZXlQb2ludHMnLFxuICAgICdrZXlTcGxpbmVzJyxcbiAgICAna2V5VGltZXMnLFxuICAgICdsZW5ndGhBZGp1c3QnLFxuICAgICdsaW1pdGluZ0NvbmVBbmdsZScsXG4gICAgJ21hcmtlckhlaWdodCcsXG4gICAgJ21hcmtlclVuaXRzJyxcbiAgICAnbWFya2VyV2lkdGgnLFxuICAgICdtYXNrQ29udGVudFVuaXRzJyxcbiAgICAnbWFza1VuaXRzJyxcbiAgICAnbnVtT2N0YXZlcycsXG4gICAgJ3BhdGhMZW5ndGgnLFxuICAgICdwYXR0ZXJuQ29udGVudFVuaXRzJyxcbiAgICAncGF0dGVyblRyYW5zZm9ybScsXG4gICAgJ3BhdHRlcm5Vbml0cycsXG4gICAgJ3BvaW50c0F0WCcsXG4gICAgJ3BvaW50c0F0WScsXG4gICAgJ3BvaW50c0F0WicsXG4gICAgJ3ByZXNlcnZlQWxwaGEnLFxuICAgICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyxcbiAgICAncHJpbWl0aXZlVW5pdHMnLFxuICAgICdyZWZYJyxcbiAgICAncmVmWScsXG4gICAgJ3JlcGVhdENvdW50JyxcbiAgICAncmVwZWF0RHVyJyxcbiAgICAncmVxdWlyZWRFeHRlbnNpb25zJyxcbiAgICAncmVxdWlyZWRGZWF0dXJlcycsXG4gICAgJ3NwZWN1bGFyQ29uc3RhbnQnLFxuICAgICdzcGVjdWxhckV4cG9uZW50JyxcbiAgICAnc3ByZWFkTWV0aG9kJyxcbiAgICAnc3RhcnRPZmZzZXQnLFxuICAgICdzdGREZXZpYXRpb24nLFxuICAgICdzdGl0Y2hUaWxlcycsXG4gICAgJ3N1cmZhY2VTY2FsZScsXG4gICAgJ3N5c3RlbUxhbmd1YWdlJyxcbiAgICAndGFibGVWYWx1ZXMnLFxuICAgICd0YXJnZXRYJyxcbiAgICAndGFyZ2V0WScsXG4gICAgJ3RleHRMZW5ndGgnLFxuICAgICd2aWV3Qm94JyxcbiAgICAndmlld1RhcmdldCcsXG4gICAgJ3hDaGFubmVsU2VsZWN0b3InLFxuICAgICd5Q2hhbm5lbFNlbGVjdG9yJyxcbiAgICAnem9vbUFuZFBhbicsXG5dLm1hcCgoYXR0cikgPT4gW2F0dHIudG9Mb3dlckNhc2UoKSwgYXR0cl0pKTtcbmNvbnN0IFhNTF9BVFRSU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgIFsneGxpbms6YWN0dWF0ZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAnYWN0dWF0ZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazphcmNyb2xlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhcmNyb2xlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOmhyZWYnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2hyZWYnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6cm9sZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAncm9sZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazpzaG93JywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdzaG93JywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnRpdGxlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICd0aXRsZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazp0eXBlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICd0eXBlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3htbDpiYXNlJywgeyBwcmVmaXg6ICd4bWwnLCBuYW1lOiAnYmFzZScsIG5hbWVzcGFjZTogTlMuWE1MIH1dLFxuICAgIFsneG1sOmxhbmcnLCB7IHByZWZpeDogJ3htbCcsIG5hbWU6ICdsYW5nJywgbmFtZXNwYWNlOiBOUy5YTUwgfV0sXG4gICAgWyd4bWw6c3BhY2UnLCB7IHByZWZpeDogJ3htbCcsIG5hbWU6ICdzcGFjZScsIG5hbWVzcGFjZTogTlMuWE1MIH1dLFxuICAgIFsneG1sbnMnLCB7IHByZWZpeDogJycsIG5hbWU6ICd4bWxucycsIG5hbWVzcGFjZTogTlMuWE1MTlMgfV0sXG4gICAgWyd4bWxuczp4bGluaycsIHsgcHJlZml4OiAneG1sbnMnLCBuYW1lOiAneGxpbmsnLCBuYW1lc3BhY2U6IE5TLlhNTE5TIH1dLFxuXSk7XG4vL1NWRyB0YWcgbmFtZXMgYWRqdXN0bWVudCBtYXBcbmV4cG9ydCBjb25zdCBTVkdfVEFHX05BTUVTX0FESlVTVE1FTlRfTUFQID0gbmV3IE1hcChbXG4gICAgJ2FsdEdseXBoJyxcbiAgICAnYWx0R2x5cGhEZWYnLFxuICAgICdhbHRHbHlwaEl0ZW0nLFxuICAgICdhbmltYXRlQ29sb3InLFxuICAgICdhbmltYXRlTW90aW9uJyxcbiAgICAnYW5pbWF0ZVRyYW5zZm9ybScsXG4gICAgJ2NsaXBQYXRoJyxcbiAgICAnZmVCbGVuZCcsXG4gICAgJ2ZlQ29sb3JNYXRyaXgnLFxuICAgICdmZUNvbXBvbmVudFRyYW5zZmVyJyxcbiAgICAnZmVDb21wb3NpdGUnLFxuICAgICdmZUNvbnZvbHZlTWF0cml4JyxcbiAgICAnZmVEaWZmdXNlTGlnaHRpbmcnLFxuICAgICdmZURpc3BsYWNlbWVudE1hcCcsXG4gICAgJ2ZlRGlzdGFudExpZ2h0JyxcbiAgICAnZmVGbG9vZCcsXG4gICAgJ2ZlRnVuY0EnLFxuICAgICdmZUZ1bmNCJyxcbiAgICAnZmVGdW5jRycsXG4gICAgJ2ZlRnVuY1InLFxuICAgICdmZUdhdXNzaWFuQmx1cicsXG4gICAgJ2ZlSW1hZ2UnLFxuICAgICdmZU1lcmdlJyxcbiAgICAnZmVNZXJnZU5vZGUnLFxuICAgICdmZU1vcnBob2xvZ3knLFxuICAgICdmZU9mZnNldCcsXG4gICAgJ2ZlUG9pbnRMaWdodCcsXG4gICAgJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICAgJ2ZlU3BvdExpZ2h0JyxcbiAgICAnZmVUaWxlJyxcbiAgICAnZmVUdXJidWxlbmNlJyxcbiAgICAnZm9yZWlnbk9iamVjdCcsXG4gICAgJ2dseXBoUmVmJyxcbiAgICAnbGluZWFyR3JhZGllbnQnLFxuICAgICdyYWRpYWxHcmFkaWVudCcsXG4gICAgJ3RleHRQYXRoJyxcbl0ubWFwKCh0bikgPT4gW3RuLnRvTG93ZXJDYXNlKCksIHRuXSkpO1xuLy9UYWdzIHRoYXQgY2F1c2VzIGV4aXQgZnJvbSBmb3JlaWduIGNvbnRlbnRcbmNvbnN0IEVYSVRTX0ZPUkVJR05fQ09OVEVOVCA9IG5ldyBTZXQoW1xuICAgICQuQixcbiAgICAkLkJJRyxcbiAgICAkLkJMT0NLUVVPVEUsXG4gICAgJC5CT0RZLFxuICAgICQuQlIsXG4gICAgJC5DRU5URVIsXG4gICAgJC5DT0RFLFxuICAgICQuREQsXG4gICAgJC5ESVYsXG4gICAgJC5ETCxcbiAgICAkLkRULFxuICAgICQuRU0sXG4gICAgJC5FTUJFRCxcbiAgICAkLkgxLFxuICAgICQuSDIsXG4gICAgJC5IMyxcbiAgICAkLkg0LFxuICAgICQuSDUsXG4gICAgJC5INixcbiAgICAkLkhFQUQsXG4gICAgJC5IUixcbiAgICAkLkksXG4gICAgJC5JTUcsXG4gICAgJC5MSSxcbiAgICAkLkxJU1RJTkcsXG4gICAgJC5NRU5VLFxuICAgICQuTUVUQSxcbiAgICAkLk5PQlIsXG4gICAgJC5PTCxcbiAgICAkLlAsXG4gICAgJC5QUkUsXG4gICAgJC5SVUJZLFxuICAgICQuUyxcbiAgICAkLlNNQUxMLFxuICAgICQuU1BBTixcbiAgICAkLlNUUk9ORyxcbiAgICAkLlNUUklLRSxcbiAgICAkLlNVQixcbiAgICAkLlNVUCxcbiAgICAkLlRBQkxFLFxuICAgICQuVFQsXG4gICAgJC5VLFxuICAgICQuVUwsXG4gICAgJC5WQVIsXG5dKTtcbi8vQ2hlY2sgZXhpdCBmcm9tIGZvcmVpZ24gY29udGVudFxuZXhwb3J0IGZ1bmN0aW9uIGNhdXNlc0V4aXQoc3RhcnRUYWdUb2tlbikge1xuICAgIGNvbnN0IHRuID0gc3RhcnRUYWdUb2tlbi50YWdJRDtcbiAgICBjb25zdCBpc0ZvbnRXaXRoQXR0cnMgPSB0biA9PT0gJC5GT05UICYmXG4gICAgICAgIHN0YXJ0VGFnVG9rZW4uYXR0cnMuc29tZSgoeyBuYW1lIH0pID0+IG5hbWUgPT09IEFUVFJTLkNPTE9SIHx8IG5hbWUgPT09IEFUVFJTLlNJWkUgfHwgbmFtZSA9PT0gQVRUUlMuRkFDRSk7XG4gICAgcmV0dXJuIGlzRm9udFdpdGhBdHRycyB8fCBFWElUU19GT1JFSUdOX0NPTlRFTlQuaGFzKHRuKTtcbn1cbi8vVG9rZW4gYWRqdXN0bWVudHNcbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAodG9rZW4uYXR0cnNbaV0ubmFtZSA9PT0gREVGSU5JVElPTl9VUkxfQVRUUikge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IEFESlVTVEVEX0RFRklOSVRJT05fVVJMX0FUVFI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlblNWR0F0dHJzKHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBhZGp1c3RlZEF0dHJOYW1lID0gU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQLmdldCh0b2tlbi5hdHRyc1tpXS5uYW1lKTtcbiAgICAgICAgaWYgKGFkanVzdGVkQXR0ck5hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IGFkanVzdGVkQXR0ck5hbWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRBdHRyRW50cnkgPSBYTUxfQVRUUlNfQURKVVNUTUVOVF9NQVAuZ2V0KHRva2VuLmF0dHJzW2ldLm5hbWUpO1xuICAgICAgICBpZiAoYWRqdXN0ZWRBdHRyRW50cnkpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLnByZWZpeCA9IGFkanVzdGVkQXR0ckVudHJ5LnByZWZpeDtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBhZGp1c3RlZEF0dHJFbnRyeS5uYW1lO1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZXNwYWNlID0gYWRqdXN0ZWRBdHRyRW50cnkubmFtZXNwYWNlO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuU1ZHVGFnTmFtZSh0b2tlbikge1xuICAgIGNvbnN0IGFkanVzdGVkVGFnTmFtZSA9IFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVAuZ2V0KHRva2VuLnRhZ05hbWUpO1xuICAgIGlmIChhZGp1c3RlZFRhZ05hbWUgIT0gbnVsbCkge1xuICAgICAgICB0b2tlbi50YWdOYW1lID0gYWRqdXN0ZWRUYWdOYW1lO1xuICAgICAgICB0b2tlbi50YWdJRCA9IGdldFRhZ0lEKHRva2VuLnRhZ05hbWUpO1xuICAgIH1cbn1cbi8vSW50ZWdyYXRpb24gcG9pbnRzXG5mdW5jdGlvbiBpc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KHRuLCBucykge1xuICAgIHJldHVybiBucyA9PT0gTlMuTUFUSE1MICYmICh0biA9PT0gJC5NSSB8fCB0biA9PT0gJC5NTyB8fCB0biA9PT0gJC5NTiB8fCB0biA9PT0gJC5NUyB8fCB0biA9PT0gJC5NVEVYVCk7XG59XG5mdW5jdGlvbiBpc0h0bWxJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMpIHtcbiAgICBpZiAobnMgPT09IE5TLk1BVEhNTCAmJiB0biA9PT0gJC5BTk5PVEFUSU9OX1hNTCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoYXR0cnNbaV0ubmFtZSA9PT0gQVRUUlMuRU5DT0RJTkcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHJzW2ldLnZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBNSU1FX1RZUEVTLlRFWFRfSFRNTCB8fCB2YWx1ZSA9PT0gTUlNRV9UWVBFUy5BUFBMSUNBVElPTl9YTUw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5zID09PSBOUy5TVkcgJiYgKHRuID09PSAkLkZPUkVJR05fT0JKRUNUIHx8IHRuID09PSAkLkRFU0MgfHwgdG4gPT09ICQuVElUTEUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzLCBmb3JlaWduTlMpIHtcbiAgICByZXR1cm4gKCgoIWZvcmVpZ25OUyB8fCBmb3JlaWduTlMgPT09IE5TLkhUTUwpICYmIGlzSHRtbEludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycykpIHx8XG4gICAgICAgICgoIWZvcmVpZ25OUyB8fCBmb3JlaWduTlMgPT09IE5TLk1BVEhNTCkgJiYgaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCh0biwgbnMpKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JlaWduLWNvbnRlbnQuanMubWFwIiwgImltcG9ydCB7IFRva2VuaXplciwgVG9rZW5pemVyTW9kZSB9IGZyb20gJy4uL3Rva2VuaXplci9pbmRleC5qcyc7XG5pbXBvcnQgeyBPcGVuRWxlbWVudFN0YWNrIH0gZnJvbSAnLi9vcGVuLWVsZW1lbnQtc3RhY2suanMnO1xuaW1wb3J0IHsgRm9ybWF0dGluZ0VsZW1lbnRMaXN0LCBFbnRyeVR5cGUgfSBmcm9tICcuL2Zvcm1hdHRpbmctZWxlbWVudC1saXN0LmpzJztcbmltcG9ydCB7IGRlZmF1bHRUcmVlQWRhcHRlciB9IGZyb20gJy4uL3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyc7XG5pbXBvcnQgKiBhcyBkb2N0eXBlIGZyb20gJy4uL2NvbW1vbi9kb2N0eXBlLmpzJztcbmltcG9ydCAqIGFzIGZvcmVpZ25Db250ZW50IGZyb20gJy4uL2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMnO1xuaW1wb3J0IHsgRVJSIH0gZnJvbSAnLi4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCAqIGFzIHVuaWNvZGUgZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgVEFHX0lEIGFzICQsIFRBR19OQU1FUyBhcyBUTiwgTlMsIEFUVFJTLCBTUEVDSUFMX0VMRU1FTlRTLCBET0NVTUVOVF9NT0RFLCBpc051bWJlcmVkSGVhZGVyLCBnZXRUYWdJRCwgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG5pbXBvcnQgeyBUb2tlblR5cGUsIGdldFRva2VuQXR0ciwgfSBmcm9tICcuLi9jb21tb24vdG9rZW4uanMnO1xuLy9NaXNjIGNvbnN0YW50c1xuY29uc3QgSElEREVOX0lOUFVUX1RZUEUgPSAnaGlkZGVuJztcbi8vQWRvcHRpb24gYWdlbmN5IGxvb3BzIGl0ZXJhdGlvbiBjb3VudFxuY29uc3QgQUFfT1VURVJfTE9PUF9JVEVSID0gODtcbmNvbnN0IEFBX0lOTkVSX0xPT1BfSVRFUiA9IDM7XG4vL0luc2VydGlvbiBtb2Rlc1xudmFyIEluc2VydGlvbk1vZGU7XG4oZnVuY3Rpb24gKEluc2VydGlvbk1vZGUpIHtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTklUSUFMXCJdID0gMF0gPSBcIklOSVRJQUxcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJCRUZPUkVfSFRNTFwiXSA9IDFdID0gXCJCRUZPUkVfSFRNTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkJFRk9SRV9IRUFEXCJdID0gMl0gPSBcIkJFRk9SRV9IRUFEXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fSEVBRFwiXSA9IDNdID0gXCJJTl9IRUFEXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fSEVBRF9OT19TQ1JJUFRcIl0gPSA0XSA9IFwiSU5fSEVBRF9OT19TQ1JJUFRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9IRUFEXCJdID0gNV0gPSBcIkFGVEVSX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9CT0RZXCJdID0gNl0gPSBcIklOX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJURVhUXCJdID0gN10gPSBcIlRFWFRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9UQUJMRVwiXSA9IDhdID0gXCJJTl9UQUJMRVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFX1RFWFRcIl0gPSA5XSA9IFwiSU5fVEFCTEVfVEVYVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NBUFRJT05cIl0gPSAxMF0gPSBcIklOX0NBUFRJT05cIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9DT0xVTU5fR1JPVVBcIl0gPSAxMV0gPSBcIklOX0NPTFVNTl9HUk9VUFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFX0JPRFlcIl0gPSAxMl0gPSBcIklOX1RBQkxFX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9ST1dcIl0gPSAxM10gPSBcIklOX1JPV1wiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NFTExcIl0gPSAxNF0gPSBcIklOX0NFTExcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9TRUxFQ1RcIl0gPSAxNV0gPSBcIklOX1NFTEVDVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1NFTEVDVF9JTl9UQUJMRVwiXSA9IDE2XSA9IFwiSU5fU0VMRUNUX0lOX1RBQkxFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEVNUExBVEVcIl0gPSAxN10gPSBcIklOX1RFTVBMQVRFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfQk9EWVwiXSA9IDE4XSA9IFwiQUZURVJfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0ZSQU1FU0VUXCJdID0gMTldID0gXCJJTl9GUkFNRVNFVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0ZSQU1FU0VUXCJdID0gMjBdID0gXCJBRlRFUl9GUkFNRVNFVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0FGVEVSX0JPRFlcIl0gPSAyMV0gPSBcIkFGVEVSX0FGVEVSX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9BRlRFUl9GUkFNRVNFVFwiXSA9IDIyXSA9IFwiQUZURVJfQUZURVJfRlJBTUVTRVRcIjtcbn0pKEluc2VydGlvbk1vZGUgfHwgKEluc2VydGlvbk1vZGUgPSB7fSkpO1xuY29uc3QgQkFTRV9MT0MgPSB7XG4gICAgc3RhcnRMaW5lOiAtMSxcbiAgICBzdGFydENvbDogLTEsXG4gICAgc3RhcnRPZmZzZXQ6IC0xLFxuICAgIGVuZExpbmU6IC0xLFxuICAgIGVuZENvbDogLTEsXG4gICAgZW5kT2Zmc2V0OiAtMSxcbn07XG5jb25zdCBUQUJMRV9TVFJVQ1RVUkVfVEFHUyA9IG5ldyBTZXQoWyQuVEFCTEUsICQuVEJPRFksICQuVEZPT1QsICQuVEhFQUQsICQuVFJdKTtcbmNvbnN0IGRlZmF1bHRQYXJzZXJPcHRpb25zID0ge1xuICAgIHNjcmlwdGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgc291cmNlQ29kZUxvY2F0aW9uSW5mbzogZmFsc2UsXG4gICAgdHJlZUFkYXB0ZXI6IGRlZmF1bHRUcmVlQWRhcHRlcixcbiAgICBvblBhcnNlRXJyb3I6IG51bGwsXG59O1xuLy9QYXJzZXJcbmV4cG9ydCBjbGFzcyBQYXJzZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMsIGRvY3VtZW50LCBmcmFnbWVudENvbnRleHQgPSBudWxsLCBzY3JpcHRIYW5kbGVyID0gbnVsbCkge1xuICAgICAgICB0aGlzLmZyYWdtZW50Q29udGV4dCA9IGZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgdGhpcy5zY3JpcHRIYW5kbGVyID0gc2NyaXB0SGFuZGxlcjtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSBudWxsO1xuICAgICAgICB0aGlzLnN0b3BwZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTklUSUFMO1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5JVElBTDtcbiAgICAgICAgdGhpcy5oZWFkRWxlbWVudCA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybUVsZW1lbnQgPSBudWxsO1xuICAgICAgICAvKiogSW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgbm9kZSBpcyBub3QgYW4gZWxlbWVudCBpbiB0aGUgSFRNTCBuYW1lc3BhY2UgKi9cbiAgICAgICAgdGhpcy5jdXJyZW50Tm90SW5IVE1MID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgdGVtcGxhdGUgaW5zZXJ0aW9uIG1vZGUgc3RhY2sgaXMgbWFpbnRhaW5lZCBmcm9tIHRoZSBsZWZ0LlxuICAgICAgICAgKiBJZS4gdGhlIHRvcG1vc3QgZWxlbWVudCB3aWxsIGFsd2F5cyBoYXZlIGluZGV4IDAuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2sgPSBbXTtcbiAgICAgICAgdGhpcy5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zID0gW107XG4gICAgICAgIHRoaXMuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZyYW1lc2V0T2sgPSB0cnVlO1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdFBhcnNlck9wdGlvbnMsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdGhpcy5vcHRpb25zLnRyZWVBZGFwdGVyO1xuICAgICAgICB0aGlzLm9uUGFyc2VFcnJvciA9IHRoaXMub3B0aW9ucy5vblBhcnNlRXJyb3I7XG4gICAgICAgIC8vIEFsd2F5cyBlbmFibGUgbG9jYXRpb24gaW5mbyBpZiB3ZSByZXBvcnQgcGFyc2UgZXJyb3JzLlxuICAgICAgICBpZiAodGhpcy5vblBhcnNlRXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgIT09IG51bGwgJiYgZG9jdW1lbnQgIT09IHZvaWQgMCA/IGRvY3VtZW50IDogdGhpcy50cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpO1xuICAgICAgICB0aGlzLnRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIodGhpcy5vcHRpb25zLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMgPSBuZXcgRm9ybWF0dGluZ0VsZW1lbnRMaXN0KHRoaXMudHJlZUFkYXB0ZXIpO1xuICAgICAgICB0aGlzLmZyYWdtZW50Q29udGV4dElEID0gZnJhZ21lbnRDb250ZXh0ID8gZ2V0VGFnSUQodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGZyYWdtZW50Q29udGV4dCkpIDogJC5VTktOT1dOO1xuICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMoZnJhZ21lbnRDb250ZXh0ICE9PSBudWxsICYmIGZyYWdtZW50Q29udGV4dCAhPT0gdm9pZCAwID8gZnJhZ21lbnRDb250ZXh0IDogdGhpcy5kb2N1bWVudCwgdGhpcy5mcmFnbWVudENvbnRleHRJRCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodGhpcy5kb2N1bWVudCwgdGhpcy50cmVlQWRhcHRlciwgdGhpcyk7XG4gICAgfVxuICAgIC8vIEFQSVxuICAgIHN0YXRpYyBwYXJzZShodG1sLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyB0aGlzKG9wdGlvbnMpO1xuICAgICAgICBwYXJzZXIudG9rZW5pemVyLndyaXRlKGh0bWwsIHRydWUpO1xuICAgICAgICByZXR1cm4gcGFyc2VyLmRvY3VtZW50O1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0RnJhZ21lbnRQYXJzZXIoZnJhZ21lbnRDb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0UGFyc2VyT3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgICAgIC8vTk9URTogdXNlIGEgPHRlbXBsYXRlPiBlbGVtZW50IGFzIHRoZSBmcmFnbWVudCBjb250ZXh0IGlmIG5vIGNvbnRleHQgZWxlbWVudCB3YXMgcHJvdmlkZWQsXG4gICAgICAgIC8vc28gd2Ugd2lsbCBwYXJzZSBpbiBhIFwiZm9yZ2l2aW5nXCIgbWFubmVyXG4gICAgICAgIGZyYWdtZW50Q29udGV4dCAhPT0gbnVsbCAmJiBmcmFnbWVudENvbnRleHQgIT09IHZvaWQgMCA/IGZyYWdtZW50Q29udGV4dCA6IChmcmFnbWVudENvbnRleHQgPSBvcHRzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoVE4uVEVNUExBVEUsIE5TLkhUTUwsIFtdKSk7XG4gICAgICAgIC8vTk9URTogY3JlYXRlIGEgZmFrZSBlbGVtZW50IHdoaWNoIHdpbGwgYmUgdXNlZCBhcyB0aGUgYGRvY3VtZW50YCBmb3IgZnJhZ21lbnQgcGFyc2luZy5cbiAgICAgICAgLy9UaGlzIGlzIGltcG9ydGFudCBmb3IganNkb20sIHdoZXJlIGEgbmV3IGBkb2N1bWVudGAgY2Fubm90IGJlIGNyZWF0ZWQuIFRoaXMgbGVkIHRvXG4gICAgICAgIC8vZnJhZ21lbnQgcGFyc2luZyBtZXNzaW5nIHdpdGggdGhlIG1haW4gYGRvY3VtZW50YC5cbiAgICAgICAgY29uc3QgZG9jdW1lbnRNb2NrID0gb3B0cy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCdkb2N1bWVudG1vY2snLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyB0aGlzKG9wdHMsIGRvY3VtZW50TW9jaywgZnJhZ21lbnRDb250ZXh0KTtcbiAgICAgICAgaWYgKHBhcnNlci5mcmFnbWVudENvbnRleHRJRCA9PT0gJC5URU1QTEFURSkge1xuICAgICAgICAgICAgcGFyc2VyLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2sudW5zaGlmdChJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZXIuX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcoKTtcbiAgICAgICAgcGFyc2VyLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTtcbiAgICAgICAgcGFyc2VyLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcGFyc2VyLl9maW5kRm9ybUluRnJhZ21lbnRDb250ZXh0KCk7XG4gICAgICAgIHJldHVybiBwYXJzZXI7XG4gICAgfVxuICAgIGdldEZyYWdtZW50KCkge1xuICAgICAgICBjb25zdCByb290RWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZCh0aGlzLmRvY3VtZW50KTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgdGhpcy5fYWRvcHROb2Rlcyhyb290RWxlbWVudCwgZnJhZ21lbnQpO1xuICAgICAgICByZXR1cm4gZnJhZ21lbnQ7XG4gICAgfVxuICAgIC8vRXJyb3JzXG4gICAgX2Vycih0b2tlbiwgY29kZSwgYmVmb3JlVG9rZW4pIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIXRoaXMub25QYXJzZUVycm9yKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBsb2MgPSAoX2EgPSB0b2tlbi5sb2NhdGlvbikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogQkFTRV9MT0M7XG4gICAgICAgIGNvbnN0IGVyciA9IHtcbiAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICBzdGFydExpbmU6IGxvYy5zdGFydExpbmUsXG4gICAgICAgICAgICBzdGFydENvbDogbG9jLnN0YXJ0Q29sLFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IGxvYy5zdGFydE9mZnNldCxcbiAgICAgICAgICAgIGVuZExpbmU6IGJlZm9yZVRva2VuID8gbG9jLnN0YXJ0TGluZSA6IGxvYy5lbmRMaW5lLFxuICAgICAgICAgICAgZW5kQ29sOiBiZWZvcmVUb2tlbiA/IGxvYy5zdGFydENvbCA6IGxvYy5lbmRDb2wsXG4gICAgICAgICAgICBlbmRPZmZzZXQ6IGJlZm9yZVRva2VuID8gbG9jLnN0YXJ0T2Zmc2V0IDogbG9jLmVuZE9mZnNldCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5vblBhcnNlRXJyb3IoZXJyKTtcbiAgICB9XG4gICAgLy9TdGFjayBldmVudHNcbiAgICBvbkl0ZW1QdXNoKG5vZGUsIHRpZCwgaXNUb3ApIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9iID0gKF9hID0gdGhpcy50cmVlQWRhcHRlcikub25JdGVtUHVzaCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIG5vZGUpO1xuICAgICAgICBpZiAoaXNUb3AgJiYgdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPiAwKVxuICAgICAgICAgICAgdGhpcy5fc2V0Q29udGV4dE1vZGVzKG5vZGUsIHRpZCk7XG4gICAgfVxuICAgIG9uSXRlbVBvcChub2RlLCBpc1RvcCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEVuZExvY2F0aW9uKG5vZGUsIHRoaXMuY3VycmVudFRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnRyZWVBZGFwdGVyKS5vbkl0ZW1Qb3ApID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBub2RlLCB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50KTtcbiAgICAgICAgaWYgKGlzVG9wKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudDtcbiAgICAgICAgICAgIGxldCBjdXJyZW50VGFnSWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XG4gICAgICAgICAgICAgICAgY3VycmVudFRhZ0lkID0gdGhpcy5mcmFnbWVudENvbnRleHRJRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICh7IGN1cnJlbnQsIGN1cnJlbnRUYWdJZCB9ID0gdGhpcy5vcGVuRWxlbWVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fc2V0Q29udGV4dE1vZGVzKGN1cnJlbnQsIGN1cnJlbnRUYWdJZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX3NldENvbnRleHRNb2RlcyhjdXJyZW50LCB0aWQpIHtcbiAgICAgICAgY29uc3QgaXNIVE1MID0gY3VycmVudCA9PT0gdGhpcy5kb2N1bWVudCB8fCB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSA9PT0gTlMuSFRNTDtcbiAgICAgICAgdGhpcy5jdXJyZW50Tm90SW5IVE1MID0gIWlzSFRNTDtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSA9ICFpc0hUTUwgJiYgIXRoaXMuX2lzSW50ZWdyYXRpb25Qb2ludCh0aWQsIGN1cnJlbnQpO1xuICAgIH1cbiAgICBfc3dpdGNoVG9UZXh0UGFyc2luZyhjdXJyZW50VG9rZW4sIG5leHRUb2tlbml6ZXJTdGF0ZSkge1xuICAgICAgICB0aGlzLl9pbnNlcnRFbGVtZW50KGN1cnJlbnRUb2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gbmV4dFRva2VuaXplclN0YXRlO1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHRoaXMuaW5zZXJ0aW9uTW9kZTtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5URVhUO1xuICAgIH1cbiAgICBzd2l0Y2hUb1BsYWludGV4dFBhcnNpbmcoKSB7XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuVEVYVDtcbiAgICAgICAgdGhpcy5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5QTEFJTlRFWFQ7XG4gICAgfVxuICAgIC8vRnJhZ21lbnQgcGFyc2luZ1xuICAgIF9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHRcbiAgICAgICAgICAgID8gdGhpcy5mcmFnbWVudENvbnRleHRcbiAgICAgICAgICAgIDogdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICB9XG4gICAgX2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHQoKSB7XG4gICAgICAgIGxldCBub2RlID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XG4gICAgICAgIHdoaWxlIChub2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpID09PSBUTi5GT1JNKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtRWxlbWVudCA9IG5vZGU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub2RlID0gdGhpcy50cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9pbml0VG9rZW5pemVyRm9yRnJhZ21lbnRQYXJzaW5nKCkge1xuICAgICAgICBpZiAoIXRoaXMuZnJhZ21lbnRDb250ZXh0IHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuZnJhZ21lbnRDb250ZXh0KSAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5mcmFnbWVudENvbnRleHRJRCkge1xuICAgICAgICAgICAgY2FzZSAkLlRJVExFOlxuICAgICAgICAgICAgY2FzZSAkLlRFWFRBUkVBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlJDREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgICAgIGNhc2UgJC5YTVA6XG4gICAgICAgICAgICBjYXNlICQuSUZSQU1FOlxuICAgICAgICAgICAgY2FzZSAkLk5PRU1CRUQ6XG4gICAgICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkFXVEVYVDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUExBSU5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9UcmVlIG11dGF0aW9uXG4gICAgX3NldERvY3VtZW50VHlwZSh0b2tlbikge1xuICAgICAgICBjb25zdCBuYW1lID0gdG9rZW4ubmFtZSB8fCAnJztcbiAgICAgICAgY29uc3QgcHVibGljSWQgPSB0b2tlbi5wdWJsaWNJZCB8fCAnJztcbiAgICAgICAgY29uc3Qgc3lzdGVtSWQgPSB0b2tlbi5zeXN0ZW1JZCB8fCAnJztcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXREb2N1bWVudFR5cGUodGhpcy5kb2N1bWVudCwgbmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKTtcbiAgICAgICAgaWYgKHRva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudENoaWxkcmVuID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKHRoaXMuZG9jdW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgZG9jVHlwZU5vZGUgPSBkb2N1bWVudENoaWxkcmVuLmZpbmQoKG5vZGUpID0+IHRoaXMudHJlZUFkYXB0ZXIuaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpKTtcbiAgICAgICAgICAgIGlmIChkb2NUeXBlTm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihkb2NUeXBlTm9kZSwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIF9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQsIGxvY2F0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgY29uc3QgbG9jID0gbG9jYXRpb24gJiYge1xuICAgICAgICAgICAgICAgIC4uLmxvY2F0aW9uLFxuICAgICAgICAgICAgICAgIHN0YXJ0VGFnOiBsb2NhdGlvbixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oZWxlbWVudCwgbG9jKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5fZm9zdGVyUGFyZW50RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudE9yTm9kZTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfYXBwZW5kRWxlbWVudCh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgdG9rZW4ubG9jYXRpb24pO1xuICAgIH1cbiAgICBfaW5zZXJ0RWxlbWVudCh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQsIHRva2VuLnRhZ0lEKTtcbiAgICB9XG4gICAgX2luc2VydEZha2VFbGVtZW50KHRhZ05hbWUsIHRhZ0lEKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgTlMuSFRNTCwgW10pO1xuICAgICAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQsIG51bGwpO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQsIHRhZ0lEKTtcbiAgICB9XG4gICAgX2luc2VydFRlbXBsYXRlKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHRtcGwgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgTlMuSFRNTCwgdG9rZW4uYXR0cnMpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0VGVtcGxhdGVDb250ZW50KHRtcGwsIGNvbnRlbnQpO1xuICAgICAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKHRtcGwsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucHVzaCh0bXBsLCB0b2tlbi50YWdJRCk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbylcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihjb250ZW50LCBudWxsKTtcbiAgICB9XG4gICAgX2luc2VydEZha2VSb290RWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChUTi5IVE1MLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbylcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50LCBudWxsKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZCh0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50LCBlbGVtZW50KTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucHVzaChlbGVtZW50LCAkLkhUTUwpO1xuICAgIH1cbiAgICBfYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHBhcmVudCkge1xuICAgICAgICBjb25zdCBjb21tZW50Tm9kZSA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlQ29tbWVudE5vZGUodG9rZW4uZGF0YSk7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBjb21tZW50Tm9kZSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGNvbW1lbnROb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2luc2VydENoYXJhY3RlcnModG9rZW4pIHtcbiAgICAgICAgbGV0IHBhcmVudDtcbiAgICAgICAgbGV0IGJlZm9yZUVsZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRGb3N0ZXJQYXJlbnRPbkluc2VydGlvbigpKSB7XG4gICAgICAgICAgICAoeyBwYXJlbnQsIGJlZm9yZUVsZW1lbnQgfSA9IHRoaXMuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpKTtcbiAgICAgICAgICAgIGlmIChiZWZvcmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRUZXh0QmVmb3JlKHBhcmVudCwgdG9rZW4uY2hhcnMsIGJlZm9yZUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRUZXh0KHBhcmVudCwgdG9rZW4uY2hhcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50T3JOb2RlO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRUZXh0KHBhcmVudCwgdG9rZW4uY2hhcnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdG9rZW4ubG9jYXRpb24pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHNpYmxpbmdzID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKHBhcmVudCk7XG4gICAgICAgIGNvbnN0IHRleHROb2RlSWR4ID0gYmVmb3JlRWxlbWVudCA/IHNpYmxpbmdzLmxhc3RJbmRleE9mKGJlZm9yZUVsZW1lbnQpIDogc2libGluZ3MubGVuZ3RoO1xuICAgICAgICBjb25zdCB0ZXh0Tm9kZSA9IHNpYmxpbmdzW3RleHROb2RlSWR4IC0gMV07XG4gICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBhIGxvY2F0aW9uIGFzc2lnbmVkIGJ5IGFub3RoZXIgdG9rZW4sIHRoZW4ganVzdCB1cGRhdGUgdGhlIGVuZCBwb3NpdGlvblxuICAgICAgICBjb25zdCB0bkxvYyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbih0ZXh0Tm9kZSk7XG4gICAgICAgIGlmICh0bkxvYykge1xuICAgICAgICAgICAgY29uc3QgeyBlbmRMaW5lLCBlbmRDb2wsIGVuZE9mZnNldCB9ID0gdG9rZW4ubG9jYXRpb247XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnVwZGF0ZU5vZGVTb3VyY2VDb2RlTG9jYXRpb24odGV4dE5vZGUsIHsgZW5kTGluZSwgZW5kQ29sLCBlbmRPZmZzZXQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbih0ZXh0Tm9kZSwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9hZG9wdE5vZGVzKGRvbm9yLCByZWNpcGllbnQpIHtcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9ub3IpOyBjaGlsZDsgY2hpbGQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9ub3IpKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUoY2hpbGQpO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChyZWNpcGllbnQsIGNoaWxkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc2V0RW5kTG9jYXRpb24oZWxlbWVudCwgY2xvc2luZ1Rva2VuKSB7XG4gICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oZWxlbWVudCkgJiYgY2xvc2luZ1Rva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBjdExvYyA9IGNsb3NpbmdUb2tlbi5sb2NhdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgZW5kTG9jID0gXG4gICAgICAgICAgICAvLyBOT1RFOiBGb3IgY2FzZXMgbGlrZSA8cD4gPHA+IDwvcD4gLSBGaXJzdCAncCcgY2xvc2VzIHdpdGhvdXQgYSBjbG9zaW5nXG4gICAgICAgICAgICAvLyB0YWcgYW5kIGZvciBjYXNlcyBsaWtlIDx0ZD4gPHA+IDwvdGQ+IC0gJ3AnIGNsb3NlcyB3aXRob3V0IGEgY2xvc2luZyB0YWcuXG4gICAgICAgICAgICBjbG9zaW5nVG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkVORF9UQUcgJiYgdG4gPT09IGNsb3NpbmdUb2tlbi50YWdOYW1lXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIGVuZFRhZzogeyAuLi5jdExvYyB9LFxuICAgICAgICAgICAgICAgICAgICBlbmRMaW5lOiBjdExvYy5lbmRMaW5lLFxuICAgICAgICAgICAgICAgICAgICBlbmRDb2w6IGN0TG9jLmVuZENvbCxcbiAgICAgICAgICAgICAgICAgICAgZW5kT2Zmc2V0OiBjdExvYy5lbmRPZmZzZXQsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICBlbmRMaW5lOiBjdExvYy5zdGFydExpbmUsXG4gICAgICAgICAgICAgICAgICAgIGVuZENvbDogY3RMb2Muc3RhcnRDb2wsXG4gICAgICAgICAgICAgICAgICAgIGVuZE9mZnNldDogY3RMb2Muc3RhcnRPZmZzZXQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIudXBkYXRlTm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50LCBlbmRMb2MpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vVG9rZW4gcHJvY2Vzc2luZ1xuICAgIHNob3VsZFByb2Nlc3NTdGFydFRhZ1Rva2VuSW5Gb3JlaWduQ29udGVudCh0b2tlbikge1xuICAgICAgICAvLyBDaGVjayB0aGF0IG5laXRoZXIgY3VycmVudCA9PT0gZG9jdW1lbnQsIG9yIG5zID09PSBOUy5IVE1MXG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50Tm90SW5IVE1MKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBsZXQgY3VycmVudDtcbiAgICAgICAgbGV0IGN1cnJlbnRUYWdJZDtcbiAgICAgICAgaWYgKHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0KSB7XG4gICAgICAgICAgICBjdXJyZW50ID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XG4gICAgICAgICAgICBjdXJyZW50VGFnSWQgPSB0aGlzLmZyYWdtZW50Q29udGV4dElEO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgKHsgY3VycmVudCwgY3VycmVudFRhZ0lkIH0gPSB0aGlzLm9wZW5FbGVtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLlNWRyAmJlxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGN1cnJlbnQpID09PSBUTi5BTk5PVEFUSU9OX1hNTCAmJlxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY3VycmVudCkgPT09IE5TLk1BVEhNTCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgIC8vIENoZWNrIHRoYXQgYGN1cnJlbnRgIGlzIG5vdCBhbiBpbnRlZ3JhdGlvbiBwb2ludCBmb3IgSFRNTCBvciBNYXRoTUwgZWxlbWVudHMuXG4gICAgICAgIHRoaXMudG9rZW5pemVyLmluRm9yZWlnbk5vZGUgfHxcbiAgICAgICAgICAgIC8vIElmIGl0IF9pc18gYW4gaW50ZWdyYXRpb24gcG9pbnQsIHRoZW4gd2UgbWlnaHQgaGF2ZSB0byBjaGVjayB0aGF0IGl0IGlzIG5vdCBhbiBIVE1MXG4gICAgICAgICAgICAvLyBpbnRlZ3JhdGlvbiBwb2ludC5cbiAgICAgICAgICAgICgodG9rZW4udGFnSUQgPT09ICQuTUdMWVBIIHx8IHRva2VuLnRhZ0lEID09PSAkLk1BTElHTk1BUkspICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuX2lzSW50ZWdyYXRpb25Qb2ludChjdXJyZW50VGFnSWQsIGN1cnJlbnQsIE5TLkhUTUwpKSk7XG4gICAgfVxuICAgIF9wcm9jZXNzVG9rZW4odG9rZW4pIHtcbiAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhcmFjdGVyKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLk5VTExfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk51bGxDaGFyYWN0ZXIodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ09NTUVOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMub25Db21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkRPQ1RZUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5TVEFSVF9UQUc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuRU5EX1RBRzoge1xuICAgICAgICAgICAgICAgIHRoaXMub25FbmRUYWcodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVvZih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25XaGl0ZXNwYWNlQ2hhcmFjdGVyKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvL0ludGVncmF0aW9uIHBvaW50c1xuICAgIF9pc0ludGVncmF0aW9uUG9pbnQodGlkLCBlbGVtZW50LCBmb3JlaWduTlMpIHtcbiAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgYXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gZm9yZWlnbkNvbnRlbnQuaXNJbnRlZ3JhdGlvblBvaW50KHRpZCwgbnMsIGF0dHJzLCBmb3JlaWduTlMpO1xuICAgIH1cbiAgICAvL0FjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzIHJlY29uc3RydWN0aW9uXG4gICAgX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCkge1xuICAgICAgICBjb25zdCBsaXN0TGVuZ3RoID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllcy5sZW5ndGg7XG4gICAgICAgIGlmIChsaXN0TGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRJbmRleCA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXMuZmluZEluZGV4KChlbnRyeSkgPT4gZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLk1hcmtlciB8fCB0aGlzLm9wZW5FbGVtZW50cy5jb250YWlucyhlbnRyeS5lbGVtZW50KSk7XG4gICAgICAgICAgICBjb25zdCB1bm9wZW5JZHggPSBlbmRJbmRleCA8IDAgPyBsaXN0TGVuZ3RoIC0gMSA6IGVuZEluZGV4IC0gMTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSB1bm9wZW5JZHg7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzW2ldO1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoZW50cnkudG9rZW4sIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVudHJ5LmVsZW1lbnQpKTtcbiAgICAgICAgICAgICAgICBlbnRyeS5lbGVtZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvL0Nsb3NlIGVsZW1lbnRzXG4gICAgX2Nsb3NlVGFibGVDZWxsKCkge1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFibGVDZWxsUG9wcGVkKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgIH1cbiAgICBfY2xvc2VQRWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5QKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuUCk7XG4gICAgfVxuICAgIC8vSW5zZXJ0aW9uIG1vZGVzXG4gICAgX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgLy9JbnNlcnRpb24gbW9kZSByZXNldCBtYXBcbiAgICAgICAgICAgIHN3aXRjaCAoaSA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dCA/IHRoaXMuZnJhZ21lbnRDb250ZXh0SUQgOiB0aGlzLm9wZW5FbGVtZW50cy50YWdJRHNbaV0pIHtcbiAgICAgICAgICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgICAgICAgICBjYXNlICQuVEZPT1Q6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5DQVBUSU9OOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuQ09MR1JPVVA6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5TRUxFQ1Q6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0KGkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSB0aGlzLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gdGhpcy5oZWFkRWxlbWVudCA/IEluc2VydGlvbk1vZGUuQUZURVJfSEVBRCA6IEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5USDoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0VMTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICB9XG4gICAgX3Jlc2V0SW5zZXJ0aW9uTW9kZUZvclNlbGVjdChzZWxlY3RJZHgpIHtcbiAgICAgICAgaWYgKHNlbGVjdElkeCA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBzZWxlY3RJZHggLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLm9wZW5FbGVtZW50cy50YWdJRHNbaV07XG4gICAgICAgICAgICAgICAgaWYgKHRuID09PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5UQUJMRSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDtcbiAgICB9XG4gICAgLy9Gb3N0ZXIgcGFyZW50aW5nXG4gICAgX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyh0bikge1xuICAgICAgICByZXR1cm4gVEFCTEVfU1RSVUNUVVJFX1RBR1MuaGFzKHRuKTtcbiAgICB9XG4gICAgX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkICYmIHRoaXMuX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyh0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpO1xuICAgIH1cbiAgICBfZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBvcGVuRWxlbWVudCA9IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zW2ldO1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLm9wZW5FbGVtZW50cy50YWdJRHNbaV0pIHtcbiAgICAgICAgICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG9wZW5FbGVtZW50KSA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcGFyZW50OiB0aGlzLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudChvcGVuRWxlbWVudCksIGJlZm9yZUVsZW1lbnQ6IG51bGwgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShvcGVuRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhcmVudCwgYmVmb3JlRWxlbWVudDogb3BlbkVsZW1lbnQgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBwYXJlbnQ6IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zW2kgLSAxXSwgYmVmb3JlRWxlbWVudDogbnVsbCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBwYXJlbnQ6IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCBiZWZvcmVFbGVtZW50OiBudWxsIH07XG4gICAgfVxuICAgIF9mb3N0ZXJQYXJlbnRFbGVtZW50KGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKTtcbiAgICAgICAgaWYgKGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0QmVmb3JlKGxvY2F0aW9uLnBhcmVudCwgZWxlbWVudCwgbG9jYXRpb24uYmVmb3JlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGxvY2F0aW9uLnBhcmVudCwgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9TcGVjaWFsIGVsZW1lbnRzXG4gICAgX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgaWQpIHtcbiAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIFNQRUNJQUxfRUxFTUVOVFNbbnNdLmhhcyhpZCk7XG4gICAgfVxuICAgIG9uQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICBjaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbk51bGxDaGFyYWN0ZXIodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5pemVyLmluRm9yZWlnbk5vZGUpIHtcbiAgICAgICAgICAgIG51bGxDaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Db21tZW50KHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnROb3RJbkhUTUwpIHtcbiAgICAgICAgICAgIGFwcGVuZENvbW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBhcHBlbmRDb21tZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIGFwcGVuZENvbW1lbnRUb1Jvb3RIdG1sRWxlbWVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGFwcGVuZENvbW1lbnRUb0RvY3VtZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Eb2N0eXBlKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIGRvY3R5cGVJbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIodG9rZW4sIEVSUi5taXNwbGFjZWREb2N0eXBlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uU3RhcnRUYWcodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB0b2tlbjtcbiAgICAgICAgdGhpcy5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICAgICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nICYmICF0b2tlbi5hY2tTZWxmQ2xvc2luZykge1xuICAgICAgICAgICAgdGhpcy5fZXJyKHRva2VuLCBFUlIubm9uVm9pZEh0bWxFbGVtZW50U3RhcnRUYWdXaXRoVHJhaWxpbmdTb2xpZHVzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgYSBnaXZlbiBzdGFydCB0YWcuXG4gICAgICpcbiAgICAgKiBgb25TdGFydFRhZ2AgY2hlY2tzIGlmIGEgc2VsZi1jbG9zaW5nIHRhZyB3YXMgcmVjb2duaXplZC4gV2hlbiBhIHRva2VuXG4gICAgICogaXMgbW92ZWQgaW5iZXR3ZWVuIG11bHRpcGxlIGluc2VydGlvbiBtb2RlcywgdGhpcyBjaGVjayBmb3Igc2VsZi1jbG9zaW5nXG4gICAgICogY291bGQgbGVhZCB0byBmYWxzZSBwb3NpdGl2ZXMuIFRvIGF2b2lkIHRoaXMsIGBfcHJvY2Vzc1N0YXJ0VGFnYCBpcyB1c2VkXG4gICAgICogZm9yIG5lc3RlZCBjYWxscy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0b2tlbiBUaGUgdG9rZW4gdG8gcHJvY2Vzcy5cbiAgICAgKi9cbiAgICBfcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZFByb2Nlc3NTdGFydFRhZ1Rva2VuSW5Gb3JlaWduQ29udGVudCh0b2tlbikpIHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zdGFydFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0JlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdCZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5DYXB0aW9uKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGVCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luUm93KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkNlbGwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5TZWxlY3QodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5TZWxlY3RJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5GcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVyRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVyQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJBZnRlckZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25FbmRUYWcodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB0b2tlbjtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5vdEluSFRNTCkge1xuICAgICAgICAgICAgZW5kVGFnSW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0JlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0FmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luQ2FwdGlvbih0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblJvdyh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luQ2VsbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5TZWxlY3QodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luU2VsZWN0SW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRlbXBsYXRlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQWZ0ZXJGcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkVvZih0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBlb2ZJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6IHtcbiAgICAgICAgICAgICAgICBlb2ZJblRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIGVvZkluVGVtcGxhdGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHN0b3BQYXJzaW5nKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25XaGl0ZXNwYWNlQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIGlmICh0aGlzLnNraXBOZXh0TmV3TGluZSkge1xuICAgICAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5jaGFycy5jaGFyQ29kZUF0KDApID09PSB1bmljb2RlLkNPREVfUE9JTlRTLkxJTkVfRkVFRCkge1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi5jaGFycy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0b2tlbi5jaGFycyA9IHRva2VuLmNoYXJzLnN1YnN0cigxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxufVxuLy9BZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjYWRvcHRpb25BZ2VuY3kpXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9TdGVwcyA1LTggb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFPYnRhaW5Gb3JtYXR0aW5nRWxlbWVudEVudHJ5KHAsIHRva2VuKSB7XG4gICAgbGV0IGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUodG9rZW4udGFnTmFtZSk7XG4gICAgaWYgKGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICAgICAgaWYgKCFwLm9wZW5FbGVtZW50cy5jb250YWlucyhmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRva2VuLnRhZ0lEKSkge1xuICAgICAgICAgICAgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbn1cbi8vU3RlcHMgOSBhbmQgMTAgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFPYnRhaW5GdXJ0aGVzdEJsb2NrKHAsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICBsZXQgZnVydGhlc3RCbG9jayA9IG51bGw7XG4gICAgbGV0IGlkeCA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wO1xuICAgIGZvciAoOyBpZHggPj0gMDsgaWR4LS0pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2lkeF07XG4gICAgICAgIGlmIChlbGVtZW50ID09PSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwLl9pc1NwZWNpYWxFbGVtZW50KGVsZW1lbnQsIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1tpZHhdKSkge1xuICAgICAgICAgICAgZnVydGhlc3RCbG9jayA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnNob3J0ZW5Ub0xlbmd0aChpZHggPCAwID8gMCA6IGlkeCk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgIH1cbiAgICByZXR1cm4gZnVydGhlc3RCbG9jaztcbn1cbi8vU3RlcCAxMyBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudCkge1xuICAgIGxldCBsYXN0RWxlbWVudCA9IGZ1cnRoZXN0QmxvY2s7XG4gICAgbGV0IG5leHRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZnVydGhlc3RCbG9jayk7XG4gICAgZm9yIChsZXQgaSA9IDAsIGVsZW1lbnQgPSBuZXh0RWxlbWVudDsgZWxlbWVudCAhPT0gZm9ybWF0dGluZ0VsZW1lbnQ7IGkrKywgZWxlbWVudCA9IG5leHRFbGVtZW50KSB7XG4gICAgICAgIC8vTk9URTogc3RvcmUgdGhlIG5leHQgZWxlbWVudCBmb3IgdGhlIG5leHQgbG9vcCBpdGVyYXRpb24gKGl0IG1heSBiZSBkZWxldGVkIGZyb20gdGhlIHN0YWNrIGJ5IHN0ZXAgOS41KVxuICAgICAgICBuZXh0RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBlbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnkoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNvdW50ZXJPdmVyZmxvdyA9IGVsZW1lbnRFbnRyeSAmJiBpID49IEFBX0lOTkVSX0xPT1BfSVRFUjtcbiAgICAgICAgY29uc3Qgc2hvdWxkUmVtb3ZlRnJvbU9wZW5FbGVtZW50cyA9ICFlbGVtZW50RW50cnkgfHwgY291bnRlck92ZXJmbG93O1xuICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlRnJvbU9wZW5FbGVtZW50cykge1xuICAgICAgICAgICAgaWYgKGNvdW50ZXJPdmVyZmxvdykge1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGVsZW1lbnRFbnRyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlbGVtZW50ID0gYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkocCwgZWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIGlmIChsYXN0RWxlbWVudCA9PT0gZnVydGhlc3RCbG9jaykge1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZWxlbWVudEVudHJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGxhc3RFbGVtZW50KTtcbiAgICAgICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCwgbGFzdEVsZW1lbnQpO1xuICAgICAgICAgICAgbGFzdEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsYXN0RWxlbWVudDtcbn1cbi8vU3RlcCAxMy43IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhUmVjcmVhdGVFbGVtZW50RnJvbUVudHJ5KHAsIGVsZW1lbnRFbnRyeSkge1xuICAgIGNvbnN0IG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBwLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoZWxlbWVudEVudHJ5LnRva2VuLnRhZ05hbWUsIG5zLCBlbGVtZW50RW50cnkudG9rZW4uYXR0cnMpO1xuICAgIHAub3BlbkVsZW1lbnRzLnJlcGxhY2UoZWxlbWVudEVudHJ5LmVsZW1lbnQsIG5ld0VsZW1lbnQpO1xuICAgIGVsZW1lbnRFbnRyeS5lbGVtZW50ID0gbmV3RWxlbWVudDtcbiAgICByZXR1cm4gbmV3RWxlbWVudDtcbn1cbi8vU3RlcCAxNCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpIHtcbiAgICBjb25zdCB0biA9IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShjb21tb25BbmNlc3Rvcik7XG4gICAgY29uc3QgdGlkID0gZ2V0VGFnSUQodG4pO1xuICAgIGlmIChwLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcodGlkKSkge1xuICAgICAgICBwLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGxhc3RFbGVtZW50KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY29tbW9uQW5jZXN0b3IpO1xuICAgICAgICBpZiAodGlkID09PSAkLlRFTVBMQVRFICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICBjb21tb25BbmNlc3RvciA9IHAudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KGNvbW1vbkFuY2VzdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7XG4gICAgfVxufVxuLy9TdGVwcyAxNS0xOSBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgIGNvbnN0IHsgdG9rZW4gfSA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHAudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBucywgdG9rZW4uYXR0cnMpO1xuICAgIHAuX2Fkb3B0Tm9kZXMoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7XG4gICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhuZXdFbGVtZW50LCB0b2tlbik7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgcC5vcGVuRWxlbWVudHMuaW5zZXJ0QWZ0ZXIoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCwgdG9rZW4udGFnSUQpO1xufVxuLy9BbGdvcml0aG0gZW50cnkgcG9pbnRcbmZ1bmN0aW9uIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQUFfT1VURVJfTE9PUF9JVEVSOyBpKyspIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IGFhT2J0YWluRm9ybWF0dGluZ0VsZW1lbnRFbnRyeShwLCB0b2tlbik7XG4gICAgICAgIGlmICghZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnVydGhlc3RCbG9jayA9IGFhT2J0YWluRnVydGhlc3RCbG9jayhwLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICAgICAgaWYgKCFmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5ib29rbWFyayA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG4gICAgICAgIGNvbnN0IGxhc3RFbGVtZW50ID0gYWFJbm5lckxvb3AocCwgZnVydGhlc3RCbG9jaywgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29tbW9uQW5jZXN0b3IgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3Rvcihmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpO1xuICAgICAgICBpZiAoY29tbW9uQW5jZXN0b3IpXG4gICAgICAgICAgICBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpO1xuICAgICAgICBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICB9XG59XG4vL0dlbmVyaWMgdG9rZW4gaGFuZGxlcnNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBhcHBlbmRDb21tZW50KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudE9yTm9kZSk7XG59XG5mdW5jdGlvbiBhcHBlbmRDb21tZW50VG9Sb290SHRtbEVsZW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5vcGVuRWxlbWVudHMuaXRlbXNbMF0pO1xufVxuZnVuY3Rpb24gYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5kb2N1bWVudCk7XG59XG5mdW5jdGlvbiBzdG9wUGFyc2luZyhwLCB0b2tlbikge1xuICAgIHAuc3RvcHBlZCA9IHRydWU7XG4gICAgLy8gTk9URTogU2V0IGVuZCBsb2NhdGlvbnMgZm9yIGVsZW1lbnRzIHRoYXQgcmVtYWluIG9uIHRoZSBvcGVuIGVsZW1lbnQgc3RhY2suXG4gICAgaWYgKHRva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgIC8vIE5PVEU6IElmIHdlIGFyZSBub3QgaW4gYSBmcmFnbWVudCwgYGh0bWxgIGFuZCBgYm9keWAgd2lsbCBzdGF5IG9uIHRoZSBzdGFjay5cbiAgICAgICAgLy8gVGhpcyBpcyBhIHByb2JsZW0sIGFzIHdlIG1pZ2h0IG92ZXJ3cml0ZSB0aGVpciBlbmQgcG9zaXRpb24gaGVyZS5cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gcC5mcmFnbWVudENvbnRleHQgPyAwIDogMjtcbiAgICAgICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IHRhcmdldDsgaS0tKSB7XG4gICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihwLm9wZW5FbGVtZW50cy5pdGVtc1tpXSwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIC8vIEhhbmRsZSBgaHRtbGAgYW5kIGBib2R5YFxuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0ICYmIHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbMF07XG4gICAgICAgICAgICBjb25zdCBodG1sTG9jYXRpb24gPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oaHRtbEVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKGh0bWxMb2NhdGlvbiAmJiAhaHRtbExvY2F0aW9uLmVuZFRhZykge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGh0bWxFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1sxXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUxvY2F0aW9uID0gcC50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGJvZHlFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJvZHlMb2NhdGlvbiAmJiAhYm9keUxvY2F0aW9uLmVuZFRhZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oYm9keUVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluaXRpYWxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGRvY3R5cGVJbkluaXRpYWxNb2RlKHAsIHRva2VuKSB7XG4gICAgcC5fc2V0RG9jdW1lbnRUeXBlKHRva2VuKTtcbiAgICBjb25zdCBtb2RlID0gdG9rZW4uZm9yY2VRdWlya3MgPyBET0NVTUVOVF9NT0RFLlFVSVJLUyA6IGRvY3R5cGUuZ2V0RG9jdW1lbnRNb2RlKHRva2VuKTtcbiAgICBpZiAoIWRvY3R5cGUuaXNDb25mb3JtaW5nKHRva2VuKSkge1xuICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5ub25Db25mb3JtaW5nRG9jdHlwZSk7XG4gICAgfVxuICAgIHAudHJlZUFkYXB0ZXIuc2V0RG9jdW1lbnRNb2RlKHAuZG9jdW1lbnQsIG1vZGUpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw7XG59XG5mdW5jdGlvbiB0b2tlbkluSW5pdGlhbE1vZGUocCwgdG9rZW4pIHtcbiAgICBwLl9lcnIodG9rZW4sIEVSUi5taXNzaW5nRG9jdHlwZSwgdHJ1ZSk7XG4gICAgcC50cmVlQWRhcHRlci5zZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCwgRE9DVU1FTlRfTU9ERS5RVUlSS1MpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImJlZm9yZSBodG1sXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0JlZm9yZUh0bWwocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkhUTUwgfHwgdG4gPT09ICQuSEVBRCB8fCB0biA9PT0gJC5CT0RZIHx8IHRuID09PSAkLkJSKSB7XG4gICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZVJvb3RFbGVtZW50KCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiYmVmb3JlIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuaGVhZEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0JlZm9yZUhlYWQocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5IRUFEIHx8IHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuSFRNTCB8fCB0biA9PT0gJC5CUikge1xuICAgICAgICB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkhFQUQsICQuSEVBRCk7XG4gICAgcC5oZWFkRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRJVExFOiB7XG4gICAgICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJDREFUQSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wdGlvbnMuc2NyaXB0aW5nRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOlxuICAgICAgICBjYXNlICQuU1RZTEU6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0NSSVBUOiB7XG4gICAgICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlNDUklQVF9EQVRBKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgcC5faW5zZXJ0VGVtcGxhdGUodG9rZW4pO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2sudW5zaGlmdChJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5taXNwbGFjZWRTdGFydFRhZ0ZvckhlYWRFbGVtZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5CUjpcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzVGhvcm91Z2hseSgpO1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkICE9PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5jbG9zaW5nT2ZFbGVtZW50V2l0aE9wZW5DaGlsZEVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5URU1QTEFURSk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay5zaGlmdCgpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkluSGVhZChwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gaGVhZCBubyBzY3JpcHRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuSEVBRDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TVFlMRToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PU0NSSVBUOiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5uZXN0ZWROb3NjcmlwdEluSGVhZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luSGVhZE5vU2NyaXB0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJSOiB7XG4gICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBjb25zdCBlcnJDb2RlID0gdG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkVPRiA/IEVSUi5vcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2YgOiBFUlIuZGlzYWxsb3dlZENvbnRlbnRJbk5vc2NyaXB0SW5IZWFkO1xuICAgIHAuX2Vycih0b2tlbiwgZXJyQ29kZSk7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJhZnRlciBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkJBU0VGT05UOlxuICAgICAgICBjYXNlICQuQkdTT1VORDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOlxuICAgICAgICBjYXNlICQuVElUTEU6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmFiYW5kb25lZEhlYWRFbGVtZW50Q2hpbGQpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucHVzaChwLmhlYWRFbGVtZW50LCAkLkhFQUQpO1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKHAuaGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5CUjoge1xuICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkFmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkJPRFksICQuQk9EWSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIG1vZGVJbkJvZHkocCwgdG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gbW9kZUluQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgIGNoYXJhY3RlckluQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5DT01NRU5UOiB7XG4gICAgICAgICAgICBhcHBlbmRDb21tZW50KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLlNUQVJUX1RBRzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuRU5EX1RBRzoge1xuICAgICAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkVPRjoge1xuICAgICAgICAgICAgZW9mSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbn1cbmZ1bmN0aW9uIGNoYXJhY3RlckluQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCB0b2tlbi5hdHRycyk7XG4gICAgfVxufVxuZnVuY3Rpb24gYm9keVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuICAgIGlmIChib2R5RWxlbWVudCAmJiBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApIHtcbiAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKGJvZHlFbGVtZW50LCB0b2tlbi5hdHRycyk7XG4gICAgfVxufVxuZnVuY3Rpb24gZnJhbWVzZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICBpZiAocC5mcmFtZXNldE9rICYmIGJvZHlFbGVtZW50KSB7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShib2R5RWxlbWVudCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcEFsbFVwVG9IdG1sRWxlbWVudCgpO1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDtcbiAgICB9XG59XG5mdW5jdGlvbiBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIGlmIChpc051bWJlcmVkSGVhZGVyKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gcHJlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgLy9OT1RFOiBJZiB0aGUgbmV4dCB0b2tlbiBpcyBhIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXIgdG9rZW4sIHRoZW4gaWdub3JlIHRoYXQgdG9rZW4gYW5kIG1vdmVcbiAgICAvL29uIHRvIHRoZSBuZXh0IG9uZS4gKE5ld2xpbmVzIGF0IHRoZSBzdGFydCBvZiBwcmUgYmxvY2tzIGFyZSBpZ25vcmVkIGFzIGFuIGF1dGhvcmluZyBjb252ZW5pZW5jZS4pXG4gICAgcC5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gZm9ybVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgaW5UZW1wbGF0ZSA9IHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDA7XG4gICAgaWYgKCFwLmZvcm1FbGVtZW50IHx8IGluVGVtcGxhdGUpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBpZiAoIWluVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHAuZm9ybUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gbGlzdEl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50SWQgPSBwLm9wZW5FbGVtZW50cy50YWdJRHNbaV07XG4gICAgICAgIGlmICgodG4gPT09ICQuTEkgJiYgZWxlbWVudElkID09PSAkLkxJKSB8fFxuICAgICAgICAgICAgKCh0biA9PT0gJC5ERCB8fCB0biA9PT0gJC5EVCkgJiYgKGVsZW1lbnRJZCA9PT0gJC5ERCB8fCBlbGVtZW50SWQgPT09ICQuRFQpKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oZWxlbWVudElkKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZChlbGVtZW50SWQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnRJZCAhPT0gJC5BRERSRVNTICYmXG4gICAgICAgICAgICBlbGVtZW50SWQgIT09ICQuRElWICYmXG4gICAgICAgICAgICBlbGVtZW50SWQgIT09ICQuUCAmJlxuICAgICAgICAgICAgcC5faXNTcGVjaWFsRWxlbWVudChwLm9wZW5FbGVtZW50cy5pdGVtc1tpXSwgZWxlbWVudElkKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gcGxhaW50ZXh0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbn1cbmZ1bmN0aW9uIGJ1dHRvblN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CVVRUT04pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuQlVUVE9OKTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZShUTi5BKTtcbiAgICBpZiAoYWN0aXZlRWxlbWVudEVudHJ5KSB7XG4gICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShhY3RpdmVFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGFjdGl2ZUVsZW1lbnRFbnRyeSk7XG4gICAgfVxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5mdW5jdGlvbiBub2JyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuTk9CUikpIHtcbiAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gYXBwbGV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLnRyZWVBZGFwdGVyLmdldERvY3VtZW50TW9kZShwLmRvY3VtZW50KSAhPT0gRE9DVU1FTlRfTU9ERS5RVUlSS1MgJiYgcC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbn1cbmZ1bmN0aW9uIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gaXNIaWRkZW5JbnB1dCh0b2tlbikge1xuICAgIGNvbnN0IGlucHV0VHlwZSA9IGdldFRva2VuQXR0cih0b2tlbiwgQVRUUlMuVFlQRSk7XG4gICAgcmV0dXJuIGlucHV0VHlwZSAhPSBudWxsICYmIGlucHV0VHlwZS50b0xvd2VyQ2FzZSgpID09PSBISURERU5fSU5QVVRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlucHV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIGlmICghaXNIaWRkZW5JbnB1dCh0b2tlbikpIHtcbiAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHBhcmFtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBoclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGltYWdlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICB0b2tlbi50YWdOYW1lID0gVE4uSU1HO1xuICAgIHRva2VuLnRhZ0lEID0gJC5JTUc7XG4gICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIHRleHRhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAvL05PVEU6IElmIHRoZSBuZXh0IHRva2VuIGlzIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciB0b2tlbiwgdGhlbiBpZ25vcmUgdGhhdCB0b2tlbiBhbmQgbW92ZVxuICAgIC8vb24gdG8gdGhlIG5leHQgb25lLiAoTmV3bGluZXMgYXQgdGhlIHN0YXJ0IG9mIHRleHRhcmVhIGVsZW1lbnRzIGFyZSBpZ25vcmVkIGFzIGFuIGF1dGhvcmluZyBjb252ZW5pZW5jZS4pXG4gICAgcC5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xuICAgIHAudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5SQ0RBVEE7XG4gICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5URVhUO1xufVxuZnVuY3Rpb24geG1wU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJBV1RFWFQpO1xufVxuZnVuY3Rpb24gaWZyYW1lU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJBV1RFWFQpO1xufVxuLy9OT1RFOiBoZXJlIHdlIGFzc3VtZSB0aGF0IHdlIGFsd2F5cyBhY3QgYXMgYW4gdXNlciBhZ2VudCB3aXRoIGVuYWJsZWQgcGx1Z2lucywgc28gd2UgcGFyc2Vcbi8vPG5vZW1iZWQ+IGFzIHJhd3RleHQuXG5mdW5jdGlvbiBub2VtYmVkU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJBV1RFWFQpO1xufVxuZnVuY3Rpb24gc2VsZWN0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRSB8fFxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT04gfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fUk9XIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fQ0VMTFxuICAgICAgICAgICAgPyBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRVxuICAgICAgICAgICAgOiBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDtcbn1cbmZ1bmN0aW9uIG9wdGdyb3VwU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHJiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLlJVQlkpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBydFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5SVUJZKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlJUQyk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gbWF0aFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcbiAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuTUFUSE1MKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLk1BVEhNTCk7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR0F0dHJzKHRva2VuKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcbiAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuU1ZHKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLlNWRyk7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBzdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkk6XG4gICAgICAgIGNhc2UgJC5TOlxuICAgICAgICBjYXNlICQuQjpcbiAgICAgICAgY2FzZSAkLlU6XG4gICAgICAgIGNhc2UgJC5FTTpcbiAgICAgICAgY2FzZSAkLlRUOlxuICAgICAgICBjYXNlICQuQklHOlxuICAgICAgICBjYXNlICQuQ09ERTpcbiAgICAgICAgY2FzZSAkLkZPTlQ6XG4gICAgICAgIGNhc2UgJC5TTUFMTDpcbiAgICAgICAgY2FzZSAkLlNUUklLRTpcbiAgICAgICAgY2FzZSAkLlNUUk9ORzoge1xuICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5BOiB7XG4gICAgICAgICAgICBhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkgxOlxuICAgICAgICBjYXNlICQuSDI6XG4gICAgICAgIGNhc2UgJC5IMzpcbiAgICAgICAgY2FzZSAkLkg0OlxuICAgICAgICBjYXNlICQuSDU6XG4gICAgICAgIGNhc2UgJC5INjoge1xuICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUDpcbiAgICAgICAgY2FzZSAkLkRMOlxuICAgICAgICBjYXNlICQuT0w6XG4gICAgICAgIGNhc2UgJC5VTDpcbiAgICAgICAgY2FzZSAkLkRJVjpcbiAgICAgICAgY2FzZSAkLkRJUjpcbiAgICAgICAgY2FzZSAkLk5BVjpcbiAgICAgICAgY2FzZSAkLk1BSU46XG4gICAgICAgIGNhc2UgJC5NRU5VOlxuICAgICAgICBjYXNlICQuQVNJREU6XG4gICAgICAgIGNhc2UgJC5DRU5URVI6XG4gICAgICAgIGNhc2UgJC5GSUdVUkU6XG4gICAgICAgIGNhc2UgJC5GT09URVI6XG4gICAgICAgIGNhc2UgJC5IRUFERVI6XG4gICAgICAgIGNhc2UgJC5IR1JPVVA6XG4gICAgICAgIGNhc2UgJC5ESUFMT0c6XG4gICAgICAgIGNhc2UgJC5ERVRBSUxTOlxuICAgICAgICBjYXNlICQuQUREUkVTUzpcbiAgICAgICAgY2FzZSAkLkFSVElDTEU6XG4gICAgICAgIGNhc2UgJC5TRUNUSU9OOlxuICAgICAgICBjYXNlICQuU1VNTUFSWTpcbiAgICAgICAgY2FzZSAkLkZJRUxEU0VUOlxuICAgICAgICBjYXNlICQuQkxPQ0tRVU9URTpcbiAgICAgICAgY2FzZSAkLkZJR0NBUFRJT046IHtcbiAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTEk6XG4gICAgICAgIGNhc2UgJC5ERDpcbiAgICAgICAgY2FzZSAkLkRUOiB7XG4gICAgICAgICAgICBsaXN0SXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CUjpcbiAgICAgICAgY2FzZSAkLklNRzpcbiAgICAgICAgY2FzZSAkLldCUjpcbiAgICAgICAgY2FzZSAkLkFSRUE6XG4gICAgICAgIGNhc2UgJC5FTUJFRDpcbiAgICAgICAgY2FzZSAkLktFWUdFTjoge1xuICAgICAgICAgICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IUjoge1xuICAgICAgICAgICAgaHJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUkI6XG4gICAgICAgIGNhc2UgJC5SVEM6IHtcbiAgICAgICAgICAgIHJiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlJUOlxuICAgICAgICBjYXNlICQuUlA6IHtcbiAgICAgICAgICAgIHJ0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlBSRTpcbiAgICAgICAgY2FzZSAkLkxJU1RJTkc6IHtcbiAgICAgICAgICAgIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5YTVA6IHtcbiAgICAgICAgICAgIHhtcFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TVkc6IHtcbiAgICAgICAgICAgIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQTpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVElUTEU6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIGJvZHlTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRk9STToge1xuICAgICAgICAgICAgZm9ybVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0JSOiB7XG4gICAgICAgICAgICBub2JyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk1BVEg6IHtcbiAgICAgICAgICAgIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIHRhYmxlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOiB7XG4gICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QQVJBTTpcbiAgICAgICAgY2FzZSAkLlRSQUNLOlxuICAgICAgICBjYXNlICQuU09VUkNFOiB7XG4gICAgICAgICAgICBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTUFHRToge1xuICAgICAgICAgICAgaW1hZ2VTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlVUVE9OOiB7XG4gICAgICAgICAgICBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQVBQTEVUOlxuICAgICAgICBjYXNlICQuT0JKRUNUOlxuICAgICAgICBjYXNlICQuTUFSUVVFRToge1xuICAgICAgICAgICAgYXBwbGV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklGUkFNRToge1xuICAgICAgICAgICAgaWZyYW1lU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgc2VsZWN0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk9QVElPTjpcbiAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0VNQkVEOiB7XG4gICAgICAgICAgICBub2VtYmVkU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICBmcmFtZXNldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URVhUQVJFQToge1xuICAgICAgICAgICAgdGV4dGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wdGlvbnMuc2NyaXB0aW5nRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlBMQUlOVEVYVDoge1xuICAgICAgICAgICAgcGxhaW50ZXh0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5UUjpcbiAgICAgICAgY2FzZSAkLkhFQUQ6XG4gICAgICAgIGNhc2UgJC5GUkFNRTpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gYm9keUVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQk9EWSkpIHtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZO1xuICAgICAgICAvL05PVEU6IDxib2R5PiBpcyBuZXZlciBwb3BwZWQgZnJvbSB0aGUgc3RhY2ssIHNvIHdlIG5lZWQgdG8gdXBkYXRlZFxuICAgICAgICAvL3RoZSBlbmQgbG9jYXRpb24gZXhwbGljaXRseS5cbiAgICAgICAgaWYgKHAub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7XG4gICAgICAgICAgICBpZiAoYm9keUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihib2R5RWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gaHRtbEVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQk9EWSkpIHtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZO1xuICAgICAgICBlbmRUYWdBZnRlckJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRuKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XG4gICAgfVxufVxuZnVuY3Rpb24gZm9ybUVuZFRhZ0luQm9keShwKSB7XG4gICAgY29uc3QgaW5UZW1wbGF0ZSA9IHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDA7XG4gICAgY29uc3QgeyBmb3JtRWxlbWVudCB9ID0gcDtcbiAgICBpZiAoIWluVGVtcGxhdGUpIHtcbiAgICAgICAgcC5mb3JtRWxlbWVudCA9IG51bGw7XG4gICAgfVxuICAgIGlmICgoZm9ybUVsZW1lbnQgfHwgaW5UZW1wbGF0ZSkgJiYgcC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkZPUk0pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgaWYgKGluVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkZPUk0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGZvcm1FbGVtZW50KSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZm9ybUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gcEVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKCFwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uUCwgJC5QKTtcbiAgICB9XG4gICAgcC5fY2xvc2VQRWxlbWVudCgpO1xufVxuZnVuY3Rpb24gbGlFbmRUYWdJbkJvZHkocCkge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkxpc3RJdGVtU2NvcGUoJC5MSSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5MSSk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkxJKTtcbiAgICB9XG59XG5mdW5jdGlvbiBkZEVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKHRuKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBudW1iZXJlZEhlYWRlckVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc051bWJlcmVkSGVhZGVySW5TY29wZSgpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZCgpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFwcGxldEVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICB9XG59XG5mdW5jdGlvbiBickVuZFRhZ0luQm9keShwKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5CUiwgJC5CUik7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdOYW1lO1xuICAgIGNvbnN0IHRpZCA9IHRva2VuLnRhZ0lEO1xuICAgIGZvciAobGV0IGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+IDA7IGktLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG4gICAgICAgIGNvbnN0IGVsZW1lbnRJZCA9IHAub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXTtcbiAgICAgICAgLy8gQ29tcGFyZSB0aGUgdGFnIG5hbWUgaGVyZSwgYXMgdGhlIHRhZyBtaWdodCBub3QgYmUgYSBrbm93biB0YWcgd2l0aCBhbiBJRC5cbiAgICAgICAgaWYgKHRpZCA9PT0gZWxlbWVudElkICYmICh0aWQgIT09ICQuVU5LTk9XTiB8fCBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IHRuKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odGlkKTtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+PSBpKVxuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnNob3J0ZW5Ub0xlbmd0aChpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwLl9pc1NwZWNpYWxFbGVtZW50KGVsZW1lbnQsIGVsZW1lbnRJZCkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuQTpcbiAgICAgICAgY2FzZSAkLkI6XG4gICAgICAgIGNhc2UgJC5JOlxuICAgICAgICBjYXNlICQuUzpcbiAgICAgICAgY2FzZSAkLlU6XG4gICAgICAgIGNhc2UgJC5FTTpcbiAgICAgICAgY2FzZSAkLlRUOlxuICAgICAgICBjYXNlICQuQklHOlxuICAgICAgICBjYXNlICQuQ09ERTpcbiAgICAgICAgY2FzZSAkLkZPTlQ6XG4gICAgICAgIGNhc2UgJC5OT0JSOlxuICAgICAgICBjYXNlICQuU01BTEw6XG4gICAgICAgIGNhc2UgJC5TVFJJS0U6XG4gICAgICAgIGNhc2UgJC5TVFJPTkc6IHtcbiAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUDoge1xuICAgICAgICAgICAgcEVuZFRhZ0luQm9keShwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5ETDpcbiAgICAgICAgY2FzZSAkLlVMOlxuICAgICAgICBjYXNlICQuT0w6XG4gICAgICAgIGNhc2UgJC5ESVI6XG4gICAgICAgIGNhc2UgJC5ESVY6XG4gICAgICAgIGNhc2UgJC5OQVY6XG4gICAgICAgIGNhc2UgJC5QUkU6XG4gICAgICAgIGNhc2UgJC5NQUlOOlxuICAgICAgICBjYXNlICQuTUVOVTpcbiAgICAgICAgY2FzZSAkLkFTSURFOlxuICAgICAgICBjYXNlICQuQlVUVE9OOlxuICAgICAgICBjYXNlICQuQ0VOVEVSOlxuICAgICAgICBjYXNlICQuRklHVVJFOlxuICAgICAgICBjYXNlICQuRk9PVEVSOlxuICAgICAgICBjYXNlICQuSEVBREVSOlxuICAgICAgICBjYXNlICQuSEdST1VQOlxuICAgICAgICBjYXNlICQuRElBTE9HOlxuICAgICAgICBjYXNlICQuQUREUkVTUzpcbiAgICAgICAgY2FzZSAkLkFSVElDTEU6XG4gICAgICAgIGNhc2UgJC5ERVRBSUxTOlxuICAgICAgICBjYXNlICQuU0VDVElPTjpcbiAgICAgICAgY2FzZSAkLlNVTU1BUlk6XG4gICAgICAgIGNhc2UgJC5MSVNUSU5HOlxuICAgICAgICBjYXNlICQuRklFTERTRVQ6XG4gICAgICAgIGNhc2UgJC5CTE9DS1FVT1RFOlxuICAgICAgICBjYXNlICQuRklHQ0FQVElPTjoge1xuICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTEk6IHtcbiAgICAgICAgICAgIGxpRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkREOlxuICAgICAgICBjYXNlICQuRFQ6IHtcbiAgICAgICAgICAgIGRkRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IMTpcbiAgICAgICAgY2FzZSAkLkgyOlxuICAgICAgICBjYXNlICQuSDM6XG4gICAgICAgIGNhc2UgJC5INDpcbiAgICAgICAgY2FzZSAkLkg1OlxuICAgICAgICBjYXNlICQuSDY6IHtcbiAgICAgICAgICAgIG51bWJlcmVkSGVhZGVyRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJSOiB7XG4gICAgICAgICAgICBickVuZFRhZ0luQm9keShwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOiB7XG4gICAgICAgICAgICBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBodG1sRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkFQUExFVDpcbiAgICAgICAgY2FzZSAkLk9CSkVDVDpcbiAgICAgICAgY2FzZSAkLk1BUlFVRUU6IHtcbiAgICAgICAgICAgIGFwcGxldEVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW9mSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAudG1wbEluc2VydGlvbk1vZGVTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICAgIGVvZkluVGVtcGxhdGUocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RvcFBhcnNpbmcocCwgdG9rZW4pO1xuICAgIH1cbn1cbi8vIFRoZSBcInRleHRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGVuZFRhZ0luVGV4dChwLCB0b2tlbikge1xuICAgIHZhciBfYTtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuU0NSSVBUKSB7XG4gICAgICAgIChfYSA9IHAuc2NyaXB0SGFuZGxlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwocCwgcC5vcGVuRWxlbWVudHMuY3VycmVudCk7XG4gICAgfVxuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlO1xufVxuZnVuY3Rpb24gZW9mSW5UZXh0KHAsIHRva2VuKSB7XG4gICAgcC5fZXJyKHRva2VuLCBFUlIuZW9mSW5FbGVtZW50VGhhdENhbkNvbnRhaW5Pbmx5VGV4dCk7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG4gICAgcC5vbkVvZih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiB0YWJsZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gY2hhcmFjdGVySW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChUQUJMRV9TVFJVQ1RVUkVfVEFHUy5oYXMocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMubGVuZ3RoID0gMDtcbiAgICAgICAgcC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gZmFsc2U7XG4gICAgICAgIHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gcC5pbnNlcnRpb25Nb2RlO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ7XG4gICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWdub3JlIG51bGxcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBjYXB0aW9uU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT047XG59XG5mdW5jdGlvbiBjb2xncm91cFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG59XG5mdW5jdGlvbiBjb2xTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkNPTEdST1VQLCAkLkNPTEdST1VQKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICBzdGFydFRhZ0luQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gdGJvZHlTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbn1cbmZ1bmN0aW9uIHRkU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5UQk9EWSwgJC5UQk9EWSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gdGFibGVTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEFCTEUpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRBQkxFKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgIHAuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gaW5wdXRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAoaXNIaWRkZW5JbnB1dCh0b2tlbikpIHtcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgIH1cbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKCFwLmZvcm1FbGVtZW50ICYmIHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMCkge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5mb3JtRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgdGRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIGNvbFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRk9STToge1xuICAgICAgICAgICAgZm9ybVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIHRhYmxlU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIHRib2R5U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTlBVVDoge1xuICAgICAgICAgICAgaW5wdXRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNBUFRJT046IHtcbiAgICAgICAgICAgIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICBjb2xncm91cFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEFCTEUpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpO1xuICAgICAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGNvbnN0IHNhdmVkRm9zdGVyUGFyZW50aW5nU3RhdGUgPSBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQ7XG4gICAgcC5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gdHJ1ZTtcbiAgICAvLyBQcm9jZXNzIHRva2VuIGluIGBJbiBCb2R5YCBtb2RlXG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG4gICAgcC5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZTtcbn1cbi8vIFRoZSBcImluIHRhYmxlIHRleHRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbikge1xuICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5wdXNoKHRva2VuKTtcbn1cbmZ1bmN0aW9uIGNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pO1xuICAgIHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IHRydWU7XG59XG5mdW5jdGlvbiB0b2tlbkluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgbGV0IGkgPSAwO1xuICAgIGlmIChwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgZm9yICg7IGkgPCBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnNbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBmb3IgKDsgaSA8IHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyhwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnNbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBjYXB0aW9uXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBUQUJMRV9WT0lEX0VMRU1FTlRTID0gbmV3IFNldChbJC5DQVBUSU9OLCAkLkNPTCwgJC5DT0xHUk9VUCwgJC5UQk9EWSwgJC5URCwgJC5URk9PVCwgJC5USCwgJC5USEVBRCwgJC5UUl0pO1xuZnVuY3Rpb24gc3RhcnRUYWdJbkNhcHRpb24ocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmIChUQUJMRV9WT0lEX0VMRU1FTlRTLmhhcyh0bikpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLkNBUFRJT04pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luQ2FwdGlvbihwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgc3dpdGNoICh0bikge1xuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuQ0FQVElPTikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuQ0FQVElPTik7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSkge1xuICAgICAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gY29sdW1uIGdyb3VwXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luQ29sdW1uR3JvdXAocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOiB7XG4gICAgICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luQ29sdW1uR3JvdXAocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5DT0xHUk9VUCkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuQ09MR1JPVVApIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gdGFibGUgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5URDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5UUiwgJC5UUik7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblRhYmxlQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gcm93XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luUm93KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5URDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKTtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblJvdyhwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVFIpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRva2VuLnRhZ0lEKSB8fCBwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgZW5kIHRhZ1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBjZWxsXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luQ2VsbChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKFRBQkxFX1ZPSURfRUxFTUVOVFMuaGFzKHRuKSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRIKSkge1xuICAgICAgICAgICAgcC5fY2xvc2VUYWJsZUNlbGwoKTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5DZWxsKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRuKSB7XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHtcbiAgICAgICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luUm93KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gc2VsZWN0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luU2VsZWN0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk9QVElPTjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRJT04pIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRHUk9VUCkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSU5QVVQ6XG4gICAgICAgIGNhc2UgJC5LRVlHRU46XG4gICAgICAgIGNhc2UgJC5URVhUQVJFQTpcbiAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2VsZWN0U2NvcGUoJC5TRUxFQ1QpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgICAgICAgICBpZiAodG9rZW4udGFnSUQgIT09ICQuU0VMRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIHAuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5TZWxlY3QocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5PUFRHUk9VUDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID4gMCAmJlxuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRJT04gJiZcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy50YWdJRHNbcC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgLSAxXSA9PT0gJC5PUFRHUk9VUCkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRHUk9VUCkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk9QVElPTjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRJT04pIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TRUxFQ1Q6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNlbGVjdFNjb3BlKCQuU0VMRUNUKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG4vLyBUaGUgXCJpbiBzZWxlY3QgaW4gdGFibGVcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3RJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fFxuICAgICAgICB0biA9PT0gJC5UQUJMRSB8fFxuICAgICAgICB0biA9PT0gJC5UQk9EWSB8fFxuICAgICAgICB0biA9PT0gJC5URk9PVCB8fFxuICAgICAgICB0biA9PT0gJC5USEVBRCB8fFxuICAgICAgICB0biA9PT0gJC5UUiB8fFxuICAgICAgICB0biA9PT0gJC5URCB8fFxuICAgICAgICB0biA9PT0gJC5USCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luU2VsZWN0SW5UYWJsZShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHxcbiAgICAgICAgdG4gPT09ICQuVEFCTEUgfHxcbiAgICAgICAgdG4gPT09ICQuVEJPRFkgfHxcbiAgICAgICAgdG4gPT09ICQuVEZPT1QgfHxcbiAgICAgICAgdG4gPT09ICQuVEhFQUQgfHxcbiAgICAgICAgdG4gPT09ICQuVFIgfHxcbiAgICAgICAgdG4gPT09ICQuVEQgfHxcbiAgICAgICAgdG4gPT09ICQuVEgpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgICAgIHAub25FbmRUYWcodG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBlbmRUYWdJblNlbGVjdChwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gdGVtcGxhdGVcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5UZW1wbGF0ZShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgLy8gRmlyc3QsIGhhbmRsZSB0YWdzIHRoYXQgY2FuIHN0YXJ0IHdpdGhvdXQgYSBtb2RlIGNoYW5nZVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkJBU0VGT05UOlxuICAgICAgICBjYXNlICQuQkdTT1VORDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOlxuICAgICAgICBjYXNlICQuVElUTEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlLXByb2Nlc3MgdGhlIHRva2VuIGluIHRoZSBhcHByb3ByaWF0ZSBtb2RlXG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG4gICAgICAgICAgICBzdGFydFRhZ0luQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblRlbXBsYXRlKHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlb2ZJblRlbXBsYXRlKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDApIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEVNUExBVEUpO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2suc2hpZnQoKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgIHAub25Fb2YodG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RvcFBhcnNpbmcocCwgdG9rZW4pO1xuICAgIH1cbn1cbi8vIFRoZSBcImFmdGVyIGJvZHlcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0FmdGVyQm9keShwLCB0b2tlbikge1xuICAgIHZhciBfYTtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0KSB7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk7XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiA8aHRtbD4gaXMgbmV2ZXIgcG9wcGVkIGZyb20gdGhlIHN0YWNrLCBzbyB3ZSBuZWVkIHRvIHVwZGF0ZWRcbiAgICAgICAgLy90aGUgZW5kIGxvY2F0aW9uIGV4cGxpY2l0bHkuXG4gICAgICAgIGlmIChwLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbyAmJiBwLm9wZW5FbGVtZW50cy50YWdJRHNbMF0gPT09ICQuSFRNTCkge1xuICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24ocC5vcGVuRWxlbWVudHMuaXRlbXNbMF0sIHRva2VuKTtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgYm9keSBlbGVtZW50LCBpZiBpdCBkb2Vzbid0IGhhdmUgYW4gZW5kIHRhZ1xuICAgICAgICAgICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1sxXTtcbiAgICAgICAgICAgIGlmIChib2R5RWxlbWVudCAmJiAhKChfYSA9IHAudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihib2R5RWxlbWVudCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbmRUYWcpKSB7XG4gICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oYm9keUVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIG1vZGVJbkJvZHkocCwgdG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gZnJhbWVzZXRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5GcmFtZXNldChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GUkFNRVNFVDoge1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUU6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5GcmFtZXNldChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5GUkFNRVNFVCAmJiAhcC5vcGVuRWxlbWVudHMuaXNSb290SHRtbEVsZW1lbnRDdXJyZW50KCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQgJiYgcC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkICE9PSAkLkZSQU1FU0VUKSB7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiYWZ0ZXIgZnJhbWVzZXRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJGcmFtZXNldChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0FmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUO1xuICAgIH1cbn1cbi8vIFRoZSBcImFmdGVyIGFmdGVyIGJvZHlcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIG1vZGVJbkJvZHkocCwgdG9rZW4pO1xufVxuLy8gVGhlIFwiYWZ0ZXIgYWZ0ZXIgZnJhbWVzZXRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuLy8gVGhlIHJ1bGVzIGZvciBwYXJzaW5nIHRva2VucyBpbiBmb3JlaWduIGNvbnRlbnRcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBudWxsQ2hhcmFjdGVySW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIHRva2VuLmNoYXJzID0gdW5pY29kZS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBwb3BVbnRpbEh0bWxPckludGVncmF0aW9uUG9pbnQocCkge1xuICAgIHdoaWxlIChwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShwLm9wZW5FbGVtZW50cy5jdXJyZW50KSAhPT0gTlMuSFRNTCAmJlxuICAgICAgICAhcC5faXNJbnRlZ3JhdGlvblBvaW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCwgcC5vcGVuRWxlbWVudHMuY3VycmVudCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgaWYgKGZvcmVpZ25Db250ZW50LmNhdXNlc0V4aXQodG9rZW4pKSB7XG4gICAgICAgIHBvcFVudGlsSHRtbE9ySW50ZWdyYXRpb25Qb2ludChwKTtcbiAgICAgICAgcC5fc3RhcnRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IHAuX2dldEFkanVzdGVkQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgY29uc3QgY3VycmVudE5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY3VycmVudCk7XG4gICAgICAgIGlmIChjdXJyZW50TnMgPT09IE5TLk1BVEhNTCkge1xuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5NYXRoTUxBdHRycyh0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3VycmVudE5zID09PSBOUy5TVkcpIHtcbiAgICAgICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHVGFnTmFtZSh0b2tlbik7XG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR0F0dHJzKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcbiAgICAgICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nKSB7XG4gICAgICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBjdXJyZW50TnMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgY3VycmVudE5zKTtcbiAgICAgICAgfVxuICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5QIHx8IHRva2VuLnRhZ0lEID09PSAkLkJSKSB7XG4gICAgICAgIHBvcFVudGlsSHRtbE9ySW50ZWdyYXRpb25Qb2ludChwKTtcbiAgICAgICAgcC5fZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldO1xuICAgICAgICBpZiAocC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCkgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgIHAuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YWdOYW1lID0gcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpO1xuICAgICAgICBpZiAodGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSB0b2tlbi50YWdOYW1lKSB7XG4gICAgICAgICAgICAvL05PVEU6IHVwZGF0ZSB0aGUgdG9rZW4gdGFnIG5hbWUgZm9yIGBfc2V0RW5kTG9jYXRpb25gLlxuICAgICAgICAgICAgdG9rZW4udGFnTmFtZSA9IHRhZ05hbWU7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5zaG9ydGVuVG9MZW5ndGgoaSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsIG51bGwsICJpbXBvcnQgeyBUQUdfTkFNRVMgYXMgJCwgTlMsIGhhc1VuZXNjYXBlZFRleHQgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG5pbXBvcnQgeyBlc2NhcGVUZXh0LCBlc2NhcGVBdHRyaWJ1dGUgfSBmcm9tICdlbnRpdGllcy9saWIvZXNjYXBlLmpzJztcbmltcG9ydCB7IGRlZmF1bHRUcmVlQWRhcHRlciB9IGZyb20gJy4uL3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyc7XG4vLyBTZXRzXG5jb25zdCBWT0lEX0VMRU1FTlRTID0gbmV3IFNldChbXG4gICAgJC5BUkVBLFxuICAgICQuQkFTRSxcbiAgICAkLkJBU0VGT05ULFxuICAgICQuQkdTT1VORCxcbiAgICAkLkJSLFxuICAgICQuQ09MLFxuICAgICQuRU1CRUQsXG4gICAgJC5GUkFNRSxcbiAgICAkLkhSLFxuICAgICQuSU1HLFxuICAgICQuSU5QVVQsXG4gICAgJC5LRVlHRU4sXG4gICAgJC5MSU5LLFxuICAgICQuTUVUQSxcbiAgICAkLlBBUkFNLFxuICAgICQuU09VUkNFLFxuICAgICQuVFJBQ0ssXG4gICAgJC5XQlIsXG5dKTtcbmZ1bmN0aW9uIGlzVm9pZEVsZW1lbnQobm9kZSwgb3B0aW9ucykge1xuICAgIHJldHVybiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKG5vZGUpICYmXG4gICAgICAgIG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG5vZGUpID09PSBOUy5IVE1MICYmXG4gICAgICAgIFZPSURfRUxFTUVOVFMuaGFzKG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKSkpO1xufVxuY29uc3QgZGVmYXVsdE9wdHMgPSB7IHRyZWVBZGFwdGVyOiBkZWZhdWx0VHJlZUFkYXB0ZXIsIHNjcmlwdGluZ0VuYWJsZWQ6IHRydWUgfTtcbi8qKlxuICogU2VyaWFsaXplcyBhbiBBU1Qgbm9kZSB0byBhbiBIVE1MIHN0cmluZy5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwYXJzZTUgPSByZXF1aXJlKCdwYXJzZTUnKTtcbiAqXG4gKiBjb25zdCBkb2N1bWVudCA9IHBhcnNlNS5wYXJzZSgnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PkhpIHRoZXJlITwvYm9keT48L2h0bWw+Jyk7XG4gKlxuICogLy8gU2VyaWFsaXplcyBhIGRvY3VtZW50LlxuICogY29uc3QgaHRtbCA9IHBhcnNlNS5zZXJpYWxpemUoZG9jdW1lbnQpO1xuICpcbiAqIC8vIFNlcmlhbGl6ZXMgdGhlIDxodG1sPiBlbGVtZW50IGNvbnRlbnQuXG4gKiBjb25zdCBzdHIgPSBwYXJzZTUuc2VyaWFsaXplKGRvY3VtZW50LmNoaWxkTm9kZXNbMV0pO1xuICpcbiAqIGNvbnNvbGUubG9nKHN0cik7IC8vPiAnPGhlYWQ+PC9oZWFkPjxib2R5PkhpIHRoZXJlITwvYm9keT4nXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSBvcHRpb25zIFNlcmlhbGl6YXRpb24gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZShub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0cyA9IHsgLi4uZGVmYXVsdE9wdHMsIC4uLm9wdGlvbnMgfTtcbiAgICBpZiAoaXNWb2lkRWxlbWVudChub2RlLCBvcHRzKSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBzZXJpYWxpemVDaGlsZE5vZGVzKG5vZGUsIG9wdHMpO1xufVxuLyoqXG4gKiBTZXJpYWxpemVzIGFuIEFTVCBlbGVtZW50IG5vZGUgdG8gYW4gSFRNTCBzdHJpbmcsIGluY2x1ZGluZyB0aGUgZWxlbWVudCBub2RlLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpO1xuICpcbiAqIGNvbnN0IGRvY3VtZW50ID0gcGFyc2U1LnBhcnNlRnJhZ21lbnQoJzxkaXY+SGVsbG8sIDxiPndvcmxkPC9iPiE8L2Rpdj4nKTtcbiAqXG4gKiAvLyBTZXJpYWxpemVzIHRoZSA8ZGl2PiBlbGVtZW50LlxuICogY29uc3QgaHRtbCA9IHBhcnNlNS5zZXJpYWxpemVPdXRlcihkb2N1bWVudC5jaGlsZE5vZGVzWzBdKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhzdHIpOyAvLz4gJzxkaXY+SGVsbG8sIDxiPndvcmxkPC9iPiE8L2Rpdj4nXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSBvcHRpb25zIFNlcmlhbGl6YXRpb24gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZU91dGVyKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBvcHRzID0geyAuLi5kZWZhdWx0T3B0cywgLi4ub3B0aW9ucyB9O1xuICAgIHJldHVybiBzZXJpYWxpemVOb2RlKG5vZGUsIG9wdHMpO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQ2hpbGROb2RlcyhwYXJlbnROb2RlLCBvcHRpb25zKSB7XG4gICAgbGV0IGh0bWwgPSAnJztcbiAgICAvLyBHZXQgY29udGFpbmVyIG9mIHRoZSBjaGlsZCBub2Rlc1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShwYXJlbnROb2RlKSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUocGFyZW50Tm9kZSkgPT09ICQuVEVNUExBVEUgJiZcbiAgICAgICAgb3B0aW9ucy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocGFyZW50Tm9kZSkgPT09IE5TLkhUTUxcbiAgICAgICAgPyBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudChwYXJlbnROb2RlKVxuICAgICAgICA6IHBhcmVudE5vZGU7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2Rlcyhjb250YWluZXIpO1xuICAgIGlmIChjaGlsZE5vZGVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgY3VycmVudE5vZGUgb2YgY2hpbGROb2Rlcykge1xuICAgICAgICAgICAgaHRtbCArPSBzZXJpYWxpemVOb2RlKGN1cnJlbnROb2RlLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZU5vZGUobm9kZSwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUVsZW1lbnQobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzVGV4dE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVRleHROb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0NvbW1lbnROb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVDb21tZW50Tm9kZShub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVEb2N1bWVudFR5cGVOb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICAvLyBSZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGZvciB1bmtub3duIG5vZGVzXG4gICAgcmV0dXJuICcnO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplRWxlbWVudChub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdG4gPSBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSk7XG4gICAgcmV0dXJuIGA8JHt0bn0ke3NlcmlhbGl6ZUF0dHJpYnV0ZXMobm9kZSwgb3B0aW9ucyl9PiR7aXNWb2lkRWxlbWVudChub2RlLCBvcHRpb25zKSA/ICcnIDogYCR7c2VyaWFsaXplQ2hpbGROb2Rlcyhub2RlLCBvcHRpb25zKX08LyR7dG59PmB9YDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZUF0dHJpYnV0ZXMobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgbGV0IGh0bWwgPSAnJztcbiAgICBmb3IgKGNvbnN0IGF0dHIgb2YgdHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3Qobm9kZSkpIHtcbiAgICAgICAgaHRtbCArPSAnICc7XG4gICAgICAgIGlmICghYXR0ci5uYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGh0bWwgKz0gYXR0ci5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHN3aXRjaCAoYXR0ci5uYW1lc3BhY2UpIHtcbiAgICAgICAgICAgICAgICBjYXNlIE5TLlhNTDoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGB4bWw6JHthdHRyLm5hbWV9YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgTlMuWE1MTlM6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHIubmFtZSAhPT0gJ3htbG5zJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCArPSAneG1sbnM6JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGF0dHIubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgTlMuWExJTks6IHtcbiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBgeGxpbms6JHthdHRyLm5hbWV9YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBgJHthdHRyLnByZWZpeH06JHthdHRyLm5hbWV9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIGh0bWwgKz0gYD1cIiR7ZXNjYXBlQXR0cmlidXRlKGF0dHIudmFsdWUpfVwiYDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWw7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVUZXh0Tm9kZShub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyB0cmVlQWRhcHRlciB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjb250ZW50ID0gdHJlZUFkYXB0ZXIuZ2V0VGV4dE5vZGVDb250ZW50KG5vZGUpO1xuICAgIGNvbnN0IHBhcmVudCA9IHRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgY29uc3QgcGFyZW50VG4gPSBwYXJlbnQgJiYgdHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShwYXJlbnQpICYmIHRyZWVBZGFwdGVyLmdldFRhZ05hbWUocGFyZW50KTtcbiAgICByZXR1cm4gcGFyZW50VG4gJiZcbiAgICAgICAgdHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHBhcmVudCkgPT09IE5TLkhUTUwgJiZcbiAgICAgICAgaGFzVW5lc2NhcGVkVGV4dChwYXJlbnRUbiwgb3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKVxuICAgICAgICA/IGNvbnRlbnRcbiAgICAgICAgOiBlc2NhcGVUZXh0KGNvbnRlbnQpO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQ29tbWVudE5vZGUobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgcmV0dXJuIGA8IS0tJHt0cmVlQWRhcHRlci5nZXRDb21tZW50Tm9kZUNvbnRlbnQobm9kZSl9LS0+YDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZURvY3VtZW50VHlwZU5vZGUobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgcmV0dXJuIGA8IURPQ1RZUEUgJHt0cmVlQWRhcHRlci5nZXREb2N1bWVudFR5cGVOb2RlTmFtZShub2RlKX0+YDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsICJpbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL3BhcnNlci9pbmRleC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0VHJlZUFkYXB0ZXIgfSBmcm9tICcuL3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyc7XG5leHBvcnQgeyAvKiogQGludGVybmFsICovIFBhcnNlciB9IGZyb20gJy4vcGFyc2VyL2luZGV4LmpzJztcbmV4cG9ydCB7IHNlcmlhbGl6ZSwgc2VyaWFsaXplT3V0ZXIgfSBmcm9tICcuL3NlcmlhbGl6ZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgRVJSIGFzIEVycm9yQ29kZXMgfSBmcm9tICcuL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG4vKiogQGludGVybmFsICovXG5leHBvcnQgKiBhcyBmb3JlaWduQ29udGVudCBmcm9tICcuL2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0ICogYXMgaHRtbCBmcm9tICcuL2NvbW1vbi9odG1sLmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCAqIGFzIFRva2VuIGZyb20gJy4vY29tbW9uL3Rva2VuLmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCB7IFRva2VuaXplciwgVG9rZW5pemVyTW9kZSB9IGZyb20gJy4vdG9rZW5pemVyL2luZGV4LmpzJztcbi8vIFNob3J0aGFuZHNcbi8qKlxuICogUGFyc2VzIGFuIEhUTUwgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBodG1sIElucHV0IEhUTUwgc3RyaW5nLlxuICogQHBhcmFtIG9wdGlvbnMgUGFyc2luZyBvcHRpb25zLlxuICogQHJldHVybnMgRG9jdW1lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwYXJzZTUgPSByZXF1aXJlKCdwYXJzZTUnKTtcbiAqXG4gKiBjb25zdCBkb2N1bWVudCA9IHBhcnNlNS5wYXJzZSgnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PkhpIHRoZXJlITwvYm9keT48L2h0bWw+Jyk7XG4gKlxuICogY29uc29sZS5sb2coZG9jdW1lbnQuY2hpbGROb2Rlc1sxXS50YWdOYW1lKTsgLy8+ICdodG1sJ1xuICpgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKGh0bWwsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gUGFyc2VyLnBhcnNlKGh0bWwsIG9wdGlvbnMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJhZ21lbnQoZnJhZ21lbnRDb250ZXh0LCBodG1sLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiBmcmFnbWVudENvbnRleHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdGlvbnMgPSBodG1sO1xuICAgICAgICBodG1sID0gZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICBmcmFnbWVudENvbnRleHQgPSBudWxsO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZXIgPSBQYXJzZXIuZ2V0RnJhZ21lbnRQYXJzZXIoZnJhZ21lbnRDb250ZXh0LCBvcHRpb25zKTtcbiAgICBwYXJzZXIudG9rZW5pemVyLndyaXRlKGh0bWwsIHRydWUpO1xuICAgIHJldHVybiBwYXJzZXIuZ2V0RnJhZ21lbnQoKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBOb2RlTGlrZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHR5cGVcbiAqIEBwcm9wZXJ0eSB7UG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Bvc2l0aW9uXVxuICpcbiAqIEB0eXBlZGVmIFBvaW50TGlrZVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbbGluZV1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NvbHVtbl1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqXG4gKiBAdHlwZWRlZiBQb3NpdGlvbkxpa2VcbiAqIEBwcm9wZXJ0eSB7UG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3N0YXJ0XVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5kXVxuICovXG5cbi8qKlxuICogU2VyaWFsaXplIHRoZSBwb3NpdGlvbmFsIGluZm8gb2YgYSBwb2ludCwgcG9zaXRpb24gKHN0YXJ0IGFuZCBlbmQgcG9pbnRzKSxcbiAqIG9yIG5vZGUuXG4gKlxuICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBQb2ludCB8IFBvaW50TGlrZSB8IFBvc2l0aW9uIHwgUG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZhbHVlXVxuICogICBOb2RlLCBwb3NpdGlvbiwgb3IgcG9pbnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBQcmV0dHkgcHJpbnRlZCBwb3NpdGlvbmFsIGluZm8gb2YgYSBub2RlIChgc3RyaW5nYCkuXG4gKlxuICogICBJbiB0aGUgZm9ybWF0IG9mIGEgcmFuZ2UgYGxzOmNzLWxlOmNlYCAod2hlbiBnaXZlbiBgbm9kZWAgb3IgYHBvc2l0aW9uYClcbiAqICAgb3IgYSBwb2ludCBgbDpjYCAod2hlbiBnaXZlbiBgcG9pbnRgKSwgd2hlcmUgYGxgIHN0YW5kcyBmb3IgbGluZSwgYGNgIGZvclxuICogICBjb2x1bW4sIGBzYCBmb3IgYHN0YXJ0YCwgYW5kIGBlYCBmb3IgZW5kLlxuICogICBBbiBlbXB0eSBzdHJpbmcgKGAnJ2ApIGlzIHJldHVybmVkIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBuZWl0aGVyIGBub2RlYCxcbiAqICAgYHBvc2l0aW9uYCwgbm9yIGBwb2ludGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlQb3NpdGlvbih2YWx1ZSkge1xuICAvLyBOb3RoaW5nLlxuICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIC8vIE5vZGUuXG4gIGlmICgncG9zaXRpb24nIGluIHZhbHVlIHx8ICd0eXBlJyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBwb3NpdGlvbih2YWx1ZS5wb3NpdGlvbilcbiAgfVxuXG4gIC8vIFBvc2l0aW9uLlxuICBpZiAoJ3N0YXJ0JyBpbiB2YWx1ZSB8fCAnZW5kJyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBwb3NpdGlvbih2YWx1ZSlcbiAgfVxuXG4gIC8vIFBvaW50LlxuICBpZiAoJ2xpbmUnIGluIHZhbHVlIHx8ICdjb2x1bW4nIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvaW50KHZhbHVlKVxuICB9XG5cbiAgLy8gP1xuICByZXR1cm4gJydcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1BvaW50IHwgUG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcG9pbnRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBvaW50KHBvaW50KSB7XG4gIHJldHVybiBpbmRleChwb2ludCAmJiBwb2ludC5saW5lKSArICc6JyArIGluZGV4KHBvaW50ICYmIHBvaW50LmNvbHVtbilcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1Bvc2l0aW9uIHwgUG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcG9zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBwb3NpdGlvbihwb3MpIHtcbiAgcmV0dXJuIHBvaW50KHBvcyAmJiBwb3Muc3RhcnQpICsgJy0nICsgcG9pbnQocG9zICYmIHBvcy5lbmQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZnVuY3Rpb24gaW5kZXgodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSA6IDFcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0ICYge3R5cGU6IHN0cmluZywgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHVuZGVmaW5lZH19IE5vZGVMaWtlXG4gKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtBcnJheTxOb2RlPiB8IG51bGwgfCB1bmRlZmluZWR9IFthbmNlc3RvcnNdXG4gKiAgIFN0YWNrIG9mIChpbmNsdXNpdmUpIGFuY2VzdG9yIG5vZGVzIHN1cnJvdW5kaW5nIHRoZSBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge0Vycm9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NhdXNlXVxuICogICBPcmlnaW5hbCBlcnJvciBjYXVzZSBvZiB0aGUgbWVzc2FnZSAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BsYWNlXVxuICogICBQbGFjZSBvZiBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtydWxlSWRdXG4gKiAgIENhdGVnb3J5IG9mIG1lc3NhZ2UgKG9wdGlvbmFsLCBleGFtcGxlOiBgJ215LXJ1bGUnYCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtzb3VyY2VdXG4gKiAgIE5hbWVzcGFjZSBvZiB3aG8gc2VudCB0aGUgbWVzc2FnZSAob3B0aW9uYWwsIGV4YW1wbGU6IGAnbXktcGFja2FnZSdgKS5cbiAqL1xuXG5pbXBvcnQge3N0cmluZ2lmeVBvc2l0aW9ufSBmcm9tICd1bmlzdC11dGlsLXN0cmluZ2lmeS1wb3NpdGlvbidcblxuLyoqXG4gKiBNZXNzYWdlLlxuICovXG5leHBvcnQgY2xhc3MgVkZpbGVNZXNzYWdlIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogQ3JlYXRlIGEgbWVzc2FnZSBmb3IgYHJlYXNvbmAuXG4gICAqXG4gICAqID4gXHVEODNFXHVERUE2ICoqTm90ZSoqOiBhbHNvIGhhcyBvYnNvbGV0ZSBzaWduYXR1cmVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnNcbiAgICogICBJbnN0YW5jZSBvZiBgVkZpbGVNZXNzYWdlYC5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIGNvbnN0cnVjdG9yKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbikge1xuICAgIHN1cGVyKClcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yUGFyZW50T3JQbGFjZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9yaWdpbiA9IG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgcmVhc29uID0gJydcbiAgICAvKiogQHR5cGUge09wdGlvbnN9ICovXG4gICAgbGV0IG9wdGlvbnMgPSB7fVxuICAgIGxldCBsZWdhY3lDYXVzZSA9IGZhbHNlXG5cbiAgICBpZiAob3B0aW9uc09yUGFyZW50T3JQbGFjZSkge1xuICAgICAgLy8gUG9pbnQuXG4gICAgICBpZiAoXG4gICAgICAgICdsaW5lJyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlICYmXG4gICAgICAgICdjb2x1bW4nIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgICkge1xuICAgICAgICBvcHRpb25zID0ge3BsYWNlOiBvcHRpb25zT3JQYXJlbnRPclBsYWNlfVxuICAgICAgfVxuICAgICAgLy8gUG9zaXRpb24uXG4gICAgICBlbHNlIGlmIChcbiAgICAgICAgJ3N0YXJ0JyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlICYmXG4gICAgICAgICdlbmQnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgICkge1xuICAgICAgICBvcHRpb25zID0ge3BsYWNlOiBvcHRpb25zT3JQYXJlbnRPclBsYWNlfVxuICAgICAgfVxuICAgICAgLy8gTm9kZS5cbiAgICAgIGVsc2UgaWYgKCd0eXBlJyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgYW5jZXN0b3JzOiBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV0sXG4gICAgICAgICAgcGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2UucG9zaXRpb25cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gT3B0aW9ucy5cbiAgICAgIGVsc2Uge1xuICAgICAgICBvcHRpb25zID0gey4uLm9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjYXVzZU9yUmVhc29uID09PSAnc3RyaW5nJykge1xuICAgICAgcmVhc29uID0gY2F1c2VPclJlYXNvblxuICAgIH1cbiAgICAvLyBFcnJvci5cbiAgICBlbHNlIGlmICghb3B0aW9ucy5jYXVzZSAmJiBjYXVzZU9yUmVhc29uKSB7XG4gICAgICBsZWdhY3lDYXVzZSA9IHRydWVcbiAgICAgIHJlYXNvbiA9IGNhdXNlT3JSZWFzb24ubWVzc2FnZVxuICAgICAgb3B0aW9ucy5jYXVzZSA9IGNhdXNlT3JSZWFzb25cbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMucnVsZUlkICYmICFvcHRpb25zLnNvdXJjZSAmJiB0eXBlb2Ygb3JpZ2luID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgaW5kZXggPSBvcmlnaW4uaW5kZXhPZignOicpXG5cbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgb3B0aW9ucy5ydWxlSWQgPSBvcmlnaW5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnMuc291cmNlID0gb3JpZ2luLnNsaWNlKDAsIGluZGV4KVxuICAgICAgICBvcHRpb25zLnJ1bGVJZCA9IG9yaWdpbi5zbGljZShpbmRleCArIDEpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zLnBsYWNlICYmIG9wdGlvbnMuYW5jZXN0b3JzICYmIG9wdGlvbnMuYW5jZXN0b3JzKSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBvcHRpb25zLmFuY2VzdG9yc1tvcHRpb25zLmFuY2VzdG9ycy5sZW5ndGggLSAxXVxuXG4gICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgIG9wdGlvbnMucGxhY2UgPSBwYXJlbnQucG9zaXRpb25cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9XG4gICAgICBvcHRpb25zLnBsYWNlICYmICdzdGFydCcgaW4gb3B0aW9ucy5wbGFjZVxuICAgICAgICA/IG9wdGlvbnMucGxhY2Uuc3RhcnRcbiAgICAgICAgOiBvcHRpb25zLnBsYWNlXG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgICAvKipcbiAgICAgKiBTdGFjayBvZiBhbmNlc3RvciBub2RlcyBzdXJyb3VuZGluZyB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxOb2RlPiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmFuY2VzdG9ycyA9IG9wdGlvbnMuYW5jZXN0b3JzIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogT3JpZ2luYWwgZXJyb3IgY2F1c2Ugb2YgdGhlIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RXJyb3IgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5jYXVzZSA9IG9wdGlvbnMuY2F1c2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBTdGFydGluZyBjb2x1bW4gb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5jb2x1bW4gPSBzdGFydCA/IHN0YXJ0LmNvbHVtbiA6IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogU3RhdGUgb2YgcHJvYmxlbS5cbiAgICAgKlxuICAgICAqICogYHRydWVgIFx1MjAxNCBlcnJvciwgZmlsZSBub3QgdXNhYmxlXG4gICAgICogKiBgZmFsc2VgIFx1MjAxNCB3YXJuaW5nLCBjaGFuZ2UgbWF5IGJlIG5lZWRlZFxuICAgICAqICogYHVuZGVmaW5lZGAgXHUyMDE0IGNoYW5nZSBsaWtlbHkgbm90IG5lZWRlZFxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuZmF0YWwgPSB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFBhdGggb2YgYSBmaWxlICh1c2VkIHRocm91Z2hvdXQgdGhlIGBWRmlsZWAgZWNvc3lzdGVtKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5maWxlXG5cbiAgICAvLyBGaWVsZCBmcm9tIGBFcnJvcmAuXG4gICAgLyoqXG4gICAgICogUmVhc29uIGZvciBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLm1lc3NhZ2UgPSByZWFzb25cblxuICAgIC8qKlxuICAgICAqIFN0YXJ0aW5nIGxpbmUgb2YgZXJyb3IuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMubGluZSA9IHN0YXJ0ID8gc3RhcnQubGluZSA6IHVuZGVmaW5lZFxuXG4gICAgLy8gRmllbGQgZnJvbSBgRXJyb3JgLlxuICAgIC8qKlxuICAgICAqIFNlcmlhbGl6ZWQgcG9zaXRpb25hbCBpbmZvIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBPbiBub3JtYWwgZXJyb3JzLCB0aGlzIHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlIGBQYXJzZUVycm9yYCwgYnVpdCBpblxuICAgICAqIGBWRmlsZWAgbWVzc2FnZXMgd2UgdXNlIHRoaXMgc3BhY2UgdG8gc2hvdyB3aGVyZSBhbiBlcnJvciBoYXBwZW5lZC5cbiAgICAgKi9cbiAgICB0aGlzLm5hbWUgPSBzdHJpbmdpZnlQb3NpdGlvbihvcHRpb25zLnBsYWNlKSB8fCAnMToxJ1xuXG4gICAgLyoqXG4gICAgICogUGxhY2Ugb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtQb2ludCB8IFBvc2l0aW9uIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMucGxhY2UgPSBvcHRpb25zLnBsYWNlIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnJlYXNvbiA9IHRoaXMubWVzc2FnZVxuXG4gICAgLyoqXG4gICAgICogQ2F0ZWdvcnkgb2YgbWVzc2FnZSAoZXhhbXBsZTogYCdteS1ydWxlJ2ApLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnJ1bGVJZCA9IG9wdGlvbnMucnVsZUlkIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogTmFtZXNwYWNlIG9mIG1lc3NhZ2UgKGV4YW1wbGU6IGAnbXktcGFja2FnZSdgKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5zb3VyY2UgPSBvcHRpb25zLnNvdXJjZSB8fCB1bmRlZmluZWRcblxuICAgIC8vIEZpZWxkIGZyb20gYEVycm9yYC5cbiAgICAvKipcbiAgICAgKiBTdGFjayBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IG5vcm1hbCBlcnJvcnMgdG8gc2hvdyB3aGVyZSBzb21ldGhpbmcgaGFwcGVuZWQgaW5cbiAgICAgKiBwcm9ncmFtbWluZyBjb2RlLCBpcnJlbGV2YW50IGZvciBgVkZpbGVgIG1lc3NhZ2VzLFxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnN0YWNrID1cbiAgICAgIGxlZ2FjeUNhdXNlICYmIG9wdGlvbnMuY2F1c2UgJiYgdHlwZW9mIG9wdGlvbnMuY2F1c2Uuc3RhY2sgPT09ICdzdHJpbmcnXG4gICAgICAgID8gb3B0aW9ucy5jYXVzZS5zdGFja1xuICAgICAgICA6ICcnXG5cbiAgICAvLyBUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgXHUyMDFDd2VsbCBrbm93blx1MjAxRC5cbiAgICAvLyBOb3Qgc3RhbmRhcmQuXG4gICAgLy8gRmVlbCBmcmVlIHRvIGFkZCBvdGhlciBub24tc3RhbmRhcmQgZmllbGRzIHRvIHlvdXIgbWVzc2FnZXMuXG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IHRoZSBzb3VyY2UgdmFsdWUgdGhhdFx1MjAxOXMgYmVpbmcgcmVwb3J0ZWQsIHdoaWNoIGlzIGRlZW1lZFxuICAgICAqIGluY29ycmVjdC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5hY3R1YWxcblxuICAgIC8qKlxuICAgICAqIFN1Z2dlc3QgYWNjZXB0YWJsZSB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGBhY3R1YWxgLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5leHBlY3RlZFxuXG4gICAgLyoqXG4gICAgICogTG9uZyBmb3JtIGRlc2NyaXB0aW9uIG9mIHRoZSBtZXNzYWdlICh5b3Ugc2hvdWxkIHVzZSBtYXJrZG93bikuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMubm90ZVxuXG4gICAgLyoqXG4gICAgICogTGluayB0byBkb2NzIGZvciB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiB0aGlzIG11c3QgYmUgYW4gYWJzb2x1dGUgVVJMIHRoYXQgY2FuIGJlIHBhc3NlZCBhcyBgeGBcbiAgICAgKiA+IHRvIGBuZXcgVVJMKHgpYC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy51cmxcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICB9XG59XG5cblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuZmlsZSA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLm5hbWUgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5yZWFzb24gPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5tZXNzYWdlID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuc3RhY2sgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5jb2x1bW4gPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUubGluZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5hbmNlc3RvcnMgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuY2F1c2UgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuZmF0YWwgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucGxhY2UgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucnVsZUlkID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnNvdXJjZSA9IHVuZGVmaW5lZFxuIiwgIi8vIEEgZGVyaXZhdGl2ZSB3b3JrIGJhc2VkIG9uOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9icm93c2VyaWZ5L3BhdGgtYnJvd3NlcmlmeT4uXG4vLyBXaGljaCBpcyBsaWNlbnNlZDpcbi8vXG4vLyBNSVQgTGljZW5zZVxuLy9cbi8vIENvcHlyaWdodCAoYykgMjAxMyBKYW1lcyBIYWxsaWRheVxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2Zcbi8vIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW5cbi8vIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG9cbi8vIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mXG4vLyB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sXG4vLyBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbi8vIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Ncbi8vIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUlxuLy8gQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSXG4vLyBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTlxuLy8gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbi8vIEEgZGVyaXZhdGl2ZSB3b3JrIGJhc2VkIG9uOlxuLy9cbi8vIFBhcnRzIG9mIHRoYXQgYXJlIGV4dHJhY3RlZCBmcm9tIE5vZGVcdTIwMTlzIGludGVybmFsIGBwYXRoYCBtb2R1bGU6XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvbWFzdGVyL2xpYi9wYXRoLmpzPi5cbi8vIFdoaWNoIGlzIGxpY2Vuc2VkOlxuLy9cbi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5leHBvcnQgY29uc3QgcGF0aCA9IHtiYXNlbmFtZSwgZGlybmFtZSwgZXh0bmFtZSwgam9pbiwgc2VwOiAnLyd9XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1kZXB0aCwgY29tcGxleGl0eSAqL1xuXG4vKipcbiAqIEdldCB0aGUgYmFzZW5hbWUgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZXh0XVxuICogICBFeHRlbnNpb24gdG8gc3RyaXAuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTdGVtIG9yIGJhc2VuYW1lLlxuICovXG5mdW5jdGlvbiBiYXNlbmFtZShwYXRoLCBleHQpIHtcbiAgaWYgKGV4dCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBleHQgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJleHRcIiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJylcbiAgfVxuXG4gIGFzc2VydFBhdGgocGF0aClcbiAgbGV0IHN0YXJ0ID0gMFxuICBsZXQgZW5kID0gLTFcbiAgbGV0IGluZGV4ID0gcGF0aC5sZW5ndGhcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgc2Vlbk5vblNsYXNoXG5cbiAgaWYgKGV4dCA9PT0gdW5kZWZpbmVkIHx8IGV4dC5sZW5ndGggPT09IDAgfHwgZXh0Lmxlbmd0aCA+IHBhdGgubGVuZ3RoKSB7XG4gICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAgIC8vIHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzdG9wIG5vdy5cbiAgICAgICAgaWYgKHNlZW5Ob25TbGFzaCkge1xuICAgICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChlbmQgPCAwKSB7XG4gICAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yLCBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXJcbiAgICAgICAgLy8gcGF0aCBjb21wb25lbnQuXG4gICAgICAgIHNlZW5Ob25TbGFzaCA9IHRydWVcbiAgICAgICAgZW5kID0gaW5kZXggKyAxXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVuZCA8IDAgPyAnJyA6IHBhdGguc2xpY2Uoc3RhcnQsIGVuZClcbiAgfVxuXG4gIGlmIChleHQgPT09IHBhdGgpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGxldCBmaXJzdE5vblNsYXNoRW5kID0gLTFcbiAgbGV0IGV4dEluZGV4ID0gZXh0Lmxlbmd0aCAtIDFcblxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICAvLyBJZiB3ZSByZWFjaGVkIGEgcGF0aCBzZXBhcmF0b3IgdGhhdCB3YXMgbm90IHBhcnQgb2YgYSBzZXQgb2YgcGF0aFxuICAgICAgLy8gc2VwYXJhdG9ycyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHN0b3Agbm93LlxuICAgICAgaWYgKHNlZW5Ob25TbGFzaCkge1xuICAgICAgICBzdGFydCA9IGluZGV4ICsgMVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZmlyc3ROb25TbGFzaEVuZCA8IDApIHtcbiAgICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIHJlbWVtYmVyIHRoaXMgaW5kZXggaW4gY2FzZVxuICAgICAgICAvLyB3ZSBuZWVkIGl0IGlmIHRoZSBleHRlbnNpb24gZW5kcyB1cCBub3QgbWF0Y2hpbmcuXG4gICAgICAgIHNlZW5Ob25TbGFzaCA9IHRydWVcbiAgICAgICAgZmlyc3ROb25TbGFzaEVuZCA9IGluZGV4ICsgMVxuICAgICAgfVxuXG4gICAgICBpZiAoZXh0SW5kZXggPiAtMSkge1xuICAgICAgICAvLyBUcnkgdG8gbWF0Y2ggdGhlIGV4cGxpY2l0IGV4dGVuc2lvbi5cbiAgICAgICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSBleHQuY29kZVBvaW50QXQoZXh0SW5kZXgtLSkpIHtcbiAgICAgICAgICBpZiAoZXh0SW5kZXggPCAwKSB7XG4gICAgICAgICAgICAvLyBXZSBtYXRjaGVkIHRoZSBleHRlbnNpb24sIHNvIG1hcmsgdGhpcyBhcyB0aGUgZW5kIG9mIG91ciBwYXRoXG4gICAgICAgICAgICAvLyBjb21wb25lbnRcbiAgICAgICAgICAgIGVuZCA9IGluZGV4XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEV4dGVuc2lvbiBkb2VzIG5vdCBtYXRjaCwgc28gb3VyIHJlc3VsdCBpcyB0aGUgZW50aXJlIHBhdGhcbiAgICAgICAgICAvLyBjb21wb25lbnRcbiAgICAgICAgICBleHRJbmRleCA9IC0xXG4gICAgICAgICAgZW5kID0gZmlyc3ROb25TbGFzaEVuZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHN0YXJ0ID09PSBlbmQpIHtcbiAgICBlbmQgPSBmaXJzdE5vblNsYXNoRW5kXG4gIH0gZWxzZSBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCA9IHBhdGgubGVuZ3RoXG4gIH1cblxuICByZXR1cm4gcGF0aC5zbGljZShzdGFydCwgZW5kKVxufVxuXG4vKipcbiAqIEdldCB0aGUgZGlybmFtZSBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGRpcm5hbWUocGF0aCkge1xuICBhc3NlcnRQYXRoKHBhdGgpXG5cbiAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcuJ1xuICB9XG5cbiAgbGV0IGVuZCA9IC0xXG4gIGxldCBpbmRleCA9IHBhdGgubGVuZ3RoXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHVubWF0Y2hlZFNsYXNoXG5cbiAgLy8gUHJlZml4IGAtLWAgaXMgaW1wb3J0YW50IHRvIG5vdCBydW4gb24gYDBgLlxuICB3aGlsZSAoLS1pbmRleCkge1xuICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICBpZiAodW5tYXRjaGVkU2xhc2gpIHtcbiAgICAgICAgZW5kID0gaW5kZXhcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCF1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3JcbiAgICAgIHVubWF0Y2hlZFNsYXNoID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbmQgPCAwXG4gICAgPyBwYXRoLmNvZGVQb2ludEF0KDApID09PSA0NyAvKiBgL2AgKi9cbiAgICAgID8gJy8nXG4gICAgICA6ICcuJ1xuICAgIDogZW5kID09PSAxICYmIHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuICAgID8gJy8vJ1xuICAgIDogcGF0aC5zbGljZSgwLCBlbmQpXG59XG5cbi8qKlxuICogR2V0IGFuIGV4dG5hbWUgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRXh0bmFtZS5cbiAqL1xuZnVuY3Rpb24gZXh0bmFtZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aFxuXG4gIGxldCBlbmQgPSAtMVxuICBsZXQgc3RhcnRQYXJ0ID0gMFxuICBsZXQgc3RhcnREb3QgPSAtMVxuICAvLyBUcmFjayB0aGUgc3RhdGUgb2YgY2hhcmFjdGVycyAoaWYgYW55KSB3ZSBzZWUgYmVmb3JlIG91ciBmaXJzdCBkb3QgYW5kXG4gIC8vIGFmdGVyIGFueSBwYXRoIHNlcGFyYXRvciB3ZSBmaW5kLlxuICBsZXQgcHJlRG90U3RhdGUgPSAwXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHVubWF0Y2hlZFNsYXNoXG5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBjb25zdCBjb2RlID0gcGF0aC5jb2RlUG9pbnRBdChpbmRleClcblxuICAgIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAvLyBzZXBhcmF0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgc3RvcCBub3cuXG4gICAgICBpZiAodW5tYXRjaGVkU2xhc2gpIHtcbiAgICAgICAgc3RhcnRQYXJ0ID0gaW5kZXggKyAxXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaWYgKGVuZCA8IDApIHtcbiAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yLCBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXJcbiAgICAgIC8vIGV4dGVuc2lvbi5cbiAgICAgIHVubWF0Y2hlZFNsYXNoID0gdHJ1ZVxuICAgICAgZW5kID0gaW5kZXggKyAxXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IDQ2IC8qIGAuYCAqLykge1xuICAgICAgLy8gSWYgdGhpcyBpcyBvdXIgZmlyc3QgZG90LCBtYXJrIGl0IGFzIHRoZSBzdGFydCBvZiBvdXIgZXh0ZW5zaW9uLlxuICAgICAgaWYgKHN0YXJ0RG90IDwgMCkge1xuICAgICAgICBzdGFydERvdCA9IGluZGV4XG4gICAgICB9IGVsc2UgaWYgKHByZURvdFN0YXRlICE9PSAxKSB7XG4gICAgICAgIHByZURvdFN0YXRlID0gMVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3RhcnREb3QgPiAtMSkge1xuICAgICAgLy8gV2Ugc2F3IGEgbm9uLWRvdCBhbmQgbm9uLXBhdGggc2VwYXJhdG9yIGJlZm9yZSBvdXIgZG90LCBzbyB3ZSBzaG91bGRcbiAgICAgIC8vIGhhdmUgYSBnb29kIGNoYW5jZSBhdCBoYXZpbmcgYSBub24tZW1wdHkgZXh0ZW5zaW9uLlxuICAgICAgcHJlRG90U3RhdGUgPSAtMVxuICAgIH1cbiAgfVxuXG4gIGlmIChcbiAgICBzdGFydERvdCA8IDAgfHxcbiAgICBlbmQgPCAwIHx8XG4gICAgLy8gV2Ugc2F3IGEgbm9uLWRvdCBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBkb3QuXG4gICAgcHJlRG90U3RhdGUgPT09IDAgfHxcbiAgICAvLyBUaGUgKHJpZ2h0LW1vc3QpIHRyaW1tZWQgcGF0aCBjb21wb25lbnQgaXMgZXhhY3RseSBgLi5gLlxuICAgIChwcmVEb3RTdGF0ZSA9PT0gMSAmJiBzdGFydERvdCA9PT0gZW5kIC0gMSAmJiBzdGFydERvdCA9PT0gc3RhcnRQYXJ0ICsgMSlcbiAgKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICByZXR1cm4gcGF0aC5zbGljZShzdGFydERvdCwgZW5kKVxufVxuXG4vKipcbiAqIEpvaW4gc2VnbWVudHMgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBzZWdtZW50c1xuICogICBQYXRoIHNlZ21lbnRzLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBqb2luKC4uLnNlZ21lbnRzKSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgam9pbmVkXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzZWdtZW50cy5sZW5ndGgpIHtcbiAgICBhc3NlcnRQYXRoKHNlZ21lbnRzW2luZGV4XSlcblxuICAgIGlmIChzZWdtZW50c1tpbmRleF0pIHtcbiAgICAgIGpvaW5lZCA9XG4gICAgICAgIGpvaW5lZCA9PT0gdW5kZWZpbmVkID8gc2VnbWVudHNbaW5kZXhdIDogam9pbmVkICsgJy8nICsgc2VnbWVudHNbaW5kZXhdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGpvaW5lZCA9PT0gdW5kZWZpbmVkID8gJy4nIDogbm9ybWFsaXplKGpvaW5lZClcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYSBiYXNpYyBmaWxlIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG4vLyBOb3RlOiBgbm9ybWFsaXplYCBpcyBub3QgZXhwb3NlZCBhcyBgcGF0aC5ub3JtYWxpemVgLCBzbyBzb21lIGNvZGUgaXNcbi8vIG1hbnVhbGx5IHJlbW92ZWQgZnJvbSBpdC5cbmZ1bmN0aW9uIG5vcm1hbGl6ZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBjb25zdCBhYnNvbHV0ZSA9IHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuXG4gIC8vIE5vcm1hbGl6ZSB0aGUgcGF0aCBhY2NvcmRpbmcgdG8gUE9TSVggcnVsZXMuXG4gIGxldCB2YWx1ZSA9IG5vcm1hbGl6ZVN0cmluZyhwYXRoLCAhYWJzb2x1dGUpXG5cbiAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCAmJiAhYWJzb2x1dGUpIHtcbiAgICB2YWx1ZSA9ICcuJ1xuICB9XG5cbiAgaWYgKHZhbHVlLmxlbmd0aCA+IDAgJiYgcGF0aC5jb2RlUG9pbnRBdChwYXRoLmxlbmd0aCAtIDEpID09PSA0NyAvKiAvICovKSB7XG4gICAgdmFsdWUgKz0gJy8nXG4gIH1cblxuICByZXR1cm4gYWJzb2x1dGUgPyAnLycgKyB2YWx1ZSA6IHZhbHVlXG59XG5cbi8qKlxuICogUmVzb2x2ZSBgLmAgYW5kIGAuLmAgZWxlbWVudHMgaW4gYSBwYXRoIHdpdGggZGlyZWN0b3J5IG5hbWVzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYWxsb3dBYm92ZVJvb3RcbiAqICAgV2hldGhlciBgLi5gIGNhbiBtb3ZlIGFib3ZlIHJvb3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0cmluZyhwYXRoLCBhbGxvd0Fib3ZlUm9vdCkge1xuICBsZXQgcmVzdWx0ID0gJydcbiAgbGV0IGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICBsZXQgbGFzdFNsYXNoID0gLTFcbiAgbGV0IGRvdHMgPSAwXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY29kZVxuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IGxhc3RTbGFzaEluZGV4XG5cbiAgd2hpbGUgKCsraW5kZXggPD0gcGF0aC5sZW5ndGgpIHtcbiAgICBpZiAoaW5kZXggPCBwYXRoLmxlbmd0aCkge1xuICAgICAgY29kZSA9IHBhdGguY29kZVBvaW50QXQoaW5kZXgpXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGJyZWFrXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvZGUgPSA0NyAvKiBgL2AgKi9cbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICBpZiAobGFzdFNsYXNoID09PSBpbmRleCAtIDEgfHwgZG90cyA9PT0gMSkge1xuICAgICAgICAvLyBFbXB0eS5cbiAgICAgIH0gZWxzZSBpZiAobGFzdFNsYXNoICE9PSBpbmRleCAtIDEgJiYgZG90cyA9PT0gMikge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzdWx0Lmxlbmd0aCA8IDIgfHxcbiAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCAhPT0gMiB8fFxuICAgICAgICAgIHJlc3VsdC5jb2RlUG9pbnRBdChyZXN1bHQubGVuZ3RoIC0gMSkgIT09IDQ2IC8qIGAuYCAqLyB8fFxuICAgICAgICAgIHJlc3VsdC5jb2RlUG9pbnRBdChyZXN1bHQubGVuZ3RoIC0gMikgIT09IDQ2IC8qIGAuYCAqL1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgIGxhc3RTbGFzaEluZGV4ID0gcmVzdWx0Lmxhc3RJbmRleE9mKCcvJylcblxuICAgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4ICE9PSByZXN1bHQubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBpZiAobGFzdFNsYXNoSW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gJydcbiAgICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDBcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgbGFzdFNsYXNoSW5kZXgpXG4gICAgICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSByZXN1bHQubGVuZ3RoIC0gMSAtIHJlc3VsdC5sYXN0SW5kZXhPZignLycpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBsYXN0U2xhc2ggPSBpbmRleFxuICAgICAgICAgICAgICBkb3RzID0gMFxuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJlc3VsdCA9ICcnXG4gICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDBcbiAgICAgICAgICAgIGxhc3RTbGFzaCA9IGluZGV4XG4gICAgICAgICAgICBkb3RzID0gMFxuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQubGVuZ3RoID4gMCA/IHJlc3VsdCArICcvLi4nIDogJy4uJ1xuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXN1bHQgKz0gJy8nICsgcGF0aC5zbGljZShsYXN0U2xhc2ggKyAxLCBpbmRleClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSBwYXRoLnNsaWNlKGxhc3RTbGFzaCArIDEsIGluZGV4KVxuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSBpbmRleCAtIGxhc3RTbGFzaCAtIDFcbiAgICAgIH1cblxuICAgICAgbGFzdFNsYXNoID0gaW5kZXhcbiAgICAgIGRvdHMgPSAwXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSA0NiAvKiBgLmAgKi8gJiYgZG90cyA+IC0xKSB7XG4gICAgICBkb3RzKytcbiAgICB9IGVsc2Uge1xuICAgICAgZG90cyA9IC0xXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIE1ha2Ugc3VyZSBgcGF0aGAgaXMgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge2Fzc2VydHMgcGF0aCBpcyBzdHJpbmd9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhdGgocGF0aCkge1xuICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICdQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICcgKyBKU09OLnN0cmluZ2lmeShwYXRoKVxuICAgIClcbiAgfVxufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG1heC1kZXB0aCwgY29tcGxleGl0eSAqL1xuIiwgIi8vIFNvbWV3aGF0IGJhc2VkIG9uOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9kZWZ1bmN0em9tYmllL25vZGUtcHJvY2Vzcy9ibG9iL21hc3Rlci9icm93c2VyLmpzPi5cbi8vIEJ1dCBJIGRvblx1MjAxOXQgdGhpbmsgb25lIHRpbnkgbGluZSBvZiBjb2RlIGNhbiBiZSBjb3B5cmlnaHRlZC4gXHVEODNEXHVERTA1XG5leHBvcnQgY29uc3QgcHJvYyA9IHtjd2R9XG5cbmZ1bmN0aW9uIGN3ZCgpIHtcbiAgcmV0dXJuICcvJ1xufVxuIiwgIi8qKlxuICogQ2hlY2tzIGlmIGEgdmFsdWUgaGFzIHRoZSBzaGFwZSBvZiBhIFdIQVRXRyBVUkwgb2JqZWN0LlxuICpcbiAqIFVzaW5nIGEgc3ltYm9sIG9yIGluc3RhbmNlb2Ygd291bGQgbm90IGJlIGFibGUgdG8gcmVjb2duaXplIFVSTCBvYmplY3RzXG4gKiBjb21pbmcgZnJvbSBvdGhlciBpbXBsZW1lbnRhdGlvbnMgKGUuZy4gaW4gRWxlY3Ryb24pLCBzbyBpbnN0ZWFkIHdlIGFyZVxuICogY2hlY2tpbmcgc29tZSB3ZWxsIGtub3duIHByb3BlcnRpZXMgZm9yIGEgbGFjayBvZiBhIGJldHRlciB0ZXN0LlxuICpcbiAqIFdlIHVzZSBgaHJlZmAgYW5kIGBwcm90b2NvbGAgYXMgdGhleSBhcmUgdGhlIG9ubHkgcHJvcGVydGllcyB0aGF0IGFyZVxuICogZWFzeSB0byByZXRyaWV2ZSBhbmQgY2FsY3VsYXRlIGR1ZSB0byB0aGUgbGF6eSBuYXR1cmUgb2YgdGhlIGdldHRlcnMuXG4gKlxuICogV2UgY2hlY2sgZm9yIGF1dGggYXR0cmlidXRlIHRvIGRpc3Rpbmd1aXNoIGxlZ2FjeSB1cmwgaW5zdGFuY2Ugd2l0aFxuICogV0hBVFdHIFVSTCBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IGZpbGVVcmxPclBhdGhcbiAqICAgRmlsZSBwYXRoIG9yIFVSTC5cbiAqIEByZXR1cm5zIHtmaWxlVXJsT3JQYXRoIGlzIFVSTH1cbiAqICAgV2hldGhlciBpdFx1MjAxOXMgYSBVUkwuXG4gKi9cbi8vIEZyb206IDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi82YTM0MDNjL2xpYi9pbnRlcm5hbC91cmwuanMjTDcyMD5cbmV4cG9ydCBmdW5jdGlvbiBpc1VybChmaWxlVXJsT3JQYXRoKSB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIGZpbGVVcmxPclBhdGggIT09IG51bGwgJiZcbiAgICAgIHR5cGVvZiBmaWxlVXJsT3JQYXRoID09PSAnb2JqZWN0JyAmJlxuICAgICAgJ2hyZWYnIGluIGZpbGVVcmxPclBhdGggJiZcbiAgICAgIGZpbGVVcmxPclBhdGguaHJlZiAmJlxuICAgICAgJ3Byb3RvY29sJyBpbiBmaWxlVXJsT3JQYXRoICYmXG4gICAgICBmaWxlVXJsT3JQYXRoLnByb3RvY29sICYmXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBpbmRleGluZyBpcyBmaW5lLlxuICAgICAgZmlsZVVybE9yUGF0aC5hdXRoID09PSB1bmRlZmluZWRcbiAgKVxufVxuIiwgImltcG9ydCB7aXNVcmx9IGZyb20gJy4vbWludXJsLnNoYXJlZC5qcydcblxuZXhwb3J0IHtpc1VybH0gZnJvbSAnLi9taW51cmwuc2hhcmVkLmpzJ1xuXG4vLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi82YTM0MDNjL2xpYi9pbnRlcm5hbC91cmwuanM+XG5cbi8qKlxuICogQHBhcmFtIHtVUkwgfCBzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIFVSTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVybFRvUGF0aChwYXRoKSB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICBwYXRoID0gbmV3IFVSTChwYXRoKVxuICB9IGVsc2UgaWYgKCFpc1VybChwYXRoKSkge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICdUaGUgXCJwYXRoXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnICtcbiAgICAgICAgcGF0aCArXG4gICAgICAgICdgJ1xuICAgIClcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX0FSR19UWVBFJ1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBpZiAocGF0aC5wcm90b2NvbCAhPT0gJ2ZpbGU6Jykge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcignVGhlIFVSTCBtdXN0IGJlIG9mIHNjaGVtZSBmaWxlJylcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX1VSTF9TQ0hFTUUnXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIHJldHVybiBnZXRQYXRoRnJvbVVSTFBvc2l4KHBhdGgpXG59XG5cbi8qKlxuICogR2V0IGEgcGF0aCBmcm9tIGEgUE9TSVggVVJMLlxuICpcbiAqIEBwYXJhbSB7VVJMfSB1cmxcbiAqICAgVVJMLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBnZXRQYXRoRnJvbVVSTFBvc2l4KHVybCkge1xuICBpZiAodXJsLmhvc3RuYW1lICE9PSAnJykge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICdGaWxlIFVSTCBob3N0IG11c3QgYmUgXCJsb2NhbGhvc3RcIiBvciBlbXB0eSBvbiBkYXJ3aW4nXG4gICAgKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfRklMRV9VUkxfSE9TVCdcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1cmwucGF0aG5hbWVcbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHBhdGhuYW1lLmxlbmd0aCkge1xuICAgIGlmIChcbiAgICAgIHBhdGhuYW1lLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gMzcgLyogYCVgICovICYmXG4gICAgICBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCArIDEpID09PSA1MCAvKiBgMmAgKi9cbiAgICApIHtcbiAgICAgIGNvbnN0IHRoaXJkID0gcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXggKyAyKVxuICAgICAgaWYgKHRoaXJkID09PSA3MCAvKiBgRmAgKi8gfHwgdGhpcmQgPT09IDEwMiAvKiBgZmAgKi8pIHtcbiAgICAgICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAnRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzJ1xuICAgICAgICApXG4gICAgICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCdcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHBhdGhuYW1lKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlLW1lc3NhZ2UnKS5PcHRpb25zfSBNZXNzYWdlT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5EYXRhfSBEYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlZhbHVlfSBWYWx1ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdCAmIHt0eXBlOiBzdHJpbmcsIHBvc2l0aW9uPzogUG9zaXRpb24gfCB1bmRlZmluZWR9fSBOb2RlTGlrZVxuICpcbiAqIEB0eXBlZGVmIHtPcHRpb25zIHwgVVJMIHwgVkZpbGUgfCBWYWx1ZX0gQ29tcGF0aWJsZVxuICogICBUaGluZ3MgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAdHlwZWRlZiBWRmlsZUNvcmVPcHRpb25zXG4gKiAgIFNldCBtdWx0aXBsZSB2YWx1ZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtiYXNlbmFtZV1cbiAqICAgU2V0IGBiYXNlbmFtZWAgKG5hbWUpLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbY3dkXVxuICogICBTZXQgYGN3ZGAgKHdvcmtpbmcgZGlyZWN0b3J5KS5cbiAqIEBwcm9wZXJ0eSB7RGF0YSB8IG51bGwgfCB1bmRlZmluZWR9IFtkYXRhXVxuICogICBTZXQgYGRhdGFgIChhc3NvY2lhdGVkIGluZm8pLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZGlybmFtZV1cbiAqICAgU2V0IGBkaXJuYW1lYCAocGF0aCB3L28gYmFzZW5hbWUpLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZXh0bmFtZV1cbiAqICAgU2V0IGBleHRuYW1lYCAoZXh0ZW5zaW9uIHdpdGggZG90KS5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPiB8IG51bGwgfCB1bmRlZmluZWR9IFtoaXN0b3J5XVxuICogICBTZXQgYGhpc3RvcnlgIChwYXRocyB0aGUgZmlsZSBtb3ZlZCBiZXR3ZWVuKS5cbiAqIEBwcm9wZXJ0eSB7VVJMIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BhdGhdXG4gKiAgIFNldCBgcGF0aGAgKGN1cnJlbnQgcGF0aCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtzdGVtXVxuICogICBTZXQgYHN0ZW1gIChuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uKS5cbiAqIEBwcm9wZXJ0eSB7VmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiAgIFNldCBgdmFsdWVgICh0aGUgY29udGVudHMgb2YgdGhlIGZpbGUpLlxuICpcbiAqIEB0eXBlZGVmIE1hcFxuICogICBSYXcgc291cmNlIG1hcC5cbiAqXG4gKiAgIFNlZTpcbiAqICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL3NvdXJjZS1tYXAvYmxvYi82MGFkY2IwL3NvdXJjZS1tYXAuZC50cyNMMTUtTDIzPi5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB2ZXJzaW9uXG4gKiAgIFdoaWNoIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXAgc3BlYyB0aGlzIG1hcCBpcyBmb2xsb3dpbmcuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IHNvdXJjZXNcbiAqICAgQW4gYXJyYXkgb2YgVVJMcyB0byB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLlxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+fSBuYW1lc1xuICogICBBbiBhcnJheSBvZiBpZGVudGlmaWVycyB3aGljaCBjYW4gYmUgcmVmZXJlbmNlZCBieSBpbmRpdmlkdWFsIG1hcHBpbmdzLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCB1bmRlZmluZWR9IFtzb3VyY2VSb290XVxuICogICBUaGUgVVJMIHJvb3QgZnJvbSB3aGljaCBhbGwgc291cmNlcyBhcmUgcmVsYXRpdmUuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9IFtzb3VyY2VzQ29udGVudF1cbiAqICAgQW4gYXJyYXkgb2YgY29udGVudHMgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBtYXBwaW5nc1xuICogICBBIHN0cmluZyBvZiBiYXNlNjQgVkxRcyB3aGljaCBjb250YWluIHRoZSBhY3R1YWwgbWFwcGluZ3MuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZmlsZVxuICogICBUaGUgZ2VuZXJhdGVkIGZpbGUgdGhpcyBzb3VyY2UgbWFwIGlzIGFzc29jaWF0ZWQgd2l0aC5cbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiBWRmlsZUNvcmVPcHRpb25zfSBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKlxuICogICBBIGJ1bmNoIG9mIGtleXMgdGhhdCB3aWxsIGJlIHNoYWxsb3cgY29waWVkIG92ZXIgdG8gdGhlIG5ldyBmaWxlLlxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gUmVwb3J0ZXJTZXR0aW5nc1xuICogICBDb25maWd1cmF0aW9uIGZvciByZXBvcnRlcnMuXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUgW1NldHRpbmdzPVJlcG9ydGVyU2V0dGluZ3NdXG4gKiAgIE9wdGlvbnMgdHlwZS5cbiAqIEBjYWxsYmFjayBSZXBvcnRlclxuICogICBUeXBlIGZvciBhIHJlcG9ydGVyLlxuICogQHBhcmFtIHtBcnJheTxWRmlsZT59IGZpbGVzXG4gKiAgIEZpbGVzIHRvIHJlcG9ydC5cbiAqIEBwYXJhbSB7U2V0dGluZ3N9IG9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFJlcG9ydC5cbiAqL1xuXG5pbXBvcnQge1ZGaWxlTWVzc2FnZX0gZnJvbSAndmZpbGUtbWVzc2FnZSdcbmltcG9ydCB7cGF0aH0gZnJvbSAndmZpbGUvZG8tbm90LXVzZS1jb25kaXRpb25hbC1taW5wYXRoJ1xuaW1wb3J0IHtwcm9jfSBmcm9tICd2ZmlsZS9kby1ub3QtdXNlLWNvbmRpdGlvbmFsLW1pbnByb2MnXG5pbXBvcnQge3VybFRvUGF0aCwgaXNVcmx9IGZyb20gJ3ZmaWxlL2RvLW5vdC11c2UtY29uZGl0aW9uYWwtbWludXJsJ1xuXG4vKipcbiAqIE9yZGVyIG9mIHNldHRpbmcgKGxlYXN0IHNwZWNpZmljIHRvIG1vc3QpLCB3ZSBuZWVkIHRoaXMgYmVjYXVzZSBvdGhlcndpc2VcbiAqIGB7c3RlbTogJ2EnLCBwYXRoOiAnfi9iLmpzJ31gIHdvdWxkIHRocm93LCBhcyBhIHBhdGggaXMgbmVlZGVkIGJlZm9yZSBhXG4gKiBzdGVtIGNhbiBiZSBzZXQuXG4gKi9cbmNvbnN0IG9yZGVyID0gLyoqIEB0eXBlIHtjb25zdH0gKi8gKFtcbiAgJ2hpc3RvcnknLFxuICAncGF0aCcsXG4gICdiYXNlbmFtZScsXG4gICdzdGVtJyxcbiAgJ2V4dG5hbWUnLFxuICAnZGlybmFtZSdcbl0pXG5cbmV4cG9ydCBjbGFzcyBWRmlsZSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdmlydHVhbCBmaWxlLlxuICAgKlxuICAgKiBgb3B0aW9uc2AgaXMgdHJlYXRlZCBhczpcbiAgICpcbiAgICogKiAgIGBzdHJpbmdgIG9yIGBVaW50OEFycmF5YCBcdTIwMTQgYHt2YWx1ZTogb3B0aW9uc31gXG4gICAqICogICBgVVJMYCBcdTIwMTQgYHtwYXRoOiBvcHRpb25zfWBcbiAgICogKiAgIGBWRmlsZWAgXHUyMDE0IHNoYWxsb3cgY29waWVzIGl0cyBkYXRhIG92ZXIgdG8gdGhlIG5ldyBmaWxlXG4gICAqICogICBgb2JqZWN0YCBcdTIwMTQgYWxsIGZpZWxkcyBhcmUgc2hhbGxvdyBjb3BpZWQgb3ZlciB0byB0aGUgbmV3IGZpbGVcbiAgICpcbiAgICogUGF0aCByZWxhdGVkIGZpZWxkcyBhcmUgc2V0IGluIHRoZSBmb2xsb3dpbmcgb3JkZXIgKGxlYXN0IHNwZWNpZmljIHRvXG4gICAqIG1vc3Qgc3BlY2lmaWMpOiBgaGlzdG9yeWAsIGBwYXRoYCwgYGJhc2VuYW1lYCwgYHN0ZW1gLCBgZXh0bmFtZWAsXG4gICAqIGBkaXJuYW1lYC5cbiAgICpcbiAgICogWW91IGNhbm5vdCBzZXQgYGRpcm5hbWVgIG9yIGBleHRuYW1lYCB3aXRob3V0IHNldHRpbmcgZWl0aGVyIGBoaXN0b3J5YCxcbiAgICogYHBhdGhgLCBgYmFzZW5hbWVgLCBvciBgc3RlbWAgdG9vLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbXBhdGlibGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gICAqICAgRmlsZSB2YWx1ZS5cbiAgICogQHJldHVybnNcbiAgICogICBOZXcgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIC8qKiBAdHlwZSB7T3B0aW9ucyB8IFZGaWxlfSAqL1xuICAgIGxldCBvcHRpb25zXG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICBvcHRpb25zID0ge31cbiAgICB9IGVsc2UgaWYgKGlzVXJsKHZhbHVlKSkge1xuICAgICAgb3B0aW9ucyA9IHtwYXRoOiB2YWx1ZX1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgaXNVaW50OEFycmF5KHZhbHVlKSkge1xuICAgICAgb3B0aW9ucyA9IHt2YWx1ZX1cbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucyA9IHZhbHVlXG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG5cbiAgICAvKipcbiAgICAgKiBCYXNlIG9mIGBwYXRoYCAoZGVmYXVsdDogYHByb2Nlc3MuY3dkKClgIG9yIGAnLydgIGluIGJyb3dzZXJzKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy5jd2QgPSBwcm9jLmN3ZCgpXG5cbiAgICAvKipcbiAgICAgKiBQbGFjZSB0byBzdG9yZSBjdXN0b20gaW5mbyAoZGVmYXVsdDogYHt9YCkuXG4gICAgICpcbiAgICAgKiBJdFx1MjAxOXMgT0sgdG8gc3RvcmUgY3VzdG9tIGRhdGEgZGlyZWN0bHkgb24gdGhlIGZpbGUgYnV0IG1vdmluZyBpdCB0b1xuICAgICAqIGBkYXRhYCBpcyByZWNvbW1lbmRlZC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtEYXRhfVxuICAgICAqL1xuICAgIHRoaXMuZGF0YSA9IHt9XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGZpbGUgcGF0aHMgdGhlIGZpbGUgbW92ZWQgYmV0d2Vlbi5cbiAgICAgKlxuICAgICAqIFRoZSBmaXJzdCBpcyB0aGUgb3JpZ2luYWwgcGF0aCBhbmQgdGhlIGxhc3QgaXMgdGhlIGN1cnJlbnQgcGF0aC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxzdHJpbmc+fVxuICAgICAqL1xuICAgIHRoaXMuaGlzdG9yeSA9IFtdXG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIG1lc3NhZ2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxWRmlsZU1lc3NhZ2U+fVxuICAgICAqL1xuICAgIHRoaXMubWVzc2FnZXMgPSBbXVxuXG4gICAgLyoqXG4gICAgICogUmF3IHZhbHVlLlxuICAgICAqXG4gICAgICogQHR5cGUge1ZhbHVlfVxuICAgICAqL1xuICAgIHRoaXMudmFsdWVcblxuICAgIC8vIFRoZSBiZWxvdyBhcmUgbm9uLXN0YW5kYXJkLCB0aGV5IGFyZSBcdTIwMUN3ZWxsLWtub3duXHUyMDFELlxuICAgIC8vIEFzIGluLCB1c2VkIGluIHNldmVyYWwgdG9vbHMuXG4gICAgLyoqXG4gICAgICogU291cmNlIG1hcC5cbiAgICAgKlxuICAgICAqIFRoaXMgdHlwZSBpcyBlcXVpdmFsZW50IHRvIHRoZSBgUmF3U291cmNlTWFwYCB0eXBlIGZyb20gdGhlIGBzb3VyY2UtbWFwYFxuICAgICAqIG1vZHVsZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtNYXAgfCBudWxsIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMubWFwXG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20sIG5vbi1zdHJpbmcsIGNvbXBpbGVkLCByZXByZXNlbnRhdGlvbi5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgdXNlZCBieSB1bmlmaWVkIHRvIHN0b3JlIG5vbi1zdHJpbmcgcmVzdWx0cy5cbiAgICAgKiBPbmUgZXhhbXBsZSBpcyB3aGVuIHR1cm5pbmcgbWFya2Rvd24gaW50byBSZWFjdCBub2Rlcy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHt1bmtub3dufVxuICAgICAqL1xuICAgIHRoaXMucmVzdWx0XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGEgZmlsZSB3YXMgc2F2ZWQgdG8gZGlzay5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgdXNlZCBieSB2ZmlsZSByZXBvcnRlcnMuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLnN0b3JlZFxuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG5cbiAgICAvLyBTZXQgcGF0aCByZWxhdGVkIHByb3BlcnRpZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuXG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICgrK2luZGV4IDwgb3JkZXIubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwcm9wID0gb3JkZXJbaW5kZXhdXG5cbiAgICAgIC8vIE5vdGU6IHdlIHNwZWNpZmljYWxseSB1c2UgYGluYCBpbnN0ZWFkIG9mIGBoYXNPd25Qcm9wZXJ0eWAgdG8gYWNjZXB0XG4gICAgICAvLyBgdmZpbGVgcyB0b28uXG4gICAgICBpZiAoXG4gICAgICAgIHByb3AgaW4gb3B0aW9ucyAmJlxuICAgICAgICBvcHRpb25zW3Byb3BdICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgb3B0aW9uc1twcm9wXSAhPT0gbnVsbFxuICAgICAgKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFRTIGRvZXNuXHUyMDE5dCB1bmRlcnN0YW5kIGJhc2ljIHJlYWxpdHkuXG4gICAgICAgIHRoaXNbcHJvcF0gPSBwcm9wID09PSAnaGlzdG9yeScgPyBbLi4ub3B0aW9uc1twcm9wXV0gOiBvcHRpb25zW3Byb3BdXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IHByb3BcblxuICAgIC8vIFNldCBub24tcGF0aCByZWxhdGVkIHByb3BlcnRpZXMuXG4gICAgZm9yIChwcm9wIGluIG9wdGlvbnMpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGZpbmUgdG8gc2V0IG90aGVyIHRoaW5ncy5cbiAgICAgIGlmICghb3JkZXIuaW5jbHVkZXMocHJvcCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgICB0aGlzW3Byb3BdID0gb3B0aW9uc1twcm9wXVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJhc2VuYW1lIChpbmNsdWRpbmcgZXh0bmFtZSkgKGV4YW1wbGU6IGAnaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiAgIEJhc2VuYW1lLlxuICAgKi9cbiAgZ2V0IGJhc2VuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJyA/IHBhdGguYmFzZW5hbWUodGhpcy5wYXRoKSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBiYXNlbmFtZSAoaW5jbHVkaW5nIGV4dG5hbWUpIChgJ2luZGV4Lm1pbi5qcydgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQgKHVzZSBgZmlsZS5wYXRoID0gZmlsZS5kaXJuYW1lYCBpbnN0ZWFkKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJhc2VuYW1lXG4gICAqICAgQmFzZW5hbWUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBiYXNlbmFtZShiYXNlbmFtZSkge1xuICAgIGFzc2VydE5vbkVtcHR5KGJhc2VuYW1lLCAnYmFzZW5hbWUnKVxuICAgIGFzc2VydFBhcnQoYmFzZW5hbWUsICdiYXNlbmFtZScpXG4gICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSB8fCAnJywgYmFzZW5hbWUpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwYXJlbnQgcGF0aCAoZXhhbXBsZTogYCd+J2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiAgIERpcm5hbWUuXG4gICAqL1xuICBnZXQgZGlybmFtZSgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMucGF0aCA9PT0gJ3N0cmluZycgPyBwYXRoLmRpcm5hbWUodGhpcy5wYXRoKSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcGFyZW50IHBhdGggKGV4YW1wbGU6IGAnfidgKS5cbiAgICpcbiAgICogQ2Fubm90IGJlIHNldCBpZiB0aGVyZVx1MjAxOXMgbm8gYHBhdGhgIHlldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGRpcm5hbWVcbiAgICogICBEaXJuYW1lLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgZGlybmFtZShkaXJuYW1lKSB7XG4gICAgYXNzZXJ0UGF0aCh0aGlzLmJhc2VuYW1lLCAnZGlybmFtZScpXG4gICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKGRpcm5hbWUgfHwgJycsIHRoaXMuYmFzZW5hbWUpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBleHRuYW1lIChpbmNsdWRpbmcgZG90KSAoZXhhbXBsZTogYCcuanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgRXh0bmFtZS5cbiAgICovXG4gIGdldCBleHRuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJyA/IHBhdGguZXh0bmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBleHRuYW1lIChpbmNsdWRpbmcgZG90KSAoZXhhbXBsZTogYCcuanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBjb250YWluIHBhdGggc2VwYXJhdG9ycyAoYCcvJ2Agb24gdW5peCwgbWFjT1MsIGFuZCBicm93c2VycywgYCdcXCdgXG4gICAqIG9uIHdpbmRvd3MpLlxuICAgKiBDYW5ub3QgYmUgc2V0IGlmIHRoZXJlXHUyMDE5cyBubyBgcGF0aGAgeWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gZXh0bmFtZVxuICAgKiAgIEV4dG5hbWUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBleHRuYW1lKGV4dG5hbWUpIHtcbiAgICBhc3NlcnRQYXJ0KGV4dG5hbWUsICdleHRuYW1lJylcbiAgICBhc3NlcnRQYXRoKHRoaXMuZGlybmFtZSwgJ2V4dG5hbWUnKVxuXG4gICAgaWYgKGV4dG5hbWUpIHtcbiAgICAgIGlmIChleHRuYW1lLmNvZGVQb2ludEF0KDApICE9PSA0NiAvKiBgLmAgKi8pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgZXh0bmFtZWAgbXVzdCBzdGFydCB3aXRoIGAuYCcpXG4gICAgICB9XG5cbiAgICAgIGlmIChleHRuYW1lLmluY2x1ZGVzKCcuJywgMSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cycpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgdGhpcy5zdGVtICsgKGV4dG5hbWUgfHwgJycpKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZnVsbCBwYXRoIChleGFtcGxlOiBgJ34vaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKiAgIFBhdGguXG4gICAqL1xuICBnZXQgcGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGggLSAxXVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZnVsbCBwYXRoIChleGFtcGxlOiBgJ34vaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBDYW5ub3QgYmUgbnVsbGlmaWVkLlxuICAgKiBZb3UgY2FuIHNldCBhIGZpbGUgVVJMIChhIGBVUkxgIG9iamVjdCB3aXRoIGEgYGZpbGU6YCBwcm90b2NvbCkgd2hpY2ggd2lsbFxuICAgKiBiZSB0dXJuZWQgaW50byBhIHBhdGggd2l0aCBgdXJsLmZpbGVVUkxUb1BhdGhgLlxuICAgKlxuICAgKiBAcGFyYW0ge1VSTCB8IHN0cmluZ30gcGF0aFxuICAgKiAgIFBhdGguXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBwYXRoKHBhdGgpIHtcbiAgICBpZiAoaXNVcmwocGF0aCkpIHtcbiAgICAgIHBhdGggPSB1cmxUb1BhdGgocGF0aClcbiAgICB9XG5cbiAgICBhc3NlcnROb25FbXB0eShwYXRoLCAncGF0aCcpXG5cbiAgICBpZiAodGhpcy5wYXRoICE9PSBwYXRoKSB7XG4gICAgICB0aGlzLmhpc3RvcnkucHVzaChwYXRoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0ZW0gKGJhc2VuYW1lIHcvbyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4nYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgU3RlbS5cbiAgICovXG4gIGdldCBzdGVtKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJ1xuICAgICAgPyBwYXRoLmJhc2VuYW1lKHRoaXMucGF0aCwgdGhpcy5leHRuYW1lKVxuICAgICAgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHN0ZW0gKGJhc2VuYW1lIHcvbyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4nYCkuXG4gICAqXG4gICAqIENhbm5vdCBjb250YWluIHBhdGggc2VwYXJhdG9ycyAoYCcvJ2Agb24gdW5peCwgbWFjT1MsIGFuZCBicm93c2VycywgYCdcXCdgXG4gICAqIG9uIHdpbmRvd3MpLlxuICAgKiBDYW5ub3QgYmUgbnVsbGlmaWVkICh1c2UgYGZpbGUucGF0aCA9IGZpbGUuZGlybmFtZWAgaW5zdGVhZCkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdGVtXG4gICAqICAgU3RlbS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IHN0ZW0oc3RlbSkge1xuICAgIGFzc2VydE5vbkVtcHR5KHN0ZW0sICdzdGVtJylcbiAgICBhc3NlcnRQYXJ0KHN0ZW0sICdzdGVtJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lIHx8ICcnLCBzdGVtICsgKHRoaXMuZXh0bmFtZSB8fCAnJykpXG4gIH1cblxuICAvLyBOb3JtYWwgcHJvdG90eXBhbCBtZXRob2RzLlxuICAvKipcbiAgICogQ3JlYXRlIGEgZmF0YWwgbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYHRydWVgIChlcnJvcjsgZmlsZSBub3QgdXNhYmxlKVxuICAgKiBhbmQgdGhlIGBmaWxlYCBmaWVsZCBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgZmlsZSBwYXRoLlxuICAgKiBUaGUgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgYG1lc3NhZ2VzYCBmaWVsZCBvbiBgZmlsZWAuXG4gICAqXG4gICAqID4gXHVEODNFXHVERUE2ICoqTm90ZSoqOiBhbHNvIGhhcyBvYnNvbGV0ZSBzaWduYXR1cmVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge01lc3NhZ2VPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBNZXNzYWdlT3B0aW9ucyB8IFBvaW50IHwgUG9zaXRpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV1cbiAgICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogICBQbGFjZSBpbiBjb2RlIHdoZXJlIHRoZSBtZXNzYWdlIG9yaWdpbmF0ZXMgKGV4YW1wbGU6XG4gICAqICAgYCdteS1wYWNrYWdlOm15LXJ1bGUnYCBvciBgJ215LXJ1bGUnYCkuXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICogICBOZXZlci5cbiAgICogQHRocm93cyB7VkZpbGVNZXNzYWdlfVxuICAgKiAgIE1lc3NhZ2UuXG4gICAqL1xuICBmYWlsKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbikge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSBvdmVybG9hZHMgYXJlIGZpbmUuXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubWVzc2FnZShjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pXG5cbiAgICBtZXNzYWdlLmZhdGFsID0gdHJ1ZVxuXG4gICAgdGhyb3cgbWVzc2FnZVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbmZvIG1lc3NhZ2UgZm9yIGByZWFzb25gIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS5cbiAgICpcbiAgICogVGhlIGBmYXRhbGAgZmllbGQgb2YgdGhlIG1lc3NhZ2UgaXMgc2V0IHRvIGB1bmRlZmluZWRgIChpbmZvOyBjaGFuZ2VcbiAgICogbGlrZWx5IG5vdCBuZWVkZWQpIGFuZCB0aGUgYGZpbGVgIGZpZWxkIGlzIHNldCB0byB0aGUgY3VycmVudCBmaWxlIHBhdGguXG4gICAqIFRoZSBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBgbWVzc2FnZXNgIGZpZWxkIG9uIGBmaWxlYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBNZXNzYWdlT3B0aW9ucyB8IFBvaW50IHwgUG9zaXRpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV1cbiAgICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogICBQbGFjZSBpbiBjb2RlIHdoZXJlIHRoZSBtZXNzYWdlIG9yaWdpbmF0ZXMgKGV4YW1wbGU6XG4gICAqICAgYCdteS1wYWNrYWdlOm15LXJ1bGUnYCBvciBgJ215LXJ1bGUnYCkuXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIGluZm8oY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGhlIG92ZXJsb2FkcyBhcmUgZmluZS5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbilcblxuICAgIG1lc3NhZ2UuZmF0YWwgPSB1bmRlZmluZWRcblxuICAgIHJldHVybiBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYGZhbHNlYCAod2FybmluZzsgY2hhbmdlIG1heSBiZVxuICAgKiBuZWVkZWQpIGFuZCB0aGUgYGZpbGVgIGZpZWxkIGlzIHNldCB0byB0aGUgY3VycmVudCBmaWxlIHBhdGguXG4gICAqIFRoZSBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBgbWVzc2FnZXNgIGZpZWxkIG9uIGBmaWxlYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBNZXNzYWdlT3B0aW9ucyB8IFBvaW50IHwgUG9zaXRpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV1cbiAgICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogICBQbGFjZSBpbiBjb2RlIHdoZXJlIHRoZSBtZXNzYWdlIG9yaWdpbmF0ZXMgKGV4YW1wbGU6XG4gICAqICAgYCdteS1wYWNrYWdlOm15LXJ1bGUnYCBvciBgJ215LXJ1bGUnYCkuXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIG1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IG5ldyBWRmlsZU1lc3NhZ2UoXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgICAgY2F1c2VPclJlYXNvbixcbiAgICAgIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsXG4gICAgICBvcmlnaW5cbiAgICApXG5cbiAgICBpZiAodGhpcy5wYXRoKSB7XG4gICAgICBtZXNzYWdlLm5hbWUgPSB0aGlzLnBhdGggKyAnOicgKyBtZXNzYWdlLm5hbWVcbiAgICAgIG1lc3NhZ2UuZmlsZSA9IHRoaXMucGF0aFxuICAgIH1cblxuICAgIG1lc3NhZ2UuZmF0YWwgPSBmYWxzZVxuXG4gICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpXG5cbiAgICByZXR1cm4gbWVzc2FnZVxuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSB0aGUgZmlsZS5cbiAgICpcbiAgICogPiAqKk5vdGUqKjogd2hpY2ggZW5jb2RpbmdzIGFyZSBzdXBwb3J0ZWQgZGVwZW5kcyBvbiB0aGUgZW5naW5lLlxuICAgKiA+IEZvciBpbmZvIG9uIE5vZGUuanMsIHNlZTpcbiAgICogPiA8aHR0cHM6Ly9ub2RlanMub3JnL2FwaS91dGlsLmh0bWwjd2hhdHdnLXN1cHBvcnRlZC1lbmNvZGluZ3M+LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmNvZGluZz0ndXRmOCddXG4gICAqICAgQ2hhcmFjdGVyIGVuY29kaW5nIHRvIHVuZGVyc3RhbmQgYHZhbHVlYCBhcyB3aGVuIGl0XHUyMDE5cyBhIGBVaW50OEFycmF5YFxuICAgKiAgIChkZWZhdWx0OiBgJ3V0Zi04J2ApLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKiAgIFNlcmlhbGl6ZWQgZmlsZS5cbiAgICovXG4gIHRvU3RyaW5nKGVuY29kaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWVcbiAgICB9XG5cbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKGVuY29kaW5nIHx8IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUodGhpcy52YWx1ZSlcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IGBwYXJ0YCBpcyBub3QgYSBwYXRoIChhcyBpbiwgZG9lcyBub3QgY29udGFpbiBgcGF0aC5zZXBgKS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHBhcnRcbiAqICAgRmlsZSBwYXRoIHBhcnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBQYXJ0IG5hbWUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnRQYXJ0KHBhcnQsIG5hbWUpIHtcbiAgaWYgKHBhcnQgJiYgcGFydC5pbmNsdWRlcyhwYXRoLnNlcCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnYCcgKyBuYW1lICsgJ2AgY2Fubm90IGJlIGEgcGF0aDogZGlkIG5vdCBleHBlY3QgYCcgKyBwYXRoLnNlcCArICdgJ1xuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IGBwYXJ0YCBpcyBub3QgZW1wdHkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IHBhcnRcbiAqICAgVGhpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBQYXJ0IG5hbWUuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXJ0IGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9uRW1wdHkocGFydCwgbmFtZSkge1xuICBpZiAoIXBhcnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2AnICsgbmFtZSArICdgIGNhbm5vdCBiZSBlbXB0eScpXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYHBhdGhgIGV4aXN0cy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gcGF0aFxuICogICBQYXRoLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgRGVwZW5kZW5jeSBuYW1lLlxuICogQHJldHVybnMge2Fzc2VydHMgcGF0aCBpcyBzdHJpbmd9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhdGgocGF0aCwgbmFtZSkge1xuICBpZiAoIXBhdGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NldHRpbmcgYCcgKyBuYW1lICsgJ2AgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b28nKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgdGhpbmcuXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgVWludDhBcnJheX1cbiAqICAgV2hldGhlciBgdmFsdWVgIGlzIGFuIGBVaW50OEFycmF5YC5cbiAqL1xuZnVuY3Rpb24gaXNVaW50OEFycmF5KHZhbHVlKSB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIHZhbHVlICYmXG4gICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAnYnl0ZUxlbmd0aCcgaW4gdmFsdWUgJiZcbiAgICAgICdieXRlT2Zmc2V0JyBpbiB2YWx1ZVxuICApXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBFcnJvckluZm9cbiAqICAgSW5mbyBvbiBhIGBwYXJzZTVgIGVycm9yLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHJlYXNvblxuICogICBSZWFzb24gb2YgZXJyb3IuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZGVzY3JpcHRpb25cbiAqICAgTW9yZSBpbmZvIG9uIGVycm9yLlxuICogQHByb3BlcnR5IHtmYWxzZX0gW3VybF1cbiAqICAgVHVybiBvZmYgaWYgdGhpcyBpcyBub3QgZG9jdW1lbnRlZCBpbiB0aGUgaHRtbDUgc3BlYyAob3B0aW9uYWwpLlxuICovXG5cbmV4cG9ydCBjb25zdCBlcnJvcnMgPSB7XG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYmFuZG9uZWRIZWFkRWxlbWVudENoaWxkOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBtZXRhZGF0YSBlbGVtZW50IGFmdGVyIGhlYWQnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgZWxlbWVudCBhZnRlciBoZWFkLiBFeHBlY3RlZCB0aGUgZWxlbWVudCBiZWZvcmUgYDwvaGVhZD5gJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGFicnVwdGx5IGNsb3NlZCBlbXB0eSBjb21tZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYD5gIG9yIGAtPmAuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIGNvbW1lbnRzJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJydXB0RG9jdHlwZVB1YmxpY0lkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGFicnVwdGx5IGNsb3NlZCBwdWJsaWMgaWRlbnRpZmllcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPmAuIEV4cGVjdGVkIGEgY2xvc2luZyBgXCJgIG9yIGBcXCdgIGFmdGVyIHRoZSBwdWJsaWMgaWRlbnRpZmllcidcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBhYnJ1cHRseSBjbG9zZWQgc3lzdGVtIGlkZW50aWZpZXInLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYD5gLiBFeHBlY3RlZCBhIGNsb3NpbmcgYFwiYCBvciBgXFwnYCBhZnRlciB0aGUgaWRlbnRpZmllciBpZGVudGlmaWVyJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJzZW5jZU9mRGlnaXRzSW5OdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub24tZGlnaXQgYXQgc3RhcnQgb2YgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGBbMC05XWAgZm9yIGRlY2ltYWwgcmVmZXJlbmNlcyBvciBgWzAtOWEtZkEtRl1gIGZvciBoZXhhZGVjaW1hbCByZWZlcmVuY2VzJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgY2RhdGFJbkh0bWxDb250ZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBDREFUQSBzZWN0aW9uIGluIEhUTUwnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYDwhW0NEQVRBW2AgaW4gSFRNTC4gUmVtb3ZlIGl0LCB1c2UgYSBjb21tZW50LCBvciBlbmNvZGUgc3BlY2lhbCBjaGFyYWN0ZXJzIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCB0b28gYmlnIG51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGhpZ2ggY2hhcmFjdGVyIHJlZmVyZW5jZS4gRXhwZWN0ZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgdG8gYmUgYXQgbW9zdCBoZXhhZGVjaW1hbCAxMGZmZmYgKG9yIGRlY2ltYWwgMTExNDExMSknXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjbG9zaW5nT2ZFbGVtZW50V2l0aE9wZW5DaGlsZEVsZW1lbnRzOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBjbG9zaW5nIHRhZyB3aXRoIG9wZW4gY2hpbGQgZWxlbWVudHMnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWRseSBjbG9zaW5nIHRhZy4gRXhwZWN0ZWQgb3RoZXIgdGFncyB0byBiZSBjbG9zZWQgZmlyc3QnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNvbnRyb2xDaGFyYWN0ZXJJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBjb250cm9sIGNoYXJhY3RlcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBjb250cm9sIGNoYXJhY3RlciBgJXhgLiBFeHBlY3RlZCBhIG5vbi1jb250cm9sIGNvZGUgcG9pbnQsIDB4MDAsIG9yIEFTQ0lJIHdoaXRlc3BhY2UnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjb250cm9sQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBjb250cm9sIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWRseSBjb250cm9sIGNoYXJhY3RlciBpbiByZWZlcmVuY2UuIEV4cGVjdGVkIGEgbm9uLWNvbnRyb2wgY29kZSBwb2ludCwgMHgwMCwgb3IgQVNDSUkgd2hpdGVzcGFjZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGRpc2FsbG93ZWRDb250ZW50SW5Ob3NjcmlwdEluSGVhZDoge1xuICAgIHJlYXNvbjogJ0Rpc2FsbG93ZWQgY29udGVudCBpbnNpZGUgYDxub3NjcmlwdD5gIGluIGA8aGVhZD5gJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIHRleHQgY2hhcmFjdGVyIGAlY2AuIE9ubHkgdXNlIHRleHQgaW4gYDxub3NjcmlwdD5gcyBpbiBgPGJvZHk+YCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZHVwbGljYXRlQXR0cmlidXRlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBkdXBsaWNhdGUgYXR0cmlidXRlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkbHkgZG91YmxlIGF0dHJpYnV0ZS4gRXhwZWN0ZWQgYXR0cmlidXRlcyB0byBvY2N1ciBvbmx5IG9uY2UnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlbmRUYWdXaXRoQXR0cmlidXRlczoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYXR0cmlidXRlIG9uIGNsb3NpbmcgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYXR0cmlidXRlLiBFeHBlY3RlZCBgPmAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXM6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHNsYXNoIGF0IGVuZCBvZiBjbG9zaW5nIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlYy0xYC4gRXhwZWN0ZWQgYD5gIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdW5vcGVuZWQgZW5kIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCB0YWcuIEV4cGVjdGVkIG5vIGVuZCB0YWcgb3IgYW5vdGhlciBlbmQgdGFnJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZCZWZvcmVUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCB0YWcgbmFtZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5DZGF0YToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gQ0RBVEEnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYF1dPmAgdG8gY2xvc2UgdGhlIENEQVRBJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5Db21tZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBjb21tZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIHRoZSBjb21tZW50J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5Eb2N0eXBlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBhIHZhbGlkIGRvY3R5cGUgKHN1Y2ggYXMgYDwhZG9jdHlwZSBodG1sPmApJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5FbGVtZW50VGhhdENhbkNvbnRhaW5Pbmx5VGV4dDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gZWxlbWVudCB0aGF0IGNhbiBvbmx5IGNvbnRhaW4gdGV4dCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCB0ZXh0IG9yIGEgY2xvc2luZyB0YWcnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gY29tbWVudCBpbnNpZGUgc2NyaXB0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIHRoZSBjb21tZW50J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5UYWc6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBgPmAgdG8gY2xvc2UgdGhlIHRhZydcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGluY29ycmVjdGx5Q2xvc2VkQ29tbWVudDoge1xuICAgIHJlYXNvbjogJ0luY29ycmVjdGx5IGNsb3NlZCBjb21tZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBgLS0+YCB0byBjbG9zZSB0aGUgY29tbWVudCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGluY29ycmVjdGx5T3BlbmVkQ29tbWVudDoge1xuICAgIHJlYXNvbjogJ0luY29ycmVjdGx5IG9wZW5lZCBjb21tZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYDwhLS1gIHRvIG9wZW4gdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBpbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lOiB7XG4gICAgcmVhc29uOiAnSW52YWxpZCBzZXF1ZW5jZSBhZnRlciBkb2N0eXBlIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBzZXF1ZW5jZSBhdCBgJWNgLiBFeHBlY3RlZCBgcHVibGljYCBvciBgc3lzdGVtYCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGludmFsaWRGaXJzdENoYXJhY3Rlck9mVGFnTmFtZToge1xuICAgIHJlYXNvbjogJ0ludmFsaWQgZmlyc3QgY2hhcmFjdGVyIGluIHRhZyBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYW4gQVNDSUkgbGV0dGVyIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNwbGFjZWREb2N0eXBlOiB7XG4gICAgcmVhc29uOiAnTWlzcGxhY2VkIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBkb2N0eXBlLiBFeHBlY3RlZCBkb2N0eXBlIGJlZm9yZSBoZWFkJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNwbGFjZWRTdGFydFRhZ0ZvckhlYWRFbGVtZW50OiB7XG4gICAgcmVhc29uOiAnTWlzcGxhY2VkIGA8aGVhZD5gIHN0YXJ0IHRhZycsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBzdGFydCB0YWcgYDxoZWFkPmAuIEV4cGVjdGVkIGA8aGVhZD5gIGRpcmVjdGx5IGFmdGVyIGRvY3R5cGUnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdBdHRyaWJ1dGVWYWx1ZToge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgYXR0cmlidXRlIHZhbHVlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlYy0xYC4gRXhwZWN0ZWQgYW4gYXR0cmlidXRlIHZhbHVlIG9yIG5vIGAlYy0xYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0RvY3R5cGU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIGRvY3R5cGUgYmVmb3JlIG90aGVyIGNvbnRlbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnRXhwZWN0ZWQgYSBgPCFkb2N0eXBlIGh0bWw+YCBiZWZvcmUgYW55dGhpbmcgZWxzZScsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0RvY3R5cGVOYW1lOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBkb2N0eXBlIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBkb2N0eXBlIGVuZCBhdCBgJWNgLiBFeHBlY3RlZCBgaHRtbGAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdEb2N0eXBlUHVibGljSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgcHVibGljIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGlkZW50aWZpZXIgZm9yIGBwdWJsaWNgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHN5c3RlbSBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgaWRlbnRpZmllciBmb3IgYHN5c3RlbWAgaW5zdGVhZCAoc3VnZ2VzdGVkOiBgXCJhYm91dDpsZWdhY3ktY29tcGF0XCJgKSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdFbmRUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBuYW1lIGluIGVuZCB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBhbiBBU0NJSSBsZXR0ZXIgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBxdW90ZSBiZWZvcmUgcHVibGljIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGBcImAgb3IgYFxcJ2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBxdW90ZSBiZWZvcmUgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGBcImAgb3IgYFxcJ2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdTZW1pY29sb25BZnRlckNoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgc2VtaWNvbG9uIGFmdGVyIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBgO2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZDoge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgd2hpdGVzcGFjZSBhZnRlciBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGFmdGVyIHN5c3RlbSBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGJlZm9yZSBkb2N0eXBlIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5BdHRyaWJ1dGVzOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGJldHdlZW4gYXR0cmlidXRlcycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyczoge1xuICAgIHJlYXNvbjpcbiAgICAgICdNaXNzaW5nIHdoaXRlc3BhY2UgYmV0d2VlbiBwdWJsaWMgYW5kIHN5c3RlbSBpZGVudGlmaWVycyBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbmVzdGVkQ29tbWVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbmVzdGVkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgPCEtLWAuIEV4cGVjdGVkIGAtLT5gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbmVzdGVkTm9zY3JpcHRJbkhlYWQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG5lc3RlZCBgPG5vc2NyaXB0PmAgaW4gYDxoZWFkPmAnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYDxub3NjcmlwdD5gLiBFeHBlY3RlZCBhIGNsb3NpbmcgdGFnIG9yIGEgbWV0YSBlbGVtZW50JyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBub25Db25mb3JtaW5nRG9jdHlwZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbm9uLWNvbmZvcm1pbmcgZG9jdHlwZSBkZWNsYXJhdGlvbicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnRXhwZWN0ZWQgYDwhZG9jdHlwZSBodG1sPmAgb3IgYDwhZG9jdHlwZSBodG1sIHN5c3RlbSBcImFib3V0OmxlZ2FjeS1jb21wYXRcIj5gJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXM6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHRyYWlsaW5nIHNsYXNoIG9uIHN0YXJ0IHRhZyBvZiBub24tdm9pZCBlbGVtZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYC9gLiBFeHBlY3RlZCBgPmAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjpcbiAgICAgICdVbmV4cGVjdGVkIG5vbmNoYXJhY3RlciBjb2RlIHBvaW50IHJlZmVyZW5jZWQgYnkgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQuIERvIG5vdCB1c2Ugbm9uY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbm9uY2hhcmFjdGVyIGNoYXJhY3RlcicsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQgYCV4YC4gRG8gbm90IHVzZSBub25jaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBudWxsQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBOVUxMIGNoYXJhY3RlciByZWZlcmVuY2VkIGJ5IGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBjb2RlIHBvaW50LiBEbyBub3QgdXNlIE5VTEwgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgb3BlbkVsZW1lbnRzTGVmdEFmdGVyRW9mOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBjbG9zaW5nIHRhZyBpbnN0ZWFkJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBzdXJyb2dhdGVDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgcmVmZXJlbmNlZCBieSBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQuIERvIG5vdCB1c2UgbG9uZSBzdXJyb2dhdGUgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgc3Vycm9nYXRlSW5JbnB1dFN0cmVhbToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc3Vycm9nYXRlIGNoYXJhY3RlcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBjb2RlIHBvaW50IGAleGAuIERvIG5vdCB1c2UgbG9uZSBzdXJyb2dhdGUgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZENoYXJhY3RlckFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdJbnZhbGlkIGNoYXJhY3RlciBhZnRlciBzeXN0ZW0gaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyIGF0IGAlY2AuIEV4cGVjdGVkIGA+YCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNoYXJhY3RlciBpbiBhdHRyaWJ1dGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCB3aGl0ZXNwYWNlLCBgL2AsIGA+YCwgYD1gLCBvciBwcm9iYWJseSBhbiBBU0NJSSBsZXR0ZXInXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkQ2hhcmFjdGVySW5VbnF1b3RlZEF0dHJpYnV0ZVZhbHVlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBjaGFyYWN0ZXIgaW4gdW5xdW90ZWQgYXR0cmlidXRlIHZhbHVlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gUXVvdGUgdGhlIGF0dHJpYnV0ZSB2YWx1ZSB0byBpbmNsdWRlIGl0J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlcXVhbHMgc2lnbiBiZWZvcmUgYXR0cmlidXRlIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBBZGQgYW4gYXR0cmlidXRlIG5hbWUgYmVmb3JlIGl0J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZE51bGxDaGFyYWN0ZXI6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIE5VTEwgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQgYCV4YC4gRG8gbm90IHVzZSBOVUxMIGNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRRdWVzdGlvbk1hcmtJbnN0ZWFkT2ZUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBxdWVzdGlvbiBtYXJrIGluc3RlYWQgb2YgdGFnIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBhbiBBU0NJSSBsZXR0ZXIgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRTb2xpZHVzSW5UYWc6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHNsYXNoIGluIHRhZycsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWMtMWAuIEV4cGVjdGVkIGl0IGZvbGxvd2VkIGJ5IGA+YCBvciBpbiBhIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmtub3duTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHVua25vd24gbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBjaGFyYWN0ZXIgcmVmZXJlbmNlLiBFeHBlY3RlZCBrbm93biBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcydcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3BhcnNlNScpLlBhcnNlckVycm9yfSBQYXJzZXJFcnJvclxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUnKS5WYWx1ZX0gVmFsdWVcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtrZXlvZiBlcnJvcnN9IEVycm9yQ29kZVxuICogICBLbm93biBuYW1lcyBvZiBwYXJzZSBlcnJvcnMuXG4gKlxuICogQHR5cGVkZWYge1BhcnRpYWw8UmVjb3JkPEVycm9yQ29kZSwgRXJyb3JTZXZlcml0eSB8IG51bGwgfCB1bmRlZmluZWQ+Pn0gRXJyb3JPcHRpb25zXG4gKiAgIE9wdGlvbnMgdGhhdCBkZWZpbmUgdGhlIHNldmVyaXR5IG9mIGVycm9ycy5cbiAqXG4gKiBAdHlwZWRlZiB7Ym9vbGVhbiB8IDAgfCAxIHwgMn0gRXJyb3JTZXZlcml0eVxuICogICBFcnJvciBzZXZlcml0eTpcbiAqXG4gKiAgICogYDBgIG9yIGBmYWxzZWBcbiAqICAgICBcdTIwMTQgdHVybiB0aGUgcGFyc2UgZXJyb3Igb2ZmXG4gKiAgICogYDFgIG9yIGB0cnVlYFxuICogICAgIFx1MjAxNCB0dXJuIHRoZSBwYXJzZSBlcnJvciBpbnRvIGEgd2FybmluZ1xuICogICAqIGAyYFxuICogICAgIFx1MjAxNCB0dXJuIHRoZSBwYXJzZSBlcnJvciBpbnRvIGFuIGFjdHVhbCBlcnJvcjogcHJvY2Vzc2luZyBzdG9wcy5cbiAqXG4gKiBAdHlwZWRlZiBFeHRyYU9wdGlvbnNcbiAqICAgT3B0aW9ucyB0aGF0IGRlZmluZSBob3cgdG8gcGFyc2UgSFRNTC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtmcmFnbWVudD1mYWxzZV1cbiAqICAgU3BlY2lmeSB3aGV0aGVyIHRvIHBhcnNlIGEgZnJhZ21lbnQsIGluc3RlYWQgb2YgYSBjb21wbGV0ZSBkb2N1bWVudFxuICogICAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBJbiBkb2N1bWVudCBtb2RlLCB1bm9wZW5lZCBgaHRtbGAsIGBoZWFkYCwgYW5kIGBib2R5YCBlbGVtZW50cyBhcmUgb3BlbmVkXG4gKiAgIGluIGp1c3QgdGhlIHJpZ2h0IHBsYWNlcy5cbiAqIEBwcm9wZXJ0eSB7T25FcnJvciB8IG51bGwgfCB1bmRlZmluZWR9IFtvbmVycm9yXVxuICogICBDYWxsIGBvbmVycm9yYCB3aXRoIHBhcnNlIGVycm9ycyB3aGlsZSBwYXJzaW5nIChvcHRpb25hbCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogcGFyc2UgZXJyb3JzIGFyZSBjdXJyZW50bHkgYmVpbmcgYWRkZWQgdG8gSFRNTC5cbiAqICAgPiBOb3QgYWxsIGVycm9ycyBlbWl0dGVkIGJ5IHBhcnNlNSAob3IgdXMpIGFyZSBzcGVjY2VkIHlldC5cbiAqICAgPiBTb21lIGRvY3VtZW50YXRpb24gbWF5IHN0aWxsIGJlIG1pc3NpbmcuXG4gKlxuICogICBTcGVjaWZpYyBydWxlcyBjYW4gYmUgdHVybmVkIG9mZiBieSBzZXR0aW5nIHRoZW0gdG8gYGZhbHNlYCAob3IgYDBgKS5cbiAqICAgVGhlIGRlZmF1bHQsIHdoZW4gYGVtaXRQYXJzZUVycm9yczogdHJ1ZWAsIGlzIGB0cnVlYCAob3IgYDFgKSwgYW5kIG1lYW5zXG4gKiAgIHRoYXQgcnVsZXMgZW1pdCBhcyB3YXJuaW5ncy5cbiAqICAgUnVsZXMgY2FuIGFsc28gYmUgY29uZmlndXJlZCB3aXRoIGAyYCwgdG8gdHVybiB0aGVtIGludG8gZmF0YWwgZXJyb3JzLlxuICpcbiAqIEB0eXBlZGVmIHtPbWl0PGltcG9ydCgnaGFzdC11dGlsLWZyb20tcGFyc2U1JykuT3B0aW9ucywgJ2ZpbGUnPn0gRnJvbVBhcnNlNU9wdGlvbnNcbiAqICAgT3B0aW9ucyB0aGF0IGNhbiBiZSBwYXNzZWQgdGhyb3VnaCB0byBgaGFzdC11dGlsLWZyb20tcGFyc2U1YC5cbiAqXG4gKiBAY2FsbGJhY2sgT25FcnJvclxuICogICBIYW5kbGUgcGFyc2UgZXJyb3JzLlxuICogQHBhcmFtIHtWRmlsZU1lc3NhZ2V9IGVycm9yXG4gKiAgIE1lc3NhZ2UuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkIHwgdm9pZH1cbiAqICAgTm90aGluZy5cbiAqXG4gKiAgIE5vdGU6IGB2b2lkYCBpbmNsdWRlZCB1bnRpbCBUUyBpbmZlcnMgYHVuZGVmaW5lZGAgbmljZWx5LlxuICpcbiAqIEB0eXBlZGVmIHtGcm9tUGFyc2U1T3B0aW9ucyAmIEVycm9yT3B0aW9ucyAmIEV4dHJhT3B0aW9uc30gT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICovXG5cbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5pbXBvcnQge2Zyb21QYXJzZTV9IGZyb20gJ2hhc3QtdXRpbC1mcm9tLXBhcnNlNSdcbmltcG9ydCB7cGFyc2UsIHBhcnNlRnJhZ21lbnR9IGZyb20gJ3BhcnNlNSdcbmltcG9ydCB7VkZpbGV9IGZyb20gJ3ZmaWxlJ1xuaW1wb3J0IHtWRmlsZU1lc3NhZ2V9IGZyb20gJ3ZmaWxlLW1lc3NhZ2UnXG5pbXBvcnQge2Vycm9yc30gZnJvbSAnLi9lcnJvcnMuanMnXG5cbmNvbnN0IGJhc2UgPSAnaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3BhcnNlLWVycm9yLSdcblxuY29uc3QgZGFzaFRvQ2FtZWxSZSA9IC8tW2Etel0vZ1xuY29uc3QgZm9ybWF0Q1JlID0gLyVjKD86KFstK10pKFxcZCspKT8vZ1xuY29uc3QgZm9ybWF0WFJlID0gLyV4L2dcblxuY29uc3QgZmF0YWxpdGllcyA9IHsyOiB0cnVlLCAxOiBmYWxzZSwgMDogbnVsbH1cblxuLyoqIEB0eXBlIHtSZWFkb25seTxPcHRpb25zPn0gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKlxuICogVHVybiBzZXJpYWxpemVkIEhUTUwgaW50byBhIGhhc3QgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge1ZGaWxlIHwgVmFsdWV9IHZhbHVlXG4gKiAgIFNlcmlhbGl6ZWQgSFRNTCB0byBwYXJzZS5cbiAqIEBwYXJhbSB7UmVhZG9ubHk8T3B0aW9ucz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge1Jvb3R9XG4gKiAgIFRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tSHRtbCh2YWx1ZSwgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwgZW1wdHlPcHRpb25zXG4gIGNvbnN0IG9uZXJyb3IgPSBzZXR0aW5ncy5vbmVycm9yXG4gIGNvbnN0IGZpbGUgPSB2YWx1ZSBpbnN0YW5jZW9mIFZGaWxlID8gdmFsdWUgOiBuZXcgVkZpbGUodmFsdWUpXG4gIGNvbnN0IGZuID0gc2V0dGluZ3MuZnJhZ21lbnQgPyBwYXJzZUZyYWdtZW50IDogcGFyc2VcbiAgY29uc3QgZG9jID0gU3RyaW5nKGZpbGUpXG4gIGNvbnN0IHA1ZG9jID0gZm4oZG9jLCB7XG4gICAgc291cmNlQ29kZUxvY2F0aW9uSW5mbzogdHJ1ZSxcbiAgICAvLyBOb3RlIGBwYXJzZTVgIHR5cGVzIGN1cnJlbnRseSBkbyBub3QgYWxsb3cgYHVuZGVmaW5lZGAuXG4gICAgb25QYXJzZUVycm9yOiBzZXR0aW5ncy5vbmVycm9yID8gaW50ZXJuYWxPbmVycm9yIDogbnVsbCxcbiAgICBzY3JpcHRpbmdFbmFibGVkOiBmYWxzZVxuICB9KVxuXG4gIC8vIGBwYXJzZTVgIHJldHVybnMgZG9jdW1lbnQgd2hpY2ggYXJlIGFsd2F5cyBtYXBwZWQgdG8gcm9vdHMuXG4gIHJldHVybiAvKiogQHR5cGUge1Jvb3R9ICovIChcbiAgICBmcm9tUGFyc2U1KHA1ZG9jLCB7XG4gICAgICBmaWxlLFxuICAgICAgc3BhY2U6IHNldHRpbmdzLnNwYWNlLFxuICAgICAgdmVyYm9zZTogc2V0dGluZ3MudmVyYm9zZVxuICAgIH0pXG4gIClcblxuICAvKipcbiAgICogSGFuZGxlIGEgcGFyc2UgZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFyc2VyRXJyb3J9IGVycm9yXG4gICAqICAgUGFyc2U1IGVycm9yLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBpbnRlcm5hbE9uZXJyb3IoZXJyb3IpIHtcbiAgICBjb25zdCBjb2RlID0gZXJyb3IuY29kZVxuICAgIGNvbnN0IG5hbWUgPSBjYW1lbGNhc2UoY29kZSlcbiAgICBjb25zdCBzZXR0aW5nID0gc2V0dGluZ3NbbmFtZV1cbiAgICBjb25zdCBjb25maWcgPSBzZXR0aW5nID09PSBudWxsIHx8IHNldHRpbmcgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBzZXR0aW5nXG4gICAgY29uc3QgbGV2ZWwgPSB0eXBlb2YgY29uZmlnID09PSAnbnVtYmVyJyA/IGNvbmZpZyA6IGNvbmZpZyA/IDEgOiAwXG5cbiAgICBpZiAobGV2ZWwpIHtcbiAgICAgIGNvbnN0IGluZm8gPSBlcnJvcnNbbmFtZV1cbiAgICAgIGFzc2VydChpbmZvLCAnZXhwZWN0ZWQga25vd24gZXJyb3IgZnJvbSBgcGFyc2U1YCcpXG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVkZpbGVNZXNzYWdlKGZvcm1hdChpbmZvLnJlYXNvbiksIHtcbiAgICAgICAgcGxhY2U6IHtcbiAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgbGluZTogZXJyb3Iuc3RhcnRMaW5lLFxuICAgICAgICAgICAgY29sdW1uOiBlcnJvci5zdGFydENvbCxcbiAgICAgICAgICAgIG9mZnNldDogZXJyb3Iuc3RhcnRPZmZzZXRcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVuZDoge1xuICAgICAgICAgICAgbGluZTogZXJyb3IuZW5kTGluZSxcbiAgICAgICAgICAgIGNvbHVtbjogZXJyb3IuZW5kQ29sLFxuICAgICAgICAgICAgb2Zmc2V0OiBlcnJvci5lbmRPZmZzZXRcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJ1bGVJZDogY29kZSxcbiAgICAgICAgc291cmNlOiAnaGFzdC11dGlsLWZyb20taHRtbCdcbiAgICAgIH0pXG5cbiAgICAgIGlmIChmaWxlLnBhdGgpIHtcbiAgICAgICAgbWVzc2FnZS5maWxlID0gZmlsZS5wYXRoXG4gICAgICAgIG1lc3NhZ2UubmFtZSA9IGZpbGUucGF0aCArICc6JyArIG1lc3NhZ2UubmFtZVxuICAgICAgfVxuXG4gICAgICBtZXNzYWdlLmZhdGFsID0gZmF0YWxpdGllc1tsZXZlbF1cbiAgICAgIG1lc3NhZ2Uubm90ZSA9IGZvcm1hdChpbmZvLmRlc2NyaXB0aW9uKVxuICAgICAgbWVzc2FnZS51cmwgPSBpbmZvLnVybCA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiBiYXNlICsgY29kZVxuXG4gICAgICBhc3NlcnQob25lcnJvciwgJ2BpbnRlcm5hbE9uZXJyb3JgIGlzIG5vdCBwYXNzZWQgaWYgYG9uZXJyb3JgIGlzIG5vdCBzZXQnKVxuICAgICAgb25lcnJvcihtZXNzYWdlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvcm1hdCBhIGh1bWFuIHJlYWRhYmxlIHN0cmluZyBhYm91dCBhbiBlcnJvci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgICAqICAgVmFsdWUgdG8gZm9ybWF0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICogICBGb3JtYXR0ZWQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZm9ybWF0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUucmVwbGFjZShmb3JtYXRDUmUsIGZvcm1hdEMpLnJlcGxhY2UoZm9ybWF0WFJlLCBmb3JtYXRYKVxuXG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdCB0aGUgY2hhcmFjdGVyLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBfXG4gICAgICAgKiAgIE1hdGNoLlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9ICQxXG4gICAgICAgKiAgIFNpZ24gKGAtYCBvciBgK2AsIG9wdGlvbmFsKS5cbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSAkMlxuICAgICAgICogICBPZmZzZXQuXG4gICAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAgICogICBGb3JtYXR0ZWQuXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGZvcm1hdEMoXywgJDEsICQyKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9XG4gICAgICAgICAgKCQyID8gTnVtYmVyLnBhcnNlSW50KCQyLCAxMCkgOiAwKSAqICgkMSA9PT0gJy0nID8gLTEgOiAxKVxuICAgICAgICBjb25zdCBjaGFyID0gZG9jLmNoYXJBdChlcnJvci5zdGFydE9mZnNldCArIG9mZnNldClcbiAgICAgICAgcmV0dXJuIHZpc3VhbGl6ZUNoYXJhY3RlcihjaGFyKVxuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdCB0aGUgY2hhcmFjdGVyIGNvZGUuXG4gICAgICAgKlxuICAgICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgICAqICAgRm9ybWF0dGVkLlxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBmb3JtYXRYKCkge1xuICAgICAgICByZXR1cm4gdmlzdWFsaXplQ2hhcmFjdGVyQ29kZShkb2MuY2hhckNvZGVBdChlcnJvci5zdGFydE9mZnNldCkpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIEVycm9yIGNvZGUgaW4gZGFzaCBjYXNlLlxuICogQHJldHVybnMge0Vycm9yQ29kZX1cbiAqICAgRXJyb3IgY29kZSBpbiBjYW1lbGNhc2UuXG4gKi9cbmZ1bmN0aW9uIGNhbWVsY2FzZSh2YWx1ZSkge1xuICAvLyBUaGlzIHNob3VsZCBtYXRjaCBhbiBlcnJvciBjb2RlLlxuICByZXR1cm4gLyoqIEB0eXBlIHtFcnJvckNvZGV9ICovICh2YWx1ZS5yZXBsYWNlKGRhc2hUb0NhbWVsUmUsIGRhc2hUb0NhbWVsKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAqICAgTWF0Y2guXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDYW1lbGNhc2VkLlxuICovXG5mdW5jdGlvbiBkYXNoVG9DYW1lbCgkMCkge1xuICByZXR1cm4gJDAuY2hhckF0KDEpLnRvVXBwZXJDYXNlKClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhclxuICogICBDaGFyYWN0ZXIuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGb3JtYXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHZpc3VhbGl6ZUNoYXJhY3RlcihjaGFyKSB7XG4gIHJldHVybiBjaGFyID09PSAnYCcgPyAnYCBgIGAnIDogY2hhclxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSBjaGFyQ29kZVxuICogICBDaGFyYWN0ZXIgY29kZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZvcm1hdHRlZC5cbiAqL1xuZnVuY3Rpb24gdmlzdWFsaXplQ2hhcmFjdGVyQ29kZShjaGFyQ29kZSkge1xuICByZXR1cm4gJzB4JyArIGNoYXJDb2RlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpXG59XG4iLCAiLyoqXG4gKiBMaXN0IG9mIEhUTUwgdm9pZCB0YWcgbmFtZXMuXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBodG1sVm9pZEVsZW1lbnRzID0gW1xuICAnYXJlYScsXG4gICdiYXNlJyxcbiAgJ2Jhc2Vmb250JyxcbiAgJ2Jnc291bmQnLFxuICAnYnInLFxuICAnY29sJyxcbiAgJ2NvbW1hbmQnLFxuICAnZW1iZWQnLFxuICAnZnJhbWUnLFxuICAnaHInLFxuICAnaW1hZ2UnLFxuICAnaW1nJyxcbiAgJ2lucHV0JyxcbiAgJ2tleWdlbicsXG4gICdsaW5rJyxcbiAgJ21ldGEnLFxuICAncGFyYW0nLFxuICAnc291cmNlJyxcbiAgJ3RyYWNrJyxcbiAgJ3dicidcbl1cbiIsICIvKipcbiAqIEBjYWxsYmFjayBIYW5kbGVyXG4gKiAgIEhhbmRsZSBhIHZhbHVlLCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYSBjZXJ0YWluIHZhbHVlLlxuICogICBUaGUgSUQgZmllbGQgaXMgcGFzc2VkIHRvIGB6d2l0Y2hgLCBhbmQgaXRcdTIwMTlzIHZhbHVlIGlzIHRoaXMgZnVuY3Rpb25cdTIwMTlzXG4gKiAgIHBsYWNlIG9uIHRoZSBgaGFuZGxlcnNgIHJlY29yZC5cbiAqIEBwYXJhbSB7Li4uYW55fSBwYXJhbWV0ZXJzXG4gKiAgIEFyYml0cmFyeSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgendpdGNoLlxuICogICBUaGUgZmlyc3Qgd2lsbCBiZSBhbiBvYmplY3Qgd2l0aCBhIGNlcnRhaW4gSUQgZmllbGQgc2V0IHRvIGEgY2VydGFpbiB2YWx1ZS5cbiAqIEByZXR1cm5zIHthbnl9XG4gKiAgIEFueXRoaW5nIVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIFVua25vd25IYW5kbGVyXG4gKiAgIEhhbmRsZSB2YWx1ZXMgdGhhdCBkbyBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZCwgYnV0IGl0XHUyMDE5cyBzZXQgdG8gYSB2YWx1ZVxuICogICB0aGF0IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGBoYW5kbGVyc2AgcmVjb3JkLlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICBBbiBvYmplY3Qgd2l0aCBhIGNlcnRhaW4gSUQgZmllbGQgc2V0IHRvIGFuIHVua25vd24gdmFsdWUuXG4gKiBAcGFyYW0gey4uLmFueX0gcmVzdFxuICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAqIEByZXR1cm5zIHthbnl9XG4gKiAgIEFueXRoaW5nIVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIEludmFsaWRIYW5kbGVyXG4gKiAgIEhhbmRsZSB2YWx1ZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQuXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIEFueSB1bmtub3duIHZhbHVlLlxuICogQHBhcmFtIHsuLi5hbnl9IHJlc3RcbiAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gKiBAcmV0dXJucyB7dm9pZHxudWxsfHVuZGVmaW5lZHxuZXZlcn1cbiAqICAgVGhpcyBzaG91bGQgY3Jhc2ggb3IgcmV0dXJuIG5vdGhpbmcuXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge0ludmFsaWRIYW5kbGVyfSBbSW52YWxpZD1JbnZhbGlkSGFuZGxlcl1cbiAqIEB0ZW1wbGF0ZSB7VW5rbm93bkhhbmRsZXJ9IFtVbmtub3duPVVua25vd25IYW5kbGVyXVxuICogQHRlbXBsYXRlIHtSZWNvcmQ8c3RyaW5nLCBIYW5kbGVyPn0gW0hhbmRsZXJzPVJlY29yZDxzdHJpbmcsIEhhbmRsZXI+XVxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uIChyZXF1aXJlZCkuXG4gKiBAcHJvcGVydHkge0ludmFsaWR9IFtpbnZhbGlkXVxuICogICBIYW5kbGVyIHRvIHVzZSBmb3IgaW52YWxpZCB2YWx1ZXMuXG4gKiBAcHJvcGVydHkge1Vua25vd259IFt1bmtub3duXVxuICogICBIYW5kbGVyIHRvIHVzZSBmb3IgdW5rbm93biB2YWx1ZXMuXG4gKiBAcHJvcGVydHkge0hhbmRsZXJzfSBbaGFuZGxlcnNdXG4gKiAgIEhhbmRsZXJzIHRvIHVzZS5cbiAqL1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEhhbmRsZSB2YWx1ZXMgYmFzZWQgb24gYSBmaWVsZC5cbiAqXG4gKiBAdGVtcGxhdGUge0ludmFsaWRIYW5kbGVyfSBbSW52YWxpZD1JbnZhbGlkSGFuZGxlcl1cbiAqIEB0ZW1wbGF0ZSB7VW5rbm93bkhhbmRsZXJ9IFtVbmtub3duPVVua25vd25IYW5kbGVyXVxuICogQHRlbXBsYXRlIHtSZWNvcmQ8c3RyaW5nLCBIYW5kbGVyPn0gW0hhbmRsZXJzPVJlY29yZDxzdHJpbmcsIEhhbmRsZXI+XVxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogICBGaWVsZCB0byBzd2l0Y2ggb24uXG4gKiBAcGFyYW0ge09wdGlvbnM8SW52YWxpZCwgVW5rbm93biwgSGFuZGxlcnM+fSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAocmVxdWlyZWQpLlxuICogQHJldHVybnMge3t1bmtub3duOiBVbmtub3duLCBpbnZhbGlkOiBJbnZhbGlkLCBoYW5kbGVyczogSGFuZGxlcnMsICguLi5wYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzPEhhbmRsZXJzW2tleW9mIEhhbmRsZXJzXT4pOiBSZXR1cm5UeXBlPEhhbmRsZXJzW2tleW9mIEhhbmRsZXJzXT4sICguLi5wYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzPFVua25vd24+KTogUmV0dXJuVHlwZTxVbmtub3duPn19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB6d2l0Y2goa2V5LCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgb25lIHZhbHVlLlxuICAgKlxuICAgKiBCYXNlZCBvbiB0aGUgYm91bmQgYGtleWAsIGEgcmVzcGVjdGl2ZSBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkLlxuICAgKiBJZiBgdmFsdWVgIGlzIG5vdCBhbiBvYmplY3QsIG9yIGRvZXNuXHUyMDE5dCBoYXZlIGEgYGtleWAgcHJvcGVydHksIHRoZSBzcGVjaWFsXG4gICAqIFx1MjAxQ2ludmFsaWRcdTIwMUQgaGFuZGxlciB3aWxsIGJlIGNhbGxlZC5cbiAgICogSWYgYHZhbHVlYCBoYXMgYW4gdW5rbm93biBga2V5YCwgdGhlIHNwZWNpYWwgXHUyMDFDdW5rbm93blx1MjAxRCBoYW5kbGVyIHdpbGwgYmVcbiAgICogY2FsbGVkLlxuICAgKlxuICAgKiBBbGwgYXJndW1lbnRzLCBhbmQgdGhlIGNvbnRleHQgb2JqZWN0LCBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIGhhbmRsZXIsXG4gICAqIGFuZCBpdFx1MjAxOXMgcmVzdWx0IGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBAdGhpcyB7dW5rbm93bn1cbiAgICogICBBbnkgY29udGV4dCBvYmplY3QuXG4gICAqIEBwYXJhbSB7dW5rbm93bn0gW3ZhbHVlXVxuICAgKiAgIEFueSB2YWx1ZS5cbiAgICogQHBhcmFtIHsuLi51bmtub3dufSBwYXJhbWV0ZXJzXG4gICAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcn0gaW52YWxpZFxuICAgKiAgIEhhbmRsZSBmb3IgdmFsdWVzIHRoYXQgZG8gbm90IGhhdmUgYSBjZXJ0YWluIElEIGZpZWxkLlxuICAgKiBAcHJvcGVydHkge0hhbmRsZXJ9IHVua25vd25cbiAgICogICBIYW5kbGUgdmFsdWVzIHRoYXQgZG8gaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQsIGJ1dCBpdFx1MjAxOXMgc2V0IHRvIGEgdmFsdWVcbiAgICogICB0aGF0IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGBoYW5kbGVyc2AgcmVjb3JkLlxuICAgKiBAcHJvcGVydHkge0hhbmRsZXJzfSBoYW5kbGVyc1xuICAgKiAgIFJlY29yZCBvZiBoYW5kbGVycy5cbiAgICogQHJldHVybnMge3Vua25vd259XG4gICAqICAgQW55dGhpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBvbmUodmFsdWUsIC4uLnBhcmFtZXRlcnMpIHtcbiAgICAvKiogQHR5cGUge0hhbmRsZXJ8dW5kZWZpbmVkfSAqL1xuICAgIGxldCBmbiA9IG9uZS5pbnZhbGlkXG4gICAgY29uc3QgaGFuZGxlcnMgPSBvbmUuaGFuZGxlcnNcblxuICAgIGlmICh2YWx1ZSAmJiBvd24uY2FsbCh2YWx1ZSwga2V5KSkge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBJbmRleGFibGUuXG4gICAgICBjb25zdCBpZCA9IFN0cmluZyh2YWx1ZVtrZXldKVxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBJbmRleGFibGUuXG4gICAgICBmbiA9IG93bi5jYWxsKGhhbmRsZXJzLCBpZCkgPyBoYW5kbGVyc1tpZF0gOiBvbmUudW5rbm93blxuICAgIH1cblxuICAgIGlmIChmbikge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhpcywgdmFsdWUsIC4uLnBhcmFtZXRlcnMpXG4gICAgfVxuICB9XG5cbiAgb25lLmhhbmRsZXJzID0gc2V0dGluZ3MuaGFuZGxlcnMgfHwge31cbiAgb25lLmludmFsaWQgPSBzZXR0aW5ncy5pbnZhbGlkXG4gIG9uZS51bmtub3duID0gc2V0dGluZ3MudW5rbm93blxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IG1hdGNoZXMhXG4gIHJldHVybiBvbmVcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIENvcmVPcHRpb25zXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IFtzdWJzZXQ9W11dXG4gKiAgIFdoZXRoZXIgdG8gb25seSBlc2NhcGUgdGhlIGdpdmVuIHN1YnNldCBvZiBjaGFyYWN0ZXJzLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbZXNjYXBlT25seT1mYWxzZV1cbiAqICAgV2hldGhlciB0byBvbmx5IGVzY2FwZSBwb3NzaWJseSBkYW5nZXJvdXMgY2hhcmFjdGVycy5cbiAqICAgVGhvc2UgY2hhcmFjdGVycyBhcmUgYFwiYCwgYCZgLCBgJ2AsIGA8YCwgYD5gLCBhbmQgYGAgYCBgYC5cbiAqXG4gKiBAdHlwZWRlZiBGb3JtYXRPcHRpb25zXG4gKiBAcHJvcGVydHkgeyhjb2RlOiBudW1iZXIsIG5leHQ6IG51bWJlciwgb3B0aW9uczogQ29yZVdpdGhGb3JtYXRPcHRpb25zKSA9PiBzdHJpbmd9IGZvcm1hdFxuICogICBGb3JtYXQgc3RyYXRlZ3kuXG4gKlxuICogQHR5cGVkZWYge0NvcmVPcHRpb25zICYgRm9ybWF0T3B0aW9ucyAmIGltcG9ydCgnLi91dGlsL2Zvcm1hdC1zbWFydC5qcycpLkZvcm1hdFNtYXJ0T3B0aW9uc30gQ29yZVdpdGhGb3JtYXRPcHRpb25zXG4gKi9cblxuLyoqXG4gKiBFbmNvZGUgY2VydGFpbiBjaGFyYWN0ZXJzIGluIGB2YWx1ZWAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge0NvcmVXaXRoRm9ybWF0T3B0aW9uc30gb3B0aW9uc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvcmUodmFsdWUsIG9wdGlvbnMpIHtcbiAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKFxuICAgIG9wdGlvbnMuc3Vic2V0ID8gY2hhcmFjdGVyc1RvRXhwcmVzc2lvbihvcHRpb25zLnN1YnNldCkgOiAvW1wiJic8PmBdL2csXG4gICAgYmFzaWNcbiAgKVxuXG4gIGlmIChvcHRpb25zLnN1YnNldCB8fCBvcHRpb25zLmVzY2FwZU9ubHkpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgdmFsdWVcbiAgICAgIC8vIFN1cnJvZ2F0ZSBwYWlycy5cbiAgICAgIC5yZXBsYWNlKC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdL2csIHN1cnJvZ2F0ZSlcbiAgICAgIC8vIEJNUCBjb250cm9sIGNoYXJhY3RlcnMgKEMwIGV4Y2VwdCBmb3IgTEYsIENSLCBTUDsgREVMOyBhbmQgc29tZSBtb3JlXG4gICAgICAvLyBub24tQVNDSUkgb25lcykuXG4gICAgICAucmVwbGFjZShcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRyb2wtcmVnZXgsIHVuaWNvcm4vbm8taGV4LWVzY2FwZVxuICAgICAgICAvW1xceDAxLVxcdFxcdlxcZlxceDBFLVxceDFGXFx4N0ZcXHg4MVxceDhEXFx4OEZcXHg5MFxceDlEXFx4QTAtXFx1RkZGRl0vZyxcbiAgICAgICAgYmFzaWNcbiAgICAgIClcbiAgKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFpclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFsbFxuICAgKi9cbiAgZnVuY3Rpb24gc3Vycm9nYXRlKHBhaXIsIGluZGV4LCBhbGwpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5mb3JtYXQoXG4gICAgICAocGFpci5jaGFyQ29kZUF0KDApIC0gMHhkODAwKSAqIDB4NDAwICtcbiAgICAgICAgcGFpci5jaGFyQ29kZUF0KDEpIC1cbiAgICAgICAgMHhkYzAwICtcbiAgICAgICAgMHgxMDAwMCxcbiAgICAgIGFsbC5jaGFyQ29kZUF0KGluZGV4ICsgMiksXG4gICAgICBvcHRpb25zXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyYWN0ZXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbGxcbiAgICovXG4gIGZ1bmN0aW9uIGJhc2ljKGNoYXJhY3RlciwgaW5kZXgsIGFsbCkge1xuICAgIHJldHVybiBvcHRpb25zLmZvcm1hdChcbiAgICAgIGNoYXJhY3Rlci5jaGFyQ29kZUF0KDApLFxuICAgICAgYWxsLmNoYXJDb2RlQXQoaW5kZXggKyAxKSxcbiAgICAgIG9wdGlvbnNcbiAgICApXG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IHN1YnNldFxuICogQHJldHVybnMge1JlZ0V4cH1cbiAqL1xuZnVuY3Rpb24gY2hhcmFjdGVyc1RvRXhwcmVzc2lvbihzdWJzZXQpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCBncm91cHMgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgc3Vic2V0Lmxlbmd0aCkge1xuICAgIGdyb3Vwcy5wdXNoKHN1YnNldFtpbmRleF0ucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy5dL2csICdcXFxcJCYnKSlcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVnRXhwKCcoPzonICsgZ3JvdXBzLmpvaW4oJ3wnKSArICcpJywgJ2cnKVxufVxuIiwgIi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGNoYXJhY3RlcnMgYXMgaGV4YWRlY2ltYWwgcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IG9taXRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0hleGFkZWNpbWFsKGNvZGUsIG5leHQsIG9taXQpIHtcbiAgY29uc3QgdmFsdWUgPSAnJiN4JyArIGNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKClcbiAgcmV0dXJuIG9taXQgJiYgbmV4dCAmJiAhL1tcXGRBLUZhLWZdLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpXG4gICAgPyB2YWx1ZVxuICAgIDogdmFsdWUgKyAnOydcbn1cbiIsICIvKipcbiAqIENvbmZpZ3VyYWJsZSB3YXlzIHRvIGVuY29kZSBjaGFyYWN0ZXJzIGFzIGRlY2ltYWwgcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IG9taXRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0RlY2ltYWwoY29kZSwgbmV4dCwgb21pdCkge1xuICBjb25zdCB2YWx1ZSA9ICcmIycgKyBTdHJpbmcoY29kZSlcbiAgcmV0dXJuIG9taXQgJiYgbmV4dCAmJiAhL1xcZC8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKVxuICAgID8gdmFsdWVcbiAgICA6IHZhbHVlICsgJzsnXG59XG4iLCAiLyoqXG4gKiBMaXN0IG9mIGxlZ2FjeSBIVE1MIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIHRoYXQgZG9uXHUyMDE5dCBuZWVkIGEgdHJhaWxpbmcgc2VtaWNvbG9uLlxuICpcbiAqIEB0eXBlIHtBcnJheTxzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgY2hhcmFjdGVyRW50aXRpZXNMZWdhY3kgPSBbXG4gICdBRWxpZycsXG4gICdBTVAnLFxuICAnQWFjdXRlJyxcbiAgJ0FjaXJjJyxcbiAgJ0FncmF2ZScsXG4gICdBcmluZycsXG4gICdBdGlsZGUnLFxuICAnQXVtbCcsXG4gICdDT1BZJyxcbiAgJ0NjZWRpbCcsXG4gICdFVEgnLFxuICAnRWFjdXRlJyxcbiAgJ0VjaXJjJyxcbiAgJ0VncmF2ZScsXG4gICdFdW1sJyxcbiAgJ0dUJyxcbiAgJ0lhY3V0ZScsXG4gICdJY2lyYycsXG4gICdJZ3JhdmUnLFxuICAnSXVtbCcsXG4gICdMVCcsXG4gICdOdGlsZGUnLFxuICAnT2FjdXRlJyxcbiAgJ09jaXJjJyxcbiAgJ09ncmF2ZScsXG4gICdPc2xhc2gnLFxuICAnT3RpbGRlJyxcbiAgJ091bWwnLFxuICAnUVVPVCcsXG4gICdSRUcnLFxuICAnVEhPUk4nLFxuICAnVWFjdXRlJyxcbiAgJ1VjaXJjJyxcbiAgJ1VncmF2ZScsXG4gICdVdW1sJyxcbiAgJ1lhY3V0ZScsXG4gICdhYWN1dGUnLFxuICAnYWNpcmMnLFxuICAnYWN1dGUnLFxuICAnYWVsaWcnLFxuICAnYWdyYXZlJyxcbiAgJ2FtcCcsXG4gICdhcmluZycsXG4gICdhdGlsZGUnLFxuICAnYXVtbCcsXG4gICdicnZiYXInLFxuICAnY2NlZGlsJyxcbiAgJ2NlZGlsJyxcbiAgJ2NlbnQnLFxuICAnY29weScsXG4gICdjdXJyZW4nLFxuICAnZGVnJyxcbiAgJ2RpdmlkZScsXG4gICdlYWN1dGUnLFxuICAnZWNpcmMnLFxuICAnZWdyYXZlJyxcbiAgJ2V0aCcsXG4gICdldW1sJyxcbiAgJ2ZyYWMxMicsXG4gICdmcmFjMTQnLFxuICAnZnJhYzM0JyxcbiAgJ2d0JyxcbiAgJ2lhY3V0ZScsXG4gICdpY2lyYycsXG4gICdpZXhjbCcsXG4gICdpZ3JhdmUnLFxuICAnaXF1ZXN0JyxcbiAgJ2l1bWwnLFxuICAnbGFxdW8nLFxuICAnbHQnLFxuICAnbWFjcicsXG4gICdtaWNybycsXG4gICdtaWRkb3QnLFxuICAnbmJzcCcsXG4gICdub3QnLFxuICAnbnRpbGRlJyxcbiAgJ29hY3V0ZScsXG4gICdvY2lyYycsXG4gICdvZ3JhdmUnLFxuICAnb3JkZicsXG4gICdvcmRtJyxcbiAgJ29zbGFzaCcsXG4gICdvdGlsZGUnLFxuICAnb3VtbCcsXG4gICdwYXJhJyxcbiAgJ3BsdXNtbicsXG4gICdwb3VuZCcsXG4gICdxdW90JyxcbiAgJ3JhcXVvJyxcbiAgJ3JlZycsXG4gICdzZWN0JyxcbiAgJ3NoeScsXG4gICdzdXAxJyxcbiAgJ3N1cDInLFxuICAnc3VwMycsXG4gICdzemxpZycsXG4gICd0aG9ybicsXG4gICd0aW1lcycsXG4gICd1YWN1dGUnLFxuICAndWNpcmMnLFxuICAndWdyYXZlJyxcbiAgJ3VtbCcsXG4gICd1dW1sJyxcbiAgJ3lhY3V0ZScsXG4gICd5ZW4nLFxuICAneXVtbCdcbl1cbiIsICIvKipcbiAqIE1hcCBvZiBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBmcm9tIEhUTUwgNC5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckVudGl0aWVzSHRtbDQgPSB7XG4gIG5ic3A6ICdcdTAwQTAnLFxuICBpZXhjbDogJ1x1MDBBMScsXG4gIGNlbnQ6ICdcdTAwQTInLFxuICBwb3VuZDogJ1x1MDBBMycsXG4gIGN1cnJlbjogJ1x1MDBBNCcsXG4gIHllbjogJ1x1MDBBNScsXG4gIGJydmJhcjogJ1x1MDBBNicsXG4gIHNlY3Q6ICdcdTAwQTcnLFxuICB1bWw6ICdcdTAwQTgnLFxuICBjb3B5OiAnXHUwMEE5JyxcbiAgb3JkZjogJ1x1MDBBQScsXG4gIGxhcXVvOiAnXHUwMEFCJyxcbiAgbm90OiAnXHUwMEFDJyxcbiAgc2h5OiAnXHUwMEFEJyxcbiAgcmVnOiAnXHUwMEFFJyxcbiAgbWFjcjogJ1x1MDBBRicsXG4gIGRlZzogJ1x1MDBCMCcsXG4gIHBsdXNtbjogJ1x1MDBCMScsXG4gIHN1cDI6ICdcdTAwQjInLFxuICBzdXAzOiAnXHUwMEIzJyxcbiAgYWN1dGU6ICdcdTAwQjQnLFxuICBtaWNybzogJ1x1MDBCNScsXG4gIHBhcmE6ICdcdTAwQjYnLFxuICBtaWRkb3Q6ICdcdTAwQjcnLFxuICBjZWRpbDogJ1x1MDBCOCcsXG4gIHN1cDE6ICdcdTAwQjknLFxuICBvcmRtOiAnXHUwMEJBJyxcbiAgcmFxdW86ICdcdTAwQkInLFxuICBmcmFjMTQ6ICdcdTAwQkMnLFxuICBmcmFjMTI6ICdcdTAwQkQnLFxuICBmcmFjMzQ6ICdcdTAwQkUnLFxuICBpcXVlc3Q6ICdcdTAwQkYnLFxuICBBZ3JhdmU6ICdcdTAwQzAnLFxuICBBYWN1dGU6ICdcdTAwQzEnLFxuICBBY2lyYzogJ1x1MDBDMicsXG4gIEF0aWxkZTogJ1x1MDBDMycsXG4gIEF1bWw6ICdcdTAwQzQnLFxuICBBcmluZzogJ1x1MDBDNScsXG4gIEFFbGlnOiAnXHUwMEM2JyxcbiAgQ2NlZGlsOiAnXHUwMEM3JyxcbiAgRWdyYXZlOiAnXHUwMEM4JyxcbiAgRWFjdXRlOiAnXHUwMEM5JyxcbiAgRWNpcmM6ICdcdTAwQ0EnLFxuICBFdW1sOiAnXHUwMENCJyxcbiAgSWdyYXZlOiAnXHUwMENDJyxcbiAgSWFjdXRlOiAnXHUwMENEJyxcbiAgSWNpcmM6ICdcdTAwQ0UnLFxuICBJdW1sOiAnXHUwMENGJyxcbiAgRVRIOiAnXHUwMEQwJyxcbiAgTnRpbGRlOiAnXHUwMEQxJyxcbiAgT2dyYXZlOiAnXHUwMEQyJyxcbiAgT2FjdXRlOiAnXHUwMEQzJyxcbiAgT2NpcmM6ICdcdTAwRDQnLFxuICBPdGlsZGU6ICdcdTAwRDUnLFxuICBPdW1sOiAnXHUwMEQ2JyxcbiAgdGltZXM6ICdcdTAwRDcnLFxuICBPc2xhc2g6ICdcdTAwRDgnLFxuICBVZ3JhdmU6ICdcdTAwRDknLFxuICBVYWN1dGU6ICdcdTAwREEnLFxuICBVY2lyYzogJ1x1MDBEQicsXG4gIFV1bWw6ICdcdTAwREMnLFxuICBZYWN1dGU6ICdcdTAwREQnLFxuICBUSE9STjogJ1x1MDBERScsXG4gIHN6bGlnOiAnXHUwMERGJyxcbiAgYWdyYXZlOiAnXHUwMEUwJyxcbiAgYWFjdXRlOiAnXHUwMEUxJyxcbiAgYWNpcmM6ICdcdTAwRTInLFxuICBhdGlsZGU6ICdcdTAwRTMnLFxuICBhdW1sOiAnXHUwMEU0JyxcbiAgYXJpbmc6ICdcdTAwRTUnLFxuICBhZWxpZzogJ1x1MDBFNicsXG4gIGNjZWRpbDogJ1x1MDBFNycsXG4gIGVncmF2ZTogJ1x1MDBFOCcsXG4gIGVhY3V0ZTogJ1x1MDBFOScsXG4gIGVjaXJjOiAnXHUwMEVBJyxcbiAgZXVtbDogJ1x1MDBFQicsXG4gIGlncmF2ZTogJ1x1MDBFQycsXG4gIGlhY3V0ZTogJ1x1MDBFRCcsXG4gIGljaXJjOiAnXHUwMEVFJyxcbiAgaXVtbDogJ1x1MDBFRicsXG4gIGV0aDogJ1x1MDBGMCcsXG4gIG50aWxkZTogJ1x1MDBGMScsXG4gIG9ncmF2ZTogJ1x1MDBGMicsXG4gIG9hY3V0ZTogJ1x1MDBGMycsXG4gIG9jaXJjOiAnXHUwMEY0JyxcbiAgb3RpbGRlOiAnXHUwMEY1JyxcbiAgb3VtbDogJ1x1MDBGNicsXG4gIGRpdmlkZTogJ1x1MDBGNycsXG4gIG9zbGFzaDogJ1x1MDBGOCcsXG4gIHVncmF2ZTogJ1x1MDBGOScsXG4gIHVhY3V0ZTogJ1x1MDBGQScsXG4gIHVjaXJjOiAnXHUwMEZCJyxcbiAgdXVtbDogJ1x1MDBGQycsXG4gIHlhY3V0ZTogJ1x1MDBGRCcsXG4gIHRob3JuOiAnXHUwMEZFJyxcbiAgeXVtbDogJ1x1MDBGRicsXG4gIGZub2Y6ICdcdTAxOTInLFxuICBBbHBoYTogJ1x1MDM5MScsXG4gIEJldGE6ICdcdTAzOTInLFxuICBHYW1tYTogJ1x1MDM5MycsXG4gIERlbHRhOiAnXHUwMzk0JyxcbiAgRXBzaWxvbjogJ1x1MDM5NScsXG4gIFpldGE6ICdcdTAzOTYnLFxuICBFdGE6ICdcdTAzOTcnLFxuICBUaGV0YTogJ1x1MDM5OCcsXG4gIElvdGE6ICdcdTAzOTknLFxuICBLYXBwYTogJ1x1MDM5QScsXG4gIExhbWJkYTogJ1x1MDM5QicsXG4gIE11OiAnXHUwMzlDJyxcbiAgTnU6ICdcdTAzOUQnLFxuICBYaTogJ1x1MDM5RScsXG4gIE9taWNyb246ICdcdTAzOUYnLFxuICBQaTogJ1x1MDNBMCcsXG4gIFJobzogJ1x1MDNBMScsXG4gIFNpZ21hOiAnXHUwM0EzJyxcbiAgVGF1OiAnXHUwM0E0JyxcbiAgVXBzaWxvbjogJ1x1MDNBNScsXG4gIFBoaTogJ1x1MDNBNicsXG4gIENoaTogJ1x1MDNBNycsXG4gIFBzaTogJ1x1MDNBOCcsXG4gIE9tZWdhOiAnXHUwM0E5JyxcbiAgYWxwaGE6ICdcdTAzQjEnLFxuICBiZXRhOiAnXHUwM0IyJyxcbiAgZ2FtbWE6ICdcdTAzQjMnLFxuICBkZWx0YTogJ1x1MDNCNCcsXG4gIGVwc2lsb246ICdcdTAzQjUnLFxuICB6ZXRhOiAnXHUwM0I2JyxcbiAgZXRhOiAnXHUwM0I3JyxcbiAgdGhldGE6ICdcdTAzQjgnLFxuICBpb3RhOiAnXHUwM0I5JyxcbiAga2FwcGE6ICdcdTAzQkEnLFxuICBsYW1iZGE6ICdcdTAzQkInLFxuICBtdTogJ1x1MDNCQycsXG4gIG51OiAnXHUwM0JEJyxcbiAgeGk6ICdcdTAzQkUnLFxuICBvbWljcm9uOiAnXHUwM0JGJyxcbiAgcGk6ICdcdTAzQzAnLFxuICByaG86ICdcdTAzQzEnLFxuICBzaWdtYWY6ICdcdTAzQzInLFxuICBzaWdtYTogJ1x1MDNDMycsXG4gIHRhdTogJ1x1MDNDNCcsXG4gIHVwc2lsb246ICdcdTAzQzUnLFxuICBwaGk6ICdcdTAzQzYnLFxuICBjaGk6ICdcdTAzQzcnLFxuICBwc2k6ICdcdTAzQzgnLFxuICBvbWVnYTogJ1x1MDNDOScsXG4gIHRoZXRhc3ltOiAnXHUwM0QxJyxcbiAgdXBzaWg6ICdcdTAzRDInLFxuICBwaXY6ICdcdTAzRDYnLFxuICBidWxsOiAnXHUyMDIyJyxcbiAgaGVsbGlwOiAnXHUyMDI2JyxcbiAgcHJpbWU6ICdcdTIwMzInLFxuICBQcmltZTogJ1x1MjAzMycsXG4gIG9saW5lOiAnXHUyMDNFJyxcbiAgZnJhc2w6ICdcdTIwNDQnLFxuICB3ZWllcnA6ICdcdTIxMTgnLFxuICBpbWFnZTogJ1x1MjExMScsXG4gIHJlYWw6ICdcdTIxMUMnLFxuICB0cmFkZTogJ1x1MjEyMicsXG4gIGFsZWZzeW06ICdcdTIxMzUnLFxuICBsYXJyOiAnXHUyMTkwJyxcbiAgdWFycjogJ1x1MjE5MScsXG4gIHJhcnI6ICdcdTIxOTInLFxuICBkYXJyOiAnXHUyMTkzJyxcbiAgaGFycjogJ1x1MjE5NCcsXG4gIGNyYXJyOiAnXHUyMUI1JyxcbiAgbEFycjogJ1x1MjFEMCcsXG4gIHVBcnI6ICdcdTIxRDEnLFxuICByQXJyOiAnXHUyMUQyJyxcbiAgZEFycjogJ1x1MjFEMycsXG4gIGhBcnI6ICdcdTIxRDQnLFxuICBmb3JhbGw6ICdcdTIyMDAnLFxuICBwYXJ0OiAnXHUyMjAyJyxcbiAgZXhpc3Q6ICdcdTIyMDMnLFxuICBlbXB0eTogJ1x1MjIwNScsXG4gIG5hYmxhOiAnXHUyMjA3JyxcbiAgaXNpbjogJ1x1MjIwOCcsXG4gIG5vdGluOiAnXHUyMjA5JyxcbiAgbmk6ICdcdTIyMEInLFxuICBwcm9kOiAnXHUyMjBGJyxcbiAgc3VtOiAnXHUyMjExJyxcbiAgbWludXM6ICdcdTIyMTInLFxuICBsb3dhc3Q6ICdcdTIyMTcnLFxuICByYWRpYzogJ1x1MjIxQScsXG4gIHByb3A6ICdcdTIyMUQnLFxuICBpbmZpbjogJ1x1MjIxRScsXG4gIGFuZzogJ1x1MjIyMCcsXG4gIGFuZDogJ1x1MjIyNycsXG4gIG9yOiAnXHUyMjI4JyxcbiAgY2FwOiAnXHUyMjI5JyxcbiAgY3VwOiAnXHUyMjJBJyxcbiAgaW50OiAnXHUyMjJCJyxcbiAgdGhlcmU0OiAnXHUyMjM0JyxcbiAgc2ltOiAnXHUyMjNDJyxcbiAgY29uZzogJ1x1MjI0NScsXG4gIGFzeW1wOiAnXHUyMjQ4JyxcbiAgbmU6ICdcdTIyNjAnLFxuICBlcXVpdjogJ1x1MjI2MScsXG4gIGxlOiAnXHUyMjY0JyxcbiAgZ2U6ICdcdTIyNjUnLFxuICBzdWI6ICdcdTIyODInLFxuICBzdXA6ICdcdTIyODMnLFxuICBuc3ViOiAnXHUyMjg0JyxcbiAgc3ViZTogJ1x1MjI4NicsXG4gIHN1cGU6ICdcdTIyODcnLFxuICBvcGx1czogJ1x1MjI5NScsXG4gIG90aW1lczogJ1x1MjI5NycsXG4gIHBlcnA6ICdcdTIyQTUnLFxuICBzZG90OiAnXHUyMkM1JyxcbiAgbGNlaWw6ICdcdTIzMDgnLFxuICByY2VpbDogJ1x1MjMwOScsXG4gIGxmbG9vcjogJ1x1MjMwQScsXG4gIHJmbG9vcjogJ1x1MjMwQicsXG4gIGxhbmc6ICdcdTIzMjknLFxuICByYW5nOiAnXHUyMzJBJyxcbiAgbG96OiAnXHUyNUNBJyxcbiAgc3BhZGVzOiAnXHUyNjYwJyxcbiAgY2x1YnM6ICdcdTI2NjMnLFxuICBoZWFydHM6ICdcdTI2NjUnLFxuICBkaWFtczogJ1x1MjY2NicsXG4gIHF1b3Q6ICdcIicsXG4gIGFtcDogJyYnLFxuICBsdDogJzwnLFxuICBndDogJz4nLFxuICBPRWxpZzogJ1x1MDE1MicsXG4gIG9lbGlnOiAnXHUwMTUzJyxcbiAgU2Nhcm9uOiAnXHUwMTYwJyxcbiAgc2Nhcm9uOiAnXHUwMTYxJyxcbiAgWXVtbDogJ1x1MDE3OCcsXG4gIGNpcmM6ICdcdTAyQzYnLFxuICB0aWxkZTogJ1x1MDJEQycsXG4gIGVuc3A6ICdcdTIwMDInLFxuICBlbXNwOiAnXHUyMDAzJyxcbiAgdGhpbnNwOiAnXHUyMDA5JyxcbiAgenduajogJ1x1MjAwQycsXG4gIHp3ajogJ1x1MjAwRCcsXG4gIGxybTogJ1x1MjAwRScsXG4gIHJsbTogJ1x1MjAwRicsXG4gIG5kYXNoOiAnXHUyMDEzJyxcbiAgbWRhc2g6ICdcdTIwMTQnLFxuICBsc3F1bzogJ1x1MjAxOCcsXG4gIHJzcXVvOiAnXHUyMDE5JyxcbiAgc2JxdW86ICdcdTIwMUEnLFxuICBsZHF1bzogJ1x1MjAxQycsXG4gIHJkcXVvOiAnXHUyMDFEJyxcbiAgYmRxdW86ICdcdTIwMUUnLFxuICBkYWdnZXI6ICdcdTIwMjAnLFxuICBEYWdnZXI6ICdcdTIwMjEnLFxuICBwZXJtaWw6ICdcdTIwMzAnLFxuICBsc2FxdW86ICdcdTIwMzknLFxuICByc2FxdW86ICdcdTIwM0EnLFxuICBldXJvOiAnXHUyMEFDJ1xufVxuIiwgIi8qKlxuICogTGlzdCBvZiBsZWdhY3kgKHRoYXQgZG9uXHUyMDE5dCBuZWVkIGEgdHJhaWxpbmcgYDtgKSBuYW1lZCByZWZlcmVuY2VzIHdoaWNoIGNvdWxkLFxuICogZGVwZW5kaW5nIG9uIHdoYXQgZm9sbG93cyB0aGVtLCB0dXJuIGludG8gYSBkaWZmZXJlbnQgbWVhbmluZ1xuICpcbiAqIEB0eXBlIHtBcnJheTxzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgZGFuZ2Vyb3VzID0gW1xuICAnY2VudCcsXG4gICdjb3B5JyxcbiAgJ2RpdmlkZScsXG4gICdndCcsXG4gICdsdCcsXG4gICdub3QnLFxuICAncGFyYScsXG4gICd0aW1lcydcbl1cbiIsICJpbXBvcnQge2NoYXJhY3RlckVudGl0aWVzTGVnYWN5fSBmcm9tICdjaGFyYWN0ZXItZW50aXRpZXMtbGVnYWN5J1xuaW1wb3J0IHtjaGFyYWN0ZXJFbnRpdGllc0h0bWw0fSBmcm9tICdjaGFyYWN0ZXItZW50aXRpZXMtaHRtbDQnXG5pbXBvcnQge2Rhbmdlcm91c30gZnJvbSAnLi4vY29uc3RhbnQvZGFuZ2Vyb3VzLmpzJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIGBjaGFyYWN0ZXJFbnRpdGllc0h0bWw0YCBidXQgaW52ZXJ0ZWQuXG4gKlxuICogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKi9cbmNvbnN0IGNoYXJhY3RlcnMgPSB7fVxuXG4vKiogQHR5cGUge3N0cmluZ30gKi9cbmxldCBrZXlcblxuZm9yIChrZXkgaW4gY2hhcmFjdGVyRW50aXRpZXNIdG1sNCkge1xuICBpZiAob3duLmNhbGwoY2hhcmFjdGVyRW50aXRpZXNIdG1sNCwga2V5KSkge1xuICAgIGNoYXJhY3RlcnNbY2hhcmFjdGVyRW50aXRpZXNIdG1sNFtrZXldXSA9IGtleVxuICB9XG59XG5cbi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGNoYXJhY3RlcnMgYXMgbmFtZWQgcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IG9taXRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGF0dHJpYnV0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTmFtZWQoY29kZSwgbmV4dCwgb21pdCwgYXR0cmlidXRlKSB7XG4gIGNvbnN0IGNoYXJhY3RlciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSlcblxuICBpZiAob3duLmNhbGwoY2hhcmFjdGVycywgY2hhcmFjdGVyKSkge1xuICAgIGNvbnN0IG5hbWUgPSBjaGFyYWN0ZXJzW2NoYXJhY3Rlcl1cbiAgICBjb25zdCB2YWx1ZSA9ICcmJyArIG5hbWVcblxuICAgIGlmIChcbiAgICAgIG9taXQgJiZcbiAgICAgIGNoYXJhY3RlckVudGl0aWVzTGVnYWN5LmluY2x1ZGVzKG5hbWUpICYmXG4gICAgICAhZGFuZ2Vyb3VzLmluY2x1ZGVzKG5hbWUpICYmXG4gICAgICAoIWF0dHJpYnV0ZSB8fFxuICAgICAgICAobmV4dCAmJlxuICAgICAgICAgIG5leHQgIT09IDYxIC8qIGA9YCAqLyAmJlxuICAgICAgICAgIC9bXlxcZGEtel0vaS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSArICc7J1xuICB9XG5cbiAgcmV0dXJuICcnXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBGb3JtYXRTbWFydE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3VzZU5hbWVkUmVmZXJlbmNlcz1mYWxzZV1cbiAqICAgUHJlZmVyIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIChgJmFtcDtgKSB3aGVyZSBwb3NzaWJsZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3VzZVNob3J0ZXN0UmVmZXJlbmNlcz1mYWxzZV1cbiAqICAgUHJlZmVyIHRoZSBzaG9ydGVzdCBwb3NzaWJsZSByZWZlcmVuY2UsIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzLlxuICogICAqKk5vdGUqKjogYHVzZU5hbWVkUmVmZXJlbmNlc2AgY2FuIGJlIG9taXR0ZWQgd2hlbiB1c2luZyBgdXNlU2hvcnRlc3RSZWZlcmVuY2VzYC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW29taXRPcHRpb25hbFNlbWljb2xvbnM9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gb21pdCBzZW1pY29sb25zIHdoZW4gcG9zc2libGUuXG4gKiAgICoqTm90ZSoqOiBUaGlzIGNyZWF0ZXMgd2hhdCBIVE1MIGNhbGxzIFx1MjAxQ3BhcnNlIGVycm9yc1x1MjAxRCBidXQgaXMgb3RoZXJ3aXNlIHN0aWxsIHZhbGlkIEhUTUwgXHUyMDE0IGRvblx1MjAxOXQgdXNlIHRoaXMgZXhjZXB0IHdoZW4gYnVpbGRpbmcgYSBtaW5pZmllci5cbiAqICAgT21pdHRpbmcgc2VtaWNvbG9ucyBpcyBwb3NzaWJsZSBmb3IgY2VydGFpbiBuYW1lZCBhbmQgbnVtZXJpYyByZWZlcmVuY2VzIGluIHNvbWUgY2FzZXMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFthdHRyaWJ1dGU9ZmFsc2VdXG4gKiAgIENyZWF0ZSBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB3aGljaCBkb25cdTIwMTl0IGZhaWwgaW4gYXR0cmlidXRlcy5cbiAqICAgKipOb3RlKio6IGBhdHRyaWJ1dGVgIG9ubHkgYXBwbGllcyB3aGVuIG9wZXJhdGluZyBkYW5nZXJvdXNseSB3aXRoXG4gKiAgIGBvbWl0T3B0aW9uYWxTZW1pY29sb25zOiB0cnVlYC5cbiAqL1xuXG5pbXBvcnQge3RvSGV4YWRlY2ltYWx9IGZyb20gJy4vdG8taGV4YWRlY2ltYWwuanMnXG5pbXBvcnQge3RvRGVjaW1hbH0gZnJvbSAnLi90by1kZWNpbWFsLmpzJ1xuaW1wb3J0IHt0b05hbWVkfSBmcm9tICcuL3RvLW5hbWVkLmpzJ1xuXG4vKipcbiAqIENvbmZpZ3VyYWJsZSB3YXlzIHRvIGVuY29kZSBhIGNoYXJhY3RlciB5aWVsZGluZyBwcmV0dHkgb3Igc21hbGwgcmVzdWx0cy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Rm9ybWF0U21hcnRPcHRpb25zfSBvcHRpb25zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U21hcnQoY29kZSwgbmV4dCwgb3B0aW9ucykge1xuICBsZXQgbnVtZXJpYyA9IHRvSGV4YWRlY2ltYWwoY29kZSwgbmV4dCwgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zKVxuICAvKiogQHR5cGUge3N0cmluZ3x1bmRlZmluZWR9ICovXG4gIGxldCBuYW1lZFxuXG4gIGlmIChvcHRpb25zLnVzZU5hbWVkUmVmZXJlbmNlcyB8fCBvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlcykge1xuICAgIG5hbWVkID0gdG9OYW1lZChcbiAgICAgIGNvZGUsXG4gICAgICBuZXh0LFxuICAgICAgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zLFxuICAgICAgb3B0aW9ucy5hdHRyaWJ1dGVcbiAgICApXG4gIH1cblxuICAvLyBVc2UgdGhlIHNob3J0ZXN0IG51bWVyaWMgcmVmZXJlbmNlIHdoZW4gcmVxdWVzdGVkLlxuICAvLyBBIHNpbXBsZSBhbGdvcml0aG0gd291bGQgdXNlIGRlY2ltYWwgZm9yIGFsbCBjb2RlIHBvaW50cyB1bmRlciAxMDAsIGFzXG4gIC8vIHRob3NlIGFyZSBzaG9ydGVyIHRoYW4gaGV4YWRlY2ltYWw6XG4gIC8vXG4gIC8vICogYCYjOTk7YCB2cyBgJiN4NjM7YCAoZGVjaW1hbCBzaG9ydGVyKVxuICAvLyAqIGAmIzEwMDtgIHZzIGAmI3g2NDtgIChlcXVhbClcbiAgLy9cbiAgLy8gSG93ZXZlciwgYmVjYXVzZSB3ZSB0YWtlIGBuZXh0YCBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBgb21pdGAgaXMgdXNlZCxcbiAgLy8gQW5kIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRoYXQgZGVjaW1hbHMgYXJlIHNob3J0ZXIgb24gYmlnZ2VyIHZhbHVlcyBhc1xuICAvLyB3ZWxsIGlmIGBuZXh0YCBpcyBoZXhhZGVjaW1hbCBidXQgbm90IGRlY2ltYWwsIHdlIGluc3RlYWQgY29tcGFyZSBib3RoLlxuICBpZiAoXG4gICAgKG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzIHx8ICFuYW1lZCkgJiZcbiAgICBvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlc1xuICApIHtcbiAgICBjb25zdCBkZWNpbWFsID0gdG9EZWNpbWFsKGNvZGUsIG5leHQsIG9wdGlvbnMub21pdE9wdGlvbmFsU2VtaWNvbG9ucylcblxuICAgIGlmIChkZWNpbWFsLmxlbmd0aCA8IG51bWVyaWMubGVuZ3RoKSB7XG4gICAgICBudW1lcmljID0gZGVjaW1hbFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuYW1lZCAmJlxuICAgICghb3B0aW9ucy51c2VTaG9ydGVzdFJlZmVyZW5jZXMgfHwgbmFtZWQubGVuZ3RoIDwgbnVtZXJpYy5sZW5ndGgpXG4gICAgPyBuYW1lZFxuICAgIDogbnVtZXJpY1xufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jb3JlLmpzJykuQ29yZU9wdGlvbnMgJiBpbXBvcnQoJy4vdXRpbC9mb3JtYXQtc21hcnQuanMnKS5Gb3JtYXRTbWFydE9wdGlvbnN9IE9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY29yZS5qcycpLkNvcmVPcHRpb25zfSBMaWdodE9wdGlvbnNcbiAqL1xuXG5pbXBvcnQge2NvcmV9IGZyb20gJy4vY29yZS5qcydcbmltcG9ydCB7Zm9ybWF0U21hcnR9IGZyb20gJy4vdXRpbC9mb3JtYXQtc21hcnQuanMnXG5pbXBvcnQge2Zvcm1hdEJhc2ljfSBmcm9tICcuL3V0aWwvZm9ybWF0LWJhc2ljLmpzJ1xuXG4vKipcbiAqIEVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYHZhbHVlYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gZW5jb2RlLlxuICogQHBhcmFtIHtPcHRpb25zfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEVuY29kZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlFbnRpdGllcyh2YWx1ZSwgb3B0aW9ucykge1xuICByZXR1cm4gY29yZSh2YWx1ZSwgT2JqZWN0LmFzc2lnbih7Zm9ybWF0OiBmb3JtYXRTbWFydH0sIG9wdGlvbnMpKVxufVxuXG4vKipcbiAqIEVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYHZhbHVlYCBhcyBoZXhhZGVjaW1hbHMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGVuY29kZS5cbiAqIEBwYXJhbSB7TGlnaHRPcHRpb25zfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEVuY29kZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlFbnRpdGllc0xpZ2h0KHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBjb3JlKHZhbHVlLCBPYmplY3QuYXNzaWduKHtmb3JtYXQ6IGZvcm1hdEJhc2ljfSwgb3B0aW9ucykpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuQ29tbWVudH0gQ29tbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7c3RyaW5naWZ5RW50aXRpZXN9IGZyb20gJ3N0cmluZ2lmeS1lbnRpdGllcydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSBjb21tZW50LlxuICpcbiAqIEBwYXJhbSB7Q29tbWVudH0gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBfMVxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gXzJcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1lbnQobm9kZSwgXzEsIF8yLCBzdGF0ZSkge1xuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNjb21tZW50cz5cbiAgcmV0dXJuIHN0YXRlLnNldHRpbmdzLmJvZ3VzQ29tbWVudHNcbiAgICA/ICc8PycgK1xuICAgICAgICBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgICBub2RlLnZhbHVlLFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtzdWJzZXQ6IFsnPiddfSlcbiAgICAgICAgKSArXG4gICAgICAgICc+J1xuICAgIDogJzwhLS0nICsgbm9kZS52YWx1ZS5yZXBsYWNlKC9ePnxeLT58PCEtLXwtLT58LS0hPnw8IS0kL2csIGVuY29kZSkgKyAnLS0+J1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAgICovXG4gIGZ1bmN0aW9uIGVuY29kZSgkMCkge1xuICAgIHJldHVybiBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICQwLFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgICBzdWJzZXQ6IFsnPCcsICc+J11cbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRG9jdHlwZX0gRG9jdHlwZVxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8vIE1ha2UgVlMgY29kZSBzZWUgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGRvY3R5cGUuXG4gKlxuICogQHBhcmFtIHtEb2N0eXBlfSBfMVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBfMlxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gXzNcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRvY3R5cGUoXzEsIF8yLCBfMywgc3RhdGUpIHtcbiAgcmV0dXJuIChcbiAgICAnPCEnICtcbiAgICAoc3RhdGUuc2V0dGluZ3MudXBwZXJEb2N0eXBlID8gJ0RPQ1RZUEUnIDogJ2RvY3R5cGUnKSArXG4gICAgKHN0YXRlLnNldHRpbmdzLnRpZ2h0RG9jdHlwZSA/ICcnIDogJyAnKSArXG4gICAgJ2h0bWw+J1xuICApXG59XG4iLCAiLyoqXG4gKiBDb3VudCBob3cgb2Z0ZW4gYSBjaGFyYWN0ZXIgKG9yIHN1YnN0cmluZykgaXMgdXNlZCBpbiBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gc2VhcmNoIGluLlxuICogQHBhcmFtIHtzdHJpbmd9IGNoYXJhY3RlclxuICogICBDaGFyYWN0ZXIgKG9yIHN1YnN0cmluZykgdG8gbG9vayBmb3IuXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKiAgIE51bWJlciBvZiB0aW1lcyBgY2hhcmFjdGVyYCBvY2N1cnJlZCBpbiBgdmFsdWVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2NvdW50KHZhbHVlLCBjaGFyYWN0ZXIpIHtcbiAgY29uc3Qgc291cmNlID0gU3RyaW5nKHZhbHVlKVxuXG4gIGlmICh0eXBlb2YgY2hhcmFjdGVyICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGNoYXJhY3RlcicpXG4gIH1cblxuICBsZXQgY291bnQgPSAwXG4gIGxldCBpbmRleCA9IHNvdXJjZS5pbmRleE9mKGNoYXJhY3RlcilcblxuICB3aGlsZSAoaW5kZXggIT09IC0xKSB7XG4gICAgY291bnQrK1xuICAgIGluZGV4ID0gc291cmNlLmluZGV4T2YoY2hhcmFjdGVyLCBpbmRleCArIGNoYXJhY3Rlci5sZW5ndGgpXG4gIH1cblxuICByZXR1cm4gY291bnRcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqL1xuXG4vLyBIVE1MIHdoaXRlc3BhY2UgZXhwcmVzc2lvbi5cbi8vIFNlZSA8aHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI2FzY2lpLXdoaXRlc3BhY2U+LlxuY29uc3QgcmUgPSAvWyBcXHRcXG5cXGZcXHJdL2dcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgKmludGVyLWVsZW1lbnQgd2hpdGVzcGFjZSouXG4gKlxuICogQHBhcmFtIHtOb2RlcyB8IHN0cmluZ30gdGhpbmdcbiAqICAgVGhpbmcgdG8gY2hlY2sgKGBOb2RlYCBvciBgc3RyaW5nYCkuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgYHZhbHVlYCBpcyBpbnRlci1lbGVtZW50IHdoaXRlc3BhY2UgKGBib29sZWFuYCk6IGNvbnNpc3Rpbmcgb2ZcbiAqICAgemVybyBvciBtb3JlIG9mIHNwYWNlLCB0YWIgKGBcXHRgKSwgbGluZSBmZWVkIChgXFxuYCksIGNhcnJpYWdlIHJldHVyblxuICogICAoYFxccmApLCBvciBmb3JtIGZlZWQgKGBcXGZgKTsgaWYgYSBub2RlIGlzIHBhc3NlZCBpdCBtdXN0IGJlIGEgYFRleHRgIG5vZGUsXG4gKiAgIHdob3NlIGB2YWx1ZWAgZmllbGQgaXMgY2hlY2tlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdoaXRlc3BhY2UodGhpbmcpIHtcbiAgcmV0dXJuIHR5cGVvZiB0aGluZyA9PT0gJ29iamVjdCdcbiAgICA/IHRoaW5nLnR5cGUgPT09ICd0ZXh0J1xuICAgICAgPyBlbXB0eSh0aGluZy52YWx1ZSlcbiAgICAgIDogZmFsc2VcbiAgICA6IGVtcHR5KHRoaW5nKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGVtcHR5KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKHJlLCAnJykgPT09ICcnXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3RDb250ZW50fSBSb290Q29udGVudFxuICovXG5cbmltcG9ydCB7d2hpdGVzcGFjZX0gZnJvbSAnaGFzdC11dGlsLXdoaXRlc3BhY2UnXG5cbmV4cG9ydCBjb25zdCBzaWJsaW5nQWZ0ZXIgPSBzaWJsaW5ncygxKVxuZXhwb3J0IGNvbnN0IHNpYmxpbmdCZWZvcmUgPSBzaWJsaW5ncygtMSlcblxuLyoqIEB0eXBlIHtBcnJheTxSb290Q29udGVudD59ICovXG5jb25zdCBlbXB0eUNoaWxkcmVuID0gW11cblxuLyoqXG4gKiBGYWN0b3J5IHRvIGNoZWNrIHNpYmxpbmdzIGluIGEgZGlyZWN0aW9uLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmNyZW1lbnRcbiAqL1xuZnVuY3Rpb24gc2libGluZ3MoaW5jcmVtZW50KSB7XG4gIHJldHVybiBzaWJsaW5nXG5cbiAgLyoqXG4gICAqIEZpbmQgYXBwbGljYWJsZSBzaWJsaW5ncyBpbiBhIGRpcmVjdGlvbi5cbiAgICpcbiAgICogQHRlbXBsYXRlIHtQYXJlbnRzfSBQYXJlbnRcbiAgICogICBQYXJlbnQgdHlwZS5cbiAgICogQHBhcmFtIHtQYXJlbnQgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiAgIFBhcmVudC5cbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gICAqICAgSW5kZXggb2YgY2hpbGQgaW4gYHBhcmVudGAuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gW2luY2x1ZGVXaGl0ZXNwYWNlPWZhbHNlXVxuICAgKiAgIFdoZXRoZXIgdG8gaW5jbHVkZSB3aGl0ZXNwYWNlIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAgICogQHJldHVybnMge1BhcmVudCBleHRlbmRzIHtjaGlsZHJlbjogQXJyYXk8aW5mZXIgQ2hpbGQ+fSA/IENoaWxkIHwgdW5kZWZpbmVkIDogbmV2ZXJ9XG4gICAqICAgQ2hpbGQgb2YgcGFyZW50LlxuICAgKi9cbiAgZnVuY3Rpb24gc2libGluZyhwYXJlbnQsIGluZGV4LCBpbmNsdWRlV2hpdGVzcGFjZSkge1xuICAgIGNvbnN0IHNpYmxpbmdzID0gcGFyZW50ID8gcGFyZW50LmNoaWxkcmVuIDogZW1wdHlDaGlsZHJlblxuICAgIGxldCBvZmZzZXQgPSAoaW5kZXggfHwgMCkgKyBpbmNyZW1lbnRcbiAgICBsZXQgbmV4dCA9IHNpYmxpbmdzW29mZnNldF1cblxuICAgIGlmICghaW5jbHVkZVdoaXRlc3BhY2UpIHtcbiAgICAgIHdoaWxlIChuZXh0ICYmIHdoaXRlc3BhY2UobmV4dCkpIHtcbiAgICAgICAgb2Zmc2V0ICs9IGluY3JlbWVudFxuICAgICAgICBuZXh0ID0gc2libGluZ3Nbb2Zmc2V0XVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGl0XHUyMDE5cyBhIGNvcnJlY3QgY2hpbGQuXG4gICAgcmV0dXJuIG5leHRcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgT21pdEhhbmRsZVxuICogICBDaGVjayBpZiBhIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbWVudFxuICogICBFbGVtZW50IHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0byBvbWl0IGEgdGFnLlxuICpcbiAqL1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEZhY3RvcnkgdG8gY2hlY2sgaWYgYSBnaXZlbiBub2RlIGNhbiBoYXZlIGEgdGFnIG9taXR0ZWQuXG4gKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBPbWl0SGFuZGxlPn0gaGFuZGxlcnNcbiAqICAgT21pc3Npb24gaGFuZGxlcnMsIHdoZXJlIGVhY2gga2V5IGlzIGEgdGFnIG5hbWUsIGFuZCBlYWNoIHZhbHVlIGlzIHRoZVxuICogICBjb3JyZXNwb25kaW5nIGhhbmRsZXIuXG4gKiBAcmV0dXJucyB7T21pdEhhbmRsZX1cbiAqICAgV2hldGhlciB0byBvbWl0IGEgdGFnIG9mIGFuIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbWlzc2lvbihoYW5kbGVycykge1xuICByZXR1cm4gb21pdFxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIGdpdmVuIG5vZGUgY2FuIGhhdmUgYSB0YWcgb21pdHRlZC5cbiAgICpcbiAgICogQHR5cGUge09taXRIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbWl0KG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgb3duLmNhbGwoaGFuZGxlcnMsIG5vZGUudGFnTmFtZSkgJiZcbiAgICAgIGhhbmRsZXJzW25vZGUudGFnTmFtZV0obm9kZSwgaW5kZXgsIHBhcmVudClcbiAgICApXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICovXG5cbmltcG9ydCB7d2hpdGVzcGFjZX0gZnJvbSAnaGFzdC11dGlsLXdoaXRlc3BhY2UnXG5pbXBvcnQge3NpYmxpbmdBZnRlcn0gZnJvbSAnLi91dGlsL3NpYmxpbmdzLmpzJ1xuaW1wb3J0IHtvbWlzc2lvbn0gZnJvbSAnLi9vbWlzc2lvbi5qcydcblxuZXhwb3J0IGNvbnN0IGNsb3NpbmcgPSBvbWlzc2lvbih7XG4gIGJvZHksXG4gIGNhcHRpb246IGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uLFxuICBjb2xncm91cDogaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24sXG4gIGRkLFxuICBkdCxcbiAgaGVhZDogaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24sXG4gIGh0bWwsXG4gIGxpLFxuICBvcHRncm91cCxcbiAgb3B0aW9uLFxuICBwLFxuICBycDogcnVieUVsZW1lbnQsXG4gIHJ0OiBydWJ5RWxlbWVudCxcbiAgdGJvZHksXG4gIHRkOiBjZWxscyxcbiAgdGZvb3QsXG4gIHRoOiBjZWxscyxcbiAgdGhlYWQsXG4gIHRyXG59KVxuXG4vKipcbiAqIE1hY3JvIGZvciBgPC9oZWFkPmAsIGA8L2NvbGdyb3VwPmAsIGFuZCBgPC9jYXB0aW9uPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24oXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgsIHRydWUpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlICE9PSAnY29tbWVudCcgJiZcbiAgICAgICEobmV4dC50eXBlID09PSAndGV4dCcgJiYgd2hpdGVzcGFjZShuZXh0LnZhbHVlLmNoYXJBdCgwKSkpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2h0bWw+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBodG1sKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgbmV4dC50eXBlICE9PSAnY29tbWVudCdcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvYm9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGJvZHkoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCBuZXh0LnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9wPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gcChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIG5leHRcbiAgICA/IG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAgIChuZXh0LnRhZ05hbWUgPT09ICdhZGRyZXNzJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2FydGljbGUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnYXNpZGUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnYmxvY2txdW90ZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdkZXRhaWxzJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RpdicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdkbCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmaWVsZHNldCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmaWdjYXB0aW9uJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZ3VyZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmb290ZXInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZm9ybScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoMScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoMicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoMycgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoNCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoNScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoNicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoZWFkZXInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaGdyb3VwJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2hyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ21haW4nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnbWVudScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICduYXYnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnb2wnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAncCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdwcmUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnc2VjdGlvbicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICd0YWJsZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICd1bCcpXG4gICAgOiAhcGFyZW50IHx8XG4gICAgICAgIC8vIENvbmZ1c2luZyBwYXJlbnQuXG4gICAgICAgICEoXG4gICAgICAgICAgcGFyZW50LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgICAgIChwYXJlbnQudGFnTmFtZSA9PT0gJ2EnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ2F1ZGlvJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdkZWwnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ2lucycgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnbWFwJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdub3NjcmlwdCcgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAndmlkZW8nKVxuICAgICAgICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2xpPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gbGkoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiYgbmV4dC50YWdOYW1lID09PSAnbGknKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9kdD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGR0KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gQm9vbGVhbihcbiAgICBuZXh0ICYmXG4gICAgICBuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ2R0JyB8fCBuZXh0LnRhZ05hbWUgPT09ICdkZCcpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvZGQ+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBkZChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ2R0JyB8fCBuZXh0LnRhZ05hbWUgPT09ICdkZCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3J0PmAgb3IgYDwvcnA+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBydWJ5RWxlbWVudChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3JwJyB8fCBuZXh0LnRhZ05hbWUgPT09ICdydCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L29wdGdyb3VwPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gb3B0Z3JvdXAoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiYgbmV4dC50YWdOYW1lID09PSAnb3B0Z3JvdXAnKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9vcHRpb24+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBvcHRpb24oXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICdvcHRpb24nIHx8IG5leHQudGFnTmFtZSA9PT0gJ29wdGdyb3VwJykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGhlYWQ+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0aGVhZChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgbmV4dCAmJlxuICAgICAgbmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICd0Ym9keScgfHwgbmV4dC50YWdOYW1lID09PSAndGZvb3QnKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3Rib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGJvZHkoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICd0Ym9keScgfHwgbmV4dC50YWdOYW1lID09PSAndGZvb3QnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90Zm9vdD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRmb290KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgcmV0dXJuICFzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdHI+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0cihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICd0cicpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3RkPmAgb3IgYDwvdGg+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBjZWxscyhfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3RkJyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0aCcpKVxuICApXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqL1xuXG5pbXBvcnQge3doaXRlc3BhY2V9IGZyb20gJ2hhc3QtdXRpbC13aGl0ZXNwYWNlJ1xuaW1wb3J0IHtzaWJsaW5nQWZ0ZXIsIHNpYmxpbmdCZWZvcmV9IGZyb20gJy4vdXRpbC9zaWJsaW5ncy5qcydcbmltcG9ydCB7Y2xvc2luZ30gZnJvbSAnLi9jbG9zaW5nLmpzJ1xuaW1wb3J0IHtvbWlzc2lvbn0gZnJvbSAnLi9vbWlzc2lvbi5qcydcblxuZXhwb3J0IGNvbnN0IG9wZW5pbmcgPSBvbWlzc2lvbih7XG4gIGJvZHksXG4gIGNvbGdyb3VwLFxuICBoZWFkLFxuICBodG1sLFxuICB0Ym9keVxufSlcblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDxodG1sPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGh0bWwobm9kZSkge1xuICBjb25zdCBoZWFkID0gc2libGluZ0FmdGVyKG5vZGUsIC0xKVxuICByZXR1cm4gIWhlYWQgfHwgaGVhZC50eXBlICE9PSAnY29tbWVudCdcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDxoZWFkPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGhlYWQobm9kZSkge1xuICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW5cbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCBzZWVuID0gW11cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baW5kZXhdXG4gICAgaWYgKFxuICAgICAgY2hpbGQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAoY2hpbGQudGFnTmFtZSA9PT0gJ3RpdGxlJyB8fCBjaGlsZC50YWdOYW1lID09PSAnYmFzZScpXG4gICAgKSB7XG4gICAgICBpZiAoc2Vlbi5pbmNsdWRlcyhjaGlsZC50YWdOYW1lKSkgcmV0dXJuIGZhbHNlXG4gICAgICBzZWVuLnB1c2goY2hpbGQudGFnTmFtZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2hpbGRyZW4ubGVuZ3RoID4gMFxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGJvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gYm9keShub2RlKSB7XG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEsIHRydWUpXG5cbiAgcmV0dXJuIChcbiAgICAhaGVhZCB8fFxuICAgIChoZWFkLnR5cGUgIT09ICdjb21tZW50JyAmJlxuICAgICAgIShoZWFkLnR5cGUgPT09ICd0ZXh0JyAmJiB3aGl0ZXNwYWNlKGhlYWQudmFsdWUuY2hhckF0KDApKSkgJiZcbiAgICAgICEoXG4gICAgICAgIGhlYWQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAgIChoZWFkLnRhZ05hbWUgPT09ICdtZXRhJyB8fFxuICAgICAgICAgIGhlYWQudGFnTmFtZSA9PT0gJ2xpbmsnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnc2NyaXB0JyB8fFxuICAgICAgICAgIGhlYWQudGFnTmFtZSA9PT0gJ3N0eWxlJyB8fFxuICAgICAgICAgIGhlYWQudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJylcbiAgICAgICkpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDxjb2xncm91cD5gLlxuICogVGhlIHNwZWMgZGVzY3JpYmVzIHNvbWUgbG9naWMgZm9yIHRoZSBvcGVuaW5nIHRhZywgYnV0IGl0XHUyMDE5cyBlYXNpZXIgdG9cbiAqIGltcGxlbWVudCBpbiB0aGUgY2xvc2luZyB0YWcsIHRvIHRoZSBzYW1lIGVmZmVjdCwgc28gd2UgaGFuZGxlIGl0IHRoZXJlXG4gKiBpbnN0ZWFkLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGNvbGdyb3VwKG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgcHJldmlvdXMgPSBzaWJsaW5nQmVmb3JlKHBhcmVudCwgaW5kZXgpXG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEsIHRydWUpXG5cbiAgLy8gUHJldmlvdXMgY29sZ3JvdXAgd2FzIGFscmVhZHkgb21pdHRlZC5cbiAgaWYgKFxuICAgIHBhcmVudCAmJlxuICAgIHByZXZpb3VzICYmXG4gICAgcHJldmlvdXMudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgcHJldmlvdXMudGFnTmFtZSA9PT0gJ2NvbGdyb3VwJyAmJlxuICAgIGNsb3NpbmcocHJldmlvdXMsIHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHByZXZpb3VzKSwgcGFyZW50KVxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBCb29sZWFuKGhlYWQgJiYgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiYgaGVhZC50YWdOYW1lID09PSAnY29sJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDx0Ym9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRib2R5KG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgcHJldmlvdXMgPSBzaWJsaW5nQmVmb3JlKHBhcmVudCwgaW5kZXgpXG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEpXG5cbiAgLy8gUHJldmlvdXMgdGFibGUgc2VjdGlvbiB3YXMgYWxyZWFkeSBvbWl0dGVkLlxuICBpZiAoXG4gICAgcGFyZW50ICYmXG4gICAgcHJldmlvdXMgJiZcbiAgICBwcmV2aW91cy50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAocHJldmlvdXMudGFnTmFtZSA9PT0gJ3RoZWFkJyB8fCBwcmV2aW91cy50YWdOYW1lID09PSAndGJvZHknKSAmJlxuICAgIGNsb3NpbmcocHJldmlvdXMsIHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHByZXZpb3VzKSwgcGFyZW50KVxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBCb29sZWFuKGhlYWQgJiYgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiYgaGVhZC50YWdOYW1lID09PSAndHInKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtjY291bnR9IGZyb20gJ2Njb3VudCdcbmltcG9ydCB7c3RyaW5naWZ5IGFzIGNvbW1hc30gZnJvbSAnY29tbWEtc2VwYXJhdGVkLXRva2VucydcbmltcG9ydCB7ZmluZCwgc3ZnfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7c3RyaW5naWZ5IGFzIHNwYWNlc30gZnJvbSAnc3BhY2Utc2VwYXJhdGVkLXRva2VucydcbmltcG9ydCB7c3RyaW5naWZ5RW50aXRpZXN9IGZyb20gJ3N0cmluZ2lmeS1lbnRpdGllcydcbmltcG9ydCB7Y2xvc2luZ30gZnJvbSAnLi4vb21pc3Npb24vY2xvc2luZy5qcydcbmltcG9ydCB7b3BlbmluZ30gZnJvbSAnLi4vb21pc3Npb24vb3BlbmluZy5qcydcblxuLyoqXG4gKiBNYXBzIG9mIHN1YnNldHMuXG4gKlxuICogRWFjaCB2YWx1ZSBpcyBhIG1hdHJpeCBvZiB0dXBsZXMuXG4gKiBUaGUgdmFsdWUgYXQgYDBgIGNhdXNlcyBwYXJzZSBlcnJvcnMsIHRoZSB2YWx1ZSBhdCBgMWAgaXMgdmFsaWQuXG4gKiBPZiBib3RoLCB0aGUgdmFsdWUgYXQgYDBgIGlzIHVuc2FmZSwgYW5kIHRoZSB2YWx1ZSBhdCBgMWAgaXMgc2FmZS5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPCdkb3VibGUnIHwgJ25hbWUnIHwgJ3NpbmdsZScgfCAndW5xdW90ZWQnLCBBcnJheTxbQXJyYXk8c3RyaW5nPiwgQXJyYXk8c3RyaW5nPl0+Pn1cbiAqL1xuY29uc3QgY29uc3RhbnRzID0ge1xuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtbmFtZS1zdGF0ZT4uXG4gIG5hbWU6IFtcbiAgICBbJ1xcdFxcblxcZlxcciAmLz0+Jy5zcGxpdCgnJyksICdcXHRcXG5cXGZcXHIgXCImXFwnLz0+YCcuc3BsaXQoJycpXSxcbiAgICBbJ1xcMFxcdFxcblxcZlxcciBcIiZcXCcvPD0+Jy5zcGxpdCgnJyksICdcXDBcXHRcXG5cXGZcXHIgXCImXFwnLzw9PmAnLnNwbGl0KCcnKV1cbiAgXSxcbiAgLy8gU2VlOiA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jYXR0cmlidXRlLXZhbHVlLSh1bnF1b3RlZCktc3RhdGU+LlxuICB1bnF1b3RlZDogW1xuICAgIFsnXFx0XFxuXFxmXFxyICY+Jy5zcGxpdCgnJyksICdcXDBcXHRcXG5cXGZcXHIgXCImXFwnPD0+YCcuc3BsaXQoJycpXSxcbiAgICBbJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyksICdcXDBcXHRcXG5cXGZcXHIgXCImXFwnPD0+YCcuc3BsaXQoJycpXVxuICBdLFxuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtdmFsdWUtKHNpbmdsZS1xdW90ZWQpLXN0YXRlPi5cbiAgc2luZ2xlOiBbXG4gICAgW1wiJidcIi5zcGxpdCgnJyksICdcIiZcXCdgJy5zcGxpdCgnJyldLFxuICAgIFtcIlxcMCYnXCIuc3BsaXQoJycpLCAnXFwwXCImXFwnYCcuc3BsaXQoJycpXVxuICBdLFxuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtdmFsdWUtKGRvdWJsZS1xdW90ZWQpLXN0YXRlPi5cbiAgZG91YmxlOiBbXG4gICAgWydcIiYnLnNwbGl0KCcnKSwgJ1wiJlxcJ2AnLnNwbGl0KCcnKV0sXG4gICAgWydcXDBcIiYnLnNwbGl0KCcnKSwgJ1xcMFwiJlxcJ2AnLnNwbGl0KCcnKV1cbiAgXVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhbiBlbGVtZW50IG5vZGUuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVsZW1lbnQobm9kZSwgaW5kZXgsIHBhcmVudCwgc3RhdGUpIHtcbiAgY29uc3Qgc2NoZW1hID0gc3RhdGUuc2NoZW1hXG4gIGNvbnN0IG9taXQgPSBzY2hlbWEuc3BhY2UgPT09ICdzdmcnID8gZmFsc2UgOiBzdGF0ZS5zZXR0aW5ncy5vbWl0T3B0aW9uYWxUYWdzXG4gIGxldCBzZWxmQ2xvc2luZyA9XG4gICAgc2NoZW1hLnNwYWNlID09PSAnc3ZnJ1xuICAgICAgPyBzdGF0ZS5zZXR0aW5ncy5jbG9zZUVtcHR5RWxlbWVudHNcbiAgICAgIDogc3RhdGUuc2V0dGluZ3Mudm9pZHMuaW5jbHVkZXMobm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpXG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcGFydHMgPSBbXVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGxhc3RcblxuICBpZiAoc2NoZW1hLnNwYWNlID09PSAnaHRtbCcgJiYgbm9kZS50YWdOYW1lID09PSAnc3ZnJykge1xuICAgIHN0YXRlLnNjaGVtYSA9IHN2Z1xuICB9XG5cbiAgY29uc3QgYXR0cnMgPSBzZXJpYWxpemVBdHRyaWJ1dGVzKHN0YXRlLCBub2RlLnByb3BlcnRpZXMpXG5cbiAgY29uc3QgY29udGVudCA9IHN0YXRlLmFsbChcbiAgICBzY2hlbWEuc3BhY2UgPT09ICdodG1sJyAmJiBub2RlLnRhZ05hbWUgPT09ICd0ZW1wbGF0ZScgPyBub2RlLmNvbnRlbnQgOiBub2RlXG4gIClcblxuICBzdGF0ZS5zY2hlbWEgPSBzY2hlbWFcblxuICAvLyBJZiB0aGUgbm9kZSBpcyBjYXRlZ29yaXNlZCBhcyB2b2lkLCBidXQgaXQgaGFzIGNoaWxkcmVuLCByZW1vdmUgdGhlXG4gIC8vIGNhdGVnb3Jpc2F0aW9uLlxuICAvLyBUaGlzIGVuYWJsZXMgZm9yIGV4YW1wbGUgYG1lbnVpdGVtYHMsIHdoaWNoIGFyZSB2b2lkIGluIFczQyBIVE1MIGJ1dCBub3RcbiAgLy8gdm9pZCBpbiBXSEFUV0cgSFRNTCwgdG8gYmUgc3RyaW5naWZpZWQgcHJvcGVybHkuXG4gIC8vIE5vdGU6IGBtZW51aXRlbWAgaGFzIHNpbmNlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBIVE1MIHNwZWMsIGFuZCBzbyBpcyBub1xuICAvLyBsb25nZXIgdm9pZC5cbiAgaWYgKGNvbnRlbnQpIHNlbGZDbG9zaW5nID0gZmFsc2VcblxuICBpZiAoYXR0cnMgfHwgIW9taXQgfHwgIW9wZW5pbmcobm9kZSwgaW5kZXgsIHBhcmVudCkpIHtcbiAgICBwYXJ0cy5wdXNoKCc8Jywgbm9kZS50YWdOYW1lLCBhdHRycyA/ICcgJyArIGF0dHJzIDogJycpXG5cbiAgICBpZiAoXG4gICAgICBzZWxmQ2xvc2luZyAmJlxuICAgICAgKHNjaGVtYS5zcGFjZSA9PT0gJ3N2ZycgfHwgc3RhdGUuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZylcbiAgICApIHtcbiAgICAgIGxhc3QgPSBhdHRycy5jaGFyQXQoYXR0cnMubGVuZ3RoIC0gMSlcbiAgICAgIGlmIChcbiAgICAgICAgIXN0YXRlLnNldHRpbmdzLnRpZ2h0U2VsZkNsb3NpbmcgfHxcbiAgICAgICAgbGFzdCA9PT0gJy8nIHx8XG4gICAgICAgIChsYXN0ICYmIGxhc3QgIT09ICdcIicgJiYgbGFzdCAhPT0gXCInXCIpXG4gICAgICApIHtcbiAgICAgICAgcGFydHMucHVzaCgnICcpXG4gICAgICB9XG5cbiAgICAgIHBhcnRzLnB1c2goJy8nKVxuICAgIH1cblxuICAgIHBhcnRzLnB1c2goJz4nKVxuICB9XG5cbiAgcGFydHMucHVzaChjb250ZW50KVxuXG4gIGlmICghc2VsZkNsb3NpbmcgJiYgKCFvbWl0IHx8ICFjbG9zaW5nKG5vZGUsIGluZGV4LCBwYXJlbnQpKSkge1xuICAgIHBhcnRzLnB1c2goJzwvJyArIG5vZGUudGFnTmFtZSArICc+JylcbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5qb2luKCcnKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge1Byb3BlcnRpZXMgfCBudWxsIHwgdW5kZWZpbmVkfSBwcm9wc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlcyhzdGF0ZSwgcHJvcHMpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCB2YWx1ZXMgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGtleVxuXG4gIGlmIChwcm9wcykge1xuICAgIGZvciAoa2V5IGluIHByb3BzKSB7XG4gICAgICBpZiAocHJvcHNba2V5XSAhPT0gbnVsbCAmJiBwcm9wc1trZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBzZXJpYWxpemVBdHRyaWJ1dGUoc3RhdGUsIGtleSwgcHJvcHNba2V5XSlcbiAgICAgICAgaWYgKHZhbHVlKSB2YWx1ZXMucHVzaCh2YWx1ZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB3aGlsZSAoKytpbmRleCA8IHZhbHVlcy5sZW5ndGgpIHtcbiAgICBjb25zdCBsYXN0ID0gc3RhdGUuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzXG4gICAgICA/IHZhbHVlc1tpbmRleF0uY2hhckF0KHZhbHVlc1tpbmRleF0ubGVuZ3RoIC0gMSlcbiAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAvLyBJbiB0aWdodCBtb2RlLCBkb25cdTIwMTl0IGFkZCBhIHNwYWNlIGFmdGVyIHF1b3RlZCBhdHRyaWJ1dGVzLlxuICAgIGlmIChpbmRleCAhPT0gdmFsdWVzLmxlbmd0aCAtIDEgJiYgbGFzdCAhPT0gJ1wiJyAmJiBsYXN0ICE9PSBcIidcIikge1xuICAgICAgdmFsdWVzW2luZGV4XSArPSAnICdcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsdWVzLmpvaW4oJycpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqIEBwYXJhbSB7UHJvcGVydGllc1trZXlvZiBQcm9wZXJ0aWVzXX0gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHNlcmlhbGl6ZUF0dHJpYnV0ZShzdGF0ZSwga2V5LCB2YWx1ZSkge1xuICBjb25zdCBpbmZvID0gZmluZChzdGF0ZS5zY2hlbWEsIGtleSlcbiAgY29uc3QgeCA9XG4gICAgc3RhdGUuc2V0dGluZ3MuYWxsb3dQYXJzZUVycm9ycyAmJiBzdGF0ZS5zY2hlbWEuc3BhY2UgPT09ICdodG1sJyA/IDAgOiAxXG4gIGNvbnN0IHkgPSBzdGF0ZS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnMgPyAwIDogMVxuICBsZXQgcXVvdGUgPSBzdGF0ZS5xdW90ZVxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIGlmIChpbmZvLm92ZXJsb2FkZWRCb29sZWFuICYmICh2YWx1ZSA9PT0gaW5mby5hdHRyaWJ1dGUgfHwgdmFsdWUgPT09ICcnKSkge1xuICAgIHZhbHVlID0gdHJ1ZVxuICB9IGVsc2UgaWYgKFxuICAgIGluZm8uYm9vbGVhbiB8fFxuICAgIChpbmZvLm92ZXJsb2FkZWRCb29sZWFuICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpXG4gICkge1xuICAgIHZhbHVlID0gQm9vbGVhbih2YWx1ZSlcbiAgfVxuXG4gIGlmIChcbiAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICB2YWx1ZSA9PT0gZmFsc2UgfHxcbiAgICAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNOYU4odmFsdWUpKVxuICApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGNvbnN0IG5hbWUgPSBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICBpbmZvLmF0dHJpYnV0ZSxcbiAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAvLyBBbHdheXMgZW5jb2RlIHdpdGhvdXQgcGFyc2UgZXJyb3JzIGluIG5vbi1IVE1MLlxuICAgICAgc3Vic2V0OiBjb25zdGFudHMubmFtZVt4XVt5XVxuICAgIH0pXG4gIClcblxuICAvLyBObyB2YWx1ZS5cbiAgLy8gVGhlcmUgaXMgY3VycmVudGx5IG9ubHkgb25lIGJvb2xlYW4gcHJvcGVydHkgaW4gU1ZHOiBgW2Rvd25sb2FkXWAgb25cbiAgLy8gYDxhPmAuXG4gIC8vIFRoaXMgcHJvcGVydHkgZG9lcyBub3Qgc2VlbSB0byB3b3JrIGluIGJyb3dzZXJzIChGaXJlZm94LCBTYWZhcmksIENocm9tZSksXG4gIC8vIHNvIEkgY2FuXHUyMDE5dCB0ZXN0IGlmIGRyb3BwaW5nIHRoZSB2YWx1ZSB3b3Jrcy5cbiAgLy8gQnV0IEkgYXNzdW1lIHRoYXQgaXQgc2hvdWxkOlxuICAvL1xuICAvLyBgYGBodG1sXG4gIC8vIDwhZG9jdHlwZSBodG1sPlxuICAvLyA8c3ZnIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiPlxuICAvLyAgIDxhIGhyZWY9aHR0cHM6Ly9leGFtcGxlLmNvbSBkb3dubG9hZD5cbiAgLy8gICAgIDxjaXJjbGUgY3g9NTAgY3k9NDAgcj0zNSAvPlxuICAvLyAgIDwvYT5cbiAgLy8gPC9zdmc+XG4gIC8vIGBgYFxuICAvL1xuICAvLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL3Byb3BlcnR5LWluZm9ybWF0aW9uL2Jsb2IvbWFpbi9saWIvc3ZnLmpzPlxuICBpZiAodmFsdWUgPT09IHRydWUpIHJldHVybiBuYW1lXG5cbiAgLy8gYHNwYWNlc2AgZG9lc25cdTIwMTl0IGFjY2VwdCBhIHNlY29uZCBhcmd1bWVudCwgYnV0IGl0XHUyMDE5cyBnaXZlbiBoZXJlIGp1c3QgdG9cbiAgLy8ga2VlcCB0aGUgY29kZSBjbGVhbmVyLlxuICB2YWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgPyAoaW5mby5jb21tYVNlcGFyYXRlZCA/IGNvbW1hcyA6IHNwYWNlcykodmFsdWUsIHtcbiAgICAgICAgcGFkTGVmdDogIXN0YXRlLnNldHRpbmdzLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c1xuICAgICAgfSlcbiAgICA6IFN0cmluZyh2YWx1ZSlcblxuICBpZiAoc3RhdGUuc2V0dGluZ3MuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMgJiYgIXZhbHVlKSByZXR1cm4gbmFtZVxuXG4gIC8vIENoZWNrIHVucXVvdGVkIHZhbHVlLlxuICBpZiAoc3RhdGUuc2V0dGluZ3MucHJlZmVyVW5xdW90ZWQpIHtcbiAgICByZXN1bHQgPSBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgIHZhbHVlLFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgICBhdHRyaWJ1dGU6IHRydWUsXG4gICAgICAgIHN1YnNldDogY29uc3RhbnRzLnVucXVvdGVkW3hdW3ldXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8vIElmIHdlIGRvblx1MjAxOXQgd2FudCB1bnF1b3RlZCwgb3IgaWYgYHZhbHVlYCBjb250YWlucyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB3aGVuXG4gIC8vIHVucXVvdGVkXHUyMDI2XG4gIGlmIChyZXN1bHQgIT09IHZhbHVlKSB7XG4gICAgLy8gSWYgdGhlIGFsdGVybmF0aXZlIGlzIGxlc3MgY29tbW9uIHRoYW4gYHF1b3RlYCwgc3dpdGNoLlxuICAgIGlmIChcbiAgICAgIHN0YXRlLnNldHRpbmdzLnF1b3RlU21hcnQgJiZcbiAgICAgIGNjb3VudCh2YWx1ZSwgcXVvdGUpID4gY2NvdW50KHZhbHVlLCBzdGF0ZS5hbHRlcm5hdGl2ZSlcbiAgICApIHtcbiAgICAgIHF1b3RlID0gc3RhdGUuYWx0ZXJuYXRpdmVcbiAgICB9XG5cbiAgICByZXN1bHQgPVxuICAgICAgcXVvdGUgK1xuICAgICAgc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgICAgLy8gQWx3YXlzIGVuY29kZSB3aXRob3V0IHBhcnNlIGVycm9ycyBpbiBub24tSFRNTC5cbiAgICAgICAgICBzdWJzZXQ6IChxdW90ZSA9PT0gXCInXCIgPyBjb25zdGFudHMuc2luZ2xlIDogY29uc3RhbnRzLmRvdWJsZSlbeF1beV0sXG4gICAgICAgICAgYXR0cmlidXRlOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICApICtcbiAgICAgIHF1b3RlXG4gIH1cblxuICAvLyBEb25cdTIwMTl0IGFkZCBhIGA9YCBmb3IgdW5xdW90ZWQgZW1wdGllcy5cbiAgcmV0dXJuIG5hbWUgKyAocmVzdWx0ID8gJz0nICsgcmVzdWx0IDogcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5UZXh0fSBUZXh0XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1oYXN0JykuUmF3fSBSYXdcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7c3RyaW5naWZ5RW50aXRpZXN9IGZyb20gJ3N0cmluZ2lmeS1lbnRpdGllcydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSB0ZXh0IG5vZGUuXG4gKlxuICogQHBhcmFtIHtSYXcgfCBUZXh0fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF9cbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGV4dChub2RlLCBfLCBwYXJlbnQsIHN0YXRlKSB7XG4gIC8vIENoZWNrIGlmIGNvbnRlbnQgb2YgYG5vZGVgIHNob3VsZCBiZSBlc2NhcGVkLlxuICByZXR1cm4gcGFyZW50ICYmXG4gICAgcGFyZW50LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgIChwYXJlbnQudGFnTmFtZSA9PT0gJ3NjcmlwdCcgfHwgcGFyZW50LnRhZ05hbWUgPT09ICdzdHlsZScpXG4gICAgPyBub2RlLnZhbHVlXG4gICAgOiBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgbm9kZS52YWx1ZSxcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgICAgIHN1YnNldDogWyc8JywgJyYnXVxuICAgICAgICB9KVxuICAgICAgKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLWhhc3QnKS5SYXd9IFJhd1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHt0ZXh0fSBmcm9tICcuL3RleHQuanMnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgcmF3IG5vZGUuXG4gKlxuICogQHBhcmFtIHtSYXd9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmF3KG5vZGUsIGluZGV4LCBwYXJlbnQsIHN0YXRlKSB7XG4gIHJldHVybiBzdGF0ZS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0h0bWxcbiAgICA/IG5vZGUudmFsdWVcbiAgICA6IHRleHQobm9kZSwgaW5kZXgsIHBhcmVudCwgc3RhdGUpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IFJvb3RcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8vIE1ha2UgVlMgY29kZSBzZWUgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHJvb3QuXG4gKlxuICogQHBhcmFtIHtSb290fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8xXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfMlxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdChub2RlLCBfMSwgXzIsIHN0YXRlKSB7XG4gIHJldHVybiBzdGF0ZS5hbGwobm9kZSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge3p3aXRjaH0gZnJvbSAnendpdGNoJ1xuaW1wb3J0IHtjb21tZW50fSBmcm9tICcuL2NvbW1lbnQuanMnXG5pbXBvcnQge2RvY3R5cGV9IGZyb20gJy4vZG9jdHlwZS5qcydcbmltcG9ydCB7ZWxlbWVudH0gZnJvbSAnLi9lbGVtZW50LmpzJ1xuaW1wb3J0IHtyYXd9IGZyb20gJy4vcmF3LmpzJ1xuaW1wb3J0IHtyb290fSBmcm9tICcuL3Jvb3QuanMnXG5pbXBvcnQge3RleHR9IGZyb20gJy4vdGV4dC5qcydcblxuLyoqXG4gKiBAdHlwZSB7KG5vZGU6IE5vZGVzLCBpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkLCBwYXJlbnQ6IFBhcmVudHMgfCB1bmRlZmluZWQsIHN0YXRlOiBTdGF0ZSkgPT4gc3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlID0gendpdGNoKCd0eXBlJywge1xuICBpbnZhbGlkLFxuICB1bmtub3duLFxuICBoYW5kbGVyczoge2NvbW1lbnQsIGRvY3R5cGUsIGVsZW1lbnQsIHJhdywgcm9vdCwgdGV4dH1cbn0pXG5cbi8qKlxuICogRmFpbCB3aGVuIGEgbm9uLW5vZGUgaXMgZm91bmQgaW4gdGhlIHRyZWUuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBub2RlXG4gKiAgIFVua25vd24gdmFsdWUuXG4gKiBAcmV0dXJucyB7bmV2ZXJ9XG4gKiAgIE5ldmVyLlxuICovXG5mdW5jdGlvbiBpbnZhbGlkKG5vZGUpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBub2RlLCBub3QgYCcgKyBub2RlICsgJ2AnKVxufVxuXG4vKipcbiAqIEZhaWwgd2hlbiBhIG5vZGUgd2l0aCBhbiB1bmtub3duIHR5cGUgaXMgZm91bmQgaW4gdGhlIHRyZWUuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBub2RlX1xuICogIFVua25vd24gbm9kZS5cbiAqIEByZXR1cm5zIHtuZXZlcn1cbiAqICAgTmV2ZXIuXG4gKi9cbmZ1bmN0aW9uIHVua25vd24obm9kZV8pIHtcbiAgLy8gYHR5cGVgIGlzIGd1YXJhbnRlZWQgYnkgcnVudGltZSBKUy5cbiAgY29uc3Qgbm9kZSA9IC8qKiBAdHlwZSB7Tm9kZXN9ICovIChub2RlXylcbiAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29tcGlsZSB1bmtub3duIG5vZGUgYCcgKyBub2RlLnR5cGUgKyAnYCcpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3RDb250ZW50fSBSb290Q29udGVudFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuU2NoZW1hfSBTY2hlbWFcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdzdHJpbmdpZnktZW50aXRpZXMnKS5PcHRpb25zfSBTdHJpbmdpZnlFbnRpdGllc09wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPbWl0PFN0cmluZ2lmeUVudGl0aWVzT3B0aW9ucywgJ2F0dHJpYnV0ZScgfCAnZXNjYXBlT25seScgfCAnc3Vic2V0Jz59IENoYXJhY3RlclJlZmVyZW5jZXNcbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPWZhbHNlXVxuICogICBEbyBub3QgZW5jb2RlIHNvbWUgY2hhcmFjdGVycyB3aGljaCBjYXVzZSBYU1MgdnVsbmVyYWJpbGl0aWVzIGluIG9sZGVyXG4gKiAgIGJyb3dzZXJzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHUyNkEwXHVGRTBGICoqRGFuZ2VyKio6IG9ubHkgc2V0IHRoaXMgaWYgeW91IGNvbXBsZXRlbHkgdHJ1c3QgdGhlIGNvbnRlbnQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYWxsb3dEYW5nZXJvdXNIdG1sPWZhbHNlXVxuICogICBBbGxvdyBgcmF3YCBub2RlcyBhbmQgaW5zZXJ0IHRoZW0gYXMgcmF3IEhUTUwgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgV2hlbiBgZmFsc2VgLCBgUmF3YCBub2RlcyBhcmUgZW5jb2RlZC5cbiAqXG4gKiAgID4gXHUyNkEwXHVGRTBGICoqRGFuZ2VyKio6IG9ubHkgc2V0IHRoaXMgaWYgeW91IGNvbXBsZXRlbHkgdHJ1c3QgdGhlIGNvbnRlbnQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYWxsb3dQYXJzZUVycm9ycz1mYWxzZV1cbiAqICAgRG8gbm90IGVuY29kZSBjaGFyYWN0ZXJzIHdoaWNoIGNhdXNlIHBhcnNlIGVycm9ycyAoZXZlbiB0aG91Z2ggdGhleSB3b3JrKSxcbiAqICAgdG8gc2F2ZSBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYm9ndXNDb21tZW50cz1mYWxzZV1cbiAqICAgVXNlIFx1MjAxQ2JvZ3VzIGNvbW1lbnRzXHUyMDFEIGluc3RlYWQgb2YgY29tbWVudHMgdG8gc2F2ZSBieWVzOiBgPD9jaGFybGllPmBcbiAqICAgaW5zdGVhZCBvZiBgPCEtLWNoYXJsaWUtLT5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBpbnRlbnRpb25hbGx5IGNyZWF0ZXMgcGFyc2UgZXJyb3JzIGluIG1hcmt1cCAoaG93IHBhcnNlXG4gKiAgID4gZXJyb3JzIGFyZSBoYW5kbGVkIGlzIHdlbGwgZGVmaW5lZCwgc28gdGhpcyB3b3JrcyBidXQgaXNuXHUyMDE5dCBwcmV0dHkpLlxuICogQHByb3BlcnR5IHtDaGFyYWN0ZXJSZWZlcmVuY2VzIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NoYXJhY3RlclJlZmVyZW5jZXNdXG4gKiAgIENvbmZpZ3VyZSBob3cgdG8gc2VyaWFsaXplIGNoYXJhY3RlciByZWZlcmVuY2VzIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbY2xvc2VFbXB0eUVsZW1lbnRzPWZhbHNlXVxuICogICBDbG9zZSBTVkcgZWxlbWVudHMgd2l0aG91dCBhbnkgY29udGVudCB3aXRoIHNsYXNoIChgL2ApIG9uIHRoZSBvcGVuaW5nIHRhZ1xuICogICBpbnN0ZWFkIG9mIGFuIGVuZCB0YWc6IGA8Y2lyY2xlIC8+YCBpbnN0ZWFkIG9mIGA8Y2lyY2xlPjwvY2lyY2xlPmBcbiAqICAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgU2VlIGB0aWdodFNlbGZDbG9zaW5nYCB0byBjb250cm9sIHdoZXRoZXIgYSBzcGFjZSBpcyB1c2VkIGJlZm9yZSB0aGVcbiAqICAgc2xhc2guXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgSFRNTCBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjbG9zZVNlbGZDbG9zaW5nPWZhbHNlXVxuICogICBDbG9zZSBzZWxmLWNsb3Npbmcgbm9kZXMgd2l0aCBhbiBleHRyYSBzbGFzaCAoYC9gKTogYDxpbWcgLz5gIGluc3RlYWQgb2ZcbiAqICAgYDxpbWc+YCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBTZWUgYHRpZ2h0U2VsZkNsb3NpbmdgIHRvIGNvbnRyb2wgd2hldGhlciBhIHNwYWNlIGlzIHVzZWQgYmVmb3JlIHRoZVxuICogICBzbGFzaC5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM9ZmFsc2VdXG4gKiAgIENvbGxhcHNlIGVtcHR5IGF0dHJpYnV0ZXM6IGdldCBgY2xhc3NgIGluc3RlYWQgb2YgYGNsYXNzPVwiXCJgIChkZWZhdWx0OlxuICogICBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogYm9vbGVhbiBhdHRyaWJ1dGVzIChzdWNoIGFzIGBoaWRkZW5gKSBhcmUgYWx3YXlzIGNvbGxhcHNlZC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtvbWl0T3B0aW9uYWxUYWdzPWZhbHNlXVxuICogICBPbWl0IG9wdGlvbmFsIG9wZW5pbmcgYW5kIGNsb3NpbmcgdGFncyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBGb3IgZXhhbXBsZSwgaW4gYDxvbD48bGk+b25lPC9saT48bGk+dHdvPC9saT48L29sPmAsIGJvdGggYDwvbGk+YCBjbG9zaW5nXG4gKiAgIHRhZ3MgY2FuIGJlIG9taXR0ZWQuXG4gKiAgIFRoZSBmaXJzdCBiZWNhdXNlIGl0XHUyMDE5cyBmb2xsb3dlZCBieSBhbm90aGVyIGBsaWAsIHRoZSBsYXN0IGJlY2F1c2UgaXRcdTIwMTlzXG4gKiAgIGZvbGxvd2VkIGJ5IG5vdGhpbmcuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ByZWZlclVucXVvdGVkPWZhbHNlXVxuICogICBMZWF2ZSBhdHRyaWJ1dGVzIHVucXVvdGVkIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge1F1b3RlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3F1b3RlPSdcIiddXG4gKiAgIFByZWZlcnJlZCBxdW90ZSB0byB1c2UgKGRlZmF1bHQ6IGAnXCInYCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcXVvdGVTbWFydD1mYWxzZV1cbiAqICAgVXNlIHRoZSBvdGhlciBxdW90ZSBpZiB0aGF0IHJlc3VsdHMgaW4gbGVzcyBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKiBAcHJvcGVydHkge1NwYWNlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NwYWNlPSdodG1sJ11cbiAqICAgV2hlbiBhbiBgPHN2Zz5gIGVsZW1lbnQgaXMgZm91bmQgaW4gdGhlIEhUTUwgc3BhY2UsIHRoaXMgcGFja2FnZSBhbHJlYWR5XG4gKiAgIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8gYW5kIGZyb20gdGhlIFNWRyBzcGFjZSB3aGVuIGVudGVyaW5nIGFuZCBleGl0aW5nXG4gKiAgIGl0IChkZWZhdWx0OiBgJ2h0bWwnYCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaGFzdCBpcyBub3QgWE1MLlxuICogICA+IEl0IHN1cHBvcnRzIFNWRyBhcyBlbWJlZGRlZCBpbiBIVE1MLlxuICogICA+IEl0IGRvZXMgbm90IHN1cHBvcnQgdGhlIGZlYXR1cmVzIGF2YWlsYWJsZSBpbiBYTUwuXG4gKiAgID4gUGFzc2luZyBTVkcgbWlnaHQgYnJlYWsgYnV0IGZyYWdtZW50cyBvZiBtb2Rlcm4gU1ZHIHNob3VsZCBiZSBmaW5lLlxuICogICA+IFVzZSBbYHhhc3RgXVt4YXN0XSBpZiB5b3UgbmVlZCB0byBzdXBwb3J0IFNWRyBhcyBYTUwuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdGlnaHRBdHRyaWJ1dGVzPWZhbHNlXVxuICogICBKb2luIGF0dHJpYnV0ZXMgdG9nZXRoZXIsIHdpdGhvdXQgd2hpdGVzcGFjZSwgaWYgcG9zc2libGU6IGdldFxuICogICBgY2xhc3M9XCJhIGJcInRpdGxlPVwiYyBkXCJgIGluc3RlYWQgb2YgYGNsYXNzPVwiYSBiXCIgdGl0bGU9XCJjIGRcImAgdG8gc2F2ZVxuICogICBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdGlnaHRDb21tYVNlcGFyYXRlZExpc3RzPWZhbHNlXVxuICogICBKb2luIGtub3duIGNvbW1hLXNlcGFyYXRlZCBhdHRyaWJ1dGUgdmFsdWVzIHdpdGgganVzdCBhIGNvbW1hIChgLGApLFxuICogICBpbnN0ZWFkIG9mIHBhZGRpbmcgdGhlbSBvbiB0aGUgcmlnaHQgYXMgd2VsbCAoYCxcdTI0MjBgLCB3aGVyZSBgXHUyNDIwYCByZXByZXNlbnRzIGFcbiAqICAgc3BhY2UpIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodERvY3R5cGU9ZmFsc2VdXG4gKiAgIERyb3AgdW5uZWVkZWQgc3BhY2VzIGluIGRvY3R5cGVzOiBgPCFkb2N0eXBlaHRtbD5gIGluc3RlYWQgb2ZcbiAqICAgYDwhZG9jdHlwZSBodG1sPmAgdG8gc2F2ZSBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodFNlbGZDbG9zaW5nPWZhbHNlXVxuICogICBEbyBub3QgdXNlIGFuIGV4dHJhIHNwYWNlIHdoZW4gY2xvc2luZyBzZWxmLWNsb3NpbmcgZWxlbWVudHM6IGA8aW1nLz5gXG4gKiAgIGluc3RlYWQgb2YgYDxpbWcgLz5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBvbmx5IHVzZWQgaWYgYGNsb3NlU2VsZkNsb3Npbmc6IHRydWVgIG9yXG4gKiAgID4gYGNsb3NlRW1wdHlFbGVtZW50czogdHJ1ZWAuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdXBwZXJEb2N0eXBlPWZhbHNlXVxuICogICBVc2UgYSBgPCFET0NUWVBFXHUyMDI2YCBpbnN0ZWFkIG9mIGA8IWRvY3R5cGVcdTIwMjZgIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIFVzZWxlc3MgZXhjZXB0IGZvciBYSFRNTC5cbiAqIEBwcm9wZXJ0eSB7UmVhZG9ubHlBcnJheTxzdHJpbmc+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZvaWRzXVxuICogICBUYWcgbmFtZXMgb2YgZWxlbWVudHMgdG8gc2VyaWFsaXplIHdpdGhvdXQgY2xvc2luZyB0YWcgKGRlZmF1bHQ6IGBodG1sLXZvaWQtZWxlbWVudHNgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogSXRcdTIwMTlzIGhpZ2hseSB1bmxpa2VseSB0aGF0IHlvdSB3YW50IHRvIHBhc3MgdGhpcywgYmVjYXVzZVxuICogICA+IGhhc3QgaXMgbm90IGZvciBYTUwsIGFuZCBIVE1MIHdpbGwgbm90IGFkZCBtb3JlIHZvaWQgZWxlbWVudHMuXG4gKlxuICogQHR5cGVkZWYgeydcIicgfCBcIidcIn0gUXVvdGVcbiAqICAgSFRNTCBxdW90ZXMgZm9yIGF0dHJpYnV0ZSB2YWx1ZXMuXG4gKlxuICogQHR5cGVkZWYge09taXQ8UmVxdWlyZWQ8e1trZXkgaW4ga2V5b2YgT3B0aW9uc106IEV4Y2x1ZGU8T3B0aW9uc1trZXldLCBudWxsIHwgdW5kZWZpbmVkPn0+LCAnc3BhY2UnIHwgJ3F1b3RlJz59IFNldHRpbmdzXG4gKlxuICogQHR5cGVkZWYgeydodG1sJyB8ICdzdmcnfSBTcGFjZVxuICogICBOYW1lc3BhY2UuXG4gKlxuICogQHR5cGVkZWYgU3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHByb3BlcnR5IHsobm9kZTogTm9kZXMsIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQsIHBhcmVudDogUGFyZW50cyB8IHVuZGVmaW5lZCkgPT4gc3RyaW5nfSBvbmVcbiAqICAgU2VyaWFsaXplIG9uZSBub2RlLlxuICogQHByb3BlcnR5IHsobm9kZTogUGFyZW50cyB8IHVuZGVmaW5lZCkgPT4gc3RyaW5nfSBhbGxcbiAqICAgU2VyaWFsaXplIHRoZSBjaGlsZHJlbiBvZiBhIHBhcmVudCBub2RlLlxuICogQHByb3BlcnR5IHtTZXR0aW5nc30gc2V0dGluZ3NcbiAqICAgVXNlciBjb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtTY2hlbWF9IHNjaGVtYVxuICogICBDdXJyZW50IHNjaGVtYS5cbiAqIEBwcm9wZXJ0eSB7UXVvdGV9IHF1b3RlXG4gKiAgIFByZWZlcnJlZCBxdW90ZS5cbiAqIEBwcm9wZXJ0eSB7UXVvdGV9IGFsdGVybmF0aXZlXG4gKiAgIEFsdGVybmF0aXZlIHF1b3RlLlxuICovXG5cbmltcG9ydCB7aHRtbFZvaWRFbGVtZW50c30gZnJvbSAnaHRtbC12b2lkLWVsZW1lbnRzJ1xuaW1wb3J0IHtodG1sLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtoYW5kbGV9IGZyb20gJy4vaGFuZGxlL2luZGV4LmpzJ1xuXG4vKiogQHR5cGUge09wdGlvbnN9ICovXG5jb25zdCBlbXB0eU9wdGlvbnMgPSB7fVxuXG4vKiogQHR5cGUge0NoYXJhY3RlclJlZmVyZW5jZXN9ICovXG5jb25zdCBlbXB0eUNoYXJhY3RlclJlZmVyZW5jZXMgPSB7fVxuXG4vKiogQHR5cGUge0FycmF5PG5ldmVyPn0gKi9cbmNvbnN0IGVtcHR5Q2hpbGRyZW4gPSBbXVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBoYXN0IGFzIEhUTUwuXG4gKlxuICogQHBhcmFtIHtBcnJheTxSb290Q29udGVudD4gfCBOb2Rlc30gdHJlZVxuICogICBUcmVlIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIEhUTUwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0h0bWwodHJlZSwgb3B0aW9ucykge1xuICBjb25zdCBvcHRpb25zXyA9IG9wdGlvbnMgfHwgZW1wdHlPcHRpb25zXG4gIGNvbnN0IHF1b3RlID0gb3B0aW9uc18ucXVvdGUgfHwgJ1wiJ1xuICBjb25zdCBhbHRlcm5hdGl2ZSA9IHF1b3RlID09PSAnXCInID8gXCInXCIgOiAnXCInXG5cbiAgaWYgKHF1b3RlICE9PSAnXCInICYmIHF1b3RlICE9PSBcIidcIikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBxdW90ZSBgJyArIHF1b3RlICsgJ2AsIGV4cGVjdGVkIGBcXCdgIG9yIGBcImAnKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgY29uc3Qgc3RhdGUgPSB7XG4gICAgb25lLFxuICAgIGFsbCxcbiAgICBzZXR0aW5nczoge1xuICAgICAgb21pdE9wdGlvbmFsVGFnczogb3B0aW9uc18ub21pdE9wdGlvbmFsVGFncyB8fCBmYWxzZSxcbiAgICAgIGFsbG93UGFyc2VFcnJvcnM6IG9wdGlvbnNfLmFsbG93UGFyc2VFcnJvcnMgfHwgZmFsc2UsXG4gICAgICBhbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM6IG9wdGlvbnNfLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycyB8fCBmYWxzZSxcbiAgICAgIHF1b3RlU21hcnQ6IG9wdGlvbnNfLnF1b3RlU21hcnQgfHwgZmFsc2UsXG4gICAgICBwcmVmZXJVbnF1b3RlZDogb3B0aW9uc18ucHJlZmVyVW5xdW90ZWQgfHwgZmFsc2UsXG4gICAgICB0aWdodEF0dHJpYnV0ZXM6IG9wdGlvbnNfLnRpZ2h0QXR0cmlidXRlcyB8fCBmYWxzZSxcbiAgICAgIHVwcGVyRG9jdHlwZTogb3B0aW9uc18udXBwZXJEb2N0eXBlIHx8IGZhbHNlLFxuICAgICAgdGlnaHREb2N0eXBlOiBvcHRpb25zXy50aWdodERvY3R5cGUgfHwgZmFsc2UsXG4gICAgICBib2d1c0NvbW1lbnRzOiBvcHRpb25zXy5ib2d1c0NvbW1lbnRzIHx8IGZhbHNlLFxuICAgICAgdGlnaHRDb21tYVNlcGFyYXRlZExpc3RzOiBvcHRpb25zXy50aWdodENvbW1hU2VwYXJhdGVkTGlzdHMgfHwgZmFsc2UsXG4gICAgICB0aWdodFNlbGZDbG9zaW5nOiBvcHRpb25zXy50aWdodFNlbGZDbG9zaW5nIHx8IGZhbHNlLFxuICAgICAgY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM6IG9wdGlvbnNfLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzIHx8IGZhbHNlLFxuICAgICAgYWxsb3dEYW5nZXJvdXNIdG1sOiBvcHRpb25zXy5hbGxvd0Rhbmdlcm91c0h0bWwgfHwgZmFsc2UsXG4gICAgICB2b2lkczogb3B0aW9uc18udm9pZHMgfHwgaHRtbFZvaWRFbGVtZW50cyxcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZXM6XG4gICAgICAgIG9wdGlvbnNfLmNoYXJhY3RlclJlZmVyZW5jZXMgfHwgZW1wdHlDaGFyYWN0ZXJSZWZlcmVuY2VzLFxuICAgICAgY2xvc2VTZWxmQ2xvc2luZzogb3B0aW9uc18uY2xvc2VTZWxmQ2xvc2luZyB8fCBmYWxzZSxcbiAgICAgIGNsb3NlRW1wdHlFbGVtZW50czogb3B0aW9uc18uY2xvc2VFbXB0eUVsZW1lbnRzIHx8IGZhbHNlXG4gICAgfSxcbiAgICBzY2hlbWE6IG9wdGlvbnNfLnNwYWNlID09PSAnc3ZnJyA/IHN2ZyA6IGh0bWwsXG4gICAgcXVvdGUsXG4gICAgYWx0ZXJuYXRpdmVcbiAgfVxuXG4gIHJldHVybiBzdGF0ZS5vbmUoXG4gICAgQXJyYXkuaXNBcnJheSh0cmVlKSA/IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiB0cmVlfSA6IHRyZWUsXG4gICAgdW5kZWZpbmVkLFxuICAgIHVuZGVmaW5lZFxuICApXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGEgbm9kZS5cbiAqXG4gKiBAdGhpcyB7U3RhdGV9XG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7Tm9kZXN9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5mdW5jdGlvbiBvbmUobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICByZXR1cm4gaGFuZGxlKG5vZGUsIGluZGV4LCBwYXJlbnQsIHRoaXMpXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFsbCBjaGlsZHJlbiBvZiBgcGFyZW50YC5cbiAqXG4gKiBAdGhpcyB7U3RhdGV9XG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCB3aG9zZSBjaGlsZHJlbiB0byBzZXJpYWxpemUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWxsKHBhcmVudCkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdHMgPSBbXVxuICBjb25zdCBjaGlsZHJlbiA9IChwYXJlbnQgJiYgcGFyZW50LmNoaWxkcmVuKSB8fCBlbXB0eUNoaWxkcmVuXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICByZXN1bHRzW2luZGV4XSA9IHRoaXMub25lKGNoaWxkcmVuW2luZGV4XSwgaW5kZXgsIHBhcmVudClcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzLmpvaW4oJycpXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQUFBLFNBQTJDQSxJQUFNQyxJQUFBQTtBQUMxQixrQkFBQSxPQUFaQyxXQUEwQyxZQUFBLE9BQVhDLFVBQ3hDQSxRQUFPRCxVQUFVRCxHQUFBQSxJQUNRLGNBQUEsT0FBWEcsVUFBeUJBLE9BQU9DLE1BQzlDRCxPQUFPLENBQUEsR0FBSUgsRUFBQUEsSUFDZSxZQUFBLE9BQVpDLFVBQ2RBLFFBQWUsUUFBSUQsR0FBQUEsSUFFbkJELEdBQVksUUFBSUMsR0FBQUE7SUFDakIsRUFBRUssTUFBTSxPQUNULE1BQUE7QUFBQTtBQ1RBLFVBQUlDLEtBQXNCLEVDQTFCQSxHQUF3QixDQUFDTCxJQUFTTSxPQUFBQTtBQUNqQyxpQkFBUUMsTUFBT0Q7QUFDWEQsVUFBQUEsR0FBb0JHLEVBQUVGLElBQVlDLEVBQUFBLEtBQUFBLENBQVNGLEdBQW9CRyxFQUFFUixJQUFTTyxFQUFBQSxLQUM1RUUsT0FBT0MsZUFBZVYsSUFBU08sSUFBSyxFQUFFSSxZQUFBQSxNQUFrQkMsS0FBS04sR0FBV0MsRUFBQUEsRUFBQUEsQ0FBQUE7TUFFMUUsR0NOREYsR0FBd0IsQ0FBQ1EsSUFBS0MsT0FBVUwsT0FBT00sVUFBVUMsZUFBZUMsS0FBS0osSUFBS0MsRUFBQUEsR0NDbEZULEdBQXlCTCxDQUFBQSxPQUFBQTtBQUNILHVCQUFBLE9BQVhrQixVQUEwQkEsT0FBT0MsZUFDMUNWLE9BQU9DLGVBQWVWLElBQVNrQixPQUFPQyxhQUFhLEVBQUVDLE9BQU8sU0FBQSxDQUFBLEdBRTdEWCxPQUFP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Q1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sY0FBYztBQUFBLEVBQ2QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLEVBQ1osY0FBYztBQUFBLEVBQ2QsVUFBVTtBQUFBLEVBQ1YsWUFBWTtBQUFBLEVBQ1osT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsV0FBVztBQUFBLEVBQ1gsVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sVUFBVTtBQUFBLEVBQ1YsT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVBQ1osT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsY0FBYztBQUFBLEVBQ2QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsYUFBYTtBQUFBLEVBQ2IsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUFBLEVBQ1YsaUJBQWlCO0FBQUEsRUFDakIsWUFBWTtBQUFBLEVBQ1osY0FBYztBQUFBLEVBQ2QsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsZ0JBQWdCO0FBQUEsRUFDaEIsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsaUJBQWlCO0FBQUEsRUFDakIsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsNEJBQTRCO0FBQUEsRUFDNUIsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AscUJBQXFCO0FBQUEsRUFDckIsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsWUFBWTtBQUFBLEVBQ1osVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsaUJBQWlCO0FBQUEsRUFDakIsTUFBTTtBQUFBLEVBQ04sYUFBYTtBQUFBLEVBQ2IsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsYUFBYTtBQUFBLEVBQ2Isc0JBQXNCO0FBQUEsRUFDdEIsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsYUFBYTtBQUFBLEVBQ2IsWUFBWTtBQUFBLEVBQ1osYUFBYTtBQUFBLEVBQ2IsV0FBVztBQUFBLEVBQ1gsV0FBVztBQUFBLEVBQ1gsZUFBZTtBQUFBLEVBQ2Ysa0JBQWtCO0FBQUEsRUFDbEIsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsYUFBYTtBQUFBLEVBQ2IsUUFBUTtBQUFBLEVBQ1IsZUFBZTtBQUFBLEVBQ2YsU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsZ0JBQWdCO0FBQUEsRUFDaEIsZ0JBQWdCO0FBQUEsRUFDaEIsY0FBYztBQUFBLEVBQ2QsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLEVBQ1osTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsY0FBYztBQUFBLEVBQ2QsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsV0FBVztBQUFBLEVBQ1gsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04scUJBQXFCO0FBQUEsRUFDckIsVUFBVTtBQUFBLEVBQ1YsYUFBYTtBQUFBLEVBQ2IsT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsbUJBQW1CO0FBQUEsRUFDbkIsY0FBYztBQUFBLEVBQ2QsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsUUFBUTtBQUFBLEVBQ1IsY0FBYztBQUFBLEVBQ2QsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsVUFBVTtBQUFBLEVBQ1YsZ0JBQWdCO0FBQUEsRUFDaEIsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sY0FBYztBQUFBLEVBQ2QsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsY0FBYztBQUFBLEVBQ2QsYUFBYTtBQUFBLEVBQ2IsWUFBWTtBQUFBLEVBQ1osU0FBUztBQUFBLEVBQ1QsY0FBYztBQUFBLEVBQ2QsTUFBTTtBQUFBLEVBQ04sV0FBVztBQUFBLEVBQ1gsY0FBYztBQUFBLEVBQ2QsVUFBVTtBQUFBLEVBQ1YsY0FBYztBQUFBLEVBQ2QsWUFBWTtBQUFBLEVBQ1osYUFBYTtBQUFBLEVBQ2IsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1Isa0JBQWtCO0FBQUEsRUFDbEIsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsaUJBQWlCO0FBQUEsRUFDakIsY0FBYztBQUFBLEVBQ2QsZ0JBQWdCO0FBQUEsRUFDaEIsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsWUFBWTtBQUFBLEVBQ1osT0FBTztBQUFBLEVBQ1AsaUJBQWlCO0FBQUEsRUFDakIsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sY0FBYztBQUFBLEVBQ2QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsaUJBQWlCO0FBQUEsRUFDakIsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsaUJBQWlCO0FBQUEsRUFDakIsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1Qs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QVE7QUFBQSxFQUNSLFlBQVc7QUFBQSxFQUNYLFlBQVc7QUFBQSxFQUNYLE1BQUs7QUFBQSxFQUNMLHFCQUFvQjtBQUFBLEVBQ3BCLFFBQU87QUFBQSxFQUNQLFVBQVM7QUFBQSxFQUNULGFBQVk7QUFBQSxFQUNaLE9BQU07QUFBQSxFQUNOLFdBQVU7QUFBQSxFQUNWLFlBQVc7QUFBQSxFQUNYLFNBQVE7QUFBQSxFQUNSLFdBQVU7QUFBQSxFQUNWLFVBQVM7QUFBQSxFQUNULGNBQWE7QUFBQSxFQUNiLFFBQU87QUFBQSxFQUNQLFFBQU87QUFBQSxFQUNQLFFBQU87QUFBQSxFQUNQLFNBQVE7QUFBQSxFQUNSLG1CQUFrQjtBQUFBLEVBQ2xCLGNBQWE7QUFBQSxFQUNiLFFBQU87QUFBQSxFQUNQLFFBQU87QUFBQSxFQUNQLFFBQU87QUFBQSxFQUNQLFNBQVE7QUFBQSxFQUNSLFNBQVE7QUFBQSxFQUNSLE9BQU07QUFBQSxFQUNOLE9BQU07QUFBQSxFQUNOLFFBQU87QUFBQSxFQUNQLGNBQWE7QUFBQSxFQUNiLFFBQU87QUFBQSxFQUNQLFNBQVE7QUFBQSxFQUNSLFFBQU87QUFBQSxFQUNQLFVBQVM7QUFBQSxFQUNULFlBQVc7QUFBQSxFQUNYLFFBQU87QUFBQSxFQUNQLE1BQUs7QUFBQSxFQUNMLFVBQVM7QUFBQSxFQUNULFVBQVM7QUFBQSxFQUNULFVBQVM7QUFBQSxFQUNULGFBQVk7QUFBQSxFQUNaLE9BQU07QUFBQSxFQUNOLFVBQVM7QUFBQSxFQUNULE1BQUs7QUFBQSxFQUNMLGNBQWE7QUFBQSxFQUNiLFNBQVE7QUFBQSxFQUNSLFFBQU87QUFBQSxFQUNQLE9BQU07QUFBQSxFQUNOLFVBQVM7QUFBQSxFQUNULGNBQWE7QUFBQSxFQUNiLGFBQVk7QUFBQSxFQUNaLFlBQVc7QUFBQSxFQUNYLFNBQVE7QUFBQSxFQUNSLGNBQWE7QUFBQSxFQUNiLE1BQUs7QUFBQSxFQUNMLFdBQVU7QUFBQSxFQUNWLGNBQWE7QUFBQSxFQUNiLGNBQWE7QUFBQSxFQUNiLFVBQVM7QUFBQSxFQUNULFVBQVM7QUFBQSxF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QSxFQUNSLFNBQVM7QUFBQSxFQUNULFFBQVE7QUFBQSxFQUNSLGlCQUFpQjtBQUFBLEVBQ2pCLFVBQVU7QUFBQSxFQUNWLGtCQUFrQjtBQUFBLEVBQ2xCLGdCQUFnQjtBQUFBLEVBQ2hCLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLE1BQU07QUFBQSxFQUNOLDRCQUE0QjtBQUFBLEVBQzVCLFFBQVE7QUFBQSxFQUNSLFdBQVc7QUFBQSxFQUNYLGdDQUFnQztBQUFBLEVBQ2hDLHNCQUFzQjtBQUFBLEVBQ3RCLFVBQVU7QUFBQSxFQUNWLFlBQVk7QUFBQSxFQUNaLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLGFBQWE7QUFBQSxFQUNiLE1BQU07QUFBQSxFQUNOLFVBQVU7QUFBQSxFQUNWLFdBQVc7QUFBQSxFQUNYLFVBQVU7QUFBQSxFQUNWLFFBQVE7QUFBQSxFQUNSLGNBQWM7QUFBQSxFQUNkLFdBQVc7QUFBQSxFQUNYLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLGNBQWM7QUFBQSxFQUNkLFFBQVE7QUFBQSxFQUNSLFNBQVM7QUFBQSxFQUNULFNBQVM7QUFBQSxFQUNULFVBQVU7QUFBQSxFQUNWLFNBQVM7QUFBQSxFQUNULFNBQVM7QUFBQSxFQUNULFFBQVE7QUFBQSxFQUNSLFVBQVU7QUFBQSxFQUNWLFFBQVE7QUFBQSxFQUNSLGNBQWM7QUFBQSxFQUNkLFlBQVk7QUFBQSxFQUNaLFdBQVc7QUFBQSxFQUNYLE9BQU87QUFBQSxFQUNQLFlBQVk7QUFBQSxFQUNaLFVBQVU7QUFBQSxFQUNWLGFBQWE7QUFBQSxFQUNiLE9BQU87QUFBQSxFQUNQLFdBQVc7QUFBQSxFQUNYLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLE9BQU87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QUFJLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsT0FBSyxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxTQUFPLFdBQVVBLEdBQUUsT0FBSyxXQUFVQSxHQUFFLE9BQUssV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsT0FBSyxXQUFVQSxHQUFFLFNBQU8sV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLFNBQU8sV0FBVUEsR0FBRSxpQkFBZSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxpQkFBZSxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxVQUFRLFdBQVVBLEdBQUUsT0FBSyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxXQUFTLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxXQUFTLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxVQUFRLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLGVBQWEsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxXQUFTLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxVQUFRLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsT0FBSyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsT0FBSyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxVQUFRLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFNBQU8sV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxlQUFhLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsdUJBQXFCLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLGVBQWEsV0FBVUEsR0FBRSxpQkFBZSxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxVQUFRLFdBQVVBLEdBQUUsbUJBQWlCLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLGVBQWEsV0FBVUEsR0FBRSxlQUFhLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxrQkFBZ0IsV0FBVUEsR0FBRSxvQkFBa0IsV0FBVUEsR0FBRSxrQkFBZ0IsV0FBVUEsR0FBRSxrQkFBZ0IsV0FBVUEsR0FBRSxlQUFhLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxXQUFTLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFNBQU8sV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FB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LEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLFNBQU8sR0FBR0QsSUFBRSxDQUFDLElBQUcsTUFBSyxHQUFHLEdBQUVDLEVBQUM7QUFBQztBQUFoN00sSUFBazdNLEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLFNBQU8sR0FBR0QsSUFBRSxDQUFDLElBQUcsS0FBSSxHQUFHLEdBQUVDLEVBQUM7QUFBQztBQUE5OU0sSUFBZytNLEtBQUcsU0FBU0QsSUFBRTtBQUFDLFNBQU0sWUFBVSxPQUFPQSxLQUFFLFNBQVNBLElBQUU7QUFBQyxRQUFJQztBQUFFLFFBQUcsT0FBTyxLQUFLLENBQUMsRUFBRSxLQUFNLFNBQVNDLElBQUU7QUFBQyxVQUFHLEVBQUVBLEVBQUMsRUFBRSxLQUFLRixFQUFDO0FBQUUsZUFBT0MsS0FBRUMsSUFBRTtBQUFBLElBQUUsQ0FBRSxHQUFFLENBQUNELE1BQUcsQ0FBQyxFQUFFLFFBQVFELEVBQUMsTUFBSUMsS0FBRSxFQUFFLE1BQUssQ0FBQ0E7QUFBRSxZQUFNLElBQUksTUFBTSxDQUFDO0FBQUUsV0FBT0E7QUFBQSxFQUFDLEVBQUVELEVBQUMsSUFBRSxTQUFTQSxJQUFFO0FBQUMsUUFBSUMsSUFBRUUsS0FBRSxPQUFHQyxLQUFFLEVBQUUsT0FBTyxLQUFLSixFQUFDLENBQUM7QUFBRSxRQUFHLEVBQUVJLEVBQUMsTUFBSUgsS0FBRSxFQUFFRyxFQUFDLElBQUdILE1BQUdBLE9BQUksRUFBRSxLQUFJO0FBQUMsVUFBSUksS0FBRSxPQUFPLFFBQVFMLEVBQUMsRUFBRSxLQUFNLFNBQVNBLElBQUU7QUFBQyxlQUFNLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBT0EsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLE1BQUMsQ0FBRSxHQUFFNEIsS0FBRSxPQUFPLFFBQVE1QixFQUFDLEVBQUUsS0FBTSxTQUFTQSxJQUFFO0FBQUMsZUFBTSxFQUFFLEVBQUUsS0FBSyxHQUFHLE9BQU9BLEdBQUUsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE9BQU9BLEdB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QUd0QjtBQUFDLEdBQUU7QUFBdnFQLElBQTBxUCxPQUFLLElBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFFLFNBQVNOLElBQUU7QUFBQyxNQUFJQyxLQUFFLEVBQUMsR0FBRSxFQUFFLEdBQUcsT0FBT0QsR0FBRSxDQUFDLENBQUMsR0FBRSxHQUFFLEVBQUUsR0FBRyxPQUFPQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEdBQUUsRUFBRSxHQUFHLE9BQU9BLEdBQUUsQ0FBQyxDQUFDLEVBQUM7QUFBRSxTQUFPLEVBQUVBLElBQUUsR0FBRyxNQUFJQyxHQUFFLElBQUUsS0FBSyxJQUFJLEVBQUUsR0FBRyxPQUFPRCxHQUFFLENBQUMsR0FBRSxJQUFFLEdBQUUsQ0FBQyxJQUFHQztBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTRCxJQUFFO0FBQUMsU0FBTyxLQUFLLElBQUlBLEVBQUM7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0EsSUFBRTtBQUFDLE1BQUlDLEtBQUUsRUFBRSxHQUFHLE9BQU9ELEdBQUUsQ0FBQyxDQUFDLEdBQUVFLEtBQUUsRUFBRSxHQUFHLE9BQU9GLEdBQUUsQ0FBQyxDQUFDLEdBQUVHLEtBQUUsRUFBRSxFQUFFSCxHQUFFLENBQUMsR0FBRUMsSUFBRUMsRUFBQztBQUFFLFNBQU8sRUFBRUYsSUFBRSxHQUFHLE1BQUlHLEdBQUUsSUFBRSxHQUFHSCxHQUFFLENBQUMsSUFBR0c7QUFBQyxHQUFFLEVBQUUsRUFBRSxJQUFJLElBQUUsU0FBU0gsSUFBRTtBQUFDLE1BQUlDLEtBQUUsRUFBRSxHQUFHLE9BQU9ELEdBQUUsQ0FBQyxDQUFDLEdBQUVFLEtBQUUsRUFBRSxHQUFHLE9BQU9GLEdBQUUsQ0FBQyxDQUFDLEdBQUVHLEtBQUUsRUFBRSxHQUFHLE9BQU9ILEdBQUUsQ0FBQyxDQUFDLEdBQUVJLEtBQUUsRUFBRSxHQUFHLE9BQU9KLEdBQUUsQ0FBQyxDQUFDLEdBQUVLLEtBQUUsRUFBRUosSUFBRUMsSUFBRUMsSUFBRUMsRUFBQztBQUFFLFNBQU8sRUFB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QUVELElBQUVFLEVBQUMsRUFBRSxJQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPRyxLQUFFLEVBQUUsSUFBSSxFQUFFSCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUksRUFBRUEsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxDQUFFO0FBQUMsR0FBRSxFQUFFLE9BQUssU0FBU0MsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFNBQU9GLEdBQUVELElBQUVFLEVBQUMsRUFBRSxJQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPRyxLQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUVILEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEVBQUMsR0FBRSxNQUFJLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUVBLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEVBQUMsR0FBRSxHQUFHQSxHQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7QUFBQSxFQUFDLENBQUU7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0QsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFNBQU9ILEdBQUVELElBQUVFLEVBQUMsRUFBRSxJQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPRyxLQUFFLEVBQUUsSUFBSSxFQUFFSCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVJLEVBQUMsSUFBRSxHQUFHLElBQUksRUFBRUosR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxHQUFFSSxHQUFFLFFBQVE7QUFBQSxFQUFDLENBQUU7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0gsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUgsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsR0FBRUksRUFBQyxJQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUVKLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEVBQUMsR0FBRSxHQUFHQSxHQUFFLENBQUMsRUFBQyxDQUFDLEdBQUVJLEdBQUUsUUFBUTtBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTTCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0gsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUMsR0FBRUgsR0FBRSxHQUFFLEdBQUVBLEdBQUUsR0FBRSxHQUFFQSxHQUFFLEVBQUMsR0FBRUksRUFBQyxJQUFFLEdBQUcsSUFBSSxFQUFFSixHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVJLEdBQUUsUUFBUTtBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRUgsRUFBQyxHQUFFLEVBQUMsR0FBRSxHQUFHQSxHQUFFLENBQUMsRUFBQyxDQUFDLEdBQUVJLEVBQUMsSUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFSixHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FB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RyxJQUFJQSxFQUFDO0FBQUMsR0FBRSxFQUFFLE9BQUssU0FBU0gsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsS0FBSyxJQUFJSCxJQUFFQyxFQUFDO0FBQUUsU0FBT0UsR0FBRSxJQUFFRCxLQUFFLE1BQUksR0FBR0MsR0FBRSxDQUFDLElBQUUsR0FBR0EsR0FBRSxDQUFDLEdBQUVELEtBQUUsRUFBRSxJQUFJQyxFQUFDLElBQUUsR0FBRyxLQUFLQSxFQUFDO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEtBQUssSUFBSUosSUFBRUMsRUFBQztBQUFFLFNBQU8sT0FBT0csR0FBRSxHQUFFRixLQUFFLEVBQUUsSUFBSUUsSUFBRUQsRUFBQyxJQUFFLEdBQUcsSUFBSUMsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxFQUFFLE9BQUssU0FBU0gsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsS0FBSyxJQUFJSixJQUFFQyxFQUFDO0FBQUUsU0FBT0MsS0FBRSxFQUFFLElBQUlFLElBQUVELEVBQUMsSUFBRSxHQUFHLEtBQUtDLElBQUVELEdBQUUsUUFBUTtBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUMsR0FBRUksS0FBRSxFQUFFRCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDO0FBQUUsU0FBTyxPQUFPQSxHQUFFLEdBQUUsT0FBT0MsR0FBRSxHQUFFSCxLQUFFLEVBQUUsSUFBSUcsSUFBRUYsRUFBQyxJQUFFLEdBQUcsSUFBSUMsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxFQUFFLE9BQUssU0FBU0gsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsS0FBSyxJQUFJSixJQUFFQyxFQUFDLEdBQUVJLEtBQUUsRUFBRUQsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDO0FBQUUsU0FBT0YsS0FBRSxFQUFFLElBQUlHLElBQUVGLEVBQUMsSUFBRSxHQUFHLEtBQUtDLElBQUVELEdBQUUsUUFBUTtBQUFDLEdBQUU7QUFBejFZLElBQTQxWSxLQUFHLFNBQVNGLElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEVBQUVGLEdBQUUsR0FBRUMsRUFBQyxHQUFFRSxLQUFFLEVBQUVILEdBQUUsR0FBRUMsRUFBQyxHQUFFRyxLQUFFLEVBQUVKLEdBQUUsR0FBRUMsRUFBQztBQUFFLFNBQU8sRUFBRSxFQUFDLEdBQUVDLElBQUUsR0FBRUMsSUFBRSxHQUFFQyxHQUFDLEdBQUUsRUFBRUosSUFBRSxHQUFHLElBQUUsRUFBQyxHQUFFLEVBQUVBLEdBQUUsR0FBRUMsRUFBQyxFQUFDLElBQUUsQ0FBQyxDQUFDO0FBQUM7QUFBbDhZLElBQW84WSxLQUFHLFNBQVNELElBQUVDLElBQUU7QUFBQyxTQUFPLEVBQUUsRUFBQyxHQUFFLEVBQUVELEdBQUUsR0FBRUMsRUFBQyxHQUFFLEdBQUUsRUFBRUQsR0FBRSxHQUFFQyxFQUFDLEdBQUUsR0FBRSxFQUFFRCxHQUFFLEdBQUVDLEVBQUMsRUFBQyxHQUFFLEVBQUVELElBQUUsR0FBRyxJQUFFLEVBQUMsR0FBRSxFQUFFQSxHQUFFLEdBQUVDLEVBQUMsRUFBQyxJQUFFLENBQUMsQ0FBQztBQUFDO0FBQTFoWixJQUE0aFosS0FBRyxTQUFTRixJQUFFQyxJQUFFO0FBQUMsU0FBTSxFQUFDLEdBQUUsRUFBRUQsR0FBRSxHQUFFQyxFQUFDLEdBQUUsR0FBRSxFQUFFRCxHQUFFLEdBQUVDLEVBQUMsR0FBRSxHQUFFLEVBQUVELEdBQUUsR0FBRUMsRUFBQyxHQUFFLEdBQUUsRUFBRUQsR0FBRSxHQUFFQyxFQUFDLEVBQUM7QUFBQztBQUFobVosSUFBa21aLEtBQUcsU0FBU0QsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFNBQU9BLEdBQUUsR0FBR0gsSUFBRUMsRUFBQyxHQUFFQyxFQUFDO0FBQUM7QUFBMW9aLElBQTRvWixLQUFHLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxFQUFBRixLQUFFLE1BQUlBLEtBQUU7QUFBRyxNQUFJRyxLQUFFLFNBQVNMLElBQUVDLElBQUVDLElBQUU7QUFBQyxRQUFJQyxLQUFFRCxLQUFFLEdBQUVFLE1BQUdILEdBQUUsSUFBRUQsR0FBRSxLQUFHRyxJQUFFRSxNQUFHSixHQUFFLElBQUVELEdBQUUsS0FBR0csSUFBRXlCLE1BQUczQixHQUFFLElBQUVELEdBQUUsS0FBR0csSUFBRUcsS0FBRSxHQUFHTixHQUFFLENBQUMsR0FBRU8sTUFBRyxHQUFHTixHQUFFLENBQUMsSUFBRUssTUFBR0g7QUFBRSxXQUFPLE1BQU1ELEVBQUMsRUFBRSxLQUFLLElBQUksRUFBRSxJQUFLLFNBQVNBLElBQUVNLElBQUU7QUFBQyxhQUFPLE1BQUlBLEtBQUVSLEtBQUVRLE9BQUlMLEtBQUVGLEtBQUUsRUFBQyxHQUFFLEVBQUVELEdBQUUsSUFBRUksS0FBRUksRUFBQyxHQUFFLEdBQUUsRUFBRVIsR0FBRSxJQUFFSyxLQUFFRyxFQUFDLEdBQUUsR0FBRSxFQUFFUixHQUFFLElBQUU0QixLQUFFcEIsRUFBQyxHQUFFLEdBQUUsRUFBRUYsS0FBRUMsS0FBRUMsRUFBQyxFQUFDO0FBQUEsSUFBQyxDQUFFO0FBQUEsRUFBQyxFQUFFLEdBQUdSLEVBQUMsR0FBRSxHQUFHQyxFQUFDLEdBQUVDLEVBQUM7QUFBRSxTQUFPRyxHQUFFLElBQUssU0FBU0wsSUFBRTtBQUFDLFdBQU9JLEdBQUVKLElBQUVHLEVBQUM7QUFBQSxFQUFDLENBQUU7QUFBQztBQUF4OFosSUFBMDhaLEtBQUcsV0FBVTtBQUFDLFdBQVNELEdBQUVGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUMsSUFBRyxLQUFLLFdBQVMsRUFBRUEsSUFBRUQsRUFBQyxHQUFFLEtBQUssTUFBSSxHQUFHQSxFQUFDLEdBQUUsS0FBSyxVQUFVLEdBQUUsS0FBSyxXQUFXO0FBQUEsRUFBQztBQUFDLFNBQU9FLEdBQUUsVUFBVSxZQUFVLFdBQVU7QUFBQyxTQUFLLE1BQUksRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsS0FBSyxJQUFJLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUEsR0FBRSxVQUFVLG9CQUFrQixXQUFVO0FBQUMsU0FBSyxNQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLEtBQUssR0FBRSxLQUFLLEtBQUssR0FBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEtBQUssSUFBSSxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVBLEdBQUUsVUFBVSxZQUFVLFdBQVU7QUFBQyxTQUFLLE1BQUksRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLElBQUksR0FBRSxLQUFLLElBQUksR0FBRSxLQUFLLElBQUksQ0FBQztBQUFBLEVBQUMsR0FBRUEsR0FBRSxVQUFVLGFBQVcsV0FBVTtBQUFDLFNBQUssT0FBSyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxDQUFDO0FBQUEsRUFBQyxHQUFFQSxHQUFFLFVBQVUsbUJBQWlCLFdBQVU7QUFBQyxXQUFPLEtBQUssVUFBVSxHQUFFLEtBQUssV0FBVyxHQUFFO0FBQUEsRUFBSSxHQUFFQSxHQUFFLFVBQVUsbUJBQWlCLFdBQVU7QUFBQyxXQUFPLEtBQUssVUFBVSxHQUFFLEtBQUssV0FBVyxHQUFFO0FBQUEsRUFBSSxHQUFFQSxHQUFFLFVBQVUsa0JBQWdCLFdBQVU7QUFBQyxXQUFPLEtBQUssa0JBQWtCLEdBQUUsS0FBSyxVQUFVLEdBQUU7QUFBQSxFQUFJLEdBQUVBLEdBQUUsVUFBVSxhQUFXLFNBQVNELElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEtBQUssV0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEtBQUssUUFBUSxHQUFFQSxFQUFDLEdBQUU7QUFBQSxFQUFJLEdBQUVDLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssSUFBSSxJQUFFLEVBQUVBLEVBQUMsR0FBRSxLQUFLLGlCQUFpQjtBQUFBLEVBQUMsR0FBRUUsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLGlCQUFpQjtBQUFBLEVBQUMsR0FBRUUsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLGlCQUFpQjtBQUFBLEVBQUMsR0FBRUUsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLGlCQUFpQjtBQUFBLEVBQUMsR0FBRUUsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLGlCQUFpQjtBQUFBLEVBQUMsR0FBRUUsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLGlCQUFpQjtBQUFBLEVBQUMsR0FBRUUsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxHQUFFLENBQUMsR0FBRTtBQUFBLEVBQUksR0FBRUUsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxLQUFLLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLGdCQUFnQjtBQUFBLEVBQUMsR0FBRUUsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxLQUFLLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLGdCQUFnQjtBQUFBLEVBQUMsR0FBRUUsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxLQUFLLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLGdCQUFnQjtBQUFBLEVBQUMsR0FBRUUsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxLQUFLLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLGdCQUFnQjtBQUFBLEVBQUMsR0FBRSxPQUFPLGVBQWVFLEdBQUUsV0FBVSxXQUFVLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxLQUFLO0FBQUEsRUFBUSxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxLQUFLLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxhQUFZLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxHQUFHLElBQUksS0FBSyxHQUFHO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGNBQWEsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUc7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsYUFBWSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU0sRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxjQUFhLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEtBQUssU0FBUyxHQUFFLEVBQUMsR0FBRSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxhQUFZLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGNBQWEsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxTQUFTLEdBQUUsRUFBQyxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGNBQWEsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFNLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsZUFBYyxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxFQUFFLENBQUMsR0FBRSxLQUFLLFVBQVUsR0FBRSxFQUFDLEdBQUUsS0FBSyxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsT0FBTSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxJQUFJLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLE1BQUksS0FBSyxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsT0FBTSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxJQUFJLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLE9BQU87QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsUUFBTyxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxJQUFJLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLE9BQU87QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsT0FBTSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxJQUFJLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLE9BQU87QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsUUFBTyxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxJQUFJLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLE9BQU87QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsUUFBTyxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLE9BQU87QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsU0FBUSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLE9BQU87QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUVBLEdBQUUsY0FBWSxTQUFTRixJQUFFO0FBQUMsUUFBSUMsS0FBRSxHQUFHRCxFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFQyxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRTtBQUFDLFdBQU8sRUFBRSxJQUFJRSxHQUFFLFlBQVlGLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxlQUFhLFNBQVNGLElBQUU7QUFBQyxRQUFJQyxLQUFFLEdBQUdELEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVDLEdBQUUsU0FBTyxTQUFTRixJQUFFO0FBQUMsV0FBTyxFQUFFLElBQUlFLEdBQUUsYUFBYUYsRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsR0FBRztBQUFBLEVBQUMsR0FBRUMsR0FBRSxRQUFNLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRSxHQUFFLEdBQUcsR0FBRztBQUFFLFdBQU8sRUFBRSxJQUFJRSxJQUFFRCxFQUFDO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGVBQWEsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsSUFBSTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxTQUFPLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRSxHQUFFLEdBQUcsSUFBSTtBQUFFLFdBQU8sRUFBRSxJQUFJRSxJQUFFRCxFQUFDO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsR0FBRztBQUFBLEVBQUMsR0FBRUMsR0FBRSxRQUFNLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRSxHQUFFLEdBQUcsR0FBRztBQUFFLFdBQU8sRUFBRSxJQUFJRSxJQUFFRCxFQUFDO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGVBQWEsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsSUFBSTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxTQUFPLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRSxHQUFFLEdBQUcsSUFBSTtBQUFFLFdBQU8sRUFBRSxJQUFJRSxJQUFFRCxFQUFDO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGVBQWEsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQs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QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLElBQUk7QUFBQSxJQUNKLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLElBQUk7QUFBQSxJQUNKLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULE1BQU07QUFBQSxJQUNOLEtBQUs7QUFBQSxJQUNMLFVBQVU7QUFBQSxJQUNWLEtBQUs7QUFBQSxJQUNMLFdBQVc7QUFBQSxJQUNYLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxJQUNMLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLFVBQVU7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULGNBQWM7QUFBQSxJQUNkLFlBQVk7QUFBQSxJQUNaLGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLElBQ2hCLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGtCQUFrQjtBQUFBLElBQ2xCLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLG1CQUFtQjtBQUFBLElBQ25CLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULGtCQUFrQjtBQUFBLElBQ2xCLFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQSxJQUNkLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGdCQUFnQjtBQUFBLElBQ2hCLGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLG9CQUFvQjtBQUFBLElBQ3BCLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLGFBQWE7QUFBQSxJQUNiLDJCQUEyQjtBQUFBLElBQzNCLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFVBQVU7QUFBQSxJQUNWLHNCQUFzQjtBQUFBLElBQ3RCLFVBQVU7QUFBQSxJQUNWLGdCQUFnQjtBQUFBLElBQ2hCLFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULE1BQU07QUFBQSxJQUNOLGFBQWE7QUFBQSxJQUNiLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLGdCQUFnQjtBQUFBLElBQ2hCLEtBQUs7QUFBQSxJQUNMLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFlBQVk7QUFBQSxJQUNaLEtBQUs7QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLE1BQU07QUFBQSxJQUNOLGVBQWU7QUFBQSxJQUNmLFFBQVE7QUFBQSxJQUNSLE9BQU87QUFBQSxJQUNQLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQTtBQUFBO0FBQUEsSUFJTixPQUFPO0FBQUE7QUFBQSxJQUNQLE9BQU87QUFBQTtBQUFBLElBQ1AsU0FBUztBQUFBO0FBQUEsSUFDVCxNQUFNO0FBQUE7QUFBQSxJQUNOLFlBQVk7QUFBQTtBQUFBLElBQ1osU0FBUztBQUFBO0FBQUEsSUFDVCxRQUFRO0FBQUE7QUFBQSxJQUNSLGFBQWE7QUFBQTtBQUFBLElBQ2IsY0FBYztBQUFBO0FBQUEsSUFDZCxhQUFhO0FBQUE7QUFBQSxJQUNiLGFBQWE7QUFBQTtBQUFBLElBQ2IsTUFBTTtBQUFBO0FBQUEsSUFDTixTQUFTO0FBQUE7QUFBQSxJQUNULFNBQVM7QUFBQTtBQUFBLElBQ1QsT0FBTztBQUFBO0FBQUEsSUFDUCxNQUFNO0FBQUE7QUFBQSxJQUNOLFVBQVU7QUFBQTtBQUFBLElBQ1YsVUFBVTtBQUFBO0FBQUEsSUFDVixPQUFPO0FBQUE7QUFBQSxJQUNQLFNBQVM7QUFBQTtBQUFBLElBQ1QsU0FBUztBQUFBO0FBQUEsSUFDVCxPQUFPO0FBQUE7QUFBQSxJQUNQLE1BQU07QUFBQTtBQUFBLElBQ04sT0FBTztBQUFBO0FBQUEsSUFDUCxhQUFhO0FBQUE7QUFBQSxJQUNiLFFBQVE7QUFBQTtBQUFBLElBQ1IsWUFBWTtBQUFBO0FBQUEsSUFDWixNQUFNO0FBQUE7QUFBQSxJQUNOLFVBQVU7QUFBQTtBQUFBLElBQ1YsUUFBUTtBQUFBO0FBQUEsSUFDUixjQUFjO0FBQUE7QUFBQSxJQUNkLGFBQWE7QUFBQTtBQUFBLElBQ2IsVUFBVTtBQUFBO0FBQUEsSUFDVixRQUFRO0FBQUE7QUFBQSxJQUNSLFNBQVM7QUFBQTtBQUFBLElBQ1QsUUFBUTtBQUFBO0FBQUEsSUFDUixRQUFRO0FBQUE7QUFBQSxJQUNSLFNBQVM7QUFBQTtBQUFBLElBQ1QsUUFBUTtBQUFBO0FBQUEsSUFDUixLQUFLO0FBQUE7QUFBQSxJQUNMLGFBQWE7QUFBQTtBQUFBLElBQ2IsT0FBTztBQUFBO0FBQUEsSUFDUCxRQUFRO0FBQUE7QUFBQSxJQUNSLFdBQVc7QUFBQTtBQUFBLElBQ1gsU0FBUztBQUFBO0FBQUEsSUFDVCxTQUFTO0FBQUE7QUFBQSxJQUNULE1BQU07QUFBQTtBQUFBLElBQ04sV0FBVztBQUFBO0FBQUEsSUFDWCxXQUFXO0FBQUE7QUFBQSxJQUNYLFNBQVM7QUFBQTtBQUFBLElBQ1QsUUFBUTtBQUFBO0FBQUEsSUFDUixPQUFPO0FBQUE7QUFBQSxJQUNQLFFBQVE7QUFBQTtBQUFBO0FBQUEsSUFHUixtQkFBbUI7QUFBQSxJQUNuQixhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVix5QkFBeUI7QUFBQSxJQUN6Qix1QkFBdUI7QUFBQSxJQUN2QixRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsRUFDaEI7QUFDRixDQUFDOzs7QUM1U00sSUFBTSxNQUFNLE9BQU87QUFBQSxFQUN4QixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsSUFDVixjQUFjO0FBQUEsSUFDZCxtQkFBbUI7QUFBQSxJQUNuQixZQUFZO0FBQUEsSUFDWixlQUFlO0FBQUEsSUFDZixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixvQkFBb0I7QUFBQSxJQUNwQiwyQkFBMkI7QUFBQSxJQUMzQixjQUFjO0FBQUEsSUFDZCxnQkFBZ0I7QUFBQSxJQUNoQixhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVixrQkFBa0I7QUFBQSxJQUNsQixrQkFBa0I7QUFBQSxJQUNsQixhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxZQUFZO0FBQUEsSUFDWixVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixXQUFXO0FBQUEsSUFDWCw0QkFBNEI7QUFBQSxJQUM1QiwwQkFBMEI7QUFBQSxJQUMxQixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxnQkFBZ0I7QUFBQSxJQUNoQixlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixTQUFTO0FBQUEsSUFDVCxhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxlQUFlO0FBQUEsSUFDZixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxrQkFBa0I7QUFBQSxJQUNsQixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixPQUFPO0FBQUEsSUFDUCxZQUFZO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxPQUFPO0FBQUEsSUFDUCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixjQUFjO0FBQUEsSUFDZCxrQkFBa0I7QUFBQSxJQUNsQixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixZ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LElBQ1gsU0FBUztBQUFBLElBQ1QsS0FBSztBQUFBLElBQ0wsU0FBUztBQUFBLElBQ1Qsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBLElBQ1AsVUFBVTtBQUFBLElBQ1YsMkJBQTJCO0FBQUEsSUFDM0IsTUFBTTtBQUFBLElBQ04sYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZ0JBQWdCO0FBQUEsSUFDaEIsWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osV0FBVztBQUFBLElBQ1gsNEJBQTRCO0FBQUEsSUFDNUIsMEJBQTBCO0FBQUEsSUFDMUIsVUFBVTtBQUFBLElBQ1YsbUJBQW1CO0FBQUEsSUFDbkIsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsSUFBSTtBQUFBLElBQ0osYUFBYTtBQUFBLElBQ2IsZ0JBQWdCO0FBQUEsSUFDaEIsbUJBQW1CO0FBQUEsSUFDbkIsSUFBSTtBQUFBLElBQ0osS0FBSztBQUFBLElBQ0wsV0FBVztBQUFBLElBQ1gsR0FBRztBQUFBLElBQ0gsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBO0FBQUEsSUFDWCxZQUFZO0FBQUE7QUFBQSxJQUNaLFVBQVU7QUFBQTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLElBQ04sY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsbUJBQW1CO0FBQUEsSUFDbkIsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsYUFBYTtBQUFBLElBQ2IsTUFBTTtBQUFBLElBQ04sa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBLElBQ1Asd0JBQXdCO0FBQUEsSUFDeEIsdUJBQXVCO0FBQUEsSUFDdkIsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsS0FBSztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsT0FBTztBQUFBLElBQ1AsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1Qsa0JBQWtCO0FBQUEsSUFDbEIsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLElBQ04sWUFBWTtBQUFBLElBQ1oscUJBQXFCO0FBQUEsSUFDckIsa0JBQWtCO0FBQUEsSUFDbEIsY0FBYztBQUFBLElBQ2QsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YscUJBQXFCO0FBQUEsSUFDckIsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsR0FBRztBQUFBLElBQ0gsUUFBUTtBQUFBLElBQ1IsZ0JBQWdCO0FBQUEsSUFDaEIsTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sS0FBSztBQUFBLElBQ0wsS0FBSztBQUFBLElBQ0wsaUJBQWlCO0FBQUEsSUFDakIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsb0JBQW9CO0FBQUEsSUFDcEIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsaUJBQWlCO0FBQUEsSUFDakIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sZ0JBQWdCO0FBQUEsSUFDaEIsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsa0JBQWtCO0FBQUEsSUFDbEIsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsT0FBTztBQUFBLElBQ1AsT0FBTztBQUFBLElBQ1AsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsdUJBQXVCO0FBQUEsSUFDdkIsd0JBQXdCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsaUJBQWlCO0FBQUEsSUFDakIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsZ0JBQWdCO0FBQUEsSUFDaEIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QscUJBQXFCO0FBQUEsSUFDckIsWUFBWTtBQUFBLElBQ1osZUFBZTtBQUFBLElBQ2Ysc0JBQXNCO0FBQUEsSUFDdEIsZ0JBQWdCO0FBQUEsSUFDaEIsVUFBVTtBQUFBLElBQ1YsYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osZ0JBQWdCO0FBQUEsSUFDaEIsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osZUFBZTtBQUFBLElBQ2YsT0FBTztBQUFBLElBQ1AsbUJBQW1CO0FBQUEs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SUFBSTtBQUNuQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFlBQVksSUFBSTtBQUMxQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLGdCQUFnQixJQUFJO0FBQzlCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsWUFBWSxJQUFJO0FBQzFCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsV0FBVyxJQUFJO0FBQ3pCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ3ZCLEdBQUcsWUFBWSxjQUFjLFlBQVksQ0FBQyxFQUFFO0FBTXJDLElBQUk7QUFBQSxDQUNWLFNBQVVDLFNBQVE7QUFDZixFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxHQUFHLElBQUksQ0FBQyxJQUFJO0FBQzFCLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLENBQUMsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLGdCQUFnQixJQUFJLENBQUMsSUFBSTtBQUN2QyxFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxDQUFDLElBQUk7QUFDL0IsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksQ0FBQyxJQUFJO0FBQzdCLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLENBQUMsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLE9BQU8sSUFBSSxDQUFDLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxHQUFHLElBQUksQ0FBQyxJQUFJO0FBQzFCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLENBQUMsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLFVBQVUsSUFBSSxFQUFFLElBQUk7QUFDbEMsRUFBQUEsUUFBT0EsUUFBTyxTQUFTLElBQUksRUFBRSxJQUFJO0FBQ2pDLEVBQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLFlBQVksSUFBSSxFQUFFLElBQUk7QUFDcEMsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxTQUFTLElBQUksRUFBRSxJQUFJO0FBQ2pDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxLQUFLLElBQUksRUFBRSxJQUFJO0FBQzdCLEVBQUFBLFFBQU9BLFFBQU8sVUFBVSxJQUFJLEVBQUUsSUFBSTtBQUNsQyxFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxLQUFLLElBQUksRUFBRSxJQUFJO0FBQzdCLEVBQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLE9BQU8sSUFBSSxFQUFFLElBQUk7QUFDL0IsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sWUFBWSxJQUFJLEVBQUUsSUFBSTtBQUNwQyxFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLGdCQUFnQixJQUFJLEVBQUUsSUFBSTtBQUN4QyxFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sVUFBVSxJQUFJLEVBQUUsSUFBSTtBQUNsQyxFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sR0FBRyxJQUFJLEVBQUUsSUFBSTtBQUMzQixFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sT0FBTyxJQUFJLEVBQUUsSUFBSTtBQUMvQixFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sT0FBTyxJQUFJLEVBQUUsSUFBSTtBQUMvQixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxZQUFZLElBQUksRUFBRSxJQUFJO0FBQ3BDLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sT0FBTyxJQUFJLEVBQUUsSUFBSTtBQUMvQixFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sVUFBVSxJQUFJLEVBQUUsSUFBSTtBQUNsQyxFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDakMsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLEdBQUcsSUFBSSxFQUFFLElBQUk7QUFDM0IsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FB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TyxjQUFjO0FBQUEsRUFDaEQsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLFlBQVksT0FBTyxVQUFVO0FBQUEsRUFDeEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFlBQVksT0FBTyxVQUFVO0FBQUEsRUFDeEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLGdCQUFnQixPQUFPLGNBQWM7QUFBQSxFQUNoRCxDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsWUFBWSxPQUFPLFVBQVU7QUFBQSxFQUN4QyxDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsV0FBVyxPQUFPLFNBQVM7QUFBQSxFQUN0QyxDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFDOUIsQ0FBQztBQUNNLFNBQVMsU0FBUyxTQUFTO0FBQzlCLE1BQUlDO0FBQ0osVUFBUUEsTUFBSyxlQUFlLElBQUksT0FBTyxPQUFPLFFBQVFBLFFBQU8sU0FBU0EsTUFBSyxPQUFPO0FBQ3RGO0FBQ0EsSUFBTUMsS0FBSTtBQUNILElBQU0sbUJBQW1CO0FBQUEsRUFDNUIsQ0FBQyxHQUFHLElBQUksR0FBRyxvQkFBSSxJQUFJO0FBQUEsSUFDZkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFD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LElBQUksRUFBRSxJQUFJO0FBQzNDLEVBQUFBLE9BQU1BLE9BQU0sMEJBQTBCLElBQUksRUFBRSxJQUFJO0FBQ2hELEVBQUFBLE9BQU1BLE9BQU0sK0JBQStCLElBQUksRUFBRSxJQUFJO0FBQ3JELEVBQUFBLE9BQU1BLE9BQU0sb0NBQW9DLElBQUksRUFBRSxJQUFJO0FBQzFELEVBQUFBLE9BQU1BLE9BQU0sa0NBQWtDLElBQUksRUFBRSxJQUFJO0FBQ3hELEVBQUFBLE9BQU1BLE9BQU0sa0NBQWtDLElBQUksRUFBRSxJQUFJO0FBQ3hELEVBQUFBLE9BQU1BLE9BQU0saUNBQWlDLElBQUksRUFBRSxJQUFJO0FBQ3ZELEVBQUFBLE9BQU1BLE9BQU0sNEJBQTRCLElBQUksRUFBRSxJQUFJO0FBQ2xELEVBQUFBLE9BQU1BLE9BQU0saUNBQWlDLElBQUksRUFBRSxJQUFJO0FBQ3ZELEVBQUFBLE9BQU1BLE9BQU0sc0NBQXNDLElBQUksRUFBRSxJQUFJO0FBQzVELEVBQUFBLE9BQU1BLE9BQU0sMkNBQTJDLElBQUksRUFBRSxJQUFJO0FBQ2pFLEVBQUFBLE9BQU1BLE9BQU0sK0JBQStCLElBQUksRUFBRSxJQUFJO0FBQ3JELEVBQUFBLE9BQU1BLE9BQU0sdUJBQXVCLElBQUksRUFBRSxJQUFJO0FBQzdDLEVBQUFBLE9BQU1BLE9BQU0sZ0JBQWdCLElBQUksRUFBRSxJQUFJO0FBQ3RDLEVBQUFBLE9BQU1BLE9BQU0sc0JBQXNCLElBQUksRUFBRSxJQUFJO0FBQzVDLEVBQUFBLE9BQU1BLE9BQU0sd0JBQXdCLElBQUksRUFBRSxJQUFJO0FBQzlDLEVBQUFBLE9BQU1BLE9BQU0sK0JBQStCLElBQUksRUFBRSxJQUFJO0FBQ3JELEVBQUFBLE9BQU1BLE9BQU0sK0JBQStCLElBQUksRUFBRSxJQUFJO0FBQ3JELEVBQUFBLE9BQU1BLE9BQU0sMEJBQTBCLElBQUksRUFBRSxJQUFJO0FBQ2hELEVBQUFBLE9BQU1BLE9BQU0sOEJBQThCLElBQUksRUFBRSxJQUFJO0FBQ3BELEVBQUFBLE9BQU1BLE9BQU0sd0JBQXdC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O0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0osRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzNDLElBQU0sMkJBQTJCLG9CQUFJLElBQUk7QUFBQSxFQUNyQyxDQUFDLGlCQUFpQixFQUFFLFFBQVEsU0FBUyxNQUFNLFdBQVcsV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUFBLEVBQzNFLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxTQUFTLE1BQU0sV0FBVyxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQUEsRUFDM0UsQ0FBQyxjQUFjLEVBQUUsUUFBUSxTQUFTLE1BQU0sUUFBUSxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQUEsRUFDckUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxTQUFTLE1BQU0sUUFBUSxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQUEsRUFDckUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxTQUFTLE1BQU0sUUFBUSxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQUEsRUFDckUsQ0FBQyxlQUFlLEVBQUUsUUFBUSxTQUFTLE1BQU0sU0FBUyxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQUEsRUFDdkUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxTQUFTLE1BQU0sUUFBUSxXQUFX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QUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUUsUUFBUTtBQUNYLHlCQUFtQkEsSUFBRyxLQUFLO0FBQzNCO0FBQUEsSUFDSjtBQUFBLElBQ0EsS0FBSyxPQUFFLEdBQUc7QUFDTixvQkFBY0EsRUFBQztBQUNmO0FBQUEsSUFDSjtBQUFBLElBQ0EsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUUsWUFBWTtBQUNmLDBCQUFvQkEsSUFBRyxLQUFLO0FBQzVCO0FBQUEsSUFDSjtBQUFBLElB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QUEyQztBQUFBLElBQ3pDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDJDQUEyQztBQUFBLElBQ3pDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLHlDQUF5QztBQUFBLElBQ3ZDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDRDQUE0QztBQUFBLElBQzFDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDRDQUE0QztBQUFBLElBQzFDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLG9DQUFvQztBQUFBLElBQ2xDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLG9DQUFvQztBQUFBLElBQ2xDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDJEQUEyRDtBQUFBLElBQ3pELFFBQ0U7QUFBQSxJQUNGLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLGVBQWU7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLHNCQUFzQjtBQUFBLElBQ3BCLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxJQUNGLEtBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQSxFQUVBLHNCQUFzQjtBQUFBLElBQ3BCLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxJQUNGLEtBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQSxFQUVBLCtDQUErQztBQUFBLElBQzdDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLGdDQUFnQztBQUFBLElBQzlCLFFBQ0U7QUFBQSxJQUNGLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDJCQUEyQjtBQUFBLElBQ3pCLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFB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O0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRjs7O0FDM0dPLElBQU0seUJBQXlCO0FBQUEsRUFDcEMsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osU0FBUztBQUFBLEVBQ1QsSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsU0FBUztBQUFBLEVBQ1QsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osU0FBUztBQUFBLEVBQ1QsSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsU0FBUztBQUFBLEVBQ1QsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsTUFB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bW9kdWxlIiwgImRlZmluZSIsICJhbWQiLCAic2VsZiIsICJfX3dlYnBhY2tfcmVxdWlyZV9fIiwgImRlZmluaXRpb24iLCAia2V5IiwgIm8iLCAiT2JqZWN0IiwgImRlZmluZVByb3BlcnR5IiwgImVudW1lcmFibGUiLCAiZ2V0IiwgIm9iaiIsICJwcm9wIiwgInByb3RvdHlwZSIsICJoYXNPd25Qcm9wZXJ0eSIsICJjYWxsIiwgIlN5bWJvbCIsICJ0b1N0cmluZ1RhZyIsICJ2YWx1ZSIsICJlIiwgInQiLCAiRSIsICJldmVudExpc3RlbmVyIiwgIm1ldGhvZCIsICJlbGVtZW50cyIsICJldmVudHMiLCAiZm4iLCAib3B0aW9ucyIsICJIVE1MQ29sbGVjdGlvbiIsICJOb2RlTGlzdCIsICJBcnJheSIsICJmcm9tIiwgImlzQXJyYXkiLCAiZWwiLCAiZXYiLCAiY2FwdHVyZSIsICJzbGljZSIsICJhcmd1bWVudHMiLCAicCIsICJyIiwgImEiLCAibCIsICJzIiwgImkiLCAiYyIsICJvbiIsICJiaW5kIiwgIm9mZiIsICJjcmVhdGVFbGVtZW50RnJvbVN0cmluZyIsICJodG1sIiwgImRpdiIsICJkb2N1bWVudCIsICJjcmVhdGVFbGVtZW50IiwgImlubmVySFRNTCIsICJ0cmltIiwgImZpcnN0RWxlbWVudENoaWxkIiwgImNyZWF0ZUZyb21UZW1wbGF0ZSIsICJzdHIiLCAicmVtb3ZlQXR0cmlidXRlIiwgIm5hbWUiLCAiZ2V0QXR0cmlidXRlIiwgInJlc29sdmUiLCAiZWxlbWVudCIsICJiYXNlIiwgImNvbiIsICJzdWJ0cmVlIiwgImNoaWxkIiwgImNoaWxkcmVuIiwgImFyciIsICJzdWIiLCAicHVzaCIsICJrZXlzIiwgImxlbmd0aCIsICJldmVudFBhdGgiLCAiZXZ0IiwgInBhdGgiLCAiY29tcG9zZWRQYXRoIiwgInRhcmdldCIsICJwYXJlbnRFbGVtZW50IiwgIndpbmRvdyIsICJyZXNvbHZlRWxlbWVudCIsICJ2YWwiLCAiRWxlbWVudCIsICJzcGxpdCIsICJyZWR1Y2UiLCAicHYiLCAiY3YiLCAiY2kiLCAicXVlcnlTZWxlY3RvciIsICJzaGFkb3dSb290IiwgImFkanVzdGFibGVJbnB1dE51bWJlcnMiLCAibWFwcGVyIiwgInYiLCAiaGFuZGxlU2Nyb2xsIiwgImluYyIsICJOdW1iZXIiLCAic2hpZnRLZXkiLCAiY3RybEtleSIsICJkZWx0YVkiLCAiaW5kZXgiLCAic2VsZWN0aW9uU3RhcnQiLCAicmVwbGFjZSIsICJmb2N1cyIsICJzZXRTZWxlY3Rpb25SYW5nZSIsICJwcmV2ZW50RGVmYXVsdCIsICJkaXNwYXRjaEV2ZW50IiwgIkV2ZW50IiwgInBhc3NpdmUiLCAibWluIiwgIm1heCIsICJmbG9vciIsICJyb3VuZCIsICJNYXRoIiwgImhzdlRvUmdiIiwgImgiLCAiZiIsICJxIiwgIm1vZCIsICJoc3ZUb0hzbCIsICJyZ2JUb0hzdiIsICJnIiwgImIiLCAibWluVmFsIiwgIm1heFZhbCIsICJkZWx0YSIsICJkciIsICJkZyIsICJkYiIsICJjbXlrVG9Ic3YiLCAibSIsICJ5IiwgImsiLCAiaHNsVG9Ic3YiLCAibnMiLCAiaXNOYU4iLCAiaGV4VG9Ic3YiLCAiaGV4IiwgIm1hdGNoIiwgIm1hcCIsICJwYXJzZUludCIsICJwYXJzZVRvSFNWQSIsICJ0b0xvd2VyQ2FzZSIsICJjdHgiLCAiZ2V0Q29udGV4dCIsICJmaWxsU3R5bGUiLCAicmVnZXgiLCAiY215ayIsICJyZ2JhIiwgImhzbGEiLCAiaHN2YSIsICJoZXhhIiwgIm51bWFyaXplIiwgImFycmF5IiwgInRlc3QiLCAidW5kZWZpbmVkIiwgImludmFsaWQiLCAidHlwZSIsICJleGVjIiwgInZhbHVlcyIsICJqb2luIiwgInJhdyIsICJzdWJzdHJpbmciLCAiSFNWYUNvbG9yIiwgIm9yaWdpbmFsIiwgIm5leHQiLCAicHJlY2lzaW9uIiwgInRvRml4ZWQiLCAidGhhdCIsICJ0b0hTVkEiLCAidG9TdHJpbmciLCAidG9IU0xBIiwgInRvUkdCQSIsICJ0b0NNWUsiLCAicmdiIiwgInRvSEVYQSIsICJwYWRTdGFydCIsICJhbHBoYSIsICJ0b1VwcGVyQ2FzZSIsICJjbG9uZSIsICJjbGFtcCIsICJNb3ZlYWJsZSIsICJvcHQiLCAiYXNzaWduIiwgImxvY2siLCAib25jaGFuZ2UiLCAib25zdG9wIiwgIl9rZXlib2FyZCIsICJhY3RpdmVFbGVtZW50IiwgIndyYXBwZXIiLCAidXAiLCAicmlnaHQiLCAiZG93biIsICJsZWZ0IiwgInhtIiwgInltIiwgInVwZGF0ZSIsICJjYWNoZSIsICJ4IiwgInN0YXJ0c1dpdGgiLCAiX3RhcHN0YXJ0IiwgIl8iLCAiX3RhcHN0b3AiLCAiX3RhcG1vdmUiLCAiY2FuY2VsYWJsZSIsICJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCAidG91Y2giLCAidG91Y2hlcyIsICJjbGllbnRYIiwgImNsaWVudFkiLCAid2lkdGgiLCAidG9wIiwgImhlaWdodCIsICJzdHlsZSIsICJvZmZzZXRXaWR0aCIsICJvZmZzZXRIZWlnaHQiLCAiY3giLCAiY3kiLCAidHJpZ2dlciIsICJkZXN0cm95IiwgIlNlbGVjdGFibGUiLCAiY2xhc3NOYW1lIiwgIm9uVGFwIiwgImZvckVhY2giLCAiY2xhc3NMaXN0IiwgInN0b3BQcm9wYWdhdGlvbiIsICJ2YXJpYW50RmxpcE9yZGVyIiwgInN0YXJ0IiwgIm1pZGRsZSIsICJlbmQiLCAicG9zaXRpb25GbGlwT3JkZXIiLCAiYm90dG9tIiwgInBvc2l0aW9uIiwgIm1hcmdpbiIsICJwYWRkaW5nIiwgIkQiLCAiSFRNTEVsZW1lbnQiLCAicmVmZXJlbmNlIiwgInBvcHBlciIsICJFcnJvciIsICJjb250YWluZXIiLCAiYXJyb3ciLCAiQiIsICJNIiwgIkMiLCAiZG9jdW1lbnRFbGVtZW50IiwgIkYiLCAiSyIsICJTIiwgIlYiLCAidnMiLCAidm0iLCAidmUiLCAiaHMiLCAiaG0iLCAiaGUiLCAiJCIsICJSIiwgImoiLCAidSIsICJuIiwgImQiLCAidyIsICJ6IiwgIkwiLCAiUCIsICJUIiwgIk8iLCAiSCIsICJQaWNrciIsICJjb25zdHJ1Y3RvciIsICJfaW5pdGlhbGl6aW5nQWN0aXZlIiwgIl9yZWNhbGMiLCAiX25hbm9wb3AiLCAiX3Jvb3QiLCAiX2NvbG9yIiwgIl9sYXN0Q29sb3IiLCAiX3N3YXRjaENvbG9ycyIsICJfc2V0dXBBbmltYXRpb25GcmFtZSIsICJfZXZlbnRMaXN0ZW5lciIsICJpbml0IiwgInNhdmUiLCAiaGlkZSIsICJzaG93IiwgImNsZWFyIiwgImNoYW5nZSIsICJjaGFuZ2VzdG9wIiwgImNhbmNlbCIsICJzd2F0Y2hzZWxlY3QiLCAidGhpcyIsICJERUZBVUxUX09QVElPTlMiLCAic3dhdGNoZXMiLCAiY29tcG9uZW50cyIsICJ0aGVtZSIsICJzbGlkZXJzIiwgImxvY2tPcGFjaXR5IiwgImluY2x1ZGVzIiwgImludGVyYWN0aW9uIiwgInByZXZpZXciLCAib3BhY2l0eSIsICJodWUiLCAicGFsZXR0ZSIsICJfcHJlQnVpbGQiLCAiX2J1aWxkQ29tcG9uZW50cyIsICJfYmluZEV2ZW50cyIsICJfZmluYWxCdWlsZCIsICJjb2xvciIsICJhZGRTd2F0Y2giLCAiYnV0dG9uIiwgImFwcCIsICJjcmVhdGVQb3BwZXIiLCAic2V0QXR0cmlidXRlIiwgIl90IiwgInJlcXVlc3RBbmltYXRpb25GcmFtZSIsICJjYiIsICJzZXRDb2xvciIsICJkZWZhdWx0IiwgIl9yZVBvc2l0aW9uaW5nUGlja2VyIiwgImRlZmF1bHRSZXByZXNlbnRhdGlvbiIsICJfcmVwcmVzZW50YXRpb24iLCAic2V0Q29sb3JSZXByZXNlbnRhdGlvbiIsICJzaG93QWx3YXlzIiwgIl9lbWl0IiwgImluc3RhbmNlIiwgInVzZUFzQnV0dG9uIiwgImlubGluZSIsICJhcHBDbGFzcyIsICJoaWRkZW4iLCAiaW5wdXQiLCAiaW50IiwgImZpbmQiLCAiYWRkIiwgImNvbnRhaW5zIiwgImFwcGVuZENoaWxkIiwgInJlbW92ZUNoaWxkIiwgInBhcmVudCIsICJuZXh0U2libGluZyIsICJpbnNlcnRCZWZvcmUiLCAicmVtb3ZlIiwgInBhcmVudE5vZGUiLCAicmVwbGFjZUNoaWxkIiwgImRpc2FibGVkIiwgImRpc2FibGUiLCAiY29tcGFyaXNvbiIsICJ0cmFuc2l0aW9uIiwgImxhc3RDb2xvciIsICJpbnN0IiwgImNzIiwgInJlcGVhdCIsICJzbyIsICJzaCIsICJnZXRDb2xvciIsICJwaWNrZXIiLCAiY3VycmVudENvbG9yIiwgIl91cGRhdGVPdXRwdXQiLCAiY3NzUkdCYVN0cmluZyIsICJiYWNrZ3JvdW5kIiwgInNldFByb3BlcnR5IiwgInNsaWRlciIsICJiYWNrZ3JvdW5kQ29sb3IiLCAic2VsZWN0YWJsZSIsICJfY29tcG9uZW50cyIsICJldmVudEJpbmRpbmdzIiwgIl9jbGVhckNvbG9yIiwgInNldEhTVkEiLCAiYXBwbHlDb2xvciIsICJyZXN1bHQiLCAic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwgImNrIiwgImNsb3NlV2l0aEtleSIsICJpc09wZW4iLCAiY29kZSIsICJzb21lIiwgImFkanVzdGFibGVOdW1iZXJzIiwgInJhbmdlcyIsICJzdGVwIiwgInJhbmdlIiwgImdldENvbG9yUmVwcmVzZW50YXRpb24iLCAibnYiLCAidG9QcmVjaXNpb24iLCAiYXV0b1JlcG9zaXRpb24iLCAidGltZW91dCIsICJjbG9zZU9uU2Nyb2xsIiwgInNldFRpbWVvdXQiLCAicnMiLCAiY2xlYXJUaW1lb3V0IiwgIl9ldmVudEJpbmRpbmdzIiwgImJvZHkiLCAiZWIiLCAiaW5uZXJIZWlnaHQiLCAiaW5uZXJXaWR0aCIsICJldmVudFNvdXJjZSIsICJvdXRwdXRQcmVjaXNpb24iLCAic2lsZW50IiwgIl9wYXJzZUxvY2FsQ29sb3IiLCAiYWxwaGFNYWtlc0FDaGFuZ2UiLCAiaTE4biIsICJJMThOX0RFRkFVTFRTIiwgImV2ZW50IiwgImFyZ3MiLCAiY2FsbEJhY2tzIiwgImluZGV4T2YiLCAic3BsaWNlIiwgInJlbW92ZVN3YXRjaCIsICJzd2F0Y2hDb2xvciIsICJjYW5jZWxBbmltYXRpb25GcmFtZSIsICJkZXN0cm95QW5kUmVtb3ZlIiwgInJlY2FsYyIsICJzdHJpbmciLCAidXR5cGUiLCAiY2xpY2siLCAiZ2V0U2VsZWN0ZWRDb2xvciIsICJnZXRSb290IiwgImVuYWJsZSIsICJzdGF0aWMiLCAiVkVSU0lPTiIsICJtb2R1bGUiLCAiY29yZSIsICJpdCIsICJlIiwgImRvY3VtZW50IiwgImlzIiwgIlMiLCAiZiIsICJPIiwgIlAiLCAia2V5IiwgImEiLCAiYiIsICJjIiwgInNvdXJjZSIsICJleHBvcnRzIiwgIm93biIsICJwb3MiLCAicyIsICJpIiwgImwiLCAiY29kZVBvaW50QXQiLCAiaW5kZXgiLCAiZnJvbUNvZGVQb2ludCIsICJ4IiwgInJvb3QiLCAicGFyc2UiLCAidGV4dCIsICJ0b2tlbiIsICJjb21tZW50IiwgInUiLCAicCIsICJidWZmZXIiLCAic3RyaW5naWZ5IiwgInN0YWNrIiwgInYiLCAidmFsdWUiLCAibGlzdCIsICJKU09ONSIsICJpbXBvcnRfb2JzaWRpYW4iLCAic2V0dGluZ3MiLCAiX2EiLCAiaW5kZXgiLCAidCIsICJlIiwgIm4iLCAiciIsICJpIiwgIm8iLCAiYyIsICJ1IiwgInMiLCAiZCIsICJiIiwgIkEiLCAiRiIsICJ2IiwgIkgiLCAiQiIsICJDIiwgImsiLCAiUyIsICJSIiwgIk0iLCAiTyIsICJMIiwgIkciLCAiaiIsICJYIiwgIkkiLCAiWSIsICJhIiwgImwiLCAiZiIsICJoIiwgInAiLCAiZyIsICJtIiwgInkiLCAiRSIsICJ0ZXh0IiwgInZhbHVlIiwgImUiLCAiX2EiLCAiUGlja3IiLCAiaSIsICJib2R5IiwgIl9hIiwgImltcG9ydF9vYnNpZGlhbiIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaW1wb3J0X29ic2lkaWFuIiwgImkiLCAiY29kZVNlY3Rpb24iLCAiX2EiLCAiXyIsICJlIiwgImltcG9ydF9vYnNpZGlhbiIsICJfYSIsICJ0ZXh0IiwgInBvc2l0aW9uIiwgIl9hIiwgInJlbW92ZUZvbGRMYW5ndWFnZXMiLCAibGFuZyIsICJlbXB0eSIsICJwbHVnaW4iLCAiZm9sZFN0YXJ0IiwgImZvbGRFbmQiLCAiaSIsICJ0ZXh0IiwgInN0eWxlIiwgImVsZW1lbnQiLCAiaW1wb3J0X29ic2lkaWFuIiwgImNoZWNrcyIsICJpbmRleCIsICJhbGwiLCAia2V5IiwgImQiLCAiaXMiLCAiaW5kZXgiLCAib2siLCAiaW5kZXgiLCAiaW5kZXgiLCAia2V5IiwgIl8iLCAiXyIsICJfIiwgImh0bWwiLCAic3ZnIiwgInBhcnNlIiwgImluZGV4IiwgInBhcnNlIiwgInN0cmluZ2lmeSIsICJvd24iLCAiaCIsICJpbmRleCIsICJrZXkiLCAicGFyc2UiLCAidmFsdWUiLCAiaCIsICJodG1sIiwgInMiLCAic3ZnIiwgInNlYXJjaCIsICJpbmRleCIsICJwb2ludCIsICJvd24iLCAic3ZnIiwgImh0bWwiLCAib2siLCAiaW5kZXgiLCAicyIsICJoIiwgInBvc2l0aW9uIiwgImxvY2F0aW9uIiwgImtleSIsICJvcGVuaW5nIiwgImNsb3NpbmciLCAicG9pbnQiLCAiQ09ERV9QT0lOVFMiLCAiRVJSIiwgImkiLCAiVG9rZW5UeXBlIiwgImkiLCAiYyIsICJjIiwgIl9hIiwgIkNoYXJDb2RlcyIsICJCaW5UcmllRmxhZ3MiLCAiRW50aXR5RGVjb2RlclN0YXRlIiwgIkRlY29kaW5nTW9kZSIsICJlcnJvcnMiLCAiYmFzZSIsICJfYSIsICJOUyIsICJBVFRSUyIsICJET0NVTUVOVF9NT0RFIiwgIlRBR19OQU1FUyIsICJUQUdfSUQiLCAiX2EiLCAiJCIsICJTdGF0ZSIsICJpc0FzY2lpQWxwaGFOdW1lcmljIiwgImlzRW50aXR5SW5BdHRyaWJ1dGVJbnZhbGlkRW5kIiwgIl9hIiwgImkiLCAiY3QiLCAibG9jYXRpb24iLCAiZG9jdW1lbnQiLCAiZWxlbWVudCIsICJpIiwgIkVudHJ5VHlwZSIsICJpIiwgImVsZW1lbnQiLCAiZW50cnkiLCAiZG9jdW1lbnQiLCAidGV4dCIsICJqIiwgImVsZW1lbnQiLCAibG9jYXRpb24iLCAiaSIsICJJbnNlcnRpb25Nb2RlIiwgImRvY3VtZW50IiwgImh0bWwiLCAiX2EiLCAiZWxlbWVudCIsICJsb2NhdGlvbiIsICJzaWJsaW5ncyIsICJpIiwgInAiLCAiaW5kZXgiLCAiYyIsICJwYXJzZSIsICJodG1sIiwgInBvc2l0aW9uIiwgInBvaW50IiwgImluZGV4IiwgInBhdGgiLCAiaW5kZXgiLCAibm9ybWFsaXplIiwgInBhdGgiLCAiaW5kZXgiLCAiaW5kZXgiLCAicHJvcCIsICJiYXNlbmFtZSIsICJkaXJuYW1lIiwgImFzc2VydFBhdGgiLCAiZXh0bmFtZSIsICJwYXRoIiwgInBhcnNlIiwgImNhbWVsY2FzZSIsICJvayIsICJ2YWx1ZSIsICJfIiwgIiQyIiwgIm93biIsICJrZXkiLCAib25lIiwgImluZGV4IiwgImFsbCIsICJvd24iLCAiaW5kZXgiLCAiZW1wdHkiLCAiaW5jcmVtZW50IiwgImluZGV4IiwgInNpYmxpbmdzIiwgIm93biIsICJpbmRleCIsICJkdCIsICJodG1sIiwgInAiLCAiXyIsICJpbmRleCIsICJib2R5IiwgImh0bWwiLCAidGJvZHkiLCAiaGVhZCIsICJpbmRleCIsICJlbGVtZW50IiwgImluZGV4IiwgInN2ZyIsICJrZXkiLCAieCIsICJ5IiwgInN0cmluZ2lmeSIsICJfIiwgImluZGV4IiwgImVsZW1lbnQiLCAiZW1wdHlPcHRpb25zIiwgImVtcHR5Q2hpbGRyZW4iLCAib25lIiwgImFsbCIsICJzdmciLCAiaHRtbCIsICJpbmRleCIsICJlbGVtZW50IiwgIl9hIiwgIl8iLCAia2V5IiwgInRleHQiLCAiZm9sZCIsICJpbmRleCIsICJrZXkiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ib290c3RyYXAiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3V0aWxzL3V0aWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdXRpbHMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy91dGlscy9oc3ZhY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy9saWJzL21vdmVhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvbGlicy9zZWxlY3RhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdGVtcGxhdGUuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3NyYy9pbmRleC50cyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3BpY2tyLmpzIiwgIm5vZGVfbW9kdWxlcy9qc29uNS9kaXN0L2luZGV4LmpzIiwgInNyYy9tYWluLnRzIiwgInNyYy9TZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3NUYWIudHMiLCAibm9kZV9tb2R1bGVzL2NvbG9ydHJhbnNsYXRvci9lc20vaW5kZXguanMiLCAic3JjL0FwcGx5U3R5bGluZy50cyIsICJzcmMvRWRpdGluZ1ZpZXcudHMiLCAic3JjL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZy50cyIsICJzcmMvRXh0ZXJuYWwvRXhlY3V0ZUNvZGUvQ29kZUJsb2NrQXJncy50cyIsICJzcmMvUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZy50cyIsICJzcmMvQ29kZWJsb2NrRGVjb3JhdGluZy50cyIsICJzcmMvUmVhZGluZ1ZpZXcudHMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtaXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2NvbG9yLmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kZXZsb3AvbGliL2RlZmF1bHQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3NjaGVtYS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvbWVyZ2UuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9ub3JtYWxpemUuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2luZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3R5cGVzLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9kZWZpbmVkLWluZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2NyZWF0ZS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3hsaW5rLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sbnMuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9hcmlhLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3N2Zy5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL2ZpbmQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3IvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0c2NyaXB0L2xpYi9jcmVhdGUtaC5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLXBhcnNlNS9ub2RlX21vZHVsZXMvdmZpbGUtbG9jYXRpb24vbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy93ZWItbmFtZXNwYWNlcy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20tcGFyc2U1L2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL3VuaWNvZGUuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9lcnJvci1jb2Rlcy5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdG9rZW5pemVyL3ByZXByb2Nlc3Nvci5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL3Rva2VuLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvbm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS1odG1sLnRzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvbm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS14bWwudHMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9ub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9kZWNvZGVfY29kZXBvaW50LnRzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvbm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZGVjb2RlLnRzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdG9rZW5pemVyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9wYXJzZXIvb3Blbi1lbGVtZW50LXN0YWNrLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9wYXJzZXIvZm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL2RvY3R5cGUuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L25vZGVfbW9kdWxlcy9lbnRpdGllcy9saWIvZXNtL2VzY2FwZS50cyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3Qvc2VyaWFsaXplci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9ub2RlX21vZHVsZXMvdmZpbGUtbWVzc2FnZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wYXRoLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wcm9jLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuc2hhcmVkLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1odG1sL25vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWludXJsLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9saWIvZXJyb3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1odG1sL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaHRtbC12b2lkLWVsZW1lbnRzL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy96d2l0Y2gvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvcmUuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8taGV4YWRlY2ltYWwuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8tZGVjaW1hbC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3kvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9jaGFyYWN0ZXItZW50aXRpZXMtaHRtbDQvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvbnN0YW50L2Rhbmdlcm91cy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvdXRpbC90by1uYW1lZC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvdXRpbC9mb3JtYXQtc21hcnQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2NvbW1lbnQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL2Njb3VudC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXdoaXRlc3BhY2UvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vdXRpbC9zaWJsaW5ncy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL29taXNzaW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vY2xvc2luZy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL29wZW5pbmcuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZWxlbWVudC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS90ZXh0LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3Jhdy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9yb290LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIlBpY2tyXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIlBpY2tyXCJdID0gZmFjdG9yeSgpO1xufSkoc2VsZiwgKCkgPT4ge1xucmV0dXJuICIsICIvLyBUaGUgcmVxdWlyZSBzY29wZVxudmFyIF9fd2VicGFja19yZXF1aXJlX18gPSB7fTtcblxuIiwgIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsICJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwgIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsICIvKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItcmVzdC1wYXJhbXMgKi9cbmZ1bmN0aW9uIGV2ZW50TGlzdGVuZXIobWV0aG9kLCBlbGVtZW50cywgZXZlbnRzLCBmbiwgb3B0aW9ucyA9IHt9KSB7XG5cbiAgICAvLyBOb3JtYWxpemUgYXJyYXlcbiAgICBpZiAoZWxlbWVudHMgaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbiB8fCBlbGVtZW50cyBpbnN0YW5jZW9mIE5vZGVMaXN0KSB7XG4gICAgICAgIGVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50cyk7XG4gICAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheShlbGVtZW50cykpIHtcbiAgICAgICAgZWxlbWVudHMgPSBbZWxlbWVudHNdO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShldmVudHMpKSB7XG4gICAgICAgIGV2ZW50cyA9IFtldmVudHNdO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBldiBvZiBldmVudHMpIHtcbiAgICAgICAgICAgIGVsW21ldGhvZF0oZXYsIGZuLCB7Y2FwdHVyZTogZmFsc2UsIC4uLm9wdGlvbnN9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xufVxuXG4vKipcbiAqIEFkZCBldmVudChzKSB0byBlbGVtZW50KHMpLlxuICogQHBhcmFtIGVsZW1lbnRzIERPTS1FbGVtZW50c1xuICogQHBhcmFtIGV2ZW50cyBFdmVudCBuYW1lc1xuICogQHBhcmFtIGZuIENhbGxiYWNrXG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBvcHRpb25zXG4gKiBAcmV0dXJuIEFycmF5IHBhc3NlZCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IG9uID0gZXZlbnRMaXN0ZW5lci5iaW5kKG51bGwsICdhZGRFdmVudExpc3RlbmVyJyk7XG5cbi8qKlxuICogUmVtb3ZlIGV2ZW50KHMpIGZyb20gZWxlbWVudChzKS5cbiAqIEBwYXJhbSBlbGVtZW50cyBET00tRWxlbWVudHNcbiAqIEBwYXJhbSBldmVudHMgRXZlbnQgbmFtZXNcbiAqIEBwYXJhbSBmbiBDYWxsYmFja1xuICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9uc1xuICogQHJldHVybiBBcnJheSBwYXNzZWQgYXJndW1lbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBvZmYgPSBldmVudExpc3RlbmVyLmJpbmQobnVsbCwgJ3JlbW92ZUV2ZW50TGlzdGVuZXInKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIERPTS1FbGVtZW50IG91dCBvZiBhIHN0cmluZyAoU2luZ2xlIGVsZW1lbnQpLlxuICogQHBhcmFtIGh0bWwgSFRNTCByZXByZXNlbnRpbmcgYSBzaW5nbGUgZWxlbWVudFxuICogQHJldHVybnMge0VsZW1lbnQgfCBudWxsfSBUaGUgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nKGh0bWwpIHtcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBkaXYuaW5uZXJIVE1MID0gaHRtbC50cmltKCk7XG4gICAgcmV0dXJuIGRpdi5maXJzdEVsZW1lbnRDaGlsZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGh0bWwgZWxlbWVudCwgZXZlcnkgZWxlbWVudCB3aGljaCBoYXNcbiAqIGEgJzpyZWYnIGF0dHJpYnV0ZSB3aWxsIGJlIHNhdmVkIGluIGEgb2JqZWN0ICh3aGljaCB3aWxsIGJlIHJldHVybmVkKVxuICogd2hlcmUgdGhlIHZhbHVlIG9mICc6cmVmJyBpcyB0aGUgb2JqZWN0LWtleSBhbmQgdGhlIHZhbHVlIHRoZSBIVE1MRWxlbWVudC5cbiAqXG4gKiBJdCdzIHBvc3NpYmxlIHRvIGNyZWF0ZSBhIGhpZXJhcmNoeSBpZiB5b3UgYWRkIGEgJzpvYmonIGF0dHJpYnV0ZS4gRXZlcnlcbiAqIHNpYmxpbmcgd2lsbCBiZSBhZGRlZCB0byB0aGUgb2JqZWN0IHdoaWNoIHdpbGwgZ2V0IHRoZSBuYW1lIGZyb20gdGhlICdkYXRhLWNvbicgYXR0cmlidXRlLlxuICpcbiAqIElmIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBBcnJheSBvdXQgb2YgbXVsdGlwbGUgZWxlbWVudHMsIHlvdSBjYW4gdXNlIHRoZSAnOmFycicgYXR0cmlidXRlLFxuICogdGhlIHZhbHVlIGRlZmluZXMgdGhlIGtleSBhbmQgYWxsIGVsZW1lbnRzLCB3aGljaCBoYXMgdGhlIHNhbWUgcGFyZW50IGFuZCB0aGUgc2FtZSAnZGF0YS1hcnInIGF0dHJpYnV0ZSxcbiAqIHdvdWxkIGJlIGFkZGVkIHRvIGl0LlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgSFRNTCBTdHJpbmcuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZyb21UZW1wbGF0ZShzdHIpIHtcblxuICAgIC8vIFJlbW92ZXMgYW4gYXR0cmlidXRlIGZyb20gYSBIVE1MRWxlbWVudCBhbmQgcmV0dXJucyB0aGUgdmFsdWUuXG4gICAgY29uc3QgcmVtb3ZlQXR0cmlidXRlID0gKGVsLCBuYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZWwuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgLy8gUmVjdXJzaXZlIGZ1bmN0aW9uIHRvIHJlc29sdmUgdGVtcGxhdGVcbiAgICBjb25zdCByZXNvbHZlID0gKGVsZW1lbnQsIGJhc2UgPSB7fSkgPT4ge1xuXG4gICAgICAgIC8vIENoZWNrIGtleSBhbmQgY29udGFpbmVyIGF0dHJpYnV0ZVxuICAgICAgICBjb25zdCBjb24gPSByZW1vdmVBdHRyaWJ1dGUoZWxlbWVudCwgJzpvYmonKTtcbiAgICAgICAgY29uc3Qga2V5ID0gcmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQsICc6cmVmJyk7XG4gICAgICAgIGNvbnN0IHN1YnRyZWUgPSBjb24gPyAoYmFzZVtjb25dID0ge30pIDogYmFzZTtcblxuICAgICAgICAvLyBDaGVjayBhbmQgc2F2ZSBlbGVtZW50XG4gICAgICAgIGtleSAmJiAoYmFzZVtrZXldID0gZWxlbWVudCk7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgQXJyYXkuZnJvbShlbGVtZW50LmNoaWxkcmVuKSkge1xuICAgICAgICAgICAgY29uc3QgYXJyID0gcmVtb3ZlQXR0cmlidXRlKGNoaWxkLCAnOmFycicpO1xuICAgICAgICAgICAgY29uc3Qgc3ViID0gcmVzb2x2ZShjaGlsZCwgYXJyID8ge30gOiBzdWJ0cmVlKTtcblxuICAgICAgICAgICAgaWYgKGFycikge1xuXG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBhcnJheSBhbmQgYWRkIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAoc3VidHJlZVthcnJdIHx8IChzdWJ0cmVlW2Fycl0gPSBbXSkpXG4gICAgICAgICAgICAgICAgICAgIC5wdXNoKE9iamVjdC5rZXlzKHN1YikubGVuZ3RoID8gc3ViIDogY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfTtcblxuICAgIHJldHVybiByZXNvbHZlKGNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nKHN0cikpO1xufVxuXG4vKipcbiAqIFBvbHlmaWxsIGZvciBzYWZhcmkgJiBmaXJlZm94IGZvciB0aGUgZXZlbnRQYXRoIGV2ZW50IHByb3BlcnR5LlxuICogQHBhcmFtIGV2dCBUaGUgZXZlbnQgb2JqZWN0LlxuICogQHJldHVybiBbU3RyaW5nXSBldmVudCBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRQYXRoKGV2dCkge1xuICAgIGxldCBwYXRoID0gZXZ0LnBhdGggfHwgKGV2dC5jb21wb3NlZFBhdGggJiYgZXZ0LmNvbXBvc2VkUGF0aCgpKTtcbiAgICBpZiAocGF0aCkge1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG5cbiAgICBsZXQgZWwgPSBldnQudGFyZ2V0LnBhcmVudEVsZW1lbnQ7XG4gICAgcGF0aCA9IFtldnQudGFyZ2V0LCBlbF07XG4gICAgd2hpbGUgKGVsID0gZWwucGFyZW50RWxlbWVudCkge1xuICAgICAgICBwYXRoLnB1c2goZWwpO1xuICAgIH1cblxuICAgIHBhdGgucHVzaChkb2N1bWVudCwgd2luZG93KTtcbiAgICByZXR1cm4gcGF0aDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIEhUTUxFbGVtZW50IGJ5IHF1ZXJ5LlxuICogQHBhcmFtIHZhbFxuICogQHJldHVybnMge251bGx8RG9jdW1lbnR8RWxlbWVudH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVFbGVtZW50KHZhbCkge1xuICAgIGlmICh2YWwgaW5zdGFuY2VvZiBFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdmFsLnNwbGl0KC8+Pi9nKS5yZWR1Y2UoKHB2LCBjdiwgY2ksIGEpID0+IHtcbiAgICAgICAgICAgIHB2ID0gcHYucXVlcnlTZWxlY3Rvcihjdik7XG4gICAgICAgICAgICByZXR1cm4gY2kgPCBhLmxlbmd0aCAtIDEgPyBwdi5zaGFkb3dSb290IDogcHY7XG4gICAgICAgIH0sIGRvY3VtZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBhYmlsaXR5IHRvIGNoYW5nZSBudW1iZXJzIGluIGFuIGlucHV0IGZpZWxkIHdpdGggdGhlIHNjcm9sbC13aGVlbC5cbiAqIEBwYXJhbSBlbFxuICogQHBhcmFtIG1hcHBlclxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0YWJsZUlucHV0TnVtYmVycyhlbCwgbWFwcGVyID0gdiA9PiB2KSB7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVTY3JvbGwoZSkge1xuICAgICAgICBjb25zdCBpbmMgPSAoWzAuMDAxLCAwLjAxLCAwLjFdKVtOdW1iZXIoZS5zaGlmdEtleSB8fCBlLmN0cmxLZXkgKiAyKV0gKiAoZS5kZWx0YVkgPCAwID8gMSA6IC0xKTtcblxuICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICBsZXQgb2ZmID0gZWwuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIGVsLnZhbHVlID0gZWwudmFsdWUucmVwbGFjZSgvW1xcZC5dKy9nLCAodiwgaSkgPT4ge1xuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiBudW1iZXIgaXMgaW4gY3Vyc29yIHJhbmdlIGFuZCBpbmNyZWFzZSBpdFxuICAgICAgICAgICAgaWYgKGkgPD0gb2ZmICYmIGkgKyB2Lmxlbmd0aCA+PSBvZmYpIHtcbiAgICAgICAgICAgICAgICBvZmYgPSBpO1xuICAgICAgICAgICAgICAgIHJldHVybiBtYXBwZXIoTnVtYmVyKHYpLCBpbmMsIGluZGV4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICB9KTtcblxuICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICBlbC5zZXRTZWxlY3Rpb25SYW5nZShvZmYsIG9mZik7XG5cbiAgICAgICAgLy8gUHJldmVudCBkZWZhdWx0IGFuZCB0cmlnZ2VyIGlucHV0IGV2ZW50XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgIH1cblxuICAgIC8vIEJpbmQgZXZlbnRzXG4gICAgb24oZWwsICdmb2N1cycsICgpID0+IG9uKHdpbmRvdywgJ3doZWVsJywgaGFuZGxlU2Nyb2xsLCB7cGFzc2l2ZTogZmFsc2V9KSk7XG4gICAgb24oZWwsICdibHVyJywgKCkgPT4gb2ZmKHdpbmRvdywgJ3doZWVsJywgaGFuZGxlU2Nyb2xsKSk7XG59XG4iLCAiLy8gU2hvcnRoYW5kc1xuY29uc3Qge21pbiwgbWF4LCBmbG9vciwgcm91bmR9ID0gTWF0aDtcblxuLyoqXG4gKiBUcmllcyB0byBjb252ZXJ0IGEgY29sb3IgbmFtZSB0byByZ2IvYSBoZXggcmVwcmVzZW50YXRpb25cbiAqIEBwYXJhbSBuYW1lXG4gKiBAcmV0dXJucyB7c3RyaW5nIHwgQ2FudmFzR3JhZGllbnQgfCBDYW52YXNQYXR0ZXJufVxuICovXG5mdW5jdGlvbiBzdGFuZGFyZGl6ZUNvbG9yKG5hbWUpIHtcblxuICAgIC8vIFNpbmNlIGludmFsaWQgY29sb3IncyB3aWxsIGJlIHBhcnNlZCBhcyBibGFjaywgZmlsdGVyIHRoZW0gb3V0XG4gICAgaWYgKG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2JsYWNrJykge1xuICAgICAgICByZXR1cm4gJyMwMDAnO1xuICAgIH1cblxuICAgIGNvbnN0IGN0eCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQoJzJkJyk7XG4gICAgY3R4LmZpbGxTdHlsZSA9IG5hbWU7XG4gICAgcmV0dXJuIGN0eC5maWxsU3R5bGUgPT09ICcjMDAwJyA/IG51bGwgOiBjdHguZmlsbFN0eWxlO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSFNWIHNwZWN0cnVtIHRvIFJHQi5cbiAqIEBwYXJhbSBoIEh1ZVxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICogQHBhcmFtIHYgVmFsdWVcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gQXJyYXkgd2l0aCByZ2IgdmFsdWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9SZ2IoaCwgcywgdikge1xuICAgIGggPSAoaCAvIDM2MCkgKiA2O1xuICAgIHMgLz0gMTAwO1xuICAgIHYgLz0gMTAwO1xuXG4gICAgY29uc3QgaSA9IGZsb29yKGgpO1xuXG4gICAgY29uc3QgZiA9IGggLSBpO1xuICAgIGNvbnN0IHAgPSB2ICogKDEgLSBzKTtcbiAgICBjb25zdCBxID0gdiAqICgxIC0gZiAqIHMpO1xuICAgIGNvbnN0IHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XG5cbiAgICBjb25zdCBtb2QgPSBpICUgNjtcbiAgICBjb25zdCByID0gW3YsIHEsIHAsIHAsIHQsIHZdW21vZF07XG4gICAgY29uc3QgZyA9IFt0LCB2LCB2LCBxLCBwLCBwXVttb2RdO1xuICAgIGNvbnN0IGIgPSBbcCwgcCwgdCwgdiwgdiwgcV1bbW9kXTtcblxuICAgIHJldHVybiBbXG4gICAgICAgIHIgKiAyNTUsXG4gICAgICAgIGcgKiAyNTUsXG4gICAgICAgIGIgKiAyNTVcbiAgICBdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSFNWIHNwZWN0cnVtIHRvIEhleC5cbiAqIEBwYXJhbSBoIEh1ZVxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICogQHBhcmFtIHYgVmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmdbXX0gSGV4IHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9IZXgoaCwgcywgdikge1xuICAgIHJldHVybiBoc3ZUb1JnYihoLCBzLCB2KS5tYXAodiA9PlxuICAgICAgICByb3VuZCh2KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKVxuICAgICk7XG59XG5cbi8qKlxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gQ01ZSy5cbiAqIEBwYXJhbSBoIEh1ZVxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICogQHBhcmFtIHYgVmFsdWVcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gQ01ZSyB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvQ215ayhoLCBzLCB2KSB7XG4gICAgY29uc3QgcmdiID0gaHN2VG9SZ2IoaCwgcywgdik7XG4gICAgY29uc3QgciA9IHJnYlswXSAvIDI1NTtcbiAgICBjb25zdCBnID0gcmdiWzFdIC8gMjU1O1xuICAgIGNvbnN0IGIgPSByZ2JbMl0gLyAyNTU7XG5cbiAgICBjb25zdCBrID0gbWluKDEgLSByLCAxIC0gZywgMSAtIGIpO1xuICAgIGNvbnN0IGMgPSBrID09PSAxID8gMCA6ICgxIC0gciAtIGspIC8gKDEgLSBrKTtcbiAgICBjb25zdCBtID0gayA9PT0gMSA/IDAgOiAoMSAtIGcgLSBrKSAvICgxIC0gayk7XG4gICAgY29uc3QgeSA9IGsgPT09IDEgPyAwIDogKDEgLSBiIC0gaykgLyAoMSAtIGspO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgYyAqIDEwMCxcbiAgICAgICAgbSAqIDEwMCxcbiAgICAgICAgeSAqIDEwMCxcbiAgICAgICAgayAqIDEwMFxuICAgIF07XG59XG5cbi8qKlxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gSFNMLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge251bWJlcltdfSBIU0wgdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb0hzbChoLCBzLCB2KSB7XG4gICAgcyAvPSAxMDA7XG4gICAgdiAvPSAxMDA7XG5cbiAgICBjb25zdCBsID0gKDIgLSBzKSAqIHYgLyAyO1xuXG4gICAgaWYgKGwgIT09IDApIHtcbiAgICAgICAgaWYgKGwgPT09IDEpIHtcbiAgICAgICAgICAgIHMgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGwgPCAwLjUpIHtcbiAgICAgICAgICAgIHMgPSBzICogdiAvIChsICogMik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzID0gcyAqIHYgLyAoMiAtIGwgKiAyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAgIGgsXG4gICAgICAgIHMgKiAxMDAsXG4gICAgICAgIGwgKiAxMDBcbiAgICBdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgUkdCIHRvIEhTVi5cbiAqIEBwYXJhbSByIFJlZFxuICogQHBhcmFtIGcgR3JlZW5cbiAqIEBwYXJhbSBiIEJsdWVcbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxuICovXG5mdW5jdGlvbiByZ2JUb0hzdihyLCBnLCBiKSB7XG4gICAgciAvPSAyNTU7XG4gICAgZyAvPSAyNTU7XG4gICAgYiAvPSAyNTU7XG5cbiAgICBjb25zdCBtaW5WYWwgPSBtaW4ociwgZywgYik7XG4gICAgY29uc3QgbWF4VmFsID0gbWF4KHIsIGcsIGIpO1xuICAgIGNvbnN0IGRlbHRhID0gbWF4VmFsIC0gbWluVmFsO1xuXG4gICAgbGV0IGgsIHM7XG4gICAgY29uc3QgdiA9IG1heFZhbDtcbiAgICBpZiAoZGVsdGEgPT09IDApIHtcbiAgICAgICAgaCA9IHMgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHMgPSBkZWx0YSAvIG1heFZhbDtcbiAgICAgICAgY29uc3QgZHIgPSAoKChtYXhWYWwgLSByKSAvIDYpICsgKGRlbHRhIC8gMikpIC8gZGVsdGE7XG4gICAgICAgIGNvbnN0IGRnID0gKCgobWF4VmFsIC0gZykgLyA2KSArIChkZWx0YSAvIDIpKSAvIGRlbHRhO1xuICAgICAgICBjb25zdCBkYiA9ICgoKG1heFZhbCAtIGIpIC8gNikgKyAoZGVsdGEgLyAyKSkgLyBkZWx0YTtcblxuICAgICAgICBpZiAociA9PT0gbWF4VmFsKSB7XG4gICAgICAgICAgICBoID0gZGIgLSBkZztcbiAgICAgICAgfSBlbHNlIGlmIChnID09PSBtYXhWYWwpIHtcbiAgICAgICAgICAgIGggPSAoMSAvIDMpICsgZHIgLSBkYjtcbiAgICAgICAgfSBlbHNlIGlmIChiID09PSBtYXhWYWwpIHtcbiAgICAgICAgICAgIGggPSAoMiAvIDMpICsgZGcgLSBkcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoIDwgMCkge1xuICAgICAgICAgICAgaCArPSAxO1xuICAgICAgICB9IGVsc2UgaWYgKGggPiAxKSB7XG4gICAgICAgICAgICBoIC09IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgICBoICogMzYwLFxuICAgICAgICBzICogMTAwLFxuICAgICAgICB2ICogMTAwXG4gICAgXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IENNWUsgdG8gSFNWLlxuICogQHBhcmFtIGMgQ3lhblxuICogQHBhcmFtIG0gTWFnZW50YVxuICogQHBhcmFtIHkgWWVsbG93XG4gKiBAcGFyYW0gayBLZXkgKEJsYWNrKVxuICogQHJldHVybiB7bnVtYmVyW119IEhTViB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGNteWtUb0hzdihjLCBtLCB5LCBrKSB7XG4gICAgYyAvPSAxMDA7XG4gICAgbSAvPSAxMDA7XG4gICAgeSAvPSAxMDA7XG4gICAgayAvPSAxMDA7XG5cbiAgICBjb25zdCByID0gKDEgLSBtaW4oMSwgYyAqICgxIC0gaykgKyBrKSkgKiAyNTU7XG4gICAgY29uc3QgZyA9ICgxIC0gbWluKDEsIG0gKiAoMSAtIGspICsgaykpICogMjU1O1xuICAgIGNvbnN0IGIgPSAoMSAtIG1pbigxLCB5ICogKDEgLSBrKSArIGspKSAqIDI1NTtcblxuICAgIHJldHVybiBbLi4ucmdiVG9Ic3YociwgZywgYildO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSFNMIHRvIEhTVi5cbiAqIEBwYXJhbSBoIEh1ZVxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICogQHBhcmFtIGwgTGlnaHRuZXNzXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gSFNWIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gaHNsVG9Ic3YoaCwgcywgbCkge1xuICAgIHMgLz0gMTAwO1xuICAgIGwgLz0gMTAwO1xuICAgIHMgKj0gbCA8IDAuNSA/IGwgOiAxIC0gbDtcblxuICAgIGNvbnN0IG5zID0gKDIgKiBzIC8gKGwgKyBzKSkgKiAxMDA7XG4gICAgY29uc3QgdiA9IChsICsgcykgKiAxMDA7XG4gICAgcmV0dXJuIFtoLCBpc05hTihucykgPyAwIDogbnMsIHZdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSEVYIHRvIEhTVi5cbiAqIEBwYXJhbSBoZXggSGV4YWRlY2ltYWwgc3RyaW5nIG9mIHJnYiBjb2xvcnMsIGNhbiBoYXZlIGxlbmd0aCAzIG9yIDYuXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gSFNWIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gaGV4VG9Ic3YoaGV4KSB7XG4gICAgcmV0dXJuIHJnYlRvSHN2KC4uLmhleC5tYXRjaCgvLnsyfS9nKS5tYXAodiA9PiBwYXJzZUludCh2LCAxNikpKTtcbn1cblxuLyoqXG4gKiBUcnkncyB0byBwYXJzZSBhIHN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgY29sb3IgdG8gYSBIU1YgYXJyYXkuXG4gKiBDdXJyZW50IHN1cHBvcnRlZCB0eXBlcyBhcmUgY215aywgcmdiYSwgaHNsYSBhbmQgaGV4YWRlY2ltYWwuXG4gKiBAcGFyYW0gc3RyXG4gKiBAcmV0dXJuIHsqfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUb0hTVkEoc3RyKSB7XG5cbiAgICAvLyBDaGVjayBpZiBzdHJpbmcgaXMgYSBjb2xvci1uYW1lXG4gICAgc3RyID0gc3RyLm1hdGNoKC9eW2EtekEtWl0rJC8pID8gc3RhbmRhcmRpemVDb2xvcihzdHIpIDogc3RyO1xuXG4gICAgLy8gUmVndWxhciBleHByZXNzaW9ucyB0byBtYXRjaCBkaWZmZXJlbnQgdHlwZXMgb2YgY29sb3IgcmVwcmVzZW50aW9uXG4gICAgY29uc3QgcmVnZXggPSB7XG4gICAgICAgIGNteWs6IC9eY215a1xcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKykvaSxcbiAgICAgICAgcmdiYTogL15yZ2JhP1xcRCsoW1xcZC5dKykoJT8pXFxEKyhbXFxkLl0rKSglPylcXEQrKFtcXGQuXSspKCU/KVxcRCo/KChbXFxkLl0rKSglPyl8JCkvaSxcbiAgICAgICAgaHNsYTogL15oc2xhP1xcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCo/KChbXFxkLl0rKSglPyl8JCkvaSxcbiAgICAgICAgaHN2YTogL15oc3ZhP1xcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCo/KChbXFxkLl0rKSglPyl8JCkvaSxcbiAgICAgICAgaGV4YTogL14jPygoW1xcZEEtRmEtZl17Myw0fSl8KFtcXGRBLUZhLWZdezZ9KXwoW1xcZEEtRmEtZl17OH0pKSQvaVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyBhbiBBcnJheSBvZiBhbnkgdHlwZSwgY29udmVydCBzdHJpbmdzIHdoaWNoIHJlcHJlc2VudHNcbiAgICAgKiBhIG51bWJlciB0byBhIG51bWJlciBhbiBhbnl0aGluZyBlbHNlIHRvIHVuZGVmaW5lZC5cbiAgICAgKiBAcGFyYW0gYXJyYXlcbiAgICAgKiBAcmV0dXJuIHsqfVxuICAgICAqL1xuICAgIGNvbnN0IG51bWFyaXplID0gYXJyYXkgPT4gYXJyYXkubWFwKHYgPT4gL14ofFxcZCspXFwuXFxkK3xcXGQrJC8udGVzdCh2KSA/IE51bWJlcih2KSA6IHVuZGVmaW5lZCk7XG5cbiAgICBsZXQgbWF0Y2g7XG4gICAgaW52YWxpZDogZm9yIChjb25zdCB0eXBlIGluIHJlZ2V4KSB7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY3VycmVudCBzY2hlbWUgcGFzc2VkXG4gICAgICAgIGlmICghKG1hdGNoID0gcmVnZXhbdHlwZV0uZXhlYyhzdHIpKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcnkgdG8gY29udmVydFxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2NteWsnOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgWywgYywgbSwgeSwga10gPSBudW1hcml6ZShtYXRjaCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoYyA+IDEwMCB8fCBtID4gMTAwIHx8IHkgPiAxMDAgfHwgayA+IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBicmVhayBpbnZhbGlkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWVzOiBjbXlrVG9Ic3YoYywgbSwgeSwgayksIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAncmdiYSc6IHtcbiAgICAgICAgICAgICAgICBsZXQgWywgciwgLCBnLCAsIGIsICwgLCBhXSA9IG51bWFyaXplKG1hdGNoKTtcblxuICAgICAgICAgICAgICAgIHIgPSBtYXRjaFsyXSA9PT0gJyUnID8gKHIgLyAxMDApICogMjU1IDogcjtcbiAgICAgICAgICAgICAgICBnID0gbWF0Y2hbNF0gPT09ICclJyA/IChnIC8gMTAwKSAqIDI1NSA6IGc7XG4gICAgICAgICAgICAgICAgYiA9IG1hdGNoWzZdID09PSAnJScgPyAoYiAvIDEwMCkgKiAyNTUgOiBiO1xuICAgICAgICAgICAgICAgIGEgPSBtYXRjaFs5XSA9PT0gJyUnID8gKGEgLyAxMDApIDogYTtcblxuICAgICAgICAgICAgICAgIGlmIChyID4gMjU1IHx8IGcgPiAyNTUgfHwgYiA+IDI1NSB8fCBhIDwgMCB8fCBhID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhayBpbnZhbGlkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWVzOiBbLi4ucmdiVG9Ic3YociwgZywgYiksIGFdLCBhLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2hleGEnOiB7XG4gICAgICAgICAgICAgICAgbGV0IFssIGhleF0gPSBtYXRjaDtcblxuICAgICAgICAgICAgICAgIGlmIChoZXgubGVuZ3RoID09PSA0IHx8IGhleC5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgaGV4ID0gaGV4LnNwbGl0KCcnKS5tYXAodiA9PiB2ICsgdikuam9pbignJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcmF3ID0gaGV4LnN1YnN0cmluZygwLCA2KTtcbiAgICAgICAgICAgICAgICBsZXQgYSA9IGhleC5zdWJzdHJpbmcoNik7XG5cbiAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IDAgLSAyNTUgdG8gMCAtIDEgZm9yIG9wYWNpdHlcbiAgICAgICAgICAgICAgICBhID0gYSA/IChwYXJzZUludChhLCAxNikgLyAyNTUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFsuLi5oZXhUb0hzdihyYXcpLCBhXSwgYSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdoc2xhJzoge1xuICAgICAgICAgICAgICAgIGxldCBbLCBoLCBzLCBsLCAsIGFdID0gbnVtYXJpemUobWF0Y2gpO1xuICAgICAgICAgICAgICAgIGEgPSBtYXRjaFs2XSA9PT0gJyUnID8gKGEgLyAxMDApIDogYTtcblxuICAgICAgICAgICAgICAgIGlmIChoID4gMzYwIHx8IHMgPiAxMDAgfHwgbCA+IDEwMCB8fCBhIDwgMCB8fCBhID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhayBpbnZhbGlkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWVzOiBbLi4uaHNsVG9Ic3YoaCwgcywgbCksIGFdLCBhLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2hzdmEnOiB7XG4gICAgICAgICAgICAgICAgbGV0IFssIGgsIHMsIHYsICwgYV0gPSBudW1hcml6ZShtYXRjaCk7XG4gICAgICAgICAgICAgICAgYSA9IG1hdGNoWzZdID09PSAnJScgPyAoYSAvIDEwMCkgOiBhO1xuXG4gICAgICAgICAgICAgICAgaWYgKGggPiAzNjAgfHwgcyA+IDEwMCB8fCB2ID4gMTAwIHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFtoLCBzLCB2LCBhXSwgYSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge3ZhbHVlczogbnVsbCwgdHlwZTogbnVsbH07XG59XG4iLCAiaW1wb3J0IHtoc3ZUb0NteWssIGhzdlRvSGV4LCBoc3ZUb0hzbCwgaHN2VG9SZ2J9IGZyb20gJy4vY29sb3InO1xuXG4vKipcbiAqIFNpbXBsZSBjbGFzcyB3aGljaCBob2xkcyB0aGUgcHJvcGVydGllc1xuICogb2YgdGhlIGNvbG9yIHJlcHJlc2VudGlvbiBtb2RlbCBoc2xhIChodWUgc2F0dXJhdGlvbiBsaWdodG5lc3MgYWxwaGEpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBIU1ZhQ29sb3IoaCA9IDAsIHMgPSAwLCB2ID0gMCwgYSA9IDEpIHtcbiAgICBjb25zdCBtYXBwZXIgPSAob3JpZ2luYWwsIG5leHQpID0+IChwcmVjaXNpb24gPSAtMSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dCh+cHJlY2lzaW9uID8gb3JpZ2luYWwubWFwKHYgPT4gTnVtYmVyKHYudG9GaXhlZChwcmVjaXNpb24pKSkgOiBvcmlnaW5hbCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHRoYXQgPSB7XG4gICAgICAgIGgsIHMsIHYsIGEsXG5cbiAgICAgICAgdG9IU1ZBKCkge1xuICAgICAgICAgICAgY29uc3QgaHN2YSA9IFt0aGF0LmgsIHRoYXQucywgdGhhdC52LCB0aGF0LmFdO1xuICAgICAgICAgICAgaHN2YS50b1N0cmluZyA9IG1hcHBlcihoc3ZhLCBhcnIgPT4gYGhzdmEoJHthcnJbMF19LCAke2FyclsxXX0lLCAke2FyclsyXX0lLCAke3RoYXQuYX0pYCk7XG4gICAgICAgICAgICByZXR1cm4gaHN2YTtcbiAgICAgICAgfSxcblxuICAgICAgICB0b0hTTEEoKSB7XG4gICAgICAgICAgICBjb25zdCBoc2xhID0gWy4uLmhzdlRvSHNsKHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYpLCB0aGF0LmFdO1xuICAgICAgICAgICAgaHNsYS50b1N0cmluZyA9IG1hcHBlcihoc2xhLCBhcnIgPT4gYGhzbGEoJHthcnJbMF19LCAke2FyclsxXX0lLCAke2FyclsyXX0lLCAke3RoYXQuYX0pYCk7XG4gICAgICAgICAgICByZXR1cm4gaHNsYTtcbiAgICAgICAgfSxcblxuICAgICAgICB0b1JHQkEoKSB7XG4gICAgICAgICAgICBjb25zdCByZ2JhID0gWy4uLmhzdlRvUmdiKHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYpLCB0aGF0LmFdO1xuICAgICAgICAgICAgcmdiYS50b1N0cmluZyA9IG1hcHBlcihyZ2JhLCBhcnIgPT4gYHJnYmEoJHthcnJbMF19LCAke2FyclsxXX0sICR7YXJyWzJdfSwgJHt0aGF0LmF9KWApO1xuICAgICAgICAgICAgcmV0dXJuIHJnYmE7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9DTVlLKCkge1xuICAgICAgICAgICAgY29uc3QgY215ayA9IGhzdlRvQ215ayh0aGF0LmgsIHRoYXQucywgdGhhdC52KTtcbiAgICAgICAgICAgIGNteWsudG9TdHJpbmcgPSBtYXBwZXIoY215aywgYXJyID0+IGBjbXlrKCR7YXJyWzBdfSUsICR7YXJyWzFdfSUsICR7YXJyWzJdfSUsICR7YXJyWzNdfSUpYCk7XG4gICAgICAgICAgICByZXR1cm4gY215aztcbiAgICAgICAgfSxcblxuICAgICAgICB0b0hFWEEoKSB7XG4gICAgICAgICAgICBjb25zdCBoZXggPSBoc3ZUb0hleCh0aGF0LmgsIHRoYXQucywgdGhhdC52KTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgYWxwaGEgY2hhbm5lbCBtYWtlIHNlbnNlLCBjb252ZXJ0IGl0IHRvIDI1NSBudW1iZXIgc3BhY2UsIGNvbnZlcnRcbiAgICAgICAgICAgIC8vIFRvIGhleCBhbmQgcGFkIGl0IHdpdGggemVyb3MgaWYgbmVlZGV0LlxuICAgICAgICAgICAgY29uc3QgYWxwaGEgPSB0aGF0LmEgPj0gMSA/ICcnIDogTnVtYmVyKCh0aGF0LmEgKiAyNTUpLnRvRml4ZWQoMCkpXG4gICAgICAgICAgICAgICAgLnRvU3RyaW5nKDE2KVxuICAgICAgICAgICAgICAgIC50b1VwcGVyQ2FzZSgpLnBhZFN0YXJ0KDIsICcwJyk7XG5cbiAgICAgICAgICAgIGFscGhhICYmIGhleC5wdXNoKGFscGhhKTtcbiAgICAgICAgICAgIGhleC50b1N0cmluZyA9ICgpID0+IGAjJHtoZXguam9pbignJykudG9VcHBlckNhc2UoKX1gO1xuICAgICAgICAgICAgcmV0dXJuIGhleDtcbiAgICAgICAgfSxcblxuICAgICAgICBjbG9uZTogKCkgPT4gSFNWYUNvbG9yKHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYsIHRoYXQuYSlcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoYXQ7XG59XG4iLCAiaW1wb3J0ICogYXMgXyBmcm9tICcuLi91dGlscy91dGlscyc7XG5cbmNvbnN0IGNsYW1wID0gdiA9PiBNYXRoLm1heChNYXRoLm1pbih2LCAxKSwgMCk7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNb3ZlYWJsZShvcHQpIHtcblxuICAgIGNvbnN0IHRoYXQgPSB7XG5cbiAgICAgICAgLy8gQXNzaWduIGRlZmF1bHQgdmFsdWVzXG4gICAgICAgIG9wdGlvbnM6IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgbG9jazogbnVsbCxcbiAgICAgICAgICAgIG9uY2hhbmdlOiAoKSA9PiAwLFxuICAgICAgICAgICAgb25zdG9wOiAoKSA9PiAwXG4gICAgICAgIH0sIG9wdCksXG5cbiAgICAgICAgX2tleWJvYXJkKGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoYXQ7XG4gICAgICAgICAgICBjb25zdCB7dHlwZSwga2V5fSA9IGU7XG5cbiAgICAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgTW92YWJsZSBpcyBmb2N1c2VkIGFuZCB0aGVuIG1vdmUgaXQgYmFzZWQgb24gYXJyb3cga2V5IGlucHV0c1xuICAgICAgICAgICAgLy8gRm9yIGltcHJvdmVkIGFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBvcHRpb25zLndyYXBwZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7bG9ja30gPSB0aGF0Lm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgY29uc3QgdXAgPSBrZXkgPT09ICdBcnJvd1VwJztcbiAgICAgICAgICAgICAgICBjb25zdCByaWdodCA9IGtleSA9PT0gJ0Fycm93UmlnaHQnO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRvd24gPSBrZXkgPT09ICdBcnJvd0Rvd24nO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBrZXkgPT09ICdBcnJvd0xlZnQnO1xuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdrZXlkb3duJyAmJiAodXAgfHwgcmlnaHQgfHwgZG93biB8fCBsZWZ0KSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgeG0gPSAwO1xuICAgICAgICAgICAgICAgICAgICBsZXQgeW0gPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NrID09PSAndicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtID0gKHVwIHx8IHJpZ2h0KSA/IDEgOiAtMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NrID09PSAnaCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtID0gKHVwIHx8IHJpZ2h0KSA/IC0xIDogMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHltID0gdXAgPyAtMSA6IChkb3duID8gMSA6IDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgeG0gPSBsZWZ0ID8gLTEgOiAocmlnaHQgPyAxIDogMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGF0LnVwZGF0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYW1wKHRoYXQuY2FjaGUueCArICgwLjAxICogeG0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYW1wKHRoYXQuY2FjaGUueSArICgwLjAxICogeW0pKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkuc3RhcnRzV2l0aCgnQXJyb3cnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0Lm9wdGlvbnMub25zdG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgX3RhcHN0YXJ0KGV2dCkge1xuICAgICAgICAgICAgXy5vbihkb2N1bWVudCwgWydtb3VzZXVwJywgJ3RvdWNoZW5kJywgJ3RvdWNoY2FuY2VsJ10sIHRoYXQuX3RhcHN0b3ApO1xuICAgICAgICAgICAgXy5vbihkb2N1bWVudCwgWydtb3VzZW1vdmUnLCAndG91Y2htb3ZlJ10sIHRoYXQuX3RhcG1vdmUpO1xuXG4gICAgICAgICAgICBpZiAoZXZ0LmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVHJpZ2dlclxuICAgICAgICAgICAgdGhhdC5fdGFwbW92ZShldnQpO1xuICAgICAgICB9LFxuXG4gICAgICAgIF90YXBtb3ZlKGV2dCkge1xuICAgICAgICAgICAgY29uc3Qge29wdGlvbnMsIGNhY2hlfSA9IHRoYXQ7XG4gICAgICAgICAgICBjb25zdCB7bG9jaywgZWxlbWVudCwgd3JhcHBlcn0gPSBvcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgYiA9IHdyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgIGxldCB4ID0gMCwgeSA9IDA7XG4gICAgICAgICAgICBpZiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG91Y2ggPSBldnQgJiYgZXZ0LnRvdWNoZXMgJiYgZXZ0LnRvdWNoZXNbMF07XG4gICAgICAgICAgICAgICAgeCA9IGV2dCA/ICh0b3VjaCB8fCBldnQpLmNsaWVudFggOiAwO1xuICAgICAgICAgICAgICAgIHkgPSBldnQgPyAodG91Y2ggfHwgZXZ0KS5jbGllbnRZIDogMDtcblxuICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRvIGJvdW5kc1xuICAgICAgICAgICAgICAgIGlmICh4IDwgYi5sZWZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIHggPSBiLmxlZnQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh4ID4gYi5sZWZ0ICsgYi53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB4ID0gYi5sZWZ0ICsgYi53aWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHkgPCBiLnRvcCkge1xuICAgICAgICAgICAgICAgICAgICB5ID0gYi50b3A7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh5ID4gYi50b3AgKyBiLmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICB5ID0gYi50b3AgKyBiLmhlaWdodDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBOb3JtYWxpemVcbiAgICAgICAgICAgICAgICB4IC09IGIubGVmdDtcbiAgICAgICAgICAgICAgICB5IC09IGIudG9wO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjYWNoZSkge1xuICAgICAgICAgICAgICAgIHggPSBjYWNoZS54ICogYi53aWR0aDtcbiAgICAgICAgICAgICAgICB5ID0gY2FjaGUueSAqIGIuaGVpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobG9jayAhPT0gJ2gnKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gYGNhbGMoJHt4IC8gYi53aWR0aCAqIDEwMH0lIC0gJHtlbGVtZW50Lm9mZnNldFdpZHRoIC8gMn1weClgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobG9jayAhPT0gJ3YnKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSBgY2FsYygke3kgLyBiLmhlaWdodCAqIDEwMH0lIC0gJHtlbGVtZW50Lm9mZnNldEhlaWdodCAvIDJ9cHgpYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhhdC5jYWNoZSA9IHt4OiB4IC8gYi53aWR0aCwgeTogeSAvIGIuaGVpZ2h0fTtcbiAgICAgICAgICAgIGNvbnN0IGN4ID0gY2xhbXAoeCAvIGIud2lkdGgpO1xuICAgICAgICAgICAgY29uc3QgY3kgPSBjbGFtcCh5IC8gYi5oZWlnaHQpO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKGxvY2spIHtcbiAgICAgICAgICAgICAgICBjYXNlICd2JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMub25jaGFuZ2UoY3gpO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5vbmNoYW5nZShjeSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMub25jaGFuZ2UoY3gsIGN5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBfdGFwc3RvcCgpIHtcbiAgICAgICAgICAgIHRoYXQub3B0aW9ucy5vbnN0b3AoKTtcbiAgICAgICAgICAgIF8ub2ZmKGRvY3VtZW50LCBbJ21vdXNldXAnLCAndG91Y2hlbmQnLCAndG91Y2hjYW5jZWwnXSwgdGhhdC5fdGFwc3RvcCk7XG4gICAgICAgICAgICBfLm9mZihkb2N1bWVudCwgWydtb3VzZW1vdmUnLCAndG91Y2htb3ZlJ10sIHRoYXQuX3RhcG1vdmUpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRyaWdnZXIoKSB7XG4gICAgICAgICAgICB0aGF0Ll90YXBtb3ZlKCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdXBkYXRlKHggPSAwLCB5ID0gMCkge1xuICAgICAgICAgICAgY29uc3Qge2xlZnQsIHRvcCwgd2lkdGgsIGhlaWdodH0gPSB0aGF0Lm9wdGlvbnMud3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5sb2NrID09PSAnaCcpIHtcbiAgICAgICAgICAgICAgICB5ID0geDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhhdC5fdGFwbW92ZSh7XG4gICAgICAgICAgICAgICAgY2xpZW50WDogbGVmdCArIHdpZHRoICogeCxcbiAgICAgICAgICAgICAgICBjbGllbnRZOiB0b3AgKyBoZWlnaHQgKiB5XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXN0cm95KCkge1xuICAgICAgICAgICAgY29uc3Qge29wdGlvbnMsIF90YXBzdGFydCwgX2tleWJvYXJkfSA9IHRoYXQ7XG4gICAgICAgICAgICBfLm9mZihkb2N1bWVudCwgWydrZXlkb3duJywgJ2tleXVwJ10sIF9rZXlib2FyZCk7XG4gICAgICAgICAgICBfLm9mZihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAnbW91c2Vkb3duJywgX3RhcHN0YXJ0KTtcbiAgICAgICAgICAgIF8ub2ZmKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICd0b3VjaHN0YXJ0JywgX3RhcHN0YXJ0LCB7XG4gICAgICAgICAgICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8vIEluaXRpbGl6ZVxuICAgIGNvbnN0IHtvcHRpb25zLCBfdGFwc3RhcnQsIF9rZXlib2FyZH0gPSB0aGF0O1xuICAgIF8ub24oW29wdGlvbnMud3JhcHBlciwgb3B0aW9ucy5lbGVtZW50XSwgJ21vdXNlZG93bicsIF90YXBzdGFydCk7XG4gICAgXy5vbihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAndG91Y2hzdGFydCcsIF90YXBzdGFydCwge1xuICAgICAgICBwYXNzaXZlOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgXy5vbihkb2N1bWVudCwgWydrZXlkb3duJywgJ2tleXVwJ10sIF9rZXlib2FyZCk7XG5cbiAgICByZXR1cm4gdGhhdDtcbn1cbiIsICJpbXBvcnQgKiBhcyBfIGZyb20gJy4uL3V0aWxzL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2VsZWN0YWJsZShvcHQgPSB7fSkge1xuICAgIG9wdCA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBvbmNoYW5nZTogKCkgPT4gMCxcbiAgICAgICAgY2xhc3NOYW1lOiAnJyxcbiAgICAgICAgZWxlbWVudHM6IFtdXG4gICAgfSwgb3B0KTtcblxuICAgIGNvbnN0IG9uVGFwID0gXy5vbihvcHQuZWxlbWVudHMsICdjbGljaycsIGV2dCA9PiB7XG4gICAgICAgIG9wdC5lbGVtZW50cy5mb3JFYWNoKGUgPT5cbiAgICAgICAgICAgIGUuY2xhc3NMaXN0W2V2dC50YXJnZXQgPT09IGUgPyAnYWRkJyA6ICdyZW1vdmUnXShvcHQuY2xhc3NOYW1lKVxuICAgICAgICApO1xuXG4gICAgICAgIG9wdC5vbmNoYW5nZShldnQpO1xuXG4gICAgICAgIC8vIEZpeCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL1NpbW9ud2VwL3BpY2tyL2lzc3Vlcy8yNDNcbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGVzdHJveTogKCkgPT4gXy5vZmYoLi4ub25UYXApXG4gICAgfTtcbn1cbiIsICJpbXBvcnQgKiBhcyBfIGZyb20gJy4vdXRpbHMvdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBpbnN0YW5jZSA9PiB7XG5cbiAgICBjb25zdCB7XG4gICAgICAgIGNvbXBvbmVudHMsXG4gICAgICAgIHVzZUFzQnV0dG9uLFxuICAgICAgICBpbmxpbmUsXG4gICAgICAgIGFwcENsYXNzLFxuICAgICAgICB0aGVtZSxcbiAgICAgICAgbG9ja09wYWNpdHlcbiAgICB9ID0gaW5zdGFuY2Uub3B0aW9ucztcblxuICAgIC8vIFV0aWxzXG4gICAgY29uc3QgaGlkZGVuID0gY29uID0+IGNvbiA/ICcnIDogJ3N0eWxlPVwiZGlzcGxheTpub25lXCIgaGlkZGVuJztcbiAgICBjb25zdCB0ID0gc3RyID0+IGluc3RhbmNlLl90KHN0cik7XG5cbiAgICBjb25zdCByb290ID0gXy5jcmVhdGVGcm9tVGVtcGxhdGUoYFxuICAgICAgPGRpdiA6cmVmPVwicm9vdFwiIGNsYXNzPVwicGlja3JcIj5cblxuICAgICAgICAke3VzZUFzQnV0dG9uID8gJycgOiAnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgOnJlZj1cImJ1dHRvblwiIGNsYXNzPVwicGNyLWJ1dHRvblwiPjwvYnV0dG9uPid9XG5cbiAgICAgICAgPGRpdiA6cmVmPVwiYXBwXCIgY2xhc3M9XCJwY3ItYXBwICR7YXBwQ2xhc3MgfHwgJyd9XCIgZGF0YS10aGVtZT1cIiR7dGhlbWV9XCIgJHtpbmxpbmUgPyAnc3R5bGU9XCJwb3NpdGlvbjogdW5zZXRcIicgOiAnJ30gYXJpYS1sYWJlbD1cIiR7dCgndWk6ZGlhbG9nJywgJ2NvbG9yIHBpY2tlciBkaWFsb2cnKX1cIiByb2xlPVwid2luZG93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBjci1zZWxlY3Rpb25cIiAke2hpZGRlbihjb21wb25lbnRzLnBhbGV0dGUpfT5cbiAgICAgICAgICAgIDxkaXYgOm9iaj1cInByZXZpZXdcIiBjbGFzcz1cInBjci1jb2xvci1wcmV2aWV3XCIgJHtoaWRkZW4oY29tcG9uZW50cy5wcmV2aWV3KX0+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIDpyZWY9XCJsYXN0Q29sb3JcIiBjbGFzcz1cInBjci1sYXN0LWNvbG9yXCIgYXJpYS1sYWJlbD1cIiR7dCgnYnRuOmxhc3QtY29sb3InKX1cIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwiY3VycmVudENvbG9yXCIgY2xhc3M9XCJwY3ItY3VycmVudC1jb2xvclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgOm9iaj1cInBhbGV0dGVcIiBjbGFzcz1cInBjci1jb2xvci1wYWxldHRlXCI+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInBpY2tlclwiIGNsYXNzPVwicGNyLXBpY2tlclwiPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJwYWxldHRlXCIgY2xhc3M9XCJwY3ItcGFsZXR0ZVwiIHRhYmluZGV4PVwiMFwiIGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6cGFsZXR0ZScpfVwiIHJvbGU9XCJsaXN0Ym94XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiA6b2JqPVwiaHVlXCIgY2xhc3M9XCJwY3ItY29sb3ItY2hvb3NlclwiICR7aGlkZGVuKGNvbXBvbmVudHMuaHVlKX0+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInBpY2tlclwiIGNsYXNzPVwicGNyLXBpY2tlclwiPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJzbGlkZXJcIiBjbGFzcz1cInBjci1odWUgcGNyLXNsaWRlclwiIHRhYmluZGV4PVwiMFwiIGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6aHVlJyl9XCIgcm9sZT1cInNsaWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgOm9iaj1cIm9wYWNpdHlcIiBjbGFzcz1cInBjci1jb2xvci1vcGFjaXR5XCIgJHtoaWRkZW4oY29tcG9uZW50cy5vcGFjaXR5KX0+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInBpY2tlclwiIGNsYXNzPVwicGNyLXBpY2tlclwiPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJzbGlkZXJcIiBjbGFzcz1cInBjci1vcGFjaXR5IHBjci1zbGlkZXJcIiB0YWJpbmRleD1cIjBcIiBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOm9wYWNpdHknLCAnb3BhY2l0eSBzZWxlY3Rpb24gc2xpZGVyJyl9XCIgcm9sZT1cInNsaWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGNyLXN3YXRjaGVzICR7Y29tcG9uZW50cy5wYWxldHRlID8gJycgOiAncGNyLWxhc3QnfVwiIDpyZWY9XCJzd2F0Y2hlc1wiPjwvZGl2PlxuXG4gICAgICAgICAgPGRpdiA6b2JqPVwiaW50ZXJhY3Rpb25cIiBjbGFzcz1cInBjci1pbnRlcmFjdGlvblwiICR7aGlkZGVuKE9iamVjdC5rZXlzKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24pLmxlbmd0aCl9PlxuICAgICAgICAgICAgPGlucHV0IDpyZWY9XCJyZXN1bHRcIiBjbGFzcz1cInBjci1yZXN1bHRcIiB0eXBlPVwidGV4dFwiIHNwZWxsY2hlY2s9XCJmYWxzZVwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uaW5wdXQpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmlucHV0JywgJ2NvbG9yIGlucHV0IGZpZWxkJyl9XCI+XG5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJIRVhBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ0hFWCcgOiAnSEVYQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uaGV4KX0+XG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiUkdCQVwiIHZhbHVlPVwiJHtsb2NrT3BhY2l0eSA/ICdSR0InIDogJ1JHQkEnfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLnJnYmEpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJIU0xBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ0hTTCcgOiAnSFNMQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uaHNsYSl9PlxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkhTVkFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnSFNWJyA6ICdIU1ZBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5oc3ZhKX0+XG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiQ01ZS1wiIHZhbHVlPVwiQ01ZS1wiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmNteWspfT5cblxuICAgICAgICAgICAgPGlucHV0IDpyZWY9XCJzYXZlXCIgY2xhc3M9XCJwY3Itc2F2ZVwiIHZhbHVlPVwiJHt0KCdidG46c2F2ZScpfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLnNhdmUpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmJ0bjpzYXZlJyl9XCI+XG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cImNhbmNlbFwiIGNsYXNzPVwicGNyLWNhbmNlbFwiIHZhbHVlPVwiJHt0KCdidG46Y2FuY2VsJyl9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uY2FuY2VsKX0gYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpidG46Y2FuY2VsJyl9XCI+XG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cImNsZWFyXCIgY2xhc3M9XCJwY3ItY2xlYXJcIiB2YWx1ZT1cIiR7dCgnYnRuOmNsZWFyJyl9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uY2xlYXIpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmJ0bjpjbGVhcicpfVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGApO1xuXG4gICAgY29uc3QgaW50ID0gcm9vdC5pbnRlcmFjdGlvbjtcblxuICAgIC8vIFNlbGVjdCBvcHRpb24gd2hpY2ggaXMgbm90IGhpZGRlblxuICAgIGludC5vcHRpb25zLmZpbmQobyA9PiAhby5oaWRkZW4gJiYgIW8uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJykpO1xuXG4gICAgLy8gQXBwZW5kIG1ldGhvZCB0byBmaW5kIGN1cnJlbnRseSBhY3RpdmUgb3B0aW9uXG4gICAgaW50LnR5cGUgPSAoKSA9PiBpbnQub3B0aW9ucy5maW5kKGUgPT4gZS5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKTtcbiAgICByZXR1cm4gcm9vdDtcbn07XG4iLCAidHlwZSBEaXJlY3Rpb24gPSAndG9wJyB8ICdsZWZ0JyB8ICdib3R0b20nIHwgJ3JpZ2h0JztcbnR5cGUgQWxpZ25tZW50ID0gJ3N0YXJ0JyB8ICdtaWRkbGUnIHwgJ2VuZCc7XG5cbmV4cG9ydCB0eXBlIFZhcmlhbnRGbGlwT3JkZXIgPSB7XG4gICAgc3RhcnQ6IHN0cmluZztcbiAgICBtaWRkbGU6IHN0cmluZztcbiAgICBlbmQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFBvc2l0aW9uRmxpcE9yZGVyID0ge1xuICAgIHRvcDogc3RyaW5nO1xuICAgIHJpZ2h0OiBzdHJpbmc7XG4gICAgYm90dG9tOiBzdHJpbmc7XG4gICAgbGVmdDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTmFub1BvcFBvc2l0aW9uID0gYCR7RGlyZWN0aW9ufS0ke0FsaWdubWVudH1gIHwgRGlyZWN0aW9uO1xuXG5leHBvcnQgdHlwZSBOYW5vUG9wT3B0aW9ucyA9IHtcbiAgICBjb250YWluZXI6IERPTVJlY3Q7XG4gICAgcG9zaXRpb246IE5hbm9Qb3BQb3NpdGlvbjtcbiAgICB2YXJpYW50RmxpcE9yZGVyOiBWYXJpYW50RmxpcE9yZGVyO1xuICAgIHBvc2l0aW9uRmxpcE9yZGVyOiBQb3NpdGlvbkZsaXBPcmRlcjtcbiAgICBtYXJnaW46IG51bWJlcjtcbiAgICByZWZlcmVuY2U/OiBIVE1MRWxlbWVudDtcbiAgICBwb3BwZXI/OiBIVE1MRWxlbWVudDtcbiAgICBhcnJvdz86IEhUTUxFbGVtZW50O1xuICAgIHBhZGRpbmc/OiBudW1iZXI7XG59O1xuXG50eXBlIEF2YWlsYWJsZVBvc2l0aW9ucyA9IHtcbiAgICB0OiBudW1iZXI7XG4gICAgYjogbnVtYmVyO1xuICAgIGw6IG51bWJlcjtcbiAgICByOiBudW1iZXI7XG59O1xuXG50eXBlIEF2YWlsYWJsZVZhcmlhbnRzID0ge1xuICAgIHZzOiBudW1iZXI7XG4gICAgdm06IG51bWJlcjtcbiAgICB2ZTogbnVtYmVyO1xuICAgIGhzOiBudW1iZXI7XG4gICAgaG06IG51bWJlcjtcbiAgICBoZTogbnVtYmVyO1xufTtcblxudHlwZSBQb3NpdGlvblBhaXJzID0gW0RpcmVjdGlvbiwgRGlyZWN0aW9uXTtcblxuZXhwb3J0IHR5cGUgUG9zaXRpb25NYXRjaCA9ICd0cycgfCAndG0nIHwgJ3RlJyB8ICdicycgfCAnYm0nIHwgJ2JlJyB8ICdscycgfCAnbG0nIHwgJ2xlJyB8ICdycycgfCAncm0nIHwgJ3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBOYW5vUG9wIHtcbiAgICB1cGRhdGUodXBkYXRlZE9wdGlvbnM/OiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPik6IFBvc2l0aW9uTWF0Y2ggfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hbm9Qb3BDb25zdHJ1Y3RvciB7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gcmVmZXJlbmNlIFJlZmVyZW5jZSBlbGVtZW50XG4gICAgICogQHBhcmFtIHBvcHBlciBBY3R1YWwgcG9wcGVyIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBvcHRpb25zXG4gICAgICovXG4gICAgKHJlZmVyZW5jZTogSFRNTEVsZW1lbnQsIHBvcHBlcjogSFRNTEVsZW1lbnQsIG9wdGlvbnM/OiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPik6IE5hbm9Qb3A7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBQYXJ0aWFsIG9wdGlvbnMgd2hpY2ggZ2V0IG1lcmdlZCB3aXRoIHRoZSBjdXJyZW50IG9uZVxuICAgICAqL1xuICAgIChvcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4pOiBOYW5vUG9wO1xufVxuXG4vLyBFeHBvcnQgY3VycmVudCB2ZXJzaW9uXG5leHBvcnQgY29uc3QgdmVyc2lvbiA9IFZFUlNJT047XG5cbi8vIEV4cG9ydCBkZWZhdWx0XG5leHBvcnQgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgdmFyaWFudEZsaXBPcmRlcjoge3N0YXJ0OiAnc21lJywgbWlkZGxlOiAnbXNlJywgZW5kOiAnZW1zJ30sXG4gICAgcG9zaXRpb25GbGlwT3JkZXI6IHt0b3A6ICd0YnJsJywgcmlnaHQ6ICdybHRiJywgYm90dG9tOiAnYnRybCcsIGxlZnQ6ICdscmJ0J30sXG4gICAgcG9zaXRpb246ICdib3R0b20nLFxuICAgIG1hcmdpbjogOCxcbiAgICBwYWRkaW5nOiAwXG59O1xuXG4vKipcbiAqIFJlcG9zaXRpb25zIGFuIGVsZW1lbnQgb25jZSB1c2luZyB0aGUgcHJvdmlkZWQgb3B0aW9ucyBhbmQgZWxlbWVudHMuXG4gKiBAcGFyYW0gcmVmZXJlbmNlIFJlZmVyZW5jZSBlbGVtZW50XG4gKiBAcGFyYW0gcG9wcGVyIFBvcHBlciBlbGVtZW50XG4gKiBAcGFyYW0gb3B0IE9wdGlvbmFsLCBhZGRpdGlvbmFsIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcG9zaXRpb24gPSAoXG4gICAgcmVmZXJlbmNlOiBIVE1MRWxlbWVudCxcbiAgICBwb3BwZXI6IEhUTUxFbGVtZW50LFxuICAgIG9wdD86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+XG4pOiBQb3NpdGlvbk1hdGNoIHwgbnVsbCA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgICBjb250YWluZXIsXG4gICAgICAgIGFycm93LFxuICAgICAgICBtYXJnaW4sXG4gICAgICAgIHBhZGRpbmcsXG4gICAgICAgIHBvc2l0aW9uLFxuICAgICAgICB2YXJpYW50RmxpcE9yZGVyLFxuICAgICAgICBwb3NpdGlvbkZsaXBPcmRlclxuICAgIH0gPSB7XG4gICAgICAgIGNvbnRhaW5lcjogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAuLi5kZWZhdWx0cyxcbiAgICAgICAgLi4ub3B0XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlc2V0IHBvc2l0aW9uIHRvIHJlc29sdmUgdmlld3BvcnRcbiAgICAgKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3Bvc2l0aW9uI2ZpeGVkXG4gICAgICovXG4gICAgY29uc3Qge2xlZnQ6IG9yaWdpbmFsTGVmdCwgdG9wOiBvcmlnaW5hbFRvcH0gPSBwb3BwZXIuc3R5bGU7XG4gICAgcG9wcGVyLnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgcG9wcGVyLnN0eWxlLnRvcCA9ICcwJztcblxuICAgIGNvbnN0IHJlZkJveCA9IHJlZmVyZW5jZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBwb3BCb3ggPSBwb3BwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAvKipcbiAgICAgKiBIb2xkcyBjb29yZGluYXRlcyBvZiB0b3AsIGxlZnQsIGJvdHRvbSBhbmQgcmlnaHQgYWxpZ25tZW50XG4gICAgICovXG4gICAgY29uc3QgcG9zaXRpb25TdG9yZTogQXZhaWxhYmxlUG9zaXRpb25zID0ge1xuICAgICAgICB0OiByZWZCb3gudG9wIC0gcG9wQm94LmhlaWdodCAtIG1hcmdpbixcbiAgICAgICAgYjogcmVmQm94LmJvdHRvbSArIG1hcmdpbixcbiAgICAgICAgcjogcmVmQm94LnJpZ2h0ICsgbWFyZ2luLFxuICAgICAgICBsOiByZWZCb3gubGVmdCAtIHBvcEJveC53aWR0aCAtIG1hcmdpblxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBIb2xkcyBjb3JyZXNwb25kaW5nIHZhcmlhbnRzIChzdGFydCwgbWlkZGxlLCBlbmQpLlxuICAgICAqIFRoZSB2YWx1ZXMgZGVwZW5kIG9uIGhvcml6b250YWwgLyB2ZXJ0aWNhbCBvcmllbnRhdGlvblxuICAgICAqL1xuICAgIGNvbnN0IHZhcmlhbnRTdG9yZTogQXZhaWxhYmxlVmFyaWFudHMgPSB7XG4gICAgICAgIHZzOiByZWZCb3gubGVmdCxcbiAgICAgICAgdm06IHJlZkJveC5sZWZ0ICsgcmVmQm94LndpZHRoIC8gMiAtIHBvcEJveC53aWR0aCAvIDIsXG4gICAgICAgIHZlOiByZWZCb3gubGVmdCArIHJlZkJveC53aWR0aCAtIHBvcEJveC53aWR0aCxcbiAgICAgICAgaHM6IHJlZkJveC50b3AsXG4gICAgICAgIGhtOiByZWZCb3guYm90dG9tIC0gcmVmQm94LmhlaWdodCAvIDIgLSBwb3BCb3guaGVpZ2h0IC8gMixcbiAgICAgICAgaGU6IHJlZkJveC5ib3R0b20gLSBwb3BCb3guaGVpZ2h0XG4gICAgfTtcblxuICAgIC8vIEV4dHJhY3QgcG9zaXRpb24gYW5kIHZhcmlhbnRcbiAgICAvLyBUb3Atc3RhcnQgLT4gdG9wIGlzIFwicG9zaXRpb25cIiBhbmQgXCJzdGFydFwiIGlzIHRoZSB2YXJpYW50XG4gICAgY29uc3QgW3Bvc0tleSwgdmFyS2V5ID0gJ21pZGRsZSddID0gcG9zaXRpb24uc3BsaXQoJy0nKTtcbiAgICBjb25zdCBwb3NpdGlvbnMgPSBwb3NpdGlvbkZsaXBPcmRlcltwb3NLZXkgYXMga2V5b2YgUG9zaXRpb25GbGlwT3JkZXJdO1xuICAgIGNvbnN0IHZhcmlhbnRzID0gdmFyaWFudEZsaXBPcmRlclt2YXJLZXkgYXMga2V5b2YgVmFyaWFudEZsaXBPcmRlcl07XG5cbiAgICAvLyBUcnkgb3V0IGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMsIHN0YXJ0aW5nIHdpdGggdGhlIHByZWZlcnJlZCBvbmUuXG4gICAgY29uc3Qge3RvcCwgbGVmdCwgYm90dG9tLCByaWdodH0gPSBjb250YWluZXI7XG5cbiAgICBmb3IgKGNvbnN0IHAgb2YgcG9zaXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsID0gKHAgPT09ICd0JyB8fCBwID09PSAnYicpO1xuXG4gICAgICAgIC8vIFRoZSBwb3NpdGlvbi12YWx1ZVxuICAgICAgICBsZXQgcG9zaXRpb25WYWwgPSBwb3NpdGlvblN0b3JlW3AgYXMga2V5b2YgQXZhaWxhYmxlUG9zaXRpb25zXTtcblxuICAgICAgICAvLyBXaGljaCBwcm9wZXJ0eSBoYXMgdG8gYmUgY2hhbmdlcy5cbiAgICAgICAgY29uc3QgW3Bvc2l0aW9uS2V5LCB2YXJpYW50S2V5XSA9ICh2ZXJ0aWNhbCA/IFsndG9wJywgJ2xlZnQnXSA6IFsnbGVmdCcsICd0b3AnXSkgYXMgUG9zaXRpb25QYWlycztcblxuICAgICAgICAvKipcbiAgICAgICAgICogYm94IHJlZmVycyB0byB0aGUgc2l6ZSBvZiB0aGUgcG9wcGVyIGVsZW1lbnQuIERlcGVuZGluZyBvbiB0aGUgb3JpZW50YXRpb24gdGhpcyBpcyB3aWR0aCBvciBoZWlnaHQuXG4gICAgICAgICAqIFRoZSBsaW1pdCBpcyB0aGUgY29ycmVzcG9uZGluZywgbWF4aW11bSB2YWx1ZSBmb3IgdGhpcyBwb3NpdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IFtwb3NpdGlvblNpemUsIHZhcmlhbnRTaXplXSA9IHZlcnRpY2FsID8gW3BvcEJveC5oZWlnaHQsIHBvcEJveC53aWR0aF0gOiBbcG9wQm94LndpZHRoLCBwb3BCb3guaGVpZ2h0XTtcblxuICAgICAgICBjb25zdCBbcG9zaXRpb25NYXhpbXVtLCB2YXJpYW50TWF4aW11bV0gPSB2ZXJ0aWNhbCA/IFtib3R0b20sIHJpZ2h0XSA6IFtyaWdodCwgYm90dG9tXTtcbiAgICAgICAgY29uc3QgW3Bvc2l0aW9uTWluaW11bSwgdmFyaWFudE1pbmltdW1dID0gdmVydGljYWwgPyBbdG9wLCBsZWZ0XSA6IFtsZWZ0LCB0b3BdO1xuXG4gICAgICAgIC8vIFNraXAgcHJlLWNsaXBwZWQgdmFsdWVzXG4gICAgICAgIGlmIChwb3NpdGlvblZhbCA8IHBvc2l0aW9uTWluaW11bSB8fCAocG9zaXRpb25WYWwgKyBwb3NpdGlvblNpemUgKyBwYWRkaW5nKSA+IHBvc2l0aW9uTWF4aW11bSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFyaWFudHMpIHtcblxuICAgICAgICAgICAgLy8gVGhlIHBvc2l0aW9uLXZhbHVlLCB0aGUgcmVsYXRlZCBzaXplIHZhbHVlIG9mIHRoZSBwb3BwZXIgYW5kIHRoZSBsaW1pdFxuICAgICAgICAgICAgbGV0IHZhcmlhbnRWYWwgPSB2YXJpYW50U3RvcmVbKCh2ZXJ0aWNhbCA/ICd2JyA6ICdoJykgKyB2KSBhcyBrZXlvZiBBdmFpbGFibGVWYXJpYW50c107XG5cbiAgICAgICAgICAgIGlmICh2YXJpYW50VmFsIDwgdmFyaWFudE1pbmltdW0gfHwgKHZhcmlhbnRWYWwgKyB2YXJpYW50U2l6ZSArIHBhZGRpbmcpID4gdmFyaWFudE1heGltdW0pIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU3VidHJhY3QgcG9wQm94J3MgaW5pdGlhbCBwb3NpdGlvblxuICAgICAgICAgICAgdmFyaWFudFZhbCAtPSBwb3BCb3hbdmFyaWFudEtleV07XG4gICAgICAgICAgICBwb3NpdGlvblZhbCAtPSBwb3BCb3hbcG9zaXRpb25LZXldO1xuXG4gICAgICAgICAgICAvLyBBcHBseSBzdHlsZXMgYW5kIG5vcm1hbGl6ZSB2aWV3cG9ydFxuICAgICAgICAgICAgcG9wcGVyLnN0eWxlW3ZhcmlhbnRLZXldID0gYCR7dmFyaWFudFZhbH1weGA7XG4gICAgICAgICAgICBwb3BwZXIuc3R5bGVbcG9zaXRpb25LZXldID0gYCR7cG9zaXRpb25WYWx9cHhgO1xuXG4gICAgICAgICAgICBpZiAoYXJyb3cpIHtcbiAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgcmVmQm94J3MgY2VudGVyIG9mZnNldCBmcm9tIGl0cyB2YXJpYW50IHBvc2l0aW9uIGZvciBhcnJvdyBwb3NpdGlvbmluZ1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZkJveENlbnRlck9mZnNldCA9IHZlcnRpY2FsID8gcmVmQm94LndpZHRoIC8gMiA6IHJlZkJveC5oZWlnaHQgLyAyO1xuXG4gICAgICAgICAgICAgICAgLy8gV2hlbiByZWZCb3ggaXMgbGFyZ2VyIHRoYW4gcG9wQm94LCBoYXZlIHRoZSBhcnJvdydzIHZhcmlhbnQgcG9zaXRpb24gYmUgdGhlIGNlbnRlciBvZiBwb3BCb3ggaW5zdGVhZC5cbiAgICAgICAgICAgICAgICBjb25zdCBhcnJvd1ZhcmlhbnRWYWwgPSByZWZCb3hDZW50ZXJPZmZzZXQgKiAyIDwgdmFyaWFudFNpemUgP1xuICAgICAgICAgICAgICAgICAgICByZWZCb3hbdmFyaWFudEtleV0gKyByZWZCb3hDZW50ZXJPZmZzZXQgOiB2YXJpYW50VmFsICsgdmFyaWFudFNpemUgLyAyO1xuXG4gICAgICAgICAgICAgICAgLy8gQXJyb3cgcG9zaXRpb24gaXMgZWl0aGVyIG9uIG9uZSBzaWRlIG9mIHRoZSBwb3BCb3ggb3IgdGhlIG90aGVyLlxuICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvblZhbCA8IHJlZkJveFtwb3NpdGlvbktleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25WYWwgKz0gcG9zaXRpb25TaXplO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEFwcGx5IHN0eWxlcyB0byBhcnJvd1xuICAgICAgICAgICAgICAgIGFycm93LnN0eWxlW3ZhcmlhbnRLZXldID0gYCR7YXJyb3dWYXJpYW50VmFsfXB4YDtcbiAgICAgICAgICAgICAgICBhcnJvdy5zdHlsZVtwb3NpdGlvbktleV0gPSBgJHtwb3NpdGlvblZhbH1weGA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAocCArIHYpIGFzIFBvc2l0aW9uTWF0Y2g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXZlcnQgc3R5bGUgdmFsdWVzICh3b24ndCB3b3JrIHdpdGggc3R5bGVkLWVsZW1lbnRzIG9yIHNpbWlsYXIgc3lzdGVtcylcbiAgICAvLyBcIkZpeFwiIGZvciBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvbmFub3BvcC9pc3N1ZXMvN1xuICAgIHBvcHBlci5zdHlsZS5sZWZ0ID0gb3JpZ2luYWxMZWZ0O1xuICAgIHBvcHBlci5zdHlsZS50b3AgPSBvcmlnaW5hbFRvcDtcblxuICAgIHJldHVybiBudWxsO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgc3RhdGVmdWwgcG9wcGVyLlxuICogWW91IGNhbiBlaXRoZXIuLi5cbiAqIC4uLiBwYXNzIGFuIG9wdGlvbnMgb2JqZWN0OiBjcmVhdGVQb3BwZXIoPG9wdGlvbnM+KVxuICogLi4uIHBhc3MgYm90aCB0aGUgcmVmZXJlbmNlIGFuZCBwb3BwZXI6IGNyZWF0ZSg8cmVmPiwgPGVsPiwgPD9vcHRpb25zPilcbiAqIC4uLiBwYXNzIG5vdGhpbmcsIGluIHRoaXMgY2FzZSB5b3UnbGwgaGF2ZSB0byBzZXQgYXQgbGVhc3QgYm90aCBhIHJlZmVyZW5jZSBhbmQgYSBwb3BwZXIgaW4gdXBkYXRlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgfCBvcHRpb25zIFJlZmVyZW5jZSBlbGVtZW50IG9yIG9wdGlvbnNcbiAqIEBwYXJhbSBwb3BwZXIgUG9wcGVyIGVsZW1lbnRcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIGFkZGl0aW9uYWwgb3B0aW9uc1xuICovXG5leHBvcnQgY29uc3QgY3JlYXRlUG9wcGVyOiBOYW5vUG9wQ29uc3RydWN0b3IgPSAoXG4gICAgcmVmZXJlbmNlPzogSFRNTEVsZW1lbnQgfCBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPixcbiAgICBwb3BwZXI/OiBIVE1MRWxlbWVudCxcbiAgICBvcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz5cbik6IE5hbm9Qb3AgPT4ge1xuXG4gICAgLy8gUmVzb2x2ZSBvcHRpb25zXG4gICAgY29uc3QgYmFzZU9wdGlvbnM6IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+ID0gdHlwZW9mIHJlZmVyZW5jZSA9PT0gJ29iamVjdCcgJiYgIShyZWZlcmVuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgP1xuICAgICAgICByZWZlcmVuY2UgOiB7cmVmZXJlbmNlLCBwb3BwZXIsIC4uLm9wdGlvbnN9O1xuXG4gICAgcmV0dXJuIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUmVwb3NpdGlvbnMgdGhlIGN1cnJlbnQgcG9wcGVyLlxuICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBvcHRpb25zIHdoaWNoIGdldCBtZXJnZWQgd2l0aCB0aGUgY3VycmVudCBvbmVzLlxuICAgICAgICAgKi9cbiAgICAgICAgdXBkYXRlKG9wdGlvbnM6IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+ID0gYmFzZU9wdGlvbnMpOiBQb3NpdGlvbk1hdGNoIHwgbnVsbCB7XG4gICAgICAgICAgICBjb25zdCB7cmVmZXJlbmNlLCBwb3BwZXJ9ID0gT2JqZWN0LmFzc2lnbihiYXNlT3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGlmICghcG9wcGVyIHx8ICFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BvcHBlci0gb3IgcmVmZXJlbmNlLWVsZW1lbnQgbWlzc2luZy4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlcG9zaXRpb24ocmVmZXJlbmNlLCBwb3BwZXIsIGJhc2VPcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi91dGlscy91dGlscyc7XG5pbXBvcnQge3BhcnNlVG9IU1ZBfSBmcm9tICcuL3V0aWxzL2NvbG9yJztcbmltcG9ydCB7SFNWYUNvbG9yfSBmcm9tICcuL3V0aWxzL2hzdmFjb2xvcic7XG5pbXBvcnQgTW92ZWFibGUgZnJvbSAnLi9saWJzL21vdmVhYmxlJztcbmltcG9ydCBTZWxlY3RhYmxlIGZyb20gJy4vbGlicy9zZWxlY3RhYmxlJztcbmltcG9ydCBidWlsZFBpY2tyIGZyb20gJy4vdGVtcGxhdGUnO1xuaW1wb3J0IHtjcmVhdGVQb3BwZXJ9IGZyb20gJ25hbm9wb3AnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQaWNrciB7XG5cbiAgICAvLyBFeHBvc2UgcGlja3IgdXRpbHNcbiAgICBzdGF0aWMgdXRpbHMgPSBfO1xuXG4gICAgLy8gQXNzaWduIHZlcnNpb24gYW5kIGV4cG9ydFxuICAgIHN0YXRpYyB2ZXJzaW9uID0gVkVSU0lPTjtcblxuICAgIC8vIERlZmF1bHQgc3RyaW5nc1xuICAgIHN0YXRpYyBJMThOX0RFRkFVTFRTID0ge1xuXG4gICAgICAgIC8vIFN0cmluZ3MgdmlzaWJsZSBpbiB0aGUgVUlcbiAgICAgICAgJ3VpOmRpYWxvZyc6ICdjb2xvciBwaWNrZXIgZGlhbG9nJyxcbiAgICAgICAgJ2J0bjp0b2dnbGUnOiAndG9nZ2xlIGNvbG9yIHBpY2tlciBkaWFsb2cnLFxuICAgICAgICAnYnRuOnN3YXRjaCc6ICdjb2xvciBzd2F0Y2gnLFxuICAgICAgICAnYnRuOmxhc3QtY29sb3InOiAndXNlIHByZXZpb3VzIGNvbG9yJyxcbiAgICAgICAgJ2J0bjpzYXZlJzogJ1NhdmUnLFxuICAgICAgICAnYnRuOmNhbmNlbCc6ICdDYW5jZWwnLFxuICAgICAgICAnYnRuOmNsZWFyJzogJ0NsZWFyJyxcblxuICAgICAgICAvLyBTdHJpbmdzIHVzZWQgZm9yIGFyaWEtbGFiZWxzXG4gICAgICAgICdhcmlhOmJ0bjpzYXZlJzogJ3NhdmUgYW5kIGNsb3NlJyxcbiAgICAgICAgJ2FyaWE6YnRuOmNhbmNlbCc6ICdjYW5jZWwgYW5kIGNsb3NlJyxcbiAgICAgICAgJ2FyaWE6YnRuOmNsZWFyJzogJ2NsZWFyIGFuZCBjbG9zZScsXG4gICAgICAgICdhcmlhOmlucHV0JzogJ2NvbG9yIGlucHV0IGZpZWxkJyxcbiAgICAgICAgJ2FyaWE6cGFsZXR0ZSc6ICdjb2xvciBzZWxlY3Rpb24gYXJlYScsXG4gICAgICAgICdhcmlhOmh1ZSc6ICdodWUgc2VsZWN0aW9uIHNsaWRlcicsXG4gICAgICAgICdhcmlhOm9wYWNpdHknOiAnc2VsZWN0aW9uIHNsaWRlcidcbiAgICB9O1xuXG4gICAgLy8gRGVmYXVsdCBvcHRpb25zXG4gICAgc3RhdGljIERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgICAgICAgYXBwQ2xhc3M6IG51bGwsXG4gICAgICAgIHRoZW1lOiAnY2xhc3NpYycsXG4gICAgICAgIHVzZUFzQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgcGFkZGluZzogOCxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBjb21wYXJpc29uOiB0cnVlLFxuICAgICAgICBjbG9zZU9uU2Nyb2xsOiBmYWxzZSxcbiAgICAgICAgb3V0cHV0UHJlY2lzaW9uOiAwLFxuICAgICAgICBsb2NrT3BhY2l0eTogZmFsc2UsXG4gICAgICAgIGF1dG9SZXBvc2l0aW9uOiB0cnVlLFxuICAgICAgICBjb250YWluZXI6ICdib2R5JyxcblxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICBpbnRlcmFjdGlvbjoge31cbiAgICAgICAgfSxcblxuICAgICAgICBpMThuOiB7fSxcbiAgICAgICAgc3dhdGNoZXM6IG51bGwsXG4gICAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICAgIHNsaWRlcnM6IG51bGwsXG5cbiAgICAgICAgZGVmYXVsdDogJyM0MjQ0NWEnLFxuICAgICAgICBkZWZhdWx0UmVwcmVzZW50YXRpb246IG51bGwsXG4gICAgICAgIHBvc2l0aW9uOiAnYm90dG9tLW1pZGRsZScsXG4gICAgICAgIGFkanVzdGFibGVOdW1iZXJzOiB0cnVlLFxuICAgICAgICBzaG93QWx3YXlzOiBmYWxzZSxcblxuICAgICAgICBjbG9zZVdpdGhLZXk6ICdFc2NhcGUnXG4gICAgfTtcblxuICAgIC8vIFdpbGwgYmUgdXNlZCB0byBwcmV2ZW50IHNwZWNpZmljIGFjdGlvbnMgZHVyaW5nIGluaXRpbGl6YXRpb25cbiAgICBfaW5pdGlhbGl6aW5nQWN0aXZlID0gdHJ1ZTtcblxuICAgIC8vIElmIHRoZSBjdXJyZW50IGNvbG9yIHZhbHVlIHNob3VsZCBiZSByZWNhbGN1bGF0ZWRcbiAgICBfcmVjYWxjID0gdHJ1ZTtcblxuICAgIC8vIFBvc2l0aW9uaW5nIGVuZ2luZSBhbmQgRE9NLVRyZWVcbiAgICBfbmFub3BvcCA9IG51bGw7XG4gICAgX3Jvb3QgPSBudWxsO1xuXG4gICAgLy8gQ3VycmVudCBhbmQgbGFzdCBjb2xvciBmb3IgY29tcGFyaXNvblxuICAgIF9jb2xvciA9IEhTVmFDb2xvcigpO1xuICAgIF9sYXN0Q29sb3IgPSBIU1ZhQ29sb3IoKTtcbiAgICBfc3dhdGNoQ29sb3JzID0gW107XG5cbiAgICAvLyBBbmltYXRpb24gZnJhbWUgdXNlZCBmb3Igc2V0dXAuXG4gICAgLy8gV2lsbCBiZSBjYW5jZWxsZWQgaW4gY2FzZSBvZiBkZXN0cnVjdGlvbi5cbiAgICBfc2V0dXBBbmltYXRpb25GcmFtZSA9IG51bGw7XG5cbiAgICAvLyBFdmVubGlzdGVuZXIgbmFtZTogW2NhbGxiYWNrc11cbiAgICBfZXZlbnRMaXN0ZW5lciA9IHtcbiAgICAgICAgaW5pdDogW10sXG4gICAgICAgIHNhdmU6IFtdLFxuICAgICAgICBoaWRlOiBbXSxcbiAgICAgICAgc2hvdzogW10sXG4gICAgICAgIGNsZWFyOiBbXSxcbiAgICAgICAgY2hhbmdlOiBbXSxcbiAgICAgICAgY2hhbmdlc3RvcDogW10sXG4gICAgICAgIGNhbmNlbDogW10sXG4gICAgICAgIHN3YXRjaHNlbGVjdDogW11cbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3Iob3B0KSB7XG5cbiAgICAgICAgLy8gQXNzaWduIGRlZmF1bHQgdmFsdWVzXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdCA9IE9iamVjdC5hc3NpZ24oey4uLlBpY2tyLkRFRkFVTFRfT1BUSU9OU30sIG9wdCk7XG5cbiAgICAgICAgY29uc3Qge3N3YXRjaGVzLCBjb21wb25lbnRzLCB0aGVtZSwgc2xpZGVycywgbG9ja09wYWNpdHksIHBhZGRpbmd9ID0gb3B0O1xuXG4gICAgICAgIGlmIChbJ25hbm8nLCAnbW9ub2xpdGgnXS5pbmNsdWRlcyh0aGVtZSkgJiYgIXNsaWRlcnMpIHtcbiAgICAgICAgICAgIG9wdC5zbGlkZXJzID0gJ2gnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaW50ZXJhY3Rpb24gc2VjdGlvblxuICAgICAgICBpZiAoIWNvbXBvbmVudHMuaW50ZXJhY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbXBvbmVudHMuaW50ZXJhY3Rpb24gPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE92ZXJ3cml0ZSBwYWxldHRlIGlmIHByZXZpZXcsIG9wYWNpdHkgb3IgaHVlIGFyZSB0cnVlXG4gICAgICAgIGNvbnN0IHtwcmV2aWV3LCBvcGFjaXR5LCBodWUsIHBhbGV0dGV9ID0gY29tcG9uZW50cztcbiAgICAgICAgY29tcG9uZW50cy5vcGFjaXR5ID0gKCFsb2NrT3BhY2l0eSAmJiBvcGFjaXR5KTtcbiAgICAgICAgY29tcG9uZW50cy5wYWxldHRlID0gcGFsZXR0ZSB8fCBwcmV2aWV3IHx8IG9wYWNpdHkgfHwgaHVlO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgcGlja2VyXG4gICAgICAgIHRoaXMuX3ByZUJ1aWxkKCk7XG4gICAgICAgIHRoaXMuX2J1aWxkQ29tcG9uZW50cygpO1xuICAgICAgICB0aGlzLl9iaW5kRXZlbnRzKCk7XG4gICAgICAgIHRoaXMuX2ZpbmFsQnVpbGQoKTtcblxuICAgICAgICAvLyBBcHBlbmQgcHJlLWRlZmluZWQgc3dhdGNoIGNvbG9yc1xuICAgICAgICBpZiAoc3dhdGNoZXMgJiYgc3dhdGNoZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzd2F0Y2hlcy5mb3JFYWNoKGNvbG9yID0+IHRoaXMuYWRkU3dhdGNoKGNvbG9yKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbml0aWFsaXplIHBvc2l0aW9uaW5nIGVuZ2luZVxuICAgICAgICBjb25zdCB7YnV0dG9uLCBhcHB9ID0gdGhpcy5fcm9vdDtcbiAgICAgICAgdGhpcy5fbmFub3BvcCA9IGNyZWF0ZVBvcHBlcihidXR0b24sIGFwcCwge1xuICAgICAgICAgICAgbWFyZ2luOiBwYWRkaW5nXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgYWNjZXNzaWJpbGl0eVxuICAgICAgICBidXR0b24uc2V0QXR0cmlidXRlKCdyb2xlJywgJ2J1dHRvbicpO1xuICAgICAgICBidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgdGhpcy5fdCgnYnRuOnRvZ2dsZScpKTtcblxuICAgICAgICAvLyBJbml0aWxpemF0aW9uIGlzIGZpbmlzaCwgcGlja3IgaXMgdmlzaWJsZSBhbmQgcmVhZHkgZm9yIHVzYWdlXG4gICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICB0aGlzLl9zZXR1cEFuaW1hdGlvbkZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbiBjYigpIHtcblxuICAgICAgICAgICAgLy8gVE9ETzogUGVyZm9ybWFuY2UgaXNzdWUgZHVlIHRvIGhpZ2ggY2FsbC1yYXRlP1xuICAgICAgICAgICAgaWYgKCFhcHAub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQXBwbHkgZGVmYXVsdCBjb2xvclxuICAgICAgICAgICAgdGhhdC5zZXRDb2xvcihvcHQuZGVmYXVsdCk7XG4gICAgICAgICAgICB0aGF0Ll9yZVBvc2l0aW9uaW5nUGlja2VyKCk7XG5cbiAgICAgICAgICAgIC8vIEluaXRpYWxpemUgY29sb3IgcmVwcmVzZW50YXRpb25cbiAgICAgICAgICAgIGlmIChvcHQuZGVmYXVsdFJlcHJlc2VudGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhhdC5fcmVwcmVzZW50YXRpb24gPSBvcHQuZGVmYXVsdFJlcHJlc2VudGF0aW9uO1xuICAgICAgICAgICAgICAgIHRoYXQuc2V0Q29sb3JSZXByZXNlbnRhdGlvbih0aGF0Ll9yZXByZXNlbnRhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNob3cgcGlja3IgaWYgbG9ja2VkXG4gICAgICAgICAgICBpZiAob3B0LnNob3dBbHdheXMpIHtcbiAgICAgICAgICAgICAgICB0aGF0LnNob3coKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSW5pdGlhbGl6YXRpb24gaXMgZG9uZSAtIHBpY2tyIGlzIHVzYWJsZSwgZmlyZSBpbml0IGV2ZW50XG4gICAgICAgICAgICB0aGF0Ll9pbml0aWFsaXppbmdBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoYXQuX2VtaXQoJ2luaXQnKTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBpbnN0YW5jZSB2aWEgbWV0aG9kXG4gICAgc3RhdGljIGNyZWF0ZSA9IG9wdGlvbnMgPT4gbmV3IFBpY2tyKG9wdGlvbnMpO1xuXG4gICAgLy8gRG9lcyBvbmx5IHRoZSBhYnNvbHV0bHkgYmFzaWMgdGhpbmcgdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50c1xuICAgIF9wcmVCdWlsZCgpIHtcbiAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICAvLyBSZXNvbHZlIGVsZW1lbnRzXG4gICAgICAgIGZvciAoY29uc3QgdHlwZSBvZiBbJ2VsJywgJ2NvbnRhaW5lciddKSB7XG4gICAgICAgICAgICBvcHRpb25zW3R5cGVdID0gXy5yZXNvbHZlRWxlbWVudChvcHRpb25zW3R5cGVdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBlbGVtZW50IGFuZCBhcHBlbmQgaXQgdG8gYm9keSB0b1xuICAgICAgICAvLyBQcmV2ZW50IGluaXRpYWxpemF0aW9uIGVycm9yc1xuICAgICAgICB0aGlzLl9yb290ID0gYnVpbGRQaWNrcih0aGlzKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBhIGN1c3RvbSBidXR0b24gaXMgdXNlZFxuICAgICAgICBpZiAob3B0aW9ucy51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgdGhpcy5fcm9vdC5idXR0b24gPSBvcHRpb25zLmVsOyAvLyBSZXBsYWNlIGJ1dHRvbiB3aXRoIGN1c3RvbWl6ZWQgYnV0dG9uXG4gICAgICAgIH1cblxuICAgICAgICBvcHRpb25zLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLl9yb290LnJvb3QpO1xuICAgIH1cblxuICAgIF9maW5hbEJ1aWxkKCkge1xuICAgICAgICBjb25zdCBvcHQgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLl9yb290O1xuXG4gICAgICAgIC8vIFJlbW92ZSBmcm9tIGJvZHlcbiAgICAgICAgb3B0LmNvbnRhaW5lci5yZW1vdmVDaGlsZChyb290LnJvb3QpO1xuXG4gICAgICAgIGlmIChvcHQuaW5saW5lKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBvcHQuZWwucGFyZW50RWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKG9wdC5lbC5uZXh0U2libGluZykge1xuICAgICAgICAgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUocm9vdC5hcHAsIG9wdC5lbC5uZXh0U2libGluZyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChyb290LmFwcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHQuY29udGFpbmVyLmFwcGVuZENoaWxkKHJvb3QuYXBwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERvbid0IHJlcGxhY2UgdGhlIHRoZSBlbGVtZW50IGlmIGEgY3VzdG9tIGJ1dHRvbiBpcyB1c2VkXG4gICAgICAgIGlmICghb3B0LnVzZUFzQnV0dG9uKSB7XG5cbiAgICAgICAgICAgIC8vIFJlcGxhY2UgZWxlbWVudCB3aXRoIGFjdHVhbCBjb2xvci1waWNrZXJcbiAgICAgICAgICAgIG9wdC5lbC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChyb290LnJvb3QsIG9wdC5lbCk7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0LmlubGluZSkge1xuICAgICAgICAgICAgb3B0LmVsLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgaXQgc2hvdWxkIGJlIGltbWVkaWF0bHkgZGlzYWJsZWRcbiAgICAgICAgaWYgKG9wdC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBjb2xvciBjb21wYXJpc29uIGlzIGRpc2FibGVkLCBpZiB5ZXMgLSByZW1vdmUgdHJhbnNpdGlvbnMgc28gZXZlcnl0aGluZyBrZWVwcyBzbW9vdGhseVxuICAgICAgICBpZiAoIW9wdC5jb21wYXJpc29uKSB7XG4gICAgICAgICAgICByb290LmJ1dHRvbi5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuXG4gICAgICAgICAgICBpZiAoIW9wdC51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgICAgIHJvb3QucHJldmlldy5sYXN0Q29sb3Iuc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIF9idWlsZENvbXBvbmVudHMoKSB7XG5cbiAgICAgICAgLy8gSW5zdGFuY2UgcmVmZXJlbmNlXG4gICAgICAgIGNvbnN0IGluc3QgPSB0aGlzO1xuICAgICAgICBjb25zdCBjcyA9IHRoaXMub3B0aW9ucy5jb21wb25lbnRzO1xuICAgICAgICBjb25zdCBzbGlkZXJzID0gKGluc3Qub3B0aW9ucy5zbGlkZXJzIHx8ICd2JykucmVwZWF0KDIpO1xuICAgICAgICBjb25zdCBbc28sIHNoXSA9IHNsaWRlcnMubWF0Y2goL15bdmhdKyQvZykgPyBzbGlkZXJzIDogW107XG5cbiAgICAgICAgLy8gUmUtYXNzaWduIGlmIG51bGxcbiAgICAgICAgY29uc3QgZ2V0Q29sb3IgPSAoKSA9PlxuICAgICAgICAgICAgdGhpcy5fY29sb3IgfHwgKHRoaXMuX2NvbG9yID0gdGhpcy5fbGFzdENvbG9yLmNsb25lKCkpO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSB7XG5cbiAgICAgICAgICAgIHBhbGV0dGU6IE1vdmVhYmxlKHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnN0Ll9yb290LnBhbGV0dGUucGlja2VyLFxuICAgICAgICAgICAgICAgIHdyYXBwZXI6IGluc3QuX3Jvb3QucGFsZXR0ZS5wYWxldHRlLFxuXG4gICAgICAgICAgICAgICAgb25zdG9wOiAoKSA9PiBpbnN0Ll9lbWl0KCdjaGFuZ2VzdG9wJywgJ3NsaWRlcicsIGluc3QpLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKHgsIHkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcy5wYWxldHRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHtfcm9vdCwgb3B0aW9uc30gPSBpbnN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7bGFzdENvbG9yLCBjdXJyZW50Q29sb3J9ID0gX3Jvb3QucHJldmlldztcblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGlucHV0IGZpZWxkIG9ubHkgaWYgdGhlIHVzZXIgaXMgY3VycmVudGx5IG5vdCB0eXBpbmdcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3QuX3JlY2FsYykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgc2F0dXJhdGlvbiBiYXNlZCBvbiB0aGUgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnMgPSB4ICogMTAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci52ID0gMTAwIC0geSAqIDEwMDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJldmVudCBmYWxsaW5nIHVuZGVyIHplcm9cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnYgPCAwID8gY29sb3IudiA9IDAgOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zdC5fdXBkYXRlT3V0cHV0KCdzbGlkZXInKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCBwaWNrZXIgYW5kIGdyYWRpZW50IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc1JHQmFTdHJpbmcgPSBjb2xvci50b1JHQkEoKS50b1N0cmluZygwKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBjc3NSR0JhU3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyYXBwZXIuc3R5bGUuYmFja2dyb3VuZCA9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgJHtjb2xvci5hfSksIHRyYW5zcGFyZW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCBoc2xhKCR7Y29sb3IuaH0sIDEwMCUsIDUwJSwgJHtjb2xvci5hfSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgJHtjb2xvci5hfSkpXG4gICAgICAgICAgICAgICAgICAgIGA7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgY29sb3IgaXMgbG9ja2VkXG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5jb21wYXJpc29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfcm9vdC5idXR0b24uc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGNvbG9yLCByZW1vdmUgdGhlIGNsZWFyZWQgaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgX3Jvb3QuYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2NsZWFyJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMudXNlQXNCdXR0b24gJiYgIWluc3QuX2xhc3RDb2xvcikge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBseSBjb2xvciB0byBib3RoIHRoZSBsYXN0IGFuZCBjdXJyZW50IGNvbG9yIHNpbmNlIHRoZSBjdXJyZW50IHN0YXRlIGlzIGNsZWFyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlJ3MgYSBzd2F0Y2ggd2hpY2ggY29sb3IgbWF0Y2hlcyB0aGUgY3VycmVudCBvbmVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGV4YSA9IGNvbG9yLnRvSEVYQSgpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qge2VsLCBjb2xvcn0gb2YgaW5zdC5fc3dhdGNoQ29sb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3RbaGV4YSA9PT0gY29sb3IudG9IRVhBKCkudG9TdHJpbmcoKSA/ICdhZGQnIDogJ3JlbW92ZSddKCdwY3ItYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGFuZ2UgY3VycmVudCBjb2xvclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIGh1ZTogTW92ZWFibGUoe1xuICAgICAgICAgICAgICAgIGxvY2s6IHNoID09PSAndicgPyAnaCcgOiAndicsXG4gICAgICAgICAgICAgICAgZWxlbWVudDogaW5zdC5fcm9vdC5odWUucGlja2VyLFxuICAgICAgICAgICAgICAgIHdyYXBwZXI6IGluc3QuX3Jvb3QuaHVlLnNsaWRlcixcblxuICAgICAgICAgICAgICAgIG9uc3RvcDogKCkgPT4gaW5zdC5fZW1pdCgnY2hhbmdlc3RvcCcsICdzbGlkZXInLCBpbnN0KSxcbiAgICAgICAgICAgICAgICBvbmNoYW5nZSh2KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3MuaHVlIHx8ICFjcy5wYWxldHRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGh1ZVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdC5fcmVjYWxjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5oID0gdiAqIDM2MDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjb2xvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYGhzbCgke2NvbG9yLmh9LCAxMDAlLCA1MCUpYDtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cy5wYWxldHRlLnRyaWdnZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgb3BhY2l0eTogTW92ZWFibGUoe1xuICAgICAgICAgICAgICAgIGxvY2s6IHNvID09PSAndicgPyAnaCcgOiAndicsXG4gICAgICAgICAgICAgICAgZWxlbWVudDogaW5zdC5fcm9vdC5vcGFjaXR5LnBpY2tlcixcbiAgICAgICAgICAgICAgICB3cmFwcGVyOiBpbnN0Ll9yb290Lm9wYWNpdHkuc2xpZGVyLFxuXG4gICAgICAgICAgICAgICAgb25zdG9wOiAoKSA9PiBpbnN0Ll9lbWl0KCdjaGFuZ2VzdG9wJywgJ3NsaWRlcicsIGluc3QpLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcy5vcGFjaXR5IHx8ICFjcy5wYWxldHRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIG9wYWNpdHlcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3QuX3JlY2FsYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IuYSA9IE1hdGgucm91bmQodiAqIDFlMikgLyAxMDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBgcmdiYSgwLCAwLCAwLCAke2NvbG9yLmF9KWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMucGFsZXR0ZS50cmlnZ2VyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIHNlbGVjdGFibGU6IFNlbGVjdGFibGUoe1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzOiBpbnN0Ll9yb290LmludGVyYWN0aW9uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYWN0aXZlJyxcblxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zdC5fcmVwcmVzZW50YXRpb24gPSBlLnRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGluc3QuX3JlY2FsYyAmJiBpbnN0Ll91cGRhdGVPdXRwdXQoJ3N3YXRjaCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fY29tcG9uZW50cyA9IGNvbXBvbmVudHM7XG4gICAgfVxuXG4gICAgX2JpbmRFdmVudHMoKSB7XG4gICAgICAgIGNvbnN0IHtfcm9vdCwgb3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIGNvbnN0IGV2ZW50QmluZGluZ3MgPSBbXG5cbiAgICAgICAgICAgIC8vIENsZWFyIGNvbG9yXG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLmNsZWFyLCAnY2xpY2snLCAoKSA9PiB0aGlzLl9jbGVhckNvbG9yKCkpLFxuXG4gICAgICAgICAgICAvLyBTZWxlY3QgbGFzdCBjb2xvciBvbiBjbGlja1xuICAgICAgICAgICAgXy5vbihbXG4gICAgICAgICAgICAgICAgX3Jvb3QuaW50ZXJhY3Rpb24uY2FuY2VsLFxuICAgICAgICAgICAgICAgIF9yb290LnByZXZpZXcubGFzdENvbG9yXG4gICAgICAgICAgICBdLCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRIU1ZBKC4uLih0aGlzLl9sYXN0Q29sb3IgfHwgdGhpcy5fY29sb3IpLnRvSFNWQSgpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjYW5jZWwnKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBTYXZlIGNvbG9yXG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLnNhdmUsICdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAhdGhpcy5hcHBseUNvbG9yKCkgJiYgIW9wdGlvbnMuc2hvd0Fsd2F5cyAmJiB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBVc2VyIGlucHV0XG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLnJlc3VsdCwgWydrZXl1cCcsICdpbnB1dCddLCBlID0+IHtcblxuICAgICAgICAgICAgICAgIC8vIEZpcmUgbGlzdGVuZXIgaWYgaW5pdGlhbGl6YXRpb24gaXMgZmluaXNoIGFuZCBjaGFuZ2VkIGNvbG9yIHdhcyB2YWxpZFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldENvbG9yKGUudGFyZ2V0LnZhbHVlLCB0cnVlKSAmJiAhdGhpcy5faW5pdGlhbGl6aW5nQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NoYW5nZScsIHRoaXMuX2NvbG9yLCAnaW5wdXQnLCB0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlc3RvcCcsICdpbnB1dCcsIHRoaXMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gRGV0ZWN0IHVzZXIgaW5wdXQgYW5kIGRpc2FibGUgYXV0by1yZWNhbGN1bGF0aW9uXG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLnJlc3VsdCwgWydmb2N1cycsICdibHVyJ10sIGUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlY2FsYyA9IGUudHlwZSA9PT0gJ2JsdXInO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlY2FsYyAmJiB0aGlzLl91cGRhdGVPdXRwdXQobnVsbCk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gQ2FuY2VsIGlucHV0IGRldGVjdGlvbiBvbiBjb2xvciBjaGFuZ2VcbiAgICAgICAgICAgIF8ub24oW1xuICAgICAgICAgICAgICAgIF9yb290LnBhbGV0dGUucGFsZXR0ZSxcbiAgICAgICAgICAgICAgICBfcm9vdC5wYWxldHRlLnBpY2tlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5odWUuc2xpZGVyLFxuICAgICAgICAgICAgICAgIF9yb290Lmh1ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3Qub3BhY2l0eS5zbGlkZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3Qub3BhY2l0eS5waWNrZXJcbiAgICAgICAgICAgIF0sIFsnbW91c2Vkb3duJywgJ3RvdWNoc3RhcnQnXSwgKCkgPT4gdGhpcy5fcmVjYWxjID0gdHJ1ZSwge3Bhc3NpdmU6IHRydWV9KVxuICAgICAgICBdO1xuXG4gICAgICAgIC8vIFByb3ZpZGUgaGlkaW5nIC8gc2hvd2luZyBhYmlsaXRpZXMgb25seSBpZiBzaG93QWx3YXlzIGlzIGZhbHNlXG4gICAgICAgIGlmICghb3B0aW9ucy5zaG93QWx3YXlzKSB7XG4gICAgICAgICAgICBjb25zdCBjayA9IG9wdGlvbnMuY2xvc2VXaXRoS2V5O1xuXG4gICAgICAgICAgICBldmVudEJpbmRpbmdzLnB1c2goXG5cbiAgICAgICAgICAgICAgICAvLyBTYXZlIGFuZCBoaWRlIC8gc2hvdyBwaWNrZXJcbiAgICAgICAgICAgICAgICBfLm9uKF9yb290LmJ1dHRvbiwgJ2NsaWNrJywgKCkgPT4gdGhpcy5pc09wZW4oKSA/IHRoaXMuaGlkZSgpIDogdGhpcy5zaG93KCkpLFxuXG4gICAgICAgICAgICAgICAgLy8gQ2xvc2Ugd2l0aCBlc2NhcGUga2V5XG4gICAgICAgICAgICAgICAgXy5vbihkb2N1bWVudCwgJ2tleXVwJywgZSA9PiB0aGlzLmlzT3BlbigpICYmIChlLmtleSA9PT0gY2sgfHwgZS5jb2RlID09PSBjaykgJiYgdGhpcy5oaWRlKCkpLFxuXG4gICAgICAgICAgICAgICAgLy8gQ2FuY2VsIHNlbGVjdGluZyBpZiB0aGUgdXNlciB0YXBzIGJlaGluZCB0aGUgY29sb3IgcGlja2VyXG4gICAgICAgICAgICAgICAgXy5vbihkb2N1bWVudCwgWyd0b3VjaHN0YXJ0JywgJ21vdXNlZG93biddLCBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPcGVuKCkgJiYgIV8uZXZlbnRQYXRoKGUpLnNvbWUoZWwgPT4gZWwgPT09IF9yb290LmFwcCB8fCBlbCA9PT0gX3Jvb3QuYnV0dG9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7Y2FwdHVyZTogdHJ1ZX0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFrZSBpbnB1dCBhZGp1c3RhYmxlIGlmIGVuYWJsZWRcbiAgICAgICAgaWYgKG9wdGlvbnMuYWRqdXN0YWJsZU51bWJlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlcyA9IHtcbiAgICAgICAgICAgICAgICByZ2JhOiBbMjU1LCAyNTUsIDI1NSwgMV0sXG4gICAgICAgICAgICAgICAgaHN2YTogWzM2MCwgMTAwLCAxMDAsIDFdLFxuICAgICAgICAgICAgICAgIGhzbGE6IFszNjAsIDEwMCwgMTAwLCAxXSxcbiAgICAgICAgICAgICAgICBjbXlrOiBbMTAwLCAxMDAsIDEwMCwgMTAwXVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgXy5hZGp1c3RhYmxlSW5wdXROdW1iZXJzKF9yb290LmludGVyYWN0aW9uLnJlc3VsdCwgKG8sIHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSByYW5nZXNbdGhpcy5nZXRDb2xvclJlcHJlc2VudGF0aW9uKCkudG9Mb3dlckNhc2UoKV07XG5cbiAgICAgICAgICAgICAgICBpZiAocmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4ID0gcmFuZ2VbaW5kZXhdO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBuZXh0IHJlYXNvbmFibGUgbnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG52ID0gbyArIChtYXggPj0gMTAwID8gc3RlcCAqIDEwMDAgOiBzdGVwKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBBcHBseSByYW5nZSBvZiB6ZXJvIHVwIHRvIG1heCwgZml4IGZsb2F0aW5nLXBvaW50IGlzc3Vlc1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnYgPD0gMCA/IDAgOiBOdW1iZXIoKG52IDwgbWF4ID8gbnYgOiBtYXgpLnRvUHJlY2lzaW9uKDMpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuYXV0b1JlcG9zaXRpb24gJiYgIW9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICBsZXQgdGltZW91dCA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcblxuICAgICAgICAgICAgLy8gUmUtY2FsYyBwb3NpdGlvbiBvbiB3aW5kb3cgcmVzaXplLCBzY3JvbGwgYW5kIHdoZWVsXG4gICAgICAgICAgICBldmVudEJpbmRpbmdzLnB1c2goXG4gICAgICAgICAgICAgICAgXy5vbih3aW5kb3csIFsnc2Nyb2xsJywgJ3Jlc2l6ZSddLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LmlzT3BlbigpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmNsb3NlT25TY3JvbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWVvdXQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aW1lb3V0ID0gbnVsbCwgMTAwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBwb3NpdGlvbiBvbiBldmVyeSBmcmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiBycygpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcmVQb3NpdGlvbmluZ1BpY2tlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGltZW91dCAhPT0gbnVsbCkgJiYgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRpbWVvdXQgPSBudWxsLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwge2NhcHR1cmU6IHRydWV9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNhdmUgYmluZGluZ3NcbiAgICAgICAgdGhpcy5fZXZlbnRCaW5kaW5ncyA9IGV2ZW50QmluZGluZ3M7XG4gICAgfVxuXG4gICAgX3JlUG9zaXRpb25pbmdQaWNrZXIoKSB7XG4gICAgICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gTm8gcmVwb3NpdGlvbmluZyBuZWVkZWQgaWYgaW5saW5lXG4gICAgICAgIGlmICghb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0aGlzLl9uYW5vcG9wLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyOiBkb2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBvcHRpb25zLnBvc2l0aW9uXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLl9yb290LmFwcDtcbiAgICAgICAgICAgICAgICBjb25zdCBlYiA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGVsLnN0eWxlLnRvcCA9IGAkeyh3aW5kb3cuaW5uZXJIZWlnaHQgLSBlYi5oZWlnaHQpIC8gMn1weGA7XG4gICAgICAgICAgICAgICAgZWwuc3R5bGUubGVmdCA9IGAkeyh3aW5kb3cuaW5uZXJXaWR0aCAtIGViLndpZHRoKSAvIDJ9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3VwZGF0ZU91dHB1dChldmVudFNvdXJjZSkge1xuICAgICAgICBjb25zdCB7X3Jvb3QsIF9jb2xvciwgb3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNvbXBvbmVudCBpcyBwcmVzZW50XG4gICAgICAgIGlmIChfcm9vdC5pbnRlcmFjdGlvbi50eXBlKCkpIHtcblxuICAgICAgICAgICAgLy8gQ29uc3RydWN0IGZ1bmN0aW9uIG5hbWUgYW5kIGNhbGwgaWYgcHJlc2VudFxuICAgICAgICAgICAgY29uc3QgbWV0aG9kID0gYHRvJHtfcm9vdC5pbnRlcmFjdGlvbi50eXBlKCkuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKX1gO1xuICAgICAgICAgICAgX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LnZhbHVlID0gdHlwZW9mIF9jb2xvclttZXRob2RdID09PSAnZnVuY3Rpb24nID9cbiAgICAgICAgICAgICAgICBfY29sb3JbbWV0aG9kXSgpLnRvU3RyaW5nKG9wdGlvbnMub3V0cHV0UHJlY2lzaW9uKSA6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlyZSBsaXN0ZW5lciBpZiBpbml0aWFsaXphdGlvbiBpcyBmaW5pc2hcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUgJiYgdGhpcy5fcmVjYWxjKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2UnLCBfY29sb3IsIGV2ZW50U291cmNlLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9jbGVhckNvbG9yKHNpbGVudCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHtfcm9vdCwgb3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIENoYW5nZSBvbmx5IHRoZSBidXR0b24gY29sb3IgaWYgaXQgaXNuJ3QgY3VzdG9taXplZFxuICAgICAgICBpZiAoIW9wdGlvbnMudXNlQXNCdXR0b24pIHtcbiAgICAgICAgICAgIF9yb290LmJ1dHRvbi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCAncmdiYSgwLCAwLCAwLCAwLjE1KScpO1xuICAgICAgICB9XG5cbiAgICAgICAgX3Jvb3QuYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2NsZWFyJyk7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLnNob3dBbHdheXMpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbGFzdENvbG9yID0gbnVsbDtcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUgJiYgIXNpbGVudCkge1xuXG4gICAgICAgICAgICAvLyBGaXJlIGxpc3RlbmVyXG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdzYXZlJywgbnVsbCk7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdjbGVhcicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3BhcnNlTG9jYWxDb2xvcihzdHIpIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlcywgdHlwZSwgYX0gPSBwYXJzZVRvSFNWQShzdHIpO1xuICAgICAgICBjb25zdCB7bG9ja09wYWNpdHl9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCBhbHBoYU1ha2VzQUNoYW5nZSA9IGEgIT09IHVuZGVmaW5lZCAmJiBhICE9PSAxO1xuXG4gICAgICAgIC8vIElmIG5vIG9wYWNpdHkgaXMgYXBwbGllZCwgYWRkIHVuZGVmaW5lZCBhdCB0aGUgdmVyeSBlbmQgd2hpY2ggZ2V0c1xuICAgICAgICAvLyBTZXQgdG8gMSBpbiBzZXRIU1ZBXG4gICAgICAgIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgICAgdmFsdWVzWzNdID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlczogKCF2YWx1ZXMgfHwgKGxvY2tPcGFjaXR5ICYmIGFscGhhTWFrZXNBQ2hhbmdlKSkgPyBudWxsIDogdmFsdWVzLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIF90KGtleSkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmkxOG5ba2V5XSB8fCBQaWNrci5JMThOX0RFRkFVTFRTW2tleV07XG4gICAgfVxuXG4gICAgX2VtaXQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lcltldmVudF0uZm9yRWFjaChjYiA9PiBjYiguLi5hcmdzLCB0aGlzKSk7XG4gICAgfVxuXG4gICAgb24oZXZlbnQsIGNiKSB7XG4gICAgICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJbZXZlbnRdLnB1c2goY2IpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBvZmYoZXZlbnQsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNhbGxCYWNrcyA9ICh0aGlzLl9ldmVudExpc3RlbmVyW2V2ZW50XSB8fCBbXSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2FsbEJhY2tzLmluZGV4T2YoY2IpO1xuXG4gICAgICAgIGlmICh+aW5kZXgpIHtcbiAgICAgICAgICAgIGNhbGxCYWNrcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBwZW5kcyBhIGNvbG9yIHRvIHRoZSBzd2F0Y2ggcGFsZXR0ZVxuICAgICAqIEBwYXJhbSBjb2xvclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIGFkZFN3YXRjaChjb2xvcikge1xuICAgICAgICBjb25zdCB7dmFsdWVzfSA9IHRoaXMuX3BhcnNlTG9jYWxDb2xvcihjb2xvcik7XG5cbiAgICAgICAgaWYgKHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3Qge19zd2F0Y2hDb2xvcnMsIF9yb290fSA9IHRoaXM7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9IEhTVmFDb2xvciguLi52YWx1ZXMpO1xuXG4gICAgICAgICAgICAvLyBDcmVhdGUgbmV3IHN3YXRjaCBIVE1MRWxlbWVudFxuICAgICAgICAgICAgY29uc3QgZWwgPSBfLmNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nKFxuICAgICAgICAgICAgICAgIGA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBzdHlsZT1cIi0tcGNyLWNvbG9yOiAke2NvbG9yLnRvUkdCQSgpLnRvU3RyaW5nKDApfVwiIGFyaWEtbGFiZWw9XCIke3RoaXMuX3QoJ2J0bjpzd2F0Y2gnKX1cIi8+YFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gQXBwZW5kIGVsZW1lbnQgYW5kIHNhdmUgc3dhdGNoIGRhdGFcbiAgICAgICAgICAgIF9yb290LnN3YXRjaGVzLmFwcGVuZENoaWxkKGVsKTtcbiAgICAgICAgICAgIF9zd2F0Y2hDb2xvcnMucHVzaCh7ZWwsIGNvbG9yfSk7XG5cbiAgICAgICAgICAgIC8vIEJpbmQgZXZlbnRcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50QmluZGluZ3MucHVzaChcbiAgICAgICAgICAgICAgICBfLm9uKGVsLCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SFNWQSguLi5jb2xvci50b0hTVkEoKSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3N3YXRjaHNlbGVjdCcsIGNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlJywgY29sb3IsICdzd2F0Y2gnLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHN3YXRjaCBjb2xvciBieSBpdCdzIGluZGV4XG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgcmVtb3ZlU3dhdGNoKGluZGV4KSB7XG4gICAgICAgIGNvbnN0IHN3YXRjaENvbG9yID0gdGhpcy5fc3dhdGNoQ29sb3JzW2luZGV4XTtcblxuICAgICAgICAvLyBDaGVjayBzd2F0Y2ggZGF0YVxuICAgICAgICBpZiAoc3dhdGNoQ29sb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHtlbH0gPSBzd2F0Y2hDb2xvcjtcblxuICAgICAgICAgICAgLy8gUmVtb3ZlIEhUTUwgY2hpbGQgYW5kIHN3YXRjaCBkYXRhXG4gICAgICAgICAgICB0aGlzLl9yb290LnN3YXRjaGVzLnJlbW92ZUNoaWxkKGVsKTtcbiAgICAgICAgICAgIHRoaXMuX3N3YXRjaENvbG9ycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgYXBwbHlDb2xvcihzaWxlbnQgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCB7cHJldmlldywgYnV0dG9ufSA9IHRoaXMuX3Jvb3Q7XG5cbiAgICAgICAgLy8gQ2hhbmdlIHByZXZpZXcgYW5kIGN1cnJlbnQgY29sb3JcbiAgICAgICAgY29uc3QgY3NzUkdCYVN0cmluZyA9IHRoaXMuX2NvbG9yLnRvUkdCQSgpLnRvU3RyaW5nKDApO1xuICAgICAgICBwcmV2aWV3Lmxhc3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcblxuICAgICAgICAvLyBDaGFuZ2Ugb25seSB0aGUgYnV0dG9uIGNvbG9yIGlmIGl0IGlzbid0IGN1c3RvbWl6ZWRcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMudXNlQXNCdXR0b24pIHtcbiAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVzZXIgY2hhbmdlZCB0aGUgY29sb3Igc28gcmVtb3ZlIHRoZSBjbGVhciBjbGFzXG4gICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdjbGVhcicpO1xuXG4gICAgICAgIC8vIFNhdmUgbGFzdCBjb2xvclxuICAgICAgICB0aGlzLl9sYXN0Q29sb3IgPSB0aGlzLl9jb2xvci5jbG9uZSgpO1xuXG4gICAgICAgIC8vIEZpcmUgbGlzdGVuZXJcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUgJiYgIXNpbGVudCkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnc2F2ZScsIHRoaXMuX2NvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc3Ryb3kncyBhbGwgZnVuY3Rpb25hbGl0eXNcbiAgICAgKi9cbiAgICBkZXN0cm95KCkge1xuXG4gICAgICAgIC8vIENhbmNlbCBzZXR1cC1mcmFtZSBpZiBzZXRcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fc2V0dXBBbmltYXRpb25GcmFtZSk7XG5cbiAgICAgICAgLy8gVW5iaW5kIGV2ZW50c1xuICAgICAgICB0aGlzLl9ldmVudEJpbmRpbmdzLmZvckVhY2goYXJncyA9PiBfLm9mZiguLi5hcmdzKSk7XG5cbiAgICAgICAgLy8gRGVzdHJveSBzdWItY29tcG9uZW50c1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLl9jb21wb25lbnRzKVxuICAgICAgICAgICAgLmZvckVhY2goa2V5ID0+IHRoaXMuX2NvbXBvbmVudHNba2V5XS5kZXN0cm95KCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc3Ryb3kncyBhbGwgZnVuY3Rpb25hbGl0eXMgYW5kIHJlbW92ZXNcbiAgICAgKiB0aGUgcGlja3IgZWxlbWVudC5cbiAgICAgKi9cbiAgICBkZXN0cm95QW5kUmVtb3ZlKCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgY29uc3Qge3Jvb3QsIGFwcH0gPSB0aGlzLl9yb290O1xuXG4gICAgICAgIC8vIFJlbW92ZSBlbGVtZW50XG4gICAgICAgIGlmIChyb290LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJvb3QucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChyb290KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSAucGNyLWFwcFxuICAgICAgICBhcHAucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChhcHApO1xuXG4gICAgICAgIC8vIFRoZXJlIGFyZSByZWZlcmVuY2VzIHRvIHZhcmlvdXMgRE9NIGVsZW1lbnRzIHN0b3JlZCBpbiB0aGUgcGlja3IgaW5zdGFuY2VcbiAgICAgICAgLy8gVGhpcyBjbGVhbnMgYWxsIG9mIHRoZW0gdG8gYXZvaWQgZGV0YWNoZWQgRE9Nc1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzKVxuICAgICAgICAgICAgLmZvckVhY2goa2V5ID0+IHRoaXNba2V5XSA9IG51bGwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGVzIHRoZSBjb2xvci1waWNrZXIgdWkuXG4gICAgICovXG4gICAgaGlkZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QuYXBwLmNsYXNzTGlzdC5yZW1vdmUoJ3Zpc2libGUnKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2hpZGUnKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3dzIHRoZSBjb2xvci1waWNrZXIgdWkuXG4gICAgICovXG4gICAgc2hvdygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQgJiYgIXRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QuYXBwLmNsYXNzTGlzdC5hZGQoJ3Zpc2libGUnKTtcbiAgICAgICAgICAgIHRoaXMuX3JlUG9zaXRpb25pbmdQaWNrZXIoKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3Nob3cnLCB0aGlzLl9jb2xvcik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBJZiB0aGUgY29sb3IgcGlja2VyIGlzIGN1cnJlbnRseSBvcGVuXG4gICAgICovXG4gICAgaXNPcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdC5hcHAuY2xhc3NMaXN0LmNvbnRhaW5zKCd2aXNpYmxlJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGEgc3BlY2lmaWMgY29sb3IuXG4gICAgICogQHBhcmFtIGggSHVlXG4gICAgICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICAgICAqIEBwYXJhbSB2IFZhbHVlXG4gICAgICogQHBhcmFtIGEgQWxwaGEgY2hhbm5lbCAoMCAtIDEpXG4gICAgICogQHBhcmFtIHNpbGVudCBJZiB0aGUgYnV0dG9uIHNob3VsZCBub3QgY2hhbmdlIHRoZSBjb2xvclxuICAgICAqIEByZXR1cm4gYm9vbGVhbiBpZiB0aGUgY29sb3IgaGFzIGJlZW4gYWNjZXB0ZWRcbiAgICAgKi9cbiAgICBzZXRIU1ZBKGggPSAzNjAsIHMgPSAwLCB2ID0gMCwgYSA9IDEsIHNpbGVudCA9IGZhbHNlKSB7XG5cbiAgICAgICAgLy8gRGVhY3RpdmF0ZSBjb2xvciBjYWxjdWxhdGlvblxuICAgICAgICBjb25zdCByZWNhbGMgPSB0aGlzLl9yZWNhbGM7IC8vIFNhdmUgc3RhdGVcbiAgICAgICAgdGhpcy5fcmVjYWxjID0gZmFsc2U7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgaW5wdXRcbiAgICAgICAgaWYgKGggPCAwIHx8IGggPiAzNjAgfHwgcyA8IDAgfHwgcyA+IDEwMCB8fCB2IDwgMCB8fCB2ID4gMTAwIHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPdmVycmlkZSBjdXJyZW50IGNvbG9yIGFuZCByZS1hY3RpdmUgY29sb3IgY2FsY3VsYXRpb25cbiAgICAgICAgdGhpcy5fY29sb3IgPSBIU1ZhQ29sb3IoaCwgcywgdiwgYSk7XG5cbiAgICAgICAgLy8gVXBkYXRlIHNsaWRlciBhbmQgcGFsZXR0ZVxuICAgICAgICBjb25zdCB7aHVlLCBvcGFjaXR5LCBwYWxldHRlfSA9IHRoaXMuX2NvbXBvbmVudHM7XG4gICAgICAgIGh1ZS51cGRhdGUoKGggLyAzNjApKTtcbiAgICAgICAgb3BhY2l0eS51cGRhdGUoYSk7XG4gICAgICAgIHBhbGV0dGUudXBkYXRlKHMgLyAxMDAsIDEgLSAodiAvIDEwMCkpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNhbGwgaXMgc2lsZW50XG4gICAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVwZGF0ZSBvdXRwdXQgaWYgcmVjYWxjdWxhdGlvbiBpcyBlbmFibGVkXG4gICAgICAgIGlmIChyZWNhbGMpIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU91dHB1dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVzdG9yZSBvbGQgc3RhdGVcbiAgICAgICAgdGhpcy5fcmVjYWxjID0gcmVjYWxjO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmllcyB0byBwYXJzZSBhIHN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgY29sb3IuXG4gICAgICogRXhhbXBsZXM6ICNmZmZcbiAgICAgKiAgICAgICAgICAgcmdiIDEwIDEwIDIwMFxuICAgICAqICAgICAgICAgICBoc3ZhIDEwIDIwIDUgMC41XG4gICAgICogQHBhcmFtIHN0cmluZ1xuICAgICAqIEBwYXJhbSBzaWxlbnRcbiAgICAgKi9cbiAgICBzZXRDb2xvcihzdHJpbmcsIHNpbGVudCA9IGZhbHNlKSB7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgbnVsbFxuICAgICAgICBpZiAoc3RyaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jbGVhckNvbG9yKHNpbGVudCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHt2YWx1ZXMsIHR5cGV9ID0gdGhpcy5fcGFyc2VMb2NhbENvbG9yKHN0cmluZyk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY29sb3IgaXMgb2tcbiAgICAgICAgaWYgKHZhbHVlcykge1xuXG4gICAgICAgICAgICAvLyBDaGFuZ2Ugc2VsZWN0ZWQgY29sb3IgZm9ybWF0XG4gICAgICAgICAgICBjb25zdCB1dHlwZSA9IHR5cGUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoaXMuX3Jvb3QuaW50ZXJhY3Rpb247XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBvcHRpb25zLmZpbmQoZWwgPT4gZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKSA9PT0gdXR5cGUpO1xuXG4gICAgICAgICAgICAvLyBBdXRvIHNlbGVjdCBvbmx5IGlmIG5vdCBoaWRkZW5cbiAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgIXRhcmdldC5oaWRkZW4pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVsIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0W2VsID09PSB0YXJnZXQgPyAnYWRkJyA6ICdyZW1vdmUnXSgnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBVcGRhdGUgY29sb3IgKGZpcmVzICdzYXZlJyBldmVudCBpZiBzaWxlbnQgaXMgJ2ZhbHNlJylcbiAgICAgICAgICAgIGlmICghdGhpcy5zZXRIU1ZBKC4uLnZhbHVlcywgc2lsZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVXBkYXRlIHJlcHJlc2VudGF0aW9uIChmaXJlcyAnY2hhbmdlJyBldmVudClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldENvbG9yUmVwcmVzZW50YXRpb24odXR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZXMgdGhlIGNvbG9yIF9yZXByZXNlbnRhdGlvbi5cbiAgICAgKiBBbGxvd2VkIHZhbHVlcyBhcmUgSEVYLCBSR0IsIEhTViwgSFNMIGFuZCBDTVlLXG4gICAgICogQHBhcmFtIHR5cGVcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gaWYgdGhlIHNlbGVjdGVkIHR5cGUgd2FzIHZhbGlkLlxuICAgICAqL1xuICAgIHNldENvbG9yUmVwcmVzZW50YXRpb24odHlwZSkge1xuXG4gICAgICAgIC8vIEZvcmNlIHVwcGVyY2FzZSB0byBhbGxvdyBhIGNhc2Utc2Vuc2l0aXYgY29tcGFyaXNvblxuICAgICAgICB0eXBlID0gdHlwZS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgICAgIC8vIEZpbmQgYnV0dG9uIHdpdGggZ2l2ZW4gdHlwZSBhbmQgdHJpZ2dlciBjbGljayBldmVudFxuICAgICAgICByZXR1cm4gISF0aGlzLl9yb290LmludGVyYWN0aW9uLm9wdGlvbnNcbiAgICAgICAgICAgIC5maW5kKHYgPT4gdi5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpLnN0YXJ0c1dpdGgodHlwZSkgJiYgIXYuY2xpY2soKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBjb2xvciByZXByZXNlbnRhaW9uLiBTZWUgc2V0Q29sb3JSZXByZXNlbnRhdGlvblxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIGdldENvbG9yUmVwcmVzZW50YXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXByZXNlbnRhdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBIU1ZhQ29sb3IgQ3VycmVudCBIU1ZhQ29sb3Igb2JqZWN0LlxuICAgICAqL1xuICAgIGdldENvbG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGNvbG9yLlxuICAgICAqIEByZXR1cm5zIHt7YSwgdG9IU1ZBLCB0b0hFWEEsIHMsIHYsIGgsIGNsb25lLCB0b0NNWUssIHRvSFNMQSwgdG9SR0JBfX1cbiAgICAgKi9cbiAgICBnZXRTZWxlY3RlZENvbG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFzdENvbG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIFRoZSByb290IEhUTUxFbGVtZW50IHdpdGggYWxsIGhpcyBjb21wb25lbnRzLlxuICAgICAqL1xuICAgIGdldFJvb3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb290O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc2FibGUgcGlja3JcbiAgICAgKi9cbiAgICBkaXNhYmxlKCkge1xuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgdGhpcy5vcHRpb25zLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fcm9vdC5idXR0b24uY2xhc3NMaXN0LmFkZCgnZGlzYWJsZWQnKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlIHBpY2tyXG4gICAgICovXG4gICAgZW5hYmxlKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fcm9vdC5idXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnZGlzYWJsZWQnKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuIiwgIihmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG5cdHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyA/IG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpIDpcblx0dHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKGZhY3RvcnkpIDpcblx0KGdsb2JhbC5KU09ONSA9IGZhY3RvcnkoKSk7XG59KHRoaXMsIChmdW5jdGlvbiAoKSB7ICd1c2Ugc3RyaWN0JztcblxuXHRmdW5jdGlvbiBjcmVhdGVDb21tb25qc01vZHVsZShmbiwgbW9kdWxlKSB7XG5cdFx0cmV0dXJuIG1vZHVsZSA9IHsgZXhwb3J0czoge30gfSwgZm4obW9kdWxlLCBtb2R1bGUuZXhwb3J0cyksIG1vZHVsZS5leHBvcnRzO1xuXHR9XG5cblx0dmFyIF9nbG9iYWwgPSBjcmVhdGVDb21tb25qc01vZHVsZShmdW5jdGlvbiAobW9kdWxlKSB7XG5cdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG5cdHZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuXHQgID8gd2luZG93IDogdHlwZW9mIHNlbGYgIT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5NYXRoID09IE1hdGggPyBzZWxmXG5cdCAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jXG5cdCAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHRpZiAodHlwZW9mIF9fZyA9PSAnbnVtYmVyJykgeyBfX2cgPSBnbG9iYWw7IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXHR9KTtcblxuXHR2YXIgX2NvcmUgPSBjcmVhdGVDb21tb25qc01vZHVsZShmdW5jdGlvbiAobW9kdWxlKSB7XG5cdHZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjYuNScgfTtcblx0aWYgKHR5cGVvZiBfX2UgPT0gJ251bWJlcicpIHsgX19lID0gY29yZTsgfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cdH0pO1xuXHR2YXIgX2NvcmVfMSA9IF9jb3JlLnZlcnNpb247XG5cblx0dmFyIF9pc09iamVjdCA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG5cdH07XG5cblx0dmFyIF9hbk9iamVjdCA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIGlmICghX2lzT2JqZWN0KGl0KSkgeyB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhbiBvYmplY3QhJyk7IH1cblx0ICByZXR1cm4gaXQ7XG5cdH07XG5cblx0dmFyIF9mYWlscyA9IGZ1bmN0aW9uIChleGVjKSB7XG5cdCAgdHJ5IHtcblx0ICAgIHJldHVybiAhIWV4ZWMoKTtcblx0ICB9IGNhdGNoIChlKSB7XG5cdCAgICByZXR1cm4gdHJ1ZTtcblx0ICB9XG5cdH07XG5cblx0Ly8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxuXHR2YXIgX2Rlc2NyaXB0b3JzID0gIV9mYWlscyhmdW5jdGlvbiAoKSB7XG5cdCAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG5cdH0pO1xuXG5cdHZhciBkb2N1bWVudCA9IF9nbG9iYWwuZG9jdW1lbnQ7XG5cdC8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxuXHR2YXIgaXMgPSBfaXNPYmplY3QoZG9jdW1lbnQpICYmIF9pc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcblx0dmFyIF9kb21DcmVhdGUgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xuXHR9O1xuXG5cdHZhciBfaWU4RG9tRGVmaW5lID0gIV9kZXNjcmlwdG9ycyAmJiAhX2ZhaWxzKGZ1bmN0aW9uICgpIHtcblx0ICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KF9kb21DcmVhdGUoJ2RpdicpLCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcblx0fSk7XG5cblx0Ly8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG5cblx0Ly8gaW5zdGVhZCBvZiB0aGUgRVM2IHNwZWMgdmVyc2lvbiwgd2UgZGlkbid0IGltcGxlbWVudCBAQHRvUHJpbWl0aXZlIGNhc2Vcblx0Ly8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcblx0dmFyIF90b1ByaW1pdGl2ZSA9IGZ1bmN0aW9uIChpdCwgUykge1xuXHQgIGlmICghX2lzT2JqZWN0KGl0KSkgeyByZXR1cm4gaXQ7IH1cblx0ICB2YXIgZm4sIHZhbDtcblx0ICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIV9pc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHsgcmV0dXJuIHZhbDsgfVxuXHQgIGlmICh0eXBlb2YgKGZuID0gaXQudmFsdWVPZikgPT0gJ2Z1bmN0aW9uJyAmJiAhX2lzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgeyByZXR1cm4gdmFsOyB9XG5cdCAgaWYgKCFTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhX2lzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgeyByZXR1cm4gdmFsOyB9XG5cdCAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xuXHR9O1xuXG5cdHZhciBkUCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuXHR2YXIgZiA9IF9kZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpIHtcblx0ICBfYW5PYmplY3QoTyk7XG5cdCAgUCA9IF90b1ByaW1pdGl2ZShQLCB0cnVlKTtcblx0ICBfYW5PYmplY3QoQXR0cmlidXRlcyk7XG5cdCAgaWYgKF9pZThEb21EZWZpbmUpIHsgdHJ5IHtcblx0ICAgIHJldHVybiBkUChPLCBQLCBBdHRyaWJ1dGVzKTtcblx0ICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH0gfVxuXHQgIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHsgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTsgfVxuXHQgIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIHsgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7IH1cblx0ICByZXR1cm4gTztcblx0fTtcblxuXHR2YXIgX29iamVjdERwID0ge1xuXHRcdGY6IGZcblx0fTtcblxuXHR2YXIgX3Byb3BlcnR5RGVzYyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG5cdCAgcmV0dXJuIHtcblx0ICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG5cdCAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG5cdCAgICB3cml0YWJsZTogIShiaXRtYXAgJiA0KSxcblx0ICAgIHZhbHVlOiB2YWx1ZVxuXHQgIH07XG5cdH07XG5cblx0dmFyIF9oaWRlID0gX2Rlc2NyaXB0b3JzID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuXHQgIHJldHVybiBfb2JqZWN0RHAuZihvYmplY3QsIGtleSwgX3Byb3BlcnR5RGVzYygxLCB2YWx1ZSkpO1xuXHR9IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuXHQgIG9iamVjdFtrZXldID0gdmFsdWU7XG5cdCAgcmV0dXJuIG9iamVjdDtcblx0fTtcblxuXHR2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblx0dmFyIF9oYXMgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuXHQgIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuXHR9O1xuXG5cdHZhciBpZCA9IDA7XG5cdHZhciBweCA9IE1hdGgucmFuZG9tKCk7XG5cdHZhciBfdWlkID0gZnVuY3Rpb24gKGtleSkge1xuXHQgIHJldHVybiAnU3ltYm9sKCcuY29uY2F0KGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXksICcpXycsICgrK2lkICsgcHgpLnRvU3RyaW5nKDM2KSk7XG5cdH07XG5cblx0dmFyIF9saWJyYXJ5ID0gZmFsc2U7XG5cblx0dmFyIF9zaGFyZWQgPSBjcmVhdGVDb21tb25qc01vZHVsZShmdW5jdGlvbiAobW9kdWxlKSB7XG5cdHZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcblx0dmFyIHN0b3JlID0gX2dsb2JhbFtTSEFSRURdIHx8IChfZ2xvYmFsW1NIQVJFRF0gPSB7fSk7XG5cblx0KG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcblx0ICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcblx0fSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuXHQgIHZlcnNpb246IF9jb3JlLnZlcnNpb24sXG5cdCAgbW9kZTogX2xpYnJhcnkgPyAncHVyZScgOiAnZ2xvYmFsJyxcblx0ICBjb3B5cmlnaHQ6ICdcdTAwQTkgMjAxOSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcblx0fSk7XG5cdH0pO1xuXG5cdHZhciBfZnVuY3Rpb25Ub1N0cmluZyA9IF9zaGFyZWQoJ25hdGl2ZS1mdW5jdGlvbi10by1zdHJpbmcnLCBGdW5jdGlvbi50b1N0cmluZyk7XG5cblx0dmFyIF9yZWRlZmluZSA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0dmFyIFNSQyA9IF91aWQoJ3NyYycpO1xuXG5cdHZhciBUT19TVFJJTkcgPSAndG9TdHJpbmcnO1xuXHR2YXIgVFBMID0gKCcnICsgX2Z1bmN0aW9uVG9TdHJpbmcpLnNwbGl0KFRPX1NUUklORyk7XG5cblx0X2NvcmUuaW5zcGVjdFNvdXJjZSA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIHJldHVybiBfZnVuY3Rpb25Ub1N0cmluZy5jYWxsKGl0KTtcblx0fTtcblxuXHQobW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywga2V5LCB2YWwsIHNhZmUpIHtcblx0ICB2YXIgaXNGdW5jdGlvbiA9IHR5cGVvZiB2YWwgPT0gJ2Z1bmN0aW9uJztcblx0ICBpZiAoaXNGdW5jdGlvbikgeyBfaGFzKHZhbCwgJ25hbWUnKSB8fCBfaGlkZSh2YWwsICduYW1lJywga2V5KTsgfVxuXHQgIGlmIChPW2tleV0gPT09IHZhbCkgeyByZXR1cm47IH1cblx0ICBpZiAoaXNGdW5jdGlvbikgeyBfaGFzKHZhbCwgU1JDKSB8fCBfaGlkZSh2YWwsIFNSQywgT1trZXldID8gJycgKyBPW2tleV0gOiBUUEwuam9pbihTdHJpbmcoa2V5KSkpOyB9XG5cdCAgaWYgKE8gPT09IF9nbG9iYWwpIHtcblx0ICAgIE9ba2V5XSA9IHZhbDtcblx0ICB9IGVsc2UgaWYgKCFzYWZlKSB7XG5cdCAgICBkZWxldGUgT1trZXldO1xuXHQgICAgX2hpZGUoTywga2V5LCB2YWwpO1xuXHQgIH0gZWxzZSBpZiAoT1trZXldKSB7XG5cdCAgICBPW2tleV0gPSB2YWw7XG5cdCAgfSBlbHNlIHtcblx0ICAgIF9oaWRlKE8sIGtleSwgdmFsKTtcblx0ICB9XG5cdC8vIGFkZCBmYWtlIEZ1bmN0aW9uI3RvU3RyaW5nIGZvciBjb3JyZWN0IHdvcmsgd3JhcHBlZCBtZXRob2RzIC8gY29uc3RydWN0b3JzIHdpdGggbWV0aG9kcyBsaWtlIExvRGFzaCBpc05hdGl2ZVxuXHR9KShGdW5jdGlvbi5wcm90b3R5cGUsIFRPX1NUUklORywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG5cdCAgcmV0dXJuIHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgJiYgdGhpc1tTUkNdIHx8IF9mdW5jdGlvblRvU3RyaW5nLmNhbGwodGhpcyk7XG5cdH0pO1xuXHR9KTtcblxuXHR2YXIgX2FGdW5jdGlvbiA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIGlmICh0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJykgeyB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uIScpOyB9XG5cdCAgcmV0dXJuIGl0O1xuXHR9O1xuXG5cdC8vIG9wdGlvbmFsIC8gc2ltcGxlIGNvbnRleHQgYmluZGluZ1xuXG5cdHZhciBfY3R4ID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcblx0ICBfYUZ1bmN0aW9uKGZuKTtcblx0ICBpZiAodGhhdCA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiBmbjsgfVxuXHQgIHN3aXRjaCAobGVuZ3RoKSB7XG5cdCAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbiAoYSkge1xuXHQgICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhKTtcblx0ICAgIH07XG5cdCAgICBjYXNlIDI6IHJldHVybiBmdW5jdGlvbiAoYSwgYikge1xuXHQgICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcblx0ICAgIH07XG5cdCAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbiAoYSwgYiwgYykge1xuXHQgICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiLCBjKTtcblx0ICAgIH07XG5cdCAgfVxuXHQgIHJldHVybiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuXHQgICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG5cdCAgfTtcblx0fTtcblxuXHR2YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cblx0dmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG5cdCAgdmFyIElTX0ZPUkNFRCA9IHR5cGUgJiAkZXhwb3J0LkY7XG5cdCAgdmFyIElTX0dMT0JBTCA9IHR5cGUgJiAkZXhwb3J0Lkc7XG5cdCAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG5cdCAgdmFyIElTX1BST1RPID0gdHlwZSAmICRleHBvcnQuUDtcblx0ICB2YXIgSVNfQklORCA9IHR5cGUgJiAkZXhwb3J0LkI7XG5cdCAgdmFyIHRhcmdldCA9IElTX0dMT0JBTCA/IF9nbG9iYWwgOiBJU19TVEFUSUMgPyBfZ2xvYmFsW25hbWVdIHx8IChfZ2xvYmFsW25hbWVdID0ge30pIDogKF9nbG9iYWxbbmFtZV0gfHwge30pW1BST1RPVFlQRV07XG5cdCAgdmFyIGV4cG9ydHMgPSBJU19HTE9CQUwgPyBfY29yZSA6IF9jb3JlW25hbWVdIHx8IChfY29yZVtuYW1lXSA9IHt9KTtcblx0ICB2YXIgZXhwUHJvdG8gPSBleHBvcnRzW1BST1RPVFlQRV0gfHwgKGV4cG9ydHNbUFJPVE9UWVBFXSA9IHt9KTtcblx0ICB2YXIga2V5LCBvd24sIG91dCwgZXhwO1xuXHQgIGlmIChJU19HTE9CQUwpIHsgc291cmNlID0gbmFtZTsgfVxuXHQgIGZvciAoa2V5IGluIHNvdXJjZSkge1xuXHQgICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG5cdCAgICBvd24gPSAhSVNfRk9SQ0VEICYmIHRhcmdldCAmJiB0YXJnZXRba2V5XSAhPT0gdW5kZWZpbmVkO1xuXHQgICAgLy8gZXhwb3J0IG5hdGl2ZSBvciBwYXNzZWRcblx0ICAgIG91dCA9IChvd24gPyB0YXJnZXQgOiBzb3VyY2UpW2tleV07XG5cdCAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuXHQgICAgZXhwID0gSVNfQklORCAmJiBvd24gPyBfY3R4KG91dCwgX2dsb2JhbCkgOiBJU19QUk9UTyAmJiB0eXBlb2Ygb3V0ID09ICdmdW5jdGlvbicgPyBfY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG5cdCAgICAvLyBleHRlbmQgZ2xvYmFsXG5cdCAgICBpZiAodGFyZ2V0KSB7IF9yZWRlZmluZSh0YXJnZXQsIGtleSwgb3V0LCB0eXBlICYgJGV4cG9ydC5VKTsgfVxuXHQgICAgLy8gZXhwb3J0XG5cdCAgICBpZiAoZXhwb3J0c1trZXldICE9IG91dCkgeyBfaGlkZShleHBvcnRzLCBrZXksIGV4cCk7IH1cblx0ICAgIGlmIChJU19QUk9UTyAmJiBleHBQcm90b1trZXldICE9IG91dCkgeyBleHBQcm90b1trZXldID0gb3V0OyB9XG5cdCAgfVxuXHR9O1xuXHRfZ2xvYmFsLmNvcmUgPSBfY29yZTtcblx0Ly8gdHlwZSBiaXRtYXBcblx0JGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcblx0JGV4cG9ydC5HID0gMjsgICAvLyBnbG9iYWxcblx0JGV4cG9ydC5TID0gNDsgICAvLyBzdGF0aWNcblx0JGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuXHQkZXhwb3J0LkIgPSAxNjsgIC8vIGJpbmRcblx0JGV4cG9ydC5XID0gMzI7ICAvLyB3cmFwXG5cdCRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuXHQkZXhwb3J0LlIgPSAxMjg7IC8vIHJlYWwgcHJvdG8gbWV0aG9kIGZvciBgbGlicmFyeWBcblx0dmFyIF9leHBvcnQgPSAkZXhwb3J0O1xuXG5cdC8vIDcuMS40IFRvSW50ZWdlclxuXHR2YXIgY2VpbCA9IE1hdGguY2VpbDtcblx0dmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblx0dmFyIF90b0ludGVnZXIgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICByZXR1cm4gaXNOYU4oaXQgPSAraXQpID8gMCA6IChpdCA+IDAgPyBmbG9vciA6IGNlaWwpKGl0KTtcblx0fTtcblxuXHQvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxuXHR2YXIgX2RlZmluZWQgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICBpZiAoaXQgPT0gdW5kZWZpbmVkKSB7IHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uICBcIiArIGl0KTsgfVxuXHQgIHJldHVybiBpdDtcblx0fTtcblxuXHQvLyB0cnVlICAtPiBTdHJpbmcjYXRcblx0Ly8gZmFsc2UgLT4gU3RyaW5nI2NvZGVQb2ludEF0XG5cdHZhciBfc3RyaW5nQXQgPSBmdW5jdGlvbiAoVE9fU1RSSU5HKSB7XG5cdCAgcmV0dXJuIGZ1bmN0aW9uICh0aGF0LCBwb3MpIHtcblx0ICAgIHZhciBzID0gU3RyaW5nKF9kZWZpbmVkKHRoYXQpKTtcblx0ICAgIHZhciBpID0gX3RvSW50ZWdlcihwb3MpO1xuXHQgICAgdmFyIGwgPSBzLmxlbmd0aDtcblx0ICAgIHZhciBhLCBiO1xuXHQgICAgaWYgKGkgPCAwIHx8IGkgPj0gbCkgeyByZXR1cm4gVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7IH1cblx0ICAgIGEgPSBzLmNoYXJDb2RlQXQoaSk7XG5cdCAgICByZXR1cm4gYSA8IDB4ZDgwMCB8fCBhID4gMHhkYmZmIHx8IGkgKyAxID09PSBsIHx8IChiID0gcy5jaGFyQ29kZUF0KGkgKyAxKSkgPCAweGRjMDAgfHwgYiA+IDB4ZGZmZlxuXHQgICAgICA/IFRPX1NUUklORyA/IHMuY2hhckF0KGkpIDogYVxuXHQgICAgICA6IFRPX1NUUklORyA/IHMuc2xpY2UoaSwgaSArIDIpIDogKGEgLSAweGQ4MDAgPDwgMTApICsgKGIgLSAweGRjMDApICsgMHgxMDAwMDtcblx0ICB9O1xuXHR9O1xuXG5cdHZhciAkYXQgPSBfc3RyaW5nQXQoZmFsc2UpO1xuXHRfZXhwb3J0KF9leHBvcnQuUCwgJ1N0cmluZycsIHtcblx0ICAvLyAyMS4xLjMuMyBTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0KHBvcylcblx0ICBjb2RlUG9pbnRBdDogZnVuY3Rpb24gY29kZVBvaW50QXQocG9zKSB7XG5cdCAgICByZXR1cm4gJGF0KHRoaXMsIHBvcyk7XG5cdCAgfVxuXHR9KTtcblxuXHR2YXIgY29kZVBvaW50QXQgPSBfY29yZS5TdHJpbmcuY29kZVBvaW50QXQ7XG5cblx0dmFyIG1heCA9IE1hdGgubWF4O1xuXHR2YXIgbWluID0gTWF0aC5taW47XG5cdHZhciBfdG9BYnNvbHV0ZUluZGV4ID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcblx0ICBpbmRleCA9IF90b0ludGVnZXIoaW5kZXgpO1xuXHQgIHJldHVybiBpbmRleCA8IDAgPyBtYXgoaW5kZXggKyBsZW5ndGgsIDApIDogbWluKGluZGV4LCBsZW5ndGgpO1xuXHR9O1xuXG5cdHZhciBmcm9tQ2hhckNvZGUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlO1xuXHR2YXIgJGZyb21Db2RlUG9pbnQgPSBTdHJpbmcuZnJvbUNvZGVQb2ludDtcblxuXHQvLyBsZW5ndGggc2hvdWxkIGJlIDEsIG9sZCBGRiBwcm9ibGVtXG5cdF9leHBvcnQoX2V4cG9ydC5TICsgX2V4cG9ydC5GICogKCEhJGZyb21Db2RlUG9pbnQgJiYgJGZyb21Db2RlUG9pbnQubGVuZ3RoICE9IDEpLCAnU3RyaW5nJywge1xuXHQgIC8vIDIxLjEuMi4yIFN0cmluZy5mcm9tQ29kZVBvaW50KC4uLmNvZGVQb2ludHMpXG5cdCAgZnJvbUNvZGVQb2ludDogZnVuY3Rpb24gZnJvbUNvZGVQb2ludCh4KSB7XG5cdCAgICB2YXIgYXJndW1lbnRzJDEgPSBhcmd1bWVudHM7XG5cdCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG5cdCAgICB2YXIgcmVzID0gW107XG5cdCAgICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG5cdCAgICB2YXIgaSA9IDA7XG5cdCAgICB2YXIgY29kZTtcblx0ICAgIHdoaWxlIChhTGVuID4gaSkge1xuXHQgICAgICBjb2RlID0gK2FyZ3VtZW50cyQxW2krK107XG5cdCAgICAgIGlmIChfdG9BYnNvbHV0ZUluZGV4KGNvZGUsIDB4MTBmZmZmKSAhPT0gY29kZSkgeyB0aHJvdyBSYW5nZUVycm9yKGNvZGUgKyAnIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQnKTsgfVxuXHQgICAgICByZXMucHVzaChjb2RlIDwgMHgxMDAwMFxuXHQgICAgICAgID8gZnJvbUNoYXJDb2RlKGNvZGUpXG5cdCAgICAgICAgOiBmcm9tQ2hhckNvZGUoKChjb2RlIC09IDB4MTAwMDApID4+IDEwKSArIDB4ZDgwMCwgY29kZSAlIDB4NDAwICsgMHhkYzAwKVxuXHQgICAgICApO1xuXHQgICAgfSByZXR1cm4gcmVzLmpvaW4oJycpO1xuXHQgIH1cblx0fSk7XG5cblx0dmFyIGZyb21Db2RlUG9pbnQgPSBfY29yZS5TdHJpbmcuZnJvbUNvZGVQb2ludDtcblxuXHQvLyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBlZGl0LlxuXHR2YXIgU3BhY2VfU2VwYXJhdG9yID0gL1tcXHUxNjgwXFx1MjAwMC1cXHUyMDBBXFx1MjAyRlxcdTIwNUZcXHUzMDAwXS87XG5cdHZhciBJRF9TdGFydCA9IC9bXFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjEtXFx1MDU4N1xcdTA1RDAtXFx1MDVFQVxcdTA1RjAtXFx1MDVGMlxcdTA2MjAtXFx1MDY0QVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RTVcXHUwNkU2XFx1MDZFRVxcdTA2RUZcXHUwNkZBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMFxcdTA3MTItXFx1MDcyRlxcdTA3NEQtXFx1MDdBNVxcdTA3QjFcXHUwN0NBLVxcdTA3RUFcXHUwN0Y0XFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MTVcXHUwODFBXFx1MDgyNFxcdTA4MjhcXHUwODQwLVxcdTA4NThcXHUwODYwLVxcdTA4NkFcXHUwOEEwLVxcdTA4QjRcXHUwOEI2LVxcdTA4QkRcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk4MFxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTA5RkNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTcyLVxcdTBBNzRcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMFxcdTBBRTFcXHUwQUY5XFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OC1cXHUwQzVBXFx1MEM2MFxcdTBDNjFcXHUwQzgwXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCRFxcdTBDREVcXHUwQ0UwXFx1MENFMVxcdTBDRjFcXHUwQ0YyXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRFxcdTBENEVcXHUwRDU0LVxcdTBENTZcXHUwRDVGLVxcdTBENjFcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MEUwMS1cXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwLVxcdTBFNDZcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCMFxcdTBFQjJcXHUwRUIzXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEY0MC1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY4OC1cXHUwRjhDXFx1MTAwMC1cXHUxMDJBXFx1MTAzRlxcdTEwNTAtXFx1MTA1NVxcdTEwNUEtXFx1MTA1RFxcdTEwNjFcXHUxMDY1XFx1MTA2NlxcdTEwNkUtXFx1MTA3MFxcdTEwNzUtXFx1MTA4MVxcdTEwOEVcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y1XFx1MTNGOC1cXHUxM0ZEXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZFRS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzExXFx1MTcyMC1cXHUxNzMxXFx1MTc0MC1cXHUxNzUxXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc4MC1cXHUxN0IzXFx1MTdEN1xcdTE3RENcXHUxODIwLVxcdTE4NzdcXHUxODgwLVxcdTE4ODRcXHUxODg3LVxcdTE4QThcXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTk1MC1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MUEwMC1cXHUxQTE2XFx1MUEyMC1cXHUxQTU0XFx1MUFBN1xcdTFCMDUtXFx1MUIzM1xcdTFCNDUtXFx1MUI0QlxcdTFCODMtXFx1MUJBMFxcdTFCQUVcXHUxQkFGXFx1MUJCQS1cXHUxQkU1XFx1MUMwMC1cXHUxQzIzXFx1MUM0RC1cXHUxQzRGXFx1MUM1QS1cXHUxQzdEXFx1MUM4MC1cXHUxQzg4XFx1MUNFOS1cXHUxQ0VDXFx1MUNFRS1cXHUxQ0YxXFx1MUNGNVxcdTFDRjZcXHUxRDAwLVxcdTFEQkZcXHUxRTAwLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE2MC1cXHUyMTg4XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyRTJGXFx1MzAwNS1cXHUzMDA3XFx1MzAyMS1cXHUzMDI5XFx1MzAzMS1cXHUzMDM1XFx1MzAzOC1cXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5RC1cXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGQy1cXHUzMEZGXFx1MzEwNS1cXHUzMTJFXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkVBXFx1QTAwMC1cXHVBNDhDXFx1QTREMC1cXHVBNEZEXFx1QTUwMC1cXHVBNjBDXFx1QTYxMC1cXHVBNjFGXFx1QTYyQVxcdUE2MkJcXHVBNjQwLVxcdUE2NkVcXHVBNjdGLVxcdUE2OURcXHVBNkEwLVxcdUE2RUZcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3QUVcXHVBN0IwLVxcdUE3QjdcXHVBN0Y3LVxcdUE4MDFcXHVBODAzLVxcdUE4MDVcXHVBODA3LVxcdUE4MEFcXHVBODBDLVxcdUE4MjJcXHVBODQwLVxcdUE4NzNcXHVBODgyLVxcdUE4QjNcXHVBOEYyLVxcdUE4RjdcXHVBOEZCXFx1QThGRFxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBOUUwLVxcdUE5RTRcXHVBOUU2LVxcdUE5RUZcXHVBOUZBLVxcdUE5RkVcXHVBQTAwLVxcdUFBMjhcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE3RS1cXHVBQUFGXFx1QUFCMVxcdUFBQjVcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNjVcXHVBQjcwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdfFxcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERDQwLVxcdURENzRcXHVERTgwLVxcdURFOUNcXHVERUEwLVxcdURFRDBcXHVERjAwLVxcdURGMUZcXHVERjJELVxcdURGNEFcXHVERjUwLVxcdURGNzVcXHVERjgwLVxcdURGOURcXHVERkEwLVxcdURGQzNcXHVERkM4LVxcdURGQ0ZcXHVERkQxLVxcdURGRDVdfFxcdUQ4MDFbXFx1REMwMC1cXHVEQzlEXFx1RENCMC1cXHVEQ0QzXFx1RENEOC1cXHVEQ0ZCXFx1REQwMC1cXHVERDI3XFx1REQzMC1cXHVERDYzXFx1REUwMC1cXHVERjM2XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjY3XXxcXHVEODAyW1xcdURDMDAtXFx1REMwNVxcdURDMDhcXHVEQzBBLVxcdURDMzVcXHVEQzM3XFx1REMzOFxcdURDM0NcXHVEQzNGLVxcdURDNTVcXHVEQzYwLVxcdURDNzZcXHVEQzgwLVxcdURDOUVcXHVEQ0UwLVxcdURDRjJcXHVEQ0Y0XFx1RENGNVxcdUREMDAtXFx1REQxNVxcdUREMjAtXFx1REQzOVxcdUREODAtXFx1RERCN1xcdUREQkVcXHVEREJGXFx1REUwMFxcdURFMTAtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzM1xcdURFNjAtXFx1REU3Q1xcdURFODAtXFx1REU5Q1xcdURFQzAtXFx1REVDN1xcdURFQzktXFx1REVFNFxcdURGMDAtXFx1REYzNVxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY3MlxcdURGODAtXFx1REY5MV18XFx1RDgwM1tcXHVEQzAwLVxcdURDNDhcXHVEQzgwLVxcdURDQjJcXHVEQ0MwLVxcdURDRjJdfFxcdUQ4MDRbXFx1REMwMy1cXHVEQzM3XFx1REM4My1cXHVEQ0FGXFx1RENEMC1cXHVEQ0U4XFx1REQwMy1cXHVERDI2XFx1REQ1MC1cXHVERDcyXFx1REQ3NlxcdUREODMtXFx1RERCMlxcdUREQzEtXFx1RERDNFxcdUREREFcXHVERERDXFx1REUwMC1cXHVERTExXFx1REUxMy1cXHVERTJCXFx1REU4MC1cXHVERTg2XFx1REU4OFxcdURFOEEtXFx1REU4RFxcdURFOEYtXFx1REU5RFxcdURFOUYtXFx1REVBOFxcdURFQjAtXFx1REVERVxcdURGMDUtXFx1REYwQ1xcdURGMEZcXHVERjEwXFx1REYxMy1cXHVERjI4XFx1REYyQS1cXHVERjMwXFx1REYzMlxcdURGMzNcXHVERjM1LVxcdURGMzlcXHVERjNEXFx1REY1MFxcdURGNUQtXFx1REY2MV18XFx1RDgwNVtcXHVEQzAwLVxcdURDMzRcXHVEQzQ3LVxcdURDNEFcXHVEQzgwLVxcdURDQUZcXHVEQ0M0XFx1RENDNVxcdURDQzdcXHVERDgwLVxcdUREQUVcXHVEREQ4LVxcdUREREJcXHVERTAwLVxcdURFMkZcXHVERTQ0XFx1REU4MC1cXHVERUFBXFx1REYwMC1cXHVERjE5XXxcXHVEODA2W1xcdURDQTAtXFx1RENERlxcdURDRkZcXHVERTAwXFx1REUwQi1cXHVERTMyXFx1REUzQVxcdURFNTBcXHVERTVDLVxcdURFODNcXHVERTg2LVxcdURFODlcXHVERUMwLVxcdURFRjhdfFxcdUQ4MDdbXFx1REMwMC1cXHVEQzA4XFx1REMwQS1cXHVEQzJFXFx1REM0MFxcdURDNzItXFx1REM4RlxcdUREMDAtXFx1REQwNlxcdUREMDhcXHVERDA5XFx1REQwQi1cXHVERDMwXFx1REQ0Nl18XFx1RDgwOFtcXHVEQzAwLVxcdURGOTldfFxcdUQ4MDlbXFx1REMwMC1cXHVEQzZFXFx1REM4MC1cXHVERDQzXXxbXFx1RDgwQ1xcdUQ4MUMtXFx1RDgyMFxcdUQ4NDAtXFx1RDg2OFxcdUQ4NkEtXFx1RDg2Q1xcdUQ4NkYtXFx1RDg3MlxcdUQ4NzQtXFx1RDg3OV1bXFx1REMwMC1cXHVERkZGXXxcXHVEODBEW1xcdURDMDAtXFx1REMyRV18XFx1RDgxMVtcXHVEQzAwLVxcdURFNDZdfFxcdUQ4MUFbXFx1REMwMC1cXHVERTM4XFx1REU0MC1cXHVERTVFXFx1REVEMC1cXHVERUVEXFx1REYwMC1cXHVERjJGXFx1REY0MC1cXHVERjQzXFx1REY2My1cXHVERjc3XFx1REY3RC1cXHVERjhGXXxcXHVEODFCW1xcdURGMDAtXFx1REY0NFxcdURGNTBcXHVERjkzLVxcdURGOUZcXHVERkUwXFx1REZFMV18XFx1RDgyMVtcXHVEQzAwLVxcdURGRUNdfFxcdUQ4MjJbXFx1REMwMC1cXHVERUYyXXxcXHVEODJDW1xcdURDMDAtXFx1REQxRVxcdURENzAtXFx1REVGQl18XFx1RDgyRltcXHVEQzAwLVxcdURDNkFcXHVEQzcwLVxcdURDN0NcXHVEQzgwLVxcdURDODhcXHVEQzkwLVxcdURDOTldfFxcdUQ4MzVbXFx1REMwMC1cXHVEQzU0XFx1REM1Ni1cXHVEQzlDXFx1REM5RVxcdURDOUZcXHVEQ0EyXFx1RENBNVxcdURDQTZcXHVEQ0E5LVxcdURDQUNcXHVEQ0FFLVxcdURDQjlcXHVEQ0JCXFx1RENCRC1cXHVEQ0MzXFx1RENDNS1cXHVERDA1XFx1REQwNy1cXHVERDBBXFx1REQwRC1cXHVERDE0XFx1REQxNi1cXHVERDFDXFx1REQxRS1cXHVERDM5XFx1REQzQi1cXHVERDNFXFx1REQ0MC1cXHVERDQ0XFx1REQ0NlxcdURENEEtXFx1REQ1MFxcdURENTItXFx1REVBNVxcdURFQTgtXFx1REVDMFxcdURFQzItXFx1REVEQVxcdURFREMtXFx1REVGQVxcdURFRkMtXFx1REYxNFxcdURGMTYtXFx1REYzNFxcdURGMzYtXFx1REY0RVxcdURGNTAtXFx1REY2RVxcdURGNzAtXFx1REY4OFxcdURGOEEtXFx1REZBOFxcdURGQUEtXFx1REZDMlxcdURGQzQtXFx1REZDQl18XFx1RDgzQVtcXHVEQzAwLVxcdURDQzRcXHVERDAwLVxcdURENDNdfFxcdUQ4M0JbXFx1REUwMC1cXHVERTAzXFx1REUwNS1cXHVERTFGXFx1REUyMVxcdURFMjJcXHVERTI0XFx1REUyN1xcdURFMjktXFx1REUzMlxcdURFMzQtXFx1REUzN1xcdURFMzlcXHVERTNCXFx1REU0MlxcdURFNDdcXHVERTQ5XFx1REU0QlxcdURFNEQtXFx1REU0RlxcdURFNTFcXHVERTUyXFx1REU1NFxcdURFNTdcXHVERTU5XFx1REU1QlxcdURFNURcXHVERTVGXFx1REU2MVxcdURFNjJcXHVERTY0XFx1REU2Ny1cXHVERTZBXFx1REU2Qy1cXHVERTcyXFx1REU3NC1cXHVERTc3XFx1REU3OS1cXHVERTdDXFx1REU3RVxcdURFODAtXFx1REU4OVxcdURFOEItXFx1REU5QlxcdURFQTEtXFx1REVBM1xcdURFQTUtXFx1REVBOVxcdURFQUItXFx1REVCQl18XFx1RDg2OVtcXHVEQzAwLVxcdURFRDZcXHVERjAwLVxcdURGRkZdfFxcdUQ4NkRbXFx1REMwMC1cXHVERjM0XFx1REY0MC1cXHVERkZGXXxcXHVEODZFW1xcdURDMDAtXFx1REMxRFxcdURDMjAtXFx1REZGRl18XFx1RDg3M1tcXHVEQzAwLVxcdURFQTFcXHVERUIwLVxcdURGRkZdfFxcdUQ4N0FbXFx1REMwMC1cXHVERkUwXXxcXHVEODdFW1xcdURDMDAtXFx1REUxRF0vO1xuXHR2YXIgSURfQ29udGludWUgPSAvW1xceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzAwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0ODMtXFx1MDQ4N1xcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYxLVxcdTA1ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNUQwLVxcdTA1RUFcXHUwNUYwLVxcdTA1RjJcXHUwNjEwLVxcdTA2MUFcXHUwNjIwLVxcdTA2NjlcXHUwNjZFLVxcdTA2RDNcXHUwNkQ1LVxcdTA2RENcXHUwNkRGLVxcdTA2RThcXHUwNkVBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMC1cXHUwNzRBXFx1MDc0RC1cXHUwN0IxXFx1MDdDMC1cXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgyRFxcdTA4NDAtXFx1MDg1QlxcdTA4NjAtXFx1MDg2QVxcdTA4QTAtXFx1MDhCNFxcdTA4QjYtXFx1MDhCRFxcdTA4RDQtXFx1MDhFMVxcdTA4RTMtXFx1MDk2M1xcdTA5NjYtXFx1MDk2RlxcdTA5NzEtXFx1MDk4M1xcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkMtXFx1MDlDNFxcdTA5QzdcXHUwOUM4XFx1MDlDQi1cXHUwOUNFXFx1MDlEN1xcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUzXFx1MDlFNi1cXHUwOUYxXFx1MDlGQ1xcdTBBMDEtXFx1MEEwM1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEEzQ1xcdTBBM0UtXFx1MEE0MlxcdTBBNDdcXHUwQTQ4XFx1MEE0Qi1cXHUwQTREXFx1MEE1MVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTY2LVxcdTBBNzVcXHUwQTgxLVxcdTBBODNcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkMtXFx1MEFDNVxcdTBBQzctXFx1MEFDOVxcdTBBQ0ItXFx1MEFDRFxcdTBBRDBcXHUwQUUwLVxcdTBBRTNcXHUwQUU2LVxcdTBBRUZcXHUwQUY5LVxcdTBBRkZcXHUwQjAxLVxcdTBCMDNcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzQy1cXHUwQjQ0XFx1MEI0N1xcdTBCNDhcXHUwQjRCLVxcdTBCNERcXHUwQjU2XFx1MEI1N1xcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYzXFx1MEI2Ni1cXHUwQjZGXFx1MEI3MVxcdTBCODJcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCQkUtXFx1MEJDMlxcdTBCQzYtXFx1MEJDOFxcdTBCQ0EtXFx1MEJDRFxcdTBCRDBcXHUwQkQ3XFx1MEJFNi1cXHUwQkVGXFx1MEMwMC1cXHUwQzAzXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRC1cXHUwQzQ0XFx1MEM0Ni1cXHUwQzQ4XFx1MEM0QS1cXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQzU4LVxcdTBDNUFcXHUwQzYwLVxcdTBDNjNcXHUwQzY2LVxcdTBDNkZcXHUwQzgwLVxcdTBDODNcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JDLVxcdTBDQzRcXHUwQ0M2LVxcdTBDQzhcXHUwQ0NBLVxcdTBDQ0RcXHUwQ0Q1XFx1MENENlxcdTBDREVcXHUwQ0UwLVxcdTBDRTNcXHUwQ0U2LVxcdTBDRUZcXHUwQ0YxXFx1MENGMlxcdTBEMDAtXFx1MEQwM1xcdTBEMDUtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQ0NFxcdTBENDYtXFx1MEQ0OFxcdTBENEEtXFx1MEQ0RVxcdTBENTQtXFx1MEQ1N1xcdTBENUYtXFx1MEQ2M1xcdTBENjYtXFx1MEQ2RlxcdTBEN0EtXFx1MEQ3RlxcdTBEODJcXHUwRDgzXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBEQ0FcXHUwRENGLVxcdTBERDRcXHUwREQ2XFx1MEREOC1cXHUwRERGXFx1MERFNi1cXHUwREVGXFx1MERGMlxcdTBERjNcXHUwRTAxLVxcdTBFM0FcXHUwRTQwLVxcdTBFNEVcXHUwRTUwLVxcdTBFNTlcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCOVxcdTBFQkItXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRUM4LVxcdTBFQ0RcXHUwRUQwLVxcdTBFRDlcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEYxOFxcdTBGMTlcXHUwRjIwLVxcdTBGMjlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjNFLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjcxLVxcdTBGODRcXHUwRjg2LVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAwMC1cXHUxMDQ5XFx1MTA1MC1cXHUxMDlEXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzNUQtXFx1MTM1RlxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxNFxcdTE3MjAtXFx1MTczNFxcdTE3NDAtXFx1MTc1M1xcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3NzJcXHUxNzczXFx1MTc4MC1cXHUxN0QzXFx1MTdEN1xcdTE3RENcXHUxN0REXFx1MTdFMC1cXHUxN0U5XFx1MTgwQi1cXHUxODBEXFx1MTgxMC1cXHUxODE5XFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTkyMC1cXHUxOTJCXFx1MTkzMC1cXHUxOTNCXFx1MTk0Ni1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MTlEMC1cXHUxOUQ5XFx1MUEwMC1cXHUxQTFCXFx1MUEyMC1cXHUxQTVFXFx1MUE2MC1cXHUxQTdDXFx1MUE3Ri1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUFBN1xcdTFBQjAtXFx1MUFCRFxcdTFCMDAtXFx1MUI0QlxcdTFCNTAtXFx1MUI1OVxcdTFCNkItXFx1MUI3M1xcdTFCODAtXFx1MUJGM1xcdTFDMDAtXFx1MUMzN1xcdTFDNDAtXFx1MUM0OVxcdTFDNEQtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDRDAtXFx1MUNEMlxcdTFDRDQtXFx1MUNGOVxcdTFEMDAtXFx1MURGOVxcdTFERkItXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDNGXFx1MjA0MFxcdTIwNTRcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRjBcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE2MC1cXHUyMTg4XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ3Ri1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkRFMC1cXHUyREZGXFx1MkUyRlxcdTMwMDUtXFx1MzAwN1xcdTMwMjEtXFx1MzAyRlxcdTMwMzEtXFx1MzAzNVxcdTMwMzgtXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOTlcXHUzMDlBXFx1MzA5RC1cXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGQy1cXHUzMEZGXFx1MzEwNS1cXHUzMTJFXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkVBXFx1QTAwMC1cXHVBNDhDXFx1QTREMC1cXHVBNEZEXFx1QTUwMC1cXHVBNjBDXFx1QTYxMC1cXHVBNjJCXFx1QTY0MC1cXHVBNjZGXFx1QTY3NC1cXHVBNjdEXFx1QTY3Ri1cXHVBNkYxXFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0FFXFx1QTdCMC1cXHVBN0I3XFx1QTdGNy1cXHVBODI3XFx1QTg0MC1cXHVBODczXFx1QTg4MC1cXHVBOEM1XFx1QThEMC1cXHVBOEQ5XFx1QThFMC1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOTAwLVxcdUE5MkRcXHVBOTMwLVxcdUE5NTNcXHVBOTYwLVxcdUE5N0NcXHVBOTgwLVxcdUE5QzBcXHVBOUNGLVxcdUE5RDlcXHVBOUUwLVxcdUE5RkVcXHVBQTAwLVxcdUFBMzZcXHVBQTQwLVxcdUFBNERcXHVBQTUwLVxcdUFBNTlcXHVBQTYwLVxcdUFBNzZcXHVBQTdBLVxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUZcXHVBQUYyLVxcdUFBRjZcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNjVcXHVBQjcwLVxcdUFCRUFcXHVBQkVDXFx1QUJFRFxcdUFCRjAtXFx1QUJGOVxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMUQtXFx1RkIyOFxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZCXFx1RkUwMC1cXHVGRTBGXFx1RkUyMC1cXHVGRTJGXFx1RkUzM1xcdUZFMzRcXHVGRTRELVxcdUZFNEZcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjEwLVxcdUZGMTlcXHVGRjIxLVxcdUZGM0FcXHVGRjNGXFx1RkY0MS1cXHVGRjVBXFx1RkY2Ni1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDXXxcXHVEODAwW1xcdURDMDAtXFx1REMwQlxcdURDMEQtXFx1REMyNlxcdURDMjgtXFx1REMzQVxcdURDM0NcXHVEQzNEXFx1REMzRi1cXHVEQzREXFx1REM1MC1cXHVEQzVEXFx1REM4MC1cXHVEQ0ZBXFx1REQ0MC1cXHVERDc0XFx1RERGRFxcdURFODAtXFx1REU5Q1xcdURFQTAtXFx1REVEMFxcdURFRTBcXHVERjAwLVxcdURGMUZcXHVERjJELVxcdURGNEFcXHVERjUwLVxcdURGN0FcXHVERjgwLVxcdURGOURcXHVERkEwLVxcdURGQzNcXHVERkM4LVxcdURGQ0ZcXHVERkQxLVxcdURGRDVdfFxcdUQ4MDFbXFx1REMwMC1cXHVEQzlEXFx1RENBMC1cXHVEQ0E5XFx1RENCMC1cXHVEQ0QzXFx1RENEOC1cXHVEQ0ZCXFx1REQwMC1cXHVERDI3XFx1REQzMC1cXHVERDYzXFx1REUwMC1cXHVERjM2XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjY3XXxcXHVEODAyW1xcdURDMDAtXFx1REMwNVxcdURDMDhcXHVEQzBBLVxcdURDMzVcXHVEQzM3XFx1REMzOFxcdURDM0NcXHVEQzNGLVxcdURDNTVcXHVEQzYwLVxcdURDNzZcXHVEQzgwLVxcdURDOUVcXHVEQ0UwLVxcdURDRjJcXHVEQ0Y0XFx1RENGNVxcdUREMDAtXFx1REQxNVxcdUREMjAtXFx1REQzOVxcdUREODAtXFx1RERCN1xcdUREQkVcXHVEREJGXFx1REUwMC1cXHVERTAzXFx1REUwNVxcdURFMDZcXHVERTBDLVxcdURFMTNcXHVERTE1LVxcdURFMTdcXHVERTE5LVxcdURFMzNcXHVERTM4LVxcdURFM0FcXHVERTNGXFx1REU2MC1cXHVERTdDXFx1REU4MC1cXHVERTlDXFx1REVDMC1cXHVERUM3XFx1REVDOS1cXHVERUU2XFx1REYwMC1cXHVERjM1XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjcyXFx1REY4MC1cXHVERjkxXXxcXHVEODAzW1xcdURDMDAtXFx1REM0OFxcdURDODAtXFx1RENCMlxcdURDQzAtXFx1RENGMl18XFx1RDgwNFtcXHVEQzAwLVxcdURDNDZcXHVEQzY2LVxcdURDNkZcXHVEQzdGLVxcdURDQkFcXHVEQ0QwLVxcdURDRThcXHVEQ0YwLVxcdURDRjlcXHVERDAwLVxcdUREMzRcXHVERDM2LVxcdUREM0ZcXHVERDUwLVxcdURENzNcXHVERDc2XFx1REQ4MC1cXHVEREM0XFx1RERDQS1cXHVERENDXFx1REREMC1cXHVERERBXFx1REREQ1xcdURFMDAtXFx1REUxMVxcdURFMTMtXFx1REUzN1xcdURFM0VcXHVERTgwLVxcdURFODZcXHVERTg4XFx1REU4QS1cXHVERThEXFx1REU4Ri1cXHVERTlEXFx1REU5Ri1cXHVERUE4XFx1REVCMC1cXHVERUVBXFx1REVGMC1cXHVERUY5XFx1REYwMC1cXHVERjAzXFx1REYwNS1cXHVERjBDXFx1REYwRlxcdURGMTBcXHVERjEzLVxcdURGMjhcXHVERjJBLVxcdURGMzBcXHVERjMyXFx1REYzM1xcdURGMzUtXFx1REYzOVxcdURGM0MtXFx1REY0NFxcdURGNDdcXHVERjQ4XFx1REY0Qi1cXHVERjREXFx1REY1MFxcdURGNTdcXHVERjVELVxcdURGNjNcXHVERjY2LVxcdURGNkNcXHVERjcwLVxcdURGNzRdfFxcdUQ4MDVbXFx1REMwMC1cXHVEQzRBXFx1REM1MC1cXHVEQzU5XFx1REM4MC1cXHVEQ0M1XFx1RENDN1xcdURDRDAtXFx1RENEOVxcdUREODAtXFx1RERCNVxcdUREQjgtXFx1RERDMFxcdURERDgtXFx1RERERFxcdURFMDAtXFx1REU0MFxcdURFNDRcXHVERTUwLVxcdURFNTlcXHVERTgwLVxcdURFQjdcXHVERUMwLVxcdURFQzlcXHVERjAwLVxcdURGMTlcXHVERjFELVxcdURGMkJcXHVERjMwLVxcdURGMzldfFxcdUQ4MDZbXFx1RENBMC1cXHVEQ0U5XFx1RENGRlxcdURFMDAtXFx1REUzRVxcdURFNDdcXHVERTUwLVxcdURFODNcXHVERTg2LVxcdURFOTlcXHVERUMwLVxcdURFRjhdfFxcdUQ4MDdbXFx1REMwMC1cXHVEQzA4XFx1REMwQS1cXHVEQzM2XFx1REMzOC1cXHVEQzQwXFx1REM1MC1cXHVEQzU5XFx1REM3Mi1cXHVEQzhGXFx1REM5Mi1cXHVEQ0E3XFx1RENBOS1cXHVEQ0I2XFx1REQwMC1cXHVERDA2XFx1REQwOFxcdUREMDlcXHVERDBCLVxcdUREMzZcXHVERDNBXFx1REQzQ1xcdUREM0RcXHVERDNGLVxcdURENDdcXHVERDUwLVxcdURENTldfFxcdUQ4MDhbXFx1REMwMC1cXHVERjk5XXxcXHVEODA5W1xcdURDMDAtXFx1REM2RVxcdURDODAtXFx1REQ0M118W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzldW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkVdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFNjAtXFx1REU2OVxcdURFRDAtXFx1REVFRFxcdURFRjAtXFx1REVGNFxcdURGMDAtXFx1REYzNlxcdURGNDAtXFx1REY0M1xcdURGNTAtXFx1REY1OVxcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERjAwLVxcdURGNDRcXHVERjUwLVxcdURGN0VcXHVERjhGLVxcdURGOUZcXHVERkUwXFx1REZFMV18XFx1RDgyMVtcXHVEQzAwLVxcdURGRUNdfFxcdUQ4MjJbXFx1REMwMC1cXHVERUYyXXxcXHVEODJDW1xcdURDMDAtXFx1REQxRVxcdURENzAtXFx1REVGQl18XFx1RDgyRltcXHVEQzAwLVxcdURDNkFcXHVEQzcwLVxcdURDN0NcXHVEQzgwLVxcdURDODhcXHVEQzkwLVxcdURDOTlcXHVEQzlEXFx1REM5RV18XFx1RDgzNFtcXHVERDY1LVxcdURENjlcXHVERDZELVxcdURENzJcXHVERDdCLVxcdUREODJcXHVERDg1LVxcdUREOEJcXHVEREFBLVxcdUREQURcXHVERTQyLVxcdURFNDRdfFxcdUQ4MzVbXFx1REMwMC1cXHVEQzU0XFx1REM1Ni1cXHVEQzlDXFx1REM5RVxcdURDOUZcXHVEQ0EyXFx1RENBNVxcdURDQTZcXHVEQ0E5LVxcdURDQUNcXHVEQ0FFLVxcdURDQjlcXHVEQ0JCXFx1RENCRC1cXHVEQ0MzXFx1RENDNS1cXHVERDA1XFx1REQwNy1cXHVERDBBXFx1REQwRC1cXHVERDE0XFx1REQxNi1cXHVERDFDXFx1REQxRS1cXHVERDM5XFx1REQzQi1cXHVERDNFXFx1REQ0MC1cXHVERDQ0XFx1REQ0NlxcdURENEEtXFx1REQ1MFxcdURENTItXFx1REVBNVxcdURFQTgtXFx1REVDMFxcdURFQzItXFx1REVEQVxcdURFREMtXFx1REVGQVxcdURFRkMtXFx1REYxNFxcdURGMTYtXFx1REYzNFxcdURGMzYtXFx1REY0RVxcdURGNTAtXFx1REY2RVxcdURGNzAtXFx1REY4OFxcdURGOEEtXFx1REZBOFxcdURGQUEtXFx1REZDMlxcdURGQzQtXFx1REZDQlxcdURGQ0UtXFx1REZGRl18XFx1RDgzNltcXHVERTAwLVxcdURFMzZcXHVERTNCLVxcdURFNkNcXHVERTc1XFx1REU4NFxcdURFOUItXFx1REU5RlxcdURFQTEtXFx1REVBRl18XFx1RDgzOFtcXHVEQzAwLVxcdURDMDZcXHVEQzA4LVxcdURDMThcXHVEQzFCLVxcdURDMjFcXHVEQzIzXFx1REMyNFxcdURDMjYtXFx1REMyQV18XFx1RDgzQVtcXHVEQzAwLVxcdURDQzRcXHVEQ0QwLVxcdURDRDZcXHVERDAwLVxcdURENEFcXHVERDUwLVxcdURENTldfFxcdUQ4M0JbXFx1REUwMC1cXHVERTAzXFx1REUwNS1cXHVERTFGXFx1REUyMVxcdURFMjJcXHVERTI0XFx1REUyN1xcdURFMjktXFx1REUzMlxcdURFMzQtXFx1REUzN1xcdURFMzlcXHVERTNCXFx1REU0MlxcdURFNDdcXHVERTQ5XFx1REU0QlxcdURFNEQtXFx1REU0RlxcdURFNTFcXHVERTUyXFx1REU1NFxcdURFNTdcXHVERTU5XFx1REU1QlxcdURFNURcXHVERTVGXFx1REU2MVxcdURFNjJcXHVERTY0XFx1REU2Ny1cXHVERTZBXFx1REU2Qy1cXHVERTcyXFx1REU3NC1cXHVERTc3XFx1REU3OS1cXHVERTdDXFx1REU3RVxcdURFODAtXFx1REU4OVxcdURFOEItXFx1REU5QlxcdURFQTEtXFx1REVBM1xcdURFQTUtXFx1REVBOVxcdURFQUItXFx1REVCQl18XFx1RDg2OVtcXHVEQzAwLVxcdURFRDZcXHVERjAwLVxcdURGRkZdfFxcdUQ4NkRbXFx1REMwMC1cXHVERjM0XFx1REY0MC1cXHVERkZGXXxcXHVEODZFW1xcdURDMDAtXFx1REMxRFxcdURDMjAtXFx1REZGRl18XFx1RDg3M1tcXHVEQzAwLVxcdURFQTFcXHVERUIwLVxcdURGRkZdfFxcdUQ4N0FbXFx1REMwMC1cXHVERkUwXXxcXHVEODdFW1xcdURDMDAtXFx1REUxRF18XFx1REI0MFtcXHVERDAwLVxcdURERUZdLztcblxuXHR2YXIgdW5pY29kZSA9IHtcblx0XHRTcGFjZV9TZXBhcmF0b3I6IFNwYWNlX1NlcGFyYXRvcixcblx0XHRJRF9TdGFydDogSURfU3RhcnQsXG5cdFx0SURfQ29udGludWU6IElEX0NvbnRpbnVlXG5cdH07XG5cblx0dmFyIHV0aWwgPSB7XG5cdCAgICBpc1NwYWNlU2VwYXJhdG9yOiBmdW5jdGlvbiBpc1NwYWNlU2VwYXJhdG9yIChjKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSAnc3RyaW5nJyAmJiB1bmljb2RlLlNwYWNlX1NlcGFyYXRvci50ZXN0KGMpXG5cdCAgICB9LFxuXG5cdCAgICBpc0lkU3RhcnRDaGFyOiBmdW5jdGlvbiBpc0lkU3RhcnRDaGFyIChjKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSAnc3RyaW5nJyAmJiAoXG5cdCAgICAgICAgICAgIChjID49ICdhJyAmJiBjIDw9ICd6JykgfHxcblx0ICAgICAgICAoYyA+PSAnQScgJiYgYyA8PSAnWicpIHx8XG5cdCAgICAgICAgKGMgPT09ICckJykgfHwgKGMgPT09ICdfJykgfHxcblx0ICAgICAgICB1bmljb2RlLklEX1N0YXJ0LnRlc3QoYylcblx0ICAgICAgICApXG5cdCAgICB9LFxuXG5cdCAgICBpc0lkQ29udGludWVDaGFyOiBmdW5jdGlvbiBpc0lkQ29udGludWVDaGFyIChjKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSAnc3RyaW5nJyAmJiAoXG5cdCAgICAgICAgICAgIChjID49ICdhJyAmJiBjIDw9ICd6JykgfHxcblx0ICAgICAgICAoYyA+PSAnQScgJiYgYyA8PSAnWicpIHx8XG5cdCAgICAgICAgKGMgPj0gJzAnICYmIGMgPD0gJzknKSB8fFxuXHQgICAgICAgIChjID09PSAnJCcpIHx8IChjID09PSAnXycpIHx8XG5cdCAgICAgICAgKGMgPT09ICdcXHUyMDBDJykgfHwgKGMgPT09ICdcXHUyMDBEJykgfHxcblx0ICAgICAgICB1bmljb2RlLklEX0NvbnRpbnVlLnRlc3QoYylcblx0ICAgICAgICApXG5cdCAgICB9LFxuXG5cdCAgICBpc0RpZ2l0OiBmdW5jdGlvbiBpc0RpZ2l0IChjKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSAnc3RyaW5nJyAmJiAvWzAtOV0vLnRlc3QoYylcblx0ICAgIH0sXG5cblx0ICAgIGlzSGV4RGlnaXQ6IGZ1bmN0aW9uIGlzSGV4RGlnaXQgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIC9bMC05QS1GYS1mXS8udGVzdChjKVxuXHQgICAgfSxcblx0fTtcblxuXHR2YXIgc291cmNlO1xuXHR2YXIgcGFyc2VTdGF0ZTtcblx0dmFyIHN0YWNrO1xuXHR2YXIgcG9zO1xuXHR2YXIgbGluZTtcblx0dmFyIGNvbHVtbjtcblx0dmFyIHRva2VuO1xuXHR2YXIga2V5O1xuXHR2YXIgcm9vdDtcblxuXHR2YXIgcGFyc2UgPSBmdW5jdGlvbiBwYXJzZSAodGV4dCwgcmV2aXZlcikge1xuXHQgICAgc291cmNlID0gU3RyaW5nKHRleHQpO1xuXHQgICAgcGFyc2VTdGF0ZSA9ICdzdGFydCc7XG5cdCAgICBzdGFjayA9IFtdO1xuXHQgICAgcG9zID0gMDtcblx0ICAgIGxpbmUgPSAxO1xuXHQgICAgY29sdW1uID0gMDtcblx0ICAgIHRva2VuID0gdW5kZWZpbmVkO1xuXHQgICAga2V5ID0gdW5kZWZpbmVkO1xuXHQgICAgcm9vdCA9IHVuZGVmaW5lZDtcblxuXHQgICAgZG8ge1xuXHQgICAgICAgIHRva2VuID0gbGV4KCk7XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdCAgICAgICAgLy8gaWYgKCFwYXJzZVN0YXRlc1twYXJzZVN0YXRlXSkge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkUGFyc2VTdGF0ZSgpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgcGFyc2VTdGF0ZXNbcGFyc2VTdGF0ZV0oKTtcblx0ICAgIH0gd2hpbGUgKHRva2VuLnR5cGUgIT09ICdlb2YnKVxuXG5cdCAgICBpZiAodHlwZW9mIHJldml2ZXIgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICByZXR1cm4gaW50ZXJuYWxpemUoeycnOiByb290fSwgJycsIHJldml2ZXIpXG5cdCAgICB9XG5cblx0ICAgIHJldHVybiByb290XG5cdH07XG5cblx0ZnVuY3Rpb24gaW50ZXJuYWxpemUgKGhvbGRlciwgbmFtZSwgcmV2aXZlcikge1xuXHQgICAgdmFyIHZhbHVlID0gaG9sZGVyW25hbWVdO1xuXHQgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuXHQgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIga2V5ID0gU3RyaW5nKGkpO1xuXHQgICAgICAgICAgICAgICAgdmFyIHJlcGxhY2VtZW50ID0gaW50ZXJuYWxpemUodmFsdWUsIGtleSwgcmV2aXZlcik7XG5cdCAgICAgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtrZXldO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsdWUsIGtleSwge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVwbGFjZW1lbnQsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgfSk7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBmb3IgKHZhciBrZXkkMSBpbiB2YWx1ZSkge1xuXHQgICAgICAgICAgICAgICAgdmFyIHJlcGxhY2VtZW50JDEgPSBpbnRlcm5hbGl6ZSh2YWx1ZSwga2V5JDEsIHJldml2ZXIpO1xuXHQgICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50JDEgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtrZXkkMV07XG5cdCAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwga2V5JDEsIHtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlcGxhY2VtZW50JDEsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgfSk7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiByZXZpdmVyLmNhbGwoaG9sZGVyLCBuYW1lLCB2YWx1ZSlcblx0fVxuXG5cdHZhciBsZXhTdGF0ZTtcblx0dmFyIGJ1ZmZlcjtcblx0dmFyIGRvdWJsZVF1b3RlO1xuXHR2YXIgc2lnbjtcblx0dmFyIGM7XG5cblx0ZnVuY3Rpb24gbGV4ICgpIHtcblx0ICAgIGxleFN0YXRlID0gJ2RlZmF1bHQnO1xuXHQgICAgYnVmZmVyID0gJyc7XG5cdCAgICBkb3VibGVRdW90ZSA9IGZhbHNlO1xuXHQgICAgc2lnbiA9IDE7XG5cblx0ICAgIGZvciAoOzspIHtcblx0ICAgICAgICBjID0gcGVlaygpO1xuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQgICAgICAgIC8vIGlmICghbGV4U3RhdGVzW2xleFN0YXRlXSkge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkTGV4U3RhdGUobGV4U3RhdGUpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgdmFyIHRva2VuID0gbGV4U3RhdGVzW2xleFN0YXRlXSgpO1xuXHQgICAgICAgIGlmICh0b2tlbikge1xuXHQgICAgICAgICAgICByZXR1cm4gdG9rZW5cblx0ICAgICAgICB9XG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiBwZWVrICgpIHtcblx0ICAgIGlmIChzb3VyY2VbcG9zXSkge1xuXHQgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChzb3VyY2UuY29kZVBvaW50QXQocG9zKSlcblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIHJlYWQgKCkge1xuXHQgICAgdmFyIGMgPSBwZWVrKCk7XG5cblx0ICAgIGlmIChjID09PSAnXFxuJykge1xuXHQgICAgICAgIGxpbmUrKztcblx0ICAgICAgICBjb2x1bW4gPSAwO1xuXHQgICAgfSBlbHNlIGlmIChjKSB7XG5cdCAgICAgICAgY29sdW1uICs9IGMubGVuZ3RoO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgICBjb2x1bW4rKztcblx0ICAgIH1cblxuXHQgICAgaWYgKGMpIHtcblx0ICAgICAgICBwb3MgKz0gYy5sZW5ndGg7XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBjXG5cdH1cblxuXHR2YXIgbGV4U3RhdGVzID0ge1xuXHQgICAgZGVmYXVsdDogZnVuY3Rpb24gZGVmYXVsdCQxICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdcXHQnOlxuXHQgICAgICAgIGNhc2UgJ1xcdic6XG5cdCAgICAgICAgY2FzZSAnXFxmJzpcblx0ICAgICAgICBjYXNlICcgJzpcblx0ICAgICAgICBjYXNlICdcXHUwMEEwJzpcblx0ICAgICAgICBjYXNlICdcXHVGRUZGJzpcblx0ICAgICAgICBjYXNlICdcXG4nOlxuXHQgICAgICAgIGNhc2UgJ1xccic6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOCc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOSc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcvJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdjb21tZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2VvZicpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNTcGFjZVNlcGFyYXRvcihjKSkge1xuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0ICAgICAgICAvLyBpZiAoIWxleFN0YXRlc1twYXJzZVN0YXRlXSkge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkTGV4U3RhdGUocGFyc2VTdGF0ZSlcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICByZXR1cm4gbGV4U3RhdGVzW3BhcnNlU3RhdGVdKClcblx0ICAgIH0sXG5cblx0ICAgIGNvbW1lbnQ6IGZ1bmN0aW9uIGNvbW1lbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyonOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ211bHRpTGluZUNvbW1lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJy8nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3NpbmdsZUxpbmVDb21tZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgbXVsdGlMaW5lQ29tbWVudDogZnVuY3Rpb24gbXVsdGlMaW5lQ29tbWVudCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnKic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnbXVsdGlMaW5lQ29tbWVudEFzdGVyaXNrJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgIH0sXG5cblx0ICAgIG11bHRpTGluZUNvbW1lbnRBc3RlcmlzazogZnVuY3Rpb24gbXVsdGlMaW5lQ29tbWVudEFzdGVyaXNrICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcqJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJy8nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlZmF1bHQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIGxleFN0YXRlID0gJ211bHRpTGluZUNvbW1lbnQnO1xuXHQgICAgfSxcblxuXHQgICAgc2luZ2xlTGluZUNvbW1lbnQ6IGZ1bmN0aW9uIHNpbmdsZUxpbmVDb21tZW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdcXG4nOlxuXHQgICAgICAgIGNhc2UgJ1xccic6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOCc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOSc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVmYXVsdCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdlb2YnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgIH0sXG5cblx0ICAgIHZhbHVlOiBmdW5jdGlvbiB2YWx1ZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAneyc6XG5cdCAgICAgICAgY2FzZSAnWyc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblxuXHQgICAgICAgIGNhc2UgJ24nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ3VsbCcpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bGwnLCBudWxsKVxuXG5cdCAgICAgICAgY2FzZSAndCc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgncnVlJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignYm9vbGVhbicsIHRydWUpXG5cblx0ICAgICAgICBjYXNlICdmJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCdhbHNlJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignYm9vbGVhbicsIGZhbHNlKVxuXG5cdCAgICAgICAgY2FzZSAnLSc6XG5cdCAgICAgICAgY2FzZSAnKyc6XG5cdCAgICAgICAgICAgIGlmIChyZWFkKCkgPT09ICctJykge1xuXHQgICAgICAgICAgICAgICAgc2lnbiA9IC0xO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnc2lnbic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnLic6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbFBvaW50TGVhZGluZyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnMCc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnemVybyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnMSc6XG5cdCAgICAgICAgY2FzZSAnMic6XG5cdCAgICAgICAgY2FzZSAnMyc6XG5cdCAgICAgICAgY2FzZSAnNCc6XG5cdCAgICAgICAgY2FzZSAnNSc6XG5cdCAgICAgICAgY2FzZSAnNic6XG5cdCAgICAgICAgY2FzZSAnNyc6XG5cdCAgICAgICAgY2FzZSAnOCc6XG5cdCAgICAgICAgY2FzZSAnOSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEludGVnZXInO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ0knOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ25maW5pdHknKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgSW5maW5pdHkpXG5cblx0ICAgICAgICBjYXNlICdOJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCdhTicpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBOYU4pXG5cblx0ICAgICAgICBjYXNlICdcIic6XG5cdCAgICAgICAgY2FzZSBcIidcIjpcblx0ICAgICAgICAgICAgZG91YmxlUXVvdGUgPSAocmVhZCgpID09PSAnXCInKTtcblx0ICAgICAgICAgICAgYnVmZmVyID0gJyc7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3N0cmluZyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGlkZW50aWZpZXJOYW1lU3RhcnRFc2NhcGU6IGZ1bmN0aW9uIGlkZW50aWZpZXJOYW1lU3RhcnRFc2NhcGUgKCkge1xuXHQgICAgICAgIGlmIChjICE9PSAndScpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICB2YXIgdSA9IHVuaWNvZGVFc2NhcGUoKTtcblx0ICAgICAgICBzd2l0Y2ggKHUpIHtcblx0ICAgICAgICBjYXNlICckJzpcblx0ICAgICAgICBjYXNlICdfJzpcblx0ICAgICAgICAgICAgYnJlYWtcblxuXHQgICAgICAgIGRlZmF1bHQ6XG5cdCAgICAgICAgICAgIGlmICghdXRpbC5pc0lkU3RhcnRDaGFyKHUpKSB7XG5cdCAgICAgICAgICAgICAgICB0aHJvdyBpbnZhbGlkSWRlbnRpZmllcigpXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBicmVha1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGJ1ZmZlciArPSB1O1xuXHQgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lJztcblx0ICAgIH0sXG5cblx0ICAgIGlkZW50aWZpZXJOYW1lOiBmdW5jdGlvbiBpZGVudGlmaWVyTmFtZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnJCc6XG5cdCAgICAgICAgY2FzZSAnXyc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAwQyc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAwRCc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXFxcXCc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWVFc2NhcGUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0lkQ29udGludWVDaGFyKGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignaWRlbnRpZmllcicsIGJ1ZmZlcilcblx0ICAgIH0sXG5cblx0ICAgIGlkZW50aWZpZXJOYW1lRXNjYXBlOiBmdW5jdGlvbiBpZGVudGlmaWVyTmFtZUVzY2FwZSAoKSB7XG5cdCAgICAgICAgaWYgKGMgIT09ICd1Jykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHZhciB1ID0gdW5pY29kZUVzY2FwZSgpO1xuXHQgICAgICAgIHN3aXRjaCAodSkge1xuXHQgICAgICAgIGNhc2UgJyQnOlxuXHQgICAgICAgIGNhc2UgJ18nOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMEMnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMEQnOlxuXHQgICAgICAgICAgICBicmVha1xuXG5cdCAgICAgICAgZGVmYXVsdDpcblx0ICAgICAgICAgICAgaWYgKCF1dGlsLmlzSWRDb250aW51ZUNoYXIodSkpIHtcblx0ICAgICAgICAgICAgICAgIHRocm93IGludmFsaWRJZGVudGlmaWVyKClcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGJyZWFrXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHU7XG5cdCAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWUnO1xuXHQgICAgfSxcblxuXHQgICAgc2lnbjogZnVuY3Rpb24gc2lnbiQxICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcuJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsUG9pbnRMZWFkaW5nJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcwJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICd6ZXJvJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcxJzpcblx0ICAgICAgICBjYXNlICcyJzpcblx0ICAgICAgICBjYXNlICczJzpcblx0ICAgICAgICBjYXNlICc0Jzpcblx0ICAgICAgICBjYXNlICc1Jzpcblx0ICAgICAgICBjYXNlICc2Jzpcblx0ICAgICAgICBjYXNlICc3Jzpcblx0ICAgICAgICBjYXNlICc4Jzpcblx0ICAgICAgICBjYXNlICc5Jzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsSW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnSSc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnbmZpbml0eScpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogSW5maW5pdHkpXG5cblx0ICAgICAgICBjYXNlICdOJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCdhTicpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBOYU4pXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgemVybzogZnVuY3Rpb24gemVybyAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLic6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxQb2ludCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnZSc6XG5cdCAgICAgICAgY2FzZSAnRSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAneCc6XG5cdCAgICAgICAgY2FzZSAnWCc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2hleGFkZWNpbWFsJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIDApXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsSW50ZWdlcjogZnVuY3Rpb24gZGVjaW1hbEludGVnZXIgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJy4nOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsUG9pbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ2UnOlxuXHQgICAgICAgIGNhc2UgJ0UnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxQb2ludExlYWRpbmc6IGZ1bmN0aW9uIGRlY2ltYWxQb2ludExlYWRpbmcgKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEZyYWN0aW9uJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbFBvaW50OiBmdW5jdGlvbiBkZWNpbWFsUG9pbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ2UnOlxuXHQgICAgICAgIGNhc2UgJ0UnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxGcmFjdGlvbic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxGcmFjdGlvbjogZnVuY3Rpb24gZGVjaW1hbEZyYWN0aW9uICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdlJzpcblx0ICAgICAgICBjYXNlICdFJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsRXhwb25lbnQ6IGZ1bmN0aW9uIGRlY2ltYWxFeHBvbmVudCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnKyc6XG5cdCAgICAgICAgY2FzZSAnLSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudFNpZ24nO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudEludGVnZXInO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsRXhwb25lbnRTaWduOiBmdW5jdGlvbiBkZWNpbWFsRXhwb25lbnRTaWduICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudEludGVnZXInO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsRXhwb25lbnRJbnRlZ2VyOiBmdW5jdGlvbiBkZWNpbWFsRXhwb25lbnRJbnRlZ2VyICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIGhleGFkZWNpbWFsOiBmdW5jdGlvbiBoZXhhZGVjaW1hbCAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdoZXhhZGVjaW1hbEludGVnZXInO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBoZXhhZGVjaW1hbEludGVnZXI6IGZ1bmN0aW9uIGhleGFkZWNpbWFsSW50ZWdlciAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpXG5cdCAgICB9LFxuXG5cdCAgICBzdHJpbmc6IGZ1bmN0aW9uIHN0cmluZyAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnXFxcXCc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IGVzY2FwZSgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICAgICAgaWYgKGRvdWJsZVF1b3RlKSB7XG5cdCAgICAgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3N0cmluZycsIGJ1ZmZlcilcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSBcIidcIjpcblx0ICAgICAgICAgICAgaWYgKCFkb3VibGVRdW90ZSkge1xuXHQgICAgICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdzdHJpbmcnLCBidWZmZXIpXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ1xcbic6XG5cdCAgICAgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOCc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAyOSc6XG5cdCAgICAgICAgICAgIHNlcGFyYXRvckNoYXIoYyk7XG5cdCAgICAgICAgICAgIGJyZWFrXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICB9LFxuXG5cdCAgICBzdGFydDogZnVuY3Rpb24gc3RhcnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ3snOlxuXHQgICAgICAgIGNhc2UgJ1snOlxuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgdGhlIGRlZmF1bHQgbGV4U3RhdGUgaGFuZGxlcyBlb2YuXG5cdCAgICAgICAgLy8gY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgLy8gICAgIHJldHVybiBuZXdUb2tlbignZW9mJylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBsZXhTdGF0ZSA9ICd2YWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVQcm9wZXJ0eU5hbWU6IGZ1bmN0aW9uIGJlZm9yZVByb3BlcnR5TmFtZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnJCc6XG5cdCAgICAgICAgY2FzZSAnXyc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ1xcXFwnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lU3RhcnRFc2NhcGUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ30nOlxuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cblx0ICAgICAgICBjYXNlICdcIic6XG5cdCAgICAgICAgY2FzZSBcIidcIjpcblx0ICAgICAgICAgICAgZG91YmxlUXVvdGUgPSAocmVhZCgpID09PSAnXCInKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnc3RyaW5nJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNJZFN0YXJ0Q2hhcihjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyUHJvcGVydHlOYW1lOiBmdW5jdGlvbiBhZnRlclByb3BlcnR5TmFtZSAoKSB7XG5cdCAgICAgICAgaWYgKGMgPT09ICc6Jykge1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlUHJvcGVydHlWYWx1ZTogZnVuY3Rpb24gYmVmb3JlUHJvcGVydHlWYWx1ZSAoKSB7XG5cdCAgICAgICAgbGV4U3RhdGUgPSAndmFsdWUnO1xuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBhZnRlclByb3BlcnR5VmFsdWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJywnOlxuXHQgICAgICAgIGNhc2UgJ30nOlxuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlQXJyYXlWYWx1ZTogZnVuY3Rpb24gYmVmb3JlQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgaWYgKGMgPT09ICddJykge1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgbGV4U3RhdGUgPSAndmFsdWUnO1xuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJBcnJheVZhbHVlOiBmdW5jdGlvbiBhZnRlckFycmF5VmFsdWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJywnOlxuXHQgICAgICAgIGNhc2UgJ10nOlxuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgZW5kOiBmdW5jdGlvbiBlbmQgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGRlZmF1bHQgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKGMgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgIC8vICAgICByZWFkKClcblx0ICAgICAgICAvLyAgICAgcmV0dXJuIG5ld1Rva2VuKCdlb2YnKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cdH07XG5cblx0ZnVuY3Rpb24gbmV3VG9rZW4gKHR5cGUsIHZhbHVlKSB7XG5cdCAgICByZXR1cm4ge1xuXHQgICAgICAgIHR5cGU6IHR5cGUsXG5cdCAgICAgICAgdmFsdWU6IHZhbHVlLFxuXHQgICAgICAgIGxpbmU6IGxpbmUsXG5cdCAgICAgICAgY29sdW1uOiBjb2x1bW4sXG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiBsaXRlcmFsIChzKSB7XG5cdCAgICBmb3IgKHZhciBpID0gMCwgbGlzdCA9IHM7IGkgPCBsaXN0Lmxlbmd0aDsgaSArPSAxKSB7XG5cdCAgICAgICAgdmFyIGMgPSBsaXN0W2ldO1xuXG5cdCAgICAgICAgdmFyIHAgPSBwZWVrKCk7XG5cblx0ICAgICAgICBpZiAocCAhPT0gYykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gZXNjYXBlICgpIHtcblx0ICAgIHZhciBjID0gcGVlaygpO1xuXHQgICAgc3dpdGNoIChjKSB7XG5cdCAgICBjYXNlICdiJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXGInXG5cblx0ICAgIGNhc2UgJ2YnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcZidcblxuXHQgICAgY2FzZSAnbic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFxuJ1xuXG5cdCAgICBjYXNlICdyJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXHInXG5cblx0ICAgIGNhc2UgJ3QnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcdCdcblxuXHQgICAgY2FzZSAndic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFx2J1xuXG5cdCAgICBjYXNlICcwJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChwZWVrKCkpKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gJ1xcMCdcblxuXHQgICAgY2FzZSAneCc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiBoZXhFc2NhcGUoKVxuXG5cdCAgICBjYXNlICd1Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuIHVuaWNvZGVFc2NhcGUoKVxuXG5cdCAgICBjYXNlICdcXG4nOlxuXHQgICAgY2FzZSAnXFx1MjAyOCc6XG5cdCAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICcnXG5cblx0ICAgIGNhc2UgJ1xccic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIGlmIChwZWVrKCkgPT09ICdcXG4nKSB7XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gJydcblxuXHQgICAgY2FzZSAnMSc6XG5cdCAgICBjYXNlICcyJzpcblx0ICAgIGNhc2UgJzMnOlxuXHQgICAgY2FzZSAnNCc6XG5cdCAgICBjYXNlICc1Jzpcblx0ICAgIGNhc2UgJzYnOlxuXHQgICAgY2FzZSAnNyc6XG5cdCAgICBjYXNlICc4Jzpcblx0ICAgIGNhc2UgJzknOlxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblxuXHQgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gcmVhZCgpXG5cdH1cblxuXHRmdW5jdGlvbiBoZXhFc2NhcGUgKCkge1xuXHQgICAgdmFyIGJ1ZmZlciA9ICcnO1xuXHQgICAgdmFyIGMgPSBwZWVrKCk7XG5cblx0ICAgIGlmICghdXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfVxuXG5cdCAgICBidWZmZXIgKz0gcmVhZCgpO1xuXG5cdCAgICBjID0gcGVlaygpO1xuXHQgICAgaWYgKCF1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9XG5cblx0ICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cblx0ICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludChidWZmZXIsIDE2KSlcblx0fVxuXG5cdGZ1bmN0aW9uIHVuaWNvZGVFc2NhcGUgKCkge1xuXHQgICAgdmFyIGJ1ZmZlciA9ICcnO1xuXHQgICAgdmFyIGNvdW50ID0gNDtcblxuXHQgICAgd2hpbGUgKGNvdW50LS0gPiAwKSB7XG5cdCAgICAgICAgdmFyIGMgPSBwZWVrKCk7XG5cdCAgICAgICAgaWYgKCF1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludChidWZmZXIsIDE2KSlcblx0fVxuXG5cdHZhciBwYXJzZVN0YXRlcyA9IHtcblx0ICAgIHN0YXJ0OiBmdW5jdGlvbiBzdGFydCAoKSB7XG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHB1c2goKTtcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZVByb3BlcnR5TmFtZTogZnVuY3Rpb24gYmVmb3JlUHJvcGVydHlOYW1lICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcblx0ICAgICAgICBjYXNlICdpZGVudGlmaWVyJzpcblx0ICAgICAgICBjYXNlICdzdHJpbmcnOlxuXHQgICAgICAgICAgICBrZXkgPSB0b2tlbi52YWx1ZTtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlclByb3BlcnR5TmFtZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAncHVuY3R1YXRvcic6XG5cdCAgICAgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgICAgICAvLyBpZiAodG9rZW4udmFsdWUgIT09ICd9Jykge1xuXHQgICAgICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgICAgIHBvcCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ2VvZic6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICB9LFxuXG5cdCAgICBhZnRlclByb3BlcnR5TmFtZTogZnVuY3Rpb24gYWZ0ZXJQcm9wZXJ0eU5hbWUgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmICh0b2tlbi50eXBlICE9PSAncHVuY3R1YXRvcicgfHwgdG9rZW4udmFsdWUgIT09ICc6Jykge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZVByb3BlcnR5VmFsdWUnO1xuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlUHJvcGVydHlWYWx1ZTogZnVuY3Rpb24gYmVmb3JlUHJvcGVydHlWYWx1ZSAoKSB7XG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHB1c2goKTtcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZUFycmF5VmFsdWU6IGZ1bmN0aW9uIGJlZm9yZUFycmF5VmFsdWUgKCkge1xuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ3B1bmN0dWF0b3InICYmIHRva2VuLnZhbHVlID09PSAnXScpIHtcblx0ICAgICAgICAgICAgcG9wKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHB1c2goKTtcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyUHJvcGVydHlWYWx1ZTogZnVuY3Rpb24gYWZ0ZXJQcm9wZXJ0eVZhbHVlICgpIHtcblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAodG9rZW4udHlwZSAhPT0gJ3B1bmN0dWF0b3InKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcblx0ICAgICAgICBjYXNlICcsJzpcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdiZWZvcmVQcm9wZXJ0eU5hbWUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ30nOlxuXHQgICAgICAgICAgICBwb3AoKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJBcnJheVZhbHVlOiBmdW5jdGlvbiBhZnRlckFycmF5VmFsdWUgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmICh0b2tlbi50eXBlICE9PSAncHVuY3R1YXRvcicpIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuXHQgICAgICAgIGNhc2UgJywnOlxuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZUFycmF5VmFsdWUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ10nOlxuXHQgICAgICAgICAgICBwb3AoKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgfSxcblxuXHQgICAgZW5kOiBmdW5jdGlvbiBlbmQgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmICh0b2tlbi50eXBlICE9PSAnZW9mJykge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgIC8vIH1cblx0ICAgIH0sXG5cdH07XG5cblx0ZnVuY3Rpb24gcHVzaCAoKSB7XG5cdCAgICB2YXIgdmFsdWU7XG5cblx0ICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuXHQgICAgY2FzZSAncHVuY3R1YXRvcic6XG5cdCAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuXHQgICAgICAgIGNhc2UgJ3snOlxuXHQgICAgICAgICAgICB2YWx1ZSA9IHt9O1xuXHQgICAgICAgICAgICBicmVha1xuXG5cdCAgICAgICAgY2FzZSAnWyc6XG5cdCAgICAgICAgICAgIHZhbHVlID0gW107XG5cdCAgICAgICAgICAgIGJyZWFrXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnJlYWtcblxuXHQgICAgY2FzZSAnbnVsbCc6XG5cdCAgICBjYXNlICdib29sZWFuJzpcblx0ICAgIGNhc2UgJ251bWVyaWMnOlxuXHQgICAgY2FzZSAnc3RyaW5nJzpcblx0ICAgICAgICB2YWx1ZSA9IHRva2VuLnZhbHVlO1xuXHQgICAgICAgIGJyZWFrXG5cblx0ICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0ICAgIC8vIGRlZmF1bHQ6XG5cdCAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgIH1cblxuXHQgICAgaWYgKHJvb3QgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgIHJvb3QgPSB2YWx1ZTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgICAgdmFyIHBhcmVudCA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuXHQgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmVudCkpIHtcblx0ICAgICAgICAgICAgcGFyZW50LnB1c2godmFsdWUpO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYXJlbnQsIGtleSwge1xuXHQgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuXHQgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICB9KTtcblx0ICAgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cdCAgICAgICAgc3RhY2sucHVzaCh2YWx1ZSk7XG5cblx0ICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdiZWZvcmVBcnJheVZhbHVlJztcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZVByb3BlcnR5TmFtZSc7XG5cdCAgICAgICAgfVxuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgICB2YXIgY3VycmVudCA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuXHQgICAgICAgIGlmIChjdXJyZW50ID09IG51bGwpIHtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdlbmQnO1xuXHQgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50KSkge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyQXJyYXlWYWx1ZSc7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlclByb3BlcnR5VmFsdWUnO1xuXHQgICAgICAgIH1cblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIHBvcCAoKSB7XG5cdCAgICBzdGFjay5wb3AoKTtcblxuXHQgICAgdmFyIGN1cnJlbnQgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcblx0ICAgIGlmIChjdXJyZW50ID09IG51bGwpIHtcblx0ICAgICAgICBwYXJzZVN0YXRlID0gJ2VuZCc7XG5cdCAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudCkpIHtcblx0ICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyQXJyYXlWYWx1ZSc7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJQcm9wZXJ0eVZhbHVlJztcblx0ICAgIH1cblx0fVxuXG5cdC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0Ly8gZnVuY3Rpb24gaW52YWxpZFBhcnNlU3RhdGUgKCkge1xuXHQvLyAgICAgcmV0dXJuIG5ldyBFcnJvcihgSlNPTjU6IGludmFsaWQgcGFyc2Ugc3RhdGUgJyR7cGFyc2VTdGF0ZX0nYClcblx0Ly8gfVxuXG5cdC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0Ly8gZnVuY3Rpb24gaW52YWxpZExleFN0YXRlIChzdGF0ZSkge1xuXHQvLyAgICAgcmV0dXJuIG5ldyBFcnJvcihgSlNPTjU6IGludmFsaWQgbGV4IHN0YXRlICcke3N0YXRlfSdgKVxuXHQvLyB9XG5cblx0ZnVuY3Rpb24gaW52YWxpZENoYXIgKGMpIHtcblx0ICAgIGlmIChjID09PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICByZXR1cm4gc3ludGF4RXJyb3IoKFwiSlNPTjU6IGludmFsaWQgZW5kIG9mIGlucHV0IGF0IFwiICsgbGluZSArIFwiOlwiICsgY29sdW1uKSlcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHN5bnRheEVycm9yKChcIkpTT041OiBpbnZhbGlkIGNoYXJhY3RlciAnXCIgKyAoZm9ybWF0Q2hhcihjKSkgKyBcIicgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHR9XG5cblx0ZnVuY3Rpb24gaW52YWxpZEVPRiAoKSB7XG5cdCAgICByZXR1cm4gc3ludGF4RXJyb3IoKFwiSlNPTjU6IGludmFsaWQgZW5kIG9mIGlucHV0IGF0IFwiICsgbGluZSArIFwiOlwiICsgY29sdW1uKSlcblx0fVxuXG5cdC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0Ly8gZnVuY3Rpb24gaW52YWxpZFRva2VuICgpIHtcblx0Ly8gICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQvLyAgICAgICAgIHJldHVybiBzeW50YXhFcnJvcihgSlNPTjU6IGludmFsaWQgZW5kIG9mIGlucHV0IGF0ICR7bGluZX06JHtjb2x1bW59YClcblx0Ly8gICAgIH1cblxuXHQvLyAgICAgY29uc3QgYyA9IFN0cmluZy5mcm9tQ29kZVBvaW50KHRva2VuLnZhbHVlLmNvZGVQb2ludEF0KDApKVxuXHQvLyAgICAgcmV0dXJuIHN5bnRheEVycm9yKGBKU09ONTogaW52YWxpZCBjaGFyYWN0ZXIgJyR7Zm9ybWF0Q2hhcihjKX0nIGF0ICR7bGluZX06JHtjb2x1bW59YClcblx0Ly8gfVxuXG5cdGZ1bmN0aW9uIGludmFsaWRJZGVudGlmaWVyICgpIHtcblx0ICAgIGNvbHVtbiAtPSA1O1xuXHQgICAgcmV0dXJuIHN5bnRheEVycm9yKChcIkpTT041OiBpbnZhbGlkIGlkZW50aWZpZXIgY2hhcmFjdGVyIGF0IFwiICsgbGluZSArIFwiOlwiICsgY29sdW1uKSlcblx0fVxuXG5cdGZ1bmN0aW9uIHNlcGFyYXRvckNoYXIgKGMpIHtcblx0ICAgIGNvbnNvbGUud2FybigoXCJKU09ONTogJ1wiICsgKGZvcm1hdENoYXIoYykpICsgXCInIGluIHN0cmluZ3MgaXMgbm90IHZhbGlkIEVDTUFTY3JpcHQ7IGNvbnNpZGVyIGVzY2FwaW5nXCIpKTtcblx0fVxuXG5cdGZ1bmN0aW9uIGZvcm1hdENoYXIgKGMpIHtcblx0ICAgIHZhciByZXBsYWNlbWVudHMgPSB7XG5cdCAgICAgICAgXCInXCI6IFwiXFxcXCdcIixcblx0ICAgICAgICAnXCInOiAnXFxcXFwiJyxcblx0ICAgICAgICAnXFxcXCc6ICdcXFxcXFxcXCcsXG5cdCAgICAgICAgJ1xcYic6ICdcXFxcYicsXG5cdCAgICAgICAgJ1xcZic6ICdcXFxcZicsXG5cdCAgICAgICAgJ1xcbic6ICdcXFxcbicsXG5cdCAgICAgICAgJ1xccic6ICdcXFxccicsXG5cdCAgICAgICAgJ1xcdCc6ICdcXFxcdCcsXG5cdCAgICAgICAgJ1xcdic6ICdcXFxcdicsXG5cdCAgICAgICAgJ1xcMCc6ICdcXFxcMCcsXG5cdCAgICAgICAgJ1xcdTIwMjgnOiAnXFxcXHUyMDI4Jyxcblx0ICAgICAgICAnXFx1MjAyOSc6ICdcXFxcdTIwMjknLFxuXHQgICAgfTtcblxuXHQgICAgaWYgKHJlcGxhY2VtZW50c1tjXSkge1xuXHQgICAgICAgIHJldHVybiByZXBsYWNlbWVudHNbY11cblx0ICAgIH1cblxuXHQgICAgaWYgKGMgPCAnICcpIHtcblx0ICAgICAgICB2YXIgaGV4U3RyaW5nID0gYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KTtcblx0ICAgICAgICByZXR1cm4gJ1xcXFx4JyArICgnMDAnICsgaGV4U3RyaW5nKS5zdWJzdHJpbmcoaGV4U3RyaW5nLmxlbmd0aClcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIGNcblx0fVxuXG5cdGZ1bmN0aW9uIHN5bnRheEVycm9yIChtZXNzYWdlKSB7XG5cdCAgICB2YXIgZXJyID0gbmV3IFN5bnRheEVycm9yKG1lc3NhZ2UpO1xuXHQgICAgZXJyLmxpbmVOdW1iZXIgPSBsaW5lO1xuXHQgICAgZXJyLmNvbHVtbk51bWJlciA9IGNvbHVtbjtcblx0ICAgIHJldHVybiBlcnJcblx0fVxuXG5cdHZhciBzdHJpbmdpZnkgPSBmdW5jdGlvbiBzdHJpbmdpZnkgKHZhbHVlLCByZXBsYWNlciwgc3BhY2UpIHtcblx0ICAgIHZhciBzdGFjayA9IFtdO1xuXHQgICAgdmFyIGluZGVudCA9ICcnO1xuXHQgICAgdmFyIHByb3BlcnR5TGlzdDtcblx0ICAgIHZhciByZXBsYWNlckZ1bmM7XG5cdCAgICB2YXIgZ2FwID0gJyc7XG5cdCAgICB2YXIgcXVvdGU7XG5cblx0ICAgIGlmIChcblx0ICAgICAgICByZXBsYWNlciAhPSBudWxsICYmXG5cdCAgICAgICAgdHlwZW9mIHJlcGxhY2VyID09PSAnb2JqZWN0JyAmJlxuXHQgICAgICAgICFBcnJheS5pc0FycmF5KHJlcGxhY2VyKVxuXHQgICAgKSB7XG5cdCAgICAgICAgc3BhY2UgPSByZXBsYWNlci5zcGFjZTtcblx0ICAgICAgICBxdW90ZSA9IHJlcGxhY2VyLnF1b3RlO1xuXHQgICAgICAgIHJlcGxhY2VyID0gcmVwbGFjZXIucmVwbGFjZXI7XG5cdCAgICB9XG5cblx0ICAgIGlmICh0eXBlb2YgcmVwbGFjZXIgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICByZXBsYWNlckZ1bmMgPSByZXBsYWNlcjtcblx0ICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyZXBsYWNlcikpIHtcblx0ICAgICAgICBwcm9wZXJ0eUxpc3QgPSBbXTtcblx0ICAgICAgICBmb3IgKHZhciBpID0gMCwgbGlzdCA9IHJlcGxhY2VyOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuXHQgICAgICAgICAgICB2YXIgdiA9IGxpc3RbaV07XG5cblx0ICAgICAgICAgICAgdmFyIGl0ZW0gPSAodm9pZCAwKTtcblxuXHQgICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdzdHJpbmcnKSB7XG5cdCAgICAgICAgICAgICAgICBpdGVtID0gdjtcblx0ICAgICAgICAgICAgfSBlbHNlIGlmIChcblx0ICAgICAgICAgICAgICAgIHR5cGVvZiB2ID09PSAnbnVtYmVyJyB8fFxuXHQgICAgICAgICAgICAgICAgdiBpbnN0YW5jZW9mIFN0cmluZyB8fFxuXHQgICAgICAgICAgICAgICAgdiBpbnN0YW5jZW9mIE51bWJlclxuXHQgICAgICAgICAgICApIHtcblx0ICAgICAgICAgICAgICAgIGl0ZW0gPSBTdHJpbmcodik7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBpZiAoaXRlbSAhPT0gdW5kZWZpbmVkICYmIHByb3BlcnR5TGlzdC5pbmRleE9mKGl0ZW0pIDwgMCkge1xuXHQgICAgICAgICAgICAgICAgcHJvcGVydHlMaXN0LnB1c2goaXRlbSk7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIGlmIChzcGFjZSBpbnN0YW5jZW9mIE51bWJlcikge1xuXHQgICAgICAgIHNwYWNlID0gTnVtYmVyKHNwYWNlKTtcblx0ICAgIH0gZWxzZSBpZiAoc3BhY2UgaW5zdGFuY2VvZiBTdHJpbmcpIHtcblx0ICAgICAgICBzcGFjZSA9IFN0cmluZyhzcGFjZSk7XG5cdCAgICB9XG5cblx0ICAgIGlmICh0eXBlb2Ygc3BhY2UgPT09ICdudW1iZXInKSB7XG5cdCAgICAgICAgaWYgKHNwYWNlID4gMCkge1xuXHQgICAgICAgICAgICBzcGFjZSA9IE1hdGgubWluKDEwLCBNYXRoLmZsb29yKHNwYWNlKSk7XG5cdCAgICAgICAgICAgIGdhcCA9ICcgICAgICAgICAgJy5zdWJzdHIoMCwgc3BhY2UpO1xuXHQgICAgICAgIH1cblx0ICAgIH0gZWxzZSBpZiAodHlwZW9mIHNwYWNlID09PSAnc3RyaW5nJykge1xuXHQgICAgICAgIGdhcCA9IHNwYWNlLnN1YnN0cigwLCAxMCk7XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBzZXJpYWxpemVQcm9wZXJ0eSgnJywgeycnOiB2YWx1ZX0pXG5cblx0ICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZVByb3BlcnR5IChrZXksIGhvbGRlcikge1xuXHQgICAgICAgIHZhciB2YWx1ZSA9IGhvbGRlcltrZXldO1xuXHQgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG5cdCAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUudG9KU09ONSA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50b0pTT041KGtleSk7XG5cdCAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlLnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50b0pTT04oa2V5KTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmIChyZXBsYWNlckZ1bmMpIHtcblx0ICAgICAgICAgICAgdmFsdWUgPSByZXBsYWNlckZ1bmMuY2FsbChob2xkZXIsIGtleSwgdmFsdWUpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWJlcikge1xuXHQgICAgICAgICAgICB2YWx1ZSA9IE51bWJlcih2YWx1ZSk7XG5cdCAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZykge1xuXHQgICAgICAgICAgICB2YWx1ZSA9IFN0cmluZyh2YWx1ZSk7XG5cdCAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJvb2xlYW4pIHtcblx0ICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS52YWx1ZU9mKCk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuXHQgICAgICAgIGNhc2UgbnVsbDogcmV0dXJuICdudWxsJ1xuXHQgICAgICAgIGNhc2UgdHJ1ZTogcmV0dXJuICd0cnVlJ1xuXHQgICAgICAgIGNhc2UgZmFsc2U6IHJldHVybiAnZmFsc2UnXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHF1b3RlU3RyaW5nKHZhbHVlLCBmYWxzZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuXHQgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHNlcmlhbGl6ZUFycmF5KHZhbHVlKSA6IHNlcmlhbGl6ZU9iamVjdCh2YWx1ZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHF1b3RlU3RyaW5nICh2YWx1ZSkge1xuXHQgICAgICAgIHZhciBxdW90ZXMgPSB7XG5cdCAgICAgICAgICAgIFwiJ1wiOiAwLjEsXG5cdCAgICAgICAgICAgICdcIic6IDAuMixcblx0ICAgICAgICB9O1xuXG5cdCAgICAgICAgdmFyIHJlcGxhY2VtZW50cyA9IHtcblx0ICAgICAgICAgICAgXCInXCI6IFwiXFxcXCdcIixcblx0ICAgICAgICAgICAgJ1wiJzogJ1xcXFxcIicsXG5cdCAgICAgICAgICAgICdcXFxcJzogJ1xcXFxcXFxcJyxcblx0ICAgICAgICAgICAgJ1xcYic6ICdcXFxcYicsXG5cdCAgICAgICAgICAgICdcXGYnOiAnXFxcXGYnLFxuXHQgICAgICAgICAgICAnXFxuJzogJ1xcXFxuJyxcblx0ICAgICAgICAgICAgJ1xccic6ICdcXFxccicsXG5cdCAgICAgICAgICAgICdcXHQnOiAnXFxcXHQnLFxuXHQgICAgICAgICAgICAnXFx2JzogJ1xcXFx2Jyxcblx0ICAgICAgICAgICAgJ1xcMCc6ICdcXFxcMCcsXG5cdCAgICAgICAgICAgICdcXHUyMDI4JzogJ1xcXFx1MjAyOCcsXG5cdCAgICAgICAgICAgICdcXHUyMDI5JzogJ1xcXFx1MjAyOScsXG5cdCAgICAgICAgfTtcblxuXHQgICAgICAgIHZhciBwcm9kdWN0ID0gJyc7XG5cblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgIHZhciBjID0gdmFsdWVbaV07XG5cdCAgICAgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBjYXNlICdcIic6XG5cdCAgICAgICAgICAgICAgICBxdW90ZXNbY10rKztcblx0ICAgICAgICAgICAgICAgIHByb2R1Y3QgKz0gYztcblx0ICAgICAgICAgICAgICAgIGNvbnRpbnVlXG5cblx0ICAgICAgICAgICAgY2FzZSAnXFwwJzpcblx0ICAgICAgICAgICAgICAgIGlmICh1dGlsLmlzRGlnaXQodmFsdWVbaSArIDFdKSkge1xuXHQgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QgKz0gJ1xcXFx4MDAnO1xuXHQgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlXG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnRzW2NdKSB7XG5cdCAgICAgICAgICAgICAgICBwcm9kdWN0ICs9IHJlcGxhY2VtZW50c1tjXTtcblx0ICAgICAgICAgICAgICAgIGNvbnRpbnVlXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBpZiAoYyA8ICcgJykge1xuXHQgICAgICAgICAgICAgICAgdmFyIGhleFN0cmluZyA9IGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNik7XG5cdCAgICAgICAgICAgICAgICBwcm9kdWN0ICs9ICdcXFxceCcgKyAoJzAwJyArIGhleFN0cmluZykuc3Vic3RyaW5nKGhleFN0cmluZy5sZW5ndGgpO1xuXHQgICAgICAgICAgICAgICAgY29udGludWVcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIHByb2R1Y3QgKz0gYztcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB2YXIgcXVvdGVDaGFyID0gcXVvdGUgfHwgT2JqZWN0LmtleXMocXVvdGVzKS5yZWR1Y2UoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIChxdW90ZXNbYV0gPCBxdW90ZXNbYl0pID8gYSA6IGI7IH0pO1xuXG5cdCAgICAgICAgcHJvZHVjdCA9IHByb2R1Y3QucmVwbGFjZShuZXcgUmVnRXhwKHF1b3RlQ2hhciwgJ2cnKSwgcmVwbGFjZW1lbnRzW3F1b3RlQ2hhcl0pO1xuXG5cdCAgICAgICAgcmV0dXJuIHF1b3RlQ2hhciArIHByb2R1Y3QgKyBxdW90ZUNoYXJcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplT2JqZWN0ICh2YWx1ZSkge1xuXHQgICAgICAgIGlmIChzdGFjay5pbmRleE9mKHZhbHVlKSA+PSAwKSB7XG5cdCAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcignQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTjUnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN0YWNrLnB1c2godmFsdWUpO1xuXG5cdCAgICAgICAgdmFyIHN0ZXBiYWNrID0gaW5kZW50O1xuXHQgICAgICAgIGluZGVudCA9IGluZGVudCArIGdhcDtcblxuXHQgICAgICAgIHZhciBrZXlzID0gcHJvcGVydHlMaXN0IHx8IE9iamVjdC5rZXlzKHZhbHVlKTtcblx0ICAgICAgICB2YXIgcGFydGlhbCA9IFtdO1xuXHQgICAgICAgIGZvciAodmFyIGkgPSAwLCBsaXN0ID0ga2V5czsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcblx0ICAgICAgICAgICAgdmFyIGtleSA9IGxpc3RbaV07XG5cblx0ICAgICAgICAgICAgdmFyIHByb3BlcnR5U3RyaW5nID0gc2VyaWFsaXplUHJvcGVydHkoa2V5LCB2YWx1ZSk7XG5cdCAgICAgICAgICAgIGlmIChwcm9wZXJ0eVN0cmluZyAhPT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgbWVtYmVyID0gc2VyaWFsaXplS2V5KGtleSkgKyAnOic7XG5cdCAgICAgICAgICAgICAgICBpZiAoZ2FwICE9PSAnJykge1xuXHQgICAgICAgICAgICAgICAgICAgIG1lbWJlciArPSAnICc7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgICAgICBtZW1iZXIgKz0gcHJvcGVydHlTdHJpbmc7XG5cdCAgICAgICAgICAgICAgICBwYXJ0aWFsLnB1c2gobWVtYmVyKTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBmaW5hbDtcblx0ICAgICAgICBpZiAocGFydGlhbC5sZW5ndGggPT09IDApIHtcblx0ICAgICAgICAgICAgZmluYWwgPSAne30nO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIHZhciBwcm9wZXJ0aWVzO1xuXHQgICAgICAgICAgICBpZiAoZ2FwID09PSAnJykge1xuXHQgICAgICAgICAgICAgICAgcHJvcGVydGllcyA9IHBhcnRpYWwuam9pbignLCcpO1xuXHQgICAgICAgICAgICAgICAgZmluYWwgPSAneycgKyBwcm9wZXJ0aWVzICsgJ30nO1xuXHQgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgdmFyIHNlcGFyYXRvciA9ICcsXFxuJyArIGluZGVudDtcblx0ICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBwYXJ0aWFsLmpvaW4oc2VwYXJhdG9yKTtcblx0ICAgICAgICAgICAgICAgIGZpbmFsID0gJ3tcXG4nICsgaW5kZW50ICsgcHJvcGVydGllcyArICcsXFxuJyArIHN0ZXBiYWNrICsgJ30nO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3RhY2sucG9wKCk7XG5cdCAgICAgICAgaW5kZW50ID0gc3RlcGJhY2s7XG5cdCAgICAgICAgcmV0dXJuIGZpbmFsXG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZUtleSAoa2V5KSB7XG5cdCAgICAgICAgaWYgKGtleS5sZW5ndGggPT09IDApIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHF1b3RlU3RyaW5nKGtleSwgdHJ1ZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB2YXIgZmlyc3RDaGFyID0gU3RyaW5nLmZyb21Db2RlUG9pbnQoa2V5LmNvZGVQb2ludEF0KDApKTtcblx0ICAgICAgICBpZiAoIXV0aWwuaXNJZFN0YXJ0Q2hhcihmaXJzdENoYXIpKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBxdW90ZVN0cmluZyhrZXksIHRydWUpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgZm9yICh2YXIgaSA9IGZpcnN0Q2hhci5sZW5ndGg7IGkgPCBrZXkubGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgaWYgKCF1dGlsLmlzSWRDb250aW51ZUNoYXIoU3RyaW5nLmZyb21Db2RlUG9pbnQoa2V5LmNvZGVQb2ludEF0KGkpKSkpIHtcblx0ICAgICAgICAgICAgICAgIHJldHVybiBxdW90ZVN0cmluZyhrZXksIHRydWUpXG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4ga2V5XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZUFycmF5ICh2YWx1ZSkge1xuXHQgICAgICAgIGlmIChzdGFjay5pbmRleE9mKHZhbHVlKSA+PSAwKSB7XG5cdCAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcignQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTjUnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN0YWNrLnB1c2godmFsdWUpO1xuXG5cdCAgICAgICAgdmFyIHN0ZXBiYWNrID0gaW5kZW50O1xuXHQgICAgICAgIGluZGVudCA9IGluZGVudCArIGdhcDtcblxuXHQgICAgICAgIHZhciBwYXJ0aWFsID0gW107XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICB2YXIgcHJvcGVydHlTdHJpbmcgPSBzZXJpYWxpemVQcm9wZXJ0eShTdHJpbmcoaSksIHZhbHVlKTtcblx0ICAgICAgICAgICAgcGFydGlhbC5wdXNoKChwcm9wZXJ0eVN0cmluZyAhPT0gdW5kZWZpbmVkKSA/IHByb3BlcnR5U3RyaW5nIDogJ251bGwnKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB2YXIgZmluYWw7XG5cdCAgICAgICAgaWYgKHBhcnRpYWwubGVuZ3RoID09PSAwKSB7XG5cdCAgICAgICAgICAgIGZpbmFsID0gJ1tdJztcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBpZiAoZ2FwID09PSAnJykge1xuXHQgICAgICAgICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBwYXJ0aWFsLmpvaW4oJywnKTtcblx0ICAgICAgICAgICAgICAgIGZpbmFsID0gJ1snICsgcHJvcGVydGllcyArICddJztcblx0ICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgIHZhciBzZXBhcmF0b3IgPSAnLFxcbicgKyBpbmRlbnQ7XG5cdCAgICAgICAgICAgICAgICB2YXIgcHJvcGVydGllcyQxID0gcGFydGlhbC5qb2luKHNlcGFyYXRvcik7XG5cdCAgICAgICAgICAgICAgICBmaW5hbCA9ICdbXFxuJyArIGluZGVudCArIHByb3BlcnRpZXMkMSArICcsXFxuJyArIHN0ZXBiYWNrICsgJ10nO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3RhY2sucG9wKCk7XG5cdCAgICAgICAgaW5kZW50ID0gc3RlcGJhY2s7XG5cdCAgICAgICAgcmV0dXJuIGZpbmFsXG5cdCAgICB9XG5cdH07XG5cblx0dmFyIEpTT041ID0ge1xuXHQgICAgcGFyc2U6IHBhcnNlLFxuXHQgICAgc3RyaW5naWZ5OiBzdHJpbmdpZnksXG5cdH07XG5cblx0dmFyIGxpYiA9IEpTT041O1xuXG5cdHZhciBlczUgPSBsaWI7XG5cblx0cmV0dXJuIGVzNTtcblxufSkpKTtcbiIsICJpbXBvcnQgeyBQbHVnaW4sIE1hcmtkb3duVmlldywgV29ya3NwYWNlTGVhZiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBjb252ZXJ0U2V0dGluZ3MsIERFRkFVTFRfU0VUVElOR1MsIExBTkdVQUdFX0lDT05TX0RBVEEsIENvZGVTdHlsZXJTZXR0aW5ncyB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1RhYiB9IGZyb20gXCIuL1NldHRpbmdzVGFiXCI7XG5pbXBvcnQgeyByZW1vdmVTdHlsZXNBbmRDbGFzc2VzLCB1cGRhdGVTdHlsaW5nIH0gZnJvbSBcIi4vQXBwbHlTdHlsaW5nXCI7XG5pbXBvcnQgeyBjcmVhdGVDb2RlYmxvY2tDb2RlTWlycm9yRXh0ZW5zaW9ucywgZWRpdGluZ0RvY3VtZW50Rm9sZCB9IGZyb20gXCIuL0VkaXRpbmdWaWV3XCI7XG5pbXBvcnQgeyBkZXN0cm95UmVhZGluZ01vZGVFbGVtZW50cywgcmVhZGluZ0RvY3VtZW50Rm9sZCwgZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLCByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yLCByZWFkaW5nVmlld0lubGluZURlY29yYXRpbmdQb3N0UHJvY2Vzc29yIH0gZnJvbSBcIi4vUmVhZGluZ1ZpZXdcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29kZVN0eWxlclBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3M7XG5cdGV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblx0bGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+O1xuXHRzaXplczoge1xuXHRcdGZvbnQ6IHN0cmluZztcblx0XHR6b29tOiBzdHJpbmc7XG5cdH07XG5cdFxuXHRhc3luYyBvbmxvYWQoKSB7XG5cdFx0YXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTsgLy8gTG9hZCBTZXR0aW5nc1xuXHRcdGNvbnN0IHNldHRpbmdzVGFiID0gbmV3IFNldHRpbmdzVGFiKHRoaXMuYXBwLHRoaXMpO1xuXHRcdHRoaXMuYWRkU2V0dGluZ1RhYihzZXR0aW5nc1RhYik7XG5cblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlclwiKTsgLy8gTG9hZCBTdHlsZXNcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXG5cdFx0dGhpcy5sYW5ndWFnZUljb25zID0gT2JqZWN0LmtleXMoTEFOR1VBR0VfSUNPTlNfREFUQSkucmVkdWNlKChyZXN1bHQ6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LCBrZXk6IHN0cmluZykgPT4geyAvLyBMb2FkIEljb25zXG5cdFx0XHRyZXN1bHRba2V5XSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtMQU5HVUFHRV9JQ09OU19EQVRBW2tleV19PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9LHt9KTtcblx0XHR0aGlzLnNpemVzID0ge1xuXHRcdFx0Zm9udDogZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS1mb250LXRleHQtc2l6ZVwiKSxcblx0XHRcdHpvb206IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tem9vbS1mYWN0b3JcIiksXG5cdFx0fTtcblxuXHRcdHRoaXMuZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyID0gZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyOyAvLyBBZGQgZXhlY3V0ZSBjb2RlIG11dGF0aW9uIG9ic2VydmVyXG5cdFx0XG5cdFx0dGhpcy5yZWdpc3Rlck1hcmtkb3duUG9zdFByb2Nlc3Nvcihhc3luYyAoZWwsY3R4KSA9PiB7YXdhaXQgcmVhZGluZ1ZpZXdDb2RlYmxvY2tEZWNvcmF0aW5nUG9zdFByb2Nlc3NvcihlbCxjdHgsdGhpcyk7fSk7IC8vIEFkZCBjb2RlYmxvY2sgZGVjb3JhdGluZyBtYXJrZG93blBvc3RQcm9jZXNzb3Jcblx0XHR0aGlzLnJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yKGFzeW5jIChlbCxjdHgpID0+IHthd2FpdCByZWFkaW5nVmlld0lubGluZURlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsLGN0eCx0aGlzKTt9KTsgLy8gQWRkIGlubGluZSBjb2RlIGRlY29yYXRpbmcgbWFya2Rvd25Qb3N0UHJvY2Vzc29yXG5cblx0XHR0aGlzLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKGNyZWF0ZUNvZGVibG9ja0NvZGVNaXJyb3JFeHRlbnNpb25zKHRoaXMuc2V0dGluZ3MsdGhpcykpOyAvLyBBZGQgY29kZW1pcnJvciBleHRlbnNpb25zXG5cblx0XHRsZXQgem9vbVRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pO1xuXHRcdHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oXCJjc3MtY2hhbmdlXCIsKCk9Pntcblx0XHRcdHVwZGF0ZVN0eWxpbmcodGhpcy5zZXR0aW5ncyx0aGlzLmFwcCk7IC8vIFVwZGF0ZSBzdHlsaW5nIG9uIGNzcyBjaGFuZ2VzXG5cdFx0XHRjb25zdCBjdXJyZW50Rm9udFNpemUgPSBkb2N1bWVudC5ib2R5LmdldENzc1Byb3BlcnR5VmFsdWUoXCItLWZvbnQtdGV4dC1zaXplXCIpO1xuXHRcdFx0aWYgKHRoaXMuc2l6ZXMuZm9udCAhPT0gY3VycmVudEZvbnRTaXplKSB7XG5cdFx0XHRcdHRoaXMuc2l6ZXMuZm9udCA9IGN1cnJlbnRGb250U2l6ZTtcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHpvb21UaW1lb3V0KTtcblx0XHRcdFx0em9vbVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57XG5cdFx0XHRcdFx0dGhpcy5yZW5kZXJSZWFkaW5nVmlldygpOyAvLyBSZS1yZW5kZXIgb24gZm9udCBzaXplIGNoYW5nZXNcblx0XHRcdFx0fSwxMDAwKTtcblx0XHRcdH1cblx0XHR9LHRoaXMpKTtcblx0XHR0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy5hcHAud29ya3NwYWNlLm9uKFwicmVzaXplXCIsKCk9Pntcblx0XHRcdGNvbnN0IGN1cnJlbnRab29tU2l6ZSA9IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tem9vbS1mYWN0b3JcIik7XG5cdFx0XHRpZiAodGhpcy5zaXplcy56b29tICE9PSBjdXJyZW50Wm9vbVNpemUpIHtcblx0XHRcdFx0dGhpcy5zaXplcy56b29tID0gY3VycmVudFpvb21TaXplO1xuXHRcdFx0XHRjbGVhclRpbWVvdXQoem9vbVRpbWVvdXQpO1xuXHRcdFx0XHR6b29tVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0XHR0aGlzLnJlbmRlclJlYWRpbmdWaWV3KCk7IC8vIFJlLXJlbmRlciBvbiB6b29tIGNoYW5nZXNcblx0XHRcdFx0fSwxMDAwKTtcblx0XHRcdH1cblx0XHR9LHRoaXMpKTtcblxuXHRcdHRoaXMuYWRkQ29tbWFuZCh7aWQ6IFwiZm9sZC1hbGxcIiwgbmFtZTogXCJGb2xkIGFsbCBjb2RlYmxvY2tzXCIsIGNhbGxiYWNrOiAoKT0+e1xuXHRcdFx0Y29uc3QgYWN0aXZlVmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XG5cdFx0XHRpZiAoYWN0aXZlVmlldykge1xuXHRcdFx0XHRpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRcdHJlYWRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5jb250ZW50RWwsdHJ1ZSk7XG5cdFx0XHRcdGVsc2UgaWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInNvdXJjZVwiKVxuXHRcdFx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRcdFx0ZWRpdGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmVkaXRvci5jbS5kb2NWaWV3LnZpZXcsdHJ1ZSk7XG5cdFx0XHR9XG5cdFx0fX0pO1xuXHRcdHRoaXMuYWRkQ29tbWFuZCh7aWQ6IFwidW5mb2xkLWFsbFwiLCBuYW1lOiBcIlVuZm9sZCBhbGwgY29kZWJsb2Nrc1wiLCBjYWxsYmFjazogKCk9Pntcblx0XHRcdGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xuXHRcdFx0aWYgKGFjdGl2ZVZpZXcpIHtcblx0XHRcdFx0aWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInByZXZpZXdcIilcblx0XHRcdFx0XHRyZWFkaW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuY29udGVudEVsLGZhbHNlKTtcblx0XHRcdFx0ZWxzZSBpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwic291cmNlXCIpXG5cdFx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0XHRlZGl0aW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuZWRpdG9yLmNtLmRvY1ZpZXcudmlldyxmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fX0pO1xuXHRcdHRoaXMuYWRkQ29tbWFuZCh7aWQ6IFwicmVzZXQtYWxsXCIsIG5hbWU6IFwiUmVzZXQgZm9sZCBzdGF0ZSBmb3IgYWxsIGNvZGVibG9ja3NcIiwgY2FsbGJhY2s6ICgpPT57XG5cdFx0XHRjb25zdCBhY3RpdmVWaWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcblx0XHRcdGlmIChhY3RpdmVWaWV3KSB7XG5cdFx0XHRcdGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdFx0cmVhZGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmNvbnRlbnRFbCk7XG5cdFx0XHRcdGVsc2UgaWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInNvdXJjZVwiKVxuXHRcdFx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRcdFx0ZWRpdGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmVkaXRvci5jbS5kb2NWaWV3LnZpZXcpO1xuXHRcdFx0fVxuXHRcdH19KTtcblxuXHRcdHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KCgpPT57dGhpcy5yZW5kZXJSZWFkaW5nVmlldygpO30pOyAvLyBBZGQgZGVjb3JhdGlvbiBvbiBlbmFibGluZyBvZiBwbHVnaW5cblxuXHRcdGNvbnNvbGUubG9nKFwiTG9hZGVkIHBsdWdpbjogQ29kZSBTdHlsZXJcIik7XG5cdH1cblx0XG5cdG9udW5sb2FkKCkge1xuXHRcdHRoaXMuZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHRyZW1vdmVTdHlsZXNBbmRDbGFzc2VzKCk7XG5cdFx0ZGVzdHJveVJlYWRpbmdNb2RlRWxlbWVudHMoKTtcblx0XHRmb3IgKGNvbnN0IHVybCBvZiBPYmplY3QudmFsdWVzKHRoaXMubGFuZ3VhZ2VJY29ucykpIC8vIFVubG9hZCBpY29uc1xuXHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuXHRcdGNvbnNvbGUubG9nKFwiVW5sb2FkZWQgcGx1Z2luOiBDb2RlIFN0eWxlclwiKTtcblx0fVxuXG5cdGFzeW5jIGxvYWRTZXR0aW5ncygpIHtcblx0XHR0aGlzLnNldHRpbmdzID0gey4uLnN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1NFVFRJTkdTKSwgLi4uY29udmVydFNldHRpbmdzKGF3YWl0IHRoaXMubG9hZERhdGEoKSl9O1xuXHR9XG5cblx0YXN5bmMgc2F2ZVNldHRpbmdzKCkge1xuXHRcdGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLnVwZGF0ZU9wdGlvbnMoKTtcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXHR9XG5cblx0cmVuZGVyUmVhZGluZ1ZpZXcoKSB7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLml0ZXJhdGVSb290TGVhdmVzKChsZWFmOiBXb3Jrc3BhY2VMZWFmKSA9PiB7XG5cdFx0XHRpZiAobGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRsZWFmLnZpZXcucHJldmlld01vZGUucmVyZW5kZXIodHJ1ZSk7XG5cdFx0fSk7XG5cdH1cbn1cbiIsICIvLyBUeXBpbmdcbmV4cG9ydCB0eXBlIEhFWCA9IGAjJHtzdHJpbmd9YDtcbmV4cG9ydCB0eXBlIENTUyA9IGAtLSR7c3RyaW5nfWA7XG5leHBvcnQgdHlwZSBDb2xvdXIgPSBIRVggfCBDU1M7XG5leHBvcnQgdHlwZSBQZXJjZW50YWdlID0gYCR7bnVtYmVyfSVgO1xuZXhwb3J0IHR5cGUgRGlzcGxheSA9IFwibm9uZVwiIHwgXCJpZl9oZWFkZXJfc2hvd25cIiB8IFwiYWx3YXlzXCI7XG5cbi8vIEludGVyZmFjZSBDcmVhdGlvblxuZXhwb3J0IGludGVyZmFjZSBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3VycyB7XG5cdGNvZGVibG9jazoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlVGV4dENvbG91cjogQ29sb3VyO1xuXHR9LFxuXHRoZWFkZXI6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHR9LFxuXHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0fSxcblx0XHRsaW5lQ29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogQ29sb3VyO1xuXHRcdGRlZmF1bHRDb2xvdXI6IENvbG91cjtcblx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IFJlY29yZDxzdHJpbmcsQ29sb3VyPjtcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0dGl0bGVUZXh0Q29sb3VyOiBDb2xvdXJcblx0fVxuXHRhZHZhbmNlZDoge1xuXHRcdGJ1dHRvbkNvbG91cjogQ29sb3VyO1xuXHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogQ29sb3VyO1xuXHR9XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzIHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0bGluZU51bWJlcnM6IGJvb2xlYW47XG5cdFx0dW53cmFwTGluZXM6IGJvb2xlYW47XG5cdFx0d3JhcExpbmVzQWN0aXZlOiBib29sZWFuO1xuXHRcdGN1cnZhdHVyZTogbnVtYmVyO1xuXHR9LFxuXHRndXR0ZXI6IHtcblx0XHRoaWdobGlnaHQ6IGJvb2xlYW47XG5cdFx0YWN0aXZlTGluZTogYm9vbGVhbjtcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRGb250OiBzdHJpbmc7XG5cdFx0XHR0ZXh0Qm9sZDogYm9vbGVhbjtcblx0XHRcdHRleHRJdGFsaWM6IGJvb2xlYW47XG5cdFx0fSxcblx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0ZGlzcGxheTogRGlzcGxheTtcblx0XHRcdHRleHRGb250OiBzdHJpbmc7XG5cdFx0XHR0ZXh0Qm9sZDogYm9vbGVhbjtcblx0XHRcdHRleHRJdGFsaWM6IGJvb2xlYW47XG5cdFx0fSxcblx0XHRsYW5ndWFnZUljb246IHtcblx0XHRcdGRpc3BsYXk6IERpc3BsYXk7XG5cdFx0XHRkaXNwbGF5Q29sb3VyOiBib29sZWFuO1xuXHRcdH0sXG5cdFx0Zm9udFNpemU6IG51bWJlcjtcblx0XHRmb2xkUGxhY2Vob2xkZXI6IHN0cmluZztcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmU6IGJvb2xlYW47XG5cdFx0YWN0aXZlRWRpdG9yTGluZTogYm9vbGVhbjtcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0c3ludGF4SGlnaGxpZ2h0OiBib29sZWFuO1xuXHRcdHN0eWxlOiBib29sZWFuO1xuXHRcdGZvbnRXZWlnaHQ6IG51bWJlcjtcblx0XHRjdXJ2YXR1cmU6IG51bWJlcjtcblx0XHRwYWRkaW5nVmVydGljYWw6IG51bWJlcjtcblx0XHRwYWRkaW5nSG9yaXpvbnRhbDogbnVtYmVyO1xuXHRcdG1hcmdpbkhvcml6b250YWw6IG51bWJlcjtcblx0XHR0aXRsZUZvbnRXZWlnaHQ6IG51bWJlcjtcblx0fSxcblx0YWR2YW5jZWQ6IHtcblx0XHRncmFkaWVudEhpZ2hsaWdodHM6IGJvb2xlYW47XG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDogUGVyY2VudGFnZTtcblx0XHRsYW5ndWFnZUJvcmRlckNvbG91cjogYm9vbGVhbjtcblx0XHRsYW5ndWFnZUJvcmRlcldpZHRoOiBudW1iZXI7XG5cdFx0aWNvblNpemU6IG51bWJlcjtcblx0fTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclRoZW1lQ29sb3VycyB7XG5cdGxpZ2h0OiBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3Vycztcblx0ZGFyazogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnM7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZSB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncztcblx0Y29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclNldHRpbmdzIHtcblx0dGhlbWVzOiBSZWNvcmQ8c3RyaW5nLENvZGVTdHlsZXJUaGVtZT47XG5cdHNlbGVjdGVkVGhlbWU6IHN0cmluZztcblx0Y3VycmVudFRoZW1lOiBDb2RlU3R5bGVyVGhlbWU7XG5cdG5ld1RoZW1lOiBzdHJpbmc7XG5cdG5ld0hpZ2hsaWdodDogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVyczogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrQ29udGVudDogc3RyaW5nO1xuXHRleGFtcGxlSW5saW5lQ29kZTogc3RyaW5nO1xuXHRkZWNvcmF0ZVByaW50OiBib29sZWFuO1xuXHRleGNsdWRlZExhbmd1YWdlczogc3RyaW5nO1xuXHRwcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0OiBzdHJpbmc7XG5cdHJlZGlyZWN0TGFuZ3VhZ2VzOiBSZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9Pjtcblx0dmVyc2lvbjogc3RyaW5nO1xufVxuXG4vLyBUaGVtZSBEZWZhdWx0c1xuY29uc3QgVEhFTUVfREVGQVVMVF9TRVRUSU5HUzogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MgPSB7XG5cdGNvZGVibG9jazoge1xuXHRcdGxpbmVOdW1iZXJzOiB0cnVlLFxuXHRcdHVud3JhcExpbmVzOiB0cnVlLFxuXHRcdHdyYXBMaW5lc0FjdGl2ZTogZmFsc2UsXG5cdFx0Y3VydmF0dXJlOiA0LFxuXHR9LFxuXHRndXR0ZXI6IHtcblx0XHRoaWdobGlnaHQ6IHRydWUsXG5cdFx0YWN0aXZlTGluZTogZmFsc2UsXG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdHRpdGxlOiB7XG5cdFx0XHR0ZXh0Rm9udDogXCJcIixcblx0XHRcdHRleHRCb2xkOiBmYWxzZSxcblx0XHRcdHRleHRJdGFsaWM6IHRydWUsXG5cdFx0fSxcblx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0ZGlzcGxheTogXCJub25lXCIsXG5cdFx0XHR0ZXh0Rm9udDogXCJcIixcblx0XHRcdHRleHRCb2xkOiB0cnVlLFxuXHRcdFx0dGV4dEl0YWxpYzogZmFsc2UsXG5cdFx0fSxcblx0XHRsYW5ndWFnZUljb246IHtcblx0XHRcdGRpc3BsYXk6IFwibm9uZVwiLFxuXHRcdFx0ZGlzcGxheUNvbG91cjogdHJ1ZSxcblx0XHR9LFxuXHRcdGZvbnRTaXplOiAxNCxcblx0XHRmb2xkUGxhY2Vob2xkZXI6IFwiXCIsXG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lOiBmYWxzZSxcblx0XHRhY3RpdmVFZGl0b3JMaW5lOiBmYWxzZSxcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0c3ludGF4SGlnaGxpZ2h0OiB0cnVlLFxuXHRcdHN0eWxlOiB0cnVlLFxuXHRcdGZvbnRXZWlnaHQ6IDQsXG5cdFx0Y3VydmF0dXJlOiA2LFxuXHRcdHBhZGRpbmdWZXJ0aWNhbDogNSxcblx0XHRwYWRkaW5nSG9yaXpvbnRhbDogNSxcblx0XHRtYXJnaW5Ib3Jpem9udGFsOiAwLFxuXHRcdHRpdGxlRm9udFdlaWdodDogOCxcblx0fSxcblx0YWR2YW5jZWQ6IHtcblx0XHRncmFkaWVudEhpZ2hsaWdodHM6IGZhbHNlLFxuXHRcdGdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3A6IFwiNzAlXCIsXG5cdFx0bGFuZ3VhZ2VCb3JkZXJDb2xvdXI6IGZhbHNlLFxuXHRcdGxhbmd1YWdlQm9yZGVyV2lkdGg6IDUsXG5cdFx0aWNvblNpemU6IDI4LFxuXHR9LFxufTtcbmV4cG9ydCBjb25zdCBUSEVNRV9GQUxMQkFDS19DT0xPVVJTOiBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3VycyA9IHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRleHRDb2xvdXI6IFwiLS1jb2RlLW5vcm1hbFwiLFxuXHR9LFxuXHRndXR0ZXI6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0dGV4dENvbG91cjogXCItLXRleHQtZmFpbnRcIixcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHR9LFxuXHRoZWFkZXI6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRDb2xvdXI6IFwiLS1jb2RlLWNvbW1lbnRcIixcblx0XHR9LFxuXHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0XHR0ZXh0Q29sb3VyOiBcIi0tY29kZS1jb21tZW50XCIsXG5cdFx0fSxcblx0XHRsaW5lQ29sb3VyOiBcIi0tY29sb3ItYmFzZS0zMFwiLFxuXHR9LFxuXHRoaWdobGlnaHRzOiB7XG5cdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogXCItLWNvbG9yLWJhc2UtMzBcIixcblx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBcIi0tY29sb3ItYmFzZS0yMFwiLFxuXHRcdGRlZmF1bHRDb2xvdXI6IFwiLS10ZXh0LWhpZ2hsaWdodC1iZ1wiLFxuXHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG5cdH0sXG5cdGlubGluZToge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0ZXh0Q29sb3VyOiBcIi0tY29kZS1ub3JtYWxcIixcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIi0tY29kZS1ub3JtYWxcIixcblx0XHR0aXRsZVRleHRDb2xvdXI6IFwiLS1jb2RlLWNvbW1lbnRcIixcblx0fSxcblx0YWR2YW5jZWQ6IHtcblx0XHRidXR0b25Db2xvdXI6IFwiLS10ZXh0LW11dGVkXCIsXG5cdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcblx0fVxufTtcblxuLy8gQ29sb3IgU2NoZW1lc1xuY29uc3QgU09MQVJJWkVEOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG5cdFwiYmFzZTAzXCI6IFwiIzAwMmIzNlwiLFxuXHRcImJhc2UwMlwiOiBcIiMwNzM2NDJcIixcblx0XCJiYXNlMDFcIjogXCIjNTg2ZTc1XCIsXG5cdFwiYmFzZTAwXCI6IFwiIzY1N2I4M1wiLFxuXHRcImJhc2UwXCI6IFwiIzgzOTQ5NlwiLFxuXHRcImJhc2UxXCI6IFwiIzkzYTFhMVwiLFxuXHRcImJhc2UyXCI6IFwiI2VlZThkNVwiLFxuXHRcImJhc2UzXCI6IFwiI2ZkZjZlM1wiLFxuXHRcInllbGxvd1wiOiBcIiNiNTg5MDBcIixcblx0XCJvcmFuZ2VcIjogXCIjY2I0YjE2XCIsXG5cdFwicmVkXCI6IFwiI2RjMzIyZlwiLFxuXHRcIm1hZ2VudGFcIjogXCIjZDMzNjgyXCIsXG5cdFwidmlvbGV0XCI6IFwiIzZjNzFjNFwiLFxuXHRcImJsdWVcIjogXCIjMjY4YmQyXCIsXG5cdFwiY3lhblwiOiBcIiMyYWExOThcIixcblx0XCJncmVlblwiOiBcIiM4NTk5MDBcIixcbn07XG4vLyBjb25zdCBDQVRQVUNDSU46IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcbi8vIFx0bGF0dGU6IHtcbi8vIFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiI2VmZjFmNVwiLFxuLy8gXHRcdGZvcmVncm91bmRDb2xvcjogXCIjNGM0ZjY5XCIsXG4vLyBcdFx0c2VsZWN0aW9uQ29sb3I6IFwiI2FjYjBiZVwiLFxuLy8gXHRcdGN1cnNvckNvbG9yOiBcIiNkYzhhNzhcIixcbi8vIFx0XHRjdXJzb3JBY2NlbnRDb2xvcjogXCIjZWZmMWY1XCIsXG4vLyBcdFx0Y29sb3JzOiB7XG4vLyBcdFx0XHRibGFjazogXCIjNWM1Zjc3XCIsXG4vLyBcdFx0XHRibHVlOiBcIiMxZTY2ZjVcIixcbi8vIFx0XHRcdHJlZDogXCIjZDIwZjM5XCIsXG4vLyBcdFx0XHRncmVlbjogXCIjNDBhMDJiXCIsXG4vLyBcdFx0XHR5ZWxsb3c6IFwiI2RmOGUxZFwiLFxuLy8gXHRcdFx0bWFnZW50YTogXCIjZWE3NmNiXCIsXG4vLyBcdFx0XHRjeWFuOiBcIiMxNzkyOTlcIixcbi8vIFx0XHRcdHdoaXRlOiBcIiNhY2IwYmVcIixcbi8vIFx0XHRcdGxpZ2h0QmxhY2s6IFwiIzZjNmY4NVwiLFxuLy8gXHRcdFx0bGlnaHRXaGl0ZTogXCIjYmNjMGNjXCIsXG4vLyBcdFx0XHRsaWdodEJsdWU6IFwiIzFlNjZmNVwiLFxuLy8gXHRcdFx0bGlnaHRSZWQ6IFwiI2QyMGYzOVwiLFxuLy8gXHRcdFx0bGlnaHRHcmVlbjogXCIjNDBhMDJiXCIsXG4vLyBcdFx0XHRsaWdodFllbGxvdzogXCIjZGY4ZTFkXCIsXG4vLyBcdFx0XHRsaWdodE1hZ2VudGE6IFwiI2VhNzZjYlwiLFxuLy8gXHRcdFx0bGlnaHRDeWFuOiBcIiMxNzkyOTlcIixcbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gXHRmcmFwcFx1MDBFOToge1xuLy8gXHRcdGJhY2tncm91bmRDb2xvcjogXCIjMzAzNDQ2XCIsXG4vLyBcdFx0Zm9yZWdyb3VuZENvbG9yOiBcIiNjNmQwZjVcIixcbi8vIFx0XHRzZWxlY3Rpb25Db2xvcjogXCIjNjI2ODgwXCIsXG4vLyBcdFx0Y3Vyc29yQ29sb3I6IFwiI2YyZDVjZlwiLFxuLy8gXHRcdGN1cnNvckFjY2VudENvbG9yOiBcIiMyMzI2MzRcIixcbi8vIFx0XHRjb2xvcnM6IHtcbi8vIFx0XHRcdGJsYWNrOiBcIiM1MTU3NmRcIixcbi8vIFx0XHRcdGJsdWU6IFwiIzhjYWFlZVwiLFxuLy8gXHRcdFx0cmVkOiBcIiNlNzgyODRcIixcbi8vIFx0XHRcdGdyZWVuOiBcIiNhNmQxODlcIixcbi8vIFx0XHRcdHllbGxvdzogXCIjZTVjODkwXCIsXG4vLyBcdFx0XHRtYWdlbnRhOiBcIiNmNGI4ZTRcIixcbi8vIFx0XHRcdGN5YW46IFwiIzgxYzhiZVwiLFxuLy8gXHRcdFx0d2hpdGU6IFwiI2I1YmZlMlwiLFxuLy8gXHRcdFx0bGlnaHRCbGFjazogXCIjNjI2ODgwXCIsXG4vLyBcdFx0XHRsaWdodFdoaXRlOiBcIiNhNWFkY2VcIixcbi8vIFx0XHRcdGxpZ2h0Qmx1ZTogXCIjOGNhYWVlXCIsXG4vLyBcdFx0XHRsaWdodFJlZDogXCIjZTc4Mjg0XCIsXG4vLyBcdFx0XHRsaWdodEdyZWVuOiBcIiNhNmQxODlcIixcbi8vIFx0XHRcdGxpZ2h0WWVsbG93OiBcIiNlNWM4OTBcIixcbi8vIFx0XHRcdGxpZ2h0TWFnZW50YTogXCIjZjRiOGU0XCIsXG4vLyBcdFx0XHRsaWdodEN5YW46IFwiIzgxYzhiZVwiLFxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyBcdG1hY2NoaWF0bzoge1xuLy8gXHRcdGJhY2tncm91bmRDb2xvcjogXCIjMjQyNzNhXCIsXG4vLyBcdFx0Zm9yZWdyb3VuZENvbG9yOiBcIiNjYWQzZjVcIixcbi8vIFx0XHRzZWxlY3Rpb25Db2xvcjogXCIjNWI2MDc4XCIsXG4vLyBcdFx0Y3Vyc29yQ29sb3I6IFwiI2Y0ZGJkNlwiLFxuLy8gXHRcdGN1cnNvckFjY2VudENvbG9yOiBcIiMxODE5MjZcIixcbi8vIFx0XHRjb2xvcnM6IHtcbi8vIFx0XHRcdGJsYWNrOiBcIiM0OTRkNjRcIixcbi8vIFx0XHRcdGJsdWU6IFwiIzhhYWRmNFwiLFxuLy8gXHRcdFx0cmVkOiBcIiNlZDg3OTZcIixcbi8vIFx0XHRcdGdyZWVuOiBcIiNhNmRhOTVcIixcbi8vIFx0XHRcdHllbGxvdzogXCIjZWVkNDlmXCIsXG4vLyBcdFx0XHRtYWdlbnRhOiBcIiNmNWJkZTZcIixcbi8vIFx0XHRcdGN5YW46IFwiIzhiZDVjYThiZDVjYVwiLFxuLy8gXHRcdFx0d2hpdGU6IFwiI2I4YzBlMFwiLFxuLy8gXHRcdFx0bGlnaHRCbGFjazogXCIjNWI2MDc4XCIsXG4vLyBcdFx0XHRsaWdodFdoaXRlOiBcIiNhNWFkY2JcIixcbi8vIFx0XHRcdGxpZ2h0Qmx1ZTogXCIjOGFhZGY0XCIsXG4vLyBcdFx0XHRsaWdodFJlZDogXCIjZWQ4Nzk2XCIsXG4vLyBcdFx0XHRsaWdodEdyZWVuOiBcIiNhNmRhOTVcIixcbi8vIFx0XHRcdGxpZ2h0WWVsbG93OiBcIiNlZWQ0OWZcIixcbi8vIFx0XHRcdGxpZ2h0TWFnZW50YTogXCIjZjViZGU2XCIsXG4vLyBcdFx0XHRsaWdodEN5YW46IFwiIzhiZDVjYVwiLFxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyBcdG1vY2hhOiB7XG4vLyBcdFx0YmFja2dyb3VuZENvbG9yOiBcIiMxZTFlMmVcIixcbi8vIFx0XHRmb3JlZ3JvdW5kQ29sb3I6IFwiI2NkZDZmNFwiLFxuLy8gXHRcdHNlbGVjdGlvbkNvbG9yOiBcIiM1ODViNzBcIixcbi8vIFx0XHRjdXJzb3JDb2xvcjogXCIjZjVlMGRjXCIsXG4vLyBcdFx0Y3Vyc29yQWNjZW50Q29sb3I6IFwiIzExMTExYlwiLFxuLy8gXHRcdGNvbG9yczoge1xuLy8gXHRcdFx0YmxhY2s6IFwiIzQ1NDc1QVwiLFxuLy8gXHRcdFx0Ymx1ZTogXCIjODliNGZhXCIsXG4vLyBcdFx0XHRyZWQ6IFwiI2YzOGJhOFwiLFxuLy8gXHRcdFx0Z3JlZW46IFwiI2E2ZTNhMVwiLFxuLy8gXHRcdFx0eWVsbG93OiBcIiNmOWUyYWZcIixcbi8vIFx0XHRcdG1hZ2VudGE6IFwiI2Y1YzJlN1wiLFxuLy8gXHRcdFx0Y3lhbjogXCIjOTRlMmQ1XCIsXG4vLyBcdFx0XHR3aGl0ZTogXCIjYmFjMmRlXCIsXG4vLyBcdFx0XHRsaWdodEJsYWNrOiBcIiM1ODViNzBcIixcbi8vIFx0XHRcdGxpZ2h0V2hpdGU6IFwiI2E2YWRjOFwiLFxuLy8gXHRcdFx0bGlnaHRCbHVlOiBcIiM4OWI0ZmFcIixcbi8vIFx0XHRcdGxpZ2h0UmVkOiBcIiNmMzhiYThcIixcbi8vIFx0XHRcdGxpZ2h0R3JlZW46IFwiI2E2ZTNhMVwiLFxuLy8gXHRcdFx0bGlnaHRZZWxsb3c6IFwiI2Y5ZTJhZlwiLFxuLy8gXHRcdFx0bGlnaHRNYWdlbnRhOiBcIiNmNWMyZTdcIixcbi8vIFx0XHRcdGxpZ2h0Q3lhbjogXCIjOTRlMmQ1XCIsXG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIH07XG4vLyBjb25zdCBHUlVWQk9YOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG4vLyBcdGRhcmswX2hhcmQ6IFwiIzFkMjAyMVwiLFxuLy8gXHRkYXJrMDogXCIjMjgyODI4XCIsXG4vLyBcdGRhcmswX3NvZnQ6IFwiIzMyMzAyZlwiLFxuLy8gXHRkYXJrMTogXCIjM2MzODM2XCIsXG4vLyBcdGRhcmsyOiBcIiM1MDQ5NDVcIixcbi8vIFx0ZGFyazM6IFwiIzY2NWM1NFwiLFxuLy8gXHRkYXJrNDogXCIjN2M2ZjY0XCIsXG5cbi8vIFx0Z3JheV8yNDU6IFwiIzkyODM3NFwiLFxuLy8gXHRncmF5XzI0NDogXCIjOTI4Mzc0XCIsXG5cbi8vIFx0bGlnaHQwX2hhcmQ6IFwiI2Y5ZjVkN1wiLFxuLy8gXHRsaWdodDA6IFwiI2ZiZjFjN1wiLFxuLy8gXHRsaWdodDBfc29mdDogXCIjZjJlNWJjXCIsXG4vLyBcdGxpZ2h0MTogXCIjZWJkYmIyXCIsXG4vLyBcdGxpZ2h0MjogXCIjZDVjNGExXCIsXG4vLyBcdGxpZ2h0MzogXCIjYmRhZTkzXCIsXG4vLyBcdGxpZ2h0NDogXCIjYTg5OTg0XCIsXG5cbi8vIFx0YnJpZ2h0X3JlZDogXCIjZmI0OTM0XCIsXG4vLyBcdGJyaWdodF9ncmVlbjogXCIjYjhiYjI2XCIsXG4vLyBcdGJyaWdodF95ZWxsb3c6IFwiI2ZhYmQyZlwiLFxuLy8gXHRicmlnaHRfYmx1ZTogXCIjODNhNTk4XCIsXG4vLyBcdGJyaWdodF9wdXJwbGU6IFwiI2QzODY5YlwiLFxuLy8gXHRicmlnaHRfYXF1YTogXCIjOGVjMDdjXCIsXG4vLyBcdGJyaWdodF9vcmFuZ2U6IFwiI2ZlODAxOVwiLFxuXG4vLyBcdG5ldXRyYWxfcmVkOiBcIiNjYzI0MWRcIixcbi8vIFx0bmV1dHJhbF9ncmVlbjogXCIjOTg5NzFhXCIsXG4vLyBcdG5ldXRyYWxfeWVsbG93OiBcIiNkNzk5MjFcIixcbi8vIFx0bmV1dHJhbF9ibHVlOiBcIiM0NTg1ODhcIixcbi8vIFx0bmV1dHJhbF9wdXJwbGU6IFwiI2IxNjI4NlwiLFxuLy8gXHRuZXV0cmFsX2FxdWE6IFwiIzY4OWQ2YVwiLFxuLy8gXHRuZXV0cmFsX29yYW5nZTogXCIjZDY1ZDBlXCIsXG5cbi8vIFx0ZmFkZWRfcmVkOiBcIiM5ZDAwMDZcIixcbi8vIFx0ZmFkZWRfZ3JlZW46IFwiIzc5NzQwZVwiLFxuLy8gXHRmYWRlZF95ZWxsb3c6IFwiI2I1NzYxNFwiLFxuLy8gXHRmYWRlZF9ibHVlOiBcIiMwNzY2NzhcIixcbi8vIFx0ZmFkZWRfcHVycGxlOiBcIiM4ZjNmNzFcIixcbi8vIFx0ZmFkZWRfYXF1YTogXCIjNDI3YjU4XCIsXG4vLyBcdGZhZGVkX29yYW5nZTogXCIjYWYzYTAzXCIsXG4vLyB9O1xuLy8gY29uc3QgTk9SRDogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuXG4vLyB9O1xuLy8gY29uc3QgRFJBQ1VMQTogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuXG4vLyB9O1xuXG4vLyBUaGVtZSBDcmVhdGlvblxuY29uc3QgREVGQVVMVF9USEVNRTogQ29kZVN0eWxlclRoZW1lID0ge1xuXHRzZXR0aW5nczogVEhFTUVfREVGQVVMVF9TRVRUSU5HUyxcblx0Y29sb3Vyczoge1xuXHRcdGxpZ2h0OiBUSEVNRV9GQUxMQkFDS19DT0xPVVJTLFxuXHRcdGRhcms6IFRIRU1FX0ZBTExCQUNLX0NPTE9VUlMsXG5cdH0sXG59O1xuY29uc3QgU09MQVJJWkVEX1RIRU1FOiBDb2RlU3R5bGVyVGhlbWUgPSB7XG5cdHNldHRpbmdzOiBUSEVNRV9ERUZBVUxUX1NFVFRJTkdTLFxuXHRjb2xvdXJzOiB7XG5cdFx0bGlnaHQ6IHtcblx0XHRcdGNvZGVibG9jazoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTMsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0fSxcblx0XHRcdGd1dHRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTIsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiIzZjNmM2Y1wiLFxuXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiM4YzhjOGNcIixcblx0XHRcdH0sXG5cdFx0XHRoZWFkZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjRDVDQ0I0XCIsXG5cdFx0XHRcdHRpdGxlOiB7XG5cdFx0XHRcdFx0dGV4dENvbG91cjogXCIjODY2NzA0XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjQjhCNUFBXCIsXG5cdFx0XHRcdFx0dGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGxpbmVDb2xvdXI6IFwiI0VERDQ4OVwiLFxuXHRcdFx0fSxcblx0XHRcdGhpZ2hsaWdodHM6IHtcblx0XHRcdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogU09MQVJJWkVELmJhc2UyLFxuXHRcdFx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBcIiM2MDQ2MDYzM1wiLFxuXHRcdFx0XHRkZWZhdWx0Q29sb3VyOiBcIiNFOURGQkFcIixcblx0XHRcdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcblx0XHRcdH0sXG5cdFx0XHRpbmxpbmU6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG5cdFx0XHR9LFxuXHRcdFx0YWR2YW5jZWQ6IHtcblx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0ZGFyazoge1xuXHRcdFx0Y29kZWJsb2NrOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMDMsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0fSxcblx0XHRcdGd1dHRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAyLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM2YzZjNmNcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjNGM0YzRjXCIsXG5cdFx0XHR9LFxuXHRcdFx0aGVhZGVyOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzBhNDU1NFwiLFxuXHRcdFx0XHR0aXRsZToge1xuXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2RhZGFkYVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzAwODA4MFwiLFxuXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiM0NmNjZWRcIixcblx0XHRcdH0sXG5cdFx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMDIsXG5cdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzQ2OGVlYjMzXCIsXG5cdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiIzA1NGI1Y1wiLFxuXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuXHRcdFx0fSxcblx0XHRcdGlubGluZToge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjMDAwMDAwXCIsXG5cdFx0XHR9LFxuXHRcdFx0YWR2YW5jZWQ6IHtcblx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuXHRcdFx0fVxuXHRcdH0sXG5cdH0sXG59O1xuLy8gY29uc3QgTk9SRF9USEVNRSA9IHtcblxuLy8gfTtcbi8vIGNvbnN0IERSQUNVTEFfVEhFTUUgPSB7XG5cbi8vIH07XG4vLyBjb25zdCBDQVRQVUNDSU5fVEhFTUUgPSB7XG5cbi8vIH07XG4vLyBjb25zdCBHUlVWQk9YX1RIRU1FID0ge1xuLy8gXHRzZXR0aW5nczogVEhFTUVfREVGQVVMVF9TRVRUSU5HUyxcbi8vIFx0Y29sb3Vyczoge1xuLy8gXHRcdGxpZ2h0OiB7XG4vLyBcdFx0XHRjb2RlYmxvY2s6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5saWdodDAsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGd1dHRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MSxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG4vLyBcdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzhjOGM4Y1wiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGhlYWRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNENUNDQjRcIixcbi8vIFx0XHRcdFx0dGl0bGU6IHtcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM4NjY3MDRcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNCOEI1QUFcIixcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNDMjVGMzBcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGluZUNvbG91cjogXCIjRURENDg5XCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGlnaGxpZ2h0czoge1xuLy8gXHRcdFx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MSxcbi8vIFx0XHRcdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCIjNjA0NjA2MzNcIixcbi8vIFx0XHRcdFx0ZGVmYXVsdENvbG91cjogXCIjRTlERkJBXCIsXG4vLyBcdFx0XHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aW5saW5lOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1gubGlnaHQwLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0YWR2YW5jZWQ6IHtcbi8vIFx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuLy8gXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuLy8gXHRcdFx0fVxuLy8gXHRcdH0sXG4vLyBcdFx0ZGFyazoge1xuLy8gXHRcdFx0Y29kZWJsb2NrOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1guZGFyazAsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGd1dHRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmRhcmsxLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM2YzZjNmNcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjNGM0YzRjXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGVhZGVyOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzBhNDU1NFwiLFxuLy8gXHRcdFx0XHR0aXRsZToge1xuLy8gXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2RhZGFkYVwiLFxuLy8gXHRcdFx0XHR9LFxuLy8gXHRcdFx0XHRsYW5ndWFnZVRhZzoge1xuLy8gXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzAwODA4MFwiLFxuLy8gXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuLy8gXHRcdFx0XHR9LFxuLy8gXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiM0NmNjZWRcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRoaWdobGlnaHRzOiB7XG4vLyBcdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IEdSVVZCT1guZGFyazEsXG4vLyBcdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzQ2OGVlYjMzXCIsXG4vLyBcdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiIzA1NGI1Y1wiLFxuLy8gXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGlubGluZToge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmRhcmswLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjMDAwMDAwXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0YWR2YW5jZWQ6IHtcbi8vIFx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuLy8gXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuLy8gXHRcdFx0fVxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyB9O1xuXG5leHBvcnQgY29uc3QgSU5CVUlMVF9USEVNRVM6IFJlY29yZDxzdHJpbmcsQ29kZVN0eWxlclRoZW1lPiA9IHtcblx0XCJEZWZhdWx0XCI6IERFRkFVTFRfVEhFTUUsXG5cdFwiU29sYXJpemVkXCI6IFNPTEFSSVpFRF9USEVNRSxcbn07XG5cbi8vIERlZmF1bHQgVmFsdWVzXG5leHBvcnQgY29uc3QgRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUyA9IFwicHl0aG9uIHRpdGxlOmZvb1wiO1xuZXhwb3J0IGNvbnN0IEVYQU1QTEVfQ09ERUJMT0NLX0NPTlRFTlQgPSBcInByaW50KFxcXCJUaGlzIGxpbmUgaXMgdmVyeSBsb25nIGFuZCBzaG91bGQgYmUgdXNlZCBhcyBhbiBleGFtcGxlIGZvciBob3cgdGhlIHBsdWdpbiBkZWFscyB3aXRoIHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIHZlcnkgbG9uZyBsaW5lcyBnaXZlbiB0aGUgY2hvaWNlIG9mIGNvZGVibG9jayBwYXJhbWV0ZXJzIGFuZCBzZXR0aW5ncy5cXFwiKVxcbnByaW50KFxcXCJUaGlzIGxpbmUgaXMgaGlnaGxpZ2h0ZWQuXFxcIilcIjtcbmV4cG9ydCBjb25zdCBFWEFNUExFX0lOTElORV9DT0RFID0gXCJ7cHl0aG9uIGljb24gdGl0bGU6Zm9vfSBwcmludChcXFwiVGhpcyBpcyBpbmxpbmUgY29kZVxcXCIpXCI7XG5leHBvcnQgY29uc3QgRVhDTFVERURfTEFOR1VBR0VTID0gXCJhZC0qXCI7XG5leHBvcnQgY29uc3QgV0hJVEVMSVNUX0NPREVCTE9DS1MgPSBcInJ1bi0qXCI7XG5cbi8vIFBsdWdpbiBkZWZhdWx0IHNldHRpbmdzXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVRUSU5HUzogQ29kZVN0eWxlclNldHRpbmdzID0ge1xuXHR0aGVtZXM6IHN0cnVjdHVyZWRDbG9uZShJTkJVSUxUX1RIRU1FUyksXG5cdHNlbGVjdGVkVGhlbWU6IFwiRGVmYXVsdFwiLFxuXHRjdXJyZW50VGhlbWU6IHN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1RIRU1FKSxcblx0bmV3VGhlbWU6IFwiXCIsXG5cdG5ld0hpZ2hsaWdodDogXCJcIixcblx0ZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnM6IEVYQU1QTEVfQ09ERUJMT0NLX1BBUkFNRVRFUlMsXG5cdGV4YW1wbGVDb2RlYmxvY2tDb250ZW50OiBFWEFNUExFX0NPREVCTE9DS19DT05URU5ULFxuXHRleGFtcGxlSW5saW5lQ29kZTogRVhBTVBMRV9JTkxJTkVfQ09ERSxcblx0ZGVjb3JhdGVQcmludDogdHJ1ZSxcblx0ZXhjbHVkZWRMYW5ndWFnZXM6IEVYQ0xVREVEX0xBTkdVQUdFUyxcblx0cHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdDogV0hJVEVMSVNUX0NPREVCTE9DS1MsXG5cdHJlZGlyZWN0TGFuZ3VhZ2VzOiB7fSxcblx0dmVyc2lvbjogXCIxLjEuMVwiLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTZXR0aW5ncyhzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0aWYgKHR5cGVvZiBzZXR0aW5ncz8udmVyc2lvbiA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gc2V0dGluZ3NDbGVhcigpO1xuXHR3aGlsZSAoc2VtdmVyTmV3ZXIoREVGQVVMVF9TRVRUSU5HUy52ZXJzaW9uLHNldHRpbmdzLnZlcnNpb24pKSB7XG5cdFx0aWYgKHNldHRpbmdzLnZlcnNpb24gaW4gc2V0dGluZ3NVcGRhdGVycylcblx0XHRcdHNldHRpbmdzID0gc2V0dGluZ3NVcGRhdGVyc1tzZXR0aW5ncy52ZXJzaW9uXShzZXR0aW5ncyk7XG5cdFx0ZWxzZVxuXHRcdFx0c2V0dGluZ3MgPSBzZXR0aW5nc0NsZWFyKCk7XG5cdH1cblx0cmV0dXJuIHNldHRpbmdzO1xufVxuZnVuY3Rpb24gc2VtdmVyTmV3ZXIobmV3VmVyc2lvbjogc3RyaW5nLCBvbGRWZXJzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIG5ld1ZlcnNpb24ubG9jYWxlQ29tcGFyZShvbGRWZXJzaW9uLCB1bmRlZmluZWQsIHsgbnVtZXJpYzogdHJ1ZSB9KSA9PT0gMTtcbn1cbmZ1bmN0aW9uIHNldHRpbmdzVmVyc2lvblVwZGF0ZShzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzLCB0aGVtZVVwZGF0ZXI6ICh0aGVtZTogQ29kZVN0eWxlclRoZW1lKT0+Q29kZVN0eWxlclRoZW1lID0gKHRoZW1lKT0+dGhlbWUsIG90aGVyU2V0dGluZ3NVcGRhdGVyOiAoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncyk9PkNvZGVTdHlsZXJTZXR0aW5ncyA9IChzZXR0aW5ncyk9PnNldHRpbmdzLCByZWRpcmVjdExhbmd1YWdlc1VwZGF0ZXI6IChyZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT4pPT5SZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9PiA9IChyZWRpcmVjdExhbmd1YWdlcyk9PnJlZGlyZWN0TGFuZ3VhZ2VzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0Zm9yIChjb25zdCBbbmFtZSwgdGhlbWVdIG9mIE9iamVjdC5lbnRyaWVzKHNldHRpbmdzLnRoZW1lcykpIHtcblx0XHRzZXR0aW5ncy50aGVtZXNbbmFtZV0gPSB0aGVtZVVwZGF0ZXIodGhlbWUpO1xuXHR9XG5cdHNldHRpbmdzLmN1cnJlbnRUaGVtZSA9IHN0cnVjdHVyZWRDbG9uZShzZXR0aW5ncy50aGVtZXNbc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0pO1xuXHRzZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyA9IHJlZGlyZWN0TGFuZ3VhZ2VzVXBkYXRlcihzZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyk7XG5cdHNldHRpbmdzID0gb3RoZXJTZXR0aW5nc1VwZGF0ZXIoc2V0dGluZ3MpO1xuXHRzZXR0aW5ncy52ZXJzaW9uID0gT2JqZWN0LmtleXMoc2V0dGluZ3NVcGRhdGVycykuZmluZCgodmFsdWUsaW5kZXgsYXJyYXkpPT5hcnJheT8uW2luZGV4LTFdPT09c2V0dGluZ3MudmVyc2lvbikgPz8gXCIxLjAuMFwiO1xuXHRyZXR1cm4gc2V0dGluZ3M7XG59XG5mdW5jdGlvbiBzZXR0aW5nc1ByZXNlcnZlKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpOiBDb2RlU3R5bGVyU2V0dGluZ3Mge1xuXHRzZXR0aW5ncy52ZXJzaW9uID0gT2JqZWN0LmtleXMoc2V0dGluZ3NVcGRhdGVycykuZmluZCgodmFsdWUsaW5kZXgsYXJyYXkpPT5hcnJheT8uW2luZGV4LTFdPT09c2V0dGluZ3MudmVyc2lvbikgPz8gXCIxLjAuMFwiO1xuXHRyZXR1cm4gc2V0dGluZ3M7XG59XG5mdW5jdGlvbiBzZXR0aW5nc0NsZWFyKCk6IENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdHJldHVybiBERUZBVUxUX1NFVFRJTkdTO1xufVxuXG5jb25zdCBzZXR0aW5nc1VwZGF0ZXJzOiBSZWNvcmQ8c3RyaW5nLChzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKT0+Q29kZVN0eWxlclNldHRpbmdzPiA9IHtcblx0XCIxLjAuMFwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC4xXCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjJcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuM1wiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC40XCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjVcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuNlwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC43XCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4wLjhcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjAuOVwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMC4xMFwiOiAoc2V0dGluZ3MpPT5zZXR0aW5nc1ZlcnNpb25VcGRhdGUoc2V0dGluZ3MsKHRoZW1lKT0+e1xuXHRcdHRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSA9IHRydWU7XG5cdFx0cmV0dXJuIHRoZW1lO1xuXHR9LChzZXR0aW5ncyk9PnsvL0B0cy1leHBlY3QtZXJyb3IgT2xkZXIgaW50ZXJmYWNlIHZlcnNpb25zXG5cdFx0ZGVsZXRlIHNldHRpbmdzLnNwZWNpYWxMYW5ndWFnZXM7XG5cdFx0cmV0dXJuIHNldHRpbmdzO1xuXHR9KSxcblx0XCIxLjAuMTFcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuMFwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS4xXCI6IHNldHRpbmdzUHJlc2VydmUsXG59O1xuXG4vLyBDb25zdGFudHNcbmV4cG9ydCBjb25zdCBGT0xEX1BMQUNFSE9MREVSID0gXCJGb2xkZWQgQ29kZVwiO1xuZXhwb3J0IGNvbnN0IFBBUkFNRVRFUlMgPSBbXCJ0aXRsZVwiLFwiZm9sZFwiLFwibG5cIixcIndyYXBcIixcInVud3JhcFwiLFwiaWdub3JlXCJdO1xuZXhwb3J0IGNvbnN0IFRSQU5TSVRJT05fTEVOR1RIID0gMjQwOyAvLyAyNDBtc1xuZXhwb3J0IGNvbnN0IFNQRUNJQUxfTEFOR1VBR0VTID0gW1wiXnByZXZpZXckXCIsXCJeaW5jbHVkZSRcIixcIl5vdXRwdXQkXCIsXCJecnVuLS4rJFwiXTtcbmV4cG9ydCBjb25zdCBTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCA9IFwiQENvZGUtU3R5bGVyLVNldHRpbmdzOlwiO1xuXG5jb25zdCBQUklTTV9MQU5HVUFHRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0geyAvLyBQcmlzbSBMYW5ndWFnZXM6IGh0dHBzOi8vcHJpc21qcy5jb20vcGx1Z2lucy9zaG93LWxhbmd1YWdlL1xuXHQvLyBcIm5vbmVcIjogXCJQbGFpbiB0ZXh0XCIsIC8vIE5PVEU6IE9ic2lkaWFuIHVzZXMgdGhpcyBmb3IgY29kZWJsb2NrcyB3aXRob3V0IGxhbmd1YWdlIG5hbWVzXG5cdFwicGxhaW5cIjogXCJQbGFpbiB0ZXh0XCIsXG5cdFwicGxhaW50ZXh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInRleHRcIjogXCJQbGFpbiB0ZXh0XCIsXG5cdFwidHh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcImh0bWxcIjogXCJIVE1MXCIsXG5cdFwieG1sXCI6IFwiWE1MXCIsXG5cdFwic3ZnXCI6IFwiU1ZHXCIsXG5cdFwibWF0aG1sXCI6IFwiTWF0aE1MXCIsXG5cdFwic3NtbFwiOiBcIlNTTUxcIixcblx0XCJyc3NcIjogXCJSU1NcIixcblx0XCJjc3NcIjogXCJDU1NcIixcblx0XCJjbGlrZVwiOiBcIkMtbGlrZVwiLFxuXHRcImpzXCI6IFwiSmF2YVNjcmlwdFwiLFxuXHRcImFiYXBcIjogXCJBQkFQXCIsXG5cdFwiYWJuZlwiOiBcIkFCTkZcIixcblx0XCJhbFwiOiBcIkFMXCIsXG5cdFwiYW50bHI0XCI6IFwiQU5UTFI0XCIsXG5cdFwiZzRcIjogXCJBTlRMUjRcIixcblx0XCJhcGFjaGVjb25mXCI6IFwiQXBhY2hlIENvbmZpZ3VyYXRpb25cIixcblx0XCJhcGxcIjogXCJBUExcIixcblx0XCJhcWxcIjogXCJBUUxcIixcblx0XCJpbm9cIjogXCJBcmR1aW5vXCIsXG5cdFwiYXJmZlwiOiBcIkFSRkZcIixcblx0XCJhcm1hc21cIjogXCJBUk0gQXNzZW1ibHlcIixcblx0XCJhcm0tYXNtXCI6IFwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJ0XCI6IFwiQXJ0dXJvXCIsXG5cdFwiYXNjaWlkb2NcIjogXCJBc2NpaURvY1wiLFxuXHRcImFkb2NcIjogXCJBc2NpaURvY1wiLFxuXHRcImFzcG5ldFwiOiBcIkFTUC5ORVQgKEMjKVwiLFxuXHRcImFzbTY1MDJcIjogXCI2NTAyIEFzc2VtYmx5XCIsXG5cdFwiYXNtYXRtZWxcIjogXCJBdG1lbCBBVlIgQXNzZW1ibHlcIixcblx0XCJhdXRvaG90a2V5XCI6IFwiQXV0b0hvdGtleVwiLFxuXHRcImF1dG9pdFwiOiBcIkF1dG9JdFwiLFxuXHRcImF2aXN5bnRoXCI6IFwiQXZpU3ludGhcIixcblx0XCJhdnNcIjogXCJBdmlTeW50aFwiLFxuXHRcImF2cm8taWRsXCI6IFwiQXZybyBJRExcIixcblx0XCJhdmRsXCI6IFwiQXZybyBJRExcIixcblx0XCJhd2tcIjogXCJBV0tcIixcblx0XCJnYXdrXCI6IFwiR0FXS1wiLFxuXHRcInNoXCI6IFwiU2hlbGxcIixcblx0XCJiYXNpY1wiOiBcIkJBU0lDXCIsXG5cdFwiYmJjb2RlXCI6IFwiQkJjb2RlXCIsXG5cdFwiYmJqXCI6IFwiQkJqXCIsXG5cdFwiYm5mXCI6IFwiQk5GXCIsXG5cdFwicmJuZlwiOiBcIlJCTkZcIixcblx0XCJicW5cIjogXCJCUU5cIixcblx0XCJic2xcIjogXCJCU0wgKDFDOkVudGVycHJpc2UpXCIsXG5cdFwib3NjcmlwdFwiOiBcIk9uZVNjcmlwdFwiLFxuXHRcImNzaGFycFwiOiBcIkMjXCIsXG5cdFwiY3NcIjogXCJDI1wiLFxuXHRcImRvdG5ldFwiOiBcIkMjXCIsXG5cdFwiY3BwXCI6IFwiQysrXCIsXG5cdFwiY2ZzY3JpcHRcIjogXCJDRlNjcmlwdFwiLFxuXHRcImNmY1wiOiBcIkNGU2NyaXB0XCIsXG5cdFwiY2lsXCI6IFwiQ0lMXCIsXG5cdFwiY2lsa2NcIjogXCJDaWxrL0NcIixcblx0XCJjaWxrLWNcIjogXCJDaWxrL0NcIixcblx0XCJjaWxrY3BwXCI6IFwiQ2lsay9DKytcIixcblx0XCJjaWxrLWNwcFwiOiBcIkNpbGsvQysrXCIsXG5cdFwiY2lsa1wiOiBcIkNpbGsvQysrXCIsXG5cdFwiY21ha2VcIjogXCJDTWFrZVwiLFxuXHRcImNvYm9sXCI6IFwiQ09CT0xcIixcblx0XCJjb2ZmZWVcIjogXCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb25jXCI6IFwiQ29uY3VybmFzXCIsXG5cdFwiY3NwXCI6IFwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIixcblx0XCJjc3MtZXh0cmFzXCI6IFwiQ1NTIEV4dHJhc1wiLFxuXHRcImNzdlwiOiBcIkNTVlwiLFxuXHRcImN1ZVwiOiBcIkNVRVwiLFxuXHRcImRhdGF3ZWF2ZVwiOiBcIkRhdGFXZWF2ZVwiLFxuXHRcImRheFwiOiBcIkRBWFwiLFxuXHRcImRqYW5nb1wiOiBcIkRqYW5nby9KaW5qYTJcIixcblx0XCJqaW5qYTJcIjogXCJEamFuZ28vSmluamEyXCIsXG5cdFwiZG5zLXpvbmUtZmlsZVwiOiBcIkROUyB6b25lIGZpbGVcIixcblx0XCJkbnMtem9uZVwiOiBcIkROUyB6b25lIGZpbGVcIixcblx0XCJkb2NrZXJmaWxlXCI6IFwiRG9ja2VyXCIsXG5cdFwiZG90XCI6IFwiRE9UIChHcmFwaHZpeilcIixcblx0XCJndlwiOiBcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZWJuZlwiOiBcIkVCTkZcIixcblx0XCJlZGl0b3Jjb25maWdcIjogXCJFZGl0b3JDb25maWdcIixcblx0XCJlanNcIjogXCJFSlNcIixcblx0XCJldGx1YVwiOiBcIkVtYmVkZGVkIEx1YSB0ZW1wbGF0aW5nXCIsXG5cdFwiZXJiXCI6IFwiRVJCXCIsXG5cdFwiZXhjZWwtZm9ybXVsYVwiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHN4XCI6IFwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc1wiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJmc2hhcnBcIjogXCJGI1wiLFxuXHRcImZpcmVzdG9yZS1zZWN1cml0eS1ydWxlc1wiOiBcIkZpcmVzdG9yZSBzZWN1cml0eSBydWxlc1wiLFxuXHRcImZ0bFwiOiBcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIixcblx0XCJnbWxcIjogXCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYW1lbWFrZXJsYW5ndWFnZVwiOiBcIkdhbWVNYWtlciBMYW5ndWFnZVwiLFxuXHRcImdhcFwiOiBcIkdBUCAoQ0FTKVwiLFxuXHRcImdjb2RlXCI6IFwiRy1jb2RlXCIsXG5cdFwiZ2RzY3JpcHRcIjogXCJHRFNjcmlwdFwiLFxuXHRcImdlZGNvbVwiOiBcIkdFRENPTVwiLFxuXHRcImdldHRleHRcIjogXCJnZXR0ZXh0XCIsXG5cdFwicG9cIjogXCJnZXR0ZXh0XCIsXG5cdFwiZ2xzbFwiOiBcIkdMU0xcIixcblx0XCJnblwiOiBcIkdOXCIsXG5cdFwiZ25pXCI6IFwiR05cIixcblx0XCJsaW5rZXItc2NyaXB0XCI6IFwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJsZFwiOiBcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwiZ28tbW9kdWxlXCI6IFwiR28gbW9kdWxlXCIsXG5cdFwiZ28tbW9kXCI6IFwiR28gbW9kdWxlXCIsXG5cdFwiZ3JhcGhxbFwiOiBcIkdyYXBoUUxcIixcblx0XCJoYnNcIjogXCJIYW5kbGViYXJzXCIsXG5cdFwiaHNcIjogXCJIYXNrZWxsXCIsXG5cdFwiaGNsXCI6IFwiSENMXCIsXG5cdFwiaGxzbFwiOiBcIkhMU0xcIixcblx0XCJodHRwXCI6IFwiSFRUUFwiLFxuXHRcImhwa3BcIjogXCJIVFRQIFB1YmxpYy1LZXktUGluc1wiLFxuXHRcImhzdHNcIjogXCJIVFRQIFN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHlcIixcblx0XCJpY2hpZ29qYW1cIjogXCJJY2hpZ29KYW1cIixcblx0XCJpY3UtbWVzc2FnZS1mb3JtYXRcIjogXCJJQ1UgTWVzc2FnZSBGb3JtYXRcIixcblx0XCJpZHJcIjogXCJJZHJpc1wiLFxuXHRcImlnbm9yZVwiOiBcIi5pZ25vcmVcIixcblx0XCJnaXRpZ25vcmVcIjogXCIuZ2l0aWdub3JlXCIsXG5cdFwiaGdpZ25vcmVcIjogXCIuaGdpZ25vcmVcIixcblx0XCJucG1pZ25vcmVcIjogXCIubnBtaWdub3JlXCIsXG5cdFwiaW5mb3JtN1wiOiBcIkluZm9ybSA3XCIsXG5cdFwiamF2YWRvY1wiOiBcIkphdmFEb2NcIixcblx0XCJqYXZhZG9jbGlrZVwiOiBcIkphdmFEb2MtbGlrZVwiLFxuXHRcImphdmFzdGFja3RyYWNlXCI6IFwiSmF2YSBzdGFjayB0cmFjZVwiLFxuXHRcImpxXCI6IFwiSlFcIixcblx0XCJqc2RvY1wiOiBcIkpTRG9jXCIsXG5cdFwianMtZXh0cmFzXCI6IFwiSlMgRXh0cmFzXCIsXG5cdFwianNvblwiOiBcIkpTT05cIixcblx0XCJ3ZWJtYW5pZmVzdFwiOiBcIldlYiBBcHAgTWFuaWZlc3RcIixcblx0XCJqc29uNVwiOiBcIkpTT041XCIsXG5cdFwianNvbnBcIjogXCJKU09OUFwiLFxuXHRcImpzc3RhY2t0cmFjZVwiOiBcIkpTIHN0YWNrIHRyYWNlXCIsXG5cdFwianMtdGVtcGxhdGVzXCI6IFwiSlMgVGVtcGxhdGVzXCIsXG5cdFwia2VlcGFsaXZlZFwiOiBcIktlZXBhbGl2ZWQgQ29uZmlndXJlXCIsXG5cdFwia3RzXCI6IFwiS290bGluIFNjcmlwdFwiLFxuXHRcImt0XCI6IFwiS290bGluXCIsXG5cdFwia3VtaXJcIjogXCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1bVwiOiBcIkt1TWlyIChcdTA0MUFcdTA0NDNcdTA0MUNcdTA0MzhcdTA0NDApXCIsXG5cdFwibGF0ZXhcIjogXCJMYVRlWFwiLFxuXHRcInRleFwiOiBcIlRlWFwiLFxuXHRcImNvbnRleHRcIjogXCJDb25UZVh0XCIsXG5cdFwibGlseXBvbmRcIjogXCJMaWx5UG9uZFwiLFxuXHRcImx5XCI6IFwiTGlseVBvbmRcIixcblx0XCJlbWFjc1wiOiBcIkxpc3BcIixcblx0XCJlbGlzcFwiOiBcIkxpc3BcIixcblx0XCJlbWFjcy1saXNwXCI6IFwiTGlzcFwiLFxuXHRcImxsdm1cIjogXCJMTFZNIElSXCIsXG5cdFwibG9nXCI6IFwiTG9nIGZpbGVcIixcblx0XCJsb2xjb2RlXCI6IFwiTE9MQ09ERVwiLFxuXHRcIm1hZ21hXCI6IFwiTWFnbWEgKENBUylcIixcblx0XCJtZFwiOiBcIk1hcmtkb3duXCIsXG5cdFwibWFya3VwLXRlbXBsYXRpbmdcIjogXCJNYXJrdXAgdGVtcGxhdGluZ1wiLFxuXHRcIm1hdGxhYlwiOiBcIk1BVExBQlwiLFxuXHRcIm1heHNjcmlwdFwiOiBcIk1BWFNjcmlwdFwiLFxuXHRcIm1lbFwiOiBcIk1FTFwiLFxuXHRcIm1ldGFmb250XCI6IFwiTUVUQUZPTlRcIixcblx0XCJtb25nb2RiXCI6IFwiTW9uZ29EQlwiLFxuXHRcIm1vb25cIjogXCJNb29uU2NyaXB0XCIsXG5cdFwibjFxbFwiOiBcIk4xUUxcIixcblx0XCJuNGpzXCI6IFwiTjRKU1wiLFxuXHRcIm40anNkXCI6IFwiTjRKU1wiLFxuXHRcIm5hbmQydGV0cmlzLWhkbFwiOiBcIk5hbmQgVG8gVGV0cmlzIEhETFwiLFxuXHRcIm5hbmlzY3JpcHRcIjogXCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFuaVwiOiBcIk5hbmlub3ZlbCBTY3JpcHRcIixcblx0XCJuYXNtXCI6IFwiTkFTTVwiLFxuXHRcIm5lb25cIjogXCJORU9OXCIsXG5cdFwibmdpbnhcIjogXCJuZ2lueFwiLFxuXHRcIm5zaXNcIjogXCJOU0lTXCIsXG5cdFwib2JqZWN0aXZlY1wiOiBcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2JqY1wiOiBcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2NhbWxcIjogXCJPQ2FtbFwiLFxuXHRcIm9wZW5jbFwiOiBcIk9wZW5DTFwiLFxuXHRcIm9wZW5xYXNtXCI6IFwiT3BlblFhc21cIixcblx0XCJxYXNtXCI6IFwiT3BlblFhc21cIixcblx0XCJwYXJpZ3BcIjogXCJQQVJJL0dQXCIsXG5cdFwib2JqZWN0cGFzY2FsXCI6IFwiT2JqZWN0IFBhc2NhbFwiLFxuXHRcInBzbFwiOiBcIlBBVFJPTCBTY3JpcHRpbmcgTGFuZ3VhZ2VcIixcblx0XCJwY2F4aXNcIjogXCJQQy1BeGlzXCIsXG5cdFwicHhcIjogXCJQQy1BeGlzXCIsXG5cdFwicGVvcGxlY29kZVwiOiBcIlBlb3BsZUNvZGVcIixcblx0XCJwY29kZVwiOiBcIlBlb3BsZUNvZGVcIixcblx0XCJwaHBcIjogXCJQSFBcIixcblx0XCJwaHBkb2NcIjogXCJQSFBEb2NcIixcblx0XCJwaHAtZXh0cmFzXCI6IFwiUEhQIEV4dHJhc1wiLFxuXHRcInBsYW50LXVtbFwiOiBcIlBsYW50VU1MXCIsXG5cdFwicGxhbnR1bWxcIjogXCJQbGFudFVNTFwiLFxuXHRcInBsc3FsXCI6IFwiUEwvU1FMXCIsXG5cdFwicG93ZXJxdWVyeVwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJwcVwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJtc2NyaXB0XCI6IFwiUG93ZXJRdWVyeVwiLFxuXHRcInBvd2Vyc2hlbGxcIjogXCJQb3dlclNoZWxsXCIsXG5cdFwicHJvbXFsXCI6IFwiUHJvbVFMXCIsXG5cdFwicHJvcGVydGllc1wiOiBcIi5wcm9wZXJ0aWVzXCIsXG5cdFwicHJvdG9idWZcIjogXCJQcm90b2NvbCBCdWZmZXJzXCIsXG5cdFwicHVyZWJhc2ljXCI6IFwiUHVyZUJhc2ljXCIsXG5cdFwicGJmYXNtXCI6IFwiUHVyZUJhc2ljXCIsXG5cdFwicHVyc1wiOiBcIlB1cmVTY3JpcHRcIixcblx0XCJweVwiOiBcIlB5dGhvblwiLFxuXHRcInFzaGFycFwiOiBcIlEjXCIsXG5cdFwicXNcIjogXCJRI1wiLFxuXHRcInFcIjogXCJRIChrZGIrIGRhdGFiYXNlKVwiLFxuXHRcInFtbFwiOiBcIlFNTFwiLFxuXHRcInJrdFwiOiBcIlJhY2tldFwiLFxuXHRcImNzaHRtbFwiOiBcIlJhem9yIEMjXCIsXG5cdFwicmF6b3JcIjogXCJSYXpvciBDI1wiLFxuXHRcImpzeFwiOiBcIlJlYWN0IEpTWFwiLFxuXHRcInRzeFwiOiBcIlJlYWN0IFRTWFwiLFxuXHRcInJlbnB5XCI6IFwiUmVuJ3B5XCIsXG5cdFwicnB5XCI6IFwiUmVuJ3B5XCIsXG5cdFwicmVzXCI6IFwiUmVTY3JpcHRcIixcblx0XCJyZXN0XCI6IFwicmVTVCAocmVTdHJ1Y3R1cmVkVGV4dClcIixcblx0XCJyb2JvdGZyYW1ld29ya1wiOiBcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJvYm90XCI6IFwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicmJcIjogXCJSdWJ5XCIsXG5cdFwic2FzXCI6IFwiU0FTXCIsXG5cdFwic2Fzc1wiOiBcIlNhc3MgKFNhc3MpXCIsXG5cdFwic2Nzc1wiOiBcIlNhc3MgKFNDU1MpXCIsXG5cdFwic2hlbGwtc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaC1zZXNzaW9uXCI6IFwiU2hlbGwgc2Vzc2lvblwiLFxuXHRcInNoZWxsc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzbWxcIjogXCJTTUxcIixcblx0XCJzbWxualwiOiBcIlNNTC9OSlwiLFxuXHRcInNvbGlkaXR5XCI6IFwiU29saWRpdHkgKEV0aGVyZXVtKVwiLFxuXHRcInNvbFwiOiBcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2x1dGlvbi1maWxlXCI6IFwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNsblwiOiBcIlNvbHV0aW9uIGZpbGVcIixcblx0XCJzb3lcIjogXCJTb3kgKENsb3N1cmUgVGVtcGxhdGUpXCIsXG5cdFwic3BhcnFsXCI6IFwiU1BBUlFMXCIsXG5cdFwicnFcIjogXCJTUEFSUUxcIixcblx0XCJzcGx1bmstc3BsXCI6IFwiU3BsdW5rIFNQTFwiLFxuXHRcInNxZlwiOiBcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiLFxuXHRcInNxbFwiOiBcIlNRTFwiLFxuXHRcInN0YXRhXCI6IFwiU3RhdGEgQWRvXCIsXG5cdFwiaWVjc3RcIjogXCJTdHJ1Y3R1cmVkIFRleHQgKElFQyA2MTEzMS0zKVwiLFxuXHRcInN1cGVyY29sbGlkZXJcIjogXCJTdXBlckNvbGxpZGVyXCIsXG5cdFwic2NsYW5nXCI6IFwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInN5c3RlbWRcIjogXCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiLFxuXHRcInQ0LXRlbXBsYXRpbmdcIjogXCJUNCB0ZW1wbGF0aW5nXCIsXG5cdFwidDQtY3NcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDRcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDQtdmJcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCIsXG5cdFwidGFwXCI6IFwiVEFQXCIsXG5cdFwidHQyXCI6IFwiVGVtcGxhdGUgVG9vbGtpdCAyXCIsXG5cdFwidG9tbFwiOiBcIlRPTUxcIixcblx0XCJ0cmlja2xlXCI6IFwidHJpY2tsZVwiLFxuXHRcInRyb3lcIjogXCJ0cm95XCIsXG5cdFwidHJpZ1wiOiBcIlRyaUdcIixcblx0XCJ0c1wiOiBcIlR5cGVTY3JpcHRcIixcblx0XCJ0c2NvbmZpZ1wiOiBcIlRTQ29uZmlnXCIsXG5cdFwidXNjcmlwdFwiOiBcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVjXCI6IFwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidW9yYXpvclwiOiBcIlVPIFJhem9yIFNjcmlwdFwiLFxuXHRcInVyaVwiOiBcIlVSSVwiLFxuXHRcInVybFwiOiBcIlVSTFwiLFxuXHRcInZibmV0XCI6IFwiVkIuTmV0XCIsXG5cdFwidmhkbFwiOiBcIlZIRExcIixcblx0XCJ2aW1cIjogXCJ2aW1cIixcblx0XCJ2aXN1YWwtYmFzaWNcIjogXCJWaXN1YWwgQmFzaWNcIixcblx0XCJ2YmFcIjogXCJWQkFcIixcblx0XCJ2YlwiOiBcIlZpc3VhbCBCYXNpY1wiLFxuXHRcIndhc21cIjogXCJXZWJBc3NlbWJseVwiLFxuXHRcIndlYi1pZGxcIjogXCJXZWIgSURMXCIsXG5cdFwid2ViaWRsXCI6IFwiV2ViIElETFwiLFxuXHRcIndnc2xcIjogXCJXR1NMXCIsXG5cdFwid2lraVwiOiBcIldpa2kgbWFya3VwXCIsXG5cdFwid29sZnJhbVwiOiBcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJuYlwiOiBcIk1hdGhlbWF0aWNhIE5vdGVib29rXCIsXG5cdFwid2xcIjogXCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwieGVvcmFjdWJlXCI6IFwiWGVvcmFDdWJlXCIsXG5cdFwieG1sLWRvY1wiOiBcIlhNTCBkb2MgKC5uZXQpXCIsXG5cdFwieG9qb1wiOiBcIlhvam8gKFJFQUxiYXNpYylcIixcblx0XCJ4cXVlcnlcIjogXCJYUXVlcnlcIixcblx0XCJ5YW1sXCI6IFwiWUFNTFwiLFxuXHRcInltbFwiOiBcIllBTUxcIixcblx0XCJ5YW5nXCI6IFwiWUFOR1wiLFxufTsgXG5jb25zdCBNQU5VQUxfUFJJU01fTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gTWFudWFsbHkgZ2VuZXJhdGVkIGxpc3QgZnJvbSBodHRwczovL3ByaXNtanMuY29tLyAgLSAgMjk3IGxhbmd1YWdlc1xuXHRcImNzc1wiOlwiQ1NTXCIsXG5cdFwiY2xpa2VcIjpcIkMtbGlrZVwiLFxuXHRcImphdmFzY3JpcHRcIjpcIkphdmFTY3JpcHRcIixcblx0XCJqc1wiOlwiSmF2YVNjcmlwdFwiLFxuXHRcImFiYXBcIjpcIkFCQVBcIixcblx0XCJhYm5mXCI6XCJBQk5GXCIsXG5cdFwiYWN0aW9uc2NyaXB0XCI6XCJBY3Rpb25TY3JpcHRcIixcblx0XCJhZGFcIjpcIkFkYVwiLFxuXHRcImFnZGFcIjpcIkFnZGFcIixcblx0XCJhbFwiOlwiQUxcIixcblx0XCJhbnRscjRcIjpcIkFOVExSNFwiLFxuXHRcImc0XCI6XCJBTlRMUjRcIixcblx0XCJhcGFjaGVjb25mXCI6XCJBcGFjaGUgQ29uZmlndXJhdGlvblwiLFxuXHRcImFwZXhcIjpcIkFwZXhcIixcblx0XCJhcGxcIjpcIkFQTFwiLFxuXHRcImFwcGxlc2NyaXB0XCI6XCJBcHBsZVNjcmlwdFwiLFxuXHRcImFxbFwiOlwiQVFMXCIsXG5cdFwiYXJkdWlub1wiOlwiQXJkdWlub1wiLFxuXHRcImlub1wiOlwiQXJkdWlub1wiLFxuXHRcImFyZmZcIjpcIkFSRkZcIixcblx0XCJhcm1hc21cIjpcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFybS1hc21cIjpcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFydHVyb1wiOlwiQXJ0dXJvXCIsXG5cdFwiYXJ0XCI6XCJBcnR1cm9cIixcblx0XCJhc2NpaWRvY1wiOlwiQXNjaWlEb2NcIixcblx0XCJhZG9jXCI6XCJBc2NpaURvY1wiLFxuXHRcImFzcG5ldFwiOlwiQVNQLk5FVCAoQyMpXCIsXG5cdFwiYXNtNjUwMlwiOlwiNjUwMiBBc3NlbWJseVwiLFxuXHRcImFzbWF0bWVsXCI6XCJBdG1lbCBBVlIgQXNzZW1ibHlcIixcblx0XCJhdXRvaG90a2V5XCI6XCJBdXRvSG90a2V5XCIsXG5cdFwiYXV0b2l0XCI6XCJBdXRvSXRcIixcblx0XCJhdmlzeW50aFwiOlwiQXZpU3ludGhcIixcblx0XCJhdnNcIjpcIkF2aVN5bnRoXCIsXG5cdFwiYXZyby1pZGxcIjpcIkF2cm8gSURMXCIsXG5cdFwiYXZkbFwiOlwiQXZybyBJRExcIixcblx0XCJhd2tcIjpcIkFXS1wiLFxuXHRcImdhd2tcIjpcIkdBV0tcIixcblx0XCJiYXNoXCI6XCJCYXNoXCIsXG5cdFwic2hcIjpcIlNoZWxsXCIsXG5cdFwic2hlbGxcIjpcIlNoZWxsXCIsXG5cdFwiYmFzaWNcIjpcIkJBU0lDXCIsXG5cdFwiYmF0Y2hcIjpcIkJhdGNoXCIsXG5cdFwiYmJjb2RlXCI6XCJCQmNvZGVcIixcblx0XCJzaG9ydGNvZGVcIjpcIkJCY29kZVwiLFxuXHRcImJialwiOlwiQkJqXCIsXG5cdFwiYmlyYlwiOlwiQmlyYlwiLFxuXHRcImJpc29uXCI6XCJCaXNvblwiLFxuXHRcImJuZlwiOlwiQk5GXCIsXG5cdFwicmJuZlwiOlwiQk5GXCIsXG5cdFwiYnFuXCI6XCJCUU5cIixcblx0XCJicmFpbmZ1Y2tcIjpcIkJyYWluZnVja1wiLFxuXHRcImJyaWdodHNjcmlwdFwiOlwiQnJpZ2h0U2NyaXB0XCIsXG5cdFwiYnJvXCI6XCJCcm9cIixcblx0XCJic2xcIjpcIkJTTCAoMUMpXCIsXG5cdFwib3NjcmlwdFwiOlwiQlNMICgxQylcIixcblx0XCJjXCI6XCJDXCIsXG5cdFwiY3NoYXJwXCI6XCJDI1wiLFxuXHRcImNzXCI6XCJDI1wiLFxuXHRcImRvdG5ldFwiOlwiQyNcIixcblx0XCJjcHBcIjpcIkMrK1wiLFxuXHRcImNmc2NyaXB0XCI6XCJDRlNjcmlwdFwiLFxuXHRcImNmY1wiOlwiQ0ZTY3JpcHRcIixcblx0XCJjaGFpc2NyaXB0XCI6XCJDaGFpU2NyaXB0XCIsXG5cdFwiY2lsXCI6XCJDSUxcIixcblx0XCJjaWxrY1wiOlwiQ2lsay9DXCIsXG5cdFwiY2lsay1jXCI6XCJDaWxrL0NcIixcblx0XCJjaWxrY3BwXCI6XCJDaWxrL0MrK1wiLFxuXHRcImNpbGstY3BwXCI6XCJDaWxrL0MrK1wiLFxuXHRcImNpbGtcIjpcIkNpbGsvQysrXCIsXG5cdFwiY2xvanVyZVwiOlwiQ2xvanVyZVwiLFxuXHRcImNtYWtlXCI6XCJDTWFrZVwiLFxuXHRcImNvYm9sXCI6XCJDT0JPTFwiLFxuXHRcImNvZmZlZXNjcmlwdFwiOlwiQ29mZmVlU2NyaXB0XCIsXG5cdFwiY29mZmVlXCI6XCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb25jdXJuYXNcIjpcIkNvbmN1cm5hc1wiLFxuXHRcImNvbmNcIjpcIkNvbmN1cm5hc1wiLFxuXHRcImNzcFwiOlwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIixcblx0XCJjb29rbGFuZ1wiOlwiQ29va2xhbmdcIixcblx0XCJjb3FcIjpcIkNvcVwiLFxuXHRcImNyeXN0YWxcIjpcIkNyeXN0YWxcIixcblx0XCJjc3MtZXh0cmFzXCI6XCJDU1MgRXh0cmFzXCIsXG5cdFwiY3N2XCI6XCJDU1ZcIixcblx0XCJjdWVcIjpcIkNVRVwiLFxuXHRcImN5cGhlclwiOlwiQ3lwaGVyXCIsXG5cdFwiZFwiOlwiRFwiLFxuXHRcImRhcnRcIjpcIkRhcnRcIixcblx0XCJkYXRhd2VhdmVcIjpcIkRhdGFXZWF2ZVwiLFxuXHRcImRheFwiOlwiREFYXCIsXG5cdFwiZGhhbGxcIjpcIkRoYWxsXCIsXG5cdFwiZGlmZlwiOlwiRGlmZlwiLFxuXHRcImRqYW5nb1wiOlwiRGphbmdvL0ppbmphMlwiLFxuXHRcImppbmphMlwiOlwiRGphbmdvL0ppbmphMlwiLFxuXHRcImRucy16b25lLWZpbGVcIjpcIkROUyB6b25lIGZpbGVcIixcblx0XCJkbnMtem9uZVwiOlwiRE5TIHpvbmUgZmlsZVwiLFxuXHRcImRvY2tlclwiOlwiRG9ja2VyXCIsXG5cdFwiZG9ja2VyZmlsZVwiOlwiRG9ja2VyXCIsXG5cdFwiZG90XCI6XCJET1QgKEdyYXBodml6KVwiLFxuXHRcImd2XCI6XCJET1QgKEdyYXBodml6KVwiLFxuXHRcImVibmZcIjpcIkVCTkZcIixcblx0XCJlZGl0b3Jjb25maWdcIjpcIkVkaXRvckNvbmZpZ1wiLFxuXHRcImVpZmZlbFwiOlwiRWlmZmVsXCIsXG5cdFwiZWpzXCI6XCJFSlNcIixcblx0XCJldGFcIjpcIkVKU1wiLFxuXHRcImVsaXhpclwiOlwiRWxpeGlyXCIsXG5cdFwiZWxtXCI6XCJFbG1cIixcblx0XCJldGx1YVwiOlwiRW1iZWRkZWQgTHVhIHRlbXBsYXRpbmdcIixcblx0XCJlcmJcIjpcIkVSQlwiLFxuXHRcImVybGFuZ1wiOlwiRXJsYW5nXCIsXG5cdFwiZXhjZWwtZm9ybXVsYVwiOlwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc3hcIjpcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHNcIjpcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJmc2hhcnBcIjpcIkYjXCIsXG5cdFwiZmFjdG9yXCI6XCJGYWN0b3JcIixcblx0XCJmYWxzZVwiOlwiRmFsc2VcIixcblx0XCJmaXJlc3RvcmUtc2VjdXJpdHktcnVsZXNcIjpcIkZpcmVzdG9yZSBzZWN1cml0eSBydWxlc1wiLFxuXHRcImZsb3dcIjpcIkZsb3dcIixcblx0XCJmb3J0cmFuXCI6XCJGb3J0cmFuXCIsXG5cdFwiZnRsXCI6XCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCIsXG5cdFwiZ21sXCI6XCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYW1lbWFrZXJsYW5ndWFnZVwiOlwiR2FtZU1ha2VyIExhbmd1YWdlXCIsXG5cdFwiZ2FwXCI6XCJHQVAgKENBUylcIixcblx0XCJnY29kZVwiOlwiRy1jb2RlXCIsXG5cdFwiZ2RzY3JpcHRcIjpcIkdEU2NyaXB0XCIsXG5cdFwiZ2VkY29tXCI6XCJHRURDT01cIixcblx0XCJnZXR0ZXh0XCI6XCJnZXR0ZXh0XCIsXG5cdFwicG9cIjpcImdldHRleHRcIixcblx0XCJnaGVya2luXCI6XCJHaGVya2luXCIsXG5cdFwiZ2l0XCI6XCJHaXRcIixcblx0XCJnbHNsXCI6XCJHTFNMXCIsXG5cdFwiZ25cIjpcIkdOXCIsXG5cdFwiZ25pXCI6XCJHTlwiLFxuXHRcImxpbmtlci1zY3JpcHRcIjpcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwibGRcIjpcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwiZ29cIjpcIkdvXCIsXG5cdFwiZ28tbW9kdWxlXCI6XCJHbyBtb2R1bGVcIixcblx0XCJnby1tb2RcIjpcIkdvIG1vZHVsZVwiLFxuXHRcImdyYWRsZVwiOlwiR3JhZGxlXCIsXG5cdFwiZ3JhcGhxbFwiOlwiR3JhcGhRTFwiLFxuXHRcImdyb292eVwiOlwiR3Jvb3Z5XCIsXG5cdFwiaGFtbFwiOlwiSGFtbFwiLFxuXHRcImhhbmRsZWJhcnNcIjpcIkhhbmRsZWJhcnNcIixcblx0XCJoYnNcIjpcIkhhbmRsZWJhcnNcIixcblx0XCJtdXN0YWNoZVwiOlwiSGFuZGxlYmFyc1wiLFxuXHRcImhhc2tlbGxcIjpcIkhhc2tlbGxcIixcblx0XCJoc1wiOlwiSGFza2VsbFwiLFxuXHRcImhheGVcIjpcIkhheGVcIixcblx0XCJoY2xcIjpcIkhDTFwiLFxuXHRcImhsc2xcIjpcIkhMU0xcIixcblx0XCJob29uXCI6XCJIb29uXCIsXG5cdFwiaHR0cFwiOlwiSFRUUFwiLFxuXHRcImhwa3BcIjpcIkhUVFAgUHVibGljLUtleS1QaW5zXCIsXG5cdFwiaHN0c1wiOlwiSFRUUCBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5XCIsXG5cdFwiaWNoaWdvamFtXCI6XCJJY2hpZ29KYW1cIixcblx0XCJpY29uXCI6XCJJY29uXCIsXG5cdFwiaWN1LW1lc3NhZ2UtZm9ybWF0XCI6XCJJQ1UgTWVzc2FnZSBGb3JtYXRcIixcblx0XCJpZHJpc1wiOlwiSWRyaXNcIixcblx0XCJpZHJcIjpcIklkcmlzXCIsXG5cdFwiaW5mb3JtN1wiOlwiSW5mb3JtIDdcIixcblx0XCJpbmlcIjpcIkluaVwiLFxuXHRcImlvXCI6XCJJb1wiLFxuXHRcImpcIjpcIkpcIixcblx0XCJqYXZhXCI6XCJKYXZhXCIsXG5cdFwiamF2YWRvY1wiOlwiSmF2YURvY1wiLFxuXHRcImphdmFkb2NsaWtlXCI6XCJKYXZhRG9jLWxpa2VcIixcblx0XCJqYXZhc3RhY2t0cmFjZVwiOlwiSmF2YSBzdGFjayB0cmFjZVwiLFxuXHRcImpleGxcIjpcIkpleGxcIixcblx0XCJqb2xpZVwiOlwiSm9saWVcIixcblx0XCJqcVwiOlwiSlFcIixcblx0XCJqc2RvY1wiOlwiSlNEb2NcIixcblx0XCJqcy1leHRyYXNcIjpcIkpTIEV4dHJhc1wiLFxuXHRcImpzb25cIjpcIkpTT05cIixcblx0XCJ3ZWJtYW5pZmVzdFwiOlwiSlNPTlwiLFxuXHRcImpzb241XCI6XCJKU09ONVwiLFxuXHRcImpzb25wXCI6XCJKU09OUFwiLFxuXHRcImpzc3RhY2t0cmFjZVwiOlwiSlMgc3RhY2sgdHJhY2VcIixcblx0XCJqcy10ZW1wbGF0ZXNcIjpcIkpTIFRlbXBsYXRlc1wiLFxuXHRcImp1bGlhXCI6XCJKdWxpYVwiLFxuXHRcImtlZXBhbGl2ZWRcIjpcIktlZXBhbGl2ZWQgQ29uZmlndXJlXCIsXG5cdFwia2V5bWFuXCI6XCJLZXltYW5cIixcblx0XCJrb3RsaW5cIjpcIktvdGxpblwiLFxuXHRcImt0XCI6XCJLb3RsaW5cIixcblx0XCJrdHNcIjpcIktvdGxpblwiLFxuXHRcImt1bWlyXCI6XCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1bVwiOlwiS3VNaXIgKFx1MDQxQVx1MDQ0M1x1MDQxQ1x1MDQzOFx1MDQ0MClcIixcblx0XCJrdXN0b1wiOlwiS3VzdG9cIixcblx0XCJsYXRleFwiOlwiTGFUZVhcIixcblx0XCJ0ZXhcIjpcIkxhVGVYXCIsXG5cdFwiY29udGV4dFwiOlwiTGFUZVhcIixcblx0XCJsYXR0ZVwiOlwiTGF0dGVcIixcblx0XCJsZXNzXCI6XCJMZXNzXCIsXG5cdFwibGlseXBvbmRcIjpcIkxpbHlQb25kXCIsXG5cdFwibHlcIjpcIkxpbHlQb25kXCIsXG5cdFwibGlxdWlkXCI6XCJMaXF1aWRcIixcblx0XCJsaXNwXCI6XCJMaXNwXCIsXG5cdFwiZW1hY3NcIjpcIkxpc3BcIixcblx0XCJlbGlzcFwiOlwiTGlzcFwiLFxuXHRcImVtYWNzLWxpc3BcIjpcIkxpc3BcIixcblx0XCJsaXZlc2NyaXB0XCI6XCJMaXZlU2NyaXB0XCIsXG5cdFwibGx2bVwiOlwiTExWTSBJUlwiLFxuXHRcImxvZ1wiOlwiTG9nIGZpbGVcIixcblx0XCJsb2xjb2RlXCI6XCJMT0xDT0RFXCIsXG5cdFwibHVhXCI6XCJMdWFcIixcblx0XCJtYWdtYVwiOlwiTWFnbWEgKENBUylcIixcblx0XCJtYWtlZmlsZVwiOlwiTWFrZWZpbGVcIixcblx0XCJtYXJrZG93blwiOlwiTWFya2Rvd25cIixcblx0XCJtZFwiOlwiTWFya2Rvd25cIixcblx0XCJtYXJrdXAtdGVtcGxhdGluZ1wiOlwiTWFya3VwIHRlbXBsYXRpbmdcIixcblx0XCJtYXRhXCI6XCJNYXRhXCIsXG5cdFwibWF0bGFiXCI6XCJNQVRMQUJcIixcblx0XCJtYXhzY3JpcHRcIjpcIk1BWFNjcmlwdFwiLFxuXHRcIm1lbFwiOlwiTUVMXCIsXG5cdFwibWVybWFpZFwiOlwiTWVybWFpZFwiLFxuXHRcIm1ldGFmb250XCI6XCJNRVRBRk9OVFwiLFxuXHRcIm1pemFyXCI6XCJNaXphclwiLFxuXHRcIm1vbmdvZGJcIjpcIk1vbmdvREJcIixcblx0XCJtb25rZXlcIjpcIk1vbmtleVwiLFxuXHRcIm1vb25zY3JpcHRcIjpcIk1vb25TY3JpcHRcIixcblx0XCJtb29uXCI6XCJNb29uU2NyaXB0XCIsXG5cdFwibjFxbFwiOlwiTjFRTFwiLFxuXHRcIm40anNcIjpcIk40SlNcIixcblx0XCJuNGpzZFwiOlwiTjRKU1wiLFxuXHRcIm5hbmQydGV0cmlzLWhkbFwiOlwiTmFuZCBUbyBUZXRyaXMgSERMXCIsXG5cdFwibmFuaXNjcmlwdFwiOlwiTmFuaW5vdmVsIFNjcmlwdFwiLFxuXHRcIm5hbmlcIjpcIk5hbmlub3ZlbCBTY3JpcHRcIixcblx0XCJuYXNtXCI6XCJOQVNNXCIsXG5cdFwibmVvblwiOlwiTkVPTlwiLFxuXHRcIm5ldm9kXCI6XCJOZXZvZFwiLFxuXHRcIm5naW54XCI6XCJuZ2lueFwiLFxuXHRcIm5pbVwiOlwiTmltXCIsXG5cdFwibml4XCI6XCJOaXhcIixcblx0XCJuc2lzXCI6XCJOU0lTXCIsXG5cdFwib2JqZWN0aXZlY1wiOlwiT2JqZWN0aXZlLUNcIixcblx0XCJvYmpjXCI6XCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9jYW1sXCI6XCJPQ2FtbFwiLFxuXHRcIm9kaW5cIjpcIk9kaW5cIixcblx0XCJvcGVuY2xcIjpcIk9wZW5DTFwiLFxuXHRcIm9wZW5xYXNtXCI6XCJPcGVuUWFzbVwiLFxuXHRcInFhc21cIjpcIk9wZW5RYXNtXCIsXG5cdFwib3pcIjpcIk96XCIsXG5cdFwicGFyaWdwXCI6XCJQQVJJL0dQXCIsXG5cdFwicGFyc2VyXCI6XCJQYXJzZXJcIixcblx0XCJwYXNjYWxcIjpcIlBhc2NhbFwiLFxuXHRcInBhc2NhbGlnb1wiOlwiUGFzY2FsaWdvXCIsXG5cdFwicHNsXCI6XCJQQVRST0wgU2NyaXB0aW5nIExhbmd1YWdlXCIsXG5cdFwicGNheGlzXCI6XCJQQy1BeGlzXCIsXG5cdFwicHhcIjpcIlBDLUF4aXNcIixcblx0XCJwZW9wbGVjb2RlXCI6XCJQZW9wbGVDb2RlXCIsXG5cdFwicGNvZGVcIjpcIlBlb3BsZUNvZGVcIixcblx0XCJwZXJsXCI6XCJQZXJsXCIsXG5cdFwicGhwXCI6XCJQSFBcIixcblx0XCJwaHBkb2NcIjpcIlBIUERvY1wiLFxuXHRcInBocC1leHRyYXNcIjpcIlBIUCBFeHRyYXNcIixcblx0XCJwbGFudC11bWxcIjpcIlBsYW50VU1MXCIsXG5cdFwicGxhbnR1bWxcIjpcIlBsYW50VU1MXCIsXG5cdFwicGxzcWxcIjpcIlBML1NRTFwiLFxuXHRcInBvd2VycXVlcnlcIjpcIlBvd2VyUXVlcnlcIixcblx0XCJwcVwiOlwiUG93ZXJRdWVyeVwiLFxuXHRcIm1zY3JpcHRcIjpcIlBvd2VyUXVlcnlcIixcblx0XCJwb3dlcnNoZWxsXCI6XCJQb3dlclNoZWxsXCIsXG5cdFwicHJvY2Vzc2luZ1wiOlwiUHJvY2Vzc2luZ1wiLFxuXHRcInByb2xvZ1wiOlwiUHJvbG9nXCIsXG5cdFwicHJvbXFsXCI6XCJQcm9tUUxcIixcblx0XCJwcm9wZXJ0aWVzXCI6XCIucHJvcGVydGllc1wiLFxuXHRcInByb3RvYnVmXCI6XCJQcm90b2NvbCBCdWZmZXJzXCIsXG5cdFwicHVnXCI6XCJQdWdcIixcblx0XCJwdXBwZXRcIjpcIlB1cHBldFwiLFxuXHRcInB1cmVcIjpcIlB1cmVcIixcblx0XCJwdXJlYmFzaWNcIjpcIlB1cmVCYXNpY1wiLFxuXHRcInBiZmFzbVwiOlwiUHVyZUJhc2ljXCIsXG5cdFwicHVyZXNjcmlwdFwiOlwiUHVyZVNjcmlwdFwiLFxuXHRcInB1cnNcIjpcIlB1cmVTY3JpcHRcIixcblx0XCJweXRob25cIjpcIlB5dGhvblwiLFxuXHRcInB5XCI6XCJQeXRob25cIixcblx0XCJxc2hhcnBcIjpcIlEjXCIsXG5cdFwicXNcIjpcIlEjXCIsXG5cdFwicVwiOlwiUSAoa2RiKyBkYXRhYmFzZSlcIixcblx0XCJxbWxcIjpcIlFNTFwiLFxuXHRcInFvcmVcIjpcIlFvcmVcIixcblx0XCJyXCI6XCJSXCIsXG5cdFwicmFja2V0XCI6XCJSYWNrZXRcIixcblx0XCJya3RcIjpcIlJhY2tldFwiLFxuXHRcImNzaHRtbFwiOlwiUmF6b3IgQyNcIixcblx0XCJqc3hcIjpcIlJlYWN0IEpTWFwiLFxuXHRcInRzeFwiOlwiUmVhY3QgVFNYXCIsXG5cdFwicmVhc29uXCI6XCJSZWFzb25cIixcblx0XCJyZWdleFwiOlwiUmVnZXhcIixcblx0XCJyZWdvXCI6XCJSZWdvXCIsXG5cdFwicmVucHlcIjpcIlJlbidweVwiLFxuXHRcInJweVwiOlwiUmVuJ3B5XCIsXG5cdFwicmVzY3JpcHRcIjpcIlJlU2NyaXB0XCIsXG5cdFwicmVzXCI6XCJSZVNjcmlwdFwiLFxuXHRcInJlc3RcIjpcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCIsXG5cdFwicmlwXCI6XCJSaXBcIixcblx0XCJyb2JvY29uZlwiOlwiUm9ib2NvbmZcIixcblx0XCJyb2JvdGZyYW1ld29ya1wiOlwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicm9ib3RcIjpcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJ1YnlcIjpcIlJ1YnlcIixcblx0XCJyYlwiOlwiUnVieVwiLFxuXHRcInJ1c3RcIjpcIlJ1c3RcIixcblx0XCJzYXNcIjpcIlNBU1wiLFxuXHRcInNhc3NcIjpcIlNhc3MgKFNhc3MpXCIsXG5cdFwic2Nzc1wiOlwiU2FzcyAoU0NTUylcIixcblx0XCJzY2FsYVwiOlwiU2NhbGFcIixcblx0XCJzY2hlbWVcIjpcIlNjaGVtZVwiLFxuXHRcInNoZWxsLXNlc3Npb25cIjpcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaC1zZXNzaW9uXCI6XCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic2hlbGxzZXNzaW9uXCI6XCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic21hbGlcIjpcIlNtYWxpXCIsXG5cdFwic21hbGx0YWxrXCI6XCJTbWFsbHRhbGtcIixcblx0XCJzbWFydHlcIjpcIlNtYXJ0eVwiLFxuXHRcInNtbFwiOlwiU01MXCIsXG5cdFwic21sbmpcIjpcIlNNTFwiLFxuXHRcInNvbGlkaXR5XCI6XCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sXCI6XCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sdXRpb24tZmlsZVwiOlwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNsblwiOlwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNveVwiOlwiU295IChDbG9zdXJlIFRlbXBsYXRlKVwiLFxuXHRcInNwYXJxbFwiOlwiU1BBUlFMXCIsXG5cdFwicnFcIjpcIlNQQVJRTFwiLFxuXHRcInNwbHVuay1zcGxcIjpcIlNwbHVuayBTUExcIixcblx0XCJzcWZcIjpcIlNRRlwiLFxuXHRcInNxbFwiOlwiU1FMXCIsXG5cdFwic3F1aXJyZWxcIjpcIlNxdWlycmVsXCIsXG5cdFwic3RhblwiOlwiU3RhblwiLFxuXHRcInN0YXRhXCI6XCJTdGF0YSBBZG9cIixcblx0XCJpZWNzdFwiOlwiU3RydWN0dXJlZCBUZXh0IChJRUMgNjExMzEtMylcIixcblx0XCJzdHlsdXNcIjpcIlN0eWx1c1wiLFxuXHRcInN1cGVyY29sbGlkZXJcIjpcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzY2xhbmdcIjpcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzd2lmdFwiOlwiU3dpZnRcIixcblx0XCJzeXN0ZW1kXCI6XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiLFxuXHRcInQ0LXRlbXBsYXRpbmdcIjpcIlQ0IHRlbXBsYXRpbmdcIixcblx0XCJ0NC1jc1wiOlwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0XCI6XCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDQtdmJcIjpcIlQ0IFRleHQgVGVtcGxhdGVzIChWQilcIixcblx0XCJ0YXBcIjpcIlRBUFwiLFxuXHRcInRjbFwiOlwiVGNsXCIsXG5cdFwidHQyXCI6XCJUZW1wbGF0ZSBUb29sa2l0IDJcIixcblx0XCJ0ZXh0aWxlXCI6XCJUZXh0aWxlXCIsXG5cdFwidG9tbFwiOlwiVE9NTFwiLFxuXHRcInRyZW1vclwiOlwiVHJlbW9yXCIsXG5cdFwidHJpY2tsZVwiOlwiVHJlbW9yXCIsXG5cdFwidHJveVwiOlwiVHJlbW9yXCIsXG5cdFwidHVydGxlXCI6XCJUdXJ0bGVcIixcblx0XCJ0cmlnXCI6XCJUdXJ0bGVcIixcblx0XCJ0d2lnXCI6XCJUd2lnXCIsXG5cdFwidHlwZXNjcmlwdFwiOlwiVHlwZVNjcmlwdFwiLFxuXHRcInRzXCI6XCJUeXBlU2NyaXB0XCIsXG5cdFwidHlwb3NjcmlwdFwiOlwiVHlwb1NjcmlwdFwiLFxuXHRcInRzY29uZmlnXCI6XCJUU0NvbmZpZ1wiLFxuXHRcInVucmVhbHNjcmlwdFwiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidXNjcmlwdFwiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidWNcIjpcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVvcmF6b3JcIjpcIlVPIFJhem9yIFNjcmlwdFwiLFxuXHRcInVyaVwiOlwiVVJJXCIsXG5cdFwidXJsXCI6XCJVUklcIixcblx0XCJ2XCI6XCJWXCIsXG5cdFwidmFsYVwiOlwiVmFsYVwiLFxuXHRcInZibmV0XCI6XCJWQi5OZXRcIixcblx0XCJ2ZWxvY2l0eVwiOlwiVmVsb2NpdHlcIixcblx0XCJ2ZXJpbG9nXCI6XCJWZXJpbG9nXCIsXG5cdFwidmhkbFwiOlwiVkhETFwiLFxuXHRcInZpbVwiOlwidmltXCIsXG5cdFwidmlzdWFsLWJhc2ljXCI6XCJWaXN1YWwgQmFzaWNcIixcblx0XCJ2YlwiOlwiVmlzdWFsIEJhc2ljXCIsXG5cdFwid2FycHNjcmlwdFwiOlwiV2FycFNjcmlwdFwiLFxuXHRcIndhc21cIjpcIldlYkFzc2VtYmx5XCIsXG5cdFwid2ViLWlkbFwiOlwiV2ViIElETFwiLFxuXHRcIndlYmlkbFwiOlwiV2ViIElETFwiLFxuXHRcIndnc2xcIjpcIldHU0xcIixcblx0XCJ3aWtpXCI6XCJXaWtpIG1hcmt1cFwiLFxuXHRcIndvbGZyYW1cIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJtYXRoZW1hdGljYVwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIm5iXCI6XCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwid2xcIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJ3cmVuXCI6XCJXcmVuXCIsXG5cdFwieGVvcmFcIjpcIlhlb3JhXCIsXG5cdFwieGVvcmFjdWJlXCI6XCJYZW9yYVwiLFxuXHRcInhtbC1kb2NcIjpcIlhNTCBkb2MgKC5uZXQpXCIsXG5cdFwieG9qb1wiOlwiWG9qbyAoUkVBTGJhc2ljKVwiLFxuXHRcInhxdWVyeVwiOlwiWFF1ZXJ5XCIsXG5cdFwieWFtbFwiOlwiWUFNTFwiLFxuXHRcInltbFwiOlwiWUFNTFwiLFxuXHRcInlhbmdcIjpcIllBTkdcIixcblx0XCJ6aWdcIjpcIlppZ1wiXG59O1xuY29uc3QgTUFOVUFMX0xBTkdVQUdFUzoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7IC8vIE1hbnVhbGx5IGNyZWF0ZWQgbGlzdFxuXHRcImZpc2hcIjpcIkZpc2hcIixcblx0XCJvY3RhdmVcIjpcIk9jdGF2ZVwiLFxuXHRcIm1heGltYVwiOlwiTWF4aW1hXCIsXG5cdFwibXlzcWxcIjpcIlNRTFwiLFxuXHRcInBvc3RncmVzcWxcIjpcIlNRTFwiLFxuXHRcInJzY3JpcHRcIjpcIlJcIixcblx0XCJzaGVsbHNjcmlwdFwiOlwiU2hlbGxcIixcblx0XCJzcWxpdGVcIjpcIlNRTFwiLFxuXHRcInpzaFwiOlwiWnNoXCIsXG59O1xuZXhwb3J0IGNvbnN0IExBTkdVQUdFX05BTUVTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsuLi5QUklTTV9MQU5HVUFHRVMsLi4uTUFOVUFMX1BSSVNNX0xBTkdVQUdFUywuLi5NQU5VQUxfTEFOR1VBR0VTfTtcbmV4cG9ydCBjb25zdCBMQU5HVUFHRV9JQ09OU19EQVRBOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gSWNvbnMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdnNjb2RlLWljb25zL3ZzY29kZS1pY29ucy93aWtpL0xpc3RPZkZpbGVzIGFuZCBodHRwczovL2Rldmljb24uZGV2L1xuXHRcIi5naXRpZ25vcmVcIjogXCI8cGF0aCBkPVxcXCJNMjkuNDcyLDE0Ljc1MywxNy4yNDcsMi41MjhhMS44LDEuOCwwLDAsMC0yLjU1LDBMMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNCwyLjUyOCwxNC43YTEuOCwxLjgsMCwwLDAsMCwyLjU1MUwxNC43NTMsMjkuNDcyYTEuOCwxLjgsMCwwLDAsMi41NSwwTDI5LjQ3MiwxNy4zYTEuOCwxLjgsMCwwLDAsMC0yLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2RkNGMzNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNTgsNS4wNjdsMy4yMiwzLjIyYTIuMTQxLDIuMTQxLDAsMCwxLDIuNzEyLDIuNzNsMy4xLDMuMWEyLjE0MywyLjE0MywwLDEsMS0xLjI4NSwxLjIxbC0yLjg5NS0yLjg5NXY3LjYxN2EyLjE0MSwyLjE0MSwwLDEsMS0xLjc2NC0uMDYyVjEyLjNhMi4xNDYsMi4xNDYsMCwwLDEtMS4xNjUtMi44MTRMMTAuOTExLDYuMzE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiLmhnaWdub3JlXCI6IFwiPHBhdGggZD1cXFwiTTI4LjA0MiwyMy4xNzJjNC45ODktOC4zLTEuMDU0LTIxLjc1MS0xMi4xLTIwLjM4NEM1Ljk1NSw0LjAyMiw1Ljc5NCwxNC41MywxNC41OTMsMTcuMDI2YzcuNjE0LDIuMTYyLDEuNTczLDYuOTkyLDEuNzQ5LDEwLjIwOHM2LjYyLDQuMzgyLDExLjctNC4wNjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48Y2lyY2xlIGN4PVxcXCI5Ljc4NFxcXCIgY3k9XFxcIjI0LjI1N1xcXCIgcj1cXFwiNC4zMzJcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48Y2lyY2xlIGN4PVxcXCI0LjgzNVxcXCIgY3k9XFxcIjE1LjA5OVxcXCIgcj1cXFwiMi44MzVcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48cGF0aCBkPVxcXCJNMjguMjMxLDIyLjgzNWM0Ljk4OS04LjMtMS4wNTQtMjEuNzUxLTEyLjEtMjAuMzg0QzYuMTQ0LDMuNjg2LDUuOTgzLDE0LjE5NCwxNC43ODEsMTYuNjljNy42MTQsMi4xNjIsMS41NzMsNi45OTIsMS43NDksMTAuMjA4czYuNjIsNC4zODIsMTEuNy00LjA2M1xcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjkuOTcyXFxcIiBjeT1cXFwiMjMuOTIxXFxcIiByPVxcXCI0LjMzMlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjUuMDIzXFxcIiBjeT1cXFwiMTQuNzYyXFxcIiByPVxcXCIyLjgzNVxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44MTEsMjguMTY4YS42NjkuNjY5LDAsMCwxLC42MzUtLjk5NCw3LDcsMCwwLDAsMy43LS43NDZjMy4yNDctMS44NDEsOC4yNDQtMTAuNyw1LjczMS0xNi4yODVBMTIuNzcsMTIuNzcsMCwwLDAsMjUuMDQ5LDUuN2MtLjIzNi0uMjQ5LS4xLS4yMzYuMDU5LS4xNTJhMTAuMDgsMTAuMDgsMCwwLDEsMi44NTcsMy42NzYsMTQuNTc4LDE0LjU3OCwwLDAsMSwxLjEsMTAuMjc5Yy0uNDk0LDEuODE3LTIuMiw1LjkyOC00LjY5MSw3LjcwNnMtNS40MjQsMi44LTYuNTYzLjk1NU0xNS41NDgsMTYuNjczYy0xLjctLjUtMy44OTQtMS4yMDgtNS4xNjMtMi44NjdBOC4wODgsOC4wODgsMCwwLDEsOC44NTQsMTAuNDljLS4wNDMtLjI3LS4wOC0uNSwwLS41NThhMjEuODgyLDIxLjg4MiwwLDAsMCwxLjY4OCwyLjcyMyw2LjQ4Nyw2LjQ4NywwLDAsMCwzLjUyNiwyLjI1NiwxMi4zODMsMTIuMzgzLDAsMCwxLDMuODY3LDEuMzdjLjczOS42MjkuOCwxLjk4OS41NTIsMi4xNDJzLS43NTktMS4xLTIuOTM4LTEuNzQ5bS04LjE1NSwxMC40YzMuMzY5LDMuMTIxLDguNDM5LTEuMTY2LDYuMjA3LTQuOTU0LS4yNTEtLjQyNS0uNTc2LS43NDktLjQ2OS0uNDIzLjcxNCwyLjE3OC4wNTQsMy45LTEuMTc2LDQuNzg4YTQuMDYzLDQuMDYzLDAsMCwxLTQuMTkyLjMyOGMtLjM5LS4yLS41NTEuMDkyLS4zNy4yNjFtLTMuOTMtMTAuMTZjLjAxOC4yLjI5Mi40NTguNzIyLjU3NmEyLjk2OSwyLjk2OSwwLDAsMCwyLjU1LS40MTMsMi43NTksMi43NTksMCwwLDAsLjgxLTMuNDUyYy0uMTcyLS4zMDgtLjQtLjUzMy0uMjE4LS4wNDFBMi42OCwyLjY4LDAsMCwxLDYuMTQ4LDE2LjUzYTIuNDM5LDIuNDM5LDAsMCwxLTIuMS4xNjRjLS4zOTEtLjExOS0uNi4wMTYtLjU4LjIyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wNTYsMjguNDA3Yy0uMDMzLjM4OS40MTQuNDY2LDEuMDE2LjM3NmE2Ljc1NSw2Ljc1NSwwLDAsMCwyLjMxMy0uNjQ4LDkuNTQsOS41NCwwLDAsMCwzLjMxNC0yLjYzYzIuNjYyLTMuNDczLDMuNi03LjU4MiwzLjQ2LTguMTczQTE2LjE3MiwxNi4xNzIsMCwwLDEsMjcsMjIuNjkyYy0xLjg4OCwyLjk2OC0zLjI1Niw0LjU0OC02LjQxMyw1LjMxNC0uODc5LjIxMy0xLjQ4NS0uMTEyLTEuNTI5LjRtLTctMTMuNUE3Ljk2Nyw3Ljk2NywwLDAsMCwxNC42LDE2LjA4OWExMi4yLDEyLjIsMCwwLDEsMi45NiwxLjMxYy4zNzguMjUzLjYxOC44MTkuNjQyLjMxN3MtLjI4NS0uOTM0LS45NzYtMS4xNjRhMTUuMjc0LDE1LjI3NCwwLDAsMC0yLjAwOS0uNjc0Yy0uNDg1LS4xLTEuMjczLS4yODUtMS45NDktLjQ5My0uMzcxLS4xMTQtLjc0OC0uMzEzLTEuMjE0LS40ODNNMTAuMDM3LDI3LjcxOGMuNDI5LS4wOSwyLjkyNC0uNzM2LDMuNTEtMi43ODguMTgzLS42NC4yMTUtLjUxMS4xNjQtLjE2NWEzLjgsMy44LDAsMCwxLTMuMzU4LDMuMTIzYy0uMjg5LjAzLS42NjgtLjEtLjMxNS0uMTdNNS4wNDYsMTcuMmE3Ljk5MSw3Ljk5MSwwLDAsMCwxLjE5NS0uMzM2LDIuMzgzLDIuMzgzLDAsMCwwLDEuMjMyLTEuNzQxYy4wNjQtLjUwNS4wODMtLjM3OC4xMDktLjFhMi42MjcsMi42MjcsMCwwLDEtMi4xNDcsMi4zMjRjLS4yLjAyOC0uNTYuMDExLS4zODktLjE0M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NCwxNy40NDZjMi4xMjQtNi4xMjMtMi4zMjEtMTUuMzctMTEuMzE1LTE0LjI1OC04LjEyNiwxLTguMjU3LDkuNTU3LTEuMSwxMS41OSw4LjExMiwxLjIyOCwzLjIyNyw3LjM0NywyLjUzNSwxMC40MzMtLjYyMSwyLjc2Niw2LjU1NSwzLjIyMSw5Ljg3Ni03Ljc2NU03LjIxOSwyNi4yYTIuMDI4LDIuMDI4LDAsMCwxLDEuMzMyLjQ0MiwzLjUyNSwzLjUyNSwwLDAsMCwzLjc1NS0uOTgzQTQuMTU0LDQuMTU0LDAsMCwwLDEyLjg2OSwyMmMtLjgwNi0yLjMxOS00LjIyOS0yLjI3OC01Ljc1OC0uMzUzLTEuNjU0LDIuMTUtLjQsNC41MzkuMTA4LDQuNTQ4TTIuNjc2LDE1LjQ1MWExLjE2NiwxLjE2NiwwLDAsMCwuOTA4Ljg2M2MuNzMxLjEuODguNDM0LDEuNzQzLjI2M0EyLjQ2NCwyLjQ2NCwwLDAsMCw3LjEsMTQuOTE2YTEuNzcxLDEuNzcxLDAsMCwwLS44MjQtMi4xNCwyLjY4OSwyLjY4OSwwLDAsMC0zLjA0Ny4zNjMsMi4yNjMsMi4yNjMsMCwwLDAtLjU1OCwyLjMxMlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5OVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45ODEsMjIuMjI4Yy0yLjItLjI3Mi01LjM2LDQuNjktMi4zNzgsNC4xMDloMGE1LjY0NSw1LjY0NSwwLDAsMCwzLjY4My0xLjkzMiwyMy4xMzYsMjMuMTM2LDAsMCwwLDQuMDU1LTcuMmMuNS0xLjg2MS4yNTEtNC43NDUtLjI2OS0yLjAzNi0uNTMzLDIuNzgxLTIuODkzLDcuMzM2LTUuMDkxLDcuMDY0TTEwLjUyMywyNi4zNjJBMi43NzgsMi43NzgsMCwwLDAsMTIuNSwyMi45OWMtLjE2NS0xLjI3Ni0uODYxLDEuNTg0LTIuMTUsMi4wMTItMS45NTMuNjQ4LTEuNzMzLDEuODYxLjE3NiwxLjM2MW0tNC45NzgtMTAuMmMuNjYzLS4xNzMsMS41NC0xLjA3NywxLjEtMS43NjctLjUzNy0uODUtMi4wMzMtLjEyMi0yLjA4NC44MjRzLjI3NywxLjEyNy45NzkuOTQzXFxcIiBzdHlsZT1cXFwiZmlsbDojZjNmM2YzXFxcIi8+XCIsXG5cdFwiLm5wbWlnbm9yZVwiOiBcIjxwYXRoIGQ9XFxcIk0yLDEwLjU1NUgzMHY5LjMzNUgxNnYxLjU1Nkg5Ljc3OFYxOS44ODlIMlptMS41NTYsNy43NzlINi42NjdWMTMuNjY2SDguMjIydjQuNjY3SDkuNzc4VjEyLjExMUgzLjU1NlptNy43NzgtNi4yMjN2Ny43NzloMy4xMTFWMTguMzM0aDMuMTExVjEyLjExMVptMy4xMTEsMS41NTZIMTZ2My4xMTJIMTQuNDQ0Wm00LjY2Ny0xLjU1NnY2LjIyM2gzLjExMVYxMy42NjZoMS41NTZ2NC42NjdoMS41NTZWMTMuNjY2aDEuNTU2djQuNjY3aDEuNTU2VjEyLjExMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjYjM4MzdcXFwiLz5cIixcblx0XCIucHJvcGVydGllc1wiOiBcIjxwYXRoIGQ9XFxcIk0yMy4yNjUsMjQuMzgxbC45LS44OTRjNC4xNjQuMTM2LDQuMjI4LS4wMSw0LjQxMS0uNDM4bDEuMTQ0LTIuNzg1TDI5LjgwNSwyMGwtLjA5My0uMjMxYy0uMDQ5LS4xMjItLjItLjQ4Ni0yLjgtMi45NjVWMTUuNWMzLTIuODksMi45MzYtMy4wMzgsMi43NjUtMy40NjFMMjguNTM4LDkuMjI1Yy0uMTcxLS40MjItLjIzNi0uNTg3LTQuMzctLjQ3NGwtLjktLjkzYTIwLjE2NiwyMC4xNjYsMCwwLDAtLjE0MS00LjEwNmwtLjExNi0uMjYzLTIuOTc0LTEuM2MtLjQzOC0uMi0uNTkyLS4yNzItMy40LDIuNzg2bC0xLjI2Mi0uMDE5Yy0yLjg5MS0zLjA4Ni0zLjAyOC0zLjAzLTMuNDYxLTIuODU1TDkuMTQ5LDMuMTgyYy0uNDMzLjE3NS0uNTg2LjIzNy0uNDE4LDQuNDM3bC0uODkzLjg5Yy00LjE2Mi0uMTM2LTQuMjI2LjAxMi00LjQwNy40MzhMMi4yODUsMTEuNzMzLDIuMTk1LDEybC4wOTQuMjMyYy4wNDkuMTIuMTk0LjQ4LDIuOCwyLjk2MmwwLDEuM2MtMywyLjg5LTIuOTM1LDMuMDM4LTIuNzYzLDMuNDYybDEuMTM4LDIuODE3Yy4xNzQuNDMxLjIzNi41ODQsNC4zNjkuNDc2bC45LjkzNWEyMC4yNDMsMjAuMjQzLDAsMCwwLC4xMzcsNC4xbC4xMTYuMjY1LDIuOTkzLDEuMzA4Yy40MzUuMTgyLjU4Ni4yNDcsMy4zODYtMi44bDEuMjYyLjAxNmMyLjg5NSwzLjA5LDMuMDQzLDMuMDMsMy40NjYsMi44NTlsMi43NTktMS4xMTVDMjMuMjg4LDI4LjY0NCwyMy40NCwyOC41ODMsMjMuMjY1LDI0LjM4MVpNMTEuNDA3LDE3Ljg1N2E0Ljk1Nyw0Ljk1NywwLDEsMSw2LjQ4OCwyLjgyNEE1LjAxNCw1LjAxNCwwLDAsMSwxMS40MDcsMTcuODU3WlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5YjhjNFxcXCIvPlwiLFxuXHRcIjY1MDIgQXNzZW1ibHlcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCI4MzYuNjNcXFwiIHkxPVxcXCIzNi4yMDVcXFwiIHgyPVxcXCI4NDMuODAyXFxcIiB5Mj1cXFwiMTQuNDhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNTI1LjkyMiAzMC4yNDkpIHJvdGF0ZSgxODApIHNjYWxlKDAuNjA3IDAuNjA3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMjc1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hc3NlbWJseTwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LDJjLTEuMjQ2LDMuMDU2LTIsNS4wNTctMy4zOTEsOC4wMjJBMjEuODg0LDIxLjg4NCwwLDAsMCwxNi4yLDEzLjE1NmExNC44NTgsMTQuODU4LDAsMCwxLTQtMi4yODNDMTAuNDMsMTQuNTc5LDcuNjQ2LDE5Ljg1NSwyLDMwYzUuMTg2LTIuOTk0LDkuMDEyLTQuNjQ4LDEyLjY5MS00Ljk2NlYyNC4yaC0uODM0di0uODM3aC44MzRWMjQuMmgxLjY3NVYyMi41MjFIMTQuNjkxdi0uODM0aC0uODM0VjIwLjAxM2guODM0di0uODM0aDEuNjc1di44MzRIMTcuMnYuODM3aC0uODM3di0uODM3SDE0LjY5MXYxLjY3NWgxLjY3NXYuODM0SDE3LjJWMjQuMmgtLjgzN3YuNzgzYzMuOTguMSw4LjAwNiwxLjc3MiwxMy42MzQsNS4wMjEtLjg2My0xLjU4OS0xLjYzNi0zLjAyMS0yLjM3Mi00LjM4NWEyNS41MjYsMjUuNTI2LDAsMCwwLTQuODMzLTMuMzMzQTE0LjQzNiwxNC40MzYsMCwwLDEsMjYuNjUsMjMuOEMxOS4xNyw5Ljg3MiwxOC41NjUsOC4wMiwxNiwyWk0xMC41MTEsMTkuMTc5aDEuNjcxdi44MzRoLjgzN3Y1LjAyMWgtLjgzN1YyMi41MjFIMTAuNTExdjIuNTEySDkuNjczVjIwLjAxM2guODM3Wm0wLC44MzR2MS42NzVoMS42NzFWMjAuMDEzWm03LjUyNi0uODM0aC44Mzd2LjgzNGguODM3di44MzdoLjgzNHYtLjgzN2guODM3di0uODM0aC44Mzd2NS44NTVoLS44MzdWMjAuODVoLS44Mzd2LjgzN2gtLjgzNFYyMC44NWgtLjgzN3Y0LjE4NGgtLjgzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwYmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuODgxLDE4LjY0MmMtNi4wNjktOC4yMzctNy40NzYtMTQuODc2LTcuODMyLTE2LjQ2MUExNzUuMjE3LDE3NS4yMTcsMCwwLDAsMjMuODgxLDE4LjY0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1vcGFjaXR5OjAuMTY1NjgwNDY4MDgyNDI4XFxcIi8+PHBhdGggZD1cXFwiTTE2LjA1MSwyLjEyLDE1LjYsMy4yMjdjLS4xNTkuMzkxLS4zMTEuNzY1LS40NjEsMS4xMzFzLS4zLjcyNC0uNDQ4LDEuMDc3LS4zLjctLjQ0OCwxLjA1My0uMy43MDYtLjQ2NSwxLjA2Ni0uMzI5LjcyOS0uNTA2LDEuMTExLS4zNjIuNzc4LS41NjEsMS4xOTNjLS4wMjguMDU3LS4wNjEuMTIzLS4wODkuMTgxQTIxLjg3MiwyMS44NzIsMCwwLDAsMTYuMiwxMy4xNTZhMTQuODc5LDE0Ljg3OSwwLDAsMS0zLjk4OS0yLjI3NmwtLjE0LjI4N2MtLjA2NS4xMzMtLjE0NC4yODMtLjIxMi40MmwtLjEwNi4yMTljLS44NzgsMS43OTMtMi4wMDYsMy45ODQtMy41MjQsNi44MjIsMy41NTEtMiw3LjM4MS00Ljg4NywxNC4zMzgtMi40LS4zNDktLjY2MS0uNjctMS4yOC0uOTcxLTEuODYzcy0uNTgxLTEuMTI4LS44NDEtMS42NDQtLjUtMS0uNzI1LTEuNDYzLS40MzMtLjktLjYyOS0xLjMxMy0uMzgtLjgxOC0uNTU0LTEuMi0uMzM5LS43NTQtLjUtMS4xMThTMTguMDQ3LDYuOSwxNy45LDYuNTQ2cy0uMjkxLS43MDktLjQzNC0xLjA2NmMtLjAzNi0uMDkxLS4wNzMtLjE4Ni0uMTA5LS4yNzdDMTYuOTQ5LDQuMjQ3LDE2LjUzNiwzLjI1OCwxNi4wNTEsMi4xMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XCJBY3Rpb25TY3JpcHRcIjogXCI8cGF0aCBkPVxcXCJNMiwxNS4yODFjMS45MTgsMCwyLjExLTEuMDU1LDIuMTEtMS45MThhMTcuMTE5LDE3LjExOSwwLDAsMC0uMTkyLTIuMjA1LDE4LjcyMywxOC43MjMsMCwwLDEtLjE5Mi0yLjIwNWMwLTIuNCwxLjYzLTMuNDUyLDMuODM2LTMuNDUyaC41NzVWNi45MzhINy42NThjLTEuNTM0LDAtMi4xMS43NjctMi4xMSwyLjIwNWExNC40MTIsMTQuNDEyLDAsMCwwLC4xOTIsMS45MTgsMTQuMzA2LDE0LjMwNiwwLDAsMSwuMTkyLDIuMDE0YzAsMS43MjYtLjY3MSwyLjQ5My0xLjkxOCwyLjg3N3YuMWMxLjE1MS4yODgsMS45MTgsMS4xNTEsMS45MTgsMi44NzdhMTQuMzA2LDE0LjMwNiwwLDAsMS0uMTkyLDIuMDE0LDEzLDEzLDAsMCwwLS4xOTIsMS45MThjMCwxLjQzOC41NzUsMi4zLDIuMTEsMi4zaC40NzlWMjYuNkg3LjU2MmMtMi4yMDUsMC0zLjgzNi0uOTU5LTMuODM2LTMuNjQ0YTE4LjcyMywxOC43MjMsMCwwLDEsLjE5Mi0yLjIwNSwxNS42OCwxNS42OCwwLDAsMCwuMTkyLTIuMTFjMC0uODYzLS4yODgtMS45MTgtMi4xMS0xLjkxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNDE3MThcXFwiLz48cGF0aCBkPVxcXCJNOS40NzksMTguMDYyLDguMjMzLDIxLjhINi42TDEwLjYzLDkuOTExaDEuODIyTDE2LjQ3OSwyMS44SDE0Ljk0NUwxMy43LDE4LjA2MlptMy45MzItMS4xNTFMMTIuMjYsMTMuNDU5YTkuMzY0LDkuMzY0LDAsMCwxLS41NzUtMi4yMDVoMGMtLjE5Mi42NzEtLjM4NCwxLjQzOC0uNTc1LDIuMTFMOS45NTksMTYuODE1aDMuNDUyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2M0MTcxOFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45MTgsMTkuOTc5YTUuOTQxLDUuOTQxLDAsMCwwLDIuNzgxLjc2N2MxLjUzNCwwLDIuNDkzLS44NjMsMi40OTMtMi4wMTRzLS42NzEtMS43MjYtMi4yMDUtMi40Yy0xLjkxOC0uNjcxLTMuMTY0LTEuNzI2LTMuMTY0LTMuMzU2LDAtMS44MjIsMS41MzQtMy4yNiwzLjgzNi0zLjI2YTUuMTM1LDUuMTM1LDAsMCwxLDIuNTg5LjU3NWwtLjM4NCwxLjI0N2E1LjUxOSw1LjUxOSwwLDAsMC0yLjMtLjQ3OWMtMS42MywwLTIuMjA1Ljk1OS0yLjIwNSwxLjgyMiwwLDEuMTUxLjc2NywxLjYzLDIuNCwyLjMsMi4wMTQuNzY3LDMuMDY4LDEuNzI2LDMuMDY4LDMuNDUyLDAsMS44MjItMS4zNDIsMy40NTItNC4xMjMsMy40NTJhNS44MDcsNS44MDcsMCwwLDEtMy4wNjgtLjc2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNDE3MThcXFwiLz48cGF0aCBkPVxcXCJNMzAsMTYuNjIzYy0xLjkxOCwwLTIuMTEsMS4xNTEtMi4xMSwxLjkxOGExNS42OCwxNS42OCwwLDAsMCwuMTkyLDIuMTEsMTUuNzM4LDE1LjczOCwwLDAsMSwuMTkyLDIuMjA1YzAsMi42ODUtMS42MywzLjY0NC0zLjgzNiwzLjY0NGgtLjU3NVYyNS4wNjJoLjQ3OWMxLjQzOCwwLDIuMTEtLjg2MywyLjExLTIuM2ExMywxMywwLDAsMC0uMTkyLTEuOTE4LDE0LjMwNiwxNC4zMDYsMCwwLDEtLjE5Mi0yLjAxNGMwLTEuNzI2Ljc2Ny0yLjU4OSwxLjkxOC0yLjg3N3YtLjFjLTEuMTUxLS4yODgtMS45MTgtMS4xNTEtMS45MTgtMi44NzdhMTQuMzA2LDE0LjMwNiwwLDAsMSwuMTkyLTIuMDE0LDEzLDEzLDAsMCwwLC4xOTItMS45MThjMC0xLjQzOC0uNTc1LTIuMjA1LTIuMTEtMi4zaC0uNDc5VjUuNGguNTc1YzIuMjA1LDAsMy44MzYsMS4wNTUsMy44MzYsMy40NTJhMTcuMTE5LDE3LjExOSwwLDAsMS0uMTkyLDIuMjA1LDE3LjExOSwxNy4xMTksMCwwLDAtLjE5MiwyLjIwNWMwLC45NTkuMjg4LDEuOTE4LDIuMTEsMS45MThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzQxNzE4XFxcIi8+XCIsXG5cdFwiQWRhXCI6IFwiPHBhdGggZD1cXFwiTTI0LjU1NCwyMC4wNzVjLjIwOS4yNywxLjM1Ni45NjEsMS4zNywxLjI0NmE2LjkyMSw2LjkyMSwwLDAsMC0xLjQtLjMyNGMtLjQ2OC0uMTQyLS45NTEtLjI5My0xLjQxMi0uNDhhOS4yLDkuMiwwLDAsMS0yLjM3NS0xLjNBMy4xNDYsMy4xNDYsMCwwLDEsMTkuMywxNi43NWExLjcyMiwxLjcyMiwwLDAsMSwxLjc2Ny0xLjgyMiwzLjU4NCwzLjU4NCwwLDAsMSwxLjU5My4zMjFjLjE0Ni4wNjYsMS4zMS42MDYsMS4yNTYuODA5YTUuNSw1LjUsMCwwLDAtMS40MS0uMTEyYy0uNjQ5LjI0NC0uNC44MjgtLjE2OCwxLjMxMWE3Ljg3Nyw3Ljg3NywwLDAsMCwxLjA3OCwxLjU1NEMyMy41OCwxOS4wMDUsMjQuMywyMC4wODIsMjQuNTU0LDIwLjA3NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZjIzYzNcXFwiLz48cGF0aCBkPVxcXCJNMjQuMTQxLDE2LjI3NmMuMTI4LS41OS44MTktMS4zODQsMS4zNDQtLjc3M2E0LjIsNC4yLDAsMCwxLC41NzgsMS45MThjLjEyLjY1Ni4yLDEuMzI3LjI2MSwxLjk4Mi4wMzguMzc5LjM0LDEuNzk0LjEyMywyLjA3NWEyMy4yNCwyMy4yNCwwLDAsMS0yLjkyMi0yLjgzOCwzLjc2MywzLjc2MywwLDAsMS0uOTI1LTEuN0MyMi41LDE1Ljg2NywyMy40NzksMTYuMjEsMjQuMTQxLDE2LjI3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTE5NzhcXFwiLz48cGF0aCBkPVxcXCJNMjYuMywxNy43ODFjLjE0MS0uNzMyLS40MDYtMi41OTItMS4wNjctMi45NDlhLjA2LjA2LDAsMCwwLC4wNDQtLjAwN2MtLjE1Ni0uNDQ0LTEuMzU5LDEuMTE2LTEuMjI4LDEuMTc0LS4zMTYtLjEzOC43NzQtMS45ODQuOTg4LTIuMTYuNy0uNTc4LDEuMzcyLS4wODYsMS44NDUuNTQzYTYuMDM2LDYuMDM2LDAsMCwxLC43MzMsNC40MzQsNC41LDQuNSwwLDAsMS0uNDIxLDEuMzEyYy0uMS4yMi0uNDUsMS4xLS42ODIsMS4xNzRBMTQuNzU0LDE0Ljc1NCwwLDAsMCwyNi4zLDE3Ljc4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZjIzYzNcXFwiLz48cGF0aCBkPVxcXCJNMy42ODcsOC40Yy4xNzktLjE4OC0uMDQxLTEuNTI3LjMyNC0xLjU0OC4yNjItLjAxNS41NTMsMS43NDEuNjI3LDEuOTY4YTkuMiw5LjIsMCwwLDAsMS4xMjcsMi4zMjksNy41MjksNy41MjksMCwwLDAsNC4wMTYsMi45NzgsNC41NSw0LjU1LDAsMCwwLDIuMzY2LjJjLjkzMS0uMjA4LDEuODItLjU3NywyLjc1Ny0uNzY1LDEuMzUtLjI3LDMuMzQyLS4zNTIsNC40MzguNjQ3LjcuNjQxLjM3Ni43Ni4wNDMsMS40MjFhMi40NDUsMi40NDUsMCwwLDAsLjE3OCwyLjU2MmMuMjM1LjM0MiwxLjAzMy44MjcuNjc1LDEuMDk0LS41NjcuNDI0LTEuMjc3LS40NTItMS42MzYtLjc3Ni0xLjQtMS4yNjQtMi43MTEtMS4zMTMtNC40OTItMS4wNzRhOC45ODcsOC45ODcsMCwwLDEtNC44ODMtLjcwOEE5LjQ2OSw5LjQ2OSwwLDAsMSwzLjY4Nyw4LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0MSwzMGEzLjYxNSwzLjYxNSwwLDAsMS0yLjMyNS0uODE3Yy40NjktLjA5MiwxLjAyMS4wMjUsMS41MDgtLjA0NGE5LjcsOS43LDAsMCwwLDEuNzU0LS40M0ExMC41MzcsMTAuNTM3LDAsMCwwLDIzLjksMjcuMTU1YTYuNTUsNi41NSwwLDAsMCwyLjc1Ny01LjIxNGMuMTQ5LS4wODguMzE2LDEuMDM0LjMxOSwxLjA5MWE1Ljc4OSw1Ljc4OSwwLDAsMS0uMTksMS43MjcsNi44NjcsNi44NjcsMCwwLDEtMS40MjMsMi43NzRBNy4yODYsNy4yODYsMCwwLDEsMTkuOTQxLDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC45NjIsMTkuMTA5YTUuNzYsNS43NiwwLDAsMS0yLjA1Ljg1OSwxMy4zOCwxMy4zOCwwLDAsMS0yLjIyNC41NDksOC44NjEsOC44NjEsMCwwLDEtNC40MzUtLjUxLDkuOTM5LDkuOTM5LDAsMCwxLTMuODQ5LTIuNEM2LjA1MiwxNy4yNCw0LjMsMTUuMTksNC44NTYsMTQuNTU3Yy4yNDgtLjI4Mi44NzUuODQ2LDEsLjk5MmE1LDUsMCwwLDAsMS4zNTcsMS4xMSwxMC45MTcsMTAuOTE3LDAsMCwwLDQuMDM1LDEuNDU2LDYuNjkzLDYuNjkzLDAsMCwwLDIuMzQtLjA5NCwxMi43NDMsMTIuNzQzLDAsMCwxLDEuNjk0LS40ODUsNCw0LDAsMCwxLDIuMTEzLjQ1N0MxNy43MzksMTguMTYzLDE4LjkxOCwxOC43MzYsMTguOTYyLDE5LjEwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjguMzEzLDE1LjA3OGExOS4yNzcsMTkuMjc3LDAsMCwxLS40NTMsMy43NzRjLS4xNzYtLjI0Mi4wMTYtMS40NywwLTEuNzkyYTYuMDMyLDYuMDMyLDAsMCwwLS4zODQtMi4wODdBNC45MjUsNC45MjUsMCwwLDAsMjYuMSwxMy4zMTJhMTQuNzI4LDE0LjcyOCwwLDAsMS0xLjI3LTEuNTM2Yy0xLjgzNy0yLjM4Mi0zLjI0NS01LjIxMS0yLjktOC4zLjAzNC0uMzA4LjA2OS0xLjQ0OC40MTEtMS40NDUuMTUyLDAsLjI2NiwxLjU2MS4yOSwxLjcxOGExMi41MjcsMTIuNTI3LDAsMCwwLDEuMjI0LDQuMTE2Yy42NywxLjIyMiwxLjk0NywyLjAyMywyLjgyNSwzLjFBNi41NzksNi41NzksMCwwLDEsMjguMzEzLDE1LjA3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTUuNywyNi45MzVhMTAuODQ1LDEwLjg0NSwwLDAsMCw2LjQzNi0uNjg3LDYuOTQxLDYuOTQxLDAsMCwwLDQuMjc4LTQuNDE4Yy4zMTkuMi0uMDQ4LDEuNTI5LS4xMjgsMS43ODFhNS43MjYsNS43MjYsMCwwLDEtMS4wMSwxLjgxMyw4LjkzMyw4LjkzMywwLDAsMS0zLjI1NywyLjUxNEMyMC4zMTYsMjguNzEsMTYuMzU3LDI5LjU5LDE1LjcsMjYuOTM1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4xNTEsMTkuMzc2Yy4zNjcsMi4xMDctMi45NTcsMy4xMjQtNC40NzgsMy4yMTMtMS44NTkuMTEtNC45MjktLjI5Mi02LjA2LTIuMDMxLS42NzMtMS4wMzUuNzgxLS4wOSwxLjE4OC4wNThhOC42NjMsOC42NjMsMCwwLDAsMy4wNi41LDExLjYsMTEuNiwwLDAsMCwzLjMwNS0uNSwxMy43MjUsMTMuNzI1LDAsMCwwLDEuNTMzLS41NzZDMTgsMTkuOTA4LDE4LjgyMywxOS4zNDksMTkuMTUxLDE5LjM3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjQuMTQyLDIzLjQ2Yy40LS45NDUtMS44ODMtMS41NzgtMi40NDUtMS44NThhNC44NTcsNC44NTcsMCwwLDEtMS4zMTUtLjg2N2MtLjE4MS0uMTgxLS44NzItLjkyLS44MDctMS4yMTlhNC45MTIsNC45MTIsMCwwLDEsMS4wODctLjE3NSw1LjkzLDUuOTMsMCwwLDEsLjg1NS41ODgsMTAuMzIzLDEwLjMyMywwLDAsMCwuOTY0LjVBMTUuNjE1LDE1LjYxNSwwLDAsMCwyNC42LDIxLjJjLjMwOC4wOSwxLjU0OS4yMDgsMS43MjcuNDI4QzI2LjI4NywyMS45MjQsMjQuMzU3LDIzLjY0OSwyNC4xNDIsMjMuNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI2LjEsMjIuMTcyYy4yNjUuNDMtMS4wOCwxLjgzMS0xLjM2MywyLjEwNWE5LjM0LDkuMzQsMCwwLDEtMi41NjYsMS43MjgsNy43NDgsNy43NDgsMCwwLDEtMi41Ni43NTNjLS42NzkuMDU4LTEuOTY2LS4xMjQtMi4xNDEtLjk3OWE2Ljk1MSw2Ljk1MSwwLDAsMSwxLjE3Ny0uMDg2Yy40NjItLjA1OS45MjEtLjE0OSwxLjM3Ni0uMjQ2YTEzLjA2NSwxMy4wNjUsMCwwLDAsMi4xODQtLjY0NSwxMS41MDYsMTEuNTA2LDAsMCwwLDIuMDg0LTEuMTEsMTAuODcyLDEwLjg3MiwwLDAsMCwxLjA3OC0uODIyQzI1LjQ3NCwyMi43ODEsMjUuOTg2LDIyLjE2OCwyNi4xLDIyLjE3MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTguNzU4LDExLjk2NWMtLjEtMS4zMDgsMi42MTItMS4zLDMuMjcxLTEuMDkyYTUuOTc2LDUuOTc2LDAsMCwxLDIuOTgyLDIuNDc1Yy0xLjA4Mi44LTIuNDQ5LjA5NC0zLjMtLjY1NGE0LjMyNCw0LjMyNCwwLDAsMC0xLjQ4MS0xLjAyOUMxOS40MjEsMTEuNCwxOS40MTIsMTEuNzU5LDE4Ljc1OCwxMS45NjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI1Ljc4MywxMy4zNDFjLS40NDQtLjAyOS0uMzE2LjA3MS0uNjQ3LS4yMTItLjM1OC0uMzA3LS42MTQtLjc5NS0uOTQ1LTEuMTQxLS41MzQtLjU1OC0xLjI0Mi0uODk1LTEuNzIzLTEuNDg1YTcuMjY5LDcuMjY5LDAsMCwxLTEuNjI0LTQuODQ4Yy4wMTgtMS40ODkuNDA3LjE4Ny41NTEuNjc1YTEyLjI3NiwxMi4yNzYsMCwwLDAsMS4xMjYsMi43MDgsNDYuMDU1LDQ2LjA1NSwwLDAsMCwzLjQsNC4zMjFDMjUuODgyLDEzLjM2MSwyNS44MjQsMTMuMzM4LDI1Ljc4MywxMy4zNDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTIwLjA2OCwxNC43NTZjLjAzMy0uNjI1LS45MTEtLjc5Mi0xLjIxMS0xLjQyLS4xNjQtLjM0My0uMjExLS41NjkuMDI5LS43LjA4Mi0uMDQ1LjM4My4wMTIuNS0uMDIuMjcxLS4wNzYuMzM1LS4yNzMuNTgxLS40QTEuMTkzLDEuMTkzLDAsMCwxLDIxLjYsMTMuMjM3LDEuODIxLDEuODIxLDAsMCwxLDIwLjA2OCwxNC43NTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUsMTQuNzQ1YTEuOTMxLDEuOTMxLDAsMCwwLDEuMzIzLTEuN2MuNTI0LjEzOS45MjguNjU4LDEuNTIxLjc3MWEyLjU4NCwyLjU4NCwwLDAsMCwxLjAyOS0uMDE3Yy4yMDctLjA0NS41NC0uMjc0LjcyMS0uMjU5LS4wMzMuMTYzLS40NjQuNTQ2LS41NjUuNzE3YTQuMjQyLDQuMjQyLDAsMCwwLS4zODguOWMtLjIyOS43NDEtLjA2MS43MzktLjcwOS4zMTFhNC4yODQsNC4yODQsMCwwLDAtMS45NTctLjcyQzIxLjIwOSwxNC43MjIsMjAuNTk0LDE0Ljc2NywyMC41LDE0Ljc0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTA1LDIwLjczNGEyLjAwOCwyLjAwOCwwLDAsMS0xLjQsMS43MTJjLS4yMDUuMDkxLTIuMDE4LjczMy0yLjAzMi4zNDgtLjAwNy0uMiwxLjYyNC0uOTU0LDEuODA5LTEuMTFhMy4zNTUsMy4zNTUsMCwwLDAsLjg2Ny0xLjA3MWMuMDU1LS4xMTIuMjMyLS45MjUuMjcxLS45NDNDMTkuNjQ0LDE5LjU2NCwxOS45MDgsMjAuNiwxOS45MDUsMjAuNzM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4zNzMsMTIuNTMyYTEwLjYyNSwxMC42MjUsMCwwLDEsMy43MS0uOTE0LDEwLjI4MiwxMC4yODIsMCwwLDEsMS44NjUuMDI0Yy4zNjYuMDM5LDEuNDY5LjA1NCwxLjc0LjM0M2EuMjU1LjI1NSwwLDAsMS0uMjczLjE3M2MtLjAzNy4wNzcuMjUxLjM3MS4zLjQyNS0uMDM0LjAzNC0xLjQ0NS0uNC0xLjU3Mi0uNDI0YTEwLjYzMiwxMC42MzIsMCwwLDAtMi4yODItLjEzNCwxNiwxNiwwLDAsMC0xLjg0MS4xOTRBNi4yMjQsNi4yMjQsMCwwLDEsMTEuMzczLDEyLjUzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTEyLDEwLjczMWExLjg4OCwxLjg4OCwwLDAsMS0xLjUxNy0uNmMtLjI0Ny0uMzQ5LS43MzctMS42OTItLjM4NS0yLjAyMS4yMDktLjIuMzg0LjY2Mi40ODQuODQ2QTEwLjgyMiwxMC44MjIsMCwwLDAsMjIuNTEyLDEwLjczMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjcuNzg4LDE5LjJhMTkuMjEyLDE5LjIxMiwwLDAsMS0uNzQ5LDMuMzEzYy0uMTczLS4wNzctLjI3NS0uNzc4LS41NjItLjk1YTQuMDcsNC4wNywwLDAsMCwuNzYtMS4xNTRDMjcuMzg5LDIwLjEwNywyNy41NCwxOS4zNjMsMjcuNzg4LDE5LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk4MSwxMS44NDNjLS4xMzIuMjY4LS45MzIsMS4xLTEuMTE4LjQ4MUMxOC43NTYsMTEuOTY4LDE5LjczOSwxMS40ODMsMTkuOTgxLDExLjg0M1ptLS43NDcuNDVjLjIyOC4wMDYuMDEyLS4yNDguMDEyLS4yNjZDMTkuMjQ1LDExLjk4NCwxOC44NzgsMTIuMjkzLDE5LjIzNCwxMi4yOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+XCIsXG5cdFwiQUxcIjogXCI8cGF0aCBkPVxcXCJNMTEuNjE2LDcuOTg2QTEuNTU5LDEuNTU5LDAsMCwwLDEwLjE2LDdIMTAuMWExLjU1OCwxLjU1OCwwLDAsMC0xLjQ1Ni45ODZMMiwyNUg1LjgwNmwxLjAxNS0yLjgzNGg2LjYyMUwxNC40NTcsMjVoMy44Wk03Ljk0NCwxOC45NTZsMi4xODgtNi4xMTEsMi4xODgsNi4xMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmVhOThlXFxcIi8+PHBhdGggZD1cXFwiTTIzLjgyOSwyMS42NzFWNy4xMjlIMjAuM1YyMi43NDdBMi4zNDYsMi4zNDYsMCwwLDAsMjIuNTcsMjVIMzBWMjEuNjcyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzJlYTk4ZVxcXCIvPlwiLFxuXHRcIkFOVExSNFwiOiBcIjxwYXRoIGQ9XFxcIk0xNC4xNzcsNy4yNzhhMi4wOCwyLjA4LDAsMCwxLDMuMDQxLS44QTMuNTcxLDMuNTcxLDAsMCwxLDE4LjIsOC4wMjJjMS4zNTYsMy4xMjIsMi45LDYuMTY1LDQuMTE5LDkuMzQ1LjY0NSwxLjUsMS40MjksMi45MzgsMS45OTQsNC40NjhhMS40NTUsMS40NTUsMCwwLDEtMi4yNTgsMS4zNzZjLTIuOC0xLjU3Mi01LjYyOC0zLjA5NC04LjM4NS00LjczMSwyLjAwOS4wMDgsNC4wMTgtLjAwOCw2LjAyNS4wMTNhMTkuNzA3LDE5LjcwNywwLDAsMC0xLjI4OC0yLjkxOGMtLjc4MS0xLjg1OC0xLjYtMy43LTIuMzU4LTUuNTY1YTkuNzgzLDkuNzgzLDAsMCwwLTEuMDMyLDIuMTI1Yy0xLjMsMy4xODItMi44Nyw2LjI0MS00LjEzNiw5LjQzNS0uMjgxLjU5LS40MjQsMS4zNDQtMS4wMzUsMS42OWExLjQ0NywxLjQ0NywwLDAsMS0yLjA5NC0uNzM4Yy0uMjQxLS42MS4xNTEtMS4yLjM4Mi0xLjc0My43NzktMS43MjUsMS42NDUtMy40MTMsMi4yODMtNS4yQzExLjY1LDEyLjgsMTIuOTE2LDEwLjA0MSwxNC4xNzcsNy4yNzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmVmZWZlXFxcIi8+PHBhdGggZD1cXFwiTTEzLjgxNywyLjJBMTMuOTIzLDEzLjkyMywwLDAsMSwyOS41MjYsMTIuNTQ5YTEzLjczMywxMy43MzMsMCwwLDEtMi4wODIsMTEuNTE5QTE0LjA3NCwxNC4wNzQsMCwwLDEsNy43MzgsMjcuMjkzYTEzLjg1MiwxMy44NTIsMCwwLDEtNS42MTUtOS40ODNBMTQuMTUyLDE0LjE1MiwwLDAsMSwzLjQ1MSw5Ljg1LDEzLjk2MSwxMy45NjEsMCwwLDEsMTMuODE3LDIuMm0uMzU5LDUuMDhjLTEuMjYxLDIuNzYyLTIuNTI2LDUuNTI1LTMuNzYyLDguMy0uNjM4LDEuNzg2LTEuNSwzLjQ3My0yLjI4Myw1LjItLjIzMS41NDItLjYyMywxLjEzMy0uMzgyLDEuNzQzYTEuNDQ3LDEuNDQ3LDAsMCwwLDIuMDk0LjczOGMuNjEtLjM0Ny43NTMtMS4xLDEuMDM1LTEuNjksMS4yNjYtMy4xOTQsMi44MzMtNi4yNTMsNC4xMzYtOS40MzVhOS43ODMsOS43ODMsMCwwLDEsMS4wMzItMi4xMjVjLjc1NiwxLjg2OCwxLjU3NywzLjcwNywyLjM1OCw1LjU2NWExOS43MDcsMTkuNzA3LDAsMCwxLDEuMjg4LDIuOTE4Yy0yLjAwNy0uMDItNC4wMTYtLjAwNS02LjAyNS0uMDEzLDIuNzU3LDEuNjM3LDUuNTg4LDMuMTU5LDguMzg1LDQuNzMxYTEuNDU1LDEuNDU1LDAsMCwwLDIuMjU4LTEuMzc2Yy0uNTY1LTEuNTI5LTEuMzQ5LTIuOTcxLTEuOTk0LTQuNDY4LTEuMjItMy4xNzktMi43NjItNi4yMjMtNC4xMTktOS4zNDVhMy41NzEsMy41NzEsMCwwLDAtLjk4Mi0xLjU0NEEyLjA4LDIuMDgsMCwwLDAsMTQuMTc3LDcuMjc4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2U0NGEzMlxcXCIvPlwiLFxuXHRcIkFwYWNoZSBDb25maWd1cmF0aW9uXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTU2MDIuNjgyXFxcIiB5MT1cXFwiNzY4LjU0MVxcXCIgeDI9XFxcIi01NTk4LjcyN1xcXCIgeTI9XFxcIjc2My45MTdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC40MjMsIC0wLjkwNiwgLTAuOTA2LCAtMC40MjMsIDMwODIuODUzLCAtNDc0OC41NTEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjY5OTIzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMxMlxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y3OWEyM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44MzhcXFwiIHN0b3AtY29sb3I9XFxcIiNlOTc4MjZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi01NjMxLjk1MlxcXCIgeTE9XFxcIjc2OS4wNTJcXFwiIHgyPVxcXCItNTYwMy43MzdcXFwiIHkyPVxcXCI3NjkuMDUyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuNDIzLCAtMC45MDYsIC0wLjkwNiwgLTAuNDIzLCAzMDgyLjg1MywgLTQ3NDguNTUxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4zMjNcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZTIwNjRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjNcXFwiIHN0b3AtY29sb3I9XFxcIiNjOTIwMzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzUxXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2QyMzM1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTk3ODI2XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNTYyOC41NDZcXFwiIHkxPVxcXCI3NjYuMjIxXFxcIiB4Mj1cXFwiLTU2MTEuNzMzXFxcIiB5Mj1cXFwiNzY2LjIyMVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjQyMywgLTAuOTA2LCAtMC45MDYsIC0wLjQyMywgMzA4Mi44NTMsIC00NzQ4LjU1MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMyODI2NjJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDk1XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjYyZThkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc4OFxcXCIgc3RvcC1jb2xvcj1cXFwiIzlmMjA2NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45NDlcXFwiIHN0b3AtY29sb3I9XFxcIiNjZDIwMzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi01NjMwLjM2N1xcXCIgeTE9XFxcIjc2OS4zMTZcXFwiIHgyPVxcXCItNTYwMi4xNTJcXFwiIHkyPVxcXCI3NjkuMzE2XFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIi01NjI4LjMxXFxcIiB5MT1cXFwiNzY4LjkzM1xcXCIgeDI9XFxcIi01NjEzLjQ4MlxcXCIgeTI9XFxcIjc2OC45MzNcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmXFxcIiB4MT1cXFwiLTU2MzAuMzY3XFxcIiB5MT1cXFwiNzY2LjM5NFxcXCIgeDI9XFxcIi01NjAyLjE1MlxcXCIgeTI9XFxcIjc2Ni4zOTRcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJnXFxcIiB4MT1cXFwiLTU2MzIuMTE4XFxcIiB5MT1cXFwiNzY2LjUzOVxcXCIgeDI9XFxcIi01NjAzLjkwMlxcXCIgeTI9XFxcIjc2Ni41MzlcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiLTU2MzAuMzY3XFxcIiB5MT1cXFwiNzY1LjUyNlxcXCIgeDI9XFxcIi01NjAyLjE1MlxcXCIgeTI9XFxcIjc2NS41MjZcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpXFxcIiB4MT1cXFwiLTU2MzAuMzY3XFxcIiB5MT1cXFwiNzY1LjYyNVxcXCIgeDI9XFxcIi01NjAyLjE1MlxcXCIgeTI9XFxcIjc2NS42MjVcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiLTU2MTQuNTE2XFxcIiB5MT1cXFwiNzY1LjY0NVxcXCIgeDI9XFxcIi01NjA4LjI4XFxcIiB5Mj1cXFwiNzY1LjY0NVxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hcGFjaGU8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xOS45OTMsMi4xMzNhMTAuMjY3LDEwLjI2NywwLDAsMC0yLjA0LDIuMDU2bC44LDEuNTFhMTkuNzMzLDE5LjczMywwLDAsMSwxLjcwOC0yLjE0NGMuMDQ0LS4wNDkuMDY4LS4wNzIuMDY4LS4wNzJsLS4wNjguMDcyYTE3Ljg2NSwxNy44NjUsMCwwLDAtMS42LDIuMTc0LDMwLjEsMzAuMSwwLDAsMCwzLjExMS0uMzg1LDMuMjg4LDMuMjg4LDAsMCwwLS4zLTIuNVMyMC45LDEuNiwxOS45OTMsMi4xMzNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE4LjYzOCwxMC43NDlsLjAxOCwwLS4xMTUuMDEzLS4wMjEuMDA5WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44MjEsMTMuNDU1Yy0uMDY2LjAxNS0uMTMyLjAyNi0uMi4wMzZDMTcuNjg5LDEzLjQ4MSwxNy43NTYsMTMuNDY5LDE3LjgyMSwxMy40NTVaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTEyLjI3LDE5LjUyNGMuMDA5LS4wMjMuMDE3LS4wNDUuMDI1LS4wNjhxLjI2NC0uNy41MjMtMS4zNTcuMjkxLS43NDEuNTc1LTEuNDM2LjMtLjczMy41OS0xLjQxOC4zMDUtLjcxOC42LTEuMzg0LjI0LS41NDIuNDc0LTEuMDQ5LjA3OC0uMTY5LjE1NS0uMzM1LjE1My0uMzI5LjMtLjY0NS4xMzgtLjI5MS4yNzQtLjU3Yy4wMy0uMDYyLjA2LS4xMjMuMDktLjE4NWwuMDE1LS4wMy0uMS4wMTEtLjA3OC0uMTU0Yy0uMDA3LjAxNS0uMDE1LjAzLS4wMjMuMDQ1cS0uMjExLjQxOC0uNDE3Ljg0NS0uMTE5LjI0Ni0uMjM4LjQ5NS0uMzI4LjY4OS0uNjQ1LDEuMzg5VDEzLjc2NiwxNS4xcS0uMy43LS41OTQsMS40dC0uNTY3LDEuMzg3cS0uMjg5LjcyLS41NjIsMS40MjYtLjA2Mi4xNTktLjEyMy4zMTgtLjIxOS41NjktLjQyNiwxLjEyNGwuMTIzLjI0My4xMS0uMDEyLjAxMi0uMDMzUTEyLjAwOCwyMC4yMTYsMTIuMjcsMTkuNTI0WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NywxMy41WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zMDUsMTQuODE4bC0uMzE1LjA1NWgwbC4xNjEtLjAyNUMxNy4yLDE0LjgzOSwxNy4yNTMsMTQuODI5LDE3LjMwNSwxNC44MThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMwNSwxNC44MThsLS4zMTUuMDU1aDBsLjE2MS0uMDI1QzE3LjIsMTQuODM5LDE3LjI1MywxNC44MjksMTcuMzA1LDE0LjgxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTczLDEzLjVoMGwuMDUtLjAwN2MuMDY4LS4wMS4xMzUtLjAyMi4yLS4wMzZsLS4yNDguMDQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NzMsMTMuNWgwbC4wNS0uMDA3Yy4wNjgtLjAxLjEzNS0uMDIyLjItLjAzNmwtLjI0OC4wNDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlO29wYWNpdHk6MC4zNDk5OTk5OTQwMzk1MzU1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE2LjM5NCw5LjZxLjM2NS0uNjgyLjczOS0xLjMzMi4zODgtLjY3NC43ODQtMS4zMDVsLjA0Ni0uMDc1cS4zOTItLjYyLjc5LTEuMTkxbC0uOC0xLjUxLS4xODIuMjI1Yy0uMjMxLjI4OC0uNDcuNi0uNzE2LjkyNS0uMjc3LjM3LS41NjIuNzY0LS44NTEsMS4xNzktLjI2Ny4zODMtLjUzOC43ODQtLjgwOSwxLjItLjIzMS4zNTMtLjQ2Mi43MTctLjY5MiwxLjA5bC0uMDI2LjA0MkwxNS43MTgsMTAuOVExNi4wNTIsMTAuMjQ0LDE2LjM5NCw5LjZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTExLjY1MSwyMS4xOTJxLS4yMDcuNTY4LS40MTUsMS4xNTlsLS4wMDYuMDE3LS4wNTkuMTY3Yy0uMDkzLjI2Ni0uMTc1LjUtLjM2MSwxLjA0OWEyLjEwNywyLjEwNywwLDAsMSwuNzg2LjkyNiwxLjY4LDEuNjgsMCwwLDAtLjU0NC0xLjE1NCwzLjYyMSwzLjYyMSwwLDAsMCwzLjQ4OS0xLjQyLDIuNzkxLDIuNzkxLDAsMCwwLC4xNjUtLjMxMywxLjQ1MSwxLjQ1MSwwLDAsMS0xLjQuNTEzbDAsMCwwLDBhNC4wNTksNC4wNTksMCwwLDAsMi4wNDYtMS42NzJjLjExMS0uMTc4LjIxOC0uMzcyLjMyOC0uNTg3YTMuMywzLjMsMCwwLDEtMy4xMDksMS4wMWwtLjg0Mi4wOTJDMTEuNywyMS4wNSwxMS42NzcsMjEuMTIxLDExLjY1MSwyMS4xOTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTEyLjA0NCwxOS4zMDZxLjI3My0uNzA2LjU2Mi0xLjQyNi4yNzYtLjY5LjU2Ny0xLjM4N3QuNTk0LTEuNHEuMzA4LS43MTEuNjI5LTEuNDE5dC42NDUtMS4zODlxLjExOC0uMjQ4LjIzOC0uNDk1LjIwNy0uNDI2LjQxNy0uODQ1Yy4wMDctLjAxNS4wMTUtLjAzLjAyMy0uMDQ1TDE0LjY3Nyw4Ljg0N2wtLjA1MS4wODNjLS4yNDIuNC0uNDg0LjgtLjcyMSwxLjIxNnMtLjQ3NS44NDQtLjcsMS4yNzZxLS4yOTEuNTQ3LS41NjgsMS4xbC0uMTEuMjI1Yy0uMjI3LjQ2Ny0uNDMyLjkxOC0uNjE3LDEuMzUycS0uMzE1LjczNy0uNTU2LDEuNDA2Yy0uMTA3LjI5My0uMi41NzYtLjI5Mi44NDctLjA3My4yMzItLjE0Mi40NjQtLjIwOC43cS0uMjM0LjgxOC0uNCwxLjYzMUwxMS41LDIwLjc0OHEuMjA4LS41NTQuNDI2LTEuMTI0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40MzUsMTguNzU1YTE2LjA3LDE2LjA3LDAsMCwwLS4yNzIsMS45NzRjMCwuMDIzLDAsLjA0Ni0uMDA1LjA2OWE0LjE1LDQuMTUsMCwwLDAtMS4yLTEuMDI5LDUuODI1LDUuODI1LDAsMCwxLDEuMTcyLDIuNjkzLDIuNjQyLDIuNjQyLDAsMCwxLTEuMzI1LS4yMjYsMi42NjIsMi42NjIsMCwwLDAsMS4xMy42ODYsMy4yNDcsMy4yNDcsMCwwLDAtMS41NzEuNzgzLDMuMzU5LDMuMzU5LDAsMCwxLDEuODYxLS4zNDJDOS41MSwyNS4zODksOC43OTMsMjcuNjI2LDguMDc2LDMwYS42MjUuNjI1LDAsMCwwLC40MjUtLjQxM2MuMTI4LS40My45NzYtMy4yNTEsMi4zMDYtNi45NTlsLjExNS0uMzE4LjAzMi0uMDg5cS4yMTEtLjU4My40MzctMS4xOWwuMS0uMjc3LDAtLjAwNUwxMC40NSwxOC42ODRDMTAuNDQ1LDE4LjcwNywxMC40MzksMTguNzMxLDEwLjQzNSwxOC43NTVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTE1Ljg4LDExLjA3OGwtLjA5LjE4NXEtLjEzNS4yNzktLjI3NC41Ny0uMTUuMzE1LS4zLjY0NWMtLjA1Mi4xMTEtLjEuMjIyLS4xNTUuMzM1cS0uMjM0LjUwOC0uNDc0LDEuMDQ5LS4zLjY2Ni0uNiwxLjM4NC0uMjkxLjY4NS0uNTksMS40MTgtLjI4NC43LS41NzUsMS40MzYtLjI1OS42NjEtLjUyMywxLjM1N2MtLjAwOS4wMjMtLjAxNy4wNDUtLjAyNS4wNjhxLS4yNjIuNjkzLS41MjksMS40MjJsLS4wMTIuMDMzLjg0Mi0uMDkyLS4wNS0uMDA5YTYsNiwwLDAsMCwzLjIxLTEuODA3LDcuOTg0LDcuOTg0LDAsMCwwLDEuMS0xLjUyNCwxMy4xMzksMTMuMTM5LDAsMCwwLC43MDYtMS40NjdjLjE5NS0uNDcyLjM4Mi0uOTgyLjU2Mi0xLjUzNmEzLjA1MywzLjA1MywwLDAsMS0uNzg4LjI3NGMtLjA1MS4wMTEtLjEuMDIxLS4xNTYuMDNzLS4xMDcuMDE4LS4xNjEuMDI1aDBhMy42NjgsMy42NjgsMCwwLDAsMS45NjItMS45MTMsMy4zNDQsMy4zNDQsMCwwLDEtMS4xMy40OTVjLS4wNjYuMDE1LS4xMzIuMDI2LS4yLjAzNmwtLjA1LjAwN2gwYTMuODIxLDMuODIxLDAsMCwwLC44MzktLjQ2OWMuMDUxLS4wMzguMS0uMDc4LjE0OC0uMTIuMDczLS4wNjMuMTQyLS4xMjkuMjA4LS4yLjA0Mi0uMDQ0LjA4My0uMDkuMTIzLS4xMzhhMy4yNywzLjI3LDAsMCwwLC4yNjMtLjM2MmMuMDI1LS4wNC4wNS0uMDguMDc0LS4xMjIuMDMxLS4wNi4wNjEtLjExOS4wOS0uMTc4LjEzMS0uMjY0LjIzNi0uNS4zMTktLjcwNi4wNDItLjEuMDc4LS4yLjEwOS0uMjg4LjAxMy0uMDM1LjAyNS0uMDcuMDM2LS4xLjAzMy0uMS4wNi0uMTg3LjA4MS0uMjY1YTIuNjA1LDIuNjA1LDAsMCwwLC4wNjItLjI3NWgwYTEuMDEsMS4wMSwwLDAsMS0uMTA5LjA3NSwzLjk2NSwzLjk2NSwwLDAsMS0xLjE2Mi40bC43NzMtLjA4NS0uNzczLjA4NS0uMDE4LDAtLjExOS4wMTkuMDIxLS4wMDktMi42NDUuMjlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljg1OCw1LjczYy0uMjM1LjM2MS0uNDkyLjc3MS0uNzY4LDEuMjM2bC0uMDQ0LjA3NHEtLjM1OC42LS43NTksMS4zMjctLjM0Ni42MjYtLjcxOSwxLjM0Ny0uMzI2LjYyOS0uNjcyLDEuMzM2bDIuNjQ1LS4yOUEzLjIxNiwzLjIxNiwwLDAsMCwxOS45OSw5LjYyYy4wODktLjEyOC4xNzgtLjI2Mi4yNjctLjQuMjcyLS40MjQuNTM4LS44OTEuNzc2LTEuMzU1YTE0LjA3NCwxNC4wNzQsMCwwLDAsLjU4OC0xLjI5NCw2LjgsNi44LDAsMCwwLC4yMzMtLjdjLjA0OC0uMTg0LjA4Ni0uMzU4LjExNS0uNTI0QTMwLjE1MiwzMC4xNTIsMCwwLDEsMTguODU4LDUuNzNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2cpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjE0OSwxNC44NDhjLS4wNTMuMDA5LS4xMDcuMDE4LS4xNjEuMDI1aDBDMTcuMDQyLDE0Ljg2NiwxNy4xLDE0Ljg1NywxNy4xNDksMTQuODQ4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4xNDksMTQuODQ4Yy0uMDUzLjAwOS0uMTA3LjAxOC0uMTYxLjAyNWgwQzE3LjA0MiwxNC44NjYsMTcuMSwxNC44NTcsMTcuMTQ5LDE0Ljg0OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTcuMTQ5LDE0Ljg0OGMtLjA1My4wMDktLjEwNy4wMTgtLjE2MS4wMjVoMEMxNy4wNDIsMTQuODY2LDE3LjEsMTQuODU3LDE3LjE0OSwxNC44NDhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3LDEzLjVsLjA1LS4wMDctLjA1LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcsMTMuNWwuMDUtLjAwNy0uMDUuMDA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZTtvcGFjaXR5OjAuMzQ5OTk5OTk0MDM5NTM1NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NywxMy41bC4wNS0uMDA3LS4wNS4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2kpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3MiwxMy41aDBaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3MiwxMy41aDBaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlO29wYWNpdHk6MC4zNDk5OTk5OTQwMzk1MzU1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3MiwxMy41aDBaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+XCIsXG5cdFwiQXBleFwiOiBcIjxwYXRoIGQ9XFxcIk0xMy42NTIsOC4zMzhBNC45MDYsNC45MDYsMCwwLDEsMTcuMiw2LjgxNGE0Ljk1Nyw0Ljk1NywwLDAsMSw0LjMyLDIuNTYsNS45NzIsNS45NzIsMCwwLDEsMi40NDItLjUxOSw2LjA4OSw2LjA4OSwwLDEsMS0xLjE4OSwxMi4wNiw0LjQxMiw0LjQxMiwwLDAsMS01Ljc4MiwxLjgxNkE1LjAzNCw1LjAzNCwwLDAsMSw3LjYzNCwyMi41YTQuNjQ2LDQuNjQ2LDAsMCwxLS45Ni4xLDQuNzMyLDQuNzMyLDAsMCwxLTIuMzM3LTguODEyLDUuNDM4LDUuNDM4LDAsMCwxLDkuMzE1LTUuNDUzXFxcIiBzdHlsZT1cXFwiZmlsbDojMGY5YmQ3XFxcIi8+PHBhdGggZD1cXFwiTTI1LjM3NiwzMC45NjZoLS41NjFhNC42NTgsNC42NTgsMCwwLDEtMS4yODQtLjEzNywxLjksMS45LDAsMCwxLS44MTgtLjQ4MiwxLjcyNiwxLjcyNiwwLDAsMS0uNDU1LS44NDMsNi43Nyw2Ljc3LDAsMCwxLS4xMDYtMS40MTMsNS44ODksNS44ODksMCwwLDAtLjA4NC0xLjMzLDEsMSwwLDAsMC0uMy0uNTQ0LDEuMjIzLDEuMjIzLDAsMCwwLS42Ni0uMTc5bC0uMjM2LS4wMTRWMjQuMTQ1bC4yMzYtLjAxNGExLjQ4MiwxLjQ4MiwwLDAsMCwuNTQ5LS4xLjcwNi43MDYsMCwwLDAsLjI3My0uMjY0LDEuMzk0LDEuMzk0LDAsMCwwLC4xODEtLjUyOSw2LjY4Myw2LjY4MywwLDAsMCwuMDQ0LS45MzksOC4xMzIsOC4xMzIsMCwwLDEsLjExMi0xLjY0MywxLjcsMS43LDAsMCwxLC40NDgtLjg0MSwyLjE0NCwyLjE0NCwwLDAsMSwuOTA2LS40OTIsNC41MTQsNC41MTQsMCwwLDEsMS4yLS4xMTZoLjU2MXYxLjloLS4yNWEyLjU4OSwyLjU4OSwwLDAsMC0uNzQzLjA1Ni4yODQuMjg0LDAsMCwwLS4xNDguMTE3LjgzOS44MzksMCwwLDAtLjA1NC4zODZxMCwuMzcyLS4wNTMsMS40MTNhMy43NCwzLjc0LDAsMCwxLS4xNjYsMS4wMDksMS45NDUsMS45NDUsMCwwLDEtLjY5MywxLDIuMDEsMi4wMSwwLDAsMSwuNywxLjA0NCw0LjYyNyw0LjYyNywwLDAsMSwuMTYzLDEuMDc5Yy4wMjcuNjU3LjA0MSwxLjA3NC4wNDEsMS4yNTZhLjg3MS44NzEsMCwwLDAsLjA1Ny40MDhBLjM0My4zNDMsMCwwLDAsMjQuNCwyOWEyLjM4MiwyLjM4MiwwLDAsMCwuNzI4LjA2aC4yNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjEuMTE4LDI1Ljc4OFYyNC4zODJhMS43NTIsMS43NTIsMCwwLDAsLjY0NS0uMTI5LjkzNi45MzYsMCwwLDAsLjM3NS0uMzU0LDEuNjIxLDEuNjIxLDAsMCwwLC4yMTctLjYyNEE2Ljg4LDYuODgsMCwwLDAsMjIuNCwyMi4zYTgsOCwwLDAsMSwuMTA1LTEuNTg1LDEuNDU2LDEuNDU2LDAsMCwxLC4zODEtLjcyMSwxLjksMS45LDAsMCwxLC44LS40MzEsNC4zMzYsNC4zMzYsMCwwLDEsMS4xMjUtLjEwNWguMzExdjEuNGEyLjg3NiwyLjg3NiwwLDAsMC0uODM1LjA3My41My41MywwLDAsMC0uMjcyLjIyMywxLjA3OSwxLjA3OSwwLDAsMC0uMDg4LjUxM3EwLC4zNjktLjA1MywxLjRhMy41MzEsMy41MzEsMCwwLDEtLjE1Mi45NCwxLjkxOCwxLjkxOCwwLDAsMS0uMzEzLjU5NSwyLjQ3LDIuNDcsMCwwLDEtLjU4My40ODYsMi4wNDUsMi4wNDUsMCwwLDEsLjU2NS40NjYsMS44NjksMS44NjksMCwwLDEsLjMzNy42NDcsNC40MSw0LjQxLDAsMCwxLC4xNTIsMS4wMnEuMDQxLjk3My4wNDEsMS4yNDJhMS4xLDEuMSwwLDAsMCwuMDk0LjUzOS41ODQuNTg0LDAsMCwwLC4yODQuMjMxLDIuNjQ5LDIuNjQ5LDAsMCwwLC44MjMuMDc5djEuNDA2aC0uMzExQTQuNDc0LDQuNDc0LDAsMCwxLDIzLjYsMzAuNTlhMS42NDQsMS42NDQsMCwwLDEtLjcxMi0uNDE5LDEuNDc4LDEuNDc4LDAsMCwxLS4zOS0uNzI0LDYuNjIxLDYuNjIxLDAsMCwxLS4xLTEuMzU2LDYuMzc0LDYuMzc0LDAsMCwwLS4wOTQtMS40LDEuMjMyLDEuMjMyLDAsMCwwLS4zOS0uNjcxQTEuNDMxLDEuNDMxLDAsMCwwLDIxLjExOCwyNS43ODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3MmEwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjAxMSwzMC45NjZIMjYuNDVWMjkuMDU5aC4yNUEyLjMyOSwyLjMyOSwwLDAsMCwyNy40MjYsMjlhLjMyMy4zMjMsMCwwLDAsLjE2NS0uMTI3LjgxMi44MTIsMCwwLDAsLjA1OC0uMzc5cTAtLjM2LjA1LTEuMzc1YTMuNzI1LDMuNzI1LDAsMCwxLC4xNzMtMS4wNDcsMi4yMjMsMi4yMjMsMCwwLDEsLjM4Ny0uNywyLjE0NSwyLjE0NSwwLDAsMSwuMy0uMjkyLDIuMTQxLDIuMTQxLDAsMCwxLS40LS40LDIuNjEyLDIuNjEyLDAsMCwxLS40MjEtMS4wOTIsMTcuNTI1LDE3LjUyNSwwLDAsMS0uMS0xLjg0MSwxLjM1NywxLjM1NywwLDAsMC0uMDUzLS40NzljLS4wMDgtLjAxNi0uMDMxLS4wNjItLjEzNi0uMTA2YTIuNTI0LDIuNTI0LDAsMCwwLS43NTctLjA2aC0uMjVWMTkuMmguNTYxYTQuNzkzLDQuNzkzLDAsMCwxLDEuMjgzLjEzMywxLjg0MSwxLjg0MSwwLDAsMSwuODE4LjQ4NSwxLjc4MSwxLjc4MSwwLDAsMSwuNDUzLjg0Myw2LjYsNi42LDAsMCwxLC4xMDksMS40MTQsNi4zNTksNi4zNTksMCwwLDAsLjA3OSwxLjMzNi45OTIuOTkyLDAsMCwwLC4zLjUzNywxLjIyNiwxLjIyNiwwLDAsMCwuNjY0LjE4bC4yMzYuMDE0djEuODc5bC0uMjM2LjAxNGExLjQ4MiwxLjQ4MiwwLDAsMC0uNTQ5LjEuNjg2LjY4NiwwLDAsMC0uMjcuMjYyLDEuNDg0LDEuNDg0LDAsMCwwLS4xODYuNTM0LDYuNzQzLDYuNzQzLDAsMCwwLS4wNDMuOTMxLDguMzgzLDguMzgzLDAsMCwxLS4xMDgsMS42NDQsMS42OTQsMS42OTQsMCwwLDEtLjQ0Ni44NDYsMi4xNDMsMi4xNDMsMCwwLDEtLjkxMy40OTJBNC41LDQuNSwwLDAsMSwyNy4wMTEsMzAuOTY2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0zMC43MDgsMjUuNzg4YTEuNzUyLDEuNzUyLDAsMCwwLS42NDUuMTI5LjkxOC45MTgsMCwwLDAtLjM3Mi4zNTQsMS43MjUsMS43MjUsMCwwLDAtLjIyLjYyNCw2LjgyLDYuODIsMCwwLDAtLjA0Ny45NzMsOC4yNyw4LjI3LDAsMCwxLS4xLDEuNTg4LDEuNDM5LDEuNDM5LDAsMCwxLS4zNzguNzI0LDEuOSwxLjksMCwwLDEtLjgwOS40MzEsNC4zMzYsNC4zMzYsMCwwLDEtMS4xMjUuMTA1SDI2LjdWMjkuMzFhMi42NTIsMi42NTIsMCwwLDAsLjgyLS4wNzlBLjU3Mi41NzIsMCwwLDAsMjcuOCwyOSwxLjA1LDEuMDUsMCwwLDAsMjcuOSwyOC41cTAtLjM1Ny4wNS0xLjM2NWEzLjUzLDMuNTMsMCwwLDEsLjE1OC0uOTc2LDEuOTc2LDEuOTc2LDAsMCwxLC4zNDMtLjYyMUEyLjAzOCwyLjAzOCwwLDAsMSwyOSwyNS4wODVhMi40MTYsMi40MTYsMCwwLDEtLjYzMy0uNTUxLDIuMzM5LDIuMzM5LDAsMCwxLS4zNzUtLjk4NCwxNy41NjQsMTcuNTY0LDAsMCwxLS4wOTQtMS44LDEuNTcxLDEuNTcxLDAsMCwwLS4wNzktLjU4Ni40ODcuNDg3LDAsMCwwLS4yNjQtLjIyNiwyLjgsMi44LDAsMCwwLS44NTMtLjA3OXYtMS40aC4zMTFhNC41NzYsNC41NzYsMCwwLDEsMS4yMTMuMTIzLDEuNTg3LDEuNTg3LDAsMCwxLC43MDkuNDE5LDEuNTI5LDEuNTI5LDAsMCwxLC4zOS43MjcsNi40MzYsNi40MzYsMCwwLDEsLjEsMS4zNTYsNi44NDIsNi44NDIsMCwwLDAsLjA4OCwxLjQsMS4yMjMsMS4yMjMsMCwwLDAsLjM5My42NzEsMS40NDcsMS40NDcsMCwwLDAsLjguMjMxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzJhMFxcXCIvPlwiLFxuXHRcIkFQTFwiOiBcIjxwYXRoIGQ9XFxcIk0zMCwyOC4yNzUsMTYsMiwyLDI4LjI3NUgxNC4xNjJWMzBoMy42NzZWMjguMjc1Wk0xNy44MzgsMjQuODI2VjEzLjE2MWw2LjIxNSwxMS42NjVabS05Ljg5MSwwLDYuMjE1LTExLjY2NVYyNC44MjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+XCIsXG5cdFwiQXBwbGVTY3JpcHRcIjogXCI8cGF0aCBkPVxcXCJNMTcuMTgxLDQuNDM3QTUuOTkzLDUuOTkzLDAsMCwxLDIxLjU3OSwyYTUuOTc5LDUuOTc5LDAsMCwxLTEuNDQ3LDQuNDc2LDQuNzI5LDQuNzI5LDAsMCwxLTQuMTcsMS45NjFBNS4yLDUuMiwwLDAsMSwxNy4xODEsNC40MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYThjMmFiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIsMTAuMDM0Yy45NDYsMCwyLjctMS4zLDQuOTg5LTEuM2E2LjI0OSw2LjI0OSwwLDAsMSw1LjQ4NCwyLjgsNi4wOCw2LjA4LDAsMCwwLTMuMDI4LDUuMyw2LjIzNSw2LjIzNSwwLDAsMCwzLjc3Miw1LjdzLTIuNjM3LDcuNDIyLTYuMiw3LjQyMmMtMS42MzYsMC0yLjkwOC0xLjEtNC42MzEtMS4xLTEuNzU3LDAtMy41LDEuMTQ0LTQuNjM1LDEuMTQ0QzguNywzMCw0LjU4NywyMi45NTksNC41ODcsMTcuM2MwLTUuNTY4LDMuNDc4LTguNDg5LDYuNzQtOC40ODlDMTMuNDQ4LDguODExLDE1LjA5MywxMC4wMzQsMTYuMiwxMC4wMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYThjMmFiXFxcIi8+XCIsXG5cdFwiQXJkdWlub1wiOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIjc2Ny4xNzlcXFwiIGN5PVxcXCI1MTY5LjU0M1xcXCIgcj1cXFwiMTQuOTg5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC03MTguMTEyIC00OTUzLjkxNykgc2NhbGUoMC45NTUgMC45NjIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzZiYWMwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMmQ5MDk0XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hcmR1aW5vPC90aXRsZT48cGF0aCBkPVxcXCJNMjkuNjQ1LDE1LjkyNUExMy43NywxMy43NywwLDEsMSwxNS44NzYsMi4wNTYsMTMuODE5LDEzLjgxOSwwLDAsMSwyOS42NDUsMTUuOTI1WlxcXCIgc3R5bGU9XFxcInN0cm9rZTojMDI3OTdlO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MS4xMzY3MjI4NDU0OTY5MjY3cHg7ZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjU4MSwxMS42NDhjMi40MS0uMDc2LDMuMzU5LjgzNCw0LjYwNSwyLjA2OS4yODUuMjgyLjU3OS41OS45LjkyMWwuOTIyLS45OTFhNi4yMjMsNi4yMjMsMCwwLDEsMy4yNTYtMS45M2MxLjkzOS0uMjExLDMuMTE5LS4xMjIsNC4zMTEuODE0YTUuMDIzLDUuMDIzLDAsMCwxLDIuMjQ1LDMuOSw1LjY1Myw1LjY1MywwLDAsMS0zLjI1LDUuMTU2LDUuOTc1LDUuOTc1LDAsMCwxLTMuOTEzLjEzNSw3LjY1Niw3LjY1NiwwLDAsMS0zLjU0MS0yLjk4N2MtMS42NzgsMi4xNDItMy4xODcsMy4yNTMtNS4yMzUsMy4xNTUtNy40NTItLjM1NC02Ljg0Mi0xMC4wNzUtLjMtMTAuMjQ3Wm0xLjY1Nyw3Ljk5NGE5LjE5Myw5LjE5MywwLDAsMCwyLjg1Ni0yLjljLS43NC0xLjI0My0yLjIwOS0yLjgyNC0zLjQ1NS0zLjEzNGE0LjMyOCw0LjMyOCwwLDAsMC0zLjIyNC43NzcsMy4zODQsMy4zODQsMCwwLDAtLjc2MiwzLjY4NiwzLjY3NCwzLjY3NCwwLDAsMCw0LjU4NSwxLjU3Wm0tMi45OC0zLjQ4NywzLjI3OC4wMDV2MS4yMWwtMy4yODMuMDA1Wm0xMy40NDgsMy42QTMuODQzLDMuODQzLDAsMCwwLDI0LjkzNywxN2EzLjQ1OCwzLjQ1OCwwLDAsMC0xLjg2My0zLjEwOSwzLjY0OCwzLjY0OCwwLDAsMC00LjIuNzI4LDcuMzY0LDcuMzY0LDAsMCwwLTEuNjQ5LDIuMTUxQTguOTM2LDguOTM2LDAsMCwwLDE5LjIsMTkuMjUyLDQuMDIyLDQuMDIyLDAsMCwwLDIyLjcwNiwxOS43NTRabS0xLjk1NS0yLjM3Ni0xLjA4OC0uMDA4LDAtMS4yMTcsMS4wOTEsMFYxNS4wNzVsMS4xMDctLjAwOC0uMDA3LDEuMDkzLDEuMDg1LDB2MS4xNjVsLTEuMDIxLS4wMDh2MS4xMkgyMC43NTNaXFxcIiBzdHlsZT1cXFwic3Ryb2tlOiMwMDA7c3Ryb2tlLXdpZHRoOjAuMTIxMDMwOTY0ODA5Mjc0ODJweDtvcGFjaXR5OjAuMTY4MDk5OTk5NDI3Nzk1NDtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk00LjkxNywxNi4zMzdjMCw1LjM0OCw3LjM1NCw3LjM0LDEwLjk4NywxLjg5NCwzLjc2NSw1LjY0NywxMC44MjQsMy4yOCwxMC44MjQtMS45UzE5LjcsOC42NTYsMTUuOSwxNC40NDFjLTMuNi01LjcxOS0xMC45ODctMy40NTMtMTAuOTg3LDEuOVptMS45MzEsMGMwLTMuODYsNS40NTUtNS4wNzgsNy45OTIsMC0yLjU4OCw0Ljg4OS03Ljk5MiwzLjg1OS03Ljk5MiwwWm0xMC4xMTksMGMyLjI4Ni01LjE3OCw3Ljg4OS0zLjc1MSw3Ljg3Mi4wMDhTMTkuMTg2LDIxLjI3NywxNi45NjcsMTYuMzM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MC4yNDIwNjE5Mjk2MTg1NDk2NHB4XFxcIi8+PHJlY3QgeD1cXFwiOC44OThcXFwiIHk9XFxcIjE1Ljc5NVxcXCIgd2lkdGg9XFxcIjMuMjM3XFxcIiBoZWlnaHQ9XFxcIjEuMDY3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC42NDQgMTYuODQ2IDE5LjU3NiAxNi44NDYgMTkuNTc2IDE1LjcxMiAyMC42NDQgMTUuNzEyIDIwLjY0NCAxNC42NDQgMjEuNzc5IDE0LjY0NCAyMS43NzkgMTUuNzEyIDIyLjg0NyAxNS43MTIgMjIuODQ3IDE2Ljg0NiAyMS43NzkgMTYuODQ2IDIxLjc3OSAxNy45MTQgMjAuNjQ0IDE3LjkxNCAyMC42NDQgMTYuODQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiQVJNIEFzc2VtYmx5XCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiODM2LjYzXFxcIiB5MT1cXFwiMzYuMjA1XFxcIiB4Mj1cXFwiODQzLjgwMlxcXCIgeTI9XFxcIjE0LjQ4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDUyNS45MjIgMzAuMjQ5KSByb3RhdGUoMTgwKSBzY2FsZSgwLjYwNyAwLjYwNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjI3NVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfYXNzZW1ibHk8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyYy0xLjI0NiwzLjA1Ni0yLDUuMDU3LTMuMzkxLDguMDIyQTIxLjg4NCwyMS44ODQsMCwwLDAsMTYuMiwxMy4xNTZhMTQuODU4LDE0Ljg1OCwwLDAsMS00LTIuMjgzQzEwLjQzLDE0LjU3OSw3LjY0NiwxOS44NTUsMiwzMGM1LjE4Ni0yLjk5NCw5LjAxMi00LjY0OCwxMi42OTEtNC45NjZWMjQuMmgtLjgzNHYtLjgzN2guODM0VjI0LjJoMS42NzVWMjIuNTIxSDE0LjY5MXYtLjgzNGgtLjgzNFYyMC4wMTNoLjgzNHYtLjgzNGgxLjY3NXYuODM0SDE3LjJ2LjgzN2gtLjgzN3YtLjgzN0gxNC42OTF2MS42NzVoMS42NzV2LjgzNEgxNy4yVjI0LjJoLS44Mzd2Ljc4M2MzLjk4LjEsOC4wMDYsMS43NzIsMTMuNjM0LDUuMDIxLS44NjMtMS41ODktMS42MzYtMy4wMjEtMi4zNzItNC4zODVhMjUuNTI2LDI1LjUyNiwwLDAsMC00LjgzMy0zLjMzM0ExNC40MzYsMTQuNDM2LDAsMCwxLDI2LjY1LDIzLjhDMTkuMTcsOS44NzIsMTguNTY1LDguMDIsMTYsMlpNMTAuNTExLDE5LjE3OWgxLjY3MXYuODM0aC44Mzd2NS4wMjFoLS44MzdWMjIuNTIxSDEwLjUxMXYyLjUxMkg5LjY3M1YyMC4wMTNoLjgzN1ptMCwuODM0djEuNjc1aDEuNjcxVjIwLjAxM1ptNy41MjYtLjgzNGguODM3di44MzRoLjgzN3YuODM3aC44MzR2LS44MzdoLjgzN3YtLjgzNGguODM3djUuODU1aC0uODM3VjIwLjg1aC0uODM3di44MzdoLS44MzRWMjAuODVoLS44Mzd2NC4xODRoLS44MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAwMGJmXFxcIi8+PHBhdGggZD1cXFwiTTIzLjg4MSwxOC42NDJjLTYuMDY5LTguMjM3LTcuNDc2LTE0Ljg3Ni03LjgzMi0xNi40NjFBMTc1LjIxNywxNzUuMjE3LDAsMCwwLDIzLjg4MSwxOC42NDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtb3BhY2l0eTowLjE2NTY4MDQ2ODA4MjQyOFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wNTEsMi4xMiwxNS42LDMuMjI3Yy0uMTU5LjM5MS0uMzExLjc2NS0uNDYxLDEuMTMxcy0uMy43MjQtLjQ0OCwxLjA3Ny0uMy43LS40NDgsMS4wNTMtLjMuNzA2LS40NjUsMS4wNjYtLjMyOS43MjktLjUwNiwxLjExMS0uMzYyLjc3OC0uNTYxLDEuMTkzYy0uMDI4LjA1Ny0uMDYxLjEyMy0uMDg5LjE4MUEyMS44NzIsMjEuODcyLDAsMCwwLDE2LjIsMTMuMTU2YTE0Ljg3OSwxNC44NzksMCwwLDEtMy45ODktMi4yNzZsLS4xNC4yODdjLS4wNjUuMTMzLS4xNDQuMjgzLS4yMTIuNDJsLS4xMDYuMjE5Yy0uODc4LDEuNzkzLTIuMDA2LDMuOTg0LTMuNTI0LDYuODIyLDMuNTUxLTIsNy4zODEtNC44ODcsMTQuMzM4LTIuNC0uMzQ5LS42NjEtLjY3LTEuMjgtLjk3MS0xLjg2M3MtLjU4MS0xLjEyOC0uODQxLTEuNjQ0LS41LTEtLjcyNS0xLjQ2My0uNDMzLS45LS42MjktMS4zMTMtLjM4LS44MTgtLjU1NC0xLjItLjMzOS0uNzU0LS41LTEuMTE4UzE4LjA0Nyw2LjksMTcuOSw2LjU0NnMtLjI5MS0uNzA5LS40MzQtMS4wNjZjLS4wMzYtLjA5MS0uMDczLS4xODYtLjEwOS0uMjc3QzE2Ljk0OSw0LjI0NywxNi41MzYsMy4yNTgsMTYuMDUxLDIuMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdFwiQXNjaWlEb2NcIjogXCI8cGF0aCBkPVxcXCJNMzAsMzBIMlYySDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2U0MDA0NlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy43MzEsMjQuODNhLjU4OS41ODksMCwwLDEtLjc2My0uMzM3TDE2LjcyNCw5LjI2OSwxMy45MywxNS45OWgxLjgzM2EuNTkuNTksMCwwLDEtLjAyNCwxLjE4SDguOWEuNTkuNTksMCwwLDEsLjAyNC0xLjE4aDMuNzI3bDAtLjAxM0wxNi4xODQsNy41YS41OTEuNTkxLDAsMCwxLC41MzMtLjM2M2gwYS41OTIuNTkyLDAsMCwxLC41NTcuMzY2bDYuNzg1LDE2LjU0Ni4wMDkuMDIxQS41OS41OSwwLDAsMSwyMy43MzEsMjQuODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE0LjUxNiwxOC43OTFINy42NzlhLjU5LjU5LDAsMCwwLS4wMjQsMS4xOEgxMUw5LjMwOSwyNC4wNDNhLjU5LjU5LDAsMCwwLDEuMDg1LjQ2NGwwLS4wMTEsMS44NzUtNC41MDkuMDA1LS4wMTZoMi4yMTVhLjU5LjU5LDAsMCwwLC4wMjMtMS4xOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJBU1AuTkVUIChDIylcIjogXCI8dGl0bGU+ZmlsZV90eXBlX2FzcHg8L3RpdGxlPjxwb2x5Z29uIHBvaW50cz1cXFwiMjIuNzUgMiA2LjM1IDIgNi4zNSAzMCAyOS42NSAzMCAyOS42NSA5IDIyLjc1IDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNWM1YzVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI3LjM1IDI3LjcgOC43NSAyNy43IDguNzUgNC4zIDIwLjQ1IDQuMyAyMC40NSAxMS4zIDI3LjQ1IDExLjMgMjcuNDUgMjcuNyAyNy4zNSAyNy43XFxcIiBzdHlsZT1cXFwiZmlsbDojZjVmNWY1XFxcIi8+PHBhdGggZD1cXFwiTTEyLjEsMzAuOTk0QTExLjA5NCwxMS4wOTQsMCwxLDEsMjMuMTk0LDE5LjksMTEuMTA2LDExLjEwNiwwLDAsMSwxMi4xLDMwLjk5NFptMC0yMC4zQTkuMiw5LjIsMCwxLDAsMjEuMywxOS45LDkuMjE2LDkuMjE2LDAsMCwwLDEyLjEsMTAuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGNcXFwiLz48cmVjdCB4PVxcXCIyLjA5OVxcXCIgeT1cXFwiMTkuNDU1XFxcIiB3aWR0aD1cXFwiMjAuMDAzXFxcIiBoZWlnaHQ9XFxcIjAuODlcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNMTIuMzI1LDE1Ljc2M2EzMS45MywzMS45MywwLDAsMS04LjQ4NC0xLjExbC4yNDItLjgwN2EzMS4zNzQsMzEuMzc0LDAsMCwwLDE1Ljk5MiwwbC4yMzkuODA3QTI4LjA3NiwyOC4wNzYsMCwwLDEsMTIuMzI1LDE1Ljc2M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNNC4xLDI1LjcyNGwtLjIzOS0uODA3YTMxLjY1MiwzMS42NTIsMCwwLDEsMTYuNDcyLDBsLS4yNDIuODA3QTMxLjM4LDMxLjM4LDAsMCwwLDQuMSwyNS43MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+PHBhdGggZD1cXFwiTTguNTM2LDI5LjA1NUEyNS40MzgsMjUuNDM4LDAsMCwxLDgsMTAuNjA4bC43NzYuMzMxYTI0LjU1OCwyNC41NTgsMCwwLDAsLjUzMywxNy43ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+PHBhdGggZD1cXFwiTTE1LjYsMjkuMDU1bC0uNzc2LS4zMzNhMjQuNTU5LDI0LjU1OSwwLDAsMCwuNTMxLTE3Ljc4M2wuNzc2LS4zMzFBMjUuNDQzLDI1LjQ0MywwLDAsMSwxNS42LDI5LjA1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cmVjdCB4PVxcXCIxMS42NTVcXFwiIHk9XFxcIjkuODk4XFxcIiB3aWR0aD1cXFwiMC44ODlcXFwiIGhlaWdodD1cXFwiMjAuMzcxXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+XCIsXG5cdFwiQXV0b0hvdGtleVwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjU0LjYwNFxcXCIgeTE9XFxcIjE2OC4zODhcXFwiIHgyPVxcXCI1NC42MDRcXFwiIHkyPVxcXCIxOTQuODg1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zOC42MDQgLTE2NS42MzYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDhkOGQ4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTNhM2EzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCI2OC43NTZcXFwiIHkxPVxcXCIyMDkuMTUyXFxcIiB4Mj1cXFwiOTEuNjM4XFxcIiB5Mj1cXFwiMjA5LjE1MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNTAuNjAxIC0xNTkuNDQ5KSBzY2FsZSgwLjgzMiAwLjgzNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkN2Q3ZDdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U3ZTdlN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2Q3ZDdkN1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfYXV0b2hvdGtleTwvdGl0bGU+PHJlY3QgeD1cXFwiMlxcXCIgeT1cXFwiMi44MjRcXFwiIHdpZHRoPVxcXCIyOFxcXCIgaGVpZ2h0PVxcXCIyNi4zNTNcXFwiIHJ4PVxcXCIzLjA4OFxcXCIgcnk9XFxcIjMuMDg4XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljg1NiwyOS4xODFINS4xNDRBMy4xNDgsMy4xNDgsMCwwLDEsMiwyNi4wMzdWNS45NjNBMy4xNDgsMy4xNDgsMCwwLDEsNS4xNDQsMi44MTlIMjYuODU2QTMuMTQ4LDMuMTQ4LDAsMCwxLDMwLDUuOTYzVjI2LjAzN0EzLjE0OCwzLjE0OCwwLDAsMSwyNi44NTYsMjkuMTgxWk01LjE0NCwyLjk2M2EzLDMsMCwwLDAtMywzaDBWMjYuMDM3YTMsMywwLDAsMCwzLDNIMjYuODU2YTMsMywwLDAsMCwzLTNWNS45NjNhMywzLDAsMCwwLTMtM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDhkOGRcXFwiLz48cmVjdCB4PVxcXCI0LjMxM1xcXCIgeT1cXFwiNC42NDFcXFwiIHdpZHRoPVxcXCIyMy4xNjlcXFwiIGhlaWdodD1cXFwiMjEuOTRcXFwiIHJ4PVxcXCIyLjU3MVxcXCIgcnk9XFxcIjIuNTcxXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTI0LjkxMSwyNi42NDFINi44ODRBMi42MzQsMi42MzQsMCwwLDEsNC4yNTMsMjQuMDFWNy4yMTJBMi42MzQsMi42MzQsMCwwLDEsNi44ODQsNC41ODFIMjQuOTExYTIuNjM0LDIuNjM0LDAsMCwxLDIuNjMxLDIuNjMxdjE2LjhBMi42MzQsMi42MzQsMCwwLDEsMjQuOTExLDI2LjY0MVpNNi44ODQsNC43QTIuNTE0LDIuNTE0LDAsMCwwLDQuMzczLDcuMjEydjE2LjhhMi41MTQsMi41MTQsMCwwLDAsMi41MTEsMi41MTFIMjQuOTExYTIuNTE0LDIuNTE0LDAsMCwwLDIuNTExLTIuNTExVjcuMjEyQTIuNTE0LDIuNTE0LDAsMCwwLDI0LjkxMSw0LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjhmOGY4XFxcIi8+PHBhdGggZD1cXFwiTTYuMTQ1LDIzLjlsMi4zNDMtNi4xaC44N2wyLjUsNi4xaC0uOTJsLS43MTItMS44NDhINy42NzNMNywyMy45Wk03LjksMjEuNEg5Ljk3NGwtLjYzNy0xLjdxLS4yOTEtLjc3LS40MzMtMS4yNjVBNy43NzYsNy43NzYsMCwwLDEsOC41NzYsMTkuNlpcXFwiLz48cGF0aCBkPVxcXCJNMTMuNjA3LDIzLjlWMTcuOGguODA3djIuNWgzLjE3MVYxNy44aC44MDd2Ni4xaC0uODA3VjIxLjAyMWgtMy4xN1YyMy45WlxcXCIvPjxwYXRoIGQ9XFxcIk0yMC40NzgsMjMuOVYxNy44aC44MDd2My4wMjVsMy4wMy0zLjAyNWgxLjA5NEwyMi44NSwyMC4yNjcsMjUuNTIyLDIzLjlIMjQuNDU2bC0yLjE3Mi0zLjA4OC0xLC45NzRWMjMuOVpcXFwiLz5cIixcblx0XCJBdXRvSXRcIjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxMi41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ZDgzYWNcXFwiLz48cGF0aCBkPVxcXCJNMiwxNkExNCwxNCwwLDEsMSwxNiwzMCwxNCwxNCwwLDAsMSwyLDE2Wk0xNiw0Ljc4OUExMS4yMTEsMTEuMjExLDAsMSwwLDI3LjIxMSwxNiwxMS4yMTEsMTEuMjExLDAsMCwwLDE2LDQuNzg5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YwZjBmMFxcXCIvPjxwYXRoIGQ9XFxcIk0yNC41NzYsMjAuMTU2bC02LjQtOS4yNjRhMy4xMzEsMy4xMzEsMCwwLDAtLjgxOS0uODE5LDIuMzYsMi4zNiwwLDAsMC0yLjQ0Mi4wMjMsMy41NDMsMy41NDMsMCwwLDAtLjgxMi44TDcuNTMzLDIwLjE1NmgzLjc1Mmw0LjgwOC02LjgsMS44MzgsMi43MXEuMjYuMzY4LjU0NC43ODl0LjUuN3EtLjM2OC0uMDMxLS44NjUtLjAzMWgtMy41M2wtMS45MTQsMi42MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjBmMGYwXFxcIi8+XCIsXG5cdFwiQXZybyBJRExcIjogXCI8cGF0aCBkPVxcXCJNMiwxMS42NDloLjAyNWE0Ljc4NSw0Ljc4NSwwLDAsMCwyLjkxMSwxLjMzNmMyLjMwOC4yMjEsNC41OS0uNDg1LDYuOS0uMzI2YTcuMDMsNy4wMywwLDAsMSwyLjY4LjY2NGMuNS0uMzE5Ljk4OS0uNjYyLDEuNDg2LS45ODkuNS4zMjcuOTg0LjY3NCwxLjQ4OC45ODlhNi44MzQsNi44MzQsMCwwLDEsMi40ODctLjY1YzEuOTk1LS4xNjcsMy45NjcuMzA4LDUuOTU3LjM1OWE1LjIsNS4yLDAsMCwwLDQuMDI2LTEuMzgzSDMwdi4yMzZjLS4xNzguNzQ3LS44ODIsMS4xNzYtMS4yODQsMS43OWE0Ljk0OCw0Ljk0OCwwLDAsMS0uNzMxLjc5MSwzLjgsMy44LDAsMCwxLS41NjUuNzQ4LDIuNTUxLDIuNTUxLDAsMCwwLS41OTQuNTQxLDIuMTgxLDIuMTgxLDAsMCwxLS45Ni43NDksMS4xNDksMS4xNDksMCwwLDEtLjU2NS41Niw2LjY5LDYuNjksMCwwLDEtMS45NC4xODRjLjcyMy41NDgsMS41LDEuMDIsMi4yNDYsMS41MzUuNzgyLjUxMywxLjU0LDEuMDYxLDIuMzI2LDEuNTY4SDQuMDg5YzEuNS0xLjA1OCwzLjA1Ny0yLjAzNSw0LjU1LTMuMUE2LjgsNi44LDAsMCwxLDYuNywxNy4wNjVhMS4xNTUsMS4xNTUsMCwwLDEtLjU2OS0uNTYyLDIuMjgsMi4yOCwwLDAsMS0xLjA0My0uODZjLS4yNjgtLjMtLjY3LS40NjYtLjg1My0uODQzLS4yLS40MzYtLjY1OC0uNjY0LS45MDktMS4wNjctLjQtLjY0Mi0xLjEzNy0xLjA3Ni0xLjMyNy0xLjg0NnYtLjIzOW0yLjkzOSw4LjUyOHExMS4wNTkuMDA5LDIyLjEyLDBjLTMuNjY4LTIuNTEtNy4zNzYtNC45NjEtMTEuMDU5LTcuNDQ4LTMuNjg0LDIuNDg3LTcuMzkyLDQuOTQxLTExLjA2MSw3LjQ0OU00LjE2NywxMy4yYTcuODQyLDcuODQyLDAsMCwwLDIuODQuNzMxYzEuMTYzLjEyMywyLjM0MS4wNDYsMy41LjIzNmEyLjcsMi43LDAsMCwxLDEuNjA3Ljc4MWMuNjU5LS40NTIsMS4zMzItLjg4NSwxLjk4Ny0xLjM0MmwuMDEyLS4wNjRhNS4yOTQsNS4yOTQsMCwwLDAtMS44NzctLjVjLTIuNjkzLS4zMTYtNS4zODcuNzEyLTguMDY3LjE2bTEzLjY1Mi4zNTZjLjY4OC40NjYsMS4zODIuOTI1LDIuMDcsMS4zOTJhMi40ODgsMi40ODgsMCwwLDEsMS4zLS43MTksMTkuODU5LDE5Ljg1OSwwLDAsMSwzLjEzNy0uMjQ4LDkuMTA1LDkuMTA1LDAsMCwwLDMuNS0uNzY4Yy0yLjU4Mi41LTUuMTY4LS40MDktNy43NjEtLjJhNi4yNTYsNi4yNTYsMCwwLDAtMi4yNDUuNTQ1TTMuMzM5LDEzLjE2NmE3LjI2NCw3LjI2NCwwLDAsMCwyLjcyMywxLjNjLS4yMTktLjE1My0uMzc2LS40MTYtLjY1Ny0uNDU3YTcuOTU1LDcuOTU1LDAsMCwxLTIuMDY2LS44NDRtMjMuMzMzLjgyNWMtLjMxNy4wMjMtLjUuMy0uNzMzLjQ3M2E3LjIzMiw3LjIzMiwwLDAsMCwyLjcyNC0xLjMsOC4xMDYsOC4xMDYsMCwwLDEtMS45OTEuODI0bS0yMi41LjEyNmE1LjEyMSw1LjEyMSwwLDAsMCwyLjU4OSwxLjFjLS4xMTUtLjEyOC0uMjA5LS4zMTItLjQtLjMzNGExMC40NTksMTAuNDU5LDAsMCwxLTIuMTktLjc3MW0yMS40NjcuNzY4Yy0uMTg5LjAyMi0uMjg0LjItLjM5NC4zMzZhNS4xODcsNS4xODcsMCwwLDAsMi42LTEuMTA5LDEwLjQ3NywxMC40NzcsMCwwLDEtMi4yLjc3M002LjMsMTQuMjA2YTMuMjQzLDMuMjQzLDAsMCwwLDIuNDQ1LjM1MmMtLjEtLjA4LS4xODEtLjIxNS0uMzI1LS4yMDZxLTEuMDYzLS4wNC0yLjEyLS4xNDZtMTcuMzUxLjEzOWMtLjE3MS0uMDE5LS4yOTEuMS0uNDA2LjIxMWEzLjEwOCwzLjEwOCwwLDAsMCwyLjQyLS4zNTJxLTEsLjExMi0yLjAxNC4xNDFtLTE2Ljc0MS41MzhhMy42NjksMy42NjksMCwwLDAsMi40ODIuMzE5LDEuMTA3LDEuMTA3LDAsMCwwLS4yODEtLjM3Niw1LjE1OCw1LjE1OCwwLDAsMS0yLjIuMDU3bTE1LjcuMzE4YTMuNjc4LDMuNjc4LDAsMCwwLDIuNDg3LS4zMTksNS4xMjcsNS4xMjcsMCwwLDEtMi4yLS4wNTcsMS4xLDEuMSwwLDAsMC0uMjgzLjM3Nk00LjgzOCwxNC45NzdhNC4xMSw0LjExLDAsMCwwLDIuMTMzLjg0MWMtLjA1Ny0uMDg0LS4xMTQtLjE2OC0uMTcxLS4yNTRhNi45NDgsNi45NDgsMCwwLDEtMS45NjItLjU4N20yMC4zNjEuNTg5LS4xNjkuMjUzYTQuMTQxLDQuMTQxLDAsMCwwLDIuMTM2LS44NDMsNy4wMTUsNy4wMTUsMCwwLDEtMS45NjcuNTltLTE4LjEtLjEzYS44LjgsMCwwLDAsLjUzNC4zMSw3LjU3OSw3LjU3OSwwLDAsMCwyLjAzNy0uMDczYy0uMDA5LS4wMy0uMDI3LS4wOS0uMDM2LS4xMi0uNDU3LS4wNTEtLjkyMy4wNzQtMS4zODUuMDQ3QTcuMDU0LDcuMDU0LDAsMCwxLDcuMSwxNS40MzdtMTYuMTkxLjE1MWE2LjI4LDYuMjgsMCwwLDAtLjkxMy0uMDQxbC0uMDQyLjEyNmE3LjQxNiw3LjQxNiwwLDAsMCwyLjA0NS4wNzIuNy43LDAsMCwwLC41MjItLjMzMSw0LjM0OSw0LjM0OSwwLDAsMS0xLjYxMy4xNzRtLTE3LjUyLjMyN2EzLjEyLDMuMTIsMCwwLDAsMS43NTQuNDgxYy0uMDY1LS4yNC0uMzM0LS4yLS41MjMtLjIzNi0uNDE5LS4wNDEtLjgxNi0uMTg2LTEuMjMxLS4yNDZNMjUsMTYuMTYzYy0uMTg4LjA0MS0uNDUyLS4wMDYtLjUyMS4yMzJhMi44NzQsMi44NzQsMCwwLDAsMS43MzItLjQ4MmMtLjQuMDc5LS44LjIwNy0xLjIxMS4yNTFNNy43MzUsMTYuMTE5YTEsMSwwLDAsMCwuNzg5LjI3NSw5LjMzMSw5LjMzMSwwLDAsMCwxLjMyNS0uMTU4Yy0uMDIxLS4wOTMtLjAwOS0uMjc4LS4xNjMtLjIyOGE5Ljk4Myw5Ljk4MywwLDAsMS0xLjk1MS4xMTFtMTQuNDE1LjExOGE4LjE1Nyw4LjE1NywwLDAsMCwxLjQxMi4xNTQuOS45LDAsMCwwLC43LS4yNzQsOS4zODcsOS4zODcsMCwwLDEtMS45MzQtLjExYy0uMTYtLjA2LS4xNTUuMTMyLS4xNzYuMjNtLTE1LjQzOC40NGExLjk2MiwxLjk2MiwwLDAsMCwxLjMuMTgxbC0uMDkxLS4xMjZjLS40LjAwNi0uODA3LS4wMjItMS4yMDktLjA1NW0xLjYxNS4wNDNhMS4wMywxLjAzLDAsMCwwLC43MTYuMjk0Yy4xNzktLjEyNS4zNTgtLjI1Mi41MzEtLjM4NmE1Ljc0Nyw1Ljc0NywwLDAsMS0xLjI0Ny4wOTJtMTQuMS0uMDkzYy4yMzcuMTQ0LjQ2Ny40NzcuNzgyLjM0NS4xNjYtLjA1LjM2OS0uMDg5LjQ2MS0uMjU3YTUuMjcxLDUuMjcxLDAsMCwxLTEuMjQzLS4wODhtMS43MTMuMjYzYTIuMDA3LDIuMDA3LDAsMCwwLDEuMTQ1LS4yMTMsMTAuMjY5LDEwLjI2OSwwLDAsMS0xLjE0NC4wNDlDMjMuOTkzLDE2LjY2NywyMy45ODQsMTYuOTYxLDI0LjEzOCwxNi44OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQwZmZcXFwiLz48cGF0aCBkPVxcXCJNNy40MzUsMTguODg2UTExLjcxOSwxNi4wMTMsMTYsMTMuMTM3bDkuMyw2LjI0NGMuMjIxLjE0Ny40MzkuMy42NDguNDY0cS05Ljk0Ny0uMDEtMTkuODk0LDBjLjQ0My0uMzQ0LjkyLS42NCwxLjM4My0uOTU4bTguMjU1LTUuMDY2Yy0uNDU3LDEuODU5LS45MDcsMy43MTktMS4zNzUsNS41NzYuNTIuMDE1LDEuMDQxLjAxMiwxLjU2MiwwcS0uMDEzLTIuODQxLDAtNS42OGwtLjE4NC4xbS0yLjUsMS42ODRjLjI1NS44NTkuNDgsMS43MjguNzYzLDIuNTc5LjI4OS0xLjIzOC42LTIuNDcxLjktMy43MDctLjU1LjM4Ni0xLjExNC43NS0xLjY2OCwxLjEyOW0zLjM1Ny0uODczYy0uMDA2LjY4MiwwLDEuMzY0LDAsMi4wNDZhMi4xLDIuMSwwLDAsMCwxLjAxNC0uMjU0Yy4xOTMtLjE0NS4xLS40MDkuMDExLS41ODZhNC4yNzYsNC4yNzYsMCwwLDAtMS4wMjQtMS4yMDdNMTguMzI3LDE2LjRjLS4xLjU0NC0uNjY2Ljc5Mi0xLjE1MS45LjQ3NC43Ljk2LDEuMzg5LDEuNDE2LDIuMS40NjkuMDI0Ljk0LjAxMSwxLjQxMS4wMDlhMS42MzEsMS42MzEsMCwwLDEsLjE2LTIuOTc2Yy0uODM0LS42LTEuNy0xLjE0LTIuNTQ0LTEuNzI3LjM0OS41LjgzMSwxLjAzNy43MDgsMS43bS02LjgyMi4yNDJjLjI2Ny45MjEuNTI5LDEuODQ1Ljc5NCwyLjc2Ny40NCwwLC44OC4wMDgsMS4zMjEtLjAwNy0uMzM5LTEuMTYxLS42ODUtMi4zMTktMS4wMDktMy40ODQtLjM4NS4yMTUtLjczNy40ODItMS4xLjcyNG04LjguNDUyYS45NDYuOTQ2LDAsMCwwLC4wNTcsMS43Yy41MzMuMDkuODU1LS41MzMuNzc5LS45OS0uMDI2LS40LS40LS44NjEtLjgzNi0uNzE0TTcuNCwxOS40cTEuMzI0LjAxOCwyLjY1LDBjLjI1Ni0uNy40MTMtMS40NjguNjI5LTIuMi0xLjEuNzE1LTIuMTg3LDEuNDYxLTMuMjc5LDIuMTk0bTE0LjM3Ny0xLjlhMS42MTYsMS42MTYsMCwwLDEtLjg3NiwxLjljMS4yMzMuMDE4LDIuNDY1LjAxNSwzLjcsMC0uOTM0LS42NDQtMS44ODMtMS4yNjYtMi44MjItMS45bS01LjIyMy4xMTVjLS4wMS42LDAsMS4yLDAsMS44LjQxNSwwLC44MzEsMCwxLjI0OCwwLS40MTktLjYtLjgtMS4yMTktMS4yNDMtMS43OTRtLTUuNTQ2Ljk0MWguMzQ2Yy0uMDU1LS4xODctLjEwOC0uMzc2LS4xNjYtLjU2MmEzLjc1MSwzLjc1MSwwLDAsMC0uMTgxLjU2M20tLjE4LjY5M2MtLjAxNS4wNC0uMDQ1LjExOS0uMDYxLjE1OS4yNzUtLjAyNi41OS4wNzEuODQyLS4wNUMxMS40NTMsMTkuMTEyLDExLjA3NCwxOS4yNzUsMTAuODI2LDE5LjI0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQwZmZcXFwiLz5cIixcblx0XCJBV0tcIjogXCI8cGF0aCBkPVxcXCJNMjYuOTI1LDI3LjczN0MyMy40MzEsMjYuMSwyNC42MDYsMTQuNTg4LDEzLjgxLDguMzE5LDE0LjA4OSw1Ljc5MiwxNC43NTgtLjUsNy45NjEsMyw2Ljg0NSwzLjEyOCw0LjkwNywyLjMzMSw0LDQuODMxdi4xMTRDMTYuOTE4LDMuOS4wODgsMTAuNTMsMTYuNzUsMjUuODQ0Yy0uMzczLjE3Ni0uNjc0LS4zMjUtMS45Ny4xbC0uMDE0LjAxNmMtMS43MjIsMS4xMzUsMS45MzMuNzY4LDQuMTU0LDEuMjc0LTEuNjExLjQxNy01LjU5NC0xLjEzNy02LjMsMS42NDUuODc3LS4zNywxLC4zMjksMS4wNzYsMS4wNzdBMjYuMjc3LDI2LjI3NywwLDAsMSwyMi4zNzksMjcuNWMxLjEuMjg1LDQuMTE4LDIuMDQ5LDUuMTIyLjU1MUMyNy41MTksMjcuOTMsMjcuMjIxLDI3Ljg3NiwyNi45MjUsMjcuNzM3WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40NDYsMi45N2wtLjEyMS4wODhhLjI2Ni4yNjYsMCwwLDAtLjAxMS4zNzcuMjExLjIxMSwwLDAsMCwuMDQ1LjAzOS40MTYuNDE2LDAsMCwwLC41MjEtLjA2My4yNjMuMjYzLDAsMCwwLC4wNzgtLjM2NGwtLjAxLS4wMTRjLS4wNzYtLjE0My0uMTYzLS4xNzctLjM0LS4xMjdDMTAuNTUzLDIuOTI1LDEwLjUsMi45NDYsMTAuNDQ2LDIuOTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE4LDI2LjM2OGMuMTUxLS4wNDEuMzE4LS44MjguMTc0LS45NDlBNi4yOSw2LjI5LDAsMCwwLDE5LjQsMjYuNDg1YzEuMDIzLDEuMDA3LDIuNjY1LS4wMzIsMy40ODIuNzU5YTEwLjczNiwxMC43MzYsMCwwLDAsMS45NTcsMS4wMjdjLS4xMzktLjE1MS0uMDI5LS4xNDQuMTc5LS4wMTEtLjEzLS4zMzgtNC40MjEtNS4xNTYtNS4yMjYtNy4xOC4wOTUuMjkzLTEuNjA4LS44MjQtMi4wNzYtMS40MTktLjAyOC4wNTYtLjA5Mi0uMjUxLS4yMjgtLjQzNC0uMDQxLjA1LS4yLS40MzMtLjMtLjcyOC4wMzcuMTg3LS40NjItLjUtLjY1LS44MTgtLjA1Ni4wOS0uNzE5LjM3Mi0uODA5LjI4Ni0uNzI5LS40LDIuNTI5LDQuMDY2LjEyMiwyLjU1OS42NzYuNjgzLjYxNC40LTEuMDk1LS44NTIuMzY0LjQ1Mi0uMzE3LjMxMi0xLjU1My0xLjUyMy4xODYuMi0uMjE4LS41NzYtLjIxOC0uNTc2YTIuNjkyLDIuNjkyLDAsMCwwLS4xMzMtLjQ4M2MtLjA1Ni0uMzItLjI0MS0uNzIzLS4xMi0uNjUtMS40NDQtMS41NTYsMS4zMTQtMy4zLjcxOS0zLjY3MS0uMTExLDAtLjAyNy4wMTctLjE1MS0uMTA2LS4wOSwwLS40NjguMjg1LS41ODctLjIzNC4wMDYuMTMyLS4wMzQuNDA2LS4xNTMtLjEtLjAyMy4wNTIuMDE1LjEtLjAzLjE0NS0uMjI1LS41NzYtLjc3Mi0xLjYtMS4yMTctMi41MzktLjE1OC4xNTUtLjEzOC0uMDc2LS4xOTMtMS4wOTIuMDUzLjE0NC0uMjI1LDEuOTIxLS4yLjEzLS4xMjguMDA3LjEwOCwxLjI1OC0uMzQzLjIxLS4xNDEuMDUtLjMwNS0uMzYzLS4zNDEtMS4xNzgtLjA0OC42MjMtLjI5LjE4Ny0uNS0uOTIzLS4yNjkuNTA4LTEuNiwxLjc0My0uMzMzLDcuNjIyLS4wNTMtLjMxMy4xODYuMzQxLjc1NSwyLjQyNy4wMjEtLjAzOS0uMDIyLS4wODMuMDM4LS4xMzFhNi4zMjQsNi4zMjQsMCwwLDAsLjY3NywxLjM2NWMuNTQ0LjY1OC45OTUsMi4wNzQuOCwxLjI3N2ExMS44NjcsMTEuODY3LDAsMCwwLDIuNTU0LDMuMjQ5QTM0LjQyMywzNC40MjMsMCwwLDAsMTgsMjYuMzY4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC44MjMsMi41NTdhLjI5MS4yOTEsMCwwLDAtLjA1MS0uMDIyYy0uMjIxLS4wNC0uNDI5LjE1My0uNjU0LjAzMi0uMTQ1LjA4NS0uMjU3LS4wMzYtLjM3NS0uMDczYS4yMjQuMjI0LDAsMCwwLS4yLjAxNCw1LjgyMyw1LjgyMywwLDAsMC0uODE0LjU4MiwxLjAzNywxLjAzNywwLDAsMC0uMjczLjQ0OWMtLjAyMS4wNDgtLjAzNy4xMjYuMDUuMTM3YTIuMywyLjMsMCwwLDAsLjY4Mi4wNDVjLjE3Ny0uMDI4LjI3Ny0uMTUyLjQxOC0uMjIxYTEuMiwxLjIsMCwwLDAsLjU5Mi0uNjhjLjA2NC0uMTc1LjE2MS0uMTY3LjI4LS4yUzEwLjcsMi42MiwxMC44MjMsMi41NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTEwLjMyNSwzLjA1OGwuMTIxLS4wODhhLjExNy4xMTcsMCwwLDEsLjEyLjA2NGMuMDQ0LjEuMTA2LjExMi4xOTMuMDQ3LjAzMy0uMDI1LjA3MS0uMDU4LjExOC0uMDI3YS4xMTkuMTE5LDAsMCwxLC4wNDEuMTI4LjI3Ni4yNzYsMCwwLDEtLjE4Ny4yNDguMjY2LjI2NiwwLDAsMS0uMy0uMDNDMTAuMzQxLDMuMzA4LDEwLjI2LDMuMiwxMC4zMjUsMy4wNThaXFxcIi8+XCIsXG5cdFwiQmF0Y2hcIjogXCI8cGF0aCBkPVxcXCJNMjkuNCwyNy42SDIuNVY0LjVIMjkuNFptLTI1LjktMUgyOC40VjUuNUgzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjA3NyAxOS4zMTYgNS41MjIgMTguNDg0IDEwLjM2NiAxNS4yNTUgNS40NzkgMTEuMTg0IDYuMTIgMTAuNDE2IDEyLjAzNSAxNS4zNDQgNi4wNzcgMTkuMzE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMTIuN1xcXCIgeT1cXFwiMTguMlxcXCIgd2lkdGg9XFxcIjcuOFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI1LjVcXFwiIHdpZHRoPVxcXCIyNi45XFxcIiBoZWlnaHQ9XFxcIjEuOVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPlwiLFxuXHRcIkMjXCI6IFwiPHRpdGxlPmZpbGVfdHlwZV9jc2hhcnA8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xOS43OTIsNy4wNzFoMi41NTNWOS42MjRIMjQuOVY3LjA3MWgyLjU1MlY5LjYyNEgzMHYyLjU1MmgtMi41NXYyLjU1MUgzMFYxNy4yOEgyNy40NDl2Mi41NTJIMjQuOXYtMi41NWwtMi41NSwwLDAsMi41NTJIMTkuNzkzdi0yLjU1bC0yLjU1MywwVjE0LjcyNWgyLjU1M1YxMi4xNzlIMTcuMjRWOS42MjJoMi41NTRabTIuNTUzLDcuNjU4SDI0LjlWMTIuMTc2SDIyLjM0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNjg4MzJcXFwiLz48cGF0aCBkPVxcXCJNMTQuNjg5LDI0LjAxM2ExMC4yLDEwLjIsMCwwLDEtNC42NTMuOTE1LDcuNiw3LjYsMCwwLDEtNS44OS0yLjMzNkE4LjgzOSw4LjgzOSwwLDAsMSwyLDE2LjM2Nyw5LjQzNiw5LjQzNiwwLDAsMSw0LjQxMiw5LjY0OGE4LjE4MSw4LjE4MSwwLDAsMSw2LjI1OS0yLjU3NywxMS4xLDExLjEsMCwwLDEsNC4wMTguNjM4djMuNzQ1YTYuODEsNi44MSwwLDAsMC0zLjcyMy0xLjAzNiw0Ljc5Myw0Ljc5MywwLDAsMC0zLjcsMS41MjksNS44NzksNS44NzksMCwwLDAtMS40MDcsNC4xNDIsNS43NzQsNS43NzQsMCwwLDAsMS4zMjgsMy45OTIsNC41NTEsNC41NTEsMCwwLDAsMy41NzUsMS40ODcsNy4yODgsNy4yODgsMCwwLDAsMy45MjctMS4xMDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzY4ODMyXFxcIi8+XCIsXG5cdFwiQ1wiOiBcIjx0aXRsZT5maWxlX3R5cGVfYzwvdGl0bGU+PHBhdGggZD1cXFwiTTEwLjY3NiwxNS45NzNhMTAuMDUyLDEwLjA1MiwwLDAsMCwxLjE3NSw1LjE1MSw1LjQ0Niw1LjQ0NiwwLDAsMCw2LjMwNiwyLjQwOCw0LjI4NCw0LjI4NCwwLDAsMCwzLjA5LTMuNmMuMTA3LS42LjEwOS0uNjEuMTA5LS42MSwxLjczNy4yNTEsNC41MzcuNjU4LDYuMjc0LjkwNmwtLjExLjQ0YTExLjI1NiwxMS4yNTYsMCwwLDEtMi43LDUuMzksOS40MzksOS40MzksMCwwLDEtNS4zNjYsMi42ODgsMTQuNjEsMTQuNjEsMCwwLDEtOC4yNzctLjgxOUExMC4xNTEsMTAuMTUxLDAsMCwxLDUuNCwyMS42ODdhMTYuMjI1LDE2LjIyNSwwLDAsMSwuMDE5LTExLjQ1LDEwLjUzOCwxMC41MzgsMCwwLDEsOC45NjMtNy4wNTQsMTMuMzUzLDEzLjM1MywwLDAsMSw2LjY2Ni41NTUsOS41NzEsOS41NzEsMCwwLDEsNi4xNjcsNi45Yy4wOTQuMzUyLjExNC40MTcuMTE0LjQxNy0xLjkzMi4zNTEtNC4zMTkuOC02LjIzOCwxLjIxNS0uMzYyLTEuOTE1LTEuMjY1LTMuNDI4LTMuMi0zLjlhNS4yNjMsNS4yNjMsMCwwLDAtNi42MTYsMy41NywxMC40OSwxMC40OSwwLDAsMC0uMzg1LDEuNDM5QTEyLjMxLDEyLjMxLDAsMCwwLDEwLjY3NiwxNS45NzNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1ZjkxXFxcIi8+XCIsXG5cdFwiQysrXCI6IFwiPHRpdGxlPmZpbGVfdHlwZV9jcHA8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNC43NDIsMjQuMDQ3YTEwLjI0MiwxMC4yNDIsMCwwLDEtNC42NzMuOTE5QTcuNjI4LDcuNjI4LDAsMCwxLDQuMTU1LDIyLjYyLDguODc2LDguODc2LDAsMCwxLDIsMTYuMzY5LDkuNDc2LDkuNDc2LDAsMCwxLDQuNDIyLDkuNjIxYTguMjE2LDguMjE2LDAsMCwxLDYuMjg1LTIuNTg4LDExLjE1MSwxMS4xNTEsMCwwLDEsNC4wMzUuNjQxdjMuNzYxQTYuODM5LDYuODM5LDAsMCwwLDExLDEwLjM5NSw0LjgxMyw0LjgxMywwLDAsMCw3LjI4OCwxMS45M2E1LjksNS45LDAsMCwwLTEuNDEzLDQuMTU5QTUuOCw1LjgsMCwwLDAsNy4yMDksMjAuMWE0LjU3LDQuNTcsMCwwLDAsMy41OSwxLjQ5Myw3LjMxOSw3LjMxOSwwLDAsMCwzLjk0My0xLjExM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ODRjOTNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjExMiAxNC44MjkgMTcuMTEyIDEyLjQ4NSAxOS40NTYgMTIuNDg1IDE5LjQ1NiAxNC44MjkgMjEuOCAxNC44MjkgMjEuOCAxNy4xNzIgMTkuNDU2IDE3LjE3MiAxOS40NTYgMTkuNTE1IDE3LjExMiAxOS41MTUgMTcuMTEyIDE3LjE3MiAxNC43NyAxNy4xNzIgMTQuNzcgMTQuODI4IDE3LjExMiAxNC44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ODRjOTNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjMxMyAxNC44MjkgMjUuMzEzIDEyLjQ4NSAyNy42NTcgMTIuNDg1IDI3LjY1NyAxNC44MjkgMzAgMTQuODI5IDMwIDE3LjE3MiAyNy42NTcgMTcuMTcyIDI3LjY1NyAxOS41MTUgMjUuMzEzIDE5LjUxNSAyNS4zMTMgMTcuMTcyIDIyLjk3MSAxNy4xNzIgMjIuOTcxIDE0LjgyOCAyNS4zMTMgMTQuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojOTg0YzkzXFxcIi8+XCIsXG5cdFwiQ2xvanVyZVwiOiBcIjxwYXRoIGQ9XFxcIk0xNiwyQTE0LDE0LDAsMSwwLDMwLDE2LDE0LjAxNiwxNC4wMTYsMCwwLDAsMTYsMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS40ODgsMTYuMjUyYy0uMTI2LjI3My0uMjY1LjU3OS0uNDA4LjlBMjIuOTYzLDIyLjk2MywwLDAsMCwxMy44LDIwLjYwNWE1LjE4MSw1LjE4MSwwLDAsMC0uMTE5LDEuMTU1YzAsLjE3NC4wMDkuMzU2LjAyNC41NDJhNi42NTgsNi42NTgsMCwwLDAsNC40MTMuMDY3LDMuOTY2LDMuOTY2LDAsMCwxLS40NC0uNDY2Yy0uOS0xLjE0Ni0xLjQtMi44MjctMi4xOTQtNS42NTJcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MWRjNDdcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTY5LDEwLjU1NmE2LjY3Nyw2LjY3NywwLDAsMC0uMDc3LDEwLjg4MWMuNDExLTEuNzEsMS40NC0zLjI3NiwyLjk4My02LjQxNS0uMDkyLS4yNTItLjItLjUyNy0uMzEzLS44MTdhMTAuMjA3LDEwLjIwNywwLDAsMC0xLjYtMi44ODIsNC40MzksNC40MzksMCwwLDAtMS0uNzY3XFxcIiBzdHlsZT1cXFwiZmlsbDojOTFkYzQ3XFxcIi8+PHBhdGggZD1cXFwiTTIxLjg0LDIzLjdhMTAuODc3LDEwLjg3NywwLDAsMS0yLjI1Ny0uNDcxQTguMDM2LDguMDM2LDAsMCwxLDEwLjcxNiw5Ljk4MmE1LjksNS45LDAsMCwwLTEuNC0uMTcxYy0yLjM1OC4wMjItNC44NDgsMS4zMjctNS44ODQsNC44NTJhNi42MDYsNi42MDYsMCwwLDAtLjA3NCwxLjM2MSwxMi42NDksMTIuNjQ5LDAsMCwwLDIzLDcuMjc0LDE0LjczNywxNC43MzcsMCwwLDEtMy40NDguNDU5QTguODgxLDguODgxLDAsMCwxLDIxLjg0LDIzLjdcXFwiIHN0eWxlPVxcXCJmaWxsOiM2M2IxMzJcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDYzLDIxLjI0NGEzLjUzLDMuNTMsMCwwLDAsLjUuMTcyQTYuNjksNi42OSwwLDAsMCwyMi43LDE2LjAyM2gwYTYuNjgxLDYuNjgxLDAsMCwwLTguNzktNi4zNDhjMS4zNTgsMS41NDgsMi4wMTEsMy43NjEsMi42NDMsNi4xODF2MHMuMi42NzMuNTQ3LDEuNTYyYTE1LjQzNCwxNS40MzQsMCwwLDAsMS4zNjMsMi43ODgsMi45MjQsMi45MjQsMCwwLDAsMSwxLjAzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzkwYjRmZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMTMsMy4zNzJBMTIuNjMyLDEyLjYzMiwwLDAsMCw1LjczMSw4LjY1NmE2LjQyNSw2LjQyNSwwLDAsMSwzLjQ4LTEuMDA5LDYuOCw2LjgsMCwwLDEsMy4xODIuNzcyYy4xMzQuMDc3LjI2MS4xNi4zODYuMjQ2YTguMDM4LDguMDM4LDAsMCwxLDExLjI3Myw3LjM1OGgwYTguMDEzLDguMDEzLDAsMCwxLTIuMzkxLDUuNzE5LDkuODcxLDkuODcxLDAsMCwwLDEuMTQzLjA2NCw2LjI0LDYuMjQsMCwwLDAsNC4wNTEtMS4yNjMsNS4zNDgsNS4zNDgsMCwwLDAsMS43LTIuOTA2QTEyLjYzMiwxMi42MzIsMCwwLDAsMTYuMDEzLDMuMzcyXFxcIiBzdHlsZT1cXFwiZmlsbDojNTg4MWQ4XFxcIi8+XCIsXG5cdFwiQ01ha2VcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCI5Ljk1NVxcXCIgeTE9XFxcIjkuMDk2XFxcIiB4Mj1cXFwiMTYuNjhcXFwiIHkyPVxcXCIyMy4zMjRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzEwMTFhMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY5NjllMVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMTYuMjMxXFxcIiB5MT1cXFwiMTkuNjU1XFxcIiB4Mj1cXFwiMjUuNjE4XFxcIiB5Mj1cXFwiMy43ODJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2I0MGUwZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmNTk1OVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiMjEuNjYzXFxcIiB5MT1cXFwiNC44MjNcXFwiIHgyPVxcXCI4LjM4MVxcXCIgeTI9XFxcIjUuOTM4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAzMilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwMWEzMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMwMWRmMDBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIjE0LjY0M1xcXCIgeTE9XFxcIjguMzY4XFxcIiB4Mj1cXFwiMTQuNDcyXFxcIiB5Mj1cXFwiMTQuMTQ1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAzMilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4NDg0ODRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNkMmQyZDJcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2NtYWtlPC90aXRsZT48cGF0aCBkPVxcXCJNMTcuMjU3LDE2LjkxOSwyLjI0NiwyOS43NDksMTUuOTk0LDIuMjgzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjI2MiwyOS43NjhsLS4wMzgtLjAzTDE2LjAxMiwyLjE5M2wuMDA4LjA4OEwxNy4yODMsMTYuOTNsLS4wMS4wMDhaTTE1Ljk3NywyLjM3NCwyLjMyNCwyOS42NDksMTcuMjMsMTYuOTA4WlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45NTIsMjQuOTMxLDE2LDIuMjgsMjkuNzY3LDI5Ljc1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjkuODE4LDI5LjhsLS4wNjEtLjAyNUwxNy45MjksMjQuOTQ4bDAtLjAxNUwxNS45NzUsMi4yODJsLjA0Ny0uMDEzWk0xNy45NzYsMjQuOTEzLDI5LjcxNSwyOS43LDE2LjAzNiwyLjQwOFpcXFwiLz48cGF0aCBkPVxcXCJNMTEuMTYsMjIuMDk0bDE4LjYyMSw3LjY1NEgyLjI1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS43ODEsMjkuNzczSDIuMTgzbC4wNTEtLjA0NCw4LjkyMS03LjY2NS4wMTQuMDA2LDE4LjYyMiw3LjY1NVptLTI3LjQ2NC0uMDVIMjkuNjU0bC0xOC40ODktNy42WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4xODksMjIuMTEybDYuMDU5LTUuMTY4Ljg0Myw3Ljk4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4xNDksMjVsLS4wNzctLjAzMi02Ljk3OC0yLjg0Miw2LjE5NC01LjI4My4wMS4wOTRabS02Ljg2NS0yLjksNi43NDgsMi43NDktLjgyNC03LjhaXFxcIi8+PHBhdGggZD1cXFwiTTI5LjcsMjkuOTExSDIuMjg1YS4yMjEuMjIxLDAsMCwxLS4xODItLjA4OC4yMjIuMjIyLDAsMCwxLC4wMjItLjJMMTUuODY0LDIuMTg3YS4xNjkuMTY5LDAsMCwxLC4xNC0uMWgwYS4xNTQuMTU0LDAsMCwxLC4xMy4wODVMMjkuODY3LDI5LjYwN2EuMjM4LjIzOCwwLDAsMSwuMDIuMjI2QS4yMTEuMjExLDAsMCwxLDI5LjcsMjkuOTExWm0tMjcuNDY4LS4xNmEuNDg0LjQ4NCwwLDAsMCwuMDU3LjAxMWgyNy40bC4wNzMtLjAwOWEuMjIxLjIyMSwwLDAsMC0uMDI4LS4wNzdMMTYsMi4yNDgsMTYsMi4yNiwyLjI2MSwyOS42ODRhLjI3OS4yNzksMCwwLDAtLjAyNS4wNjdaXFxcIi8+XCIsXG5cdFwiQ09CT0xcIjogXCI8cGF0aCBkPVxcXCJNMjIuMjQsNi41NDZhNC40NDksNC40NDksMCwwLDAsMS43NjUtMi41MjIsNC42MzYsNC42MzYsMCwwLDEtLjAxOCwyLjE1N2MtLjIyMy41ODItLjU2NywxLjEwNy0uODM0LDEuNjY5YTIxLjc3MiwyMS43NzIsMCwwLDEsNC41NTktMi45MzhDMjcuMjMsNi40LDI1Ljg5MSw3LjMsMjQuOTA3LDguNDQyYy4xOS40MDkuMjguOTg5LjgsMS4xMDlhNS4wMzYsNS4wMzYsMCwwLDAsMi41LjE1NWMuOTEyLS4zMTMsMS4zNDUtMS4yNTgsMS44LTIuMDM1VjkuMTRhMTUuNzM4LDE1LjczOCwwLDAsMS0uNTgyLDEuNzQ4Yy4yLjU0Ny40MDksMS4wOTIuNTgyLDEuNjQ3di45NTJjLS4yMTQuMzY4LS40NDIuNzI2LS42NjMsMS4wODlhNS4yOTMsNS4yOTMsMCwwLDAtMS4wNjgtMS4xNjIsNC4wMyw0LjAzLDAsMCwwLTEuODUxLS4xMjUsMy4yMTIsMy4yMTIsMCwwLDAsMi40MTMsMS40N2MtLjM1OS4zNy0uNjYzLjkxMi0xLjIzLjk2OS0xLjY0MS4yNDctMy4yMDctLjUwNS00LjgzOS0uNS0uMjgyLjAyLS43MDcuMDI0LS43ODUuMzcyLDAsLjczNS4yMTcsMS40NTMuMTksMi4xODgtLjA1OSwxLjI1OC0uNTEyLDIuNDY2LS41MjksMy43MjZhMTMuNzg1LDEzLjc4NSwwLDAsMCwuODM4LDMuNDQ4Yy0uNTIzLS4wNzctMS4wNDQtLjE2Ni0xLjU2Mi0uMjYtLjEuMjA4LS4xODQuNDItLjI2LjYzNEE0LjUxNCw0LjUxNCwwLDAsMCwyMS44LDI2LjUzMWMtLjA2MS4xMjctLjE4Mi4zODEtLjI0MS41MDhsLS41NzMuMTM4Yy0uMTMxLjI0Ny0uMjYzLjQ5Mi0uNC43MzlhNC40MjEsNC40MjEsMCwwLDAtMi4yLjA2MWMtLjQ2Ni0uMTg2LS45MjgtLjM3Ni0xLjM4OS0uNTY3YTUuOTM5LDUuOTM5LDAsMCwwLC40MDctMi4zMTVjLS4yODItLjk4Mi0xLjYtLjk4NC0yLTEuODc3YTYuMjMzLDYuMjMzLDAsMCwxLTEuMDIyLTIuODUxYy0uODIzLS40MzMtMS40NTUtMS4yMjEtMi40LTEuNC0uMDQ4LjQwOS0uMDgzLjgyLS4xNTMsMS4yMjdBNi4wMTUsNi4wMTUsMCwwLDEsMTAuNDgxLDIyLjZjLjAzOS40MjIuMDc5Ljg0Mi4xMiwxLjI2NS4zNDYuMzI0LjY5MS42NDgsMS4wMzMuOTc0YTkuNzUyLDkuNzUyLDAsMCwxLTEuNDI2LjcxMywxMS4xMTQsMTEuMTE0LDAsMCwxLTEuNjg3LjA3N2MtLjI1OC0uMjU0LS41MTgtLjUwOC0uNzc3LS43NjRhNC44NzEsNC44NzEsMCwwLDAsLjExNC0yLjYwOGMuMTcxLS40LjMyNi0uODEyLjQ3NS0xLjIyMWE1LjU2NSw1LjU2NSwwLDAsMS0zLjAxLjIwNiw1LjEyLDUuMTIsMCwwLDEtMy4yOS00LjMzLDMuODU5LDMuODU5LDAsMCwxLDEuNDA3LTMuMjY4QTYuNDEsNi40MSwwLDAsMCwzLjIsMTYuMjU5YTMuMDM4LDMuMDM4LDAsMCwwLDIuNSwyLjQ2NiwzLjQ2MiwzLjQ2MiwwLDAsMCwxLjk2LS42NDMsNy40OCw3LjQ4LDAsMCwxLC4zNjMtNC4xMzMsNS41MjQsNS41MjQsMCwwLDEsMy41ODYtMi42Niw0LjIzNSw0LjIzNSwwLDAsMCwyLjAxMS0xLjU2NiwxMC42NywxMC42NywwLDAsMSwxLjUyOS0xLjMzYy0uMjI4LS4yMTktLjQ1My0uNDQtLjY4LS42NTlBMi4xNTQsMi4xNTQsMCwwLDAsMTUuOSw2LjAyM2MxLjI4NC0uMywyLjU1MS0uNjYxLDMuODItMS4wMTFhMy43OTMsMy43OTMsMCwwLDAsMS40MTUuNjA2Yy4zMTcuMzQ2LjQ5NCwxLjE1NywxLjEuOTI4TTE4LjQ1OCwxOS45MDhjLjA0Mi43NjgtLjA0OCwxLjY2NS42NzQsMi4xNTUsMC0uNzU1LS4wNDYtMS41MDctLjEtMi4yNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDVjYTVcXFwiLz5cIixcblx0XCJDb2ZmZWVTY3JpcHRcIjogXCI8cGF0aCBkPVxcXCJNMTMuMTE0LDUuNzI4Yy4wMjUuMTUzLS4wNTEuMjgtLjMwNi40MDhhMy40NTcsMy40NTcsMCwwLDAtMS42My0uMjI5Yy0uNjM3LjA1MS0xLjE3Mi4yNTUtMS4xLjY4OC4xLjQzMy43MTMuNjg4LDEuODA4LjU4NiwyLjY3NC0uMjI5LDIuNjQ5LTIuMDM4LDYuNTcxLTIuMzk0LDMuMDU2LS4yOCw0Ljc2My42NjIsNC45OTIsMS44MDguMTc4Ljg5MS0uNTYsMS43NTctMi43NzYsMS45MzYtMS45NjEuMTc4LTMuMTA3LS4zNTctMy4yMDktLjg5MS0uMDUxLS4yOC4xLS42ODgsMS4wNDQtLjc5LjEuNDMzLjYzNy44OTEsMS45MS43NjRDMjEuMzQxLDcuNTM2LDIyLjEsNy4yLDIyLDYuN2MtLjEtLjUzNS0xLjA3LS44NC0yLjYtLjcxMy0zLjEwNy4yOC0zLjg3MSwxLjk4Ny02LjUyLDIuMjE2QzExLDguMzc2LDkuNDcyLDcuNjg5LDkuMjY4LDYuNjdjLS4wNzYtLjM4Mi0uMDc2LTEuMjczLDEuOTEtMS40NTIsMS4wMTktLjA3NiwxLjgzNC4xLDEuOTM2LjUwOVpNMy4xODEsMTYuMzc0QTUuMjc5LDUuMjc5LDAsMCwwLDIuMDEsMTkuOTlhNC4yMDYsNC4yMDYsMCwwLDAsMS42NTUsMy4wNTYsNCw0LDAsMCwwLDMuMzYyLjc5LDExLjQzNCwxMS40MzQsMCwwLDAsMS41LS40ODQsNC4yMzgsNC4yMzgsMCwwLDEtMi43NTEtMS4wMTksNC4xMyw0LjEzLDAsMCwxLTEuNzMyLTIuODI3QTMuNzksMy43OSwwLDAsMSw0LjY1OCwxNi41LDMuOTc3LDMuOTc3LDAsMCwxLDcuNDA5LDE1YTQuODA2LDQuODA2LDAsMCwxLDMuMjA5Ljk0Miw2Ljk1LDYuOTUsMCwwLDAtLjg2Ni0uODY2LDQuMSw0LjEsMCwwLDAtMy40NjQtLjY4OCw1LjIsNS4yLDAsMCwwLTMuMTA3LDEuOTg3Wk0xNi44MzMsMTAuNDlBNDAuODM3LDQwLjgzNywwLDAsMSw4LjUsOS43QzYuMjM3LDkuMTQsNS4wNCw4LjUyOSw1LjA0LDcuNzRjMC0uMzMxLjE1My0uNjExLjYxMS0uOTQyLTEuNDI2LjU2LTIuMTksMS4wMTktMi4xOSwxLjczMi4wNzYuNzksMS4zNSwxLjU3OSwzLjk0OCwyLjE5YTM5LjQ0MywzOS40NDMsMCwwLDAsOS4zNDcuOTQyQTM4Ljk5MywzOC45OTMsMCwwLDAsMjYuMSwxMC43MmMyLjYtLjYxMSwzLjg0Ni0xLjQyNiwzLjg0Ni0yLjE5LDAtLjU2LS41Ni0xLjEtMS41NzktMS41YS44NjIuODYyLDAsMCwxLC40MDguNjg4YzAsLjc5LTEuMTcyLDEuNDI2LTMuNTQsMS45NjFBMzkuMzI0LDM5LjMyNCwwLDAsMSwxNi44MzMsMTAuNDlabTkuMzczLDIuMTlhNDIuMzE1LDQyLjMxNSwwLDAsMS05LjM0Ny45NDIsNDQuMTQ0LDQ0LjE0NCwwLDAsMS05LjQyNC0uOTQyYy0yLjE5LS41Ni0zLjM2Mi0xLjE3Mi0zLjc2OS0xLjgwOGEyMy4xODYsMjMuMTg2LDAsMCwwLDIuNiw3LjY0MWMuOTQyLDEuNDI2LDEuODg1LDIuNjc0LDIuODI3LDQuMDI0YTkuODgzLDkuODgzLDAsMCwxLC44NjYsMi4zNjksNC41NTksNC41NTksMCwwLDAsMi42LDEuNzMyLDEwLjYxMSwxMC42MTEsMCwwLDAsNC4xNzcuNjExaC4xNTNhMTEuODM5LDExLjgzOSwwLDAsMCw0LjMtLjYxMSw0Ljg2OSw0Ljg2OSwwLDAsMCwyLjUyMS0xLjczMmguMDc2YTkuNTkyLDkuNTkyLDAsMCwxLC43OS0yLjM2OWMuOTQyLTEuMzUsMS44ODUtMi42LDIuODI3LTQuMDI0QTI0LjYyLDI0LjYyLDAsMCwwLDMwLDEwLjg3MkMyOS40OTEsMTEuNTg1LDI4LjMxOSwxMi4yLDI2LjIwNSwxMi42ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojNmY0ZTM3XFxcIi8+XCIsXG5cdFwiQ3J5c3RhbFwiOiBcIjxwYXRoIGQ9XFxcIk0yOS45NDEsMTkuODE2LDE5LjgsMjkuOTI4Yy0uMDI4LjAyOC0uMDg1LjAyOC0uMTY5LjAyOEw1LjgsMjYuMjY3Yy0uMDI4LDAtLjA4NC0uMDI4LS4xMTMtLjExM0wyLDEyLjM1MmEuNDE5LjQxOSwwLDAsMSwuMDI4LS4xNjlMMTIuMTY4LDIuMDcyYy4wMjgtLjAyOC4wODQtLjAyOC4xNjktLjAyOGwxMy44MywzLjcxOGMuMDI4LDAsLjA4NC4wMjguMTEzLjExM2wzLjY5LDEzLjhDMzAuMDI2LDE5LjczMiwzMCwxOS43ODgsMjkuOTQxLDE5LjgxNlpNMTYuMzkzLDguODMyLDIuODE3LDEyLjQ5M3EtLjA0MiwwLDAsLjA4NEwxMi43NiwyMi41MmMuMDI4LjAyOC4wMjgsMCwuMDg0LDBMMTYuNTA2LDguOTcyQzE2LjQ0OSw4LjgzMiwxNi4zOTMsOC44MzIsMTYuMzkzLDguODMyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2M4YzhjOFxcXCIvPlwiLFxuXHRcIkNTU1wiOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiNS45MDIgMjcuMjAxIDMuNjU2IDIgMjguMzQ0IDIgMjYuMDk1IDI3LjE5NyAxNS45ODUgMzAgNS45MDIgMjcuMjAxXFxcIiBzdHlsZT1cXFwiZmlsbDojMTU3MmI2XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAyNy44NTggMjQuMTcgMjUuNTkzIDI2LjA5MiA0LjA2MSAxNiA0LjA2MSAxNiAyNy44NThcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDEzLjE5MSAyMC4wOSAxMy4xOTEgMjAuMzcyIDEwLjAyNiAxNiAxMC4wMjYgMTYgNi45MzUgMTYuMDExIDYuOTM1IDIzLjc1IDYuOTM1IDIzLjY3NiA3Ljc2NCAyMi45MTcgMTYuMjgyIDE2IDE2LjI4MiAxNiAxMy4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2LjAxOSAyMS4yMTggMTYuMDA1IDIxLjIyMiAxMi41NjMgMjAuMjkyIDEyLjM0MyAxNy44MjcgMTAuNjcgMTcuODI3IDkuMjQgMTcuODI3IDkuNjczIDIyLjY4IDE2LjAwNCAyNC40MzggMTYuMDE5IDI0LjQzNCAxNi4wMTkgMjEuMjE4XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOS44MjcgMTYuMTUxIDE5LjQ1NSAyMC4yOSAxNi4wMDggMjEuMjIgMTYuMDA4IDI0LjQzNiAyMi4zNDQgMjIuNjggMjIuMzkxIDIyLjE1OCAyMi45MjggMTYuMTUxIDE5LjgyNyAxNi4xNTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2LjAxMSA2LjkzNSAxNi4wMTEgOC44NTUgMTYuMDExIDEwLjAxOCAxNi4wMTEgMTAuMDI2IDguNTU1IDEwLjAyNiA4LjU1NSAxMC4wMjYgOC41NDUgMTAuMDI2IDguNDgzIDkuMzMxIDguMzQyIDcuNzY0IDguMjY4IDYuOTM1IDE2LjAxMSA2LjkzNVxcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMTMuMTkxIDE2IDE1LjExMSAxNiAxNi4yNzQgMTYgMTYuMjgyIDEyLjYxMSAxNi4yODIgMTIuNjExIDE2LjI4MiAxMi42MDEgMTYuMjgyIDEyLjUzOSAxNS41ODcgMTIuMzk5IDE0LjAyIDEyLjMyNSAxMy4xOTEgMTYgMTMuMTkxXFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+XCIsXG5cdFwiQ1NWXCI6IFwiPHBhdGggZD1cXFwiTTIyLjAzOCwySDYuMzc1YTEuNzU1LDEuNzU1LDAsMCwwLTEuNzUsMS43NXYyNC41QTEuNzU1LDEuNzU1LDAsMCwwLDYuMzc1LDMwaDE5LjI1YTEuNzU1LDEuNzU1LDAsMCwwLDEuNzUtMS43NVY2Ljg1NlptLjUyNSwyLjg0NCwxLjY2MywxLjUzMUgyMi41NjNaTTYuMzc1LDI4LjI1VjMuNzVIMjAuODEzVjguMTI1aDQuODEzVjI4LjI1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxNS4wOTdcXFwiIHdpZHRoPVxcXCIxMy4wNzZcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIyNC40MzlcXFwiIHdpZHRoPVxcXCI5Ljc2MlxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjE5Ljc2M1xcXCIgd2lkdGg9XFxcIjE1Ljc1XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTAuMjNcXFwiIHdpZHRoPVxcXCIxNS43NVxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+XCIsXG5cdFwiRFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE4NS40NTVcXFwiIHkxPVxcXCIxNjAxLjY0MVxcXCIgeDI9XFxcIjE4MS45NTVcXFwiIHkyPVxcXCIxNjMwLjIyNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNjIuNTIzIC02NjYuNjQ2KSBzY2FsZSgwLjQyNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMTc2LjEzNlxcXCIgeTE9XFxcIjE2MDAuNVxcXCIgeDI9XFxcIjE3Mi42MzZcXFwiIHkyPVxcXCIxNjI5LjA4M1xcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9kbGFuZzwvdGl0bGU+PHBhdGggZD1cXFwiTTMuOTc4LDE1LjQ2MiwzLjk2OSw4LjUwOUEuNTg4LjU4OCwwLDAsMSw0LjUsNy45NDdhLjY1OC42NTgsMCwwLDEsLjA3NiwwbDYuMDc0LS4wMDlhMTUuNywxNS43LDAsMCwxLDYuMDY3Ljk1LDguOSw4LjksMCwwLDEsMi4yNDQsMS4zNTksNC40NjksNC40NjksMCwwLDEsMi45NDYtMS4wODMsNC4xMSw0LjExLDAsMCwxLDQuMjc2LDMuOTJBNC4xMSw0LjExLDAsMCwxLDIxLjkwNywxN2MtLjA4OSwwLS4xNzctLjAwOC0uMjY1LS4wMTJhNi42MTcsNi42MTcsMCwwLDEtLjIzMi45NTMsODUuMzgzLDg1LjM4MywwLDAsMSw4LjU5LDIuNlYySDJWMTUuNFEyLjk5MiwxNS40MiwzLjk3OCwxNS40NjJabTIyLjgtNy45NDRhMS4zMiwxLjMyLDAsMCwxLDEuMzc0LDEuMjU5LDEuMzc5LDEuMzc5LDAsMCwxLTIuNzQ3LDBBMS4zMiwxLjMyLDAsMCwxLDI2Ljc4LDcuNTE3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2IwMzkzMVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44NjEsMTUuNzg3YTQuMTE0LDQuMTE0LDAsMCwwLTEuNzQ4LTMuNDU4LDUuODE0LDUuODE0LDAsMCwwLTEuNTA4LS44MjIsNy4zNTQsNy4zNTQsMCwwLDAtMS42MjktLjQzOCwyMS42MjksMjEuNjI5LDAsMCwwLTIuNTg4LS4xbC0yLjYxOSwwLC4wMDYsNC43MzdhODguODI3LDg4LjgyNywwLDAsMSw5LjkxLDEuNDA4QTQuOTE5LDQuOTE5LDAsMCwwLDE3Ljg2MSwxNS43ODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjAzOTMxXFxcIi8+PHBhdGggZD1cXFwiTTIwLjk5MywxOC45NzlhNy45MDYsNy45MDYsMCwwLDEtMi4xMjgsMi41ODIsOS43MzksOS43MzksMCwwLDEtMy4yNTYsMS43MSwxMS41NTgsMTEuNTU4LDAsMCwxLTEuOTcxLjQ3MmgtLjAxNWEzMS44NTcsMzEuODU3LDAsMCwxLTMuMzI2LjExMWwtNS42MjUuMDIyYS42MTYuNjE2LDAsMCwxLS42ODYtLjY4MWwtLjAxLTcuNzM0UTIuOTkyLDE1LjQyLDIsMTUuNFYzMEgzMFYyMC41NDRhODUuMzgzLDg1LjM4MywwLDAsMC04LjU5LTIuNkE2Ljk4NSw2Ljk4NSwwLDAsMSwyMC45OTMsMTguOTc5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2IwMzkzMVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45OTMsMTguOTc5YTcuOTA2LDcuOTA2LDAsMCwxLTIuMTI4LDIuNTgyLDkuNzM5LDkuNzM5LDAsMCwxLTMuMjU2LDEuNzEsMTEuNTU4LDExLjU1OCwwLDAsMS0xLjk3MS40NzJoLS4wMTVhMzEuODU3LDMxLjg1NywwLDAsMS0zLjMyNi4xMTFsLTUuNjI1LjAyMmEuNjE2LjYxNiwwLDAsMS0uNjg2LS42ODFsLS4wMS03LjczNFEyLjk5MiwxNS40MiwyLDE1LjRWMzBIMzBWMjAuNTQ0YTg1LjM4Myw4NS4zODMsMCwwLDAtOC41OS0yLjZBNi45ODUsNi45ODUsMCwwLDEsMjAuOTkzLDE4Ljk3OVpcXFwiIHN0eWxlPVxcXCJvcGFjaXR5OjAuMzAwMDAwMDExOTIwOTI5O2lzb2xhdGlvbjppc29sYXRlO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40NzcsMjAuODM1YTE2LjAxNCwxNi4wMTQsMCwwLDAsMi44NzctLjIsNy42MzMsNy42MzMsMCwwLDAsMS42MjgtLjUsNS42MjgsNS42MjgsMCwwLDAsMS4xODctLjc0OCw0LjQ1Nyw0LjQ1NywwLDAsMCwxLjUxOC0yLjI3MSw4OC42OTEsODguNjkxLDAsMCwwLTkuOTEtMS40MDhsLjAwNiw1LjEzM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMDM5MzFcXFwiLz48cGF0aCBkPVxcXCJNMTAuNDc3LDIwLjgzNWExNi4wMTQsMTYuMDE0LDAsMCwwLDIuODc3LS4yLDcuNjMzLDcuNjMzLDAsMCwwLDEuNjI4LS41LDUuNjI4LDUuNjI4LDAsMCwwLDEuMTg3LS43NDgsNC40NTcsNC40NTcsMCwwLDAsMS41MTgtMi4yNzEsODguNjkxLDg4LjY5MSwwLDAsMC05LjkxLTEuNDA4bC4wMDYsNS4xMzNaXFxcIiBzdHlsZT1cXFwib3BhY2l0eTowLjMwMDAwMDAxMTkyMDkyOTtpc29sYXRpb246aXNvbGF0ZTtmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjAuMzgzLDExLjc0NmE2Ljk5Myw2Ljk5MywwLDAsMSwxLjM2LDQuMTQ4LDYuNjE4LDYuNjE4LDAsMCwxLS4xLDEuMWMuMDg4LDAsLjE3Ni4wMTIuMjY1LjAxMmE0LjExLDQuMTEsMCwwLDAsNC4yNzYtMy45Miw0LjExLDQuMTEsMCwwLDAtNC4yNzYtMy45Miw0LjQ3LDQuNDcsMCwwLDAtMi45NDYsMS4wODNBOC4xMjMsOC4xMjMsMCwwLDEsMjAuMzgzLDExLjc0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMjYuNzhcXFwiIGN5PVxcXCI4Ljc3N1xcXCIgcng9XFxcIjEuMzc0XFxcIiByeT1cXFwiMS4yNTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNC42NzMsMjMuODc3bDUuNjI1LS4wMjJhMzEuODcxLDMxLjg3MSwwLDAsMCwzLjMyNi0uMTExaC4wMTVhMTEuNDksMTEuNDksMCwwLDAsMS45NzEtLjQ3Miw5LjczOSw5LjczOSwwLDAsMCwzLjI1Ni0xLjcxLDcuOTA2LDcuOTA2LDAsMCwwLDIuMTI4LTIuNTgyLDYuOTg1LDYuOTg1LDAsMCwwLC40MTctMS4wMzQsNy4wNTYsNy4wNTYsMCwwLDAsLjMzMi0yLjA1MSw2Ljk5Miw2Ljk5MiwwLDAsMC0xLjM2LTQuMTQ4LDguMSw4LjEsMCwwLDAtMS40MjEtMS41LDguODc4LDguODc4LDAsMCwwLTIuMjQ0LTEuMzU5LDE1LjY4NiwxNS42ODYsMCwwLDAtNi4wNjctLjk1bC02LjA3NC4wMDlhLjY1OC42NTgsMCwwLDAtLjA3NiwwLC41ODguNTg4LDAsMCwwLS41MzIuNTYybC4wMDksNi45NTIuMDEsNy43MzRBLjYxNi42MTYsMCwwLDAsNC42NzMsMjMuODc3Wm0zLjEtMTIuOTA4LDIuNjE5LDBhMjEuNjIzLDIxLjYyMywwLDAsMSwyLjU4OC4xLDcuMzU0LDcuMzU0LDAsMCwxLDEuNjI5LjQzOCw1LjgxNCw1LjgxNCwwLDAsMSwxLjUwOC44MjIsNC4xMTYsNC4xMTYsMCwwLDEsMS43NDgsMy40NTgsNC45MDUsNC45MDUsMCwwLDEtLjE3NSwxLjMyNyw0LjQ1Nyw0LjQ1NywwLDAsMS0xLjUxOCwyLjI3MSw1LjYxMyw1LjYxMywwLDAsMS0xLjE4Ny43NDgsNy42NjYsNy42NjYsMCwwLDEtMS42MjguNSwxNi4wMDksMTYuMDA5LDAsMCwxLTIuODc3LjJsLTIuNjk0LDAtLjAwNi01LjEzM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJEYXJ0XCI6IFwiPHBhdGggZD1cXFwiTTE2LjczOSwyLjAzN2ExLjMxNCwxLjMxNCwwLDAsMC0uOTE2LjM3N2wtLjAxMy4wMUw3LjIyLDcuMzg5bDguNTY2LDguNTY2di4wMDZsMTAuMywxMC4zLDEuOTYzLTMuNTM2TDIwLjk2OCw1LjcyOGwtMy4zLTMuM2ExLjMwNywxLjMwNywwLDAsMC0uOTI3LS4zODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjZjM2ZhXFxcIi8+PHBhdGggZD1cXFwiTTcuMjUsNy4zNSwyLjI4OCwxNS45MzFsLS4wMS4wMTNhMS4zMjIsMS4zMjIsMCwwLDAtLjM3OC45MTksMS4zLDEuMywwLDAsMCwuMzg3LjkyNEw2LjQsMjEuOWwxNi4wODQsNi4zMjcsMy42MzYtMi4wMi0uMS0uMS0uMDI1LDAtMTAuMDgzLTEwLjFIMTUuOUw3LjI1LDcuMzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjE1ODk2XFxcIi8+PHBhdGggZD1cXFwiTTcuMTkyLDcuMzYybDguNzY0LDguNzczaC4wMTNsMTAuMDg3LDEwLjEsMy44MzktLjczMkwyOS45LDE0LjE0bC00LjA1NC0zLjk3M2E2LjUyMSw2LjUyMSwwLDAsMC0zLjYyNC0xLjYxNmwwLS4wNDRMNy4xOTIsNy4zNjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjM1OTk3XFxcIi8+PHBhdGggZD1cXFwiTTcuMjU2LDcuNDExbDguNzY4LDguNzY4di4wMTNMMjYuMTE2LDI2LjI4NGwtLjczNCwzLjgzOUgxNC4wMjJsLTMuOTcxLTQuMDU2YTYuNTIyLDYuNTIyLDAsMCwxLTEuNjE0LTMuNjI1bC0uMDQ0LDBMNy4yNTYsNy40MTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojNThiNmYwXFxcIi8+XCIsXG5cdFwiRGhhbGxcIjogXCI8cGF0aCBkPVxcXCJNMTYsMi4wN0ExMy45MywxMy45MywwLDEsMSwyLDE2LDEzLjkzLDEzLjkzLDAsMCwxLDE2LDIuMDdaTTEzLjI4LDIyLjMyYTEuNDksMS40OSwwLDEsMS0xLDEuODNBMS40OSwxLjQ5LDAsMCwxLDEzLjI4LDIyLjMyWm04LTE1LjY4YS41My41MywwLDAsMSwuMzguNjYuNTIuNTIsMCwwLDEtLjY1LjM4bC0uNS0uMTNhNDIuNjcsNDIuNjcsMCwwLDAtLjM3LDcuMDdDMTguMDYsMTYuNDUsMTQuMzksMjIsMTQuMzksMjJsMS45My03LjE4YTEsMSwwLDAsMCwuODktLjY1LjkxLjkxLDAsMCwwLTEuNzUtLjQ3LDEsMSwwLDAsMCwuNDUsMUwxNCwyMS44NWE2OC4zOCw2OC4zOCwwLDAsMC0xLjM0LTkuMjUsMzQuMjgsMzQuMjgsMCwwLDAsMy4yMS02LjMxbC0uNS0uMTNBLjU1LjU1LDAsMCwxLDE1LDUuNWEuNTMuNTMsMCwwLDEsLjY2LS4zOGw1LjY4LDEuNTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjdiN2I3O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdFwiRGlmZlwiOiBcIjxyZWN0IHg9XFxcIjYuOTc1XFxcIiB5PVxcXCIzXFxcIiB3aWR0aD1cXFwiMTguMDVcXFwiIGhlaWdodD1cXFwiNi4wMTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMDAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMTIuOTkyLDEwLjk1djYuMDE3SDYuOTc1djYuMDE3aDYuMDE3VjI5aDYuMDE3VjIyLjk4M2g2LjAxN1YxNi45NjdIMTkuMDA4VjEwLjk1WlxcXCIgc3R5bGU9XFxcImZpbGw6Z3JlZW5cXFwiLz5cIixcblx0XCJEamFuZ28vSmluamEyXCI6IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiMTZcXFwiIGN5PVxcXCItMTE5LjI4M1xcXCIgcj1cXFwiMTMuNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMC45NDUsIDAsIC05Ni43MzUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTc1NzU3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMmYyZjJmXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9qaW5qYTwvdGl0bGU+PHBhdGggZD1cXFwiTTI5LjM0LDMuMjQxYTM4LjI3MSwzOC4yNzEsMCwwLDEtOS40NTEsMy4wNGMtNC4yNDEuNTUtMTIuMzI5LDEuMS0xMy45MzUuNzEyQTIzLjMsMjMuMywwLDAsMSwzLjIsNi4xNTFsLjMzNCwxLjEzMkwyLjUsOC4xODhsLjE4My4zMjMuNDI0LjAzMiwxLjMuMTYyLjE4My41ODIuNzI3LjA2Ni4zNjQsMS4yMjhzMS41NDQuMTMsMiwuMTMsMS4zNjMtLjA2NCwxLjM2My0uMDY0bC4wMy40ODUuMzM0LjA2NHYuNTVsLS43MjguNjQ4LjE4My4wMzJ2LjIyNWExNS44MTYsMTUuODE2LDAsMCwxLTIuMy4wMzRjLS42NjYtLjEtLjc4OC0uMS0uNzg4LS4xbC0uMDYuMDY0LS4wMy4yOTFoLjE1MWwuMDYsMS4yNjIsMy4zNjMtLjEzLS4yNDMsNC4zNjUtLjAzLjU0OS0yLjg0OC0uMTYyLS4wMy0xLjE2NGguNjM1bC4wNjEtLjQ1My41NzUtLjEzLjA5MS0uMTI4LTIuMTUxLS41MTgtMS42MzYuNDg1LjI3My4yMjdoLjI3M2wuMDMuMzg5LjU3NS4wMzJWMTguN2wtLjYzNS4xNjIuMTIxLjI1Ny4xNTEuMXYuODczaC4zOTR2NC4wNDFsLS42MzcuMS4wOTEsMS4xNjQuMzkzLjA2Ni0uMDYsMi42NTEsMS43MjcuMDMyLS4zNjQtMi42MTksMi42MDUtLjA2NC0uMTgxLDEuNDIyLS4yNDMsMSwyLjYzNS4wMzIuMDMtMi41ODYsMS44MTctLjE2Mi0uMDksMS42NDktLjA2MS45NjloMS41NDZsLS4wNjEtMi42NTEuMjEzLjAzNC4wNi0xLjI2MmgtLjI0M2wtLjA5LS41MThMMTMuOCwyMS45bC4wNi0xLjcxM2guMzMzVjE5LjE0OWwtLjQyNC4wMzIuMDYxLTEuMjIuNDkzLS4wNDkuMDIzLS40LjI4LS4wNDEuMjg3LS4yMThMMTMuMTg3LDE2LjlsLTEuNzEyLjM3OS4xNjcuMjc0LjE4MS0uMDE1LjIxMS0uMDA4LjAzOS41LjQ3Ny0uMDIzLjAwOSwxLjA4Mi0yLjA1My0uMDQ3LjA2OS0xLjE1Ni4wNjctMS4wNTFWMTUuNDU1TDEwLjcsMTRsNC4xMTEtLjIxLDQuODkyLS4yODIuMDQ2LjkyOS0uMTc0LDIuMjMxTDE5LjUsMTguNzQ0bC0xLjgtLjAzMi0uMDA5LTEuNDU1LjY2Ny0uMDI0LjAzLS40MTEuMjczLS4wNDEtLjAxNC0uMDgxLjI3My0uMDE1LjE1MS0uMkwxNy4wMzQsMTYsMTUsMTYuNDRsLjE0NC4yNTEuMjI3LS4wMTd2LjExNGguMjh2LjQ2bC42LjAwOC0uMDA3LDEuMjc3aC0uNjA1bC0uMDA5LjI5MS4yMTMuMDI0LS4wMjMsMS4xMDguNDQ3LjAyNC0uMDUzLDQuMzktLjU5MS4xMi4wMDcuMjFoLjIwNnYxLjEyNGguMzRsLS4wOSwxLjUzNkwxNS45NzQsMjguN2wyLjE1MS4wNTYtLjA2OS0xLjE2NC0uMTU4LS45NjktLjAzMS0uODQxLDEuODI2LS4wMzItLjA1MywxLjMtLjAwOSwxLjM3NCwxLjAzMS4wODEsMS40LS4wNTYuNDQtLjEzLS4yNDMtLjczNi0uMDYtMS4xNTYtLjExNC0uODI0LDEuNzQyLS4wNjQtLjA3NiwxLjAxLS4wMDcsMS41ODUuNy4wNjQuNjktLjAxNS4zMzMtLjEwNS0uMi0xLjVMMjUuMiwyNS40NDVsLjMtLjAzMkwyNS41LDI0LjRsLjA4My0uMDE3LS4wMTQtLjIxOGgtLjM0MWwtLjA2OS0uNzQ0TDI1LjEzLDIwLjJsLjI1Ny0uMDA4VjE5LjEzM2wuMTA3LjAxN3YtLjIxbC0uMzgtLjAzNC4wMDktMS4yMjguNjM1LS4wNTYtLjAzNy0uNDEzLjI4LS4wMjQtLjAxNi0uMDgxLjM3MS0uMTg2LTEuODg2LS4zNzktMS45MTYuMzg5LjEyMS4yMjYuMy0uMDI0LjAxNi4xaC4yNWwuMDE0LjQ4NS42MjEtLjAwOC4wNTMsMS4xODgtMi4yLS4wMTctLjI1Ny0xLjc4Ni0uMjA2LS45NDYtLjE2Ni0xLjcuMS0uOTkzLDQuMzc3LS4zMzIuMDE0LTEuNDc5LjIyLS4wNTYtLjAxNC0uMjI1LS4xNjctLjFzLTIuMzkzLjM1NS0zLjE1MS40MzZsLS4zNzEuMDQtLjAyMy0uMjc0LS45MDUtLjQ3NC4wMTEtLjU1Mi4zMTEtLjAwOS4wMjMtLjc1OWEyNC44MDcsMjQuODA3LDAsMCwwLDIuNTQ0LS4yODNjLjY4OS0uMTYyLDEuNjY2LS4zMjMsMS42NjYtLjMyM0wyNi4yLDcuODA5bC45MTctLjI2Ny4wNzYtLjIxLDIuMDc0LS41NzQuMjM2LS4xOTQtLjc4OC0xLjcyMi4wNzYtLjM4OS40LS4yMS4yODgtLjg4MVpNMTkuMzc0LDkuOGwtLjAxMS42MjYuNDcuMDItLjAzLjU5NC0uOTIxLjYtLjA1Ny4xNzQuMzcxLDAsMCwuMTQ2LTIuODE0LjEzNy4wMTktLjQxNi4xMjgtLjIwNy4wMDktLjEzMywwLS4yODYuMDgtLjE5LjAzLS4xNTR2LS4xMWwuMTIxLS40ODVabS01Ljg4NS41MzMtLjA2OS40MjEuMjIuMjU5LS4wMTQuNDUzLjIuMzE1LS4wNTMuMzcyLjE1MS4yMTgtMi44NzEuMTEzLS4wMDctLjEuMzMzLS4wNDEuMDE2LS4xMjItLjcyNy0uMzk1LS4wMzktLjYzMS4zNDgtLjAxNy4wMy0uNjhabTQuMjQ5LDkuNywxLjc0Mi4xMTNMMTkuNDIsMjIuNWwuMjI3LDEuOTIzTDE3LjgsMjQuMzU0Wm0tMTEuNjYzLjEsMi43ODguMTQ1TDguNjIsMjEuOXYxLjM1OWwuMi43NTktMi43MjcuMTNabTE3Ljg0My4wMTV2NC4wMWwtMS43NzIuMTMtLjA2MS0yLjExOC0uMi0xLjk3M1pNMTAuNSwyMC4yNGwyLjA2LjAwOC4wMjEsMy43MThMMTAuNjU3LDI0bC0uMS0xLjIwNS0uMDA3LTEuMlpcXFwiIHN0eWxlPVxcXCJzdHJva2U6cmVkO3N0cm9rZS13aWR0aDowLjVweDtmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XCJEb2NrZXJcIjogXCI8cGF0aCBkPVxcXCJNMTYuNTQsMTIuNjYzSDE5LjR2Mi45MjRoMS40NDZhNi4yNzIsNi4yNzIsMCwwLDAsMS45ODgtLjMzMyw1LjA5MSw1LjA5MSwwLDAsMCwuOTY2LS40MzYsMy41ODQsMy41ODQsMCwwLDEtLjY3LTEuODQ5LDMuOTA3LDMuOTA3LDAsMCwxLC43LTIuNzUzbC4zLS4zNDguMzU4LjI4OGE0LjU1OCw0LjU1OCwwLDAsMSwxLjc5NSwyLjg5Miw0LjM3NSw0LjM3NSwwLDAsMSwzLjMxOS4zMDlsLjM5My4yMjYtLjIwNy40YTQuMTQxLDQuMTQxLDAsMCwxLTQuMTU3LDEuOTgzYy0yLjQ4LDYuMTY4LTcuODcxLDkuMDg4LTE0LjQwOSw5LjA4OC0zLjM3OCwwLTYuNDc2LTEuMjYzLTguMjQxLTQuMjU5bC0uMDI5LS4wNDlMMi43LDIwLjIyN2E4LjMxNiw4LjMxNiwwLDAsMS0uNjU5LTQuMjA4bC4wNC0uNDMzSDQuNTI2VjEyLjY2M0g3LjM4N1Y5LjhoNS43MjFWNi45NDJIMTYuNTR2NS43MjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA5NmU2XFxcIi8+PHBhdGggZD1cXFwiTTEyLjAwNiwyNC41NjdhNi4wMjIsNi4wMjIsMCwwLDEtMy4xNC0zLjA4OSwxMC4zMjksMTAuMzI5LDAsMCwxLTIuMjY0LjM0M3EtLjUuMDI4LTEuMDQ1LjAyOC0uNjMyLDAtMS4zMzEtLjAzN2E5LjA1MSw5LjA1MSwwLDAsMCw3LDIuNzY5UTExLjYxOCwyNC41ODEsMTIuMDA2LDI0LjU2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNy4wOCwxMy4zNDZoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3SDYuN1YxMy4zNDZabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzY4LDBoLjJ2Mi4wNjdoLS4yVjEzLjM0NlpNNSwxMy4xNEg3LjQ4MnYyLjQ3OUg1Wm0yLjg1OS0yLjg2MWgyLjQ4djIuNDc5SDcuODYzWm0yLjA3Ny4yMDdoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJWMTAuNDg2Wm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzY4LDBoLjJ2Mi4wNjZoLS4yWm0tLjIwNywyLjY1M2gyLjQ4djIuNDhINy44NjNWMTMuMTRabTIuMDc3LjIwN2guMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlYxMy4zNDZabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNjgsMGguMnYyLjA2N2gtLjJabTIuNjU0LS4yMDdIMTMuMnYyLjQ4aC0yLjQ4VjEzLjE0Wm0yLjA3Ni4yMDdIMTN2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNjgsMGguMnYyLjA2N2gtLjJabS0uMjA2LTMuMDY3SDEzLjJ2Mi40NzloLTIuNDhWMTAuMjc5Wm0yLjA3Ni4yMDdIMTN2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNjgsMGguMnYyLjA2NmgtLjJabTIuNjU0LDIuNjUzaDIuNDc5djIuNDhoLTIuNDhWMTMuMTRabTIuMDc2LjIwN2guMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM2OCwwaC4xOTJ2Mi4wNjdoLS4yVjEzLjM0NlptLS4yMDYtMy4wNjdoMi40Nzl2Mi40NzloLTIuNDhWMTAuMjc5Wm0yLjA3Ni4yMDdoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNjgsMGguMTkydjIuMDY2aC0uMlYxMC40ODZabS0uMjA2LTMuMDY3aDIuNDc5VjkuOWgtMi40OFY3LjQxOVptMi4wNzYuMjA2aC4yVjkuNjkxaC0uMlptLS4zNzYsMGguMlY5LjY5MWgtLjJabS0uMzc2LDBoLjJWOS42OTFoLS4yWm0tLjM3NiwwaC4yVjkuNjkxaC0uMlptLS4zNzYsMGguMlY5LjY5MWgtLjJabS0uMzY4LDBoLjE5MlY5LjY5MWgtLjJWNy42MjVabTIuNjU0LDUuNTE0aDIuNDc5djIuNDhoLTIuNDhWMTMuMTRabTIuMDc2LjIwN2guMTk1djIuMDY3aC0uMlYxMy4zNDZabS0uMzc2LDBoLjIwNnYyLjA2N2gtLjIwNlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMjA1VjEzLjM0NlptLS4zNjgsMGguMnYyLjA2N2gtLjE5NFYxMy4zNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEwLjE4OCwxOS42MzhhLjY4NC42ODQsMCwxLDEtLjY4NC42ODRBLjY4NC42ODQsMCwwLDEsMTAuMTg4LDE5LjYzOFptMCwuMTk0YS40ODkuNDg5LDAsMCwxLC4xNzcuMDMzLjIuMiwwLDEsMCwuMjc1LjI2OS40OS40OSwwLDEsMS0uNDUzLS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIkRPVCAoR3JhcGh2aXopXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCIyMy45NDIgMzAgMTIuNjc5IDMwIDEuNDE3IDMwIDEuNDE3IDE2IDEuNDE3IDIgMTIuNjc5IDIgMjMuOTQyIDIgMjMuOTQyIDE2IDIzLjk0MiAzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2U2ZTZlNlxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIzLjIwMlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI3LjQyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjExLjYzOFxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxNS44NTZcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjAuMDc0XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI0LjI5M1xcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyOC41MTFcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIzLjIwMlxcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjU3M1xcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjYuMjE4XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjEwLjQzNlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxNC42NTVcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTguODczXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIzLjA5MVxcXCIgeT1cXFwiMy4yMDJcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS41NzNcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjVcXFwiPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyNy40NTZcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjYuNDAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI1LjM0N1xcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyMy4yMzhcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjIuMTg0XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjIxLjEyOVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxOS4wMlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxNy45NjVcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTYuOTExXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE0LjgwMlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxMy43NDdcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTIuNjkzXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjEwLjU4M1xcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI5LjUyOVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI4LjQ3NFxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI2LjM2NVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI1LjMxMVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI0LjI1NlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjwvZz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjVcXFwiPjxyZWN0IHg9XFxcIjIyLjAzNlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyMC45ODJcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTkuOTI3XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE3LjgxOFxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxNi43NjRcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTUuNzA5XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjEzLjZcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTIuNTQ1XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjExLjQ5MVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI5LjM4MlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI4LjMyN1xcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI3LjI3M1xcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI1LjE2NFxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI0LjEwOVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIzLjA1NVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48L2c+PHBhdGggZD1cXFwiTTEzLDguOTc2Yy0yLjMwOCwwLTQuMTMxLTEuMjc0LTQuMTkzLTIuOTY5aDBhMi43NzUsMi43NzUsMCwwLDEsMS4yNTMtMi4zMiw1LjMsNS4zLDAsMCwxLDIuOTQzLS45NjMsNS4yOTQsNS4yOTQsMCwwLDEsMy4wMDYuNzQzLDIuNzc1LDIuNzc1LDAsMCwxLDEuNDIxLDIuMjIxYy4wNjUsMS43NTItMS43NzksMy4xOTQtNC4yLDMuMjgzQzEzLjE1OCw4Ljk3NCwxMy4wOCw4Ljk3NiwxMyw4Ljk3NlptLjIzMi01LjJxLS4wOTUsMC0uMTksMGE0LjIzOCw0LjIzOCwwLDAsMC0yLjM1NC43NTYsMS43NjEsMS43NjEsMCwwLDAtLjgyOCwxLjQzNUM5LjksNy4wOSwxMS40MjgsNy45NzgsMTMuMiw3LjkxN3MzLjIyMy0xLjA2OSwzLjE4MS0yLjE5MWExLjc2MSwxLjc2MSwwLDAsMC0uOTMyLTEuMzY5QTQuMTY1LDQuMTY1LDAsMCwwLDEzLjIzNCwzLjc3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNNi40LDI5LjI4MUE1LjIzOCw1LjIzOCwwLDAsMSwzLjYsMjguNTE5YTIuNzc1LDIuNzc1LDAsMCwxLTEuNDEtMi4yMjljLS4wNTYtMS43NTIsMS44LTMuMTg1LDQuMjEzLTMuMjYyczQuMzU2LDEuMjM2LDQuNDEyLDIuOTg4QTIuNzc1LDIuNzc1LDAsMCwxLDkuNTQ4LDI4LjMzYTUuMyw1LjMsMCwwLDEtMi45NDguOTQ4UTYuNSwyOS4yODEsNi40LDI5LjI4MVptLjE4Ni01LjItLjE1NiwwYy0xLjc2Ni4wNTYtMy4yMjksMS4wNTItMy4xOTMsMi4xNzRhMS43NjEsMS43NjEsMCwwLDAsLjkyNCwxLjM3NCw0LjIzNSw0LjIzNSwwLDAsMCwyLjQuNTkzLDQuMjM1LDQuMjM1LDAsMCwwLDIuMzU3LS43NDQsMS43NjEsMS43NjEsMCwwLDAsLjgzNS0xLjQzQzkuNzI0LDI0Ljk2MSw4LjI5LDI0LjA4LDYuNTkxLDI0LjA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4yNjEsMjkuMjZhNS4yMzgsNS4yMzgsMCwwLDEtMi44MDctLjc2MiwyLjc3NSwyLjc3NSwwLDAsMS0xLjQxLTIuMjI5aDBjLS4wNTUtMS43NTIsMS44LTMuMTg1LDQuMjEzLTMuMjYyYTUuMyw1LjMsMCwwLDEsMywuNzU5QTIuNiwyLjYsMCwwLDEsMjIuNCwyOC4zMWE1LjMsNS4zLDAsMCwxLTIuOTQ4Ljk0OFExOS4zNTgsMjkuMjYsMTkuMjYxLDI5LjI2Wk0xNi4xLDI2LjIzNmExLjc2MSwxLjc2MSwwLDAsMCwuOTI0LDEuMzc0LDQuNTcsNC41NywwLDAsMCw0Ljc1Ny0uMTUxLDEuNTU4LDEuNTU4LDAsMCwwLS4wODktMi44LDQuMjI2LDQuMjI2LDAsMCwwLTIuNC0uNTkzYy0xLjc2Ni4wNTYtMy4yMjgsMS4wNTItMy4xOTMsMi4xNzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTYuMiwyMy40NzdBMjcuNCwyNy40LDAsMCwxLDkuNzY5LDguOTg2bC42ODcuMzkxQTI2LjYwOSwyNi42MDksMCwwLDAsNi45ODYsMjMuNDVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTEwLjg1Myw3Ljk1N2E3LjE3MSw3LjE3MSwwLDAsMC0uMDc1LDIuMzJsLS43NTgtLjkzLTEuMTc4LS4yM0E3LjE2NSw3LjE2NSwwLDAsMCwxMC44NTMsNy45NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg1NCwyMy40NzdsLS43OS0uMDI3YTI2LjU5LDI2LjU5LDAsMCwwLS45MTUtNy44ODQsMjYuNjI0LDI2LjYyNCwwLDAsMC0yLjU1NC02LjE4OWwuNjg3LS4zOTFhMjcuNDIzLDI3LjQyMywwLDAsMSwyLjYzLDYuMzczQTI3LjM3MiwyNy4zNzIsMCwwLDEsMTkuODU0LDIzLjQ3N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTUuMiw3Ljk1N2E3LjE3MSw3LjE3MSwwLDAsMCwyLjAxMSwxLjE1OWwtMS4xNzguMjMtLjc1OC45M0E3LjE2NSw3LjE2NSwwLDAsMCwxNS4yLDcuOTU3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxyZWN0IHg9XFxcIjExLjM0OFxcXCIgeT1cXFwiOS45NDVcXFwiIHdpZHRoPVxcXCIzLjUxNVxcXCIgaGVpZ2h0PVxcXCIwLjc5MVxcXCIgdHJhbnNmb3JtPVxcXCJtYXRyaXgoMC4wMTYsIC0xLCAxLCAwLjAxNiwgMi41NTcsIDIzLjI3OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTMuMDU0LDEzLjUyOWE3LjE3MSw3LjE3MSwwLDAsMC0xLjEtMi4wNDZsMS4xMjIuNDI2LDEuMTM1LS4zOUE3LjE2NSw3LjE2NSwwLDAsMCwxMy4wNTQsMTMuNTI5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxyZWN0IHg9XFxcIjcuODA5XFxcIiB5PVxcXCIyMC4wODFcXFwiIHdpZHRoPVxcXCI0Ljc1N1xcXCIgaGVpZ2h0PVxcXCIwLjc5MVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTEyLjU2IDE4LjEwOCkgcm90YXRlKC01Ny42MDMpXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTguMTQ3LDIzLjY5NGE3LjE3MSw3LjE3MSwwLDAsMCwuMTMzLTIuMzE3bC43MzQuOTQ5LDEuMTcxLjI2QTcuMTY1LDcuMTY1LDAsMCwwLDguMTQ3LDIzLjY5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cmVjdCB4PVxcXCIxNS40MThcXFwiIHk9XFxcIjE4LjA1MVxcXCIgd2lkdGg9XFxcIjAuNzkxXFxcIiBoZWlnaHQ9XFxcIjQuOTE5XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtOC4yNTcgMTAuOTUxKSByb3RhdGUoLTMwLjcwOClcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTcuOCwyMy44NTZhNy4xNzEsNy4xNzEsMCwwLDAtMi4wMDYtMS4xNjhsMS4xNzktLjIyNS43NjItLjkyN0E3LjE2NSw3LjE2NSwwLDAsMCwxNy44LDIzLjg1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTMuMDI0LDE5LjEyNWE1LjIzOCw1LjIzOCwwLDAsMS0yLjgwNy0uNzYyLDIuNzc1LDIuNzc1LDAsMCwxLTEuNDEtMi4yMjksMi43NzUsMi43NzUsMCwwLDEsMS4yNjYtMi4zMTQsNS4zLDUuMywwLDAsMSwyLjk0OC0uOTQ4LDYuNzEyLDYuNzEyLDAsMCwxLDIuMTM0LjMxM2wtLjMzMSwxYTUuNjY4LDUuNjY4LDAsMCwwLTEuNzY5LS4yNjEsNC4yMzgsNC4yMzgsMCwwLDAtMi4zNTguNzQ0LDEuNzYxLDEuNzYxLDAsMCwwLS44MzUsMS40MywxLjc2MSwxLjc2MSwwLDAsMCwuOTI0LDEuMzc0LDQuMjQyLDQuMjQyLDAsMCwwLDIuNC41OTMsNS43LDUuNywwLDAsMCwxLjY3OC0uMzc4bC4zNzguOTg1YTYuODQ0LDYuODQ0LDAsMCwxLTIuMDIyLjQ0OFExMy4xMjEsMTkuMTI1LDEzLjAyNCwxOS4xMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE1LjQzNSwxMi44NzZhNC4zMzgsNC4zMzgsMCwwLDAtLjk4NCwxLjYyMiwyLjA2NCwyLjA2NCwwLDAsMS0uMDE2LDIuODA2LDQuNCw0LjQsMCwwLDAsLjk4MiwxLjYsMy45MzIsMy45MzIsMCwwLDAsLjA3OC01Ljk4NkMxNS40NzYsMTIuOSwxNS40NTQsMTIuODkzLDE1LjQzNSwxMi44NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE5LjUyNSwxNS4yNzhhMjcuOTMxLDI3LjkzMSwwLDAsMC0xLjI2My0zLjc0Miw0LjM3Niw0LjM3NiwwLDAsMC0xLjc3Ny41MTcsMjYuMDYzLDI2LjA2MywwLDAsMSwxLjI1MywzLjY4NSwyNi4wMzgsMjYuMDM4LDAsMCwxLC43MzQsNC41MzQsNC4zNDcsNC4zNDcsMCwwLDAsMS44MjUtLjM1MUEyNy45LDI3LjksMCwwLDAsMTkuNTI1LDE1LjI3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTUzLDEyLjIyOUE0LjQzNyw0LjQzNywwLDEsMCwyMi4zLDEzLjUsNC40MzcsNC40MzcsMCwwLDAsMTYuMTUzLDEyLjIyOVptNC44MTIsNy4zMzJhNC4zNDYsNC4zNDYsMCwxLDEsMS4yNDktNi4wMThBNC4zNDYsNC4zNDYsMCwwLDEsMjAuOTY1LDE5LjU2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyYzI5MjhcXFwiLz48cGF0aCBkPVxcXCJNMjIuMDE1LDE5LjE4NmEuODIyLjgyMiwwLDAsMC0uMTkyLS4yMDksNC4zNDcsNC4zNDcsMCwwLDEtLjMzMy4zMTksNC41MjIsNC41MjIsMCwwLDEtLjQ0Ni4zMzcsNC43Myw0LjczLDAsMCwxLS45NC40NzcuNjY5LjY2OSwwLDAsMCwuMDMxLjEuNjQuNjQsMCwwLDAsLjA0Ny4wOTRsLjQ4Ny44TDIyLjUsMTkuOTg0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI4MjgyOFxcXCIvPjxyZWN0IHg9XFxcIjIwLjc5M1xcXCIgeT1cXFwiMjAuNzg0XFxcIiB3aWR0aD1cXFwiMi4xNDdcXFwiIGhlaWdodD1cXFwiMC40NFxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTcuNzQgMTQuNDY1KSByb3RhdGUoLTMxLjM5NClcXFwiIHN0eWxlPVxcXCJmaWxsOiMyODI4MjhcXFwiLz48cmVjdCB4PVxcXCIyMi44NjhcXFwiIHk9XFxcIjIwLjk2XFxcIiB3aWR0aD1cXFwiMi4xNDdcXFwiIGhlaWdodD1cXFwiNi44ODdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC05LjIwNyAxNi4wNDQpIHJvdGF0ZSgtMzEuMzk0KVxcXCIgc3R5bGU9XFxcImZpbGw6IzI4MjgyOFxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wNTQsMjcuNDQzbC0uMjM2LS4zODctMS44MzMsMS4xMTkuMjM2LjM4N2EuOTI0LjkyNCwwLDAsMCwxLjI3OS4xNTlsLjExLS4wNjdBLjkyNC45MjQsMCwwLDAsMjcuMDU0LDI3LjQ0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyODI4MjhcXFwiLz48cGF0aCBkPVxcXCJNMjAuNjgsMTQuODQ1YS4zMTUuMzE1LDAsMCwxLC4zMzguMDI3LDEuMDc4LDEuMDc4LDAsMCwxLC4yOTQuNTc4LDEuMSwxLjEsMCwwLDEsLjAyOS42NTQuMzI3LjMyNywwLDAsMS0uMjc4LjIuNDY4LjQ2OCwwLDAsMS0uMzctLjEuOTIyLjkyMiwwLDAsMS0uMjYyLS41Ljk1NS45NTUsMCwwLDEtLjAxLS41ODVBLjQ2Ni40NjYsMCwwLDEsMjAuNjgsMTQuODQ1Wm0uMDYuMjI3YS4xNDkuMTQ5LDAsMCwwLS4wNzQuMDYzLjI0Ny4yNDcsMCwwLDAtLjAyNy4xMzIsMS42MjYsMS42MjYsMCwwLDAsLjA2NC4zNTUsMS41OTIsMS41OTIsMCwwLDAsLjExMi4zMjkuMjY4LjI2OCwwLDAsMCwuMDk0LjExLjE0Mi4xNDIsMCwwLDAsLjA5NC4wMTUuMTIxLjEyMSwwLDAsMCwuMDc4LS4wNDguMjExLjIxMSwwLDAsMCwuMDI4LS4xMjgsMi42NDMsMi42NDMsMCwwLDAtLjE4Ni0uNzIyLjIzNS4yMzUsMCwwLDAtLjA5My0uMTA3QS4xMTYuMTE2LDAsMCwwLDIwLjczOSwxNS4wNzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjY5NCwxNC40YS4zLjMsMCwwLDEsLjM0Ni4wNTcsMS40OTMsMS40OTMsMCwwLDEsLjMyNS43LDEuNTIxLDEuNTIxLDAsMCwxLC4wNi43NzEuMzEuMzEsMCwwLDEtLjI3LjIyOC40NDYuNDQ2LDAsMCwxLS4zNzktLjEzNywxLjMxLDEuMzEsMCwwLDEtLjI5Mi0uNjE3LDEuMzQxLDEuMzQxLDAsMCwxLS4wNDEtLjdBLjQ0MS40NDEsMCwwLDEsMjEuNjk0LDE0LjRabS4wNzIuMjczYS4xMzYuMTM2LDAsMCwwLS4wNzIuMDY5LjMxNS4zMTUsMCwwLDAtLjAyMS4xNTUsMi4zNTEsMi4zNTEsMCwwLDAsLjA4NC40MjcsMi4zMSwyLjMxLDAsMCwwLC4xMzEuNC4zNDcuMzQ3LDAsMCwwLC4xLjEzNS4xMy4xMywwLDAsMCwuMS4wMjEuMTEuMTEsMCwwLDAsLjA3Ni0uMDU0LjI3NS4yNzUsMCwwLDAsLjAyMi0uMTUsMy43NzMsMy43NzMsMCwwLDAtLjIyNC0uODYyLjMxMS4zMTEsMCwwLDAtLjEtLjEzMkEuMS4xLDAsMCwwLDIxLjc2NiwxNC42NzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTIzLjQ3MiwxNS45MzRsLS4yNjkuMDM4LS4zNzktMS40MzlhLjk1NS45NTUsMCwwLDEtLjI1Ny4zOTJsLS4wODctLjMzMWEuODQxLjg0MSwwLDAsMCwuMTY5LS4yNi44NzQuODc0LDAsMCwwLC4wNzUtLjM4M2wuMi0uMDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNC40NTUsMTUuNzk0bC0uMjY5LjAzOC0uNDI5LTEuNjI1YTEsMSwwLDAsMS0uMjQ3LjQyOWwtLjEtLjM3NmEuODc0Ljg3NCwwLDAsMCwuMTYyLS4yODQsMS4wMjgsMS4wMjgsMCwwLDAsLjA2NC0uNDI0bC4yLS4wODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjYzNiwxMy4xMTdjLjEyNy0uMDU1LjI0OS0uMDA4LjM2OS4xNDRhMy4xMSwzLjExLDAsMCwxLC40MTYsMS4wMzQsMy4xNDMsMy4xNDMsMCwwLDEsLjE1MSwxLjExYy0uMDI5LjE5LS4xMTEuMjk0LS4yNDcuMzEycy0uMjcyLS4wNTktLjQtLjIzMWEyLjg1NSwyLjg1NSwwLDAsMS0uMzgxLS45NSwyLjg3MSwyLjg3MSwwLDAsMS0uMTMyLTEuMDM5QS40MzcuNDM3LDAsMCwxLDI0LjYzNiwxMy4xMTdabS4xMDcuNGEuMTI0LjEyNCwwLDAsMC0uMDY3LjA4OC41ODQuNTg0LDAsMCwwLDAsLjIyMSw1LjIxOCw1LjIxOCwwLDAsMCwuMTM5LjYzNSw1LjE1Myw1LjE1MywwLDAsMCwuMTg0LjYuNjYuNjYsMCwwLDAsLjEyLjIwOC4xMTguMTE4LDAsMCwwLC4xLjA0LjEuMSwwLDAsMCwuMDcxLS4wNzIuNTI4LjUyOCwwLDAsMCwwLS4yMTYsNS40NDIsNS40NDIsMCwwLDAtLjE0NC0uNjUzLDUuNDQ3LDUuNDQ3LDAsMCwwLS4xODktLjYxOS42MTIuNjEyLDAsMCwwLS4xMTktLjIwNUEuMDkzLjA5MywwLDAsMCwyNC43NDMsMTMuNTIyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi42MzgsMTUuNDg4bC0uMjY5LjAzOC0uNTQtMi4wMzlBMS4xNTEsMS4xNTEsMCwwLDEsMjUuNiwxNGwtLjEyNi0uNDc1YS45OS45OSwwLDAsMCwuMTQ4LS4zMzcsMS40MzYsMS40MzYsMCwwLDAsLjAzOS0uNTE1bC4yLS4wODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI2LjY2NiwxMi4yMzZjLjEyNy0uMDU1LjI1NS4wMTIuMzg1LjJhNC41ODQsNC41ODQsMCwwLDEsLjQ3OCwxLjI2OCw0LjYyLDQuNjIsMCwwLDEsLjIxMywxLjM0M2MtLjAxOC4yMjktLjEuMzUyLS4yMzIuMzdzLS4yNzgtLjA4MS0uNDIxLS4zYTQuMjg0LDQuMjg0LDAsMCwxLS40NDMtMS4xNzksNC4yODMsNC4yODMsMCwwLDEtLjE5NC0xLjI3MkMyNi40NjgsMTIuNDM4LDI2LjUzOSwxMi4yOTEsMjYuNjY2LDEyLjIzNlptLjEzMS41cS0uMDQ2LjAxOC0uMDY0LjFhLjgyOS44MjksMCwwLDAsLjAwOS4yNjYsNy44NTYsNy44NTYsMCwwLDAsLjE3OC43NzlxLjE0My41NDEuMjIxLjczOGEuOTQ3Ljk0NywwLDAsMCwuMTM0LjI1OC4xMTkuMTE5LDAsMCwwLC4xLjA1MnEuMDQ4LS4wMDkuMDY4LS4wODVhLjc2Mi43NjIsMCwwLDAtLjAwOC0uMjYyLDguMTE3LDguMTE3LDAsMCwwLS4xODItLjhxLS4xNDgtLjU1Ny0uMjI3LS43NTdhLjg5Mi44OTIsMCwwLDAtLjEzMy0uMjU2UTI2Ljg0MywxMi43MTQsMjYuOCwxMi43MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjY4MSwxMS44Yy4xMjctLjA1NS4yNTcuMDIzLjM5My4yMzRhNS40MzEsNS40MzEsMCwwLDEsLjUwOSwxLjM4NSw1LjQ2Nyw1LjQ2NywwLDAsMSwuMjQ0LDEuNDZjLS4wMTMuMjQ5LS4wODguMzgxLS4yMjQuNHMtLjI4MS0uMDkyLS40My0uMzI4YTUuMTEsNS4xMSwwLDAsMS0uNDczLTEuMjk0LDUuMSw1LjEsMCwwLDEtLjIyNS0xLjM4OEMyNy40ODYsMTIuMDA4LDI3LjU1NSwxMS44NTEsMjcuNjgxLDExLjhabS4xNDQuNTQycS0uMDQ2LjAxOC0uMDYyLjEwNmEuOTcuOTcsMCwwLDAsLjAxNS4yODlxLjA0LjI1OS4yLjg1MXQuMjQuODA3YTEuMTEyLDEuMTEyLDAsMCwwLC4xNC4yODRxLjA1Ny4wNjcuMTA2LjA1OXQuMDY2LS4wOTFhLjkuOSwwLDAsMC0uMDE0LS4yODRxLS4wNC0uMjYtLjItLjg2N3QtLjI0NS0uODI3YTEuMDUzLDEuMDUzLDAsMCwwLS4xNC0uMjgxUTI3Ljg3MSwxMi4zMiwyNy44MjUsMTIuMzM4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yOS45MTUsMTUuMDM0bC0uMjcuMDM3LS43MDYtMi42NjFhMS40NzgsMS40NzgsMCwwLDEtLjE5Mi42MzZsLS4xNjYtLjYyNUExLjI0OCwxLjI0OCwwLDAsMCwyOC43MDgsMTJhMi4yMTQsMi4yMTQsMCwwLDAsMC0uNjUzbC4yLS4wODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI5LjcxMiwxMC45MjFjLjEyNy0uMDU0LjI2My4wNDMuNDA5LjI5NGE3LjM0NSw3LjM0NSwwLDAsMSwuNTcyLDEuNjE5QTcuMzgyLDcuMzgyLDAsMCwxLDMxLDE0LjUyN2MwLC4yODgtLjA3Mi40NC0uMjA5LjQ1OHMtLjI4Ni0uMTE0LS40NDctLjM5M2E2Ljk4NCw2Ljk4NCwwLDAsMS0uNTM1LTEuNTI0LDYuOTQ0LDYuOTQ0LDAsMCwxLS4yODctMS42MjFDMjkuNTIzLDExLjE1MSwyOS41ODYsMTAuOTc1LDI5LjcxMiwxMC45MjFabS4xNjguNjMzcS0uMDQ2LjAxOC0uMDU5LjExOWExLjI4NywxLjI4NywwLDAsMCwuMDI3LjMzNHEuMDUxLjMuMjM1Ljk5NHQuMjc3Ljk0NmExLjQ4NCwxLjQ4NCwwLDAsMCwuMTU0LjMzNHEuMDYuMDguMTA5LjA3MXQuMDYzLS4xYTEuMiwxLjIsMCwwLDAtLjAyNi0uMzNxLS4wNTEtLjMtLjIzOS0xLjAxMXQtLjI4Mi0uOTY1YTEuNDIsMS40MiwwLDAsMC0uMTUzLS4zMzJRMjkuOTI2LDExLjUzNiwyOS44OCwxMS41NTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjE2NywxNi4zNjJhLjQyMi40MjIsMCwwLDEsLjMxOC4xODUsMS4wMDUsMS4wMDUsMCwwLDEtLjI3NywxLjAzLjQyLjQyLDAsMCwxLS4zNjYsMCwuNTkuNTksMCwwLDEtLjMxMS0uMjYxLjgwOC44MDgsMCwwLDEsLjI1NC0uODkzQS41NjEuNTYxLDAsMCwxLDIxLjE2NywxNi4zNjJabS0uMDUxLjE4OWEuMTc1LjE3NSwwLDAsMC0uMTkyLjA4NywxLjQ4NywxLjQ4NywwLDAsMC0uMTU1LjU2Ny4yMTYuMjE2LDAsMCwwLC4wMzkuMTI0LjE5MS4xOTEsMCwwLDAsLjA4NC4wNTguMTQ1LjE0NSwwLDAsMCwuMTg4LS4wNjksMS42NjYsMS42NjYsMCwwLDAsLjE2NC0uNi4xODkuMTg5LDAsMCwwLS4wNC0uMTIxQS4xNjMuMTYzLDAsMCwwLDIxLjExNywxNi41NTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTIyLjM3NiwxNi41NDhhLjM4Mi4zODIsMCwwLDEsLjMxMS4yMTIsMS4wMjQsMS4wMjQsMCwwLDEtLjAxOS42NiwxLjAyMiwxLjAyMiwwLDAsMS0uMzE1LjU4MS4zOC4zOCwwLDAsMS0uMzczLjAyNS41MzMuNTMzLDAsMCwxLS4zLS4yOSwxLjE4OSwxLjE4OSwwLDAsMSwuMzA5LTEuMUEuNS41LDAsMCwxLDIyLjM3NiwxNi41NDhabS0uMDYyLjIzYS4xNjcuMTY3LDAsMCwwLS4xLjAxMy4yMzUuMjM1LDAsMCwwLS4xLjEsMi4yMTksMi4yMTksMCwwLDAtLjE4OS42OTQuMjY5LjI2OSwwLDAsMCwuMDMzLjE0Ny4xNjcuMTY3LDAsMCwwLC4wODMuMDY0LjE0My4xNDMsMCwwLDAsLjEsMCwuMjA2LjIwNiwwLDAsMCwuMDk0LS4xLDIuNDM2LDIuNDM2LDAsMCwwLC4yLS43MjcuMjQuMjQsMCwwLDAtLjAzNC0uMTQ0QS4xNDEuMTQxLDAsMCwwLDIyLjMxNCwxNi43NzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTIzLjM3LDE4LjU0MWwtLjI4MS0uMTEuMzI4LTEuMjI1YTEsMSwwLDAsMS0uNDQyLjE1MmwuMDc1LS4yODFhLjg4MS44ODEsMCwwLDAsLjI5Mi0uMS42OC42OCwwLDAsMCwuMjU5LS4yMzhsLjI0Mi4wMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI0Ljc5MywxNi45MTlhLjM0OC4zNDgsMCwwLDEsLjMuMjY2LDEuNzUxLDEuNzUxLDAsMCwxLS4wNzUuODcsMS43NDksMS43NDksMCwwLDEtLjM3MS43OTEuMzQ1LjM0NSwwLDAsMS0uMzg4LjA3OC40ODguNDg4LDAsMCwxLS4yODgtLjM0OCwxLjU4NywxLjU4NywwLDAsMSwuMDY3LS43OSwxLjU3NywxLjU3NywwLDAsMSwuMzU0LS43MjdBLjQ1Ny40NTcsMCwwLDEsMjQuNzkzLDE2LjkxOVptLS4wODQuMzEyYS4xNDMuMTQzLDAsMCwwLS4xMDcuMDI1LjM1My4zNTMsMCwwLDAtLjEwNi4xNDEsNC4xMjYsNC4xMjYsMCwwLDAtLjI1Ny45NDguNDA4LjQwOCwwLDAsMCwuMDIxLjE5Mi4xNDMuMTQzLDAsMCwwLC4wOC4wNzUuMTIuMTIsMCwwLDAsLjEtLjAxMS4zMTguMzE4LDAsMCwwLC4xMDUtLjEzNyw0LjQxOCw0LjQxOCwwLDAsMCwuMjY2LS45ODEuMzc0LjM3NCwwLDAsMC0uMDIyLS4xODlBLjExOS4xMTksMCwwLDAsMjQuNzEsMTcuMjMxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNS42NDksMTkuNDNsLS4yODEtLjExLjQyOC0xLjZhMS4wMzMsMS4wMzMsMCwwLDEtLjQ2Mi4yMjdsLjEtLjM3MWEuOS45LDAsMCwwLC4zLS4xNTEuOTMuOTMsMCwwLDAsLjI4MS0uMzIxbC4yNDIuMDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4yMTEsMTcuMjkxYS4zNDQuMzQ0LDAsMCwxLC4yODIuMzE5LDIuNjkyLDIuNjkyLDAsMCwxLS4xMzEsMS4wOCwyLjY5LDIuNjksMCwwLDEtLjQyNywxLC4zNC4zNCwwLDAsMS0uNC4xMy40ODcuNDg3LDAsMCwxLS4yNzMtLjQwNSwyLjQ5NCwyLjQ5NCwwLDAsMSwuMTIyLTEsMi40NywyLjQ3LDAsMCwxLC40MS0uOTM3QS40NTEuNDUxLDAsMCwxLDI3LjIxMSwxNy4yOTFabS0uMTA2LjM5NGEuMTMzLjEzMywwLDAsMC0uMTEuMDM2LjUwOS41MDksMCwwLDAtLjExNy4xODIsNi42MjIsNi42MjIsMCwwLDAtLjMyNSwxLjIuNTkxLjU5MSwwLDAsMCwuMDA5LjIzNy4xMzMuMTMzLDAsMCwwLC4wNzcuMDg2LjExLjExLDAsMCwwLC4xMDctLjAyMy40NjUuNDY1LDAsMCwwLC4xMTYtLjE3OCw0LjYzOSw0LjYzOSwwLDAsMCwuMi0uNjE5LDQuNjU4LDQuNjU4LDAsMCwwLC4xMzYtLjYxNS41NTIuNTUyLDAsMCwwLS4wMS0uMjM1QS4xMS4xMSwwLDAsMCwyNy4xMDUsMTcuNjg1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNy45MjcsMjAuMzJsLS4yODEtLjExLjUyOC0xLjk3MWExLjEzNCwxLjEzNCwwLDAsMS0uNDgyLjNsLjEyMy0uNDZhLjk3Mi45NzIsMCwwLDAsLjMxNy0uMiwxLjI0OCwxLjI0OCwwLDAsMCwuMy0uNGwuMjQyLjAzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjguOTUzLDIwLjcyMWwtLjI4MS0uMTEuNTczLTIuMTM5YTEuMiwxLjIsMCwwLDEtLjQ5MS4zMzZsLjEzNC0uNWExLjAyLDEuMDIsMCwwLDAsLjMyMy0uMjIsMS40MTMsMS40MTMsMCwwLDAsLjMxNC0uNDRsLjI0Mi4wMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTMwLjcxNywxNy44M2MuMTUxLjAyMy4yMzguMTU1LjI2Mi40YTQuNDM2LDQuNDM2LDAsMCwxLS4yMTMsMS4zODUsNC40MzQsNC40MzQsMCwwLDEtLjUwOSwxLjMwN2MtLjE0LjE5NS0uMjguMjYzLS40MjIuMjA3cy0uMjI2LS4yMi0uMjUtLjQ4OWE0LjE5NCw0LjE5NCwwLDAsMSwuMi0xLjMsNC4xNDMsNC4xNDMsMCwwLDEsLjQ5Mi0xLjI0MUMzMC40MiwxNy45LDMwLjU2NiwxNy44MDcsMzAuNzE3LDE3LjgzWm0tLjEzNy41MTNhLjEzMi4xMzIsMCwwLDAtLjExNS4wNTMuOC44LDAsMCwwLS4xMzMuMjQxLDcuNTg3LDcuNTg3LDAsMCwwLS4yNDQuNzkxLDcuNTM5LDcuNTM5LDAsMCwwLS4xOC43NzkuOTMuOTMsMCwwLDAtLjAwOS4zLjEzMS4xMzEsMCwwLDAsLjA3My4xLjEwOC4xMDgsMCwwLDAsLjExMS0uMDM5Ljc0Mi43NDIsMCwwLDAsLjEzMi0uMjM3LDcuOCw3LjgsMCwwLDAsLjI0OC0uODA2LDcuODM1LDcuODM1LDAsMCwwLC4xODUtLjguODg0Ljg4NCwwLDAsMCwuMDA4LS4zUTMwLjYzMywxOC4zNTMsMzAuNTgsMTguMzQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPlwiLFxuXHRcIkVkaXRvckNvbmZpZ1wiOiBcIjxwYXRoIGQ9XFxcIk04LjcwOSwxOC4zNTFhMS4yNjcsMS4yNjcsMCwwLDAsLjUzMi0xLjM3OUM4LjY5MiwxNy4yMDcsOC43MTgsMTcuNzQ5LDguNzA5LDE4LjM1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlM2UzZjhcXFwiLz48cGF0aCBkPVxcXCJNMTQuOTI0LDE5Ljg1MmEuODcxLjg3MSwwLDAsMCwuNjItMS4xMzVBMS40MywxLjQzLDAsMCwwLDE0LjkyNCwxOS44NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTNlM2Y4XFxcIi8+PHBhdGggZD1cXFwiTTIuNzEzLDI3LjA3OWExLjUzOCwxLjUzOCwwLDAsMCwuNTI0LDEuMzUzYzEuNDE0Ljc5NCw2LjM3Mi4xNzUsOC4wNTYtLjJhMTQuOTk0LDE0Ljk5NCwwLDAsMCwyLjQyNi0xLjIxMywyMi42NDMsMjIuNjQzLDAsMCwwLDQuNzEzLTIuNTU3YzEuMDgyLS43OTQsMi44LTMuMDI5LDIuOTg1LTQuMzY0bC0xLjQ3NS0uMzMyYy0uMDM1LDEuNS0uMzc1LDEuODQyLTEuNzExLDIuMTkxYTEwLjY2MiwxMC42NjIsMCwwLDEtMy41Ny4xNCwzLjM2MiwzLjM2MiwwLDAsMS0yLjMxMy0xLjU2MmMtMS4wNjUtMS40MTQuMjM2LTIuNC0xLjQ0OS0yLjUtMS43NzIsMi4xNzMtNC45LjYxMS02LjI2Ny4zOTNhMzAuMDY2LDMwLjA2NiwwLDAsMC0xLjkzOCw3LjYsMi43NDgsMi43NDgsMCwwLDEsMi4xMzguMzIzYzIuNjg4LDEuMDM5LjM0LDEuOTU1LS43MzMsMS42ODVDMy4zNjgsMjcuODY0LDMuMTQxLDI3LjM4NCwyLjcxMywyNy4wNzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmZGZkXFxcIi8+PHBhdGggZD1cXFwiTTYuMjMxLDE0LjUzN2ExMS41MzksMTEuNTM5LDAsMCwxLDIuOTg1LDEuMTI2YzEuNTEuNzUxLDEuNzgxLjY0NiwxLjkyLDEuNjkzLjAxNy4xOTItLjAxNy4zLjUzMi40NzEuOTI1LjI4OC0uNTMyLS4yMjcsMS45NDYtLjIxOEExNi42NCwxNi42NCwwLDAsMSwxOS41NTksMTguOWMuNDU0LjI4OC4zNjcuNjU1LDEuOS42MTFhMTguNzY3LDE4Ljc2NywwLDAsMC0xLjItNi4xNjJjLS44NjQtMi4wMDctMi4wMDctMi4zMTMtNC4zMzgtMy4wNjQtMS4zNjItLjQzNi01LjM1OS0uOTE2LTYuNi0uMTQ4LTEuMTYxLjcyNC0xLjM3OSwxLjU4OS0yLjQ2MSwzLjEwN0E1LjM2Niw1LjM2NiwwLDAsMCw2LjIzMSwxNC41MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmZGZkXFxcIi8+PHBhdGggZD1cXFwiTTE1Ljg0LDE4LjI0NmMuODczLjM1OC0uMDQ0LDIuNjcxLTEuMjU3LDIuMTEyLS4zOTMtMS4xMDguNTQxLTEuNzM3Ljc5NC0yLjIzNGE4LjUxLDguNTEsMCwwLDAtMi40NjEtLjE0OGMtLjU3Ni4yMTgtLjcwNywxLjQ0OS0uNDEsMi4wMjUsMS40LDIuNzQxLDcuNTY3LDIuMTU2LDYuOTEzLjAyNi0uMjYyLS44NjQtLjUwNi0xLTEuMzg4LTEuM0E2Ljg4NSw2Ljg4NSwwLDAsMCwxNS44NCwxOC4yNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmZGZkXFxcIi8+PHBhdGggZD1cXFwiTTQuODY5LDE3Ljk0MWMuNy42NzIsMi4yNzguNzc3LDMuMy44MjlDOC4zLDE3LjQxNyw4LjQxMywxNi40LDkuNSwxNi40ODNhMS42LDEuNiwwLDAsMS0uMzA1LDIuMTMsMS4zODYsMS4zODYsMCwwLDAsMS4zNjItMS43NjMsMTQuNTQyLDE0LjU0MiwwLDAsMC00LjQ2LTEuODk0QTkuNTA2LDkuNTA2LDAsMCwwLDQuODY5LDE3Ljk0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNMy4yMjgsMjYuNTgxYy41NzYtLjA1MiwyLjA3Ny4zODQsMi4yLjg3M0M0LjQ5NCwyNy41NjgsMy4zMDcsMjcuNDgsMy4yMjgsMjYuNTgxWm0tLjUxNS41Yy40MjguMzA1LjY1NS43ODYsMS4zODguOTYsMS4wNzQuMjcxLDMuNDIxLS42NDYuNzMzLTEuNjg1QTIuNzQ4LDIuNzQ4LDAsMCwwLDIuNywyNi4wMzJhMzAuMDY2LDMwLjA2NiwwLDAsMSwxLjkzOC03LjZjMS4zNy4yMTgsNC40OTUsMS43ODEsNi4yNjctLjM5MywxLjY4NS4xLjM4NCwxLjA4MiwxLjQ0OSwyLjVBMy4zNjIsMy4zNjIsMCwwLDAsMTQuNjYyLDIyLjFhMTAuNjYyLDEwLjY2MiwwLDAsMCwzLjU3LS4xNGMxLjMzNS0uMzQ5LDEuNjc2LS42OSwxLjcxMS0yLjE5MWwxLjQ3NS4zMzJjLS4xODMsMS4zMzUtMS45LDMuNTctMi45ODUsNC4zNjRhMjIuNjQzLDIyLjY0MywwLDAsMS00LjcxMywyLjU1NywxNC45OTQsMTQuOTk0LDAsMCwxLTIuNDI2LDEuMjEzYy0xLjY4NS4zNzUtNi42NDIsMS04LjA1Ni4yQTEuNTM4LDEuNTM4LDAsMCwxLDIuNzEzLDI3LjA3OVptMTIuMjExLTcuMjI3YTEuNDMsMS40MywwLDAsMSwuNjItMS4xMzVBLjg3MS44NzEsMCwwLDEsMTQuOTI0LDE5Ljg1MlptLjkxNi0xLjYwNmE2Ljg4NSw2Ljg4NSwwLDAsMSwyLjE5MS40OGMuODgyLjMsMS4xMjYuNDM2LDEuMzg4LDEuMy42NTUsMi4xMy01LjUxNiwyLjcxNC02LjkxMy0uMDI2LS4zLS41NzYtLjE2Ni0xLjgwNy40MS0yLjAyNWE4LjUxLDguNTEsMCwwLDEsMi40NjEuMTQ4Yy0uMjUzLjUtMS4xODcsMS4xMjYtLjc5NCwyLjIzNEMxNS44LDIwLjkxNywxNi43MTMsMTguNiwxNS44NCwxOC4yNDZabS03LjEzMS4xYy4wMDktLjYtLjAxNy0xLjE0My41MzItMS4zNzlBMS4yNjcsMS4yNjcsMCwwLDEsOC43MDksMTguMzUxWm0tMy44NC0uNDFhOS41MDYsOS41MDYsMCwwLDEsMS4yMjItMi45ODUsMTQuNTQyLDE0LjU0MiwwLDAsMSw0LjQ2LDEuODk0QTEuMzg2LDEuMzg2LDAsMCwxLDkuMTksMTguNjEzYTEuNiwxLjYsMCwwLDAsLjMwNS0yLjEzYy0xLjA4Mi0uMDc5LTEuMi45MzQtMS4zMjcsMi4yODdDNy4xNDcsMTguNzE3LDUuNTY3LDE4LjYxMyw0Ljg2OSwxNy45NDFaTTQsMTcuMjQyYy0uMzIzLS44OS0uMzIzLTIuMjc4LDEuMDQ3LTIuMzkybC0uNywxLjk0NkM0LjE2MiwxNy4yMTYsNC4xNjIsMTcuMTIsNCwxNy4yNDJabTIuMjM0LTIuNzA2YTUuMzY2LDUuMzY2LDAsMCwxLC42MjgtMS4yOTJjMS4wODItMS41MTksMS4zLTIuMzgzLDIuNDYxLTMuMTA3LDEuMjM5LS43NjgsNS4yMzctLjI4OCw2LjYuMTQ4LDIuMzMuNzUxLDMuNDc0LDEuMDU2LDQuMzM4LDMuMDY0YTE4Ljc2NywxOC43NjcsMCwwLDEsMS4yLDYuMTYyYy0xLjUzNi4wNDQtMS40NDktLjMyMy0xLjktLjYxMWExNi42NCwxNi42NCwwLDAsMC01Ljk0NC0xLjI5MmMtMi40NzktLjAwOS0xLjAyMS41MDYtMS45NDYuMjE4LS41NS0uMTc1LS41MTUtLjI3OS0uNTMyLS40NzEtLjE0LTEuMDQ3LS40MS0uOTQzLTEuOTItMS42OTNBMTEuNTM5LDExLjUzOSwwLDAsMCw2LjIzMSwxNC41MzdabTE1LjQ0OS0uNDI4Yy0uMTY2LS41NS4xNC0uNTE1LjY3Mi0uODlhOS4wMjEsOS4wMjEsMCwwLDEsLjkyNS0uNjU1YzEuNDA1LS43ODYsNC4wMjQtLjkxNiw1LjE0MS4wMTdBMi40NzksMi40NzksMCwwLDEsMjkuNSwxNC42NWE1LjgzOCw1LjgzOCwwLDAsMS0yLjYxOCwzLjgzMiw1LjIxMyw1LjIxMywwLDAsMS00Ljc4MywxLjJjLS4xNTctLjM4NC0uMDM1LTIuODE5LS4yMTgtMy43MTgtLjE2Ni0uOC0uMDc5LS44OS4zODQtMS4zNywxLjM2Mi0xLjQxNCw0LjMxMi0yLjQ0NCw1Ljk4OC0xLjIzMS43MDcuNTI0LjUwNi43MjQuODczLDEuMTI2LjQ1NC0uNDg5LS4zOTMtMi4xMy0zLjUxNy0yLjAyNUMyMy40ODYsMTIuNTI5LDIyLjU3LDE0LjE4NywyMS42OCwxNC4xMDlaTTguOTcxLDkuMTQzYTguMDk0LDguMDk0LDAsMCwxLDIuMjc4LTQuNkMxMi42LDMuNSwxNC4wMTYsMi41MDksMTYuMDk0LDMuNjg3Yy41MTUuMjg4LjQ4OS40MzYuNTQxLDEuMTUyYTMuMzEyLDMuMzEyLDAsMCwxLS4xOTIsMS41Yy0xLjM3OSw0LjQ1MS0yLjUzMSwxLjg5NC02Ljk0OCwyLjk1YTYuMzc0LDYuMzc0LDAsMCwxLDIuMTIxLTMuNDEzYzEuMi0xLjE2MSwyLjA2LTEuOTExLDMuODU4LTEuNjY3YTEuODQyLDEuODQyLDAsMCwxLS4wNTIsMi4zMjJjLS44LDEuMjkyLTEsMS4yMTMtLjg4MiwyLjA5NS42MjgtLjE1Ny44Mi0uNzY4LDEuMTA4LTEuMzc5LDEuNzU0LTMuNjY2LS43OTQtNC4xMTEtMi4zNTctMy40MzlBMTAuMzcyLDEwLjM3MiwwLDAsMCw5Ljc2Niw3LjU1NGMtLjEyMi4yNDQtLjI1My41NTktLjM2Ny44MjlabTYuOTEzLjE4M0MxNi4wNjcsOC4yMzUsMTcuMTUsNy45NjQsMTcuMTUsNC42YzAtMS40NDktMS43ODEtMi43NDktNC4xMTEtMS43ODEtMiwuODItMi4zLDEuNDQ5LTMuMzY5LDMuMDU1LTEsMS41MTktLjk2OSwzLjE4Ni0xLjgzMyw0LjU5MS0uMjUzLjQtLjQ4LjU0MS0uNzU5Ljk0My0uMi4zLS4zNDkuNjcyLS41NSwxLjAyMUExMi45NCwxMi45NCwwLDAsMCw1LjM2NywxNC40Yy0xLjA0Ny4wMjYtMS45MjkuMDQ0LTIuMDM0LDEuMTI2LS4xNCwxLjQ4NC41NTksMS44NS41NTksMi40MDktLjAwOS42LTIuNDUzLDYuNjc3LTEuNzcyLDEwLjMuMTkyLDEsLjg0NywxLDEuODk0LDEuMTI2YTE3LjkzLDE3LjkzLDAsMCwwLDguMDU2LS43MDdsNC4xLTEuOTY0YTE4Ljg1LDE4Ljg1LDAsMCwwLDMuNTYxLTIuNSwxMi4zODMsMTIuMzgzLDAsMCwwLDEuMzA5LTEuNzE5LDMuMjEzLDMuMjEzLDAsMCwwLC44LTIuMjA4LDguNDczLDguNDczLDAsMCwxLDIuOTg1LDFjLS4wNjEuNi0uMzU4LjMxNC0uMzU4Ljg1NWExLjM1NSwxLjM1NSwwLDAsMCwxLjA0Ny0uODljLS4zNTgtLjUyNC0uNzMzLS40MzYtMS4yNDgtLjg1NWE4LjIxMiw4LjIxMiwwLDAsMSwxLjcxOS0uNzA3YzEuMjIyLS41MDYsMy4zMDgtMi4wNDIsMy44MjMtMy40MzlhNC40NDksNC40NDksMCwwLDAtLjU1OS0zLjczNiw1LjQ0NCw1LjQ0NCwwLDAsMC0zLjY0OC0xLjE2MWMtMS41OCwwLTMuMjEyLDEuMTM1LTQuNDg2LDEuNjIzLS40ODktLjQyOC0uNTI0LS45MTYtLjg4Mi0xLjM4OEExMi4yODEsMTIuMjgxLDAsMCwwLDE1Ljg4NCw5LjMyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMjAyMDJcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjgsMTQuMTA5Yy44OS4wNzksMS44MDctMS41OCwzLjkyOC0xLjY1LDMuMTI1LS4xLDMuOTcxLDEuNTM2LDMuNTE3LDIuMDI1LS4zNjctLjQtLjE2Ni0uNi0uODczLTEuMTI2LTEuNjc2LTEuMjEzLTQuNjI2LS4xODMtNS45ODgsMS4yMzEtLjQ2My40OC0uNTUuNTY3LS4zODQsMS4zNy4xODMuOS4wNjEsMy4zMzQuMjE4LDMuNzE4YTUuMjEzLDUuMjEzLDAsMCwwLDQuNzgzLTEuMkE1LjgzOCw1LjgzOCwwLDAsMCwyOS41LDE0LjY1YTIuNDc5LDIuNDc5LDAsMCwwLTEuMDgyLTIuMDY5Yy0xLjExNy0uOTM0LTMuNzM2LS44LTUuMTQxLS4wMTdhOS4wMjEsOS4wMjEsMCwwLDAtLjkyNS42NTVDMjEuODE5LDEzLjU5NCwyMS41MTQsMTMuNTU5LDIxLjY4LDE0LjEwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGYyZjJcXFwiLz48cGF0aCBkPVxcXCJNOC45NzEsOS4xNDMsOS40LDguMzgzYy4xMTMtLjI3MS4yNDQtLjU4NS4zNjctLjgyOUExMC4zNzIsMTAuMzcyLDAsMCwxLDEzLjI5MiwzLjgxYzEuNTYyLS42NzIsNC4xMTEtLjIyNywyLjM1NywzLjQzOS0uMjg4LjYxMS0uNDgsMS4yMjItMS4xMDgsMS4zNzktLjEyMi0uODgyLjA3OS0uOC44ODItMi4wOTVhMS44NDIsMS44NDIsMCwwLDAsLjA1Mi0yLjMyMmMtMS44LS4yNDQtMi42NjIuNTA2LTMuODU4LDEuNjY3QTYuMzc0LDYuMzc0LDAsMCwwLDkuNSw5LjI5MWM0LjQxNi0xLjA1Niw1LjU2OSwxLjUsNi45NDgtMi45NWEzLjMxMiwzLjMxMiwwLDAsMCwuMTkyLTEuNWMtLjA1Mi0uNzE2LS4wMjYtLjg2NC0uNTQxLTEuMTUyLTIuMDc3LTEuMTc4LTMuNDkxLS4xOTItNC44NDQuODU1QTguMDk0LDguMDk0LDAsMCwwLDguOTcxLDkuMTQzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZlZjNmM1xcXCIvPjxwYXRoIGQ9XFxcIk00LDE3LjI0MmMuMTY2LS4xMjIuMTY2LS4wMjYuMzQ5LS40NDVsLjctMS45NDZDMy42NzMsMTQuOTY0LDMuNjczLDE2LjM1Miw0LDE3LjI0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZmVmZWZcXFwiLz48cGF0aCBkPVxcXCJNNS40MjgsMjcuNDU0Yy0uMTIyLS40ODktMS42MjMtLjkyNS0yLjItLjg3M0MzLjMwNywyNy40OCw0LjQ5NCwyNy41NjgsNS40MjgsMjcuNDU0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZjFmMVxcXCIvPlwiLFxuXHRcIkVKU1wiOiBcIjxwYXRoIGQ9XFxcIk0yLDE3LjY3MlYxNC4zMjhsMTEuODYtNi4yVjExLjJMNS4xLDE1LjkzOWw4Ljc2Miw0LjgzNXYzLjFabTI3LjgxNC04Ljg4TDE5LjQ2NSwyMy4yMjlIMTUuOTEyTDI2LjI4MSw4Ljc5MVpNMjYuOTQ3LDIxLjVhLjc5NC43OTQsMCwwLDAsLjYxOS0uMjc4LDEuMDYxLDEuMDYxLDAsMCwwLC4yNDgtLjczMiwxLjE0MSwxLjE0MSwwLDAsMC0uMjQ4LS43NTMuNzY4Ljc2OCwwLDAsMC0xLjIxNywwLDEuMTQxLDEuMTQxLDAsMCwwLS4yNDguNzUzLDEuMDksMS4wOSwwLDAsMCwuMjM3LjczMkEuNzYzLjc2MywwLDAsMCwyNi45NDcsMjEuNVptMi4xODYsMS4wNDJhMy4yMzcsMy4yMzcsMCwwLDEtNC4zNTItLjAxLDIuODY0LDIuODY0LDAsMCwxLDAtNC4xLDMuMjIzLDMuMjIzLDAsMCwxLDQuMzUyLDBBMi43NzMsMi43NzMsMCwwLDEsMzAsMjAuNDg2LDIuNzQsMi43NCwwLDAsMSwyOS4xMzQsMjIuNTM4Wk0xOC44MjEsMTMuMDYxYS43OTQuNzk0LDAsMCwwLC42MTktLjI3OCwxLjA2MSwxLjA2MSwwLDAsMCwuMjQ4LS43MzIsMS4xNDEsMS4xNDEsMCwwLDAtLjI0OC0uNzUzLjc2OS43NjksMCwwLDAtMS4yMTcsMCwxLjE0MSwxLjE0MSwwLDAsMC0uMjQ4Ljc1MywxLjA5LDEuMDksMCwwLDAsLjIzNy43MzJBLjc2My43NjMsMCwwLDAsMTguODIxLDEzLjA2MVpNMjEuMDA3LDE0LjFhMy4yMzcsMy4yMzcsMCwwLDEtNC4zNTItLjAxLDIuODY0LDIuODY0LDAsMCwxLDAtNC4xLDMuMjIzLDMuMjIzLDAsMCwxLDQuMzUyLDAsMi43NzMsMi43NzMsMCwwLDEsLjg2NiwyLjA2M0EyLjc0LDIuNzQsMCwwLDEsMjEuMDA3LDE0LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTBhOTNhXFxcIi8+XCIsXG5cdFwiRWxpeGlyXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTcuMjQ5XFxcIiB5MT1cXFwiLTMzNS41OTdcXFwiIHgyPVxcXCIxNC45NzNcXFwiIHkyPVxcXCItMzA5Ljk5NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgLTMwNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y3ZjZmOFxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjA0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWE5Y2IzXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMzlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMlxcXCIgc3RvcC1jb2xvcj1cXFwiIzZmNTY3ZVxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjY2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMyXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDUyNDU5XFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuODZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJkMDg0M1xcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjYwMDNkXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9lbGl4aXI8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNy44LDguNTkxYzIuMDc5LDQuNTg0LDcuNjQsNi41LDcuMTQxLDEyLjQ3NC0uNTgyLDcuMDE3LTUuNTUxLDguNzg0LTguMzE2LDguOTA5YTguODE1LDguODE1LDAsMCwxLTkuNC03LjQ4NUM1LjYxOCwxNS4wNDYsMTIuNjU1LDMuNjMyLDE2LjcwOSwyQTE1LjA4MywxNS4wODMsMCwwLDAsMTcuOCw4LjU5MVptLS4xNjYsMTguODU3YS40MjMuNDIzLDAsMCwwLS4wNTctLjMyN2MtLjU5My0xLjEtNS44MS0xLjY0NS02LjkwNy0xLjc1MmE4LjI3Miw4LjI3MiwwLDAsMCwxLjYzNSwxLjMsNy43NjYsNy43NjYsMCwwLDAsMi44MTQsMS4wNDFDMTUuOTIyLDI3LjgzMSwxNy40NjcsMjcuOTMzLDE3LjYzNSwyNy40NDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2M2NDhmXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC4yNVxcXCI+PHBhdGggZD1cXFwiTTE4LjI0OCwxMC42MThjNC40Nyw0LjgyMyw2LjQ0NSw0Ljk3OSw2LjIzNywxMC40NzgtLjI0OSw2LjQ3Ni00LjU0Myw4LjE5MS03LjA1OCw4LjQyLTQuMi41NTEtNy40OTUtMS41MjgtOC4zNTgtNS42ODZDNy4zMTIsMTcuMDYzLDEyLjk3OCw2LjAyMywxNi42MzcsNC4zNkExNS4zMjMsMTUuMzIzLDAsMCwwLDE4LjI1OCwxMC42WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MDAzZFxcXCIvPjwvZz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjc1XFxcIj48cGF0aCBkPVxcXCJNMTcuMzg1LDkuOTIxQzIwLjM2OSwxNCwyNC4zMTksMTMuNywyNSwxOS42NDFjLjA5NCw2LjkyMy0zLjYsOS4yODMtNi4yMzcsOS45NDgtNC41LDEuMjc5LTguNTE0LS42NDUtMTAuMDk0LTUtMy4wMzUtNywyLjY1MS0xOC41MTQsNi4zMS0yMC45MTVhMTUuMDgzLDE1LjA4MywwLDAsMCwyLjM3LDYuMjM3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjwvZz5cIixcblx0XCJFbG1cIjogXCI8cGF0aCBkPVxcXCJNMTYsMTYuNzY4LDIuNzY4LDMwSDI5LjIzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ZmI0Y2JcXFwiLz48cGF0aCBkPVxcXCJNMjQuMTMsMjMuMzYyLDMwLDI5LjIzMlYxNy40OTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVhNDAwXFxcIi8+PHBhdGggZD1cXFwiTTE1LjIzMiwxNiwyLDIuNzY4VjI5LjIzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OTYyNzdcXFwiLz48cGF0aCBkPVxcXCJNMzAsMTQuNDQ4VjJIMTcuNTUyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzVmYjRjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4zOTIsOS4zNzZsNi41OTQsNi41OTQtNi42MjQsNi42MjRMMTYuNzY4LDE2Wk0yLjc2OCwyLDguODYzLDguMUgyMi4xMTFMMTYuMDE2LDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGNkNjM2XFxcIi8+PHBhdGggZD1cXFwiTTE2LDE1LjIzMmw2LjA1MS02LjA1MUg5Ljk0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWE0MDBcXFwiLz5cIixcblx0XCJFUkJcIjogXCI8cGF0aCBkPVxcXCJNNy4yNSwyNC43NWgxNy41TDEyLjUsMTIuNSw3LjI1LDE3Ljc1Wk0yLDMwSDMwVjJIMTZMMiwxNlptMjUuMzc1LTIuNjI1SDQuNjI1di0xMC41bDEyLjI1LTEyLjI1aDEwLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTIxYTFlXFxcIi8+XCIsXG5cdFwiRXJsYW5nXCI6IFwiPHBhdGggZD1cXFwiTTYuMzg4LDIzLjg2N2ExMS4wMTIsMTEuMDEyLDAsMCwxLTMuNDQxLTguMjM0LDEwLjc2NSwxMC43NjUsMCwwLDEsMi44NjQtNy41SDJ2MTUuNzNabTIwLjA2NiwwYTE2LjQ0LDE2LjQ0LDAsMCwwLDIuNTM3LTMuMTM2bC00LjIxOC0xLjg3M2E4LjMwNiw4LjMwNiwwLDAsMS02LjY0MSw0LjEyYy00LjM1OS0uMDE0LTYuMDcyLTMuMzI5LTYuMDYzLTcuNTg0SDI4LjM2YTYuNDY1LDYuNDY1LDAsMCwwLDAtLjkzNSw5LjA1Nyw5LjA1NywwLDAsMC0yLjAyOS02LjMyNkgzMHYxNS43M0gyNi40NTZaTTEyLjMzMiwxMS43NDJhMy43MjMsMy43MjMsMCwwLDEsMy45LTMuMjMsMy4yOSwzLjI5LDAsMCwxLDMuNTMyLDMuMjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojYTIwMDNlXFxcIi8+XCIsXG5cdFwiRiNcIjogXCI8cGF0aCBkPVxcXCJNMiwxNiwxNS4yODgsMi43MTJWOS4zNTZMOC42NDQsMTZsNi42NDQsNi42NDR2Ni42NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzc4YmJhXFxcIi8+PHBhdGggZD1cXFwiTTEwLjU0MiwxNmw0Ljc0Ni00Ljc0NnY5LjQ5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNzhiYmFcXFwiLz48cGF0aCBkPVxcXCJNMzAsMTYsMTYuMjM3LDIuNzEyVjkuMzU2TDIyLjg4MSwxNmwtNi42NDQsNi42NDR2Ni42NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzBiOWRiXFxcIi8+XCIsXG5cdFwiRmlyZXN0b3JlIHNlY3VyaXR5IHJ1bGVzXCI6IFwiPHBhdGggZD1cXFwiTTUuOCwyNC42bC4xNy0uMjM3TDEzLjk5LDkuMTQ5bC4wMTctLjE2MS0zLjUzNS02LjY0YS42NTYuNjU2LDAsMCwwLTEuMjI3LjIwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmMyNGFcXFwiLz48cGF0aCBkPVxcXCJNNS45LDI0LjQybC4xMjgtLjI1TDEzLjk2NSw5LjExNCwxMC40MzksMi40NDhhLjYuNiwwLDAsMC0xLjEzMy4yMDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZhNzEyXFxcIi8+PHBhdGggZD1cXFwiTTE2LjU4NCwxNC4wMWwyLjYzMi0yLjdMMTYuNTgzLDYuMjg5YS42NzguNjc4LDAsMCwwLTEuMTk1LDBMMTMuOTgxLDguOTcxVjkuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNGJkNjJcXFwiLz48cGF0aCBkPVxcXCJNMTYuNTM3LDEzLjksMTkuMSwxMS4yOCwxNi41MzcsNi40YS41ODkuNTg5LDAsMCwwLTEuMDc0LS4wNDdMMTQuMDQ5LDkuMDgybC0uMDQyLjEzOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmE1MGVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjUuODAyIDI0LjYwMSA1Ljg3OSAyNC41MjMgNi4xNTggMjQuNDEgMTYuNDE4IDE0LjE4OCAxNi41NDggMTMuODM0IDEzLjk4OSA4Ljk1NiA1LjgwMiAyNC42MDFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNjgyMGNcXFwiLz48cGF0aCBkPVxcXCJNMTYuOTEyLDI5Ljc1NiwyNi4yLDI0LjU3NywyMy41NDYsOC4yNDZBLjYzNS42MzUsMCwwLDAsMjIuNDcxLDcuOUw1LjgsMjQuNmw5LjIzMyw1LjE1NWExLjkyNywxLjkyNywwLDAsMCwxLjg3OCwwXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRlMDY4XFxcIi8+PHBhdGggZD1cXFwiTTI2LjExNSwyNC41MzQsMjMuNDgzLDguMzI2YS41NTcuNTU3LDAsMCwwLS45NjctLjM1M0w1LjksMjQuNTY5bDkuMTMxLDUuMWExLjkxMiwxLjkxMiwwLDAsMCwxLjg2MywwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZjY2EzZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi45MTIsMjkuNmExLjkyNywxLjkyNywwLDAsMS0xLjg3OCwwTDUuODc2LDI0LjUyMiw1LjgsMjQuNmw5LjIzMyw1LjE1NWExLjkyNywxLjkyNywwLDAsMCwxLjg3OCwwTDI2LjIsMjQuNTc3bC0uMDIzLS4xNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWFiMzdcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjIwMSAxMyAxNS40MDUgMTYuNTM0IDE1LjQwNSAyNy42MDMgMjEuNjI1IDI0Ljc4NSAyMS42MjUgMzEgMzEgMjYuNzQzIDMxIDE2LjUzNCAyMy4yMDEgMTNcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjIwMSAxNC43MyAxNi45ODUgMTcuNTQ5IDE2Ljk4NSAyMC4zMjcgMjMuMjAxIDE3LjUwNyAyOS40MjEgMjAuMzI3IDI5LjQyMSAxNy41NDkgMjMuMjAxIDE0LjczXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMy4yMDEgMTkuNTY0IDE2Ljk4NSAyMi4zODEgMTYuOTg1IDI1LjE1OCAyMy4yMDEgMjIuMzM3IDI5LjQyMSAyNS4xNTggMjkuNDIxIDIyLjM4MSAyMy4yMDEgMTkuNTY0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC42MDYgMjYuMDk4IDI1LjU1MSAyNC43MTIgMjMuMjAxIDI1Ljc3OCAyMy4yMDEgMjguNTQ4IDI4LjYwNiAyNi4wOThcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJGbG93XCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTY3LjkwN1xcXCIgeTE9XFxcIi0zMDguNTUxXFxcIiB4Mj1cXFwiLTY3Ljg1N1xcXCIgeTI9XFxcIi0zMDguNTY0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDg3LjgyMiwgMCwgMCwgLTg4LjUzMywgNTk4NC41MzIsIC0yNzI5MC42MTcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNDQxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZiMDQ3XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItNjcuNjc0XFxcIiB5MT1cXFwiLTMxMC4xMjFcXFwiIHgyPVxcXCItNjcuNjQ3XFxcIiB5Mj1cXFwiLTMxMC4wNjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODcuODIyLCAwLCAwLCAtODguNTMzLCA1OTY0LjY2NywgLTI3NDQzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDc1NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmYjUzMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiLTY3LjAyOVxcXCIgeTE9XFxcIi0zMTAuOTFcXFwiIHgyPVxcXCItNjcuMDI5XFxcIiB5Mj1cXFwiLTMxMC44NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg4Ny44MjIsIDAsIDAsIC04OC41MzMsIDU5MDIuOCwgLTI3NTE4LjczMylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ2NDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ0NDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmI1MzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi02Ni4yNTJcXFwiIHkxPVxcXCItMzEwLjM3N1xcXCIgeDI9XFxcIi02Ni4zMlxcXCIgeTI9XFxcIi0zMTAuMzYyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEwNi4xOTgsIDAsIDAsIC04OC41NTEsIDcwNDguNDI4LCAtMjc0NzQuMTY3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDQ0MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmYTgyOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZmxvdzwvdGl0bGU+PHBhdGggZD1cXFwiTTIzLjQyNiwyOS40MVYyMi4xNzJoLTcuMThsNy4xOCw3LjIzOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGY1MTtmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzFcXFwiLz48cGF0aCBkPVxcXCJNMjQuMjMxLDI1LjMwNlYxNy40NzdIMTYuNDY2bDcuNzY2LDcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4OTAwO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS41MTUsMjIuMTcxVjMwaDcuNzY2bC03Ljc2Ni03LjgyOVxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MTtmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjIuNjA4LDE4VjExLjgwOUgxNi40NjZMMjIuNjA4LDE4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkZjRmO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS41MjQsMTYuNTI1VjguN0gxNy43NTlsNy43NjYsNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC43OTk5OTk5NTIzMTYyODQ7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTEyLjI4OCwyVjkuODI5aDcuNzY2TDEyLjI4OCwyXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuODAwMDAwMDExOTIwOTI5O2ZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMSwxNC4yNjJWNi40MzNINC43MTlsNy43MzIsNy44MywxLjY1OSwwXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuODc5OTk5OTk1MjMxNjI4O2ZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMSwyOS45NThWMjAuNDg3SDQuNzE5bDkuMzkxLDkuNDcxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiNzAwO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMTIsMjIuMTE0VjE0LjI4NUg2LjM0Nmw3Ljc2Niw3LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjcwMDtmaWxsLW9wYWNpdHk6MC41XFxcIi8+PHBhdGggZD1cXFwiTTE2LjQ2NSwxMS44MDl2Ny44MjloNy43NjZsLTcuNzY2LTcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZjZDI1O2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4wOTIsMTIuNjkxVjQuODYySDYuMzI2bDcuNzY2LDcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4OTAwO2ZpbGwtb3BhY2l0eTowLjcwMDAwMDA0NzY4MzcxNlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yNDYsMjIuMTcxVjMwaDcuNzY2bC03Ljc2Ni03LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODkwMDtmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzFcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjEyMiAyMi4xNzIgMTguNjA5IDE5LjYzOCAxNi40NjUgMTkuNjM4IDE2LjQ2NiAxMS44MDkgMjAuODQ3IDExLjgwOSAxOC44ODIgOS44MjkgMTQuMDkyIDkuODI5IDE0LjExIDE0LjI2MiAxNC4xMSAyMC40ODcgMTQuMTEgMzAgMTYuMjQ2IDMwIDE2LjI0NiAyMi4xNzIgMjEuMTIyIDIyLjE3MlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIkZvcnRyYW5cIjogXCI8ZyBpZD1cXFwiZzM3NjhcXFwiPjxyZWN0IGlkPVxcXCJyZWN0ODgxXFxcIiB4PVxcXCIyLjM0XFxcIiB5PVxcXCIyLjM0XFxcIiB3aWR0aD1cXFwiMjcuMzNcXFwiIGhlaWdodD1cXFwiMjcuMzNcXFwiIHJ4PVxcXCI1LjA4XFxcIiBzdHlsZT1cXFwiZmlsbDojNzM0Zjk2XFxcIi8+PHBhdGggaWQ9XFxcInBhdGgxNDEyXFxcIiBkPVxcXCJNNi4wNiwyNS41YzAtMS4wOSwwLTEuMTkuMS0xLjE5bDEuMjUtLjA2YzEsMCwxLjE4LS4wNiwxLjQyLS4xOWEuNzQuNzQsMCwwLDAsLjM5LS4zN2MuMTItLjIzLjEyLS4yOS4xMi03LjcyLDAtNywwLTcuNS0uMS03LjY3YTEuMDYsMS4wNiwwLDAsMC0uNjMtLjUsMTAuMjMsMTAuMjMsMCwwLDAtMS4zOC0uMWwtMS4xNywwVjUuMzJIMjUuOTR2OC44MkgyNC44OWE4LjU2LDguNTYsMCwwLDEtMS4yLS4wNWMtLjE0LDAtLjE1LS4wNS0uMjItLjk1YTEyLjczLDEyLjczLDAsMCwwLS4zNS0yLjQzLDMuMjIsMy4yMiwwLDAsMC0yLjYzLTIuODFjLS41Ny0uMS0zLjEtLjItNS4xOS0uMkgxMy44N3Y2LjYzbC43NSwwQTYuMzMsNi4zMywwLDAsMCwxNi40OSwxNGExLjg4LDEuODgsMCwwLDAsLjg5LS45MSw1Ljg2LDUuODYsMCwwLDAsLjM5LTEuNzVjMC0uMzMuMDgtLjY2LjEtLjczczAtLjEzLDEuMTgtLjEzSDIwLjJWMjEuMDZIMTcuODVsMC0uNjFhNy44NSw3Ljg1LDAsMCwwLS41NC0yLjY2Yy0uMzYtLjY4LTEuMDUtMS0yLjQ1LTEuMDhsLS43Ni0uMDctLjIsMCwwLDMuMzRjMCwzLjUxLDAsMy42NS4zLDMuOTRzLjQzLjMyLDMuMjIuNDJjLjA1LDAsLjA3LjI4LjA3LDEuMTl2MS4xOEg2LjA2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjwvZz5cIixcblx0XCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCI6IFwiPHBhdGggZD1cXFwiTTI0LjAyMywyMC45LDI1LjQwOCwyM2w0LjYxNS03TDI1LjQwOCw5bC0xLjM4NSwyLjFMMjcuMjU1LDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTBiMlxcXCIvPjxwYXRoIGQ9XFxcIk03Ljk3NywxMS4xLDYuNTkyLDksMS45NzcsMTZsNC42MTUsNywxLjM4NS0yLjFMNC43NDUsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MGIyXFxcIi8+PHBhdGggZD1cXFwiTTEzLjAzNSw5aDIuOGwtLjQ5NCwyLjhoMi44TDE4LjYzNSw5aDIuOGwtLjQ5NCwyLjhoMi44bC0uNDk1LDIuOGgtMi44bC0uNDkzLDIuOGgyLjhsLS40OTQsMi44aC0yLjhMMTguOTY3LDIzaC0yLjhsLjQ5My0yLjgtMi44LDBMMTMuMzc1LDIzSDEwLjU2N2wuNDkzLTIuOC0yLjgsMCwuNDk0LTIuOGgyLjhsLjQ5My0yLjc5M2gtMi44TDkuNzQxLDExLjhoMi44Wm0xLjMxOSw4LjRoMi44bC40OTQtMi44aC0yLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MGIyXFxcIi8+XCIsXG5cdFwiR2FtZU1ha2VyIExhbmd1YWdlXCI6IFwiPHBhdGggZD1cXFwiTTE0LjIxNiwyNC4xNjdoLS45ODlhMy4yNCwzLjI0LDAsMCwxLTIuODExLTEuNjQ5TDYuNjY3LDE2bDQuNjgxLTguMTY3SDE2LjJsLTQuMzQsOC4xNzYuMDU3LjAzMkwxMy45MzYsMTkuNUgxNi44MlpNOC40NTUsMTAuNTM1bC0xLjI3LTIuMjFhMSwxLDAsMCwwLS44NTktLjQ5MkgybDQsNi45OTJaTTIxLjU0LDkuNDgyYTMuMjM5LDMuMjM5LDAsMCwwLTIuODEyLTEuNjQ5SDE3LjUyM0wxNS4wNDUsMTIuNUgxOC4wMkwyMC4wODMsMTZsLTQuNTMxLDguMTY3aDUuMDU2TDI1LjMzMywxNlpNMjYsMTcuMTcybC0yLjQ3LDQuMjcsMS4yODMsMi4yMzNhMSwxLDAsMCwwLC44NTkuNDkySDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhiYzM0YVxcXCIvPlwiLFxuXHRcIkctY29kZVwiOiBcIjxwYXRoIGQ9XFxcIk0xNy4zMzMsMTYuMzU2aDBMMTcuMzA5LDIwLjhsLTIuMS0xLjAxOC4wMjMtNC40MzdoMGwxMC41NTgtMy4wMzgsMi4xMDYsMS4wMTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGUwMDAwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjQ5MiwxOC41NzZhMTQuOTA5LDE0LjkwOSwwLDAsMS0xLjM0MywzLjA3NCw3Ljg2LDcuODYsMCwwLDEtMS4zOSwxLjgyOSw2LjgsNi44LDAsMCwxLTEuNywxLjMyNCw3LjQwNSw3LjQwNSwwLDAsMS0yLjAwNi44NTUsNiw2LDAsMCwxLTMuMDcyLjIzQTQuNjY4LDQuNjY4LDAsMCwxLDEyLjQ0LDI0LjY0YTUuMzIyLDUuMzIyLDAsMCwxLS42MzYtLjYyOWwtLjUwOC0uMjQ0YTQuNzE3LDQuNzE3LDAsMCwwLC40NTcuMTgxLDUuNTIsNS41MiwwLDAsMS0xLjAxNS0xLjc1OCw4LjEzNSw4LjEzNSwwLDAsMS0uNDMtMS41MzNjLS4wMjMtLjEzMS0uMDQzLS4yMzktLjA2MS0uMzRhNy4yOTIsNy4yOTIsMCwwLDAsLjM3NywxLjM1NCw1LjgzNiw1LjgzNiwwLDAsMCwxLjYxNCwyLjMxOWMuMDYuMDU0LjEyNy4xLjE5LjE0OC4wNC4wMDguMDc4LjAyMi4xMTkuMDI5YTYuNDU0LDYuNDU0LDAsMCwwLDIuOTI4LS4yMTksOC40LDguNCwwLDAsMCwxLjkxLS44MDcsNy42NTgsNy42NTgsMCwwLDAsMS41ODktMS4yMjcsOC42NjIsOC42NjIsMCwwLDAsMS4yOS0xLjY5LDEyLjY2NywxMi42NjcsMCwwLDAsMS4wMTktMi4xOTRMMjMuMywxOWMuMDU2LS4xNTMuMDkxLS4yNTQuMDkxLS4yNTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGUwMDAwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjUyNCw0LjAxM2ExMS42LDExLjYsMCwwLDAtNi41ODgtMS45OTQsMTMuOCwxMy44LDAsMCwwLTkuMzczLDQuODRBMTguMjQzLDE4LjI0MywwLDAsMCw0LDE4LjhjLjAyMSwzLjg1MSwxLjQ4MSw3LjgwNiw1LjExMiw5LjU3NWExMy41NjMsMTMuNTYzLDAsMCwwLDQuMTU5LDEuNTY0LDEyLjExNCwxMi4xMTQsMCwwLDAsNi44NjktMS41MjljLTIuNzM0LDEuMzMzLTYuMTIsMS45OTMtOC44OTQuNC0yLjY4OS0xLjU0My0zLjk4My00LjcyNC00LjIyMS03LjctLjUxMi02LjQsMy4xLTEzLjY0LDkuMTMyLTE2LjI4MSwzLjUxMi0xLjUzNyw3LjMwNy0xLjU4NSwxMC4yMzksMS4xQzI2LjcyNyw1LjI0NCwyNSw0LjMwNSwyNC41MjQsNC4wMTNabS0xNC4zNTksMjQuOC0uMTM4LS4wOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGUwMDAwXFxcIi8+PHBhdGggZD1cXFwiTTIyLjUyOSwyNi43ODhjLTMuMDQ0LDIuNTgyLTcuOTIsNC4xNDktMTEuNTU0LDEuODU3QzcuMjQsMjYuMjg5LDYuNTMsMjEuMDg5LDcuMjEyLDE3LjA4M2ExNy4yMTgsMTcuMjE4LDAsMCwxLDYuNy0xMC45N2MzLjc3MS0yLjYzNiw4Ljg4LTMuNDksMTIuNDg5LS4xODJsLTIuMjcsMy4yOTFjLTIuNTEtMi4zNTUtNi4zLTEuOTU2LTguOTQ1LS4wNTJBMTIuNDM0LDEyLjQzNCwwLDAsMCwxMC41LDE2LjJjLS42NjIsMi42MjMtLjUsNi4wMTEsMS41LDguMDQ3LDIuMDg4LDIuMTI5LDUuMTEyLDIuMTE2LDcuNjU2LjhBMTAuMzM0LDEwLjMzNCwwLDAsMCwyNC41LDE4LjYzNkwxNy4zMDcsMjAuOGwuMDIyLTQuNDM4TDI3Ljg5LDEzLjMxOWwuMS44MDZoMEExNi42MjUsMTYuNjI1LDAsMCwxLDIyLjUyOSwyNi43ODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmEwMDAwXFxcIi8+XCIsXG5cdFwiR0RTY3JpcHRcIjogXCI8cGF0aCBkPVxcXCJNMjguMTY2LDIxLjAyOXYxLjY1MmEuMzc0LjM3NCwwLDAsMS0uMjYuMzU3bC0yLjYuODQxYS4zNjcuMzY3LDAsMCwxLS4zMzUtLjA1NC4zNzQuMzc0LDAsMCwxLS4xNTUtLjN2LTEuOGwtMi40MzguNDY0VjI0LjAyYS4zNzUuMzc1LDAsMCwxLS4zMjUuMzcxbC0zLjUyNS40ODNjLS4wMTYsMC0uMDM0LDAtLjA1MSwwQS4zNzQuMzc0LDAsMCwxLDE4LjEsMjQuNVYyMi41NTdsLTEuODE5LjAwOGgtLjI2N2wtMS44MTktLjAwOFYyNC41YS4zNzUuMzc1LDAsMCwxLS4zNzUuMzc2Yy0uMDE3LDAtLjAzNCwwLS4wNTIsMGwtMy41MjUtLjQ4M2EuMzc1LjM3NSwwLDAsMS0uMzI0LS4zNzFWMjIuMTg0bC0yLjQzOS0uNDY0djEuOGEuMzc0LjM3NCwwLDAsMS0uMTU0LjMuMzcuMzcsMCwwLDEtLjMzNi4wNTRsLTIuNi0uODQxYS4zNzQuMzc0LDAsMCwxLS4yNTktLjM1N1YyMS4wMjlsLTEuNjA4LS41NDFhNC41NTgsNC41NTgsMCwwLDAtLjEyNCwxLjA0YzAsNC4zMTcsNi4wODIsNy42NSwxMy42LDcuNjc0aC4wMTljNy41MTctLjAyNCwxMy42LTMuMzU2LDEzLjYtNy42NzRhNC41NCw0LjU0LDAsMCwwLS4xLS45NVpcXFwiIGZpbGw9XFxcIiM0NzhjYmZcXFwiLz48cGF0aCBkPVxcXCJNMy43MTEsMTMuMzczVjIwLjFsLjkwNy4zMDZhLjM3NC4zNzQsMCwwLDEsLjI1Ni4zNTV2MS42NWwxLjg1NS42VjIxLjI2N2EuMzc2LjM3NiwwLDAsMSwuNDQ1LS4zNjlsMy4xODkuNjA5YS4zNzQuMzc0LDAsMCwxLC4zMDUuMzY4djEuODE4bDIuNzc1LjM3OXYtMS44OWEuMzc0LjM3NCwwLDAsMSwuMzc2LS4zNzVoMGwyLjMyNy4wMDksMi4zMjYtLjAwOWEuMzc0LjM3NCwwLDAsMSwuMzc3LjM3NXYxLjg5bDIuNzc1LS4zNzlWMjEuODc0YS4zNzMuMzczLDAsMCwxLC4zLS4zNjhsMy4xODktLjYwOWEuMzc3LjM3NywwLDAsMSwuNDQ2LjM2OXYxLjc0MWwxLjg1NS0uNlYyMC43NmEuMzc0LjM3NCwwLDAsMSwuMjU1LS4zNTVsLjYxOC0uMjA4VjEzLjM3M2guMDE3QTI2Ljc5MiwyNi43OTIsMCwwLDAsMzAsMTAuOTMxYTE5LjAyLDE5LjAyLDAsMCwwLTIuNTA5LTMuMjg4QTI0LjUwNywyNC41MDcsMCwwLDAsMjUsOS4wOTFhMTMuMDEsMTMuMDEsMCwwLDAtMS4yNzktMS4wNTIsMTUuMzY1LDE1LjM2NSwwLDAsMC0xLjM3NS0uODk0LDI4LjM1MywyOC4zNTMsMCwwLDAsLjIzMi0zLjA3MUExNS45NjgsMTUuOTY4LDAsMCwwLDE4Ljg0NywyLjhhMjYuNDQsMjYuNDQsMCwwLDAtMS4zODUsMi43LDkuNDYsOS40NiwwLDAsMC0xLjQ1My0uMTE2aC0uMDE4YTkuNDU3LDkuNDU3LDAsMCwwLTEuNDU0LjExNiwyNi4yNzUsMjYuMjc1LDAsMCwwLTEuMzg1LTIuN0ExNS45NjEsMTUuOTYxLDAsMCwwLDkuNDIyLDQuMDc1YTI4LjE0MiwyOC4xNDIsMCwwLDAsLjIzMiwzLjA3MSwxNS4zMTIsMTUuMzEyLDAsMCwwLTEuMzc2Ljg5NEExMy4wNiwxMy4wNiwwLDAsMCw3LDkuMDkxYTI0LjU1MywyNC41NTMsMCwwLDAtMi40OS0xLjQ0OEExOS4wMiwxOS4wMiwwLDAsMCwyLDEwLjkzMWEyNi43OTIsMjYuNzkyLDAsMCwwLDEuNjk0LDIuNDQzWlxcXCIgZmlsbD1cXFwiIzQ3OGNiZlxcXCIvPjxwYXRoIGQ9XFxcIm0xMi40NjIgMTYuNmEyLjczOSAyLjczOSAwIDEgMS0yLjc0LTIuNzM4IDIuNzM5IDIuNzM5IDAgMCAxIDIuNzQgMi43MzhcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJtMTEuOCAxNi43NjRhMS44MTkgMS44MTkgMCAxIDEtMS44MTktMS44MTkgMS44MTcgMS44MTcgMCAwIDEgMS44MTkgMS44MTlcXFwiIGZpbGw9XFxcIiM0MTQwNDJcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTY2LDE5LjU5YS44NDQuODQ0LDAsMCwxLS44ODItLjhWMTYuMjY3YS44ODYuODg2LDAsMCwxLDEuNzY0LDB2Mi41MjJhLjg0NS44NDUsMCwwLDEtLjg4My44XFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwibTE5Ljg3MSAxNi42YTIuNzM5IDIuNzM5IDAgMSAwIDIuNzQtMi43MzggMi43MzkgMi43MzkgMCAwIDAtMi43NCAyLjczOFxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIm0yMC41MzEgMTYuNzY0YTEuODE4IDEuODE4IDAgMSAwIDEuODE3LTEuODE5IDEuODE3IDEuODE3IDAgMCAwLTEuODE3IDEuODE5XFxcIiBmaWxsPVxcXCIjNDE0MDQyXFxcIi8+XCIsXG5cdFwiR2l0XCI6IFwiPHBhdGggZD1cXFwiTTI5LjQ3MiwxNC43NTMsMTcuMjQ3LDIuNTI4YTEuOCwxLjgsMCwwLDAtMi41NSwwTDEyLjE1OCw1LjA2N2wzLjIyLDMuMjJhMi4xNDEsMi4xNDEsMCwwLDEsMi43MTIsMi43M2wzLjEsMy4xYTIuMTQzLDIuMTQzLDAsMSwxLTEuMjg1LDEuMjFsLTIuODk1LTIuODk1djcuNjE3YTIuMTQxLDIuMTQxLDAsMSwxLTEuNzY0LS4wNjJWMTIuM2EyLjE0NiwyLjE0NiwwLDAsMS0xLjE2NS0yLjgxNEwxMC45MTEsNi4zMTQsMi41MjgsMTQuN2ExLjgsMS44LDAsMCwwLDAsMi41NTFMMTQuNzUzLDI5LjQ3MmExLjgsMS44LDAsMCwwLDIuNTUsMEwyOS40NzIsMTcuM2ExLjgsMS44LDAsMCwwLDAtMi41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDRjMzVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIkdMU0xcIjogXCI8cGF0aCBkPVxcXCJNNy43NzksMTguOTIzQTIuMzMzLDIuMzMzLDAsMCwxLDUuNCwxNy4xNmMuMzA2LDEuNDYyLDEuOTYxLDIuODkyLDcuMTgzLDMuNTI5YTE0LjIyOCwxNC4yMjgsMCwwLDAsOS4yMzItMS42MTJzLjczMy0uMzIyLjI5My4xNzZjMCwwLTMuMTA3LDIuODczLTkuMiwyLjlTMS45NywxOS4xMDcsMiwxNmMtLjAyOS0zLjEwNyw0LjgwNi02LjE4NSwxMC45LTYuMTU1czkuMiwyLjksOS4yLDIuOWMuNDQuNS0uMjkzLjE3Ni0uMjkzLjE3Ni0xLjA4NC0uNy00LjI4Ni0yLjA4OS05LjIzMi0xLjYxMi00Ljg2Ni40NjktNi40NTMsMi4xMjItNi45ODEsMy4yMzVhMy4yNTQsMy4yNTQsMCwwLDAtLjMxOCwxLjI0LDIuNDI0LDIuNDI0LDAsMCwxLDIuNS0yLjMxNkEyLjUwNywyLjUwNywwLDAsMSwxMC4zLDE2LjE5NSwyLjUwNiwyLjUwNiwwLDAsMSw3Ljc3OSwxOC45MlptMTkuNjQ3LTEuMDc0SDMwdi45MzdIMjYuMzQ0VjEzLjYwOWgxLjA4MnY0LjI0Wk0yMy40NTQsMTZoMi4xNjN2Mi43OTFIMjQuOWwtLjEwOC0uNjQ5YTEuOSwxLjksMCwwLDEtMS42MTQuNzg2LDIuNDE0LDIuNDE0LDAsMCwxLTIuMzc5LTIuNzExLDIuNDg1LDIuNDg1LDAsMCwxLDIuNTMxLTIuNzRBMi4wNTMsMi4wNTMsMCwwLDEsMjUuNiwxNS4yMTdIMjQuNTE1YTEuMTM2LDEuMTM2LDAsMCwwLTEuMTMyLS44NTFjLS43NzEsMC0xLjQ4NS41MzQtMS40ODUsMS44NiwwLDEuNDEzLjc3MSwxLjc4MSwxLjUwNiwxLjc4MWExLjI4LDEuMjgsMCwwLDAsMS4yNTQtMS4xMzloLTEuMlYxNlpNNy43ODEsMTQuMWExLjg2LDEuODYsMCwwLDAtMS44LDIuMTA1LDEuODYsMS44NiwwLDAsMCwxLjgsMi4xMDUsMS44NiwxLjg2LDAsMCwwLDEuOC0yLjEwNUExLjg2LDEuODYsMCwwLDAsNy43ODEsMTQuMVptMi45MTEsMS4zODNoLjUyNXYuNDY4aC4wMTNhMS4xMiwxLjEyLDAsMCwxLC45ODctLjU2MywxLjU2NSwxLjU2NSwwLDAsMSwxLjUwNiwxLjY3NywxLjY3NSwxLjY3NSwwLDAsMS0xLjU4MywxLjgyNCwxLDEsMCwwLDEtLjg4LS40NDNoLS4wMTNWMjAuMWgtLjU1N1YxNS40NzlaTTEyLjEsMTguNGMuNjA4LDAsMS4wMTktLjUyNywxLjAxOS0xLjI1NCwwLS40MjQtLjE3MS0xLjI2NC0xLjAzMi0xLjI2NC0uOCwwLS44OTMuODY3LS44OTMsMS40MDYsMCwuODguNTUxLDEuMTE0LjkwNSwxLjExNFptNS0uNjUyYTEuMzc4LDEuMzc4LDAsMCwxLTEuNDg4LDEuMTMzLDEuNDg3LDEuNDg3LDAsMCwxLTEuNDgyLTEuNjU4YzAtMS4wMjUuNDk0LTEuODQyLDEuNTg4LTEuODQyLjk1NiwwLDEuNDI0Ljc2LDEuNDI0LDEuOTMxSDE0LjcyMWMwLC42OS4zMjMsMS4wODkuOTYyLDEuMDg5YS44NDEuODQxLDAsMCwwLC44NTQtLjY1MkgxNy4xWm0tLjU5LS44OGMtLjAzMi0uNTEzLS4yNDctLjk4Ny0uOTI0LS45ODdhLjk3Mi45NzIsMCwwLDAtLjkxOC45ODdoMS44NDJabTMuNzEzLDEuOTE3aC0uNTU3VjE2Ljc1MWMwLS41NzYtLjE2NS0uODY3LS43MDktLjg2Ny0uMzE3LDAtLjg3NC4yLS44NzQsMS4xdjEuOGgtLjU1N1YxNS40NzloLjUyNXYuNDY4aC4wMTNhMS4yLDEuMiwwLDAsMSwxLS41NjMsMS4wNDYsMS4wNDYsMCwwLDEsMS4xNTgsMS4xNTJ2Mi4yNTNcXFwiIHN0eWxlPVxcXCJmaWxsOiM0Mzg2YjVcXFwiLz5cIixcblx0XCJHbyBtb2R1bGVcIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDI1NC41IDIyNVxcXCI+PHRpdGxlPmZpbGVfdHlwZV9nb19wYWNrYWdlPC90aXRsZT48cGF0aCBkPVxcXCJNNjEuOTQ5LDEzLjA2OGMxNi4wNi0uMTQ3LDMyLjE0MywwLDQ4LjIxMS0uMDYyLTMuODEsMTYuNDA4LTcuNDY2LDMyLjg2Mi0xMS4yNjEsNDkuMjc3SDI1LjU0OGMtMi4zMTksMC00LjYzNy4wNzctNi45NTYtLjA5M0MzMyw0NS43NzUsNDcuNTY2LDI5LjUsNjEuOTQ5LDEzLjA2OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMmU2YzlcXFwiLz48cGF0aCBkPVxcXCJNMTQzLjUwOSwxMy4wMTRoNDguMDcyYzE0LjQzNywxNi40MzEsMjkuMDEzLDMyLjcyMyw0My40MTEsNDkuMTc3LTkuMjc0LjE5My0xOC41NDksMC0yNy44MjMuMDg1SDE1NC42NTRDMTUxLjAwNiw0NS44MzcsMTQ3LjExMSwyOS40NiwxNDMuNTA5LDEzLjAxNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMmU2YzlcXFwiLz48cGF0aCBkPVxcXCJNMTEwLjE2LDEzLjAxNGgzMy4zNDljMy42LDE2LjQ0Niw3LjQ4OSwzMi44MjMsMTEuMTYsNDkuMjU0SDk4LjlDMTAyLjY5NCw0NS44NjgsMTA2LjM1LDI5LjQyMiwxMTAuMTYsMTMuMDE0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmYzc1ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC41OTIsNjIuMTgzYzIuMzE5LjE3LDQuNjM3LjA4NSw2Ljk1Ni4wOTNIOTguOXEwLDI2LjAyNi4wNTQsNTIuMDUyYTE4Ljg1NywxOC44NTcsMCwwLDAsMS45NzkuMTM5aDUyLjExNGExNC42OTMsMTQuNjkzLDAsMCwwLDEuNTQ2LS4xMDhjLjE0Ny0xNy4zNjYsMC0zNC43MzIuMDctNTIuMWg1Mi41MTZjOS4yNzQtLjA0NiwxOC41NDkuMTA4LDI3LjgyMy0uMDg1VjIxMi42MkgxOC42UTE4LjU5MiwxMzcuNDA1LDE4LjU5Miw2Mi4xODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTdiZjU1XFxcIi8+PHBhdGggZD1cXFwiTTk4LjksNjIuMjkxaDU1Ljc2OWMtLjA2MiwxNy4zNjYuMDg1LDM0LjczMi0uMDcsNTIuMS0uNTE4LjA1NC0xLjAzNi4wOTMtMS41NDYuMTA4SDEwMC45NGExOC44NTcsMTguODU3LDAsMCwxLTEuOTcxLS4xMzFDOTguODYxLDk2Ljk5Myw5OC45NjksNzkuNjM0LDk4LjksNjIuMjkxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2RiYjU1MVxcXCIvPjxyZWN0IHg9XFxcIjM0LjM4OVxcXCIgeT1cXFwiMTYzLjY4MlxcXCIgd2lkdGg9XFxcIjcyLjQxN1xcXCIgaGVpZ2h0PVxcXCIyNy44ODVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMmYyZjJcXFwiLz48cGF0aCBkPVxcXCJNNjEuNDIyLDEzNy4wODVjLS4zODgsMC0uNDg3LS4xOTQtLjI5MS0uNDg3bDIuMDQxLTIuNjI1YTEuMzkzLDEuMzkzLDAsMCwxLDEuMDY5LS40ODdoMzQuN2MuMzg4LDAsLjQ4Ny4yOTEuMjkxLjU4NEw5Ny41ODIsMTM2LjZhMS40ODEsMS40ODEsMCwwLDEtLjk3Mi41ODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PHBhdGggZD1cXFwiTTQ2Ljc0LDE0Ni4wMjhjLS4zODgsMC0uNDg3LS4xOTQtLjI5MS0uNDg3bDIuMDQxLTIuNjI1YTEuMzkzLDEuMzkzLDAsMCwxLDEuMDY5LS40ODdIOTMuODlhLjQ0Ny40NDcsMCwwLDEsLjQ4Ny41ODRsLS43NzgsMi4zMzNhLjg1Ljg1LDAsMCwxLS44NzUuNTg0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjxwYXRoIGQ9XFxcIk03MC4yNjQsMTU0Ljk3MWMtLjM4OCwwLS40ODctLjI5MS0uMjkxLS41ODRsMS4zNTctMi40M2ExLjI4OSwxLjI4OSwwLDAsMSwuOTcyLS41ODRIOTEuNzQ3Yy4zODgsMCwuNTg0LjI5MS41ODQuNjgxbC0uMTk0LDIuMzMzYS43MzEuNzMxLDAsMCwxLS42ODEuNjgxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjxwYXRoIGQ9XFxcIk0xNzEuMTYzLDEzNS4zMzVjLTYuMTI0LDEuNTU2LTEwLjMsMi43MjItMTYuMzMsNC4yOC0xLjQ2Mi4zODgtMS41NTYuNDg3LTIuODE5LS45NzJhMTMuMDExLDEzLjAxMSwwLDAsMC00LjU2OS0zLjY5NGMtNi4xMjQtMy4wMTMtMTIuMDU0LTIuMTM4LTE3LjU5NCwxLjQ2MmEyMC42NzEsMjAuNjcxLDAsMCwwLTkuOTE4LDE4LjQ2OSwxNS4yNDIsMTUuMjQyLDAsMCwwLDEzLjEyMywxNS4yNjFjNi42MS44NzUsMTIuMTUxLTEuNDYyLDE2LjUyNS02LjQxNS44NzUtMS4wNjksMS42NTMtMi4yMzYsMi42MjUtMy42SDEzMy40NDZjLTIuMDQxLDAtMi41MjgtMS4yNjMtMS44NDctMi45MTYsMS4yNjMtMy4wMTMsMy42LTguMDY4LDQuOTU4LTEwLjZhMi42MjUsMi42MjUsMCwwLDEsMi40My0xLjU1NmgzNS4zODRjLS4xOTQsMi42MjUtLjE5NCw1LjI0OS0uNTg0LDcuODc0YTQxLjQ1Niw0MS40NTYsMCwwLDEtNy45NjcsMTkuMDQyYy02Ljk5NSw5LjIzNC0xNi4xMzYsMTQuOTctMjcuNywxNi41MjUtOS41MjYsMS4yNjMtMTguMzc0LS41ODQtMjYuMTQ4LTYuNDE1QTMwLjUzMywzMC41MzMsMCwwLDEsOTkuNjI1LDE2MC41MWMtMS4yNjMtMTAuNiwxLjg0Ny0yMC4xMjIsOC4yNjItMjguNDgxQTQzLjEzNyw0My4xMzcsMCwwLDEsMTM1LjEsMTE1LjIxMmM5LjEzNy0xLjY1MywxNy44ODYtLjU4NCwyNS43Niw0Ljc2M0EzMC40NzEsMzAuNDcxLDAsMCwxLDE3Mi4xNCwxMzMuNjhDMTcyLjcxOSwxMzQuNTU4LDE3Mi4zMywxMzUuMDQ0LDE3MS4xNjMsMTM1LjMzNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48cGF0aCBkPVxcXCJNMjAzLjMzOCwxODkuMDljLTguODQ2LS4xOTQtMTYuOTEzLTIuNzIyLTIzLjcxOS04LjU1NGEzMC40ODUsMzAuNDg1LDAsMCwxLTEwLjUtMTguNzYxYy0xLjc1LTEwLjk4NCwxLjI2My0yMC43LDcuODc0LTI5LjM1Niw3LjEtOS4zMzEsMTUuNjUxLTE0LjE5MiwyNy4yMTgtMTYuMjMzLDkuOTE4LTEuNzUsMTkuMjQ3LS43NzgsMjcuNyw0Ljk1OCw3LjY4LDUuMjQ5LDEyLjQ0MiwxMi4zNDUsMTMuNzA2LDIxLjY3NiwxLjY1MywxMy4xMjMtMi4xMzgsMjMuODE2LTExLjE3OSwzMi45NTNhNDQuNTQyLDQ0LjU0MiwwLDAsMS0yMy4zMjksMTIuNDQyQzIwOC40OSwxODguNywyMDUuODY2LDE4OC44LDIwMy4zMzgsMTg5LjA5Wm0yMy4xMzUtMzkuMjcxYTI3Ljk3OCwyNy45NzgsMCwwLDAtLjI5MS0zLjIwOCwxNi4wMTMsMTYuMDEzLDAsMCwwLTE4LjM3NS0xMy4yMzVxLS43MzQuMTE5LTEuNDU0LjMwNmMtOS4wNCwyLjA0MS0xNC44NzMsNy43NzctMTcuMDExLDE2LjkxM2ExNi4wMDksMTYuMDA5LDAsMCwwLDguOTQzLDE4LjM3NCwxNy44MiwxNy44MiwwLDAsMCwxNS44NDUtLjU4NGM3LjY3OS0zLjk4NSwxMS44NTktMTAuMjA2LDEyLjM0OC0xOC41NjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PC9zdmc+XCIsXG5cdFwiR29cIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDI1NC41IDIyNVxcXCI+PHRpdGxlPmZpbGVfdHlwZV9nbzwvdGl0bGU+PHBhdGggZD1cXFwiTS00Ni45MjYsODljLS42MjEsMC0uNzc3LS4zMTEtLjQ2Ni0uNzc3bDMuMjYyLTQuMTk0YTIuMjI1LDIuMjI1LDAsMCwxLDEuNzA4LS43NzdIMTMuMDI2Yy42MjEsMCwuNzc3LjQ2Ni40NjYuOTMybC0yLjY0LDQuMDM4YTIuMzY3LDIuMzY3LDAsMCwxLTEuNTUzLjkzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48cGF0aCBkPVxcXCJNLTcwLjM3OSwxMDMuMjg1Yy0uNjIxLDAtLjc3Ny0uMzExLS40NjYtLjc3N2wzLjI2Mi00LjE5NGEyLjIyNSwyLjIyNSwwLDAsMSwxLjcwOC0uNzc3SDQuOTVhLjcxNC43MTQsMCwwLDEsLjc3Ny45MzJMNC40ODQsMTAyLjJhMS4zNTgsMS4zNTgsMCwwLDEtMS40LjkzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48cGF0aCBkPVxcXCJNLTMyLjc5MiwxMTcuNTc0Yy0uNjIxLDAtLjc3Ny0uNDY2LS40NjYtLjkzMmwyLjE3NC0zLjg4M2EyLjA2LDIuMDYsMCwwLDEsMS41NTMtLjkzMkgxLjUzM2MuNjIxLDAsLjkzMi40NjYuOTMyLDEuMDg3bC0uMzExLDMuNzI4YTEuMTY3LDEuMTY3LDAsMCwxLTEuMDg3LDEuMDg3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0xMjguNDI2LDg2LjJjLTkuNzg1LDIuNDg1LTE2LjQ2NCw0LjM0OS0yNi4wOTMsNi44MzQtMi4zMy42MjEtMi40ODUuNzc3LTQuNS0xLjU1My0yLjMzLTIuNjQtNC4wMzgtNC4zNDktNy4zLTUuOS05Ljc4NS00LjgxNS0xOS4yNTktMy40MTctMjguMTEyLDIuMzMtMTAuNTYxLDYuODM0LTE2LDE2LjkyOS0xNS44NDIsMjkuNTEuMTU1LDEyLjQyNSw4LjcsMjIuNjc2LDIwLjk2OCwyNC4zODUsMTAuNTYxLDEuNCwxOS40MTQtMi4zMywyNi40LTEwLjI1MSwxLjQtMS43MDgsMi42NC0zLjU3Miw0LjE5NC01Ljc0N0g2OC4xNjNjLTMuMjYyLDAtNC4wMzgtMi4wMTktMi45NTEtNC42NTksMi4wMTktNC44MTUsNS43NDctMTIuODkxLDcuOTIxLTE2LjkyOWE0LjE5NCw0LjE5NCwwLDAsMSwzLjg4My0yLjQ4NWg1Ni41MzVjLS4zMTEsNC4xOTQtLjMxMSw4LjM4Ny0uOTMyLDEyLjU4MWE2Ni4yMzksNjYuMjM5LDAsMCwxLTEyLjczNiwzMC40NDJDMTA4LjcsMTU5LjUxLDk0LjEsMTY4LjY3Myw3NS42MTgsMTcxLjE1OGMtMTUuMjIxLDIuMDE5LTI5LjM1NS0uOTMyLTQxLjc4LTEwLjI1MWE0OC43ODUsNDguNzg1LDAsMCwxLTE5LjcyNS0zNC40OGMtMi4wMTktMTYuOTI5LDIuOTUxLTMyLjE1LDEzLjItNDUuNTA4QzM4LjM0Miw2Ni40NzUsNTIuOTQyLDU3LjMxMiw3MC44LDU0LjA1YzE0LjYtMi42NCwyOC41NzgtLjkzMiw0MS4xNTksNy42MWE0OC42ODYsNDguNjg2LDAsMCwxLDE4LjAxNywyMS45QzEzMC45MTEsODQuOTU4LDEzMC4yODksODUuNzM1LDEyOC40MjYsODYuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48cGF0aCBkPVxcXCJNMTc5LjgzNSwxNzIuMDljLTE0LjEzNC0uMzExLTI3LjAyNS00LjM0OS0zNy45LTEzLjY2OGE0OC43MTEsNDguNzExLDAsMCwxLTE2Ljc3NC0yOS45NzZjLTIuOC0xNy41NTEsMi4wMTktMzMuMDgyLDEyLjU4MS00Ni45MDUsMTEuMzM4LTE0LjkxLDI1LjAwNi0yMi42NzYsNDMuNDg4LTI1LjkzOCwxNS44NDItMi44LDMwLjc1My0xLjI0Myw0NC4yNjUsNy45MjEsMTIuMjcsOC4zODcsMTkuODgsMTkuNzI1LDIxLjksMzQuNjM1LDIuNjQsMjAuOTY4LTMuNDE3LDM4LjA1Mi0xNy44NjEsNTIuNjUyYTcxLjE3LDcxLjE3LDAsMCwxLTM3LjI3NiwxOS44OEMxODguMDY3LDE3MS40NjksMTgzLjg3NCwxNzEuNjI0LDE3OS44MzUsMTcyLjA5Wk0yMTYuOCwxMDkuMzQzYTQ0LjcsNDQuNywwLDAsMC0uNDY2LTUuMTI1Yy0yLjgtMTUuMzc2LTE2LjkyOS0yNC4wNzQtMzEuNjg0LTIwLjY1Ny0xNC40NDQsMy4yNjItMjMuNzYzLDEyLjQyNS0yNy4xOCwyNy4wMjVhMjUuNTc5LDI1LjU3OSwwLDAsMCwxNC4yODksMjkuMzU1YzguNTQyLDMuNzI4LDE3LjA4NSwzLjI2MiwyNS4zMTctLjkzMkMyMDkuMzQ1LDEzMi42NCwyMTYuMDI0LDEyMi43LDIxNi44LDEwOS4zNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBhY2Q3XFxcIi8+PC9zdmc+XCIsXG5cdFwiR3JhZGxlXCI6IFwiPHBhdGggZD1cXFwiTTEzLjUsNi45NjVoNy45MjNsNCw2Ljg4N0gyOS45OEExNC4xLDE0LjEsMCwwLDAsMTEuMDI0LDIuOTMyTDEzLjUsNi45NjVcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDY1MzNcXFwiLz48cGF0aCBkPVxcXCJNMjUuNjI4LDE4bC00LjIwOSw3LjI1MkgxMC44MDZMNS41LDE2LjEwOCw5LjczOSw4LjgsNy40LDQuOTgxQTE0LjAzLDE0LjAzLDAsMSwwLDMwLDE4SDI1LjYyOFxcXCIgc3R5bGU9XFxcImZpbGw6IzgyYjgxNlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4wNjEsMTUuOTYzYTUuMDI2LDUuMDI2LDAsMSwxLTUuMDI2LTUsNS4wMTMsNS4wMTMsMCwwLDEsNS4wMjYsNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjUzMlxcXCIvPlwiLFxuXHRcIkdyYXBoUUxcIjogXCI8cmVjdCB4PVxcXCItMC40M1xcXCIgeT1cXFwiMTIuNTM0XFxcIiB3aWR0aD1cXFwiMjIuOTAxXFxcIiBoZWlnaHQ9XFxcIjEuMTg3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNS44NTggMTYuMTA3KSByb3RhdGUoLTU5Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCI0LjU0NVxcXCIgeT1cXFwiMjEuMTYyXFxcIiB3aWR0aD1cXFwiMjIuOTAyXFxcIiBoZWlnaHQ9XFxcIjEuMTg3XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMTAuNDNcXFwiIHk9XFxcIjE4LjAwOFxcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjEzLjIyN1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTE1LjgxMiAyMS44NTcpIHJvdGF0ZSgtNTkuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjIwLjM4MVxcXCIgeT1cXFwiMC43NzFcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIxMy4yMjdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDQuMDkyIDIxLjg1Nikgcm90YXRlKC01OS45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiNC40MTJcXFwiIHk9XFxcIjYuNzg3XFxcIiB3aWR0aD1cXFwiMTMuMjI3XFxcIiBoZWlnaHQ9XFxcIjEuMTg3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMi4yMTMgNi41MDIpIHJvdGF0ZSgtMzAuMDAxKVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjIwLjM4OVxcXCIgeT1cXFwiMS42NzdcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIyMi45MDFcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjc1MyAxMi4yNSkgcm90YXRlKC0zMC4wMDEpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiNS40NTRcXFwiIHk9XFxcIjkuMzg2XFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMTMuMjI4XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMjUuMzZcXFwiIHk9XFxcIjkuMzg2XFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMTMuMjI4XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMTUuMjIyXFxcIiB5PVxcXCIyNC4wOTdcXFwiIHdpZHRoPVxcXCIxMS41MDRcXFwiIGhlaWdodD1cXFwiMS4wMzdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC05LjQ5OCAxMy43ODUpIHJvdGF0ZSgtMzAuMDAxKVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0yOC4xMiwyM2EyLjUsMi41LDAsMSwxLS45MTUtMy40MTFBMi41LDIuNSwwLDAsMSwyOC4xMiwyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk04LjIsMTEuNWEyLjUsMi41LDAsMSwxLS45MTUtMy40MTFBMi41LDIuNSwwLDAsMSw4LjIsMTEuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0zLjg4LDIzYTIuNSwyLjUsMCwxLDEsMy40MTEuOTE1QTIuNSwyLjUsMCwwLDEsMy44OCwyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0yMy44LDExLjVhMi41LDIuNSwwLDEsMSwzLjQxMS45MTVBMi41LDIuNSwwLDAsMSwyMy44LDExLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNDkzLDIuNDkzLDAsMCwxLDE2LDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTE2LDYuOTkxYTIuNSwyLjUsMCwxLDEsMi41LTIuNSwyLjQ5MywyLjQ5MywwLDAsMS0yLjUsMi41XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+XCIsXG5cdFwiR3Jvb3Z5XCI6IFwiPHBhdGggZD1cXFwiTTcuNDUzLDI5Ljg2NWMwLS4wNzQuNDk0LTEuNzE3LDEuMS0zLjY1MUEyMS44MDgsMjEuODA4LDAsMCwwLDkuNSwyMi42Yy0uMDc5LS4wNTYtLjM1LjA0NS0uNi4yMjQtLjc2NC41MzgtLjkyLjQtMS40OTEtMS4zNTYtLjYxNy0xLjktLjYzOS0yLjA5MS0uMzE3LTIuODEuMjEtLjQ3LjItLjU3OS0uMTQ3LTEuMjc3YTMuNzUsMy43NSwwLDAsMS0uMzc3LTEuMDQ0YzAtLjI2LTEuNDEzLTEuNDM4LTMuNjQ3LTMuMDRBMy44NDUsMy44NDUsMCwwLDEsMiwxMi41YTEwLjQ3NywxMC40NzcsMCwwLDEsMi4zNzgtLjAzOWwyLjM3OC4xLjIzMi0uNzQxYy45ODEtMy4xMywyLjQ2My01Ljk1NywzLjEyMi01Ljk1Ny4xMzcsMCwuNDE2LjI2NS42MTkuNTg4LjMzMS41MjcuMzc2Ljg1My40MzUsMy4xMjZhMjMuMDEzLDIzLjAxMywwLDAsMCwuMTY1LDIuNzM5Yy4wNTUuMTEuMjI4LS4wMzUuMzg1LS4zMjIuMi0uMzY3LjQxMi0uNDY3LjcxLS4zMzVzLjQ4NS4wNDMuNjQ2LS4zNDVjLjI0Mi0uNTgyLDEuNDU1LTQuNTEzLDEuNDU1LTQuNzE3LDAtLjA2OS4yNC0uOS41MzQtMS44NDZzLjYzMS0yLjAzNi43NTEtMi40MjRjLjIxMy0uNjg4LjI0Ni0uNjA3LDEuNTI0LDMuNzI2LDEuMzIsNC40NzQsMi4wMyw2LjEyNCwyLjM4NSw1LjU0NC4yNDgtLjQsMS41NS0uNDI4LDEuOTE0LS4wMzQuMjA3LjIyNC4zMzguMjIxLjQ1My0uMDEuMjM3LS40OC44LS40Ljk1My4xNC4xMTcuNDIzLjE0Ny40MjMuMzIsMGEuODEyLjgxMiwwLDAsMSwuNjkyLS40NjZjLjM4OSwwLC41MzguMTY0LjY2Ni43MzVsLjE2NS43MzUsMi41NTgtLjE4M0ExMS41MjEsMTEuNTIxLDAsMCwxLDMwLDEyLjQ2OGEyMC43OSwyMC43OSwwLDAsMS0yLjMyMSwxLjg4OWMtMS4yNzcuOTYtMi4zNDIsMS43NzUtMi4zNjgsMS44MWExNy42MDcsMTcuNjA3LDAsMCwwLC4xMjgsMS44NjcsMTEuMDc1LDExLjA3NSwwLDAsMS0uNTQ0LDUuNzEzLDQuMzA4LDQuMzA4LDAsMCwxLTEuMDIxLDEuNDljLS4yNzguMTg2LS41MDYuNC0uNTA2LjQ4NnMuMywxLjA3Ny42NiwyLjIxMkE5LjY4Miw5LjY4MiwwLDAsMSwyNC41NjgsMzBjLS4xMDksMC0yLjc1Ny0yLjA3LTYuODc2LTUuMzczYTExLjE0MywxMS4xNDMsMCwwLDAtMS42NDMtMS4xODRjLS4xNzEsMC0xLjY0OSwxLjEzMy01Ljk4NCw0LjU4OC0yLjUxNCwyLTIuNjEyLDIuMDczLTIuNjEyLDEuODM1Wm01LjE1OC00LjcyN2MxLjMzNy0xLjA1MSwyLjY2NC0yLjA3OCwyLjk0Ny0yLjI4Mi40ODgtLjM1MS42NTEtLjI2MywzLjAyMSwxLjYzMSwxLjM3OCwxLjEsMi43MzcsMi4xNzQsMy4wMjEsMi4zODRzLjg2OC42NjYsMS4zLDEuMDEzYy40OTEuNC43NDIuNDkyLjY3NC4yNTYtLjc3LTIuNjM0LS43OTMtMi42NzgtMS4zMjctMi40NzYtLjY0NC4yNDQtMS4wNDMtLjAwNi0xLjI0OS0uNzgzYTEuNzM5LDEuNzM5LDAsMCwxLC4yNC0xLjQ1MSwyLjM3NywyLjM3NywwLDAsMC0uMjIxLTIuNzMxLDQuMjg5LDQuMjg5LDAsMCwxLS42ODYtMS41M2wtLjI0MS0xLjAyMy0uNTE3LjcxYy0uNjM2Ljg3My0xLjQxMS45MTgtMi4wNTkuMTE5bC0uNDc3LS41ODgtLjU1NC43NjJjLS41NTUuNzYzLTEuMTk0Ljg2Mi0xLjg0NC4yODQtLjE3OS0uMTU5LS4yNTgtLjEtLjI1OC4yYTEuMjQsMS4yNCwwLDAsMS0uMzc1Ljc3N2MtLjYxOS41Ny0xLjIyMy40MTktMS42MzMtLjQwOUwxMiwxOS4yNDlsLS4zLjc3NWE3LjAzMiw3LjAzMiwwLDAsMS0uODUzLDEuNDc5LDEzLjg5MSwxMy44OTEsMCwwLDAtMS40NTUsMy42NjNjLS41LDEuNjI3LS45LDMuMDQyLS45LDMuMTQzcy4zODEtLjE0MS44NDctLjUzOCwxLjk0Mi0xLjU4MiwzLjI3OS0yLjYzM1ptMTEuMzQzLTEuMTMxYzEuMDE1LTEuMTU0LDEuMjUtMy4yODguOC03LjI3MS0uMzc1LTMuMzI5LS41NjItNC40MTktLjc4NC00LjU2NS0uMTU0LS4xLS4xNzcuMDEtLjA5MS40MjYuNTYyLDIuNy41OTMsNC4wNTMuMSw0LjQzNC0uMzM3LjI2Mi0uNjk1LS43MTktLjk3Ni0yLjY3NS0uMjE4LTEuNTE1LS40NDUtMi4yLS42MTctMS44NWEzLjM1OSwzLjM1OSwwLDAsMCwuMTYsMS4wNywyNi43MTgsMjYuNzE4LDAsMCwxLC4zOTQsMy4zODEsMjEuNzU3LDIxLjc1NywwLDAsMCwuMzc1LDMuMTUxYy4zMDkuOTg1LjguNzQ3LDEuMTE4LS41NHMuMzUtLjQyNS4wNDQsMS4wNTVjLS4zMTcsMS41MzYtMS4yNiwyLTIuMzUyLDEuMTUtLjE3NS0uMTM2LS4yMzQsMC0uMjM0LjU1NWE0Ljk4OCw0Ljk4OCwwLDAsMS0uMywxLjVsLS4zLjc2NS40MDguMTM5QTIuMjQ3LDIuMjQ3LDAsMCwwLDIzLjk1NCwyNC4wMDdaTTkuMzQ2LDIxLjQ2OGMyLjExOC0xLjIzMiwyLjUtMi42NjgsMS43OTMtNi44MDVhMjEuOTQxLDIxLjk0MSwwLDAsMS0uMy0yLjNjMC0xLjAyOS0uMjU2LS41NTQtLjQ0OC44MzItLjI1NCwxLjgzMi0xLjAxNiwzLjM4OS0xLjY1NywzLjM4My0uNTU3LS4wMDUtLjczOC0uMjEtLjk2OC0xLjA5NC0uNDEzLTEuNTg1LjAzNy00LjAxOCwxLjE4NC02LjQwNi44NC0xLjc0OSwxLjMtMS45MDgsMS4zLS40NDgsMCwyLjI3Ni0uNzc2LDUuNjI1LTEuMTg0LDUuMTE1YTMuODE0LDMuODE0LDAsMCwxLC4wNjUtMi4yYy4yLS43Mi4xNTctMS44MTgtLjA2Ni0xLjgxOC0uMjU5LDAtLjc3MywxLjkxLS44NDEsMy4xMjctLjA2LDEuMDc2LS4wMjIsMS4zMzguMjMxLDEuNjEyLjg4OC45NjIsMi4wNTItMS45NzMsMi4xMTEtNS4zMjMuMDMxLTEuNzU5LS4xMzgtMi4yNTQtLjY3NC0xLjk4Mi0uNzgxLjQtMi44ODMsNS44ODMtMi44ODMsNy41MjMsMCwxLjI4My4zMTksMi4xODYuODgsMi40OTEuOTU0LjUxOSwxLjg3Ni0uNCwyLjUyOS0yLjUzMWwuMjc1LS44OTRWMTQuOTdjMCwxLjc1OS0uNTY3LDIuNjg2LTIuMzU3LDMuODUyYTguODkzLDguODkzLDAsMCwwLS44NTIuNiw5Ljc1OCw5Ljc1OCwwLDAsMCwuODkyLDIuNTM0LDUuMjgzLDUuMjgzLDAsMCwwLC45NjktLjQ4NFptMTIuNzY0LTIuMTg0Yy4yMTMtLjQ3NS4yNS0uOTkyLjItMi44MTctLjA1LTEuOTg2LS4xLTIuMzM3LS40ODYtMy4xNDQtLjY5MS0xLjQ1OC0xLjU0NC0xLjA4Ni0xLjA0NS40NTUuMjY1LjgyLjU4OS42OC40NzUtLjIwNS0uMDkxLS43LjA3OS0uNzIzLjM3NS0uMDQxLjU1NiwxLjI4MS40MTYsMy4wNTUtLjI0MiwzLjA1NS0uNDUsMC0uNTktLjM5LS44ODMtMi40NTlhNi43NTIsNi43NTIsMCwwLDAtLjM2Mi0xLjcxNGMtLjIxNywwLS4zMTQuMzg4LS4xNzkuNzE4YTI4LjIzLDI4LjIzLDAsMCwxLC40NTIsMi44NTljLjQ0MSwzLjUwNywxLjA1Nyw0LjcwNywxLjY5LDMuMjkzWm0tOC4zOC4wNTZhMy4zODUsMy4zODUsMCwwLDAsLjA5NS0xLjMzYy0uMDYtMS4wMDgtLjA5NC0xLjA4MS0uMzY0LS43OS0uMzg3LjQxOS0uOC0uMzc1LS45NDQtMS44LS4xMDctMS4wODItLjE0LTEuMDYxLjY0LS40MTUuMS4wODEuMzQ2LS4xOTQuNTUzLS42MTEuMzc3LS43NjMuNS0xLjY4LjIyOC0xLjY4LS4wODEsMC0uMTQ3LjEzNC0uMTQ3LjMsMCwuNDI5LS40LjM2OC0uNDk0LS4wNzUtLjA1My0uMjU4LS4xNjYtLjE2Ny0uMzY3LjMtLjE2LjM2OS0uMzU2LjY3MS0uNDM0LjY3MXMtLjE4NS0uMy0uMjM3LS42NzFjLS4wOS0uNjQ2LS4xLS42NS0uMy0uMTEzYS45NTEuOTUxLDAsMCwwLS4wMS45NjQsMTguODE4LDE4LjgxOCwwLDAsMSwuNTIxLDMuNzkxYzAsMS4xNzQuOCwyLjEsMS4yNjcsMS40NjNabTIuNjg4LTEuNTU2YTcuMDU1LDcuMDU1LDAsMCwwLC40MTYtNC4yNTljLS4yMzYtMS4xNDEtLjY0NS0xLjU2OC0xLjIyMi0xLjI3NS0uNDI5LjIxOC0xLjA4MiwyLjc0Ni0xLjA4NCw0LjIsMCwyLjI2MiwxLjA2LDMuMDE1LDEuODksMS4zMzdabS0xLjAwNy0xLjc5MmEzLjc3LDMuNzcsMCwwLDEtLjI5LTEuNDE2YzAtLjc0NS4wMjItLjc3Mi4yLS4zLjIyLjU4Ni42MTEuNjg4Ljc2MS4yYTEuMDM1LDEuMDM1LDAsMCwwLS4wNjUtLjY1NmMtLjIzMi0uNDY5LS4yLTEuMTA3LjA0OS0xLjEwNy4yOCwwLC42NzIsMS4xNTQuNjcyLDEuOTgyLDAsLjYwOS0uNjEzLDEuODkzLS45LDEuODkzLS4wNywwLS4yNi0uMjY4LS40MjItLjZaTTE5LjM0OCwxNy43YTYuNDQ3LDYuNDQ3LDAsMCwwLS4xNDEtNC45MThjLS4zNTgtLjc3My0xLjE1My0uOTA2LTEuNDc5LS4yNDhhMTEuNjA3LDExLjYwNywwLDAsMC0uNDg5LDMuODk1QzE3LjQ3NywxOC4zNDgsMTguNzE2LDE5LjEsMTkuMzQ4LDE3LjdaTTE4LjEsMTUuNTI3YTIuNDkyLDIuNDkyLDAsMCwxLS4zMTgtMS41NjVjLjAwOC0uOTA5LjAzMS0uOTkxLjEzNS0uNDcyLjE1My43NjQuNDczLDEuMDUyLjc1My42NzkuMTc0LS4yMzEuMTY2LS4zNDEtLjA1LS42NzYtLjI4OC0uNDQ3LS4zNDQtMS4wNzktLjEtMS4wNzlhNS4wMzcsNS4wMzcsMCwwLDEsMS4wMTcsMi4yNWMwLC40OC0uNTY0LDEuMzI3LS44ODQsMS4zMjdDMTguNTI3LDE1Ljk5MSwxOC4yNzYsMTUuNzgyLDE4LjEsMTUuNTI3Wm04LjY2Mi0xLjMxOCwxLjU0Ny0xLjE3NS0xLjY1OC0uMDEyYy0xLjQ4NC0uMDExLTEuNjU4LjA0My0xLjY1Ni41MWExMS41MzIsMTEuNTMyLDAsMCwwLC4yLDEuODU3Yy4wMTEsMCwuNzE2LS41MzQsMS41NjctMS4xOFpNNi41MzUsMTRsLjE1OC0uOTQ5TDUuMywxMi45NTZjLS43NjQtLjA1Mi0xLjM4OS0uMDEyLTEuMzg5LjA4OGExNC4xLDE0LjEsMCwwLDAsMi40NDcsMS45MzRDNi4zNzEsMTQuOTYxLDYuNDQ4LDE0LjUyMSw2LjUzNSwxNFptOS41MjYtMi45NDFhMS42MjQsMS42MjQsMCwwLDEsLjgxOS42Yy4xOTIuMzQ5LjI3Ni4zMjYuNTczLS4xNjMuMTkxLS4zMTUuNDQtLjU3Mi41NTMtLjU3MnMuMi0uMDY2LjItLjE0NmMwLS4yNzgtMi4xMjItNy4zMDYtMi4yLTcuM3MtMi4yNyw3LjM4Ni0yLjMzNyw3LjkyNWMtLjAyOC4yMjYuMDYuMzA5LjIzMS4yMTkuMTUyLS4wODEuMzYzLjA2My40NjguMzE5LjE3LjQxNS4yNC4zODIuNjQ0LS4zMDYuMzg0LS42NTQuNTQ0LS43NDIsMS4wNDgtLjU3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMzNcXFwiLz48cGF0aCBkPVxcXCJNMTQuNSwxMi4xNzVhLjg1Ljg1LDAsMCwxLS4xMTUtLjIuNzM3LjczNywwLDAsMC0uMTk0LS4yOS4yODEuMjgxLDAsMCwwLS4zLS4wNjFjLS4wODcuMDM1LS4xMTEuMDM5LS4xNS4wMjQtLjA2NS0uMDI2LS4wODktLjEwNi0uMDctLjI0Mi4wMjMtLjE2OS4yLS44MjUuNTQ4LTIuMDU0LjcxMS0yLjUsMS42NjYtNS42NDYsMS43NzItNS44MzkuMDEyLS4wMjEuMDEyLS4wMjEuMDI0LDAsLjA2My4xMTQuNDMyLDEuMjY2LjkzNywyLjkyMi42ODIsMi4yNCwxLjI1LDQuMjEsMS4yNSw0LjMzOSwwLC4wNzktLjA2LjEyNy0uMTg2LjE0Ny0uMTU3LjAyNi0uMzM5LjIxMi0uNTg3LjZhMS42NzQsMS42NzQsMCwwLDEtLjIyNi4zMWMtLjA0OC4wNDYtLjA1Mi4wNDgtLjEuMDQ4cy0uMDU2LDAtLjEtLjA0M2EuOTU4Ljk1OCwwLDAsMS0uMS0uMTQ0LDEuMjY4LDEuMjY4LDAsMCwwLS40MTQtLjQyMiwxLjUyNSwxLjUyNSwwLDAsMC0uNzM4LS4yODEuNDM0LjQzNCwwLDAsMC0uNC4xNTYsMi43MTgsMi43MTgsMCwwLDAtLjQxNi42Yy0uMjU3LjQyNS0uMzQ4LjUxMy0uNDQxLjQyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2Mzk4YWFcXFwiLz48cGF0aCBkPVxcXCJNNi4yNTIsMTQuOTI4YTE5LjA1NSwxOS4wNTUsMCwwLDEtMi4zLTEuODM4Yy0uMDMxLS4wMzgtLjAzNC0uMDQ0LS4wMjUtLjA1N2EyLjcsMi43LDAsMCwxLDEuMTQtLjA4NWMuMjMuMDEyLDEuNjE5LjEsMS42MjEuMTA4cy0uMywxLjc3OS0uMzIxLDEuODgxQzYuMzU3LDE0Ljk4MSw2LjMzNywxNC45NzksNi4yNTIsMTQuOTI4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzOThhYVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS4xNzcsMTUuMzVBMTQuMjM5LDE0LjIzOSwwLDAsMSwyNSwxMy41NmEuNTUzLjU1MywwLDAsMSwuMDQ0LS4yOWMuMDgxLS4xNTEuMjQ1LS4yMDUuNy0uMjMuMjI4LS4wMTMsMS4yODEtLjAxNSwyLjAyNSwwbC41MjEuMDA4TDI3LjAyOSwxNGMtMS4xNDQuODY3LTEuODEsMS4zNjktMS44MzQsMS4zODItLjAwNiwwLS4wMTItLjAwNi0uMDE4LS4wMjdoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2Mzk4YWFcXFwiLz48cGF0aCBkPVxcXCJNOC41MDYsMjguMjgxYzAtLjA3MS4xNDktLjYuNTI3LTEuODc4LjkwNS0zLjA1NywxLjMxOS00LjE2NSwxLjgyNy00Ljg5MmE3LjY2NCw3LjY2NCwwLDAsMCwuOTY5LTEuNzkyTDEyLDE5LjI5MmwuMjI1LjQ0OGMuMzk0Ljc4NC42MzIsMS4wMTEsMS4wNjIsMS4wMTZhMS4yMzksMS4yMzksMCwwLDAsMS4xLTEuMTM3YzAtLjEyNC4wNDQtLjI1MS4wODYtLjI1MWExLjExOSwxLjExOSwwLDAsMSwuMjI2LjE0LDEuMjcxLDEuMjcxLDAsMCwwLC42NjYuMy44NzkuODc5LDAsMCwwLC42MDktLjE0OCwyLjQ3LDIuNDcsMCwwLDAsLjcxMS0uNzY0Yy4xODctLjI1Mi4zNDctLjQ1OS4zNTQtLjQ1OXMuMTQzLjE1OS4zLjM1MmE1LjA5MSw1LjA5MSwwLDAsMCwuNDIyLjQ2NywxLjA0OSwxLjA0OSwwLDAsMCwxLjU0OS0uMDgsNi4xMTEsNi4xMTEsMCwwLDAsLjQ2Ny0uNTcyYy4xNjgtLjIyOC4zMDctLjQxLjMxLS40cy4wNjYuMjY5LjE0MS41ODQuMTY5LjY3LjIwOS43ODlhMy44MjYsMy44MjYsMCwwLDAsLjY0MiwxLjIzNCwyLjE3LDIuMTcsMCwwLDEsLjQ2NiwxLjI0NiwzLjA1MSwzLjA1MSwwLDAsMS0uMzUyLDEuNDQ3LDIuMDcsMi4wNywwLDAsMC0uMjY3LjkzNCwyLjAxNywyLjAxNywwLDAsMCwuMjEzLjg1MS43NzMuNzczLDAsMCwwLDEuMDY5LjQxMywxLjM1MSwxLjM1MSwwLDAsMSwuMzE2LS4wNjhjLjIsMCwuMzE1LjE5My41NDIuODgxLjE1Ny40NzQuNSwxLjYzNy41LDEuNjk1LDAsLjAzLS4wMTYuMDUxLS4wMzkuMDUxYTEuNDg2LDEuNDg2LDAsMCwxLS40MDctLjIyNGMtLjItLjE0NC0yLjYxMi0yLjAyOS0zLjQwOC0yLjY2My0yLjEyOC0xLjY5My0yLjgyOC0yLjIzMy0zLjE3MS0yLjQ0Ni0uMzctLjIzLS42MjItLjI4NS0uODI3LS4xNzctLjI1NC4xMzMtMy43MjYsMi44NDctNS43NTEsNC41QTEwLjg0NiwxMC44NDYsMCwwLDEsOC42NSwyOC4yNTFjLS4xNDkuMDgzLS4xNDMuMDgxLS4xNDMuMDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjM5OGFhXFxcIi8+XCIsXG5cdFwiSGFtbFwiOiBcIjxwYXRoIGQ9XFxcIk0xNS4zMTEsMTYuMDQzLDEzLjQsMjkuNzI2YTYuMzIyLDYuMzIyLDAsMCwxLTUuOTU2LTEuMjVsMy4xLTEzLjI2Nkw0LjY5LDMuMzRhOC4wMzEsOC4wMzEsMCwwLDEsMy43OS0uNjQ2bDUuMTQ0LDkuNyw4LjkxNC03LjU4MXMzLDEuMDQxLDMuMjcsMi4wNDFsLTEwLjUsOS4xODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWNkZmE3XFxcIi8+PHBhdGggZD1cXFwiTTI3LjAxNiwxNy40MTFhNC4yNDQsNC4yNDQsMCwwLDAtLjU0MS0uODEyLDUuNyw1LjcsMCwwLDAtMS40NTgtMS4xODcsNy4zMzEsNy4zMzEsMCwwLDAtMS42ODctLjc5MWwtLjIyOS0uMDYyLS4xODctLjA2MmMtLjEyNS0uMDQyLS4yMjktLjEtLjMzMy0uMTQ2YTEuMjgyLDEuMjgyLDAsMCwxLS40NTgtLjQxN0ExLjc1NCwxLjc1NCwwLDAsMSwyMiwxMi42NDJhMi41MTgsMi41MTgsMCwwLDEsLjEtLjM3NWMuMDQyLS4xMjUuMDgzLS4yNS4xMjUtLjRhMi42OTEsMi42OTEsMCwwLDAsLjA2Mi0uNmwuMS0uMDgzLDEuMjUtMS4wNDFjLjIyOS0uMTg3LjQ1OC0uNC42ODctLjU4M2EyLjIsMi4yLDAsMCwxLC4yMjkuMTQ2cy42NDYuMDYyLDEtLjkxNmwtLjE4Ny0uMTI1LjEyNS0uMS4zMTItLjI3MWEuNjEzLjYxMywwLDAsMCwuMjI5LS4zNzUuNTI5LjUyOSwwLDAsMC0uNDE3LjEyNWwtLjMzMy4yNS0uMjI5LjE2N0wyMi4xODQsNi40NzhjLjE0Ni0uMTI1LjI3MS0uMjI5LjQxNy0uMzU0bC42LS41NDEuMDYyLS4wNjJjLjA2Mi4wNDIuMS4wODMuMTY3LjEyNS4xNDYuMS4zMTIuMjA4LjQ1OC4yOTJsLjkxNi41Yy4yOTIuMTY3LjYuMzMzLjkxNi40NzlhMy4zMjMsMy4zMjMsMCwwLDAsLjQ3OS4yMDhjLjA4My4wMjEuMTY3LjA2Mi4yNS4wODMuMDQyLDAsLjEuMDIxLjE0Ni4wMjFoLjFhLjE1MS4xNTEsMCwwLDAsLjEyNS0uMDgzVjcuMTIzYS4wNzcuMDc3LDAsMCwxLC4wMjEtLjA2MlY2Ljk3N2EuMTA4LjEwOCwwLDAsMC0uMDQyLS4wODNjLS4wMjEtLjA0Mi0uMDYyLS4wODMtLjA4My0uMTI1YTEuNTksMS41OSwwLDAsMC0uMTg3LS4xODdjLS4xMjUtLjEyNS0uMjcxLS4yMjktLjQtLjMzMy0uMjcxLS4yMDgtLjU2Mi0uNC0uODU0LS41ODNhNy41NDUsNy41NDUsMCwwLDAtLjktLjUsMy4zMjMsMy4zMjMsMCwwLDAtLjQ3OS0uMjA4Yy0uMDgzLS4wMjEtLjE2Ny0uMDYyLS4yNzEtLjA4My0uMDQyLDAtLjEtLjAyMS0uMTY3LS4wMjFhLjMxLjMxLDAsMCwwLS4xMjUuMDIxLjUyMi41MjIsMCwwLDAtLjE2Ny4xLDEuNiwxLjYsMCwwLDAtLjM3NS4yMDhsLS42MjUuMzU0Yy0uMTg3LjE0Ni0uNC4zMTItLjU4My40NThsLS4yMDgtLjE0NnMtLjg3NS4wODMtLjU4My42NDZsLjA4My4wODNjLS44MzMuNjg3LTEuNjQ1LDEuNC0yLjQ1NywyLjA4My0uODMzLjcwOC0xLjY0NSwxLjQxNi0yLjQ3OCwyLjE0NWwtMS4yMjksMS4wODNhMS44NzgsMS44NzgsMCwwLDEtLjIwOC4xODdjLS4wNDItLjEyNS0uMS0uMjI5LS4xNDYtLjMzM2wtLjI5Mi0uNjI1LS41NjItMS4yNWMtLjM3NS0uODMzLS43NS0xLjY2Ni0xLjE0NS0yLjVMMTEuMjA5LDQuODk1bC0uMTg3LS4zNzVoLjI1cy4wODMtLjY4Ny0uNDE3LS44MTJhMS40LDEuNCwwLDAsMC0uMjA4LjAyMWMtLjE4Ny0uMzc1LS4zNTQtLjc1LS41NDEtMS4xMjVoMGwtLjA4My0uMzEyQS4zMy4zMywwLDAsMCw5LjksMi4xYS4zNTIuMzUyLDAsMCwwLS4xLS4wNDJjLS4wNjItLjAyMS0uMS0uMDIxLS4xNjctLjA0MkExLjI4MSwxLjI4MSwwLDAsMCw5LjM1NSwyYTQuMDU3LDQuMDU3LDAsMCwwLS41MjEuMDQyLDguNzY3LDguNzY3LDAsMCwwLTEuMDIuMTg3Yy0uMzMzLjA4My0uNjY2LjE2Ny0xLC4yNzFhMy4yNzIsMy4yNzIsMCwwLDAtLjQ3OS4xODdsLS4yNS4xMjVjLS4wNDIuMDIxLS4wODMuMDYyLS4xMjUuMDgzTDUuOSwyLjk1OGMtLjAyMS4wMjEtLjAyMS4wNDItLjA0Mi4wNjJ2LjA2MmgwVjMuMWEuMTY0LjE2NCwwLDAsMCwuMS4xMjVjLjA0Mi4wMjEuMDYyLjA0Mi4wODMuMDQyYTEuMzI3LDEuMzI3LDAsMCwxLC4xNDYuMDQyLDEuMTg4LDEuMTg4LDAsMCwwLC4yNzEuMDIxLDQuMzg0LDQuMzg0LDAsMCwwLC41MjEtLjA0MmMuMzMzLS4wNDIuNjg3LS4wODMsMS4wMi0uMTQ2bDEuMDItLjE2N2MuMTY3LS4wMjEuMzMzLS4wNjIuNTIxLS4xLjE0Ni4yOTIuMjkyLjYuNDM3LjktLjk1OC4wODMtMi40NTcuMjA4LTMuMzk1LjMxMi0uMS0uMTg3LS4xODctLjM1NC0uMjkyLS41NDFhLjEyNy4xMjcsMCwwLDAtLjE0Ni0uMDYyLjEwOC4xMDgsMCwwLDAtLjA2Mi4xNDZjLjA2Mi4xNjcuMTI1LjMxMi4xODcuNDc5YTEuMTY3LDEuMTY3LDAsMCwwLS41LjEyNUExLjgyOCwxLjgyOCwwLDAsMCw2LjQsNS42NDVhMy41NjcsMy41NjcsMCwwLDEsLjQ1OC0uMTI1bC40MzcsMSwxLjI1LDIuODMyLDEuMjcsMi44MzJjLjQxNy45MzcuODU0LDEuODc0LDEuMjkxLDIuODMyaDBhLjAyLjAyLDAsMCwwLC4wMjEuMDIxbC0uMTg3LjYyNS0uNSwxLjc0OWMtLjMxMiwxLjE2Ni0uNiwyLjM1My0uOSwzLjUyTDkuMTA1LDIyLjdsLS40MTcsMS43N2MtLjI5MiwxLjE4Ny0uNTYyLDIuMzUzLS45LDMuNTJhLjEyNS4xMjUsMCwwLDAsLjAyMS4wODMsMy4wNzYsMy4wNzYsMCwwLDAsLjYuNTYyLDYuMDQ4LDYuMDQ4LDAsMCwwLC42ODcuNDE3LDkuNCw5LjQsMCwwLDAsMS41LjYsNi45NzIsNi45NzIsMCwwLDAsMS42MjQuMjcxLDMuNzI4LDMuNzI4LDAsMCwwLC44MzMtLjA0Miw2LjU0Nyw2LjU0NywwLDAsMCwuODMzLS4xNjcuMjU0LjI1NCwwLDAsMCwuMTY3LS4xODd2LS4wMjFjLjIyOS0xLjE0NS40MTctMi4zMTIuNjI1LTMuNDU3bC41ODMtMy40NzhjLjE4Ny0xLjE2Ni40LTIuMzEyLjU4My0zLjQ3OC4wMjEtLjEyNS4wNDItLjI3MS4wNjItLjQuMDQyLjA0Mi4wNjIuMS4xLjE0NmE0LjEzNyw0LjEzNywwLDAsMCwuNzA4LjY0Niw3LjIxMiw3LjIxMiwwLDAsMCwxLjU4My44MzMsMTEuNzc0LDExLjc3NCwwLDAsMCwxLjY2Ni41LDEwLjE4MiwxMC4xODIsMCwwLDAsMS4xLjE4NywyLjYyMSwyLjYyMSwwLDAsMC0uMjUsMS4yMDguMTE1LjExNSwwLDAsMCwuMDYyLjFoLjAyMWE1LjE2NCw1LjE2NCwwLDAsMCwxLjI3LjQ3OSw0LjMzMyw0LjMzMywwLDAsMCwxLjM3NS4wNjIsMi42MjcsMi42MjcsMCwwLDAsMS4zMzMtLjU2MiwyLjgyNCwyLjgyNCwwLDAsMCwuODEyLTEuMTY2bC4wMjEtLjAyMVYyMS4xbC4wNjItLjU2MnYtLjAyMWE1LjQyNyw1LjQyNywwLDAsMCwuNjI1LS40MTcsMi43MSwyLjcxLDAsMCwwLC42NDYtLjcyOSwxLjgzMywxLjgzMywwLDAsMCwuMjUtMSwyLjU2MywyLjU2MywwLDAsMC0uMjkyLS45NThabS0uNC0xMC41Wm0tMS40NzktMS4xYTcuMTIsNy4xMiwwLDAsMSwuODMzLjU0MWMuMTI1LjEuMjcxLjE4Ny40LjMxMmExLjI1NywxLjI1NywwLDAsMSwuMTY3LjE2N2wuMDQyLjA0MmgtLjA0MmMtLjA4My0uMDIxLS4xNDYtLjA0Mi0uMjI5LS4wNjItLjE0Ni0uMDYyLS4zMTItLjEyNS0uNDU4LS4xODdhNy4xMzIsNy4xMzIsMCwwLDEtLjg3NS0uNDc5QTUuNjEsNS42MSwwLDAsMSwyNC4yLDUuNTJhMi41LDIuNSwwLDAsMS0uMjI5LS4yNWwuMzEyLjEyNWE2LjQsNi40LDAsMCwxLC44NTQuNDE3Wm0tMS40MTYtLjkxNi4wMjEuMDIxdi4wNDJhLjAyLjAyLDAsMCwwLS4wMjEtLjAyMVY0Ljg5NVpNOC44NzYsMi41NjJhNS4wMjEsNS4wMjEsMCwwLDEtLjkzNy4zMzMsNS4zNDcsNS4zNDcsMCwwLDEtLjk3OS4xNjcsNC4wMTMsNC4wMTMsMCwwLDEtLjUuMDIxLjc4MS43ODEsMCwwLDEtLjIyOS0uMDIxSDYuMTY5Yy4wMjEsMCwuMDIxLS4wMjEuMDQyLS4wMjEuMDYyLS4wNDIuMTQ2LS4wNjIuMjA4LS4xLjE0Ni0uMDYyLjMxMi0uMS40NTgtLjE2Ny4zMTItLjA4My42NDYtLjE2Ny45NzktLjIyOWE4LjQsOC40LDAsMCwxLC45NzktLjEyNUExLjU3NiwxLjU3NiwwLDAsMCw5LjE0NywyLjRhMS41MzYsMS41MzYsMCwwLDEtLjI3MS4xNjdabTE0LjQ1Myw3LjEtMS4yOTEsMS0xLjI5MSwxLjAyYy0uMzU0LjI5Mi0uNzA4LjU4My0xLjA2Mi44NTQuMDIxLS4wMjEuMDQyLS4wNjIuMDYyLS4wODMuMTY3LS4yMjkuMzMzLS40MzcuNS0uNjQ2LjM1NC0uNDE3LjY4Ny0uODU0LDEuMDYyLTEuMjVzLjc3MS0uNzkxLDEuMTY2LTEuMTQ1YTQuODcyLDQuODcyLDAsMCwxLC42NDYtLjVsLjE4Ny0uMTI1Yy4xODcuMTQ2LjQuMjkyLjU4My40MzctLjE2Ny4xNDYtLjM3NS4yOTItLjU2Mi40MzdaTTguMDY0LDcuMWwuMS4xYTUuNjMsNS42MywwLDAsMSwuNTgzLjY0NiwyLjIxLDIuMjEsMCwwLDEsLjM3NS43MjkuOTIxLjkyMSwwLDAsMS0uMDYyLjYyNWwtLjAyMS0uMDYyTDguMDY0LDcuMVptMS4wMiwyLjE2NmEuNzIuNzIsMCwwLDAsLjE0Ni0uMjUuODY2Ljg2NiwwLDAsMCwuMDQyLS40NThBMS43LDEuNywwLDAsMCw4LjksNy43MjdhNC4wMTUsNC4wMTUsMCwwLDAtLjk3OS0uOWwtLjIyOS0uNDc5Yy0uMTQ2LS4zMTItLjI5Mi0uNjI1LS40NTgtLjkxNi4zMTItLjA4My42ODctLjIwOCwxLjEtLjMxMkEyMC4zMTMsMjAuMzEzLDAsMCwxLDkuMzU1LDdhNy45NjMsNy45NjMsMCwwLDEsLjc3MSwyLjU0MWMuMDIxLjIwOCwwLC40MzcsMCwuNjY2czAsLjQ1OC4wMjEuNjg3YTcuNjA5LDcuNjA5LDAsMCwwLC4xNDYuOTU4TDkuMDg0LDkuMjY4Wk0xNCwyNi4yNDJhLjkuOSwwLDAsMS0uMTg3LjIwOC40LjQsMCwwLDEtLjMzMy4xLjM1OC4zNTgsMCwwLDEtLjIyOS0uMjI5Ljk4MS45ODEsMCwwLDEtLjA4My0uMzU0LDIuMjc1LDIuMjc1LDAsMCwxLC4wNDItLjc1LDIuODE2LDIuODE2LDAsMCwxLC4yMjktLjcwOCwxLjQ3OCwxLjQ3OCwwLDAsMSwuMjA4LS4yOTIuMzQxLjM0MSwwLDAsMSwuMjkyLS4xMjVjLjEsMCwuMjA4LjEuMjcxLjIwOGEuNzQuNzQsMCwwLDEsLjA4My4xODdsLS4yNSwxLjQ3OWMtLjAyMS4xLS4wMjEuMTg3LS4wNDIuMjcxWm0xLjIyOS03LjE4NS0uMzc1LDIuMTg3YTMuMzI5LDMuMzI5LDAsMCwwLS4xLS40MzdjLS4xLS40LS4yMjktLjc3MS0uMzU0LTEuMTQ1YTE1LjUzNywxNS41MzcsMCwwLDAtLjk1OC0yLjE2NmMuMjI5Ljc3MS41LDEuNS43NzEsMi4yNDkuMTQ2LjM3NS4yNzEuNzUuNCwxLjFsLjE4Ny41NjJjMCwuMDIxLjAyMS4wNjIuMDIxLjA4My0uMDYyLjMzMy0uMTI1LjY2Ni0uMTY3LDEuMDJsLS4zMTIsMS45Yy0uMDIxLS4wNDItLjAyMS0uMDgzLS4wNDItLjEyNWEuNDg2LjQ4NiwwLDAsMC0uMzEyLS4yOTIuNTI1LjUyNSwwLDAsMC0uNDE3LjEyNSwxLjk0NCwxLjk0NCwwLDAsMC0uMjcxLjMxMiwyLjAzNiwyLjAzNiwwLDAsMC0uMjcxLjc1LDIuMTMxLDIuMTMxLDAsMCwwLDAsLjgxMiwxLjAyMSwxLjAyMSwwLDAsMCwuMTQ2LjQuNDg2LjQ4NiwwLDAsMCwuMzMzLjI3MS40MjguNDI4LDAsMCwwLC4zNzUtLjE2N2MuMDQyLS4wNDIuMDgzLS4xLjEyNS0uMTQ2LS4xNDYuOTc5LS4zMTIsMS45NTgtLjQ1OCwyLjk1N2EyLjcyNywyLjcyNywwLDAsMS0uNTYyLjEyNWMtLjI1LjA0Mi0uNS4wNjItLjc1LjA4M2E1LjUzMSw1LjUzMSwwLDAsMS0xLjU0MS0uMTQ2LDcuODQ2LDcuODQ2LDAsMCwxLTEuNS0uNDc5LDMuNjI1LDMuNjI1LDAsMCwxLTEuMjI5LS44NTRjLjMxMi0xLjE0NS42NjYtMi4yOTEsMS4wMi0zLjQzNmwuNTQxLTEuNzI5LjUyMS0xLjc0OWMuMzU0LTEuMTY2LjcwOC0yLjMzMywxLjA0MS0zLjUuMTY3LS41ODMuMzEyLTEuMTY2LjQ3OS0xLjc0OWEzLjYyNiwzLjYyNiwwLDAsMCwuMTg3LTEuODMzdi0uMDIxYy0uMDIxLS4wMjEtLjA0Mi0uMDIxLS4wNDIsMGEzLjEwOSwzLjEwOSwwLDAsMC0uMjUuMjkyYy0uMjI5LS41MjEtLjQ3OS0xLjAyLS43MDgtMS41NDFhNC43NjUsNC43NjUsMCwwLDEtLjE2Ny0uNTgzLDcuMTY1LDcuMTY1LDAsMCwxLS4yMDgtMS4zMTJjLS4wMjEtLjIyOS0uMDIxLS40MzctLjAyMS0uNjY2cy4wMjEtLjQ1OCwwLS42ODdhNy42MjUsNy42MjUsMCwwLDAtLjgzMy0yLjYsMTIuNTg3LDEyLjU4NywwLDAsMC0xLjEtMS44MzNjLjY4Ny0uMTg3LDEuNDE2LS4zNzUsMi0uNDc5LjA4My4xODcuMTg3LjM1NC4yNzEuNTQxTDExLjkzOCw3LjZsMS4yNSwyLjQzNy42MjUsMS4yMDguMzEyLjZjLjA4My4xMjUuMTI1LjI3MS4yMDguMzc1bC0uODEyLjc1YS4wNjkuMDY5LDAsMCwwLDAsLjEuMDczLjA3MywwLDAsMCwuMS4wMjFjLjQzNy0uMzEyLjg3NS0uNjQ2LDEuMzEyLS45NzlsMS4zMTItMWMuODc1LS42NjYsMS43MjktMS4zMzMsMi41ODItMnMxLjcwOC0xLjM1NCwyLjU2Mi0yLjA0MWwuMDIxLS4wMjFhMjQuMzE2LDI0LjMxNiwwLDAsMCwxLjg3NCwxLjY0NSw2LjE2Miw2LjE2MiwwLDAsMC0uODc1LjU0MSw4Ljk0Myw4Ljk0MywwLDAsMC0xLjIyOSwxLjEyNSwxMi4yNzksMTIuMjc5LDAsMCwwLTEuMDQxLDEuMjkxLDExLjc3OCwxMS43NzgsMCwwLDAtLjY0NiwxYy0xLjI3LDEuMDQxLTIuNTIsMi4xLTMuNzI4LDMuMjA3YS4xMjguMTI4LDAsMCwwLS4wMjEuMTQ2LjEzOC4xMzgsMCwwLDAsLjE0Ni4wNDIsOS4xMzQsOS4xMzQsMCwwLDAtLjMxMiwxLjI1Yy0uMTI1LjU4My0uMjUsMS4xNjYtLjM1NCwxLjc0OVptOS4yMDUsMi43OTFhMi41MjcsMi41MjcsMCwwLDEtMS4wMi40NTgsMy43NjcsMy43NjcsMCwwLDEtMS4xODcuMDQyLDcuMzYxLDcuMzYxLDAsMCwxLTEuMTQ1LS4yMDgsMi4wMzcsMi4wMzcsMCwwLDEsLjE2Ny0xLjA0MWMuMTQ2LjAyMS4yNzEuMDIxLjQxNy4wNDJhLjExNC4xMTQsMCwwLDAsLjEyNS0uMDgzLjEyNC4xMjQsMCwwLDAtLjA4My0uMTY3aDBjLS4xLS4wNDItLjE4Ny0uMDYyLS4yOTItLjFhMi43NzEsMi43NzEsMCwwLDEsLjI5Mi0uNGMuMTI1LS4xMjUuMjUtLjI1LjM3NS0uMzU0YTMuOTkyLDMuOTkyLDAsMCwwLC44NTQuNCwyLjg4MSwyLjg4MSwwLDAsMCwxLjEyNS4xLDEuNTUsMS41NSwwLDAsMCwxLjAyLS41NDEsMS41MjQsMS41MjQsMCwwLDAsLjM1NC0uOTE2Ljg1Ljg1LDAsMCwxLC4wMjEuNCw0LjUxMSw0LjUxMSwwLDAsMS0uMDgzLjUyMWwtLjA2Mi4zMTJMMjUsMjAuNDk0YS45MTkuOTE5LDAsMCwwLS4zMzMuMzU0Ljc1MS43NTEsMCwwLDAsLjQ3OSwwYy4wMjEsMCwuMDIxLS4wMjEuMDQyLS4wMjEtLjAyMS4wNjItLjAyMS4xLS4wNDIuMTY3YTIuNTUyLDIuNTUyLDAsMCwxLS43MDguODU0Wk0yNi41LDE5LjExOWEyLjIsMi4yLDAsMCwxLS40NTguNjI1LDIuNjM4LDIuNjM4LDAsMCwxLS4yNzEuMjI5LDIuNTg1LDIuNTg1LDAsMCwwLS4wNjItLjU2MiwxLjUzNCwxLjUzNCwwLDAsMC0uMDgzLS4yOTIuNTMxLjUzMSwwLDAsMC0uMTg3LS4yNWgwYy0uMDIxLDAtLjA0MiwwLS4wNDIuMDIxaDBhMS45NSwxLjk1LDAsMCwxLS41NjIuNzcxLDEuNDI5LDEuNDI5LDAsMCwxLS44MTIuMjkyLDIuODU3LDIuODU3LDAsMCwxLS45MTYtLjEyNWMtLjMxMi0uMDgzLS42MjUtLjE4Ny0uOTM3LS4yOTJsLS4wNDItLjAyMWEuMi4yLDAsMCwwLS4xODcuMDQyYy0uMTY3LjIwOC0uMjkyLjQtLjQzNy42LS4xLjE2Ny0uMTg3LjMxMi0uMjcxLjQ3OS0uMzc1LS4xNDYtLjcyOS0uMjcxLTEuMS0uNDE3LS41MjEtLjIwOC0xLjA0MS0uNDE3LTEuNTItLjY2NmE3LjY0OCw3LjY0OCwwLDAsMS0xLjQtLjgxMiwyLjk0OSwyLjk0OSwwLDAsMS0uOTc5LTEuMDYydi0uMDIxYS40MDkuNDA5LDAsMCwwLS4xODctLjE4N2MwLS4wNDIuMDIxLS4xLjAyMS0uMTQ2YTcuMzcsNy4zNywwLDAsMCwuMS0xLjUyYzEuNjg3LTEuMTg3LDMuMzMyLTIuNDM3LDQuOTU3LTMuNzI4bC0uMDYyLjE4N2EzLjI3LDMuMjcsMCwwLDAtLjE0NiwxLjAyQTIuMDg5LDIuMDg5LDAsMCwwLDIyLjEyMiwxNS4xYTIuODI1LDIuODI1LDAsMCwwLC40NzkuMTg3bC4yNS4wNjIuMjA4LjA0MmE2LjY0NSw2LjY0NSwwLDAsMSwxLjU0MS42MjUsNi4xNTYsNi4xNTYsMCwwLDEsMS4zMTIuOTc5LDIuMjc1LDIuMjc1LDAsMCwxLC43MDgsMS4zMzMsMS41MSwxLjUxLDAsMCwxLS4xMjUuNzkxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzNmM2UyOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi42NjcsMjMuOTA5YTIuMTYxLDIuMTYxLDAsMCwwLS4zNTQuNzcxLDEuNTU2LDEuNTU2LDAsMCwwLS4wNjIuNDE3bC0uMDIxLjQxN2E0LjUzMyw0LjUzMywwLDAsMCwuMTQ2LDEuNjY2LDcuNjQ3LDcuNjQ3LDAsMCwwLC42NjYsMS41MmMtLjA4My0uMjcxLS4xODctLjUyMS0uMjcxLS43NzFzLS4xNjctLjUyMS0uMjI5LS43OTFhNS44OSw1Ljg5LDAsMCwxLS4xLTEuNmwuMDIxLS40MTdhMi41NTIsMi41NTIsMCwwLDEsLjA0Mi0uNCwzLjEzNywzLjEzNywwLDAsMSwuMjkyLS43MjksMi45NjcsMi45NjcsMCwwLDEsLjUyMS0uNjI1LDIuNTkxLDIuNTkxLDAsMCwxLC42NjYtLjQ3OSwyLjc2LDIuNzYsMCwwLDAtMS4zMTIsMS4wMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzZjNlMjlcXFwiLz5cIixcblx0XCJIYW5kbGViYXJzXCI6IFwiPHBhdGggZD1cXFwiTTEyLjMsMTMuMWE0LjIzOCw0LjIzOCwwLDAsMSwyLjcyOC45QTQuNTkyLDQuNTkyLDAsMCwxLDE2LDE1LjEyN2E0LjE0NCw0LjE0NCwwLDAsMSwyLjAzOS0xLjc0Nyw0Ljc1Nyw0Ljc1NywwLDAsMSwzLjI4Ni4wMTksNy44MzMsNy44MzMsMCwwLDEsMi40NDMsMS41NThjLjU2OC41LDEuMDk0LDEuMDUsMS42NzksMS41MzNhMy40LDMuNCwwLDAsMCwxLjAxOS42MTQsMS40MiwxLjQyLDAsMCwwLDEuNDYtLjM3OS45NjUuOTY1LDAsMCwwLS4wNTUtMS4zMjMuNTQ1LjU0NSwwLDAsMC0uOC4xMDguNjU5LjY1OSwwLDAsMCwuMDUuNjg2LDEuMjIyLDEuMjIyLDAsMCwxLS42LS45MjYsMS4wMjIsMS4wMjIsMCwwLDEsLjY5MS0xLjAzMiwyLjAwNSwyLjAwNSwwLDAsMSwyLjMxMi42NjEsMy4yNTgsMy4yNTgsMCwwLDEsLjQ0LDIuMzA4LDIuNzYyLDIuNzYyLDAsMCwxLTEuMTM3LDEuODcyLDUuMDUxLDUuMDUxLDAsMCwxLTMuMDEzLjgsOC40ODgsOC40ODgsMCwwLDEtMi45MzItLjYzYy0xLjU1OC0uNjI2LTMuMDE2LTEuNDkyLTQuNjI1LTEuOTkyYTEzLjk3NywxMy45NzcsMCwwLDAtMS43LS4zNjNjLS40My4wMDctLjg2MS0uMDE1LTEuMjkuMDE1YTUuNjkyLDUuNjkyLDAsMCwwLTEuNTM0LjM0OWMtMS42MzYuNTA5LTMuMTE2LDEuNC00LjcsMi4wMjRhNy42MjUsNy42MjUsMCwwLDEtNC4yNDkuNDc0LDMuNzQsMy43NCwwLDAsMS0yLjEyNS0xLjE0QTIuODU2LDIuODU2LDAsMCwxLDIsMTYuNjY4YTIuNzIyLDIuNzIyLDAsMCwxLC41NTUtMS44NzQsMS45OTQsMS45OTQsMCwwLDEsMS42ODctLjY4LDEuNDI1LDEuNDI1LDAsMCwxLDEuMDYzLjUyLDEuMDQsMS4wNCwwLDAsMSwuMTIyLjkxMSwxLjQ1NywxLjQ1NywwLDAsMS0uNTU2LjY0NC42NDMuNjQzLDAsMCwwLC4wNTEtLjY4MS41NDcuNTQ3LDAsMCwwLS44MzEtLjA3OS45NzUuOTc1LDAsMCwwLS4xNTEsMS4xMSwxLjMzMSwxLjMzMSwwLDAsMCwxLjAzMi42MjMsMi4zMzIsMi4zMzIsMCwwLDAsMS42LS43QTI4LjUyNiwyOC41MjYsMCwwLDEsOS40LDE0LjA1Myw1LjI1MSw1LjI1MSwwLDAsMSwxMi4zLDEzLjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzE5NzcwXFxcIi8+XCIsXG5cdFwiSGFza2VsbFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjAuOTk2XFxcIiB5MT1cXFwiLTIwNi4wNTdcXFwiIHgyPVxcXCIwLjk1MVxcXCIgeTI9XFxcIi0yMDYuMDU3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDI1OS45NDEsIDAsIDAsIC0xODMuNDg3LCAtMjM3Ljk0MSwgLTM3NzkyLjc4OClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYWJhMDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiNDJjMDFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2hhc2tlbGwyPC90aXRsZT48cGF0aCBkPVxcXCJNMiwyNS44ODIsOC41ODgsMTYsMiw2LjExOEg2Ljk0MUwxMy41MjksMTYsNi45NDEsMjUuODgyWm02LjU4OCwwTDE1LjE3NywxNiw4LjU4OCw2LjExOGg0Ljk0MUwyNi43MDYsMjUuODgySDIxLjc2NWwtNC4xMTctNi4xNzYtNC4xMTgsNi4xNzZaTTI0LjUxLDIwLjExOGwtMi4yLTMuMjk0SDMwdjMuMjk0Wm0tMy4yOTQtNC45NDEtMi4yLTMuMjk0SDMwdjMuMjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHRcIkhheGVcIjogXCI8cGF0aCBkPVxcXCJNMTYsNS41LDUuNSwxNiwxNiwyNi41LDI2LjUsMTYsMTYsNS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZjY4NzEyXFxcIi8+PHBhdGggZD1cXFwiTTIsMiwxNiw1LjUsNS41LDE2LDIsMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhYjIwYlxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwyLDI2LjUsMTYsMTYsNS41LDMwLDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNDcyMTZcXFwiLz48cGF0aCBkPVxcXCJNMzAsMzAsMTYsMjYuNSwyNi41LDE2LDMwLDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZjI1YzE5XFxcIi8+PHBhdGggZD1cXFwiTTIsMzAsNS41LDE2LDE2LDI2LjUsMiwzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2Y4OWMwZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNiw1LjUsMiwySDlsNywzLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYmM3MDdcXFwiLz48cGF0aCBkPVxcXCJNMTYsNS41LDMwLDJIMjNMMTYsNS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZmJjNzA3XFxcIi8+PHBhdGggZD1cXFwiTTE2LDI2LjUsMzAsMzBIMjNsLTctMy41XFxcIiBzdHlsZT1cXFwiZmlsbDojZjY4NzEyXFxcIi8+PHBhdGggZD1cXFwiTTE2LDI2LjUsMiwzMEg5bDctMy41XFxcIiBzdHlsZT1cXFwiZmlsbDojZjI1YzE5XFxcIi8+PHBhdGggZD1cXFwiTTUuNSwxNiwyLDMwVjIzbDMuNS03XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmMjAwXFxcIi8+PHBhdGggZD1cXFwiTTUuNSwxNiwyLDJWOWwzLjUsN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjIwMFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi41LDE2LDMwLDJWOWwtMy41LDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTQ3MWRcXFwiLz48cGF0aCBkPVxcXCJNMjYuNSwxNiwzMCwzMFYyM2wtMy41LTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTQ3MWRcXFwiLz5cIixcblx0XCJITFNMXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI5LjUyNSAyMS45NDcgNy41NiAyMS45NDcgNy41NiAxNy4xIDMuOTU4IDE3LjEgMy45NTggMjEuOTQ3IDIgMjEuOTQ3IDIgMTAuMDQ0IDMuOTU4IDEwLjA0NCAzLjk1OCAxNC43OTIgNy41NiAxNC43OTIgNy41NiAxMC4wNDQgOS41MjUgMTAuMDQ0IDkuNTI1IDIxLjk0N1xcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuNjkyIDIxLjk0NyAxMS41MTMgMjEuOTQ3IDExLjUxMyAxMC4wNDQgMTMuNDcyIDEwLjA0NCAxMy40NzIgMTkuNzczIDE2LjY5MiAxOS43NzMgMTYuNjkyIDIxLjk0N1xcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy40NjIsMjEuNDkxVjE4LjgzNGEzLjY3NiwzLjY3NiwwLDAsMCwxLjE0Ni45MDksMi44MDksMi44MDksMCwwLDAsMS4yNDkuMywyLjA1LDIuMDUsMCwwLDAsLjY0Ni0uMDkyLDEuMzA5LDEuMzA5LDAsMCwwLC40NjEtLjI1MiwxLjAyOSwxLjAyOSwwLDAsMCwuMjc2LS4zODIsMS4yMzEsMS4yMzEsMCwwLDAsLjA5MS0uNDc4LDEuMywxLjMsMCwwLDAtLjE0NS0uNjIzLDEuOTA3LDEuOTA3LDAsMCwwLS40LS41MDYsNC4wNzcsNC4wNzcsMCwwLDAtLjYtLjQ0OHEtLjM0Ni0uMjE1LS43NDYtLjQzOWE0LjA0NSw0LjA0NSwwLDAsMS0xLjUxOS0xLjQxOSwzLjg4NCwzLjg4NCwwLDAsMS0uNS0yLjAyNiw0LjIzMiw0LjIzMiwwLDAsMSwuMjczLTEuNiwzLjAyLDMuMDIsMCwwLDEsLjc0NC0xLjEsMi45MzgsMi45MzgsMCwwLDEsMS4wODgtLjYzNCw0LjE2Nyw0LjE2NywwLDAsMSwxLjMxLS4yLDUuODE2LDUuODE2LDAsMCwxLDEuMi4xMTEsMy44LDMuOCwwLDAsMSwuOTY3LjM0NXYyLjQ4MmEyLjg1OSwyLjg1OSwwLDAsMC0uNDc2LS4zNjUsMy4yMTIsMy4yMTIsMCwwLDAtLjUzLS4yNjJBMy4xLDMuMSwwLDAsMCwyMS40NiwxMmEyLjc5NCwyLjc5NCwwLDAsMC0uNTEyLS4wNSwxLjk5NCwxLjk5NCwwLDAsMC0uNjA2LjA4NywxLjM0NywxLjM0NywwLDAsMC0uNDYxLjI0NSwxLjA5MiwxLjA5MiwwLDAsMC0uMjkxLjM3NywxLjE0NCwxLjE0NCwwLDAsMC0uMS40OTQsMS4yLDEuMiwwLDAsMCwuMTE1LjUzNiwxLjY1NywxLjY1NywwLDAsMCwuMzI4LjQ0OCwzLjQ2MSwzLjQ2MSwwLDAsMCwuNTE1LjQxNWMuMi4xMzYuNDMuMjc1LjY4Ni40MTlhNy4wOTQsNy4wOTQsMCwwLDEsLjkzNi42MzUsMy43MTIsMy43MTIsMCwwLDEsLjcxMy43NTksMy4yNjksMy4yNjksMCwwLDEsLjQ1NS45NjcsNC41NzMsNC41NzMsMCwwLDEsLjE1OCwxLjI2Niw0LjQzOSw0LjQzOSwwLDAsMS0uMjc3LDEuNjcyLDIuODg4LDIuODg4LDAsMCwxLS43NDksMS4xLDIuODIzLDIuODIzLDAsMCwxLTEuMS42LDQuNzQyLDQuNzQyLDAsMCwxLTEuMzI1LjE4Miw1LjQ3Niw1LjQ3NiwwLDAsMS0xLjM2MS0uMTY2QTMuNDEsMy40MSwwLDAsMSwxNy40NjIsMjEuNDkxWlxcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMzAgMjEuOTQ3IDI0LjgyMiAyMS45NDcgMjQuODIyIDEwLjA0NCAyNi43OCAxMC4wNDQgMjYuNzggMTkuNzczIDMwIDE5Ljc3MyAzMCAyMS45NDdcXFwiIHN0eWxlPVxcXCJmaWxsOmJsdWVcXFwiLz5cIixcblx0XCJIVE1MXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI1LjkwMiAyNy4yMDEgMy42NTUgMiAyOC4zNDUgMiAyNi4wOTUgMjcuMTk3IDE1Ljk4NSAzMCA1LjkwMiAyNy4yMDFcXFwiIHN0eWxlPVxcXCJmaWxsOiNlNDRmMjZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDI3Ljg1OCAyNC4xNyAyNS41OTMgMjYuMDkyIDQuMDYxIDE2IDQuMDYxIDE2IDI3Ljg1OFxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMTMuNDA3IDExLjkxIDEzLjQwNyAxMS42MjggMTAuMjQyIDE2IDEwLjI0MiAxNiA3LjE1MSAxNS45ODkgNy4xNTEgOC4yNSA3LjE1MSA4LjMyNCA3Ljk4MSA5LjA4MyAxNi40OTggMTYgMTYuNDk4IDE2IDEzLjQwN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMjEuNDM0IDE1Ljk4NiAyMS40MzggMTIuNTQ0IDIwLjUwOSAxMi4zMjQgMTguMDQ0IDEwLjY1MSAxOC4wNDQgOS4yMjEgMTguMDQ0IDkuNjU0IDIyLjg5NiAxNS45ODYgMjQuNjU0IDE2IDI0LjY1IDE2IDIxLjQzNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuOTg5IDEzLjQwNyAxNS45ODkgMTYuNDk4IDE5Ljc5NSAxNi40OTggMTkuNDM3IDIwLjUwNyAxNS45ODkgMjEuNDM3IDE1Ljk4OSAyNC42NTMgMjIuMzI2IDIyLjg5NiAyMi4zNzIgMjIuMzc0IDIzLjA5OCAxNC4yMzcgMjMuMTc0IDEzLjQwNyAyMi4zNDEgMTMuNDA3IDE1Ljk4OSAxMy40MDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljk4OSA3LjE1MSAxNS45ODkgOS4wNzEgMTUuOTg5IDEwLjIzNSAxNS45ODkgMTAuMjQyIDIzLjQ0NSAxMC4yNDIgMjMuNDQ1IDEwLjI0MiAyMy40NTUgMTAuMjQyIDIzLjUxNyA5LjU0OCAyMy42NTggNy45ODEgMjMuNzMyIDcuMTUxIDE1Ljk4OSA3LjE1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIkhUVFBcIjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCIxMi4yNzhcXFwiIGN5PVxcXCIyNC41NTdcXFwiIHI9XFxcIjE4LjM3MVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgLTAuMDAxLCAzNC4wMDEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDNlOWZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE1NVxcXCIgc3RvcC1jb2xvcj1cXFwiI2QzZTlmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NVxcXCIgc3RvcC1jb2xvcj1cXFwiIzQwNzRhZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzM2NDg2Y1xcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJiXFxcIiBjeD1cXFwiMTAuNjU3XFxcIiBjeT1cXFwiMjYuNzQ2XFxcIiByPVxcXCIyNi42NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgLTAuMDAxLCAzNC4wMDEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMTY1XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImNcXFwiIGN4PVxcXCItNDUuMDVcXFwiIGN5PVxcXCI5LjI4NVxcXCIgcj1cXFwiNC4xMTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTIxLjk3MSA0MS45NDIpIHJvdGF0ZSgxNDMuNzM0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImRcXFwiIGN4PVxcXCItNDEuNDU2XFxcIiBjeT1cXFwiMzIuMTU0XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgzLjU3MSA4Ny4wNzUpIHJvdGF0ZSgxNDMuNzM0KSBzY2FsZSgxLjI5NylcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJlXFxcIiBjeD1cXFwiLTQ4LjQ4NVxcXCIgY3k9XFxcIjEzLjIzOVxcXCIgcj1cXFwiNC4xMTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTIzLjA4NCA1NS40MTMpIHJvdGF0ZSgxNDMuNzM0KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImZcXFwiIGN4PVxcXCItNDAuODgzXFxcIiBjeT1cXFwiMTYuMDM2XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC44NywgMC42MzksIC0wLjYzOCwgLTAuODcsIC05LjM1MSwgNDcuNzA2KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNjYuNTAyXFxcIiB5MT1cXFwiMi4yMTlcXFwiIHgyPVxcXCItNjQuNjI2XFxcIiB5Mj1cXFwiNi43NDlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC45MzksIC0wLjg3OSwgLTAuNjgzLCAtMC43MywgODQuODEsIC0zMy42MjgpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIi0yNi43OTFcXFwiIHkxPVxcXCIzOS4xNTlcXFwiIHgyPVxcXCItMjQuOTk5XFxcIiB5Mj1cXFwiNDQuNjgzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuMTMxLCAwLjYxMywgMC40NzcsIC0wLjg3OSwgMjEuNjQ4LCA2OS4wNzEpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaVxcXCIgeDE9XFxcIi02My4zODRcXFwiIHkxPVxcXCI4LjE3N1xcXCIgeDI9XFxcIi02My41N1xcXCIgeTI9XFxcIjQuNjlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC45MTgsIC0wLjg1OSwgLTAuNjY4LCAtMC43MTMsIDc3Ljg1NywgLTM2LjQ5MylcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiLTk5LjI1OVxcXCIgeTE9XFxcIjg5LjU0NVxcXCIgeDI9XFxcIi05OC44MjVcXFwiIHkyPVxcXCI5My4wMjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoLTEuMjgsIC0wLjEyNiwgLTAuMDk4LCAwLjk5NSwgLTEwMS42MzcsIC05My4wMTUpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwia1xcXCIgY3g9XFxcIi0yMC43MTJcXFwiIGN5PVxcXCI1Ny42MVxcXCIgcj1cXFwiMi44MzZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMCwgLTAuODQzLCAtMC43MjEsIDAsIDI2LjYyNSwgLTIxLjY5NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM3MjlmY2ZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzYjYxYTZcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwibFxcXCIgY3g9XFxcIi0yMC43MTJcXFwiIGN5PVxcXCIzOS44NThcXFwiIHI9XFxcIjIuODM2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI2LjYyNSA2My4wOTYpIHJvdGF0ZSg5MCkgc2NhbGUoMC44NDMgMC43MjEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzI5ZmNmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTA5ZTJmXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9odHRwPC90aXRsZT48cGF0aCBkPVxcXCJNMjguMDI2LDE0LjJBMTEuODc3LDExLjg3NywwLDEsMSwxNi4xNDksMi4zMjUsMTEuODc4LDExLjg3OCwwLDAsMSwyOC4wMjYsMTQuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTQ5LDI2LjM4NkExMi4xODMsMTIuMTgzLDAsMSwxLDI4LjMzMywxNC4yLDEyLjIsMTIuMiwwLDAsMSwxNi4xNDksMjYuMzg2Wm0wLTIzLjc1NEExMS41NzEsMTEuNTcxLDAsMSwwLDI3LjcyLDE0LjIsMTEuNTg0LDExLjU4NCwwLDAsMCwxNi4xNDksMi42MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzkzOTZjXFxcIi8+PHBhdGggZD1cXFwiTTI3LjY5MywxMi40MjRoMGwtLjMyOC4zNzFhNyw3LDAsMCwwLS42NTYtLjY0NGwtLjUuMDc0LS40Ni0uNTE5di42NDNsLjM5NC4zLjI2Mi4zLjM1LS40Yy4wODguMTY1LjE3NS4zMy4yNjMuNXYuNDk1bC0uMzk0LjQ0NS0uNzIyLjUtLjU0Ni41NDUtLjM1LS40LjE3NS0uNDQ1LS4zNS0uNC0uNTkxLTEuMjYyLS41LS41NjlMMjMuNiwxMi4xbC4yLjcxOC4zNzEuNDIxYTE3LjA2OSwxNy4wNjksMCwwLDAsLjcsMS43ODMsOS45NzksOS45NzksMCwwLDAsMS4yNjgtLjF2LjM0N2wtLjUyNSwxLjI4Ny0uNDgxLjU0NC0uMzk0Ljg0M1YxOS4zM2wuMTMyLjU0NS0uMjE5LjI0Ny0uNDgyLjMtLjUuNDIxLjQxNi40Ny0uNTY5LjUuMTA5LjMyMS0uODUzLjk2NkgyMi4ybC0uNDgxLjNoLS4zMDd2LS40bC0uMTMtLjc5M2MtLjE2OS0uNS0uMzQ2LS45OTEtLjUyNS0xLjQ4NCwwLS4zNjQuMDIyLS43MjUuMDQ0LTEuMDg5bC4yMTktLjQ5NS0uMzA3LS41OTUuMDIyLS44MTctLjQxNi0uNDcuMjA4LS42OC0uMzM4LS4zODRIMTkuNmwtLjItLjIyMy0uNTkxLjM3Mi0uMjQtLjI3My0uNTQ3LjQ3TDE2LjkxMSwxNS4yN2wtLjQzNy0xLjA0LjM5NC0uNTkzLS4yMTktLjI0Ny40ODEtMS4xMzljLjM5NS0uNDkxLjgwNy0uOTYzLDEuMjI1LTEuNDM2bC43NDQtLjIuODMxLS4xLjU2OS4xNDkuODA5LjgxNi4yODQtLjMyMS4zOTMtLjA0OS43NDQuMjQ3SDIzLjNsLjM5NC0uMzQ3LjE3NS0uMjQ3LS4zOTQtLjI0Ny0uNjU2LS4wNDlhNi42LDYuNiwwLDAsMC0uNTY4LS43NDNsLS4yMTkuMS0uMDg4LjY0NC0uMzk0LS40NDUtLjA4Ny0uNS0uNDM3LS4zNDZoLS4xNzZsLjQzOC40OTUtLjE3NS40NDUtLjM1LjEuMjE5LS40NDUtLjM5NC0uMi0uMzQ5LS40LS42NTcuMTQ4LS4wODcuMi0uMzk0LjI0OC0uMjE5LjU0NS0uNTQ2LjI3Mi0uMjQxLS4yNzJIMTcuODNWOS40MjhsLjU2OS0uM2guNDM3bC0uMDg4LS4zNDZMMTguNCw4LjQzOGwuNTktLjEyNC4zMjgtLjM3MS4yNjItLjQ0NmguNDgybC0uMTMyLS4zNDYuMzA3LS4ydi40bC42NTYuMTQ4LjY1Ni0uNTQ0LjA0NC0uMjQ4LjU2OC0uNGE0LjM1Myw0LjM1MywwLDAsMC0uNjEyLjFWNS45NjNsLjIxOS0uNWgtLjIxOWwtLjQ4LjQ0NS0uMTMyLjI0OC4xMzIuMzQ3LS4yMTkuNTkzLS4zNS0uMi0uMzA2LS4zNDYtLjQ4Mi4zNDYtLjE3NS0uNzkyLjgzMS0uNTQ0di0uM2wuNTI1LS4zNDYuODMxLS4yLjU2OS4yLDEuMDQ5LjItLjI2Mi4zSDIyLjUxbC41NjkuNTk0LjQzNy0uNDk1LjEzMy0uMjE4YTE1LjUzLDE1LjUzLDAsMCwxLDIuNjM1LDMuMTQ3QTExLjQ1MiwxMS40NTIsMCwwLDEsMjcuNjkzLDEyLjQyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi44NjEsNS41MTdsLS4wNDQuMy4zMDcuMi41MjQtLjM0Ni0uMjYyLS4zLS4zNS4yLS4xNzQtLjA1XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTcuMzQzLDMuNDg4bC0xLjEzOC0uNDQ2LTEuMzEyLjE0OC0xLjYxOS40NDUtLjMwNi4zLDEuMDA2LjY5M3YuNGwtLjM5NC40LjUyNSwxLjA0LjM0OS0uMi40MzgtLjY5M2ExNS4wNTMsMTUuMDUzLDAsMCwwLDEuOTI0LS43NDNsLjUyNS0xLjMzN1xcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE4LjUyNCw3LjY0NywxOC4zNDksNy4ybC0uMzA3LjEuMDg4LjU0NC4zOTQtLjJcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC43LDcuNTQ3bC0uMDg4LjU5NS40ODEtLjEuMzUtLjM0Ni0uMzA2LS4zYy0uMS0uMjc0LS4yMjEtLjUyOS0uMzUtLjc5MmgtLjI2MnYuM2wuMTc0LjJ2LjQ0NVxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTEyLjIyNSwxNi45NTNsLS4zNS0uNjkzLS42NTYtLjE0OC0uMzUtLjk0LS44NzUuMS0uNzQzLS41NDQtLjc4OC42OTN2LjEwOWEzLDMsMCwwLDEtLjc0My0uMjA5bC0uMTc1LS40OTVWMTQuMjhsLS41MjUuMDQ5cS4wNjYtLjUyLjEzMS0xLjAzOUg2Ljg0NWwtLjMwNi40LS4zMDYuMTQ4TDUuOCwxMy41ODdsLS4wNDQtLjU0NS4wODgtLjU5NC42NTYtLjQ5NUg3LjAybC4wODctLjMuNjU2LjE0OC40ODEuNTk1LjA4OC0uOTkxLjgzMS0uNjkzLjMwNi0uNzQzLjYxMi0uMjQ3LjM1LS40OTUuNzg3LS4xNDkuMzk0LS41OTNIMTAuNDMybC43NDQtLjM0N0gxMS43bC43NDQtLjI0OC4wODgtLjMtLjI2My0uMjQ4LS4zMDYtLjEuMDg4LS4zLS4yMTktLjQ0NS0uNTI1LjIuMDg4LS40LS42MTItLjM0N0wxMC4zLDYuOGwuMDQ0LjMtLjQ4MS4yLS4zMDYuNjQzLS4xMzEtLjU5NEw4LjU5NCw3bC0uMTMxLS40NDUsMS4wOTQtLjY0NC40ODEtLjQ0NS4wNDQtLjU0NC0uMjYyLS4xNDktLjM1LS4wNS0uMjE5LjU0NXMtLjM2Ni4wNzItLjQ2LjA5NUExMi41LDEyLjUsMCwwLDAsNC42LDEzLjM3MWE2Ljc4OSw2Ljc4OSwwLDAsMCwuNDA5LjcxMWwuOTE4LjU0NC45MTguMjQ4LjM5NC41LjYxMi40NDUuMzUtLjA0OS4yNjIuMTE4di4wOGwtLjM1Ljk0LS4yNjMuNC4wODguMi0uMjE5Ljc0Mi43ODcsMS40MzYuNzg3LjY5My4zNS40OTVMOS42LDIxLjlsLjI2My41OTNMOS42LDIzLjYzN3MtLjAyMS0uMDA3LjAxMy4xMDdhNS4yNzgsNS4yNzgsMCwwLDAsMS40ODguODA5bC4xNjEtLjEyMy0uMDg3LS4yNDcuMzUtLjM0Ny4xMzEtLjM0Ny41NjktLjIuNDM3LTEuMDg5LS4xMzEtLjMuMzA2LS40NDUuNjU2LS4xNDkuMzUtLjc5Mi0uMDg4LS45OS41MjUtLjc0My4wODgtLjc0M2MtLjcxOC0uMzU2LTEuNDMtLjcyMy0yLjE0My0xLjA4OVxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTExLjI2Myw1LjcxNWwuNDM3LjNoLjM1VjUuNjY2bC0uNDM3LS4yLS4zNS4yNDdcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4xMjYsNS4zMTlsLS4yMTkuNTQ0aC40MzhsLjIxOS0uNWMuMTg5LS4xMzMuMzc2LS4yNjguNTY4LS40bC40MzguMTQ5Ljg3NS41OTQuNDM4LS40LS40ODItLjItLjIxOS0uNDQ2LS44MzEtLjEtLjA0NC0uMjQ4LS4zOTQuMS0uMTc1LjM0Ni0uMjE5LS40NDYtLjA4Ny4yLjA0NC41LS4zNS4zXFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTEuNyw0LjA4MWwuMjE5LS4yLjQzOC0uMWE2LjksNi45LDAsMCwxLC45MTgtLjM0N2wtLjE3NC0uMy0uNTY1LjA4MS0uMjY3LjI2Ni0uNDQuMDY0LS4zOTEuMTg0LS4xOS4wOTItLjExNi4xNTUuNTY4LjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40NDQsOC43ODVsLjI2My0uNC0uMzk0LS4zLjEzMS42OTNcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNDksMjUuNzgzQTExLjU4LDExLjU4LDAsMSwxLDI3LjcyOSwxNC4yLDExLjU5MywxMS41OTMsMCwwLDEsMTYuMTQ5LDI1Ljc4M1ptMC0yMi41NDhBMTAuOTY4LDEwLjk2OCwwLDEsMCwyNy4xMTcsMTQuMiwxMC45OCwxMC45OCwwLDAsMCwxNi4xNDksMy4yMzVaXFxcIiBzdHlsZT1cXFwib3BhY2l0eTowLjM5NTYwNDQwMTgyNjg1ODU7aXNvbGF0aW9uOmlzb2xhdGU7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTUuNTQxLDEwLjI0MWE0LjExNSw0LjExNSwwLDEsMCw2LjYzNi00Ljg2NmgwQTQuMTE1LDQuMTE1LDAsMCwwLDUuNTQsMTAuMjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTcuODM2LDguNTU4YTEuMjY4LDEuMjY4LDAsMSwwLDIuMDQ2LTEuNWgwYTEuMjY4LDEuMjY4LDAsMCwwLTIuMDQ2LDEuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTUyLDI0LjhhNS4zMzcsNS4zMzcsMCwxLDAsOC42MDctNi4zMTJ2MEE1LjMzNyw1LjMzNywwLDAsMCwxNy45NSwyNC44WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45MjgsMjIuNjE2YTEuNjQ1LDEuNjQ1LDAsMSwwLDIuNjUzLTEuOTQ2aDBhMS42NDUsMS42NDUsMCwwLDAtMi42NTMsMS45NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTQuODU5LDE4LjQ5M0E0LjExNSw0LjExNSwwLDEsMCwxMS41LDEzLjYyNmgwYTQuMTE1LDQuMTE1LDAsMCwwLTYuNjM2LDQuODY2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjE1NCwxNi44MDlhMS4yNjgsMS4yNjgsMCwxLDAsMi4wNDYtMS41aDBhMS4yNjgsMS4yNjgsMCwwLDAtMi4wNDYsMS41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40MDgsMTAuMjY5QTQuNDQxLDQuNDQxLDAsMSwwLDE5LjU3LDUuMDE2aDBhNC40NDEsNC40NDEsMCwxLDAtNy4xNjIsNS4yNTNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTE0Ljg4NSw4LjQ1MmExLjM2OSwxLjM2OSwwLDEsMCwyLjIwOC0xLjYxOWgwYTEuMzY5LDEuMzY5LDAsMSwwLTIuMjA4LDEuNjE5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMi42OCwyNi4yMzhhMy44MywzLjgzLDAsMCwxLTIuOTA5LTEuMDg3Yy0xLjEzMy0xLjIxLTEuMi0zLjI1NS0uMi01Ljc1N2EyMS41NDIsMjEuNTQyLDAsMCwxLDUuMzA3LTcuMzI2QzIwLjA2NCw3LjIxNSwyNS45NDUsNS4zNTYsMjguMjcsNy44MzljMS4xMzMsMS4yMTEsMS4yLDMuMjU1LjIsNS43NTdhMjEuNTUzLDIxLjU1MywwLDAsMS01LjMwOCw3LjMyNkEyMS41NTEsMjEuNTUxLDAsMCwxLDE1LjUsMjUuNzMzLDkuMjI5LDkuMjI5LDAsMCwxLDEyLjY4LDI2LjIzOFpNMjUuMzQyLDcuMjhjLTIuNywwLTYuNiwxLjkwOC0xMC4xLDUuMTgzQTIxLDIxLDAsMCwwLDEwLjA3MSwxOS42Yy0uOTIxLDIuMy0uODg3LDQuMTM4LjA5NCw1LjE4N3MyLjgxNywxLjIsNS4xNjkuNDM3YTIxLDIxLDAsMCwwLDcuNDYtNC42OTIsMjEsMjEsMCwwLDAsNS4xNzUtNy4xMzJjLjkyMS0yLjMuODg4LTQuMTM4LS4wOTUtNS4xODdBMy4zNCwzLjM0LDAsMCwwLDI1LjM0Miw3LjI4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42ODEsMjIuMDk0YTIwLjYzMywyMC42MzMsMCwwLDEtOS4zMzktMi43NTlDNi4xLDE1Ljk1LDIuNDczLDEwLjk1Nyw0LjA5NCw3Ljk2OGMuNzktMS40NTgsMi43LTIuMTc1LDUuNC0yLjAxMkEyMS41NDIsMjEuNTQyLDAsMCwxLDE4LjEyLDguNjc0YTIxLjU0NSwyMS41NDUsMCwwLDEsNi45ODcsNS43NDZjMS42LDIuMTY3LDIuMDUxLDQuMTYzLDEuMjYxLDUuNjIxQzI1LjYyMiwyMS40MTYsMjMuOTE1LDIyLjA5NCwyMS42ODEsMjIuMDk0Wk04Ljc1OSw2LjQ3NGMtMi4xLDAtMy41NzIuNjEyLTQuMTksMS43NTFDMy4xMTcsMTAuOSw2LjcyLDE1LjY3NCwxMi42LDE4Ljg2czExLjg0MywzLjYsMTMuMjk0LjkyNGMuNjg1LTEuMjYzLjI1MS0zLjA1NC0xLjIyLTUuMDQyYTIxLDIxLDAsMCwwLTYuODEtNS41OTNBMjEsMjEsMCwwLDAsOS40NTksNi41UTkuMSw2LjQ3NCw4Ljc1OSw2LjQ3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMTAsMjQuMDc4YTMuNzU3LDMuNzU3LDAsMCwxLTIuODUxLTEuMDY1Yy0xLjExLTEuMTg3LTEuMTgxLTMuMTg5LS4yLTUuNjM5YTIxLjA2MiwyMS4wNjIsMCwwLDEsNS4xODktNy4xNjNjNS4wNzMtNC43NDcsMTAuODMtNi41NjMsMTMuMS00LjEzMmgwYzIuMjc1LDIuNDMxLjA4Myw4LjA1My00Ljk5LDEyLjhhMjEuMDU5LDIxLjA1OSwwLDAsMS03LjQ5MSw0LjdBOS4wMjQsOS4wMjQsMCwwLDEsMTAsMjQuMDc4Wk0yMi4zNzMsNS41NTNjLTIuNjMsMC02LjQzOSwxLjg2NC05Ljg1Niw1LjA2MkEyMC41LDIwLjUsMCwwLDAsNy40NjMsMTcuNThjLS45LDIuMjM5LS44NjYsNC4wMzQuMDksNS4wNTVzMi43NDUsMS4xNzIsNS4wMzguNDI0YTIwLjUxMywyMC41MTMsMCwwLDAsNy4yODQtNC41ODJjNC43NjYtNC40Niw2Ljk5NC05Ljg1Myw0Ljk2NS0xMi4wMmgwQTMuMjU2LDMuMjU2LDAsMCwwLDIyLjM3Myw1LjU1M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTEyLDE5LjQxM2MtLjg2LDAtMS43NDgtLjA0My0yLjY1OS0uMTMzQzcuNzg0LDE4LjU4NCwyLjUwNywxNS4zODgsMi44NCwxMmgwYy4zMzMtMy4zODMsNi4xMzMtNS40OSwxMy4yLTQuNzkxczEyLjM0NSwzLjg5MiwxMi4wMTIsNy4yNzVDMjcuNzYzLDE3LjQzNiwyMy4zMjQsMTkuNDEzLDE3LjUxMiwxOS40MTNaTTMuMzc4LDEyLjA1N2MtLjMsMy4wMzEsNC44NzMsNi4wMywxMS41MjgsNi42ODZzMTIuMzEyLTEuMjc3LDEyLjYxMS00LjMwOFMyMi42NDQsOC40MDYsMTUuOTg4LDcuNzUsMy42NzcsOS4wMjcsMy4zNzgsMTIuMDU3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNqKVxcXCIvPjxwYXRoIGQ9XFxcIk02LjI1MSwyOS45NjZoNi42NzRWMjAuODA5aDIuOTgxTDkuNTQ4LDExLjQzNCwzLjI5NSwyMC43ODJsMi45NTguMDMxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNrKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi45MjQsMzAuMDQ1SDYuMjUxYS4wNDkuMDQ5LDAsMCwxLS4wMzktLjAyM2MtLjAxLS4wMTUtLjAxNi0zLjEzNS0uMDE2LTMuMTU2bDAtNS45NzUtMi45LS4wM2EuMDYuMDYsMCwwLDEtLjA1MS0uMDQ4LjEuMSwwLDAsMSwuMDExLS4wODVMOS41MDgsMTEuMzhhLjA1Ni4wNTYsMCwwLDEsLjA0MS0uMDI1LjA1LjA1LDAsMCwxLC4wNC4wMjRsNi4zNTcsOS4zNzVhLjEuMSwwLDAsMSwuMDExLjA4Ni4wNTkuMDU5LDAsMCwxLS4wNTEuMDQ4SDEyLjk4djkuMDc4QzEyLjk4LDMwLjAxLDEyLjk1NSwzMC4wNDUsMTIuOTI0LDMwLjA0NVptLTYuNjE4LS4xNThoNi41NjJWMjAuODA5YzAtLjA0NC4wMjUtLjA3OS4wNTYtLjA3OWgyLjg1TDkuNTQ5LDExLjU0OSwzLjQyNCwyMC43bDIuODMuMDNjLjAzMSwwLC4wNTUuMDM2LjA1NS4wNzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMTgzODY4XFxcIi8+PHBhdGggZD1cXFwiTTE5LjA1MywyMC41ODdsLTIuOTU4LjAzMSw2LjI1NCw5LjM0OCw2LjM1Ny05LjM3NUgyNS43MjRWMTEuNDM0SDE5LjA1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbClcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzgsMTEuNDM0djkuMDc4aDIuOTI1YS4wNTkuMDU5LDAsMCwxLC4wNTEuMDQ4LjEuMSwwLDAsMS0uMDExLjA4NmwtNi4zNTcsOS4zNzVhLjA1LjA1LDAsMCwxLS4wNC4wMjQuMDU2LjA1NiwwLDAsMS0uMDQxLS4wMjVsLTYuMjU0LTkuMzQ4YS4xLjEsMCwwLDEtLjAxMS0uMDg1LjA2LjA2LDAsMCwxLC4wNTEtLjA0OGwyLjktLjAzLDAtNS45NzVjMC0uMDIxLjAwNi0zLjE0MS4wMTYtMy4xNTZhLjA0OS4wNDksMCwwLDEsLjAzOS0uMDIzaDYuNjc0QzI1Ljc1NSwxMS4zNTUsMjUuNzgsMTEuMzksMjUuNzgsMTEuNDM0Wm0tNi42NzIsOS4xNTNjMCwuMDQzLS4wMjUuMDc5LS4wNTUuMDc5bC0yLjgzLjAzLDYuMTI1LDkuMTU2LDYuMjI2LTkuMTgxaC0yLjg1Yy0uMDMxLDAtLjA1Ni0uMDM1LS4wNTYtLjA3OVYxMS41MTNIMTkuMTA3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzE4Mzg2OFxcXCIvPlwiLFxuXHRcIklkcmlzXCI6IFwiPHBhdGggZD1cXFwiTTEzLjM3Niw2LjJjMy42LDEuMSw0LjUsMiw1LjgsNS4yLS4zLTQtMS45LTUuNi01LjgtNS4yWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhhMDgxOVxcXCIvPjxwYXRoIGQ9XFxcIk04LjM3NiwxMi40YzIuMy43LDUsMS4zLDYsNS43LjQtNS41LTIuMi01LjgtNi01LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+PHBhdGggZD1cXFwiTTkuOTc2LDguOGMzLjUuNyw1LjcsMS43LDcsNi4yLjMtNS44LTIuOS02LjQtNy02LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+PHBhdGggZD1cXFwiTTE0LjU3NiwyYzE5LjEsMTIuNC00LjIsMTIuNy44LDI3LjFsMywuOWMtOC4zLTExLjIsMTguNC0xNy0zLjgtMjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+XCIsXG5cdFwiSW5pXCI6IFwiPHBhdGggZD1cXFwiTTIzLjI2NSwyNC4zODFsLjktLjg5NGM0LjE2NC4xMzYsNC4yMjgtLjAxLDQuNDExLS40MzhsMS4xNDQtMi43ODVMMjkuODA1LDIwbC0uMDkzLS4yMzFjLS4wNDktLjEyMi0uMi0uNDg2LTIuOC0yLjk2NVYxNS41YzMtMi44OSwyLjkzNi0zLjAzOCwyLjc2NS0zLjQ2MUwyOC41MzgsOS4yMjVjLS4xNzEtLjQyMi0uMjM2LS41ODctNC4zNy0uNDc0bC0uOS0uOTNhMjAuMTY2LDIwLjE2NiwwLDAsMC0uMTQxLTQuMTA2bC0uMTE2LS4yNjMtMi45NzQtMS4zYy0uNDM4LS4yLS41OTItLjI3Mi0zLjQsMi43ODZsLTEuMjYyLS4wMTljLTIuODkxLTMuMDg2LTMuMDI4LTMuMDMtMy40NjEtMi44NTVMOS4xNDksMy4xODJjLS40MzMuMTc1LS41ODYuMjM3LS40MTgsNC40MzdsLS44OTMuODljLTQuMTYyLS4xMzYtNC4yMjYuMDEyLTQuNDA3LjQzOEwyLjI4NSwxMS43MzMsMi4xOTUsMTJsLjA5NC4yMzJjLjA0OS4xMi4xOTQuNDgsMi44LDIuOTYybDAsMS4zYy0zLDIuODktMi45MzUsMy4wMzgtMi43NjMsMy40NjJsMS4xMzgsMi44MTdjLjE3NC40MzEuMjM2LjU4NCw0LjM2OS40NzZsLjkuOTM1YTIwLjI0MywyMC4yNDMsMCwwLDAsLjEzNyw0LjFsLjExNi4yNjUsMi45OTMsMS4zMDhjLjQzNS4xODIuNTg2LjI0NywzLjM4Ni0yLjhsMS4yNjIuMDE2YzIuODk1LDMuMDksMy4wNDMsMy4wMywzLjQ2NiwyLjg1OWwyLjc1OS0xLjExNUMyMy4yODgsMjguNjQ0LDIzLjQ0LDI4LjU4MywyMy4yNjUsMjQuMzgxWk0xMS40MDcsMTcuODU3YTQuOTU3LDQuOTU3LDAsMSwxLDYuNDg4LDIuODI0QTUuMDE0LDUuMDE0LDAsMCwxLDExLjQwNywxNy44NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTliOGM0XFxcIi8+XCIsXG5cdFwiSW9cIjogXCI8cGF0aCBkPVxcXCJNMiwyLjg4N0g3LjA3NVY3LjUxSDJabS4wNTIsNi44M0g3LjA0VjI4LjYyNkgyLjA1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTMuMjcxLDI2LjQ1NGE5Ljc5MSw5Ljc5MSwwLDAsMS0yLjYxNi03LjE3OCwxMC4xNDgsMTAuMTQ4LDAsMCwxLDIuNjE2LTcuMzQzLDkuMzIxLDkuMzIxLDAsMCwxLDcuMDQ3LTIuNzIsOS4zNCw5LjM0LDAsMCwxLDcuMDc1LDIuNzJBMTAuMTY4LDEwLjE2OCwwLDAsMSwzMCwxOS4yNzZhOS44MDksOS44MDksMCwwLDEtMi42MDcsNy4xNzgsOS40NTYsOS40NTYsMCwwLDEtNy4wNzUsMi42NTlBOS40MzYsOS40MzYsMCwwLDEsMTMuMjcxLDI2LjQ1NFptMTAuNDM2LTIuOTcyYTYuNyw2LjcsMCwwLDAsMS4xNjYtNC4yNTgsNi45NDMsNi45NDMsMCwwLDAtMS4xNjYtNC4zNTQsNC4wNDcsNC4wNDcsMCwwLDAtMy4zODktMS40ODYsNC4wMjIsNC4wMjIsMCwwLDAtMy4zOCwxLjQ4Niw2Ljk5MSw2Ljk5MSwwLDAsMC0xLjE1Niw0LjM1NCw2Ljc0NCw2Ljc0NCwwLDAsMCwxLjE1Niw0LjI1OCw0LjA1Myw0LjA1MywwLDAsMCwzLjM4LDEuNDZBNC4wNzgsNC4wNzgsMCwwLDAsMjMuNzA3LDIzLjQ4MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0XCJKYXZhXCI6IFwiPHBhdGggZD1cXFwiTTEyLjMyNSwyMy42NTRzLTEuMDcuNjIyLjc2MS44MzNhMTYuMDIzLDE2LjAyMywwLDAsMCw1LjgtLjI0NiwxMC4wODgsMTAuMDg4LDAsMCwwLDEuNTQxLjc1MmMtNS40ODEsMi4zNDktMTIuNDA1LS4xMzYtOC4xLTEuMzM5XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTExLjY1NiwyMC41ODhzLTEuMi44ODguNjMzLDEuMDc4YTIyLjYxOCwyMi42MTgsMCwwLDAsNy40ODEtLjM1OSwzLjMyLDMuMzIsMCwwLDAsMS4xNTIuN2MtNi42MjcsMS45MzgtMTQuMDA5LjE1My05LjI2Ni0xLjQyMVxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zLDE1LjM4OGEyLjA1MSwyLjA1MSwwLDAsMS0uMzU1LDIuOTU0czMuNDI5LTEuNzcsMS44NTQtMy45ODdjLTEuNDcxLTIuMDY3LTIuNi0zLjA5NSwzLjUwOC02LjYzNiwwLDAtOS41ODYsMi4zOTQtNS4wMDcsNy42NjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNTUyLDI1LjkyMXMuNzkyLjY1Mi0uODcyLDEuMTU3Yy0zLjE2NC45NTgtMTMuMTY4LDEuMjQ4LTE1Ljk0OC4wMzgtMS0uNDM1Ljg3NC0xLjAzOCwxLjQ2NC0xLjE2NGEzLjgsMy44LDAsMCwxLC45NjYtLjEwOGMtMS4xMTEtLjc4My03LjE4MSwxLjUzNy0zLjA4MywyLjIsMTEuMTc2LDEuODEyLDIwLjM3Mi0uODE2LDE3LjQ3My0yLjEyNFxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi44NCwxNy40MTJzLTUuMDg5LDEuMjA5LTEuOCwxLjY0OGEzOC4yMjUsMzguMjI1LDAsMCwwLDYuNzMxLS4wNzJjMi4xMDYtLjE3OCw0LjIyMS0uNTU1LDQuMjIxLS41NTVhOC45MzQsOC45MzQsMCwwLDAtMS4yOC42ODVjLTUuMTY4LDEuMzU5LTE1LjE1MS43MjctMTIuMjc3LS42NjNhOS42MjksOS42MjksMCwwLDEsNC40MDctMS4wNDJcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMjEuOTY5LDIyLjUxNWM1LjI1My0yLjczLDIuODI0LTUuMzUzLDEuMTI5LTVhMy45MzIsMy45MzIsMCwwLDAtLjYuMTYxLjk1Ny45NTcsMCwwLDEsLjQ0OS0uMzQ2YzMuMzU0LTEuMTc5LDUuOTMzLDMuNDc4LTEuMDgzLDUuMzIyYS40NTguNDU4LDAsMCwwLC4xMDYtLjEzOFxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC44LDJzMi45MDksMi45MS0yLjc1OSw3LjM4NmMtNC41NDYsMy41OS0xLjAzNyw1LjYzNywwLDcuOTc1LTIuNjUzLTIuMzk0LTQuNi00LjUtMy4yOTQtNi40NjNDMTQuNjY0LDguMDE5LDE5Ljk3Niw2LjYyMywxOC44LDJcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMTMuMzU2LDI5LjkxMmM1LjA0Mi4zMjMsMTIuNzg2LS4xNzksMTIuOTY5LTIuNTY1LDAsMC0uMzUzLjktNC4xNjcsMS42MjNhNDEuNDU4LDQxLjQ1OCwwLDAsMS0xMi43Ni4ycy42NDUuNTMzLDMuOTU5Ljc0NlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPlwiLFxuXHRcIkphdmFTY3JpcHRcIjogXCI8cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNWRlMTlcXFwiLz48cGF0aCBkPVxcXCJNMjAuODA5LDIzLjg3NWEyLjg2NiwyLjg2NiwwLDAsMCwyLjYsMS42YzEuMDksMCwxLjc4Ny0uNTQ1LDEuNzg3LTEuMywwLS45LS43MTYtMS4yMjItMS45MTYtMS43NDdsLS42NTgtLjI4MmMtMS45LS44MDktMy4xNi0xLjgyMi0zLjE2LTMuOTY0LDAtMS45NzMsMS41LTMuNDc2LDMuODUzLTMuNDc2YTMuODg5LDMuODg5LDAsMCwxLDMuNzQyLDIuMTA3TDI1LDE4LjEyOEExLjc4OSwxLjc4OSwwLDAsMCwyMy4zMTEsMTdhMS4xNDUsMS4xNDUsMCwwLDAtMS4yNTksMS4xMjhjMCwuNzg5LjQ4OSwxLjEwOSwxLjYxOCwxLjZsLjY1OC4yODJjMi4yMzYuOTU5LDMuNSwxLjkzNiwzLjUsNC4xMzMsMCwyLjM2OS0xLjg2MSwzLjY2Ny00LjM2LDMuNjY3YTUuMDU1LDUuMDU1LDAsMCwxLTQuNzk1LTIuNjkxWm0tOS4yOTUuMjI4Yy40MTMuNzMzLjc4OSwxLjM1MywxLjY5MywxLjM1My44NjQsMCwxLjQxLS4zMzgsMS40MS0xLjY1M1YxNC44NTZoMi42MzF2OC45ODJjMCwyLjcyNC0xLjYsMy45NjQtMy45MjksMy45NjRhNC4wODUsNC4wODUsMCwwLDEtMy45NDctMi40WlxcXCIvPlwiLFxuXHRcIkpTT05cIjogXCI8cGF0aCBkPVxcXCJNNC4wMTQsMTQuOTc2YTIuNTEsMi41MSwwLDAsMCwxLjU2Ny0uNTE4QTIuMzc3LDIuMzc3LDAsMCwwLDYuMzg2LDEzLjEsMTUuMjYxLDE1LjI2MSwwLDAsMCw2LjYsMTAuMTU2cS4wMTItMi4wODUuMDc1LTIuNzQ3YTUuMjM2LDUuMjM2LDAsMCwxLC40MTgtMS42ODYsMy4wMjUsMy4wMjUsMCwwLDEsLjc1NS0xLjAxOEEzLjA0NiwzLjA0NiwwLDAsMSw5LDQuMTI1LDYuNzYyLDYuNzYyLDAsMCwxLDEwLjU0NCw0aC43VjUuOTZoLS4zODdhMi4zMzgsMi4zMzgsMCwwLDAtMS43MjMuNDY4QTMuNCwzLjQsMCwwLDAsOC43MDksOC41MmEzNi4wNTQsMzYuMDU0LDAsMCwxLS4xMzcsNC4xMzMsNC43MzQsNC43MzQsMCwwLDEtLjc2OCwyLjA2QTQuNTY3LDQuNTY3LDAsMCwxLDYuMSwxNmEzLjgwOSwzLjgwOSwwLDAsMSwxLjk5MiwxLjc1NCw4Ljg2MSw4Ljg2MSwwLDAsMSwuNjE4LDMuODY1cTAsMi40MzUuMDUsMi45QTEuNzU1LDEuNzU1LDAsMCwwLDkuMjY0LDI1LjdhMi42MzksMi42MzksMCwwLDAsMS41OTIuMzM3aC4zODdWMjhoLS43YTUuNjU1LDUuNjU1LDAsMCwxLTEuNzczLS4yLDIuOTcsMi45NywwLDAsMS0xLjMyNC0uOTMsMy4zNTMsMy4zNTMsMCwwLDEtLjY4MS0xLjYzQTI0LjE3NSwyNC4xNzUsMCwwLDEsNi42LDIyLjAwNiwxNi40NjksMTYuNDY5LDAsMCwwLDYuMzg2LDE4LjlhMi40MDgsMi40MDgsMCwwLDAtLjgwNS0xLjM2MSwyLjQ4OSwyLjQ4OSwwLDAsMC0xLjU2Ny0uNTI0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y1ZGUxOVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy45ODYsMTcuMDExYTIuNDg5LDIuNDg5LDAsMCwwLTEuNTY3LjUyNCwyLjQwOCwyLjQwOCwwLDAsMC0uODA1LDEuMzYxLDE2LjQ2OSwxNi40NjksMCwwLDAtLjIxMiwzLjEwOSwyNC4xNzUsMjQuMTc1LDAsMCwxLS4xNjksMy4yMzQsMy4zNTMsMy4zNTMsMCwwLDEtLjY4MSwxLjYzLDIuOTcsMi45NywwLDAsMS0xLjMyNC45Myw1LjY1NSw1LjY1NSwwLDAsMS0xLjc3My4yaC0uN1YyNi4wNGguMzg3YTIuNjM5LDIuNjM5LDAsMCwwLDEuNTkyLS4zMzcsMS43NTUsMS43NTUsMCwwLDAsLjUwNi0xLjE4NnEuMDUtLjQ2Mi4wNS0yLjlhOC44NjEsOC44NjEsMCwwLDEsLjYxOC0zLjg2NUEzLjgwOSwzLjgwOSwwLDAsMSwyNS45LDE2YTQuNTY3LDQuNTY3LDAsMCwxLTEuNy0xLjI4Niw0LjczNCw0LjczNCwwLDAsMS0uNzY4LTIuMDYsMzYuMDU0LDM2LjA1NCwwLDAsMS0uMTM3LTQuMTMzLDMuNCwzLjQsMCwwLDAtLjQyNS0yLjA5MiwyLjMzOCwyLjMzOCwwLDAsMC0xLjcyMy0uNDY4aC0uMzg3VjRoLjdBNi43NjIsNi43NjIsMCwwLDEsMjMsNC4xMjVhMy4wNDYsMy4wNDYsMCwwLDEsMS4xNDkuNTgxLDMuMDI1LDMuMDI1LDAsMCwxLC43NTUsMS4wMTgsNS4yMzYsNS4yMzYsMCwwLDEsLjQxOCwxLjY4NnEuMDYyLjY2Mi4wNzUsMi43NDdhMTUuMjYxLDE1LjI2MSwwLDAsMCwuMjEyLDIuOTQ3LDIuMzc3LDIuMzc3LDAsMCwwLC44MDUsMS4zNTUsMi41MSwyLjUxLDAsMCwwLDEuNTY3LjUxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNWRlMTlcXFwiLz5cIixcblx0XCJKU09ONVwiOiBcIjxwYXRoIGQ9XFxcIk0xMi44MTUsMTUuMTY3bC42OC01LjY3Nmg2LjQ4OXYyaC00LjRMMTUuMzI5LDEzLjdhMi40LDIuNCwwLDAsMSwuMjUyLS4xMjIsMi45NjIsMi45NjIsMCwwLDEsLjM3NC0uMTMsMi45LDIuOSwwLDAsMSwuNDU4LS4xMDYsMi44MzQsMi44MzQsMCwwLDEsLjUxMi0uMDQ2LDMuOTgzLDMuOTgzLDAsMCwxLDEuNDY2LjI1MiwyLjczNiwyLjczNiwwLDAsMSwxLjA3Ni43MjMsMy4xNjcsMy4xNjcsMCwwLDEsLjY2NCwxLjE2OCw1LDUsMCwwLDEsLjIyOCwxLjU4OCw0LjE1Nyw0LjE1NywwLDAsMS0uMjM2LDEuMzg3LDMuMzA3LDMuMzA3LDAsMCwxLTEuOSwyLjAyOSw0LjMsNC4zLDAsMCwxLTEuNzE1LjMxMiw0Ljc1LDQuNzUsMCwwLDEtMS40NTgtLjIyOCw0LjA1NCw0LjA1NCwwLDAsMS0xLjI1Mi0uNjU2LDMuMzU5LDMuMzU5LDAsMCwxLS44NzgtMS4wNDYsMi43ODcsMi43ODcsMCwwLDEtLjMyLTEuMzgySDE1LjE4YTEuNDU4LDEuNDU4LDAsMCwwLC4zOS45NywxLjM4MywxLjM4MywwLDAsMCwxLjU1OC4yMDYsMS4wODksMS4wODksMCwwLDAsLjQtLjQxMiwxLjc0OSwxLjc0OSwwLDAsMCwuMjA2LS42MTgsNC4zLDQuMywwLDAsMCwuMDYyLS43NCwyLjcwOSwyLjcwOSwwLDAsMC0uMDkyLS43NCwxLjUwNiwxLjUwNiwwLDAsMC0uMjgyLS41NTgsMS4yMjksMS4yMjksMCwwLDAtLjUtLjM0OSwxLjc4LDEuNzgsMCwwLDAtLjcxOC0uMTMsMi4xMjEsMi4xMjEsMCwwLDAtLjUuMDU0LDEuODA1LDEuODA1LDAsMCwwLS4zODIuMTM4LDEuMzE4LDEuMzE4LDAsMCwwLS4yNzQuMTksMS4yOCwxLjI4LDAsMCwwLS4xOS4ybC0yLjA0OC0uNDgyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTUuOTg1LDIzLjM0M2E0LjQ1LDQuNDUsMCwwLDEtMS4zMTEtLjU4LDMuMiwzLjIsMCwwLDEtLjg0OC0uODI0LDMuMDEyLDMuMDEyLDAsMCwxLS40NTgtMS4wMDgsNC44NzksNC44NzksMCwwLDEtLjEzLTEuMTQzdi0xLjU1YTIuMywyLjMsMCwwLDAtLjA3Ni0uNjE4LDEuMTg0LDEuMTg0LDAsMCwwLS4yMjItLjQ2Ni45NjkuOTY5LDAsMCwwLS4zODItLjMwNkExLjMyNCwxLjMyNCwwLDAsMCwyLDE2Ljc0NFYxNS4wMTJhMS4wNzQsMS4wNzQsMCwwLDAsLjkzNy0uNCwxLjg0MSwxLjg0MSwwLDAsMCwuMy0xLjF2LTEuNTVhNC44NzksNC44NzksMCwwLDEsLjEzLTEuMTQzLDMuMDM3LDMuMDM3LDAsMCwxLC40NTgtMS4wMDhBMy4xNywzLjE3LDAsMCwxLDQuNjcxLDlhNC40ODIsNC40ODIsMCwwLDEsMS4zMTEtLjU4bC40OCwxLjM0NGExLjIyMiwxLjIyMiwwLDAsMC0uNDg4LjMyOCwxLjc0MiwxLjc0MiwwLDAsMC0uMzA2LjUsMi41MjQsMi41MjQsMCwwLDAtLjE2LjYzNCw1LjgyNyw1LjgyNywwLDAsMC0uMDQ2Ljc0djEuNTVBMi44NDQsMi44NDQsMCwwLDEsNS4xMjYsMTQuOWEyLjM3LDIuMzcsMCwwLDEtMS4wNzYuOTgzLDIuMzU2LDIuMzU2LDAsMCwxLDEuMDc2Ljk5MiwyLjgwOCwyLjgwOCwwLDAsMSwuMzM2LDEuMzc0djEuNTVhNS44MjcsNS44MjcsMCwwLDAsLjA0Ni43NCwyLjU4NiwyLjU4NiwwLDAsMCwuMTYuNjM0LDEuNjg0LDEuNjg0LDAsMCwwLC4zMDYuNUExLjIyMiwxLjIyMiwwLDAsMCw2LjQ2MiwyMmMwLS4wMDUtLjQ3NywxLjM0NC0uNDc3LDEuMzQ0XFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTguMjE1LDE5LjM5M2ExLjI4OSwxLjI4OSwwLDAsMSwuMS0uNTEyLDEuMjEyLDEuMjEyLDAsMCwxLC4yOS0uNCwxLjM3MywxLjM3MywwLDAsMSwuNDUtLjI3NCwxLjYzNywxLjYzNywwLDAsMSwuNTgtLjEsMS41NTUsMS41NTUsMCwwLDEsLjU3Mi4xLDEuMjY5LDEuMjY5LDAsMCwxLC40NS4yNzQsMS4wNzcsMS4wNzcsMCwwLDEsLjI5LjQsMS4yOTQsMS4yOTQsMCwwLDEsMCwxLjAyNCwxLjE1MSwxLjE1MSwwLDAsMS0uMjkuNDEyLDEuMzg4LDEuMzg4LDAsMCwxLS40NS4yNjgsMS42MTMsMS42MTMsMCwwLDEtLjU3Mi4xLDEuNTc4LDEuNTc4LDAsMCwxLS41OC0uMSwxLjQwOSwxLjQwOSwwLDAsMS0uNDUtLjI2OCwxLjIyOSwxLjIyOSwwLDAsMS0uMzktLjkyNG0wLTYuMDg4YTEuMjg5LDEuMjg5LDAsMCwxLC4xLS41MTIsMS4yMTIsMS4yMTIsMCwwLDEsLjI5LS40LDEuMzczLDEuMzczLDAsMCwxLC40NS0uMjc0LDEuNjM3LDEuNjM3LDAsMCwxLC41OC0uMSwxLjU1NSwxLjU1NSwwLDAsMSwuNTcyLjEsMS4yNjksMS4yNjksMCwwLDEsLjQ1LjI3NCwxLjA3NywxLjA3NywwLDAsMSwuMjkuNCwxLjI5NCwxLjI5NCwwLDAsMSwwLDEuMDI0LDEuMTUxLDEuMTUxLDAsMCwxLS4yOS40MTIsMS4zODgsMS4zODgsMCwwLDEtLjQ1LjI2OCwxLjYxMywxLjYxMywwLDAsMS0uNTcyLjEsMS41NzgsMS41NzgsMCwwLDEtLjU4LS4xLDEuNDA5LDEuNDA5LDAsMCwxLS40NS0uMjY4LDEuMjI5LDEuMjI5LDAsMCwxLS4zOS0uOTI0XFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTI0LjI0LDIwLjI5M2EzLjY0OCwzLjY0OCwwLDAsMS0uMTIyLjkyOSw0LjUzNCw0LjUzNCwwLDAsMS0uMzM2Ljg5MSw0LjcwNiw0LjcwNiwwLDAsMS0uNS44MDcsNC4wMDUsNC4wMDUsMCwwLDEtLjYxLjY2NGwtMS4zLS42MWMuMDgxLS4xNzMuMTY4LS4zNDkuMjYtLjUyNmE0Ljg0Niw0Ljg0NiwwLDAsMCwuMjY4LS41NTgsNC40NDMsNC40NDMsMCwwLDAsLjIwNi0uNjU2LDMuNDA2LDMuNDA2LDAsMCwwLC4wODQtLjhWMTguNjU2aDIuMDU5bC0uMDA4LDEuNjM2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTI1LjUzOCwyMS45OTRhMS4yNTEsMS4yNTEsMCwwLDAsLjQ4OC0uMzI4LDEuNzA3LDEuNzA3LDAsMCwwLC4zMDYtLjUsMi41MjUsMi41MjUsMCwwLDAsLjE2LS42MzQsNS44MjYsNS44MjYsMCwwLDAsLjA0Ni0uNzR2LTEuNTVhMi44NDQsMi44NDQsMCwwLDEsLjMzNi0xLjM4MiwyLjM2NCwyLjM2NCwwLDAsMSwxLjA4NC0uOTgzLDIuMzY0LDIuMzY0LDAsMCwxLTEuMDg0LS45ODMsMi44NDQsMi44NDQsMCwwLDEtLjMzNi0xLjM4MnYtMS41NWE1LjgyNyw1LjgyNywwLDAsMC0uMDQ2LS43NCwyLjU4NiwyLjU4NiwwLDAsMC0uMTYtLjYzNCwxLjY4NCwxLjY4NCwwLDAsMC0uMzA2LS41LDEuMjIyLDEuMjIyLDAsMCwwLS40ODgtLjMyOGwuNDgtMS4zMzhBNC40NSw0LjQ1LDAsMCwxLDI3LjMyOSw5YTMuMDkyLDMuMDkyLDAsMCwxLC44NDguODE1LDIuODkyLDIuODkyLDAsMCwxLC40NSwxLjAwOCw0LjYwNiw0LjYwNiwwLDAsMSwuMTM4LDEuMTQzdjEuNTVhMi42NTUsMi42NTUsMCwwLDAsLjA2OC42MjYsMS40NDgsMS40NDgsMCwwLDAsLjIyMi40NzQsMS4wMzcsMS4wMzcsMCwwLDAsLjM4Mi4zLDEuMzc2LDEuMzc2LDAsMCwwLC41NjQuMTA2djEuNzMxYTEuMDc3LDEuMDc3LDAsMCwwLS45NDYuNDEyLDEuODI4LDEuODI4LDAsMCwwLS4yOSwxLjA4NHYxLjU1YTQuNjA2LDQuNjA2LDAsMCwxLS4xMzgsMS4xNDMsMi45MTUsMi45MTUsMCwwLDEtLjQ1LDEuMDA4LDMuMTU3LDMuMTU3LDAsMCwxLS44NDguODI0LDQuNDgyLDQuNDgyLDAsMCwxLTEuMzExLjU4bC0uNDgtMS4zNTJcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz5cIixcblx0XCJKdWxpYVwiOiBcIjxwYXRoIGQ9XFxcIk03LjQ0OCwyMS45ODNWMTMuNzc1bC0yLjQzMi42Njl2OC43MjlhMi42NiwyLjY2LDAsMCwxLS4xMDYuOTI5LjMzNi4zMzYsMCwwLDEtLjMwOC4yMzkuNDA1LjQwNSwwLDAsMS0uMjEyLS4wNzQsMS4yODIsMS4yODIsMCwwLDEtLjI4Ny0uMywyLjgxMywyLjgxMywwLDAsMC0uMzc3LS40MDkuODc0Ljg3NCwwLDAsMC0uNjExLS4yMDcsMS4yMiwxLjIyLDAsMCwwLS44MTIuMjU1Ljc4OS43ODksMCwwLDAtLjMuNjI3QS45MDcuOTA3LDAsMCwwLDIuNTQyLDI1YTMuMTE1LDMuMTE1LDAsMCwwLDEuNTYxLjMxOSw3LjA2NSw3LjA2NSwwLDAsMCwxLjM3LS4xMjIsMi4zNjEsMi4zNjEsMCwwLDAsMS4wNTctLjQ4MywyLjI5MiwyLjI5MiwwLDAsMCwuNjgtMS4wMTQsNS4wOTQsNS4wOTQsMCwwLDAsLjIzOS0xLjcxNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cGF0aCBkPVxcXCJNMTAuODI1LDE0LjAwOEg4LjR2NS42MThhMi4yNDEsMi4yNDEsMCwwLDAsLjIxOC45NzcsMi40ODksMi40ODksMCwwLDAsLjYuOCwyLjksMi45LDAsMCwwLC44OTIuNTM2LDMuMDQ1LDMuMDQ1LDAsMCwwLDEuMS4yLDIuNTUsMi41NSwwLDAsMCwxLjA1MS0uMjQ0LDQuMzQ3LDQuMzQ3LDAsMCwwLDEuMDE5LS42NDh2Ljc0M0gxNS43MVYxNC4wMDhIMTMuMjg5djUuNzU2YTIuNzY0LDIuNzY0LDAsMCwxLS42NDguNzA2LDEuMTM5LDEuMTM5LDAsMCwxLS42NDguMjgxLDEuMTU1LDEuMTU1LDAsMCwxLS40NTctLjA5LDEuMjYzLDEuMjYzLDAsMCwxLS4zNzItLjIzOSwxLjA2LDEuMDYsMCwwLDEtLjI1LS4zNTYsMS4wOTEsMS4wOTEsMCwwLDEtLjA5LS40NDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBhdGggZD1cXFwiTTE5LjA3NCwyMS45ODNWMTAuMTMybC0yLjQxMS42NjlWMjEuOTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMzgsMTQuNDQ0djcuNTRoMi40MjFWMTMuNzc1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NjgsMTcuODYzdjIuM3EtLjM3Mi4yNzYtLjY3NC40NTdhMS4xNjUsMS4xNjUsMCwwLDEtLjYuMTgxLjQ2OC40NjgsMCwwLDEtLjI3Ni0uMDksMSwxLDAsMCwxLS4yMzQtLjIzOSwxLjEzOCwxLjEzOCwwLDAsMS0uMTY1LS4zNTYsMS41NzYsMS41NzYsMCwwLDEtLjA1OC0uNDMuOTY4Ljk2OCwwLDAsMSwuMTgxLS41NTIsMi4zMDYsMi4zMDYsMCwwLDEsLjQ3My0uNSw0LjU3Miw0LjU3MiwwLDAsMSwuNjQ4LS40Myw3LjYxMiw3LjYxMiwwLDAsMSwuNzA2LS4zNDVaTTMwLDIxLjk4M1YxNmEyLjA4MywyLjA4MywwLDAsMC0uMTkxLS45LDEuNzc5LDEuNzc5LDAsMCwwLS41OTUtLjY5LDMuMDA2LDMuMDA2LDAsMCwwLTEuMDI1LS40NDEsNi4yMjUsNi4yMjUsMCwwLDAtMS40ODEtLjE1NCw1LjczNSw1LjczNSwwLDAsMC0xLjMyNy4xNDksNC42LDQuNiwwLDAsMC0xLjEuNCwyLjM3MywyLjM3MywwLDAsMC0uNzU5LjYxMSwxLjIxNiwxLjIxNiwwLDAsMC0uMjgxLjc3Ljk1OC45NTgsMCwwLDAsLjMxOS43MzgsMS4xNzgsMS4xNzgsMCwwLDAsLjgyOC4yOTIsMS4zNjQsMS4zNjQsMCwwLDAsLjU0Ny0uMS44LjgsMCwwLDAsLjMzNS0uMjU1Ljk4Ni45ODYsMCwwLDAsLjE2NS0uMzcyLDEuOTc4LDEuOTc4LDAsMCwwLC4wNDgtLjQzNSwxLjAzMSwxLjAzMSwwLDAsMSwuMjIzLS42NjkuOTc1Ljk3NSwwLDAsMSwuOC0uMjc2LDEuMDA4LDEuMDA4LDAsMCwxLC43ODEuMzE5LDEuNTk0LDEuNTk0LDAsMCwxLC4yOTIsMS4wODN2Ljc4NmwtLjI2NS4wNjRxLS40ODguMTQ5LS45ODguMzEzdC0uOTYxLjM2MWE3Ljg4NCw3Ljg4NCwwLDAsMC0uODY1LjQzLDMuNTExLDMuNTExLDAsMCwwLS43MDYuNTMxLDIuMzE5LDIuMzE5LDAsMCwwLS40NzguNjY5LDEuOTE4LDEuOTE4LDAsMCwwLS4xNzUuODI4LDIuMDM0LDIuMDM0LDAsMCwwLC4xNjUuODIzLDEuODc2LDEuODc2LDAsMCwwLC40NzMuNjUzLDIuMjU1LDIuMjU1LDAsMCwwLC43NDkuNDM1LDIuOTA3LDIuOTA3LDAsMCwwLC45OTMuMTU5LDMuNjc5LDMuNjc5LDAsMCwwLC43LS4wNTgsMi41MDksMi41MDksMCwwLDAsLjUzNi0uMTY1LDIuMjA5LDIuMjA5LDAsMCwwLC40My0uMjVxLjE5MS0uMTQzLjM5My0uMzEzdi42MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PGNpcmNsZSBjeD1cXFwiNi4yMDRcXFwiIGN5PVxcXCIxMS42NzJcXFwiIHI9XFxcIjEuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzY2ODJkZlxcXCIvPjxwYXRoIGQ9XFxcIk02LjIsMTMuMjg3YTEuNjE1LDEuNjE1LDAsMSwxLDEuNjE1LTEuNjE1QTEuNjE3LDEuNjE3LDAsMCwxLDYuMiwxMy4yODdabTAtM2ExLjM4NSwxLjM4NSwwLDEsMCwxLjM4NSwxLjM4NUExLjM4NiwxLjM4NiwwLDAsMCw2LjIsMTAuMjg3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQwNjNkOFxcXCIvPjxjaXJjbGUgY3g9XFxcIjIxLjQxN1xcXCIgY3k9XFxcIjExLjY3MlxcXCIgcj1cXFwiMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZDU2MzVjXFxcIi8+PHBhdGggZD1cXFwiTTIxLjQxNywxMy4yODdhMS42MTUsMS42MTUsMCwxLDEsMS42MTUtMS42MTVBMS42MTcsMS42MTcsMCwwLDEsMjEuNDE3LDEzLjI4N1ptMC0zQTEuMzg1LDEuMzg1LDAsMSwwLDIyLjgsMTEuNjcyLDEuMzg2LDEuMzg2LDAsMCwwLDIxLjQxNywxMC4yODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2IzYzMzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjMuMzg1XFxcIiBjeT1cXFwiOC4yOTdcXFwiIHI9XFxcIjEuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzYwYWQ1MVxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4zODUsOS45MTJBMS42MTUsMS42MTUsMCwxLDEsMjUsOC4zLDEuNjE3LDEuNjE3LDAsMCwxLDIzLjM4NSw5LjkxMlptMC0zQTEuMzg1LDEuMzg1LDAsMSwwLDI0Ljc3LDguMywxLjM4NiwxLjM4NiwwLDAsMCwyMy4zODUsNi45MTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzg5ODI2XFxcIi8+PGNpcmNsZSBjeD1cXFwiMjUuMzU0XFxcIiBjeT1cXFwiMTEuNjcyXFxcIiByPVxcXCIxLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNhYTc5YzFcXFwiLz48cGF0aCBkPVxcXCJNMjUuMzU0LDEzLjI4N2ExLjYxNSwxLjYxNSwwLDEsMSwxLjYxNS0xLjYxNUExLjYxNywxLjYxNywwLDAsMSwyNS4zNTQsMTMuMjg3Wm0wLTNhMS4zODUsMS4zODUsMCwxLDAsMS4zODUsMS4zODVBMS4zODYsMS4zODYsMCwwLDAsMjUuMzU0LDEwLjI4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5NTU4YjJcXFwiLz5cIixcblx0XCJLb3RsaW5cIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIzMTEuMzM2XFxcIiB5MT1cXFwiMTQ1Mi4wNjRcXFwiIHgyPVxcXCIyODMuMzQyXFxcIiB5Mj1cXFwiMTQ4MC4wNThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTI4MS40IC0xNDUwKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U0NDg1N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzlkNGI5ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzZkNWZhYVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfa290bGluPC90aXRsZT48cGF0aCBkPVxcXCJNMzAsMzBIMlYySDMwTDE2LDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHRcIkt1c3RvXCI6IFwiPHJlY3QgeD1cXFwiMC41NVxcXCIgeT1cXFwiMjIuMzM5XFxcIiB3aWR0aD1cXFwiMTUuNDMzXFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC40MzlcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xNC4zNjMgMTIuNzk3KSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNiOGQ0MzJcXFwiLz48cmVjdCB4PVxcXCIxLjM3MlxcXCIgeT1cXFwiMTYuMzgyXFxcIiB3aWR0aD1cXFwiOS44NTlcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjQzOVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTEwLjcyNyA5LjY2Mykgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojYjhkNDMyXFxcIi8+PHJlY3QgeD1cXFwiOS4yMzJcXFwiIHk9XFxcIjI0LjMwMVxcXCIgd2lkdGg9XFxcIjkuODU5XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC40MzlcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xNC4wMjQgMTcuNTQxKSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNiOGQ0MzJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjMwIDIgMiAyIDMwIDI5Ljk5OSAzMCAyXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3OGQ0XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMC4yODIgMTAuMjgyIDIxLjcxOCAyMS43MTggMzAgMTMuNDM2IDMwIDIgMTguNTY0IDIgMTAuMjgyIDEwLjI4MlxcXCIgc3R5bGU9XFxcImZpbGw6IzU5YjRkOVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMzAgMjkuOTk5IDMwIDIgMTYgMTYgMzAgMjkuOTk5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO29wYWNpdHk6MC4yMDAwMDAwMDI5ODAyMzIyNDtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxyZWN0IHg9XFxcIjE2LjIyNlxcXCIgeT1cXFwiOS4wMDFcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMi4xOTIgMTUuNTA3KSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIyMC4xOFxcXCIgeT1cXFwiNS4wNDhcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgxLjc2MiAxNy4xNDYpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjIwLjE4XFxcIiB5PVxcXCIxMi45NTVcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy44MjkgMTkuNDYxKSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIyNC4xMzNcXFwiIHk9XFxcIjkuMDAyXFxcIiB3aWR0aD1cXFwiMi43OTZcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjYyMlxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMC4xMjQgMjEuMDk5KSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJMYVRlWFwiOiBcIjxwYXRoIGQ9XFxcIk0xMS4zMzMsMTMuMTIyYy0uMTI4LTEuNTYyLS4yNDEtMi43NTYtMi4yODctMi43NTZINy45MXY4LjRoMi4xNDV2LjYxMWwtMy4wODMtLjAyOS0zLjA4Mi4wMjl2LS42MTFINi4wMzR2LTguNEg0Ljg4NGMtMi4wNDYsMC0yLjE1OSwxLjIwOC0yLjI4NywyLjc1NkgybC4yODQtMy4zNjdoOS4zNjJsLjI4NCwzLjM2N2gtLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyMi41M0gxMC40MVYyMS45MmgxLjUwNlYxMy40NjdIMTAuNDF2LS42MTFoOC42MzdsLjQxMiwzLjM2N2gtLjZjLS4yMTMtMS44MzMtLjY4Mi0yLjc1Ni0yLjg1NS0yLjc1NkgxMy43OTFWMTcuMmguODM4YzEuMzY0LDAsMS41MDUtLjYsMS41MDUtMS42NjJoLjZ2My45MzVoLS42YzAtMS4wOC0uMTQyLTEuNjYyLTEuNTA1LTEuNjYyaC0uODM4djQuMTA2aDIuMjE2YzIuNDcyLDAsMy0xLjEwOCwzLjMtMy4yMjVoLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjcyNywxOS4xODZjLS41NCwwLTEuOTYsMC0yLjQxNS4wMjlWMTguNmgxLjE3OWwtMi41NTctMy41NTItMi41MjksMy4zODFBNC4xLDQuMSwwLDAsMCwyMi43LDE4LjZ2LjYxMWMtLjM1NS0uMDI5LTEuNTc2LS4wMjktMi4wMTctLjAyOS0uNCwwLTEuNTQ4LDAtMS44NzUuMDI5VjE4LjZoLjM4M2E3LjQ1OSw3LjQ1OSwwLDAsMCwuODI0LS4wNDNjLjUtLjA0My41NC0uMDg1LjY2Ny0uMjU2TDIzLjUzNiwxNC41bC0zLjE1My00LjQxOEgxOVY5LjQ3Yy4zODQuMDI4LDEuNzkuMDI4LDIuMjczLjAyOC41ODIsMCwxLjkxOCwwLDIuNDI5LS4wMjh2LjYxMUgyMi41MjhsMi4xMTcsMi45NTUsMi4wNzQtMi43ODRhNC4xLDQuMSwwLDAsMC0xLjI5My0uMTdWOS40N2MuMzU2LjAyOCwxLjU5MS4wMjgsMi4wMzIuMDI4LjQsMCwxLjUzNCwwLDEuODYxLS4wMjh2LjYxMWgtLjM2OWE1LjI2NCw1LjI2NCwwLDAsMC0uODM4LjA0M2MtLjQ2OS4wNDMtLjUyNi4wNzEtLjY2Ny4yNTZsLTIuNCwzLjIxTDI4LjYzNiwxOC42SDMwdi42MTFDMjkuNjQ1LDE5LjE4NiwyOC4xODIsMTkuMTg2LDI3LjcyNywxOS4xODZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+XCIsXG5cdFwiTGVzc1wiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0zLjYwOVxcXCIgeTE9XFxcIi00OTIuNjg1XFxcIiB4Mj1cXFwiLTMuNjA5XFxcIiB5Mj1cXFwiLTQ4MC4yNzFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMTkuNzEyIDUwMi44OTEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjE1XFxcIiBzdG9wLWNvbG9yPVxcXCIjMmE0Zjg0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM4OFxcXCIgc3RvcC1jb2xvcj1cXFwiIzI5NGU4MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzE3MmU0ZVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbGVzczwvdGl0bGU+PHBhdGggZD1cXFwiTTI4LjU1OSwyMC4yMjZhMi40LDIuNCwwLDAsMS0yLjM5NCwyLjM5NEg2LjA0YTIuNCwyLjQsMCwwLDEtMi4zOTQtMi4zOTRWMTIuNkEyLjQsMi40LDAsMCwxLDYuMDQsMTAuMjA2SDI2LjE2NUEyLjQsMi40LDAsMCwxLDI4LjU1OSwxMi42WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4zNDksMTYuMjVhMS45NzIsMS45NzIsMCwwLDEsMS41NzgsMS44OTEsMS42OSwxLjY5LDAsMCwxLS42NTMsMS40LDIuOTM0LDIuOTM0LDAsMCwxLTEuODYyLjU1OSw0LjU1OCw0LjU1OCwwLDAsMS0yLjI0MS0uNjE4LDEuOTg2LDEuOTg2LDAsMCwxLC4xNi0uNjY5LDEuODMsMS44MywwLDAsMSwuMzUtLjU3NiwzLjcsMy43LDAsMCwwLDEuNjQ5LjQ5My45NjUuOTY1LDAsMCwwLC41MS0uMTEyLjMzOS4zMzksMCwwLDAsLjE3OC0uM3EwLS4zNTMtLjU0Ni0uNTI5bC0uNjUzLS4yNDdxLTEuNDgyLS41NC0xLjQ4Mi0xLjc2MmExLjc1MywxLjc1MywwLDAsMSwuNjIzLTEuNDE2LDIuNTg3LDIuNTg3LDAsMCwxLDEuNjc4LS42NDgsNS4wOTQsNS4wOTQsMCwwLDEsMS4xNS4xNDcsNC41NTUsNC41NTUsMCwwLDEsMS4wMzIuNDcyLDEuNjY4LDEuNjY4LDAsMCwxLS4xMy43MjIsMS4yMiwxLjIyLDAsMCwxLS4zOC41NTgsNC4yNjEsNC4yNjEsMCwwLDAtMS42Ni0uNDQ2LjU0NC41NDQsMCwwLDAtLjM2Mi4xMDYuMzM4LjMzOCwwLDAsMC0uMTI0LjI3cTAsLjI4Mi40NTEuNDQ2bC43MzYuMjU5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4xLDE2LjI1YTEuOTcyLDEuOTcyLDAsMCwxLDEuNTc3LDEuODkxLDEuNjkxLDEuNjkxLDAsMCwxLS42NTIsMS40LDIuOTM3LDIuOTM3LDAsMCwxLTEuODYyLjU1OSw0LjU2LDQuNTYsMCwwLDEtMi4yNDEtLjYxOCwxLjk4MSwxLjk4MSwwLDAsMSwuMTYtLjY2OSwxLjgyMSwxLjgyMSwwLDAsMSwuMzUtLjU3NiwzLjcsMy43LDAsMCwwLDEuNjQ5LjQ5My45NjMuOTYzLDAsMCwwLC41MS0uMTEyLjM0LjM0LDAsMCwwLC4xNzgtLjNxMC0uMzUzLS41NDYtLjUyOWwtLjY1My0uMjQ3cS0xLjQ4Mi0uNTQtMS40ODItMS43NjJhMS43NTIsMS43NTIsMCwwLDEsLjYyMy0xLjQxNiwyLjU4NSwyLjU4NSwwLDAsMSwxLjY3Ny0uNjQ4LDUuMDg4LDUuMDg4LDAsMCwxLDEuMTUuMTQ3LDQuNTUyLDQuNTUyLDAsMCwxLDEuMDMyLjQ3MiwxLjY2OCwxLjY2OCwwLDAsMS0uMTMuNzIyLDEuMjIsMS4yMiwwLDAsMS0uMzguNTU4LDQuMjYzLDQuMjYzLDAsMCwwLTEuNjYxLS40NDYuNTQzLjU0MywwLDAsMC0uMzYyLjEwNi4zMzkuMzM5LDAsMCwwLS4xMjQuMjdxMCwuMjgyLjQ1MS40NDZsLjczNi4yNTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2XFxcIi8+PHBhdGggZD1cXFwiTTE1LjI2NCwxNi4zMzNhMi44MjIsMi44MjIsMCwwLDAtLjE3Mi0xLDIuMjM5LDIuMjM5LDAsMCwwLS40OTItLjc4NywyLjI4LDIuMjgsMCwwLDAtLjc3Ny0uNTE3LDIuNzM3LDIuNzM3LDAsMCwwLTEuMDI2LS4zMTQsMi44LDIuOCwwLDAsMC0xLjE4LjM2MSwyLjI1NiwyLjI1NiwwLDAsMC0uODMuNjQ2LDIuNzY1LDIuNzY1LDAsMCwwLS40ODcuOTY5LDQuNCw0LjQsMCwwLDAtLjE2LDEuMjE2LDUuNjgxLDUuNjgxLDAsMCwwLC4xMywxLjI1NywyLjYyOCwyLjYyOCwwLDAsMCwuNDQ1LDEsMi4xMDcsMi4xMDcsMCwwLDAsLjgxOC42NTcsMi45MzUsMi45MzUsMCwwLDAsMS4yNTEuMjc3LDMuOTUyLDMuOTUyLDAsMCwwLDIuMzI0LS43MTIsMS44NjUsMS44NjUsMCwwLDAtLjQ4NC0xLjA4MSw2LjE4OCw2LjE4OCwwLDAsMS0uODU3LjI2MiwzLjIwOCwzLjIwOCwwLDAsMS0uNjU2LjA3OSwxLjAxNywxLjAxNywwLDAsMS0uODE1LS4yOSwxLjE4NywxLjE4NywwLDAsMS0uMjcxLS43N2gzLjA4M0E0LjQ0Nyw0LjQ0NywwLDAsMCwxNS4yNjQsMTYuMzMzWm0tMy4yNDguMDgxYTIuNDMzLDIuNDMzLDAsMCwxLC4yMTgtMSwuNjMyLjYzMiwwLDAsMSwuNTU5LS4yNjQuNjYuNjYsMCwwLDEsLjU4Mi4yODIsMS43NDksMS43NDksMCwwLDEsLjE5NC44NTZ2LjEzSDEyLjAxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjZcXFwiLz48cGF0aCBkPVxcXCJNMjkuMTgsMTcuMmExLjYwNSwxLjYwNSwwLDAsMC0uNTMsMS4yNjV2Mi4wNTFhMS44MSwxLjgxLDAsMCwxLS42ODMsMS41NTcsMi44LDIuOCwwLDAsMS0xLjY1NC41NDlsLS4zNzMsMFYyMS41OTRhMS4yNDEsMS4yNDEsMCwwLDAsLjU5NS0uMzM0LDEuMzY5LDEuMzY5LDAsMCwwLC40MTktMS4wNDdWMTguNTU2YTIuNTQ1LDIuNTQ1LDAsMCwxLC4yNTctMS4zMjMsMi41LDIuNSwwLDAsMSwxLjItLjgzOCwyLjUyOCwyLjUyOCwwLDAsMS0xLjMyNC0xLjE3OSwyLjk1NiwyLjk1NiwwLDAsMS0uMTM1LTEuMTY1VjEyLjUzM2ExLjQ1OCwxLjQ1OCwwLDAsMC0uMzY2LTEuMDU0LDEuMTUyLDEuMTUyLDAsMCwwLS42NDgtLjMxNHYtLjk2Yy40NDUsMCwuNjY5LDAsLjkyOCwwYTEuNjc2LDEuNjc2LDAsMCwxLDEuMDIzLjQ0MiwyLDIsMCwwLDEsLjY3MywxLjAwOSwyLjMzLDIuMzMsMCwwLDEsLjA4Ni43djEuNzU3YTEuODQ2LDEuODQ2LDAsMCwwLC41LDEuMzgzLDIuMTEzLDIuMTEzLDAsMCwwLC44NTQuNDc5di43OTRhMS45NDMsMS45NDMsMCwwLDAtLjgyLjQyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjY7c3Ryb2tlOiM0MDQwNDA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjVweFxcXCIvPjxwYXRoIGQ9XFxcIk01LjU5NCwxMC4yMDZINS4yNmExLjY3MywxLjY3MywwLDAsMC0xLjAyMy40NDIsMS43MSwxLjcxLDAsMCwwLS42NzMsMS4wMDksMy41MzEsMy41MzEsMCwwLDAtLjAzOC43djEuNzU3QTEuODY3LDEuODY3LDAsMCwxLDIuOTgxLDE1LjUsMi44NDcsMi44NDcsMCwwLDEsMiwxNS45Nzd2Ljc5M2EyLjU1MiwyLjU1MiwwLDAsMSwuOTQ3LjQyNiwxLjYzOCwxLjYzOCwwLDAsMSwuNTc3LDEuMjY1djIuMDUxQTEuNzgxLDEuNzgxLDAsMCwwLDQuMTYsMjIuMDdhMi44LDIuOCwwLDAsMCwxLjY1NC41NWwuNDIxLDBWMjEuNTk0YTEuNDcsMS40NywwLDAsMS0uNjQzLS4zMzQsMS4zNTUsMS4zNTUsMCwwLDEtLjM3MS0xLjA0N1YxOC41NTdhMi41MTYsMi41MTYsMCwwLDAtLjMwNS0xLjMyMywyLjUsMi41LDAsMCwwLTEuMi0uODM4LDIuNTI5LDIuNTI5LDAsMCwwLDEuMzI0LTEuMTc4LDIuODU3LDIuODU3LDAsMCwwLC4xODMtMS4xNjVWMTIuNTM0QTEuNDYyLDEuNDYyLDAsMCwxLDUuNTQsMTEuNDhhMS4zMTMsMS4zMTMsMCwwLDEsLjU3NS0uMjcxbC40MjgsMFYxMC4yMDZINS41OTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2O3N0cm9rZTojNDA0MDQwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjI1cHhcXFwiLz48cGF0aCBkPVxcXCJNOS41MzcsMTguNTI5aC0uMzJjLS4zNDgsMC0uNDc5LS4xODMtLjQ3OS0uNTUxVjExLjIxOWExLjI1NiwxLjI1NiwwLDAsMC0uMjY4LS44NTZjLS4xNS0uMTY0LS40MTEtLjE2Mi0uNzgzLS4xNjJINi45NjRsLS4wODUsMHY4LjEwNmExLjg3NSwxLjg3NSwwLDAsMCwuMzUyLDEuMjQsMS40NDEsMS40NDEsMCwwLDAsMS4xNDUuMzkzLDcuODU5LDcuODU5LDAsMCwwLDEuMjY5LS4xMTgsMi4yMywyLjIzLDAsMCwwLC4wMzYtLjUwOSwyLjI3OCwyLjI3OCwwLDAsMC0uMTQyLS43ODJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2XFxcIi8+XCIsXG5cdFwiTGlxdWlkXCI6IFwiPHBhdGggZD1cXFwiTTI5Ljk4OCwyMi4zNzJsLS43NDguMDQ4YTUuMjA5LDUuMjA5LDAsMCwxLTIuOTktLjY3MSw3LjgsNy44LDAsMCwwLTcuOCwwLDUuMjc1LDUuMjc1LDAsMCwxLTUuMy4wMUE3LjI2Miw3LjI2MiwwLDAsMCw5LjI2MywyMC43YTcuMjI5LDcuMjI5LDAsMCwwLTMuOTQsMS4wNiw0Ljc1MSw0Ljc1MSwwLDAsMS0yLjQ3LjdsLS44MzgsMGMwLC44ODktLjAwOSwxLjczOS0uMDE1LDIuNTE1bC44NjEsMGE3LjIzNyw3LjIzNywwLDAsMCwzLjc1LTEuMDUyLDQuNzYzLDQuNzYzLDAsMCwxLDIuNjU5LS43LDQuODM1LDQuODM1LDAsMCwxLDIuNjM0LjcxOCw3Ljc5NCw3Ljc5NCwwLDAsMCw3LjgsMCw1LjI4Nyw1LjI4NywwLDAsMSw1LjMxOSwwLDcuNzA5LDcuNzA5LDAsMCwwLDQuNC45ODlMMzAsMjQuODg4QzI5Ljk5NSwyNC4xLDI5Ljk5MSwyMy4yNDksMjkuOTg4LDIyLjM3MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQ5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjkuOTgzLDE1LjU4MWwtLjc0My4wNDdhNS4yMjYsNS4yMjYsMCwwLDEtMi45OS0uNjcxLDcuOCw3LjgsMCwwLDAtNy44LDAsNS4yNzgsNS4yNzgsMCwwLDEtNS4zLjAxQTcuMzEyLDcuMzEyLDAsMCwwLDkuMjYzLDEzLjkxYTcuMyw3LjMsMCwwLDAtMy45NDEsMS4wNiw0Ljc0Miw0Ljc0MiwwLDAsMS0yLjQ2OS43bC0uODI4LDBjMCwuODQ5LDAsMS42OTMsMCwyLjUxNWwuODQsMGE3LjIzNyw3LjIzNywwLDAsMCwzLjc1LTEuMDUyLDQuNyw0LjcsMCwwLDEsMi42NTktLjcsNC44LDQuOCwwLDAsMSwyLjYzNC43MTgsNy43OTQsNy43OTQsMCwwLDAsNy44LDAsNS4yODcsNS4yODcsMCwwLDEsNS4zMTksMCw3LjcwOSw3LjcwOSwwLDAsMCw0LjQuOTg5bC41NjgtLjAzN0MyOS45ODMsMTcuMjY5LDI5Ljk4MywxNi40MjQsMjkuOTgzLDE1LjU4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQ5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjkuMjQsOS4xMzdhNS4yNTQsNS4yNTQsMCwwLDEtMi45OS0uNjcxLDcuOCw3LjgsMCwwLDAtNy44LDAsNS4yNzUsNS4yNzUsMCwwLDEtNS4zLjAwOUE3LjE2LDcuMTYsMCwwLDAsOS4yNjMsNy40MmE3LjE1OSw3LjE1OSwwLDAsMC0zLjk0LDEuMDU5LDQuNzM4LDQuNzM4LDAsMCwxLTIuNDY5LjdsLS44MzQsMGMwLC44MiwwLDEuNjY0LDAsMi41MTdsLjgzNiwwYTcuMjM3LDcuMjM3LDAsMCwwLDMuNzUtMS4wNTIsNC43MzgsNC43MzgsMCwwLDEsMi42NTktLjcwNiw0LjgxNCw0LjgxNCwwLDAsMSwyLjYzNC43MTksNy43OTEsNy43OTEsMCwwLDAsNy44LDAsNS4yOTMsNS4yOTMsMCwwLDEsNS4zMTksMCw3LjczMiw3LjczMiwwLDAsMCw0LjQuOTg4bC41NjgtLjAzN2MwLS44NTksMC0xLjcuMDA3LTIuNTE2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDk5OVxcXCIvPlwiLFxuXHRcIkxpc3BcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxOTI1Ljc4NVxcXCIgeTE9XFxcIi0xMzgzLjA3NVxcXCIgeDI9XFxcIjIzMDIuMzUxXFxcIiB5Mj1cXFwiLTE4NjguNTU3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuMDQ4LCAwLCAwLCAtMC4wNDUsIC04Mi41MzksIC01NC42NSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4MzgxYzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTY2XFxcIiBzdG9wLWNvbG9yPVxcXCIjN2U1NWIzXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuOTk2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTUyZWNiXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuOTkyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIyMjE0LjE4N1xcXCIgeTE9XFxcIi0xNzUwLjIyNVxcXCIgeDI9XFxcIjE5MzAuOTc0XFxcIiB5Mj1cXFwiLTE0MDguMzQyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuMDU0LCAwLCAwLCAtMC4wNTQsIC05NS4xODgsIC02OC40ODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDExZjVkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNWIyYTg1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9lbWFjczwvdGl0bGU+PHBhdGggZD1cXFwiTTI5LjM2MywxNkExMy4zNjQsMTMuMzY0LDAsMSwxLDE2LDIuNSwxMy40MzIsMTMuNDMyLDAsMCwxLDI5LjM2MywxNlpcXFwiIHN0eWxlPVxcXCJzdHJva2Utd2lkdGg6MC43NXB4O2ZpbGw6dXJsKCNhKTtzdHJva2U6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS40MDYsMjUuNDgzYTE4LjE1NywxOC4xNTcsMCwwLDAsMi41ODctLjA0OCw0MS43MjgsNDEuNzI4LDAsMCwwLDQuNS0uNjM5LDMwLjY3MSwzMC42NzEsMCwwLDAsMy4xMzItLjgzOWMxLjE0Mi0uNDIxLDEuNzY0LS43NzgsMi4wNDMtMS4yODRhLjYyLjYyLDAsMCwwLS40NDEtLjY5MmMtMS4zNDctLjU2NS0yLjkwOC0uNDYzLTYtLjUyOC0zLjQyNy0uMTE4LTQuNTY3LS42OTEtNS4xNzQtMS4xNTMtLjU4Mi0uNDY5LS4yOS0xLjc2NSwyLjIwNi0yLjkwN2E1NC4yNjYsNTQuMjY2LDAsMCwxLDYuMTg0LTEuNzNjLTEuNjU5LS44Mi00Ljc1My0yLjI2Mi01LjM4OS0yLjU3My0uNTU4LS4yNzMtMS40NTEtLjY4NC0xLjY0NC0xLjE4Mi0uMjE5LS40NzguNTE4LS44ODkuOTMtMS4wMDdhMjAuMywyMC4zLDAsMCwxLDQuOS0uNjQ3LDQuMzA4LDQuMzA4LDAsMCwwLDEtLjA2OUExLjc2NywxLjc2NywwLDAsMCwyMS44NzksNy45YTIuNzc1LDIuNzc1LDAsMCwwLTMuMjg2LTEuODFDMTcuMjIsNi4zMzgsMTMuOTA4LDcuMywxMy45MDgsNy4zYzQuMDkzLS4wMzUsNC43NzkuMDMzLDUuMDg1LjQ2MS4xODEuMjUzLS4wODIuNi0xLjE3NC43NzctMS4xODkuMTk0LTMuNjU5LjQyOC0zLjY1OS40MjgtMi4zNy4xNDEtNC4wNC4xNS00LjU0LDEuMjEtLjMyNy42OTMuMzQ5LDEuMy42NDUsMS42ODhhMTIuNzI4LDEyLjcyOCwwLDAsMCw0LjIyNSwyLjdjLjQzOC4yMDgsMS43MjMuNiwxLjcyMy42YTExLjUyLDExLjUyLDAsMCwwLTguMSwyLjI4N2MtMS44MDcsMS42NzItMS4wMDgsMy42NjUsMi42OTUsNC44OTFhMTIuNzU1LDEyLjc1NSwwLDAsMCw2LjUzNC43NzJjMS45MjItLjEsMi4yMjQtLjA0MiwyLjI0NC4xMTYuMDI3LjIyMi0yLjEzNC43NzMtMi43MjQuOTQ0LTEuNS40MzMtNS40MzYsMS4zMDctNS40NTYsMS4zMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiTGl2ZVNjcmlwdFwiOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiNS41MDQgMi4wMDcgOC45ODYgMiA4Ljk4NiAyMS43NDYgMTAuNzU5IDE5Ljk4NyAxMC43NTkgMy43NTUgMTIuNDk3IDMuNzU1IDEyLjQ5NyAxOC4yNCAxNC4yNTMgMTYuNDg3IDE0LjI1MyAzLjc1NSAxNS45OTcgMy43NTUgMTUuOTk3IDE0LjcyOSAxNy43MzUgMTIuOTYyIDE3LjczNSAzLjc1NSAxOS40NjEgMy43NTUgMTkuNDYxIDExLjIyNSAyMS4yNDUgOS40NjEgMjEuMjQ1IDMuNzU1IDIyLjk3MiAzLjc1NSAyMi45NzIgNy43MjMgMjQuNzM4IDUuOTc1IDI0LjczOSAzLjc1NSAyNi40ODMgMy43NTUgMjYuNDgzIDUuNDgyIDI4LjIwOSA1LjQ4MiAyOC4yMDkgNy4yNjcgMjUuOTExIDcuMjY4IDI0LjE4NCA4Ljk5MyAyOC4yMDkgOC45OTMgMjguMjA5IDEwLjcxOSAyMi40MzggMTAuNzE5IDIwLjY5OCAxMi41MDQgMjguMjA5IDEyLjUwNCAyOC4yMDkgMTQuMjMgMTguOTYxIDE0LjIzIDE3LjIwNSAxNi4wMTQgMjguMjA5IDE2LjAxNCAyOC4yMDkgMTcuNzQxIDE1LjQ1NSAxNy43NDEgMTMuNzE1IDE5LjQ5NiAyOC4yMDkgMTkuNDk2IDI4LjIwOSAyMS4yNTIgMTEuOTggMjEuMjUyIDEwLjI0MiAyMi45NzggMjkuOTgyIDIyLjk3OCAyOS45ODkgMjYuNDg5IDguOTg2IDI2LjQ4OSA4Ljk4NiAzMCA1LjUwNCAzMCA1LjUwNCAyNi40ODkgMi4wMTEgMjYuNDg5IDIuMDExIDIyLjk3OCA1LjUwNCAyMi45NzggNS41MDMgMiA1LjUwNCAyLjAwN1xcXCIgc3R5bGU9XFxcImZpbGw6IzMxN2VhY1xcXCIvPlwiLFxuXHRcIkxvZyBmaWxlXCI6IFwiPHBhdGggZD1cXFwiTTI5LjQsMjcuNkgyLjVWNC41SDI5LjRabS0yNS45LTFIMjguNFY1LjVIMy41WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjIuNVxcXCIgeT1cXFwiNS41XFxcIiB3aWR0aD1cXFwiMjYuOVxcXCIgaGVpZ2h0PVxcXCIxLjlcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjkuNVxcXCIgd2lkdGg9XFxcIjguMTY3XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjEyLjA4M1xcXCIgd2lkdGg9XFxcIjEyLjVcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjMzM1xcXCIgeT1cXFwiMTQuNzVcXFwiIHdpZHRoPVxcXCIxMC42MTdcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjMzM1xcXCIgeT1cXFwiMTcuNTgzXFxcIiB3aWR0aD1cXFwiMTQuMTY3XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjIwLjVcXFwiIHdpZHRoPVxcXCI5LjgzNFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuNVxcXCIgeT1cXFwiMjMuMDgzXFxcIiB3aWR0aD1cXFwiMTIuMTY3XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjkuNVxcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjEyLjA4M1xcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjEyLjA4M1xcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjE0LjY2N1xcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjE3LjI1XFxcIiB3aWR0aD1cXFwiNC4zMzNcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjUuNVxcXCIgeT1cXFwiMjAuNVxcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjIzLjA4M1xcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz5cIixcblx0XCJMT0xDT0RFXCI6IFwiPHBhdGggZD1cXFwiTTIxLjMsMy43M2EzLjk0LDMuOTQsMCwwLDEsMS4wNDEtLjYyLDguNDM1LDguNDM1LDAsMCwxLC41NTYsMy4zODUsMjQuODY1LDI0Ljg2NSwwLDAsMS0uNjQzLDUuMDE5Yy0uMzY4LS4xOC0uNzM2LS4zNjQtMS4xLS41NTRhMTEuNzU0LDExLjc1NCwwLDAsMCwuMjczLTMuNzQ3LDMuMDgsMy4wOCwwLDAsMC0uMjU1LS44NjUsNS4xNDIsNS4xNDIsMCwwLDAtMi4wMTYsMi4wN2MtLjMxOS0uMjQtLjY1Mi0uNDU5LS45ODUtLjY3NkExNS43MTYsMTUuNzE2LDAsMCwxLDIxLjMsMy43M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDUxLDguNmE0LjU3NCw0LjU3NCwwLDAsMSwxLjUwOS0xLjU2Myw2LjY4NSw2LjY4NSwwLDAsMSwuMDksMi42NzFDMjAuNTE3LDkuMzQzLDE5Ljk3NSw4Ljk4NywxOS40NTEsOC42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VkZWRlZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi40NjEsMTAuMDc2Yy0uMDM4LTEuMTM0LS4wMzEtMi4yNjktLjAyNi0zLjQtLjkuNDkzLTEuNzU4LDEuMDcxLTIuNjQ4LDEuNTg5LS40NTMuMjctLjkwOC41MzYtMS4zNi44MDguMjI0LS4xNjMuNDU3LS4zMTIuNjktLjQ2Mi0uODYxLTEuMjI0LTEuOTcxLTIuNS0zLjUzLTIuNzQ4YTEwLjk2NCwxMC45NjQsMCwwLDAtLjM2NSw1LjE0N2MuMzE4LS4xOTUuNjMzLS40Ljk2Mi0uNTcyLS40NzQuMzE5LS45NjQuNjE1LTEuNDQ2LjkyLS45NTcuNi0xLjkyMiwxLjE5Mi0yLjg5MiwxLjc3N2ExLjIzMiwxLjIzMiwwLDAsMC0uMzkxLjMyYy0uMSwxLjM5NS0uMzQsNC4zOTItLjM0LDQuMzkyLS4yNTQsMy42NjgtLjUyMiw3LjMzNi0uODI2LDExLDQuMDYyLjM0Myw4LjExOC43NDIsMTIuMTc5LDEuMDc2QzE2LjQ1OCwyMy4zLDE2LjQ3MiwxNi42OSwxNi40NjEsMTAuMDc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VkZWRlZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4xLDIuOTc3QTUuODg0LDUuODg0LDAsMCwxLDIyLjcwNiwyYTEwLjA2NCwxMC4wNjQsMCwwLDEsLjc3Miw0LjYwNiwyNC41OTEsMjQuNTkxLDAsMCwxLS41MDgsNC40NTljMS4yLjg0NiwyLjQzMywxLjY0NSwzLjYxOCwyLjUwOXEuNDQsNi4zOC45MDcsMTIuNzU4Yy4wNjYuODM5LjA5NCwxLjY4LjIxNiwyLjUxMy0zLjAyOS4yNzktNi4wNTcuNTkxLTkuMDg1Ljg4NmExOS4xMzcsMTkuMTM3LDAsMCwwLTIuMTU4LjI3di0uMDgzYy0uMDEtNi42MTQsMC0xMy4yMjctLjAwNy0xOS44NDEtLjAzOC0xLjEzNC0uMDMxLTIuMjY5LS4wMjYtMy40di0uMWMuNDA2LjI5Mi44MjYuNTYyLDEuMjQzLjgzOUExNi4yNzQsMTYuMjc0LDAsMCwxLDIxLjEsMi45NzdabS4yLjc1MmExNS43MTYsMTUuNzE2LDAsMCwwLTMuMTI4LDQuMDExYy4zMzQuMjE3LjY2Ni40MzcuOTg1LjY3NmE1LjE0Miw1LjE0MiwwLDAsMSwyLjAxNi0yLjA3LDMuMDgsMy4wOCwwLDAsMSwuMjU1Ljg2NSwxMS43NTQsMTEuNzU0LDAsMCwxLS4yNzMsMy43NDdjLjM2NC4xOS43MzEuMzc0LDEuMS41NTRhMjQuODY1LDI0Ljg2NSwwLDAsMCwuNjQzLTUuMDE5LDguNDM1LDguNDM1LDAsMCwwLS41NTYtMy4zODVBMy45NCwzLjk0LDAsMCwwLDIxLjMsMy43M1pNMTkuNDUxLDguNmMuNTI0LjM4MywxLjA2Ni43MzksMS42LDEuMTA4YTYuNjg1LDYuNjg1LDAsMCwwLS4wOS0yLjY3MUE0LjU3NCw0LjU3NCwwLDAsMCwxOS40NTEsOC42WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk05LjIxOSw1LjA2MmEzLjU4MSwzLjU4MSwwLDAsMSwyLjIwNS43NDhBMTIuOSwxMi45LDAsMCwxLDEzLjc4OCw4LjI2Yy0uNDUzLjI3LS45MDguNTM2LTEuMzYuODA4LjIyNC0uMTYzLjQ1Ny0uMzEyLjY5LS40NjItLjg2MS0xLjIyNC0xLjk3MS0yLjUtMy41My0yLjc0OGExMC45NjQsMTAuOTY0LDAsMCwwLS4zNjUsNS4xNDdjLjMxOC0uMTk1LjYzMy0uNC45NjItLjU3Mi0uNDc0LjMxOS0uOTY0LjYxNS0xLjQ0Ni45MkExNC4xLDE0LjEsMCwwLDEsOS4yMTksNS4wNjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUwNyw4LjQ3NmEyLjQ1NSwyLjQ1NSwwLDAsMSwxLjUxNy44OGwtLjM2LjJBMi42OSwyLjY5LDAsMCwwLDEwLjczOSw5YTMuMzE4LDMuMzE4LDAsMCwwLS4xNjUsMS4yODFsLS4zNDQuMTFBNy4wMjEsNy4wMjEsMCwwLDEsMTAuNTA3LDguNDc2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xMzksMTAuNjkzYS40ODcuNDg3LDAsMCwxLC41NDIuMDEsMS41NTIsMS41NTIsMCwwLDEsLjA2Mi42Yy0uMDM5Ljc4NC4wMjQsMS41NzMtLjA3NiwyLjM1NGExLjAxMywxLjAxMywwLDAsMS0xLjAxMi44ODZjLS4yMzMtLjA1LS4yNzgtLjM0MS0uMjc4LS41NDEsMC0uNjc1LjEtMS4zNDcuMDY2LTIuMDI0QTEuMywxLjMsMCwwLDEsMTIuMTM5LDEwLjY5M1ptLjE1LDEuMDg0YS44OTEuODkxLDAsMCwwLC4yNTEtLjg2NkMxMi4yMTgsMTEuMDYxLDExLjksMTEuNTA3LDEyLjI4OSwxMS43NzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTE0LjUsMTMuNzI4YTE3LjY3MSwxNy42NzEsMCwwLDEsMS45MjgtLjgyMmMtLjAyNC4wNjQtLjA2OS4xOTEtLjA5Mi4yNTUtLjY0OS4zNTgtMS4zNi42LTIuMDIxLjkzOGExMi4xMTgsMTIuMTE4LDAsMCwwLTMuMjM4LDIuMjQ4QTcuMiw3LjIsMCwwLDEsMTAsMTcuMzgxYTQuMTY2LDQuMTY2LDAsMCwxLC45OC0xLjI0NkExMi43MjcsMTIuNzI3LDAsMCwxLDE0LjUsMTMuNzI4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk03LjYyOCwxMy4yMzFhLjk4OS45ODksMCwwLDEsLjU5NC0uMTUyLDE4LjExNCwxOC4xMTQsMCwwLDEtLjEsMi42NTQuNzEzLjcxMywwLDAsMS0uODkyLjY1OCwyMS4xLDIxLjEsMCwwLDEsLjA4Mi0yLjIyNkExLjM4MywxLjM4MywwLDAsMSw3LjYyOCwxMy4yMzFabS4xNzkuODMxYy4yNjgtLjExMi4zMTktLjQxMy40MTItLjY1NEM3LjgyLDEzLjMxMiw3Ljc3NSwxMy43ODMsNy44MDcsMTQuMDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC44MjMsMTcuMDk0YTEzLjkzNCwxMy45MzQsMCwwLDEsNC42MTItMS45NjhjLS4wMS4wNjgtLjAyOS4yMDYtLjAzOS4yNzRhMTQuMjczLDE0LjI3MywwLDAsMC00LjQ3NSwxLjkxNCwyLjYyNiwyLjYyNiwwLDAsMS0uNjgxLjM0M0MxMC4zLDE3LjM1NiwxMC42LDE3LjI0OSwxMC44MjMsMTcuMDk0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk01LjI2NCwxNy41OUE1LjE0NCw1LjE0NCwwLDAsMSw4LDE3LjFhMS41LDEuNSwwLDAsMSwxLjE0Mi42NjVBNi44NTQsNi44NTQsMCwwLDAsNy42LDE3LjI3OGE2Ljk2Nyw2Ljk2NywwLDAsMC0yLjQ4NC41NjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTEwLjU3OCwxNy43MjVhOS41OSw5LjU5LDAsMCwxLDMuNjEtLjU2NmMuMjQuMDIxLjMyMS4yLjMxMy40MjRhMy4yMzgsMy4yMzgsMCwwLDAtMS45NTYtLjA5LDIxLjY4OCwyMS42ODgsMCwwLDAtMi41NTcuNjU4QzkuOTk1LDE3LjgyOSwxMC4zNDUsMTcuODA5LDEwLjU3OCwxNy43MjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTkuMjY4LDE3LjY3NmMuMTQ5LS4xNzYuNTMzLS4zMzIuNjY0LS4wNjJhMS4zLDEuMywwLDAsMS0uNTE2Ljk5M0M5LjI2OCwxOC4zMzcsOC45NzMsMTcuOTUyLDkuMjY4LDE3LjY3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNS43NDQsMTguNjI5YTUuOSw1LjksMCwwLDEsMy4xODItLjYxOGMtLjE4Mi4yMzUtLjQ5My4xNzgtLjc1MS4yMDhhNS42NjMsNS42NjMsMCwwLDAtMS43Mi4zM2MtLjM0NC4xMjgtLjY2NS4zMS0xLjAyLjQwOUEuNi42LDAsMCwxLDUuNzQ0LDE4LjYyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNi45LDE5LjExNGE5LjY3Niw5LjY3NiwwLDAsMSwyLjItLjg1NGMtLjEuMy0uNDQxLjMzOC0uNy40NDRhNy44MzksNy44MzksMCwwLDAtMi41NjQsMS40MTVDNS45MzgsMTkuNTg0LDYuNDg4LDE5LjM2OSw2LjksMTkuMTE0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS42MzUsMTkuN2EzLjExLDMuMTEsMCwwLDAsMS45MS0xLjM4M2MuMzQ3LS4xLjI3My4yNzUuMjYuNDk0YTIuMDU2LDIuMDU2LDAsMCwxLS45NSwxLjAzNiwxMi4zNjUsMTIuMzY1LDAsMCwxLTEuODI3LDYuNDE5QTIuMzQyLDIuMzQyLDAsMCwxLDguODc5LDI3LjVhMi4yNTEsMi4yNTEsMCwwLDEtMS41MzUtMS40OSwxMC44OTQsMTAuODk0LDAsMCwxLS42OS00LjY2NWMtLjE1Ny0uMTEyLS4zNjktLjE3OS0uNDYtLjM2Mi0uMTMtLjIuMDExLS40MjUuMDQ3LS42MzEuMTkuMTUxLjM0NS4zOTIuNjA2LjQyYTMuNjE3LDMuNjE3LDAsMCwwLDEuODYzLS40LDEuNTg4LDEuNTg4LDAsMCwwLC43MDktLjY2MiwzLjg4MSwzLjg4MSwwLDAsMCwuNDMxLjI2NkE0LjI4LDQuMjgsMCwwLDAsMTEuNjM1LDE5LjdabS0yLjIuODM1YTQuMTMyLDQuMTMyLDAsMCwxLTIuNDYyLjgwOSwxMS4wNDksMTEuMDQ5LDAsMCwwLC4zNTgsMy41MjYsMy4yMjYsMy4yMjYsMCwwLDEsLjktMS4yODIsMi4wNTUsMi4wNTUsMCwwLDEsMi4zLS4yLDIuMywyLjMsMCwwLDEsLjg4NCwxLjE3MiwxNC42NTksMTQuNjU5LDAsMCwwLDEuMDA1LTQuNDg5QTUuMTY3LDUuMTY3LDAsMCwxLDkuNDM1LDIwLjUzMlptLS4zMjksMy4yNmEyLjI3MywyLjI3MywwLDAsMC0xLjUsMS40MzRjLS4xMjMuMjY5LjEuNTE3LjIyNS43MzguMzMxLjQ2Mi43OTUsMSwxLjQzMS44OTNhMi44NjgsMi44NjgsMCwwLDAsMS43NjktMS42QTEuNiwxLjYsMCwwLDAsOS4xMDYsMjMuNzkyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPlwiLFxuXHRcIkx1YVwiOiBcIjxwYXRoIGQ9XFxcIk0xNi41LDMwbC0uMDExLS4zMjFjLjQtLjAxNC44LS4wNDUsMS4xOS0uMDk0bC4wMzkuMzE5QzE3LjMxMiwyOS45NTIsMTYuOSwyOS45ODQsMTYuNSwzMFptLTEuMjIyLS4wMTFjLS40LS4wMjEtLjgxNC0uMDYxLTEuMjE2LS4xMThsLjA0NS0uMzE4Yy4zOTMuMDU1Ljc5My4wOTQsMS4xODguMTE1Wk0xOC45MiwyOS43bC0uMDY3LS4zMTRjLjM4Ny0uMDgzLjc3Ni0uMTg0LDEuMTU1LS4zbC4wOTQuMzA3QzE5LjcxNCwyOS41MTEsMTkuMzE2LDI5LjYxNSwxOC45MiwyOS43Wm0tNi4wNjMtLjA1M2MtLjQtLjA5MS0uNzkxLS4yLTEuMTc3LS4zMjZsLjEtLjMwNmMuMzc3LjEyMi43NjQuMjMsMS4xNS4zMTlabTguNC0uNjY1LS4xMjEtLjNjLjM2NC0uMTQ4LjcyOC0uMzE0LDEuMDgtLjQ5M2wuMDA2LDAsLjE0NS4yODYsMCwwQzIyLDI4LjY2MSwyMS42MjYsMjguODMxLDIxLjI1MywyOC45ODJabS0xMC43MTgtLjA4OGMtLjM3NC0uMTU4LS43NDUtLjMzNS0xLjEtLjUyNGwuMTUtLjI4NGMuMzUuMTg2LjcxMy4zNTgsMS4wNzguNTEyWm0xMi44OTMtMS4wMjEtLjE3LS4yNzNjLjMzNy0uMjEuNjY4LS40MzcuOTg0LS42NzVsLjE5My4yNTdDMjQuMTExLDI3LjQyNSwyMy43NzIsMjcuNjU4LDIzLjQyOCwyNy44NzNaTTguMzc5LDI3Ljc1MWMtLjM0MS0uMjItLjY3Ni0uNDU5LTEtLjcwOGwuMi0uMjUzYy4zMTIuMjQzLjY0LjQ3Ni45NzIuNjkxWm0xNy0xLjM0Ni0uMjE1LS4yMzljLjI5NC0uMjY1LjU4LS41NDYuODUxLS44MzZsLjIzNS4yMTlDMjUuOTcyLDI1Ljg0NiwyNS42NzksMjYuMTM0LDI1LjM3OCwyNi40Wk02LjQ1NCwyNi4yNTJjLS4zLS4yNzYtLjU4NS0uNTY5LS44NTYtLjg3bC4yMzktLjIxNWMuMjY1LjI5NC41NDcuNTguODM2Ljg1Wk0yNy4wNDEsMjQuNjJsLS4yNTMtLjJjLjI0NC0uMzEyLjQ3Ni0uNjM5LjY5Mi0uOTcybC4yNy4xNzVDMjcuNTI5LDIzLjk2NiwyNy4yOSwyNC4zLDI3LjA0MSwyNC42MlpNNC44MiwyNC40MzljLS4yNDQtLjMyNC0uNDc2LS42NjItLjY5Mi0xLjAwN2wuMjcyLS4xN2MuMjEuMzM3LjQzOC42NjguNjc2Ljk4NFptMjMuNTQ3LTEuODY3LS4yODQtLjE1MWMuMTg2LS4zNS4zNTgtLjcxMy41MTMtMS4wNzhsLjMuMTI1QzI4LjczNSwyMS44NDMsMjguNTU4LDIyLjIxNCwyOC4zNjgsMjIuNTcyWm0tMjQuODQxLS4yLS4wMDYtLjAxMmMtLjE4My0uMzU5LS4zNTItLjcyOC0uNS0xLjFsLjMtLjEyMWMuMTQ3LjM2Mi4zMTIuNzI0LjQ5MSwxLjA3NGwuMDA2LjAxMlpNMjkuMzIsMjAuMzI1bC0uMzA2LS4xYy4xMjItLjM3Ny4yMy0uNzY0LjMxOS0xLjE1bC4zMTMuMDcyQzI5LjU1NSwxOS41NDMsMjkuNDQ2LDE5LjkzOSwyOS4zMiwyMC4zMjVaTTIuNjA4LDIwLjEwN2MtLjEyLS4zODgtLjIyMy0uNzg2LS4zMDgtMS4xODJsLjMxNC0uMDY3Yy4wODMuMzg3LjE4NC43NzYuMywxLjE1NVpNMjkuODcsMTcuOTQ2bC0uMzE4LS4wNDVjLjA1Ni0uMzkzLjA5NC0uNzkzLjExNS0xLjE4OGwuMzIxLjAxN0MyOS45NjcsMTcuMTM1LDI5LjkyNywxNy41NDQsMjkuODcsMTcuOTQ2Wk0yLjEsMTcuNzJjLS4wNS0uNC0uMDgyLS44MTItLjEtMS4yMThsLjMyMS0uMDExYy4wMTQuNC4wNDYuOC4wOTQsMS4xOVptMjcuNTgyLTIuMmMtLjAxNC0uNC0uMDQ1LS44LS4wOTMtMS4xOWwuMzE5LS4wMzljLjA0OS40LjA4Mi44MTMuMSwxLjIxOFpNMi4zMzEsMTUuMywyLjAxLDE1LjI4Yy4wMjEtLjQwNS4wNjEtLjgxNC4xMTctMS4yMTZsLjMxOC4wNDVDMi4zOSwxNC41LDIuMzUyLDE0LjksMi4zMzEsMTUuM1ptMjcuMDU3LTIuMTQ0Yy0uMDgzLS4zODctLjE4NC0uNzc2LS4zLTEuMTU1TDI5LjQsMTEuOWMuMTE5LjM4OC4yMjMuNzg2LjMwNywxLjE4M1pNMi42NjMsMTIuOTM0bC0uMzEzLS4wNzJjLjA5MS0uNC4yLS43OTEuMzI2LTEuMTc3bC4zMDYuMUMyLjg1OSwxMi4xNjEsMi43NTIsMTIuNTQ4LDIuNjYzLDEyLjkzNFptMjYuMDI2LTIuMDYyYy0uMTQ5LS4zNjYtLjMxNS0uNzMyLS41LTEuMDg2bC4yODYtLjE0NmMuMTg1LjM2My4zNTUuNzM2LjUwNywxLjExMVpNMy40LDEwLjY2NWwtLjMtLjEyNWMuMTU4LS4zNzQuMzM0LS43NDUuNTI0LTEuMWwuMjg0LjE1QzMuNzI0LDkuOTM3LDMuNTUyLDEwLjMsMy40LDEwLjY2NVpNNC41MTMsOC41NTdsLS4yNy0uMTc0Yy4yMi0uMzQxLjQ1OC0uNjc2LjcwNy0xbC4yNTQuMkM0Ljk2MSw3LjksNC43MjgsOC4yMjQsNC41MTMsOC41NTdaTTUuOTc3LDYuNjc2bC0uMjM1LS4yMTljLjI3Ni0uMy41NjktLjU4NS44Ny0uODU3bC4yMTUuMjM5QzYuNTMzLDYuMSw2LjI0Nyw2LjM4Niw1Ljk3Nyw2LjY3NlptMS43Ny0xLjYtLjE5My0uMjU3Yy4zMjMtLjI0NC42NjItLjQ3NywxLjAwNy0uNjkybC4xNy4yNzJDOC4zOTQsNC42MTQsOC4wNjMsNC44NDEsNy43NDcsNS4wNzlabTE1LjcwNS0uNTU4LS4wMTgtLjAxMi4xNzUtLjI3LjAxOC4wMTFabS0xLjA0Ny0uNjE2Yy0uMzUtLjE4Ni0uNzEzLS4zNTgtMS4wNzgtLjUxMmwuMTI1LS4zYy4zNzQuMTU4Ljc0NS4zMzQsMS4xLjUyNFpNOS43NjksMy44MTVsLS4xNDYtLjI4Ni4wMTgtLjAwOWMuMzU2LS4xODEuNzI0LS4zNDksMS4wOTMtLjVsLjEyMS4zYy0uMzYxLjE0Ny0uNzIuMzExLTEuMDY4LjQ4OFptMTAuNDQtLjgzOGMtLjM3Ny0uMTIyLS43NjQtLjIyOS0xLjE1MS0uMzE3bC4wNzItLjMxM2MuNC4wOTEuNzkyLjIsMS4xNzguMzI1Wm0tOC4yMjktLjA2LS4wOTQtLjMwN2MuMzg4LS4xMTkuNzg2LS4yMjMsMS4xODItLjMwOGwuMDY3LjMxNEMxMi43NDcsMi43LDEyLjM1OSwyLjgsMTEuOTgsMi45MTdabTUuOS0uNDczYy0uMzkzLS4wNTUtLjc5My0uMDkyLTEuMTg4LS4xMTNsLjAxNi0uMzIxYy40MDUuMDIxLjgxNC4wNTksMS4yMTYuMTE1Wm0tMy41NzItLjAyNi0uMDQtLjMxOWMuNC0uMDUuODEyLS4wODMsMS4yMTgtLjFsLjAxMi4zMjFDMTUuMTA2LDIuMzM3LDE0LjcwNSwyLjM2OSwxNC4zMTIsMi40MThaXFxcIiBzdHlsZT1cXFwiZmlsbDpncmF5XFxcIi8+PGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNS45OThcXFwiIHI9XFxcIjEwLjcwOFxcXCIgc3R5bGU9XFxcImZpbGw6bmF2eVxcXCIvPjxjaXJjbGUgY3g9XFxcIjIwLjQzNVxcXCIgY3k9XFxcIjExLjU2MlxcXCIgcj1cXFwiMy4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIyNi43MDhcXFwiIGN5PVxcXCI1LjI5XFxcIiByPVxcXCIzLjEzN1xcXCIgc3R5bGU9XFxcImZpbGw6bmF2eVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4xLDIxLjM1MnYtLjc5SDkuNjI5VjE0LjMyNmgtLjl2Ny4wMjZIMTMuMVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45MTYsMjEuMzUyVjE2LjNoLS44djIuNzg1YzAsMS4wMzEtLjU0LDEuNzA2LTEuMzc4LDEuNzA2QS45NS45NSwwLDAsMSwxNC43LDE5LjhWMTYuM2gtLjh2My44MTdjMCwuODM4LjYyNiwxLjM3OCwxLjYwOSwxLjM3OGExLjg2MywxLjg2MywwLDAsMCwxLjY4Ny0uOTI1di43ODFoLjcyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy43OTEsMjEuMzMzdi0uNjA3YS42NjQuNjY0LDAsMCwxLS4xNzMuMDE5Yy0uMjc5LDAtLjQzNC0uMTQ1LS40MzQtLjRWMTcuNTM2YzAtLjktLjY1NS0xLjM3OC0xLjktMS4zNzgtMS4yMjQsMC0xLjk3Ni40NzItMi4wMjQsMS42MzhoLjgxYy4wNjctLjYxNy40MzQtLjksMS4xODUtLjkuNzIzLDAsMS4xMjguMjcsMS4xMjguNzUydi4yMTJjMCwuMzM3LS4yLjQ4Mi0uODM4LjU1OWE1Ljc2Myw1Ljc2MywwLDAsMC0xLjYxOS4zMDgsMS4zMjcsMS4zMjcsMCwwLDAtLjg4NywxLjMxMWMwLC45MTYuNjM2LDEuNDU1LDEuNjU4LDEuNDU1YTIuMzYzLDIuMzYzLDAsMCwwLDEuNzE1LS43NDIuODU1Ljg1NSwwLDAsMCwuODI5LjY2NSwxLjk2NywxLjk2NywwLDAsMCwuNTQ5LS4wODdtLTEuNDA3LTEuNzI1YTEuMzY2LDEuMzY2LDAsMCwxLTEuNTEzLDEuMTg1Yy0uNjI2LDAtLjk5My0uMjIyLS45OTMtLjc3MSwwLS41My4zNTctLjc2MSwxLjIxNC0uODg3YTQsNCwwLDAsMCwxLjI5MS0uMjc5di43NTJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJNYXJrZG93blwiOiBcIjxyZWN0IHg9XFxcIjIuNVxcXCIgeT1cXFwiNy45NTVcXFwiIHdpZHRoPVxcXCIyN1xcXCIgaGVpZ2h0PVxcXCIxNi4wOTFcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiM3NTU4MzhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjUuOTA5IDIwLjYzNiA1LjkwOSAxMS4zNjQgOC42MzYgMTEuMzY0IDExLjM2NCAxNC43NzMgMTQuMDkxIDExLjM2NCAxNi44MTggMTEuMzY0IDE2LjgxOCAyMC42MzYgMTQuMDkxIDIwLjYzNiAxNC4wOTEgMTUuMzE4IDExLjM2NCAxOC43MjcgOC42MzYgMTUuMzE4IDguNjM2IDIwLjYzNiA1LjkwOSAyMC42MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiM3NTU4MzhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIyLjk1NSAyMC42MzYgMTguODY0IDE2LjEzNiAyMS41OTEgMTYuMTM2IDIxLjU5MSAxMS4zNjQgMjQuMzE4IDExLjM2NCAyNC4zMTggMTYuMTM2IDI3LjA0NSAxNi4xMzYgMjIuOTU1IDIwLjYzNlxcXCIgc3R5bGU9XFxcImZpbGw6Izc1NTgzOFxcXCIvPlwiLFxuXHRcIk1BVExBQlwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2LjgwM1xcXCIgeTE9XFxcIjE2LjYzMVxcXCIgeDI9XFxcIjE1LjAxM1xcXCIgeTI9XFxcIjIyLjQxMVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgMzIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTEyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIzXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTIzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM2XFxcIiBzdG9wLWNvbG9yPVxcXCIjNTM0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjQ1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY2XFxcIiBzdG9wLWNvbG9yPVxcXCIjNTY4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjg0XFxcIiBzdG9wLWNvbG9yPVxcXCIjMjlkXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIyOS43MVxcXCIgeTE9XFxcIjE4Ljk4M1xcXCIgeDI9XFxcIjExLjcxXFxcIiB5Mj1cXFwiMTQuNTYzXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjA4MVxcXCIgc3RvcC1jb2xvcj1cXFwiI2MzM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xODlcXFwiIHN0b3AtY29sb3I9XFxcIiNkZTUyMzlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzEzXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjA2ZTNlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQyMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZhODA0MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmU4NjQzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmE3ZjQyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY5NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2VmNmMzZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44MzNcXFwiIHN0b3AtY29sb3I9XFxcIiNkYzRjMzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTE2XFxcIiBzdG9wLWNvbG9yPVxcXCIjY2YzNjMzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9tYXRsYWI8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yLDE3LjU1bDcuOTctMy4yMmEyMC43LDIwLjcsMCwwLDEsMi43Mi0yLjk1Yy42Ni0uMzUsMS45LS4xNiw0LjE3LTIuOTgsMi4yLTIuNzUsMi45LTUuMSwzLjkzLTUuMSwxLjYzLDAsMi44MywzLjUyLDQuNjUsOC44NUExMTUuNjI5LDExNS42MjksMCwwLDAsMzAsMjQuMTJjLTEuOS0xLjc3LTMuNTItMy42OC01LjM3LTMuNjMtMS43Mi4wNC0zLjYzLDIuMDgtNS43Miw0LjctMS42NiwyLjEtMy44NiwzLjU0LTQuNzIsMy41MSwwLDAtMi4yMi02LjI4LTQuMDgtNy4zYTIuNjQxLDIuNjQxLDAsMCwwLTIuMzkuMkwyLDE3LjU0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ5ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44LDQuMDJjLS42Ny45LTEuNDgsMi41NS0yLjk0LDQuMzgtMi4yNywyLjgyLTMuNSwyLjYzLTQuMTcsMi45OGExOS42NzQsMTkuNjc0LDAsMCwwLTIuNzIsMi45NWwzLjMsMi40MWMyLjgtMy44Miw0LjMtNy45Niw1LjQ3LTEwLjY0QTEzLjU3OSwxMy41NzksMCwwLDEsMTkuOCw0LjAyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC44LDMuM2MtMi4xOCwwLTMuNjcsMTEuNDgtMTEuNzIsMTcuODksMi4yNi0uMzcsNC4yMiw1LjI0LDUuMTIsNy41MSw0LS42OCw3LjItOC4zMywxMC40My04LjIxLDEuODUuMDcsMy40NywxLjg2LDUuMzcsMy42M0MyNS42NiwxNSwyMy42MywzLjMsMjAuOCwzLjNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+XCIsXG5cdFwiTUFYU2NyaXB0XCI6IFwiPHBhdGggZD1cXFwiTTE0LjQsNy41NjgsMjAuMjEyLDJINy4yNzNMNC44NDgsNy41MzZsOS41NTcuMDMyWk00Ljg0OCw3LjUzNmw2Ljg0NCwyLjZMMTQuNCw3LjU2OG0tLjAxMywzLjYyMi0yLjctMS4wNTNMNS4yNjMsMTYuMWw2LjI4Niw1LjgyMywyLjgwOC0xLjFMMTQuNCw3LjU2OG0wLDAsMTIuOCw4LjM3NkwyMC4yMTIsMk0yNy4yLDE1Ljk0NCwxNC4zOTEsMTEuMTltLS4wMzUsOS42MzYtLjAzMiwzLjY4NU0yMC4yMjgsMzBsLTguNjc5LTguMDczTDQuOCwyNC40NjQsNy4yNTcsMzBabTAsMEwyNy4yLDE1Ljk0NCwxNC4zMjUsMjQuNTEyTTI3LjIsMTUuOTQ0LDE0LjM1NywyMC44MjZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMxZDFkMWI7c3Ryb2tlLW1pdGVybGltaXQ6MjIuOTI1NTg0NzkzMDkwODI7c3Ryb2tlLXdpZHRoOjAuMDI4MzQ5OTk5MzM4Mzg4NDQzcHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjM5MSAxMS4xOSAyNy4yIDE1Ljk0NCAxNC40MDUgNy41NjggMTQuMzkxIDExLjE5IDE0LjM5MSAxMS4xOVxcXCIgc3R5bGU9XFxcImZpbGw6IzE4MWIxNztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjcuMiAxNS45NDQgMTQuMzU3IDIwLjgyNiAxNC4zMjUgMjQuNTA5IDE0LjMyNiAyNC41MTEgMjcuMiAxNS45NDQgMjcuMiAxNS45NDRcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTFkMWE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQwNSA3LjU2OCAyNy4yIDE1Ljk0NCAyMC4yMTIgMiAxNC40MDUgNy41NjggMTQuNDA1IDcuNTY4XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1ZjVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNy4yIDE1Ljk0NCAxNC4zMjYgMjQuNTExIDIwLjIyOCAzMCAyNy4yIDE1Ljk0NCAyNy4yIDE1Ljk0NFxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDI0MjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAyNy4yIDE1Ljk0NCAxNC4zOTEgMTEuMTkgMTQuMzU3IDIwLjgyNiAxNC4zNTcgMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTUyO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zNTcgMjAuODI2IDE0LjM5MSAxMS4xOSAxMS42OTIgMTAuMTM3IDUuMjYzIDE2LjEwNCAxMS41NDkgMjEuOTI3IDE0LjM1NyAyMC44MjYgMTQuMzU3IDIwLjgyNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjk2YjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuNjkyIDEwLjEzNyAxNC4zOTEgMTEuMTkgMTQuNDA1IDcuNTY4IDExLjY5MiAxMC4xMzcgMTEuNjkyIDEwLjEzN1xcXCIgc3R5bGU9XFxcImZpbGw6IzFiMjcyNTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAxMS41NDkgMjEuOTI3IDE0LjMyNSAyNC41MDkgMTQuMzU3IDIwLjgyNiAxNC4zNTcgMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDojMWMyNjI0O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zMjUgMjQuNTEyIDQuOCAyNC40NjQgNy4yNTcgMzAgMjAuMjI4IDMwIDE0LjMyNiAyNC41MTEgMTQuMzI1IDI0LjUxMiAxNC4zMjUgMjQuNTEyXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA2NDY2O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0Ljg0OCA3LjUzNiAxNC40MDUgNy41NjggMjAuMjEyIDIgNy4yNzMgMiA0Ljg0OCA3LjUzNiA0Ljg0OCA3LjUzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzY3YTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuNDA1IDcuNTY4IDQuODQ4IDcuNTM2IDExLjY5MiAxMC4xMzcgMTQuNDA1IDcuNTY4IDE0LjQwNSA3LjU2OFxcXCIgc3R5bGU9XFxcImZpbGw6IzFlMzkzODtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuNTQ5IDIxLjkyNyA0LjggMjQuNDY0IDE0LjMyNSAyNC41MTIgMTQuMzI1IDI0LjUwOSAxMS41NDkgMjEuOTI3IDExLjU0OSAyMS45MjdcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDMwMmU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0XCJNRUxcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjExLjM0OFxcXCIgeTE9XFxcIi02Ny40ODhcXFwiIHgyPVxcXCItNjAwLjI3MlxcXCIgeTI9XFxcIi02NS4zMzVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwZjYwNjdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzA1YWJhY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzU4YmVjNFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTYwMy41OTRcXFwiIHkxPVxcXCItNzcuNjk5XFxcIiB4Mj1cXFwiLTYwMi4wMTFcXFwiIHkyPVxcXCItNTkuNjA0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTE3YzgzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMyMWI1YjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZWQ0ZDRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02MTIuNzU3XFxcIiB5MT1cXFwiLTU5LjkwNlxcXCIgeDI9XFxcIi02MTYuOTM0XFxcIiB5Mj1cXFwiLTcyLjc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWFjY2QzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM3MmFlYjNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzMTdkN2ZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi02MjEuODUxXFxcIiB5MT1cXFwiLTc0LjU3OVxcXCIgeDI9XFxcIi02MTQuODRcXFwiIHkyPVxcXCItNzIuMzAxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjE2MjZlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMxNTdjODRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMwM2EzYTVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIi02MTYuMzY5XFxcIiB5MT1cXFwiLTY0LjQ2OVxcXCIgeDI9XFxcIi02MjUuMzRcXFwiIHkyPVxcXCItNzIuODM1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGI3YzgxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMwNjhkOTBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNmIxYjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIi02MDguMDcyXFxcIiB5MT1cXFwiLTc0LjY3OFxcXCIgeDI9XFxcIi02MDMuNDg4XFxcIiB5Mj1cXFwiLTcwLjk2NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzBhOGE4ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMGY3YzgyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMWE1OTY0XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNjAxLjEzNFxcXCIgeTE9XFxcIi03MC4xMTNcXFwiIHgyPVxcXCItNjA2LjAwOFxcXCIgeTI9XFxcIi02Ny4wNjdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMyNTZhNzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzBkOTQ5OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzA2YTBhMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbWF5YTwvdGl0bGU+PHBhdGggZD1cXFwiTTIxLjYsMy40NjJIMzBMMTguNzY3LDI0LjIxMXMtMS44OTMtNS41LTIuNzA2LTcuNDU5XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY2OSwyOS4xMThIMzBWMy40NjJDMjkuOTk1LDE2Ljg2OSwyNC4zNiwyOS4xMTgsMjMuNjY5LDI5LjExOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTguNzY3LDI0LjIxMUgxMy41NDFMMiwzLjQ2MmMyLjA0Ny0uMjYsNi4xMzUtLjYxMSw4LjE2LS43NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTguNjkzLDE2LjAxOUM2Ljk2LDIyLjg2NiwxLjk5NSwyOS4zMiwyLDI5LjMxNGM1Ljc1MiwwLDYuOTkxLS44MzUsNi45OTEtMS4yNzZWMTYuNTRDOC44OSwxNi4zNyw4Ljc5NCwxNi4xOTQsOC42OTMsMTYuMDE5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLDMuNDYyVjI5LjMxNGMzLjE0Ny01LjIsNC45ODEtOC42LDYuNi0xMy40NUM0LjYsOC43OTQsMiwzLjQ2MiwyLDMuNDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjIzLjIzMyAyOC4xMDIgMjMuNjY5IDI5LjExOCAyMy42NjkgMTUuNjQ3IDIzLjIzMyAxNi4zNzVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjQ3LDE1LjY3M3YxMy40bC4wMTYuMDQzYy40NTIsMCw2LjMzMi0xNC41LDYuMzMyLTI1LjY1NkMyOS45OTUsMy40NjIsMjYuNDA2LDEwLjk0NywyMy42NDcsMTUuNjczWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPlwiLFxuXHRcIk1vbmdvREJcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjQ1LjczMlxcXCIgeTE9XFxcIjgzOS4xODhcXFwiIHgyPVxcXCItNjU0LjU5XFxcIiB5Mj1cXFwiODM5LjI1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjk3NywgLTAuMzIzLCAtMC4yOSwgMC44NzcsIC0zNzUuOTQ0LCAtOTI4LjI4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMjMxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOTk5ODc1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzliOTk3N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42ODNcXFwiIHN0b3AtY29sb3I9XFxcIiNhMDlmN2VcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzY4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTlhODg5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgzN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2I3YjY5YVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44OTZcXFwiIHN0b3AtY29sb3I9XFxcIiNjOWM3YjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTQ4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGVkZGNiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y4ZjZlYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZiZjllZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTY0NC4yODdcXFwiIHkxPVxcXCI4MjMuNDA1XFxcIiB4Mj1cXFwiLTY1Ny4wMjhcXFwiIHkyPVxcXCI4NDUuNDc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjk3NywgLTAuMzIzLCAtMC4yOSwgMC44NzcsIC0zNzUuOTQ0LCAtOTI4LjI4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM0OGE1NDdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzZjkxNDNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02NDMuMzg2XFxcIiB5MT1cXFwiODM5LjQ4NVxcXCIgeDI9XFxcIi02NTIuNDE4XFxcIiB5Mj1cXFwiODMzLjQxN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC45NzcsIC0wLjMyMywgLTAuMjksIDAuODc3LCAtMzc1Ljk0NCwgLTkyOC4yODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDFhMjQ3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzRiYTc0YlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45NTZcXFwiIHN0b3AtY29sb3I9XFxcIiM2N2I1NTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM2OWI2NTVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX21vbmdvPC90aXRsZT48cGF0aCBkPVxcXCJNMTYuNjIsMzBsLS43NTEtLjI0OXMuMS0zLjgtMS4yNzUtNC4wNjdjLS45LTEuMDQ4LjEzMy00NC43NDEsMy40MjMtLjE0OWEyLjcxMiwyLjcxMiwwLDAsMC0xLjMzMywxLjUyM0ExNC4xLDE0LjEsMCwwLDAsMTYuNjIsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjAyNiwyNi4zMjlhMTMuMjIzLDEzLjIyMywwLDAsMCw1LTEzLjIyNUMyMC41NTYsNi42MTksMTcuMDc1LDQuNDg3LDE2LjcsMy42NzNhOS43OTIsOS43OTIsMCwwLDEtLjgyNS0xLjZsLjI3NywxOC4wNjlTMTUuNTc4LDI1LjY2NCwxNy4wMjYsMjYuMzI5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS40ODcsMjYuNTY5UzkuMzY2LDIyLjQsOS43MiwxNS4wMjVBMTUuNTQsMTUuNTQsMCwwLDEsMTUuMjM5LDMuMzc3LDEuNzI1LDEuNzI1LDAsMCwwLDE1Ljg0NiwyYy4zODEuODIuMzE5LDEyLjI0My4zNTksMTMuNTc5QzE2LjM2LDIwLjc3NiwxNS45MTYsMjUuNTg4LDE1LjQ4NywyNi41NjlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+XCIsXG5cdFwibmdpbnhcIjogXCI8cGF0aCBkPVxcXCJNMTUuOTQ4LDJoLjA2NWExMC40MTgsMTAuNDE4LDAsMCwxLC45NzIuNTI4UTIyLjQxNCw1LjY1LDI3Ljg0Myw4Ljc3NGEuNzkyLjc5MiwwLDAsMSwuNDE0Ljc4OGMtLjAwOCw0LjM4OSwwLDguNzc3LS4wMDUsMTMuMTY0YS44MTMuODEzLDAsMCwxLS4zNTYuNTA3cS01Ljc3MywzLjMyNC0xMS41NDcsNi42NDRhLjU4Ny41ODcsMCwwLDEtLjY1Ny4wMzdROS45MTIsMjYuNiw0LjE0MywyMy4yNzRhLjcuNywwLDAsMS0uNC0uNjY2cTAtNi41ODIsMC0xMy4xNjNhLjY5My42OTMsMCwwLDEsLjM4Ny0uNjdROS41NTIsNS42NTcsMTQuOTc0LDIuNTM1Yy4zMjItLjE4NC42MzgtLjM3OS45NzQtLjUzNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAxOTYzOVxcXCIvPjxwYXRoIGQ9XFxcIk04Ljc2NywxMC41MzhxMCw1LjQyOSwwLDEwLjg1OWExLjUwOSwxLjUwOSwwLDAsMCwuNDI3LDEuMDg3LDEuNjQ3LDEuNjQ3LDAsMCwwLDIuMDYuMjA2LDEuNTY0LDEuNTY0LDAsMCwwLC42ODUtMS4yOTNjMC0yLjYyLS4wMDUtNS4yNCwwLTcuODZxMy41ODMsNC4yOSw3LjE4MSw4LjU2OGEyLjgzMywyLjgzMywwLDAsMCwyLjYuNzgyLDEuNTYxLDEuNTYxLDAsMCwwLDEuMjUxLTEuMzcxcS4wMDgtNS41NDEsMC0xMS4wODFhMS41ODIsMS41ODIsMCwwLDAtMy4xNTIsMGMwLDIuNjYyLS4wMTYsNS4zMjEsMCw3Ljk4Mi0yLjM0Ni0yLjc2Ni00LjY2My01LjU1Ni03LTguMzMyQTIuODE3LDIuODE3LDAsMCwwLDEwLjE3LDkuMDMzLDEuNTc5LDEuNTc5LDAsMCwwLDguNzY3LDEwLjUzOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJOaW1cIjogXCI8cGF0aCBkPVxcXCJNMTYuMTExLDYuNDA1cy0xLjA3My44NDctMi4xNjcsMS42OWExNS4zNjEsMTUuMzYxLDAsMCwwLTQuNTI3LjY1MWMtMS4xLS43LTIuMDctMS40NjktMi4wNy0xLjQ2OVM2LjUyLDguNyw2LDkuNTM1YTExLjM4MiwxMS4zODIsMCwwLDAtMi4yMzYsMS40ODJDMi45NjEsMTAuNywyLjAzLDEwLjMxLDIsMTAuM2MxLjA2MywyLjE0NSwxLjc3OCw0LjI5MiwzLjcyMiw1LjU4MywzLjEtNC44ODksMTcuNDgtNC40MzksMjAuNjM5LS4wMjhDMjguNCwxNC43ODcsMjkuMiwxMi41LDMwLDEwLjM4Yy0uMDg4LjAyOS0xLjE4MS4zOTUtMS44ODkuNjY1YTExLjQ4OSwxMS40ODksMCwwLDAtMS45ODYtMS41MWMtLjUzNy0uOTg0LTEuMzE5LTIuMzEzLTEuMzE5LTIuMzEzcy0uOTI3LjY4OS0yLDEuNDRhMjEuMjY1LDIxLjI2NSwwLDAsMC00LjY4MS0uNTEyYy0xLS44MjYtMi4wMTQtMS43NDYtMi4wMTQtMS43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjNkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTMuMSwxNC44NTRsMi41NTQsNi4xODVjNC40MzUsNS44NSwxNS43NTksNi4yNTcsMjAuNy4xMTMsMS4xNjgtMi42MzMsMi43NDUtNi4zMzMsMi43NDUtNi4zMzNhMTMuMzc5LDEzLjM3OSwwLDAsMS00LjYsMy44NjksMTIuMjE3LDEyLjIxNywwLDAsMS0yLjk4My43OTNsLTUuNDY1LTIuODMyLTUuNSwyLjc3NWExNS42NzksMTUuNjc5LDAsMCwxLTIuOTgzLS43NjRBMTQuMDc2LDE0LjA3NiwwLDAsMSwzLjEsMTQuODU0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTk1M1xcXCIvPlwiLFxuXHRcIk5peFwiOiBcIjxwYXRoIGQ9XFxcIk0xMywxMS4xMTUsNi4xODMsMjMuNzYsNC41OSwyMC44N2wxLjgzOS0zLjM4Ny0zLjY1MS0uMDFMMiwxNi4wMjlsLjgtMS40NzcsNS4yLjAxOCwxLjg2OC0zLjQ0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZWJhZTQ7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTMuNTI3LDIxLjIyM2gxMy42NGwtMS41NDEsMi45MjItMy42NTgtLjAxMSwxLjgxNywzLjM4OS0uNzc5LDEuNDQ5LTEuNTkzLDAtMi41ODQtNC44MjUtMy43MjItLjAwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZWJhZTQ7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDY3LDE1LjY4MiwxNC42NDcsMy4wMzdsMy4xMzQtLjAzMkwxOS42LDYuNGwxLjgzNC0zLjM3OWgxLjU1N0wyMy43ODYsNC41LDIxLjE3NCw5LjMwN2wxLjg1NCwzLjQ1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZWJhZTQ7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTQyLDE2LjMyNGw2LjgyMSwxMi42NDVMMTQuMjI5LDI5bC0xLjgyMS0zLjQtMS44MzQsMy4zOEg5LjAxNmwtLjgtMS40NzZMMTAuODMxLDIyLjcsOC45NzYsMTkuMjQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyNzdjMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOC40NjQsMTAuNzUxSDQuODIzTDYuMzY1LDcuODI5bDMuNjU4LjAxMUw4LjIwNyw0LjQ1MSw4Ljk4NiwzbDEuNTkyLDAsMi41ODQsNC44MjUsMy43MjIuMDA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyNzdjMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOSwyMC44ODgsMjUuODE3LDguMjQ0bDEuNTkzLDIuODlMMjUuNTcxLDE0LjUybDMuNjUxLjAxTDMwLDE1Ljk3OWwtLjgsMS40NzctNS4yLS4wMTgtMS44NjgsMy40NDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTI3N2MzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdFwiTlNJU1wiOiBcIjxwYXRoIGQ9XFxcIk0yNy40MzUsMTYuMDM3LDIyLjAxMiwyMS40Nmw1LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTc3YlxcXCIvPjxwYXRoIGQ9XFxcIk0yNi44ODQsMTUuNUgxNi4wNDhsNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDc5YWFcXFwiLz48cGF0aCBkPVxcXCJNMjYuODg0LDE0LjcxMiwyMS40NjEsOS4yODlsLTUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA5NmQzXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUyOCw5LjEzMUg5LjY4M2w1LjQyMyw1LjQyM00yNy40MzUsMy4zMjUsMjIuMDEyLDguNzQ4bDUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojMDFiMGYwXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUyOCw4LjM1NiwxNS4xMDUsMi45MzMsOS42ODMsOC4zNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyN2JjZjNcXFwiLz48cGF0aCBkPVxcXCJNMTQuMTcyLDIuNzc1SDMuMzI3TDguNzQ5LDguMlxcXCIgc3R5bGU9XFxcImZpbGw6IzRmYzlmNVxcXCIvPjxwYXRoIGQ9XFxcIk00LjU2OCwxNS45NjMsOS45OTEsMTAuNTQsNC41NjgsNS4xMTdcXFwiIHN0eWxlPVxcXCJmaWxsOiM3OTIwMWJcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTQxLDExLjA5MSw1LjExOSwxNi41MTNIMTUuOTY0XFxcIiBzdHlsZT1cXFwiZmlsbDojYTQyZDI2XFxcIi8+PHBhdGggZD1cXFwiTTUuMTE5LDE3LjI4OGw1LjQyMyw1LjQyMyw1LjQyMy01LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2NjMzgyZlxcXCIvPjxwYXRoIGQ9XFxcIk00LjU2OCwxNy44MjlWMjguNjc1bDUuNDIzLTUuNDIzTDguNCwyMS42NjVtMTMuOTE2LDEuMkwxNi45LDE3LjQ0N2wtNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMDQ1M2ZcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDc1LDIzLjY0NCwxNi45LDI5LjA2N2w1LjQyMy01LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2YyNjI1ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44NCwyOS4yMjVIMjguNjg1TDIzLjI2MywyMy44XFxcIiBzdHlsZT1cXFwiZmlsbDojZjQ3ZjdkXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljg4OSwyOS4zMzdsLTEuNjgtMS42OFYyLjM5MmEuMzc0LjM3NCwwLDAsMC0uMjQzLS4zNTVBLjI2My4yNjMsMCwwLDAsMjcuODI3LDJhLjM1OS4zNTksMCwwLDAtLjI3MS4xMTJMMjEuNDcxLDguMiwxNS4zODUsMi4xMTIsMTUuMywyLjAzN2gtLjAzN0EuMzA3LjMwNywwLDAsMCwxNS4xMDUsMkgyLjRhLjQzNC40MzQsMCwwLDAtLjI4OS4xMTJBLjM4LjM4LDAsMCwwLDIsMi4zOTJhLjM1OS4zNTksMCwwLDAsLjExMi4yNzFsMS42OCwxLjY4VjI5LjYxN2EuMzc0LjM3NCwwLDAsMCwuMjQzLjM1NUEuMzg3LjM4NywwLDAsMCw0LjE4NSwzMGEuMzU5LjM1OSwwLDAsMCwuMjcxLS4xMTJMMTAuNTQxLDIzLjhsNi4wODUsNi4wODUuMDg0LjA3NWguMDM3QS4yNTQuMjU0LDAsMCwwLDE2LjksMzBIMjkuNjA5YS4zOTUuMzk1LDAsMCwwLC4yOC0uNjYzWk0yNy40MzUsMy4zMjVWMTQuMTcxTDIyLjAxMiw4Ljc0OGw1LjQyMy01LjQyM1pNOS45OTEsMTAuNTQsNC41NjgsMTUuOTYzVjUuMTE3TDkuOTkxLDEwLjU0Wk05LjY4Myw5LjEzMUgyMC41MjhsLTUuNDIzLDUuNDIzTDkuNjgzLDkuMTMxWm0uODU5LDEuOTYsNS40MjMsNS40MjNINS4xMTlsNS40MjMtNS40MjNaTTE2LjksMTcuNDQ3bDUuNDIzLDUuNDIzSDExLjQ3NUwxNi45LDE3LjQ0N1pNMTYuMDQ4LDE1LjVIMjYuODkzbC01LjQyMyw1LjQyM0wxNi4wNDgsMTUuNVptNS45NjQsNS45NjQsNS40MjMtNS40MjNWMjYuODgzTDIyLjAxMiwyMS40NlptNC44NzItNi43NDhIMTYuMDQ4bDUuNDIzLTUuNDIzLDUuNDEzLDUuNDIzWk0yMC41MjgsOC4zNTZIOS42ODNsNS40MjMtNS40MjMsNS40MjMsNS40MjNaTTMuMzI3LDIuNzc1SDE0LjE3Mkw4Ljc0OSw4LjJabTEuMjQxLDI1LjlWMTcuODI5TDguNCwyMS42NjVsMS41ODcsMS41ODdMNC41NjgsMjguNjc1Wm0uNTUxLTExLjM4N0gxNS45NjRsLTUuNDIzLDUuNDIzTDUuMTE5LDE3LjI4OFpNMTYuOSwyOS4wNjdsLTUuNDIzLTUuNDIzSDIyLjMyTDE2LjksMjkuMDY3Wm0uOTQzLjE1OUwyMy4yNjMsMjMuOGw1LjQyMyw1LjQyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NjQwNDlcXFwiLz5cIixcblx0XCJPYmplY3QgUGFzY2FsXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTZcXFwiIHkxPVxcXCItMC40NDNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjIyLjA0MlxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZjBjMTVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YTBjMGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2RlbHBoaTwvdGl0bGU+PGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTRcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTQ1LDE2LjI0M0g0LjkyNGEuOTE0LjkxNCwwLDAsMC0xLjA5Mi44MnEuMDMzLjQyOS4xLjg0OWExMi40LDEyLjQsMCwwLDAsMjQuNTMyLDBxLjA3NS0uNS4xMDgtMS4wMjFDMjguNDc4LDE2LjUyMywyOC4yMTEsMTYuMjA3LDI3LjU0NSwxNi4yNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2NDQzXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTguNDggMTEuNjQgMjMuNzA3IDcuMjY2IDE5Ljc4NyA1Ljg4IDE2IDExLjA1M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjE1LjY4IDExLjAyNiAxOC42NCA1Ljg4IDE0Ljg1MyA1Ljg4IDEzLjMwNyAxMS4yOTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMy4wNCAxMS4zNzMgMTMuNiA2LjcwNiAxMC41ODcgNy45NiAxMS4wMTMgMTIuNzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMC43NDcgMTMgOS43ODcgOC43NiA3LjcwNyAxMC44NCA5LjY1MyAxNC42OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMzg3IDE1LjA1MyA3LjQ5MyAxMi4zNzYgNi42NCAxNC40NjYgOS4wNCAxNi41MTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjA0IDE2Ljc1NyA2LjY0IDE1LjIxMyA2LjQ4IDE3LjQgOS4yIDE4LjMzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMjI3IDE4Ljg0NiA2LjY0IDE4LjA0IDcuMjI3IDE5LjggOS41NDcgMTkuOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuNzA3IDIwLjA5MyA3LjcwNyAyMC4zODYgOC42MjcgMjEuNzQ2IDEwLjI2NyAyMVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMjMsMTMuMDg5YTYuNjEsNi42MSwwLDAsMC00LjUzLTJBNi4yOTMsNi4yOTMsMCwwLDAsMTEuMywyMi4wN2w0Ljk0MS4xMjktMi4wOC00LjE2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41LDIyLjM2NmwtNS4yNjctLjEzOC0uMDQ0LS4wMzlhNi40NTMsNi40NTMsMCwwLDEsNC4zLTExLjI2NCw2Ljc4Nyw2Ljc4NywwLDAsMSw0LjY0MywyLjA1bC4xMjMuMTIzLTUuOSw0Ljk4MlptLTUuMTQtLjQ1NSw0LjYxNi4xMjFMMTMuOTYxLDE4bDUuODI1LTQuOTE5YTYuNDMsNi40MywwLDAsMC00LjI5Mi0xLjgzNSw2LjEzMyw2LjEzMywwLDAsMC00LjEzMSwxMC42NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTEyLjAxMywyMC40OTNjLTQuMTczLTUuODEzLDIuMTA5LTguMTcyLDIuNDc4LTguNDUzLjQ1MS0uMzQ0LTcuNTksMS43ODUtMy4yMjYsOC44OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMDRlMzE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjcyIDEyLjYgMTMuNTIgMTcuNTY3IDEzLjczMyAxOC41NzMgMjEuNDY3IDE3LjAyNiAyMC43MiAxMi42XFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTEzLjYxLDE4Ljc2MSwxMy4zNDEsMTcuNWw3LjQ5NS01LjE3LjgxNCw0LjgyOFptLjA4OS0xLjEyMy4xNTguNzQ3TDIxLjI4MywxNi45LDIwLjYsMTIuODc0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43MjMsMjEuMzE5Yy0zLjkzLS42NjgtNC4yODMuNDI4LTQuMjgzLjQyOEwxMC4yNjcsMjQuNDRzMS4xMi0uOTA3LDUuNDkzLDBsLjc2LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2RkMGMxMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMjIsMjEuNmMtLjAyLS4yLTEuMS0uMzE5LTEuNjc3LS4xMjMtLjczMi4yNDktMS4yMTksMS4xNDItMS4wNDUsMS4yMTNhMS45NzUsMS45NzUsMCwwLDEsMS4xMjUtLjk4NkMxMy40NDcsMjEuNDkzLDE0LjE0MiwyMS44LDE0LjEyMiwyMS42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmNmU0ZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS41MiwxOC42MDZhMTEuMSwxMS4xLDAsMCwwLDEuNTQ3LDEuNDg3LDYuOSw2LjksMCwwLDEsMi43Miw0LjEwN2MtLjEwNywxLjA2Ny0xLjk3MywxLjc2LTEuOTczLDEuNzZsLTMuMzA3LTcuMTk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy43MywyNi4xNjFsLTMuNDU3LTcuNTIxLDEuMzItLjIwOC4wNTcuMDgxYTEwLjg2OSwxMC44NjksMCwwLDAsMS41MTIsMS40NTEsNyw3LDAsMCwxLDIuNzgyLDQuMjA3bDAsLjAyMiwwLC4wMjJjLS4xMTUsMS4xNTMtMiwxLjg2NC0yLjA3NywxLjg5NFptLTIuOTktNy4yNywzLjE1NSw2Ljg2M2MuNDE0LS4xNzgsMS42My0uNzYzLDEuNzMtMS41NDhhNi43OTMsNi43OTMsMCwwLDAtMi42NDgtMy45ODFsLS4wMS0uMDA3YTExLjk0LDExLjk0LDAsMCwxLTEuNTE3LTEuNDM5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yOCwxMi43NDJjLjAyNS4zOTQuMDM0Ljc5Mi4wMjUsMS4xOTRhMTMuOTQ2LDEzLjk0NiwwLDAsMS0xOS45LDEyLjNBMTIuODYsMTIuODYsMCwwLDAsMjgsMTIuNzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0yLjM4MywxMy44OTNBMTMuOTQxLDEzLjk0MSwwLDAsMSwyNS43LDUuODNzLTUuMDA5LDUuOTc5LTEwLjU4NCw3LjkwN1MyLjM4MywxMy44OTMsMi4zODMsMTMuODkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0zLjYxOCwxOC42OTRjLS4wNDQtLjM5Mi0uMDcyLS43OS0uMDgzLTEuMTkxQzMuMzI5LDkuODA3LDEwLjAxMiw0LjIsMTcuNzA4LDMuOTkxYTE0LjIsMTQuMiwwLDAsMSw1LjcxOSwxLjQ1OCwxMy4xMjgsMTMuMTI4LDAsMCwwLTcuMTg4LTIuMzY5Yy03LjEuMTktMTMuMzA2LDUuMy0xMy4xMTYsMTIuNEExMi44NzMsMTIuODczLDAsMCwwLDMuNjE4LDE4LjY5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYWUwZGY7ZmlsbC1ydWxlOmV2ZW5vZGQ7b3BhY2l0eTowLjJcXFwiLz5cIixcblx0XCJPYmplY3RpdmUtQ1wiOiBcIjxwYXRoIGQ9XFxcIk0xMS4yOSwxNS45NzZhOC44OTIsOC44OTIsMCwwLDAsMS4wMzksNC41NTcsNC44MTgsNC44MTgsMCwwLDAsNS41NzksMi4xMywzLjc4OSwzLjc4OSwwLDAsMCwyLjczNC0zLjE4MWMuMDk1LS41MzUuMS0uNTQuMS0uNTQsMS41MzcuMjIyLDQuMDE0LjU4Miw1LjU1LjhsLS4xLjM4OUE5Ljk1OCw5Ljk1OCwwLDAsMSwyMy44LDI0LjlhOC4zNSw4LjM1LDAsMCwxLTQuNzQ3LDIuMzc4LDEyLjkyNSwxMi45MjUsMCwwLDEtNy4zMjItLjcyNSw4Ljk4LDguOTgsMCwwLDEtNS4xMDYtNS41MjRBMTQuMzUzLDE0LjM1MywwLDAsMSw2LjY0MiwxMC45YTkuMzIzLDkuMzIzLDAsMCwxLDcuOTI5LTYuMjQsMTEuODEyLDExLjgxMiwwLDAsMSw1LjkuNDkxLDguNDY3LDguNDY3LDAsMCwxLDUuNDU2LDYuMWMuMDgzLjMxMS4xLjM2OS4xLjM2OS0xLjcwOS4zMTEtMy44MjEuNzA1LTUuNTE4LDEuMDc1QzIwLjE4NiwxMSwxOS4zODcsOS42NjYsMTcuNjc4LDkuMjVhNC42NTYsNC42NTYsMCwwLDAtNS44NTMsMy4xNTgsOS4yOCw5LjI4LDAsMCwwLS4zNDEsMS4yNzNBMTAuODksMTAuODksMCwwLDAsMTEuMjksMTUuOTc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi4wMzMgMzAgMi4wMzMgMiA3Ljk2NyAyIDcuOTY3IDQuMjI3IDQuNzIzIDQuMjI3IDQuNzIzIDI3Ljc3MyA3Ljk2NyAyNy43NzMgNy45NjcgMzAgMi4wMzMgMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI5Ljk2NyAyOS45OTkgMjQuMDMzIDI5Ljk5OSAyNC4wMzMgMjcuNzcxIDI3LjI3NyAyNy43NzEgMjcuMjc3IDQuMjI2IDI0LjAzMyA0LjIyNiAyNC4wMzMgMS45OTkgMjkuOTY3IDEuOTk5IDI5Ljk2NyAyOS45OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0XCJPQ2FtbFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi03NDUuNjIzXFxcIiB5MT1cXFwiLTkyLjc2XFxcIiB4Mj1cXFwiLTc0NS42MjNcXFwiIHkyPVxcXCItODUuMTA4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDc1OCAxMTMuMjgpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjI5MTA0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZWM2ODEzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItNzQxLjk5XFxcIiB5MT1cXFwiLTEwOS40NzdcXFwiIHgyPVxcXCItNzQxLjk5XFxcIiB5Mj1cXFwiLTg1LjA5OVxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNzUyLjExMVxcXCIgeTE9XFxcIi05My45MThcXFwiIHgyPVxcXCItNzUyLjExMVxcXCIgeTI9XFxcIi04NS4yODRcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfb2NhbWw8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNi41NzEsMjUuMjQ2YTQuMjgsNC4yOCwwLDAsMC0uMDM5LS43MDljLS4wNTktLjItLjItLjIxNy0uMy0uMzc0YTMuNTA3LDMuNTA3LDAsMCwxLS41MzItMS40NzdjLS4wMi0uNDUzLS4yLS44ODYtLjIxNy0xLjMzOS0uMDItLjIxNy4wMi0uNDUzLDAtLjY2OWExLjk2MywxLjk2MywwLDAsMC0uMDM5LS4zMTUsMS4xMzMsMS4xMzMsMCwwLDAtLjAzOS0uMmwuMDU5LS4xMzhhMi43MiwyLjcyLDAsMCwxLC42NS0uMDM5Yy4yNTYsMCwuNTEyLjAyLjc2OC4wMmE3Ljk2MSw3Ljk2MSwwLDAsMCwxLjUzNi0uMDU5LDMuNzIyLDMuNzIyLDAsMCwwLDEuOTQ5LS44NDcsNC45NDYsNC45NDYsMCwwLDAsMS41MzYtMi4wMDhjLjE3Ny0uMzk0LjE3Ny0xLjA4My41NTEtMS40LjQzMy0uMzc0LDEuMTgxLS4zMzUsMS42OTMtLjU3MWExLjE4NywxLjE4NywwLDAsMSwuODA3LS4xMzhjLjIxNy4wMzkuNjMuMzE1LjcyOS0uMDU5LS4wNzktLjAzOS0uMS0uMTM4LS4xMzgtLjE3Ny40MTQtLjAzOSwwLTEtLjE1OC0xLjJBMi4yMjUsMi4yMjUsMCwwLDAsMjQuMjUsMTNhMy41MDksMy41MDksMCwwLDAtMS41MzYtLjIxN2MtLjg4Ni4xNzctLjgyNy0uMzM1LTEuMzM5LS4zMzUtLjYzLDAtMS43MzMuMDM5LTEuOTMuNjNhMS41NCwxLjU0LDAsMCwxLS4zMzUuNTEyYy0uMTM4LjE3Ny4wMi4zNTQtLjAzOS41NzEtLjA3OS4yMTctLjE3Ny45ODUtLjI3NiwxLjI2LS4xNzcuNDUzLS4zOTQsMS4wMjQtLjc4OCwxLjAyNGEzLjE1MiwzLjE1MiwwLDAsMS0xLjQzNy0uMDc5Yy0uMjc2LS4xLS43MjktLjI1Ni0uOTQ1LS4zMzUtMS4wMjQtLjQzMy0xLjItLjkwNi0xLjItLjkwNmEzLjAyNiwzLjAyNiwwLDAsMS0uNTEyLS44NjZjLS4xMTgtLjQxNC0uMzE1LS43NjgtLjM5NC0xcy0uMy0uNTkxLS40NTMtLjk4NWEyLjY2NywyLjY2NywwLDAsMC0uNzA5LTEuMDYzYy0uMzE1LS4yNzYtLjYxLS43MjktMS4yNi0uNTkxYTEuNjQxLDEuNjQxLDAsMCwwLS44NjYuMzE1Yy0uMjE3LjE3Ny0uMy41NzEtLjQ5Mi44ODYtLjExOC4xNzctLjMxNS43MDktLjUxMiwxLjE2MmExLjkyOSwxLjkyOSwwLDAsMS0uMzM1LjY1Yy0uMTE4LjA3OS0uMjU2LjItLjQxNC4xMzhhLjkyNC45MjQsMCwwLDEtLjMxNS0uMiw1LjMzNCw1LjMzNCwwLDAsMS0uNzA5LTEuMTIyLDExLjEsMTEuMSwwLDAsMC0uNzg4LTEuMjQxLDEuMDE2LDEuMDE2LDAsMCwwLS45ODUtLjU1MWMtMS4wMjQsMC0xLjEuNTcxLTEuNTU2LDEuNDE4YTUuNTc0LDUuNTc0LDAsMCwxLS42NjksMS40Yy0uMjM2LjI1Ni0uOTQ1LDEuMzM5LTEuNDU3LDEuNTE2SDJ2Ny42MmMuMDM5LS4xLjA1OS0uMi4xLS4yNzYuMi0uNDE0LjY1LS44MDcuOTA2LTEuMjIxYTMuNSwzLjUsMCwwLDAsLjM3NC0uNzA5LDMuNzQzLDMuNzQzLDAsMCwxLC4yMzYtLjcwOS43OTQuNzk0LDAsMCwxLC41NzEtLjMzNWMuMzU0LS4wNTkuNjUuNDkyLDEuMDgzLjcwOS4yLjA3OSwxLjA2My4zOTQsMS4zMTkuNDUzLjQzMy4xLjkwNi4yLDEuMzM5LjI3Ni4yMzYuMDM5LjQ1My4wNzkuNzA5LjFhNy4zLDcuMywwLDAsMSwxLjA4My4xLDIuMjc3LDIuMjc3LDAsMCwwLS44MDcsMS4yMjFjLS4xNTguNDMzLS4yNzYuOTI1LS40NzMsMS4zMzktLjIxNy40NzMtLjY2OS42NjktLjYxLDEuMjIxYTIuNjY4LDIuNjY4LDAsMCwxLC4wMi42ODksNC4wMDksNC4wMDksMCwwLDEtLjIxNy42ODljLS4xLjMxNS0uMjE3LDEuMzU5LS4zNTQsMS42NzRsLjkwNi0uMTE4aDBBMTAuNjkyLDEwLjY5MiwwLDAsMCw4LjQsMjYuMzg4YTMuNzM3LDMuNzM3LDAsMCwxLC43MjktMS4yOGMuMzM1LS4zNzQuMzE1LS44NDcuNTEyLTEuM2ExMi40ODgsMTIuNDg4LDAsMCwxLC43NjgtMS4zYy40OTItLjgwNy44MDctMS44MTIsMS44NTEtMi4wMjhhMy4zLDMuMywwLDAsMSwxLjAyNC43MDksNC40NTIsNC40NTIsMCwwLDEsLjg4NiwxLjEsMTIuODUxLDEyLjg1MSwwLDAsMSwuODg2LDIuNjc4LDEuMjI3LDEuMjI3LDAsMCwwLC4zOTQuNzA5LDUuNDYyLDUuNDYyLDAsMCwxLC40MzMuNzI5Yy4wNzkuMTc3LjIuNTcxLjMuNzg4YTYuMjY3LDYuMjY3LDAsMCwxLC4zMTUuODI3bC44NDctLjAyaC4wMnYtLjAyQTkuNzU0LDkuNzU0LDAsMCwxLDE2LjU3MSwyNS4yNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIxNywyNy4yMzVjLS4xLS4yLS4yMTctLjYxLS4zLS43ODhhNS40NjIsNS40NjIsMCwwLDAtLjQzMy0uNzI5LDEuMTE5LDEuMTE5LDAsMCwxLS4zOTQtLjcwOSwxMi40ODcsMTIuNDg3LDAsMCwwLS44ODYtMi42NzgsNC40NTIsNC40NTIsMCwwLDAtLjg4Ni0xLjEsMy4zLDMuMywwLDAsMC0xLjAyNC0uNzA5Yy0xLjA0NC4yLTEuMzU5LDEuMjIxLTEuODUxLDIuMDI4YTEyLjQ4OCwxMi40ODgsMCwwLDAtLjc2OCwxLjNjLS4yLjQzMy0uMTc3LjkyNS0uNTEyLDEuM2EzLjQ0MywzLjQ0MywwLDAsMC0uNzI5LDEuMjhjLS4wMzkuMS0uMTE4LDEuMDgzLS4yMTcsMS4zMTloMGwxLjUzNi0uMWMxLjQzNy4xLDEuMDI0LjY1LDMuMjQ5LjUzMmwzLjUyNS0uMTE4aDBBNi4yNjcsNi4yNjcsMCwwLDAsMTYuMjE3LDI3LjIzNVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjYuNDU2LDMuOEg1LjU0NEEzLjUyMSwzLjUyMSwwLDAsMCwyLjAyLDcuMzI4djcuNjc5aDBjLjUxMi0uMTc3LDEuMjIxLTEuMjYsMS40NTctMS41MTZhNS45MTMsNS45MTMsMCwwLDAsLjY2OS0xLjRjLjQ1My0uODI3LjUzMi0xLjQxOCwxLjU1Ni0xLjQxOGExLjAxNiwxLjAxNiwwLDAsMSwuOTg1LjU1MSw5LjU0Nyw5LjU0NywwLDAsMSwuNzg4LDEuMjQxLDQuODQ5LDQuODQ5LDAsMCwwLC43MDksMS4xMjIsMiwyLDAsMCwwLC4zMTUuMmMuMTU4LjA1OS4zLS4wNTkuNDE0LS4xMzhBMS45MjksMS45MjksMCwwLDAsOS4yNDYsMTNjLjItLjQ1My4zOTQtLjk2NS41MTItMS4xNjIuMi0uMzE1LjI3Ni0uNzA5LjQ5Mi0uODg2YTEuNTksMS41OSwwLDAsMSwuODY2LS4zMTVjLjY1LS4xMzguOTQ1LjMxNSwxLjI2LjU5MWEzLjI4NSwzLjI4NSwwLDAsMSwuNzA5LDEuMDYzYy4xNTguMzk0LjM1NC43NjguNDUzLjk4NWE4Ljk0Niw4Ljk0NiwwLDAsMSwuMzk0LDEsMy43MTMsMy43MTMsMCwwLDAsLjUxMi44NjZzLjE3Ny40NzMsMS4yLjkwNmE4Ljc0OSw4Ljc0OSwwLDAsMCwuOTQ1LjMzNSwzLjE1MiwzLjE1MiwwLDAsMCwxLjQzNy4wNzljLjM5NCwwLC42MS0uNTcxLjc4OC0xLjAyNC4xLS4yNzYuMjE3LTEuMDQ0LjI3Ni0xLjI2cy0uMS0uMzc0LjAzOS0uNTcxYy4xNTgtLjIxNy4yNTYtLjIzNi4zMzUtLjUxMi4yLS42MSwxLjMtLjYzLDEuOTMtLjYzLjUzMiwwLC40NTMuNTEyLDEuMzM5LjMzNWEzLjI0MywzLjI0MywwLDAsMSwxLjUzNi4yMTcsMi4yMjUsMi4yMjUsMCwwLDEsMS4xNDIuNTUxYy4xNTguMi41NzEsMS4xNjIuMTU4LDEuMi4wMzkuMDM5LjA3OS4xMzguMTM4LjE3Ny0uMS4zNzQtLjQ5Mi4xLS43MjkuMDU5YTEuMTg3LDEuMTg3LDAsMCwwLS44MDcuMTM4Yy0uNTEyLjIxNy0xLjI0MS4yLTEuNjkzLjU3MS0uMzc0LjMxNS0uMzc0LDEtLjU1MSwxLjRhNS4xNjcsNS4xNjcsMCwwLDEtMS41MzYsMi4wMDgsMy45LDMuOSwwLDAsMS0xLjk0OS44NDcsNy45NjEsNy45NjEsMCwwLDEtMS41MzYuMDU5Yy0uMjU2LS4wMi0uNTEyLS4wMi0uNzY4LS4wMi0uMTU4LDAtLjY2OS0uMDItLjY1LjAzOWwtLjA1OS4xMzhhLjcuNywwLDAsMCwuMDM5LjJjLjAyLjExOC4wMi4yMTcuMDM5LjMxNSwwLC4yMTctLjAyLjQ1MywwLC42NjkuMDIuNDUzLjIuODY2LjIxNywxLjMzOWEzLjI2LDMuMjYsMCwwLDAsLjUzMiwxLjQ3N2MuMS4xNTguMjM2LjE3Ny4zLjM3NGE0LjE2Myw0LjE2MywwLDAsMSwuMDM5LjcwOSw5LjY4NSw5LjY4NSwwLDAsMCwuODI3LDIuNzU3di4wMmgwYy41MTItLjA3OSwxLjA0NC0uMjc2LDEuNzEzLS4zNzQsMS4yNDEtLjE3NywyLjk1NC0uMSw0LjA1Ni0uMiwyLjgtLjI1Niw0LjMxMiwxLjE0Miw2LjgxMy41NzFWNy4zMjhBMy41NTEsMy41NTEsMCwwLDAsMjYuNDU2LDMuOFpNMTYuMDIsMjAuMzQzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk04LjQ3OCwyMy41NzNjLjItLjQzMy4zMTUtLjkwNi40NzMtMS4zMzlhMi4yNzcsMi4yNzcsMCwwLDEsLjgwNy0xLjIyMSw3LjMsNy4zLDAsMCwwLTEuMDgzLS4xYy0uMjM2LS4wMi0uNDczLS4wNTktLjcwOS0uMS0uNDMzLS4wNzktLjkyNS0uMTc3LTEuMzM5LS4yNzYtLjI1Ni0uMDU5LTEuMTQyLS4zNzQtMS4zMTktLjQ1My0uNDUzLS4yLS43NDgtLjc2OC0xLjA4My0uNzA5YS43OTQuNzk0LDAsMCwwLS41NzEuMzM1LDMuNzQzLDMuNzQzLDAsMCwwLS4yMzYuNzA5Yy0uMS4yMzYtLjI1Ni40NzMtLjM3NC43MDlhMTIuMjg5LDEyLjI4OSwwLDAsMC0uOTI1LDEuMmMtLjAzOS4xLS4wNTkuMi0uMS4zdjQuNzQ1YTUuNCw1LjQsMCwwLDEsLjcyOS4xNTgsOC43Nyw4Ljc3LDAsMCwwLDQuMzcxLjM1NGwuMTc3LS4wMmgwYy4xMzgtLjMxNS4yNTYtMS4zNTkuMzU0LTEuNjc0YTUuNDk0LDUuNDk0LDAsMCwwLC4yMTctLjY4OSwyLjY2OCwyLjY2OCwwLDAsMC0uMDItLjY4OUM3LjgwOSwyNC4yNDIsOC4yNjIsMjQuMDQ1LDguNDc4LDIzLjU3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz5cIixcblx0XCJPY3RhdmVcIjogXCI8ZGVmcyBpZD1cXFwiZGVmczI4NzRcXFwiPiA8cmFkaWFsR3JhZGllbnQgY3g9XFxcIjE4Mi45ODM3XFxcIiBjeT1cXFwiMzk1LjA0ODcxXFxcIiByPVxcXCIxNDguOTUzMDlcXFwiIGZ4PVxcXCIxODIuOTgzN1xcXCIgZnk9XFxcIjM5NS4wNDg3MVxcXCIgaWQ9XFxcInJhZGlhbEdyYWRpZW50MzAzM1xcXCIgeGxpbms6aHJlZj1cXFwiI2xpbmVhckdyYWRpZW50Mzc1NVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC4yMjkxNDMzNCwtMC4yNDkwMTQ3OSwwLjc2NDM1NzIsMC44MzA2NDI2OCwtMjcyLjg1MzM3LC0xNTkuNjk0ODIpXFxcIiAvPiA8bGluZWFyR3JhZGllbnQgaWQ9XFxcImxpbmVhckdyYWRpZW50Mzc1NVxcXCI+IDxzdG9wIGlkPVxcXCJzdG9wMzc1N1xcXCIgc3R5bGU9XFxcInN0b3AtY29sb3I6IzAwOGNiZTtzdG9wLW9wYWNpdHk6MVxcXCIgb2Zmc2V0PVxcXCIwXFxcIiAvPiA8c3RvcCBpZD1cXFwic3RvcDM3NTlcXFwiIHN0eWxlPVxcXCJzdG9wLWNvbG9yOiNiMmZmZmY7c3RvcC1vcGFjaXR5OjFcXFwiIG9mZnNldD1cXFwiMVxcXCIgLz4gPC9saW5lYXJHcmFkaWVudD4gPC9kZWZzPiA8ZyBpZD1cXFwibGF5ZXIxXFxcIiB0cmFuc2Zvcm09XFxcInNjYWxlKDAuMTEyOTYpIHRyYW5zbGF0ZSgtMjMzLjM1NTQ0LC0zOTAuNzE4MDIpXFxcIj4gPGcgdHJhbnNmb3JtPVxcXCJtYXRyaXgoOC40NTE5NzIzLDAsMCw4LjQ1MTk3MjMsLTI3OC40NTAxMiwtNDAzLjgyOTc1KVxcXCIgaWQ9XFxcImczMDI1XFxcIj4gPHBhdGggZD1cXFwibSA2Ni40MzIxMDMsOTcuNDg4Njc5IGMgLTUuMTk1ODQsNS42NDY0MzEgLTMuOTM2NjEsMTYuMTY5MDMxIDIuODExMDcsMjMuNTAxODcxIDYuNzQ3NjgsNy4zMzI4NSAxNi40Mjg5OCw4LjY5OTU1IDIxLjYyNDgzLDMuMDUzMTIgNS4xOTU4NSwtNS42NDY0MyAzLjk0MDIsLTE2LjE2OTQ2IC0yLjgwNzQ5LC0yMy41MDIzIC02Ljc0NzY4LC03LjMzMjg2MSAtMTYuNDMyNTYsLTguNjk5MTMxIC0yMS42Mjg0MSwtMy4wNTI2OTEgeiBtIDQuNzExNDksMi4zNDU1MyBjIDQuMDgyNTYsLTQuNDM2NTkgMTEuNTg5LC0zLjQ3MTUyIDE2Ljc2NzQxLDIuMTU1OTYxIDUuMTc4NDIsNS42Mjc1IDYuMDY2NDcsMTMuNzg0OTEgMS45ODM5MSwxOC4yMjE1IC00LjA4MjU2LDQuNDM2NTggLTExLjU5MDk3LDMuNDczNjkgLTE2Ljc2OTM5LC0yLjE1MzgxIC01LjE3ODQyLC01LjYyNzUgLTYuMDY0NDksLTEzLjc4NzA0IC0xLjk4MTkzLC0xOC4yMjM2NTEgelxcXCIgaWQ9XFxcInBhdGg1ODc0XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50MzAzMyk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmVcXFwiIC8+IDxyZWN0IHdpZHRoPVxcXCI0LjM0OTg1NFxcXCIgaGVpZ2h0PVxcXCI0LjM0OTg1NFxcXCIgcng9XFxcIjAuNzY5NTg5NjZcXFwiIHJ5PVxcXCIwLjc2OTU4OTY2XFxcIiB4PVxcXCI4NS4zODE1NjFcXFwiIHk9XFxcIjk5LjQ5Mzg4MVxcXCIgaWQ9XFxcInJlY3Q1ODc2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY3ZjJhO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojZDQ1NTAwO3N0cm9rZS13aWR0aDowLjc0NDAzNzk5O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lXFxcIiAvPiA8cmVjdCB3aWR0aD1cXFwiMTAuMjQ1NDM2XFxcIiBoZWlnaHQ9XFxcIjEwLjI0NTQzNlxcXCIgcng9XFxcIjEuODEyNjU0NVxcXCIgcnk9XFxcIjEuODEyNjU0NVxcXCIgeD1cXFwiNjAuOTI2NTlcXFwiIHk9XFxcIjEwNS4yMjQ1XFxcIiBpZD1cXFwicmVjdDU4NzhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjdmMmE7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiNkNDU1MDA7c3Ryb2tlLXdpZHRoOjAuNzQ0MDM3OTk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmVcXFwiIC8+IDxyZWN0IHdpZHRoPVxcXCI2LjE4OTc1MzFcXFwiIGhlaWdodD1cXFwiNi4xODk3NTMxXFxcIiByeD1cXFwiMS4wOTUxMTAyXFxcIiByeT1cXFwiMS4wOTUxMTAyXFxcIiB4PVxcXCI4Ny40MDQ3MzlcXFwiIHk9XFxcIjExOC42MzcwNVxcXCIgaWQ9XFxcInJlY3Q1ODgwXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY3ZjJhO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojZDQ1NTAwO3N0cm9rZS13aWR0aDowLjc0NDAzNzk5O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lXFxcIiAvPiA8L2c+IDwvZz5cIixcblx0XCJPcGVuQ0xcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIyOS42NjJcXFwiIHkxPVxcXCIxOC4wMjZcXFwiIHgyPVxcXCIyMS40MTlcXFwiIHkyPVxcXCIyMC4yMzRcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcInJlZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmNmE2YVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjQuNTg4XFxcIiB5MT1cXFwiOS43NDhcXFwiIHgyPVxcXCIxOC43NzZcXFwiIHkyPVxcXCIxNS41NlxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCIxOC40NjZcXFwiIHkxPVxcXCI2LjYxOVxcXCIgeDI9XFxcIjE1LjkyNFxcXCIgeTI9XFxcIjEzLjYwM1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2NmYTQwY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VkZDQ4MFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTMuMTdcXFwiIHkxPVxcXCI2LjUxXFxcIiB4Mj1cXFwiMTMuMTdcXFwiIHkyPVxcXCIxMi45OTdcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiOC44MDhcXFwiIHkxPVxcXCI4LjQ4NlxcXCIgeDI9XFxcIjEwLjk4OFxcXCIgeTI9XFxcIjEzLjE2MVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCI1LjUwNVxcXCIgeTE9XFxcIjExLjQ3N1xcXCIgeDI9XFxcIjguNTQ2XFxcIiB5Mj1cXFwiMTQuNTE5XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTFhMTE5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzdhZTNkXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCIzLjYzOVxcXCIgeTE9XFxcIjE0LjI4NVxcXCIgeDI9XFxcIjYuODgzXFxcIiB5Mj1cXFwiMTYuMTU4XFxcIiB4bGluazpocmVmPVxcXCIjZlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIjIuMjY1XFxcIiB5MT1cXFwiMTcuNzk5XFxcIiB4Mj1cXFwiNS4zNzlcXFwiIHkyPVxcXCIxOC45MzNcXFwiIHhsaW5rOmhyZWY9XFxcIiNmXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpXFxcIiB4MT1cXFwiMlxcXCIgeTE9XFxcIjIxLjYxNFxcXCIgeDI9XFxcIjQuODMzXFxcIiB5Mj1cXFwiMjEuNjE0XFxcIiB4bGluazpocmVmPVxcXCIjZlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwialxcXCIgeDE9XFxcIjIwLjY2MlxcXCIgeTE9XFxcIjE4Ljk0OVxcXCIgeDI9XFxcIjE4LjAyNlxcXCIgeTI9XFxcIjE3LjQyOFxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjQ2NDY0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2JjYmNiXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImtcXFwiIHgxPVxcXCIxNi4wMjFcXFwiIHkxPVxcXCIyNS4yNjRcXFwiIHgyPVxcXCIxNi4wMjFcXFwiIHkyPVxcXCIyMi42OTFcXFwiIHhsaW5rOmhyZWY9XFxcIiNqXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfb3BlbmNsPC90aXRsZT48cGF0aCBkPVxcXCJNMjcuODI4LDEzLjU3NGExNC42NzYsMTQuNjc2LDAsMCwxLC44MzUsMS41NDJBMTQuOTY0LDE0Ljk2NCwwLDAsMSwyOS45MiwyMi45SDIyLjEzM2ExMC4zNzcsMTAuMzc3LDAsMCwwLS45NjctNC40MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljc1MywxNC40M2ExMC4wNzQsMTAuMDc0LDAsMCwxLDIuNzcyLDIuODc4bDYuMjczLTUuMmExNS41NCwxNS41NCwwLDAsMC00Ljk4OC00LjE1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC43ODEsMTMuMDg2YTguODI3LDguODI3LDAsMCwxLDIuMzc2Ljk2NkwyMC42NjYsNy40M2ExMi43LDEyLjcsMCwwLDAtNC42NDUtLjk1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTQuMzY0LDEzbC42MTItNi40ODhhMTIuNDYsMTIuNDYsMCwwLDAtMy42MTEuODEzbC41MDcsNS42MzhBNy4yMTksNy4yMTksMCwwLDEsMTQuMzY0LDEzXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjk0OCwxMy4xNzlsLS42ODMtNS4zNzNBMTQuNTg4LDE0LjU4OCwwLDAsMCw3Ljc3Myw5LjM3OWwxLjc0LDQuNDJhNy41MTgsNy41MTgsMCwwLDEsMS40MzUtLjYxOVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk04Ljg2LDE0LjIwNiw2LjQ3NCwxMC41MTFjLS40NTMuNDQtLjc5LjgyLTEuMDA2LDEuMDc0cS0uMjI3LjI2Ny0uNDM2LjUzOEw3LjQ4LDE1LjM4N2E4Ljg3LDguODcsMCwwLDEsMS4zOC0xLjE4MlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjA0NiwxNS44NzUsNC4zMzUsMTMuMTEyYTE0LjI1OSwxNC4yNTksMCwwLDAtMS4yNSwyLjQyOWwzLjAwNywxLjcxYTkuODI2LDkuODI2LDAsMCwxLC45NTQtMS4zNzZcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNNS41MjcsMTguMzkzbC0yLjc3LTEuOTQ1YTE1LjQ1MiwxNS40NTIsMCwwLDAtLjYzLDIuODNsMi45MDYuNjA3YTEwLjM0MywxMC4zNDMsMCwwLDEsLjQ5NC0xLjQ5MlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk00LjgzMywyMC45YTEwLjY4NCwxMC42ODQsMCwwLDAtLjEsMkgyLjA5M2ExNC4zMzMsMTQuMzMzLDAsMCwxLS4wNjQtMi41NzNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2kpXFxcIi8+PHBhdGggZD1cXFwiTTIyLjU1MSwxMi40NzgsMTQuNzUxLDIzLjFBMS41NDQsMS41NDQsMCwwLDEsMTcuNSwyNC40MjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAyMSwyNS41MjJhMS41NDQsMS41NDQsMCwxLDEsMS4wOTItLjQ1MkExLjUzMywxLjUzMywwLDAsMSwxNi4wMjEsMjUuNTIyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzY0NjQ2NFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zMDgsMjMuOTc4YTEuMjg3LDEuMjg3LDAsMSwxLS4zNzctLjkxQTEuMjgzLDEuMjgzLDAsMCwxLDE3LjMwOCwyMy45NzhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2spXFxcIi8+XCIsXG5cdFwiUGFzY2FsXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTZcXFwiIHkxPVxcXCItMC40NDNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjIyLjA0MlxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZjBjMTVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YTBjMGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2RlbHBoaTwvdGl0bGU+PGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTRcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTQ1LDE2LjI0M0g0LjkyNGEuOTE0LjkxNCwwLDAsMC0xLjA5Mi44MnEuMDMzLjQyOS4xLjg0OWExMi40LDEyLjQsMCwwLDAsMjQuNTMyLDBxLjA3NS0uNS4xMDgtMS4wMjFDMjguNDc4LDE2LjUyMywyOC4yMTEsMTYuMjA3LDI3LjU0NSwxNi4yNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2NDQzXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTguNDggMTEuNjQgMjMuNzA3IDcuMjY2IDE5Ljc4NyA1Ljg4IDE2IDExLjA1M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjE1LjY4IDExLjAyNiAxOC42NCA1Ljg4IDE0Ljg1MyA1Ljg4IDEzLjMwNyAxMS4yOTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMy4wNCAxMS4zNzMgMTMuNiA2LjcwNiAxMC41ODcgNy45NiAxMS4wMTMgMTIuNzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMC43NDcgMTMgOS43ODcgOC43NiA3LjcwNyAxMC44NCA5LjY1MyAxNC42OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMzg3IDE1LjA1MyA3LjQ5MyAxMi4zNzYgNi42NCAxNC40NjYgOS4wNCAxNi41MTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjA0IDE2Ljc1NyA2LjY0IDE1LjIxMyA2LjQ4IDE3LjQgOS4yIDE4LjMzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMjI3IDE4Ljg0NiA2LjY0IDE4LjA0IDcuMjI3IDE5LjggOS41NDcgMTkuOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuNzA3IDIwLjA5MyA3LjcwNyAyMC4zODYgOC42MjcgMjEuNzQ2IDEwLjI2NyAyMVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMjMsMTMuMDg5YTYuNjEsNi42MSwwLDAsMC00LjUzLTJBNi4yOTMsNi4yOTMsMCwwLDAsMTEuMywyMi4wN2w0Ljk0MS4xMjktMi4wOC00LjE2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41LDIyLjM2NmwtNS4yNjctLjEzOC0uMDQ0LS4wMzlhNi40NTMsNi40NTMsMCwwLDEsNC4zLTExLjI2NCw2Ljc4Nyw2Ljc4NywwLDAsMSw0LjY0MywyLjA1bC4xMjMuMTIzLTUuOSw0Ljk4MlptLTUuMTQtLjQ1NSw0LjYxNi4xMjFMMTMuOTYxLDE4bDUuODI1LTQuOTE5YTYuNDMsNi40MywwLDAsMC00LjI5Mi0xLjgzNSw2LjEzMyw2LjEzMywwLDAsMC00LjEzMSwxMC42NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTEyLjAxMywyMC40OTNjLTQuMTczLTUuODEzLDIuMTA5LTguMTcyLDIuNDc4LTguNDUzLjQ1MS0uMzQ0LTcuNTksMS43ODUtMy4yMjYsOC44OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMDRlMzE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjcyIDEyLjYgMTMuNTIgMTcuNTY3IDEzLjczMyAxOC41NzMgMjEuNDY3IDE3LjAyNiAyMC43MiAxMi42XFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTEzLjYxLDE4Ljc2MSwxMy4zNDEsMTcuNWw3LjQ5NS01LjE3LjgxNCw0LjgyOFptLjA4OS0xLjEyMy4xNTguNzQ3TDIxLjI4MywxNi45LDIwLjYsMTIuODc0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43MjMsMjEuMzE5Yy0zLjkzLS42NjgtNC4yODMuNDI4LTQuMjgzLjQyOEwxMC4yNjcsMjQuNDRzMS4xMi0uOTA3LDUuNDkzLDBsLjc2LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2RkMGMxMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMjIsMjEuNmMtLjAyLS4yLTEuMS0uMzE5LTEuNjc3LS4xMjMtLjczMi4yNDktMS4yMTksMS4xNDItMS4wNDUsMS4yMTNhMS45NzUsMS45NzUsMCwwLDEsMS4xMjUtLjk4NkMxMy40NDcsMjEuNDkzLDE0LjE0MiwyMS44LDE0LjEyMiwyMS42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmNmU0ZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS41MiwxOC42MDZhMTEuMSwxMS4xLDAsMCwwLDEuNTQ3LDEuNDg3LDYuOSw2LjksMCwwLDEsMi43Miw0LjEwN2MtLjEwNywxLjA2Ny0xLjk3MywxLjc2LTEuOTczLDEuNzZsLTMuMzA3LTcuMTk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy43MywyNi4xNjFsLTMuNDU3LTcuNTIxLDEuMzItLjIwOC4wNTcuMDgxYTEwLjg2OSwxMC44NjksMCwwLDAsMS41MTIsMS40NTEsNyw3LDAsMCwxLDIuNzgyLDQuMjA3bDAsLjAyMiwwLC4wMjJjLS4xMTUsMS4xNTMtMiwxLjg2NC0yLjA3NywxLjg5NFptLTIuOTktNy4yNywzLjE1NSw2Ljg2M2MuNDE0LS4xNzgsMS42My0uNzYzLDEuNzMtMS41NDhhNi43OTMsNi43OTMsMCwwLDAtMi42NDgtMy45ODFsLS4wMS0uMDA3YTExLjk0LDExLjk0LDAsMCwxLTEuNTE3LTEuNDM5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yOCwxMi43NDJjLjAyNS4zOTQuMDM0Ljc5Mi4wMjUsMS4xOTRhMTMuOTQ2LDEzLjk0NiwwLDAsMS0xOS45LDEyLjNBMTIuODYsMTIuODYsMCwwLDAsMjgsMTIuNzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0yLjM4MywxMy44OTNBMTMuOTQxLDEzLjk0MSwwLDAsMSwyNS43LDUuODNzLTUuMDA5LDUuOTc5LTEwLjU4NCw3LjkwN1MyLjM4MywxMy44OTMsMi4zODMsMTMuODkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0zLjYxOCwxOC42OTRjLS4wNDQtLjM5Mi0uMDcyLS43OS0uMDgzLTEuMTkxQzMuMzI5LDkuODA3LDEwLjAxMiw0LjIsMTcuNzA4LDMuOTkxYTE0LjIsMTQuMiwwLDAsMSw1LjcxOSwxLjQ1OCwxMy4xMjgsMTMuMTI4LDAsMCwwLTcuMTg4LTIuMzY5Yy03LjEuMTktMTMuMzA2LDUuMy0xMy4xMTYsMTIuNEExMi44NzMsMTIuODczLDAsMCwwLDMuNjE4LDE4LjY5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYWUwZGY7ZmlsbC1ydWxlOmV2ZW5vZGQ7b3BhY2l0eTowLjJcXFwiLz5cIixcblx0XCJQZXJsXCI6IFwiPHBhdGggZD1cXFwiTTI5LjI1LDEzLjhhNi44ODgsNi44ODgsMCwwLDAtLjc0Mi0yLjI2OCwxLjAxMSwxLjAxMSwwLDAsMC0uMTcyLS4yMzMsOS40NzEsOS40NzEsMCwwLDEtMS43MjUtMi40LDguNjMyLDguNjMyLDAsMCwwLTEuMzk1LTIuMzgyQTYuOTA2LDYuOTA2LDAsMCwxLDI0LjEsNC42NDQsNC41NzIsNC41NzIsMCwwLDAsMjEuOTksMS43MjdhMS4wMDksMS4wMDksMCwwLDAtLjEtLjA1NCw4Ljg4Niw4Ljg4NiwwLDAsMC0xLjMtLjQ2OCwxLjAyMiwxLjAyMiwwLDAsMC0uMjYzLS4wMzUsMS4wMDksMS4wMDksMCwwLDAtLjIuMDIxLDUuNjA3LDUuNjA3LDAsMCwxLS44MDcuMTA3Yy0uMDUsMC0uMS0uMDA2LS4xNDktLjAwNmEyLjg0MiwyLjg0MiwwLDAsMC0xLjQxNi40NTNjLS4wOTQuMDUyLS4xODguMTA2LS4yODQuMTQ5cS0uMDQxLjAxOC0uMDc4LjAzOUExLjYzNywxLjYzNywwLDAsMSwxNy4wNjYsMmEzLjEwOSwzLjEwOSwwLDAsMC0uNzcyLjE5NCwxLDEsMCwwLDAtLjUwOC40ODMsMi4xODQsMi4xODQsMCwwLDEtLjQ2OS41QTQuMzgyLDQuMzgyLDAsMCwwLDE0LjU1NSw0YS45NjQuOTY0LDAsMCwwLS4xMTYuMjM0LDQuNjg3LDQuNjg3LDAsMCwxLTEuNTc0LDIuMiw2LjQ3MSw2LjQ3MSwwLDAsMC0uOC42MTMsMi43MzQsMi43MzQsMCwwLDAtLjYyNy0xLjYzNGMtLjAxNy0uMDE5LS4wMzUtLjAzOC0uMDUzLS4wNTZsMC0uMDE0YTIuMzc4LDIuMzc4LDAsMCwwLS4xMzUtLjU4NiwxLDEsMCwwLDAtLjEzMi0uMjM2QTUuMTY3LDUuMTY3LDAsMCwwLDkuNTExLDMuMTEzYS45ODguOTg4LDAsMCwwLS4zNDYtLjExOSwxLjUsMS41LDAsMCwxLS4xNDgtLjA3NywyLjA2LDIuMDYsMCwwLDAtMS0uMzExLDEuNDc2LDEuNDc2LDAsMCwwLS42ODEuMTY2Ljk4Ny45ODcsMCwwLDAtLjI3NC4yMDYsMS4zMjgsMS4zMjgsMCwwLDEtLjEyNS4wNjMsMS45LDEuOSwwLDAsMC0uOTA4Ljc3OCwyLjUzOSwyLjUzOSwwLDAsMC0uNTQxLjEwNiwxLjY1NiwxLjY1NiwwLDAsMS0uMzgzLjA1NywyLjMsMi4zLDAsMCwwLTEuNS41NDVsLS4xMDYuMWEyLjUzMywyLjUzMywwLDAsMC0xLDIuNTI1LDEuMDgsMS4wOCwwLDAsMCwuMDY4LjE2NUEyLjI5NCwyLjI5NCwwLDAsMCw0LjQ0Niw4LjQ3OGMtLjEuMjM4LS4yLjQ3My0uMzE0LjdhMS4wMDksMS4wMDksMCwwLDAtLjA4Ny4yOTNBMTEuMDUyLDExLjA1MiwwLDAsMCw0LDEyLjAzOWMwLC4wMiwwLC4wNC4wMDcuMDZhNS4yNzgsNS4yNzgsMCwwLDEsLjA0MS41NDcsMi45MjYsMi45MjYsMCwwLDAsLjkzMSwyLjRjLjAxNy4wMTQuMDM0LjAyNi4wNTIuMDM5bC4wMDguMDMxYTIuOCwyLjgsMCwwLDAsLjE1MS40NDcsMS4xODUsMS4xODUsMCwwLDAsLjYzMi42MTcsMS4yODksMS4yODksMCwwLDAsLjI0OC41NzEsMSwxLDAsMCwwLC4zMzIuMjc5LDIuNDUzLDIuNDUzLDAsMCwwLC40NjUuMTc2bC4wNjQuMDE4YS45NzYuOTc2LDAsMCwwLC4xOTIuMTcxQTUuODc5LDUuODc5LDAsMCwxLDcuODczLDE4YTEuMTMsMS4xMywwLDAsMCwxLjM1MS40MjcsMS41LDEuNSwwLDAsMCwuNzY1LjIxNSwxLjQyMSwxLjQyMSwwLDAsMCwuNjI0LS4xNDVsLjExNC0uMDI2Yy4wMjQuNDA4LjAzMy44MTcuMDI4LDEuMjIzYTEuMDQzLDEuMDQzLDAsMCwwLC4wMjYuMjQyLDEwLjc0NCwxMC43NDQsMCwwLDEsLjI2NiwxLjgyOC45MzEuOTMxLDAsMCwwLC4wMzEuMiw4LjQ5Miw4LjQ5MiwwLDAsMSwuMjY4LDEuODE1YzAsLjAzMSwwLC4wNjMuMDA4LjA5NGE2LjA4Myw2LjA4MywwLDAsMS0uNjEsMy41NzUuOTk0Ljk5NCwwLDAsMC0uMDg5LjI2MSwxLjA5MywxLjA5MywwLDAsMC0uMjM0LjA3OWwtLjA1LjAyMmEyLjAxMywyLjAxMywwLDAsMC0xLjIsMS4wNjUsMS4zMjIsMS4zMjIsMCwwLDAsLjA3NCwxLjA1NCwxLDEsMCwwLDAsLjMyNC4zNzEsMy41NDcsMy41NDcsMCwwLDAsMy41MDkuMywxLjU0NiwxLjU0NiwwLDAsMCwuODI5LTEuNjUzbC0uMDA1LS4wNjdhLjk4OS45ODksMCwwLDAsLjA1Ni0uMTU4LDExLjE4NiwxMS4xODYsMCwwLDAsLjI4OC0yLjA2OCw4LjkzOSw4LjkzOSwwLDAsMSwuMjU5LTEuODIyLDQuNzI3LDQuNzI3LDAsMCwwLC4zODktMS41ODhsLjA0Mi4wNDhhMTIuNjYxLDEyLjY2MSwwLDAsMCwxLjI1NSwxLjEyOSwxMC4zLDEwLjMsMCwwLDEsMS4xLjk4OWwtLjAxMS4wMzhhLjUzMi41MzIsMCwwLDEtLjM0Mi4zNTlsLS4wNDkuMDE3YTEuOTIxLDEuOTIxLDAsMCwwLTEuMTg0LDEuMzM0LDEuMzEzLDEuMzEzLDAsMCwwLC40NTIsMS4yMzQsMSwxLDAsMCwwLC40NDEuMjIyLDQuOTA4LDQuOTA4LDAsMCwwLDIuNzM1LS4xODEsMS41NTYsMS41NTYsMCwwLDAsLjI2Ni0uMTI0LDEuNDExLDEuNDExLDAsMCwwLC45Ny4zNzIsMi4zMjYsMi4zMjYsMCwwLDAsMS0uMjc0Yy4wNDktLjAyMy4xLS4wNDUuMTQtLjA2MmExLDEsMCwwLDAsLjYzNy0uODY0LDQuNTUzLDQuNTUzLDAsMCwwLS40NjgtMi4zNDMsMS41NiwxLjU2LDAsMCwwLS41MS0uNiwxMC44LDEwLjgsMCwwLDEsMS4zLTIuMTUsMi4xOTMsMi4xOTMsMCwwLDAsLjQ1MS0yLjAyNiwyLjUxOSwyLjUxOSwwLDAsMS0uMDQzLS4zOTQsMS4wNDYsMS4wNDYsMCwwLDAsMC0uMTQ4LDUuNzU2LDUuNzU2LDAsMCwxLC4wMTItMS4yNzksNy4xNjEsNy4xNjEsMCwwLDAsLjk1MSwxLjc5Myw3Ljg5Miw3Ljg5MiwwLDAsMSwuMTMzLDEuMSwxMC43MzMsMTAuNzMzLDAsMCwwLC4xMzMsMS4xODYsOS4zNiw5LjM2LDAsMCwxLS4yMjQsMy45LDEsMSwwLDAsMC0uMDMyLjM0aDBhLjk4Ljk4LDAsMCwwLS4xLjE3OSwyLjIzOCwyLjIzOCwwLDAsMC0uMzEyLDEuMjM1LDEuMDA3LDEuMDA3LDAsMCwwLC4wMzkuMiwxLjMxNSwxLjMxNSwwLDAsMCwxLjMyOC45NjNjLjA4NiwwLC4xNzctLjAwNi4yNjgtLjAxNGwuMDE5LDAsLjAzOC4wMTNhMi4xMDksMi4xMDksMCwwLDAsMi41MTctMS4wODgsMSwxLDAsMCwwLC4wNTgtLjczNSw1LjI4NSw1LjI4NSwwLDAsMS0uMjA4LTEuMDI3LDEuMDExLDEuMDExLDAsMCwwLS4wNDYtLjIxNyw2LjQ3LDYuNDcsMCwwLDEtLjIyMS0zLjIyLDEuMTEyLDEuMTEyLDAsMCwwLC4wMTUtLjExNCwzLjkwNywzLjkwNywwLDAsMSwuMDc0LS40NDMsMi43MzgsMi43MzgsMCwwLDAtLjE5My0yLjEsNC4zMzksNC4zMzksMCwwLDEsLjAyMS0uNDc2Yy4wMTEtLjE0Ny4wMjMtLjMuMDI3LS40NjNhMS41OSwxLjU5LDAsMCwwLC44NjItLjg1MSwxMi44MywxMi44MywwLDAsMCwuOTQ3LTIuMjMsMS43MTksMS43MTksMCwwLDAsLjE3Mi0xLjE4NSwxLjIzNCwxLjIzNCwwLDAsMCwuMTExLS4yNTFBMS40NjcsMS40NjcsMCwwLDAsMjkuMjUsMTMuOFpNMTguODYzLDIyLjc2OGMtLjAyNiwwLS4wNTMtLjAwOC0uMDgtLjAxbC0uMDI0LDBhMi43NDgsMi43NDgsMCwwLDEtLjIzNi0uMzIzYy0uMDU5LS4wODgtLjExOC0uMTc1LS4xNzgtLjI1OGEyLjI1MywyLjI1MywwLDAsMCwuMjA4LS4yMzQsMS4yNTUsMS4yNTUsMCwwLDAsLjYyOS0uMzIxQTMuMTg2LDMuMTg2LDAsMCwxLDE4Ljg2MywyMi43NjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWRlZGVkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyLjNjLS41NDgtLjA2NS0uOTYxLjMtMS40MTkuNTA2LS4zNjguMjA2LS44MTUuMTUyLTEuMTg1LjMwOS0uMjgyLjU3OS0uOTQxLjkwOC0xLjMsMS40NDNhNS43LDUuNywwLDAsMS0xLjk0MiwyLjY5NCw1LjQ2NCw1LjQ2NCwwLDAsMC0yLjM2OCwzLjM5NGMtLjE0NS4zLS4xMjIuNzQ2LS4yNzcsMS0uNTExLjE0My0uMjM5LS41MTYtLjMtLjgyNS0uMDc0LS40Ny4zNDEtLjc3LjM3My0xLjIyNmExLjgzNCwxLjgzNCwwLDAsMCwuMjA5LTEuMDUzYy0uMDU2LS44MTQuMTg5LTEuODA3LS4zOTMtMi40NzctLjM0OS0uMi0uMjM5LS42MjMtLjM2Ni0uOTQ3YTQuMjE0LDQuMjE0LDAsMCwwLTEuMy0xLjEzOWMtLjQxOS0uMDQxLS44MDYtLjU0Mi0xLjIzMi0uMzIzLS4yNjYuMzA5LS43NjMuMzA1LS45MjIuNzEzLS4xLjUxNi0uNjg4LjM3NC0xLjA2OC41LS40ODguMTg1LTEuMTE4LjAwNi0xLjUxOC4zODItLjQxMS40MS0xLjAzNC45NjEtLjgzNSwxLjYwNi40NTcuODgyLDEuNjQ1LjQzOCwyLjMxNy45NzRBMTcuOTksMTcuOTksMCwwLDEsNS4wMzYsOS42MWExMC4wNTEsMTAuMDUxLDAsMCwwLS4wNDQsMi4zMzJjLjEyMy43NzMtLjA4MywxLjc3Mi42MDYsMi4zMTkuMzguMTM3LjM1Ny41NzIuNS44ODcuMTM0LjI5LjQyNy0uMTEzLjU0My4xOTMuMzM4LjE4NC4wMzcuNTYxLjIyLjguMjYzLjEzNy42MzkuMTI4LjgyMi40MjZhNi44NDQsNi44NDQsMCwwLDEsLjk3NS44MDZjLjIzLjQ2Ny41MzEtLjQ1NC43ODMtLjEwOS4xNy4yODUuNTA2LjUyMi44MTkuMjg1YTIuOTkzLDIuOTkzLDAsMCwwLDEuMzI0LS41NTYsMTguMDMzLDE4LjAzMywwLDAsMSwuMTcxLDIuNzE4LDExLjczMywxMS43MzMsMCwwLDEsLjI5LDIsOS40MDksOS40MDksMCwwLDEsLjMsMi4wMyw3LjExMSw3LjExMSwwLDAsMS0uNzA5LDQuMTYsMS4wMTIsMS4wMTIsMCwwLDEtLjgwNy44Yy0uMjkxLjEzLS45LjM2Ni0uNjkyLjc3NmEyLjU0OSwyLjU0OSwwLDAsMCwyLjUyLjIxNGMuNTEtLjI0My4wNzMtLjg1OC4zMzQtMS4yMjYuMzQzLTEuMy4xNzQtMi42OTEuNTc1LTMuOTg1YTMuNzYyLDMuNzYyLDAsMCwwLC4zLTIuMWMuMDc5LS40NC0uMTA1LS45NjkuMTg3LTEuMzI5YTEuODEzLDEuODEzLDAsMCwxLC40ODMtMS4yLDE0Ljc2MiwxNC43NjIsMCwwLDAsLjE0NC0yLjAyNiwzLjIxNCwzLjIxNCwwLDAsMSwxLjI2Ny0uMTI3Yy4wMTguMzc1LS4yNzIuODEyLS4xOSwxLjIzNEExLjk0OCwxLjk0OCwwLDAsMSwxNS41LDIwLjNhMi44NDksMi44NDksMCwwLDAsLjE2OCwyLjMwOGMuNzgyLjgzOSwxLjgsMS40MzIsMi41MzYsMi4zMjcuMzE0LjIwNS4yLjUxNy4wMzguNzg0YTEuNTI4LDEuNTI4LDAsMCwxLS45ODcsMS4wMzRjLS4zMDguMTIxLS44MDYuNTY2LS40NDIuODgyYTMuOTA2LDMuOTA2LDAsMCwwLDIuMTc4LS4xNDRjLjQ3Ni0uMTcxLjMtLjczOC40ODgtMS4wODguMy4yMzMuNDIzLjc2NS43MTEsMS4wNjkuMy40MzMuODA3LjA3MywxLjE1Ni0uMDYyYTMuNTQ5LDMuNTQ5LDAsMCwwLS4zNzItMS44NDJjLS4xNjctLjM3OC0uOC0uMzg1LS43Ny0uODUyYTExLjc2MSwxMS43NjEsMCwwLDEsMS43MTItM2MuNTEtLjQ3OS4xMy0xLjE5MS4xNTgtMS44QTYuNzY1LDYuNzY1LDAsMCwxLDIzLjE1OCwxNS41YTE1Ljg4OSwxNS44ODksMCwwLDAsLjY5MiwyLjE0LDYuMjMsNi4yMywwLDAsMCwxLjEsMi4yNDZjLjIzNy44MTEuMTc2LDEuNzEuMzMxLDIuNTUxYTEwLjQ0LDEwLjQ0LDAsMCwxLS4yNDIsNC4zNDdjLjA0LjUxOC0uNDU3LjktLjQxNSwxLjQwOC4xNC40NjkuNy4wOTMuOTkuMjlhMS4xMSwxLjExLDAsMCwwLDEuMzI0LS41NzIsNi4yMTIsNi4yMTIsMCwwLDEtLjI0Ny0xLjIyMyw3LjQ1NCw3LjQ1NCwwLDAsMS0uMjU1LTMuNzE5Yy4wNDYtLjY2OS40NTctMS41LS4wNzMtMi4wNzItLjE0OC0uNjE5LjEtMS4yODUtLjA0OS0xLjkxNWExMi44NzcsMTIuODc3LDAsMCwxLS4xMjItNC45MzNjLjA5My0uMjI3LjAxMy0uNjQ5LjI0Ny0uNzc1YTEuODUxLDEuODUxLDAsMCwxLC4zMTUsMS4yMzIsMy43LDMuNywwLDAsMSwuMDc5LDIuMDgxYy0uNDI0LjUzMS0uMTYzLDEuMjQ4LS4xMDksMS44NS4wNjguNDIyLjUxNi4xMTguNTg5LS4xNDRhMTEuODUxLDExLjg1MSwwLDAsMCwuOTQ0LTIuMjQxYy4yNjktLjM1Ni4wMTQtLjc3LDAtMS4xNDIuNDEzLS4wNDkuMjU2LS41MDYuMDM1LS43YTUuOTMsNS45MywwLDAsMC0uNjY3LTIuMiwxMC40NjQsMTAuNDY0LDAsMCwxLTEuOTQxLTIuNzIzYy0uNTI4LTEuNjM5LTIuMDQyLTIuNzI2LTIuNTU2LTQuMzc5YTMuNTU2LDMuNTU2LDAsMCwwLTEuNjUyLTIuMzE3QTcuODgxLDcuODgxLDAsMCwwLDIwLjMyLDIuMTcsNi41LDYuNSwwLDAsMSwxOS4yODksMi4zWm0uNCwxNC42NmEzOC45MDcsMzguOTA3LDAsMCwxLC41LDQuMjkxLDQuMTc1LDQuMTc1LDAsMCwxLS43NiwyLjUxN2MtLjEyLjQyNS0uNDg2LjAxMi0uNzUxLS4wMTYtLjY0My0uMDE4LS44ODItLjY4My0xLjIzMi0xLjEwNy0uMzYtLjM0NC0uMS0uOC4xMzMtMS4xMzEuMjUyLS4xNzkuMzUtLjU3OS43MDgtLjU0OC40LS4wMDcuMzE2LS40ODcuMjYtLjc0My4yMzgtLjM2Mi4wOTItLjg5Mi4zMjgtMS4yODMuNDE5LS4xODIuMjk0LS44Mi40NDItMS4xOC4xMTUtLjI1Ni4wMTctLjc0OS4zMzQtLjg1NC4wMzctLjAwNi4wNDkuMDEyLjA0Mi4wNTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojM2EzYzViXFxcIi8+XCIsXG5cdFwiUEhQXCI6IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiLTE2LjExNFxcXCIgY3k9XFxcIjIwLjUzMlxcXCIgcj1cXFwiMTguMzg0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI2LjUyIC05LjMwNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzRjNmI5NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzIzMWYyMFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcGhwPC90aXRsZT48ZWxsaXBzZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcng9XFxcIjE0XFxcIiByeT1cXFwiNy4zNjVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcng9XFxcIjEzLjQ1M1xcXCIgcnk9XFxcIjYuODE4XFxcIiBzdHlsZT1cXFwiZmlsbDojNjI4MGI2XFxcIi8+PHBhdGggZD1cXFwiTTE4LjcyNSwxOC4ybC42NjctMy40MzRhMS43NTIsMS43NTIsMCwwLDAtLjM3Mi0xLjcxOSwyLjkyOSwyLjkyOSwwLDAsMC0yLS41MjVIMTUuODY3bC4zMzEtMS43YS4yMTkuMjE5LDAsMCwwLS4yMTUtLjI2aC0xLjZhLjIxOS4yMTksMCwwLDAtLjIxNS4xNzdsLS43MDksMy42NDZhMi4wNTEsMi4wNTEsMCwwLDAtLjQ3Ny0xLjA1NCwyLjc4MywyLjc4MywwLDAsMC0yLjItLjgwN0g3LjdhLjIxOS4yMTksMCwwLDAtLjIxNS4xNzdsLTEuNDM0LDcuMzhhLjIxOS4yMTksMCwwLDAsLjIxNS4yNkg3Ljg2OWEuMjE5LjIxOSwwLDAsMCwuMjE1LS4xNzdsLjM0Ny0xLjc4NWgxLjJhNS4xNjcsNS4xNjcsMCwwLDAsMS41NjgtLjIsMy4wNjgsMy4wNjgsMCwwLDAsMS4xNS0uNjg5LDMuNTM4LDMuNTM4LDAsMCwwLC42OC0uODQ0bC0uMjg3LDEuNDc1YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZoMS42YS4yMTkuMjE5LDAsMCwwLC4yMTUtLjE3N2wuNzg3LTQuMDUxaDEuMDk0Yy40NjYsMCwuNi4wOTMuNjQuMTMzcy4xLjE2NS4wMjUuNTY5bC0uNjM1LDMuMjY1YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZoMS42MkEuMjE5LjIxOSwwLDAsMCwxOC43MjUsMTguMlpNMTEuMzMsMTUuMzY2YTEuNzQ5LDEuNzQ5LDAsMCwxLS41NjEsMS4wOTIsMi4xNzEsMi4xNzEsMCwwLDEtMS4zMTUuMzIxSDguNzQybC41MTUtMi42NTFoLjkyMWMuNjc3LDAsLjk0OS4xNDUsMS4wNTkuMjY2QTEuMTgxLDEuMTgxLDAsMCwxLDExLjMzLDE1LjM2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNTQ2LDEzLjMzMmEyLjc4MywyLjc4MywwLDAsMC0yLjItLjgwN0gyMC4yNTVhLjIxOS4yMTksMCwwLDAtLjIxNS4xNzdsLTEuNDM0LDcuMzhhLjIxOS4yMTksMCwwLDAsLjIxNS4yNmgxLjYwOGEuMjE5LjIxOSwwLDAsMCwuMjE1LS4xNzdsLjM0Ny0xLjc4NWgxLjJhNS4xNjcsNS4xNjcsMCwwLDAsMS41NjgtLjIsMy4wNjgsMy4wNjgsMCwwLDAsMS4xNS0uNjg5LDMuNDI1LDMuNDI1LDAsMCwwLDEuMDc2LTEuOTI3QTIuNTEyLDIuNTEyLDAsMCwwLDI1LjU0NiwxMy4zMzJabS0xLjY2NywyLjAzNGExLjc0OSwxLjc0OSwwLDAsMS0uNTYxLDEuMDkyQTIuMTcxLDIuMTcxLDAsMCwxLDIyLDE2Ljc3OEgyMS4yOWwuNTE1LTIuNjUxaC45MjFjLjY3NywwLC45NDkuMTQ1LDEuMDU5LjI2NkExLjE4MSwxLjE4MSwwLDAsMSwyMy44NzksMTUuMzY2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4xNzgsMTMuOTA4YTEuNjQ1LDEuNjQ1LDAsMCwxLDEuMjIxLjMzOCwxLjM0LDEuMzQsMCwwLDEsLjE0NSwxLjE2MSwxLjk0NSwxLjk0NSwwLDAsMS0uNjQyLDEuMjIzQTIuMzYxLDIuMzYxLDAsMCwxLDkuNDU0LDE3SDguNDc2bC42LTMuMDg5Wk02LjI2MSwyMC4xMjRINy44NjlsLjM4MS0xLjk2Mkg5LjYyN2E0LjkzMSw0LjkzMSwwLDAsMCwxLjUtLjE5MSwyLjg0LDIuODQsMCwwLDAsMS4wNy0uNjQyLDMuMjA3LDMuMjA3LDAsMCwwLDEuMDEtMS44MDgsMi4zLDIuMywwLDAsMC0uMzg1LTIuMDQ0LDIuNTY4LDIuNTY4LDAsMCwwLTIuMDM1LS43MzJINy43WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMDAwNFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4zODcsMTAuNzgyaDEuNkwxNS42LDEyLjc0NGgxLjQyMWEyLjc2NywyLjc2NywwLDAsMSwxLjg1LjQ2OCwxLjU0OCwxLjU0OCwwLDAsMSwuMzA1LDEuNTE2bC0uNjY3LDMuNDM0SDE2Ljg5bC42MzUtMy4yNjVhLjg4Ni44ODYsMCwwLDAtLjA4LS43NiwxLjEyMSwxLjEyMSwwLDAsMC0uOC0uMkgxNS4zN2wtLjgyMiw0LjIyOGgtMS42WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMDAwNFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi43MjcsMTMuOTA4YTEuNjQ1LDEuNjQ1LDAsMCwxLDEuMjIxLjMzOCwxLjM0LDEuMzQsMCwwLDEsLjE0NSwxLjE2MSwxLjk0NSwxLjk0NSwwLDAsMS0uNjQyLDEuMjIzQTIuMzYxLDIuMzYxLDAsMCwxLDIyLDE3aC0uOTc4bC42LTMuMDg5Wk0xOC44MSwyMC4xMjRoMS42MDhsLjM4MS0xLjk2MmgxLjM3N2E0LjkzMSw0LjkzMSwwLDAsMCwxLjUtLjE5MSwyLjg0LDIuODQsMCwwLDAsMS4wNy0uNjQyLDMuMjA3LDMuMjA3LDAsMCwwLDEuMDEtMS44MDgsMi4zLDIuMywwLDAsMC0uMzg1LTIuMDQ0LDIuNTY4LDIuNTY4LDAsMCwwLTIuMDM1LS43MzJIMjAuMjQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMDAwNFxcXCIvPlwiLFxuXHRcIlBML1NRTFwiOiBcIjxwYXRoIGQ9XFxcIk04LjU2MiwxNS4yNTZBMjEuMTU5LDIxLjE1OSwwLDAsMCwxNiwxNi40NDlhMjEuMTU5LDIxLjE1OSwwLDAsMCw3LjQzOC0xLjE5NGMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJWOS43YTEwLjM1NywxMC4zNTcsMCwwLDEtMi4wODQsMS4wNzZBMjIuMjkzLDIyLjI5MywwLDAsMSwxNiwxMi4wNzhhMjIuMzYsMjIuMzYsMCwwLDEtNy44NzktMS4zQTEwLjI4LDEwLjI4LDAsMCwxLDYuMDM3LDkuN3YzLjU1QzYuMDM3LDEzLjcyNCw2LjcsMTQuNTI4LDguNTYyLDE1LjI1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxwYXRoIGQ9XFxcIk04LjU2MiwyMS45NjFhMTUuNjExLDE1LjYxMSwwLDAsMCwyLjYuNzQxQTI0LjksMjQuOSwwLDAsMCwxNiwyMy4xNTVhMjQuOSwyNC45LDAsMCwwLDQuODM4LS40NTIsMTUuNjE0LDE1LjYxNCwwLDAsMCwyLjYtLjc0MWMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJ2LTMuMzlhMTAuNzA2LDEwLjcwNiwwLDAsMS0xLjY5Mi44MjVBMjMuNDksMjMuNDksMCwwLDEsMTYsMTguNzRhMjMuNDksMjMuNDksMCwwLDEtOC4yNzEtMS4zNDgsMTAuODI5LDEwLjgyOSwwLDAsMS0xLjY5Mi0uODI1VjE5Ljk2QzYuMDM3LDIwLjQyNiw2LjcsMjEuMjMxLDguNTYyLDIxLjk2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGM1LjUsMCw5Ljk2My0xLjc0NCw5Ljk2My0zLjg5NFYyMy4yNjlhMTAuNSwxMC41LDAsMCwxLTEuNTM1Ljc2MmwtLjE1Ny4wNjNBMjMuNDg3LDIzLjQ4NywwLDAsMSwxNiwyNS40NDVhMjMuNDIyLDIzLjQyMiwwLDAsMS04LjI3MS0xLjM1MWMtLjA1NC0uMDItLjEwNi0uMDQzLS4xNTctLjA2M2ExMC41LDEwLjUsMCwwLDEtMS41MzUtLjc2MnYyLjgzN0M2LjAzNywyOC4yNTYsMTAuNSwzMCwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjUuODk0XFxcIiByeD1cXFwiOS45NjNcXFwiIHJ5PVxcXCIzLjg5NFxcXCIgc3R5bGU9XFxcImZpbGw6cmVkXFxcIi8+XCIsXG5cdFwiUGxhaW4gdGV4dFwiOiBcIjxwYXRoIGQ9XFxcIk0yMi4wMzgsMkg2LjM3NWExLjc1NSwxLjc1NSwwLDAsMC0xLjc1LDEuNzV2MjQuNUExLjc1NSwxLjc1NSwwLDAsMCw2LjM3NSwzMGgxOS4yNWExLjc1NSwxLjc1NSwwLDAsMCwxLjc1LTEuNzVWNi44NTZabS41MjUsMi44NDQsMS42NjMsMS41MzFIMjIuNTYzWk02LjM3NSwyOC4yNVYzLjc1SDIwLjgxM1Y4LjEyNWg0LjgxM1YyOC4yNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTUuMDk3XFxcIiB3aWR0aD1cXFwiMTMuMDc2XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMjQuNDM5XFxcIiB3aWR0aD1cXFwiOS43NjJcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxOS43NjNcXFwiIHdpZHRoPVxcXCIxNS43NVxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjEwLjIzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPlwiLFxuXHRcIlBsYW50VU1MXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTMzLjQyM1xcXCIgeTE9XFxcIi0yNTAuOTExXFxcIiB4Mj1cXFwiLTMzLjM1M1xcXCIgeTI9XFxcIi0yNTAuODU4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDM3LjEzNCwgMjYuMDAxLCAxMy41NzUsIC0xOS4zODcsIDQ2NzMuNDczLCAtMzk4Mi4wMTkpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzY3Njc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMzIuMTA3XFxcIiB5MT1cXFwiLTI0Mi41NjNcXFwiIHgyPVxcXCItMzIuMDI4XFxcIiB5Mj1cXFwiLTI0Mi41ODZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODEuMDgxLCA1Ni43NzQsIDE3LjMwNiwgLTI0LjcxNSwgNjgwNC4wMjEsIC00MTQ5LjY0NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwMDc5YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi0zMy4yODJcXFwiIHkxPVxcXCItMjQzLjQyM1xcXCIgeDI9XFxcIi0zMy4yMjRcXFwiIHkyPVxcXCItMjQzLjQ1NVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg2MC4wMDMsIDQyLjAxNSwgMzQuMTg0LCAtNDguODIsIDEwMzQzLjAwNSwgLTEwNDY5LjA4NClcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTIuMzU2XFxcIiB5MT1cXFwiMjYuMjY4XFxcIiB4Mj1cXFwiMTQuMDExXFxcIiB5Mj1cXFwiMjYuMjY4XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTk1OTU5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzZlNmU2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNDJcXFwiIHN0b3AtY29sb3I9XFxcIiM4YzhjOGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTRhNGE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU3N1xcXCIgc3RvcC1jb2xvcj1cXFwiI2I1YjViNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NjVcXFwiIHN0b3AtY29sb3I9XFxcIiNiZmJmYmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNjMmMyYzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIjE4LjI5MVxcXCIgeTE9XFxcIjI2LjE3MVxcXCIgeDI9XFxcIjE5Ljk0NlxcXCIgeTI9XFxcIjI2LjE3MVxcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCIyNC40NFxcXCIgeTE9XFxcIjI2LjE3MVxcXCIgeDI9XFxcIjI2LjA5NlxcXCIgeTI9XFxcIjI2LjE3MVxcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9wbGFudHVtbDwvdGl0bGU+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC4zMDUgMTcuODcyIDI3LjE2IDIyLjQxOCAyMS43MiAyNS40OTMgMTQuODYxIDIwLjk5OSAyMC4zMDUgMTcuODcyXFxcIiBzdHlsZT1cXFwiZmlsbDojMWMwYTQyXFxcIi8+PHBhdGggZD1cXFwiTTIxLjcxNiwyNS42MTlsLS4wNTUtLjAzNi03LjAwNS00LjU5LDUuNjUzLTMuMjQ3LDcuMDU2LDQuNjhabS02LjY1LTQuNjEzLDYuNjU4LDQuMzYyLDUuMjMxLTIuOTU3TDIwLjMsMThaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNi40MDEgMTEuOTA5IDI5LjQxOCAxMy41OTIgMjcuMDcgMTUuMDg4IDI0LjIxMyAxMy4yNDcgMjYuNDAxIDExLjkwOVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wNjksMTUuMjE1bC0zLjA1OC0xLjk3LDIuMzg3LTEuNDYsMy4yMjgsMS44Wm0tMi42NTQtMS45NjZMMjcuMDcsMTQuOTYsMjkuMjA4LDEzLjZsLTIuOC0xLjU2NVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQ5OCAxNy44MDcgMjEuMzU0IDIyLjM1NCAxNS45MTQgMjUuNDI5IDkuMDU1IDIwLjkzNSAxNC40OTggMTcuODA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiZDNmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjkxLDI1LjU1NGwtLjA1NS0uMDM2TDguODUsMjAuOTI5LDE0LjUsMTcuNjgxbDcuMDU2LDQuNjhaTTkuMjYsMjAuOTQxLDE1LjkxOCwyNS4zbDUuMjMxLTIuOTU3LTYuNjU0LTQuNDEzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNy45OSAxNy45NjYgMTQuOTU0IDIyLjM2NiA5LjU3NyAyNS41MDQgMi4yMTggMjAuODQ5IDcuOTkgMTcuOTY2XFxcIiBzdHlsZT1cXFwiZmlsbDojYTExZjQwXFxcIi8+PHBhdGggZD1cXFwiTTkuNTc1LDI1LjYyOSwyLDIwLjgzOGw2LTMsNy4xNjQsNC41MjdaTTIuNDM2LDIwLjg2LDkuNTgsMjUuMzc4bDUuMTY4LTMuMDE2TDcuOTg0LDE4LjA4OVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuMTExIDIxLjAyMSA5LjQ0MyAyNS41MTUgOS40NDMgMjkuMDYzIDIuMTExIDI0LjMzMiAyLjExMSAyMS4wMjFcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNOS41NSwyOS4yNiwyLDI0LjM5MVYyMC44MjlMOS41NSwyNS40NTVaTTIuMjE4LDI0LjI3NGw3LjExOCw0LjU5MlYyNS41NzVMMi4yMTgsMjEuMjEzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjQuMDcxIDEzLjM0MyAyNy4wMDkgMTUuMjIyIDI3LjAwOSAyMi4xMzEgMjQuMDcxIDIwLjI0NyAyNC4wNzEgMTMuMzQzXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTI3LjA2MywyMi4yMjlsLTMuMDQ1LTEuOTUzVjEzLjI0NWwzLjA0NSwxLjk0N1ptLTIuOTM4LTIuMDEyLDIuODMxLDEuODE1VjE1LjI1MWwtMi44MzEtMS44MVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI3LjE0OSAyMi41MjYgMjcuMTQ5IDE1LjE5NCAyOS41MTQgMTMuNzc1IDI5LjUxNCAyOS4xNDkgMjguMzMxIDI5LjE0OSA5LjY0NiAyOS4xNDkgOS42NDYgMjUuNjAxIDE1LjA4NiAyMi41MjYgMTUuNzg1IDI1LjYwMSAxNS43OTYgMjUuNjAxIDIxLjQ3MiAyMi41MjYgMjEuODkxIDI1LjYwMSAyMS45NDUgMjUuNjAxIDI3LjE0OSAyMi41MjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNjIxLDI5LjI1Nkg5LjUzOVYyNS41MzhsNS42Mi0zLjE3Ny43LDMuMDgzLDUuNy0zLjA4Ny40MjIsMy4xLDUuMDYxLTIuOTkxVjE1LjEzM2wyLjU4LTEuNTQ4Wk05Ljc1MywyOS4wNDFIMjkuNDA3VjEzLjk2NGwtMi4xNTEsMS4yOXY3LjMzMmwtLjA1My4wMzEtNS4yMjksMy4wOUgyMS44bC0uNDExLTMuMDE0LTUuNTY0LDMuMDE0SDE1LjdsLS42ODYtMy4wMTgtNS4yNiwyLjk3M1pcXFwiLz48cmVjdCB4PVxcXCIxMi4zNTZcXFwiIHk9XFxcIjI1LjQ0XFxcIiB3aWR0aD1cXFwiMS42NTZcXFwiIGhlaWdodD1cXFwiMS42NTZcXFwiIHJ4PVxcXCIwLjIxNVxcXCIgcnk9XFxcIjAuMjE1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEzLjgsMjcuMkgxMi41N2EuMzIyLjMyMiwwLDAsMS0uMzIyLS4zMjJWMjUuNjU1YS4zMjIuMzIyLDAsMCwxLC4zMjItLjMyMkgxMy44YS4zMjIuMzIyLDAsMCwxLC4zMjIuMzIydjEuMjI2QS4zMjIuMzIyLDAsMCwxLDEzLjgsMjcuMlpNMTIuNTcsMjUuNTQ3YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3SDEzLjhhLjEwOC4xMDgsMCwwLDAsLjEwNy0uMTA3VjI1LjY1NWEuMTA4LjEwOCwwLDAsMC0uMTA3LS4xMDdaXFxcIi8+PHJlY3QgeD1cXFwiMTguMjkxXFxcIiB5PVxcXCIyNS4zNDNcXFwiIHdpZHRoPVxcXCIxLjY1NlxcXCIgaGVpZ2h0PVxcXCIxLjY1NlxcXCIgcng9XFxcIjAuMjE1XFxcIiByeT1cXFwiMC4yMTVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuNzMyLDI3LjEwNkgxOC41MDVhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjU1OGEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJoMS4yMjZhLjMyMi4zMjIsMCwwLDEsLjMyMi4zMjJ2MS4yMjZBLjMyMi4zMjIsMCwwLDEsMTkuNzMyLDI3LjEwNlptLTEuMjI2LTEuNjU2YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3aDEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS41NThhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxyZWN0IHg9XFxcIjI0LjQ0XFxcIiB5PVxcXCIyNS4zNDNcXFwiIHdpZHRoPVxcXCIxLjY1NlxcXCIgaGVpZ2h0PVxcXCIxLjY1NlxcXCIgcng9XFxcIjAuMjE1XFxcIiByeT1cXFwiMC4yMTVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjUuODgxLDI3LjEwNkgyNC42NTVhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjU1OGEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJoMS4yMjZhLjMyMi4zMjIsMCwwLDEsLjMyMi4zMjJ2MS4yMjZBLjMyMi4zMjIsMCwwLDEsMjUuODgxLDI3LjEwNlptLTEuMjI2LTEuNjU2YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3aDEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS41NThhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4yMTUsMTEuMjNjLS4wNTIuMDY5LS40MTctLjI2Mi0uNjUzLS41MjZhNC40MDgsNC40MDgsMCwwLDEtLjUxNi0uNzNBMi42LDIuNiwwLDAsMSwyNS43LDkuMmEyLjM1OCwyLjM1OCwwLDAsMS0uMDUyLS42ODIsMi45NTksMi45NTksMCwwLDEsLjEyOS0uNzQ5LDMuMTQyLDMuMTQyLDAsMCwxLC43ODctMS4yMDcsMTUuNTMyLDE1LjUzMiwwLDAsMCwxLjI4My0xLjQsMy4wNjIsMy4wNjIsMCwwLDAsLjQ3OS0uOTI3LDMuOTc5LDMuOTc5LDAsMCwwLC4xNTEtLjg1NWMuMDE5LS4zNjQtLjAyNS0uNTkzLjAyMy0uNjEzcy4yMTUuMjc0LjI4Ny41NjRhMy4xNjcsMy4xNjcsMCwwLDEtLjQ1OCwyLjEsNi45LDYuOSwwLDAsMS0xLjA5NCwxLjQ0OCwyLjgsMi44LDAsMCwwLS44NDksMS4yMzRBMi40NjYsMi40NjYsMCwwLDAsMjYuMyw4LjhhMy40NjUsMy40NjUsMCwwLDAsLjQ3NiwxLjU0MkMyNy4wNjQsMTAuOTE0LDI3LjI1NiwxMS4xNzUsMjcuMjE1LDExLjIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhMmQyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4xOTMsMTEuMjY2Yy0uMTI0LDAtLjQ5Mi0uMzY1LS42NTEtLjU0NGE0LjQ3OCw0LjQ3OCwwLDAsMS0uNTItLjczNCwyLjYyOCwyLjYyOCwwLDAsMS0uMzQ2LS43ODEsMi4zNzUsMi4zNzUsMCwwLDEtLjA1My0uNjksMi45NzgsMi45NzgsMCwwLDEsLjEzLS43NTYsMy4yMDgsMy4yMDgsMCwwLDEsLjc5My0xLjIxNmMuMjk0LS4zMzEuNS0uNTI4LjY1OS0uNjg2YTQuMzkzLDQuMzkzLDAsMCwwLC42MjItLjcxMSwzLjA1MiwzLjA1MiwwLDAsMCwuNDc2LS45MTksMy45NTEsMy45NTEsMCwwLDAsLjE1LS44NDljLjAwOC0uMTU5LDAtLjI5NCwwLS4zOTMsMC0uMTU5LS4wMDYtLjIyNS4wMzgtLjI0M2EuMDUuMDUsMCwwLDEsLjA0MywwLDEuMjI2LDEuMjI2LDAsMCwxLC4yOC41NzksMy4xNjcsMy4xNjcsMCwwLDEtLjQ2LDIuMTIxLDYuOTI4LDYuOTI4LDAsMCwxLTEuMSwxLjQ1M2MtLjA1NS4wNi0uMTA5LjExNi0uMTYyLjE3MWEyLjMsMi4zLDAsMCwwLS42ODEsMS4wNTIsMi40NywyLjQ3LDAsMCwwLS4wODIuNjczLDMuNDU4LDMuNDU4LDAsMCwwLC40NzMsMS41M2MuMTE0LjIzMS4yMTUuNDE1LjI4OS41NDkuMTI5LjIzNS4xNzguMzIzLjE0Mi4zNjloMGEuMDUxLjA1MSwwLDAsMS0uMDQuMDJaTTI4LjUxMiwyLjhhLjg2My44NjMsMCwwLDAsMCwuMTljMCwuMS4wMDcuMjM2LDAsLjRhNC4wMjEsNC4wMjEsMCwwLDEtLjE1Mi44NjEsMy4xMDYsMy4xMDYsMCwwLDEtLjQ4My45MzQsNC40MzcsNC40MzcsMCwwLDEtLjYyOS43MTljLS4xNjIuMTU4LS4zNjQuMzU0LS42NTcuNjgzYTMuMTY4LDMuMTY4LDAsMCwwLS43ODIsMS4yLDIuOTMzLDIuOTMzLDAsMCwwLS4xMjguNzQzLDIuMzI1LDIuMzI1LDAsMCwwLC4wNTIuNjc1LDIuNTksMi41OSwwLDAsMCwuMzQxLjc2Nyw0LjQyMiw0LjQyMiwwLDAsMCwuNTEzLjcyNSwyLjAzNSwyLjAzNSwwLDAsMCwuNjExLjUyNiwxLjE4MywxLjE4MywwLDAsMC0uMTQ3LS4zMWMtLjA3NC0uMTM0LS4xNzUtLjMxOC0uMjktLjU1MUEzLjUsMy41LDAsMCwxLDI2LjI3OCw4LjhhMi41MywyLjUzLDAsMCwxLC4wODQtLjY4OCwyLjM3NSwyLjM3NSwwLDAsMSwuNjk0LTEuMDc1Yy4wNTItLjA1NS4xMDYtLjExMS4xNjEtLjE3MWE2Ljg3OSw2Ljg3OSwwLDAsMCwxLjA5LTEuNDQyLDMuMTE5LDMuMTE5LDAsMCwwLC40NTYtMi4wODNBMS4yODEsMS4yODEsMCwwLDAsMjguNTEyLDIuOFpcXFwiLz48cGF0aCBkPVxcXCJNMjkuOTcyLDYuMDg3Yy0uMDE5LS4wODgtLjQzMi0uMDQtLjc2Ni4wNzNhMi42LDIuNiwwLDAsMC0xLjA1OS43MjIsMi44LDIuOCwwLDAsMC0uOTE2LDEuODU1LDIuOTcyLDIuOTcyLDAsMCwwLC4yNTgsMS4wNmMuMjIxLjU3Mi40NTUuNzczLjQ0NCwxLjIyNS0uMDA3LjMtLjExNC40ODQtLjA0OC41NDlzLjMxNC0uMS40NjItLjMxM2ExLjgsMS44LDAsMCwwLC4yNTktMS4wMjJjLS4wNDYtLjgxNS0uNi0xLjAxNS0uNjA4LTEuOGExLjg1OCwxLjg1OCwwLDAsMSwuMTI5LS42NzZDMjguNTcsNi41MDksMzAuMDA4LDYuMjUyLDI5Ljk3Miw2LjA4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYTJkMmVcXFwiLz48cGF0aCBkPVxcXCJNMjcuOTM0LDExLjYxN2EuMDk0LjA5NCwwLDAsMS0uMDY5LS4wMjZjLS4wNDYtLjA0Ni0uMDMtLjEyMi0uMDA1LS4yMzdhMS43MTgsMS43MTgsMCwwLDAsLjA0NS0uMzMxLDEuMzc0LDEuMzc0LDAsMCwwLS4yMTQtLjcyLDUsNSwwLDAsMS0uMjI4LS40OTUsMi45OCwyLjk4LDAsMCwxLS4yNTktMS4wNywyLjgxLDIuODEsMCwwLDEsLjkyMy0xLjg3NCwyLjY0LDIuNjQsMCwwLDEsMS4wNy0uNzI5LDEuNDgyLDEuNDgyLDAsMCwxLC43NjYtLjFBLjA2NS4wNjUsMCwwLDEsMzAsNi4wODFoMGMuMDE1LjA3LS4wOTIuMTIxLS4zMDYuMjI0YTIuNzMsMi43MywwLDAsMC0xLjU0MiwxLjQ2MywxLjgyNywxLjgyNywwLDAsMC0uMTI3LjY2NywxLjY0NSwxLjY0NSwwLDAsMCwuMjkxLjg4NSwxLjg4OSwxLjg4OSwwLDAsMSwuMzE3LjkxNCwxLjgxNCwxLjgxNCwwLDAsMS0uMjY0LDEuMDM5LjgwOS44MDksMCwwLDEtLjQyMS4zNDJabTEuODg5LTUuNTQ5YTIuMTE3LDIuMTE3LDAsMCwwLS42MDguMTE3LDIuNTg4LDIuNTg4LDAsMCwwLTEuMDQ4LjcxNSwyLjc2NCwyLjc2NCwwLDAsMC0uOTA5LDEuODM3LDIuOTM1LDIuOTM1LDAsMCwwLC4yNTYsMS4wNSw0Ljk1NSw0Ljk1NSwwLDAsMCwuMjI1LjQ5LDEuNDMzLDEuNDMzLDAsMCwxLC4yMi43NDUsMS43NjUsMS43NjUsMCwwLDEtLjA0Ny4zNDFjLS4wMTkuMDkxLS4wMzUuMTYzLS4wMDkuMTg4YS4wNDYuMDQ2LDAsMCwwLC4wMzguMDEuNzY5Ljc2OSwwLDAsMCwuMzgyLS4zMiwxLjc5MywxLjc5MywwLDAsMCwuMjU0LTEuMDA1LDEuODQ0LDEuODQ0LDAsMCwwLS4zMS0uODksMS43MTEsMS43MTEsMCwwLDEtLjMtLjkxMSwxLjg3NywxLjg3NywwLDAsMSwuMTMtLjY4NkEyLjc3NiwyLjc3NiwwLDAsMSwyOS42Nyw2LjI1N2MuMTI2LS4wNjEuMjgzLS4xMzYuMjc3LS4xNjRsLS4wMDgtLjAwN0EuMjY0LjI2NCwwLDAsMCwyOS44MjMsNi4wNjhaXFxcIi8+XCIsXG5cdFwiUG93ZXJRdWVyeVwiOiBcIjxwYXRoIGQ9XFxcIk0zMCwyNS41ODNIMjUuNzU3VjE1LjM3OGE4LjI3MSw4LjI3MSwwLDAsMC0uODMyLTQuMjYxQTMuMDYxLDMuMDYxLDAsMCwwLDIyLjExOCw5LjhhMy4zODMsMy4zODMsMCwwLDAtMi44MjYsMS42NjQsNi43OTEsNi43OTEsMCwwLDAtMS4xNjEsMy45ODdWMjUuNTgzSDEzLjg2OVYxNS4wMzFxMC01LjIzMS0zLjY5NC01LjIzMWEzLjMzMiwzLjMzMiwwLDAsMC0yLjgyNiwxLjU3Myw2LjkzNSw2LjkzNSwwLDAsMC0xLjEwNiw0LjA3OFYyNS41ODNIMlY2Ljg1Nkg2LjI0M1Y5LjgxOGguMDczYTYuNDg4LDYuNDg4LDAsMCwxLDUuOTA3LTMuNCw1LjU2OSw1LjU2OSwwLDAsMSwzLjM5MywxLjA3QTUuMzI4LDUuMzI4LDAsMCwxLDE3LjYsMTAuMjk0YTYuNjgzLDYuNjgzLDAsMCwxLDYuMjE4LTMuODc3UTMwLDYuNDE3LDMwLDE0LjA0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz5cIixcblx0XCJQb3dlclNoZWxsXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMjMuMzI1XFxcIiB5MT1cXFwiLTExOC41NDNcXFwiIHgyPVxcXCI3LjI2XFxcIiB5Mj1cXFwiLTEwNC4xOTNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIC05NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM1MzkxZmVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzZTZkYmZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjcuMVxcXCIgeTE9XFxcIi0xMDQuMDAyXFxcIiB4Mj1cXFwiMjMuMDAxXFxcIiB5Mj1cXFwiLTExOC4yOTJcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcG93ZXJzaGVsbDwvdGl0bGU+PHBhdGggZD1cXFwiTTMuMTc0LDI2LjU4OWExLjE1NCwxLjE1NCwwLDAsMS0uOTI4LS40MjMsMS4yMzQsMS4yMzQsMCwwLDEtLjIxLTEuMDUyTDYuMjMzLDYuNzhBMS44LDEuOCwwLDAsMSw3LjkxNCw1LjQxSDI4LjgyNmExLjE1NywxLjE1NywwLDAsMSwuOTI4LjQyMywxLjIzNSwxLjIzNSwwLDAsMSwuMjEsMS4wNTJsLTQuMiwxOC4zMzVhMS44LDEuOCwwLDAsMS0xLjY4MSwxLjM3SDMuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjkxNCw1LjY0NkgyOC44MjZhLjkxMy45MTMsMCwwLDEsLjkwOCwxLjE4N2wtNC4yLDE4LjMzNGExLjU3NSwxLjU3NSwwLDAsMS0xLjQ1MSwxLjE4N0gzLjE3NGEuOTEzLjkxMywwLDAsMS0uOTA4LTEuMTg3bDQuMi0xOC4zMzRBMS41NzQsMS41NzQsMCwwLDEsNy45MTQsNS42NDZaXFxcIiBzdHlsZT1cXFwiZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE2LjA0LDIxLjU0NGg1LjA4NmExLjExOCwxLjExOCwwLDAsMSwwLDIuMjM0SDE2LjA0YTEuMTE4LDEuMTE4LDAsMCwxLDAtMi4yMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmM1NTkxO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjMzOSwxNi41NzhhMS43NjIsMS43NjIsMCwwLDEtLjU5MS42TDkuMzA5LDIzLjk1M2ExLjIyNCwxLjIyNCwwLDAsMS0xLjQzOC0xLjk3N2w4LjUxMi02LjE2NHYtLjEyNkwxMS4wMzUsMTBhMS4yMjQsMS4yMjQsMCwwLDEsMS43ODItMS42NzJsNi40MTgsNi44MjdBMS4xNjYsMS4xNjYsMCwwLDEsMTkuMzM5LDE2LjU3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyYzU1OTE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMSwxNi4zNDJhMS43NDksMS43NDksMCwwLDEtLjU5LjZMOS4wNzQsMjMuNzE4YTEuMjI1LDEuMjI1LDAsMCwxLTEuNDM5LTEuOTc3bDguNTEzLTYuMTY0VjE1LjQ1TDEwLjgsOS43NjFhMS4yMjQsMS4yMjQsMCwwLDEsMS43ODMtMS42NzJMMTksMTQuOTE2QTEuMTYyLDEuMTYyLDAsMCwxLDE5LjEsMTYuMzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45LDIxLjQxMmg1LjA4NmExLjA1OSwxLjA1OSwwLDEsMSwwLDIuMTE4SDE1LjlhMS4wNTksMS4wNTksMCwxLDEsMC0yLjExOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIiwgIFxuXHRcIlByb2Nlc3NpbmdcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIjNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjI5XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMWM0YzcwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGMyYjQyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9wcm9jZXNzaW5nbGFuZzwvdGl0bGU+PHBhdGggZD1cXFwiTTE1LjkyMiwxOS45NjJhMTMsMTMsMCwwLDEtMS42NDctLjA3N3Y1LjU1MmEyNy43NiwyNy43NiwwLDAsMSwzLjMzMi40NjFWMjlINS45NjhWMjUuOUEyNy45ODgsMjcuOTg4LDAsMCwxLDkuMywyNS40MzhWNi43MTVhMjguMjE1LDI4LjIxNSwwLDAsMS0zLjMzMS0uNDZ2LTMuMUg4Ljk1NUMxMC4xOCwzLjE1MywxMy41NDksMywxNi4yMywzYzYuMzE4LDAsOS44LDIuOTQ4LDkuOCw4QzI2LjAzMSwxNi4wMTgsMjIuMiwxOS45NjIsMTUuOTIyLDE5Ljk2MlpNMTYsNy4wNThjLS42MTMsMC0xLjE0OSwwLTEuNzIzLjAzOHY4LjYxNWE5LjY5NCw5LjY5NCwwLDAsMCwxLjQ1NS4xMTVjMy4wMjUtLjAzOCw1LjEzLTEuNzIzLDUuMTMtNC41MTlDMjAuODYyLDguNywxOS40MDcsNy4wNTgsMTYsNy4wNThaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdFwiUHJvbG9nXCI6IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiMTM0MS4yNVxcXCIgY3k9XFxcIi0zMzk2Ljg2NlxcXCIgcj1cXFwiMTguMjk5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xMzI3LjA3NyAzNDA1LjkzNSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTgxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmJmYmZiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM2NVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VmZWZmMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NTJcXFwiIHN0b3AtY29sb3I9XFxcIiNkYWRiZGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzM4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmViZmMyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgyNFxcXCIgc3RvcC1jb2xvcj1cXFwiI2FlYjBiM1xcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJiXFxcIiBjeD1cXFwiNi42NzhcXFwiIGN5PVxcXCI4NC43NFxcXCIgcj1cXFwiMTUuNTU0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xLjg4NCAtODYuMTU0KSBzY2FsZSgxLjA3MiAxLjE2NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYWZkZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDc5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWVmNWZhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIyXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2ZkZmVjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwN1xcXCIgc3RvcC1jb2xvcj1cXFwiIzlkYmJkNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MzFcXFwiIHN0b3AtY29sb3I9XFxcIiM1ODhhYjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzQ1XFxcIiBzdG9wLWNvbG9yPVxcXCIjMzI2ZmE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc5OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJiNjY5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44OTdcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzRlNzhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTk0XFxcIiBzdG9wLWNvbG9yPVxcXCIjMDAzMTUyXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImNcXFwiIGN4PVxcXCIxMS4yNDFcXFwiIGN5PVxcXCItOS44OTdcXFwiIHI9XFxcIjE2LjU5NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgwIDIyLjYzMSkgc2NhbGUoMSAxLjA2MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ1NDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjY3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWMxYzI0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzc2MDAwMFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJkXFxcIiBjeD1cXFwiMTIuMjg2XFxcIiBjeT1cXFwiMjYuMTI3XFxcIiByPVxcXCIyLjA4M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RkZGZlMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNzRcXFwiIHN0b3AtY29sb3I9XFxcIiNkOWRiZGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzUxXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2RjZmQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2I4YmFiYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YzllOWZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODkxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzg3OTdiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNWU1ZjYxXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImVcXFwiIGN4PVxcXCIxOS4wNjRcXFwiIGN5PVxcXCIyNi4xMjdcXFwiIHI9XFxcIjIuMDgzXFxcIiB4bGluazpocmVmPVxcXCIjZFxcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZlxcXCIgY3g9XFxcIjE1LjQzNFxcXCIgY3k9XFxcIjE2LjE5MVxcXCIgcj1cXFwiMi42ODdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMCAwLjQ2MSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNkXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcHJvbG9nPC90aXRsZT48ZyBzdHlsZT1cXFwiaXNvbGF0aW9uOmlzb2xhdGVcXFwiPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE0XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNi42MDIgMTQuOTIpIHJvdGF0ZSgtNDIuMjY1KVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45MzgsNi4zMDlhOS43ODUsOS43ODUsMCwwLDAtNi41LTIuMzM5QzguNTY0LDMuOTcsMy43NzQsNy43LDMuNDA1LDE0Ljk2MWMtLjQsNy44LDQuNzUsMTIuODYyLDEyLDEyLjg2MiwxMC43MzMsMCwxNi42NzItOS43OCwxMC4wMjctMjAuMzg4LDQuNjcxLDEwLjYtLjUyNywxNy4yNzktNy4yMzYsMTcuMjc5LTUuNDQxLDAtOS42MS0zLjY1MS05LjYxLTEwLjM0NUM4LjU4Miw0LjcwOSwxNS44MjMsNC4wMzksMTkuOTM4LDYuMzA5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMi43LDEwLjQxNWMtLjI5My0uOTQtLjY0NS0yLjc4OC42MzQtMy44NmEzLjcyOSwzLjcyOSwwLDAsMC0zLjg0NCwxLjUzNEE5LjE2NSw5LjE2NSwwLDAsMCwxMiw4LjEsMy43MjksMy43MjksMCwwLDAsOC4xNTIsNi41NTVjMS4zMDksMS4xLjkxLDMuMDA1LjYxNCwzLjkyM0ExMC41MTcsMTAuNTE3LDAsMCwwLDYuMSwxNy41MjRjMCwyLjE3NCwxLjQsNC42NDUsMS42NzUsNy45NTVsMS43NjgtMS41MzJhMTEuNzQzLDExLjc0MywwLDAsMCw2LjIxMiwxLjQzMywxMS43NDEsMTEuNzQxLDAsMCwwLDYuMjEyLTEuNDMzbDEuNzY5LDEuNTMyYy4yOC0zLjMxLDEuNjc1LTUuNzgxLDEuNjc1LTcuOTU1QTEwLjUxMiwxMC41MTIsMCwwLDAsMjIuNywxMC40MTVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjcyMiwyNy44NjdhMS42MjEsMS42MjEsMCwxLDEsMy4yNCwwYzAsLjAxOCwwLC4wMzUsMCwuMDUzYTIuMjM0LDIuMjM0LDAsMSwwLTMuMjI4LjEyNkMxMC43MjUsMjcuOTg3LDEwLjcyMiwyNy45MjcsMTAuNzIyLDI3Ljg2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMjAuNjI5LDI3Ljg2N2ExLjYyMSwxLjYyMSwwLDEsMC0zLjI0LDBjMCwuMDE4LDAsLjAzNSwwLC4wNTNhMi4yMzQsMi4yMzQsMCwxLDEsMy4yMjguMTI2QTEuNjc4LDEuNjc4LDAsMCwwLDIwLjYyOSwyNy44NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC41MzttaXgtYmxlbmQtbW9kZTptdWx0aXBseVxcXCI+PHBhdGggZD1cXFwiTTguMzQ2LDE4LjRjLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3QTEuMzU5LDEuMzU5LDAsMCwxLDYuODA5LDE4LjFhMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMCw4LjM0NiwxOC40WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4wMDgsMTguNzM3Yy0uMTMyLjY2Ny0uOTcyLjg3Ny0uOTcyLjg3N2ExLjM2LDEuMzYsMCwwLDEtLjU2Ni0xLjE4MiwyLjkyOSwyLjkyOSwwLDAsMCwuNDQ0LDEuNzkzQTIuOTI2LDIuOTI2LDAsMCwwLDEwLjAwOCwxOC43MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTguODMzLDIwLjI0OWMtLjEzMi42NjctLjk3MS44NzctLjk3MS44NzdBMS4zNTksMS4zNTksMCwwLDEsNy4zLDE5Ljk0NGEyLjkyOSwyLjkyOSwwLDAsMCwuNDQzLDEuNzkzQTIuOTI1LDIuOTI1LDAsMCwwLDguODMzLDIwLjI0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMTAuNSwyMC41ODNjLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3YTEuMzYsMS4zNiwwLDAsMS0uNTY2LTEuMTgyQTIuOTI5LDIuOTI5LDAsMCwwLDkuNCwyMi4wNzIsMi45MjcsMi45MjcsMCwwLDAsMTAuNSwyMC41ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTkuMzI4LDIyLjEyMWMtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNiwxLjM2LDAsMCwxLS41NjUtMS4xODIsMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMCw5LjMyOCwyMi4xMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTExLjY2NCwxOS4wN2MtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNTksMS4zNTksMCwwLDEtLjU2NS0xLjE4MiwyLjkzLDIuOTMsMCwwLDAsLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMCwxMS42NjQsMTkuMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNTM7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHlcXFwiPjxwYXRoIGQ9XFxcIk0yMy4xNTcsMTguNGMuMTMyLjY2Ny45NzEuODc3Ljk3MS44NzdhMS4zNTksMS4zNTksMCwwLDAsLjU2Ni0xLjE4MiwyLjkzLDIuOTMsMCwwLDEtLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMy4xNTcsMTguNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDk1LDE4LjczN2MuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNiwxLjM2LDAsMCwwLC41NjUtMS4xODIsMi45MzEsMi45MzEsMCwwLDEtLjQ0NCwxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMSwyMS40OTUsMTguNzM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi42NjksMjAuMjQ5Yy4xMzIuNjY3Ljk3MS44NzcuOTcxLjg3N2ExLjM2LDEuMzYsMCwwLDAsLjU2Ni0xLjE4MiwyLjkyOSwyLjkyOSwwLDAsMS0uNDQzLDEuNzkzQTIuOTI2LDIuOTI2LDAsMCwxLDIyLjY2OSwyMC4yNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjAwOCwyMC41ODNjLjEzMi42NjcuOTcxLjg3Ny45NzEuODc3YTEuMzU5LDEuMzU5LDAsMCwwLC41NjUtMS4xODIsMi45MjgsMi45MjgsMCwwLDEtLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMS4wMDgsMjAuNTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi4xNzUsMjIuMTIxYy4xMzIuNjY3Ljk3Mi44NzcuOTcyLjg3N2ExLjM2LDEuMzYsMCwwLDAsLjU2NS0xLjE4MiwyLjkyOCwyLjkyOCwwLDAsMS0uNDQ0LDEuNzkzQTIuOTI3LDIuOTI3LDAsMCwxLDIyLjE3NSwyMi4xMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTE5LjgzOCwxOS4wN2MuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNTksMS4zNTksMCwwLDAsLjU2NS0xLjE4MiwyLjkyOCwyLjkyOCwwLDAsMS0uNDQzLDEuNzkzQTIuOTI4LDIuOTI4LDAsMCwxLDE5LjgzOCwxOS4wN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48L2c+PGNpcmNsZSBjeD1cXFwiMTEuMzM5XFxcIiBjeT1cXFwiMTQuMDc0XFxcIiByPVxcXCIzLjgxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjEzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjg2MVxcXCIgc3R5bGU9XFxcImZpbGw6I2JkYmZjMVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjEzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjE5MVxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxjaXJjbGUgY3g9XFxcIjExLjYwM1xcXCIgY3k9XFxcIjE0LjAyN1xcXCIgcj1cXFwiMC4zNTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC4xMTJcXFwiIGN5PVxcXCIxNC4wNzRcXFwiIHI9XFxcIjMuODE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjAuOTAzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjg2MVxcXCIgc3R5bGU9XFxcImZpbGw6I2JkYmZjMVxcXCIvPjxjaXJjbGUgY3g9XFxcIjIwLjkwM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC4zNzVcXFwiIGN5PVxcXCIxNC4wMjdcXFwiIHI9XFxcIjAuMzU3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcwNiwyMS41MmMwLTEuNDEyLDIuMTU3LTMuNDEzLDIuMTU3LTQuODg3YTIuMTU3LDIuMTU3LDAsMCwwLTQuMzEzLDBDMTMuNTUsMTguMTA3LDE1LjcwNiwyMC4xMDgsMTUuNzA2LDIxLjUyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjwvZz5cIixcblx0XCJQcm90b2NvbCBCdWZmZXJzXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCIxNS45OTYgMy4yMiAyNi45NjYgOS43IDI2Ljk1NCAyMi4zIDE2IDI4Ljc4IDUuMDM4IDIyLjQwOCA1LjAzNCA5LjYyOCAxNS45OTYgMy4yMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyLDMuOTg3LDkuMDJsMCwxNEwxNiwzMGwxMi03LjEuMDEzLTEzLjhaTTI2Ljk1NCwyMi4zLDE2LDI4Ljc4LDUuMDM4LDIyLjQwOGwwLTEyLjc4TDE2LDMuMjIsMjYuOTY2LDkuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxNzFjMWVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjU2OSAxMy42NTQgMTkuOTQ2IDE2Ljk2NCAxOS45NDMgMjQuODkgMjUuNTkgMjEuNTY1IDI1LjU2OSAxMy42NTRcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZWE4ZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjI4MiAxMi4zMDMgMjUuNTY5IDEzLjY1NCAxOS45NDYgMTYuOTY0IDE5Ljk0MyAyNC44OSAxNy4zMjcgMjMuMzcgMTcuMzQ4IDE1Ljg3NSAyMy4yODIgMTIuMzAzXFxcIiBzdHlsZT1cXFwiZmlsbDojNTBiZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi41MTIgMTAuMzUgMjIuNTE0IDExLjgxNiAxNi40MTEgMTUuNDk4IDE2LjQxOCAyMy41OTcgMTQuOTk4IDI0LjQzMSAxNC45OTQgMTQuODU2IDIyLjUxMiAxMC4zNVxcXCIgc3R5bGU9XFxcImZpbGw6Izk3ZmYyN1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuMDA4IDguODcxIDIyLjUxMiAxMC4zNSAxNC45OTQgMTQuODU2IDE0Ljk5OCAyNC40MzEgMTIuMTk0IDIyLjgwMSAxMi4xODkgMTMuNDEzIDIwLjAwOCA4Ljg3MVxcXCIgc3R5bGU9XFxcImZpbGw6I2MyZmY3MlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuMjI2IDYuNjA2IDE5LjIyNiA4LjM3NCAxMS4yMSAxMy4wNzQgMTEuMjEgMjMuMTcyIDkuODA4IDIzLjk4OCA5LjgzNSAxMi4yNzcgMTkuMjI2IDYuNjA2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmYyNzRiXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi4xNiA0Ljc4NCA2LjUzIDEwLjM5NCA2LjUyOSAyMi4wNzEgOS44MjcgMjMuOTg4IDkuODM1IDEyLjI3NyAxOS4yMzUgNi42MDYgMTYuMTYgNC43ODRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjVjNzdcXFwiLz5cIixcblx0XCJQdWdcIjogXCI8cGF0aCBkPVxcXCJNMjUuNTE0LDEyLjg0NmMtLjA1Mi0uOTM4LjIwOS0xLjgyNS0uMjA5LTIuNTU0LTEuMDQzLTEuODI1LTMuNjQ5LTIuODY3LTguODYzLTIuODY3VjcuMzcyaDB2LjA1MmMtNS43MzUsMC04LjE4NSwxLjA0My05LjIyNywyLjg2N2E1LjYsNS42LDAsMCwwLS40NjksMi41NTQsOS41NDYsOS41NDYsMCwwLDAtLjI2MSwyLjQ1Yy4xNTYsMS4xNDcuMjYxLDIuMjk0LjQxNywzLjMzNi4xNTYuODg2LDEuNDA4LDEuNTY0LDEuNTY0LDIuNC4zMTMsMi4yNDIsMi4yOTQsMy4yODQsOC4wMjgsMy4yODR2LjI2MWgtLjF2LS4yNjFjNS4yMTMsMCw3LjQtMS4wNDMsNy43MTYtMy4yODQuMS0uODM0LDEuMTQ3LTEuNTEyLDEuMy0yLjQuMTU2LTEuMDQzLjIwOS0yLjE5LjM2NS0zLjMzNkExMS43NzQsMTEuNzc0LDAsMCwwLDI1LjUxNCwxMi44NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjY2EzXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxMy42OGEzLjI0MSwzLjI0MSwwLDAsMSwyLjE5LDEuMTQ3Yy43My42MjYsMS45MjksMS4wNDMsMi40NSwxLjYxNmE0LjcxNSw0LjcxNSwwLDAsMSwxLjQwOCwxLjk4MSw4LjksOC45LDAsMCwxLC4zMTMsMi4yNDJjMCwuMjYxLjE1Ni4yMDkuNTczLDBhOS4wMiw5LjAyLDAsMCwwLDIuMTktMS44NzdjLS4xNTYuODg2LTEuMjUxLDEuNjY4LTEuMzU1LDIuNS0uMzEzLDIuMjQyLTIuNSwzLjMzNi03Ljg3MiwzLjMzNmguMzEzXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjUxOSwxMS45MDhjLjIwOS42NzguODg2LDMuMDI0LS40NjksMi4yNDJhMi41NTcsMi41NTcsMCwwLDEsLjkzOCwxLjU2NCwxLjgzMSwxLjgzMSwwLDAsMCwxLjMsMS40MDgsMy40NzksMy40NzksMCwwLDAsMi41NTQtLjYyNiwyLjk1NiwyLjk1NiwwLDAsMCwuNjc4LTMuMjg0LDIuNDMsMi40MywwLDAsMC0yLjEzNy0xLjYxNkMyMS40LDExLjMzNCwxOS4zMSwxMS4xMjYsMTkuNTE5LDExLjkwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMi4xNzhcXFwiIGN5PVxcXCIxNC40MVxcXCIgcj1cXFwiMS45MjlcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMS42NTZcXFwiIGN5PVxcXCIxMy41MjRcXFwiIHI9XFxcIjAuNTIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjIwNiwxNC4zMDZhMTcuNjgsMTcuNjgsMCwwLDEsMi43MTEsMi4zNDZjLjkzOCwxLjIuOTM4LDEuNDA4LjkzOCwxLjQwOGwtLjY3OC4zMTNhNy4xLDcuMSwwLDAsMC0yLjEzNy0yLjVjLTEuMi0uNjc4LTEuMzU1LTEuMjUxLTEuMzU1LTEuMjUxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmY2NhM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yMzUsMTMuNjhhMy42MDUsMy42MDUsMCwwLDAtMi4zNDYsMS4xNDdjLS43My42MjYtMi4wMzMsMS4wNDMtMi41LDEuNjE2YTQuODA2LDQuODA2LDAsMCwwLTEuNDYsMS45ODEsOC45LDguOSwwLDAsMC0uMzEzLDIuMjQyYzAsLjI2MS4wNTIuMzEzLS42MjYsMEE3Ljk3Miw3Ljk3MiwwLDAsMSw2LjgsMTguNzg5Yy4xNTYuODg2LDEuMjUxLDEuNjY4LDEuMzU1LDIuNS4zMTMsMi4xOSwyLjUsMy4yODQsNy44NzIsMy4yODRoLjM2NVxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4yMzksMTcuMjc3YTYuNTUyLDYuNTUyLDAsMCwwLTUuMTA5LTIuNjA3aDBhNi42MzgsNi42MzgsMCwwLDAtNS4xMDksMi42MDcsMy44NjEsMy44NjEsMCwwLDAtMS4wNDMsMy4xOGMwLDQuNjQsMS42MTYsMy4yMzIsMi43MTEsMy44MDZhNy40NjYsNy40NjYsMCwwLDAsMy4zODkuMzEzaDBhNy40LDcuNCwwLDAsMCwzLjM4OS0uMzEzYzEuMDk1LS41NzMsMi43MTEuODM0LDIuNzExLTMuODA2QTMuMzg2LDMuMzg2LDAsMCwwLDIxLjIzOSwxNy4yNzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAyNiwxNS45NzRhOS41NDksOS41NDksMCwwLDEtLjQ2OSwyLjU1NGwuNTczLS4xNTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxNS45NzRhOS41NDksOS41NDksMCwwLDAsLjQ2OSwyLjU1NGwtLjU3My0uMTU2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4zNTgsMTUuNDUzYy0uMjA5LS41MjEuNTczLTEuMzU1LDEuODI1LTEuMzU1czIuMDMzLjgzNCwxLjgyNSwxLjM1NS0xLjA0My42NzgtMS44MjUuNjc4QzE1LjM0OCwxNi4xMywxNC41NjYsMTUuOTc0LDE0LjM1OCwxNS40NTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxNS45NzRjMC0uMS43My0uMSwxLjE0Ny0uMzY1LDAsMC0uODM0LjI2MS0uOTkxLjE1NmEuNjU2LjY1NiwwLDAsMS0uMjA5LS4zNjUuNjU2LjY1NiwwLDAsMS0uMjA5LjM2NWMtLjE1Ni4xLTEuMDk1LS4xNTYtMS4wOTUtLjE1NmE4LjA1OCw4LjA1OCwwLDAsMSwxLjIuMzY1di40MTdhMTAuNDkyLDEwLjQ5MiwwLDAsMCwuMSwyLjAzM2MuMTU2LjIwOS4xLTEuNDYuMS0yLjAzM0ExLjMsMS4zLDAsMCwxLDE2LjE4MiwxNS45NzRaXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxOC45NDVhMy4zNSwzLjM1LDAsMCwxLDEuNjE2LjY3OCwzLjEyMSwzLjEyMSwwLDAsMC0xLjYxNi0xLjA5NSwzLjAzNiwzLjAzNiwwLDAsMC0xLjgyNSwxLjJBMy4zMTIsMy4zMTIsMCwwLDEsMTYuMTgyLDE4Ljk0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZjRhNDFcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDc4LDIyLjhhOC45LDguOSwwLDAsMS0yLjQtLjQ2OWMtLjE1Ni0uMDUyLS4zMTMuMDUyLS40NjksMGE2LjE3Miw2LjE3MiwwLDAsMS0zLjE4LTIuMTM3di4yMDljMCw0LjY0LDEuNjE2LDMuMjMyLDIuNzExLDMuODA2YTcuNDY2LDcuNDY2LDAsMCwwLDMuMzg5LjMxM2gwYTcuNCw3LjQsMCwwLDAsMy4zODktLjMxM2MxLjA5NS0uNTczLDIuNzExLjgzNCwyLjcxMS0zLjgwNnYtLjQ2OUE1LjkxNCw1LjkxNCwwLDAsMSwxOSwyMi4yODJjLS4xNTYuMDUyLS40MTctLjA1Mi0uNTczLS4wNTJBNy4wNDUsNy4wNDUsMCwwLDEsMTYuMDc4LDIyLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTEzLjk0MSwyMC4zcy0uNTczLDEuNjY4LS4xNTYsMi40bC0uNTIxLS4yMDlBMTUuNDMzLDE1LjQzMywwLDAsMSwxMy45NDEsMjAuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTguMzIsMjAuM3MuNTczLDEuNjY4LjE1NiwyLjRMMTksMjIuNDkxQTEwLjYyOSwxMC42MjksMCwwLDAsMTguMzIsMjAuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTIuNTg1LDExLjkwOGMtLjIwOS42NzgtLjg4NiwzLjAyNC40NjksMi4yNDJhMi41NTcsMi41NTcsMCwwLDAtLjkzOCwxLjU2NCwxLjgzMSwxLjgzMSwwLDAsMS0xLjMsMS40MDhBMy40NzksMy40NzksMCwwLDEsOC4yNTgsMTYuNWEyLjk1NiwyLjk1NiwwLDAsMS0uNjc4LTMuMjg0LDIuNDMsMi40MywwLDAsMSwyLjEzNy0xLjYxNkMxMC43MDksMTEuMzM0LDEyLjc5NCwxMS4xMjYsMTIuNTg1LDExLjkwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTMsMTguNTI4YTMuMzkzLDMuMzkzLDAsMCwxLDIuNDUsMi44Njd2LS4xYTMuMDUxLDMuMDUxLDAsMCwwLTIuNDUtMi45MTksMywzLDAsMCwwLTIuNDUsMi45MTl2LjFBMy40NjMsMy40NjMsMCwwLDEsMTYuMTMsMTguNTI4WlxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNi41NDZcXFwiIGN5PVxcXCIxNS4xMzhcXFwiIHJ4PVxcXCIwLjE1NlxcXCIgcnk9XFxcIjAuMzEzXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy4yNTYgNC42MTEpIHJvdGF0ZSgtMTQuNDYpXFxcIiBzdHlsZT1cXFwiZmlsbDojMzMxNzEyXFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE1LjYwOVxcXCIgY3k9XFxcIjE1LjE0NlxcXCIgcng9XFxcIjAuMzEzXFxcIiByeT1cXFwiMC4xNTZcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjQ4MiAyNS41NjcpIHJvdGF0ZSgtNzIuNzY1KVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzMTcxMlxcXCIvPjxjaXJjbGUgY3g9XFxcIjEwLjAzMVxcXCIgY3k9XFxcIjE0LjQxXFxcIiByPVxcXCIxLjkyOVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEwLjU1MlxcXCIgY3k9XFxcIjEzLjUyNFxcXCIgcj1cXFwiMC41MjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYuNywxNC40MXMtLjUyMS4yMDktLjYyNi4yNjFhMi40OTIsMi40OTIsMCwwLDEtLjYyNi0uMjYxSDE2LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2Y0YTQxXFxcIi8+PHBhdGggZD1cXFwiTTEyLjksMTQuMzA2YTE3LjY4LDE3LjY4LDAsMCwwLTIuNzExLDIuMzQ2Yy0uOTM4LDEuMi0uOTM4LDEuNDA4LS45MzgsMS40MDhsLjY3OC4zMTNhNy4xLDcuMSwwLDAsMSwyLjEzNy0yLjVjMS4yLS42NzgsMS4zNTUtMS4yNTEsMS4zNTUtMS4yNTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjY2EzXFxcIi8+PHBhdGggZD1cXFwiTTkuMDkyLDEwLjgxM2E0LjUxOSw0LjUxOSwwLDAsMS0xLjkyOSwyLjI5NEEyLjE5LDIuMTksMCwwLDAsOS4wOTIsMTAuODEzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi45MDgsMTAuODEzYTQuNTE5LDQuNTE5LDAsMCwwLDEuOTI5LDIuMjk0QTIuMTksMi4xOSwwLDAsMSwyMi45MDgsMTAuODEzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4zMSwxMy44MzZhNS4xNiw1LjE2LDAsMCwwLTMuMDc2LTEuNDA4aC4xNTZhMy44NTIsMy44NTIsMCwwLDAtMy4wMjQsMS40MDgsNC44MzIsNC44MzIsMCwwLDEsMy4wMjQtMS4wNDNoMEE1Ljc4NSw1Ljc4NSwwLDAsMSwxOS4zMSwxMy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljc0NiwxMC45NjlhMi40NTUsMi40NTUsMCwwLDAtMS41NjQtLjkzOGguMTU2YTEuNzg2LDEuNzg2LDAsMCwwLTEuNTEyLjkzOCwyLjE4NywyLjE4NywwLDAsMSwxLjUxMi0uNjc4aDBBMS44OTQsMS44OTQsMCwwLDEsMTcuNzQ2LDEwLjk2OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTAuMDMxLDE3Ljc0NmEyLjU0NSwyLjU0NSwwLDAsMS0xLjc3My4yMDlIOC4wNWEzLjY4LDMuNjgsMCwwLDEtLjg4Ni0xLjUxMkEyLjI3LDIuMjcsMCwwLDAsMTAuMDMxLDE3Ljc0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjIuMTI2LDE3Ljc0NmEyLjU0NSwyLjU0NSwwLDAsMCwxLjc3My4yMDlIMjMuNjlhMS43NDksMS43NDksMCwwLDAsMS4wOTUtMS41MTJBMi4wMiwyLjAyLDAsMCwxLDIyLjEyNiwxNy43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTExLjIzLDEwLjcwOWE0Ljc1LDQuNzUsMCwwLDEsMi4yNDIuMWMuOTM4LjMxMy4yMDksMS41NjQuMzY1LDEuNjE2YTIuODY1LDIuODY1LDAsMCwxLDIuMjQyLS43M2MxLjc3My4xLDEuOTgxLjg4NiwyLjI0Mi43My4yNjEtLjEtLjI2MS0yLjE5LDIuNDUtMS43MiwwLDAtMi43NjMtLjczLTIuNjU5LDEuMjUxYTMuNjc1LDMuNjc1LDAsMCwwLTMuODU4LS4xUzE0LjgyNyw5LjkyNywxMS4yMywxMC43MDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUsOHMtMi40LDIuOTcyLTIuNzExLDQuMTE4Yy0uMzY1LDEuMTQ3LS42MjYsNS45NDMtLjkzOCw2LjYyMUw1Ljc1NiwxNC4wNDVsMi4wMzMtNC45WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42NTYsOHMyLjQsMi45NzIsMi43MTEsNC4xMThjLjM2NSwxLjE0Ny42MjYsNS45NDMuOTM4LDYuNjIxTDI2LjQsMTQuMDQ1bC0yLjAzMy00LjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTIxLjUsOGExMS42MTcsMTEuNjE3LDAsMCwxLDMuMjg0LDQuNTg4Yy43MywyLjQ1LjQxNyw1LjQ3NC45OTEsNS44MzkuODM0LjUyMSwxLjcyLTIuNjA3LDIuMDMzLTIuOTE5LjQ2OS0uNTIxLDIuMDg1LTEuODc3LDIuMTktMi4xMzdzLTMuMjMyLTMuOTEtNC43NDQtNC42NEMyMy41ODUsNy44OTMsMjEuNCw3Ljc4OSwyMS41LDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY5LDkuM2ExNS4zNzksMTUuMzc5LDAsMCwxLDIuOTcyLDguNjU0bDEuMi0yLjQ1QTE2LjU2NCwxNi41NjQsMCwwLDAsMjMuNjksOS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xMC41LDhhMTEuNjE3LDExLjYxNywwLDAsMC0zLjI4NCw0LjU4OGMtLjczLDIuNDUtLjQxNyw1LjQ3NC0uOTkxLDUuODM5LS44MzQuNTIxLTEuNzItMi42MDctMi4wMzMtMi45MTktLjQ2OS0uNTIxLTIuMDg1LTEuODc3LTIuMTktMi4xMzdzMy4yMzItMy45MSw0Ljc0NC00LjY0QzguNDE1LDcuODkzLDEwLjYsNy43ODksMTAuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk04LjMxLDkuM2ExNS4zNzksMTUuMzc5LDAsMCwwLTIuOTcyLDguNjU0TDQuMTQsMTUuNUExNi41NjQsMTYuNTY0LDAsMCwxLDguMzEsOS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk02LjY0MiwxOC4wMDdhNC4xMTgsNC4xMTgsMCwwLDAsLjU3MywxLjU2NGMuMzY1LjM2NS4xLS4zMTMuMS0uMzEzcy0uMzY1LS4yMDktLjMxMy0xLjcyUzYuNjQyLDE4LjAwNyw2LjY0MiwxOC4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTI1LjQxLDE4LjAwN2E0LjExOCw0LjExOCwwLDAsMS0uNTczLDEuNTY0Yy0uMzY1LjM2NS0uMS0uMzEzLS4xLS4zMTNzLjM2NS0uMjA5LjMxMy0xLjcyQzI0Ljk5MywxNi4wNzgsMjUuNDEsMTguMDA3LDI1LjQxLDE4LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMy44ODlcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTIuODQ2XFxcIiBjeT1cXFwiMTguMjE2XFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjUzM1xcXCIgY3k9XFxcIjE3LjEyMVxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48Y2lyY2xlIGN4PVxcXCIxOC4xNjRcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTkuMTU0XFxcIiBjeT1cXFwiMTguMjE2XFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjE5LjQ2N1xcXCIgY3k9XFxcIjE3LjEyMVxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz5cIixcblx0XCJQdXBwZXRcIjogXCI8cGF0aCBkPVxcXCJNMjUuMDg5LDExLjgyMkgxOC43TDE1LjI2Nyw4LjM4OFYySDYuOTExdjguMzU3SDEzLjNsMy40MjIsMy40MjJoMHY0LjQzMWgwbC0zLjQzNCwzLjQzNEg2LjkxMVYzMGg4LjM1N1YyMy42MTJoMEwxOC43LDIwLjE3OGg2LjM4OFpNOS43LDQuNzg2aDIuNzg2VjcuNTcxSDkuN1pNMTIuNDgyLDI3LjJIOS43VjI0LjQxN2gyLjc4NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmFlMWFcXFwiLz5cIixcblx0XCJQdXJlU2NyaXB0XCI6IFwiPHJlY3Qgd2lkdGg9XFxcIjMyXFxcIiBoZWlnaHQ9XFxcIjMyXFxcIiBzdHlsZT1cXFwiZmlsbDojMTYxNzFiXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMS44OTIgMjIuMTM2IDE5LjcwNiAyMC4wOTUgMTAuMTA3IDIwLjA5NSAxMi4yOTMgMjIuMTM2IDIxLjg5MiAyMi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjI5MyAxNC45OCAxMC4xMDcgMTcuMDIxIDE5LjcwNiAxNy4wMjEgMjEuODkyIDE0Ljk4IDEyLjI5MyAxNC45OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuODkxIDExLjkwNiAxOS43MDYgOS44NjQgMTAuMTA3IDkuODY0IDEyLjI5MyAxMS45MDYgMjEuODkxIDExLjkwNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk05LjEsMTMuOTI2LDcuNjUyLDEyLjQ4MiwyLjMsMTcuODM2YTEuMDIzLDEuMDIzLDAsMCwwLDAsMS40NDNsNS4zNTQsNS4zNTRMOS4xLDIzLjE5LDQuNDY0LDE4LjU1OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNywxMi43MjEsMjQuMzQ4LDcuMzY2LDIyLjksOC44MWw0LjYzLDQuNjMyTDIyLjksMTguMDc1bDEuNDQzLDEuNDQzTDI5LjcsMTQuMTY1YTEuMDIxLDEuMDIxLDAsMCwwLDAtMS40NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiUHl0aG9uXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzMy4yNjhcXFwiIHkxPVxcXCItMjAyLjkxXFxcIiB4Mj1cXFwiLTEzMy4xOThcXFwiIHkyPVxcXCItMjAyLjg0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI1MjQzLjA2MSAzODUxOS4xNykgc2NhbGUoMTg5LjM4IDE4OS44MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMzODdlYjhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzNjY5OTRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi0xMzMuNTc1XFxcIiB5MT1cXFwiLTIwMy4yMDNcXFwiIHgyPVxcXCItMTMzLjQ5NVxcXCIgeTI9XFxcIi0yMDMuMTMzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI1MzA5LjA2MSAzODU4My40Mikgc2NhbGUoMTg5LjM4IDE4OS44MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmUwNTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmMzMzFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3B5dGhvbjwvdGl0bGU+PHBhdGggZD1cXFwiTTE1Ljg4NSwyLjFjLTcuMSwwLTYuNjUxLDMuMDctNi42NTEsMy4wN1Y4LjM2aDYuNzUydjFINi41NDVTMiw4LjgsMiwxNi4wMDVzNC4wMTMsNi45MTIsNC4wMTMsNi45MTJIOC4zM1YxOS41NTZzLS4xMy00LjAxMywzLjktNC4wMTNoNi43NjJzMy43NzIuMDYsMy43NzItMy42NTJWNS44cy41NzItMy43MTItNi44NDItMy43MTJoMFpNMTIuMTUzLDQuMjM3YTEuMjE0LDEuMjE0LDAsMSwxLTEuMTgzLDEuMjQ0di0uMDJhMS4yMTQsMS4yMTQsMCwwLDEsMS4yMTQtMS4yMTRoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDg1LDI5LjkxYzcuMSwwLDYuNjUxLTMuMDgsNi42NTEtMy4wOFYyMy42NUgxNS45ODV2LTFoOS40N1MzMCwyMy4xNTgsMzAsMTUuOTk1cy00LjAxMy02LjkxMi00LjAxMy02LjkxMkgyMy42NFYxMi40cy4xMyw0LjAxMy0zLjksNC4wMTNIMTIuOTc1UzkuMiwxNi4zNTYsOS4yLDIwLjA2OFYyNi4ycy0uNTcyLDMuNzEyLDYuODQyLDMuNzEyaC4wNFptMy43MzItMi4xNDdBMS4yMTQsMS4yMTQsMCwxLDEsMjEsMjYuNTE5di4wM2ExLjIxNCwxLjIxNCwwLDAsMS0xLjIxNCwxLjIxNGguMDNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+XCIsXG5cdFwiUSAoa2RiKyBkYXRhYmFzZSlcIjogXCI8cGF0aCBkPVxcXCJNMjAuMDkyLDI5VjE5LjY4MkE2Ljk1Myw2Ljk1MywwLDAsMSwxNy43LDIxLjY0NWE2Ljc0Myw2Ljc0MywwLDAsMS0zLjA4OS43MjRBNi41NTcsNi41NTcsMCwwLDEsOS40MTMsMjAsMTEuMDgxLDExLjA4MSwwLDAsMSw3LDEyLjQ3NSwxMC4wMzMsMTAuMDMzLDAsMCwxLDkuMjY0LDUuNSw3LjI1MSw3LjI1MSwwLDAsMSwxNC44NzQsM2E2LjI2Niw2LjI2NiwwLDAsMSwzLjIuNzg1LDcuMzI5LDcuMzI5LDAsMCwxLDIuNCwyLjM3M1YzLjQxOUgyNVYyOVptLjE1Ny0xNi41NDJhNi40OTIsNi40OTIsMCwwLDAtMS4xNi00LjIzMiwzLjYzNCwzLjYzNCwwLDAsMC0yLjkwNS0xLjM4NywzLjc0MiwzLjc0MiwwLDAsMC0yLjk3NSwxLjQxMyw2Ljg4MSw2Ljg4MSwwLDAsMC0xLjIsNC40ODUsNi43NjcsNi43NjcsMCwwLDAsMS4xNTIsNC40MDZBMy41OTMsMy41OTMsMCwwLDAsMTYuMDA5LDE4LjVhMy43ODYsMy43ODYsMCwwLDAsMi45NjYtMS41MThBNi44ODksNi44ODksMCwwLDAsMjAuMjQ5LDEyLjQ1OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTc4YjNcXFwiLz5cIixcblx0XCJRI1wiOiBcIjxwYXRoIGQ9XFxcIk0xOS40NTEsNi4yMThoMi42MzhWOC44NTZoMi42MzdWNi4yMThoMi42MzdWOC44NTZIMzBWMTEuNUgyNy4zNjR2Mi42MzZIMzBWMTYuNzdIMjcuMzY0djIuNjM3SDI0LjcyN1YxNi43NjlIMjIuMDkxbDAsMi42MzdIMTkuNDUzVjE2Ljc2OEgxNi44MTVWMTQuMTI3aDIuNjM4VjExLjVIMTYuODE1VjguODUzaDIuNjM5Wm0yLjYzOCw3LjkxNGgyLjYzN1YxMS41SDIyLjA4OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2NcXFwiLz48cGF0aCBkPVxcXCJNMTQuMDE4LDIxLjUyNGExMS40MzYsMTEuNDM2LDAsMCwwLDEuNTcyLTYuMTkyLDEwLjg3NywxMC44NzcsMCwwLDAtMS44NTgtNi42QTUuODg5LDUuODg5LDAsMCwwLDguODA4LDYuMTUzYTUuOTIxLDUuOTIxLDAsMCwwLTQuOTQsMi41ODFBMTAuODQyLDEwLjg0MiwwLDAsMCwyLDE1LjMzM2ExMC44NTMsMTAuODUzLDAsMCwwLDEuODY4LDYuNTkyLDUuOTE4LDUuOTE4LDAsMCwwLDQuOTQxLDIuNTg4LDUuNzQzLDUuNzQzLDAsMCwwLDMuMjYtLjk4N2wyLjMwNiwyLjMyMSwxLjU3Ny0yLjRabS01LjE3LTEuMjE4LDEuMTE3LDEuMTIxYTMuMjI5LDMuMjI5LDAsMCwxLTEuMTc0LjIxNywzLjMzNSwzLjMzNSwwLDAsMS0yLjgzNy0xLjU5Myw4LjEyNSw4LjEyNSwwLDAsMS0xLjE4LTQuNzE5LDguMSw4LjEsMCwwLDEsMS4xODQtNC43MjQsMy4zNzIsMy4zNzIsMCwwLDEsMi44Ny0xLjU4OCwzLjMxLDMuMzEsMCwwLDEsMi44MTksMS41ODUsOC4xNzgsOC4xNzgsMCwwLDEsMS4xNzIsNC43MjYsOS4xMTMsOS4xMTMsMCwwLDEtLjgzMyw0LjE1bC0xLjU2LTEuNTcxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzY1xcXCIvPlwiLFxuXHRcIlFNTFwiOiBcIjxwYXRoIGQ9XFxcIk0yNy4zLDVINS44ODZMMiw4Ljk1OFYyNkgyNi4xMTRMMzAsMjIuMDQyVjVaTTE2LjksMjMuMDdsLTEuODI4Ljg1MkwxMy41LDIxLjMzMWEzLjk2OCwzLjk2OCwwLDAsMS0xLjA4Mi4xMDZjLTEuODQ1LDAtMy4xMjMtLjUtMy44NS0xLjQ5YTguMDMsOC4wMywwLDAsMS0xLjA4Mi00LjcsOC4zNTEsOC4zNTEsMCwwLDEsMS4xLTQuNzczLDQuMzc5LDQuMzc5LDAsMCwxLDMuODMzLTEuNTYxYzEuODI4LDAsMy4wODcuNTE1LDMuODMzLDEuNTQ0YTguMzUxLDguMzUxLDAsMCwxLDEuMSw0Ljc3MywxMC44MDksMTAuODA5LDAsMCwxLS40NTIsMy40NCwzLjksMy45LDAsMCwxLTEuNDczLDJabTUuODQ4LTEuNjdhMi43MzUsMi43MzUsMCwwLDEtMi4xNjgtLjY5MkE0LjE5Miw0LjE5MiwwLDAsMSwyMCwxOC4xVjE0SDE5VjEyaDFWOWgydjNoMnYySDIydjMuOWEzLjkwNywzLjkwNywwLDAsMCwuMTY4LDEuNDM3Yy4xMTIuMjMxLjM5My4zNTUuODYuMzU1bDEuNTMzLS4wNTMuMDkzLDEuNTQ0QTEyLjUxOSwxMi41MTksMCwwLDEsMjIuNzQ4LDIxLjRaTTEyLjQxNiwxMC42MTRhMi40LDIuNCwwLDAsMC0yLjI4OSwxLjEsNy42NTcsNy42NTcsMCwwLDAtLjYsMy41MTMsNy4xMzEsNy4xMzEsMCwwLDAsLjYsMy40NDJBMi40NCwyLjQ0LDAsMCwwLDEyLjQzMywxOS43YTIuNDE3LDIuNDE3LDAsMCwwLDIuMjg5LTEuMDExLDcuMzQzLDcuMzQzLDAsMCwwLC41ODYtMy40NDIsNy42OTIsNy42OTIsMCwwLDAtLjYtMy41MzFBMi40LDIuNCwwLDAsMCwxMi40MTYsMTAuNjE0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQxY2Q1MlxcXCIvPlwiLFxuXHRcIlJcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMTM0LjgxMVxcXCIgeTE9XFxcIi0xMDMuMjg0XFxcIiB4Mj1cXFwiLTEzNC43NzJcXFwiIHkyPVxcXCItMTAzLjMyM1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg3MjEuMDk0LCAwLCAwLCAtNDgyLjkzNywgOTcyMTMuNTk1LCAtNDk4NzQuNTEyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2NiY2VkMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODM4YlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTEzNS4zNzhcXFwiIHkxPVxcXCItMTAyLjk4NVxcXCIgeDI9XFxcIi0xMzUuMzM5XFxcIiB5Mj1cXFwiLTEwMy4wMjRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMzk4LCAwLCAwLCAtNDA2LjEyNCwgNTM4OTMsIC00MTgxMi44MzYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjc2ZGMzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTY1Y2FhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9yPC90aXRsZT48cGF0aCBkPVxcXCJNMTYsMjMuOTU2Yy03LjczMiwwLTE0LTQuMi0xNC05LjM3NlM4LjI2OCw1LjIsMTYsNS4yLDMwLDkuNCwzMCwxNC41OCwyMy43MzIsMjMuOTU2LDE2LDIzLjk1NlpNMTguMTQzLDguODdDMTIuMjY2LDguODcsNy41LDExLjc0LDcuNSwxNS4yOHM0Ljc2NCw2LjQxLDEwLjY0MSw2LjQxLDEwLjIxNC0xLjk2MiwxMC4yMTQtNi40MVMyNC4wMiw4Ljg3LDE4LjE0Myw4Ljg3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4zMjEsMTkuNzI2YTEwLjU0NSwxMC41NDUsMCwwLDEsMS4zNC41LDIuNTkxLDIuNTkxLDAsMCwxLC42OC40ODUsMS44MzUsMS44MzUsMCwwLDEsLjMxMS40NDdsMy4zMzksNS42My01LjQsMC0yLjUyNC00Ljc0YTYuMSw2LjEsMCwwLDAtLjgzNS0xLjE0NS44NzkuODc5LDAsMCwwLS42NDEtLjI5MUgxOC4zMTF2Ni4xNzNsLTQuNzc2LDBWMTEuMDI2aDkuNTkxUzI3LjUsMTEuMSwyNy41LDE1LjI2MSwyMy4zMjEsMTkuNzI2LDIzLjMyMSwxOS43MjZabS0yLjA3Ny01LjI4LTIuODkxLDB2Mi42ODFoMi44OTNhMS4zMjMsMS4zMjMsMCwwLDAsMS4zNC0xLjM2NEExLjI0NywxLjI0NywwLDAsMCwyMS4yNDQsMTQuNDQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPlwiLFxuXHRcIlJhY2tldFwiOiBcIjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjAxNiwyNC42NDFhMTQsMTQsMCwwLDAtMTUuOC0yMS44QzE2LjksNS44MjIsMjQuNDEzLDE1LjU0OSwyNy4wMTYsMjQuNjQxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzNlNWJhOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy45OTUsMTAuOTNhMjQuMywyNC4zLDAsMCwwLTcuMjItNS40NkExNCwxNCwwLDAsMCw1LjQ2MywyNS4yMTcsMzkuNTYsMzkuNTYsMCwwLDEsMTMuOTk1LDEwLjkzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzlmMWQyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41NzUsMTQuMUEzMi42NDUsMzIuNjQ1LDAsMCwwLDkuNDMsMjguMzY1YTE0LjAxNiwxNC4wMTYsMCwwLDAsMTMuMy0uMDg5QTM4LjY0MiwzOC42NDIsMCwwLDAsMTYuNTc1LDE0LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojOWYxZDIwXFxcIi8+XCIsXG5cdFwiUmF6b3IgQyNcIjogXCI8cGF0aCBkPVxcXCJNMjMuODQ0LDI3LjY5MmExNi4zMzIsMTYuMzMyLDAsMCwxLTYuNjQ1LDEuM3EtNi4zNjQsMC0xMC4wMTMtMy4yNDNhMTEuMywxMS4zLDAsMCwxLTMuNjQ5LTguOUExMy43MTYsMTMuNzE2LDAsMCwxLDcuMzIyLDYuOTUxLDEyLjcxNiwxMi43MTYsMCwwLDEsMTYuOSwzLjAwOGExMS42NzYsMTEuNjc2LDAsMCwxLDguNDI1LDMuMDA2LDkuOTk0LDkuOTk0LDAsMCwxLDMuMTQyLDcuNTMzLDEwLjE4NywxMC4xODcsMCwwLDEtMi4zMTgsNy4xMTQsNy41MzIsNy41MzIsMCwwLDEtNS44MTcsMi41NDcsMi42MTMsMi42MTMsMCwwLDEtMS44NDUtLjY0MiwyLjMyMywyLjMyMywwLDAsMS0uNzY0LTEuNiw0LjksNC45LDAsMCwxLTQuMTQ4LDIuMjQzLDQuNiw0LjYsMCwwLDEtMy41MDctMS40NzksNS43MDYsNS43MDYsMCwwLDEtMS4zODQtNC4wNjMsOS45MTMsOS45MTMsMCwwLDEsMi4yLTYuMzU3cTIuMi0yLjc2Myw0LjgtMi43NjNhNS4wNjMsNS4wNjMsMCwwLDEsNC4yNTYsMS43MTZsLjMxMS0xLjMzOGgyLjQwNWwtMi4wODEsOS4wOGExMC43MTYsMTAuNzE2LDAsMCwwLS4zNTIsMi4yNDNxMCwuOTcyLjc0NC45NzJhNC44MTksNC44MTksMCwwLDAsMy44NzctMi4wNDcsOC45Myw4LjkzLDAsMCwwLDEuNjIxLTUuNjgxLDcuOTgsNy45OCwwLDAsMC0yLjY3NS02LjE3NSw5Ljg4Nyw5Ljg4NywwLDAsMC02LjkxOS0yLjQzMkExMC42LDEwLjYsMCwwLDAsOC43MTMsOC4zNTJhMTIuMDY2LDEyLjA2NiwwLDAsMC0zLjIsOC40OTUsOS41NjEsOS41NjEsMCwwLDAsMy4wNiw3LjU3M3EzLjA2LDIuNyw4LjU4NiwyLjdhMTMuNzU3LDEzLjc1NywwLDAsMCw1LjY3NS0xLjA1NFpNMTkuNDY2LDEyLjI1YTMuOTc3LDMuOTc3LDAsMCwwLTMuNi0xLjcxNnEtMS44MjQsMC0zLjI2MywyLjIzYTguNzI2LDguNzI2LDAsMCwwLTEuNDM5LDQuODI0cTAsMy42MzUsMi45MDUsMy42MzVBMy43NzEsMy43NzEsMCwwLDAsMTYuNzIsMjAuMDRhNi4zMDksNi4zMDksMCwwLDAsMS43LTMuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNjg4MzJcXFwiLz5cIixcblx0XCJSZWFjdCBKU1hcIjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE1Ljk3NFxcXCIgcj1cXFwiMi41XFxcIiBzdHlsZT1cXFwiZmlsbDojMDBkOGZmXFxcIi8+PHBhdGggZD1cXFwiTTE2LDIxLjcwNmEyOC4zODUsMjguMzg1LDAsMCwxLTguODgtMS4yLDExLjMsMTEuMywwLDAsMS0zLjY1Ny0xLjk1OEEzLjU0MywzLjU0MywwLDAsMSwyLDE1Ljk3NGMwLTEuNjUzLDEuODE2LTMuMjczLDQuODU4LTQuMzMzQTI4Ljc1NSwyOC43NTUsMCwwLDEsMTYsMTAuMjkzYTI4LjY3NCwyOC42NzQsMCwwLDEsOS4wMjIsMS4zMjQsMTEuMzc2LDExLjM3NiwwLDAsMSwzLjUzOCwxLjg2NkEzLjM5MSwzLjM5MSwwLDAsMSwzMCwxNS45NzRjMCwxLjcxOC0yLjAzLDMuNDU5LTUuMyw0LjU0MUEyOC44LDI4LjgsMCwwLDEsMTYsMjEuNzA2Wm0wLTEwLjIxN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTguNzQ5LDEuMjgyYy0yLjguOTc3LTQuMDU1LDIuMzEzLTQuMDU1LDMuMiwwLC45MjgsMS4zNDksMi4zODcsNC4zMTEsMy40QTI3LjIxLDI3LjIxLDAsMCwwLDE2LDIwLjUxYTI3LjYsMjcuNiwwLDAsMCw4LjMyNS0xLjEzQzI3LjQsMTguMzYxLDI4LjgsMTYuOSwyOC44LDE1Ljk3NGEyLjMyNywyLjMyNywwLDAsMC0xLjAxLTEuNTczLDEwLjE5NCwxMC4xOTQsMCwwLDAtMy4xNjEtMS42NTRBMjcuNDYyLDI3LjQ2MiwwLDAsMCwxNiwxMS40ODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBkOGZmXFxcIi8+PHBhdGggZD1cXFwiTTEwLjMyLDI4LjQ0M2EyLjYzOSwyLjYzOSwwLDAsMS0xLjMzNi0uMzI4Yy0xLjQzMi0uODI2LTEuOTI4LTMuMjA4LTEuMzI3LTYuMzczYTI4Ljc1NSwyOC43NTUsMCwwLDEsMy40LTguNTkzaDBBMjguNjc2LDI4LjY3NiwwLDAsMSwxNi43MSw1Ljk5NWExMS4zNzYsMTEuMzc2LDAsMCwxLDMuMzg0LTIuMTMzLDMuMzkxLDMuMzkxLDAsMCwxLDIuODc4LDBjMS40ODkuODU4LDEuOTgyLDMuNDg2LDEuMjg3LDYuODU5YTI4LjgwNiwyOC44MDYsMCwwLDEtMy4zMTYsOC4xMzMsMjguMzg1LDI4LjM4NSwwLDAsMS01LjQ3Niw3LjA5MywxMS4zLDExLjMsMCwwLDEtMy41MjMsMi4xODlBNC45MjYsNC45MjYsMCwwLDEsMTAuMzIsMjguNDQzWm0xLjc3My0xNC43YTI3Ljk0OCwyNy45NDgsMCwwLDAtMy4yNiw4LjIxOWMtLjU1MywyLjkxNS0uMDIyLDQuNjY4Ljc1LDUuMTE0LjguNDYzLDIuNzQyLjAyNCw1LjEtMi4wMzZhMjcuMjA5LDI3LjIwOSwwLDAsMCw1LjIyNy02Ljc5LDI3LjYsMjcuNiwwLDAsMCwzLjE4MS03Ljc3NmMuNjU0LTMuMTc1LjA4OS01LjExOS0uNzEzLTUuNTgxYTIuMzI3LDIuMzI3LDAsMCwwLTEuODY4LjA4OUExMC4xOTQsMTAuMTk0LDAsMCwwLDE3LjUsNi45YTI3LjQ2NCwyNy40NjQsMCwwLDAtNS40LDYuODQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42NzcsMjguNDU2Yy0xLjM1NSwwLTMuMDc2LS44Mi00Ljg2OC0yLjM2MWEyOC43NTYsMjguNzU2LDAsMCwxLTUuNzQ3LTcuMjM3aDBhMjguNjc2LDI4LjY3NiwwLDAsMS0zLjM3NC04LjQ3MSwxMS4zNzYsMTEuMzc2LDAsMCwxLS4xNTgtNEEzLjM5MSwzLjM5MSwwLDAsMSw4Ljk2NCwzLjljMS40ODctLjg2MSw0LjAxLjAyNCw2LjU4NSwyLjMxYTI4LjgsMjguOCwwLDAsMSw1LjM5LDYuOTM0LDI4LjM4NCwyOC4zODQsMCwwLDEsMy40MSw4LjI4NywxMS4zLDExLjMsMCwwLDEsLjEzNyw0LjE0NiwzLjU0MywzLjU0MywwLDAsMS0xLjQ5NCwyLjU1NUEyLjU5LDIuNTksMCwwLDEsMjEuNjc3LDI4LjQ1NlptLTkuNTgtMTAuMmEyNy45NDksMjcuOTQ5LDAsMCwwLDUuNDkyLDYuOTI5YzIuMjQ5LDEuOTM1LDQuMDMzLDIuMzUxLDQuOCwxLjkuOC0uNDY1LDEuMzktMi4zNjMuNzgyLTUuNDM0QTI3LjIxMiwyNy4yMTIsMCwwLDAsMTkuOSwxMy43NCwyNy42LDI3LjYsMCwwLDAsMTQuNzU1LDcuMWMtMi40MjQtMi4xNTItNC4zOS0yLjYzMy01LjE5MS0yLjE2OWEyLjMyNywyLjMyNywwLDAsMC0uODU1LDEuNjYyLDEwLjE5NCwxMC4xOTQsMCwwLDAsLjE1MywzLjU2NSwyNy40NjUsMjcuNDY1LDAsMCwwLDMuMjM2LDguMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGQ4ZmZcXFwiLz5cIixcblx0XCJSZWFjdCBUU1hcIjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE1Ljk3NFxcXCIgcj1cXFwiMi41XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+PHBhdGggZD1cXFwiTTE2LDIxLjcwNmEyOC4zODUsMjguMzg1LDAsMCwxLTguODgtMS4yLDExLjMsMTEuMywwLDAsMS0zLjY1Ny0xLjk1OEEzLjU0MywzLjU0MywwLDAsMSwyLDE1Ljk3NGMwLTEuNjUzLDEuODE2LTMuMjczLDQuODU4LTQuMzMzQTI4Ljc1NSwyOC43NTUsMCwwLDEsMTYsMTAuMjkzYTI4LjY3NCwyOC42NzQsMCwwLDEsOS4wMjIsMS4zMjQsMTEuMzc2LDExLjM3NiwwLDAsMSwzLjUzOCwxLjg2NkEzLjM5MSwzLjM5MSwwLDAsMSwzMCwxNS45NzRjMCwxLjcxOC0yLjAzLDMuNDU5LTUuMyw0LjU0MUEyOC44LDI4LjgsMCwwLDEsMTYsMjEuNzA2Wm0wLTEwLjIxN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTguNzQ5LDEuMjgyYy0yLjguOTc3LTQuMDU1LDIuMzEzLTQuMDU1LDMuMiwwLC45MjgsMS4zNDksMi4zODcsNC4zMTEsMy40QTI3LjIxLDI3LjIxLDAsMCwwLDE2LDIwLjUxYTI3LjYsMjcuNiwwLDAsMCw4LjMyNS0xLjEzQzI3LjQsMTguMzYxLDI4LjgsMTYuOSwyOC44LDE1Ljk3NGEyLjMyNywyLjMyNywwLDAsMC0xLjAxLTEuNTczLDEwLjE5NCwxMC4xOTQsMCwwLDAtMy4xNjEtMS42NTRBMjcuNDYyLDI3LjQ2MiwwLDAsMCwxNiwxMS40ODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+PHBhdGggZD1cXFwiTTEwLjMyLDI4LjQ0M2EyLjYzOSwyLjYzOSwwLDAsMS0xLjMzNi0uMzI4Yy0xLjQzMi0uODI2LTEuOTI4LTMuMjA4LTEuMzI3LTYuMzczYTI4Ljc1NSwyOC43NTUsMCwwLDEsMy40LTguNTkzaDBBMjguNjc2LDI4LjY3NiwwLDAsMSwxNi43MSw1Ljk5NWExMS4zNzYsMTEuMzc2LDAsMCwxLDMuMzg0LTIuMTMzLDMuMzkxLDMuMzkxLDAsMCwxLDIuODc4LDBjMS40ODkuODU4LDEuOTgyLDMuNDg2LDEuMjg3LDYuODU5YTI4LjgwNiwyOC44MDYsMCwwLDEtMy4zMTYsOC4xMzMsMjguMzg1LDI4LjM4NSwwLDAsMS01LjQ3Niw3LjA5MywxMS4zLDExLjMsMCwwLDEtMy41MjMsMi4xODlBNC45MjYsNC45MjYsMCwwLDEsMTAuMzIsMjguNDQzWm0xLjc3My0xNC43YTI3Ljk0OCwyNy45NDgsMCwwLDAtMy4yNiw4LjIxOWMtLjU1MywyLjkxNS0uMDIyLDQuNjY4Ljc1LDUuMTE0LjguNDYzLDIuNzQyLjAyNCw1LjEtMi4wMzZhMjcuMjA5LDI3LjIwOSwwLDAsMCw1LjIyNy02Ljc5LDI3LjYsMjcuNiwwLDAsMCwzLjE4MS03Ljc3NmMuNjU0LTMuMTc1LjA4OS01LjExOS0uNzEzLTUuNTgxYTIuMzI3LDIuMzI3LDAsMCwwLTEuODY4LjA4OUExMC4xOTQsMTAuMTk0LDAsMCwwLDE3LjUsNi45YTI3LjQ2NCwyNy40NjQsMCwwLDAtNS40LDYuODQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0yMS42NzcsMjguNDU2Yy0xLjM1NSwwLTMuMDc2LS44Mi00Ljg2OC0yLjM2MWEyOC43NTYsMjguNzU2LDAsMCwxLTUuNzQ3LTcuMjM3aDBhMjguNjc2LDI4LjY3NiwwLDAsMS0zLjM3NC04LjQ3MSwxMS4zNzYsMTEuMzc2LDAsMCwxLS4xNTgtNEEzLjM5MSwzLjM5MSwwLDAsMSw4Ljk2NCwzLjljMS40ODctLjg2MSw0LjAxLjAyNCw2LjU4NSwyLjMxYTI4LjgsMjguOCwwLDAsMSw1LjM5LDYuOTM0LDI4LjM4NCwyOC4zODQsMCwwLDEsMy40MSw4LjI4NywxMS4zLDExLjMsMCwwLDEsLjEzNyw0LjE0NiwzLjU0MywzLjU0MywwLDAsMS0xLjQ5NCwyLjU1NUEyLjU5LDIuNTksMCwwLDEsMjEuNjc3LDI4LjQ1NlptLTkuNTgtMTAuMmEyNy45NDksMjcuOTQ5LDAsMCwwLDUuNDkyLDYuOTI5YzIuMjQ5LDEuOTM1LDQuMDMzLDIuMzUxLDQuOCwxLjkuOC0uNDY1LDEuMzktMi4zNjMuNzgyLTUuNDM0QTI3LjIxMiwyNy4yMTIsMCwwLDAsMTkuOSwxMy43NCwyNy42LDI3LjYsMCwwLDAsMTQuNzU1LDcuMWMtMi40MjQtMi4xNTItNC4zOS0yLjYzMy01LjE5MS0yLjE2OWEyLjMyNywyLjMyNywwLDAsMC0uODU1LDEuNjYyLDEwLjE5NCwxMC4xOTQsMCwwLDAsLjE1MywzLjU2NSwyNy40NjUsMjcuNDY1LDAsMCwwLDMuMjM2LDguMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz5cIixcblx0XCJSZWFzb25cIjogXCI8cG9seWxpbmUgcG9pbnRzPVxcXCIyIDIgMzAgMiAzMCAzMCAyIDMwIDIgMlxcXCIgc3R5bGU9XFxcImZpbGw6I2RkNGIzOVxcXCIvPjxwYXRoIGQ9XFxcIk05LjA1MSwxNy41MjdxMi41MzcsMCw1LjA3MiwwQTQuOTQ3LDQuOTQ3LDAsMCwxLDE3LjEsMTguNWEzLjI5LDMuMjksMCwwLDEsMS4xMjgsMi4yNjcsNC4xMTcsNC4xMTcsMCwwLDEtLjc3OCwzLjAyMiwzLjYsMy42LDAsMCwxLTEuMTM3LjkwNWwyLjI0NywzLjU0OS0zLjA2MSwwLTEuNi0zLjA0My0yLjE1NCwwLDAsMy4wMzJIOS4wNTFWMTcuNTI3bTIuNjksMi4xMjgsMCwzLjQzOCwxLjk4OSwwYTIuMTg0LDIuMTg0LDAsMCwwLDEuNDY4LS40NTIsMS44MTQsMS44MTQsMCwwLDAsLjQ4Mi0xLjU0NCwxLjQ2OSwxLjQ2OSwwLDAsMC0uNzA1LTEuMTgsMi43NjgsMi43NjgsMCwwLDAtMS40MzctLjI2OUMxMi45NCwxOS42NTQsMTEuNzQxLDE5LjY1NSwxMS43NDEsMTkuNjU1Wm04LjM4NC0yLjEzaDguMzV2Mi4xM2gtNS42NlYyMS44bDUuMTEsMHYyLjExOUgyMi44MlYyNi4xaDUuODI0djIuMTQySDIwLjEyNVYxNy41MjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiUmVnb1wiOiBcIjxkZWZzPjxjbGlwUGF0aCBpZD1cXFwiYVxcXCI+PHBhdGggZD1cXFwiTTcuMDU1LDE2LjI0MWMzLjQxNS0xMC4yMiwxNC43NTktOS40NzMsMTcuOTI0LDBsLjEsNS44OTNhMTUuNTYyLDE1LjU2MiwwLDAsMC05LjAzNiw3LjI0NkExNy42NDEsMTcuNjQxLDAsMCwwLDcuMDMsMjIuMzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjwvY2xpcFBhdGg+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcmVnbzwvdGl0bGU+PHBhdGggZD1cXFwiTTcuMDMsMTYuMjQxbDIuNi00LjU1OWMtMi40MTgtLjMxMi0yLjYwNi0zLjQzMS0uOC05LjA2MkMzLjgwOSw4Ljg1MywyLjQyLDEwLjIyOCw3LjAzLDE2LjI0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZmJmYmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMjQuOTcsMTYuMjQxbC0yLjU5NS00LjU1OWMyLjQxOC0uMzEyLDIuNjA2LTMuNDMxLjgtOS4wNjJDMjguMTkxLDguODUzLDI5LjU4LDEwLjIyOCwyNC45NywxNi4yNDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTcuMDU1LDE2LjI0MWMzLjQxNS0xMC4yMiwxNC43NTktOS40NzMsMTcuOTI0LDBsLjEsNS44OTNhMTUuNTYyLDE1LjU2MiwwLDAsMC05LjAzNiw3LjI0NkExNy42NDEsMTcuNjQxLDAsMCwwLDcuMDMsMjIuMzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjxnIHN0eWxlPVxcXCJjbGlwLXBhdGg6dXJsKCNhKVxcXCI+PHJlY3QgeD1cXFwiMTYuMDUzXFxcIiB5PVxcXCI3Ljk2MlxcXCIgd2lkdGg9XFxcIjkuNTQ5XFxcIiBoZWlnaHQ9XFxcIjIxLjg5OVxcXCIgc3R5bGU9XFxcImZpbGw6IzUzNjM2N1xcXCIvPjxyZWN0IHg9XFxcIjUuMzIyXFxcIiB5PVxcXCI3Ljk2MlxcXCIgd2lkdGg9XFxcIjEwLjczMlxcXCIgaGVpZ2h0PVxcXCIyMS44OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ODkyOWFcXFwiLz48L2c+PGNpcmNsZSBjeD1cXFwiMTYuMDRcXFwiIGN5PVxcXCIxNi4yNDFcXFwiIHI9XFxcIjEuMTY2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiUmVTY3JpcHRcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxMS40MjFcXFwiIHkxPVxcXCItMjIxLjcwNVxcXCIgeDI9XFxcIjIxLjUwOVxcXCIgeTI9XFxcIi0yNDguNzkyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtMjE4KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U4NGY0ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MDlcXFwiIHN0b3AtY29sb3I9XFxcIiNkYjQ2NDZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjY2IzOTM5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9yZXNjcmlwdDwvdGl0bGU+PHBhdGggZD1cXFwiTTIsMTAuOTdjMC0zLjczOCwwLTUuNi45NTItNi45MTZhNC45OTIsNC45OTIsMCwwLDEsMS4xLTEuMUM1LjM2NCwyLDcuMjMzLDIsMTAuOTY5LDJIMjEuMDNjMy43MzgsMCw1LjYwNSwwLDYuOTE2Ljk1MWE0Ljk5Miw0Ljk5MiwwLDAsMSwxLjEsMS4xQzMwLDUuMzY0LDMwLDcuMjMyLDMwLDEwLjk3VjIxLjAzYzAsMy43MzcsMCw1LjYwNS0uOTUyLDYuOTE2YTQuOTY2LDQuOTY2LDAsMCwxLTEuMSwxLjFDMjYuNjM2LDMwLDI0Ljc2OCwzMCwyMS4wMywzMEgxMC45NjljLTMuNzM2LDAtNS42LDAtNi45MTUtLjk1MmE0Ljk2Niw0Ljk2NiwwLDAsMS0xLjEtMS4xQzIsMjYuNjM2LDIsMjQuNzY3LDIsMjEuMDNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjk3NCwxNS41NTRhMy4zMjUsMy4zMjUsMCwxLDAtMy4zMjQtMy4zMjVBMy4zMjUsMy4zMjUsMCwwLDAsMjAuOTc0LDE1LjU1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNOS4zMTYsMTEuODA5YTQuNjc2LDQuNjc2LDAsMCwxLC4yMDYtMS45ODdBMS44ODYsMS44ODYsMCwwLDEsMTAuMzQ1LDlhNC43LDQuNywwLDAsMSwxLjk4Ny0uMjA1aDIuNjRWMjEuMDQ1YTQuNjg2LDQuNjg2LDAsMCwxLS4xNDQsMS42NjQsMS44OTIsMS44OTIsMCwwLDEtMS4wMiwxLjAyLDQuNzIsNC43MiwwLDAsMS0xLjY2NC4xNDMsNC43MTcsNC43MTcsMCwwLDEtMS42NjQtLjE0MywxLjg5MiwxLjg5MiwwLDAsMS0xLjAyLTEuMDIsNC43Miw0LjcyLDAsMCwxLS4xNDMtMS42NjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwicmVTVCAocmVTdHJ1Y3R1cmVkVGV4dClcIjogXCI8cGF0aCBkPVxcXCJNMTYsMzBBMTMuODU5LDEzLjg1OSwwLDAsMSwyLjI4NiwxNiwxNC4xNDksMTQuMTQ5LDAsMCwxLDYuMyw2LjEsMTMuNTE3LDEzLjUxNywwLDAsMSwyNS43LDYuMSwxNC4xNDksMTQuMTQ5LDAsMCwxLDI5LjcxNCwxNiwxMy44NTksMTMuODU5LDAsMCwxLDE2LDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlM2YzMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS44NjksMjMuMDE1aC0uNGE0LjI2Myw0LjI2MywwLDAsMS0xLjA0OC0uMTEzLDEuMzg3LDEuMzg3LDAsMCwxLS43NjctLjU0OCwyLjIsMi4yLDAsMCwxLS40MDktMS4wMjZBMTMuMjgsMTMuMjgsMCwwLDEsOS4xNTksMTkuNmExMi43OCwxMi43OCwwLDAsMC0uMDgtMS42ODcsMS43NzMsMS43NzMsMCwwLDAtLjQwNS0uOTI0LDEuMzI1LDEuMzI1LDAsMCwwLTEuMDI2LS4zOTFWMTUuNGExLjMyNSwxLjMyNSwwLDAsMCwxLjAyNi0uMzkxLDEuNzczLDEuNzczLDAsMCwwLC40MDUtLjkyNCwxMi43OCwxMi43OCwwLDAsMCwuMDgtMS42ODcsMTMuMjgsMTMuMjgsMCwwLDEsLjA4NC0xLjczMSwyLjIsMi4yLDAsMCwxLC40MDktMS4wMjYsMS4zODcsMS4zODcsMCwwLDEsLjc2Ny0uNTQ4LDQuMjYzLDQuMjYzLDAsMCwxLDEuMDQ4LS4xMTNoLjR2MS4xNGgtLjIyNnEtLjc2LDAtLjkzMS40YTcuNzIsNy43MiwwLDAsMC0uMTcyLDIuMTcsNC44NzYsNC44NzYsMCwwLDEtLjQxNiwyLjMxNkEyLjExNywyLjExNywwLDAsMSw4Ljg1OSwxNmEyLjA4OSwyLjA4OSwwLDAsMSwxLjI2NC45ODZBNC44NzYsNC44NzYsMCwwLDEsMTAuNTQsMTkuM2E3LjcyLDcuNzIsMCwwLDAsLjE3MiwyLjE3cS4xNzIuNC45MzEuNGguMjI2Wm0xLjYtMy4xNDFoMS4wMzVWMTYuNDJoMS40NTlsMS45NywzLjQ1NGgxLjE4NEwxNy4wNCwxNi4zMDhhMi4yNDMsMi4yNDMsMCwwLDAsMS44MzMtMi4zMTljMC0xLjctMS4yLTIuMjk0LTIuODU1LTIuMjk0SDEzLjQ3NFptMS4wMzUtNC4zVjEyLjUzaDEuMzU5YzEuMjcyLDAsMS45Ny4zODYsMS45NywxLjQ1OXMtLjcsMS41ODMtMS45NywxLjU4M1ptNS41NTctNi41OTFoLjRhNC4yNjMsNC4yNjMsMCwwLDEsMS4wNDguMTEzLDEuMzg3LDEuMzg3LDAsMCwxLC43NjcuNTQ4LDIuMiwyLjIsMCwwLDEsLjQwOSwxLjAyNiwxMy4yOCwxMy4yOCwwLDAsMSwuMDg0LDEuNzMxLDEyLjc4LDEyLjc4LDAsMCwwLC4wOCwxLjY4NywxLjc3MywxLjc3MywwLDAsMCwuNDA1LjkyNCwxLjMyNSwxLjMyNSwwLDAsMCwxLjAyNi4zOTF2MS4xOTFhMS4zMjUsMS4zMjUsMCwwLDAtMS4wMjYuMzkxLDEuNzczLDEuNzczLDAsMCwwLS40MDUuOTI0LDEyLjc4LDEyLjc4LDAsMCwwLS4wOCwxLjY4NywxMy4yOCwxMy4yOCwwLDAsMS0uMDg0LDEuNzMxLDIuMiwyLjIsMCwwLDEtLjQwOSwxLjAyNiwxLjM4NywxLjM4NywwLDAsMS0uNzY3LjU0OCw0LjI2Myw0LjI2MywwLDAsMS0xLjA0OC4xMTNoLS40di0xLjE0aC4yMjZxLjc2LDAsLjkzMS0uNEE3LjcyLDcuNzIsMCwwLDAsMjEuNCwxOS4zYTQuODc2LDQuODc2LDAsMCwxLC40MTYtMi4zMTZBMi4wODksMi4wODksMCwwLDEsMjMuMDc1LDE2YTIuMTE3LDIuMTE3LDAsMCwxLTEuMjY0LS45OTQsNC44NzYsNC44NzYsMCwwLDEtLjQxNi0yLjMxNiw3LjcyLDcuNzIsMCwwLDAtLjE3Mi0yLjE3cS0uMTcyLS40LS45MzEtLjRoLS4yMjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiUm9ib3QgRnJhbWV3b3JrXCI6IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMzg3LDE0LjZhMi43MjcsMi43MjcsMCwwLDEsNS40NTMsMCwuOTkuOTksMCwxLDEtMS45OCwwLC43NDYuNzQ2LDAsMCwwLTEuNDkyLDAsLjk5Ljk5LDAsMSwxLTEuOTgsMG0xMS4zLDQuNTg2YS45OTEuOTkxLDAsMCwxLS45OTIuOTkySDExLjUwOGEuOTkyLjk5MiwwLDAsMSwwLTEuOTg0aDkuMTg0YS45OTQuOTk0LDAsMCwxLC45OTIuOTkyTTE3LjM5MSwxNS4xNmEuOTkyLjk5MiwwLDAsMSwuMjctMS4zNzVsMi4yOTMtMS41NTFhLjk4OS45ODksMCwxLDEsMS4xMDksMS42MzdsLTIuMywxLjU1MWEuOTY1Ljk2NSwwLDAsMS0uNTUxLjE3Mi45OTQuOTk0LDAsMCwxLS44MjQtLjQzNG02LjI4OSw2LjA5NGEuNzA3LjcwNywwLDAsMS0uMjA3LjVsLTEuNzA3LDEuNzA3YS43MDcuNzA3LDAsMCwxLS41LjIwN0gxMC44YS43MDcuNzA3LDAsMCwxLS41LS4yMDdMOC42LDIxLjc1NGEuNzA3LjcwNywwLDAsMS0uMjA3LS41VjEwLjhhLjcwNy43MDcsMCwwLDEsLjIwNy0uNUwxMC4zLDguNTk0YS43MDcuNzA3LDAsMCwxLC41LS4yMDdIMjEuMjY2YS43MDcuNzA3LDAsMCwxLC41LjIwN0wyMy40NzMsMTAuM2EuNzA3LjcwNywwLDAsMSwuMjA3LjVaTTI1LjEyOSw5LjE2LDIyLjksNi45M0ExLjgwNywxLjgwNywwLDAsMCwyMS42MjksNi40SDEwLjQzOGExLjgwNywxLjgwNywwLDAsMC0xLjI3My41MjdMNi45MzgsOS4xNmExLjgsMS44LDAsMCwwLS41MjcsMS4yN1YyMS42MjFhMS44LDEuOCwwLDAsMCwuNTI3LDEuMjczbDIuMjI3LDIuMjNhMS44MSwxLjgxLDAsMCwwLDEuMjczLjUyM0gyMS42MjlhMS44LDEuOCwwLDAsMCwxLjI3My0uNTIzbDIuMjI3LTIuMjNhMS43ODQsMS43ODQsMCwwLDAsLjUyNy0xLjI3M1YxMC40MzRhMS43ODQsMS43ODQsMCwwLDAtLjUyNy0xLjI3M1xcXCIvPlwiLFxuXHRcIlJ1YnlcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMjM1Ljk1N1xcXCIgeTE9XFxcIi0zMDguNTc5XFxcIiB4Mj1cXFwiLTIzNS45ODZcXFwiIHkyPVxcXCItMzA4LjUyN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgyMDIuOTM1LCAwLCAwLCAtMjAyLjc4LCA0NzkxMC40NjEsIC02MjU0MS4xNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYjc2NTVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDFcXFwiIHN0b3AtY29sb3I9XFxcIiNlNDJiMWVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM5MDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5MDBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi0yMzUuNTcxXFxcIiB5MT1cXFwiLTMwOS4wODdcXFwiIHgyPVxcXCItMjM1LjY5N1xcXCIgeTI9XFxcIi0zMDkuMDQxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDYwLjMwOCwgMCwgMCwgLTExMS43NzgsIDE0MjM2LjM1MSwgLTM0NTI1LjM5NSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4NzExMDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM5MTEyMDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5MTEyMDlcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi0yMzUuODk2XFxcIiB5MT1cXFwiLTMxMy4zNjJcXFwiIHgyPVxcXCItMjM1LjkzN1xcXCIgeTI9XFxcIi0zMTMuMTI5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE4OC4zMiwgMCwgMCwgLTIxLjk4NiwgNDQ0NDcuMzAyLCAtNjg1Ni44ODIpXFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi0yMzMuNTE1XFxcIiB5MT1cXFwiLTMwOS4wODJcXFwiIHgyPVxcXCItMjMzLjQ5N1xcXCIgeTI9XFxcIi0zMDkuMTYxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDY1LjIyMiwgMCwgMCwgLTk3LjEsIDE1MjM3LjgwMiwgLTI5OTkxLjgxNClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjNcXFwiIHN0b3AtY29sb3I9XFxcIiNlNTcyNTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDZcXFwiIHN0b3AtY29sb3I9XFxcIiNkZTNiMjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhNjAwMDNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhNjAwMDNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIi0yMzUuMzE0XFxcIiB5MT1cXFwiLTMwOS41MzRcXFwiIHgyPVxcXCItMjM1LjMxXFxcIiB5Mj1cXFwiLTMwOS42MDdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTA1LjMyLCAwLCAwLCAtMTA2LjgyNSwgMjQ3OTguOTI1LCAtMzMwNTMuMTUyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2U0NzE0ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2JlMWEwZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmXFxcIiB4MT1cXFwiLTIzNS44ODJcXFwiIHkxPVxcXCItMzExLjg1MVxcXCIgeDI9XFxcIi0yMzUuODY5XFxcIiB5Mj1cXFwiLTMxMS45MzVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoOTQuMzIxLCAwLCAwLCAtNjYuNDE4LCAyMjI3MS40OTksIC0yMDcwNy4wMDQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZTQ2MzQyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjRcXFwiIHN0b3AtY29sb3I9XFxcIiNjODI0MTBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMDBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIi0yMzUuNDEyXFxcIiB5MT1cXFwiLTMyMS4wNzRcXFwiIHgyPVxcXCItMjM1LjMzM1xcXCIgeTI9XFxcIi0zMjAuOTU4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDcwLjc2NywgMCwgMCwgLTI0LjMwMSwgMTY2NzguMTE2LCAtNzc5OC42NDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU0XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzgxZjExXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmYwOTA1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYmYwOTA1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImhcXFwiIHgxPVxcXCItMjIzLjgyMVxcXCIgeTE9XFxcIi0zMTAuMTE2XFxcIiB4Mj1cXFwiLTIyMy43OTZcXFwiIHkyPVxcXCItMzEwLjE4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE4LjE3NywgMCwgMCwgLTcyLjY0NSwgNDA3MS4wMTcsIC0yMjUxMC4yMzMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGU0MDI0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmYxOTBiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYmYxOTBiXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImlcXFwiIHgxPVxcXCItMjM1LjU2MVxcXCIgeTE9XFxcIi0zMDkuMjU4XFxcIiB4Mj1cXFwiLTIzNS40MjRcXFwiIHkyPVxcXCItMzA5LjExNlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxNTguMTYyLCAwLCAwLCAtMTU3LjkzNywgMzcyNTYuMzEzLCAtNDg4MTkuMzgyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2JkMDAxMlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2M4MmYxY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzgyMGMwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2EzMTYwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MlxcXCIgc3RvcC1jb2xvcj1cXFwiI2IzMTMwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U4MjYwOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U4MjYwOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiLTIzNS40MjRcXFwiIHkxPVxcXCItMzA5LjE0M1xcXCIgeDI9XFxcIi0yMzUuNDc2XFxcIiB5Mj1cXFwiLTMwOS4xMjZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTI3LjA3NCwgMCwgMCwgLTk3LjQwOSwgMjk5MzIuMjI5LCAtMzAwODYuOTQ3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzhjMGMwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzk5MGMwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwZVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJrXFxcIiB4MT1cXFwiLTIzNS44MzlcXFwiIHkxPVxcXCItMzA5LjYwNFxcXCIgeDI9XFxcIi0yMzUuOTAxXFxcIiB5Mj1cXFwiLTMwOS41NTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoOTQuMDExLCAwLCAwLCAtMTA1LjYwMywgMjIxOTguNzQzLCAtMzI2NzYuODU2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzdlMTEwYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzllMGMwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzllMGMwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJsXFxcIiB4MT1cXFwiLTIzNS44NTRcXFwiIHkxPVxcXCItMzExLjI0XFxcIiB4Mj1cXFwiLTIzNS44OTFcXFwiIHkyPVxcXCItMzExLjIwMlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg3OS43MDIsIDAsIDAsIC04MS43OTEsIDE4ODI3LjM5NywgLTI1NDQ3LjkwNSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM3OTEzMGRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZTEyMGJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZTEyMGJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwibVxcXCIgY3g9XFxcIi0yMzUuODgyXFxcIiBjeT1cXFwiLTMxMi41NDNcXFwiIHI9XFxcIjAuMDc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDkzLjExMywgMCwgMCwgLTQ4LjY1NSwgMjE5ODYuMDczLCAtMTUxOTMuNjEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjN2UwZTA4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjN2UwZTA4XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcIm5cXFwiIGN4PVxcXCItMjM1LjI4MlxcXCIgY3k9XFxcIi0zMDkuNzA0XFxcIiByPVxcXCIwLjA5N1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg5Ny40MzQsIDAsIDAsIC03NS44NDgsIDIyOTM3LjA1NywgLTIzNDY3Ljg0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2EzMGMwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzgwMGUwOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzgwMGUwOFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJvXFxcIiB4MT1cXFwiLTIzMS4yNDFcXFwiIHkxPVxcXCItMzA5LjQzNVxcXCIgeDI9XFxcIi0yMzEuMjk5XFxcIiB5Mj1cXFwiLTMwOS4zMzdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNDAuMTM3LCAwLCAwLCAtODEuMTQzLCA5Mjg2Ljk5OCwgLTI1MDc4LjU4OSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4YjIxMTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDNcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZTEwMGFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiMzEwMGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiMzEwMGNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwicFxcXCIgeDE9XFxcIi0yMzUuODk4XFxcIiB5MT1cXFwiLTMxNy40NjZcXFwiIHgyPVxcXCItMjM1LjgzMVxcXCIgeTI9XFxcIi0zMTcuNTM3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDc4LjA5OSwgMCwgMCwgLTMyLjYyNCwgMTg0NDcuMzYxLCAtMTAzNTMuNTUzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2IzMTAwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzkxMGYwOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzc5MWMxMlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzc5MWMxMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcnVieTwvdGl0bGU+PHBhdGggZD1cXFwiTTIzLjY5MywyMC40NjksNy43MDcsMjkuOTYxbDIwLjctMS40TDMwLDcuNjg1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOC40NCwyOC41NDIsMjYuNjYxLDE2LjI2M2wtNC44NDYsNi40WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOC40NjQsMjguNTQyLDE1LjQzLDI3LjUxOSw3Ljc3NiwyOS45MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTcuNzk0LDI5LjkzNywxMS4wNSwxOS4yNywzLjg4NSwyMC44WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS44MTMsMjIuN2wtMy0xMS43MzVMMTAuMjQzLDE5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS4zMiwxMS4xMjdsLTguMS02LjYxOS0yLjI1Nyw3LjNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTI1LjUzLDIuMTQ4LDIwLjc2Myw0Ljc4MmwtMy4wMDctMi42N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNMiwyNC4zOGwyLTMuNjQyTDIuMzgyLDE2LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTIuMjc0LDE2LjI2MywzLjksMjAuODczbDcuMDYyLTEuNTg0TDE5LjAyNCwxMS44LDIxLjMsNC41NjlsLTMuNTgzLTIuNTMtNi4wOTEsMi4yOEM5LjcwNiw2LjEsNS45ODIsOS42MzUsNS44NDgsOS43cy0yLjQ1OSw0LjQ2NC0zLjU3NCw2LjU2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNy45ODEsNy45ODFDMTIuMTQsMy44NTgsMTcuNSwxLjQyMSwxOS41NTksMy41cy0uMTI0LDcuMTIxLTQuMjgzLDExLjI0NFM1LjgyMSwyMS40MzQsMy43NjUsMTkuMzU4LDMuODIyLDEyLjEsNy45ODEsNy45ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2kpXFxcIi8+PHBhdGggZD1cXFwiTTcuNzk0LDI5LjkzM2wzLjIzMS0xMC43LDEwLjcyOSwzLjQ0N2MtMy44NzksMy42MzgtOC4xOTQsNi43MTMtMTMuOTYsNy4yNTRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTE5LjAzOCwxMS43NzRsMi43NTQsMTAuOTFjMy4yNC0zLjQwNyw2LjE0OS03LjA3LDcuNTczLTExLjZsLTEwLjMyOC42OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2spXFxcIi8+PHBhdGggZD1cXFwiTTI5LjMzNywxMS4xMzljMS4xLTMuMzI3LDEuMzU3LTguMS0zLjg0MS04Ljk4NUwyMS4yMzEsNC41MDlsOC4xMDYsNi42MjlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2wpXFxcIi8+PHBhdGggZD1cXFwiTTIsMjQuMzMyYy4xNTMsNS40OSw0LjExNCw1LjU3Miw1LjgsNS42MmwtMy45LTkuMUwyLDI0LjMzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ZTEyMDlcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDUzLDExLjc5MWMyLjQ5LDEuNTMxLDcuNTA5LDQuNiw3LjYxLDQuNjYxYTE3LjU1MiwxNy41NTIsMCwwLDAsMi42MTktNS4zNDNsLTEwLjIyOS42ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI20pXFxcIi8+PHBhdGggZD1cXFwiTTExLjAyMSwxOS4yMzJsNC4zMTksOC4zMzJhMjcuOTI0LDI3LjkyNCwwLDAsMCw2LjM4NS00Ljg4bC0xMC43LTMuNDUyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNuKVxcXCIvPjxwYXRoIGQ9XFxcIk0zLjg4NywyMC44NjFsLS42MTIsNy4yODdjMS4xNTUsMS41NzcsMi43NDMsMS43MTQsNC40MDksMS41OTEtMS4yMDUtMy0zLjYxNC05LTMuOC04Ljg3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbylcXFwiLz48cGF0aCBkPVxcXCJNMjEuMjA2LDQuNTI4bDguNTgsMS4yYy0uNDU4LTEuOTQtMS44NjQtMy4xOTItNC4yNjEtMy41ODRsLTQuMzE5LDIuMzhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3ApXFxcIi8+XCIsXG5cdFwiUnVzdFwiOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIi00OTIuMDM1XFxcIiBjeT1cXFwiLTg4My4zN1xcXCIgcj1cXFwiMTMuOTk4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuODY2LCAtMC41LCAtMC4zLCAtMC41MiwgMTc3LjEwNiwgLTY4OS4wMzMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjN2Q3ZDdkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjI2N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzdlN2M3YVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NVxcXCIgc3RvcC1jb2xvcj1cXFwiIzgxNzg3MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MDhcXFwiIHN0b3AtY29sb3I9XFxcIiM4NjcxNjJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzUzXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGQ2ODRjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjg4NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzk2NWMzMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2EwNGYxMlxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcnVzdDwvdGl0bGU+PHBhdGggZD1cXFwiTTE1LjEyNCw1LjNhLjgzMi44MzIsMCwxLDEsLjgzMi44MzJoMGEuODMxLjgzMSwwLDAsMS0uODMyLS44MzJNNS4yLDEyLjgzNGEuODMyLjgzMiwwLDEsMSwuODMyLjgzMmgwYS44MzIuODMyLDAsMCwxLS44MzItLjgzMm0xOS44NTYuMDM5YS44MzIuODMyLDAsMSwxLC44MzIuODMyLjgzMS44MzEsMCwwLDEtLjgzMi0uODMyaDBNNy42MDUsMTQuMDEzYS43Ni43NiwwLDAsMCwuMzg2LTFsLS4zNjktLjgzNUg5LjA3NHY2LjU0NUg2LjE0NGExMC4yNDcsMTAuMjQ3LDAsMCwxLS4zMzItMy45MTFabTYuMDc0LjE2MVYxMi4yNDVoMy40NThjLjE3OSwwLDEuMjYxLjIwNiwxLjI2MSwxLjAxNiwwLC42NzItLjgzLjkxMy0xLjUxMy45MTNaTTguOTU4LDI0LjU2MWEuODMyLjgzMiwwLDEsMSwuODMyLjgzMi44MzEuODMxLDAsMCwxLS44MzItLjgzMmgwbTEyLjMzMS4wMzlhLjgzMi44MzIsMCwxLDEsLjgzMi44MzIuODMyLjgzMiwwLDAsMS0uODMyLS44MzJoMG0uMjU3LTEuODg3YS43NTguNzU4LDAsMCwwLS45LjU4NGwtLjQxOCwxLjk0OWExMC4yNDksMTAuMjQ5LDAsMCwxLTguNTQ1LS4wNDFsLS40MTctMS45NDlhLjc1OS43NTksMCwwLDAtLjktLjU4M2gwbC0xLjcyMS4zN2ExMC4yMzMsMTAuMjMzLDAsMCwxLS44OS0xLjA0OWg4LjM3NGMuMDk1LDAsLjE1OC0uMDE3LjE1OC0uMVYxOC45MjhjMC0uMDg2LS4wNjMtLjEtLjE1OC0uMWgtMi40NVYxNi45NDdoMi42NDlhMS42NjUsMS42NjUsMCwwLDEsMS42MjksMS40MTJjLjEwNS40MTMuMzM2LDEuNzU3LjQ5NCwyLjE4Ny4xNTcuNDgzLjgsMS40NDcsMS40ODIsMS40NDdoNC4zMjNhMTAuMjQzLDEwLjI0MywwLDAsMS0uOTQ5LDEuMVptNC42NS03LjgyMWExMC4yNjEsMTAuMjYxLDAsMCwxLC4wMjIsMS43NzlIMjUuMTY3Yy0uMTA1LDAtLjE0OC4wNjktLjE0OC4xNzJ2LjQ4M2MwLDEuMTM2LS42NDEsMS4zODQtMS4yLDEuNDQ3LS41MzUuMDYtMS4xMjgtLjIyNC0xLjItLjU1MWEzLjYxNiwzLjYxNiwwLDAsMC0xLjY3MS0yLjgwOGMxLjAzLS42NTQsMi4xLTEuNjE5LDIuMS0yLjkxMUEzLjI5MiwzLjI5MiwwLDAsMCwyMS40NCw5LjhhNC41NTksNC41NTksMCwwLDAtMi4yLS43MjRIOC4zNjdBMTAuMjQ2LDEwLjI0NiwwLDAsMSwxNC4xLDUuODRsMS4yODIsMS4zNDRhLjc1OC43NTgsMCwwLDAsMS4wNzIuMDI2aDBsMS40MzQtMS4zNzJhMTAuMjQ4LDEwLjI0OCwwLDAsMSw3LjAxNSw1bC0uOTgyLDIuMjE3YS43NjEuNzYxLDAsMCwwLC4zODYsMVptMi40NDguMDM2LS4wMzMtLjM0MywxLjAxMS0uOTQzYS40Mi40MiwwLDAsMC0uMDEzLS41OTUuNDI4LjQyOCwwLDAsMC0uMTIxLS4wODFMMjguMiwxMi40ODNsLS4xLS4zMzQuODA2LTEuMTJhLjQyMi40MjIsMCwwLDAtLjEzLS41ODEuNDMuNDMsMCwwLDAtLjEzMy0uMDU1bC0xLjM2My0uMjIyLS4xNjQtLjMwNi41NzMtMS4yNTdhLjQxOS40MTksMCwwLDAtLjIzNi0uNTQ0LjQyNi40MjYsMCwwLDAtLjE0Ni0uMDI5bC0xLjM4My4wNDhMMjUuNyw3LjgxOWwuMzE4LTEuMzQ3YS40MjEuNDIxLDAsMCwwLS4zNDMtLjQ4Ny40MzUuNDM1LDAsMCwwLS4xNDQsMEwyNC4xODMsNi4zbC0uMjY2LS4yMTlMMjMuOTY2LDQuN2EuNDIxLjQyMSwwLDAsMC0uNDMxLS40MTEuNDI2LjQyNiwwLDAsMC0uMTQxLjAyOGwtMS4yNTcuNTczLS4zMDYtLjE2NC0uMjIyLTEuMzYzYS40MjEuNDIxLDAsMCwwLS41LS4zMTguNDMuNDMsMCwwLDAtLjEzMy4wNTVsLTEuMTIxLjgwNi0uMzMzLS4xLS40ODMtMS4yOTNhLjQyMS40MjEsMCwwLDAtLjU1NS0uMjE1LjQ0Mi40NDIsMCwwLDAtLjEyLjA4TDE3LjQxOCwzLjM5bC0uMzQzLS4wMzNMMTYuMzQ3LDIuMThhLjQyMS40MjEsMCwwLDAtLjY4OCwwbC0uNzI4LDEuMTc3LS4zNDMuMDMzLS45NDMtMS4wMTJhLjQyMS40MjEsMCwwLDAtLjU5NS4wMTUuNDQyLjQ0MiwwLDAsMC0uMDguMTJMMTIuNDgzLDMuOGwtLjMzMy4xLTEuMTItLjhhLjQyMi40MjIsMCwwLDAtLjU4MS4xMy40My40MywwLDAsMC0uMDU1LjEzM2wtLjIyMiwxLjM2My0uMzA2LjE2NEw4LjYwOCw0LjMxN2EuNDIxLjQyMSwwLDAsMC0uNTQ0LjIzOS40NDQuNDQ0LDAsMCwwLS4wMjguMTQ0bC4wNDgsMS4zODNMNy44MTgsNi4zLDYuNDcxLDUuOTg0YS40MjEuNDIxLDAsMCwwLS40ODcuMzQzLjQzNS40MzUsMCwwLDAsMCwuMTQ0TDYuMyw3LjgxOWwtLjIxOC4yNjVMNC43LDguMDM2YS40MjIuNDIyLDAsMCwwLS4zODMuNTczTDQuODksOS44NjZsLS4xNjQuMzA2LTEuMzYzLjIyMmEuNDIuNDIsMCwwLDAtLjMxOC41LjQzLjQzLDAsMCwwLC4wNTUuMTMzbC44MDYsMS4xMi0uMS4zMzQtMS4yOTMuNDgzYS40MjEuNDIxLDAsMCwwLS4yMTUuNTU1LjQxNC40MTQsMCwwLDAsLjA4MS4xMjFsMS4wMTEuOTQzLS4wMzMuMzQzLTEuMTc3LjcyOGEuNDIxLjQyMSwwLDAsMCwwLC42ODhsMS4xNzcuNzI4LjAzMy4zNDMtMS4wMTEuOTQzYS40MjEuNDIxLDAsMCwwLC4wMTUuNTk1LjQzNi40MzYsMCwwLDAsLjExOS4wOGwxLjI5My40ODMuMS4zMzRMMy4xLDIwLjk3MmEuNDIxLjQyMSwwLDAsMCwuMTMxLjU4MS40My40MywwLDAsMCwuMTMzLjA1NWwxLjM2My4yMjIuMTY0LjMwNy0uNTczLDEuMjU3YS40MjIuNDIyLDAsMCwwLC4yNC41NDUuNDM4LjQzOCwwLDAsMCwuMTQzLjAyOGwxLjM4My0uMDQ4LjIxOS4yNjYtLjMxNywxLjM0OGEuNDIuNDIsMCwwLDAsLjM0MS40ODYuNC40LDAsMCwwLC4xNDYsMEw3LjgxOCwyNS43bC4yNjYuMjE4TDguMDM1LDI3LjNhLjQxOS40MTksMCwwLDAsLjQyOS40MS40MTMuNDEzLDAsMCwwLC4xNDMtLjAyOGwxLjI1Ny0uNTczLjMwNi4xNjQuMjIyLDEuMzYyYS40MjEuNDIxLDAsMCwwLC41LjMxOS40MDcuNDA3LDAsMCwwLC4xMzMtLjA1NWwxLjEyLS44MDcuMzM0LjEuNDgzLDEuMjkyYS40MjIuNDIyLDAsMCwwLC41NTYuMjE0LjQzNi40MzYsMCwwLDAsLjExOS0uMDhsLjk0My0xLjAxMS4zNDMuMDM0LjcyOCwxLjE3N2EuNDIyLjQyMiwwLDAsMCwuNTg4LjEuNDEzLjQxMywwLDAsMCwuMS0uMWwuNzI4LTEuMTc3LjM0My0uMDM0Ljk0MywxLjAxMWEuNDIxLjQyMSwwLDAsMCwuNTk1LS4wMTUuNDM2LjQzNiwwLDAsMCwuMDgtLjExOWwuNDgzLTEuMjkyLjMzNC0uMSwxLjEyLjgwN2EuNDIxLjQyMSwwLDAsMCwuNTgxLS4xMzEuNDMuNDMsMCwwLDAsLjA1NS0uMTMzbC4yMjItMS4zNjIuMzA2LS4xNjQsMS4yNTcuNTczYS40MjEuNDIxLDAsMCwwLC41NDQtLjIzOS40MzguNDM4LDAsMCwwLC4wMjgtLjE0M2wtLjA0OC0xLjM4NC4yNjUtLjIxOCwxLjM0Ny4zMTdhLjQyMS40MjEsMCwwLDAsLjQ4Ny0uMzQuNDQ3LjQ0NywwLDAsMCwwLS4xNDZMMjUuNywyNC4xODNsLjIxOC0uMjY2LDEuMzgzLjA0OGEuNDIxLjQyMSwwLDAsMCwuNDEtLjQzMS40LjQsMCwwLDAtLjAyOC0uMTQybC0uNTczLTEuMjU3LjE2NC0uMzA3LDEuMzYzLS4yMjJhLjQyMS40MjEsMCwwLDAsLjMxOS0uNS40MzQuNDM0LDAsMCwwLS4wNTYtLjEzNWwtLjgwNi0xLjEyLjEtLjMzNCwxLjI5My0uNDgzYS40Mi40MiwwLDAsMCwuMjE1LS41NTQuNDE0LjQxNCwwLDAsMC0uMDgxLS4xMjFsLTEuMDExLS45NDMuMDMzLS4zNDMsMS4xNzctLjcyOGEuNDIxLjQyMSwwLDAsMCwwLS42ODhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdFwiU0FTXCI6IFwiPHBhdGggZD1cXFwiTTE2LjAxOCwzMEExNCwxNCwwLDEsMSwzMCwxNi4yLDE0LDE0LDAsMCwxLDE2LjAxOCwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDJiYjVcXFwiLz48cGF0aCBkPVxcXCJNOS4xNywyMi42M2MuMDI2LjA2MS4wNDYuMTI0LjA3Ny4xODMsMi4yMTUsNC4yMDYsNy43MzgsNC42MTYsMTAuNzU2LDIuNDU0YTYuMDE3LDYuMDE3LDAsMCwwLDEuNzMxLTguNTgzLDE1LjcsMTUuNywwLDAsMC0xLjMxOC0xLjczMWMtLjg4MS0xLjA2Ny0xLjc1NS0yLjE0LTIuNjM2LTMuMjA3LS4zNjYtLjQ0My0uNzY3LS44MzUtMS40MTYtLjY4M2ExLjM5MywxLjM5MywwLDAsMC0uODE2LDIuMzExYy44ODgsMS4xMDYsMS44MTksMi4xNzcsMi43LDMuMjg2YTMuODc0LDMuODc0LDAsMCwxLC41ODksNC40LDUuNDIzLDUuNDIzLDAsMCwxLTUsMy4xMzRBNi42LDYuNiwwLDAsMSw5LjE3LDIyLjYzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi40OTQsOS42MDljLjA4LS4yNDgtLjA2Ni0uMzctLjE0MS0uNTA5QTcuNDc3LDcuNDc3LDAsMCwwLDEyLjYsNi4yMzdjLTMuMywxLjYzLTUuMSw1LjM1Mi0yLjYzNyw5LjE0N2E1Ni41Myw1Ni41MywwLDAsMCw0LjEzNSw1LjEyLDEuMDEyLDEuMDEyLDAsMCwwLC43MDkuMzQ1LDEuMzg0LDEuMzg0LDAsMCwwLDEuNDI4LS43NjUsMS4yNDcsMS4yNDcsMCwwLDAtLjE3My0xLjUwN2MtLjg3Ni0xLjA1MS0xLjc2OS0yLjA4OC0yLjYxNS0zLjE2MmE0LjEzLDQuMTMsMCwwLDEsLjMyMy01Ljc3MUE2LjA1NCw2LjA1NCwwLDAsMSwxOS45ODQsOC4xMyw1LjE5LDUuMTksMCwwLDEsMjIuNDk0LDkuNjA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlNhc3MgKFNhc3MpXCI6IFwiPHBhdGggZD1cXFwiTTI2LjExLDE3LjU3MmE1LjgsNS44LDAsMCwwLTIuNTM3LjU4OCw1LjM0NSw1LjM0NSwwLDAsMS0uNTY4LTEuMzE0LDMuNTMsMy41MywwLDAsMS0uMDUxLTEuMSw5LjgxMSw5LjgxMSwwLDAsMSwuMzMyLTEuMTkyYy0uMDA1LS4wNTEtLjA2MS0uMjkyLS42MjQtLjNzLTEuMDQ4LjEwNy0xLjEuMjU2YTYuMTcxLDYuMTcxLDAsMCwwLS4yMzUuODM0LDE5LjY4NiwxOS42ODYsMCwwLDEtMS43MTMsMy4yOTQsMy4xODYsMy4xODYsMCwwLDEtLjQ0LTIuMDY2LDkuODExLDkuODExLDAsMCwxLC4zMzItMS4xOTJjLS4wMDUtLjA1MS0uMDYxLS4yOTItLjYyNC0uM3MtMS4wNDguMTA3LTEuMS4yNTYtLjExOC41LS4yMzUuODM0LTEuNDgzLDMuMzg2LTEuODQxLDQuMTczYy0uMTg0LjQtLjM0My43MjYtLjQ1NS45NDZoMGEuMjMzLjIzMywwLDAsMS0uMDIuMDQxYy0uMS4xODktLjE1My4yOTItLjE1My4yOTJ2LjAwNWMtLjA3Ny4xMzgtLjE1OS4yNjYtLjIuMjY2YTEuNzExLDEuNzExLDAsMCwxLC4wMS0uODY5Yy4yLTEuMDU5LjY5LTIuNzA1LjY4NS0yLjc2MiwwLS4wMzEuMDkyLS4zMTctLjMxNy0uNDY1YS41MDguNTA4LDAsMCwwLS41NzguMWMtLjAzNiwwLS4wNjEuMDg3LS4wNjEuMDg3cy40NDUtMS44NTEtLjg0OS0xLjg1MWEzLjg1NSwzLjg1NSwwLDAsMC0yLjQ3NSwxLjY4M2MtLjM0OC4xODktMS4wODkuNTkzLTEuODgyLDEuMDI4LS4zLjE2OS0uNjE0LjMzOC0uOTA1LjUtLjAyLS4wMi0uMDQxLS4wNDYtLjA2MS0uMDY2QzYuODcsMTcuNiwzLjk3NSwxNi40MTYsNC4xLDE0LjE3MWMuMDQ2LS44MTguMzI3LTIuOTY2LDUuNTU5LTUuNTc1LDQuMzA2LTIuMTIyLDcuNzMzLTEuNTM0LDguMzI2LS4yMy44NDksMS44NjItMS44MzYsNS4zMTktNi4yODUsNS44MmEzLjM1MSwzLjM1MSwwLDAsMS0yLjgxMy0uNzExYy0uMjM1LS4yNTYtLjI3MS0uMjcxLS4zNTgtLjIyLS4xNDMuMDc3LS4wNTEuMzA3LDAsLjQ0YTIuNjI2LDIuNjI2LDAsMCwwLDEuNjA2LDEuMjYzLDguNTUsOC41NSwwLDAsMCw1LjIxNy0uNTE3YzIuNy0xLjA0Myw0LjgtMy45NDMsNC4xODQtNi4zNzItLjYxOS0yLjQ2NS00LjcxLTMuMjc4LTguNTgyLTEuOUExOS41LDE5LjUsMCwwLDAsNC4zNTksOS45NTJjLTIuMTMzLDEuOTk1LTIuNDcsMy43MjgtMi4zMzIsNC40NTUuNSwyLjU3OCw0LjA1MSw0LjI1NSw1LjQ3Miw1LjUtLjA3Mi4wNDEtLjEzOC4wNzctLjE5NC4xMDctLjcxMS4zNTMtMy40MjEsMS43Ny00LjEsMy4yNjgtLjc2NywxLjcuMTIzLDIuOTE1LjcxMSwzLjA3OWE0LjM3NCw0LjM3NCwwLDAsMCw0LjcxLTEuOTA4QTQuNzI1LDQuNzI1LDAsMCwwLDkuMDQ5LDIwLjFhLjEwNy4xMDcsMCwwLDAtLjAyLS4wMzFsLjU1Ny0uMzI3Yy4zNjMtLjIxNS43MjEtLjQxNCwxLjAyOC0uNTc4YTYuNzQsNi43NCwwLDAsMC0uMzYzLDEuODYyLDMuODg2LDMuODg2LDAsMCwwLC44MzQsMi43LjkyMS45MjEsMCwwLDAsLjY3NS4yMmMuNiwwLC44NzUtLjUsMS4xNzYtMS4wOTQuMzY4LS43MjYuNy0xLjU3LjctMS41N3MtLjQxNCwyLjI4MS43MTEsMi4yODFjLjQwOSwwLC44MjMtLjUzMiwxLjAwOC0uOHYuMDA1cy4wMS0uMDE1LjAzMS0uMDUxbC4wNjYtLjEwN3YtLjAxYy4xNjQtLjI4Ni41MzItLjkzNiwxLjA3OS0yLjAxNS43MDYtMS4zOTEsMS4zODYtMy4xMywxLjM4Ni0zLjEzYTguODg4LDguODg4LDAsMCwwLC4yNzEsMS4xMywxMC42NDMsMTAuNjQzLDAsMCwwLC41ODMsMS4zMDljLS4xNjQuMjMtLjI2Ni4zNTgtLjI2Ni4zNThsLjAwNS4wMDVjLS4xMzMuMTc0LS4yNzYuMzYzLS40MzUuNTQ3YTE2LjMsMTYuMywwLDAsMC0xLjMxNCwxLjY0Ny40NDcuNDQ3LDAsMCwwLC4xMjMuNiwxLjExNiwxLjExNiwwLDAsMCwuNjg1LjExMywzLjE0NywzLjE0NywwLDAsMCwxLjAyOC0uMjM1LDMuNDUsMy40NSwwLDAsMCwuODg1LS40NjUsMS45OCwxLjk4LDAsMCwwLC44NDktMS43NDQsMy41MjEsMy41MjEsMCwwLDAtLjMyMi0xLjIzM2MuMDUxLS4wNzIuMS0uMTQzLjE0OC0uMjE1YTIzLjQyOCwyMy40MjgsMCwwLDAsMS41MzQtMi42NDksOC44ODgsOC44ODgsMCwwLDAsLjI3MSwxLjEzLDcuNTcsNy41NywwLDAsMCwuNSwxLjEyNUE0Ljg2MSw0Ljg2MSwwLDAsMCwyMC45NjUsMjAuOGMtLjMyMi45MzEtLjA3MiwxLjM1LjQsMS40NDdhMS40MjUsMS40MjUsMCwwLDAsLjc0Ny0uMTUzLDMuNCwzLjQsMCwwLDAsLjk0Ni0uNDg2LDIuMTI2LDIuMTI2LDAsMCwwLDEuMDQzLTEuNzI5LDMuMjY4LDMuMjY4LDAsMCwwLS4yMzUtMS4wMjMsNS4zNTYsNS4zNTYsMCwwLDEsMi43MTYtLjMxMmMyLjQzNC4yODYsMi45MTUsMS44MDUsMi44MjMsMi40NDVhMS42MTgsMS42MTgsMCwwLDEtLjc3MiwxLjA5NGMtLjE2OS4xMDctLjIyNS4xNDMtLjIxLjIyLjAyLjExMy4xLjEwNy4yNDUuMDg3QTEuOSwxLjksMCwwLDAsMzAsMjAuN2MuMDc3LTEuNS0xLjM1NS0zLjE0NS0zLjg4Ny0zLjEzWk03LjMzLDIzLjljLS44MDguODgtMS45MzMsMS4yMTItMi40MTkuOTMxLS41MjItLjMtLjMxNy0xLjYuNjc1LTIuNTMyYTEyLjg4NCwxMi44ODQsMCwwLDEsMS45LTEuNDE3Yy4xMTgtLjA3Mi4yOTItLjE3NC41LS4zbC4wNTYtLjAzMWgwbC4xMjMtLjA3N0EzLjQ5MywzLjQ5MywwLDAsMSw3LjMzLDIzLjlabTUuODgxLTRjLS4yODEuNjg1LS44NjksMi40NC0xLjIyNywyLjM0Mi0uMzA3LS4wODItLjUtMS40MTItLjA2MS0yLjcyNmE2LjE5Myw2LjE5MywwLDAsMSwuOTU2LTEuNzU0Yy40NC0uNDkxLjkyNi0uNjU1LDEuMDQzLS40NTVhOS4wNjIsOS4wNjIsMCwwLDEtLjcxMSwyLjU5M1ptNC44NTMsMi4zMjJjLS4xMTguMDYxLS4yMy4xLS4yODEuMDcyLS4wMzYtLjAyLjA1MS0uMS4wNTEtLjFzLjYwOS0uNjU1Ljg0OS0uOTUxYy4xMzgtLjE3NC4zLS4zNzguNDc2LS42MDlWMjAuN2MwLC43ODItLjc1NywxLjMwOS0xLjA5NCwxLjUyNFptMy43NDQtLjg1NGMtLjA4Ny0uMDYxLS4wNzItLjI2Ni4yMi0uOTA1YTMuNDA4LDMuNDA4LDAsMCwxLC44MzQtMS4wNzQsMS40NDgsMS40NDgsMCwwLDEsLjA4Mi40NzEsMS41NDcsMS41NDcsMCwwLDEtMS4xMzUsMS41MDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2Q2Nzk5XFxcIi8+XCIsXG5cdFwiU2FzcyAoU0NTUylcIjogXCI8cGF0aCBkPVxcXCJNMTYuMTcxLDE4LjdjLS40ODEuMjIxLTEuMDA4LjUwOS0yLjA2MywxLjA4OC0uNC4yMjUtLjgxOC40NS0xLjIwNy42NjItLjAyNy0uMDI3LS4wNTUtLjA2MS0uMDgyLS4wODktMi4wODctMi4yMy01Ljk0Ny0zLjgwNS01Ljc4My02LjguMDYxLTEuMDkxLjQzNi0zLjk1NSw3LjQxMy03LjQzMyw1Ljc0Mi0yLjgzLDEwLjMxMS0yLjA0NiwxMS4xLS4zMDdDMjYuNjgzLDguMywyMy4xLDEyLjkxMywxNy4xNywxMy41ODJhNC40NjksNC40NjksMCwwLDEtMy43NTEtLjk0OGMtLjMxNC0uMzQxLS4zNjEtLjM2MS0uNDc3LS4yOTMtLjE5MS4xLS4wNjguNDA5LDAsLjU4NmEzLjUsMy41LDAsMCwwLDIuMTQxLDEuNjg0LDExLjQsMTEuNCwwLDAsMCw2Ljk1Ni0uNjg5YzMuNTk0LTEuMzkxLDYuNC01LjI1OCw1LjU3OC04LjUtLjgyNS0zLjI4Ny02LjI4MS00LjM3MS0xMS40NDMtMi41MzdhMjYsMjYsMCwwLDAtOC43OSw1LjA0N2MtMi44NDQsMi42Ni0zLjI5NCw0Ljk3Mi0zLjExLDUuOTQuNjYyLDMuNDM3LDUuNCw1LjY3NCw3LjMsNy4zMzEtLjEuMDU1LS4xODQuMS0uMjU5LjE0My0uOTQ4LjQ3MS00LjU2MiwyLjM2LTUuNDYzLDQuMzU4LTEuMDIzLDIuMjY0LjE2NCwzLjg4Ny45NDgsNC4xMDVhNS44MzIsNS44MzIsMCwwLDAsNi4yODEtMi41NDQsNi4zLDYuMywwLDAsMCwuNTU5LTUuOCw1LjAzLDUuMDMsMCwwLDEsLjcxNi0uNDc3Yy40ODQtLjI4Ni45NDUtLjU2OCwxLjM1NC0uNzg2bDAsMGExMC40NzUsMTAuNDc1LDAsMCwxLDQuNDc1LS45ODljMy4yNDYuMzgyLDMuODg3LDIuNDA3LDMuNzY0LDMuMjZhMi4xNTcsMi4xNTcsMCwwLDEtMS4wMywxLjQ1OWMtLjIyNS4xNDMtLjMuMTkxLS4yOC4yOTMuMDI3LjE1LjEzNi4xNDMuMzI3LjExNmEyLjUzNSwyLjUzNSwwLDAsMCwxLjc2Ni0yLjI1N2MuMS0yLTEuODA3LTQuMTk0LTUuMTgzLTQuMTc0YTcuNzUzLDcuNzUzLDAsMCwwLTIuOTQ2LjU4N3EtLjIyNS4wOTMtLjQzNy4yWm0tNC44MjUsNy44MzljLTEuMDc4LDEuMTczLTIuNTc4LDEuNjE2LTMuMjI2LDEuMjQxLS43LS40LS40MjMtMi4xMzUuOS0zLjM3NmExNy4xOCwxNy4xOCwwLDAsMSwyLjUzLTEuODg5Yy4xNTctLjEuMzg5LS4yMzIuNjY4LS40LjA0OC0uMDI3LjA3NS0uMDQxLjA3NS0uMDQxbC4xNjQtLjFBNC42NTgsNC42NTgsMCwwLDEsMTEuMzQ2LDI2LjUzOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZDY3OTlcXFwiLz5cIixcblx0XCJTY2FsYVwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0xMzQuOTA3XFxcIiB5MT1cXFwiMjA0LjU3MlxcXCIgeDI9XFxcIi0xMzQuODk2XFxcIiB5Mj1cXFwiMjA0LjU3MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxNTM4LCAwLCAwLCAtOTYxLjI1LCAyMDc0OTUsIDE5NjY2MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNjJkMmFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2RmM2YzZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGYzZjNkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTYyZDJhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMTM0LjkwN1xcXCIgeTE9XFxcIjIwMy43ODFcXFwiIHgyPVxcXCItMTM0Ljg5NlxcXCIgeTI9XFxcIjIwMy43ODFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTUzOCwgMCwgMCwgLTk2MS4yNSwgMjA3NDk1LCAxOTU4OTIpXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi0xMzQuOTA3XFxcIiB5MT1cXFwiMjA1LjM2M1xcXCIgeDI9XFxcIi0xMzQuODk2XFxcIiB5Mj1cXFwiMjA1LjM2M1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxNTM4LCAwLCAwLCAtOTYxLjI1LCAyMDc0OTUsIDE5NzQzMClcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfc2NhbGE8L3RpdGxlPjxwYXRoIGQ9XFxcIk03LjM4NCwxOS4yMzF2Mi4xNTRjMCwuMzYzLDcuODMzLjk3MSwxMi45MzcsMi4xNTQsMi40NjUtLjU3MSw0LjI5NS0xLjI3Nyw0LjI5NS0yLjE1NFYxOS4yMzFjMC0uODc3LTEuODMtMS41ODItNC4yOTUtMi4xNTQtNS4xLDEuMTgzLTEyLjkzNywxLjc5MS0xMi45MzcsMi4xNTRcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZjBjMWRcXFwiLz48cGF0aCBkPVxcXCJNNy4zODQsMTAuNjE1djIuMTU0YzAsLjM2Myw3LjgzMy45NzEsMTIuOTM3LDIuMTU0LDIuNDY1LS41NzEsNC4yOTUtMS4yNzcsNC4yOTUtMi4xNTRWMTAuNjE1YzAtLjg3Ny0xLjgzLTEuNTgyLTQuMjk1LTIuMTU0LTUuMSwxLjE4My0xMi45MzcsMS43OTEtMTIuOTM3LDIuMTU0XFxcIiBzdHlsZT1cXFwiZmlsbDojN2YwYzFkXFxcIi8+PHBhdGggZD1cXFwiTTcuMzg0LDE0LjkyM3Y2LjQ2MmMwLS41MzgsMTcuMjMyLTEuNjE1LDE3LjIzMi00LjMwOFYxMC42MTVjMCwyLjY5Mi0xNy4yMzIsMy43NjktMTcuMjMyLDQuMzA4XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTcuMzg0LDYuMzA4VjEyLjc3YzAtLjUzOCwxNy4yMzItMS42MTUsMTcuMjMyLTQuMzA4VjJjMCwyLjY5Mi0xNy4yMzIsMy43NjktMTcuMjMyLDQuMzA4XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTcuMzg0LDIzLjUzOFYzMGMwLS41MzgsMTcuMjMyLTEuNjE1LDE3LjIzMi00LjMwOFYxOS4yMzFjMCwyLjY5Mi0xNy4yMzIsMy43NjktMTcuMjMyLDQuMzA4XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+XCIsXG5cdFwiU2hlbGwgc2Vzc2lvblwiOiBcIjxwYXRoIGQ9XFxcIk0yOS40LDI3LjZIMi41VjQuNUgyOS40Wm0tMjUuOS0xSDI4LjRWNS41SDMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuMDc3IDE5LjMxNiA1LjUyMiAxOC40ODQgMTAuMzY2IDE1LjI1NSA1LjQ3OSAxMS4xODQgNi4xMiAxMC40MTYgMTIuMDM1IDE1LjM0NCA2LjA3NyAxOS4zMTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIxMi43XFxcIiB5PVxcXCIxOC4yXFxcIiB3aWR0aD1cXFwiNy44XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjUuNVxcXCIgd2lkdGg9XFxcIjI2LjlcXFwiIGhlaWdodD1cXFwiMS45XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+XCIsXG5cdFwiU2hlbGxcIjogXCI8cGF0aCBkPVxcXCJNMjkuNCwyNy42SDIuNVY0LjVIMjkuNFptLTI1LjktMUgyOC40VjUuNUgzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjA3NyAxOS4zMTYgNS41MjIgMTguNDg0IDEwLjM2NiAxNS4yNTUgNS40NzkgMTEuMTg0IDYuMTIgMTAuNDE2IDEyLjAzNSAxNS4zNDQgNi4wNzcgMTkuMzE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMTIuN1xcXCIgeT1cXFwiMTguMlxcXCIgd2lkdGg9XFxcIjcuOFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI1LjVcXFwiIHdpZHRoPVxcXCIyNi45XFxcIiBoZWlnaHQ9XFxcIjEuOVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPlwiLFxuXHRcIlNtYXJ0eVwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjEzLjg1OVxcXCIgeTE9XFxcIjI5LjIxOVxcXCIgeDI9XFxcIjE4LjEwNlxcXCIgeTI9XFxcIjI5LjIxOVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMzRcXFwiIHN0b3AtY29sb3I9XFxcIiM2MzYzNjFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTc4XFxcIiBzdG9wLWNvbG9yPVxcXCIjNmM2ZDcwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzZmNzE3NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zMDlcXFwiIHN0b3AtY29sb3I9XFxcIiM2MTYzNjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDgxXFxcIiBzdG9wLWNvbG9yPVxcXCIjM2MzZDNmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxNlxcXCIgc3RvcC1jb2xvcj1cXFwiIzAxMDEwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM2MzZhNmVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjE1LjE3OFxcXCIgeTE9XFxcIjI5LjczNFxcXCIgeDI9XFxcIjE2Ljc4N1xcXCIgeTI9XFxcIjI5LjczNFxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCIxNS4yNzdcXFwiIHkxPVxcXCIyOS44ODFcXFwiIHgyPVxcXCIxNi42ODhcXFwiIHkyPVxcXCIyOS44ODFcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWI5Yjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjEzMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E0YTVhN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhZWIxYjhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzUyXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWZhNGFiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjYwNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzc4ODE4OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2NTcwNzZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM4Yjk0OWFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZFxcXCIgY3g9XFxcIi04LjQ1NlxcXCIgY3k9XFxcIi0xNi42MTZcXFwiIHI9XFxcIjE5LjM4M1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgzNC4wNDIgMzcuMDYzKSBzY2FsZSgxLjA1NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNzA3MDZlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjExMlxcXCIgc3RvcC1jb2xvcj1cXFwiIzYxNjI2MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiM0NjQ3NGFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA4XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDg0OTRjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzRlNTA1M1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NDRcXFwiIHN0b3AtY29sb3I9XFxcIiM1YTVjNWZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTkyXFxcIiBzdG9wLWNvbG9yPVxcXCIjNmE2ZTcxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjYzM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzdmODU4OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42NjdcXFwiIHN0b3AtY29sb3I9XFxcIiM5NzllYTFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjM2Q0NDQ3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjU2YzcwXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCIxNi4xMjZcXFwiIHkxPVxcXCIyOC4xMDhcXFwiIHgyPVxcXCIxNi4wNVxcXCIgeTI9XFxcIjI2Ljg5M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMzRcXFwiIHN0b3AtY29sb3I9XFxcIiM5YjliOThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTVhNmE3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIxOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2JhYmNjNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zMTFcXFwiIHN0b3AtY29sb3I9XFxcIiNhYmFlYjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDg3XFxcIiBzdG9wLWNvbG9yPVxcXCIjODQ4OThmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzQ4NTA1NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzhiOTQ5YVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmXFxcIiB4MT1cXFwiMTYuMDEzXFxcIiB5MT1cXFwiMjYuNTQyXFxcIiB4Mj1cXFwiMTUuODk1XFxcIiB5Mj1cXFwiMjQuNjM1XFxcIiB4bGluazpocmVmPVxcXCIjZVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIjE2LjAyM1xcXCIgeTE9XFxcIjI1LjU0NlxcXCIgeDI9XFxcIjE1Ljg4N1xcXCIgeTI9XFxcIjIzLjM1NVxcXCIgeGxpbms6aHJlZj1cXFwiI2VcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImhcXFwiIHgxPVxcXCIxNi4wMTNcXFwiIHkxPVxcXCIyNy42MjdcXFwiIHgyPVxcXCIxNS44OTVcXFwiIHkyPVxcXCIyNS43MlxcXCIgeGxpbms6aHJlZj1cXFwiI2VcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCIxMy42OFxcXCIgeTE9XFxcIjI4LjgwNVxcXCIgeDI9XFxcIjE4LjI4NFxcXCIgeTI9XFxcIjI4LjgwNVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMzRcXFwiIHN0b3AtY29sb3I9XFxcIiM1NDU0NTNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDcxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjE2MjYyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE0M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODU4OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhZWIxYjhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzUyXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWZhNGFiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjYwNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzc4ODE4OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2NTcwNzZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM1MDU2NTlcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwia1xcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI1LjgxM1xcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI1LjgxM1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U1ZTFkZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RkZGFkNlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wMzhcXFwiIHN0b3AtY29sb3I9XFxcIiNjZWNjYzlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTEyXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTdhOWE4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIxMlxcXCIgc3RvcC1jb2xvcj1cXFwiIzY5NzA3MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNjRcXFwiIHN0b3AtY29sb3I9XFxcIiM0NjUwNTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzAzXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2YzZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM5OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1YWFhY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NzhcXFwiIHN0b3AtY29sb3I9XFxcIiNkNWQ3ZDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTM5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZjNmNGY1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU3M1xcXCIgc3RvcC1jb2xvcj1cXFwiI2ZlZmVmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MlxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y0ZjVmNlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42OTlcXFwiIHN0b3AtY29sb3I9XFxcIiNkYWRjZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2IwYjRiOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44NzZcXFwiIHN0b3AtY29sb3I9XFxcIiM4YjkyOThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNkMWQzZDRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhN2E5YWNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwibFxcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI0LjcyOFxcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI0LjcyOFxcXCIgeGxpbms6aHJlZj1cXFwiI2tcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcIm1cXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyMy41NDhcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyMy41NDhcXFwiIHhsaW5rOmhyZWY9XFxcIiNrXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJuXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjYuODk4XFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjYuODk4XFxcIiB4bGluazpocmVmPVxcXCIja1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwib1xcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI1Ljk2N1xcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI1Ljk2N1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U1ZTFkZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RkZThkMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2QyZjNiYVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wMzZcXFwiIHN0b3AtY29sb3I9XFxcIiNjNWU0YjFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTRiZDk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE5OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzZlN2Y3MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNjRcXFwiIHN0b3AtY29sb3I9XFxcIiM0NjUwNTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzAzXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2YzZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM5OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1YWFhY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NzhcXFwiIHN0b3AtY29sb3I9XFxcIiNkNWQ3ZDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTM5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZjNmNGY1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU3M1xcXCIgc3RvcC1jb2xvcj1cXFwiI2ZlZmVmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MlxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y0ZjVmNlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42OTlcXFwiIHN0b3AtY29sb3I9XFxcIiNkYWRjZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2IwYjRiOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44NzZcXFwiIHN0b3AtY29sb3I9XFxcIiM4YjkyOThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNkMWQzZDRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhN2E5YWNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwicFxcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI0Ljg4M1xcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI0Ljg4M1xcXCIgeGxpbms6aHJlZj1cXFwiI29cXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcInFcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNy4wNVxcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI3LjA1XFxcIiB4bGluazpocmVmPVxcXCIjb1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiclxcXCIgeDE9XFxcIjExLjkwMlxcXCIgeTE9XFxcIjIzLjIwMVxcXCIgeDI9XFxcIjE5Ljg4NFxcXCIgeTI9XFxcIjIzLjIwMVxcXCIgeGxpbms6aHJlZj1cXFwiI2VcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcInNcXFwiIGN4PVxcXCItMTYuOTgzXFxcIiBjeT1cXFwiLTIyLjk0OFxcXCIgcj1cXFwiMTAuNzE4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDM0LjA0MiAzNy4wNjMpIHNjYWxlKDEuMDU0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZmZkMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41MDVcXFwiIHN0b3AtY29sb3I9XFxcIiNmZjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTY4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmRmNzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY2NFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y2ZTIwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43ODJcXFwiIHN0b3AtY29sb3I9XFxcIiNlYmJmMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTA2XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGU5MjAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGE5ODE5XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zbWFydHk8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xMy44NTksMjguNzc2YS4yNDIuMjQyLDAsMCwwLC4xMjguMTkxLDEyLDEyLDAsMCwwLDEuMzkyLjYyMiw0LjMsNC4zLDAsMCwwLC41NzguMDcyaC4wNTJhNC4zLDQuMywwLDAsMCwuNTc4LS4wNzIsMTIuMDE0LDEyLjAxNCwwLDAsMCwxLjM5Mi0uNjIyLjI0My4yNDMsMCwwLDAsLjEyOC0uMTkxbC0yLjEzNy4xOTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAxNCwzMGExLjEyMywxLjEyMywwLDAsMCwuNjg4LS4yNDcuMTc1LjE3NSwwLDAsMCwuMDg1LS4xMjZ2LS4xMDVhMy4yMzUsMy4yMzUsMCwwLDAtLjc3My0uMDUzaC0uMDYzYTMuMjM3LDMuMjM3LDAsMCwwLS43NzMuMDUzdi4xMDVhLjE3NS4xNzUsMCwwLDAsLjA4NS4xMjYsMS4xMjIsMS4xMjIsMCwwLDAsLjY4OC4yNDdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE1Ljk1MSwyOS44MDdhNC43MzIsNC43MzIsMCwwLDEtLjY3NC0uMDQ0LDEuMTA1LDEuMTA1LDAsMCwwLC42NzQuMjM3aC4wNjNhMS4xMDYsMS4xMDYsMCwwLDAsLjY3NS0uMjM3LDQuNzMzLDQuNzMzLDAsMCwxLS42NzUuMDQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44MDksMjYuODM4YTEsMSwwLDAsMC0uMjM0LjM4OWMtLjAzNi4xODEtLjEuNTg1LTEuMzI2LDEuNDA2bC0uMDI1LjAxN2EuNDM1LjQzNSwwLDAsMS0uMDg2LjAzNyw5Ljk2OCw5Ljk2OCwwLDAsMS0yLjE1NS4yMDksOS45NjgsOS45NjgsMCwwLDEtMi4xNTYtLjIwOS40MzYuNDM2LDAsMCwxLS4wODUtLjAzNmwtLjAyNS0uMDE3YTQuNTc5LDQuNTc5LDAsMCwxLTEuMTItLjk1N2MtLjE2NC0uMjE5LS4zNzMtLjI1Ny0uMzktLjM0NWEyMS4wNTUsMjEuMDU1LDAsMCwwLDMuODU1LjA1NywxMy4wNDksMTMuMDQ5LDAsMCwwLDMuNzYxLS42NTRBLjY5Mi42OTIsMCwwLDEsMTkuODA5LDI2LjgzOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMTkuNzcyLDI2Ljg4YS45ODUuOTg1LDAsMCwxLS4yNDYuMTI5Yy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNSwyNS4xNSwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOGExLjA2MiwxLjA2MiwwLDAsMS0uMTQtLjAyOCwxLjAxNiwxLjAxNiwwLDAsMSwuMTQuMTA3Yy4xNi4wMTMuMzE5LjAxOS4zMTkuMDE5YTI2Ljg2NCwyNi44NjQsMCwwLDAsNi43NDMtLjMyM2wuMDA5LS4wNDJBLjg4NS44ODUsMCwwLDEsMTkuNzcyLDI2Ljg4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS40MzksMjUuMzgycy4yNDUtLjA3LjI0NS0uMTYyYS4xMTQuMTE0LDAsMCwwLS4wMTMtLjA2NS4yMTQuMjE0LDAsMCwxLS4wNjEtLjE0NC40MzcuNDM3LDAsMCwxLC4xMTktLjI3LDEuMDY5LDEuMDY5LDAsMCwxLS4yLjFjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE1MSwyNS4xNTEsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNTUsMS4wNTUsMCwwLDEtLjE4MS0uMDQxLjM3Ny4zNzcsMCwwLDEsLjA3OC4yMTcuNzE2LjcxNiwwLDAsMS0uMjU0LjQzMi42NzMuNjczLDAsMCwxLC4zNjgtLjA3OUEyNi4yLDI2LjIsMCwwLDAsMTkuNDM5LDI1LjM4MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI0LjIyOXMuMjQ1LS4wNzguMjQ1LS4xODJhLjE0My4xNDMsMCwwLDAtLjAxMy0uMDczLjI1NC4yNTQsMCwwLDEtLjA2MS0uMTYyLjUxNC41MTQsMCwwLDEsLjExOS0uMywxLjAyNiwxLjAyNiwwLDAsMS0uMi4xMTFjLS4wNzYuMDMyLS4yNDUuMDg4LS4yNDUuMDg4YTIyLjUwNywyMi41MDcsMCwwLDEtNi40NTguNDg5Yy0uMTM2LS4wMS0uMzItLjAzMi0uMzItLjAzMmEuOTUzLjk1MywwLDAsMS0uMTgxLS4wNDYuNDU1LjQ1NSwwLDAsMSwuMDc4LjI0My44MjUuODI1LDAsMCwxLS4yNTQuNDg0LjYxNC42MTQsMCwwLDEsLjM2OC0uMDg5QzEzLjAxNCwyNC43NTgsMTYuOTM1LDI1LjA0MSwxOS40MzksMjQuMjI5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS40MzksMjYuNDY3cy4yNDUtLjA3LjI0NS0uMTYzYS4xMTUuMTE1LDAsMCwwLS4wMTMtLjA2NS4yMTQuMjE0LDAsMCwxLS4wNjEtLjE0NC40MzUuNDM1LDAsMCwxLC4xMTktLjI3LDEuMDcsMS4wNywwLDAsMS0uMi4xYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNjIsMjUuMTYyLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4YTEuMDQyLDEuMDQyLDAsMCwxLS4xODEtLjA0MS4zNzcuMzc3LDAsMCwxLC4wNzguMjE3LjcxNy43MTcsMCwwLDEtLjI1NC40MzIuNjcuNjcsMCwwLDEsLjM2OC0uMDc5QTI2LjIwNywyNi4yMDcsMCwwLDAsMTkuNDM5LDI2LjQ2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI2LjQ2N3MuMjQ1LS4wNy4yNDUtLjE2M2EuMTE1LjExNSwwLDAsMC0uMDEzLS4wNjUuMjE0LjIxNCwwLDAsMS0uMDYxLS4xNDQuNDM1LjQzNSwwLDAsMSwuMTE5LS4yNywxLjA3LDEuMDcsMCwwLDEtLjIuMWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTY4LDI1LjE2OCwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOGExLjA0MiwxLjA0MiwwLDAsMS0uMTgxLS4wNDEuMzc2LjM3NiwwLDAsMSwuMDc4LjIxNy43MTcuNzE3LDAsMCwxLS4yNTQuNDMyLjY3LjY3LDAsMCwxLC4zNjgtLjA3OUEyNi4yMDcsMjYuMjA3LDAsMCwwLDE5LjQzOSwyNi40NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTE4LjIyNCwyOC42NWEuNDM1LjQzNSwwLDAsMS0uMDg2LjAzNyw5Ljk2OCw5Ljk2OCwwLDAsMS0yLjE1NS4yMDksOS45NjgsOS45NjgsMCwwLDEtMi4xNTYtLjIwOS40MzYuNDM2LDAsMCwxLS4wODUtLjAzNmwtLjAyNS0uMDE3LS4wMjktLjAxOWEuMTEyLjExMiwwLDAsMCwwLC4wNzNjLjAyNC4wNzMuMTQ3LjEuMTQ3LjFhOS45NDMsOS45NDMsMCwwLDAsMi4xNS4yMDksOS45NDIsOS45NDIsMCwwLDAsMi4xNS0uMjA5cy4xMjYtLjAyOS4xNDctLjFhLjExOC4xMTgsMCwwLDAsMC0uMDczbC0uMDI5LjAxOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQ0LDI1LjVzLjA0MS4yNTItLjQxOC40MjNjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE2MiwyNS4xNjIsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjgtLjI3Ni0uMDM4LS40NjctLjE2LS40NTUtLjMwOCwwLDAtLjAzMy0uMjQ5LjQ2Ni0uMjQ5YTI2LjIsMjYuMiwwLDAsMCw2LjkyNS0uNDcycy4yNDUtLjA3LjI0NS0uMTYyYS4xMTEuMTExLDAsMCwwLS4wMTMtLjA2NlMxOS45NDQsMjUuMzEyLDE5Ljk0NCwyNS41WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNrKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45NDQsMjQuNDE2cy4wNDEuMjUyLS40MTguNDIzYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNTEsMjUuMTUxLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4LS4yNzYtLjAzOC0uNDY3LS4xNi0uNDU1LS4zMDgsMCwwLS4wMzMtLjI0OC40NjYtLjI0OGEyNi4xOTMsMjYuMTkzLDAsMCwwLDYuOTI1LS40NzJzLjI0NS0uMDcuMjQ1LS4xNjJhLjExLjExLDAsMCwwLS4wMTMtLjA2NVMxOS45NDQsMjQuMjI3LDE5Ljk0NCwyNC40MTZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2wpXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyNC40MDZ2LS4wMjFjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI2LS4yNDUuMDczLS4yNDUuMDczYTIyLjM3MiwyMi4zNzIsMCwwLDEtNS4xLjVoMGEyMi4xNTUsMjIuMTU1LDAsMCwwLDUuMS0uNDQxcy4xNjktLjA0Ny4yNDUtLjA3M0MxOS45MzMsMjQuNjQzLDE5Ljg5MywyNC40MDYsMTkuODkzLDI0LjQwNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuODkzLDI1LjQ5MVYyNS40N2MtLjAxMi4wNzYtLjA3OC4yMzYtLjQxNy4zNTUtLjA3Ni4wMjctLjI0NS4wNzMtLjI0NS4wNzNhMjIuMzgsMjIuMzgsMCwwLDEtNS4xLjVoMGEyMi4xNzEsMjIuMTcxLDAsMCwwLDUuMS0uNDQxcy4xNjktLjA0Ny4yNDUtLjA3M0MxOS45MzMsMjUuNzI4LDE5Ljg5MywyNS40OTEsMTkuODkzLDI1LjQ5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQ0LDIzLjAzNHMuMDQxLjMyOS0uNDE4LjU1MmMtLjA3Ni4wMzctLjI0NS4xLS4yNDUuMWExOS40MDksMTkuNDA5LDAsMCwxLTYuNDU4LjU2OWMtLjEzNi0uMDEyLS4zMi0uMDM3LS4zMi0uMDM3LS4yNzYtLjA1LS40NjctLjIwOS0uNDU1LS40LDAsMC0uMDMzLS4zMjQuNDY2LS4zMjRhMTguMjgzLDE4LjI4MywwLDAsMCw2LjkyNS0uNDYxLDEuMDE0LDEuMDE0LDAsMCwwLC40NDQtLjIzOEEuNTMuNTMsMCwwLDEsMTkuOTQ0LDIzLjAzNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQ0LDI2LjU4NnMuMDQxLjI1Mi0uNDE4LjQyM2MtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUsMjUuMTUsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjgtLjI3Ni0uMDM4LS40NjctLjE2LS40NTUtLjMwOCwwLDAtLjAzMy0uMjQ4LjQ2Ni0uMjQ4YTI2LjIwNywyNi4yMDcsMCwwLDAsNi45MjUtLjQ3MnMuMjQ1LS4wNy4yNDUtLjE2M2EuMTExLjExMSwwLDAsMC0uMDEzLS4wNjVTMTkuOTQ0LDI2LjQsMTkuOTQ0LDI2LjU4NlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbilcXFwiLz48cGF0aCBkPVxcXCJNMTkuODkzLDI2LjU3NnYtLjAyMWMtLjAxMi4wNzYtLjA3OC4yMzYtLjQxNy4zNTUtLjA3Ni4wMjYtLjI0NS4wNzMtLjI0NS4wNzNhMjIuMzcyLDIyLjM3MiwwLDAsMS01LjEuNWgwYTIyLjE2MywyMi4xNjMsMCwwLDAsNS4xLS40NDFzLjE2OS0uMDQ3LjI0NS0uMDczQzE5LjkzMywyNi44MTMsMTkuODkzLDI2LjU3NiwxOS44OTMsMjYuNTc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44OTMsMjMuMzIxVjIzLjNjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI3LS4yNDUuMDczLS4yNDUuMDczYTIyLjM3MiwyMi4zNzIsMCwwLDEtNS4xLjVoMGEyMi4xNTYsMjIuMTU2LDAsMCwwLDUuMS0uNDQxcy4xNjktLjA0Ny4yNDUtLjA3M0MxOS45MzMsMjMuNTU4LDE5Ljg5MywyMy4zMjEsMTkuODkzLDIzLjMyMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTIuNDE3LDI1Ljg4MXMtLjIzNiwwLS4yNDEuMDguMjQ2LjA4NS4yNDYuMDg1LjE3NSwwLC4zLjAwNWMuNjE5LS4wMTMsMS45OTMtLjAzOCwzLjQzNy0uMTY2QzE0LjM4NCwyNS45NTgsMTIuNzIzLDI1Ljg4MywxMi40MTcsMjUuODgxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNvKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40MTcsMjQuOHMtLjIzNiwwLS4yNDEuMDguMjQ2LjA4NS4yNDYuMDg1LjE3NSwwLC4zLjAwNWMuNjE5LS4wMTIsMS45OTMtLjAzOCwzLjQzNy0uMTY2QzE0LjM4NCwyNC44NzQsMTIuNzIzLDI0LjgsMTIuNDE3LDI0LjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3ApXFxcIi8+PHBhdGggZD1cXFwiTTEyLjQxNywyNi45NjVzLS4yMzYsMC0uMjQxLjA4LjI0Ni4wODUuMjQ2LjA4NS4xNzUsMCwuMy4wMDVjLjYxOS0uMDEyLDEuOTkzLS4wMzgsMy40MzctLjE2NkMxNC4zODQsMjcuMDQyLDEyLjcyMywyNi45NjYsMTIuNDE3LDI2Ljk2NVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcSlcXFwiLz48cGF0aCBkPVxcXCJNMTEuOTY1LDIyLjc3OXMtLjI3NC4zMTUuMzE5LjcxMWMwLDAsNS43NzUuNTg3LDcuNi0uNjk1QzE5Ljg4NCwyMi43OTUsMTMuNjIzLDIzLjMyLDExLjk2NSwyMi43NzlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3IpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjAzNSwyMi43NzlhNC40NDksNC40NDksMCwwLDAsLjgxLTEuMTU1LDMuMzg2LDMuMzg2LDAsMCwwLC4yLTEuMTE1LDYuNzMzLDYuNzMzLDAsMCwxLC42MzItMi45MWMuNTM0LTEuMDE0LDIuODEtNC40NDcsMi44MS03LjQ2MkE4LjAxMiw4LjAxMiwwLDAsMCwxNiwyYTguMDEyLDguMDEyLDAsMCwwLTguNDgzLDguMTM2YzAsMy4wMTUsMi4yNzYsNi40NDgsMi44MSw3LjQ2MmE2LjczMSw2LjczMSwwLDAsMSwuNjMyLDIuOTEsMy4zODQsMy4zODQsMCwwLDAsLjIsMS4xMTUsNC40NTMsNC40NTMsMCwwLDAsLjgxLDEuMTU1LDEzLjg2NiwxMy44NjYsMCwwLDAsMy45ODcuMzdBMTUuMTUxLDE1LjE1MSwwLDAsMCwyMC4wMzUsMjIuNzc5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNzKVxcXCIvPlwiLFxuXHRcIlNvbGlkaXR5IChFdGhlcmV1bSlcIjogXCI8cGF0aCBkPVxcXCJNMjAuNDc3LDJsLTQuNSw4aC05bDQuNS04aDlcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjQ1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTExLjUyLDMwbDQuNS04aDlsLTQuNSw4aC05XFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC40NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45NzUsMTBoOWwtNC41LThoLTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC42O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAyMiwyMmgtOWw0LjUsOGg5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNjtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS40NzcsMThsNC41LTgtNC41LTgtNC41LDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC44O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUyLDE0bC00LjUsOCw0LjUsOCw0LjUtOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjg7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz5cIixcblx0XCJTb2x1dGlvbiBmaWxlXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTZcXFwiIHkxPVxcXCItMTgyLjA3MlxcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiLTIwOS45MjhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIC0xODApXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3NsbjwvdGl0bGU+PHBhdGggZD1cXFwiTTYuMDQ1LDIzLjk5MWExLjE2NiwxLjE2NiwwLDAsMS0xLjIwOC4xOTFMMi43MTgsMjMuM0ExLjE2OCwxLjE2OCwwLDAsMSwyLDIyLjIyMlY5Ljc3OEExLjE2NSwxLjE2NSwwLDAsMSwyLjcxOCw4LjdsMi4xMTktLjg4M2ExLjE2OSwxLjE2OSwwLDAsMSwxLjIwOC4xOTFsLjQ3Ni40MDhBLjY0Ni42NDYsMCwwLDAsNS41LDguOTQyVjIzLjA1OGEuNjQ2LjY0NiwwLDAsMCwxLjAyMS41MjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTIyMThhXFxcIi8+PHBhdGggZD1cXFwiTTIuNzE4LDIzLjNBMS4xNjksMS4xNjksMCwwLDEsMiwyMi4yMjJ2LS4xYS42NzQuNjc0LDAsMCwwLDEuMTc0LjQ1MkwyMS4yNSwyLjU4M2ExLjc0MywxLjc0MywwLDAsMSwxLjk5LS4zMzhsNS43NjksMi43NzhBMS43NDksMS43NDksMCwwLDEsMzAsNi42di4wNjdhMS4xLDEuMSwwLDAsMC0xLjgtLjg1NEw2LjUyMSwyMy41ODNsLS40NzYuNDA4YTEuMTY2LDEuMTY2LDAsMCwxLTEuMjA4LjE5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2YzMzYWZcXFwiLz48cGF0aCBkPVxcXCJNMi43MTgsOC43QTEuMTY4LDEuMTY4LDAsMCwwLDIsOS43Nzh2LjFhLjY3NC42NzQsMCwwLDEsMS4xNzQtLjQ1MkwyMS4yNSwyOS40MTZhMS43NDMsMS43NDMsMCwwLDAsMS45OS4zMzhsNS43NjktMi43NzhBMS43NDcsMS43NDcsMCwwLDAsMzAsMjUuNHYtLjA2OGExLjEsMS4xLDAsMCwxLTEuOC44NTVMNi41MjEsOC40MTdsLS40NzYtLjQwOGExLjE2NiwxLjE2NiwwLDAsMC0xLjIwOC0uMTkxWlxcXCIgc3R5bGU9XFxcImZpbGw6Izg1NGNjN1xcXCIvPjxwYXRoIGQ9XFxcIk0yMy4yNCwyOS43NTVhMS43NDMsMS43NDMsMCwwLDEtMS45OS0uMzM4QTEuMDI1LDEuMDI1LDAsMCwwLDIzLDI4LjY5MlYzLjMwOGExLjAyNSwxLjAyNSwwLDAsMC0xLjc1LS43MjUsMS43NDMsMS43NDMsMCwwLDEsMS45OS0uMzM4bDUuNzY4LDIuNzc0QTEuNzQ5LDEuNzQ5LDAsMCwxLDMwLDYuNlYyNS40MDVhMS43NTEsMS43NTEsMCwwLDEtLjk5MSwxLjU3N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMTc5ZjFcXFwiLz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjI1XFxcIj48cGF0aCBkPVxcXCJNMjIuMDkzLDI5Ljg4M2ExLjc0LDEuNzQsMCwwLDAsMS4xNDctLjEyOGw1Ljc2OC0yLjc3NEExLjc0OSwxLjc0OSwwLDAsMCwzMCwyNS40VjYuNmExLjc1LDEuNzUsMCwwLDAtLjk5Mi0xLjU3N0wyMy4yNCwyLjI0NWExLjc0MiwxLjc0MiwwLDAsMC0xLjk5LjMzOWwtOS4zLDEwLjI4NEw2LjUyMSw4LjQxNmwtLjQ3Ni0uNDA4YTEuMTY4LDEuMTY4LDAsMCwwLTEuMjA3LS4xOTFMMi43MTksOC43QTEuMTY3LDEuMTY3LDAsMCwwLDIsOS42ODljMCwuMDI5LDAsLjA1OSwwLC4wODhWMjIuMjIxYzAsLjAzLDAsLjA1OSwwLC4wODhhMS4xNjcsMS4xNjcsMCwwLDAsLjcxNS45ODlsMi4xMTkuODgzYTEuMjI2LDEuMjI2LDAsMCwwLC4xNTUuMDUyLDEuMTY1LDEuMTY1LDAsMCwwLDEuMDUyLS4yNDNsLjQ3Ni0uNDA4LDUuNDMtNC40NTIsOS4zLDEwLjI4NUExLjczMywxLjczMywwLDAsMCwyMi4wOTMsMjkuODgzWk0yMywxMC4wNzIsMTUuNzcsMTYsMjMsMjEuOTI3Wk01LjUsMTJsMy42MTksNEw1LjUsMjBaXFxcIiBzdHlsZT1cXFwiZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI2EpXFxcIi8+PC9nPlwiLFxuXHRcIlNQQVJRTFwiOiBcIjxwYXRoIGQ9XFxcIk0yNi4yODQsMjAuMzYxYy0uMTY1LS4wODQtLjM1OS0uMTY0LS41MjMtLjI0OEgyNS45cy0xLjE1OC0uNS0xLjI0LTQuMTc2Yy0uMTExLTMuNjU1LDEuMS00LjI4OSwxLjEtNC4yODlhNC45Niw0Ljk2LDAsMCwwLDIuMTc2LTIuMTQzLDUuMTIyLDUuMTIyLDAsMCwwLTIuMTIyLTYuOTI3LDUuMzQyLDUuMzQyLDAsMCwwLTcuMTM4LDIuMTQ2LDUuMDY3LDUuMDY3LDAsMCwwLS41MjMsMy4yMTRMMTguMSw3Ljg1NXMuMywxLjMxOS0yLjgzOSwzLjI3MmMtMy4xMTUsMS45NS00LjU0OS45NjItNC41NDkuOTYybC4wODIuMTM4YTIuMTMxLDIuMTMxLDAsMCwwLS4yNzMtLjE2Nyw1LjExNyw1LjExNywwLDEsMCwuODI1LDguNTJsLS4wMjUuMDU1czEuMTI5LS45MzMsNC40MDcuODI3YzIuNTkyLDEuMzc0LDIuOTc5LDIuNzQ4LDMuMDMzLDMuMjRhNS4xLDUuMSwwLDAsMCwyLjcsNC43LDUuMTI0LDUuMTI0LDAsMSwwLDQuODI1LTkuMDQxWm0tNS43OS42ODVjLS40MTIuMTM4LTEuNi4zLTQuMDc3LTEuMDE3LTIuNy0xLjQ1NC0zLjExNS0yLjY2NC0zLjE2OS0zLjAyMWE1LjQwNiw1LjQwNiwwLDAsMC0uMDU3LTEuMzE5bC4wMjkuMDI2UzEzLDE0LjUzNCwxNi4wODQsMTIuNjM5YzIuNzU3LTEuNzA1LDQuMDI2LTEuMzc0LDQuMjQ1LTEuMjkzYTIuODMsMi44MywwLDAsMCwuNDcuMjc3LDQuMDgyLDQuMDgyLDAsMCwwLC45NjQuMzgzYy4zODcuMzU3LDEuMDc2LDEuMzc0LDEuMTU4LDQuMXMtLjcxNywzLjc2NC0xLjE1OCw0LjEyMUE1LjA0LDUuMDQsMCwwLDAsMjAuNDk0LDIxLjA0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwYzQ3OWNcXFwiLz48cGF0aCBkPVxcXCJNMjAuMTM1LDQuMjI5YTMuODYxLDMuODYxLDAsMCwwLS4wODIsNS4zODZjLS43MTctLjY4NS0uNjg4LTIuMTE3LjAyOS0zLjQ2MmEuNjczLjY3MywwLDAsMSwuNzQ2LS4yNzdjLjAyNSwwLC4wNTQuMDI5LjA4Mi4wMjlhLjk5My45OTMsMCwwLDAsLjI3Ni4wMjZBMS4wNTYsMS4wNTYsMCwwLDAsMjIuMiw0LjgwNWEuOTM0LjkzNCwwLDAsMC0uMy0uNjg1YzEuMzgtLjkwNywyLjk1LTEuMDE3LDMuNjEtLjQxMmguMDI5QTMuODI2LDMuODI2LDAsMCwwLDIwLjEzNSw0LjIyOVpNNS4xNDUsMTMuODQ2YTMuODU5LDMuODU5LDAsMCwwLS4wODIsNS4zODljLS43MTctLjY4OS0uNjkyLTIuMTE3LjAyNS0zLjQ2NWEuNjY4LjY2OCwwLDAsMSwuNzQ2LS4yNzNjLjAyNSwwLC4wNTQuMDI5LjA4Mi4wMjlhMSwxLDAsMCwwLC4yNzYuMDI2QTEuMDU2LDEuMDU2LDAsMCwwLDcuMjEsMTQuNDI1YS45NDUuOTQ1LDAsMCwwLS4zLS42ODljMS4zNzctLjkwNywyLjk0Ny0xLjAxNywzLjYxLS40MTJoLjAyNUEzLjg1MiwzLjg1MiwwLDAsMCw1LjE0NSwxMy44NDZabTE1Ljg3Miw4LjE2M2EzLjg2NSwzLjg2NSwwLDAsMC0uMDgyLDUuMzg5Yy0uNzE3LS42ODktLjY4OC0yLjExNy4wMjktMy40NjVhLjY2OC42NjgsMCwwLDEsLjc0Ni0uMjczYy4wMjUsMCwuMDU0LjAyNi4wODIuMDI2YS44ODcuODg3LDAsMCwwLC4yNzYuMDI5LDEuMDU3LDEuMDU3LDAsMCwwLDEuMDE4LTEuMTI2LjkzNi45MzYsMCwwLDAtLjMtLjY4OWMxLjM4LS45MDcsMi45NS0xLjAxNywzLjYxLS40MTJoLjAyOUEzLjgyOSwzLjgyOSwwLDAsMCwyMS4wMTcsMjIuMDA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlNRRlwiOiBcIjxwYXRoIGQ9XFxcIk0yNSwyMy41SDdhNS4wMTUsNS4wMTUsMCwwLDEtNS01di02YTUuMDE1LDUuMDE1LDAsMCwxLDUtNUgyNWE1LjAxNSw1LjAxNSwwLDAsMSw1LDV2NmE1LjAxNSw1LjAxNSwwLDAsMS01LDVaXFxcIi8+PHBhdGggZD1cXFwiTTcsMTkuNDYxYTQuODEsNC44MSwwLDAsMS0xLjQxNC0uMiw1LjA1Miw1LjA1MiwwLDAsMS0xLjExMS0uNDcybC0uNC40MzJoLS41TDMuNSwxNi4wNTJINGE4LjQ2Miw4LjQ2MiwwLDAsMCwuNDMxLjk1Myw0LjYzOCw0LjYzOCwwLDAsMCwuNjA2LjksMy4xNzcsMy4xNzcsMCwwLDAsLjguNjc1LDEuOTg1LDEuOTg1LDAsMCwwLDEuMDI5LjI2LDEuNjcyLDEuNjcyLDAsMCwwLDEuMjE2LS40MTFBMS4zODIsMS4zODIsMCwwLDAsOC41LDE3LjM5MWExLjE1NiwxLjE1NiwwLDAsMC0uMzU5LS44NjIsMi45NDUsMi45NDUsMCwwLDAtMS4xMTEtLjZxLS40OS0uMTY3LS45LS4zMXQtLjc3My0uMjkyYTIuNTgsMi41OCwwLDAsMS0xLjIzOS0xLjAwNywyLjczLDIuNzMsMCwwLDEtLjQwNS0xLjQ2NSwyLjQwNiwyLjQwNiwwLDAsMSwuMjEtLjk4NiwyLjYwOCwyLjYwOCwwLDAsMSwuNjEyLS44NSwyLjk2NywyLjk2NywwLDAsMSwuOTg1LS41NzUsMy43MjIsMy43MjIsMCwwLDEsMS4zMDYtLjIyMywzLjk4NCwzLjk4NCwwLDAsMSwxLjI4OC4yLDUuMTUxLDUuMTUxLDAsMCwxLC45NDQuNDA4bC4zNTYtLjM3aC41MDdsLjA0NywyLjk4OGgtLjVxLS4xNzUtLjQ4My0uNDExLS45ODdhNC4zMzIsNC4zMzIsMCwwLDAtLjUtLjgzOSwyLjMsMi4zLDAsMCwwLS42NTktLjU3MywxLjcyOSwxLjcyOSwwLDAsMC0uODc1LS4yMTRBMS40MzcsMS40MzcsMCwwLDAsNiwxMS4yMTJhMS4yMzMsMS4yMzMsMCwwLDAtLjQuOTM0LDEuMTQxLDEuMTQxLDAsMCwwLC4zNDcuODYsMi45NTEsMi45NTEsMCwwLDAsMS4wODIuNTg4cS40MzEuMTU0Ljg4LjMwOXQuOC4zYTIuODg1LDIuODg1LDAsMCwxLDEuMjg2Ljk1NSwyLjUxMiwyLjUxMiwwLDAsMSwuNDQsMS41MTIsMi42MzIsMi42MzIsMCwwLDEtLjkyNywxLjk4NSwzLjM2NywzLjM2NywwLDAsMS0xLjA3OS42QTQuMzkxLDQuMzkxLDAsMCwxLDcsMTkuNDYxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC45MjEsMTEuNDM0YTQuMzM4LDQuMzM4LDAsMCwxLC45NzEsMS40MzIsNC44MzQsNC44MzQsMCwwLDEsLjM1OSwxLjkxNCw0Ljk1OCw0Ljk1OCwwLDAsMS0uNzIsMi42OCw0LjAzNiw0LjAzNiwwLDAsMS0yLjAzOCwxLjY2MSwyLjE1MSwyLjE1MSwwLDAsMCwuNDIsMS4yNzIsMS4xNjgsMS4xNjgsMCwwLDAsLjk1LjUzNywzLjU2MywzLjU2MywwLDAsMCwuNTkyLS4wNDNxLjI1NC0uMDQzLjQ1OC0uMXYuNTQzYTUuNzUzLDUuNzUzLDAsMCwxLS45ODUuMyw2LjA1NCw2LjA1NCwwLDAsMS0xLjM3LjE1MSwyLjIwNiwyLjIwNiwwLDAsMS0xLjYxMi0uNjIxLDIuNTc0LDIuNTc0LDAsMCwxLS43MDgtMS43MzJBNC41NzksNC41NzksMCwwLDEsMTMuNywxOWE0LjE4Niw0LjE4NiwwLDAsMS0xLjI1My0uOTMyLDQuMzg4LDQuMzg4LDAsMCwxLS44NDItMS4zNzcsNC43NjksNC43NjksMCwwLDEtLjMxMi0xLjc1Myw1LjIzNyw1LjIzNywwLDAsMSwuMzQ3LTEuOTQ4LDQuNSw0LjUsMCwwLDEsLjk1My0xLjUsNC4xMTksNC4xMTksMCwwLDEsMS40MjUtLjk0Miw0Ljg2LDQuODYsMCwwLDEsMy41LS4wMDlBNC4yNDcsNC4yNDcsMCwwLDEsMTguOTIxLDExLjQzNFptLTEuNSw2LjI2NmE0Ljg1Nyw0Ljg1NywwLDAsMCwuMzc5LTEuMjczLDkuOTgxLDkuOTgxLDAsMCwwLC4xMTctMS42MDYsMTAuNTM0LDEwLjUzNCwwLDAsMC0uMS0xLjQ4LDQuOTM2LDQuOTM2LDAsMCwwLS4zNDctMS4yODIsMi40MSwyLjQxLDAsMCwwLS42NjUtLjksMS41NzEsMS41NzEsMCwwLDAtMS4wMzItLjM0LDEuNzMsMS43MywwLDAsMC0xLjYsMS4wNiw2LjYzNCw2LjYzNCwwLDAsMC0uNTQ4LDIuOTkzLDkuNTgzLDkuNTgzLDAsMCwwLC4xMiwxLjU1MSw0LjgsNC44LDAsMCwwLC4zNzYsMS4yNzMsMi4yODYsMi4yODYsMCwwLDAsLjY2NS44NTYsMS41OTEsMS41OTEsMCwwLDAsLjk5MS4zMDYsMS42MTEsMS42MTEsMCwwLDAsLjk5MS0uMzA5QTIuMTM1LDIuMTM1LDAsMCwwLDE3LjQyMywxNy43WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC41LDEyLjhoLS40NTVhMy45MywzLjkzLDAsMCwwLS42LTEuMDg2LDEuMzg1LDEuMzg1LDAsMCwwLS44MTItLjYzYy0uMTE2LS4wMTYtLjI3Mi0uMDMxLS40NjUtLjA0M3MtLjM3My0uMDE5LS41MzUtLjAxOUgyNC4zNDl2My40MzNoLjgyMmExLjk2OSwxLjk2OSwwLDAsMCwuNjA2LS4wODMsMS4wNTQsMS4wNTQsMCwwLDAsLjQ1NS0uMywxLjU5MSwxLjU5MSwwLDAsMCwuMjgzLS41MTYsMi42MzUsMi42MzUsMCwwLDAsLjE2Ni0uNjIxaC40NDN2My42ODZoLS40NDNhMi40NzEsMi40NzEsMCwwLDAtLjE4MS0uNjc2LDIuMDk0LDIuMDk0LDAsMCwwLS4yNjgtLjUyOCwxLjAxMiwxLjAxMiwwLDAsMC0uNDMxLS4yOTMsMS44NDIsMS44NDIsMCwwLDAtLjYzLS4xaC0uODIydjIuOWEuODQyLjg0MiwwLDAsMCwuMDc5LjM4LjU4LjU4LDAsMCwwLC4zLjI1NiwxLjg3LDEuODcsMCwwLDAsLjM1My4xcS4yMjQuMDQ2LjQ0Ni4wNzF2LjQ4MmgtNC40NnYtLjQ4MmwuNDQ5LS4wNTJhMS41MjUsMS41MjUsMCwwLDAsLjM5MS0uMDgzLjU0Ny41NDcsMCwwLDAsLjI5Mi0uMjQxLjg0Mi44NDIsMCwwLDAsLjA4Mi0uNHYtNi4xOGEuODY3Ljg2NywwLDAsMC0uMDczLS4zNjcuNTc1LjU3NSwwLDAsMC0uMy0uMjYyLDIuMzQxLDIuMzQxLDAsMCwwLS40MzEtLjEzNnEtLjI2OC0uMDYyLS40MDgtLjA4di0uNDgySDI4LjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+XCIsXG5cdFwiU1FGOiBTdGF0dXMgUXVvIEZ1bmN0aW9uIChBcm1hIDMpXCI6IFwiPHBhdGggZD1cXFwiTTI1LDIzLjVIN2E1LjAxNSw1LjAxNSwwLDAsMS01LTV2LTZhNS4wMTUsNS4wMTUsMCwwLDEsNS01SDI1YTUuMDE1LDUuMDE1LDAsMCwxLDUsNXY2YTUuMDE1LDUuMDE1LDAsMCwxLTUsNVpcXFwiLz48cGF0aCBkPVxcXCJNNywxOS40NjFhNC44MSw0LjgxLDAsMCwxLTEuNDE0LS4yLDUuMDUyLDUuMDUyLDAsMCwxLTEuMTExLS40NzJsLS40LjQzMmgtLjVMMy41LDE2LjA1Mkg0YTguNDYyLDguNDYyLDAsMCwwLC40MzEuOTUzLDQuNjM4LDQuNjM4LDAsMCwwLC42MDYuOSwzLjE3NywzLjE3NywwLDAsMCwuOC42NzUsMS45ODUsMS45ODUsMCwwLDAsMS4wMjkuMjYsMS42NzIsMS42NzIsMCwwLDAsMS4yMTYtLjQxMUExLjM4MiwxLjM4MiwwLDAsMCw4LjUsMTcuMzkxYTEuMTU2LDEuMTU2LDAsMCwwLS4zNTktLjg2MiwyLjk0NSwyLjk0NSwwLDAsMC0xLjExMS0uNnEtLjQ5LS4xNjctLjktLjMxdC0uNzczLS4yOTJhMi41OCwyLjU4LDAsMCwxLTEuMjM5LTEuMDA3LDIuNzMsMi43MywwLDAsMS0uNDA1LTEuNDY1LDIuNDA2LDIuNDA2LDAsMCwxLC4yMS0uOTg2LDIuNjA4LDIuNjA4LDAsMCwxLC42MTItLjg1LDIuOTY3LDIuOTY3LDAsMCwxLC45ODUtLjU3NSwzLjcyMiwzLjcyMiwwLDAsMSwxLjMwNi0uMjIzLDMuOTg0LDMuOTg0LDAsMCwxLDEuMjg4LjIsNS4xNTEsNS4xNTEsMCwwLDEsLjk0NC40MDhsLjM1Ni0uMzdoLjUwN2wuMDQ3LDIuOTg4aC0uNXEtLjE3NS0uNDgzLS40MTEtLjk4N2E0LjMzMiw0LjMzMiwwLDAsMC0uNS0uODM5LDIuMywyLjMsMCwwLDAtLjY1OS0uNTczLDEuNzI5LDEuNzI5LDAsMCwwLS44NzUtLjIxNEExLjQzNywxLjQzNywwLDAsMCw2LDExLjIxMmExLjIzMywxLjIzMywwLDAsMC0uNC45MzQsMS4xNDEsMS4xNDEsMCwwLDAsLjM0Ny44NiwyLjk1MSwyLjk1MSwwLDAsMCwxLjA4Mi41ODhxLjQzMS4xNTQuODguMzA5dC44LjNhMi44ODUsMi44ODUsMCwwLDEsMS4yODYuOTU1LDIuNTEyLDIuNTEyLDAsMCwxLC40NCwxLjUxMiwyLjYzMiwyLjYzMiwwLDAsMS0uOTI3LDEuOTg1LDMuMzY3LDMuMzY3LDAsMCwxLTEuMDc5LjZBNC4zOTEsNC4zOTEsMCwwLDEsNywxOS40NjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTE4LjkyMSwxMS40MzRhNC4zMzgsNC4zMzgsMCwwLDEsLjk3MSwxLjQzMiw0LjgzNCw0LjgzNCwwLDAsMSwuMzU5LDEuOTE0LDQuOTU4LDQuOTU4LDAsMCwxLS43MiwyLjY4LDQuMDM2LDQuMDM2LDAsMCwxLTIuMDM4LDEuNjYxLDIuMTUxLDIuMTUxLDAsMCwwLC40MiwxLjI3MiwxLjE2OCwxLjE2OCwwLDAsMCwuOTUuNTM3LDMuNTYzLDMuNTYzLDAsMCwwLC41OTItLjA0M3EuMjU0LS4wNDMuNDU4LS4xdi41NDNhNS43NTMsNS43NTMsMCwwLDEtLjk4NS4zLDYuMDU0LDYuMDU0LDAsMCwxLTEuMzcuMTUxLDIuMjA2LDIuMjA2LDAsMCwxLTEuNjEyLS42MjEsMi41NzQsMi41NzQsMCwwLDEtLjcwOC0xLjczMkE0LjU3OSw0LjU3OSwwLDAsMSwxMy43LDE5YTQuMTg2LDQuMTg2LDAsMCwxLTEuMjUzLS45MzIsNC4zODgsNC4zODgsMCwwLDEtLjg0Mi0xLjM3Nyw0Ljc2OSw0Ljc2OSwwLDAsMS0uMzEyLTEuNzUzLDUuMjM3LDUuMjM3LDAsMCwxLC4zNDctMS45NDgsNC41LDQuNSwwLDAsMSwuOTUzLTEuNSw0LjExOSw0LjExOSwwLDAsMSwxLjQyNS0uOTQyLDQuODYsNC44NiwwLDAsMSwzLjUtLjAwOUE0LjI0Nyw0LjI0NywwLDAsMSwxOC45MjEsMTEuNDM0Wm0tMS41LDYuMjY2YTQuODU3LDQuODU3LDAsMCwwLC4zNzktMS4yNzMsOS45ODEsOS45ODEsMCwwLDAsLjExNy0xLjYwNiwxMC41MzQsMTAuNTM0LDAsMCwwLS4xLTEuNDgsNC45MzYsNC45MzYsMCwwLDAtLjM0Ny0xLjI4MiwyLjQxLDIuNDEsMCwwLDAtLjY2NS0uOSwxLjU3MSwxLjU3MSwwLDAsMC0xLjAzMi0uMzQsMS43MywxLjczLDAsMCwwLTEuNiwxLjA2LDYuNjM0LDYuNjM0LDAsMCwwLS41NDgsMi45OTMsOS41ODMsOS41ODMsMCwwLDAsLjEyLDEuNTUxLDQuOCw0LjgsMCwwLDAsLjM3NiwxLjI3MywyLjI4NiwyLjI4NiwwLDAsMCwuNjY1Ljg1NiwxLjU5MSwxLjU5MSwwLDAsMCwuOTkxLjMwNiwxLjYxMSwxLjYxMSwwLDAsMCwuOTkxLS4zMDlBMi4xMzUsMi4xMzUsMCwwLDAsMTcuNDIzLDE3LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTI4LjUsMTIuOGgtLjQ1NWEzLjkzLDMuOTMsMCwwLDAtLjYtMS4wODYsMS4zODUsMS4zODUsMCwwLDAtLjgxMi0uNjNjLS4xMTYtLjAxNi0uMjcyLS4wMzEtLjQ2NS0uMDQzcy0uMzczLS4wMTktLjUzNS0uMDE5SDI0LjM0OXYzLjQzM2guODIyYTEuOTY5LDEuOTY5LDAsMCwwLC42MDYtLjA4MywxLjA1NCwxLjA1NCwwLDAsMCwuNDU1LS4zLDEuNTkxLDEuNTkxLDAsMCwwLC4yODMtLjUxNiwyLjYzNSwyLjYzNSwwLDAsMCwuMTY2LS42MjFoLjQ0M3YzLjY4NmgtLjQ0M2EyLjQ3MSwyLjQ3MSwwLDAsMC0uMTgxLS42NzYsMi4wOTQsMi4wOTQsMCwwLDAtLjI2OC0uNTI4LDEuMDEyLDEuMDEyLDAsMCwwLS40MzEtLjI5MywxLjg0MiwxLjg0MiwwLDAsMC0uNjMtLjFoLS44MjJ2Mi45YS44NDIuODQyLDAsMCwwLC4wNzkuMzguNTguNTgsMCwwLDAsLjMuMjU2LDEuODcsMS44NywwLDAsMCwuMzUzLjFxLjIyNC4wNDYuNDQ2LjA3MXYuNDgyaC00LjQ2di0uNDgybC40NDktLjA1MmExLjUyNSwxLjUyNSwwLDAsMCwuMzkxLS4wODMuNTQ3LjU0NywwLDAsMCwuMjkyLS4yNDEuODQyLjg0MiwwLDAsMCwuMDgyLS40di02LjE4YS44NjcuODY3LDAsMCwwLS4wNzMtLjM2Ny41NzUuNTc1LDAsMCwwLS4zLS4yNjIsMi4zNDEsMi4zNDEsMCwwLDAtLjQzMS0uMTM2cS0uMjY4LS4wNjItLjQwOC0uMDh2LS40ODJIMjguNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0XCJTUUxcIjogXCI8cGF0aCBkPVxcXCJNOC41NjIsMTUuMjU2QTIxLjE1OSwyMS4xNTksMCwwLDAsMTYsMTYuNDQ5YTIxLjE1OSwyMS4xNTksMCwwLDAsNy40MzgtMS4xOTRjMS44NjQtLjcyNywyLjUyNS0xLjUzNSwyLjUyNS0yVjkuN2ExMC4zNTcsMTAuMzU3LDAsMCwxLTIuMDg0LDEuMDc2QTIyLjI5MywyMi4yOTMsMCwwLDEsMTYsMTIuMDc4YTIyLjM2LDIyLjM2LDAsMCwxLTcuODc5LTEuM0ExMC4yOCwxMC4yOCwwLDAsMSw2LjAzNyw5Ljd2My41NUM2LjAzNywxMy43MjQsNi43LDE0LjUyOCw4LjU2MiwxNS4yNTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+PHBhdGggZD1cXFwiTTguNTYyLDIxLjk2MWExNS42MTEsMTUuNjExLDAsMCwwLDIuNi43NDFBMjQuOSwyNC45LDAsMCwwLDE2LDIzLjE1NWEyNC45LDI0LjksMCwwLDAsNC44MzgtLjQ1MiwxNS42MTQsMTUuNjE0LDAsMCwwLDIuNi0uNzQxYzEuODY0LS43MjcsMi41MjUtMS41MzUsMi41MjUtMnYtMy4zOWExMC43MDYsMTAuNzA2LDAsMCwxLTEuNjkyLjgyNUEyMy40OSwyMy40OSwwLDAsMSwxNiwxOC43NGEyMy40OSwyMy40OSwwLDAsMS04LjI3MS0xLjM0OCwxMC44MjksMTAuODI5LDAsMCwxLTEuNjkyLS44MjVWMTkuOTZDNi4wMzcsMjAuNDI2LDYuNywyMS4yMzEsOC41NjIsMjEuOTYxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGE0NFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGM1LjUsMCw5Ljk2My0xLjc0NCw5Ljk2My0zLjg5NFYyMy4yNjlhMTAuNSwxMC41LDAsMCwxLTEuNTM1Ljc2MmwtLjE1Ny4wNjNBMjMuNDg3LDIzLjQ4NywwLDAsMSwxNiwyNS40NDVhMjMuNDIyLDIzLjQyMiwwLDAsMS04LjI3MS0xLjM1MWMtLjA1NC0uMDItLjEwNi0uMDQzLS4xNTctLjA2M2ExMC41LDEwLjUsMCwwLDEtMS41MzUtLjc2MnYyLjgzN0M2LjAzNywyOC4yNTYsMTAuNSwzMCwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRhNDRcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCI1Ljg5NFxcXCIgcng9XFxcIjkuOTYzXFxcIiByeT1cXFwiMy44OTRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRhNDRcXFwiLz5cIixcblx0XCJTcXVpcnJlbFwiOiBcIjxwYXRoIGQ9XFxcIk0xMi45NjYsMjcuM2ExOC45MjYsMTguOTI2LDAsMCwxLTUuNzA3LS45MTVjLTEuODMyLS41OTItNC4wNDQtMS41NC00LjkzMS0zLjY0NWEuNTU3LjU1NywwLDAsMS0uMDI1LS4wNzMsMTIuMjE0LDEyLjIxNCwwLDAsMSwuNzYzLTcuNTMxYzEuNTIyLTQuMDA4LDMuNzEtNi43MzksNi41LTguMTE2YTEwLjQyMiwxMC40MjIsMCwwLDEsNy42LS41NSwxMC40MjYsMTAuNDI2LDAsMCwxLDYuMDQsNC42MzksMTEuMDU3LDExLjA1NywwLDAsMSwxLjA1OCwyLjMyNiwxMC42NiwxMC42NiwwLDAsMS01LjM3OCwxMi42ODlsLS4wMi4wMDlBMTQuODMyLDE0LjgzMiwwLDAsMSwxMi45NjYsMjcuM1pcXFwiLz48cGF0aCBkPVxcXCJNMjIuNzIsMTEuMzkzYTEwLjE0NCwxMC4xNDQsMCwwLDAtMTIuOS0zLjg2OUM2LjcsOS4wNjEsNC43ODQsMTIuMiwzLjU5MywxNS4zMzRhMTEuOSwxMS45LDAsMCwwLS43NDYsNy4xODdjLjc4MywxLjg2LDIuNzc5LDIuNzQ0LDQuNTgyLDMuMzI3YTE2LjIwNiwxNi4yMDYsMCwwLDAsMTEuMjEzLS4yMzJBMTAuMTEsMTAuMTEsMCwwLDAsMjMuNzI3LDEzLjYsMTAuNDg4LDEwLjQ4OCwwLDAsMCwyMi43MiwxMS4zOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojYTA1YTJjXFxcIi8+PHBhdGggZD1cXFwiTTE1Ljc4Miw2LjcyQTguMjYzLDguMjYzLDAsMCwxLDE3LjY0LDguMDg0LDkuNjUsOS42NSwwLDAsMSwxOS4wOCw5LjhhOS4zMTcsOS4zMTcsMCwwLDEtMS41MzEsMTEuOTIxQTE0LjkzMywxNC45MzMsMCwwLDEsNy42NTYsMjQuN2E3LjU4MSw3LjU4MSwwLDAsMS00LjEzNS0xLjEsOC40NTQsOC40NTQsMCwwLDAsMy45MDcsMi4yNDEsMTYuMjA4LDE2LjIwOCwwLDAsMCwxMS4yMTQtLjIzM0ExMC4xMTIsMTAuMTEyLDAsMCwwLDIzLjcyNywxMy42YTEwLjQ4NywxMC40ODcsMCwwLDAtMS4wMDctMi4yMTFBOS45NzMsOS45NzMsMCwwLDAsMTUuNzgyLDYuNzJaXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuMzEzNzI1NTAxMjk4OTA0NFxcXCIvPjxwYXRoIGQ9XFxcIk0yMy40NzYsMTMuMzg5bC0xLjA2Mi0yLjg5NS4xNTItLjIzNkE2Ljg3NSw2Ljg3NSwwLDAsMSwyNy41MDksNy43YTIuMTc3LDIuMTc3LDAsMCwxLDEuODc5LjU4OCwzLjM3NiwzLjM3NiwwLDAsMSwuMSwzLjcyOWMtLjM0My4yOTItLjc1MS4xMjQtMS4yMjItLjA3YTIuODIxLDIuODIxLDAsMCwwLTIuMTMzLS4yNywxMC4yLDEwLjIsMCwwLDAtMi4wNDcsMS4yMDlaXFxcIi8+PHBhdGggZD1cXFwiTTIzLjAzOSwxMC41NjNjMS4yMjMtMS45LDUuMTA3LTIuOTE1LDUuOTEyLTEuOTIzYTIuOTcsMi45NywwLDAsMSwuMTc3LDIuOTQ1Yy0uMjQ1LjIwNy0xLjgzNy0xLjA1OS0zLjIyNS0uNDIzQTEwLjU3NCwxMC41NzQsMCwwLDAsMjMuNzMsMTIuNDVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTAyZDE2XFxcIi8+PHBhdGggZD1cXFwiTTI5LjQsOS43MjdhLjguOCwwLDAsMS0uMi40NjljLS4yMjkuMTYyLTEuOS0uNTA2LTMuMjM4LjA1NmExMi40MzksMTIuNDM5LDAsMCwwLTIuMDcxLDEuMDdMMjMuMiwxMC4zNGMtLjA1Ny4wNzQtLjExNi4xNDctLjE2NS4yMjNsLjY5MiwxLjg4NkExMC41NzcsMTAuNTc3LDAsMCwxLDI1LjksMTEuMTYyYzEuMzg4LS42MzYsMi45OC42MzEsMy4yMjUuNDIzQTIuODQ2LDIuODQ2LDAsMCwwLDI5LjQsOS43MjdaXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuMzEzNzI1NTAxMjk4OTA0NFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4zODIsMjUuMThhMi4yMzYsMi4yMzYsMCwwLDEtMS4xNDctLjMyMy41NjMuNTYzLDAsMCwxLS4wODItLjg4OGMuNzM3LS42ODQuNjA3LTIuMTczLS40MS00LjY4OWEzNi41MjYsMzYuNTI2LDAsMCwwLTUuMTIzLTguODI1bC0uMzUtLjQzYy0xLjUxMi0xLjg2NS0yLjM1OC0yLjgxNS0zLjU1NC0yLjNhLjU2Mi41NjIsMCwwLDEtLjQxMy4wMTYuNTcxLjU3MSwwLDAsMS0uMzc3LS41OTIsMi4xMTksMi4xMTksMCwwLDEsMS40NjEtMmM0LjcxNi0xLjQ4MSwxMC4yNi44MTQsMTIuOTA1LDUuMzQ0YTExLjIsMTEuMiwwLDAsMS0xLjQzMSwxMy45OTFBMS45MTksMS45MTksMCwwLDEsMjEuMzgyLDI1LjE4WlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy44MTIsMTAuNzgzYy0yLjQ0NC00LjE5Mi03LjczLTYuNTI4LTEyLjI3LTUuMDkzLTEuMDA3LjI0OC0xLjA2NSwxLjUzNS0xLjA1MiwxLjUxNywxLjc3Ni0uNzY3LDIuOTUzLjkxOSw0LjU2NiwyLjg5YTM2LjksMzYuOSwwLDAsMSw1LjIwOSw4Ljk3MWMuODksMi4yLDEuNCw0LjI2Ny4yNyw1LjMxMmExLjUsMS41LDAsMCwwLDEuOTA5LS4yNzRBMTAuNjQ2LDEwLjY0NiwwLDAsMCwyMy44MTIsMTAuNzgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzUwMmQxNlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy42NDksMTAuMzQ2YTkuMzE0LDkuMzE0LDAsMCwxLTIuNTE4LDcuNzI1Yy0uNDU1LjQ4Ni0uODczLjE3Ny0xLjI2My4wNjMuMTM4LjMxMy4yNzEuNjI2LjQuOTM2Ljg5LDIuMiwxLjQsNC4yNjYuMjcxLDUuMzEyYTEuNSwxLjUsMCwwLDAsMS45MDktLjI3NEMyNi4wODksMjAuMTgzLDI2LjM1NywxNC45MTksMjMuNjQ5LDEwLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC4zMTM3MjU1MDEyOTg5MDQ0XFxcIi8+XCIsXG5cdFwiU3RhblwiOiBcIjx0aXRsZT5maWxlX3R5cGVfc3RhbjwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LDJBMTQsMTQsMCwwLDAsNS42ODgsMjUuNDY5YzEuNy0uNTE0LDMuNDExLS45OTIsNC44MDYtMS4zNTcsNC4wMzctMS4wNTQsMTAuOTQ4LTIuODM2LDExLjk0Ni01LjA4Mi0uMjguNzgtMS4yMTgsMi44Ny0xLjIxOCwyLjg3LTEuMjc5LDEuMjQ3LTcuMDksMi42MzEtMTAuOTE3LDMuMzY3LTEuMjIuMjM1LTIuNjE0LjUwNy00LjAyNi44MDZBMTQsMTQsMCwwLDAsMjguNDY3LDkuNjI4Yy0yLjUyNi40MDgtMTAuNSwxLjg1NC0xMi41MzksMi4zMTUtMi4yNTUuNTA5LTYuNzg5LDEuNDMzLTcuNjk0LDIuOTkzQzguOCwxMy41LDEwLjQ5Miw5Ljc0NCwxMC40OTIsOS43NDRjMS4yMTYtMiw2LjYtMy40MjUsMTAuMzU4LTQuNDYzLjg3Ni0uMjQyLDEuOTIyLS41MzksMy4wMjMtLjg1OEExMy45MzQsMTMuOTM0LDAsMCwwLDE2LDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjIwMDFkXFxcIi8+PHBhdGggZD1cXFwiTTguMjIzLDE0Ljk4N2MtLjI1MiwxLjE3NSwzLjUyLDIuMzEzLDYuOTIxLDMuMzg5YTI2LjM2MiwyNi4zNjIsMCwwLDEsNS42NjcsMi4xOTIsMy4wODUsMy4wODUsMCwwLDAsMS42NjItMS42MTRjLjM3Ny0xLjQ4OS0zLjAxMy0zLjM5My01LjI3NC00LjIyOWEzMy4zMzcsMzMuMzM3LDAsMCwxLTQuNDA3LTIuMDQyYy00LjMxNiwxLjE0My00LjU2OSwyLjMtNC41NjksMi4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzU5MDgxNVxcXCIvPlwiLFxuXHRcIlN0YXRhIEFkb1wiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiMlxcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMzBcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4YWE3YzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzYzZlOGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3N0YXRhPC90aXRsZT48cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHJ4PVxcXCIxLjU1NlxcXCIgcnk9XFxcIjEuNTU2XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHJlY3QgeD1cXFwiMTMuMTcxXFxcIiB5PVxcXCI2LjAxNVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMzI2XFxcIiB5PVxcXCI2LjAxNVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMzI2XFxcIiB5PVxcXCIxMy4xNzFcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjEzLjE3MVxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCI2LjAxNVxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCI2LjAxNVxcXCIgeT1cXFwiMjAuMzI2XFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIxMy4xNzFcXFwiIHk9XFxcIjIwLjMyNlxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiU3R5bHVzXCI6IFwiPHRpdGxlPmZpbGVfdHlwZV9zdHlsdXM8L3RpdGxlPjxwYXRoIGQ9XFxcIk02LjMxNSwyMC43NzZjLjcyNi0uODY5LjgxMi0xLjc2Ni4yNDktMy40MzItLjM1Ni0xLjA1NC0uOTQ3LTEuODY1LS41MTMtMi41MjEuNDYzLS43LDEuNDQ1LS4wMjEuNjI3LjkxMWwuMTY0LjExNGMuOTgzLjExNCwxLjQ2Ny0xLjIzMi43MzMtMS42MTYtMS45MzctMS4wMTEtMy42MzEuOTMzLTIuODg0LDMuMTgzLjMyLjk1NC43NjksMS45NjUuNDA2LDIuNzdBMS43OTQsMS43OTQsMCwwLDEsMy43NzMsMjEuM2MtLjg0Ny4wNDMtLjI4NS0xLjkuNjkxLTIuMzg1LjA4NS0uMDQzLjIwNi0uMS4wOTMtLjI0MmEyLjEzNCwyLjEzNCwwLDAsMC0yLjMxNCwxLjJDMS4wNjEsMjIuMTIxLDQuNDg1LDIyLjk1NCw2LjMxNSwyMC43NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTI3LjQ2MiwxNC4xNGMuMjc4LjY4NC43LDEuMzYuNDQ5LDEuOTU4LS4yMDYuNTEzLS40NzcuNzI2LS43NzYuNzc2LS40Mi4wNzEtLjMwNi0xLjI0Ni40MTMtMS42MzguMDY0LS4wMzYuMTU3LS4yMDYuMDcxLS4zMDZhMS42MzYsMS42MzYsMCwwLDAtMS43Ljk2MWMtLjgsMS42ODcsMS44MjMsMi4xNSwzLjExMi40OTEuNTEzLS42NjIuNTM0LTEuMzE3LjA0My0yLjUwNi0uMzEzLS43NTUtLjc5LTEuMzE3LS40OTEtMS44MTYuMzItLjUyNywxLjA4OS0uMDcxLjUxMy42MzRsLjEyOC4wNzFjLjc0OC4wNDMsMS4wNTQtLjk1NC40ODQtMS4yQTEuODM0LDEuODM0LDAsMCwwLDI3LjQ2MiwxNC4xNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTUsMTIuMzM4Yy0uNTItLjQxMy0xLjk3OS4yNzgtMi4zOTIsMS4zYTE2LjIxMywxNi4yMTMsMCwwLDEtMi4wNDMsNC4wMzdjLS44Ljg3Ni0uODc2LjItLjgtLjMwNkExNS4zMjcsMTUuMzI3LDAsMCwxLDE0LjcsMTIuNjUyYy0uMjM1LS4zNDktMS43NzMtLjMtMi44NDEsMS4zNi0uNC42MjctMS4zMSwyLjcxMy0yLjMyMSw0LjM1OC0uMjIxLjM1Ni0uNS4xMDctLjI4NS0uNzI2YTM5LjgsMzkuOCwwLDAsMSwxLjg3My01LjY4MiwzOS4wNzIsMzkuMDcyLDAsMCwxLDYuOTIxLS44MTljLjI2My0uMDcxLjQ0MS0uMzA2LDAtLjMyYTQ2Ljc3OCw0Ni43NzgsMCwwLDAtNi41OTMuNDQxLDQuOTIzLDQuOTIzLDAsMCwxLDEuNDQ1LTEuOTQ0LDEuNzg3LDEuNzg3LDAsMCwwLTIuMjY0LjcxOSwxMi4yODcsMTIuMjg3LDAsMCwwLS44MTksMS40NTMsMjQuMTk0LDI0LjE5NCwwLDAsMC0zLjk4Ljg2MmMtLjc4My4zLS43LDEuMjQ2LS4yMjEsMS4wNjhhMzEuNjMxLDMxLjYzMSwwLDAsMSwzLjgxNi0xLjEsMzAuMjkyLDMwLjI5MiwwLDAsMC0xLjg2NSw1LjY4MmMtLjQ0MSwyLjQ5MiwxLjEsMi40NzgsMS44NTgsMS41LjgxOS0xLjA3NSwyLjUyOC00Ljg1NiwyLjc5MS01LjI1NS4wNzgtLjEzNS4xODUtLjA2NC4xMjguMDU3LTEuOTA4LDMuODA5LTEuNzQ0LDUuMjgzLS4yLDQuOTU2YTQuOTI5LDQuOTI5LDAsMCwwLDIuMjE0LTEuOTY1Yy4wNjQtLjE1LjItLjEzNS4xNzEtLjA3MS0xLjIxLDMuMTQtMi43NDgsNS42ODItMy43ODEsNi40NzktLjk0LjcxOS0xLjYzOC0uODQsMS42ODctMy4wNzYuNDkxLS4zMzUuMjYzLS43OS0uMjkyLS42MzRoMGEyOS43OTMsMjkuNzkzLDAsMCwwLTguNzg2LDMuMzI1Yy0uMTY0LjExNC0uMzEzLjIwNi0uMzA2LjQ0MS4wMDcuMTM1LjI0Mi4wODUuMzU2LjAxNEEyMi43NzEsMjIuNzcxLDAsMCwxLDExLjEsMjAuOWEuMTU4LjE1OCwwLDAsMCwuMTE0LjAwN2MuMTIxLS4wMjguMTE0LjAzNi4wMzYuMDg1LS4xNzguMS0uMzU2LjE5Mi0uNC4yMDYtMS43NjYuNjkxLTIuODM0LDIuMjE0LTIuNDU2LDIuOTkuMzIuNjY5LDIuMDUxLjQyNywyLjg2OS0uMDE0LDIuMDA4LTEuMDg5LDMuNDY4LTMuMjI1LDQuNDY0LTYuMTczQzE2LjYsMTUuMzg2LDE3LjY5MywxMi40MjQsMTcuOTUsMTIuMzM4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS42MiwxOC4zNjlhNDguMTQ1LDQ4LjE0NSwwLDAsMC0xMy40MjkuOTY4Yy0uOTI2LjI0Mi0uNjY5LjczMy0uMi42NDEuMDA3LDAsLjIwNi0uMDUuMjE0LS4wNWE0Mi4yNzksNDIuMjc5LDAsMCwxLDEyLjM3NS0uMjQyQzI5LjAxNCwxOS43NjUsMzAuMzE3LDE4LjQ2MiwyOS42MiwxOC4zNjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljg2MSwxNy45ODVjLjkxMS0uNDU2LDIuMjY0LTMuMjc1LDMuMTU0LTQuODIuMDY0LS4xMTQuMTc4LS4wMjEuMTE0LjA1Ny0yLjI1LDMuODczLTEuMyw0LjMyMi0uNDA2LDQuMjY1LDEuMTg5LS4wNzEsMi4yODYtMS43OCwyLjUyOC0yLjE2NS4xLS4xNS4xNTctLjAyOC4xLjA3OC0uMDU3LjE3OC0uMjYzLjQ5MS0uNDU2LjkxOS0uMjcxLjYwNS4wMTQuODQuMjQ5Ljk0Ny4zNy4xNzgsMS4zODEuMDY0LDEuNTM4LS41NTUtMS4wMTEtLjAyMSwxLjQxLTQuNzkyLDEuNjU5LTUuMDg0YTEuNzE4LDEuNzE4LDAsMCwwLTIuMi45NzVjLTEuMDE4LDIuMDE1LTEuODczLDMuNjM4LTIuNDA3LDMuNjY3LTEuMDQuMDU3LDEuMi00LjQ5MywxLjU1OS00LjYzNS0uMjIxLS4zMi0xLjYzOC0uMTg1LTIuNDI4LDEuMDQtLjI4NS40NDEtMi4wMjIsMy41MTctMi40NDksNC4wMjMtLjc1NS45LS44MTIuMTI4LS42LS43NjlhMTAuNTY5LDEwLjU2OSwwLDAsMSwuMzQ5LTEuMTMyLDUuMzI0LDUuMzI0LDAsMCwxLDEuMzYtMS44NDRjMi4yLTIuNDQyLDMuNDYtNC40MjIsMi45NjItNS4yLS40NDEtLjY5MS0xLjkxNS0uMzg0LTIuODYyLDEuMDQtMS43NDQsMi42MTMtMy4zNTQsNi4xOTUtMy41Niw3LjgzMlMxOC4wNTYsMTguMzgzLDE4Ljg2MSwxNy45ODVabS45MjYtNC43OTJjLjA3OC0uMTc4LjEyOC0uMjI4LjI2My0uNTI3aDBBMjQuOTM0LDI0LjkzNCwwLDAsMSwyMi40OTIsOC4yOGMuNDItLjQ0MSwxLjAxMS4xNTctLjA1NywxLjc5NGExNi40NjIsMTYuNDYyLDAsMCwxLTIuMTE1LDIuNjQydi4wMDdjLS4yLjIyMS0uMzc3LjQwNi0uNDU2LjUxM0MxOS44MDgsMTMuMzA3LDE5Ljc0NCwxMy4yOTIsMTkuNzg3LDEzLjE5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0XCJTVkdcIjogXCI8cGF0aCBkPVxcXCJNNy42NzQsMTQuNDg4YTIuMjE4LDIuMjE4LDAsMSwwLDAsMy4xMzdIMjQuMzI2YTIuMjE4LDIuMjE4LDAsMSwwLDAtMy4xMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMTEuMjIyLDkuMDZBMi4yMTgsMi4yMTgsMCwxLDAsOSwxMS4yNzhMMjAuNzc4LDIzLjA1MkEyLjIxOCwyLjIxOCwwLDEsMCwyMywyMC44MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTY4LDcuNzNhMi4yMTgsMi4yMTgsMCwxLDAtMy4xMzcsMFYyNC4zODJhMi4yMTgsMi4yMTgsMCwxLDAsMy4xMzcsMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmIxM2I7c3Ryb2tlOiMwMDA7c3Ryb2tlLXdpZHRoOjMuNzMwMDAwMDE5MDczNDlweFxcXCIvPjxwYXRoIGQ9XFxcIk0yMywxMS4yNzhBMi4yMTgsMi4yMTgsMCwxLDAsMjAuNzc4LDkuMDZMOSwyMC44MzRhMi4yMTgsMi4yMTgsMCwxLDAsMi4yMTgsMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNNy42NzQsMTQuNDg4YTIuMjE4LDIuMjE4LDAsMSwwLDAsMy4xMzdIMjQuMzI2YTIuMjE4LDIuMjE4LDAsMSwwLDAtMy4xMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiXFxcIi8+PHBhdGggZD1cXFwiTTExLjIyMiw5LjA2QTIuMjE4LDIuMjE4LDAsMSwwLDksMTEuMjc4TDIwLjc3OCwyMy4wNTJBMi4yMTgsMi4yMTgsMCwxLDAsMjMsMjAuODM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NjgsNy43M2EyLjIxOCwyLjIxOCwwLDEsMC0zLjEzNywwVjI0LjM4MmEyLjIxOCwyLjIxOCwwLDEsMCwzLjEzNywwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMywxMS4yNzhBMi4yMTgsMi4yMTgsMCwxLDAsMjAuNzc4LDkuMDZMOSwyMC44MzRhMi4yMTgsMi4yMTgsMCwxLDAsMi4yMTgsMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiXFxcIi8+PHBhdGggZD1cXFwiTTIsMTYuMDU2SDMwVjI1Ljk1YTQuMDM1LDQuMDM1LDAsMCwxLTQuMTA2LDQuMTA2SDYuMTA2QTQuMDM1LDQuMDM1LDAsMCwxLDIsMjUuOTVaXFxcIi8+PHBhdGggZD1cXFwiTTYuMiwyMy4wNDVBMy42MjgsMy42MjgsMCwxLDEsMTIuNCwyMC40OEgxMC4yN0ExLjUsMS41LDAsMSwwLDcuNywyMS41NDFoMGExLjYsMS42LDAsMCwwLDEuMDYyLjQ0MWgwYTQuMTE4LDQuMTE4LDAsMCwxLDIuNTY2LDEuMDYzaDBhMy42MjgsMy42MjgsMCwxLDEtNi4xOTQsMi41NjVINy4yNjRBMS41LDEuNSwwLDEsMCw5LjgzLDI0LjU1aDBhMS45NDgsMS45NDgsMCwwLDAtMS4wNjMtLjQ0aDBBNC40NjUsNC40NjUsMCwwLDEsNi4yLDIzLjA0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuNjUxLDE2Ljg1MiwxNy4wODUsMjkuMjRIMTQuOTZMMTIuNCwxNi44NTJIMTQuNTJsMS41LDcuMjU1LDEuNS03LjI1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjgsMjEuOTgzaDMuNjI4djMuNjI4aDBhMy42MjgsMy42MjgsMCwxLDEtNy4yNTcsMGgwVjIwLjQ4aDBhMy42MjgsMy42MjgsMCwwLDEsNy4yNTcsMEgyNC43ODNhMS41LDEuNSwwLDEsMC0zLjAwNSwwdjUuMTNoMGExLjUsMS41LDAsMCwwLDMuMDA1LDBoMHYtMS41aC0xLjVWMjEuOTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlN3aWZ0XCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzNC40OTRcXFwiIHkxPVxcXCItMTcxLjgyXFxcIiB4Mj1cXFwiLTEzNC40OTdcXFwiIHkyPVxcXCItMTcxLjg5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDI0MCwgMCwgMCwgLTIwNS42LCAzMjI5NSwgLTM1MzEyLjU4NSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmODg1MzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZDIyMjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3N3aWZ0PC90aXRsZT48cGF0aCBkPVxcXCJNMTkuNDIyLDQuMDA3czYuMjE3LDMuNTU0LDcuODQ0LDkuMmMxLjQ2Niw1LjEuMjkyLDcuNTM0LjI5Miw3LjUzNGE4LjkxNSw4LjkxNSwwLDAsMSwxLjc0MiwyLjgsNC44MjUsNC44MjUsMCwwLDEsLjI5LDQuNDUzcy0uMS0yLjA4LTMuMi0yLjUxMWMtMi44NDEtLjQtMy44NzQsMi4zNjYtOS4zLDIuMjMyQTE4LjQzNSwxOC40MzUsMCwwLDEsMiwxOS4zNTRDNC42NTEsMjAuOCw4LjEyNCwyMy4wNDUsMTIuNDQ5LDIyLjdzNS4yMjgtMS42NzQsNS4yMjgtMS42NzRBNjYuOSw2Ni45LDAsMCwxLDQuODkxLDcuNjQzYzMuNCwyLjg0NSwxMS44MjIsOC41MDcsMTEuNjI2LDguMzYzQTc1LjgyNiw3NS44MjYsMCwwLDEsOC4wOTIsNi4yNFMyMC43MjgsMTYuNjI5LDIxLjc0NSwxNi41NjNjLjQxOC0uODYxLDIuNTc5LTUuMzE4LTIuMzI0LTEyLjU1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiOiBcIjxwYXRoIGQ9XFxcIk0yLDEydjhINS4yNTZWMTguNzY5SDMuM1YxMy4yMzFINS4yNTZWMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljc0NCwxMnYxLjIzMUgyOC43djUuNTM4SDI2Ljc0NFYyMEgzMFYxMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTcuNjI4LDE2bDUuMjEtMi43Njl2NS41MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzBkNDc1XFxcIi8+PGVsbGlwc2UgY3g9XFxcIjEyLjA5M1xcXCIgY3k9XFxcIjE2XFxcIiByeD1cXFwiMi45M1xcXCIgcnk9XFxcIjIuNzY5XFxcIiBzdHlsZT1cXFwiZmlsbDojMzBkNDc1XFxcIi8+XCIsXG5cdFwiVDQgdGVtcGxhdGluZ1wiOiBcIjxwYXRoIGQ9XFxcIk0xOS41NDUsNi4wMzVIMTMuMjdWMjRIOC4zVjYuMDM1SDIuMDU1VjJoMTcuNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+PHBhdGggZD1cXFwiTTI3LjU2NywxMFYyMi42MDhoMi40VjI1LjloLTIuNFYzMEgyMy41NTFWMjUuOUgxNC44MzRWMjIuNDU1cTEuMTU4LTEuMywyLjQtMi44Mzh0Mi40LTMuMTczcTEuMTU4LTEuNjMyLDIuMTU1LTMuMjg1QTMyLjkyNSwzMi45MjUsMCwwLDAsMjMuNDgxLDEwWk0xOC43ODEsMjIuNjA4aDQuNzdWMTUuNjIxcS0uNDg4LjkwNy0xLjA2LDEuODM0dC0xLjIsMS44MjdxLS42MjguOS0xLjI2OSwxLjc0M1QxOC43ODEsMjIuNjA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPlwiLFxuXHRcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIjogXCI8cGF0aCBkPVxcXCJNMTkuNTQ1LDYuMDM1SDEzLjI3VjI0SDguM1Y2LjAzNUgyLjA1NVYyaDE3LjQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NjcsMTBWMjIuNjA4aDIuNFYyNS45aC0yLjRWMzBIMjMuNTUxVjI1LjlIMTQuODM0VjIyLjQ1NXExLjE1OC0xLjMsMi40LTIuODM4dDIuNC0zLjE3M3ExLjE1OC0xLjYzMiwyLjE1NS0zLjI4NUEzMi45MjUsMzIuOTI1LDAsMCwwLDIzLjQ4MSwxMFpNMTguNzgxLDIyLjYwOGg0Ljc3VjE1LjYyMXEtLjQ4OC45MDctMS4wNiwxLjgzNHQtMS4yLDEuODI3cS0uNjI4LjktMS4yNjksMS43NDNUMTguNzgxLDIyLjYwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz5cIixcblx0XCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCI6IFwiPHBhdGggZD1cXFwiTTE5LjU0NSw2LjAzNUgxMy4yN1YyNEg4LjNWNi4wMzVIMi4wNTVWMmgxNy40OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTY3LDEwVjIyLjYwOGgyLjRWMjUuOWgtMi40VjMwSDIzLjU1MVYyNS45SDE0LjgzNFYyMi40NTVxMS4xNTgtMS4zLDIuNC0yLjgzOHQyLjQtMy4xNzNxMS4xNTgtMS42MzIsMi4xNTUtMy4yODVBMzIuOTI1LDMyLjkyNSwwLDAsMCwyMy40ODEsMTBaTTE4Ljc4MSwyMi42MDhoNC43N1YxNS42MjFxLS40ODguOTA3LTEuMDYsMS44MzR0LTEuMiwxLjgyN3EtLjYyOC45LTEuMjY5LDEuNzQzVDE4Ljc4MSwyMi42MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+XCIsXG5cdFwiVGNsXCI6IFwiPHBhdGggZD1cXFwiTTIxLjk0MiwyLjg3NmMuMDQsMi40NjgtLjAzMyw0LjkxLTIuMTY5LDcuMjNsLS4wNzkuMDg5aC4xMTlsLjg3My4wMTNjLTEuNDE4LDIuOTUtMi4zNDEsNS44OTItNC4zOCw4LjgzbC0uMDczLjEwNi4xMjYtLjAyMywxLjA3OC0uMmE1Ljg1MSw1Ljg1MSwwLDAsMS0zLjQ4NCwzLjY1Yy0uMzktNS40NTUsMi4zMzMtMTAuMjcsNC42NDUtMTUuMDcxbC4wMDctLjAxMy0uMDg2LS4wNmMtMy43ODYsNC4yMzMtNS40OTEsMTAuMi02LjEzNiwxNS4xMjdhNC41ODIsNC41ODIsMCwwLDEtMi4xNDUtMi45ODhsLjkuMzc3LjA5My4wNC0uMDItLjFjLS42ODEtMy4wMjguMzc2LTUuMiwxLjQtOC4wNTZsLjczNy40OTMuMDg2LjA2LDAtLjFjLS4wNTgtMi4zMiwxLjUtNC42NDksMy41NzctNi43MjdsLjI4OC43Ny4wNC4xLjA1Ni0uMS42MzEtMS4wNTEsMC0uMDA3QTYuMSw2LjEsMCwwLDEsMjEuOTQyLDIuODc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MzYjE1ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NDgsMi44NzVhNi4xMzEsNi4xMzEsMCwwLDAtMy45MjYsMi4zODhsMCwuMDA3LS42MzEsMS4wNTEtLjA1Ni4xLS4wNC0uMUwxNyw1LjU0NGMtMi4wNzIsMi4wNzgtMy42MzUsNC40MDctMy41NzcsNi43MjdsMCwuMS0uMDg2LS4wNi0uNzM3LS40OTNjLTEuMDI1LDIuODU2LTIuMDgzLDUuMDI5LTEuNCw4LjA1NmwuMDIuMS0uMDkzLS4wNC0uODg2LS4zNzRjMCwuMDE4LjAwNy4wMzUuMDEuMDUzYTQuNTMzLDQuNTMzLDAsMCwwLDIuMTI2LDIuOTMyYy4wNS0uMzgxLjEwNS0uNzcxLjE2OS0xLjE2NC0xLjU0My0zLjYxNC0uMi02LjI3MS40MDctOC42NjFsLjkzOS41NDJjLS4xMy0yLjIzOCwxLjE4NC00LjY1MSwyLjg5My02Ljc1N2wuNS44NzNDMTguNTU1LDQuNzY5LDE5LjU2LDMuNzIsMjEuOTQ4LDIuODc1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmZjFjYjtzdHJva2U6I2VmZjFjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi41MTgsMmwtLjA1Ni4wMWMtMi4wODIuMzYzLTQuMTIxLDEuMTI4LTUuMDE1LDIuOTU5bC0uMzc3LS42NTgtLjAzMy0uMDYtLjA1LjA1YTIwLjg1LDIwLjg1LDAsMCwwLTIuOTM5LDMuNUE1LjkzOSw1LjkzOSwwLDAsMCwxMi44MzUsMTFsLS41MzItLjY2NC0uMDUzLS4wNjYtLjAzNi4wNzZhMjcuNTM1LDI3LjUzNSwwLDAsMC0xLjY5Myw0LjcsNi43Myw2LjczLDAsMCwwLS4xNTksMy43MTlsLS44NzYtLjUwOS0uMDczLS4wNDMtLjAwNy4wODZhNS41MjksNS41MjksMCwwLDAsMi4wMTcsNC44NDNsLS45NzIuMjQxLS4yLjA1LjIuMDUzYTQuMjU4LDQuMjU4LDAsMCwxLDEuNDU1LjYsMS4zMjUsMS4zMjUsMCwwLDEsLjUxNiwxLjNWMjguMWwuMDEuMDEzLDEuMjE3LDEuNzQ1LjEuMTM5VjI1LjcxOWEzLjQ2NiwzLjQ2NiwwLDAsMSwuNjIxLTEuNDg0QTEuNjM5LDEuNjM5LDAsMCwxLDE1LjUsMjMuN2wuMTgyLS4wMjMtLjE2NS0uMDc2LS42NDEtLjNhOS4xMTIsOS4xMTIsMCwwLDAsMy42OTMtNS4zMjJsLjAyLS4wODYtLjA4My4wMjMtLjc5My4yMTVhMTEuNjY5LDExLjY2OSwwLDAsMCwyLjA4OS0zLjVDMjAuNTEyLDEzLDIxLjE4LDExLjE2NiwyMS43MjgsOS43bC4wMy0uMDc5LS4wODMuMDA3LS42MTIuMDQzYTYuNjU1LDYuNjU1LDAsMCwwLDEuMzgyLTMuNTI3LDE3LjAzOSwxNy4wMzksMCwwLDAsLjA3OS00LjA4NlptLS41NzUuODc2Yy4wNCwyLjQ2OC0uMDMzLDQuOTEtMi4xNjksNy4yM2wtLjA3OS4wODloLjExOWwuODczLjAxM2MtMS40MTgsMi45NS0yLjM0MSw1Ljg5Mi00LjM4LDguODNsLS4wNzMuMTA2LjEyNi0uMDIzLDEuMDc4LS4yYTUuODUxLDUuODUxLDAsMCwxLTMuNDg0LDMuNjVjLS4zOS01LjQ1NSwyLjMzMy0xMC4yNyw0LjY0NS0xNS4wNzFsLjAwNy0uMDEzLS4wODYtLjA2Yy0zLjc4Niw0LjIzMy01LjQ5MSwxMC4yLTYuMTM2LDE1LjEyN2E0LjU4Miw0LjU4MiwwLDAsMS0yLjE0NS0yLjk4OGwuOS4zNzcuMDkzLjA0LS4wMi0uMWMtLjY4MS0zLjAyOC4zNzYtNS4yLDEuNC04LjA1NmwuNzM3LjQ5My4wODYuMDYsMC0uMWMtLjA1OC0yLjMyLDEuNS00LjY0OSwzLjU3Ny02LjcyN2wuMjg4Ljc3LjA0LjEuMDU2LS4xLjYzMS0xLjA1MSwwLS4wMDdBNi4xLDYuMSwwLDAsMSwyMS45NDIsMi44NzZaXFxcIi8+XCIsXG5cdFwiVGVtcGxhdGUgVG9vbGtpdCAyXCI6IFwiPHBhdGggZD1cXFwiTTguOTA3LDIzLjAyMUg4Ljg3OGEzLjMwNSwzLjMwNSwwLDAsMS0yLjAxMS0uNjYxQTIuNTYxLDIuNTYxLDAsMCwxLDUuODMsMjAuMzM0VjE2LjFINC4yODhhMy4wNSwzLjA1LDAsMCwxLTIuNzM4LTEuNjksMy4zLDMuMywwLDAsMSwuNDQxLTMuNTMsMi4yNjUsMi4yNjUsMCwwLDEsMS44MTUtLjloOS42NWEzLjA1LDMuMDUsMCwwLDEsMi43MzgsMS42OSwzLjMsMy4zLDAsMCwxLS40NDEsMy41MywyLjI2NSwyLjI2NSwwLDAsMS0xLjgxNS45SDExLjk1NXY0LjIzMWEyLjU2MSwyLjU2MSwwLDAsMS0xLjAzNywyLjAyNkEzLjMwNSwzLjMwNSwwLDAsMSw4LjkwNywyMy4wMjFaTTQuMjY0LDExLjYzNmExLjM5LDEuMzksMCwwLDAtMS4zODgsMS4zODh2LjAzM2ExLjM5LDEuMzksMCwwLDAsMS4zODgsMS4zODhINy40ODd2NS44ODFjMCwuNTcyLjYyNCwxLjAzNywxLjM5LDEuMDM3aC4wMjljLjc2NywwLDEuMzktLjQ2NSwxLjM5LTEuMDM3VjE0LjQ0NmgzLjIyM2ExLjM5LDEuMzksMCwwLDAsMS4zODgtMS4zODh2LS4wMzNhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAxNWQ5YVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45ODEsMTIuOTUzdi4wMzNhMS41MzMsMS41MzMsMCwwLDEtMS41MzMsMS41MzNIMTAuMzd2NS43MzdhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUsMS4xODFIOC44MDZhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUtMS4xODFWMTQuNTE4SDQuMTkyQTEuNTMzLDEuNTMzLDAsMCwxLDIuNjYsMTIuOTg2di0uMDMzQTEuNTMzLDEuNTMzLDAsMCwxLDQuMTkyLDExLjQyaDkuMjU3QTEuNTMzLDEuNTMzLDAsMCwxLDE0Ljk4MSwxMi45NTNabS00LjIyMyw5LjIyMmEyLjQxOCwyLjQxOCwwLDAsMCwuOTgtMS45MTJWMTUuODg4aDIuMTI3YTIuMTE0LDIuMTE0LDAsMCwwLDEuNy0uODQ2LDIuOTkyLDIuOTkyLDAsMCwwLTIuMTgtNC45OUgzLjczNWEyLjExNCwyLjExNCwwLDAsMC0xLjcuODQ2LDIuOTkyLDIuOTkyLDAsMCwwLDIuMTgsNC45OUg1Ljl2NC4zNzVhMi40MTgsMi40MTgsMCwwLDAsLjk4LDEuOTEyLDMuMTYsMy4xNiwwLDAsMCwxLjkyMy42MzFoLjAyOUEzLjE2LDMuMTYsMCwwLDAsMTAuNzU4LDIyLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYmNlZmNcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjA3LDIzLjAyMWgtLjAyOWEzLjMwNSwzLjMwNSwwLDAsMS0yLjAxMS0uNjYxLDIuNTYxLDIuNTYxLDAsMCwxLTEuMDM3LTIuMDI2VjE2LjFIMTguOTg4YTMuMDUsMy4wNSwwLDAsMS0yLjczOC0xLjY5LDMuMywzLjMsMCwwLDEsLjQ0MS0zLjUzLDIuMjY1LDIuMjY1LDAsMCwxLDEuODE1LS45aDkuNjVhMy4wNSwzLjA1LDAsMCwxLDIuNzM4LDEuNjksMy4zLDMuMywwLDAsMS0uNDQxLDMuNTMsMi4yNjUsMi4yNjUsMCwwLDEtMS44MTUuOUgyNi42NTV2NC4yMzFhMi41NjEsMi41NjEsMCwwLDEtMS4wMzcsMi4wMjZBMy4zMDUsMy4zMDUsMCwwLDEsMjMuNjA3LDIzLjAyMVpNMTguOTY0LDExLjYzNmExLjM5LDEuMzksMCwwLDAtMS4zODgsMS4zODh2LjAzM2ExLjM5LDEuMzksMCwwLDAsMS4zODgsMS4zODhoMy4yMjN2NS44ODFjMCwuNTcyLjYyNCwxLjAzNywxLjM5LDEuMDM3aC4wMjljLjc2NywwLDEuMzktLjQ2NSwxLjM5LTEuMDM3VjE0LjQ0NmgzLjIyM2ExLjM5LDEuMzksMCwwLDAsMS4zODgtMS4zODh2LS4wMzNhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAxNWQ5YVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS42ODEsMTIuOTUzdi4wMzNhMS41MzMsMS41MzMsMCwwLDEtMS41MzMsMS41MzNIMjUuMDd2NS43MzdhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUsMS4xODFoLS4wMjlhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUtMS4xODFWMTQuNTE4SDE4Ljg5MmExLjUzMywxLjUzMywwLDAsMS0xLjUzMy0xLjUzM3YtLjAzM2ExLjUzMywxLjUzMywwLDAsMSwxLjUzMy0xLjUzM2g5LjI1N0ExLjUzMywxLjUzMywwLDAsMSwyOS42ODEsMTIuOTUzWm0tNC4yMjMsOS4yMjJhMi40MTgsMi40MTgsMCwwLDAsLjk4LTEuOTEyVjE1Ljg4OGgyLjEyN2EyLjExNCwyLjExNCwwLDAsMCwxLjctLjg0NiwyLjk5MiwyLjk5MiwwLDAsMC0yLjE4LTQuOTloLTkuNjVhMi4xMTQsMi4xMTQsMCwwLDAtMS43Ljg0NiwyLjk5MiwyLjk5MiwwLDAsMCwyLjE4LDQuOTlIMjAuNnY0LjM3NWEyLjQxOCwyLjQxOCwwLDAsMCwuOTgsMS45MTIsMy4xNiwzLjE2LDAsMCwwLDEuOTIzLjYzMWguMDI5QTMuMTYsMy4xNiwwLDAsMCwyNS40NTgsMjIuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzNiY2VmY1xcXCIvPlwiLFxuXHRcIlRlWFwiOiBcIjxwYXRoIGQ9XFxcIk0xMS4zMzMsMTMuMTIyYy0uMTI4LTEuNTYyLS4yNDEtMi43NTYtMi4yODctMi43NTZINy45MXY4LjRoMi4xNDV2LjYxMWwtMy4wODMtLjAyOS0zLjA4Mi4wMjl2LS42MTFINi4wMzR2LTguNEg0Ljg4NGMtMi4wNDYsMC0yLjE1OSwxLjIwOC0yLjI4NywyLjc1NkgybC4yODQtMy4zNjdoOS4zNjJsLjI4NCwzLjM2N2gtLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyMi41M0gxMC40MVYyMS45MmgxLjUwNlYxMy40NjdIMTAuNDF2LS42MTFoOC42MzdsLjQxMiwzLjM2N2gtLjZjLS4yMTMtMS44MzMtLjY4Mi0yLjc1Ni0yLjg1NS0yLjc1NkgxMy43OTFWMTcuMmguODM4YzEuMzY0LDAsMS41MDUtLjYsMS41MDUtMS42NjJoLjZ2My45MzVoLS42YzAtMS4wOC0uMTQyLTEuNjYyLTEuNTA1LTEuNjYyaC0uODM4djQuMTA2aDIuMjE2YzIuNDcyLDAsMy0xLjEwOCwzLjMtMy4yMjVoLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjcyNywxOS4xODZjLS41NCwwLTEuOTYsMC0yLjQxNS4wMjlWMTguNmgxLjE3OWwtMi41NTctMy41NTItMi41MjksMy4zODFBNC4xLDQuMSwwLDAsMCwyMi43LDE4LjZ2LjYxMWMtLjM1NS0uMDI5LTEuNTc2LS4wMjktMi4wMTctLjAyOS0uNCwwLTEuNTQ4LDAtMS44NzUuMDI5VjE4LjZoLjM4M2E3LjQ1OSw3LjQ1OSwwLDAsMCwuODI0LS4wNDNjLjUtLjA0My41NC0uMDg1LjY2Ny0uMjU2TDIzLjUzNiwxNC41bC0zLjE1My00LjQxOEgxOVY5LjQ3Yy4zODQuMDI4LDEuNzkuMDI4LDIuMjczLjAyOC41ODIsMCwxLjkxOCwwLDIuNDI5LS4wMjh2LjYxMUgyMi41MjhsMi4xMTcsMi45NTUsMi4wNzQtMi43ODRhNC4xLDQuMSwwLDAsMC0xLjI5My0uMTdWOS40N2MuMzU2LjAyOCwxLjU5MS4wMjgsMi4wMzIuMDI4LjQsMCwxLjUzNCwwLDEuODYxLS4wMjh2LjYxMWgtLjM2OWE1LjI2NCw1LjI2NCwwLDAsMC0uODM4LjA0M2MtLjQ2OS4wNDMtLjUyNi4wNzEtLjY2Ny4yNTZsLTIuNCwzLjIxTDI4LjYzNiwxOC42SDMwdi42MTFDMjkuNjQ1LDE5LjE4NiwyOC4xODIsMTkuMTg2LDI3LjcyNywxOS4xODZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+XCIsXG5cdFwiVGV4dGlsZVwiOiBcIjxwYXRoIGQ9XFxcIk0yOC42ODEsMjYuMDc1SDMuMzE5QTEuMzE3LDEuMzE3LDAsMCwxLDIsMjQuNzU2VjcuMjQ0QTEuMzE3LDEuMzE3LDAsMCwxLDMuMzE5LDUuOTI1SDI4LjY4MUExLjMxNywxLjMxNywwLDAsMSwzMCw3LjI0NFYyNC43NkExLjMxNiwxLjMxNiwwLDAsMSwyOC42ODEsMjYuMDc1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTdhY1xcXCIvPjxwYXRoIGQ9XFxcIk02LjA2NiwxMi44NDhhNC45ODcsNC45ODcsMCwwLDEsMS41MDgtLjY1OVYxMC42NjRhMy43LDMuNywwLDAsMSwuNzQzLS4zMyw3Ljg2OSw3Ljg2OSwwLDAsMSwxLjMyNy0uMzQ3aC42NDJ2Mi4zOTFoMi40ODRWMTMuNkgxMC4yODZ2NC44NDhhMy4xNzIsMy4xNzIsMCwwLDAsLjI5LDEuNjA5LDEuMDcsMS4wNywwLDAsMCwuOTcxLjQ0OCw3LjEyNyw3LjEyNywwLDAsMCwuNzYtLjA0OCwzLjMzOCwzLjMzOCwwLDAsMCwuNzgyLS4xOGwuMTMyLjYyYTIuMzg4LDIuMzg4LDAsMCwxLS41LjM1Niw1LjQ1Nyw1LjQ1NywwLDAsMS0uNzUyLjM1Niw1LjgzNyw1LjgzNywwLDAsMS0uOTIzLjI4MUE0Ljc2OSw0Ljc2OSwwLDAsMSwxMCwyMmEyLjM4NSwyLjM4NSwwLDAsMS0xLjgyNC0uNjM3LDIuOTQ3LDIuOTQ3LDAsMCwxLS42LTIuMDYyVjEzLjU5MUg2LjA2NlpcXFwiLz48cGF0aCBkPVxcXCJNMTQuNjA3LDIwLjQ1M2ExLjQ0NywxLjQ0NywwLDAsMSwuNDMxLTEuMDksMS41OTEsMS41OTEsMCwwLDEsMS4xNDctLjQxMywxLjY0OSwxLjY0OSwwLDAsMSwxLjE2NS40MTMsMS40MjIsMS40MjIsMCwwLDEsLjQ1MywxLjA5LDEuMzY5LDEuMzY5LDAsMCwxLS40NTMsMS4wODEsMS42OTIsMS42OTIsMCwwLDEtMS4xNjUuNCwxLjYxLDEuNjEsMCwwLDEtMS4xNDctLjRBMS40MjcsMS40MjcsMCwwLDEsMTQuNjA3LDIwLjQ1M1pcXFwiLz5cIixcblx0XCJUT01MXCI6IFwiPHBhdGggZD1cXFwiTTIyLjc2LDYuODN2My4yNWgtNVYyNS4xN0gxNC4yNlYxMC4wOGgtNVY2LjgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzdmN2Y3ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yLDJIOC4yVjUuMDlINS4zNHYyMS44SDguMlYzMEgyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwzMEgyMy44VjI2LjkxaDIuODZWNS4xMUgyMy44VjJIMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+XCIsXG5cdFwiVFNDb25maWdcIjogXCI8cGF0aCBkPVxcXCJNMjMuODI3LDguMjQzQTQuNDI0LDQuNDI0LDAsMCwxLDI2LjA1LDkuNTI0YTUuODUzLDUuODUzLDAsMCwxLC44NTIsMS4xNDNjLjAxMS4wNDUtMS41MzQsMS4wODMtMi40NzEsMS42NjItLjAzNC4wMjMtLjE2OS0uMTI0LS4zMjItLjM1YTIuMDE0LDIuMDE0LDAsMCwwLTEuNjctMWMtMS4wNzctLjA3NC0xLjc3MS40OS0xLjc2NiwxLjQzM2ExLjMsMS4zLDAsMCwwLC4xNTMuNjY2Yy4yMzcuNDkuNjc3Ljc4NCwyLjA1OSwxLjM4MywyLjU0NCwxLjEsMy42MzYsMS44MTcsNC4zMSwyLjg0M2E1LjE1OCw1LjE1OCwwLDAsMSwuNDE2LDQuMzMzLDQuNzY0LDQuNzY0LDAsMCwxLTMuOTMyLDIuODE1LDEwLjksMTAuOSwwLDAsMS0yLjcwOC0uMDI4LDYuNTMxLDYuNTMxLDAsMCwxLTMuNjE2LTEuODg0LDYuMjc4LDYuMjc4LDAsMCwxLS45MjYtMS4zNzEsMi42NTUsMi42NTUsMCwwLDEsLjMyNy0uMjA4Yy4xNTgtLjA5Ljc1Ni0uNDM0LDEuMzItLjc2MWwxLjAyNC0uNi4yMTQuMzEyYTQuNzcxLDQuNzcxLDAsMCwwLDEuMzUsMS4yOTIsMy4zLDMuMywwLDAsMCwzLjQ1OC0uMTc1LDEuNTQ1LDEuNTQ1LDAsMCwwLC4yLTEuOTc0Yy0uMjc2LS40LS44NC0uNzI3LTIuNDQzLTEuNDIyYTguOCw4LjgsMCwwLDEtMy4zNDktMi4wNTUsNC42ODcsNC42ODcsMCwwLDEtLjk3Ni0xLjc3Nyw3LjExNiw3LjExNiwwLDAsMS0uMDYyLTIuMjY4LDQuMzMyLDQuMzMyLDAsMCwxLDMuNjQ0LTMuMzc0QTksOSwwLDAsMSwyMy44MjcsOC4yNDNaTTE1LjQ4NCw5LjcyNmwuMDExLDEuNDU0aC00LjYzVjI0LjMyOEg3LjZWMTEuMTgzSDIuOTdWOS43NTVhMTMuOTg2LDEzLjk4NiwwLDAsMSwuMDQtMS40NjZjLjAxNy0uMDIzLDIuODMyLS4wMzQsNi4yNDUtLjAyOGw2LjIxMS4wMTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+PHBhdGggZD1cXFwiTTI3LjA3NSwyNS4xMDdsLjM2My0uMzYxYzEuNjguMDU1LDEuNzA2LDAsMS43OC0uMTc3bC40NjItMS4xMjQuMDM0LS4xMDctLjAzOC0uMDkzYy0uMDItLjA0OS0uMDgxLS4yLTEuMTMtMS4ydi0uNTI2YzEuMjExLTEuMTY2LDEuMTg1LTEuMjI2LDEuMTE2LTEuNGwtLjQ2LTEuMTM2Yy0uMDY5LS4xNy0uMS0uMjM3LTEuNzYzLS4xOTFsLS4zNjQtLjM2N2E4LjEzOCw4LjEzOCwwLDAsMC0uMDU3LTEuNjU3bC0uMDQ3LS4xMDYtMS4yLS41MjVjLS4xNzctLjA4MS0uMjM5LS4xMS0xLjM3MiwxLjEyNGwtLjUwOS0uMDA4Yy0xLjE2Ny0xLjI0NS0xLjIyMi0xLjIyMy0xLjQtMS4xNTJsLTEuMTE1LjQ1MmMtLjE3NS4wNzEtLjIzNi4xLS4xNjksMS43OWwtLjM2LjM1OWMtMS42OC0uMDU1LTEuNywwLTEuNzc4LjE3N0wxOC42MDYsMjBsLS4wMzYuMTA4LjAzOC4wOTRjLjAyLjA0OC4wNzguMTk0LDEuMTMsMS4ydi41MjVjLTEuMjExLDEuMTY2LTEuMTg0LDEuMjI2LTEuMTE1LDEuNGwuNDU5LDEuMTM3Yy4wNy4xNzQuMS4yMzYsMS43NjMuMTkybC4zNjMuMzc3YTguMTY5LDguMTY5LDAsMCwwLC4wNTUsMS42NTRsLjA0Ny4xMDcsMS4yMDguNTI4Yy4xNzYuMDczLjIzNi4xLDEuMzY2LTEuMTNsLjUwOS4wMDZjMS4xNjgsMS4yNDcsMS4yMjgsMS4yMjMsMS40LDEuMTU0bDEuMTEzLS40NUMyNy4wODIsMjYuODI3LDI3LjE0MywyNi44LDI3LjA3NSwyNS4xMDdabS00Ljc4OC0yLjYzMmEyLDIsMCwxLDEsMi42MTgsMS4xNEEyLjAyMywyLjAyMywwLDAsMSwyMi4yODcsMjIuNDc1WlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5YjhjNFxcXCIvPlwiLFxuXHRcIlR3aWdcIjogXCI8cGF0aCBkPVxcXCJNNC41NzQsNS40NjNjLjI2Mi40LDIuNS0xLjYwOCw0LjQ1NC0xLjE2MSwyLjA2MS40NzIsNC4wMTQsMy43MjQsNC44NDgsMTMuN2E0MC4xOCw0MC4xOCwwLDAsMSwzLjU0MSwzLjYxcS41My42MTQsMS4wMTMsMS4yMmExMS44NDcsMTEuODQ3LDAsMCwxLC4yMjktMS40LDEyLjMsMTIuMywwLDAsMSwxLjk4MS00LjRBMTkuMTUxLDE5LjE1MSwwLDAsMCwxNy4yNzIsNy45Yy0xLjAzLTEuNDQ1LTQuNi02LjQ3OC04LjU0Ni01Ljg0M0M2LjE4MiwyLjQ2NSw0LjMsNS4wNTQsNC41NzQsNS40NjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjNiZjZhXFxcIi8+PHBhdGggZD1cXFwiTTI0LjQsMzBjLS4zMi0yLjU2Ny0uNDQ4LTQuNzYtLjUtNi40NDktLjA5NC0zLjIzMi4xLTQuNTQxLjktNS43NTYuMTkzLS4yOTUsMS4yODgtMS45NzUsMi41OC0xLjg2MywxLjQ2Ni4xMjgsMi4yMTMsMi40MTQsMi4zNjIsMi4zMzcuMTc1LS4wOS0uMzYtMy41NDMtMi41MzItNC40MzEtMi42LTEuMDYzLTYuMzEyLDIuMDctNy44LDUuMTU0YTEyLjIyMywxMi4yMjMsMCwwLDAtLjg1NywyLjgxLDMyLjU1NSwzMi41NTUsMCwwLDAtLjcxLDguMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3NGQ3NGRcXFwiLz48cGF0aCBkPVxcXCJNMi4yMzgsMTMuOTM1Yy4xNDUtLjQ0NywyLjQ2OC0uMjU5LDQuNTQuMjkzLDIuNS42NjYsNywyLjM0NCwxMS42NTEsOC42MDZBMTIuNTQ0LDEyLjU0NCwwLDAsMSwyMC4yNzksMzBIMTAuMzg2YTIxLjg3NSwyMS44NzUsMCwwLDAtLjE3NS00LjYyLDE0LjksMTQuOSwwLDAsMC0yLjQ1OS03LjE1OEM1LjQ0MSwxNS4xNTksMi4wNTUsMTQuNSwyLjIzOCwxMy45MzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNzhkYzUwXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMsMjEuMzIzYTEuNzUzLDEuNzUzLDAsMSwxLS41MTMtMS4yNEExLjc0OCwxLjc0OCwwLDAsMSwxNy4zLDIxLjMyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjEuOTc1LDIxLjMyM2ExLjc1MywxLjc1MywwLDEsMS0uNTEzLTEuMjRBMS43NDgsMS43NDgsMCwwLDEsMjEuOTc1LDIxLjMyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJUeXBlU2NyaXB0XCI6IFwiPHJlY3QgeD1cXFwiMlxcXCIgeT1cXFwiMlxcXCIgd2lkdGg9XFxcIjI4XFxcIiBoZWlnaHQ9XFxcIjI4XFxcIiByeD1cXFwiMS4zMTJcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMTc4YzZcXFwiLz48cGF0aCBkPVxcXCJNMTguMjQ1LDIzLjc1OXYzLjA2OGE2LjQ5Miw2LjQ5MiwwLDAsMCwxLjc2NC41NzUsMTEuNTYsMTEuNTYsMCwwLDAsMi4xNDYuMTkyLDkuOTY4LDkuOTY4LDAsMCwwLDIuMDg4LS4yMTEsNS4xMSw1LjExLDAsMCwwLDEuNzM1LS43LDMuNTQyLDMuNTQyLDAsMCwwLDEuMTgxLTEuMjY2LDQuNDY5LDQuNDY5LDAsMCwwLC4xODYtMy4zOTQsMy40MDksMy40MDksMCwwLDAtLjcxNy0xLjExNyw1LjIzNiw1LjIzNiwwLDAsMC0xLjEyMy0uODc3LDEyLjAyNywxMi4wMjcsMCwwLDAtMS40NzctLjczNHEtLjYtLjI0OS0xLjA4LS40ODRhNS41LDUuNSwwLDAsMS0uODEzLS40NzksMi4wODksMi4wODksMCwwLDEtLjUxNi0uNTE4LDEuMDkxLDEuMDkxLDAsMCwxLS4xODEtLjYxOCwxLjAzOSwxLjAzOSwwLDAsMSwuMTYyLS41NzEsMS40LDEuNCwwLDAsMSwuNDU5LS40MzYsMi40MzksMi40MzksMCwwLDEsLjcyNi0uMjgzLDQuMjExLDQuMjExLDAsMCwxLC45NTYtLjEsNS45NDIsNS45NDIsMCwwLDEsLjgwOC4wNTgsNi4yOTIsNi4yOTIsMCwwLDEsLjg1Ni4xNzcsNS45OTQsNS45OTQsMCwwLDEsLjgzNi4zLDQuNjU3LDQuNjU3LDAsMCwxLC43NTEuNDIyVjEzLjlhNy41MDksNy41MDksMCwwLDAtMS41MjUtLjQsMTIuNDI2LDEyLjQyNiwwLDAsMC0xLjktLjEyOSw4Ljc2Nyw4Ljc2NywwLDAsMC0yLjA2NC4yMzUsNS4yMzksNS4yMzksMCwwLDAtMS43MTYuNzMzLDMuNjU1LDMuNjU1LDAsMCwwLTEuMTcxLDEuMjcxLDMuNzMxLDMuNzMxLDAsMCwwLS40MzEsMS44NDUsMy41ODgsMy41ODgsMCwwLDAsLjc4OSwyLjM0LDYsNiwwLDAsMCwyLjM5NSwxLjYzOXEuNjMuMjYsMS4xNzUuNTA5YTYuNDU4LDYuNDU4LDAsMCwxLC45NDIuNTE3LDIuNDYzLDIuNDYzLDAsMCwxLC42MjYuNTg1LDEuMiwxLjIsMCwwLDEsLjIzLjcxOSwxLjEsMS4xLDAsMCwxLS4xNDQuNTUyLDEuMjY5LDEuMjY5LDAsMCwxLS40MzUuNDQxLDIuMzgxLDIuMzgxLDAsMCwxLS43MjYuMjkyLDQuMzc3LDQuMzc3LDAsMCwxLTEuMDE4LjEwNSw1Ljc3Myw1Ljc3MywwLDAsMS0xLjk2OS0uMzVBNS44NzQsNS44NzQsMCwwLDEsMTguMjQ1LDIzLjc1OVptLTUuMTU0LTcuNjM4aDRWMTMuNTk0SDUuOTM4djIuNTI3SDkuOTJWMjcuMzc1aDMuMTcxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPlwiLFxuXHRcIlR5cG9TY3JpcHRcIjogXCI8cGF0aCBkPVxcXCJNMjMuMDkzLDIxLjNhMy44NDcsMy44NDcsMCwwLDEtMS4xOC4xNjVjLTMuNTU1LDAtOC43NzgtMTIuNDI0LTguNzc4LTE2LjU1OSwwLTEuNTIzLjM2Mi0yLjAzMS44Ny0yLjQ2NkM5LjY1MywyLjk0Myw0LjQzLDQuNTM5LDIuNzYxLDYuNTdhNC4wNDgsNC4wNDgsMCwwLDAtLjU4LDIuMzIxQzIuMTgxLDE1LjM0OCw5LjA3MiwzMCwxMy45MzMsMzBjMi4yNDgsMCw2LjA0MS0zLjcsOS4xNi04LjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg3MDBcXFwiLz48cGF0aCBkPVxcXCJNMjAuODIzLDJjNC41LDAsOSwuNzI1LDksMy4yNjQsMCw1LjE1MS0zLjI2NCwxMS4zODktNC45MzMsMTEuMzg5LTIuOTc0LDAtNi42NzMtOC4yNjktNi42NzMtMTIuNCwwLTEuODg2LjcyNS0yLjI0OSwyLjYxMS0yLjI0OVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODcwMFxcXCIvPlwiLFxuXHRcIlZcIjogXCI8cGF0aCBkPVxcXCJNMjAuNDY3LDI5LjI4OCwyOS45NTIsMi45MTNhLjUuNSwwLDAsMC0uNTY2LS43MjhMMjEuOTI3LDIuOWExLjQ2NCwxLjQ2NCwwLDAsMC0xLjE0MS45TDEyLjAwNywyOS4wMDZhLjU3My41NzMsMCwwLDAsLjU3OC44MTNoNy4yNmEuNjU3LjY1NywwLDAsMCwuNTc3LS40WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzNmI4YVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjYxNCwyLjE4NWw3LjQ1OS43MTlhMS40NjYsMS40NjYsMCwwLDEsMS4xNDIuOUwyMC4xOCwyOS40MTNhLjI4Ni4yODYsMCwwLDEtLjI4OS40MDZIMTIuNTg1YTEuMzExLDEuMzExLDAsMCwxLTEuMTUyLS44MUwyLjA0OCwyLjkxM0EuNS41LDAsMCwxLDIuNjE0LDIuMTg1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzVkODdiZlxcXCIvPlwiLFxuXHRcIlZhbGFcIjogXCI8cGF0aCBkPVxcXCJNMTIuNTA5LDE3LjE5M2MtLjE2NS02LjgzNi0uMzI1LTEyLjQ1NS0uMzU3LTEyLjQ4N0E3LjkxNiw3LjkxNiwwLDAsMCw5Ljg3OSw1Ljg3NCw3LjYwNiw3LjYwNiwwLDAsMCw3LjMyNCw5LjE4OGE4LjQyMiw4LjQyMiwwLDAsMC0uNTg3LDMuNTQzLDQuNjY1LDQuNjY1LDAsMCwwLC4yLDEuOTYyLDMuNDE3LDMuNDE3LDAsMCwxLC4xODIuNTZjLS4wMTIuMDA5LS4zMzgtLjAxOC0uNzI0LS4wNjEtMS44NjgtLjIwNy0yLjc4Ni0xLjA1LTMtMi43NTdBNi4zMTIsNi4zMTIsMCwwLDEsNC44NSw3LjcxOWExNS4xMzQsMTUuMTM0LDAsMCwxLDguNDE0LTUuMTYzLDEyLjg5MSwxMi44OTEsMCwwLDEsMi41NDItLjIzNWwxLjc0OC0uMDUuMDU5LDIuNTA2Yy4wMzIsMS4zNzguMSw2LjM1OC4xNjEsMTEuMDY3cy0uMjUyLDguMjktLjIxOSw4LjRDMTkuNSwxNy44NzksMjIsMTMuMDczLDI0LjM2Nyw2LjI1M2wxLjQyNy0zLjk4M0gyOC41NGMtLjAyMi4wNjMtMi43NTEsNi41LTUuNTE0LDEzLjkxNmwtNS40NzMsMTMuNTVIMTIuOTc2QzEyLjk3NiwyNy45MDYsMTIuNTM1LDE4LjQ4NiwxMi41MDksMTcuMTkzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQwMzc1N1xcXCIvPjxwYXRoIGQ9XFxcIk0xNy43MzIsMzBIMTIuNzEzdi0uMjYzYzAtMS4xMzctLjE3LTUuMTkyLS4zMDctOC40NTItLjA4MS0xLjkyOS0uMTUtMy42LS4xNjEtNC4wODctLjE1Ni02LjQ3OS0uMjg2LTExLS4zMzYtMTIuMTYzYTExLjY3NCwxMS42NzQsMCwwLDAtMS44NzQsMS4wNDksNy4zNDgsNy4zNDgsMCwwLDAtMi40NjYsMy4yQTguMTQ2LDguMTQ2LDAsMCwwLDcsMTIuNzMxLDQuMzcsNC4zNywwLDAsMCw3LjE4NSwxNC42Yy4yMTUuNTY5LjI3My43MjMuMS44NTktLjA5My4wNzMtLjEwNy4wODQtLjkxNi0uMDA3LTEuOTc2LS4yMTktMy0xLjE2Ny0zLjIzNC0yLjk4NkE2LjU2OCw2LjU2OCwwLDAsMSw0LjY0LDcuNTYxLDE1LjQzOSwxNS40MzksMCwwLDEsMTMuMiwyLjMsMTMuMTc2LDEzLjE3NiwwLDAsMSwxNS44LDIuMDU4TDE3LjgxMSwybC4wNjUsMi43N2MuMDMyLDEuMzkyLjEwNiw2LjQ2MS4xNjEsMTEuMDcuMDMxLDIuNjE2LS4wNTIsNC45MTUtLjEyNCw2LjQzLjkzMS0yLjc2MywxLjk1OC01LjI3LDMuMDMzLTcuOSwxLjA0My0yLjU0NywyLjEyMi01LjE4LDMuMTczLTguMjA3bDEuNDkxLTQuMTZoMy4zbC0uMTI1LjM1MWMwLC4wMDctLjAzMS4wNzYtLjA4NC4yLTEuMSwyLjYyMi0zLjI1OSw3Ljg4OS01LjQzLDEzLjcxN1ptLTQuNDk1LS41MjZoNC4xNGw1LjQwNy0xMy4zODZjMi4xMjQtNS43LDQuMjQzLTEwLjg3Niw1LjM2Mi0xMy41NTVIMjUuOTc5TDI0LjYxNCw2LjM0MmMtMS4wNTUsMy4wMzgtMi4xMzcsNS42NzgtMy4xODMsOC4yMzEtMS4zMTEsMy4yLTIuNTUsNi4yMjYtMy42MjYsOS43NDdsLS4yNTUuODMxLS4yNDgtLjgzM2EzLjI3NCwzLjI3NCwwLDAsMSwuMDIxLS44MzljLjA3NC0xLjM1LjIyOS00LjE1OC4xODgtNy42MzMtLjA1NS00LjYwNy0uMTI5LTkuNjc0LS4xNjEtMTEuMDY0TDE3LjMsMi41NDFsLTEuNDg0LjA0M2ExMi43MjksMTIuNzI5LDAsMCwwLTIuNDkuMjI4QTE0Ljg4NywxNC44ODcsMCwwLDAsNS4wNiw3Ljg3N2E2LjA3MSw2LjA3MSwwLDAsMC0xLjQsNC41MjRjLjIsMS41OCwxLjAyOCwyLjMzNiwyLjc3LDIuNTI5bC4zMzMuMDM1Yy0uMDE5LS4wNTQtLjA0MS0uMTE0LS4wNjYtLjE3OWE0Ljg5Myw0Ljg5MywwLDAsMS0uMjE5LTIuMDU1LDguNyw4LjcsMCwwLDEsLjYtMy42MzgsNy44ODMsNy44ODMsMCwwLDEsMi42NDQtMy40M2MuMDIyLS4wMTYsMi4yMzItMS41MjUsMi42MTUtMS4xNDIuMDkyLjA5Mi4xMzEuMTMxLjQzMywxMi42NjZoMGMuMDEuNDg1LjA4LDIuMTQ5LjE2LDQuMDc2QzEzLjA2LDI0LjMxMywxMy4yMTcsMjguMDYsMTMuMjM3LDI5LjQ3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjOGM4YzhcXFwiLz5cIixcblx0XCJWQi5OZXRcIjogXCI8cGF0aCBkPVxcXCJNNi42Nyw3LjgzNiw5LDE4LjkxNSwxMS4zMzYsNy44MzZIMTZMMTEuMzM2LDI0LjE2NEg2LjY3MkwyLDcuODM2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE5YVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4zMzEsNy44MzZoNy42YTQuMDgsNC4wOCwwLDAsMSwyLjksMS43NDksMy43OCwzLjc4LDAsMCwxLC41NzEsMi4wNCwzLjk4NSwzLjk4NSwwLDAsMS0uNTcxLDIuMDM0LDQuMTA4LDQuMTA4LDAsMCwxLTIuMzQxLDEuNzYzLDQuMSw0LjEsMCwwLDEsMi45MjksMS43NTYsMy44LDMuOCwwLDAsMSwuNTgsMi4xLDQuNjYzLDQuNjYzLDAsMCwxLS41NzksMi41NDYsNS4wNDcsNS4wNDcsMCwwLDEtMy41LDIuMzM4SDE4LjMzMVpNMjMsMTQuMjUyaDEuMTY2YTEuNzU0LDEuNzU0LDAsMCwwLDAtMy41SDIzWm0wLDdIMjQuMzlhMi4wNDcsMi4wNDcsMCwwLDAsMC00LjA4OUgyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUxOWFcXFwiLz5cIixcblx0XCJWQkFcIjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjEwLjQ1NyAxMS4wOTIgMTYuMDE0IDEzLjgzOSAxNi4wMTQgMTguMzA3IDEwLjQ1NyAxNS4zODIgMTAuNDU3IDExLjA5MlxcXCIgc3R5bGU9XFxcImZpbGw6IzY0ODNjMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yLDE4LjYxM2wtNS45MjYtMy4xMlYxMC44TDE2LjIsMTMuNzI0Wk0xMC42NDIsMTUuMjcsMTUuODMsMThWMTMuOTUzbC01LjE4OC0yLjU2NFpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2LjM3MSAxMy44MzkgMTYuMzcxIDE4LjMwNyAyMS4zMTUgMTUuODE0IDIxLjMxNSAxMS4zNTQgMTYuMzcxIDEzLjgzOVxcXCIgc3R5bGU9XFxcImZpbGw6IzY0ODNjMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODYsMTguNjA3VjEzLjcyNWw1LjMxMy0yLjY3djQuODczWm0uMzY5LTQuNjU1djQuMDU1TDIxLjEzLDE1LjdWMTEuNjUzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTAuNzAzIDEwLjc5NyAxNi4xODYgMTMuNTggMjEuMDgyIDExLjA2NCAxNS43NzcgOC4zODkgMTAuNzAzIDEwLjc5N1xcXCIgc3R5bGU9XFxcImZpbGw6IzY0ODNjMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODcsMTMuNzg4bC01LjktMyw1LjUtMi42MDgsNS43MDksMi44NzlaTTExLjEyMiwxMC44bDUuMDY0LDIuNTcsNC40OS0yLjMwOC00LjktMi40NzFaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC45NTcgMTUuODI5IDI0LjUxNSAxOC41NzUgMjQuNTE1IDIzLjA0MyAxOC45NTcgMjAuMTE4IDE4Ljk1NyAxNS44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM5NTI3ODFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNywyMy4zNDlsLTUuOTI2LTMuMTJ2LTQuN0wyNC43LDE4LjQ2Wm0tNS41NTctMy4zNDMsNS4xODgsMi43MzFWMTguNjg5bC01LjE4OC0yLjU2NFpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI0Ljg3MSAxOC41NzUgMjQuODcxIDIzLjA0MyAyOS44MTUgMjAuNTUgMjkuODE1IDE2LjA5IDI0Ljg3MSAxOC41NzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM5NTI3ODFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNjg3LDIzLjM0M1YxOC40NjFMMzAsMTUuNzkxdjQuODczWm0uMzY5LTQuNjU1djQuMDU1bDQuNTc1LTIuMzA4VjE2LjM4OVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjIwMyAxNS41NDYgMjQuNjg3IDE4LjMyOSAyOS41ODMgMTUuODEyIDI0LjM2NCAxMy4zNDYgMTkuMjAzIDE1LjU0NlxcXCIgc3R5bGU9XFxcImZpbGw6Izk1Mjc4MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC42ODcsMTguNTM2bC01LjkyLTMuMDA1LDUuNi0yLjM4N0wzMCwxNS44MDVaTTE5LjY0LDE1LjU2bDUuMDQ2LDIuNTYxLDQuNDc5LTIuMy00LjgwNi0yLjI3WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi4xOSAxNS40OTYgNy43NDggMTguMjQzIDcuNzQ4IDIyLjcxMSAyLjE5IDE5Ljc4NiAyLjE5IDE1LjQ5NlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q4N2IzMFxcXCIvPjxwYXRoIGQ9XFxcIk03LjkzMiwyMy4wMTcsMi4wMDYsMTkuOVYxNS4ybDUuOTI2LDIuOTI5Wk0yLjM3NSwxOS42NzRsNS4xODgsMi43MzFWMTguMzU3TDIuMzc1LDE1Ljc5M1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjguMTA0IDE4LjI0MyA4LjEwNCAyMi43MTEgMTMuMDQ4IDIwLjIxOCAxMy4wNDggMTUuNzU4IDguMTA0IDE4LjI0M1xcXCIgc3R5bGU9XFxcImZpbGw6I2Q4N2IzMFxcXCIvPjxwYXRoIGQ9XFxcIk03LjkyLDIzLjAxMVYxOC4xMjlsNS4zMTMtMi42N3Y0Ljg3M1ptLjM2OS00LjY1NXY0LjA1NUwxMi44NjQsMjAuMVYxNi4wNTdaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjQzNiAxNS4yMTMgNy45MiAxNy45OTcgMTIuODE2IDE1LjQ4IDcuNTk3IDEzLjAxNCAyLjQzNiAxNS4yMTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNkODdiMzBcXFwiLz48cGF0aCBkPVxcXCJNNy45MiwxOC4yLDIsMTUuMmw1LjYtMi4zODcsNS42MzIsMi42NjFaTTIuODczLDE1LjIyOGw1LjA0NiwyLjU2MSw0LjQ3OS0yLjMtNC44MDYtMi4yN1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEwLjg3NSAxNi4yOTYgMTYuNDMyIDE5LjA0MiAxNi40MzIgMjMuNTExIDEwLjg3NSAyMC41ODUgMTAuODc1IDE2LjI5NlxcXCIgc3R5bGU9XFxcImZpbGw6I2UwZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi42MTcsMjMuODE2LDEwLjY5MSwyMC43VjE2bDUuOTI2LDIuOTI5Wk0xMS4wNiwyMC40NzRsNS4xODgsMi43MzFWMTkuMTU3TDExLjA2LDE2LjU5M1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2Ljc4OSAxOS4wNDIgMTYuNzg5IDIzLjUxMSAyMS43MzMgMjEuMDE3IDIxLjczMyAxNi41NTcgMTYuNzg5IDE5LjA0MlxcXCIgc3R5bGU9XFxcImZpbGw6I2UwZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi42LDIzLjgxMVYxOC45MjlsNS4zMTMtMi42N3Y0Ljg3M1ptLjM2OS00LjY1NXY0LjA1NUwyMS41NDksMjAuOVYxNi44NTdaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMS4xMjEgMTYuMDAxIDE2LjYwNSAxOC43ODQgMjEuNTAxIDE2LjI2NyAxNi4xOTYgMTMuNTkzIDExLjEyMSAxNi4wMDFcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMGQ0MDBcXFwiLz48cGF0aCBkPVxcXCJNMTYuNjA1LDE4Ljk5MWwtNS45LTMsNS41LTIuNjA4LDUuNzA5LDIuODc5Wk0xMS41NCwxNi4wMDZsNS4wNjQsMi41Nyw0LjQ5LTIuMzA4LTQuOS0yLjQ3MVpcXFwiLz5cIixcblx0XCJWZWxvY2l0eVwiOiBcIjxwYXRoIGQ9XFxcIk0xNi4yNDUsMjQuMTg3QTguMzUyLDguMzUyLDAsMSwxLDI0LjYsMTUuODM1LDguMzYyLDguMzYyLDAsMCwxLDE2LjI0NSwyNC4xODdabTAtMTQuNzYyYTYuNDEsNi40MSwwLDEsMCw2LjQxLDYuNDFBNi40MTcsNi40MTcsMCwwLDAsMTYuMjQ1LDkuNDI1WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjkuMTMyIDguNTUxIDI1LjQ1MSA2LjUzMSAyNS40NTEgNy40NzQgMTUuODIxIDcuNDc0IDE1LjgyMSA5LjQyNCAyNS40NTEgOS40MjQgMjUuNDUxIDEwLjU3MSAyOS4xMzIgOC41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNjI2OTJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjguOTg0IDIgNi45NjQgNS42ODcgNy45MDYgNS42ODcgNy45MDYgMTUuMzI4IDkuODU3IDE1LjMyOCA5Ljg1NyA1LjY4NyAxMS4wMDQgNS42ODcgOC45ODQgMlxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuNzA1IDMwIDIxLjY4NSAyNi4yNDMgMjIuNjI4IDI2LjI0MyAyMi42MjggMTYuNDE3IDI0LjU3OCAxNi40MTcgMjQuNTc4IDI2LjI0MyAyNS43MjUgMjYuMjQzIDIzLjcwNSAzMFxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi44NjggMjMuMzIgNi42MzQgMjEuMyA2LjYzNCAyMi4yNDIgMTYuNDg0IDIyLjI0MiAxNi40ODQgMjQuMTkyIDYuNjM0IDI0LjE5MiA2LjYzNCAyNS4zNCAyLjg2OCAyMy4zMlxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5MlxcXCIvPlwiLFxuXHRcIlZlcmlsb2dcIjogXCI8cGF0aCBkPVxcXCJNMjkuMDA3LDE3LjRoLjAzN2ExLjQ0OSwxLjQ0OSwwLDAsMCwuOTM4LS4zMTYsMS40NzMsMS40NzMsMCwwLDAsLjUxOS0xLjAzMVYxNS45YTEuNDEzLDEuNDEzLDAsMCwwLTEuMzc2LTEuM2gtLjAwOWMtLjY4NywwLTEuMzc0LDAtMi4wNjIsMEgyNS41VjExLjk1NmwzLjUxMywwaC4wMzRBMS40MTEsMS40MTEsMCwwLDAsMzAuNSwxMC42bDAtLjA5LDAtLjAzMmExLjQxMiwxLjQxMiwwLDAsMC0uNjQ2LTEuMSwxLjQ1NSwxLjQ1NSwwLDAsMC0uODM1LS4yMjVIMjUuNDU2YTIuOTYsMi45NiwwLDAsMC0uMjc4LTEuMDM0LDIuOTA5LDIuOTA5LDAsMCwwLTEuNy0xLjQ2MSwyLjY4NCwyLjY4NCwwLDAsMC0uNjI5LS4xM1Y0Ljk0N2MwLS42OSwwLTEuMzgsMC0yLjA2M0ExLjQxNCwxLjQxNCwwLDAsMCwyMS40ODEsMS41aC0uMTE2YTEuNCwxLjQsMCwwLDAtMS4zMTksMS4zODhxMCwxLjE1NCwwLDIuMzA2VjYuNUgxNy40VjQuOTgxYzAtLjcsMC0xLjQsMC0yLjA4N0ExLjQxLDEuNDEsMCwwLDAsMTYuMDUzLDEuNUgxNS45YTEuNDA4LDEuNDA4LDAsMCwwLTEuMywxLjM4M2MwLC42ODgsMCwxLjM3NiwwLDIuMDY0VjYuNTA4cS0xLjMxOSwwLTIuNjM5LDBWNC44ODhjMC0uNjY2LDAtMS4zMzIsMC0xLjk4OWExLjM2NiwxLjM2NiwwLDAsMC0uNC0uOTc1LDEuNCwxLjQsMCwwLDAtLjk4NC0uNDI0SDEwLjVBMS40MSwxLjQxLDAsMCwwLDkuMTU5LDIuODgxYzAsLjY4MywwLDEuMzY2LDAsMi4wNDl2MS42YTIuOTMzLDIuOTMzLDAsMCwwLTIuNDY2LDEuOSwyLjg3OCwyLjg3OCwwLDAsMC0uMTYxLjcyNkg0Ljk1N2MtLjY5MywwLTEuMzg2LDAtMi4wNzMsMEgyLjg3NkExLjQxMywxLjQxMywwLDAsMCwxLjUsMTAuNXYuMDk1YTEuNDE3LDEuNDE3LDAsMCwwLC41NzUsMS4wOTEsMS40NjMsMS40NjMsMCwwLDAsLjg4Ny4yNzNoLjAxN2wzLjUyMiwwVjE0LjZINC45NDhjLS42ODYsMC0xLjM3NSwwLTIuMDU3LDBBMS40MjgsMS40MjgsMCwwLDAsMS41LDE1LjkxM1YxNi4xYTEuNCwxLjQsMCwwLDAsMS4zODYsMS4zYy43MTEsMCwxLjQyMywwLDIuMTM1LDBINi41VjIwLjA1bC0uMjkyLDBjLS42MTMtLjAwNy0xLjIyNiwwLTEuODM4LDBIMy4wODdhMS42MzMsMS42MzMsMCwwLDAtLjkxOC4yMTFBMS40MzcsMS40MzcsMCwwLDAsMS41LDIxLjRWMjEuNWExLjQxNywxLjQxNywwLDAsMCwxLjM3NSwxLjMzN2guMDA1cS42NDUsMCwxLjI5LDBINi41NDZhMi44MzIsMi44MzIsMCwwLDAsMS45NzgsMi41LDIuNzEyLDIuNzEyLDAsMCwwLC42MzEuMTI4djEuNjJjMCwuNjc4LDAsMS4zNTQsMCwyLjAyNWExLjQsMS40LDAsMSwwLDIuOC0uMDkybDAtMy41MjdIMTQuNnYzLjUxNkExLjQxNCwxLjQxNCwwLDAsMCwxNS45NDcsMzAuNUgxNi4xYTEuNDExLDEuNDExLDAsMCwwLDEuMy0xLjM4NXEuMDA2LTEuMDY2LDAtMi4xMzFWMjUuNWgyLjY0NFYyOS4xQTEuNDIzLDEuNDIzLDAsMCwwLDIxLjQsMzAuNWguMTE5YTEuNDA4LDEuNDA4LDAsMCwwLDEuMTYtLjc0MSwxLjY0MywxLjY0MywwLDAsMCwuMTY3LS44MzNWMjUuNDc0YTIuNjcxLDIuNjcxLDAsMCwwLC42Mi0uMTI4LDIuOTI4LDIuOTI4LDAsMCwwLDEuODg2LTEuODg4LDIuODM0LDIuODM0LDAsMCwwLC4xMjMtLjYxM2gxLjU4MWMuNjg3LDAsMS4zNzUsMCwyLjA1NywwaC4wMDhBMS40MjIsMS40MjIsMCwwLDAsMzAuNSwyMS40ODF2LS4xMThhMS40MDksMS40MDksMCwwLDAtMS4zODItMS4zMThoMGMtLjcxOCwwLTEuNDM2LDAtMi4xNTQsMEgyNS41VjE3LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzVjNWM1O29wYWNpdHk6MC4zXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUxNSwyaC4wNTZhLjkxLjkxLDAsMCwxLC44ODYuODkzYy4wMDYsMS4xMDgsMCwyLjIxNiwwLDMuMzI0LS42LDAtMS4yLDAtMS44LDAsMC0xLjExMSwwLTIuMjIyLDAtMy4zMzNBLjkwNy45MDcsMCwwLDEsMTAuNTE1LDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjkzNywyaC4xMTZhLjkxMi45MTIsMCwwLDEsLjg0Ni44ODljLjAwNiwxLjEwOSwwLDIuMjE5LDAsMy4zMjlIMTUuMWMwLTEuMTEsMC0yLjIyLDAtMy4zM0EuOTExLjkxMSwwLDAsMSwxNS45MzcsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjEuMzkyLDJoLjA4OWEuOTA3LjkwNywwLDAsMSwuODU5Ljg4MWMuMDA3LDEuMTEyLDAsMi4yMjUsMCwzLjMzN2gtMS44YzAtMS4xMDksMC0yLjIxNywwLTMuMzI2QS45MTIuOTEyLDAsMCwxLDIxLjM5MiwyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yLDEwLjUxOGEuOTA4LjkwOCwwLDAsMSwuODgyLS44NTljMS4xMTItLjAwNywyLjIyMywwLDMuMzM0LDBxMCwuOSwwLDEuOGMtMS4wNzksMC0yLjE1OCwwLTMuMjM3LDBhLjk4My45ODMsMCwwLDEtLjYtLjE3M0EuOTI0LjkyNCwwLDAsMSwyLDEwLjU3MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzg2LDkuNjU1aDMuMjMzYTEsMSwwLDAsMSwuNTYxLjE0My45MjQuOTI0LDAsMCwxLC40Mi43MTZ2LjA1OGEuOTMzLjkzMywwLDAsMS0uMy42NTEuOTU3Ljk1NywwLDAsMS0uNjc3LjIzNGMtMS4wNzksMC0yLjE1OCwwLTMuMjM3LDBRMjUuNzg2LDEwLjU1NiwyNS43ODYsOS42NTVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIsMTUuOTQ0YS45MTMuOTEzLDAsMCwxLC44ODgtLjg0MmMxLjEwOS0uMDA3LDIuMjE5LDAsMy4zMjgsMHEwLC45LDAsMS44Yy0xLjEwOSwwLTIuMjE3LDAtMy4zMjYsMEEuOTE1LjkxNSwwLDAsMSwyLDE2LjA2M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzg2LDE1LjFjMS4xMDksMCwyLjIxOCwwLDMuMzI2LDBhLjkxNC45MTQsMCwwLDEsLjg4OS44MzV2LjExN2EuOTQ2Ljk0NiwwLDAsMS0uMzMxLjY0MS45NzMuOTczLDAsMCwxLS42NTEuMjA3SDI1Ljc4NlEyNS43ODUsMTYsMjUuNzg2LDE1LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIuNDMzLDIwLjY3OGExLjEyMSwxLjEyMSwwLDAsMSwuNjQzLS4xMzZjMS4wNDMuMDA2LDIuMDg2LS4wMDYsMy4xMjkuMDA2LjAyOC42LDAsMS4yLjAxMiwxLjgtMS4xMSwwLTIuMjIxLDAtMy4zMzEsMEEuOTExLjkxMSwwLDAsMSwyLDIxLjQ4M1YyMS40QS45MjUuOTI1LDAsMCwxLDIuNDMzLDIwLjY3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzg2LDIwLjU0M2MxLjEwOCwwLDIuMjE2LDAsMy4zMjQsMGEuOTE0LjkxNCwwLDAsMSwuODkuODQ3di4wOWEuOTExLjkxMSwwLDAsMS0uODg4Ljg1OWMtMS4xMDkuMDA3LTIuMjE4LDAtMy4zMjYsMEMyNS43ODYsMjEuNzQzLDI1Ljc4NSwyMS4xNDMsMjUuNzg2LDIwLjU0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNOS42NTYsMjUuNzgxaDEuOGMwLDEuMDgxLDAsMi4xNjIsMCwzLjI0M2EuOTU3Ljk1NywwLDAsMS0uMjM1LjY3Ny45MzEuOTMxLDAsMCwxLS42NTMuM2gtLjA1MmEuOTA3LjkwNywwLDAsMS0uODYtLjg4MkM5LjY1MSwyOC4wMDYsOS42NTgsMjYuODk0LDkuNjU2LDI1Ljc4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMTUuMSwyNS43ODFoMS44YzAsMS4xMSwwLDIuMjIsMCwzLjMzYS45MTQuOTE0LDAsMCwxLS44MzYuODg5aC0uMTE2YS45NC45NCwwLDAsMS0uNjE5LS4zMDYuOTYyLjk2MiwwLDAsMS0uMjI4LS42NzNRMTUuMSwyNy40LDE1LjEsMjUuNzgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMC41NDcsMjkuMTA2YzAtMS4xMDgsMC0yLjIxNywwLTMuMzI1aDEuOGMwLDEuMDQ4LDAsMi4xLDAsMy4xNDRhMS4xNzgsMS4xNzgsMCwwLDEtLjEwNS41OS45Mi45MiwwLDAsMS0uNzU2LjQ4NEgyMS40QS45MTEuOTExLDAsMCwxLDIwLjU0NywyOS4xMDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTI0LjczMiw4LjM0OUEyLjQyOSwyLjQyOSwwLDAsMCwyMy4zMSw3LjEzMSwzLjI0NSwzLjI0NSwwLDAsMCwyMi4yNTQsN2MtNC4zLjAwOC04LjYtLjAxMS0xMi45MDUuMDFBMi40MzYsMi40MzYsMCwwLDAsNy4xNTcsOC42MDYsMy42MTEsMy42MTEsMCwwLDAsNyw5LjkzNHEwLDYuMjUsMCwxMi41YTIuNjczLDIuNjczLDAsMCwwLC4yNjgsMS4yMTlBMi40MzEsMi40MzEsMCwwLDAsOC42ODgsMjQuODcsMy43NTYsMy43NTYsMCwwLDAsOS45MjcsMjVIMjIuMDdhMy43NjIsMy43NjIsMCwwLDAsMS4yNDMtLjEyN0EyLjQyOSwyLjQyOSwwLDAsMCwyNC44NzUsMjMuMywzLjgsMy44LDAsMCwwLDI1LDIyLjA3MXEwLTYuMjUsMC0xMi41QTIuNjg2LDIuNjg2LDAsMCwwLDI0LjczMiw4LjM0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNNy41LDguMzA3bC4wODQtLjJxLjk2OCwwLDEuOTM1LjAyNGguMzk0cS4xNzksMCwuMzk0LS4wMTIuNzc2LS4wMzYsMi44MDctLjAzNi40MDYsMCwuNzg4LjAwNnQuNzQxLjAxOGEuMjM0LjIzNCwwLDAsMSwuMTA4LjEwOGwtLjAyNC4xOTFxLS4wNzIuMTE5LS4zNTguMTE5aC0uMWExMC4zLDEwLjMsMCwwLDAtMS4xLjA1NCwyLjE3OSwyLjE3OSwwLDAsMC0xLC4yNDUuNDMyLjQzMiwwLDAsMC0uMTU1LjM0Niw0LjA1LDQuMDUsMCwwLDAsLjM5NCwxLjRsMS44MTgsNC4yMTcuNjM0LDEuNHEuOTIxLDIuMjIyLDEuODE5LDQuNTM5LjEuMjUxLjE3OS40NTRsLjgtMS45NTlxLjYyLTEuNDgxLDEuMjUyLTMuMTU0bC44MjMtMi4yNDZxLjAyNC0uMDcyLjEzMS0uNDc4YTE3LjAyNiwxNy4wMjYsMCwwLDAsMS4xNTctNCwuNTYxLjU2MSwwLDAsMC0uMTYxLS4zNjQsMS4xNjUsMS4xNjUsMCwwLDAtLjUyLS4zLDcuNzIzLDcuNzIzLDAsMCwwLS45MzItLjE0M2wtLjg4NC0uMTA4YS4zMzcuMzM3LDAsMCwxLS4xMDgtLjJsLjAzNi0uMSwzLjg3LS4wMzZIMjMuNmEzLjEsMy4xLDAsMCwxLC44ODUuMDg0bC4wMTIuMWEuNjQxLjY0MSwwLDAsMS0uMDcyLjI1MSwyLjQ0OSwyLjQ0OSwwLDAsMS0uNTI2LjExOSwzLjYsMy42LDAsMCwwLTEuMjQ0LjI4MSwxLjgxNSwxLjgxNSwwLDAsMC0uNS42ODdsLTMuMTM0LDcuNzY1cS0xLjQ2NiwzLjUtMi4wODYsNS40MjNsLS4zNDUsMS4wMzlhLjUzMS41MzEsMCwwLDEtLjI2My4xLDEuMzgzLDEuMzgzLDAsMCwxLS4zLS4wMzZxLTEuNDIyLTMuNjc2LTIuMzE4LTUuNjgxTDEwLjA1NSw5LjkyYTMuMjQ3LDMuMjQ3LDAsMCwwLS41OTEtLjg5LDUuNDYzLDUuNDYzLDAsMCwwLTEuMzc5LS40MjQsNC4zNDcsNC4zNDcsMCwwLDEtLjQ2Ni0uMTE5QS4zMjYuMzI2LDAsMCwxLDcuNSw4LjMwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNWMyZmZcXFwiLz5cIixcblx0XCJWSERMXCI6IFwiPHBhdGggZD1cXFwiTTIsMkgzMFYzMEgyWm0xLjY4OS4wNjdBMS42MjQsMS42MjQsMCwwLDAsMi4wNjMsMy42OTJWMjguMzE0QTEuNjI1LDEuNjI1LDAsMCwwLDMuNjg5LDI5Ljk0SDI4LjMxNmExLjYyNSwxLjYyNSwwLDAsMCwxLjYyNi0xLjYyNlYzLjY5MmExLjYyNCwxLjYyNCwwLDAsMC0xLjYyNi0xLjYyNVpNMy4wMDgsMjguMDc5YS45MTEuOTExLDAsMCwwLC45MTEuOTEySDI4LjA4M2EuOTExLjkxMSwwLDAsMCwuOTExLS45MTJWMy45MTlhLjkxLjkxLDAsMCwwLS45MTEtLjkxMUgzLjkxOWEuOTEuOTEsMCwwLDAtLjkxMS45MTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMGQ5YjM1XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNS41MiA1LjUwMiAxOC44NTggMjYuNDkxIDEzLjE1NCAyNi40OTEgNi40OTIgNS41MDIgMTAuNTA4IDUuNTAyIDE2LjAyOSAyMi43OTUgMjEuNTA0IDUuNTAyIDI1LjUyIDUuNTAyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwidmltXCI6IFwiPGRlZnM+PGNsaXBQYXRoIGlkPVxcXCJhXFxcIj48cG9seWdvbiBwb2ludHM9XFxcIjIgMiAzMCAyIDMwIDMwIDIgMzAgMiAyIDIgMlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtjbGlwLXJ1bGU6ZXZlbm9kZFxcXCIvPjwvY2xpcFBhdGg+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfdmltPC90aXRsZT48cG9seWdvbiBwb2ludHM9XFxcIjI5Ljk4OSAxNS44NTYgMTUuODU2IDIuMDExIDIuMDExIDE2LjEzNiAxNS44NTYgMjkuOTg5IDI5Ljk4OSAxNS44NTYgMjkuOTg5IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxnIHN0eWxlPVxcXCJjbGlwLXBhdGg6dXJsKCNhKVxcXCI+PHBvbHlnb24gcG9pbnRzPVxcXCIyOS45ODkgMTUuODU2IDE1Ljg1NiAyLjAxMSAyLjAxMSAxNi4xMzYgMTUuODU2IDI5Ljk4OSAyOS45ODkgMTUuODU2IDI5Ljk4OSAxNS44NTZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48L2c+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDI5LjQyMiAxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMjguNTc1IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzI5Njk1ZDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguNTc1IDE1Ljg1NiAyOS40MjIgMTUuODU2IDE1Ljg1NiAyOS40MjIgMTUuODU2IDI4LjU3NSAyOC41NzUgMTUuODU2IDI4LjU3NSAxNS44NTZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuNTc4IDE2LjEzNiAzLjQyNSAxNi4xMzYgMTUuODU2IDI4LjU3NSAxNS44NTYgMjkuNDIyIDIuNTc4IDE2LjEzNiAyLjU3OCAxNi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMTczNjc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuNTc4IDE2LjEzNiAzLjQyNSAxNi4xMzYgMTUuODU2IDI4LjU3NSAxNS44NTYgMjkuNDIyIDIuNTc4IDE2LjEzNiAyLjU3OCAxNi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAzLjQxOCAxNS44NTYgMi41NzggMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMy40MTggMTUuODU2IDMuNDE4XFxcIiBzdHlsZT1cXFwiZmlsbDojNjBjMmFjO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMy40MTggMTUuODU2IDIuNTc4IDIuNTc4IDE2LjEzNiAzLjQyNSAxNi4xMzYgMTUuODU2IDMuNDE4IDE1Ljg1NiAzLjQxOFxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDIuNTc4IDE1Ljg1NiAzLjQxOCAyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDIuNTc4IDE1Ljg1NiAyLjU3OFxcXCIgc3R5bGU9XFxcImZpbGw6IzQzYjU0YTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDIuNTc4IDE1Ljg1NiAzLjQxOCAyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDIuNTc4IDE1Ljg1NiAyLjU3OFxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDI4LjU3NSAyOC41NzUgMTUuODU2IDE1Ljg1NiAzLjQxOCAzLjQyNSAxNi4xMzYgMTUuODU2IDI4LjU3NSAxNS44NTYgMjguNTc1XFxcIiBzdHlsZT1cXFwiZmlsbDojM2M4Mzc2O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMTUuODU2IDMuNDE4IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOC41NzVcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4LjQ5OCA2LjI0NiAxOS4zNDUgNy4xIDEzLjUwMiAxMy4wMjggMTMuNTAyIDcuMSAxNC4wNjkgNy4xIDE0LjkxNiA2LjI0NiAxNC45MTYgMy45OTIgMTQuMDY5IDMuMTM4IDQuNjUyIDMuMTM4IDMuODA1IDMuOTkyIDMuODA1IDYuMjQ2IDQuNjUyIDcuMSA1LjMxMiA3LjEgNS4zMTIgMjYuMzE0IDYuMzQ2IDI3LjE2MSA5LjI2NyAyNy4xNjEgMjkuNTE2IDYuMjQ2IDI5LjUxNiAzLjk5MiAyOC42NjkgMy4xMzggMTkuNDM4IDMuMTM4IDE4LjQ5OCAzLjk5MiAxOC40OTggNi4yNDYgMTguNDk4IDYuMjQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC40OTggNi4yNDYgMTkuMzQ1IDcuMSAxMy41MDIgMTMuMDI4IDEzLjUwMiA3LjEgMTQuMDY5IDcuMSAxNC45MTYgNi4yNDYgMTQuOTE2IDMuOTkyIDE0LjA2OSAzLjEzOCA0LjY1MiAzLjEzOCAzLjgwNSAzLjk5MiAzLjgwNSA2LjI0NiA0LjY1MiA3LjEgNS4zMTIgNy4xIDUuMzEyIDI2LjMxNCA2LjM0NiAyNy4xNjEgOS4yNjcgMjcuMTYxIDI5LjUxNiA2LjI0NiAyOS41MTYgMy45OTIgMjguNjY5IDMuMTM4IDE5LjQzOCAzLjEzOCAxOC40OTggMy45OTIgMTguNDk4IDYuMjQ2IDE4LjQ5OCA2LjI0NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNC45MzIgNi41MzMgNC4zNjUgNS45NjYgNC4zNjUgNC4yNzIgNC45MzIgMy43MDUgMTMuNzg5IDMuNjk4IDE0LjM0OSA0LjI3MiAxMy43ODkgNC41NDQgMTMuNTAyIDQuMjcyIDQuOTMyIDUuNjc5IDQuOTMyIDYuNTMzIDQuOTMyIDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0LjkzMiA2LjUzMyA0LjM2NSA1Ljk2NiA0LjM2NSA0LjI3MiA0LjkzMiAzLjcwNSAxMy43ODkgMy42OTggMTQuMzQ5IDQuMjcyIDEzLjc4OSA0LjU0NCAxMy41MDIgNC4yNzIgNC45MzIgNS42NzkgNC45MzIgNi41MzMgNC45MzIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuNjI2IDI2LjU5NCA1Ljk2NiAyNi4wMjcgNS45NjYgNi41MjYgNi42MjYgNS45NjYgNi42MjYgMjYuNTk0IDYuNjI2IDI2LjU5NFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi42MjYgMjYuNTk0IDUuOTY2IDI2LjAyNyA1Ljk2NiA2LjUyNiA2LjYyNiA1Ljk2NiA2LjYyNiAyNi41OTQgNi42MjYgMjYuNTk0XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC43NTkgNi41MzMgMjEuMzI2IDUuOTY2IDIxLjMyNiA3LjEgMTEuOTAyIDE2LjcwMyAxMi45NDIgMTQuNDQyIDIwLjc1OSA2LjUzMyAyMC43NTkgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjc1OSA2LjUzMyAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNzAzIDEyLjk0MiAxNC40NDIgMjAuNzU5IDYuNTMzIDIwLjc1OSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi44MiA1LjY4NiA2LjYyNiA1Ljk2NiA1Ljk2NiA2LjUzMyA0LjkzMiA2LjUzMyA0LjkzMiA1LjM5OSA2LjgyIDUuNjg2IDYuODIgNS42ODZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuODIgNS42ODYgNi42MjYgNS45NjYgNS45NjYgNi41MzMgNC45MzIgNi41MzMgNC45MzIgNS4zOTkgNi44MiA1LjY4NiA2LjgyIDUuNjg2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMi45NDIgNi41MzMgMTIuOTQyIDE0LjQ0MiAxMS45MDIgMTYuNjk2IDExLjkwMiA1Ljk1OCAxMy41MDIgNS45NTggMTMuNzg5IDUuNjc4IDEzLjUwMiA0LjI3MiAxNC4zNDkgNC4yNzIgMTQuMzQ5IDUuOTY2IDEzLjc4OSA2LjUzMyAxMi45NDIgNi41MzMgMTIuOTQyIDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDojOTI5NDk3O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMi45NDIgNi41MzMgMTIuOTQyIDE0LjQ0MiAxMS45MDIgMTYuNjk2IDExLjkwMiA1Ljk1OCAxMy41MDIgNS45NTggMTMuNzg5IDUuNjc4IDEzLjUwMiA0LjI3MiAxNC4zNDkgNC4yNzIgMTQuMzQ5IDUuOTY2IDEzLjc4OSA2LjUzMyAxMi45NDIgNi41MzMgMTIuOTQyIDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOS42MjUgNi41MzMgMTkuMDY1IDUuOTY2IDE5LjA2NSA0LjI3MiAxOS43MTggMy43MDUgMjguMjk1IDMuNzA1IDI4Ljk1NiA0LjI3MiAyOC4wMDggNS4xMTkgMTkuNjI1IDUuNjc5IDE5LjYyNSA2LjUzMyAxOS42MjUgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjYyNSA2LjUzMyAxOS4wNjUgNS45NjYgMTkuMDY1IDQuMjcyIDE5LjcxOCAzLjcwNSAyOC4yOTUgMy43MDUgMjguOTU2IDQuMjcyIDI4LjAwOCA1LjExOSAxOS42MjUgNS42NzkgMTkuNjI1IDYuNTMzIDE5LjYyNSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguOTU2IDUuOTY2IDkuMDc0IDI2LjU5NCA2LjYyNiAyNi41OTQgNi42MjYgMjUuNzQ3IDguNDIgMjUuNzQ3IDI4LjI5NSA1LjM5OSAyOC4wMDggNC4yNzIgMjguOTU2IDQuMjcyIDI4Ljk1NiA1Ljk2NiAyOC45NTYgNS45NjZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4Ljk1NiA1Ljk2NiA5LjA3NCAyNi41OTQgNi42MjYgMjYuNTk0IDYuNjI2IDI1Ljc0NyA4LjQyIDI1Ljc0NyAyOC4yOTUgNS4zOTkgMjguMDA4IDQuMjcyIDI4Ljk1NiA0LjI3MiAyOC45NTYgNS45NjYgMjguOTU2IDUuOTY2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMS41MTIgNS42ODYgMjEuMzE5IDUuOTY2IDIwLjc1OSA2LjUzMyAxOS42MjUgNi41MzMgMTkuNjI1IDUuMzk5IDIxLjUxMiA1LjY4NiAyMS41MTIgNS42ODZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjUxMiA1LjY4NiAyMS4zMTkgNS45NjYgMjAuNzU5IDYuNTMzIDE5LjYyNSA2LjUzMyAxOS42MjUgNS4zOTkgMjEuNTEyIDUuNjg2IDIxLjUxMiA1LjY4NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuOTAyIDE2LjY5NiAxMS45MDIgNS45NTggMTMuNTAyIDUuOTU4IDEzLjc4OSA1LjY3OSAxMy43ODkgNC41NDQgMTMuNTAyIDQuMjY1IDUuMjEyIDQuMjY1IDQuOTMyIDQuNTQ0IDQuOTMyIDUuNjc5IDUuMjEyIDUuOTU4IDYuNjI2IDUuOTU4IDYuNjI2IDI1Ljc0NyA2Ljk5MiAyNi4wMjcgOC42MDcgMjYuMDI3IDI4LjM4OSA1LjM5OSAyOC4zODkgNC41ODggMjguMTAyIDQuMjY1IDE5LjkxMiA0LjI2NSAxOS42MjUgNC41NDQgMTkuNjI1IDUuNjg2IDE5LjkxMiA1Ljk2NiAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNjk2IDExLjkwMiAxNi42OTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMGQyZDM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjkwMiAxNi42OTYgMTEuOTAyIDUuOTU4IDEzLjUwMiA1Ljk1OCAxMy43ODkgNS42NzkgMTMuNzg5IDQuNTQ0IDEzLjUwMiA0LjI2NSA1LjIxMiA0LjI2NSA0LjkzMiA0LjU0NCA0LjkzMiA1LjY3OSA1LjIxMiA1Ljk1OCA2LjYyNiA1Ljk1OCA2LjYyNiAyNS43NDcgNi45OTIgMjYuMDI3IDguNjA3IDI2LjAyNyAyOC4zODkgNS4zOTkgMjguMzg5IDQuNTg4IDI4LjEwMiA0LjI2NSAxOS45MTIgNC4yNjUgMTkuNjI1IDQuNTQ0IDE5LjYyNSA1LjY4NiAxOS45MTIgNS45NjYgMjEuMzI2IDUuOTY2IDIxLjMyNiA3LjEgMTEuOTAyIDE2LjY5NiAxMS45MDIgMTYuNjk2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy4wNDEgMTYuNzExIDE3LjcwMSAxNi4xNDQgMTkuMzk1IDE2LjE0NCAxOS44NjkgMTYuNzExIDE5LjMwMiAxOC40MDUgMTguNjQ5IDE4Ljk3MiAxNi45NTUgMTguOTcyIDE2LjQ3NCAxOC40MDUgMTcuMDQxIDE2LjcxMSAxNy4wNDEgMTYuNzExXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy4wNDEgMTYuNzExIDE3LjcwMSAxNi4xNDQgMTkuMzk1IDE2LjE0NCAxOS44NjkgMTYuNzExIDE5LjMwMiAxOC40MDUgMTguNjQ5IDE4Ljk3MiAxNi45NTUgMTguOTcyIDE2LjQ3NCAxOC40MDUgMTcuMDQxIDE2LjcxMSAxNy4wNDEgMTYuNzExXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy42MDggMjYuMDM0IDE5LjMwOSAyMC45NTMgMTguNzQyIDIwLjk1MyAxOS4zMDkgMTkuMjUxIDIxLjg0MyAxOS4yNTEgMjIuNDEgMTkuODE5IDIyLjc5IDE5LjgxOSAyMy4zNSAxOS4yNTEgMjUuMjM4IDE5LjI1MSAyNS44MDUgMTkuODE5IDI2LjE3OCAxOS44MTkgMjYuNzQ1IDE5LjI1MSAyOC44MTIgMTkuMjUxIDI5LjU2NiAyMC4zODYgMjguMzMxIDI0LjQwNSAyOC44OTEgMjQuNDA1IDI4LjM0NiAyNi4wMzQgMjQuOTUxIDI2LjAzNCAyNi4yNzggMjIuMDc5IDI1LjQzMSAyMi4wNzkgMjQuNjQ5IDI0LjM5MSAyNS4yMDkgMjQuMzkxIDI0LjY3OCAyNi4wMzQgMjEuMjgzIDI2LjAzNCAyMi42MDMgMjIuMDc5IDIxLjc1NiAyMi4wNzkgMjAuOTY3IDI0LjQwNSAyMS41MzQgMjQuNDA1IDIxLjAwMyAyNi4wMzQgMTcuNjA4IDI2LjAzNCAxNy42MDggMjYuMDM0XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy42MDggMjYuMDM0IDE5LjMwOSAyMC45NTMgMTguNzQyIDIwLjk1MyAxOS4zMDkgMTkuMjUxIDIxLjg0MyAxOS4yNTEgMjIuNDEgMTkuODE5IDIyLjc5IDE5LjgxOSAyMy4zNSAxOS4yNTEgMjUuMjM4IDE5LjI1MSAyNS44MDUgMTkuODE5IDI2LjE3OCAxOS44MTkgMjYuNzQ1IDE5LjI1MSAyOC44MTIgMTkuMjUxIDI5LjU2NiAyMC4zODYgMjguMzMxIDI0LjQwNSAyOC44OTEgMjQuNDA1IDI4LjM0NiAyNi4wMzQgMjQuOTUxIDI2LjAzNCAyNi4yNzggMjIuMDc5IDI1LjQzMSAyMi4wNzkgMjQuNjQ5IDI0LjM5MSAyNS4yMDkgMjQuMzkxIDI0LjY3OCAyNi4wMzQgMjEuMjgzIDI2LjAzNCAyMi42MDMgMjIuMDc5IDIxLjc1NiAyMi4wNzkgMjAuOTY3IDI0LjQwNSAyMS41MzQgMjQuNDA1IDIxLjAwMyAyNi4wMzQgMTcuNjA4IDI2LjAzNCAxNy42MDggMjYuMDM0XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC41NTQgMTkuODE5IDI4Ljk5MiAyMC40NDMgMjcuNTk5IDI0LjkwNyAyOC4xNTkgMjQuOTA3IDI3Ljk3MiAyNS40NjcgMjUuNzExIDI1LjQ2NyAyNy4wMzIgMjEuNTEyIDI1LjA1MSAyMS41MTIgMjMuOTI0IDI0LjkwNyAyNC40ODQgMjQuOTA3IDI0LjI5NyAyNS40NjcgMjIuMDM2IDI1LjQ2NyAyMy4zNTcgMjEuNTEyIDIxLjM3NiAyMS41MTIgMjAuMjQ5IDI0LjkwNyAyMC44MTYgMjQuOTA3IDIwLjYyMiAyNS40NjcgMTguMzYxIDI1LjQ2NyAyMC4wNjMgMjAuMzg2IDE5LjQ5NSAyMC4zODYgMTkuNjgyIDE5LjgxOSAyMS43NTYgMTkuODE5IDIyLjMyMyAyMC4zODYgMjIuODgzIDIwLjM4NiAyMy40NSAxOS44MTkgMjUuMTQ0IDE5LjgxOSAyNS43MTEgMjAuMzg2IDI2LjI3OCAyMC4zODYgMjYuODQ1IDE5LjgxOSAyOC41NTQgMTkuODE5IDI4LjU1NCAxOS44MTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMGQyZDM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjU1NCAxOS44MTkgMjguOTkyIDIwLjQ0MyAyNy41OTkgMjQuOTA3IDI4LjE1OSAyNC45MDcgMjcuOTcyIDI1LjQ2NyAyNS43MTEgMjUuNDY3IDI3LjAzMiAyMS41MTIgMjUuMDUxIDIxLjUxMiAyMy45MjQgMjQuOTA3IDI0LjQ4NCAyNC45MDcgMjQuMjk3IDI1LjQ2NyAyMi4wMzYgMjUuNDY3IDIzLjM1NyAyMS41MTIgMjEuMzc2IDIxLjUxMiAyMC4yNDkgMjQuOTA3IDIwLjgxNiAyNC45MDcgMjAuNjIyIDI1LjQ2NyAxOC4zNjEgMjUuNDY3IDIwLjA2MyAyMC4zODYgMTkuNDk1IDIwLjM4NiAxOS42ODIgMTkuODE5IDIxLjc1NiAxOS44MTkgMjIuMzIzIDIwLjM4NiAyMi44ODMgMjAuMzg2IDIzLjQ1IDE5LjgxOSAyNS4xNDQgMTkuODE5IDI1LjcxMSAyMC4zODYgMjYuMjc4IDIwLjM4NiAyNi44NDUgMTkuODE5IDI4LjU1NCAxOS44MTkgMjguNTU0IDE5LjgxOVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wMjIsMTkuMjUxLDE3LjI5MiwyNC40aC41ODlsLS41NiwxLjYzN0gxMy45MzNsMS42OTQtNS4wODJIMTUuMDZsMy45NjItMS43Wm0tMy45NjIsMS43LjU2Ny0xLjdoMy40bC0zLjk2MiwxLjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjAyMiwxOS4yNTEsMTcuMjkyLDI0LjRoLjU4OWwtLjU2LDEuNjM3SDEzLjkzM2wxLjY5NC01LjA4MkgxNS4wNmwzLjk2Mi0xLjdabS0zLjk2MiwxLjcuNTY3LTEuN2gzLjRsLTMuOTYyLDEuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2Ljk0NyAyNS40NjcgMTcuMTM0IDI0LjkwNyAxNi41NjcgMjQuOTA3IDE4LjI2OCAxOS44MTkgMTUuOTE0IDE5LjgxOSAxNS43MiAyMC4zODYgMTYuMzggMjAuMzg2IDE0LjY4NiAyNS40NjcgMTYuOTQ3IDI1LjQ2NyAxNi45NDcgMjUuNDY3XFxcIiBzdHlsZT1cXFwiZmlsbDojZDBkMmQzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi45NDcgMjUuNDY3IDE3LjEzNCAyNC45MDcgMTYuNTY3IDI0LjkwNyAxOC4yNjggMTkuODE5IDE1LjkxNCAxOS44MTkgMTUuNzIgMjAuMzg2IDE2LjM4IDIwLjM4NiAxNC42ODYgMjUuNDY3IDE2Ljk0NyAyNS40NjcgMTYuOTQ3IDI1LjQ2N1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguODI4IDE4LjEyNSAxOS4yMDggMTYuOTkxIDE5LjAyMiAxNi43MTEgMTcuODg4IDE2LjcxMSAxNy41MTQgMTYuOTkxIDE3LjEzNCAxOC4xMjUgMTcuMzI4IDE4LjQwNSAxOC40NjIgMTguNDA1IDE4LjgyOCAxOC4xMjUgMTguODI4IDE4LjEyNVxcXCIgc3R5bGU9XFxcImZpbGw6I2QwZDJkMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguODI4IDE4LjEyNSAxOS4yMDggMTYuOTkxIDE5LjAyMiAxNi43MTEgMTcuODg4IDE2LjcxMSAxNy41MTQgMTYuOTkxIDE3LjEzNCAxOC4xMjUgMTcuMzI4IDE4LjQwNSAxOC40NjIgMTguNDA1IDE4LjgyOCAxOC4xMjUgMTguODI4IDE4LjEyNVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPlwiLFxuXHRcIlZpc3VhbCBCYXNpY1wiOiBcIjxwYXRoIGQ9XFxcIk02LjY3LDcuODM2LDksMTguOTE1LDExLjMzNiw3LjgzNkgxNkwxMS4zMzYsMjQuMTY0SDYuNjcyTDIsNy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTlhXFxcIi8+PHBhdGggZD1cXFwiTTE4LjMzMSw3LjgzNmg3LjZhNC4wOCw0LjA4LDAsMCwxLDIuOSwxLjc0OSwzLjc4LDMuNzgsMCwwLDEsLjU3MSwyLjA0LDMuOTg1LDMuOTg1LDAsMCwxLS41NzEsMi4wMzQsNC4xMDgsNC4xMDgsMCwwLDEtMi4zNDEsMS43NjMsNC4xLDQuMSwwLDAsMSwyLjkyOSwxLjc1NiwzLjgsMy44LDAsMCwxLC41OCwyLjEsNC42NjMsNC42NjMsMCwwLDEtLjU3OSwyLjU0Niw1LjA0Nyw1LjA0NywwLDAsMS0zLjUsMi4zMzhIMTguMzMxWk0yMywxNC4yNTJoMS4xNjZhMS43NTQsMS43NTQsMCwwLDAsMC0zLjVIMjNabTAsN0gyNC4zOWEyLjA0NywyLjA0NywwLDAsMCwwLTQuMDg5SDIzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE5YVxcXCIvPlwiLFxuXHRcIldlYkFzc2VtYmx5XCI6IFwiPHBhdGggZD1cXFwiTTE5LjE1MywyLjM1VjIuNWEzLjIsMy4yLDAsMSwxLTYuNCwwaDBWMi4zNUgyVjMwLjI2OUgyOS45MTlWMi4zNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTRmZjBcXFwiLz48cGF0aCBkPVxcXCJNOC40ODUsMTcuNGgxLjg1TDExLjYsMjQuMTIzaC4wMjNMMTMuMTQsMTcuNGgxLjczMWwxLjM3MSw2LjgxaC4wMjdsMS40NC02LjgxaDEuODE1bC0yLjM1OCw5Ljg4NUgxNS4zMjlsLTEuMzYtNi43MjhoLS4wMzZsLTEuNDU2LDYuNzI4aC0xLjg3Wm0xMy4xMjQsMGgyLjkxN2wyLjksOS44ODVIMjUuNTE1bC0uNjMtMi4ySDIxLjU2MmwtLjQ4NiwyLjJIMTkuMjE3Wm0xLjExLDIuNDM3LS44MDcsMy42MjdoMi41MTJMMjMuNSwxOS44MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiV29sZnJhbSBsYW5ndWFnZVwiOiBcIjxwYXRoIGQ9XFxcIk0zMCwyMC41NSwyNS45NCwxNiwzMCwxMS40NWwtNS45NDgtMS4yOTQuNTk1LTYuMDY3TDE5LjA3MSw2LjU0MywxNS45OTMsMS4yNzksMTIuOTI5LDYuNTQzLDcuMzUzLDQuMDg5bC41OTUsNi4wNjdMMiwxMS40NSw2LjA1OSwxNiwyLDIwLjU1bDUuOTQ4LDEuMjk0LS41OTUsNi4wNjcsNS41NzYtMi40NTQsMy4wNzgsNS4yNjQsMy4wNjMtNS4yNjQsNS41OTEsMi40NTQtLjYxLTYuMDY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QxMFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4zNTMsMTEuNDVhNi45NjgsNi45NjgsMCwwLDEtMy40Mi44NjIsNS40NDYsNS40NDYsMCwwLDEtMy4yMTItLjg2MkE3LjEsNy4xLDAsMCwxLDEyLjUsMTQuOGE2LjIyNSw2LjIyNSwwLDAsMS0xLjg3NCwyLjkxNCw3LjQ1NCw3LjQ1NCwwLDAsMSwzLjEzOCwxLjE5LDkuNjU5LDkuNjU5LDAsMCwxLDIuMjE2LDIuNzIxLDguMTk0LDguMTk0LDAsMCwxLDIuMTQxLTIuNjkxLDcuNjA1LDcuNjA1LDAsMCwxLDMuMjQyLTEuMiwxMi41NjIsMTIuNTYyLDAsMCwxLTEuOTMzLTIuOTQ0QTYuNzE4LDYuNzE4LDAsMCwxLDE5LjM1MywxMS40NVptLTEuOSw2LjU0M2E1LjIzMyw1LjIzMywwLDAsMC0xLjQ1NywxLjYzNiw2LjIzNiw2LjIzNiwwLDAsMC0xLjUtMS42MjEsNS4xOTEsNS4xOTEsMCwwLDAtMS45NDgtLjg0OCw2LjgzOSw2LjgzOSwwLDAsMCwxLjExNS0yLjAwNyw2LjE4LDYuMTgsMCwwLDAsLjIyMy0yLjA4Miw2LjMxNyw2LjMxNywwLDAsMCwyLjA4Mi40NDYsNi41NTIsNi41NTIsMCwwLDAsMi4xNzEtLjQ2MSw0LjUyMSw0LjUyMSwwLDAsMCwuMDc0LDIuMTU2LDYuNzEsNi43MSwwLDAsMCwxLjI0OSwxLjkzM0E3LjAzMSw3LjAzMSwwLDAsMCwxNy40NSwxNy45OTNabTQuMjM4LTQuMDE1Yy0uMzU3LTEuMTc1LjY1NC02LjcwNi42NTQtNi43MDZTMTguNTUsOS44NDQsMTUuODg4LDkuODQ0cy02LjIzLTIuNTcyLTYuMjMtMi41NzIsMS4xNzUsNC4wMTUuNDYxLDYuNTg3LTQuMzg3LDUuNDcyLTQuMzg3LDUuNDcyLDQuNzg4LjI4Myw2LjYsMS41LDMuNjU4LDUuOTQ4LDMuNjU4LDUuOTQ4LDIuNDU0LTUuMiwzLjQ4LTUuOTQ4LDYuOC0xLjUsNi44LTEuNS00LjIyMy00LjE3OC00LjU4LTUuMzUzWm0tMi44NCw1Ljk2M2E5LjQ0NCw5LjQ0NCwwLDAsMC0yLjg0LDQuMTc4cy0xLjQxMy0zLjE1Mi0yLjk3NC00LjIyM1M4LjMsMTguNTQzLDguMywxOC41NDNzMi40NTQtMi4xNzEsMy4wNDgtNC4xYTExLjkyMywxMS45MjMsMCwwLDAtLjEtNC45NTIsMTEuMywxMS4zLDAsMCwwLDQuNjY5LDEuNjIxYzIuMDM3LDAsNC44NDgtMS42MjEsNC44NDgtMS42MjFzLS44MTgsMy4wMzMtLjE2NCw0LjkyMiwzLjEwOCw0LjEzNCwzLjEwOCw0LjEzNGExMC41NTcsMTAuNTU3LDAsMCwwLTQuODYyLDEuNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJYTUxcIjogXCI8cGF0aCBkPVxcXCJNMjAuNDIsMjEuMTU3bDIuMjExLDIuMjExTDMwLDE2LDIyLjYzMSw4LjYzMSwyMC40MiwxMC44NDMsMjUuNTgsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+PHBhdGggZD1cXFwiTTExLjU4LDEwLjg0Myw5LjM2OSw4LjYzMSwyLDE2bDcuMzY5LDcuMzY5LDIuMjExLTIuMjExTDYuNDIsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+PHBhdGggZD1cXFwiTTE3LjQxMSw3LjY3N2wxLjYuNDM3LTQuNDIsMTYuMjA5LTEuNi0uNDM3LDQuNDItMTYuMjA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPlwiLFxuXHRcIlhRdWVyeVwiOiBcIjxwYXRoIGQ9XFxcIk0yMC40MiwyMS4xNTdsMi4yMTEsMi4yMTFMMzAsMTYsMjIuNjMxLDguNjMxLDIwLjQyLDEwLjg0MywyNS41OCwxNlpNMTEuNTgsMTAuODQzLDkuMzY5LDguNjMxLDIsMTZsNy4zNjksNy4zNjksMi4yMTEtMi4yMTFMNi40MiwxNlptNS44MzEtMy4xNjYsMS42LjQzNy00LjQyLDE2LjIwOS0xLjYtLjQzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz48cGF0aCBkPVxcXCJNMjAuMzMyLDE4LjQ2MmEzLjM1NCwzLjM1NCwwLDAsMSwuOTc1LTEuNDIzLDQuMDE0LDQuMDE0LDAsMCwxLDEuNjE3LS44QTkuMTE4LDkuMTE4LDAsMCwxLDI1LjEzOCwxNmE1LjQ3Miw1LjQ3MiwwLDAsMSwzLjY4MSwxLjAzOUEzLjUsMy41LDAsMCwxLDMwLDE5LjgwOGE0LjQ3LDQuNDcsMCwwLDEtLjI0LDEuNDkxLDMuMTI0LDMuMTI0LDAsMCwxLS44MzgsMS4yMzlsLTEuNjc1LDEuNmExLjUxMiwxLjUxMiwwLDAsMC0uNDI0Ljc4OSw1LjMwNyw1LjMwNywwLDAsMC0uMSwxLjFIMjN2LS41NGE2LjMyLDYuMzIsMCwwLDEsLjIwNy0xLjc3OCwyLjg4NiwyLjg4NiwwLDAsMSwuNzgtMS4yNGwxLjM1Mi0xLjI4OWExLjg0LDEuODQsMCwwLDAsLjU2My0uODk0LDMuNjgyLDMuNjgyLDAsMCwwLC4xLS44LDEuNSwxLjUsMCwwLDAtLjI1Mi0uOS45LjksMCwwLDAtLjc3OS0uMzQ2LDEuMjU1LDEuMjU1LDAsMCwwLS40ODMuMDg2LjcyNC43MjQsMCwwLDAtLjM0NC4zMzcsMi4zNDcsMi4zNDcsMCwwLDAtLjIxNy43MjEsNy42MTQsNy42MTQsMCwwLDAtLjA4MSwxLjI0SDIwQTYuMTU1LDYuMTU1LDAsMCwxLDIwLjMzMiwxOC40NjJabTYuNDU3LDguNVYzMEgyMi45MzZWMjYuOTYyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZjYmEwMFxcXCIvPlwiLFxuXHRcIllBTUxcIjogXCI8cGF0aCBkPVxcXCJNMiwxMi4yMThjLjc1NSwwLDEuNTEtLjAwOCwyLjI2NCwwbC4wNTMuMDM4UTUuNywxMy42MzgsNy4wNzgsMTUuMDE0Yy44OTEtLjkwNiwxLjgtMS43OTQsMi43LTIuNy4wNTMtLjA1Mi4xMS0uMTEzLjE5Mi0uMS42MDgsMCwxLjIxNSwwLDEuODIzLDBhMS40LDEuNCwwLDAsMSwuMzUzLjAxOWMtLjcuNjctMS4zNzcsMS4zNjktMi4wNjksMi4wNUw1LjU0NSwxOC44Yy0uMzMxLjMyNC0uNjQ4LjY2My0uOTg5Ljk3NS0uNzU0LjAyMi0xLjUxMS4wMDctMi4yNjYuMDA3LDEuMjIzLTEuMjA5LDIuNDMxLTIuNDMzLDMuNjU4LTMuNjM3QzQuNjI3LDE0Ljg0MSwzLjMxOCwxMy41MjUsMiwxMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+PHBhdGggZD1cXFwiTTEyLjcsMTIuMjE4Yy42MTMsMCwxLjIyNiwwLDEuODM5LDBxMCwzLjc4MywwLDcuNTY2Yy0uNjExLDAtMS4yMjIuMDEyLTEuODMyLS4wMDgsMC0xLjY2NCwwLTMuMzI5LDAtNC45OTQtMS42LDEuNjA3LTMuMjA5LDMuMi00LjgxMSw0LjgtLjA4OS4wOC0uMTY2LjIxNy0uMzA1LjE5NC0uODI0LS4wMDYtMS42NDksMC0yLjQ3NCwwUTguOTE2LDE2LDEyLjcsMTIuMjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTg4NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45NTgsMTIuMjJjLjQ3LS4wMDkuOTM5LDAsMS40MDksMCwuODM2Ljg1MywxLjY5LDEuNjg5LDIuNTM2LDIuNTMycTEuMjY4LTEuMjY3LDIuNTM5LTIuNTMyLjcsMCwxLjQsMC0uMDA4LDMuNzg0LDAsNy41NjdjLS40NzEsMC0uOTQzLjAwNi0xLjQxNCwwcS4wMDgtMi4zODcsMC00Ljc3M2MtLjg0NC44NDMtMS42NzYsMS43LTIuNTI2LDIuNTM2LS44NTYtLjgzNS0xLjY4Ny0xLjY5NS0yLjUzMi0yLjU0MSwwLDEuNTk0LS4wMDYsMy4xODguMDA2LDQuNzgxLS40NzIsMC0uOTQzLjAwNS0xLjQxNSwwUTE0Ljk1OCwxNiwxNC45NTgsMTIuMjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+PHBhdGggZD1cXFwiTTIzLjI1OSwxMi4yMTdjLjQ3MiwwLC45NDQtLjAwNywxLjQxNiwwcS0uMDA3LDMuMDgzLDAsNi4xNjZjMS4yNiwwLDIuNTIxLDAsMy43ODIsMCwuMDYzLjAwNi4xNDQtLjAxMi4xOTEuMDQ1LjQ0OC40NTQuOTA3LjksMS4zNTMsMS4zNTRxLTMuMzcxLjAwNy02Ljc0MSwwUTIzLjI2NywxNiwyMy4yNTksMTIuMjE3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTg4NVxcXCIvPlwiLFxuXHRcIllBTkdcIjogXCI8cGF0aCBkPVxcXCJNOC44NzcsMjMuMTU5YzAtNS41MzUsMy45OTItNy4xNjgsNy44OTQtNy4xNjgsMy4zNTcsMCw1Ljk4OC0zLjgxMSw1Ljk4OC02LjYyNCwwLTMuNjIxLTIuNDg3LTUuODMxLTQuODgyLTcuMTJBMTMuODgxLDEzLjg4MSwwLDEsMCwxNC41LDI5LjhDMTAuNDkxLDI4LjI0OCw4Ljg3NywyNS4zMjQsOC44NzcsMjMuMTU5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNC40ODIsMjkuOTE3QTE0LDE0LDAsMCwxLDE2LDJhMTQuMTU0LDE0LjE1NCwwLDAsMSwxLjg5My4xMzFsLjA0LjAxM2MyLjI1NSwxLjIxMyw0Ljk0NCwzLjQ1Miw0Ljk0NCw3LjIyMywwLDIuNzE1LTIuNTY0LDYuNzQxLTYuMTA2LDYuNzQxLTIuOSwwLTcuNzc2LjkxNi03Ljc3Niw3LjA1LDAsMi4wMjIsMS40NTEsNC45NDYsNS41NDIsNi41MzFaTTE2LDIuMjM2QTEzLjc2NSwxMy43NjUsMCwwLDAsMTMuNjM3LDI5LjU2Yy0zLjU4MS0xLjY4NC00Ljg3Ny00LjQ0Ny00Ljg3Ny02LjQsMC02LjU3Niw1LjYtNy4yODYsOC4wMTItNy4yODYsMy40MDYsMCw1Ljg3LTMuODg2LDUuODctNi41MDYsMC0zLjY0NS0yLjYwNi01LjgyLTQuOC03LjAwNkExMy45MjgsMTMuOTI4LDAsMCwwLDE2LDIuMjM2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yOS44ODIsMTZhMTMuODgyLDEzLjg4MiwwLDAsMC0xMi0xMy43NTJjMi40LDEuMjg5LDQuODgyLDMuNSw0Ljg4Miw3LjEyLDAsMi44MTMtMi42MzEsNi42MjQtNS45ODgsNi42MjQtMy45LDAtNy44OTQsMS42MzMtNy44OTQsNy4xNjgsMCwyLjE2NiwxLjYxMyw1LjA4OSw1LjYxOCw2LjY0MUExMy44NzUsMTMuODc1LDAsMCwwLDI5Ljg4MiwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBhMTQuMiwxNC4yLDAsMCwxLTEuNTE4LS4wODNsLS4wMy0uMDA3Yy00LjItMS42MjgtNS42OTMtNC42NTQtNS42OTMtNi43NSwwLTYuNTc2LDUuNi03LjI4Niw4LjAxMi03LjI4NiwzLjQwNiwwLDUuODctMy44ODYsNS44Ny02LjUwNiwwLTMuNjU1LTIuNjIxLTUuODMzLTQuODItNy4wMTZsLjA3Mi0uMjIxQTE0LDE0LDAsMCwxLDE2LDMwWm0tMS40NzctLjMxNkExMy43NTYsMTMuNzU2LDAsMCwwLDI5Ljc2NCwxNiwxMy44MDcsMTMuODA3LDAsMCwwLDE4LjUsMi40NjZjMi4xMTUsMS4yNzIsNC4zNzcsMy40NDEsNC4zNzcsNi45LDAsMi43MTUtMi41NjQsNi43NDEtNi4xMDYsNi43NDEtMi45LDAtNy43NzYuOTE2LTcuNzc2LDcuMDVDOSwyNS4xNzgsMTAuNDQzLDI4LjEsMTQuNTIzLDI5LjY4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48Y2lyY2xlIGN4PVxcXCIxNS45NDNcXFwiIGN5PVxcXCIyMi43ODdcXFwiIHI9XFxcIjEuNTA2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTYuMDA3XFxcIiBjeT1cXFwiOS4xNDJcXFwiIHI9XFxcIjEuNTA2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+XCIsXG5cdFwiWmlnXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI1LjczMyAxOS43MzEgNS43MzMgMTIuMjY0IDguNTMzIDEyLjI2NCA4LjUzMyA4LjUzMSAyIDguNTMxIDIgMjMuNDY0IDUuNTQ3IDIzLjQ2NCA4LjkwNyAxOS43MzEgNS43MzMgMTkuNzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojZjdhNDFkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNi40NTMgOC41MzEgMjMuMDkzIDEyLjI2NCAyNi4yNjcgMTIuMjY0IDI2LjI2NyAxOS43MzEgMjMuNDY3IDE5LjczMSAyMy40NjcgMjMuNDY0IDMwIDIzLjQ2NCAzMCA4LjUzMSAyNi40NTMgOC41MzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmN2E0MWRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI2Ljg3NSA2LjcwNyAyMC41MTMgOC41MzEgOS40NjcgOC41MzEgOS40NjcgMTIuMjY0IDE2Ljg0NyAxMi4yNjQgNS4xMTUgMjUuMjkzIDExLjQ5NyAyMy40NjQgMjIuNTMzIDIzLjQ2NCAyMi41MzMgMTkuNzMxIDE1LjE0OCAxOS43MzEgMjYuODc1IDYuNzA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZjdhNDFkXFxcIi8+XCJcbn07XG5leHBvcnQgY29uc3QgTEFOR1VBR0VfQ09MT1VSUyA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuXHRcIi5naXRpZ25vcmVcIjogXCIjZGQ0YzM1XCIsXG5cdFwiLmhnaWdub3JlXCI6IFwiI2JmYmZiZlwiLFxuXHRcIi5ucG1pZ25vcmVcIjogXCIjY2IzODM3XCIsXG5cdFwiLnByb3BlcnRpZXNcIjogXCIjOTliOGM0XCIsXG5cdFwiNjUwMiBBc3NlbWJseVwiOiBcIiMwMDAwYmZcIixcblx0XCJBY3Rpb25TY3JpcHRcIjogXCIjYzQxNzE4XCIsXG5cdFwiQWRhXCI6IFwiIzBmMjNjM1wiLFxuXHRcIkFMXCI6IFwiIzJlYTk4ZVwiLFxuXHRcIkFOVExSNFwiOiBcIiNlNDRhMzJcIixcblx0XCJBcGFjaGUgQ29uZmlndXJhdGlvblwiOiBcIiNjOTIwMzdcIixcblx0XCJBcGV4XCI6IFwiIzBmOWJkN1wiLFxuXHRcIkFQTFwiOiBcIiNkMmQyZDJcIixcblx0XCJBcHBsZVNjcmlwdFwiOiBcIiNhOGMyYWJcIixcblx0XCJBcmR1aW5vXCI6IFwiIzJkOTA5NFwiLFxuXHRcIkFSTSBBc3NlbWJseVwiOiBcIiMwMDAwYmZcIixcblx0XCJBc2NpaURvY1wiOiBcIiNlNDAwNDZcIixcblx0XCJBU1AuTkVUIChDIylcIjogXCIjMzNhOWRjXCIsXG5cdFwiQXV0b0hvdGtleVwiOiBcIiNkOGQ4ZDhcIixcblx0XCJBdXRvSXRcIjogXCIjNWQ4M2FjXCIsXG5cdFwiQXZybyBJRExcIjogXCIjMDA0MGZmXCIsXG5cdFwiQVdLXCI6IFwiI2QyZDJkMlwiLFxuXHRcIkJhdGNoXCI6IFwiI2Q5YjQwMFwiLFxuXHRcIkMjXCI6IFwiIzM2ODgzMlwiLFxuXHRcIkNcIjogXCIjMDA1ZjkxXCIsXG5cdFwiQysrXCI6IFwiIzk4NGM5M1wiLFxuXHRcIkNsb2p1cmVcIjogXCIjOTFkYzQ3XCIsXG5cdFwiQ01ha2VcIjogXCIjMDFhMzAwXCIsXG5cdFwiQ09CT0xcIjogXCIjMDA1Y2E1XCIsXG5cdFwiQ29mZmVlU2NyaXB0XCI6IFwiIzZmNGUzN1wiLFxuXHRcIkNyeXN0YWxcIjogXCIjYzhjOGM4XCIsXG5cdFwiQ1NTXCI6IFwiIzE1NzJiNlwiLFxuXHRcIkNTVlwiOiBcIiNjMmMyYzJcIixcblx0XCJEXCI6IFwiI2IwMzkzMVwiLFxuXHRcIkRhcnRcIjogXCIjNThiNmYwXCIsXG5cdFwiRGhhbGxcIjogXCIjYjdiN2I3XCIsXG5cdFwiRGlmZlwiOiBcIiNjMDAwMDBcIixcblx0XCJEamFuZ28vSmluamEyXCI6IFwiI2ZmMDAwMFwiLFxuXHRcIkRvY2tlclwiOiBcIiMwMDk2ZTZcIixcblx0XCJET1QgKEdyYXBodml6KVwiOiBcIiM0ZWQxZjhcIixcblx0XCJFZGl0b3JDb25maWdcIjogXCIjZTNlM2Y4XCIsXG5cdFwiRUpTXCI6IFwiIzkwYTkzYVwiLFxuXHRcIkVsaXhpclwiOiBcIiM0NTI0NTlcIixcblx0XCJFbG1cIjogXCIjOGNkNjM2XCIsXG5cdFwiRVJCXCI6IFwiIzkyMWExZVwiLFxuXHRcIkVybGFuZ1wiOiBcIiNhMjAwM2VcIixcblx0XCJGI1wiOiBcIiMzNzhiYmFcIixcblx0XCJGaXJlc3RvcmUgc2VjdXJpdHkgcnVsZXNcIjogXCIjZjY4MjBjXCIsXG5cdFwiRmxvd1wiOiBcIiNmZmIwNDdcIixcblx0XCJGb3J0cmFuXCI6IFwiIzczNGY5NlwiLFxuXHRcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIjogXCIjMDA1MGIyXCIsXG5cdFwiR2FtZU1ha2VyIExhbmd1YWdlXCI6IFwiIzhiYzM0YVwiLFxuXHRcIkctY29kZVwiOiBcIiNiYTAwMDBcIixcblx0XCJHRFNjcmlwdFwiOiBcIiM0NzhjYmZcIixcblx0XCJHaXRcIjogXCIjZGQ0YzM1XCIsXG5cdFwiR0xTTFwiOiBcIiM0Mzg2YjVcIixcblx0XCJHbyBtb2R1bGVcIjogXCIjY2UzMjYyXCIsXG5cdFwiR29cIjogXCIjMDBhY2Q3XCIsXG5cdFwiR3JhZGxlXCI6IFwiIzAwNjUzM1wiLFxuXHRcIkdyYXBoUUxcIjogXCIjZTEwMDk4XCIsXG5cdFwiR3Jvb3Z5XCI6IFwiIzYzOThhYVwiLFxuXHRcIkhhbWxcIjogXCIjZWNkZmE3XCIsXG5cdFwiSGFuZGxlYmFyc1wiOiBcIiNjMTk3NzBcIixcblx0XCJIYXNrZWxsXCI6IFwiI0MwNDUwNFwiLFxuXHRcIkhheGVcIjogXCIjZjY4NzEyXCIsXG5cdFwiSExTTFwiOiBcIiMwMDAwZmZcIixcblx0XCJIVE1MXCI6IFwiI2U0NGYyNlwiLFxuXHRcIkhUVFBcIjogXCIjM2I2MWE2XCIsXG5cdFwiSWRyaXNcIjogXCIjOGEwODE5XCIsXG5cdFwiSW5pXCI6IFwiIzk5YjhjNFwiLFxuXHRcIklvXCI6IFwiI2MyYzJjMlwiLFxuXHRcIkphdmFcIjogXCIjNTM4MmExXCIsXG5cdFwiSmF2YVNjcmlwdFwiOiBcIiNmNWRlMTlcIixcblx0XCJKU09OXCI6IFwiI2Y1ZGUxOVwiLFxuXHRcIkpTT041XCI6IFwiIzkwOTA5MFwiLFxuXHRcIkp1bGlhXCI6IFwiIzQwNjNkOFwiLFxuXHRcIktvdGxpblwiOiBcIiM5ZDRiOWRcIixcblx0XCJLdXN0b1wiOiBcIiM1OWI0ZDlcIixcblx0XCJMYVRlWFwiOiBcIiNjZmNmY2ZcIixcblx0XCJMZXNzXCI6IFwiIzJhNGY4NFwiLFxuXHRcIkxpcXVpZFwiOiBcIiMwMDQ5OTlcIixcblx0XCJMaXNwXCI6IFwiIzgzODFjNVwiLFxuXHRcIkxpdmVTY3JpcHRcIjogXCIjMzE3ZWFjXCIsXG5cdFwiTG9nIGZpbGVcIjogXCIjMDBiZDAyXCIsXG5cdFwiTE9MQ09ERVwiOiBcIiM4ZDI3MDFcIixcblx0XCJMdWFcIjogXCIjMDUwMDgwXCIsXG5cdFwiTWFya2Rvd25cIjogXCIjNzU1ODM4XCIsXG5cdFwiTUFUTEFCXCI6IFwiI2VmNmMzZVwiLFxuXHRcIk1BWFNjcmlwdFwiOiBcIiMwMDY5NmJcIixcblx0XCJNRUxcIjogXCIjMDZhMGEyXCIsXG5cdFwiTW9uZ29EQlwiOiBcIiM0MWEyNDdcIixcblx0XCJuZ2lueFwiOiBcIiMwMTk2MzlcIixcblx0XCJOaW1cIjogXCIjZmZlOTUzXCIsXG5cdFwiTml4XCI6IFwiIzUyNzdjM1wiLFxuXHRcIk5TSVNcIjogXCIjYTQyZDI2XCIsXG5cdFwiT2JqZWN0IFBhc2NhbFwiOiBcIiNGRjYzNDRcIixcblx0XCJPYmplY3RpdmUtQ1wiOiBcIiNjMmMyYzJcIixcblx0XCJPQ2FtbFwiOiBcIiNmMjkxMDRcIixcblx0XCJPY3RhdmVcIjogXCIjNzdjY2UxXCIsXG5cdFwiT3BlbkNMXCI6IFwiI0ZGMUMxQVwiLFxuXHRcIlBhc2NhbFwiOiBcIiNGRjYzNDRcIixcblx0XCJQZXJsXCI6IFwiIzNhM2M1YlwiLFxuXHRcIlBIUFwiOiBcIiM0YzZiOTZcIixcblx0XCJQTC9TUUxcIjogXCIjZmYwMDAwXCIsXG5cdFwiUGxhaW4gdGV4dFwiOiBcIiNjMmMyYzJcIixcblx0XCJQbGFudFVNTFwiOiBcIiNBMTFGNDFcIixcblx0XCJQb3dlclF1ZXJ5XCI6IFwiI2NmY2ZjZlwiLFxuXHRcIlBvd2VyU2hlbGxcIjogXCIjNTM5MWZlXCIsXG5cdFwiUHJvY2Vzc2luZ1wiOiBcIiMxYzRjNzBcIixcblx0XCJQcm9sb2dcIjogXCIjZWMxYzI0XCIsXG5cdFwiUHJvdG9jb2wgQnVmZmVyc1wiOiBcIiM5N2ZmMjdcIixcblx0XCJQdWdcIjogXCIjNDQyODIzXCIsXG5cdFwiUHVwcGV0XCI6IFwiI2ZmYWUxYVwiLFxuXHRcIlB1cmVTY3JpcHRcIjogXCIjMTYxNzFiXCIsXG5cdFwiUHl0aG9uXCI6IFwiIzM2NzFBMVwiLFxuXHRcIlEgKGtkYisgZGF0YWJhc2UpXCI6IFwiIzFlNzhiM1wiLFxuXHRcIlEjXCI6IFwiIzMzMzNjY1wiLFxuXHRcIlFNTFwiOiBcIiM0MWNkNTJcIixcblx0XCJSXCI6IFwiIzI3NmRjM1wiLFxuXHRcIlJhY2tldFwiOiBcIiM5ZjFkMjBcIixcblx0XCJSYXpvciBDI1wiOiBcIiMzNjg4MzJcIixcblx0XCJSZWFjdCBKU1hcIjogXCIjMDBkOGZmXCIsXG5cdFwiUmVhY3QgVFNYXCI6IFwiIzAwN2FjY1wiLFxuXHRcIlJlYXNvblwiOiBcIiNkZDRiMzlcIixcblx0XCJSZWdvXCI6IFwiIzc4OTI5YVwiLFxuXHRcIlJlU2NyaXB0XCI6IFwiI2U4NGY0ZlwiLFxuXHRcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCI6IFwiI2NlM2YzMVwiLFxuXHRcIlJvYm90IEZyYW1ld29ya1wiOiBcIlwiLFxuXHRcIlJ1YnlcIjogXCIjYjMxMzAxXCIsXG5cdFwiUnVzdFwiOiBcIiNhMDRmMTJcIixcblx0XCJTQVNcIjogXCIjMDAyYmI1XCIsXG5cdFwiU2FzcyAoU2FzcylcIjogXCIjY2Q2Nzk5XCIsXG5cdFwiU2FzcyAoU0NTUylcIjogXCIjY2Q2Nzk5XCIsXG5cdFwiU2NhbGFcIjogXCIjZTYyZDJhIFwiLFxuXHRcIlNoZWxsIHNlc3Npb25cIjogXCIjZDliNDAwXCIsXG5cdFwiU2hlbGxcIjogXCIjZDliNDAwXCIsXG5cdFwiU21hcnR5XCI6IFwiI2Y2ZTIwMFwiLFxuXHRcIlNvbGlkaXR5IChFdGhlcmV1bSlcIjogXCIjYzFjMWMxXCIsXG5cdFwiU29sdXRpb24gZmlsZVwiOiBcIiM4NTRjYzdcIixcblx0XCJTUEFSUUxcIjogXCIjMGM0NzljXCIsXG5cdFwiU1FGXCI6IFwiI2MyYzJjMlwiLFxuXHRcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiOiBcIiNjMmMyYzJcIixcblx0XCJTUUxcIjogXCIjZmZkYTQ0XCIsXG5cdFwiU3F1aXJyZWxcIjogXCIjYTA1YTJjXCIsXG5cdFwiU3RhblwiOiBcIiNiMjAwMWRcIixcblx0XCJTdGF0YSBBZG9cIjogXCIjM2M2ZThmXCIsXG5cdFwiU3R5bHVzXCI6IFwiI2MyYzJjMlwiLFxuXHRcIlNWR1wiOiBcIiNmZmIxM2JcIixcblx0XCJTd2lmdFwiOiBcIiNGQTVEMkRcIixcblx0XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiOiBcIiMzMGQ0NzVcIixcblx0XCJUNCB0ZW1wbGF0aW5nXCI6IFwiIzFlODhlNVwiLFxuXHRcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIjogXCIjMWU4OGU1XCIsXG5cdFwiVDQgVGV4dCBUZW1wbGF0ZXMgKFZCKVwiOiBcIiMxZTg4ZTVcIixcblx0XCJUY2xcIjogXCIjZWZmMWNiXCIsXG5cdFwiVGVtcGxhdGUgVG9vbGtpdCAyXCI6IFwiIzNiY2VmY1wiLFxuXHRcIlRlWFwiOiBcIiNjZmNmY2ZcIixcblx0XCJUZXh0aWxlXCI6IFwiI2ZmZTdhY1wiLFxuXHRcIlRPTUxcIjogXCIjYmZiZmJmXCIsXG5cdFwiVFNDb25maWdcIjogXCIjMDA3YWNjXCIsXG5cdFwiVHdpZ1wiOiBcIiM3OGRjNTBcIixcblx0XCJUeXBlU2NyaXB0XCI6IFwiIzMxNzhjNlwiLFxuXHRcIlR5cG9TY3JpcHRcIjogXCIjZmY4NzAwXCIsXG5cdFwiVlwiOiBcIiM1ZDg3YmZcIixcblx0XCJWYWxhXCI6IFwiIzQwMzc1N1wiLFxuXHRcIlZCLk5ldFwiOiBcIiMwMDUxOWFcIixcblx0XCJWQkFcIjogXCIjZDg3YjMwXCIsXG5cdFwiVmVsb2NpdHlcIjogXCIjMjYyNjkyXCIsXG5cdFwiVmVyaWxvZ1wiOiBcIiMxYTM0OGZcIixcblx0XCJWSERMXCI6IFwiIzBkOWIzNVwiLFxuXHRcInZpbVwiOiBcIiM0M2I1NGFcIixcblx0XCJWaXN1YWwgQmFzaWNcIjogXCIjMDA1MTlhXCIsXG5cdFwiV2ViQXNzZW1ibHlcIjogXCIjNjU0ZmYwXCIsXG5cdFwiV29sZnJhbSBsYW5ndWFnZVwiOiBcIiNkMDEwMDBcIixcblx0XCJYTUxcIjogXCIjZjE2NjJhXCIsXG5cdFwiWFF1ZXJ5XCI6IFwiI2YxNjYyYVwiLFxuXHRcIllBTUxcIjogXCIjZmZlODg1XCIsXG5cdFwiWUFOR1wiOiBcIiMyMzFmMjBcIixcblx0XCJaaWdcIjogXCIjZjdhNDFkXCJcbn07XG5cbmNvbnN0IEVYRUNVVEVfQ09ERV9MQU5HVUFHRV9BTElBU0VTOiBBcnJheTxzdHJpbmc+ID0gW1wiamF2YXNjcmlwdFwiLFwidHlwZXNjcmlwdFwiLFwiYmFzaFwiLFwiY3NoYXJwXCIsXCJ3b2xmcmFtXCIsXCJuYlwiLFwid2xcIixcImhzXCIsXCJweVwiLFwic2NwdFwiXTtcbmNvbnN0IEVYRUNVVEVfQ09ERV9DQU5PTklDQUxfTEFOR1VBR0VTOiBBcnJheTxzdHJpbmc+ID0gW1wianNcIixcInRzXCIsXCJjc1wiLFwibGVhblwiLFwibHVhXCIsXCJweXRob25cIixcImNwcFwiLFwicHJvbG9nXCIsXCJzaGVsbFwiLFwiZ3Jvb3Z5XCIsXCJyXCIsXCJnb1wiLFwicnVzdFwiLFwiamF2YVwiLFwicG93ZXJzaGVsbFwiLFwia290bGluXCIsXCJtYXRoZW1hdGljYVwiLFwiaGFza2VsbFwiLFwic2NhbGFcIixcInJhY2tldFwiLFwiZnNoYXJwXCIsXCJjXCIsXCJkYXJ0XCIsXCJydWJ5XCIsXCJiYXRjaFwiLFwic3FsXCIsXCJvY3RhdmVcIixcIm1heGltYVwiLFwiYXBwbGVzY3JpcHRcIl07XG5cbmV4cG9ydCBjb25zdCBFWEVDVVRFX0NPREVfU1VQUE9SVEVEX0xBTkdVQUdFUyA9IFsuLi5FWEVDVVRFX0NPREVfTEFOR1VBR0VfQUxJQVNFUywuLi5FWEVDVVRFX0NPREVfQ0FOT05JQ0FMX0xBTkdVQUdFU107XG4iLCAiaW1wb3J0IHsgQXBwLCBQbHVnaW5TZXR0aW5nVGFiLCBTZXR0aW5nLCBOb3RpY2UsIFRleHRDb21wb25lbnQsIERyb3Bkb3duQ29tcG9uZW50LCBTbGlkZXJDb21wb25lbnQsIFRvZ2dsZUNvbXBvbmVudCwgRXh0cmFCdXR0b25Db21wb25lbnQsIE1hcmtkb3duUmVuZGVyZXIsIENvbXBvbmVudCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IFBpY2tyIGZyb20gXCJAc2ltb253ZXAvcGlja3JcIjtcbmltcG9ydCB7IENvbG9yVHJhbnNsYXRvciB9IGZyb20gXCJjb2xvcnRyYW5zbGF0b3JcIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuaW1wb3J0IHsgQ29sb3VyLCBDU1MsIEhFWCwgRGlzcGxheSwgQ29kZVN0eWxlclNldHRpbmdzLCBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBGT0xEX1BMQUNFSE9MREVSLCBQQVJBTUVURVJTLCBERUZBVUxUX1NFVFRJTkdTLCBMQU5HVUFHRV9OQU1FUywgTEFOR1VBR0VfSUNPTlNfREFUQSwgU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgsIEVYQU1QTEVfSU5MSU5FX0NPREUsIEVYQU1QTEVfQ09ERUJMT0NLX1BBUkFNRVRFUlMsIEVYQU1QTEVfQ09ERUJMT0NLX0NPTlRFTlQsIEVYQ0xVREVEX0xBTkdVQUdFUywgV0hJVEVMSVNUX0NPREVCTE9DS1MsIElOQlVJTFRfVEhFTUVTLCBDb2RlU3R5bGVyVGhlbWUgfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuXG5jb25zdCBTRVRUSU5HU19QQUdFUzogUmVjb3JkPHN0cmluZyxzdHJpbmc+ID0ge1xuXHRcIm1haW5cIjogXCJDb3JlIFNldHRpbmdzXCIsXG5cdFwiY29kZWJsb2NrXCI6IFwiQ29kZWJsb2NrIFN0eWxpbmdcIixcblx0XCJpbmxpbmVcIjogXCJJbmxpbmUgQ29kZSBTdHlsaW5nXCIsXG59O1xuY29uc3QgQ09ERUJMT0NLX1BBR0VTOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4gPSB7XG5cdFwiYm9keVwiOiBcIkNvZGVibG9jayBCb2R5XCIsXG5cdFwiZ3V0dGVyXCI6IFwiQ29kZWJsb2NrIEd1dHRlclwiLFxuXHRcImhlYWRlclwiOiBcIkNvZGVibG9jayBIZWFkZXJcIixcblx0XCJoaWdobGlnaHRcIjogXCJDb2RlYmxvY2sgSGlnaGxpZ2h0aW5nXCIsXG5cdFwibGFuZ3VhZ2VzXCI6IFwiQ29kZWJsb2NrIExhbmd1YWdlc1wiLFxuXHQvLyBcInBsdWdpbnNcIjogXCJQbHVnaW4gQ29tcGF0aWJpbGl0eVwiLFxuXHRcImV4YW1wbGVcIjogXCJFeGFtcGxlIENvZGVibG9jayBDb250ZW50XCIsXG59O1xuY29uc3QgRElTUExBWV9PUFRJT05TOiBSZWNvcmQ8RGlzcGxheSxzdHJpbmc+ID0ge1xuXHRcIm5vbmVcIjogXCJOZXZlclwiLFxuXHRcImlmX2hlYWRlcl9zaG93blwiOiBcIklmIEhlYWRlciBTaG93blwiLFxuXHRcImFsd2F5c1wiOiBcIkFsd2F5c1wiLFxufTtcblxuZXhwb3J0IGNsYXNzIFNldHRpbmdzVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG5cdHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbjtcblx0cGlja3JzOiBSZWNvcmQ8c3RyaW5nLFBpY2tyUmVzZXR0YWJsZT47XG5cdHBhZ2U6IHN0cmluZztcblx0Y29kZWJsb2NrUGFnZTogc3RyaW5nO1xuXHRoaWRlQWR2YW5jZWQ6IGJvb2xlYW47XG5cdGNvZGVibG9ja1NldHRpbmdFbDogSFRNTEVsZW1lbnQ7XG5cdGFkdmFuY2VkU2V0dGluZ3NDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRleGFtcGxlQ29kZWJsb2NrQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0ZXhhbXBsZUlubGluZUNvZGVDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHR3cmFwTGluZXNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRsaW5lTnVtYmVyc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGhlYWRlclRhZ3NDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRoZWFkZXJJY29uc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGlubGluZUNvZGVTdHlsZXNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRkaXNhYmxlYWJsZUNvbXBvbmVudHM6IFJlY29yZDxzdHJpbmcsQXJyYXk8VG9nZ2xlQ29tcG9uZW50IHwgU2xpZGVyQ29tcG9uZW50IHwgVGV4dENvbXBvbmVudCB8IEV4dHJhQnV0dG9uQ29tcG9uZW50Pj47XG5cblx0Y29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRcdHN1cGVyKGFwcCwgcGx1Z2luKTtcblx0XHR0aGlzLnBsdWdpbiA9IHBsdWdpbjtcblx0XHR0aGlzLnBpY2tycyA9IHt9O1xuXHRcdHRoaXMucGFnZSA9IFwibWFpblwiO1xuXHRcdHRoaXMuY29kZWJsb2NrUGFnZSA9IFwiYm9keVwiO1xuXHRcdHRoaXMuaGlkZUFkdmFuY2VkID0gdHJ1ZTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50cyA9IHt9O1xuXHR9XG5cblx0LyoqXG5cdCAqICBCdWlsZHMgdGhlIGh0bWwgcGFnZSB0aGF0IGlzIHNob3dlZCBpbiB0aGUgc2V0dGluZ3MuXG5cdCAqL1xuXHRkaXNwbGF5KCkge1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzID0ge1xuXHRcdFx0XCJlZGl0b3JBY3RpdmVMaW5lSGlnaGxpZ2h0XCI6IFtdLFxuXHRcdFx0XCJjb2RlYmxvY2tBY3RpdmVMaW5lSGlnaGxpZ2h0XCI6IFtdLFxuXHRcdFx0XCJncmFkaWVudEhpZ2hsaWdodGluZ1wiOiBbXSxcblx0XHRcdFwibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIjogW10sXG5cdFx0fTtcblx0XHR0aGlzLmhpZGVBZHZhbmNlZCA9IHRydWU7XG5cdFx0dGhpcy5nZW5lcmF0ZVNldHRpbmdzKHRoaXMuY29udGFpbmVyRWwpO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIFNldHRpbmdzIFBhZ2VzXG5cdGRpc3BsYXlNYWluU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5lbXB0eVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3NTd2l0Y2hlcihjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVDb3JlU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVBZHZhbmNlZEhlYWRpbmcoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVBZHZhbmNlZFNldHRpbmdzKCk7XG5cdFx0dGhpcy5nZW5lcmF0ZURvbmF0aW9uRm9vdGVyKGNvbnRhaW5lckVsKTtcblx0fVxuXHRkaXNwbGF5Q29kZWJsb2NrU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5lbXB0eVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3NTd2l0Y2hlcihjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaHJcIik7XG5cdFx0dGhpcy5leGFtcGxlQ29kZWJsb2NrQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrU3R5bGluZ1N3aXRjaGVyKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmNvZGVibG9ja1NldHRpbmdFbCA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tTZXR0aW5nKCk7XG5cblx0fVxuXHRkaXNwbGF5SW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdHRoaXMuZW1wdHlTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVNldHRpbmdzU3dpdGNoZXIoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVUaGVtZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImhyXCIpO1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKTtcblx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdH1cblxuXHQvLyBDcmVhdGUgU2V0dGluZ3MgR3JvdXBzXG5cdGVtcHR5U2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuZW1wdHkoKTtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgxXCIsIHt0ZXh0OiBcIlNldHRpbmdzIGZvciB0aGUgQ29kZSBTdHlsZXIgUGx1Z2luLlwifSk7XG5cdH1cblx0Z2VuZXJhdGVTZXR0aW5nc1N3aXRjaGVyKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDaG9vc2UgU2V0dGluZ3MgUGFnZVwiKVxuXHRcdFx0LnNldERlc2MoXCJDaGFuZ2UgZHJvcGRvd24gdG8gbW9kaWZ5IGRpZmZlcmVudCBncm91cHMgb2Ygc2V0dGluZ3NcIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKFNFVFRJTkdTX1BBR0VTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wYWdlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBhZ2UgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRpZiAodGhpcy5wYWdlID09PSBcIm1haW5cIilcblx0XHRcdHRoaXMuZGlzcGxheU1haW5TZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5wYWdlID09PSBcImNvZGVibG9ja1wiKVxuXHRcdFx0dGhpcy5kaXNwbGF5Q29kZWJsb2NrU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMucGFnZSA9PT0gXCJpbmxpbmVcIilcblx0XHRcdHRoaXMuZGlzcGxheUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tTdHlsaW5nU3dpdGNoZXIoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNob29zZSBDb2RlYmxvY2sgU2V0dGluZ3NcIilcblx0XHRcdC5zZXREZXNjKFwiQ2hhbmdlIGRyb3Bkb3duIHRvIG1vZGlmeSBzdHlsZXMgYW5kIHNldHRpbmdzIG9mIGRpZmZlcmVudCBjb2RlYmxvY2sgc2VjdGlvbnNcIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKENPREVCTE9DS19QQUdFUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMuY29kZWJsb2NrUGFnZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYWdlID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja1NldHRpbmcoKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrU2V0dGluZygpIHtcblx0XHR0aGlzLmNvZGVibG9ja1NldHRpbmdFbC5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiYm9keVwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0JvZHlTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcImd1dHRlclwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0d1dHRlclNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiaGVhZGVyXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrSGVhZGVyU2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJoaWdobGlnaHRcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tIaWdobGlnaHRTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcImxhbmd1YWdlc1wiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0xhbmd1YWdlU2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJwbHVnaW5zXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlUGx1Z2luQ29tcGF0aWJpbGl0eVNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiZXhhbXBsZVwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2tTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdH1cblx0Z2VuZXJhdGVDb3JlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlN0eWxlIENvZGUgb24gRXhwb3J0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIHN0eWxpbmcgd2lsbCBiZSBhcHBsaWVkIHdoZW4gZXhwb3J0aW5nIHRvIFBERi5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmRlY29yYXRlUHJpbnQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICAgICAgIFxuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVUaGVtZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDJcIiwge3RleHQ6IFwiVGhlbWUgU2V0dGluZ3NcIn0pO1xuXHRcdGxldCB0aGVtZURyb3Bkb3duOiBEcm9wZG93bkNvbXBvbmVudDtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU2VsZWN0IFRoZW1lXCIpXG5cdFx0XHQuYWRkRHJvcGRvd24oKGRyb3Bkb3duKSA9PiB7XG5cdFx0XHRcdHRoZW1lRHJvcGRvd24gPSBkcm9wZG93bjtcblx0XHRcdFx0dGhpcy51cGRhdGVEcm9wZG93bih0aGVtZURyb3Bkb3duLHRoaXMucGx1Z2luLnNldHRpbmdzKTtcblx0XHRcdFx0dGhlbWVEcm9wZG93bi5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEV4dHJhQnV0dG9uKGJ1dHRvbiA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRUb29sdGlwKFwiVXBkYXRlIHRoZW1lXCIpO1xuXHRcdFx0XHRidXR0b24uc2V0SWNvbihcInNhdmVcIik7XG5cdFx0XHRcdGJ1dHRvbi5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0gPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZX0gdGhlbWUgc2F2ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuYWRkRXh0cmFCdXR0b24oYnV0dG9uID0+IHtcblx0XHRcdFx0YnV0dG9uLnNldFRvb2x0aXAoXCJEZWxldGUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwidHJhc2hcIik7XG5cdFx0XHRcdGJ1dHRvbi5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZS50cmltKCkubGVuZ3RoID09PSAwKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIlNlbGVjdCBhIHRoZW1lIGZpcnN0IHRvIGRlbGV0ZVwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSBpbiBERUZBVUxUX1NFVFRJTkdTLnRoZW1lcylcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoXCJZb3UgY2Fubm90IGRlbGV0ZSB0aGUgZGVmYXVsdCB0aGVtZXNcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0ZGVsZXRlIHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXTtcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZX0gdGhlbWUgZGVsZXRlZCBzdWNjZXNzZnVsbHkhYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSA9IFwiRGVmYXVsdFwiO1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSk7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRsZXQgbmV3VGhlbWVOYW1lOiBUZXh0Q29tcG9uZW50O1xuXHRcdGxldCBuZXdUaGVtZURlZmF1bHQ6IFRvZ2dsZUNvbXBvbmVudDtcblx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSA9IFwiXCI7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkFkZCBOZXcgVGhlbWVcIilcblx0XHRcdC5zZXREZXNjKFwiQ3JlYXRlIGEgbmV3IHRoZW1lIGZyb20gdGhlIGN1cnJlbnQgc2V0dGluZ3MuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHtuZXdUaGVtZU5hbWUgPSB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihcIk5ldyB0aGVtZSBuYW1lXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gdmFsdWU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRFeHRyYUJ1dHRvbihidXR0b24gPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0VG9vbHRpcChcIlNhdmUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwicGx1c1wiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZS50cmltKCkubGVuZ3RoID09PSAwKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIlNldCBhIG5hbWUgZm9yIHlvdXIgdGhlbWVcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lIGluIERFRkFVTFRfU0VUVElOR1MudGhlbWVzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIllvdSBjYW4ndCBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgdGhlbWVzXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSBpbiB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXMpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKGAke3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lfSB0aGVtZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWVdID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWV9IHRoZW1lIHNhdmVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWU7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gXCJcIjtcblx0XHRcdFx0XHRcdG5ld1RoZW1lTmFtZS5zZXRWYWx1ZShcIlwiKTtcblx0XHRcdFx0XHRcdG5ld1RoZW1lRGVmYXVsdC5zZXRWYWx1ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0JvZHlTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkNvZGVibG9jayBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2suYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2suYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNvZGVibG9jayBUZXh0IENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImNvZGVibG9ja190ZXh0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uY29kZWJsb2NrLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uY29kZWJsb2NrLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDb2RlYmxvY2sgQ3VydmF0dXJlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IHJvdW5kZWQgdGhlIGNvZGVibG9ja3MgYXBwZWFyIGluIHBpeGVscy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDI1LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGN1cnZhdHVyZVwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmU7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkxhbmd1YWdlIENvbG91cmVkIEJvcmRlcnNcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgbGFuZ3VhZ2VzIHdpdGggaWNvbnMgZGlzcGxheSBhIGxlZnQgYm9yZGVyIHdpdGggdGhlIGNvbG91ciBvZiB0aGUgaWNvbi4gVGhlIHNsaWRlciBzZXRzIHRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXIgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxhbmd1YWdlQm9yZGVyQ29sb3VyXCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDIwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGggPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxhbmd1YWdlQm9yZGVyQ29sb3VyXCJdLnB1c2gocmVzZXR0YWJsZVNsaWRlcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRsZXQgcmVzZXRCdXR0b246IEV4dHJhQnV0dG9uQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtyZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXIgc3RvcFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGg7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIl0ucHVzaChyZXNldEJ1dHRvbik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlVud3JhcCBjb2RlYmxvY2sgbGluZXNcIilcblx0XHRcdC5zZXREZXNjKFwiQ2hvb3NlIHdoZXRoZXIgdG8gdW53cmFwIGxpbmVzIGluIHJlYWRpbmcgbW9kZVwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVXcmFwTGluZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7ICBcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMud3JhcExpbmVzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVdyYXBMaW5lU2V0dGluZ3MoKTtcblx0fVxuXHRnZW5lcmF0ZVdyYXBMaW5lU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy53cmFwTGluZXNDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXMpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy53cmFwTGluZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIldyYXAgTGluZXMgb24gQ2xpY2tcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaW4gcmVhZGluZyBtb2RlLCBob2xkaW5nIGNsaWNrIG9uIGEgY29kZWJsb2NrIHdpbGwgd3JhcCB0aGUgbGluZXMgZm9yIGJldHRlciB2aXNpYmlsaXR5LlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLndyYXBMaW5lc0FjdGl2ZSlcblx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay53cmFwTGluZXNBY3RpdmUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTsgXG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0d1dHRlclNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiR3V0dGVyIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFbmFibGUgTGluZSBOdW1iZXJzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGRpc2FibGVkLCB0aGUgYmVsb3cgc2V0dGluZ3MgYXJlIGRpc2FibGVkIHRvby5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrTGluZU51bWJlclNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7ICAgICAgICAgXG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0xpbmVOdW1iZXJTZXR0aW5ncygpO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrTGluZU51bWJlclNldHRpbmdzKCkge1xuXHRcdHRoaXMubGluZU51bWJlcnNDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiR3V0dGVyIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMubGluZU51bWJlcnNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJndXR0ZXJfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJMaW5lIE51bWJlciBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImxpbmVfbnVtYmVyXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMubGluZU51bWJlcnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkhpZ2hsaWdodCBMaW5lIE51bWJlcnNcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyB3aWxsIGFsc28gaGlnaGxpZ2h0IHRoZSBsaW5lIG51bWJlcnMuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0KVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmhpZ2hsaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmRpY2F0ZSBDdXJyZW50IExpbmUgTnVtYmVyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyIGluIGNvZGVibG9ja3Mgd2lsbCBiZSBpbmRpY2F0ZWQgd2l0aCBhIHNlcGFyYXRlIGNvbG91ci5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNwYWNlZFwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuYWN0aXZlTGluZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pXG5cdFx0XHQpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMubGluZU51bWJlcnNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJhY3RpdmVfbGluZV9udW1iZXJcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYWN0aXZlVGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYWN0aXZlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tIZWFkZXJTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkhlYWRlciBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBGb250IFNpemVcIilcblx0XHRcdC5zZXREZXNjKFwiU2V0IHRoZSBmb250IHNpemUgZm9yIGhlYWRlciBsYW5ndWFnZSB0YWdzIGFuZCB0aXRsZXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoNiwzMiwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgZm9udCBzaXplXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemU7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIFRpdGxlIFRleHQgU3R5bGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJTdHlsZSB0aGUgaGVhZGVyIHRpdGxlIHRleHQgdXNpbmcgYm9sZCBhbmQgaXRhbGljIHRvZ2dsZXMsIGJ5IHNldHRpbmcgYSBmb250IG9yIGJ5IHNldHRpbmcgYSB0ZXh0IGNvbG91ci5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHt0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgYm9sZCB0aXRsZSB0ZXh0XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Qm9sZCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHt0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgaXRhbGljIHRpdGxlIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEl0YWxpYylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEl0YWxpYyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4ge3RleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiRm9udFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Rm9udClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEZvbnQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX3RpdGxlX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIudGl0bGUudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIudGl0bGUudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bGV0IGZvbGRQbGFjZWhvbGRlclRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJGb2xkIFBsYWNlaG9sZGVyIFRleHRcIilcblx0XHRcdC5zZXREZXNjKFwiVGl0bGUgcGxhY2Vob2xkZXIgdGV4dCBmb3IgZm9sZGVkIGNvZGUgd2hlbiBubyB0aXRsZSBwYXJhbWV0ZXIgaXMgc2V0LlwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihGT0xEX1BMQUNFSE9MREVSKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb2xkUGxhY2Vob2xkZXIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KGZvbGRQbGFjZWhvbGRlclRpbWVvdXQpO1xuXHRcdFx0XHRcdGZvbGRQbGFjZWhvbGRlclRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnJlcmVuZGVyKCksMTAwMCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIFNlcGFyYXRvciBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiQ29sb3VyIG9mIHRoZSBsaW5lIHNlcGFyYXRpbmcgdGhlIGNvZGVibG9jayBoZWFkZXIgYW5kIHRoZSBjb2RlYmxvY2suXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX3NlcGFyYXRvclwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5saW5lQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5saW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRcdFxuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDVcIiwge3RleHQ6IFwiSGVhZGVyIExhbmd1YWdlIFRhZyBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRGlzcGxheSBIZWFkZXIgTGFuZ3VhZ2UgVGFnc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmUgd2hlbiB0byBzaG93IGxhbmd1YWdlIHRhZ3MgaW4gdGhlIGhlYWRlci4gXFxcIlRpdGxlIE9ubHlcXFwiIHdpbGwgb25seSBzaG93IGxhbmd1YWdlIHRhZ3Mgd2hlbiB0aGUgdGl0bGUgcGFyYW1ldGVyIGlzIHNldC5cIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKERJU1BMQVlfT1BUSU9OUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZTogRGlzcGxheSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVIZWFkZXJUYWdTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpO1xuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUhlYWRlclRhZ1NldHRpbmdzKCk7XG5cdFx0XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoNVwiLCB7dGV4dDogXCJIZWFkZXIgTGFuZ3VhZ2UgSWNvbiBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRGlzcGxheSBIZWFkZXIgTGFuZ3VhZ2UgSWNvbnNcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lIHdoZW4gdG8gc2hvdyBsYW5ndWFnZSBpY29ucyB3aGVyZSBhdmFpbGFibGUuIFxcXCJUaXRsZSBPbmx5XFxcIiB3aWxsIG9ubHkgc2hvdyBsYW5ndWFnZSB0YWdzIHdoZW4gdGhlIHRpdGxlIHBhcmFtZXRlciBpcyBzZXQuXCIpXG5cdFx0XHQuYWRkRHJvcGRvd24oKGRyb3Bkb3duKSA9PiBkcm9wZG93blxuXHRcdFx0XHQuYWRkT3B0aW9ucyhESVNQTEFZX09QVElPTlMpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBEaXNwbGF5KSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVIZWFkZXJJY29uU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMuaGVhZGVySWNvbnNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlSGVhZGVySWNvblNldHRpbmdzKCk7XG5cdH1cblx0Z2VuZXJhdGVIZWFkZXJUYWdTZXR0aW5ncygpIHtcblx0XHR0aGlzLmhlYWRlclRhZ3NDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID09PSBcIm5vbmVcIilcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlclRhZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBMYW5ndWFnZSBUYWcgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX2xhbmd1YWdlX3RhZ19iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxhbmd1YWdlVGFnLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxhbmd1YWdlVGFnLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIExhbmd1YWdlIFRhZyBUZXh0IFN0eWxpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiU3R5bGUgdGhlIGhlYWRlciBsYW5ndWFnZSB0YWcgdGV4dCB1c2luZyBib2xkIGFuZCBpdGFsaWMgdG9nZ2xlcywgYnkgc2V0dGluZyBhIGZvbnQgb3IgYnkgc2V0dGluZyBhIHRleHQgY29sb3VyLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiVG9nZ2xlIGJvbGQgbGFuZ3VhZ2UgdGFnIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBpdGFsaWMgbGFuZ3VhZ2UgdGFnIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEl0YWxpYylcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0SXRhbGljID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiRm9udFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udClcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmhlYWRlclRhZ3NDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfbGFuZ3VhZ2VfdGFnX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdH1cblx0Z2VuZXJhdGVIZWFkZXJJY29uU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5oZWFkZXJJY29uc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBcIm5vbmVcIilcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlckljb25zQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJMYW5ndWFnZSBJY29ucyBDb2xvdXJlZFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBkaXNhYmxlZCwgbGFuZ3VhZ2UgaWNvbnMgd2lsbCBiZSBibGFjayBhbmQgd2hpdGUuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXlDb2xvdXIpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5Q29sb3VyID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVySWNvbnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkxhbmd1YWdlIEljb24gU2l6ZVwiKVxuXHRcdFx0LnNldERlc2MoXCJTZXQgdGhlIHNpemUgb2YgdGhlIGRpc3BsYXllZCBsYW5ndWFnZSBpY29ucy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygxMCw0MCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuaWNvblNpemUpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGljb24gc2l6ZVwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSkpO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tIaWdobGlnaHRTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkhpZ2hsaWdodGluZyBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIEFjdGl2ZSBMaW5lIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHRoZSBhY3RpdmUgbGluZSBpbnNpZGUgY29kZWJsb2Nrcy5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNwYWNlZFwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3JldHVybiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lID0gdmFsdWU7IFxuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiY29kZWJsb2NrQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImNvZGVibG9ja19hY3RpdmVfbGluZV9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiAhdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSxcblx0XHRcdCk7fSk7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJjb2RlYmxvY2tBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLnB1c2godGhpcy5waWNrcnNbXCJjb2RlYmxvY2tfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCJdLnJlc2V0QnV0dG9uKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRGVmYXVsdCBIaWdobGlnaHQgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlVzZWQgYnkgdGhlICdobCcgcGFyYW1ldGVyLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImRlZmF1bHRfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuZGVmYXVsdENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bGV0IG5ld0hpZ2hsaWdodFRleHQ6IFRleHRDb21wb25lbnQ7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkFkZCBBbHRlcm5hdGl2ZSBIaWdobGlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiRGVmaW5lIGEgbmV3IGFsdGVybmF0aXZlIGhpZ2hsaWdodCBuYW1lLiBUaGUgY29sb3VyIGNhbiBiZSBtb2RpZmllZCBhZnRlciBpdCBpcyBhZGRlZC5cIilcblx0XHRcdC5hZGRUZXh0KHZhbHVlID0+IHtuZXdIaWdobGlnaHRUZXh0ID0gdmFsdWVcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiZS5nLiBlcnJvciwgd2FyblwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRCdXR0b24oKGJ1dHRvbikgPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0QnV0dG9uVGV4dChcIkFkZFwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQudHJpbSgpID09PSBcIlwiKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIlBsZWFzZSBlbnRlciBhIGNvbG91ciBuYW1lLlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAoIS9eW15cXGRdXFx3KiQvLnRlc3QodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0KSlcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIgaXMgbm90IGEgdmFsaWQgY29sb3VyIG5hbWUuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gXCJobFwiKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIkNhbm5vdCBvdmVycmlkZSB0aGUgZGVmYXVsdCBoaWdobGlnaHQgcGFyYW1ldGVyLlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAoUEFSQU1FVEVSUy5pbmNsdWRlcyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQudHJpbSgpLnRvTG93ZXJDYXNlKCkpKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIkNhbm5vdCB1c2Ugb3RoZXIgZGVmYXVsdCBwYXJhbWV0ZXJzLlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0IGluIHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgQSBoaWdobGlnaHQgd2l0aCB0aGUgbmFtZSBcIiR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0fVwiIGFscmVhZHkgZXhpc3RzLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgRnV0dXJlOiBGb2N1cyBvbiBleGlzdGluZyBoaWdobGlnaHRlciAtIGByZW5kZXJNYXRjaGVzYFxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc3QgbmV3Q29sb3VyID0gZ2V0UmFuZG9tQ29sb3VyKCk7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHRdID0gbmV3Q29sb3VyO1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMuZGFyay5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHRdID0gbmV3Q29sb3VyO1xuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYEFkZGVkIGhpZ2hsaWdodCBcIiR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0fVwiLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodCA9IFwiXCI7XG5cdFx0XHRcdFx0XHRuZXdIaWdobGlnaHRUZXh0LnNldFZhbHVlKFwiXCIpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdHRoaXMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiR3JhZGllbnQgSGlnaGxpZ2h0aW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGhpZ2hsaWdodHMgZmFkZSBhd2F5IHRvIHRoZSByaWdodC4gVGhlIHNsaWRlciBzZXRzIHRoZSBncmFkaWVudCBjb2xvdXIgc3RvcCBhcyBhIHBlcmNlbnRhZ2UuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJncmFkaWVudEhpZ2hsaWdodGluZ1wiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMDAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUoK3RoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wLnNsaWNlKDAsLTEpKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cylcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wID0gYCR7dmFsdWV9JWA7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJncmFkaWVudEhpZ2hsaWdodGluZ1wiXS5wdXNoKHJlc2V0dGFibGVTbGlkZXIpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0bGV0IHJlc2V0QnV0dG9uOiBFeHRyYUJ1dHRvbkNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7cmVzZXRCdXR0b24gPSBidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGNvbG91ciBzdG9wXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3AgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUoK3RoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wLnNsaWNlKDAsLTEpKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZ3JhZGllbnRIaWdobGlnaHRpbmdcIl0ucHVzaChyZXNldEJ1dHRvbik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tMYW5ndWFnZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGxldCBleGNsdWRlVGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkV4Y2x1ZGUgTGFuZ3VhZ2VzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRlZmluZSBsYW5ndWFnZXMgaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCB3aGljaCB0aGUgcGx1Z2luIHNob3VsZCBub3QgZGVjb3JhdGUuIFlvdSBjYW4gdXNlIGEgd2lsZGNhcmQgKCopIGVpdGhlciBhdCB0aGUgYmVnaW5uaW5nLCBvciBhdCB0aGUgZW5kLiBGb3IgZXhhbXBsZTogYWQtKiB3aWxsIGV4Y2x1ZGUgY29kZWJsb2NrcyB3aGVyZSB0aGUgbGFuZ3VhZ2Ugc3RhcnRzIHdpdGggYWQtIGUuZy46IGFkLWluZm8sIGFkLWVycm9yIGV0Yy5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoYGUuZy4gJHtFWENMVURFRF9MQU5HVUFHRVN9IGV0Yy5gKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KGV4Y2x1ZGVUaW1lb3V0KTtcblx0XHRcdFx0XHRleGNsdWRlVGltZW91dCA9IHNldFRpbWVvdXQoKCk9PnRoaXMucmVyZW5kZXIoKSwxMDAwKTtcblx0XHRcdFx0fSkpO1xuXHRcdGxldCB3aGl0ZWxpc3RUaW1lb3V0OiBOb2RlSlMuVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pnt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiV2hpdGVsaXN0ZWQgUHJvY2Vzc2VkIENvZGVibG9ja3NcIilcblx0XHRcdC5zZXREZXNjKFwiRGVmaW5lIGxhbmd1YWdlcyBpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IHdoaWNoIHRoZSBwbHVnaW4gc2hvdWxkIHN0eWxlIGRlc3BpdGUgYmVpbmcgcHJvY2Vzc2VkIGJ5IGFub3RoZXIgcGx1Z2luLiBZb3UgY2FuIHVzZSBhIHdpbGRjYXJkICgqKSBlaXRoZXIgYXQgdGhlIGJlZ2lubmluZywgb3IgYXQgdGhlIGVuZC4gRm9yIGV4YW1wbGU6IGFkLSogd2lsbCBleGNsdWRlIGNvZGVibG9ja3Mgd2hlcmUgdGhlIGxhbmd1YWdlIHN0YXJ0cyB3aXRoIGFkLSBlLmcuOiBhZC1pbmZvLCBhZC1lcnJvciBldGMuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKGBlLmcuICR7V0hJVEVMSVNUX0NPREVCTE9DS1N9IGV0Yy5gKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdGNsZWFyVGltZW91dCh3aGl0ZWxpc3RUaW1lb3V0KTtcblx0XHRcdFx0XHR3aGl0ZWxpc3RUaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+dGhpcy5yZXJlbmRlcigpLDEwMDApO1xuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlJlZGlyZWN0IExhbmd1YWdlIFNldHRpbmdzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlVzZSB0aGlzIHRleHRib3ggdG8gcmVkaXJlY3Qgc3BlY2lmaWMgbGFuZ3VhZ2UgY29sb3VycyBhbmQgaWNvbnMgYXMgYSBKU09OIHdpdGggbGFuZ3VhZ2UgbmFtZXMgYXMga2V5cyBhbmQgZWl0aGVyIGEgY29sb3VyIGtleSwgYW4gaWNvbiBrZXkgb3IgYm90aCBhcyB0aGUgdmFsdWUgZm9yIGEgZ2l2ZW4gbGFuZ3VhZ2UuIENvbG91cnMgc2hvdWxkIGJlIHBhc3NlZCBhcyBDU1MgY29sb3VycyBhbmQgaWNvbnMgc2hvdWxkIGJlIHBhc3NlZCBhcyBhIHN0cmluZyBvZiB0aGUgaW5zaWRlIG9mIGFuIHN2ZyBlbGVtZW50LiBUaGlzIHNldHRpbmcgaXMgdGhlbWUgaW5kZXBlbmRlbnQuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtYXJlYVwiKVxuXHRcdFx0LmFkZFRleHRBcmVhKHRleHRBcmVhID0+IHRleHRBcmVhXG5cdFx0XHRcdC5zZXRWYWx1ZShKU09OLnN0cmluZ2lmeSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyk9PT1cInt9XCI/XCJcIjpKU09OLnN0cmluZ2lmeSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyxudWxsLDQpKVxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoSlNPTi5zdHJpbmdpZnkoe3RvbWw6IHtjb2xvdXI6IFwiIzAxMjM0NVwiLCBpY29uOiBMQU5HVUFHRV9JQ09OU19EQVRBW1wiQVBMXCJdfX0sbnVsbCw0KSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSk9Pntcblx0XHRcdFx0XHRpZiAodmFsdWUgPT09IFwiXCIpIHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzID0ge307XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyA9IEpTT04ucGFyc2UodmFsdWUpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLnJlZGlyZWN0TGFuZ3VhZ2VzKCk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIkludmFsaWQgSlNPTlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgUmUtcmVuZGVyIChUZXN0KVxuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoM1wiLCB7dGV4dDogXCJJbmxpbmUgQ29kZSBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU3ludGF4IEhpZ2hsaWdodCBJbmxpbmUgQ29kZVwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBpbiByZWFkaW5nIG1vZGUsIGlubGluZSBjb2RlIHdpbGwgYmUgc3ludGF4IGhpZ2hsaWdodGVkIGJhc2VkIG9uIGEgbGFuZ3VhZ2Ugc2V0IHdpdGggYHtsYW5ndWFnZX0gaGlnaGxpZ2h0ZWRfaW5saW5lX2NvZGVgLiBTZWUgdGhlIFJFQURNRSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpOyAgICBcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTdHlsZSBJbmxpbmUgQ29kZVwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBpbmxpbmUgY29kZSB3aWxsIGJlIHN0eWxlZC5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3R5bGUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlSW5saW5lQ29kZVN0eWxlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVJbmxpbmVDb2RlU3R5bGVTZXR0aW5ncygpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVGl0bGUgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRoZSB0ZXh0IGNvbG91ciBvZiBpbmxpbmUgY29kZSB0aXRsZXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcInRpdGxlX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUudGl0bGVUZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50aXRsZVRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVGl0bGUgRm9udCBXZWlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgYm9sZCBpbmxpbmUgY29kZSB0aXRsZXMgYXBwZWFyLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDEsOSwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHdlaWdodFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQ7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0KTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVJbmxpbmVDb2RlU3R5bGVTZXR0aW5ncygpIHtcblx0XHR0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3R5bGUpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBCYWNrZ3JvdW5kIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJpbmxpbmVfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIFRleHQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImlubGluZV90ZXh0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgQWN0aXZlIFRleHQgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRoZSB0ZXh0IGNvbG91ciB3aGVuIGVkaXRpbmcgaW5saW5lIGNvZGUuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImlubGluZV9hY3RpdmVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS5hY3RpdmVUZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS5hY3RpdmVUZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEZvbnQgV2VpZ2h0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IGJvbGQgaW5saW5lIGNvZGUgYXBwZWFycy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygxLDksMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0KVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHdlaWdodFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0KTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBDdXJ2YXR1cmVcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgcm91bmRlZCBpbmxpbmUgY29kZSBhcHBlYXIgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMTIsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY3VydmF0dXJlXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIFZlcnRpY2FsIFBhZGRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgbXVjaCB2ZXJ0aWNhbCBpbm5lciBwYWRkaW5nIGluIHBpeGVscyBpbmxpbmUgY29kZSBoYXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCB2ZXJ0aWNhbCBwYWRkaW5nXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWwgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWwpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEhvcml6b250YWwgUGFkZGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIGhvcml6b250YWwgaW5uZXIgcGFkZGluZyBpbiBwaXhlbHMgaW5saW5lIGNvZGUgaGFzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMTAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGhvcml6b250YWwgcGFkZGluZ1wiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBIb3Jpem9udGFsIE1hcmdpblwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIGhvcml6b250YWwgb3V0ZXIgbWFyZ2luIGlzIGFkZGVkIHRvIHRoZSBpbmxpbmUgY29kZSBpbiBwaXhlbHMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCw4LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgaG9yaXpvbnRhbCBtYXJnaW5cIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLm1hcmdpbkhvcml6b250YWwgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLm1hcmdpbkhvcml6b250YWw7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlQWR2YW5jZWRIZWFkaW5nKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnN0IGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nID0gY29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7dGV4dDogXCJBZHZhbmNlZCBTZXR0aW5nc1wiLCBjbHM6IGBhZHZhbmNlZC1zZXR0aW5ncy1oZWFkZXIke3RoaXMuaGlkZUFkdmFuY2VkP1wiIGhlYWRlci1mb2xkZWRcIjpcIlwifWB9KTtcblx0XHRhZHZhbmNlZFNldHRpbmdzSGVhZGluZy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwoKT0+e1xuXHRcdFx0dGhpcy5oaWRlQWR2YW5jZWQgPSAhdGhpcy5oaWRlQWR2YW5jZWQ7XG5cdFx0XHRhZHZhbmNlZFNldHRpbmdzSGVhZGluZy5jbGFzc0xpc3QudG9nZ2xlKFwiaGVhZGVyLWZvbGRlZFwiLHRoaXMuaGlkZUFkdmFuY2VkKTtcblx0XHRcdHRoaXMuZ2VuZXJhdGVBZHZhbmNlZFNldHRpbmdzKCk7XG5cdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVBZHZhbmNlZFNldHRpbmdzKCkge1xuXHRcdHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLmhpZGVBZHZhbmNlZClcblx0XHRcdHJldHVybjtcblx0XHR0aGlzLmdlbmVyYXRlSW50ZXJmYWNlU2V0dGluZ3ModGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkVkaXRvciBBY3RpdmUgTGluZSBIaWdobGlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyB0aGUgYWN0aXZlIGxpbmUgb3V0c2lkZSBjb2RlYmxvY2tzLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc3BhY2VkXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgZWRpdG9yIGFjdGl2ZSBsaW5lIGhpZ2hsaWdodGluZ1wiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImVkaXRvckFjdGl2ZUxpbmVIaWdobGlnaHRcIl0uZm9yRWFjaChjb21wb25lbnQgPT4ge2NvbXBvbmVudC5zZXREaXNhYmxlZCghdmFsdWUpO30pO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJlZGl0b3JfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZUNvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0KCkgPT4gIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUsXG5cdFx0XHQpO30pO1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZWRpdG9yQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5wdXNoKHRoaXMucGlja3JzW1wiZWRpdG9yX2FjdGl2ZV9saW5lX2hpZ2hsaWdodFwiXS5yZXNldEJ1dHRvbik7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJSZXNldCBpbmJ1aWx0IHRoZW1lc1wiKVxuXHRcdFx0LnNldERlc2MoXCJUaGlzIHdpbGwgcmV0dXJuIGFsbCBpbmJ1aWx0IHRoZW1lcyB0byB0aGUgcGx1Z2luIGRlZmF1bHRzXCIpXG5cdFx0XHQuYWRkQnV0dG9uKGJ1dHRvbiA9PiBidXR0b25cblx0XHRcdFx0LnNldEJ1dHRvblRleHQoXCJSZXNldFwiKVxuXHRcdFx0XHQub25DbGljaygoKT0+e1xuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKElOQlVJTFRfVEhFTUVTKS5mb3JFYWNoKChbdGhlbWVOYW1lLHRoZW1lXTogW3N0cmluZyxDb2RlU3R5bGVyVGhlbWVdKSA9PiB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhlbWVOYW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGVtZSkpO1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lIGluIElOQlVJTFRfVEhFTUVTKVxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUludGVyZmFjZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJCdXR0b24gQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlVzZWQgZm9yIFVJIGJ1dHRvbnMgbGlrZSB0aGUgY29weSBjb2RlIGJ1dHRvbi5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJkZWZhdWx0X2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25Db2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJCdXR0b24gQWN0aXZlIENvbG91clwiKVxuXHRcdFx0LnNldERlc2MoXCJDb2xvdXIgYnV0dG9ucyB1c2Ugd2hlbiBhY3RpdmF0ZWQuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiZGVmYXVsdF9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25BY3RpdmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uYWR2YW5jZWQuYnV0dG9uQWN0aXZlQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0fVxuXHRnZW5lcmF0ZVBsdWdpbkNvbXBhdGliaWxpdHlTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVTcGFuKFwiTmVlZHMgY29tcGxldGluZ1wiKTsgLy9UT0RPIChAbWF5dXJhbmt2KSBDb21wbGV0ZVxuXHRcdC8vIEV4ZWN1dGUgQ29kZSBTZXR0aW5nc1xuXHR9XG5cdGdlbmVyYXRlRXhhbXBsZUNvZGVibG9ja1NldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFeGFtcGxlIENvZGVibG9jayBQYXJhbWV0ZXIgU3RyaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlBhcmFtZXRlcnMgYW5kIGxhbmd1YWdlIHdoaWNoIHdvdWxkIGZvbGxvdyBjb2RlYmxvY2sgZGVsaW1pdGVyLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LXdpZGVcIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tQYXJhbWV0ZXJzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrKCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRXhhbXBsZSBDb2RlYmxvY2sgUGFyYW1ldGVyIFN0cmluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJDb250ZW50IGZvciBleGFtcGxlIGNvZGVibG9jay5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC1hcmVhXCIpXG5cdFx0XHQuYWRkVGV4dEFyZWEodGV4dEFyZWEgPT4gdGV4dEFyZWFcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tDb250ZW50KVxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRVhBTVBMRV9DT0RFQkxPQ0tfQ09OVEVOVClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSk9Pntcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlQ29kZWJsb2NrQ29udGVudCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpIHtcblx0XHR0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIuZW1wdHkoKTtcblx0XHRjb25zdCBjb2RlYmxvY2tTdHJpbmcgPSBcImBgYGBgYGBcIit0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVycytcIlxcblwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tDb250ZW50K1wiXFxuYGBgYGBgYFwiO1xuXHRcdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHRoaXMucGx1Z2luLmFwcCxjb2RlYmxvY2tTdHJpbmcsdGhpcy5leGFtcGxlQ29kZWJsb2NrQ29udGFpbmVyLFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYK2NvZGVibG9ja1N0cmluZyxuZXcgQ29tcG9uZW50KCkpO1xuXHRcdHRoaXMuZXhhbXBsZUNvZGVibG9ja0NvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwicHJlID4gYnV0dG9uLmNvcHktY29kZS1idXR0b25cIik/LmNsYXNzTGlzdD8uYWRkKFwiY29kZS1zdHlsZXItc2V0dGluZ3MtYnV0dG9uXCIpO1xuXHR9XG5cdGdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgRXhhbXBsZVwiKVxuXHRcdFx0LnNldERlc2MoXCJUZXh0IHRvIHJlbmRlciBhcyBleGFtcGxlIGluc2lkZSBjb2RlIGRlbGltaXRlcnMuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtd2lkZVwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihFWEFNUExFX0lOTElORV9DT0RFKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUlubGluZUNvZGUpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlSW5saW5lQ29kZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVJbmxpbmVDb2RlKCk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUV4YW1wbGVJbmxpbmVDb2RlKCkge1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIuZW1wdHkoKTtcblx0XHRNYXJrZG93blJlbmRlcmVyLnJlbmRlcih0aGlzLnBsdWdpbi5hcHAsXCJgXCIrdGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUlubGluZUNvZGUrXCJgXCIsdGhpcy5leGFtcGxlSW5saW5lQ29kZUNvbnRhaW5lcixTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCxuZXcgQ29tcG9uZW50KCkpO1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIucXVlcnlTZWxlY3RvcihcImNvZGVcIik/LmNsYXNzTGlzdD8uYWRkKFwiY29kZS1zdHlsZXItc2V0dGluZ3MtaW5saW5lLWNvZGVcIik7XG5cdH1cblx0Z2VuZXJhdGVEb25hdGlvbkZvb3Rlcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImhyXCIpO1xuXHRcdGNvbnN0IGRvbmF0aW9uRGl2ID0gY29udGFpbmVyRWwuY3JlYXRlRWwoXCJkaXZcIiwgeyBjbHM6IFwiY29kZS1zdHlsZXItZG9uYXRpb25cIiwgfSk7ICAgIFxuXHRcdGNvbnN0IGRvbmF0aW9uVGV4dCA9IGNyZWF0ZUVsKFwicFwiLCB7dGV4dDogXCJJZiB5b3UgbGlrZSB0aGlzIHBsdWdpbiwgYW5kIHdvdWxkIGxpa2UgdG8gaGVscCBzdXBwb3J0IGNvbnRpbnVlZCBkZXZlbG9wbWVudCwgdXNlIHRoZSBidXR0b24gYmVsb3chXCJ9KTtcblx0XHRkb25hdGlvbkRpdi5hcHBlbmRDaGlsZChkb25hdGlvblRleHQpO1xuXHRcdGNvbnN0IGRvbmF0aW9uQnV0dG9uID0gY3JlYXRlRWwoXCJhXCIsIHsgaHJlZjogXCJodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL21heXVyYW5rdjJcIn0pO1xuXHRcdGRvbmF0aW9uQnV0dG9uLmlubmVySFRNTCA9IFwiPGltZyBzcmM9XFxcImh0dHBzOi8vaW1nLmJ1eW1lYWNvZmZlZS5jb20vYnV0dG9uLWFwaS8/dGV4dD1CdXkgbWUgYSBjb2ZmZWUmZW1vamk9JnNsdWc9bWF5dXJhbmt2MiZidXR0b25fY29sb3VyPWUzZTdlZmEwJmZvbnRfY29sb3VyPTI2MjYyNiZmb250X2ZhbWlseT1JbnRlciZvdXRsaW5lX2NvbG91cj0yNjI2MjYmY29mZmVlX2NvbG91cj1hMDUyMmRcXFwiIGhlaWdodD1cXFwiNDJweFxcXCI+XCI7XG5cdFx0ZG9uYXRpb25EaXYuYXBwZW5kQ2hpbGQoZG9uYXRpb25CdXR0b24pO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIFNldHRpbmdzXG5cdGNyZWF0ZVBpY2tyKHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50LCBzZXR0aW5nOiBTZXR0aW5nLCBpZDogc3RyaW5nLCBnZXRSZWxldmFudFRoZW1lQ29sb3VyOiAocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpPT5Db2xvdXIsIHNhdmVSZWxldmFudFRoZW1lQ29sb3VyOiAocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cik9PnZvaWQsIGRpc2FibGVkPzogKCk9PmJvb2xlYW4pIHtcblx0XHRjb25zdCBwaWNrcjogUGlja3JSZXNldHRhYmxlID0gbmV3IFBpY2tyUmVzZXR0YWJsZShwbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxnZXRSZWxldmFudFRoZW1lQ29sb3VyLHNhdmVSZWxldmFudFRoZW1lQ29sb3VyKTtcblx0XHRwaWNrclxuXHRcdFx0Lm9uKFwic2hvd1wiLCAoY29sb3VyOiBQaWNrci5IU1ZhQ29sb3IsIGluc3RhbmNlOiBQaWNrcikgPT4ge1xuXHRcdFx0XHRpZiAodHlwZW9mIGRpc2FibGVkICE9PSBcInVuZGVmaW5lZFwiICYmIGRpc2FibGVkKCkpXG5cdFx0XHRcdFx0aW5zdGFuY2UuaGlkZSgpO1xuXHRcdFx0XHQvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IChpbnN0YW5jZS5nZXRSb290KCkgYXMgYW55KS5pbnRlcmFjdGlvbi5yZXN1bHQuc2VsZWN0KCkpKVxuXHRcdFx0fSlcblx0XHRcdC5vbihcInNhdmVcIiwgKGNvbG91cjogUGlja3IuSFNWYUNvbG9yLCBpbnN0YW5jZTogUGlja3JSZXNldHRhYmxlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNhdmVkQ29sb3VyOiBDb2xvdXIgPSBgIyR7Y29sb3VyLnRvSEVYQSgpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDEpfWA7XG5cdFx0XHRcdGluc3RhbmNlLmhpZGUoKTtcblx0XHRcdFx0aW5zdGFuY2UuYWRkU3dhdGNoKHNhdmVkQ29sb3VyKTtcblx0XHRcdFx0aW5zdGFuY2Uuc2F2ZUNvbG91cihzYXZlZENvbG91cik7XG5cdFx0XHR9KVxuXHRcdFx0Lm9uKFwiY2FuY2VsXCIsIChpbnN0YW5jZTogUGlja3JSZXNldHRhYmxlKSA9PiB7aW5zdGFuY2UuaGlkZSgpO30pO1xuXHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge3BpY2tyLnJlc2V0QnV0dG9uID0gYnV0dG9uXG5cdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHQuc2V0RGlzYWJsZWQodHlwZW9mIGRpc2FibGVkICE9PSBcInVuZGVmaW5lZFwiICYmIGRpc2FibGVkKCkpXG5cdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXJcIilcblx0XHRcdC5vbkNsaWNrKCgpID0+IHtwaWNrci5yZXNldENvbG91cigpO30pO1xuXHRcdH0pO1xuXHRcdHRoaXMucGlja3JzW2lkXT1waWNrcjtcblx0fVxuXHRcblx0Ly8gVXBkYXRlIFNldHRpbmdzXG5cdHNhdmVTZXR0aW5ncyhyZXJlbmRlcjogYm9vbGVhbj1mYWxzZSkge1xuXHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRpZiAocmVyZW5kZXIpXG5cdFx0XHR0aGlzLnJlcmVuZGVyKCk7XG5cdH1cblx0cmVyZW5kZXIoKSB7XG5cdFx0dGhpcy5wbHVnaW4ucmVuZGVyUmVhZGluZ1ZpZXcoKTtcblx0XHRpZiAodGhpcy5wYWdlID09PSBcImNvZGVibG9ja1wiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRlbHNlIGlmICh0aGlzLnBhZ2UgPT09IFwiaW5saW5lXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKTtcblx0fVxuXHR1cGRhdGVEcm9wZG93bihkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQsIHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpIHtcblx0XHRkcm9wZG93bi5zZWxlY3RFbC5lbXB0eSgpO1xuXHRcdE9iamVjdC5rZXlzKHNldHRpbmdzLnRoZW1lcykuZm9yRWFjaCgodGhlbWVfbmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRkcm9wZG93bi5hZGRPcHRpb24odGhlbWVfbmFtZSwgdGhlbWVfbmFtZSk7ICAgICAgICAgICAgXG5cdFx0fSk7XG5cdFx0ZHJvcGRvd24uc2V0VmFsdWUoc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSk7XG5cdH1cblx0dXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKCkge1xuXHRcdGlmICh0aGlzLnBhZ2UgIT09IFwiY29kZWJsb2NrXCIgfHwgdGhpcy5jb2RlYmxvY2tQYWdlICE9PSBcImhpZ2hsaWdodFwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdHRoaXMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0T2JqZWN0LmtleXModGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLmZvckVhY2goKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSkgPT4ge1xuXHRcdFx0bmV3IFNldHRpbmcodGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIpXG5cdFx0XHRcdC5zZXROYW1lKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSlcblx0XHRcdFx0LnNldERlc2MoYFRvIGhpZ2hsaWdodCBsaW5lcyB3aXRoIHRoaXMgaGlnaGxpZ2h0LCB1c2UgdGhlICR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfSBwYXJhbWV0ZXIuYClcblx0XHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XHRcdGBhbHRlcm5hdGl2ZV9oaWdobGlnaHRfJHthbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWV9YCxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lIGluIHJlbGV2YW50VGhlbWVDb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzP3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZV06dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdFx0LnNldEljb24oXCJ0cmFzaFwiKVxuXHRcdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJEZWxldGUgaGlnaGxpZ2h0XCIpXG5cdFx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMuZGFyay5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKGBSZW1vdmVkIGhpZ2hsaWdodCBcIiR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfVwiLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXHRyZWRpcmVjdExhbmd1YWdlcygpIHtcblx0XHRPYmplY3QuZW50cmllcyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcykuZm9yRWFjaCgoW2xhbmd1YWdlTmFtZSwgbGFuZ3VhZ2VTZXR0aW5nc106IFtzdHJpbmcsIHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9XSk9Pntcblx0XHRcdGlmIChcImljb25cIiBpbiBsYW5ndWFnZVNldHRpbmdzKSB7XG5cdFx0XHRcdGlmIChMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdIGluIHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpXG5cdFx0XHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLnBsdWdpbi5sYW5ndWFnZUljb25zW0xBTkdVQUdFX05BTUVTW2xhbmd1YWdlTmFtZV1dKTtcblx0XHRcdFx0dGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29uc1tMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdXSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtsYW5ndWFnZVNldHRpbmdzLmljb259PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG5cbi8vIEV4dGVuZCBQaWNrciBDbGFzc1xuY2xhc3MgUGlja3JSZXNldHRhYmxlIGV4dGVuZHMgUGlja3Ige1xuXHRzYXZlQ29sb3VyOiAoc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZDtcblx0cmVzZXRDb2xvdXI6ICgpPT52b2lkO1xuXHRnZXRDdXJyZW50Q29sb3VyOiAoYWNjZXNzVGhlbWU6IGJvb2xlYW4pPT52b2lkO1xuXHRyZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cblx0Y29uc3RydWN0b3IocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIHNldHRpbmc6IFNldHRpbmcsIGdldFJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycyk9PkNvbG91ciwgc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZCwgdG9vbHRpcD86IHN0cmluZykge1xuXHRcdGNvbnN0IHNldHRpbmdzOiBQaWNrci5PcHRpb25zID0ge1xuXHRcdFx0ZWw6IHNldHRpbmcuY29udHJvbEVsLmNyZWF0ZURpdih7Y2xzOiBcInBpY2tlclwifSksXG5cdFx0XHR0aGVtZTogXCJuYW5vXCIsXG5cdFx0XHRkZWZhdWx0OiBnZXRDb2xvdXIoZ2V0UmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpKSxcblx0XHRcdHBvc2l0aW9uOiBcImxlZnQtbWlkZGxlXCIsXG5cdFx0XHRsb2NrT3BhY2l0eTogZmFsc2UsXG5cdFx0XHRjb21wb25lbnRzOiB7XG5cdFx0XHRcdHByZXZpZXc6IHRydWUsXG5cdFx0XHRcdGh1ZTogdHJ1ZSxcblx0XHRcdFx0b3BhY2l0eTogdHJ1ZSxcblx0XHRcdFx0aW50ZXJhY3Rpb246IHtcblx0XHRcdFx0XHRoZXg6IHRydWUsXG5cdFx0XHRcdFx0cmdiYTogdHJ1ZSxcblx0XHRcdFx0XHRoc2xhOiBmYWxzZSxcblx0XHRcdFx0XHRpbnB1dDogdHJ1ZSxcblx0XHRcdFx0XHRjYW5jZWw6IHRydWUsXG5cdFx0XHRcdFx0c2F2ZTogdHJ1ZSxcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0XHRpMThuOiB7XG5cdFx0XHRcdFwidWk6ZGlhbG9nXCI6IFwiQ29sb3VyIHBpY2tlciBkaWFsb2dcIixcblx0XHRcdFx0XCJidG46dG9nZ2xlXCI6ICh0eXBlb2YgdG9vbHRpcCAhPT0gXCJ1bmRlZmluZWRcIik/dG9vbHRpcDpcIlNlbGVjdCBjb2xvdXJcIixcblx0XHRcdFx0XCJidG46c3dhdGNoXCI6IFwiQ29sb3VyIHN3YXRjaFwiLFxuXHRcdFx0XHRcImJ0bjpsYXN0LWNvbG9yXCI6IFwiVXNlIHByZXZpb3VzIGNvbG91clwiLFxuXHRcdFx0fVxuXHRcdH07XG5cdFx0aWYgKGNvbnRhaW5lckVsLnBhcmVudEVsZW1lbnQgIT09IG51bGwpXG5cdFx0XHRzZXR0aW5ncy5jb250YWluZXIgPSBjb250YWluZXJFbC5wYXJlbnRFbGVtZW50O1xuXHRcdHN1cGVyKHNldHRpbmdzKTtcblx0XHR0aGlzLnNhdmVDb2xvdXIgPSAoc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7XG5cdFx0XHRzYXZlUmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMsc2F2ZUNvbG91cik7XG5cdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdH07XG5cdFx0dGhpcy5yZXNldENvbG91ciA9ICgpID0+IHtcblx0XHRcdGNvbnN0IHJlc2V0Q29sb3VyOiBDb2xvdXIgPSBnZXRSZWxldmFudFRoZW1lQ29sb3VyKHBsdWdpbi5zZXR0aW5ncy50aGVtZXNbcGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLmNvbG91cnMpO1xuXHRcdFx0dGhpcy5zZXRDb2xvcihnZXRDb2xvdXIocmVzZXRDb2xvdXIpKTtcblx0XHRcdHRoaXMuc2F2ZUNvbG91cihyZXNldENvbG91cik7XG5cdFx0fTtcblx0fVxufVxuXG4vLyBDb2xvdXIgTWFuYWdlbWVudFxuZnVuY3Rpb24gZ2V0UmFuZG9tQ29sb3VyKCk6IENvbG91ciB7XG5cdGNvbnN0IGxldHRlcnMgPSBcIjAxMjM0NTY3ODlBQkNERUZcIjtcblx0bGV0IGNvbG91ciA9IFwiXCI7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKVxuXHRcdGNvbG91ciArPSBsZXR0ZXJzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KV07XG5cdHJldHVybiBgIyR7Y29sb3VyfUZGYDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xvdXIodGhlbWVDb2xvdXI6IENvbG91cik6IENvbG91ciB7XG5cdHJldHVybiBpc0Nzcyh0aGVtZUNvbG91cik/Z2V0Q3NzVmFyaWFibGUodGhlbWVDb2xvdXIpOnRoZW1lQ29sb3VyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3NzKHBvc3NpYmxlQ3NzOiBzdHJpbmcpOiBwb3NzaWJsZUNzcyBpcyBDU1Mge1xuXHRyZXR1cm4gcG9zc2libGVDc3Muc3RhcnRzV2l0aChcIi0tXCIpICYmIHR5cGVvZiBwb3NzaWJsZUNzcyA9PT0gXCJzdHJpbmdcIjtcbn1cbmZ1bmN0aW9uIGdldENzc1ZhcmlhYmxlKGNzc1ZhcmlhYmxlOiBDU1MpOiBIRVgge1xuXHRjb25zdCB2YXJpYWJsZVZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZShjc3NWYXJpYWJsZSkudHJpbSgpO1xuXHRpZiAodHlwZW9mIHZhcmlhYmxlVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFyaWFibGVWYWx1ZS5zdGFydHNXaXRoKFwiI1wiKSlcblx0XHRyZXR1cm4gYCMke3ZhcmlhYmxlVmFsdWUudHJpbSgpLnN1YnN0cmluZygxKX1gO1xuXHRlbHNlIGlmICh2YXJpYWJsZVZhbHVlLnN0YXJ0c1dpdGgoXCJyZ2JcIikpXG5cdFx0cmV0dXJuIGAjJHtDb2xvclRyYW5zbGF0b3IudG9IRVhBKHZhcmlhYmxlVmFsdWUucmVwbGFjZSgvY2FsY1xcKCguKj8pXFwpL2csKG1hdGNoLGNhcHR1cmUpPT5jYWxjKGNhcHR1cmUpKSkuc3Vic3RyaW5nKDEpfWA7XG5cdGVsc2UgaWYgKHZhcmlhYmxlVmFsdWUuc3RhcnRzV2l0aChcImhzbFwiKSlcblx0XHRyZXR1cm4gYCMke0NvbG9yVHJhbnNsYXRvci50b0hFWEEodmFyaWFibGVWYWx1ZS5yZXBsYWNlKC9jYWxjXFwoKC4qPylcXCkvZywobWF0Y2gsY2FwdHVyZSk9PmNhbGMoY2FwdHVyZSkpKS5zdWJzdHJpbmcoMSl9YDtcblx0ZWxzZVxuXHRcdGNvbnNvbGUud2FybihgV2FybmluZzogQ291bGRuJ3QgZGV0ZXJtaW5lIGNvbG91ciBmb3JtYXQgLSAke3ZhcmlhYmxlVmFsdWV9YCk7XG5cdHJldHVybiBgIyR7Q29sb3JUcmFuc2xhdG9yLnRvSEVYQSh2YXJpYWJsZVZhbHVlKS5zdWJzdHJpbmcoMSl9YDtcbn1cbmZ1bmN0aW9uIGNhbGMoY2FsY1N0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgc3BsaXRTdHJpbmcgPSBjYWxjU3RyaW5nLnRyaW0oKS5yZXBsYWNlKC8oXFxkKiklL2csXCIkMVwiKS5zcGxpdChcIiBcIik7XG5cdGNvbnN0IG9wZXJhdG9yczoge1trZXk6IHN0cmluZ106IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpID0+IG51bWJlcn0gPSB7XG5cdFx0XCIrXCI6IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xK251bTIsMCksXG5cdFx0XCItXCI6IChudW0xOm51bWJlciAsbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xLW51bTIsMCksXG5cdH07XG5cdGlmIChzcGxpdFN0cmluZy5sZW5ndGggPT09IDMpXG5cdFx0aWYgKHNwbGl0U3RyaW5nWzFdIGluIG9wZXJhdG9ycylcblx0XHRcdHJldHVybiBgJHtvcGVyYXRvcnNbc3BsaXRTdHJpbmdbMV1dKHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMF0pLHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMl0pKX0lYDtcblx0XG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IHBhcnNlIGNhbGMgc3RyaW5nXCIpO1xuXHRyZXR1cm4gY2FsY1N0cmluZztcbn1cblxuLy8gRmV0Y2ggU2V0dGluZ3NcbmZ1bmN0aW9uIGdldEN1cnJlbnRNb2RlKCkge1xuXHRjb25zdCBib2R5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImJvZHlcIik7XG5cdGlmIChib2R5ICE9PSBudWxsKXtcblx0XHRpZiAoYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1saWdodFwiKSlcblx0XHRcdHJldHVybiBcImxpZ2h0XCI7XG5cdFx0ZWxzZSBpZiAoYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1kYXJrXCIpKVxuXHRcdFx0cmV0dXJuIFwiZGFya1wiO1xuXHR9XG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IGdldCBjdXJyZW50IHRoZW1lXCIpO1xuXHRyZXR1cm4gXCJsaWdodFwiO1xufVxuIiwgInZhciB0PWZ1bmN0aW9uKCl7cmV0dXJuIHQ9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pO3JldHVybiB0fSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gZSh0LGUsbil7aWYobnx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciByLGk9MCxvPWUubGVuZ3RoO2k8bztpKyspIXImJmkgaW4gZXx8KHJ8fChyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMCxpKSkscltpXT1lW2ldKTtyZXR1cm4gdC5jb25jYXQocnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpfXZhciBuLHIsaSxvOyFmdW5jdGlvbih0KXt0LkhFWD1cIkhFWFwiLHQuUkdCPVwiUkdCXCIsdC5IU0w9XCJIU0xcIix0LkNNWUs9XCJDTVlLXCJ9KG58fChuPXt9KSksZnVuY3Rpb24odCl7dC5BTkFMT0dPVVM9XCJBTkFMT0dPVVNcIix0LkNPTVBMRU1FTlRBUlk9XCJDT01QTEVNRU5UQVJZXCIsdC5TUExJVF9DT01QTEVNRU5UQVJZPVwiU1BMSVRfQ09NUExFTUVOVEFSWVwiLHQuVFJJQURJQz1cIlRSSUFESUNcIix0LlRFVFJBRElDPVwiVEVUUkFESUNcIix0LlNRVUFSRT1cIlNRVUFSRVwifShyfHwocj17fSkpLGZ1bmN0aW9uKHQpe3QuQURESVRJVkU9XCJBRERJVElWRVwiLHQuU1VCVFJBQ1RJVkU9XCJTVUJUUkFDVElWRVwifShpfHwoaT17fSkpLGZ1bmN0aW9uKHQpe3QuYmxhY2s9XCIjMDAwMDAwXCIsdC5zaWx2ZXI9XCIjQzBDMEMwXCIsdC5ncmF5PVwiIzgwODA4MFwiLHQud2hpdGU9XCIjRkZGRkZGXCIsdC5tYXJvb249XCIjODAwMDAwXCIsdC5yZWQ9XCIjRkYwMDAwXCIsdC5wdXJwbGU9XCIjODAwMDgwXCIsdC5mdWNoc2lhPVwiI0ZGMDBGRlwiLHQuZ3JlZW49XCIjMDA4MDAwXCIsdC5saW1lPVwiIzAwRkYwMFwiLHQub2xpdmU9XCIjODA4MDAwXCIsdC55ZWxsb3c9XCIjRkZGRjAwXCIsdC5uYXZ5PVwiIzAwMDA4MFwiLHQuYmx1ZT1cIiMwMDAwRkZcIix0LnRlYWw9XCIjMDA4MDgwXCIsdC5hcXVhPVwiIzAwRkZGRlwiLHQub3JhbmdlPVwiI0ZGQTUwMFwiLHQuYWxpY2VibHVlPVwiI0YwRjhGRlwiLHQuYW50aXF1ZXdoaXRlPVwiI0ZBRUJEN1wiLHQuYXF1YW1hcmluZT1cIiM3RkZGRDRcIix0LmF6dXJlPVwiI0YwRkZGRlwiLHQuYmVpZ2U9XCIjRjVGNURDXCIsdC5iaXNxdWU9XCIjRkZFNEM0XCIsdC5ibGFuY2hlZGFsbW9uZD1cIiNGRkVCQ0RcIix0LmJsdWV2aW9sZXQ9XCIjOEEyQkUyXCIsdC5icm93bj1cIiNBNTJBMkFcIix0LmJ1cmx5d29vZD1cIiNERUI4ODdcIix0LmNhZGV0Ymx1ZT1cIiM1RjlFQTBcIix0LmNoYXJ0cmV1c2U9XCIjN0ZGRjAwXCIsdC5jaG9jb2xhdGU9XCIjRDI2OTFFXCIsdC5jb3JhbD1cIiNGRjdGNTBcIix0LmNvcm5mbG93ZXJibHVlPVwiIzY0OTVFRFwiLHQuY29ybnNpbGs9XCIjRkZGOERDXCIsdC5jcmltc29uPVwiI0RDMTQzQ1wiLHQuY3lhbj1cIiMwMEZGRkZcIix0LmRhcmtibHVlPVwiIzAwMDA4QlwiLHQuZGFya2N5YW49XCIjMDA4QjhCXCIsdC5kYXJrZ29sZGVucm9kPVwiI0I4ODYwQlwiLHQuZGFya2dyYXk9XCIjQTlBOUE5XCIsdC5kYXJrZ3JlZW49XCIjMDA2NDAwXCIsdC5kYXJrZ3JleT1cIiNBOUE5QTlcIix0LmRhcmtraGFraT1cIiNCREI3NkJcIix0LmRhcmttYWdlbnRhPVwiIzhCMDA4QlwiLHQuZGFya29saXZlZ3JlZW49XCIjNTU2QjJGXCIsdC5kYXJrb3JhbmdlPVwiI0ZGOEMwMFwiLHQuZGFya29yY2hpZD1cIiM5OTMyQ0NcIix0LmRhcmtyZWQ9XCIjOEIwMDAwXCIsdC5kYXJrc2FsbW9uPVwiI0U5OTY3QVwiLHQuZGFya3NlYWdyZWVuPVwiIzhGQkM4RlwiLHQuZGFya3NsYXRlYmx1ZT1cIiM0ODNEOEJcIix0LmRhcmtzbGF0ZWdyYXk9XCIjMkY0RjRGXCIsdC5kYXJrc2xhdGVncmV5PVwiIzJGNEY0RlwiLHQuZGFya3R1cnF1b2lzZT1cIiMwMENFRDFcIix0LmRhcmt2aW9sZXQ9XCIjOTQwMEQzXCIsdC5kZWVwcGluaz1cIiNGRjE0OTNcIix0LmRlZXBza3libHVlPVwiIzAwQkZGRlwiLHQuZGltZ3JheT1cIiM2OTY5NjlcIix0LmRpbWdyZXk9XCIjNjk2OTY5XCIsdC5kb2RnZXJibHVlPVwiIzFFOTBGRlwiLHQuZmlyZWJyaWNrPVwiI0IyMjIyMlwiLHQuZmxvcmFsd2hpdGU9XCIjRkZGQUYwXCIsdC5mb3Jlc3RncmVlbj1cIiMyMjhCMjJcIix0LmdhaW5zYm9ybz1cIiNEQ0RDRENcIix0Lmdob3N0d2hpdGU9XCIjRjhGOEZGXCIsdC5nb2xkPVwiI0ZGRDcwMFwiLHQuZ29sZGVucm9kPVwiI0RBQTUyMFwiLHQuZ3JlZW55ZWxsb3c9XCIjQURGRjJGXCIsdC5ncmV5PVwiIzgwODA4MFwiLHQuaG9uZXlkZXc9XCIjRjBGRkYwXCIsdC5ob3RwaW5rPVwiI0ZGNjlCNFwiLHQuaW5kaWFucmVkPVwiI0NENUM1Q1wiLHQuaW5kaWdvPVwiIzRCMDA4MlwiLHQuaXZvcnk9XCIjRkZGRkYwXCIsdC5raGFraT1cIiNGMEU2OENcIix0LmxhdmVuZGVyPVwiI0U2RTZGQVwiLHQubGF2ZW5kZXJibHVzaD1cIiNGRkYwRjVcIix0Lmxhd25ncmVlbj1cIiM3Q0ZDMDBcIix0LmxlbW9uY2hpZmZvbj1cIiNGRkZBQ0RcIix0LmxpZ2h0Ymx1ZT1cIiNBREQ4RTZcIix0LmxpZ2h0Y29yYWw9XCIjRjA4MDgwXCIsdC5saWdodGN5YW49XCIjRTBGRkZGXCIsdC5saWdodGdvbGRlbnJvZHllbGxvdz1cIiNGQUZBRDJcIix0LmxpZ2h0Z3JheT1cIiNEM0QzRDNcIix0LmxpZ2h0Z3JlZW49XCIjOTBFRTkwXCIsdC5saWdodGdyZXk9XCIjRDNEM0QzXCIsdC5saWdodHBpbms9XCIjRkZCNkMxXCIsdC5saWdodHNhbG1vbj1cIiNGRkEwN0FcIix0LmxpZ2h0c2VhZ3JlZW49XCIjMjBCMkFBXCIsdC5saWdodHNreWJsdWU9XCIjODdDRUZBXCIsdC5saWdodHNsYXRlZ3JheT1cIiM3Nzg4OTlcIix0LmxpZ2h0c2xhdGVncmV5PVwiIzc3ODg5OVwiLHQubGlnaHRzdGVlbGJsdWU9XCIjQjBDNERFXCIsdC5saWdodHllbGxvdz1cIiNGRkZGRTBcIix0LmxpbWVncmVlbj1cIiMzMkNEMzJcIix0LmxpbmVuPVwiI0ZBRjBFNlwiLHQubWFnZW50YT1cIiNGRjAwRkZcIix0Lm1lZGl1bWFxdWFtYXJpbmU9XCIjNjZDREFBXCIsdC5tZWRpdW1ibHVlPVwiIzAwMDBDRFwiLHQubWVkaXVtb3JjaGlkPVwiI0JBNTVEM1wiLHQubWVkaXVtcHVycGxlPVwiIzkzNzBEQlwiLHQubWVkaXVtc2VhZ3JlZW49XCIjM0NCMzcxXCIsdC5tZWRpdW1zbGF0ZWJsdWU9XCIjN0I2OEVFXCIsdC5tZWRpdW1zcHJpbmdncmVlbj1cIiMwMEZBOUFcIix0Lm1lZGl1bXR1cnF1b2lzZT1cIiM0OEQxQ0NcIix0Lm1lZGl1bXZpb2xldHJlZD1cIiNDNzE1ODVcIix0Lm1pZG5pZ2h0Ymx1ZT1cIiMxOTE5NzBcIix0Lm1pbnRjcmVhbT1cIiNGNUZGRkFcIix0Lm1pc3R5cm9zZT1cIiNGRkU0RTFcIix0Lm1vY2Nhc2luPVwiI0ZGRTRCNVwiLHQubmF2YWpvd2hpdGU9XCIjRkZERUFEXCIsdC5vbGRsYWNlPVwiI0ZERjVFNlwiLHQub2xpdmVkcmFiPVwiIzZCOEUyM1wiLHQub3JhbmdlcmVkPVwiI0ZGNDUwMFwiLHQub3JjaGlkPVwiI0RBNzBENlwiLHQucGFsZWdvbGRlbnJvZD1cIiNFRUU4QUFcIix0LnBhbGVncmVlbj1cIiM5OEZCOThcIix0LnBhbGV0dXJxdW9pc2U9XCIjQUZFRUVFXCIsdC5wYWxldmlvbGV0cmVkPVwiI0RCNzA5M1wiLHQucGFwYXlhd2hpcD1cIiNGRkVGRDVcIix0LnBlYWNocHVmZj1cIiNGRkRBQjlcIix0LnBlcnU9XCIjQ0Q4NTNGXCIsdC5waW5rPVwiI0ZGQzBDQlwiLHQucGx1bT1cIiNEREEwRERcIix0LnBvd2RlcmJsdWU9XCIjQjBFMEU2XCIsdC5yb3N5YnJvd249XCIjQkM4RjhGXCIsdC5yb3lhbGJsdWU9XCIjNDE2OUUxXCIsdC5zYWRkbGVicm93bj1cIiM4QjQ1MTNcIix0LnNhbG1vbj1cIiNGQTgwNzJcIix0LnNhbmR5YnJvd249XCIjRjRBNDYwXCIsdC5zZWFncmVlbj1cIiMyRThCNTdcIix0LnNlYXNoZWxsPVwiI0ZGRjVFRVwiLHQuc2llbm5hPVwiI0EwNTIyRFwiLHQuc2t5Ymx1ZT1cIiM4N0NFRUJcIix0LnNsYXRlYmx1ZT1cIiM2QTVBQ0RcIix0LnNsYXRlZ3JheT1cIiM3MDgwOTBcIix0LnNsYXRlZ3JleT1cIiM3MDgwOTBcIix0LnNub3c9XCIjRkZGQUZBXCIsdC5zcHJpbmdncmVlbj1cIiMwMEZGN0ZcIix0LnN0ZWVsYmx1ZT1cIiM0NjgyQjRcIix0LnRhbj1cIiNEMkI0OENcIix0LnRoaXN0bGU9XCIjRDhCRkQ4XCIsdC50b21hdG89XCIjRkY2MzQ3XCIsdC50dXJxdW9pc2U9XCIjNDBFMEQwXCIsdC52aW9sZXQ9XCIjRUU4MkVFXCIsdC53aGVhdD1cIiNGNURFQjNcIix0LndoaXRlc21va2U9XCIjRjVGNUY1XCIsdC55ZWxsb3dncmVlbj1cIiM5QUNEMzJcIix0LnJlYmVjY2FwdXJwbGU9XCIjNjYzMzk5XCJ9KG98fChvPXt9KSk7dmFyIGEsYyx1PU9iamVjdC5rZXlzKG8pLHM9e0hFWDpbXCJyXCIsXCJnXCIsXCJiXCIsXCJhXCJdLFJHQjpbXCJyXCIsXCJnXCIsXCJiXCIsXCJhXCJdLEhTTDpbXCJoXCIsXCJzXCIsXCJsXCIsXCJhXCJdLENNWUs6W1wiY1wiLFwibVwiLFwieVwiLFwia1wiLFwiYVwiXX0sZD17QkdSOm4uUkdCLEFCR1I6bi5SR0IsSExTOm4uSFNMLEFITFM6bi5IU0wsQ0tNWTpuLkNNWUssQUNLTVk6bi5DTVlLfTshZnVuY3Rpb24odCl7dC5OVU1CRVI9XCJudW1iZXJcIix0LkJPT0xFQU49XCJib29sZWFuXCJ9KGF8fChhPXt9KSk7dmFyIGwsZixoLHA9KChjPXt9KVtuLkhFWF09L14jKD86KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKT98KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KT8pJC9pLGNbbi5SR0JdPS9ecmdiYT9cXHMqXFwoXFxzKig/OigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKD86XFxzKlxcL1xccyooKD86XFxkKlxcLik/XFxkKyU/KSk/KVxccypcXCkkLyxjW24uSFNMXT0vXmhzbGE/XFxzKlxcKFxccyooPzooLT8oPzpcXGQqXFwuKT9cXGQrKD86ZGVnfGdyYWR8cmFkfHR1cm4pPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyklXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCspJSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgtPyg/OlxcZCpcXC4pP1xcZCsoPzpkZWd8Z3JhZHxyYWR8dHVybik/KVxccyooKD86XFxkKlxcLik/XFxkKyklXFxzKigoPzpcXGQqXFwuKT9cXGQrKSUoPzpcXHMqXFwvXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKT8pXFxzKlxcKSQvLGNbbi5DTVlLXT0vXig/OmRldmljZS1jbXlrfGNteWspXFxzKlxcKFxccyooPzooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKD86XFxzKlxcL1xccyooKD86XFxkKlxcLik/XFxkKyU/KSk/KVxccypcXCkkLyxjKSxnPS9eKC0/KD86XFxkKlxcLik/XFxkKykoKD86ZGVnfGdyYWR8cmFkfHR1cm4pPykkLyxtPS9eKFxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKyklJC8sYj0vXjB4KFthLWZcXGRdezEsMn0pJC9pLEE9L1xceyhcXGQrKVxcfS9nLHk9LywoICt8XFxkKykvZyxFPS8gKy8sRj1cIlRoZSBwcm92aWRlZCBzdHJpbmcgY29sb3IgZG9lc24ndCBoYXZlIGEgY29ycmVjdCBmb3JtYXRcIix2PVwiVGhlIHByb3ZpZGVkIGNvbG9yIG9iamVjdCBkb2Vzbid0IGhhdmUgdGhlIHByb3BlciBrZXlzIG9yIGZvcm1hdFwiOyFmdW5jdGlvbih0KXt0Lk5PTkU9XCJub25lXCIsdC5ERUdSRUVTPVwiZGVnXCIsdC5HUkFESUFOUz1cImdyYWRcIix0LlJBRElBTlM9XCJyYWRcIix0LlRVUk5TPVwidHVyblwifShsfHwobD17fSkpLGZ1bmN0aW9uKHQpe3QuTk9ORT1cIm5vbmVcIix0LlBFUkNFTlQ9XCJwZXJjZW50XCJ9KGZ8fChmPXt9KSksZnVuY3Rpb24odCl7dC5ERVZJQ0VfQ01ZSz1cImRldmljZS1jbXlrXCIsdC5DTVlLPVwiY215a1wifShofHwoaD17fSkpO3ZhciBILEIsQyxTLFIsTSxEPXtkZWNpbWFsczo2LGxlZ2FjeUNTUzohMSxzcGFjZXNBZnRlckNvbW1hczohMSxhbmdsZXNVbml0OmwuTk9ORSxyZ2JVbml0OmYuTk9ORSxjbXlrVW5pdDpmLlBFUkNFTlQsYWxwaGFVbml0OmYuTk9ORSxjbXlrRnVuY3Rpb246aC5ERVZJQ0VfQ01ZS30sTz1mdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX0sTD1mdW5jdGlvbih0KXtyZXR1cm4rXCJcIi5jb25jYXQodCkucmVwbGFjZShtLFwiJDFcIil9LEc9ZnVuY3Rpb24odCl7cmV0dXJuIG0udGVzdChcIlwiLmNvbmNhdCh0KSk/TCh0KTpNYXRoLm1pbigrdCwxMDApfSxrPWZ1bmN0aW9uKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJih0Kz10KSxwYXJzZUludCh0LDE2KX0saj1mdW5jdGlvbih0KXt2YXIgZT1LKHQsMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIDE9PT1lLmxlbmd0aD9cIjB4MFwiLmNvbmNhdChlKTpcIjB4XCIuY29uY2F0KGUpfSxYPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSExKSwhZSYmbS50ZXN0KHQpP01hdGgubWluKDI1NSpMKHQpLzEwMCwyNTUpOmIudGVzdCh0KT8oMz09PXQubGVuZ3RoJiYodCs9dC5zbGljZSgtMSkpLGU/Syh0KS8yNTU6Syh0KSk6TWF0aC5taW4oK3QsZT8xOjI1NSl9LEk9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWluKG0udGVzdCh0KT9MKHQpLzEwMDordCwxKX0sWT1mdW5jdGlvbih0KXtyZXR1cm4gZShbXSx0LCEwKS5zb3J0KCkuam9pbihcIlwiKS50b1VwcGVyQ2FzZSgpfSxLPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9Nik7dmFyIG49TWF0aC5wb3coMTAsZSk7cmV0dXJuIE1hdGgucm91bmQoK3Qqbikvbn0sTj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgubWF4KGUsTWF0aC5taW4odCxuKSl9LFQ9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpe3ZhciBlPXQubWF0Y2goZyksbj0rZVsxXTtzd2l0Y2goZVsyXSl7Y2FzZSBsLlJBRElBTlM6dD1LKDE4MCpuL01hdGguUEkpO2JyZWFrO2Nhc2UgbC5UVVJOUzp0PUsoMzYwKm4pO2JyZWFrO2Nhc2UgbC5HUkFESUFOUzp0PUsoLjkqbik7YnJlYWs7Y2FzZSBsLkRFR1JFRVM6ZGVmYXVsdDp0PW59fXJldHVybih0PjM2MHx8dDwwKSYmKHQtPTM2MCpNYXRoLmZsb29yKHQvMzYwKSksdH0sUD1mdW5jdGlvbih0LGUpe3ZhciBuO3N3aXRjaChlKXtjYXNlIGwuUkFESUFOUzpuPUsoZnVuY3Rpb24odCl7cmV0dXJuIHQqTWF0aC5QSS8xODB9KHQpKTticmVhaztjYXNlIGwuVFVSTlM6bj1LKHQvMzYwKTticmVhaztjYXNlIGwuR1JBRElBTlM6bj1LKDEwLzkqdCk7YnJlYWs7Y2FzZSBsLkRFR1JFRVM6Y2FzZSBsLk5PTkU6ZGVmYXVsdDpuPXR9cmV0dXJuIG59LFU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07Zm9yKHZhciByPVtdLGk9W10sbz1bXSxjPVtdLHU9W10scz1PYmplY3QudmFsdWVzKGwpLGQ9T2JqZWN0LnZhbHVlcyhmKSxiPU9iamVjdC52YWx1ZXMoaCksQT17bGVnYWN5Q1NTOjAsc3BhY2VzQWZ0ZXJDb21tYXM6MCxjbXlrRnVuY3Rpb246MH0sRj0wLHY9ZTtGPHYubGVuZ3RoO0YrKyl7dmFyIEg9dltGXTtpZihcInN0cmluZ1wiPT10eXBlb2YgSCl7aWYoci5wdXNoKEgpLEguaW5jbHVkZXMoXCIsXCIpKXtBLmxlZ2FjeUNTUysrO3ZhciBCPUgubWF0Y2goeSk7MT09PW5ldyBTZXQoQikuc2l6ZSYmRS50ZXN0KEJbMF0uc2xpY2UoMSkpJiZBLnNwYWNlc0FmdGVyQ29tbWFzKyt9aWYoSC5tYXRjaChwLkhTTCkpe3ZhciBDPShrPUgubWF0Y2gocC5IU0wpKVsxXXx8a1s1XSxTPWtbOF0sUj1DLm1hdGNoKGcpWzJdO2kucHVzaChcIlwiPT09Uj9sLk5PTkU6UiksdS5wdXNoKG0udGVzdChTKSk7Y29udGludWV9aWYocC5SR0IudGVzdChIKSl7dmFyIE09KGs9SC5tYXRjaChwLlJHQikpWzFdfHxrWzVdLE89a1syXXx8a1s2XSxMPWtbM118fGtbN10sRz1rWzhdO28ucHVzaChtLnRlc3QoTSkmJm0udGVzdChPKSYmbS50ZXN0KEwpKSx1LnB1c2gobS50ZXN0KEcpKTtjb250aW51ZX1pZihILm1hdGNoKHAuQ01ZSykpe3ZhciBrLGo9KGs9SC5tYXRjaChwLkNNWUspKVsxXXx8a1s2XSxYPWtbMl18fGtbN10sST1rWzNdfHxrWzhdLFk9a1s0XXx8a1s5XTtHPWtbMTBdO2MucHVzaChtLnRlc3QoaikmJm0udGVzdChYKSYmbS50ZXN0KEkpJiZtLnRlc3QoWSkpLEguc3RhcnRzV2l0aChcImNteWtcIikmJkEuY215a0Z1bmN0aW9uKyssdS5wdXNoKG0udGVzdChHKSl9fX1yZXR1cm57ZGVjaW1hbHM6dHlwZW9mIHQuZGVjaW1hbHM9PT1hLk5VTUJFUj90LmRlY2ltYWxzOkQuZGVjaW1hbHMsbGVnYWN5Q1NTOnR5cGVvZiB0LmxlZ2FjeUNTUz09PWEuQk9PTEVBTj90LmxlZ2FjeUNTUzpCb29sZWFuKHIubGVuZ3RoJiZBLmxlZ2FjeUNTUz09PXIubGVuZ3RoKXx8RC5sZWdhY3lDU1Msc3BhY2VzQWZ0ZXJDb21tYXM6dHlwZW9mIHQuc3BhY2VzQWZ0ZXJDb21tYXM9PT1hLkJPT0xFQU4/dC5zcGFjZXNBZnRlckNvbW1hczpCb29sZWFuKHIubGVuZ3RoJiZBLnNwYWNlc0FmdGVyQ29tbWFzPT09ci5sZW5ndGgpfHxELnNwYWNlc0FmdGVyQ29tbWFzLGFuZ2xlc1VuaXQ6dC5hbmdsZXNVbml0JiZzLmluY2x1ZGVzKHQuYW5nbGVzVW5pdCk/dC5hbmdsZXNVbml0OjE9PT1uZXcgU2V0KGkpLnNpemU/aVswXTpELmFuZ2xlc1VuaXQscmdiVW5pdDp0LnJnYlVuaXQmJmQuaW5jbHVkZXModC5yZ2JVbml0KT90LnJnYlVuaXQ6MT09PW5ldyBTZXQobykuc2l6ZSYmb1swXT9mLlBFUkNFTlQ6RC5yZ2JVbml0LGNteWtVbml0OnQuY215a1VuaXQmJmQuaW5jbHVkZXModC5jbXlrVW5pdCk/dC5jbXlrVW5pdDoxIT09bmV3IFNldChjKS5zaXplfHxjWzBdP0QuY215a1VuaXQ6Zi5OT05FLGFscGhhVW5pdDp0LmFscGhhVW5pdCYmZC5pbmNsdWRlcyh0LmFscGhhVW5pdCk/dC5hbHBoYVVuaXQ6MT09PW5ldyBTZXQodSkuc2l6ZSYmdVswXT9mLlBFUkNFTlQ6RC5hbHBoYVVuaXQsY215a0Z1bmN0aW9uOnQuY215a0Z1bmN0aW9uJiZiLmluY2x1ZGVzKHQuY215a0Z1bmN0aW9uKT90LmNteWtGdW5jdGlvbjpjLmxlbmd0aCYmYy5sZW5ndGg9PT1BLmNteWtGdW5jdGlvbj9oLkNNWUs6RC5jbXlrRnVuY3Rpb259fSx3PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbjwwJiYobis9Niksbj49NiYmKG4tPTYpLEsobjwxPzI1NSooKGUtdCkqbit0KTpuPDM/MjU1KmU6bjw0PzI1NSooKGUtdCkqKDQtbikrdCk6MjU1KnQpfSx4PWZ1bmN0aW9uKHQsZSxuKXtlLz0xMDA7dmFyIHI9KG4vPTEwMCk8PS41P24qKGUrMSk6bitlLW4qZSxpPTIqbi1yO3JldHVybntyOncoaSxyLCh0Lz02MCkrMiksZzp3KGkscix0KSxiOncoaSxyLHQtMil9fSxWPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybntyOksoMjU1KigxLXQpKihyPTEtcikpLGc6SygyNTUqKDEtZSkqciksYjpLKDI1NSooMS1uKSpyKX19LHE9ZnVuY3Rpb24odCxlLG4pe3QvPTI1NSxlLz0yNTUsbi89MjU1O3ZhciByPTEtTWF0aC5tYXgodCxlLG4pLGk9MS1yLG89aSYmKGktZSkvaSxhPWkmJihpLW4pL2k7cmV0dXJue2M6SygxMDAqKGkmJihpLXQpL2kpKSxtOksoMTAwKm8pLHk6SygxMDAqYSksazpLKDEwMCpyKX19LF89ZnVuY3Rpb24odCxlLG4scil7dm9pZCAwPT09ciYmKHI9MSksdC89MjU1LGUvPTI1NSxuLz0yNTUscj1NYXRoLm1pbihyLDEpO3ZhciBpPU1hdGgubWF4KHQsZSxuKSxvPU1hdGgubWluKHQsZSxuKSxhPWktbyxjPTAsdT0wLHM9KGkrbykvMjtpZigwIT09YSl7c3dpdGNoKGkpe2Nhc2UgdDpjPShlLW4pL2ElNjticmVhaztjYXNlIGU6Yz0obi10KS9hKzI7YnJlYWs7Y2FzZSBuOmM9KHQtZSkvYSs0fShjPUsoNjAqYykpPDAmJihjKz0zNjApLHU9YS8oMS1NYXRoLmFicygyKnMtMSkpfXJldHVybntoOmMsczpLKDEwMCp1KSxsOksoMTAwKnMpLGE6cn19LCQ9ZnVuY3Rpb24odCxlKXtpZih0PDAmJih0Kz0zNjApLHQ+MzYwJiYodC09MzYwKSwzNjA9PT10fHwwPT09dClyZXR1cm4gdDt2YXIgbj1bWzAsMTIwXSxbMTIwLDE4MF0sWzE4MCwyNDBdLFsyNDAsMzYwXV0scj1bWzAsNjBdLFs2MCwxMjBdLFsxMjAsMjQwXSxbMjQwLDM2MF1dLGk9ZT9yOm4sbz0wLGE9MCxjPTAsdT0wO3JldHVybihlP246cikuZmluZCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD49ZVswXSYmdDxlWzFdJiYobz1lWzBdLGE9ZVsxXSxjPWlbbl1bMF0sdT1pW25dWzFdLCEwKX0pKSxjKyh1LWMpLyhhLW8pKih0LW8pfSx6PWZ1bmN0aW9uKHQpe3JldHVybiB0P1wiLCBcIjpcIixcIn0sUT1mdW5jdGlvbih0LGUpe3ZhciBuPVkoT2JqZWN0LmtleXModCkpO3JldHVybiBzW2Rbbl1dLnJlZHVjZSgoZnVuY3Rpb24obixyLGkpe3ZhciBvPXRbcl07cmV0dXJuIHZvaWQgMCE9PW8mJm4ucHVzaChlKG8saSkpLG59KSxbXSl9LFc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5yZXBsYWNlKEEsKGZ1bmN0aW9uKHQsbil7cmV0dXJuXCJcIi5jb25jYXQoZVsrbi0xXSl9KSl9LEo9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmFscGhhVW5pdCxyPWUubGVnYWN5Q1NTLGk9ZS5kZWNpbWFscztyZXR1cm4gbiE9PWYuUEVSQ0VOVHx8cj9LKHQsaSk6XCJcIi5jb25jYXQoSygxMDAqdCxpKSxcIiVcIil9LFo9KChIPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7dmFyIGU9USh0LChmdW5jdGlvbih0KXtyZXR1cm4gZT1LKHQpLDE9PT0obj1LKGUsMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkpLmxlbmd0aCYmKG49XCIwXCIuY29uY2F0KG4pKSxuO3ZhciBlLG59KSksbj00PT09ZS5sZW5ndGg/XCIjezF9ezJ9ezN9ezR9XCI6XCIjezF9ezJ9ezN9XCI7cmV0dXJuIFcobixlKX0sSFtuLlJHQl09ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmRlY2ltYWxzLHI9ZS5sZWdhY3lDU1MsaT1lLnNwYWNlc0FmdGVyQ29tbWFzLG89ZS5yZ2JVbml0LGE9eihpKSxjPVEodCwoZnVuY3Rpb24odCxyKXtyZXR1cm4gbz09PWYuUEVSQ0VOVCYmcjwzP1wiXCIuY29uY2F0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEsodC8yNTUqMTAwLGUpfSh0LG4pLFwiJVwiKTozPT09cj9KKHQsZSk6Syh0LG4pfSkpLHU9cj80PT09Yy5sZW5ndGg/XCJyZ2JhKHsxfVwiLmNvbmNhdChhLFwiezJ9XCIpLmNvbmNhdChhLFwiezN9XCIpLmNvbmNhdChhLFwiezR9KVwiKTpcInJnYih7MX1cIi5jb25jYXQoYSxcInsyfVwiKS5jb25jYXQoYSxcInszfSlcIik6ND09PWMubGVuZ3RoP1wicmdiKHsxfSB7Mn0gezN9IC8gezR9KVwiOlwicmdiKHsxfSB7Mn0gezN9KVwiO3JldHVybiBXKHUsYyl9LEhbbi5IU0xdPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5kZWNpbWFscyxyPWUubGVnYWN5Q1NTLGk9ZS5zcGFjZXNBZnRlckNvbW1hcyxvPWUuYW5nbGVzVW5pdCxhPXooaSksYz1RKHQsKGZ1bmN0aW9uKHQscil7aWYoMD09PXImJm8hPT1sLk5PTkUpe3ZhciBpPUsoUCh0LG8pLG4pO3JldHVyblwiXCIuY29uY2F0KGkpLmNvbmNhdChvKX1yZXR1cm4gMz09PXI/Sih0LGUpOksodCxuKX0pKSx1PXI/ND09PWMubGVuZ3RoP1wiaHNsYSh7MX1cIi5jb25jYXQoYSxcInsyfSVcIikuY29uY2F0KGEsXCJ7M30lXCIpLmNvbmNhdChhLFwiezR9KVwiKTpcImhzbCh7MX1cIi5jb25jYXQoYSxcInsyfSVcIikuY29uY2F0KGEsXCJ7M30lKVwiKTo0PT09Yy5sZW5ndGg/XCJoc2woezF9IHsyfSUgezN9JSAvIHs0fSlcIjpcImhzbCh7MX0gezJ9JSB7M30lKVwiO3JldHVybiBXKHUsYyl9LEhbbi5DTVlLXT1mdW5jdGlvbih0LGUpe3ZhciBuPWUuZGVjaW1hbHMscj1lLmxlZ2FjeUNTUyxpPWUuc3BhY2VzQWZ0ZXJDb21tYXMsbz1lLmNteWtVbml0LGE9ZS5jbXlrRnVuY3Rpb24sYz16KGkpLHU9USh0LChmdW5jdGlvbih0LHIpe3JldHVybiBvPT09Zi5QRVJDRU5UJiZyPDQ/XCJcIi5jb25jYXQoSyh0LG4pLFwiJVwiKTo0PT09cj9KKHQsZSk6Syh0LzEwMCxuKX0pKSxzPXI/NT09PXUubGVuZ3RoP1wiXCIuY29uY2F0KGEsXCIoezF9XCIpLmNvbmNhdChjLFwiezJ9XCIpLmNvbmNhdChjLFwiezN9XCIpLmNvbmNhdChjLFwiezR9XCIpLmNvbmNhdChjLFwiezV9KVwiKTpcIlwiLmNvbmNhdChhLFwiKHsxfVwiKS5jb25jYXQoYyxcInsyfVwiKS5jb25jYXQoYyxcInszfVwiKS5jb25jYXQoYyxcIns0fSlcIik6NT09PXUubGVuZ3RoP1wiXCIuY29uY2F0KGEsXCIoezF9IHsyfSB7M30gezR9IC8gezV9KVwiKTpcIlwiLmNvbmNhdChhLFwiKHsxfSB7Mn0gezN9IHs0fSlcIik7cmV0dXJuIFcocyx1KX0sSCksdHQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PW0udGVzdCh0KT9MKHQpLzEwMDordCksaXNOYU4oK3QpfHx0PjE/MTpLKHQpfSxldD1mdW5jdGlvbihuLHIsbyl7cmV0dXJuIHIucmVkdWNlKChmdW5jdGlvbihyLGEpe3JldHVybiBlKGUoW10sciwhMCksW3QodCh7fSxuKSx7aDpvPT09aS5BRERJVElWRT9UKG4uaCthKTpUKCQoJChuLmgsITEpK2EsITApKX0pXSwhMSl9KSxbdCh7fSxuKV0pfSxudD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFszMCwtMzBdLGUpfSxydD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFsxODBdLGUpfSxpdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFsxNTAsLTE1MF0sZSl9LG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV0KHQsWzEyMCwtMTIwXSxlKX0sYXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbNjAsLTEyMCwxODBdLGUpfSxjdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFs5MCwtOTAsMTgwXSxlKX0sdXQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7dmFyIGU7aWYoT2JqZWN0LmtleXMobikuc29tZSgoZnVuY3Rpb24obil7aWYocFtuXS50ZXN0KHQpKXJldHVybiBlPW4sITB9KSksIWUmJn51LmluZGV4T2YodCkmJihlPW4uSEVYKSwhZSl0aHJvdyBuZXcgRXJyb3IoRik7cmV0dXJuIGV9KHQpOmZ1bmN0aW9uKHQpe3ZhciBlLHI9ITEsaT1ZKE9iamVjdC5rZXlzKHQpKTtpZihkW2ldJiYoZT1kW2ldKSxlJiZlPT09bi5SR0Ipe3ZhciBvPU9iamVjdC5lbnRyaWVzKHQpLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiFiLnRlc3QoXCJcIi5jb25jYXQodFsxXSkpfSkpLGE9T2JqZWN0LmVudHJpZXModCkuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIShtLnRlc3QoXCJcIi5jb25jYXQodFsxXSkpfHwhYi50ZXN0KFwiXCIuY29uY2F0KHRbMV0pKSYmIWlzTmFOKCt0WzFdKSYmK3RbMV08PTI1NSl9KSk7byYmYSYmKHI9ITApLG98fChlPW4uSEVYKX1pZighZXx8cil0aHJvdyBuZXcgRXJyb3Iodik7cmV0dXJuIGV9KHQpfSxzdD0oKEI9e30pW24uSEVYXT1mdW5jdGlvbih0KXt2YXIgZT0ofnUuaW5kZXhPZih0KT9vW3RdOnQpLm1hdGNoKHAuSEVYKSxuPXtyOmsoZVsxXXx8ZVs1XSksZzprKGVbMl18fGVbNl0pLGI6ayhlWzNdfHxlWzddKX0scj1lWzRdfHxlWzhdO3JldHVybiB2b2lkIDAhPT1yJiYobi5hPWsocikvMjU1KSxufSxCW24uUkdCXT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHAuUkdCKSxuPVgoZVsxXXx8ZVs1XSkscj1YKGVbMl18fGVbNl0pLGk9WChlWzNdfHxlWzddKSxvPWVbNF18fGVbOF0sYT17cjpNYXRoLm1pbihuLDI1NSksZzpNYXRoLm1pbihyLDI1NSksYjpNYXRoLm1pbihpLDI1NSl9O3JldHVybiB2b2lkIDAhPT1vJiYoYS5hPXR0KG8pKSxhfSxCW24uSFNMXT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHAuSFNMKSxuPVQoZVsxXXx8ZVs1XSkscj1HKGVbMl18fGVbNl0pLGk9RyhlWzNdfHxlWzddKSxvPWVbNF18fGVbOF0sYT14KG4scixpKTtyZXR1cm4gdm9pZCAwIT09byYmKGEuYT10dChvKSksYX0sQltuLkNNWUtdPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2gocC5DTVlLKSxuPUkoZVsxXXx8ZVs2XSkscj1JKGVbMl18fGVbN10pLGk9SShlWzNdfHxlWzhdKSxvPUkoZVs0XXx8ZVs5XSksYT1lWzVdfHxlWzEwXSxjPVYobixyLGksbyk7cmV0dXJuIHZvaWQgMCE9PWEmJihjLmE9dHQoYSkpLGN9LEIpLGR0PSgoQz17fSlbbi5IRVhdPWZ1bmN0aW9uKHQpe3ZhciBlPXtyOlgoXCJcIi5jb25jYXQodC5yKSksZzpYKFwiXCIuY29uY2F0KHQuZykpLGI6WChcIlwiLmNvbmNhdCh0LmIpKX07cmV0dXJuIE8odCxcImFcIikmJihlLmE9TWF0aC5taW4oWChcIlwiLmNvbmNhdCh0LmEpLCEwKSwxKSksZX0sQ1tuLlJHQl09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSEVYKHQpfSxDW24uSFNMXT1mdW5jdGlvbih0KXt2YXIgZT1HKFwiXCIuY29uY2F0KHQucykpLG49RyhcIlwiLmNvbmNhdCh0LmwpKSxyPXgoVCh0LmgpLGUsbik7cmV0dXJuIE8odCxcImFcIikmJihyLmE9dHQodC5hKSkscn0sQ1tuLkNNWUtdPWZ1bmN0aW9uKHQpe3ZhciBlPUkoXCJcIi5jb25jYXQodC5jKSksbj1JKFwiXCIuY29uY2F0KHQubSkpLHI9SShcIlwiLmNvbmNhdCh0LnkpKSxpPUkoXCJcIi5jb25jYXQodC5rKSksbz1WKGUsbixyLGkpO3JldHVybiBPKHQsXCJhXCIpJiYoby5hPXR0KHQuYSkpLG99LEMpLGx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXV0KHQpKSxcInN0cmluZ1wiPT10eXBlb2YgdD9zdFtlXSh0KTpkdFtlXSh0KX0sZnQ9KChTPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7cmV0dXJue3I6aih0LnIpLGc6aih0LmcpLGI6aih0LmIpfX0sUy5IRVhBPWZ1bmN0aW9uKHQpe3ZhciBlPWZ0LkhFWCh0KTtyZXR1cm4gZS5hPU8odCxcImFcIik/aigyNTUqdC5hKTpcIjB4RkZcIixlfSxTW24uUkdCXT1mdW5jdGlvbih0LGUpe3ZhciBuPW10KHQsZSk7cmV0dXJuIE8obixcImFcIikmJmRlbGV0ZSBuLmEsbn0sUy5SR0JBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuUkdCKHQsZSk7cmV0dXJuIG4uYT1PKHQsXCJhXCIpP0sodC5hKToxLG59LFNbbi5IU0xdPWZ1bmN0aW9uKHQsZSl7dmFyIG49Xyh0LnIsdC5nLHQuYik7cmV0dXJuIGRlbGV0ZSBuLmEsYnQobixlKX0sUy5IU0xBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuSFNMKHQsZSk7cmV0dXJuIG4uYT1PKHQsXCJhXCIpP0sodC5hLGUpOjEsbn0sU1tuLkNNWUtdPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEF0KHEodC5yLHQuZyx0LmIpLGUpfSxTLkNNWUtBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuQ01ZSyh0LGUpO3JldHVybiBuLmE9Tyh0LFwiYVwiKT9LKHQuYSxlKToxLG59LFMpLGh0PWZ1bmN0aW9uKGUscixpLG8pe3ZhciBhPXV0KGUpLGM9XCJzdHJpbmdcIj09dHlwZW9mIGUsdT1sdChlLGEpLHM9XCJzdHJpbmdcIj09dHlwZW9mIGUmJk8odSxcImFcIil8fFwic3RyaW5nXCIhPXR5cGVvZiBlJiZPKGUsXCJhXCIpLGQ9Xyh1LnIsdS5nLHUuYix1LmEpO3N8fGRlbGV0ZSBkLmE7dmFyIGw9aT9kLmwvKHIrMSk6KDEwMC1kLmwpLyhyKzEpLGY9QXJyYXkocikuZmlsbChudWxsKS5tYXAoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQodCh7fSxkKSx7bDpkLmwrbCoobisxKSooMS0yKitpKX0pfSkpO3N3aXRjaChhKXtjYXNlIG4uSEVYOmRlZmF1bHQ6cmV0dXJuIGYubWFwKChmdW5jdGlvbihlKXt2YXIgbj14KGUuaCxlLnMsZS5sKTtyZXR1cm4gcyYmKG4uYT1lLmEpLGM/cz9aLkhFWCh0KHQoe30sbikse2E6SygyNTUqbi5hKX0pKTpaLkhFWChuKTpzP2Z0LkhFWEEobik6ZnQuSEVYKG4pfSkpO2Nhc2Ugbi5SR0I6cmV0dXJuIGYubWFwKChmdW5jdGlvbih0KXt2YXIgZT14KHQuaCx0LnMsdC5sKTtyZXR1cm4gcyYmKGUuYT10LmEpLGM/Wi5SR0IoZSxvKTpzP2Z0LlJHQkEoZSxvLmRlY2ltYWxzKTpmdC5SR0IoZSxvLmRlY2ltYWxzKX0pKTtjYXNlIG4uSFNMOnJldHVybiBmLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGM/Wi5IU0woZSxvKTpzP2Z0LkhTTEEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTplLmF9KSxvLmRlY2ltYWxzKTpmdC5IU0woeChlLmgsZS5zLGUubCksby5kZWNpbWFscyl9KSl9fSxwdD0oKFI9e2J1aWxkSGFybW9ueTpmdW5jdGlvbih0LGUscixpKXt2YXIgbz11dCh0KSxhPWx0KHQsbyksYz1fKGEucixhLmcsYS5iLGEuYSksdT1cInN0cmluZ1wiPT10eXBlb2YgdCYmTyhhLFwiYVwiKXx8XCJzdHJpbmdcIiE9dHlwZW9mIHQmJk8odCxcImFcIikscz1cInN0cmluZ1wiPT10eXBlb2YgdDtzd2l0Y2gobyl7Y2FzZSBuLkhFWDpkZWZhdWx0OnJldHVybiB1P3RoaXMuSEVYQShidChjLDApLGUscixzKTp0aGlzLkhFWChidChjLDApLGUscixzKTtjYXNlIG4uSFNMOnJldHVybiB1P3RoaXMuSFNMQShjLGUscixzLGkpOnRoaXMuSFNMKGMsZSxyLHMsaSk7Y2FzZSBuLlJHQjpyZXR1cm4gdT90aGlzLlJHQkEoYyxlLHIscyxpKTp0aGlzLlJHQihjLGUscixzLGkpfX19KVtuLkhFWF09ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouSEVYKHgodC5oLHQucyx0LmwpKTpmdC5IRVgoeCh0LmgsdC5zLHQubCkpfSkpfSxSLkhFWEE9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIG4oZSxyKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpP1ouSEVYKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6MjU1KnR0KGUuYSl9KSk6ZnQuSEVYQSh0KHQoe30seChlLmgsZS5zLGUubCkpLHthOnR0KGUuYSl9KSl9KSl9LFJbbi5SR0JdPWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouUkdCKHgodC5oLHQucyx0LmwpLGkpOmZ0LlJHQih4KHQuaCx0LnMsdC5sKSxpLmRlY2ltYWxzKX0pKX0sUi5SR0JBPWZ1bmN0aW9uKGUsbixyLGksbyl7cmV0dXJuIG4oZSxyKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpP1ouUkdCKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pLG8pOmZ0LlJHQkEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTp0dChlLmEpfSksby5kZWNpbWFscyl9KSl9LFJbbi5IU0xdPWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouSFNMKHtoOnQuaCxzOnQucyxsOnQubH0saSk6ZnQuSFNMKHgodC5oLHQucyx0LmwpLGkuZGVjaW1hbHMpfSkpfSxSLkhTTEE9ZnVuY3Rpb24oZSxuLHIsaSxvKXtyZXR1cm4gbihlLHIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGk/Wi5IU0wodCh0KHt9LGUpLHthOnR0KGUuYSl9KSxvKTpmdC5IU0xBKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pLG8uZGVjaW1hbHMpfSkpfSxSKSxndD0oKE09e21peDpmdW5jdGlvbihlLG4pe3ZhciByLG8sYSxjLHUscyxkLGwsZixoLHAsZyxtLGIsQSx5PWUubWFwKChmdW5jdGlvbih0KXt2YXIgZT11dCh0KTtyZXR1cm4gbHQodCxlKX0pKSxFPW49PT1pLlNVQlRSQUNUSVZFP3kubWFwKChmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEsYyx1LHMsZCxsLGYsaCxwLGc9KGU9dC5yLG49dC5nLHI9dC5iLGk9TWF0aC5taW4oZSxuLHIpLG89TWF0aC5taW4oMjU1LWUsMjU1LW4sMjU1LXIpLGE9ZS1pLGM9bi1pLHU9ci1pLHM9TWF0aC5taW4oYSxjKSxkPWEtcyxsPShjK3MpLzIsZj0odStjLXMpLzIsaD1NYXRoLm1heChkLGwsZikvTWF0aC5tYXgoYSxjLHUpLHA9aXNOYU4oaCl8fGg9PT0xLzB8fGg8PTA/MTpoLHtyOmQvcCtvLHk6bC9wK28sYjpmL3Arb30pO3JldHVybiBPKHQsXCJhXCIpJiYoZy5hPXQuYSksZ30pKTpudWxsO2Z1bmN0aW9uIEYoZSl7dmFyIHI9bj09PWkuQURESVRJVkU/e3I6MCxnOjAsYjowLGE6MH06e3I6MCx5OjAsYjowLGE6MH07cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLHIpe3ZhciBvPU8ocixcImFcIik/ci5hOjEsYT17cjpNYXRoLm1pbihlLnIrci5yKm8sMjU1KSxiOk1hdGgubWluKGUuYityLmIqbywyNTUpLGE6MS0oMS1vKSooMS1lLmEpfSxjPVwiZ1wiaW4gZT9lLmc6ZS55LHU9XCJnXCJpbiByP3IuZzpyLnk7cmV0dXJuIHQodCh7fSxhKSxuPT09aS5BRERJVElWRT97ZzpNYXRoLm1pbihjK3UqbywyNTUpfTp7eTpNYXRoLm1pbihjK3UqbywyNTUpfSl9KSxyKX1pZihuPT09aS5BRERJVElWRSlyPUYoeSk7ZWxzZXt2YXIgdj1GKEUpO289di5yLGE9di55LGM9di5iLHU9TWF0aC5taW4obyxhLGMpLHM9TWF0aC5taW4oMjU1LW8sMjU1LWEsMjU1LWMpLGQ9by11LGw9YS11LGY9Yy11LGg9TWF0aC5taW4obCxmKSxwPWQrbC1oLGc9bCtoLG09MiooZi1oKSxiPU1hdGgubWF4KHAsZyxtKS9NYXRoLm1heChkLGwsZiksQT1pc05hTihiKXx8Yj09PTEvMHx8Yjw9MD8xOmIsKHI9e3I6cC9BK3MsZzpnL0ErcyxiOm0vQStzfSkuYT12LmF9cmV0dXJue3I6SyhyLnIpLGc6SyhyLmcpLGI6SyhyLmIpLGE6TihyLmEsMCwxKX19fSlbbi5IRVhdPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLm1peCh0LGUpO3JldHVybiBkZWxldGUgci5hLG4/Wi5IRVgocik6ZnQuSEVYKHIpfSxNLkhFWEE9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMubWl4KHQsZSk7cmV0dXJuIHIuYT1uPzI1NSp0dChyLmEpOnR0KHIuYSksbj9aLkhFWChyKTpmdC5IRVhBKHIpfSxNW24uUkdCXT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLm1peCh0LGUpO3JldHVybiBkZWxldGUgaS5hLG4/Wi5SR0IoaSxyKTpmdC5SR0IoaSxyLmRlY2ltYWxzKX0sTS5SR0JBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSk7cmV0dXJuIG4/Wi5SR0IoaSxyKTpmdC5SR0JBKGksci5kZWNpbWFscyl9LE1bbi5IU0xdPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSksbz1fKGkucixpLmcsaS5iKTtyZXR1cm4gZGVsZXRlIGkuYSxkZWxldGUgby5hLG4/Wi5IU0wobyxyKTpmdC5IU0woaSxyLmRlY2ltYWxzKX0sTS5IU0xBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSksbz1fKGkucixpLmcsaS5iLGkuYSk7cmV0dXJuIG4/Wi5IU0wobyxyKTpmdC5IU0xBKGksci5kZWNpbWFscyl9LE0pLG10PWZ1bmN0aW9uKGUsbil7dmFyIHI9SyhlLnIsbiksaT1LKGUuZyxuKSxvPUsoZS5iLG4pO3JldHVybiB0KHtyOnIsZzppLGI6b30sTyhlLFwiYVwiKT97YTpLKGUuYSxuKX06e30pfSxidD1mdW5jdGlvbihlLG4pe3JldHVybiB0KHtoOksoZS5oLG4pLHM6SyhlLnMsbiksbDpLKGUubCxuKX0sTyhlLFwiYVwiKT97YTpLKGUuYSxuKX06e30pfSxBdD1mdW5jdGlvbih0LGUpe3JldHVybntjOksodC5jLGUpLG06Syh0Lm0sZSkseTpLKHQueSxlKSxrOksodC5rLGUpfX0seXQ9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHIobHQodCxlKSxuKX0sRXQ9ZnVuY3Rpb24odCxlLG4scixpKXtuPDEmJihuPTUpO3ZhciBvPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uLTEsaT0oZS5yLXQucikvcixvPShlLmctdC5nKS9yLGE9KGUuYi10LmIpL3IsYz10dCh0LmEpLHU9KHR0KGUuYSktYykvcjtyZXR1cm4gQXJyYXkobikuZmlsbChudWxsKS5tYXAoKGZ1bmN0aW9uKG4scyl7cmV0dXJuIDA9PT1zP3Q6cz09PXI/ZTp7cjpLKHQucitpKnMpLGc6Syh0LmcrbypzKSxiOksodC5iK2EqcyksYTpLKGMrdSpzKX19KSl9KGx0KHQpLGx0KGUpLG4pO3JldHVybiBvLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCxyKX0pKX0sRnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuX29wdGlvbnM9VShlLHQpLHRoaXMucmdiPWx0KHQpLHRoaXMudXBkYXRlSFNMKCksdGhpcy51cGRhdGVDTVlLKCl9cmV0dXJuIG4ucHJvdG90eXBlLnVwZGF0ZVJHQj1mdW5jdGlvbigpe3RoaXMucmdiPXQodCh7fSx4KHRoaXMuaHNsLmgsdGhpcy5oc2wucyx0aGlzLmhzbC5sKSkse2E6dGhpcy5oc2wuYX0pfSxuLnByb3RvdHlwZS51cGRhdGVSR0JGcm9tQ01ZSz1mdW5jdGlvbigpe3RoaXMucmdiPXQodCh7fSxWKHRoaXMuY215ay5jLHRoaXMuY215ay5tLHRoaXMuY215ay55LHRoaXMuY215ay5rKSkse2E6dGhpcy5yZ2IuYX0pfSxuLnByb3RvdHlwZS51cGRhdGVIU0w9ZnVuY3Rpb24oKXt0aGlzLmhzbD1fKHRoaXMucmdiLnIsdGhpcy5yZ2IuZyx0aGlzLnJnYi5iLHRoaXMucmdiLmEpfSxuLnByb3RvdHlwZS51cGRhdGVDTVlLPWZ1bmN0aW9uKCl7dGhpcy5jbXlrPXEodGhpcy5yZ2Iucix0aGlzLnJnYi5nLHRoaXMucmdiLmIpfSxuLnByb3RvdHlwZS51cGRhdGVSR0JBbmRDTVlLPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBkYXRlUkdCKCksdGhpcy51cGRhdGVDTVlLKCksdGhpc30sbi5wcm90b3R5cGUudXBkYXRlSFNMQW5kQ01ZSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZUhTTCgpLHRoaXMudXBkYXRlQ01ZSygpLHRoaXN9LG4ucHJvdG90eXBlLnVwZGF0ZVJHQkFuZEhTTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZVJHQkZyb21DTVlLKCksdGhpcy51cGRhdGVIU0woKSx0aGlzfSxuLnByb3RvdHlwZS5zZXRPcHRpb25zPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5fb3B0aW9ucz10KHQoe30sdGhpcy5fb3B0aW9ucyksZSksdGhpc30sbi5wcm90b3R5cGUuc2V0SD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wuaD1UKHQpLHRoaXMudXBkYXRlUkdCQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRTPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhzbC5zPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaHNsLmw9Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0Uj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZ2Iucj1OKHQsMCwyNTUpLHRoaXMudXBkYXRlSFNMQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRHPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJnYi5nPU4odCwwLDI1NSksdGhpcy51cGRhdGVIU0xBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmdiLmI9Tih0LDAsMjU1KSx0aGlzLnVwZGF0ZUhTTEFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0QT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wuYT10aGlzLnJnYi5hPU4odCwwLDEpLHRoaXN9LG4ucHJvdG90eXBlLnNldEM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay5jPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sbi5wcm90b3R5cGUuc2V0TT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXlrLm09Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZEhTTCgpfSxuLnByb3RvdHlwZS5zZXRZPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNteWsueT1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kSFNMKCl9LG4ucHJvdG90eXBlLnNldEs9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay5rPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwib3B0aW9uc1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3B0aW9uc30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmgsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJTXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLnMsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJMXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmwsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLnIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJHXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLmcsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJCXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLmIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmEsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay5jLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiTVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmNteWsubSx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIllcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5jbXlrLnksdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJLXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay5rLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSEVYT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiBmdC5IRVgodGhpcy5yZ2IpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWEFPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ0LkhFWEEodGhpcy5yZ2IpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQk9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57cjp0aGlzLlIsZzp0aGlzLkcsYjp0aGlzLkJ9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQkFPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQodCh7fSx0aGlzLlJHQk9iamVjdCkse2E6dGhpcy5BfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybntoOnRoaXMuSCxzOnRoaXMuUyxsOnRoaXMuTH19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMQU9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCh0KHt9LHRoaXMuSFNMT2JqZWN0KSx7YTp0aGlzLkF9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDTVlLT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybntjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuS319LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS0FPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQodCh7fSx0aGlzLkNNWUtPYmplY3QpLHthOnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IRVgoe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSEVYQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IRVgoe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CLGE6MjU1KnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQlwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5SR0Ioe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CfSx0aGlzLm9wdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQkFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouUkdCKHtyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQixhOnRoaXMuQX0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIU0xcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouSFNMKHtoOnRoaXMuSCxzOnRoaXMuUyxsOnRoaXMuTH0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIU0xBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLkhTTCh7aDp0aGlzLkgsczp0aGlzLlMsbDp0aGlzLkwsYTp0aGlzLkF9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5DTVlLKHtjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuS30sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDTVlLQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5DTVlLKHtjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuSyxhOnRoaXMuQX0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxuLnRvSEVYT2JqZWN0PWZ1bmN0aW9uKHQpe3ZhciBlPXV0KHQpO3JldHVybiB5dCh0LGUsMCxmdC5IRVgpfSxuLnRvSEVYPWZ1bmN0aW9uKHQpe3JldHVybiBaLkhFWChuLnRvSEVYT2JqZWN0KHQpKX0sbi50b0hFWEFPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9dXQodCk7cmV0dXJuIHl0KHQsZSwwLGZ0LkhFWEEpfSxuLnRvSEVYQT1mdW5jdGlvbih0KXtyZXR1cm4gWi5IRVgobi50b0hFWEFPYmplY3QodCkpfSxuLnRvUkdCT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5SR0IpfSxuLnRvUkdCPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuUkdCKTtyZXR1cm4gWi5SR0IoaSxyKX0sbi50b1JHQkFPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LlJHQkEpfSxuLnRvUkdCQT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LlJHQkEpO3JldHVybiBaLlJHQihpLHIpfSxuLnRvSFNMT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5IU0wpfSxuLnRvSFNMPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuSFNMKTtyZXR1cm4gWi5IU0woaSxyKX0sbi50b0hTTEFPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkhTTEEpfSxuLnRvSFNMQT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LkhTTEEpO3JldHVybiBaLkhTTChpLHIpfSxuLnRvQ01ZS09iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuQ01ZSyl9LG4udG9DTVlLPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuQ01ZSyk7cmV0dXJuIFouQ01ZSyhpLHIpfSxuLnRvQ01ZS0FPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkNNWUtBKX0sbi50b0NNWUtBPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuQ01ZS0EpO3JldHVybiBaLkNNWUsoaSxyKX0sbi5nZXRCbGVuZEhFWE9iamVjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLEV0KHQsZSxuLDAsZnQuSEVYKX0sbi5nZXRCbGVuZEhFWD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPTUpLG4uZ2V0QmxlbmRIRVhPYmplY3QodCxlLHIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKHQpfSkpfSxuLmdldEJsZW5kSEVYQU9iamVjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLEV0KHQsZSxuLDAsZnQuSEVYQSl9LG4uZ2V0QmxlbmRIRVhBPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9NSksbi5nZXRCbGVuZEhFWEFPYmplY3QodCxlLHIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKHQpfSkpfSxuLmdldEJsZW5kUkdCT2JqZWN0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sci5kZWNpbWFscyxmdC5SR0IpfSxuLmdldEJsZW5kUkdCPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sNixmdC5SR0IpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIFouUkdCKG4sVShyLHQsZSkpfSkpfSxuLmdldEJsZW5kUkdCQU9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuUkdCQSl9LG4uZ2V0QmxlbmRSR0JBPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sNixmdC5SR0JBKS5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBaLlJHQihuLFUocix0LGUpKX0pKX0sbi5nZXRCbGVuZEhTTE9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuSFNMKX0sbi5nZXRCbGVuZEhTTD1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSk7dmFyIGk9VShyLHQsZSk7cmV0dXJuIEV0KHQsZSxuLDYsZnQuSFNMKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhTTCh0LGkpfSkpfSxuLmdldEJsZW5kSFNMQU9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuSFNMQSl9LG4uZ2V0QmxlbmRIU0xBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KTt2YXIgaT1VKHIsdCxlKTtyZXR1cm4gRXQodCxlLG4sNixmdC5IU0xBKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhTTCh0LGkpfSkpfSxuLmdldE1peEhFWE9iamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVgodCxlLCExKX0sbi5nZXRNaXhIRVg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aS5BRERJVElWRSksZ3QuSEVYKHQsZSwhMCl9LG4uZ2V0TWl4SEVYQU9iamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVhBKHQsZSwhMSl9LG4uZ2V0TWl4SEVYQT1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVhBKHQsZSwhMCl9LG4uZ2V0TWl4UkdCT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQih0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhSR0I9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuUkdCKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peFJHQkFPYmplY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuUkdCQSh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhSR0JBPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQkEodCxuLCEwLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4SFNMT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTCh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0w9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuSFNMKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peEhTTEFPYmplY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuSFNMQSh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0xBPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTEEodCxuLCEwLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0U2hhZGVzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLGh0KHQsZSwhMCxVKG4sdCkpfSxuLmdldFRpbnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLGh0KHQsZSwhMSxVKG4sdCkpfSxuLmdldEhhcm1vbnk9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXIuQ09NUExFTUVOVEFSWSksdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09byYmKG89e30pLGZ1bmN0aW9uKHQsZSxuLGkpe3ZhciBvO3JldHVybihvPXt9LG9bci5BTkFMT0dPVVNdPXB0LmJ1aWxkSGFybW9ueShlLG50LG4saSksb1tyLkNPTVBMRU1FTlRBUlldPXB0LmJ1aWxkSGFybW9ueShlLHJ0LG4saSksb1tyLlNQTElUX0NPTVBMRU1FTlRBUlldPXB0LmJ1aWxkSGFybW9ueShlLGl0LG4saSksb1tyLlRSSUFESUNdPXB0LmJ1aWxkSGFybW9ueShlLG90LG4saSksb1tyLlRFVFJBRElDXT1wdC5idWlsZEhhcm1vbnkoZSxhdCxuLGkpLG9bci5TUVVBUkVdPXB0LmJ1aWxkSGFybW9ueShlLGN0LG4saSksbylbdF19KGUsdCxuLFUobyx0KSl9LG59KCk7ZXhwb3J0e0Z0IGFzIENvbG9yVHJhbnNsYXRvcixyIGFzIEhhcm1vbnksaSBhcyBNaXh9O1xuIiwgImltcG9ydCB7IEFwcCB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBDb2RlU3R5bGVyU2V0dGluZ3MsIENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzLCBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgQ29sb3VyLCBMQU5HVUFHRV9OQU1FUywgTEFOR1VBR0VfQ09MT1VSUyB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBpc0NzcyB9IGZyb20gXCIuL1NldHRpbmdzVGFiXCI7XG5cbmludGVyZmFjZSBUaGVtZVN0eWxlIHtcblx0Ym9yZGVyPzoge1xuXHRcdHNpemU6IG51bWJlcjtcblx0XHRzdHlsZTogc3RyaW5nO1xuXHR9LFxuXHRzY3JvbGxiYXI/OiBib29sZWFuO1xuXHRleHRyYT86IHN0cmluZztcbn1cblxuY29uc3QgU1RZTEVfSUQgPSBcImNvZGUtc3R5bGVyLXN0eWxlc1wiO1xuY29uc3QgVEhFTUVfU1RZTEVTOiBSZWNvcmQ8c3RyaW5nLFRoZW1lU3R5bGU+ID0ge1xuXHRcIlByaXNtXCI6IHtcblx0XHRib3JkZXI6IHtcblx0XHRcdHNpemU6IDEsXG5cdFx0XHRzdHlsZTogXCIxcHggc29saWQgdmFyKC0td2luZG93LWJvcmRlci1jb2xvcilcIixcblx0XHR9LFxuXHR9LFxuXHRcIlNoaW1tZXJpbmcgRm9jdXNcIjoge1xuXHRcdGJvcmRlcjoge1xuXHRcdFx0c2l6ZTogMSxcblx0XHRcdHN0eWxlOiBcInZhcigtLXRoaW4tbXV0ZWQtYm9yZGVyKVwiLFxuXHRcdH0sXG5cdH0sXG5cdFwiTWluaW1hbFwiOiB7XG5cdFx0ZXh0cmE6IGBcblx0XHRcdC5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202LmlzLXJlYWRhYmxlLWxpbmUtd2lkdGggOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdH1cblx0XHRgLFxuXHR9LFxuXHRcIk9ic2lkaWFuaXRlXCI6IHtcblx0XHRzY3JvbGxiYXI6IHRydWUsXG5cdH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVTdHlsaW5nKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MsIGFwcDogQXBwKTogdm9pZCB7XG5cdGNvbnN0IGN1cnJlbnRUaGVtZSA9IGdldEN1cnJlbnRUaGVtZShhcHApO1xuXHRsZXQgc3R5bGVUYWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChTVFlMRV9JRCk7XG5cdGlmICghc3R5bGVUYWcpIHtcblx0XHRzdHlsZVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcblx0XHRzdHlsZVRhZy5pZCA9IFNUWUxFX0lEO1xuXHRcdGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXS5hcHBlbmRDaGlsZChzdHlsZVRhZyk7XG5cdH1cblx0c3R5bGVUYWcuaW5uZXJUZXh0ID0gKHN0eWxlVGhlbWVDb2xvdXJzKHNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzKStzdHlsZVRoZW1lU2V0dGluZ3Moc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLGN1cnJlbnRUaGVtZSkrc3R5bGVMYW5ndWFnZUNvbG91cnMoc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLHNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzLGN1cnJlbnRUaGVtZSkpLnRyaW0oKS5yZXBsYWNlKC9cXHMrL2csXCIgXCIpO1xuXHRhZGRUaGVtZVNldHRpbmdzQ2xhc3NlcyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MpO1xufVxuXG5mdW5jdGlvbiBzdHlsZVRoZW1lQ29sb3VycyAodGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKHRoZW1lQ29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cykucmVkdWNlKChyZXN1bHQ6IHN0cmluZywgYWx0ZXJuYXRpdmVIaWdobGlnaHQ6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiByZXN1bHQgKyBgXG5cdFx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkLSR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfSB7XG5cdFx0XHRcdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLSR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfS1oaWdobGlnaHQtY29sb3VyKSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdGA7XG5cdH0sYFxuXHRcdGJvZHkuY29kZS1zdHlsZXIudGhlbWUtbGlnaHQge1xuXHRcdFx0JHtnZXRUaGVtZUNvbG91cnModGhlbWVDb2xvdXJzLmxpZ2h0KX1cblx0XHR9XG5cdFx0Ym9keS5jb2RlLXN0eWxlci50aGVtZS1kYXJrIHtcblx0XHRcdCR7Z2V0VGhlbWVDb2xvdXJzKHRoZW1lQ29sb3Vycy5kYXJrKX1cblx0XHR9XG5cdGApO1xufVxuXG5mdW5jdGlvbiBnZXRUaGVtZUNvbG91cnMgKHRoZW1lTW9kZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKHtcblx0XHRcImNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiY29kZWJsb2NrLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuY29kZWJsb2NrLnRleHRDb2xvdXIsXG5cdFx0XCJndXR0ZXItYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5ndXR0ZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcImd1dHRlci10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci50ZXh0Q29sb3VyLFxuXHRcdFwiZ3V0dGVyLWFjdGl2ZS10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci5hY3RpdmVUZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLWJhY2tncm91bmQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGVhZGVyLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XCJoZWFkZXItdGl0bGUtdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIudGl0bGUudGV4dENvbG91cixcblx0XHRcImhlYWRlci1sYW5ndWFnZS10YWctYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGFuZ3VhZ2VUYWcuYmFja2dyb3VuZENvbG91cixcblx0XHRcImhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dENvbG91cixcblx0XHRcImhlYWRlci1zZXBhcmF0b3ItY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGVhZGVyLmxpbmVDb2xvdXIsXG5cdFx0XCJhY3RpdmUtY29kZWJsb2NrLWxpbmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyLFxuXHRcdFwiYWN0aXZlLWVkaXRvci1saW5lLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZUNvbG91cixcblx0XHRcImRlZmF1bHQtaGlnaGxpZ2h0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhpZ2hsaWdodHMuZGVmYXVsdENvbG91cixcblx0XHRcImJ1dHRvbi1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5hZHZhbmNlZC5idXR0b25Db2xvdXIsXG5cdFx0XCJidXR0b24tYWN0aXZlLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmFkdmFuY2VkLmJ1dHRvbkFjdGl2ZUNvbG91cixcblx0XHRcImlubGluZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUudGV4dENvbG91cixcblx0XHRcImlubGluZS1jb2xvdXItYWN0aXZlXCI6IHRoZW1lTW9kZUNvbG91cnMuaW5saW5lLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XCJpbmxpbmUtYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUuYmFja2dyb3VuZENvbG91cixcblx0XHRcImlubGluZS10aXRsZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUudGl0bGVUZXh0Q29sb3VyLFxuXHRcdC4uLk9iamVjdC5lbnRyaWVzKHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLnJlZHVjZSgocmVzdWx0OiBSZWNvcmQ8c3RyaW5nLENvbG91cj4sW2FsdGVybmF0aXZlSGlnaGxpZ2h0LGNvbG91cl06IFtzdHJpbmcsQ29sb3VyXSk6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9PiB7XG5cdFx0XHRyZXN1bHRbYCR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfS1oaWdobGlnaHQtY29sb3VyYF0gPSBjb2xvdXI7XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0se30pXG5cdH0pLnJlZHVjZSgocmVzdWx0OiBzdHJpbmcsIFtjc3NWYXJpYWJsZSxjb2xvdXJdOiBbc3RyaW5nLENvbG91cl0pOiBzdHJpbmcgPT4ge1xuXHRcdGNvbnN0IHN0eWxlQ29sb3VyID0gaXNDc3MoY29sb3VyKT9gdmFyKCR7Y29sb3VyfSlgOmNvbG91cjtcblx0XHRyZXR1cm4gcmVzdWx0ICsgYC0tY29kZS1zdHlsZXItJHtjc3NWYXJpYWJsZX06ICR7c3R5bGVDb2xvdXJ9O2A7XG5cdH0sXCJcIik7XG59XG5cbmZ1bmN0aW9uIHN0eWxlVGhlbWVTZXR0aW5ncyAodGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIGN1cnJlbnRUaGVtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIGBcblx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWJvbGQ6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQ/XCJib2xkXCI6XCJub3JtYWxcIn07XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1pdGFsaWM6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEl0YWxpYz9cIml0YWxpY1wiOlwibm9ybWFsXCJ9O1xuXHRcdFx0Zm9udC1mYW1pbHk6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQhPT1cIlwiP3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250OlwidmFyKC0tZm9udC10ZXh0KVwifTtcblx0XHR9XG5cdFx0Ym9keS5jb2RlLXN0eWxlciAuY29kZS1zdHlsZXItaGVhZGVyLXRleHQge1xuXHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItdGl0bGUtdGV4dC1ib2xkOiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkP1wiYm9sZFwiOlwibm9ybWFsXCJ9O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItdGl0bGUtdGV4dC1pdGFsaWM6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEl0YWxpYz9cIml0YWxpY1wiOlwibm9ybWFsXCJ9O1xuXHRcdFx0Zm9udC1mYW1pbHk6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQhPT1cIlwiP3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250OlwidmFyKC0tZm9udC10ZXh0KVwifTtcblx0XHR9XG5cdFx0Ym9keS5jb2RlLXN0eWxlciB7XG5cdFx0XHQtLWJvcmRlci1yYWRpdXM6ICR7dGhlbWVTZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlfXB4O1xuXHRcdFx0LS1sYW5ndWFnZS1pY29uLXNpemU6ICR7dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZX1weDtcblx0XHRcdC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcDogJHt0aGVtZVNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cz90aGVtZVNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3A6XCIxMDAlXCJ9O1xuXHRcdFx0LS1oZWFkZXItZm9udC1zaXplOiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplfXB4O1xuXHRcdFx0LS1saW5lLXdyYXBwaW5nOiAke3RoZW1lU2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzP1wicHJlXCI6XCJwcmUtd3JhcFwifTtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLWZvbnQtd2VpZ2h0OiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHR9MDA7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzOiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZX1weDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctdmVydGljYWw6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsOiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWw6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbH1weDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWZvbnQtd2VpZ2h0OiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodH0wMDtcblx0XHRcdCR7IXRoZW1lU2V0dGluZ3MuY29kZWJsb2NrLndyYXBMaW5lc0FjdGl2ZT9cIlwiOlwiLS1saW5lLWFjdGl2ZS13cmFwcGluZzogcHJlLXdyYXA7XCJ9XG5cdFx0XHQke3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5Q29sb3VyP1wiXCI6XCItLWljb24tZmlsdGVyOiBncmF5c2NhbGUoMSk7XCJ9XG5cdFx0fVxuXHRcdCR7VEhFTUVfU1RZTEVTPy5bY3VycmVudFRoZW1lXT8uYm9yZGVyP2Bcblx0XHRcdC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRcdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXI6YCsgLy9AdHMtZXhwZWN0LWVycm9yIERvZXMgRXhpc3Rcblx0XHRcdFx0XHRUSEVNRV9TVFlMRVNbY3VycmVudFRoZW1lXS5ib3JkZXIuc3R5bGUrYDtcblx0XHRcdFx0LS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoLXBhZGRpbmc6IGNhbGModmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkgLSBgKyAvL0B0cy1leHBlY3QtZXJyb3IgRG9lcyBFeGlzdFxuXHRcdFx0XHRcdFRIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmJvcmRlci5zaXplK2BweCk7XG5cdFx0XHRcdC0tZm9sZGVkLWJvdHRvbS1ib3JkZXI6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXIpO1xuXHRcdFx0fVxuXHRcdGA6XCJcIn1cblx0XHQke1RIRU1FX1NUWUxFUz8uW2N1cnJlbnRUaGVtZV0/LnNjcm9sbGJhcj9gXG5cdFx0XHRwcmUuY29kZS1zdHlsZXItcHJlOjotd2Via2l0LXNjcm9sbGJhcixcblx0XHRcdHByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlOjotd2Via2l0LXNjcm9sbGJhciB7XG5cdFx0XHRcdHdpZHRoOiB2YXIoLS1jb2RlLXBhZGRpbmcpO1xuXHRcdFx0XHRoZWlnaHQ6IHZhcigtLWNvZGUtcGFkZGluZyk7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdFx0XHR9XG5cdFx0YDpcIlwifVxuXHRcdCR7VEhFTUVfU1RZTEVTPy5bY3VycmVudFRoZW1lXT8uZXh0cmE/VEhFTUVfU1RZTEVTW2N1cnJlbnRUaGVtZV0uZXh0cmE6XCJcIn1cblx0YDtcbn1cblxuZnVuY3Rpb24gc3R5bGVMYW5ndWFnZUNvbG91cnMgKHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCByZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT4sIGN1cnJlbnRUaGVtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKExBTkdVQUdFX05BTUVTKS5yZWR1Y2UoKHJlc3VsdDogc3RyaW5nLFtsYW5ndWFnZU5hbWUsIGxhbmd1YWdlRGlzcGxheU5hbWVdOiBbc3RyaW5nLHN0cmluZ10pOiBzdHJpbmcgPT4ge1xuXHRcdGlmIChsYW5ndWFnZURpc3BsYXlOYW1lIGluIExBTkdVQUdFX0NPTE9VUlMgfHwgKGxhbmd1YWdlTmFtZSBpbiByZWRpcmVjdExhbmd1YWdlcyAmJiBcImNvbG91clwiIGluIHJlZGlyZWN0TGFuZ3VhZ2VzW2xhbmd1YWdlTmFtZV0pKSB7XG5cdFx0XHRyZXN1bHQgKz0gYFxuXHRcdFx0XHQubGFuZ3VhZ2UtJHtsYW5ndWFnZU5hbWV9IHtcblx0XHRcdFx0XHQtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXI6ICR7cmVkaXJlY3RMYW5ndWFnZXM/LltsYW5ndWFnZU5hbWVdPy5bXCJjb2xvdXJcIl0gPz8gTEFOR1VBR0VfQ09MT1VSU1tsYW5ndWFnZURpc3BsYXlOYW1lXX07XG5cdFx0XHRcdFx0LS1sYW5ndWFnZS1ib3JkZXItd2lkdGg6ICR7dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cj90aGVtZVNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGg6MH1weDtcblx0XHRcdFx0fVxuXHRcdFx0YDtcblx0XHRcdGlmIChUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5ib3JkZXIpIHtcblx0XHRcdFx0cmVzdWx0ICs9IGBcblx0XHRcdFx0XHQubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLmxhbmd1YWdlLSR7bGFuZ3VhZ2VOYW1lfSAge1xuXHRcdFx0XHRcdFx0LS1sYW5ndWFnZS1ib3JkZXItd2lkdGg6ICR7IC8vQHRzLWV4cGVjdC1lcnJvciBEb2VzIGV4aXN0XG5cdHRoZW1lU2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXI/dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoK1RIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmJvcmRlci5zaXplOjB9cHg7XG5cdFx0XHRcdFx0fWA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0sXCJcIik7XG59XG5cbmZ1bmN0aW9uIGFkZFRoZW1lU2V0dGluZ3NDbGFzc2VzICh0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyk6IHZvaWQge1xuXHR0aGVtZVNldHRpbmdzLmlubGluZS5zdHlsZSA/IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLXN0eWxlLWlubGluZVwiKSA6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLXN0eWxlLWlubGluZVwiKTtcblx0dGhlbWVTZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0ID8gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodFwiKSA6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHRcIik7XG5cdHRoZW1lU2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUgPyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIikgOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIik7XG5cdFxuXHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHRcIixcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2tcIixcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1lZGl0b3JcIik7IC8vVE9ETyAoQG1heXVyYW5rdikgSXMgdGhpcyBzZWN0aW9uIG5lY2Vzc2FyeT8gSXMgdGhpcyBmdW5jdGlvbiBuZWNlc3Nhcnk/XG5cdGlmICh0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSAmJiB0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSkgLy8gSW5zaWRlIGFuZCBvdXRzaWRlIG9mIGNvZGVibG9ja3Mgd2l0aCBkaWZmZXJlbnQgY29sb3Vyc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodFwiKTtcblx0ZWxzZSBpZiAodGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgJiYgIXRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lKSAvLyBPbmx5IG91dHNpZGUgY29kZWJsb2Nrc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1lZGl0b3JcIik7XG5cdGVsc2UgaWYgKCF0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSAmJiB0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSkgLy8gT25seSBpbnNpZGUgY29kZWJsb2Nrc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2tcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVTdHlsZXNBbmRDbGFzc2VzKCk6IHZvaWQge1xuXHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZChTVFlMRV9JRCk/LnJlbW92ZSgpO1xuXHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXG5cdFx0XCJjb2RlLXN0eWxlclwiLFxuXHRcdFwiY29kZS1zdHlsZXItc2hvdy1saW5lLW51bWJlcnNcIixcblx0XHRcImNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHRcIixcblx0XHRcImNvZGUtc3R5bGVyLWd1dHRlci1hY3RpdmUtbGluZVwiLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VGhlbWUoYXBwOiBBcHApOiBzdHJpbmcge1xuXHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRyZXR1cm4gYXBwLnZhdWx0LmdldENvbmZpZyhcImNzc1RoZW1lXCIpO1xufVxuIiwgImltcG9ydCB7IGVkaXRvckVkaXRvckZpZWxkLCBlZGl0b3JJbmZvRmllbGQsIGVkaXRvckxpdmVQcmV2aWV3RmllbGQgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IEVkaXRvclZpZXcsIFZpZXdVcGRhdGUsIERlY29yYXRpb24sIERlY29yYXRpb25TZXQsIFdpZGdldFR5cGUgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuaW1wb3J0IHsgRXh0ZW5zaW9uLCBFZGl0b3JTdGF0ZSwgU3RhdGVGaWVsZCwgU3RhdGVFZmZlY3QsIFN0YXRlRWZmZWN0VHlwZSwgUmFuZ2UsIFJhbmdlU2V0QnVpbGRlciwgVHJhbnNhY3Rpb24sIExpbmUsIFNlbGVjdGlvblJhbmdlLCBDb21wYXJ0bWVudCB9IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuaW1wb3J0IHsgc3ludGF4VHJlZSwgdG9rZW5DbGFzc05vZGVQcm9wIH0gZnJvbSBcIkBjb2RlbWlycm9yL2xhbmd1YWdlXCI7XG5pbXBvcnQgeyBTeW50YXhOb2RlUmVmIH0gZnJvbSBcIkBsZXplci9jb21tb25cIjtcblxuaW1wb3J0IHsgQ29kZVN0eWxlclNldHRpbmdzLCBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgU1BFQ0lBTF9MQU5HVUFHRVMgfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgQ29kZWJsb2NrUGFyYW1ldGVycywgcGFyc2VDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0ZXN0T3BlbmluZ0xpbmUsIHRyaW1QYXJhbWV0ZXJMaW5lLCBpc0NvZGVibG9ja0lnbm9yZWQsIGlzTGFuZ3VhZ2VJZ25vcmVkIH0gZnJvbSBcIi4vUGFyc2luZy9Db2RlYmxvY2tQYXJzaW5nXCI7XG5pbXBvcnQgeyBJbmxpbmVDb2RlUGFyYW1ldGVycywgcGFyc2VJbmxpbmVDb2RlIH0gZnJvbSBcIi4vUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZ1wiO1xuaW1wb3J0IHsgY3JlYXRlSGVhZGVyLCBjcmVhdGVJbmxpbmVPcGVuZXIsIGdldExhbmd1YWdlSWNvbiwgZ2V0TGluZUNsYXNzLCBpc0hlYWRlckhpZGRlbiB9IGZyb20gXCIuL0NvZGVibG9ja0RlY29yYXRpbmdcIjtcbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuL21haW5cIjtcblxuaW50ZXJmYWNlIFNldHRpbmdzU3RhdGUge1xuXHRleGNsdWRlZExhbmd1YWdlczogc3RyaW5nO1xuXHRwcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb2RlYmxvY2tDb2RlTWlycm9yRXh0ZW5zaW9ucyhzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0Y29uc3QgbGl2ZVByZXZpZXdDb21wYXJ0bWVudCA9IG5ldyBDb21wYXJ0bWVudDtcblx0Y29uc3QgaWdub3JlQ29tcGFydG1lbnQgPSBuZXcgQ29tcGFydG1lbnQ7XG5cblx0Y29uc3QgaWdub3JlTGlzdGVuZXIgPSBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGU6IFZpZXdVcGRhdGUpID0+IHsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSBtYWtlIHRoaXMgc3RhcnRTdGF0ZSBvbmx5PyBEb2VzIGl0IG5lZWQgdG8gYmU/XG5cdFx0Y29uc3QgbGl2ZVByZXZpZXdFeHRlbnNpb25zID0gbGl2ZVByZXZpZXdDb21wYXJ0bWVudC5nZXQodXBkYXRlLnN0YXRlKTtcblx0XHRjb25zdCB0b0lnbm9yZSA9IGlzU291cmNlTW9kZSh1cGRhdGUuc3RhdGUpO1xuXHRcdGNvbnN0IGZpbGVJZ25vcmUgPSBpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgIShBcnJheS5pc0FycmF5KGxpdmVQcmV2aWV3RXh0ZW5zaW9ucykgJiYgbGl2ZVByZXZpZXdFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCk7XG5cdFx0Y29uc3QgZmlsZVVuaWdub3JlID0gIXRvSWdub3JlICYmICFpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgKEFycmF5LmlzQXJyYXkobGl2ZVByZXZpZXdFeHRlbnNpb25zKSAmJiBsaXZlUHJldmlld0V4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRpZiAoaXNTb3VyY2VNb2RlKHVwZGF0ZS5zdGFydFN0YXRlKSAhPT0gdG9JZ25vcmUgfHwgZmlsZUlnbm9yZSB8fCBmaWxlVW5pZ25vcmUpIHtcblx0XHRcdHVwZGF0ZS52aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBsaXZlUHJldmlld0NvbXBhcnRtZW50LnJlY29uZmlndXJlKCh0b0lnbm9yZXx8ZmlsZUlnbm9yZSk/W106W2hlYWRlckRlY29yYXRpb25zLGxpbmVEZWNvcmF0aW9ucyxmb2xkRGVjb3JhdGlvbnMsaGlkZGVuRGVjb3JhdGlvbnNdKX0pO1xuXHRcdFx0aWYgKCF0b0lnbm9yZSAmJiAhZmlsZUlnbm9yZSlcblx0XHRcdFx0dXBkYXRlLnZpZXcuZGlzcGF0Y2goe2VmZmVjdHM6IGZvbGRBbGwub2Yoe30pfSk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaWdub3JlRmlsZUxpc3RlbmVyID0gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodXBkYXRlOiBWaWV3VXBkYXRlKSA9PiB7XG5cdFx0Y29uc3QgaWdub3JlRXh0ZW5zaW9ucyA9IGlnbm9yZUNvbXBhcnRtZW50LmdldCh1cGRhdGUuc3RhdGUpO1xuXHRcdGNvbnN0IGZpbGVJZ25vcmUgPSBpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgIShBcnJheS5pc0FycmF5KGlnbm9yZUV4dGVuc2lvbnMpICYmIGlnbm9yZUV4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRjb25zdCBmaWxlVW5pZ25vcmUgPSAhaXNGaWxlSWdub3JlZCh1cGRhdGUuc3RhdGUpICYmIChBcnJheS5pc0FycmF5KGlnbm9yZUV4dGVuc2lvbnMpICYmIGlnbm9yZUV4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRpZiAoZmlsZUlnbm9yZSB8fCBmaWxlVW5pZ25vcmUpXG5cdFx0XHR1cGRhdGUudmlldy5kaXNwYXRjaCh7ZWZmZWN0czogaWdub3JlQ29tcGFydG1lbnQucmVjb25maWd1cmUoZmlsZUlnbm9yZT9bXTppbmxpbmVEZWNvcmF0aW9ucyl9KTtcblx0fSk7XG5cblx0Y29uc3Qgc2V0dGluZ3NTdGF0ZSA9IFN0YXRlRmllbGQuZGVmaW5lPFNldHRpbmdzU3RhdGU+KHtcblx0XHRjcmVhdGUoKTogU2V0dGluZ3NTdGF0ZSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRleGNsdWRlZExhbmd1YWdlczogc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMsXG5cdFx0XHRcdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QsXG5cdFx0XHR9O1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBTZXR0aW5nc1N0YXRlKTogU2V0dGluZ3NTdGF0ZSB7XG5cdFx0XHRpZiAodmFsdWUucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCAhPT0gc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCB8fCB2YWx1ZS5leGNsdWRlZExhbmd1YWdlcyAhPT0gc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpXG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0ZXhjbHVkZWRMYW5ndWFnZXM6IHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLFxuXHRcdFx0XHRcdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QsXG5cdFx0XHRcdH07XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgY2hhcldpZHRoU3RhdGUgPSBTdGF0ZUZpZWxkLmRlZmluZTxudW1iZXI+KHsgLy9UT0RPIChAbWF5dXJhbmt2KSBJbXByb3ZlIGltcGxlbWVudGF0aW9uXG5cdFx0Y3JlYXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IG51bWJlciB7XG5cdFx0XHRyZXR1cm4oc3RhdGUuZmllbGQoZWRpdG9yRWRpdG9yRmllbGQpLmRlZmF1bHRDaGFyYWN0ZXJXaWR0aCAqIDEuMTA1KTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBudW1iZXIge1xuXHRcdFx0cmV0dXJuKHRyYW5zYWN0aW9uLnN0YXRlLmZpZWxkKGVkaXRvckVkaXRvckZpZWxkKS5kZWZhdWx0Q2hhcmFjdGVyV2lkdGggKiAxLjEwNSk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaGVhZGVyRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7IC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlIChkb2VzIHRoaXMgbmVlZCB0byBiZSB1cGRhdGVkIGluIHRoaXMgbWFubmVyPylcblx0XHRjcmVhdGUoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRyZXR1cm4gYnVpbGRIZWFkZXJEZWNvcmF0aW9ucyhzdGF0ZSk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkSGVhZGVyRGVjb3JhdGlvbnModHJhbnNhY3Rpb24uc3RhdGUsKHBvc2l0aW9uKT0+aXNGb2xkZWQodHJhbnNhY3Rpb24uc3RhdGUscG9zaXRpb24pKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgbGluZURlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oeyAvL1RPRE8gKEBtYXl1cmFua3YpIERlYWwgd2l0aCBzb3VyY2UgbW9kZSAtIG1ha2UgYXBwbHkgc3R5bGluZyBpbiBzb3VyY2UgbW9kZVxuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZExpbmVEZWNvcmF0aW9ucyhzdGF0ZSk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkTGluZURlY29yYXRpb25zKHRyYW5zYWN0aW9uLnN0YXRlKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgZm9sZERlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oe1xuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSBjaGFuZ2UgdGhpcz9cblx0XHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdFx0aWYgKCFpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkKVxuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0XHRidWlsZGVyLmFkZChmb2xkU3RhcnQuZnJvbSxmb2xkRW5kLnRvLGZvbGREZWNvcmF0aW9uKChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogRGVjb3JhdGlvblNldCwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKS51cGRhdGUoe2ZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlcik9PmZyb20hPT10b30pO1xuXHRcdFx0dmFsdWUgPSB2YWx1ZS51cGRhdGUoe2FkZDogdHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT4oZWZmZWN0LmlzKGZvbGQpfHxlZmZlY3QuaXModW5oaWRlRm9sZCkpKS5tYXAoZWZmZWN0PT5mb2xkUmVnaW9uKGVmZmVjdC52YWx1ZSkpfSk7IC8vVE9ETyAoQG1heXVyYW5rdikgQ2FuIEkgcmVtb3ZlIGAsIHNvcnQ6IHRydWVgXG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PihlZmZlY3QuaXModW5mb2xkKXx8ZWZmZWN0LmlzKGhpZGVGb2xkKSkpLmZvckVhY2goZWZmZWN0PT52YWx1ZT12YWx1ZS51cGRhdGUodW5mb2xkUmVnaW9uKGVmZmVjdC52YWx1ZSkpKTtcblx0XHRcdHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+ZWZmZWN0LmlzKHJlbW92ZUZvbGQpKS5mb3JFYWNoKGVmZmVjdD0+dmFsdWU9dmFsdWUudXBkYXRlKHJlbW92ZUZvbGRMYW5ndWFnZXMoZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH0sXG5cdFx0cHJvdmlkZShmaWVsZDogU3RhdGVGaWVsZDxEZWNvcmF0aW9uU2V0Pik6IEV4dGVuc2lvbiB7XG5cdFx0XHRyZXR1cm4gRWRpdG9yVmlldy5kZWNvcmF0aW9ucy5mcm9tKGZpZWxkKTtcblx0XHR9LFxuXHR9KTtcblx0Y29uc3QgaGlkZGVuRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7XG5cdFx0Y3JlYXRlKCk6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIERlY29yYXRpb24ubm9uZTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogRGVjb3JhdGlvblNldCwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRpZiAodHJhbnNhY3Rpb24uZWZmZWN0cy5zb21lKGVmZmVjdD0+ZWZmZWN0LmlzKGZvbGRBbGwpKSlcblx0XHRcdFx0cmV0dXJuIERlY29yYXRpb24ubm9uZTtcblx0XHRcdHZhbHVlID0gdmFsdWUubWFwKHRyYW5zYWN0aW9uLmNoYW5nZXMpLnVwZGF0ZSh7ZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKT0+ZnJvbSE9PXRvfSk7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLnVwZGF0ZSh7YWRkOiB0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyhoaWRlRm9sZCkpLm1hcChlZmZlY3Q9PmVmZmVjdC52YWx1ZSl9KTsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSByZW1vdmUgYCwgc29ydDogdHJ1ZWBcblx0XHRcdHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+ZWZmZWN0LmlzKHVuaGlkZUZvbGQpKS5mb3JFYWNoKGVmZmVjdD0+dmFsdWU9dmFsdWUudXBkYXRlKHVuaGlkZUZvbGRVcGRhdGUoZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0dHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT5lZmZlY3QuaXMocmVtb3ZlRm9sZCkpLmZvckVhY2goZWZmZWN0PT52YWx1ZT12YWx1ZS51cGRhdGUocmVtb3ZlRm9sZExhbmd1YWdlcyhlZmZlY3QudmFsdWUpKSk7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaW5saW5lRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7XG5cdFx0Y3JlYXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGUpO1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBEZWNvcmF0aW9uU2V0LCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZElubGluZURlY29yYXRpb25zKHRyYW5zYWN0aW9uLnN0YXRlKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblxuXHRmdW5jdGlvbiBzZXR0aW5nc0NoYW5nZUV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbikgPT4ge1xuXHRcdFx0bGV0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0Y29uc3QgaW5pdGlhbFNldHRpbmdzID0gdHJhbnNhY3Rpb24uc3RhcnRTdGF0ZS5maWVsZChzZXR0aW5nc1N0YXRlKTtcblx0XHRcdGxldCByZWFkZEZvbGRMYW5ndWFnZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0XHRcdGxldCByZW1vdmVGb2xkTGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cdFx0XHRpZiAoaW5pdGlhbFNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QgIT09IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpIHtcblx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0Y29uc3QgY29kZWJsb2NrUHJvY2Vzc29ycyA9IE9iamVjdC5rZXlzKE1hcmtkb3duUHJldmlld1JlbmRlcmVyLmNvZGVCbG9ja1Bvc3RQcm9jZXNzb3JzKTtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcyA9IGNvZGVibG9ja1Byb2Nlc3NvcnMuZmlsdGVyKGxhbmc9PiFpbml0aWFsU2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdC5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKS5pbmNsdWRlcyhsYW5nKSk7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MgPSBjb2RlYmxvY2tQcm9jZXNzb3JzLmZpbHRlcihsYW5nPT4hc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdC5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKS5pbmNsdWRlcyhsYW5nKSk7XG5cdFx0XHRcdHJlbW92ZUZvbGRMYW5ndWFnZXMgPSByZW1vdmVGb2xkTGFuZ3VhZ2VzLmNvbmNhdChzZXREaWZmZXJlbmNlKGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MsaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHRcdHJlYWRkRm9sZExhbmd1YWdlcyA9IHJlYWRkRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShpbml0aWFsRXhjbHVkZWRDb2RlYmxvY2tzLGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MpIGFzIEFycmF5PHN0cmluZz4pO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGluaXRpYWxTZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcyAhPT0gc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpIHtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbEV4Y2x1ZGVkTGFuZ3VhZ2VzID0gaW5pdGlhbFNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLnNwbGl0KFwiLFwiKS5tYXAobGFuZz0+bGFuZy50cmltKCkpO1xuXHRcdFx0XHRjb25zdCBjdXJyZW50RXhjbHVkZWRMYW5ndWFnZXMgPSBzZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcy5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKTtcblx0XHRcdFx0cmVtb3ZlRm9sZExhbmd1YWdlcyA9IHJlbW92ZUZvbGRMYW5ndWFnZXMuY29uY2F0KHNldERpZmZlcmVuY2UoY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzLGluaXRpYWxFeGNsdWRlZExhbmd1YWdlcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHRcdHJlYWRkRm9sZExhbmd1YWdlcyA9IHJlYWRkRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShpbml0aWFsRXhjbHVkZWRMYW5ndWFnZXMsY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzKSBhcyBBcnJheTxzdHJpbmc+KTtcblx0XHRcdH1cblx0XHRcdGlmIChyZW1vdmVGb2xkTGFuZ3VhZ2VzLmxlbmd0aCAhPT0gMClcblx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKHJlbW92ZUZvbGQub2YocmVtb3ZlRm9sZExhbmd1YWdlcykpO1xuXHRcdFx0aWYgKHJlYWRkRm9sZExhbmd1YWdlcy5sZW5ndGggIT09IDApXG5cdFx0XHRcdGFkZEVmZmVjdHMgPSBhZGRFZmZlY3RzLmNvbmNhdChjb252ZXJ0UmVhZGRGb2xkKHRyYW5zYWN0aW9uLHJlYWRkRm9sZExhbmd1YWdlcykpO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0ZnVuY3Rpb24gY3Vyc29yRm9sZEV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcblx0XHRcdGNvbnN0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0Y29uc3QgZm9sZERlY29yYXRpb25zU3RhdGUgPSB0cmFuc2FjdGlvbi5zdGFydFN0YXRlLmZpZWxkKGZvbGREZWNvcmF0aW9ucyxmYWxzZSk/Lm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHRjb25zdCBoaWRkZW5EZWNvcmF0aW9uc1N0YXRlID0gdHJhbnNhY3Rpb24uc3RhcnRTdGF0ZS5maWVsZChoaWRkZW5EZWNvcmF0aW9ucyxmYWxzZSk/Lm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHR0cmFuc2FjdGlvbi5uZXdTZWxlY3Rpb24ucmFuZ2VzLmZvckVhY2goKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9Pntcblx0XHRcdFx0Zm9sZERlY29yYXRpb25zU3RhdGUuYmV0d2VlbihyYW5nZS5mcm9tLCByYW5nZS50bywgKGZvbGRGcm9tLCBmb2xkVG8sIGRlY29yYXRpb25WYWx1ZSkgPT4ge1xuXHRcdFx0XHRcdGlmIChyYW5nZUludGVyYWN0aW9uKGZvbGRGcm9tLGZvbGRUbyxyYW5nZSkpXG5cdFx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2goaGlkZUZvbGQub2Yoe2Zyb206IGZvbGRGcm9tLCB0bzogZm9sZFRvLCB2YWx1ZTogZGVjb3JhdGlvblZhbHVlfSkpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Zm9yIChsZXQgaXRlciA9IGhpZGRlbkRlY29yYXRpb25zU3RhdGUuaXRlcigpOyBpdGVyLnZhbHVlICE9PSBudWxsOyBpdGVyLm5leHQoKSkge1xuXHRcdFx0XHRcdGlmICghcmFuZ2VJbnRlcmFjdGlvbihpdGVyLmZyb20saXRlci50byxyYW5nZSkpXG5cdFx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2godW5oaWRlRm9sZC5vZih7ZnJvbTogaXRlci5mcm9tLCB0bzogaXRlci50bywgdmFsdWU6IGl0ZXIudmFsdWV9KSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0ZnVuY3Rpb24gZG9jdW1lbnRGb2xkRXh0ZW5kZXIoKSB7XG5cdFx0cmV0dXJuIEVkaXRvclN0YXRlLnRyYW5zYWN0aW9uRXh0ZW5kZXIub2YoKHRyYW5zYWN0aW9uKSA9PiB7XG5cdFx0XHRsZXQgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyhmb2xkQWxsKSkuZm9yRWFjaChlZmZlY3Q9Pntcblx0XHRcdFx0aWYgKHR5cGVvZiBlZmZlY3QudmFsdWU/LnRvRm9sZCAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdFx0XHRhZGRFZmZlY3RzID0gYWRkRWZmZWN0cy5jb25jYXQoZG9jdW1lbnRGb2xkKHRyYW5zYWN0aW9uLnN0YXJ0U3RhdGUsZWZmZWN0LnZhbHVlLnRvRm9sZCkpOyAvL1RPRE8gKEBtYXl1cmFua3YpIERvZXMgdGhpcyBuZWVkIHRvIGJlIHN0YXRlXG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRhZGRFZmZlY3RzID0gYWRkRWZmZWN0cy5jb25jYXQoZG9jdW1lbnRGb2xkKHRyYW5zYWN0aW9uLnN0YXJ0U3RhdGUpKTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBVcmdlbnQ6IEF1dG8gYWRkIHRlbXAgdW5mb2xkIG9uIHR5cGUgb2YgZm9sZCBhbmQgcmVtb3ZlIGJvdGggZm9sZCBhbmQgdGVtcCB1bmZvbGQgZm9yIHJlbW92YWxcblxuXHRjbGFzcyBMaW5lTnVtYmVyV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0bGluZU51bWJlcjogbnVtYmVyO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0bWF4TGluZU51bTogbnVtYmVyO1xuXHRcdGVtcHR5OiBib29sZWFuO1xuXHRcblx0XHRjb25zdHJ1Y3RvcihsaW5lTnVtYmVyOiBudW1iZXIsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIG1heExpbmVOdW06IG51bWJlciwgZW1wdHk6IGJvb2xlYW4gPSBmYWxzZSkge1xuXHRcdFx0c3VwZXIoKTtcblx0XHRcdHRoaXMubGluZU51bWJlciA9IGxpbmVOdW1iZXI7XG5cdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRcdFx0dGhpcy5tYXhMaW5lTnVtID0gbWF4TGluZU51bTtcblx0XHRcdHRoaXMuZW1wdHkgPSBlbXB0eTtcblx0XHR9XG5cdFxuXHRcdGVxKG90aGVyOiBMaW5lTnVtYmVyV2lkZ2V0KTogYm9vbGVhbiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5saW5lTnVtYmVyID09PSBvdGhlci5saW5lTnVtYmVyICYmIHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgJiYgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkICYmIHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0ICYmIHRoaXMubWF4TGluZU51bSA9PT0gb3RoZXIubWF4TGluZU51bSAmJiB0aGlzLmVtcHR5ID09PSBvdGhlci5lbXB0eTtcblx0XHR9XG5cdFxuXHRcdHRvRE9NKCk6IEhUTUxFbGVtZW50IHtcblx0XHRcdHJldHVybiBjcmVhdGVTcGFuKHthdHRyOiB7c3R5bGU6IHRoaXMubWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCA+ICh0aGlzLmxpbmVOdW1iZXIgKyB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpLmxlbmd0aD9cIndpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpO1wiOlwiXCJ9LCBjbHM6IFwiY29kZS1zdHlsZXItbGluZS1udW1iZXJcIiwgdGV4dDogdGhpcy5lbXB0eT9cIlwiOih0aGlzLmxpbmVOdW1iZXIgKyB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpfSk7XG5cdFx0fVxuXHR9XG5cdGNsYXNzIEhlYWRlcldpZGdldCBleHRlbmRzIFdpZGdldFR5cGUge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0dGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3M7XG5cdFx0c291cmNlUGF0aDogc3RyaW5nO1xuXHRcdHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbjtcblx0XHRpY29uVVJMOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdFx0Zm9sZGVkOiBib29sZWFuO1xuXHRcdGhpZGRlbjogYm9vbGVhbjtcblx0XG5cdFx0Y29uc3RydWN0b3IoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgZm9sZGVkOiBib29sZWFuLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMgPSBzdHJ1Y3R1cmVkQ2xvbmUoY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhlbWVTZXR0aW5ncyk7XG5cdFx0XHR0aGlzLnNvdXJjZVBhdGggPSBzb3VyY2VQYXRoO1xuXHRcdFx0dGhpcy5wbHVnaW4gPSBwbHVnaW47XG5cdFx0XHR0aGlzLmljb25VUkwgPSBnZXRMYW5ndWFnZUljb24odGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpO1xuXHRcdFx0dGhpcy5mb2xkZWQgPSBmb2xkZWQ7XG5cdFx0XHR0aGlzLmhpZGRlbiA9IGlzSGVhZGVySGlkZGVuKHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyx0aGlzLnRoZW1lU2V0dGluZ3MsdGhpcy5pY29uVVJMKTtcblx0XHR9XG5cdFx0XHRcblx0XHRlcShvdGhlcjogSGVhZGVyV2lkZ2V0KTogYm9vbGVhbiB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlICYmXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlICYmXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkICYmXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLnBsYWNlaG9sZGVyID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQucGxhY2Vob2xkZXIgJiZcblx0XHRcdFx0dGhpcy50aGVtZVNldHRpbmdzLmhlYWRlci5mb2xkUGxhY2Vob2xkZXIgPT09IG90aGVyLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciAmJlxuXHRcdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBvdGhlci50aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSAmJlxuXHRcdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IG90aGVyLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgJiZcblx0XHRcdFx0dGhpcy5mb2xkZWQgPT09IG90aGVyLmZvbGRlZCAmJlxuXHRcdFx0XHR0aGlzLmljb25VUkwgPT09IG90aGVyLmljb25VUkxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdFx0XG5cdFx0dG9ET00odmlldzogRWRpdG9yVmlldyk6IEhUTUxFbGVtZW50IHtcblx0XHRcdGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IGNyZWF0ZUhlYWRlcih0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMsdGhpcy50aGVtZVNldHRpbmdzLHRoaXMuc291cmNlUGF0aCx0aGlzLnBsdWdpbik7XG5cdFx0XHRpZiAodGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlIT09XCJcIilcblx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYGxhbmd1YWdlLSR7dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApO1xuXHRcdFx0aWYgKHRoaXMuZm9sZGVkKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWhlYWRlci1mb2xkZWRcIik7XG5cdFx0XHRoZWFkZXJDb250YWluZXIub25jbGljayA9IChldmVudCkgPT4ge1xuXHRcdFx0XHRpZiAoIShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpPy5jbGFzc0xpc3Q/LmNvbnRhaW5zKFwiaW50ZXJuYWwtbGlua1wiKSlcblx0XHRcdFx0XHRmb2xkT25DbGljayh2aWV3LGhlYWRlckNvbnRhaW5lcix0aGlzLmZvbGRlZCx0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpO1xuXHRcdFx0fTtcblx0XHRcdHJldHVybiBoZWFkZXJDb250YWluZXI7XG5cdFx0fVxuXHR9XG5cdGNsYXNzIE9wZW5lcldpZGdldCBleHRlbmRzIFdpZGdldFR5cGUge1xuXHRcdGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycztcblx0XHRwbHVnaW46IENvZGVTdHlsZXJQbHVnaW47XG5cblx0XHRjb25zdHJ1Y3RvciAoaW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzID0gaW5saW5lQ29kZVBhcmFtZXRlcnM7XG5cdFx0XHR0aGlzLnBsdWdpbiA9IHBsdWdpbjtcblx0XHR9XG5cblx0XHRlcShvdGhlcjogT3BlbmVyV2lkZ2V0KTogYm9vbGVhbiB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlID09IG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlICYmXG5cdFx0XHRcdHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUgPT0gb3RoZXIuaW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUgJiZcblx0XHRcdFx0dGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uID09IG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLmljb24gJiZcblx0XHRcdFx0Z2V0TGFuZ3VhZ2VJY29uKHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMubGFuZ3VhZ2UsdGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29ucykgPT0gZ2V0TGFuZ3VhZ2VJY29uKG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlLG90aGVyLnBsdWdpbi5sYW5ndWFnZUljb25zKVxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHR0b0RPTSgpOiBIVE1MRWxlbWVudCB7XG5cdFx0XHRyZXR1cm4gY3JlYXRlSW5saW5lT3BlbmVyKHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMsdGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29ucyxbXCJjb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyXCIsXCJjbS1pbmxpbmUtY29kZVwiXSk7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gYnVpbGRIZWFkZXJEZWNvcmF0aW9ucyhzdGF0ZTogRWRpdG9yU3RhdGUsIGZvbGRWYWx1ZTogKHBvc2l0aW9uOiBudW1iZXIsIGRlZmF1bHRGb2xkOiBib29sZWFuKT0+Ym9vbGVhbiA9IChwb3NpdGlvbixkZWZhdWx0Rm9sZCk9PmRlZmF1bHRGb2xkKSB7XG5cdFx0Y29uc3QgYnVpbGRlciA9IG5ldyBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4oKTtcblx0XHRjb25zdCBzb3VyY2VQYXRoID0gc3RhdGUuZmllbGQoZWRpdG9ySW5mb0ZpZWxkKT8uZmlsZT8ucGF0aCA/PyBcIlwiO1xuXHRcdGxldCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRcdHN5bnRheFRyZWUoc3RhdGUpLml0ZXJhdGUoe1xuXHRcdFx0ZW50ZXI6IChzeW50YXhOb2RlKSA9PiB7XG5cdFx0XHRcdGlmIChzeW50YXhOb2RlLnR5cGUubmFtZS5pbmNsdWRlcyhcIkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luXCIpKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc3RhcnRMaW5lID0gc3RhdGUuZG9jLmxpbmVBdChzeW50YXhOb2RlLmZyb20pO1xuXHRcdFx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwYXJzZUNvZGVibG9ja1BhcmFtZXRlcnModHJpbVBhcmFtZXRlckxpbmUoc3RhcnRMaW5lLnRleHQudG9TdHJpbmcoKSksc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFx0XHRpZiAoIWlzTGFuZ3VhZ2VJZ25vcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2Usc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpICYmICFpc0NvZGVibG9ja0lnbm9yZWQoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxzZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSAmJiAhY29kZWJsb2NrUGFyYW1ldGVycy5pZ25vcmUpIHtcblx0XHRcdFx0XHRcdGlmICghU1BFQ0lBTF9MQU5HVUFHRVMuc29tZShyZWdFeHAgPT4gbmV3IFJlZ0V4cChyZWdFeHApLnRlc3QoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpKVxuXHRcdFx0XHRcdFx0XHRidWlsZGVyLmFkZChzdGFydExpbmUuZnJvbSxzdGFydExpbmUuZnJvbSxEZWNvcmF0aW9uLndpZGdldCh7d2lkZ2V0OiBuZXcgSGVhZGVyV2lkZ2V0KGNvZGVibG9ja1BhcmFtZXRlcnMsZm9sZFZhbHVlKHN0YXJ0TGluZS5mcm9tLGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkKSxzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3Msc291cmNlUGF0aCxwbHVnaW4pLCBibG9jazogdHJ1ZSwgc2lkZTogLTF9KSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIGJ1aWxkZXIuZmluaXNoKCk7XG5cdH1cblx0ZnVuY3Rpb24gYnVpbGRMaW5lRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0Y29uc3QgYnVpbGRlciA9IG5ldyBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4oKTtcblx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdGNvbnN0IGZvbGRTdGFydCA9IHN0YXRlLmRvYy5saW5lQXQoaXRlci5mcm9tKTtcblx0XHRcdGNvbnN0IHN0YXJ0RGVsaW1pdGVyID0gdGVzdE9wZW5pbmdMaW5lKGZvbGRTdGFydC50ZXh0LnRvU3RyaW5nKCkpO1xuXHRcdFx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVycyA9IGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRcdGNvbnN0IHNob3dMaW5lTnVtYmVycyA9IChzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQ7XG5cdFx0XHRsZXQgZm9sZEVuZDogTGluZSB8IG51bGwgPSBudWxsO1xuXHRcdFx0bGV0IG1heExpbmVOdW06IG51bWJlciA9IDA7XG5cdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0bWF4TGluZU51bSA9IGZvbGRFbmQudG8tZm9sZFN0YXJ0LmZyb20tMStjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldDtcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgbGluZU51bWJlck1hcmdpbiA9IChtYXhMaW5lTnVtLnRvU3RyaW5nKCkubGVuZ3RoID4gMik/bWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCAqIHN0YXRlLmZpZWxkKGNoYXJXaWR0aFN0YXRlKTp1bmRlZmluZWQ7XG5cdFx0XHRidWlsZGVyLmFkZChmb2xkU3RhcnQuZnJvbSxmb2xkU3RhcnQuZnJvbSxEZWNvcmF0aW9uLmxpbmUoe2F0dHJpYnV0ZXM6IHtzdHlsZTogYC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoOiAke2xpbmVOdW1iZXJNYXJnaW4/bGluZU51bWJlck1hcmdpbitcInB4XCI6XCJjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweClcIn07YCwgY2xhc3M6IFwiY29kZS1zdHlsZXItbGluZVwiKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdGlmIChzaG93TGluZU51bWJlcnMpXG5cdFx0XHRcdGJ1aWxkZXIuYWRkKGZvbGRTdGFydC5mcm9tLGZvbGRTdGFydC5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KDAsY29kZWJsb2NrUGFyYW1ldGVycyxtYXhMaW5lTnVtLHRydWUpfSkpO1xuXHRcdFx0Zm9yIChsZXQgaSA9IGZvbGRTdGFydC5udW1iZXIrMTsgaSA8PSBzdGF0ZS5kb2MubGluZXM7IGkrKykge1xuXHRcdFx0XHRjb25zdCBsaW5lID0gc3RhdGUuZG9jPy5saW5lKGkpO1xuXHRcdFx0XHRpZiAoIWxpbmUpXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNvbnN0IGxpbmVUZXh0ID0gbGluZS50ZXh0LnRvU3RyaW5nKCk7XG5cdFx0XHRcdGlmICh0ZXN0T3BlbmluZ0xpbmUobGluZVRleHQpID09PSBzdGFydERlbGltaXRlcikge1xuXHRcdFx0XHRcdGZvbGRFbmQgPSBsaW5lO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJ1aWxkZXIuYWRkKGxpbmUuZnJvbSxsaW5lLmZyb20sRGVjb3JhdGlvbi5saW5lKHthdHRyaWJ1dGVzOiB7c3R5bGU6IGAtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aDogJHtsaW5lTnVtYmVyTWFyZ2luP2xpbmVOdW1iZXJNYXJnaW4rXCJweFwiOlwiY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKSAtIDEycHgpXCJ9O2AsIGNsYXNzOiAoKFNQRUNJQUxfTEFOR1VBR0VTLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKSk/XCJjb2RlLXN0eWxlci1saW5lXCI6Z2V0TGluZUNsYXNzKGNvZGVibG9ja1BhcmFtZXRlcnMsaS1mb2xkU3RhcnQubnVtYmVyLGxpbmUudGV4dCkuam9pbihcIiBcIikpKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdFx0aWYgKHNob3dMaW5lTnVtYmVycylcblx0XHRcdFx0XHRidWlsZGVyLmFkZChsaW5lLmZyb20sbGluZS5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KGktZm9sZFN0YXJ0Lm51bWJlcixjb2RlYmxvY2tQYXJhbWV0ZXJzLG1heExpbmVOdW0pfSkpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGZvbGRFbmQgIT09IG51bGwpIHtcblx0XHRcdFx0YnVpbGRlci5hZGQoZm9sZEVuZC5mcm9tLGZvbGRFbmQuZnJvbSxEZWNvcmF0aW9uLmxpbmUoe2F0dHJpYnV0ZXM6IHtzdHlsZTogYC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoOiAke2xpbmVOdW1iZXJNYXJnaW4/bGluZU51bWJlck1hcmdpbitcInB4XCI6XCJjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweClcIn07YCwgY2xhc3M6IFwiY29kZS1zdHlsZXItbGluZVwiKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdFx0aWYgKHNob3dMaW5lTnVtYmVycylcblx0XHRcdFx0XHRidWlsZGVyLmFkZChmb2xkRW5kLmZyb20sZm9sZEVuZC5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KDAsY29kZWJsb2NrUGFyYW1ldGVycyxtYXhMaW5lTnVtLHRydWUpfSkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0fVxuXHRmdW5jdGlvbiBidWlsZElubGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdGlmICghc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQpXG5cdFx0XHRyZXR1cm4gRGVjb3JhdGlvbi5ub25lO1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0Y29uc3Qgc291cmNlTW9kZSA9IGlzU291cmNlTW9kZShzdGF0ZSk7XG5cdFx0c3ludGF4VHJlZShzdGF0ZSkuaXRlcmF0ZSh7XG5cdFx0XHRlbnRlcjogKHN5bnRheE5vZGUpPT57XG5cdFx0XHRcdGNvbnN0IHJhbmdlcyA9IGdldElubGluZUNvZGVSYW5nZXMoc3RhdGUsc3ludGF4Tm9kZSk7XG5cdFx0XHRcdGlmIChyYW5nZXMgPT09IG51bGwpXG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRjb25zdCB7cGFyYW1ldGVycyx0ZXh0LHNlY3Rpb259ID0gcmFuZ2VzO1xuXHRcdFx0XHRpZiAocGFyYW1ldGVycy52YWx1ZSA9PT0gbnVsbClcblx0XHRcdFx0XHRhZGRVbnN0eWxlZElubGluZURlY29yYXRpb25zKHN0YXRlLGJ1aWxkZXIscGFyYW1ldGVycyBhcyB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogbnVsbH0sdGV4dCxzZWN0aW9uLHNvdXJjZU1vZGUpO1xuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0YWRkU3R5bGVkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGUsYnVpbGRlcixwYXJhbWV0ZXJzIGFzIHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBJbmxpbmVDb2RlUGFyYW1ldGVyc30sdGV4dCxzZWN0aW9uLHNvdXJjZU1vZGUpO1xuXHRcdFx0fSxcblx0XHR9KTtcblx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0fVxuXHRmdW5jdGlvbiBhZGRTdHlsZWRJbmxpbmVEZWNvcmF0aW9ucyhzdGF0ZTogRWRpdG9yU3RhdGUsIGJ1aWxkZXI6IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPiwgcGFyYW1ldGVyczoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IElubGluZUNvZGVQYXJhbWV0ZXJzfSwgdGV4dDoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHN0cmluZ30sIHNlY3Rpb246IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9LCBzb3VyY2VNb2RlOiBib29sZWFuKSB7XG5cdFx0aWYgKHNvdXJjZU1vZGUgfHwgc3RhdGUuc2VsZWN0aW9uLnJhbmdlcy5zb21lKChyYW5nZTogU2VsZWN0aW9uUmFuZ2UpPT5yYW5nZS50byA+PSBzZWN0aW9uLmZyb20gJiYgcmFuZ2UuZnJvbSA8PSBzZWN0aW9uLnRvKSlcblx0XHRcdGJ1aWxkZXIuYWRkKHBhcmFtZXRlcnMuZnJvbSwgcGFyYW1ldGVycy50bywgRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogXCJjb2RlLXN0eWxlci1pbmxpbmUtcGFyYW1ldGVyc1wifSkpO1xuXHRcdGVsc2Uge1xuXHRcdFx0YnVpbGRlci5hZGQocGFyYW1ldGVycy5mcm9tLCBwYXJhbWV0ZXJzLnRvLCBEZWNvcmF0aW9uLnJlcGxhY2Uoe30pKTtcblx0XHRcdGlmIChwYXJhbWV0ZXJzLnZhbHVlPy50aXRsZSB8fCAocGFyYW1ldGVycy52YWx1ZT8uaWNvbiAmJiBnZXRMYW5ndWFnZUljb24ocGFyYW1ldGVycy52YWx1ZS5sYW5ndWFnZSxwbHVnaW4ubGFuZ3VhZ2VJY29ucykpKVxuXHRcdFx0XHRidWlsZGVyLmFkZChwYXJhbWV0ZXJzLmZyb20sIHBhcmFtZXRlcnMuZnJvbSwgRGVjb3JhdGlvbi5yZXBsYWNlKHt3aWRnZXQ6IG5ldyBPcGVuZXJXaWRnZXQocGFyYW1ldGVycy52YWx1ZSxwbHVnaW4pfSkpO1xuXHRcdH1cblx0XHRtb2RlSGlnaGxpZ2h0KHtzdGFydDogcGFyYW1ldGVycy50bywgdGV4dDogdGV4dC52YWx1ZSwgbGFuZ3VhZ2U6IHBhcmFtZXRlcnMudmFsdWUubGFuZ3VhZ2V9LGJ1aWxkZXIpO1xuXHR9XG5cdFxuXHRmdW5jdGlvbiBjb252ZXJ0UmVhZGRGb2xkKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiwgcmVhZGRMYW5ndWFnZXM6IEFycmF5PHN0cmluZz4pIHtcblx0XHRjb25zdCBhZGRFZmZlY3RzOiBBcnJheTxTdGF0ZUVmZmVjdDx1bmtub3duPj4gPSBbXTtcblx0XHRmb3IgKGxldCBpdGVyID0gKHRyYW5zYWN0aW9uLnN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHsgLy9UT0RPIChAbWF5dXJhbmt2KSBSZWZhY3RvcjogVHJ5IGFuZCBtYWtlIHRoaXMgc3RhcnRTdGF0ZVxuXHRcdFx0aWYgKCFpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkIHx8ICFyZWFkZExhbmd1YWdlcy5pbmNsdWRlcyhpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKVxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdGNvZGVibG9ja0ZvbGRDYWxsYmFjayhpdGVyLmZyb20sdHJhbnNhY3Rpb24uc3RhdGUsKGZvbGRTdGFydCxmb2xkRW5kKT0+e1xuXHRcdFx0XHRhZGRFZmZlY3RzLnB1c2goZm9sZC5vZih7ZnJvbTogZm9sZFN0YXJ0LmZyb20sdG86IGZvbGRFbmQudG8sdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9fX0pKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gYWRkRWZmZWN0cztcblx0fVxuXHRmdW5jdGlvbiBpc0ZvbGRlZChzdGF0ZTogRWRpdG9yU3RhdGUsIHBvc2l0aW9uOiBudW1iZXIpOiBib29sZWFuIHtcblx0XHRsZXQgZm9sZGVkID0gZmFsc2U7XG5cdFx0c3RhdGUuZmllbGQoZm9sZERlY29yYXRpb25zLGZhbHNlKT8uYmV0d2Vlbihwb3NpdGlvbixwb3NpdGlvbiwoKT0+e1xuXHRcdFx0Zm9sZGVkID0gdHJ1ZTtcblx0XHR9KTtcblx0XHRyZXR1cm4gZm9sZGVkO1xuXHR9XG5cdGZ1bmN0aW9uIGRvY3VtZW50Rm9sZChzdGF0ZTogRWRpdG9yU3RhdGUsIHRvRm9sZD86IGJvb2xlYW4pOiBBcnJheTxTdGF0ZUVmZmVjdDx1bmtub3duPj4ge1xuXHRcdGNvbnN0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdGNvbnN0IHJlc2V0ID0gKHR5cGVvZiB0b0ZvbGQgPT09IFwidW5kZWZpbmVkXCIpO1xuXHRcdGZvciAobGV0IGl0ZXIgPSAoc3RhdGUuZmllbGQoaGVhZGVyRGVjb3JhdGlvbnMsZmFsc2UpID8/IERlY29yYXRpb24ubm9uZSkuaXRlcigpOyBpdGVyLnZhbHVlICE9PSBudWxsOyBpdGVyLm5leHQoKSkge1xuXHRcdFx0aWYgKGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuaGlkZGVuKVxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdGNvbnN0IGZvbGRlZCA9IGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuZm9sZGVkO1xuXHRcdFx0Y29uc3QgZGVmYXVsdEZvbGQgPSBpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkO1xuXHRcdFx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKGl0ZXIuZnJvbSxzdGF0ZSwoZm9sZFN0YXJ0LGZvbGRFbmQpPT57XG5cdFx0XHRcdGlmICgoIXJlc2V0ICYmIHRvRm9sZCAmJiAhZm9sZGVkKSB8fCAocmVzZXQgJiYgIWZvbGRlZCAmJiBkZWZhdWx0Rm9sZCkpXG5cdFx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKGZvbGQub2Yoe2Zyb206IGZvbGRTdGFydC5mcm9tLCB0bzogZm9sZEVuZC50bywgdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9fX0pKTtcblx0XHRcdFx0ZWxzZSBpZiAoKCFyZXNldCAmJiAhdG9Gb2xkICYmIGZvbGRlZCkgfHwgKHJlc2V0ICYmIGZvbGRlZCAmJiAhZGVmYXVsdEZvbGQpKVxuXHRcdFx0XHRcdGFkZEVmZmVjdHMucHVzaCh1bmZvbGQub2Yoe2Zyb206IGZvbGRTdGFydC5mcm9tLCB0bzogZm9sZEVuZC50b30pKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gYWRkRWZmZWN0cztcblx0fVxuXG5cdHJldHVybiBbXG5cdFx0aWdub3JlTGlzdGVuZXIsaWdub3JlRmlsZUxpc3RlbmVyLFxuXHRcdGN1cnNvckZvbGRFeHRlbmRlcigpLGRvY3VtZW50Rm9sZEV4dGVuZGVyKCksc2V0dGluZ3NDaGFuZ2VFeHRlbmRlcigpLFxuXHRcdHNldHRpbmdzU3RhdGUsY2hhcldpZHRoU3RhdGUsbGl2ZVByZXZpZXdDb21wYXJ0bWVudC5vZihbXSksaWdub3JlQ29tcGFydG1lbnQub2YoW10pLFxuXHRdO1xufVxuXG5jb25zdCBmb2xkOiBTdGF0ZUVmZmVjdFR5cGU8e2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IHN0cmluZ319fT4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IHVuZm9sZDogU3RhdGVFZmZlY3RUeXBlPHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuY29uc3QgaGlkZUZvbGQ6IFN0YXRlRWZmZWN0VHlwZTxSYW5nZTxEZWNvcmF0aW9uPj4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IHVuaGlkZUZvbGQ6IFN0YXRlRWZmZWN0VHlwZTxSYW5nZTxEZWNvcmF0aW9uPj4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IHJlbW92ZUZvbGQ6IFN0YXRlRWZmZWN0VHlwZTxBcnJheTxzdHJpbmc+PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuY29uc3QgZm9sZEFsbDogU3RhdGVFZmZlY3RUeXBlPHt0b0ZvbGQ/OiBib29sZWFufT4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcblxuZnVuY3Rpb24gY29kZWJsb2NrRm9sZENhbGxiYWNrKHN0YXJ0UG9zaXRpb246IG51bWJlciwgc3RhdGU6IEVkaXRvclN0YXRlLCBmb2xkQ2FsbGJhY2s6IChmb2xkU3RhcnQ6IExpbmUsIGZvbGRFbmQ6IExpbmUpPT52b2lkKSB7XG5cdGNvbnN0IGZvbGRTdGFydCA9IHN0YXRlLmRvYy5saW5lQXQoc3RhcnRQb3NpdGlvbik7XG5cdGNvbnN0IHN0YXJ0RGVsaW1pdGVyID0gdGVzdE9wZW5pbmdMaW5lKGZvbGRTdGFydC50ZXh0LnRvU3RyaW5nKCkpO1xuXHRsZXQgZm9sZEVuZDogTGluZSB8IG51bGwgPSBudWxsO1xuXHRmb3IgKGxldCBpID0gZm9sZFN0YXJ0Lm51bWJlcisxOyBpIDw9IHN0YXRlLmRvYy5saW5lczsgaSsrKSB7XG5cdFx0Y29uc3QgbGluZSA9IHN0YXRlLmRvYy5saW5lKGkpO1xuXHRcdGNvbnN0IGxpbmVUZXh0ID0gbGluZS50ZXh0LnRvU3RyaW5nKCk7XG5cdFx0aWYgKHRlc3RPcGVuaW5nTGluZShsaW5lVGV4dCkgPT09IHN0YXJ0RGVsaW1pdGVyKSB7XG5cdFx0XHRmb2xkRW5kID0gbGluZTtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXHRpZiAoZm9sZEVuZCAhPT0gbnVsbClcblx0XHRmb2xkQ2FsbGJhY2soZm9sZFN0YXJ0LGZvbGRFbmQpO1xufVxuXG5mdW5jdGlvbiBnZXRJbmxpbmVDb2RlUmFuZ2VzKHN0YXRlOiBFZGl0b3JTdGF0ZSwgc3ludGF4Tm9kZTogU3ludGF4Tm9kZVJlZik6IHtwYXJhbWV0ZXJzOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogSW5saW5lQ29kZVBhcmFtZXRlcnMgfCBudWxsfSwgdGV4dDoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHN0cmluZ30sIHNlY3Rpb246IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9fSB8IG51bGwge1xuXHRjb25zdCBkZWxpbWl0ZXJTaXplID0gZ2V0SW5saW5lRGVsaW1pdGVyU2l6ZShzeW50YXhOb2RlKTtcblx0aWYgKGRlbGltaXRlclNpemUgPT09IG51bGwpXG5cdFx0cmV0dXJuIG51bGw7XG5cdGNvbnN0IGlubGluZUNvZGVUZXh0ID0gc3RhdGUuZG9jLnNsaWNlU3RyaW5nKHN5bnRheE5vZGUuZnJvbSwgc3ludGF4Tm9kZS50byk7XG5cdGNvbnN0IHtwYXJhbWV0ZXJzLHRleHR9ID0gcGFyc2VJbmxpbmVDb2RlKGlubGluZUNvZGVUZXh0KTtcblx0Y29uc3QgcGFyYW1ldGVyc0xlbmd0aCA9IGlubGluZUNvZGVUZXh0Lmxhc3RJbmRleE9mKHRleHQpO1xuXHRyZXR1cm4ge3BhcmFtZXRlcnM6IHtmcm9tOiBzeW50YXhOb2RlLmZyb20sIHRvOiBzeW50YXhOb2RlLmZyb20rcGFyYW1ldGVyc0xlbmd0aCwgdmFsdWU6IHBhcmFtZXRlcnN9LCB0ZXh0OiB7ZnJvbTogc3ludGF4Tm9kZS5mcm9tK3BhcmFtZXRlcnNMZW5ndGgrMSx0bzogc3ludGF4Tm9kZS50byAsdmFsdWU6IHRleHR9LCBzZWN0aW9uOiB7ZnJvbTogc3ludGF4Tm9kZS5mcm9tLWRlbGltaXRlclNpemUsIHRvOiBzeW50YXhOb2RlLnRvK2RlbGltaXRlclNpemV9fTtcbn1cbmZ1bmN0aW9uIGdldElubGluZURlbGltaXRlclNpemUoc3ludGF4Tm9kZTogU3ludGF4Tm9kZVJlZik6IG51bWJlciB8IG51bGwge1xuXHRjb25zdCBwcm9wZXJ0aWVzID0gbmV3IFNldChzeW50YXhOb2RlLm5vZGUudHlwZS5wcm9wPHN0cmluZz4odG9rZW5DbGFzc05vZGVQcm9wKT8uc3BsaXQoXCIgXCIpKTtcblx0aWYgKCEocHJvcGVydGllcy5oYXMoXCJpbmxpbmUtY29kZVwiKSAmJiAhcHJvcGVydGllcy5oYXMoXCJmb3JtYXR0aW5nXCIpKSlcblx0XHRyZXR1cm4gbnVsbDtcblx0Y29uc3QgcHJldmlvdXNTaWJsaW5nID0gc3ludGF4Tm9kZS5ub2RlLnByZXZTaWJsaW5nO1xuXHRpZiAoIXByZXZpb3VzU2libGluZylcblx0XHRyZXR1cm4gbnVsbDtcblx0cmV0dXJuIHByZXZpb3VzU2libGluZy50by1wcmV2aW91c1NpYmxpbmcuZnJvbTtcbn1cbmZ1bmN0aW9uIGFkZFVuc3R5bGVkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlLCBidWlsZGVyOiBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4sIHBhcmFtZXRlcnM6IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBudWxsfSwgdGV4dDoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHN0cmluZ30sIHNlY3Rpb246IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9LCBzb3VyY2VNb2RlOiBib29sZWFuKSB7XG5cdGlmICh0ZXh0LnZhbHVlKSB7XG5cdFx0aWYgKCFzdGF0ZS5zZWxlY3Rpb24ucmFuZ2VzLnNvbWUoKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9PnJhbmdlLnRvID49IHNlY3Rpb24uZnJvbSAmJiByYW5nZS5mcm9tIDw9IHNlY3Rpb24udG8pICYmICFzb3VyY2VNb2RlKVxuXHRcdFx0YnVpbGRlci5hZGQocGFyYW1ldGVycy5mcm9tLCBwYXJhbWV0ZXJzLnRvLCBEZWNvcmF0aW9uLnJlcGxhY2Uoe30pKTtcblx0fVxufVxuZnVuY3Rpb24gbW9kZUhpZ2hsaWdodCh7c3RhcnQsdGV4dCxsYW5ndWFnZX06IHtzdGFydDogbnVtYmVyLCB0ZXh0OiBzdHJpbmcsIGxhbmd1YWdlOiBzdHJpbmd9LCBidWlsZGVyOiBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4pIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0Y29uc3QgbW9kZSA9IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUod2luZG93LkNvZGVNaXJyb3IuZGVmYXVsdHMsd2luZG93LkNvZGVNaXJyb3IuZmluZE1vZGVCeU5hbWUobGFuZ3VhZ2UpPy5taW1lKTtcblx0Y29uc3Qgc3RhdGUgPSB3aW5kb3cuQ29kZU1pcnJvci5zdGFydFN0YXRlKG1vZGUpO1xuXHRpZiAobW9kZT8udG9rZW4pIHtcblx0XHRjb25zdCBzdHJlYW0gPSBuZXcgd2luZG93LkNvZGVNaXJyb3IuU3RyaW5nU3RyZWFtKHRleHQpO1xuXHRcdHdoaWxlICghc3RyZWFtLmVvbCgpKSB7XG5cdFx0XHRjb25zdCBzdHlsZSA9IG1vZGUudG9rZW4oc3RyZWFtLHN0YXRlKTtcblx0XHRcdGlmIChzdHlsZSlcblx0XHRcdFx0YnVpbGRlci5hZGQoc3RhcnQrc3RyZWFtLnN0YXJ0LCBzdGFydCtzdHJlYW0ucG9zLCBEZWNvcmF0aW9uLm1hcmsoe2NsYXNzOiBgY20tJHtzdHlsZX1gfSkpO1xuXHRcdFx0c3RyZWFtLnN0YXJ0ID0gc3RyZWFtLnBvcztcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVkaXRpbmdEb2N1bWVudEZvbGQodmlldzogRWRpdG9yVmlldywgdG9Gb2xkPzogYm9vbGVhbikge1xuXHR2aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBmb2xkQWxsLm9mKCh0eXBlb2YgdG9Gb2xkICE9PSBcInVuZGVmaW5lZFwiKT97dG9Gb2xkOiB0b0ZvbGR9Ont9KX0pO1xuXHR2aWV3LnJlcXVlc3RNZWFzdXJlKCk7XG59XG5mdW5jdGlvbiBmb2xkT25DbGljayh2aWV3OiBFZGl0b3JWaWV3LCB0YXJnZXQ6IEhUTUxFbGVtZW50LCBmb2xkZWQ6IGJvb2xlYW4sIGxhbmd1YWdlOiBzdHJpbmcpIHtcblx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKHZpZXcucG9zQXRET00odGFyZ2V0KSx2aWV3LnN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHR2aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBmb2xkTGluZXMoIWZvbGRlZCx7ZnJvbTogZm9sZFN0YXJ0LmZyb20sIHRvOiBmb2xkRW5kLnRvLCB2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogbGFuZ3VhZ2V9fX0pfSk7XG5cdFx0dmlldy5yZXF1ZXN0TWVhc3VyZSgpO1xuXHR9KTtcbn1cbmZ1bmN0aW9uIGZvbGRMaW5lcyh0b0ZvbGQ6IGJvb2xlYW4sIGZvbGRJbmZvOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiBzdHJpbmd9fX0pOiBTdGF0ZUVmZmVjdDx1bmtub3duPiB7XG5cdHJldHVybiB0b0ZvbGQ/Zm9sZC5vZihmb2xkSW5mbyk6dW5mb2xkLm9mKHtmcm9tOiBmb2xkSW5mby5mcm9tLCB0bzogZm9sZEluZm8udG99KTtcbn1cbmZ1bmN0aW9uIGZvbGRSZWdpb24oe2Zyb206IGZvbGRGcm9tLCB0bzogZm9sZFRvLCB2YWx1ZToge3NwZWM6IHtsYW5ndWFnZX19fToge2Zyb206IG51bWJlciwgdG86IG51bWJlcix2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogc3RyaW5nfX19KTogUmFuZ2U8RGVjb3JhdGlvbj4ge1xuXHRyZXR1cm4gZm9sZERlY29yYXRpb24obGFuZ3VhZ2UpLnJhbmdlKGZvbGRGcm9tLGZvbGRUbyk7XG59XG5mdW5jdGlvbiB1bmZvbGRSZWdpb24oe2Zyb206IGZvbGRGcm9tLCB0bzogZm9sZFRvfToge2Zyb206IG51bWJlciwgdG86IG51bWJlcn0pIHtcblx0cmV0dXJuIHtmaWx0ZXI6IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpID0+ICh0byA8PSBmb2xkRnJvbSB8fCBmcm9tID49IGZvbGRUbyksIGZpbHRlckZyb206IGZvbGRGcm9tLCBmaWx0ZXJUbzogZm9sZFRvfTtcbn1cbmZ1bmN0aW9uIHJlbW92ZUZvbGRMYW5ndWFnZXMobGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+KSB7XG5cdHJldHVybiB7ZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogRGVjb3JhdGlvbikgPT4gIWxhbmd1YWdlcy5pbmNsdWRlcyh2YWx1ZT8uc3BlYz8ubGFuZ3VhZ2UpfTtcbn1cbmZ1bmN0aW9uIHVuaGlkZUZvbGRVcGRhdGUocmFuZ2U6IFJhbmdlPERlY29yYXRpb24+KSB7XG5cdHJldHVybiB7ZmlsdGVyRnJvbTogcmFuZ2UuZnJvbSwgZmlsdGVyVG86IHJhbmdlLnRvLCBmaWx0ZXI6IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpPT4hKGZyb20gPT09IHJhbmdlLmZyb20gJiYgdG8gPT09IHJhbmdlLnRvKX07XG59XG5mdW5jdGlvbiBmb2xkRGVjb3JhdGlvbihsYW5ndWFnZTogc3RyaW5nKTogRGVjb3JhdGlvbiB7XG5cdHJldHVybiBEZWNvcmF0aW9uLnJlcGxhY2Uoe2Jsb2NrOiB0cnVlLCBsYW5ndWFnZTogbGFuZ3VhZ2V9KTtcbn1cbmZ1bmN0aW9uIHJhbmdlSW50ZXJhY3Rpb24oZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCByYW5nZTogU2VsZWN0aW9uUmFuZ2UpOiBib29sZWFuIHtcblx0cmV0dXJuIChmcm9tIDw9IHJhbmdlLmhlYWQgJiYgcmFuZ2UuaGVhZCA8PSB0bykgfHwgKGZyb20gPD0gcmFuZ2UuYW5jaG9yICYmIHJhbmdlLmFuY2hvciA8PSB0byk7XG59XG5cbmZ1bmN0aW9uIGlzRmlsZUlnbm9yZWQoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG5cdGNvbnN0IGZpbGVQYXRoID0gc3RhdGUuZmllbGQoZWRpdG9ySW5mb0ZpZWxkKT8uZmlsZT8ucGF0aDtcblx0aWYgKHR5cGVvZiBmaWxlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gdGhpcy5hcHAubWV0YWRhdGFDYWNoZS5nZXRDYWNoZShmaWxlUGF0aCk/LmZyb250bWF0dGVyPy5bXCJjb2RlLXN0eWxlci1pZ25vcmVcIl0/LnRvU3RyaW5nKCkgPT09IFwidHJ1ZVwiO1xuXHRyZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc1NvdXJjZU1vZGUoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG5cdHJldHVybiAhc3RhdGUuZmllbGQoZWRpdG9yTGl2ZVByZXZpZXdGaWVsZCk7XG59XG5mdW5jdGlvbiBzZXREaWZmZXJlbmNlKGFycmF5MTogQXJyYXk8dW5rbm93bj4sIGFycmF5MjogQXJyYXk8dW5rbm93bj4pIHtcblx0cmV0dXJuIGFycmF5MS5maWx0ZXIoZWxlbWVudCA9PiAhYXJyYXkyLmluY2x1ZGVzKGVsZW1lbnQpKTtcbn1cbiIsICJpbXBvcnQgeyBNYXJrZG93blByZXZpZXdSZW5kZXJlciwgUGx1Z2luLCBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgQ29kZVN0eWxlclBsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xuaW1wb3J0IHsgQ29kZVN0eWxlclRoZW1lLCBFWEVDVVRFX0NPREVfU1VQUE9SVEVEX0xBTkdVQUdFUyB9IGZyb20gXCIuLi9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgQ29kZUJsb2NrQXJncywgZ2V0QXJncyB9IGZyb20gXCIuLi9FeHRlcm5hbC9FeGVjdXRlQ29kZS9Db2RlQmxvY2tBcmdzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGxhbmd1YWdlOiBzdHJpbmc7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdHJlZmVyZW5jZTogc3RyaW5nO1xuXHRmb2xkOiB7XG5cdFx0ZW5hYmxlZDogYm9vbGVhbjtcblx0XHRwbGFjZWhvbGRlcjogc3RyaW5nO1xuXHR9XG5cdGxpbmVOdW1iZXJzOiB7XG5cdFx0YWx3YXlzRW5hYmxlZDogYm9vbGVhbjtcblx0XHRhbHdheXNEaXNhYmxlZDogYm9vbGVhbjtcblx0XHRvZmZzZXQ6IG51bWJlcjtcblx0fSxcblx0bGluZVVud3JhcDoge1xuXHRcdGFsd2F5c0VuYWJsZWQ6IGJvb2xlYW47XG5cdFx0YWx3YXlzRGlzYWJsZWQ6IGJvb2xlYW47XG5cdFx0YWN0aXZlV3JhcDogYm9vbGVhbjtcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGRlZmF1bHQ6IEhpZ2hsaWdodHM7XG5cdFx0YWx0ZXJuYXRpdmU6IFJlY29yZDxzdHJpbmcsSGlnaGxpZ2h0cz5cblx0fSxcblx0aWdub3JlOiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBIaWdobGlnaHRzIHtcblx0bGluZU51bWJlcnM6IEFycmF5PG51bWJlcj47XG5cdHBsYWluVGV4dDogQXJyYXk8c3RyaW5nPjtcblx0cmVndWxhckV4cHJlc3Npb25zOiBBcnJheTxSZWdFeHA+O1xufVxuaW50ZXJmYWNlIEV4dGVybmFsUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcblx0c3VwcG9ydGVkTGFuZ3VhZ2VzPzogQXJyYXk8c3RyaW5nPjtcblx0Y29kZT86IChzb3VyY2U6IHN0cmluZywgc291cmNlUGF0aD86IHN0cmluZyk9PlByb21pc2U8e1xuXHRcdHN0YXJ0OiBudW1iZXI7XG5cdFx0Y29kZTogc3RyaW5nO1xuXHRcdGxhbmd1YWdlOiBzdHJpbmc7XG5cdFx0aGlnaGxpZ2h0OiBzdHJpbmc7XG5cdFx0bGluZXM6IEFycmF5PHN0cmluZz47XG5cdFx0ZmlsZVBhdGg6IHN0cmluZztcblx0XHRsaW5lbnVtYmVyOiBudW1iZXI7XG5cdH0+O1xuXHRhbmFseXplSGlnaExpZ2h0TGluZXM/OiAobGluZXM6IHN0cmluZ1tdLCBzb3VyY2U6IHN0cmluZyB8IHN0cmluZ1tdKT0+TWFwPG51bWJlcixib29sZWFuPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrU291cmNlKGNvZGVTZWN0aW9uOiBBcnJheTxzdHJpbmc+LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPHtjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4sIG5lc3RlZDogYm9vbGVhbn0+IHtcblx0Ly8gQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdGNvbnN0IHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+ID0gcGx1Z2luLmFwcC5wbHVnaW5zLnBsdWdpbnM7XG5cdGNvbnN0IGFkbW9uaXRpb25zOiBib29sZWFuID0gKFwib2JzaWRpYW4tYWRtb25pdGlvblwiIGluIHBsdWdpbnMpO1xuXHRjb25zdCBjb2RlYmxvY2tzOiBBcnJheTxBcnJheTxzdHJpbmc+PiA9IFtdO1xuXHRmdW5jdGlvbiBwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb246IEFycmF5PHN0cmluZz4pOiB2b2lkIHtcblx0XHRpZiAoY29kZVNlY3Rpb24ubGVuZ3RoID09PSAwKVxuXHRcdFx0cmV0dXJuO1xuXHRcdFxuXHRcdGNvbnN0IG9wZW5pbmdDb2RlYmxvY2tMaW5lID0gZ2V0T3BlbmluZ0xpbmUoY29kZVNlY3Rpb24pO1xuXHRcdGlmICghb3BlbmluZ0NvZGVibG9ja0xpbmUpXG5cdFx0XHRyZXR1cm47XG5cdFx0XG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlciA9IC9eXFxzKig/Oj5cXHMqKSooKD86YGBgK3x+fn4rKSkuKiQvLmV4ZWMob3BlbmluZ0NvZGVibG9ja0xpbmUpPy5bMV07XG5cdFx0aWYgKCFvcGVuRGVsaW1pdGVyKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlckluZGV4ID0gY29kZVNlY3Rpb24uaW5kZXhPZihvcGVuaW5nQ29kZWJsb2NrTGluZSk7XG5cdFx0Y29uc3QgY2xvc2VEZWxpbWl0ZXJJbmRleCA9IGNvZGVTZWN0aW9uLnNsaWNlKG9wZW5EZWxpbWl0ZXJJbmRleCsxKS5maW5kSW5kZXgoKGxpbmUpPT5uZXcgUmVnRXhwKGBeXFxcXHMqKD86PlxcXFxzKikqJHtvcGVuRGVsaW1pdGVyfSg/ISR7b3BlbkRlbGltaXRlclswXX0pJGApLnRlc3QobGluZSkpO1xuXHRcdGlmICghYWRtb25pdGlvbnMgfHwgIS9eXFxzKig/Oj5cXHMqKSooPzpgYGArfH5+fispICphZC0uKiQvLnRlc3Qob3BlbmluZ0NvZGVibG9ja0xpbmUpKVxuXHRcdFx0Y29kZWJsb2Nrcy5wdXNoKGNvZGVTZWN0aW9uLnNsaWNlKDAsb3BlbkRlbGltaXRlckluZGV4KzIrY2xvc2VEZWxpbWl0ZXJJbmRleCkpO1xuXHRcdGVsc2Vcblx0XHRcdHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbi5zbGljZShvcGVuRGVsaW1pdGVySW5kZXgrMSxvcGVuRGVsaW1pdGVySW5kZXgrMStjbG9zZURlbGltaXRlckluZGV4KSk7XG4gICAgICAgIFxuXHRcdHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbi5zbGljZShvcGVuRGVsaW1pdGVySW5kZXgrMStjbG9zZURlbGltaXRlckluZGV4KzEpKTtcblx0fVxuXHRwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb24pO1xuXHRyZXR1cm4ge2NvZGVibG9ja3NQYXJhbWV0ZXJzOiBhd2FpdCAodHlwZW9mIHNvdXJjZVBhdGggIT09IFwidW5kZWZpbmVkXCI/cGFyc2VDb2RlYmxvY2tzKGNvZGVibG9ja3MscGx1Z2luLHBsdWdpbnMsc291cmNlUGF0aCk6cGFyc2VDb2RlYmxvY2tzKGNvZGVibG9ja3MscGx1Z2luLHBsdWdpbnMpKSwgbmVzdGVkOiBjb2RlYmxvY2tzWzBdPyFhcnJheXNFcXVhbChjb2RlU2VjdGlvbixjb2RlYmxvY2tzWzBdKTp0cnVlfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFyc2VDb2RlYmxvY2tzKGNvZGVibG9ja3M6IEFycmF5PEFycmF5PHN0cmluZz4+LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBzb3VyY2VQYXRoPzogc3RyaW5nKTogUHJvbWlzZTxBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPj4ge1xuXHRjb25zdCBjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4gPSBbXTtcblx0Zm9yIChjb25zdCBjb2RlYmxvY2tMaW5lcyBvZiBjb2RlYmxvY2tzKSB7XG5cdFx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVycyA9IGF3YWl0ICh0eXBlb2Ygc291cmNlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIj9wYXJzZUNvZGVibG9jayhjb2RlYmxvY2tMaW5lcyxwbHVnaW4scGx1Z2lucyxzb3VyY2VQYXRoKTpwYXJzZUNvZGVibG9jayhjb2RlYmxvY2tMaW5lcyxwbHVnaW4scGx1Z2lucykpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzICE9PSBudWxsKVxuXHRcdFx0Y29kZWJsb2Nrc1BhcmFtZXRlcnMucHVzaChjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0fVxuXHRyZXR1cm4gY29kZWJsb2Nrc1BhcmFtZXRlcnM7XG59XG5hc3luYyBmdW5jdGlvbiBwYXJzZUNvZGVibG9jayhjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8Q29kZWJsb2NrUGFyYW1ldGVycyB8IG51bGw+IHtcblx0Y29uc3QgcGFyYW1ldGVyTGluZSA9IGdldFBhcmFtZXRlckxpbmUoY29kZWJsb2NrTGluZXMpO1xuXHRpZiAoIXBhcmFtZXRlckxpbmUpXG5cdFx0cmV0dXJuIG51bGw7XG5cdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwYXJzZUNvZGVibG9ja1BhcmFtZXRlcnMocGFyYW1ldGVyTGluZSxwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcblx0aWYgKGlzQ29kZWJsb2NrSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSlcblx0XHRyZXR1cm4gbnVsbDtcblxuXHRyZXR1cm4gYXdhaXQgKHR5cGVvZiBzb3VyY2VQYXRoICE9PSBcInVuZGVmaW5lZFwiP3BsdWdpbkFkanVzdFBhcmFtZXRlcnMoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW4scGx1Z2lucyxjb2RlYmxvY2tMaW5lcyxzb3VyY2VQYXRoKTpwbHVnaW5BZGp1c3RQYXJhbWV0ZXJzKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2luLHBsdWdpbnMsY29kZWJsb2NrTGluZXMpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvZGVibG9ja1BhcmFtZXRlcnMocGFyYW1ldGVyTGluZTogc3RyaW5nLCB0aGVtZTogQ29kZVN0eWxlclRoZW1lKTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMgPSB7XG5cdFx0bGFuZ3VhZ2U6IFwiXCIsXG5cdFx0dGl0bGU6IFwiXCIsXG5cdFx0cmVmZXJlbmNlOiBcIlwiLFxuXHRcdGZvbGQ6IHtcblx0XHRcdGVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0cGxhY2Vob2xkZXI6IFwiXCIsXG5cdFx0fSxcblx0XHRsaW5lTnVtYmVyczoge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRvZmZzZXQ6IDAsXG5cdFx0fSxcblx0XHRsaW5lVW53cmFwOiB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH0sXG5cdFx0aGlnaGxpZ2h0czoge1xuXHRcdFx0ZGVmYXVsdDoge1xuXHRcdFx0XHRsaW5lTnVtYmVyczogW10sXG5cdFx0XHRcdHBsYWluVGV4dDogW10sXG5cdFx0XHRcdHJlZ3VsYXJFeHByZXNzaW9uczogW10sXG5cdFx0XHR9LFxuXHRcdFx0YWx0ZXJuYXRpdmU6IHt9LFxuXHRcdH0sXG5cdFx0aWdub3JlOiBmYWxzZSxcblx0fTtcblxuXHRpZiAocGFyYW1ldGVyTGluZS5zdGFydHNXaXRoKFwiYGBgXCIpKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBwYXJhbWV0ZXJMaW5lLnJlcGxhY2UoL15gYGArKD89W15gXXwkKS8sXCJcIik7XG5cdGVsc2UgaWYgKHBhcmFtZXRlckxpbmUuc3RhcnRzV2l0aChcIn5+flwiKSlcblx0XHRwYXJhbWV0ZXJMaW5lID0gcGFyYW1ldGVyTGluZS5yZXBsYWNlKC9efn5+Kyg/PVtefl18JCkvLFwiXCIpO1xuXHRlbHNlXG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cblx0Y29uc3Qgcm1kTWF0Y2ggPSAvXlxceyguKylcXH0gKiQvLmV4ZWMocGFyYW1ldGVyTGluZSk7XG5cdGlmIChybWRNYXRjaClcblx0XHRwYXJhbWV0ZXJMaW5lID0gcm1kTWF0Y2hbMV07XG5cblx0Y29uc3QgbGFuZ3VhZ2VCcmVhayA9IHBhcmFtZXRlckxpbmUuaW5kZXhPZihcIiBcIik7XG5cdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKDAsKGxhbmd1YWdlQnJlYWsgIT09IC0xKT9sYW5ndWFnZUJyZWFrOnBhcmFtZXRlckxpbmUubGVuZ3RoKS50b0xvd2VyQ2FzZSgpO1xuXHRpZiAobGFuZ3VhZ2VCcmVhayA9PT0gLTEpXG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cdHBhcmFtZXRlckxpbmUgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKGxhbmd1YWdlQnJlYWsrMSk7XG5cdGlmIChybWRNYXRjaClcblx0XHRwYXJhbWV0ZXJMaW5lID0gXCJ0aXRsZTpcIiArIHBhcmFtZXRlckxpbmU7XG5cblx0Y29uc3QgcGFyYW1ldGVyU3RyaW5ncyA9IHBhcmFtZXRlckxpbmUubWF0Y2goLyg/OlteXFxzXCInXSt8XCJbXlwiXSpcInwnW14nXSonKSsvZyk7XG5cdGlmICghcGFyYW1ldGVyU3RyaW5ncylcblx0XHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcblx0XG5cdHBhcmFtZXRlclN0cmluZ3MuZm9yRWFjaCgocGFyYW1ldGVyU3RyaW5nKSA9PiBwYXJzZUNvZGVibG9ja1BhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmcucmVwbGFjZSgvKD86Xix8LCQpL2csIFwiXCIpLGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWUpKTtcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5hc3luYyBmdW5jdGlvbiBwbHVnaW5BZGp1c3RQYXJhbWV0ZXJzKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBzb3VyY2VQYXRoPzogc3RyaW5nKTogUHJvbWlzZTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiB7XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID09PSBcInByZXZpZXdcIilcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gYXdhaXQgKHR5cGVvZiBzb3VyY2VQYXRoICE9PSBcInVuZGVmaW5lZFwiP3BsdWdpbkFkanVzdFByZXZpZXdDb2RlKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2lucyxjb2RlYmxvY2tMaW5lcyxzb3VyY2VQYXRoKTpwbHVnaW5BZGp1c3RQcmV2aWV3Q29kZShjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMpKTtcblx0ZWxzZSBpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gXCJpbmNsdWRlXCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IHBsdWdpbkFkanVzdEZpbGVJbmNsdWRlKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2lucyxjb2RlYmxvY2tMaW5lcyk7XG5cdGVsc2UgaWYgKC9ydW4tXFx3Ki8udGVzdChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSlcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGx1Z2luQWRqdXN0RXhlY3V0ZUNvZGVSdW4oY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW4scGx1Z2lucyk7XG5cdGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwbHVnaW5BZGp1c3RFeGVjdXRlQ29kZShjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMpO1xuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmFzeW5jIGZ1bmN0aW9uIHBsdWdpbkFkanVzdFByZXZpZXdDb2RlKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8Q29kZWJsb2NrUGFyYW1ldGVycz4ge1xuXHRpZiAocGx1Z2lucz8uW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdPy5jb2RlICYmIHBsdWdpbnM/LltcIm9ic2lkaWFuLWNvZGUtcHJldmlld1wiXT8uYW5hbHl6ZUhpZ2hMaWdodExpbmVzKSB7XG5cdFx0Y29uc3QgY29kZVByZXZpZXdQYXJhbXMgPSBhd2FpdCBwbHVnaW5zW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdLmNvZGUoY29kZWJsb2NrTGluZXMuc2xpY2UoMSwtMSkuam9pbihcIlxcblwiKSxzb3VyY2VQYXRoKTtcblx0XHRpZiAoIWNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQgJiYgIWNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCkge1xuXHRcdFx0aWYgKHR5cGVvZiBjb2RlUHJldmlld1BhcmFtcy5zdGFydCA9PT0gXCJudW1iZXJcIilcblx0XHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQgPSBjb2RlUHJldmlld1BhcmFtcy5zdGFydCAtIDE7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgPSBCb29sZWFuKGNvZGVQcmV2aWV3UGFyYW1zLmxpbmVudW1iZXIpO1xuXHRcdH1cblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5saW5lTnVtYmVycyA9IFsuLi5uZXcgU2V0KGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LmxpbmVOdW1iZXJzLmNvbmNhdChBcnJheS5mcm9tKHBsdWdpbnNbXCJvYnNpZGlhbi1jb2RlLXByZXZpZXdcIl0uYW5hbHl6ZUhpZ2hMaWdodExpbmVzKGNvZGVQcmV2aWV3UGFyYW1zLmxpbmVzLGNvZGVQcmV2aWV3UGFyYW1zLmhpZ2hsaWdodCksKHBhaXI6IFtudW1iZXIsYm9vbGVhbl0pPT4ocGFpclswXSkpKSldO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID09PSBcIlwiKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IGNvZGVQcmV2aWV3UGFyYW1zLmZpbGVQYXRoLnNwbGl0KFwiXFxcXFwiKS5wb3AoKT8uc3BsaXQoXCIvXCIpLnBvcCgpID8/IFwiXCI7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IGNvZGVQcmV2aWV3UGFyYW1zLmxhbmd1YWdlO1xuXHR9XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gcGx1Z2luQWRqdXN0RmlsZUluY2x1ZGUoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGlmIChcImZpbGUtaW5jbHVkZVwiIGluIHBsdWdpbnMpIHtcblx0XHRjb25zdCBmaWxlSW5jbHVkZUxhbmd1YWdlID0gL2luY2x1ZGUgKFxcdyspLy5leGVjKGNvZGVibG9ja0xpbmVzWzBdKT8uWzFdO1xuXHRcdGlmICh0eXBlb2YgZmlsZUluY2x1ZGVMYW5ndWFnZSAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBmaWxlSW5jbHVkZUxhbmd1YWdlO1xuXHR9XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gcGx1Z2luQWRqdXN0RXhlY3V0ZUNvZGUoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGlmIChcImV4ZWN1dGUtY29kZVwiIGluIHBsdWdpbnMpIHtcblx0XHRjb25zdCBjb2RlYmxvY2tBcmdzOiBDb2RlQmxvY2tBcmdzID0gZ2V0QXJncyhjb2RlYmxvY2tMaW5lc1swXSk7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPz8gY29kZWJsb2NrQXJncz8ubGFiZWwgPz8gXCJcIjtcblx0fVxuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIHBsdWdpbkFkanVzdEV4ZWN1dGVDb2RlUnVuKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4pOiBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0aWYgKFwiZXhlY3V0ZS1jb2RlXCIgaW4gcGx1Z2lucykge1xuXHRcdGlmIChFWEVDVVRFX0NPREVfU1VQUE9SVEVEX0xBTkdVQUdFUy5pbmNsdWRlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLnNsaWNlKDQpKSAmJiAhaXNDb2RlYmxvY2tJZ25vcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UscGx1Z2luLnNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2Uuc2xpY2UoNCk7XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZTogQ29kZVN0eWxlclRoZW1lKTogdm9pZCB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwiaWdub3JlXCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5pZ25vcmUgPSB0cnVlO1xuXHRlbHNlIGlmICgvXnRpdGxlWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKVxuXHRcdG1hbmFnZVRpdGxlKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL15yZWZbOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykgfHwgL15yZWZlcmVuY2VbOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykpXG5cdFx0bWFuYWdlUmVmZXJlbmNlKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL15mb2xkWzo9XT8vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRtYW5hZ2VGb2xkaW5nKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL15sbls6PV0vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRtYW5hZ2VMaW5lTnVtYmVyaW5nKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL151bndyYXBbOj1dPy8udGVzdChwYXJhbWV0ZXJTdHJpbmcpIHx8IHBhcmFtZXRlclN0cmluZyA9PT0gXCJ3cmFwXCIpXG5cdFx0bWFuYWdlV3JhcHBpbmcocGFyYW1ldGVyU3RyaW5nLGNvZGVibG9ja1BhcmFtZXRlcnMpO1xuXHRlbHNlXG5cdFx0YWRkSGlnaGxpZ2h0cyhwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZSk7XG59XG5mdW5jdGlvbiBtYW5hZ2VUaXRsZShwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRjb25zdCB0aXRsZU1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcInRpdGxlOlwiLmxlbmd0aCkpO1xuXHRpZiAodGl0bGVNYXRjaClcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID0gdGl0bGVNYXRjaFsyXS50cmltKCk7XG5cdGNvbnN0IHJlZlRpdGxlTWF0Y2ggPSAvXFxbXFxbKFtefF0qPylcXHw/KFtefF0qPylcXF1cXF0vLmV4ZWMocGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidGl0bGU6XCIubGVuZ3RoKSk7XG5cdGlmIChyZWZUaXRsZU1hdGNoKSB7XG5cdFx0aWYgKHJlZlRpdGxlTWF0Y2hbMV0gPT09IFwiXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSByZWZUaXRsZU1hdGNoWzJdLnRyaW0oKTtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID0gcmVmVGl0bGVNYXRjaFsyXS50cmltKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSByZWZUaXRsZU1hdGNoWzJdLnRyaW0oKTtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID0gcmVmVGl0bGVNYXRjaFsxXS50cmltKCk7XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBtYW5hZ2VSZWZlcmVuY2UocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpIHtcblx0aWYgKC9ecmVmWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKVxuXHRcdHBhcmFtZXRlclN0cmluZy5zbGljZShcInJlZjpcIi5sZW5ndGgpO1xuXHRlbHNlXG5cdFx0cGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwicmVmZXJlbmNlOlwiLmxlbmd0aCk7XG5cdFxuXHRjb25zdCByZWZNYXRjaCA9IC9cXFtcXFsoW158XSo/KSg/OlxcfFtefF0qPyk/XFxdXFxdLy5leGVjKHBhcmFtZXRlclN0cmluZyk7XG5cdGlmIChyZWZNYXRjaCkge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID0gcmVmTWF0Y2hbMV0udHJpbSgpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID09PSBcIlwiKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IHJlZk1hdGNoWzFdLnRyaW0oKTtcblx0fVxufVxuZnVuY3Rpb24gbWFuYWdlRm9sZGluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcImZvbGRcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZCA9IHtcblx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRwbGFjZWhvbGRlcjogXCJcIixcblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGNvbnN0IGZvbGRQbGFjZWhvbGRlck1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcImZvbGQ6XCIubGVuZ3RoKSk7XG5cdFx0aWYgKGZvbGRQbGFjZWhvbGRlck1hdGNoKSB7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQgPSB7XG5cdFx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdHBsYWNlaG9sZGVyOiBmb2xkUGxhY2Vob2xkZXJNYXRjaFsyXS50cmltKCksXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuZnVuY3Rpb24gbWFuYWdlTGluZU51bWJlcmluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRwYXJhbWV0ZXJTdHJpbmcgPSBwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJsbjpcIi5sZW5ndGgpO1xuXHRpZiAoL15cXGQrJC8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycyA9IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRvZmZzZXQ6IHBhcnNlSW50KHBhcmFtZXRlclN0cmluZyktMSxcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0b2Zmc2V0OiAwLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nLnRvTG93ZXJDYXNlKCkgPT09IFwiZmFsc2VcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiB0cnVlLFxuXHRcdFx0b2Zmc2V0OiAwLFxuXHRcdH07XG5cdH1cbn1cbmZ1bmN0aW9uIG1hbmFnZVdyYXBwaW5nKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKSB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwid3JhcFwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogdHJ1ZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcInVud3JhcFwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0cGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidW53cmFwOlwiLmxlbmd0aCk7XG5cdFx0aWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImluYWN0aXZlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRhY3RpdmVXcmFwOiB0cnVlLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIikge1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImZhbHNlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRcdGFsd2F5c0Rpc2FibGVkOiB0cnVlLFxuXHRcdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBhZGRIaWdobGlnaHRzKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZTogQ29kZVN0eWxlclRoZW1lKSB7XG5cdGNvbnN0IGhpZ2hsaWdodE1hdGNoID0gL14oXFx3KylbOj1dKC4rKSQvLmV4ZWMocGFyYW1ldGVyU3RyaW5nKTtcblx0aWYgKGhpZ2hsaWdodE1hdGNoKSB7XG5cdFx0aWYgKGhpZ2hsaWdodE1hdGNoWzFdID09PSBcImhsXCIpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdCA9IHBhcnNlSGlnaGxpZ2h0ZWRMaW5lcyhoaWdobGlnaHRNYXRjaFsyXSk7XG5cdFx0ZWxzZSBpZiAoaGlnaGxpZ2h0TWF0Y2hbMV0gaW4gdGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cylcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZVtoaWdobGlnaHRNYXRjaFsxXV0gPSBwYXJzZUhpZ2hsaWdodGVkTGluZXMoaGlnaGxpZ2h0TWF0Y2hbMl0pO1xuXHR9IGVsc2UgaWYgKC9ee1tcXGQtLF0rfSQvLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdCA9IHBhcnNlSGlnaGxpZ2h0ZWRMaW5lcyhwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoMSwtMSkpO1xufVxuZnVuY3Rpb24gcGFyc2VIaWdobGlnaHRlZExpbmVzKGhpZ2hsaWdodGVkTGluZXNTdHJpbmc6IHN0cmluZyk6IEhpZ2hsaWdodHMge1xuXHRjb25zdCBoaWdobGlnaHRSdWxlcyA9IGhpZ2hsaWdodGVkTGluZXNTdHJpbmcuc3BsaXQoXCIsXCIpO1xuXHRjb25zdCBsaW5lTnVtYmVyczogU2V0PG51bWJlcj4gPSBuZXcgU2V0KCk7XG5cdGNvbnN0IHBsYWluVGV4dDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cdGNvbnN0IHJlZ3VsYXJFeHByZXNzaW9uczogU2V0PFJlZ0V4cD4gPSBuZXcgU2V0KCk7XG5cdGhpZ2hsaWdodFJ1bGVzLmZvckVhY2goaGlnaGxpZ2h0UnVsZSA9PiB7XG5cdFx0aWYgKC9cXGQrLVxcZCsvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIHsgLy8gTnVtYmVyIFJhbmdlXG5cdFx0XHRjb25zdCBbc3RhcnQsZW5kXSA9IGhpZ2hsaWdodFJ1bGUuc3BsaXQoXCItXCIpLm1hcChudW0gPT4gcGFyc2VJbnQobnVtKSk7XG5cdFx0XHRpZiAoc3RhcnQgJiYgZW5kICYmIHN0YXJ0IDw9IGVuZClcblx0XHRcdFx0QXJyYXkuZnJvbSh7bGVuZ3RoOmVuZC1zdGFydCsxfSwgKF8sbnVtKSA9PiBudW0gKyBzdGFydCkuZm9yRWFjaChsaW5lTnVtYmVyID0+IGxpbmVOdW1iZXJzLmFkZChsaW5lTnVtYmVyKSk7XG5cdFx0fSBlbHNlIGlmICgvXlxcLyguKilcXC8kLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSB7IC8vIFJlZ2V4XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRyZWd1bGFyRXhwcmVzc2lvbnMuYWRkKG5ldyBSZWdFeHAoaGlnaGxpZ2h0UnVsZS5yZXBsYWNlKC9eXFwvKC4qKVxcLyQvLFwiJDFcIikpKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHQvL3Bhc3Ncblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKC9cIi4qXCIvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIHsgLy8gUGxhaW4gVGV4dFxuXHRcdFx0cGxhaW5UZXh0LmFkZChoaWdobGlnaHRSdWxlLnN1YnN0cmluZygxLGhpZ2hsaWdodFJ1bGUubGVuZ3RoLTEpKTtcblx0XHR9IGVsc2UgaWYgKC8nLionLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSB7IC8vIFBsYWluIFRleHRcblx0XHRcdHBsYWluVGV4dC5hZGQoaGlnaGxpZ2h0UnVsZS5zdWJzdHJpbmcoMSxoaWdobGlnaHRSdWxlLmxlbmd0aC0xKSk7XG5cdFx0fSBlbHNlIGlmICgvXFxELy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSB7IC8vIFBsYWluIFRleHRcblx0XHRcdHBsYWluVGV4dC5hZGQoaGlnaGxpZ2h0UnVsZSk7XG5cdFx0fSBlbHNlIGlmICgvXFxkKy8udGVzdChoaWdobGlnaHRSdWxlKSkgeyAvLyBQbGFpbiBOdW1iZXJcblx0XHRcdGxpbmVOdW1iZXJzLmFkZChwYXJzZUludChoaWdobGlnaHRSdWxlKSk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIHtcblx0XHRsaW5lTnVtYmVyczogWy4uLmxpbmVOdW1iZXJzXSxcblx0XHRwbGFpblRleHQ6IFsuLi5wbGFpblRleHRdLFxuXHRcdHJlZ3VsYXJFeHByZXNzaW9uczogWy4uLnJlZ3VsYXJFeHByZXNzaW9uc10sXG5cdH07XG59XG5leHBvcnQgZnVuY3Rpb24gaXNMYW5ndWFnZUlnbm9yZWQobGFuZ3VhZ2U6IHN0cmluZywgZXhjbHVkZWRMYW5ndWFnZXNTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gcGFyc2VSZWdleEV4Y2x1ZGVkTGFuZ3VhZ2VzKGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nKS5zb21lKHJlZ2V4RXhjbHVkZWRMYW5ndWFnZT0+cmVnZXhFeGNsdWRlZExhbmd1YWdlLnRlc3QobGFuZ3VhZ2UpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0NvZGVibG9ja0lnbm9yZWQobGFuZ3VhZ2U6IHN0cmluZywgd2hpdGVsaXN0ZWRDb2RlYmxvY2tzU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0cmV0dXJuIChsYW5ndWFnZSBpbiBNYXJrZG93blByZXZpZXdSZW5kZXJlci5jb2RlQmxvY2tQb3N0UHJvY2Vzc29ycykgJiYgIXBhcnNlUmVnZXhFeGNsdWRlZExhbmd1YWdlcyh3aGl0ZWxpc3RlZENvZGVibG9ja3NTdHJpbmcpLnNvbWUocmVnZXhFeGNsdWRlZExhbmd1YWdlPT5yZWdleEV4Y2x1ZGVkTGFuZ3VhZ2UudGVzdChsYW5ndWFnZSkpO1xufVxuZnVuY3Rpb24gcGFyc2VSZWdleEV4Y2x1ZGVkTGFuZ3VhZ2VzKGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nOiBzdHJpbmcpOiBBcnJheTxSZWdFeHA+IHtcblx0cmV0dXJuIGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nLnNwbGl0KFwiLFwiKS5tYXAocmVnZXhMYW5ndWFnZSA9PiBuZXcgUmVnRXhwKGBeJHtyZWdleExhbmd1YWdlLnRyaW0oKS5yZXBsYWNlKC9cXCovZyxcIi4rXCIpfSRgLFwiaVwiKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJhbWV0ZXJMaW5lKGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0bGV0IG9wZW5pbmdDb2RlYmxvY2tMaW5lID0gZ2V0T3BlbmluZ0xpbmUoY29kZWJsb2NrTGluZXMpO1xuXHRpZiAob3BlbmluZ0NvZGVibG9ja0xpbmUgJiYgKG9wZW5pbmdDb2RlYmxvY2tMaW5lICE9PSBjb2RlYmxvY2tMaW5lc1swXSB8fCAvPlxccyooPzpbYH5dKS8udGVzdChvcGVuaW5nQ29kZWJsb2NrTGluZSkpKVxuXHRcdG9wZW5pbmdDb2RlYmxvY2tMaW5lID0gY2xlYW5QYXJhbWV0ZXJMaW5lKG9wZW5pbmdDb2RlYmxvY2tMaW5lKTtcblx0cmV0dXJuIG9wZW5pbmdDb2RlYmxvY2tMaW5lO1xufVxuZnVuY3Rpb24gZ2V0T3BlbmluZ0xpbmUoY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gY29kZWJsb2NrTGluZXMuZmluZCgobGluZTogc3RyaW5nKT0+Qm9vbGVhbih0ZXN0T3BlbmluZ0xpbmUobGluZSkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0T3BlbmluZ0xpbmUoY29kZWJsb2NrTGluZTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgbGluZU1hdGNoID0gL14oXFxzKig/Oj5cXHMqKSopKGBgYCt8fn5+KykvLmV4ZWMoY29kZWJsb2NrTGluZSk7XG5cdGlmICghbGluZU1hdGNoKVxuXHRcdHJldHVybiBcIlwiO1xuXHRpZiAoY29kZWJsb2NrTGluZS5pbmRleE9mKGxpbmVNYXRjaFsyXSxsaW5lTWF0Y2hbMV0ubGVuZ3RoK2xpbmVNYXRjaFsyXS5sZW5ndGgrMSk9PT0tMSlcblx0XHRyZXR1cm4gbGluZU1hdGNoWzJdO1xuXHRyZXR1cm4gXCJcIjtcbn1cbmZ1bmN0aW9uIGNsZWFuUGFyYW1ldGVyTGluZShwYXJhbWV0ZXJMaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gdHJpbVBhcmFtZXRlckxpbmUocGFyYW1ldGVyTGluZSkucmVwbGFjZSgvXig/Oj5cXHMqKSooYGBgK3x+fn4rKS8sXCIkMVwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0cmltUGFyYW1ldGVyTGluZShwYXJhbWV0ZXJMaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gcGFyYW1ldGVyTGluZS50cmltKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGaWxlQ29udGVudExpbmVzKHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkPiB7XG5cdGNvbnN0IGZpbGUgPSBwbHVnaW4uYXBwLnZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChzb3VyY2VQYXRoKTtcblx0aWYgKCFmaWxlKSB7XG5cdFx0Y29uc29sZS5lcnJvcihgRmlsZSBub3QgZm91bmQ6ICR7c291cmNlUGF0aH1gKTtcblx0XHRyZXR1cm47XG5cdH1cblx0Y29uc3QgZmlsZUNvbnRlbnQgPSBhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmNhY2hlZFJlYWQoPFRGaWxlPiBmaWxlKS5jYXRjaCgoZXJyb3IpID0+IHtcblx0XHRjb25zb2xlLmVycm9yKGBFcnJvciByZWFkaW5nIGZpbGU6ICR7ZXJyb3IubWVzc2FnZX1gKTtcblx0XHRyZXR1cm4gXCJcIjtcblx0fSk7XG5cdGlmICghZmlsZUNvbnRlbnQpXG5cdFx0cmV0dXJuO1xuXHRyZXR1cm4gZmlsZUNvbnRlbnQuc3BsaXQoL1xcbi9nKTtcbn1cblxuZnVuY3Rpb24gYXJyYXlzRXF1YWwoYXJyYXkxOiBBcnJheTx1bmtub3duPixhcnJheTI6IEFycmF5PHVua25vd24+KTogYm9vbGVhbiB7XG5cdHJldHVybiBhcnJheTEubGVuZ3RoID09PSBhcnJheTIubGVuZ3RoICYmIGFycmF5MS5ldmVyeSgoZWwpID0+IGFycmF5Mi5pbmNsdWRlcyhlbCkpO1xufVxuIiwgImltcG9ydCB7Tm90aWNlfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCAqIGFzIEpTT041IGZyb20gXCJqc29uNVwiO1xuXG5leHBvcnQgdHlwZSBFeHBvcnRUeXBlID0gXCJwcmVcIiB8IFwicG9zdFwiO1xuXG4vKipcbiAqIEFyZ3VtZW50cyBmb3IgY29kZSBibG9ja3MsIHNwZWNpZmllZCBuZXh0IHRvIHRoZSBsYW5ndWFnZSBpZGVudGlmaWVyIGFzIEpTT05cbiAqIEBleGFtcGxlIGBgYHB5dGhvbiB7XCJleHBvcnRcIjogXCJwcmVcIn1cbiAqIEBleGFtcGxlIGBgYGNwcCB7XCJpZ25vcmVFeHBvcnRcIjogW1wicG9zdFwiXX1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQmxvY2tBcmdzIHtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdGltcG9ydD86IHN0cmluZyB8IHN0cmluZ1tdO1xuXHRleHBvcnQ/OiBFeHBvcnRUeXBlIHwgRXhwb3J0VHlwZVtdO1xuXHRpZ25vcmU/OiAoRXhwb3J0VHlwZSB8IFwiZ2xvYmFsXCIpW10gfCBFeHBvcnRUeXBlIHwgXCJnbG9iYWxcIiB8IFwiYWxsXCI7XG59XG5cbi8qKlxuICogR2V0IGNvZGUgYmxvY2sgYXJncyBnaXZlbiB0aGUgZmlyc3QgbGluZSBvZiB0aGUgY29kZSBibG9jay5cbiAqXG4gKiBAcGFyYW0gZmlyc3RMaW5lT2ZDb2RlIFRoZSBmaXJzdCBsaW5lIG9mIGEgY29kZSBibG9jayB0aGF0IGNvbnRhaW5zIHRoZSBsYW5ndWFnZSBuYW1lLlxuICogQHJldHVybnMgVGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBjb2RlIGJsb2NrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXJncyhmaXJzdExpbmVPZkNvZGU6IHN0cmluZyk6IENvZGVCbG9ja0FyZ3Mge1xuXHQvLyBObyBhcmdzIHNwZWNpZmllZFxuXHRpZiAoIWZpcnN0TGluZU9mQ29kZS5jb250YWlucyhcIntcIikgJiYgIWZpcnN0TGluZU9mQ29kZS5jb250YWlucyhcIn1cIikpXG5cdFx0cmV0dXJuIHt9O1xuXHR0cnkge1xuXHRcdGxldCBhcmdzID0gZmlyc3RMaW5lT2ZDb2RlLnN1YnN0cmluZyhmaXJzdExpbmVPZkNvZGUuaW5kZXhPZihcIntcIikgKyAxKS50cmltKCk7XG5cdFx0Ly8gVHJhbnNmb3JtIGN1c3RvbSBzeW50YXggdG8gSlNPTjVcblx0XHRhcmdzID0gYXJncy5yZXBsYWNlKC89L2csIFwiOlwiKTtcblx0XHQvLyBIYW5kbGUgdW5uYW1lZCBleHBvcnQgYXJnIC0gcHJlIC8gcG9zdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcmdzIHdpdGhvdXQgYW55IGFyZyBuYW1lXG5cdFx0Y29uc3QgZXhwb3J0czogRXhwb3J0VHlwZVtdID0gW107XG5cdFx0Y29uc3QgaGFuZGxlVW5uYW1lZEV4cG9ydCA9IChleHBvcnROYW1lOiBFeHBvcnRUeXBlKSA9PiB7XG5cdFx0XHRsZXQgaSA9IGFyZ3MuaW5kZXhPZihleHBvcnROYW1lKTtcblx0XHRcdHdoaWxlIChpICE9PSAtMSkge1xuXHRcdFx0XHRjb25zdCBuZXh0Q2hhciA9IGFyZ3NbaSArIGV4cG9ydE5hbWUubGVuZ3RoXTtcblx0XHRcdFx0aWYgKG5leHRDaGFyICE9PSBcIlxcXCJcIiAmJiBuZXh0Q2hhciAhPT0gXCInXCIpIHtcblx0XHRcdFx0XHQvLyBSZW1vdmUgZnJvbSBhcmdzIHN0cmluZ1xuXHRcdFx0XHRcdGFyZ3MgPSBhcmdzLnN1YnN0cmluZygwLCBpKSArIGFyZ3Muc3Vic3RyaW5nKGkgKyBleHBvcnROYW1lLmxlbmd0aCArIChuZXh0Q2hhciA9PT0gXCJ9XCIgPyAwIDogMSkpO1xuXHRcdFx0XHRcdGV4cG9ydHMucHVzaChleHBvcnROYW1lKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpID0gYXJncy5pbmRleE9mKGV4cG9ydE5hbWUsIGkgKyAxKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdGhhbmRsZVVubmFtZWRFeHBvcnQoXCJwcmVcIik7XG5cdFx0aGFuZGxlVW5uYW1lZEV4cG9ydChcInBvc3RcIik7XG5cdFx0YXJncyA9IGB7ZXhwb3J0OiBbJyR7ZXhwb3J0cy5qb2luKFwiJywgJ1wiKX0nXSwgJHthcmdzfWA7XG5cdFx0cmV0dXJuIEpTT041LnBhcnNlKGFyZ3MpO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHRuZXcgTm90aWNlKGBGYWlsZWQgdG8gcGFyc2UgY29kZSBibG9jayBhcmd1bWVudHMgZnJvbSBsaW5lOlxcbiR7Zmlyc3RMaW5lT2ZDb2RlfVxcblxcbkZhaWxlZCB3aXRoIGVycm9yOlxcbiR7ZXJyfWApO1xuXHRcdHJldHVybiB7fTtcblx0fVxufVxuIiwgIlxuZXhwb3J0IGludGVyZmFjZSBJbmxpbmVDb2RlUGFyYW1ldGVycyB7XG5cdGxhbmd1YWdlOiBzdHJpbmc7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdGljb246IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUlubGluZUNvZGUoY29kZVRleHQ6IHN0cmluZyk6IHtwYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycyB8IG51bGwsIHRleHQ6IHN0cmluZ30ge1xuXHRjb25zdCBtYXRjaCA9IC9eeyggKig/OlxcdysoPzogKyg/Oig/OlteXFxzXCInXSt8XCJbXlwiXSpcInwnW14nXSonKSspKSopPyAqKX0gKj8oW14gXS4qPykkLy5leGVjKGNvZGVUZXh0KTtcblxuXHRpZiAodHlwZW9mIG1hdGNoPy5bMV0gIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIG1hdGNoPy5bMl0gIT09IFwidW5kZWZpbmVkXCIpIHtcblx0XHRpZiAobWF0Y2hbMV0gPT09IFwiXCIpXG5cdFx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IG51bGwsIHRleHQ6IG1hdGNoWzJdfTtcblx0XHRlbHNlXG5cdFx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlcnMobWF0Y2hbMV0pLCB0ZXh0OiBtYXRjaFsyXX07XG5cdH0gZWxzZSBcblx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IG51bGwsIHRleHQ6IGNvZGVUZXh0fTtcbn1cbmZ1bmN0aW9uIHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlcnMocGFyYW1ldGVyTGluZTogc3RyaW5nKTogSW5saW5lQ29kZVBhcmFtZXRlcnMge1xuXHRjb25zdCBpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMgPSB7XG5cdFx0bGFuZ3VhZ2U6IFwiXCIsXG5cdFx0dGl0bGU6IFwiXCIsXG5cdFx0aWNvbjogZmFsc2UsXG5cdH07XG5cdGNvbnN0IGxhbmd1YWdlQnJlYWsgPSBwYXJhbWV0ZXJMaW5lLmluZGV4T2YoXCIgXCIpO1xuXHRpbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSA9IHBhcmFtZXRlckxpbmUuc2xpY2UoMCxsYW5ndWFnZUJyZWFrICE9PSAtMT9sYW5ndWFnZUJyZWFrOnBhcmFtZXRlckxpbmUubGVuZ3RoKS50b0xvd2VyQ2FzZSgpO1xuXHRpZiAobGFuZ3VhZ2VCcmVhayA9PT0gLTEpXG5cdFx0cmV0dXJuIGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRjb25zdCBwYXJhbWV0ZXJTdHJpbmdzID0gcGFyYW1ldGVyTGluZS5zbGljZShsYW5ndWFnZUJyZWFrKzEpLm1hdGNoKC8oPzpbXlxcc1wiJ10rfFwiW15cIl0qXCJ8J1teJ10qJykrL2cpO1xuXHRpZiAoIXBhcmFtZXRlclN0cmluZ3MpXG5cdFx0cmV0dXJuIGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRwYXJhbWV0ZXJTdHJpbmdzLmZvckVhY2goKHBhcmFtZXRlclN0cmluZykgPT4gcGFyc2VJbmxpbmVDb2RlUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZyxpbmxpbmVDb2RlUGFyYW1ldGVycykpO1xuXHRyZXR1cm4gaW5saW5lQ29kZVBhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJTdHJpbmcocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycyk6IHZvaWQge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nLnN0YXJ0c1dpdGgoXCJ0aXRsZTpcIikpIHtcblx0XHRjb25zdCB0aXRsZU1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcInRpdGxlOlwiLmxlbmd0aCkpO1xuXHRcdGlmICh0aXRsZU1hdGNoKVxuXHRcdFx0aW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUgPSB0aXRsZU1hdGNoWzJdLnRyaW0oKTtcblx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwiaWNvblwiIHx8IChwYXJhbWV0ZXJTdHJpbmcuc3RhcnRzV2l0aChcImljb246XCIpICYmIHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImljb246dHJ1ZVwiKSlcblx0XHRpbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uID0gdHJ1ZTtcbn1cblxuIiwgImltcG9ydCB7IExBTkdVQUdFX05BTUVTLCBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgRk9MRF9QTEFDRUhPTERFUiB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBIaWdobGlnaHRzIH0gZnJvbSBcIi4vUGFyc2luZy9Db2RlYmxvY2tQYXJzaW5nXCI7XG5pbXBvcnQgeyBJbmxpbmVDb2RlUGFyYW1ldGVycyB9IGZyb20gXCIuL1BhcnNpbmcvSW5saW5lQ29kZVBhcnNpbmdcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGVhZGVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEhUTUxFbGVtZW50IHtcblx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlRGl2KCk7XG5cdGNvbnN0IGljb25VUkwgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlP2dldExhbmd1YWdlSWNvbihjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5sYW5ndWFnZUljb25zKTp1bmRlZmluZWQ7XG5cdGlmICghaXNIZWFkZXJIaWRkZW4oY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZVNldHRpbmdzLGljb25VUkwpKSB7XG5cdFx0aGVhZGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyXCIpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlICE9PSBcIlwiKSB7XG5cdFx0XHRpZiAoaXNMYW5ndWFnZUljb25TaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzLHRoZW1lU2V0dGluZ3MsaWNvblVSTCkpXG5cdFx0XHRcdGhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVJbWFnZVdyYXBwZXIoaWNvblVSTCBhcyBzdHJpbmcsY3JlYXRlRGl2KCkpKTtcblx0XHRcdGlmIChpc0xhbmd1YWdlVGFnU2hvd24oY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZVNldHRpbmdzKSlcblx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWdcIiwgdGV4dDogZ2V0TGFuZ3VhZ2VUYWcoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSl9KSk7XG5cdFx0fVxuXHRcdGNvbnN0IHRpdGxlQ29udGFpbmVyID0gY3JlYXRlVGl0bGVDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5ncywgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQodGl0bGVDb250YWluZXIpO1xuXHR9IGVsc2Vcblx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuXCIpO1xuXHRyZXR1cm4gaGVhZGVyQ29udGFpbmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlVGl0bGVDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogSFRNTEVsZW1lbnQge1xuXHRjb25zdCB0aXRsZUNvbnRhaW5lciA9IGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWhlYWRlci10ZXh0XCJ9KTtcblx0Y29uc3QgdGl0bGUgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlIHx8IChjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZD8oY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLnBsYWNlaG9sZGVyIHx8IHRoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciB8fCBGT0xEX1BMQUNFSE9MREVSKTpcIlwiKTtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID09PSBcIlwiKVxuXHRcdHRpdGxlQ29udGFpbmVyLmlubmVyVGV4dCA9IHRpdGxlO1xuXHRlbHNlIHtcblx0XHRNYXJrZG93blJlbmRlcmVyLnJlbmRlcihwbHVnaW4uYXBwLGBbWyR7Y29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2V9fCR7dGl0bGV9XV1gLHRpdGxlQ29udGFpbmVyLHNvdXJjZVBhdGgsbmV3IENvbXBvbmVudCgpKTsgLy9UT0RPIChAbWF5dXJhbmt2KSBBZGQgbGlua3MgdG8gbWV0YWRhdGEgY2FjaGUgcHJvcGVybHlcblx0fVxuXHRyZXR1cm4gdGl0bGVDb250YWluZXI7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5saW5lT3BlbmVyKGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycywgbGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+LCBjb250YWluZXJDbGFzc2VzOiBBcnJheTxzdHJpbmc+ID0gW1wiY29kZS1zdHlsZXItaW5saW5lLW9wZW5lclwiXSk6IEhUTUxFbGVtZW50IHtcblx0Y29uc3Qgb3BlbmVyQ29udGFpbmVyID0gY3JlYXRlU3Bhbih7Y2xzOiBjb250YWluZXJDbGFzc2VzLmpvaW4oXCIgXCIpfSk7XG5cdGlmIChpbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uKSB7XG5cdFx0Y29uc3QgaWNvblVSTCA9IGdldExhbmd1YWdlSWNvbihpbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSxsYW5ndWFnZUljb25zKTtcblx0XHRpZiAodHlwZW9mIGljb25VUkwgIT09IFwidW5kZWZpbmVkXCIpXG5cdFx0XHRvcGVuZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlSW1hZ2VXcmFwcGVyKGljb25VUkwsY3JlYXRlU3BhbigpLFwiY29kZS1zdHlsZXItaW5saW5lLWljb25cIikpO1xuXHR9XG5cdGlmIChpbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZSlcblx0XHRvcGVuZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbih7Y2xzOiBcImNvZGUtc3R5bGVyLWlubGluZS10aXRsZVwiLCB0ZXh0OiBpbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZX0pKTtcblx0cmV0dXJuIG9wZW5lckNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUltYWdlV3JhcHBlcihpY29uVVJMOiBzdHJpbmcsIGltYWdlV3JhcHBlcjogSFRNTEVsZW1lbnQsIGltZ0NsYXNzID0gXCJjb2RlLXN0eWxlci1pY29uXCIpOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIik7XG5cdGltZy5jbGFzc0xpc3QuYWRkKGltZ0NsYXNzKTtcblx0aW1nLnNyYyA9IGljb25VUkw7XG5cdGltYWdlV3JhcHBlci5hcHBlbmRDaGlsZChpbWcpO1xuXHRyZXR1cm4gaW1hZ2VXcmFwcGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VJY29uKGxhbmd1YWdlOiBzdHJpbmcsIGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBsYW5ndWFnZUljb25zPy5bZ2V0TGFuZ3VhZ2VUYWcobGFuZ3VhZ2UpXTtcbn1cbmZ1bmN0aW9uIGdldExhbmd1YWdlVGFnKGxhbmd1YWdlOiBzdHJpbmcpIHtcblx0cmV0dXJuIExBTkdVQUdFX05BTUVTPy5bbGFuZ3VhZ2VdID8/IChsYW5ndWFnZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGxhbmd1YWdlLnNsaWNlKDEpIHx8IFwiXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSGVhZGVySGlkZGVuKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBpY29uVVJMOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0cmV0dXJuICFpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMpICYmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID09PSBcIlwiIHx8ICh0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ICE9PSBcImFsd2F5c1wiICYmICh0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSAhPT0gXCJhbHdheXNcIiB8fCAodHlwZW9mIGljb25VUkwgPT0gXCJ1bmRlZmluZWRcIikpKSk7XG59XG5mdW5jdGlvbiBpc0xhbmd1YWdlSWNvblNob3duKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBpY29uVVJMOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0cmV0dXJuICh0eXBlb2YgaWNvblVSTCAhPT0gXCJ1bmRlZmluZWRcIikgJiYgKHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBcImFsd2F5c1wiIHx8IChpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMpICYmIHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBcImlmX2hlYWRlcl9zaG93blwiKSk7XG59XG5mdW5jdGlvbiBpc0xhbmd1YWdlVGFnU2hvd24oY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MpOiBib29sZWFuIHtcblx0cmV0dXJuIHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IFwiYWx3YXlzXCIgfHwgKGlzSGVhZGVyUmVxdWlyZWQoY29kZWJsb2NrUGFyYW1ldGVycykgJiYgdGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gXCJpZl9oZWFkZXJfc2hvd25cIik7XG59XG5mdW5jdGlvbiBpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpOiBib29sZWFuIHtcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgIT09IFwiXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5lQ2xhc3MoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgbGluZU51bWJlcjogbnVtYmVyLCBsaW5lOiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcblx0bGV0IGNsYXNzTGlzdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQubGluZU51bWJlcnMuaW5jbHVkZXMobGluZU51bWJlcitjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQucGxhaW5UZXh0LnNvbWUodGV4dCA9PiBsaW5lLmluZGV4T2YodGV4dCkgPiAtMSkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQucmVndWxhckV4cHJlc3Npb25zLnNvbWUocmVnRXhwID0+IHJlZ0V4cC50ZXN0KGxpbmUpKSlcblx0XHRjbGFzc0xpc3QucHVzaChcImNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWRcIik7XG5cdE9iamVjdC5lbnRyaWVzKGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZSkuZm9yRWFjaCgoW2FsdGVybmF0aXZlSGlnaGxpZ2h0LGhpZ2hsaWdodGVkTGluZXNdOiBbc3RyaW5nLEhpZ2hsaWdodHNdKSA9PiB7XG5cdFx0aWYgKGhpZ2hsaWdodGVkTGluZXMubGluZU51bWJlcnMuaW5jbHVkZXMobGluZU51bWJlcitjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkgfHwgaGlnaGxpZ2h0ZWRMaW5lcy5wbGFpblRleHQuc29tZSh0ZXh0ID0+IGxpbmUuaW5kZXhPZih0ZXh0KSA+IC0xKSB8fCBoaWdobGlnaHRlZExpbmVzLnJlZ3VsYXJFeHByZXNzaW9ucy5zb21lKHJlZ0V4cCA9PiByZWdFeHAudGVzdChsaW5lKSkpXG5cdFx0XHRjbGFzc0xpc3QucHVzaChgY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZC0ke2FsdGVybmF0aXZlSGlnaGxpZ2h0LnJlcGxhY2UoL1xccysvZywgXCItXCIpLnRvTG93ZXJDYXNlKCl9YCk7XG5cdH0pO1xuXHRpZiAoY2xhc3NMaXN0Lmxlbmd0aCA9PT0gMClcblx0XHRjbGFzc0xpc3QgPSBbXCJjb2RlLXN0eWxlci1saW5lXCJdO1xuXHRyZXR1cm4gY2xhc3NMaXN0O1xufVxuIiwgImltcG9ydCB7IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uLCBDYWNoZWRNZXRhZGF0YSwgc2FuaXRpemVIVE1MVG9Eb20sIEZyb250TWF0dGVyQ2FjaGUsIE1hcmtkb3duUmVuZGVyZXIsIENvbXBvbmVudCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgdmlzaXRQYXJlbnRzIH0gZnJvbSBcInVuaXN0LXV0aWwtdmlzaXQtcGFyZW50c1wiO1xuaW1wb3J0IHsgZnJvbUh0bWwgfSBmcm9tIFwiaGFzdC11dGlsLWZyb20taHRtbFwiO1xuaW1wb3J0IHsgdG9IdG1sIH0gZnJvbSBcImhhc3QtdXRpbC10by1odG1sXCI7XG5cbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuL21haW5cIjtcbmltcG9ydCB7IFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYLCBUUkFOU0lUSU9OX0xFTkdUSCB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBnZXRGaWxlQ29udGVudExpbmVzLCBpc0NvZGVibG9ja0lnbm9yZWQsIGlzTGFuZ3VhZ2VJZ25vcmVkLCBwYXJzZUNvZGVibG9ja1NvdXJjZSB9IGZyb20gXCIuL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZ1wiO1xuaW1wb3J0IHsgSW5saW5lQ29kZVBhcmFtZXRlcnMsIHBhcnNlSW5saW5lQ29kZSB9IGZyb20gXCIuL1BhcnNpbmcvSW5saW5lQ29kZVBhcnNpbmdcIjtcbmltcG9ydCB7IGNyZWF0ZUhlYWRlciwgY3JlYXRlSW5saW5lT3BlbmVyLCBnZXRMaW5lQ2xhc3MgYXMgZ2V0TGluZUNsYXNzZXMgfSBmcm9tIFwiLi9Db2RlYmxvY2tEZWNvcmF0aW5nXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB7c291cmNlUGF0aCxnZXRTZWN0aW9uSW5mbyxmcm9udG1hdHRlcn06IHtzb3VyY2VQYXRoOiBzdHJpbmcsIGdldFNlY3Rpb25JbmZvOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCwgZnJvbnRtYXR0ZXI6IEZyb250TWF0dGVyQ2FjaGUgfCB1bmRlZmluZWR9LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGVkaXRpbmdFbWJlZHMgPSBmYWxzZSkge1xuXHRjb25zdCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsID0gcGx1Z2luLmFwcC5tZXRhZGF0YUNhY2hlLmdldENhY2hlKHNvdXJjZVBhdGgpO1xuXHRpZiAoIXNvdXJjZVBhdGggfHwgIWVsZW1lbnQgfHwgKGZyb250bWF0dGVyID8/IGNhY2hlPy5mcm9udG1hdHRlcik/LltcImNvZGUtc3R5bGVyLWlnbm9yZVwiXSA9PT0gdHJ1ZSlcblx0XHRyZXR1cm47XG5cblx0ZWRpdGluZ0VtYmVkcyA9IGVkaXRpbmdFbWJlZHMgfHwgQm9vbGVhbihlbGVtZW50Lm1hdGNoUGFyZW50KFwiLmNtLWVtYmVkLWJsb2NrXCIpKTtcblx0Y29uc29sZS5sb2coZWxlbWVudCk7XG5cdGNvbnN0IHNwZWNpZmljID0gIWVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi52aWV3LWNvbnRlbnQgPiAqXCIpO1xuXHRjb25zdCBwcmludGluZyA9IEJvb2xlYW4oZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2LnByaW50ID4gKlwiKSkgfHwgQm9vbGVhbihlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJkaXYuc2xpZGVzID4gKlwiKSk7XG5cdGlmIChwcmludGluZyAmJiAhcGx1Z2luLnNldHRpbmdzLmRlY29yYXRlUHJpbnQpXG5cdFx0cmV0dXJuO1xuXG5cdGNvbnN0IGNvZGVibG9ja1ByZUVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD4gPSBhd2FpdCBnZXRDb2RlYmxvY2tQcmVFbGVtZW50cyhlbGVtZW50LHNwZWNpZmljLGVkaXRpbmdFbWJlZHMpO1xuXHRpZiAoY29kZWJsb2NrUHJlRWxlbWVudHMubGVuZ3RoID09PSAwICYmICEoZWRpdGluZ0VtYmVkcyAmJiBzcGVjaWZpYykpXG5cdFx0cmV0dXJuO1xuXG5cdGNvbnN0IGNvZGVibG9ja1NlY3Rpb25JbmZvOiBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiB8IG51bGwgPSBnZXRTZWN0aW9uSW5mbyhjb2RlYmxvY2tQcmVFbGVtZW50c1swXSk7XG5cdGlmIChjb2RlYmxvY2tTZWN0aW9uSW5mbyAmJiBzcGVjaWZpYyAmJiAhZWRpdGluZ0VtYmVkcylcblx0XHRhd2FpdCByZW5kZXJTcGVjaWZpY1JlYWRpbmdTZWN0aW9uKGNvZGVibG9ja1ByZUVsZW1lbnRzLHNvdXJjZVBhdGgsY29kZWJsb2NrU2VjdGlvbkluZm8scGx1Z2luKTtcblx0ZWxzZSBpZiAoc3BlY2lmaWMgJiYgc291cmNlUGF0aC5zdGFydHNXaXRoKFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYKSlcblx0XHRhd2FpdCByZW5kZXJTZXR0aW5ncyhjb2RlYmxvY2tQcmVFbGVtZW50cyxzb3VyY2VQYXRoLHBsdWdpbik7XG5cdGVsc2UgaWYgKHNwZWNpZmljICYmICFwcmludGluZylcblx0XHRhd2FpdCByZXRyaWdnZXJQcm9jZXNzb3IoZWxlbWVudCx7c291cmNlUGF0aCxnZXRTZWN0aW9uSW5mbyxmcm9udG1hdHRlcn0scGx1Z2luLGVkaXRpbmdFbWJlZHMpO1xuXHRlbHNlXG5cdFx0YXdhaXQgcmVuZGVyRG9jdW1lbnQoY29kZWJsb2NrUHJlRWxlbWVudHMsc291cmNlUGF0aCxjYWNoZSxlZGl0aW5nRW1iZWRzLHByaW50aW5nLHBsdWdpbik7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZGluZ1ZpZXdJbmxpbmVEZWNvcmF0aW5nUG9zdFByb2Nlc3NvcihlbGVtZW50OiBIVE1MRWxlbWVudCwge3NvdXJjZVBhdGh9OiB7c291cmNlUGF0aDogc3RyaW5nLCBnZXRTZWN0aW9uSW5mbzogKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiB8IG51bGwsIGZyb250bWF0dGVyOiBGcm9udE1hdHRlckNhY2hlIHwgdW5kZWZpbmVkfSwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGlmICghc291cmNlUGF0aCB8fCAhZWxlbWVudClcblx0XHRyZXR1cm47XG5cdGZvciAoY29uc3QgaW5saW5lQ29kZUVsZW1lbnQgb2YgQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCI6bm90KHByZSkgPiBjb2RlXCIpKSkge1xuXHRcdGF3YWl0IHJlbWFrZUlubGluZUNvZGUoaW5saW5lQ29kZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQscGx1Z2luKTtcblx0fVxufVxuZXhwb3J0IGZ1bmN0aW9uIGRlc3Ryb3lSZWFkaW5nTW9kZUVsZW1lbnRzKCk6IHZvaWQge1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmNvZGUtc3R5bGVyLXByZS1wYXJlbnRcIikuZm9yRWFjaChjb2RlYmxvY2tQcmVQYXJlbnQgPT4ge1xuXHRcdGNvZGVibG9ja1ByZVBhcmVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItcHJlLXBhcmVudFwiKTtcblx0fSk7XG5cdFtcblx0XHQuLi5BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUuY29kZS1zdHlsZXItcHJlIGRpdltjbGFzc149J2NvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXInXVwiKSksXG5cdFx0Li4uQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlLmNvZGUtc3R5bGVyLXByZSBkaXZbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddXCIpKSxcblx0XHQuLi5BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCI6bm90KHByZSkgPiBjb2RlIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lclwiKSksXG5cdF0uZm9yRWFjaChlbGVtZW50ID0+IGVsZW1lbnQucmVtb3ZlKCkpO1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlLmNvZGUtc3R5bGVyLXByZVwiKS5mb3JFYWNoKChjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLXByZVwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1mb2xkZWRcIik7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tdHJ1ZS1oZWlnaHRcIik7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tbGluZS1udW1iZXItbWFyZ2luXCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCJtYXgtaGVpZ2h0XCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCJ3aGl0ZS1zcGFjZVwiKTtcblx0fSk7XG5cdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUgPiBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXRcIikuZm9yRWFjaCgoZXhlY3V0ZUNvZGVPdXRwdXQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0ZXhlY3V0ZUNvZGVPdXRwdXQuY2xhc3NMaXN0LnJlbW92ZShcImV4ZWN1dGUtY29kZS1vdXRwdXRcIik7XG5cdFx0ZXhlY3V0ZUNvZGVPdXRwdXQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLXRydWUtaGVpZ2h0XCIpO1xuXHRcdGV4ZWN1dGVDb2RlT3V0cHV0LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKTtcblx0fSk7XG5cdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUgPiBjb2RlOm50aC1vZi10eXBlKDEpXCIpLmZvckVhY2goKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS10cnVlLWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tbGluZS13cmFwcGluZ1wiKTtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tbGluZS1hY3RpdmUtd3JhcHBpbmdcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCJtYXgtaGVpZ2h0XCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwid2hpdGUtc3BhY2VcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuaW5uZXJIVE1MID0gQXJyYXkuZnJvbShjb2RlYmxvY2tDb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiY29kZSA+IFtjbGFzcyo9XFxcImNvZGUtc3R5bGVyLWxpbmVcXFwiXVwiKSkucmVkdWNlKChyZWNvbnN0cnVjdGVkQ29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIGNvZGVibG9ja0xpbmU6IEhUTUxFbGVtZW50KTogQXJyYXk8c3RyaW5nPiA9PiB7XG5cdFx0XHRjb25zdCBjb2RlYmxvY2tMaW5lVGV4dCA9IChjb2RlYmxvY2tMaW5lLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpO1xuXHRcdFx0aWYgKGNvZGVibG9ja0xpbmVUZXh0KVxuXHRcdFx0XHRyZWNvbnN0cnVjdGVkQ29kZWJsb2NrTGluZXMucHVzaChjb2RlYmxvY2tMaW5lVGV4dC5pbm5lckhUTUwpO1xuXHRcdFx0cmV0dXJuIHJlY29uc3RydWN0ZWRDb2RlYmxvY2tMaW5lcztcblx0XHR9LFtdKS5qb2luKFwiXFxuXCIpK1wiXFxuXCI7XG5cdH0pO1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiOm5vdChwcmUpID4gY29kZVwiKS5mb3JFYWNoKChpbmxpbmVDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItaGlnaGxpZ2h0ZWRcIik7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWhpZ2hsaWdodC1pZ25vcmVcIik7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuaW5uZXJUZXh0ID0gaW5saW5lQ29kZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwicGFyYW1ldGVyc1wiKSArIGlubGluZUNvZGVFbGVtZW50LmlubmVyVGV4dDtcblx0fSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlclNwZWNpZmljUmVhZGluZ1NlY3Rpb24oY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Piwgc291cmNlUGF0aDogc3RyaW5nLCBjb2RlYmxvY2tTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBjb2RlYmxvY2tzUGFyYW1ldGVycyA9IChhd2FpdCBwYXJzZUNvZGVibG9ja1NvdXJjZShBcnJheS5mcm9tKHtsZW5ndGg6IGNvZGVibG9ja1NlY3Rpb25JbmZvLmxpbmVFbmQtY29kZWJsb2NrU2VjdGlvbkluZm8ubGluZVN0YXJ0KzF9LCAoXyxudW0pID0+IG51bSArIGNvZGVibG9ja1NlY3Rpb25JbmZvLmxpbmVTdGFydCkubWFwKChsaW5lTnVtYmVyKT0+Y29kZWJsb2NrU2VjdGlvbkluZm8udGV4dC5zcGxpdChcIlxcblwiKVtsaW5lTnVtYmVyXSkscGx1Z2luLHNvdXJjZVBhdGgpKS5jb2RlYmxvY2tzUGFyYW1ldGVycztcblx0YXdhaXQgcmVtYWtlQ29kZWJsb2Nrcyhjb2RlYmxvY2tQcmVFbGVtZW50cyxjb2RlYmxvY2tzUGFyYW1ldGVycyxzb3VyY2VQYXRoLHRydWUsZmFsc2UscGx1Z2luKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlclNldHRpbmdzKGNvZGVibG9ja1ByZUVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD4sIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzID0gKGF3YWl0IHBhcnNlQ29kZWJsb2NrU291cmNlKHNvdXJjZVBhdGguc3Vic3RyaW5nKFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYLmxlbmd0aCkuc3BsaXQoXCJcXG5cIikscGx1Z2luKSkuY29kZWJsb2Nrc1BhcmFtZXRlcnM7XG5cdGF3YWl0IHJlbWFrZUNvZGVibG9ja3MoY29kZWJsb2NrUHJlRWxlbWVudHMsY29kZWJsb2Nrc1BhcmFtZXRlcnMsc291cmNlUGF0aCx0cnVlLGZhbHNlLHBsdWdpbik7XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJEb2N1bWVudChjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIGNhY2hlOiBDYWNoZWRNZXRhZGF0YSB8IG51bGwsIGVkaXRpbmdFbWJlZHM6IGJvb2xlYW4sIHByaW50aW5nOiBib29sZWFuLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0Y29uc3QgY29kZWJsb2Nrc1BhcmFtZXRlcnM6IEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+ID0gYXdhaXQgZ2V0Q29kZWJsb2Nrc1BhcmFtZXRlcnMoc291cmNlUGF0aCxjYWNoZSxwbHVnaW4sZWRpdGluZ0VtYmVkcyk7XG5cdGF3YWl0IHJlbWFrZUNvZGVibG9ja3MoY29kZWJsb2NrUHJlRWxlbWVudHMsY29kZWJsb2Nrc1BhcmFtZXRlcnMsc291cmNlUGF0aCwhcHJpbnRpbmcsdHJ1ZSxwbHVnaW4pO1xufVxuYXN5bmMgZnVuY3Rpb24gcmV0cmlnZ2VyUHJvY2Vzc29yKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0OiB7c291cmNlUGF0aDogc3RyaW5nLCBnZXRTZWN0aW9uSW5mbzogKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiB8IG51bGwsIGZyb250bWF0dGVyOiBGcm9udE1hdHRlckNhY2hlIHwgdW5kZWZpbmVkfSwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBlZGl0aW5nRW1iZWRzOiBib29sZWFuKSB7XG5cdGlmIChlbGVtZW50Lm1hdGNoUGFyZW50KFwiZGl2LmJsb2NrLWxhbmd1YWdlLWRhdGF2aWV3anNcIikgJiYgaXNDb2RlYmxvY2tJZ25vcmVkKFwiZGF0YXZpZXdqc1wiLHBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSlcblx0XHRyZXR1cm47XG5cdGF3YWl0IHNsZWVwKDUwKTtcblx0ZWRpdGluZ0VtYmVkcyA9IGVkaXRpbmdFbWJlZHMgfHwgQm9vbGVhbihlbGVtZW50Lm1hdGNoUGFyZW50KFwiLmNtLWVtYmVkLWJsb2NrXCIpKTtcblx0aWYgKGVkaXRpbmdFbWJlZHMgfHwgIWVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiYWRtb25pdGlvbi1jb250ZW50XCIpKSB7XG5cdFx0Y29uc3QgY29udGVudEVsID0gZWxlbWVudC5tYXRjaFBhcmVudChcIi52aWV3LWNvbnRlbnRcIikgPz8gZWxlbWVudC5tYXRjaFBhcmVudChcImRpdi5wcmludFwiKTtcblx0XHRpZiAoY29udGVudEVsICE9PSBudWxsKVxuXHRcdFx0YXdhaXQgcmVhZGluZ1ZpZXdDb2RlYmxvY2tEZWNvcmF0aW5nUG9zdFByb2Nlc3Nvcihjb250ZW50RWwgYXMgSFRNTEVsZW1lbnQsY29udGV4dCxwbHVnaW4sZWRpdGluZ0VtYmVkcyk7IC8vIFJlLXJlbmRlciB3aG9sZSBkb2N1bWVudFxuXHR9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbWFrZUNvZGVibG9ja3MoY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50PiwgY29kZWJsb2Nrc1BhcmFtZXRlcnM6IEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIGR5bmFtaWM6IGJvb2xlYW4sIHNraXBTdHlsZWQ6IGJvb2xlYW4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRpZiAoY29kZWJsb2NrUHJlRWxlbWVudHMubGVuZ3RoICE9PSBjb2RlYmxvY2tzUGFyYW1ldGVycy5sZW5ndGgpXG5cdFx0cmV0dXJuO1xuXHRmb3IgKGNvbnN0IFtrZXksY29kZWJsb2NrUHJlRWxlbWVudF0gb2YgQXJyYXkuZnJvbShjb2RlYmxvY2tQcmVFbGVtZW50cykuZW50cmllcygpKSB7XG5cdFx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVycyA9IGNvZGVibG9ja3NQYXJhbWV0ZXJzW2tleV07XG5cdFx0Y29uc3QgY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGNvZGVibG9ja1ByZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcInByZSA+IGNvZGVcIik7XG5cdFx0aWYgKCFjb2RlYmxvY2tDb2RlRWxlbWVudClcblx0XHRcdHJldHVybjtcblx0XHRpZiAoQXJyYXkuZnJvbShjb2RlYmxvY2tDb2RlRWxlbWVudC5jbGFzc0xpc3QpLnNvbWUoY2xhc3NOYW1lID0+IC9ebGFuZ3VhZ2UtXFxTKy8udGVzdChjbGFzc05hbWUpKSlcblx0XHRcdHdoaWxlKCFjb2RlYmxvY2tDb2RlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJpcy1sb2FkZWRcIikpXG5cdFx0XHRcdGF3YWl0IHNsZWVwKDIpO1xuXHRcdGlmIChza2lwU3R5bGVkICYmIGNvZGVibG9ja0NvZGVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjb2RlIFtjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVwiKSlcblx0XHRcdGNvbnRpbnVlO1xuXHRcdGlmIChpc0xhbmd1YWdlSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5zZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcykgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5pZ25vcmUpXG5cdFx0XHRjb250aW51ZTtcblx0XHRhd2FpdCByZW1ha2VDb2RlYmxvY2soY29kZWJsb2NrQ29kZUVsZW1lbnQsY29kZWJsb2NrUHJlRWxlbWVudCxjb2RlYmxvY2tQYXJhbWV0ZXJzLHNvdXJjZVBhdGgsZHluYW1pYyxwbHVnaW4pO1xuXHR9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbWFrZUNvZGVibG9jayhjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIGR5bmFtaWM6IGJvb2xlYW4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRpZiAoZHluYW1pYylcblx0XHRwbHVnaW4uZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoY29kZWJsb2NrUHJlRWxlbWVudCx7Y2hpbGRMaXN0OiB0cnVlLHN1YnRyZWU6IHRydWUsYXR0cmlidXRlczogdHJ1ZSxjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7IC8vIEFkZCBFeGVjdXRlIENvZGUgT2JzZXJ2ZXJcblx0XG5cdGluc2VydEhlYWRlcihjb2RlYmxvY2tQcmVFbGVtZW50LGNvZGVibG9ja1BhcmFtZXRlcnMsc291cmNlUGF0aCxwbHVnaW4sZHluYW1pYyk7XG5cdFxuXHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4uZ2V0UHJlQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLGR5bmFtaWMpKTtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkZWZhdWx0Rm9sZFwiLGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkLnRvU3RyaW5nKCkpO1xuXHRpZiAoY29kZWJsb2NrUHJlRWxlbWVudC5wYXJlbnRFbGVtZW50KVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItcHJlLXBhcmVudFwiKTtcblx0XG5cdGlmICghY29kZWJsb2NrQ29kZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcImNvZGUgW2NsYXNzKj0nY29kZS1zdHlsZXItbGluZSddXCIpKSAvLyBJZ25vcmUgc3R5bGVkIGxpbmVzXG5cdFx0ZGVjb3JhdGVDb2RlYmxvY2tMaW5lcyhjb2RlYmxvY2tDb2RlRWxlbWVudCxjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlbWFrZUlubGluZUNvZGUoaW5saW5lQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcblx0aWYgKCFwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQgfHwgaW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiY29kZS1zdHlsZXItaW5saW5lXCIpKVxuXHRcdHJldHVybjtcblx0Y29uc3QgaW5saW5lQ29kZVRleHQgPSBpbmxpbmVDb2RlRWxlbWVudC5pbm5lclRleHQ7XG5cdGNvbnN0IHtwYXJhbWV0ZXJzLHRleHR9ID0gcGFyc2VJbmxpbmVDb2RlKGlubGluZUNvZGVUZXh0KTtcblx0aWYgKHBhcmFtZXRlcnMpIHtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5pbm5lckhUTUwgPSBhd2FpdCBnZXRIaWdobGlnaHRlZEhUTUwocGFyYW1ldGVycyx0ZXh0LHBsdWdpbik7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuaW5uZXJIVE1MID0gaW5saW5lQ29kZUVsZW1lbnQuaW5uZXJIVE1MICsgXCImWmVyb1dpZHRoU3BhY2U7XCI7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWlubGluZVwiKTtcblx0XHRjb25zdCBwYXJhbWV0ZXJTdHJpbmcgPSBpbmxpbmVDb2RlVGV4dC5zdWJzdHJpbmcoMCxpbmxpbmVDb2RlVGV4dC5sYXN0SW5kZXhPZih0ZXh0KSk7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwicGFyYW1ldGVyc1wiLHBhcmFtZXRlclN0cmluZyk7IC8vIFN0b3JlIHBhcmFtZXRlciBzdHJpbmcgYXMgYXR0cmlidXRlIHNvIG9yaWdpbmFsIHRleHQgY2FuIGJlIHJlc3RvcmVkIG9uIHBsdWdpbiByZW1vdmFsXG5cdFx0aWYgKHBhcmFtZXRlcnMuaWNvbiB8fCBwYXJhbWV0ZXJzLnRpdGxlKVxuXHRcdFx0aW5saW5lQ29kZUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGNyZWF0ZUlubGluZU9wZW5lcihwYXJhbWV0ZXJzLHBsdWdpbi5sYW5ndWFnZUljb25zKSxpbmxpbmVDb2RlRWxlbWVudC5jaGlsZE5vZGVzWzBdKTtcblx0fSBlbHNlIGlmICghcGFyYW1ldGVycyAmJiB0ZXh0KSB7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuaW5uZXJUZXh0ID0gdGV4dDtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaW5saW5lXCIpO1xuXHR9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvZGVibG9ja1ByZUVsZW1lbnRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzcGVjaWZpYzogYm9vbGVhbixlZGl0aW5nRW1iZWRzOiBib29sZWFuKTogUHJvbWlzZTxBcnJheTxIVE1MRWxlbWVudD4+IHtcblx0bGV0IGNvZGVibG9ja1ByZUVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD47XG5cdGlmICghZWRpdGluZ0VtYmVkcyAmJiAhc3BlY2lmaWMpXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5tYXJrZG93bi1yZWFkaW5nLXZpZXcgcHJlOm5vdCguZnJvbnRtYXR0ZXIpXCIpKTtcblx0ZWxzZSBpZiAoZWRpdGluZ0VtYmVkcyAmJiAhc3BlY2lmaWMpXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5tYXJrZG93bi1zb3VyY2UtdmlldyAuY20tZW1iZWQtYmxvY2sgcHJlOm5vdCguZnJvbnRtYXR0ZXIpXCIpKTtcblx0ZWxzZSBpZiAoIWVkaXRpbmdFbWJlZHMgJiYgc3BlY2lmaWMpIHtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cyA9IEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlOm5vdCguZnJvbnRtYXR0ZXIpXCIpKTtcblx0XHRjb25zdCBhZG1vbml0aW9uQ29kZUVsZW1lbnQgPSBjb2RlYmxvY2tQcmVFbGVtZW50cz8uWzBdPy5xdWVyeVNlbGVjdG9yKFwicHJlOm5vdChbY2xhc3NdKSA+IGNvZGVbY2xhc3MqPVxcXCJsYW5ndWFnZS1hZC1cXFwiXVwiKTtcblx0XHRpZiAoYWRtb25pdGlvbkNvZGVFbGVtZW50KSB7XG5cdFx0XHRhd2FpdCBzbGVlcCg1MCk7IC8vVE9ET1xuXHRcdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdFx0fVxuXHR9IGVsc2Vcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cyA9IFtdO1xuXHRyZXR1cm4gY29kZWJsb2NrUHJlRWxlbWVudHM7XG59XG5hc3luYyBmdW5jdGlvbiBnZXRDb2RlYmxvY2tzUGFyYW1ldGVycyhzb3VyY2VQYXRoOiBzdHJpbmcsIGNhY2hlOiBDYWNoZWRNZXRhZGF0YSB8IG51bGwsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgZWRpdGluZ0VtYmVkczogYm9vbGVhbik6IFByb21pc2U8QXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4+IHtcblx0bGV0IGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiA9IFtdO1xuXHRjb25zdCBmaWxlQ29udGVudExpbmVzID0gYXdhaXQgZ2V0RmlsZUNvbnRlbnRMaW5lcyhzb3VyY2VQYXRoLHBsdWdpbik7XG5cdGlmICghZmlsZUNvbnRlbnRMaW5lcylcblx0XHRyZXR1cm4gW107XG5cblx0aWYgKHR5cGVvZiBjYWNoZT8uc2VjdGlvbnMgIT09IFwidW5kZWZpbmVkXCIpIHtcblx0XHRmb3IgKGNvbnN0IHNlY3Rpb24gb2YgY2FjaGUuc2VjdGlvbnMpIHtcblx0XHRcdGlmICghZWRpdGluZ0VtYmVkcyB8fCBzZWN0aW9uLnR5cGUgPT09IFwiY29kZVwiIHx8IHNlY3Rpb24udHlwZSA9PT0gXCJjYWxsb3V0XCIpIHtcblx0XHRcdFx0Y29uc3QgcGFyc2VkQ29kZWJsb2Nrc1BhcmFtZXRlcnMgPSBhd2FpdCBwYXJzZUNvZGVibG9ja1NvdXJjZShmaWxlQ29udGVudExpbmVzLnNsaWNlKHNlY3Rpb24ucG9zaXRpb24uc3RhcnQubGluZSxzZWN0aW9uLnBvc2l0aW9uLmVuZC5saW5lKzEpLHBsdWdpbixzb3VyY2VQYXRoKTtcblx0XHRcdFx0aWYgKCFlZGl0aW5nRW1iZWRzIHx8IHBhcnNlZENvZGVibG9ja3NQYXJhbWV0ZXJzLm5lc3RlZClcblx0XHRcdFx0XHRjb2RlYmxvY2tzUGFyYW1ldGVycyA9IGNvZGVibG9ja3NQYXJhbWV0ZXJzLmNvbmNhdChwYXJzZWRDb2RlYmxvY2tzUGFyYW1ldGVycy5jb2RlYmxvY2tzUGFyYW1ldGVycyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IGVsc2Vcblx0XHRjb25zb2xlLmVycm9yKGBNZXRhZGF0YSBjYWNoZSBub3QgZm91bmQgZm9yIGZpbGU6ICR7c291cmNlUGF0aH1gKTtcblx0cmV0dXJuIGNvZGVibG9ja3NQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gaW5zZXJ0SGVhZGVyKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgZHluYW1pYzogYm9vbGVhbik6IHZvaWQge1xuXHRjb25zdCBoZWFkZXJDb250YWluZXIgPSBjcmVhdGVIZWFkZXIoY29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncywgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0aWYgKGR5bmFtaWMpXG5cdFx0aGVhZGVyQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCgpPT57dG9nZ2xlRm9sZChjb2RlYmxvY2tQcmVFbGVtZW50KTt9KTsgLy8gQWRkIGxpc3RlbmVyIGZvciBoZWFkZXIgZm9sZGluZyBvbiBjbGlja1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50Lmluc2VydEJlZm9yZShoZWFkZXJDb250YWluZXIsY29kZWJsb2NrUHJlRWxlbWVudC5jaGlsZE5vZGVzWzBdKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZWFkaW5nRG9jdW1lbnRGb2xkKGNvbnRlbnRFbDogSFRNTEVsZW1lbnQsIGZvbGQ/OiBib29sZWFuKSB7XG5cdGNvbnN0IGNvZGVibG9ja1ByZUVsZW1lbnRzID0gY29udGVudEVsLnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUuY29kZS1zdHlsZXItcHJlXCIpO1xuXHRpZiAodHlwZW9mIGZvbGQgPT09IFwidW5kZWZpbmVkXCIpIC8vUmV0dXJuIGFsbCBibG9ja3MgdG8gb3JpZ2luYWwgc3RhdGVcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cy5mb3JFYWNoKChjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCk9Pnt0b2dnbGVGb2xkKGNvZGVibG9ja1ByZUVsZW1lbnQsKGNvZGVibG9ja1ByZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGVmYXVsdEZvbGRcIik/P1wiZmFsc2VcIik9PT1cInRydWVcIik7fSk7XG5cdGVsc2UgLy9Gb2xkIG9yIHVuZm9sZCBhbGwgYmxvY2tzXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMuZm9yRWFjaCgoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQpPT57dG9nZ2xlRm9sZChjb2RlYmxvY2tQcmVFbGVtZW50LGZvbGQpO30pO1xufVxuYXN5bmMgZnVuY3Rpb24gdG9nZ2xlRm9sZChjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCwgZm9sZD86IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcblx0aWYgKGNvZGVibG9ja1ByZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ/LmNsYXNzTGlzdD8uY29udGFpbnMoXCJjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlblwiKSlcblx0XHRyZXR1cm47XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZSA+IGNvZGVcIikuZm9yRWFjaCgoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50KT0+Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJtYXgtaGVpZ2h0XCIsYGNhbGMoJHtNYXRoLmNlaWwoY29kZWJsb2NrQ29kZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0KzAuMDEpfXB4ICsgdmFyKC0tY29kZS1wYWRkaW5nKSAqICR7Y29kZWJsb2NrQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiZXhlY3V0ZS1jb2RlLW91dHB1dFwiKT9cIjMuNSArIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpXCI6XCIyXCJ9KWApKTtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiaGlkZS1zY3JvbGxcIik7XG5cdGF3YWl0IHNsZWVwKDEpO1xuXHRpZiAodHlwZW9mIGZvbGQgPT09IFwidW5kZWZpbmVkXCIpXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKFwiY29kZS1zdHlsZXItZm9sZGVkXCIpO1xuXHRlbHNlXG5cdFx0Zm9sZD9jb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1mb2xkZWRcIik6Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItZm9sZGVkXCIpO1xuXHRhd2FpdCBzbGVlcChUUkFOU0lUSU9OX0xFTkdUSCk7XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZSA+IGNvZGVcIikuZm9yRWFjaCgoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50KT0+Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCJtYXgtaGVpZ2h0XCIpKTtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiaGlkZS1zY3JvbGxcIik7XG59XG5mdW5jdGlvbiBnZXRQcmVDbGFzc2VzKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIGR5bmFtaWM6IGJvb2xlYW4pOiBBcnJheTxzdHJpbmc+IHtcblx0Y29uc3QgcHJlQ2xhc3NMaXN0ID0gW1wiY29kZS1zdHlsZXItcHJlXCJdO1xuXHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSlcblx0XHRwcmVDbGFzc0xpc3QucHVzaChgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApO1xuXHRpZiAoZHluYW1pYykge1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZClcblx0XHRcdHByZUNsYXNzTGlzdC5wdXNoKFwiY29kZS1zdHlsZXItZm9sZGVkXCIpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAuYWx3YXlzRW5hYmxlZClcblx0XHRcdHByZUNsYXNzTGlzdC5wdXNoKGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcC5hY3RpdmVXcmFwP1widW53cmFwcGVkLWluYWN0aXZlXCI6XCJ1bndyYXBwZWRcIik7XG5cdFx0ZWxzZSBpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwLmFsd2F5c0Rpc2FibGVkKVxuXHRcdFx0cHJlQ2xhc3NMaXN0LnB1c2goXCJ3cmFwcGVkXCIpO1xuXHR9XG5cdHJldHVybiBwcmVDbGFzc0xpc3Q7XG59XG5mdW5jdGlvbiBkZWNvcmF0ZUNvZGVibG9ja0xpbmVzKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCwgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgc2hvd0xpbmVOdW1iZXJzOiBib29sZWFuKTogdm9pZCB7XG5cdGdldENvZGVibG9ja0xpbmVzKGNvZGVibG9ja0NvZGVFbGVtZW50KS5mb3JFYWNoKChsaW5lLGluZGV4LGNvZGVibG9ja0xpbmVzKSA9PiB7XG5cdFx0aWYgKGluZGV4ICE9PSBjb2RlYmxvY2tMaW5lcy5sZW5ndGgtMSlcblx0XHRcdGluc2VydExpbmVXcmFwcGVyKGNvZGVibG9ja0NvZGVFbGVtZW50LGNvZGVibG9ja1BhcmFtZXRlcnMsaW5kZXgrMSxsaW5lLHNob3dMaW5lTnVtYmVycyk7XG5cdH0pO1xufVxuZnVuY3Rpb24gZ2V0Q29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50KTogQXJyYXk8c3RyaW5nPiB7XG5cdGNvbnN0IGh0bWxUcmVlID0gZnJvbUh0bWwoY29kZWJsb2NrQ29kZUVsZW1lbnQuaW5uZXJIVE1MLnJlcGxhY2UoL1xcbi9nLFwiPGJyPlwiKSx7ZnJhZ21lbnQ6IHRydWV9KTtcblx0bGV0IGNvZGVibG9ja0hUTUwgPSBjb2RlYmxvY2tDb2RlRWxlbWVudC5pbm5lckhUTUw7XG5cdHZpc2l0UGFyZW50cyhodG1sVHJlZSxbXCJ0ZXh0XCIsXCJlbGVtZW50XCJdLChub2RlLGFuY2VzdG9ycyk9Pntcblx0XHRpZiAobm9kZS50eXBlID09PSBcImVsZW1lbnRcIiAmJiBub2RlLnRhZ05hbWUgPT09IFwiYnJcIikge1xuXHRcdFx0aWYgKGFuY2VzdG9ycy5sZW5ndGggPj0gMikge1xuXHRcdFx0XHRjb2RlYmxvY2tIVE1MID0gY29kZWJsb2NrSFRNTC5yZXBsYWNlKC9cXG4vLGFuY2VzdG9ycy5zbGljZSgxKS5yZWR1Y2UoKHJlc3VsdCxlbGVtZW50KT0+e1xuXHRcdFx0XHRcdGNvbnN0IGVsZW1lbnRDb3B5ID0gc3RydWN0dXJlZENsb25lKGVsZW1lbnQpO1xuXHRcdFx0XHRcdGVsZW1lbnRDb3B5LmNoaWxkcmVuID0gW107XG5cdFx0XHRcdFx0Y29uc3Qgc3BsaXRUYWcgPSB0b0h0bWwoZWxlbWVudENvcHkpLnNwbGl0KC8oPzw9PikoPz08XFwvKS8pO1xuXHRcdFx0XHRcdHJldHVybiBzcGxpdFRhZy5zcGxpY2UoLTEpK3Jlc3VsdCtzcGxpdFRhZy5qb2luKFwiXCIpO1xuXHRcdFx0XHR9LFwiPGJyPlwiKSk7XG5cdFx0XHR9IGVsc2Vcblx0XHRcdFx0Y29kZWJsb2NrSFRNTCA9IGNvZGVibG9ja0hUTUwucmVwbGFjZSgvXFxuLyxcIjxicj5cIik7XG5cdFx0fVxuXHR9KTtcblx0bGV0IGNvZGVibG9ja0xpbmVzID0gY29kZWJsb2NrSFRNTC5zcGxpdChcIjxicj5cIik7XG5cdGlmIChjb2RlYmxvY2tMaW5lcy5sZW5ndGggPT09IDEpXG5cdFx0Y29kZWJsb2NrTGluZXMgPSBbXCJcIixcIlwiXTtcblx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuaW5uZXJIVE1MID0gXCJcIjtcblx0cmV0dXJuIGNvZGVibG9ja0xpbmVzO1xufVxuZnVuY3Rpb24gaW5zZXJ0TGluZVdyYXBwZXIoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBsaW5lTnVtYmVyOiBudW1iZXIsIGxpbmU6IHN0cmluZywgc2hvd0xpbmVOdW1iZXJzOiBib29sZWFuKTogdm9pZCB7XG5cdGNvbnN0IGxpbmVXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZVdyYXBwZXIpO1xuXHRnZXRMaW5lQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLGxpbmVOdW1iZXIsbGluZSkuZm9yRWFjaCgobGluZUNsYXNzKSA9PiBsaW5lV3JhcHBlci5jbGFzc0xpc3QuYWRkKGxpbmVDbGFzcykpO1xuXHRpZiAoKHNob3dMaW5lTnVtYmVycyAmJiAhY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNEaXNhYmxlZCkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkKVxuXHRcdGxpbmVXcmFwcGVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyXCIsIHRleHQ6IChsaW5lTnVtYmVyK2NvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpfSkpO1xuXHRsaW5lV3JhcHBlci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogXCJjb2RlLXN0eWxlci1saW5lLXRleHRcIiwgdGV4dDogc2FuaXRpemVIVE1MVG9Eb20obGluZSAhPT0gXCJcIiA/IGxpbmUgOiBcIjxicj5cIil9KSk7XG59XG5hc3luYyBmdW5jdGlvbiBnZXRIaWdobGlnaHRlZEhUTUwocGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMsIHRleHQ6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0Y29uc3QgdGVtcG9yYXJ5UmVuZGVyaW5nQ29udGFpbmVyID0gY3JlYXRlRGl2KCk7XG5cdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHBsdWdpbi5hcHAsW1wiYGBgXCIscGFyYW1ldGVycy5sYW5ndWFnZSxcIlxcblwiLHRleHQsXCJcXG5cIixcImBgYFwiXS5qb2luKFwiXCIpLHRlbXBvcmFyeVJlbmRlcmluZ0NvbnRhaW5lcixcIlwiLG5ldyBDb21wb25lbnQoKSk7XG5cdGNvbnN0IHJlbmRlcmVkQ29kZUVsZW1lbnQgPSB0ZW1wb3JhcnlSZW5kZXJpbmdDb250YWluZXIucXVlcnlTZWxlY3RvcihcImNvZGVcIik7XG5cdGlmICghcmVuZGVyZWRDb2RlRWxlbWVudClcblx0XHRyZXR1cm4gXCJFUlJPUjogQ291bGQgbm90IHJlbmRlciBoaWdobGlnaHRlZCBjb2RlXCI7XG5cdHdoaWxlKHBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodCAmJiAhcmVuZGVyZWRDb2RlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJpcy1sb2FkZWRcIikpXG5cdFx0YXdhaXQgc2xlZXAoMik7XG5cdHJldHVybiByZW5kZXJlZENvZGVFbGVtZW50LmlubmVySFRNTDtcbn1cblxuZXhwb3J0IGNvbnN0IGV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcblx0bXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCkgPT4ge1xuXHRcdGlmIChtdXRhdGlvbi50eXBlID09PSBcImNoaWxkTGlzdFwiICYmIChtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnRhZ05hbWUgPT09IFwiUFJFXCIpIHsgLy8gQWRkIGV4ZWN1dGUgY29kZSBvdXRwdXRcblx0XHRcdGNvbnN0IGV4ZWN1dGVDb2RlT3V0cHV0ID0gKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcihcInByZSA+IGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dFwiKSBhcyBIVE1MRWxlbWVudDtcblx0XHRcdGlmIChleGVjdXRlQ29kZU91dHB1dClcblx0XHRcdFx0ZXhlY3V0ZUNvZGVPdXRwdXQuY2xhc3NMaXN0LmFkZChcImV4ZWN1dGUtY29kZS1vdXRwdXRcIik7XG5cdFx0fVxuXHR9KTtcbn0pO1xuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBhcmVudH0gUGFyZW50XG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUgRm5cbiAqIEB0ZW1wbGF0ZSBGYWxsYmFja1xuICogQHR5cGVkZWYge0ZuIGV4dGVuZHMgKHZhbHVlOiBhbnkpID0+IHZhbHVlIGlzIGluZmVyIFRoaW5nID8gVGhpbmcgOiBGYWxsYmFja30gUHJlZGljYXRlXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgQ2hlY2tcbiAqICAgQ2hlY2sgdGhhdCBhbiBhcmJpdHJhcnkgdmFsdWUgaXMgYSBub2RlLlxuICogQHBhcmFtIHt1bmtub3dufSB0aGlzXG4gKiAgIFRoZSBnaXZlbiBjb250ZXh0LlxuICogQHBhcmFtIHt1bmtub3dufSBbbm9kZV1cbiAqICAgQW55dGhpbmcgKHR5cGljYWxseSBhIG5vZGUpLlxuICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbaW5kZXhdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwb3NpdGlvbiBpbiBpdHMgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkfSBbcGFyZW50XVxuICogICBUaGUgbm9kZVx1MjAxOXMgcGFyZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhpcyBpcyBhIG5vZGUgYW5kIHBhc3NlcyBhIHRlc3QuXG4gKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHVua25vd24+IHwgTm9kZX0gUHJvcHNcbiAqICAgT2JqZWN0IHRvIGNoZWNrIGZvciBlcXVpdmFsZW5jZS5cbiAqXG4gKiAgIE5vdGU6IGBOb2RlYCBpcyBpbmNsdWRlZCBhcyBpdCBpcyBjb21tb24gYnV0IGlzIG5vdCBpbmRleGFibGUuXG4gKlxuICogQHR5cGVkZWYge0FycmF5PFByb3BzIHwgVGVzdEZ1bmN0aW9uIHwgc3RyaW5nPiB8IFByb3BzIHwgVGVzdEZ1bmN0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gVGVzdFxuICogICBDaGVjayBmb3IgYW4gYXJiaXRyYXJ5IG5vZGUuXG4gKlxuICogQGNhbGxiYWNrIFRlc3RGdW5jdGlvblxuICogICBDaGVjayBpZiBhIG5vZGUgcGFzc2VzIGEgdGVzdC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdGhpc1xuICogICBUaGUgZ2l2ZW4gY29udGV4dC5cbiAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICogICBBIG5vZGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gW2luZGV4XVxuICogICBUaGUgbm9kZVx1MjAxOXMgcG9zaXRpb24gaW4gaXRzIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50IHwgdW5kZWZpbmVkfSBbcGFyZW50XVxuICogICBUaGUgbm9kZVx1MjAxOXMgcGFyZW50LlxuICogQHJldHVybnMge2Jvb2xlYW4gfCB1bmRlZmluZWQgfCB2b2lkfVxuICogICBXaGV0aGVyIHRoaXMgbm9kZSBwYXNzZXMgdGhlIHRlc3QuXG4gKlxuICogICBOb3RlOiBgdm9pZGAgaXMgaW5jbHVkZWQgdW50aWwgVFMgc2VlcyBubyByZXR1cm4gYXMgYHVuZGVmaW5lZGAuXG4gKi9cblxuLyoqXG4gKiBDaGVjayBpZiBgbm9kZWAgaXMgYSBgTm9kZWAgYW5kIHdoZXRoZXIgaXQgcGFzc2VzIHRoZSBnaXZlbiB0ZXN0LlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gbm9kZVxuICogICBUaGluZyB0byBjaGVjaywgdHlwaWNhbGx5IGBOb2RlYC5cbiAqIEBwYXJhbSB7VGVzdH0gdGVzdFxuICogICBBIGNoZWNrIGZvciBhIHNwZWNpZmljIG5vZGUuXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwb3NpdGlvbiBpbiBpdHMgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBhcmVudC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gY29udGV4dFxuICogICBDb250ZXh0IG9iamVjdCAoYHRoaXNgKSB0byBwYXNzIHRvIGB0ZXN0YCBmdW5jdGlvbnMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBgbm9kZWAgaXMgYSBub2RlIGFuZCBwYXNzZXMgYSB0ZXN0LlxuICovXG5leHBvcnQgY29uc3QgaXMgPVxuICAvLyBOb3RlOiBvdmVybG9hZHMgaW4gSlNEb2MgY2FuXHUyMDE5dCB5ZXQgdXNlIGRpZmZlcmVudCBgQHRlbXBsYXRlYHMuXG4gIC8qKlxuICAgKiBAdHlwZSB7KFxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgc3RyaW5nPihub2RlOiB1bmtub3duLCB0ZXN0OiBDb25kaXRpb24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIHt0eXBlOiBDb25kaXRpb259KSAmXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBQcm9wcz4obm9kZTogdW5rbm93biwgdGVzdDogQ29uZGl0aW9uLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBDb25kaXRpb24pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFRlc3RGdW5jdGlvbj4obm9kZTogdW5rbm93biwgdGVzdDogQ29uZGl0aW9uLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBQcmVkaWNhdGU8Q29uZGl0aW9uLCBOb2RlPikgJlxuICAgKiAgICgobm9kZT86IG51bGwgfCB1bmRlZmluZWQpID0+IGZhbHNlKSAmXG4gICAqICAgKChub2RlOiB1bmtub3duLCB0ZXN0PzogbnVsbCB8IHVuZGVmaW5lZCwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlKSAmXG4gICAqICAgKChub2RlOiB1bmtub3duLCB0ZXN0PzogVGVzdCwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gYm9vbGVhbilcbiAgICogKX1cbiAgICovXG4gIChcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge3Vua25vd259IFtub2RlXVxuICAgICAqIEBwYXJhbSB7VGVzdH0gW3Rlc3RdXG4gICAgICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbaW5kZXhdXG4gICAgICogQHBhcmFtIHtQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkfSBbcGFyZW50XVxuICAgICAqIEBwYXJhbSB7dW5rbm93bn0gW2NvbnRleHRdXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1wYXJhbXNcbiAgICBmdW5jdGlvbiAobm9kZSwgdGVzdCwgaW5kZXgsIHBhcmVudCwgY29udGV4dCkge1xuICAgICAgY29uc3QgY2hlY2sgPSBjb252ZXJ0KHRlc3QpXG5cbiAgICAgIGlmIChcbiAgICAgICAgaW5kZXggIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBpbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAodHlwZW9mIGluZGV4ICE9PSAnbnVtYmVyJyB8fFxuICAgICAgICAgIGluZGV4IDwgMCB8fFxuICAgICAgICAgIGluZGV4ID09PSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBwb3NpdGl2ZSBmaW5pdGUgaW5kZXgnKVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHBhcmVudCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHBhcmVudCAhPT0gbnVsbCAmJlxuICAgICAgICAoIWlzKHBhcmVudCkgfHwgIXBhcmVudC5jaGlsZHJlbilcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHBhcmVudCBub2RlJylcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAocGFyZW50ID09PSB1bmRlZmluZWQgfHwgcGFyZW50ID09PSBudWxsKSAhPT1cbiAgICAgICAgKGluZGV4ID09PSB1bmRlZmluZWQgfHwgaW5kZXggPT09IG51bGwpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBib3RoIHBhcmVudCBhbmQgaW5kZXgnKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9va3NMaWtlQU5vZGUobm9kZSlcbiAgICAgICAgPyBjaGVjay5jYWxsKGNvbnRleHQsIG5vZGUsIGluZGV4LCBwYXJlbnQpXG4gICAgICAgIDogZmFsc2VcbiAgICB9XG4gIClcblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBhc3NlcnRpb24gZnJvbSBhIHRlc3QuXG4gKlxuICogVXNlZnVsIGlmIHlvdVx1MjAxOXJlIGdvaW5nIHRvIHRlc3QgbWFueSBub2RlcywgZm9yIGV4YW1wbGUgd2hlbiBjcmVhdGluZyBhXG4gKiB1dGlsaXR5IHdoZXJlIHNvbWV0aGluZyBlbHNlIHBhc3NlcyBhIGNvbXBhdGlibGUgdGVzdC5cbiAqXG4gKiBUaGUgY3JlYXRlZCBmdW5jdGlvbiBpcyBhIGJpdCBmYXN0ZXIgYmVjYXVzZSBpdCBleHBlY3RzIHZhbGlkIGlucHV0IG9ubHk6XG4gKiBhIGBub2RlYCwgYGluZGV4YCwgYW5kIGBwYXJlbnRgLlxuICpcbiAqIEBwYXJhbSB7VGVzdH0gdGVzdFxuICogICAqICAgd2hlbiBudWxsaXNoLCBjaGVja3MgaWYgYG5vZGVgIGlzIGEgYE5vZGVgLlxuICogICAqICAgd2hlbiBgc3RyaW5nYCwgd29ya3MgbGlrZSBwYXNzaW5nIGAobm9kZSkgPT4gbm9kZS50eXBlID09PSB0ZXN0YC5cbiAqICAgKiAgIHdoZW4gYGZ1bmN0aW9uYCBjaGVja3MgaWYgZnVuY3Rpb24gcGFzc2VkIHRoZSBub2RlIGlzIHRydWUuXG4gKiAgICogICB3aGVuIGBvYmplY3RgLCBjaGVja3MgdGhhdCBhbGwga2V5cyBpbiB0ZXN0IGFyZSBpbiBub2RlLCBhbmQgdGhhdCB0aGV5IGhhdmUgKHN0cmljdGx5KSBlcXVhbCB2YWx1ZXMuXG4gKiAgICogICB3aGVuIGBhcnJheWAsIGNoZWNrcyBpZiBhbnkgb25lIG9mIHRoZSBzdWJ0ZXN0cyBwYXNzLlxuICogQHJldHVybnMge0NoZWNrfVxuICogICBBbiBhc3NlcnRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0ID1cbiAgLy8gTm90ZTogb3ZlcmxvYWRzIGluIEpTRG9jIGNhblx1MjAxOXQgeWV0IHVzZSBkaWZmZXJlbnQgYEB0ZW1wbGF0ZWBzLlxuICAvKipcbiAgICogQHR5cGUgeyhcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIHN0cmluZz4odGVzdDogQ29uZGl0aW9uKSA9PiAobm9kZTogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYge3R5cGU6IENvbmRpdGlvbn0pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFByb3BzPih0ZXN0OiBDb25kaXRpb24pID0+IChub2RlOiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBDb25kaXRpb24pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFRlc3RGdW5jdGlvbj4odGVzdDogQ29uZGl0aW9uKSA9PiAobm9kZTogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYgUHJlZGljYXRlPENvbmRpdGlvbiwgTm9kZT4pICZcbiAgICogICAoKHRlc3Q/OiBudWxsIHwgdW5kZWZpbmVkKSA9PiAobm9kZT86IHVua25vd24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSkgJlxuICAgKiAgICgodGVzdD86IFRlc3QpID0+IENoZWNrKVxuICAgKiApfVxuICAgKi9cbiAgKFxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7VGVzdH0gW3Rlc3RdXG4gICAgICogQHJldHVybnMge0NoZWNrfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uICh0ZXN0KSB7XG4gICAgICBpZiAodGVzdCA9PT0gbnVsbCB8fCB0ZXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIG9rXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdGVzdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2FzdEZhY3RvcnkodGVzdClcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0ZXN0KSA/IGFueUZhY3RvcnkodGVzdCkgOiBwcm9wc0ZhY3RvcnkodGVzdClcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdHlwZUZhY3RvcnkodGVzdClcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBmdW5jdGlvbiwgc3RyaW5nLCBvciBvYmplY3QgYXMgdGVzdCcpXG4gICAgfVxuICApXG5cbi8qKlxuICogQHBhcmFtIHtBcnJheTxQcm9wcyB8IFRlc3RGdW5jdGlvbiB8IHN0cmluZz59IHRlc3RzXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKi9cbmZ1bmN0aW9uIGFueUZhY3RvcnkodGVzdHMpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxDaGVjaz59ICovXG4gIGNvbnN0IGNoZWNrcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCB0ZXN0cy5sZW5ndGgpIHtcbiAgICBjaGVja3NbaW5kZXhdID0gY29udmVydCh0ZXN0c1tpbmRleF0pXG4gIH1cblxuICByZXR1cm4gY2FzdEZhY3RvcnkoYW55KVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7dW5rbm93bn1cbiAgICogQHR5cGUge1Rlc3RGdW5jdGlvbn1cbiAgICovXG4gIGZ1bmN0aW9uIGFueSguLi5wYXJhbWV0ZXJzKSB7XG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICgrK2luZGV4IDwgY2hlY2tzLmxlbmd0aCkge1xuICAgICAgaWYgKGNoZWNrc1tpbmRleF0uYXBwbHkodGhpcywgcGFyYW1ldGVycykpIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGFuIG9iamVjdCBpbnRvIGEgdGVzdCBmb3IgYSBub2RlIHdpdGggYSBjZXJ0YWluIGZpZWxkcy5cbiAqXG4gKiBAcGFyYW0ge1Byb3BzfSBjaGVja1xuICogQHJldHVybnMge0NoZWNrfVxuICovXG5mdW5jdGlvbiBwcm9wc0ZhY3RvcnkoY2hlY2spIHtcbiAgY29uc3QgY2hlY2tBc1JlY29yZCA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59ICovIChjaGVjaylcblxuICByZXR1cm4gY2FzdEZhY3RvcnkoYWxsKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge05vZGV9IG5vZGVcbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBmdW5jdGlvbiBhbGwobm9kZSkge1xuICAgIGNvbnN0IG5vZGVBc1JlY29yZCA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59ICovIChcbiAgICAgIC8qKiBAdHlwZSB7dW5rbm93bn0gKi8gKG5vZGUpXG4gICAgKVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IGtleVxuXG4gICAgZm9yIChrZXkgaW4gY2hlY2spIHtcbiAgICAgIGlmIChub2RlQXNSZWNvcmRba2V5XSAhPT0gY2hlY2tBc1JlY29yZFtrZXldKSByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG59XG5cbi8qKlxuICogVHVybiBhIHN0cmluZyBpbnRvIGEgdGVzdCBmb3IgYSBub2RlIHdpdGggYSBjZXJ0YWluIHR5cGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNoZWNrXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKi9cbmZ1bmN0aW9uIHR5cGVGYWN0b3J5KGNoZWNrKSB7XG4gIHJldHVybiBjYXN0RmFjdG9yeSh0eXBlKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge05vZGV9IG5vZGVcbiAgICovXG4gIGZ1bmN0aW9uIHR5cGUobm9kZSkge1xuICAgIHJldHVybiBub2RlICYmIG5vZGUudHlwZSA9PT0gY2hlY2tcbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gYSBjdXN0b20gdGVzdCBpbnRvIGEgdGVzdCBmb3IgYSBub2RlIHRoYXQgcGFzc2VzIHRoYXQgdGVzdC5cbiAqXG4gKiBAcGFyYW0ge1Rlc3RGdW5jdGlvbn0gdGVzdEZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKi9cbmZ1bmN0aW9uIGNhc3RGYWN0b3J5KHRlc3RGdW5jdGlvbikge1xuICByZXR1cm4gY2hlY2tcblxuICAvKipcbiAgICogQHRoaXMge3Vua25vd259XG4gICAqIEB0eXBlIHtDaGVja31cbiAgICovXG4gIGZ1bmN0aW9uIGNoZWNrKHZhbHVlLCBpbmRleCwgcGFyZW50KSB7XG4gICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICBsb29rc0xpa2VBTm9kZSh2YWx1ZSkgJiZcbiAgICAgICAgdGVzdEZ1bmN0aW9uLmNhbGwoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICB0eXBlb2YgaW5kZXggPT09ICdudW1iZXInID8gaW5kZXggOiB1bmRlZmluZWQsXG4gICAgICAgICAgcGFyZW50IHx8IHVuZGVmaW5lZFxuICAgICAgICApXG4gICAgKVxuICB9XG59XG5cbmZ1bmN0aW9uIG9rKCkge1xuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBOb2RlfVxuICovXG5mdW5jdGlvbiBsb29rc0xpa2VBTm9kZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAndHlwZScgaW4gdmFsdWVcbn1cbiIsICIvKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBkXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sb3IoZCkge1xuICByZXR1cm4gZFxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBVbmlzdE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUGFyZW50fSBVbmlzdFBhcmVudFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0V4Y2x1ZGU8aW1wb3J0KCd1bmlzdC11dGlsLWlzJykuVGVzdCwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZH0gVGVzdFxuICogICBUZXN0IGZyb20gYHVuaXN0LXV0aWwtaXNgLlxuICpcbiAqICAgTm90ZTogd2UgaGF2ZSByZW1vdmUgYW5kIGFkZCBgdW5kZWZpbmVkYCwgYmVjYXVzZSBvdGhlcndpc2Ugd2hlbiBnZW5lcmF0aW5nXG4gKiAgIGF1dG9tYXRpYyBgLmQudHNgIGZpbGVzLCBUUyB0cmllcyB0byBmbGF0dGVuIHBhdGhzIGZyb20gYSBsb2NhbCBwZXJzcGVjdGl2ZSxcbiAqICAgd2hpY2ggZG9lc25cdTIwMTl0IHdvcmsgd2hlbiBwdWJsaXNoaW5nIG9uIG5wbS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIEZuIGV4dGVuZHMgKHZhbHVlOiBhbnkpID0+IHZhbHVlIGlzIGluZmVyIFRoaW5nXG4gKiAgID8gVGhpbmdcbiAqICAgOiBGYWxsYmFja1xuICogKX0gUHJlZGljYXRlXG4gKiAgIEdldCB0aGUgdmFsdWUgb2YgYSB0eXBlIGd1YXJkIGBGbmAuXG4gKiBAdGVtcGxhdGUgRm5cbiAqICAgVmFsdWU7IHR5cGljYWxseSBmdW5jdGlvbiB0aGF0IGlzIGEgdHlwZSBndWFyZCAoc3VjaCBhcyBgKHgpOiB4IGlzIFlgKS5cbiAqIEB0ZW1wbGF0ZSBGYWxsYmFja1xuICogICBWYWx1ZSB0byB5aWVsZCBpZiBgRm5gIGlzIG5vdCBhIHR5cGUgZ3VhcmQuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBDaGVjayBleHRlbmRzIG51bGwgfCB1bmRlZmluZWQgLy8gTm8gdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IFZhbHVlIGV4dGVuZHMge3R5cGU6IENoZWNrfSAvLyBTdHJpbmcgKHR5cGUpIHRlc3QuXG4gKiAgID8gVmFsdWVcbiAqICAgOiBWYWx1ZSBleHRlbmRzIENoZWNrIC8vIFBhcnRpYWwgdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IENoZWNrIGV4dGVuZHMgRnVuY3Rpb24gLy8gRnVuY3Rpb24gdGVzdC5cbiAqICAgPyBQcmVkaWNhdGU8Q2hlY2ssIFZhbHVlPiBleHRlbmRzIFZhbHVlXG4gKiAgICAgPyBQcmVkaWNhdGU8Q2hlY2ssIFZhbHVlPlxuICogICAgIDogbmV2ZXJcbiAqICAgOiBuZXZlciAvLyBTb21lIG90aGVyIHRlc3Q/XG4gKiApfSBNYXRjaGVzT25lXG4gKiAgIENoZWNrIHdoZXRoZXIgYSBub2RlIG1hdGNoZXMgYSBwcmltaXRpdmUgY2hlY2sgaW4gdGhlIHR5cGUgc3lzdGVtLlxuICogQHRlbXBsYXRlIFZhbHVlXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgdW5pc3QgYE5vZGVgLlxuICogQHRlbXBsYXRlIENoZWNrXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdCwgYnV0IG5vdCBhcnJheXMuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBDaGVjayBleHRlbmRzIEFycmF5PGFueT5cbiAqICAgPyBNYXRjaGVzT25lPFZhbHVlLCBDaGVja1trZXlvZiBDaGVja10+XG4gKiAgIDogTWF0Y2hlc09uZTxWYWx1ZSwgQ2hlY2s+XG4gKiApfSBNYXRjaGVzXG4gKiAgIENoZWNrIHdoZXRoZXIgYSBub2RlIG1hdGNoZXMgYSBjaGVjayBpbiB0aGUgdHlwZSBzeXN0ZW0uXG4gKiBAdGVtcGxhdGUgVmFsdWVcbiAqICAgVmFsdWU7IHR5cGljYWxseSB1bmlzdCBgTm9kZWAuXG4gKiBAdGVtcGxhdGUgQ2hlY2tcbiAqICAgVmFsdWU7IHR5cGljYWxseSBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgezAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDYgfCA3IHwgOCB8IDkgfCAxMH0gVWludFxuICogICBOdW1iZXI7IGNhcHBlZCByZWFzb25hYmx5LlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0kgZXh0ZW5kcyAwID8gMSA6IEkgZXh0ZW5kcyAxID8gMiA6IEkgZXh0ZW5kcyAyID8gMyA6IEkgZXh0ZW5kcyAzID8gNCA6IEkgZXh0ZW5kcyA0ID8gNSA6IEkgZXh0ZW5kcyA1ID8gNiA6IEkgZXh0ZW5kcyA2ID8gNyA6IEkgZXh0ZW5kcyA3ID8gOCA6IEkgZXh0ZW5kcyA4ID8gOSA6IDEwfSBJbmNyZW1lbnRcbiAqICAgSW5jcmVtZW50IGEgbnVtYmVyIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0k9MF1cbiAqICAgSW5kZXguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBOb2RlIGV4dGVuZHMgVW5pc3RQYXJlbnRcbiAqICAgPyBOb2RlIGV4dGVuZHMge2NoaWxkcmVuOiBBcnJheTxpbmZlciBDaGlsZHJlbj59XG4gKiAgICAgPyBDaGlsZCBleHRlbmRzIENoaWxkcmVuID8gTm9kZSA6IG5ldmVyXG4gKiAgICAgOiBuZXZlclxuICogICA6IG5ldmVyXG4gKiApfSBJbnRlcm5hbFBhcmVudFxuICogICBDb2xsZWN0IG5vZGVzIHRoYXQgY2FuIGJlIHBhcmVudHMgb2YgYENoaWxkYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBOb2RlXG4gKiAgIEFsbCBub2RlIHR5cGVzIGluIGEgdHJlZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBDaGlsZFxuICogICBOb2RlIHRvIHNlYXJjaCBmb3IuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SW50ZXJuYWxQYXJlbnQ8SW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPiwgQ2hpbGQ+fSBQYXJlbnRcbiAqICAgQ29sbGVjdCBub2RlcyBpbiBgVHJlZWAgdGhhdCBjYW4gYmUgcGFyZW50cyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIERlcHRoIGV4dGVuZHMgTWF4XG4gKiAgID8gbmV2ZXJcbiAqICAgOlxuICogICAgIHwgSW50ZXJuYWxQYXJlbnQ8Tm9kZSwgQ2hpbGQ+XG4gKiAgICAgfCBJbnRlcm5hbEFuY2VzdG9yPE5vZGUsIEludGVybmFsUGFyZW50PE5vZGUsIENoaWxkPiwgTWF4LCBJbmNyZW1lbnQ8RGVwdGg+PlxuICogKX0gSW50ZXJuYWxBbmNlc3RvclxuICogICBDb2xsZWN0IG5vZGVzIGluIGBUcmVlYCB0aGF0IGNhbiBiZSBhbmNlc3RvcnMgb2YgYENoaWxkYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBOb2RlXG4gKiAgIEFsbCBub2RlIHR5cGVzIGluIGEgdHJlZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBDaGlsZFxuICogICBOb2RlIHRvIHNlYXJjaCBmb3IuXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtNYXg9MTBdXG4gKiAgIE1heDsgc2VhcmNoZXMgdXAgdG8gdGhpcyBkZXB0aC5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0RlcHRoPTBdXG4gKiAgIEN1cnJlbnQgZGVwdGguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SW50ZXJuYWxBbmNlc3RvcjxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGlsZD59IEFuY2VzdG9yXG4gKiAgIENvbGxlY3Qgbm9kZXMgaW4gYFRyZWVgIHRoYXQgY2FuIGJlIGFuY2VzdG9ycyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIFRyZWUgZXh0ZW5kcyBVbmlzdFBhcmVudFxuICogICAgID8gRGVwdGggZXh0ZW5kcyBNYXhcbiAqICAgICAgID8gVHJlZVxuICogICAgICAgOiBUcmVlIHwgSW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlWydjaGlsZHJlbiddW251bWJlcl0sIE1heCwgSW5jcmVtZW50PERlcHRoPj5cbiAqICAgICA6IFRyZWVcbiAqICl9IEluY2x1c2l2ZURlc2NlbmRhbnRcbiAqICAgQ29sbGVjdCBhbGwgKGluY2x1c2l2ZSkgZGVzY2VuZGFudHMgb2YgYFRyZWVgLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB0aGlzIHNlZW1zIHRvIGJlIHRoZSBmYXN0ZXN0IHdheSB0b1xuICogICA+IHJlY3Vyc2Ugd2l0aG91dCBhY3R1YWxseSBydW5uaW5nIGludG8gYW4gaW5maW5pdGUgbG9vcCwgd2hpY2ggdGhlXG4gKiAgID4gcHJldmlvdXMgdmVyc2lvbiBkaWQuXG4gKiAgID5cbiAqICAgPiBQcmFjdGljYWxseSwgYSBtYXggb2YgYDJgIGlzIHR5cGljYWxseSBlbm91Z2ggYXNzdW1pbmcgYSBgUm9vdGAgaXNcbiAqICAgPiBwYXNzZWQsIGJ1dCBpdCBkb2Vzblx1MjAxOXQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cbiAqICAgPiBJdCBnZXRzIGhpZ2hlciB3aXRoIGBMaXN0ID4gTGlzdEl0ZW0gPiBUYWJsZSA+IFRhYmxlUm93ID4gVGFibGVDZWxsYC5cbiAqICAgPiBVc2luZyB1cCB0byBgMTBgIGRvZXNuXHUyMDE5dCBodXJ0IG9yIGhlbHAgZWl0aGVyLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgVHJlZSB0eXBlLlxuICogQHRlbXBsYXRlIHtVaW50fSBbTWF4PTEwXVxuICogICBNYXg7IHNlYXJjaGVzIHVwIHRvIHRoaXMgZGVwdGguXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtEZXB0aD0wXVxuICogICBDdXJyZW50IGRlcHRoLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeydza2lwJyB8IGJvb2xlYW59IEFjdGlvblxuICogICBVbmlvbiBvZiB0aGUgYWN0aW9uIHR5cGVzLlxuICpcbiAqIEB0eXBlZGVmIHtudW1iZXJ9IEluZGV4XG4gKiAgIE1vdmUgdG8gdGhlIHNpYmxpbmcgYXQgYGluZGV4YCBuZXh0IChhZnRlciBub2RlIGl0c2VsZiBpcyBjb21wbGV0ZWx5XG4gKiAgIHRyYXZlcnNlZCkuXG4gKlxuICogICBVc2VmdWwgaWYgbXV0YXRpbmcgdGhlIHRyZWUsIHN1Y2ggYXMgcmVtb3ZpbmcgdGhlIG5vZGUgdGhlIHZpc2l0b3IgaXNcbiAqICAgY3VycmVudGx5IG9uLCBvciBhbnkgb2YgaXRzIHByZXZpb3VzIHNpYmxpbmdzLlxuICogICBSZXN1bHRzIGxlc3MgdGhhbiAwIG9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgY2hpbGRyZW4ubGVuZ3RoYCBzdG9wXG4gKiAgIHRyYXZlcnNpbmcgdGhlIHBhcmVudC5cbiAqXG4gKiBAdHlwZWRlZiB7WyhBY3Rpb24gfCBudWxsIHwgdW5kZWZpbmVkIHwgdm9pZCk/LCAoSW5kZXggfCBudWxsIHwgdW5kZWZpbmVkKT9dfSBBY3Rpb25UdXBsZVxuICogICBMaXN0IHdpdGggb25lIG9yIHR3byB2YWx1ZXMsIHRoZSBmaXJzdCBhbiBhY3Rpb24sIHRoZSBzZWNvbmQgYW4gaW5kZXguXG4gKlxuICogQHR5cGVkZWYge0FjdGlvbiB8IEFjdGlvblR1cGxlIHwgSW5kZXggfCBudWxsIHwgdW5kZWZpbmVkIHwgdm9pZH0gVmlzaXRvclJlc3VsdFxuICogICBBbnkgdmFsdWUgdGhhdCBjYW4gYmUgcmV0dXJuZWQgZnJvbSBhIHZpc2l0b3IuXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgVmlzaXRvclxuICogICBIYW5kbGUgYSBub2RlIChtYXRjaGluZyBgdGVzdGAsIGlmIGdpdmVuKS5cbiAqXG4gKiAgIFZpc2l0b3JzIGFyZSBmcmVlIHRvIHRyYW5zZm9ybSBgbm9kZWAuXG4gKiAgIFRoZXkgY2FuIGFsc28gdHJhbnNmb3JtIHRoZSBwYXJlbnQgb2Ygbm9kZSAodGhlIGxhc3Qgb2YgYGFuY2VzdG9yc2ApLlxuICpcbiAqICAgUmVwbGFjaW5nIGBub2RlYCBpdHNlbGYsIGlmIGBTS0lQYCBpcyBub3QgcmV0dXJuZWQsIHN0aWxsIGNhdXNlcyBpdHNcbiAqICAgZGVzY2VuZGFudHMgdG8gYmUgd2Fsa2VkICh3aGljaCBpcyBhIGJ1ZykuXG4gKlxuICogICBXaGVuIGFkZGluZyBvciByZW1vdmluZyBwcmV2aW91cyBzaWJsaW5ncyBvZiBgbm9kZWAgKG9yIG5leHQgc2libGluZ3MsIGluXG4gKiAgIGNhc2Ugb2YgcmV2ZXJzZSksIHRoZSBgVmlzaXRvcmAgc2hvdWxkIHJldHVybiBhIG5ldyBgSW5kZXhgIHRvIHNwZWNpZnkgdGhlXG4gKiAgIHNpYmxpbmcgdG8gdHJhdmVyc2UgYWZ0ZXIgYG5vZGVgIGlzIHRyYXZlcnNlZC5cbiAqICAgQWRkaW5nIG9yIHJlbW92aW5nIG5leHQgc2libGluZ3Mgb2YgYG5vZGVgIChvciBwcmV2aW91cyBzaWJsaW5ncywgaW4gY2FzZVxuICogICBvZiByZXZlcnNlKSBpcyBoYW5kbGVkIGFzIGV4cGVjdGVkIHdpdGhvdXQgbmVlZGluZyB0byByZXR1cm4gYSBuZXcgYEluZGV4YC5cbiAqXG4gKiAgIFJlbW92aW5nIHRoZSBjaGlsZHJlbiBwcm9wZXJ0eSBvZiBhbiBhbmNlc3RvciBzdGlsbCByZXN1bHRzIGluIHRoZW0gYmVpbmdcbiAqICAgdHJhdmVyc2VkLlxuICogQHBhcmFtIHtWaXNpdGVkfSBub2RlXG4gKiAgIEZvdW5kIG5vZGUuXG4gKiBAcGFyYW0ge0FycmF5PFZpc2l0ZWRQYXJlbnRzPn0gYW5jZXN0b3JzXG4gKiAgIEFuY2VzdG9ycyBvZiBgbm9kZWAuXG4gKiBAcmV0dXJucyB7VmlzaXRvclJlc3VsdH1cbiAqICAgV2hhdCB0byBkbyBuZXh0LlxuICpcbiAqICAgQW4gYEluZGV4YCBpcyB0cmVhdGVkIGFzIGEgdHVwbGUgb2YgYFtDT05USU5VRSwgSW5kZXhdYC5cbiAqICAgQW4gYEFjdGlvbmAgaXMgdHJlYXRlZCBhcyBhIHR1cGxlIG9mIGBbQWN0aW9uXWAuXG4gKlxuICogICBQYXNzaW5nIGEgdHVwbGUgYmFjayBvbmx5IG1ha2VzIHNlbnNlIGlmIHRoZSBgQWN0aW9uYCBpcyBgU0tJUGAuXG4gKiAgIFdoZW4gdGhlIGBBY3Rpb25gIGlzIGBFWElUYCwgdGhhdCBhY3Rpb24gY2FuIGJlIHJldHVybmVkLlxuICogICBXaGVuIHRoZSBgQWN0aW9uYCBpcyBgQ09OVElOVUVgLCBgSW5kZXhgIGNhbiBiZSByZXR1cm5lZC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBbVmlzaXRlZD1VbmlzdE5vZGVdXG4gKiAgIFZpc2l0ZWQgbm9kZSB0eXBlLlxuICogQHRlbXBsYXRlIHtVbmlzdFBhcmVudH0gW1Zpc2l0ZWRQYXJlbnRzPVVuaXN0UGFyZW50XVxuICogICBBbmNlc3RvciB0eXBlLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge1Zpc2l0b3I8TWF0Y2hlczxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGVjaz4sIEFuY2VzdG9yPFRyZWUsIE1hdGNoZXM8SW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPiwgQ2hlY2s+Pj59IEJ1aWxkVmlzaXRvclxuICogICBCdWlsZCBhIHR5cGVkIGBWaXNpdG9yYCBmdW5jdGlvbiBmcm9tIGEgdHJlZSBhbmQgYSB0ZXN0LlxuICpcbiAqICAgSXQgd2lsbCBpbmZlciB3aGljaCB2YWx1ZXMgYXJlIHBhc3NlZCBhcyBgbm9kZWAgYW5kIHdoaWNoIGFzIGBwYXJlbnRzYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBbVHJlZT1VbmlzdE5vZGVdXG4gKiAgIFRyZWUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VGVzdH0gW0NoZWNrPVRlc3RdXG4gKiAgIFRlc3QgdHlwZS5cbiAqL1xuXG5pbXBvcnQge2NvbnZlcnR9IGZyb20gJ3VuaXN0LXV0aWwtaXMnXG5pbXBvcnQge2NvbG9yfSBmcm9tICd1bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvZG8tbm90LXVzZS1jb2xvcidcblxuLyoqIEB0eXBlIHtSZWFkb25seTxBY3Rpb25UdXBsZT59ICovXG5jb25zdCBlbXB0eSA9IFtdXG5cbi8qKlxuICogQ29udGludWUgdHJhdmVyc2luZyBhcyBub3JtYWwuXG4gKi9cbmV4cG9ydCBjb25zdCBDT05USU5VRSA9IHRydWVcblxuLyoqXG4gKiBTdG9wIHRyYXZlcnNpbmcgaW1tZWRpYXRlbHkuXG4gKi9cbmV4cG9ydCBjb25zdCBFWElUID0gZmFsc2VcblxuLyoqXG4gKiBEbyBub3QgdHJhdmVyc2UgdGhpcyBub2RlXHUyMDE5cyBjaGlsZHJlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNLSVAgPSAnc2tpcCdcblxuLyoqXG4gKiBWaXNpdCBub2Rlcywgd2l0aCBhbmNlc3RyYWwgaW5mb3JtYXRpb24uXG4gKlxuICogVGhpcyBhbGdvcml0aG0gcGVyZm9ybXMgKmRlcHRoLWZpcnN0KiAqdHJlZSB0cmF2ZXJzYWwqIGluICpwcmVvcmRlcipcbiAqICgqKk5MUioqKSBvciBpZiBgcmV2ZXJzZWAgaXMgZ2l2ZW4sIGluICpyZXZlcnNlIHByZW9yZGVyKiAoKipOUkwqKikuXG4gKlxuICogWW91IGNhbiBjaG9vc2UgZm9yIHdoaWNoIG5vZGVzIGB2aXNpdG9yYCBpcyBjYWxsZWQgYnkgcGFzc2luZyBhIGB0ZXN0YC5cbiAqIEZvciBjb21wbGV4IHRlc3RzLCB5b3Ugc2hvdWxkIHRlc3QgeW91cnNlbGYgaW4gYHZpc2l0b3JgLCBhcyBpdCB3aWxsIGJlXG4gKiBmYXN0ZXIgYW5kIHdpbGwgaGF2ZSBpbXByb3ZlZCB0eXBlIGluZm9ybWF0aW9uLlxuICpcbiAqIFdhbGtpbmcgdGhlIHRyZWUgaXMgYW4gaW50ZW5zaXZlIHRhc2suXG4gKiBNYWtlIHVzZSBvZiB0aGUgcmV0dXJuIHZhbHVlcyBvZiB0aGUgdmlzaXRvciB3aGVuIHBvc3NpYmxlLlxuICogSW5zdGVhZCBvZiB3YWxraW5nIGEgdHJlZSBtdWx0aXBsZSB0aW1lcywgd2FsayBpdCBvbmNlLCB1c2UgYHVuaXN0LXV0aWwtaXNgXG4gKiB0byBjaGVjayBpZiBhIG5vZGUgbWF0Y2hlcywgYW5kIHRoZW4gcGVyZm9ybSBkaWZmZXJlbnQgb3BlcmF0aW9ucy5cbiAqXG4gKiBZb3UgY2FuIGNoYW5nZSB0aGUgdHJlZS5cbiAqIFNlZSBgVmlzaXRvcmAgZm9yIG1vcmUgaW5mby5cbiAqXG4gKiBAb3ZlcmxvYWRcbiAqIEBwYXJhbSB7VHJlZX0gdHJlZVxuICogQHBhcmFtIHtDaGVja30gY2hlY2tcbiAqIEBwYXJhbSB7QnVpbGRWaXNpdG9yPFRyZWUsIENoZWNrPn0gdmlzaXRvclxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICpcbiAqIEBvdmVybG9hZFxuICogQHBhcmFtIHtUcmVlfSB0cmVlXG4gKiBAcGFyYW0ge0J1aWxkVmlzaXRvcjxUcmVlPn0gdmlzaXRvclxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICpcbiAqIEBwYXJhbSB7VW5pc3ROb2RlfSB0cmVlXG4gKiAgIFRyZWUgdG8gdHJhdmVyc2UuXG4gKiBAcGFyYW0ge1Zpc2l0b3IgfCBUZXN0fSB0ZXN0XG4gKiAgIGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3RcbiAqIEBwYXJhbSB7VmlzaXRvciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdmlzaXRvcl1cbiAqICAgSGFuZGxlIGVhY2ggbm9kZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtyZXZlcnNlXVxuICogICBUcmF2ZXJzZSBpbiByZXZlcnNlIHByZW9yZGVyIChOUkwpIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgcHJlb3JkZXIgKE5MUikuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICpcbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBUcmVlXG4gKiAgIE5vZGUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VGVzdH0gQ2hlY2tcbiAqICAgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZpc2l0UGFyZW50cyh0cmVlLCB0ZXN0LCB2aXNpdG9yLCByZXZlcnNlKSB7XG4gIC8qKiBAdHlwZSB7VGVzdH0gKi9cbiAgbGV0IGNoZWNrXG5cbiAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2aXNpdG9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV2ZXJzZSA9IHZpc2l0b3JcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG5vIHZpc2l0b3IgZ2l2ZW4sIHNvIGB2aXNpdG9yYCBpcyB0ZXN0LlxuICAgIHZpc2l0b3IgPSB0ZXN0XG4gIH0gZWxzZSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciB2aXNpdG9yIGdpdmVuLCBzbyBgdGVzdGAgaXNuXHUyMDE5dCBhIHZpc2l0b3IuXG4gICAgY2hlY2sgPSB0ZXN0XG4gIH1cblxuICBjb25zdCBpcyA9IGNvbnZlcnQoY2hlY2spXG4gIGNvbnN0IHN0ZXAgPSByZXZlcnNlID8gLTEgOiAxXG5cbiAgZmFjdG9yeSh0cmVlLCB1bmRlZmluZWQsIFtdKSgpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VW5pc3ROb2RlfSBub2RlXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICAgKiBAcGFyYW0ge0FycmF5PFVuaXN0UGFyZW50Pn0gcGFyZW50c1xuICAgKi9cbiAgZnVuY3Rpb24gZmFjdG9yeShub2RlLCBpbmRleCwgcGFyZW50cykge1xuICAgIGNvbnN0IHZhbHVlID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKFxuICAgICAgbm9kZSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcgPyBub2RlIDoge31cbiAgICApXG5cbiAgICBpZiAodHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBuYW1lID1cbiAgICAgICAgLy8gYGhhc3RgXG4gICAgICAgIHR5cGVvZiB2YWx1ZS50YWdOYW1lID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gdmFsdWUudGFnTmFtZVxuICAgICAgICAgIDogLy8gYHhhc3RgXG4gICAgICAgICAgdHlwZW9mIHZhbHVlLm5hbWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyB2YWx1ZS5uYW1lXG4gICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZpc2l0LCAnbmFtZScsIHtcbiAgICAgICAgdmFsdWU6XG4gICAgICAgICAgJ25vZGUgKCcgKyBjb2xvcihub2RlLnR5cGUgKyAobmFtZSA/ICc8JyArIG5hbWUgKyAnPicgOiAnJykpICsgJyknXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiB2aXNpdFxuXG4gICAgZnVuY3Rpb24gdmlzaXQoKSB7XG4gICAgICAvKiogQHR5cGUge1JlYWRvbmx5PEFjdGlvblR1cGxlPn0gKi9cbiAgICAgIGxldCByZXN1bHQgPSBlbXB0eVxuICAgICAgLyoqIEB0eXBlIHtSZWFkb25seTxBY3Rpb25UdXBsZT59ICovXG4gICAgICBsZXQgc3VicmVzdWx0XG4gICAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICAgIGxldCBvZmZzZXRcbiAgICAgIC8qKiBAdHlwZSB7QXJyYXk8VW5pc3RQYXJlbnQ+fSAqL1xuICAgICAgbGV0IGdyYW5kcGFyZW50c1xuXG4gICAgICBpZiAoIXRlc3QgfHwgaXMobm9kZSwgaW5kZXgsIHBhcmVudHNbcGFyZW50cy5sZW5ndGggLSAxXSB8fCB1bmRlZmluZWQpKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGB2aXNpdG9yYCBpcyBub3cgYSB2aXNpdG9yLlxuICAgICAgICByZXN1bHQgPSB0b1Jlc3VsdCh2aXNpdG9yKG5vZGUsIHBhcmVudHMpKVxuXG4gICAgICAgIGlmIChyZXN1bHRbMF0gPT09IEVYSVQpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCdjaGlsZHJlbicgaW4gbm9kZSAmJiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IG5vZGVBc1BhcmVudCA9IC8qKiBAdHlwZSB7VW5pc3RQYXJlbnR9ICovIChub2RlKVxuXG4gICAgICAgIGlmIChub2RlQXNQYXJlbnQuY2hpbGRyZW4gJiYgcmVzdWx0WzBdICE9PSBTS0lQKSB7XG4gICAgICAgICAgb2Zmc2V0ID0gKHJldmVyc2UgPyBub2RlQXNQYXJlbnQuY2hpbGRyZW4ubGVuZ3RoIDogLTEpICsgc3RlcFxuICAgICAgICAgIGdyYW5kcGFyZW50cyA9IHBhcmVudHMuY29uY2F0KG5vZGVBc1BhcmVudClcblxuICAgICAgICAgIHdoaWxlIChvZmZzZXQgPiAtMSAmJiBvZmZzZXQgPCBub2RlQXNQYXJlbnQuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGVBc1BhcmVudC5jaGlsZHJlbltvZmZzZXRdXG5cbiAgICAgICAgICAgIHN1YnJlc3VsdCA9IGZhY3RvcnkoY2hpbGQsIG9mZnNldCwgZ3JhbmRwYXJlbnRzKSgpXG5cbiAgICAgICAgICAgIGlmIChzdWJyZXN1bHRbMF0gPT09IEVYSVQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHN1YnJlc3VsdFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvZmZzZXQgPVxuICAgICAgICAgICAgICB0eXBlb2Ygc3VicmVzdWx0WzFdID09PSAnbnVtYmVyJyA/IHN1YnJlc3VsdFsxXSA6IG9mZnNldCArIHN0ZXBcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gYSByZXR1cm4gdmFsdWUgaW50byBhIGNsZWFuIHJlc3VsdC5cbiAqXG4gKiBAcGFyYW0ge1Zpc2l0b3JSZXN1bHR9IHZhbHVlXG4gKiAgIFZhbGlkIHJldHVybiB2YWx1ZXMgZnJvbSB2aXNpdG9ycy5cbiAqIEByZXR1cm5zIHtSZWFkb25seTxBY3Rpb25UdXBsZT59XG4gKiAgIENsZWFuIHJlc3VsdC5cbiAqL1xuZnVuY3Rpb24gdG9SZXN1bHQodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBbQ09OVElOVUUsIHZhbHVlXVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyBlbXB0eSA6IFt2YWx1ZV1cbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gZGVwcmVjYXRlKGZuKSB7XG4gIHJldHVybiBmblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXF1YWwoKSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gb2soKSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWFjaGFibGUoKSB7fVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9pbmZvLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIEluZm8+fSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gTm9ybWFsXG4gKi9cblxuZXhwb3J0IGNsYXNzIFNjaGVtYSB7XG4gIC8qKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtQcm9wZXJ0aWVzfSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0ge05vcm1hbH0gbm9ybWFsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3BhY2VdXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgbm9ybWFsLCBzcGFjZSkge1xuICAgIHRoaXMucHJvcGVydHkgPSBwcm9wZXJ0eVxuICAgIHRoaXMubm9ybWFsID0gbm9ybWFsXG4gICAgaWYgKHNwYWNlKSB7XG4gICAgICB0aGlzLnNwYWNlID0gc3BhY2VcbiAgICB9XG4gIH1cbn1cblxuLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuU2NoZW1hLnByb3RvdHlwZS5wcm9wZXJ0eSA9IHt9XG4vKiogQHR5cGUge05vcm1hbH0gKi9cblNjaGVtYS5wcm90b3R5cGUubm9ybWFsID0ge31cbi8qKiBAdHlwZSB7c3RyaW5nfG51bGx9ICovXG5TY2hlbWEucHJvdG90eXBlLnNwYWNlID0gbnVsbFxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9zY2hlbWEuanMnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NjaGVtYS5qcycpLk5vcm1hbH0gTm9ybWFsXG4gKi9cblxuaW1wb3J0IHtTY2hlbWF9IGZyb20gJy4vc2NoZW1hLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7U2NoZW1hW119IGRlZmluaXRpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gW3NwYWNlXVxuICogQHJldHVybnMge1NjaGVtYX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlKGRlZmluaXRpb25zLCBzcGFjZSkge1xuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BlcnR5ID0ge31cbiAgLyoqIEB0eXBlIHtOb3JtYWx9ICovXG4gIGNvbnN0IG5vcm1hbCA9IHt9XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBkZWZpbml0aW9ucy5sZW5ndGgpIHtcbiAgICBPYmplY3QuYXNzaWduKHByb3BlcnR5LCBkZWZpbml0aW9uc1tpbmRleF0ucHJvcGVydHkpXG4gICAgT2JqZWN0LmFzc2lnbihub3JtYWwsIGRlZmluaXRpb25zW2luZGV4XS5ub3JtYWwpXG4gIH1cblxuICByZXR1cm4gbmV3IFNjaGVtYShwcm9wZXJ0eSwgbm9ybWFsLCBzcGFjZSlcbn1cbiIsICIvKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKVxufVxuIiwgImV4cG9ydCBjbGFzcyBJbmZvIHtcbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcGVydHksIGF0dHJpYnV0ZSkge1xuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIHRoaXMucHJvcGVydHkgPSBwcm9wZXJ0eVxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIHRoaXMuYXR0cmlidXRlID0gYXR0cmlidXRlXG4gIH1cbn1cblxuLyoqIEB0eXBlIHtzdHJpbmd8bnVsbH0gKi9cbkluZm8ucHJvdG90eXBlLnNwYWNlID0gbnVsbFxuSW5mby5wcm90b3R5cGUuYm9vbGVhbiA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5ib29sZWFuaXNoID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLm92ZXJsb2FkZWRCb29sZWFuID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLm51bWJlciA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5jb21tYVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5zcGFjZVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5jb21tYU9yU3BhY2VTZXBhcmF0ZWQgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUubXVzdFVzZVByb3BlcnR5ID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmRlZmluZWQgPSBmYWxzZVxuIiwgImxldCBwb3dlcnMgPSAwXG5cbmV4cG9ydCBjb25zdCBib29sZWFuID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBib29sZWFuaXNoID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBvdmVybG9hZGVkQm9vbGVhbiA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3QgbnVtYmVyID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBzcGFjZVNlcGFyYXRlZCA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3QgY29tbWFTZXBhcmF0ZWQgPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCA9IGluY3JlbWVudCgpXG5cbmZ1bmN0aW9uIGluY3JlbWVudCgpIHtcbiAgcmV0dXJuIDIgKiogKytwb3dlcnNcbn1cbiIsICJpbXBvcnQge0luZm99IGZyb20gJy4vaW5mby5qcydcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4vdHlwZXMuanMnXG5cbi8qKiBAdHlwZSB7QXJyYXk8a2V5b2YgdHlwZXM+fSAqL1xuLy8gQHRzLWV4cGVjdC1lcnJvcjogaHVzaC5cbmNvbnN0IGNoZWNrcyA9IE9iamVjdC5rZXlzKHR5cGVzKVxuXG5leHBvcnQgY2xhc3MgRGVmaW5lZEluZm8gZXh0ZW5kcyBJbmZvIHtcbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZVxuICAgKiBAcGFyYW0ge251bWJlcnxudWxsfSBbbWFza11cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzcGFjZV1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5LCBhdHRyaWJ1dGUsIG1hc2ssIHNwYWNlKSB7XG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHN1cGVyKHByb3BlcnR5LCBhdHRyaWJ1dGUpXG5cbiAgICBtYXJrKHRoaXMsICdzcGFjZScsIHNwYWNlKVxuXG4gICAgaWYgKHR5cGVvZiBtYXNrID09PSAnbnVtYmVyJykge1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBjaGVja3MubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGNoZWNrID0gY2hlY2tzW2luZGV4XVxuICAgICAgICBtYXJrKHRoaXMsIGNoZWNrc1tpbmRleF0sIChtYXNrICYgdHlwZXNbY2hlY2tdKSA9PT0gdHlwZXNbY2hlY2tdKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5EZWZpbmVkSW5mby5wcm90b3R5cGUuZGVmaW5lZCA9IHRydWVcblxuLyoqXG4gKiBAcGFyYW0ge0RlZmluZWRJbmZvfSB2YWx1ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqL1xuZnVuY3Rpb24gbWFyayh2YWx1ZXMsIGtleSwgdmFsdWUpIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYXNzdW1lIGB2YWx1ZWAgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgYGtleWAuXG4gICAgdmFsdWVzW2tleV0gPSB2YWx1ZVxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NjaGVtYS5qcycpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hLmpzJykuTm9ybWFsfSBOb3JtYWxcbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gQXR0cmlidXRlc1xuICpcbiAqIEB0eXBlZGVmIHtPYmplY3R9IERlZmluaXRpb25cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgbnVtYmVyfG51bGw+fSBwcm9wZXJ0aWVzXG4gKiBAcHJvcGVydHkgeyhhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVzLCBwcm9wZXJ0eTogc3RyaW5nKSA9PiBzdHJpbmd9IHRyYW5zZm9ybVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtzcGFjZV1cbiAqIEBwcm9wZXJ0eSB7QXR0cmlidXRlc30gW2F0dHJpYnV0ZXNdXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IFttdXN0VXNlUHJvcGVydHldXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemV9IGZyb20gJy4uL25vcm1hbGl6ZS5qcydcbmltcG9ydCB7U2NoZW1hfSBmcm9tICcuL3NjaGVtYS5qcydcbmltcG9ydCB7RGVmaW5lZEluZm99IGZyb20gJy4vZGVmaW5lZC1pbmZvLmpzJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEBwYXJhbSB7RGVmaW5pdGlvbn0gZGVmaW5pdGlvblxuICogQHJldHVybnMge1NjaGVtYX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShkZWZpbml0aW9uKSB7XG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydHkgPSB7fVxuICAvKiogQHR5cGUge05vcm1hbH0gKi9cbiAgY29uc3Qgbm9ybWFsID0ge31cbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBwcm9wXG5cbiAgZm9yIChwcm9wIGluIGRlZmluaXRpb24ucHJvcGVydGllcykge1xuICAgIGlmIChvd24uY2FsbChkZWZpbml0aW9uLnByb3BlcnRpZXMsIHByb3ApKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGRlZmluaXRpb24ucHJvcGVydGllc1twcm9wXVxuICAgICAgY29uc3QgaW5mbyA9IG5ldyBEZWZpbmVkSW5mbyhcbiAgICAgICAgcHJvcCxcbiAgICAgICAgZGVmaW5pdGlvbi50cmFuc2Zvcm0oZGVmaW5pdGlvbi5hdHRyaWJ1dGVzIHx8IHt9LCBwcm9wKSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGRlZmluaXRpb24uc3BhY2VcbiAgICAgIClcblxuICAgICAgaWYgKFxuICAgICAgICBkZWZpbml0aW9uLm11c3RVc2VQcm9wZXJ0eSAmJlxuICAgICAgICBkZWZpbml0aW9uLm11c3RVc2VQcm9wZXJ0eS5pbmNsdWRlcyhwcm9wKVxuICAgICAgKSB7XG4gICAgICAgIGluZm8ubXVzdFVzZVByb3BlcnR5ID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eVtwcm9wXSA9IGluZm9cblxuICAgICAgbm9ybWFsW25vcm1hbGl6ZShwcm9wKV0gPSBwcm9wXG4gICAgICBub3JtYWxbbm9ybWFsaXplKGluZm8uYXR0cmlidXRlKV0gPSBwcm9wXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBTY2hlbWEocHJvcGVydHksIG5vcm1hbCwgZGVmaW5pdGlvbi5zcGFjZSlcbn1cbiIsICJpbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcblxuZXhwb3J0IGNvbnN0IHhsaW5rID0gY3JlYXRlKHtcbiAgc3BhY2U6ICd4bGluaycsXG4gIHRyYW5zZm9ybShfLCBwcm9wKSB7XG4gICAgcmV0dXJuICd4bGluazonICsgcHJvcC5zbGljZSg1KS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICB4TGlua0FjdHVhdGU6IG51bGwsXG4gICAgeExpbmtBcmNSb2xlOiBudWxsLFxuICAgIHhMaW5rSHJlZjogbnVsbCxcbiAgICB4TGlua1JvbGU6IG51bGwsXG4gICAgeExpbmtTaG93OiBudWxsLFxuICAgIHhMaW5rVGl0bGU6IG51bGwsXG4gICAgeExpbmtUeXBlOiBudWxsXG4gIH1cbn0pXG4iLCAiaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5cbmV4cG9ydCBjb25zdCB4bWwgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3htbCcsXG4gIHRyYW5zZm9ybShfLCBwcm9wKSB7XG4gICAgcmV0dXJuICd4bWw6JyArIHByb3Auc2xpY2UoMykudG9Mb3dlckNhc2UoKVxuICB9LFxuICBwcm9wZXJ0aWVzOiB7eG1sTGFuZzogbnVsbCwgeG1sQmFzZTogbnVsbCwgeG1sU3BhY2U6IG51bGx9XG59KVxuIiwgIi8qKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybShhdHRyaWJ1dGVzLCBhdHRyaWJ1dGUpIHtcbiAgcmV0dXJuIGF0dHJpYnV0ZSBpbiBhdHRyaWJ1dGVzID8gYXR0cmlidXRlc1thdHRyaWJ1dGVdIDogYXR0cmlidXRlXG59XG4iLCAiaW1wb3J0IHtjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuLyoqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybShhdHRyaWJ1dGVzLCBwcm9wZXJ0eSkge1xuICByZXR1cm4gY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybShhdHRyaWJ1dGVzLCBwcm9wZXJ0eS50b0xvd2VyQ2FzZSgpKVxufVxuIiwgImltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuaW1wb3J0IHtjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm19IGZyb20gJy4vdXRpbC9jYXNlLWluc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuZXhwb3J0IGNvbnN0IHhtbG5zID0gY3JlYXRlKHtcbiAgc3BhY2U6ICd4bWxucycsXG4gIGF0dHJpYnV0ZXM6IHt4bWxuc3hsaW5rOiAneG1sbnM6eGxpbmsnfSxcbiAgdHJhbnNmb3JtOiBjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0sXG4gIHByb3BlcnRpZXM6IHt4bWxuczogbnVsbCwgeG1sbnNYTGluazogbnVsbH1cbn0pXG4iLCAiaW1wb3J0IHtib29sZWFuaXNoLCBudW1iZXIsIHNwYWNlU2VwYXJhdGVkfSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcblxuZXhwb3J0IGNvbnN0IGFyaWEgPSBjcmVhdGUoe1xuICB0cmFuc2Zvcm0oXywgcHJvcCkge1xuICAgIHJldHVybiBwcm9wID09PSAncm9sZScgPyBwcm9wIDogJ2FyaWEtJyArIHByb3Auc2xpY2UoNCkudG9Mb3dlckNhc2UoKVxuICB9LFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgYXJpYUFjdGl2ZURlc2NlbmRhbnQ6IG51bGwsXG4gICAgYXJpYUF0b21pYzogYm9vbGVhbmlzaCxcbiAgICBhcmlhQXV0b0NvbXBsZXRlOiBudWxsLFxuICAgIGFyaWFCdXN5OiBib29sZWFuaXNoLFxuICAgIGFyaWFDaGVja2VkOiBib29sZWFuaXNoLFxuICAgIGFyaWFDb2xDb3VudDogbnVtYmVyLFxuICAgIGFyaWFDb2xJbmRleDogbnVtYmVyLFxuICAgIGFyaWFDb2xTcGFuOiBudW1iZXIsXG4gICAgYXJpYUNvbnRyb2xzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhQ3VycmVudDogbnVsbCxcbiAgICBhcmlhRGVzY3JpYmVkQnk6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFEZXRhaWxzOiBudWxsLFxuICAgIGFyaWFEaXNhYmxlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhRHJvcEVmZmVjdDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUVycm9yTWVzc2FnZTogbnVsbCxcbiAgICBhcmlhRXhwYW5kZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUZsb3dUbzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUdyYWJiZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUhhc1BvcHVwOiBudWxsLFxuICAgIGFyaWFIaWRkZW46IGJvb2xlYW5pc2gsXG4gICAgYXJpYUludmFsaWQ6IG51bGwsXG4gICAgYXJpYUtleVNob3J0Y3V0czogbnVsbCxcbiAgICBhcmlhTGFiZWw6IG51bGwsXG4gICAgYXJpYUxhYmVsbGVkQnk6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFMZXZlbDogbnVtYmVyLFxuICAgIGFyaWFMaXZlOiBudWxsLFxuICAgIGFyaWFNb2RhbDogYm9vbGVhbmlzaCxcbiAgICBhcmlhTXVsdGlMaW5lOiBib29sZWFuaXNoLFxuICAgIGFyaWFNdWx0aVNlbGVjdGFibGU6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU9yaWVudGF0aW9uOiBudWxsLFxuICAgIGFyaWFPd25zOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhUGxhY2Vob2xkZXI6IG51bGwsXG4gICAgYXJpYVBvc0luU2V0OiBudW1iZXIsXG4gICAgYXJpYVByZXNzZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJlYWRPbmx5OiBib29sZWFuaXNoLFxuICAgIGFyaWFSZWxldmFudDogbnVsbCxcbiAgICBhcmlhUmVxdWlyZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJvbGVEZXNjcmlwdGlvbjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYVJvd0NvdW50OiBudW1iZXIsXG4gICAgYXJpYVJvd0luZGV4OiBudW1iZXIsXG4gICAgYXJpYVJvd1NwYW46IG51bWJlcixcbiAgICBhcmlhU2VsZWN0ZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVNldFNpemU6IG51bWJlcixcbiAgICBhcmlhU29ydDogbnVsbCxcbiAgICBhcmlhVmFsdWVNYXg6IG51bWJlcixcbiAgICBhcmlhVmFsdWVNaW46IG51bWJlcixcbiAgICBhcmlhVmFsdWVOb3c6IG51bWJlcixcbiAgICBhcmlhVmFsdWVUZXh0OiBudWxsLFxuICAgIHJvbGU6IG51bGxcbiAgfVxufSlcbiIsICJpbXBvcnQge1xuICBib29sZWFuLFxuICBvdmVybG9hZGVkQm9vbGVhbixcbiAgYm9vbGVhbmlzaCxcbiAgbnVtYmVyLFxuICBzcGFjZVNlcGFyYXRlZCxcbiAgY29tbWFTZXBhcmF0ZWRcbn0gZnJvbSAnLi91dGlsL3R5cGVzLmpzJ1xuaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5pbXBvcnQge2Nhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG5leHBvcnQgY29uc3QgaHRtbCA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAnaHRtbCcsXG4gIGF0dHJpYnV0ZXM6IHtcbiAgICBhY2NlcHRjaGFyc2V0OiAnYWNjZXB0LWNoYXJzZXQnLFxuICAgIGNsYXNzbmFtZTogJ2NsYXNzJyxcbiAgICBodG1sZm9yOiAnZm9yJyxcbiAgICBodHRwZXF1aXY6ICdodHRwLWVxdWl2J1xuICB9LFxuICB0cmFuc2Zvcm06IGNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybSxcbiAgbXVzdFVzZVByb3BlcnR5OiBbJ2NoZWNrZWQnLCAnbXVsdGlwbGUnLCAnbXV0ZWQnLCAnc2VsZWN0ZWQnXSxcbiAgcHJvcGVydGllczoge1xuICAgIC8vIFN0YW5kYXJkIFByb3BlcnRpZXMuXG4gICAgYWJicjogbnVsbCxcbiAgICBhY2NlcHQ6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGFjY2VwdENoYXJzZXQ6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFjY2Vzc0tleTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYWN0aW9uOiBudWxsLFxuICAgIGFsbG93OiBudWxsLFxuICAgIGFsbG93RnVsbFNjcmVlbjogYm9vbGVhbixcbiAgICBhbGxvd1BheW1lbnRSZXF1ZXN0OiBib29sZWFuLFxuICAgIGFsbG93VXNlck1lZGlhOiBib29sZWFuLFxuICAgIGFsdDogbnVsbCxcbiAgICBhczogbnVsbCxcbiAgICBhc3luYzogYm9vbGVhbixcbiAgICBhdXRvQ2FwaXRhbGl6ZTogbnVsbCxcbiAgICBhdXRvQ29tcGxldGU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGF1dG9Gb2N1czogYm9vbGVhbixcbiAgICBhdXRvUGxheTogYm9vbGVhbixcbiAgICBjYXB0dXJlOiBib29sZWFuLFxuICAgIGNoYXJTZXQ6IG51bGwsXG4gICAgY2hlY2tlZDogYm9vbGVhbixcbiAgICBjaXRlOiBudWxsLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY29sczogbnVtYmVyLFxuICAgIGNvbFNwYW46IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBjb250ZW50RWRpdGFibGU6IGJvb2xlYW5pc2gsXG4gICAgY29udHJvbHM6IGJvb2xlYW4sXG4gICAgY29udHJvbHNMaXN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjb29yZHM6IG51bWJlciB8IGNvbW1hU2VwYXJhdGVkLFxuICAgIGNyb3NzT3JpZ2luOiBudWxsLFxuICAgIGRhdGE6IG51bGwsXG4gICAgZGF0ZVRpbWU6IG51bGwsXG4gICAgZGVjb2Rpbmc6IG51bGwsXG4gICAgZGVmYXVsdDogYm9vbGVhbixcbiAgICBkZWZlcjogYm9vbGVhbixcbiAgICBkaXI6IG51bGwsXG4gICAgZGlyTmFtZTogbnVsbCxcbiAgICBkaXNhYmxlZDogYm9vbGVhbixcbiAgICBkb3dubG9hZDogb3ZlcmxvYWRlZEJvb2xlYW4sXG4gICAgZHJhZ2dhYmxlOiBib29sZWFuaXNoLFxuICAgIGVuY1R5cGU6IG51bGwsXG4gICAgZW50ZXJLZXlIaW50OiBudWxsLFxuICAgIGZvcm06IG51bGwsXG4gICAgZm9ybUFjdGlvbjogbnVsbCxcbiAgICBmb3JtRW5jVHlwZTogbnVsbCxcbiAgICBmb3JtTWV0aG9kOiBudWxsLFxuICAgIGZvcm1Ob1ZhbGlkYXRlOiBib29sZWFuLFxuICAgIGZvcm1UYXJnZXQ6IG51bGwsXG4gICAgaGVhZGVyczogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaGVpZ2h0OiBudW1iZXIsXG4gICAgaGlkZGVuOiBib29sZWFuLFxuICAgIGhpZ2g6IG51bWJlcixcbiAgICBocmVmOiBudWxsLFxuICAgIGhyZWZMYW5nOiBudWxsLFxuICAgIGh0bWxGb3I6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGh0dHBFcXVpdjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaWQ6IG51bGwsXG4gICAgaW1hZ2VTaXplczogbnVsbCxcbiAgICBpbWFnZVNyY1NldDogbnVsbCxcbiAgICBpbnB1dE1vZGU6IG51bGwsXG4gICAgaW50ZWdyaXR5OiBudWxsLFxuICAgIGlzOiBudWxsLFxuICAgIGlzTWFwOiBib29sZWFuLFxuICAgIGl0ZW1JZDogbnVsbCxcbiAgICBpdGVtUHJvcDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaXRlbVJlZjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaXRlbVNjb3BlOiBib29sZWFuLFxuICAgIGl0ZW1UeXBlOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBraW5kOiBudWxsLFxuICAgIGxhYmVsOiBudWxsLFxuICAgIGxhbmc6IG51bGwsXG4gICAgbGFuZ3VhZ2U6IG51bGwsXG4gICAgbGlzdDogbnVsbCxcbiAgICBsb2FkaW5nOiBudWxsLFxuICAgIGxvb3A6IGJvb2xlYW4sXG4gICAgbG93OiBudW1iZXIsXG4gICAgbWFuaWZlc3Q6IG51bGwsXG4gICAgbWF4OiBudWxsLFxuICAgIG1heExlbmd0aDogbnVtYmVyLFxuICAgIG1lZGlhOiBudWxsLFxuICAgIG1ldGhvZDogbnVsbCxcbiAgICBtaW46IG51bGwsXG4gICAgbWluTGVuZ3RoOiBudW1iZXIsXG4gICAgbXVsdGlwbGU6IGJvb2xlYW4sXG4gICAgbXV0ZWQ6IGJvb2xlYW4sXG4gICAgbmFtZTogbnVsbCxcbiAgICBub25jZTogbnVsbCxcbiAgICBub01vZHVsZTogYm9vbGVhbixcbiAgICBub1ZhbGlkYXRlOiBib29sZWFuLFxuICAgIG9uQWJvcnQ6IG51bGwsXG4gICAgb25BZnRlclByaW50OiBudWxsLFxuICAgIG9uQXV4Q2xpY2s6IG51bGwsXG4gICAgb25CZWZvcmVNYXRjaDogbnVsbCxcbiAgICBvbkJlZm9yZVByaW50OiBudWxsLFxuICAgIG9uQmVmb3JlVW5sb2FkOiBudWxsLFxuICAgIG9uQmx1cjogbnVsbCxcbiAgICBvbkNhbmNlbDogbnVsbCxcbiAgICBvbkNhblBsYXk6IG51bGwsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogbnVsbCxcbiAgICBvbkNoYW5nZTogbnVsbCxcbiAgICBvbkNsaWNrOiBudWxsLFxuICAgIG9uQ2xvc2U6IG51bGwsXG4gICAgb25Db250ZXh0TG9zdDogbnVsbCxcbiAgICBvbkNvbnRleHRNZW51OiBudWxsLFxuICAgIG9uQ29udGV4dFJlc3RvcmVkOiBudWxsLFxuICAgIG9uQ29weTogbnVsbCxcbiAgICBvbkN1ZUNoYW5nZTogbnVsbCxcbiAgICBvbkN1dDogbnVsbCxcbiAgICBvbkRibENsaWNrOiBudWxsLFxuICAgIG9uRHJhZzogbnVsbCxcbiAgICBvbkRyYWdFbmQ6IG51bGwsXG4gICAgb25EcmFnRW50ZXI6IG51bGwsXG4gICAgb25EcmFnRXhpdDogbnVsbCxcbiAgICBvbkRyYWdMZWF2ZTogbnVsbCxcbiAgICBvbkRyYWdPdmVyOiBudWxsLFxuICAgIG9uRHJhZ1N0YXJ0OiBudWxsLFxuICAgIG9uRHJvcDogbnVsbCxcbiAgICBvbkR1cmF0aW9uQ2hhbmdlOiBudWxsLFxuICAgIG9uRW1wdGllZDogbnVsbCxcbiAgICBvbkVuZGVkOiBudWxsLFxuICAgIG9uRXJyb3I6IG51bGwsXG4gICAgb25Gb2N1czogbnVsbCxcbiAgICBvbkZvcm1EYXRhOiBudWxsLFxuICAgIG9uSGFzaENoYW5nZTogbnVsbCxcbiAgICBvbklucHV0OiBudWxsLFxuICAgIG9uSW52YWxpZDogbnVsbCxcbiAgICBvbktleURvd246IG51bGwsXG4gICAgb25LZXlQcmVzczogbnVsbCxcbiAgICBvbktleVVwOiBudWxsLFxuICAgIG9uTGFuZ3VhZ2VDaGFuZ2U6IG51bGwsXG4gICAgb25Mb2FkOiBudWxsLFxuICAgIG9uTG9hZGVkRGF0YTogbnVsbCxcbiAgICBvbkxvYWRlZE1ldGFkYXRhOiBudWxsLFxuICAgIG9uTG9hZEVuZDogbnVsbCxcbiAgICBvbkxvYWRTdGFydDogbnVsbCxcbiAgICBvbk1lc3NhZ2U6IG51bGwsXG4gICAgb25NZXNzYWdlRXJyb3I6IG51bGwsXG4gICAgb25Nb3VzZURvd246IG51bGwsXG4gICAgb25Nb3VzZUVudGVyOiBudWxsLFxuICAgIG9uTW91c2VMZWF2ZTogbnVsbCxcbiAgICBvbk1vdXNlTW92ZTogbnVsbCxcbiAgICBvbk1vdXNlT3V0OiBudWxsLFxuICAgIG9uTW91c2VPdmVyOiBudWxsLFxuICAgIG9uTW91c2VVcDogbnVsbCxcbiAgICBvbk9mZmxpbmU6IG51bGwsXG4gICAgb25PbmxpbmU6IG51bGwsXG4gICAgb25QYWdlSGlkZTogbnVsbCxcbiAgICBvblBhZ2VTaG93OiBudWxsLFxuICAgIG9uUGFzdGU6IG51bGwsXG4gICAgb25QYXVzZTogbnVsbCxcbiAgICBvblBsYXk6IG51bGwsXG4gICAgb25QbGF5aW5nOiBudWxsLFxuICAgIG9uUG9wU3RhdGU6IG51bGwsXG4gICAgb25Qcm9ncmVzczogbnVsbCxcbiAgICBvblJhdGVDaGFuZ2U6IG51bGwsXG4gICAgb25SZWplY3Rpb25IYW5kbGVkOiBudWxsLFxuICAgIG9uUmVzZXQ6IG51bGwsXG4gICAgb25SZXNpemU6IG51bGwsXG4gICAgb25TY3JvbGw6IG51bGwsXG4gICAgb25TY3JvbGxFbmQ6IG51bGwsXG4gICAgb25TZWN1cml0eVBvbGljeVZpb2xhdGlvbjogbnVsbCxcbiAgICBvblNlZWtlZDogbnVsbCxcbiAgICBvblNlZWtpbmc6IG51bGwsXG4gICAgb25TZWxlY3Q6IG51bGwsXG4gICAgb25TbG90Q2hhbmdlOiBudWxsLFxuICAgIG9uU3RhbGxlZDogbnVsbCxcbiAgICBvblN0b3JhZ2U6IG51bGwsXG4gICAgb25TdWJtaXQ6IG51bGwsXG4gICAgb25TdXNwZW5kOiBudWxsLFxuICAgIG9uVGltZVVwZGF0ZTogbnVsbCxcbiAgICBvblRvZ2dsZTogbnVsbCxcbiAgICBvblVuaGFuZGxlZFJlamVjdGlvbjogbnVsbCxcbiAgICBvblVubG9hZDogbnVsbCxcbiAgICBvblZvbHVtZUNoYW5nZTogbnVsbCxcbiAgICBvbldhaXRpbmc6IG51bGwsXG4gICAgb25XaGVlbDogbnVsbCxcbiAgICBvcGVuOiBib29sZWFuLFxuICAgIG9wdGltdW06IG51bWJlcixcbiAgICBwYXR0ZXJuOiBudWxsLFxuICAgIHBpbmc6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHBsYWNlaG9sZGVyOiBudWxsLFxuICAgIHBsYXlzSW5saW5lOiBib29sZWFuLFxuICAgIHBvc3RlcjogbnVsbCxcbiAgICBwcmVsb2FkOiBudWxsLFxuICAgIHJlYWRPbmx5OiBib29sZWFuLFxuICAgIHJlZmVycmVyUG9saWN5OiBudWxsLFxuICAgIHJlbDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW4sXG4gICAgcmV2ZXJzZWQ6IGJvb2xlYW4sXG4gICAgcm93czogbnVtYmVyLFxuICAgIHJvd1NwYW46IG51bWJlcixcbiAgICBzYW5kYm94OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBzY29wZTogbnVsbCxcbiAgICBzY29wZWQ6IGJvb2xlYW4sXG4gICAgc2VhbWxlc3M6IGJvb2xlYW4sXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW4sXG4gICAgc2hhcGU6IG51bGwsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNpemVzOiBudWxsLFxuICAgIHNsb3Q6IG51bGwsXG4gICAgc3BhbjogbnVtYmVyLFxuICAgIHNwZWxsQ2hlY2s6IGJvb2xlYW5pc2gsXG4gICAgc3JjOiBudWxsLFxuICAgIHNyY0RvYzogbnVsbCxcbiAgICBzcmNMYW5nOiBudWxsLFxuICAgIHNyY1NldDogbnVsbCxcbiAgICBzdGFydDogbnVtYmVyLFxuICAgIHN0ZXA6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNsYXRlOiBudWxsLFxuICAgIHR5cGU6IG51bGwsXG4gICAgdHlwZU11c3RNYXRjaDogYm9vbGVhbixcbiAgICB1c2VNYXA6IG51bGwsXG4gICAgdmFsdWU6IGJvb2xlYW5pc2gsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICB3cmFwOiBudWxsLFxuXG4gICAgLy8gTGVnYWN5LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jb3RoZXItZWxlbWVudHMsLWF0dHJpYnV0ZXMtYW5kLWFwaXNcbiAgICBhbGlnbjogbnVsbCwgLy8gU2V2ZXJhbC4gVXNlIENTUyBgdGV4dC1hbGlnbmAgaW5zdGVhZCxcbiAgICBhTGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6YWN0aXZlIHtjb2xvcn1gIGluc3RlYWRcbiAgICBhcmNoaXZlOiBzcGFjZVNlcGFyYXRlZCwgLy8gYDxvYmplY3Q+YC4gTGlzdCBvZiBVUklzIHRvIGFyY2hpdmVzXG4gICAgYXhpczogbnVsbCwgLy8gYDx0ZD5gIGFuZCBgPHRoPmAuIFVzZSBgc2NvcGVgIG9uIGA8dGg+YFxuICAgIGJhY2tncm91bmQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWltYWdlYCBpbnN0ZWFkXG4gICAgYmdDb2xvcjogbnVsbCwgLy8gYDxib2R5PmAgYW5kIHRhYmxlIGVsZW1lbnRzLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWNvbG9yYCBpbnN0ZWFkXG4gICAgYm9yZGVyOiBudW1iZXIsIC8vIGA8dGFibGU+YC4gVXNlIENTUyBgYm9yZGVyLXdpZHRoYCBpbnN0ZWFkLFxuICAgIGJvcmRlckNvbG9yOiBudWxsLCAvLyBgPHRhYmxlPmAuIFVzZSBDU1MgYGJvcmRlci1jb2xvcmAgaW5zdGVhZCxcbiAgICBib3R0b21NYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBjZWxsUGFkZGluZzogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgY2VsbFNwYWNpbmc6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGNoYXI6IG51bGwsIC8vIFNldmVyYWwgdGFibGUgZWxlbWVudHMuIFdoZW4gYGFsaWduPWNoYXJgLCBzZXRzIHRoZSBjaGFyYWN0ZXIgdG8gYWxpZ24gb25cbiAgICBjaGFyT2ZmOiBudWxsLCAvLyBTZXZlcmFsIHRhYmxlIGVsZW1lbnRzLiBXaGVuIGBjaGFyYCwgb2Zmc2V0cyB0aGUgYWxpZ25tZW50XG4gICAgY2xhc3NJZDogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNsZWFyOiBudWxsLCAvLyBgPGJyPmAuIFVzZSBDU1MgYGNsZWFyYCBpbnN0ZWFkXG4gICAgY29kZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvZGVCYXNlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29kZVR5cGU6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2xvcjogbnVsbCwgLy8gYDxmb250PmAgYW5kIGA8aHI+YC4gVXNlIENTUyBpbnN0ZWFkXG4gICAgY29tcGFjdDogYm9vbGVhbiwgLy8gTGlzdHMuIFVzZSBDU1MgdG8gcmVkdWNlIHNwYWNlIGJldHdlZW4gaXRlbXMgaW5zdGVhZFxuICAgIGRlY2xhcmU6IGJvb2xlYW4sIC8vIGA8b2JqZWN0PmBcbiAgICBldmVudDogbnVsbCwgLy8gYDxzY3JpcHQ+YFxuICAgIGZhY2U6IG51bGwsIC8vIGA8Zm9udD5gLiBVc2UgQ1NTIGluc3RlYWRcbiAgICBmcmFtZTogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgZnJhbWVCb3JkZXI6IG51bGwsIC8vIGA8aWZyYW1lPmAuIFVzZSBDU1MgYGJvcmRlcmAgaW5zdGVhZFxuICAgIGhTcGFjZTogbnVtYmVyLCAvLyBgPGltZz5gIGFuZCBgPG9iamVjdD5gXG4gICAgbGVmdE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIGxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOmxpbmsge2NvbG9yOiAqfWAgaW5zdGVhZFxuICAgIGxvbmdEZXNjOiBudWxsLCAvLyBgPGZyYW1lPmAsIGA8aWZyYW1lPmAsIGFuZCBgPGltZz5gLiBVc2UgYW4gYDxhPmBcbiAgICBsb3dTcmM6IG51bGwsIC8vIGA8aW1nPmAuIFVzZSBhIGA8cGljdHVyZT5gXG4gICAgbWFyZ2luSGVpZ2h0OiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbWFyZ2luV2lkdGg6IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBub1Jlc2l6ZTogYm9vbGVhbiwgLy8gYDxmcmFtZT5gXG4gICAgbm9IcmVmOiBib29sZWFuLCAvLyBgPGFyZWE+YC4gVXNlIG5vIGhyZWYgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBgbm9ocmVmYFxuICAgIG5vU2hhZGU6IGJvb2xlYW4sIC8vIGA8aHI+YC4gVXNlIGJhY2tncm91bmQtY29sb3IgYW5kIGhlaWdodCBpbnN0ZWFkIG9mIGJvcmRlcnNcbiAgICBub1dyYXA6IGJvb2xlYW4sIC8vIGA8dGQ+YCBhbmQgYDx0aD5gXG4gICAgb2JqZWN0OiBudWxsLCAvLyBgPGFwcGxldD5gXG4gICAgcHJvZmlsZTogbnVsbCwgLy8gYDxoZWFkPmBcbiAgICBwcm9tcHQ6IG51bGwsIC8vIGA8aXNpbmRleD5gXG4gICAgcmV2OiBudWxsLCAvLyBgPGxpbms+YFxuICAgIHJpZ2h0TWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgcnVsZXM6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHNjaGVtZTogbnVsbCwgLy8gYDxtZXRhPmBcbiAgICBzY3JvbGxpbmc6IGJvb2xlYW5pc2gsIC8vIGA8ZnJhbWU+YC4gVXNlIG92ZXJmbG93IGluIHRoZSBjaGlsZCBjb250ZXh0XG4gICAgc3RhbmRieTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIHN1bW1hcnk6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHRleHQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBjb2xvcmAgaW5zdGVhZFxuICAgIHRvcE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIHZhbHVlVHlwZTogbnVsbCwgLy8gYDxwYXJhbT5gXG4gICAgdmVyc2lvbjogbnVsbCwgLy8gYDxodG1sPmAuIFVzZSBhIGRvY3R5cGUuXG4gICAgdkFsaWduOiBudWxsLCAvLyBTZXZlcmFsLiBVc2UgQ1NTIGB2ZXJ0aWNhbC1hbGlnbmAgaW5zdGVhZFxuICAgIHZMaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTp2aXNpdGVkIHtjb2xvcn1gIGluc3RlYWRcbiAgICB2U3BhY2U6IG51bWJlciwgLy8gYDxpbWc+YCBhbmQgYDxvYmplY3Q+YFxuXG4gICAgLy8gTm9uLXN0YW5kYXJkIFByb3BlcnRpZXMuXG4gICAgYWxsb3dUcmFuc3BhcmVuY3k6IG51bGwsXG4gICAgYXV0b0NvcnJlY3Q6IG51bGwsXG4gICAgYXV0b1NhdmU6IG51bGwsXG4gICAgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6IGJvb2xlYW4sXG4gICAgZGlzYWJsZVJlbW90ZVBsYXliYWNrOiBib29sZWFuLFxuICAgIHByZWZpeDogbnVsbCxcbiAgICBwcm9wZXJ0eTogbnVsbCxcbiAgICByZXN1bHRzOiBudW1iZXIsXG4gICAgc2VjdXJpdHk6IG51bGwsXG4gICAgdW5zZWxlY3RhYmxlOiBudWxsXG4gIH1cbn0pXG4iLCAiaW1wb3J0IHtcbiAgYm9vbGVhbixcbiAgbnVtYmVyLFxuICBzcGFjZVNlcGFyYXRlZCxcbiAgY29tbWFTZXBhcmF0ZWQsXG4gIGNvbW1hT3JTcGFjZVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZVNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuZXhwb3J0IGNvbnN0IHN2ZyA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAnc3ZnJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VudEhlaWdodDogJ2FjY2VudC1oZWlnaHQnLFxuICAgIGFsaWdubWVudEJhc2VsaW5lOiAnYWxpZ25tZW50LWJhc2VsaW5lJyxcbiAgICBhcmFiaWNGb3JtOiAnYXJhYmljLWZvcm0nLFxuICAgIGJhc2VsaW5lU2hpZnQ6ICdiYXNlbGluZS1zaGlmdCcsXG4gICAgY2FwSGVpZ2h0OiAnY2FwLWhlaWdodCcsXG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGNsaXBQYXRoOiAnY2xpcC1wYXRoJyxcbiAgICBjbGlwUnVsZTogJ2NsaXAtcnVsZScsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uOiAnY29sb3ItaW50ZXJwb2xhdGlvbicsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczogJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycycsXG4gICAgY29sb3JQcm9maWxlOiAnY29sb3ItcHJvZmlsZScsXG4gICAgY29sb3JSZW5kZXJpbmc6ICdjb2xvci1yZW5kZXJpbmcnLFxuICAgIGNyb3NzT3JpZ2luOiAnY3Jvc3NvcmlnaW4nLFxuICAgIGRhdGFUeXBlOiAnZGF0YXR5cGUnLFxuICAgIGRvbWluYW50QmFzZWxpbmU6ICdkb21pbmFudC1iYXNlbGluZScsXG4gICAgZW5hYmxlQmFja2dyb3VuZDogJ2VuYWJsZS1iYWNrZ3JvdW5kJyxcbiAgICBmaWxsT3BhY2l0eTogJ2ZpbGwtb3BhY2l0eScsXG4gICAgZmlsbFJ1bGU6ICdmaWxsLXJ1bGUnLFxuICAgIGZsb29kQ29sb3I6ICdmbG9vZC1jb2xvcicsXG4gICAgZmxvb2RPcGFjaXR5OiAnZmxvb2Qtb3BhY2l0eScsXG4gICAgZm9udEZhbWlseTogJ2ZvbnQtZmFtaWx5JyxcbiAgICBmb250U2l6ZTogJ2ZvbnQtc2l6ZScsXG4gICAgZm9udFNpemVBZGp1c3Q6ICdmb250LXNpemUtYWRqdXN0JyxcbiAgICBmb250U3RyZXRjaDogJ2ZvbnQtc3RyZXRjaCcsXG4gICAgZm9udFN0eWxlOiAnZm9udC1zdHlsZScsXG4gICAgZm9udFZhcmlhbnQ6ICdmb250LXZhcmlhbnQnLFxuICAgIGZvbnRXZWlnaHQ6ICdmb250LXdlaWdodCcsXG4gICAgZ2x5cGhOYW1lOiAnZ2x5cGgtbmFtZScsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6ICdnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsJyxcbiAgICBnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6ICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsXG4gICAgaHJlZkxhbmc6ICdocmVmbGFuZycsXG4gICAgaG9yaXpBZHZYOiAnaG9yaXotYWR2LXgnLFxuICAgIGhvcml6T3JpZ2luWDogJ2hvcml6LW9yaWdpbi14JyxcbiAgICBob3Jpek9yaWdpblk6ICdob3Jpei1vcmlnaW4teScsXG4gICAgaW1hZ2VSZW5kZXJpbmc6ICdpbWFnZS1yZW5kZXJpbmcnLFxuICAgIGxldHRlclNwYWNpbmc6ICdsZXR0ZXItc3BhY2luZycsXG4gICAgbGlnaHRpbmdDb2xvcjogJ2xpZ2h0aW5nLWNvbG9yJyxcbiAgICBtYXJrZXJFbmQ6ICdtYXJrZXItZW5kJyxcbiAgICBtYXJrZXJNaWQ6ICdtYXJrZXItbWlkJyxcbiAgICBtYXJrZXJTdGFydDogJ21hcmtlci1zdGFydCcsXG4gICAgbmF2RG93bjogJ25hdi1kb3duJyxcbiAgICBuYXZEb3duTGVmdDogJ25hdi1kb3duLWxlZnQnLFxuICAgIG5hdkRvd25SaWdodDogJ25hdi1kb3duLXJpZ2h0JyxcbiAgICBuYXZMZWZ0OiAnbmF2LWxlZnQnLFxuICAgIG5hdk5leHQ6ICduYXYtbmV4dCcsXG4gICAgbmF2UHJldjogJ25hdi1wcmV2JyxcbiAgICBuYXZSaWdodDogJ25hdi1yaWdodCcsXG4gICAgbmF2VXA6ICduYXYtdXAnLFxuICAgIG5hdlVwTGVmdDogJ25hdi11cC1sZWZ0JyxcbiAgICBuYXZVcFJpZ2h0OiAnbmF2LXVwLXJpZ2h0JyxcbiAgICBvbkFib3J0OiAnb25hYm9ydCcsXG4gICAgb25BY3RpdmF0ZTogJ29uYWN0aXZhdGUnLFxuICAgIG9uQWZ0ZXJQcmludDogJ29uYWZ0ZXJwcmludCcsXG4gICAgb25CZWZvcmVQcmludDogJ29uYmVmb3JlcHJpbnQnLFxuICAgIG9uQmVnaW46ICdvbmJlZ2luJyxcbiAgICBvbkNhbmNlbDogJ29uY2FuY2VsJyxcbiAgICBvbkNhblBsYXk6ICdvbmNhbnBsYXknLFxuICAgIG9uQ2FuUGxheVRocm91Z2g6ICdvbmNhbnBsYXl0aHJvdWdoJyxcbiAgICBvbkNoYW5nZTogJ29uY2hhbmdlJyxcbiAgICBvbkNsaWNrOiAnb25jbGljaycsXG4gICAgb25DbG9zZTogJ29uY2xvc2UnLFxuICAgIG9uQ29weTogJ29uY29weScsXG4gICAgb25DdWVDaGFuZ2U6ICdvbmN1ZWNoYW5nZScsXG4gICAgb25DdXQ6ICdvbmN1dCcsXG4gICAgb25EYmxDbGljazogJ29uZGJsY2xpY2snLFxuICAgIG9uRHJhZzogJ29uZHJhZycsXG4gICAgb25EcmFnRW5kOiAnb25kcmFnZW5kJyxcbiAgICBvbkRyYWdFbnRlcjogJ29uZHJhZ2VudGVyJyxcbiAgICBvbkRyYWdFeGl0OiAnb25kcmFnZXhpdCcsXG4gICAgb25EcmFnTGVhdmU6ICdvbmRyYWdsZWF2ZScsXG4gICAgb25EcmFnT3ZlcjogJ29uZHJhZ292ZXInLFxuICAgIG9uRHJhZ1N0YXJ0OiAnb25kcmFnc3RhcnQnLFxuICAgIG9uRHJvcDogJ29uZHJvcCcsXG4gICAgb25EdXJhdGlvbkNoYW5nZTogJ29uZHVyYXRpb25jaGFuZ2UnLFxuICAgIG9uRW1wdGllZDogJ29uZW1wdGllZCcsXG4gICAgb25FbmQ6ICdvbmVuZCcsXG4gICAgb25FbmRlZDogJ29uZW5kZWQnLFxuICAgIG9uRXJyb3I6ICdvbmVycm9yJyxcbiAgICBvbkZvY3VzOiAnb25mb2N1cycsXG4gICAgb25Gb2N1c0luOiAnb25mb2N1c2luJyxcbiAgICBvbkZvY3VzT3V0OiAnb25mb2N1c291dCcsXG4gICAgb25IYXNoQ2hhbmdlOiAnb25oYXNoY2hhbmdlJyxcbiAgICBvbklucHV0OiAnb25pbnB1dCcsXG4gICAgb25JbnZhbGlkOiAnb25pbnZhbGlkJyxcbiAgICBvbktleURvd246ICdvbmtleWRvd24nLFxuICAgIG9uS2V5UHJlc3M6ICdvbmtleXByZXNzJyxcbiAgICBvbktleVVwOiAnb25rZXl1cCcsXG4gICAgb25Mb2FkOiAnb25sb2FkJyxcbiAgICBvbkxvYWRlZERhdGE6ICdvbmxvYWRlZGRhdGEnLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6ICdvbmxvYWRlZG1ldGFkYXRhJyxcbiAgICBvbkxvYWRTdGFydDogJ29ubG9hZHN0YXJ0JyxcbiAgICBvbk1lc3NhZ2U6ICdvbm1lc3NhZ2UnLFxuICAgIG9uTW91c2VEb3duOiAnb25tb3VzZWRvd24nLFxuICAgIG9uTW91c2VFbnRlcjogJ29ubW91c2VlbnRlcicsXG4gICAgb25Nb3VzZUxlYXZlOiAnb25tb3VzZWxlYXZlJyxcbiAgICBvbk1vdXNlTW92ZTogJ29ubW91c2Vtb3ZlJyxcbiAgICBvbk1vdXNlT3V0OiAnb25tb3VzZW91dCcsXG4gICAgb25Nb3VzZU92ZXI6ICdvbm1vdXNlb3ZlcicsXG4gICAgb25Nb3VzZVVwOiAnb25tb3VzZXVwJyxcbiAgICBvbk1vdXNlV2hlZWw6ICdvbm1vdXNld2hlZWwnLFxuICAgIG9uT2ZmbGluZTogJ29ub2ZmbGluZScsXG4gICAgb25PbmxpbmU6ICdvbm9ubGluZScsXG4gICAgb25QYWdlSGlkZTogJ29ucGFnZWhpZGUnLFxuICAgIG9uUGFnZVNob3c6ICdvbnBhZ2VzaG93JyxcbiAgICBvblBhc3RlOiAnb25wYXN0ZScsXG4gICAgb25QYXVzZTogJ29ucGF1c2UnLFxuICAgIG9uUGxheTogJ29ucGxheScsXG4gICAgb25QbGF5aW5nOiAnb25wbGF5aW5nJyxcbiAgICBvblBvcFN0YXRlOiAnb25wb3BzdGF0ZScsXG4gICAgb25Qcm9ncmVzczogJ29ucHJvZ3Jlc3MnLFxuICAgIG9uUmF0ZUNoYW5nZTogJ29ucmF0ZWNoYW5nZScsXG4gICAgb25SZXBlYXQ6ICdvbnJlcGVhdCcsXG4gICAgb25SZXNldDogJ29ucmVzZXQnLFxuICAgIG9uUmVzaXplOiAnb25yZXNpemUnLFxuICAgIG9uU2Nyb2xsOiAnb25zY3JvbGwnLFxuICAgIG9uU2Vla2VkOiAnb25zZWVrZWQnLFxuICAgIG9uU2Vla2luZzogJ29uc2Vla2luZycsXG4gICAgb25TZWxlY3Q6ICdvbnNlbGVjdCcsXG4gICAgb25TaG93OiAnb25zaG93JyxcbiAgICBvblN0YWxsZWQ6ICdvbnN0YWxsZWQnLFxuICAgIG9uU3RvcmFnZTogJ29uc3RvcmFnZScsXG4gICAgb25TdWJtaXQ6ICdvbnN1Ym1pdCcsXG4gICAgb25TdXNwZW5kOiAnb25zdXNwZW5kJyxcbiAgICBvblRpbWVVcGRhdGU6ICdvbnRpbWV1cGRhdGUnLFxuICAgIG9uVG9nZ2xlOiAnb250b2dnbGUnLFxuICAgIG9uVW5sb2FkOiAnb251bmxvYWQnLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiAnb252b2x1bWVjaGFuZ2UnLFxuICAgIG9uV2FpdGluZzogJ29ud2FpdGluZycsXG4gICAgb25ab29tOiAnb256b29tJyxcbiAgICBvdmVybGluZVBvc2l0aW9uOiAnb3ZlcmxpbmUtcG9zaXRpb24nLFxuICAgIG92ZXJsaW5lVGhpY2tuZXNzOiAnb3ZlcmxpbmUtdGhpY2tuZXNzJyxcbiAgICBwYWludE9yZGVyOiAncGFpbnQtb3JkZXInLFxuICAgIHBhbm9zZTE6ICdwYW5vc2UtMScsXG4gICAgcG9pbnRlckV2ZW50czogJ3BvaW50ZXItZXZlbnRzJyxcbiAgICByZWZlcnJlclBvbGljeTogJ3JlZmVycmVycG9saWN5JyxcbiAgICByZW5kZXJpbmdJbnRlbnQ6ICdyZW5kZXJpbmctaW50ZW50JyxcbiAgICBzaGFwZVJlbmRlcmluZzogJ3NoYXBlLXJlbmRlcmluZycsXG4gICAgc3RvcENvbG9yOiAnc3RvcC1jb2xvcicsXG4gICAgc3RvcE9wYWNpdHk6ICdzdG9wLW9wYWNpdHknLFxuICAgIHN0cmlrZXRocm91Z2hQb3NpdGlvbjogJ3N0cmlrZXRocm91Z2gtcG9zaXRpb24nLFxuICAgIHN0cmlrZXRocm91Z2hUaGlja25lc3M6ICdzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcycsXG4gICAgc3Ryb2tlRGFzaEFycmF5OiAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICAgc3Ryb2tlRGFzaE9mZnNldDogJ3N0cm9rZS1kYXNob2Zmc2V0JyxcbiAgICBzdHJva2VMaW5lQ2FwOiAnc3Ryb2tlLWxpbmVjYXAnLFxuICAgIHN0cm9rZUxpbmVKb2luOiAnc3Ryb2tlLWxpbmVqb2luJyxcbiAgICBzdHJva2VNaXRlckxpbWl0OiAnc3Ryb2tlLW1pdGVybGltaXQnLFxuICAgIHN0cm9rZU9wYWNpdHk6ICdzdHJva2Utb3BhY2l0eScsXG4gICAgc3Ryb2tlV2lkdGg6ICdzdHJva2Utd2lkdGgnLFxuICAgIHRhYkluZGV4OiAndGFiaW5kZXgnLFxuICAgIHRleHRBbmNob3I6ICd0ZXh0LWFuY2hvcicsXG4gICAgdGV4dERlY29yYXRpb246ICd0ZXh0LWRlY29yYXRpb24nLFxuICAgIHRleHRSZW5kZXJpbmc6ICd0ZXh0LXJlbmRlcmluZycsXG4gICAgdHlwZU9mOiAndHlwZW9mJyxcbiAgICB1bmRlcmxpbmVQb3NpdGlvbjogJ3VuZGVybGluZS1wb3NpdGlvbicsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiAndW5kZXJsaW5lLXRoaWNrbmVzcycsXG4gICAgdW5pY29kZUJpZGk6ICd1bmljb2RlLWJpZGknLFxuICAgIHVuaWNvZGVSYW5nZTogJ3VuaWNvZGUtcmFuZ2UnLFxuICAgIHVuaXRzUGVyRW06ICd1bml0cy1wZXItZW0nLFxuICAgIHZBbHBoYWJldGljOiAndi1hbHBoYWJldGljJyxcbiAgICB2SGFuZ2luZzogJ3YtaGFuZ2luZycsXG4gICAgdklkZW9ncmFwaGljOiAndi1pZGVvZ3JhcGhpYycsXG4gICAgdk1hdGhlbWF0aWNhbDogJ3YtbWF0aGVtYXRpY2FsJyxcbiAgICB2ZWN0b3JFZmZlY3Q6ICd2ZWN0b3ItZWZmZWN0JyxcbiAgICB2ZXJ0QWR2WTogJ3ZlcnQtYWR2LXknLFxuICAgIHZlcnRPcmlnaW5YOiAndmVydC1vcmlnaW4teCcsXG4gICAgdmVydE9yaWdpblk6ICd2ZXJ0LW9yaWdpbi15JyxcbiAgICB3b3JkU3BhY2luZzogJ3dvcmQtc3BhY2luZycsXG4gICAgd3JpdGluZ01vZGU6ICd3cml0aW5nLW1vZGUnLFxuICAgIHhIZWlnaHQ6ICd4LWhlaWdodCcsXG4gICAgLy8gVGhlc2Ugd2VyZSBjYW1lbGNhc2VkIGluIFRpbnkuIE5vdyBsb3dlcmNhc2VkIGluIFNWRyAyXG4gICAgcGxheWJhY2tPcmRlcjogJ3BsYXliYWNrb3JkZXInLFxuICAgIHRpbWVsaW5lQmVnaW46ICd0aW1lbGluZWJlZ2luJ1xuICB9LFxuICB0cmFuc2Zvcm06IGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhYm91dDogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIGFjY2VudEhlaWdodDogbnVtYmVyLFxuICAgIGFjY3VtdWxhdGU6IG51bGwsXG4gICAgYWRkaXRpdmU6IG51bGwsXG4gICAgYWxpZ25tZW50QmFzZWxpbmU6IG51bGwsXG4gICAgYWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIGFtcGxpdHVkZTogbnVtYmVyLFxuICAgIGFyYWJpY0Zvcm06IG51bGwsXG4gICAgYXNjZW50OiBudW1iZXIsXG4gICAgYXR0cmlidXRlTmFtZTogbnVsbCxcbiAgICBhdHRyaWJ1dGVUeXBlOiBudWxsLFxuICAgIGF6aW11dGg6IG51bWJlcixcbiAgICBiYW5kd2lkdGg6IG51bGwsXG4gICAgYmFzZWxpbmVTaGlmdDogbnVsbCxcbiAgICBiYXNlRnJlcXVlbmN5OiBudWxsLFxuICAgIGJhc2VQcm9maWxlOiBudWxsLFxuICAgIGJib3g6IG51bGwsXG4gICAgYmVnaW46IG51bGwsXG4gICAgYmlhczogbnVtYmVyLFxuICAgIGJ5OiBudWxsLFxuICAgIGNhbGNNb2RlOiBudWxsLFxuICAgIGNhcEhlaWdodDogbnVtYmVyLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY2xpcDogbnVsbCxcbiAgICBjbGlwUGF0aDogbnVsbCxcbiAgICBjbGlwUGF0aFVuaXRzOiBudWxsLFxuICAgIGNsaXBSdWxlOiBudWxsLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbjogbnVsbCxcbiAgICBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiBudWxsLFxuICAgIGNvbG9yUHJvZmlsZTogbnVsbCxcbiAgICBjb2xvclJlbmRlcmluZzogbnVsbCxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGNvbnRlbnRTY3JpcHRUeXBlOiBudWxsLFxuICAgIGNvbnRlbnRTdHlsZVR5cGU6IG51bGwsXG4gICAgY3Jvc3NPcmlnaW46IG51bGwsXG4gICAgY3Vyc29yOiBudWxsLFxuICAgIGN4OiBudWxsLFxuICAgIGN5OiBudWxsLFxuICAgIGQ6IG51bGwsXG4gICAgZGF0YVR5cGU6IG51bGwsXG4gICAgZGVmYXVsdEFjdGlvbjogbnVsbCxcbiAgICBkZXNjZW50OiBudW1iZXIsXG4gICAgZGlmZnVzZUNvbnN0YW50OiBudW1iZXIsXG4gICAgZGlyZWN0aW9uOiBudWxsLFxuICAgIGRpc3BsYXk6IG51bGwsXG4gICAgZHVyOiBudWxsLFxuICAgIGRpdmlzb3I6IG51bWJlcixcbiAgICBkb21pbmFudEJhc2VsaW5lOiBudWxsLFxuICAgIGRvd25sb2FkOiBib29sZWFuLFxuICAgIGR4OiBudWxsLFxuICAgIGR5OiBudWxsLFxuICAgIGVkZ2VNb2RlOiBudWxsLFxuICAgIGVkaXRhYmxlOiBudWxsLFxuICAgIGVsZXZhdGlvbjogbnVtYmVyLFxuICAgIGVuYWJsZUJhY2tncm91bmQ6IG51bGwsXG4gICAgZW5kOiBudWxsLFxuICAgIGV2ZW50OiBudWxsLFxuICAgIGV4cG9uZW50OiBudW1iZXIsXG4gICAgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDogbnVsbCxcbiAgICBmaWxsOiBudWxsLFxuICAgIGZpbGxPcGFjaXR5OiBudW1iZXIsXG4gICAgZmlsbFJ1bGU6IG51bGwsXG4gICAgZmlsdGVyOiBudWxsLFxuICAgIGZpbHRlclJlczogbnVsbCxcbiAgICBmaWx0ZXJVbml0czogbnVsbCxcbiAgICBmbG9vZENvbG9yOiBudWxsLFxuICAgIGZsb29kT3BhY2l0eTogbnVsbCxcbiAgICBmb2N1c2FibGU6IG51bGwsXG4gICAgZm9jdXNIaWdobGlnaHQ6IG51bGwsXG4gICAgZm9udEZhbWlseTogbnVsbCxcbiAgICBmb250U2l6ZTogbnVsbCxcbiAgICBmb250U2l6ZUFkanVzdDogbnVsbCxcbiAgICBmb250U3RyZXRjaDogbnVsbCxcbiAgICBmb250U3R5bGU6IG51bGwsXG4gICAgZm9udFZhcmlhbnQ6IG51bGwsXG4gICAgZm9udFdlaWdodDogbnVsbCxcbiAgICBmb3JtYXQ6IG51bGwsXG4gICAgZnI6IG51bGwsXG4gICAgZnJvbTogbnVsbCxcbiAgICBmeDogbnVsbCxcbiAgICBmeTogbnVsbCxcbiAgICBnMTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZzI6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGdseXBoTmFtZTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6IG51bGwsXG4gICAgZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiBudWxsLFxuICAgIGdseXBoUmVmOiBudWxsLFxuICAgIGdyYWRpZW50VHJhbnNmb3JtOiBudWxsLFxuICAgIGdyYWRpZW50VW5pdHM6IG51bGwsXG4gICAgaGFuZGxlcjogbnVsbCxcbiAgICBoYW5naW5nOiBudW1iZXIsXG4gICAgaGF0Y2hDb250ZW50VW5pdHM6IG51bGwsXG4gICAgaGF0Y2hVbml0czogbnVsbCxcbiAgICBoZWlnaHQ6IG51bGwsXG4gICAgaHJlZjogbnVsbCxcbiAgICBocmVmTGFuZzogbnVsbCxcbiAgICBob3JpekFkdlg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblk6IG51bWJlcixcbiAgICBpZDogbnVsbCxcbiAgICBpZGVvZ3JhcGhpYzogbnVtYmVyLFxuICAgIGltYWdlUmVuZGVyaW5nOiBudWxsLFxuICAgIGluaXRpYWxWaXNpYmlsaXR5OiBudWxsLFxuICAgIGluOiBudWxsLFxuICAgIGluMjogbnVsbCxcbiAgICBpbnRlcmNlcHQ6IG51bWJlcixcbiAgICBrOiBudW1iZXIsXG4gICAgazE6IG51bWJlcixcbiAgICBrMjogbnVtYmVyLFxuICAgIGszOiBudW1iZXIsXG4gICAgazQ6IG51bWJlcixcbiAgICBrZXJuZWxNYXRyaXg6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBrZXJuZWxVbml0TGVuZ3RoOiBudWxsLFxuICAgIGtleVBvaW50czogbnVsbCwgLy8gU0VNSV9DT0xPTl9TRVBBUkFURURcbiAgICBrZXlTcGxpbmVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtleVRpbWVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtlcm5pbmc6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsZW5ndGhBZGp1c3Q6IG51bGwsXG4gICAgbGV0dGVyU3BhY2luZzogbnVsbCxcbiAgICBsaWdodGluZ0NvbG9yOiBudWxsLFxuICAgIGxpbWl0aW5nQ29uZUFuZ2xlOiBudW1iZXIsXG4gICAgbG9jYWw6IG51bGwsXG4gICAgbWFya2VyRW5kOiBudWxsLFxuICAgIG1hcmtlck1pZDogbnVsbCxcbiAgICBtYXJrZXJTdGFydDogbnVsbCxcbiAgICBtYXJrZXJIZWlnaHQ6IG51bGwsXG4gICAgbWFya2VyVW5pdHM6IG51bGwsXG4gICAgbWFya2VyV2lkdGg6IG51bGwsXG4gICAgbWFzazogbnVsbCxcbiAgICBtYXNrQ29udGVudFVuaXRzOiBudWxsLFxuICAgIG1hc2tVbml0czogbnVsbCxcbiAgICBtYXRoZW1hdGljYWw6IG51bGwsXG4gICAgbWF4OiBudWxsLFxuICAgIG1lZGlhOiBudWxsLFxuICAgIG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6IG51bGwsXG4gICAgbWVkaWFDb250ZW50RW5jb2RpbmdzOiBudWxsLFxuICAgIG1lZGlhU2l6ZTogbnVtYmVyLFxuICAgIG1lZGlhVGltZTogbnVsbCxcbiAgICBtZXRob2Q6IG51bGwsXG4gICAgbWluOiBudWxsLFxuICAgIG1vZGU6IG51bGwsXG4gICAgbmFtZTogbnVsbCxcbiAgICBuYXZEb3duOiBudWxsLFxuICAgIG5hdkRvd25MZWZ0OiBudWxsLFxuICAgIG5hdkRvd25SaWdodDogbnVsbCxcbiAgICBuYXZMZWZ0OiBudWxsLFxuICAgIG5hdk5leHQ6IG51bGwsXG4gICAgbmF2UHJldjogbnVsbCxcbiAgICBuYXZSaWdodDogbnVsbCxcbiAgICBuYXZVcDogbnVsbCxcbiAgICBuYXZVcExlZnQ6IG51bGwsXG4gICAgbmF2VXBSaWdodDogbnVsbCxcbiAgICBudW1PY3RhdmVzOiBudWxsLFxuICAgIG9ic2VydmVyOiBudWxsLFxuICAgIG9mZnNldDogbnVsbCxcbiAgICBvbkFib3J0OiBudWxsLFxuICAgIG9uQWN0aXZhdGU6IG51bGwsXG4gICAgb25BZnRlclByaW50OiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWdpbjogbnVsbCxcbiAgICBvbkNhbmNlbDogbnVsbCxcbiAgICBvbkNhblBsYXk6IG51bGwsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogbnVsbCxcbiAgICBvbkNoYW5nZTogbnVsbCxcbiAgICBvbkNsaWNrOiBudWxsLFxuICAgIG9uQ2xvc2U6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9jdXNJbjogbnVsbCxcbiAgICBvbkZvY3VzT3V0OiBudWxsLFxuICAgIG9uSGFzaENoYW5nZTogbnVsbCxcbiAgICBvbklucHV0OiBudWxsLFxuICAgIG9uSW52YWxpZDogbnVsbCxcbiAgICBvbktleURvd246IG51bGwsXG4gICAgb25LZXlQcmVzczogbnVsbCxcbiAgICBvbktleVVwOiBudWxsLFxuICAgIG9uTG9hZDogbnVsbCxcbiAgICBvbkxvYWRlZERhdGE6IG51bGwsXG4gICAgb25Mb2FkZWRNZXRhZGF0YTogbnVsbCxcbiAgICBvbkxvYWRTdGFydDogbnVsbCxcbiAgICBvbk1lc3NhZ2U6IG51bGwsXG4gICAgb25Nb3VzZURvd246IG51bGwsXG4gICAgb25Nb3VzZUVudGVyOiBudWxsLFxuICAgIG9uTW91c2VMZWF2ZTogbnVsbCxcbiAgICBvbk1vdXNlTW92ZTogbnVsbCxcbiAgICBvbk1vdXNlT3V0OiBudWxsLFxuICAgIG9uTW91c2VPdmVyOiBudWxsLFxuICAgIG9uTW91c2VVcDogbnVsbCxcbiAgICBvbk1vdXNlV2hlZWw6IG51bGwsXG4gICAgb25PZmZsaW5lOiBudWxsLFxuICAgIG9uT25saW5lOiBudWxsLFxuICAgIG9uUGFnZUhpZGU6IG51bGwsXG4gICAgb25QYWdlU2hvdzogbnVsbCxcbiAgICBvblBhc3RlOiBudWxsLFxuICAgIG9uUGF1c2U6IG51bGwsXG4gICAgb25QbGF5OiBudWxsLFxuICAgIG9uUGxheWluZzogbnVsbCxcbiAgICBvblBvcFN0YXRlOiBudWxsLFxuICAgIG9uUHJvZ3Jlc3M6IG51bGwsXG4gICAgb25SYXRlQ2hhbmdlOiBudWxsLFxuICAgIG9uUmVwZWF0OiBudWxsLFxuICAgIG9uUmVzZXQ6IG51bGwsXG4gICAgb25SZXNpemU6IG51bGwsXG4gICAgb25TY3JvbGw6IG51bGwsXG4gICAgb25TZWVrZWQ6IG51bGwsXG4gICAgb25TZWVraW5nOiBudWxsLFxuICAgIG9uU2VsZWN0OiBudWxsLFxuICAgIG9uU2hvdzogbnVsbCxcbiAgICBvblN0YWxsZWQ6IG51bGwsXG4gICAgb25TdG9yYWdlOiBudWxsLFxuICAgIG9uU3VibWl0OiBudWxsLFxuICAgIG9uU3VzcGVuZDogbnVsbCxcbiAgICBvblRpbWVVcGRhdGU6IG51bGwsXG4gICAgb25Ub2dnbGU6IG51bGwsXG4gICAgb25VbmxvYWQ6IG51bGwsXG4gICAgb25Wb2x1bWVDaGFuZ2U6IG51bGwsXG4gICAgb25XYWl0aW5nOiBudWxsLFxuICAgIG9uWm9vbTogbnVsbCxcbiAgICBvcGFjaXR5OiBudWxsLFxuICAgIG9wZXJhdG9yOiBudWxsLFxuICAgIG9yZGVyOiBudWxsLFxuICAgIG9yaWVudDogbnVsbCxcbiAgICBvcmllbnRhdGlvbjogbnVsbCxcbiAgICBvcmlnaW46IG51bGwsXG4gICAgb3ZlcmZsb3c6IG51bGwsXG4gICAgb3ZlcmxheTogbnVsbCxcbiAgICBvdmVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgb3ZlcmxpbmVUaGlja25lc3M6IG51bWJlcixcbiAgICBwYWludE9yZGVyOiBudWxsLFxuICAgIHBhbm9zZTE6IG51bGwsXG4gICAgcGF0aDogbnVsbCxcbiAgICBwYXRoTGVuZ3RoOiBudW1iZXIsXG4gICAgcGF0dGVybkNvbnRlbnRVbml0czogbnVsbCxcbiAgICBwYXR0ZXJuVHJhbnNmb3JtOiBudWxsLFxuICAgIHBhdHRlcm5Vbml0czogbnVsbCxcbiAgICBwaGFzZTogbnVsbCxcbiAgICBwaW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBwaXRjaDogbnVsbCxcbiAgICBwbGF5YmFja09yZGVyOiBudWxsLFxuICAgIHBvaW50ZXJFdmVudHM6IG51bGwsXG4gICAgcG9pbnRzOiBudWxsLFxuICAgIHBvaW50c0F0WDogbnVtYmVyLFxuICAgIHBvaW50c0F0WTogbnVtYmVyLFxuICAgIHBvaW50c0F0WjogbnVtYmVyLFxuICAgIHByZXNlcnZlQWxwaGE6IG51bGwsXG4gICAgcHJlc2VydmVBc3BlY3RSYXRpbzogbnVsbCxcbiAgICBwcmltaXRpdmVVbml0czogbnVsbCxcbiAgICBwcm9wYWdhdGU6IG51bGwsXG4gICAgcHJvcGVydHk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByOiBudWxsLFxuICAgIHJhZGl1czogbnVsbCxcbiAgICByZWZlcnJlclBvbGljeTogbnVsbCxcbiAgICByZWZYOiBudWxsLFxuICAgIHJlZlk6IG51bGwsXG4gICAgcmVsOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmV2OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVuZGVyaW5nSW50ZW50OiBudWxsLFxuICAgIHJlcGVhdENvdW50OiBudWxsLFxuICAgIHJlcGVhdER1cjogbnVsbCxcbiAgICByZXF1aXJlZEV4dGVuc2lvbnM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZEZlYXR1cmVzOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWRGb250czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkRm9ybWF0czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlc291cmNlOiBudWxsLFxuICAgIHJlc3RhcnQ6IG51bGwsXG4gICAgcmVzdWx0OiBudWxsLFxuICAgIHJvdGF0ZTogbnVsbCxcbiAgICByeDogbnVsbCxcbiAgICByeTogbnVsbCxcbiAgICBzY2FsZTogbnVsbCxcbiAgICBzZWVkOiBudWxsLFxuICAgIHNoYXBlUmVuZGVyaW5nOiBudWxsLFxuICAgIHNpZGU6IG51bGwsXG4gICAgc2xvcGU6IG51bGwsXG4gICAgc25hcHNob3RUaW1lOiBudWxsLFxuICAgIHNwZWN1bGFyQ29uc3RhbnQ6IG51bWJlcixcbiAgICBzcGVjdWxhckV4cG9uZW50OiBudW1iZXIsXG4gICAgc3ByZWFkTWV0aG9kOiBudWxsLFxuICAgIHNwYWNpbmc6IG51bGwsXG4gICAgc3RhcnRPZmZzZXQ6IG51bGwsXG4gICAgc3RkRGV2aWF0aW9uOiBudWxsLFxuICAgIHN0ZW1oOiBudWxsLFxuICAgIHN0ZW12OiBudWxsLFxuICAgIHN0aXRjaFRpbGVzOiBudWxsLFxuICAgIHN0b3BDb2xvcjogbnVsbCxcbiAgICBzdG9wT3BhY2l0eTogbnVsbCxcbiAgICBzdHJpa2V0aHJvdWdoUG9zaXRpb246IG51bWJlcixcbiAgICBzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgc3RyaW5nOiBudWxsLFxuICAgIHN0cm9rZTogbnVsbCxcbiAgICBzdHJva2VEYXNoQXJyYXk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBzdHJva2VEYXNoT2Zmc2V0OiBudWxsLFxuICAgIHN0cm9rZUxpbmVDYXA6IG51bGwsXG4gICAgc3Ryb2tlTGluZUpvaW46IG51bGwsXG4gICAgc3Ryb2tlTWl0ZXJMaW1pdDogbnVtYmVyLFxuICAgIHN0cm9rZU9wYWNpdHk6IG51bWJlcixcbiAgICBzdHJva2VXaWR0aDogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBzdXJmYWNlU2NhbGU6IG51bWJlcixcbiAgICBzeW5jQmVoYXZpb3I6IG51bGwsXG4gICAgc3luY0JlaGF2aW9yRGVmYXVsdDogbnVsbCxcbiAgICBzeW5jTWFzdGVyOiBudWxsLFxuICAgIHN5bmNUb2xlcmFuY2U6IG51bGwsXG4gICAgc3luY1RvbGVyYW5jZURlZmF1bHQ6IG51bGwsXG4gICAgc3lzdGVtTGFuZ3VhZ2U6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0YWJJbmRleDogbnVtYmVyLFxuICAgIHRhYmxlVmFsdWVzOiBudWxsLFxuICAgIHRhcmdldDogbnVsbCxcbiAgICB0YXJnZXRYOiBudW1iZXIsXG4gICAgdGFyZ2V0WTogbnVtYmVyLFxuICAgIHRleHRBbmNob3I6IG51bGwsXG4gICAgdGV4dERlY29yYXRpb246IG51bGwsXG4gICAgdGV4dFJlbmRlcmluZzogbnVsbCxcbiAgICB0ZXh0TGVuZ3RoOiBudWxsLFxuICAgIHRpbWVsaW5lQmVnaW46IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNmb3JtQmVoYXZpb3I6IG51bGwsXG4gICAgdHlwZTogbnVsbCxcbiAgICB0eXBlT2Y6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0bzogbnVsbCxcbiAgICB0cmFuc2Zvcm06IG51bGwsXG4gICAgdTE6IG51bGwsXG4gICAgdTI6IG51bGwsXG4gICAgdW5kZXJsaW5lUG9zaXRpb246IG51bWJlcixcbiAgICB1bmRlcmxpbmVUaGlja25lc3M6IG51bWJlcixcbiAgICB1bmljb2RlOiBudWxsLFxuICAgIHVuaWNvZGVCaWRpOiBudWxsLFxuICAgIHVuaWNvZGVSYW5nZTogbnVsbCxcbiAgICB1bml0c1BlckVtOiBudW1iZXIsXG4gICAgdmFsdWVzOiBudWxsLFxuICAgIHZBbHBoYWJldGljOiBudW1iZXIsXG4gICAgdk1hdGhlbWF0aWNhbDogbnVtYmVyLFxuICAgIHZlY3RvckVmZmVjdDogbnVsbCxcbiAgICB2SGFuZ2luZzogbnVtYmVyLFxuICAgIHZJZGVvZ3JhcGhpYzogbnVtYmVyLFxuICAgIHZlcnNpb246IG51bGwsXG4gICAgdmVydEFkdlk6IG51bWJlcixcbiAgICB2ZXJ0T3JpZ2luWDogbnVtYmVyLFxuICAgIHZlcnRPcmlnaW5ZOiBudW1iZXIsXG4gICAgdmlld0JveDogbnVsbCxcbiAgICB2aWV3VGFyZ2V0OiBudWxsLFxuICAgIHZpc2liaWxpdHk6IG51bGwsXG4gICAgd2lkdGg6IG51bGwsXG4gICAgd2lkdGhzOiBudWxsLFxuICAgIHdvcmRTcGFjaW5nOiBudWxsLFxuICAgIHdyaXRpbmdNb2RlOiBudWxsLFxuICAgIHg6IG51bGwsXG4gICAgeDE6IG51bGwsXG4gICAgeDI6IG51bGwsXG4gICAgeENoYW5uZWxTZWxlY3RvcjogbnVsbCxcbiAgICB4SGVpZ2h0OiBudW1iZXIsXG4gICAgeTogbnVsbCxcbiAgICB5MTogbnVsbCxcbiAgICB5MjogbnVsbCxcbiAgICB5Q2hhbm5lbFNlbGVjdG9yOiBudWxsLFxuICAgIHo6IG51bGwsXG4gICAgem9vbUFuZFBhbjogbnVsbFxuICB9XG59KVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi91dGlsL3NjaGVtYS5qcycpLlNjaGVtYX0gU2NoZW1hXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemV9IGZyb20gJy4vbm9ybWFsaXplLmpzJ1xuaW1wb3J0IHtEZWZpbmVkSW5mb30gZnJvbSAnLi91dGlsL2RlZmluZWQtaW5mby5qcydcbmltcG9ydCB7SW5mb30gZnJvbSAnLi91dGlsL2luZm8uanMnXG5cbmNvbnN0IHZhbGlkID0gL15kYXRhWy1cXHcuOl0rJC9pXG5jb25zdCBkYXNoID0gLy1bYS16XS9nXG5jb25zdCBjYXAgPSAvW0EtWl0vZ1xuXG4vKipcbiAqIEBwYXJhbSB7U2NoZW1hfSBzY2hlbWFcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge0luZm99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kKHNjaGVtYSwgdmFsdWUpIHtcbiAgY29uc3Qgbm9ybWFsID0gbm9ybWFsaXplKHZhbHVlKVxuICBsZXQgcHJvcCA9IHZhbHVlXG4gIGxldCBUeXBlID0gSW5mb1xuXG4gIGlmIChub3JtYWwgaW4gc2NoZW1hLm5vcm1hbCkge1xuICAgIHJldHVybiBzY2hlbWEucHJvcGVydHlbc2NoZW1hLm5vcm1hbFtub3JtYWxdXVxuICB9XG5cbiAgaWYgKG5vcm1hbC5sZW5ndGggPiA0ICYmIG5vcm1hbC5zbGljZSgwLCA0KSA9PT0gJ2RhdGEnICYmIHZhbGlkLnRlc3QodmFsdWUpKSB7XG4gICAgLy8gQXR0cmlidXRlIG9yIHByb3BlcnR5LlxuICAgIGlmICh2YWx1ZS5jaGFyQXQoNCkgPT09ICctJykge1xuICAgICAgLy8gVHVybiBpdCBpbnRvIGEgcHJvcGVydHkuXG4gICAgICBjb25zdCByZXN0ID0gdmFsdWUuc2xpY2UoNSkucmVwbGFjZShkYXNoLCBjYW1lbGNhc2UpXG4gICAgICBwcm9wID0gJ2RhdGEnICsgcmVzdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHJlc3Quc2xpY2UoMSlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVHVybiBpdCBpbnRvIGFuIGF0dHJpYnV0ZS5cbiAgICAgIGNvbnN0IHJlc3QgPSB2YWx1ZS5zbGljZSg0KVxuXG4gICAgICBpZiAoIWRhc2gudGVzdChyZXN0KSkge1xuICAgICAgICBsZXQgZGFzaGVzID0gcmVzdC5yZXBsYWNlKGNhcCwga2ViYWIpXG5cbiAgICAgICAgaWYgKGRhc2hlcy5jaGFyQXQoMCkgIT09ICctJykge1xuICAgICAgICAgIGRhc2hlcyA9ICctJyArIGRhc2hlc1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWUgPSAnZGF0YScgKyBkYXNoZXNcbiAgICAgIH1cbiAgICB9XG5cbiAgICBUeXBlID0gRGVmaW5lZEluZm9cbiAgfVxuXG4gIHJldHVybiBuZXcgVHlwZShwcm9wLCB2YWx1ZSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGtlYmFiKCQwKSB7XG4gIHJldHVybiAnLScgKyAkMC50b0xvd2VyQ2FzZSgpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBjYW1lbGNhc2UoJDApIHtcbiAgcmV0dXJuICQwLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi91dGlsL2luZm8uanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi91dGlsL3NjaGVtYS5qcycpLlNjaGVtYX0gU2NoZW1hXG4gKi9cblxuaW1wb3J0IHttZXJnZX0gZnJvbSAnLi9saWIvdXRpbC9tZXJnZS5qcydcbmltcG9ydCB7eGxpbmt9IGZyb20gJy4vbGliL3hsaW5rLmpzJ1xuaW1wb3J0IHt4bWx9IGZyb20gJy4vbGliL3htbC5qcydcbmltcG9ydCB7eG1sbnN9IGZyb20gJy4vbGliL3htbG5zLmpzJ1xuaW1wb3J0IHthcmlhfSBmcm9tICcuL2xpYi9hcmlhLmpzJ1xuaW1wb3J0IHtodG1sIGFzIGh0bWxCYXNlfSBmcm9tICcuL2xpYi9odG1sLmpzJ1xuaW1wb3J0IHtzdmcgYXMgc3ZnQmFzZX0gZnJvbSAnLi9saWIvc3ZnLmpzJ1xuXG5leHBvcnQge2ZpbmR9IGZyb20gJy4vbGliL2ZpbmQuanMnXG5leHBvcnQge2hhc3RUb1JlYWN0fSBmcm9tICcuL2xpYi9oYXN0LXRvLXJlYWN0LmpzJ1xuZXhwb3J0IHtub3JtYWxpemV9IGZyb20gJy4vbGliL25vcm1hbGl6ZS5qcydcbmV4cG9ydCBjb25zdCBodG1sID0gbWVyZ2UoW3htbCwgeGxpbmssIHhtbG5zLCBhcmlhLCBodG1sQmFzZV0sICdodG1sJylcbmV4cG9ydCBjb25zdCBzdmcgPSBtZXJnZShbeG1sLCB4bGluaywgeG1sbnMsIGFyaWEsIHN2Z0Jhc2VdLCAnc3ZnJylcbiIsICIvKipcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbiBmb3IgYHN0cmluZ2lmeWAuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtwYWRMZWZ0PXRydWVdXG4gKiAgIFdoZXRoZXIgdG8gcGFkIGEgc3BhY2UgYmVmb3JlIGEgdG9rZW4uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtwYWRSaWdodD1mYWxzZV1cbiAqICAgV2hldGhlciB0byBwYWQgYSBzcGFjZSBhZnRlciBhIHRva2VuLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09wdGlvbnN9IFN0cmluZ2lmeU9wdGlvbnNcbiAqICAgUGxlYXNlIHVzZSBgU3RyaW5naWZ5T3B0aW9uc2AgaW5zdGVhZC5cbiAqL1xuXG4vKipcbiAqIFBhcnNlIGNvbW1hLXNlcGFyYXRlZCB0b2tlbnMgdG8gYW4gYXJyYXkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIENvbW1hLXNlcGFyYXRlZCB0b2tlbnMuXG4gKiBAcmV0dXJucyB7QXJyYXk8c3RyaW5nPn1cbiAqICAgTGlzdCBvZiB0b2tlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZSh2YWx1ZSkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHRva2VucyA9IFtdXG4gIGNvbnN0IGlucHV0ID0gU3RyaW5nKHZhbHVlIHx8ICcnKVxuICBsZXQgaW5kZXggPSBpbnB1dC5pbmRleE9mKCcsJylcbiAgbGV0IHN0YXJ0ID0gMFxuICAvKiogQHR5cGUge2Jvb2xlYW59ICovXG4gIGxldCBlbmQgPSBmYWxzZVxuXG4gIHdoaWxlICghZW5kKSB7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgaW5kZXggPSBpbnB1dC5sZW5ndGhcbiAgICAgIGVuZCA9IHRydWVcbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbiA9IGlucHV0LnNsaWNlKHN0YXJ0LCBpbmRleCkudHJpbSgpXG5cbiAgICBpZiAodG9rZW4gfHwgIWVuZCkge1xuICAgICAgdG9rZW5zLnB1c2godG9rZW4pXG4gICAgfVxuXG4gICAgc3RhcnQgPSBpbmRleCArIDFcbiAgICBpbmRleCA9IGlucHV0LmluZGV4T2YoJywnLCBzdGFydClcbiAgfVxuXG4gIHJldHVybiB0b2tlbnNcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYW4gYXJyYXkgb2Ygc3RyaW5ncyBvciBudW1iZXJzIHRvIGNvbW1hLXNlcGFyYXRlZCB0b2tlbnMuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmd8bnVtYmVyPn0gdmFsdWVzXG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICogQHBhcmFtIHtPcHRpb25zfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiBmb3IgYHN0cmluZ2lmeWAgKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENvbW1hLXNlcGFyYXRlZCB0b2tlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkodmFsdWVzLCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fVxuXG4gIC8vIEVuc3VyZSB0aGUgbGFzdCBlbXB0eSBlbnRyeSBpcyBzZWVuLlxuICBjb25zdCBpbnB1dCA9IHZhbHVlc1t2YWx1ZXMubGVuZ3RoIC0gMV0gPT09ICcnID8gWy4uLnZhbHVlcywgJyddIDogdmFsdWVzXG5cbiAgcmV0dXJuIGlucHV0XG4gICAgLmpvaW4oXG4gICAgICAoc2V0dGluZ3MucGFkUmlnaHQgPyAnICcgOiAnJykgK1xuICAgICAgICAnLCcgK1xuICAgICAgICAoc2V0dGluZ3MucGFkTGVmdCA9PT0gZmFsc2UgPyAnJyA6ICcgJylcbiAgICApXG4gICAgLnRyaW0oKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gU2ltcGxlU2VsZWN0b3JcbiAqICAgU2VsZWN0b3IgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7c3RyaW5nfSBEZWZhdWx0VGFnTmFtZVxuICogICBEZWZhdWx0IHRhZyBuYW1lLlxuICogQHR5cGVkZWYgeyhcbiAqICAgU2ltcGxlU2VsZWN0b3IgZXh0ZW5kcyAnJ1xuICogICAgID8gRGVmYXVsdFRhZ05hbWVcbiAqICAgICA6IFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgYCR7aW5mZXIgVGFnTmFtZX0uJHtpbmZlciBSZXN0fWBcbiAqICAgICA/IEV4dHJhY3RUYWdOYW1lPFRhZ05hbWUsIERlZmF1bHRUYWdOYW1lPlxuICogICAgIDogU2ltcGxlU2VsZWN0b3IgZXh0ZW5kcyBgJHtpbmZlciBUYWdOYW1lfSMke2luZmVyIFJlc3R9YFxuICogICAgID8gRXh0cmFjdFRhZ05hbWU8VGFnTmFtZSwgRGVmYXVsdFRhZ05hbWU+XG4gKiAgICAgOiBTaW1wbGVTZWxlY3RvciBleHRlbmRzIHN0cmluZ1xuICogICAgID8gU2ltcGxlU2VsZWN0b3JcbiAqICAgICA6IERlZmF1bHRUYWdOYW1lXG4gKiApfSBFeHRyYWN0VGFnTmFtZVxuICogICBFeHRyYWN0IHRhZyBuYW1lIGZyb20gYSBzaW1wbGUgc2VsZWN0b3IuXG4gKi9cblxuY29uc3Qgc2VhcmNoID0gL1sjLl0vZ1xuXG4vKipcbiAqIENyZWF0ZSBhIGhhc3QgZWxlbWVudCBmcm9tIGEgc2ltcGxlIENTUyBzZWxlY3Rvci5cbiAqXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gU2VsZWN0b3JcbiAqICAgVHlwZSBvZiBzZWxlY3Rvci5cbiAqIEB0ZW1wbGF0ZSB7c3RyaW5nfSBbRGVmYXVsdFRhZ05hbWU9J2RpdiddXG4gKiAgIFR5cGUgb2YgZGVmYXVsdCB0YWcgbmFtZSAoZGVmYXVsdDogYCdkaXYnYCkuXG4gKiBAcGFyYW0ge1NlbGVjdG9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NlbGVjdG9yXVxuICogICBTaW1wbGUgQ1NTIHNlbGVjdG9yIChvcHRpb25hbCkuXG4gKlxuICogICBDYW4gY29udGFpbiBhIHRhZyBuYW1lIChgZm9vYCksIGNsYXNzZXMgKGAuYmFyYCksIGFuZCBhbiBJRCAoYCNiYXpgKS5cbiAqICAgTXVsdGlwbGUgY2xhc3NlcyBhcmUgYWxsb3dlZC5cbiAqICAgVXNlcyB0aGUgbGFzdCBJRCBpZiBtdWx0aXBsZSBJRHMgYXJlIGZvdW5kLlxuICogQHBhcmFtIHtEZWZhdWx0VGFnTmFtZSB8IG51bGwgfCB1bmRlZmluZWR9IFtkZWZhdWx0VGFnTmFtZT0nZGl2J11cbiAqICAgVGFnIG5hbWUgdG8gdXNlIGlmIGBzZWxlY3RvcmAgZG9lcyBub3Qgc3BlY2lmeSBvbmUgKGRlZmF1bHQ6IGAnZGl2J2ApLlxuICogQHJldHVybnMge0VsZW1lbnQgJiB7dGFnTmFtZTogRXh0cmFjdFRhZ05hbWU8U2VsZWN0b3IsIERlZmF1bHRUYWdOYW1lPn19XG4gKiAgIEJ1aWx0IGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNlbGVjdG9yKHNlbGVjdG9yLCBkZWZhdWx0VGFnTmFtZSkge1xuICBjb25zdCB2YWx1ZSA9IHNlbGVjdG9yIHx8ICcnXG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcHMgPSB7fVxuICBsZXQgc3RhcnQgPSAwXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcHJldmlvdXNcbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGxldCB0YWdOYW1lXG5cbiAgd2hpbGUgKHN0YXJ0IDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgc2VhcmNoLmxhc3RJbmRleCA9IHN0YXJ0XG4gICAgY29uc3QgbWF0Y2ggPSBzZWFyY2guZXhlYyh2YWx1ZSlcbiAgICBjb25zdCBzdWJ2YWx1ZSA9IHZhbHVlLnNsaWNlKHN0YXJ0LCBtYXRjaCA/IG1hdGNoLmluZGV4IDogdmFsdWUubGVuZ3RoKVxuXG4gICAgaWYgKHN1YnZhbHVlKSB7XG4gICAgICBpZiAoIXByZXZpb3VzKSB7XG4gICAgICAgIHRhZ05hbWUgPSBzdWJ2YWx1ZVxuICAgICAgfSBlbHNlIGlmIChwcmV2aW91cyA9PT0gJyMnKSB7XG4gICAgICAgIHByb3BzLmlkID0gc3VidmFsdWVcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy5jbGFzc05hbWUpKSB7XG4gICAgICAgIHByb3BzLmNsYXNzTmFtZS5wdXNoKHN1YnZhbHVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lID0gW3N1YnZhbHVlXVxuICAgICAgfVxuXG4gICAgICBzdGFydCArPSBzdWJ2YWx1ZS5sZW5ndGhcbiAgICB9XG5cbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIHByZXZpb3VzID0gbWF0Y2hbMF1cbiAgICAgIHN0YXJ0KytcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0YWcgbmFtZSBpcyBwYXJzZWQuXG4gICAgdGFnTmFtZTogdGFnTmFtZSB8fCBkZWZhdWx0VGFnTmFtZSB8fCAnZGl2JyxcbiAgICBwcm9wZXJ0aWVzOiBwcm9wcyxcbiAgICBjaGlsZHJlbjogW11cbiAgfVxufVxuIiwgIi8qKlxuICogUGFyc2Ugc3BhY2Utc2VwYXJhdGVkIHRva2VucyB0byBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBTcGFjZS1zZXBhcmF0ZWQgdG9rZW5zLlxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59XG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UodmFsdWUpIHtcbiAgY29uc3QgaW5wdXQgPSBTdHJpbmcodmFsdWUgfHwgJycpLnRyaW0oKVxuICByZXR1cm4gaW5wdXQgPyBpbnB1dC5zcGxpdCgvWyBcXHRcXG5cXHJcXGZdKy9nKSA6IFtdXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGFycmF5IG9mIHN0cmluZ3MgYXMgc3BhY2Ugc2VwYXJhdGVkLXRva2Vucy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZ3xudW1iZXI+fSB2YWx1ZXNcbiAqICAgTGlzdCBvZiB0b2tlbnMuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTcGFjZS1zZXBhcmF0ZWQgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlcykge1xuICByZXR1cm4gdmFsdWVzLmpvaW4oJyAnKS50cmltKClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3RDb250ZW50fSBSb290Q29udGVudFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0VsZW1lbnQgfCBSb290fSBSZXN1bHRcbiAqICAgUmVzdWx0IGZyb20gYSBgaGAgKG9yIGBzYCkgY2FsbC5cbiAqXG4gKiBAdHlwZWRlZiB7bnVtYmVyIHwgc3RyaW5nfSBTdHlsZVZhbHVlXG4gKiAgIFZhbHVlIGZvciBhIENTUyBzdHlsZSBmaWVsZC5cbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBTdHlsZVZhbHVlPn0gU3R5bGVcbiAqICAgU3VwcG9ydGVkIHZhbHVlIG9mIGEgYHN0eWxlYCBwcm9wLlxuICogQHR5cGVkZWYge2Jvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBQcmltaXRpdmVWYWx1ZVxuICogICBQcmltaXRpdmUgcHJvcGVydHkgdmFsdWUuXG4gKiBAdHlwZWRlZiB7QXJyYXk8bnVtYmVyIHwgc3RyaW5nPn0gQXJyYXlWYWx1ZVxuICogICBMaXN0IG9mIHByb3BlcnR5IHZhbHVlcyBmb3Igc3BhY2UtIG9yIGNvbW1hIHNlcGFyYXRlZCB2YWx1ZXMgKHN1Y2ggYXMgYGNsYXNzTmFtZWApLlxuICogQHR5cGVkZWYge0FycmF5VmFsdWUgfCBQcmltaXRpdmVWYWx1ZX0gUHJvcGVydHlWYWx1ZVxuICogICBQcmltaXRpdmUgdmFsdWUgb3IgbGlzdCB2YWx1ZS5cbiAqIEB0eXBlZGVmIHt7W3Byb3BlcnR5OiBzdHJpbmddOiBQcm9wZXJ0eVZhbHVlIHwgU3R5bGV9fSBQcm9wZXJ0aWVzXG4gKiAgIEFjY2VwdGFibGUgdmFsdWUgZm9yIGVsZW1lbnQgcHJvcGVydGllcy5cbiAqXG4gKiBAdHlwZWRlZiB7bnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gUHJpbWl0aXZlQ2hpbGRcbiAqICAgUHJpbWl0aXZlIGNoaWxkcmVuLCBlaXRoZXIgaWdub3JlZCAobnVsbGlzaCksIG9yIHR1cm5lZCBpbnRvIHRleHQgbm9kZXMuXG4gKiBAdHlwZWRlZiB7QXJyYXk8QXJyYXlDaGlsZE5lc3RlZCB8IE5vZGVzIHwgUHJpbWl0aXZlQ2hpbGQ+fSBBcnJheUNoaWxkXG4gKiAgIExpc3Qgb2YgY2hpbGRyZW4uXG4gKiBAdHlwZWRlZiB7QXJyYXk8Tm9kZXMgfCBQcmltaXRpdmVDaGlsZD59IEFycmF5Q2hpbGROZXN0ZWRcbiAqICAgTGlzdCBvZiBjaGlsZHJlbiAoZGVlcCkuXG4gKiBAdHlwZWRlZiB7QXJyYXlDaGlsZCB8IE5vZGVzIHwgUHJpbWl0aXZlQ2hpbGR9IENoaWxkXG4gKiAgIEFjY2VwdGFibGUgY2hpbGQgdmFsdWUuXG4gKi9cblxuaW1wb3J0IHtwYXJzZSBhcyBjb21tYXN9IGZyb20gJ2NvbW1hLXNlcGFyYXRlZC10b2tlbnMnXG5pbXBvcnQge3BhcnNlU2VsZWN0b3J9IGZyb20gJ2hhc3QtdXRpbC1wYXJzZS1zZWxlY3RvcidcbmltcG9ydCB7ZmluZCwgbm9ybWFsaXplfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7cGFyc2UgYXMgc3BhY2VzfSBmcm9tICdzcGFjZS1zZXBhcmF0ZWQtdG9rZW5zJ1xuXG5jb25zdCBidXR0b25UeXBlcyA9IG5ldyBTZXQoWydidXR0b24nLCAnbWVudScsICdyZXNldCcsICdzdWJtaXQnXSlcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBAcGFyYW0ge1NjaGVtYX0gc2NoZW1hXG4gKiAgIFNjaGVtYSB0byB1c2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGVmYXVsdFRhZ05hbWVcbiAqICAgRGVmYXVsdCB0YWcgbmFtZS5cbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH0gW2Nhc2VTZW5zaXRpdmVdXG4gKiAgIENhc2Utc2Vuc2l0aXZlIHRhZyBuYW1lcyAoZGVmYXVsdDogYHVuZGVmaW5lZGApLlxuICogQHJldHVybnNcbiAqICAgYGhgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSChzY2hlbWEsIGRlZmF1bHRUYWdOYW1lLCBjYXNlU2Vuc2l0aXZlKSB7XG4gIGNvbnN0IGFkanVzdCA9IGNhc2VTZW5zaXRpdmUgJiYgY3JlYXRlQWRqdXN0TWFwKGNhc2VTZW5zaXRpdmUpXG5cbiAgLyoqXG4gICAqIEh5cGVyc2NyaXB0IGNvbXBhdGlibGUgRFNMIGZvciBjcmVhdGluZyB2aXJ0dWFsIGhhc3QgdHJlZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge251bGwgfCB1bmRlZmluZWR9IFtzZWxlY3Rvcl1cbiAgICogQHBhcmFtIHsuLi5DaGlsZH0gY2hpbGRyZW5cbiAgICogQHJldHVybnMge1Jvb3R9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICogQHBhcmFtIHtQcm9wZXJ0aWVzfSBwcm9wZXJ0aWVzXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqIEByZXR1cm5zIHtFbGVtZW50fVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqIEByZXR1cm5zIHtFbGVtZW50fVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtzZWxlY3Rvcl1cbiAgICogICBTZWxlY3Rvci5cbiAgICogQHBhcmFtIHtDaGlsZCB8IFByb3BlcnRpZXMgfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJvcGVydGllc11cbiAgICogICBQcm9wZXJ0aWVzIChvciBmaXJzdCBjaGlsZCkgKGRlZmF1bHQ6IGB1bmRlZmluZWRgKS5cbiAgICogQHBhcmFtIHsuLi5DaGlsZH0gY2hpbGRyZW5cbiAgICogICBDaGlsZHJlbi5cbiAgICogQHJldHVybnMge1Jlc3VsdH1cbiAgICogICBSZXN1bHQuXG4gICAqL1xuICBmdW5jdGlvbiBoKHNlbGVjdG9yLCBwcm9wZXJ0aWVzLCAuLi5jaGlsZHJlbikge1xuICAgIGxldCBpbmRleCA9IC0xXG4gICAgLyoqIEB0eXBlIHtSZXN1bHR9ICovXG4gICAgbGV0IG5vZGVcblxuICAgIGlmIChzZWxlY3RvciA9PT0gdW5kZWZpbmVkIHx8IHNlbGVjdG9yID09PSBudWxsKSB7XG4gICAgICBub2RlID0ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IFtdfVxuICAgICAgLy8gUHJvcGVydGllcyBhcmUgbm90IHN1cHBvcnRlZCBmb3Igcm9vdHMuXG4gICAgICBjb25zdCBjaGlsZCA9IC8qKiBAdHlwZSB7Q2hpbGR9ICovIChwcm9wZXJ0aWVzKVxuICAgICAgY2hpbGRyZW4udW5zaGlmdChjaGlsZClcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZSA9IHBhcnNlU2VsZWN0b3Ioc2VsZWN0b3IsIGRlZmF1bHRUYWdOYW1lKVxuICAgICAgLy8gTm9ybWFsaXplIHRoZSBuYW1lLlxuICAgICAgbm9kZS50YWdOYW1lID0gbm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgIGlmIChhZGp1c3QgJiYgb3duLmNhbGwoYWRqdXN0LCBub2RlLnRhZ05hbWUpKSB7XG4gICAgICAgIG5vZGUudGFnTmFtZSA9IGFkanVzdFtub2RlLnRhZ05hbWVdXG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSBwcm9wcy5cbiAgICAgIGlmIChpc1Byb3BlcnRpZXMocHJvcGVydGllcywgbm9kZS50YWdOYW1lKSkge1xuICAgICAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICAgICAgbGV0IGtleVxuXG4gICAgICAgIGZvciAoa2V5IGluIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICBpZiAob3duLmNhbGwocHJvcGVydGllcywga2V5KSkge1xuICAgICAgICAgICAgYWRkUHJvcGVydHkoc2NoZW1hLCBub2RlLnByb3BlcnRpZXMsIGtleSwgcHJvcGVydGllc1trZXldKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGRyZW4udW5zaGlmdChwcm9wZXJ0aWVzKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSBjaGlsZHJlbi5cbiAgICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgYWRkQ2hpbGQobm9kZS5jaGlsZHJlbiwgY2hpbGRyZW5baW5kZXhdKVxuICAgIH1cblxuICAgIGlmIChub2RlLnR5cGUgPT09ICdlbGVtZW50JyAmJiBub2RlLnRhZ05hbWUgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICAgIG5vZGUuY29udGVudCA9IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiBub2RlLmNoaWxkcmVufVxuICAgICAgbm9kZS5jaGlsZHJlbiA9IFtdXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGVcbiAgfVxuXG4gIHJldHVybiBoXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgc29tZXRoaW5nIGlzIHByb3BlcnRpZXMgb3IgYSBjaGlsZC5cbiAqXG4gKiBAcGFyYW0ge0NoaWxkIHwgUHJvcGVydGllc30gdmFsdWVcbiAqICAgVmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBUYWcgbmFtZS5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBQcm9wZXJ0aWVzfVxuICogICBXaGV0aGVyIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0aWVzIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gaXNQcm9wZXJ0aWVzKHZhbHVlLCBuYW1lKSB7XG4gIGlmIChcbiAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8XG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAobmFtZSA9PT0gJ2lucHV0JyB8fCAhdmFsdWUudHlwZSB8fCB0eXBlb2YgdmFsdWUudHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKCdjaGlsZHJlbicgaW4gdmFsdWUgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZS5jaGlsZHJlbikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChuYW1lID09PSAnYnV0dG9uJykge1xuICAgIHJldHVybiBidXR0b25UeXBlcy5oYXModmFsdWUudHlwZS50b0xvd2VyQ2FzZSgpKVxuICB9XG5cbiAgcmV0dXJuICEoJ3ZhbHVlJyBpbiB2YWx1ZSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1NjaGVtYX0gc2NoZW1hXG4gKiAgIFNjaGVtYS5cbiAqIEBwYXJhbSB7UHJvcGVydGllc30gcHJvcGVydGllc1xuICogICBQcm9wZXJ0aWVzIG9iamVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqICAgUHJvcGVydHkgbmFtZS5cbiAqIEBwYXJhbSB7UHJvcGVydHlWYWx1ZSB8IFN0eWxlfSB2YWx1ZVxuICogICBQcm9wZXJ0eSB2YWx1ZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFkZFByb3BlcnR5KHNjaGVtYSwgcHJvcGVydGllcywga2V5LCB2YWx1ZSkge1xuICBjb25zdCBpbmZvID0gZmluZChzY2hlbWEsIGtleSlcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0eVZhbHVlfSAqL1xuICBsZXQgcmVzdWx0XG5cbiAgLy8gSWdub3JlIG51bGxpc2ggYW5kIE5hTiB2YWx1ZXMuXG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSByZXR1cm5cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIC8vIElnbm9yZSBOYU4uXG4gICAgaWYgKE51bWJlci5pc05hTih2YWx1ZSkpIHJldHVyblxuXG4gICAgcmVzdWx0ID0gdmFsdWVcbiAgfVxuICAvLyBCb29sZWFucy5cbiAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICByZXN1bHQgPSB2YWx1ZVxuICB9XG4gIC8vIEhhbmRsZSBsaXN0IHZhbHVlcy5cbiAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGlmIChpbmZvLnNwYWNlU2VwYXJhdGVkKSB7XG4gICAgICByZXN1bHQgPSBzcGFjZXModmFsdWUpXG4gICAgfSBlbHNlIGlmIChpbmZvLmNvbW1hU2VwYXJhdGVkKSB7XG4gICAgICByZXN1bHQgPSBjb21tYXModmFsdWUpXG4gICAgfSBlbHNlIGlmIChpbmZvLmNvbW1hT3JTcGFjZVNlcGFyYXRlZCkge1xuICAgICAgcmVzdWx0ID0gc3BhY2VzKGNvbW1hcyh2YWx1ZSkuam9pbignICcpKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBwYXJzZVByaW1pdGl2ZShpbmZvLCBpbmZvLnByb3BlcnR5LCB2YWx1ZSlcbiAgICB9XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXN1bHQgPSB2YWx1ZS5jb25jYXQoKVxuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IGluZm8ucHJvcGVydHkgPT09ICdzdHlsZScgPyBzdHlsZSh2YWx1ZSkgOiBTdHJpbmcodmFsdWUpXG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXIgfCBzdHJpbmc+fSAqL1xuICAgIGNvbnN0IGZpbmFsUmVzdWx0ID0gW11cblxuICAgIHdoaWxlICgrK2luZGV4IDwgcmVzdWx0Lmxlbmd0aCkge1xuICAgICAgLy8gQXNzdW1lIG5vIGJvb2xlYW5zIGluIGFycmF5LlxuICAgICAgY29uc3QgdmFsdWUgPSAvKiogQHR5cGUge251bWJlciB8IHN0cmluZ30gKi8gKFxuICAgICAgICBwYXJzZVByaW1pdGl2ZShpbmZvLCBpbmZvLnByb3BlcnR5LCByZXN1bHRbaW5kZXhdKVxuICAgICAgKVxuICAgICAgZmluYWxSZXN1bHRbaW5kZXhdID0gdmFsdWVcbiAgICB9XG5cbiAgICByZXN1bHQgPSBmaW5hbFJlc3VsdFxuICB9XG5cbiAgLy8gQ2xhc3MgbmFtZXMgKHdoaWNoIGNhbiBiZSBhZGRlZCBib3RoIG9uIHRoZSBgc2VsZWN0b3JgIGFuZCBoZXJlKS5cbiAgaWYgKGluZm8ucHJvcGVydHkgPT09ICdjbGFzc05hbWUnICYmIEFycmF5LmlzQXJyYXkocHJvcGVydGllcy5jbGFzc05hbWUpKSB7XG4gICAgLy8gQXNzdW1lIG5vIGJvb2xlYW5zIGluIGBjbGFzc05hbWVgLlxuICAgIGNvbnN0IHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXIgfCBzdHJpbmd9ICovIChyZXN1bHQpXG4gICAgcmVzdWx0ID0gcHJvcGVydGllcy5jbGFzc05hbWUuY29uY2F0KHZhbHVlKVxuICB9XG5cbiAgcHJvcGVydGllc1tpbmZvLnByb3BlcnR5XSA9IHJlc3VsdFxufVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8Um9vdENvbnRlbnQ+fSBub2Rlc1xuICogICBDaGlsZHJlbi5cbiAqIEBwYXJhbSB7Q2hpbGR9IHZhbHVlXG4gKiAgIENoaWxkLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYWRkQ2hpbGQobm9kZXMsIHZhbHVlKSB7XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAvLyBFbXB0eS5cbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICBub2Rlcy5wdXNoKHt0eXBlOiAndGV4dCcsIHZhbHVlOiBTdHJpbmcodmFsdWUpfSlcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHdoaWxlICgrK2luZGV4IDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICBhZGRDaGlsZChub2RlcywgdmFsdWVbaW5kZXhdKVxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICd0eXBlJyBpbiB2YWx1ZSkge1xuICAgIGlmICh2YWx1ZS50eXBlID09PSAncm9vdCcpIHtcbiAgICAgIGFkZENoaWxkKG5vZGVzLCB2YWx1ZS5jaGlsZHJlbilcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZXMucHVzaCh2YWx1ZSlcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBub2RlLCBub2Rlcywgb3Igc3RyaW5nLCBnb3QgYCcgKyB2YWx1ZSArICdgJylcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIGEgc2luZ2xlIHByaW1pdGl2ZXMuXG4gKlxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiAgIFByb3BlcnR5IGluZm9ybWF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgUHJvcGVydHkgbmFtZS5cbiAqIEBwYXJhbSB7UHJpbWl0aXZlVmFsdWV9IHZhbHVlXG4gKiAgIFByb3BlcnR5IHZhbHVlLlxuICogQHJldHVybnMge1ByaW1pdGl2ZVZhbHVlfVxuICogICBQcm9wZXJ0eSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VQcmltaXRpdmUoaW5mbywgbmFtZSwgdmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoaW5mby5udW1iZXIgJiYgdmFsdWUgJiYgIU51bWJlci5pc05hTihOdW1iZXIodmFsdWUpKSkge1xuICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSlcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAoaW5mby5ib29sZWFuIHx8IGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4pICYmXG4gICAgICAodmFsdWUgPT09ICcnIHx8IG5vcm1hbGl6ZSh2YWx1ZSkgPT09IG5vcm1hbGl6ZShuYW1lKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGEgYHN0eWxlYCBvYmplY3QgYXMgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtTdHlsZX0gdmFsdWVcbiAqICAgU3R5bGUgb2JqZWN0LlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgQ1NTIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gc3R5bGUodmFsdWUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHQgPSBbXVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGtleVxuXG4gIGZvciAoa2V5IGluIHZhbHVlKSB7XG4gICAgaWYgKG93bi5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICByZXN1bHQucHVzaChba2V5LCB2YWx1ZVtrZXldXS5qb2luKCc6ICcpKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQuam9pbignOyAnKVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIG1hcCB0byBhZGp1c3QgY2FzaW5nLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gdmFsdWVzXG4gKiAgIExpc3Qgb2YgcHJvcGVybHkgY2FzZWQga2V5cy5cbiAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICogICBNYXAgb2YgbG93ZXJjYXNlIGtleXMgdG8gdXBwZXJjYXNlIGtleXMuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUFkanVzdE1hcCh2YWx1ZXMpIHtcbiAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHQgPSB7fVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgIHJlc3VsdFt2YWx1ZXNbaW5kZXhdLnRvTG93ZXJDYXNlKCldID0gdmFsdWVzW2luZGV4XVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIiwgImV4cG9ydCBjb25zdCBzdmdDYXNlU2Vuc2l0aXZlVGFnTmFtZXMgPSBbXG4gICdhbHRHbHlwaCcsXG4gICdhbHRHbHlwaERlZicsXG4gICdhbHRHbHlwaEl0ZW0nLFxuICAnYW5pbWF0ZUNvbG9yJyxcbiAgJ2FuaW1hdGVNb3Rpb24nLFxuICAnYW5pbWF0ZVRyYW5zZm9ybScsXG4gICdjbGlwUGF0aCcsXG4gICdmZUJsZW5kJyxcbiAgJ2ZlQ29sb3JNYXRyaXgnLFxuICAnZmVDb21wb25lbnRUcmFuc2ZlcicsXG4gICdmZUNvbXBvc2l0ZScsXG4gICdmZUNvbnZvbHZlTWF0cml4JyxcbiAgJ2ZlRGlmZnVzZUxpZ2h0aW5nJyxcbiAgJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgJ2ZlRGlzdGFudExpZ2h0JyxcbiAgJ2ZlRHJvcFNoYWRvdycsXG4gICdmZUZsb29kJyxcbiAgJ2ZlRnVuY0EnLFxuICAnZmVGdW5jQicsXG4gICdmZUZ1bmNHJyxcbiAgJ2ZlRnVuY1InLFxuICAnZmVHYXVzc2lhbkJsdXInLFxuICAnZmVJbWFnZScsXG4gICdmZU1lcmdlJyxcbiAgJ2ZlTWVyZ2VOb2RlJyxcbiAgJ2ZlTW9ycGhvbG9neScsXG4gICdmZU9mZnNldCcsXG4gICdmZVBvaW50TGlnaHQnLFxuICAnZmVTcGVjdWxhckxpZ2h0aW5nJyxcbiAgJ2ZlU3BvdExpZ2h0JyxcbiAgJ2ZlVGlsZScsXG4gICdmZVR1cmJ1bGVuY2UnLFxuICAnZm9yZWlnbk9iamVjdCcsXG4gICdnbHlwaFJlZicsXG4gICdsaW5lYXJHcmFkaWVudCcsXG4gICdyYWRpYWxHcmFkaWVudCcsXG4gICdzb2xpZENvbG9yJyxcbiAgJ3RleHRBcmVhJyxcbiAgJ3RleHRQYXRoJ1xuXVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jcmVhdGUtaC5qcycpLkNoaWxkfSBDaGlsZFxuICogICBBY2NlcHRhYmxlIGNoaWxkIHZhbHVlLlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jcmVhdGUtaC5qcycpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqICAgQWNjZXB0YWJsZSB2YWx1ZSBmb3IgZWxlbWVudCBwcm9wZXJ0aWVzLlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jcmVhdGUtaC5qcycpLlJlc3VsdH0gUmVzdWx0XG4gKiAgIFJlc3VsdCBmcm9tIGEgYGhgIChvciBgc2ApIGNhbGwuXG4gKi9cblxuLy8gUmVnaXN0ZXIgdGhlIEpTWCBuYW1lc3BhY2Ugb24gYGhgLlxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuRWxlbWVudH0gaC5KU1guRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkVsZW1lbnRDaGlsZHJlbkF0dHJpYnV0ZX0gaC5KU1guRWxlbWVudENoaWxkcmVuQXR0cmlidXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuSW50cmluc2ljQXR0cmlidXRlc30gaC5KU1guSW50cmluc2ljQXR0cmlidXRlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkludHJpbnNpY0VsZW1lbnRzfSBoLkpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICovXG5cbi8vIFJlZ2lzdGVyIHRoZSBKU1ggbmFtZXNwYWNlIG9uIGBzYC5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkVsZW1lbnR9IHMuSlNYLkVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGV9IHMuSlNYLkVsZW1lbnRDaGlsZHJlbkF0dHJpYnV0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkludHJpbnNpY0F0dHJpYnV0ZXN9IHMuSlNYLkludHJpbnNpY0F0dHJpYnV0ZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNFbGVtZW50c30gcy5KU1guSW50cmluc2ljRWxlbWVudHNcbiAqL1xuXG5pbXBvcnQge2h0bWwsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge2NyZWF0ZUh9IGZyb20gJy4vY3JlYXRlLWguanMnXG5pbXBvcnQge3N2Z0Nhc2VTZW5zaXRpdmVUYWdOYW1lc30gZnJvbSAnLi9zdmctY2FzZS1zZW5zaXRpdmUtdGFnLW5hbWVzLmpzJ1xuXG4vLyBOb3RlOiB0aGlzIGV4cGxpY2l0IHR5cGUgaXMgbmVlZGVkLCBvdGhlcndpc2UgVFMgY3JlYXRlcyBicm9rZW4gdHlwZXMuXG4vKiogQHR5cGUge1JldHVyblR5cGU8Y3JlYXRlSD59ICovXG5leHBvcnQgY29uc3QgaCA9IGNyZWF0ZUgoaHRtbCwgJ2RpdicpXG5cbi8vIE5vdGU6IHRoaXMgZXhwbGljaXQgdHlwZSBpcyBuZWVkZWQsIG90aGVyd2lzZSBUUyBjcmVhdGVzIGJyb2tlbiB0eXBlcy5cbi8qKiBAdHlwZSB7UmV0dXJuVHlwZTxjcmVhdGVIPn0gKi9cbmV4cG9ydCBjb25zdCBzID0gY3JlYXRlSChzdmcsICdnJywgc3ZnQ2FzZVNlbnNpdGl2ZVRhZ05hbWVzKVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUnKS5WRmlsZX0gVkZpbGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlJykuVmFsdWV9IFZhbHVlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBVbmlzdFBvaW50XG4gKi9cblxuLyoqXG4gKlxuICogQHR5cGVkZWYgUG9pbnRMaWtlXG4gKiAgIHVuaXN0IHBvaW50LCBhbGxvd2VkIGFzIGlucHV0LlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbbGluZV1cbiAqICAgTGluZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NvbHVtbl1cbiAqICAgQ29sdW1uLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbb2Zmc2V0XVxuICogICBPZmZzZXQuXG4gKlxuICogQGNhbGxiYWNrIFRvUG9pbnRcbiAqICAgR2V0IHRoZSBsaW5lL2NvbHVtbiBiYXNlZCBgUG9pbnRgIGZvciBgb2Zmc2V0YCBpbiB0aGUgYm91bmQgaW5kaWNlcy5cbiAqXG4gKiAgIFJldHVybnMgYHVuZGVmaW5lZGAgd2hlbiBnaXZlbiBvdXQgb2YgYm91bmRzIGlucHV0LlxuICpcbiAqICAgQWxzbyBpbXBsZW1lbnRlZCBpbiBSdXN0IGluIFtgd29vb3JtL21hcmtkb3duLXJzYF1bbWFya2Rvd24tcnNdLlxuICpcbiAqICAgW21hcmtkb3duLXJzXTogaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9tYXJrZG93bi1ycy9ibG9iL21haW4vc3JjL3V0aWwvbG9jYXRpb24ucnNcbiAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqICAgU29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGFuIGBvZmZzZXQuXG4gKiBAcmV0dXJucyB7VW5pc3RQb2ludCB8IHVuZGVmaW5lZH1cbiAqICAgUG9pbnQsIGlmIGBvZmZzZXRgIGlzIHZhbGlkIGFuZCBpbi1ib3VuZHMgaW5wdXQuXG4gKlxuICogQGNhbGxiYWNrIFRvT2Zmc2V0XG4gKiAgIEdldCB0aGUgYG9mZnNldGAgZnJvbSBhIGxpbmUvY29sdW1uIGJhc2VkIGBQb2ludGAgaW4gdGhlIGJvdW5kIGluZGljZXMuXG4gKiBAcGFyYW0ge1BvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtwb2ludF1cbiAqICAgU29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGEgYHBvaW50LlxuICogQHJldHVybnMge251bWJlciB8IHVuZGVmaW5lZH1cbiAqICAgT2Zmc2V0IChgbnVtYmVyYCkgb3IgYHVuZGVmaW5lZGAgZm9yIGludmFsaWQgb3Igb3V0IG9mIGJvdW5kcyBpbnB1dC5cbiAqXG4gKiBAdHlwZWRlZiBMb2NhdGlvblxuICogICBBY2Nlc3NvcnMgZm9yIGluZGV4LlxuICogQHByb3BlcnR5IHtUb1BvaW50fSB0b1BvaW50XG4gKiAgIEdldCB0aGUgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBmb3IgYG9mZnNldGAgaW4gdGhlIGJvdW5kIGluZGljZXMuXG4gKiBAcHJvcGVydHkge1RvT2Zmc2V0fSB0b09mZnNldFxuICogICBHZXQgdGhlIGBvZmZzZXRgIGZyb20gYSBsaW5lL2NvbHVtbiBiYXNlZCBgUG9pbnRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICovXG5cbmNvbnN0IHNlYXJjaCA9IC9cXHI/XFxufFxcci9nXG5cbi8qKlxuICogQ3JlYXRlIGFuIGluZGV4IG9mIHRoZSBnaXZlbiBkb2N1bWVudCB0byB0cmFuc2xhdGUgYmV0d2VlbiBsaW5lL2NvbHVtbiBhbmRcbiAqIG9mZnNldCBiYXNlZCBwb3NpdGlvbmFsIGluZm8uXG4gKlxuICogQWxzbyBpbXBsZW1lbnRlZCBpbiBSdXN0IGluIFtgd29vb3JtL21hcmtkb3duLXJzYF1bbWFya2Rvd24tcnNdLlxuICpcbiAqIFttYXJrZG93bi1yc106IGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vbWFya2Rvd24tcnMvYmxvYi9tYWluL3NyYy91dGlsL2xvY2F0aW9uLnJzXG4gKlxuICogQHBhcmFtIHtWRmlsZSB8IFZhbHVlfSBmaWxlXG4gKiAgIEZpbGUgdG8gaW5kZXguXG4gKiBAcmV0dXJucyB7TG9jYXRpb259XG4gKiAgIEFjY2Vzc29ycyBmb3IgaW5kZXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NhdGlvbihmaWxlKSB7XG4gIGNvbnN0IHZhbHVlID0gU3RyaW5nKGZpbGUpXG4gIC8qKlxuICAgKiBMaXN0LCB3aGVyZSBlYWNoIGluZGV4IGlzIGEgbGluZSBudW1iZXIgKDAtYmFzZWQpLCBhbmQgZWFjaCB2YWx1ZSBpcyB0aGVcbiAgICogYnl0ZSBpbmRleCAqYWZ0ZXIqIHdoZXJlIHRoZSBsaW5lIGVuZHMuXG4gICAqXG4gICAqIEB0eXBlIHtBcnJheTxudW1iZXI+fVxuICAgKi9cbiAgY29uc3QgaW5kaWNlcyA9IFtdXG5cbiAgc2VhcmNoLmxhc3RJbmRleCA9IDBcblxuICB3aGlsZSAoc2VhcmNoLnRlc3QodmFsdWUpKSB7XG4gICAgaW5kaWNlcy5wdXNoKHNlYXJjaC5sYXN0SW5kZXgpXG4gIH1cblxuICBpbmRpY2VzLnB1c2godmFsdWUubGVuZ3RoICsgMSlcblxuICByZXR1cm4ge3RvUG9pbnQsIHRvT2Zmc2V0fVxuXG4gIC8qKiBAdHlwZSB7VG9Qb2ludH0gKi9cbiAgZnVuY3Rpb24gdG9Qb2ludChvZmZzZXQpIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIG9mZnNldCA9PT0gJ251bWJlcicgJiZcbiAgICAgIG9mZnNldCA+IC0xICYmXG4gICAgICBvZmZzZXQgPCBpbmRpY2VzW2luZGljZXMubGVuZ3RoIC0gMV1cbiAgICApIHtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgaW5kaWNlcy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKGluZGljZXNbaW5kZXhdID4gb2Zmc2V0KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxpbmU6IGluZGV4ICsgMSxcbiAgICAgICAgICAgIGNvbHVtbjogb2Zmc2V0IC0gKGluZGV4ID4gMCA/IGluZGljZXNbaW5kZXggLSAxXSA6IDApICsgMSxcbiAgICAgICAgICAgIG9mZnNldFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAdHlwZSB7VG9PZmZzZXR9ICovXG4gIGZ1bmN0aW9uIHRvT2Zmc2V0KHBvaW50KSB7XG4gICAgY29uc3QgbGluZSA9IHBvaW50ICYmIHBvaW50LmxpbmVcbiAgICBjb25zdCBjb2x1bW4gPSBwb2ludCAmJiBwb2ludC5jb2x1bW5cblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBsaW5lID09PSAnbnVtYmVyJyAmJlxuICAgICAgdHlwZW9mIGNvbHVtbiA9PT0gJ251bWJlcicgJiZcbiAgICAgICFOdW1iZXIuaXNOYU4obGluZSkgJiZcbiAgICAgICFOdW1iZXIuaXNOYU4oY29sdW1uKSAmJlxuICAgICAgbGluZSAtIDEgaW4gaW5kaWNlc1xuICAgICkge1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gKGluZGljZXNbbGluZSAtIDJdIHx8IDApICsgY29sdW1uIC0gMSB8fCAwXG5cbiAgICAgIGlmIChvZmZzZXQgPiAtMSAmJiBvZmZzZXQgPCBpbmRpY2VzW2luZGljZXMubGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgcmV0dXJuIG9mZnNldFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwgIi8qKlxuICogTWFwIG9mIHdlYiBuYW1lc3BhY2VzLlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3Qgd2ViTmFtZXNwYWNlcyA9IHtcbiAgaHRtbDogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLFxuICBtYXRobWw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJyxcbiAgc3ZnOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICB4bGluazogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnLFxuICB4bWw6ICdodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UnLFxuICB4bWxuczogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvJ1xufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50RGF0YX0gRWxlbWVudERhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290fSBSb290XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncGFyc2U1JykuRGVmYXVsdFRyZWVBZGFwdGVyTWFwfSBEZWZhdWx0VHJlZUFkYXB0ZXJNYXBcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3BhcnNlNScpLlRva2VuLkVsZW1lbnRMb2NhdGlvbn0gUDVFbGVtZW50TG9jYXRpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3BhcnNlNScpLlRva2VuLkxvY2F0aW9ufSBQNUxvY2F0aW9uXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5TY2hlbWF9IFNjaGVtYVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlJykuVkZpbGV9IFZGaWxlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydkb2N1bWVudCddfSBQNURvY3VtZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydkb2N1bWVudEZyYWdtZW50J119IFA1RG9jdW1lbnRGcmFnbWVudFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZG9jdW1lbnRUeXBlJ119IFA1RG9jdW1lbnRUeXBlXG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydjb21tZW50Tm9kZSddfSBQNUNvbW1lbnRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ3RleHROb2RlJ119IFA1VGV4dFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZWxlbWVudCddfSBQNUVsZW1lbnRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ25vZGUnXX0gUDVOb2RlXG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWyd0ZW1wbGF0ZSddfSBQNVRlbXBsYXRlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge1NwYWNlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NwYWNlPSdodG1sJ11cbiAqICAgV2hpY2ggc3BhY2UgdGhlIGRvY3VtZW50IGlzIGluIChkZWZhdWx0OiBgJ2h0bWwnYCkuXG4gKlxuICogICBXaGVuIGFuIGA8c3ZnPmAgZWxlbWVudCBpcyBmb3VuZCBpbiB0aGUgSFRNTCBzcGFjZSwgdGhpcyBwYWNrYWdlIGFscmVhZHlcbiAqICAgYXV0b21hdGljYWxseSBzd2l0Y2hlcyB0byBhbmQgZnJvbSB0aGUgU1ZHIHNwYWNlIHdoZW4gZW50ZXJpbmcgYW5kIGV4aXRpbmdcbiAqICAgaXQuXG4gKiBAcHJvcGVydHkge1ZGaWxlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gKiAgIEZpbGUgdXNlZCB0byBhZGQgcG9zaXRpb25hbCBpbmZvIHRvIG5vZGVzIChvcHRpb25hbCkuXG4gKlxuICogICBJZiBnaXZlbiwgdGhlIGZpbGUgc2hvdWxkIHJlcHJlc2VudCB0aGUgb3JpZ2luYWwgSFRNTCBzb3VyY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdmVyYm9zZT1mYWxzZV1cbiAqICAgV2hldGhlciB0byBhZGQgZXh0cmEgcG9zaXRpb25hbCBpbmZvIGFib3V0IHN0YXJ0aW5nIHRhZ3MsIGNsb3NpbmcgdGFncyxcbiAqICAgYW5kIGF0dHJpYnV0ZXMgdG8gZWxlbWVudHMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IG9ubHkgdXNlZCB3aGVuIGBmaWxlYCBpcyBnaXZlbi5cbiAqXG4gKiBAdHlwZWRlZiB7J2h0bWwnIHwgJ3N2Zyd9IFNwYWNlXG4gKiAgIE5hbWVzcGFjZS5cbiAqXG4gKiBAdHlwZWRlZiBTdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcHJvcGVydHkge1ZGaWxlIHwgdW5kZWZpbmVkfSBmaWxlXG4gKiAgIENvcnJlc3BvbmRpbmcgZmlsZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbG9jYXRpb25cbiAqICAgV2hldGhlciBsb2NhdGlvbiBpbmZvIHdhcyBmb3VuZC5cbiAqIEBwcm9wZXJ0eSB7U2NoZW1hfSBzY2hlbWFcbiAqICAgQ3VycmVudCBzY2hlbWEuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCB1bmRlZmluZWR9IHZlcmJvc2VcbiAqICAgQWRkIGV4dHJhIHBvc2l0aW9uYWwgaW5mby5cbiAqL1xuXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHtoLCBzfSBmcm9tICdoYXN0c2NyaXB0J1xuaW1wb3J0IHtmaW5kLCBodG1sLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtsb2NhdGlvbn0gZnJvbSAndmZpbGUtbG9jYXRpb24nXG5pbXBvcnQge3dlYk5hbWVzcGFjZXN9IGZyb20gJ3dlYi1uYW1lc3BhY2VzJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuLyoqIEB0eXBlIHt1bmtub3dufSAqL1xuLy8gdHlwZS1jb3ZlcmFnZTppZ25vcmUtbmV4dC1saW5lXG5jb25zdCBwcm90byA9IE9iamVjdC5wcm90b3R5cGVcblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBgcGFyc2U1YCBBU1QgdG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1A1Tm9kZX0gdHJlZVxuICogICBgcGFyc2U1YCB0cmVlIHRvIHRyYW5zZm9ybS5cbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7Tm9kZXN9XG4gKiAgIGhhc3QgdHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21QYXJzZTUodHJlZSwgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge31cblxuICByZXR1cm4gb25lKFxuICAgIHtcbiAgICAgIGZpbGU6IHNldHRpbmdzLmZpbGUgfHwgdW5kZWZpbmVkLFxuICAgICAgbG9jYXRpb246IGZhbHNlLFxuICAgICAgc2NoZW1hOiBzZXR0aW5ncy5zcGFjZSA9PT0gJ3N2ZycgPyBzdmcgOiBodG1sLFxuICAgICAgdmVyYm9zZTogc2V0dGluZ3MudmVyYm9zZSB8fCBmYWxzZVxuICAgIH0sXG4gICAgdHJlZVxuICApXG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGEgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge1A1Tm9kZX0gbm9kZVxuICogICBwNSBub2RlLlxuICogQHJldHVybnMge05vZGVzfVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG9uZShzdGF0ZSwgbm9kZSkge1xuICAvKiogQHR5cGUge05vZGVzfSAqL1xuICBsZXQgcmVzdWx0XG5cbiAgc3dpdGNoIChub2RlLm5vZGVOYW1lKSB7XG4gICAgY2FzZSAnI2NvbW1lbnQnOiB7XG4gICAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1Q29tbWVudH0gKi8gKG5vZGUpXG4gICAgICByZXN1bHQgPSB7dHlwZTogJ2NvbW1lbnQnLCB2YWx1ZTogcmVmZXJlbmNlLmRhdGF9XG4gICAgICBwYXRjaChzdGF0ZSwgcmVmZXJlbmNlLCByZXN1bHQpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgY2FzZSAnI2RvY3VtZW50JzpcbiAgICBjYXNlICcjZG9jdW1lbnQtZnJhZ21lbnQnOiB7XG4gICAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1RG9jdW1lbnQgfCBQNURvY3VtZW50RnJhZ21lbnR9ICovIChub2RlKVxuICAgICAgY29uc3QgcXVpcmtzTW9kZSA9XG4gICAgICAgICdtb2RlJyBpbiByZWZlcmVuY2VcbiAgICAgICAgICA/IHJlZmVyZW5jZS5tb2RlID09PSAncXVpcmtzJyB8fCByZWZlcmVuY2UubW9kZSA9PT0gJ2xpbWl0ZWQtcXVpcmtzJ1xuICAgICAgICAgIDogZmFsc2VcblxuICAgICAgcmVzdWx0ID0ge1xuICAgICAgICB0eXBlOiAncm9vdCcsXG4gICAgICAgIGNoaWxkcmVuOiBhbGwoc3RhdGUsIG5vZGUuY2hpbGROb2RlcyksXG4gICAgICAgIGRhdGE6IHtxdWlya3NNb2RlfVxuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUuZmlsZSAmJiBzdGF0ZS5sb2NhdGlvbikge1xuICAgICAgICBjb25zdCBkb2MgPSBTdHJpbmcoc3RhdGUuZmlsZSlcbiAgICAgICAgY29uc3QgbG9jID0gbG9jYXRpb24oZG9jKVxuICAgICAgICBjb25zdCBzdGFydCA9IGxvYy50b1BvaW50KDApXG4gICAgICAgIGNvbnN0IGVuZCA9IGxvYy50b1BvaW50KGRvYy5sZW5ndGgpXG4gICAgICAgIC8vIEFsd2F5cyBkZWZpbmVkIGFzIHdlIGdpdmUgdmFsaWQgaW5wdXQuXG4gICAgICAgIGFzc2VydChzdGFydCwgJ2V4cGVjdGVkIGBzdGFydGAnKVxuICAgICAgICBhc3NlcnQoZW5kLCAnZXhwZWN0ZWQgYGVuZGAnKVxuICAgICAgICByZXN1bHQucG9zaXRpb24gPSB7c3RhcnQsIGVuZH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNhc2UgJyNkb2N1bWVudFR5cGUnOiB7XG4gICAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1RG9jdW1lbnRUeXBlfSAqLyAobm9kZSlcbiAgICAgIHJlc3VsdCA9IHt0eXBlOiAnZG9jdHlwZSd9XG4gICAgICBwYXRjaChzdGF0ZSwgcmVmZXJlbmNlLCByZXN1bHQpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgY2FzZSAnI3RleHQnOiB7XG4gICAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1VGV4dH0gKi8gKG5vZGUpXG4gICAgICByZXN1bHQgPSB7dHlwZTogJ3RleHQnLCB2YWx1ZTogcmVmZXJlbmNlLnZhbHVlfVxuICAgICAgcGF0Y2goc3RhdGUsIHJlZmVyZW5jZSwgcmVzdWx0KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIC8vIEVsZW1lbnQuXG4gICAgZGVmYXVsdDoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNUVsZW1lbnR9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0gZWxlbWVudChzdGF0ZSwgcmVmZXJlbmNlKVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBjaGlsZHJlbi5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge0FycmF5PFA1Tm9kZT59IG5vZGVzXG4gKiAgIE5vZGVzLlxuICogQHJldHVybnMge0FycmF5PFJvb3RDb250ZW50Pn1cbiAqICAgaGFzdCBub2Rlcy5cbiAqL1xuZnVuY3Rpb24gYWxsKHN0YXRlLCBub2Rlcykge1xuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge0FycmF5PFJvb3RDb250ZW50Pn0gKi9cbiAgY29uc3QgcmVzdWx0cyA9IFtdXG5cbiAgd2hpbGUgKCsraW5kZXggPCBub2Rlcy5sZW5ndGgpIHtcbiAgICAvLyBBc3N1bWUgbm8gcm9vdHMgaW4gYG5vZGVzYC5cbiAgICBjb25zdCByZXN1bHQgPSAvKiogQHR5cGUge1Jvb3RDb250ZW50fSAqLyAob25lKHN0YXRlLCBub2Rlc1tpbmRleF0pKVxuICAgIHJlc3VsdHMucHVzaChyZXN1bHQpXG4gIH1cblxuICByZXR1cm4gcmVzdWx0c1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhbiBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7UDVFbGVtZW50fSBub2RlXG4gKiAgIGBwYXJzZTVgIG5vZGUgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybnMge0VsZW1lbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZnVuY3Rpb24gZWxlbWVudChzdGF0ZSwgbm9kZSkge1xuICBjb25zdCBzY2hlbWEgPSBzdGF0ZS5zY2hlbWFcblxuICBzdGF0ZS5zY2hlbWEgPSBub2RlLm5hbWVzcGFjZVVSSSA9PT0gd2ViTmFtZXNwYWNlcy5zdmcgPyBzdmcgOiBodG1sXG5cbiAgLy8gUHJvcHMuXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi9cbiAgY29uc3QgcHJvcHMgPSB7fVxuXG4gIHdoaWxlICgrK2luZGV4IDwgbm9kZS5hdHRycy5sZW5ndGgpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGUgPSBub2RlLmF0dHJzW2luZGV4XVxuICAgIGNvbnN0IG5hbWUgPVxuICAgICAgKGF0dHJpYnV0ZS5wcmVmaXggPyBhdHRyaWJ1dGUucHJlZml4ICsgJzonIDogJycpICsgYXR0cmlidXRlLm5hbWVcbiAgICBpZiAoIW93bi5jYWxsKHByb3RvLCBuYW1lKSkge1xuICAgICAgcHJvcHNbbmFtZV0gPSBhdHRyaWJ1dGUudmFsdWVcbiAgICB9XG4gIH1cblxuICAvLyBCdWlsZC5cbiAgY29uc3QgZm4gPSBzdGF0ZS5zY2hlbWEuc3BhY2UgPT09ICdzdmcnID8gcyA6IGhcbiAgY29uc3QgcmVzdWx0ID0gZm4obm9kZS50YWdOYW1lLCBwcm9wcywgYWxsKHN0YXRlLCBub2RlLmNoaWxkTm9kZXMpKVxuICBwYXRjaChzdGF0ZSwgbm9kZSwgcmVzdWx0KVxuXG4gIC8vIFN3aXRjaCBjb250ZW50LlxuICBpZiAocmVzdWx0LnRhZ05hbWUgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1VGVtcGxhdGV9ICovIChub2RlKVxuICAgIGNvbnN0IHBvcyA9IHJlZmVyZW5jZS5zb3VyY2VDb2RlTG9jYXRpb25cbiAgICBjb25zdCBzdGFydFRhZyA9IHBvcyAmJiBwb3Muc3RhcnRUYWcgJiYgcG9zaXRpb24ocG9zLnN0YXJ0VGFnKVxuICAgIGNvbnN0IGVuZFRhZyA9IHBvcyAmJiBwb3MuZW5kVGFnICYmIHBvc2l0aW9uKHBvcy5lbmRUYWcpXG5cbiAgICAvLyBSb290IGluLCByb290IG91dC5cbiAgICBjb25zdCBjb250ZW50ID0gLyoqIEB0eXBlIHtSb290fSAqLyAob25lKHN0YXRlLCByZWZlcmVuY2UuY29udGVudCkpXG5cbiAgICBpZiAoc3RhcnRUYWcgJiYgZW5kVGFnICYmIHN0YXRlLmZpbGUpIHtcbiAgICAgIGNvbnRlbnQucG9zaXRpb24gPSB7c3RhcnQ6IHN0YXJ0VGFnLmVuZCwgZW5kOiBlbmRUYWcuc3RhcnR9XG4gICAgfVxuXG4gICAgcmVzdWx0LmNvbnRlbnQgPSBjb250ZW50XG4gIH1cblxuICBzdGF0ZS5zY2hlbWEgPSBzY2hlbWFcblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogUGF0Y2ggcG9zaXRpb25hbCBpbmZvIGZyb20gYGZyb21gIG9udG8gYHRvYC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge1A1Tm9kZX0gZnJvbVxuICogICBwNSBub2RlLlxuICogQHBhcmFtIHtOb2Rlc30gdG9cbiAqICAgaGFzdCBub2RlLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gcGF0Y2goc3RhdGUsIGZyb20sIHRvKSB7XG4gIGlmICgnc291cmNlQ29kZUxvY2F0aW9uJyBpbiBmcm9tICYmIGZyb20uc291cmNlQ29kZUxvY2F0aW9uICYmIHN0YXRlLmZpbGUpIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IGNyZWF0ZUxvY2F0aW9uKHN0YXRlLCB0bywgZnJvbS5zb3VyY2VDb2RlTG9jYXRpb24pXG5cbiAgICBpZiAocG9zaXRpb24pIHtcbiAgICAgIHN0YXRlLmxvY2F0aW9uID0gdHJ1ZVxuICAgICAgdG8ucG9zaXRpb24gPSBwb3NpdGlvblxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBjbGVhbiBwb3NpdGlvbmFsIGluZm9ybWF0aW9uLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7Tm9kZXN9IG5vZGVcbiAqICAgaGFzdCBub2RlLlxuICogQHBhcmFtIHtQNUVsZW1lbnRMb2NhdGlvbn0gbG9jYXRpb25cbiAqICAgcDUgbG9jYXRpb24gaW5mby5cbiAqIEByZXR1cm5zIHtQb3NpdGlvbiB8IHVuZGVmaW5lZH1cbiAqICAgUG9zaXRpb24sIG9yIG5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUxvY2F0aW9uKHN0YXRlLCBub2RlLCBsb2NhdGlvbikge1xuICBjb25zdCByZXN1bHQgPSBwb3NpdGlvbihsb2NhdGlvbilcblxuICBpZiAobm9kZS50eXBlID09PSAnZWxlbWVudCcpIHtcbiAgICBjb25zdCB0YWlsID0gbm9kZS5jaGlsZHJlbltub2RlLmNoaWxkcmVuLmxlbmd0aCAtIDFdXG5cbiAgICAvLyBCdWcgZm9yIHVuY2xvc2VkIHdpdGggY2hpbGRyZW4uXG4gICAgLy8gU2VlOiA8aHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9pc3N1ZXMvMTA5Pi5cbiAgICBpZiAoXG4gICAgICByZXN1bHQgJiZcbiAgICAgICFsb2NhdGlvbi5lbmRUYWcgJiZcbiAgICAgIHRhaWwgJiZcbiAgICAgIHRhaWwucG9zaXRpb24gJiZcbiAgICAgIHRhaWwucG9zaXRpb24uZW5kXG4gICAgKSB7XG4gICAgICByZXN1bHQuZW5kID0gT2JqZWN0LmFzc2lnbih7fSwgdGFpbC5wb3NpdGlvbi5lbmQpXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLnZlcmJvc2UpIHtcbiAgICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgUG9zaXRpb24gfCB1bmRlZmluZWQ+fSAqL1xuICAgICAgY29uc3QgcHJvcHMgPSB7fVxuICAgICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgICBsZXQga2V5XG5cbiAgICAgIGlmIChsb2NhdGlvbi5hdHRycykge1xuICAgICAgICBmb3IgKGtleSBpbiBsb2NhdGlvbi5hdHRycykge1xuICAgICAgICAgIGlmIChvd24uY2FsbChsb2NhdGlvbi5hdHRycywga2V5KSkge1xuICAgICAgICAgICAgcHJvcHNbZmluZChzdGF0ZS5zY2hlbWEsIGtleSkucHJvcGVydHldID0gcG9zaXRpb24oXG4gICAgICAgICAgICAgIGxvY2F0aW9uLmF0dHJzW2tleV1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXNzZXJ0KGxvY2F0aW9uLnN0YXJ0VGFnLCAnYSBzdGFydCB0YWcgc2hvdWxkIGV4aXN0JylcbiAgICAgIGNvbnN0IG9wZW5pbmcgPSBwb3NpdGlvbihsb2NhdGlvbi5zdGFydFRhZylcbiAgICAgIGNvbnN0IGNsb3NpbmcgPSBsb2NhdGlvbi5lbmRUYWcgPyBwb3NpdGlvbihsb2NhdGlvbi5lbmRUYWcpIDogdW5kZWZpbmVkXG4gICAgICAvKiogQHR5cGUge0VsZW1lbnREYXRhWydwb3NpdGlvbiddfSAqL1xuICAgICAgY29uc3QgZGF0YSA9IHtvcGVuaW5nfVxuICAgICAgaWYgKGNsb3NpbmcpIGRhdGEuY2xvc2luZyA9IGNsb3NpbmdcbiAgICAgIGRhdGEucHJvcGVydGllcyA9IHByb3BzXG5cbiAgICAgIG5vZGUuZGF0YSA9IHtwb3NpdGlvbjogZGF0YX1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogVHVybiBhIHA1IGxvY2F0aW9uIGludG8gYSBwb3NpdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1A1TG9jYXRpb259IGxvY1xuICogICBMb2NhdGlvbi5cbiAqIEByZXR1cm5zIHtQb3NpdGlvbiB8IHVuZGVmaW5lZH1cbiAqICAgUG9zaXRpb24gb3Igbm90aGluZy5cbiAqL1xuZnVuY3Rpb24gcG9zaXRpb24obG9jKSB7XG4gIGNvbnN0IHN0YXJ0ID0gcG9pbnQoe1xuICAgIGxpbmU6IGxvYy5zdGFydExpbmUsXG4gICAgY29sdW1uOiBsb2Muc3RhcnRDb2wsXG4gICAgb2Zmc2V0OiBsb2Muc3RhcnRPZmZzZXRcbiAgfSlcbiAgY29uc3QgZW5kID0gcG9pbnQoe1xuICAgIGxpbmU6IGxvYy5lbmRMaW5lLFxuICAgIGNvbHVtbjogbG9jLmVuZENvbCxcbiAgICBvZmZzZXQ6IGxvYy5lbmRPZmZzZXRcbiAgfSlcblxuICAvLyBAdHMtZXhwZWN0LWVycm9yOiB3ZSBkbyB1c2UgYHVuZGVmaW5lZGAgZm9yIHBvaW50cyBpZiBvbmUgb3IgdGhlIG90aGVyXG4gIC8vIGV4aXN0cy5cbiAgcmV0dXJuIHN0YXJ0IHx8IGVuZCA/IHtzdGFydCwgZW5kfSA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEZpbHRlciBvdXQgaW52YWxpZCBwb2ludHMuXG4gKlxuICogQHBhcmFtIHtQb2ludH0gcG9pbnRcbiAqICAgUG9pbnQgd2l0aCBwb3RlbnRpYWxseSBgdW5kZWZpbmVkYCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7UG9pbnQgfCB1bmRlZmluZWR9XG4gKiAgIFBvaW50IG9yIG5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIHBvaW50KHBvaW50KSB7XG4gIHJldHVybiBwb2ludC5saW5lICYmIHBvaW50LmNvbHVtbiA/IHBvaW50IDogdW5kZWZpbmVkXG59XG4iLCAiY29uc3QgVU5ERUZJTkVEX0NPREVfUE9JTlRTID0gbmV3IFNldChbXG4gICAgNjU1MzQsIDY1NTM1LCAxMzEwNzAsIDEzMTA3MSwgMTk2NjA2LCAxOTY2MDcsIDI2MjE0MiwgMjYyMTQzLCAzMjc2NzgsIDMyNzY3OSwgMzkzMjE0LFxuICAgIDM5MzIxNSwgNDU4NzUwLCA0NTg3NTEsIDUyNDI4NiwgNTI0Mjg3LCA1ODk4MjIsIDU4OTgyMywgNjU1MzU4LCA2NTUzNTksIDcyMDg5NCxcbiAgICA3MjA4OTUsIDc4NjQzMCwgNzg2NDMxLCA4NTE5NjYsIDg1MTk2NywgOTE3NTAyLCA5MTc1MDMsIDk4MzAzOCwgOTgzMDM5LCAxMDQ4NTc0LFxuICAgIDEwNDg1NzUsIDExMTQxMTAsIDExMTQxMTEsXG5dKTtcbmV4cG9ydCBjb25zdCBSRVBMQUNFTUVOVF9DSEFSQUNURVIgPSAnXFx1RkZGRCc7XG5leHBvcnQgdmFyIENPREVfUE9JTlRTO1xuKGZ1bmN0aW9uIChDT0RFX1BPSU5UUykge1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRU9GXCJdID0gLTFdID0gXCJFT0ZcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIk5VTExcIl0gPSAwXSA9IFwiTlVMTFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiVEFCVUxBVElPTlwiXSA9IDldID0gXCJUQUJVTEFUSU9OXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJDQVJSSUFHRV9SRVRVUk5cIl0gPSAxM10gPSBcIkNBUlJJQUdFX1JFVFVSTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTElORV9GRUVEXCJdID0gMTBdID0gXCJMSU5FX0ZFRURcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkZPUk1fRkVFRFwiXSA9IDEyXSA9IFwiRk9STV9GRUVEXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTUEFDRVwiXSA9IDMyXSA9IFwiU1BBQ0VcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkVYQ0xBTUFUSU9OX01BUktcIl0gPSAzM10gPSBcIkVYQ0xBTUFUSU9OX01BUktcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlFVT1RBVElPTl9NQVJLXCJdID0gMzRdID0gXCJRVU9UQVRJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTlVNQkVSX1NJR05cIl0gPSAzNV0gPSBcIk5VTUJFUl9TSUdOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJBTVBFUlNBTkRcIl0gPSAzOF0gPSBcIkFNUEVSU0FORFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQVBPU1RST1BIRVwiXSA9IDM5XSA9IFwiQVBPU1RST1BIRVwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiSFlQSEVOX01JTlVTXCJdID0gNDVdID0gXCJIWVBIRU5fTUlOVVNcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlNPTElEVVNcIl0gPSA0N10gPSBcIlNPTElEVVNcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkRJR0lUXzBcIl0gPSA0OF0gPSBcIkRJR0lUXzBcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkRJR0lUXzlcIl0gPSA1N10gPSBcIkRJR0lUXzlcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlNFTUlDT0xPTlwiXSA9IDU5XSA9IFwiU0VNSUNPTE9OXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMRVNTX1RIQU5fU0lHTlwiXSA9IDYwXSA9IFwiTEVTU19USEFOX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkVRVUFMU19TSUdOXCJdID0gNjFdID0gXCJFUVVBTFNfU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiR1JFQVRFUl9USEFOX1NJR05cIl0gPSA2Ml0gPSBcIkdSRUFURVJfVEhBTl9TSUdOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJRVUVTVElPTl9NQVJLXCJdID0gNjNdID0gXCJRVUVTVElPTl9NQVJLXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9DQVBJVEFMX0FcIl0gPSA2NV0gPSBcIkxBVElOX0NBUElUQUxfQVwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9GXCJdID0gNzBdID0gXCJMQVRJTl9DQVBJVEFMX0ZcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfWFwiXSA9IDg4XSA9IFwiTEFUSU5fQ0FQSVRBTF9YXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9DQVBJVEFMX1pcIl0gPSA5MF0gPSBcIkxBVElOX0NBUElUQUxfWlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiUklHSFRfU1FVQVJFX0JSQUNLRVRcIl0gPSA5M10gPSBcIlJJR0hUX1NRVUFSRV9CUkFDS0VUXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJHUkFWRV9BQ0NFTlRcIl0gPSA5Nl0gPSBcIkdSQVZFX0FDQ0VOVFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fU01BTExfQVwiXSA9IDk3XSA9IFwiTEFUSU5fU01BTExfQVwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fU01BTExfRlwiXSA9IDEwMl0gPSBcIkxBVElOX1NNQUxMX0ZcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX1hcIl0gPSAxMjBdID0gXCJMQVRJTl9TTUFMTF9YXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9aXCJdID0gMTIyXSA9IFwiTEFUSU5fU01BTExfWlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiUkVQTEFDRU1FTlRfQ0hBUkFDVEVSXCJdID0gNjU1MzNdID0gXCJSRVBMQUNFTUVOVF9DSEFSQUNURVJcIjtcbn0pKENPREVfUE9JTlRTID0gQ09ERV9QT0lOVFMgfHwgKENPREVfUE9JTlRTID0ge30pKTtcbmV4cG9ydCBjb25zdCBTRVFVRU5DRVMgPSB7XG4gICAgREFTSF9EQVNIOiAnLS0nLFxuICAgIENEQVRBX1NUQVJUOiAnW0NEQVRBWycsXG4gICAgRE9DVFlQRTogJ2RvY3R5cGUnLFxuICAgIFNDUklQVDogJ3NjcmlwdCcsXG4gICAgUFVCTElDOiAncHVibGljJyxcbiAgICBTWVNURU06ICdzeXN0ZW0nLFxufTtcbi8vU3Vycm9nYXRlc1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vycm9nYXRlKGNwKSB7XG4gICAgcmV0dXJuIGNwID49IDU1Mjk2ICYmIGNwIDw9IDU3MzQzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vycm9nYXRlUGFpcihjcCkge1xuICAgIHJldHVybiBjcCA+PSA1NjMyMCAmJiBjcCA8PSA1NzM0Mztcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50KGNwMSwgY3AyKSB7XG4gICAgcmV0dXJuIChjcDEgLSA1NTI5NikgKiAxMDI0ICsgOTIxNiArIGNwMjtcbn1cbi8vTk9URTogZXhjbHVkaW5nIE5VTEwgYW5kIEFTQ0lJIHdoaXRlc3BhY2VcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gKChjcCAhPT0gMHgyMCAmJiBjcCAhPT0gMHgwYSAmJiBjcCAhPT0gMHgwZCAmJiBjcCAhPT0gMHgwOSAmJiBjcCAhPT0gMHgwYyAmJiBjcCA+PSAweDAxICYmIGNwIDw9IDB4MWYpIHx8XG4gICAgICAgIChjcCA+PSAweDdmICYmIGNwIDw9IDB4OWYpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZENvZGVQb2ludChjcCkge1xuICAgIHJldHVybiAoY3AgPj0gNjQ5NzYgJiYgY3AgPD0gNjUwMDcpIHx8IFVOREVGSU5FRF9DT0RFX1BPSU5UUy5oYXMoY3ApO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dW5pY29kZS5qcy5tYXAiLCAiZXhwb3J0IHZhciBFUlI7XG4oZnVuY3Rpb24gKEVSUikge1xuICAgIEVSUltcImNvbnRyb2xDaGFyYWN0ZXJJbklucHV0U3RyZWFtXCJdID0gXCJjb250cm9sLWNoYXJhY3Rlci1pbi1pbnB1dC1zdHJlYW1cIjtcbiAgICBFUlJbXCJub25jaGFyYWN0ZXJJbklucHV0U3RyZWFtXCJdID0gXCJub25jaGFyYWN0ZXItaW4taW5wdXQtc3RyZWFtXCI7XG4gICAgRVJSW1wic3Vycm9nYXRlSW5JbnB1dFN0cmVhbVwiXSA9IFwic3Vycm9nYXRlLWluLWlucHV0LXN0cmVhbVwiO1xuICAgIEVSUltcIm5vblZvaWRIdG1sRWxlbWVudFN0YXJ0VGFnV2l0aFRyYWlsaW5nU29saWR1c1wiXSA9IFwibm9uLXZvaWQtaHRtbC1lbGVtZW50LXN0YXJ0LXRhZy13aXRoLXRyYWlsaW5nLXNvbGlkdXNcIjtcbiAgICBFUlJbXCJlbmRUYWdXaXRoQXR0cmlidXRlc1wiXSA9IFwiZW5kLXRhZy13aXRoLWF0dHJpYnV0ZXNcIjtcbiAgICBFUlJbXCJlbmRUYWdXaXRoVHJhaWxpbmdTb2xpZHVzXCJdID0gXCJlbmQtdGFnLXdpdGgtdHJhaWxpbmctc29saWR1c1wiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRTb2xpZHVzSW5UYWdcIl0gPSBcInVuZXhwZWN0ZWQtc29saWR1cy1pbi10YWdcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkTnVsbENoYXJhY3RlclwiXSA9IFwidW5leHBlY3RlZC1udWxsLWNoYXJhY3RlclwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRRdWVzdGlvbk1hcmtJbnN0ZWFkT2ZUYWdOYW1lXCJdID0gXCJ1bmV4cGVjdGVkLXF1ZXN0aW9uLW1hcmstaW5zdGVhZC1vZi10YWctbmFtZVwiO1xuICAgIEVSUltcImludmFsaWRGaXJzdENoYXJhY3Rlck9mVGFnTmFtZVwiXSA9IFwiaW52YWxpZC1maXJzdC1jaGFyYWN0ZXItb2YtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkRXF1YWxzU2lnbkJlZm9yZUF0dHJpYnV0ZU5hbWVcIl0gPSBcInVuZXhwZWN0ZWQtZXF1YWxzLXNpZ24tYmVmb3JlLWF0dHJpYnV0ZS1uYW1lXCI7XG4gICAgRVJSW1wibWlzc2luZ0VuZFRhZ05hbWVcIl0gPSBcIm1pc3NpbmctZW5kLXRhZy1uYW1lXCI7XG4gICAgRVJSW1widW5leHBlY3RlZENoYXJhY3RlckluQXR0cmlidXRlTmFtZVwiXSA9IFwidW5leHBlY3RlZC1jaGFyYWN0ZXItaW4tYXR0cmlidXRlLW5hbWVcIjtcbiAgICBFUlJbXCJ1bmtub3duTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcInVua25vd24tbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm1pc3NpbmdTZW1pY29sb25BZnRlckNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwibWlzc2luZy1zZW1pY29sb24tYWZ0ZXItY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJBZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJ1bmV4cGVjdGVkLWNoYXJhY3Rlci1hZnRlci1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1widW5leHBlY3RlZENoYXJhY3RlckluVW5xdW90ZWRBdHRyaWJ1dGVWYWx1ZVwiXSA9IFwidW5leHBlY3RlZC1jaGFyYWN0ZXItaW4tdW5xdW90ZWQtYXR0cmlidXRlLXZhbHVlXCI7XG4gICAgRVJSW1wiZW9mQmVmb3JlVGFnTmFtZVwiXSA9IFwiZW9mLWJlZm9yZS10YWctbmFtZVwiO1xuICAgIEVSUltcImVvZkluVGFnXCJdID0gXCJlb2YtaW4tdGFnXCI7XG4gICAgRVJSW1wibWlzc2luZ0F0dHJpYnV0ZVZhbHVlXCJdID0gXCJtaXNzaW5nLWF0dHJpYnV0ZS12YWx1ZVwiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXNcIl0gPSBcIm1pc3Npbmctd2hpdGVzcGFjZS1iZXR3ZWVuLWF0dHJpYnV0ZXNcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmRcIl0gPSBcIm1pc3Npbmctd2hpdGVzcGFjZS1hZnRlci1kb2N0eXBlLXB1YmxpYy1rZXl3b3JkXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmV0d2Vlbi1kb2N0eXBlLXB1YmxpYy1hbmQtc3lzdGVtLWlkZW50aWZpZXJzXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZFwiO1xuICAgIEVSUltcIm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLXF1b3RlLWJlZm9yZS1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wibWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJcIl0gPSBcIm1pc3NpbmctcXVvdGUtYmVmb3JlLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJcIl0gPSBcIm1pc3NpbmctZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wiYWJydXB0RG9jdHlwZVB1YmxpY0lkZW50aWZpZXJcIl0gPSBcImFicnVwdC1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wiYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXJcIl0gPSBcImFicnVwdC1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wiY2RhdGFJbkh0bWxDb250ZW50XCJdID0gXCJjZGF0YS1pbi1odG1sLWNvbnRlbnRcIjtcbiAgICBFUlJbXCJpbmNvcnJlY3RseU9wZW5lZENvbW1lbnRcIl0gPSBcImluY29ycmVjdGx5LW9wZW5lZC1jb21tZW50XCI7XG4gICAgRVJSW1wiZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0XCJdID0gXCJlb2YtaW4tc2NyaXB0LWh0bWwtY29tbWVudC1saWtlLXRleHRcIjtcbiAgICBFUlJbXCJlb2ZJbkRvY3R5cGVcIl0gPSBcImVvZi1pbi1kb2N0eXBlXCI7XG4gICAgRVJSW1wibmVzdGVkQ29tbWVudFwiXSA9IFwibmVzdGVkLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJhYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnRcIl0gPSBcImFicnVwdC1jbG9zaW5nLW9mLWVtcHR5LWNvbW1lbnRcIjtcbiAgICBFUlJbXCJlb2ZJbkNvbW1lbnRcIl0gPSBcImVvZi1pbi1jb21tZW50XCI7XG4gICAgRVJSW1wiaW5jb3JyZWN0bHlDbG9zZWRDb21tZW50XCJdID0gXCJpbmNvcnJlY3RseS1jbG9zZWQtY29tbWVudFwiO1xuICAgIEVSUltcImVvZkluQ2RhdGFcIl0gPSBcImVvZi1pbi1jZGF0YVwiO1xuICAgIEVSUltcImFic2VuY2VPZkRpZ2l0c0luTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwiYWJzZW5jZS1vZi1kaWdpdHMtaW4tbnVtZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1wibnVsbENoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwibnVsbC1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1wic3Vycm9nYXRlQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJzdXJyb2dhdGUtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcImNoYXJhY3RlclJlZmVyZW5jZU91dHNpZGVVbmljb2RlUmFuZ2VcIl0gPSBcImNoYXJhY3Rlci1yZWZlcmVuY2Utb3V0c2lkZS11bmljb2RlLXJhbmdlXCI7XG4gICAgRVJSW1wiY29udHJvbENoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwiY29udHJvbC1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1wibm9uY2hhcmFjdGVyQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJub25jaGFyYWN0ZXItY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQmVmb3JlRG9jdHlwZU5hbWVcIl0gPSBcIm1pc3Npbmctd2hpdGVzcGFjZS1iZWZvcmUtZG9jdHlwZS1uYW1lXCI7XG4gICAgRVJSW1wibWlzc2luZ0RvY3R5cGVOYW1lXCJdID0gXCJtaXNzaW5nLWRvY3R5cGUtbmFtZVwiO1xuICAgIEVSUltcImludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWVcIl0gPSBcImludmFsaWQtY2hhcmFjdGVyLXNlcXVlbmNlLWFmdGVyLWRvY3R5cGUtbmFtZVwiO1xuICAgIEVSUltcImR1cGxpY2F0ZUF0dHJpYnV0ZVwiXSA9IFwiZHVwbGljYXRlLWF0dHJpYnV0ZVwiO1xuICAgIEVSUltcIm5vbkNvbmZvcm1pbmdEb2N0eXBlXCJdID0gXCJub24tY29uZm9ybWluZy1kb2N0eXBlXCI7XG4gICAgRVJSW1wibWlzc2luZ0RvY3R5cGVcIl0gPSBcIm1pc3NpbmctZG9jdHlwZVwiO1xuICAgIEVSUltcIm1pc3BsYWNlZERvY3R5cGVcIl0gPSBcIm1pc3BsYWNlZC1kb2N0eXBlXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnRcIl0gPSBcImVuZC10YWctd2l0aG91dC1tYXRjaGluZy1vcGVuLWVsZW1lbnRcIjtcbiAgICBFUlJbXCJjbG9zaW5nT2ZFbGVtZW50V2l0aE9wZW5DaGlsZEVsZW1lbnRzXCJdID0gXCJjbG9zaW5nLW9mLWVsZW1lbnQtd2l0aC1vcGVuLWNoaWxkLWVsZW1lbnRzXCI7XG4gICAgRVJSW1wiZGlzYWxsb3dlZENvbnRlbnRJbk5vc2NyaXB0SW5IZWFkXCJdID0gXCJkaXNhbGxvd2VkLWNvbnRlbnQtaW4tbm9zY3JpcHQtaW4taGVhZFwiO1xuICAgIEVSUltcIm9wZW5FbGVtZW50c0xlZnRBZnRlckVvZlwiXSA9IFwib3Blbi1lbGVtZW50cy1sZWZ0LWFmdGVyLWVvZlwiO1xuICAgIEVSUltcImFiYW5kb25lZEhlYWRFbGVtZW50Q2hpbGRcIl0gPSBcImFiYW5kb25lZC1oZWFkLWVsZW1lbnQtY2hpbGRcIjtcbiAgICBFUlJbXCJtaXNwbGFjZWRTdGFydFRhZ0ZvckhlYWRFbGVtZW50XCJdID0gXCJtaXNwbGFjZWQtc3RhcnQtdGFnLWZvci1oZWFkLWVsZW1lbnRcIjtcbiAgICBFUlJbXCJuZXN0ZWROb3NjcmlwdEluSGVhZFwiXSA9IFwibmVzdGVkLW5vc2NyaXB0LWluLWhlYWRcIjtcbiAgICBFUlJbXCJlb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0XCJdID0gXCJlb2YtaW4tZWxlbWVudC10aGF0LWNhbi1jb250YWluLW9ubHktdGV4dFwiO1xufSkoRVJSID0gRVJSIHx8IChFUlIgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXJyb3ItY29kZXMuanMubWFwIiwgImltcG9ydCB7IENPREVfUE9JTlRTIGFzICQsIGdldFN1cnJvZ2F0ZVBhaXJDb2RlUG9pbnQsIGlzQ29udHJvbENvZGVQb2ludCwgaXNTdXJyb2dhdGUsIGlzU3Vycm9nYXRlUGFpciwgaXNVbmRlZmluZWRDb2RlUG9pbnQsIH0gZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgRVJSIH0gZnJvbSAnLi4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbi8vQ29uc3RcbmNvbnN0IERFRkFVTFRfQlVGRkVSX1dBVEVSTElORSA9IDEgPDwgMTY7XG4vL1ByZXByb2Nlc3NvclxuLy9OT1RFOiBIVE1MIGlucHV0IHByZXByb2Nlc3Npbmdcbi8vKHNlZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3ByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbSlcbmV4cG9ydCBjbGFzcyBQcmVwcm9jZXNzb3Ige1xuICAgIGNvbnN0cnVjdG9yKGhhbmRsZXIpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVyID0gaGFuZGxlcjtcbiAgICAgICAgdGhpcy5odG1sID0gJyc7XG4gICAgICAgIHRoaXMucG9zID0gLTE7XG4gICAgICAgIC8vIE5PVEU6IEluaXRpYWwgYGxhc3RHYXBQb3NgIGlzIC0yLCB0byBlbnN1cmUgYGNvbGAgb24gaW5pdGlhbGlzYXRpb24gaXMgMFxuICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSAtMjtcbiAgICAgICAgdGhpcy5nYXBTdGFjayA9IFtdO1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxhc3RDaHVua1dyaXR0ZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnVmZmVyV2F0ZXJsaW5lID0gREVGQVVMVF9CVUZGRVJfV0FURVJMSU5FO1xuICAgICAgICB0aGlzLmlzRW9sID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGluZVN0YXJ0UG9zID0gMDtcbiAgICAgICAgdGhpcy5kcm9wcGVkQnVmZmVyU2l6ZSA9IDA7XG4gICAgICAgIHRoaXMubGluZSA9IDE7XG4gICAgICAgIC8vTk9URTogYXZvaWQgcmVwb3J0aW5nIGVycm9ycyB0d2ljZSBvbiBhZHZhbmNlL3JldHJlYXRcbiAgICAgICAgdGhpcy5sYXN0RXJyT2Zmc2V0ID0gLTE7XG4gICAgfVxuICAgIC8qKiBUaGUgY29sdW1uIG9uIHRoZSBjdXJyZW50IGxpbmUuIElmIHdlIGp1c3Qgc2F3IGEgZ2FwIChlZy4gYSBzdXJyb2dhdGUgcGFpciksIHJldHVybiB0aGUgaW5kZXggYmVmb3JlLiAqL1xuICAgIGdldCBjb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcyAtIHRoaXMubGluZVN0YXJ0UG9zICsgTnVtYmVyKHRoaXMubGFzdEdhcFBvcyAhPT0gdGhpcy5wb3MpO1xuICAgIH1cbiAgICBnZXQgb2Zmc2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kcm9wcGVkQnVmZmVyU2l6ZSArIHRoaXMucG9zO1xuICAgIH1cbiAgICBnZXRFcnJvcihjb2RlKSB7XG4gICAgICAgIGNvbnN0IHsgbGluZSwgY29sLCBvZmZzZXQgfSA9IHRoaXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgc3RhcnRMaW5lOiBsaW5lLFxuICAgICAgICAgICAgZW5kTGluZTogbGluZSxcbiAgICAgICAgICAgIHN0YXJ0Q29sOiBjb2wsXG4gICAgICAgICAgICBlbmRDb2w6IGNvbCxcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgICAgICBlbmRPZmZzZXQ6IG9mZnNldCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2Vycihjb2RlKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZXIub25QYXJzZUVycm9yICYmIHRoaXMubGFzdEVyck9mZnNldCAhPT0gdGhpcy5vZmZzZXQpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdEVyck9mZnNldCA9IHRoaXMub2Zmc2V0O1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uUGFyc2VFcnJvcih0aGlzLmdldEVycm9yKGNvZGUpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfYWRkR2FwKCkge1xuICAgICAgICB0aGlzLmdhcFN0YWNrLnB1c2godGhpcy5sYXN0R2FwUG9zKTtcbiAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gdGhpcy5wb3M7XG4gICAgfVxuICAgIF9wcm9jZXNzU3Vycm9nYXRlKGNwKSB7XG4gICAgICAgIC8vTk9URTogdHJ5IHRvIHBlZWsgYSBzdXJyb2dhdGUgcGFpclxuICAgICAgICBpZiAodGhpcy5wb3MgIT09IHRoaXMuaHRtbC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0Q3AgPSB0aGlzLmh0bWwuY2hhckNvZGVBdCh0aGlzLnBvcyArIDEpO1xuICAgICAgICAgICAgaWYgKGlzU3Vycm9nYXRlUGFpcihuZXh0Q3ApKSB7XG4gICAgICAgICAgICAgICAgLy9OT1RFOiB3ZSBoYXZlIGEgc3Vycm9nYXRlIHBhaXIuIFBlZWsgcGFpciBjaGFyYWN0ZXIgYW5kIHJlY2FsY3VsYXRlIGNvZGUgcG9pbnQuXG4gICAgICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgICAgICAgICAvL05PVEU6IGFkZCBhIGdhcCB0aGF0IHNob3VsZCBiZSBhdm9pZGVkIGR1cmluZyByZXRyZWF0XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkR2FwKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldFN1cnJvZ2F0ZVBhaXJDb2RlUG9pbnQoY3AsIG5leHRDcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiBhIGNodW5rLCB0aGVyZWZvcmUgd2UgY2FuJ3QgaW5mZXIgdGhlIHN1cnJvZ2F0ZSBwYWlyIHlldC5cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMubGFzdENodW5rV3JpdHRlbikge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiAkLkVPRjtcbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IGlzb2xhdGVkIHN1cnJvZ2F0ZVxuICAgICAgICB0aGlzLl9lcnIoRVJSLnN1cnJvZ2F0ZUluSW5wdXRTdHJlYW0pO1xuICAgICAgICByZXR1cm4gY3A7XG4gICAgfVxuICAgIHdpbGxEcm9wUGFyc2VkQ2h1bmsoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcyA+IHRoaXMuYnVmZmVyV2F0ZXJsaW5lO1xuICAgIH1cbiAgICBkcm9wUGFyc2VkQ2h1bmsoKSB7XG4gICAgICAgIGlmICh0aGlzLndpbGxEcm9wUGFyc2VkQ2h1bmsoKSkge1xuICAgICAgICAgICAgdGhpcy5odG1sID0gdGhpcy5odG1sLnN1YnN0cmluZyh0aGlzLnBvcyk7XG4gICAgICAgICAgICB0aGlzLmxpbmVTdGFydFBvcyAtPSB0aGlzLnBvcztcbiAgICAgICAgICAgIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgKz0gdGhpcy5wb3M7XG4gICAgICAgICAgICB0aGlzLnBvcyA9IDA7XG4gICAgICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSAtMjtcbiAgICAgICAgICAgIHRoaXMuZ2FwU3RhY2subGVuZ3RoID0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZShjaHVuaywgaXNMYXN0Q2h1bmspIHtcbiAgICAgICAgaWYgKHRoaXMuaHRtbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmh0bWwgKz0gY2h1bms7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmh0bWwgPSBjaHVuaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0Q2h1bmtXcml0dGVuID0gaXNMYXN0Q2h1bms7XG4gICAgfVxuICAgIGluc2VydEh0bWxBdEN1cnJlbnRQb3MoY2h1bmspIHtcbiAgICAgICAgdGhpcy5odG1sID0gdGhpcy5odG1sLnN1YnN0cmluZygwLCB0aGlzLnBvcyArIDEpICsgY2h1bmsgKyB0aGlzLmh0bWwuc3Vic3RyaW5nKHRoaXMucG9zICsgMSk7XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgIH1cbiAgICBzdGFydHNXaXRoKHBhdHRlcm4sIGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgb3VyIGJ1ZmZlciBoYXMgZW5vdWdoIGNoYXJhY3RlcnNcbiAgICAgICAgaWYgKHRoaXMucG9zICsgcGF0dGVybi5sZW5ndGggPiB0aGlzLmh0bWwubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSAhdGhpcy5sYXN0Q2h1bmtXcml0dGVuO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odG1sLnN0YXJ0c1dpdGgocGF0dGVybiwgdGhpcy5wb3MpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0dGVybi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY3AgPSB0aGlzLmh0bWwuY2hhckNvZGVBdCh0aGlzLnBvcyArIGkpIHwgMHgyMDtcbiAgICAgICAgICAgIGlmIChjcCAhPT0gcGF0dGVybi5jaGFyQ29kZUF0KGkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBwZWVrKG9mZnNldCkge1xuICAgICAgICBjb25zdCBwb3MgPSB0aGlzLnBvcyArIG9mZnNldDtcbiAgICAgICAgaWYgKHBvcyA+PSB0aGlzLmh0bWwubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSAhdGhpcy5sYXN0Q2h1bmtXcml0dGVuO1xuICAgICAgICAgICAgcmV0dXJuICQuRU9GO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLmh0bWwuY2hhckNvZGVBdChwb3MpO1xuICAgICAgICByZXR1cm4gY29kZSA9PT0gJC5DQVJSSUFHRV9SRVRVUk4gPyAkLkxJTkVfRkVFRCA6IGNvZGU7XG4gICAgfVxuICAgIGFkdmFuY2UoKSB7XG4gICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgIC8vTk9URTogTEYgc2hvdWxkIGJlIGluIHRoZSBsYXN0IGNvbHVtbiBvZiB0aGUgbGluZVxuICAgICAgICBpZiAodGhpcy5pc0VvbCkge1xuICAgICAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5saW5lKys7XG4gICAgICAgICAgICB0aGlzLmxpbmVTdGFydFBvcyA9IHRoaXMucG9zO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBvcyA+PSB0aGlzLmh0bWwubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSAhdGhpcy5sYXN0Q2h1bmtXcml0dGVuO1xuICAgICAgICAgICAgcmV0dXJuICQuRU9GO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zKTtcbiAgICAgICAgLy9OT1RFOiBhbGwgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpIGNoYXJhY3RlcnMgbXVzdCBiZSBjb252ZXJ0ZWQgdG8gVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlcnNcbiAgICAgICAgaWYgKGNwID09PSAkLkNBUlJJQUdFX1JFVFVSTikge1xuICAgICAgICAgICAgdGhpcy5pc0VvbCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gJC5MSU5FX0ZFRUQ7XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiBhbnkgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlcnMgdGhhdCBpbW1lZGlhdGVseSBmb2xsb3cgYSBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgY2hhcmFjdGVyXG4gICAgICAgIC8vbXVzdCBiZSBpZ25vcmVkLlxuICAgICAgICBpZiAoY3AgPT09ICQuTElORV9GRUVEKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW9sID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNraXBOZXh0TmV3TGluZSkge1xuICAgICAgICAgICAgICAgIC8vIGBsaW5lYCB3aWxsIGJlIGJ1bXBlZCBhZ2FpbiBpbiB0aGUgcmVjdXJzaXZlIGNhbGwuXG4gICAgICAgICAgICAgICAgdGhpcy5saW5lLS07XG4gICAgICAgICAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRHYXAoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hZHZhbmNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGlzU3Vycm9nYXRlKGNwKSkge1xuICAgICAgICAgICAgY3AgPSB0aGlzLl9wcm9jZXNzU3Vycm9nYXRlKGNwKTtcbiAgICAgICAgfVxuICAgICAgICAvL09QVElNSVpBVElPTjogZmlyc3QgY2hlY2sgaWYgY29kZSBwb2ludCBpcyBpbiB0aGUgY29tbW9uIGFsbG93ZWRcbiAgICAgICAgLy9yYW5nZSAoQVNDSUkgYWxwaGFudW1lcmljLCB3aGl0ZXNwYWNlcywgYmlnIGNodW5rIG9mIEJNUClcbiAgICAgICAgLy9iZWZvcmUgZ29pbmcgaW50byBkZXRhaWxlZCBwZXJmb3JtYW5jZSBjb3N0IHZhbGlkYXRpb24uXG4gICAgICAgIGNvbnN0IGlzQ29tbW9uVmFsaWRSYW5nZSA9IHRoaXMuaGFuZGxlci5vblBhcnNlRXJyb3IgPT09IG51bGwgfHxcbiAgICAgICAgICAgIChjcCA+IDB4MWYgJiYgY3AgPCAweDdmKSB8fFxuICAgICAgICAgICAgY3AgPT09ICQuTElORV9GRUVEIHx8XG4gICAgICAgICAgICBjcCA9PT0gJC5DQVJSSUFHRV9SRVRVUk4gfHxcbiAgICAgICAgICAgIChjcCA+IDB4OWYgJiYgY3AgPCA2NDk3Nik7XG4gICAgICAgIGlmICghaXNDb21tb25WYWxpZFJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGVja0ZvclByb2JsZW1hdGljQ2hhcmFjdGVycyhjcCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNwO1xuICAgIH1cbiAgICBfY2hlY2tGb3JQcm9ibGVtYXRpY0NoYXJhY3RlcnMoY3ApIHtcbiAgICAgICAgaWYgKGlzQ29udHJvbENvZGVQb2ludChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuY29udHJvbENoYXJhY3RlckluSW5wdXRTdHJlYW0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVW5kZWZpbmVkQ29kZVBvaW50KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5ub25jaGFyYWN0ZXJJbklucHV0U3RyZWFtKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXRyZWF0KGNvdW50KSB7XG4gICAgICAgIHRoaXMucG9zIC09IGNvdW50O1xuICAgICAgICB3aGlsZSAodGhpcy5wb3MgPCB0aGlzLmxhc3RHYXBQb3MpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IHRoaXMuZ2FwU3RhY2sucG9wKCk7XG4gICAgICAgICAgICB0aGlzLnBvcy0tO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNFb2wgPSBmYWxzZTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcmVwcm9jZXNzb3IuanMubWFwIiwgImV4cG9ydCB2YXIgVG9rZW5UeXBlO1xuKGZ1bmN0aW9uIChUb2tlblR5cGUpIHtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiQ0hBUkFDVEVSXCJdID0gMF0gPSBcIkNIQVJBQ1RFUlwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJOVUxMX0NIQVJBQ1RFUlwiXSA9IDFdID0gXCJOVUxMX0NIQVJBQ1RFUlwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJXSElURVNQQUNFX0NIQVJBQ1RFUlwiXSA9IDJdID0gXCJXSElURVNQQUNFX0NIQVJBQ1RFUlwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJTVEFSVF9UQUdcIl0gPSAzXSA9IFwiU1RBUlRfVEFHXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkVORF9UQUdcIl0gPSA0XSA9IFwiRU5EX1RBR1wiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJDT01NRU5UXCJdID0gNV0gPSBcIkNPTU1FTlRcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiRE9DVFlQRVwiXSA9IDZdID0gXCJET0NUWVBFXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkVPRlwiXSA9IDddID0gXCJFT0ZcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiSElCRVJOQVRJT05cIl0gPSA4XSA9IFwiSElCRVJOQVRJT05cIjtcbn0pKFRva2VuVHlwZSA9IFRva2VuVHlwZSB8fCAoVG9rZW5UeXBlID0ge30pKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb2tlbkF0dHIodG9rZW4sIGF0dHJOYW1lKSB7XG4gICAgZm9yIChsZXQgaSA9IHRva2VuLmF0dHJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGlmICh0b2tlbi5hdHRyc1tpXS5uYW1lID09PSBhdHRyTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuLmF0dHJzW2ldLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dG9rZW4uanMubWFwIiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIi8qKiBBbGwgdmFsaWQgbmFtZXNwYWNlcyBpbiBIVE1MLiAqL1xuZXhwb3J0IHZhciBOUztcbihmdW5jdGlvbiAoTlMpIHtcbiAgICBOU1tcIkhUTUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjtcbiAgICBOU1tcIk1BVEhNTFwiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiO1xuICAgIE5TW1wiU1ZHXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO1xuICAgIE5TW1wiWExJTktcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIjtcbiAgICBOU1tcIlhNTFwiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCI7XG4gICAgTlNbXCJYTUxOU1wiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy9cIjtcbn0pKE5TID0gTlMgfHwgKE5TID0ge30pKTtcbmV4cG9ydCB2YXIgQVRUUlM7XG4oZnVuY3Rpb24gKEFUVFJTKSB7XG4gICAgQVRUUlNbXCJUWVBFXCJdID0gXCJ0eXBlXCI7XG4gICAgQVRUUlNbXCJBQ1RJT05cIl0gPSBcImFjdGlvblwiO1xuICAgIEFUVFJTW1wiRU5DT0RJTkdcIl0gPSBcImVuY29kaW5nXCI7XG4gICAgQVRUUlNbXCJQUk9NUFRcIl0gPSBcInByb21wdFwiO1xuICAgIEFUVFJTW1wiTkFNRVwiXSA9IFwibmFtZVwiO1xuICAgIEFUVFJTW1wiQ09MT1JcIl0gPSBcImNvbG9yXCI7XG4gICAgQVRUUlNbXCJGQUNFXCJdID0gXCJmYWNlXCI7XG4gICAgQVRUUlNbXCJTSVpFXCJdID0gXCJzaXplXCI7XG59KShBVFRSUyA9IEFUVFJTIHx8IChBVFRSUyA9IHt9KSk7XG4vKipcbiAqIFRoZSBtb2RlIG9mIHRoZSBkb2N1bWVudC5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtZG9jdW1lbnQtbGltaXRlZC1xdWlya3N9XG4gKi9cbmV4cG9ydCB2YXIgRE9DVU1FTlRfTU9ERTtcbihmdW5jdGlvbiAoRE9DVU1FTlRfTU9ERSkge1xuICAgIERPQ1VNRU5UX01PREVbXCJOT19RVUlSS1NcIl0gPSBcIm5vLXF1aXJrc1wiO1xuICAgIERPQ1VNRU5UX01PREVbXCJRVUlSS1NcIl0gPSBcInF1aXJrc1wiO1xuICAgIERPQ1VNRU5UX01PREVbXCJMSU1JVEVEX1FVSVJLU1wiXSA9IFwibGltaXRlZC1xdWlya3NcIjtcbn0pKERPQ1VNRU5UX01PREUgPSBET0NVTUVOVF9NT0RFIHx8IChET0NVTUVOVF9NT0RFID0ge30pKTtcbmV4cG9ydCB2YXIgVEFHX05BTUVTO1xuKGZ1bmN0aW9uIChUQUdfTkFNRVMpIHtcbiAgICBUQUdfTkFNRVNbXCJBXCJdID0gXCJhXCI7XG4gICAgVEFHX05BTUVTW1wiQUREUkVTU1wiXSA9IFwiYWRkcmVzc1wiO1xuICAgIFRBR19OQU1FU1tcIkFOTk9UQVRJT05fWE1MXCJdID0gXCJhbm5vdGF0aW9uLXhtbFwiO1xuICAgIFRBR19OQU1FU1tcIkFQUExFVFwiXSA9IFwiYXBwbGV0XCI7XG4gICAgVEFHX05BTUVTW1wiQVJFQVwiXSA9IFwiYXJlYVwiO1xuICAgIFRBR19OQU1FU1tcIkFSVElDTEVcIl0gPSBcImFydGljbGVcIjtcbiAgICBUQUdfTkFNRVNbXCJBU0lERVwiXSA9IFwiYXNpZGVcIjtcbiAgICBUQUdfTkFNRVNbXCJCXCJdID0gXCJiXCI7XG4gICAgVEFHX05BTUVTW1wiQkFTRVwiXSA9IFwiYmFzZVwiO1xuICAgIFRBR19OQU1FU1tcIkJBU0VGT05UXCJdID0gXCJiYXNlZm9udFwiO1xuICAgIFRBR19OQU1FU1tcIkJHU09VTkRcIl0gPSBcImJnc291bmRcIjtcbiAgICBUQUdfTkFNRVNbXCJCSUdcIl0gPSBcImJpZ1wiO1xuICAgIFRBR19OQU1FU1tcIkJMT0NLUVVPVEVcIl0gPSBcImJsb2NrcXVvdGVcIjtcbiAgICBUQUdfTkFNRVNbXCJCT0RZXCJdID0gXCJib2R5XCI7XG4gICAgVEFHX05BTUVTW1wiQlJcIl0gPSBcImJyXCI7XG4gICAgVEFHX05BTUVTW1wiQlVUVE9OXCJdID0gXCJidXR0b25cIjtcbiAgICBUQUdfTkFNRVNbXCJDQVBUSU9OXCJdID0gXCJjYXB0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiQ0VOVEVSXCJdID0gXCJjZW50ZXJcIjtcbiAgICBUQUdfTkFNRVNbXCJDT0RFXCJdID0gXCJjb2RlXCI7XG4gICAgVEFHX05BTUVTW1wiQ09MXCJdID0gXCJjb2xcIjtcbiAgICBUQUdfTkFNRVNbXCJDT0xHUk9VUFwiXSA9IFwiY29sZ3JvdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJERFwiXSA9IFwiZGRcIjtcbiAgICBUQUdfTkFNRVNbXCJERVNDXCJdID0gXCJkZXNjXCI7XG4gICAgVEFHX05BTUVTW1wiREVUQUlMU1wiXSA9IFwiZGV0YWlsc1wiO1xuICAgIFRBR19OQU1FU1tcIkRJQUxPR1wiXSA9IFwiZGlhbG9nXCI7XG4gICAgVEFHX05BTUVTW1wiRElSXCJdID0gXCJkaXJcIjtcbiAgICBUQUdfTkFNRVNbXCJESVZcIl0gPSBcImRpdlwiO1xuICAgIFRBR19OQU1FU1tcIkRMXCJdID0gXCJkbFwiO1xuICAgIFRBR19OQU1FU1tcIkRUXCJdID0gXCJkdFwiO1xuICAgIFRBR19OQU1FU1tcIkVNXCJdID0gXCJlbVwiO1xuICAgIFRBR19OQU1FU1tcIkVNQkVEXCJdID0gXCJlbWJlZFwiO1xuICAgIFRBR19OQU1FU1tcIkZJRUxEU0VUXCJdID0gXCJmaWVsZHNldFwiO1xuICAgIFRBR19OQU1FU1tcIkZJR0NBUFRJT05cIl0gPSBcImZpZ2NhcHRpb25cIjtcbiAgICBUQUdfTkFNRVNbXCJGSUdVUkVcIl0gPSBcImZpZ3VyZVwiO1xuICAgIFRBR19OQU1FU1tcIkZPTlRcIl0gPSBcImZvbnRcIjtcbiAgICBUQUdfTkFNRVNbXCJGT09URVJcIl0gPSBcImZvb3RlclwiO1xuICAgIFRBR19OQU1FU1tcIkZPUkVJR05fT0JKRUNUXCJdID0gXCJmb3JlaWduT2JqZWN0XCI7XG4gICAgVEFHX05BTUVTW1wiRk9STVwiXSA9IFwiZm9ybVwiO1xuICAgIFRBR19OQU1FU1tcIkZSQU1FXCJdID0gXCJmcmFtZVwiO1xuICAgIFRBR19OQU1FU1tcIkZSQU1FU0VUXCJdID0gXCJmcmFtZXNldFwiO1xuICAgIFRBR19OQU1FU1tcIkgxXCJdID0gXCJoMVwiO1xuICAgIFRBR19OQU1FU1tcIkgyXCJdID0gXCJoMlwiO1xuICAgIFRBR19OQU1FU1tcIkgzXCJdID0gXCJoM1wiO1xuICAgIFRBR19OQU1FU1tcIkg0XCJdID0gXCJoNFwiO1xuICAgIFRBR19OQU1FU1tcIkg1XCJdID0gXCJoNVwiO1xuICAgIFRBR19OQU1FU1tcIkg2XCJdID0gXCJoNlwiO1xuICAgIFRBR19OQU1FU1tcIkhFQURcIl0gPSBcImhlYWRcIjtcbiAgICBUQUdfTkFNRVNbXCJIRUFERVJcIl0gPSBcImhlYWRlclwiO1xuICAgIFRBR19OQU1FU1tcIkhHUk9VUFwiXSA9IFwiaGdyb3VwXCI7XG4gICAgVEFHX05BTUVTW1wiSFJcIl0gPSBcImhyXCI7XG4gICAgVEFHX05BTUVTW1wiSFRNTFwiXSA9IFwiaHRtbFwiO1xuICAgIFRBR19OQU1FU1tcIklcIl0gPSBcImlcIjtcbiAgICBUQUdfTkFNRVNbXCJJTUdcIl0gPSBcImltZ1wiO1xuICAgIFRBR19OQU1FU1tcIklNQUdFXCJdID0gXCJpbWFnZVwiO1xuICAgIFRBR19OQU1FU1tcIklOUFVUXCJdID0gXCJpbnB1dFwiO1xuICAgIFRBR19OQU1FU1tcIklGUkFNRVwiXSA9IFwiaWZyYW1lXCI7XG4gICAgVEFHX05BTUVTW1wiS0VZR0VOXCJdID0gXCJrZXlnZW5cIjtcbiAgICBUQUdfTkFNRVNbXCJMQUJFTFwiXSA9IFwibGFiZWxcIjtcbiAgICBUQUdfTkFNRVNbXCJMSVwiXSA9IFwibGlcIjtcbiAgICBUQUdfTkFNRVNbXCJMSU5LXCJdID0gXCJsaW5rXCI7XG4gICAgVEFHX05BTUVTW1wiTElTVElOR1wiXSA9IFwibGlzdGluZ1wiO1xuICAgIFRBR19OQU1FU1tcIk1BSU5cIl0gPSBcIm1haW5cIjtcbiAgICBUQUdfTkFNRVNbXCJNQUxJR05NQVJLXCJdID0gXCJtYWxpZ25tYXJrXCI7XG4gICAgVEFHX05BTUVTW1wiTUFSUVVFRVwiXSA9IFwibWFycXVlZVwiO1xuICAgIFRBR19OQU1FU1tcIk1BVEhcIl0gPSBcIm1hdGhcIjtcbiAgICBUQUdfTkFNRVNbXCJNRU5VXCJdID0gXCJtZW51XCI7XG4gICAgVEFHX05BTUVTW1wiTUVUQVwiXSA9IFwibWV0YVwiO1xuICAgIFRBR19OQU1FU1tcIk1HTFlQSFwiXSA9IFwibWdseXBoXCI7XG4gICAgVEFHX05BTUVTW1wiTUlcIl0gPSBcIm1pXCI7XG4gICAgVEFHX05BTUVTW1wiTU9cIl0gPSBcIm1vXCI7XG4gICAgVEFHX05BTUVTW1wiTU5cIl0gPSBcIm1uXCI7XG4gICAgVEFHX05BTUVTW1wiTVNcIl0gPSBcIm1zXCI7XG4gICAgVEFHX05BTUVTW1wiTVRFWFRcIl0gPSBcIm10ZXh0XCI7XG4gICAgVEFHX05BTUVTW1wiTkFWXCJdID0gXCJuYXZcIjtcbiAgICBUQUdfTkFNRVNbXCJOT0JSXCJdID0gXCJub2JyXCI7XG4gICAgVEFHX05BTUVTW1wiTk9GUkFNRVNcIl0gPSBcIm5vZnJhbWVzXCI7XG4gICAgVEFHX05BTUVTW1wiTk9FTUJFRFwiXSA9IFwibm9lbWJlZFwiO1xuICAgIFRBR19OQU1FU1tcIk5PU0NSSVBUXCJdID0gXCJub3NjcmlwdFwiO1xuICAgIFRBR19OQU1FU1tcIk9CSkVDVFwiXSA9IFwib2JqZWN0XCI7XG4gICAgVEFHX05BTUVTW1wiT0xcIl0gPSBcIm9sXCI7XG4gICAgVEFHX05BTUVTW1wiT1BUR1JPVVBcIl0gPSBcIm9wdGdyb3VwXCI7XG4gICAgVEFHX05BTUVTW1wiT1BUSU9OXCJdID0gXCJvcHRpb25cIjtcbiAgICBUQUdfTkFNRVNbXCJQXCJdID0gXCJwXCI7XG4gICAgVEFHX05BTUVTW1wiUEFSQU1cIl0gPSBcInBhcmFtXCI7XG4gICAgVEFHX05BTUVTW1wiUExBSU5URVhUXCJdID0gXCJwbGFpbnRleHRcIjtcbiAgICBUQUdfTkFNRVNbXCJQUkVcIl0gPSBcInByZVwiO1xuICAgIFRBR19OQU1FU1tcIlJCXCJdID0gXCJyYlwiO1xuICAgIFRBR19OQU1FU1tcIlJQXCJdID0gXCJycFwiO1xuICAgIFRBR19OQU1FU1tcIlJUXCJdID0gXCJydFwiO1xuICAgIFRBR19OQU1FU1tcIlJUQ1wiXSA9IFwicnRjXCI7XG4gICAgVEFHX05BTUVTW1wiUlVCWVwiXSA9IFwicnVieVwiO1xuICAgIFRBR19OQU1FU1tcIlNcIl0gPSBcInNcIjtcbiAgICBUQUdfTkFNRVNbXCJTQ1JJUFRcIl0gPSBcInNjcmlwdFwiO1xuICAgIFRBR19OQU1FU1tcIlNFQ1RJT05cIl0gPSBcInNlY3Rpb25cIjtcbiAgICBUQUdfTkFNRVNbXCJTRUxFQ1RcIl0gPSBcInNlbGVjdFwiO1xuICAgIFRBR19OQU1FU1tcIlNPVVJDRVwiXSA9IFwic291cmNlXCI7XG4gICAgVEFHX05BTUVTW1wiU01BTExcIl0gPSBcInNtYWxsXCI7XG4gICAgVEFHX05BTUVTW1wiU1BBTlwiXSA9IFwic3BhblwiO1xuICAgIFRBR19OQU1FU1tcIlNUUklLRVwiXSA9IFwic3RyaWtlXCI7XG4gICAgVEFHX05BTUVTW1wiU1RST05HXCJdID0gXCJzdHJvbmdcIjtcbiAgICBUQUdfTkFNRVNbXCJTVFlMRVwiXSA9IFwic3R5bGVcIjtcbiAgICBUQUdfTkFNRVNbXCJTVUJcIl0gPSBcInN1YlwiO1xuICAgIFRBR19OQU1FU1tcIlNVTU1BUllcIl0gPSBcInN1bW1hcnlcIjtcbiAgICBUQUdfTkFNRVNbXCJTVVBcIl0gPSBcInN1cFwiO1xuICAgIFRBR19OQU1FU1tcIlRBQkxFXCJdID0gXCJ0YWJsZVwiO1xuICAgIFRBR19OQU1FU1tcIlRCT0RZXCJdID0gXCJ0Ym9keVwiO1xuICAgIFRBR19OQU1FU1tcIlRFTVBMQVRFXCJdID0gXCJ0ZW1wbGF0ZVwiO1xuICAgIFRBR19OQU1FU1tcIlRFWFRBUkVBXCJdID0gXCJ0ZXh0YXJlYVwiO1xuICAgIFRBR19OQU1FU1tcIlRGT09UXCJdID0gXCJ0Zm9vdFwiO1xuICAgIFRBR19OQU1FU1tcIlREXCJdID0gXCJ0ZFwiO1xuICAgIFRBR19OQU1FU1tcIlRIXCJdID0gXCJ0aFwiO1xuICAgIFRBR19OQU1FU1tcIlRIRUFEXCJdID0gXCJ0aGVhZFwiO1xuICAgIFRBR19OQU1FU1tcIlRJVExFXCJdID0gXCJ0aXRsZVwiO1xuICAgIFRBR19OQU1FU1tcIlRSXCJdID0gXCJ0clwiO1xuICAgIFRBR19OQU1FU1tcIlRSQUNLXCJdID0gXCJ0cmFja1wiO1xuICAgIFRBR19OQU1FU1tcIlRUXCJdID0gXCJ0dFwiO1xuICAgIFRBR19OQU1FU1tcIlVcIl0gPSBcInVcIjtcbiAgICBUQUdfTkFNRVNbXCJVTFwiXSA9IFwidWxcIjtcbiAgICBUQUdfTkFNRVNbXCJTVkdcIl0gPSBcInN2Z1wiO1xuICAgIFRBR19OQU1FU1tcIlZBUlwiXSA9IFwidmFyXCI7XG4gICAgVEFHX05BTUVTW1wiV0JSXCJdID0gXCJ3YnJcIjtcbiAgICBUQUdfTkFNRVNbXCJYTVBcIl0gPSBcInhtcFwiO1xufSkoVEFHX05BTUVTID0gVEFHX05BTUVTIHx8IChUQUdfTkFNRVMgPSB7fSkpO1xuLyoqXG4gKiBUYWcgSURzIGFyZSBudW1lcmljIElEcyBmb3Iga25vd24gdGFnIG5hbWVzLlxuICpcbiAqIFdlIHVzZSB0YWcgSURzIHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9mIHRhZyBuYW1lIGNvbXBhcmlzb25zLlxuICovXG5leHBvcnQgdmFyIFRBR19JRDtcbihmdW5jdGlvbiAoVEFHX0lEKSB7XG4gICAgVEFHX0lEW1RBR19JRFtcIlVOS05PV05cIl0gPSAwXSA9IFwiVU5LTk9XTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBXCJdID0gMV0gPSBcIkFcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQUREUkVTU1wiXSA9IDJdID0gXCJBRERSRVNTXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFOTk9UQVRJT05fWE1MXCJdID0gM10gPSBcIkFOTk9UQVRJT05fWE1MXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFQUExFVFwiXSA9IDRdID0gXCJBUFBMRVRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVJFQVwiXSA9IDVdID0gXCJBUkVBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFSVElDTEVcIl0gPSA2XSA9IFwiQVJUSUNMRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBU0lERVwiXSA9IDddID0gXCJBU0lERVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCXCJdID0gOF0gPSBcIkJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkFTRVwiXSA9IDldID0gXCJCQVNFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJBU0VGT05UXCJdID0gMTBdID0gXCJCQVNFRk9OVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCR1NPVU5EXCJdID0gMTFdID0gXCJCR1NPVU5EXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJJR1wiXSA9IDEyXSA9IFwiQklHXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJMT0NLUVVPVEVcIl0gPSAxM10gPSBcIkJMT0NLUVVPVEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQk9EWVwiXSA9IDE0XSA9IFwiQk9EWVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCUlwiXSA9IDE1XSA9IFwiQlJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlVUVE9OXCJdID0gMTZdID0gXCJCVVRUT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ0FQVElPTlwiXSA9IDE3XSA9IFwiQ0FQVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDRU5URVJcIl0gPSAxOF0gPSBcIkNFTlRFUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0RFXCJdID0gMTldID0gXCJDT0RFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNPTFwiXSA9IDIwXSA9IFwiQ09MXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNPTEdST1VQXCJdID0gMjFdID0gXCJDT0xHUk9VUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJERFwiXSA9IDIyXSA9IFwiRERcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiREVTQ1wiXSA9IDIzXSA9IFwiREVTQ1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJERVRBSUxTXCJdID0gMjRdID0gXCJERVRBSUxTXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRJQUxPR1wiXSA9IDI1XSA9IFwiRElBTE9HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRJUlwiXSA9IDI2XSA9IFwiRElSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRJVlwiXSA9IDI3XSA9IFwiRElWXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRMXCJdID0gMjhdID0gXCJETFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJEVFwiXSA9IDI5XSA9IFwiRFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRU1cIl0gPSAzMF0gPSBcIkVNXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkVNQkVEXCJdID0gMzFdID0gXCJFTUJFRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGSUVMRFNFVFwiXSA9IDMyXSA9IFwiRklFTERTRVRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklHQ0FQVElPTlwiXSA9IDMzXSA9IFwiRklHQ0FQVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGSUdVUkVcIl0gPSAzNF0gPSBcIkZJR1VSRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT05UXCJdID0gMzVdID0gXCJGT05UXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZPT1RFUlwiXSA9IDM2XSA9IFwiRk9PVEVSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZPUkVJR05fT0JKRUNUXCJdID0gMzddID0gXCJGT1JFSUdOX09CSkVDVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT1JNXCJdID0gMzhdID0gXCJGT1JNXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZSQU1FXCJdID0gMzldID0gXCJGUkFNRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGUkFNRVNFVFwiXSA9IDQwXSA9IFwiRlJBTUVTRVRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDFcIl0gPSA0MV0gPSBcIkgxXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkgyXCJdID0gNDJdID0gXCJIMlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIM1wiXSA9IDQzXSA9IFwiSDNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDRcIl0gPSA0NF0gPSBcIkg0XCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkg1XCJdID0gNDVdID0gXCJINVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJINlwiXSA9IDQ2XSA9IFwiSDZcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEVBRFwiXSA9IDQ3XSA9IFwiSEVBRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIRUFERVJcIl0gPSA0OF0gPSBcIkhFQURFUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIR1JPVVBcIl0gPSA0OV0gPSBcIkhHUk9VUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIUlwiXSA9IDUwXSA9IFwiSFJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSFRNTFwiXSA9IDUxXSA9IFwiSFRNTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJXCJdID0gNTJdID0gXCJJXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklNR1wiXSA9IDUzXSA9IFwiSU1HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklNQUdFXCJdID0gNTRdID0gXCJJTUFHRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTlBVVFwiXSA9IDU1XSA9IFwiSU5QVVRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSUZSQU1FXCJdID0gNTZdID0gXCJJRlJBTUVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiS0VZR0VOXCJdID0gNTddID0gXCJLRVlHRU5cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTEFCRUxcIl0gPSA1OF0gPSBcIkxBQkVMXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkxJXCJdID0gNTldID0gXCJMSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSU5LXCJdID0gNjBdID0gXCJMSU5LXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkxJU1RJTkdcIl0gPSA2MV0gPSBcIkxJU1RJTkdcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUFJTlwiXSA9IDYyXSA9IFwiTUFJTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQUxJR05NQVJLXCJdID0gNjNdID0gXCJNQUxJR05NQVJLXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BUlFVRUVcIl0gPSA2NF0gPSBcIk1BUlFVRUVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUFUSFwiXSA9IDY1XSA9IFwiTUFUSFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNRU5VXCJdID0gNjZdID0gXCJNRU5VXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1FVEFcIl0gPSA2N10gPSBcIk1FVEFcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUdMWVBIXCJdID0gNjhdID0gXCJNR0xZUEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUlcIl0gPSA2OV0gPSBcIk1JXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1PXCJdID0gNzBdID0gXCJNT1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNTlwiXSA9IDcxXSA9IFwiTU5cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTVNcIl0gPSA3Ml0gPSBcIk1TXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1URVhUXCJdID0gNzNdID0gXCJNVEVYVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOQVZcIl0gPSA3NF0gPSBcIk5BVlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT0JSXCJdID0gNzVdID0gXCJOT0JSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk5PRlJBTUVTXCJdID0gNzZdID0gXCJOT0ZSQU1FU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT0VNQkVEXCJdID0gNzddID0gXCJOT0VNQkVEXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk5PU0NSSVBUXCJdID0gNzhdID0gXCJOT1NDUklQVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJPQkpFQ1RcIl0gPSA3OV0gPSBcIk9CSkVDVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJPTFwiXSA9IDgwXSA9IFwiT0xcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT1BUR1JPVVBcIl0gPSA4MV0gPSBcIk9QVEdST1VQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9QVElPTlwiXSA9IDgyXSA9IFwiT1BUSU9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlBcIl0gPSA4M10gPSBcIlBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUEFSQU1cIl0gPSA4NF0gPSBcIlBBUkFNXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlBMQUlOVEVYVFwiXSA9IDg1XSA9IFwiUExBSU5URVhUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlBSRVwiXSA9IDg2XSA9IFwiUFJFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJCXCJdID0gODddID0gXCJSQlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSUFwiXSA9IDg4XSA9IFwiUlBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlRcIl0gPSA4OV0gPSBcIlJUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJUQ1wiXSA9IDkwXSA9IFwiUlRDXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJVQllcIl0gPSA5MV0gPSBcIlJVQllcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1wiXSA9IDkyXSA9IFwiU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTQ1JJUFRcIl0gPSA5M10gPSBcIlNDUklQVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTRUNUSU9OXCJdID0gOTRdID0gXCJTRUNUSU9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNFTEVDVFwiXSA9IDk1XSA9IFwiU0VMRUNUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNPVVJDRVwiXSA9IDk2XSA9IFwiU09VUkNFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNNQUxMXCJdID0gOTddID0gXCJTTUFMTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTUEFOXCJdID0gOThdID0gXCJTUEFOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNUUklLRVwiXSA9IDk5XSA9IFwiU1RSSUtFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNUUk9OR1wiXSA9IDEwMF0gPSBcIlNUUk9OR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFlMRVwiXSA9IDEwMV0gPSBcIlNUWUxFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNVQlwiXSA9IDEwMl0gPSBcIlNVQlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVU1NQVJZXCJdID0gMTAzXSA9IFwiU1VNTUFSWVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVVBcIl0gPSAxMDRdID0gXCJTVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEFCTEVcIl0gPSAxMDVdID0gXCJUQUJMRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUQk9EWVwiXSA9IDEwNl0gPSBcIlRCT0RZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRFTVBMQVRFXCJdID0gMTA3XSA9IFwiVEVNUExBVEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEVYVEFSRUFcIl0gPSAxMDhdID0gXCJURVhUQVJFQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURk9PVFwiXSA9IDEwOV0gPSBcIlRGT09UXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlREXCJdID0gMTEwXSA9IFwiVERcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEhcIl0gPSAxMTFdID0gXCJUSFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUSEVBRFwiXSA9IDExMl0gPSBcIlRIRUFEXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRJVExFXCJdID0gMTEzXSA9IFwiVElUTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVFJcIl0gPSAxMTRdID0gXCJUUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUUkFDS1wiXSA9IDExNV0gPSBcIlRSQUNLXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRUXCJdID0gMTE2XSA9IFwiVFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVVwiXSA9IDExN10gPSBcIlVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVUxcIl0gPSAxMThdID0gXCJVTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVkdcIl0gPSAxMTldID0gXCJTVkdcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVkFSXCJdID0gMTIwXSA9IFwiVkFSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIldCUlwiXSA9IDEyMV0gPSBcIldCUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJYTVBcIl0gPSAxMjJdID0gXCJYTVBcIjtcbn0pKFRBR19JRCA9IFRBR19JRCB8fCAoVEFHX0lEID0ge30pKTtcbmNvbnN0IFRBR19OQU1FX1RPX0lEID0gbmV3IE1hcChbXG4gICAgW1RBR19OQU1FUy5BLCBUQUdfSUQuQV0sXG4gICAgW1RBR19OQU1FUy5BRERSRVNTLCBUQUdfSUQuQUREUkVTU10sXG4gICAgW1RBR19OQU1FUy5BTk5PVEFUSU9OX1hNTCwgVEFHX0lELkFOTk9UQVRJT05fWE1MXSxcbiAgICBbVEFHX05BTUVTLkFQUExFVCwgVEFHX0lELkFQUExFVF0sXG4gICAgW1RBR19OQU1FUy5BUkVBLCBUQUdfSUQuQVJFQV0sXG4gICAgW1RBR19OQU1FUy5BUlRJQ0xFLCBUQUdfSUQuQVJUSUNMRV0sXG4gICAgW1RBR19OQU1FUy5BU0lERSwgVEFHX0lELkFTSURFXSxcbiAgICBbVEFHX05BTUVTLkIsIFRBR19JRC5CXSxcbiAgICBbVEFHX05BTUVTLkJBU0UsIFRBR19JRC5CQVNFXSxcbiAgICBbVEFHX05BTUVTLkJBU0VGT05ULCBUQUdfSUQuQkFTRUZPTlRdLFxuICAgIFtUQUdfTkFNRVMuQkdTT1VORCwgVEFHX0lELkJHU09VTkRdLFxuICAgIFtUQUdfTkFNRVMuQklHLCBUQUdfSUQuQklHXSxcbiAgICBbVEFHX05BTUVTLkJMT0NLUVVPVEUsIFRBR19JRC5CTE9DS1FVT1RFXSxcbiAgICBbVEFHX05BTUVTLkJPRFksIFRBR19JRC5CT0RZXSxcbiAgICBbVEFHX05BTUVTLkJSLCBUQUdfSUQuQlJdLFxuICAgIFtUQUdfTkFNRVMuQlVUVE9OLCBUQUdfSUQuQlVUVE9OXSxcbiAgICBbVEFHX05BTUVTLkNBUFRJT04sIFRBR19JRC5DQVBUSU9OXSxcbiAgICBbVEFHX05BTUVTLkNFTlRFUiwgVEFHX0lELkNFTlRFUl0sXG4gICAgW1RBR19OQU1FUy5DT0RFLCBUQUdfSUQuQ09ERV0sXG4gICAgW1RBR19OQU1FUy5DT0wsIFRBR19JRC5DT0xdLFxuICAgIFtUQUdfTkFNRVMuQ09MR1JPVVAsIFRBR19JRC5DT0xHUk9VUF0sXG4gICAgW1RBR19OQU1FUy5ERCwgVEFHX0lELkREXSxcbiAgICBbVEFHX05BTUVTLkRFU0MsIFRBR19JRC5ERVNDXSxcbiAgICBbVEFHX05BTUVTLkRFVEFJTFMsIFRBR19JRC5ERVRBSUxTXSxcbiAgICBbVEFHX05BTUVTLkRJQUxPRywgVEFHX0lELkRJQUxPR10sXG4gICAgW1RBR19OQU1FUy5ESVIsIFRBR19JRC5ESVJdLFxuICAgIFtUQUdfTkFNRVMuRElWLCBUQUdfSUQuRElWXSxcbiAgICBbVEFHX05BTUVTLkRMLCBUQUdfSUQuRExdLFxuICAgIFtUQUdfTkFNRVMuRFQsIFRBR19JRC5EVF0sXG4gICAgW1RBR19OQU1FUy5FTSwgVEFHX0lELkVNXSxcbiAgICBbVEFHX05BTUVTLkVNQkVELCBUQUdfSUQuRU1CRURdLFxuICAgIFtUQUdfTkFNRVMuRklFTERTRVQsIFRBR19JRC5GSUVMRFNFVF0sXG4gICAgW1RBR19OQU1FUy5GSUdDQVBUSU9OLCBUQUdfSUQuRklHQ0FQVElPTl0sXG4gICAgW1RBR19OQU1FUy5GSUdVUkUsIFRBR19JRC5GSUdVUkVdLFxuICAgIFtUQUdfTkFNRVMuRk9OVCwgVEFHX0lELkZPTlRdLFxuICAgIFtUQUdfTkFNRVMuRk9PVEVSLCBUQUdfSUQuRk9PVEVSXSxcbiAgICBbVEFHX05BTUVTLkZPUkVJR05fT0JKRUNULCBUQUdfSUQuRk9SRUlHTl9PQkpFQ1RdLFxuICAgIFtUQUdfTkFNRVMuRk9STSwgVEFHX0lELkZPUk1dLFxuICAgIFtUQUdfTkFNRVMuRlJBTUUsIFRBR19JRC5GUkFNRV0sXG4gICAgW1RBR19OQU1FUy5GUkFNRVNFVCwgVEFHX0lELkZSQU1FU0VUXSxcbiAgICBbVEFHX05BTUVTLkgxLCBUQUdfSUQuSDFdLFxuICAgIFtUQUdfTkFNRVMuSDIsIFRBR19JRC5IMl0sXG4gICAgW1RBR19OQU1FUy5IMywgVEFHX0lELkgzXSxcbiAgICBbVEFHX05BTUVTLkg0LCBUQUdfSUQuSDRdLFxuICAgIFtUQUdfTkFNRVMuSDUsIFRBR19JRC5INV0sXG4gICAgW1RBR19OQU1FUy5INiwgVEFHX0lELkg2XSxcbiAgICBbVEFHX05BTUVTLkhFQUQsIFRBR19JRC5IRUFEXSxcbiAgICBbVEFHX05BTUVTLkhFQURFUiwgVEFHX0lELkhFQURFUl0sXG4gICAgW1RBR19OQU1FUy5IR1JPVVAsIFRBR19JRC5IR1JPVVBdLFxuICAgIFtUQUdfTkFNRVMuSFIsIFRBR19JRC5IUl0sXG4gICAgW1RBR19OQU1FUy5IVE1MLCBUQUdfSUQuSFRNTF0sXG4gICAgW1RBR19OQU1FUy5JLCBUQUdfSUQuSV0sXG4gICAgW1RBR19OQU1FUy5JTUcsIFRBR19JRC5JTUddLFxuICAgIFtUQUdfTkFNRVMuSU1BR0UsIFRBR19JRC5JTUFHRV0sXG4gICAgW1RBR19OQU1FUy5JTlBVVCwgVEFHX0lELklOUFVUXSxcbiAgICBbVEFHX05BTUVTLklGUkFNRSwgVEFHX0lELklGUkFNRV0sXG4gICAgW1RBR19OQU1FUy5LRVlHRU4sIFRBR19JRC5LRVlHRU5dLFxuICAgIFtUQUdfTkFNRVMuTEFCRUwsIFRBR19JRC5MQUJFTF0sXG4gICAgW1RBR19OQU1FUy5MSSwgVEFHX0lELkxJXSxcbiAgICBbVEFHX05BTUVTLkxJTkssIFRBR19JRC5MSU5LXSxcbiAgICBbVEFHX05BTUVTLkxJU1RJTkcsIFRBR19JRC5MSVNUSU5HXSxcbiAgICBbVEFHX05BTUVTLk1BSU4sIFRBR19JRC5NQUlOXSxcbiAgICBbVEFHX05BTUVTLk1BTElHTk1BUkssIFRBR19JRC5NQUxJR05NQVJLXSxcbiAgICBbVEFHX05BTUVTLk1BUlFVRUUsIFRBR19JRC5NQVJRVUVFXSxcbiAgICBbVEFHX05BTUVTLk1BVEgsIFRBR19JRC5NQVRIXSxcbiAgICBbVEFHX05BTUVTLk1FTlUsIFRBR19JRC5NRU5VXSxcbiAgICBbVEFHX05BTUVTLk1FVEEsIFRBR19JRC5NRVRBXSxcbiAgICBbVEFHX05BTUVTLk1HTFlQSCwgVEFHX0lELk1HTFlQSF0sXG4gICAgW1RBR19OQU1FUy5NSSwgVEFHX0lELk1JXSxcbiAgICBbVEFHX05BTUVTLk1PLCBUQUdfSUQuTU9dLFxuICAgIFtUQUdfTkFNRVMuTU4sIFRBR19JRC5NTl0sXG4gICAgW1RBR19OQU1FUy5NUywgVEFHX0lELk1TXSxcbiAgICBbVEFHX05BTUVTLk1URVhULCBUQUdfSUQuTVRFWFRdLFxuICAgIFtUQUdfTkFNRVMuTkFWLCBUQUdfSUQuTkFWXSxcbiAgICBbVEFHX05BTUVTLk5PQlIsIFRBR19JRC5OT0JSXSxcbiAgICBbVEFHX05BTUVTLk5PRlJBTUVTLCBUQUdfSUQuTk9GUkFNRVNdLFxuICAgIFtUQUdfTkFNRVMuTk9FTUJFRCwgVEFHX0lELk5PRU1CRURdLFxuICAgIFtUQUdfTkFNRVMuTk9TQ1JJUFQsIFRBR19JRC5OT1NDUklQVF0sXG4gICAgW1RBR19OQU1FUy5PQkpFQ1QsIFRBR19JRC5PQkpFQ1RdLFxuICAgIFtUQUdfTkFNRVMuT0wsIFRBR19JRC5PTF0sXG4gICAgW1RBR19OQU1FUy5PUFRHUk9VUCwgVEFHX0lELk9QVEdST1VQXSxcbiAgICBbVEFHX05BTUVTLk9QVElPTiwgVEFHX0lELk9QVElPTl0sXG4gICAgW1RBR19OQU1FUy5QLCBUQUdfSUQuUF0sXG4gICAgW1RBR19OQU1FUy5QQVJBTSwgVEFHX0lELlBBUkFNXSxcbiAgICBbVEFHX05BTUVTLlBMQUlOVEVYVCwgVEFHX0lELlBMQUlOVEVYVF0sXG4gICAgW1RBR19OQU1FUy5QUkUsIFRBR19JRC5QUkVdLFxuICAgIFtUQUdfTkFNRVMuUkIsIFRBR19JRC5SQl0sXG4gICAgW1RBR19OQU1FUy5SUCwgVEFHX0lELlJQXSxcbiAgICBbVEFHX05BTUVTLlJULCBUQUdfSUQuUlRdLFxuICAgIFtUQUdfTkFNRVMuUlRDLCBUQUdfSUQuUlRDXSxcbiAgICBbVEFHX05BTUVTLlJVQlksIFRBR19JRC5SVUJZXSxcbiAgICBbVEFHX05BTUVTLlMsIFRBR19JRC5TXSxcbiAgICBbVEFHX05BTUVTLlNDUklQVCwgVEFHX0lELlNDUklQVF0sXG4gICAgW1RBR19OQU1FUy5TRUNUSU9OLCBUQUdfSUQuU0VDVElPTl0sXG4gICAgW1RBR19OQU1FUy5TRUxFQ1QsIFRBR19JRC5TRUxFQ1RdLFxuICAgIFtUQUdfTkFNRVMuU09VUkNFLCBUQUdfSUQuU09VUkNFXSxcbiAgICBbVEFHX05BTUVTLlNNQUxMLCBUQUdfSUQuU01BTExdLFxuICAgIFtUQUdfTkFNRVMuU1BBTiwgVEFHX0lELlNQQU5dLFxuICAgIFtUQUdfTkFNRVMuU1RSSUtFLCBUQUdfSUQuU1RSSUtFXSxcbiAgICBbVEFHX05BTUVTLlNUUk9ORywgVEFHX0lELlNUUk9OR10sXG4gICAgW1RBR19OQU1FUy5TVFlMRSwgVEFHX0lELlNUWUxFXSxcbiAgICBbVEFHX05BTUVTLlNVQiwgVEFHX0lELlNVQl0sXG4gICAgW1RBR19OQU1FUy5TVU1NQVJZLCBUQUdfSUQuU1VNTUFSWV0sXG4gICAgW1RBR19OQU1FUy5TVVAsIFRBR19JRC5TVVBdLFxuICAgIFtUQUdfTkFNRVMuVEFCTEUsIFRBR19JRC5UQUJMRV0sXG4gICAgW1RBR19OQU1FUy5UQk9EWSwgVEFHX0lELlRCT0RZXSxcbiAgICBbVEFHX05BTUVTLlRFTVBMQVRFLCBUQUdfSUQuVEVNUExBVEVdLFxuICAgIFtUQUdfTkFNRVMuVEVYVEFSRUEsIFRBR19JRC5URVhUQVJFQV0sXG4gICAgW1RBR19OQU1FUy5URk9PVCwgVEFHX0lELlRGT09UXSxcbiAgICBbVEFHX05BTUVTLlRELCBUQUdfSUQuVERdLFxuICAgIFtUQUdfTkFNRVMuVEgsIFRBR19JRC5USF0sXG4gICAgW1RBR19OQU1FUy5USEVBRCwgVEFHX0lELlRIRUFEXSxcbiAgICBbVEFHX05BTUVTLlRJVExFLCBUQUdfSUQuVElUTEVdLFxuICAgIFtUQUdfTkFNRVMuVFIsIFRBR19JRC5UUl0sXG4gICAgW1RBR19OQU1FUy5UUkFDSywgVEFHX0lELlRSQUNLXSxcbiAgICBbVEFHX05BTUVTLlRULCBUQUdfSUQuVFRdLFxuICAgIFtUQUdfTkFNRVMuVSwgVEFHX0lELlVdLFxuICAgIFtUQUdfTkFNRVMuVUwsIFRBR19JRC5VTF0sXG4gICAgW1RBR19OQU1FUy5TVkcsIFRBR19JRC5TVkddLFxuICAgIFtUQUdfTkFNRVMuVkFSLCBUQUdfSUQuVkFSXSxcbiAgICBbVEFHX05BTUVTLldCUiwgVEFHX0lELldCUl0sXG4gICAgW1RBR19OQU1FUy5YTVAsIFRBR19JRC5YTVBdLFxuXSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFnSUQodGFnTmFtZSkge1xuICAgIHZhciBfYTtcbiAgICByZXR1cm4gKF9hID0gVEFHX05BTUVfVE9fSUQuZ2V0KHRhZ05hbWUpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBUQUdfSUQuVU5LTk9XTjtcbn1cbmNvbnN0ICQgPSBUQUdfSUQ7XG5leHBvcnQgY29uc3QgU1BFQ0lBTF9FTEVNRU5UUyA9IHtcbiAgICBbTlMuSFRNTF06IG5ldyBTZXQoW1xuICAgICAgICAkLkFERFJFU1MsXG4gICAgICAgICQuQVBQTEVULFxuICAgICAgICAkLkFSRUEsXG4gICAgICAgICQuQVJUSUNMRSxcbiAgICAgICAgJC5BU0lERSxcbiAgICAgICAgJC5CQVNFLFxuICAgICAgICAkLkJBU0VGT05ULFxuICAgICAgICAkLkJHU09VTkQsXG4gICAgICAgICQuQkxPQ0tRVU9URSxcbiAgICAgICAgJC5CT0RZLFxuICAgICAgICAkLkJSLFxuICAgICAgICAkLkJVVFRPTixcbiAgICAgICAgJC5DQVBUSU9OLFxuICAgICAgICAkLkNFTlRFUixcbiAgICAgICAgJC5DT0wsXG4gICAgICAgICQuQ09MR1JPVVAsXG4gICAgICAgICQuREQsXG4gICAgICAgICQuREVUQUlMUyxcbiAgICAgICAgJC5ESVIsXG4gICAgICAgICQuRElWLFxuICAgICAgICAkLkRMLFxuICAgICAgICAkLkRULFxuICAgICAgICAkLkVNQkVELFxuICAgICAgICAkLkZJRUxEU0VULFxuICAgICAgICAkLkZJR0NBUFRJT04sXG4gICAgICAgICQuRklHVVJFLFxuICAgICAgICAkLkZPT1RFUixcbiAgICAgICAgJC5GT1JNLFxuICAgICAgICAkLkZSQU1FLFxuICAgICAgICAkLkZSQU1FU0VULFxuICAgICAgICAkLkgxLFxuICAgICAgICAkLkgyLFxuICAgICAgICAkLkgzLFxuICAgICAgICAkLkg0LFxuICAgICAgICAkLkg1LFxuICAgICAgICAkLkg2LFxuICAgICAgICAkLkhFQUQsXG4gICAgICAgICQuSEVBREVSLFxuICAgICAgICAkLkhHUk9VUCxcbiAgICAgICAgJC5IUixcbiAgICAgICAgJC5IVE1MLFxuICAgICAgICAkLklGUkFNRSxcbiAgICAgICAgJC5JTUcsXG4gICAgICAgICQuSU5QVVQsXG4gICAgICAgICQuTEksXG4gICAgICAgICQuTElOSyxcbiAgICAgICAgJC5MSVNUSU5HLFxuICAgICAgICAkLk1BSU4sXG4gICAgICAgICQuTUFSUVVFRSxcbiAgICAgICAgJC5NRU5VLFxuICAgICAgICAkLk1FVEEsXG4gICAgICAgICQuTkFWLFxuICAgICAgICAkLk5PRU1CRUQsXG4gICAgICAgICQuTk9GUkFNRVMsXG4gICAgICAgICQuTk9TQ1JJUFQsXG4gICAgICAgICQuT0JKRUNULFxuICAgICAgICAkLk9MLFxuICAgICAgICAkLlAsXG4gICAgICAgICQuUEFSQU0sXG4gICAgICAgICQuUExBSU5URVhULFxuICAgICAgICAkLlBSRSxcbiAgICAgICAgJC5TQ1JJUFQsXG4gICAgICAgICQuU0VDVElPTixcbiAgICAgICAgJC5TRUxFQ1QsXG4gICAgICAgICQuU09VUkNFLFxuICAgICAgICAkLlNUWUxFLFxuICAgICAgICAkLlNVTU1BUlksXG4gICAgICAgICQuVEFCTEUsXG4gICAgICAgICQuVEJPRFksXG4gICAgICAgICQuVEQsXG4gICAgICAgICQuVEVNUExBVEUsXG4gICAgICAgICQuVEVYVEFSRUEsXG4gICAgICAgICQuVEZPT1QsXG4gICAgICAgICQuVEgsXG4gICAgICAgICQuVEhFQUQsXG4gICAgICAgICQuVElUTEUsXG4gICAgICAgICQuVFIsXG4gICAgICAgICQuVFJBQ0ssXG4gICAgICAgICQuVUwsXG4gICAgICAgICQuV0JSLFxuICAgICAgICAkLlhNUCxcbiAgICBdKSxcbiAgICBbTlMuTUFUSE1MXTogbmV3IFNldChbJC5NSSwgJC5NTywgJC5NTiwgJC5NUywgJC5NVEVYVCwgJC5BTk5PVEFUSU9OX1hNTF0pLFxuICAgIFtOUy5TVkddOiBuZXcgU2V0KFskLlRJVExFLCAkLkZPUkVJR05fT0JKRUNULCAkLkRFU0NdKSxcbiAgICBbTlMuWExJTktdOiBuZXcgU2V0KCksXG4gICAgW05TLlhNTF06IG5ldyBTZXQoKSxcbiAgICBbTlMuWE1MTlNdOiBuZXcgU2V0KCksXG59O1xuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyZWRIZWFkZXIodG4pIHtcbiAgICByZXR1cm4gdG4gPT09ICQuSDEgfHwgdG4gPT09ICQuSDIgfHwgdG4gPT09ICQuSDMgfHwgdG4gPT09ICQuSDQgfHwgdG4gPT09ICQuSDUgfHwgdG4gPT09ICQuSDY7XG59XG5jb25zdCBVTkVTQ0FQRURfVEVYVCA9IG5ldyBTZXQoW1xuICAgIFRBR19OQU1FUy5TVFlMRSxcbiAgICBUQUdfTkFNRVMuU0NSSVBULFxuICAgIFRBR19OQU1FUy5YTVAsXG4gICAgVEFHX05BTUVTLklGUkFNRSxcbiAgICBUQUdfTkFNRVMuTk9FTUJFRCxcbiAgICBUQUdfTkFNRVMuTk9GUkFNRVMsXG4gICAgVEFHX05BTUVTLlBMQUlOVEVYVCxcbl0pO1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1VuZXNjYXBlZFRleHQodG4sIHNjcmlwdGluZ0VuYWJsZWQpIHtcbiAgICByZXR1cm4gVU5FU0NBUEVEX1RFWFQuaGFzKHRuKSB8fCAoc2NyaXB0aW5nRW5hYmxlZCAmJiB0biA9PT0gVEFHX05BTUVTLk5PU0NSSVBUKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWh0bWwuanMubWFwIiwgImltcG9ydCB7IFByZXByb2Nlc3NvciB9IGZyb20gJy4vcHJlcHJvY2Vzc29yLmpzJztcbmltcG9ydCB7IENPREVfUE9JTlRTIGFzICQsIFNFUVVFTkNFUyBhcyAkJCwgUkVQTEFDRU1FTlRfQ0hBUkFDVEVSLCBpc1N1cnJvZ2F0ZSwgaXNVbmRlZmluZWRDb2RlUG9pbnQsIGlzQ29udHJvbENvZGVQb2ludCwgfSBmcm9tICcuLi9jb21tb24vdW5pY29kZS5qcyc7XG5pbXBvcnQgeyBUb2tlblR5cGUsIGdldFRva2VuQXR0ciwgfSBmcm9tICcuLi9jb21tb24vdG9rZW4uanMnO1xuaW1wb3J0IHsgaHRtbERlY29kZVRyZWUsIEJpblRyaWVGbGFncywgZGV0ZXJtaW5lQnJhbmNoIH0gZnJvbSAnZW50aXRpZXMvbGliL2RlY29kZS5qcyc7XG5pbXBvcnQgeyBFUlIgfSBmcm9tICcuLi9jb21tb24vZXJyb3ItY29kZXMuanMnO1xuaW1wb3J0IHsgVEFHX0lELCBnZXRUYWdJRCB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbi8vQzEgVW5pY29kZSBjb250cm9sIGNoYXJhY3RlciByZWZlcmVuY2UgcmVwbGFjZW1lbnRzXG5jb25zdCBDMV9DT05UUk9MU19SRUZFUkVOQ0VfUkVQTEFDRU1FTlRTID0gbmV3IE1hcChbXG4gICAgWzB4ODAsIDgzNjRdLFxuICAgIFsweDgyLCA4MjE4XSxcbiAgICBbMHg4MywgNDAyXSxcbiAgICBbMHg4NCwgODIyMl0sXG4gICAgWzB4ODUsIDgyMzBdLFxuICAgIFsweDg2LCA4MjI0XSxcbiAgICBbMHg4NywgODIyNV0sXG4gICAgWzB4ODgsIDcxMF0sXG4gICAgWzB4ODksIDgyNDBdLFxuICAgIFsweDhhLCAzNTJdLFxuICAgIFsweDhiLCA4MjQ5XSxcbiAgICBbMHg4YywgMzM4XSxcbiAgICBbMHg4ZSwgMzgxXSxcbiAgICBbMHg5MSwgODIxNl0sXG4gICAgWzB4OTIsIDgyMTddLFxuICAgIFsweDkzLCA4MjIwXSxcbiAgICBbMHg5NCwgODIyMV0sXG4gICAgWzB4OTUsIDgyMjZdLFxuICAgIFsweDk2LCA4MjExXSxcbiAgICBbMHg5NywgODIxMl0sXG4gICAgWzB4OTgsIDczMl0sXG4gICAgWzB4OTksIDg0ODJdLFxuICAgIFsweDlhLCAzNTNdLFxuICAgIFsweDliLCA4MjUwXSxcbiAgICBbMHg5YywgMzM5XSxcbiAgICBbMHg5ZSwgMzgyXSxcbiAgICBbMHg5ZiwgMzc2XSxcbl0pO1xuLy9TdGF0ZXNcbnZhciBTdGF0ZTtcbihmdW5jdGlvbiAoU3RhdGUpIHtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRBVEFcIl0gPSAwXSA9IFwiREFUQVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBXCJdID0gMV0gPSBcIlJDREFUQVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkFXVEVYVFwiXSA9IDJdID0gXCJSQVdURVhUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQVwiXSA9IDNdID0gXCJTQ1JJUFRfREFUQVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUExBSU5URVhUXCJdID0gNF0gPSBcIlBMQUlOVEVYVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiVEFHX09QRU5cIl0gPSA1XSA9IFwiVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkVORF9UQUdfT1BFTlwiXSA9IDZdID0gXCJFTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlRBR19OQU1FXCJdID0gN10gPSBcIlRBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFfTEVTU19USEFOX1NJR05cIl0gPSA4XSA9IFwiUkNEQVRBX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFfRU5EX1RBR19PUEVOXCJdID0gOV0gPSBcIlJDREFUQV9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQV9FTkRfVEFHX05BTUVcIl0gPSAxMF0gPSBcIlJDREFUQV9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRfTEVTU19USEFOX1NJR05cIl0gPSAxMV0gPSBcIlJBV1RFWFRfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRfRU5EX1RBR19PUEVOXCJdID0gMTJdID0gXCJSQVdURVhUX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkFXVEVYVF9FTkRfVEFHX05BTUVcIl0gPSAxM10gPSBcIlJBV1RFWFRfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTlwiXSA9IDE0XSA9IFwiU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTlwiXSA9IDE1XSA9IFwiU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVcIl0gPSAxNl0gPSBcIlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUXCJdID0gMTddID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIXCJdID0gMThdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRFwiXSA9IDE5XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIXCJdID0gMjBdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIXCJdID0gMjFdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiXSA9IDIyXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU5cIl0gPSAyM10gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRVwiXSA9IDI0XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRcIl0gPSAyNV0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEXCJdID0gMjZdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSFwiXSA9IDI3XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIXCJdID0gMjhdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOXCJdID0gMjldID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkRcIl0gPSAzMF0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfQVRUUklCVVRFX05BTUVcIl0gPSAzMV0gPSBcIkJFRk9SRV9BVFRSSUJVVEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX05BTUVcIl0gPSAzMl0gPSBcIkFUVFJJQlVURV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9BVFRSSUJVVEVfTkFNRVwiXSA9IDMzXSA9IFwiQUZURVJfQVRUUklCVVRFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9BVFRSSUJVVEVfVkFMVUVcIl0gPSAzNF0gPSBcIkJFRk9SRV9BVFRSSUJVVEVfVkFMVUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEXCJdID0gMzVdID0gXCJBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URURcIl0gPSAzNl0gPSBcIkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURcIl0gPSAzN10gPSBcIkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRFwiXSA9IDM4XSA9IFwiQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0VMRl9DTE9TSU5HX1NUQVJUX1RBR1wiXSA9IDM5XSA9IFwiU0VMRl9DTE9TSU5HX1NUQVJUX1RBR1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiQk9HVVNfQ09NTUVOVFwiXSA9IDQwXSA9IFwiQk9HVVNfQ09NTUVOVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU5cIl0gPSA0MV0gPSBcIk1BUktVUF9ERUNMQVJBVElPTl9PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX1NUQVJUXCJdID0gNDJdID0gXCJDT01NRU5UX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX1NUQVJUX0RBU0hcIl0gPSA0M10gPSBcIkNPTU1FTlRfU1RBUlRfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVFwiXSA9IDQ0XSA9IFwiQ09NTUVOVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTlwiXSA9IDQ1XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HXCJdID0gNDZdID0gXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIXCJdID0gNDddID0gXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSFwiXSA9IDQ4XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9FTkRfREFTSFwiXSA9IDQ5XSA9IFwiQ09NTUVOVF9FTkRfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9FTkRcIl0gPSA1MF0gPSBcIkNPTU1FTlRfRU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0VORF9CQU5HXCJdID0gNTFdID0gXCJDT01NRU5UX0VORF9CQU5HXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFXCJdID0gNTJdID0gXCJET0NUWVBFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfRE9DVFlQRV9OQU1FXCJdID0gNTNdID0gXCJCRUZPUkVfRE9DVFlQRV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX05BTUVcIl0gPSA1NF0gPSBcIkRPQ1RZUEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9OQU1FXCJdID0gNTVdID0gXCJBRlRFUl9ET0NUWVBFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkRcIl0gPSA1Nl0gPSBcIkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCJdID0gNTddID0gXCJCRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCJdID0gNThdID0gXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiXSA9IDU5XSA9IFwiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCJdID0gNjBdID0gXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNcIl0gPSA2MV0gPSBcIkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSU1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRFwiXSA9IDYyXSA9IFwiQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIl0gPSA2M10gPSBcIkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIl0gPSA2NF0gPSBcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCJdID0gNjVdID0gXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIl0gPSA2Nl0gPSBcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJPR1VTX0RPQ1RZUEVcIl0gPSA2N10gPSBcIkJPR1VTX0RPQ1RZUEVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNEQVRBX1NFQ1RJT05cIl0gPSA2OF0gPSBcIkNEQVRBX1NFQ1RJT05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNEQVRBX1NFQ1RJT05fQlJBQ0tFVFwiXSA9IDY5XSA9IFwiQ0RBVEFfU0VDVElPTl9CUkFDS0VUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OX0VORFwiXSA9IDcwXSA9IFwiQ0RBVEFfU0VDVElPTl9FTkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3MV0gPSBcIkNIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIk5BTUVEX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3Ml0gPSBcIk5BTUVEX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFNQklHVU9VU19BTVBFUlNBTkRcIl0gPSA3M10gPSBcIkFNQklHVU9VU19BTVBFUlNBTkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDc0XSA9IFwiTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJIRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFX1NUQVJUXCJdID0gNzVdID0gXCJIRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJIRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzZdID0gXCJIRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3N10gPSBcIkRFQ0lNQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORFwiXSA9IDc4XSA9IFwiTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORFwiO1xufSkoU3RhdGUgfHwgKFN0YXRlID0ge30pKTtcbi8vVG9rZW5pemVyIGluaXRpYWwgc3RhdGVzIGZvciBkaWZmZXJlbnQgbW9kZXNcbmV4cG9ydCBjb25zdCBUb2tlbml6ZXJNb2RlID0ge1xuICAgIERBVEE6IFN0YXRlLkRBVEEsXG4gICAgUkNEQVRBOiBTdGF0ZS5SQ0RBVEEsXG4gICAgUkFXVEVYVDogU3RhdGUuUkFXVEVYVCxcbiAgICBTQ1JJUFRfREFUQTogU3RhdGUuU0NSSVBUX0RBVEEsXG4gICAgUExBSU5URVhUOiBTdGF0ZS5QTEFJTlRFWFQsXG4gICAgQ0RBVEFfU0VDVElPTjogU3RhdGUuQ0RBVEFfU0VDVElPTixcbn07XG4vL1V0aWxzXG4vL09QVElNSVpBVElPTjogdGhlc2UgdXRpbGl0eSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBtb3ZlZCBvdXQgb2YgdGhpcyBtb2R1bGUuIFY4IENyYW5rc2hhZnQgd2lsbCBub3QgaW5saW5lXG4vL3RoaXMgZnVuY3Rpb25zIGlmIHRoZXkgd2lsbCBiZSBzaXR1YXRlZCBpbiBhbm90aGVyIG1vZHVsZSBkdWUgdG8gY29udGV4dCBzd2l0Y2guXG4vL0Fsd2F5cyBwZXJmb3JtIGlubGluaW5nIGNoZWNrIGJlZm9yZSBtb2RpZnlpbmcgdGhpcyBmdW5jdGlvbnMgKCdub2RlIC0tdHJhY2UtaW5saW5pbmcnKS5cbmZ1bmN0aW9uIGlzQXNjaWlEaWdpdChjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkRJR0lUXzAgJiYgY3AgPD0gJC5ESUdJVF85O1xufVxuZnVuY3Rpb24gaXNBc2NpaVVwcGVyKGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuTEFUSU5fQ0FQSVRBTF9BICYmIGNwIDw9ICQuTEFUSU5fQ0FQSVRBTF9aO1xufVxuZnVuY3Rpb24gaXNBc2NpaUxvd2VyKGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuTEFUSU5fU01BTExfQSAmJiBjcCA8PSAkLkxBVElOX1NNQUxMX1o7XG59XG5mdW5jdGlvbiBpc0FzY2lpTGV0dGVyKGNwKSB7XG4gICAgcmV0dXJuIGlzQXNjaWlMb3dlcihjcCkgfHwgaXNBc2NpaVVwcGVyKGNwKTtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlBbHBoYU51bWVyaWMoY3ApIHtcbiAgICByZXR1cm4gaXNBc2NpaUxldHRlcihjcCkgfHwgaXNBc2NpaURpZ2l0KGNwKTtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlVcHBlckhleERpZ2l0KGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuTEFUSU5fQ0FQSVRBTF9BICYmIGNwIDw9ICQuTEFUSU5fQ0FQSVRBTF9GO1xufVxuZnVuY3Rpb24gaXNBc2NpaUxvd2VySGV4RGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9TTUFMTF9BICYmIGNwIDw9ICQuTEFUSU5fU01BTExfRjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlIZXhEaWdpdChjcCkge1xuICAgIHJldHVybiBpc0FzY2lpRGlnaXQoY3ApIHx8IGlzQXNjaWlVcHBlckhleERpZ2l0KGNwKSB8fCBpc0FzY2lpTG93ZXJIZXhEaWdpdChjcCk7XG59XG5mdW5jdGlvbiB0b0FzY2lpTG93ZXIoY3ApIHtcbiAgICByZXR1cm4gY3AgKyAzMjtcbn1cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjcCkge1xuICAgIHJldHVybiBjcCA9PT0gJC5TUEFDRSB8fCBjcCA9PT0gJC5MSU5FX0ZFRUQgfHwgY3AgPT09ICQuVEFCVUxBVElPTiB8fCBjcCA9PT0gJC5GT1JNX0ZFRUQ7XG59XG5mdW5jdGlvbiBpc0VudGl0eUluQXR0cmlidXRlSW52YWxpZEVuZChuZXh0Q3ApIHtcbiAgICByZXR1cm4gbmV4dENwID09PSAkLkVRVUFMU19TSUdOIHx8IGlzQXNjaWlBbHBoYU51bWVyaWMobmV4dENwKTtcbn1cbmZ1bmN0aW9uIGlzU2NyaXB0RGF0YURvdWJsZUVzY2FwZVNlcXVlbmNlRW5kKGNwKSB7XG4gICAgcmV0dXJuIGlzV2hpdGVzcGFjZShjcCkgfHwgY3AgPT09ICQuU09MSURVUyB8fCBjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTjtcbn1cbi8vVG9rZW5pemVyXG5leHBvcnQgY2xhc3MgVG9rZW5pemVyIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zLCBoYW5kbGVyKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMucGF1c2VkID0gZmFsc2U7XG4gICAgICAgIC8qKiBFbnN1cmVzIHRoYXQgdGhlIHBhcnNpbmcgbG9vcCBpc24ndCBydW4gbXVsdGlwbGUgdGltZXMgYXQgb25jZS4gKi9cbiAgICAgICAgdGhpcy5pbkxvb3AgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50IGFkanVzdGVkIG5vZGUgZXhpc3RzLCBpcyBub3QgYW4gZWxlbWVudCBpbiB0aGUgSFRNTCBuYW1lc3BhY2UsXG4gICAgICAgICAqIGFuZCB0aGF0IGl0IGlzIG5vdCBhbiBpbnRlZ3JhdGlvbiBwb2ludCBmb3IgZWl0aGVyIE1hdGhNTCBvciBIVE1MLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAc2VlIHtAbGluayBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjdHJlZS1jb25zdHJ1Y3Rpb259XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmluRm9yZWlnbk5vZGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0U3RhcnRUYWdOYW1lID0gJyc7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IC0xO1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA9IC0xO1xuICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ciA9IHsgbmFtZTogJycsIHZhbHVlOiAnJyB9O1xuICAgICAgICB0aGlzLnByZXByb2Nlc3NvciA9IG5ldyBQcmVwcm9jZXNzb3IoaGFuZGxlcik7XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oLTEpO1xuICAgIH1cbiAgICAvL0Vycm9yc1xuICAgIF9lcnIoY29kZSkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLmhhbmRsZXIpLm9uUGFyc2VFcnJvcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIHRoaXMucHJlcHJvY2Vzc29yLmdldEVycm9yKGNvZGUpKTtcbiAgICB9XG4gICAgLy8gTk9URTogYG9mZnNldGAgbWF5IG5ldmVyIHJ1biBhY3Jvc3MgbGluZSBib3VuZGFyaWVzLlxuICAgIGdldEN1cnJlbnRMb2NhdGlvbihvZmZzZXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXJ0TGluZTogdGhpcy5wcmVwcm9jZXNzb3IubGluZSxcbiAgICAgICAgICAgIHN0YXJ0Q29sOiB0aGlzLnByZXByb2Nlc3Nvci5jb2wgLSBvZmZzZXQsXG4gICAgICAgICAgICBzdGFydE9mZnNldDogdGhpcy5wcmVwcm9jZXNzb3Iub2Zmc2V0IC0gb2Zmc2V0LFxuICAgICAgICAgICAgZW5kTGluZTogLTEsXG4gICAgICAgICAgICBlbmRDb2w6IC0xLFxuICAgICAgICAgICAgZW5kT2Zmc2V0OiAtMSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX3J1blBhcnNpbmdMb29wKCkge1xuICAgICAgICBpZiAodGhpcy5pbkxvb3ApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuaW5Mb29wID0gdHJ1ZTtcbiAgICAgICAgd2hpbGUgKHRoaXMuYWN0aXZlICYmICF0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgPSAwO1xuICAgICAgICAgICAgY29uc3QgY3AgPSB0aGlzLl9jb25zdW1lKCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWxsU3RhdGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5Mb29wID0gZmFsc2U7XG4gICAgfVxuICAgIC8vQVBJXG4gICAgcGF1c2UoKSB7XG4gICAgICAgIHRoaXMucGF1c2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgcmVzdW1lKHdyaXRlQ2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXJzZXIgd2FzIGFscmVhZHkgcmVzdW1lZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGF1c2VkID0gZmFsc2U7XG4gICAgICAgIC8vIE5lY2Vzc2FyeSBmb3Igc3luY2hyb25vdXMgcmVzdW1lLlxuICAgICAgICBpZiAodGhpcy5pbkxvb3ApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKCk7XG4gICAgICAgIGlmICghdGhpcy5wYXVzZWQpIHtcbiAgICAgICAgICAgIHdyaXRlQ2FsbGJhY2sgPT09IG51bGwgfHwgd3JpdGVDYWxsYmFjayA9PT0gdm9pZCAwID8gdm9pZCAwIDogd3JpdGVDYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlKGNodW5rLCBpc0xhc3RDaHVuaywgd3JpdGVDYWxsYmFjaykge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLndyaXRlKGNodW5rLCBpc0xhc3RDaHVuayk7XG4gICAgICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKCk7XG4gICAgICAgIGlmICghdGhpcy5wYXVzZWQpIHtcbiAgICAgICAgICAgIHdyaXRlQ2FsbGJhY2sgPT09IG51bGwgfHwgd3JpdGVDYWxsYmFjayA9PT0gdm9pZCAwID8gdm9pZCAwIDogd3JpdGVDYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGluc2VydEh0bWxBdEN1cnJlbnRQb3MoY2h1bmspIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5pbnNlcnRIdG1sQXRDdXJyZW50UG9zKGNodW5rKTtcbiAgICAgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTtcbiAgICB9XG4gICAgLy9IaWJlcm5hdGlvblxuICAgIF9lbnN1cmVIaWJlcm5hdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLmVuZE9mQ2h1bmtIaXQpIHtcbiAgICAgICAgICAgIHRoaXMuX3VuY29uc3VtZSh0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvL0NvbnN1bXB0aW9uXG4gICAgX2NvbnN1bWUoKSB7XG4gICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90Kys7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXByb2Nlc3Nvci5hZHZhbmNlKCk7XG4gICAgfVxuICAgIF91bmNvbnN1bWUoY291bnQpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgLT0gY291bnQ7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLnJldHJlYXQoY291bnQpO1xuICAgIH1cbiAgICBfcmVjb25zdW1lSW5TdGF0ZShzdGF0ZSwgY3ApIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgICAgICB0aGlzLl9jYWxsU3RhdGUoY3ApO1xuICAgIH1cbiAgICBfYWR2YW5jZUJ5KGNvdW50KSB7XG4gICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90ICs9IGNvdW50O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmFkdmFuY2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfY29uc3VtZVNlcXVlbmNlSWZNYXRjaChwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKHBhdHRlcm4sIGNhc2VTZW5zaXRpdmUpKSB7XG4gICAgICAgICAgICAvLyBXZSB3aWxsIGFscmVhZHkgaGF2ZSBjb25zdW1lZCBvbmUgY2hhcmFjdGVyIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLlxuICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHBhdHRlcm4ubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vVG9rZW4gY3JlYXRpb25cbiAgICBfY3JlYXRlU3RhcnRUYWdUb2tlbigpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuU1RBUlRfVEFHLFxuICAgICAgICAgICAgdGFnTmFtZTogJycsXG4gICAgICAgICAgICB0YWdJRDogVEFHX0lELlVOS05PV04sXG4gICAgICAgICAgICBzZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgICAgICBhY2tTZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgICAgICBhdHRyczogW10sXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMSksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVFbmRUYWdUb2tlbigpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuRU5EX1RBRyxcbiAgICAgICAgICAgIHRhZ05hbWU6ICcnLFxuICAgICAgICAgICAgdGFnSUQ6IFRBR19JRC5VTktOT1dOLFxuICAgICAgICAgICAgc2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgICAgICAgYWNrU2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgICAgICAgYXR0cnM6IFtdLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDIpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfY3JlYXRlQ29tbWVudFRva2VuKG9mZnNldCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5DT01NRU5ULFxuICAgICAgICAgICAgZGF0YTogJycsXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5nZXRDdXJyZW50TG9jYXRpb24ob2Zmc2V0KSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZURvY3R5cGVUb2tlbihpbml0aWFsTmFtZSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5ET0NUWVBFLFxuICAgICAgICAgICAgbmFtZTogaW5pdGlhbE5hbWUsXG4gICAgICAgICAgICBmb3JjZVF1aXJrczogZmFsc2UsXG4gICAgICAgICAgICBwdWJsaWNJZDogbnVsbCxcbiAgICAgICAgICAgIHN5c3RlbUlkOiBudWxsLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuY3VycmVudExvY2F0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfY3JlYXRlQ2hhcmFjdGVyVG9rZW4odHlwZSwgY2hhcnMpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgY2hhcnMsXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5jdXJyZW50TG9jYXRpb24sXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8vVGFnIGF0dHJpYnV0ZXNcbiAgICBfY3JlYXRlQXR0cihhdHRyTmFtZUZpcnN0Q2gpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ciA9IHtcbiAgICAgICAgICAgIG5hbWU6IGF0dHJOYW1lRmlyc3RDaCxcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigwKTtcbiAgICB9XG4gICAgX2xlYXZlQXR0ck5hbWUoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgdmFyIF9iO1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBpZiAoZ2V0VG9rZW5BdHRyKHRva2VuLCB0aGlzLmN1cnJlbnRBdHRyLm5hbWUpID09PSBudWxsKSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRycy5wdXNoKHRoaXMuY3VycmVudEF0dHIpO1xuICAgICAgICAgICAgaWYgKHRva2VuLmxvY2F0aW9uICYmIHRoaXMuY3VycmVudExvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXR0ckxvY2F0aW9ucyA9ICgoX2EgPSAoX2IgPSB0b2tlbi5sb2NhdGlvbikuYXR0cnMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IChfYi5hdHRycyA9IE9iamVjdC5jcmVhdGUobnVsbCkpKTtcbiAgICAgICAgICAgICAgICBhdHRyTG9jYXRpb25zW3RoaXMuY3VycmVudEF0dHIubmFtZV0gPSB0aGlzLmN1cnJlbnRMb2NhdGlvbjtcbiAgICAgICAgICAgICAgICAvLyBTZXQgZW5kIGxvY2F0aW9uXG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZHVwbGljYXRlQXR0cmlidXRlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfbGVhdmVBdHRyVmFsdWUoKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRMb2NhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24uZW5kTGluZSA9IHRoaXMucHJlcHJvY2Vzc29yLmxpbmU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbi5lbmRDb2wgPSB0aGlzLnByZXByb2Nlc3Nvci5jb2w7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbi5lbmRPZmZzZXQgPSB0aGlzLnByZXByb2Nlc3Nvci5vZmZzZXQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9Ub2tlbiBlbWlzc2lvblxuICAgIHByZXBhcmVUb2tlbihjdCkge1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKGN0LmxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSBudWxsO1xuICAgICAgICBpZiAoY3QubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGN0LmxvY2F0aW9uLmVuZExpbmUgPSB0aGlzLnByZXByb2Nlc3Nvci5saW5lO1xuICAgICAgICAgICAgY3QubG9jYXRpb24uZW5kQ29sID0gdGhpcy5wcmVwcm9jZXNzb3IuY29sICsgMTtcbiAgICAgICAgICAgIGN0LmxvY2F0aW9uLmVuZE9mZnNldCA9IHRoaXMucHJlcHJvY2Vzc29yLm9mZnNldCArIDE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigtMSk7XG4gICAgfVxuICAgIGVtaXRDdXJyZW50VGFnVG9rZW4oKSB7XG4gICAgICAgIGNvbnN0IGN0ID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHRoaXMucHJlcGFyZVRva2VuKGN0KTtcbiAgICAgICAgY3QudGFnSUQgPSBnZXRUYWdJRChjdC50YWdOYW1lKTtcbiAgICAgICAgaWYgKGN0LnR5cGUgPT09IFRva2VuVHlwZS5TVEFSVF9UQUcpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9IGN0LnRhZ05hbWU7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25TdGFydFRhZyhjdCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoY3QuYXR0cnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW5kVGFnV2l0aEF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN0LnNlbGZDbG9zaW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lbmRUYWdXaXRoVHJhaWxpbmdTb2xpZHVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbkVuZFRhZyhjdCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG4gICAgfVxuICAgIGVtaXRDdXJyZW50Q29tbWVudChjdCkge1xuICAgICAgICB0aGlzLnByZXBhcmVUb2tlbihjdCk7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkNvbW1lbnQoY3QpO1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICB9XG4gICAgZW1pdEN1cnJlbnREb2N0eXBlKGN0KSB7XG4gICAgICAgIHRoaXMucHJlcGFyZVRva2VuKGN0KTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uRG9jdHlwZShjdCk7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgIH1cbiAgICBfZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbihuZXh0TG9jYXRpb24pIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKSB7XG4gICAgICAgICAgICAvL05PVEU6IGlmIHdlIGhhdmUgYSBwZW5kaW5nIGNoYXJhY3RlciB0b2tlbiwgbWFrZSBpdCdzIGVuZCBsb2NhdGlvbiBlcXVhbCB0byB0aGVcbiAgICAgICAgICAgIC8vY3VycmVudCB0b2tlbidzIHN0YXJ0IGxvY2F0aW9uLlxuICAgICAgICAgICAgaWYgKG5leHRMb2NhdGlvbiAmJiB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZExpbmUgPSBuZXh0TG9jYXRpb24uc3RhcnRMaW5lO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZENvbCA9IG5leHRMb2NhdGlvbi5zdGFydENvbDtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmRPZmZzZXQgPSBuZXh0TG9jYXRpb24uc3RhcnRPZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uQ2hhcmFjdGVyKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLk5VTExfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbk51bGxDaGFyYWN0ZXIodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uV2hpdGVzcGFjZUNoYXJhY3Rlcih0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfZW1pdEVPRlRva2VuKCkge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDApO1xuICAgICAgICBpZiAobG9jYXRpb24pIHtcbiAgICAgICAgICAgIGxvY2F0aW9uLmVuZExpbmUgPSBsb2NhdGlvbi5zdGFydExpbmU7XG4gICAgICAgICAgICBsb2NhdGlvbi5lbmRDb2wgPSBsb2NhdGlvbi5zdGFydENvbDtcbiAgICAgICAgICAgIGxvY2F0aW9uLmVuZE9mZnNldCA9IGxvY2F0aW9uLnN0YXJ0T2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4obG9jYXRpb24pO1xuICAgICAgICB0aGlzLmhhbmRsZXIub25Fb2YoeyB0eXBlOiBUb2tlblR5cGUuRU9GLCBsb2NhdGlvbiB9KTtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG4gICAgLy9DaGFyYWN0ZXJzIGVtaXNzaW9uXG4gICAgLy9PUFRJTUlaQVRJT046IHNwZWNpZmljYXRpb24gdXNlcyBvbmx5IG9uZSB0eXBlIG9mIGNoYXJhY3RlciB0b2tlbnMgKG9uZSB0b2tlbiBwZXIgY2hhcmFjdGVyKS5cbiAgICAvL1RoaXMgY2F1c2VzIGEgaHVnZSBtZW1vcnkgb3ZlcmhlYWQgYW5kIGEgbG90IG9mIHVubmVjZXNzYXJ5IHBhcnNlciBsb29wcy4gcGFyc2U1IHVzZXMgMyBncm91cHMgb2YgY2hhcmFjdGVycy5cbiAgICAvL0lmIHdlIGhhdmUgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIGdyb3VwLCB0aGUgcGFyc2VyIGNhbiBwcm9jZXNzIGl0XG4gICAgLy9hcyBhIHNpbmdsZSBzb2xpZCBjaGFyYWN0ZXIgdG9rZW4uXG4gICAgLy9TbywgdGhlcmUgYXJlIDMgdHlwZXMgb2YgY2hhcmFjdGVyIHRva2VucyBpbiBwYXJzZTU6XG4gICAgLy8xKVRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUiAtIFxcdTAwMDAtY2hhcmFjdGVyIHNlcXVlbmNlcyAoZS5nLiAnXFx1MDAwMFxcdTAwMDBcXHUwMDAwJylcbiAgICAvLzIpVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSIC0gYW55IHdoaXRlc3BhY2UvbmV3LWxpbmUgY2hhcmFjdGVyIHNlcXVlbmNlcyAoZS5nLiAnXFxuICBcXHJcXHQgICBcXGYnKVxuICAgIC8vMylUb2tlblR5cGUuQ0hBUkFDVEVSIC0gYW55IGNoYXJhY3RlciBzZXF1ZW5jZSB3aGljaCBkb24ndCBiZWxvbmcgdG8gZ3JvdXBzIDEgYW5kIDIgKGUuZy4gJ2FiY2RlZjEyMzRAQCMkJV4nKVxuICAgIF9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4odHlwZSwgY2gpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4udHlwZSAhPT0gdHlwZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbih0aGlzLmN1cnJlbnRMb2NhdGlvbik7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5jaGFycyArPSBjaDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY3JlYXRlQ2hhcmFjdGVyVG9rZW4odHlwZSwgY2gpO1xuICAgIH1cbiAgICBfZW1pdENvZGVQb2ludChjcCkge1xuICAgICAgICBjb25zdCB0eXBlID0gaXNXaGl0ZXNwYWNlKGNwKVxuICAgICAgICAgICAgPyBUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVJcbiAgICAgICAgICAgIDogY3AgPT09ICQuTlVMTFxuICAgICAgICAgICAgICAgID8gVG9rZW5UeXBlLk5VTExfQ0hBUkFDVEVSXG4gICAgICAgICAgICAgICAgOiBUb2tlblR5cGUuQ0hBUkFDVEVSO1xuICAgICAgICB0aGlzLl9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4odHlwZSwgU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApKTtcbiAgICB9XG4gICAgLy9OT1RFOiB1c2VkIHdoZW4gd2UgZW1pdCBjaGFyYWN0ZXJzIGV4cGxpY2l0bHkuXG4gICAgLy9UaGlzIGlzIGFsd2F5cyBmb3Igbm9uLXdoaXRlc3BhY2UgYW5kIG5vbi1udWxsIGNoYXJhY3RlcnMsIHdoaWNoIGFsbG93cyB1cyB0byBhdm9pZCBhZGRpdGlvbmFsIGNoZWNrcy5cbiAgICBfZW1pdENoYXJzKGNoKSB7XG4gICAgICAgIHRoaXMuX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbihUb2tlblR5cGUuQ0hBUkFDVEVSLCBjaCk7XG4gICAgfVxuICAgIC8vIENoYXJhY3RlciByZWZlcmVuY2UgaGVscGVyc1xuICAgIF9tYXRjaE5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xuICAgICAgICBsZXQgZXhjZXNzID0gMDtcbiAgICAgICAgbGV0IHdpdGhvdXRTZW1pY29sb24gPSBmYWxzZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGN1cnJlbnQgPSBodG1sRGVjb2RlVHJlZVswXTsgaSA+PSAwOyBjcCA9IHRoaXMuX2NvbnN1bWUoKSkge1xuICAgICAgICAgICAgaSA9IGRldGVybWluZUJyYW5jaChodG1sRGVjb2RlVHJlZSwgY3VycmVudCwgaSArIDEsIGNwKTtcbiAgICAgICAgICAgIGlmIChpIDwgMClcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGV4Y2VzcyArPSAxO1xuICAgICAgICAgICAgY3VycmVudCA9IGh0bWxEZWNvZGVUcmVlW2ldO1xuICAgICAgICAgICAgY29uc3QgbWFza2VkID0gY3VycmVudCAmIEJpblRyaWVGbGFncy5WQUxVRV9MRU5HVEg7XG4gICAgICAgICAgICAvLyBJZiB0aGUgYnJhbmNoIGlzIGEgdmFsdWUsIHN0b3JlIGl0IGFuZCBjb250aW51ZVxuICAgICAgICAgICAgaWYgKG1hc2tlZCkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBtYXNrIGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgb2YgdGhlIHZhbHVlLCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgYnl0ZS5cbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZUxlbmd0aCA9IChtYXNrZWQgPj4gMTQpIC0gMTtcbiAgICAgICAgICAgICAgICAvLyBBdHRyaWJ1dGUgdmFsdWVzIHRoYXQgYXJlbid0IHRlcm1pbmF0ZWQgcHJvcGVybHkgYXJlbid0IHBhcnNlZCwgYW5kIHNob3VsZG4ndCBsZWFkIHRvIGEgcGFyc2VyIGVycm9yLlxuICAgICAgICAgICAgICAgIC8vIFNlZSB0aGUgZXhhbXBsZSBpbiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZS1zdGF0ZVxuICAgICAgICAgICAgICAgIGlmIChjcCAhPT0gJC5TRU1JQ09MT04gJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZSgpICYmXG4gICAgICAgICAgICAgICAgICAgIGlzRW50aXR5SW5BdHRyaWJ1dGVJbnZhbGlkRW5kKHRoaXMucHJlcHJvY2Vzc29yLnBlZWsoMSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vTk9URTogd2UgZG9uJ3QgZmx1c2ggYWxsIGNvbnN1bWVkIGNvZGUgcG9pbnRzIGhlcmUsIGFuZCBpbnN0ZWFkIHN3aXRjaCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzdGF0ZSBhZnRlclxuICAgICAgICAgICAgICAgICAgICAvL2VtaXR0aW5nIGFuIGFtcGVyc2FuZC4gVGhpcyBpcyBmaW5lLCBhcyBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyB3b24ndCBiZSBwYXJzZWQgZGlmZmVyZW50bHkgaW4gYXR0cmlidXRlcy5cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gWyQuQU1QRVJTQU5EXTtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2tpcCBvdmVyIHRoZSB2YWx1ZS5cbiAgICAgICAgICAgICAgICAgICAgaSArPSB2YWx1ZUxlbmd0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBzdXJyb2dhdGUgcGFpciwgY29uc3VtZSB0aGUgbmV4dCB0d28gYnl0ZXMuXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gW2h0bWxEZWNvZGVUcmVlW2ldICYgfkJpblRyaWVGbGFncy5WQUxVRV9MRU5HVEhdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZUxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtodG1sRGVjb2RlVHJlZVsrK2ldXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtodG1sRGVjb2RlVHJlZVsrK2ldLCBodG1sRGVjb2RlVHJlZVsrK2ldXTtcbiAgICAgICAgICAgICAgICAgICAgZXhjZXNzID0gMDtcbiAgICAgICAgICAgICAgICAgICAgd2l0aG91dFNlbWljb2xvbiA9IGNwICE9PSAkLlNFTUlDT0xPTjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlTGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyB6ZXJvLWxlbmd0aCwgd2UncmUgZG9uZS5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uc3VtZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdW5jb25zdW1lKGV4Y2Vzcyk7XG4gICAgICAgIGlmICh3aXRob3V0U2VtaWNvbG9uICYmICF0aGlzLnByZXByb2Nlc3Nvci5lbmRPZkNodW5rSGl0KSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdTZW1pY29sb25BZnRlckNoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gV2Ugd2FudCB0byBlbWl0IHRoZSBlcnJvciBhYm92ZSBvbiB0aGUgY29kZSBwb2ludCBhZnRlciB0aGUgZW50aXR5LlxuICAgICAgICAvLyBXZSBhbHdheXMgY29uc3VtZSBvbmUgY29kZSBwb2ludCB0b28gbWFueSBpbiB0aGUgbG9vcCwgYW5kIHdlIHdhaXQgdG9cbiAgICAgICAgLy8gdW5jb25zdW1lIGl0IHVudGlsIGFmdGVyIHRoZSBlcnJvciBpcyBlbWl0dGVkLlxuICAgICAgICB0aGlzLl91bmNvbnN1bWUoMSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIF9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMucmV0dXJuU3RhdGUgPT09IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEIHx8XG4gICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID09PSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRCB8fFxuICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9PT0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEKTtcbiAgICB9XG4gICAgX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAodGhpcy5faXNDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENhbGxpbmcgc3RhdGVzIHRoaXMgd2F5IHR1cm5zIG91dCB0byBiZSBtdWNoIGZhc3RlciB0aGFuIGFueSBvdGhlciBhcHByb2FjaC5cbiAgICBfY2FsbFN0YXRlKGNwKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSBTdGF0ZS5EQVRBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5QTEFJTlRFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVBsYWludGV4dChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlRBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEFfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YUxlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQV9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YUVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFRfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0RW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFRfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0RW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVTdGFydChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9WQUxVRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlVmFsdWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZVZhbHVlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0VMRl9DTE9TSU5HX1NUQVJUX1RBRzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2VsZkNsb3NpbmdTdGFydFRhZyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJPR1VTX0NPTU1FTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLk1BUktVUF9ERUNMQVJBVElPTl9PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVNYXJrdXBEZWNsYXJhdGlvbk9wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50U3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX1NUQVJUX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRTdGFydERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFORzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9FTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0VORF9CQU5HOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kQmFuZyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlUHVibGljSWRlbnRpZmllckRvdWJsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTaW5nbGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJPR1VTX0RPQ1RZUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNEQVRBX1NFQ1RJT046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNEQVRBX1NFQ1RJT05fQlJBQ0tFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uQnJhY2tldChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNEQVRBX1NFQ1RJT05fRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb25FbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5OQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFNQklHVU9VU19BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFtYmlndW91c0FtcGVyc2FuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfU1RBUlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUhleGFkZW1pY2FsQ2hhcmFjdGVyUmVmZXJlbmNlU3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRFQ0lNQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRGVjaW1hbENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBzdGF0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFN0YXRlIG1hY2hpbmVcbiAgICAvLyBEYXRhIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEYXRhKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5UQUdfT1BFTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gIFJDREFUQSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQV9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGEoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBQTEFJTlRFWFQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVBsYWludGV4dChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlU3RhcnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlRBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk1BUktVUF9ERUNMQVJBVElPTl9PUEVOO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkVORF9UQUdfT1BFTjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5RVUVTVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZFF1ZXN0aW9uTWFya0luc3RlYWRPZlRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mQmVmb3JlVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRGF0YShjcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIH1cbiAgICAvLyBFbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbigpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlRBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0VuZFRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZCZWZvcmVUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oMik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIH1cbiAgICAvLyBUYWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlVGFnTmFtZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4udGFnTmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4udGFnTmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChpc0FzY2lpVXBwZXIoY3ApID8gdG9Bc2NpaUxvd2VyKGNwKSA6IGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQ0RBVEEgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUxlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQV9FTkRfVEFHX09QRU47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkNEQVRBIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhRW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaGFuZGxlU3BlY2lhbEVuZFRhZyhfY3ApIHtcbiAgICAgICAgaWYgKCF0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKHRoaXMubGFzdFN0YXJ0VGFnTmFtZSwgZmFsc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4oKTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgdG9rZW4udGFnTmFtZSA9IHRoaXMubGFzdFN0YXJ0VGFnTmFtZTtcbiAgICAgICAgY29uc3QgY3AgPSB0aGlzLnByZXByb2Nlc3Nvci5wZWVrKHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkodGhpcy5sYXN0U3RhcnRUYWdOYW1lLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkNEQVRBIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVTcGVjaWFsRW5kVGFnKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSYXd0ZXh0TGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVF9FTkRfVEFHX09QRU47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dEVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVF9FTkRfVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dEVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUxlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX09QRU47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVhDTEFNQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8IScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlIHN0YXJ0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnQoY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIO1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnREYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSDtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc+Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZExlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0KGNwKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKCQkLlNDUklQVCwgZmFsc2UpICYmXG4gICAgICAgICAgICBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKCQkLlNDUklQVC5sZW5ndGgpKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8ICQkLlNDUklQVC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQodGhpcy5fY29uc3VtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPicpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORDtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVFbmQoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgoJCQuU0NSSVBULCBmYWxzZSkgJiZcbiAgICAgICAgICAgIGlzU2NyaXB0RGF0YURvdWJsZUVzY2FwZVNlcXVlbmNlRW5kKHRoaXMucHJlcHJvY2Vzc29yLnBlZWsoJCQuU0NSSVBULmxlbmd0aCkpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgJCQuU0NSSVBULmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludCh0aGlzLl9jb25zdW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBhdHRyaWJ1dGUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOlxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVFVQUxTX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRFcXVhbHNTaWduQmVmb3JlQXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignPScpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQXR0cmlidXRlTmFtZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVFVQUxTX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJOYW1lKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRTpcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckluQXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgYXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVFVQUxTX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9WQUxVRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZUF0dHJpYnV0ZVZhbHVlKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdBdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSAoZG91YmxlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIHZhbHVlIChzaW5nbGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSAodW5xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRDtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOlxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046XG4gICAgICAgICAgICBjYXNlICQuRVFVQUxTX1NJR046XG4gICAgICAgICAgICBjYXNlICQuR1JBVkVfQUNDRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkQ2hhcmFjdGVySW5VbnF1b3RlZEF0dHJpYnV0ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBhdHRyaWJ1dGUgdmFsdWUgKHF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0VMRl9DTE9TSU5HX1NUQVJUX1RBRztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJldHdlZW5BdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2VsZi1jbG9zaW5nIHN0YXJ0IHRhZyBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2VsZkNsb3NpbmdTdGFydFRhZyhjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgIHRva2VuLnNlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRTb2xpZHVzSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCb2d1cyBjb21tZW50IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCb2d1c0NvbW1lbnQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTWFya3VwIGRlY2xhcmF0aW9uIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZU1hcmt1cERlY2xhcmF0aW9uT3BlbihjcCkge1xuICAgICAgICBpZiAodGhpcy5fY29uc3VtZVNlcXVlbmNlSWZNYXRjaCgkJC5EQVNIX0RBU0gsIHRydWUpKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oJCQuREFTSF9EQVNILmxlbmd0aCArIDEpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfU1RBUlQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5fY29uc3VtZVNlcXVlbmNlSWZNYXRjaCgkJC5ET0NUWVBFLCBmYWxzZSkpIHtcbiAgICAgICAgICAgIC8vIE5PVEU6IERvY3R5cGVzIHRva2VucyBhcmUgY3JlYXRlZCB3aXRob3V0IGZpeGVkIG9mZnNldHMuIFdlIGtlZXAgdHJhY2sgb2YgdGhlIG1vbWVudCBhIGRvY3R5cGUgKm1pZ2h0KiBzdGFydCBoZXJlLlxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigkJC5ET0NUWVBFLmxlbmd0aCArIDEpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5fY29uc3VtZVNlcXVlbmNlSWZNYXRjaCgkJC5DREFUQV9TVEFSVCwgdHJ1ZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmluRm9yZWlnbk5vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuY2RhdGFJbkh0bWxDb250ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oJCQuQ0RBVEFfU1RBUlQubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSA9ICdbQ0RBVEFbJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfQ09NTUVOVDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IFNlcXVlbmNlIGxvb2t1cHMgY2FuIGJlIGFicnVwdGVkIGJ5IGhpYmVybmF0aW9uLiBJbiB0aGF0IGNhc2UsIGxvb2t1cFxuICAgICAgICAvL3Jlc3VsdHMgYXJlIG5vIGxvbmdlciB2YWxpZCBhbmQgd2Ugd2lsbCBuZWVkIHRvIHN0YXJ0IG92ZXIuXG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmluY29ycmVjdGx5T3BlbmVkQ29tbWVudCk7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oMik7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfQ09NTUVOVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNDb21tZW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IHN0YXJ0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50U3RhcnQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX1NUQVJUX0RBU0g7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IHN0YXJ0IGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRTdGFydERhc2goY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnPCc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuRVhDTEFNQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJyEnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICc8JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgbGVzcy10aGFuIHNpZ24gYmFuZyBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmcoY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgbGVzcy10aGFuIHNpZ24gYmFuZyBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Rhc2goY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0g7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkRfREFTSDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudEVuZERhc2goY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgbGVzcy10aGFuIHNpZ24gYmFuZyBkYXNoIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaERhc2goY3ApIHtcbiAgICAgICAgaWYgKGNwICE9PSAkLkdSRUFURVJfVEhBTl9TSUdOICYmIGNwICE9PSAkLkVPRikge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5uZXN0ZWRDb21tZW50KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkQ7XG4gICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudEVuZChjcCk7XG4gICAgfVxuICAgIC8vIENvbW1lbnQgZW5kIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRFbmREYXNoKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50RW5kKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0JBTkc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctLSc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGVuZCBiYW5nIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50RW5kQmFuZyhjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLS0hJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkRfREFTSDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW5jb3JyZWN0bHlDbG9zZWRDb21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctLSEnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQmVmb3JlRG9jdHlwZU5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBET0NUWVBFIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZURvY3R5cGVOYW1lKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4oU3RyaW5nLmZyb21DaGFyQ29kZSh0b0FzY2lpTG93ZXIoY3ApKSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9OQU1FO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4obnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4obnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVOYW1lKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5uYW1lICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5uYW1lICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGlzQXNjaWlVcHBlcihjcCkgPyB0b0FzY2lpTG93ZXIoY3ApIDogY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlTmFtZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uc3VtZVNlcXVlbmNlSWZNYXRjaCgkJC5QVUJMSUMsIGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fY29uc3VtZVNlcXVlbmNlSWZNYXRjaCgkJC5TWVNURU0sIGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy9OT1RFOiBzZXF1ZW5jZSBsb29rdXAgY2FuIGJlIGFicnVwdGVkIGJ5IGhpYmVybmF0aW9uLiBJbiB0aGF0IGNhc2UgbG9va3VwXG4gICAgICAgICAgICAgICAgLy9yZXN1bHRzIGFyZSBubyBsb25nZXIgdmFsaWQgYW5kIHdlIHdpbGwgbmVlZCB0byBzdGFydCBvdmVyLlxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW52YWxpZENoYXJhY3RlclNlcXVlbmNlQWZ0ZXJEb2N0eXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBwdWJsaWMga2V5d29yZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmQpO1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmQpO1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlUHVibGljSWRlbnRpZmllckRvdWJsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycyk7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycyk7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmV0d2VlbiBET0NUWVBFIHB1YmxpYyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHN5c3RlbSBrZXl3b3JkIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZCk7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZCk7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJTaW5nbGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHREb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRDaGFyYWN0ZXJBZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQm9ndXMgRE9DVFlQRSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQm9ndXNEb2N0eXBlKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDREFUQSBzZWN0aW9uIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDZGF0YVNlY3Rpb24oY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlJJR0hUX1NRVUFSRV9CUkFDS0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT05fQlJBQ0tFVDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ2RhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENEQVRBIHNlY3Rpb24gYnJhY2tldCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ2RhdGFTZWN0aW9uQnJhY2tldChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuUklHSFRfU1FVQVJFX0JSQUNLRVQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OX0VORDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnXScpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT047XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbihjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ0RBVEEgc2VjdGlvbiBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNkYXRhU2VjdGlvbkVuZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5SSUdIVF9TUVVBUkVfQlJBQ0tFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnXScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnXV0nKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbihjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5OVU1CRVJfU0lHTikge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpQWxwaGFOdW1lcmljKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5BTUVEX0NIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLkFNUEVSU0FORCk7XG4gICAgICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKHRoaXMucmV0dXJuU3RhdGUsIGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBOYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBjb25zdCBtYXRjaFJlc3VsdCA9IHRoaXMuX21hdGNoTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAvL05PVEU6IE1hdGNoaW5nIGNhbiBiZSBhYnJ1cHRlZCBieSBoaWJlcm5hdGlvbi4gSW4gdGhhdCBjYXNlLCBtYXRjaFxuICAgICAgICAvL3Jlc3VsdHMgYXJlIG5vIGxvbmdlciB2YWxpZCBhbmQgd2Ugd2lsbCBuZWVkIHRvIHN0YXJ0IG92ZXIuXG4gICAgICAgIGlmICh0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICAvLyBTdGF5IGluIHRoZSBzdGF0ZSwgdHJ5IGFnYWluLlxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG1hdGNoUmVzdWx0KSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdGNoUmVzdWx0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKG1hdGNoUmVzdWx0W2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLnJldHVyblN0YXRlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BTUJJR1VPVVNfQU1QRVJTQU5EO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFtYmlndW9zIGFtcGVyc2FuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQW1iaWd1b3VzQW1wZXJzYW5kKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpQWxwaGFOdW1lcmljKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjcCA9PT0gJC5TRU1JQ09MT04pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVua25vd25OYW1lZENoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKHRoaXMucmV0dXJuU3RhdGUsIGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBOdW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IDA7XG4gICAgICAgIGlmIChjcCA9PT0gJC5MQVRJTl9TTUFMTF9YIHx8IGNwID09PSAkLkxBVElOX0NBUElUQUxfWCkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfU1RBUlQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSW5saW5lZCBkZWNpbWFsIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhcnQgc3RhdGVcbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaURpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRFQ0lNQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlRGVjaW1hbENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFic2VuY2VPZkRpZ2l0c0luTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuTlVNQkVSX1NJR04pO1xuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSGV4YWRlbWljYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2VTdGFydChjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUhleERpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUhleGFkZW1pY2FsQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJzZW5jZU9mRGlnaXRzSW5OdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLkFNUEVSU0FORCk7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5OVU1CRVJfU0lHTik7XG4gICAgICAgICAgICB0aGlzLl91bmNvbnN1bWUoMik7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gdGhpcy5yZXR1cm5TdGF0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBIZXhhZGVtaWNhbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaVVwcGVySGV4RGlnaXQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gdGhpcy5jaGFyUmVmQ29kZSAqIDE2ICsgY3AgLSAweDM3O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlckhleERpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxNiArIGNwIC0gMHg1NztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpRGlnaXQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gdGhpcy5jaGFyUmVmQ29kZSAqIDE2ICsgY3AgLSAweDMwO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNwID09PSAkLlNFTUlDT0xPTikge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdTZW1pY29sb25BZnRlckNoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZUVuZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRGVjaW1hbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEZWNpbWFsQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpRGlnaXQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gdGhpcy5jaGFyUmVmQ29kZSAqIDEwICsgY3AgLSAweDMwO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNwID09PSAkLlNFTUlDT0xPTikge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdTZW1pY29sb25BZnRlckNoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZUVuZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlIGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZUVuZChjcCkge1xuICAgICAgICBpZiAodGhpcy5jaGFyUmVmQ29kZSA9PT0gJC5OVUxMKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm51bGxDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9ICQuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuY2hhclJlZkNvZGUgPiAxMTE0MTExKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNoYXJhY3RlclJlZmVyZW5jZU91dHNpZGVVbmljb2RlUmFuZ2UpO1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9ICQuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzU3Vycm9nYXRlKHRoaXMuY2hhclJlZkNvZGUpKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gJC5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNVbmRlZmluZWRDb2RlUG9pbnQodGhpcy5jaGFyUmVmQ29kZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubm9uY2hhcmFjdGVyQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0NvbnRyb2xDb2RlUG9pbnQodGhpcy5jaGFyUmVmQ29kZSkgfHwgdGhpcy5jaGFyUmVmQ29kZSA9PT0gJC5DQVJSSUFHRV9SRVRVUk4pIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuY29udHJvbENoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudCA9IEMxX0NPTlRST0xTX1JFRkVSRU5DRV9SRVBMQUNFTUVOVFMuZ2V0KHRoaXMuY2hhclJlZkNvZGUpO1xuICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gcmVwbGFjZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKHRoaXMuY2hhclJlZkNvZGUpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKHRoaXMucmV0dXJuU3RhdGUsIGNwKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCAiaW1wb3J0IHsgVEFHX0lEIGFzICQsIE5TLCBpc051bWJlcmVkSGVhZGVyIH0gZnJvbSAnLi4vY29tbW9uL2h0bWwuanMnO1xuLy9FbGVtZW50IHV0aWxzXG5jb25zdCBJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEID0gbmV3IFNldChbJC5ERCwgJC5EVCwgJC5MSSwgJC5PUFRHUk9VUCwgJC5PUFRJT04sICQuUCwgJC5SQiwgJC5SUCwgJC5SVCwgJC5SVENdKTtcbmNvbnN0IElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRURfVEhPUk9VR0hMWSA9IG5ldyBTZXQoW1xuICAgIC4uLklNUExJQ0lUX0VORF9UQUdfUkVRVUlSRUQsXG4gICAgJC5DQVBUSU9OLFxuICAgICQuQ09MR1JPVVAsXG4gICAgJC5UQk9EWSxcbiAgICAkLlRELFxuICAgICQuVEZPT1QsXG4gICAgJC5USCxcbiAgICAkLlRIRUFELFxuICAgICQuVFIsXG5dKTtcbmNvbnN0IFNDT1BJTkdfRUxFTUVOVF9OUyA9IG5ldyBNYXAoW1xuICAgIFskLkFQUExFVCwgTlMuSFRNTF0sXG4gICAgWyQuQ0FQVElPTiwgTlMuSFRNTF0sXG4gICAgWyQuSFRNTCwgTlMuSFRNTF0sXG4gICAgWyQuTUFSUVVFRSwgTlMuSFRNTF0sXG4gICAgWyQuT0JKRUNULCBOUy5IVE1MXSxcbiAgICBbJC5UQUJMRSwgTlMuSFRNTF0sXG4gICAgWyQuVEQsIE5TLkhUTUxdLFxuICAgIFskLlRFTVBMQVRFLCBOUy5IVE1MXSxcbiAgICBbJC5USCwgTlMuSFRNTF0sXG4gICAgWyQuQU5OT1RBVElPTl9YTUwsIE5TLk1BVEhNTF0sXG4gICAgWyQuTUksIE5TLk1BVEhNTF0sXG4gICAgWyQuTU4sIE5TLk1BVEhNTF0sXG4gICAgWyQuTU8sIE5TLk1BVEhNTF0sXG4gICAgWyQuTVMsIE5TLk1BVEhNTF0sXG4gICAgWyQuTVRFWFQsIE5TLk1BVEhNTF0sXG4gICAgWyQuREVTQywgTlMuU1ZHXSxcbiAgICBbJC5GT1JFSUdOX09CSkVDVCwgTlMuU1ZHXSxcbiAgICBbJC5USVRMRSwgTlMuU1ZHXSxcbl0pO1xuY29uc3QgTkFNRURfSEVBREVSUyA9IFskLkgxLCAkLkgyLCAkLkgzLCAkLkg0LCAkLkg1LCAkLkg2XTtcbmNvbnN0IFRBQkxFX1JPV19DT05URVhUID0gWyQuVFIsICQuVEVNUExBVEUsICQuSFRNTF07XG5jb25zdCBUQUJMRV9CT0RZX0NPTlRFWFQgPSBbJC5UQk9EWSwgJC5URk9PVCwgJC5USEVBRCwgJC5URU1QTEFURSwgJC5IVE1MXTtcbmNvbnN0IFRBQkxFX0NPTlRFWFQgPSBbJC5UQUJMRSwgJC5URU1QTEFURSwgJC5IVE1MXTtcbmNvbnN0IFRBQkxFX0NFTExTID0gWyQuVEQsICQuVEhdO1xuLy9TdGFjayBvZiBvcGVuIGVsZW1lbnRzXG5leHBvcnQgY2xhc3MgT3BlbkVsZW1lbnRTdGFjayB7XG4gICAgZ2V0IGN1cnJlbnRUbXBsQ29udGVudE9yTm9kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSW5UZW1wbGF0ZSgpID8gdGhpcy50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQodGhpcy5jdXJyZW50KSA6IHRoaXMuY3VycmVudDtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoZG9jdW1lbnQsIHRyZWVBZGFwdGVyLCBoYW5kbGVyKSB7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0cmVlQWRhcHRlcjtcbiAgICAgICAgdGhpcy5oYW5kbGVyID0gaGFuZGxlcjtcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLnRhZ0lEcyA9IFtdO1xuICAgICAgICB0aGlzLnN0YWNrVG9wID0gLTE7XG4gICAgICAgIHRoaXMudG1wbENvdW50ID0gMDtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnSWQgPSAkLlVOS05PV047XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGRvY3VtZW50O1xuICAgIH1cbiAgICAvL0luZGV4IG9mIGVsZW1lbnRcbiAgICBfaW5kZXhPZihlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmxhc3RJbmRleE9mKGVsZW1lbnQsIHRoaXMuc3RhY2tUb3ApO1xuICAgIH1cbiAgICAvL1VwZGF0ZSBjdXJyZW50IGVsZW1lbnRcbiAgICBfaXNJblRlbXBsYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50VGFnSWQgPT09ICQuVEVNUExBVEUgJiYgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5jdXJyZW50KSA9PT0gTlMuSFRNTDtcbiAgICB9XG4gICAgX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCkge1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLml0ZW1zW3RoaXMuc3RhY2tUb3BdO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdJZCA9IHRoaXMudGFnSURzW3RoaXMuc3RhY2tUb3BdO1xuICAgIH1cbiAgICAvL011dGF0aW9uc1xuICAgIHB1c2goZWxlbWVudCwgdGFnSUQpIHtcbiAgICAgICAgdGhpcy5zdGFja1RvcCsrO1xuICAgICAgICB0aGlzLml0ZW1zW3RoaXMuc3RhY2tUb3BdID0gZWxlbWVudDtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gZWxlbWVudDtcbiAgICAgICAgdGhpcy50YWdJRHNbdGhpcy5zdGFja1RvcF0gPSB0YWdJRDtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnSWQgPSB0YWdJRDtcbiAgICAgICAgaWYgKHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnRtcGxDb3VudCsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkl0ZW1QdXNoKGVsZW1lbnQsIHRhZ0lELCB0cnVlKTtcbiAgICB9XG4gICAgcG9wKCkge1xuICAgICAgICBjb25zdCBwb3BwZWQgPSB0aGlzLmN1cnJlbnQ7XG4gICAgICAgIGlmICh0aGlzLnRtcGxDb3VudCA+IDAgJiYgdGhpcy5faXNJblRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgIHRoaXMudG1wbENvdW50LS07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFja1RvcC0tO1xuICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUG9wKHBvcHBlZCwgdHJ1ZSk7XG4gICAgfVxuICAgIHJlcGxhY2Uob2xkRWxlbWVudCwgbmV3RWxlbWVudCkge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLl9pbmRleE9mKG9sZEVsZW1lbnQpO1xuICAgICAgICB0aGlzLml0ZW1zW2lkeF0gPSBuZXdFbGVtZW50O1xuICAgICAgICBpZiAoaWR4ID09PSB0aGlzLnN0YWNrVG9wKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnQgPSBuZXdFbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIGluc2VydEFmdGVyKHJlZmVyZW5jZUVsZW1lbnQsIG5ld0VsZW1lbnQsIG5ld0VsZW1lbnRJRCkge1xuICAgICAgICBjb25zdCBpbnNlcnRpb25JZHggPSB0aGlzLl9pbmRleE9mKHJlZmVyZW5jZUVsZW1lbnQpICsgMTtcbiAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5zZXJ0aW9uSWR4LCAwLCBuZXdFbGVtZW50KTtcbiAgICAgICAgdGhpcy50YWdJRHMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3RWxlbWVudElEKTtcbiAgICAgICAgdGhpcy5zdGFja1RvcCsrO1xuICAgICAgICBpZiAoaW5zZXJ0aW9uSWR4ID09PSB0aGlzLnN0YWNrVG9wKSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkl0ZW1QdXNoKHRoaXMuY3VycmVudCwgdGhpcy5jdXJyZW50VGFnSWQsIGluc2VydGlvbklkeCA9PT0gdGhpcy5zdGFja1RvcCk7XG4gICAgfVxuICAgIHBvcFVudGlsVGFnTmFtZVBvcHBlZCh0YWdOYW1lKSB7XG4gICAgICAgIGxldCB0YXJnZXRJZHggPSB0aGlzLnN0YWNrVG9wICsgMTtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgdGFyZ2V0SWR4ID0gdGhpcy50YWdJRHMubGFzdEluZGV4T2YodGFnTmFtZSwgdGFyZ2V0SWR4IC0gMSk7XG4gICAgICAgIH0gd2hpbGUgKHRhcmdldElkeCA+IDAgJiYgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1t0YXJnZXRJZHhdKSAhPT0gTlMuSFRNTCk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKHRhcmdldElkeCA8IDAgPyAwIDogdGFyZ2V0SWR4KTtcbiAgICB9XG4gICAgc2hvcnRlblRvTGVuZ3RoKGlkeCkge1xuICAgICAgICB3aGlsZSAodGhpcy5zdGFja1RvcCA+PSBpZHgpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvcHBlZCA9IHRoaXMuY3VycmVudDtcbiAgICAgICAgICAgIGlmICh0aGlzLnRtcGxDb3VudCA+IDAgJiYgdGhpcy5faXNJblRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRtcGxDb3VudCAtPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGFja1RvcC0tO1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbkl0ZW1Qb3AocG9wcGVkLCB0aGlzLnN0YWNrVG9wIDwgaWR4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwb3BVbnRpbEVsZW1lbnRQb3BwZWQoZWxlbWVudCkge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLl9pbmRleE9mKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aChpZHggPCAwID8gMCA6IGlkeCk7XG4gICAgfVxuICAgIHBvcFVudGlsUG9wcGVkKHRhZ05hbWVzLCB0YXJnZXROUykge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLl9pbmRleE9mVGFnTmFtZXModGFnTmFtZXMsIHRhcmdldE5TKTtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgoaWR4IDwgMCA/IDAgOiBpZHgpO1xuICAgIH1cbiAgICBwb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCkge1xuICAgICAgICB0aGlzLnBvcFVudGlsUG9wcGVkKE5BTUVEX0hFQURFUlMsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBwb3BVbnRpbFRhYmxlQ2VsbFBvcHBlZCgpIHtcbiAgICAgICAgdGhpcy5wb3BVbnRpbFBvcHBlZChUQUJMRV9DRUxMUywgTlMuSFRNTCk7XG4gICAgfVxuICAgIHBvcEFsbFVwVG9IdG1sRWxlbWVudCgpIHtcbiAgICAgICAgLy9OT1RFOiBoZXJlIHdlIGFzc3VtZSB0aGF0IHRoZSByb290IDxodG1sPiBlbGVtZW50IGlzIGFsd2F5cyBmaXJzdCBpbiB0aGUgb3BlbiBlbGVtZW50IHN0YWNrLCBzb1xuICAgICAgICAvL3dlIHBlcmZvcm0gdGhpcyBmYXN0IHN0YWNrIGNsZWFuIHVwLlxuICAgICAgICB0aGlzLnRtcGxDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKDEpO1xuICAgIH1cbiAgICBfaW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCBuYW1lc3BhY2UpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAodGFnTmFtZXMuaW5jbHVkZXModGhpcy50YWdJRHNbaV0pICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pID09PSBuYW1lc3BhY2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIGNsZWFyQmFja1RvKHRhZ05hbWVzLCB0YXJnZXROUykge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLl9pbmRleE9mVGFnTmFtZXModGFnTmFtZXMsIHRhcmdldE5TKTtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgoaWR4ICsgMSk7XG4gICAgfVxuICAgIGNsZWFyQmFja1RvVGFibGVDb250ZXh0KCkge1xuICAgICAgICB0aGlzLmNsZWFyQmFja1RvKFRBQkxFX0NPTlRFWFQsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBjbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJCYWNrVG8oVEFCTEVfQk9EWV9DT05URVhULCBOUy5IVE1MKTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJCYWNrVG8oVEFCTEVfUk9XX0NPTlRFWFQsIE5TLkhUTUwpO1xuICAgIH1cbiAgICByZW1vdmUoZWxlbWVudCkge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLl9pbmRleE9mKGVsZW1lbnQpO1xuICAgICAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgICAgICAgIGlmIChpZHggPT09IHRoaXMuc3RhY2tUb3ApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhZ0lEcy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrVG9wLS07XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUG9wKGVsZW1lbnQsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1NlYXJjaFxuICAgIHRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCkge1xuICAgICAgICAvL1Byb3Blcmx5IG5lc3RlZCA8Ym9keT4gZWxlbWVudCAoc2hvdWxkIGJlIHNlY29uZCBlbGVtZW50IGluIHN0YWNrKS5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tUb3AgPj0gMSAmJiB0aGlzLnRhZ0lEc1sxXSA9PT0gJC5CT0RZID8gdGhpcy5pdGVtc1sxXSA6IG51bGw7XG4gICAgfVxuICAgIGNvbnRhaW5zKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luZGV4T2YoZWxlbWVudCkgPiAtMTtcbiAgICB9XG4gICAgZ2V0Q29tbW9uQW5jZXN0b3IoZWxlbWVudCkge1xuICAgICAgICBjb25zdCBlbGVtZW50SWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KSAtIDE7XG4gICAgICAgIHJldHVybiBlbGVtZW50SWR4ID49IDAgPyB0aGlzLml0ZW1zW2VsZW1lbnRJZHhdIDogbnVsbDtcbiAgICB9XG4gICAgaXNSb290SHRtbEVsZW1lbnRDdXJyZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLnRhZ0lEc1swXSA9PT0gJC5IVE1MO1xuICAgIH1cbiAgICAvL0VsZW1lbnQgaW4gc2NvcGVcbiAgICBoYXNJblNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFNDT1BJTkdfRUxFTUVOVF9OUy5nZXQodG4pID09PSBucykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKGlzTnVtYmVyZWRIZWFkZXIodG4pICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoU0NPUElOR19FTEVNRU5UX05TLmdldCh0bikgPT09IG5zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJbkxpc3RJdGVtU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKCh0biA9PT0gJC5VTCB8fCB0biA9PT0gJC5PTCkgJiYgbnMgPT09IE5TLkhUTUwpIHx8IFNDT1BJTkdfRUxFTUVOVF9OUy5nZXQodG4pID09PSBucykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzSW5CdXR0b25TY29wZSh0YWdOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgodG4gPT09ICQuQlVUVE9OICYmIG5zID09PSBOUy5IVE1MKSB8fCBTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc0luVGFibGVTY29wZSh0YWdOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAobnMgIT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRFTVBMQVRFIHx8IHRuID09PSAkLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAobnMgIT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5USEVBRCB8fCB0biA9PT0gJC5URk9PVCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc0luU2VsZWN0U2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biAhPT0gJC5PUFRJT04gJiYgdG4gIT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vSW1wbGllZCBlbmQgdGFnc1xuICAgIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKSB7XG4gICAgICAgIHdoaWxlIChJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVELmhhcyh0aGlzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1Rob3JvdWdobHkoKSB7XG4gICAgICAgIHdoaWxlIChJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkuaGFzKHRoaXMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbihleGNsdXNpb25JZCkge1xuICAgICAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnSWQgIT09IGV4Y2x1c2lvbklkICYmIElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRURfVEhPUk9VR0hMWS5oYXModGhpcy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9b3Blbi1lbGVtZW50LXN0YWNrLmpzLm1hcCIsICIvL0NvbnN0XG5jb25zdCBOT0FIX0FSS19DQVBBQ0lUWSA9IDM7XG5leHBvcnQgdmFyIEVudHJ5VHlwZTtcbihmdW5jdGlvbiAoRW50cnlUeXBlKSB7XG4gICAgRW50cnlUeXBlW0VudHJ5VHlwZVtcIk1hcmtlclwiXSA9IDBdID0gXCJNYXJrZXJcIjtcbiAgICBFbnRyeVR5cGVbRW50cnlUeXBlW1wiRWxlbWVudFwiXSA9IDFdID0gXCJFbGVtZW50XCI7XG59KShFbnRyeVR5cGUgPSBFbnRyeVR5cGUgfHwgKEVudHJ5VHlwZSA9IHt9KSk7XG5jb25zdCBNQVJLRVIgPSB7IHR5cGU6IEVudHJ5VHlwZS5NYXJrZXIgfTtcbi8vTGlzdCBvZiBmb3JtYXR0aW5nIGVsZW1lbnRzXG5leHBvcnQgY2xhc3MgRm9ybWF0dGluZ0VsZW1lbnRMaXN0IHtcbiAgICBjb25zdHJ1Y3Rvcih0cmVlQWRhcHRlcikge1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMuZW50cmllcyA9IFtdO1xuICAgICAgICB0aGlzLmJvb2ttYXJrID0gbnVsbDtcbiAgICB9XG4gICAgLy9Ob2FoIEFyaydzIGNvbmRpdGlvblxuICAgIC8vT1BUSU1JWkFUSU9OOiBhdCBmaXJzdCB3ZSB0cnkgdG8gZmluZCBwb3NzaWJsZSBjYW5kaWRhdGVzIGZvciBleGNsdXNpb24gdXNpbmdcbiAgICAvL2xpZ2h0d2VpZ2h0IGhldXJpc3RpY3Mgd2l0aG91dCB0aG9yb3VnaCBhdHRyaWJ1dGVzIGNoZWNrLlxuICAgIF9nZXROb2FoQXJrQ29uZGl0aW9uQ2FuZGlkYXRlcyhuZXdFbGVtZW50LCBuZUF0dHJzKSB7XG4gICAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBbXTtcbiAgICAgICAgY29uc3QgbmVBdHRyc0xlbmd0aCA9IG5lQXR0cnMubGVuZ3RoO1xuICAgICAgICBjb25zdCBuZVRhZ05hbWUgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobmV3RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG5lTmFtZXNwYWNlVVJJID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkobmV3RWxlbWVudCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbnRyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZW50cmllc1tpXTtcbiAgICAgICAgICAgIGlmIChlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IGVsZW1lbnQgfSA9IGVudHJ5O1xuICAgICAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gbmVUYWdOYW1lICYmXG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCkgPT09IG5lTmFtZXNwYWNlVVJJKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudEF0dHJzID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudEF0dHJzLmxlbmd0aCA9PT0gbmVBdHRyc0xlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLnB1c2goeyBpZHg6IGksIGF0dHJzOiBlbGVtZW50QXR0cnMgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYW5kaWRhdGVzO1xuICAgIH1cbiAgICBfZW5zdXJlTm9haEFya0NvbmRpdGlvbihuZXdFbGVtZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmVudHJpZXMubGVuZ3RoIDwgTk9BSF9BUktfQ0FQQUNJVFkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5lQXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KG5ld0VsZW1lbnQpO1xuICAgICAgICBjb25zdCBjYW5kaWRhdGVzID0gdGhpcy5fZ2V0Tm9haEFya0NvbmRpdGlvbkNhbmRpZGF0ZXMobmV3RWxlbWVudCwgbmVBdHRycyk7XG4gICAgICAgIGlmIChjYW5kaWRhdGVzLmxlbmd0aCA8IE5PQUhfQVJLX0NBUEFDSVRZKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvL05PVEU6IGJ1aWxkIGF0dHJzIG1hcCBmb3IgdGhlIG5ldyBlbGVtZW50LCBzbyB3ZSBjYW4gcGVyZm9ybSBmYXN0IGxvb2t1cHNcbiAgICAgICAgY29uc3QgbmVBdHRyc01hcCA9IG5ldyBNYXAobmVBdHRycy5tYXAoKG5lQXR0cikgPT4gW25lQXR0ci5uYW1lLCBuZUF0dHIudmFsdWVdKSk7XG4gICAgICAgIGxldCB2YWxpZENhbmRpZGF0ZXMgPSAwO1xuICAgICAgICAvL05PVEU6IHJlbW92ZSBib3R0b21tb3N0IGNhbmRpZGF0ZXMsIHVudGlsIE5vYWgncyBBcmsgY29uZGl0aW9uIHdpbGwgbm90IGJlIG1ldFxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbmRpZGF0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGNhbmRpZGF0ZXNbaV07XG4gICAgICAgICAgICAvLyBXZSBrbm93IHRoYXQgYGNhbmRpZGF0ZS5hdHRycy5sZW5ndGggPT09IG5lQXR0cnMubGVuZ3RoYFxuICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZS5hdHRycy5ldmVyeSgoY0F0dHIpID0+IG5lQXR0cnNNYXAuZ2V0KGNBdHRyLm5hbWUpID09PSBjQXR0ci52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZENhbmRpZGF0ZXMgKz0gMTtcbiAgICAgICAgICAgICAgICBpZiAodmFsaWRDYW5kaWRhdGVzID49IE5PQUhfQVJLX0NBUEFDSVRZKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoY2FuZGlkYXRlLmlkeCwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vTXV0YXRpb25zXG4gICAgaW5zZXJ0TWFya2VyKCkge1xuICAgICAgICB0aGlzLmVudHJpZXMudW5zaGlmdChNQVJLRVIpO1xuICAgIH1cbiAgICBwdXNoRWxlbWVudChlbGVtZW50LCB0b2tlbikge1xuICAgICAgICB0aGlzLl9lbnN1cmVOb2FoQXJrQ29uZGl0aW9uKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLmVudHJpZXMudW5zaGlmdCh7XG4gICAgICAgICAgICB0eXBlOiBFbnRyeVR5cGUuRWxlbWVudCxcbiAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGluc2VydEVsZW1lbnRBZnRlckJvb2ttYXJrKGVsZW1lbnQsIHRva2VuKSB7XG4gICAgICAgIGNvbnN0IGJvb2ttYXJrSWR4ID0gdGhpcy5lbnRyaWVzLmluZGV4T2YodGhpcy5ib29rbWFyayk7XG4gICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoYm9va21hcmtJZHgsIDAsIHtcbiAgICAgICAgICAgIHR5cGU6IEVudHJ5VHlwZS5FbGVtZW50LFxuICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmVtb3ZlRW50cnkoZW50cnkpIHtcbiAgICAgICAgY29uc3QgZW50cnlJbmRleCA9IHRoaXMuZW50cmllcy5pbmRleE9mKGVudHJ5KTtcbiAgICAgICAgaWYgKGVudHJ5SW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShlbnRyeUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgdGhlIGxpc3Qgb2YgZm9ybWF0dGluZyBlbGVtZW50cyB1cCB0byB0aGUgbGFzdCBtYXJrZXIuXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNjbGVhci10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy11cC10by10aGUtbGFzdC1tYXJrZXJcbiAgICAgKi9cbiAgICBjbGVhclRvTGFzdE1hcmtlcigpIHtcbiAgICAgICAgY29uc3QgbWFya2VySWR4ID0gdGhpcy5lbnRyaWVzLmluZGV4T2YoTUFSS0VSKTtcbiAgICAgICAgaWYgKG1hcmtlcklkeCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKDAsIG1hcmtlcklkeCArIDEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbnRyaWVzLmxlbmd0aCA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9TZWFyY2hcbiAgICBnZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUodGFnTmFtZSkge1xuICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZW50cmllcy5maW5kKChlbnRyeSkgPT4gZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLk1hcmtlciB8fCB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZW50cnkuZWxlbWVudCkgPT09IHRhZ05hbWUpO1xuICAgICAgICByZXR1cm4gZW50cnkgJiYgZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLkVsZW1lbnQgPyBlbnRyeSA6IG51bGw7XG4gICAgfVxuICAgIGdldEVsZW1lbnRFbnRyeShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5FbGVtZW50ICYmIGVudHJ5LmVsZW1lbnQgPT09IGVsZW1lbnQpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcm1hdHRpbmctZWxlbWVudC1saXN0LmpzLm1hcCIsICJpbXBvcnQgeyBET0NVTUVOVF9NT0RFIH0gZnJvbSAnLi4vY29tbW9uL2h0bWwuanMnO1xuZnVuY3Rpb24gY3JlYXRlVGV4dE5vZGUodmFsdWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBub2RlTmFtZTogJyN0ZXh0JyxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgfTtcbn1cbmV4cG9ydCBjb25zdCBkZWZhdWx0VHJlZUFkYXB0ZXIgPSB7XG4gICAgLy9Ob2RlIGNvbnN0cnVjdGlvblxuICAgIGNyZWF0ZURvY3VtZW50KCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQnLFxuICAgICAgICAgICAgbW9kZTogRE9DVU1FTlRfTU9ERS5OT19RVUlSS1MsXG4gICAgICAgICAgICBjaGlsZE5vZGVzOiBbXSxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBub2RlTmFtZTogJyNkb2N1bWVudC1mcmFnbWVudCcsXG4gICAgICAgICAgICBjaGlsZE5vZGVzOiBbXSxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgbmFtZXNwYWNlVVJJLCBhdHRycykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6IHRhZ05hbWUsXG4gICAgICAgICAgICB0YWdOYW1lLFxuICAgICAgICAgICAgYXR0cnMsXG4gICAgICAgICAgICBuYW1lc3BhY2VVUkksXG4gICAgICAgICAgICBjaGlsZE5vZGVzOiBbXSxcbiAgICAgICAgICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVDb21tZW50Tm9kZShkYXRhKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBub2RlTmFtZTogJyNjb21tZW50JyxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgLy9UcmVlIG11dGF0aW9uXG4gICAgYXBwZW5kQ2hpbGQocGFyZW50Tm9kZSwgbmV3Tm9kZSkge1xuICAgICAgICBwYXJlbnROb2RlLmNoaWxkTm9kZXMucHVzaChuZXdOb2RlKTtcbiAgICAgICAgbmV3Tm9kZS5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgICB9LFxuICAgIGluc2VydEJlZm9yZShwYXJlbnROb2RlLCBuZXdOb2RlLCByZWZlcmVuY2VOb2RlKSB7XG4gICAgICAgIGNvbnN0IGluc2VydGlvbklkeCA9IHBhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHJlZmVyZW5jZU5vZGUpO1xuICAgICAgICBwYXJlbnROb2RlLmNoaWxkTm9kZXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3Tm9kZSk7XG4gICAgICAgIG5ld05vZGUucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBzZXRUZW1wbGF0ZUNvbnRlbnQodGVtcGxhdGVFbGVtZW50LCBjb250ZW50RWxlbWVudCkge1xuICAgICAgICB0ZW1wbGF0ZUVsZW1lbnQuY29udGVudCA9IGNvbnRlbnRFbGVtZW50O1xuICAgIH0sXG4gICAgZ2V0VGVtcGxhdGVDb250ZW50KHRlbXBsYXRlRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGVtcGxhdGVFbGVtZW50LmNvbnRlbnQ7XG4gICAgfSxcbiAgICBzZXREb2N1bWVudFR5cGUoZG9jdW1lbnQsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkge1xuICAgICAgICBjb25zdCBkb2N0eXBlTm9kZSA9IGRvY3VtZW50LmNoaWxkTm9kZXMuZmluZCgobm9kZSkgPT4gbm9kZS5ub2RlTmFtZSA9PT0gJyNkb2N1bWVudFR5cGUnKTtcbiAgICAgICAgaWYgKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgICAgICBkb2N0eXBlTm9kZS5uYW1lID0gbmFtZTtcbiAgICAgICAgICAgIGRvY3R5cGVOb2RlLnB1YmxpY0lkID0gcHVibGljSWQ7XG4gICAgICAgICAgICBkb2N0eXBlTm9kZS5zeXN0ZW1JZCA9IHN5c3RlbUlkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHtcbiAgICAgICAgICAgICAgICBub2RlTmFtZTogJyNkb2N1bWVudFR5cGUnLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgcHVibGljSWQsXG4gICAgICAgICAgICAgICAgc3lzdGVtSWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQsIG5vZGUpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBzZXREb2N1bWVudE1vZGUoZG9jdW1lbnQsIG1vZGUpIHtcbiAgICAgICAgZG9jdW1lbnQubW9kZSA9IG1vZGU7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudE1vZGUoZG9jdW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50Lm1vZGU7XG4gICAgfSxcbiAgICBkZXRhY2hOb2RlKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgY29uc3QgaWR4ID0gbm9kZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihub2RlKTtcbiAgICAgICAgICAgIG5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgbm9kZS5wYXJlbnROb2RlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaW5zZXJ0VGV4dChwYXJlbnROb2RlLCB0ZXh0KSB7XG4gICAgICAgIGlmIChwYXJlbnROb2RlLmNoaWxkTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgcHJldk5vZGUgPSBwYXJlbnROb2RlLmNoaWxkTm9kZXNbcGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgaWYgKGRlZmF1bHRUcmVlQWRhcHRlci5pc1RleHROb2RlKHByZXZOb2RlKSkge1xuICAgICAgICAgICAgICAgIHByZXZOb2RlLnZhbHVlICs9IHRleHQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHRUcmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnROb2RlLCBjcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7XG4gICAgfSxcbiAgICBpbnNlcnRUZXh0QmVmb3JlKHBhcmVudE5vZGUsIHRleHQsIHJlZmVyZW5jZU5vZGUpIHtcbiAgICAgICAgY29uc3QgcHJldk5vZGUgPSBwYXJlbnROb2RlLmNoaWxkTm9kZXNbcGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2YocmVmZXJlbmNlTm9kZSkgLSAxXTtcbiAgICAgICAgaWYgKHByZXZOb2RlICYmIGRlZmF1bHRUcmVlQWRhcHRlci5pc1RleHROb2RlKHByZXZOb2RlKSkge1xuICAgICAgICAgICAgcHJldk5vZGUudmFsdWUgKz0gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGRlZmF1bHRUcmVlQWRhcHRlci5pbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgY3JlYXRlVGV4dE5vZGUodGV4dCksIHJlZmVyZW5jZU5vZGUpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBhZG9wdEF0dHJpYnV0ZXMocmVjaXBpZW50LCBhdHRycykge1xuICAgICAgICBjb25zdCByZWNpcGllbnRBdHRyc01hcCA9IG5ldyBTZXQocmVjaXBpZW50LmF0dHJzLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKSk7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgYXR0cnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIGlmICghcmVjaXBpZW50QXR0cnNNYXAuaGFzKGF0dHJzW2pdLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmVjaXBpZW50LmF0dHJzLnB1c2goYXR0cnNbal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICAvL1RyZWUgdHJhdmVyc2luZ1xuICAgIGdldEZpcnN0Q2hpbGQobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzWzBdO1xuICAgIH0sXG4gICAgZ2V0Q2hpbGROb2Rlcyhub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLmNoaWxkTm9kZXM7XG4gICAgfSxcbiAgICBnZXRQYXJlbnROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZTtcbiAgICB9LFxuICAgIGdldEF0dHJMaXN0KGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuYXR0cnM7XG4gICAgfSxcbiAgICAvL05vZGUgZGF0YVxuICAgIGdldFRhZ05hbWUoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC50YWdOYW1lO1xuICAgIH0sXG4gICAgZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQubmFtZXNwYWNlVVJJO1xuICAgIH0sXG4gICAgZ2V0VGV4dE5vZGVDb250ZW50KHRleHROb2RlKSB7XG4gICAgICAgIHJldHVybiB0ZXh0Tm9kZS52YWx1ZTtcbiAgICB9LFxuICAgIGdldENvbW1lbnROb2RlQ29udGVudChjb21tZW50Tm9kZSkge1xuICAgICAgICByZXR1cm4gY29tbWVudE5vZGUuZGF0YTtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVOYW1lKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N0eXBlTm9kZS5uYW1lO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRUeXBlTm9kZVB1YmxpY0lkKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N0eXBlTm9kZS5wdWJsaWNJZDtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVTeXN0ZW1JZChkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUuc3lzdGVtSWQ7XG4gICAgfSxcbiAgICAvL05vZGUgdHlwZXNcbiAgICBpc1RleHROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCc7XG4gICAgfSxcbiAgICBpc0NvbW1lbnROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjY29tbWVudCc7XG4gICAgfSxcbiAgICBpc0RvY3VtZW50VHlwZU5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJyNkb2N1bWVudFR5cGUnO1xuICAgIH0sXG4gICAgaXNFbGVtZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobm9kZSwgJ3RhZ05hbWUnKTtcbiAgICB9LFxuICAgIC8vIFNvdXJjZSBjb2RlIGxvY2F0aW9uXG4gICAgc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihub2RlLCBsb2NhdGlvbikge1xuICAgICAgICBub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiA9IGxvY2F0aW9uO1xuICAgIH0sXG4gICAgZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLnNvdXJjZUNvZGVMb2NhdGlvbjtcbiAgICB9LFxuICAgIHVwZGF0ZU5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSwgZW5kTG9jYXRpb24pIHtcbiAgICAgICAgbm9kZS5zb3VyY2VDb2RlTG9jYXRpb24gPSB7IC4uLm5vZGUuc291cmNlQ29kZUxvY2F0aW9uLCAuLi5lbmRMb2NhdGlvbiB9O1xuICAgIH0sXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVmYXVsdC5qcy5tYXAiLCAiaW1wb3J0IHsgRE9DVU1FTlRfTU9ERSB9IGZyb20gJy4vaHRtbC5qcyc7XG4vL0NvbnN0XG5jb25zdCBWQUxJRF9ET0NUWVBFX05BTUUgPSAnaHRtbCc7XG5jb25zdCBWQUxJRF9TWVNURU1fSUQgPSAnYWJvdXQ6bGVnYWN5LWNvbXBhdCc7XG5jb25zdCBRVUlSS1NfTU9ERV9TWVNURU1fSUQgPSAnaHR0cDovL3d3dy5pYm0uY29tL2RhdGEvZHRkL3YxMS9pYm14aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCc7XG5jb25zdCBRVUlSS1NfTU9ERV9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgJysvL3NpbG1hcmlsLy9kdGQgaHRtbCBwcm8gdjByMTEgMTk5NzAxMDEvLycsXG4gICAgJy0vL2FzLy9kdGQgaHRtbCAzLjAgYXN3ZWRpdCArIGV4dGVuc2lvbnMvLycsXG4gICAgJy0vL2FkdmFzb2Z0IGx0ZC8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgbGV2ZWwgMS8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDIvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMS8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0Ly8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMWUvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDMuMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4yIGZpbmFsLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjIvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDMvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDAvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDIvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDMvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAwLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMS8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDIvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sLy8nLFxuICAgICctLy9tZXRyaXVzLy9kdGQgbWV0cml1cyBwcmVzZW50YXRpb25hbC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIGh0bWwgc3RyaWN0Ly8nLFxuICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgaHRtbC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIHRhYmxlcy8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIGh0bWwgc3RyaWN0Ly8nLFxuICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgaHRtbC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIHRhYmxlcy8vJyxcbiAgICAnLS8vbmV0c2NhcGUgY29tbS4gY29ycC4vL2R0ZCBodG1sLy8nLFxuICAgICctLy9uZXRzY2FwZSBjb21tLiBjb3JwLi8vZHRkIHN0cmljdCBodG1sLy8nLFxuICAgIFwiLS8vbydyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIDIuMC8vXCIsXG4gICAgXCItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgZXh0ZW5kZWQgMS4wLy9cIixcbiAgICBcIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCBleHRlbmRlZCByZWxheGVkIDEuMC8vXCIsXG4gICAgJy0vL3NxLy9kdGQgaHRtbCAyLjAgaG90bWV0YWwgKyBleHRlbnNpb25zLy8nLFxuICAgICctLy9zb2Z0cXVhZCBzb2Z0d2FyZS8vZHRkIGhvdG1ldGFsIHBybyA2LjA6OjE5OTkwNjAxOjpleHRlbnNpb25zIHRvIGh0bWwgNC4wLy8nLFxuICAgICctLy9zb2Z0cXVhZC8vZHRkIGhvdG1ldGFsIHBybyA0LjA6OjE5OTcxMDEwOjpleHRlbnNpb25zIHRvIGh0bWwgNC4wLy8nLFxuICAgICctLy9zcHlnbGFzcy8vZHRkIGh0bWwgMi4wIGV4dGVuZGVkLy8nLFxuICAgICctLy9zdW4gbWljcm9zeXN0ZW1zIGNvcnAuLy9kdGQgaG90amF2YSBodG1sLy8nLFxuICAgICctLy9zdW4gbWljcm9zeXN0ZW1zIGNvcnAuLy9kdGQgaG90amF2YSBzdHJpY3QgaHRtbC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzIDE5OTUtMDMtMjQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yIGRyYWZ0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMiBmaW5hbC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjIvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMy4ycyBkcmFmdC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wIHRyYW5zaXRpb25hbC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCBleHBlcmltZW50YWwgMTk5NjA3MTIvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDk3MDQyMS8vJyxcbiAgICAnLS8vdzNjLy9kdGQgdzMgaHRtbC8vJyxcbiAgICAnLS8vdzNvLy9kdGQgdzMgaHRtbCAzLjAvLycsXG4gICAgJy0vL3dlYnRlY2hzLy9kdGQgbW96aWxsYSBodG1sIDIuMC8vJyxcbiAgICAnLS8vd2VidGVjaHMvL2R0ZCBtb3ppbGxhIGh0bWwvLycsXG5dO1xuY29uc3QgUVVJUktTX01PREVfTk9fU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFtcbiAgICAuLi5RVUlSS1NfTU9ERV9QVUJMSUNfSURfUFJFRklYRVMsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSBmcmFtZXNldC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAxIHRyYW5zaXRpb25hbC8vJyxcbl07XG5jb25zdCBRVUlSS1NfTU9ERV9QVUJMSUNfSURTID0gbmV3IFNldChbXG4gICAgJy0vL3czby8vZHRkIHczIGh0bWwgc3RyaWN0IDMuMC8vZW4vLycsXG4gICAgJy0vdzNjL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvZW4nLFxuICAgICdodG1sJyxcbl0pO1xuY29uc3QgTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTID0gWyctLy93M2MvL2R0ZCB4aHRtbCAxLjAgZnJhbWVzZXQvLycsICctLy93M2MvL2R0ZCB4aHRtbCAxLjAgdHJhbnNpdGlvbmFsLy8nXTtcbmNvbnN0IExJTUlURURfUVVJUktTX1dJVEhfU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFtcbiAgICAuLi5MSU1JVEVEX1FVSVJLU19QVUJMSUNfSURfUFJFRklYRVMsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSBmcmFtZXNldC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAxIHRyYW5zaXRpb25hbC8vJyxcbl07XG4vL1V0aWxzXG5mdW5jdGlvbiBoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSB7XG4gICAgcmV0dXJuIHByZWZpeGVzLnNvbWUoKHByZWZpeCkgPT4gcHVibGljSWQuc3RhcnRzV2l0aChwcmVmaXgpKTtcbn1cbi8vQVBJXG5leHBvcnQgZnVuY3Rpb24gaXNDb25mb3JtaW5nKHRva2VuKSB7XG4gICAgcmV0dXJuICh0b2tlbi5uYW1lID09PSBWQUxJRF9ET0NUWVBFX05BTUUgJiZcbiAgICAgICAgdG9rZW4ucHVibGljSWQgPT09IG51bGwgJiZcbiAgICAgICAgKHRva2VuLnN5c3RlbUlkID09PSBudWxsIHx8IHRva2VuLnN5c3RlbUlkID09PSBWQUxJRF9TWVNURU1fSUQpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREb2N1bWVudE1vZGUodG9rZW4pIHtcbiAgICBpZiAodG9rZW4ubmFtZSAhPT0gVkFMSURfRE9DVFlQRV9OQU1FKSB7XG4gICAgICAgIHJldHVybiBET0NVTUVOVF9NT0RFLlFVSVJLUztcbiAgICB9XG4gICAgY29uc3QgeyBzeXN0ZW1JZCB9ID0gdG9rZW47XG4gICAgaWYgKHN5c3RlbUlkICYmIHN5c3RlbUlkLnRvTG93ZXJDYXNlKCkgPT09IFFVSVJLU19NT0RFX1NZU1RFTV9JRCkge1xuICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgfVxuICAgIGxldCB7IHB1YmxpY0lkIH0gPSB0b2tlbjtcbiAgICBpZiAocHVibGljSWQgIT09IG51bGwpIHtcbiAgICAgICAgcHVibGljSWQgPSBwdWJsaWNJZC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoUVVJUktTX01PREVfUFVCTElDX0lEUy5oYXMocHVibGljSWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHByZWZpeGVzID0gc3lzdGVtSWQgPT09IG51bGwgPyBRVUlSS1NfTU9ERV9OT19TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTIDogUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTO1xuICAgICAgICBpZiAoaGFzUHJlZml4KHB1YmxpY0lkLCBwcmVmaXhlcykpIHtcbiAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9NT0RFLlFVSVJLUztcbiAgICAgICAgfVxuICAgICAgICBwcmVmaXhlcyA9XG4gICAgICAgICAgICBzeXN0ZW1JZCA9PT0gbnVsbCA/IExJTUlURURfUVVJUktTX1BVQkxJQ19JRF9QUkVGSVhFUyA6IExJTUlURURfUVVJUktTX1dJVEhfU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUztcbiAgICAgICAgaWYgKGhhc1ByZWZpeChwdWJsaWNJZCwgcHJlZml4ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5MSU1JVEVEX1FVSVJLUztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5OT19RVUlSS1M7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kb2N0eXBlLmpzLm1hcCIsICJpbXBvcnQgeyBUQUdfSUQgYXMgJCwgTlMsIEFUVFJTLCBnZXRUYWdJRCB9IGZyb20gJy4vaHRtbC5qcyc7XG4vL01JTUUgdHlwZXNcbmNvbnN0IE1JTUVfVFlQRVMgPSB7XG4gICAgVEVYVF9IVE1MOiAndGV4dC9odG1sJyxcbiAgICBBUFBMSUNBVElPTl9YTUw6ICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnLFxufTtcbi8vQXR0cmlidXRlc1xuY29uc3QgREVGSU5JVElPTl9VUkxfQVRUUiA9ICdkZWZpbml0aW9udXJsJztcbmNvbnN0IEFESlVTVEVEX0RFRklOSVRJT05fVVJMX0FUVFIgPSAnZGVmaW5pdGlvblVSTCc7XG5jb25zdCBTVkdfQVRUUlNfQURKVVNUTUVOVF9NQVAgPSBuZXcgTWFwKFtcbiAgICAnYXR0cmlidXRlTmFtZScsXG4gICAgJ2F0dHJpYnV0ZVR5cGUnLFxuICAgICdiYXNlRnJlcXVlbmN5JyxcbiAgICAnYmFzZVByb2ZpbGUnLFxuICAgICdjYWxjTW9kZScsXG4gICAgJ2NsaXBQYXRoVW5pdHMnLFxuICAgICdkaWZmdXNlQ29uc3RhbnQnLFxuICAgICdlZGdlTW9kZScsXG4gICAgJ2ZpbHRlclVuaXRzJyxcbiAgICAnZ2x5cGhSZWYnLFxuICAgICdncmFkaWVudFRyYW5zZm9ybScsXG4gICAgJ2dyYWRpZW50VW5pdHMnLFxuICAgICdrZXJuZWxNYXRyaXgnLFxuICAgICdrZXJuZWxVbml0TGVuZ3RoJyxcbiAgICAna2V5UG9pbnRzJyxcbiAgICAna2V5U3BsaW5lcycsXG4gICAgJ2tleVRpbWVzJyxcbiAgICAnbGVuZ3RoQWRqdXN0JyxcbiAgICAnbGltaXRpbmdDb25lQW5nbGUnLFxuICAgICdtYXJrZXJIZWlnaHQnLFxuICAgICdtYXJrZXJVbml0cycsXG4gICAgJ21hcmtlcldpZHRoJyxcbiAgICAnbWFza0NvbnRlbnRVbml0cycsXG4gICAgJ21hc2tVbml0cycsXG4gICAgJ251bU9jdGF2ZXMnLFxuICAgICdwYXRoTGVuZ3RoJyxcbiAgICAncGF0dGVybkNvbnRlbnRVbml0cycsXG4gICAgJ3BhdHRlcm5UcmFuc2Zvcm0nLFxuICAgICdwYXR0ZXJuVW5pdHMnLFxuICAgICdwb2ludHNBdFgnLFxuICAgICdwb2ludHNBdFknLFxuICAgICdwb2ludHNBdFonLFxuICAgICdwcmVzZXJ2ZUFscGhhJyxcbiAgICAncHJlc2VydmVBc3BlY3RSYXRpbycsXG4gICAgJ3ByaW1pdGl2ZVVuaXRzJyxcbiAgICAncmVmWCcsXG4gICAgJ3JlZlknLFxuICAgICdyZXBlYXRDb3VudCcsXG4gICAgJ3JlcGVhdER1cicsXG4gICAgJ3JlcXVpcmVkRXh0ZW5zaW9ucycsXG4gICAgJ3JlcXVpcmVkRmVhdHVyZXMnLFxuICAgICdzcGVjdWxhckNvbnN0YW50JyxcbiAgICAnc3BlY3VsYXJFeHBvbmVudCcsXG4gICAgJ3NwcmVhZE1ldGhvZCcsXG4gICAgJ3N0YXJ0T2Zmc2V0JyxcbiAgICAnc3RkRGV2aWF0aW9uJyxcbiAgICAnc3RpdGNoVGlsZXMnLFxuICAgICdzdXJmYWNlU2NhbGUnLFxuICAgICdzeXN0ZW1MYW5ndWFnZScsXG4gICAgJ3RhYmxlVmFsdWVzJyxcbiAgICAndGFyZ2V0WCcsXG4gICAgJ3RhcmdldFknLFxuICAgICd0ZXh0TGVuZ3RoJyxcbiAgICAndmlld0JveCcsXG4gICAgJ3ZpZXdUYXJnZXQnLFxuICAgICd4Q2hhbm5lbFNlbGVjdG9yJyxcbiAgICAneUNoYW5uZWxTZWxlY3RvcicsXG4gICAgJ3pvb21BbmRQYW4nLFxuXS5tYXAoKGF0dHIpID0+IFthdHRyLnRvTG93ZXJDYXNlKCksIGF0dHJdKSk7XG5jb25zdCBYTUxfQVRUUlNfQURKVVNUTUVOVF9NQVAgPSBuZXcgTWFwKFtcbiAgICBbJ3hsaW5rOmFjdHVhdGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2FjdHVhdGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6YXJjcm9sZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAnYXJjcm9sZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazpocmVmJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdocmVmJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnJvbGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3JvbGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6c2hvdycsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAnc2hvdycsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazp0aXRsZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAndGl0bGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6dHlwZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAndHlwZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bWw6YmFzZScsIHsgcHJlZml4OiAneG1sJywgbmFtZTogJ2Jhc2UnLCBuYW1lc3BhY2U6IE5TLlhNTCB9XSxcbiAgICBbJ3htbDpsYW5nJywgeyBwcmVmaXg6ICd4bWwnLCBuYW1lOiAnbGFuZycsIG5hbWVzcGFjZTogTlMuWE1MIH1dLFxuICAgIFsneG1sOnNwYWNlJywgeyBwcmVmaXg6ICd4bWwnLCBuYW1lOiAnc3BhY2UnLCBuYW1lc3BhY2U6IE5TLlhNTCB9XSxcbiAgICBbJ3htbG5zJywgeyBwcmVmaXg6ICcnLCBuYW1lOiAneG1sbnMnLCBuYW1lc3BhY2U6IE5TLlhNTE5TIH1dLFxuICAgIFsneG1sbnM6eGxpbmsnLCB7IHByZWZpeDogJ3htbG5zJywgbmFtZTogJ3hsaW5rJywgbmFtZXNwYWNlOiBOUy5YTUxOUyB9XSxcbl0pO1xuLy9TVkcgdGFnIG5hbWVzIGFkanVzdG1lbnQgbWFwXG5leHBvcnQgY29uc3QgU1ZHX1RBR19OQU1FU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgICdhbHRHbHlwaCcsXG4gICAgJ2FsdEdseXBoRGVmJyxcbiAgICAnYWx0R2x5cGhJdGVtJyxcbiAgICAnYW5pbWF0ZUNvbG9yJyxcbiAgICAnYW5pbWF0ZU1vdGlvbicsXG4gICAgJ2FuaW1hdGVUcmFuc2Zvcm0nLFxuICAgICdjbGlwUGF0aCcsXG4gICAgJ2ZlQmxlbmQnLFxuICAgICdmZUNvbG9yTWF0cml4JyxcbiAgICAnZmVDb21wb25lbnRUcmFuc2ZlcicsXG4gICAgJ2ZlQ29tcG9zaXRlJyxcbiAgICAnZmVDb252b2x2ZU1hdHJpeCcsXG4gICAgJ2ZlRGlmZnVzZUxpZ2h0aW5nJyxcbiAgICAnZmVEaXNwbGFjZW1lbnRNYXAnLFxuICAgICdmZURpc3RhbnRMaWdodCcsXG4gICAgJ2ZlRmxvb2QnLFxuICAgICdmZUZ1bmNBJyxcbiAgICAnZmVGdW5jQicsXG4gICAgJ2ZlRnVuY0cnLFxuICAgICdmZUZ1bmNSJyxcbiAgICAnZmVHYXVzc2lhbkJsdXInLFxuICAgICdmZUltYWdlJyxcbiAgICAnZmVNZXJnZScsXG4gICAgJ2ZlTWVyZ2VOb2RlJyxcbiAgICAnZmVNb3JwaG9sb2d5JyxcbiAgICAnZmVPZmZzZXQnLFxuICAgICdmZVBvaW50TGlnaHQnLFxuICAgICdmZVNwZWN1bGFyTGlnaHRpbmcnLFxuICAgICdmZVNwb3RMaWdodCcsXG4gICAgJ2ZlVGlsZScsXG4gICAgJ2ZlVHVyYnVsZW5jZScsXG4gICAgJ2ZvcmVpZ25PYmplY3QnLFxuICAgICdnbHlwaFJlZicsXG4gICAgJ2xpbmVhckdyYWRpZW50JyxcbiAgICAncmFkaWFsR3JhZGllbnQnLFxuICAgICd0ZXh0UGF0aCcsXG5dLm1hcCgodG4pID0+IFt0bi50b0xvd2VyQ2FzZSgpLCB0bl0pKTtcbi8vVGFncyB0aGF0IGNhdXNlcyBleGl0IGZyb20gZm9yZWlnbiBjb250ZW50XG5jb25zdCBFWElUU19GT1JFSUdOX0NPTlRFTlQgPSBuZXcgU2V0KFtcbiAgICAkLkIsXG4gICAgJC5CSUcsXG4gICAgJC5CTE9DS1FVT1RFLFxuICAgICQuQk9EWSxcbiAgICAkLkJSLFxuICAgICQuQ0VOVEVSLFxuICAgICQuQ09ERSxcbiAgICAkLkRELFxuICAgICQuRElWLFxuICAgICQuREwsXG4gICAgJC5EVCxcbiAgICAkLkVNLFxuICAgICQuRU1CRUQsXG4gICAgJC5IMSxcbiAgICAkLkgyLFxuICAgICQuSDMsXG4gICAgJC5INCxcbiAgICAkLkg1LFxuICAgICQuSDYsXG4gICAgJC5IRUFELFxuICAgICQuSFIsXG4gICAgJC5JLFxuICAgICQuSU1HLFxuICAgICQuTEksXG4gICAgJC5MSVNUSU5HLFxuICAgICQuTUVOVSxcbiAgICAkLk1FVEEsXG4gICAgJC5OT0JSLFxuICAgICQuT0wsXG4gICAgJC5QLFxuICAgICQuUFJFLFxuICAgICQuUlVCWSxcbiAgICAkLlMsXG4gICAgJC5TTUFMTCxcbiAgICAkLlNQQU4sXG4gICAgJC5TVFJPTkcsXG4gICAgJC5TVFJJS0UsXG4gICAgJC5TVUIsXG4gICAgJC5TVVAsXG4gICAgJC5UQUJMRSxcbiAgICAkLlRULFxuICAgICQuVSxcbiAgICAkLlVMLFxuICAgICQuVkFSLFxuXSk7XG4vL0NoZWNrIGV4aXQgZnJvbSBmb3JlaWduIGNvbnRlbnRcbmV4cG9ydCBmdW5jdGlvbiBjYXVzZXNFeGl0KHN0YXJ0VGFnVG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHN0YXJ0VGFnVG9rZW4udGFnSUQ7XG4gICAgY29uc3QgaXNGb250V2l0aEF0dHJzID0gdG4gPT09ICQuRk9OVCAmJlxuICAgICAgICBzdGFydFRhZ1Rva2VuLmF0dHJzLnNvbWUoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBBVFRSUy5DT0xPUiB8fCBuYW1lID09PSBBVFRSUy5TSVpFIHx8IG5hbWUgPT09IEFUVFJTLkZBQ0UpO1xuICAgIHJldHVybiBpc0ZvbnRXaXRoQXR0cnMgfHwgRVhJVFNfRk9SRUlHTl9DT05URU5ULmhhcyh0bik7XG59XG4vL1Rva2VuIGFkanVzdG1lbnRzXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5NYXRoTUxBdHRycyh0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRva2VuLmF0dHJzW2ldLm5hbWUgPT09IERFRklOSVRJT05fVVJMX0FUVFIpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBBREpVU1RFRF9ERUZJTklUSU9OX1VSTF9BVFRSO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5TVkdBdHRycyh0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRBdHRyTmFtZSA9IFNWR19BVFRSU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4uYXR0cnNbaV0ubmFtZSk7XG4gICAgICAgIGlmIChhZGp1c3RlZEF0dHJOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBhZGp1c3RlZEF0dHJOYW1lO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGFkanVzdGVkQXR0ckVudHJ5ID0gWE1MX0FUVFJTX0FESlVTVE1FTlRfTUFQLmdldCh0b2tlbi5hdHRyc1tpXS5uYW1lKTtcbiAgICAgICAgaWYgKGFkanVzdGVkQXR0ckVudHJ5KSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5wcmVmaXggPSBhZGp1c3RlZEF0dHJFbnRyeS5wcmVmaXg7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gYWRqdXN0ZWRBdHRyRW50cnkubmFtZTtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWVzcGFjZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWVzcGFjZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlblNWR1RhZ05hbWUodG9rZW4pIHtcbiAgICBjb25zdCBhZGp1c3RlZFRhZ05hbWUgPSBTVkdfVEFHX05BTUVTX0FESlVTVE1FTlRfTUFQLmdldCh0b2tlbi50YWdOYW1lKTtcbiAgICBpZiAoYWRqdXN0ZWRUYWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgdG9rZW4udGFnTmFtZSA9IGFkanVzdGVkVGFnTmFtZTtcbiAgICAgICAgdG9rZW4udGFnSUQgPSBnZXRUYWdJRCh0b2tlbi50YWdOYW1lKTtcbiAgICB9XG59XG4vL0ludGVncmF0aW9uIHBvaW50c1xuZnVuY3Rpb24gaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCh0biwgbnMpIHtcbiAgICByZXR1cm4gbnMgPT09IE5TLk1BVEhNTCAmJiAodG4gPT09ICQuTUkgfHwgdG4gPT09ICQuTU8gfHwgdG4gPT09ICQuTU4gfHwgdG4gPT09ICQuTVMgfHwgdG4gPT09ICQuTVRFWFQpO1xufVxuZnVuY3Rpb24gaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzKSB7XG4gICAgaWYgKG5zID09PSBOUy5NQVRITUwgJiYgdG4gPT09ICQuQU5OT1RBVElPTl9YTUwpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGF0dHJzW2ldLm5hbWUgPT09IEFUVFJTLkVOQ09ESU5HKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyc1tpXS52YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gTUlNRV9UWVBFUy5URVhUX0hUTUwgfHwgdmFsdWUgPT09IE1JTUVfVFlQRVMuQVBQTElDQVRJT05fWE1MO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBucyA9PT0gTlMuU1ZHICYmICh0biA9PT0gJC5GT1JFSUdOX09CSkVDVCB8fCB0biA9PT0gJC5ERVNDIHx8IHRuID09PSAkLlRJVExFKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0ludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycywgZm9yZWlnbk5TKSB7XG4gICAgcmV0dXJuICgoKCFmb3JlaWduTlMgfHwgZm9yZWlnbk5TID09PSBOUy5IVE1MKSAmJiBpc0h0bWxJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMpKSB8fFxuICAgICAgICAoKCFmb3JlaWduTlMgfHwgZm9yZWlnbk5TID09PSBOUy5NQVRITUwpICYmIGlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9yZWlnbi1jb250ZW50LmpzLm1hcCIsICJpbXBvcnQgeyBUb2tlbml6ZXIsIFRva2VuaXplck1vZGUgfSBmcm9tICcuLi90b2tlbml6ZXIvaW5kZXguanMnO1xuaW1wb3J0IHsgT3BlbkVsZW1lbnRTdGFjayB9IGZyb20gJy4vb3Blbi1lbGVtZW50LXN0YWNrLmpzJztcbmltcG9ydCB7IEZvcm1hdHRpbmdFbGVtZW50TGlzdCwgRW50cnlUeXBlIH0gZnJvbSAnLi9mb3JtYXR0aW5nLWVsZW1lbnQtbGlzdC5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0VHJlZUFkYXB0ZXIgfSBmcm9tICcuLi90cmVlLWFkYXB0ZXJzL2RlZmF1bHQuanMnO1xuaW1wb3J0ICogYXMgZG9jdHlwZSBmcm9tICcuLi9jb21tb24vZG9jdHlwZS5qcyc7XG5pbXBvcnQgKiBhcyBmb3JlaWduQ29udGVudCBmcm9tICcuLi9jb21tb24vZm9yZWlnbi1jb250ZW50LmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG5pbXBvcnQgKiBhcyB1bmljb2RlIGZyb20gJy4uL2NvbW1vbi91bmljb2RlLmpzJztcbmltcG9ydCB7IFRBR19JRCBhcyAkLCBUQUdfTkFNRVMgYXMgVE4sIE5TLCBBVFRSUywgU1BFQ0lBTF9FTEVNRU5UUywgRE9DVU1FTlRfTU9ERSwgaXNOdW1iZXJlZEhlYWRlciwgZ2V0VGFnSUQsIH0gZnJvbSAnLi4vY29tbW9uL2h0bWwuanMnO1xuaW1wb3J0IHsgVG9rZW5UeXBlLCBnZXRUb2tlbkF0dHIsIH0gZnJvbSAnLi4vY29tbW9uL3Rva2VuLmpzJztcbi8vTWlzYyBjb25zdGFudHNcbmNvbnN0IEhJRERFTl9JTlBVVF9UWVBFID0gJ2hpZGRlbic7XG4vL0Fkb3B0aW9uIGFnZW5jeSBsb29wcyBpdGVyYXRpb24gY291bnRcbmNvbnN0IEFBX09VVEVSX0xPT1BfSVRFUiA9IDg7XG5jb25zdCBBQV9JTk5FUl9MT09QX0lURVIgPSAzO1xuLy9JbnNlcnRpb24gbW9kZXNcbnZhciBJbnNlcnRpb25Nb2RlO1xuKGZ1bmN0aW9uIChJbnNlcnRpb25Nb2RlKSB7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5JVElBTFwiXSA9IDBdID0gXCJJTklUSUFMXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQkVGT1JFX0hUTUxcIl0gPSAxXSA9IFwiQkVGT1JFX0hUTUxcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJCRUZPUkVfSEVBRFwiXSA9IDJdID0gXCJCRUZPUkVfSEVBRFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0hFQURcIl0gPSAzXSA9IFwiSU5fSEVBRFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0hFQURfTk9fU0NSSVBUXCJdID0gNF0gPSBcIklOX0hFQURfTk9fU0NSSVBUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfSEVBRFwiXSA9IDVdID0gXCJBRlRFUl9IRUFEXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fQk9EWVwiXSA9IDZdID0gXCJJTl9CT0RZXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiVEVYVFwiXSA9IDddID0gXCJURVhUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEFCTEVcIl0gPSA4XSA9IFwiSU5fVEFCTEVcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9UQUJMRV9URVhUXCJdID0gOV0gPSBcIklOX1RBQkxFX1RFWFRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9DQVBUSU9OXCJdID0gMTBdID0gXCJJTl9DQVBUSU9OXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fQ09MVU1OX0dST1VQXCJdID0gMTFdID0gXCJJTl9DT0xVTU5fR1JPVVBcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9UQUJMRV9CT0RZXCJdID0gMTJdID0gXCJJTl9UQUJMRV9CT0RZXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fUk9XXCJdID0gMTNdID0gXCJJTl9ST1dcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9DRUxMXCJdID0gMTRdID0gXCJJTl9DRUxMXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fU0VMRUNUXCJdID0gMTVdID0gXCJJTl9TRUxFQ1RcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9TRUxFQ1RfSU5fVEFCTEVcIl0gPSAxNl0gPSBcIklOX1NFTEVDVF9JTl9UQUJMRVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RFTVBMQVRFXCJdID0gMTddID0gXCJJTl9URU1QTEFURVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0JPRFlcIl0gPSAxOF0gPSBcIkFGVEVSX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9GUkFNRVNFVFwiXSA9IDE5XSA9IFwiSU5fRlJBTUVTRVRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9GUkFNRVNFVFwiXSA9IDIwXSA9IFwiQUZURVJfRlJBTUVTRVRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9BRlRFUl9CT0RZXCJdID0gMjFdID0gXCJBRlRFUl9BRlRFUl9CT0RZXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfQUZURVJfRlJBTUVTRVRcIl0gPSAyMl0gPSBcIkFGVEVSX0FGVEVSX0ZSQU1FU0VUXCI7XG59KShJbnNlcnRpb25Nb2RlIHx8IChJbnNlcnRpb25Nb2RlID0ge30pKTtcbmNvbnN0IEJBU0VfTE9DID0ge1xuICAgIHN0YXJ0TGluZTogLTEsXG4gICAgc3RhcnRDb2w6IC0xLFxuICAgIHN0YXJ0T2Zmc2V0OiAtMSxcbiAgICBlbmRMaW5lOiAtMSxcbiAgICBlbmRDb2w6IC0xLFxuICAgIGVuZE9mZnNldDogLTEsXG59O1xuY29uc3QgVEFCTEVfU1RSVUNUVVJFX1RBR1MgPSBuZXcgU2V0KFskLlRBQkxFLCAkLlRCT0RZLCAkLlRGT09ULCAkLlRIRUFELCAkLlRSXSk7XG5jb25zdCBkZWZhdWx0UGFyc2VyT3B0aW9ucyA9IHtcbiAgICBzY3JpcHRpbmdFbmFibGVkOiB0cnVlLFxuICAgIHNvdXJjZUNvZGVMb2NhdGlvbkluZm86IGZhbHNlLFxuICAgIHRyZWVBZGFwdGVyOiBkZWZhdWx0VHJlZUFkYXB0ZXIsXG4gICAgb25QYXJzZUVycm9yOiBudWxsLFxufTtcbi8vUGFyc2VyXG5leHBvcnQgY2xhc3MgUGFyc2VyIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zLCBkb2N1bWVudCwgZnJhZ21lbnRDb250ZXh0ID0gbnVsbCwgc2NyaXB0SGFuZGxlciA9IG51bGwpIHtcbiAgICAgICAgdGhpcy5mcmFnbWVudENvbnRleHQgPSBmcmFnbWVudENvbnRleHQ7XG4gICAgICAgIHRoaXMuc2NyaXB0SGFuZGxlciA9IHNjcmlwdEhhbmRsZXI7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbiAgICAgICAgdGhpcy5zdG9wcGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5JVElBTDtcbiAgICAgICAgdGhpcy5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOSVRJQUw7XG4gICAgICAgIHRoaXMuaGVhZEVsZW1lbnQgPSBudWxsO1xuICAgICAgICB0aGlzLmZvcm1FbGVtZW50ID0gbnVsbDtcbiAgICAgICAgLyoqIEluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50IG5vZGUgaXMgbm90IGFuIGVsZW1lbnQgaW4gdGhlIEhUTUwgbmFtZXNwYWNlICovXG4gICAgICAgIHRoaXMuY3VycmVudE5vdEluSFRNTCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHRlbXBsYXRlIGluc2VydGlvbiBtb2RlIHN0YWNrIGlzIG1haW50YWluZWQgZnJvbSB0aGUgbGVmdC5cbiAgICAgICAgICogSWUuIHRoZSB0b3Btb3N0IGVsZW1lbnQgd2lsbCBhbHdheXMgaGF2ZSBpbmRleCAwLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrID0gW107XG4gICAgICAgIHRoaXMucGVuZGluZ0NoYXJhY3RlclRva2VucyA9IFtdO1xuICAgICAgICB0aGlzLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mcmFtZXNldE9rID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRQYXJzZXJPcHRpb25zLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlciA9IHRoaXMub3B0aW9ucy50cmVlQWRhcHRlcjtcbiAgICAgICAgdGhpcy5vblBhcnNlRXJyb3IgPSB0aGlzLm9wdGlvbnMub25QYXJzZUVycm9yO1xuICAgICAgICAvLyBBbHdheXMgZW5hYmxlIGxvY2F0aW9uIGluZm8gaWYgd2UgcmVwb3J0IHBhcnNlIGVycm9ycy5cbiAgICAgICAgaWYgKHRoaXMub25QYXJzZUVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50ICE9PSBudWxsICYmIGRvY3VtZW50ICE9PSB2b2lkIDAgPyBkb2N1bWVudCA6IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIgPSBuZXcgVG9rZW5pemVyKHRoaXMub3B0aW9ucywgdGhpcyk7XG4gICAgICAgIHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzID0gbmV3IEZvcm1hdHRpbmdFbGVtZW50TGlzdCh0aGlzLnRyZWVBZGFwdGVyKTtcbiAgICAgICAgdGhpcy5mcmFnbWVudENvbnRleHRJRCA9IGZyYWdtZW50Q29udGV4dCA/IGdldFRhZ0lEKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShmcmFnbWVudENvbnRleHQpKSA6ICQuVU5LTk9XTjtcbiAgICAgICAgdGhpcy5fc2V0Q29udGV4dE1vZGVzKGZyYWdtZW50Q29udGV4dCAhPT0gbnVsbCAmJiBmcmFnbWVudENvbnRleHQgIT09IHZvaWQgMCA/IGZyYWdtZW50Q29udGV4dCA6IHRoaXMuZG9jdW1lbnQsIHRoaXMuZnJhZ21lbnRDb250ZXh0SUQpO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cyA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKHRoaXMuZG9jdW1lbnQsIHRoaXMudHJlZUFkYXB0ZXIsIHRoaXMpO1xuICAgIH1cbiAgICAvLyBBUElcbiAgICBzdGF0aWMgcGFyc2UoaHRtbCwgb3B0aW9ucykge1xuICAgICAgICBjb25zdCBwYXJzZXIgPSBuZXcgdGhpcyhvcHRpb25zKTtcbiAgICAgICAgcGFyc2VyLnRva2VuaXplci53cml0ZShodG1sLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlci5kb2N1bWVudDtcbiAgICB9XG4gICAgc3RhdGljIGdldEZyYWdtZW50UGFyc2VyKGZyYWdtZW50Q29udGV4dCwgb3B0aW9ucykge1xuICAgICAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdFBhcnNlck9wdGlvbnMsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICAvL05PVEU6IHVzZSBhIDx0ZW1wbGF0ZT4gZWxlbWVudCBhcyB0aGUgZnJhZ21lbnQgY29udGV4dCBpZiBubyBjb250ZXh0IGVsZW1lbnQgd2FzIHByb3ZpZGVkLFxuICAgICAgICAvL3NvIHdlIHdpbGwgcGFyc2UgaW4gYSBcImZvcmdpdmluZ1wiIG1hbm5lclxuICAgICAgICBmcmFnbWVudENvbnRleHQgIT09IG51bGwgJiYgZnJhZ21lbnRDb250ZXh0ICE9PSB2b2lkIDAgPyBmcmFnbWVudENvbnRleHQgOiAoZnJhZ21lbnRDb250ZXh0ID0gb3B0cy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KFROLlRFTVBMQVRFLCBOUy5IVE1MLCBbXSkpO1xuICAgICAgICAvL05PVEU6IGNyZWF0ZSBhIGZha2UgZWxlbWVudCB3aGljaCB3aWxsIGJlIHVzZWQgYXMgdGhlIGBkb2N1bWVudGAgZm9yIGZyYWdtZW50IHBhcnNpbmcuXG4gICAgICAgIC8vVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGpzZG9tLCB3aGVyZSBhIG5ldyBgZG9jdW1lbnRgIGNhbm5vdCBiZSBjcmVhdGVkLiBUaGlzIGxlZCB0b1xuICAgICAgICAvL2ZyYWdtZW50IHBhcnNpbmcgbWVzc2luZyB3aXRoIHRoZSBtYWluIGBkb2N1bWVudGAuXG4gICAgICAgIGNvbnN0IGRvY3VtZW50TW9jayA9IG9wdHMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnZG9jdW1lbnRtb2NrJywgTlMuSFRNTCwgW10pO1xuICAgICAgICBjb25zdCBwYXJzZXIgPSBuZXcgdGhpcyhvcHRzLCBkb2N1bWVudE1vY2ssIGZyYWdtZW50Q29udGV4dCk7XG4gICAgICAgIGlmIChwYXJzZXIuZnJhZ21lbnRDb250ZXh0SUQgPT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgICAgIHBhcnNlci50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnVuc2hpZnQoSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURSk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VyLl9pbml0VG9rZW5pemVyRm9yRnJhZ21lbnRQYXJzaW5nKCk7XG4gICAgICAgIHBhcnNlci5faW5zZXJ0RmFrZVJvb3RFbGVtZW50KCk7XG4gICAgICAgIHBhcnNlci5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgIHBhcnNlci5fZmluZEZvcm1JbkZyYWdtZW50Q29udGV4dCgpO1xuICAgICAgICByZXR1cm4gcGFyc2VyO1xuICAgIH1cbiAgICBnZXRGcmFnbWVudCgpIHtcbiAgICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQodGhpcy5kb2N1bWVudCk7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIHRoaXMuX2Fkb3B0Tm9kZXMocm9vdEVsZW1lbnQsIGZyYWdtZW50KTtcbiAgICAgICAgcmV0dXJuIGZyYWdtZW50O1xuICAgIH1cbiAgICAvL0Vycm9yc1xuICAgIF9lcnIodG9rZW4sIGNvZGUsIGJlZm9yZVRva2VuKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCF0aGlzLm9uUGFyc2VFcnJvcilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbG9jID0gKF9hID0gdG9rZW4ubG9jYXRpb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IEJBU0VfTE9DO1xuICAgICAgICBjb25zdCBlcnIgPSB7XG4gICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgc3RhcnRMaW5lOiBsb2Muc3RhcnRMaW5lLFxuICAgICAgICAgICAgc3RhcnRDb2w6IGxvYy5zdGFydENvbCxcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0OiBsb2Muc3RhcnRPZmZzZXQsXG4gICAgICAgICAgICBlbmRMaW5lOiBiZWZvcmVUb2tlbiA/IGxvYy5zdGFydExpbmUgOiBsb2MuZW5kTGluZSxcbiAgICAgICAgICAgIGVuZENvbDogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRDb2wgOiBsb2MuZW5kQ29sLFxuICAgICAgICAgICAgZW5kT2Zmc2V0OiBiZWZvcmVUb2tlbiA/IGxvYy5zdGFydE9mZnNldCA6IGxvYy5lbmRPZmZzZXQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub25QYXJzZUVycm9yKGVycik7XG4gICAgfVxuICAgIC8vU3RhY2sgZXZlbnRzXG4gICAgb25JdGVtUHVzaChub2RlLCB0aWQsIGlzVG9wKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIChfYiA9IChfYSA9IHRoaXMudHJlZUFkYXB0ZXIpLm9uSXRlbVB1c2gpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBub2RlKTtcbiAgICAgICAgaWYgKGlzVG9wICYmIHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wID4gMClcbiAgICAgICAgICAgIHRoaXMuX3NldENvbnRleHRNb2Rlcyhub2RlLCB0aWQpO1xuICAgIH1cbiAgICBvbkl0ZW1Qb3Aobm9kZSwgaXNUb3ApIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRFbmRMb2NhdGlvbihub2RlLCB0aGlzLmN1cnJlbnRUb2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgKF9iID0gKF9hID0gdGhpcy50cmVlQWRhcHRlcikub25JdGVtUG9wKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgbm9kZSwgdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudCk7XG4gICAgICAgIGlmIChpc1RvcCkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnQ7XG4gICAgICAgICAgICBsZXQgY3VycmVudFRhZ0lkO1xuICAgICAgICAgICAgaWYgKHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IHRoaXMuZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICAgICAgICAgIGN1cnJlbnRUYWdJZCA9IHRoaXMuZnJhZ21lbnRDb250ZXh0SUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAoeyBjdXJyZW50LCBjdXJyZW50VGFnSWQgfSA9IHRoaXMub3BlbkVsZW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3NldENvbnRleHRNb2RlcyhjdXJyZW50LCBjdXJyZW50VGFnSWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9zZXRDb250ZXh0TW9kZXMoY3VycmVudCwgdGlkKSB7XG4gICAgICAgIGNvbnN0IGlzSFRNTCA9IGN1cnJlbnQgPT09IHRoaXMuZG9jdW1lbnQgfHwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY3VycmVudCkgPT09IE5TLkhUTUw7XG4gICAgICAgIHRoaXMuY3VycmVudE5vdEluSFRNTCA9ICFpc0hUTUw7XG4gICAgICAgIHRoaXMudG9rZW5pemVyLmluRm9yZWlnbk5vZGUgPSAhaXNIVE1MICYmICF0aGlzLl9pc0ludGVncmF0aW9uUG9pbnQodGlkLCBjdXJyZW50KTtcbiAgICB9XG4gICAgX3N3aXRjaFRvVGV4dFBhcnNpbmcoY3VycmVudFRva2VuLCBuZXh0VG9rZW5pemVyU3RhdGUpIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0RWxlbWVudChjdXJyZW50VG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IG5leHRUb2tlbml6ZXJTdGF0ZTtcbiAgICAgICAgdGhpcy5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSB0aGlzLmluc2VydGlvbk1vZGU7XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuVEVYVDtcbiAgICB9XG4gICAgc3dpdGNoVG9QbGFpbnRleHRQYXJzaW5nKCkge1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUExBSU5URVhUO1xuICAgIH1cbiAgICAvL0ZyYWdtZW50IHBhcnNpbmdcbiAgICBfZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0XG4gICAgICAgICAgICA/IHRoaXMuZnJhZ21lbnRDb250ZXh0XG4gICAgICAgICAgICA6IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgfVxuICAgIF9maW5kRm9ybUluRnJhZ21lbnRDb250ZXh0KCkge1xuICAgICAgICBsZXQgbm9kZSA9IHRoaXMuZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICB3aGlsZSAobm9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKSA9PT0gVE4uRk9STSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUVsZW1lbnQgPSBub2RlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbm9kZSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfaW5pdFRva2VuaXplckZvckZyYWdtZW50UGFyc2luZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZyYWdtZW50Q29udGV4dCB8fCB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmZyYWdtZW50Q29udGV4dCkgIT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuZnJhZ21lbnRDb250ZXh0SUQpIHtcbiAgICAgICAgICAgIGNhc2UgJC5USVRMRTpcbiAgICAgICAgICAgIGNhc2UgJC5URVhUQVJFQToge1xuICAgICAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5SQ0RBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgICAgICBjYXNlICQuWE1QOlxuICAgICAgICAgICAgY2FzZSAkLklGUkFNRTpcbiAgICAgICAgICAgIGNhc2UgJC5OT0VNQkVEOlxuICAgICAgICAgICAgY2FzZSAkLk5PRlJBTUVTOlxuICAgICAgICAgICAgY2FzZSAkLk5PU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlJBV1RFWFQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlBMQUlOVEVYVDoge1xuICAgICAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5QTEFJTlRFWFQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vVHJlZSBtdXRhdGlvblxuICAgIF9zZXREb2N1bWVudFR5cGUodG9rZW4pIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IHRva2VuLm5hbWUgfHwgJyc7XG4gICAgICAgIGNvbnN0IHB1YmxpY0lkID0gdG9rZW4ucHVibGljSWQgfHwgJyc7XG4gICAgICAgIGNvbnN0IHN5c3RlbUlkID0gdG9rZW4uc3lzdGVtSWQgfHwgJyc7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0RG9jdW1lbnRUeXBlKHRoaXMuZG9jdW1lbnQsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCk7XG4gICAgICAgIGlmICh0b2tlbi5sb2NhdGlvbikge1xuICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRDaGlsZHJlbiA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2Rlcyh0aGlzLmRvY3VtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGRvY1R5cGVOb2RlID0gZG9jdW1lbnRDaGlsZHJlbi5maW5kKChub2RlKSA9PiB0aGlzLnRyZWVBZGFwdGVyLmlzRG9jdW1lbnRUeXBlTm9kZShub2RlKSk7XG4gICAgICAgICAgICBpZiAoZG9jVHlwZU5vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oZG9jVHlwZU5vZGUsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBfYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCBsb2NhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0aW9uICYmIHtcbiAgICAgICAgICAgICAgICAuLi5sb2NhdGlvbixcbiAgICAgICAgICAgICAgICBzdGFydFRhZzogbG9jYXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIGxvYyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvc3RlclBhcmVudEVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnRPck5vZGU7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHBhcmVudCwgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2FwcGVuZEVsZW1lbnQodG9rZW4sIG5hbWVzcGFjZVVSSSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgdG9rZW4uYXR0cnMpO1xuICAgICAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQsIHRva2VuLmxvY2F0aW9uKTtcbiAgICB9XG4gICAgX2luc2VydEVsZW1lbnQodG9rZW4sIG5hbWVzcGFjZVVSSSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgdG9rZW4uYXR0cnMpO1xuICAgICAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucHVzaChlbGVtZW50LCB0b2tlbi50YWdJRCk7XG4gICAgfVxuICAgIF9pbnNlcnRGYWtlRWxlbWVudCh0YWdOYW1lLCB0YWdJRCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIE5TLkhUTUwsIFtdKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCBudWxsKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucHVzaChlbGVtZW50LCB0YWdJRCk7XG4gICAgfVxuICAgIF9pbnNlcnRUZW1wbGF0ZSh0b2tlbikge1xuICAgICAgICBjb25zdCB0bXBsID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIE5TLkhUTUwsIHRva2VuLmF0dHJzKTtcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldFRlbXBsYXRlQ29udGVudCh0bXBsLCBjb250ZW50KTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZSh0bXBsLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2godG1wbCwgdG9rZW4udGFnSUQpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oY29udGVudCwgbnVsbCk7XG4gICAgfVxuICAgIF9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoVE4uSFRNTCwgTlMuSFRNTCwgW10pO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQodGhpcy5vcGVuRWxlbWVudHMuY3VycmVudCwgZWxlbWVudCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgJC5IVE1MKTtcbiAgICB9XG4gICAgX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwYXJlbnQpIHtcbiAgICAgICAgY29uc3QgY29tbWVudE5vZGUgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUNvbW1lbnROb2RlKHRva2VuLmRhdGEpO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHBhcmVudCwgY29tbWVudE5vZGUpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihjb21tZW50Tm9kZSwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKSB7XG4gICAgICAgIGxldCBwYXJlbnQ7XG4gICAgICAgIGxldCBiZWZvcmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSkge1xuICAgICAgICAgICAgKHsgcGFyZW50LCBiZWZvcmVFbGVtZW50IH0gPSB0aGlzLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKSk7XG4gICAgICAgICAgICBpZiAoYmVmb3JlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnQsIHRva2VuLmNoYXJzLCBiZWZvcmVFbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dChwYXJlbnQsIHRva2VuLmNoYXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHBhcmVudCA9IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudE9yTm9kZTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dChwYXJlbnQsIHRva2VuLmNoYXJzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRva2VuLmxvY2F0aW9uKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBzaWJsaW5ncyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2RlcyhwYXJlbnQpO1xuICAgICAgICBjb25zdCB0ZXh0Tm9kZUlkeCA9IGJlZm9yZUVsZW1lbnQgPyBzaWJsaW5ncy5sYXN0SW5kZXhPZihiZWZvcmVFbGVtZW50KSA6IHNpYmxpbmdzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBzaWJsaW5nc1t0ZXh0Tm9kZUlkeCAtIDFdO1xuICAgICAgICAvL05PVEU6IGlmIHdlIGhhdmUgYSBsb2NhdGlvbiBhc3NpZ25lZCBieSBhbm90aGVyIHRva2VuLCB0aGVuIGp1c3QgdXBkYXRlIHRoZSBlbmQgcG9zaXRpb25cbiAgICAgICAgY29uc3QgdG5Mb2MgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24odGV4dE5vZGUpO1xuICAgICAgICBpZiAodG5Mb2MpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZW5kTGluZSwgZW5kQ29sLCBlbmRPZmZzZXQgfSA9IHRva2VuLmxvY2F0aW9uO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci51cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlLCB7IGVuZExpbmUsIGVuZENvbCwgZW5kT2Zmc2V0IH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24odGV4dE5vZGUsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfYWRvcHROb2Rlcyhkb25vciwgcmVjaXBpZW50KSB7XG4gICAgICAgIGZvciAobGV0IGNoaWxkID0gdGhpcy50cmVlQWRhcHRlci5nZXRGaXJzdENoaWxkKGRvbm9yKTsgY2hpbGQ7IGNoaWxkID0gdGhpcy50cmVlQWRhcHRlci5nZXRGaXJzdENoaWxkKGRvbm9yKSkge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGNoaWxkKTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocmVjaXBpZW50LCBjaGlsZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX3NldEVuZExvY2F0aW9uKGVsZW1lbnQsIGNsb3NpbmdUb2tlbikge1xuICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQpICYmIGNsb3NpbmdUb2tlbi5sb2NhdGlvbikge1xuICAgICAgICAgICAgY29uc3QgY3RMb2MgPSBjbG9zaW5nVG9rZW4ubG9jYXRpb247XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGVuZExvYyA9IFxuICAgICAgICAgICAgLy8gTk9URTogRm9yIGNhc2VzIGxpa2UgPHA+IDxwPiA8L3A+IC0gRmlyc3QgJ3AnIGNsb3NlcyB3aXRob3V0IGEgY2xvc2luZ1xuICAgICAgICAgICAgLy8gdGFnIGFuZCBmb3IgY2FzZXMgbGlrZSA8dGQ+IDxwPiA8L3RkPiAtICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmcgdGFnLlxuICAgICAgICAgICAgY2xvc2luZ1Rva2VuLnR5cGUgPT09IFRva2VuVHlwZS5FTkRfVEFHICYmIHRuID09PSBjbG9zaW5nVG9rZW4udGFnTmFtZVxuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICBlbmRUYWc6IHsgLi4uY3RMb2MgfSxcbiAgICAgICAgICAgICAgICAgICAgZW5kTGluZTogY3RMb2MuZW5kTGluZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kQ29sOiBjdExvYy5lbmRDb2wsXG4gICAgICAgICAgICAgICAgICAgIGVuZE9mZnNldDogY3RMb2MuZW5kT2Zmc2V0LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kTGluZTogY3RMb2Muc3RhcnRMaW5lLFxuICAgICAgICAgICAgICAgICAgICBlbmRDb2w6IGN0TG9jLnN0YXJ0Q29sLFxuICAgICAgICAgICAgICAgICAgICBlbmRPZmZzZXQ6IGN0TG9jLnN0YXJ0T2Zmc2V0LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnVwZGF0ZU5vZGVTb3VyY2VDb2RlTG9jYXRpb24oZWxlbWVudCwgZW5kTG9jKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1Rva2VuIHByb2Nlc3NpbmdcbiAgICBzaG91bGRQcm9jZXNzU3RhcnRUYWdUb2tlbkluRm9yZWlnbkNvbnRlbnQodG9rZW4pIHtcbiAgICAgICAgLy8gQ2hlY2sgdGhhdCBuZWl0aGVyIGN1cnJlbnQgPT09IGRvY3VtZW50LCBvciBucyA9PT0gTlMuSFRNTFxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudE5vdEluSFRNTClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgbGV0IGN1cnJlbnQ7XG4gICAgICAgIGxldCBjdXJyZW50VGFnSWQ7XG4gICAgICAgIGlmICh0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dCkge1xuICAgICAgICAgICAgY3VycmVudCA9IHRoaXMuZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICAgICAgY3VycmVudFRhZ0lkID0gdGhpcy5mcmFnbWVudENvbnRleHRJRDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICh7IGN1cnJlbnQsIGN1cnJlbnRUYWdJZCB9ID0gdGhpcy5vcGVuRWxlbWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5TVkcgJiZcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShjdXJyZW50KSA9PT0gVE4uQU5OT1RBVElPTl9YTUwgJiZcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpID09PSBOUy5NQVRITUwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAvLyBDaGVjayB0aGF0IGBjdXJyZW50YCBpcyBub3QgYW4gaW50ZWdyYXRpb24gcG9pbnQgZm9yIEhUTUwgb3IgTWF0aE1MIGVsZW1lbnRzLlxuICAgICAgICB0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlIHx8XG4gICAgICAgICAgICAvLyBJZiBpdCBfaXNfIGFuIGludGVncmF0aW9uIHBvaW50LCB0aGVuIHdlIG1pZ2h0IGhhdmUgdG8gY2hlY2sgdGhhdCBpdCBpcyBub3QgYW4gSFRNTFxuICAgICAgICAgICAgLy8gaW50ZWdyYXRpb24gcG9pbnQuXG4gICAgICAgICAgICAoKHRva2VuLnRhZ0lEID09PSAkLk1HTFlQSCB8fCB0b2tlbi50YWdJRCA9PT0gJC5NQUxJR05NQVJLKSAmJlxuICAgICAgICAgICAgICAgICF0aGlzLl9pc0ludGVncmF0aW9uUG9pbnQoY3VycmVudFRhZ0lkLCBjdXJyZW50LCBOUy5IVE1MKSkpO1xuICAgIH1cbiAgICBfcHJvY2Vzc1Rva2VuKHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYXJhY3Rlcih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25OdWxsQ2hhcmFjdGVyKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNPTU1FTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkRvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuU1RBUlRfVEFHOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkVORF9UQUc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW5kVGFnKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25Fb2YodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uV2hpdGVzcGFjZUNoYXJhY3Rlcih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9JbnRlZ3JhdGlvbiBwb2ludHNcbiAgICBfaXNJbnRlZ3JhdGlvblBvaW50KHRpZCwgZWxlbWVudCwgZm9yZWlnbk5TKSB7XG4gICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGF0dHJzID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIGZvcmVpZ25Db250ZW50LmlzSW50ZWdyYXRpb25Qb2ludCh0aWQsIG5zLCBhdHRycywgZm9yZWlnbk5TKTtcbiAgICB9XG4gICAgLy9BY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50cyByZWNvbnN0cnVjdGlvblxuICAgIF9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpIHtcbiAgICAgICAgY29uc3QgbGlzdExlbmd0aCA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXMubGVuZ3RoO1xuICAgICAgICBpZiAobGlzdExlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZW5kSW5kZXggPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzLmZpbmRJbmRleCgoZW50cnkpID0+IGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5NYXJrZXIgfHwgdGhpcy5vcGVuRWxlbWVudHMuY29udGFpbnMoZW50cnkuZWxlbWVudCkpO1xuICAgICAgICAgICAgY29uc3QgdW5vcGVuSWR4ID0gZW5kSW5kZXggPCAwID8gbGlzdExlbmd0aCAtIDEgOiBlbmRJbmRleCAtIDE7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gdW5vcGVuSWR4OyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllc1tpXTtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnRFbGVtZW50KGVudHJ5LnRva2VuLCB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbnRyeS5lbGVtZW50KSk7XG4gICAgICAgICAgICAgICAgZW50cnkuZWxlbWVudCA9IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9DbG9zZSBlbGVtZW50c1xuICAgIF9jbG9zZVRhYmxlQ2VsbCgpIHtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhYmxlQ2VsbFBvcHBlZCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICB9XG4gICAgX2Nsb3NlUEVsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKCQuUCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlApO1xuICAgIH1cbiAgICAvL0luc2VydGlvbiBtb2Rlc1xuICAgIF9yZXNldEluc2VydGlvbk1vZGUoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIC8vSW5zZXJ0aW9uIG1vZGUgcmVzZXQgbWFwXG4gICAgICAgICAgICBzd2l0Y2ggKGkgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQgPyB0aGlzLmZyYWdtZW50Q29udGV4dElEIDogdGhpcy5vcGVuRWxlbWVudHMudGFnSURzW2ldKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRGT09UOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuQ0FQVElPTjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT047XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5CT0RZOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0SW5zZXJ0aW9uTW9kZUZvclNlbGVjdChpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IHRoaXMuaGVhZEVsZW1lbnQgPyBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQgOiBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NFTEw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgfVxuICAgIF9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3Qoc2VsZWN0SWR4KSB7XG4gICAgICAgIGlmIChzZWxlY3RJZHggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gc2VsZWN0SWR4IC0gMTsgaSA+IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICAgICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q7XG4gICAgfVxuICAgIC8vRm9zdGVyIHBhcmVudGluZ1xuICAgIF9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcodG4pIHtcbiAgICAgICAgcmV0dXJuIFRBQkxFX1NUUlVDVFVSRV9UQUdTLmhhcyh0bik7XG4gICAgfVxuICAgIF9zaG91bGRGb3N0ZXJQYXJlbnRPbkluc2VydGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCAmJiB0aGlzLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcodGhpcy5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkKTtcbiAgICB9XG4gICAgX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3Qgb3BlbkVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5vcGVuRWxlbWVudHMudGFnSURzW2ldKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShvcGVuRWxlbWVudCkgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQob3BlbkVsZW1lbnQpLCBiZWZvcmVFbGVtZW50OiBudWxsIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUob3BlbkVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBwYXJlbnQsIGJlZm9yZUVsZW1lbnQ6IG9wZW5FbGVtZW50IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcGFyZW50OiB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpIC0gMV0sIGJlZm9yZUVsZW1lbnQ6IG51bGwgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcGFyZW50OiB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1swXSwgYmVmb3JlRWxlbWVudDogbnVsbCB9O1xuICAgIH1cbiAgICBfZm9zdGVyUGFyZW50RWxlbWVudChlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5fZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uKCk7XG4gICAgICAgIGlmIChsb2NhdGlvbi5iZWZvcmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydEJlZm9yZShsb2NhdGlvbi5wYXJlbnQsIGVsZW1lbnQsIGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChsb2NhdGlvbi5wYXJlbnQsIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vU3BlY2lhbCBlbGVtZW50c1xuICAgIF9pc1NwZWNpYWxFbGVtZW50KGVsZW1lbnQsIGlkKSB7XG4gICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBTUEVDSUFMX0VMRU1FTlRTW25zXS5oYXMoaWQpO1xuICAgIH1cbiAgICBvbkNoYXJhY3Rlcih0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgY2hhcmFjdGVySW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5Cb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25OdWxsQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICBudWxsQ2hhcmFjdGVySW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uQ29tbWVudCh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Tm90SW5IVE1MKSB7XG4gICAgICAgICAgICBhcHBlbmRDb21tZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBhcHBlbmRDb21tZW50VG9Sb290SHRtbEVsZW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBhcHBlbmRDb21tZW50VG9Eb2N1bWVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uRG9jdHlwZSh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICBkb2N0eXBlSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKHRva2VuLCBFUlIubWlzcGxhY2VkRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblN0YXJ0VGFnKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gdG9rZW47XG4gICAgICAgIHRoaXMuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZyAmJiAhdG9rZW4uYWNrU2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX2Vycih0b2tlbiwgRVJSLm5vblZvaWRIdG1sRWxlbWVudFN0YXJ0VGFnV2l0aFRyYWlsaW5nU29saWR1cyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIGEgZ2l2ZW4gc3RhcnQgdGFnLlxuICAgICAqXG4gICAgICogYG9uU3RhcnRUYWdgIGNoZWNrcyBpZiBhIHNlbGYtY2xvc2luZyB0YWcgd2FzIHJlY29nbml6ZWQuIFdoZW4gYSB0b2tlblxuICAgICAqIGlzIG1vdmVkIGluYmV0d2VlbiBtdWx0aXBsZSBpbnNlcnRpb24gbW9kZXMsIHRoaXMgY2hlY2sgZm9yIHNlbGYtY2xvc2luZ1xuICAgICAqIGNvdWxkIGxlYWQgdG8gZmFsc2UgcG9zaXRpdmVzLiBUbyBhdm9pZCB0aGlzLCBgX3Byb2Nlc3NTdGFydFRhZ2AgaXMgdXNlZFxuICAgICAqIGZvciBuZXN0ZWQgY2FsbHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdG9rZW4gVGhlIHRva2VuIHRvIHByb2Nlc3MuXG4gICAgICovXG4gICAgX3Byb2Nlc3NTdGFydFRhZyh0b2tlbikge1xuICAgICAgICBpZiAodGhpcy5zaG91bGRQcm9jZXNzU3RhcnRUYWdUb2tlbkluRm9yZWlnbkNvbnRlbnQodG9rZW4pKSB7XG4gICAgICAgICAgICBzdGFydFRhZ0luRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc3RhcnRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9zdGFydFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdCZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQ2FwdGlvbih0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblJvdyh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5DZWxsKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luU2VsZWN0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luU2VsZWN0SW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGVtcGxhdGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVyQWZ0ZXJGcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uRW5kVGFnKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gdG9rZW47XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnROb3RJbkhUTUwpIHtcbiAgICAgICAgICAgIGVuZFRhZ0luRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdCZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0JlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkNhcHRpb24odGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Sb3codGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkNlbGwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luU2VsZWN0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblNlbGVjdEluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0FmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0FmdGVyRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Fb2YodG9rZW4pIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgZW9mSW5Cb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOiB7XG4gICAgICAgICAgICAgICAgZW9mSW5UZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICBlb2ZJblRlbXBsYXRlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBzdG9wUGFyc2luZyh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uV2hpdGVzcGFjZUNoYXJhY3Rlcih0b2tlbikge1xuICAgICAgICBpZiAodGhpcy5za2lwTmV4dE5ld0xpbmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAodG9rZW4uY2hhcnMuY2hhckNvZGVBdCgwKSA9PT0gdW5pY29kZS5DT0RFX1BPSU5UUy5MSU5FX0ZFRUQpIHtcbiAgICAgICAgICAgICAgICBpZiAodG9rZW4uY2hhcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdG9rZW4uY2hhcnMgPSB0b2tlbi5jaGFycy5zdWJzdHIoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudG9rZW5pemVyLmluRm9yZWlnbk5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vQWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobVxuLy8oc2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90cmVlLWNvbnN0cnVjdGlvbi5odG1sI2Fkb3B0aW9uQWdlbmN5KVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vU3RlcHMgNS04IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhT2J0YWluRm9ybWF0dGluZ0VsZW1lbnRFbnRyeShwLCB0b2tlbikge1xuICAgIGxldCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKHRva2VuLnRhZ05hbWUpO1xuICAgIGlmIChmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgICAgIGlmICghcC5vcGVuRWxlbWVudHMuY29udGFpbnMoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KSkge1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgICAgICAgICBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghcC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0b2tlbi50YWdJRCkpIHtcbiAgICAgICAgICAgIGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG59XG4vL1N0ZXBzIDkgYW5kIDEwIG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhT2J0YWluRnVydGhlc3RCbG9jayhwLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgbGV0IGZ1cnRoZXN0QmxvY2sgPSBudWxsO1xuICAgIGxldCBpZHggPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDtcbiAgICBmb3IgKDsgaWR4ID49IDA7IGlkeC0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpZHhdO1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAocC5faXNTcGVjaWFsRWxlbWVudChlbGVtZW50LCBwLm9wZW5FbGVtZW50cy50YWdJRHNbaWR4XSkpIHtcbiAgICAgICAgICAgIGZ1cnRoZXN0QmxvY2sgPSBlbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghZnVydGhlc3RCbG9jaykge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5zaG9ydGVuVG9MZW5ndGgoaWR4IDwgMCA/IDAgOiBpZHgpO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1cnRoZXN0QmxvY2s7XG59XG4vL1N0ZXAgMTMgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFJbm5lckxvb3AocCwgZnVydGhlc3RCbG9jaywgZm9ybWF0dGluZ0VsZW1lbnQpIHtcbiAgICBsZXQgbGFzdEVsZW1lbnQgPSBmdXJ0aGVzdEJsb2NrO1xuICAgIGxldCBuZXh0RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGZ1cnRoZXN0QmxvY2spO1xuICAgIGZvciAobGV0IGkgPSAwLCBlbGVtZW50ID0gbmV4dEVsZW1lbnQ7IGVsZW1lbnQgIT09IGZvcm1hdHRpbmdFbGVtZW50OyBpKyssIGVsZW1lbnQgPSBuZXh0RWxlbWVudCkge1xuICAgICAgICAvL05PVEU6IHN0b3JlIHRoZSBuZXh0IGVsZW1lbnQgZm9yIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uIChpdCBtYXkgYmUgZGVsZXRlZCBmcm9tIHRoZSBzdGFjayBieSBzdGVwIDkuNSlcbiAgICAgICAgbmV4dEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3RvcihlbGVtZW50KTtcbiAgICAgICAgY29uc3QgZWxlbWVudEVudHJ5ID0gcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZ2V0RWxlbWVudEVudHJ5KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjb3VudGVyT3ZlcmZsb3cgPSBlbGVtZW50RW50cnkgJiYgaSA+PSBBQV9JTk5FUl9MT09QX0lURVI7XG4gICAgICAgIGNvbnN0IHNob3VsZFJlbW92ZUZyb21PcGVuRWxlbWVudHMgPSAhZWxlbWVudEVudHJ5IHx8IGNvdW50ZXJPdmVyZmxvdztcbiAgICAgICAgaWYgKHNob3VsZFJlbW92ZUZyb21PcGVuRWxlbWVudHMpIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyT3ZlcmZsb3cpIHtcbiAgICAgICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShlbGVtZW50RW50cnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudCA9IGFhUmVjcmVhdGVFbGVtZW50RnJvbUVudHJ5KHAsIGVsZW1lbnRFbnRyeSk7XG4gICAgICAgICAgICBpZiAobGFzdEVsZW1lbnQgPT09IGZ1cnRoZXN0QmxvY2spIHtcbiAgICAgICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5ib29rbWFyayA9IGVsZW1lbnRFbnRyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShsYXN0RWxlbWVudCk7XG4gICAgICAgICAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGVsZW1lbnQsIGxhc3RFbGVtZW50KTtcbiAgICAgICAgICAgIGxhc3RFbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGFzdEVsZW1lbnQ7XG59XG4vL1N0ZXAgMTMuNyBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYVJlY3JlYXRlRWxlbWVudEZyb21FbnRyeShwLCBlbGVtZW50RW50cnkpIHtcbiAgICBjb25zdCBucyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gcC50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KGVsZW1lbnRFbnRyeS50b2tlbi50YWdOYW1lLCBucywgZWxlbWVudEVudHJ5LnRva2VuLmF0dHJzKTtcbiAgICBwLm9wZW5FbGVtZW50cy5yZXBsYWNlKGVsZW1lbnRFbnRyeS5lbGVtZW50LCBuZXdFbGVtZW50KTtcbiAgICBlbGVtZW50RW50cnkuZWxlbWVudCA9IG5ld0VsZW1lbnQ7XG4gICAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG4vL1N0ZXAgMTQgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFJbnNlcnRMYXN0Tm9kZUluQ29tbW9uQW5jZXN0b3IocCwgY29tbW9uQW5jZXN0b3IsIGxhc3RFbGVtZW50KSB7XG4gICAgY29uc3QgdG4gPSBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoY29tbW9uQW5jZXN0b3IpO1xuICAgIGNvbnN0IHRpZCA9IGdldFRhZ0lEKHRuKTtcbiAgICBpZiAocC5faXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRpZCkpIHtcbiAgICAgICAgcC5fZm9zdGVyUGFyZW50RWxlbWVudChsYXN0RWxlbWVudCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBucyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGNvbW1vbkFuY2VzdG9yKTtcbiAgICAgICAgaWYgKHRpZCA9PT0gJC5URU1QTEFURSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgY29tbW9uQW5jZXN0b3IgPSBwLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudChjb21tb25BbmNlc3Rvcik7XG4gICAgICAgIH1cbiAgICAgICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpO1xuICAgIH1cbn1cbi8vU3RlcHMgMTUtMTkgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFSZXBsYWNlRm9ybWF0dGluZ0VsZW1lbnQocCwgZnVydGhlc3RCbG9jaywgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgIGNvbnN0IG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICBjb25zdCB7IHRva2VuIH0gPSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5O1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBwLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbnMsIHRva2VuLmF0dHJzKTtcbiAgICBwLl9hZG9wdE5vZGVzKGZ1cnRoZXN0QmxvY2ssIG5ld0VsZW1lbnQpO1xuICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0RWxlbWVudEFmdGVyQm9va21hcmsobmV3RWxlbWVudCwgdG9rZW4pO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgIHAub3BlbkVsZW1lbnRzLmluc2VydEFmdGVyKGZ1cnRoZXN0QmxvY2ssIG5ld0VsZW1lbnQsIHRva2VuLnRhZ0lEKTtcbn1cbi8vQWxnb3JpdGhtIGVudHJ5IHBvaW50XG5mdW5jdGlvbiBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IEFBX09VVEVSX0xPT1BfSVRFUjsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkocCwgdG9rZW4pO1xuICAgICAgICBpZiAoIWZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZ1cnRoZXN0QmxvY2sgPSBhYU9idGFpbkZ1cnRoZXN0QmxvY2socCwgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgICAgIGlmICghZnVydGhlc3RCbG9jaykge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuYm9va21hcmsgPSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5O1xuICAgICAgICBjb25zdCBsYXN0RWxlbWVudCA9IGFhSW5uZXJMb29wKHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNvbW1vbkFuY2VzdG9yID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICAgICAgcC50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGxhc3RFbGVtZW50KTtcbiAgICAgICAgaWYgKGNvbW1vbkFuY2VzdG9yKVxuICAgICAgICAgICAgYWFJbnNlcnRMYXN0Tm9kZUluQ29tbW9uQW5jZXN0b3IocCwgY29tbW9uQW5jZXN0b3IsIGxhc3RFbGVtZW50KTtcbiAgICAgICAgYWFSZXBsYWNlRm9ybWF0dGluZ0VsZW1lbnQocCwgZnVydGhlc3RCbG9jaywgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgfVxufVxuLy9HZW5lcmljIHRva2VuIGhhbmRsZXJzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gYXBwZW5kQ29tbWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnRPck5vZGUpO1xufVxuZnVuY3Rpb24gYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdKTtcbn1cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnRUb0RvY3VtZW50KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHAuZG9jdW1lbnQpO1xufVxuZnVuY3Rpb24gc3RvcFBhcnNpbmcocCwgdG9rZW4pIHtcbiAgICBwLnN0b3BwZWQgPSB0cnVlO1xuICAgIC8vIE5PVEU6IFNldCBlbmQgbG9jYXRpb25zIGZvciBlbGVtZW50cyB0aGF0IHJlbWFpbiBvbiB0aGUgb3BlbiBlbGVtZW50IHN0YWNrLlxuICAgIGlmICh0b2tlbi5sb2NhdGlvbikge1xuICAgICAgICAvLyBOT1RFOiBJZiB3ZSBhcmUgbm90IGluIGEgZnJhZ21lbnQsIGBodG1sYCBhbmQgYGJvZHlgIHdpbGwgc3RheSBvbiB0aGUgc3RhY2suXG4gICAgICAgIC8vIFRoaXMgaXMgYSBwcm9ibGVtLCBhcyB3ZSBtaWdodCBvdmVyd3JpdGUgdGhlaXIgZW5kIHBvc2l0aW9uIGhlcmUuXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHAuZnJhZ21lbnRDb250ZXh0ID8gMCA6IDI7XG4gICAgICAgIGZvciAobGV0IGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSB0YXJnZXQ7IGktLSkge1xuICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24ocC5vcGVuRWxlbWVudHMuaXRlbXNbaV0sIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBIYW5kbGUgYGh0bWxgIGFuZCBgYm9keWBcbiAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCAmJiBwLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdO1xuICAgICAgICAgICAgY29uc3QgaHRtbExvY2F0aW9uID0gcC50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGh0bWxFbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChodG1sTG9jYXRpb24gJiYgIWh0bWxMb2NhdGlvbi5lbmRUYWcpIHtcbiAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihodG1sRWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbMV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHlMb2NhdGlvbiA9IHAudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihib2R5RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChib2R5TG9jYXRpb24gJiYgIWJvZHlMb2NhdGlvbi5lbmRUYWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGJvZHlFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbml0aWFsXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBkb2N0eXBlSW5Jbml0aWFsTW9kZShwLCB0b2tlbikge1xuICAgIHAuX3NldERvY3VtZW50VHlwZSh0b2tlbik7XG4gICAgY29uc3QgbW9kZSA9IHRva2VuLmZvcmNlUXVpcmtzID8gRE9DVU1FTlRfTU9ERS5RVUlSS1MgOiBkb2N0eXBlLmdldERvY3VtZW50TW9kZSh0b2tlbik7XG4gICAgaWYgKCFkb2N0eXBlLmlzQ29uZm9ybWluZyh0b2tlbikpIHtcbiAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIubm9uQ29uZm9ybWluZ0RvY3R5cGUpO1xuICAgIH1cbiAgICBwLnRyZWVBZGFwdGVyLnNldERvY3VtZW50TW9kZShwLmRvY3VtZW50LCBtb2RlKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MO1xufVxuZnVuY3Rpb24gdG9rZW5JbkluaXRpYWxNb2RlKHAsIHRva2VuKSB7XG4gICAgcC5fZXJyKHRva2VuLCBFUlIubWlzc2luZ0RvY3R5cGUsIHRydWUpO1xuICAgIHAudHJlZUFkYXB0ZXIuc2V0RG9jdW1lbnRNb2RlKHAuZG9jdW1lbnQsIERPQ1VNRU5UX01PREUuUVVJUktTKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJiZWZvcmUgaHRtbFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdCZWZvcmVIdG1sKHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0JlZm9yZUh0bWwocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5IVE1MIHx8IHRuID09PSAkLkhFQUQgfHwgdG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5CUikge1xuICAgICAgICB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VSb290RWxlbWVudCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImJlZm9yZSBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0JlZm9yZUhlYWQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmhlYWRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdCZWZvcmVIZWFkKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuSEVBRCB8fCB0biA9PT0gJC5CT0RZIHx8IHRuID09PSAkLkhUTUwgfHwgdG4gPT09ICQuQlIpIHtcbiAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5IRUFELCAkLkhFQUQpO1xuICAgIHAuaGVhZEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gaGVhZFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkJBU0VGT05UOlxuICAgICAgICBjYXNlICQuQkdTT1VORDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOiB7XG4gICAgICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5USVRMRToge1xuICAgICAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQ0RBVEEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PU0NSSVBUOiB7XG4gICAgICAgICAgICBpZiAocC5vcHRpb25zLnNjcmlwdGluZ0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJBV1RFWFQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNUWUxFOiB7XG4gICAgICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJBV1RFWFQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNDUklQVDoge1xuICAgICAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5TQ1JJUFRfREFUQSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHAuX2luc2VydFRlbXBsYXRlKHRva2VuKTtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgICAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFO1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnVuc2hpZnQoSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIubWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluSGVhZChwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkhlYWQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQlI6XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICB0b2tlbkluSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDApIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1Rob3JvdWdobHkoKTtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCAhPT0gJC5URU1QTEFURSkge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuY2xvc2luZ09mRWxlbWVudFdpdGhPcGVuQ2hpbGRFbGVtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEVNUExBVEUpO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2suc2hpZnQoKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkhlYWQocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGhlYWQgbm8gc2NyaXB0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luSGVhZE5vU2NyaXB0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJBU0VGT05UOlxuICAgICAgICBjYXNlICQuQkdTT1VORDpcbiAgICAgICAgY2FzZSAkLkhFQUQ6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQTpcbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOlxuICAgICAgICBjYXNlICQuU1RZTEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIubmVzdGVkTm9zY3JpcHRJbkhlYWQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdChwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkhlYWROb1NjcmlwdChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLk5PU0NSSVBUOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CUjoge1xuICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkluSGVhZE5vU2NyaXB0KHAsIHRva2VuKSB7XG4gICAgY29uc3QgZXJyQ29kZSA9IHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5FT0YgPyBFUlIub3BlbkVsZW1lbnRzTGVmdEFmdGVyRW9mIDogRVJSLmRpc2FsbG93ZWRDb250ZW50SW5Ob3NjcmlwdEluSGVhZDtcbiAgICBwLl9lcnIodG9rZW4sIGVyckNvZGUpO1xuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiYWZ0ZXIgaGVhZFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckhlYWQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GUkFNRVNFVDoge1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQTpcbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOlxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURTpcbiAgICAgICAgY2FzZSAkLlRJVExFOiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5hYmFuZG9uZWRIZWFkRWxlbWVudENoaWxkKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnB1c2gocC5oZWFkRWxlbWVudCwgJC5IRUFEKTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShwLmhlYWRFbGVtZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5taXNwbGFjZWRTdGFydFRhZ0ZvckhlYWRFbGVtZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0FmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5CT0RZLCAkLkJPRFkpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGJvZHlcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIG1vZGVJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgY2FzZSBUb2tlblR5cGUuQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICBjaGFyYWN0ZXJJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuQ09NTUVOVDoge1xuICAgICAgICAgICAgYXBwZW5kQ29tbWVudChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5TVEFSVF9UQUc6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkVORF9UQUc6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5FT0Y6IHtcbiAgICAgICAgICAgIGVvZkluQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuZnVuY3Rpb24gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gaHRtbFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMCkge1xuICAgICAgICBwLnRyZWVBZGFwdGVyLmFkb3B0QXR0cmlidXRlcyhwLm9wZW5FbGVtZW50cy5pdGVtc1swXSwgdG9rZW4uYXR0cnMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGJvZHlTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICBpZiAoYm9keUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgICAgICBwLnRyZWVBZGFwdGVyLmFkb3B0QXR0cmlidXRlcyhib2R5RWxlbWVudCwgdG9rZW4uYXR0cnMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7XG4gICAgaWYgKHAuZnJhbWVzZXRPayAmJiBib2R5RWxlbWVudCkge1xuICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUoYm9keUVsZW1lbnQpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BBbGxVcFRvSHRtbEVsZW1lbnQoKTtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gbnVtYmVyZWRIZWFkZXJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBpZiAoaXNOdW1iZXJlZEhlYWRlcihwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIC8vTk9URTogSWYgdGhlIG5leHQgdG9rZW4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0IHRva2VuIGFuZCBtb3ZlXG4gICAgLy9vbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgcHJlIGJsb2NrcyBhcmUgaWdub3JlZCBhcyBhbiBhdXRob3JpbmcgY29udmVuaWVuY2UuKVxuICAgIHAuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGZvcm1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IGluVGVtcGxhdGUgPSBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwO1xuICAgIGlmICghcC5mb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgaWYgKCFpblRlbXBsYXRlKSB7XG4gICAgICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGxpc3RJdGVtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGZvciAobGV0IGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudElkID0gcC5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICBpZiAoKHRuID09PSAkLkxJICYmIGVsZW1lbnRJZCA9PT0gJC5MSSkgfHxcbiAgICAgICAgICAgICgodG4gPT09ICQuREQgfHwgdG4gPT09ICQuRFQpICYmIChlbGVtZW50SWQgPT09ICQuREQgfHwgZWxlbWVudElkID09PSAkLkRUKSkpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKGVsZW1lbnRJZCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoZWxlbWVudElkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50SWQgIT09ICQuQUREUkVTUyAmJlxuICAgICAgICAgICAgZWxlbWVudElkICE9PSAkLkRJViAmJlxuICAgICAgICAgICAgZWxlbWVudElkICE9PSAkLlAgJiZcbiAgICAgICAgICAgIHAuX2lzU3BlY2lhbEVsZW1lbnQocC5vcGVuRWxlbWVudHMuaXRlbXNbaV0sIGVsZW1lbnRJZCkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHBsYWludGV4dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5QTEFJTlRFWFQ7XG59XG5mdW5jdGlvbiBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQlVUVE9OKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkJVVFRPTik7XG4gICAgfVxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUoVE4uQSk7XG4gICAgaWYgKGFjdGl2ZUVsZW1lbnRFbnRyeSkge1xuICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoYWN0aXZlRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShhY3RpdmVFbGVtZW50RW50cnkpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLk5PQlIpKSB7XG4gICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XG4gICAgICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIGFwcGxldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIHRhYmxlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC50cmVlQWRhcHRlci5nZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCkgIT09IERPQ1VNRU5UX01PREUuUVVJUktTICYmIHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG59XG5mdW5jdGlvbiBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGlzSGlkZGVuSW5wdXQodG9rZW4pIHtcbiAgICBjb25zdCBpbnB1dFR5cGUgPSBnZXRUb2tlbkF0dHIodG9rZW4sIEFUVFJTLlRZUEUpO1xuICAgIHJldHVybiBpbnB1dFR5cGUgIT0gbnVsbCAmJiBpbnB1dFR5cGUudG9Mb3dlckNhc2UoKSA9PT0gSElEREVOX0lOUFVUX1RZUEU7XG59XG5mdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBpZiAoIWlzSGlkZGVuSW5wdXQodG9rZW4pKSB7XG4gICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIH1cbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gaHJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBpbWFnZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgdG9rZW4udGFnTmFtZSA9IFROLklNRztcbiAgICB0b2tlbi50YWdJRCA9ICQuSU1HO1xuICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgLy9OT1RFOiBJZiB0aGUgbmV4dCB0b2tlbiBpcyBhIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXIgdG9rZW4sIHRoZW4gaWdub3JlIHRoYXQgdG9rZW4gYW5kIG1vdmVcbiAgICAvL29uIHRvIHRoZSBuZXh0IG9uZS4gKE5ld2xpbmVzIGF0IHRoZSBzdGFydCBvZiB0ZXh0YXJlYSBlbGVtZW50cyBhcmUgaWdub3JlZCBhcyBhbiBhdXRob3JpbmcgY29udmVuaWVuY2UuKVxuICAgIHAuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICBwLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkNEQVRBO1xuICAgIHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gcC5pbnNlcnRpb25Nb2RlO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuVEVYVDtcbn1cbmZ1bmN0aW9uIHhtcFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbn1cbmZ1bmN0aW9uIGlmcmFtZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbn1cbi8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB3ZSBhbHdheXMgYWN0IGFzIGFuIHVzZXIgYWdlbnQgd2l0aCBlbmFibGVkIHBsdWdpbnMsIHNvIHdlIHBhcnNlXG4vLzxub2VtYmVkPiBhcyByYXd0ZXh0LlxuZnVuY3Rpb24gbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbn1cbmZ1bmN0aW9uIHNlbGVjdFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLmluc2VydGlvbk1vZGUgPVxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fVEFCTEUgfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWSB8fFxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX1JPVyB8fFxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX0NFTExcbiAgICAgICAgICAgID8gSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEVcbiAgICAgICAgICAgIDogSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q7XG59XG5mdW5jdGlvbiBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRJT04pIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiByYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5SVUJZKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gcnRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuUlVCWSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5SVEMpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5NYXRoTUxBdHRycyh0b2tlbik7XG4gICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbik7XG4gICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nKSB7XG4gICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLk1BVEhNTCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5NQVRITUwpO1xuICAgIH1cbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBzdmdTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdBdHRycyh0b2tlbik7XG4gICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbik7XG4gICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nKSB7XG4gICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLlNWRyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5TVkcpO1xuICAgIH1cbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5JOlxuICAgICAgICBjYXNlICQuUzpcbiAgICAgICAgY2FzZSAkLkI6XG4gICAgICAgIGNhc2UgJC5VOlxuICAgICAgICBjYXNlICQuRU06XG4gICAgICAgIGNhc2UgJC5UVDpcbiAgICAgICAgY2FzZSAkLkJJRzpcbiAgICAgICAgY2FzZSAkLkNPREU6XG4gICAgICAgIGNhc2UgJC5GT05UOlxuICAgICAgICBjYXNlICQuU01BTEw6XG4gICAgICAgIGNhc2UgJC5TVFJJS0U6XG4gICAgICAgIGNhc2UgJC5TVFJPTkc6IHtcbiAgICAgICAgICAgIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQToge1xuICAgICAgICAgICAgYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IMTpcbiAgICAgICAgY2FzZSAkLkgyOlxuICAgICAgICBjYXNlICQuSDM6XG4gICAgICAgIGNhc2UgJC5INDpcbiAgICAgICAgY2FzZSAkLkg1OlxuICAgICAgICBjYXNlICQuSDY6IHtcbiAgICAgICAgICAgIG51bWJlcmVkSGVhZGVyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlA6XG4gICAgICAgIGNhc2UgJC5ETDpcbiAgICAgICAgY2FzZSAkLk9MOlxuICAgICAgICBjYXNlICQuVUw6XG4gICAgICAgIGNhc2UgJC5ESVY6XG4gICAgICAgIGNhc2UgJC5ESVI6XG4gICAgICAgIGNhc2UgJC5OQVY6XG4gICAgICAgIGNhc2UgJC5NQUlOOlxuICAgICAgICBjYXNlICQuTUVOVTpcbiAgICAgICAgY2FzZSAkLkFTSURFOlxuICAgICAgICBjYXNlICQuQ0VOVEVSOlxuICAgICAgICBjYXNlICQuRklHVVJFOlxuICAgICAgICBjYXNlICQuRk9PVEVSOlxuICAgICAgICBjYXNlICQuSEVBREVSOlxuICAgICAgICBjYXNlICQuSEdST1VQOlxuICAgICAgICBjYXNlICQuRElBTE9HOlxuICAgICAgICBjYXNlICQuREVUQUlMUzpcbiAgICAgICAgY2FzZSAkLkFERFJFU1M6XG4gICAgICAgIGNhc2UgJC5BUlRJQ0xFOlxuICAgICAgICBjYXNlICQuU0VDVElPTjpcbiAgICAgICAgY2FzZSAkLlNVTU1BUlk6XG4gICAgICAgIGNhc2UgJC5GSUVMRFNFVDpcbiAgICAgICAgY2FzZSAkLkJMT0NLUVVPVEU6XG4gICAgICAgIGNhc2UgJC5GSUdDQVBUSU9OOiB7XG4gICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkxJOlxuICAgICAgICBjYXNlICQuREQ6XG4gICAgICAgIGNhc2UgJC5EVDoge1xuICAgICAgICAgICAgbGlzdEl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6XG4gICAgICAgIGNhc2UgJC5JTUc6XG4gICAgICAgIGNhc2UgJC5XQlI6XG4gICAgICAgIGNhc2UgJC5BUkVBOlxuICAgICAgICBjYXNlICQuRU1CRUQ6XG4gICAgICAgIGNhc2UgJC5LRVlHRU46IHtcbiAgICAgICAgICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSFI6IHtcbiAgICAgICAgICAgIGhyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlJCOlxuICAgICAgICBjYXNlICQuUlRDOiB7XG4gICAgICAgICAgICByYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5SVDpcbiAgICAgICAgY2FzZSAkLlJQOiB7XG4gICAgICAgICAgICBydFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QUkU6XG4gICAgICAgIGNhc2UgJC5MSVNUSU5HOiB7XG4gICAgICAgICAgICBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuWE1QOiB7XG4gICAgICAgICAgICB4bXBTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU1ZHOiB7XG4gICAgICAgICAgICBzdmdTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgaHRtbFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgY2FzZSAkLlRJVExFOlxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuQkdTT1VORDpcbiAgICAgICAgY2FzZSAkLkJBU0VGT05UOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOiB7XG4gICAgICAgICAgICBib2R5U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZPUk06IHtcbiAgICAgICAgICAgIGZvcm1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9CUjoge1xuICAgICAgICAgICAgbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5NQVRIOiB7XG4gICAgICAgICAgICBtYXRoU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICB0YWJsZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTlBVVDoge1xuICAgICAgICAgICAgaW5wdXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUEFSQU06XG4gICAgICAgIGNhc2UgJC5UUkFDSzpcbiAgICAgICAgY2FzZSAkLlNPVVJDRToge1xuICAgICAgICAgICAgcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSU1BR0U6IHtcbiAgICAgICAgICAgIGltYWdlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJVVFRPTjoge1xuICAgICAgICAgICAgYnV0dG9uU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkFQUExFVDpcbiAgICAgICAgY2FzZSAkLk9CSkVDVDpcbiAgICAgICAgY2FzZSAkLk1BUlFVRUU6IHtcbiAgICAgICAgICAgIGFwcGxldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JRlJBTUU6IHtcbiAgICAgICAgICAgIGlmcmFtZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TRUxFQ1Q6IHtcbiAgICAgICAgICAgIHNlbGVjdFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5PUFRJT046XG4gICAgICAgIGNhc2UgJC5PUFRHUk9VUDoge1xuICAgICAgICAgICAgb3B0Z3JvdXBTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9FTUJFRDoge1xuICAgICAgICAgICAgbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GUkFNRVNFVDoge1xuICAgICAgICAgICAgZnJhbWVzZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVYVEFSRUE6IHtcbiAgICAgICAgICAgIHRleHRhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PU0NSSVBUOiB7XG4gICAgICAgICAgICBpZiAocC5vcHRpb25zLnNjcmlwdGluZ0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBub2VtYmVkU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QTEFJTlRFWFQ6IHtcbiAgICAgICAgICAgIHBsYWludGV4dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVFI6XG4gICAgICAgIGNhc2UgJC5IRUFEOlxuICAgICAgICBjYXNlICQuRlJBTUU6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGJvZHlFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkJPRFkpKSB7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTtcbiAgICAgICAgLy9OT1RFOiA8Ym9keT4gaXMgbmV2ZXIgcG9wcGVkIGZyb20gdGhlIHN0YWNrLCBzbyB3ZSBuZWVkIHRvIHVwZGF0ZWRcbiAgICAgICAgLy90aGUgZW5kIGxvY2F0aW9uIGV4cGxpY2l0bHkuXG4gICAgICAgIGlmIChwLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuICAgICAgICAgICAgaWYgKGJvZHlFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oYm9keUVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGh0bWxFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkJPRFkpKSB7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTtcbiAgICAgICAgZW5kVGFnQWZ0ZXJCb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGZvcm1FbmRUYWdJbkJvZHkocCkge1xuICAgIGNvbnN0IGluVGVtcGxhdGUgPSBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwO1xuICAgIGNvbnN0IHsgZm9ybUVsZW1lbnQgfSA9IHA7XG4gICAgaWYgKCFpblRlbXBsYXRlKSB7XG4gICAgICAgIHAuZm9ybUVsZW1lbnQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAoKGZvcm1FbGVtZW50IHx8IGluVGVtcGxhdGUpICYmIHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5GT1JNKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIGlmIChpblRlbXBsYXRlKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5GT1JNKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChmb3JtRWxlbWVudCkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGZvcm1FbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHBFbmRUYWdJbkJvZHkocCkge1xuICAgIGlmICghcC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlAsICQuUCk7XG4gICAgfVxuICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbn1cbmZ1bmN0aW9uIGxpRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5MaXN0SXRlbVNjb3BlKCQuTEkpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKCQuTEkpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5MSSk7XG4gICAgfVxufVxuZnVuY3Rpb24gZGRFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRuKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0bik7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XG4gICAgfVxufVxuZnVuY3Rpb24gbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCkge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNOdW1iZXJlZEhlYWRlckluU2NvcGUoKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsTnVtYmVyZWRIZWFkZXJQb3BwZWQoKTtcbiAgICB9XG59XG5mdW5jdGlvbiBhcHBsZXRFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRuKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gYnJFbmRUYWdJbkJvZHkocCkge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQlIsICQuQlIpO1xuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnTmFtZTtcbiAgICBjb25zdCB0aWQgPSB0b2tlbi50YWdJRDtcbiAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldO1xuICAgICAgICBjb25zdCBlbGVtZW50SWQgPSBwLm9wZW5FbGVtZW50cy50YWdJRHNbaV07XG4gICAgICAgIC8vIENvbXBhcmUgdGhlIHRhZyBuYW1lIGhlcmUsIGFzIHRoZSB0YWcgbWlnaHQgbm90IGJlIGEga25vd24gdGFnIHdpdGggYW4gSUQuXG4gICAgICAgIGlmICh0aWQgPT09IGVsZW1lbnRJZCAmJiAodGlkICE9PSAkLlVOS05PV04gfHwgcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSB0bikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKHRpZCk7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPj0gaSlcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5zaG9ydGVuVG9MZW5ndGgoaSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAocC5faXNTcGVjaWFsRWxlbWVudChlbGVtZW50LCBlbGVtZW50SWQpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkE6XG4gICAgICAgIGNhc2UgJC5COlxuICAgICAgICBjYXNlICQuSTpcbiAgICAgICAgY2FzZSAkLlM6XG4gICAgICAgIGNhc2UgJC5VOlxuICAgICAgICBjYXNlICQuRU06XG4gICAgICAgIGNhc2UgJC5UVDpcbiAgICAgICAgY2FzZSAkLkJJRzpcbiAgICAgICAgY2FzZSAkLkNPREU6XG4gICAgICAgIGNhc2UgJC5GT05UOlxuICAgICAgICBjYXNlICQuTk9CUjpcbiAgICAgICAgY2FzZSAkLlNNQUxMOlxuICAgICAgICBjYXNlICQuU1RSSUtFOlxuICAgICAgICBjYXNlICQuU1RST05HOiB7XG4gICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlA6IHtcbiAgICAgICAgICAgIHBFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuREw6XG4gICAgICAgIGNhc2UgJC5VTDpcbiAgICAgICAgY2FzZSAkLk9MOlxuICAgICAgICBjYXNlICQuRElSOlxuICAgICAgICBjYXNlICQuRElWOlxuICAgICAgICBjYXNlICQuTkFWOlxuICAgICAgICBjYXNlICQuUFJFOlxuICAgICAgICBjYXNlICQuTUFJTjpcbiAgICAgICAgY2FzZSAkLk1FTlU6XG4gICAgICAgIGNhc2UgJC5BU0lERTpcbiAgICAgICAgY2FzZSAkLkJVVFRPTjpcbiAgICAgICAgY2FzZSAkLkNFTlRFUjpcbiAgICAgICAgY2FzZSAkLkZJR1VSRTpcbiAgICAgICAgY2FzZSAkLkZPT1RFUjpcbiAgICAgICAgY2FzZSAkLkhFQURFUjpcbiAgICAgICAgY2FzZSAkLkhHUk9VUDpcbiAgICAgICAgY2FzZSAkLkRJQUxPRzpcbiAgICAgICAgY2FzZSAkLkFERFJFU1M6XG4gICAgICAgIGNhc2UgJC5BUlRJQ0xFOlxuICAgICAgICBjYXNlICQuREVUQUlMUzpcbiAgICAgICAgY2FzZSAkLlNFQ1RJT046XG4gICAgICAgIGNhc2UgJC5TVU1NQVJZOlxuICAgICAgICBjYXNlICQuTElTVElORzpcbiAgICAgICAgY2FzZSAkLkZJRUxEU0VUOlxuICAgICAgICBjYXNlICQuQkxPQ0tRVU9URTpcbiAgICAgICAgY2FzZSAkLkZJR0NBUFRJT046IHtcbiAgICAgICAgICAgIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkxJOiB7XG4gICAgICAgICAgICBsaUVuZFRhZ0luQm9keShwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5ERDpcbiAgICAgICAgY2FzZSAkLkRUOiB7XG4gICAgICAgICAgICBkZEVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSDE6XG4gICAgICAgIGNhc2UgJC5IMjpcbiAgICAgICAgY2FzZSAkLkgzOlxuICAgICAgICBjYXNlICQuSDQ6XG4gICAgICAgIGNhc2UgJC5INTpcbiAgICAgICAgY2FzZSAkLkg2OiB7XG4gICAgICAgICAgICBudW1iZXJlZEhlYWRlckVuZFRhZ0luQm9keShwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CUjoge1xuICAgICAgICAgICAgYnJFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgYm9keUVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgaHRtbEVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRk9STToge1xuICAgICAgICAgICAgZm9ybUVuZFRhZ0luQm9keShwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5BUFBMRVQ6XG4gICAgICAgIGNhc2UgJC5PQkpFQ1Q6XG4gICAgICAgIGNhc2UgJC5NQVJRVUVFOiB7XG4gICAgICAgICAgICBhcHBsZXRFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVvZkluQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2subGVuZ3RoID4gMCkge1xuICAgICAgICBlb2ZJblRlbXBsYXRlKHAsIHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0b3BQYXJzaW5nKHAsIHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJ0ZXh0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBlbmRUYWdJblRleHQocCwgdG9rZW4pIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLlNDUklQVCkge1xuICAgICAgICAoX2EgPSBwLnNjcmlwdEhhbmRsZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHAsIHAub3BlbkVsZW1lbnRzLmN1cnJlbnQpO1xuICAgIH1cbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZTtcbn1cbmZ1bmN0aW9uIGVvZkluVGV4dChwLCB0b2tlbikge1xuICAgIHAuX2Vycih0b2tlbiwgRVJSLmVvZkluRWxlbWVudFRoYXRDYW5Db250YWluT25seVRleHQpO1xuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlO1xuICAgIHAub25Fb2YodG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gdGFibGVcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGNoYXJhY3RlckluVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAoVEFCTEVfU1RSVUNUVVJFX1RBR1MuaGFzKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aCA9IDA7XG4gICAgICAgIHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IGZhbHNlO1xuICAgICAgICBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHAuaW5zZXJ0aW9uTW9kZTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUO1xuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElnbm9yZSBudWxsXG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OO1xufVxuZnVuY3Rpb24gY29sZ3JvdXBTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xufVxuZnVuY3Rpb24gY29sU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5DT0xHUk9VUCwgJC5DT0xHUk9VUCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG4gICAgc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIHRib2R5U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG59XG5mdW5jdGlvbiB0ZFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uVEJPRFksICQuVEJPRFkpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIHRhYmxlU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRBQkxFKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5UQUJMRSk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlucHV0U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKGlzSGlkZGVuSW5wdXQodG9rZW4pKSB7XG4gICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gZm9ybVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmICghcC5mb3JtRWxlbWVudCAmJiBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApIHtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIHAuZm9ybUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG59XG5mdW5jdGlvbiBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHRkU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOiB7XG4gICAgICAgICAgICBjb2xTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZPUk06IHtcbiAgICAgICAgICAgIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICB0Ym9keVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSU5QVVQ6IHtcbiAgICAgICAgICAgIGlucHV0U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOiB7XG4gICAgICAgICAgICBjYXB0aW9uU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgY29sZ3JvdXBTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRBQkxFKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRBQkxFKTtcbiAgICAgICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkluVGFibGUocCwgdG9rZW4pIHtcbiAgICBjb25zdCBzYXZlZEZvc3RlclBhcmVudGluZ1N0YXRlID0gcC5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkO1xuICAgIHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCA9IHRydWU7XG4gICAgLy8gUHJvY2VzcyB0b2tlbiBpbiBgSW4gQm9keWAgbW9kZVxuICAgIG1vZGVJbkJvZHkocCwgdG9rZW4pO1xuICAgIHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCA9IHNhdmVkRm9zdGVyUGFyZW50aW5nU3RhdGU7XG59XG4vLyBUaGUgXCJpbiB0YWJsZSB0ZXh0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbikge1xuICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5wdXNoKHRva2VuKTtcbiAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSB0cnVlO1xufVxuZnVuY3Rpb24gdG9rZW5JblRhYmxlVGV4dChwLCB0b2tlbikge1xuICAgIGxldCBpID0gMDtcbiAgICBpZiAocC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuKSB7XG4gICAgICAgIGZvciAoOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0b2tlbkluVGFibGUocCwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZm9yICg7IGkgPCBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHAuX2luc2VydENoYXJhY3RlcnMocC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwLmluc2VydGlvbk1vZGUgPSBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZTtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gY2FwdGlvblwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3QgVEFCTEVfVk9JRF9FTEVNRU5UUyA9IG5ldyBTZXQoWyQuQ0FQVElPTiwgJC5DT0wsICQuQ09MR1JPVVAsICQuVEJPRFksICQuVEQsICQuVEZPT1QsICQuVEgsICQuVEhFQUQsICQuVFJdKTtcbmZ1bmN0aW9uIHN0YXJ0VGFnSW5DYXB0aW9uKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAoVEFCTEVfVk9JRF9FTEVNRU5UUy5oYXModG4pKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5DQVBUSU9OKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuQ0FQVElPTik7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkNhcHRpb24ocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIHN3aXRjaCAodG4pIHtcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLkNBUFRJT04pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkNBUFRJT04pO1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICBpZiAodG4gPT09ICQuVEFCTEUpIHtcbiAgICAgICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluIGNvbHVtbiBncm91cFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuQ09MR1JPVVA6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuQ09MR1JPVVApIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLkNPTEdST1VQKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xuICAgIH1cbn1cbi8vIFRoZSBcImluIHRhYmxlIGJvZHlcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEQ6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uVFIsICQuVFIpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICBzdGFydFRhZ0luUm93KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluIHJvd1wiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblJvdyhwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEQ6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0VMTDtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVFIpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Sb3cocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVFIpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0b2tlbi50YWdJRCkgfHwgcC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVFIpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIGVuZCB0YWdcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gY2VsbFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkNlbGwocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmIChUQUJMRV9WT0lEX0VMRU1FTlRTLmhhcyh0bikpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlREKSB8fCBwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5USCkpIHtcbiAgICAgICAgICAgIHAuX2Nsb3NlVGFibGVDZWxsKCk7XG4gICAgICAgICAgICBzdGFydFRhZ0luUm93KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luQ2VsbChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgc3dpdGNoICh0bikge1xuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICAgICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRBQkxFOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5fY2xvc2VUYWJsZUNlbGwoKTtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluIHNlbGVjdFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblNlbGVjdChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5PUFRJT046IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5PUFRHUk9VUDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRJT04pIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOlxuICAgICAgICBjYXNlICQuS0VZR0VOOlxuICAgICAgICBjYXNlICQuVEVYVEFSRUE6XG4gICAgICAgIGNhc2UgJC5TRUxFQ1Q6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNlbGVjdFNjb3BlKCQuU0VMRUNUKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLnRhZ0lEICE9PSAkLlNFTEVDVCkge1xuICAgICAgICAgICAgICAgICAgICBwLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+IDAgJiZcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OICYmXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMudGFnSURzW3Aub3BlbkVsZW1lbnRzLnN0YWNrVG9wIC0gMV0gPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5PUFRJT046IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TZWxlY3RTY29wZSgkLlNFTEVDVCkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuLy8gVGhlIFwiaW4gc2VsZWN0IGluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luU2VsZWN0SW5UYWJsZShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHxcbiAgICAgICAgdG4gPT09ICQuVEFCTEUgfHxcbiAgICAgICAgdG4gPT09ICQuVEJPRFkgfHxcbiAgICAgICAgdG4gPT09ICQuVEZPT1QgfHxcbiAgICAgICAgdG4gPT09ICQuVEhFQUQgfHxcbiAgICAgICAgdG4gPT09ICQuVFIgfHxcbiAgICAgICAgdG4gPT09ICQuVEQgfHxcbiAgICAgICAgdG4gPT09ICQuVEgpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgIHAuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luU2VsZWN0KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblNlbGVjdEluVGFibGUocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8XG4gICAgICAgIHRuID09PSAkLlRBQkxFIHx8XG4gICAgICAgIHRuID09PSAkLlRCT0RZIHx8XG4gICAgICAgIHRuID09PSAkLlRGT09UIHx8XG4gICAgICAgIHRuID09PSAkLlRIRUFEIHx8XG4gICAgICAgIHRuID09PSAkLlRSIHx8XG4gICAgICAgIHRuID09PSAkLlREIHx8XG4gICAgICAgIHRuID09PSAkLlRIKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICBwLm9uRW5kVGFnKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZW5kVGFnSW5TZWxlY3QocCwgdG9rZW4pO1xuICAgIH1cbn1cbi8vIFRoZSBcImluIHRlbXBsYXRlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIC8vIEZpcnN0LCBoYW5kbGUgdGFncyB0aGF0IGNhbiBzdGFydCB3aXRob3V0IGEgbW9kZSBjaGFuZ2VcbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQTpcbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOlxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURTpcbiAgICAgICAgY2FzZSAkLlRJVExFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICAvLyBSZS1wcm9jZXNzIHRoZSB0b2tlbiBpbiB0aGUgYXBwcm9wcmlhdGUgbW9kZVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgICAgICAgICAgc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5UZW1wbGF0ZShwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5URU1QTEFURSkge1xuICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW9mSW5UZW1wbGF0ZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRFTVBMQVRFKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnNoaWZ0KCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwLm9uRW9mKHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0b3BQYXJzaW5nKHAsIHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJhZnRlciBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyQm9keShwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCkge1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogPGh0bWw+IGlzIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgIC8vdGhlIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LlxuICAgICAgICBpZiAocC5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8gJiYgcC5vcGVuRWxlbWVudHMudGFnSURzWzBdID09PSAkLkhUTUwpIHtcbiAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCB0b2tlbik7XG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGJvZHkgZWxlbWVudCwgaWYgaXQgZG9lc24ndCBoYXZlIGFuIGVuZCB0YWdcbiAgICAgICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbMV07XG4gICAgICAgICAgICBpZiAoYm9keUVsZW1lbnQgJiYgISgoX2EgPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oYm9keUVsZW1lbnQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZW5kVGFnKSkge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGJvZHlFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FOiB7XG4gICAgICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuRlJBTUVTRVQgJiYgIXAub3BlbkVsZW1lbnRzLmlzUm9vdEh0bWxFbGVtZW50Q3VycmVudCgpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0ICYmIHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCAhPT0gJC5GUkFNRVNFVCkge1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImFmdGVyIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDtcbiAgICB9XG59XG4vLyBUaGUgXCJhZnRlciBhZnRlciBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5BZnRlckFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbn1cbi8vIFRoZSBcImFmdGVyIGFmdGVyIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyQWZ0ZXJGcmFtZXNldChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbi8vIFRoZSBydWxlcyBmb3IgcGFyc2luZyB0b2tlbnMgaW4gZm9yZWlnbiBjb250ZW50XG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gbnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICB0b2tlbi5jaGFycyA9IHVuaWNvZGUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApIHtcbiAgICB3aGlsZSAocC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocC5vcGVuRWxlbWVudHMuY3VycmVudCkgIT09IE5TLkhUTUwgJiZcbiAgICAgICAgIXAuX2lzSW50ZWdyYXRpb25Qb2ludChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQsIHAub3BlbkVsZW1lbnRzLmN1cnJlbnQpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIGlmIChmb3JlaWduQ29udGVudC5jYXVzZXNFeGl0KHRva2VuKSkge1xuICAgICAgICBwb3BVbnRpbEh0bWxPckludGVncmF0aW9uUG9pbnQocCk7XG4gICAgICAgIHAuX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBwLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnROcyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpO1xuICAgICAgICBpZiAoY3VycmVudE5zID09PSBOUy5NQVRITUwpIHtcbiAgICAgICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGN1cnJlbnROcyA9PT0gTlMuU1ZHKSB7XG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR1RhZ05hbWUodG9rZW4pO1xuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdBdHRycyh0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbik7XG4gICAgICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgY3VycmVudE5zKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIGN1cnJlbnROcyk7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuUCB8fCB0b2tlbi50YWdJRCA9PT0gJC5CUikge1xuICAgICAgICBwb3BVbnRpbEh0bWxPckludGVncmF0aW9uUG9pbnQocCk7XG4gICAgICAgIHAuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICBwLl9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFnTmFtZSA9IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KTtcbiAgICAgICAgaWYgKHRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gdG9rZW4udGFnTmFtZSkge1xuICAgICAgICAgICAgLy9OT1RFOiB1cGRhdGUgdGhlIHRva2VuIHRhZyBuYW1lIGZvciBgX3NldEVuZExvY2F0aW9uYC5cbiAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgPSB0YWdOYW1lO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCBudWxsLCAiaW1wb3J0IHsgVEFHX05BTUVTIGFzICQsIE5TLCBoYXNVbmVzY2FwZWRUZXh0IH0gZnJvbSAnLi4vY29tbW9uL2h0bWwuanMnO1xuaW1wb3J0IHsgZXNjYXBlVGV4dCwgZXNjYXBlQXR0cmlidXRlIH0gZnJvbSAnZW50aXRpZXMvbGliL2VzY2FwZS5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0VHJlZUFkYXB0ZXIgfSBmcm9tICcuLi90cmVlLWFkYXB0ZXJzL2RlZmF1bHQuanMnO1xuLy8gU2V0c1xuY29uc3QgVk9JRF9FTEVNRU5UUyA9IG5ldyBTZXQoW1xuICAgICQuQVJFQSxcbiAgICAkLkJBU0UsXG4gICAgJC5CQVNFRk9OVCxcbiAgICAkLkJHU09VTkQsXG4gICAgJC5CUixcbiAgICAkLkNPTCxcbiAgICAkLkVNQkVELFxuICAgICQuRlJBTUUsXG4gICAgJC5IUixcbiAgICAkLklNRyxcbiAgICAkLklOUFVULFxuICAgICQuS0VZR0VOLFxuICAgICQuTElOSyxcbiAgICAkLk1FVEEsXG4gICAgJC5QQVJBTSxcbiAgICAkLlNPVVJDRSxcbiAgICAkLlRSQUNLLFxuICAgICQuV0JSLFxuXSk7XG5mdW5jdGlvbiBpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShub2RlKSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShub2RlKSA9PT0gTlMuSFRNTCAmJlxuICAgICAgICBWT0lEX0VMRU1FTlRTLmhhcyhvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSkpKTtcbn1cbmNvbnN0IGRlZmF1bHRPcHRzID0geyB0cmVlQWRhcHRlcjogZGVmYXVsdFRyZWVBZGFwdGVyLCBzY3JpcHRpbmdFbmFibGVkOiB0cnVlIH07XG4vKipcbiAqIFNlcmlhbGl6ZXMgYW4gQVNUIG5vZGUgdG8gYW4gSFRNTCBzdHJpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcGFyc2U1ID0gcmVxdWlyZSgncGFyc2U1Jyk7XG4gKlxuICogY29uc3QgZG9jdW1lbnQgPSBwYXJzZTUucGFyc2UoJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5IaSB0aGVyZSE8L2JvZHk+PC9odG1sPicpO1xuICpcbiAqIC8vIFNlcmlhbGl6ZXMgYSBkb2N1bWVudC5cbiAqIGNvbnN0IGh0bWwgPSBwYXJzZTUuc2VyaWFsaXplKGRvY3VtZW50KTtcbiAqXG4gKiAvLyBTZXJpYWxpemVzIHRoZSA8aHRtbD4gZWxlbWVudCBjb250ZW50LlxuICogY29uc3Qgc3RyID0gcGFyc2U1LnNlcmlhbGl6ZShkb2N1bWVudC5jaGlsZE5vZGVzWzFdKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhzdHIpOyAvLz4gJzxoZWFkPjwvaGVhZD48Ym9keT5IaSB0aGVyZSE8L2JvZHk+J1xuICogYGBgXG4gKlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBzZXJpYWxpemUuXG4gKiBAcGFyYW0gb3B0aW9ucyBTZXJpYWxpemF0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUobm9kZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB7IC4uLmRlZmF1bHRPcHRzLCAuLi5vcHRpb25zIH07XG4gICAgaWYgKGlzVm9pZEVsZW1lbnQobm9kZSwgb3B0cykpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gc2VyaWFsaXplQ2hpbGROb2Rlcyhub2RlLCBvcHRzKTtcbn1cbi8qKlxuICogU2VyaWFsaXplcyBhbiBBU1QgZWxlbWVudCBub2RlIHRvIGFuIEhUTUwgc3RyaW5nLCBpbmNsdWRpbmcgdGhlIGVsZW1lbnQgbm9kZS5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwYXJzZTUgPSByZXF1aXJlKCdwYXJzZTUnKTtcbiAqXG4gKiBjb25zdCBkb2N1bWVudCA9IHBhcnNlNS5wYXJzZUZyYWdtZW50KCc8ZGl2PkhlbGxvLCA8Yj53b3JsZDwvYj4hPC9kaXY+Jyk7XG4gKlxuICogLy8gU2VyaWFsaXplcyB0aGUgPGRpdj4gZWxlbWVudC5cbiAqIGNvbnN0IGh0bWwgPSBwYXJzZTUuc2VyaWFsaXplT3V0ZXIoZG9jdW1lbnQuY2hpbGROb2Rlc1swXSk7XG4gKlxuICogY29uc29sZS5sb2coc3RyKTsgLy8+ICc8ZGl2PkhlbGxvLCA8Yj53b3JsZDwvYj4hPC9kaXY+J1xuICogYGBgXG4gKlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBzZXJpYWxpemUuXG4gKiBAcGFyYW0gb3B0aW9ucyBTZXJpYWxpemF0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVPdXRlcihub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0cyA9IHsgLi4uZGVmYXVsdE9wdHMsIC4uLm9wdGlvbnMgfTtcbiAgICByZXR1cm4gc2VyaWFsaXplTm9kZShub2RlLCBvcHRzKTtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZUNoaWxkTm9kZXMocGFyZW50Tm9kZSwgb3B0aW9ucykge1xuICAgIGxldCBodG1sID0gJyc7XG4gICAgLy8gR2V0IGNvbnRhaW5lciBvZiB0aGUgY2hpbGQgbm9kZXNcbiAgICBjb25zdCBjb250YWluZXIgPSBvcHRpb25zLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUocGFyZW50Tm9kZSkgJiZcbiAgICAgICAgb3B0aW9ucy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHBhcmVudE5vZGUpID09PSAkLlRFTVBMQVRFICYmXG4gICAgICAgIG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHBhcmVudE5vZGUpID09PSBOUy5IVE1MXG4gICAgICAgID8gb3B0aW9ucy50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQocGFyZW50Tm9kZSlcbiAgICAgICAgOiBwYXJlbnROb2RlO1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBvcHRpb25zLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXMoY29udGFpbmVyKTtcbiAgICBpZiAoY2hpbGROb2Rlcykge1xuICAgICAgICBmb3IgKGNvbnN0IGN1cnJlbnROb2RlIG9mIGNoaWxkTm9kZXMpIHtcbiAgICAgICAgICAgIGh0bWwgKz0gc2VyaWFsaXplTm9kZShjdXJyZW50Tm9kZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGh0bWw7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVOb2RlKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVFbGVtZW50KG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50cmVlQWRhcHRlci5pc1RleHROb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVUZXh0Tm9kZShub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNDb21tZW50Tm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplQ29tbWVudE5vZGUobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzRG9jdW1lbnRUeXBlTm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplRG9jdW1lbnRUeXBlTm9kZShub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgLy8gUmV0dXJuIGFuIGVtcHR5IHN0cmluZyBmb3IgdW5rbm93biBub2Rlc1xuICAgIHJldHVybiAnJztcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZUVsZW1lbnQobm9kZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IHRuID0gb3B0aW9ucy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpO1xuICAgIHJldHVybiBgPCR7dG59JHtzZXJpYWxpemVBdHRyaWJ1dGVzKG5vZGUsIG9wdGlvbnMpfT4ke2lzVm9pZEVsZW1lbnQobm9kZSwgb3B0aW9ucykgPyAnJyA6IGAke3NlcmlhbGl6ZUNoaWxkTm9kZXMobm9kZSwgb3B0aW9ucyl9PC8ke3RufT5gfWA7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVBdHRyaWJ1dGVzKG5vZGUsIHsgdHJlZUFkYXB0ZXIgfSkge1xuICAgIGxldCBodG1sID0gJyc7XG4gICAgZm9yIChjb25zdCBhdHRyIG9mIHRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KG5vZGUpKSB7XG4gICAgICAgIGh0bWwgKz0gJyAnO1xuICAgICAgICBpZiAoIWF0dHIubmFtZXNwYWNlKSB7XG4gICAgICAgICAgICBodG1sICs9IGF0dHIubmFtZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGF0dHIubmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTUw6IHtcbiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBgeG1sOiR7YXR0ci5uYW1lfWA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIE5TLlhNTE5TOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdHRyLm5hbWUgIT09ICd4bWxucycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJ3htbG5zOic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBhdHRyLm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIE5TLlhMSU5LOiB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYHhsaW5rOiR7YXR0ci5uYW1lfWA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYCR7YXR0ci5wcmVmaXh9OiR7YXR0ci5uYW1lfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICBodG1sICs9IGA9XCIke2VzY2FwZUF0dHJpYnV0ZShhdHRyLnZhbHVlKX1cImA7XG4gICAgfVxuICAgIHJldHVybiBodG1sO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplVGV4dE5vZGUobm9kZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IHsgdHJlZUFkYXB0ZXIgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgY29udGVudCA9IHRyZWVBZGFwdGVyLmdldFRleHROb2RlQ29udGVudChub2RlKTtcbiAgICBjb25zdCBwYXJlbnQgPSB0cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG5vZGUpO1xuICAgIGNvbnN0IHBhcmVudFRuID0gcGFyZW50ICYmIHRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUocGFyZW50KSAmJiB0cmVlQWRhcHRlci5nZXRUYWdOYW1lKHBhcmVudCk7XG4gICAgcmV0dXJuIHBhcmVudFRuICYmXG4gICAgICAgIHRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShwYXJlbnQpID09PSBOUy5IVE1MICYmXG4gICAgICAgIGhhc1VuZXNjYXBlZFRleHQocGFyZW50VG4sIG9wdGlvbnMuc2NyaXB0aW5nRW5hYmxlZClcbiAgICAgICAgPyBjb250ZW50XG4gICAgICAgIDogZXNjYXBlVGV4dChjb250ZW50KTtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZUNvbW1lbnROb2RlKG5vZGUsIHsgdHJlZUFkYXB0ZXIgfSkge1xuICAgIHJldHVybiBgPCEtLSR7dHJlZUFkYXB0ZXIuZ2V0Q29tbWVudE5vZGVDb250ZW50KG5vZGUpfS0tPmA7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVEb2N1bWVudFR5cGVOb2RlKG5vZGUsIHsgdHJlZUFkYXB0ZXIgfSkge1xuICAgIHJldHVybiBgPCFET0NUWVBFICR7dHJlZUFkYXB0ZXIuZ2V0RG9jdW1lbnRUeXBlTm9kZU5hbWUobm9kZSl9PmA7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCAiaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi9wYXJzZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdFRyZWVBZGFwdGVyIH0gZnJvbSAnLi90cmVlLWFkYXB0ZXJzL2RlZmF1bHQuanMnO1xuZXhwb3J0IHsgLyoqIEBpbnRlcm5hbCAqLyBQYXJzZXIgfSBmcm9tICcuL3BhcnNlci9pbmRleC5qcyc7XG5leHBvcnQgeyBzZXJpYWxpemUsIHNlcmlhbGl6ZU91dGVyIH0gZnJvbSAnLi9zZXJpYWxpemVyL2luZGV4LmpzJztcbmV4cG9ydCB7IEVSUiBhcyBFcnJvckNvZGVzIH0gZnJvbSAnLi9jb21tb24vZXJyb3ItY29kZXMuanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0ICogYXMgZm9yZWlnbkNvbnRlbnQgZnJvbSAnLi9jb21tb24vZm9yZWlnbi1jb250ZW50LmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCAqIGFzIGh0bWwgZnJvbSAnLi9jb21tb24vaHRtbC5qcyc7XG4vKiogQGludGVybmFsICovXG5leHBvcnQgKiBhcyBUb2tlbiBmcm9tICcuL2NvbW1vbi90b2tlbi5qcyc7XG4vKiogQGludGVybmFsICovXG5leHBvcnQgeyBUb2tlbml6ZXIsIFRva2VuaXplck1vZGUgfSBmcm9tICcuL3Rva2VuaXplci9pbmRleC5qcyc7XG4vLyBTaG9ydGhhbmRzXG4vKipcbiAqIFBhcnNlcyBhbiBIVE1MIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaHRtbCBJbnB1dCBIVE1MIHN0cmluZy5cbiAqIEBwYXJhbSBvcHRpb25zIFBhcnNpbmcgb3B0aW9ucy5cbiAqIEByZXR1cm5zIERvY3VtZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcGFyc2U1ID0gcmVxdWlyZSgncGFyc2U1Jyk7XG4gKlxuICogY29uc3QgZG9jdW1lbnQgPSBwYXJzZTUucGFyc2UoJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5IaSB0aGVyZSE8L2JvZHk+PC9odG1sPicpO1xuICpcbiAqIGNvbnNvbGUubG9nKGRvY3VtZW50LmNoaWxkTm9kZXNbMV0udGFnTmFtZSk7IC8vPiAnaHRtbCdcbiAqYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShodG1sLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIFBhcnNlci5wYXJzZShodG1sLCBvcHRpb25zKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUZyYWdtZW50KGZyYWdtZW50Q29udGV4dCwgaHRtbCwgb3B0aW9ucykge1xuICAgIGlmICh0eXBlb2YgZnJhZ21lbnRDb250ZXh0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBvcHRpb25zID0gaHRtbDtcbiAgICAgICAgaHRtbCA9IGZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgZnJhZ21lbnRDb250ZXh0ID0gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VyID0gUGFyc2VyLmdldEZyYWdtZW50UGFyc2VyKGZyYWdtZW50Q29udGV4dCwgb3B0aW9ucyk7XG4gICAgcGFyc2VyLnRva2VuaXplci53cml0ZShodG1sLCB0cnVlKTtcbiAgICByZXR1cm4gcGFyc2VyLmdldEZyYWdtZW50KCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgTm9kZUxpa2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0eXBlXG4gKiBAcHJvcGVydHkge1Bvc2l0aW9uTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtwb3NpdGlvbl1cbiAqXG4gKiBAdHlwZWRlZiBQb2ludExpa2VcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2xpbmVdXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtjb2x1bW5dXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtvZmZzZXRdXG4gKlxuICogQHR5cGVkZWYgUG9zaXRpb25MaWtlXG4gKiBAcHJvcGVydHkge1BvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtzdGFydF1cbiAqIEBwcm9wZXJ0eSB7UG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuZF1cbiAqL1xuXG4vKipcbiAqIFNlcmlhbGl6ZSB0aGUgcG9zaXRpb25hbCBpbmZvIG9mIGEgcG9pbnQsIHBvc2l0aW9uIChzdGFydCBhbmQgZW5kIHBvaW50cyksXG4gKiBvciBub2RlLlxuICpcbiAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgUG9pbnQgfCBQb2ludExpa2UgfCBQb3NpdGlvbiB8IFBvc2l0aW9uTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAqICAgTm9kZSwgcG9zaXRpb24sIG9yIHBvaW50LlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgUHJldHR5IHByaW50ZWQgcG9zaXRpb25hbCBpbmZvIG9mIGEgbm9kZSAoYHN0cmluZ2ApLlxuICpcbiAqICAgSW4gdGhlIGZvcm1hdCBvZiBhIHJhbmdlIGBsczpjcy1sZTpjZWAgKHdoZW4gZ2l2ZW4gYG5vZGVgIG9yIGBwb3NpdGlvbmApXG4gKiAgIG9yIGEgcG9pbnQgYGw6Y2AgKHdoZW4gZ2l2ZW4gYHBvaW50YCksIHdoZXJlIGBsYCBzdGFuZHMgZm9yIGxpbmUsIGBjYCBmb3JcbiAqICAgY29sdW1uLCBgc2AgZm9yIGBzdGFydGAsIGFuZCBgZWAgZm9yIGVuZC5cbiAqICAgQW4gZW1wdHkgc3RyaW5nIChgJydgKSBpcyByZXR1cm5lZCBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgbmVpdGhlciBgbm9kZWAsXG4gKiAgIGBwb3NpdGlvbmAsIG5vciBgcG9pbnRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5UG9zaXRpb24odmFsdWUpIHtcbiAgLy8gTm90aGluZy5cbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICAvLyBOb2RlLlxuICBpZiAoJ3Bvc2l0aW9uJyBpbiB2YWx1ZSB8fCAndHlwZScgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gcG9zaXRpb24odmFsdWUucG9zaXRpb24pXG4gIH1cblxuICAvLyBQb3NpdGlvbi5cbiAgaWYgKCdzdGFydCcgaW4gdmFsdWUgfHwgJ2VuZCcgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gcG9zaXRpb24odmFsdWUpXG4gIH1cblxuICAvLyBQb2ludC5cbiAgaWYgKCdsaW5lJyBpbiB2YWx1ZSB8fCAnY29sdW1uJyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBwb2ludCh2YWx1ZSlcbiAgfVxuXG4gIC8vID9cbiAgcmV0dXJuICcnXG59XG5cbi8qKlxuICogQHBhcmFtIHtQb2ludCB8IFBvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBvaW50XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBwb2ludChwb2ludCkge1xuICByZXR1cm4gaW5kZXgocG9pbnQgJiYgcG9pbnQubGluZSkgKyAnOicgKyBpbmRleChwb2ludCAmJiBwb2ludC5jb2x1bW4pXG59XG5cbi8qKlxuICogQHBhcmFtIHtQb3NpdGlvbiB8IFBvc2l0aW9uTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBvc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcG9zaXRpb24ocG9zKSB7XG4gIHJldHVybiBwb2ludChwb3MgJiYgcG9zLnN0YXJ0KSArICctJyArIHBvaW50KHBvcyAmJiBwb3MuZW5kKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gdmFsdWVcbiAqIEByZXR1cm5zIHtudW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIGluZGV4KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8gdmFsdWUgOiAxXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdCAmIHt0eXBlOiBzdHJpbmcsIHBvc2l0aW9uPzogUG9zaXRpb24gfCB1bmRlZmluZWR9fSBOb2RlTGlrZVxuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8Tm9kZT4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYW5jZXN0b3JzXVxuICogICBTdGFjayBvZiAoaW5jbHVzaXZlKSBhbmNlc3RvciBub2RlcyBzdXJyb3VuZGluZyB0aGUgbWVzc2FnZSAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtFcnJvciB8IG51bGwgfCB1bmRlZmluZWR9IFtjYXVzZV1cbiAqICAgT3JpZ2luYWwgZXJyb3IgY2F1c2Ugb2YgdGhlIG1lc3NhZ2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IFtwbGFjZV1cbiAqICAgUGxhY2Ugb2YgbWVzc2FnZSAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbcnVsZUlkXVxuICogICBDYXRlZ29yeSBvZiBtZXNzYWdlIChvcHRpb25hbCwgZXhhbXBsZTogYCdteS1ydWxlJ2ApLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbc291cmNlXVxuICogICBOYW1lc3BhY2Ugb2Ygd2hvIHNlbnQgdGhlIG1lc3NhZ2UgKG9wdGlvbmFsLCBleGFtcGxlOiBgJ215LXBhY2thZ2UnYCkuXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlQb3NpdGlvbn0gZnJvbSAndW5pc3QtdXRpbC1zdHJpbmdpZnktcG9zaXRpb24nXG5cbi8qKlxuICogTWVzc2FnZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZGaWxlTWVzc2FnZSBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG1lc3NhZ2UgZm9yIGByZWFzb25gLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2UgfCBzdHJpbmd9IGNhdXNlT3JSZWFzb25cbiAgICogICBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgT3B0aW9ucyB8IFBvaW50IHwgUG9zaXRpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV1cbiAgICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogICBQbGFjZSBpbiBjb2RlIHdoZXJlIHRoZSBtZXNzYWdlIG9yaWdpbmF0ZXMgKGV4YW1wbGU6XG4gICAqICAgYCdteS1wYWNrYWdlOm15LXJ1bGUnYCBvciBgJ215LXJ1bGUnYCkuXG4gICAqIEByZXR1cm5zXG4gICAqICAgSW5zdGFuY2Ugb2YgYFZGaWxlTWVzc2FnZWAuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuICBjb25zdHJ1Y3RvcihjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvcmlnaW4gPSBvcHRpb25zT3JQYXJlbnRPclBsYWNlXG4gICAgICBvcHRpb25zT3JQYXJlbnRPclBsYWNlID0gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IHJlYXNvbiA9ICcnXG4gICAgLyoqIEB0eXBlIHtPcHRpb25zfSAqL1xuICAgIGxldCBvcHRpb25zID0ge31cbiAgICBsZXQgbGVnYWN5Q2F1c2UgPSBmYWxzZVxuXG4gICAgaWYgKG9wdGlvbnNPclBhcmVudE9yUGxhY2UpIHtcbiAgICAgIC8vIFBvaW50LlxuICAgICAgaWYgKFxuICAgICAgICAnbGluZScgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZSAmJlxuICAgICAgICAnY29sdW1uJyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlXG4gICAgICApIHtcbiAgICAgICAgb3B0aW9ucyA9IHtwbGFjZTogb3B0aW9uc09yUGFyZW50T3JQbGFjZX1cbiAgICAgIH1cbiAgICAgIC8vIFBvc2l0aW9uLlxuICAgICAgZWxzZSBpZiAoXG4gICAgICAgICdzdGFydCcgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZSAmJlxuICAgICAgICAnZW5kJyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlXG4gICAgICApIHtcbiAgICAgICAgb3B0aW9ucyA9IHtwbGFjZTogb3B0aW9uc09yUGFyZW50T3JQbGFjZX1cbiAgICAgIH1cbiAgICAgIC8vIE5vZGUuXG4gICAgICBlbHNlIGlmICgndHlwZScgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZSkge1xuICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgIGFuY2VzdG9yczogW29wdGlvbnNPclBhcmVudE9yUGxhY2VdLFxuICAgICAgICAgIHBsYWNlOiBvcHRpb25zT3JQYXJlbnRPclBsYWNlLnBvc2l0aW9uXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIE9wdGlvbnMuXG4gICAgICBlbHNlIHtcbiAgICAgICAgb3B0aW9ucyA9IHsuLi5vcHRpb25zT3JQYXJlbnRPclBsYWNlfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY2F1c2VPclJlYXNvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJlYXNvbiA9IGNhdXNlT3JSZWFzb25cbiAgICB9XG4gICAgLy8gRXJyb3IuXG4gICAgZWxzZSBpZiAoIW9wdGlvbnMuY2F1c2UgJiYgY2F1c2VPclJlYXNvbikge1xuICAgICAgbGVnYWN5Q2F1c2UgPSB0cnVlXG4gICAgICByZWFzb24gPSBjYXVzZU9yUmVhc29uLm1lc3NhZ2VcbiAgICAgIG9wdGlvbnMuY2F1c2UgPSBjYXVzZU9yUmVhc29uXG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zLnJ1bGVJZCAmJiAhb3B0aW9ucy5zb3VyY2UgJiYgdHlwZW9mIG9yaWdpbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gb3JpZ2luLmluZGV4T2YoJzonKVxuXG4gICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgIG9wdGlvbnMucnVsZUlkID0gb3JpZ2luXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcHRpb25zLnNvdXJjZSA9IG9yaWdpbi5zbGljZSgwLCBpbmRleClcbiAgICAgICAgb3B0aW9ucy5ydWxlSWQgPSBvcmlnaW4uc2xpY2UoaW5kZXggKyAxKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5wbGFjZSAmJiBvcHRpb25zLmFuY2VzdG9ycyAmJiBvcHRpb25zLmFuY2VzdG9ycykge1xuICAgICAgY29uc3QgcGFyZW50ID0gb3B0aW9ucy5hbmNlc3RvcnNbb3B0aW9ucy5hbmNlc3RvcnMubGVuZ3RoIC0gMV1cblxuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICBvcHRpb25zLnBsYWNlID0gcGFyZW50LnBvc2l0aW9uXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnQgPVxuICAgICAgb3B0aW9ucy5wbGFjZSAmJiAnc3RhcnQnIGluIG9wdGlvbnMucGxhY2VcbiAgICAgICAgPyBvcHRpb25zLnBsYWNlLnN0YXJ0XG4gICAgICAgIDogb3B0aW9ucy5wbGFjZVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG4gICAgLyoqXG4gICAgICogU3RhY2sgb2YgYW5jZXN0b3Igbm9kZXMgc3Vycm91bmRpbmcgdGhlIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8Tm9kZT4gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5hbmNlc3RvcnMgPSBvcHRpb25zLmFuY2VzdG9ycyB8fCB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIE9yaWdpbmFsIGVycm9yIGNhdXNlIG9mIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge0Vycm9yIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuY2F1c2UgPSBvcHRpb25zLmNhdXNlIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogU3RhcnRpbmcgY29sdW1uIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuY29sdW1uID0gc3RhcnQgPyBzdGFydC5jb2x1bW4gOiB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFN0YXRlIG9mIHByb2JsZW0uXG4gICAgICpcbiAgICAgKiAqIGB0cnVlYCBcdTIwMTQgZXJyb3IsIGZpbGUgbm90IHVzYWJsZVxuICAgICAqICogYGZhbHNlYCBcdTIwMTQgd2FybmluZywgY2hhbmdlIG1heSBiZSBuZWVkZWRcbiAgICAgKiAqIGB1bmRlZmluZWRgIFx1MjAxNCBjaGFuZ2UgbGlrZWx5IG5vdCBuZWVkZWRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmZhdGFsID0gdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBQYXRoIG9mIGEgZmlsZSAodXNlZCB0aHJvdWdob3V0IHRoZSBgVkZpbGVgIGVjb3N5c3RlbSkuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuZmlsZVxuXG4gICAgLy8gRmllbGQgZnJvbSBgRXJyb3JgLlxuICAgIC8qKlxuICAgICAqIFJlYXNvbiBmb3IgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy5tZXNzYWdlID0gcmVhc29uXG5cbiAgICAvKipcbiAgICAgKiBTdGFydGluZyBsaW5lIG9mIGVycm9yLlxuICAgICAqXG4gICAgICogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmxpbmUgPSBzdGFydCA/IHN0YXJ0LmxpbmUgOiB1bmRlZmluZWRcblxuICAgIC8vIEZpZWxkIGZyb20gYEVycm9yYC5cbiAgICAvKipcbiAgICAgKiBTZXJpYWxpemVkIHBvc2l0aW9uYWwgaW5mbyBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogT24gbm9ybWFsIGVycm9ycywgdGhpcyB3b3VsZCBiZSBzb21ldGhpbmcgbGlrZSBgUGFyc2VFcnJvcmAsIGJ1aXQgaW5cbiAgICAgKiBgVkZpbGVgIG1lc3NhZ2VzIHdlIHVzZSB0aGlzIHNwYWNlIHRvIHNob3cgd2hlcmUgYW4gZXJyb3IgaGFwcGVuZWQuXG4gICAgICovXG4gICAgdGhpcy5uYW1lID0gc3RyaW5naWZ5UG9zaXRpb24ob3B0aW9ucy5wbGFjZSkgfHwgJzE6MSdcblxuICAgIC8qKlxuICAgICAqIFBsYWNlIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7UG9pbnQgfCBQb3NpdGlvbiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnBsYWNlID0gb3B0aW9ucy5wbGFjZSB8fCB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy5yZWFzb24gPSB0aGlzLm1lc3NhZ2VcblxuICAgIC8qKlxuICAgICAqIENhdGVnb3J5IG9mIG1lc3NhZ2UgKGV4YW1wbGU6IGAnbXktcnVsZSdgKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5ydWxlSWQgPSBvcHRpb25zLnJ1bGVJZCB8fCB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIE5hbWVzcGFjZSBvZiBtZXNzYWdlIChleGFtcGxlOiBgJ215LXBhY2thZ2UnYCkuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuc291cmNlID0gb3B0aW9ucy5zb3VyY2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvLyBGaWVsZCBmcm9tIGBFcnJvcmAuXG4gICAgLyoqXG4gICAgICogU3RhY2sgb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgdXNlZCBieSBub3JtYWwgZXJyb3JzIHRvIHNob3cgd2hlcmUgc29tZXRoaW5nIGhhcHBlbmVkIGluXG4gICAgICogcHJvZ3JhbW1pbmcgY29kZSwgaXJyZWxldmFudCBmb3IgYFZGaWxlYCBtZXNzYWdlcyxcbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy5zdGFjayA9XG4gICAgICBsZWdhY3lDYXVzZSAmJiBvcHRpb25zLmNhdXNlICYmIHR5cGVvZiBvcHRpb25zLmNhdXNlLnN0YWNrID09PSAnc3RyaW5nJ1xuICAgICAgICA/IG9wdGlvbnMuY2F1c2Uuc3RhY2tcbiAgICAgICAgOiAnJ1xuXG4gICAgLy8gVGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlIFx1MjAxQ3dlbGwga25vd25cdTIwMUQuXG4gICAgLy8gTm90IHN0YW5kYXJkLlxuICAgIC8vIEZlZWwgZnJlZSB0byBhZGQgb3RoZXIgbm9uLXN0YW5kYXJkIGZpZWxkcyB0byB5b3VyIG1lc3NhZ2VzLlxuXG4gICAgLyoqXG4gICAgICogU3BlY2lmeSB0aGUgc291cmNlIHZhbHVlIHRoYXRcdTIwMTlzIGJlaW5nIHJlcG9ydGVkLCB3aGljaCBpcyBkZWVtZWRcbiAgICAgKiBpbmNvcnJlY3QuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuYWN0dWFsXG5cbiAgICAvKipcbiAgICAgKiBTdWdnZXN0IGFjY2VwdGFibGUgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiBgYWN0dWFsYC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuZXhwZWN0ZWRcblxuICAgIC8qKlxuICAgICAqIExvbmcgZm9ybSBkZXNjcmlwdGlvbiBvZiB0aGUgbWVzc2FnZSAoeW91IHNob3VsZCB1c2UgbWFya2Rvd24pLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLm5vdGVcblxuICAgIC8qKlxuICAgICAqIExpbmsgdG8gZG9jcyBmb3IgdGhlIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogdGhpcyBtdXN0IGJlIGFuIGFic29sdXRlIFVSTCB0aGF0IGNhbiBiZSBwYXNzZWQgYXMgYHhgXG4gICAgICogPiB0byBgbmV3IFVSTCh4KWAuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMudXJsXG4gICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgfVxufVxuXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmZpbGUgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5uYW1lID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucmVhc29uID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUubWVzc2FnZSA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnN0YWNrID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuY29sdW1uID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmxpbmUgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuYW5jZXN0b3JzID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmNhdXNlID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmZhdGFsID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnBsYWNlID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnJ1bGVJZCA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5zb3VyY2UgPSB1bmRlZmluZWRcbiIsICIvLyBBIGRlcml2YXRpdmUgd29yayBiYXNlZCBvbjpcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vYnJvd3NlcmlmeS9wYXRoLWJyb3dzZXJpZnk+LlxuLy8gV2hpY2ggaXMgbGljZW5zZWQ6XG4vL1xuLy8gTUlUIExpY2Vuc2Vcbi8vXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTMgSmFtZXMgSGFsbGlkYXlcbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mXG4vLyB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluXG4vLyB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvXG4vLyB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZlxuLy8gdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLFxuLy8gc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4vLyBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTXG4vLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1Jcbi8vIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUlxuLy8gSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU5cbi8vIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4vLyBBIGRlcml2YXRpdmUgd29yayBiYXNlZCBvbjpcbi8vXG4vLyBQYXJ0cyBvZiB0aGF0IGFyZSBleHRyYWN0ZWQgZnJvbSBOb2RlXHUyMDE5cyBpbnRlcm5hbCBgcGF0aGAgbW9kdWxlOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iL21hc3Rlci9saWIvcGF0aC5qcz4uXG4vLyBXaGljaCBpcyBsaWNlbnNlZDpcbi8vXG4vLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuZXhwb3J0IGNvbnN0IHBhdGggPSB7YmFzZW5hbWUsIGRpcm5hbWUsIGV4dG5hbWUsIGpvaW4sIHNlcDogJy8nfVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtZGVwdGgsIGNvbXBsZXhpdHkgKi9cblxuLyoqXG4gKiBHZXQgdGhlIGJhc2VuYW1lIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2V4dF1cbiAqICAgRXh0ZW5zaW9uIHRvIHN0cmlwLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU3RlbSBvciBiYXNlbmFtZS5cbiAqL1xuZnVuY3Rpb24gYmFzZW5hbWUocGF0aCwgZXh0KSB7XG4gIGlmIChleHQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZXh0ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiZXh0XCIgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZycpXG4gIH1cblxuICBhc3NlcnRQYXRoKHBhdGgpXG4gIGxldCBzdGFydCA9IDBcbiAgbGV0IGVuZCA9IC0xXG4gIGxldCBpbmRleCA9IHBhdGgubGVuZ3RoXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHNlZW5Ob25TbGFzaFxuXG4gIGlmIChleHQgPT09IHVuZGVmaW5lZCB8fCBleHQubGVuZ3RoID09PSAwIHx8IGV4dC5sZW5ndGggPiBwYXRoLmxlbmd0aCkge1xuICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICBpZiAocGF0aC5jb2RlUG9pbnRBdChpbmRleCkgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgICAvLyBJZiB3ZSByZWFjaGVkIGEgcGF0aCBzZXBhcmF0b3IgdGhhdCB3YXMgbm90IHBhcnQgb2YgYSBzZXQgb2YgcGF0aFxuICAgICAgICAvLyBzZXBhcmF0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgc3RvcCBub3cuXG4gICAgICAgIGlmIChzZWVuTm9uU2xhc2gpIHtcbiAgICAgICAgICBzdGFydCA9IGluZGV4ICsgMVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZW5kIDwgMCkge1xuICAgICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvciwgbWFyayB0aGlzIGFzIHRoZSBlbmQgb2Ygb3VyXG4gICAgICAgIC8vIHBhdGggY29tcG9uZW50LlxuICAgICAgICBzZWVuTm9uU2xhc2ggPSB0cnVlXG4gICAgICAgIGVuZCA9IGluZGV4ICsgMVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlbmQgPCAwID8gJycgOiBwYXRoLnNsaWNlKHN0YXJ0LCBlbmQpXG4gIH1cblxuICBpZiAoZXh0ID09PSBwYXRoKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBsZXQgZmlyc3ROb25TbGFzaEVuZCA9IC0xXG4gIGxldCBleHRJbmRleCA9IGV4dC5sZW5ndGggLSAxXG5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBpZiAocGF0aC5jb2RlUG9pbnRBdChpbmRleCkgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgLy8gSWYgd2UgcmVhY2hlZCBhIHBhdGggc2VwYXJhdG9yIHRoYXQgd2FzIG5vdCBwYXJ0IG9mIGEgc2V0IG9mIHBhdGhcbiAgICAgIC8vIHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzdG9wIG5vdy5cbiAgICAgIGlmIChzZWVuTm9uU2xhc2gpIHtcbiAgICAgICAgc3RhcnQgPSBpbmRleCArIDFcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZpcnN0Tm9uU2xhc2hFbmQgPCAwKSB7XG4gICAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yLCByZW1lbWJlciB0aGlzIGluZGV4IGluIGNhc2VcbiAgICAgICAgLy8gd2UgbmVlZCBpdCBpZiB0aGUgZXh0ZW5zaW9uIGVuZHMgdXAgbm90IG1hdGNoaW5nLlxuICAgICAgICBzZWVuTm9uU2xhc2ggPSB0cnVlXG4gICAgICAgIGZpcnN0Tm9uU2xhc2hFbmQgPSBpbmRleCArIDFcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dEluZGV4ID4gLTEpIHtcbiAgICAgICAgLy8gVHJ5IHRvIG1hdGNoIHRoZSBleHBsaWNpdCBleHRlbnNpb24uXG4gICAgICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gZXh0LmNvZGVQb2ludEF0KGV4dEluZGV4LS0pKSB7XG4gICAgICAgICAgaWYgKGV4dEluZGV4IDwgMCkge1xuICAgICAgICAgICAgLy8gV2UgbWF0Y2hlZCB0aGUgZXh0ZW5zaW9uLCBzbyBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXIgcGF0aFxuICAgICAgICAgICAgLy8gY29tcG9uZW50XG4gICAgICAgICAgICBlbmQgPSBpbmRleFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBFeHRlbnNpb24gZG9lcyBub3QgbWF0Y2gsIHNvIG91ciByZXN1bHQgaXMgdGhlIGVudGlyZSBwYXRoXG4gICAgICAgICAgLy8gY29tcG9uZW50XG4gICAgICAgICAgZXh0SW5kZXggPSAtMVxuICAgICAgICAgIGVuZCA9IGZpcnN0Tm9uU2xhc2hFbmRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChzdGFydCA9PT0gZW5kKSB7XG4gICAgZW5kID0gZmlyc3ROb25TbGFzaEVuZFxuICB9IGVsc2UgaWYgKGVuZCA8IDApIHtcbiAgICBlbmQgPSBwYXRoLmxlbmd0aFxuICB9XG5cbiAgcmV0dXJuIHBhdGguc2xpY2Uoc3RhcnQsIGVuZClcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGRpcm5hbWUgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBkaXJuYW1lKHBhdGgpIHtcbiAgYXNzZXJ0UGF0aChwYXRoKVxuXG4gIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAnLidcbiAgfVxuXG4gIGxldCBlbmQgPSAtMVxuICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aFxuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCB1bm1hdGNoZWRTbGFzaFxuXG4gIC8vIFByZWZpeCBgLS1gIGlzIGltcG9ydGFudCB0byBub3QgcnVuIG9uIGAwYC5cbiAgd2hpbGUgKC0taW5kZXgpIHtcbiAgICBpZiAocGF0aC5jb2RlUG9pbnRBdChpbmRleCkgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgaWYgKHVubWF0Y2hlZFNsYXNoKSB7XG4gICAgICAgIGVuZCA9IGluZGV4XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghdW5tYXRjaGVkU2xhc2gpIHtcbiAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yXG4gICAgICB1bm1hdGNoZWRTbGFzaCA9IHRydWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW5kIDwgMFxuICAgID8gcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG4gICAgICA/ICcvJ1xuICAgICAgOiAnLidcbiAgICA6IGVuZCA9PT0gMSAmJiBwYXRoLmNvZGVQb2ludEF0KDApID09PSA0NyAvKiBgL2AgKi9cbiAgICA/ICcvLydcbiAgICA6IHBhdGguc2xpY2UoMCwgZW5kKVxufVxuXG4vKipcbiAqIEdldCBhbiBleHRuYW1lIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEV4dG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGV4dG5hbWUocGF0aCkge1xuICBhc3NlcnRQYXRoKHBhdGgpXG5cbiAgbGV0IGluZGV4ID0gcGF0aC5sZW5ndGhcblxuICBsZXQgZW5kID0gLTFcbiAgbGV0IHN0YXJ0UGFydCA9IDBcbiAgbGV0IHN0YXJ0RG90ID0gLTFcbiAgLy8gVHJhY2sgdGhlIHN0YXRlIG9mIGNoYXJhY3RlcnMgKGlmIGFueSkgd2Ugc2VlIGJlZm9yZSBvdXIgZmlyc3QgZG90IGFuZFxuICAvLyBhZnRlciBhbnkgcGF0aCBzZXBhcmF0b3Igd2UgZmluZC5cbiAgbGV0IHByZURvdFN0YXRlID0gMFxuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCB1bm1hdGNoZWRTbGFzaFxuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgY29uc3QgY29kZSA9IHBhdGguY29kZVBvaW50QXQoaW5kZXgpXG5cbiAgICBpZiAoY29kZSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICAvLyBJZiB3ZSByZWFjaGVkIGEgcGF0aCBzZXBhcmF0b3IgdGhhdCB3YXMgbm90IHBhcnQgb2YgYSBzZXQgb2YgcGF0aFxuICAgICAgLy8gc2VwYXJhdG9ycyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHN0b3Agbm93LlxuICAgICAgaWYgKHVubWF0Y2hlZFNsYXNoKSB7XG4gICAgICAgIHN0YXJ0UGFydCA9IGluZGV4ICsgMVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGlmIChlbmQgPCAwKSB7XG4gICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvciwgbWFyayB0aGlzIGFzIHRoZSBlbmQgb2Ygb3VyXG4gICAgICAvLyBleHRlbnNpb24uXG4gICAgICB1bm1hdGNoZWRTbGFzaCA9IHRydWVcbiAgICAgIGVuZCA9IGluZGV4ICsgMVxuICAgIH1cblxuICAgIGlmIChjb2RlID09PSA0NiAvKiBgLmAgKi8pIHtcbiAgICAgIC8vIElmIHRoaXMgaXMgb3VyIGZpcnN0IGRvdCwgbWFyayBpdCBhcyB0aGUgc3RhcnQgb2Ygb3VyIGV4dGVuc2lvbi5cbiAgICAgIGlmIChzdGFydERvdCA8IDApIHtcbiAgICAgICAgc3RhcnREb3QgPSBpbmRleFxuICAgICAgfSBlbHNlIGlmIChwcmVEb3RTdGF0ZSAhPT0gMSkge1xuICAgICAgICBwcmVEb3RTdGF0ZSA9IDFcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN0YXJ0RG90ID4gLTEpIHtcbiAgICAgIC8vIFdlIHNhdyBhIG5vbi1kb3QgYW5kIG5vbi1wYXRoIHNlcGFyYXRvciBiZWZvcmUgb3VyIGRvdCwgc28gd2Ugc2hvdWxkXG4gICAgICAvLyBoYXZlIGEgZ29vZCBjaGFuY2UgYXQgaGF2aW5nIGEgbm9uLWVtcHR5IGV4dGVuc2lvbi5cbiAgICAgIHByZURvdFN0YXRlID0gLTFcbiAgICB9XG4gIH1cblxuICBpZiAoXG4gICAgc3RhcnREb3QgPCAwIHx8XG4gICAgZW5kIDwgMCB8fFxuICAgIC8vIFdlIHNhdyBhIG5vbi1kb3QgY2hhcmFjdGVyIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgZG90LlxuICAgIHByZURvdFN0YXRlID09PSAwIHx8XG4gICAgLy8gVGhlIChyaWdodC1tb3N0KSB0cmltbWVkIHBhdGggY29tcG9uZW50IGlzIGV4YWN0bHkgYC4uYC5cbiAgICAocHJlRG90U3RhdGUgPT09IDEgJiYgc3RhcnREb3QgPT09IGVuZCAtIDEgJiYgc3RhcnREb3QgPT09IHN0YXJ0UGFydCArIDEpXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgcmV0dXJuIHBhdGguc2xpY2Uoc3RhcnREb3QsIGVuZClcbn1cblxuLyoqXG4gKiBKb2luIHNlZ21lbnRzIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gc2VnbWVudHNcbiAqICAgUGF0aCBzZWdtZW50cy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gam9pbiguLi5zZWdtZW50cykge1xuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGpvaW5lZFxuXG4gIHdoaWxlICgrK2luZGV4IDwgc2VnbWVudHMubGVuZ3RoKSB7XG4gICAgYXNzZXJ0UGF0aChzZWdtZW50c1tpbmRleF0pXG5cbiAgICBpZiAoc2VnbWVudHNbaW5kZXhdKSB7XG4gICAgICBqb2luZWQgPVxuICAgICAgICBqb2luZWQgPT09IHVuZGVmaW5lZCA/IHNlZ21lbnRzW2luZGV4XSA6IGpvaW5lZCArICcvJyArIHNlZ21lbnRzW2luZGV4XVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBqb2luZWQgPT09IHVuZGVmaW5lZCA/ICcuJyA6IG5vcm1hbGl6ZShqb2luZWQpXG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgYmFzaWMgZmlsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuLy8gTm90ZTogYG5vcm1hbGl6ZWAgaXMgbm90IGV4cG9zZWQgYXMgYHBhdGgubm9ybWFsaXplYCwgc28gc29tZSBjb2RlIGlzXG4vLyBtYW51YWxseSByZW1vdmVkIGZyb20gaXQuXG5mdW5jdGlvbiBub3JtYWxpemUocGF0aCkge1xuICBhc3NlcnRQYXRoKHBhdGgpXG5cbiAgY29uc3QgYWJzb2x1dGUgPSBwYXRoLmNvZGVQb2ludEF0KDApID09PSA0NyAvKiBgL2AgKi9cblxuICAvLyBOb3JtYWxpemUgdGhlIHBhdGggYWNjb3JkaW5nIHRvIFBPU0lYIHJ1bGVzLlxuICBsZXQgdmFsdWUgPSBub3JtYWxpemVTdHJpbmcocGF0aCwgIWFic29sdXRlKVxuXG4gIGlmICh2YWx1ZS5sZW5ndGggPT09IDAgJiYgIWFic29sdXRlKSB7XG4gICAgdmFsdWUgPSAnLidcbiAgfVxuXG4gIGlmICh2YWx1ZS5sZW5ndGggPiAwICYmIHBhdGguY29kZVBvaW50QXQocGF0aC5sZW5ndGggLSAxKSA9PT0gNDcgLyogLyAqLykge1xuICAgIHZhbHVlICs9ICcvJ1xuICB9XG5cbiAgcmV0dXJuIGFic29sdXRlID8gJy8nICsgdmFsdWUgOiB2YWx1ZVxufVxuXG4vKipcbiAqIFJlc29sdmUgYC5gIGFuZCBgLi5gIGVsZW1lbnRzIGluIGEgcGF0aCB3aXRoIGRpcmVjdG9yeSBuYW1lcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGFsbG93QWJvdmVSb290XG4gKiAgIFdoZXRoZXIgYC4uYCBjYW4gbW92ZSBhYm92ZSByb290LlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVTdHJpbmcocGF0aCwgYWxsb3dBYm92ZVJvb3QpIHtcbiAgbGV0IHJlc3VsdCA9ICcnXG4gIGxldCBsYXN0U2VnbWVudExlbmd0aCA9IDBcbiAgbGV0IGxhc3RTbGFzaCA9IC0xXG4gIGxldCBkb3RzID0gMFxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGNvZGVcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBsYXN0U2xhc2hJbmRleFxuXG4gIHdoaWxlICgrK2luZGV4IDw9IHBhdGgubGVuZ3RoKSB7XG4gICAgaWYgKGluZGV4IDwgcGF0aC5sZW5ndGgpIHtcbiAgICAgIGNvZGUgPSBwYXRoLmNvZGVQb2ludEF0KGluZGV4KVxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICBicmVha1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlID0gNDcgLyogYC9gICovXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgaWYgKGxhc3RTbGFzaCA9PT0gaW5kZXggLSAxIHx8IGRvdHMgPT09IDEpIHtcbiAgICAgICAgLy8gRW1wdHkuXG4gICAgICB9IGVsc2UgaWYgKGxhc3RTbGFzaCAhPT0gaW5kZXggLSAxICYmIGRvdHMgPT09IDIpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJlc3VsdC5sZW5ndGggPCAyIHx8XG4gICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggIT09IDIgfHxcbiAgICAgICAgICByZXN1bHQuY29kZVBvaW50QXQocmVzdWx0Lmxlbmd0aCAtIDEpICE9PSA0NiAvKiBgLmAgKi8gfHxcbiAgICAgICAgICByZXN1bHQuY29kZVBvaW50QXQocmVzdWx0Lmxlbmd0aCAtIDIpICE9PSA0NiAvKiBgLmAgKi9cbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICBsYXN0U2xhc2hJbmRleCA9IHJlc3VsdC5sYXN0SW5kZXhPZignLycpXG5cbiAgICAgICAgICAgIGlmIChsYXN0U2xhc2hJbmRleCAhPT0gcmVzdWx0Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4IDwgMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9ICcnXG4gICAgICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAwXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKDAsIGxhc3RTbGFzaEluZGV4KVxuICAgICAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gcmVzdWx0Lmxlbmd0aCAtIDEgLSByZXN1bHQubGFzdEluZGV4T2YoJy8nKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgbGFzdFNsYXNoID0gaW5kZXhcbiAgICAgICAgICAgICAgZG90cyA9IDBcbiAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAnJ1xuICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAwXG4gICAgICAgICAgICBsYXN0U2xhc2ggPSBpbmRleFxuICAgICAgICAgICAgZG90cyA9IDBcbiAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFsbG93QWJvdmVSb290KSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0Lmxlbmd0aCA+IDAgPyByZXN1bHQgKyAnLy4uJyA6ICcuLidcbiAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDJcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVzdWx0ICs9ICcvJyArIHBhdGguc2xpY2UobGFzdFNsYXNoICsgMSwgaW5kZXgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gcGF0aC5zbGljZShsYXN0U2xhc2ggKyAxLCBpbmRleClcbiAgICAgICAgfVxuXG4gICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gaW5kZXggLSBsYXN0U2xhc2ggLSAxXG4gICAgICB9XG5cbiAgICAgIGxhc3RTbGFzaCA9IGluZGV4XG4gICAgICBkb3RzID0gMFxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gNDYgLyogYC5gICovICYmIGRvdHMgPiAtMSkge1xuICAgICAgZG90cysrXG4gICAgfSBlbHNlIHtcbiAgICAgIGRvdHMgPSAtMVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBNYWtlIHN1cmUgYHBhdGhgIGlzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHthc3NlcnRzIHBhdGggaXMgc3RyaW5nfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnRQYXRoKHBhdGgpIHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAnUGF0aCBtdXN0IGJlIGEgc3RyaW5nLiBSZWNlaXZlZCAnICsgSlNPTi5zdHJpbmdpZnkocGF0aClcbiAgICApXG4gIH1cbn1cblxuLyogZXNsaW50LWVuYWJsZSBtYXgtZGVwdGgsIGNvbXBsZXhpdHkgKi9cbiIsICIvLyBTb21ld2hhdCBiYXNlZCBvbjpcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vZGVmdW5jdHpvbWJpZS9ub2RlLXByb2Nlc3MvYmxvYi9tYXN0ZXIvYnJvd3Nlci5qcz4uXG4vLyBCdXQgSSBkb25cdTIwMTl0IHRoaW5rIG9uZSB0aW55IGxpbmUgb2YgY29kZSBjYW4gYmUgY29weXJpZ2h0ZWQuIFx1RDgzRFx1REUwNVxuZXhwb3J0IGNvbnN0IHByb2MgPSB7Y3dkfVxuXG5mdW5jdGlvbiBjd2QoKSB7XG4gIHJldHVybiAnLydcbn1cbiIsICIvKipcbiAqIENoZWNrcyBpZiBhIHZhbHVlIGhhcyB0aGUgc2hhcGUgb2YgYSBXSEFUV0cgVVJMIG9iamVjdC5cbiAqXG4gKiBVc2luZyBhIHN5bWJvbCBvciBpbnN0YW5jZW9mIHdvdWxkIG5vdCBiZSBhYmxlIHRvIHJlY29nbml6ZSBVUkwgb2JqZWN0c1xuICogY29taW5nIGZyb20gb3RoZXIgaW1wbGVtZW50YXRpb25zIChlLmcuIGluIEVsZWN0cm9uKSwgc28gaW5zdGVhZCB3ZSBhcmVcbiAqIGNoZWNraW5nIHNvbWUgd2VsbCBrbm93biBwcm9wZXJ0aWVzIGZvciBhIGxhY2sgb2YgYSBiZXR0ZXIgdGVzdC5cbiAqXG4gKiBXZSB1c2UgYGhyZWZgIGFuZCBgcHJvdG9jb2xgIGFzIHRoZXkgYXJlIHRoZSBvbmx5IHByb3BlcnRpZXMgdGhhdCBhcmVcbiAqIGVhc3kgdG8gcmV0cmlldmUgYW5kIGNhbGN1bGF0ZSBkdWUgdG8gdGhlIGxhenkgbmF0dXJlIG9mIHRoZSBnZXR0ZXJzLlxuICpcbiAqIFdlIGNoZWNrIGZvciBhdXRoIGF0dHJpYnV0ZSB0byBkaXN0aW5ndWlzaCBsZWdhY3kgdXJsIGluc3RhbmNlIHdpdGhcbiAqIFdIQVRXRyBVUkwgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBmaWxlVXJsT3JQYXRoXG4gKiAgIEZpbGUgcGF0aCBvciBVUkwuXG4gKiBAcmV0dXJucyB7ZmlsZVVybE9yUGF0aCBpcyBVUkx9XG4gKiAgIFdoZXRoZXIgaXRcdTIwMTlzIGEgVVJMLlxuICovXG4vLyBGcm9tOiA8aHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvNmEzNDAzYy9saWIvaW50ZXJuYWwvdXJsLmpzI0w3MjA+XG5leHBvcnQgZnVuY3Rpb24gaXNVcmwoZmlsZVVybE9yUGF0aCkge1xuICByZXR1cm4gQm9vbGVhbihcbiAgICBmaWxlVXJsT3JQYXRoICE9PSBudWxsICYmXG4gICAgICB0eXBlb2YgZmlsZVVybE9yUGF0aCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdocmVmJyBpbiBmaWxlVXJsT3JQYXRoICYmXG4gICAgICBmaWxlVXJsT3JQYXRoLmhyZWYgJiZcbiAgICAgICdwcm90b2NvbCcgaW4gZmlsZVVybE9yUGF0aCAmJlxuICAgICAgZmlsZVVybE9yUGF0aC5wcm90b2NvbCAmJlxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogaW5kZXhpbmcgaXMgZmluZS5cbiAgICAgIGZpbGVVcmxPclBhdGguYXV0aCA9PT0gdW5kZWZpbmVkXG4gIClcbn1cbiIsICJpbXBvcnQge2lzVXJsfSBmcm9tICcuL21pbnVybC5zaGFyZWQuanMnXG5cbmV4cG9ydCB7aXNVcmx9IGZyb20gJy4vbWludXJsLnNoYXJlZC5qcydcblxuLy8gU2VlOiA8aHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvNmEzNDAzYy9saWIvaW50ZXJuYWwvdXJsLmpzPlxuXG4vKipcbiAqIEBwYXJhbSB7VVJMIHwgc3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgVVJMLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBVUkwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cmxUb1BhdGgocGF0aCkge1xuICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSB7XG4gICAgcGF0aCA9IG5ldyBVUkwocGF0aClcbiAgfSBlbHNlIGlmICghaXNVcmwocGF0aCkpIHtcbiAgICAvKiogQHR5cGUge05vZGVKUy5FcnJub0V4Y2VwdGlvbn0gKi9cbiAgICBjb25zdCBlcnJvciA9IG5ldyBUeXBlRXJyb3IoXG4gICAgICAnVGhlIFwicGF0aFwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4gaW5zdGFuY2Ugb2YgVVJMLiBSZWNlaXZlZCBgJyArXG4gICAgICAgIHBhdGggK1xuICAgICAgICAnYCdcbiAgICApXG4gICAgZXJyb3IuY29kZSA9ICdFUlJfSU5WQUxJRF9BUkdfVFlQRSdcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgaWYgKHBhdGgucHJvdG9jb2wgIT09ICdmaWxlOicpIHtcbiAgICAvKiogQHR5cGUge05vZGVKUy5FcnJub0V4Y2VwdGlvbn0gKi9cbiAgICBjb25zdCBlcnJvciA9IG5ldyBUeXBlRXJyb3IoJ1RoZSBVUkwgbXVzdCBiZSBvZiBzY2hlbWUgZmlsZScpXG4gICAgZXJyb3IuY29kZSA9ICdFUlJfSU5WQUxJRF9VUkxfU0NIRU1FJ1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICByZXR1cm4gZ2V0UGF0aEZyb21VUkxQb3NpeChwYXRoKVxufVxuXG4vKipcbiAqIEdldCBhIHBhdGggZnJvbSBhIFBPU0lYIFVSTC5cbiAqXG4gKiBAcGFyYW0ge1VSTH0gdXJsXG4gKiAgIFVSTC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gZ2V0UGF0aEZyb21VUkxQb3NpeCh1cmwpIHtcbiAgaWYgKHVybC5ob3N0bmFtZSAhPT0gJycpIHtcbiAgICAvKiogQHR5cGUge05vZGVKUy5FcnJub0V4Y2VwdGlvbn0gKi9cbiAgICBjb25zdCBlcnJvciA9IG5ldyBUeXBlRXJyb3IoXG4gICAgICAnRmlsZSBVUkwgaG9zdCBtdXN0IGJlIFwibG9jYWxob3N0XCIgb3IgZW1wdHkgb24gZGFyd2luJ1xuICAgIClcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX0ZJTEVfVVJMX0hPU1QnXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIGNvbnN0IHBhdGhuYW1lID0gdXJsLnBhdGhuYW1lXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBwYXRobmFtZS5sZW5ndGgpIHtcbiAgICBpZiAoXG4gICAgICBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCkgPT09IDM3IC8qIGAlYCAqLyAmJlxuICAgICAgcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXggKyAxKSA9PT0gNTAgLyogYDJgICovXG4gICAgKSB7XG4gICAgICBjb25zdCB0aGlyZCA9IHBhdGhuYW1lLmNvZGVQb2ludEF0KGluZGV4ICsgMilcbiAgICAgIGlmICh0aGlyZCA9PT0gNzAgLyogYEZgICovIHx8IHRoaXJkID09PSAxMDIgLyogYGZgICovKSB7XG4gICAgICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgJ0ZpbGUgVVJMIHBhdGggbXVzdCBub3QgaW5jbHVkZSBlbmNvZGVkIC8gY2hhcmFjdGVycydcbiAgICAgICAgKVxuICAgICAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX0ZJTEVfVVJMX1BBVEgnXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYXRobmFtZSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZS1tZXNzYWdlJykuT3B0aW9uc30gTWVzc2FnZU9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuRGF0YX0gRGF0YVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5WYWx1ZX0gVmFsdWVcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3QgJiB7dHlwZTogc3RyaW5nLCBwb3NpdGlvbj86IFBvc2l0aW9uIHwgdW5kZWZpbmVkfX0gTm9kZUxpa2VcbiAqXG4gKiBAdHlwZWRlZiB7T3B0aW9ucyB8IFVSTCB8IFZGaWxlIHwgVmFsdWV9IENvbXBhdGlibGVcbiAqICAgVGhpbmdzIHRoYXQgY2FuIGJlIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IuXG4gKlxuICogQHR5cGVkZWYgVkZpbGVDb3JlT3B0aW9uc1xuICogICBTZXQgbXVsdGlwbGUgdmFsdWVzLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbYmFzZW5hbWVdXG4gKiAgIFNldCBgYmFzZW5hbWVgIChuYW1lKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2N3ZF1cbiAqICAgU2V0IGBjd2RgICh3b3JraW5nIGRpcmVjdG9yeSkuXG4gKiBAcHJvcGVydHkge0RhdGEgfCBudWxsIHwgdW5kZWZpbmVkfSBbZGF0YV1cbiAqICAgU2V0IGBkYXRhYCAoYXNzb2NpYXRlZCBpbmZvKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Rpcm5hbWVdXG4gKiAgIFNldCBgZGlybmFtZWAgKHBhdGggdy9vIGJhc2VuYW1lKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2V4dG5hbWVdXG4gKiAgIFNldCBgZXh0bmFtZWAgKGV4dGVuc2lvbiB3aXRoIGRvdCkuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbaGlzdG9yeV1cbiAqICAgU2V0IGBoaXN0b3J5YCAocGF0aHMgdGhlIGZpbGUgbW92ZWQgYmV0d2VlbikuXG4gKiBAcHJvcGVydHkge1VSTCB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtwYXRoXVxuICogICBTZXQgYHBhdGhgIChjdXJyZW50IHBhdGgpLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3RlbV1cbiAqICAgU2V0IGBzdGVtYCAobmFtZSB3aXRob3V0IGV4dGVuc2lvbikuXG4gKiBAcHJvcGVydHkge1ZhbHVlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZhbHVlXVxuICogICBTZXQgYHZhbHVlYCAodGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlKS5cbiAqXG4gKiBAdHlwZWRlZiBNYXBcbiAqICAgUmF3IHNvdXJjZSBtYXAuXG4gKlxuICogICBTZWU6XG4gKiAgIDxodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2Jsb2IvNjBhZGNiMC9zb3VyY2UtbWFwLmQudHMjTDE1LUwyMz4uXG4gKiBAcHJvcGVydHkge251bWJlcn0gdmVyc2lvblxuICogICBXaGljaCB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgbWFwIHNwZWMgdGhpcyBtYXAgaXMgZm9sbG93aW5nLlxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+fSBzb3VyY2VzXG4gKiAgIEFuIGFycmF5IG9mIFVSTHMgdG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlcy5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gbmFtZXNcbiAqICAgQW4gYXJyYXkgb2YgaWRlbnRpZmllcnMgd2hpY2ggY2FuIGJlIHJlZmVyZW5jZWQgYnkgaW5kaXZpZHVhbCBtYXBwaW5ncy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbc291cmNlUm9vdF1cbiAqICAgVGhlIFVSTCByb290IGZyb20gd2hpY2ggYWxsIHNvdXJjZXMgYXJlIHJlbGF0aXZlLlxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkfSBbc291cmNlc0NvbnRlbnRdXG4gKiAgIEFuIGFycmF5IG9mIGNvbnRlbnRzIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbWFwcGluZ3NcbiAqICAgQSBzdHJpbmcgb2YgYmFzZTY0IFZMUXMgd2hpY2ggY29udGFpbiB0aGUgYWN0dWFsIG1hcHBpbmdzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGZpbGVcbiAqICAgVGhlIGdlbmVyYXRlZCBmaWxlIHRoaXMgc291cmNlIG1hcCBpcyBhc3NvY2lhdGVkIHdpdGguXG4gKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHVua25vd24+ICYgVkZpbGVDb3JlT3B0aW9uc30gT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICpcbiAqICAgQSBidW5jaCBvZiBrZXlzIHRoYXQgd2lsbCBiZSBzaGFsbG93IGNvcGllZCBvdmVyIHRvIHRoZSBuZXcgZmlsZS5cbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59IFJlcG9ydGVyU2V0dGluZ3NcbiAqICAgQ29uZmlndXJhdGlvbiBmb3IgcmVwb3J0ZXJzLlxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIFtTZXR0aW5ncz1SZXBvcnRlclNldHRpbmdzXVxuICogICBPcHRpb25zIHR5cGUuXG4gKiBAY2FsbGJhY2sgUmVwb3J0ZXJcbiAqICAgVHlwZSBmb3IgYSByZXBvcnRlci5cbiAqIEBwYXJhbSB7QXJyYXk8VkZpbGU+fSBmaWxlc1xuICogICBGaWxlcyB0byByZXBvcnQuXG4gKiBAcGFyYW0ge1NldHRpbmdzfSBvcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBSZXBvcnQuXG4gKi9cblxuaW1wb3J0IHtWRmlsZU1lc3NhZ2V9IGZyb20gJ3ZmaWxlLW1lc3NhZ2UnXG5pbXBvcnQge3BhdGh9IGZyb20gJ3ZmaWxlL2RvLW5vdC11c2UtY29uZGl0aW9uYWwtbWlucGF0aCdcbmltcG9ydCB7cHJvY30gZnJvbSAndmZpbGUvZG8tbm90LXVzZS1jb25kaXRpb25hbC1taW5wcm9jJ1xuaW1wb3J0IHt1cmxUb1BhdGgsIGlzVXJsfSBmcm9tICd2ZmlsZS9kby1ub3QtdXNlLWNvbmRpdGlvbmFsLW1pbnVybCdcblxuLyoqXG4gKiBPcmRlciBvZiBzZXR0aW5nIChsZWFzdCBzcGVjaWZpYyB0byBtb3N0KSwgd2UgbmVlZCB0aGlzIGJlY2F1c2Ugb3RoZXJ3aXNlXG4gKiBge3N0ZW06ICdhJywgcGF0aDogJ34vYi5qcyd9YCB3b3VsZCB0aHJvdywgYXMgYSBwYXRoIGlzIG5lZWRlZCBiZWZvcmUgYVxuICogc3RlbSBjYW4gYmUgc2V0LlxuICovXG5jb25zdCBvcmRlciA9IC8qKiBAdHlwZSB7Y29uc3R9ICovIChbXG4gICdoaXN0b3J5JyxcbiAgJ3BhdGgnLFxuICAnYmFzZW5hbWUnLFxuICAnc3RlbScsXG4gICdleHRuYW1lJyxcbiAgJ2Rpcm5hbWUnXG5dKVxuXG5leHBvcnQgY2xhc3MgVkZpbGUge1xuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHZpcnR1YWwgZmlsZS5cbiAgICpcbiAgICogYG9wdGlvbnNgIGlzIHRyZWF0ZWQgYXM6XG4gICAqXG4gICAqICogICBgc3RyaW5nYCBvciBgVWludDhBcnJheWAgXHUyMDE0IGB7dmFsdWU6IG9wdGlvbnN9YFxuICAgKiAqICAgYFVSTGAgXHUyMDE0IGB7cGF0aDogb3B0aW9uc31gXG4gICAqICogICBgVkZpbGVgIFx1MjAxNCBzaGFsbG93IGNvcGllcyBpdHMgZGF0YSBvdmVyIHRvIHRoZSBuZXcgZmlsZVxuICAgKiAqICAgYG9iamVjdGAgXHUyMDE0IGFsbCBmaWVsZHMgYXJlIHNoYWxsb3cgY29waWVkIG92ZXIgdG8gdGhlIG5ldyBmaWxlXG4gICAqXG4gICAqIFBhdGggcmVsYXRlZCBmaWVsZHMgYXJlIHNldCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyIChsZWFzdCBzcGVjaWZpYyB0b1xuICAgKiBtb3N0IHNwZWNpZmljKTogYGhpc3RvcnlgLCBgcGF0aGAsIGBiYXNlbmFtZWAsIGBzdGVtYCwgYGV4dG5hbWVgLFxuICAgKiBgZGlybmFtZWAuXG4gICAqXG4gICAqIFlvdSBjYW5ub3Qgc2V0IGBkaXJuYW1lYCBvciBgZXh0bmFtZWAgd2l0aG91dCBzZXR0aW5nIGVpdGhlciBgaGlzdG9yeWAsXG4gICAqIGBwYXRoYCwgYGJhc2VuYW1lYCwgb3IgYHN0ZW1gIHRvby5cbiAgICpcbiAgICogQHBhcmFtIHtDb21wYXRpYmxlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZhbHVlXVxuICAgKiAgIEZpbGUgdmFsdWUuXG4gICAqIEByZXR1cm5zXG4gICAqICAgTmV3IGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3IodmFsdWUpIHtcbiAgICAvKiogQHR5cGUge09wdGlvbnMgfCBWRmlsZX0gKi9cbiAgICBsZXQgb3B0aW9uc1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgb3B0aW9ucyA9IHt9XG4gICAgfSBlbHNlIGlmIChpc1VybCh2YWx1ZSkpIHtcbiAgICAgIG9wdGlvbnMgPSB7cGF0aDogdmFsdWV9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IGlzVWludDhBcnJheSh2YWx1ZSkpIHtcbiAgICAgIG9wdGlvbnMgPSB7dmFsdWV9XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wdGlvbnMgPSB2YWx1ZVxuICAgIH1cblxuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuXG4gICAgLyoqXG4gICAgICogQmFzZSBvZiBgcGF0aGAgKGRlZmF1bHQ6IGBwcm9jZXNzLmN3ZCgpYCBvciBgJy8nYCBpbiBicm93c2VycykuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMuY3dkID0gcHJvYy5jd2QoKVxuXG4gICAgLyoqXG4gICAgICogUGxhY2UgdG8gc3RvcmUgY3VzdG9tIGluZm8gKGRlZmF1bHQ6IGB7fWApLlxuICAgICAqXG4gICAgICogSXRcdTIwMTlzIE9LIHRvIHN0b3JlIGN1c3RvbSBkYXRhIGRpcmVjdGx5IG9uIHRoZSBmaWxlIGJ1dCBtb3ZpbmcgaXQgdG9cbiAgICAgKiBgZGF0YWAgaXMgcmVjb21tZW5kZWQuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RGF0YX1cbiAgICAgKi9cbiAgICB0aGlzLmRhdGEgPSB7fVxuXG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBmaWxlIHBhdGhzIHRoZSBmaWxlIG1vdmVkIGJldHdlZW4uXG4gICAgICpcbiAgICAgKiBUaGUgZmlyc3QgaXMgdGhlIG9yaWdpbmFsIHBhdGggYW5kIHRoZSBsYXN0IGlzIHRoZSBjdXJyZW50IHBhdGguXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAgICAgKi9cbiAgICB0aGlzLmhpc3RvcnkgPSBbXVxuXG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBtZXNzYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8VkZpbGVNZXNzYWdlPn1cbiAgICAgKi9cbiAgICB0aGlzLm1lc3NhZ2VzID0gW11cblxuICAgIC8qKlxuICAgICAqIFJhdyB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtWYWx1ZX1cbiAgICAgKi9cbiAgICB0aGlzLnZhbHVlXG5cbiAgICAvLyBUaGUgYmVsb3cgYXJlIG5vbi1zdGFuZGFyZCwgdGhleSBhcmUgXHUyMDFDd2VsbC1rbm93blx1MjAxRC5cbiAgICAvLyBBcyBpbiwgdXNlZCBpbiBzZXZlcmFsIHRvb2xzLlxuICAgIC8qKlxuICAgICAqIFNvdXJjZSBtYXAuXG4gICAgICpcbiAgICAgKiBUaGlzIHR5cGUgaXMgZXF1aXZhbGVudCB0byB0aGUgYFJhd1NvdXJjZU1hcGAgdHlwZSBmcm9tIHRoZSBgc291cmNlLW1hcGBcbiAgICAgKiBtb2R1bGUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7TWFwIHwgbnVsbCB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLm1hcFxuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tLCBub24tc3RyaW5nLCBjb21waWxlZCwgcmVwcmVzZW50YXRpb24uXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgdW5pZmllZCB0byBzdG9yZSBub24tc3RyaW5nIHJlc3VsdHMuXG4gICAgICogT25lIGV4YW1wbGUgaXMgd2hlbiB0dXJuaW5nIG1hcmtkb3duIGludG8gUmVhY3Qgbm9kZXMuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7dW5rbm93bn1cbiAgICAgKi9cbiAgICB0aGlzLnJlc3VsdFxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBhIGZpbGUgd2FzIHNhdmVkIHRvIGRpc2suXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgdmZpbGUgcmVwb3J0ZXJzLlxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgdGhpcy5zdG9yZWRcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuXG4gICAgLy8gU2V0IHBhdGggcmVsYXRlZCBwcm9wZXJ0aWVzIGluIHRoZSBjb3JyZWN0IG9yZGVyLlxuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IG9yZGVyLmxlbmd0aCkge1xuICAgICAgY29uc3QgcHJvcCA9IG9yZGVyW2luZGV4XVxuXG4gICAgICAvLyBOb3RlOiB3ZSBzcGVjaWZpY2FsbHkgdXNlIGBpbmAgaW5zdGVhZCBvZiBgaGFzT3duUHJvcGVydHlgIHRvIGFjY2VwdFxuICAgICAgLy8gYHZmaWxlYHMgdG9vLlxuICAgICAgaWYgKFxuICAgICAgICBwcm9wIGluIG9wdGlvbnMgJiZcbiAgICAgICAgb3B0aW9uc1twcm9wXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIG9wdGlvbnNbcHJvcF0gIT09IG51bGxcbiAgICAgICkge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBUUyBkb2Vzblx1MjAxOXQgdW5kZXJzdGFuZCBiYXNpYyByZWFsaXR5LlxuICAgICAgICB0aGlzW3Byb3BdID0gcHJvcCA9PT0gJ2hpc3RvcnknID8gWy4uLm9wdGlvbnNbcHJvcF1dIDogb3B0aW9uc1twcm9wXVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCBwcm9wXG5cbiAgICAvLyBTZXQgbm9uLXBhdGggcmVsYXRlZCBwcm9wZXJ0aWVzLlxuICAgIGZvciAocHJvcCBpbiBvcHRpb25zKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBmaW5lIHRvIHNldCBvdGhlciB0aGluZ3MuXG4gICAgICBpZiAoIW9yZGVyLmluY2x1ZGVzKHByb3ApKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGZpbmUgdG8gc2V0IG90aGVyIHRoaW5ncy5cbiAgICAgICAgdGhpc1twcm9wXSA9IG9wdGlvbnNbcHJvcF1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBiYXNlbmFtZSAoaW5jbHVkaW5nIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbi5qcydgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBCYXNlbmFtZS5cbiAgICovXG4gIGdldCBiYXNlbmFtZSgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMucGF0aCA9PT0gJ3N0cmluZycgPyBwYXRoLmJhc2VuYW1lKHRoaXMucGF0aCkgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYmFzZW5hbWUgKGluY2x1ZGluZyBleHRuYW1lKSAoYCdpbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBjb250YWluIHBhdGggc2VwYXJhdG9ycyAoYCcvJ2Agb24gdW5peCwgbWFjT1MsIGFuZCBicm93c2VycywgYCdcXCdgXG4gICAqIG9uIHdpbmRvd3MpLlxuICAgKiBDYW5ub3QgYmUgbnVsbGlmaWVkICh1c2UgYGZpbGUucGF0aCA9IGZpbGUuZGlybmFtZWAgaW5zdGVhZCkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlbmFtZVxuICAgKiAgIEJhc2VuYW1lLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgYmFzZW5hbWUoYmFzZW5hbWUpIHtcbiAgICBhc3NlcnROb25FbXB0eShiYXNlbmFtZSwgJ2Jhc2VuYW1lJylcbiAgICBhc3NlcnRQYXJ0KGJhc2VuYW1lLCAnYmFzZW5hbWUnKVxuICAgIHRoaXMucGF0aCA9IHBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIGJhc2VuYW1lKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcGFyZW50IHBhdGggKGV4YW1wbGU6IGAnfidgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBEaXJuYW1lLlxuICAgKi9cbiAgZ2V0IGRpcm5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnID8gcGF0aC5kaXJuYW1lKHRoaXMucGF0aCkgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHBhcmVudCBwYXRoIChleGFtcGxlOiBgJ34nYCkuXG4gICAqXG4gICAqIENhbm5vdCBiZSBzZXQgaWYgdGhlcmVcdTIwMTlzIG5vIGBwYXRoYCB5ZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBkaXJuYW1lXG4gICAqICAgRGlybmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGRpcm5hbWUoZGlybmFtZSkge1xuICAgIGFzc2VydFBhdGgodGhpcy5iYXNlbmFtZSwgJ2Rpcm5hbWUnKVxuICAgIHRoaXMucGF0aCA9IHBhdGguam9pbihkaXJuYW1lIHx8ICcnLCB0aGlzLmJhc2VuYW1lKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZXh0bmFtZSAoaW5jbHVkaW5nIGRvdCkgKGV4YW1wbGU6IGAnLmpzJ2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiAgIEV4dG5hbWUuXG4gICAqL1xuICBnZXQgZXh0bmFtZSgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMucGF0aCA9PT0gJ3N0cmluZycgPyBwYXRoLmV4dG5hbWUodGhpcy5wYXRoKSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZXh0bmFtZSAoaW5jbHVkaW5nIGRvdCkgKGV4YW1wbGU6IGAnLmpzJ2ApLlxuICAgKlxuICAgKiBDYW5ub3QgY29udGFpbiBwYXRoIHNlcGFyYXRvcnMgKGAnLydgIG9uIHVuaXgsIG1hY09TLCBhbmQgYnJvd3NlcnMsIGAnXFwnYFxuICAgKiBvbiB3aW5kb3dzKS5cbiAgICogQ2Fubm90IGJlIHNldCBpZiB0aGVyZVx1MjAxOXMgbm8gYHBhdGhgIHlldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGV4dG5hbWVcbiAgICogICBFeHRuYW1lLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgZXh0bmFtZShleHRuYW1lKSB7XG4gICAgYXNzZXJ0UGFydChleHRuYW1lLCAnZXh0bmFtZScpXG4gICAgYXNzZXJ0UGF0aCh0aGlzLmRpcm5hbWUsICdleHRuYW1lJylcblxuICAgIGlmIChleHRuYW1lKSB7XG4gICAgICBpZiAoZXh0bmFtZS5jb2RlUG9pbnRBdCgwKSAhPT0gNDYgLyogYC5gICovKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYGV4dG5hbWVgIG11c3Qgc3RhcnQgd2l0aCBgLmAnKVxuICAgICAgfVxuXG4gICAgICBpZiAoZXh0bmFtZS5pbmNsdWRlcygnLicsIDEpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYGV4dG5hbWVgIGNhbm5vdCBjb250YWluIG11bHRpcGxlIGRvdHMnKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucGF0aCA9IHBhdGguam9pbih0aGlzLmRpcm5hbWUsIHRoaXMuc3RlbSArIChleHRuYW1lIHx8ICcnKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZ1bGwgcGF0aCAoZXhhbXBsZTogYCd+L2luZGV4Lm1pbi5qcydgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICogICBQYXRoLlxuICAgKi9cbiAgZ2V0IHBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGlzdG9yeVt0aGlzLmhpc3RvcnkubGVuZ3RoIC0gMV1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGZ1bGwgcGF0aCAoZXhhbXBsZTogYCd+L2luZGV4Lm1pbi5qcydgKS5cbiAgICpcbiAgICogQ2Fubm90IGJlIG51bGxpZmllZC5cbiAgICogWW91IGNhbiBzZXQgYSBmaWxlIFVSTCAoYSBgVVJMYCBvYmplY3Qgd2l0aCBhIGBmaWxlOmAgcHJvdG9jb2wpIHdoaWNoIHdpbGxcbiAgICogYmUgdHVybmVkIGludG8gYSBwYXRoIHdpdGggYHVybC5maWxlVVJMVG9QYXRoYC5cbiAgICpcbiAgICogQHBhcmFtIHtVUkwgfCBzdHJpbmd9IHBhdGhcbiAgICogICBQYXRoLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgcGF0aChwYXRoKSB7XG4gICAgaWYgKGlzVXJsKHBhdGgpKSB7XG4gICAgICBwYXRoID0gdXJsVG9QYXRoKHBhdGgpXG4gICAgfVxuXG4gICAgYXNzZXJ0Tm9uRW1wdHkocGF0aCwgJ3BhdGgnKVxuXG4gICAgaWYgKHRoaXMucGF0aCAhPT0gcGF0aCkge1xuICAgICAgdGhpcy5oaXN0b3J5LnB1c2gocGF0aClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzdGVtIChiYXNlbmFtZSB3L28gZXh0bmFtZSkgKGV4YW1wbGU6IGAnaW5kZXgubWluJ2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiAgIFN0ZW0uXG4gICAqL1xuICBnZXQgc3RlbSgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMucGF0aCA9PT0gJ3N0cmluZydcbiAgICAgID8gcGF0aC5iYXNlbmFtZSh0aGlzLnBhdGgsIHRoaXMuZXh0bmFtZSlcbiAgICAgIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBzdGVtIChiYXNlbmFtZSB3L28gZXh0bmFtZSkgKGV4YW1wbGU6IGAnaW5kZXgubWluJ2ApLlxuICAgKlxuICAgKiBDYW5ub3QgY29udGFpbiBwYXRoIHNlcGFyYXRvcnMgKGAnLydgIG9uIHVuaXgsIG1hY09TLCBhbmQgYnJvd3NlcnMsIGAnXFwnYFxuICAgKiBvbiB3aW5kb3dzKS5cbiAgICogQ2Fubm90IGJlIG51bGxpZmllZCAodXNlIGBmaWxlLnBhdGggPSBmaWxlLmRpcm5hbWVgIGluc3RlYWQpLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RlbVxuICAgKiAgIFN0ZW0uXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBzdGVtKHN0ZW0pIHtcbiAgICBhc3NlcnROb25FbXB0eShzdGVtLCAnc3RlbScpXG4gICAgYXNzZXJ0UGFydChzdGVtLCAnc3RlbScpXG4gICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSB8fCAnJywgc3RlbSArICh0aGlzLmV4dG5hbWUgfHwgJycpKVxuICB9XG5cbiAgLy8gTm9ybWFsIHByb3RvdHlwYWwgbWV0aG9kcy5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGZhdGFsIG1lc3NhZ2UgZm9yIGByZWFzb25gIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS5cbiAgICpcbiAgICogVGhlIGBmYXRhbGAgZmllbGQgb2YgdGhlIG1lc3NhZ2UgaXMgc2V0IHRvIGB0cnVlYCAoZXJyb3I7IGZpbGUgbm90IHVzYWJsZSlcbiAgICogYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2UgfCBzdHJpbmd9IGNhdXNlT3JSZWFzb25cbiAgICogICBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgTWVzc2FnZU9wdGlvbnMgfCBQb2ludCB8IFBvc2l0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNPclBhcmVudE9yUGxhY2VdXG4gICAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqICAgUGxhY2UgaW4gY29kZSB3aGVyZSB0aGUgbWVzc2FnZSBvcmlnaW5hdGVzIChleGFtcGxlOlxuICAgKiAgIGAnbXktcGFja2FnZTpteS1ydWxlJ2Agb3IgYCdteS1ydWxlJ2ApLlxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqICAgTmV2ZXIuXG4gICAqIEB0aHJvd3Mge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgZmFpbChjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IHRydWVcblxuICAgIHRocm93IG1lc3NhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW5mbyBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgdW5kZWZpbmVkYCAoaW5mbzsgY2hhbmdlXG4gICAqIGxpa2VseSBub3QgbmVlZGVkKSBhbmQgdGhlIGBmaWxlYCBmaWVsZCBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgZmlsZSBwYXRoLlxuICAgKiBUaGUgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgYG1lc3NhZ2VzYCBmaWVsZCBvbiBgZmlsZWAuXG4gICAqXG4gICAqID4gXHVEODNFXHVERUE2ICoqTm90ZSoqOiBhbHNvIGhhcyBvYnNvbGV0ZSBzaWduYXR1cmVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge01lc3NhZ2VPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2UgfCBzdHJpbmd9IGNhdXNlT3JSZWFzb25cbiAgICogICBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgTWVzc2FnZU9wdGlvbnMgfCBQb2ludCB8IFBvc2l0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNPclBhcmVudE9yUGxhY2VdXG4gICAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqICAgUGxhY2UgaW4gY29kZSB3aGVyZSB0aGUgbWVzc2FnZSBvcmlnaW5hdGVzIChleGFtcGxlOlxuICAgKiAgIGAnbXktcGFja2FnZTpteS1ydWxlJ2Agb3IgYCdteS1ydWxlJ2ApLlxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKiAgIE1lc3NhZ2UuXG4gICAqL1xuICBpbmZvKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbikge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSBvdmVybG9hZHMgYXJlIGZpbmUuXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubWVzc2FnZShjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pXG5cbiAgICBtZXNzYWdlLmZhdGFsID0gdW5kZWZpbmVkXG5cbiAgICByZXR1cm4gbWVzc2FnZVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG1lc3NhZ2UgZm9yIGByZWFzb25gIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS5cbiAgICpcbiAgICogVGhlIGBmYXRhbGAgZmllbGQgb2YgdGhlIG1lc3NhZ2UgaXMgc2V0IHRvIGBmYWxzZWAgKHdhcm5pbmc7IGNoYW5nZSBtYXkgYmVcbiAgICogbmVlZGVkKSBhbmQgdGhlIGBmaWxlYCBmaWVsZCBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgZmlsZSBwYXRoLlxuICAgKiBUaGUgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgYG1lc3NhZ2VzYCBmaWVsZCBvbiBgZmlsZWAuXG4gICAqXG4gICAqID4gXHVEODNFXHVERUE2ICoqTm90ZSoqOiBhbHNvIGhhcyBvYnNvbGV0ZSBzaWduYXR1cmVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge01lc3NhZ2VPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2UgfCBzdHJpbmd9IGNhdXNlT3JSZWFzb25cbiAgICogICBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgTWVzc2FnZU9wdGlvbnMgfCBQb2ludCB8IFBvc2l0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNPclBhcmVudE9yUGxhY2VdXG4gICAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqICAgUGxhY2UgaW4gY29kZSB3aGVyZSB0aGUgbWVzc2FnZSBvcmlnaW5hdGVzIChleGFtcGxlOlxuICAgKiAgIGAnbXktcGFja2FnZTpteS1ydWxlJ2Agb3IgYCdteS1ydWxlJ2ApLlxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKiAgIE1lc3NhZ2UuXG4gICAqL1xuICBtZXNzYWdlKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbikge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVkZpbGVNZXNzYWdlKFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGhlIG92ZXJsb2FkcyBhcmUgZmluZS5cbiAgICAgIGNhdXNlT3JSZWFzb24sXG4gICAgICBvcHRpb25zT3JQYXJlbnRPclBsYWNlLFxuICAgICAgb3JpZ2luXG4gICAgKVxuXG4gICAgaWYgKHRoaXMucGF0aCkge1xuICAgICAgbWVzc2FnZS5uYW1lID0gdGhpcy5wYXRoICsgJzonICsgbWVzc2FnZS5uYW1lXG4gICAgICBtZXNzYWdlLmZpbGUgPSB0aGlzLnBhdGhcbiAgICB9XG5cbiAgICBtZXNzYWdlLmZhdGFsID0gZmFsc2VcblxuICAgIHRoaXMubWVzc2FnZXMucHVzaChtZXNzYWdlKVxuXG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgdGhlIGZpbGUuXG4gICAqXG4gICAqID4gKipOb3RlKio6IHdoaWNoIGVuY29kaW5ncyBhcmUgc3VwcG9ydGVkIGRlcGVuZHMgb24gdGhlIGVuZ2luZS5cbiAgICogPiBGb3IgaW5mbyBvbiBOb2RlLmpzLCBzZWU6XG4gICAqID4gPGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvdXRpbC5odG1sI3doYXR3Zy1zdXBwb3J0ZWQtZW5jb2RpbmdzPi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5jb2Rpbmc9J3V0ZjgnXVxuICAgKiAgIENoYXJhY3RlciBlbmNvZGluZyB0byB1bmRlcnN0YW5kIGB2YWx1ZWAgYXMgd2hlbiBpdFx1MjAxOXMgYSBgVWludDhBcnJheWBcbiAgICogICAoZGVmYXVsdDogYCd1dGYtOCdgKS5cbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICogICBTZXJpYWxpemVkIGZpbGUuXG4gICAqL1xuICB0b1N0cmluZyhlbmNvZGluZykge1xuICAgIGlmICh0aGlzLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAnJ1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlXG4gICAgfVxuXG4gICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcihlbmNvZGluZyB8fCB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKHRoaXMudmFsdWUpXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgdGhhdCBgcGFydGAgaXMgbm90IGEgcGF0aCAoYXMgaW4sIGRvZXMgbm90IGNvbnRhaW4gYHBhdGguc2VwYCkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJ0XG4gKiAgIEZpbGUgcGF0aCBwYXJ0LlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgUGFydCBuYW1lLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGFydChwYXJ0LCBuYW1lKSB7XG4gIGlmIChwYXJ0ICYmIHBhcnQuaW5jbHVkZXMocGF0aC5zZXApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ2AnICsgbmFtZSArICdgIGNhbm5vdCBiZSBhIHBhdGg6IGRpZCBub3QgZXhwZWN0IGAnICsgcGF0aC5zZXAgKyAnYCdcbiAgICApXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgdGhhdCBgcGFydGAgaXMgbm90IGVtcHR5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBwYXJ0XG4gKiAgIFRoaW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgUGFydCBuYW1lLlxuICogQHJldHVybnMge2Fzc2VydHMgcGFydCBpcyBzdHJpbmd9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydE5vbkVtcHR5KHBhcnQsIG5hbWUpIHtcbiAgaWYgKCFwYXJ0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdgJyArIG5hbWUgKyAnYCBjYW5ub3QgYmUgZW1wdHknKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IGBwYXRoYCBleGlzdHMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IHBhdGhcbiAqICAgUGF0aC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIERlcGVuZGVuY3kgbmFtZS5cbiAqIEByZXR1cm5zIHthc3NlcnRzIHBhdGggaXMgc3RyaW5nfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnRQYXRoKHBhdGgsIG5hbWUpIHtcbiAgaWYgKCFwYXRoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTZXR0aW5nIGAnICsgbmFtZSArICdgIHJlcXVpcmVzIGBwYXRoYCB0byBiZSBzZXQgdG9vJylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBgdmFsdWVgIGlzIGFuIGBVaW50OEFycmF5YC5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIHRoaW5nLlxuICogQHJldHVybnMge3ZhbHVlIGlzIFVpbnQ4QXJyYXl9XG4gKiAgIFdoZXRoZXIgYHZhbHVlYCBpcyBhbiBgVWludDhBcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGlzVWludDhBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gQm9vbGVhbihcbiAgICB2YWx1ZSAmJlxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgJ2J5dGVMZW5ndGgnIGluIHZhbHVlICYmXG4gICAgICAnYnl0ZU9mZnNldCcgaW4gdmFsdWVcbiAgKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYgRXJyb3JJbmZvXG4gKiAgIEluZm8gb24gYSBgcGFyc2U1YCBlcnJvci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSByZWFzb25cbiAqICAgUmVhc29uIG9mIGVycm9yLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGRlc2NyaXB0aW9uXG4gKiAgIE1vcmUgaW5mbyBvbiBlcnJvci5cbiAqIEBwcm9wZXJ0eSB7ZmFsc2V9IFt1cmxdXG4gKiAgIFR1cm4gb2ZmIGlmIHRoaXMgaXMgbm90IGRvY3VtZW50ZWQgaW4gdGhlIGh0bWw1IHNwZWMgKG9wdGlvbmFsKS5cbiAqL1xuXG5leHBvcnQgY29uc3QgZXJyb3JzID0ge1xuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJhbmRvbmVkSGVhZEVsZW1lbnRDaGlsZDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbWV0YWRhdGEgZWxlbWVudCBhZnRlciBoZWFkJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGVsZW1lbnQgYWZ0ZXIgaGVhZC4gRXhwZWN0ZWQgdGhlIGVsZW1lbnQgYmVmb3JlIGA8L2hlYWQ+YCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBhYnJ1cHRseSBjbG9zZWQgZW1wdHkgY29tbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGA+YCBvciBgLT5gLiBFeHBlY3RlZCBgLS0+YCB0byBjbG9zZSBjb21tZW50cydcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBhYnJ1cHRseSBjbG9zZWQgcHVibGljIGlkZW50aWZpZXInLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYD5gLiBFeHBlY3RlZCBhIGNsb3NpbmcgYFwiYCBvciBgXFwnYCBhZnRlciB0aGUgcHVibGljIGlkZW50aWZpZXInXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnJ1cHREb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIHN5c3RlbSBpZGVudGlmaWVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGA+YC4gRXhwZWN0ZWQgYSBjbG9zaW5nIGBcImAgb3IgYFxcJ2AgYWZ0ZXIgdGhlIGlkZW50aWZpZXIgaWRlbnRpZmllcidcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFic2VuY2VPZkRpZ2l0c0luTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbm9uLWRpZ2l0IGF0IHN0YXJ0IG9mIG51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBgWzAtOV1gIGZvciBkZWNpbWFsIHJlZmVyZW5jZXMgb3IgYFswLTlhLWZBLUZdYCBmb3IgaGV4YWRlY2ltYWwgcmVmZXJlbmNlcydcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNkYXRhSW5IdG1sQ29udGVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgQ0RBVEEgc2VjdGlvbiBpbiBIVE1MJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGA8IVtDREFUQVtgIGluIEhUTUwuIFJlbW92ZSBpdCwgdXNlIGEgY29tbWVudCwgb3IgZW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgY2hhcmFjdGVyUmVmZXJlbmNlT3V0c2lkZVVuaWNvZGVSYW5nZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdG9vIGJpZyBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWRseSBoaWdoIGNoYXJhY3RlciByZWZlcmVuY2UuIEV4cGVjdGVkIGNoYXJhY3RlciByZWZlcmVuY2VzIHRvIGJlIGF0IG1vc3QgaGV4YWRlY2ltYWwgMTBmZmZmIChvciBkZWNpbWFsIDExMTQxMTEpJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgY2xvc2luZ09mRWxlbWVudFdpdGhPcGVuQ2hpbGRFbGVtZW50czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgY2xvc2luZyB0YWcgd2l0aCBvcGVuIGNoaWxkIGVsZW1lbnRzJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkbHkgY2xvc2luZyB0YWcuIEV4cGVjdGVkIG90aGVyIHRhZ3MgdG8gYmUgY2xvc2VkIGZpcnN0JyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgY29udHJvbCBjaGFyYWN0ZXInLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29udHJvbCBjaGFyYWN0ZXIgYCV4YC4gRXhwZWN0ZWQgYSBub24tY29udHJvbCBjb2RlIHBvaW50LCAweDAwLCBvciBBU0NJSSB3aGl0ZXNwYWNlJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgY29udHJvbENoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgY29udHJvbCBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkbHkgY29udHJvbCBjaGFyYWN0ZXIgaW4gcmVmZXJlbmNlLiBFeHBlY3RlZCBhIG5vbi1jb250cm9sIGNvZGUgcG9pbnQsIDB4MDAsIG9yIEFTQ0lJIHdoaXRlc3BhY2UnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBkaXNhbGxvd2VkQ29udGVudEluTm9zY3JpcHRJbkhlYWQ6IHtcbiAgICByZWFzb246ICdEaXNhbGxvd2VkIGNvbnRlbnQgaW5zaWRlIGA8bm9zY3JpcHQ+YCBpbiBgPGhlYWQ+YCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCB0ZXh0IGNoYXJhY3RlciBgJWNgLiBPbmx5IHVzZSB0ZXh0IGluIGA8bm9zY3JpcHQ+YHMgaW4gYDxib2R5PmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGR1cGxpY2F0ZUF0dHJpYnV0ZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZHVwbGljYXRlIGF0dHJpYnV0ZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGRvdWJsZSBhdHRyaWJ1dGUuIEV4cGVjdGVkIGF0dHJpYnV0ZXMgdG8gb2NjdXIgb25seSBvbmNlJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW5kVGFnV2l0aEF0dHJpYnV0ZXM6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGF0dHJpYnV0ZSBvbiBjbG9zaW5nIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGF0dHJpYnV0ZS4gRXhwZWN0ZWQgYD5gIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlbmRUYWdXaXRoVHJhaWxpbmdTb2xpZHVzOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBzbGFzaCBhdCBlbmQgb2YgY2xvc2luZyB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWMtMWAuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHVub3BlbmVkIGVuZCB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgdGFnLiBFeHBlY3RlZCBubyBlbmQgdGFnIG9yIGFub3RoZXIgZW5kIHRhZycsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mQmVmb3JlVGFnTmFtZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGFnIG5hbWUgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkluQ2RhdGE6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIENEQVRBJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGBdXT5gIHRvIGNsb3NlIHRoZSBDREFUQSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkluQ29tbWVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gY29tbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBgLS0+YCB0byBjbG9zZSB0aGUgY29tbWVudCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkluRG9jdHlwZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYSB2YWxpZCBkb2N0eXBlIChzdWNoIGFzIGA8IWRvY3R5cGUgaHRtbD5gKSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkluRWxlbWVudFRoYXRDYW5Db250YWluT25seVRleHQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGVsZW1lbnQgdGhhdCBjYW4gb25seSBjb250YWluIHRleHQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGV4dCBvciBhIGNsb3NpbmcgdGFnJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGNvbW1lbnQgaW5zaWRlIHNjcmlwdCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBgLS0+YCB0byBjbG9zZSB0aGUgY29tbWVudCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkluVGFnOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYD5gIHRvIGNsb3NlIHRoZSB0YWcnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBpbmNvcnJlY3RseUNsb3NlZENvbW1lbnQ6IHtcbiAgICByZWFzb246ICdJbmNvcnJlY3RseSBjbG9zZWQgY29tbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlYy0xYC4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBpbmNvcnJlY3RseU9wZW5lZENvbW1lbnQ6IHtcbiAgICByZWFzb246ICdJbmNvcnJlY3RseSBvcGVuZWQgY29tbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGA8IS0tYCB0byBvcGVuIHRoZSBjb21tZW50J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW52YWxpZENoYXJhY3RlclNlcXVlbmNlQWZ0ZXJEb2N0eXBlTmFtZToge1xuICAgIHJlYXNvbjogJ0ludmFsaWQgc2VxdWVuY2UgYWZ0ZXIgZG9jdHlwZSBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgc2VxdWVuY2UgYXQgYCVjYC4gRXhwZWN0ZWQgYHB1YmxpY2Agb3IgYHN5c3RlbWAnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBpbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWU6IHtcbiAgICByZWFzb246ICdJbnZhbGlkIGZpcnN0IGNoYXJhY3RlciBpbiB0YWcgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzcGxhY2VkRG9jdHlwZToge1xuICAgIHJlYXNvbjogJ01pc3BsYWNlZCBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZG9jdHlwZS4gRXhwZWN0ZWQgZG9jdHlwZSBiZWZvcmUgaGVhZCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudDoge1xuICAgIHJlYXNvbjogJ01pc3BsYWNlZCBgPGhlYWQ+YCBzdGFydCB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgc3RhcnQgdGFnIGA8aGVhZD5gLiBFeHBlY3RlZCBgPGhlYWQ+YCBkaXJlY3RseSBhZnRlciBkb2N0eXBlJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nQXR0cmlidXRlVmFsdWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIGF0dHJpYnV0ZSB2YWx1ZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWMtMWAuIEV4cGVjdGVkIGFuIGF0dHJpYnV0ZSB2YWx1ZSBvciBubyBgJWMtMWAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdEb2N0eXBlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBkb2N0eXBlIGJlZm9yZSBvdGhlciBjb250ZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ0V4cGVjdGVkIGEgYDwhZG9jdHlwZSBodG1sPmAgYmVmb3JlIGFueXRoaW5nIGVsc2UnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdEb2N0eXBlTmFtZToge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgZG9jdHlwZSBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZG9jdHlwZSBlbmQgYXQgYCVjYC4gRXhwZWN0ZWQgYGh0bWxgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHB1YmxpYyBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBpZGVudGlmaWVyIGZvciBgcHVibGljYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0RvY3R5cGVTeXN0ZW1JZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBzeXN0ZW0gaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGlkZW50aWZpZXIgZm9yIGBzeXN0ZW1gIGluc3RlYWQgKHN1Z2dlc3RlZDogYFwiYWJvdXQ6bGVnYWN5LWNvbXBhdFwiYCknXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRW5kVGFnTmFtZToge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgbmFtZSBpbiBlbmQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYW4gQVNDSUkgbGV0dGVyIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgcXVvdGUgYmVmb3JlIHB1YmxpYyBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBgXCJgIG9yIGBcXCdgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgcXVvdGUgYmVmb3JlIHN5c3RlbSBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBgXCJgIG9yIGBcXCdgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHNlbWljb2xvbiBhZnRlciBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYDtgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmQ6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgcHVibGljIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZDoge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgd2hpdGVzcGFjZSBhZnRlciBzeXN0ZW0gaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VCZWZvcmVEb2N0eXBlTmFtZToge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgd2hpdGVzcGFjZSBiZWZvcmUgZG9jdHlwZSBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuQXR0cmlidXRlczoge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgd2hpdGVzcGFjZSBiZXR3ZWVuIGF0dHJpYnV0ZXMnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnM6IHtcbiAgICByZWFzb246XG4gICAgICAnTWlzc2luZyB3aGl0ZXNwYWNlIGJldHdlZW4gcHVibGljIGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5lc3RlZENvbW1lbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG5lc3RlZCBjb21tZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYDwhLS1gLiBFeHBlY3RlZCBgLS0+YCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5lc3RlZE5vc2NyaXB0SW5IZWFkOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBuZXN0ZWQgYDxub3NjcmlwdD5gIGluIGA8aGVhZD5gJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGA8bm9zY3JpcHQ+YC4gRXhwZWN0ZWQgYSBjbG9zaW5nIHRhZyBvciBhIG1ldGEgZWxlbWVudCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbm9uQ29uZm9ybWluZ0RvY3R5cGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG5vbi1jb25mb3JtaW5nIGRvY3R5cGUgZGVjbGFyYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ0V4cGVjdGVkIGA8IWRvY3R5cGUgaHRtbD5gIG9yIGA8IWRvY3R5cGUgaHRtbCBzeXN0ZW0gXCJhYm91dDpsZWdhY3ktY29tcGF0XCI+YCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbm9uVm9pZEh0bWxFbGVtZW50U3RhcnRUYWdXaXRoVHJhaWxpbmdTb2xpZHVzOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCB0cmFpbGluZyBzbGFzaCBvbiBzdGFydCB0YWcgb2Ygbm9uLXZvaWQgZWxlbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAvYC4gRXhwZWN0ZWQgYD5gIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBub25jaGFyYWN0ZXJDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246XG4gICAgICAnVW5leHBlY3RlZCBub25jaGFyYWN0ZXIgY29kZSBwb2ludCByZWZlcmVuY2VkIGJ5IGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBjb2RlIHBvaW50LiBEbyBub3QgdXNlIG5vbmNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vbmNoYXJhY3RlckluSW5wdXRTdHJlYW06IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG5vbmNoYXJhY3RlciBjaGFyYWN0ZXInLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBjb2RlIHBvaW50IGAleGAuIERvIG5vdCB1c2Ugbm9uY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbnVsbENoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgTlVMTCBjaGFyYWN0ZXIgcmVmZXJlbmNlZCBieSBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBOVUxMIGNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG9wZW5FbGVtZW50c0xlZnRBZnRlckVvZjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgY2xvc2luZyB0YWcgaW5zdGVhZCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgc3Vycm9nYXRlQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBzdXJyb2dhdGUgY2hhcmFjdGVyIHJlZmVyZW5jZWQgYnkgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBjb2RlIHBvaW50LiBEbyBub3QgdXNlIGxvbmUgc3Vycm9nYXRlIGNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHN1cnJvZ2F0ZUluSW5wdXRTdHJlYW06IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXInLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIGxvbmUgc3Vycm9nYXRlIGNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRDaGFyYWN0ZXJBZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnSW52YWxpZCBjaGFyYWN0ZXIgYWZ0ZXIgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGNoYXJhY3RlciBhdCBgJWNgLiBFeHBlY3RlZCBgPmAnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkQ2hhcmFjdGVySW5BdHRyaWJ1dGVOYW1lOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBjaGFyYWN0ZXIgaW4gYXR0cmlidXRlIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgd2hpdGVzcGFjZSwgYC9gLCBgPmAsIGA9YCwgb3IgcHJvYmFibHkgYW4gQVNDSUkgbGV0dGVyJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZENoYXJhY3RlckluVW5xdW90ZWRBdHRyaWJ1dGVWYWx1ZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyIGluIHVucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIFF1b3RlIHRoZSBhdHRyaWJ1dGUgdmFsdWUgdG8gaW5jbHVkZSBpdCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRFcXVhbHNTaWduQmVmb3JlQXR0cmlidXRlTmFtZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZXF1YWxzIHNpZ24gYmVmb3JlIGF0dHJpYnV0ZSBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gQWRkIGFuIGF0dHJpYnV0ZSBuYW1lIGJlZm9yZSBpdCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBOVUxMIGNoYXJhY3RlcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBjb2RlIHBvaW50IGAleGAuIERvIG5vdCB1c2UgTlVMTCBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkUXVlc3Rpb25NYXJrSW5zdGVhZE9mVGFnTmFtZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgcXVlc3Rpb24gbWFyayBpbnN0ZWFkIG9mIHRhZyBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYW4gQVNDSUkgbGV0dGVyIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkU29saWR1c0luVGFnOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBzbGFzaCBpbiB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBpdCBmb2xsb3dlZCBieSBgPmAgb3IgaW4gYSBxdW90ZWQgYXR0cmlidXRlIHZhbHVlJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCB1bmtub3duIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyIHJlZmVyZW5jZS4gRXhwZWN0ZWQga25vd24gbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMnXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290fSBSb290XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5QYXJzZXJFcnJvcn0gUGFyc2VyRXJyb3JcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlJykuVmFsdWV9IFZhbHVlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7a2V5b2YgZXJyb3JzfSBFcnJvckNvZGVcbiAqICAgS25vd24gbmFtZXMgb2YgcGFyc2UgZXJyb3JzLlxuICpcbiAqIEB0eXBlZGVmIHtQYXJ0aWFsPFJlY29yZDxFcnJvckNvZGUsIEVycm9yU2V2ZXJpdHkgfCBudWxsIHwgdW5kZWZpbmVkPj59IEVycm9yT3B0aW9uc1xuICogICBPcHRpb25zIHRoYXQgZGVmaW5lIHRoZSBzZXZlcml0eSBvZiBlcnJvcnMuXG4gKlxuICogQHR5cGVkZWYge2Jvb2xlYW4gfCAwIHwgMSB8IDJ9IEVycm9yU2V2ZXJpdHlcbiAqICAgRXJyb3Igc2V2ZXJpdHk6XG4gKlxuICogICAqIGAwYCBvciBgZmFsc2VgXG4gKiAgICAgXHUyMDE0IHR1cm4gdGhlIHBhcnNlIGVycm9yIG9mZlxuICogICAqIGAxYCBvciBgdHJ1ZWBcbiAqICAgICBcdTIwMTQgdHVybiB0aGUgcGFyc2UgZXJyb3IgaW50byBhIHdhcm5pbmdcbiAqICAgKiBgMmBcbiAqICAgICBcdTIwMTQgdHVybiB0aGUgcGFyc2UgZXJyb3IgaW50byBhbiBhY3R1YWwgZXJyb3I6IHByb2Nlc3Npbmcgc3RvcHMuXG4gKlxuICogQHR5cGVkZWYgRXh0cmFPcHRpb25zXG4gKiAgIE9wdGlvbnMgdGhhdCBkZWZpbmUgaG93IHRvIHBhcnNlIEhUTUwuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbZnJhZ21lbnQ9ZmFsc2VdXG4gKiAgIFNwZWNpZnkgd2hldGhlciB0byBwYXJzZSBhIGZyYWdtZW50LCBpbnN0ZWFkIG9mIGEgY29tcGxldGUgZG9jdW1lbnRcbiAqICAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgSW4gZG9jdW1lbnQgbW9kZSwgdW5vcGVuZWQgYGh0bWxgLCBgaGVhZGAsIGFuZCBgYm9keWAgZWxlbWVudHMgYXJlIG9wZW5lZFxuICogICBpbiBqdXN0IHRoZSByaWdodCBwbGFjZXMuXG4gKiBAcHJvcGVydHkge09uRXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkfSBbb25lcnJvcl1cbiAqICAgQ2FsbCBgb25lcnJvcmAgd2l0aCBwYXJzZSBlcnJvcnMgd2hpbGUgcGFyc2luZyAob3B0aW9uYWwpLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHBhcnNlIGVycm9ycyBhcmUgY3VycmVudGx5IGJlaW5nIGFkZGVkIHRvIEhUTUwuXG4gKiAgID4gTm90IGFsbCBlcnJvcnMgZW1pdHRlZCBieSBwYXJzZTUgKG9yIHVzKSBhcmUgc3BlY2NlZCB5ZXQuXG4gKiAgID4gU29tZSBkb2N1bWVudGF0aW9uIG1heSBzdGlsbCBiZSBtaXNzaW5nLlxuICpcbiAqICAgU3BlY2lmaWMgcnVsZXMgY2FuIGJlIHR1cm5lZCBvZmYgYnkgc2V0dGluZyB0aGVtIHRvIGBmYWxzZWAgKG9yIGAwYCkuXG4gKiAgIFRoZSBkZWZhdWx0LCB3aGVuIGBlbWl0UGFyc2VFcnJvcnM6IHRydWVgLCBpcyBgdHJ1ZWAgKG9yIGAxYCksIGFuZCBtZWFuc1xuICogICB0aGF0IHJ1bGVzIGVtaXQgYXMgd2FybmluZ3MuXG4gKiAgIFJ1bGVzIGNhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgd2l0aCBgMmAsIHRvIHR1cm4gdGhlbSBpbnRvIGZhdGFsIGVycm9ycy5cbiAqXG4gKiBAdHlwZWRlZiB7T21pdDxpbXBvcnQoJ2hhc3QtdXRpbC1mcm9tLXBhcnNlNScpLk9wdGlvbnMsICdmaWxlJz59IEZyb21QYXJzZTVPcHRpb25zXG4gKiAgIE9wdGlvbnMgdGhhdCBjYW4gYmUgcGFzc2VkIHRocm91Z2ggdG8gYGhhc3QtdXRpbC1mcm9tLXBhcnNlNWAuXG4gKlxuICogQGNhbGxiYWNrIE9uRXJyb3JcbiAqICAgSGFuZGxlIHBhcnNlIGVycm9ycy5cbiAqIEBwYXJhbSB7VkZpbGVNZXNzYWdlfSBlcnJvclxuICogICBNZXNzYWdlLlxuICogQHJldHVybnMge3VuZGVmaW5lZCB8IHZvaWR9XG4gKiAgIE5vdGhpbmcuXG4gKlxuICogICBOb3RlOiBgdm9pZGAgaW5jbHVkZWQgdW50aWwgVFMgaW5mZXJzIGB1bmRlZmluZWRgIG5pY2VseS5cbiAqXG4gKiBAdHlwZWRlZiB7RnJvbVBhcnNlNU9wdGlvbnMgJiBFcnJvck9wdGlvbnMgJiBFeHRyYU9wdGlvbnN9IE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqL1xuXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHtmcm9tUGFyc2U1fSBmcm9tICdoYXN0LXV0aWwtZnJvbS1wYXJzZTUnXG5pbXBvcnQge3BhcnNlLCBwYXJzZUZyYWdtZW50fSBmcm9tICdwYXJzZTUnXG5pbXBvcnQge1ZGaWxlfSBmcm9tICd2ZmlsZSdcbmltcG9ydCB7VkZpbGVNZXNzYWdlfSBmcm9tICd2ZmlsZS1tZXNzYWdlJ1xuaW1wb3J0IHtlcnJvcnN9IGZyb20gJy4vZXJyb3JzLmpzJ1xuXG5jb25zdCBiYXNlID0gJ2h0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwYXJzZS1lcnJvci0nXG5cbmNvbnN0IGRhc2hUb0NhbWVsUmUgPSAvLVthLXpdL2dcbmNvbnN0IGZvcm1hdENSZSA9IC8lYyg/OihbLStdKShcXGQrKSk/L2dcbmNvbnN0IGZvcm1hdFhSZSA9IC8leC9nXG5cbmNvbnN0IGZhdGFsaXRpZXMgPSB7MjogdHJ1ZSwgMTogZmFsc2UsIDA6IG51bGx9XG5cbi8qKiBAdHlwZSB7UmVhZG9ubHk8T3B0aW9ucz59ICovXG5jb25zdCBlbXB0eU9wdGlvbnMgPSB7fVxuXG4vKipcbiAqIFR1cm4gc2VyaWFsaXplZCBIVE1MIGludG8gYSBoYXN0IHRyZWUuXG4gKlxuICogQHBhcmFtIHtWRmlsZSB8IFZhbHVlfSB2YWx1ZVxuICogICBTZXJpYWxpemVkIEhUTUwgdG8gcGFyc2UuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtSb290fVxuICogICBUcmVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbUh0bWwodmFsdWUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IGVtcHR5T3B0aW9uc1xuICBjb25zdCBvbmVycm9yID0gc2V0dGluZ3Mub25lcnJvclxuICBjb25zdCBmaWxlID0gdmFsdWUgaW5zdGFuY2VvZiBWRmlsZSA/IHZhbHVlIDogbmV3IFZGaWxlKHZhbHVlKVxuICBjb25zdCBmbiA9IHNldHRpbmdzLmZyYWdtZW50ID8gcGFyc2VGcmFnbWVudCA6IHBhcnNlXG4gIGNvbnN0IGRvYyA9IFN0cmluZyhmaWxlKVxuICBjb25zdCBwNWRvYyA9IGZuKGRvYywge1xuICAgIHNvdXJjZUNvZGVMb2NhdGlvbkluZm86IHRydWUsXG4gICAgLy8gTm90ZSBgcGFyc2U1YCB0eXBlcyBjdXJyZW50bHkgZG8gbm90IGFsbG93IGB1bmRlZmluZWRgLlxuICAgIG9uUGFyc2VFcnJvcjogc2V0dGluZ3Mub25lcnJvciA/IGludGVybmFsT25lcnJvciA6IG51bGwsXG4gICAgc2NyaXB0aW5nRW5hYmxlZDogZmFsc2VcbiAgfSlcblxuICAvLyBgcGFyc2U1YCByZXR1cm5zIGRvY3VtZW50IHdoaWNoIGFyZSBhbHdheXMgbWFwcGVkIHRvIHJvb3RzLlxuICByZXR1cm4gLyoqIEB0eXBlIHtSb290fSAqLyAoXG4gICAgZnJvbVBhcnNlNShwNWRvYywge1xuICAgICAgZmlsZSxcbiAgICAgIHNwYWNlOiBzZXR0aW5ncy5zcGFjZSxcbiAgICAgIHZlcmJvc2U6IHNldHRpbmdzLnZlcmJvc2VcbiAgICB9KVxuICApXG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhIHBhcnNlIGVycm9yLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnNlckVycm9yfSBlcnJvclxuICAgKiAgIFBhcnNlNSBlcnJvci5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gaW50ZXJuYWxPbmVycm9yKGVycm9yKSB7XG4gICAgY29uc3QgY29kZSA9IGVycm9yLmNvZGVcbiAgICBjb25zdCBuYW1lID0gY2FtZWxjYXNlKGNvZGUpXG4gICAgY29uc3Qgc2V0dGluZyA9IHNldHRpbmdzW25hbWVdXG4gICAgY29uc3QgY29uZmlnID0gc2V0dGluZyA9PT0gbnVsbCB8fCBzZXR0aW5nID09PSB1bmRlZmluZWQgPyB0cnVlIDogc2V0dGluZ1xuICAgIGNvbnN0IGxldmVsID0gdHlwZW9mIGNvbmZpZyA9PT0gJ251bWJlcicgPyBjb25maWcgOiBjb25maWcgPyAxIDogMFxuXG4gICAgaWYgKGxldmVsKSB7XG4gICAgICBjb25zdCBpbmZvID0gZXJyb3JzW25hbWVdXG4gICAgICBhc3NlcnQoaW5mbywgJ2V4cGVjdGVkIGtub3duIGVycm9yIGZyb20gYHBhcnNlNWAnKVxuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFZGaWxlTWVzc2FnZShmb3JtYXQoaW5mby5yZWFzb24pLCB7XG4gICAgICAgIHBsYWNlOiB7XG4gICAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICAgIGxpbmU6IGVycm9yLnN0YXJ0TGluZSxcbiAgICAgICAgICAgIGNvbHVtbjogZXJyb3Iuc3RhcnRDb2wsXG4gICAgICAgICAgICBvZmZzZXQ6IGVycm9yLnN0YXJ0T2Zmc2V0XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmQ6IHtcbiAgICAgICAgICAgIGxpbmU6IGVycm9yLmVuZExpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGVycm9yLmVuZENvbCxcbiAgICAgICAgICAgIG9mZnNldDogZXJyb3IuZW5kT2Zmc2V0XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBydWxlSWQ6IGNvZGUsXG4gICAgICAgIHNvdXJjZTogJ2hhc3QtdXRpbC1mcm9tLWh0bWwnXG4gICAgICB9KVxuXG4gICAgICBpZiAoZmlsZS5wYXRoKSB7XG4gICAgICAgIG1lc3NhZ2UuZmlsZSA9IGZpbGUucGF0aFxuICAgICAgICBtZXNzYWdlLm5hbWUgPSBmaWxlLnBhdGggKyAnOicgKyBtZXNzYWdlLm5hbWVcbiAgICAgIH1cblxuICAgICAgbWVzc2FnZS5mYXRhbCA9IGZhdGFsaXRpZXNbbGV2ZWxdXG4gICAgICBtZXNzYWdlLm5vdGUgPSBmb3JtYXQoaW5mby5kZXNjcmlwdGlvbilcbiAgICAgIG1lc3NhZ2UudXJsID0gaW5mby51cmwgPT09IGZhbHNlID8gdW5kZWZpbmVkIDogYmFzZSArIGNvZGVcblxuICAgICAgYXNzZXJ0KG9uZXJyb3IsICdgaW50ZXJuYWxPbmVycm9yYCBpcyBub3QgcGFzc2VkIGlmIGBvbmVycm9yYCBpcyBub3Qgc2V0JylcbiAgICAgIG9uZXJyb3IobWVzc2FnZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXQgYSBodW1hbiByZWFkYWJsZSBzdHJpbmcgYWJvdXQgYW4gZXJyb3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICAgKiAgIFZhbHVlIHRvIGZvcm1hdC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqICAgRm9ybWF0dGVkLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvcm1hdCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoZm9ybWF0Q1JlLCBmb3JtYXRDKS5yZXBsYWNlKGZvcm1hdFhSZSwgZm9ybWF0WClcblxuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQgdGhlIGNoYXJhY3Rlci5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gX1xuICAgICAgICogICBNYXRjaC5cbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSAkMVxuICAgICAgICogICBTaWduIChgLWAgb3IgYCtgLCBvcHRpb25hbCkuXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gJDJcbiAgICAgICAqICAgT2Zmc2V0LlxuICAgICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgICAqICAgRm9ybWF0dGVkLlxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBmb3JtYXRDKF8sICQxLCAkMikge1xuICAgICAgICBjb25zdCBvZmZzZXQgPVxuICAgICAgICAgICgkMiA/IE51bWJlci5wYXJzZUludCgkMiwgMTApIDogMCkgKiAoJDEgPT09ICctJyA/IC0xIDogMSlcbiAgICAgICAgY29uc3QgY2hhciA9IGRvYy5jaGFyQXQoZXJyb3Iuc3RhcnRPZmZzZXQgKyBvZmZzZXQpXG4gICAgICAgIHJldHVybiB2aXN1YWxpemVDaGFyYWN0ZXIoY2hhcilcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQgdGhlIGNoYXJhY3RlciBjb2RlLlxuICAgICAgICpcbiAgICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICAgKiAgIEZvcm1hdHRlZC5cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gZm9ybWF0WCgpIHtcbiAgICAgICAgcmV0dXJuIHZpc3VhbGl6ZUNoYXJhY3RlckNvZGUoZG9jLmNoYXJDb2RlQXQoZXJyb3Iuc3RhcnRPZmZzZXQpKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBFcnJvciBjb2RlIGluIGRhc2ggY2FzZS5cbiAqIEByZXR1cm5zIHtFcnJvckNvZGV9XG4gKiAgIEVycm9yIGNvZGUgaW4gY2FtZWxjYXNlLlxuICovXG5mdW5jdGlvbiBjYW1lbGNhc2UodmFsdWUpIHtcbiAgLy8gVGhpcyBzaG91bGQgbWF0Y2ggYW4gZXJyb3IgY29kZS5cbiAgcmV0dXJuIC8qKiBAdHlwZSB7RXJyb3JDb2RlfSAqLyAodmFsdWUucmVwbGFjZShkYXNoVG9DYW1lbFJlLCBkYXNoVG9DYW1lbCkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiAgIE1hdGNoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgQ2FtZWxjYXNlZC5cbiAqL1xuZnVuY3Rpb24gZGFzaFRvQ2FtZWwoJDApIHtcbiAgcmV0dXJuICQwLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGNoYXJcbiAqICAgQ2hhcmFjdGVyLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRm9ybWF0dGVkLlxuICovXG5mdW5jdGlvbiB2aXN1YWxpemVDaGFyYWN0ZXIoY2hhcikge1xuICByZXR1cm4gY2hhciA9PT0gJ2AnID8gJ2AgYCBgJyA6IGNoYXJcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gY2hhckNvZGVcbiAqICAgQ2hhcmFjdGVyIGNvZGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGb3JtYXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHZpc3VhbGl6ZUNoYXJhY3RlckNvZGUoY2hhckNvZGUpIHtcbiAgcmV0dXJuICcweCcgKyBjaGFyQ29kZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKVxufVxuIiwgIi8qKlxuICogTGlzdCBvZiBIVE1MIHZvaWQgdGFnIG5hbWVzLlxuICpcbiAqIEB0eXBlIHtBcnJheTxzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgaHRtbFZvaWRFbGVtZW50cyA9IFtcbiAgJ2FyZWEnLFxuICAnYmFzZScsXG4gICdiYXNlZm9udCcsXG4gICdiZ3NvdW5kJyxcbiAgJ2JyJyxcbiAgJ2NvbCcsXG4gICdjb21tYW5kJyxcbiAgJ2VtYmVkJyxcbiAgJ2ZyYW1lJyxcbiAgJ2hyJyxcbiAgJ2ltYWdlJyxcbiAgJ2ltZycsXG4gICdpbnB1dCcsXG4gICdrZXlnZW4nLFxuICAnbGluaycsXG4gICdtZXRhJyxcbiAgJ3BhcmFtJyxcbiAgJ3NvdXJjZScsXG4gICd0cmFjaycsXG4gICd3YnInXG5dXG4iLCAiLyoqXG4gKiBAY2FsbGJhY2sgSGFuZGxlclxuICogICBIYW5kbGUgYSB2YWx1ZSwgd2l0aCBhIGNlcnRhaW4gSUQgZmllbGQgc2V0IHRvIGEgY2VydGFpbiB2YWx1ZS5cbiAqICAgVGhlIElEIGZpZWxkIGlzIHBhc3NlZCB0byBgendpdGNoYCwgYW5kIGl0XHUyMDE5cyB2YWx1ZSBpcyB0aGlzIGZ1bmN0aW9uXHUyMDE5c1xuICogICBwbGFjZSBvbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gKiBAcGFyYW0gey4uLmFueX0gcGFyYW1ldGVyc1xuICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAqICAgVGhlIGZpcnN0IHdpbGwgYmUgYW4gb2JqZWN0IHdpdGggYSBjZXJ0YWluIElEIGZpZWxkIHNldCB0byBhIGNlcnRhaW4gdmFsdWUuXG4gKiBAcmV0dXJucyB7YW55fVxuICogICBBbnl0aGluZyFcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBVbmtub3duSGFuZGxlclxuICogICBIYW5kbGUgdmFsdWVzIHRoYXQgZG8gaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQsIGJ1dCBpdFx1MjAxOXMgc2V0IHRvIGEgdmFsdWVcbiAqICAgdGhhdCBpcyBub3QgbGlzdGVkIGluIHRoZSBgaGFuZGxlcnNgIHJlY29yZC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgQW4gb2JqZWN0IHdpdGggYSBjZXJ0YWluIElEIGZpZWxkIHNldCB0byBhbiB1bmtub3duIHZhbHVlLlxuICogQHBhcmFtIHsuLi5hbnl9IHJlc3RcbiAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gKiBAcmV0dXJucyB7YW55fVxuICogICBBbnl0aGluZyFcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBJbnZhbGlkSGFuZGxlclxuICogICBIYW5kbGUgdmFsdWVzIHRoYXQgZG8gbm90IGhhdmUgYSBjZXJ0YWluIElEIGZpZWxkLlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICBBbnkgdW5rbm93biB2YWx1ZS5cbiAqIEBwYXJhbSB7Li4uYW55fSByZXN0XG4gKiAgIEFyYml0cmFyeSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgendpdGNoLlxuICogQHJldHVybnMge3ZvaWR8bnVsbHx1bmRlZmluZWR8bmV2ZXJ9XG4gKiAgIFRoaXMgc2hvdWxkIGNyYXNoIG9yIHJldHVybiBub3RoaW5nLlxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtJbnZhbGlkSGFuZGxlcn0gW0ludmFsaWQ9SW52YWxpZEhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1Vua25vd25IYW5kbGVyfSBbVW5rbm93bj1Vbmtub3duSGFuZGxlcl1cbiAqIEB0ZW1wbGF0ZSB7UmVjb3JkPHN0cmluZywgSGFuZGxlcj59IFtIYW5kbGVycz1SZWNvcmQ8c3RyaW5nLCBIYW5kbGVyPl1cbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbiAocmVxdWlyZWQpLlxuICogQHByb3BlcnR5IHtJbnZhbGlkfSBbaW52YWxpZF1cbiAqICAgSGFuZGxlciB0byB1c2UgZm9yIGludmFsaWQgdmFsdWVzLlxuICogQHByb3BlcnR5IHtVbmtub3dufSBbdW5rbm93bl1cbiAqICAgSGFuZGxlciB0byB1c2UgZm9yIHVua25vd24gdmFsdWVzLlxuICogQHByb3BlcnR5IHtIYW5kbGVyc30gW2hhbmRsZXJzXVxuICogICBIYW5kbGVycyB0byB1c2UuXG4gKi9cblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBIYW5kbGUgdmFsdWVzIGJhc2VkIG9uIGEgZmllbGQuXG4gKlxuICogQHRlbXBsYXRlIHtJbnZhbGlkSGFuZGxlcn0gW0ludmFsaWQ9SW52YWxpZEhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1Vua25vd25IYW5kbGVyfSBbVW5rbm93bj1Vbmtub3duSGFuZGxlcl1cbiAqIEB0ZW1wbGF0ZSB7UmVjb3JkPHN0cmluZywgSGFuZGxlcj59IFtIYW5kbGVycz1SZWNvcmQ8c3RyaW5nLCBIYW5kbGVyPl1cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqICAgRmllbGQgdG8gc3dpdGNoIG9uLlxuICogQHBhcmFtIHtPcHRpb25zPEludmFsaWQsIFVua25vd24sIEhhbmRsZXJzPn0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKHJlcXVpcmVkKS5cbiAqIEByZXR1cm5zIHt7dW5rbm93bjogVW5rbm93biwgaW52YWxpZDogSW52YWxpZCwgaGFuZGxlcnM6IEhhbmRsZXJzLCAoLi4ucGFyYW1ldGVyczogUGFyYW1ldGVyczxIYW5kbGVyc1trZXlvZiBIYW5kbGVyc10+KTogUmV0dXJuVHlwZTxIYW5kbGVyc1trZXlvZiBIYW5kbGVyc10+LCAoLi4ucGFyYW1ldGVyczogUGFyYW1ldGVyczxVbmtub3duPik6IFJldHVyblR5cGU8VW5rbm93bj59fVxuICovXG5leHBvcnQgZnVuY3Rpb24gendpdGNoKGtleSwgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge31cblxuICAvKipcbiAgICogSGFuZGxlIG9uZSB2YWx1ZS5cbiAgICpcbiAgICogQmFzZWQgb24gdGhlIGJvdW5kIGBrZXlgLCBhIHJlc3BlY3RpdmUgaGFuZGxlciB3aWxsIGJlIGNhbGxlZC5cbiAgICogSWYgYHZhbHVlYCBpcyBub3QgYW4gb2JqZWN0LCBvciBkb2Vzblx1MjAxOXQgaGF2ZSBhIGBrZXlgIHByb3BlcnR5LCB0aGUgc3BlY2lhbFxuICAgKiBcdTIwMUNpbnZhbGlkXHUyMDFEIGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQuXG4gICAqIElmIGB2YWx1ZWAgaGFzIGFuIHVua25vd24gYGtleWAsIHRoZSBzcGVjaWFsIFx1MjAxQ3Vua25vd25cdTIwMUQgaGFuZGxlciB3aWxsIGJlXG4gICAqIGNhbGxlZC5cbiAgICpcbiAgICogQWxsIGFyZ3VtZW50cywgYW5kIHRoZSBjb250ZXh0IG9iamVjdCwgYXJlIHBhc3NlZCB0aHJvdWdoIHRvIHRoZSBoYW5kbGVyLFxuICAgKiBhbmQgaXRcdTIwMTlzIHJlc3VsdCBpcyByZXR1cm5lZC5cbiAgICpcbiAgICogQHRoaXMge3Vua25vd259XG4gICAqICAgQW55IGNvbnRleHQgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3Vua25vd259IFt2YWx1ZV1cbiAgICogICBBbnkgdmFsdWUuXG4gICAqIEBwYXJhbSB7Li4udW5rbm93bn0gcGFyYW1ldGVyc1xuICAgKiAgIEFyYml0cmFyeSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgendpdGNoLlxuICAgKiBAcHJvcGVydHkge0hhbmRsZXJ9IGludmFsaWRcbiAgICogICBIYW5kbGUgZm9yIHZhbHVlcyB0aGF0IGRvIG5vdCBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZC5cbiAgICogQHByb3BlcnR5IHtIYW5kbGVyfSB1bmtub3duXG4gICAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIGhhdmUgYSBjZXJ0YWluIElEIGZpZWxkLCBidXQgaXRcdTIwMTlzIHNldCB0byBhIHZhbHVlXG4gICAqICAgdGhhdCBpcyBub3QgbGlzdGVkIGluIHRoZSBgaGFuZGxlcnNgIHJlY29yZC5cbiAgICogQHByb3BlcnR5IHtIYW5kbGVyc30gaGFuZGxlcnNcbiAgICogICBSZWNvcmQgb2YgaGFuZGxlcnMuXG4gICAqIEByZXR1cm5zIHt1bmtub3dufVxuICAgKiAgIEFueXRoaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gb25lKHZhbHVlLCAuLi5wYXJhbWV0ZXJzKSB7XG4gICAgLyoqIEB0eXBlIHtIYW5kbGVyfHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgZm4gPSBvbmUuaW52YWxpZFxuICAgIGNvbnN0IGhhbmRsZXJzID0gb25lLmhhbmRsZXJzXG5cbiAgICBpZiAodmFsdWUgJiYgb3duLmNhbGwodmFsdWUsIGtleSkpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgSW5kZXhhYmxlLlxuICAgICAgY29uc3QgaWQgPSBTdHJpbmcodmFsdWVba2V5XSlcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgSW5kZXhhYmxlLlxuICAgICAgZm4gPSBvd24uY2FsbChoYW5kbGVycywgaWQpID8gaGFuZGxlcnNbaWRdIDogb25lLnVua25vd25cbiAgICB9XG5cbiAgICBpZiAoZm4pIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoaXMsIHZhbHVlLCAuLi5wYXJhbWV0ZXJzKVxuICAgIH1cbiAgfVxuXG4gIG9uZS5oYW5kbGVycyA9IHNldHRpbmdzLmhhbmRsZXJzIHx8IHt9XG4gIG9uZS5pbnZhbGlkID0gc2V0dGluZ3MuaW52YWxpZFxuICBvbmUudW5rbm93biA9IHNldHRpbmdzLnVua25vd25cblxuICAvLyBAdHMtZXhwZWN0LWVycm9yOiBtYXRjaGVzIVxuICByZXR1cm4gb25lXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBDb3JlT3B0aW9uc1xuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+fSBbc3Vic2V0PVtdXVxuICogICBXaGV0aGVyIHRvIG9ubHkgZXNjYXBlIHRoZSBnaXZlbiBzdWJzZXQgb2YgY2hhcmFjdGVycy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2VzY2FwZU9ubHk9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gb25seSBlc2NhcGUgcG9zc2libHkgZGFuZ2Vyb3VzIGNoYXJhY3RlcnMuXG4gKiAgIFRob3NlIGNoYXJhY3RlcnMgYXJlIGBcImAsIGAmYCwgYCdgLCBgPGAsIGA+YCwgYW5kIGBgIGAgYGAuXG4gKlxuICogQHR5cGVkZWYgRm9ybWF0T3B0aW9uc1xuICogQHByb3BlcnR5IHsoY29kZTogbnVtYmVyLCBuZXh0OiBudW1iZXIsIG9wdGlvbnM6IENvcmVXaXRoRm9ybWF0T3B0aW9ucykgPT4gc3RyaW5nfSBmb3JtYXRcbiAqICAgRm9ybWF0IHN0cmF0ZWd5LlxuICpcbiAqIEB0eXBlZGVmIHtDb3JlT3B0aW9ucyAmIEZvcm1hdE9wdGlvbnMgJiBpbXBvcnQoJy4vdXRpbC9mb3JtYXQtc21hcnQuanMnKS5Gb3JtYXRTbWFydE9wdGlvbnN9IENvcmVXaXRoRm9ybWF0T3B0aW9uc1xuICovXG5cbi8qKlxuICogRW5jb2RlIGNlcnRhaW4gY2hhcmFjdGVycyBpbiBgdmFsdWVgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtDb3JlV2l0aEZvcm1hdE9wdGlvbnN9IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3JlKHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShcbiAgICBvcHRpb25zLnN1YnNldCA/IGNoYXJhY3RlcnNUb0V4cHJlc3Npb24ob3B0aW9ucy5zdWJzZXQpIDogL1tcIiYnPD5gXS9nLFxuICAgIGJhc2ljXG4gIClcblxuICBpZiAob3B0aW9ucy5zdWJzZXQgfHwgb3B0aW9ucy5lc2NhcGVPbmx5KSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICByZXR1cm4gKFxuICAgIHZhbHVlXG4gICAgICAvLyBTdXJyb2dhdGUgcGFpcnMuXG4gICAgICAucmVwbGFjZSgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXS9nLCBzdXJyb2dhdGUpXG4gICAgICAvLyBCTVAgY29udHJvbCBjaGFyYWN0ZXJzIChDMCBleGNlcHQgZm9yIExGLCBDUiwgU1A7IERFTDsgYW5kIHNvbWUgbW9yZVxuICAgICAgLy8gbm9uLUFTQ0lJIG9uZXMpLlxuICAgICAgLnJlcGxhY2UoXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250cm9sLXJlZ2V4LCB1bmljb3JuL25vLWhleC1lc2NhcGVcbiAgICAgICAgL1tcXHgwMS1cXHRcXHZcXGZcXHgwRS1cXHgxRlxceDdGXFx4ODFcXHg4RFxceDhGXFx4OTBcXHg5RFxceEEwLVxcdUZGRkZdL2csXG4gICAgICAgIGJhc2ljXG4gICAgICApXG4gIClcblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhaXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbGxcbiAgICovXG4gIGZ1bmN0aW9uIHN1cnJvZ2F0ZShwYWlyLCBpbmRleCwgYWxsKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMuZm9ybWF0KFxuICAgICAgKHBhaXIuY2hhckNvZGVBdCgwKSAtIDB4ZDgwMCkgKiAweDQwMCArXG4gICAgICAgIHBhaXIuY2hhckNvZGVBdCgxKSAtXG4gICAgICAgIDB4ZGMwMCArXG4gICAgICAgIDB4MTAwMDAsXG4gICAgICBhbGwuY2hhckNvZGVBdChpbmRleCArIDIpLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhcmFjdGVyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWxsXG4gICAqL1xuICBmdW5jdGlvbiBiYXNpYyhjaGFyYWN0ZXIsIGluZGV4LCBhbGwpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5mb3JtYXQoXG4gICAgICBjaGFyYWN0ZXIuY2hhckNvZGVBdCgwKSxcbiAgICAgIGFsbC5jaGFyQ29kZUF0KGluZGV4ICsgMSksXG4gICAgICBvcHRpb25zXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBzdWJzZXRcbiAqIEByZXR1cm5zIHtSZWdFeHB9XG4gKi9cbmZ1bmN0aW9uIGNoYXJhY3RlcnNUb0V4cHJlc3Npb24oc3Vic2V0KSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgZ3JvdXBzID0gW11cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHN1YnNldC5sZW5ndGgpIHtcbiAgICBncm91cHMucHVzaChzdWJzZXRbaW5kZXhdLnJlcGxhY2UoL1t8XFxcXHt9KClbXFxdXiQrKj8uXS9nLCAnXFxcXCQmJykpXG4gIH1cblxuICByZXR1cm4gbmV3IFJlZ0V4cCgnKD86JyArIGdyb3Vwcy5qb2luKCd8JykgKyAnKScsICdnJylcbn1cbiIsICIvKipcbiAqIENvbmZpZ3VyYWJsZSB3YXlzIHRvIGVuY29kZSBjaGFyYWN0ZXJzIGFzIGhleGFkZWNpbWFsIHJlZmVyZW5jZXMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBvbWl0XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9IZXhhZGVjaW1hbChjb2RlLCBuZXh0LCBvbWl0KSB7XG4gIGNvbnN0IHZhbHVlID0gJyYjeCcgKyBjb2RlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpXG4gIHJldHVybiBvbWl0ICYmIG5leHQgJiYgIS9bXFxkQS1GYS1mXS8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKVxuICAgID8gdmFsdWVcbiAgICA6IHZhbHVlICsgJzsnXG59XG4iLCAiLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgY2hhcmFjdGVycyBhcyBkZWNpbWFsIHJlZmVyZW5jZXMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBvbWl0XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9EZWNpbWFsKGNvZGUsIG5leHQsIG9taXQpIHtcbiAgY29uc3QgdmFsdWUgPSAnJiMnICsgU3RyaW5nKGNvZGUpXG4gIHJldHVybiBvbWl0ICYmIG5leHQgJiYgIS9cXGQvLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSlcbiAgICA/IHZhbHVlXG4gICAgOiB2YWx1ZSArICc7J1xufVxuIiwgIi8qKlxuICogTGlzdCBvZiBsZWdhY3kgSFRNTCBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB0aGF0IGRvblx1MjAxOXQgbmVlZCBhIHRyYWlsaW5nIHNlbWljb2xvbi5cbiAqXG4gKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckVudGl0aWVzTGVnYWN5ID0gW1xuICAnQUVsaWcnLFxuICAnQU1QJyxcbiAgJ0FhY3V0ZScsXG4gICdBY2lyYycsXG4gICdBZ3JhdmUnLFxuICAnQXJpbmcnLFxuICAnQXRpbGRlJyxcbiAgJ0F1bWwnLFxuICAnQ09QWScsXG4gICdDY2VkaWwnLFxuICAnRVRIJyxcbiAgJ0VhY3V0ZScsXG4gICdFY2lyYycsXG4gICdFZ3JhdmUnLFxuICAnRXVtbCcsXG4gICdHVCcsXG4gICdJYWN1dGUnLFxuICAnSWNpcmMnLFxuICAnSWdyYXZlJyxcbiAgJ0l1bWwnLFxuICAnTFQnLFxuICAnTnRpbGRlJyxcbiAgJ09hY3V0ZScsXG4gICdPY2lyYycsXG4gICdPZ3JhdmUnLFxuICAnT3NsYXNoJyxcbiAgJ090aWxkZScsXG4gICdPdW1sJyxcbiAgJ1FVT1QnLFxuICAnUkVHJyxcbiAgJ1RIT1JOJyxcbiAgJ1VhY3V0ZScsXG4gICdVY2lyYycsXG4gICdVZ3JhdmUnLFxuICAnVXVtbCcsXG4gICdZYWN1dGUnLFxuICAnYWFjdXRlJyxcbiAgJ2FjaXJjJyxcbiAgJ2FjdXRlJyxcbiAgJ2FlbGlnJyxcbiAgJ2FncmF2ZScsXG4gICdhbXAnLFxuICAnYXJpbmcnLFxuICAnYXRpbGRlJyxcbiAgJ2F1bWwnLFxuICAnYnJ2YmFyJyxcbiAgJ2NjZWRpbCcsXG4gICdjZWRpbCcsXG4gICdjZW50JyxcbiAgJ2NvcHknLFxuICAnY3VycmVuJyxcbiAgJ2RlZycsXG4gICdkaXZpZGUnLFxuICAnZWFjdXRlJyxcbiAgJ2VjaXJjJyxcbiAgJ2VncmF2ZScsXG4gICdldGgnLFxuICAnZXVtbCcsXG4gICdmcmFjMTInLFxuICAnZnJhYzE0JyxcbiAgJ2ZyYWMzNCcsXG4gICdndCcsXG4gICdpYWN1dGUnLFxuICAnaWNpcmMnLFxuICAnaWV4Y2wnLFxuICAnaWdyYXZlJyxcbiAgJ2lxdWVzdCcsXG4gICdpdW1sJyxcbiAgJ2xhcXVvJyxcbiAgJ2x0JyxcbiAgJ21hY3InLFxuICAnbWljcm8nLFxuICAnbWlkZG90JyxcbiAgJ25ic3AnLFxuICAnbm90JyxcbiAgJ250aWxkZScsXG4gICdvYWN1dGUnLFxuICAnb2NpcmMnLFxuICAnb2dyYXZlJyxcbiAgJ29yZGYnLFxuICAnb3JkbScsXG4gICdvc2xhc2gnLFxuICAnb3RpbGRlJyxcbiAgJ291bWwnLFxuICAncGFyYScsXG4gICdwbHVzbW4nLFxuICAncG91bmQnLFxuICAncXVvdCcsXG4gICdyYXF1bycsXG4gICdyZWcnLFxuICAnc2VjdCcsXG4gICdzaHknLFxuICAnc3VwMScsXG4gICdzdXAyJyxcbiAgJ3N1cDMnLFxuICAnc3psaWcnLFxuICAndGhvcm4nLFxuICAndGltZXMnLFxuICAndWFjdXRlJyxcbiAgJ3VjaXJjJyxcbiAgJ3VncmF2ZScsXG4gICd1bWwnLFxuICAndXVtbCcsXG4gICd5YWN1dGUnLFxuICAneWVuJyxcbiAgJ3l1bWwnXG5dXG4iLCAiLyoqXG4gKiBNYXAgb2YgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgZnJvbSBIVE1MIDQuXG4gKlxuICogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJFbnRpdGllc0h0bWw0ID0ge1xuICBuYnNwOiAnXHUwMEEwJyxcbiAgaWV4Y2w6ICdcdTAwQTEnLFxuICBjZW50OiAnXHUwMEEyJyxcbiAgcG91bmQ6ICdcdTAwQTMnLFxuICBjdXJyZW46ICdcdTAwQTQnLFxuICB5ZW46ICdcdTAwQTUnLFxuICBicnZiYXI6ICdcdTAwQTYnLFxuICBzZWN0OiAnXHUwMEE3JyxcbiAgdW1sOiAnXHUwMEE4JyxcbiAgY29weTogJ1x1MDBBOScsXG4gIG9yZGY6ICdcdTAwQUEnLFxuICBsYXF1bzogJ1x1MDBBQicsXG4gIG5vdDogJ1x1MDBBQycsXG4gIHNoeTogJ1x1MDBBRCcsXG4gIHJlZzogJ1x1MDBBRScsXG4gIG1hY3I6ICdcdTAwQUYnLFxuICBkZWc6ICdcdTAwQjAnLFxuICBwbHVzbW46ICdcdTAwQjEnLFxuICBzdXAyOiAnXHUwMEIyJyxcbiAgc3VwMzogJ1x1MDBCMycsXG4gIGFjdXRlOiAnXHUwMEI0JyxcbiAgbWljcm86ICdcdTAwQjUnLFxuICBwYXJhOiAnXHUwMEI2JyxcbiAgbWlkZG90OiAnXHUwMEI3JyxcbiAgY2VkaWw6ICdcdTAwQjgnLFxuICBzdXAxOiAnXHUwMEI5JyxcbiAgb3JkbTogJ1x1MDBCQScsXG4gIHJhcXVvOiAnXHUwMEJCJyxcbiAgZnJhYzE0OiAnXHUwMEJDJyxcbiAgZnJhYzEyOiAnXHUwMEJEJyxcbiAgZnJhYzM0OiAnXHUwMEJFJyxcbiAgaXF1ZXN0OiAnXHUwMEJGJyxcbiAgQWdyYXZlOiAnXHUwMEMwJyxcbiAgQWFjdXRlOiAnXHUwMEMxJyxcbiAgQWNpcmM6ICdcdTAwQzInLFxuICBBdGlsZGU6ICdcdTAwQzMnLFxuICBBdW1sOiAnXHUwMEM0JyxcbiAgQXJpbmc6ICdcdTAwQzUnLFxuICBBRWxpZzogJ1x1MDBDNicsXG4gIENjZWRpbDogJ1x1MDBDNycsXG4gIEVncmF2ZTogJ1x1MDBDOCcsXG4gIEVhY3V0ZTogJ1x1MDBDOScsXG4gIEVjaXJjOiAnXHUwMENBJyxcbiAgRXVtbDogJ1x1MDBDQicsXG4gIElncmF2ZTogJ1x1MDBDQycsXG4gIElhY3V0ZTogJ1x1MDBDRCcsXG4gIEljaXJjOiAnXHUwMENFJyxcbiAgSXVtbDogJ1x1MDBDRicsXG4gIEVUSDogJ1x1MDBEMCcsXG4gIE50aWxkZTogJ1x1MDBEMScsXG4gIE9ncmF2ZTogJ1x1MDBEMicsXG4gIE9hY3V0ZTogJ1x1MDBEMycsXG4gIE9jaXJjOiAnXHUwMEQ0JyxcbiAgT3RpbGRlOiAnXHUwMEQ1JyxcbiAgT3VtbDogJ1x1MDBENicsXG4gIHRpbWVzOiAnXHUwMEQ3JyxcbiAgT3NsYXNoOiAnXHUwMEQ4JyxcbiAgVWdyYXZlOiAnXHUwMEQ5JyxcbiAgVWFjdXRlOiAnXHUwMERBJyxcbiAgVWNpcmM6ICdcdTAwREInLFxuICBVdW1sOiAnXHUwMERDJyxcbiAgWWFjdXRlOiAnXHUwMEREJyxcbiAgVEhPUk46ICdcdTAwREUnLFxuICBzemxpZzogJ1x1MDBERicsXG4gIGFncmF2ZTogJ1x1MDBFMCcsXG4gIGFhY3V0ZTogJ1x1MDBFMScsXG4gIGFjaXJjOiAnXHUwMEUyJyxcbiAgYXRpbGRlOiAnXHUwMEUzJyxcbiAgYXVtbDogJ1x1MDBFNCcsXG4gIGFyaW5nOiAnXHUwMEU1JyxcbiAgYWVsaWc6ICdcdTAwRTYnLFxuICBjY2VkaWw6ICdcdTAwRTcnLFxuICBlZ3JhdmU6ICdcdTAwRTgnLFxuICBlYWN1dGU6ICdcdTAwRTknLFxuICBlY2lyYzogJ1x1MDBFQScsXG4gIGV1bWw6ICdcdTAwRUInLFxuICBpZ3JhdmU6ICdcdTAwRUMnLFxuICBpYWN1dGU6ICdcdTAwRUQnLFxuICBpY2lyYzogJ1x1MDBFRScsXG4gIGl1bWw6ICdcdTAwRUYnLFxuICBldGg6ICdcdTAwRjAnLFxuICBudGlsZGU6ICdcdTAwRjEnLFxuICBvZ3JhdmU6ICdcdTAwRjInLFxuICBvYWN1dGU6ICdcdTAwRjMnLFxuICBvY2lyYzogJ1x1MDBGNCcsXG4gIG90aWxkZTogJ1x1MDBGNScsXG4gIG91bWw6ICdcdTAwRjYnLFxuICBkaXZpZGU6ICdcdTAwRjcnLFxuICBvc2xhc2g6ICdcdTAwRjgnLFxuICB1Z3JhdmU6ICdcdTAwRjknLFxuICB1YWN1dGU6ICdcdTAwRkEnLFxuICB1Y2lyYzogJ1x1MDBGQicsXG4gIHV1bWw6ICdcdTAwRkMnLFxuICB5YWN1dGU6ICdcdTAwRkQnLFxuICB0aG9ybjogJ1x1MDBGRScsXG4gIHl1bWw6ICdcdTAwRkYnLFxuICBmbm9mOiAnXHUwMTkyJyxcbiAgQWxwaGE6ICdcdTAzOTEnLFxuICBCZXRhOiAnXHUwMzkyJyxcbiAgR2FtbWE6ICdcdTAzOTMnLFxuICBEZWx0YTogJ1x1MDM5NCcsXG4gIEVwc2lsb246ICdcdTAzOTUnLFxuICBaZXRhOiAnXHUwMzk2JyxcbiAgRXRhOiAnXHUwMzk3JyxcbiAgVGhldGE6ICdcdTAzOTgnLFxuICBJb3RhOiAnXHUwMzk5JyxcbiAgS2FwcGE6ICdcdTAzOUEnLFxuICBMYW1iZGE6ICdcdTAzOUInLFxuICBNdTogJ1x1MDM5QycsXG4gIE51OiAnXHUwMzlEJyxcbiAgWGk6ICdcdTAzOUUnLFxuICBPbWljcm9uOiAnXHUwMzlGJyxcbiAgUGk6ICdcdTAzQTAnLFxuICBSaG86ICdcdTAzQTEnLFxuICBTaWdtYTogJ1x1MDNBMycsXG4gIFRhdTogJ1x1MDNBNCcsXG4gIFVwc2lsb246ICdcdTAzQTUnLFxuICBQaGk6ICdcdTAzQTYnLFxuICBDaGk6ICdcdTAzQTcnLFxuICBQc2k6ICdcdTAzQTgnLFxuICBPbWVnYTogJ1x1MDNBOScsXG4gIGFscGhhOiAnXHUwM0IxJyxcbiAgYmV0YTogJ1x1MDNCMicsXG4gIGdhbW1hOiAnXHUwM0IzJyxcbiAgZGVsdGE6ICdcdTAzQjQnLFxuICBlcHNpbG9uOiAnXHUwM0I1JyxcbiAgemV0YTogJ1x1MDNCNicsXG4gIGV0YTogJ1x1MDNCNycsXG4gIHRoZXRhOiAnXHUwM0I4JyxcbiAgaW90YTogJ1x1MDNCOScsXG4gIGthcHBhOiAnXHUwM0JBJyxcbiAgbGFtYmRhOiAnXHUwM0JCJyxcbiAgbXU6ICdcdTAzQkMnLFxuICBudTogJ1x1MDNCRCcsXG4gIHhpOiAnXHUwM0JFJyxcbiAgb21pY3JvbjogJ1x1MDNCRicsXG4gIHBpOiAnXHUwM0MwJyxcbiAgcmhvOiAnXHUwM0MxJyxcbiAgc2lnbWFmOiAnXHUwM0MyJyxcbiAgc2lnbWE6ICdcdTAzQzMnLFxuICB0YXU6ICdcdTAzQzQnLFxuICB1cHNpbG9uOiAnXHUwM0M1JyxcbiAgcGhpOiAnXHUwM0M2JyxcbiAgY2hpOiAnXHUwM0M3JyxcbiAgcHNpOiAnXHUwM0M4JyxcbiAgb21lZ2E6ICdcdTAzQzknLFxuICB0aGV0YXN5bTogJ1x1MDNEMScsXG4gIHVwc2loOiAnXHUwM0QyJyxcbiAgcGl2OiAnXHUwM0Q2JyxcbiAgYnVsbDogJ1x1MjAyMicsXG4gIGhlbGxpcDogJ1x1MjAyNicsXG4gIHByaW1lOiAnXHUyMDMyJyxcbiAgUHJpbWU6ICdcdTIwMzMnLFxuICBvbGluZTogJ1x1MjAzRScsXG4gIGZyYXNsOiAnXHUyMDQ0JyxcbiAgd2VpZXJwOiAnXHUyMTE4JyxcbiAgaW1hZ2U6ICdcdTIxMTEnLFxuICByZWFsOiAnXHUyMTFDJyxcbiAgdHJhZGU6ICdcdTIxMjInLFxuICBhbGVmc3ltOiAnXHUyMTM1JyxcbiAgbGFycjogJ1x1MjE5MCcsXG4gIHVhcnI6ICdcdTIxOTEnLFxuICByYXJyOiAnXHUyMTkyJyxcbiAgZGFycjogJ1x1MjE5MycsXG4gIGhhcnI6ICdcdTIxOTQnLFxuICBjcmFycjogJ1x1MjFCNScsXG4gIGxBcnI6ICdcdTIxRDAnLFxuICB1QXJyOiAnXHUyMUQxJyxcbiAgckFycjogJ1x1MjFEMicsXG4gIGRBcnI6ICdcdTIxRDMnLFxuICBoQXJyOiAnXHUyMUQ0JyxcbiAgZm9yYWxsOiAnXHUyMjAwJyxcbiAgcGFydDogJ1x1MjIwMicsXG4gIGV4aXN0OiAnXHUyMjAzJyxcbiAgZW1wdHk6ICdcdTIyMDUnLFxuICBuYWJsYTogJ1x1MjIwNycsXG4gIGlzaW46ICdcdTIyMDgnLFxuICBub3RpbjogJ1x1MjIwOScsXG4gIG5pOiAnXHUyMjBCJyxcbiAgcHJvZDogJ1x1MjIwRicsXG4gIHN1bTogJ1x1MjIxMScsXG4gIG1pbnVzOiAnXHUyMjEyJyxcbiAgbG93YXN0OiAnXHUyMjE3JyxcbiAgcmFkaWM6ICdcdTIyMUEnLFxuICBwcm9wOiAnXHUyMjFEJyxcbiAgaW5maW46ICdcdTIyMUUnLFxuICBhbmc6ICdcdTIyMjAnLFxuICBhbmQ6ICdcdTIyMjcnLFxuICBvcjogJ1x1MjIyOCcsXG4gIGNhcDogJ1x1MjIyOScsXG4gIGN1cDogJ1x1MjIyQScsXG4gIGludDogJ1x1MjIyQicsXG4gIHRoZXJlNDogJ1x1MjIzNCcsXG4gIHNpbTogJ1x1MjIzQycsXG4gIGNvbmc6ICdcdTIyNDUnLFxuICBhc3ltcDogJ1x1MjI0OCcsXG4gIG5lOiAnXHUyMjYwJyxcbiAgZXF1aXY6ICdcdTIyNjEnLFxuICBsZTogJ1x1MjI2NCcsXG4gIGdlOiAnXHUyMjY1JyxcbiAgc3ViOiAnXHUyMjgyJyxcbiAgc3VwOiAnXHUyMjgzJyxcbiAgbnN1YjogJ1x1MjI4NCcsXG4gIHN1YmU6ICdcdTIyODYnLFxuICBzdXBlOiAnXHUyMjg3JyxcbiAgb3BsdXM6ICdcdTIyOTUnLFxuICBvdGltZXM6ICdcdTIyOTcnLFxuICBwZXJwOiAnXHUyMkE1JyxcbiAgc2RvdDogJ1x1MjJDNScsXG4gIGxjZWlsOiAnXHUyMzA4JyxcbiAgcmNlaWw6ICdcdTIzMDknLFxuICBsZmxvb3I6ICdcdTIzMEEnLFxuICByZmxvb3I6ICdcdTIzMEInLFxuICBsYW5nOiAnXHUyMzI5JyxcbiAgcmFuZzogJ1x1MjMyQScsXG4gIGxvejogJ1x1MjVDQScsXG4gIHNwYWRlczogJ1x1MjY2MCcsXG4gIGNsdWJzOiAnXHUyNjYzJyxcbiAgaGVhcnRzOiAnXHUyNjY1JyxcbiAgZGlhbXM6ICdcdTI2NjYnLFxuICBxdW90OiAnXCInLFxuICBhbXA6ICcmJyxcbiAgbHQ6ICc8JyxcbiAgZ3Q6ICc+JyxcbiAgT0VsaWc6ICdcdTAxNTInLFxuICBvZWxpZzogJ1x1MDE1MycsXG4gIFNjYXJvbjogJ1x1MDE2MCcsXG4gIHNjYXJvbjogJ1x1MDE2MScsXG4gIFl1bWw6ICdcdTAxNzgnLFxuICBjaXJjOiAnXHUwMkM2JyxcbiAgdGlsZGU6ICdcdTAyREMnLFxuICBlbnNwOiAnXHUyMDAyJyxcbiAgZW1zcDogJ1x1MjAwMycsXG4gIHRoaW5zcDogJ1x1MjAwOScsXG4gIHp3bmo6ICdcdTIwMEMnLFxuICB6d2o6ICdcdTIwMEQnLFxuICBscm06ICdcdTIwMEUnLFxuICBybG06ICdcdTIwMEYnLFxuICBuZGFzaDogJ1x1MjAxMycsXG4gIG1kYXNoOiAnXHUyMDE0JyxcbiAgbHNxdW86ICdcdTIwMTgnLFxuICByc3F1bzogJ1x1MjAxOScsXG4gIHNicXVvOiAnXHUyMDFBJyxcbiAgbGRxdW86ICdcdTIwMUMnLFxuICByZHF1bzogJ1x1MjAxRCcsXG4gIGJkcXVvOiAnXHUyMDFFJyxcbiAgZGFnZ2VyOiAnXHUyMDIwJyxcbiAgRGFnZ2VyOiAnXHUyMDIxJyxcbiAgcGVybWlsOiAnXHUyMDMwJyxcbiAgbHNhcXVvOiAnXHUyMDM5JyxcbiAgcnNhcXVvOiAnXHUyMDNBJyxcbiAgZXVybzogJ1x1MjBBQydcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgbGVnYWN5ICh0aGF0IGRvblx1MjAxOXQgbmVlZCBhIHRyYWlsaW5nIGA7YCkgbmFtZWQgcmVmZXJlbmNlcyB3aGljaCBjb3VsZCxcbiAqIGRlcGVuZGluZyBvbiB3aGF0IGZvbGxvd3MgdGhlbSwgdHVybiBpbnRvIGEgZGlmZmVyZW50IG1lYW5pbmdcbiAqXG4gKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGRhbmdlcm91cyA9IFtcbiAgJ2NlbnQnLFxuICAnY29weScsXG4gICdkaXZpZGUnLFxuICAnZ3QnLFxuICAnbHQnLFxuICAnbm90JyxcbiAgJ3BhcmEnLFxuICAndGltZXMnXG5dXG4iLCAiaW1wb3J0IHtjaGFyYWN0ZXJFbnRpdGllc0xlZ2FjeX0gZnJvbSAnY2hhcmFjdGVyLWVudGl0aWVzLWxlZ2FjeSdcbmltcG9ydCB7Y2hhcmFjdGVyRW50aXRpZXNIdG1sNH0gZnJvbSAnY2hhcmFjdGVyLWVudGl0aWVzLWh0bWw0J1xuaW1wb3J0IHtkYW5nZXJvdXN9IGZyb20gJy4uL2NvbnN0YW50L2Rhbmdlcm91cy5qcydcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBgY2hhcmFjdGVyRW50aXRpZXNIdG1sNGAgYnV0IGludmVydGVkLlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5jb25zdCBjaGFyYWN0ZXJzID0ge31cblxuLyoqIEB0eXBlIHtzdHJpbmd9ICovXG5sZXQga2V5XG5cbmZvciAoa2V5IGluIGNoYXJhY3RlckVudGl0aWVzSHRtbDQpIHtcbiAgaWYgKG93bi5jYWxsKGNoYXJhY3RlckVudGl0aWVzSHRtbDQsIGtleSkpIHtcbiAgICBjaGFyYWN0ZXJzW2NoYXJhY3RlckVudGl0aWVzSHRtbDRba2V5XV0gPSBrZXlcbiAgfVxufVxuXG4vKipcbiAqIENvbmZpZ3VyYWJsZSB3YXlzIHRvIGVuY29kZSBjaGFyYWN0ZXJzIGFzIG5hbWVkIHJlZmVyZW5jZXMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBvbWl0XG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b05hbWVkKGNvZGUsIG5leHQsIG9taXQsIGF0dHJpYnV0ZSkge1xuICBjb25zdCBjaGFyYWN0ZXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpXG5cbiAgaWYgKG93bi5jYWxsKGNoYXJhY3RlcnMsIGNoYXJhY3RlcikpIHtcbiAgICBjb25zdCBuYW1lID0gY2hhcmFjdGVyc1tjaGFyYWN0ZXJdXG4gICAgY29uc3QgdmFsdWUgPSAnJicgKyBuYW1lXG5cbiAgICBpZiAoXG4gICAgICBvbWl0ICYmXG4gICAgICBjaGFyYWN0ZXJFbnRpdGllc0xlZ2FjeS5pbmNsdWRlcyhuYW1lKSAmJlxuICAgICAgIWRhbmdlcm91cy5pbmNsdWRlcyhuYW1lKSAmJlxuICAgICAgKCFhdHRyaWJ1dGUgfHxcbiAgICAgICAgKG5leHQgJiZcbiAgICAgICAgICBuZXh0ICE9PSA2MSAvKiBgPWAgKi8gJiZcbiAgICAgICAgICAvW15cXGRhLXpdL2kudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUgKyAnOydcbiAgfVxuXG4gIHJldHVybiAnJ1xufVxuIiwgIi8qKlxuICogQHR5cGVkZWYgRm9ybWF0U21hcnRPcHRpb25zXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFt1c2VOYW1lZFJlZmVyZW5jZXM9ZmFsc2VdXG4gKiAgIFByZWZlciBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyAoYCZhbXA7YCkgd2hlcmUgcG9zc2libGUuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFt1c2VTaG9ydGVzdFJlZmVyZW5jZXM9ZmFsc2VdXG4gKiAgIFByZWZlciB0aGUgc2hvcnRlc3QgcG9zc2libGUgcmVmZXJlbmNlLCBpZiB0aGF0IHJlc3VsdHMgaW4gbGVzcyBieXRlcy5cbiAqICAgKipOb3RlKio6IGB1c2VOYW1lZFJlZmVyZW5jZXNgIGNhbiBiZSBvbWl0dGVkIHdoZW4gdXNpbmcgYHVzZVNob3J0ZXN0UmVmZXJlbmNlc2AuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtvbWl0T3B0aW9uYWxTZW1pY29sb25zPWZhbHNlXVxuICogICBXaGV0aGVyIHRvIG9taXQgc2VtaWNvbG9ucyB3aGVuIHBvc3NpYmxlLlxuICogICAqKk5vdGUqKjogVGhpcyBjcmVhdGVzIHdoYXQgSFRNTCBjYWxscyBcdTIwMUNwYXJzZSBlcnJvcnNcdTIwMUQgYnV0IGlzIG90aGVyd2lzZSBzdGlsbCB2YWxpZCBIVE1MIFx1MjAxNCBkb25cdTIwMTl0IHVzZSB0aGlzIGV4Y2VwdCB3aGVuIGJ1aWxkaW5nIGEgbWluaWZpZXIuXG4gKiAgIE9taXR0aW5nIHNlbWljb2xvbnMgaXMgcG9zc2libGUgZm9yIGNlcnRhaW4gbmFtZWQgYW5kIG51bWVyaWMgcmVmZXJlbmNlcyBpbiBzb21lIGNhc2VzLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbYXR0cmlidXRlPWZhbHNlXVxuICogICBDcmVhdGUgY2hhcmFjdGVyIHJlZmVyZW5jZXMgd2hpY2ggZG9uXHUyMDE5dCBmYWlsIGluIGF0dHJpYnV0ZXMuXG4gKiAgICoqTm90ZSoqOiBgYXR0cmlidXRlYCBvbmx5IGFwcGxpZXMgd2hlbiBvcGVyYXRpbmcgZGFuZ2Vyb3VzbHkgd2l0aFxuICogICBgb21pdE9wdGlvbmFsU2VtaWNvbG9uczogdHJ1ZWAuXG4gKi9cblxuaW1wb3J0IHt0b0hleGFkZWNpbWFsfSBmcm9tICcuL3RvLWhleGFkZWNpbWFsLmpzJ1xuaW1wb3J0IHt0b0RlY2ltYWx9IGZyb20gJy4vdG8tZGVjaW1hbC5qcydcbmltcG9ydCB7dG9OYW1lZH0gZnJvbSAnLi90by1uYW1lZC5qcydcblxuLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgYSBjaGFyYWN0ZXIgeWllbGRpbmcgcHJldHR5IG9yIHNtYWxsIHJlc3VsdHMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXh0XG4gKiBAcGFyYW0ge0Zvcm1hdFNtYXJ0T3B0aW9uc30gb3B0aW9uc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFNtYXJ0KGNvZGUsIG5leHQsIG9wdGlvbnMpIHtcbiAgbGV0IG51bWVyaWMgPSB0b0hleGFkZWNpbWFsKGNvZGUsIG5leHQsIG9wdGlvbnMub21pdE9wdGlvbmFsU2VtaWNvbG9ucylcbiAgLyoqIEB0eXBlIHtzdHJpbmd8dW5kZWZpbmVkfSAqL1xuICBsZXQgbmFtZWRcblxuICBpZiAob3B0aW9ucy51c2VOYW1lZFJlZmVyZW5jZXMgfHwgb3B0aW9ucy51c2VTaG9ydGVzdFJlZmVyZW5jZXMpIHtcbiAgICBuYW1lZCA9IHRvTmFtZWQoXG4gICAgICBjb2RlLFxuICAgICAgbmV4dCxcbiAgICAgIG9wdGlvbnMub21pdE9wdGlvbmFsU2VtaWNvbG9ucyxcbiAgICAgIG9wdGlvbnMuYXR0cmlidXRlXG4gICAgKVxuICB9XG5cbiAgLy8gVXNlIHRoZSBzaG9ydGVzdCBudW1lcmljIHJlZmVyZW5jZSB3aGVuIHJlcXVlc3RlZC5cbiAgLy8gQSBzaW1wbGUgYWxnb3JpdGhtIHdvdWxkIHVzZSBkZWNpbWFsIGZvciBhbGwgY29kZSBwb2ludHMgdW5kZXIgMTAwLCBhc1xuICAvLyB0aG9zZSBhcmUgc2hvcnRlciB0aGFuIGhleGFkZWNpbWFsOlxuICAvL1xuICAvLyAqIGAmIzk5O2AgdnMgYCYjeDYzO2AgKGRlY2ltYWwgc2hvcnRlcilcbiAgLy8gKiBgJiMxMDA7YCB2cyBgJiN4NjQ7YCAoZXF1YWwpXG4gIC8vXG4gIC8vIEhvd2V2ZXIsIGJlY2F1c2Ugd2UgdGFrZSBgbmV4dGAgaW50byBjb25zaWRlcmF0aW9uIHdoZW4gYG9taXRgIGlzIHVzZWQsXG4gIC8vIEFuZCBpdCB3b3VsZCBiZSBwb3NzaWJsZSB0aGF0IGRlY2ltYWxzIGFyZSBzaG9ydGVyIG9uIGJpZ2dlciB2YWx1ZXMgYXNcbiAgLy8gd2VsbCBpZiBgbmV4dGAgaXMgaGV4YWRlY2ltYWwgYnV0IG5vdCBkZWNpbWFsLCB3ZSBpbnN0ZWFkIGNvbXBhcmUgYm90aC5cbiAgaWYgKFxuICAgIChvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlcyB8fCAhbmFtZWQpICYmXG4gICAgb3B0aW9ucy51c2VTaG9ydGVzdFJlZmVyZW5jZXNcbiAgKSB7XG4gICAgY29uc3QgZGVjaW1hbCA9IHRvRGVjaW1hbChjb2RlLCBuZXh0LCBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMpXG5cbiAgICBpZiAoZGVjaW1hbC5sZW5ndGggPCBudW1lcmljLmxlbmd0aCkge1xuICAgICAgbnVtZXJpYyA9IGRlY2ltYWxcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmFtZWQgJiZcbiAgICAoIW9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzIHx8IG5hbWVkLmxlbmd0aCA8IG51bWVyaWMubGVuZ3RoKVxuICAgID8gbmFtZWRcbiAgICA6IG51bWVyaWNcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY29yZS5qcycpLkNvcmVPcHRpb25zICYgaW1wb3J0KCcuL3V0aWwvZm9ybWF0LXNtYXJ0LmpzJykuRm9ybWF0U21hcnRPcHRpb25zfSBPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NvcmUuanMnKS5Db3JlT3B0aW9uc30gTGlnaHRPcHRpb25zXG4gKi9cblxuaW1wb3J0IHtjb3JlfSBmcm9tICcuL2NvcmUuanMnXG5pbXBvcnQge2Zvcm1hdFNtYXJ0fSBmcm9tICcuL3V0aWwvZm9ybWF0LXNtYXJ0LmpzJ1xuaW1wb3J0IHtmb3JtYXRCYXNpY30gZnJvbSAnLi91dGlsL2Zvcm1hdC1iYXNpYy5qcydcblxuLyoqXG4gKiBFbmNvZGUgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIGB2YWx1ZWAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGVuY29kZS5cbiAqIEBwYXJhbSB7T3B0aW9uc30gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBFbmNvZGVkIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RW50aXRpZXModmFsdWUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNvcmUodmFsdWUsIE9iamVjdC5hc3NpZ24oe2Zvcm1hdDogZm9ybWF0U21hcnR9LCBvcHRpb25zKSlcbn1cblxuLyoqXG4gKiBFbmNvZGUgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIGB2YWx1ZWAgYXMgaGV4YWRlY2ltYWxzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBlbmNvZGUuXG4gKiBAcGFyYW0ge0xpZ2h0T3B0aW9uc30gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBFbmNvZGVkIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RW50aXRpZXNMaWdodCh2YWx1ZSwgb3B0aW9ucykge1xuICByZXR1cm4gY29yZSh2YWx1ZSwgT2JqZWN0LmFzc2lnbih7Zm9ybWF0OiBmb3JtYXRCYXNpY30sIG9wdGlvbnMpKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkNvbW1lbnR9IENvbW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge3N0cmluZ2lmeUVudGl0aWVzfSBmcm9tICdzdHJpbmdpZnktZW50aXRpZXMnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgY29tbWVudC5cbiAqXG4gKiBAcGFyYW0ge0NvbW1lbnR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gXzFcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8yXG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21tZW50KG5vZGUsIF8xLCBfMiwgc3RhdGUpIHtcbiAgLy8gU2VlOiA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjY29tbWVudHM+XG4gIHJldHVybiBzdGF0ZS5zZXR0aW5ncy5ib2d1c0NvbW1lbnRzXG4gICAgPyAnPD8nICtcbiAgICAgICAgc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgICAgICAgbm9kZS52YWx1ZSxcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7c3Vic2V0OiBbJz4nXX0pXG4gICAgICAgICkgK1xuICAgICAgICAnPidcbiAgICA6ICc8IS0tJyArIG5vZGUudmFsdWUucmVwbGFjZSgvXj58Xi0+fDwhLS18LS0+fC0tIT58PCEtJC9nLCBlbmNvZGUpICsgJy0tPidcblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gICAqL1xuICBmdW5jdGlvbiBlbmNvZGUoJDApIHtcbiAgICByZXR1cm4gc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgICAkMCxcbiAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgc3Vic2V0OiBbJzwnLCAnPiddXG4gICAgICB9KVxuICAgIClcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkRvY3R5cGV9IERvY3R5cGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG4vLyBNYWtlIFZTIGNvZGUgc2VlIHJlZmVyZW5jZXMgdG8gdGhlIGFib3ZlIHR5cGVzLlxuJydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSBkb2N0eXBlLlxuICpcbiAqIEBwYXJhbSB7RG9jdHlwZX0gXzFcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gXzJcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8zXG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb2N0eXBlKF8xLCBfMiwgXzMsIHN0YXRlKSB7XG4gIHJldHVybiAoXG4gICAgJzwhJyArXG4gICAgKHN0YXRlLnNldHRpbmdzLnVwcGVyRG9jdHlwZSA/ICdET0NUWVBFJyA6ICdkb2N0eXBlJykgK1xuICAgIChzdGF0ZS5zZXR0aW5ncy50aWdodERvY3R5cGUgPyAnJyA6ICcgJykgK1xuICAgICdodG1sPidcbiAgKVxufVxuIiwgIi8qKlxuICogQ291bnQgaG93IG9mdGVuIGEgY2hhcmFjdGVyIChvciBzdWJzdHJpbmcpIGlzIHVzZWQgaW4gYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIHNlYXJjaCBpbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyYWN0ZXJcbiAqICAgQ2hhcmFjdGVyIChvciBzdWJzdHJpbmcpIHRvIGxvb2sgZm9yLlxuICogQHJldHVybiB7bnVtYmVyfVxuICogICBOdW1iZXIgb2YgdGltZXMgYGNoYXJhY3RlcmAgb2NjdXJyZWQgaW4gYHZhbHVlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNjb3VudCh2YWx1ZSwgY2hhcmFjdGVyKSB7XG4gIGNvbnN0IHNvdXJjZSA9IFN0cmluZyh2YWx1ZSlcblxuICBpZiAodHlwZW9mIGNoYXJhY3RlciAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBjaGFyYWN0ZXInKVxuICB9XG5cbiAgbGV0IGNvdW50ID0gMFxuICBsZXQgaW5kZXggPSBzb3VyY2UuaW5kZXhPZihjaGFyYWN0ZXIpXG5cbiAgd2hpbGUgKGluZGV4ICE9PSAtMSkge1xuICAgIGNvdW50KytcbiAgICBpbmRleCA9IHNvdXJjZS5pbmRleE9mKGNoYXJhY3RlciwgaW5kZXggKyBjaGFyYWN0ZXIubGVuZ3RoKVxuICB9XG5cbiAgcmV0dXJuIGNvdW50XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKi9cblxuLy8gSFRNTCB3aGl0ZXNwYWNlIGV4cHJlc3Npb24uXG4vLyBTZWUgPGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNhc2NpaS13aGl0ZXNwYWNlPi5cbmNvbnN0IHJlID0gL1sgXFx0XFxuXFxmXFxyXS9nXG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGdpdmVuIHZhbHVlIGlzICppbnRlci1lbGVtZW50IHdoaXRlc3BhY2UqLlxuICpcbiAqIEBwYXJhbSB7Tm9kZXMgfCBzdHJpbmd9IHRoaW5nXG4gKiAgIFRoaW5nIHRvIGNoZWNrIChgTm9kZWAgb3IgYHN0cmluZ2ApLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGB2YWx1ZWAgaXMgaW50ZXItZWxlbWVudCB3aGl0ZXNwYWNlIChgYm9vbGVhbmApOiBjb25zaXN0aW5nIG9mXG4gKiAgIHplcm8gb3IgbW9yZSBvZiBzcGFjZSwgdGFiIChgXFx0YCksIGxpbmUgZmVlZCAoYFxcbmApLCBjYXJyaWFnZSByZXR1cm5cbiAqICAgKGBcXHJgKSwgb3IgZm9ybSBmZWVkIChgXFxmYCk7IGlmIGEgbm9kZSBpcyBwYXNzZWQgaXQgbXVzdCBiZSBhIGBUZXh0YCBub2RlLFxuICogICB3aG9zZSBgdmFsdWVgIGZpZWxkIGlzIGNoZWNrZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aGl0ZXNwYWNlKHRoaW5nKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpbmcgPT09ICdvYmplY3QnXG4gICAgPyB0aGluZy50eXBlID09PSAndGV4dCdcbiAgICAgID8gZW1wdHkodGhpbmcudmFsdWUpXG4gICAgICA6IGZhbHNlXG4gICAgOiBlbXB0eSh0aGluZylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBlbXB0eSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZShyZSwgJycpID09PSAnJ1xufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290Q29udGVudH0gUm9vdENvbnRlbnRcbiAqL1xuXG5pbXBvcnQge3doaXRlc3BhY2V9IGZyb20gJ2hhc3QtdXRpbC13aGl0ZXNwYWNlJ1xuXG5leHBvcnQgY29uc3Qgc2libGluZ0FmdGVyID0gc2libGluZ3MoMSlcbmV4cG9ydCBjb25zdCBzaWJsaW5nQmVmb3JlID0gc2libGluZ3MoLTEpXG5cbi8qKiBAdHlwZSB7QXJyYXk8Um9vdENvbnRlbnQ+fSAqL1xuY29uc3QgZW1wdHlDaGlsZHJlbiA9IFtdXG5cbi8qKlxuICogRmFjdG9yeSB0byBjaGVjayBzaWJsaW5ncyBpbiBhIGRpcmVjdGlvbi5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gaW5jcmVtZW50XG4gKi9cbmZ1bmN0aW9uIHNpYmxpbmdzKGluY3JlbWVudCkge1xuICByZXR1cm4gc2libGluZ1xuXG4gIC8qKlxuICAgKiBGaW5kIGFwcGxpY2FibGUgc2libGluZ3MgaW4gYSBkaXJlY3Rpb24uXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSB7UGFyZW50c30gUGFyZW50XG4gICAqICAgUGFyZW50IHR5cGUuXG4gICAqIEBwYXJhbSB7UGFyZW50IHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogICBQYXJlbnQuXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICAgKiAgIEluZGV4IG9mIGNoaWxkIGluIGBwYXJlbnRgLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW4gfCB1bmRlZmluZWR9IFtpbmNsdWRlV2hpdGVzcGFjZT1mYWxzZV1cbiAgICogICBXaGV0aGVyIHRvIGluY2x1ZGUgd2hpdGVzcGFjZSAoZGVmYXVsdDogYGZhbHNlYCkuXG4gICAqIEByZXR1cm5zIHtQYXJlbnQgZXh0ZW5kcyB7Y2hpbGRyZW46IEFycmF5PGluZmVyIENoaWxkPn0gPyBDaGlsZCB8IHVuZGVmaW5lZCA6IG5ldmVyfVxuICAgKiAgIENoaWxkIG9mIHBhcmVudC5cbiAgICovXG4gIGZ1bmN0aW9uIHNpYmxpbmcocGFyZW50LCBpbmRleCwgaW5jbHVkZVdoaXRlc3BhY2UpIHtcbiAgICBjb25zdCBzaWJsaW5ncyA9IHBhcmVudCA/IHBhcmVudC5jaGlsZHJlbiA6IGVtcHR5Q2hpbGRyZW5cbiAgICBsZXQgb2Zmc2V0ID0gKGluZGV4IHx8IDApICsgaW5jcmVtZW50XG4gICAgbGV0IG5leHQgPSBzaWJsaW5nc1tvZmZzZXRdXG5cbiAgICBpZiAoIWluY2x1ZGVXaGl0ZXNwYWNlKSB7XG4gICAgICB3aGlsZSAobmV4dCAmJiB3aGl0ZXNwYWNlKG5leHQpKSB7XG4gICAgICAgIG9mZnNldCArPSBpbmNyZW1lbnRcbiAgICAgICAgbmV4dCA9IHNpYmxpbmdzW29mZnNldF1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBpdFx1MjAxOXMgYSBjb3JyZWN0IGNoaWxkLlxuICAgIHJldHVybiBuZXh0XG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIE9taXRIYW5kbGVcbiAqICAgQ2hlY2sgaWYgYSB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsZW1lbnRcbiAqICAgRWxlbWVudCB0byBjaGVjay5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdG8gb21pdCBhIHRhZy5cbiAqXG4gKi9cblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBGYWN0b3J5IHRvIGNoZWNrIGlmIGEgZ2l2ZW4gbm9kZSBjYW4gaGF2ZSBhIHRhZyBvbWl0dGVkLlxuICpcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgT21pdEhhbmRsZT59IGhhbmRsZXJzXG4gKiAgIE9taXNzaW9uIGhhbmRsZXJzLCB3aGVyZSBlYWNoIGtleSBpcyBhIHRhZyBuYW1lLCBhbmQgZWFjaCB2YWx1ZSBpcyB0aGVcbiAqICAgY29ycmVzcG9uZGluZyBoYW5kbGVyLlxuICogQHJldHVybnMge09taXRIYW5kbGV9XG4gKiAgIFdoZXRoZXIgdG8gb21pdCBhIHRhZyBvZiBhbiBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gb21pc3Npb24oaGFuZGxlcnMpIHtcbiAgcmV0dXJuIG9taXRcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBnaXZlbiBub2RlIGNhbiBoYXZlIGEgdGFnIG9taXR0ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtPbWl0SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb21pdChub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIG93bi5jYWxsKGhhbmRsZXJzLCBub2RlLnRhZ05hbWUpICYmXG4gICAgICBoYW5kbGVyc1tub2RlLnRhZ05hbWVdKG5vZGUsIGluZGV4LCBwYXJlbnQpXG4gICAgKVxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqL1xuXG5pbXBvcnQge3doaXRlc3BhY2V9IGZyb20gJ2hhc3QtdXRpbC13aGl0ZXNwYWNlJ1xuaW1wb3J0IHtzaWJsaW5nQWZ0ZXJ9IGZyb20gJy4vdXRpbC9zaWJsaW5ncy5qcydcbmltcG9ydCB7b21pc3Npb259IGZyb20gJy4vb21pc3Npb24uanMnXG5cbmV4cG9ydCBjb25zdCBjbG9zaW5nID0gb21pc3Npb24oe1xuICBib2R5LFxuICBjYXB0aW9uOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgY29sZ3JvdXA6IGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uLFxuICBkZCxcbiAgZHQsXG4gIGhlYWQ6IGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uLFxuICBodG1sLFxuICBsaSxcbiAgb3B0Z3JvdXAsXG4gIG9wdGlvbixcbiAgcCxcbiAgcnA6IHJ1YnlFbGVtZW50LFxuICBydDogcnVieUVsZW1lbnQsXG4gIHRib2R5LFxuICB0ZDogY2VsbHMsXG4gIHRmb290LFxuICB0aDogY2VsbHMsXG4gIHRoZWFkLFxuICB0clxufSlcblxuLyoqXG4gKiBNYWNybyBmb3IgYDwvaGVhZD5gLCBgPC9jb2xncm91cD5gLCBhbmQgYDwvY2FwdGlvbj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4LCB0cnVlKVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSAhPT0gJ2NvbW1lbnQnICYmXG4gICAgICAhKG5leHQudHlwZSA9PT0gJ3RleHQnICYmIHdoaXRlc3BhY2UobmV4dC52YWx1ZS5jaGFyQXQoMCkpKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9odG1sPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaHRtbChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IG5leHQudHlwZSAhPT0gJ2NvbW1lbnQnXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2JvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBib2R5KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgbmV4dC50eXBlICE9PSAnY29tbWVudCdcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvcD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHAoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiBuZXh0XG4gICAgPyBuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgICAobmV4dC50YWdOYW1lID09PSAnYWRkcmVzcycgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdhcnRpY2xlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2FzaWRlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2Jsb2NrcXVvdGUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZGV0YWlscycgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdkaXYnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZGwnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZmllbGRzZXQnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZmlnY2FwdGlvbicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmaWd1cmUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZm9vdGVyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2Zvcm0nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDEnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDMnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDQnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDYnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaGVhZGVyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2hncm91cCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdocicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdtYWluJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ21lbnUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnbmF2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ29sJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3AnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAncHJlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3NlY3Rpb24nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAndGFibGUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAndWwnKVxuICAgIDogIXBhcmVudCB8fFxuICAgICAgICAvLyBDb25mdXNpbmcgcGFyZW50LlxuICAgICAgICAhKFxuICAgICAgICAgIHBhcmVudC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgICAocGFyZW50LnRhZ05hbWUgPT09ICdhJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdhdWRpbycgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnZGVsJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdpbnMnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ21hcCcgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnbm9zY3JpcHQnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ3ZpZGVvJylcbiAgICAgICAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9saT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGxpKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5leHQudGFnTmFtZSA9PT0gJ2xpJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvZHQ+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBkdChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgbmV4dCAmJlxuICAgICAgbmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICdkdCcgfHwgbmV4dC50YWdOYW1lID09PSAnZGQnKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2RkPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gZGQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICdkdCcgfHwgbmV4dC50YWdOYW1lID09PSAnZGQnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9ydD5gIG9yIGA8L3JwPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gcnVieUVsZW1lbnQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICdycCcgfHwgbmV4dC50YWdOYW1lID09PSAncnQnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9vcHRncm91cD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIG9wdGdyb3VwKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5leHQudGFnTmFtZSA9PT0gJ29wdGdyb3VwJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvb3B0aW9uPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gb3B0aW9uKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnb3B0aW9uJyB8fCBuZXh0LnRhZ05hbWUgPT09ICdvcHRncm91cCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3RoZWFkPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGhlYWQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiBCb29sZWFuKFxuICAgIG5leHQgJiZcbiAgICAgIG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAndGJvZHknIHx8IG5leHQudGFnTmFtZSA9PT0gJ3Rmb290JylcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90Ym9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRib2R5KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAndGJvZHknIHx8IG5leHQudGFnTmFtZSA9PT0gJ3Rmb290JykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGZvb3Q+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0Zm9vdChfLCBpbmRleCwgcGFyZW50KSB7XG4gIHJldHVybiAhc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3RyPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdHIoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiYgbmV4dC50YWdOYW1lID09PSAndHInKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90ZD5gIG9yIGA8L3RoPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gY2VsbHMoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICd0ZCcgfHwgbmV4dC50YWdOYW1lID09PSAndGgnKSlcbiAgKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcbmltcG9ydCB7c2libGluZ0FmdGVyLCBzaWJsaW5nQmVmb3JlfSBmcm9tICcuL3V0aWwvc2libGluZ3MuanMnXG5pbXBvcnQge2Nsb3Npbmd9IGZyb20gJy4vY2xvc2luZy5qcydcbmltcG9ydCB7b21pc3Npb259IGZyb20gJy4vb21pc3Npb24uanMnXG5cbmV4cG9ydCBjb25zdCBvcGVuaW5nID0gb21pc3Npb24oe1xuICBib2R5LFxuICBjb2xncm91cCxcbiAgaGVhZCxcbiAgaHRtbCxcbiAgdGJvZHlcbn0pXG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8aHRtbD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBodG1sKG5vZGUpIHtcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSlcbiAgcmV0dXJuICFoZWFkIHx8IGhlYWQudHlwZSAhPT0gJ2NvbW1lbnQnXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8aGVhZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBoZWFkKG5vZGUpIHtcbiAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuXG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3Qgc2VlbiA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2luZGV4XVxuICAgIGlmIChcbiAgICAgIGNoaWxkLnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKGNoaWxkLnRhZ05hbWUgPT09ICd0aXRsZScgfHwgY2hpbGQudGFnTmFtZSA9PT0gJ2Jhc2UnKVxuICAgICkge1xuICAgICAgaWYgKHNlZW4uaW5jbHVkZXMoY2hpbGQudGFnTmFtZSkpIHJldHVybiBmYWxzZVxuICAgICAgc2Vlbi5wdXNoKGNoaWxkLnRhZ05hbWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNoaWxkcmVuLmxlbmd0aCA+IDBcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDxib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGJvZHkobm9kZSkge1xuICBjb25zdCBoZWFkID0gc2libGluZ0FmdGVyKG5vZGUsIC0xLCB0cnVlKVxuXG4gIHJldHVybiAoXG4gICAgIWhlYWQgfHxcbiAgICAoaGVhZC50eXBlICE9PSAnY29tbWVudCcgJiZcbiAgICAgICEoaGVhZC50eXBlID09PSAndGV4dCcgJiYgd2hpdGVzcGFjZShoZWFkLnZhbHVlLmNoYXJBdCgwKSkpICYmXG4gICAgICAhKFxuICAgICAgICBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgICAoaGVhZC50YWdOYW1lID09PSAnbWV0YScgfHxcbiAgICAgICAgICBoZWFkLnRhZ05hbWUgPT09ICdsaW5rJyB8fFxuICAgICAgICAgIGhlYWQudGFnTmFtZSA9PT0gJ3NjcmlwdCcgfHxcbiAgICAgICAgICBoZWFkLnRhZ05hbWUgPT09ICdzdHlsZScgfHxcbiAgICAgICAgICBoZWFkLnRhZ05hbWUgPT09ICd0ZW1wbGF0ZScpXG4gICAgICApKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8Y29sZ3JvdXA+YC5cbiAqIFRoZSBzcGVjIGRlc2NyaWJlcyBzb21lIGxvZ2ljIGZvciB0aGUgb3BlbmluZyB0YWcsIGJ1dCBpdFx1MjAxOXMgZWFzaWVyIHRvXG4gKiBpbXBsZW1lbnQgaW4gdGhlIGNsb3NpbmcgdGFnLCB0byB0aGUgc2FtZSBlZmZlY3QsIHNvIHdlIGhhbmRsZSBpdCB0aGVyZVxuICogaW5zdGVhZC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBjb2xncm91cChub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IHByZXZpb3VzID0gc2libGluZ0JlZm9yZShwYXJlbnQsIGluZGV4KVxuICBjb25zdCBoZWFkID0gc2libGluZ0FmdGVyKG5vZGUsIC0xLCB0cnVlKVxuXG4gIC8vIFByZXZpb3VzIGNvbGdyb3VwIHdhcyBhbHJlYWR5IG9taXR0ZWQuXG4gIGlmIChcbiAgICBwYXJlbnQgJiZcbiAgICBwcmV2aW91cyAmJlxuICAgIHByZXZpb3VzLnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgIHByZXZpb3VzLnRhZ05hbWUgPT09ICdjb2xncm91cCcgJiZcbiAgICBjbG9zaW5nKHByZXZpb3VzLCBwYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihwcmV2aW91cyksIHBhcmVudClcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gQm9vbGVhbihoZWFkICYmIGhlYWQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIGhlYWQudGFnTmFtZSA9PT0gJ2NvbCcpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8dGJvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0Ym9keShub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IHByZXZpb3VzID0gc2libGluZ0JlZm9yZShwYXJlbnQsIGluZGV4KVxuICBjb25zdCBoZWFkID0gc2libGluZ0FmdGVyKG5vZGUsIC0xKVxuXG4gIC8vIFByZXZpb3VzIHRhYmxlIHNlY3Rpb24gd2FzIGFscmVhZHkgb21pdHRlZC5cbiAgaWYgKFxuICAgIHBhcmVudCAmJlxuICAgIHByZXZpb3VzICYmXG4gICAgcHJldmlvdXMudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgKHByZXZpb3VzLnRhZ05hbWUgPT09ICd0aGVhZCcgfHwgcHJldmlvdXMudGFnTmFtZSA9PT0gJ3Rib2R5JykgJiZcbiAgICBjbG9zaW5nKHByZXZpb3VzLCBwYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihwcmV2aW91cyksIHBhcmVudClcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gQm9vbGVhbihoZWFkICYmIGhlYWQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIGhlYWQudGFnTmFtZSA9PT0gJ3RyJylcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7Y2NvdW50fSBmcm9tICdjY291bnQnXG5pbXBvcnQge3N0cmluZ2lmeSBhcyBjb21tYXN9IGZyb20gJ2NvbW1hLXNlcGFyYXRlZC10b2tlbnMnXG5pbXBvcnQge2ZpbmQsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge3N0cmluZ2lmeSBhcyBzcGFjZXN9IGZyb20gJ3NwYWNlLXNlcGFyYXRlZC10b2tlbnMnXG5pbXBvcnQge3N0cmluZ2lmeUVudGl0aWVzfSBmcm9tICdzdHJpbmdpZnktZW50aXRpZXMnXG5pbXBvcnQge2Nsb3Npbmd9IGZyb20gJy4uL29taXNzaW9uL2Nsb3NpbmcuanMnXG5pbXBvcnQge29wZW5pbmd9IGZyb20gJy4uL29taXNzaW9uL29wZW5pbmcuanMnXG5cbi8qKlxuICogTWFwcyBvZiBzdWJzZXRzLlxuICpcbiAqIEVhY2ggdmFsdWUgaXMgYSBtYXRyaXggb2YgdHVwbGVzLlxuICogVGhlIHZhbHVlIGF0IGAwYCBjYXVzZXMgcGFyc2UgZXJyb3JzLCB0aGUgdmFsdWUgYXQgYDFgIGlzIHZhbGlkLlxuICogT2YgYm90aCwgdGhlIHZhbHVlIGF0IGAwYCBpcyB1bnNhZmUsIGFuZCB0aGUgdmFsdWUgYXQgYDFgIGlzIHNhZmUuXG4gKlxuICogQHR5cGUge1JlY29yZDwnZG91YmxlJyB8ICduYW1lJyB8ICdzaW5nbGUnIHwgJ3VucXVvdGVkJywgQXJyYXk8W0FycmF5PHN0cmluZz4sIEFycmF5PHN0cmluZz5dPj59XG4gKi9cbmNvbnN0IGNvbnN0YW50cyA9IHtcbiAgLy8gU2VlOiA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jYXR0cmlidXRlLW5hbWUtc3RhdGU+LlxuICBuYW1lOiBbXG4gICAgWydcXHRcXG5cXGZcXHIgJi89Picuc3BsaXQoJycpLCAnXFx0XFxuXFxmXFxyIFwiJlxcJy89PmAnLnNwbGl0KCcnKV0sXG4gICAgWydcXDBcXHRcXG5cXGZcXHIgXCImXFwnLzw9Picuc3BsaXQoJycpLCAnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJy88PT5gJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0odW5xdW90ZWQpLXN0YXRlPi5cbiAgdW5xdW90ZWQ6IFtcbiAgICBbJ1xcdFxcblxcZlxcciAmPicuc3BsaXQoJycpLCAnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJzw9PmAnLnNwbGl0KCcnKV0sXG4gICAgWydcXDBcXHRcXG5cXGZcXHIgXCImXFwnPD0+YCcuc3BsaXQoJycpLCAnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJzw9PmAnLnNwbGl0KCcnKV1cbiAgXSxcbiAgLy8gU2VlOiA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jYXR0cmlidXRlLXZhbHVlLShzaW5nbGUtcXVvdGVkKS1zdGF0ZT4uXG4gIHNpbmdsZTogW1xuICAgIFtcIiYnXCIuc3BsaXQoJycpLCAnXCImXFwnYCcuc3BsaXQoJycpXSxcbiAgICBbXCJcXDAmJ1wiLnNwbGl0KCcnKSwgJ1xcMFwiJlxcJ2AnLnNwbGl0KCcnKV1cbiAgXSxcbiAgLy8gU2VlOiA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jYXR0cmlidXRlLXZhbHVlLShkb3VibGUtcXVvdGVkKS1zdGF0ZT4uXG4gIGRvdWJsZTogW1xuICAgIFsnXCImJy5zcGxpdCgnJyksICdcIiZcXCdgJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXCImJy5zcGxpdCgnJyksICdcXDBcIiZcXCdgJy5zcGxpdCgnJyldXG4gIF1cbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYW4gZWxlbWVudCBub2RlLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbGVtZW50KG5vZGUsIGluZGV4LCBwYXJlbnQsIHN0YXRlKSB7XG4gIGNvbnN0IHNjaGVtYSA9IHN0YXRlLnNjaGVtYVxuICBjb25zdCBvbWl0ID0gc2NoZW1hLnNwYWNlID09PSAnc3ZnJyA/IGZhbHNlIDogc3RhdGUuc2V0dGluZ3Mub21pdE9wdGlvbmFsVGFnc1xuICBsZXQgc2VsZkNsb3NpbmcgPVxuICAgIHNjaGVtYS5zcGFjZSA9PT0gJ3N2ZydcbiAgICAgID8gc3RhdGUuc2V0dGluZ3MuY2xvc2VFbXB0eUVsZW1lbnRzXG4gICAgICA6IHN0YXRlLnNldHRpbmdzLnZvaWRzLmluY2x1ZGVzKG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKVxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHBhcnRzID0gW11cbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBsYXN0XG5cbiAgaWYgKHNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnICYmIG5vZGUudGFnTmFtZSA9PT0gJ3N2ZycpIHtcbiAgICBzdGF0ZS5zY2hlbWEgPSBzdmdcbiAgfVxuXG4gIGNvbnN0IGF0dHJzID0gc2VyaWFsaXplQXR0cmlidXRlcyhzdGF0ZSwgbm9kZS5wcm9wZXJ0aWVzKVxuXG4gIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hbGwoXG4gICAgc2NoZW1hLnNwYWNlID09PSAnaHRtbCcgJiYgbm9kZS50YWdOYW1lID09PSAndGVtcGxhdGUnID8gbm9kZS5jb250ZW50IDogbm9kZVxuICApXG5cbiAgc3RhdGUuc2NoZW1hID0gc2NoZW1hXG5cbiAgLy8gSWYgdGhlIG5vZGUgaXMgY2F0ZWdvcmlzZWQgYXMgdm9pZCwgYnV0IGl0IGhhcyBjaGlsZHJlbiwgcmVtb3ZlIHRoZVxuICAvLyBjYXRlZ29yaXNhdGlvbi5cbiAgLy8gVGhpcyBlbmFibGVzIGZvciBleGFtcGxlIGBtZW51aXRlbWBzLCB3aGljaCBhcmUgdm9pZCBpbiBXM0MgSFRNTCBidXQgbm90XG4gIC8vIHZvaWQgaW4gV0hBVFdHIEhUTUwsIHRvIGJlIHN0cmluZ2lmaWVkIHByb3Blcmx5LlxuICAvLyBOb3RlOiBgbWVudWl0ZW1gIGhhcyBzaW5jZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgSFRNTCBzcGVjLCBhbmQgc28gaXMgbm9cbiAgLy8gbG9uZ2VyIHZvaWQuXG4gIGlmIChjb250ZW50KSBzZWxmQ2xvc2luZyA9IGZhbHNlXG5cbiAgaWYgKGF0dHJzIHx8ICFvbWl0IHx8ICFvcGVuaW5nKG5vZGUsIGluZGV4LCBwYXJlbnQpKSB7XG4gICAgcGFydHMucHVzaCgnPCcsIG5vZGUudGFnTmFtZSwgYXR0cnMgPyAnICcgKyBhdHRycyA6ICcnKVxuXG4gICAgaWYgKFxuICAgICAgc2VsZkNsb3NpbmcgJiZcbiAgICAgIChzY2hlbWEuc3BhY2UgPT09ICdzdmcnIHx8IHN0YXRlLnNldHRpbmdzLmNsb3NlU2VsZkNsb3NpbmcpXG4gICAgKSB7XG4gICAgICBsYXN0ID0gYXR0cnMuY2hhckF0KGF0dHJzLmxlbmd0aCAtIDEpXG4gICAgICBpZiAoXG4gICAgICAgICFzdGF0ZS5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nIHx8XG4gICAgICAgIGxhc3QgPT09ICcvJyB8fFxuICAgICAgICAobGFzdCAmJiBsYXN0ICE9PSAnXCInICYmIGxhc3QgIT09IFwiJ1wiKVxuICAgICAgKSB7XG4gICAgICAgIHBhcnRzLnB1c2goJyAnKVxuICAgICAgfVxuXG4gICAgICBwYXJ0cy5wdXNoKCcvJylcbiAgICB9XG5cbiAgICBwYXJ0cy5wdXNoKCc+JylcbiAgfVxuXG4gIHBhcnRzLnB1c2goY29udGVudClcblxuICBpZiAoIXNlbGZDbG9zaW5nICYmICghb21pdCB8fCAhY2xvc2luZyhub2RlLCBpbmRleCwgcGFyZW50KSkpIHtcbiAgICBwYXJ0cy5wdXNoKCc8LycgKyBub2RlLnRhZ05hbWUgKyAnPicpXG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbignJylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtQcm9wZXJ0aWVzIHwgbnVsbCB8IHVuZGVmaW5lZH0gcHJvcHNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHNlcmlhbGl6ZUF0dHJpYnV0ZXMoc3RhdGUsIHByb3BzKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgdmFsdWVzID0gW11cbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBrZXlcblxuICBpZiAocHJvcHMpIHtcbiAgICBmb3IgKGtleSBpbiBwcm9wcykge1xuICAgICAgaWYgKHByb3BzW2tleV0gIT09IG51bGwgJiYgcHJvcHNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gc2VyaWFsaXplQXR0cmlidXRlKHN0YXRlLCBrZXksIHByb3BzW2tleV0pXG4gICAgICAgIGlmICh2YWx1ZSkgdmFsdWVzLnB1c2godmFsdWUpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd2hpbGUgKCsraW5kZXggPCB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgY29uc3QgbGFzdCA9IHN0YXRlLnNldHRpbmdzLnRpZ2h0QXR0cmlidXRlc1xuICAgICAgPyB2YWx1ZXNbaW5kZXhdLmNoYXJBdCh2YWx1ZXNbaW5kZXhdLmxlbmd0aCAtIDEpXG4gICAgICA6IHVuZGVmaW5lZFxuXG4gICAgLy8gSW4gdGlnaHQgbW9kZSwgZG9uXHUyMDE5dCBhZGQgYSBzcGFjZSBhZnRlciBxdW90ZWQgYXR0cmlidXRlcy5cbiAgICBpZiAoaW5kZXggIT09IHZhbHVlcy5sZW5ndGggLSAxICYmIGxhc3QgIT09ICdcIicgJiYgbGFzdCAhPT0gXCInXCIpIHtcbiAgICAgIHZhbHVlc1tpbmRleF0gKz0gJyAnXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlcy5qb2luKCcnKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiBAcGFyYW0ge1Byb3BlcnRpZXNba2V5b2YgUHJvcGVydGllc119IHZhbHVlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBzZXJpYWxpemVBdHRyaWJ1dGUoc3RhdGUsIGtleSwgdmFsdWUpIHtcbiAgY29uc3QgaW5mbyA9IGZpbmQoc3RhdGUuc2NoZW1hLCBrZXkpXG4gIGNvbnN0IHggPVxuICAgIHN0YXRlLnNldHRpbmdzLmFsbG93UGFyc2VFcnJvcnMgJiYgc3RhdGUuc2NoZW1hLnNwYWNlID09PSAnaHRtbCcgPyAwIDogMVxuICBjb25zdCB5ID0gc3RhdGUuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzID8gMCA6IDFcbiAgbGV0IHF1b3RlID0gc3RhdGUucXVvdGVcbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGxldCByZXN1bHRcblxuICBpZiAoaW5mby5vdmVybG9hZGVkQm9vbGVhbiAmJiAodmFsdWUgPT09IGluZm8uYXR0cmlidXRlIHx8IHZhbHVlID09PSAnJykpIHtcbiAgICB2YWx1ZSA9IHRydWVcbiAgfSBlbHNlIGlmIChcbiAgICBpbmZvLmJvb2xlYW4gfHxcbiAgICAoaW5mby5vdmVybG9hZGVkQm9vbGVhbiAmJiB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKVxuICApIHtcbiAgICB2YWx1ZSA9IEJvb2xlYW4odmFsdWUpXG4gIH1cblxuICBpZiAoXG4gICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdmFsdWUgPT09IGZhbHNlIHx8XG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzTmFOKHZhbHVlKSlcbiAgKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBjb25zdCBuYW1lID0gc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgaW5mby5hdHRyaWJ1dGUsXG4gICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgLy8gQWx3YXlzIGVuY29kZSB3aXRob3V0IHBhcnNlIGVycm9ycyBpbiBub24tSFRNTC5cbiAgICAgIHN1YnNldDogY29uc3RhbnRzLm5hbWVbeF1beV1cbiAgICB9KVxuICApXG5cbiAgLy8gTm8gdmFsdWUuXG4gIC8vIFRoZXJlIGlzIGN1cnJlbnRseSBvbmx5IG9uZSBib29sZWFuIHByb3BlcnR5IGluIFNWRzogYFtkb3dubG9hZF1gIG9uXG4gIC8vIGA8YT5gLlxuICAvLyBUaGlzIHByb3BlcnR5IGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBicm93c2VycyAoRmlyZWZveCwgU2FmYXJpLCBDaHJvbWUpLFxuICAvLyBzbyBJIGNhblx1MjAxOXQgdGVzdCBpZiBkcm9wcGluZyB0aGUgdmFsdWUgd29ya3MuXG4gIC8vIEJ1dCBJIGFzc3VtZSB0aGF0IGl0IHNob3VsZDpcbiAgLy9cbiAgLy8gYGBgaHRtbFxuICAvLyA8IWRvY3R5cGUgaHRtbD5cbiAgLy8gPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIj5cbiAgLy8gICA8YSBocmVmPWh0dHBzOi8vZXhhbXBsZS5jb20gZG93bmxvYWQ+XG4gIC8vICAgICA8Y2lyY2xlIGN4PTUwIGN5PTQwIHI9MzUgLz5cbiAgLy8gICA8L2E+XG4gIC8vIDwvc3ZnPlxuICAvLyBgYGBcbiAgLy9cbiAgLy8gU2VlOiA8aHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9ibG9iL21haW4vbGliL3N2Zy5qcz5cbiAgaWYgKHZhbHVlID09PSB0cnVlKSByZXR1cm4gbmFtZVxuXG4gIC8vIGBzcGFjZXNgIGRvZXNuXHUyMDE5dCBhY2NlcHQgYSBzZWNvbmQgYXJndW1lbnQsIGJ1dCBpdFx1MjAxOXMgZ2l2ZW4gaGVyZSBqdXN0IHRvXG4gIC8vIGtlZXAgdGhlIGNvZGUgY2xlYW5lci5cbiAgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgID8gKGluZm8uY29tbWFTZXBhcmF0ZWQgPyBjb21tYXMgOiBzcGFjZXMpKHZhbHVlLCB7XG4gICAgICAgIHBhZExlZnQ6ICFzdGF0ZS5zZXR0aW5ncy50aWdodENvbW1hU2VwYXJhdGVkTGlzdHNcbiAgICAgIH0pXG4gICAgOiBTdHJpbmcodmFsdWUpXG5cbiAgaWYgKHN0YXRlLnNldHRpbmdzLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzICYmICF2YWx1ZSkgcmV0dXJuIG5hbWVcblxuICAvLyBDaGVjayB1bnF1b3RlZCB2YWx1ZS5cbiAgaWYgKHN0YXRlLnNldHRpbmdzLnByZWZlclVucXVvdGVkKSB7XG4gICAgcmVzdWx0ID0gc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgICB2YWx1ZSxcbiAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgYXR0cmlidXRlOiB0cnVlLFxuICAgICAgICBzdWJzZXQ6IGNvbnN0YW50cy51bnF1b3RlZFt4XVt5XVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICAvLyBJZiB3ZSBkb25cdTIwMTl0IHdhbnQgdW5xdW90ZWQsIG9yIGlmIGB2YWx1ZWAgY29udGFpbnMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgd2hlblxuICAvLyB1bnF1b3RlZFx1MjAyNlxuICBpZiAocmVzdWx0ICE9PSB2YWx1ZSkge1xuICAgIC8vIElmIHRoZSBhbHRlcm5hdGl2ZSBpcyBsZXNzIGNvbW1vbiB0aGFuIGBxdW90ZWAsIHN3aXRjaC5cbiAgICBpZiAoXG4gICAgICBzdGF0ZS5zZXR0aW5ncy5xdW90ZVNtYXJ0ICYmXG4gICAgICBjY291bnQodmFsdWUsIHF1b3RlKSA+IGNjb3VudCh2YWx1ZSwgc3RhdGUuYWx0ZXJuYXRpdmUpXG4gICAgKSB7XG4gICAgICBxdW90ZSA9IHN0YXRlLmFsdGVybmF0aXZlXG4gICAgfVxuXG4gICAgcmVzdWx0ID1cbiAgICAgIHF1b3RlICtcbiAgICAgIHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgICAgIC8vIEFsd2F5cyBlbmNvZGUgd2l0aG91dCBwYXJzZSBlcnJvcnMgaW4gbm9uLUhUTUwuXG4gICAgICAgICAgc3Vic2V0OiAocXVvdGUgPT09IFwiJ1wiID8gY29uc3RhbnRzLnNpbmdsZSA6IGNvbnN0YW50cy5kb3VibGUpW3hdW3ldLFxuICAgICAgICAgIGF0dHJpYnV0ZTogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgKSArXG4gICAgICBxdW90ZVxuICB9XG5cbiAgLy8gRG9uXHUyMDE5dCBhZGQgYSBgPWAgZm9yIHVucXVvdGVkIGVtcHRpZXMuXG4gIHJldHVybiBuYW1lICsgKHJlc3VsdCA/ICc9JyArIHJlc3VsdCA6IHJlc3VsdClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuVGV4dH0gVGV4dFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8taGFzdCcpLlJhd30gUmF3XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge3N0cmluZ2lmeUVudGl0aWVzfSBmcm9tICdzdHJpbmdpZnktZW50aXRpZXMnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgdGV4dCBub2RlLlxuICpcbiAqIEBwYXJhbSB7UmF3IHwgVGV4dH0gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBfXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRleHQobm9kZSwgXywgcGFyZW50LCBzdGF0ZSkge1xuICAvLyBDaGVjayBpZiBjb250ZW50IG9mIGBub2RlYCBzaG91bGQgYmUgZXNjYXBlZC5cbiAgcmV0dXJuIHBhcmVudCAmJlxuICAgIHBhcmVudC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAocGFyZW50LnRhZ05hbWUgPT09ICdzY3JpcHQnIHx8IHBhcmVudC50YWdOYW1lID09PSAnc3R5bGUnKVxuICAgID8gbm9kZS52YWx1ZVxuICAgIDogc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgICAgIG5vZGUudmFsdWUsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgICBzdWJzZXQ6IFsnPCcsICcmJ11cbiAgICAgICAgfSlcbiAgICAgIClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1oYXN0JykuUmF3fSBSYXdcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7dGV4dH0gZnJvbSAnLi90ZXh0LmpzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHJhdyBub2RlLlxuICpcbiAqIEBwYXJhbSB7UmF3fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhdyhub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSkge1xuICByZXR1cm4gc3RhdGUuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNIdG1sXG4gICAgPyBub2RlLnZhbHVlXG4gICAgOiB0ZXh0KG5vZGUsIGluZGV4LCBwYXJlbnQsIHN0YXRlKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290fSBSb290XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG4vLyBNYWtlIFZTIGNvZGUgc2VlIHJlZmVyZW5jZXMgdG8gdGhlIGFib3ZlIHR5cGVzLlxuJydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSByb290LlxuICpcbiAqIEBwYXJhbSB7Um9vdH0gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBfMVxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gXzJcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3Qobm9kZSwgXzEsIF8yLCBzdGF0ZSkge1xuICByZXR1cm4gc3RhdGUuYWxsKG5vZGUpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHt6d2l0Y2h9IGZyb20gJ3p3aXRjaCdcbmltcG9ydCB7Y29tbWVudH0gZnJvbSAnLi9jb21tZW50LmpzJ1xuaW1wb3J0IHtkb2N0eXBlfSBmcm9tICcuL2RvY3R5cGUuanMnXG5pbXBvcnQge2VsZW1lbnR9IGZyb20gJy4vZWxlbWVudC5qcydcbmltcG9ydCB7cmF3fSBmcm9tICcuL3Jhdy5qcydcbmltcG9ydCB7cm9vdH0gZnJvbSAnLi9yb290LmpzJ1xuaW1wb3J0IHt0ZXh0fSBmcm9tICcuL3RleHQuanMnXG5cbi8qKlxuICogQHR5cGUgeyhub2RlOiBOb2RlcywgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCwgcGFyZW50OiBQYXJlbnRzIHwgdW5kZWZpbmVkLCBzdGF0ZTogU3RhdGUpID0+IHN0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IGhhbmRsZSA9IHp3aXRjaCgndHlwZScsIHtcbiAgaW52YWxpZCxcbiAgdW5rbm93bixcbiAgaGFuZGxlcnM6IHtjb21tZW50LCBkb2N0eXBlLCBlbGVtZW50LCByYXcsIHJvb3QsIHRleHR9XG59KVxuXG4vKipcbiAqIEZhaWwgd2hlbiBhIG5vbi1ub2RlIGlzIGZvdW5kIGluIHRoZSB0cmVlLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gbm9kZVxuICogICBVbmtub3duIHZhbHVlLlxuICogQHJldHVybnMge25ldmVyfVxuICogICBOZXZlci5cbiAqL1xuZnVuY3Rpb24gaW52YWxpZChub2RlKSB7XG4gIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbm9kZSwgbm90IGAnICsgbm9kZSArICdgJylcbn1cblxuLyoqXG4gKiBGYWlsIHdoZW4gYSBub2RlIHdpdGggYW4gdW5rbm93biB0eXBlIGlzIGZvdW5kIGluIHRoZSB0cmVlLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gbm9kZV9cbiAqICBVbmtub3duIG5vZGUuXG4gKiBAcmV0dXJucyB7bmV2ZXJ9XG4gKiAgIE5ldmVyLlxuICovXG5mdW5jdGlvbiB1bmtub3duKG5vZGVfKSB7XG4gIC8vIGB0eXBlYCBpcyBndWFyYW50ZWVkIGJ5IHJ1bnRpbWUgSlMuXG4gIGNvbnN0IG5vZGUgPSAvKiogQHR5cGUge05vZGVzfSAqLyAobm9kZV8pXG4gIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbXBpbGUgdW5rbm93biBub2RlIGAnICsgbm9kZS50eXBlICsgJ2AnKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290Q29udGVudH0gUm9vdENvbnRlbnRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpLlNjaGVtYX0gU2NoZW1hXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnc3RyaW5naWZ5LWVudGl0aWVzJykuT3B0aW9uc30gU3RyaW5naWZ5RW50aXRpZXNPcHRpb25zXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T21pdDxTdHJpbmdpZnlFbnRpdGllc09wdGlvbnMsICdhdHRyaWJ1dGUnIHwgJ2VzY2FwZU9ubHknIHwgJ3N1YnNldCc+fSBDaGFyYWN0ZXJSZWZlcmVuY2VzXG4gKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycz1mYWxzZV1cbiAqICAgRG8gbm90IGVuY29kZSBzb21lIGNoYXJhY3RlcnMgd2hpY2ggY2F1c2UgWFNTIHZ1bG5lcmFiaWxpdGllcyBpbiBvbGRlclxuICogICBicm93c2VycyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICA+IFx1MjZBMFx1RkUwRiAqKkRhbmdlcioqOiBvbmx5IHNldCB0aGlzIGlmIHlvdSBjb21wbGV0ZWx5IHRydXN0IHRoZSBjb250ZW50LlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FsbG93RGFuZ2Vyb3VzSHRtbD1mYWxzZV1cbiAqICAgQWxsb3cgYHJhd2Agbm9kZXMgYW5kIGluc2VydCB0aGVtIGFzIHJhdyBIVE1MIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIFdoZW4gYGZhbHNlYCwgYFJhd2Agbm9kZXMgYXJlIGVuY29kZWQuXG4gKlxuICogICA+IFx1MjZBMFx1RkUwRiAqKkRhbmdlcioqOiBvbmx5IHNldCB0aGlzIGlmIHlvdSBjb21wbGV0ZWx5IHRydXN0IHRoZSBjb250ZW50LlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FsbG93UGFyc2VFcnJvcnM9ZmFsc2VdXG4gKiAgIERvIG5vdCBlbmNvZGUgY2hhcmFjdGVycyB3aGljaCBjYXVzZSBwYXJzZSBlcnJvcnMgKGV2ZW4gdGhvdWdoIHRoZXkgd29yayksXG4gKiAgIHRvIHNhdmUgYnl0ZXMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBpbnRlbnRpb25hbGx5IGNyZWF0ZXMgcGFyc2UgZXJyb3JzIGluIG1hcmt1cCAoaG93IHBhcnNlXG4gKiAgID4gZXJyb3JzIGFyZSBoYW5kbGVkIGlzIHdlbGwgZGVmaW5lZCwgc28gdGhpcyB3b3JrcyBidXQgaXNuXHUyMDE5dCBwcmV0dHkpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2JvZ3VzQ29tbWVudHM9ZmFsc2VdXG4gKiAgIFVzZSBcdTIwMUNib2d1cyBjb21tZW50c1x1MjAxRCBpbnN0ZWFkIG9mIGNvbW1lbnRzIHRvIHNhdmUgYnllczogYDw/Y2hhcmxpZT5gXG4gKiAgIGluc3RlYWQgb2YgYDwhLS1jaGFybGllLS0+YCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Q2hhcmFjdGVyUmVmZXJlbmNlcyB8IG51bGwgfCB1bmRlZmluZWR9IFtjaGFyYWN0ZXJSZWZlcmVuY2VzXVxuICogICBDb25maWd1cmUgaG93IHRvIHNlcmlhbGl6ZSBjaGFyYWN0ZXIgcmVmZXJlbmNlcyAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Nsb3NlRW1wdHlFbGVtZW50cz1mYWxzZV1cbiAqICAgQ2xvc2UgU1ZHIGVsZW1lbnRzIHdpdGhvdXQgYW55IGNvbnRlbnQgd2l0aCBzbGFzaCAoYC9gKSBvbiB0aGUgb3BlbmluZyB0YWdcbiAqICAgaW5zdGVhZCBvZiBhbiBlbmQgdGFnOiBgPGNpcmNsZSAvPmAgaW5zdGVhZCBvZiBgPGNpcmNsZT48L2NpcmNsZT5gXG4gKiAgIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIFNlZSBgdGlnaHRTZWxmQ2xvc2luZ2AgdG8gY29udHJvbCB3aGV0aGVyIGEgc3BhY2UgaXMgdXNlZCBiZWZvcmUgdGhlXG4gKiAgIHNsYXNoLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIEhUTUwgc3BhY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbY2xvc2VTZWxmQ2xvc2luZz1mYWxzZV1cbiAqICAgQ2xvc2Ugc2VsZi1jbG9zaW5nIG5vZGVzIHdpdGggYW4gZXh0cmEgc2xhc2ggKGAvYCk6IGA8aW1nIC8+YCBpbnN0ZWFkIG9mXG4gKiAgIGA8aW1nPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgU2VlIGB0aWdodFNlbGZDbG9zaW5nYCB0byBjb250cm9sIHdoZXRoZXIgYSBzcGFjZSBpcyB1c2VkIGJlZm9yZSB0aGVcbiAqICAgc2xhc2guXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzPWZhbHNlXVxuICogICBDb2xsYXBzZSBlbXB0eSBhdHRyaWJ1dGVzOiBnZXQgYGNsYXNzYCBpbnN0ZWFkIG9mIGBjbGFzcz1cIlwiYCAoZGVmYXVsdDpcbiAqICAgYGZhbHNlYCkuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGJvb2xlYW4gYXR0cmlidXRlcyAoc3VjaCBhcyBgaGlkZGVuYCkgYXJlIGFsd2F5cyBjb2xsYXBzZWQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbb21pdE9wdGlvbmFsVGFncz1mYWxzZV1cbiAqICAgT21pdCBvcHRpb25hbCBvcGVuaW5nIGFuZCBjbG9zaW5nIHRhZ3MgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgRm9yIGV4YW1wbGUsIGluIGA8b2w+PGxpPm9uZTwvbGk+PGxpPnR3bzwvbGk+PC9vbD5gLCBib3RoIGA8L2xpPmAgY2xvc2luZ1xuICogICB0YWdzIGNhbiBiZSBvbWl0dGVkLlxuICogICBUaGUgZmlyc3QgYmVjYXVzZSBpdFx1MjAxOXMgZm9sbG93ZWQgYnkgYW5vdGhlciBgbGlgLCB0aGUgbGFzdCBiZWNhdXNlIGl0XHUyMDE5c1xuICogICBmb2xsb3dlZCBieSBub3RoaW5nLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtwcmVmZXJVbnF1b3RlZD1mYWxzZV1cbiAqICAgTGVhdmUgYXR0cmlidXRlcyB1bnF1b3RlZCBpZiB0aGF0IHJlc3VsdHMgaW4gbGVzcyBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICogQHByb3BlcnR5IHtRdW90ZSB8IG51bGwgfCB1bmRlZmluZWR9IFtxdW90ZT0nXCInXVxuICogICBQcmVmZXJyZWQgcXVvdGUgdG8gdXNlIChkZWZhdWx0OiBgJ1wiJ2ApLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3F1b3RlU21hcnQ9ZmFsc2VdXG4gKiAgIFVzZSB0aGUgb3RoZXIgcXVvdGUgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICogQHByb3BlcnR5IHtTcGFjZSB8IG51bGwgfCB1bmRlZmluZWR9IFtzcGFjZT0naHRtbCddXG4gKiAgIFdoZW4gYW4gYDxzdmc+YCBlbGVtZW50IGlzIGZvdW5kIGluIHRoZSBIVE1MIHNwYWNlLCB0aGlzIHBhY2thZ2UgYWxyZWFkeVxuICogICBhdXRvbWF0aWNhbGx5IHN3aXRjaGVzIHRvIGFuZCBmcm9tIHRoZSBTVkcgc3BhY2Ugd2hlbiBlbnRlcmluZyBhbmQgZXhpdGluZ1xuICogICBpdCAoZGVmYXVsdDogYCdodG1sJ2ApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGhhc3QgaXMgbm90IFhNTC5cbiAqICAgPiBJdCBzdXBwb3J0cyBTVkcgYXMgZW1iZWRkZWQgaW4gSFRNTC5cbiAqICAgPiBJdCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmZWF0dXJlcyBhdmFpbGFibGUgaW4gWE1MLlxuICogICA+IFBhc3NpbmcgU1ZHIG1pZ2h0IGJyZWFrIGJ1dCBmcmFnbWVudHMgb2YgbW9kZXJuIFNWRyBzaG91bGQgYmUgZmluZS5cbiAqICAgPiBVc2UgW2B4YXN0YF1beGFzdF0gaWYgeW91IG5lZWQgdG8gc3VwcG9ydCBTVkcgYXMgWE1MLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0QXR0cmlidXRlcz1mYWxzZV1cbiAqICAgSm9pbiBhdHRyaWJ1dGVzIHRvZ2V0aGVyLCB3aXRob3V0IHdoaXRlc3BhY2UsIGlmIHBvc3NpYmxlOiBnZXRcbiAqICAgYGNsYXNzPVwiYSBiXCJ0aXRsZT1cImMgZFwiYCBpbnN0ZWFkIG9mIGBjbGFzcz1cImEgYlwiIHRpdGxlPVwiYyBkXCJgIHRvIHNhdmVcbiAqICAgYnl0ZXMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBpbnRlbnRpb25hbGx5IGNyZWF0ZXMgcGFyc2UgZXJyb3JzIGluIG1hcmt1cCAoaG93IHBhcnNlXG4gKiAgID4gZXJyb3JzIGFyZSBoYW5kbGVkIGlzIHdlbGwgZGVmaW5lZCwgc28gdGhpcyB3b3JrcyBidXQgaXNuXHUyMDE5dCBwcmV0dHkpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0cz1mYWxzZV1cbiAqICAgSm9pbiBrbm93biBjb21tYS1zZXBhcmF0ZWQgYXR0cmlidXRlIHZhbHVlcyB3aXRoIGp1c3QgYSBjb21tYSAoYCxgKSxcbiAqICAgaW5zdGVhZCBvZiBwYWRkaW5nIHRoZW0gb24gdGhlIHJpZ2h0IGFzIHdlbGwgKGAsXHUyNDIwYCwgd2hlcmUgYFx1MjQyMGAgcmVwcmVzZW50cyBhXG4gKiAgIHNwYWNlKSAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdGlnaHREb2N0eXBlPWZhbHNlXVxuICogICBEcm9wIHVubmVlZGVkIHNwYWNlcyBpbiBkb2N0eXBlczogYDwhZG9jdHlwZWh0bWw+YCBpbnN0ZWFkIG9mXG4gKiAgIGA8IWRvY3R5cGUgaHRtbD5gIHRvIHNhdmUgYnl0ZXMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdGlnaHRTZWxmQ2xvc2luZz1mYWxzZV1cbiAqICAgRG8gbm90IHVzZSBhbiBleHRyYSBzcGFjZSB3aGVuIGNsb3Npbmcgc2VsZi1jbG9zaW5nIGVsZW1lbnRzOiBgPGltZy8+YFxuICogICBpbnN0ZWFkIG9mIGA8aW1nIC8+YCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogb25seSB1c2VkIGlmIGBjbG9zZVNlbGZDbG9zaW5nOiB0cnVlYCBvclxuICogICA+IGBjbG9zZUVtcHR5RWxlbWVudHM6IHRydWVgLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3VwcGVyRG9jdHlwZT1mYWxzZV1cbiAqICAgVXNlIGEgYDwhRE9DVFlQRVx1MjAyNmAgaW5zdGVhZCBvZiBgPCFkb2N0eXBlXHUyMDI2YCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBVc2VsZXNzIGV4Y2VwdCBmb3IgWEhUTUwuXG4gKiBAcHJvcGVydHkge1JlYWRvbmx5QXJyYXk8c3RyaW5nPiB8IG51bGwgfCB1bmRlZmluZWR9IFt2b2lkc11cbiAqICAgVGFnIG5hbWVzIG9mIGVsZW1lbnRzIHRvIHNlcmlhbGl6ZSB3aXRob3V0IGNsb3NpbmcgdGFnIChkZWZhdWx0OiBgaHRtbC12b2lkLWVsZW1lbnRzYCkuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IEl0XHUyMDE5cyBoaWdobHkgdW5saWtlbHkgdGhhdCB5b3Ugd2FudCB0byBwYXNzIHRoaXMsIGJlY2F1c2VcbiAqICAgPiBoYXN0IGlzIG5vdCBmb3IgWE1MLCBhbmQgSFRNTCB3aWxsIG5vdCBhZGQgbW9yZSB2b2lkIGVsZW1lbnRzLlxuICpcbiAqIEB0eXBlZGVmIHsnXCInIHwgXCInXCJ9IFF1b3RlXG4gKiAgIEhUTUwgcXVvdGVzIGZvciBhdHRyaWJ1dGUgdmFsdWVzLlxuICpcbiAqIEB0eXBlZGVmIHtPbWl0PFJlcXVpcmVkPHtba2V5IGluIGtleW9mIE9wdGlvbnNdOiBFeGNsdWRlPE9wdGlvbnNba2V5XSwgbnVsbCB8IHVuZGVmaW5lZD59PiwgJ3NwYWNlJyB8ICdxdW90ZSc+fSBTZXR0aW5nc1xuICpcbiAqIEB0eXBlZGVmIHsnaHRtbCcgfCAnc3ZnJ30gU3BhY2VcbiAqICAgTmFtZXNwYWNlLlxuICpcbiAqIEB0eXBlZGVmIFN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IE5vZGVzLCBpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkLCBwYXJlbnQ6IFBhcmVudHMgfCB1bmRlZmluZWQpID0+IHN0cmluZ30gb25lXG4gKiAgIFNlcmlhbGl6ZSBvbmUgbm9kZS5cbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IFBhcmVudHMgfCB1bmRlZmluZWQpID0+IHN0cmluZ30gYWxsXG4gKiAgIFNlcmlhbGl6ZSB0aGUgY2hpbGRyZW4gb2YgYSBwYXJlbnQgbm9kZS5cbiAqIEBwcm9wZXJ0eSB7U2V0dGluZ3N9IHNldHRpbmdzXG4gKiAgIFVzZXIgY29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7U2NoZW1hfSBzY2hlbWFcbiAqICAgQ3VycmVudCBzY2hlbWEuXG4gKiBAcHJvcGVydHkge1F1b3RlfSBxdW90ZVxuICogICBQcmVmZXJyZWQgcXVvdGUuXG4gKiBAcHJvcGVydHkge1F1b3RlfSBhbHRlcm5hdGl2ZVxuICogICBBbHRlcm5hdGl2ZSBxdW90ZS5cbiAqL1xuXG5pbXBvcnQge2h0bWxWb2lkRWxlbWVudHN9IGZyb20gJ2h0bWwtdm9pZC1lbGVtZW50cydcbmltcG9ydCB7aHRtbCwgc3ZnfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7aGFuZGxlfSBmcm9tICcuL2hhbmRsZS9pbmRleC5qcydcblxuLyoqIEB0eXBlIHtPcHRpb25zfSAqL1xuY29uc3QgZW1wdHlPcHRpb25zID0ge31cblxuLyoqIEB0eXBlIHtDaGFyYWN0ZXJSZWZlcmVuY2VzfSAqL1xuY29uc3QgZW1wdHlDaGFyYWN0ZXJSZWZlcmVuY2VzID0ge31cblxuLyoqIEB0eXBlIHtBcnJheTxuZXZlcj59ICovXG5jb25zdCBlbXB0eUNoaWxkcmVuID0gW11cblxuLyoqXG4gKiBTZXJpYWxpemUgaGFzdCBhcyBIVE1MLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8Um9vdENvbnRlbnQ+IHwgTm9kZXN9IHRyZWVcbiAqICAgVHJlZSB0byBzZXJpYWxpemUuXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9IdG1sKHRyZWUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgb3B0aW9uc18gPSBvcHRpb25zIHx8IGVtcHR5T3B0aW9uc1xuICBjb25zdCBxdW90ZSA9IG9wdGlvbnNfLnF1b3RlIHx8ICdcIidcbiAgY29uc3QgYWx0ZXJuYXRpdmUgPSBxdW90ZSA9PT0gJ1wiJyA/IFwiJ1wiIDogJ1wiJ1xuXG4gIGlmIChxdW90ZSAhPT0gJ1wiJyAmJiBxdW90ZSAhPT0gXCInXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcXVvdGUgYCcgKyBxdW90ZSArICdgLCBleHBlY3RlZCBgXFwnYCBvciBgXCJgJylcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGNvbnN0IHN0YXRlID0ge1xuICAgIG9uZSxcbiAgICBhbGwsXG4gICAgc2V0dGluZ3M6IHtcbiAgICAgIG9taXRPcHRpb25hbFRhZ3M6IG9wdGlvbnNfLm9taXRPcHRpb25hbFRhZ3MgfHwgZmFsc2UsXG4gICAgICBhbGxvd1BhcnNlRXJyb3JzOiBvcHRpb25zXy5hbGxvd1BhcnNlRXJyb3JzIHx8IGZhbHNlLFxuICAgICAgYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzOiBvcHRpb25zXy5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnMgfHwgZmFsc2UsXG4gICAgICBxdW90ZVNtYXJ0OiBvcHRpb25zXy5xdW90ZVNtYXJ0IHx8IGZhbHNlLFxuICAgICAgcHJlZmVyVW5xdW90ZWQ6IG9wdGlvbnNfLnByZWZlclVucXVvdGVkIHx8IGZhbHNlLFxuICAgICAgdGlnaHRBdHRyaWJ1dGVzOiBvcHRpb25zXy50aWdodEF0dHJpYnV0ZXMgfHwgZmFsc2UsXG4gICAgICB1cHBlckRvY3R5cGU6IG9wdGlvbnNfLnVwcGVyRG9jdHlwZSB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0RG9jdHlwZTogb3B0aW9uc18udGlnaHREb2N0eXBlIHx8IGZhbHNlLFxuICAgICAgYm9ndXNDb21tZW50czogb3B0aW9uc18uYm9ndXNDb21tZW50cyB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0czogb3B0aW9uc18udGlnaHRDb21tYVNlcGFyYXRlZExpc3RzIHx8IGZhbHNlLFxuICAgICAgdGlnaHRTZWxmQ2xvc2luZzogb3B0aW9uc18udGlnaHRTZWxmQ2xvc2luZyB8fCBmYWxzZSxcbiAgICAgIGNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzOiBvcHRpb25zXy5jb2xsYXBzZUVtcHR5QXR0cmlidXRlcyB8fCBmYWxzZSxcbiAgICAgIGFsbG93RGFuZ2Vyb3VzSHRtbDogb3B0aW9uc18uYWxsb3dEYW5nZXJvdXNIdG1sIHx8IGZhbHNlLFxuICAgICAgdm9pZHM6IG9wdGlvbnNfLnZvaWRzIHx8IGh0bWxWb2lkRWxlbWVudHMsXG4gICAgICBjaGFyYWN0ZXJSZWZlcmVuY2VzOlxuICAgICAgICBvcHRpb25zXy5jaGFyYWN0ZXJSZWZlcmVuY2VzIHx8IGVtcHR5Q2hhcmFjdGVyUmVmZXJlbmNlcyxcbiAgICAgIGNsb3NlU2VsZkNsb3Npbmc6IG9wdGlvbnNfLmNsb3NlU2VsZkNsb3NpbmcgfHwgZmFsc2UsXG4gICAgICBjbG9zZUVtcHR5RWxlbWVudHM6IG9wdGlvbnNfLmNsb3NlRW1wdHlFbGVtZW50cyB8fCBmYWxzZVxuICAgIH0sXG4gICAgc2NoZW1hOiBvcHRpb25zXy5zcGFjZSA9PT0gJ3N2ZycgPyBzdmcgOiBodG1sLFxuICAgIHF1b3RlLFxuICAgIGFsdGVybmF0aXZlXG4gIH1cblxuICByZXR1cm4gc3RhdGUub25lKFxuICAgIEFycmF5LmlzQXJyYXkodHJlZSkgPyB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogdHJlZX0gOiB0cmVlLFxuICAgIHVuZGVmaW5lZCxcbiAgICB1bmRlZmluZWRcbiAgKVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIG5vZGUuXG4gKlxuICogQHRoaXMge1N0YXRlfVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge05vZGVzfSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZnVuY3Rpb24gb25lKG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgcmV0dXJuIGhhbmRsZShub2RlLCBpbmRleCwgcGFyZW50LCB0aGlzKVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhbGwgY2hpbGRyZW4gb2YgYHBhcmVudGAuXG4gKlxuICogQHRoaXMge1N0YXRlfVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgd2hvc2UgY2hpbGRyZW4gdG8gc2VyaWFsaXplLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFsbChwYXJlbnQpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHRzID0gW11cbiAgY29uc3QgY2hpbGRyZW4gPSAocGFyZW50ICYmIHBhcmVudC5jaGlsZHJlbikgfHwgZW1wdHlDaGlsZHJlblxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgcmVzdWx0c1tpbmRleF0gPSB0aGlzLm9uZShjaGlsZHJlbltpbmRleF0sIGluZGV4LCBwYXJlbnQpXG4gIH1cblxuICByZXR1cm4gcmVzdWx0cy5qb2luKCcnKVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FBQSxTQUEyQ0EsSUFBTUMsSUFBQUE7QUFDMUIsa0JBQUEsT0FBWkMsV0FBMEMsWUFBQSxPQUFYQyxVQUN4Q0EsUUFBT0QsVUFBVUQsR0FBQUEsSUFDUSxjQUFBLE9BQVhHLFVBQXlCQSxPQUFPQyxNQUM5Q0QsT0FBTyxDQUFBLEdBQUlILEVBQUFBLElBQ2UsWUFBQSxPQUFaQyxVQUNkQSxRQUFlLFFBQUlELEdBQUFBLElBRW5CRCxHQUFZLFFBQUlDLEdBQUFBO0lBQ2pCLEVBQUVLLE1BQU0sT0FDVCxNQUFBO0FBQUE7QUNUQSxVQUFJQyxLQUFzQixFQ0ExQkEsR0FBd0IsQ0FBQ0wsSUFBU00sT0FBQUE7QUFDakMsaUJBQVFDLE1BQU9EO0FBQ1hELFVBQUFBLEdBQW9CRyxFQUFFRixJQUFZQyxFQUFBQSxLQUFBQSxDQUFTRixHQUFvQkcsRUFBRVIsSUFBU08sRUFBQUEsS0FDNUVFLE9BQU9DLGVBQWVWLElBQVNPLElBQUssRUFBRUksWUFBQUEsTUFBa0JDLEtBQUtOLEdBQVdDLEVBQUFBLEVBQUFBLENBQUFBO01BRTFFLEdDTkRGLEdBQXdCLENBQUNRLElBQUtDLE9BQVVMLE9BQU9NLFVBQVVDLGVBQWVDLEtBQUtKLElBQUtDLEVBQUFBLEdDQ2xGVCxHQUF5QkwsQ0FBQUEsT0FBQUE7QUFDSCx1QkFBQSxPQUFYa0IsVUFB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RTFDLElBQU0sa0JBQTJDO0FBQUE7QUFBQTtBQUFBLEVBRWhELFNBQVM7QUFBQSxFQUNULGFBQWE7QUFBQSxFQUNiLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLFVBQVU7QUFBQSxFQUNWLE1BQU07QUFBQSxFQUNOLGNBQWM7QUFBQSxFQUNkLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFVBQVU7QUFBQSxFQUNWLFdBQVc7QUFBQSxFQUNYLE9BQU87QUFBQSxFQUNQLFlBQVk7QUFBQSxFQUNaLFFBQVE7QUFBQSxFQUNSLFVBQVU7QUFBQSxFQUNWLFdBQVc7QUFBQSxFQUNYLFlBQVk7QUFBQSxFQUNaLGNBQWM7QUFBQSxFQUNkLFVBQVU7QUFBQSxFQUNWLFlBQVk7QUFBQSxFQUNaLE9BQU87QUFBQSxFQUNQLFlBQVk7QUFBQSxFQUNaLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLFNBQVM7QUFBQSxFQUNULFVBQVU7QUFBQSxFQUNWLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFdBQVc7QUFBQSxFQUNYLFVBQVU7QUFBQSxFQUNWLE1BQU07QUFBQSxFQUNOLFVBQVU7QUFBQSxFQUNWLE9BQU87QUFBQSxFQUNQLFlBQVk7QUFBQSxFQUNaLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULFVBQVU7QUFBQSxFQUNWLFdBQVc7QUFBQSxFQUNYLFlBQVk7QUFBQSxFQUNaLFFBQVE7QUFBQSxFQUNSLFNBQVM7QUFBQSxFQUNULFNBQVM7QUFBQSxFQUNULFVBQVU7QUFBQSxFQUNWLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLGNBQWM7QUFBQSxFQUNkLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLGFBQWE7QUFBQSxFQUNiLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWLGlCQUFpQjtBQUFBLEVBQ2pCLFlBQVk7QUFBQSxFQUNaLGNBQWM7QUFBQSxFQUNkLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLGdCQUFnQjtBQUFBLEVBQ2hCLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLGlCQUFpQjtBQUFBLEVBQ2pCLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLDRCQUE0QjtBQUFBLEVBQzVCLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLHFCQUFxQjtBQUFBLEVBQ3JCLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULFlBQVk7QUFBQSxFQUNaLFVBQVU7QUFBQSxFQUNWLFdBQVc7QUFBQSxFQUNYLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLGlCQUFpQjtBQUFBLEVBQ2pCLE1BQU07QUFBQSxFQUNOLGFBQWE7QUFBQSxFQUNiLFVBQVU7QUFBQSxFQUNWLFdBQVc7QUFBQSxFQUNYLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLGFBQWE7QUFBQSxFQUNiLHNCQUFzQjtBQUFBLEVBQ3RCLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLGFBQWE7QUFBQSxFQUNiLFlBQVk7QUFBQSxFQUNaLGFBQWE7QUFBQSxFQUNiLFdBQVc7QUFBQSxFQUNYLFdBQVc7QUFBQSxFQUNYLGVBQWU7QUFBQSxFQUNmLGtCQUFrQjtBQUFBLEVBQ2xCLE1BQU07QUFBQSxFQUNOLFNBQVM7QUFBQSxFQUNULGFBQWE7QUFBQSxFQUNiLFFBQVE7QUFBQSxFQUNSLGVBQWU7QUFBQSxFQUNmLFNBQVM7QUFBQSxFQUNULFNBQVM7QUFBQSxFQUNULGdCQUFnQjtBQUFBLEVBQ2hCLGdCQUFnQjtBQUFBLEVBQ2hCLGNBQWM7QUFBQSxFQUNkLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLFdBQVc7QUFBQSxFQUNYLFlBQVk7QUFBQSxFQUNaLE1BQU07QUFBQSxFQUNOLFNBQVM7QUFBQSxFQUNULFNBQVM7QUFBQSxFQUNULGNBQWM7QUFBQSxFQUNkLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFdBQVc7QUFBQSxFQUNYLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLHFCQUFxQjtBQUFBLEVBQ3JCLFVBQVU7QUFBQSxFQUNWLGFBQWE7QUFBQSxFQUNiLE9BQU87QUFBQSxFQUNQLFlBQVk7QUFBQSxFQUNaLFdBQVc7QUFBQSxFQUNYLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFNBQVM7QUFBQSxFQUNULG1CQUFtQjtBQUFBLEVBQ25CLGNBQWM7QUFBQSxFQUNkLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFNBQVM7QUFBQSxFQUNULFFBQVE7QUFBQSxFQUNSLGNBQWM7QUFBQSxFQUNkLFFBQVE7QUFBQSxFQUNSLFNBQVM7QUFBQSxFQUNULFVBQVU7QUFBQSxFQUNWLFlBQVk7QUFBQSxFQUNaLFFBQVE7QUFBQSxFQUNSLFVBQVU7QUFBQSxFQUNWLGdCQUFnQjtBQUFBLEVBQ2hCLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLE1BQU07QUFBQSxFQUNOLGNBQWM7QUFBQSxFQUNkLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLGNBQWM7QUFBQSxFQUNkLGFBQWE7QUFBQSxFQUNiLFlBQVk7QUFBQSxFQUNaLFNBQVM7QUFBQSxFQUNULGNBQWM7QUFBQSxFQUNkLE1BQU07QUFBQSxFQUNOLFdBQVc7QUFBQSxFQUNYLGNBQWM7QUFBQSxFQUNkLFVBQVU7QUFBQSxFQUNWLGNBQWM7QUFBQSxFQUNkLFlBQVk7QUFBQSxFQUNaLGFBQWE7QUFBQSxFQUNiLFVBQVU7QUFBQSxFQUNWLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLFVBQVU7QUFBQSxFQUNWLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLGtCQUFrQjtBQUFBLEVBQ2xCLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLGlCQUFpQjtBQUFBLEVBQ2pCLGNBQWM7QUFBQSxFQUNkLGdCQUFnQjtBQUFBLEVBQ2hCLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULFlBQVk7QUFBQSxFQUNaLE9BQU87QUFBQSxFQUNQLGlCQUFpQjtBQUFBLEVBQ2pCLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLE1BQU07QUFBQSxFQUNOLGNBQWM7QUFBQSxFQUNkLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULFNBQVM7QUFBQSxFQUNULGlCQUFpQjtBQUFBLEVBQ2pCLFVBQVU7QUFBQSxFQUNW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YixjQUFhO0FBQUEsRUFDYixRQUFPO0FBQUEsRUFDUCxPQUFNO0FBQUEsRUFDTixXQUFVO0FBQUEsRUFDVixPQUFNO0FBQUEsRUFDTixTQUFRO0FBQUEsRUFDUixZQUFXO0FBQUEsRUFDWCxZQUFXO0FBQUEsRUFDWCxNQUFLO0FBQUEsRUFDTCxxQkFBb0I7QUFBQSxFQUNwQixRQUFPO0FBQUEsRUFDUCxVQUFTO0FBQUEsRUFDVCxhQUFZO0FBQUEsRUFDWixPQUFNO0FBQUEsRUFDTixXQUFVO0FBQUEsRUFDVixZQUFXO0FBQUEsRUFDWCxTQUFRO0FBQUEsRUFDUixXQUFVO0FBQUEsRUFDVixVQUFTO0FBQUEsRUFDVCxjQUFhO0FBQUEsRUFDYixRQUFPO0FBQUEsRUFDUCxRQUFPO0FBQUEsRUFDUCxRQUFPO0FBQUEsRUFDUCxTQUFRO0FBQUEsRUFDUixtQkFBa0I7QUFBQSxFQUNsQixjQUFhO0FBQUEsRUFDYixRQUFPO0FBQUEsRUFDUCxRQUFPO0FBQUEsRUFDUCxRQUFPO0FBQUEsRUFDUCxTQUFRO0FBQUEsRUFDUixTQUFRO0FBQUEsRUFDUixPQUFNO0FBQUEsRUFDTixPQUFNO0FBQUEsRUFDTixRQUFPO0FBQUEsRUFDUCxjQUFhO0FBQUEsRUFDYixRQUFPO0FBQUEsRUFDUCxTQUFRO0FBQUEsRUFDUixRQUFPO0FBQUEsRUFDUCxVQUFTO0FBQUEsRUFDVCxZQUFXO0FBQUEsRUFDWCxRQUFPO0FBQUEsRUFDUCxNQUFLO0FBQUEsRUFDTCxVQUFTO0FBQUEsRUFDVCxVQUFTO0FBQUEsRUFDVCxVQUFTO0FBQUEsRUFDVCxhQUFZO0FBQUEsRUFDWixPQUFNO0FBQUEsRUFDTixVQUFTO0FBQUEsRUFDVCxNQUFLO0FBQUEsRUFDTCxjQUFhO0FBQUEsRUFDYixTQUFRO0FBQUEsRUFDUixRQUFPO0FBQUEsRUFDUCxPQUFNO0FBQUEsRUFDTixVQUFTO0FBQUEsRUFDVCxjQUFhO0FBQUEsRUFDYixhQUFZO0FBQUEsRUFDWixZQUFXO0FBQUEsRUFDWCxTQUFRO0FBQUEsRUFDUixjQUFhO0FBQUEsRUFDYixNQUFLO0FB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QUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsUUFBUTtBQUFBLEVBQ1IsaUJBQWlCO0FBQUEsRUFDakIsVUFBVTtBQUFBLEVBQ1Ysa0JBQWtCO0FBQUEsRUFDbEIsZ0JBQWdCO0FBQUEsRUFDaEIsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sNEJBQTRCO0FBQUEsRUFDNUIsUUFBUTtBQUFBLEVBQ1IsV0FBVztBQUFBLEVBQ1gsZ0NBQWdDO0FBQUEsRUFDaEMsc0JBQXNCO0FBQUEsRUFDdEIsVUFBVTtBQUFBLEVBQ1YsWUFBWTtBQUFBLEVBQ1osT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsYUFBYTtBQUFBLEVBQ2IsTUFBTTtBQUFBLEVBQ04sVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsY0FBYztBQUFBLEVBQ2QsV0FBVztBQUFBLEVBQ1gsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsY0FBYztBQUFBLEVBQ2QsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsUUFBUTtBQUFBLEVBQ1IsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsY0FBYztBQUFBLEVBQ2QsWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVBQ1osVUFBVTtBQUFBLEVBQ1YsYUFBYTtBQUFBLEVBQ2IsT0FBTztBQUFBLEVBQ1AsV0FBVztBQUFBLEVBQ1gsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsaUJBQWlCO0FBQUEsRUFDakIsZUFBZTtBQUFBLEVBQ2YsU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsY0FBYztBQUFBLEVBQ2QsWUFBWTtBQUFBLEVBQ1osY0FBYztBQUFBLEVBQ2QsY0FBYztBQUFBLEVBQ2QsY0FBYztBQUFBLEVBQ2QsVUFBVTtBQUFBLEVBQ1Ysb0JBQW9CO0FBQUEsRUFDcEIsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsY0FBYztBQUFBLEVBQ2QsVUFBVTtBQUFBLEVBQ1YscUJBQXFCO0FBQUEsRUFDckIsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsVUFBVTtBQUFBLEVBQ1YsWUFBWTtBQUFBLEVBQ1osYUFBYTtBQUFBLEVBQ2IsYUFBYTtBQUFBLEVBQ2IsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsWUFBWTtBQUFBLEVBQ1osMkJBQTJCO0FBQUEsRUFDM0IsbUJBQW1CO0FBQUEsRUFDbkIsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsZUFBZTtBQUFBLEVBQ2YsZUFBZTtBQUFBLEVBQ2YsU0FBUztBQUFBLEVBQ1QsaUJBQWlCO0FBQUEsRUFDakIsU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsdUJBQXVCO0FBQUEsRUFDdkIsaUJBQWlCO0FBQUEsRUFDakIsVUFBVTtBQUFBLEVBQ1YsT0FBTztBQUFBLEVBQ1AscUNBQXFDO0FBQUEsRUFDckMsT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsYUFBYTtBQUFBLEVBQ2IsVUFBVTtBQUFBLEVBQ1YsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsOEJBQThCO0FBQUEsRUFDOUIsaUJB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QU0sV0FBVUEsR0FBRSxTQUFPLFdBQVVBLEdBQUUsT0FBSyxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxTQUFPLFdBQVVBLEdBQUUsTUFBSSxXQUFVQSxHQUFFLFNBQU8sV0FBVUEsR0FBRSxVQUFRLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLE9BQUssV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLE9BQUssV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsT0FBSyxXQUFVQSxHQUFFLE9BQUssV0FBVUEsR0FBRSxTQUFPLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGVBQWEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxTQUFPLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxXQUFTLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLE9BQUssV0FBVUEsR0FBRSxXQUFTLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxXQUFTLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxpQkFBZSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxlQUFhLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxVQUFRLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLE9BQUssV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLE9BQUssV0FBVUEsR0FBRSxXQUFTLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxTQUFPLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxXQUFTLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLHVCQUFxQixXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxlQUFhLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxpQkFBZSxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLG1CQUFpQixXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxlQUFhLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdBQUUsa0JBQWdCLFdBQVVBLEdBQUUsb0JBQWtCLFdBQVVBLEdBQUUsa0JBQWdCLFdBQVVBLEdBQUUsa0JBQWdCLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxVQUFRLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxTQUFPLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsT0FBSyxXQUFVQSxHQUFFLE9BQUssV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLFNBQU8sV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxTQUFPLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLE9BQUssV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLE1BQUksV0FBVUEsR0FBRSxVQUFRLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxTQUFPLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsZ0JBQWM7QUFBUyxFQUFFLE1BQUksSUFBRSxDQUFDLEVBQUU7QUFBRSxJQUFJO0FBQUosSUFBTTtBQUFOLElBQVEsSUFBRSxPQUFPLEtBQUssQ0FBQztBQUF2QixJQUF5QixJQUFFLEVBQUMsS0FBSSxDQUFDLEtBQUksS0FBSSxLQUFJLEdBQUcsR0FBRSxLQUFJLENBQUMsS0FBSSxLQUFJLEtBQUksR0FBRyxHQUFFLEtBQUksQ0FBQyxLQUFJLEtBQUksS0FBSSxHQUFHLEdBQUUsTUFBSyxDQUFDLEtBQUksS0FBSSxLQUFJLEtBQUksR0FBRyxFQUFDO0FBQXhILElBQTBILElBQUUsRUFBQyxLQUFJLEVBQUUsS0FBSSxNQUFLLEVBQUUsS0FBSSxLQUFJLEVBQUUsS0FBSSxNQUFLLEVBQUUsS0FBSSxNQUFLLEVBQUUsTUFBSyxPQUFNLEVBQUUsS0FBSTtBQUFFLENBQUMsU0FBU0EsSUFBRTtBQUFDLEVBQUFBLEdBQUUsU0FBTyxVQUFTQSxHQUFFLFVBQVE7QUFBUyxFQUFFLE1BQUksSUFBRSxDQUFDLEVBQUU7QUFBRSxJQUFJO0FBQUosSUFBTTtBQUFOLElBQVE7QUFBUixJQUFVLE1BQUksSUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUUsbUdBQWtHLEVBQUUsRUFBRSxHQUFHLElBQUUsZ05BQStNLEVBQUUsRUFBRSxHQUFHLElBQUUsd1BBQXVQLEVBQUUsRUFBRSxJQUFJLElBQUUsMlFBQTBRO0FBQXoyQixJQUE0MkIsSUFBRTtBQUE5MkIsSUFBNDVCLElBQUU7QUFBOTVCLElBQXk3QixJQUFFO0FBQTM3QixJQUFpOUIsSUFBRTtBQUFuOUIsSUFBZytCLElBQUU7QUFBbCtCLElBQSsrQixJQUFFO0FBQWovQixJQUFzL0IsSUFBRTtBQUF4L0IsSUFBa2pDLElBQUU7QUFBbUUsQ0FBQyxTQUFTQSxJQUFFO0FBQUMsRUFBQUEsR0FBRSxPQUFLLFFBQU9BLEdBQUUsVUFBUSxPQUFNQSxHQUFFLFdBQVMsUUFBT0EsR0FBRSxVQUFRLE9BQU1BLEdBQUUsUUFBTTtBQUFNLEVBQUUsTUFBSSxJQUFFLENBQUMsRUFBRSxHQUFFLFNBQVNBLElBQUU7QUFBQyxFQUFBQSxHQUFFLE9BQUssUUFBT0EsR0FBRSxVQUFRO0FBQVMsRUFBRSxNQUFJLElBQUUsQ0FBQyxFQUFFLEdBQUUsU0FBU0EsSUFBRTtBQUFDLEVBQUFBLEdBQUUsY0FBWSxlQUFjQSxHQUFFLE9BQUs7QUFBTSxFQUFFLE1BQUksSUFBRSxDQUFDLEVBQUU7QUFBRSxJQUFJO0FBQUosSUFBTTtBQUFOLElBQVE7QUFBUixJQUFVO0FBQVYsSUFBWTtBQUFaLElBQWM7QUFBZCxJQUFnQixJQUFFLEVBQUMsVUFBUyxHQUFFLFdBQVUsT0FBRyxtQkFBa0IsT0FBRyxZQUFXLEVBQUUsTUFBSyxTQUFRLEVBQUUsTUFBSyxVQUFTLEVBQUUsU0FBUSxXQUFVLEVBQUUsTUFBSyxjQUFhLEVBQUUsWUFBVztBQUEvSixJQUFpSyxJQUFFLFNBQVNBLElBQUVDLElBQUU7QUFBQyxTQUFPLE9BQU8sVUFBVSxlQUFlLEtBQUtELElBQUVDLEVBQUM7QUFBQztBQUFqTyxJQUFtTyxJQUFFLFNBQVNELElBQUU7QUFBQyxTQUFNLENBQUMsR0FBRyxPQUFPQSxFQUFDLEVBQUUsUUFBUSxHQUFFLElBQUk7QUFBQztBQUFwUixJQUFzUixJQUFFLFNBQVNBLElBQUU7QUFBQyxTQUFPLEVBQUUsS0FBSyxHQUFHLE9BQU9BLEVBQUMsQ0FBQyxJQUFFLEVBQUVBLEVBQUMsSUFBRSxLQUFLLElBQUksQ0FBQ0EsSUFBRSxHQUFHO0FBQUM7QUFBclYsSUFBdVYsSUFBRSxTQUFTQSxJQUFFO0FBQUMsU0FBTyxNQUFJQSxHQUFFLFdBQVNBLE1BQUdBLEtBQUcsU0FBU0EsSUFBRSxFQUFFO0FBQUM7QUFBL1ksSUFBaVosSUFBRSxTQUFTQSxJQUFFO0FBQUMsTUFBSUMsS0FBRSxFQUFFRCxJQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxZQUFZO0FBQUUsU0FBTyxNQUFJQyxHQUFFLFNBQU8sTUFBTSxPQUFPQSxFQUFDLElBQUUsS0FBSyxPQUFPQSxFQUFDO0FBQUM7QUFBemYsSUFBMmYsSUFBRSxTQUFTRCxJQUFFQyxJQUFFO0FBQUMsU0FBTyxXQUFTQSxPQUFJQSxLQUFFLFFBQUksQ0FBQ0EsTUFBRyxFQUFFLEtBQUtELEVBQUMsSUFBRSxLQUFLLElBQUksTUFBSSxFQUFFQSxFQUFDLElBQUUsS0FBSSxHQUFHLElBQUUsRUFBRSxLQUFLQSxFQUFDLEtBQUcsTUFBSUEsR0FBRSxXQUFTQSxNQUFHQSxHQUFFLE1BQU0sRUFBRSxJQUFHQyxLQUFFLEVBQUVELEVBQUMsSUFBRSxNQUFJLEVBQUVBLEVBQUMsS0FBRyxLQUFLLElBQUksQ0FBQ0EsSUFBRUMsS0FBRSxJQUFFLEdBQUc7QUFBQztBQUE3cEIsSUFBK3BCLElBQUUsU0FBU0QsSUFBRTtBQUFDLFNBQU8sS0FBSyxJQUFJLEVBQUUsS0FBS0EsRUFBQyxJQUFFLEVBQUVBLEVBQUMsSUFBRSxNQUFJLENBQUNBLElBQUUsQ0FBQztBQUFDO0FBQXJ0QixJQUF1dEIsSUFBRSxTQUFTQSxJQUFFO0FBQUMsU0FBTyxFQUFFLENBQUMsR0FBRUEsSUFBRSxJQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLFlBQVk7QUFBQztBQUFweEIsSUFBc3hCLElBQUUsU0FBU0EsSUFBRUMsSUFBRTtBQUFDLGFBQVNBLE9BQUlBLEtBQUU7QUFBRyxNQUFJQyxLQUFFLEtBQUssSUFBSSxJQUFHRCxFQUFDO0FBQUUsU0FBTyxLQUFLLE1BQU0sQ0FBQ0QsS0FBRUUsRUFBQyxJQUFFQTtBQUFDO0FBQXQyQixJQUF3MkIsSUFBRSxTQUFTRixJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBTyxLQUFLLElBQUlELElBQUUsS0FBSyxJQUFJRCxJQUFFRSxFQUFDLENBQUM7QUFBQztBQUExNUIsSUFBNDVCLElBQUUsU0FBU0YsSUFBRTtBQUFDLE1BQUcsWUFBVSxPQUFPQSxJQUFFO0FBQUMsUUFBSUMsS0FBRUQsR0FBRSxNQUFNLENBQUMsR0FBRUUsS0FBRSxDQUFDRCxHQUFFLENBQUM7QUFBRSxZQUFPQSxHQUFFLENBQUMsR0FBRTtBQUFBLE1BQUMsS0FBSyxFQUFFO0FBQVEsUUFBQUQsS0FBRSxFQUFFLE1BQUlFLEtBQUUsS0FBSyxFQUFFO0FBQUU7QUFBQSxNQUFNLEtBQUssRUFBRTtBQUFNLFFBQUFGLEtBQUUsRUFBRSxNQUFJRSxFQUFDO0FBQUU7QUFBQSxNQUFNLEtBQUssRUFBRTtBQUFTLFFBQUFGLEtBQUUsRUFBRSxNQUFHRSxFQUFDO0FBQUU7QUFBQSxNQUFNLEtBQUssRUFBRTtBQUFBLE1BQVE7QUFBUSxRQUFBRixLQUFFRTtBQUFBLElBQUM7QUFBQSxFQUFDO0FBQUMsVUFBT0YsS0FBRSxPQUFLQSxLQUFFLE9BQUtBLE1BQUcsTUFBSSxLQUFLLE1BQU1BLEtBQUUsR0FBRyxJQUFHQTtBQUFDO0FBQXpwQyxJQUEycEMsSUFBRSxTQUFTQSxJQUFFQyxJQUFFO0FBQUMsTUFBSUM7QUFBRSxVQUFPRCxJQUFFO0FBQUEsSUFBQyxLQUFLLEVBQUU7QUFBUSxNQUFBQyxLQUFFLEVBQUUsU0FBU0YsSUFBRTtBQUFDLGVBQU9BLEtBQUUsS0FBSyxLQUFHO0FBQUEsTUFBRyxFQUFFQSxFQUFDLENBQUM7QUFBRTtBQUFBLElBQU0sS0FBSyxFQUFFO0FBQU0sTUFBQUUsS0FBRSxFQUFFRixLQUFFLEdBQUc7QUFBRTtBQUFBLElBQU0sS0FBSyxFQUFFO0FBQVMsTUFBQUUsS0FBRSxFQUFFLEtBQUcsSUFBRUYsRUFBQztBQUFFO0FBQUEsSUFBTSxLQUFLLEVBQUU7QUFBQSxJQUFRLEtBQUssRUFBRTtBQUFBLElBQUs7QUFBUSxNQUFBRSxLQUFFRjtBQUFBLEVBQUM7QUFBQyxTQUFPRTtBQUFDO0FBQXoyQyxJQUEyMkMsSUFBRSxTQUFTRixJQUFFO0FBQUMsV0FBUUMsS0FBRSxDQUFDLEdBQUVDLEtBQUUsR0FBRUEsS0FBRSxVQUFVLFFBQU9BO0FBQUksSUFBQUQsR0FBRUMsS0FBRSxDQUFDLElBQUUsVUFBVUEsRUFBQztBQUFFLFdBQVFDLEtBQUUsQ0FBQyxHQUFFQyxLQUFFLENBQUMsR0FBRUMsS0FBRSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxHQUFFQyxLQUFFLENBQUMsR0FBRUMsS0FBRSxPQUFPLE9BQU8sQ0FBQyxHQUFFQyxLQUFFLE9BQU8sT0FBTyxDQUFDLEdBQUVDLEtBQUUsT0FBTyxPQUFPLENBQUMsR0FBRUMsS0FBRSxFQUFDLFdBQVUsR0FBRSxtQkFBa0IsR0FBRSxjQUFhLEVBQUMsR0FBRUMsS0FBRSxHQUFFQyxLQUFFWixJQUFFVyxLQUFFQyxHQUFFLFFBQU9ELE1BQUk7QUFBQyxRQUFJRSxLQUFFRCxHQUFFRCxFQUFDO0FBQUUsUUFBRyxZQUFVLE9BQU9FLElBQUU7QUFBQyxVQUFHWCxHQUFFLEtBQUtXLEVBQUMsR0FBRUEsR0FBRSxTQUFTLEdBQUcsR0FBRTtBQUFDLFFBQUFILEdBQUU7QUFBWSxZQUFJSSxLQUFFRCxHQUFFLE1BQU0sQ0FBQztBQUFFLGNBQUksSUFBSSxJQUFJQyxFQUFDLEVBQUUsUUFBTSxFQUFFLEtBQUtBLEdBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUdKLEdBQUU7QUFBQSxNQUFtQjtBQUFDLFVBQUdHLEdBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRTtBQUFDLFlBQUlFLE1BQUdDLEtBQUVILEdBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUdHLEdBQUUsQ0FBQyxHQUFFQyxLQUFFRCxHQUFFLENBQUMsR0FBRUUsS0FBRUgsR0FBRSxNQUFNLENBQUMsRUFBRSxDQUFDO0FBQUUsUUFBQVosR0FBRSxLQUFLLE9BQUtlLEtBQUUsRUFBRSxPQUFLQSxFQUFDLEdBQUVaLEdBQUUsS0FBSyxFQUFFLEtBQUtXLEVBQUMsQ0FBQztBQUFFO0FBQUEsTUFBUTtBQUFDLFVBQUcsRUFBRSxJQUFJLEtBQUtKLEVBQUMsR0FBRTtBQUFDLFlBQUlNLE1BQUdILEtBQUVILEdBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUdHLEdBQUUsQ0FBQyxHQUFFSSxLQUFFSixHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLEdBQUVLLEtBQUVMLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsR0FBRU0sS0FBRU4sR0FBRSxDQUFDO0FBQUUsUUFBQVosR0FBRSxLQUFLLEVBQUUsS0FBS2UsRUFBQyxLQUFHLEVBQUUsS0FBS0MsRUFBQyxLQUFHLEVBQUUsS0FBS0MsRUFBQyxDQUFDLEdBQUVmLEdBQUUsS0FBSyxFQUFFLEtBQUtnQixFQUFDLENBQUM7QUFBRTtBQUFBLE1BQVE7QUFBQyxVQUFHVCxHQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUU7QUFBQyxZQUFJRyxJQUFFTyxNQUFHUCxLQUFFSCxHQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUcsQ0FBQyxLQUFHRyxHQUFFLENBQUMsR0FBRVEsS0FBRVIsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxHQUFFUyxLQUFFVCxHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLEdBQUVVLEtBQUVWLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUM7QUFBRSxRQUFBTSxLQUFFTixHQUFFLEVBQUU7QUFBRSxRQUFBWCxHQUFFLEtBQUssRUFBRSxLQUFLa0IsRUFBQyxLQUFHLEVBQUUsS0FBS0MsRUFBQyxLQUFHLEVBQUUsS0FBS0MsRUFBQyxLQUFHLEVBQUUsS0FBS0MsRUFBQyxDQUFDLEdBQUViLEdBQUUsV0FBVyxNQUFNLEtBQUdILEdBQUUsZ0JBQWVKLEdBQUUsS0FBSyxFQUFFLEtBQUtnQixFQUFDLENBQUM7QUFBQSxNQUFDO0FBQUEsSUFBQztBQUFBLEVBQUM7QUFBQyxTQUFNLEVBQUMsVUFBUyxPQUFPdkIsR0FBRSxhQUFXLEVBQUUsU0FBT0EsR0FBRSxXQUFTLEVBQUUsVUFBUyxXQUFVLE9BQU9BLEdBQUUsY0FBWSxFQUFFLFVBQVFBLEdBQUUsWUFBVSxRQUFRRyxHQUFFLFVBQVFRLEdBQUUsY0FBWVIsR0FBRSxNQUFNLEtBQUcsRUFBRSxXQUFVLG1CQUFrQixPQUFPSCxHQUFFLHNCQUFvQixFQUFFLFVBQVFBLEdBQUUsb0JBQWtCLFFBQVFHLEdBQUUsVUFBUVEsR0FBRSxzQkFBb0JSLEdBQUUsTUFBTSxLQUFHLEVBQUUsbUJBQWtCLFlBQVdILEdBQUUsY0FBWVEsR0FBRSxTQUFTUixHQUFFLFVBQVUsSUFBRUEsR0FBRSxhQUFXLE1BQUksSUFBSSxJQUFJSSxFQUFDLEVBQUUsT0FBS0EsR0FBRSxDQUFDLElBQUUsRUFBRSxZQUFXLFNBQVFKLEdBQUUsV0FBU1MsR0FBRSxTQUFTVCxHQUFFLE9BQU8sSUFBRUEsR0FBRSxVQUFRLE1BQUksSUFBSSxJQUFJSyxFQUFDLEVBQUUsUUFBTUEsR0FBRSxDQUFDLElBQUUsRUFBRSxVQUFRLEVBQUUsU0FBUSxVQUFTTCxHQUFFLFlBQVVTLEdBQUUsU0FBU1QsR0FBRSxRQUFRLElBQUVBLEdBQUUsV0FBUyxNQUFJLElBQUksSUFBSU0sRUFBQyxFQUFFLFFBQU1BLEdBQUUsQ0FBQyxJQUFFLEVBQUUsV0FBUyxFQUFFLE1BQUssV0FBVU4sR0FBRSxhQUFXUyxHQUFFLFNBQVNULEdBQUUsU0FBUyxJQUFFQSxHQUFFLFlBQVUsTUFBSSxJQUFJLElBQUlPLEVBQUMsRUFBRSxRQUFNQSxHQUFFLENBQUMsSUFBRSxFQUFFLFVBQVEsRUFBRSxXQUFVLGNBQWFQLEdBQUUsZ0JBQWNVLEdBQUUsU0FBU1YsR0FBRSxZQUFZLElBQUVBLEdBQUUsZUFBYU0sR0FBRSxVQUFRQSxHQUFFLFdBQVNLLEdBQUUsZUFBYSxFQUFFLE9BQUssRUFBRSxhQUFZO0FBQUM7QUFBaGtHLElBQWtrRyxJQUFFLFNBQVNYLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPQSxLQUFFLE1BQUlBLE1BQUcsSUFBR0EsTUFBRyxNQUFJQSxNQUFHLElBQUcsRUFBRUEsS0FBRSxJQUFFLFFBQU1ELEtBQUVELE1BQUdFLEtBQUVGLE1BQUdFLEtBQUUsSUFBRSxNQUFJRCxLQUFFQyxLQUFFLElBQUUsUUFBTUQsS0FBRUQsT0FBSSxJQUFFRSxNQUFHRixNQUFHLE1BQUlBLEVBQUM7QUFBQztBQUFsckcsSUFBb3JHLElBQUUsU0FBU0EsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLEVBQUFELE1BQUc7QUFBSSxNQUFJRSxNQUFHRCxNQUFHLFFBQU0sTUFBR0EsTUFBR0QsS0FBRSxLQUFHQyxLQUFFRCxLQUFFQyxLQUFFRCxJQUFFRyxLQUFFLElBQUVGLEtBQUVDO0FBQUUsU0FBTSxFQUFDLEdBQUUsRUFBRUMsSUFBRUQsS0FBR0gsTUFBRyxNQUFJLENBQUMsR0FBRSxHQUFFLEVBQUVJLElBQUVELElBQUVILEVBQUMsR0FBRSxHQUFFLEVBQUVJLElBQUVELElBQUVILEtBQUUsQ0FBQyxFQUFDO0FBQUM7QUFBMXlHLElBQTR5RyxJQUFFLFNBQVNBLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFNLEVBQUMsR0FBRSxFQUFFLE9BQUssSUFBRUgsT0FBSUcsS0FBRSxJQUFFQSxHQUFFLEdBQUUsR0FBRSxFQUFFLE9BQUssSUFBRUYsTUFBR0UsRUFBQyxHQUFFLEdBQUUsRUFBRSxPQUFLLElBQUVELE1BQUdDLEVBQUMsRUFBQztBQUFDO0FBQWg0RyxJQUFrNEcsSUFBRSxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsRUFBQUYsTUFBRyxLQUFJQyxNQUFHLEtBQUlDLE1BQUc7QUFBSSxNQUFJQyxLQUFFLElBQUUsS0FBSyxJQUFJSCxJQUFFQyxJQUFFQyxFQUFDLEdBQUVFLEtBQUUsSUFBRUQsSUFBRUUsS0FBRUQsT0FBSUEsS0FBRUgsTUFBR0csSUFBRXdCLEtBQUV4QixPQUFJQSxLQUFFRixNQUFHRTtBQUFFLFNBQU0sRUFBQyxHQUFFLEVBQUUsT0FBS0EsT0FBSUEsS0FBRUosTUFBR0ksR0FBRSxHQUFFLEdBQUUsRUFBRSxNQUFJQyxFQUFDLEdBQUUsR0FBRSxFQUFFLE1BQUl1QixFQUFDLEdBQUUsR0FBRSxFQUFFLE1BQUl6QixFQUFDLEVBQUM7QUFBQztBQUEvaEgsSUFBaWlILElBQUUsU0FBU0gsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLGFBQVNBLE9BQUlBLEtBQUUsSUFBR0gsTUFBRyxLQUFJQyxNQUFHLEtBQUlDLE1BQUcsS0FBSUMsS0FBRSxLQUFLLElBQUlBLElBQUUsQ0FBQztBQUFFLE1BQUlDLEtBQUUsS0FBSyxJQUFJSixJQUFFQyxJQUFFQyxFQUFDLEdBQUVHLEtBQUUsS0FBSyxJQUFJTCxJQUFFQyxJQUFFQyxFQUFDLEdBQUUwQixLQUFFeEIsS0FBRUMsSUFBRUMsS0FBRSxHQUFFQyxLQUFFLEdBQUVDLE1BQUdKLEtBQUVDLE1BQUc7QUFBRSxNQUFHLE1BQUl1QixJQUFFO0FBQUMsWUFBT3hCLElBQUU7QUFBQSxNQUFDLEtBQUtKO0FBQUUsUUFBQU0sTUFBR0wsS0FBRUMsTUFBRzBCLEtBQUU7QUFBRTtBQUFBLE1BQU0sS0FBSzNCO0FBQUUsUUFBQUssTUFBR0osS0FBRUYsTUFBRzRCLEtBQUU7QUFBRTtBQUFBLE1BQU0sS0FBSzFCO0FBQUUsUUFBQUksTUFBR04sS0FBRUMsTUFBRzJCLEtBQUU7QUFBQSxJQUFDO0FBQUMsS0FBQ3RCLEtBQUUsRUFBRSxLQUFHQSxFQUFDLEtBQUcsTUFBSUEsTUFBRyxNQUFLQyxLQUFFcUIsTUFBRyxJQUFFLEtBQUssSUFBSSxJQUFFcEIsS0FBRSxDQUFDO0FBQUEsRUFBRTtBQUFDLFNBQU0sRUFBQyxHQUFFRixJQUFFLEdBQUUsRUFBRSxNQUFJQyxFQUFDLEdBQUUsR0FBRSxFQUFFLE1BQUlDLEVBQUMsR0FBRSxHQUFFTCxHQUFDO0FBQUM7QUFBMTFILElBQTQxSCxJQUFFLFNBQVNILElBQUVDLElBQUU7QUFBQyxNQUFHRCxLQUFFLE1BQUlBLE1BQUcsTUFBS0EsS0FBRSxRQUFNQSxNQUFHLE1BQUssUUFBTUEsTUFBRyxNQUFJQTtBQUFFLFdBQU9BO0FBQUUsTUFBSUUsS0FBRSxDQUFDLENBQUMsR0FBRSxHQUFHLEdBQUUsQ0FBQyxLQUFJLEdBQUcsR0FBRSxDQUFDLEtBQUksR0FBRyxHQUFFLENBQUMsS0FBSSxHQUFHLENBQUMsR0FBRUMsS0FBRSxDQUFDLENBQUMsR0FBRSxFQUFFLEdBQUUsQ0FBQyxJQUFHLEdBQUcsR0FBRSxDQUFDLEtBQUksR0FBRyxHQUFFLENBQUMsS0FBSSxHQUFHLENBQUMsR0FBRUMsS0FBRUgsS0FBRUUsS0FBRUQsSUFBRUcsS0FBRSxHQUFFdUIsS0FBRSxHQUFFdEIsS0FBRSxHQUFFQyxLQUFFO0FBQUUsVUFBT04sS0FBRUMsS0FBRUMsSUFBRyxLQUFNLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPRixNQUFHQyxHQUFFLENBQUMsS0FBR0QsS0FBRUMsR0FBRSxDQUFDLE1BQUlJLEtBQUVKLEdBQUUsQ0FBQyxHQUFFMkIsS0FBRTNCLEdBQUUsQ0FBQyxHQUFFSyxLQUFFRixHQUFFRixFQUFDLEVBQUUsQ0FBQyxHQUFFSyxLQUFFSCxHQUFFRixFQUFDLEVBQUUsQ0FBQyxHQUFFO0FBQUEsRUFBRyxDQUFFLEdBQUVJLE1BQUdDLEtBQUVELE9BQUlzQixLQUFFdkIsT0FBSUwsS0FBRUs7QUFBRTtBQUExb0ksSUFBNG9JLElBQUUsU0FBU0wsSUFBRTtBQUFDLFNBQU9BLEtBQUUsT0FBSztBQUFHO0FBQTNxSSxJQUE2cUksSUFBRSxTQUFTQSxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxFQUFFLE9BQU8sS0FBS0YsRUFBQyxDQUFDO0FBQUUsU0FBTyxFQUFFLEVBQUVFLEVBQUMsQ0FBQyxFQUFFLE9BQVEsU0FBU0EsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFFBQUlDLEtBQUVMLEdBQUVHLEVBQUM7QUFBRSxXQUFPLFdBQVNFLE1BQUdILEdBQUUsS0FBS0QsR0FBRUksSUFBRUQsRUFBQyxDQUFDLEdBQUVGO0FBQUEsRUFBQyxHQUFHLENBQUMsQ0FBQztBQUFDO0FBQWh6SSxJQUFrekksSUFBRSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsU0FBT0QsR0FBRSxRQUFRLEdBQUcsU0FBU0EsSUFBRUUsSUFBRTtBQUFDLFdBQU0sR0FBRyxPQUFPRCxHQUFFLENBQUNDLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxDQUFFO0FBQUM7QUFBLzNJLElBQWk0SSxJQUFFLFNBQVNGLElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFRCxHQUFFLFdBQVVFLEtBQUVGLEdBQUUsV0FBVUcsS0FBRUgsR0FBRTtBQUFTLFNBQU9DLE9BQUksRUFBRSxXQUFTQyxLQUFFLEVBQUVILElBQUVJLEVBQUMsSUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFJSixJQUFFSSxFQUFDLEdBQUUsR0FBRztBQUFDO0FBQXQvSSxJQUF3L0ksTUFBSSxJQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBRSxTQUFTSixJQUFFO0FBQUMsTUFBSUMsS0FBRSxFQUFFRCxJQUFHLFNBQVNBLElBQUU7QUFBQyxXQUFPQyxLQUFFLEVBQUVELEVBQUMsR0FBRSxPQUFLRSxLQUFFLEVBQUVELElBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLFlBQVksR0FBRyxXQUFTQyxLQUFFLElBQUksT0FBT0EsRUFBQyxJQUFHQTtBQUFFLFFBQUlELElBQUVDO0FBQUEsRUFBQyxDQUFFLEdBQUVBLEtBQUUsTUFBSUQsR0FBRSxTQUFPLGtCQUFnQjtBQUFhLFNBQU8sRUFBRUMsSUFBRUQsRUFBQztBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTRCxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRUQsR0FBRSxVQUFTRSxLQUFFRixHQUFFLFdBQVVHLEtBQUVILEdBQUUsbUJBQWtCSSxLQUFFSixHQUFFLFNBQVEyQixLQUFFLEVBQUV4QixFQUFDLEdBQUVFLEtBQUUsRUFBRU4sSUFBRyxTQUFTQSxJQUFFRyxJQUFFO0FBQUMsV0FBT0UsT0FBSSxFQUFFLFdBQVNGLEtBQUUsSUFBRSxHQUFHLE9BQU8sU0FBU0gsSUFBRUMsSUFBRTtBQUFDLGFBQU8sRUFBRUQsS0FBRSxNQUFJLEtBQUlDLEVBQUM7QUFBQSxJQUFDLEVBQUVELElBQUVFLEVBQUMsR0FBRSxHQUFHLElBQUUsTUFBSUMsS0FBRSxFQUFFSCxJQUFFQyxFQUFDLElBQUUsRUFBRUQsSUFBRUUsRUFBQztBQUFBLEVBQUMsQ0FBRSxHQUFFSyxLQUFFSixLQUFFLE1BQUlHLEdBQUUsU0FBTyxXQUFXLE9BQU9zQixJQUFFLEtBQUssRUFBRSxPQUFPQSxJQUFFLEtBQUssRUFBRSxPQUFPQSxJQUFFLE1BQU0sSUFBRSxVQUFVLE9BQU9BLElBQUUsS0FBSyxFQUFFLE9BQU9BLElBQUUsTUFBTSxJQUFFLE1BQUl0QixHQUFFLFNBQU8sMkJBQXlCO0FBQW1CLFNBQU8sRUFBRUMsSUFBRUQsRUFBQztBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTTixJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRUQsR0FBRSxVQUFTRSxLQUFFRixHQUFFLFdBQVVHLEtBQUVILEdBQUUsbUJBQWtCSSxLQUFFSixHQUFFLFlBQVcyQixLQUFFLEVBQUV4QixFQUFDLEdBQUVFLEtBQUUsRUFBRU4sSUFBRyxTQUFTQSxJQUFFRyxJQUFFO0FBQUMsUUFBRyxNQUFJQSxNQUFHRSxPQUFJLEVBQUUsTUFBSztBQUFDLFVBQUlELEtBQUUsRUFBRSxFQUFFSixJQUFFSyxFQUFDLEdBQUVILEVBQUM7QUFBRSxhQUFNLEdBQUcsT0FBT0UsRUFBQyxFQUFFLE9BQU9DLEVBQUM7QUFBQSxJQUFDO0FBQUMsV0FBTyxNQUFJRixLQUFFLEVBQUVILElBQUVDLEVBQUMsSUFBRSxFQUFFRCxJQUFFRSxFQUFDO0FBQUEsRUFBQyxDQUFFLEdBQUVLLEtBQUVKLEtBQUUsTUFBSUcsR0FBRSxTQUFPLFdBQVcsT0FBT3NCLElBQUUsTUFBTSxFQUFFLE9BQU9BLElBQUUsTUFBTSxFQUFFLE9BQU9BLElBQUUsTUFBTSxJQUFFLFVBQVUsT0FBT0EsSUFBRSxNQUFNLEVBQUUsT0FBT0EsSUFBRSxPQUFPLElBQUUsTUFBSXRCLEdBQUUsU0FBTyw2QkFBMkI7QUFBcUIsU0FBTyxFQUFFQyxJQUFFRCxFQUFDO0FBQUMsR0FBRSxFQUFFLEVBQUUsSUFBSSxJQUFFLFNBQVNOLElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFRCxHQUFFLFVBQVNFLEtBQUVGLEdBQUUsV0FBVUcsS0FBRUgsR0FBRSxtQkFBa0JJLEtBQUVKLEdBQUUsVUFBUzJCLEtBQUUzQixHQUFFLGNBQWFLLEtBQUUsRUFBRUYsRUFBQyxHQUFFRyxLQUFFLEVBQUVQLElBQUcsU0FBU0EsSUFBRUcsSUFBRTtBQUFDLFdBQU9FLE9BQUksRUFBRSxXQUFTRixLQUFFLElBQUUsR0FBRyxPQUFPLEVBQUVILElBQUVFLEVBQUMsR0FBRSxHQUFHLElBQUUsTUFBSUMsS0FBRSxFQUFFSCxJQUFFQyxFQUFDLElBQUUsRUFBRUQsS0FBRSxLQUFJRSxFQUFDO0FBQUEsRUFBQyxDQUFFLEdBQUVNLEtBQUVMLEtBQUUsTUFBSUksR0FBRSxTQUFPLEdBQUcsT0FBT3FCLElBQUUsTUFBTSxFQUFFLE9BQU90QixJQUFFLEtBQUssRUFBRSxPQUFPQSxJQUFFLEtBQUssRUFBRSxPQUFPQSxJQUFFLEtBQUssRUFBRSxPQUFPQSxJQUFFLE1BQU0sSUFBRSxHQUFHLE9BQU9zQixJQUFFLE1BQU0sRUFBRSxPQUFPdEIsSUFBRSxLQUFLLEVBQUUsT0FBT0EsSUFBRSxLQUFLLEVBQUUsT0FBT0EsSUFBRSxNQUFNLElBQUUsTUFBSUMsR0FBRSxTQUFPLEdBQUcsT0FBT3FCLElBQUUseUJBQXlCLElBQUUsR0FBRyxPQUFPQSxJQUFFLG1CQUFtQjtBQUFFLFNBQU8sRUFBRXBCLElBQUVELEVBQUM7QUFBQyxHQUFFO0FBQXYrTCxJQUEwK0wsS0FBRyxTQUFTUCxJQUFFO0FBQUMsU0FBTSxZQUFVLE9BQU9BLE9BQUlBLEtBQUUsRUFBRSxLQUFLQSxFQUFDLElBQUUsRUFBRUEsRUFBQyxJQUFFLE1BQUksQ0FBQ0EsS0FBRyxNQUFNLENBQUNBLEVBQUMsS0FBR0EsS0FBRSxJQUFFLElBQUUsRUFBRUEsRUFBQztBQUFDO0FBQWxrTSxJQUFva00sS0FBRyxTQUFTRSxJQUFFQyxJQUFFRSxJQUFFO0FBQUMsU0FBT0YsR0FBRSxPQUFRLFNBQVNBLElBQUV5QixJQUFFO0FBQUMsV0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFFekIsSUFBRSxJQUFFLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFFRCxFQUFDLEdBQUUsRUFBQyxHQUFFRyxPQUFJLEVBQUUsV0FBUyxFQUFFSCxHQUFFLElBQUUwQixFQUFDLElBQUUsRUFBRSxFQUFFLEVBQUUxQixHQUFFLEdBQUUsS0FBRSxJQUFFMEIsSUFBRSxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRSxLQUFFO0FBQUEsRUFBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUUxQixFQUFDLENBQUMsQ0FBQztBQUFDO0FBQXh0TSxJQUEwdE0sS0FBRyxTQUFTRixJQUFFQyxJQUFFO0FBQUMsU0FBTyxHQUFHRCxJQUFFLENBQUMsSUFBRyxHQUFHLEdBQUVDLEVBQUM7QUFBQztBQUFsd00sSUFBb3dNLEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLFNBQU8sR0FBR0QsSUFBRSxDQUFDLEdBQUcsR0FBRUMsRUFBQztBQUFDO0FBQXp5TSxJQUEyeU0sS0FBRyxTQUFTRCxJQUFFQyxJQUFFO0FBQUMsU0FBTyxHQUFHRCxJQUFFLENBQUMsS0FBSSxJQUFJLEdBQUVDLEVBQUM7QUFBQztBQUFyMU0sSUFBdTFNLEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLFNBQU8sR0FBR0QsSUFBRSxDQUFDLEtBQUksSUFBSSxHQUFFQyxFQUFDO0FBQUM7QUFBajRNLElBQW00TSxLQUFHLFNBQVNELElBQUVDLElBQUU7QUFBQyxTQUFPLEdBQUdELElBQUUsQ0FBQyxJQUFHLE1BQUssR0FBRyxHQUFFQyxFQUFDO0FBQUM7QUFBaDdNLElBQWs3TSxLQUFHLFNBQVNELElBQUVDLElBQUU7QUFBQyxTQUFPLEdBQUdELElBQUUsQ0FBQyxJQUFHLEtBQUksR0FBRyxHQUFFQyxFQUFDO0FBQUM7QUFBOTlNLElBQWcrTSxLQUFHLFNBQVNELElBQUU7QUFBQyxTQUFNLFlBQVUsT0FBT0EsS0FBRSxTQUFTQSxJQUFFO0FBQUMsUUFBSUM7QUFBRSxRQUFHLE9BQU8sS0FBSyxDQUFDLEVBQUUsS0FBTSxTQUFTQyxJQUFFO0FBQUMsVUFBRyxFQUFFQSxFQUFDLEVBQUUsS0FBS0YsRUFBQztBQUFFLGVBQU9DLEtBQUVDLElBQUU7QUFBQSxJQUFFLENBQUUsR0FBRSxDQUFDRCxNQUFHLENBQUMsRUFBRSxRQUFRRCxFQUFDLE1BQUlDLEtBQUUsRUFBRSxNQUFLLENBQUNBO0FBQUUsWUFBTSxJQUFJLE1BQU0sQ0FBQztBQUFFLFdBQU9BO0FBQUEsRUFBQyxFQUFFRCxFQUFDLElBQUUsU0FBU0EsSUFBRTtBQUFDLFFBQUlDLElBQUVFLEtBQUUsT0FBR0MsS0FBRSxFQUFFLE9BQU8sS0FBS0osRUFBQyxDQUFDO0FBQUUsUUFBRyxFQUFFSSxFQUFDLE1BQUlILEtBQUUsRUFBRUcsRUFBQyxJQUFHSCxNQUFHQSxPQUFJLEVBQUUsS0FBSTtBQUFDLFVBQUlJLEtBQUUsT0FBTyxRQUFRTCxFQUFDLEVBQUUsS0FBTSxTQUFTQSxJQUFFO0FBQUMsZUFBTSxDQUFDLEVBQUUsS0FBSyxHQUFHLE9BQU9BLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxNQUFDLENBQUUsR0FBRTRCLEtBQUUsT0FBTyxRQUFRNUIsRUFBQyxFQUFFLEtBQU0sU0FBU0EsSUFBRTtBQUFDLGVBQU0sRUFBRSxFQUFFLEtBQUssR0FBRyxPQUFPQSxHQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPQSxHQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxNQUFNLENBQUNBLEdBQUUsQ0FBQyxDQUFDLEtBQUcsQ0FBQ0EsR0FBRSxDQUFDLEtBQUc7QUFBQSxNQUFJLENBQUU7QUFBRSxNQUFBSyxNQUFHdUIsT0FBSXpCLEtBQUUsT0FBSUUsT0FBSUosS0FBRSxFQUFFO0FBQUEsSUFBSTtBQUFDLFFBQUcsQ0FBQ0EsTUFBR0U7QUFBRSxZQUFNLElBQUksTUFBTSxDQUFDO0FBQUUsV0FBT0Y7QUFBQSxFQUFDLEVBQUVELEVBQUM7QUFBQztBQUF2L04sSUFBeS9OLE9BQUssSUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUUsU0FBU0EsSUFBRTtBQUFDLE1BQUlDLE1BQUcsQ0FBQyxFQUFFLFFBQVFELEVBQUMsSUFBRSxFQUFFQSxFQUFDLElBQUVBLElBQUcsTUFBTSxFQUFFLEdBQUcsR0FBRUUsS0FBRSxFQUFDLEdBQUUsRUFBRUQsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsR0FBRSxFQUFFQSxHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLENBQUMsR0FBRSxHQUFFLEVBQUVBLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUVFLEtBQUVGLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUM7QUFBRSxTQUFPLFdBQVNFLE9BQUlELEdBQUUsSUFBRSxFQUFFQyxFQUFDLElBQUUsTUFBS0Q7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0YsSUFBRTtBQUFDLE1BQUlDLEtBQUVELEdBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRUUsS0FBRSxFQUFFRCxHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLENBQUMsR0FBRUUsS0FBRSxFQUFFRixHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLENBQUMsR0FBRUcsS0FBRSxFQUFFSCxHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLENBQUMsR0FBRUksS0FBRUosR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxHQUFFMkIsS0FBRSxFQUFDLEdBQUUsS0FBSyxJQUFJMUIsSUFBRSxHQUFHLEdBQUUsR0FBRSxLQUFLLElBQUlDLElBQUUsR0FBRyxHQUFFLEdBQUUsS0FBSyxJQUFJQyxJQUFFLEdBQUcsRUFBQztBQUFFLFNBQU8sV0FBU0MsT0FBSXVCLEdBQUUsSUFBRSxHQUFHdkIsRUFBQyxJQUFHdUI7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBUzVCLElBQUU7QUFBQyxNQUFJQyxLQUFFRCxHQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUVFLEtBQUUsRUFBRUQsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVFLEtBQUUsRUFBRUYsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVHLEtBQUUsRUFBRUgsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVJLEtBQUVKLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsR0FBRTJCLEtBQUUsRUFBRTFCLElBQUVDLElBQUVDLEVBQUM7QUFBRSxTQUFPLFdBQVNDLE9BQUl1QixHQUFFLElBQUUsR0FBR3ZCLEVBQUMsSUFBR3VCO0FBQUMsR0FBRSxFQUFFLEVBQUUsSUFBSSxJQUFFLFNBQVM1QixJQUFFO0FBQUMsTUFBSUMsS0FBRUQsR0FBRSxNQUFNLEVBQUUsSUFBSSxHQUFFRSxLQUFFLEVBQUVELEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFRSxLQUFFLEVBQUVGLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFRyxLQUFFLEVBQUVILEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFSSxLQUFFLEVBQUVKLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFMkIsS0FBRTNCLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLEVBQUUsR0FBRUssS0FBRSxFQUFFSixJQUFFQyxJQUFFQyxJQUFFQyxFQUFDO0FBQUUsU0FBTyxXQUFTdUIsT0FBSXRCLEdBQUUsSUFBRSxHQUFHc0IsRUFBQyxJQUFHdEI7QUFBQyxHQUFFO0FBQXZxUCxJQUEwcVAsT0FBSyxJQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBRSxTQUFTTixJQUFFO0FBQUMsTUFBSUMsS0FBRSxFQUFDLEdBQUUsRUFBRSxHQUFHLE9BQU9ELEdBQUUsQ0FBQyxDQUFDLEdBQUUsR0FBRSxFQUFFLEdBQUcsT0FBT0EsR0FBRSxDQUFDLENBQUMsR0FBRSxHQUFFLEVBQUUsR0FBRyxPQUFPQSxHQUFFLENBQUMsQ0FBQyxFQUFDO0FBQUUsU0FBTyxFQUFFQSxJQUFFLEdBQUcsTUFBSUMsR0FBRSxJQUFFLEtBQUssSUFBSSxFQUFFLEdBQUcsT0FBT0QsR0FBRSxDQUFDLEdBQUUsSUFBRSxHQUFFLENBQUMsSUFBR0M7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0QsSUFBRTtBQUFDLFNBQU8sS0FBSyxJQUFJQSxFQUFDO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNBLElBQUU7QUFBQyxNQUFJQyxLQUFFLEVBQUUsR0FBRyxPQUFPRCxHQUFFLENBQUMsQ0FBQyxHQUFFRSxLQUFFLEVBQUUsR0FBRyxPQUFPRixHQUFFLENBQUMsQ0FBQyxHQUFFRyxLQUFFLEVBQUUsRUFBRUgsR0FBRSxDQUFDLEdBQUVDLElBQUVDLEVBQUM7QUFBRSxTQUFPLEVBQUVGLElBQUUsR0FBRyxNQUFJRyxHQUFFLElBQUUsR0FBR0gsR0FBRSxDQUFDLElBQUdHO0FBQUMsR0FBRSxFQUFFLEVBQUUsSUFBSSxJQUFFLFNBQVNILElBQUU7QUFBQyxNQUFJQyxLQUFFLEVBQUUsR0FBRyxPQUFPRCxHQUFFLENBQUMsQ0FBQyxHQUFFRSxLQUFFLEVBQUUsR0FBRyxPQUFPRixHQUFFLENBQUMsQ0FBQyxHQUFFRyxLQUFFLEVBQUUsR0FBRyxPQUFPSCxHQUFFLENBQUMsQ0FBQyxHQUFFSSxLQUFFLEVBQUUs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QSxFQUFDO0FBQUMsRUFBQyxHQUFHLEVBQUUsR0FBRyxJQUFFLFNBQVNKLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPRixHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBRUgsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFJLEVBQUVBLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPRixHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFSCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsTUFBSSxHQUFHQSxHQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFQSxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQUEsRUFBQyxDQUFFO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNELElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBRUgsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxHQUFFSSxFQUFDLElBQUUsR0FBRyxJQUFJLEVBQUVKLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsR0FBRUksR0FBRSxRQUFRO0FBQUEsRUFBQyxDQUFFO0FBQUMsR0FBRSxFQUFFLE9BQUssU0FBU0gsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFNBQU9ILEdBQUVELElBQUVFLEVBQUMsRUFBRSxJQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPRyxLQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUVILEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEVBQUMsR0FBRSxHQUFHQSxHQUFFLENBQUMsRUFBQyxDQUFDLEdBQUVJLEVBQUMsSUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFSixHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxHQUFFSSxHQUFFLFFBQVE7QUFBQSxFQUFDLENBQUU7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0wsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFNBQU9ILEdBQUVELElBQUVFLEVBQUMsRUFBRSxJQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPRyxLQUFFLEVBQUUsSUFBSSxFQUFDLEdBQUVILEdBQUUsR0FBRSxHQUFFQSxHQUFFLEdBQUUsR0FBRUEsR0FBRSxFQUFDLEdBQUVJLEVBQUMsSUFBRSxHQUFHLElBQUksRUFBRUosR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxHQUFFSSxHQUFFLFFBQVE7QUFBQSxFQUFDLENBQUU7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0gsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUVILEVBQUMsR0FBRSxFQUFDLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxHQUFFSSxFQUFDLElB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LEtBQUssSUFBSUgsSUFBRUMsRUFBQztBQUFFLFNBQU8sT0FBT0UsR0FBRSxHQUFFRCxLQUFFLEVBQUUsSUFBSUMsRUFBQyxJQUFFLEdBQUcsSUFBSUEsRUFBQztBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNILElBQUVDLElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEtBQUssSUFBSUgsSUFBRUMsRUFBQztBQUFFLFNBQU9FLEdBQUUsSUFBRUQsS0FBRSxNQUFJLEdBQUdDLEdBQUUsQ0FBQyxJQUFFLEdBQUdBLEdBQUUsQ0FBQyxHQUFFRCxLQUFFLEVBQUUsSUFBSUMsRUFBQyxJQUFFLEdBQUcsS0FBS0EsRUFBQztBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUM7QUFBRSxTQUFPLE9BQU9HLEdBQUUsR0FBRUYsS0FBRSxFQUFFLElBQUlFLElBQUVELEVBQUMsSUFBRSxHQUFHLElBQUlDLElBQUVELEdBQUUsUUFBUTtBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEtBQUssSUFBSUosSUFBRUMsRUFBQztBQUFFLFNBQU9DLEtBQUUsRUFBRSxJQUFJRSxJQUFFRCxFQUFDLElBQUUsR0FBRyxLQUFLQyxJQUFFRCxHQUFFLFFBQVE7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0gsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsS0FBSyxJQUFJSixJQUFFQyxFQUFDLEdBQUVJLEtBQUUsRUFBRUQsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQztBQUFFLFNBQU8sT0FBT0EsR0FBRSxHQUFFLE9BQU9DLEdBQUUsR0FBRUgsS0FBRSxFQUFFLElBQUlHLElBQUVGLEVBQUMsSUFBRSxHQUFHLElBQUlDLElBQUVELEdBQUUsUUFBUTtBQUFDLEdBQUUsRUFBRSxPQUFLLFNB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QUFFLFVBQVUsYUFBVyxTQUFTRCxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLENBQUMsSUFBRyxLQUFLLFdBQVMsRUFBRSxFQUFFLENBQUMsR0FBRSxLQUFLLFFBQVEsR0FBRUEsRUFBQyxHQUFFO0FBQUEsRUFBSSxHQUFFQyxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxFQUFDLEdBQUUsS0FBSyxpQkFBaUI7QUFBQSxFQUFDLEdBQUVFLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssSUFBSSxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxpQkFBaUI7QUFBQSxFQUFDLEdBQUVFLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssSUFBSSxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxpQkFBaUI7QUFBQSxFQUFDLEdBQUVFLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssSUFBSSxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxpQkFBaUI7QUFBQSxFQUFDLEdBQUVFLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssSUFBSSxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxpQkFBaUI7QUFBQSxFQUFDLEdBQUVFLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssSUFBSSxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxpQkFBaUI7QUFBQSxFQUFDLEdBQUVFLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssSUFBSSxJQUFFLEtBQUssSUFBSSxJQUFFLEVBQUVBLElBQUUsR0FBRSxDQUFDLEdBQUU7QUFBQSxFQUFJLEdBQUVFLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssS0FBSyxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxnQkFBZ0I7QUFBQSxFQUFDLEdBQUVFLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssS0FBSyxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxnQkFBZ0I7QUFBQSxFQUFDLEdBQUVFLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssS0FBSyxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxnQkFBZ0I7QUFBQSxFQUFDLEdBQUVFLEdBQUUsVUFBVSxPQUFLLFNBQVNGLElBQUU7QUFBQyxXQUFPLEtBQUssS0FBSyxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxnQkFBZ0I7QUFBQSxFQUFDLEdBQUUsT0FBTyxlQUFlRSxHQUFFLFdBQVUsV0FBVSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sS0FBSztBQUFBLEVBQVEsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxLQUFLLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxLQUFLLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsYUFBWSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sR0FBRyxJQUFJLEtBQUssR0FBRztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxjQUFhLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxHQUFHLEtBQUssS0FBSyxHQUFHO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFNLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxFQUFFLENBQUMsR0FBRSxLQUFLLFNBQVMsR0FBRSxFQUFDLEdBQUUsS0FBSyxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsYUFBWSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU0sRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxjQUFhLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEtBQUssU0FBUyxHQUFFLEVBQUMsR0FBRSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxjQUFhLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGVBQWMsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxVQUFVLEdBQUUsRUFBQyxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLE9BQU0sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsUUFBTyxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxJQUFJLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxNQUFJLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLE9BQU0sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDLEdBQUUsS0FBSyxPQUFPO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLFFBQU8sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDLEdBQUUsS0FBSyxPQUFPO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLE9BQU0sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDLEdBQUUsS0FBSyxPQUFPO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLFFBQU8sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDLEdBQUUsS0FBSyxPQUFPO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLFFBQU8sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDLEdBQUUsS0FBSyxPQUFPO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLFNBQVEsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDLEdBQUUsS0FBSyxPQUFPO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFQSxHQUFFLGNBQVksU0FBU0YsSUFBRTtBQUFDLFFBQUlDLEtBQUUsR0FBR0QsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUMsSUFBRSxHQUFFLEdBQUcsR0FBRztBQUFBLEVBQUMsR0FBRUMsR0FBRSxRQUFNLFNBQVNGLElBQUU7QUFBQyxXQUFPLEVBQUUsSUFBSUUsR0FBRSxZQUFZRixFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVFLEdBQUUsZUFBYSxTQUFTRixJQUFFO0FBQUMsUUFBSUMsS0FBRSxHQUFHRCxFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFQyxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRTtBQUFDLFdBQU8sRUFBRSxJQUFJRSxHQUFFLGFBQWFGLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxjQUFZLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLEdBQUc7QUFBQSxFQUFDLEdBQUVDLEdBQUUsUUFBTSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDLEdBQUVHLEtBQUUsRUFBRUYsSUFBRUQsRUFBQyxHQUFFSSxLQUFFLEdBQUdKLElBQUVFLElBQUUsR0FBRSxHQUFHLEdBQUc7QUFBRSxXQUFPLEVBQUUsSUFBSUUsSUFBRUQsRUFBQztBQUFBLEVBQUMsR0FBRUQsR0FBRSxlQUFhLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVDLEdBQUUsU0FBTyxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDLEdBQUVHLEtBQUUsRUFBRUYsSUFBRUQsRUFBQyxHQUFFSSxLQUFFLEdBQUdKLElBQUVFLElBQUUsR0FBRSxHQUFHLElBQUk7QUFBRSxXQUFPLEVBQUUsSUFBSUUsSUFBRUQsRUFBQztBQUFBLEVBQUMsR0FBRUQsR0FBRSxjQUFZLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLEdBQUc7QUFBQSxFQUFDLEdBQUVDLEdBQUUsUUFBTSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDLEdBQUVHLEtBQUUsRUFBRUYsSUFBRUQsRUFBQyxHQUFFSSxLQUFFLEdBQUdKLElBQUVFLElBQUUsR0FBRSxHQUFHLEdBQUc7QUFBRSxXQUFPLEVBQUUsSUFBSUUsSUFBRUQsRUFBQztBQUFBLEVBQUMsR0FBRUQsR0FBRSxlQUFhLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVDLEdBQUUsU0FBTyxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDLEdBQUVHLEtBQUUsRUFBRUYsSUFBRUQsRUFBQyxHQUFFSSxLQUFFLEdBQUdKLElBQUVFLElBQUUsR0FBRSxHQUFHLElBQUk7QUFBRSxXQUFPLEVBQUUsSUFBSUUsSUFBRUQsRUFBQztBQUFBLEVBQUMsR0FBRUQsR0FBRSxlQUFhLFNBQVNGLElBQUVDLElBQUU7QUFB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V0FBU0MsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxFQUFFRCxJQUFFSCxJQUFFQyxFQUFDO0FBQUUsV0FBTyxHQUFHRCxJQUFFQyxJQUFFQyxJQUFFLEdBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsYUFBTyxFQUFFLElBQUlBLElBQUVJLEVBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVGLEdBQUUsa0JBQWdCLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsSUFBSUQsSUFBRUMsSUFBRSxLQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFlBQVUsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxFQUFFLFdBQVUsR0FBRyxJQUFJRCxJQUFFQyxJQUFFLElBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUsbUJBQWlCLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsS0FBS0QsSUFBRUMsSUFBRSxLQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLGFBQVcsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxFQUFFLFdBQVUsR0FBRyxLQUFLRCxJQUFFQyxJQUFFLElBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUsa0JBQWdCLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsSUFBSUgsSUFBRUUsSUFBRSxPQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFlBQVUsU0FBU0YsSUFBRUUsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxFQUFFLFdBQVUsV0FBU0MsT0FBSUEsS0FBRSxDQUFDLElBQUcsR0FBRyxJQUFJSCxJQUFFRSxJQUFFLE1BQUcsRUFBRSxNQUFNLFFBQU8sRUFBRSxDQUFDQyxFQUFDLEdBQUVILElBQUUsS0FBRSxDQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVFLEdBQUUsbUJBQWlCLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsS0FBS0gsSUFBRUUsSUFBRSxPQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGFBQVcsU0FBU0YsSUFBRUUsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxFQUFFLFdBQVUsV0FBU0MsT0FBSUEsS0FBRSxDQUFDLElBQUcsR0FBRyxLQUFLSCxJQUFFRSxJQUFFLE1BQUcsRUFBRSxNQUFNLFFBQU8sRUFBRSxDQUFDQyxFQUFDLEdBQUVILElBQUUsS0FBRSxDQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVFLEdBQUUsa0JBQWdCLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsSUFBSUgsSUFBRUUsSUFBRSxPQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFlBQVUsU0FBU0YsSUFBRUUsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxFQUFFLFdBQVUsV0FBU0MsT0FBSUEsS0FBRSxDQUFDLElBQUcsR0FBRyxJQUFJSCxJQUFFRSxJQUFFLE1BQUcsRUFBRSxNQUFNLFFBQU8sRUFBRSxDQUFDQyxFQUFDLEdBQUVILElBQUUsS0FBRSxDQUFDLENBQUM7QUFB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QUFRO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxJQUFJO0FBQUEsSUFDSixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixLQUFLO0FBQUEsSUFDTCxVQUFVO0FBQUEsSUFDVixLQUFLO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixLQUFLO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxjQUFjO0FBQUEsSUFDZCxZQUFZO0FBQUEsSUFDWixlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixnQkFBZ0I7QUFBQSxJQUNoQixRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxrQkFBa0I7QUFBQSxJQUNsQixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixtQkFBbUI7QUFBQSxJQUNuQixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixPQUFPO0FBQUEsSUFDUCxZQUFZO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxrQkFBa0I7QUFBQSxJQUNsQixRQUFRO0FBQUEsSUFDUixjQUFjO0FBQUEsSUFDZCxrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxnQkFBZ0I7QUFBQSxJQUNoQixhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxvQkFBb0I7QUFBQSxJQUNwQixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsSUFDYiwyQkFBMkI7QUFBQSxJQUMzQixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixzQkFBc0I7QUFBQSxJQUN0QixVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixhQUFhO0FBQUEsSUFDYixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixLQUFLO0FBQUEsSUFDTCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixZQUFZO0FBQUEsSUFDWixLQUFLO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxVQUFVO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixPQUFPO0FBQUEsSUFDUCxXQUFXO0FBQUEsSUFDWCxNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixPQUFPO0FBQUEsSUFDUCxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUE7QUFBQTtBQUFBLElBSU4sT0FBTztBQUFBO0FBQUEsSUFDUCxPQUFPO0FBQUE7QUFBQSxJQUNQLFNBQVM7QUFBQTtBQUFBLElBQ1QsTUFBTTtBQUFBO0FBQUEsSUFDTixZQUFZO0FBQUE7QUFBQSxJQUNaLFNBQVM7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QUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsT0FBTztBQUFBLElBQ1AsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsZUFBZTtBQUFBLElBQ2YsZ0JBQWdCO0FBQUEsSUFDaEIsaUJBQWlCO0FBQUEsSUFDakIsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsdUJBQXVCO0FBQUEsSUFDdkIsd0JBQXdCO0FBQUEsSUFDeEIsaUJBQWlCO0FBQUEsSUFDakIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsZ0JBQWdCO0FBQUEsSUFDaEIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osZ0JBQWdCO0FBQUEsSUFDaEIsZUFBZTtBQUFBLElBQ2YsUUFBUTtBQUFBLElBQ1IsbUJBQW1CO0FBQUEsSUFDbkIsb0JBQW9CO0FBQUEsSUFDcEIsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1YsY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsYUFBYTtBQUFBLElBQ2IsYUFBYTtBQUFBLElBQ2IsYUFBYTtBQUFBLElBQ2IsYUFBYTtBQUFBLElBQ2IsU0FBUztBQUFBO0FBQUEsSUFFVCxlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsRUFDakI7QUFBQSxFQUNBLFdBQVc7QUFBQSxFQUNYLFlBQVk7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLGNBQWM7QUFBQSxJQUNkLFlBQVk7QUFBQSxJQUNaLFVBQVU7QUFBQSxJQUNWLG1CQUFtQjtBQUFBLElBQ25CLFlBQVk7QUFBQSxJQUNaLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLGFBQWE7QUFBQSxJQUNiLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLElBQUk7QUFBQSxJQUNKLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLE1BQU07QUFBQSxJQUNOLFVBQVU7QUFBQSxJQUNWLGVBQWU7QUFBQSxJQUNmLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLG9CQUFvQjtBQUFBLElBQ3BCLDJCQUEyQjtBQUFBLElBQzNCLGNBQWM7QUFBQSxJQUNkLGdCQUFnQjtBQUFBLElBQ2hCLFNBQVM7QUFBQSxJQUNULG1CQUFtQjtBQUFBLElBQ25CLGtCQUFrQjtBQUFBLElBQ2xCLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLEdBQUc7QUFBQSxJQUNILFVBQVU7QUFBQSxJQUNWLGVBQWU7QUFBQSxJQUNmLFNBQVM7QUFBQSxJQUNULGlCQUFpQjtBQUFBLElBQ2pCLFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULEtBQUs7QUFBQSxJQUNMLFNBQVM7QUFBQSxJQUNULGtCQUFrQjtBQUFBLElBQ2xCLFVBQVU7QUFBQSxJQUNWLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGtCQUFrQjtBQUFBLElBQ2xCLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQSxJQUNQLFVBQVU7QUFBQSxJQUNWLDJCQUEyQjtBQUFBLElBQzNCLE1BQU07QUFBQSxJQUNOLGFBQWE7QUFBQSxJQUNiLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGdCQUFnQjtBQUFBLElBQ2hCLFlBQVk7QUFBQSxJQUNaLFVBQVU7QUFBQSxJQUNWLGdCQUFnQjtBQUFBLElBQ2hCLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLElBQUk7QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLFdBQVc7QUFBQSxJQUNYLDRCQUE0QjtBQUFBLElBQzVCLDBCQUEwQjtBQUFBLElBQzFCLFVBQVU7QUFBQSxJQUNWLG1CQUFtQjtBQUFBLElBQ25CLGVBQWU7QUFBQSxJQUNmLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULG1CQUFtQjtBQUFBLElBQ25CLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxJQUNOLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNkLElBQUk7QUFBQSxJQUNKLGFBQWE7QUFBQSxJQUNiLGdCQUFnQjtBQUFBLElBQ2hCLG1CQUFtQjtBQUFBLElBQ25CLElBQUk7QUFBQSxJQUNKLEtBQUs7QUFBQSxJQUNMLFdBQVc7QUFBQSxJQUNYLEdBQUc7QUFBQSxJQUNILElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLGNBQWM7QUFBQSxJQUNkLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQTtBQUFBLElBQ1gsWUFBWTtBQUFBO0FBQUEsSUFDWixVQUFVO0FBQUE7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULE1BQU07QUFBQSxJQUNOLGNBQWM7QUFBQSxJQUNkLGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLG1CQUFtQjtBQUFBLElBQ25CLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxJQUNiLGFBQWE7QUFBQSxJQUNiLE1BQU07QUFBQSxJQUNOLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQSxJQUNQLHdCQUF3QjtBQUFBLElBQ3hCLHVCQUF1QjtBQUFBLElBQ3ZCLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLGVBQWU7QUFBQSxJQUNmLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGtCQUFrQjtBQUFBLElBQ2xCLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLE9BQU87QUFBQSxJQUNQLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQSxJQUNkLGtCQUFrQjtBQUFBLElBQ2xCLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFB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QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFlBQVksSUFBSTtBQUMxQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFdBQVcsSUFBSTtBQUN6QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUN2QixHQUFHLFlBQVksY0FBYyxZQUFZLENBQUMsRUFBRTtBQU1yQyxJQUFJO0FB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T0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLEdBQUcsSUFBSSxFQUFFLElBQUk7QUFDM0IsRUFBQUEsUUFBT0EsUUFBTyxLQUFLLElBQUksRUFBRSxJQUFJO0FBQzdCLEVBQUFBLFFBQU9BLFFBQU8sT0FBTyxJQUFJLEVBQUUsSUFBSTtBQUMvQixFQUFBQSxRQUFPQSxRQUFPLE9BQU8sSUFBSSxFQUFFLElBQUk7QUFDL0IsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLE9BQU8sSUFBSSxFQUFFLElBQUk7QUFDL0IsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDakMsRUFBQUEs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RyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsZ0JBQWdCLE9BQU8sY0FBYztBQUFBLEVBQ2hELENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUFBLEVBQ3RCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxZQUFZLE9BQU8sVUFBVTtBQUFBLEVBQ3hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxZQUFZLE9BQU8sVUFBVTtBQUFBLEVBQ3hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxnQkFBZ0IsT0FBTyxjQUFjO0FBQUEsRUFDaEQsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFlBQVksT0FBTyxVQUFVO0FBQUEsRUFDeEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFdBQVcsT0FBTyxTQUFTO0FBQUEsRUFDdEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQzlCLENBQUM7QUFDTSxTQUFTLFNBQVMsU0FBUztBQUM5QixNQUFJQztBQUNKLFVBQVFBLE1BQUssZUFBZSxJQUFJLE9BQU8sT0FBTyxRQUFRQSxRQUFPLFNBQVNBLE1BQUssT0FBTztBQUN0RjtBQUNBLElBQU1DLEtBQUk7QUFDSCxJQUFNLG1CQUFtQjtBQUFBLEVBQzVCLENBQUMsR0FBRyxJQUFJLEdBQUcsb0JBQUksSUFBSTtBQUFBLElBQ2ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNG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LEVBQ0o7QUFBQTtBQUFBLEVBRUEsdUNBQXVDO0FBQUEsSUFDckMsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsdUNBQXVDO0FBQUEsSUFDckMsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLElBQ0YsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsK0JBQStCO0FBQUEsSUFDN0IsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsMkJBQTJCO0FBQUEsSUFDekIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsbUNBQW1DO0FBQUEsSUFDakMsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLElBQ0YsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsb0JBQW9CO0FBQUEsSUFDbEIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsc0JBQXNCO0FBQUEsSUFDcEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMkJBQTJCO0FBQUEsSUFDekIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsa0NBQWtDO0FBQUEsSUFDaEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsa0JBQWtCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsWUFBWTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsY0FBYztBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsY0FBYztBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsb0NBQW9DO0FBQUEsSUFDbEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsZ0NBQWdDO0FBQUEsSUFDOUIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsVUFBVTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMEJBQTBCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMEJBQTBCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMENBQTBDO0FBQUEsSUFDeEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsZ0NBQWdDO0FBQUEsSUFDOUIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsa0JBQWtCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsaUNBQWlDO0FBQUEsSUFDL0IsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLElBQ0YsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsdUJBQXVCO0FBQUEsSUFDckIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsZ0JBQWdCO0FBQUEsSUFDZCxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFFQSxvQkFBb0I7QUFBQSxJQUNsQixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxnQ0FBZ0M7QUFBQSxJQUM5QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxnQ0FBZ0M7QUFBQSxJQUM5QixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSxtQkFBbUI7QUFBQSxJQUNqQixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwyQ0FBMkM7QUFBQSxJQUN6QyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwyQ0FBMkM7QUFBQSxJQUN6QyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSx5Q0FBeUM7QUFBQSxJQUN2QyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSw0Q0FBNEM7QUFBQSxJQUMxQyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSw0Q0FBNEM7QUFBQSxJQUMxQyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxvQ0FBb0M7QUFBQSxJQUNsQyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxvQ0FBb0M7QUFBQSxJQUNsQyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwyREFBMkQ7QUFBQSxJQUN6RCxRQUNFO0FBQUEsSUFDRixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxlQUFlO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxzQkFBc0I7QUFBQSxJQUNwQixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsSUFDRixLQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFFQSxzQkFBc0I7QUFBQSxJQUNwQixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsSUFDRixLQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFFQSwrQ0FBK0M7QUFBQSxJQUM3QyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxnQ0FBZ0M7QUFBQSxJQUM5QixRQUNFO0FBQUEsSUFDRixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwyQkFBMkI7QUFBQSxJQUN6QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSx3QkFBd0I7QUFBQSxJQUN0QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwwQkFBMEI7QUFBQSxJQUN4QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFFQSw2QkFBNkI7QUFBQSxJQUMzQixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSx3QkFBd0I7QUFBQSxJQUN0QixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSxpREFBaUQ7QUFBQSxJQUMvQyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxvQ0FBb0M7QUFBQSxJQUNsQyxRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSw2Q0FBNkM7QUFBQSxJQUMzQyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSx5Q0FBeUM7QUFBQSxJQUN2QyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSx5QkFBeUI7QUFBQSxJQUN2QixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSx3Q0FBd0M7QUFBQSxJQUN0QyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSx3QkFBd0I7QUFBQSxJQUN0QixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSxnQ0FBZ0M7QUFBQSxJQUM5QixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsRUFDSjtBQUNGOzs7QUMxUkEsSUFBTSxPQUFPO0FBRWIsSUFBTSxnQkFBZ0I7QUFDdEIsSUFBTSxZQUFZO0FBQ2xCLElBQU0sWUFBWTtBQUVsQixJQUFNLGFBQWEsRUFBQyxHQUFHLE1BQU0sR0FBRyxPQUFPLEdBQUcsS0FBSTtBQUc5QyxJQUFNLGVBQWUsQ0FBQztBQVlmLFNBQVMsU0FBUyxPQUFPLFNBQVM7QUFDdkMsUUFBTSxXQUFXLFdBQVc7QUFDNUIsUUFBTSxVQUFVLFNBQVM7QUFDekIsUUFBTSxPQUFPLGlCQUFpQixRQUFRLFFBQVEsSUFBSSxNQUFNLEtBQUs7QUFDN0QsUUFBTSxLQUFLLFNBQVMsV0FBVyxnQkFBZ0JDO0FBQy9DLFFBQU0sTUFBTSxPQUFPLElBQUk7QUFDdkIsUUFBTSxRQUFRLEdBQUcsS0FBSztBQUFBLElBQ3BCLHdCQUF3QjtBQUFBO0FBQUEsSUFFeEIsY0FBYyxTQUFTLFVBQVUsa0JBQWtCO0FBQUEsSUFDbkQsa0JBQWtCO0FBQUEsRUFDcEIsQ0FBQztBQUdEO0FBQUE7QUFBQSxJQUNFLFdBQVcsT0FBTztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxPQUFPLFNBQVM7QUFBQSxNQUNoQixTQUFTLFNBQVM7QUFBQSxJQUNwQixDQUFDO0FBQUE7QUFXSCxXQUFTLGdCQUFnQixPQUFPO0FBQzlCLFVBQU0sT0FBTyxNQUFNO0FBQ25CLFVBQU0sT0FBT0MsV0FBVSxJQUFJO0FBQzNCLFVBQU0sVUFBVSxTQUFTLElBQUk7QUFDN0IsVUFBTSxTQUFTLFlBQVksUUFBUSxZQUFZLFNBQVksT0FBTztBQUNsRSxVQUFNLFFBQVEsT0FBTyxXQUFXLFdBQVcsU0FBUyxTQUFTLElBQUk7QUFFakUsUUFBSSxPQUFPO0FBQ1QsWUFBTSxPQUFPLE9BQU8sSUFBSTtBQUN4QixNQUFBQyxJQUFPLE1BQU0sb0NBQW9DO0FBRWpELFlBQU0sVUFBVSxJQUFJLGFBQWEsT0FBTyxLQUFLLE1BQU0sR0FBRztBQUFBLFFBQ3BELE9BQU87QUFBQSxVQUNMLE9BQU87QUFBQSxZQUNMLE1BQU0sTUFBTTtBQUFBLFlBQ1osUUFBUSxNQUFNO0FBQUEsWUFDZCxRQUFRLE1BQU07QUFBQSxVQUNoQjtBQUFBLFVBQ0EsS0FBSztBQUFBLFlBQ0gsTUFBTSxNQUFNO0FBQUEsWUFDWixRQUFRLE1BQU07QUFBQSxZQUNkLFFBQVEsTUFBTTtBQUFBLFVBQ2hCO0FBQUEsUUFDRjtBQUFBLFFBQ0EsUUFBUTtBQUFBLFFBQ1IsUUFBUTtBQUFBLE1BQ1YsQ0FBQztBQUVELFVBQUksS0FBSyxNQUFNO0FBQ2IsZ0JBQVEsT0FBTyxLQUFLO0FBQ3BCLGdCQUFRLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUTtBQUFBLE1BQzNDO0FBRUEsY0FBUSxRQUFRLFdBQVcsS0FBSztBQUNoQyxjQUFRLE9BQU8sT0FBTyxLQUFLLFdBQVc7QUFDdEMsY0FBUSxNQUFNLEtBQUssUUFBUSxRQUFRLFNBQVksT0FBTztBQUV0RCxNQUFBQSxJQUFPLFNBQVMseURBQXlEO0FBQ3pFLGNBQVEsT0FBTztBQUFBLElBQ2pCO0FBVUEsYUFBUyxPQUFPQyxRQUFPO0FBQ3JCLGFBQU9BLE9BQU0sUUFBUSxXQUFXLE9BQU8sRUFBRSxRQUFRLFdBQVcsT0FBTztBQWNuRSxlQUFTLFFBQVFDLElBQUcsSUFBSUMsS0FBSTtBQUMxQixjQUFNLFVBQ0hBLE1BQUssT0FBTyxTQUFTQSxLQUFJLEVBQUUsSUFBSSxNQUFNLE9BQU8sTUFBTSxLQUFLO0FBQzFELGNBQU0sT0FBTyxJQUFJLE9BQU8sTUFBTSxjQUFjLE1BQU07QUFDbEQsZUFBTyxtQkFBbUIsSUFBSTtBQUFBLE1BQ2hDO0FBUUEsZUFBUyxVQUFVO0FBQ2pCLGVBQU8sdUJBQXVCLElBQUksV0FBVyxNQUFNLFdBQVcsQ0FBQztBQUFBLE1BQ2pFO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQVFBLFNBQVNKLFdBQVUsT0FBTztBQUV4QjtBQUFBO0FBQUEsSUFBaUMsTUFBTSxRQUFRLGVBQWUsV0FBVztBQUFBO0FBQzNFO0FBUUEsU0FBUyxZQUFZLElBQUk7QUFDdkIsU0FBTyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFlBQVk7QUFDbEM7QUFRQSxTQUFTLG1CQUFtQixNQUFNO0FBQ2hDLFNBQU8sU0FBUyxNQUFNLFVBQVU7QUFDbEM7QUFRQSxTQUFTLHVCQUF1QixVQUFVO0FBQ3hDLFNBQU8sT0FBTyxTQUFTLFNBQVMsRUFBRSxFQUFFLFlBQVk7QUFDbEQ7OztBQzNPTyxJQUFNLG1CQUFtQjtBQUFBLEVBQzlCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGOzs7QUN1QkEsSUFBTUssT0FBTSxDQUFDLEVBQUU7QUFjUixTQUFTLE9BQU9DLE1BQUssU0FBUztBQUNuQyxRQUFNLFdBQVcsV0FBVyxDQUFDO0FBOEI3QixXQUFTQyxLQUFJLFVBQVUsWUFBWTtBQUVqQyxRQUFJLEtBQUtBLEtBQUk7QUFDYixVQUFNLFdBQVdBLEtBQUk7QUFFckIsUUFBSSxTQUFTRixLQUFJLEtBQUssT0FBT0MsSUFBRyxHQUFHO0FBRWpDLFlBQU0sS0FBSyxPQUFPLE1BQU1BLElBQUcsQ0FBQztBQUU1QixXQUFLRCxLQUFJLEtBQUssVUFBVSxFQUFFLElBQUksU0FBUyxFQUFFLElBQUlFLEtBQUk7QUFBQSxJQUNuRDtBQUVBLFFBQUksSUFBSTtBQUNOLGFBQU8sR0FBRyxLQUFLLE1BQU0sT0FBTyxHQUFHLFVBQVU7QUFBQSxJQUMzQztBQUFBLEVBQ0Y7QUFFQSxFQUFBQSxLQUFJLFdBQVcsU0FBUyxZQUFZLENBQUM7QUFDckMsRUFBQUEsS0FBSSxVQUFVLFNBQVM7QUFDdkIsRUFBQUEsS0FBSSxVQUFVLFNBQVM7QUFHdkIsU0FBT0E7QUFDVDs7O0FDL0ZPLFNBQVMsS0FBSyxPQUFPLFNBQVM7QUFDbkMsVUFBUSxNQUFNO0FBQUEsSUFDWixRQUFRLFNBQVMsdUJBQXVCLFFBQVEsTUFBTSxJQUFJO0FBQUEsSUFDMUQ7QUFBQSxFQUNGO0FBRUEsTUFBSSxRQUFRLFVBQVUsUUFBUSxZQUFZO0FBQ3hDLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FDRSxNQUVHLFFBQVEsbUNBQW1DLFNBQVMsRUFHcEQ7QUFBQTtBQUFBLElBRUM7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQVFKLFdBQVMsVUFBVSxNQUFNQyxRQUFPQyxNQUFLO0FBQ25DLFdBQU8sUUFBUTtBQUFBLE9BQ1osS0FBSyxXQUFXLENBQUMsSUFBSSxTQUFVLE9BQzlCLEtBQUssV0FBVyxDQUFDLElBQ2pCLFFBQ0E7QUFBQSxNQUNGQSxLQUFJLFdBQVdELFNBQVEsQ0FBQztBQUFBLE1BQ3hCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFPQSxXQUFTLE1BQU0sV0FBV0EsUUFBT0MsTUFBSztBQUNwQyxXQUFPLFFBQVE7QUFBQSxNQUNiLFVBQVUsV0FBVyxDQUFDO0FBQUEsTUFDdEJBLEtBQUksV0FBV0QsU0FBUSxDQUFDO0FBQUEsTUFDeEI7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGO0FBTUEsU0FBUyx1QkFBdUIsUUFBUTtBQUV0QyxRQUFNLFNBQVMsQ0FBQztBQUNoQixNQUFJQSxTQUFRO0FBRVosU0FBTyxFQUFFQSxTQUFRLE9BQU8sUUFBUTtBQUM5QixXQUFPLEtBQUssT0FBT0EsTUFBSyxFQUFFLFFBQVEsdUJBQXVCLE1BQU0sQ0FBQztBQUFBLEVBQ2xFO0FBRUEsU0FBTyxJQUFJLE9BQU8sUUFBUSxPQUFPLEtBQUssR0FBRyxJQUFJLEtBQUssR0FBRztBQUN2RDs7O0FDakZPLFNBQVMsY0FBYyxNQUFNLE1BQU0sTUFBTTtBQUM5QyxRQUFNLFFBQVEsUUFBUSxLQUFLLFNBQVMsRUFBRSxFQUFFLFlBQVk7QUFDcEQsU0FBTyxRQUFRLFFBQVEsQ0FBQyxhQUFhLEtBQUssT0FBTyxhQUFhLElBQUksQ0FBQyxJQUMvRCxRQUNBLFFBQVE7QUFDZDs7O0FDTE8sU0FBUyxVQUFVLE1BQU0sTUFBTSxNQUFNO0FBQzFDLFFBQU0sUUFBUSxPQUFPLE9BQU8sSUFBSTtBQUNoQyxTQUFPLFFBQVEsUUFBUSxDQUFDLEtBQUssS0FBSyxPQUFPLGFBQWEsSUFBSSxDQUFDLElBQ3ZELFFBQ0EsUUFBUTtBQUNkOzs7QUNSTyxJQUFNLDBCQUEwQjtBQUFBLEVBQ3JDO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7OztBQzNHTyxJQUFNLHlCQUF5QjtBQUFBLEVBQ3BDLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLFNBQVM7QUFBQSxFQUNULElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLFNBQVM7QUFBQSxFQUNULEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLFNBQVM7QUFBQSxFQUNULElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLFNBQVM7QUFBQSxFQUNULEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLElBQUk7QUFBQSxFQUNK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Q0FBZ0IsS0FBSyxLQUFLLFFBQVEsTUFBTTtBQUNoRSxhQUFLLEtBQUssWUFBWSxTQUFTLElBQUk7QUFBQSxJQUNyQyxDQUFDO0FBQUEsRUFDRjtBQUNEOyIsCiAgIm5hbWVzIjogWyJyb290IiwgImZhY3RvcnkiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZGVmaW5lIiwgImFtZCIsICJzZWxmIiwgIl9fd2VicGFja19yZXF1aXJlX18iLCAiZGVmaW5pdGlvbiIsICJrZXkiLCAibyIsICJPYmplY3QiLCAiZGVmaW5lUHJvcGVydHkiLCAiZW51bWVyYWJsZSIsICJnZXQiLCAib2JqIiwgInByb3AiLCAicHJvdG90eXBlIiwgImhhc093blByb3BlcnR5IiwgImNhbGwiLCAiU3ltYm9sIiwgInRvU3RyaW5nVGFnIiwgInZhbHVlIiwgImUiLCAidCIsICJFIiwgImV2ZW50TGlzdGVuZXIiLCAibWV0aG9kIiwgImVsZW1lbnRzIiwgImV2ZW50cyIsICJmbiIsICJvcHRpb25zIiwgIkhUTUxDb2xsZWN0aW9uIiwgIk5vZGVMaXN0IiwgIkFycmF5IiwgImZyb20iLCAiaXNBcnJheSIsICJlbCIsICJldiIsICJjYXB0dXJlIiwgInNsaWNlIiwgImFyZ3VtZW50cyIsICJwIiwgInIiLCAiYSIsICJsIiwgInMiLCAiaSIsICJjIiwgIm9uIiwgImJpbmQiLCAib2ZmIiwgImNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nIiwgImh0bWwiLCAiZGl2IiwgImRvY3VtZW50IiwgImNyZWF0ZUVsZW1lbnQiLCAiaW5uZXJIVE1MIiwgInRyaW0iLCAiZmlyc3RFbGVtZW50Q2hpbGQiLCAiY3JlYXRlRnJvbVRlbXBsYXRlIiwgInN0ciIsICJyZW1vdmVBdHRyaWJ1dGUiLCAibmFtZSIsICJnZXRBdHRyaWJ1dGUiLCAicmVzb2x2ZSIsICJlbGVtZW50IiwgImJhc2UiLCAiY29uIiwgInN1YnRyZWUiLCAiY2hpbGQiLCAiY2hpbGRyZW4iLCAiYXJyIiwgInN1YiIsICJwdXNoIiwgImtleXMiLCAibGVuZ3RoIiwgImV2ZW50UGF0aCIsICJldnQiLCAicGF0aCIsICJjb21wb3NlZFBhdGgiLCAidGFyZ2V0IiwgInBhcmVudEVsZW1lbnQiLCAid2luZG93IiwgInJlc29sdmVFbGVtZW50IiwgInZhbCIsICJFbGVtZW50IiwgInNwbGl0IiwgInJlZHVjZSIsICJwdiIsICJjdiIsICJjaSIsICJxdWVyeVNlbGVjdG9yIiwgInNoYWRvd1Jvb3QiLCAiYWRqdXN0YWJsZUlucHV0TnVtYmVycyIsICJtYXBwZXIiLCAidiIsICJoYW5kbGVTY3JvbGwiLCAiaW5jIiwgIk51bWJlciIsICJzaGlmdEtleSIsICJjdHJsS2V5IiwgImRlbHRhWSIsICJpbmRleCIsICJzZWxlY3Rpb25TdGFydCIsICJyZXBsYWNlIiwgImZvY3VzIiwgInNldFNlbGVjdGlvblJhbmdlIiwgInByZXZlbnREZWZhdWx0IiwgImRpc3BhdGNoRXZlbnQiLCAiRXZlbnQiLCAicGFzc2l2ZSIsICJtaW4iLCAibWF4IiwgImZsb29yIiwgInJvdW5kIiwgIk1hdGgiLCAiaHN2VG9SZ2IiLCAiaCIsICJmIiwgInEiLCAibW9kIiwgImhzdlRvSHNsIiwgInJnYlRvSHN2IiwgImciLCAiYiIsICJtaW5WYWwiLCAibWF4VmFsIiwgImRlbHRhIiwgImRyIiwgImRnIiwgImRiIiwgImNteWtUb0hzdiIsICJtIiwgInkiLCAiayIsICJoc2xUb0hzdiIsICJucyIsICJpc05hTiIsICJoZXhUb0hzdiIsICJoZXgiLCAibWF0Y2giLCAibWFwIiwgInBhcnNlSW50IiwgInBhcnNlVG9IU1ZBIiwgInRvTG93ZXJDYXNlIiwgImN0eCIsICJnZXRDb250ZXh0IiwgImZpbGxTdHlsZSIsICJyZWdleCIsICJjbXlrIiwgInJnYmEiLCAiaHNsYSIsICJoc3ZhIiwgImhleGEiLCAibnVtYXJpemUiLCAiYXJyYXkiLCAidGVzdCIsICJ1bmRlZmluZWQiLCAiaW52YWxpZCIsICJ0eXBlIiwgImV4ZWMiLCAidmFsdWVzIiwgImpvaW4iLCAicmF3IiwgInN1YnN0cmluZyIsICJIU1ZhQ29sb3IiLCAib3JpZ2luYWwiLCAibmV4dCIsICJwcmVjaXNpb24iLCAidG9GaXhlZCIsICJ0aGF0IiwgInRvSFNWQSIsICJ0b1N0cmluZyIsICJ0b0hTTEEiLCAidG9SR0JBIiwgInRvQ01ZSyIsICJyZ2IiLCAidG9IRVhBIiwgInBhZFN0YXJ0IiwgImFscGhhIiwgInRvVXBwZXJDYXNlIiwgImNsb25lIiwgImNsYW1wIiwgIk1vdmVhYmxlIiwgIm9wdCIsICJhc3NpZ24iLCAibG9jayIsICJvbmNoYW5nZSIsICJvbnN0b3AiLCAiX2tleWJvYXJkIiwgImFjdGl2ZUVsZW1lbnQiLCAid3JhcHBlciIsICJ1cCIsICJyaWdodCIsICJkb3duIiwgImxlZnQiLCAieG0iLCAieW0iLCAidXBkYXRlIiwgImNhY2hlIiwgIngiLCAic3RhcnRzV2l0aCIsICJfdGFwc3RhcnQiLCAiXyIsICJfdGFwc3RvcCIsICJfdGFwbW92ZSIsICJjYW5jZWxhYmxlIiwgImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsICJ0b3VjaCIsICJ0b3VjaGVzIiwgImNsaWVudFgiLCAiY2xpZW50WSIsICJ3aWR0aCIsICJ0b3AiLCAiaGVpZ2h0IiwgInN0eWxlIiwgIm9mZnNldFdpZHRoIiwgIm9mZnNldEhlaWdodCIsICJjeCIsICJjeSIsICJ0cmlnZ2VyIiwgImRlc3Ryb3kiLCAiU2VsZWN0YWJsZSIsICJjbGFzc05hbWUiLCAib25UYXAiLCAiZm9yRWFjaCIsICJjbGFzc0xpc3QiLCAic3RvcFByb3BhZ2F0aW9uIiwgInZhcmlhbnRGbGlwT3JkZXIiLCAic3RhcnQiLCAibWlkZGxlIiwgImVuZCIsICJwb3NpdGlvbkZsaXBPcmRlciIsICJib3R0b20iLCAicG9zaXRpb24iLCAibWFyZ2luIiwgInBhZGRpbmciLCAiRCIsICJIVE1MRWxlbWVudCIsICJyZWZlcmVuY2UiLCAicG9wcGVyIiwgIkVycm9yIiwgImNvbnRhaW5lciIsICJhcnJvdyIsICJCIiwgIk0iLCAiQyIsICJkb2N1bWVudEVsZW1lbnQiLCAiRiIsICJLIiwgIlMiLCAiViIsICJ2cyIsICJ2bSIsICJ2ZSIsICJocyIsICJobSIsICJoZSIsICIkIiwgIlIiLCAiaiIsICJ1IiwgIm4iLCAiZCIsICJ3IiwgInoiLCAiTCIsICJQIiwgIlQiLCAiTyIsICJIIiwgIlBpY2tyIiwgImNvbnN0cnVjdG9yIiwgIl9pbml0aWFsaXppbmdBY3RpdmUiLCAiX3JlY2FsYyIsICJfbmFub3BvcCIsICJfcm9vdCIsICJfY29sb3IiLCAiX2xhc3RDb2xvciIsICJfc3dhdGNoQ29sb3JzIiwgIl9zZXR1cEFuaW1hdGlvbkZyYW1lIiwgIl9ldmVudExpc3RlbmVyIiwgImluaXQiLCAic2F2ZSIsICJoaWRlIiwgInNob3ciLCAiY2xlYXIiLCAiY2hhbmdlIiwgImNoYW5nZXN0b3AiLCAiY2FuY2VsIiwgInN3YXRjaHNlbGVjdCIsICJ0aGlzIiwgIkRFRkFVTFRfT1BUSU9OUyIsICJzd2F0Y2hlcyIsICJjb21wb25lbnRzIiwgInRoZW1lIiwgInNsaWRlcnMiLCAibG9ja09wYWNpdHkiLCAiaW5jbHVkZXMiLCAiaW50ZXJhY3Rpb24iLCAicHJldmlldyIsICJvcGFjaXR5IiwgImh1ZSIsICJwYWxldHRlIiwgIl9wcmVCdWlsZCIsICJfYnVpbGRDb21wb25lbnRzIiwgIl9iaW5kRXZlbnRzIiwgIl9maW5hbEJ1aWxkIiwgImNvbG9yIiwgImFkZFN3YXRjaCIsICJidXR0b24iLCAiYXBwIiwgImNyZWF0ZVBvcHBlciIsICJzZXRBdHRyaWJ1dGUiLCAiX3QiLCAicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwgImNiIiwgInNldENvbG9yIiwgImRlZmF1bHQiLCAiX3JlUG9zaXRpb25pbmdQaWNrZXIiLCAiZGVmYXVsdFJlcHJlc2VudGF0aW9uIiwgIl9yZXByZXNlbnRhdGlvbiIsICJzZXRDb2xvclJlcHJlc2VudGF0aW9uIiwgInNob3dBbHdheXMiLCAiX2VtaXQiLCAiaW5zdGFuY2UiLCAidXNlQXNCdXR0b24iLCAiaW5saW5lIiwgImFwcENsYXNzIiwgImhpZGRlbiIsICJpbnB1dCIsICJpbnQiLCAiZmluZCIsICJhZGQiLCAiY29udGFpbnMiLCAiYXBwZW5kQ2hpbGQiLCAicmVtb3ZlQ2hpbGQiLCAicGFyZW50IiwgIm5leHRTaWJsaW5nIiwgImluc2VydEJlZm9yZSIsICJyZW1vdmUiLCAicGFyZW50Tm9kZSIsICJyZXBsYWNlQ2hpbGQiLCAiZGlzYWJsZWQiLCAiZGlzYWJsZSIsICJjb21wYXJpc29uIiwgInRyYW5zaXRpb24iLCAibGFzdENvbG9yIiwgImluc3QiLCAiY3MiLCAicmVwZWF0IiwgInNvIiwgInNoIiwgImdldENvbG9yIiwgInBpY2tlciIsICJjdXJyZW50Q29sb3IiLCAiX3VwZGF0ZU91dHB1dCIsICJjc3NSR0JhU3RyaW5nIiwgImJhY2tncm91bmQiLCAic2V0UHJvcGVydHkiLCAic2xpZGVyIiwgImJhY2tncm91bmRDb2xvciIsICJzZWxlY3RhYmxlIiwgIl9jb21wb25lbnRzIiwgImV2ZW50QmluZGluZ3MiLCAiX2NsZWFyQ29sb3IiLCAic2V0SFNWQSIsICJhcHBseUNvbG9yIiwgInJlc3VsdCIsICJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLCAiY2siLCAiY2xvc2VXaXRoS2V5IiwgImlzT3BlbiIsICJjb2RlIiwgInNvbWUiLCAiYWRqdXN0YWJsZU51bWJlcnMiLCAicmFuZ2VzIiwgInN0ZXAiLCAicmFuZ2UiLCAiZ2V0Q29sb3JSZXByZXNlbnRhdGlvbiIsICJudiIsICJ0b1ByZWNpc2lvbiIsICJhdXRvUmVwb3NpdGlvbiIsICJ0aW1lb3V0IiwgImNsb3NlT25TY3JvbGwiLCAic2V0VGltZW91dCIsICJycyIsICJjbGVhclRpbWVvdXQiLCAiX2V2ZW50QmluZGluZ3MiLCAiYm9keSIsICJlYiIsICJpbm5lckhlaWdodCIsICJpbm5lcldpZHRoIiwgImV2ZW50U291cmNlIiwgIm91dHB1dFByZWNpc2lvbiIsICJzaWxlbnQiLCAiX3BhcnNlTG9jYWxDb2xvciIsICJhbHBoYU1ha2VzQUNoYW5nZSIsICJpMThuIiwgIkkxOE5fREVGQVVMVFMiLCAiZXZlbnQiLCAiYXJncyIsICJjYWxsQmFja3MiLCAiaW5kZXhPZiIsICJzcGxpY2UiLCAicmVtb3ZlU3dhdGNoIiwgInN3YXRjaENvbG9yIiwgImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwgImRlc3Ryb3lBbmRSZW1vdmUiLCAicmVjYWxjIiwgInN0cmluZyIsICJ1dHlwZSIsICJjbGljayIsICJnZXRTZWxlY3RlZENvbG9yIiwgImdldFJvb3QiLCAiZW5hYmxlIiwgInN0YXRpYyIsICJWRVJTSU9OIiwgIm1vZHVsZSIsICJjb3JlIiwgIml0IiwgImUiLCAiZG9jdW1lbnQiLCAiaXMiLCAiUyIsICJmIiwgIk8iLCAiUCIsICJrZXkiLCAiYSIsICJiIiwgImMiLCAic291cmNlIiwgImV4cG9ydHMiLCAib3duIiwgInBvcyIsICJzIiwgImkiLCAibCIsICJjb2RlUG9pbnRBdCIsICJpbmRleCIsICJmcm9tQ29kZVBvaW50IiwgIngiLCAicm9vdCIsICJwYXJzZSIsICJ0ZXh0IiwgInRva2VuIiwgImNvbW1lbnQiLCAidSIsICJwIiwgImJ1ZmZlciIsICJzdHJpbmdpZnkiLCAic3RhY2siLCAidiIsICJ2YWx1ZSIsICJsaXN0IiwgIkpTT041IiwgImltcG9ydF9vYnNpZGlhbiIsICJzZXR0aW5ncyIsICJfYSIsICJpbmRleCIsICJ0IiwgImUiLCAibiIsICJyIiwgImkiLCAibyIsICJjIiwgInUiLCAicyIsICJkIiwgImIiLCAiQSIsICJGIiwgInYiLCAiSCIsICJCIiwgIkMiLCAiayIsICJTIiwgIlIiLCAiTSIsICJPIiwgIkwiLCAiRyIsICJqIiwgIlgiLCAiSSIsICJZIiwgImEiLCAibCIsICJmIiwgImgiLCAicCIsICJnIiwgIm0iLCAieSIsICJFIiwgInRleHQiLCAidmFsdWUiLCAiZSIsICJfYSIsICJQaWNrciIsICJpIiwgImJvZHkiLCAiX2EiLCAiaW1wb3J0X29ic2lkaWFuIiwgImltcG9ydF9vYnNpZGlhbiIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaSIsICJjb2RlU2VjdGlvbiIsICJfYSIsICJfIiwgImUiLCAiaW1wb3J0X29ic2lkaWFuIiwgIl9hIiwgInRleHQiLCAicG9zaXRpb24iLCAiX2EiLCAicmVtb3ZlRm9sZExhbmd1YWdlcyIsICJsYW5nIiwgImVtcHR5IiwgInBsdWdpbiIsICJmb2xkU3RhcnQiLCAiZm9sZEVuZCIsICJpIiwgInRleHQiLCAic3R5bGUiLCAiZWxlbWVudCIsICJpbXBvcnRfb2JzaWRpYW4iLCAiY2hlY2tzIiwgImluZGV4IiwgImFsbCIsICJrZXkiLCAiZCIsICJpcyIsICJpbmRleCIsICJvayIsICJpbmRleCIsICJpbmRleCIsICJrZXkiLCAiXyIsICJfIiwgIl8iLCAiaHRtbCIsICJzdmciLCAicGFyc2UiLCAiaW5kZXgiLCAicGFyc2UiLCAic3RyaW5naWZ5IiwgIm93biIsICJoIiwgImluZGV4IiwgImtleSIsICJwYXJzZSIsICJ2YWx1ZSIsICJoIiwgImh0bWwiLCAicyIsICJzdmciLCAic2VhcmNoIiwgImluZGV4IiwgInBvaW50IiwgIm93biIsICJzdmciLCAiaHRtbCIsICJvayIsICJpbmRleCIsICJzIiwgImgiLCAicG9zaXRpb24iLCAibG9jYXRpb24iLCAia2V5IiwgIm9wZW5pbmciLCAiY2xvc2luZyIsICJwb2ludCIsICJDT0RFX1BPSU5UUyIsICJFUlIiLCAiaSIsICJUb2tlblR5cGUiLCAiaSIsICJjIiwgImMiLCAiX2EiLCAiQ2hhckNvZGVzIiwgIkJpblRyaWVGbGFncyIsICJFbnRpdHlEZWNvZGVyU3RhdGUiLCAiRGVjb2RpbmdNb2RlIiwgImVycm9ycyIsICJiYXNlIiwgIl9hIiwgIk5TIiwgIkFUVFJTIiwgIkRPQ1VNRU5UX01PREUiLCAiVEFHX05BTUVTIiwgIlRBR19JRCIsICJfYSIsICIkIiwgIlN0YXRlIiwgImlzQXNjaWlBbHBoYU51bWVyaWMiLCAiaXNFbnRpdHlJbkF0dHJpYnV0ZUludmFsaWRFbmQiLCAiX2EiLCAiaSIsICJjdCIsICJsb2NhdGlvbiIsICJkb2N1bWVudCIsICJlbGVtZW50IiwgImkiLCAiRW50cnlUeXBlIiwgImkiLCAiZWxlbWVudCIsICJlbnRyeSIsICJkb2N1bWVudCIsICJ0ZXh0IiwgImoiLCAiZWxlbWVudCIsICJsb2NhdGlvbiIsICJpIiwgIkluc2VydGlvbk1vZGUiLCAiZG9jdW1lbnQiLCAiaHRtbCIsICJfYSIsICJlbGVtZW50IiwgImxvY2F0aW9uIiwgInNpYmxpbmdzIiwgImkiLCAicCIsICJpbmRleCIsICJjIiwgInBhcnNlIiwgImh0bWwiLCAicG9zaXRpb24iLCAicG9pbnQiLCAiaW5kZXgiLCAicGF0aCIsICJpbmRleCIsICJub3JtYWxpemUiLCAicGF0aCIsICJpbmRleCIsICJpbmRleCIsICJwcm9wIiwgImJhc2VuYW1lIiwgImRpcm5hbWUiLCAiYXNzZXJ0UGF0aCIsICJleHRuYW1lIiwgInBhdGgiLCAicGFyc2UiLCAiY2FtZWxjYXNlIiwgIm9rIiwgInZhbHVlIiwgIl8iLCAiJDIiLCAib3duIiwgImtleSIsICJvbmUiLCAiaW5kZXgiLCAiYWxsIiwgIm93biIsICJpbmRleCIsICJlbXB0eSIsICJpbmNyZW1lbnQiLCAiaW5kZXgiLCAic2libGluZ3MiLCAib3duIiwgImluZGV4IiwgImR0IiwgImh0bWwiLCAicCIsICJfIiwgImluZGV4IiwgImJvZHkiLCAiaHRtbCIsICJ0Ym9keSIsICJoZWFkIiwgImluZGV4IiwgImVsZW1lbnQiLCAiaW5kZXgiLCAic3ZnIiwgImtleSIsICJ4IiwgInkiLCAic3RyaW5naWZ5IiwgIl8iLCAiaW5kZXgiLCAiZWxlbWVudCIsICJlbXB0eU9wdGlvbnMiLCAiZW1wdHlDaGlsZHJlbiIsICJvbmUiLCAiYWxsIiwgInN2ZyIsICJodG1sIiwgImluZGV4IiwgImVsZW1lbnQiLCAiX2EiLCAiXyIsICJrZXkiLCAidGV4dCIsICJmb2xkIiwgImluZGV4IiwgImtleSJdCn0K diff --git a/src/ReadingView.ts b/src/ReadingView.ts index 54cbc53..cb410f3 100644 --- a/src/ReadingView.ts +++ b/src/ReadingView.ts @@ -15,8 +15,9 @@ export async function readingViewCodeblockDecoratingPostProcessor(element: HTMLE return; editingEmbeds = editingEmbeds || Boolean(element.matchParent(".cm-embed-block")); + console.log(element); const specific = !element.querySelector(".view-content > *"); - const printing = Boolean(element.querySelector("div.print > *")); + const printing = Boolean(element.querySelector("div.print > *")) || Boolean(element.querySelector("div.slides > *")); if (printing && !plugin.settings.decoratePrint) return; diff --git a/src/css/inlineCode.css b/src/css/inlineCode.css index 149711a..e4afc23 100644 --- a/src/css/inlineCode.css +++ b/src/css/inlineCode.css @@ -12,6 +12,7 @@ body { .code-styler.code-styler-style-inline .cm-s-obsidian span.cm-inline-code, .code-styler.code-styler-style-inline .markdown-rendered :not(pre) > code:not([class*="blur"]), +.code-styler.code-styler-style-inline .reveal :not(pre) > code:not([class*="blur"]), .code-styler.code-styler-style-inline code.code-styler-settings-inline-code { padding: var(--code-styler-inline-padding-vertical) var(--code-styler-inline-padding-horizontal) !important; border-radius: var(--code-styler-inline-border-radius) !important; @@ -73,3 +74,7 @@ body.code-styler span.code-styler-inline-opener > span > img.code-styler-inline- .code-styler .cm-s-obsidian span.cm-inline-code .code-styler-inline-parameters { color: var(--code-comment); } + +.reveal img.code-styler-inline-icon { + margin: inherit; +} diff --git a/src/css/pluginCompatibility.css b/src/css/pluginCompatibility.css index 9d5a364..a8c0ba3 100644 --- a/src/css/pluginCompatibility.css +++ b/src/css/pluginCompatibility.css @@ -14,13 +14,13 @@ pre.code-styler-pre:hover code ~ code.language-output { margin-bottom: 0; } pre.code-styler-pre code ~ code.language-output input.interactive-stdin { - padding: 2px 8px; + padding: 2px 8px; border-width: 1px; border-style: solid; - border-color: var(--code-comment); + border-color: var(--code-comment); border-radius: 5px; - background-color: var(--code-styler-codeblock-background-colour); - color: var(--text-normal); + background-color: var(--code-styler-codeblock-background-colour); + color: var(--text-normal); } pre.code-styler-pre code ~ code.language-output hr { display: none; @@ -131,7 +131,7 @@ pre.code-styler-pre div.code-block-highlight-wrap { clip-path: var(--polygon-in); opacity: 1; transform: translateY(-50%); - transition: visibility var(--duration-button), opacity var(--duration-button); + transition: visibility var(--duration-button), opacity var(--duration-button); visibility: visible; will-change: margin-right, clip-path; } @@ -158,3 +158,18 @@ div.block-language-include pre.code-styler-pre button.copy-code-button { div.block-language-include pre.code-styler-pre button.copy-code-button:hover { margin-right: var(--copy-code-header-right-margin); } + +/** Core Slides Plugin */ +.slides button.copy-code-button { + position: absolute; + top: 0; + right: 0; + height: auto; + padding: 6px 8px; + margin: 6px; + background-color: transparent; + box-shadow: none; + color: var(--text-muted); + font-family: var(--font-interface); + font-size: var(--font-ui-smaller); +} diff --git a/styles.css b/styles.css index a3bb15a..e784e68 100644 --- a/styles.css +++ b/styles.css @@ -523,6 +523,7 @@ body { } .code-styler.code-styler-style-inline .cm-s-obsidian span.cm-inline-code, .code-styler.code-styler-style-inline .markdown-rendered :not(pre) > code:not([class*=blur]), +.code-styler.code-styler-style-inline .reveal :not(pre) > code:not([class*=blur]), .code-styler.code-styler-style-inline code.code-styler-settings-inline-code { padding: var(--code-styler-inline-padding-vertical) var(--code-styler-inline-padding-horizontal) !important; border-radius: var(--code-styler-inline-border-radius) !important; @@ -584,6 +585,9 @@ body.code-styler span.code-styler-inline-opener > span > img.code-styler-inline- .code-styler .cm-s-obsidian span.cm-inline-code .code-styler-inline-parameters { color: var(--code-comment); } +.reveal img.code-styler-inline-icon { + margin: inherit; +} /* src/css/pdfExport.css */ div.print { @@ -1211,7 +1215,20 @@ div.block-language-include pre.code-styler-pre button.copy-code-button { div.block-language-include pre.code-styler-pre button.copy-code-button:hover { margin-right: var(--copy-code-header-right-margin); } +.slides button.copy-code-button { + position: absolute; + top: 0; + right: 0; + height: auto; + padding: 6px 8px; + margin: 6px; + background-color: transparent; + box-shadow: none; + color: var(--text-muted); + font-family: var(--font-interface); + font-size: var(--font-ui-smaller); +} /* src/styles.css */ /*! Complicated */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2Nzcy9jb2RlYmxvY2tzLmNzcyIsICJzcmMvY3NzL2lubGluZUNvZGUuY3NzIiwgInNyYy9jc3MvcGRmRXhwb3J0LmNzcyIsICJzcmMvY3NzL3BpY2tyLmNzcyIsICJzcmMvY3NzL3NldHRpbmdzLmNzcyIsICJzcmMvY3NzL3BsdWdpbkNvbXBhdGliaWxpdHkuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiogRGVmaW5lIENTUyBWYXJpYWJsZXMgKi9cbmJvZHkge1xuXHQvKiBDb2RlYmxvY2sgQm9keSAqL1xuXHQtLWJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuXHQtLWNvZGUtcGFkZGluZzogOHB4O1xuXHQtLWNvbnRhaW5lci1oZWlnaHQ6IGNhbGModmFyKC0tbGFuZ3VhZ2UtaWNvbi1zaXplKSArIDIgKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykgKiB2YXIoLS1oZWFkZXItZm9udC1zaXplKSk7XG5cdC0tY29udGFpbmVyLW1pbi1oZWlnaHQ6IGNhbGMoKHZhcigtLWhlYWRlci1mb250LXNpemUpICsgMiAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSAqIHZhcigtLWhlYWRlci1mb250LXNpemUpKSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpO1xuXHQtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoOiAwcHg7XG5cblx0LyogSGVhZGVyICovXG5cdC0taGVhZGVyLWZvbnQtc2l6ZTogdmFyKC0tY29kZS1zaXplKTtcblx0LS1oZWFkZXItcGFkZGluZzogMHB4O1xuXHQtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nOiAwLjM7XG5cdC0taGVhZGVyLXNwYWNpbmc6IDE1cHg7XG5cdC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nOiAxNHB4O1xuXHQtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGg6IDJweDtcblx0LS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoLXBhZGRpbmc6IHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpO1xuXHQtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXI6IG5vbmU7XG5cdC0tZm9sZGVkLWJvdHRvbS1ib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnQ7XG5cdC0tbGFuZ3VhZ2UtaWNvbi1zaXplOiAyOHB4O1xuXHQtLWxhbmd1YWdlLWljb24tZmlsdGVyOiBub25lO1xuXG5cdC8qIExpbmVzICovXG5cdC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcDogMTAwJTtcblxuXHQvKiBMaW5lIE51bWJlcnMgKi9cblx0LS1saW5lLW51bWJlci1oZWlnaHQtY29ycmVjdGlvbjogMnB4O1xuXHQtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nOiAxNnB4O1xuXHQtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGg6IDMyLjY3cHg7XG5cblx0LyogTGluZSBUZXh0ICovXG5cdC0tbGluZS13cmFwcGluZzogcHJlLXdyYXA7XG5cdC0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHZhcigtLWxpbmUtd3JhcHBpbmcpO1xuXG5cdC8qIEJ1dHRvbnMgKi9cblx0LS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyOiB2YXIoLS10ZXh0LW11dGVkKTtcblx0LS1jb2RlLXN0eWxlci1idXR0b24tYWN0aXZlLWNvbG91cjogd2hpdGU7XG5cdC0tZHVyYXRpb24tYnV0dG9uOiAyNDBtcztcblx0LS1kZW50LWRpZmZlcmVuY2U6IDMwcHg7XG5cdC0tcG9seWdvbi1pbjogcG9seWdvbigwIDAsIDE2cHggMCwgMTZweCAzNnB4LCAwIDM2cHgpO1xuXHQtLXBvbHlnb24tb3V0OiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IGNhbGMoMyAqIHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZykpO1xufVxuXG4vKiogUHJlIGVsZW1lbnRzICovXG4uY29kZS1zdHlsZXItcHJlLXBhcmVudHtcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0cGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlW2NsYXNzKj0nbGFuZ3VhZ2UtJ10ge1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSwgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpIDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlID4gY29kZSB7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZSA+IGNvZGUge1xuXHRkaXNwbGF5OiBncmlkO1xuXHRtYXgtaGVpZ2h0OiB1bnNldDtcblx0cGFkZGluZy10b3A6IHZhcigtLWNvZGUtcGFkZGluZykgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgYXV0bztcblx0Z3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuXHRvdmVyZmxvdy14OiBvdmVybGF5O1xuXHR0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHR0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXgtaGVpZ2h0LCBwYWRkaW5nLXRvcCwgcGFkZGluZy1ib3R0b20sIGJvcmRlci10b3A7XG5cdHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcblx0d2hpdGUtc3BhY2U6IHZhcigtLWxpbmUtd3JhcHBpbmcpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZS53cmFwcGVkID4gY29kZSB7XG5cdC0tbGluZS13cmFwcGluZzogcHJlLXdyYXA7XG5cdC0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHByZS13cmFwO1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUudW53cmFwcGVkID4gY29kZSB7XG5cdC0tbGluZS13cmFwcGluZzogcHJlO1xuXHQtLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiBwcmU7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZS51bndyYXBwZWQtaW5hY3RpdmUgPiBjb2RlIHtcblx0LS1saW5lLXdyYXBwaW5nOiBwcmU7XG5cdC0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHByZS13cmFwO1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUgY29kZTpub3QoOmhhcyggPiBpbnB1dFtzdHlsZSo9XCJkaXNwbGF5OiBpbmxpbmU7XCJdKSk6YWN0aXZlIHtcblx0LS1saW5lLXdyYXBwaW5nOiB2YXIoLS1saW5lLWFjdGl2ZS13cmFwcGluZykgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCA+IGNvZGUge1xuXHRtYXgtaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZTo6YmVmb3JlLFxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmU6OmFmdGVyIHtcblx0Y29udGVudDogbm9uZSAhaW1wb3J0YW50O1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrIHByZS5jb2RlLXN0eWxlci1wcmUge1xuXHRtYXJnaW46IDFlbSAwcHg7XG59XG5cbi8qKiBFZGl0aW5nIE1vZGUgQm9keSAqL1xuYm9keS5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyICsgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4ge1xuXHRib3JkZXItdG9wOiBub25lICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWVuZCB7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5ib2R5LmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuICsgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4ge1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudFxufVxuYm9keS5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbiArIFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXSB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1zaXplLTQtNCkgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cikgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSwgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpO1xufVxuXG4vKiogSGVhZGVyIHN0eWxpbmcgKi9cbmJvZHkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIgeyAgXG5cdGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdGhlaWdodDogdmFyKC0tY29udGFpbmVyLWhlaWdodCk7XG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNvbnRhaW5lci1taW4taGVpZ2h0KTtcblx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1oZWFkZXItcGFkZGluZyk7XG5cdG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50O1xuXHRmb250LXNpemU6IHZhcigtLWhlYWRlci1mb250LXNpemUpO1xuXHR0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdHVzZXItc2VsZWN0OiBub25lO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciB7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKTtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpO1xuXHRib3JkZXItdG9wOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0Ym9yZGVyLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0Ym9yZGVyLWxlZnQ6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXIpO1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSAwJSx2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpIGNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSwgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpIGNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSwgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpIDEwMCUpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgYm90dG9tLzEwMCUgYm9yZGVyLWJveCBuby1yZXBlYXQsdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSBzb2xpZCB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItc2VwYXJhdG9yLWNvbG91cik7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLmNvZGUtc3R5bGVyLWhlYWRlci1mb2xkZWQge1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0taGVhZGVyLXBhZGRpbmcpO1xuXHRib3JkZXItYm90dG9tOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tZm9sZGVkLWJvdHRvbS1ib3JkZXIpO1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSAwJSx2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpIDEwMCUpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgYm90dG9tLzEwMCUgYm9yZGVyLWJveCBuby1yZXBlYXQsdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tZm9sZGVkLWJvdHRvbS1ib3JkZXIpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIgLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdHBhZGRpbmctdG9wOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctcmlnaHQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpIHZhcigtLWJvcmRlci1yYWRpdXMpIDBweCAwcHg7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLWJhY2tncm91bmQtY29sb3VyKTtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1jb2xvdXIpO1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cdGZvbnQtc3R5bGU6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1pdGFsaWMsIG5vcm1hbCk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtYm9sZCwgbm9ybWFsKTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0cmFuc2l0aW9uOiBib3JkZXItcmFkaXVzIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIHBhZGRpbmcgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIuY29kZS1zdHlsZXItaGVhZGVyLWZvbGRlZCAuY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZyxcbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG4uY29kZS1zdHlsZXItaGVhZGVyLXRleHQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRwYWRkaW5nLXRvcDogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLWJvdHRvbTogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLWxlZnQ6IDBweDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10ZXh0LWNvbG91cik7XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0Zm9udC1zdHlsZTogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXRpdGxlLXRleHQtaXRhbGljLCBub3JtYWwpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXRpdGxlLXRleHQtYm9sZCwgbm9ybWFsKTtcblx0dHJhbnNpdGlvbjogcGFkZGluZyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxuYm9keSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpub3QoOmhhcyggZGl2ID4gaW1nLmNvZGUtc3R5bGVyLWljb24pKSAuY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZyB7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuYm9keSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpub3QoOmhhcyggLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcpKSAuY29kZS1zdHlsZXItaGVhZGVyLXRleHQge1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcbn1cbmRpdjpoYXMoPiBpbWcuY29kZS1zdHlsZXItaWNvbikge1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0cGFkZGluZy10b3A6IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1yaWdodDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHRwYWRkaW5nLWJvdHRvbTogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0dHJhbnNpdGlvbjogcGFkZGluZyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxuLmNvZGUtc3R5bGVyLWljb24ge1xuXHR3aWR0aDogdmFyKC0tbGFuZ3VhZ2UtaWNvbi1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1sYW5ndWFnZS1pY29uLXNpemUpO1xuXHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdGZpbHRlcjogdmFyKC0tbGFuZ3VhZ2UtaWNvbi1maWx0ZXIpO1xufVxuXG4vKiogTGluZXMgKi9cbnByZS5jb2RlLXN0eWxlci1wcmUgW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZCddID4gLmNvZGUtc3R5bGVyLWxpbmUtdGV4dCB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpIDAlIHZhcigtLWdyYWRpZW50LWhpZ2hsaWdodHMtY29sb3VyLXN0b3ApLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpIDEwMCUpO1xufVxuLmNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQge1xuXHQtLWdyYWRpZW50LWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1jb2RlLXN0eWxlci1kZWZhdWx0LWhpZ2hsaWdodC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4vKiEgQ29tcGxpY2F0ZWQgKi9cbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQgLmNtLWFjdGl2ZSxcbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtZWRpdG9yIC5jbS1hY3RpdmUge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWNvZGUtc3R5bGVyLWFjdGl2ZS1lZGl0b3ItbGluZS1jb2xvdXIpLCB2YXIoLS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wKSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG4vKiEgQ29tcGxpY2F0ZWQgKi9cbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jay5jbS1hY3RpdmUsXG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LWNvZGVibG9jayAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrLmNtLWFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tY29kZS1zdHlsZXItYWN0aXZlLWNvZGVibG9jay1saW5lLWNvbG91ciksIHZhcigtLWdyYWRpZW50LWhpZ2hsaWdodHMtY29sb3VyLXN0b3ApLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xufVxuXG4vKiogTGluZSBudW1iZXJzICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChkaXYpOm5vdChbY2xhc3MqPVwiSHlwZXJNRC1jb2RlYmxvY2tcIl0pID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5jb2RlLXN0eWxlciBjb2RlID4gZGl2OmZpcnN0LWNoaWxkID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHsgLyo/IE1haW50YWluIGd1dHRlciBjb2xvdXIgd2hlbiBwYWRkZWQgKi9cblx0Ym94LXNoYWRvdzogMHB4IGNhbGMoLTEgKiB2YXIoLS1jb2RlLXBhZGRpbmcpKSB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuXHR0cmFuc2l0aW9uOiBib3gtc2hhZG93IGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG4uY29kZS1zdHlsZXIgLmNvZGUtc3R5bGVyLWZvbGRlZCA+IGNvZGUgPiBkaXY6Zmlyc3QtY2hpbGQgPiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIgeyAvKj8gTWFpbnRhaW4gZ3V0dGVyIGNvbG91ciB3aGVuIHBhZGRlZCAqL1xuXHRib3gtc2hhZG93OiAwcHggMHB4IHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXIgY29kZSA+IGRpdjpsYXN0LWNoaWxkID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHsgLyo/IE1haW50YWluIGd1dHRlciBjb2xvdXIgd2hlbiBwYWRkZWQgKi9cblx0Ym94LXNoYWRvdzogMHB4IHZhcigtLWNvZGUtcGFkZGluZykgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbi5jb2RlLXN0eWxlciBjb2RlID4gZGl2Om9ubHktY2hpbGQgPiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIgeyAvKj8gTWFpbnRhaW4gZ3V0dGVyIGNvbG91ciB3aGVuIHBhZGRlZCAqL1xuXHRib3gtc2hhZG93OiAwcHggY2FsYygtMSAqIHZhcigtLWNvZGUtcGFkZGluZykpIHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91ciksMHB4IHZhcigtLWNvZGUtcGFkZGluZykgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgZGl2ID4gW2NsYXNzKj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSxcbi5tYXJrZG93bi1zb3VyY2UtdmlldyBkaXZbY2xhc3MqPVwiSHlwZXJNRC1jb2RlYmxvY2tcIl0gPiBbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0d2lkdGg6IHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aCk7XG5cdG1pbi13aWR0aDogdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLW1pbi13aWR0aCk7XG5cdHBhZGRpbmctcmlnaHQ6IDhweDtcblx0cGFkZGluZy1sZWZ0OiBjYWxjKDRweCArIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLXRleHQtY29sb3VyKTtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ub3NwYWNlKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jb2RlLXNpemUpO1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgW2NsYXNzKj1cIkh5cGVyTUQtY29kZWJsb2NrXCJdID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG1pbi13aWR0aDogY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKSAtIDEycHgpO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tbGluZS1udW1iZXItaGVpZ2h0LWNvcnJlY3Rpb24pO1xuXHRkaXJlY3Rpb246IHJ0bDtcblx0b3ZlcmZsb3cteDogYXV0bztcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyLFxuLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jay1lbmQgLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHtcblx0d2lkdGg6IHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aCk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdHBvc2l0aW9uOiBzdGlja3k7XG5cdHRvcDogLTFweDtcblx0bGVmdDogMDtcblx0Ym9yZGVyLXRvcDogdmFyKC0tbGluZS1udW1iZXItaGVpZ2h0LWNvcnJlY3Rpb24pIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRncmlkLWNvbHVtbjogMTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgZGl2Omxhc3QtY2hpbGQgPiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIge1xuXHR3aWR0aDogdW5zZXQ7XG59XG4uY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCBwcmUuY29kZS1zdHlsZXItcHJlIFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkXCJdIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyYWRpZW50LWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC5jb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0IC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZVwiXS5jbS1hY3RpdmUgLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyLFxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2suY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uY20tYWN0aXZlIC5jb2RlLXN0eWxlci1saW5lLW51bWJlcixcbi5jb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0IFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkXCJdIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCkgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmUgLmNtLWFjdGl2ZSAuY29kZS1zdHlsZXItbGluZS1udW1iZXJ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2s6aGFzKC5jb2RlLXN0eWxlci1saW5lLW51bWJlcikge1xuXHRwYWRkaW5nLWxlZnQ6IGNhbGMoMTJweCArIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgKyB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpICsgdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ106OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqIExpbmUgdGV4dCAqL1xucHJlLmNvZGUtc3R5bGVyLXByZSA+IGNvZGUgPiBkaXZbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ10ge1xuXHRkaXNwbGF5OiBjb250ZW50cyAhaW1wb3J0YW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItbGluZS10ZXh0IHtcblx0ZmxleC1iYXNpczogMTAwJTtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItcGFkZGluZyk7XG5cdGdyaWQtY29sdW1uOiAyO1xufVxuLkh5cGVyTUQtY29kZWJsb2NrOmhhcyg+IC5jbS13aWRnZXRCdWZmZXIpIHsgLyo/IFByZXZlbnQgTGluZSBXcmFwcyAqL1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLkh5cGVyTUQtY29kZWJsb2NrOmhhcyg+IC5jbS13aWRnZXRCdWZmZXIpID4gLmNtLWhtZC1jb2RlYmxvY2sgeyAvKj8gUHJldmVudCBMaW5lIFdyYXBzICovXG5cdHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7XG59XG5cbi8qKiBTY3JvbGwgQmFyICovXG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZDo6LXdlYmtpdC1zY3JvbGxiYXIsXG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBjb2RlOjotd2Via2l0LXNjcm9sbGJhcixcbnByZS5jb2RlLXN0eWxlci1wcmUuaGlkZS1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLFxucHJlLmNvZGUtc3R5bGVyLXByZS5oaWRlLXNjcm9sbCBjb2RlOjotd2Via2l0LXNjcm9sbGJhciB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqIEJ1dHRvbnMgKi9cbkBrZXlmcmFtZXMgb3V0ZGVudCB7XG5cdGZyb20ge1xuXHRcdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR9XG5cdHRvIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxufVxuQGtleWZyYW1lcyBpbmRlbnQge1xuXHRmcm9tIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxuXHR0byB7XG5cdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdH1cbn1cbkBrZXlmcmFtZXMgcmV2ZXJzZS1vdXRkZW50IHtcblx0ZnJvbSB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0fVxuXHR0byB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG5cdH1cbn1cbkBrZXlmcmFtZXMgcmV2ZXJzZS1pbmRlbnQge1xuXHRmcm9tIHtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxuXHR0byB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0fVxufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ge1xuXHRkaXNwbGF5OiB1bnNldCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaW50ZXJmYWNlKTtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXVpLXNtYWxsZXIpO1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIG9wYWNpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIGJ1dHRvbixcbnByZS5jb2RlLXN0eWxlci1wcmU6bm90KC5jb2RlLXN0eWxlci1mb2xkZWQpOm5vdCg6aG92ZXIpIGJ1dHRvbixcbnByZS5jb2RlLXN0eWxlci1wcmU6bm90KC5jb2RlLXN0eWxlci1mb2xkZWQpOm5vdCg6aG92ZXIpIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOjphZnRlciB7XG5cdG9wYWNpdHk6IDA7XG5cdHZpc2liaWxpdHk6IGhpZGRlblxufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6OmFmdGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHRib3R0b206IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAyMHB4O1xuXHRoZWlnaHQ6IDIwcHg7XG5cdG1hcmdpbjogYXV0bztcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1oZWFkZXItYnV0dG9uLXNwYWNpbmcpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcblx0Y29udGVudDogXCJcXDIwMGJcIjtcblx0LXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyUzRSUzQ3BhdGggZD0nTTE2IDIyIDYgMTJsMS40LTEuNCA4LjYgOC42IDguNi04LjZMMjYgMTJ6Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInIGZpbGw9J25vbmUnIHN0cm9rZT0nY3VycmVudENvbG9yJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgJTNFJTNDcG9seWxpbmUgcG9pbnRzPSc2IDkgMTIgMTUgMTggOScvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRvcGFjaXR5OiAxO1xuXHRzY2FsZTogMC44O1xuXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBlYXNlLW91dCwgdmlzaWJpbGl0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBvcGFjaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOjphZnRlcixcbi5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6bm90KDpoYXMoKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4pKTo6YWZ0ZXIge1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6aG92ZXI6OmFmdGVyIHtcblx0c2NhbGU6IDE7XG59XG5ib2R5IHByZS5jb2RlLXN0eWxlci1wcmU6aGFzKC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbikgYnV0dG9uLmNvcHktY29kZS1idXR0b24sXG5ib2R5IC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIHNwYW4uY29kZS1ibG9jay1mbGFpciB7XG5cdHRvcDogY2FsYygwLjUgKiB2YXIoLS1mb250LXRleHQtc2l6ZSkgKiAwLjg3NSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpICFpbXBvcnRhbnQ7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IDEycHg7XG59XG5ib2R5IC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIuaGlkZGVuICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b24ge1xuXHR0b3A6IG1heChjYWxjKDAuNSAqIHZhcigtLWNvbnRhaW5lci1oZWlnaHQpICogMSksY2FsYygwLjUgKiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCkgKiAxKSkgIWltcG9ydGFudDtcblx0Ym90dG9tOiB1bnNldCAhaW1wb3J0YW50O1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXIge1xuXHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdHdpbGwtY2hhbmdlOiBtYXJnaW4tcmlnaHQsIGNsaXAtcGF0aDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246bm90KDphY3RpdmUpLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOm5vdCg6YWN0aXZlKSwgLyo/IEV4ZWN1dGUgQ29kZSBQbHVnaW4gQ29tcGF0aWJpbGl0eSAqL1xuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOm5vdCg6YWN0aXZlKSB7XG5cdGFuaW1hdGlvbjogaW5kZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOmhvdmVyLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOmhvdmVyLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6aG92ZXJ7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRhbmltYXRpb246IG91dGRlbnQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjphY3RpdmUsXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b246YWN0aXZlLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6YWN0aXZlIHtcblx0c2NhbGU6IDAuOTU7XG5cdHRyYW5zaXRpb246IHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246OmJlZm9yZSxcbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjo6YmVmb3JlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxNHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHQtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNMjggMTB2MThIMTBWMTBoMThtMC0ySDEwYTIgMiAwIDAgMC0yIDJ2MThhMiAyIDAgMCAwIDIgMmgxOGEyIDIgMCAwIDAgMi0yVjEwYTIgMiAwIDAgMC0yLTJaJy8lM0UlM0NwYXRoIGQ9J000IDE4SDJWNGEyIDIgMCAwIDEgMi0yaDE0djJINFonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0bWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00yOCAxMHYxOEgxMFYxMGgxOG0wLTJIMTBhMiAyIDAgMCAwLTIgMnYxOGEyIDIgMCAwIDAgMiAyaDE4YTIgMiAwIDAgMCAyLTJWMTBhMiAyIDAgMCAwLTItMlonLyUzRSUzQ3BhdGggZD0nTTQgMThIMlY0YTIgMiAwIDAgMSAyLTJoMTR2Mkg0WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHZlcnRpY2FsLWFsaWduOiAxcHg7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogbWluKGNhbGMoLTAuNSAqIHZhcigtLWNvbnRhaW5lci1oZWlnaHQpICogMS4xIC0gdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkpLGNhbGMoLTAuNSAqIHZhcigtLWNvbnRhaW5lci1taW4taGVpZ2h0KSAqIDEuMSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSkgIWltcG9ydGFudDtcblx0cmlnaHQ6IDA7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHRmb250LXNpemU6IDA7XG5cdGxpbmUtaGVpZ2h0OiBpbml0aWFsICFpbXBvcnRhbnQ7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyID4gKiB7XG5cdHdpZHRoOiAwcHg7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6OmJlZm9yZSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcblx0b3BhY2l0eTogMTtcblx0dmVydGljYWwtYWxpZ246IC0xcHg7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6OmFmdGVyIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiAnQ29weSc7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcblx0b3BhY2l0eTogMTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay1iZWdpbi5jb2RlLXN0eWxlci1saW5lIHtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG4iLCAiLyoqIERlZmluZSBDU1MgVmFyaWFibGVzICovXG5ib2R5IHtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtZm9udC13ZWlnaHQ6IDQwMDtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1czogNnB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLXZlcnRpY2FsOiA1cHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctaG9yaXpvbnRhbDogNXB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbDogMHB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXI6IHZhcigtLWNvZGUtbm9ybWFsKTtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZTogdmFyKC0tY29kZS1ub3JtYWwpO1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1iYWNrZ3JvdW5kKTtcbn1cblxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWlubGluZS1jb2RlLFxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAubWFya2Rvd24tcmVuZGVyZWQgOm5vdChwcmUpID4gY29kZTpub3QoW2NsYXNzKj1cImJsdXJcIl0pLFxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSBjb2RlLmNvZGUtc3R5bGVyLXNldHRpbmdzLWlubGluZS1jb2RlIHtcblx0cGFkZGluZzogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctdmVydGljYWwpIHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXIpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWZvbnQtd2VpZ2h0KTtcbn1cbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zdHlsZS1pbmxpbmUgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGUgeyAvKj8gU3RhbmRhbG9uZSBiYWNrdGlja3MgKi9cblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZSk7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lciB+IHNwYW4uY20taW5saW5lLWNvZGU6bm90KC5jbS1mb3JtYXR0aW5nLWNvZGUpIHtcblx0cGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0Ym9yZGVyLXJhZGl1czogMHB4IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzKSB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgMHB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zdHlsZS1pbmxpbmUgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyLFxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWZvcm1hdHRpbmctY29kZTpoYXMoKyBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSkgey8qPyBGaXJzdCBiYWNrdGljayAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgMHB4IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbCkgIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcbn1cbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zdHlsZS1pbmxpbmUgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGUgKyBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSB7IC8qPyBJbm5lciBjb2RlIHdpdGggYmFja3RpY2tzICovXG5cdHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luOiAwcHggMHB4ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZSk7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20taW5saW5lLWNvZGU6bm90KC5jbS1mb3JtYXR0aW5nLWNvZGUpICsgc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGUgey8qPyBMYXN0IGJhY2t0aWNrICovXG5cdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIDBweCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbCkgIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWNvbG91ci1hY3RpdmUpO1xufVxuYm9keS5jb2RlLXN0eWxlciBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXIgPiBzcGFuID4gaW1nLmNvZGUtc3R5bGVyLWlubGluZS1pY29uOm5vdChbY2xhc3MqPVwiZW1vamlcIl0pIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogY2FsYyh2YXIoLS1jb2RlLXNpemUpICogMS4yKTtcblx0bWFyZ2luLWJvdHRvbTogMnB4ICFpbXBvcnRhbnQ7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uY29kZS1zdHlsZXIgc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyIC5jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWNvbG91cik7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUtZm9udC13ZWlnaHQpO1xufVxuLmNvZGUtc3R5bGVyIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lciAuY29kZS1zdHlsZXItaW5saW5lLXRpdGxlOjphZnRlciB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUtY29sb3IpO1xuXHRjb250ZW50OiAnXFxGRjVDJztcbn1cbi5jb2RlLXN0eWxlciBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXIgc3BhbjpoYXMoID4gaW1nLmNvZGUtc3R5bGVyLWlubGluZS1pY29uKSB7XG5cdHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cbi5jb2RlLXN0eWxlciAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWlubGluZS1jb2RlIC5jb2RlLXN0eWxlci1pbmxpbmUtcGFyYW1ldGVycyB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLWNvbW1lbnQpO1xufVxuIiwgImRpdi5wcmludCB7XG5cdC0tbGluZS13cmFwcGluZzogcHJlLXdyYXAgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBkaXYucHJpbnQgcHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlIHtcblx0bWF4LWhlaWdodDogdW5zZXQgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBkaXYucHJpbnQgcHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1mb2xkZWQgY29kZSB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsICIvKiogUGlja3IgMS44LjIgTUlUIHwgaHR0cHM6Ly9naXRodWIuY29tL1NpbW9ud2VwL3BpY2tyICovXG4ucGlja3Ige3Bvc2l0aW9uOiByZWxhdGl2ZTtvdmVyZmxvdzogdmlzaWJsZTt0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCl9ICAucGlja3IgKiB7Ym94LXNpemluZzogYm9yZGVyLWJveDtib3JkZXI6IG5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO2FwcGVhcmFuY2U6IG5vbmU7b3V0bGluZTogbm9uZX0gIC5waWNrciAucGNyLWJ1dHRvbiB7cG9zaXRpb246IHJlbGF0aXZlO3dpZHRoOiAyZW07aGVpZ2h0OiAyZW07cGFkZGluZzogMC41ZW07Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MCA1MFwiIHN0cm9rZT1cIiUyMzQyNDQ1QVwiIHN0cm9rZS13aWR0aD1cIjVweFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48cGF0aCBkPVwiTTQ1LDQ1TDUsNVwiPjwvcGF0aD48cGF0aCBkPVwiTTQ1LDVMNSw0NVwiPjwvcGF0aD48L3N2Zz4nKSBuby1yZXBlYXQgY2VudGVyO2JhY2tncm91bmQtc2l6ZTogMDtjdXJzb3I6IHBvaW50ZXI7Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmO3RyYW5zaXRpb246IGFsbCAwLjNzfSAgLnBpY2tyIC5wY3ItYnV0dG9uOjpiZWZvcmUge3Bvc2l0aW9uOiBhYnNvbHV0ZTt6LWluZGV4OiAtMTt0b3A6IDA7bGVmdDogMDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOiAuNWVtO2NvbnRlbnQ6ICcnfSAgLnBpY2tyIC5wY3ItYnV0dG9uOjpiZWZvcmUge3otaW5kZXg6IGluaXRpYWx9ICAucGlja3IgLnBjci1idXR0b246OmFmdGVyIHtwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHZhcigtLXBjci1jb2xvcik7Y29udGVudDogJyc7dHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzfSAgLnBpY2tyIC5wY3ItYnV0dG9uLmNsZWFyIHtiYWNrZ3JvdW5kLXNpemU6IDcwJX0gIC5waWNrciAucGNyLWJ1dHRvbi5jbGVhcjo6YmVmb3JlIHtvcGFjaXR5OiAwfSAgLnBpY2tyIC5wY3ItYnV0dG9uLmNsZWFyOmZvY3VzIHtib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSwgMCAwIDAgM3B4IHZhcigtLXBjci1jb2xvcil9ICAucGlja3IgLnBjci1idXR0b24uZGlzYWJsZWQge2N1cnNvcjogbm90LWFsbG93ZWR9ICAucGlja3IgKiwgLnBjci1hcHAgKiB7Ym94LXNpemluZzogYm9yZGVyLWJveDtib3JkZXI6IG5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO2FwcGVhcmFuY2U6IG5vbmU7b3V0bGluZTogbm9uZX0gIC5waWNrciBpbnB1dDpmb2N1cywgLnBpY2tyIGlucHV0LnBjci1hY3RpdmUsIC5waWNrciBidXR0b246Zm9jdXMsIC5waWNrciBidXR0b24ucGNyLWFjdGl2ZSwgLnBjci1hcHAgaW5wdXQ6Zm9jdXMsIC5wY3ItYXBwIGlucHV0LnBjci1hY3RpdmUsIC5wY3ItYXBwIGJ1dHRvbjpmb2N1cywgLnBjci1hcHAgYnV0dG9uLnBjci1hY3RpdmUge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggdmFyKC0tcGNyLWNvbG9yKX0gIC5waWNrciAucGNyLXBhbGV0dGUsIC5waWNrciAucGNyLXNsaWRlciwgLnBjci1hcHAgLnBjci1wYWxldHRlLCAucGNyLWFwcCAucGNyLXNsaWRlciB7dHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjNzfSAgLnBpY2tyIC5wY3ItcGFsZXR0ZTpmb2N1cywgLnBpY2tyIC5wY3Itc2xpZGVyOmZvY3VzLCAucGNyLWFwcCAucGNyLXBhbGV0dGU6Zm9jdXMsIC5wY3ItYXBwIC5wY3Itc2xpZGVyOmZvY3VzIHtib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSwgMCAwIDAgM3B4IHJnYmEoMCwgMCwgMCwgMC4yNSl9ICAucGNyLWFwcCB7cG9zaXRpb246IGZpeGVkO3otaW5kZXg6IDEwMDAwO3RvcDogMDtsZWZ0OiAwO2Rpc3BsYXk6IGZsZXg7ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtib3JkZXItcmFkaXVzOiAwLjFlbTtiYWNrZ3JvdW5kOiAjZmZmO2JveC1zaGFkb3c6IDAgMC4xNWVtIDEuNWVtIDAgcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDAgMWVtIDAgcmdiYSgwLCAwLCAwLCAwLjAzKTtmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWY7b3BhY2l0eTogMDt0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MsIHZpc2liaWxpdHkgMHMgMC4zczt2aXNpYmlsaXR5OiBoaWRkZW59ICAucGNyLWFwcC52aXNpYmxlIHtvcGFjaXR5OiAxO3RyYW5zaXRpb246IG9wYWNpdHkgMC4zczt2aXNpYmlsaXR5OiB2aXNpYmxlfSAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyB7ZGlzcGxheTogZmxleDtmbGV4LXdyYXA6IHdyYXA7bWFyZ2luLXRvcDogMC43NWVtfSAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcy5wY3ItbGFzdCB7bWFyZ2luOiAwfSAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzIHtkaXNwbGF5OiBncmlkO2FsaWduLWl0ZW1zOiBjZW50ZXI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIDEuNzVlbSl9ICB9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uIHtwb3NpdGlvbjogcmVsYXRpdmU7ei1pbmRleDogMTtvdmVyZmxvdzogaGlkZGVuO3dpZHRoOiBjYWxjKDEuNzVlbSAtIDEwcHgpO2hlaWdodDogY2FsYygxLjc1ZW0gLSAxMHB4KTtmbGV4LXNocmluazogMDtib3JkZXItcmFkaXVzOiAwLjE1ZW07bWFyZ2luOiAyLjVweDtiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtjdXJzb3I6IHBvaW50ZXI7Zm9udC1zaXplOiAxZW07anVzdGlmeS1zZWxmOiBjZW50ZXI7dHJhbnNpdGlvbjogYWxsIDAuMTVzfSAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyA+IGJ1dHRvbjo6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDogLTE7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogNnB4O2NvbnRlbnQ6ICcnfSAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyA+IGJ1dHRvbjo6YWZ0ZXIge3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7bGVmdDogMDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Ym94LXNpemluZzogYm9yZGVyLWJveDtib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDUpO2JvcmRlci1yYWRpdXM6IDAuMTVlbTtiYWNrZ3JvdW5kOiB2YXIoLS1wY3ItY29sb3IpO2NvbnRlbnQ6ICcnfSAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyA+IGJ1dHRvbjpob3ZlciB7ZmlsdGVyOiBicmlnaHRuZXNzKDEuMDUpfSAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyA+IGJ1dHRvbjpub3QoLnBjci1hY3RpdmUpIHtib3gtc2hhZG93OiBub25lfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiB7ZGlzcGxheTogZmxleDtmbGV4LXdyYXA6IHdyYXA7YWxpZ24taXRlbXM6IGNlbnRlcjttYXJnaW46IDAgLTAuMmVtIDAgLTAuMmVtfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiA+ICoge21hcmdpbjogMCAwLjJlbX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gaW5wdXQge3BhZGRpbmc6IDAuNDVlbSAwLjVlbTtib3JkZXItcmFkaXVzOiAuMTVlbTttYXJnaW4tdG9wOiAwLjc1ZW07YmFja2dyb3VuZDogI2YxZjNmNDtjb2xvcjogIzc1Nzk3ZTtjdXJzb3I6IHBvaW50ZXI7Zm9udC1zaXplOiAwLjc1ZW07bGV0dGVyLXNwYWNpbmc6IDAuMDdlbTt0ZXh0LWFsaWduOiBjZW50ZXI7dHJhbnNpdGlvbjogYWxsIDAuMTVzfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiBpbnB1dDpob3ZlciB7ZmlsdGVyOiBicmlnaHRuZXNzKDAuOTc1KX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gaW5wdXQ6Zm9jdXMge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggcmdiYSg2NiwgMTMzLCAyNDQsIDAuNzUpfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXJlc3VsdCB7bWluLXdpZHRoOiA4ZW07ZmxleDogMSAxIDhlbTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiAjZjFmM2Y0O2NvbG9yOiAjNzU3OTdlO2N1cnNvcjogdGV4dDt0ZXh0LWFsaWduOiBsZWZ0O3RyYW5zaXRpb246IGFsbCAwLjJzfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXJlc3VsdDo6LW1vei1zZWxlY3Rpb24ge2JhY2tncm91bmQ6ICM0Mjg1ZjQ7Y29sb3I6ICNmZmZ9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItcmVzdWx0OjpzZWxlY3Rpb24ge2JhY2tncm91bmQ6ICM0Mjg1ZjQ7Y29sb3I6ICNmZmZ9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItdHlwZS5hY3RpdmUge2JhY2tncm91bmQ6ICM0Mjg1ZjQ7Y29sb3I6ICNmZmZ9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZSwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbCwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFyIHt3aWR0aDogYXV0bztjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1zYXZlLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXIge2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmU6aG92ZXIsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWw6aG92ZXIsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhcjpob3ZlciB7ZmlsdGVyOiBicmlnaHRuZXNzKDAuOTI1KX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1zYXZlIHtiYWNrZ3JvdW5kOiAjNDI4NWY0fSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFyLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsIHtiYWNrZ3JvdW5kOiAjZjQ0MjUwfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFyOmZvY3VzLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsOmZvY3VzIHtib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSwgMCAwIDAgM3B4IHJnYmEoMjQ0LCA2NiwgODAsIDAuNzUpfSAgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1waWNrZXIge3Bvc2l0aW9uOiBhYnNvbHV0ZTt3aWR0aDogMThweDtoZWlnaHQ6IDE4cHg7Ym9yZGVyOiAycHggc29saWQgI2ZmZjtib3JkZXItcmFkaXVzOiAxMDAlOy13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7LW1vei11c2VyLXNlbGVjdDogbm9uZTstbXMtdXNlci1zZWxlY3Q6IG5vbmU7dXNlci1zZWxlY3Q6IG5vbmV9ICAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGUsIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciwgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IHtwb3NpdGlvbjogcmVsYXRpdmU7ZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uO2N1cnNvcjogZ3JhYjtjdXJzb3I6IC13ZWJraXQtZ3JhYjstd2Via2l0LXVzZXItc2VsZWN0OiBub25lOy1tb3otdXNlci1zZWxlY3Q6IG5vbmU7LW1zLXVzZXItc2VsZWN0OiBub25lO3VzZXItc2VsZWN0OiBub25lfSAgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlOmFjdGl2ZSwgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyOmFjdGl2ZSwgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5OmFjdGl2ZSB7Y3Vyc29yOiBncmFiYmluZztjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmd9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10ge3dpZHRoOiAxNC4yNWVtO21heC13aWR0aDogOTV2d30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXN3YXRjaGVzIHtwYWRkaW5nOiAwIC42ZW07bWFyZ2luLXRvcDogLjZlbX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLWludGVyYWN0aW9uIHtwYWRkaW5nOiAwIC42ZW0gLjZlbSAuNmVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIHtkaXNwbGF5OiBncmlkO3dpZHRoOiAxMDAlO2hlaWdodDogMTAuNWVtO2FsaWduLWl0ZW1zOiBjZW50ZXI7YWxpZ24tc2VsZjogZmxleC1zdGFydDtncmlkLWdhcDogLjZlbTtncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA0ZnI7Z3JpZC10ZW1wbGF0ZS1yb3dzOiA1ZnIgYXV0byBhdXRvfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyB7ZGlzcGxheTogZmxleDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7ZmxleC1kaXJlY3Rpb246IHJvdztqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjttYXJnaW4tbGVmdDogLjZlbTtncmlkLWFyZWE6IDIgLyAxIC8gNCAvIDF9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IC5wY3ItbGFzdC1jb2xvciB7ZGlzcGxheTogbm9uZX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcgLnBjci1jdXJyZW50LWNvbG9yIHtwb3NpdGlvbjogcmVsYXRpdmU7b3ZlcmZsb3c6IGhpZGRlbjt3aWR0aDogMmVtO2hlaWdodDogMmVtO2JvcmRlci1yYWRpdXM6IDUwZW07YmFja2dyb3VuZDogdmFyKC0tcGNyLWNvbG9yKX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcgLnBjci1jdXJyZW50LWNvbG9yOjpiZWZvcmUge3Bvc2l0aW9uOiBhYnNvbHV0ZTt6LWluZGV4OiAtMTt0b3A6IDA7bGVmdDogMDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOiAuNWVtO2NvbnRlbnQ6ICcnfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZSB7ei1pbmRleDogMTt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Z3JpZC1hcmVhOiAxIC8gMSAvIDIgLyAzfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZSAucGNyLXBhbGV0dGUge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGUgLnBjci1wYWxldHRlOjpiZWZvcmUge3Bvc2l0aW9uOiBhYnNvbHV0ZTt6LWluZGV4OiAtMTt0b3A6IDA7bGVmdDogMDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOiAuNWVtO2NvbnRlbnQ6ICcnfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciB7Z3JpZC1hcmVhOiAyIC8gMiAvIDIgLyAyfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSB7Z3JpZC1hcmVhOiAzIC8gMiAvIDMgLyAyfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciwgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSB7aGVpZ2h0OiAwLjVlbTttYXJnaW46IDAgLjZlbX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIgLnBjci1waWNrZXIsIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkgLnBjci1waWNrZXIge3RvcDogNTAlO3RyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIgLnBjci1zbGlkZXIsIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkgLnBjci1zbGlkZXIge2ZsZXgtZ3JvdzogMTtib3JkZXItcmFkaXVzOiA1MGVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciAucGNyLXNsaWRlciB7YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZWQsICNmZjAsIGxpbWUsIGN5YW4sIGJsdWUsICNmMGYsIHJlZCl9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3Itc2xpZGVyIHtiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCBibGFjayksIHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogMTAwJSwgMC4yNWVtfVxuLnBjci1hcHAgLnBjci1zd2F0Y2hlcyA+IGJ1dHRvbiB7XG5cdHBhZGRpbmc6IDA7XG59XG4iLCAiLnNldHRpbmctaXRlbS5jb2RlLXN0eWxlci1zcGFjZWQgLmNoZWNrYm94LWNvbnRhaW5lciArIC5waWNrciB7XG5cdHBhZGRpbmctbGVmdDogMTBweDtcbn1cbi5jb2RlLXN0eWxlci1kb25hdGlvbiB7XG5cdHdpZHRoOiA3MCU7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LWFyZWEgdGV4dGFyZWEge1xuXHR3aWR0aDogNDAwcHg7XG5cdGhlaWdodDogMjIwcHg7XG59XG4uY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LXdpZGUge1xuXHR3aWR0aDogMTAwJTtcbn1cbmJ1dHRvbi5jb2RlLXN0eWxlci1zZXR0aW5ncy1idXR0b24uY29weS1jb2RlLWJ1dHRvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdGhlaWdodDogYXV0bztcbn1cbmNvZGUuY29kZS1zdHlsZXItc2V0dGluZ3MtaW5saW5lLWNvZGUge1xuXHRwYWRkaW5nOiAwLjFlbSAwLjI1ZW07XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNvZGUtcmFkaXVzKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNvZGUtbm9ybWFsKTtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ub3NwYWNlKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jb2RlLXNpemUpO1xufVxucDpoYXMoPiBjb2RlLmNvZGUtc3R5bGVyLXNldHRpbmdzLWlubGluZS1jb2RlKSB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hZHZhbmNlZC1zZXR0aW5ncy1oZWFkZXI6OmFmdGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAyMHB4O1xuXHRoZWlnaHQ6IDIwcHg7XG5cdG1hcmdpbjogYXV0bztcblx0bWFyZ2luLWxlZnQ6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sOnNwYWNlPSdwcmVzZXJ2ZSclM0UlM0NwYXRoIGQ9J00xNiAyMiA2IDEybDEuNC0xLjQgOC42IDguNiA4LjYtOC42TDI2IDEyeicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyBmaWxsPSdub25lJyBzdHJva2U9J2N1cnJlbnRDb2xvcicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnICUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nNiA5IDEyIDE1IDE4IDknLyUzRSUzQy9zdmclM0VcIik7XG5cdC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0b3BhY2l0eTogMTtcblx0c2NhbGU6IDAuOTtcblx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgZWFzZS1vdXQsIHZpc2liaWxpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgb3BhY2l0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBzY2FsZSB2YXIoLS1kdXJhdGlvbi1idXR0b24pIGN1YmljLWJlemllcigwLjQsIDAuMTQsIDAuMywgMSk7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uYWR2YW5jZWQtc2V0dGluZ3MtaGVhZGVyLmhlYWRlci1mb2xkZWQ6OmFmdGVyIHtcblx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cbiIsICIvKiogRXhlY3V0ZSBDb2RlIFBsdWdpbiAqL1xucHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMi41ICogdmFyKC0tY29kZS1wYWRkaW5nKSkgIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nKSkgIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcDogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkgc29saWQgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1mb2xkZWQgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IHtcblx0Ym9yZGVyLXRvcC13aWR0aDogMDtcblx0Ym9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlOmhvdmVyIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCBpbnB1dC5pbnRlcmFjdGl2ZS1zdGRpbiB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2RlLWNvbW1lbnQpO1xuXHRib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKTtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1ub3JtYWwpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQgaHIge1xuXHRkaXNwbGF5OiBub25lO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uIHtcblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogMTJweDtcblx0LS1kZW50LWRpZmZlcmVuY2U6IDI0cHg7XG5cdGhlaWdodDogMTRweDtcblx0bWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBidXR0b24ucnVuLWNvZGUtYnV0dG9uIHtcblx0dG9wOiA1MDBweDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbjo6YmVmb3JlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxNHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHQtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNNyAyOGExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEuNDgyLS44NzZsMjAgMTFhMSAxIDAgMCAxIDAgMS43NTJsLTIwIDExQTEgMSAwIDAgMSA3IDI4WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTcgMjhhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLjQ4Mi0uODc2bDIwIDExYTEgMSAwIDAgMSAwIDEuNzUybC0yMCAxMUExIDEgMCAwIDEgNyAyOFonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogMHB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uLWRpc2FibGVkLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWJ1dHRvbi1kaXNhYmxlZCB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbiB7XG5cdGhlaWdodDogMTRweDtcblx0bWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgKyAxMnB4KTtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0d2lsbC1jaGFuZ2U6IG1hcmdpbi1yaWdodCwgY2xpcC1wYXRoO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uOjpiZWZvcmUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxNHB4O1xuXHRoZWlnaHQ6IDE0cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00xNiA0IDYgMTRsMS40MSAxLjQxTDE1IDcuODNWMjhoMlY3LjgzbDcuNTkgNy41OEwyNiAxNCAxNiA0eicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTE2IDQgNiAxNGwxLjQxIDEuNDFMMTUgNy44M1YyOGgyVjcuODNsNy41OSA3LjU4TDI2IDE0IDE2IDR6Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0dmVydGljYWwtYWxpZ246IDBweDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbjpub3QoOmFjdGl2ZSkge1xuXHRhbmltYXRpb246IHJldmVyc2UtaW5kZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246aG92ZXJ7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRhbmltYXRpb246IHJldmVyc2Utb3V0ZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246YWN0aXZlIHtcblx0c2NhbGU6IDAuOTU7XG5cdHRyYW5zaXRpb246IHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcbn1cbi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Lmhhcy1ydW4tY29kZS1idXR0b24gLmxvYWQtc3RhdGUtaW5kaWNhdG9yIHtcblx0ei1pbmRleDogMTA7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGNvbG9yOiBub25lO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3I6OmJlZm9yZSB7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvciBzdmcge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvciBzdmc6aG92ZXIge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWFjdGl2ZS1jb2xvdXIpO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3IudmlzaWJsZSB7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLyoqIEVtYmVkIENvZGUgUGx1Z2luICovXG4uYmxvY2stbGFuZ3VhZ2UtcHJldmlldyBwcmUuY29kZS1zdHlsZXItcHJlIGNvZGUge1xuXHR3aGl0ZS1zcGFjZTogdW5zZXQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIHNwYW4uY29kZS1ibG9jay1saW5lX251bS13cmFwLFxucHJlLmNvZGUtc3R5bGVyLXByZSBkaXYuY29kZS1ibG9jay1oaWdobGlnaHQtd3JhcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b246OmFmdGVyIHtcblx0cGFkZGluZy1sZWZ0OiA0cHg7XG5cdGNvbnRlbnQ6ICdFZGl0IEJsb2NrJztcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXVpLXNtYWxsZXIpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrOm5vdCg6aG92ZXIpIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50ICsgLmVkaXQtYmxvY2stYnV0dG9uIHtcblx0b3BhY2l0eTogMDtcblx0dmlzaWJpbGl0eTogaGlkZGVuXG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b24ge1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiBjYWxjKDIuMiAqIHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZykpO1xuXHQtLWRlbnQtZGlmZmVyZW5jZTogMHB4O1xuXHQtLXBvbHlnb24taW46IHBvbHlnb24oMCAwLCAxOHB4IDAsIDE4cHggMzZweCwgMCAzNnB4KTtcblx0ei1pbmRleDogMTA7XG5cdHRvcDogbWF4KGNhbGMoMC41ICogdmFyKC0tY29udGFpbmVyLWhlaWdodCkgKiAxKSxjYWxjKDAuNSAqIHZhcigtLWNvbnRhaW5lci1taW4taGVpZ2h0KSAqIDEpKTtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIG9wYWNpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0d2lsbC1jaGFuZ2U6IG1hcmdpbi1yaWdodCwgY2xpcC1wYXRoO1xufVxuYm9keSAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQ6aGFzKCBwcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbikgKyAuZWRpdC1ibG9jay1idXR0b24ge1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiA0cHg7XG5cdHRvcDogY2FsYygwLjUgKiB2YXIoLS1mb250LXRleHQtc2l6ZSkgKiAwLjg3NSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrOmhvdmVyIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50ICsgLmVkaXQtYmxvY2stYnV0dG9uOmhvdmVyIHtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG5cdGFuaW1hdGlvbjogcmV2ZXJzZS1vdXRkZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jazpob3ZlciAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbjphY3RpdmUge1xuXHRzY2FsZTogMC45NTtcblx0dHJhbnNpdGlvbjogc2NhbGUgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpO1xufVxuXG4vKiogRmlsZSBJbmNsdWRlIFBsdWdpbiAqL1xuZGl2LmJsb2NrLWxhbmd1YWdlLWluY2x1ZGUgcHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbiB7XG5cdG1hcmdpbjogMDtcblx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xufVxuZGl2LmJsb2NrLWxhbmd1YWdlLWluY2x1ZGUgcHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjpob3ZlciB7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUNBO0FBRUMsbUJBQWlCO0FBQ2pCLGdDQUE4QjtBQUM5QixrQkFBZ0I7QUFDaEIsc0JBQW9CLEtBQUssSUFBSSxzQkFBc0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxpQ0FBaUMsRUFBRSxJQUFJO0FBQ3BHLDBCQUF3QixLQUFLLENBQUMsSUFBSSxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxpQ0FBaUMsRUFBRSxJQUFJLHFCQUFxQixFQUFFLElBQUk7QUFDbEksNEJBQTBCLElBQUk7QUFDOUIsMkJBQXlCO0FBR3pCLHNCQUFvQixJQUFJO0FBQ3hCLG9CQUFrQjtBQUNsQixtQ0FBaUM7QUFDakMsb0JBQWtCO0FBQ2xCLDJCQUF5QjtBQUN6Qiw0QkFBMEI7QUFDMUIsb0NBQWtDLElBQUk7QUFDdEMsK0JBQTZCO0FBQzdCLDBCQUF3QixFQUFFLE1BQU07QUFDaEMsd0JBQXNCO0FBQ3RCLDBCQUF3QjtBQUd4QixxQ0FBbUM7QUFHbkMsbUNBQWlDO0FBQ2pDLGdDQUE4QjtBQUM5QixrQ0FBZ0M7QUFHaEMsbUJBQWlCO0FBQ2pCLDBCQUF3QixJQUFJO0FBRzVCLCtCQUE2QixJQUFJO0FBQ2pDLHNDQUFvQztBQUNwQyxxQkFBbUI7QUFDbkIscUJBQW1CO0FBQ25CLGdCQUFjLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJ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 */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2Nzcy9jb2RlYmxvY2tzLmNzcyIsICJzcmMvY3NzL2lubGluZUNvZGUuY3NzIiwgInNyYy9jc3MvcGRmRXhwb3J0LmNzcyIsICJzcmMvY3NzL3BpY2tyLmNzcyIsICJzcmMvY3NzL3NldHRpbmdzLmNzcyIsICJzcmMvY3NzL3BsdWdpbkNvbXBhdGliaWxpdHkuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiogRGVmaW5lIENTUyBWYXJpYWJsZXMgKi9cbmJvZHkge1xuXHQvKiBDb2RlYmxvY2sgQm9keSAqL1xuXHQtLWJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuXHQtLWNvZGUtcGFkZGluZzogOHB4O1xuXHQtLWNvbnRhaW5lci1oZWlnaHQ6IGNhbGModmFyKC0tbGFuZ3VhZ2UtaWNvbi1zaXplKSArIDIgKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykgKiB2YXIoLS1oZWFkZXItZm9udC1zaXplKSk7XG5cdC0tY29udGFpbmVyLW1pbi1oZWlnaHQ6IGNhbGMoKHZhcigtLWhlYWRlci1mb250LXNpemUpICsgMiAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSAqIHZhcigtLWhlYWRlci1mb250LXNpemUpKSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpO1xuXHQtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoOiAwcHg7XG5cblx0LyogSGVhZGVyICovXG5cdC0taGVhZGVyLWZvbnQtc2l6ZTogdmFyKC0tY29kZS1zaXplKTtcblx0LS1oZWFkZXItcGFkZGluZzogMHB4O1xuXHQtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nOiAwLjM7XG5cdC0taGVhZGVyLXNwYWNpbmc6IDE1cHg7XG5cdC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nOiAxNHB4O1xuXHQtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGg6IDJweDtcblx0LS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoLXBhZGRpbmc6IHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpO1xuXHQtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXI6IG5vbmU7XG5cdC0tZm9sZGVkLWJvdHRvbS1ib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnQ7XG5cdC0tbGFuZ3VhZ2UtaWNvbi1zaXplOiAyOHB4O1xuXHQtLWxhbmd1YWdlLWljb24tZmlsdGVyOiBub25lO1xuXG5cdC8qIExpbmVzICovXG5cdC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcDogMTAwJTtcblxuXHQvKiBMaW5lIE51bWJlcnMgKi9cblx0LS1saW5lLW51bWJlci1oZWlnaHQtY29ycmVjdGlvbjogMnB4O1xuXHQtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nOiAxNnB4O1xuXHQtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGg6IDMyLjY3cHg7XG5cblx0LyogTGluZSBUZXh0ICovXG5cdC0tbGluZS13cmFwcGluZzogcHJlLXdyYXA7XG5cdC0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHZhcigtLWxpbmUtd3JhcHBpbmcpO1xuXG5cdC8qIEJ1dHRvbnMgKi9cblx0LS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyOiB2YXIoLS10ZXh0LW11dGVkKTtcblx0LS1jb2RlLXN0eWxlci1idXR0b24tYWN0aXZlLWNvbG91cjogd2hpdGU7XG5cdC0tZHVyYXRpb24tYnV0dG9uOiAyNDBtcztcblx0LS1kZW50LWRpZmZlcmVuY2U6IDMwcHg7XG5cdC0tcG9seWdvbi1pbjogcG9seWdvbigwIDAsIDE2cHggMCwgMTZweCAzNnB4LCAwIDM2cHgpO1xuXHQtLXBvbHlnb24tb3V0OiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IGNhbGMoMyAqIHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZykpO1xufVxuXG4vKiogUHJlIGVsZW1lbnRzICovXG4uY29kZS1zdHlsZXItcHJlLXBhcmVudHtcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0cGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlW2NsYXNzKj0nbGFuZ3VhZ2UtJ10ge1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSwgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpIDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlID4gY29kZSB7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZSA+IGNvZGUge1xuXHRkaXNwbGF5OiBncmlkO1xuXHRtYXgtaGVpZ2h0OiB1bnNldDtcblx0cGFkZGluZy10b3A6IHZhcigtLWNvZGUtcGFkZGluZykgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgYXV0bztcblx0Z3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuXHRvdmVyZmxvdy14OiBvdmVybGF5O1xuXHR0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHR0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXgtaGVpZ2h0LCBwYWRkaW5nLXRvcCwgcGFkZGluZy1ib3R0b20sIGJvcmRlci10b3A7XG5cdHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcblx0d2hpdGUtc3BhY2U6IHZhcigtLWxpbmUtd3JhcHBpbmcpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZS53cmFwcGVkID4gY29kZSB7XG5cdC0tbGluZS13cmFwcGluZzogcHJlLXdyYXA7XG5cdC0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHByZS13cmFwO1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUudW53cmFwcGVkID4gY29kZSB7XG5cdC0tbGluZS13cmFwcGluZzogcHJlO1xuXHQtLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiBwcmU7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZS51bndyYXBwZWQtaW5hY3RpdmUgPiBjb2RlIHtcblx0LS1saW5lLXdyYXBwaW5nOiBwcmU7XG5cdC0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHByZS13cmFwO1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUgY29kZTpub3QoOmhhcyggPiBpbnB1dFtzdHlsZSo9XCJkaXNwbGF5OiBpbmxpbmU7XCJdKSk6YWN0aXZlIHtcblx0LS1saW5lLXdyYXBwaW5nOiB2YXIoLS1saW5lLWFjdGl2ZS13cmFwcGluZykgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCA+IGNvZGUge1xuXHRtYXgtaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZTo6YmVmb3JlLFxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmU6OmFmdGVyIHtcblx0Y29udGVudDogbm9uZSAhaW1wb3J0YW50O1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrIHByZS5jb2RlLXN0eWxlci1wcmUge1xuXHRtYXJnaW46IDFlbSAwcHg7XG59XG5cbi8qKiBFZGl0aW5nIE1vZGUgQm9keSAqL1xuYm9keS5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyICsgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4ge1xuXHRib3JkZXItdG9wOiBub25lICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWVuZCB7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5ib2R5LmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuICsgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4ge1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudFxufVxuYm9keS5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbiArIFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXSB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1zaXplLTQtNCkgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cikgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSwgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpO1xufVxuXG4vKiogSGVhZGVyIHN0eWxpbmcgKi9cbmJvZHkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIgeyAgXG5cdGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdGhlaWdodDogdmFyKC0tY29udGFpbmVyLWhlaWdodCk7XG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNvbnRhaW5lci1taW4taGVpZ2h0KTtcblx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1oZWFkZXItcGFkZGluZyk7XG5cdG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50O1xuXHRmb250LXNpemU6IHZhcigtLWhlYWRlci1mb250LXNpemUpO1xuXHR0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdHVzZXItc2VsZWN0OiBub25lO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciB7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKTtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpO1xuXHRib3JkZXItdG9wOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0Ym9yZGVyLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0Ym9yZGVyLWxlZnQ6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXIpO1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSAwJSx2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpIGNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSwgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpIGNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSwgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpIDEwMCUpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgYm90dG9tLzEwMCUgYm9yZGVyLWJveCBuby1yZXBlYXQsdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSBzb2xpZCB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItc2VwYXJhdG9yLWNvbG91cik7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLmNvZGUtc3R5bGVyLWhlYWRlci1mb2xkZWQge1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0taGVhZGVyLXBhZGRpbmcpO1xuXHRib3JkZXItYm90dG9tOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tZm9sZGVkLWJvdHRvbS1ib3JkZXIpO1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSAwJSx2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpIDEwMCUpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgYm90dG9tLzEwMCUgYm9yZGVyLWJveCBuby1yZXBlYXQsdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tZm9sZGVkLWJvdHRvbS1ib3JkZXIpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIgLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdHBhZGRpbmctdG9wOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctcmlnaHQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpIHZhcigtLWJvcmRlci1yYWRpdXMpIDBweCAwcHg7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLWJhY2tncm91bmQtY29sb3VyKTtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1jb2xvdXIpO1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cdGZvbnQtc3R5bGU6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1pdGFsaWMsIG5vcm1hbCk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtYm9sZCwgbm9ybWFsKTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0cmFuc2l0aW9uOiBib3JkZXItcmFkaXVzIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIHBhZGRpbmcgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIuY29kZS1zdHlsZXItaGVhZGVyLWZvbGRlZCAuY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZyxcbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG4uY29kZS1zdHlsZXItaGVhZGVyLXRleHQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRwYWRkaW5nLXRvcDogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLWJvdHRvbTogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLWxlZnQ6IDBweDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10ZXh0LWNvbG91cik7XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0Zm9udC1zdHlsZTogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXRpdGxlLXRleHQtaXRhbGljLCBub3JtYWwpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXRpdGxlLXRleHQtYm9sZCwgbm9ybWFsKTtcblx0dHJhbnNpdGlvbjogcGFkZGluZyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxuYm9keSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpub3QoOmhhcyggZGl2ID4gaW1nLmNvZGUtc3R5bGVyLWljb24pKSAuY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZyB7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuYm9keSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpub3QoOmhhcyggLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcpKSAuY29kZS1zdHlsZXItaGVhZGVyLXRleHQge1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcbn1cbmRpdjpoYXMoPiBpbWcuY29kZS1zdHlsZXItaWNvbikge1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0cGFkZGluZy10b3A6IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1yaWdodDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHRwYWRkaW5nLWJvdHRvbTogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0dHJhbnNpdGlvbjogcGFkZGluZyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxuLmNvZGUtc3R5bGVyLWljb24ge1xuXHR3aWR0aDogdmFyKC0tbGFuZ3VhZ2UtaWNvbi1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1sYW5ndWFnZS1pY29uLXNpemUpO1xuXHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdGZpbHRlcjogdmFyKC0tbGFuZ3VhZ2UtaWNvbi1maWx0ZXIpO1xufVxuXG4vKiogTGluZXMgKi9cbnByZS5jb2RlLXN0eWxlci1wcmUgW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZCddID4gLmNvZGUtc3R5bGVyLWxpbmUtdGV4dCB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpIDAlIHZhcigtLWdyYWRpZW50LWhpZ2hsaWdodHMtY29sb3VyLXN0b3ApLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpIDEwMCUpO1xufVxuLmNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQge1xuXHQtLWdyYWRpZW50LWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1jb2RlLXN0eWxlci1kZWZhdWx0LWhpZ2hsaWdodC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4vKiEgQ29tcGxpY2F0ZWQgKi9cbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQgLmNtLWFjdGl2ZSxcbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtZWRpdG9yIC5jbS1hY3RpdmUge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWNvZGUtc3R5bGVyLWFjdGl2ZS1lZGl0b3ItbGluZS1jb2xvdXIpLCB2YXIoLS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wKSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG4vKiEgQ29tcGxpY2F0ZWQgKi9cbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jay5jbS1hY3RpdmUsXG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LWNvZGVibG9jayAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrLmNtLWFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tY29kZS1zdHlsZXItYWN0aXZlLWNvZGVibG9jay1saW5lLWNvbG91ciksIHZhcigtLWdyYWRpZW50LWhpZ2hsaWdodHMtY29sb3VyLXN0b3ApLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xufVxuXG4vKiogTGluZSBudW1iZXJzICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChkaXYpOm5vdChbY2xhc3MqPVwiSHlwZXJNRC1jb2RlYmxvY2tcIl0pID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5jb2RlLXN0eWxlciBjb2RlID4gZGl2OmZpcnN0LWNoaWxkID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHsgLyo/IE1haW50YWluIGd1dHRlciBjb2xvdXIgd2hlbiBwYWRkZWQgKi9cblx0Ym94LXNoYWRvdzogMHB4IGNhbGMoLTEgKiB2YXIoLS1jb2RlLXBhZGRpbmcpKSB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuXHR0cmFuc2l0aW9uOiBib3gtc2hhZG93IGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG4uY29kZS1zdHlsZXIgLmNvZGUtc3R5bGVyLWZvbGRlZCA+IGNvZGUgPiBkaXY6Zmlyc3QtY2hpbGQgPiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIgeyAvKj8gTWFpbnRhaW4gZ3V0dGVyIGNvbG91ciB3aGVuIHBhZGRlZCAqL1xuXHRib3gtc2hhZG93OiAwcHggMHB4IHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXIgY29kZSA+IGRpdjpsYXN0LWNoaWxkID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHsgLyo/IE1haW50YWluIGd1dHRlciBjb2xvdXIgd2hlbiBwYWRkZWQgKi9cblx0Ym94LXNoYWRvdzogMHB4IHZhcigtLWNvZGUtcGFkZGluZykgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbi5jb2RlLXN0eWxlciBjb2RlID4gZGl2Om9ubHktY2hpbGQgPiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIgeyAvKj8gTWFpbnRhaW4gZ3V0dGVyIGNvbG91ciB3aGVuIHBhZGRlZCAqL1xuXHRib3gtc2hhZG93OiAwcHggY2FsYygtMSAqIHZhcigtLWNvZGUtcGFkZGluZykpIHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91ciksMHB4IHZhcigtLWNvZGUtcGFkZGluZykgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgZGl2ID4gW2NsYXNzKj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSxcbi5tYXJrZG93bi1zb3VyY2UtdmlldyBkaXZbY2xhc3MqPVwiSHlwZXJNRC1jb2RlYmxvY2tcIl0gPiBbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0d2lkdGg6IHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aCk7XG5cdG1pbi13aWR0aDogdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLW1pbi13aWR0aCk7XG5cdHBhZGRpbmctcmlnaHQ6IDhweDtcblx0cGFkZGluZy1sZWZ0OiBjYWxjKDRweCArIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLXRleHQtY29sb3VyKTtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ub3NwYWNlKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jb2RlLXNpemUpO1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgW2NsYXNzKj1cIkh5cGVyTUQtY29kZWJsb2NrXCJdID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG1pbi13aWR0aDogY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKSAtIDEycHgpO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tbGluZS1udW1iZXItaGVpZ2h0LWNvcnJlY3Rpb24pO1xuXHRkaXJlY3Rpb246IHJ0bDtcblx0b3ZlcmZsb3cteDogYXV0bztcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyLFxuLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jay1lbmQgLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHtcblx0d2lkdGg6IHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aCk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdHBvc2l0aW9uOiBzdGlja3k7XG5cdHRvcDogLTFweDtcblx0bGVmdDogMDtcblx0Ym9yZGVyLXRvcDogdmFyKC0tbGluZS1udW1iZXItaGVpZ2h0LWNvcnJlY3Rpb24pIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRncmlkLWNvbHVtbjogMTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgZGl2Omxhc3QtY2hpbGQgPiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIge1xuXHR3aWR0aDogdW5zZXQ7XG59XG4uY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCBwcmUuY29kZS1zdHlsZXItcHJlIFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkXCJdIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyYWRpZW50LWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC5jb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0IC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZVwiXS5jbS1hY3RpdmUgLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyLFxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2suY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uY20tYWN0aXZlIC5jb2RlLXN0eWxlci1saW5lLW51bWJlcixcbi5jb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0IFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkXCJdIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCkgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmUgLmNtLWFjdGl2ZSAuY29kZS1zdHlsZXItbGluZS1udW1iZXJ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2s6aGFzKC5jb2RlLXN0eWxlci1saW5lLW51bWJlcikge1xuXHRwYWRkaW5nLWxlZnQ6IGNhbGMoMTJweCArIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgKyB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpICsgdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ106OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqIExpbmUgdGV4dCAqL1xucHJlLmNvZGUtc3R5bGVyLXByZSA+IGNvZGUgPiBkaXZbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ10ge1xuXHRkaXNwbGF5OiBjb250ZW50cyAhaW1wb3J0YW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItbGluZS10ZXh0IHtcblx0ZmxleC1iYXNpczogMTAwJTtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItcGFkZGluZyk7XG5cdGdyaWQtY29sdW1uOiAyO1xufVxuLkh5cGVyTUQtY29kZWJsb2NrOmhhcyg+IC5jbS13aWRnZXRCdWZmZXIpIHsgLyo/IFByZXZlbnQgTGluZSBXcmFwcyAqL1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLkh5cGVyTUQtY29kZWJsb2NrOmhhcyg+IC5jbS13aWRnZXRCdWZmZXIpID4gLmNtLWhtZC1jb2RlYmxvY2sgeyAvKj8gUHJldmVudCBMaW5lIFdyYXBzICovXG5cdHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7XG59XG5cbi8qKiBTY3JvbGwgQmFyICovXG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZDo6LXdlYmtpdC1zY3JvbGxiYXIsXG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBjb2RlOjotd2Via2l0LXNjcm9sbGJhcixcbnByZS5jb2RlLXN0eWxlci1wcmUuaGlkZS1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLFxucHJlLmNvZGUtc3R5bGVyLXByZS5oaWRlLXNjcm9sbCBjb2RlOjotd2Via2l0LXNjcm9sbGJhciB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqIEJ1dHRvbnMgKi9cbkBrZXlmcmFtZXMgb3V0ZGVudCB7XG5cdGZyb20ge1xuXHRcdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR9XG5cdHRvIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxufVxuQGtleWZyYW1lcyBpbmRlbnQge1xuXHRmcm9tIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxuXHR0byB7XG5cdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdH1cbn1cbkBrZXlmcmFtZXMgcmV2ZXJzZS1vdXRkZW50IHtcblx0ZnJvbSB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0fVxuXHR0byB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG5cdH1cbn1cbkBrZXlmcmFtZXMgcmV2ZXJzZS1pbmRlbnQge1xuXHRmcm9tIHtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxuXHR0byB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0fVxufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ge1xuXHRkaXNwbGF5OiB1bnNldCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaW50ZXJmYWNlKTtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXVpLXNtYWxsZXIpO1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIG9wYWNpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIGJ1dHRvbixcbnByZS5jb2RlLXN0eWxlci1wcmU6bm90KC5jb2RlLXN0eWxlci1mb2xkZWQpOm5vdCg6aG92ZXIpIGJ1dHRvbixcbnByZS5jb2RlLXN0eWxlci1wcmU6bm90KC5jb2RlLXN0eWxlci1mb2xkZWQpOm5vdCg6aG92ZXIpIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOjphZnRlciB7XG5cdG9wYWNpdHk6IDA7XG5cdHZpc2liaWxpdHk6IGhpZGRlblxufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6OmFmdGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHRib3R0b206IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAyMHB4O1xuXHRoZWlnaHQ6IDIwcHg7XG5cdG1hcmdpbjogYXV0bztcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1oZWFkZXItYnV0dG9uLXNwYWNpbmcpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcblx0Y29udGVudDogXCJcXDIwMGJcIjtcblx0LXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyUzRSUzQ3BhdGggZD0nTTE2IDIyIDYgMTJsMS40LTEuNCA4LjYgOC42IDguNi04LjZMMjYgMTJ6Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInIGZpbGw9J25vbmUnIHN0cm9rZT0nY3VycmVudENvbG9yJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgJTNFJTNDcG9seWxpbmUgcG9pbnRzPSc2IDkgMTIgMTUgMTggOScvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRvcGFjaXR5OiAxO1xuXHRzY2FsZTogMC44O1xuXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBlYXNlLW91dCwgdmlzaWJpbGl0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBvcGFjaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOjphZnRlcixcbi5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6bm90KDpoYXMoKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4pKTo6YWZ0ZXIge1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6aG92ZXI6OmFmdGVyIHtcblx0c2NhbGU6IDE7XG59XG5ib2R5IHByZS5jb2RlLXN0eWxlci1wcmU6aGFzKC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbikgYnV0dG9uLmNvcHktY29kZS1idXR0b24sXG5ib2R5IC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIHNwYW4uY29kZS1ibG9jay1mbGFpciB7XG5cdHRvcDogY2FsYygwLjUgKiB2YXIoLS1mb250LXRleHQtc2l6ZSkgKiAwLjg3NSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpICFpbXBvcnRhbnQ7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IDEycHg7XG59XG5ib2R5IC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIuaGlkZGVuICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b24ge1xuXHR0b3A6IG1heChjYWxjKDAuNSAqIHZhcigtLWNvbnRhaW5lci1oZWlnaHQpICogMSksY2FsYygwLjUgKiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCkgKiAxKSkgIWltcG9ydGFudDtcblx0Ym90dG9tOiB1bnNldCAhaW1wb3J0YW50O1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXIge1xuXHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdHdpbGwtY2hhbmdlOiBtYXJnaW4tcmlnaHQsIGNsaXAtcGF0aDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246bm90KDphY3RpdmUpLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOm5vdCg6YWN0aXZlKSwgLyo/IEV4ZWN1dGUgQ29kZSBQbHVnaW4gQ29tcGF0aWJpbGl0eSAqL1xuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOm5vdCg6YWN0aXZlKSB7XG5cdGFuaW1hdGlvbjogaW5kZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOmhvdmVyLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOmhvdmVyLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6aG92ZXJ7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRhbmltYXRpb246IG91dGRlbnQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjphY3RpdmUsXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b246YWN0aXZlLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6YWN0aXZlIHtcblx0c2NhbGU6IDAuOTU7XG5cdHRyYW5zaXRpb246IHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246OmJlZm9yZSxcbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjo6YmVmb3JlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxNHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHQtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNMjggMTB2MThIMTBWMTBoMThtMC0ySDEwYTIgMiAwIDAgMC0yIDJ2MThhMiAyIDAgMCAwIDIgMmgxOGEyIDIgMCAwIDAgMi0yVjEwYTIgMiAwIDAgMC0yLTJaJy8lM0UlM0NwYXRoIGQ9J000IDE4SDJWNGEyIDIgMCAwIDEgMi0yaDE0djJINFonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0bWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00yOCAxMHYxOEgxMFYxMGgxOG0wLTJIMTBhMiAyIDAgMCAwLTIgMnYxOGEyIDIgMCAwIDAgMiAyaDE4YTIgMiAwIDAgMCAyLTJWMTBhMiAyIDAgMCAwLTItMlonLyUzRSUzQ3BhdGggZD0nTTQgMThIMlY0YTIgMiAwIDAgMSAyLTJoMTR2Mkg0WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHZlcnRpY2FsLWFsaWduOiAxcHg7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogbWluKGNhbGMoLTAuNSAqIHZhcigtLWNvbnRhaW5lci1oZWlnaHQpICogMS4xIC0gdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkpLGNhbGMoLTAuNSAqIHZhcigtLWNvbnRhaW5lci1taW4taGVpZ2h0KSAqIDEuMSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSkgIWltcG9ydGFudDtcblx0cmlnaHQ6IDA7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHRmb250LXNpemU6IDA7XG5cdGxpbmUtaGVpZ2h0OiBpbml0aWFsICFpbXBvcnRhbnQ7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyID4gKiB7XG5cdHdpZHRoOiAwcHg7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6OmJlZm9yZSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcblx0b3BhY2l0eTogMTtcblx0dmVydGljYWwtYWxpZ246IC0xcHg7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6OmFmdGVyIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiAnQ29weSc7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcblx0b3BhY2l0eTogMTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay1iZWdpbi5jb2RlLXN0eWxlci1saW5lIHtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG4iLCAiLyoqIERlZmluZSBDU1MgVmFyaWFibGVzICovXG5ib2R5IHtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtZm9udC13ZWlnaHQ6IDQwMDtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1czogNnB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLXZlcnRpY2FsOiA1cHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctaG9yaXpvbnRhbDogNXB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbDogMHB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXI6IHZhcigtLWNvZGUtbm9ybWFsKTtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZTogdmFyKC0tY29kZS1ub3JtYWwpO1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1iYWNrZ3JvdW5kKTtcbn1cblxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWlubGluZS1jb2RlLFxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAubWFya2Rvd24tcmVuZGVyZWQgOm5vdChwcmUpID4gY29kZTpub3QoW2NsYXNzKj1cImJsdXJcIl0pLFxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAucmV2ZWFsIDpub3QocHJlKSA+IGNvZGU6bm90KFtjbGFzcyo9XCJibHVyXCJdKSxcbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zdHlsZS1pbmxpbmUgY29kZS5jb2RlLXN0eWxlci1zZXR0aW5ncy1pbmxpbmUtY29kZSB7XG5cdHBhZGRpbmc6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLW1hcmdpbi1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1mb250LXdlaWdodCk7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20tZm9ybWF0dGluZy1jb2RlIHsgLyo/IFN0YW5kYWxvbmUgYmFja3RpY2tzICovXG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWNvbG91ci1hY3RpdmUpO1xufVxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAuY20tcy1vYnNpZGlhbiBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXIgfiBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSB7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIDBweCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lcixcbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zdHlsZS1pbmxpbmUgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGU6aGFzKCsgc3Bhbi5jbS1pbmxpbmUtY29kZTpub3QoLmNtLWZvcm1hdHRpbmctY29kZSkpIHsvKj8gRmlyc3QgYmFja3RpY2sgKi9cblx0cGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctaG9yaXpvbnRhbCkgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIDBweCAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZSk7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20tZm9ybWF0dGluZy1jb2RlICsgc3Bhbi5jbS1pbmxpbmUtY29kZTpub3QoLmNtLWZvcm1hdHRpbmctY29kZSkgeyAvKj8gSW5uZXIgY29kZSB3aXRoIGJhY2t0aWNrcyAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0Ym9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMHB4IDBweCAhaW1wb3J0YW50O1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWNvbG91ci1hY3RpdmUpO1xufVxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSArIHNwYW4uY20tZm9ybWF0dGluZy1jb2RlIHsvKj8gTGFzdCBiYWNrdGljayAqL1xuXHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzKSAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcbn1cbmJvZHkuY29kZS1zdHlsZXIgc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyID4gc3BhbiA+IGltZy5jb2RlLXN0eWxlci1pbmxpbmUtaWNvbjpub3QoW2NsYXNzKj1cImVtb2ppXCJdKSB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGNhbGModmFyKC0tY29kZS1zaXplKSAqIDEuMik7XG5cdG1hcmdpbi1ib3R0b206IDJweCAhaW1wb3J0YW50O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmNvZGUtc3R5bGVyIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lciAuY29kZS1zdHlsZXItaW5saW5lLXRpdGxlIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS10aXRsZS1jb2xvdXIpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbn1cbi5jb2RlLXN0eWxlciBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXIgLmNvZGUtc3R5bGVyLWlubGluZS10aXRsZTo6YWZ0ZXIge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWNvbG9yKTtcblx0Y29udGVudDogJ1xcRkY1Qyc7XG59XG4uY29kZS1zdHlsZXIgc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyIHNwYW46aGFzKCA+IGltZy5jb2RlLXN0eWxlci1pbmxpbmUtaWNvbikge1xuXHRwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4uY29kZS1zdHlsZXIgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1pbmxpbmUtY29kZSAuY29kZS1zdHlsZXItaW5saW5lLXBhcmFtZXRlcnMge1xuXHRjb2xvcjogdmFyKC0tY29kZS1jb21tZW50KTtcbn1cblxuLnJldmVhbCBpbWcuY29kZS1zdHlsZXItaW5saW5lLWljb24ge1xuXHRtYXJnaW46IGluaGVyaXQ7XG59XG4iLCAiZGl2LnByaW50IHtcblx0LS1saW5lLXdyYXBwaW5nOiBwcmUtd3JhcCAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIGRpdi5wcmludCBwcmUuY29kZS1zdHlsZXItcHJlIGNvZGUge1xuXHRtYXgtaGVpZ2h0OiB1bnNldCAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIGRpdi5wcmludCBwcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBjb2RlIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwgIi8qKiBQaWNrciAxLjguMiBNSVQgfCBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvcGlja3IgKi9cbi5waWNrciB7cG9zaXRpb246IHJlbGF0aXZlO292ZXJmbG93OiB2aXNpYmxlO3RyYW5zZm9ybTogdHJhbnNsYXRlWSgwKX0gIC5waWNrciAqIHtib3gtc2l6aW5nOiBib3JkZXItYm94O2JvcmRlcjogbm9uZTstd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7YXBwZWFyYW5jZTogbm9uZTtvdXRsaW5lOiBub25lfSAgLnBpY2tyIC5wY3ItYnV0dG9uIHtwb3NpdGlvbjogcmVsYXRpdmU7d2lkdGg6IDJlbTtoZWlnaHQ6IDJlbTtwYWRkaW5nOiAwLjVlbTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUwIDUwXCIgc3Ryb2tlPVwiJTIzNDI0NDVBXCIgc3Ryb2tlLXdpZHRoPVwiNXB4XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjxwYXRoIGQ9XCJNNDUsNDVMNSw1XCI+PC9wYXRoPjxwYXRoIGQ9XCJNNDUsNUw1LDQ1XCI+PC9wYXRoPjwvc3ZnPicpIG5vLXJlcGVhdCBjZW50ZXI7YmFja2dyb3VuZC1zaXplOiAwO2N1cnNvcjogcG9pbnRlcjtmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWY7dHJhbnNpdGlvbjogYWxsIDAuM3N9ICAucGlja3IgLnBjci1idXR0b246OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IC0xO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IC41ZW07Y29udGVudDogJyd9ICAucGlja3IgLnBjci1idXR0b246OmJlZm9yZSB7ei1pbmRleDogaW5pdGlhbH0gIC5waWNrciAucGNyLWJ1dHRvbjo6YWZ0ZXIge3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7bGVmdDogMDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogdmFyKC0tcGNyLWNvbG9yKTtjb250ZW50OiAnJzt0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3N9ICAucGlja3IgLnBjci1idXR0b24uY2xlYXIge2JhY2tncm91bmQtc2l6ZTogNzAlfSAgLnBpY2tyIC5wY3ItYnV0dG9uLmNsZWFyOjpiZWZvcmUge29wYWNpdHk6IDB9ICAucGlja3IgLnBjci1idXR0b24uY2xlYXI6Zm9jdXMge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggdmFyKC0tcGNyLWNvbG9yKX0gIC5waWNrciAucGNyLWJ1dHRvbi5kaXNhYmxlZCB7Y3Vyc29yOiBub3QtYWxsb3dlZH0gIC5waWNrciAqLCAucGNyLWFwcCAqIHtib3gtc2l6aW5nOiBib3JkZXItYm94O2JvcmRlcjogbm9uZTstd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7YXBwZWFyYW5jZTogbm9uZTtvdXRsaW5lOiBub25lfSAgLnBpY2tyIGlucHV0OmZvY3VzLCAucGlja3IgaW5wdXQucGNyLWFjdGl2ZSwgLnBpY2tyIGJ1dHRvbjpmb2N1cywgLnBpY2tyIGJ1dHRvbi5wY3ItYWN0aXZlLCAucGNyLWFwcCBpbnB1dDpmb2N1cywgLnBjci1hcHAgaW5wdXQucGNyLWFjdGl2ZSwgLnBjci1hcHAgYnV0dG9uOmZvY3VzLCAucGNyLWFwcCBidXR0b24ucGNyLWFjdGl2ZSB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCB2YXIoLS1wY3ItY29sb3IpfSAgLnBpY2tyIC5wY3ItcGFsZXR0ZSwgLnBpY2tyIC5wY3Itc2xpZGVyLCAucGNyLWFwcCAucGNyLXBhbGV0dGUsIC5wY3ItYXBwIC5wY3Itc2xpZGVyIHt0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3N9ICAucGlja3IgLnBjci1wYWxldHRlOmZvY3VzLCAucGlja3IgLnBjci1zbGlkZXI6Zm9jdXMsIC5wY3ItYXBwIC5wY3ItcGFsZXR0ZTpmb2N1cywgLnBjci1hcHAgLnBjci1zbGlkZXI6Zm9jdXMge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjI1KX0gIC5wY3ItYXBwIHtwb3NpdGlvbjogZml4ZWQ7ei1pbmRleDogMTAwMDA7dG9wOiAwO2xlZnQ6IDA7ZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uO2JvcmRlci1yYWRpdXM6IDAuMWVtO2JhY2tncm91bmQ6ICNmZmY7Ym94LXNoYWRvdzogMCAwLjE1ZW0gMS41ZW0gMCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMCAxZW0gMCByZ2JhKDAsIDAsIDAsIDAuMDMpO2ZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtvcGFjaXR5OiAwO3RyYW5zaXRpb246IG9wYWNpdHkgMC4zcywgdmlzaWJpbGl0eSAwcyAwLjNzO3Zpc2liaWxpdHk6IGhpZGRlbn0gIC5wY3ItYXBwLnZpc2libGUge29wYWNpdHk6IDE7dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO3Zpc2liaWxpdHk6IHZpc2libGV9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzIHtkaXNwbGF5OiBmbGV4O2ZsZXgtd3JhcDogd3JhcDttYXJnaW4tdG9wOiAwLjc1ZW19ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzLnBjci1sYXN0IHttYXJnaW46IDB9ICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHsgIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMge2Rpc3BsYXk6IGdyaWQ7YWxpZ24taXRlbXM6IGNlbnRlcjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgMS43NWVtKX0gIH0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b24ge3Bvc2l0aW9uOiByZWxhdGl2ZTt6LWluZGV4OiAxO292ZXJmbG93OiBoaWRkZW47d2lkdGg6IGNhbGMoMS43NWVtIC0gMTBweCk7aGVpZ2h0OiBjYWxjKDEuNzVlbSAtIDEwcHgpO2ZsZXgtc2hyaW5rOiAwO2JvcmRlci1yYWRpdXM6IDAuMTVlbTttYXJnaW46IDIuNXB4O2JhY2tncm91bmQ6IHRyYW5zcGFyZW50O2N1cnNvcjogcG9pbnRlcjtmb250LXNpemU6IDFlbTtqdXN0aWZ5LXNlbGY6IGNlbnRlcjt0cmFuc2l0aW9uOiBhbGwgMC4xNXN9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOjpiZWZvcmUge3Bvc2l0aW9uOiBhYnNvbHV0ZTt6LWluZGV4OiAtMTt0b3A6IDA7bGVmdDogMDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOiA2cHg7Y29udGVudDogJyd9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOjphZnRlciB7cG9zaXRpb246IGFic29sdXRlO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3gtc2l6aW5nOiBib3JkZXItYm94O2JvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSk7Ym9yZGVyLXJhZGl1czogMC4xNWVtO2JhY2tncm91bmQ6IHZhcigtLXBjci1jb2xvcik7Y29udGVudDogJyd9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOmhvdmVyIHtmaWx0ZXI6IGJyaWdodG5lc3MoMS4wNSl9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOm5vdCgucGNyLWFjdGl2ZSkge2JveC1zaGFkb3c6IG5vbmV9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIHtkaXNwbGF5OiBmbGV4O2ZsZXgtd3JhcDogd3JhcDthbGlnbi1pdGVtczogY2VudGVyO21hcmdpbjogMCAtMC4yZW0gMCAtMC4yZW19ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uID4gKiB7bWFyZ2luOiAwIDAuMmVtfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiBpbnB1dCB7cGFkZGluZzogMC40NWVtIDAuNWVtO2JvcmRlci1yYWRpdXM6IC4xNWVtO21hcmdpbi10b3A6IDAuNzVlbTtiYWNrZ3JvdW5kOiAjZjFmM2Y0O2NvbG9yOiAjNzU3OTdlO2N1cnNvcjogcG9pbnRlcjtmb250LXNpemU6IDAuNzVlbTtsZXR0ZXItc3BhY2luZzogMC4wN2VtO3RleHQtYWxpZ246IGNlbnRlcjt0cmFuc2l0aW9uOiBhbGwgMC4xNXN9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0OmhvdmVyIHtmaWx0ZXI6IGJyaWdodG5lc3MoMC45NzUpfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiBpbnB1dDpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCByZ2JhKDY2LCAxMzMsIDI0NCwgMC43NSl9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItcmVzdWx0IHttaW4td2lkdGg6IDhlbTtmbGV4OiAxIDEgOGVtO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6ICNmMWYzZjQ7Y29sb3I6ICM3NTc5N2U7Y3Vyc29yOiB0ZXh0O3RleHQtYWxpZ246IGxlZnQ7dHJhbnNpdGlvbjogYWxsIDAuMnN9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItcmVzdWx0OjotbW96LXNlbGVjdGlvbiB7YmFja2dyb3VuZDogIzQyODVmNDtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQ6OnNlbGVjdGlvbiB7YmFja2dyb3VuZDogIzQyODVmNDtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci10eXBlLmFjdGl2ZSB7YmFja2dyb3VuZDogIzQyODVmNDtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1zYXZlLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXIge3dpZHRoOiBhdXRvO2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWwsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhciB7Y29sb3I6ICNmZmZ9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZTpob3ZlciwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbDpob3ZlciwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFyOmhvdmVyIHtmaWx0ZXI6IGJyaWdodG5lc3MoMC45MjUpfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUge2JhY2tncm91bmQ6ICM0Mjg1ZjR9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXIsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWwge2JhY2tncm91bmQ6ICNmNDQyNTB9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXI6Zm9jdXMsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWw6Zm9jdXMge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggcmdiYSgyNDQsIDY2LCA4MCwgMC43NSl9ICAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLXBpY2tlciB7cG9zaXRpb246IGFic29sdXRlO3dpZHRoOiAxOHB4O2hlaWdodDogMThweDtib3JkZXI6IDJweCBzb2xpZCAjZmZmO2JvcmRlci1yYWRpdXM6IDEwMCU7LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTstbW96LXVzZXItc2VsZWN0OiBub25lOy1tcy11c2VyLXNlbGVjdDogbm9uZTt1c2VyLXNlbGVjdDogbm9uZX0gIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZSwgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkge3Bvc2l0aW9uOiByZWxhdGl2ZTtkaXNwbGF5OiBmbGV4O2ZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Y3Vyc29yOiBncmFiO2N1cnNvcjogLXdlYmtpdC1ncmFiOy13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7LW1vei11c2VyLXNlbGVjdDogbm9uZTstbXMtdXNlci1zZWxlY3Q6IG5vbmU7dXNlci1zZWxlY3Q6IG5vbmV9ICAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGU6YWN0aXZlLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXI6YWN0aXZlLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHk6YWN0aXZlIHtjdXJzb3I6IGdyYWJiaW5nO2N1cnNvcjogLXdlYmtpdC1ncmFiYmluZ30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSB7d2lkdGg6IDE0LjI1ZW07bWF4LXdpZHRoOiA5NXZ3fSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc3dhdGNoZXMge3BhZGRpbmc6IDAgLjZlbTttYXJnaW4tdG9wOiAuNmVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3ItaW50ZXJhY3Rpb24ge3BhZGRpbmc6IDAgLjZlbSAuNmVtIC42ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24ge2Rpc3BsYXk6IGdyaWQ7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMC41ZW07YWxpZ24taXRlbXM6IGNlbnRlcjthbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O2dyaWQtZ2FwOiAuNmVtO2dyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDRmcjtncmlkLXRlbXBsYXRlLXJvd3M6IDVmciBhdXRvIGF1dG99ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IHtkaXNwbGF5OiBmbGV4O3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtmbGV4LWRpcmVjdGlvbjogcm93O2p1c3RpZnktY29udGVudDogY2VudGVyO21hcmdpbi1sZWZ0OiAuNmVtO2dyaWQtYXJlYTogMiAvIDEgLyA0IC8gMX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcgLnBjci1sYXN0LWNvbG9yIHtkaXNwbGF5OiBub25lfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWN1cnJlbnQtY29sb3Ige3Bvc2l0aW9uOiByZWxhdGl2ZTtvdmVyZmxvdzogaGlkZGVuO3dpZHRoOiAyZW07aGVpZ2h0OiAyZW07Ym9yZGVyLXJhZGl1czogNTBlbTtiYWNrZ3JvdW5kOiB2YXIoLS1wY3ItY29sb3IpfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWN1cnJlbnQtY29sb3I6OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IC0xO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IC41ZW07Y29udGVudDogJyd9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIHt6LWluZGV4OiAxO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtncmlkLWFyZWE6IDEgLyAxIC8gMiAvIDN9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIC5wY3ItcGFsZXR0ZSB7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JvcmRlci1yYWRpdXM6IC4xNWVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZSAucGNyLXBhbGV0dGU6OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IC0xO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IC41ZW07Y29udGVudDogJyd9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIHtncmlkLWFyZWE6IDIgLyAyIC8gMiAvIDJ9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IHtncmlkLWFyZWE6IDMgLyAyIC8gMyAvIDJ9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyLCAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IHtoZWlnaHQ6IDAuNWVtO21hcmdpbjogMCAuNmVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciAucGNyLXBpY2tlciwgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSAucGNyLXBpY2tlciB7dG9wOiA1MCU7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciAucGNyLXNsaWRlciwgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSAucGNyLXNsaWRlciB7ZmxleC1ncm93OiAxO2JvcmRlci1yYWRpdXM6IDUwZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3Itc2xpZGVyIHtiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJlZCwgI2ZmMCwgbGltZSwgY3lhbiwgYmx1ZSwgI2YwZiwgcmVkKX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkgLnBjci1zbGlkZXIge2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIGJsYWNrKSwgdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOiAxMDAlLCAwLjI1ZW19XG4ucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uIHtcblx0cGFkZGluZzogMDtcbn1cbiIsICIuc2V0dGluZy1pdGVtLmNvZGUtc3R5bGVyLXNwYWNlZCAuY2hlY2tib3gtY29udGFpbmVyICsgLnBpY2tyIHtcblx0cGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuLmNvZGUtc3R5bGVyLWRvbmF0aW9uIHtcblx0d2lkdGg6IDcwJTtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtYXJlYSB0ZXh0YXJlYSB7XG5cdHdpZHRoOiA0MDBweDtcblx0aGVpZ2h0OiAyMjBweDtcbn1cbi5jb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtd2lkZSB7XG5cdHdpZHRoOiAxMDAlO1xufVxuYnV0dG9uLmNvZGUtc3R5bGVyLXNldHRpbmdzLWJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0aGVpZ2h0OiBhdXRvO1xufVxuY29kZS5jb2RlLXN0eWxlci1zZXR0aW5ncy1pbmxpbmUtY29kZSB7XG5cdHBhZGRpbmc6IDAuMWVtIDAuMjVlbTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY29kZS1yYWRpdXMpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLWJhY2tncm91bmQpO1xuXHRjb2xvcjogdmFyKC0tY29kZS1ub3JtYWwpO1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vc3BhY2UpO1xuXHRmb250LXNpemU6IHZhcigtLWNvZGUtc2l6ZSk7XG59XG5wOmhhcyg+IGNvZGUuY29kZS1zdHlsZXItc2V0dGluZ3MtaW5saW5lLWNvZGUpIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFkdmFuY2VkLXNldHRpbmdzLWhlYWRlcjo6YWZ0ZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDIwcHg7XG5cdGhlaWdodDogMjBweDtcblx0bWFyZ2luOiBhdXRvO1xuXHRtYXJnaW4tbGVmdDogNHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcblx0Y29udGVudDogXCJcXDIwMGJcIjtcblx0LXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyUzRSUzQ3BhdGggZD0nTTE2IDIyIDYgMTJsMS40LTEuNCA4LjYgOC42IDguNi04LjZMMjYgMTJ6Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInIGZpbGw9J25vbmUnIHN0cm9rZT0nY3VycmVudENvbG9yJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgJTNFJTNDcG9seWxpbmUgcG9pbnRzPSc2IDkgMTIgMTUgMTggOScvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRvcGFjaXR5OiAxO1xuXHRzY2FsZTogMC45O1xuXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBlYXNlLW91dCwgdmlzaWJpbGl0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBvcGFjaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5hZHZhbmNlZC1zZXR0aW5ncy1oZWFkZXIuaGVhZGVyLWZvbGRlZDo6YWZ0ZXIge1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuIiwgIi8qKiBFeGVjdXRlIENvZGUgUGx1Z2luICovXG5wcmUuY29kZS1zdHlsZXItcHJlIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nLWJvdHRvbTogY2FsYygyLjUgKiB2YXIoLS1jb2RlLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wOiB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSBzb2xpZCB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItc2VwYXJhdG9yLWNvbG91cik7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQge1xuXHRib3JkZXItdG9wLXdpZHRoOiAwO1xuXHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmU6aG92ZXIgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IGlucHV0LmludGVyYWN0aXZlLXN0ZGluIHtcblx0cGFkZGluZzogMnB4IDhweDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci1jb2xvcjogdmFyKC0tY29kZS1jb21tZW50KTtcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpO1xuXHRjb2xvcjogdmFyKC0tdGV4dC1ub3JtYWwpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQgaHIge1xuXHRkaXNwbGF5OiBub25lO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uIHtcblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogMTJweDtcblx0LS1kZW50LWRpZmZlcmVuY2U6IDI0cHg7XG5cdGhlaWdodDogMTRweDtcblx0bWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBidXR0b24ucnVuLWNvZGUtYnV0dG9uIHtcblx0dG9wOiA1MDBweDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbjo6YmVmb3JlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxNHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHQtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNNyAyOGExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEuNDgyLS44NzZsMjAgMTFhMSAxIDAgMCAxIDAgMS43NTJsLTIwIDExQTEgMSAwIDAgMSA3IDI4WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTcgMjhhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLjQ4Mi0uODc2bDIwIDExYTEgMSAwIDAgMSAwIDEuNzUybC0yMCAxMUExIDEgMCAwIDEgNyAyOFonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogMHB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uLWRpc2FibGVkLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWJ1dHRvbi1kaXNhYmxlZCB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbiB7XG5cdGhlaWdodDogMTRweDtcblx0bWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgKyAxMnB4KTtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0d2lsbC1jaGFuZ2U6IG1hcmdpbi1yaWdodCwgY2xpcC1wYXRoO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uOjpiZWZvcmUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxNHB4O1xuXHRoZWlnaHQ6IDE0cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00xNiA0IDYgMTRsMS40MSAxLjQxTDE1IDcuODNWMjhoMlY3LjgzbDcuNTkgNy41OEwyNiAxNCAxNiA0eicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTE2IDQgNiAxNGwxLjQxIDEuNDFMMTUgNy44M1YyOGgyVjcuODNsNy41OSA3LjU4TDI2IDE0IDE2IDR6Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0dmVydGljYWwtYWxpZ246IDBweDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbjpub3QoOmFjdGl2ZSkge1xuXHRhbmltYXRpb246IHJldmVyc2UtaW5kZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246aG92ZXJ7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRhbmltYXRpb246IHJldmVyc2Utb3V0ZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246YWN0aXZlIHtcblx0c2NhbGU6IDAuOTU7XG5cdHRyYW5zaXRpb246IHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcbn1cbi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Lmhhcy1ydW4tY29kZS1idXR0b24gLmxvYWQtc3RhdGUtaW5kaWNhdG9yIHtcblx0ei1pbmRleDogMTA7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGNvbG9yOiBub25lO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3I6OmJlZm9yZSB7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvciBzdmcge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvciBzdmc6aG92ZXIge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWFjdGl2ZS1jb2xvdXIpO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3IudmlzaWJsZSB7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLyoqIEVtYmVkIENvZGUgUGx1Z2luICovXG4uYmxvY2stbGFuZ3VhZ2UtcHJldmlldyBwcmUuY29kZS1zdHlsZXItcHJlIGNvZGUge1xuXHR3aGl0ZS1zcGFjZTogdW5zZXQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIHNwYW4uY29kZS1ibG9jay1saW5lX251bS13cmFwLFxucHJlLmNvZGUtc3R5bGVyLXByZSBkaXYuY29kZS1ibG9jay1oaWdobGlnaHQtd3JhcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b246OmFmdGVyIHtcblx0cGFkZGluZy1sZWZ0OiA0cHg7XG5cdGNvbnRlbnQ6ICdFZGl0IEJsb2NrJztcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXVpLXNtYWxsZXIpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrOm5vdCg6aG92ZXIpIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50ICsgLmVkaXQtYmxvY2stYnV0dG9uIHtcblx0b3BhY2l0eTogMDtcblx0dmlzaWJpbGl0eTogaGlkZGVuXG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b24ge1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiBjYWxjKDIuMiAqIHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZykpO1xuXHQtLWRlbnQtZGlmZmVyZW5jZTogMHB4O1xuXHQtLXBvbHlnb24taW46IHBvbHlnb24oMCAwLCAxOHB4IDAsIDE4cHggMzZweCwgMCAzNnB4KTtcblx0ei1pbmRleDogMTA7XG5cdHRvcDogbWF4KGNhbGMoMC41ICogdmFyKC0tY29udGFpbmVyLWhlaWdodCkgKiAxKSxjYWxjKDAuNSAqIHZhcigtLWNvbnRhaW5lci1taW4taGVpZ2h0KSAqIDEpKTtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0dHJhbnNpdGlvbjogdmlzaWJpbGl0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBvcGFjaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdHdpbGwtY2hhbmdlOiBtYXJnaW4tcmlnaHQsIGNsaXAtcGF0aDtcbn1cbmJvZHkgLmNtLWVtYmVkLWJsb2NrIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50OmhhcyggcHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1oaWRkZW4pICsgLmVkaXQtYmxvY2stYnV0dG9uIHtcblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogNHB4O1xuXHR0b3A6IGNhbGMoMC41ICogdmFyKC0tZm9udC10ZXh0LXNpemUpICogMC44NzUgKiB2YXIoLS1saW5lLWhlaWdodC1ub3JtYWwpKTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jazpob3ZlciAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbjpob3ZlciB7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRhbmltYXRpb246IHJldmVyc2Utb3V0ZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2s6aG92ZXIgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b246YWN0aXZlIHtcblx0c2NhbGU6IDAuOTU7XG5cdHRyYW5zaXRpb246IHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcbn1cblxuLyoqIEZpbGUgSW5jbHVkZSBQbHVnaW4gKi9cbmRpdi5ibG9jay1sYW5ndWFnZS1pbmNsdWRlIHByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b24ge1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcbn1cbmRpdi5ibG9jay1sYW5ndWFnZS1pbmNsdWRlIHByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246aG92ZXIge1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcbn1cblxuLyoqIENvcmUgU2xpZGVzIFBsdWdpbiAqL1xuLnNsaWRlcyBidXR0b24uY29weS1jb2RlLWJ1dHRvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0aGVpZ2h0OiBhdXRvO1xuXHRwYWRkaW5nOiA2cHggOHB4O1xuXHRtYXJnaW46IDZweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaW50ZXJmYWNlKTtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXVpLXNtYWxsZXIpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUNBO0FBRUMsbUJBQWlCO0FBQ2pCLGdDQUE4QjtBQUM5QixrQkFBZ0I7QUFDaEIsc0JBQW9CLEtBQUssSUFBSSxzQkFBc0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxpQ0FBaUMsRUFBRSxJQUFJO0FBQ3BHLDBC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 */