diff --git a/publish/manifest.json b/publish/manifest.json index cfa0cb4..6ecb98e 100644 --- a/publish/manifest.json +++ b/publish/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-admonition", "name": "Admonition", - "version": "6.3.5", + "version": "6.3.8", "minAppVersion": "0.11.0", "description": "Admonition block-styled content for Obsidian.md", "author": "Jeremy Valentine", diff --git a/publish/publish.admonition.txt b/publish/publish.admonition.txt index 6cef0b8..67e6fa9 100644 --- a/publish/publish.admonition.txt +++ b/publish/publish.admonition.txt @@ -198,6 +198,7 @@ function getParametersFromSource(type, src) { } return { title, collapse, content, icon, color }; } +const blockSet = new Set(); const ADMONITION_ICON_MAP = {}; if (document.readyState === "complete") { postprocess(); @@ -265,7 +266,6 @@ function processAdmonitionBlock(admonitionBlock) { admonitionContent.innerText = content; admonitionBlock.replaceWith(admonition); } -const blockSet = new Set(); function postprocess() { //do work const admonitions = document.querySelectorAll("pre[class*='language-ad']"); @@ -288,7 +288,7 @@ function postprocess() { admonitionBlock.replaceWith(admonition); } } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC5hZG1vbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHVibGlzaC5hZG1vbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sb0JBQW9CLENBQUM7QUFFNUIsU0FBUyxRQUFRLENBQ2IsR0FBTSxFQUNOLENBQTJCLEVBQzNCLENBQWU7SUFFZixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDaEIsQ0FBQyxDQUFDLEdBQUc7WUFDRCxHQUFHLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNQLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQ2IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQ1QsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQ1YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQ1YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQ1gsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQ1gsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQ1YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUNwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFDYixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNmLE9BQU8sQ0FDSCxDQUFDO1FBQ0csQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxX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QUFJLEVBQ3JDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQzFDLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3RCxJQUFJLFVBQVUsR0FBRyxvQkFBb0IsQ0FDakMsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLFFBQVEsQ0FDWCxDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRXhFLE1BQU0saUJBQWlCLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXhFLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFFdEMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUMzQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCIuLi9hc3NldHMvbWFpbi5jc3NcIjtcclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUVsPEsgZXh0ZW5kcyBrZXlvZiBIVE1MRWxlbWVudFRhZ05hbWVNYXA+KFxyXG4gICAgdGFnOiBLLFxyXG4gICAgdD86IHN0cmluZyB8IERvbUVsZW1lbnRJbmZvLFxyXG4gICAgZT86IEhUTUxFbGVtZW50XHJcbik6IEhUTUxFbGVtZW50VGFnTmFtZU1hcFtLXSB7XHJcbiAgICBjb25zdCBpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpO1xyXG4gICAgXCJzdHJpbmdcIiA9PSB0eXBlb2YgdCAmJlxyXG4gICAgICAgICh0ID0ge1xyXG4gICAgICAgICAgICBjbHM6IHRcclxuICAgICAgICB9KTtcclxuICAgIGNvbnN0IHIgPSB0IHx8IHt9LFxyXG4gICAgICAgIG8gPSByLmNscyxcclxuICAgICAgICBzID0gci50ZXh0LFxyXG4gICAgICAgIGEgPSByLmF0dHIsXHJcbiAgICAgICAgbCA9IHIudGl0bGUsXHJcbiAgICAgICAgYyA9IHIudmFsdWUsXHJcbiAgICAgICAgdSA9IHIudHlwZSxcclxuICAgICAgICBoID0gZSA/IGUgOiByLnBhcmVudCxcclxuICAgICAgICBwID0gci5wcmVwZW5kLFxyXG4gICAgICAgIGQgPSByLmhyZWY7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIG8gJiZcclxuICAgICAgICAgICAgKEFycmF5LmlzQXJyYXkobylcclxuICAgICAgICAgICAgICAgID8gKGkuY2xhc3NOYW1lID0gby5qb2luKFwiIFwiKSlcclxuICAgICAgICAgICAgICAgIDogKGkuY2xhc3NOYW1lID0gbykpLFxyXG4gICAgICAgIHMgJiYgKGkudGV4dENvbnRlbnQgPSBzKSxcclxuICAgICAgICBhICYmXHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGEpLmZvckVhY2goKHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBhW3RdO1xyXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gbiAmJiBpLnNldEF0dHJpYnV0ZSh0LCBTdHJpbmcobikpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBsICYmIChpLnRpdGxlID0gbCksXHJcbiAgICAgICAgYyAmJlxyXG4gICAgICAgICAgICAoaSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHxcclxuICAgICAgICAgICAgICAgIGkgaW5zdGFuY2VvZiBIVE1MU2VsZWN0RWxlbWVudCB8fFxyXG4gICAgICAgICAgICAgICAgaSBpbnN0YW5jZW9mIEhUTUxPcHRpb25FbGVtZW50KSAmJlxyXG4gICAgICAgICAgICAoaS52YWx1ZSA9IGMpLFxyXG4gICAgICAgIC8qIHUgJiYgaSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgJiYgKGkudHlwZSA9IHUpLCAqL1xyXG4gICAgICAgIHUgJiYgaSBpbnN0YW5jZW9mIEhUTUxTdHlsZUVsZW1lbnQgJiYgaS5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIHUpLFxyXG4gICAgICAgIGQgJiZcclxuICAgICAgICAgICAgKGkgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCB8fCBpIGluc3RhbmNlb2YgSFRNTExpbmtFbGVtZW50KSAmJlxyXG4gICAgICAgICAgICAoaS5ocmVmID0gZCksXHJcbiAgICAgICAgaCAmJiAocCA/IGguaW5zZXJ0QmVmb3JlKGksIGguZmlyc3RDaGlsZCkgOiBoLmFwcGVuZENoaWxkKGkpKSxcclxuICAgICAgICBpXHJcbiAgICApO1xyXG59XHJcbi8vQHRzLWlnbm9yZS1saW5lXHJcbmNvbnN0IGNyZWF0ZURpdiA9IGZ1bmN0aW9uIChcclxuICAgIG8/OiBzdHJpbmcgfCBEb21FbGVtZW50SW5mbyxcclxuICAgIGU/OiBIVE1MRWxlbWVudFxyXG4pOiBIVE1MRGl2RWxlbWVudCB7XHJcbiAgICByZXR1cm4gY3JlYXRlRWwoXCJkaXZcIiwgbywgZSk7XHJcbn07XHJcblxyXG5Ob2RlLnByb3RvdHlwZS5jcmVhdGVEaXYgPSBmdW5jdGlvbiAoXHJcbiAgICBvPzogc3RyaW5nIHwgRG9tRWxlbWVudEluZm8sXHJcbiAgICBjYj86IChlbDogSFRNTERpdkVsZW1lbnQpID0+IHZvaWRcclxuKTogSFRNTERpdkVsZW1lbnQge1xyXG4gICAgcmV0dXJuIGNyZWF0ZURpdihvLCB0aGlzKTtcclxufTtcclxuTm9kZS5wcm90b3R5cGUuY3JlYXRlRWwgPSBmdW5jdGlvbiA8SyBleHRlbmRzIGtleW9mIEhUTUxFbGVtZW50VGFnTmFtZU1hcD4oXHJcbiAgICB0YWc6IEssXHJcbiAgICBvPzogc3RyaW5nIHwgRG9tRWxlbWVudEluZm8sXHJcbiAgICBjYj86IChlbDogSFRNTEVsZW1lbnRUYWdOYW1lTWFwW0tdKSA9PiB2b2lkXHJcbik6IEhUTUxFbGVtZW50VGFnTmFtZU1hcFtLXSB7XHJcbiAgICByZXR1cm4gY3JlYXRlRWwodGFnLCBvLCB0aGlzKTtcclxufTtcclxuXHJcbkVsZW1lbnQucHJvdG90eXBlLmFkZENsYXNzID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcclxuICAgIGNvbnN0IGUgPSBbXTtcclxuICAgIGZvciAobGV0IHQgPSAwOyB0IDwgYXJncy5sZW5ndGg7IHQrKykgZVt0XSA9IGFyZ3NbdF07XHJcbiAgICB0aGlzLmFkZENsYXNzZXMoZSk7XHJcbn07XHJcblxyXG5FbGVtZW50LnByb3RvdHlwZS5hZGRDbGFzc2VzID0gZnVuY3Rpb24gKGUpIHtcclxuICAgIGZvciAobGV0IHQgPSAwOyB0IDwgZS5sZW5ndGg7IHQrKykgdGhpcy5jbGFzc0xpc3QuYWRkKGVbdF0pO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gZ2V0QWRtb25pdGlvbkVsZW1lbnQoXHJcbiAgICB0eXBlOiBzdHJpbmcsXHJcbiAgICB0aXRsZTogc3RyaW5nLFxyXG4gICAgaWNvbjogc3RyaW5nLFxyXG4gICAgY29sb3I6IHN0cmluZyxcclxuICAgIGNvbGxhcHNlPzogc3RyaW5nLFxyXG4gICAgaWQ/OiBzdHJpbmdcclxuKTogSFRNTEVsZW1lbnQge1xyXG4gICAgbGV0IGFkbW9uaXRpb24sXHJcbiAgICAgICAgdGl0bGVFbCxcclxuICAgICAgICBhdHRyczogeyBzdHlsZTogc3RyaW5nOyBvcGVuPzogc3RyaW5nIH0gPSB7XHJcbiAgICAgICAgICAgIHN0eWxlOiBgLS1hZG1vbml0aW9uLWNvbG9yOiAke2NvbG9yfTtgXHJcbiAgICAgICAgfTtcclxuICAgIGlmIChjb2xsYXBzZSAmJiBjb2xsYXBzZSAhPSBcIm5vbmVcIikge1xyXG4gICAgICAgIGlmIChjb2xsYXBzZSA9PT0gXCJvcGVuXCIpIHtcclxuICAgICAgICAgICAgYXR0cnMub3BlbiA9IFwib3BlblwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhZG1vbml0aW9uID0gY3JlYXRlRWwoXCJkZXRhaWxzXCIsIHtcclxuICAgICAgICAgICAgY2xzOiBgYWRtb25pdGlvbiBhZG1vbml0aW9uLSR7dHlwZX0gYWRtb25pdGlvbi1wbHVnaW5gLFxyXG4gICAgICAgICAgICBhdHRyOiBhdHRyc1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRpdGxlRWwgPSBhZG1vbml0aW9uLmNyZWF0ZUVsKFwic3VtbWFyeVwiLCB7XHJcbiAgICAgICAgICAgIGNsczogYGFkbW9uaXRpb24tdGl0bGUgJHshdGl0bGU/LnRyaW0oKS5sZW5ndGggPyBcIm5vLXRpdGxlXCIgOiBcIlwifWBcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYWRtb25pdGlvbiA9IGNyZWF0ZURpdih7XHJcbiAgICAgICAgICAgIGNsczogYGFkbW9uaXRpb24gYWRtb25pdGlvbi0ke3R5cGV9IGFkbW9uaXRpb24tcGx1Z2luYCxcclxuICAgICAgICAgICAgYXR0cjogYXR0cnNcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aXRsZUVsID0gYWRtb25pdGlvbi5jcmVhdGVEaXYoe1xyXG4gICAgICAgICAgICBjbHM6IGBhZG1vbml0aW9uLXRpdGxlICR7IXRpdGxlPy50cmltKCkubGVuZ3RoID8gXCJuby10aXRsZVwiIDogXCJcIn1gXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgICAgYWRtb25pdGlvbi5pZCA9IGlkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aXRsZSAmJiB0aXRsZS50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGl0bGUgc3RydWN0dXJlXHJcbiAgICAgICAgICogPGRpdnxzdW1tYXJ5Pi5hZG1vbml0aW9uLXRpdGxlXHJcbiAgICAgICAgICogICAgICA8ZWxlbWVudD4uYWRtb25pdGlvbi10aXRsZS1jb250ZW50IC0gUmVuZGVyZWQgTWFya2Rvd24gdG9wLWxldmVsIGVsZW1lbnQgKGUuZy4gSDEvMi8zIGV0YywgcClcclxuICAgICAgICAgKiAgICAgICAgICBkaXYuYWRtb25pdGlvbi10aXRsZS1pY29uXHJcbiAgICAgICAgICogICAgICAgICAgICAgIHN2Z1xyXG4gICAgICAgICAqICAgICAgICAgIGRpdi5hZG1vbml0aW9uLXRpdGxlLW1hcmtkb3duIC0gQ29udGFpbmVyIG9mIHJlbmRlcmVkIG1hcmtkb3duXHJcbiAgICAgICAgICogICAgICAgICAgICAgIC4uLnJlbmRlcmVkIG1hcmtkb3duIGNoaWxkcmVuLi4uXHJcbiAgICAgICAgICovXHJcblxyXG4gICAgICAgIC8vZ2V0IG1hcmtkb3duXHJcbiAgICAgICAgY29uc3QgbWFya2Rvd25Ib2xkZXIgPSBjcmVhdGVEaXYoKTtcclxuICAgICAgICAvL01hcmtkb3duUmVuZGVyZXIucmVuZGVyTWFya2Rvd24odGl0bGUsIG1hcmtkb3duSG9sZGVyLCBcIlwiLCBudWxsKTtcclxuXHJcbiAgICAgICAgLy9hZG1vbml0aW9uLXRpdGxlLWNvbnRlbnQgaXMgZmlyc3QgY2hpbGQgb2YgcmVuZGVyZWQgbWFya2Rvd25cclxuXHJcbiAgICAgICAgY29uc3QgYWRtb25pdGlvblRpdGxlQ29udGVudCA9XHJcbiAgICAgICAgICAgIC8qIG1hcmtkb3duSG9sZGVyPy5jaGlsZHJlblswXT8udGFnTmFtZSA9PT0gXCJQXCJcclxuICAgICAgICA/IGNyZWF0ZURpdigpXHJcbiAgICAgICAgOiBtYXJrZG93bkhvbGRlci5jaGlsZHJlblswXSA/PyAgKi8gY3JlYXRlRGl2KCk7XHJcblxyXG4gICAgICAgIC8vZ2V0IGNoaWxkcmVuIG9mIG1hcmtkb3duIGVsZW1lbnQsIHRoZW4gcmVtb3ZlIHRoZW1cclxuICAgICAgICBjb25zdCBtYXJrZG93bkVsZW1lbnRzID0gQXJyYXkuZnJvbShcclxuICAgICAgICAgICAgbWFya2Rvd25Ib2xkZXIuY2hpbGRyZW5bMF0/LmNoaWxkTm9kZXMgfHwgW11cclxuICAgICAgICApO1xyXG4gICAgICAgIGFkbW9uaXRpb25UaXRsZUNvbnRlbnQuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgICBhZG1vbml0aW9uVGl0bGVDb250ZW50LmFkZENsYXNzKFwiYWRtb25pdGlvbi10aXRsZS1jb250ZW50XCIpO1xyXG5cclxuICAgICAgICAvL2J1aWxkIGljb24gZWxlbWVudFxyXG4gICAgICAgIGNvbnN0IGljb25FbCA9IGFkbW9uaXRpb25UaXRsZUNvbnRlbnQuY3JlYXRlRGl2KFxyXG4gICAgICAgICAgICBcImFkbW9uaXRpb24tdGl0bGUtaWNvblwiXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaWNvbikge1xyXG4gICAgICAgICAgICBpY29uRWwuaW5uZXJIVE1MID0gaWNvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vYWRkIG1hcmtkb3duIGNoaWxkcmVuIGJhY2tcclxuICAgICAgICBjb25zdCBhZG1vbml0aW9uVGl0bGVNYXJrZG93biA9IGFkbW9uaXRpb25UaXRsZUNvbnRlbnQuY3JlYXRlRGl2KFxyXG4gICAgICAgICAgICBcImFkbW9uaXRpb24tdGl0bGUtbWFya2Rvd25cIlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYWRtb25pdGlvblRpdGxlTWFya2Rvd24uaW5uZXJUZXh0ID0gdGl0bGU7XHJcbiAgICAgICAgLyogZm9yIChsZXQgaSA9IDA7IGkgPCBtYXJrZG93bkVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGFkbW9uaXRpb25UaXRsZU1hcmtkb3duLmFwcGVuZENoaWxkKG1hcmtkb3duRWxlbWVudHNbaV0pO1xyXG4gICAgICAgIH0gKi9cclxuICAgICAgICB0aXRsZUVsLmFwcGVuZENoaWxkKGFkbW9uaXRpb25UaXRsZUNvbnRlbnQgfHwgY3JlYXRlRGl2KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vYWRkIHRoZW0gdG8gdGl0bGUgZWxlbWVudFxyXG5cclxuICAgIGlmIChjb2xsYXBzZSkge1xyXG4gICAgICAgIHRpdGxlRWwuY3JlYXRlRGl2KFwiY29sbGFwc2VyXCIpLmNyZWF0ZURpdihcImhhbmRsZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBhZG1vbml0aW9uO1xyXG59XHJcbmZ1bmN0aW9uIHN0YXJ0c1dpdGhBbnkoc3RyOiBzdHJpbmcsIG5lZWRsZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5lZWRsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoc3RyLnN0YXJ0c1dpdGgobmVlZGxlc1tpXSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyc0Zyb21Tb3VyY2UodHlwZTogc3RyaW5nLCBzcmM6IHN0cmluZykge1xyXG4gICAgY29uc3Qga2V5d29yZFRva2VucyA9IFtcInRpdGxlOlwiLCBcImNvbGxhcHNlOlwiLCBcImljb246XCIsIFwiY29sb3I6XCJdO1xyXG5cclxuICAgIGNvbnN0IGtleXdvcmRzID0gW1widGl0bGVcIiwgXCJjb2xsYXBzZVwiLCBcImljb25cIiwgXCJjb2xvclwiXTtcclxuXHJcbiAgICBsZXQgbGluZXMgPSBzcmMuc3BsaXQoXCJcXG5cIik7XHJcblxyXG4gICAgbGV0IHNraXBMaW5lcyA9IDA7XHJcblxyXG4gICAgbGV0IHBhcmFtczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGtleXdvcmRJbmRleCA9IHN0YXJ0c1dpdGhBbnkobGluZXNbaV0sIGtleXdvcmRUb2tlbnMpO1xyXG5cclxuICAgICAgICBpZiAoa2V5d29yZEluZGV4ID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBmb3VuZEtleXdvcmQgPSBrZXl3b3Jkc1trZXl3b3JkSW5kZXhdO1xyXG5cclxuICAgICAgICBpZiAocGFyYW1zW2ZvdW5kS2V5d29yZF0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBhcmFtc1tmb3VuZEtleXdvcmRdID0gbGluZXNbaV1cclxuICAgICAgICAgICAgLnN1YnN0cihrZXl3b3JkVG9rZW5zW2tleXdvcmRJbmRleF0ubGVuZ3RoKVxyXG4gICAgICAgICAgICAudHJpbSgpO1xyXG4gICAgICAgICsrc2tpcExpbmVzO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB7XHJcbiAgICAgICAgdGl0bGUgPSB0eXBlWzBdLnRvVXBwZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgY29sbGFwc2UsXHJcbiAgICAgICAgaWNvbixcclxuICAgICAgICBjb2xvclxyXG4gICAgfSA9IHBhcmFtcztcclxuXHJcbiAgICBsZXQgY29udGVudCA9IGxpbmVzLnNsaWNlKHNraXBMaW5lcykuam9pbihcIlxcblwiKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElmIHRoZSBhZG1vbml0aW9uIHNob3VsZCBjb2xsYXBzZSwgYnV0IHNvbWV0aGluZyBvdGhlciB0aGFuIG9wZW4gb3IgY2xvc2VkIHdhcyBwcm92aWRlZCwgc2V0IHRvIGNsb3NlZC5cclxuICAgICAqL1xyXG4gICAgaWYgKFxyXG4gICAgICAgIGNvbGxhcHNlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICBjb2xsYXBzZSAhPT0gXCJub25lXCIgJiZcclxuICAgICAgICBjb2xsYXBzZSAhPT0gXCJvcGVuXCIgJiZcclxuICAgICAgICBjb2xsYXBzZSAhPT0gXCJjbG9zZWRcIlxyXG4gICAgKSB7XHJcbiAgICAgICAgY29sbGFwc2UgPSBcImNsb3NlZFwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhlIGFkbW9uaXRpb24gc2hvdWxkIGNvbGxhcHNlLCBidXQgdGl0bGUgd2FzIGJsYW5rZWQsIHNldCB0aGUgZGVmYXVsdCB0aXRsZS5cclxuICAgICAqL1xyXG4gICAgaWYgKHRpdGxlLnRyaW0oKSA9PT0gXCJcIiAmJiBjb2xsYXBzZSAhPT0gdW5kZWZpbmVkICYmIGNvbGxhcHNlICE9PSBcIm5vbmVcIikge1xyXG4gICAgICAgIHRpdGxlID0gdHlwZVswXS50b1VwcGVyQ2FzZSgpICsgdHlwZS5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyB0aXRsZSwgY29sbGFwc2UsIGNvbnRlbnQsIGljb24sIGNvbG9yIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBBZG1vbml0aW9uUHVibGlzaERlZmluaXRpb24ge1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgY29sb3I6IHN0cmluZztcclxufVxyXG5cclxuY29uc3QgQURNT05JVElPTl9JQ09OX01BUDoge1xyXG4gICAgW2FkbW9uaXRpb25UeXBlOiBzdHJpbmddOiBBZG1vbml0aW9uUHVibGlzaERlZmluaXRpb247XHJcbn0gPSB7fTtcclxuaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09IFwiY29tcGxldGVcIikge1xyXG4gICAgcG9zdHByb2Nlc3MoKTtcclxuICAgIHJlZ2lzdGVyVG9Qcm9jZXNzKCk7XHJcbn0gZWxzZSB7XHJcbiAgICB3aW5kb3cub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgIHBvc3Rwcm9jZXNzKCk7XHJcbiAgICAgICAgcmVnaXN0ZXJUb1Byb2Nlc3MoKTtcclxuICAgIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlZ2lzdGVyVG9Qcm9jZXNzKCkge1xyXG4gICAgY29uc3Qgc2l6ZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLm1hcmtkb3duLXByZXZpZXctc2l6ZXJcIik7XHJcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcclxuICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcclxuICAgICAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT0gXCJjaGlsZExpc3RcIiAmJiBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgbXV0YXRpb24uYWRkZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuY2hpbGRyZW4ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuZmlyc3RFbGVtZW50Q2hpbGQ/LnRhZ05hbWUgPT09IFwiUFJFXCJcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9wb3N0cHJvY2Vzcyhub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlT2JzZXJ2ZXIub2JzZXJ2ZShub2RlLmZpcnN0Q2hpbGQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZExpc3Q6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0cmVlOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICBvYnNlcnZlci5vYnNlcnZlKHNpemVyLCB7XHJcbiAgICAgICAgYXR0cmlidXRlczogZmFsc2UsXHJcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICAgIHN1YnRyZWU6IGZhbHNlXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBwcmVPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcclxuICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgbXV0YXRpb24udGFyZ2V0IGluc3RhbmNlb2YgSFRNTFByZUVsZW1lbnQgJiZcclxuICAgICAgICAgICAgICAgICFibG9ja1NldC5oYXMobXV0YXRpb24udGFyZ2V0KSAmJlxyXG4gICAgICAgICAgICAgICAgbXV0YXRpb24udHlwZSA9PT0gXCJhdHRyaWJ1dGVzXCIgJiZcclxuICAgICAgICAgICAgICAgIG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09IFwiY2xhc3NcIiAmJlxyXG4gICAgICAgICAgICAgICAgQXJyYXkuZnJvbShtdXRhdGlvbi50YXJnZXQuY2xhc3NMaXN0KS5zb21lKChjbHMpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgL2xhbmd1YWdlLWFkLShcXHcrKS8udGVzdChjbHMpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgYmxvY2tTZXQuYWRkKG11dGF0aW9uLnRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzQWRtb25pdGlvbkJsb2NrKG11dGF0aW9uLnRhcmdldCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBwcm9jZXNzQWRtb25pdGlvbkJsb2NrKGFkbW9uaXRpb25CbG9jazogSFRNTFByZUVsZW1lbnQpIHtcclxuICAgIGNvbnN0IFssIHR5cGVdID0gYWRtb25pdGlvbkJsb2NrLmNsYXNzTGlzdFxyXG4gICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgICAgLm1hdGNoKC9sYW5ndWFnZS1hZC0oXFx3KykvKTtcclxuICAgIGlmICghdHlwZSkgcmV0dXJuO1xyXG4gICAgaWYgKCEodHlwZSBpbiBBRE1PTklUSU9OX0lDT05fTUFQKSkgcmV0dXJuO1xyXG5cclxuICAgIGxldCB7XHJcbiAgICAgICAgdGl0bGUgPSB0eXBlWzBdLnRvVXBwZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgY29sbGFwc2UsXHJcbiAgICAgICAgY29udGVudCxcclxuICAgICAgICBpY29uID0gQURNT05JVElPTl9JQ09OX01BUFt0eXBlXS5pY29uLFxyXG4gICAgICAgIGNvbG9yID0gQURNT05JVElPTl9JQ09OX01BUFt0eXBlXS5jb2xvclxyXG4gICAgfSA9IGdldFBhcmFtZXRlcnNGcm9tU291cmNlKHR5cGUsIGFkbW9uaXRpb25CbG9jay5pbm5lclRleHQpO1xyXG5cclxuICAgIGxldCBhZG1vbml0aW9uID0gZ2V0QWRtb25pdGlvbkVsZW1lbnQodHlwZSwgdGl0bGUsIGljb24sIGNvbG9yLCBjb2xsYXBzZSk7XHJcblxyXG4gICAgY29uc3QgY29udGVudEhvbGRlciA9IGFkbW9uaXRpb24uY3JlYXRlRGl2KFwiYWRtb25pdGlvbi1jb250ZW50LWhvbGRlclwiKTtcclxuXHJcbiAgICBjb25zdCBhZG1vbml0aW9uQ29udGVudCA9IGNvbnRlbnRIb2xkZXIuY3JlYXRlRGl2KFwiYWRtb25pdGlvbi1jb250ZW50XCIpO1xyXG5cclxuICAgIGFkbW9uaXRpb25Db250ZW50LmlubmVyVGV4dCA9IGNvbnRlbnQ7XHJcblxyXG4gICAgYWRtb25pdGlvbkJsb2NrLnJlcGxhY2VXaXRoKGFkbW9uaXRpb24pO1xyXG59XHJcblxyXG5jb25zdCBibG9ja1NldDogU2V0PEhUTUxQcmVFbGVtZW50PiA9IG5ldyBTZXQoKTtcclxuXHJcbmZ1bmN0aW9uIHBvc3Rwcm9jZXNzKCkge1xyXG4gICAgLy9kbyB3b3JrXHJcbiAgICBjb25zdCBhZG1vbml0aW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTFByZUVsZW1lbnQ+KFxyXG4gICAgICAgIFwicHJlW2NsYXNzKj0nbGFuZ3VhZ2UtYWQnXVwiXHJcbiAgICApO1xyXG5cclxuICAgIGlmICghYWRtb25pdGlvbnMubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgZm9yIChsZXQgYWRtb25pdGlvbkJsb2NrIG9mIEFycmF5LmZyb20oYWRtb25pdGlvbnMpKSB7XHJcbiAgICAgICAgYmxvY2tTZXQuYWRkKGFkbW9uaXRpb25CbG9jayk7XHJcbiAgICAgICAgY29uc3QgWywgdHlwZV0gPSBhZG1vbml0aW9uQmxvY2suY2xhc3NMaXN0XHJcbiAgICAgICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgICAgICAgIC5tYXRjaCgvbGFuZ3VhZ2UtYWQtKFxcdyspLyk7XHJcbiAgICAgICAgaWYgKCF0eXBlKSBjb250aW51ZTtcclxuICAgICAgICBpZiAoISh0eXBlIGluIEFETU9OSVRJT05fSUNPTl9NQVApKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgbGV0IHtcclxuICAgICAgICAgICAgdGl0bGUgPSB0eXBlWzBdLnRvVXBwZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgICAgIGNvbGxhcHNlLFxyXG4gICAgICAgICAgICBjb250ZW50LFxyXG4gICAgICAgICAgICBpY29uID0gQURNT05JVElPTl9JQ09OX01BUFt0eXBlXS5pY29uLFxyXG4gICAgICAgICAgICBjb2xvciA9IEFETU9OSVRJT05fSUNPTl9NQVBbdHlwZV0uY29sb3JcclxuICAgICAgICB9ID0gZ2V0UGFyYW1ldGVyc0Zyb21Tb3VyY2UodHlwZSwgYWRtb25pdGlvbkJsb2NrLmlubmVyVGV4dCk7XHJcblxyXG4gICAgICAgIGxldCBhZG1vbml0aW9uID0gZ2V0QWRtb25pdGlvbkVsZW1lbnQoXHJcbiAgICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICAgIHRpdGxlLFxyXG4gICAgICAgICAgICBpY29uLFxyXG4gICAgICAgICAgICBjb2xvcixcclxuICAgICAgICAgICAgY29sbGFwc2VcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBjb25zdCBjb250ZW50SG9sZGVyID0gYWRtb25pdGlvbi5jcmVhdGVEaXYoXCJhZG1vbml0aW9uLWNvbnRlbnQtaG9sZGVyXCIpO1xyXG5cclxuICAgICAgICBjb25zdCBhZG1vbml0aW9uQ29udGVudCA9IGNvbnRlbnRIb2xkZXIuY3JlYXRlRGl2KFwiYWRtb25pdGlvbi1jb250ZW50XCIpO1xyXG5cclxuICAgICAgICBhZG1vbml0aW9uQ29udGVudC5pbm5lclRleHQgPSBjb250ZW50O1xyXG5cclxuICAgICAgICBhZG1vbml0aW9uQmxvY2sucmVwbGFjZVdpdGgoYWRtb25pdGlvbik7XHJcbiAgICB9XHJcbn1cclxuIl19 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC5hZG1vbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHVibGlzaC5hZG1vbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sb0JBQW9CLENBQUM7QUFFNUIsU0FBUyxRQUFRLENBQ2IsR0FBTSxFQUNOLENBQTJCLEVBQzNCLENBQWU7SUFFZixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDaEIsQ0FBQyxDQUFDLEdBQUc7WUFDRCxHQUFHLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNQLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQ2IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQ1QsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQ1YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQ1YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQ1gsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQ1gsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQ1YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUNwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFDYixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNmLE9BQU8sQ0FDSCxDQUFDO1FBQ0csQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxX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QUFJLEVBQ3JDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQzFDLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3RCxJQUFJLFVBQVUsR0FBRyxvQkFBb0IsQ0FDakMsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLFFBQVEsQ0FDWCxDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRXhFLE1BQU0saUJBQWlCLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXhFLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFFdEMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUMzQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCIuLi9hc3NldHMvbWFpbi5jc3NcIjtcclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUVsPEsgZXh0ZW5kcyBrZXlvZiBIVE1MRWxlbWVudFRhZ05hbWVNYXA+KFxyXG4gICAgdGFnOiBLLFxyXG4gICAgdD86IHN0cmluZyB8IERvbUVsZW1lbnRJbmZvLFxyXG4gICAgZT86IEhUTUxFbGVtZW50XHJcbik6IEhUTUxFbGVtZW50VGFnTmFtZU1hcFtLXSB7XHJcbiAgICBjb25zdCBpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpO1xyXG4gICAgXCJzdHJpbmdcIiA9PSB0eXBlb2YgdCAmJlxyXG4gICAgICAgICh0ID0ge1xyXG4gICAgICAgICAgICBjbHM6IHRcclxuICAgICAgICB9KTtcclxuICAgIGNvbnN0IHIgPSB0IHx8IHt9LFxyXG4gICAgICAgIG8gPSByLmNscyxcclxuICAgICAgICBzID0gci50ZXh0LFxyXG4gICAgICAgIGEgPSByLmF0dHIsXHJcbiAgICAgICAgbCA9IHIudGl0bGUsXHJcbiAgICAgICAgYyA9IHIudmFsdWUsXHJcbiAgICAgICAgdSA9IHIudHlwZSxcclxuICAgICAgICBoID0gZSA/IGUgOiByLnBhcmVudCxcclxuICAgICAgICBwID0gci5wcmVwZW5kLFxyXG4gICAgICAgIGQgPSByLmhyZWY7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIG8gJiZcclxuICAgICAgICAgICAgKEFycmF5LmlzQXJyYXkobylcclxuICAgICAgICAgICAgICAgID8gKGkuY2xhc3NOYW1lID0gby5qb2luKFwiIFwiKSlcclxuICAgICAgICAgICAgICAgIDogKGkuY2xhc3NOYW1lID0gbykpLFxyXG4gICAgICAgIHMgJiYgKGkudGV4dENvbnRlbnQgPSBzKSxcclxuICAgICAgICBhICYmXHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGEpLmZvckVhY2goKHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBhW3RdO1xyXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gbiAmJiBpLnNldEF0dHJpYnV0ZSh0LCBTdHJpbmcobikpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBsICYmIChpLnRpdGxlID0gbCksXHJcbiAgICAgICAgYyAmJlxyXG4gICAgICAgICAgICAoaSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHxcclxuICAgICAgICAgICAgICAgIGkgaW5zdGFuY2VvZiBIVE1MU2VsZWN0RWxlbWVudCB8fFxyXG4gICAgICAgICAgICAgICAgaSBpbnN0YW5jZW9mIEhUTUxPcHRpb25FbGVtZW50KSAmJlxyXG4gICAgICAgICAgICAoaS52YWx1ZSA9IGMpLFxyXG4gICAgICAgIC8qIHUgJiYgaSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgJiYgKGkudHlwZSA9IHUpLCAqL1xyXG4gICAgICAgIHUgJiYgaSBpbnN0YW5jZW9mIEhUTUxTdHlsZUVsZW1lbnQgJiYgaS5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIHUpLFxyXG4gICAgICAgIGQgJiZcclxuICAgICAgICAgICAgKGkgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCB8fCBpIGluc3RhbmNlb2YgSFRNTExpbmtFbGVtZW50KSAmJlxyXG4gICAgICAgICAgICAoaS5ocmVmID0gZCksXHJcbiAgICAgICAgaCAmJiAocCA/IGguaW5zZXJ0QmVmb3JlKGksIGguZmlyc3RDaGlsZCkgOiBoLmFwcGVuZENoaWxkKGkpKSxcclxuICAgICAgICBpXHJcbiAgICApO1xyXG59XHJcbi8vQHRzLWlnbm9yZS1saW5lXHJcbmNvbnN0IGNyZWF0ZURpdiA9IGZ1bmN0aW9uIChcclxuICAgIG8/OiBzdHJpbmcgfCBEb21FbGVtZW50SW5mbyxcclxuICAgIGU/OiBIVE1MRWxlbWVudFxyXG4pOiBIVE1MRGl2RWxlbWVudCB7XHJcbiAgICByZXR1cm4gY3JlYXRlRWwoXCJkaXZcIiwgbywgZSk7XHJcbn07XHJcblxyXG5Ob2RlLnByb3RvdHlwZS5jcmVhdGVEaXYgPSBmdW5jdGlvbiAoXHJcbiAgICBvPzogc3RyaW5nIHwgRG9tRWxlbWVudEluZm8sXHJcbiAgICBjYj86IChlbDogSFRNTERpdkVsZW1lbnQpID0+IHZvaWRcclxuKTogSFRNTERpdkVsZW1lbnQge1xyXG4gICAgcmV0dXJuIGNyZWF0ZURpdihvLCB0aGlzKTtcclxufTtcclxuTm9kZS5wcm90b3R5cGUuY3JlYXRlRWwgPSBmdW5jdGlvbiA8SyBleHRlbmRzIGtleW9mIEhUTUxFbGVtZW50VGFnTmFtZU1hcD4oXHJcbiAgICB0YWc6IEssXHJcbiAgICBvPzogc3RyaW5nIHwgRG9tRWxlbWVudEluZm8sXHJcbiAgICBjYj86IChlbDogSFRNTEVsZW1lbnRUYWdOYW1lTWFwW0tdKSA9PiB2b2lkXHJcbik6IEhUTUxFbGVtZW50VGFnTmFtZU1hcFtLXSB7XHJcbiAgICByZXR1cm4gY3JlYXRlRWwodGFnLCBvLCB0aGlzKTtcclxufTtcclxuXHJcbkVsZW1lbnQucHJvdG90eXBlLmFkZENsYXNzID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcclxuICAgIGNvbnN0IGUgPSBbXTtcclxuICAgIGZvciAobGV0IHQgPSAwOyB0IDwgYXJncy5sZW5ndGg7IHQrKykgZVt0XSA9IGFyZ3NbdF07XHJcbiAgICB0aGlzLmFkZENsYXNzZXMoZSk7XHJcbn07XHJcblxyXG5FbGVtZW50LnByb3RvdHlwZS5hZGRDbGFzc2VzID0gZnVuY3Rpb24gKGUpIHtcclxuICAgIGZvciAobGV0IHQgPSAwOyB0IDwgZS5sZW5ndGg7IHQrKykgdGhpcy5jbGFzc0xpc3QuYWRkKGVbdF0pO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gZ2V0QWRtb25pdGlvbkVsZW1lbnQoXHJcbiAgICB0eXBlOiBzdHJpbmcsXHJcbiAgICB0aXRsZTogc3RyaW5nLFxyXG4gICAgaWNvbjogc3RyaW5nLFxyXG4gICAgY29sb3I6IHN0cmluZyxcclxuICAgIGNvbGxhcHNlPzogc3RyaW5nLFxyXG4gICAgaWQ/OiBzdHJpbmdcclxuKTogSFRNTEVsZW1lbnQge1xyXG4gICAgbGV0IGFkbW9uaXRpb24sXHJcbiAgICAgICAgdGl0bGVFbCxcclxuICAgICAgICBhdHRyczogeyBzdHlsZTogc3RyaW5nOyBvcGVuPzogc3RyaW5nIH0gPSB7XHJcbiAgICAgICAgICAgIHN0eWxlOiBgLS1hZG1vbml0aW9uLWNvbG9yOiAke2NvbG9yfTtgXHJcbiAgICAgICAgfTtcclxuICAgIGlmIChjb2xsYXBzZSAmJiBjb2xsYXBzZSAhPSBcIm5vbmVcIikge1xyXG4gICAgICAgIGlmIChjb2xsYXBzZSA9PT0gXCJvcGVuXCIpIHtcclxuICAgICAgICAgICAgYXR0cnMub3BlbiA9IFwib3BlblwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhZG1vbml0aW9uID0gY3JlYXRlRWwoXCJkZXRhaWxzXCIsIHtcclxuICAgICAgICAgICAgY2xzOiBgYWRtb25pdGlvbiBhZG1vbml0aW9uLSR7dHlwZX0gYWRtb25pdGlvbi1wbHVnaW5gLFxyXG4gICAgICAgICAgICBhdHRyOiBhdHRyc1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRpdGxlRWwgPSBhZG1vbml0aW9uLmNyZWF0ZUVsKFwic3VtbWFyeVwiLCB7XHJcbiAgICAgICAgICAgIGNsczogYGFkbW9uaXRpb24tdGl0bGUgJHshdGl0bGU/LnRyaW0oKS5sZW5ndGggPyBcIm5vLXRpdGxlXCIgOiBcIlwifWBcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYWRtb25pdGlvbiA9IGNyZWF0ZURpdih7XHJcbiAgICAgICAgICAgIGNsczogYGFkbW9uaXRpb24gYWRtb25pdGlvbi0ke3R5cGV9IGFkbW9uaXRpb24tcGx1Z2luYCxcclxuICAgICAgICAgICAgYXR0cjogYXR0cnNcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aXRsZUVsID0gYWRtb25pdGlvbi5jcmVhdGVEaXYoe1xyXG4gICAgICAgICAgICBjbHM6IGBhZG1vbml0aW9uLXRpdGxlICR7IXRpdGxlPy50cmltKCkubGVuZ3RoID8gXCJuby10aXRsZVwiIDogXCJcIn1gXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgICAgYWRtb25pdGlvbi5pZCA9IGlkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aXRsZSAmJiB0aXRsZS50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGl0bGUgc3RydWN0dXJlXHJcbiAgICAgICAgICogPGRpdnxzdW1tYXJ5Pi5hZG1vbml0aW9uLXRpdGxlXHJcbiAgICAgICAgICogICAgICA8ZWxlbWVudD4uYWRtb25pdGlvbi10aXRsZS1jb250ZW50IC0gUmVuZGVyZWQgTWFya2Rvd24gdG9wLWxldmVsIGVsZW1lbnQgKGUuZy4gSDEvMi8zIGV0YywgcClcclxuICAgICAgICAgKiAgICAgICAgICBkaXYuYWRtb25pdGlvbi10aXRsZS1pY29uXHJcbiAgICAgICAgICogICAgICAgICAgICAgIHN2Z1xyXG4gICAgICAgICAqICAgICAgICAgIGRpdi5hZG1vbml0aW9uLXRpdGxlLW1hcmtkb3duIC0gQ29udGFpbmVyIG9mIHJlbmRlcmVkIG1hcmtkb3duXHJcbiAgICAgICAgICogICAgICAgICAgICAgIC4uLnJlbmRlcmVkIG1hcmtkb3duIGNoaWxkcmVuLi4uXHJcbiAgICAgICAgICovXHJcblxyXG4gICAgICAgIC8vZ2V0IG1hcmtkb3duXHJcbiAgICAgICAgY29uc3QgbWFya2Rvd25Ib2xkZXIgPSBjcmVhdGVEaXYoKTtcclxuICAgICAgICAvL01hcmtkb3duUmVuZGVyZXIucmVuZGVyTWFya2Rvd24odGl0bGUsIG1hcmtkb3duSG9sZGVyLCBcIlwiLCBudWxsKTtcclxuXHJcbiAgICAgICAgLy9hZG1vbml0aW9uLXRpdGxlLWNvbnRlbnQgaXMgZmlyc3QgY2hpbGQgb2YgcmVuZGVyZWQgbWFya2Rvd25cclxuXHJcbiAgICAgICAgY29uc3QgYWRtb25pdGlvblRpdGxlQ29udGVudCA9XHJcbiAgICAgICAgICAgIC8qIG1hcmtkb3duSG9sZGVyPy5jaGlsZHJlblswXT8udGFnTmFtZSA9PT0gXCJQXCJcclxuICAgICAgICA/IGNyZWF0ZURpdigpXHJcbiAgICAgICAgOiBtYXJrZG93bkhvbGRlci5jaGlsZHJlblswXSA/PyAgKi8gY3JlYXRlRGl2KCk7XHJcblxyXG4gICAgICAgIC8vZ2V0IGNoaWxkcmVuIG9mIG1hcmtkb3duIGVsZW1lbnQsIHRoZW4gcmVtb3ZlIHRoZW1cclxuICAgICAgICBjb25zdCBtYXJrZG93bkVsZW1lbnRzID0gQXJyYXkuZnJvbShcclxuICAgICAgICAgICAgbWFya2Rvd25Ib2xkZXIuY2hpbGRyZW5bMF0/LmNoaWxkTm9kZXMgfHwgW11cclxuICAgICAgICApO1xyXG4gICAgICAgIGFkbW9uaXRpb25UaXRsZUNvbnRlbnQuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgICBhZG1vbml0aW9uVGl0bGVDb250ZW50LmFkZENsYXNzKFwiYWRtb25pdGlvbi10aXRsZS1jb250ZW50XCIpO1xyXG5cclxuICAgICAgICAvL2J1aWxkIGljb24gZWxlbWVudFxyXG4gICAgICAgIGNvbnN0IGljb25FbCA9IGFkbW9uaXRpb25UaXRsZUNvbnRlbnQuY3JlYXRlRGl2KFxyXG4gICAgICAgICAgICBcImFkbW9uaXRpb24tdGl0bGUtaWNvblwiXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaWNvbikge1xyXG4gICAgICAgICAgICBpY29uRWwuaW5uZXJIVE1MID0gaWNvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vYWRkIG1hcmtkb3duIGNoaWxkcmVuIGJhY2tcclxuICAgICAgICBjb25zdCBhZG1vbml0aW9uVGl0bGVNYXJrZG93biA9IGFkbW9uaXRpb25UaXRsZUNvbnRlbnQuY3JlYXRlRGl2KFxyXG4gICAgICAgICAgICBcImFkbW9uaXRpb24tdGl0bGUtbWFya2Rvd25cIlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYWRtb25pdGlvblRpdGxlTWFya2Rvd24uaW5uZXJUZXh0ID0gdGl0bGU7XHJcbiAgICAgICAgLyogZm9yIChsZXQgaSA9IDA7IGkgPCBtYXJrZG93bkVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGFkbW9uaXRpb25UaXRsZU1hcmtkb3duLmFwcGVuZENoaWxkKG1hcmtkb3duRWxlbWVudHNbaV0pO1xyXG4gICAgICAgIH0gKi9cclxuICAgICAgICB0aXRsZUVsLmFwcGVuZENoaWxkKGFkbW9uaXRpb25UaXRsZUNvbnRlbnQgfHwgY3JlYXRlRGl2KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vYWRkIHRoZW0gdG8gdGl0bGUgZWxlbWVudFxyXG5cclxuICAgIGlmIChjb2xsYXBzZSkge1xyXG4gICAgICAgIHRpdGxlRWwuY3JlYXRlRGl2KFwiY29sbGFwc2VyXCIpLmNyZWF0ZURpdihcImhhbmRsZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBhZG1vbml0aW9uO1xyXG59XHJcbmZ1bmN0aW9uIHN0YXJ0c1dpdGhBbnkoc3RyOiBzdHJpbmcsIG5lZWRsZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5lZWRsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoc3RyLnN0YXJ0c1dpdGgobmVlZGxlc1tpXSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyc0Zyb21Tb3VyY2UodHlwZTogc3RyaW5nLCBzcmM6IHN0cmluZykge1xyXG4gICAgY29uc3Qga2V5d29yZFRva2VucyA9IFtcInRpdGxlOlwiLCBcImNvbGxhcHNlOlwiLCBcImljb246XCIsIFwiY29sb3I6XCJdO1xyXG5cclxuICAgIGNvbnN0IGtleXdvcmRzID0gW1widGl0bGVcIiwgXCJjb2xsYXBzZVwiLCBcImljb25cIiwgXCJjb2xvclwiXTtcclxuXHJcbiAgICBsZXQgbGluZXMgPSBzcmMuc3BsaXQoXCJcXG5cIik7XHJcblxyXG4gICAgbGV0IHNraXBMaW5lcyA9IDA7XHJcblxyXG4gICAgbGV0IHBhcmFtczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGtleXdvcmRJbmRleCA9IHN0YXJ0c1dpdGhBbnkobGluZXNbaV0sIGtleXdvcmRUb2tlbnMpO1xyXG5cclxuICAgICAgICBpZiAoa2V5d29yZEluZGV4ID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBmb3VuZEtleXdvcmQgPSBrZXl3b3Jkc1trZXl3b3JkSW5kZXhdO1xyXG5cclxuICAgICAgICBpZiAocGFyYW1zW2ZvdW5kS2V5d29yZF0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBhcmFtc1tmb3VuZEtleXdvcmRdID0gbGluZXNbaV1cclxuICAgICAgICAgICAgLnN1YnN0cihrZXl3b3JkVG9rZW5zW2tleXdvcmRJbmRleF0ubGVuZ3RoKVxyXG4gICAgICAgICAgICAudHJpbSgpO1xyXG4gICAgICAgICsrc2tpcExpbmVzO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB7XHJcbiAgICAgICAgdGl0bGUgPSB0eXBlWzBdLnRvVXBwZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgY29sbGFwc2UsXHJcbiAgICAgICAgaWNvbixcclxuICAgICAgICBjb2xvclxyXG4gICAgfSA9IHBhcmFtcztcclxuXHJcbiAgICBsZXQgY29udGVudCA9IGxpbmVzLnNsaWNlKHNraXBMaW5lcykuam9pbihcIlxcblwiKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElmIHRoZSBhZG1vbml0aW9uIHNob3VsZCBjb2xsYXBzZSwgYnV0IHNvbWV0aGluZyBvdGhlciB0aGFuIG9wZW4gb3IgY2xvc2VkIHdhcyBwcm92aWRlZCwgc2V0IHRvIGNsb3NlZC5cclxuICAgICAqL1xyXG4gICAgaWYgKFxyXG4gICAgICAgIGNvbGxhcHNlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICBjb2xsYXBzZSAhPT0gXCJub25lXCIgJiZcclxuICAgICAgICBjb2xsYXBzZSAhPT0gXCJvcGVuXCIgJiZcclxuICAgICAgICBjb2xsYXBzZSAhPT0gXCJjbG9zZWRcIlxyXG4gICAgKSB7XHJcbiAgICAgICAgY29sbGFwc2UgPSBcImNsb3NlZFwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhlIGFkbW9uaXRpb24gc2hvdWxkIGNvbGxhcHNlLCBidXQgdGl0bGUgd2FzIGJsYW5rZWQsIHNldCB0aGUgZGVmYXVsdCB0aXRsZS5cclxuICAgICAqL1xyXG4gICAgaWYgKHRpdGxlLnRyaW0oKSA9PT0gXCJcIiAmJiBjb2xsYXBzZSAhPT0gdW5kZWZpbmVkICYmIGNvbGxhcHNlICE9PSBcIm5vbmVcIikge1xyXG4gICAgICAgIHRpdGxlID0gdHlwZVswXS50b1VwcGVyQ2FzZSgpICsgdHlwZS5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyB0aXRsZSwgY29sbGFwc2UsIGNvbnRlbnQsIGljb24sIGNvbG9yIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBBZG1vbml0aW9uUHVibGlzaERlZmluaXRpb24ge1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgY29sb3I6IHN0cmluZztcclxufVxyXG5cclxuY29uc3QgYmxvY2tTZXQ6IFNldDxIVE1MUHJlRWxlbWVudD4gPSBuZXcgU2V0KCk7XHJcbmNvbnN0IEFETU9OSVRJT05fSUNPTl9NQVA6IHtcclxuICAgIFthZG1vbml0aW9uVHlwZTogc3RyaW5nXTogQWRtb25pdGlvblB1Ymxpc2hEZWZpbml0aW9uO1xyXG59ID0ge307XHJcbmlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSBcImNvbXBsZXRlXCIpIHtcclxuICAgIHBvc3Rwcm9jZXNzKCk7XHJcbiAgICByZWdpc3RlclRvUHJvY2VzcygpO1xyXG59IGVsc2Uge1xyXG4gICAgd2luZG93Lm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICBwb3N0cHJvY2VzcygpO1xyXG4gICAgICAgIHJlZ2lzdGVyVG9Qcm9jZXNzKCk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiByZWdpc3RlclRvUHJvY2VzcygpIHtcclxuICAgIGNvbnN0IHNpemVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5tYXJrZG93bi1wcmV2aWV3LXNpemVyXCIpO1xyXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XHJcbiAgICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09IFwiY2hpbGRMaXN0XCIgJiYgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIG11dGF0aW9uLmFkZGVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlIGluc3RhbmNlb2YgRWxlbWVudCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLmZpcnN0RWxlbWVudENoaWxkPy50YWdOYW1lID09PSBcIlBSRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vcG9zdHByb2Nlc3Mobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZU9ic2VydmVyLm9ic2VydmUobm9kZS5maXJzdENoaWxkLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRMaXN0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlckRhdGE6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidHJlZTogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShzaXplciwge1xyXG4gICAgICAgIGF0dHJpYnV0ZXM6IGZhbHNlLFxyXG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcclxuICAgICAgICBzdWJ0cmVlOiBmYWxzZVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcHJlT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XHJcbiAgICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIG11dGF0aW9uLnRhcmdldCBpbnN0YW5jZW9mIEhUTUxQcmVFbGVtZW50ICYmXHJcbiAgICAgICAgICAgICAgICAhYmxvY2tTZXQuaGFzKG11dGF0aW9uLnRhcmdldCkgJiZcclxuICAgICAgICAgICAgICAgIG11dGF0aW9uLnR5cGUgPT09IFwiYXR0cmlidXRlc1wiICYmXHJcbiAgICAgICAgICAgICAgICBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSBcImNsYXNzXCIgJiZcclxuICAgICAgICAgICAgICAgIEFycmF5LmZyb20obXV0YXRpb24udGFyZ2V0LmNsYXNzTGlzdCkuc29tZSgoY2xzKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIC9sYW5ndWFnZS1hZC0oXFx3KykvLnRlc3QoY2xzKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGJsb2NrU2V0LmFkZChtdXRhdGlvbi50YXJnZXQpO1xyXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0FkbW9uaXRpb25CbG9jayhtdXRhdGlvbi50YXJnZXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gcHJvY2Vzc0FkbW9uaXRpb25CbG9jayhhZG1vbml0aW9uQmxvY2s6IEhUTUxQcmVFbGVtZW50KSB7XHJcbiAgICBjb25zdCBbLCB0eXBlXSA9IGFkbW9uaXRpb25CbG9jay5jbGFzc0xpc3RcclxuICAgICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAgIC5tYXRjaCgvbGFuZ3VhZ2UtYWQtKFxcdyspLyk7XHJcbiAgICBpZiAoIXR5cGUpIHJldHVybjtcclxuICAgIGlmICghKHR5cGUgaW4gQURNT05JVElPTl9JQ09OX01BUCkpIHJldHVybjtcclxuXHJcbiAgICBsZXQge1xyXG4gICAgICAgIHRpdGxlID0gdHlwZVswXS50b1VwcGVyQ2FzZSgpICsgdHlwZS5zbGljZSgxKS50b0xvd2VyQ2FzZSgpLFxyXG4gICAgICAgIGNvbGxhcHNlLFxyXG4gICAgICAgIGNvbnRlbnQsXHJcbiAgICAgICAgaWNvbiA9IEFETU9OSVRJT05fSUNPTl9NQVBbdHlwZV0uaWNvbixcclxuICAgICAgICBjb2xvciA9IEFETU9OSVRJT05fSUNPTl9NQVBbdHlwZV0uY29sb3JcclxuICAgIH0gPSBnZXRQYXJhbWV0ZXJzRnJvbVNvdXJjZSh0eXBlLCBhZG1vbml0aW9uQmxvY2suaW5uZXJUZXh0KTtcclxuXHJcbiAgICBsZXQgYWRtb25pdGlvbiA9IGdldEFkbW9uaXRpb25FbGVtZW50KHR5cGUsIHRpdGxlLCBpY29uLCBjb2xvciwgY29sbGFwc2UpO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnRIb2xkZXIgPSBhZG1vbml0aW9uLmNyZWF0ZURpdihcImFkbW9uaXRpb24tY29udGVudC1ob2xkZXJcIik7XHJcblxyXG4gICAgY29uc3QgYWRtb25pdGlvbkNvbnRlbnQgPSBjb250ZW50SG9sZGVyLmNyZWF0ZURpdihcImFkbW9uaXRpb24tY29udGVudFwiKTtcclxuXHJcbiAgICBhZG1vbml0aW9uQ29udGVudC5pbm5lclRleHQgPSBjb250ZW50O1xyXG5cclxuICAgIGFkbW9uaXRpb25CbG9jay5yZXBsYWNlV2l0aChhZG1vbml0aW9uKTtcclxufVxyXG5cclxuZnVuY3Rpb24gcG9zdHByb2Nlc3MoKSB7XHJcbiAgICAvL2RvIHdvcmtcclxuICAgIGNvbnN0IGFkbW9uaXRpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MUHJlRWxlbWVudD4oXHJcbiAgICAgICAgXCJwcmVbY2xhc3MqPSdsYW5ndWFnZS1hZCddXCJcclxuICAgICk7XHJcblxyXG4gICAgaWYgKCFhZG1vbml0aW9ucy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBmb3IgKGxldCBhZG1vbml0aW9uQmxvY2sgb2YgQXJyYXkuZnJvbShhZG1vbml0aW9ucykpIHtcclxuICAgICAgICBibG9ja1NldC5hZGQoYWRtb25pdGlvbkJsb2NrKTtcclxuICAgICAgICBjb25zdCBbLCB0eXBlXSA9IGFkbW9uaXRpb25CbG9jay5jbGFzc0xpc3RcclxuICAgICAgICAgICAgLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgLm1hdGNoKC9sYW5ndWFnZS1hZC0oXFx3KykvKTtcclxuICAgICAgICBpZiAoIXR5cGUpIGNvbnRpbnVlO1xyXG4gICAgICAgIGlmICghKHR5cGUgaW4gQURNT05JVElPTl9JQ09OX01BUCkpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICBsZXQge1xyXG4gICAgICAgICAgICB0aXRsZSA9IHR5cGVbMF0udG9VcHBlckNhc2UoKSArIHR5cGUuc2xpY2UoMSkudG9Mb3dlckNhc2UoKSxcclxuICAgICAgICAgICAgY29sbGFwc2UsXHJcbiAgICAgICAgICAgIGNvbnRlbnQsXHJcbiAgICAgICAgICAgIGljb24gPSBBRE1PTklUSU9OX0lDT05fTUFQW3R5cGVdLmljb24sXHJcbiAgICAgICAgICAgIGNvbG9yID0gQURNT05JVElPTl9JQ09OX01BUFt0eXBlXS5jb2xvclxyXG4gICAgICAgIH0gPSBnZXRQYXJhbWV0ZXJzRnJvbVNvdXJjZSh0eXBlLCBhZG1vbml0aW9uQmxvY2suaW5uZXJUZXh0KTtcclxuXHJcbiAgICAgICAgbGV0IGFkbW9uaXRpb24gPSBnZXRBZG1vbml0aW9uRWxlbWVudChcclxuICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgICAgIGljb24sXHJcbiAgICAgICAgICAgIGNvbG9yLFxyXG4gICAgICAgICAgICBjb2xsYXBzZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRIb2xkZXIgPSBhZG1vbml0aW9uLmNyZWF0ZURpdihcImFkbW9uaXRpb24tY29udGVudC1ob2xkZXJcIik7XHJcblxyXG4gICAgICAgIGNvbnN0IGFkbW9uaXRpb25Db250ZW50ID0gY29udGVudEhvbGRlci5jcmVhdGVEaXYoXCJhZG1vbml0aW9uLWNvbnRlbnRcIik7XHJcblxyXG4gICAgICAgIGFkbW9uaXRpb25Db250ZW50LmlubmVyVGV4dCA9IGNvbnRlbnQ7XHJcblxyXG4gICAgICAgIGFkbW9uaXRpb25CbG9jay5yZXBsYWNlV2l0aChhZG1vbml0aW9uKTtcclxuICAgIH1cclxufVxyXG4iXX0= /******/ return __webpack_exports__; /******/ })() ; diff --git a/src/publish/publish.admonition.ts b/src/publish/publish.admonition.ts index 0c10549..aad1299 100644 --- a/src/publish/publish.admonition.ts +++ b/src/publish/publish.admonition.ts @@ -248,6 +248,7 @@ interface AdmonitionPublishDefinition { color: string; } +const blockSet: Set = new Set(); const ADMONITION_ICON_MAP: { [admonitionType: string]: AdmonitionPublishDefinition; } = {}; @@ -335,8 +336,6 @@ function processAdmonitionBlock(admonitionBlock: HTMLPreElement) { admonitionBlock.replaceWith(admonition); } -const blockSet: Set = new Set(); - function postprocess() { //do work const admonitions = document.querySelectorAll(